summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvs2git <rtems-devel@rtems.org>2006-06-20 00:37:33 +0000
committercvs2git <rtems-devel@rtems.org>2006-06-20 00:37:33 +0000
commit63285e3c254987576709672278b25459d6329afb (patch)
tree2ff201453f26ba9c91655bfc8750de78c67e36fd
parent008c4856ecf0316fc6c4803c5a66289c908394f3 (diff)
This commit was manufactured by cvs2svn to create tag 'SLAC-R1-3'.SLAC-R1-3
Sprout from master 2006-06-20 00:37:32 UTC Eric Norum <WENorum@lbl.gov> 'Updated non-CEXP version.' Delete: ChangeLog README RTEMS_Makefiles/Makefile.avl RTEMS_Makefiles/Makefile.bfd RTEMS_Makefiles/Makefile.common RTEMS_Makefiles/Makefile.libtecla RTEMS_Makefiles/Makefile.ncurses RTEMS_Makefiles/Makefile.ncurses-5.3 RTEMS_Makefiles/Makefile.readline-4.3 RTEMS_Makefiles/Makefile.site RTEMS_Makefiles/Makefile.zlib SUPPORT VERSION avl-1.4.0/AUTHORS avl-1.4.0/COPYING avl-1.4.0/ChangeLog avl-1.4.0/INSTALL avl-1.4.0/Makefile.am avl-1.4.0/Makefile.in avl-1.4.0/NEWS avl-1.4.0/README avl-1.4.0/THANKS avl-1.4.0/TODO avl-1.4.0/aclocal.m4 avl-1.4.0/avl.c avl-1.4.0/avl.h avl-1.4.0/avl.html avl-1.4.0/avl.info avl-1.4.0/avl.texinfo avl-1.4.0/avl.text avl-1.4.0/avlt.c avl-1.4.0/avlt.h avl-1.4.0/avltr.c avl-1.4.0/avltr.h avl-1.4.0/configure avl-1.4.0/configure.in avl-1.4.0/install-sh avl-1.4.0/missing avl-1.4.0/mkinstalldirs avl-1.4.0/rb.c avl-1.4.0/rb.h avl-1.4.0/texinfo.tex avl-1.4.0/thread-test.c bit bit_bfd examples/avl/BuildTests.sh examples/avl/Makefile examples/avl/README examples/avl/init.c examples/ncurses/BuildTests.sh examples/ncurses/Makefile examples/ncurses/README examples/ncurses/init.c examples/readline/.gdbinit examples/readline/Makefile examples/readline/init.c examples/readline/rlgeneric.c libtecla-1.4.1/CHANGES libtecla-1.4.1/INSTALL libtecla-1.4.1/LICENSE.TERMS libtecla-1.4.1/Makefile libtecla-1.4.1/Makefile.in libtecla-1.4.1/Makefile.rules libtecla-1.4.1/Makefile.stub libtecla-1.4.1/PORTING libtecla-1.4.1/README libtecla-1.4.1/RELEASE.NOTES libtecla-1.4.1/config.guess libtecla-1.4.1/config.sub libtecla-1.4.1/configure libtecla-1.4.1/configure.in libtecla-1.4.1/cplfile.c libtecla-1.4.1/cplfile.h libtecla-1.4.1/cplmatch.c libtecla-1.4.1/demo.c libtecla-1.4.1/demo2.c libtecla-1.4.1/direader.c libtecla-1.4.1/direader.h libtecla-1.4.1/enhance.c libtecla-1.4.1/expand.c libtecla-1.4.1/freelist.c libtecla-1.4.1/freelist.h libtecla-1.4.1/getline.c libtecla-1.4.1/getline.h libtecla-1.4.1/hash.c libtecla-1.4.1/hash.h libtecla-1.4.1/history.c libtecla-1.4.1/history.h libtecla-1.4.1/homedir.c libtecla-1.4.1/homedir.h libtecla-1.4.1/html/changes.html libtecla-1.4.1/html/cpl_complete_word.html libtecla-1.4.1/html/ef_expand_file.html libtecla-1.4.1/html/enhance.html libtecla-1.4.1/html/gl_get_line.html libtecla-1.4.1/html/index.html libtecla-1.4.1/html/libtecla.html libtecla-1.4.1/html/pca_lookup_file.html libtecla-1.4.1/html/release.html libtecla-1.4.1/install-sh libtecla-1.4.1/keytab.c libtecla-1.4.1/keytab.h libtecla-1.4.1/libtecla.h libtecla-1.4.1/libtecla.map libtecla-1.4.1/man3/cfc_file_start.3 libtecla-1.4.1/man3/cfc_literal_escapes.3 libtecla-1.4.1/man3/cfc_set_check_fn.3 libtecla-1.4.1/man3/cpl_add_completion.3 libtecla-1.4.1/man3/cpl_complete_word.3 libtecla-1.4.1/man3/cpl_file_completions.3 libtecla-1.4.1/man3/cpl_last_error.3 libtecla-1.4.1/man3/cpl_list_completions.3 libtecla-1.4.1/man3/cpl_record_error.3 libtecla-1.4.1/man3/del_CplFileConf.3 libtecla-1.4.1/man3/del_ExpandFile.3 libtecla-1.4.1/man3/del_GetLine.3 libtecla-1.4.1/man3/del_PathCache.3 libtecla-1.4.1/man3/del_PcaPathConf.3 libtecla-1.4.1/man3/del_WordCompletion.3 libtecla-1.4.1/man3/ef_expand_file.3 libtecla-1.4.1/man3/ef_last_error.3 libtecla-1.4.1/man3/ef_list_expansions.3 libtecla-1.4.1/man3/enhance.3 libtecla-1.4.1/man3/gl_change_terminal.3 libtecla-1.4.1/man3/gl_clear_history.3 libtecla-1.4.1/man3/gl_configure_getline.3 libtecla-1.4.1/man3/gl_customize_completion.3 libtecla-1.4.1/man3/gl_echo_mode.3 libtecla-1.4.1/man3/gl_get_line.3 libtecla-1.4.1/man3/gl_group_history.3 libtecla-1.4.1/man3/gl_ignore_signal.3 libtecla-1.4.1/man3/gl_last_signal.3 libtecla-1.4.1/man3/gl_limit_history.3 libtecla-1.4.1/man3/gl_load_history.3 libtecla-1.4.1/man3/gl_lookup_history.3 libtecla-1.4.1/man3/gl_prompt_style.3 libtecla-1.4.1/man3/gl_range_of_history.3 libtecla-1.4.1/man3/gl_resize_history.3 libtecla-1.4.1/man3/gl_save_history.3 libtecla-1.4.1/man3/gl_show_history.3 libtecla-1.4.1/man3/gl_size_of_history.3 libtecla-1.4.1/man3/gl_state_of_history.3 libtecla-1.4.1/man3/gl_terminal_size.3 libtecla-1.4.1/man3/gl_toggle_history.3 libtecla-1.4.1/man3/gl_trap_signal.3 libtecla-1.4.1/man3/gl_watch_fd.3 libtecla-1.4.1/man3/libtecla.3 libtecla-1.4.1/man3/libtecla_version.3 libtecla-1.4.1/man3/new_CplFileConf.3 libtecla-1.4.1/man3/new_ExpandFile.3 libtecla-1.4.1/man3/new_GetLine.3 libtecla-1.4.1/man3/new_PathCache.3 libtecla-1.4.1/man3/new_PcaPathConf.3 libtecla-1.4.1/man3/new_WordCompletion.3 libtecla-1.4.1/man3/pca_last_error.3 libtecla-1.4.1/man3/pca_lookup_file.3 libtecla-1.4.1/man3/pca_path_completions.3 libtecla-1.4.1/man3/pca_scan_path.3 libtecla-1.4.1/man3/pca_set_check_fn.3 libtecla-1.4.1/man3/ppc_file_start.3 libtecla-1.4.1/man3/ppc_literal_escapes.3 libtecla-1.4.1/pathutil.c libtecla-1.4.1/pathutil.h libtecla-1.4.1/pcache.c libtecla-1.4.1/stringrp.c libtecla-1.4.1/stringrp.h libtecla-1.4.1/strngmem.c libtecla-1.4.1/strngmem.h libtecla-1.4.1/update_html libtecla-1.4.1/update_version libtecla-1.4.1/version.c ncurses-5.2/ANNOUNCE ncurses-5.2/Ada95/Makefile.in ncurses-5.2/Ada95/README ncurses-5.2/Ada95/TODO ncurses-5.2/Ada95/gen/Makefile.in ncurses-5.2/Ada95/gen/gen.c ncurses-5.2/Ada95/gen/html.m4 ncurses-5.2/Ada95/gen/normal.m4 ncurses-5.2/Ada95/gen/table.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-aux.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-forms.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-menus.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-mouse.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses-panels.ads.m4 ncurses-5.2/Ada95/gen/terminal_interface-curses.ads.m4 ncurses-5.2/Ada95/samples/Makefile.in ncurses-5.2/Ada95/samples/README ncurses-5.2/Ada95/samples/explain.txt ncurses-5.2/Ada95/samples/rain.adb ncurses-5.2/Ada95/samples/rain.ads ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads ncurses-5.2/Ada95/samples/sample-curses_demo.adb ncurses-5.2/Ada95/samples/sample-curses_demo.ads ncurses-5.2/Ada95/samples/sample-explanation.adb ncurses-5.2/Ada95/samples/sample-explanation.ads ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads ncurses-5.2/Ada95/samples/sample-form_demo.adb ncurses-5.2/Ada95/samples/sample-form_demo.ads ncurses-5.2/Ada95/samples/sample-function_key_setting.adb ncurses-5.2/Ada95/samples/sample-function_key_setting.ads ncurses-5.2/Ada95/samples/sample-header_handler.adb ncurses-5.2/Ada95/samples/sample-header_handler.ads ncurses-5.2/Ada95/samples/sample-helpers.adb ncurses-5.2/Ada95/samples/sample-helpers.ads ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads ncurses-5.2/Ada95/samples/sample-manifest.ads ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads ncurses-5.2/Ada95/samples/sample-menu_demo.adb ncurses-5.2/Ada95/samples/sample-menu_demo.ads ncurses-5.2/Ada95/samples/sample-my_field_type.adb ncurses-5.2/Ada95/samples/sample-my_field_type.ads ncurses-5.2/Ada95/samples/sample-text_io_demo.adb ncurses-5.2/Ada95/samples/sample-text_io_demo.ads ncurses-5.2/Ada95/samples/sample.adb ncurses-5.2/Ada95/samples/sample.ads ncurses-5.2/Ada95/samples/status.adb ncurses-5.2/Ada95/samples/status.ads ncurses-5.2/Ada95/samples/tour.adb ncurses-5.2/Ada95/samples/tour.ads ncurses-5.2/Ada95/src/Makefile.in ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb ncurses-5.2/Ada95/src/terminal_interface-curses-forms.adb ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb ncurses-5.2/Ada95/src/terminal_interface-curses-menus.adb ncurses-5.2/Ada95/src/terminal_interface-curses-mouse.adb ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.adb ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads ncurses-5.2/Ada95/src/terminal_interface-curses.adb ncurses-5.2/Ada95/src/terminal_interface.ads ncurses-5.2/INSTALL ncurses-5.2/MANIFEST ncurses-5.2/Makefile.glibc ncurses-5.2/Makefile.in ncurses-5.2/Makefile.os2 ncurses-5.2/NEWS ncurses-5.2/README ncurses-5.2/README.emx ncurses-5.2/README.glibc ncurses-5.2/TO-DO ncurses-5.2/aclocal.m4 ncurses-5.2/announce.html.in ncurses-5.2/c++/Makefile.in ncurses-5.2/c++/NEWS ncurses-5.2/c++/PROBLEMS ncurses-5.2/c++/README-first ncurses-5.2/c++/cursesapp.cc ncurses-5.2/c++/cursesapp.h ncurses-5.2/c++/cursesf.cc ncurses-5.2/c++/cursesf.h ncurses-5.2/c++/cursesm.cc ncurses-5.2/c++/cursesm.h ncurses-5.2/c++/cursesmain.cc ncurses-5.2/c++/cursesp.cc ncurses-5.2/c++/cursesp.h ncurses-5.2/c++/cursespad.cc ncurses-5.2/c++/cursesw.cc ncurses-5.2/c++/cursesw.h ncurses-5.2/c++/cursslk.cc ncurses-5.2/c++/cursslk.h ncurses-5.2/c++/demo.cc ncurses-5.2/c++/edit_cfg.sh ncurses-5.2/c++/etip.h.in ncurses-5.2/c++/headers ncurses-5.2/c++/internal.h ncurses-5.2/c++/modules ncurses-5.2/config.guess ncurses-5.2/config.sub ncurses-5.2/configure ncurses-5.2/configure.in ncurses-5.2/convert_configure.pl ncurses-5.2/dist.mk ncurses-5.2/doc/hackguide.doc ncurses-5.2/doc/html/Ada95.html ncurses-5.2/doc/html/ada/files.htm ncurses-5.2/doc/html/ada/files/T.htm ncurses-5.2/doc/html/ada/funcs.htm ncurses-5.2/doc/html/ada/funcs/A.htm ncurses-5.2/doc/html/ada/funcs/B.htm ncurses-5.2/doc/html/ada/funcs/C.htm ncurses-5.2/doc/html/ada/funcs/D.htm ncurses-5.2/doc/html/ada/funcs/E.htm ncurses-5.2/doc/html/ada/funcs/F.htm ncurses-5.2/doc/html/ada/funcs/G.htm ncurses-5.2/doc/html/ada/funcs/H.htm ncurses-5.2/doc/html/ada/funcs/I.htm ncurses-5.2/doc/html/ada/funcs/K.htm ncurses-5.2/doc/html/ada/funcs/L.htm ncurses-5.2/doc/html/ada/funcs/M.htm ncurses-5.2/doc/html/ada/funcs/N.htm ncurses-5.2/doc/html/ada/funcs/O.htm ncurses-5.2/doc/html/ada/funcs/P.htm ncurses-5.2/doc/html/ada/funcs/Q.htm ncurses-5.2/doc/html/ada/funcs/R.htm ncurses-5.2/doc/html/ada/funcs/S.htm ncurses-5.2/doc/html/ada/funcs/T.htm ncurses-5.2/doc/html/ada/funcs/U.htm ncurses-5.2/doc/html/ada/funcs/V.htm ncurses-5.2/doc/html/ada/funcs/W.htm ncurses-5.2/doc/html/ada/index.htm ncurses-5.2/doc/html/ada/main.htm ncurses-5.2/doc/html/ada/table.html ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__ads.htm ncurses-5.2/doc/html/ada/terminal_interface-curses__adb.htm ncurses-5.2/doc/html/ada/terminal_interface-curses__ads.htm ncurses-5.2/doc/html/ada/terminal_interface__ads.htm ncurses-5.2/doc/html/announce.html ncurses-5.2/doc/html/hackguide.html ncurses-5.2/doc/html/index.html ncurses-5.2/doc/html/man/captoinfo.1m.html ncurses-5.2/doc/html/man/clear.1.html ncurses-5.2/doc/html/man/curs_addch.3x.html ncurses-5.2/doc/html/man/curs_addchstr.3x.html ncurses-5.2/doc/html/man/curs_addstr.3x.html ncurses-5.2/doc/html/man/curs_attr.3x.html ncurses-5.2/doc/html/man/curs_beep.3x.html ncurses-5.2/doc/html/man/curs_bkgd.3x.html ncurses-5.2/doc/html/man/curs_border.3x.html ncurses-5.2/doc/html/man/curs_clear.3x.html ncurses-5.2/doc/html/man/curs_color.3x.html ncurses-5.2/doc/html/man/curs_delch.3x.html ncurses-5.2/doc/html/man/curs_deleteln.3x.html ncurses-5.2/doc/html/man/curs_extend.3x.html ncurses-5.2/doc/html/man/curs_getch.3x.html ncurses-5.2/doc/html/man/curs_getstr.3x.html ncurses-5.2/doc/html/man/curs_getyx.3x.html ncurses-5.2/doc/html/man/curs_inch.3x.html ncurses-5.2/doc/html/man/curs_inchstr.3x.html ncurses-5.2/doc/html/man/curs_initscr.3x.html ncurses-5.2/doc/html/man/curs_inopts.3x.html ncurses-5.2/doc/html/man/curs_insch.3x.html ncurses-5.2/doc/html/man/curs_insstr.3x.html ncurses-5.2/doc/html/man/curs_instr.3x.html ncurses-5.2/doc/html/man/curs_kernel.3x.html ncurses-5.2/doc/html/man/curs_mouse.3x.html ncurses-5.2/doc/html/man/curs_move.3x.html ncurses-5.2/doc/html/man/curs_outopts.3x.html ncurses-5.2/doc/html/man/curs_overlay.3x.html ncurses-5.2/doc/html/man/curs_pad.3x.html ncurses-5.2/doc/html/man/curs_print.3x.html ncurses-5.2/doc/html/man/curs_printw.3x.html ncurses-5.2/doc/html/man/curs_refresh.3x.html ncurses-5.2/doc/html/man/curs_scanw.3x.html ncurses-5.2/doc/html/man/curs_scr_dump.3x.html ncurses-5.2/doc/html/man/curs_scroll.3x.html ncurses-5.2/doc/html/man/curs_slk.3x.html ncurses-5.2/doc/html/man/curs_termattrs.3x.html ncurses-5.2/doc/html/man/curs_termcap.3x.html ncurses-5.2/doc/html/man/curs_terminfo.3x.html ncurses-5.2/doc/html/man/curs_touch.3x.html ncurses-5.2/doc/html/man/curs_trace.3x.html ncurses-5.2/doc/html/man/curs_util.3x.html ncurses-5.2/doc/html/man/curs_window.3x.html ncurses-5.2/doc/html/man/default_colors.3x.html ncurses-5.2/doc/html/man/define_key.3x.html ncurses-5.2/doc/html/man/form.3x.html ncurses-5.2/doc/html/man/form_cursor.3x.html ncurses-5.2/doc/html/man/form_data.3x.html ncurses-5.2/doc/html/man/form_driver.3x.html ncurses-5.2/doc/html/man/form_field.3x.html ncurses-5.2/doc/html/man/form_field_attributes.3x.html ncurses-5.2/doc/html/man/form_field_buffer.3x.html ncurses-5.2/doc/html/man/form_field_info.3x.html ncurses-5.2/doc/html/man/form_field_just.3x.html ncurses-5.2/doc/html/man/form_field_new.3x.html ncurses-5.2/doc/html/man/form_field_opts.3x.html ncurses-5.2/doc/html/man/form_field_userptr.3x.html ncurses-5.2/doc/html/man/form_field_validation.3x.html ncurses-5.2/doc/html/man/form_fieldtype.3x.html ncurses-5.2/doc/html/man/form_hook.3x.html ncurses-5.2/doc/html/man/form_new.3x.html ncurses-5.2/doc/html/man/form_new_page.3x.html ncurses-5.2/doc/html/man/form_opts.3x.html ncurses-5.2/doc/html/man/form_page.3x.html ncurses-5.2/doc/html/man/form_post.3x.html ncurses-5.2/doc/html/man/form_requestname.3x.html ncurses-5.2/doc/html/man/form_userptr.3x.html ncurses-5.2/doc/html/man/form_win.3x.html ncurses-5.2/doc/html/man/infocmp.1m.html ncurses-5.2/doc/html/man/infotocap.1m.html ncurses-5.2/doc/html/man/keybound.3x.html ncurses-5.2/doc/html/man/keyok.3x.html ncurses-5.2/doc/html/man/menu.3x.html ncurses-5.2/doc/html/man/menu_attributes.3x.html ncurses-5.2/doc/html/man/menu_cursor.3x.html ncurses-5.2/doc/html/man/menu_driver.3x.html ncurses-5.2/doc/html/man/menu_format.3x.html ncurses-5.2/doc/html/man/menu_hook.3x.html ncurses-5.2/doc/html/man/menu_items.3x.html ncurses-5.2/doc/html/man/menu_mark.3x.html ncurses-5.2/doc/html/man/menu_new.3x.html ncurses-5.2/doc/html/man/menu_opts.3x.html ncurses-5.2/doc/html/man/menu_pattern.3x.html ncurses-5.2/doc/html/man/menu_post.3x.html ncurses-5.2/doc/html/man/menu_requestname.3x.html ncurses-5.2/doc/html/man/menu_spacing.3x.html ncurses-5.2/doc/html/man/menu_userptr.3x.html ncurses-5.2/doc/html/man/menu_win.3x.html ncurses-5.2/doc/html/man/mitem_current.3x.html ncurses-5.2/doc/html/man/mitem_name.3x.html ncurses-5.2/doc/html/man/mitem_new.3x.html ncurses-5.2/doc/html/man/mitem_opts.3x.html ncurses-5.2/doc/html/man/mitem_userptr.3x.html ncurses-5.2/doc/html/man/mitem_value.3x.html ncurses-5.2/doc/html/man/mitem_visible.3x.html ncurses-5.2/doc/html/man/ncurses.3x.html ncurses-5.2/doc/html/man/panel.3x.html ncurses-5.2/doc/html/man/resizeterm.3x.html ncurses-5.2/doc/html/man/term.5.html ncurses-5.2/doc/html/man/term.7.html ncurses-5.2/doc/html/man/terminfo.5.html ncurses-5.2/doc/html/man/tic.1m.html ncurses-5.2/doc/html/man/toe.1m.html ncurses-5.2/doc/html/man/tput.1.html ncurses-5.2/doc/html/man/tset.1.html ncurses-5.2/doc/html/man/wresize.3x.html ncurses-5.2/doc/html/ncurses-intro.html ncurses-5.2/doc/ncurses-intro.doc ncurses-5.2/form/Makefile.in ncurses-5.2/form/READ.ME ncurses-5.2/form/fld_arg.c ncurses-5.2/form/fld_attr.c ncurses-5.2/form/fld_current.c ncurses-5.2/form/fld_def.c ncurses-5.2/form/fld_dup.c ncurses-5.2/form/fld_ftchoice.c ncurses-5.2/form/fld_ftlink.c ncurses-5.2/form/fld_info.c ncurses-5.2/form/fld_just.c ncurses-5.2/form/fld_link.c ncurses-5.2/form/fld_max.c ncurses-5.2/form/fld_move.c ncurses-5.2/form/fld_newftyp.c ncurses-5.2/form/fld_opts.c ncurses-5.2/form/fld_pad.c ncurses-5.2/form/fld_page.c ncurses-5.2/form/fld_stat.c ncurses-5.2/form/fld_type.c ncurses-5.2/form/fld_user.c ncurses-5.2/form/form.h ncurses-5.2/form/form.priv.h ncurses-5.2/form/frm_cursor.c ncurses-5.2/form/frm_data.c ncurses-5.2/form/frm_def.c ncurses-5.2/form/frm_driver.c ncurses-5.2/form/frm_hook.c ncurses-5.2/form/frm_opts.c ncurses-5.2/form/frm_page.c ncurses-5.2/form/frm_post.c ncurses-5.2/form/frm_req_name.c ncurses-5.2/form/frm_scale.c ncurses-5.2/form/frm_sub.c ncurses-5.2/form/frm_user.c ncurses-5.2/form/frm_win.c ncurses-5.2/form/fty_alnum.c ncurses-5.2/form/fty_alpha.c ncurses-5.2/form/fty_enum.c ncurses-5.2/form/fty_int.c ncurses-5.2/form/fty_ipv4.c ncurses-5.2/form/fty_num.c ncurses-5.2/form/fty_regex.c ncurses-5.2/form/headers ncurses-5.2/form/llib-lform ncurses-5.2/form/modules ncurses-5.2/include/Caps ncurses-5.2/include/MKhashsize.sh ncurses-5.2/include/MKncurses_def.sh ncurses-5.2/include/MKparametrized.sh ncurses-5.2/include/MKterm.h.awk.in ncurses-5.2/include/Makefile.in ncurses-5.2/include/capdefaults.c ncurses-5.2/include/curses.h.in ncurses-5.2/include/edit_cfg.sh ncurses-5.2/include/headers ncurses-5.2/include/nc_alloc.h ncurses-5.2/include/nc_panel.h ncurses-5.2/include/ncurses_cfg.hin ncurses-5.2/include/ncurses_defs ncurses-5.2/include/term_entry.h ncurses-5.2/include/termcap.h.in ncurses-5.2/include/tic.h ncurses-5.2/include/unctrl.h.in ncurses-5.2/install-sh ncurses-5.2/man/MKterminfo.sh ncurses-5.2/man/Makefile.in ncurses-5.2/man/captoinfo.1m ncurses-5.2/man/clear.1 ncurses-5.2/man/curs_addch.3x ncurses-5.2/man/curs_addchstr.3x ncurses-5.2/man/curs_addstr.3x ncurses-5.2/man/curs_attr.3x ncurses-5.2/man/curs_beep.3x ncurses-5.2/man/curs_bkgd.3x ncurses-5.2/man/curs_border.3x ncurses-5.2/man/curs_clear.3x ncurses-5.2/man/curs_color.3x ncurses-5.2/man/curs_delch.3x ncurses-5.2/man/curs_deleteln.3x ncurses-5.2/man/curs_extend.3x ncurses-5.2/man/curs_getch.3x ncurses-5.2/man/curs_getstr.3x ncurses-5.2/man/curs_getyx.3x ncurses-5.2/man/curs_inch.3x ncurses-5.2/man/curs_inchstr.3x ncurses-5.2/man/curs_initscr.3x ncurses-5.2/man/curs_inopts.3x ncurses-5.2/man/curs_insch.3x ncurses-5.2/man/curs_insstr.3x ncurses-5.2/man/curs_instr.3x ncurses-5.2/man/curs_kernel.3x ncurses-5.2/man/curs_mouse.3x ncurses-5.2/man/curs_move.3x ncurses-5.2/man/curs_outopts.3x ncurses-5.2/man/curs_overlay.3x ncurses-5.2/man/curs_pad.3x ncurses-5.2/man/curs_print.3x ncurses-5.2/man/curs_printw.3x ncurses-5.2/man/curs_refresh.3x ncurses-5.2/man/curs_scanw.3x ncurses-5.2/man/curs_scr_dump.3x ncurses-5.2/man/curs_scroll.3x ncurses-5.2/man/curs_slk.3x ncurses-5.2/man/curs_termattrs.3x ncurses-5.2/man/curs_termcap.3x ncurses-5.2/man/curs_terminfo.3x ncurses-5.2/man/curs_touch.3x ncurses-5.2/man/curs_trace.3x ncurses-5.2/man/curs_util.3x ncurses-5.2/man/curs_window.3x ncurses-5.2/man/default_colors.3x ncurses-5.2/man/define_key.3x ncurses-5.2/man/form.3x ncurses-5.2/man/form_cursor.3x ncurses-5.2/man/form_data.3x ncurses-5.2/man/form_driver.3x ncurses-5.2/man/form_field.3x ncurses-5.2/man/form_field_attributes.3x ncurses-5.2/man/form_field_buffer.3x ncurses-5.2/man/form_field_info.3x ncurses-5.2/man/form_field_just.3x ncurses-5.2/man/form_field_new.3x ncurses-5.2/man/form_field_opts.3x ncurses-5.2/man/form_field_userptr.3x ncurses-5.2/man/form_field_validation.3x ncurses-5.2/man/form_fieldtype.3x ncurses-5.2/man/form_hook.3x ncurses-5.2/man/form_new.3x ncurses-5.2/man/form_new_page.3x ncurses-5.2/man/form_opts.3x ncurses-5.2/man/form_page.3x ncurses-5.2/man/form_post.3x ncurses-5.2/man/form_requestname.3x ncurses-5.2/man/form_userptr.3x ncurses-5.2/man/form_win.3x ncurses-5.2/man/infocmp.1m ncurses-5.2/man/infotocap.1m ncurses-5.2/man/keybound.3x ncurses-5.2/man/keyok.3x ncurses-5.2/man/make_sed.sh ncurses-5.2/man/man_db.renames ncurses-5.2/man/manlinks.sed ncurses-5.2/man/menu.3x ncurses-5.2/man/menu_attributes.3x ncurses-5.2/man/menu_cursor.3x ncurses-5.2/man/menu_driver.3x ncurses-5.2/man/menu_format.3x ncurses-5.2/man/menu_hook.3x ncurses-5.2/man/menu_items.3x ncurses-5.2/man/menu_mark.3x ncurses-5.2/man/menu_new.3x ncurses-5.2/man/menu_opts.3x ncurses-5.2/man/menu_pattern.3x ncurses-5.2/man/menu_post.3x ncurses-5.2/man/menu_requestname.3x ncurses-5.2/man/menu_spacing.3x ncurses-5.2/man/menu_userptr.3x ncurses-5.2/man/menu_win.3x ncurses-5.2/man/mitem_current.3x ncurses-5.2/man/mitem_name.3x ncurses-5.2/man/mitem_new.3x ncurses-5.2/man/mitem_opts.3x ncurses-5.2/man/mitem_userptr.3x ncurses-5.2/man/mitem_value.3x ncurses-5.2/man/mitem_visible.3x ncurses-5.2/man/ncurses.3x ncurses-5.2/man/panel.3x ncurses-5.2/man/resizeterm.3x ncurses-5.2/man/term.5 ncurses-5.2/man/term.7 ncurses-5.2/man/terminfo.head ncurses-5.2/man/terminfo.tail ncurses-5.2/man/tic.1m ncurses-5.2/man/toe.1m ncurses-5.2/man/tput.1 ncurses-5.2/man/tset.1 ncurses-5.2/man/wresize.3x ncurses-5.2/menu/Makefile.in ncurses-5.2/menu/READ.ME ncurses-5.2/menu/eti.h ncurses-5.2/menu/headers ncurses-5.2/menu/llib-lmenu ncurses-5.2/menu/m_attribs.c ncurses-5.2/menu/m_cursor.c ncurses-5.2/menu/m_driver.c ncurses-5.2/menu/m_format.c ncurses-5.2/menu/m_global.c ncurses-5.2/menu/m_hook.c ncurses-5.2/menu/m_item_cur.c ncurses-5.2/menu/m_item_nam.c ncurses-5.2/menu/m_item_new.c ncurses-5.2/menu/m_item_opt.c ncurses-5.2/menu/m_item_top.c ncurses-5.2/menu/m_item_use.c ncurses-5.2/menu/m_item_val.c ncurses-5.2/menu/m_item_vis.c ncurses-5.2/menu/m_items.c ncurses-5.2/menu/m_new.c ncurses-5.2/menu/m_opts.c ncurses-5.2/menu/m_pad.c ncurses-5.2/menu/m_pattern.c ncurses-5.2/menu/m_post.c ncurses-5.2/menu/m_req_name.c ncurses-5.2/menu/m_scale.c ncurses-5.2/menu/m_spacing.c ncurses-5.2/menu/m_sub.c ncurses-5.2/menu/m_userptr.c ncurses-5.2/menu/m_win.c ncurses-5.2/menu/menu.h ncurses-5.2/menu/menu.priv.h ncurses-5.2/menu/mf_common.h ncurses-5.2/menu/modules ncurses-5.2/misc/Makefile.in ncurses-5.2/misc/chkdef.cmd ncurses-5.2/misc/cleantic.cmd ncurses-5.2/misc/cmpdef.cmd ncurses-5.2/misc/emx.src ncurses-5.2/misc/form.def ncurses-5.2/misc/form.ref ncurses-5.2/misc/indent.pro ncurses-5.2/misc/makedef.cmd ncurses-5.2/misc/makellib ncurses-5.2/misc/menu.def ncurses-5.2/misc/menu.ref ncurses-5.2/misc/ncurses.def ncurses-5.2/misc/ncurses.ref ncurses-5.2/misc/panel.def ncurses-5.2/misc/panel.ref ncurses-5.2/misc/run_tic.in ncurses-5.2/misc/shlib ncurses-5.2/misc/tabset/std ncurses-5.2/misc/tabset/stdcrt ncurses-5.2/misc/tabset/vt100 ncurses-5.2/misc/tabset/vt300 ncurses-5.2/misc/tdlint ncurses-5.2/misc/terminfo.src ncurses-5.2/mk-0th.awk ncurses-5.2/mk-1st.awk ncurses-5.2/mk-2nd.awk ncurses-5.2/mkinstalldirs ncurses-5.2/ncurses/Makefile.in ncurses-5.2/ncurses/README ncurses-5.2/ncurses/SigAction.h ncurses-5.2/ncurses/base/MKkeyname.awk ncurses-5.2/ncurses/base/MKlib_gen.sh ncurses-5.2/ncurses/base/MKunctrl.awk ncurses-5.2/ncurses/base/README ncurses-5.2/ncurses/base/define_key.c ncurses-5.2/ncurses/base/keybound.c ncurses-5.2/ncurses/base/keyok.c ncurses-5.2/ncurses/base/lib_addch.c ncurses-5.2/ncurses/base/lib_addstr.c ncurses-5.2/ncurses/base/lib_beep.c ncurses-5.2/ncurses/base/lib_bkgd.c ncurses-5.2/ncurses/base/lib_box.c ncurses-5.2/ncurses/base/lib_chgat.c ncurses-5.2/ncurses/base/lib_clear.c ncurses-5.2/ncurses/base/lib_clearok.c ncurses-5.2/ncurses/base/lib_clrbot.c ncurses-5.2/ncurses/base/lib_clreol.c ncurses-5.2/ncurses/base/lib_color.c ncurses-5.2/ncurses/base/lib_colorset.c ncurses-5.2/ncurses/base/lib_delch.c ncurses-5.2/ncurses/base/lib_delwin.c ncurses-5.2/ncurses/base/lib_dft_fgbg.c ncurses-5.2/ncurses/base/lib_echo.c ncurses-5.2/ncurses/base/lib_endwin.c ncurses-5.2/ncurses/base/lib_erase.c ncurses-5.2/ncurses/base/lib_flash.c ncurses-5.2/ncurses/base/lib_freeall.c ncurses-5.2/ncurses/base/lib_getch.c ncurses-5.2/ncurses/base/lib_getstr.c ncurses-5.2/ncurses/base/lib_hline.c ncurses-5.2/ncurses/base/lib_immedok.c ncurses-5.2/ncurses/base/lib_inchstr.c ncurses-5.2/ncurses/base/lib_initscr.c ncurses-5.2/ncurses/base/lib_insch.c ncurses-5.2/ncurses/base/lib_insdel.c ncurses-5.2/ncurses/base/lib_insstr.c ncurses-5.2/ncurses/base/lib_instr.c ncurses-5.2/ncurses/base/lib_isendwin.c ncurses-5.2/ncurses/base/lib_leaveok.c ncurses-5.2/ncurses/base/lib_mouse.c ncurses-5.2/ncurses/base/lib_move.c ncurses-5.2/ncurses/base/lib_mvwin.c ncurses-5.2/ncurses/base/lib_newterm.c ncurses-5.2/ncurses/base/lib_newwin.c ncurses-5.2/ncurses/base/lib_nl.c ncurses-5.2/ncurses/base/lib_overlay.c ncurses-5.2/ncurses/base/lib_pad.c ncurses-5.2/ncurses/base/lib_printw.c ncurses-5.2/ncurses/base/lib_redrawln.c ncurses-5.2/ncurses/base/lib_refresh.c ncurses-5.2/ncurses/base/lib_restart.c ncurses-5.2/ncurses/base/lib_scanw.c ncurses-5.2/ncurses/base/lib_screen.c ncurses-5.2/ncurses/base/lib_scroll.c ncurses-5.2/ncurses/base/lib_scrollok.c ncurses-5.2/ncurses/base/lib_scrreg.c ncurses-5.2/ncurses/base/lib_set_term.c ncurses-5.2/ncurses/base/lib_slk.c ncurses-5.2/ncurses/base/lib_slkatr_set.c ncurses-5.2/ncurses/base/lib_slkatrof.c ncurses-5.2/ncurses/base/lib_slkatron.c ncurses-5.2/ncurses/base/lib_slkatrset.c ncurses-5.2/ncurses/base/lib_slkattr.c ncurses-5.2/ncurses/base/lib_slkclear.c ncurses-5.2/ncurses/base/lib_slkcolor.c ncurses-5.2/ncurses/base/lib_slkinit.c ncurses-5.2/ncurses/base/lib_slklab.c ncurses-5.2/ncurses/base/lib_slkrefr.c ncurses-5.2/ncurses/base/lib_slkset.c ncurses-5.2/ncurses/base/lib_slktouch.c ncurses-5.2/ncurses/base/lib_touch.c ncurses-5.2/ncurses/base/lib_ungetch.c ncurses-5.2/ncurses/base/lib_vline.c ncurses-5.2/ncurses/base/lib_wattroff.c ncurses-5.2/ncurses/base/lib_wattron.c ncurses-5.2/ncurses/base/lib_winch.c ncurses-5.2/ncurses/base/lib_window.c ncurses-5.2/ncurses/base/memmove.c ncurses-5.2/ncurses/base/nc_panel.c ncurses-5.2/ncurses/base/resizeterm.c ncurses-5.2/ncurses/base/safe_sprintf.c ncurses-5.2/ncurses/base/sigaction.c ncurses-5.2/ncurses/base/tries.c ncurses-5.2/ncurses/base/version.c ncurses-5.2/ncurses/base/vsscanf.c ncurses-5.2/ncurses/base/wresize.c ncurses-5.2/ncurses/curses.priv.h ncurses-5.2/ncurses/fifo_defs.h ncurses-5.2/ncurses/llib-lncurses ncurses-5.2/ncurses/modules ncurses-5.2/ncurses/tinfo/MKcaptab.awk ncurses-5.2/ncurses/tinfo/MKfallback.sh ncurses-5.2/ncurses/tinfo/MKnames.awk ncurses-5.2/ncurses/tinfo/README ncurses-5.2/ncurses/tinfo/access.c ncurses-5.2/ncurses/tinfo/add_tries.c ncurses-5.2/ncurses/tinfo/alloc_entry.c ncurses-5.2/ncurses/tinfo/alloc_ttype.c ncurses-5.2/ncurses/tinfo/captoinfo.c ncurses-5.2/ncurses/tinfo/comp_error.c ncurses-5.2/ncurses/tinfo/comp_expand.c ncurses-5.2/ncurses/tinfo/comp_hash.c ncurses-5.2/ncurses/tinfo/comp_parse.c ncurses-5.2/ncurses/tinfo/comp_scan.c ncurses-5.2/ncurses/tinfo/doalloc.c ncurses-5.2/ncurses/tinfo/free_ttype.c ncurses-5.2/ncurses/tinfo/getenv_num.c ncurses-5.2/ncurses/tinfo/home_terminfo.c ncurses-5.2/ncurses/tinfo/init_keytry.c ncurses-5.2/ncurses/tinfo/keys.list ncurses-5.2/ncurses/tinfo/lib_acs.c ncurses-5.2/ncurses/tinfo/lib_baudrate.c ncurses-5.2/ncurses/tinfo/lib_cur_term.c ncurses-5.2/ncurses/tinfo/lib_data.c ncurses-5.2/ncurses/tinfo/lib_has_cap.c ncurses-5.2/ncurses/tinfo/lib_kernel.c ncurses-5.2/ncurses/tinfo/lib_longname.c ncurses-5.2/ncurses/tinfo/lib_napms.c ncurses-5.2/ncurses/tinfo/lib_options.c ncurses-5.2/ncurses/tinfo/lib_print.c ncurses-5.2/ncurses/tinfo/lib_raw.c ncurses-5.2/ncurses/tinfo/lib_setup.c ncurses-5.2/ncurses/tinfo/lib_termcap.c ncurses-5.2/ncurses/tinfo/lib_termname.c ncurses-5.2/ncurses/tinfo/lib_tgoto.c ncurses-5.2/ncurses/tinfo/lib_ti.c ncurses-5.2/ncurses/tinfo/lib_tparm.c ncurses-5.2/ncurses/tinfo/lib_tputs.c ncurses-5.2/ncurses/tinfo/lib_ttyflags.c ncurses-5.2/ncurses/tinfo/make_keys.c ncurses-5.2/ncurses/tinfo/name_match.c ncurses-5.2/ncurses/tinfo/parse_entry.c ncurses-5.2/ncurses/tinfo/read_entry.c ncurses-5.2/ncurses/tinfo/read_termcap.c ncurses-5.2/ncurses/tinfo/setbuf.c ncurses-5.2/ncurses/tinfo/strings.c ncurses-5.2/ncurses/tinfo/write_entry.c ncurses-5.2/ncurses/trace/README ncurses-5.2/ncurses/trace/lib_trace.c ncurses-5.2/ncurses/trace/lib_traceatr.c ncurses-5.2/ncurses/trace/lib_tracebits.c ncurses-5.2/ncurses/trace/lib_tracechr.c ncurses-5.2/ncurses/trace/lib_tracedmp.c ncurses-5.2/ncurses/trace/lib_tracemse.c ncurses-5.2/ncurses/trace/trace_buf.c ncurses-5.2/ncurses/trace/trace_tries.c ncurses-5.2/ncurses/trace/trace_xnames.c ncurses-5.2/ncurses/tty/MKexpanded.sh ncurses-5.2/ncurses/tty/hardscroll.c ncurses-5.2/ncurses/tty/hashmap.c ncurses-5.2/ncurses/tty/lib_mvcur.c ncurses-5.2/ncurses/tty/lib_tstp.c ncurses-5.2/ncurses/tty/lib_twait.c ncurses-5.2/ncurses/tty/lib_vidattr.c ncurses-5.2/ncurses/tty/tty_display.h ncurses-5.2/ncurses/tty/tty_input.h ncurses-5.2/ncurses/tty/tty_update.c ncurses-5.2/panel/Makefile.in ncurses-5.2/panel/headers ncurses-5.2/panel/llib-lpanel ncurses-5.2/panel/modules ncurses-5.2/panel/p_above.c ncurses-5.2/panel/p_below.c ncurses-5.2/panel/p_bottom.c ncurses-5.2/panel/p_delete.c ncurses-5.2/panel/p_hidden.c ncurses-5.2/panel/p_hide.c ncurses-5.2/panel/p_move.c ncurses-5.2/panel/p_new.c ncurses-5.2/panel/p_replace.c ncurses-5.2/panel/p_show.c ncurses-5.2/panel/p_top.c ncurses-5.2/panel/p_update.c ncurses-5.2/panel/p_user.c ncurses-5.2/panel/p_win.c ncurses-5.2/panel/panel.c ncurses-5.2/panel/panel.h ncurses-5.2/panel/panel.priv.h ncurses-5.2/progs/MKtermsort.sh ncurses-5.2/progs/Makefile.in ncurses-5.2/progs/capconvert ncurses-5.2/progs/clear.c ncurses-5.2/progs/clear.sh ncurses-5.2/progs/dump_entry.c ncurses-5.2/progs/dump_entry.h ncurses-5.2/progs/infocmp.c ncurses-5.2/progs/modules ncurses-5.2/progs/progs.priv.h ncurses-5.2/progs/tic.c ncurses-5.2/progs/toe.c ncurses-5.2/progs/tput.c ncurses-5.2/progs/tset.c ncurses-5.2/sysdeps/unix/sysv/linux/Makefile ncurses-5.2/sysdeps/unix/sysv/linux/alpha/configure ncurses-5.2/sysdeps/unix/sysv/linux/configure ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sed ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sh ncurses-5.2/sysdeps/unix/sysv/linux/run_tic.sh ncurses-5.2/tack/COPYING ncurses-5.2/tack/HISTORY ncurses-5.2/tack/Makefile.in ncurses-5.2/tack/README ncurses-5.2/tack/ansi.c ncurses-5.2/tack/charset.c ncurses-5.2/tack/color.c ncurses-5.2/tack/control.c ncurses-5.2/tack/crum.c ncurses-5.2/tack/edit.c ncurses-5.2/tack/fun.c ncurses-5.2/tack/init.c ncurses-5.2/tack/menu.c ncurses-5.2/tack/modes.c ncurses-5.2/tack/modules ncurses-5.2/tack/output.c ncurses-5.2/tack/pad.c ncurses-5.2/tack/scan.c ncurses-5.2/tack/sync.c ncurses-5.2/tack/sysdep.c ncurses-5.2/tack/tack.1 ncurses-5.2/tack/tack.c ncurses-5.2/tack/tack.h ncurses-5.2/tar-copy.sh ncurses-5.2/test/Makefile.in ncurses-5.2/test/README ncurses-5.2/test/blue.c ncurses-5.2/test/bs.6 ncurses-5.2/test/bs.c ncurses-5.2/test/cardfile.c ncurses-5.2/test/cardfile.dat ncurses-5.2/test/configure ncurses-5.2/test/configure.in ncurses-5.2/test/ditto.c ncurses-5.2/test/dots.c ncurses-5.2/test/filter.c ncurses-5.2/test/firework.c ncurses-5.2/test/firstlast.c ncurses-5.2/test/gdc.6 ncurses-5.2/test/gdc.c ncurses-5.2/test/hanoi.c ncurses-5.2/test/hashtest.c ncurses-5.2/test/keynames.c ncurses-5.2/test/knight.c ncurses-5.2/test/lrtest.c ncurses-5.2/test/modules ncurses-5.2/test/ncurses.c ncurses-5.2/test/ncurses_tst.hin ncurses-5.2/test/newdemo.c ncurses-5.2/test/railroad.c ncurses-5.2/test/rain.c ncurses-5.2/test/tclock.c ncurses-5.2/test/test.priv.h ncurses-5.2/test/testaddch.c ncurses-5.2/test/testcurs.c ncurses-5.2/test/testscanw.c ncurses-5.2/test/tracemunch ncurses-5.2/test/view.c ncurses-5.2/test/worm.c ncurses-5.2/test/xmas.c ncurses-5.3/ANNOUNCE ncurses-5.3/Ada95/Makefile.in ncurses-5.3/Ada95/README ncurses-5.3/Ada95/TODO ncurses-5.3/Ada95/gen/Makefile.in ncurses-5.3/Ada95/gen/gen.c ncurses-5.3/Ada95/gen/html.m4 ncurses-5.3/Ada95/gen/normal.m4 ncurses-5.3/Ada95/gen/table.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-aux.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-forms.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-menus.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-mouse.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-panels.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses-trace.ads.m4 ncurses-5.3/Ada95/gen/terminal_interface-curses.ads.m4 ncurses-5.3/Ada95/samples/Makefile.in ncurses-5.3/Ada95/samples/README ncurses-5.3/Ada95/samples/explain.txt ncurses-5.3/Ada95/samples/ncurses.adb ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.adb ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.ads ncurses-5.3/Ada95/samples/ncurses2-acs_display.adb ncurses-5.3/Ada95/samples/ncurses2-acs_display.ads ncurses-5.3/Ada95/samples/ncurses2-attr_test.adb ncurses-5.3/Ada95/samples/ncurses2-attr_test.ads ncurses-5.3/Ada95/samples/ncurses2-color_edit.adb ncurses-5.3/Ada95/samples/ncurses2-color_edit.ads ncurses-5.3/Ada95/samples/ncurses2-color_test.adb ncurses-5.3/Ada95/samples/ncurses2-color_test.ads ncurses-5.3/Ada95/samples/ncurses2-demo_forms.adb ncurses-5.3/Ada95/samples/ncurses2-demo_forms.ads ncurses-5.3/Ada95/samples/ncurses2-demo_pad.adb ncurses-5.3/Ada95/samples/ncurses2-demo_pad.ads ncurses-5.3/Ada95/samples/ncurses2-demo_panels.adb ncurses-5.3/Ada95/samples/ncurses2-demo_panels.ads ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.adb ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.ads ncurses-5.3/Ada95/samples/ncurses2-genericputs.adb ncurses-5.3/Ada95/samples/ncurses2-genericputs.ads ncurses-5.3/Ada95/samples/ncurses2-getch.ads ncurses-5.3/Ada95/samples/ncurses2-getch_test.adb ncurses-5.3/Ada95/samples/ncurses2-getch_test.ads ncurses-5.3/Ada95/samples/ncurses2-getopt.adb ncurses-5.3/Ada95/samples/ncurses2-getopt.ads ncurses-5.3/Ada95/samples/ncurses2-m.adb ncurses-5.3/Ada95/samples/ncurses2-m.ads ncurses-5.3/Ada95/samples/ncurses2-menu_test.adb ncurses-5.3/Ada95/samples/ncurses2-menu_test.ads ncurses-5.3/Ada95/samples/ncurses2-overlap_test.adb ncurses-5.3/Ada95/samples/ncurses2-overlap_test.ads ncurses-5.3/Ada95/samples/ncurses2-slk_test.adb ncurses-5.3/Ada95/samples/ncurses2-slk_test.ads ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.adb ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.ads ncurses-5.3/Ada95/samples/ncurses2-trace_set.adb ncurses-5.3/Ada95/samples/ncurses2-trace_set.ads ncurses-5.3/Ada95/samples/ncurses2-util.adb ncurses-5.3/Ada95/samples/ncurses2-util.ads ncurses-5.3/Ada95/samples/ncurses2.ads ncurses-5.3/Ada95/samples/rain.adb ncurses-5.3/Ada95/samples/rain.ads ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.adb ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.ads ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.adb ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.ads ncurses-5.3/Ada95/samples/sample-curses_demo.adb ncurses-5.3/Ada95/samples/sample-curses_demo.ads ncurses-5.3/Ada95/samples/sample-explanation.adb ncurses-5.3/Ada95/samples/sample-explanation.ads ncurses-5.3/Ada95/samples/sample-form_demo-aux.adb ncurses-5.3/Ada95/samples/sample-form_demo-aux.ads ncurses-5.3/Ada95/samples/sample-form_demo-handler.adb ncurses-5.3/Ada95/samples/sample-form_demo-handler.ads ncurses-5.3/Ada95/samples/sample-form_demo.adb ncurses-5.3/Ada95/samples/sample-form_demo.ads ncurses-5.3/Ada95/samples/sample-function_key_setting.adb ncurses-5.3/Ada95/samples/sample-function_key_setting.ads ncurses-5.3/Ada95/samples/sample-header_handler.adb ncurses-5.3/Ada95/samples/sample-header_handler.ads ncurses-5.3/Ada95/samples/sample-helpers.adb ncurses-5.3/Ada95/samples/sample-helpers.ads ncurses-5.3/Ada95/samples/sample-keyboard_handler.adb ncurses-5.3/Ada95/samples/sample-keyboard_handler.ads ncurses-5.3/Ada95/samples/sample-manifest.ads ncurses-5.3/Ada95/samples/sample-menu_demo-aux.adb ncurses-5.3/Ada95/samples/sample-menu_demo-aux.ads ncurses-5.3/Ada95/samples/sample-menu_demo-handler.adb ncurses-5.3/Ada95/samples/sample-menu_demo-handler.ads ncurses-5.3/Ada95/samples/sample-menu_demo.adb ncurses-5.3/Ada95/samples/sample-menu_demo.ads ncurses-5.3/Ada95/samples/sample-my_field_type.adb ncurses-5.3/Ada95/samples/sample-my_field_type.ads ncurses-5.3/Ada95/samples/sample-text_io_demo.adb ncurses-5.3/Ada95/samples/sample-text_io_demo.ads ncurses-5.3/Ada95/samples/sample.adb ncurses-5.3/Ada95/samples/sample.ads ncurses-5.3/Ada95/samples/status.adb ncurses-5.3/Ada95/samples/status.ads ncurses-5.3/Ada95/samples/tour.adb ncurses-5.3/Ada95/samples/tour.ads ncurses-5.3/Ada95/src/Makefile.in ncurses-5.3/Ada95/src/terminal_interface-curses-aux.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.ads ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_user_data.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms-form_user_data.adb ncurses-5.3/Ada95/src/terminal_interface-curses-forms.adb ncurses-5.3/Ada95/src/terminal_interface-curses-menus-item_user_data.adb ncurses-5.3/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb ncurses-5.3/Ada95/src/terminal_interface-curses-menus.adb ncurses-5.3/Ada95/src/terminal_interface-curses-mouse.adb ncurses-5.3/Ada95/src/terminal_interface-curses-panels-user_data.adb ncurses-5.3/Ada95/src/terminal_interface-curses-panels.adb ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.adb ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.ads ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.adb ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.ads ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.adb ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.ads ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.adb ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.ads ncurses-5.3/Ada95/src/terminal_interface-curses-trace.adb_p ncurses-5.3/Ada95/src/terminal_interface-curses.adb ncurses-5.3/Ada95/src/terminal_interface.ads ncurses-5.3/INSTALL ncurses-5.3/MANIFEST ncurses-5.3/Makefile.glibc ncurses-5.3/Makefile.in ncurses-5.3/Makefile.os2 ncurses-5.3/NEWS ncurses-5.3/README ncurses-5.3/README.emx ncurses-5.3/README.glibc ncurses-5.3/TO-DO ncurses-5.3/aclocal.m4 ncurses-5.3/announce.html.in ncurses-5.3/c++/Makefile.in ncurses-5.3/c++/NEWS ncurses-5.3/c++/PROBLEMS ncurses-5.3/c++/README-first ncurses-5.3/c++/cursesapp.cc ncurses-5.3/c++/cursesapp.h ncurses-5.3/c++/cursesf.cc ncurses-5.3/c++/cursesf.h ncurses-5.3/c++/cursesm.cc ncurses-5.3/c++/cursesm.h ncurses-5.3/c++/cursesmain.cc ncurses-5.3/c++/cursesp.cc ncurses-5.3/c++/cursesp.h ncurses-5.3/c++/cursespad.cc ncurses-5.3/c++/cursesw.cc ncurses-5.3/c++/cursesw.h ncurses-5.3/c++/cursslk.cc ncurses-5.3/c++/cursslk.h ncurses-5.3/c++/demo.cc ncurses-5.3/c++/edit_cfg.sh ncurses-5.3/c++/etip.h.in ncurses-5.3/c++/headers ncurses-5.3/c++/internal.h ncurses-5.3/c++/modules ncurses-5.3/config.guess ncurses-5.3/config.log ncurses-5.3/config.sub ncurses-5.3/configure ncurses-5.3/configure.in ncurses-5.3/convert_configure.pl ncurses-5.3/dist.mk ncurses-5.3/doc/hackguide.doc ncurses-5.3/doc/html/Ada95.html ncurses-5.3/doc/html/ada/files.htm ncurses-5.3/doc/html/ada/files/T.htm ncurses-5.3/doc/html/ada/funcs.htm ncurses-5.3/doc/html/ada/funcs/A.htm ncurses-5.3/doc/html/ada/funcs/B.htm ncurses-5.3/doc/html/ada/funcs/C.htm ncurses-5.3/doc/html/ada/funcs/D.htm ncurses-5.3/doc/html/ada/funcs/E.htm ncurses-5.3/doc/html/ada/funcs/F.htm ncurses-5.3/doc/html/ada/funcs/G.htm ncurses-5.3/doc/html/ada/funcs/H.htm ncurses-5.3/doc/html/ada/funcs/I.htm ncurses-5.3/doc/html/ada/funcs/K.htm ncurses-5.3/doc/html/ada/funcs/L.htm ncurses-5.3/doc/html/ada/funcs/M.htm ncurses-5.3/doc/html/ada/funcs/N.htm ncurses-5.3/doc/html/ada/funcs/O.htm ncurses-5.3/doc/html/ada/funcs/P.htm ncurses-5.3/doc/html/ada/funcs/Q.htm ncurses-5.3/doc/html/ada/funcs/R.htm ncurses-5.3/doc/html/ada/funcs/S.htm ncurses-5.3/doc/html/ada/funcs/T.htm ncurses-5.3/doc/html/ada/funcs/U.htm ncurses-5.3/doc/html/ada/funcs/V.htm ncurses-5.3/doc/html/ada/funcs/W.htm ncurses-5.3/doc/html/ada/index.htm ncurses-5.3/doc/html/ada/main.htm ncurses-5.3/doc/html/ada/table.html ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__ads.htm ncurses-5.3/doc/html/ada/terminal_interface-curses__adb.htm ncurses-5.3/doc/html/ada/terminal_interface-curses__ads.htm ncurses-5.3/doc/html/ada/terminal_interface__ads.htm ncurses-5.3/doc/html/announce.html ncurses-5.3/doc/html/hackguide.html ncurses-5.3/doc/html/index.html ncurses-5.3/doc/html/man/captoinfo.1m.html ncurses-5.3/doc/html/man/clear.1.html ncurses-5.3/doc/html/man/curs_add_wch.3x.html ncurses-5.3/doc/html/man/curs_add_wchstr.3x.html ncurses-5.3/doc/html/man/curs_addch.3x.html ncurses-5.3/doc/html/man/curs_addchstr.3x.html ncurses-5.3/doc/html/man/curs_addstr.3x.html ncurses-5.3/doc/html/man/curs_addwstr.3x.html ncurses-5.3/doc/html/man/curs_attr.3x.html ncurses-5.3/doc/html/man/curs_beep.3x.html ncurses-5.3/doc/html/man/curs_bkgd.3x.html ncurses-5.3/doc/html/man/curs_bkgrnd.3x.html ncurses-5.3/doc/html/man/curs_border.3x.html ncurses-5.3/doc/html/man/curs_border_set.3x.html ncurses-5.3/doc/html/man/curs_clear.3x.html ncurses-5.3/doc/html/man/curs_color.3x.html ncurses-5.3/doc/html/man/curs_delch.3x.html ncurses-5.3/doc/html/man/curs_deleteln.3x.html ncurses-5.3/doc/html/man/curs_extend.3x.html ncurses-5.3/doc/html/man/curs_get_wch.3x.html ncurses-5.3/doc/html/man/curs_get_wstr.3x.html ncurses-5.3/doc/html/man/curs_getcchar.3x.html ncurses-5.3/doc/html/man/curs_getch.3x.html ncurses-5.3/doc/html/man/curs_getstr.3x.html ncurses-5.3/doc/html/man/curs_getyx.3x.html ncurses-5.3/doc/html/man/curs_in_wch.3x.html ncurses-5.3/doc/html/man/curs_in_wchstr.3x.html ncurses-5.3/doc/html/man/curs_inch.3x.html ncurses-5.3/doc/html/man/curs_inchstr.3x.html ncurses-5.3/doc/html/man/curs_initscr.3x.html ncurses-5.3/doc/html/man/curs_inopts.3x.html ncurses-5.3/doc/html/man/curs_ins_wch.3x.html ncurses-5.3/doc/html/man/curs_ins_wstr.3x.html ncurses-5.3/doc/html/man/curs_insch.3x.html ncurses-5.3/doc/html/man/curs_insstr.3x.html ncurses-5.3/doc/html/man/curs_instr.3x.html ncurses-5.3/doc/html/man/curs_inwstr.3x.html ncurses-5.3/doc/html/man/curs_kernel.3x.html ncurses-5.3/doc/html/man/curs_mouse.3x.html ncurses-5.3/doc/html/man/curs_move.3x.html ncurses-5.3/doc/html/man/curs_outopts.3x.html ncurses-5.3/doc/html/man/curs_overlay.3x.html ncurses-5.3/doc/html/man/curs_pad.3x.html ncurses-5.3/doc/html/man/curs_print.3x.html ncurses-5.3/doc/html/man/curs_printw.3x.html ncurses-5.3/doc/html/man/curs_refresh.3x.html ncurses-5.3/doc/html/man/curs_scanw.3x.html ncurses-5.3/doc/html/man/curs_scr_dump.3x.html ncurses-5.3/doc/html/man/curs_scroll.3x.html ncurses-5.3/doc/html/man/curs_slk.3x.html ncurses-5.3/doc/html/man/curs_termattrs.3x.html ncurses-5.3/doc/html/man/curs_termcap.3x.html ncurses-5.3/doc/html/man/curs_terminfo.3x.html ncurses-5.3/doc/html/man/curs_touch.3x.html ncurses-5.3/doc/html/man/curs_trace.3x.html ncurses-5.3/doc/html/man/curs_util.3x.html ncurses-5.3/doc/html/man/curs_window.3x.html ncurses-5.3/doc/html/man/default_colors.3x.html ncurses-5.3/doc/html/man/define_key.3x.html ncurses-5.3/doc/html/man/form.3x.html ncurses-5.3/doc/html/man/form_cursor.3x.html ncurses-5.3/doc/html/man/form_data.3x.html ncurses-5.3/doc/html/man/form_driver.3x.html ncurses-5.3/doc/html/man/form_field.3x.html ncurses-5.3/doc/html/man/form_field_attributes.3x.html ncurses-5.3/doc/html/man/form_field_buffer.3x.html ncurses-5.3/doc/html/man/form_field_info.3x.html ncurses-5.3/doc/html/man/form_field_just.3x.html ncurses-5.3/doc/html/man/form_field_new.3x.html ncurses-5.3/doc/html/man/form_field_opts.3x.html ncurses-5.3/doc/html/man/form_field_userptr.3x.html ncurses-5.3/doc/html/man/form_field_validation.3x.html ncurses-5.3/doc/html/man/form_fieldtype.3x.html ncurses-5.3/doc/html/man/form_hook.3x.html ncurses-5.3/doc/html/man/form_new.3x.html ncurses-5.3/doc/html/man/form_new_page.3x.html ncurses-5.3/doc/html/man/form_opts.3x.html ncurses-5.3/doc/html/man/form_page.3x.html ncurses-5.3/doc/html/man/form_post.3x.html ncurses-5.3/doc/html/man/form_requestname.3x.html ncurses-5.3/doc/html/man/form_userptr.3x.html ncurses-5.3/doc/html/man/form_win.3x.html ncurses-5.3/doc/html/man/infocmp.1m.html ncurses-5.3/doc/html/man/infotocap.1m.html ncurses-5.3/doc/html/man/keybound.3x.html ncurses-5.3/doc/html/man/keyok.3x.html ncurses-5.3/doc/html/man/menu.3x.html ncurses-5.3/doc/html/man/menu_attributes.3x.html ncurses-5.3/doc/html/man/menu_cursor.3x.html ncurses-5.3/doc/html/man/menu_driver.3x.html ncurses-5.3/doc/html/man/menu_format.3x.html ncurses-5.3/doc/html/man/menu_hook.3x.html ncurses-5.3/doc/html/man/menu_items.3x.html ncurses-5.3/doc/html/man/menu_mark.3x.html ncurses-5.3/doc/html/man/menu_new.3x.html ncurses-5.3/doc/html/man/menu_opts.3x.html ncurses-5.3/doc/html/man/menu_pattern.3x.html ncurses-5.3/doc/html/man/menu_post.3x.html ncurses-5.3/doc/html/man/menu_requestname.3x.html ncurses-5.3/doc/html/man/menu_spacing.3x.html ncurses-5.3/doc/html/man/menu_userptr.3x.html ncurses-5.3/doc/html/man/menu_win.3x.html ncurses-5.3/doc/html/man/mitem_current.3x.html ncurses-5.3/doc/html/man/mitem_name.3x.html ncurses-5.3/doc/html/man/mitem_new.3x.html ncurses-5.3/doc/html/man/mitem_opts.3x.html ncurses-5.3/doc/html/man/mitem_userptr.3x.html ncurses-5.3/doc/html/man/mitem_value.3x.html ncurses-5.3/doc/html/man/mitem_visible.3x.html ncurses-5.3/doc/html/man/ncurses.3x.html ncurses-5.3/doc/html/man/panel.3x.html ncurses-5.3/doc/html/man/resizeterm.3x.html ncurses-5.3/doc/html/man/term.5.html ncurses-5.3/doc/html/man/term.7.html ncurses-5.3/doc/html/man/terminfo.5.html ncurses-5.3/doc/html/man/tic.1m.html ncurses-5.3/doc/html/man/toe.1m.html ncurses-5.3/doc/html/man/tput.1.html ncurses-5.3/doc/html/man/tset.1.html ncurses-5.3/doc/html/man/wresize.3x.html ncurses-5.3/doc/html/ncurses-intro.html ncurses-5.3/doc/ncurses-intro.doc ncurses-5.3/form/Makefile.in ncurses-5.3/form/READ.ME ncurses-5.3/form/fld_arg.c ncurses-5.3/form/fld_attr.c ncurses-5.3/form/fld_current.c ncurses-5.3/form/fld_def.c ncurses-5.3/form/fld_dup.c ncurses-5.3/form/fld_ftchoice.c ncurses-5.3/form/fld_ftlink.c ncurses-5.3/form/fld_info.c ncurses-5.3/form/fld_just.c ncurses-5.3/form/fld_link.c ncurses-5.3/form/fld_max.c ncurses-5.3/form/fld_move.c ncurses-5.3/form/fld_newftyp.c ncurses-5.3/form/fld_opts.c ncurses-5.3/form/fld_pad.c ncurses-5.3/form/fld_page.c ncurses-5.3/form/fld_stat.c ncurses-5.3/form/fld_type.c ncurses-5.3/form/fld_user.c ncurses-5.3/form/form.h ncurses-5.3/form/form.priv.h ncurses-5.3/form/frm_cursor.c ncurses-5.3/form/frm_data.c ncurses-5.3/form/frm_def.c ncurses-5.3/form/frm_driver.c ncurses-5.3/form/frm_hook.c ncurses-5.3/form/frm_opts.c ncurses-5.3/form/frm_page.c ncurses-5.3/form/frm_post.c ncurses-5.3/form/frm_req_name.c ncurses-5.3/form/frm_scale.c ncurses-5.3/form/frm_sub.c ncurses-5.3/form/frm_user.c ncurses-5.3/form/frm_win.c ncurses-5.3/form/fty_alnum.c ncurses-5.3/form/fty_alpha.c ncurses-5.3/form/fty_enum.c ncurses-5.3/form/fty_int.c ncurses-5.3/form/fty_ipv4.c ncurses-5.3/form/fty_num.c ncurses-5.3/form/fty_regex.c ncurses-5.3/form/headers ncurses-5.3/form/llib-lform ncurses-5.3/form/llib-lformw ncurses-5.3/form/modules ncurses-5.3/include/Caps ncurses-5.3/include/Caps.aix4 ncurses-5.3/include/Caps.hpux11 ncurses-5.3/include/Caps.keys ncurses-5.3/include/Caps.osf1r5 ncurses-5.3/include/Caps.uwin ncurses-5.3/include/MKhashsize.sh ncurses-5.3/include/MKkey_defs.sh ncurses-5.3/include/MKncurses_def.sh ncurses-5.3/include/MKparametrized.sh ncurses-5.3/include/MKterm.h.awk.in ncurses-5.3/include/Makefile.in ncurses-5.3/include/capdefaults.c ncurses-5.3/include/curses.h.in ncurses-5.3/include/curses.tail ncurses-5.3/include/curses.wide ncurses-5.3/include/edit_cfg.sh ncurses-5.3/include/headers ncurses-5.3/include/nc_alloc.h ncurses-5.3/include/nc_panel.h ncurses-5.3/include/ncurses_cfg.hin ncurses-5.3/include/ncurses_defs ncurses-5.3/include/ncurses_dll.h ncurses-5.3/include/term_entry.h ncurses-5.3/include/termcap.h.in ncurses-5.3/include/tic.h ncurses-5.3/include/unctrl.h.in ncurses-5.3/install-sh ncurses-5.3/man/MKterminfo.sh ncurses-5.3/man/Makefile.in ncurses-5.3/man/captoinfo.1m ncurses-5.3/man/clear.1 ncurses-5.3/man/curs_add_wch.3x ncurses-5.3/man/curs_add_wchstr.3x ncurses-5.3/man/curs_addch.3x ncurses-5.3/man/curs_addchstr.3x ncurses-5.3/man/curs_addstr.3x ncurses-5.3/man/curs_addwstr.3x ncurses-5.3/man/curs_attr.3x ncurses-5.3/man/curs_beep.3x ncurses-5.3/man/curs_bkgd.3x ncurses-5.3/man/curs_bkgrnd.3x ncurses-5.3/man/curs_border.3x ncurses-5.3/man/curs_border_set.3x ncurses-5.3/man/curs_clear.3x ncurses-5.3/man/curs_color.3x ncurses-5.3/man/curs_delch.3x ncurses-5.3/man/curs_deleteln.3x ncurses-5.3/man/curs_extend.3x ncurses-5.3/man/curs_get_wch.3x ncurses-5.3/man/curs_get_wstr.3x ncurses-5.3/man/curs_getcchar.3x ncurses-5.3/man/curs_getch.3x ncurses-5.3/man/curs_getstr.3x ncurses-5.3/man/curs_getyx.3x ncurses-5.3/man/curs_in_wch.3x ncurses-5.3/man/curs_in_wchstr.3x ncurses-5.3/man/curs_inch.3x ncurses-5.3/man/curs_inchstr.3x ncurses-5.3/man/curs_initscr.3x ncurses-5.3/man/curs_inopts.3x ncurses-5.3/man/curs_ins_wch.3x ncurses-5.3/man/curs_ins_wstr.3x ncurses-5.3/man/curs_insch.3x ncurses-5.3/man/curs_insstr.3x ncurses-5.3/man/curs_instr.3x ncurses-5.3/man/curs_inwstr.3x ncurses-5.3/man/curs_kernel.3x ncurses-5.3/man/curs_mouse.3x ncurses-5.3/man/curs_move.3x ncurses-5.3/man/curs_outopts.3x ncurses-5.3/man/curs_overlay.3x ncurses-5.3/man/curs_pad.3x ncurses-5.3/man/curs_print.3x ncurses-5.3/man/curs_printw.3x ncurses-5.3/man/curs_refresh.3x ncurses-5.3/man/curs_scanw.3x ncurses-5.3/man/curs_scr_dump.3x ncurses-5.3/man/curs_scroll.3x ncurses-5.3/man/curs_slk.3x ncurses-5.3/man/curs_termattrs.3x ncurses-5.3/man/curs_termcap.3x ncurses-5.3/man/curs_terminfo.3x ncurses-5.3/man/curs_touch.3x ncurses-5.3/man/curs_trace.3x ncurses-5.3/man/curs_util.3x ncurses-5.3/man/curs_window.3x ncurses-5.3/man/default_colors.3x ncurses-5.3/man/define_key.3x ncurses-5.3/man/form.3x ncurses-5.3/man/form_cursor.3x ncurses-5.3/man/form_data.3x ncurses-5.3/man/form_driver.3x ncurses-5.3/man/form_field.3x ncurses-5.3/man/form_field_attributes.3x ncurses-5.3/man/form_field_buffer.3x ncurses-5.3/man/form_field_info.3x ncurses-5.3/man/form_field_just.3x ncurses-5.3/man/form_field_new.3x ncurses-5.3/man/form_field_opts.3x ncurses-5.3/man/form_field_userptr.3x ncurses-5.3/man/form_field_validation.3x ncurses-5.3/man/form_fieldtype.3x ncurses-5.3/man/form_hook.3x ncurses-5.3/man/form_new.3x ncurses-5.3/man/form_new_page.3x ncurses-5.3/man/form_opts.3x ncurses-5.3/man/form_page.3x ncurses-5.3/man/form_post.3x ncurses-5.3/man/form_requestname.3x ncurses-5.3/man/form_userptr.3x ncurses-5.3/man/form_win.3x ncurses-5.3/man/infocmp.1m ncurses-5.3/man/infotocap.1m ncurses-5.3/man/keybound.3x ncurses-5.3/man/keyok.3x ncurses-5.3/man/make_sed.sh ncurses-5.3/man/man_db.renames ncurses-5.3/man/manlinks.sed ncurses-5.3/man/menu.3x ncurses-5.3/man/menu_attributes.3x ncurses-5.3/man/menu_cursor.3x ncurses-5.3/man/menu_driver.3x ncurses-5.3/man/menu_format.3x ncurses-5.3/man/menu_hook.3x ncurses-5.3/man/menu_items.3x ncurses-5.3/man/menu_mark.3x ncurses-5.3/man/menu_new.3x ncurses-5.3/man/menu_opts.3x ncurses-5.3/man/menu_pattern.3x ncurses-5.3/man/menu_post.3x ncurses-5.3/man/menu_requestname.3x ncurses-5.3/man/menu_spacing.3x ncurses-5.3/man/menu_userptr.3x ncurses-5.3/man/menu_win.3x ncurses-5.3/man/mitem_current.3x ncurses-5.3/man/mitem_name.3x ncurses-5.3/man/mitem_new.3x ncurses-5.3/man/mitem_opts.3x ncurses-5.3/man/mitem_userptr.3x ncurses-5.3/man/mitem_value.3x ncurses-5.3/man/mitem_visible.3x ncurses-5.3/man/ncurses.3x ncurses-5.3/man/panel.3x ncurses-5.3/man/resizeterm.3x ncurses-5.3/man/term.5 ncurses-5.3/man/term.7 ncurses-5.3/man/terminfo.head ncurses-5.3/man/terminfo.tail ncurses-5.3/man/tic.1m ncurses-5.3/man/toe.1m ncurses-5.3/man/tput.1 ncurses-5.3/man/tset.1 ncurses-5.3/man/wresize.3x ncurses-5.3/menu/Makefile.in ncurses-5.3/menu/READ.ME ncurses-5.3/menu/eti.h ncurses-5.3/menu/headers ncurses-5.3/menu/llib-lmenu ncurses-5.3/menu/llib-lmenuw ncurses-5.3/menu/m_attribs.c ncurses-5.3/menu/m_cursor.c ncurses-5.3/menu/m_driver.c ncurses-5.3/menu/m_format.c ncurses-5.3/menu/m_global.c ncurses-5.3/menu/m_hook.c ncurses-5.3/menu/m_item_cur.c ncurses-5.3/menu/m_item_nam.c ncurses-5.3/menu/m_item_new.c ncurses-5.3/menu/m_item_opt.c ncurses-5.3/menu/m_item_top.c ncurses-5.3/menu/m_item_use.c ncurses-5.3/menu/m_item_val.c ncurses-5.3/menu/m_item_vis.c ncurses-5.3/menu/m_items.c ncurses-5.3/menu/m_new.c ncurses-5.3/menu/m_opts.c ncurses-5.3/menu/m_pad.c ncurses-5.3/menu/m_pattern.c ncurses-5.3/menu/m_post.c ncurses-5.3/menu/m_req_name.c ncurses-5.3/menu/m_scale.c ncurses-5.3/menu/m_spacing.c ncurses-5.3/menu/m_sub.c ncurses-5.3/menu/m_userptr.c ncurses-5.3/menu/m_win.c ncurses-5.3/menu/menu.h ncurses-5.3/menu/menu.priv.h ncurses-5.3/menu/mf_common.h ncurses-5.3/menu/modules ncurses-5.3/misc/Makefile.in ncurses-5.3/misc/chkdef.cmd ncurses-5.3/misc/cleantic.cmd ncurses-5.3/misc/cmpdef.cmd ncurses-5.3/misc/emx.src ncurses-5.3/misc/form.def ncurses-5.3/misc/form.ref ncurses-5.3/misc/indent.pro ncurses-5.3/misc/makedef.cmd ncurses-5.3/misc/makellib ncurses-5.3/misc/menu.def ncurses-5.3/misc/menu.ref ncurses-5.3/misc/ncurses.def ncurses-5.3/misc/ncurses.ref ncurses-5.3/misc/panel.def ncurses-5.3/misc/panel.ref ncurses-5.3/misc/run_tic.in ncurses-5.3/misc/run_tic.sh ncurses-5.3/misc/shlib ncurses-5.3/misc/tabset/std ncurses-5.3/misc/tabset/stdcrt ncurses-5.3/misc/tabset/vt100 ncurses-5.3/misc/tabset/vt300 ncurses-5.3/misc/tdlint ncurses-5.3/misc/terminfo.src ncurses-5.3/mk-0th.awk ncurses-5.3/mk-1st.awk ncurses-5.3/mk-2nd.awk ncurses-5.3/mkinstalldirs ncurses-5.3/ncurses/Makefile.in ncurses-5.3/ncurses/README ncurses-5.3/ncurses/README.IZ ncurses-5.3/ncurses/SigAction.h ncurses-5.3/ncurses/base/MKkeyname.awk ncurses-5.3/ncurses/base/MKlib_gen.sh ncurses-5.3/ncurses/base/MKunctrl.awk ncurses-5.3/ncurses/base/README ncurses-5.3/ncurses/base/define_key.c ncurses-5.3/ncurses/base/keybound.c ncurses-5.3/ncurses/base/keyok.c ncurses-5.3/ncurses/base/lib_addch.c ncurses-5.3/ncurses/base/lib_addstr.c ncurses-5.3/ncurses/base/lib_beep.c ncurses-5.3/ncurses/base/lib_bkgd.c ncurses-5.3/ncurses/base/lib_box.c ncurses-5.3/ncurses/base/lib_chgat.c ncurses-5.3/ncurses/base/lib_clear.c ncurses-5.3/ncurses/base/lib_clearok.c ncurses-5.3/ncurses/base/lib_clrbot.c ncurses-5.3/ncurses/base/lib_clreol.c ncurses-5.3/ncurses/base/lib_color.c ncurses-5.3/ncurses/base/lib_colorset.c ncurses-5.3/ncurses/base/lib_delch.c ncurses-5.3/ncurses/base/lib_delwin.c ncurses-5.3/ncurses/base/lib_dft_fgbg.c ncurses-5.3/ncurses/base/lib_echo.c ncurses-5.3/ncurses/base/lib_endwin.c ncurses-5.3/ncurses/base/lib_erase.c ncurses-5.3/ncurses/base/lib_flash.c ncurses-5.3/ncurses/base/lib_freeall.c ncurses-5.3/ncurses/base/lib_getch.c ncurses-5.3/ncurses/base/lib_getstr.c ncurses-5.3/ncurses/base/lib_hline.c ncurses-5.3/ncurses/base/lib_immedok.c ncurses-5.3/ncurses/base/lib_inchstr.c ncurses-5.3/ncurses/base/lib_initscr.c ncurses-5.3/ncurses/base/lib_insch.c ncurses-5.3/ncurses/base/lib_insdel.c ncurses-5.3/ncurses/base/lib_insstr.c ncurses-5.3/ncurses/base/lib_instr.c ncurses-5.3/ncurses/base/lib_isendwin.c ncurses-5.3/ncurses/base/lib_leaveok.c ncurses-5.3/ncurses/base/lib_mouse.c ncurses-5.3/ncurses/base/lib_move.c ncurses-5.3/ncurses/base/lib_mvwin.c ncurses-5.3/ncurses/base/lib_newterm.c ncurses-5.3/ncurses/base/lib_newwin.c ncurses-5.3/ncurses/base/lib_nl.c ncurses-5.3/ncurses/base/lib_overlay.c ncurses-5.3/ncurses/base/lib_pad.c ncurses-5.3/ncurses/base/lib_printw.c ncurses-5.3/ncurses/base/lib_redrawln.c ncurses-5.3/ncurses/base/lib_refresh.c ncurses-5.3/ncurses/base/lib_restart.c ncurses-5.3/ncurses/base/lib_scanw.c ncurses-5.3/ncurses/base/lib_screen.c ncurses-5.3/ncurses/base/lib_scroll.c ncurses-5.3/ncurses/base/lib_scrollok.c ncurses-5.3/ncurses/base/lib_scrreg.c ncurses-5.3/ncurses/base/lib_set_term.c ncurses-5.3/ncurses/base/lib_slk.c ncurses-5.3/ncurses/base/lib_slkatr_set.c ncurses-5.3/ncurses/base/lib_slkatrof.c ncurses-5.3/ncurses/base/lib_slkatron.c ncurses-5.3/ncurses/base/lib_slkatrset.c ncurses-5.3/ncurses/base/lib_slkattr.c ncurses-5.3/ncurses/base/lib_slkclear.c ncurses-5.3/ncurses/base/lib_slkcolor.c ncurses-5.3/ncurses/base/lib_slkinit.c ncurses-5.3/ncurses/base/lib_slklab.c ncurses-5.3/ncurses/base/lib_slkrefr.c ncurses-5.3/ncurses/base/lib_slkset.c ncurses-5.3/ncurses/base/lib_slktouch.c ncurses-5.3/ncurses/base/lib_touch.c ncurses-5.3/ncurses/base/lib_ungetch.c ncurses-5.3/ncurses/base/lib_vline.c ncurses-5.3/ncurses/base/lib_wattroff.c ncurses-5.3/ncurses/base/lib_wattron.c ncurses-5.3/ncurses/base/lib_winch.c ncurses-5.3/ncurses/base/lib_window.c ncurses-5.3/ncurses/base/memmove.c ncurses-5.3/ncurses/base/nc_panel.c ncurses-5.3/ncurses/base/resizeterm.c ncurses-5.3/ncurses/base/safe_sprintf.c ncurses-5.3/ncurses/base/sigaction.c ncurses-5.3/ncurses/base/tries.c ncurses-5.3/ncurses/base/version.c ncurses-5.3/ncurses/base/vsscanf.c ncurses-5.3/ncurses/base/wresize.c ncurses-5.3/ncurses/curses.priv.h ncurses-5.3/ncurses/fifo_defs.h ncurses-5.3/ncurses/llib-lncurses ncurses-5.3/ncurses/llib-lncursesw ncurses-5.3/ncurses/modules ncurses-5.3/ncurses/tinfo/MKcaptab.awk ncurses-5.3/ncurses/tinfo/MKfallback.sh ncurses-5.3/ncurses/tinfo/MKkeys_list.sh ncurses-5.3/ncurses/tinfo/MKnames.awk ncurses-5.3/ncurses/tinfo/README ncurses-5.3/ncurses/tinfo/access.c ncurses-5.3/ncurses/tinfo/add_tries.c ncurses-5.3/ncurses/tinfo/alloc_entry.c ncurses-5.3/ncurses/tinfo/alloc_ttype.c ncurses-5.3/ncurses/tinfo/captoinfo.c ncurses-5.3/ncurses/tinfo/comp_error.c ncurses-5.3/ncurses/tinfo/comp_expand.c ncurses-5.3/ncurses/tinfo/comp_hash.c ncurses-5.3/ncurses/tinfo/comp_parse.c ncurses-5.3/ncurses/tinfo/comp_scan.c ncurses-5.3/ncurses/tinfo/doalloc.c ncurses-5.3/ncurses/tinfo/free_ttype.c ncurses-5.3/ncurses/tinfo/getenv_num.c ncurses-5.3/ncurses/tinfo/home_terminfo.c ncurses-5.3/ncurses/tinfo/init_keytry.c ncurses-5.3/ncurses/tinfo/lib_acs.c ncurses-5.3/ncurses/tinfo/lib_baudrate.c ncurses-5.3/ncurses/tinfo/lib_cur_term.c ncurses-5.3/ncurses/tinfo/lib_data.c ncurses-5.3/ncurses/tinfo/lib_has_cap.c ncurses-5.3/ncurses/tinfo/lib_kernel.c ncurses-5.3/ncurses/tinfo/lib_longname.c ncurses-5.3/ncurses/tinfo/lib_napms.c ncurses-5.3/ncurses/tinfo/lib_options.c ncurses-5.3/ncurses/tinfo/lib_print.c ncurses-5.3/ncurses/tinfo/lib_raw.c ncurses-5.3/ncurses/tinfo/lib_setup.c ncurses-5.3/ncurses/tinfo/lib_termcap.c ncurses-5.3/ncurses/tinfo/lib_termname.c ncurses-5.3/ncurses/tinfo/lib_tgoto.c ncurses-5.3/ncurses/tinfo/lib_ti.c ncurses-5.3/ncurses/tinfo/lib_tparm.c ncurses-5.3/ncurses/tinfo/lib_tputs.c ncurses-5.3/ncurses/tinfo/lib_ttyflags.c ncurses-5.3/ncurses/tinfo/make_keys.c ncurses-5.3/ncurses/tinfo/name_match.c ncurses-5.3/ncurses/tinfo/parse_entry.c ncurses-5.3/ncurses/tinfo/read_entry.c ncurses-5.3/ncurses/tinfo/read_termcap.c ncurses-5.3/ncurses/tinfo/setbuf.c ncurses-5.3/ncurses/tinfo/strings.c ncurses-5.3/ncurses/tinfo/write_entry.c ncurses-5.3/ncurses/trace/README ncurses-5.3/ncurses/trace/lib_trace.c ncurses-5.3/ncurses/trace/lib_traceatr.c ncurses-5.3/ncurses/trace/lib_tracebits.c ncurses-5.3/ncurses/trace/lib_tracechr.c ncurses-5.3/ncurses/trace/lib_tracedmp.c ncurses-5.3/ncurses/trace/lib_tracemse.c ncurses-5.3/ncurses/trace/trace_buf.c ncurses-5.3/ncurses/trace/trace_tries.c ncurses-5.3/ncurses/trace/trace_xnames.c ncurses-5.3/ncurses/trace/varargs.c ncurses-5.3/ncurses/trace/visbuf.c ncurses-5.3/ncurses/tty/MKexpanded.sh ncurses-5.3/ncurses/tty/hardscroll.c ncurses-5.3/ncurses/tty/hashmap.c ncurses-5.3/ncurses/tty/lib_mvcur.c ncurses-5.3/ncurses/tty/lib_tstp.c ncurses-5.3/ncurses/tty/lib_twait.c ncurses-5.3/ncurses/tty/lib_vidattr.c ncurses-5.3/ncurses/tty/tty_display.h ncurses-5.3/ncurses/tty/tty_input.h ncurses-5.3/ncurses/tty/tty_update.c ncurses-5.3/ncurses/widechar/lib_box_set.c ncurses-5.3/ncurses/widechar/lib_cchar.c ncurses-5.3/ncurses/widechar/lib_erasewchar.c ncurses-5.3/ncurses/widechar/lib_get_wch.c ncurses-5.3/ncurses/widechar/lib_get_wstr.c ncurses-5.3/ncurses/widechar/lib_hline_set.c ncurses-5.3/ncurses/widechar/lib_in_wch.c ncurses-5.3/ncurses/widechar/lib_in_wchnstr.c ncurses-5.3/ncurses/widechar/lib_ins_nwstr.c ncurses-5.3/ncurses/widechar/lib_ins_wch.c ncurses-5.3/ncurses/widechar/lib_inwstr.c ncurses-5.3/ncurses/widechar/lib_unget_wch.c ncurses-5.3/ncurses/widechar/lib_vid_attr.c ncurses-5.3/ncurses/widechar/lib_vline_set.c ncurses-5.3/ncurses/widechar/lib_wacs.c ncurses-5.3/ncurses/widechar/lib_wunctrl.c ncurses-5.3/panel/Makefile.in ncurses-5.3/panel/headers ncurses-5.3/panel/llib-lpanel ncurses-5.3/panel/llib-lpanelw ncurses-5.3/panel/modules ncurses-5.3/panel/p_above.c ncurses-5.3/panel/p_below.c ncurses-5.3/panel/p_bottom.c ncurses-5.3/panel/p_delete.c ncurses-5.3/panel/p_hidden.c ncurses-5.3/panel/p_hide.c ncurses-5.3/panel/p_move.c ncurses-5.3/panel/p_new.c ncurses-5.3/panel/p_replace.c ncurses-5.3/panel/p_show.c ncurses-5.3/panel/p_top.c ncurses-5.3/panel/p_update.c ncurses-5.3/panel/p_user.c ncurses-5.3/panel/p_win.c ncurses-5.3/panel/panel.c ncurses-5.3/panel/panel.h ncurses-5.3/panel/panel.priv.h ncurses-5.3/progs/MKtermsort.sh ncurses-5.3/progs/Makefile.in ncurses-5.3/progs/capconvert ncurses-5.3/progs/clear.c ncurses-5.3/progs/clear.sh ncurses-5.3/progs/dump_entry.c ncurses-5.3/progs/dump_entry.h ncurses-5.3/progs/infocmp.c ncurses-5.3/progs/modules ncurses-5.3/progs/progs.priv.h ncurses-5.3/progs/tic.c ncurses-5.3/progs/toe.c ncurses-5.3/progs/tput.c ncurses-5.3/progs/tset.c ncurses-5.3/sysdeps/unix/sysv/linux/Makefile ncurses-5.3/sysdeps/unix/sysv/linux/alpha/configure ncurses-5.3/sysdeps/unix/sysv/linux/configure ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sed ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sh ncurses-5.3/sysdeps/unix/sysv/linux/run_tic.sh ncurses-5.3/tack/COPYING ncurses-5.3/tack/HISTORY ncurses-5.3/tack/Makefile.in ncurses-5.3/tack/README ncurses-5.3/tack/ansi.c ncurses-5.3/tack/charset.c ncurses-5.3/tack/color.c ncurses-5.3/tack/control.c ncurses-5.3/tack/crum.c ncurses-5.3/tack/edit.c ncurses-5.3/tack/fun.c ncurses-5.3/tack/init.c ncurses-5.3/tack/menu.c ncurses-5.3/tack/modes.c ncurses-5.3/tack/modules ncurses-5.3/tack/output.c ncurses-5.3/tack/pad.c ncurses-5.3/tack/scan.c ncurses-5.3/tack/sync.c ncurses-5.3/tack/sysdep.c ncurses-5.3/tack/tack.1 ncurses-5.3/tack/tack.c ncurses-5.3/tack/tack.h ncurses-5.3/tar-copy.sh ncurses-5.3/test/Makefile.in ncurses-5.3/test/README ncurses-5.3/test/blue.c ncurses-5.3/test/bs.6 ncurses-5.3/test/bs.c ncurses-5.3/test/cardfile.c ncurses-5.3/test/cardfile.dat ncurses-5.3/test/configure ncurses-5.3/test/configure.in ncurses-5.3/test/ditto.c ncurses-5.3/test/dots.c ncurses-5.3/test/filter.c ncurses-5.3/test/firework.c ncurses-5.3/test/firstlast.c ncurses-5.3/test/gdc.6 ncurses-5.3/test/gdc.c ncurses-5.3/test/hanoi.c ncurses-5.3/test/hashtest.c ncurses-5.3/test/keynames.c ncurses-5.3/test/knight.c ncurses-5.3/test/lrtest.c ncurses-5.3/test/modules ncurses-5.3/test/ncurses.c ncurses-5.3/test/ncurses_tst.hin ncurses-5.3/test/newdemo.c ncurses-5.3/test/railroad.c ncurses-5.3/test/rain.c ncurses-5.3/test/tclock.c ncurses-5.3/test/test.priv.h ncurses-5.3/test/testaddch.c ncurses-5.3/test/testcurs.c ncurses-5.3/test/testscanw.c ncurses-5.3/test/tracemunch ncurses-5.3/test/view.c ncurses-5.3/test/worm.c ncurses-5.3/test/xmas.c readline-4.3.orig/CHANGELOG readline-4.3.orig/CHANGES readline-4.3.orig/COPYING readline-4.3.orig/INSTALL readline-4.3.orig/MANIFEST readline-4.3.orig/Makefile.in readline-4.3.orig/README readline-4.3.orig/USAGE readline-4.3.orig/aclocal.m4 readline-4.3.orig/ansi_stdlib.h readline-4.3.orig/bind.c readline-4.3.orig/callback.c readline-4.3.orig/chardefs.h readline-4.3.orig/compat.c readline-4.3.orig/complete.c readline-4.3.orig/config.h.in readline-4.3.orig/configure readline-4.3.orig/configure.in readline-4.3.orig/display.c readline-4.3.orig/doc/Makefile.in readline-4.3.orig/doc/hist.texinfo readline-4.3.orig/doc/history.0 readline-4.3.orig/doc/history.3 readline-4.3.orig/doc/history.dvi readline-4.3.orig/doc/history.html readline-4.3.orig/doc/history.info readline-4.3.orig/doc/history.ps readline-4.3.orig/doc/history_3.ps readline-4.3.orig/doc/hstech.texinfo readline-4.3.orig/doc/hsuser.texinfo readline-4.3.orig/doc/manvers.texinfo readline-4.3.orig/doc/readline.0 readline-4.3.orig/doc/readline.3 readline-4.3.orig/doc/readline.dvi readline-4.3.orig/doc/readline.html readline-4.3.orig/doc/readline.info readline-4.3.orig/doc/readline.ps readline-4.3.orig/doc/readline_3.ps readline-4.3.orig/doc/rlman.texinfo readline-4.3.orig/doc/rltech.texinfo readline-4.3.orig/doc/rluser.texinfo readline-4.3.orig/doc/rluserman.dvi readline-4.3.orig/doc/rluserman.html readline-4.3.orig/doc/rluserman.info readline-4.3.orig/doc/rluserman.ps readline-4.3.orig/doc/rluserman.texinfo readline-4.3.orig/doc/texi2dvi readline-4.3.orig/doc/texi2html readline-4.3.orig/doc/texinfo.tex readline-4.3.orig/emacs_keymap.c readline-4.3.orig/examples/Inputrc readline-4.3.orig/examples/Makefile.in readline-4.3.orig/examples/excallback.c readline-4.3.orig/examples/fileman.c readline-4.3.orig/examples/histexamp.c readline-4.3.orig/examples/manexamp.c readline-4.3.orig/examples/readlinebuf.h readline-4.3.orig/examples/rl.c readline-4.3.orig/examples/rlcat.c readline-4.3.orig/examples/rlfe.c readline-4.3.orig/examples/rltest.c readline-4.3.orig/examples/rlversion.c readline-4.3.orig/funmap.c readline-4.3.orig/histexpand.c readline-4.3.orig/histfile.c readline-4.3.orig/histlib.h readline-4.3.orig/history.c readline-4.3.orig/history.h readline-4.3.orig/histsearch.c readline-4.3.orig/input.c readline-4.3.orig/isearch.c readline-4.3.orig/keymaps.c readline-4.3.orig/keymaps.h readline-4.3.orig/kill.c readline-4.3.orig/macro.c readline-4.3.orig/mbutil.c readline-4.3.orig/misc.c readline-4.3.orig/nls.c readline-4.3.orig/parens.c readline-4.3.orig/posixdir.h readline-4.3.orig/posixjmp.h readline-4.3.orig/posixstat.h readline-4.3.orig/readline.c readline-4.3.orig/readline.h readline-4.3.orig/rlconf.h readline-4.3.orig/rldefs.h readline-4.3.orig/rlmbutil.h readline-4.3.orig/rlprivate.h readline-4.3.orig/rlshell.h readline-4.3.orig/rlstdc.h readline-4.3.orig/rltty.c readline-4.3.orig/rltty.h readline-4.3.orig/rltypedefs.h readline-4.3.orig/rlwinsize.h readline-4.3.orig/savestring.c readline-4.3.orig/search.c readline-4.3.orig/shell.c readline-4.3.orig/shlib/Makefile.in readline-4.3.orig/signals.c readline-4.3.orig/support/config.guess readline-4.3.orig/support/config.sub readline-4.3.orig/support/install.sh readline-4.3.orig/support/mkdirs readline-4.3.orig/support/mkdist readline-4.3.orig/support/shlib-install readline-4.3.orig/support/shobj-conf readline-4.3.orig/support/wcwidth.c readline-4.3.orig/tcap.h readline-4.3.orig/terminal.c readline-4.3.orig/text.c readline-4.3.orig/tilde.c readline-4.3.orig/tilde.h readline-4.3.orig/undo.c readline-4.3.orig/util.c readline-4.3.orig/vi_keymap.c readline-4.3.orig/vi_mode.c readline-4.3.orig/xmalloc.c readline-4.3.orig/xmalloc.h readline-4.3/CHANGELOG-ReadLine readline-4.3/CHANGES readline-4.3/COPYING readline-4.3/INSTALL readline-4.3/MANIFEST readline-4.3/Makefile.in readline-4.3/README readline-4.3/USAGE readline-4.3/aclocal.m4 readline-4.3/ansi_stdlib.h readline-4.3/bind.c readline-4.3/callback.c readline-4.3/chardefs.h readline-4.3/compat.c readline-4.3/complete.c readline-4.3/config.h.in readline-4.3/configure readline-4.3/configure.in readline-4.3/display.c readline-4.3/doc/Makefile.in readline-4.3/doc/hist.texinfo readline-4.3/doc/history.3 readline-4.3/doc/hstech.texinfo readline-4.3/doc/hsuser.texinfo readline-4.3/doc/manvers.texinfo readline-4.3/doc/readline.3 readline-4.3/doc/rlman.texinfo readline-4.3/doc/rltech.texinfo readline-4.3/doc/rluser.texinfo readline-4.3/doc/rluserman.texinfo readline-4.3/doc/texi2dvi readline-4.3/doc/texi2html readline-4.3/doc/texinfo.tex readline-4.3/emacs_keymap.c readline-4.3/examples/Inputrc readline-4.3/examples/Makefile.in readline-4.3/examples/excallback.c readline-4.3/examples/fileman.c readline-4.3/examples/histexamp.c readline-4.3/examples/manexamp.c readline-4.3/examples/readlinebuf.h readline-4.3/examples/rl.c readline-4.3/examples/rlcat.c readline-4.3/examples/rlfe.c readline-4.3/examples/rltest.c readline-4.3/examples/rlversion.c readline-4.3/funmap.c readline-4.3/histexpand.c readline-4.3/histfile.c readline-4.3/histlib.h readline-4.3/history.c readline-4.3/history.h readline-4.3/histsearch.c readline-4.3/input.c readline-4.3/isearch.c readline-4.3/keymaps.c readline-4.3/keymaps.h readline-4.3/kill.c readline-4.3/macro.c readline-4.3/mbutil.c readline-4.3/misc.c readline-4.3/nls.c readline-4.3/parens.c readline-4.3/posixdir.h readline-4.3/posixjmp.h readline-4.3/posixstat.h readline-4.3/readline.c readline-4.3/readline.h readline-4.3/rlconf.h readline-4.3/rldefs.h readline-4.3/rlmbutil.h readline-4.3/rlprivate.h readline-4.3/rlshell.h readline-4.3/rlstdc.h readline-4.3/rltty.c readline-4.3/rltty.h readline-4.3/rltypedefs.h readline-4.3/rlwinsize.h readline-4.3/savestring.c readline-4.3/search.c readline-4.3/shell.c readline-4.3/shlib/Makefile.in readline-4.3/signals.c readline-4.3/support/config.guess readline-4.3/support/config.sub readline-4.3/support/install.sh readline-4.3/support/mkdirs readline-4.3/support/mkdist readline-4.3/support/shlib-install readline-4.3/support/shobj-conf readline-4.3/support/wcwidth.c readline-4.3/tcap.h readline-4.3/terminal.c readline-4.3/text.c readline-4.3/tilde.c readline-4.3/tilde.h readline-4.3/undo.c readline-4.3/util.c readline-4.3/vi_keymap.c readline-4.3/vi_mode.c readline-4.3/xmalloc.c readline-4.3/xmalloc.h readline-doc-4.3/MANIFEST.doc readline-doc-4.3/doc/history.0 readline-doc-4.3/doc/history.dvi readline-doc-4.3/doc/history.html readline-doc-4.3/doc/history.info readline-doc-4.3/doc/history.ps readline-doc-4.3/doc/history_3.ps readline-doc-4.3/doc/readline.0 readline-doc-4.3/doc/readline.dvi readline-doc-4.3/doc/readline.html readline-doc-4.3/doc/readline.info readline-doc-4.3/doc/readline.ps readline-doc-4.3/doc/readline_3.ps readline-doc-4.3/doc/rluserman.dvi readline-doc-4.3/doc/rluserman.html readline-doc-4.3/doc/rluserman.info readline-doc-4.3/doc/rluserman.ps zlib-1.1.4/ChangeLog zlib-1.1.4/FAQ zlib-1.1.4/INDEX zlib-1.1.4/Make_vms.com zlib-1.1.4/Makefile zlib-1.1.4/Makefile.in zlib-1.1.4/Makefile.riscos zlib-1.1.4/README zlib-1.1.4/adler32.c zlib-1.1.4/algorithm.txt zlib-1.1.4/amiga/Makefile.pup zlib-1.1.4/amiga/Makefile.sas zlib-1.1.4/compress.c zlib-1.1.4/configure zlib-1.1.4/contrib/README.contrib zlib-1.1.4/contrib/asm386/gvmat32.asm zlib-1.1.4/contrib/asm386/gvmat32c.c zlib-1.1.4/contrib/asm386/mkgvmt32.bat zlib-1.1.4/contrib/asm386/zlibvc.def zlib-1.1.4/contrib/asm386/zlibvc.dsp zlib-1.1.4/contrib/asm386/zlibvc.dsw zlib-1.1.4/contrib/asm586/README.586 zlib-1.1.4/contrib/asm586/match.S zlib-1.1.4/contrib/asm686/README.686 zlib-1.1.4/contrib/asm686/match.S zlib-1.1.4/contrib/delphi/zlib.mak zlib-1.1.4/contrib/delphi/zlibdef.pas zlib-1.1.4/contrib/delphi2/d_zlib.bpr zlib-1.1.4/contrib/delphi2/d_zlib.cpp zlib-1.1.4/contrib/delphi2/readme.txt zlib-1.1.4/contrib/delphi2/zlib.bpg zlib-1.1.4/contrib/delphi2/zlib.bpr zlib-1.1.4/contrib/delphi2/zlib.cpp zlib-1.1.4/contrib/delphi2/zlib.pas zlib-1.1.4/contrib/delphi2/zlib32.bpr zlib-1.1.4/contrib/delphi2/zlib32.cpp zlib-1.1.4/contrib/iostream/test.cpp zlib-1.1.4/contrib/iostream/zfstream.cpp zlib-1.1.4/contrib/iostream/zfstream.h zlib-1.1.4/contrib/iostream2/zstream.h zlib-1.1.4/contrib/iostream2/zstream_test.cpp zlib-1.1.4/contrib/minizip/ChangeLogUnzip zlib-1.1.4/contrib/minizip/Makefile zlib-1.1.4/contrib/minizip/miniunz.c zlib-1.1.4/contrib/minizip/minizip.c zlib-1.1.4/contrib/minizip/readme.txt zlib-1.1.4/contrib/minizip/unzip.c zlib-1.1.4/contrib/minizip/unzip.def zlib-1.1.4/contrib/minizip/unzip.h zlib-1.1.4/contrib/minizip/zip.c zlib-1.1.4/contrib/minizip/zip.def zlib-1.1.4/contrib/minizip/zip.h zlib-1.1.4/contrib/minizip/zlibvc.def zlib-1.1.4/contrib/minizip/zlibvc.dsp zlib-1.1.4/contrib/minizip/zlibvc.dsw zlib-1.1.4/contrib/untgz/Makefile zlib-1.1.4/contrib/untgz/makefile.w32 zlib-1.1.4/contrib/untgz/untgz.c zlib-1.1.4/contrib/visual-basic.txt zlib-1.1.4/crc32.c zlib-1.1.4/deflate.c zlib-1.1.4/deflate.h zlib-1.1.4/descrip.mms zlib-1.1.4/example.c zlib-1.1.4/gzio.c zlib-1.1.4/infblock.c zlib-1.1.4/infblock.h zlib-1.1.4/infcodes.c zlib-1.1.4/infcodes.h zlib-1.1.4/inffast.c zlib-1.1.4/inffast.h zlib-1.1.4/inffixed.h zlib-1.1.4/inflate.c zlib-1.1.4/inftrees.c zlib-1.1.4/inftrees.h zlib-1.1.4/infutil.c zlib-1.1.4/infutil.h zlib-1.1.4/maketree.c zlib-1.1.4/minigzip.c zlib-1.1.4/msdos/Makefile.b32 zlib-1.1.4/msdos/Makefile.bor zlib-1.1.4/msdos/Makefile.dj2 zlib-1.1.4/msdos/Makefile.emx zlib-1.1.4/msdos/Makefile.msc zlib-1.1.4/msdos/Makefile.tc zlib-1.1.4/msdos/Makefile.w32 zlib-1.1.4/msdos/Makefile.wat zlib-1.1.4/msdos/zlib.def zlib-1.1.4/msdos/zlib.rc zlib-1.1.4/nt/Makefile.emx zlib-1.1.4/nt/Makefile.gcc zlib-1.1.4/nt/Makefile.nt zlib-1.1.4/nt/zlib.dnt zlib-1.1.4/os2/Makefile.os2 zlib-1.1.4/os2/zlib.def zlib-1.1.4/trees.c zlib-1.1.4/trees.h zlib-1.1.4/uncompr.c zlib-1.1.4/zconf.h zlib-1.1.4/zlib.3 zlib-1.1.4/zlib.h zlib-1.1.4/zlib.html zlib-1.1.4/zutil.c zlib-1.1.4/zutil.h
-rw-r--r--ChangeLog97
-rw-r--r--README24
-rw-r--r--RTEMS_Makefiles/Makefile.avl12
-rw-r--r--RTEMS_Makefiles/Makefile.bfd14
-rw-r--r--RTEMS_Makefiles/Makefile.common23
-rw-r--r--RTEMS_Makefiles/Makefile.libtecla15
-rw-r--r--RTEMS_Makefiles/Makefile.ncurses28
-rw-r--r--RTEMS_Makefiles/Makefile.ncurses-5.330
-rw-r--r--RTEMS_Makefiles/Makefile.readline-4.318
-rw-r--r--RTEMS_Makefiles/Makefile.site3
-rw-r--r--RTEMS_Makefiles/Makefile.zlib13
-rw-r--r--SUPPORT22
-rw-r--r--VERSION7
-rw-r--r--avl-1.4.0/AUTHORS1
-rw-r--r--avl-1.4.0/COPYING340
-rw-r--r--avl-1.4.0/ChangeLog181
-rw-r--r--avl-1.4.0/INSTALL182
-rw-r--r--avl-1.4.0/Makefile.am28
-rw-r--r--avl-1.4.0/Makefile.in572
-rw-r--r--avl-1.4.0/NEWS98
-rw-r--r--avl-1.4.0/README37
-rw-r--r--avl-1.4.0/THANKS15
-rw-r--r--avl-1.4.0/TODO92
-rw-r--r--avl-1.4.0/aclocal.m4104
-rw-r--r--avl-1.4.0/avl.c1154
-rw-r--r--avl-1.4.0/avl.h148
-rw-r--r--avl-1.4.0/avl.html1046
-rw-r--r--avl-1.4.0/avl.info708
-rw-r--r--avl-1.4.0/avl.texinfo679
-rw-r--r--avl-1.4.0/avl.text636
-rw-r--r--avl-1.4.0/avlt.c1597
-rw-r--r--avl-1.4.0/avlt.h142
-rw-r--r--avl-1.4.0/avltr.c1538
-rw-r--r--avl-1.4.0/avltr.h142
-rwxr-xr-xavl-1.4.0/configure1297
-rw-r--r--avl-1.4.0/configure.in5
-rwxr-xr-xavl-1.4.0/install-sh251
-rwxr-xr-xavl-1.4.0/missing190
-rwxr-xr-xavl-1.4.0/mkinstalldirs40
-rw-r--r--avl-1.4.0/rb.c1083
-rw-r--r--avl-1.4.0/rb.h155
-rw-r--r--avl-1.4.0/texinfo.tex5484
-rw-r--r--avl-1.4.0/thread-test.c142
-rwxr-xr-xbit36
-rw-r--r--bit_bfd18
-rw-r--r--examples/avl/BuildTests.sh13
-rw-r--r--examples/avl/Makefile70
-rw-r--r--examples/avl/README4
-rw-r--r--examples/avl/init.c51
-rw-r--r--examples/ncurses/BuildTests.sh36
-rw-r--r--examples/ncurses/Makefile70
-rw-r--r--examples/ncurses/README4
-rw-r--r--examples/ncurses/init.c52
-rw-r--r--examples/readline/.gdbinit1
-rw-r--r--examples/readline/Makefile70
-rw-r--r--examples/readline/init.c51
-rw-r--r--examples/readline/rlgeneric.c30
-rw-r--r--libtecla-1.4.1/CHANGES1492
-rw-r--r--libtecla-1.4.1/INSTALL168
-rw-r--r--libtecla-1.4.1/LICENSE.TERMS28
-rw-r--r--libtecla-1.4.1/Makefile3
-rw-r--r--libtecla-1.4.1/Makefile.in225
-rw-r--r--libtecla-1.4.1/Makefile.rules142
-rw-r--r--libtecla-1.4.1/Makefile.stub3
-rw-r--r--libtecla-1.4.1/PORTING38
-rw-r--r--libtecla-1.4.1/README53
-rw-r--r--libtecla-1.4.1/RELEASE.NOTES357
-rw-r--r--libtecla-1.4.1/config.guess1183
-rw-r--r--libtecla-1.4.1/config.sub1268
-rwxr-xr-xlibtecla-1.4.1/configure1939
-rw-r--r--libtecla-1.4.1/configure.in412
-rw-r--r--libtecla-1.4.1/cplfile.c874
-rw-r--r--libtecla-1.4.1/cplfile.h96
-rw-r--r--libtecla-1.4.1/cplmatch.c927
-rw-r--r--libtecla-1.4.1/demo.c109
-rw-r--r--libtecla-1.4.1/demo2.c352
-rw-r--r--libtecla-1.4.1/direader.c299
-rw-r--r--libtecla-1.4.1/direader.h44
-rw-r--r--libtecla-1.4.1/enhance.c689
-rw-r--r--libtecla-1.4.1/expand.c1265
-rw-r--r--libtecla-1.4.1/freelist.c393
-rw-r--r--libtecla-1.4.1/freelist.h82
-rw-r--r--libtecla-1.4.1/getline.c8346
-rw-r--r--libtecla-1.4.1/getline.h88
-rw-r--r--libtecla-1.4.1/hash.c748
-rw-r--r--libtecla-1.4.1/hash.h157
-rw-r--r--libtecla-1.4.1/history.c2003
-rw-r--r--libtecla-1.4.1/history.h159
-rw-r--r--libtecla-1.4.1/homedir.c399
-rw-r--r--libtecla-1.4.1/homedir.h81
-rw-r--r--libtecla-1.4.1/html/changes.html1495
-rw-r--r--libtecla-1.4.1/html/cpl_complete_word.html423
-rw-r--r--libtecla-1.4.1/html/ef_expand_file.html267
-rw-r--r--libtecla-1.4.1/html/enhance.html111
-rw-r--r--libtecla-1.4.1/html/gl_get_line.html2295
-rw-r--r--libtecla-1.4.1/html/index.html116
-rw-r--r--libtecla-1.4.1/html/libtecla.html163
-rw-r--r--libtecla-1.4.1/html/pca_lookup_file.html371
-rw-r--r--libtecla-1.4.1/html/release.html360
-rwxr-xr-xlibtecla-1.4.1/install-sh251
-rw-r--r--libtecla-1.4.1/keytab.c827
-rw-r--r--libtecla-1.4.1/keytab.h146
-rw-r--r--libtecla-1.4.1/libtecla.h1194
-rw-r--r--libtecla-1.4.1/libtecla.map124
-rw-r--r--libtecla-1.4.1/man3/cfc_file_start.31
-rw-r--r--libtecla-1.4.1/man3/cfc_literal_escapes.31
-rw-r--r--libtecla-1.4.1/man3/cfc_set_check_fn.31
-rw-r--r--libtecla-1.4.1/man3/cpl_add_completion.31
-rw-r--r--libtecla-1.4.1/man3/cpl_complete_word.3405
-rw-r--r--libtecla-1.4.1/man3/cpl_file_completions.31
-rw-r--r--libtecla-1.4.1/man3/cpl_last_error.31
-rw-r--r--libtecla-1.4.1/man3/cpl_list_completions.31
-rw-r--r--libtecla-1.4.1/man3/cpl_record_error.31
-rw-r--r--libtecla-1.4.1/man3/del_CplFileConf.31
-rw-r--r--libtecla-1.4.1/man3/del_ExpandFile.31
-rw-r--r--libtecla-1.4.1/man3/del_GetLine.31
-rw-r--r--libtecla-1.4.1/man3/del_PathCache.31
-rw-r--r--libtecla-1.4.1/man3/del_PcaPathConf.31
-rw-r--r--libtecla-1.4.1/man3/del_WordCompletion.31
-rw-r--r--libtecla-1.4.1/man3/ef_expand_file.3245
-rw-r--r--libtecla-1.4.1/man3/ef_last_error.31
-rw-r--r--libtecla-1.4.1/man3/ef_list_expansions.31
-rw-r--r--libtecla-1.4.1/man3/enhance.386
-rw-r--r--libtecla-1.4.1/man3/gl_change_terminal.31
-rw-r--r--libtecla-1.4.1/man3/gl_clear_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_configure_getline.31
-rw-r--r--libtecla-1.4.1/man3/gl_customize_completion.31
-rw-r--r--libtecla-1.4.1/man3/gl_echo_mode.31
-rw-r--r--libtecla-1.4.1/man3/gl_get_line.32329
-rw-r--r--libtecla-1.4.1/man3/gl_group_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_ignore_signal.31
-rw-r--r--libtecla-1.4.1/man3/gl_last_signal.31
-rw-r--r--libtecla-1.4.1/man3/gl_limit_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_load_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_lookup_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_prompt_style.31
-rw-r--r--libtecla-1.4.1/man3/gl_range_of_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_resize_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_save_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_show_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_size_of_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_state_of_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_terminal_size.31
-rw-r--r--libtecla-1.4.1/man3/gl_toggle_history.31
-rw-r--r--libtecla-1.4.1/man3/gl_trap_signal.31
-rw-r--r--libtecla-1.4.1/man3/gl_watch_fd.31
-rw-r--r--libtecla-1.4.1/man3/libtecla.3160
-rw-r--r--libtecla-1.4.1/man3/libtecla_version.31
-rw-r--r--libtecla-1.4.1/man3/new_CplFileConf.31
-rw-r--r--libtecla-1.4.1/man3/new_ExpandFile.31
-rw-r--r--libtecla-1.4.1/man3/new_GetLine.31
-rw-r--r--libtecla-1.4.1/man3/new_PathCache.31
-rw-r--r--libtecla-1.4.1/man3/new_PcaPathConf.31
-rw-r--r--libtecla-1.4.1/man3/new_WordCompletion.31
-rw-r--r--libtecla-1.4.1/man3/pca_last_error.31
-rw-r--r--libtecla-1.4.1/man3/pca_lookup_file.3361
-rw-r--r--libtecla-1.4.1/man3/pca_path_completions.31
-rw-r--r--libtecla-1.4.1/man3/pca_scan_path.31
-rw-r--r--libtecla-1.4.1/man3/pca_set_check_fn.31
-rw-r--r--libtecla-1.4.1/man3/ppc_file_start.31
-rw-r--r--libtecla-1.4.1/man3/ppc_literal_escapes.31
-rw-r--r--libtecla-1.4.1/pathutil.c532
-rw-r--r--libtecla-1.4.1/pathutil.h122
-rw-r--r--libtecla-1.4.1/pcache.c1688
-rw-r--r--libtecla-1.4.1/stringrp.c285
-rw-r--r--libtecla-1.4.1/stringrp.h84
-rw-r--r--libtecla-1.4.1/strngmem.c226
-rw-r--r--libtecla-1.4.1/strngmem.h80
-rwxr-xr-xlibtecla-1.4.1/update_html35
-rwxr-xr-xlibtecla-1.4.1/update_version82
-rw-r--r--libtecla-1.4.1/version.c30
-rw-r--r--ncurses-5.2/ANNOUNCE486
-rw-r--r--ncurses-5.2/Ada95/Makefile.in67
-rw-r--r--ncurses-5.2/Ada95/README33
-rw-r--r--ncurses-5.2/Ada95/TODO27
-rw-r--r--ncurses-5.2/Ada95/gen/Makefile.in429
-rw-r--r--ncurses-5.2/Ada95/gen/gen.c1381
-rw-r--r--ncurses-5.2/Ada95/gen/html.m411
-rw-r--r--ncurses-5.2/Ada95/gen/normal.m48
-rw-r--r--ncurses-5.2/Ada95/gen/table.m46
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-aux.ads.m4104
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4238
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m470
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m470
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-forms.ads.m4696
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m475
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m470
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-menus.ads.m4594
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-mouse.ads.m4173
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m470
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses-panels.ads.m4146
-rw-r--r--ncurses-5.2/Ada95/gen/terminal_interface-curses.ads.m41388
-rw-r--r--ncurses-5.2/Ada95/samples/Makefile.in137
-rw-r--r--ncurses-5.2/Ada95/samples/README6
-rw-r--r--ncurses-5.2/Ada95/samples/explain.txt186
-rw-r--r--ncurses-5.2/Ada95/samples/rain.adb161
-rw-r--r--ncurses-5.2/Ada95/samples/rain.ads42
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb122
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb220
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo.adb142
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-explanation.adb408
-rw-r--r--ncurses-5.2/Ada95/samples/sample-explanation.ads59
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb259
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads92
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb97
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads64
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo.adb134
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-function_key_setting.adb213
-rw-r--r--ncurses-5.2/Ada95/samples/sample-function_key_setting.ads82
-rw-r--r--ncurses-5.2/Ada95/samples/sample-header_handler.adb180
-rw-r--r--ncurses-5.2/Ada95/samples/sample-header_handler.ads53
-rw-r--r--ncurses-5.2/Ada95/samples/sample-helpers.adb69
-rw-r--r--ncurses-5.2/Ada95/samples/sample-helpers.ads54
-rw-r--r--ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb191
-rw-r--r--ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads55
-rw-r--r--ncurses-5.2/Ada95/samples/sample-manifest.ads67
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb204
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads71
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb107
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads64
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo.adb390
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-my_field_type.adb65
-rw-r--r--ncurses-5.2/Ada95/samples/sample-my_field_type.ads62
-rw-r--r--ncurses-5.2/Ada95/samples/sample-text_io_demo.adb180
-rw-r--r--ncurses-5.2/Ada95/samples/sample-text_io_demo.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample.adb218
-rw-r--r--ncurses-5.2/Ada95/samples/sample.ads43
-rw-r--r--ncurses-5.2/Ada95/samples/status.adb56
-rw-r--r--ncurses-5.2/Ada95/samples/status.ads59
-rw-r--r--ncurses-5.2/Ada95/samples/tour.adb46
-rw-r--r--ncurses-5.2/Ada95/samples/tour.ads41
-rw-r--r--ncurses-5.2/Ada95/src/Makefile.in352
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb116
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb68
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads53
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb68
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads54
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb80
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads59
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb119
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads98
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb72
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads55
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb68
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads51
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb74
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads55
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb71
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads55
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb110
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads96
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb132
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads97
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb296
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb85
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb86
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms.adb1160
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb77
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb76
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-menus.adb1021
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-mouse.adb214
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb78
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb164
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb128
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads55
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb73
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads70
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb75
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads66
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb80
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads63
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb75
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads66
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb76
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads66
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb70
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads63
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb70
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads63
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.adb336
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads136
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses.adb2414
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface.ads48
-rw-r--r--ncurses-5.2/INSTALL1059
-rw-r--r--ncurses-5.2/MANIFEST866
-rw-r--r--ncurses-5.2/Makefile.glibc403
-rw-r--r--ncurses-5.2/Makefile.in92
-rw-r--r--ncurses-5.2/Makefile.os2234
-rw-r--r--ncurses-5.2/NEWS4584
-rw-r--r--ncurses-5.2/README175
-rw-r--r--ncurses-5.2/README.emx45
-rw-r--r--ncurses-5.2/README.glibc5
-rw-r--r--ncurses-5.2/TO-DO251
-rw-r--r--ncurses-5.2/aclocal.m42573
-rw-r--r--ncurses-5.2/announce.html.in593
-rw-r--r--ncurses-5.2/c++/Makefile.in213
-rw-r--r--ncurses-5.2/c++/NEWS42
-rw-r--r--ncurses-5.2/c++/PROBLEMS5
-rw-r--r--ncurses-5.2/c++/README-first58
-rw-r--r--ncurses-5.2/c++/cursesapp.cc146
-rw-r--r--ncurses-5.2/c++/cursesapp.h163
-rw-r--r--ncurses-5.2/c++/cursesf.cc426
-rw-r--r--ncurses-5.2/c++/cursesf.h824
-rw-r--r--ncurses-5.2/c++/cursesm.cc383
-rw-r--r--ncurses-5.2/c++/cursesm.h592
-rw-r--r--ncurses-5.2/c++/cursesmain.cc51
-rw-r--r--ncurses-5.2/c++/cursesp.cc124
-rw-r--r--ncurses-5.2/c++/cursesp.h218
-rw-r--r--ncurses-5.2/c++/cursespad.cc270
-rw-r--r--ncurses-5.2/c++/cursesw.cc434
-rw-r--r--ncurses-5.2/c++/cursesw.h1375
-rw-r--r--ncurses-5.2/c++/cursslk.cc122
-rw-r--r--ncurses-5.2/c++/cursslk.h205
-rw-r--r--ncurses-5.2/c++/demo.cc449
-rwxr-xr-xncurses-5.2/c++/edit_cfg.sh67
-rw-r--r--ncurses-5.2/c++/etip.h.in273
-rw-r--r--ncurses-5.2/c++/headers39
-rw-r--r--ncurses-5.2/c++/internal.h47
-rw-r--r--ncurses-5.2/c++/modules43
-rwxr-xr-xncurses-5.2/config.guess1276
-rwxr-xr-xncurses-5.2/config.sub1328
-rwxr-xr-xncurses-5.2/configure8083
-rw-r--r--ncurses-5.2/configure.in1171
-rw-r--r--ncurses-5.2/convert_configure.pl90
-rw-r--r--ncurses-5.2/dist.mk118
-rw-r--r--ncurses-5.2/doc/hackguide.doc687
-rw-r--r--ncurses-5.2/doc/html/Ada95.html172
-rw-r--r--ncurses-5.2/doc/html/ada/files.htm5
-rw-r--r--ncurses-5.2/doc/html/ada/files/T.htm69
-rw-r--r--ncurses-5.2/doc/html/ada/funcs.htm27
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/A.htm18
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/B.htm10
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/C.htm33
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/D.htm22
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/E.htm11
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/F.htm46
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/G.htm21
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/H.htm12
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/I.htm31
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/K.htm10
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/L.htm14
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/M.htm44
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/N.htm28
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/O.htm9
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/P.htm39
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/Q.htm7
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/R.htm20
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/S.htm93
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/T.htm19
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/U.htm11
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/V.htm7
-rw-r--r--ncurses-5.2/doc/html/ada/funcs/W.htm51
-rw-r--r--ncurses-5.2/doc/html/ada/index.htm41
-rw-r--r--ncurses-5.2/doc/html/ada/main.htm66
-rw-r--r--ncurses-5.2/doc/html/ada/table.html325
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__adb.htm121
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__ads.htm130
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm73
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm58
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm73
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm59
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm85
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm64
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm124
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm103
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm77
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm60
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm73
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm56
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm79
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm60
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm76
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm60
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm115
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm101
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm137
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm102
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm301
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm245
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm90
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm75
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm91
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm75
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__adb.htm1165
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__ads.htm783
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm82
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm80
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm81
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm75
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__adb.htm1026
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__ads.htm673
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__adb.htm219
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__ads.htm225
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm83
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm75
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__adb.htm169
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__ads.htm152
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm133
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm60
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm78
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm75
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm80
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm71
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm85
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm68
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm80
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm71
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm81
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm71
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm75
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm68
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm75
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm68
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__adb.htm341
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__ads.htm141
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses__adb.htm2419
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface-curses__ads.htm1744
-rw-r--r--ncurses-5.2/doc/html/ada/terminal_interface__ads.htm53
-rw-r--r--ncurses-5.2/doc/html/announce.html593
-rw-r--r--ncurses-5.2/doc/html/hackguide.html890
-rw-r--r--ncurses-5.2/doc/html/index.html30
-rw-r--r--ncurses-5.2/doc/html/man/captoinfo.1m.html190
-rw-r--r--ncurses-5.2/doc/html/man/clear.1.html74
-rw-r--r--ncurses-5.2/doc/html/man/curs_addch.3x.html189
-rw-r--r--ncurses-5.2/doc/html/man/curs_addchstr.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_addstr.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_attr.3x.html186
-rw-r--r--ncurses-5.2/doc/html/man/curs_beep.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_bkgd.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_border.3x.html135
-rw-r--r--ncurses-5.2/doc/html/man/curs_clear.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_color.3x.html242
-rw-r--r--ncurses-5.2/doc/html/man/curs_delch.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_deleteln.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_extend.3x.html78
-rw-r--r--ncurses-5.2/doc/html/man/curs_getch.3x.html296
-rw-r--r--ncurses-5.2/doc/html/man/curs_getstr.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_getyx.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_inch.3x.html78
-rw-r--r--ncurses-5.2/doc/html/man/curs_inchstr.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_initscr.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_inopts.3x.html242
-rw-r--r--ncurses-5.2/doc/html/man/curs_insch.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_insstr.3x.html135
-rw-r--r--ncurses-5.2/doc/html/man/curs_instr.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_kernel.3x.html188
-rw-r--r--ncurses-5.2/doc/html/man/curs_mouse.3x.html242
-rw-r--r--ncurses-5.2/doc/html/man/curs_move.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_outopts.3x.html188
-rw-r--r--ncurses-5.2/doc/html/man/curs_overlay.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_pad.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_print.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_printw.3x.html78
-rw-r--r--ncurses-5.2/doc/html/man/curs_refresh.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_scanw.3x.html78
-rw-r--r--ncurses-5.2/doc/html/man/curs_scr_dump.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_scroll.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/curs_slk.3x.html188
-rw-r--r--ncurses-5.2/doc/html/man/curs_termattrs.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_termcap.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_terminfo.3x.html296
-rw-r--r--ncurses-5.2/doc/html/man/curs_touch.3x.html135
-rw-r--r--ncurses-5.2/doc/html/man/curs_trace.3x.html132
-rw-r--r--ncurses-5.2/doc/html/man/curs_util.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/curs_window.3x.html190
-rw-r--r--ncurses-5.2/doc/html/man/default_colors.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/define_key.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/form.3x.html245
-rw-r--r--ncurses-5.2/doc/html/man/form_cursor.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/form_data.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/form_driver.3x.html299
-rw-r--r--ncurses-5.2/doc/html/man/form_field.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/form_field_attributes.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/form_field_buffer.3x.html137
-rw-r--r--ncurses-5.2/doc/html/man/form_field_info.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/form_field_just.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/form_field_new.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/form_field_opts.3x.html134
-rw-r--r--ncurses-5.2/doc/html/man/form_field_userptr.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/form_field_validation.3x.html190
-rw-r--r--ncurses-5.2/doc/html/man/form_fieldtype.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/form_hook.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/form_new.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/form_new_page.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/form_opts.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/form_page.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/form_post.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/form_requestname.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/form_userptr.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/form_win.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/infocmp.1m.html406
-rw-r--r--ncurses-5.2/doc/html/man/infotocap.1m.html78
-rw-r--r--ncurses-5.2/doc/html/man/keybound.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/keyok.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/menu.3x.html244
-rw-r--r--ncurses-5.2/doc/html/man/menu_attributes.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/menu_cursor.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/menu_driver.3x.html190
-rw-r--r--ncurses-5.2/doc/html/man/menu_format.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/menu_hook.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/menu_items.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/menu_mark.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/menu_new.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/menu_opts.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/menu_pattern.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/menu_post.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/menu_requestname.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/menu_spacing.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/menu_userptr.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/menu_win.3x.html136
-rw-r--r--ncurses-5.2/doc/html/man/mitem_current.3x.html137
-rw-r--r--ncurses-5.2/doc/html/man/mitem_name.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/mitem_new.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/mitem_opts.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/mitem_userptr.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/mitem_value.3x.html82
-rw-r--r--ncurses-5.2/doc/html/man/mitem_visible.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/ncurses.3x.html899
-rw-r--r--ncurses-5.2/doc/html/man/panel.3x.html194
-rw-r--r--ncurses-5.2/doc/html/man/resizeterm.3x.html80
-rw-r--r--ncurses-5.2/doc/html/man/term.5.html184
-rw-r--r--ncurses-5.2/doc/html/man/term.7.html239
-rw-r--r--ncurses-5.2/doc/html/man/terminfo.5.html2242
-rw-r--r--ncurses-5.2/doc/html/man/tic.1m.html297
-rw-r--r--ncurses-5.2/doc/html/man/toe.1m.html76
-rw-r--r--ncurses-5.2/doc/html/man/tput.1.html246
-rw-r--r--ncurses-5.2/doc/html/man/tset.1.html303
-rw-r--r--ncurses-5.2/doc/html/man/wresize.3x.html80
-rw-r--r--ncurses-5.2/doc/html/ncurses-intro.html2686
-rw-r--r--ncurses-5.2/doc/ncurses-intro.doc2502
-rw-r--r--ncurses-5.2/form/Makefile.in155
-rw-r--r--ncurses-5.2/form/READ.ME15
-rw-r--r--ncurses-5.2/form/fld_arg.c91
-rw-r--r--ncurses-5.2/form/fld_attr.c111
-rw-r--r--ncurses-5.2/form/fld_current.c124
-rw-r--r--ncurses-5.2/form/fld_def.c346
-rw-r--r--ncurses-5.2/form/fld_dup.c97
-rw-r--r--ncurses-5.2/form/fld_ftchoice.c62
-rw-r--r--ncurses-5.2/form/fld_ftlink.c83
-rw-r--r--ncurses-5.2/form/fld_info.c91
-rw-r--r--ncurses-5.2/form/fld_just.c81
-rw-r--r--ncurses-5.2/form/fld_link.c90
-rw-r--r--ncurses-5.2/form/fld_max.c74
-rw-r--r--ncurses-5.2/form/fld_move.c62
-rw-r--r--ncurses-5.2/form/fld_newftyp.c125
-rw-r--r--ncurses-5.2/form/fld_opts.c124
-rw-r--r--ncurses-5.2/form/fld_pad.c78
-rw-r--r--ncurses-5.2/form/fld_page.c76
-rw-r--r--ncurses-5.2/form/fld_stat.c73
-rw-r--r--ncurses-5.2/form/fld_type.c92
-rw-r--r--ncurses-5.2/form/fld_user.c67
-rw-r--r--ncurses-5.2/form/form.h388
-rw-r--r--ncurses-5.2/form/form.priv.h128
-rw-r--r--ncurses-5.2/form/frm_cursor.c66
-rw-r--r--ncurses-5.2/form/frm_data.c181
-rw-r--r--ncurses-5.2/form/frm_def.c376
-rw-r--r--ncurses-5.2/form/frm_driver.c3843
-rw-r--r--ncurses-5.2/form/frm_hook.c140
-rw-r--r--ncurses-5.2/form/frm_opts.c116
-rw-r--r--ncurses-5.2/form/frm_page.c100
-rw-r--r--ncurses-5.2/form/frm_post.c117
-rw-r--r--ncurses-5.2/form/frm_req_name.c163
-rw-r--r--ncurses-5.2/form/frm_scale.c63
-rw-r--r--ncurses-5.2/form/frm_sub.c69
-rw-r--r--ncurses-5.2/form/frm_user.c67
-rw-r--r--ncurses-5.2/form/frm_win.c70
-rw-r--r--ncurses-5.2/form/fty_alnum.c137
-rw-r--r--ncurses-5.2/form/fty_alpha.c138
-rw-r--r--ncurses-5.2/form/fty_enum.c295
-rw-r--r--ncurses-5.2/form/fty_int.c160
-rw-r--r--ncurses-5.2/form/fty_ipv4.c81
-rw-r--r--ncurses-5.2/form/fty_num.c195
-rw-r--r--ncurses-5.2/form/fty_regex.c257
-rw-r--r--ncurses-5.2/form/headers31
-rw-r--r--ncurses-5.2/form/llib-lform694
-rw-r--r--ncurses-5.2/form/modules73
-rw-r--r--ncurses-5.2/include/Caps1314
-rwxr-xr-xncurses-5.2/include/MKhashsize.sh14
-rwxr-xr-xncurses-5.2/include/MKncurses_def.sh80
-rwxr-xr-xncurses-5.2/include/MKparametrized.sh35
-rw-r--r--ncurses-5.2/include/MKterm.h.awk.in315
-rw-r--r--ncurses-5.2/include/Makefile.in111
-rw-r--r--ncurses-5.2/include/capdefaults.c84
-rw-r--r--ncurses-5.2/include/curses.h.in1370
-rwxr-xr-xncurses-5.2/include/edit_cfg.sh65
-rw-r--r--ncurses-5.2/include/headers34
-rw-r--r--ncurses-5.2/include/nc_alloc.h83
-rw-r--r--ncurses-5.2/include/nc_panel.h66
-rw-r--r--ncurses-5.2/include/ncurses_cfg.hin62
-rw-r--r--ncurses-5.2/include/ncurses_defs151
-rw-r--r--ncurses-5.2/include/term_entry.h161
-rw-r--r--ncurses-5.2/include/termcap.h.in70
-rw-r--r--ncurses-5.2/include/tic.h299
-rw-r--r--ncurses-5.2/include/unctrl.h.in63
-rwxr-xr-xncurses-5.2/install-sh250
-rwxr-xr-xncurses-5.2/man/MKterminfo.sh105
-rw-r--r--ncurses-5.2/man/Makefile.in75
-rw-r--r--ncurses-5.2/man/captoinfo.1m189
-rw-r--r--ncurses-5.2/man/clear.148
-rw-r--r--ncurses-5.2/man/curs_addch.3x163
-rw-r--r--ncurses-5.2/man/curs_addchstr.3x83
-rw-r--r--ncurses-5.2/man/curs_addstr.3x82
-rw-r--r--ncurses-5.2/man/curs_attr.3x221
-rw-r--r--ncurses-5.2/man/curs_beep.3x63
-rw-r--r--ncurses-5.2/man/curs_bkgd.3x102
-rw-r--r--ncurses-5.2/man/curs_border.3x110
-rw-r--r--ncurses-5.2/man/curs_clear.3x94
-rw-r--r--ncurses-5.2/man/curs_color.3x216
-rw-r--r--ncurses-5.2/man/curs_delch.3x70
-rw-r--r--ncurses-5.2/man/curs_deleteln.3x87
-rw-r--r--ncurses-5.2/man/curs_extend.3x89
-rw-r--r--ncurses-5.2/man/curs_getch.3x277
-rw-r--r--ncurses-5.2/man/curs_getstr.3x107
-rw-r--r--ncurses-5.2/man/curs_getyx.3x72
-rw-r--r--ncurses-5.2/man/curs_inch.3x73
-rw-r--r--ncurses-5.2/man/curs_inchstr.3x88
-rw-r--r--ncurses-5.2/man/curs_initscr.3x124
-rw-r--r--ncurses-5.2/man/curs_inopts.3x214
-rw-r--r--ncurses-5.2/man/curs_insch.3x70
-rw-r--r--ncurses-5.2/man/curs_insstr.3x95
-rw-r--r--ncurses-5.2/man/curs_instr.3x89
-rw-r--r--ncurses-5.2/man/curs_kernel.3x159
-rw-r--r--ncurses-5.2/man/curs_mouse.3x217
-rw-r--r--ncurses-5.2/man/curs_move.3x63
-rw-r--r--ncurses-5.2/man/curs_outopts.3x169
-rw-r--r--ncurses-5.2/man/curs_overlay.3x76
-rw-r--r--ncurses-5.2/man/curs_pad.3x110
-rw-r--r--ncurses-5.2/man/curs_print.3x74
-rw-r--r--ncurses-5.2/man/curs_printw.3x80
-rw-r--r--ncurses-5.2/man/curs_refresh.3x115
-rw-r--r--ncurses-5.2/man/curs_scanw.3x81
-rw-r--r--ncurses-5.2/man/curs_scr_dump.3x94
-rw-r--r--ncurses-5.2/man/curs_scroll.3x79
-rw-r--r--ncurses-5.2/man/curs_slk.3x149
-rw-r--r--ncurses-5.2/man/curs_termattrs.3x107
-rw-r--r--ncurses-5.2/man/curs_termcap.3x118
-rw-r--r--ncurses-5.2/man/curs_terminfo.3x272
-rw-r--r--ncurses-5.2/man/curs_touch.3x96
-rw-r--r--ncurses-5.2/man/curs_trace.3x150
-rw-r--r--ncurses-5.2/man/curs_util.3x114
-rw-r--r--ncurses-5.2/man/curs_window.3x159
-rw-r--r--ncurses-5.2/man/default_colors.3x133
-rw-r--r--ncurses-5.2/man/define_key.3x70
-rw-r--r--ncurses-5.2/man/form.3x200
-rw-r--r--ncurses-5.2/man/form_cursor.3x74
-rw-r--r--ncurses-5.2/man/form_data.3x63
-rw-r--r--ncurses-5.2/man/form_driver.3x272
-rw-r--r--ncurses-5.2/man/form_field.3x97
-rw-r--r--ncurses-5.2/man/form_field_attributes.3x91
-rw-r--r--ncurses-5.2/man/form_field_buffer.3x99
-rw-r--r--ncurses-5.2/man/form_field_info.3x84
-rw-r--r--ncurses-5.2/man/form_field_just.3x78
-rw-r--r--ncurses-5.2/man/form_field_new.3x96
-rw-r--r--ncurses-5.2/man/form_field_opts.3x120
-rw-r--r--ncurses-5.2/man/form_field_userptr.3x73
-rw-r--r--ncurses-5.2/man/form_field_validation.3x127
-rw-r--r--ncurses-5.2/man/form_fieldtype.3x126
-rw-r--r--ncurses-5.2/man/form_hook.3x100
-rw-r--r--ncurses-5.2/man/form_new.3x79
-rw-r--r--ncurses-5.2/man/form_new_page.3x77
-rw-r--r--ncurses-5.2/man/form_opts.3x90
-rw-r--r--ncurses-5.2/man/form_page.3x95
-rw-r--r--ncurses-5.2/man/form_post.3x90
-rw-r--r--ncurses-5.2/man/form_requestname.3x69
-rw-r--r--ncurses-5.2/man/form_userptr.3x73
-rw-r--r--ncurses-5.2/man/form_win.3x95
-rw-r--r--ncurses-5.2/man/infocmp.1m378
-rw-r--r--ncurses-5.2/man/infotocap.1m74
-rw-r--r--ncurses-5.2/man/keybound.3x67
-rw-r--r--ncurses-5.2/man/keyok.3x69
-rwxr-xr-xncurses-5.2/man/make_sed.sh83
-rw-r--r--ncurses-5.2/man/man_db.renames117
-rw-r--r--ncurses-5.2/man/manlinks.sed68
-rw-r--r--ncurses-5.2/man/menu.3x190
-rw-r--r--ncurses-5.2/man/menu_attributes.3x100
-rw-r--r--ncurses-5.2/man/menu_cursor.3x73
-rw-r--r--ncurses-5.2/man/menu_driver.3x170
-rw-r--r--ncurses-5.2/man/menu_format.3x84
-rw-r--r--ncurses-5.2/man/menu_hook.3x101
-rw-r--r--ncurses-5.2/man/menu_items.3x91
-rw-r--r--ncurses-5.2/man/menu_mark.3x84
-rw-r--r--ncurses-5.2/man/menu_new.3x79
-rw-r--r--ncurses-5.2/man/menu_opts.3x104
-rw-r--r--ncurses-5.2/man/menu_pattern.3x82
-rw-r--r--ncurses-5.2/man/menu_post.3x91
-rw-r--r--ncurses-5.2/man/menu_requestname.3x69
-rw-r--r--ncurses-5.2/man/menu_spacing.3x84
-rw-r--r--ncurses-5.2/man/menu_userptr.3x73
-rw-r--r--ncurses-5.2/man/menu_win.3x95
-rw-r--r--ncurses-5.2/man/mitem_current.3x101
-rw-r--r--ncurses-5.2/man/mitem_name.3x64
-rw-r--r--ncurses-5.2/man/mitem_new.3x83
-rw-r--r--ncurses-5.2/man/mitem_opts.3x84
-rw-r--r--ncurses-5.2/man/mitem_userptr.3x72
-rw-r--r--ncurses-5.2/man/mitem_value.3x76
-rw-r--r--ncurses-5.2/man/mitem_visible.3x59
-rw-r--r--ncurses-5.2/man/ncurses.3x927
-rw-r--r--ncurses-5.2/man/panel.3x182
-rw-r--r--ncurses-5.2/man/resizeterm.3x87
-rw-r--r--ncurses-5.2/man/term.5208
-rw-r--r--ncurses-5.2/man/term.7204
-rw-r--r--ncurses-5.2/man/terminfo.head95
-rw-r--r--ncurses-5.2/man/terminfo.tail1499
-rw-r--r--ncurses-5.2/man/tic.1m301
-rw-r--r--ncurses-5.2/man/toe.1m81
-rw-r--r--ncurses-5.2/man/tput.1256
-rw-r--r--ncurses-5.2/man/tset.1250
-rw-r--r--ncurses-5.2/man/wresize.3x70
-rw-r--r--ncurses-5.2/menu/Makefile.in157
-rw-r--r--ncurses-5.2/menu/READ.ME14
-rw-r--r--ncurses-5.2/menu/eti.h52
-rw-r--r--ncurses-5.2/menu/headers32
-rw-r--r--ncurses-5.2/menu/llib-lmenu508
-rw-r--r--ncurses-5.2/menu/m_attribs.c141
-rw-r--r--ncurses-5.2/menu/m_cursor.c110
-rw-r--r--ncurses-5.2/menu/m_driver.c540
-rw-r--r--ncurses-5.2/menu/m_format.c125
-rw-r--r--ncurses-5.2/menu/m_global.c483
-rw-r--r--ncurses-5.2/menu/m_hook.c149
-rw-r--r--ncurses-5.2/menu/m_item_cur.c106
-rw-r--r--ncurses-5.2/menu/m_item_nam.c68
-rw-r--r--ncurses-5.2/menu/m_item_new.c227
-rw-r--r--ncurses-5.2/menu/m_item_opt.c146
-rw-r--r--ncurses-5.2/menu/m_item_top.c102
-rw-r--r--ncurses-5.2/menu/m_item_use.c72
-rw-r--r--ncurses-5.2/menu/m_item_val.c100
-rw-r--r--ncurses-5.2/menu/m_item_vis.c66
-rw-r--r--ncurses-5.2/menu/m_items.c103
-rw-r--r--ncurses-5.2/menu/m_new.c108
-rw-r--r--ncurses-5.2/menu/m_opts.c170
-rw-r--r--ncurses-5.2/menu/m_pad.c90
-rw-r--r--ncurses-5.2/menu/m_pattern.c117
-rw-r--r--ncurses-5.2/menu/m_post.c366
-rw-r--r--ncurses-5.2/menu/m_req_name.c119
-rw-r--r--ncurses-5.2/menu/m_scale.c71
-rw-r--r--ncurses-5.2/menu/m_spacing.c98
-rw-r--r--ncurses-5.2/menu/m_sub.c80
-rw-r--r--ncurses-5.2/menu/m_userptr.c72
-rw-r--r--ncurses-5.2/menu/m_win.c80
-rw-r--r--ncurses-5.2/menu/menu.h254
-rw-r--r--ncurses-5.2/menu/menu.priv.h114
-rw-r--r--ncurses-5.2/menu/mf_common.h93
-rw-r--r--ncurses-5.2/menu/modules60
-rw-r--r--ncurses-5.2/misc/Makefile.in121
-rw-r--r--ncurses-5.2/misc/chkdef.cmd86
-rw-r--r--ncurses-5.2/misc/cleantic.cmd16
-rw-r--r--ncurses-5.2/misc/cmpdef.cmd106
-rw-r--r--ncurses-5.2/misc/emx.src825
-rw-r--r--ncurses-5.2/misc/form.def101
-rw-r--r--ncurses-5.2/misc/form.ref106
-rw-r--r--ncurses-5.2/misc/indent.pro35
-rw-r--r--ncurses-5.2/misc/makedef.cmd151
-rwxr-xr-xncurses-5.2/misc/makellib162
-rw-r--r--ncurses-5.2/misc/menu.def81
-rw-r--r--ncurses-5.2/misc/menu.ref73
-rw-r--r--ncurses-5.2/misc/ncurses.def447
-rw-r--r--ncurses-5.2/misc/ncurses.ref572
-rw-r--r--ncurses-5.2/misc/panel.def20
-rw-r--r--ncurses-5.2/misc/panel.ref18
-rw-r--r--ncurses-5.2/misc/run_tic.in146
-rwxr-xr-xncurses-5.2/misc/shlib87
-rw-r--r--ncurses-5.2/misc/tabset/std1
-rw-r--r--ncurses-5.2/misc/tabset/stdcrt1
-rw-r--r--ncurses-5.2/misc/tabset/vt1003
-rw-r--r--ncurses-5.2/misc/tabset/vt3003
-rwxr-xr-xncurses-5.2/misc/tdlint111
-rw-r--r--ncurses-5.2/misc/terminfo.src18609
-rw-r--r--ncurses-5.2/mk-0th.awk91
-rw-r--r--ncurses-5.2/mk-1st.awk311
-rw-r--r--ncurses-5.2/mk-2nd.awk115
-rwxr-xr-xncurses-5.2/mkinstalldirs37
-rw-r--r--ncurses-5.2/ncurses/Makefile.in253
-rw-r--r--ncurses-5.2/ncurses/README2
-rw-r--r--ncurses-5.2/ncurses/SigAction.h117
-rw-r--r--ncurses-5.2/ncurses/base/MKkeyname.awk74
-rwxr-xr-xncurses-5.2/ncurses/base/MKlib_gen.sh259
-rw-r--r--ncurses-5.2/ncurses/base/MKunctrl.awk69
-rw-r--r--ncurses-5.2/ncurses/base/README7
-rw-r--r--ncurses-5.2/ncurses/base/define_key.c59
-rw-r--r--ncurses-5.2/ncurses/base/keybound.c45
-rw-r--r--ncurses-5.2/ncurses/base/keyok.c72
-rw-r--r--ncurses-5.2/ncurses/base/lib_addch.c298
-rw-r--r--ncurses-5.2/ncurses/base/lib_addstr.c103
-rw-r--r--ncurses-5.2/ncurses/base/lib_beep.c73
-rw-r--r--ncurses-5.2/ncurses/base/lib_bkgd.c86
-rw-r--r--ncurses-5.2/ncurses/base/lib_box.c119
-rw-r--r--ncurses-5.2/ncurses/base/lib_chgat.c62
-rw-r--r--ncurses-5.2/ncurses/base/lib_clear.c55
-rw-r--r--ncurses-5.2/ncurses/base/lib_clearok.c56
-rw-r--r--ncurses-5.2/ncurses/base/lib_clrbot.c76
-rw-r--r--ncurses-5.2/ncurses/base/lib_clreol.c91
-rw-r--r--ncurses-5.2/ncurses/base/lib_color.c482
-rw-r--r--ncurses-5.2/ncurses/base/lib_colorset.c58
-rw-r--r--ncurses-5.2/ncurses/base/lib_delch.c68
-rw-r--r--ncurses-5.2/ncurses/base/lib_delwin.c72
-rw-r--r--ncurses-5.2/ncurses/base/lib_dft_fgbg.c71
-rw-r--r--ncurses-5.2/ncurses/base/lib_echo.c60
-rw-r--r--ncurses-5.2/ncurses/base/lib_endwin.c61
-rw-r--r--ncurses-5.2/ncurses/base/lib_erase.c73
-rw-r--r--ncurses-5.2/ncurses/base/lib_flash.c73
-rw-r--r--ncurses-5.2/ncurses/base/lib_freeall.c139
-rw-r--r--ncurses-5.2/ncurses/base/lib_getch.c388
-rw-r--r--ncurses-5.2/ncurses/base/lib_getstr.c192
-rw-r--r--ncurses-5.2/ncurses/base/lib_hline.c77
-rw-r--r--ncurses-5.2/ncurses/base/lib_immedok.c54
-rw-r--r--ncurses-5.2/ncurses/base/lib_inchstr.c62
-rw-r--r--ncurses-5.2/ncurses/base/lib_initscr.c78
-rw-r--r--ncurses-5.2/ncurses/base/lib_insch.c67
-rw-r--r--ncurses-5.2/ncurses/base/lib_insdel.c62
-rw-r--r--ncurses-5.2/ncurses/base/lib_insstr.c81
-rw-r--r--ncurses-5.2/ncurses/base/lib_instr.c73
-rw-r--r--ncurses-5.2/ncurses/base/lib_isendwin.c51
-rw-r--r--ncurses-5.2/ncurses/base/lib_leaveok.c56
-rw-r--r--ncurses-5.2/ncurses/base/lib_mouse.c1004
-rw-r--r--ncurses-5.2/ncurses/base/lib_move.c61
-rw-r--r--ncurses-5.2/ncurses/base/lib_mvwin.c109
-rw-r--r--ncurses-5.2/ncurses/base/lib_newterm.c227
-rw-r--r--ncurses-5.2/ncurses/base/lib_newwin.c286
-rw-r--r--ncurses-5.2/ncurses/base/lib_nl.c79
-rw-r--r--ncurses-5.2/ncurses/base/lib_overlay.c161
-rw-r--r--ncurses-5.2/ncurses/base/lib_pad.c292
-rw-r--r--ncurses-5.2/ncurses/base/lib_printw.c110
-rw-r--r--ncurses-5.2/ncurses/base/lib_redrawln.c69
-rw-r--r--ncurses-5.2/ncurses/base/lib_refresh.c183
-rw-r--r--ncurses-5.2/ncurses/base/lib_restart.c91
-rw-r--r--ncurses-5.2/ncurses/base/lib_scanw.c111
-rw-r--r--ncurses-5.2/ncurses/base/lib_screen.c198
-rw-r--r--ncurses-5.2/ncurses/base/lib_scroll.c120
-rw-r--r--ncurses-5.2/ncurses/base/lib_scrollok.c56
-rw-r--r--ncurses-5.2/ncurses/base/lib_scrreg.c60
-rw-r--r--ncurses-5.2/ncurses/base/lib_set_term.c419
-rw-r--r--ncurses-5.2/ncurses/base/lib_slk.c214
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkatr_set.c56
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkatrof.c55
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkatron.c55
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkatrset.c55
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkattr.c54
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkclear.c62
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkcolor.c54
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkinit.c51
-rw-r--r--ncurses-5.2/ncurses/base/lib_slklab.c51
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkrefr.c126
-rw-r--r--ncurses-5.2/ncurses/base/lib_slkset.c95
-rw-r--r--ncurses-5.2/ncurses/base/lib_slktouch.c53
-rw-r--r--ncurses-5.2/ncurses/base/lib_touch.c87
-rw-r--r--ncurses-5.2/ncurses/base/lib_ungetch.c74
-rw-r--r--ncurses-5.2/ncurses/base/lib_vline.c76
-rw-r--r--ncurses-5.2/ncurses/base/lib_wattroff.c55
-rw-r--r--ncurses-5.2/ncurses/base/lib_wattron.c55
-rw-r--r--ncurses-5.2/ncurses/base/lib_winch.c53
-rw-r--r--ncurses-5.2/ncurses/base/lib_window.c221
-rw-r--r--ncurses-5.2/ncurses/base/memmove.c63
-rw-r--r--ncurses-5.2/ncurses/base/nc_panel.c41
-rw-r--r--ncurses-5.2/ncurses/base/resizeterm.c121
-rw-r--r--ncurses-5.2/ncurses/base/safe_sprintf.c239
-rw-r--r--ncurses-5.2/ncurses/base/sigaction.c106
-rw-r--r--ncurses-5.2/ncurses/base/tries.c138
-rw-r--r--ncurses-5.2/ncurses/base/version.c47
-rw-r--r--ncurses-5.2/ncurses/base/vsscanf.c47
-rw-r--r--ncurses-5.2/ncurses/base/wresize.c179
-rw-r--r--ncurses-5.2/ncurses/curses.priv.h838
-rw-r--r--ncurses-5.2/ncurses/fifo_defs.h59
-rw-r--r--ncurses-5.2/ncurses/llib-lncurses3021
-rw-r--r--ncurses-5.2/ncurses/modules189
-rw-r--r--ncurses-5.2/ncurses/tinfo/MKcaptab.awk70
-rwxr-xr-xncurses-5.2/ncurses/tinfo/MKfallback.sh75
-rw-r--r--ncurses-5.2/ncurses/tinfo/MKnames.awk98
-rw-r--r--ncurses-5.2/ncurses/tinfo/README8
-rw-r--r--ncurses-5.2/ncurses/tinfo/access.c94
-rw-r--r--ncurses-5.2/ncurses/tinfo/add_tries.c125
-rw-r--r--ncurses-5.2/ncurses/tinfo/alloc_entry.c225
-rw-r--r--ncurses-5.2/ncurses/tinfo/alloc_ttype.c489
-rw-r--r--ncurses-5.2/ncurses/tinfo/captoinfo.c831
-rw-r--r--ncurses-5.2/ncurses/tinfo/comp_error.c132
-rw-r--r--ncurses-5.2/ncurses/tinfo/comp_expand.c189
-rw-r--r--ncurses-5.2/ncurses/tinfo/comp_hash.c325
-rw-r--r--ncurses-5.2/ncurses/tinfo/comp_parse.c484
-rw-r--r--ncurses-5.2/ncurses/tinfo/comp_scan.c797
-rw-r--r--ncurses-5.2/ncurses/tinfo/doalloc.c74
-rw-r--r--ncurses-5.2/ncurses/tinfo/free_ttype.c72
-rw-r--r--ncurses-5.2/ncurses/tinfo/getenv_num.c56
-rw-r--r--ncurses-5.2/ncurses/tinfo/home_terminfo.c65
-rw-r--r--ncurses-5.2/ncurses/tinfo/init_keytry.c78
-rw-r--r--ncurses-5.2/ncurses/tinfo/keys.list158
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_acs.c139
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_baudrate.c178
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_cur_term.c70
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_data.c84
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_has_cap.c63
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_kernel.c130
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_longname.c58
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_napms.c89
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_options.c255
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_print.c96
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_raw.c236
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_setup.c414
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_termcap.c192
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_termname.c46
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_tgoto.c197
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_ti.c103
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_tparm.c740
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_tputs.c324
-rw-r--r--ncurses-5.2/ncurses/tinfo/lib_ttyflags.c163
-rw-r--r--ncurses-5.2/ncurses/tinfo/make_keys.c134
-rw-r--r--ncurses-5.2/ncurses/tinfo/name_match.c96
-rw-r--r--ncurses-5.2/ncurses/tinfo/parse_entry.c952
-rw-r--r--ncurses-5.2/ncurses/tinfo/read_entry.c501
-rw-r--r--ncurses-5.2/ncurses/tinfo/read_termcap.c1111
-rw-r--r--ncurses-5.2/ncurses/tinfo/setbuf.c144
-rw-r--r--ncurses-5.2/ncurses/tinfo/strings.c139
-rw-r--r--ncurses-5.2/ncurses/tinfo/write_entry.c581
-rw-r--r--ncurses-5.2/ncurses/trace/README5
-rw-r--r--ncurses-5.2/ncurses/trace/lib_trace.c216
-rw-r--r--ncurses-5.2/ncurses/trace/lib_traceatr.c240
-rw-r--r--ncurses-5.2/ncurses/trace/lib_tracebits.c247
-rw-r--r--ncurses-5.2/ncurses/trace/lib_tracechr.c51
-rw-r--r--ncurses-5.2/ncurses/trace/lib_tracedmp.c128
-rw-r--r--ncurses-5.2/ncurses/trace/lib_tracemse.c95
-rw-r--r--ncurses-5.2/ncurses/trace/trace_buf.c80
-rw-r--r--ncurses-5.2/ncurses/trace/trace_tries.c74
-rw-r--r--ncurses-5.2/ncurses/trace/trace_xnames.c74
-rwxr-xr-xncurses-5.2/ncurses/tty/MKexpanded.sh99
-rw-r--r--ncurses-5.2/ncurses/tty/hardscroll.c328
-rw-r--r--ncurses-5.2/ncurses/tty/hashmap.c569
-rw-r--r--ncurses-5.2/ncurses/tty/lib_mvcur.c1182
-rw-r--r--ncurses-5.2/ncurses/tty/lib_tstp.c366
-rw-r--r--ncurses-5.2/ncurses/tty/lib_twait.c265
-rw-r--r--ncurses-5.2/ncurses/tty/lib_vidattr.c296
-rw-r--r--ncurses-5.2/ncurses/tty/tty_display.h137
-rw-r--r--ncurses-5.2/ncurses/tty/tty_input.h61
-rw-r--r--ncurses-5.2/ncurses/tty/tty_update.c1801
-rw-r--r--ncurses-5.2/panel/Makefile.in149
-rw-r--r--ncurses-5.2/panel/headers31
-rw-r--r--ncurses-5.2/panel/llib-lpanel143
-rw-r--r--ncurses-5.2/panel/modules49
-rw-r--r--ncurses-5.2/panel/p_above.c51
-rw-r--r--ncurses-5.2/panel/p_below.c53
-rw-r--r--ncurses-5.2/panel/p_bottom.c70
-rw-r--r--ncurses-5.2/panel/p_delete.c54
-rw-r--r--ncurses-5.2/panel/p_hidden.c47
-rw-r--r--ncurses-5.2/panel/p_hide.c57
-rw-r--r--ncurses-5.2/panel/p_move.c54
-rw-r--r--ncurses-5.2/panel/p_new.c104
-rw-r--r--ncurses-5.2/panel/p_replace.c53
-rw-r--r--ncurses-5.2/panel/p_show.c67
-rw-r--r--ncurses-5.2/panel/p_top.c45
-rw-r--r--ncurses-5.2/panel/p_update.c60
-rw-r--r--ncurses-5.2/panel/p_user.c55
-rw-r--r--ncurses-5.2/panel/p_win.c49
-rw-r--r--ncurses-5.2/panel/panel.c136
-rw-r--r--ncurses-5.2/panel/panel.h75
-rw-r--r--ncurses-5.2/panel/panel.priv.h203
-rwxr-xr-xncurses-5.2/progs/MKtermsort.sh127
-rw-r--r--ncurses-5.2/progs/Makefile.in269
-rwxr-xr-xncurses-5.2/progs/capconvert229
-rw-r--r--ncurses-5.2/progs/clear.c58
-rwxr-xr-xncurses-5.2/progs/clear.sh1
-rw-r--r--ncurses-5.2/progs/dump_entry.c972
-rw-r--r--ncurses-5.2/progs/dump_entry.h67
-rw-r--r--ncurses-5.2/progs/infocmp.c1441
-rw-r--r--ncurses-5.2/progs/modules41
-rw-r--r--ncurses-5.2/progs/progs.priv.h174
-rw-r--r--ncurses-5.2/progs/tic.c1068
-rw-r--r--ncurses-5.2/progs/toe.c291
-rw-r--r--ncurses-5.2/progs/tput.c391
-rw-r--r--ncurses-5.2/progs/tset.c1205
-rw-r--r--ncurses-5.2/sysdeps/unix/sysv/linux/Makefile10
-rwxr-xr-xncurses-5.2/sysdeps/unix/sysv/linux/alpha/configure2
-rwxr-xr-xncurses-5.2/sysdeps/unix/sysv/linux/configure407
-rw-r--r--ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sed100
-rwxr-xr-xncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sh37
-rwxr-xr-xncurses-5.2/sysdeps/unix/sysv/linux/run_tic.sh143
-rw-r--r--ncurses-5.2/tack/COPYING340
-rw-r--r--ncurses-5.2/tack/HISTORY44
-rw-r--r--ncurses-5.2/tack/Makefile.in170
-rw-r--r--ncurses-5.2/tack/README14
-rw-r--r--ncurses-5.2/tack/ansi.c853
-rw-r--r--ncurses-5.2/tack/charset.c709
-rw-r--r--ncurses-5.2/tack/color.c767
-rw-r--r--ncurses-5.2/tack/control.c657
-rw-r--r--ncurses-5.2/tack/crum.c426
-rw-r--r--ncurses-5.2/tack/edit.c977
-rw-r--r--ncurses-5.2/tack/fun.c912
-rw-r--r--ncurses-5.2/tack/init.c300
-rw-r--r--ncurses-5.2/tack/menu.c421
-rw-r--r--ncurses-5.2/tack/modes.c913
-rw-r--r--ncurses-5.2/tack/modules18
-rw-r--r--ncurses-5.2/tack/output.c818
-rw-r--r--ncurses-5.2/tack/pad.c1957
-rw-r--r--ncurses-5.2/tack/scan.c261
-rw-r--r--ncurses-5.2/tack/sync.c424
-rw-r--r--ncurses-5.2/tack/sysdep.c498
-rw-r--r--ncurses-5.2/tack/tack.1311
-rw-r--r--ncurses-5.2/tack/tack.c620
-rw-r--r--ncurses-5.2/tack/tack.h403
-rwxr-xr-xncurses-5.2/tar-copy.sh70
-rw-r--r--ncurses-5.2/test/Makefile.in221
-rw-r--r--ncurses-5.2/test/README22
-rw-r--r--ncurses-5.2/test/blue.c440
-rw-r--r--ncurses-5.2/test/bs.642
-rw-r--r--ncurses-5.2/test/bs.c1268
-rw-r--r--ncurses-5.2/test/cardfile.c420
-rw-r--r--ncurses-5.2/test/cardfile.dat13
-rwxr-xr-xncurses-5.2/test/configure1998
-rw-r--r--ncurses-5.2/test/configure.in199
-rw-r--r--ncurses-5.2/test/ditto.c148
-rw-r--r--ncurses-5.2/test/dots.c143
-rw-r--r--ncurses-5.2/test/filter.c109
-rw-r--r--ncurses-5.2/test/firework.c174
-rw-r--r--ncurses-5.2/test/firstlast.c89
-rw-r--r--ncurses-5.2/test/gdc.622
-rw-r--r--ncurses-5.2/test/gdc.c316
-rw-r--r--ncurses-5.2/test/hanoi.c303
-rw-r--r--ncurses-5.2/test/hashtest.c220
-rw-r--r--ncurses-5.2/test/keynames.c14
-rw-r--r--ncurses-5.2/test/knight.c591
-rw-r--r--ncurses-5.2/test/lrtest.c132
-rw-r--r--ncurses-5.2/test/modules59
-rw-r--r--ncurses-5.2/test/ncurses.c3616
-rw-r--r--ncurses-5.2/test/ncurses_tst.hin56
-rw-r--r--ncurses-5.2/test/newdemo.c348
-rw-r--r--ncurses-5.2/test/railroad.c241
-rw-r--r--ncurses-5.2/test/rain.c133
-rw-r--r--ncurses-5.2/test/tclock.c226
-rw-r--r--ncurses-5.2/test/test.priv.h116
-rw-r--r--ncurses-5.2/test/testaddch.c60
-rw-r--r--ncurses-5.2/test/testcurs.c657
-rw-r--r--ncurses-5.2/test/testscanw.c38
-rwxr-xr-xncurses-5.2/test/tracemunch98
-rw-r--r--ncurses-5.2/test/view.c447
-rw-r--r--ncurses-5.2/test/worm.c428
-rw-r--r--ncurses-5.2/test/xmas.c1160
-rw-r--r--ncurses-5.3/ANNOUNCE391
-rw-r--r--ncurses-5.3/Ada95/Makefile.in68
-rw-r--r--ncurses-5.3/Ada95/README34
-rw-r--r--ncurses-5.3/Ada95/TODO27
-rw-r--r--ncurses-5.3/Ada95/gen/Makefile.in442
-rw-r--r--ncurses-5.3/Ada95/gen/gen.c1437
-rw-r--r--ncurses-5.3/Ada95/gen/html.m411
-rw-r--r--ncurses-5.3/Ada95/gen/normal.m48
-rw-r--r--ncurses-5.3/Ada95/gen/table.m46
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-aux.ads.m4105
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4239
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m471
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m471
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-forms.ads.m4700
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m476
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m471
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-menus.ads.m4604
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-mouse.ads.m4184
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m471
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-panels.ads.m4147
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses-trace.ads.m478
-rw-r--r--ncurses-5.3/Ada95/gen/terminal_interface-curses.ads.m41557
-rw-r--r--ncurses-5.3/Ada95/samples/Makefile.in154
-rw-r--r--ncurses-5.3/Ada95/samples/README6
-rw-r--r--ncurses-5.3/Ada95/samples/explain.txt186
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses.adb47
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.adb722
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-acs_display.adb231
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-acs_display.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-attr_test.adb367
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-attr_test.ads42
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-color_edit.adb264
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-color_edit.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-color_test.adb164
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-color_test.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-demo_forms.adb496
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-demo_forms.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-demo_pad.adb671
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-demo_pad.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-demo_panels.adb379
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-demo_panels.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.adb135
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.ads43
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-genericputs.adb126
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-genericputs.ads73
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-getch.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-getch_test.adb251
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-getch_test.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-getopt.adb168
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-getopt.ads59
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-m.adb460
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-m.ads43
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-menu_test.adb165
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-menu_test.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-overlap_test.adb156
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-overlap_test.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-slk_test.adb171
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-slk_test.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.adb186
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-trace_set.adb481
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-trace_set.ads41
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-util.adb199
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2-util.ads79
-rw-r--r--ncurses-5.3/Ada95/samples/ncurses2.ads44
-rw-r--r--ncurses-5.3/Ada95/samples/rain.adb163
-rw-r--r--ncurses-5.3/Ada95/samples/rain.ads44
-rw-r--r--ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.adb123
-rw-r--r--ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.ads46
-rw-r--r--ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.adb221
-rw-r--r--ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.ads46
-rw-r--r--ncurses-5.3/Ada95/samples/sample-curses_demo.adb143
-rw-r--r--ncurses-5.3/Ada95/samples/sample-curses_demo.ads46
-rw-r--r--ncurses-5.3/Ada95/samples/sample-explanation.adb409
-rw-r--r--ncurses-5.3/Ada95/samples/sample-explanation.ads60
-rw-r--r--ncurses-5.3/Ada95/samples/sample-form_demo-aux.adb260
-rw-r--r--ncurses-5.3/Ada95/samples/sample-form_demo-aux.ads93
-rw-r--r--ncurses-5.3/Ada95/samples/sample-form_demo-handler.adb98
-rw-r--r--ncurses-5.3/Ada95/samples/sample-form_demo-handler.ads65
-rw-r--r--ncurses-5.3/Ada95/samples/sample-form_demo.adb135
-rw-r--r--ncurses-5.3/Ada95/samples/sample-form_demo.ads46
-rw-r--r--ncurses-5.3/Ada95/samples/sample-function_key_setting.adb214
-rw-r--r--ncurses-5.3/Ada95/samples/sample-function_key_setting.ads83
-rw-r--r--ncurses-5.3/Ada95/samples/sample-header_handler.adb181
-rw-r--r--ncurses-5.3/Ada95/samples/sample-header_handler.ads54
-rw-r--r--ncurses-5.3/Ada95/samples/sample-helpers.adb70
-rw-r--r--ncurses-5.3/Ada95/samples/sample-helpers.ads55
-rw-r--r--ncurses-5.3/Ada95/samples/sample-keyboard_handler.adb192
-rw-r--r--ncurses-5.3/Ada95/samples/sample-keyboard_handler.ads56
-rw-r--r--ncurses-5.3/Ada95/samples/sample-manifest.ads68
-rw-r--r--ncurses-5.3/Ada95/samples/sample-menu_demo-aux.adb205
-rw-r--r--ncurses-5.3/Ada95/samples/sample-menu_demo-aux.ads72
-rw-r--r--ncurses-5.3/Ada95/samples/sample-menu_demo-handler.adb108
-rw-r--r--ncurses-5.3/Ada95/samples/sample-menu_demo-handler.ads65
-rw-r--r--ncurses-5.3/Ada95/samples/sample-menu_demo.adb391
-rw-r--r--ncurses-5.3/Ada95/samples/sample-menu_demo.ads46
-rw-r--r--ncurses-5.3/Ada95/samples/sample-my_field_type.adb66
-rw-r--r--ncurses-5.3/Ada95/samples/sample-my_field_type.ads63
-rw-r--r--ncurses-5.3/Ada95/samples/sample-text_io_demo.adb181
-rw-r--r--ncurses-5.3/Ada95/samples/sample-text_io_demo.ads46
-rw-r--r--ncurses-5.3/Ada95/samples/sample.adb219
-rw-r--r--ncurses-5.3/Ada95/samples/sample.ads44
-rw-r--r--ncurses-5.3/Ada95/samples/status.adb58
-rw-r--r--ncurses-5.3/Ada95/samples/status.ads61
-rw-r--r--ncurses-5.3/Ada95/samples/tour.adb47
-rw-r--r--ncurses-5.3/Ada95/samples/tour.ads42
-rw-r--r--ncurses-5.3/Ada95/src/Makefile.in390
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-aux.adb117
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb69
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads54
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb69
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads55
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb81
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads60
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb120
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads99
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb73
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads56
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb69
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads52
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb75
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads56
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb72
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads56
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb111
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads97
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.adb133
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.ads98
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types.adb297
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_user_data.adb86
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms-form_user_data.adb87
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-forms.adb1161
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-menus-item_user_data.adb78
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb77
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-menus.adb1022
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-mouse.adb215
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-panels-user_data.adb79
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-panels.adb165
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.adb78
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.ads51
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.adb164
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.ads81
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.adb162
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.ads82
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.adb129
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.ads56
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.adb74
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.ads71
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb76
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads67
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb81
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads64
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb76
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads67
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.adb77
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.ads67
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.adb71
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.ads64
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.adb71
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.ads64
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.adb337
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.ads137
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses-trace.adb_p92
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface-curses.adb2561
-rw-r--r--ncurses-5.3/Ada95/src/terminal_interface.ads49
-rw-r--r--ncurses-5.3/INSTALL1151
-rw-r--r--ncurses-5.3/MANIFEST981
-rw-r--r--ncurses-5.3/Makefile.glibc405
-rw-r--r--ncurses-5.3/Makefile.in93
-rw-r--r--ncurses-5.3/Makefile.os2234
-rw-r--r--ncurses-5.3/NEWS5802
-rw-r--r--ncurses-5.3/README175
-rw-r--r--ncurses-5.3/README.emx45
-rw-r--r--ncurses-5.3/README.glibc5
-rw-r--r--ncurses-5.3/TO-DO191
-rw-r--r--ncurses-5.3/aclocal.m42932
-rw-r--r--ncurses-5.3/announce.html.in436
-rw-r--r--ncurses-5.3/c++/Makefile.in220
-rw-r--r--ncurses-5.3/c++/NEWS42
-rw-r--r--ncurses-5.3/c++/PROBLEMS5
-rw-r--r--ncurses-5.3/c++/README-first58
-rw-r--r--ncurses-5.3/c++/cursesapp.cc147
-rw-r--r--ncurses-5.3/c++/cursesapp.h164
-rw-r--r--ncurses-5.3/c++/cursesf.cc427
-rw-r--r--ncurses-5.3/c++/cursesf.h825
-rw-r--r--ncurses-5.3/c++/cursesm.cc383
-rw-r--r--ncurses-5.3/c++/cursesm.h593
-rw-r--r--ncurses-5.3/c++/cursesmain.cc58
-rw-r--r--ncurses-5.3/c++/cursesp.cc130
-rw-r--r--ncurses-5.3/c++/cursesp.h222
-rw-r--r--ncurses-5.3/c++/cursespad.cc276
-rw-r--r--ncurses-5.3/c++/cursesw.cc456
-rw-r--r--ncurses-5.3/c++/cursesw.h1397
-rw-r--r--ncurses-5.3/c++/cursslk.cc123
-rw-r--r--ncurses-5.3/c++/cursslk.h206
-rw-r--r--ncurses-5.3/c++/demo.cc493
-rwxr-xr-xncurses-5.3/c++/edit_cfg.sh70
-rw-r--r--ncurses-5.3/c++/etip.h.in292
-rw-r--r--ncurses-5.3/c++/headers39
-rw-r--r--ncurses-5.3/c++/internal.h50
-rw-r--r--ncurses-5.3/c++/modules43
-rwxr-xr-xncurses-5.3/config.guess1363
-rw-r--r--ncurses-5.3/config.log152
-rwxr-xr-xncurses-5.3/config.sub1470
-rwxr-xr-xncurses-5.3/configure11969
-rw-r--r--ncurses-5.3/configure.in1335
-rw-r--r--ncurses-5.3/convert_configure.pl90
-rw-r--r--ncurses-5.3/dist.mk136
-rw-r--r--ncurses-5.3/doc/hackguide.doc687
-rw-r--r--ncurses-5.3/doc/html/Ada95.html168
-rw-r--r--ncurses-5.3/doc/html/ada/files.htm5
-rw-r--r--ncurses-5.3/doc/html/ada/files/T.htm77
-rw-r--r--ncurses-5.3/doc/html/ada/funcs.htm27
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/A.htm19
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/B.htm10
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/C.htm36
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/D.htm22
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/E.htm11
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/F.htm46
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/G.htm32
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/H.htm13
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/I.htm33
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/K.htm10
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/L.htm14
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/M.htm44
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/N.htm28
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/O.htm9
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/P.htm44
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/Q.htm7
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/R.htm20
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/S.htm97
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/T.htm34
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/U.htm12
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/V.htm7
-rw-r--r--ncurses-5.3/doc/html/ada/funcs/W.htm54
-rw-r--r--ncurses-5.3/doc/html/ada/index.htm41
-rw-r--r--ncurses-5.3/doc/html/ada/main.htm70
-rw-r--r--ncurses-5.3/doc/html/ada/table.html339
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__adb.htm122
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__ads.htm131
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm74
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm59
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm74
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm60
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm86
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm65
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm125
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm104
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm78
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm61
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm74
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm57
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm80
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm61
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm77
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm61
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm116
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm102
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm138
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm103
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm302
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm246
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm91
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm76
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm92
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm76
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__adb.htm1166
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__ads.htm789
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm83
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm81
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm82
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm76
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__adb.htm1027
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__ads.htm683
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__adb.htm220
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__ads.htm237
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm84
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm76
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__adb.htm170
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__ads.htm153
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__adb.htm83
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__ads.htm56
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__adb.htm169
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__ads.htm86
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__adb.htm167
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__ads.htm87
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm134
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm61
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm79
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm76
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm81
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm72
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm86
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm69
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm81
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm72
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm82
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm72
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm76
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm69
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm76
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm69
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__adb.htm342
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__ads.htm142
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__adb.htm60
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__ads.htm119
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses__adb.htm2566
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface-curses__ads.htm1940
-rw-r--r--ncurses-5.3/doc/html/ada/terminal_interface__ads.htm54
-rw-r--r--ncurses-5.3/doc/html/announce.html436
-rw-r--r--ncurses-5.3/doc/html/hackguide.html890
-rw-r--r--ncurses-5.3/doc/html/index.html30
-rw-r--r--ncurses-5.3/doc/html/man/captoinfo.1m.html229
-rw-r--r--ncurses-5.3/doc/html/man/clear.1.html112
-rw-r--r--ncurses-5.3/doc/html/man/curs_add_wch.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_add_wchstr.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_addch.3x.html227
-rw-r--r--ncurses-5.3/doc/html/man/curs_addchstr.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_addstr.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_addwstr.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_attr.3x.html279
-rw-r--r--ncurses-5.3/doc/html/man/curs_beep.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_bkgd.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_bkgrnd.3x.html170
-rw-r--r--ncurses-5.3/doc/html/man/curs_border.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_border_set.3x.html170
-rw-r--r--ncurses-5.3/doc/html/man/curs_clear.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_color.3x.html280
-rw-r--r--ncurses-5.3/doc/html/man/curs_delch.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_deleteln.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_extend.3x.html117
-rw-r--r--ncurses-5.3/doc/html/man/curs_get_wch.3x.html170
-rw-r--r--ncurses-5.3/doc/html/man/curs_get_wstr.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_getcchar.3x.html170
-rw-r--r--ncurses-5.3/doc/html/man/curs_getch.3x.html335
-rw-r--r--ncurses-5.3/doc/html/man/curs_getstr.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_getyx.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_in_wch.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_in_wchstr.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_inch.3x.html117
-rw-r--r--ncurses-5.3/doc/html/man/curs_inchstr.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_initscr.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_inopts.3x.html280
-rw-r--r--ncurses-5.3/doc/html/man/curs_ins_wch.3x.html116
-rw-r--r--ncurses-5.3/doc/html/man/curs_ins_wstr.3x.html170
-rw-r--r--ncurses-5.3/doc/html/man/curs_insch.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_insstr.3x.html173
-rw-r--r--ncurses-5.3/doc/html/man/curs_instr.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_inwstr.3x.html116
-rw-r--r--ncurses-5.3/doc/html/man/curs_kernel.3x.html226
-rw-r--r--ncurses-5.3/doc/html/man/curs_mouse.3x.html281
-rw-r--r--ncurses-5.3/doc/html/man/curs_move.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_outopts.3x.html226
-rw-r--r--ncurses-5.3/doc/html/man/curs_overlay.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_pad.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_print.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_printw.3x.html116
-rw-r--r--ncurses-5.3/doc/html/man/curs_refresh.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_scanw.3x.html170
-rw-r--r--ncurses-5.3/doc/html/man/curs_scr_dump.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_scroll.3x.html118
-rw-r--r--ncurses-5.3/doc/html/man/curs_slk.3x.html226
-rw-r--r--ncurses-5.3/doc/html/man/curs_termattrs.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_termcap.3x.html172
-rw-r--r--ncurses-5.3/doc/html/man/curs_terminfo.3x.html334
-rw-r--r--ncurses-5.3/doc/html/man/curs_touch.3x.html173
-rw-r--r--ncurses-5.3/doc/html/man/curs_trace.3x.html170
-rw-r--r--ncurses-5.3/doc/html/man/curs_util.3x.html170
-rw-r--r--ncurses-5.3/doc/html/man/curs_window.3x.html228
-rw-r--r--ncurses-5.3/doc/html/man/default_colors.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/define_key.3x.html119
-rw-r--r--ncurses-5.3/doc/html/man/form.3x.html284
-rw-r--r--ncurses-5.3/doc/html/man/form_cursor.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/form_data.3x.html119
-rw-r--r--ncurses-5.3/doc/html/man/form_driver.3x.html337
-rw-r--r--ncurses-5.3/doc/html/man/form_field.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/form_field_attributes.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/form_field_buffer.3x.html176
-rw-r--r--ncurses-5.3/doc/html/man/form_field_info.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/form_field_just.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/form_field_new.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/form_field_opts.3x.html173
-rw-r--r--ncurses-5.3/doc/html/man/form_field_userptr.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/form_field_validation.3x.html228
-rw-r--r--ncurses-5.3/doc/html/man/form_fieldtype.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/form_hook.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/form_new.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/form_new_page.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/form_opts.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/form_page.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/form_post.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/form_requestname.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/form_userptr.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/form_win.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/infocmp.1m.html447
-rw-r--r--ncurses-5.3/doc/html/man/infotocap.1m.html117
-rw-r--r--ncurses-5.3/doc/html/man/keybound.3x.html119
-rw-r--r--ncurses-5.3/doc/html/man/keyok.3x.html119
-rw-r--r--ncurses-5.3/doc/html/man/menu.3x.html283
-rw-r--r--ncurses-5.3/doc/html/man/menu_attributes.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/menu_cursor.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/menu_driver.3x.html228
-rw-r--r--ncurses-5.3/doc/html/man/menu_format.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/menu_hook.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/menu_items.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/menu_mark.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/menu_new.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/menu_opts.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/menu_pattern.3x.html120
-rw-r--r--ncurses-5.3/doc/html/man/menu_post.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/menu_requestname.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/menu_spacing.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/menu_userptr.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/menu_win.3x.html175
-rw-r--r--ncurses-5.3/doc/html/man/mitem_current.3x.html176
-rw-r--r--ncurses-5.3/doc/html/man/mitem_name.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/mitem_new.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/mitem_opts.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/mitem_userptr.3x.html121
-rw-r--r--ncurses-5.3/doc/html/man/mitem_value.3x.html120
-rw-r--r--ncurses-5.3/doc/html/man/mitem_visible.3x.html119
-rw-r--r--ncurses-5.3/doc/html/man/ncurses.3x.html1046
-rw-r--r--ncurses-5.3/doc/html/man/panel.3x.html232
-rw-r--r--ncurses-5.3/doc/html/man/resizeterm.3x.html174
-rw-r--r--ncurses-5.3/doc/html/man/term.5.html222
-rw-r--r--ncurses-5.3/doc/html/man/term.7.html277
-rw-r--r--ncurses-5.3/doc/html/man/terminfo.5.html2290
-rw-r--r--ncurses-5.3/doc/html/man/tic.1m.html335
-rw-r--r--ncurses-5.3/doc/html/man/toe.1m.html114
-rw-r--r--ncurses-5.3/doc/html/man/tput.1.html340
-rw-r--r--ncurses-5.3/doc/html/man/tset.1.html341
-rw-r--r--ncurses-5.3/doc/html/man/wresize.3x.html119
-rw-r--r--ncurses-5.3/doc/html/ncurses-intro.html2690
-rw-r--r--ncurses-5.3/doc/ncurses-intro.doc2505
-rw-r--r--ncurses-5.3/form/Makefile.in160
-rw-r--r--ncurses-5.3/form/READ.ME16
-rw-r--r--ncurses-5.3/form/fld_arg.c95
-rw-r--r--ncurses-5.3/form/fld_attr.c112
-rw-r--r--ncurses-5.3/form/fld_current.c128
-rw-r--r--ncurses-5.3/form/fld_def.c354
-rw-r--r--ncurses-5.3/form/fld_dup.c99
-rw-r--r--ncurses-5.3/form/fld_ftchoice.c65
-rw-r--r--ncurses-5.3/form/fld_ftlink.c86
-rw-r--r--ncurses-5.3/form/fld_info.c95
-rw-r--r--ncurses-5.3/form/fld_just.c84
-rw-r--r--ncurses-5.3/form/fld_link.c92
-rw-r--r--ncurses-5.3/form/fld_max.c76
-rw-r--r--ncurses-5.3/form/fld_move.c64
-rw-r--r--ncurses-5.3/form/fld_newftyp.c128
-rw-r--r--ncurses-5.3/form/fld_opts.c129
-rw-r--r--ncurses-5.3/form/fld_pad.c81
-rw-r--r--ncurses-5.3/form/fld_page.c79
-rw-r--r--ncurses-5.3/form/fld_stat.c76
-rw-r--r--ncurses-5.3/form/fld_type.c95
-rw-r--r--ncurses-5.3/form/fld_user.c70
-rw-r--r--ncurses-5.3/form/form.h384
-rw-r--r--ncurses-5.3/form/form.priv.h129
-rw-r--r--ncurses-5.3/form/frm_cursor.c68
-rw-r--r--ncurses-5.3/form/frm_data.c184
-rw-r--r--ncurses-5.3/form/frm_def.c382
-rw-r--r--ncurses-5.3/form/frm_driver.c3858
-rw-r--r--ncurses-5.3/form/frm_hook.c141
-rw-r--r--ncurses-5.3/form/frm_opts.c121
-rw-r--r--ncurses-5.3/form/frm_page.c103
-rw-r--r--ncurses-5.3/form/frm_post.c120
-rw-r--r--ncurses-5.3/form/frm_req_name.c166
-rw-r--r--ncurses-5.3/form/frm_scale.c65
-rw-r--r--ncurses-5.3/form/frm_sub.c72
-rw-r--r--ncurses-5.3/form/frm_user.c70
-rw-r--r--ncurses-5.3/form/frm_win.c73
-rw-r--r--ncurses-5.3/form/fty_alnum.c138
-rw-r--r--ncurses-5.3/form/fty_alpha.c139
-rw-r--r--ncurses-5.3/form/fty_enum.c296
-rw-r--r--ncurses-5.3/form/fty_int.c161
-rw-r--r--ncurses-5.3/form/fty_ipv4.c81
-rw-r--r--ncurses-5.3/form/fty_num.c196
-rw-r--r--ncurses-5.3/form/fty_regex.c258
-rw-r--r--ncurses-5.3/form/headers31
-rw-r--r--ncurses-5.3/form/llib-lform694
-rw-r--r--ncurses-5.3/form/llib-lformw692
-rw-r--r--ncurses-5.3/form/modules73
-rw-r--r--ncurses-5.3/include/Caps1264
-rw-r--r--ncurses-5.3/include/Caps.aix41255
-rw-r--r--ncurses-5.3/include/Caps.hpux111275
-rw-r--r--ncurses-5.3/include/Caps.keys1354
-rw-r--r--ncurses-5.3/include/Caps.osf1r51274
-rw-r--r--ncurses-5.3/include/Caps.uwin1090
-rwxr-xr-xncurses-5.3/include/MKhashsize.sh14
-rwxr-xr-xncurses-5.3/include/MKkey_defs.sh178
-rwxr-xr-xncurses-5.3/include/MKncurses_def.sh80
-rwxr-xr-xncurses-5.3/include/MKparametrized.sh35
-rw-r--r--ncurses-5.3/include/MKterm.h.awk.in309
-rw-r--r--ncurses-5.3/include/Makefile.in126
-rw-r--r--ncurses-5.3/include/capdefaults.c84
-rw-r--r--ncurses-5.3/include/curses.h.in1023
-rw-r--r--ncurses-5.3/include/curses.tail140
-rw-r--r--ncurses-5.3/include/curses.wide237
-rwxr-xr-xncurses-5.3/include/edit_cfg.sh67
-rw-r--r--ncurses-5.3/include/headers35
-rw-r--r--ncurses-5.3/include/nc_alloc.h91
-rw-r--r--ncurses-5.3/include/nc_panel.h66
-rw-r--r--ncurses-5.3/include/ncurses_cfg.hin62
-rw-r--r--ncurses-5.3/include/ncurses_defs165
-rw-r--r--ncurses-5.3/include/ncurses_dll.h48
-rw-r--r--ncurses-5.3/include/term_entry.h162
-rw-r--r--ncurses-5.3/include/termcap.h.in75
-rw-r--r--ncurses-5.3/include/tic.h303
-rw-r--r--ncurses-5.3/include/unctrl.h.in63
-rwxr-xr-xncurses-5.3/install-sh250
-rwxr-xr-xncurses-5.3/man/MKterminfo.sh110
-rw-r--r--ncurses-5.3/man/Makefile.in79
-rw-r--r--ncurses-5.3/man/captoinfo.1m189
-rw-r--r--ncurses-5.3/man/clear.148
-rw-r--r--ncurses-5.3/man/curs_add_wch.3x134
-rw-r--r--ncurses-5.3/man/curs_add_wchstr.3x98
-rw-r--r--ncurses-5.3/man/curs_addch.3x170
-rw-r--r--ncurses-5.3/man/curs_addchstr.3x83
-rw-r--r--ncurses-5.3/man/curs_addstr.3x87
-rw-r--r--ncurses-5.3/man/curs_addwstr.3x91
-rw-r--r--ncurses-5.3/man/curs_attr.3x232
-rw-r--r--ncurses-5.3/man/curs_beep.3x63
-rw-r--r--ncurses-5.3/man/curs_bkgd.3x99
-rw-r--r--ncurses-5.3/man/curs_bkgrnd.3x107
-rw-r--r--ncurses-5.3/man/curs_border.3x138
-rw-r--r--ncurses-5.3/man/curs_border_set.3x202
-rw-r--r--ncurses-5.3/man/curs_clear.3x94
-rw-r--r--ncurses-5.3/man/curs_color.3x216
-rw-r--r--ncurses-5.3/man/curs_delch.3x70
-rw-r--r--ncurses-5.3/man/curs_deleteln.3x87
-rw-r--r--ncurses-5.3/man/curs_extend.3x84
-rw-r--r--ncurses-5.3/man/curs_get_wch.3x161
-rw-r--r--ncurses-5.3/man/curs_get_wstr.3x164
-rw-r--r--ncurses-5.3/man/curs_getcchar.3x144
-rw-r--r--ncurses-5.3/man/curs_getch.3x305
-rw-r--r--ncurses-5.3/man/curs_getstr.3x107
-rw-r--r--ncurses-5.3/man/curs_getyx.3x97
-rw-r--r--ncurses-5.3/man/curs_in_wch.3x68
-rw-r--r--ncurses-5.3/man/curs_in_wchstr.3x117
-rw-r--r--ncurses-5.3/man/curs_inch.3x73
-rw-r--r--ncurses-5.3/man/curs_inchstr.3x88
-rw-r--r--ncurses-5.3/man/curs_initscr.3x124
-rw-r--r--ncurses-5.3/man/curs_inopts.3x214
-rw-r--r--ncurses-5.3/man/curs_ins_wch.3x65
-rw-r--r--ncurses-5.3/man/curs_ins_wstr.3x104
-rw-r--r--ncurses-5.3/man/curs_insch.3x70
-rw-r--r--ncurses-5.3/man/curs_insstr.3x95
-rw-r--r--ncurses-5.3/man/curs_instr.3x89
-rw-r--r--ncurses-5.3/man/curs_inwstr.3x95
-rw-r--r--ncurses-5.3/man/curs_kernel.3x159
-rw-r--r--ncurses-5.3/man/curs_mouse.3x239
-rw-r--r--ncurses-5.3/man/curs_move.3x63
-rw-r--r--ncurses-5.3/man/curs_outopts.3x193
-rw-r--r--ncurses-5.3/man/curs_overlay.3x76
-rw-r--r--ncurses-5.3/man/curs_pad.3x110
-rw-r--r--ncurses-5.3/man/curs_print.3x74
-rw-r--r--ncurses-5.3/man/curs_printw.3x84
-rw-r--r--ncurses-5.3/man/curs_refresh.3x126
-rw-r--r--ncurses-5.3/man/curs_scanw.3x97
-rw-r--r--ncurses-5.3/man/curs_scr_dump.3x94
-rw-r--r--ncurses-5.3/man/curs_scroll.3x84
-rw-r--r--ncurses-5.3/man/curs_slk.3x149
-rw-r--r--ncurses-5.3/man/curs_termattrs.3x133
-rw-r--r--ncurses-5.3/man/curs_termcap.3x158
-rw-r--r--ncurses-5.3/man/curs_terminfo.3x294
-rw-r--r--ncurses-5.3/man/curs_touch.3x96
-rw-r--r--ncurses-5.3/man/curs_trace.3x149
-rw-r--r--ncurses-5.3/man/curs_util.3x134
-rw-r--r--ncurses-5.3/man/curs_window.3x159
-rw-r--r--ncurses-5.3/man/default_colors.3x125
-rw-r--r--ncurses-5.3/man/define_key.3x64
-rw-r--r--ncurses-5.3/man/form.3x200
-rw-r--r--ncurses-5.3/man/form_cursor.3x74
-rw-r--r--ncurses-5.3/man/form_data.3x63
-rw-r--r--ncurses-5.3/man/form_driver.3x272
-rw-r--r--ncurses-5.3/man/form_field.3x97
-rw-r--r--ncurses-5.3/man/form_field_attributes.3x91
-rw-r--r--ncurses-5.3/man/form_field_buffer.3x99
-rw-r--r--ncurses-5.3/man/form_field_info.3x84
-rw-r--r--ncurses-5.3/man/form_field_just.3x78
-rw-r--r--ncurses-5.3/man/form_field_new.3x96
-rw-r--r--ncurses-5.3/man/form_field_opts.3x120
-rw-r--r--ncurses-5.3/man/form_field_userptr.3x73
-rw-r--r--ncurses-5.3/man/form_field_validation.3x127
-rw-r--r--ncurses-5.3/man/form_fieldtype.3x126
-rw-r--r--ncurses-5.3/man/form_hook.3x100
-rw-r--r--ncurses-5.3/man/form_new.3x79
-rw-r--r--ncurses-5.3/man/form_new_page.3x77
-rw-r--r--ncurses-5.3/man/form_opts.3x90
-rw-r--r--ncurses-5.3/man/form_page.3x95
-rw-r--r--ncurses-5.3/man/form_post.3x90
-rw-r--r--ncurses-5.3/man/form_requestname.3x69
-rw-r--r--ncurses-5.3/man/form_userptr.3x73
-rw-r--r--ncurses-5.3/man/form_win.3x95
-rw-r--r--ncurses-5.3/man/infocmp.1m410
-rw-r--r--ncurses-5.3/man/infotocap.1m74
-rw-r--r--ncurses-5.3/man/keybound.3x61
-rw-r--r--ncurses-5.3/man/keyok.3x63
-rwxr-xr-xncurses-5.3/man/make_sed.sh83
-rw-r--r--ncurses-5.3/man/man_db.renames138
-rw-r--r--ncurses-5.3/man/manlinks.sed69
-rw-r--r--ncurses-5.3/man/menu.3x190
-rw-r--r--ncurses-5.3/man/menu_attributes.3x100
-rw-r--r--ncurses-5.3/man/menu_cursor.3x73
-rw-r--r--ncurses-5.3/man/menu_driver.3x170
-rw-r--r--ncurses-5.3/man/menu_format.3x84
-rw-r--r--ncurses-5.3/man/menu_hook.3x101
-rw-r--r--ncurses-5.3/man/menu_items.3x91
-rw-r--r--ncurses-5.3/man/menu_mark.3x84
-rw-r--r--ncurses-5.3/man/menu_new.3x79
-rw-r--r--ncurses-5.3/man/menu_opts.3x104
-rw-r--r--ncurses-5.3/man/menu_pattern.3x82
-rw-r--r--ncurses-5.3/man/menu_post.3x91
-rw-r--r--ncurses-5.3/man/menu_requestname.3x69
-rw-r--r--ncurses-5.3/man/menu_spacing.3x84
-rw-r--r--ncurses-5.3/man/menu_userptr.3x73
-rw-r--r--ncurses-5.3/man/menu_win.3x95
-rw-r--r--ncurses-5.3/man/mitem_current.3x101
-rw-r--r--ncurses-5.3/man/mitem_name.3x64
-rw-r--r--ncurses-5.3/man/mitem_new.3x83
-rw-r--r--ncurses-5.3/man/mitem_opts.3x84
-rw-r--r--ncurses-5.3/man/mitem_userptr.3x72
-rw-r--r--ncurses-5.3/man/mitem_value.3x76
-rw-r--r--ncurses-5.3/man/mitem_visible.3x59
-rw-r--r--ncurses-5.3/man/ncurses.3x914
-rw-r--r--ncurses-5.3/man/panel.3x182
-rw-r--r--ncurses-5.3/man/resizeterm.3x92
-rw-r--r--ncurses-5.3/man/term.5208
-rw-r--r--ncurses-5.3/man/term.7204
-rw-r--r--ncurses-5.3/man/terminfo.head95
-rw-r--r--ncurses-5.3/man/terminfo.tail1585
-rw-r--r--ncurses-5.3/man/tic.1m311
-rw-r--r--ncurses-5.3/man/toe.1m81
-rw-r--r--ncurses-5.3/man/tput.1288
-rw-r--r--ncurses-5.3/man/tset.1250
-rw-r--r--ncurses-5.3/man/wresize.3x64
-rw-r--r--ncurses-5.3/menu/Makefile.in162
-rw-r--r--ncurses-5.3/menu/READ.ME15
-rw-r--r--ncurses-5.3/menu/eti.h53
-rw-r--r--ncurses-5.3/menu/headers32
-rw-r--r--ncurses-5.3/menu/llib-lmenu508
-rw-r--r--ncurses-5.3/menu/llib-lmenuw508
-rw-r--r--ncurses-5.3/menu/m_attribs.c142
-rw-r--r--ncurses-5.3/menu/m_cursor.c112
-rw-r--r--ncurses-5.3/menu/m_driver.c544
-rw-r--r--ncurses-5.3/menu/m_format.c128
-rw-r--r--ncurses-5.3/menu/m_global.c492
-rw-r--r--ncurses-5.3/menu/m_hook.c150
-rw-r--r--ncurses-5.3/menu/m_item_cur.c110
-rw-r--r--ncurses-5.3/menu/m_item_nam.c71
-rw-r--r--ncurses-5.3/menu/m_item_new.c232
-rw-r--r--ncurses-5.3/menu/m_item_opt.c151
-rw-r--r--ncurses-5.3/menu/m_item_top.c105
-rw-r--r--ncurses-5.3/menu/m_item_use.c75
-rw-r--r--ncurses-5.3/menu/m_item_val.c103
-rw-r--r--ncurses-5.3/menu/m_item_vis.c68
-rw-r--r--ncurses-5.3/menu/m_items.c107
-rw-r--r--ncurses-5.3/menu/m_new.c111
-rw-r--r--ncurses-5.3/menu/m_opts.c175
-rw-r--r--ncurses-5.3/menu/m_pad.c93
-rw-r--r--ncurses-5.3/menu/m_pattern.c120
-rw-r--r--ncurses-5.3/menu/m_post.c371
-rw-r--r--ncurses-5.3/menu/m_req_name.c122
-rw-r--r--ncurses-5.3/menu/m_scale.c73
-rw-r--r--ncurses-5.3/menu/m_spacing.c102
-rw-r--r--ncurses-5.3/menu/m_sub.c83
-rw-r--r--ncurses-5.3/menu/m_userptr.c75
-rw-r--r--ncurses-5.3/menu/m_win.c83
-rw-r--r--ncurses-5.3/menu/menu.h255
-rw-r--r--ncurses-5.3/menu/menu.priv.h123
-rw-r--r--ncurses-5.3/menu/mf_common.h98
-rw-r--r--ncurses-5.3/menu/modules60
-rw-r--r--ncurses-5.3/misc/Makefile.in128
-rw-r--r--ncurses-5.3/misc/chkdef.cmd86
-rw-r--r--ncurses-5.3/misc/cleantic.cmd16
-rw-r--r--ncurses-5.3/misc/cmpdef.cmd106
-rw-r--r--ncurses-5.3/misc/emx.src825
-rw-r--r--ncurses-5.3/misc/form.def101
-rw-r--r--ncurses-5.3/misc/form.ref106
-rw-r--r--ncurses-5.3/misc/indent.pro35
-rw-r--r--ncurses-5.3/misc/makedef.cmd151
-rwxr-xr-xncurses-5.3/misc/makellib167
-rw-r--r--ncurses-5.3/misc/menu.def81
-rw-r--r--ncurses-5.3/misc/menu.ref73
-rw-r--r--ncurses-5.3/misc/ncurses.def447
-rw-r--r--ncurses-5.3/misc/ncurses.ref572
-rw-r--r--ncurses-5.3/misc/panel.def20
-rw-r--r--ncurses-5.3/misc/panel.ref18
-rw-r--r--ncurses-5.3/misc/run_tic.in152
-rw-r--r--ncurses-5.3/misc/run_tic.sh152
-rwxr-xr-xncurses-5.3/misc/shlib87
-rw-r--r--ncurses-5.3/misc/tabset/std1
-rw-r--r--ncurses-5.3/misc/tabset/stdcrt1
-rw-r--r--ncurses-5.3/misc/tabset/vt1003
-rw-r--r--ncurses-5.3/misc/tabset/vt3003
-rwxr-xr-xncurses-5.3/misc/tdlint113
-rw-r--r--ncurses-5.3/misc/terminfo.src19551
-rw-r--r--ncurses-5.3/mk-0th.awk101
-rw-r--r--ncurses-5.3/mk-1st.awk364
-rw-r--r--ncurses-5.3/mk-2nd.awk115
-rwxr-xr-xncurses-5.3/mkinstalldirs38
-rw-r--r--ncurses-5.3/ncurses/Makefile.in275
-rw-r--r--ncurses-5.3/ncurses/README2
-rw-r--r--ncurses-5.3/ncurses/README.IZ65
-rw-r--r--ncurses-5.3/ncurses/SigAction.h117
-rw-r--r--ncurses-5.3/ncurses/base/MKkeyname.awk90
-rwxr-xr-xncurses-5.3/ncurses/base/MKlib_gen.sh400
-rw-r--r--ncurses-5.3/ncurses/base/MKunctrl.awk69
-rw-r--r--ncurses-5.3/ncurses/base/README7
-rw-r--r--ncurses-5.3/ncurses/base/define_key.c60
-rw-r--r--ncurses-5.3/ncurses/base/keybound.c46
-rw-r--r--ncurses-5.3/ncurses/base/keyok.c73
-rw-r--r--ncurses-5.3/ncurses/base/lib_addch.c365
-rw-r--r--ncurses-5.3/ncurses/base/lib_addstr.c253
-rw-r--r--ncurses-5.3/ncurses/base/lib_beep.c73
-rw-r--r--ncurses-5.3/ncurses/base/lib_bkgd.c138
-rw-r--r--ncurses-5.3/ncurses/base/lib_box.c126
-rw-r--r--ncurses-5.3/ncurses/base/lib_chgat.c62
-rw-r--r--ncurses-5.3/ncurses/base/lib_clear.c56
-rw-r--r--ncurses-5.3/ncurses/base/lib_clearok.c55
-rw-r--r--ncurses-5.3/ncurses/base/lib_clrbot.c76
-rw-r--r--ncurses-5.3/ncurses/base/lib_clreol.c91
-rw-r--r--ncurses-5.3/ncurses/base/lib_color.c531
-rw-r--r--ncurses-5.3/ncurses/base/lib_colorset.c60
-rw-r--r--ncurses-5.3/ncurses/base/lib_delch.c69
-rw-r--r--ncurses-5.3/ncurses/base/lib_delwin.c78
-rw-r--r--ncurses-5.3/ncurses/base/lib_dft_fgbg.c71
-rw-r--r--ncurses-5.3/ncurses/base/lib_echo.c61
-rw-r--r--ncurses-5.3/ncurses/base/lib_endwin.c60
-rw-r--r--ncurses-5.3/ncurses/base/lib_erase.c73
-rw-r--r--ncurses-5.3/ncurses/base/lib_flash.c73
-rw-r--r--ncurses-5.3/ncurses/base/lib_freeall.c111
-rw-r--r--ncurses-5.3/ncurses/base/lib_getch.c537
-rw-r--r--ncurses-5.3/ncurses/base/lib_getstr.c215
-rw-r--r--ncurses-5.3/ncurses/base/lib_hline.c80
-rw-r--r--ncurses-5.3/ncurses/base/lib_immedok.c54
-rw-r--r--ncurses-5.3/ncurses/base/lib_inchstr.c64
-rw-r--r--ncurses-5.3/ncurses/base/lib_initscr.c97
-rw-r--r--ncurses-5.3/ncurses/base/lib_insch.c68
-rw-r--r--ncurses-5.3/ncurses/base/lib_insdel.c63
-rw-r--r--ncurses-5.3/ncurses/base/lib_insstr.c83
-rw-r--r--ncurses-5.3/ncurses/base/lib_instr.c73
-rw-r--r--ncurses-5.3/ncurses/base/lib_isendwin.c51
-rw-r--r--ncurses-5.3/ncurses/base/lib_leaveok.c55
-rw-r--r--ncurses-5.3/ncurses/base/lib_mouse.c1014
-rw-r--r--ncurses-5.3/ncurses/base/lib_move.c61
-rw-r--r--ncurses-5.3/ncurses/base/lib_mvwin.c108
-rw-r--r--ncurses-5.3/ncurses/base/lib_newterm.c209
-rw-r--r--ncurses-5.3/ncurses/base/lib_newwin.c306
-rw-r--r--ncurses-5.3/ncurses/base/lib_nl.c79
-rw-r--r--ncurses-5.3/ncurses/base/lib_overlay.c184
-rw-r--r--ncurses-5.3/ncurses/base/lib_pad.c313
-rw-r--r--ncurses-5.3/ncurses/base/lib_printw.c142
-rw-r--r--ncurses-5.3/ncurses/base/lib_redrawln.c75
-rw-r--r--ncurses-5.3/ncurses/base/lib_refresh.c187
-rw-r--r--ncurses-5.3/ncurses/base/lib_restart.c92
-rw-r--r--ncurses-5.3/ncurses/base/lib_scanw.c106
-rw-r--r--ncurses-5.3/ncurses/base/lib_screen.c205
-rw-r--r--ncurses-5.3/ncurses/base/lib_scroll.c152
-rw-r--r--ncurses-5.3/ncurses/base/lib_scrollok.c55
-rw-r--r--ncurses-5.3/ncurses/base/lib_scrreg.c60
-rw-r--r--ncurses-5.3/ncurses/base/lib_set_term.c479
-rw-r--r--ncurses-5.3/ncurses/base/lib_slk.c201
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkatr_set.c56
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkatrof.c53
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkatron.c53
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkatrset.c53
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkattr.c52
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkclear.c61
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkcolor.c53
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkinit.c51
-rw-r--r--ncurses-5.3/ncurses/base/lib_slklab.c51
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkrefr.c120
-rw-r--r--ncurses-5.3/ncurses/base/lib_slkset.c97
-rw-r--r--ncurses-5.3/ncurses/base/lib_slktouch.c53
-rw-r--r--ncurses-5.3/ncurses/base/lib_touch.c91
-rw-r--r--ncurses-5.3/ncurses/base/lib_ungetch.c79
-rw-r--r--ncurses-5.3/ncurses/base/lib_vline.c79
-rw-r--r--ncurses-5.3/ncurses/base/lib_wattroff.c56
-rw-r--r--ncurses-5.3/ncurses/base/lib_wattron.c56
-rw-r--r--ncurses-5.3/ncurses/base/lib_winch.c54
-rw-r--r--ncurses-5.3/ncurses/base/lib_window.c248
-rw-r--r--ncurses-5.3/ncurses/base/memmove.c69
-rw-r--r--ncurses-5.3/ncurses/base/nc_panel.c41
-rw-r--r--ncurses-5.3/ncurses/base/resizeterm.c288
-rw-r--r--ncurses-5.3/ncurses/base/safe_sprintf.c244
-rw-r--r--ncurses-5.3/ncurses/base/sigaction.c117
-rw-r--r--ncurses-5.3/ncurses/base/tries.c144
-rw-r--r--ncurses-5.3/ncurses/base/version.c47
-rw-r--r--ncurses-5.3/ncurses/base/vsscanf.c356
-rw-r--r--ncurses-5.3/ncurses/base/wresize.c239
-rw-r--r--ncurses-5.3/ncurses/curses.priv.h1057
-rw-r--r--ncurses-5.3/ncurses/fifo_defs.h59
-rw-r--r--ncurses-5.3/ncurses/llib-lncurses3061
-rw-r--r--ncurses-5.3/ncurses/llib-lncursesw3785
-rw-r--r--ncurses-5.3/ncurses/modules211
-rw-r--r--ncurses-5.3/ncurses/tinfo/MKcaptab.awk71
-rwxr-xr-xncurses-5.3/ncurses/tinfo/MKfallback.sh102
-rwxr-xr-xncurses-5.3/ncurses/tinfo/MKkeys_list.sh62
-rw-r--r--ncurses-5.3/ncurses/tinfo/MKnames.awk98
-rw-r--r--ncurses-5.3/ncurses/tinfo/README8
-rw-r--r--ncurses-5.3/ncurses/tinfo/access.c123
-rw-r--r--ncurses-5.3/ncurses/tinfo/add_tries.c125
-rw-r--r--ncurses-5.3/ncurses/tinfo/alloc_entry.c252
-rw-r--r--ncurses-5.3/ncurses/tinfo/alloc_ttype.c491
-rw-r--r--ncurses-5.3/ncurses/tinfo/captoinfo.c836
-rw-r--r--ncurses-5.3/ncurses/tinfo/comp_error.c139
-rw-r--r--ncurses-5.3/ncurses/tinfo/comp_expand.c184
-rw-r--r--ncurses-5.3/ncurses/tinfo/comp_hash.c331
-rw-r--r--ncurses-5.3/ncurses/tinfo/comp_parse.c501
-rw-r--r--ncurses-5.3/ncurses/tinfo/comp_scan.c831
-rw-r--r--ncurses-5.3/ncurses/tinfo/doalloc.c75
-rw-r--r--ncurses-5.3/ncurses/tinfo/free_ttype.c72
-rw-r--r--ncurses-5.3/ncurses/tinfo/getenv_num.c56
-rw-r--r--ncurses-5.3/ncurses/tinfo/home_terminfo.c65
-rw-r--r--ncurses-5.3/ncurses/tinfo/init_keytry.c80
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_acs.c177
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_baudrate.c222
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_cur_term.c72
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_data.c91
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_has_cap.c64
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_kernel.c154
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_longname.c57
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_napms.c69
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_options.c257
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_print.c92
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_raw.c296
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_setup.c437
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_termcap.c322
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_termname.c48
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_tgoto.c203
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_ti.c103
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_tparm.c769
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_tputs.c259
-rw-r--r--ncurses-5.3/ncurses/tinfo/lib_ttyflags.c173
-rw-r--r--ncurses-5.3/ncurses/tinfo/make_keys.c140
-rw-r--r--ncurses-5.3/ncurses/tinfo/name_match.c101
-rw-r--r--ncurses-5.3/ncurses/tinfo/parse_entry.c960
-rw-r--r--ncurses-5.3/ncurses/tinfo/read_entry.c503
-rw-r--r--ncurses-5.3/ncurses/tinfo/read_termcap.c1159
-rw-r--r--ncurses-5.3/ncurses/tinfo/setbuf.c144
-rw-r--r--ncurses-5.3/ncurses/tinfo/strings.c143
-rw-r--r--ncurses-5.3/ncurses/tinfo/write_entry.c591
-rw-r--r--ncurses-5.3/ncurses/trace/README5
-rw-r--r--ncurses-5.3/ncurses/trace/lib_trace.c180
-rw-r--r--ncurses-5.3/ncurses/trace/lib_traceatr.c301
-rw-r--r--ncurses-5.3/ncurses/trace/lib_tracebits.c248
-rw-r--r--ncurses-5.3/ncurses/trace/lib_tracechr.c55
-rw-r--r--ncurses-5.3/ncurses/trace/lib_tracedmp.c146
-rw-r--r--ncurses-5.3/ncurses/trace/lib_tracemse.c92
-rw-r--r--ncurses-5.3/ncurses/trace/trace_buf.c84
-rw-r--r--ncurses-5.3/ncurses/trace/trace_tries.c76
-rw-r--r--ncurses-5.3/ncurses/trace/trace_xnames.c75
-rw-r--r--ncurses-5.3/ncurses/trace/varargs.c182
-rw-r--r--ncurses-5.3/ncurses/trace/visbuf.c270
-rwxr-xr-xncurses-5.3/ncurses/tty/MKexpanded.sh99
-rw-r--r--ncurses-5.3/ncurses/tty/hardscroll.c325
-rw-r--r--ncurses-5.3/ncurses/tty/hashmap.c538
-rw-r--r--ncurses-5.3/ncurses/tty/lib_mvcur.c1201
-rw-r--r--ncurses-5.3/ncurses/tty/lib_tstp.c399
-rw-r--r--ncurses-5.3/ncurses/tty/lib_twait.c440
-rw-r--r--ncurses-5.3/ncurses/tty/lib_vidattr.c310
-rw-r--r--ncurses-5.3/ncurses/tty/tty_display.h137
-rw-r--r--ncurses-5.3/ncurses/tty/tty_input.h61
-rw-r--r--ncurses-5.3/ncurses/tty/tty_update.c1841
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_box_set.c113
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_cchar.c114
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_erasewchar.c77
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_get_wch.c99
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_get_wstr.c205
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_hline_set.c79
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_in_wch.c60
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_in_wchnstr.c62
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_ins_nwstr.c84
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_ins_wch.c65
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_inwstr.c100
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_unget_wch.c76
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_vid_attr.c94
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_vline_set.c78
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_wacs.c127
-rw-r--r--ncurses-5.3/ncurses/widechar/lib_wunctrl.c56
-rw-r--r--ncurses-5.3/panel/Makefile.in154
-rw-r--r--ncurses-5.3/panel/headers31
-rw-r--r--ncurses-5.3/panel/llib-lpanel177
-rw-r--r--ncurses-5.3/panel/llib-lpanelw177
-rw-r--r--ncurses-5.3/panel/modules49
-rw-r--r--ncurses-5.3/panel/p_above.c51
-rw-r--r--ncurses-5.3/panel/p_below.c53
-rw-r--r--ncurses-5.3/panel/p_bottom.c70
-rw-r--r--ncurses-5.3/panel/p_delete.c54
-rw-r--r--ncurses-5.3/panel/p_hidden.c47
-rw-r--r--ncurses-5.3/panel/p_hide.c57
-rw-r--r--ncurses-5.3/panel/p_move.c56
-rw-r--r--ncurses-5.3/panel/p_new.c104
-rw-r--r--ncurses-5.3/panel/p_replace.c55
-rw-r--r--ncurses-5.3/panel/p_show.c67
-rw-r--r--ncurses-5.3/panel/p_top.c45
-rw-r--r--ncurses-5.3/panel/p_update.c60
-rw-r--r--ncurses-5.3/panel/p_user.c56
-rw-r--r--ncurses-5.3/panel/p_win.c49
-rw-r--r--ncurses-5.3/panel/panel.c140
-rw-r--r--ncurses-5.3/panel/panel.h75
-rw-r--r--ncurses-5.3/panel/panel.priv.h193
-rwxr-xr-xncurses-5.3/progs/MKtermsort.sh164
-rw-r--r--ncurses-5.3/progs/Makefile.in272
-rwxr-xr-xncurses-5.3/progs/capconvert229
-rw-r--r--ncurses-5.3/progs/clear.c58
-rwxr-xr-xncurses-5.3/progs/clear.sh1
-rw-r--r--ncurses-5.3/progs/dump_entry.c1088
-rw-r--r--ncurses-5.3/progs/dump_entry.h67
-rw-r--r--ncurses-5.3/progs/infocmp.c1508
-rw-r--r--ncurses-5.3/progs/modules41
-rw-r--r--ncurses-5.3/progs/progs.priv.h176
-rw-r--r--ncurses-5.3/progs/tic.c1145
-rw-r--r--ncurses-5.3/progs/toe.c308
-rw-r--r--ncurses-5.3/progs/tput.c428
-rw-r--r--ncurses-5.3/progs/tset.c1211
-rw-r--r--ncurses-5.3/sysdeps/unix/sysv/linux/Makefile10
-rwxr-xr-xncurses-5.3/sysdeps/unix/sysv/linux/alpha/configure2
-rwxr-xr-xncurses-5.3/sysdeps/unix/sysv/linux/configure407
-rw-r--r--ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sed100
-rwxr-xr-xncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sh37
-rwxr-xr-xncurses-5.3/sysdeps/unix/sysv/linux/run_tic.sh143
-rw-r--r--ncurses-5.3/tack/COPYING340
-rw-r--r--ncurses-5.3/tack/HISTORY44
-rw-r--r--ncurses-5.3/tack/Makefile.in170
-rw-r--r--ncurses-5.3/tack/README14
-rw-r--r--ncurses-5.3/tack/ansi.c854
-rw-r--r--ncurses-5.3/tack/charset.c711
-rw-r--r--ncurses-5.3/tack/color.c767
-rw-r--r--ncurses-5.3/tack/control.c657
-rw-r--r--ncurses-5.3/tack/crum.c426
-rw-r--r--ncurses-5.3/tack/edit.c977
-rw-r--r--ncurses-5.3/tack/fun.c912
-rw-r--r--ncurses-5.3/tack/init.c304
-rw-r--r--ncurses-5.3/tack/menu.c421
-rw-r--r--ncurses-5.3/tack/modes.c913
-rw-r--r--ncurses-5.3/tack/modules18
-rw-r--r--ncurses-5.3/tack/output.c818
-rw-r--r--ncurses-5.3/tack/pad.c1957
-rw-r--r--ncurses-5.3/tack/scan.c261
-rw-r--r--ncurses-5.3/tack/sync.c436
-rw-r--r--ncurses-5.3/tack/sysdep.c501
-rw-r--r--ncurses-5.3/tack/tack.1311
-rw-r--r--ncurses-5.3/tack/tack.c620
-rw-r--r--ncurses-5.3/tack/tack.h405
-rwxr-xr-xncurses-5.3/tar-copy.sh70
-rw-r--r--ncurses-5.3/test/Makefile.in221
-rw-r--r--ncurses-5.3/test/README22
-rw-r--r--ncurses-5.3/test/blue.c432
-rw-r--r--ncurses-5.3/test/bs.642
-rw-r--r--ncurses-5.3/test/bs.c1228
-rw-r--r--ncurses-5.3/test/cardfile.c534
-rw-r--r--ncurses-5.3/test/cardfile.dat13
-rwxr-xr-xncurses-5.3/test/configure2401
-rw-r--r--ncurses-5.3/test/configure.in327
-rw-r--r--ncurses-5.3/test/ditto.c148
-rw-r--r--ncurses-5.3/test/dots.c140
-rw-r--r--ncurses-5.3/test/filter.c103
-rw-r--r--ncurses-5.3/test/firework.c173
-rw-r--r--ncurses-5.3/test/firstlast.c90
-rw-r--r--ncurses-5.3/test/gdc.622
-rw-r--r--ncurses-5.3/test/gdc.c316
-rw-r--r--ncurses-5.3/test/hanoi.c303
-rw-r--r--ncurses-5.3/test/hashtest.c228
-rw-r--r--ncurses-5.3/test/keynames.c17
-rw-r--r--ncurses-5.3/test/knight.c702
-rw-r--r--ncurses-5.3/test/lrtest.c152
-rw-r--r--ncurses-5.3/test/modules59
-rw-r--r--ncurses-5.3/test/ncurses.c4333
-rw-r--r--ncurses-5.3/test/ncurses_tst.hin56
-rw-r--r--ncurses-5.3/test/newdemo.c358
-rw-r--r--ncurses-5.3/test/railroad.c242
-rw-r--r--ncurses-5.3/test/rain.c136
-rw-r--r--ncurses-5.3/test/tclock.c250
-rw-r--r--ncurses-5.3/test/test.priv.h218
-rw-r--r--ncurses-5.3/test/testaddch.c61
-rw-r--r--ncurses-5.3/test/testcurs.c708
-rw-r--r--ncurses-5.3/test/testscanw.c41
-rwxr-xr-xncurses-5.3/test/tracemunch151
-rw-r--r--ncurses-5.3/test/view.c512
-rw-r--r--ncurses-5.3/test/worm.c427
-rw-r--r--ncurses-5.3/test/xmas.c1159
-rw-r--r--readline-4.3.orig/CHANGELOG699
-rw-r--r--readline-4.3.orig/CHANGES612
-rw-r--r--readline-4.3.orig/COPYING339
-rw-r--r--readline-4.3.orig/INSTALL273
-rw-r--r--readline-4.3.orig/MANIFEST126
-rw-r--r--readline-4.3.orig/Makefile.in520
-rw-r--r--readline-4.3.orig/README172
-rw-r--r--readline-4.3.orig/USAGE37
-rw-r--r--readline-4.3.orig/aclocal.m41792
-rw-r--r--readline-4.3.orig/ansi_stdlib.h54
-rw-r--r--readline-4.3.orig/bind.c2150
-rw-r--r--readline-4.3.orig/callback.c156
-rw-r--r--readline-4.3.orig/chardefs.h159
-rw-r--r--readline-4.3.orig/compat.c113
-rw-r--r--readline-4.3.orig/complete.c2004
-rw-r--r--readline-4.3.orig/config.h.in200
-rwxr-xr-xreadline-4.3.orig/configure5865
-rw-r--r--readline-4.3.orig/configure.in206
-rw-r--r--readline-4.3.orig/display.c2196
-rw-r--r--readline-4.3.orig/doc/Makefile.in234
-rw-r--r--readline-4.3.orig/doc/hist.texinfo110
-rw-r--r--readline-4.3.orig/doc/history.0660
-rw-r--r--readline-4.3.orig/doc/history.3640
-rw-r--r--readline-4.3.orig/doc/history.dvibin48868 -> 0 bytes
-rw-r--r--readline-4.3.orig/doc/history.html1639
-rw-r--r--readline-4.3.orig/doc/history.info840
-rw-r--r--readline-4.3.orig/doc/history.ps1658
-rw-r--r--readline-4.3.orig/doc/history_3.ps800
-rw-r--r--readline-4.3.orig/doc/hstech.texinfo550
-rw-r--r--readline-4.3.orig/doc/hsuser.texinfo437
-rw-r--r--readline-4.3.orig/doc/manvers.texinfo10
-rw-r--r--readline-4.3.orig/doc/readline.0997
-rw-r--r--readline-4.3.orig/doc/readline.31272
-rw-r--r--readline-4.3.orig/doc/readline.dvibin235920 -> 0 bytes
-rw-r--r--readline-4.3.orig/doc/readline.html5908
-rw-r--r--readline-4.3.orig/doc/readline.info3638
-rw-r--r--readline-4.3.orig/doc/readline.ps5200
-rw-r--r--readline-4.3.orig/doc/readline_3.ps1294
-rw-r--r--readline-4.3.orig/doc/rlman.texinfo108
-rw-r--r--readline-4.3.orig/doc/rltech.texinfo2165
-rw-r--r--readline-4.3.orig/doc/rluser.texinfo1796
-rw-r--r--readline-4.3.orig/doc/rluserman.dvibin62592 -> 0 bytes
-rw-r--r--readline-4.3.orig/doc/rluserman.html2184
-rw-r--r--readline-4.3.orig/doc/rluserman.info1260
-rw-r--r--readline-4.3.orig/doc/rluserman.ps2001
-rw-r--r--readline-4.3.orig/doc/rluserman.texinfo94
-rwxr-xr-xreadline-4.3.orig/doc/texi2dvi568
-rwxr-xr-xreadline-4.3.orig/doc/texi2html5429
-rw-r--r--readline-4.3.orig/doc/texinfo.tex5992
-rw-r--r--readline-4.3.orig/emacs_keymap.c873
-rw-r--r--readline-4.3.orig/examples/Inputrc81
-rw-r--r--readline-4.3.orig/examples/Makefile.in104
-rw-r--r--readline-4.3.orig/examples/excallback.c188
-rw-r--r--readline-4.3.orig/examples/fileman.c485
-rw-r--r--readline-4.3.orig/examples/histexamp.c112
-rw-r--r--readline-4.3.orig/examples/manexamp.c112
-rw-r--r--readline-4.3.orig/examples/readlinebuf.h139
-rw-r--r--readline-4.3.orig/examples/rl.c151
-rw-r--r--readline-4.3.orig/examples/rlcat.c174
-rw-r--r--readline-4.3.orig/examples/rlfe.c1042
-rw-r--r--readline-4.3.orig/examples/rltest.c87
-rw-r--r--readline-4.3.orig/examples/rlversion.c43
-rw-r--r--readline-4.3.orig/funmap.c253
-rw-r--r--readline-4.3.orig/histexpand.c1491
-rw-r--r--readline-4.3.orig/histfile.c479
-rw-r--r--readline-4.3.orig/histlib.h82
-rw-r--r--readline-4.3.orig/history.c381
-rw-r--r--readline-4.3.orig/history.h246
-rw-r--r--readline-4.3.orig/histsearch.c195
-rw-r--r--readline-4.3.orig/input.c540
-rw-r--r--readline-4.3.orig/isearch.c560
-rw-r--r--readline-4.3.orig/keymaps.c150
-rw-r--r--readline-4.3.orig/keymaps.h103
-rw-r--r--readline-4.3.orig/kill.c652
-rw-r--r--readline-4.3.orig/macro.c262
-rw-r--r--readline-4.3.orig/mbutil.c337
-rw-r--r--readline-4.3.orig/misc.c496
-rw-r--r--readline-4.3.orig/nls.c225
-rw-r--r--readline-4.3.orig/parens.c179
-rw-r--r--readline-4.3.orig/posixdir.h57
-rw-r--r--readline-4.3.orig/posixjmp.h40
-rw-r--r--readline-4.3.orig/posixstat.h142
-rw-r--r--readline-4.3.orig/readline.c973
-rw-r--r--readline-4.3.orig/readline.h799
-rw-r--r--readline-4.3.orig/rlconf.h60
-rw-r--r--readline-4.3.orig/rldefs.h156
-rw-r--r--readline-4.3.orig/rlmbutil.h108
-rw-r--r--readline-4.3.orig/rlprivate.h284
-rw-r--r--readline-4.3.orig/rlshell.h34
-rw-r--r--readline-4.3.orig/rlstdc.h45
-rw-r--r--readline-4.3.orig/rltty.c911
-rw-r--r--readline-4.3.orig/rltty.h82
-rw-r--r--readline-4.3.orig/rltypedefs.h88
-rw-r--r--readline-4.3.orig/rlwinsize.h57
-rw-r--r--readline-4.3.orig/savestring.c36
-rw-r--r--readline-4.3.orig/search.c465
-rw-r--r--readline-4.3.orig/shell.c196
-rw-r--r--readline-4.3.orig/shlib/Makefile.in437
-rw-r--r--readline-4.3.orig/signals.c398
-rwxr-xr-xreadline-4.3.orig/support/config.guess1393
-rw-r--r--readline-4.3.orig/support/config.sub1497
-rwxr-xr-xreadline-4.3.orig/support/install.sh247
-rwxr-xr-xreadline-4.3.orig/support/mkdirs48
-rwxr-xr-xreadline-4.3.orig/support/mkdist120
-rwxr-xr-xreadline-4.3.orig/support/shlib-install156
-rwxr-xr-xreadline-4.3.orig/support/shobj-conf458
-rw-r--r--readline-4.3.orig/support/wcwidth.c236
-rw-r--r--readline-4.3.orig/tcap.h60
-rw-r--r--readline-4.3.orig/terminal.c662
-rw-r--r--readline-4.3.orig/text.c1540
-rw-r--r--readline-4.3.orig/tilde.c458
-rw-r--r--readline-4.3.orig/tilde.h78
-rw-r--r--readline-4.3.orig/undo.c263
-rw-r--r--readline-4.3.orig/util.c338
-rw-r--r--readline-4.3.orig/vi_keymap.c877
-rw-r--r--readline-4.3.orig/vi_mode.c1485
-rw-r--r--readline-4.3.orig/xmalloc.c88
-rw-r--r--readline-4.3.orig/xmalloc.h46
-rw-r--r--readline-4.3/CHANGELOG-ReadLine699
-rw-r--r--readline-4.3/CHANGES612
-rw-r--r--readline-4.3/COPYING339
-rw-r--r--readline-4.3/INSTALL273
-rw-r--r--readline-4.3/MANIFEST126
-rw-r--r--readline-4.3/Makefile.in520
-rw-r--r--readline-4.3/README172
-rw-r--r--readline-4.3/USAGE37
-rw-r--r--readline-4.3/aclocal.m41792
-rw-r--r--readline-4.3/ansi_stdlib.h54
-rw-r--r--readline-4.3/bind.c2150
-rw-r--r--readline-4.3/callback.c156
-rw-r--r--readline-4.3/chardefs.h159
-rw-r--r--readline-4.3/compat.c113
-rw-r--r--readline-4.3/complete.c2004
-rw-r--r--readline-4.3/config.h.in200
-rwxr-xr-xreadline-4.3/configure5865
-rw-r--r--readline-4.3/configure.in206
-rw-r--r--readline-4.3/display.c2196
-rw-r--r--readline-4.3/doc/Makefile.in234
-rw-r--r--readline-4.3/doc/hist.texinfo110
-rw-r--r--readline-4.3/doc/history.3640
-rw-r--r--readline-4.3/doc/hstech.texinfo550
-rw-r--r--readline-4.3/doc/hsuser.texinfo437
-rw-r--r--readline-4.3/doc/manvers.texinfo10
-rw-r--r--readline-4.3/doc/readline.31272
-rw-r--r--readline-4.3/doc/rlman.texinfo108
-rw-r--r--readline-4.3/doc/rltech.texinfo2165
-rw-r--r--readline-4.3/doc/rluser.texinfo1796
-rw-r--r--readline-4.3/doc/rluserman.texinfo94
-rwxr-xr-xreadline-4.3/doc/texi2dvi568
-rwxr-xr-xreadline-4.3/doc/texi2html5429
-rw-r--r--readline-4.3/doc/texinfo.tex5992
-rw-r--r--readline-4.3/emacs_keymap.c873
-rw-r--r--readline-4.3/examples/Inputrc81
-rw-r--r--readline-4.3/examples/Makefile.in104
-rw-r--r--readline-4.3/examples/excallback.c188
-rw-r--r--readline-4.3/examples/fileman.c485
-rw-r--r--readline-4.3/examples/histexamp.c112
-rw-r--r--readline-4.3/examples/manexamp.c112
-rw-r--r--readline-4.3/examples/readlinebuf.h139
-rw-r--r--readline-4.3/examples/rl.c151
-rw-r--r--readline-4.3/examples/rlcat.c174
-rw-r--r--readline-4.3/examples/rlfe.c1042
-rw-r--r--readline-4.3/examples/rltest.c87
-rw-r--r--readline-4.3/examples/rlversion.c43
-rw-r--r--readline-4.3/funmap.c253
-rw-r--r--readline-4.3/histexpand.c1491
-rw-r--r--readline-4.3/histfile.c479
-rw-r--r--readline-4.3/histlib.h82
-rw-r--r--readline-4.3/history.c381
-rw-r--r--readline-4.3/history.h246
-rw-r--r--readline-4.3/histsearch.c195
-rw-r--r--readline-4.3/input.c540
-rw-r--r--readline-4.3/isearch.c560
-rw-r--r--readline-4.3/keymaps.c150
-rw-r--r--readline-4.3/keymaps.h103
-rw-r--r--readline-4.3/kill.c652
-rw-r--r--readline-4.3/macro.c262
-rw-r--r--readline-4.3/mbutil.c337
-rw-r--r--readline-4.3/misc.c496
-rw-r--r--readline-4.3/nls.c225
-rw-r--r--readline-4.3/parens.c179
-rw-r--r--readline-4.3/posixdir.h57
-rw-r--r--readline-4.3/posixjmp.h40
-rw-r--r--readline-4.3/posixstat.h142
-rw-r--r--readline-4.3/readline.c973
-rw-r--r--readline-4.3/readline.h799
-rw-r--r--readline-4.3/rlconf.h60
-rw-r--r--readline-4.3/rldefs.h156
-rw-r--r--readline-4.3/rlmbutil.h108
-rw-r--r--readline-4.3/rlprivate.h284
-rw-r--r--readline-4.3/rlshell.h34
-rw-r--r--readline-4.3/rlstdc.h45
-rw-r--r--readline-4.3/rltty.c911
-rw-r--r--readline-4.3/rltty.h82
-rw-r--r--readline-4.3/rltypedefs.h88
-rw-r--r--readline-4.3/rlwinsize.h57
-rw-r--r--readline-4.3/savestring.c36
-rw-r--r--readline-4.3/search.c465
-rw-r--r--readline-4.3/shell.c196
-rw-r--r--readline-4.3/shlib/Makefile.in437
-rw-r--r--readline-4.3/signals.c400
-rwxr-xr-xreadline-4.3/support/config.guess1393
-rw-r--r--readline-4.3/support/config.sub1497
-rwxr-xr-xreadline-4.3/support/install.sh247
-rwxr-xr-xreadline-4.3/support/mkdirs48
-rwxr-xr-xreadline-4.3/support/mkdist120
-rwxr-xr-xreadline-4.3/support/shlib-install156
-rwxr-xr-xreadline-4.3/support/shobj-conf458
-rw-r--r--readline-4.3/support/wcwidth.c236
-rw-r--r--readline-4.3/tcap.h60
-rw-r--r--readline-4.3/terminal.c662
-rw-r--r--readline-4.3/text.c1540
-rw-r--r--readline-4.3/tilde.c458
-rw-r--r--readline-4.3/tilde.h78
-rw-r--r--readline-4.3/undo.c263
-rw-r--r--readline-4.3/util.c338
-rw-r--r--readline-4.3/vi_keymap.c877
-rw-r--r--readline-4.3/vi_mode.c1485
-rw-r--r--readline-4.3/xmalloc.c88
-rw-r--r--readline-4.3/xmalloc.h46
-rw-r--r--readline-doc-4.3/MANIFEST.doc21
-rw-r--r--readline-doc-4.3/doc/history.0660
-rw-r--r--readline-doc-4.3/doc/history.dvibin48868 -> 0 bytes
-rw-r--r--readline-doc-4.3/doc/history.html1639
-rw-r--r--readline-doc-4.3/doc/history.info840
-rw-r--r--readline-doc-4.3/doc/history.ps1658
-rw-r--r--readline-doc-4.3/doc/history_3.ps800
-rw-r--r--readline-doc-4.3/doc/readline.0997
-rw-r--r--readline-doc-4.3/doc/readline.dvibin235920 -> 0 bytes
-rw-r--r--readline-doc-4.3/doc/readline.html5908
-rw-r--r--readline-doc-4.3/doc/readline.info3638
-rw-r--r--readline-doc-4.3/doc/readline.ps5200
-rw-r--r--readline-doc-4.3/doc/readline_3.ps1294
-rw-r--r--readline-doc-4.3/doc/rluserman.dvibin62592 -> 0 bytes
-rw-r--r--readline-doc-4.3/doc/rluserman.html2184
-rw-r--r--readline-doc-4.3/doc/rluserman.info1260
-rw-r--r--readline-doc-4.3/doc/rluserman.ps2001
-rw-r--r--zlib-1.1.4/ChangeLog481
-rw-r--r--zlib-1.1.4/FAQ100
-rw-r--r--zlib-1.1.4/INDEX86
-rw-r--r--zlib-1.1.4/Make_vms.com115
-rw-r--r--zlib-1.1.4/Makefile175
-rw-r--r--zlib-1.1.4/Makefile.in175
-rw-r--r--zlib-1.1.4/Makefile.riscos151
-rw-r--r--zlib-1.1.4/README147
-rw-r--r--zlib-1.1.4/adler32.c48
-rw-r--r--zlib-1.1.4/algorithm.txt213
-rw-r--r--zlib-1.1.4/amiga/Makefile.pup66
-rw-r--r--zlib-1.1.4/amiga/Makefile.sas64
-rw-r--r--zlib-1.1.4/compress.c68
-rwxr-xr-xzlib-1.1.4/configure212
-rw-r--r--zlib-1.1.4/contrib/README.contrib34
-rw-r--r--zlib-1.1.4/contrib/asm386/gvmat32.asm559
-rw-r--r--zlib-1.1.4/contrib/asm386/gvmat32c.c200
-rw-r--r--zlib-1.1.4/contrib/asm386/mkgvmt32.bat1
-rw-r--r--zlib-1.1.4/contrib/asm386/zlibvc.def74
-rw-r--r--zlib-1.1.4/contrib/asm386/zlibvc.dsp651
-rw-r--r--zlib-1.1.4/contrib/asm386/zlibvc.dsw41
-rw-r--r--zlib-1.1.4/contrib/asm586/README.58643
-rw-r--r--zlib-1.1.4/contrib/asm586/match.S354
-rw-r--r--zlib-1.1.4/contrib/asm686/README.68634
-rw-r--r--zlib-1.1.4/contrib/asm686/match.S327
-rw-r--r--zlib-1.1.4/contrib/delphi/zlib.mak36
-rw-r--r--zlib-1.1.4/contrib/delphi/zlibdef.pas169
-rw-r--r--zlib-1.1.4/contrib/delphi2/d_zlib.bpr224
-rw-r--r--zlib-1.1.4/contrib/delphi2/d_zlib.cpp17
-rw-r--r--zlib-1.1.4/contrib/delphi2/readme.txt17
-rw-r--r--zlib-1.1.4/contrib/delphi2/zlib.bpg26
-rw-r--r--zlib-1.1.4/contrib/delphi2/zlib.bpr225
-rw-r--r--zlib-1.1.4/contrib/delphi2/zlib.cpp22
-rw-r--r--zlib-1.1.4/contrib/delphi2/zlib.pas534
-rw-r--r--zlib-1.1.4/contrib/delphi2/zlib32.bpr174
-rw-r--r--zlib-1.1.4/contrib/delphi2/zlib32.cpp42
-rw-r--r--zlib-1.1.4/contrib/iostream/test.cpp24
-rw-r--r--zlib-1.1.4/contrib/iostream/zfstream.cpp329
-rw-r--r--zlib-1.1.4/contrib/iostream/zfstream.h142
-rw-r--r--zlib-1.1.4/contrib/iostream2/zstream.h307
-rw-r--r--zlib-1.1.4/contrib/iostream2/zstream_test.cpp25
-rw-r--r--zlib-1.1.4/contrib/minizip/ChangeLogUnzip38
-rw-r--r--zlib-1.1.4/contrib/minizip/Makefile25
-rw-r--r--zlib-1.1.4/contrib/minizip/miniunz.c508
-rw-r--r--zlib-1.1.4/contrib/minizip/minizip.c302
-rw-r--r--zlib-1.1.4/contrib/minizip/readme.txt37
-rw-r--r--zlib-1.1.4/contrib/minizip/unzip.c1294
-rw-r--r--zlib-1.1.4/contrib/minizip/unzip.def15
-rw-r--r--zlib-1.1.4/contrib/minizip/unzip.h275
-rw-r--r--zlib-1.1.4/contrib/minizip/zip.c718
-rw-r--r--zlib-1.1.4/contrib/minizip/zip.def5
-rw-r--r--zlib-1.1.4/contrib/minizip/zip.h150
-rw-r--r--zlib-1.1.4/contrib/minizip/zlibvc.def74
-rw-r--r--zlib-1.1.4/contrib/minizip/zlibvc.dsp651
-rw-r--r--zlib-1.1.4/contrib/minizip/zlibvc.dsw41
-rw-r--r--zlib-1.1.4/contrib/untgz/Makefile14
-rw-r--r--zlib-1.1.4/contrib/untgz/makefile.w3263
-rw-r--r--zlib-1.1.4/contrib/untgz/untgz.c522
-rw-r--r--zlib-1.1.4/contrib/visual-basic.txt69
-rw-r--r--zlib-1.1.4/crc32.c162
-rw-r--r--zlib-1.1.4/deflate.c1350
-rw-r--r--zlib-1.1.4/deflate.h318
-rw-r--r--zlib-1.1.4/descrip.mms48
-rw-r--r--zlib-1.1.4/example.c556
-rw-r--r--zlib-1.1.4/gzio.c875
-rw-r--r--zlib-1.1.4/infblock.c403
-rw-r--r--zlib-1.1.4/infblock.h39
-rw-r--r--zlib-1.1.4/infcodes.c251
-rw-r--r--zlib-1.1.4/infcodes.h27
-rw-r--r--zlib-1.1.4/inffast.c183
-rw-r--r--zlib-1.1.4/inffast.h17
-rw-r--r--zlib-1.1.4/inffixed.h151
-rw-r--r--zlib-1.1.4/inflate.c366
-rw-r--r--zlib-1.1.4/inftrees.c454
-rw-r--r--zlib-1.1.4/inftrees.h58
-rw-r--r--zlib-1.1.4/infutil.c87
-rw-r--r--zlib-1.1.4/infutil.h98
-rw-r--r--zlib-1.1.4/maketree.c85
-rw-r--r--zlib-1.1.4/minigzip.c320
-rw-r--r--zlib-1.1.4/msdos/Makefile.b32104
-rw-r--r--zlib-1.1.4/msdos/Makefile.bor125
-rw-r--r--zlib-1.1.4/msdos/Makefile.dj2100
-rw-r--r--zlib-1.1.4/msdos/Makefile.emx69
-rw-r--r--zlib-1.1.4/msdos/Makefile.msc121
-rw-r--r--zlib-1.1.4/msdos/Makefile.tc108
-rw-r--r--zlib-1.1.4/msdos/Makefile.w3297
-rw-r--r--zlib-1.1.4/msdos/Makefile.wat103
-rw-r--r--zlib-1.1.4/msdos/zlib.def60
-rw-r--r--zlib-1.1.4/msdos/zlib.rc32
-rw-r--r--zlib-1.1.4/nt/Makefile.emx138
-rw-r--r--zlib-1.1.4/nt/Makefile.gcc87
-rw-r--r--zlib-1.1.4/nt/Makefile.nt88
-rw-r--r--zlib-1.1.4/nt/zlib.dnt47
-rw-r--r--zlib-1.1.4/os2/Makefile.os2136
-rw-r--r--zlib-1.1.4/os2/zlib.def51
-rw-r--r--zlib-1.1.4/trees.c1214
-rw-r--r--zlib-1.1.4/trees.h128
-rw-r--r--zlib-1.1.4/uncompr.c58
-rw-r--r--zlib-1.1.4/zconf.h279
-rw-r--r--zlib-1.1.4/zlib.3107
-rw-r--r--zlib-1.1.4/zlib.h893
-rw-r--r--zlib-1.1.4/zlib.html971
-rw-r--r--zlib-1.1.4/zutil.c225
-rw-r--r--zlib-1.1.4/zutil.h220
2361 files changed, 0 insertions, 737734 deletions
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index a8c7638..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,97 +0,0 @@
-2006-04-19 Joel Sherrill <joel@OARcorp.com>
-
- * VERSION: Updated to rtems-addon-packages-4.6.99.3.
-
-2005-09-02 Joel Sherrill <joel@OARcorp.com>
-
- * VERSION: Updated to rtems-addon-packages-4.6.99.2.
-
-2005-09-02 Joel Sherrill <joel@OARcorp.com>
-
- * bit, ncurses-5.3/misc/run_tic.sh: Added rtemsNfs 1.2
- * rtemsNfs/ChangeLog, rtemsNfs/LICENSE, rtemsNfs/Makefile,
- rtemsNfs/README, rtemsNfs/rtems-filesystem-patch,
- rtemsNfs/proto/Makefile, rtemsNfs/proto/mount_prot.h,
- rtemsNfs/proto/mount_prot.x, rtemsNfs/proto/mount_prot_xdr.c,
- rtemsNfs/proto/nfs_prot.h, rtemsNfs/proto/nfs_prot.x,
- rtemsNfs/proto/nfs_prot_xdr.c, rtemsNfs/src/Makefile,
- rtemsNfs/src/cexphelp.c, rtemsNfs/src/dirutils.c,
- rtemsNfs/src/librtemsNfs.h, rtemsNfs/src/nfs.c,
- rtemsNfs/src/nfs.modini.c, rtemsNfs/src/rpcio.c,
- rtemsNfs/src/rpcio.h, rtemsNfs/src/rpcio.modini.c,
- rtemsNfs/src/sock_mbuf.c, rtemsNfs/src/xdr_mbuf.c: New files.
- * rtemsNfs-1.1/ChangeLog, rtemsNfs-1.1/LICENSE, rtemsNfs-1.1/Makefile,
- rtemsNfs-1.1/README, rtemsNfs-1.1/rtems-filesystem-patch,
- rtemsNfs-1.1/proto/Makefile, rtemsNfs-1.1/proto/mount_prot.x,
- rtemsNfs-1.1/proto/nfs_prot.x, rtemsNfs-1.1/src/Makefile,
- rtemsNfs-1.1/src/cexphelp.c, rtemsNfs-1.1/src/dirutils.c,
- rtemsNfs-1.1/src/librtemsNfs.h, rtemsNfs-1.1/src/nfs.c,
- rtemsNfs-1.1/src/nfs.modini.c, rtemsNfs-1.1/src/rpcio.c,
- rtemsNfs-1.1/src/rpcio.h, rtemsNfs-1.1/src/rpcio.modini.c,
- rtemsNfs-1.1/src/sock_mbuf.c, rtemsNfs-1.1/src/xdr_mbuf.c: Removed.
-
-2004-10-18 Joel Sherrill <joel@OARcorp.com>
-
- * VERSION: Updated to rtems-addon-packages-4.6.2.
-
-2004-10-18 Joel Sherrill <joel@OARcorp.com>
-
- * aclocal/version.m4: Updated to rtems-addon-packages-4.6.2.
-
-2003-01-28 Joel Sherrill <joel@OARcorp.com>
-
- * VERSION: Updated to rtems-addon-packages-20030128.
-
-2003-01-28 Joel Sherrill <joel@OARcorp.com>
-
- * aclocal/version.m4: Updated to rtems-addon-packages-20030128.
-
-2003-01-20 Joel Sherrill <joel@OARcorp.com>
-
- * VERSION: Updated to rtems-addon-packages-20030120.
-
-2003-01-20 Joel Sherrill <joel@OARcorp.com>
-
- * aclocal/version.m4: Updated to rtems-addon-packages-20030120.
-
-2002-12-19 Eric Norum <eric.norum@usask.ca>
-
- * ncurses-5.3 bit: Update ncurses add-on package.
-
-2002-11-28 Eric Norum <eric.norum@usask.ca>
-
- * RTEMS_Makefiles/Makefile.bfd: New file
-
-2002-11-21 Eric Norum <eric.norum@usask.ca>
-
- * bit, bit_bfd: Add support for additional add-ons (libtecla, BFD)
-
-2002-11-19 Joel Sherrill <joel@OARcorp.com>
-
- * VERSION: Updated to rtems-addon-packages-20021119.
-
-2002-11-19 Joel Sherrill <joel@OARcorp.com>
-
- * aclocal/version.m4: Updated to rtems-addon-packages-20021119.
-
-2002-11-08 Eric Norum <eric.norum@usask.ca>
-
- * RTEMS_Makefiles/Makefile.libtecla, bit, libtecla-1.4.1/:
- Add TECLA command-line editing library.
-
-2002-09-12 Eric Norum <eric.norum@usask.ca>
-
- * RTEMS_Makefiles/Makefile.ncurses: Added ansi terminal type.
-
-2002-07-30 Joel Sherrill <joel@OARcorp.com>
-
- * VERSION: Updated to rtems-addon-packages-20020730a.
-
-2002-07-30 Joel Sherrill <joel@OARcorp.com>
-
- * VERSION: Updated to rtems-addon-packages-20020730.
-
-2002-07-30 Joel Sherrill <joel@OARcorp.com>
-
- * ChangeLog, VERSION, SUPPORT: New files.
-
diff --git a/README b/README
deleted file mode 100644
index 504f048..0000000
--- a/README
+++ /dev/null
@@ -1,24 +0,0 @@
-Assorted add-on packages for RTEMS.
-
-The bit script builds and installs all the packages.
-
-To build a package:
- cd <<whatever_package_you_want_to_build>>
- make -f ../RTEMS_Makefiles/Makefile.<<package_name>>
-
-Notes
-=====
-1) You must build and install the host version of infocmp before trying to
-build ncurses.
-2) You must build and install ncurses before trying to build readline.
-3) To add ncurses support for other terminals, change the declaration
- of TERMINALS.
-
-Cautions
-========
-The readline and ncurses `configure' scripts check for the presence of
-select(). Because the RTEMS dummy.rel file does not include network
-configuration information the scripts decide that select() does not
-exist. This is correct since although RTEMS does have a select() call
-it is not supported on tty devices. The fact that one shortcoming is
-covering up another is not really satisfactory, though.
diff --git a/RTEMS_Makefiles/Makefile.avl b/RTEMS_Makefiles/Makefile.avl
deleted file mode 100644
index b801392..0000000
--- a/RTEMS_Makefiles/Makefile.avl
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Configure/build/install the AVL library
-#
-include ../RTEMS_Makefiles/Makefile.common
-
-all:
- ./configure \
- --prefix=$(exec_prefix) \
- --libdir=$(exec_prefix)/$(RTEMS_BSP)/lib \
- --includedir=$(exec_prefix)/$(RTEMS_BSP)/lib/include
- make
- make install
diff --git a/RTEMS_Makefiles/Makefile.bfd b/RTEMS_Makefiles/Makefile.bfd
deleted file mode 100644
index b6b9586..0000000
--- a/RTEMS_Makefiles/Makefile.bfd
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# Configure/build/install the libtecla library
-#
-include ../RTEMS_Makefiles/Makefile.common
-
-all:
- $(BINUTILS_SRC_DIR)/bfd/configure \
- --host=$(RTEMS_CPU)-rtems \
- --disable-nls \
- --prefix=$(exec_prefix) \
- --libdir=$(exec_prefix)/$(RTEMS_BSP)/lib \
- --includedir=$(exec_prefix)/$(RTEMS_BSP)/lib/include
- make
- make install
diff --git a/RTEMS_Makefiles/Makefile.common b/RTEMS_Makefiles/Makefile.common
deleted file mode 100644
index 7e0ddbe..0000000
--- a/RTEMS_Makefiles/Makefile.common
+++ /dev/null
@@ -1,23 +0,0 @@
-###########################################################
-# Meta-Makefile for compiling packages to work with RTEMS #
-###########################################################
-
-#
-# Pick up RTEMS configuration
-#
-include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
-include $(RTEMS_CUSTOM)
-include $(PROJECT_ROOT)/make/leaf.cfg
-CC += $(CPU_CFLAGS)
-
-#
-# For some reason RTEMS Makefiles don't export this
-#
-export RANLIB
-
-.PHONY: all
-
-#
-# Include site-specific options
-#
-include ../RTEMS_Makefiles/Makefile.site
diff --git a/RTEMS_Makefiles/Makefile.libtecla b/RTEMS_Makefiles/Makefile.libtecla
deleted file mode 100644
index 2405adb..0000000
--- a/RTEMS_Makefiles/Makefile.libtecla
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Configure/build/install the libtecla library
-#
-include ../RTEMS_Makefiles/Makefile.common
-
-all:
- ./configure \
- --host=$(RTEMS_CPU)-rtems \
- --prefix=$(exec_prefix) \
- --libdir=$(exec_prefix)/$(RTEMS_BSP)/lib \
- --includedir=$(exec_prefix)/$(RTEMS_BSP)/lib/include
- make
- make reentrant
- make install
- make distclean
diff --git a/RTEMS_Makefiles/Makefile.ncurses b/RTEMS_Makefiles/Makefile.ncurses
deleted file mode 100644
index 3df6d38..0000000
--- a/RTEMS_Makefiles/Makefile.ncurses
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Declare supported terminal types.
-# This value can be augmented/overridden by the site-configuration file
-#
-TERMINALS=xterm,vt100,linux,ansi
-
-include ../RTEMS_Makefiles/Makefile.common
-
-#
-# The following will work only if you have the latest ncurses version
-# of infocmp installed before trying to build for an RTEMS target.
-# The cf_cv_type_of_bool hack works around a bug when configuring
-# for a cross-target.
-#
-all:
- cf_cv_type_of_bool=char CXX="$(CC)" TERM=xterm ./configure \
- --host=$(RTEMS_CPU)-rtems \
- --prefix=$(exec_prefix) \
- --libdir=$(exec_prefix)/$(RTEMS_BSP)/lib \
- --includedir=$(exec_prefix)/$(RTEMS_BSP)/lib/include \
- --without-ada \
- --without-progs \
- --without-cxx-binding \
- --disable-sigwinch \
- --disable-database \
- --with-fallbacks="$(TERMINALS)"
- make "TERM=xterm" "HOSTCC=gcc" "HOSTCCFLAGS=-I. -I../include" HOSTLDFLAGS=""
- make install
diff --git a/RTEMS_Makefiles/Makefile.ncurses-5.3 b/RTEMS_Makefiles/Makefile.ncurses-5.3
deleted file mode 100644
index 24c5428..0000000
--- a/RTEMS_Makefiles/Makefile.ncurses-5.3
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Declare supported terminal types.
-# This value can be augmented/overridden by the site-configuration file
-#
-TERMINALS=xterm,vt100,linux,ansi
-
-include ../RTEMS_Makefiles/Makefile.common
-
-#
-# The following will work only if you have the latest ncurses version
-# of infocmp installed before trying to build for an RTEMS target.
-# The cf_cv_type_of_bool hack works around a bug when configuring
-# for a cross-target.
- #cf_cv_type_of_bool=char CXX="$(CC)" ./configure \
-#
-all:
- CXX="$(CC)" TERM=xterm ./configure \
- --host=$(RTEMS_CPU)-rtems \
- --prefix=$(exec_prefix) \
- --libdir=$(exec_prefix)/$(RTEMS_BSP)/lib \
- --includedir=$(exec_prefix)/$(RTEMS_BSP)/lib/include \
- --without-ada \
- --without-progs \
- --without-cxx-binding \
- --with-bool="unsigned char" \
- --disable-sigwinch \
- --disable-database \
- --with-fallbacks="$(TERMINALS)"
- make "TERM=xterm" "HOSTCC=gcc" "HOSTCCFLAGS=-I. -I../include" HOSTLDFLAGS=""
- make install
diff --git a/RTEMS_Makefiles/Makefile.readline-4.3 b/RTEMS_Makefiles/Makefile.readline-4.3
deleted file mode 100644
index 36644d2..0000000
--- a/RTEMS_Makefiles/Makefile.readline-4.3
+++ /dev/null
@@ -1,18 +0,0 @@
-include ../RTEMS_Makefiles/Makefile.common
-
-#
-# Running make distclean cleans up documentation files that require
-# special tools to regenerate. Work around this problem by just
-# copying the documentation files from another directory.
-#
-all:
- bash_cv_have_mbstate_t=yes ./configure \
- --host=$(RTEMS_CPU)-rtems \
- --prefix=$(exec_prefix) \
- --libdir=$(exec_prefix)/$(RTEMS_BSP)/lib \
- --includedir=$(exec_prefix)/$(RTEMS_BSP)/lib/include \
- --disable-shared
- cp ../readline-doc-4.3/doc/????* doc
- make
- cd doc ; make
- make install
diff --git a/RTEMS_Makefiles/Makefile.site b/RTEMS_Makefiles/Makefile.site
deleted file mode 100644
index 2c9f3a4..0000000
--- a/RTEMS_Makefiles/Makefile.site
+++ /dev/null
@@ -1,3 +0,0 @@
-#
-# Site-specific options/configuration goes here
-#
diff --git a/RTEMS_Makefiles/Makefile.zlib b/RTEMS_Makefiles/Makefile.zlib
deleted file mode 100644
index a6a54ca..0000000
--- a/RTEMS_Makefiles/Makefile.zlib
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Configure/build/install the AVL library
-#
-include ../RTEMS_Makefiles/Makefile.common
-
-AR = $(AR_FOR_TARGET) cr
-all:
- ./configure \
- --prefix=$(exec_prefix) \
- --libdir=$(exec_prefix)/$(RTEMS_BSP)/lib \
- --includedir=$(exec_prefix)/$(RTEMS_BSP)/lib/include
- make
- make install
diff --git a/SUPPORT b/SUPPORT
deleted file mode 100644
index 083c1cb..0000000
--- a/SUPPORT
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# $Id$
-#
-
-On-Line Applications Research Corporation (OAR) offers support,
-customization, and training for RTEMS. Custom RTEMS development services
-includes porting RTEMS to new processors and the development of custom board
-support packages and device drivers. In addition, OAR is available
-to assist in the development of your real-time embedded application.
-
-For more information, email Mark Johannes at mark@OARcorp.com
-or contact OAR at:
-
-On-Line Applications Research Corporation
-4910-L Corporate Drive
-Huntsville AL 35805
-Voice: (205) 722-9985
-Fax: (205 722-0985
-
-RTEMS maintenance and development is funded solely by RTEMS users.
-The future of RTEMS depends on its user base.
-
diff --git a/VERSION b/VERSION
deleted file mode 100644
index 0e8ae52..0000000
--- a/VERSION
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# This file is automatically generated -- DO NOT EDIT!!!
-#
-# $Id$
-#
-
-Version 4.6.99.3
diff --git a/avl-1.4.0/AUTHORS b/avl-1.4.0/AUTHORS
deleted file mode 100644
index bcd66cd..0000000
--- a/avl-1.4.0/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-Ben Pfaff <blp@gnu.org>
diff --git a/avl-1.4.0/COPYING b/avl-1.4.0/COPYING
deleted file mode 100644
index 60549be..0000000
--- a/avl-1.4.0/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/avl-1.4.0/ChangeLog b/avl-1.4.0/ChangeLog
deleted file mode 100644
index e31a7c2..0000000
--- a/avl-1.4.0/ChangeLog
+++ /dev/null
@@ -1,181 +0,0 @@
-Sat Aug 7 18:32:43 1999 Ben Pfaff <blp@gnu.org>
-
- Implemented red-black tree library.
- * Makefile.am: Add rb.c, rb.h in appropriate places.
- * README: Update.
- * rb.c: New file.
- * rb.h: Ditto.
- * avl.texinfo: Revised.
-
- * THANKS: Update.
- * TODO: Update.
-
- * avl.c: In several places, replaced usage of comma operator with
- a proper statement block.
- * avlt.c: Ditto.
- * avltr.c: Ditto.
-
- * avl.h: (AVL_TRAVERSER_INIT) New macro.
- (avl_init_traverser) New function-like macro.
- * avlt.h: (AVLT_TRAVERSER_INIT) New macro.
- (avlt_init_traverser) New function-like macro.
- * avltr.h: (AVLTR_TRAVERSER_INIT) New macro.
- (avltr_init_traverser) New function-like macro.
- * thread-test.c: (main) Use AVL_TRAVERSER_INIT.
-
- * Made version 1.4.0.
-
-Sat Jul 31 12:39:54 1999 Ben Pfaff <blp@gnu.org>
-
- * avl.texinfo: Update suggested by Jonathan Roy <roy@idle.com>.
-
-Tue May 25 12:20:43 1999 Ben Pfaff <blp@gnu.org>
-
- * avl.c: (avl_delete) Make work properly for empty tree. Furrfu!
- I should have noticed this before.
-
-Mon May 17 11:32:56 1999 Ben Pfaff <blp@gnu.org>
-
- * Makefile.am: Don't require texi2html. Use $(MAKEINFO)
- variable. Thanks to Alexandre Oliva <oliva@dcc.unicamp.br>.
-
-Sat May 15 23:47:14 1999 Ben Pfaff <blp@gnu.org>
-
- * Updated copyright dates in several files.
-
- * Made version 1.3.0.
-
-Sat May 15 21:44:54 1999 Ben Pfaff <blp@gnu.org>
-
- * avl.c, avlt.c, avltr.c: In many places replaced assert (p) by
- assert (p != NULL). Believe it or not, the former is not valid
- ANSI C.
-
- Thanks to "Ficarra, David W, NNAD" <dficarra@att.com> for pointing
- out the following two sets of bugs.
- * avl.c: (avl_probe) Fix order of assignment and assertion.
- * avlt.c: (avlt_walk, avlt_probe, avlt_find) Ditto.
- * avltr.c: (avltr_probe, avltr_find) Ditto.
-
- * avlt.c: (avlt_find, avlt_delete) Check for empty tree.
- * avltr.c: (avltr_probe) Ditto.
-
- * avl.c, avlt.c, avltr.c, thread-test.c: Change test code to only
- perform a limited number of iterations to facilitate automated
- testing.
-
- * avl.c: (avl_find_close) New function contributed by Thomas
- Binder <binder@iue.tuwien.ac.at>.
- * avlt.c: (avlt_find_close) Ditto.
- * avltr.c: (avltr_find_close) Ditto.
-
- * avl.texinfo: Update.
-
- libavl is now automake/autoconfiscated. Contributed by Alexandre
- Oliva <oliva@dcc.unicamp.br>.
- * AUTHORS: New file.
- * Makefile: Now automake-generated.
- * INSTALL: New file.
- * Makefile.am: New file.
- * Makefile.in: New file.
- * THANKS: New file.
- * config.h.in: New file.
- * configure.in: New file.
- * configure: New file.
- * install-sh: New file.
- * missing: New file.
- * mkinstalldirs: New file.
- * texinfo.tex: New file.
-
-Tue May 11 13:33:20 1999 Ben Pfaff <blp@gnu.org>
-
- * avl.texinfo: Fix typos. Thanks to onTy Toom <onty@yahoo.com>
- for pointing these out.
-
- * Made version 1.2.9.
-
-Sun Mar 14 13:39:16 1999 Ben Pfaff <blp@gnu.org>
-
- * avl.c: Fixed two occurrences of = that should have been == in
- assertions. Thanks to Girish Zambre <gzambre@sprynet.com> for
- pointing out this problem.
-
- * avl.c, avlt.c, avltr.c: __attribute__ must follow declarations
- for gcc 2.7.x.
-
- * Made version 1.2.8.
-
-Sun Mar 14 13:38:29 1999 Ben Pfaff <blp@gnu.org>
-
- * TODO: Add some comments from David Kastrup
- <dak@neuroinformatik.ruhr-uni-bochum.de>.
-
- * Made version 1.2.7.
-
-Tue Jan 12 10:16:05 1999 Ben Pfaff <blp@gnu.org>
-
- * avl.texinfo: Add skip lists as alternative to AVL trees. Thanks
- to Ron Pfeifle <rpfeifle@aw.sgi.com>.
-
- * Made version 1.2.6.
-
-Sun Jan 10 15:37:57 1999 Ben Pfaff <blp@gnu.org>
-
- * avl.texinfo: Elaborated description of distinction between
- threaded and unthreaded trees at request of several.
-
- * Made version 1.2.5.
-
-Sun Nov 22 13:36:58 1998 Ben Pfaff <blp@gnu.org>
-
- * avl.texinfo: Updates suggested by Jason Eisner
- <jeisner@linc.cis.upenn.edu>.
-
- * Made version 1.2.4.
-
-Sun Oct 18 10:26:08 1998 Ben Pfaff <pfaffben@pilot.msu.edu>
-
- * TODO: New file.
-
- * avl.c: (xmalloc) Don't declare xmalloc if HAVE_XMALLOC is
- defined. By default on error, print a message to stderr and exit,
- rather than calling abort() as before.
- * avlt.c: (xmalloc) Same.
- * avltr.c: (xmalloc) Same.
-
- * Made version 1.2.3.
-
-Thu Sep 3 13:58:55 1998 Ben Pfaff <pfaffben@pilot.msu.edu>
-
- * README: Update.
-
- * avl.c: (avl_delete) Minor efficiency fixes; removed redundant
- comparison.
-
- * avlt.c: (avl_delete) Minor efficiency fix.
- * avltr.c: (avl_delete) Same change.
-
- * avl.texi: Update.
-
- * Made version 1.2.2.
-
-Thu Jun 11 15:13:02 1998 Ben Pfaff <pfaffben@pilot.msu.edu>
-
- * avl.c: Don't #define unused when PSPP is defined.
- (force_avl_delete) Rename avl_force_delete.
-
- * avlt.c: (force_avlt_delete) Rename avlt_force_delete.
-
- * avltr.c: (force_avltr_delete) Rename avltr_force_delete.
-
- * Made version 1.2.1.
-
-Thu Jun 11 14:43:30 1998 Ben Pfaff <pfaffben@pilot.msu.edu>
-
- * Version 1.2.0: First GNU release.
-
-----------------------------------------------------------------------
-Local Variables:
-mode: change-log
-version-control: never
-End:
diff --git a/avl-1.4.0/INSTALL b/avl-1.4.0/INSTALL
deleted file mode 100644
index b42a17a..0000000
--- a/avl-1.4.0/INSTALL
+++ /dev/null
@@ -1,182 +0,0 @@
-Basic Installation
-==================
-
- These are generic installation instructions.
-
- The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions. Finally, it creates a shell script `config.status' that
-you can run in the future to recreate the current configuration, a file
-`config.cache' that saves the results of its tests to speed up
-reconfiguring, and a file `config.log' containing compiler output
-(useful mainly for debugging `configure').
-
- If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
-be considered for the next release. If at some point `config.cache'
-contains results you don't want to keep, you may remove or edit it.
-
- The file `configure.in' is used to create `configure' by a program
-called `autoconf'. You only need `configure.in' if you want to change
-it or regenerate `configure' using a newer version of `autoconf'.
-
-The simplest way to compile this package is:
-
- 1. `cd' to the directory containing the package's source code and type
- `./configure' to configure the package for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes awhile. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile the package.
-
- 3. Optionally, type `make check' to run any self-tests that come with
- the package.
-
- 4. Type `make install' to install the programs and any data files and
- documentation.
-
- 5. You can remove the program binaries and object files from the
- source code directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile the package for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the package's developers. If you use it, you may have to get
- all sorts of other programs in order to regenerate files that came
- with the distribution.
-
-Compilers and Options
-=====================
-
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
- You can compile the package for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
- If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile the package for one architecture at a time
-in the source code directory. After you have installed the package for
-one architecture, use `make distclean' before reconfiguring for another
-architecture.
-
-Installation Names
-==================
-
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
-
- You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
-
- In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
-kinds of files. Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
-
- If the package supports it, you can cause programs to be installed
-with an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
-
-Optional Features
-=================
-
- Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System). The
-`README' should mention any `--enable-' and `--with-' options that the
-package recognizes.
-
- For packages that use the X Window System, `configure' can usually
-find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
-
-Specifying the System Type
-==========================
-
- There may be some features `configure' can not figure out
-automatically, but needs to determine by the type of host the package
-will run on. Usually `configure' can figure that out, but if it prints
-a message saying it can not guess the host type, give it the
-`--host=TYPE' option. TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name with three fields:
- CPU-COMPANY-SYSTEM
-
-See the file `config.sub' for the possible values of each field. If
-`config.sub' isn't included in this package, then this package doesn't
-need to know the host type.
-
- If you are building compiler tools for cross-compiling, you can also
-use the `--target=TYPE' option to select the type of system they will
-produce code for and the `--build=TYPE' option to select the type of
-system on which you are compiling the package.
-
-Sharing Defaults
-================
-
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
-
-Operation Controls
-==================
-
- `configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made. To
- suppress all normal output, redirect it to `/dev/null' (any error
- messages will still be shown).
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
diff --git a/avl-1.4.0/Makefile.am b/avl-1.4.0/Makefile.am
deleted file mode 100644
index aa4754d..0000000
--- a/avl-1.4.0/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-AUTOMAKE_OPTIONS = gnits
-
-include_HEADERS = avl.h avlt.h avltr.h rb.h
-
-lib_LIBRARIES = libavl.a
-libavl_a_SOURCES = avl.c avlt.c avltr.c rb.c
-
-info_TEXINFOS = avl.texinfo
-noinst_DATA = avl.html avl.text
-
-avl.text : avl.texinfo
- $(MAKEINFO) $(srcdir)/avl.texinfo -o avl.text --no-headers
-
-avl.html: avl.texinfo
- -texi2html -monolithic $(srcdir)/avl.texinfo
-
-EXTRA_PROGRAMS = avl-test avlt-test avltr-test thread-test rb-test
-DISTCLEANFILES = $(EXTRA_PROGRAMS) $(BUILT_SOURCES)
-
-BUILT_SOURCES = avl-test.c avlt-test.c avltr-test.c rb-test.c
-
-TESTS = avl-test avlt-test avltr-test thread-test rb-test
-avl-test.c avlt-test.c avltr-test.c rb-test.c:
- rm -f $@
- echo '#define SELF_TEST 1' > $@
- echo '#include "'`echo $@ | sed s/-test//`'"' >> $@
-
-thread_test_LDADD = libavl.a
diff --git a/avl-1.4.0/Makefile.in b/avl-1.4.0/Makefile.in
deleted file mode 100644
index 2d041aa..0000000
--- a/avl-1.4.0/Makefile.in
+++ /dev/null
@@ -1,572 +0,0 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-CC = @CC@
-MAKEINFO = @MAKEINFO@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-VERSION = @VERSION@
-
-AUTOMAKE_OPTIONS = gnits
-
-include_HEADERS = avl.h avlt.h avltr.h rb.h
-
-lib_LIBRARIES = libavl.a
-libavl_a_SOURCES = avl.c avlt.c avltr.c rb.c
-
-info_TEXINFOS = avl.texinfo
-noinst_DATA = avl.html avl.text
-
-EXTRA_PROGRAMS = avl-test avlt-test avltr-test thread-test rb-test
-DISTCLEANFILES = $(EXTRA_PROGRAMS) $(BUILT_SOURCES)
-
-BUILT_SOURCES = avl-test.c avlt-test.c avltr-test.c rb-test.c
-
-TESTS = avl-test avlt-test avltr-test thread-test rb-test
-
-thread_test_LDADD = libavl.a
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES =
-LIBRARIES = $(lib_LIBRARIES)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir)
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@
-libavl_a_LIBADD =
-libavl_a_OBJECTS = avl.o avlt.o avltr.o rb.o
-AR = ar
-avl_test_SOURCES = avl-test.c
-avl_test_OBJECTS = avl-test.o
-avl_test_LDADD = $(LDADD)
-avl_test_DEPENDENCIES =
-avl_test_LDFLAGS =
-avlt_test_SOURCES = avlt-test.c
-avlt_test_OBJECTS = avlt-test.o
-avlt_test_LDADD = $(LDADD)
-avlt_test_DEPENDENCIES =
-avlt_test_LDFLAGS =
-avltr_test_SOURCES = avltr-test.c
-avltr_test_OBJECTS = avltr-test.o
-avltr_test_LDADD = $(LDADD)
-avltr_test_DEPENDENCIES =
-avltr_test_LDFLAGS =
-thread_test_SOURCES = thread-test.c
-thread_test_OBJECTS = thread-test.o
-thread_test_DEPENDENCIES = libavl.a
-thread_test_LDFLAGS =
-rb_test_SOURCES = rb-test.c
-rb_test_OBJECTS = rb-test.o
-rb_test_LDADD = $(LDADD)
-rb_test_DEPENDENCIES =
-rb_test_LDFLAGS =
-CFLAGS = @CFLAGS@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-TEXI2DVI = texi2dvi
-INFO_DEPS = avl.info
-DVIS = avl.dvi
-TEXINFOS = avl.texinfo
-DATA = $(noinst_DATA)
-
-HEADERS = $(include_HEADERS)
-
-DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
-Makefile.in NEWS THANKS TODO aclocal.m4 configure configure.in \
-install-sh missing mkinstalldirs texinfo.tex
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = tar
-GZIP_ENV = --best
-SOURCES = $(libavl_a_SOURCES) avl-test.c avlt-test.c avltr-test.c thread-test.c rb-test.c
-OBJECTS = $(libavl_a_OBJECTS) avl-test.o avlt-test.o avltr-test.o thread-test.o rb-test.o
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .dvi .info .o .ps .s .texi .texinfo .txi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnits --include-deps Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-$(ACLOCAL_M4): configure.in
- cd $(srcdir) && $(ACLOCAL)
-
-config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- $(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-
-mostlyclean-libLIBRARIES:
-
-clean-libLIBRARIES:
- -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
-
-distclean-libLIBRARIES:
-
-maintainer-clean-libLIBRARIES:
-
-install-libLIBRARIES: $(lib_LIBRARIES)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(libdir)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p"; \
- $(INSTALL_DATA) $$p $(DESTDIR)$(libdir)/$$p; \
- else :; fi; \
- done
- @$(POST_INSTALL)
- @list='$(lib_LIBRARIES)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
- $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
- else :; fi; \
- done
-
-uninstall-libLIBRARIES:
- @$(NORMAL_UNINSTALL)
- list='$(lib_LIBRARIES)'; for p in $$list; do \
- rm -f $(DESTDIR)$(libdir)/$$p; \
- done
-
-.c.o:
- $(COMPILE) -c $<
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-libavl.a: $(libavl_a_OBJECTS) $(libavl_a_DEPENDENCIES)
- -rm -f libavl.a
- $(AR) cru libavl.a $(libavl_a_OBJECTS) $(libavl_a_LIBADD)
- $(RANLIB) libavl.a
-
-avl-test: $(avl_test_OBJECTS) $(avl_test_DEPENDENCIES)
- @rm -f avl-test
- $(LINK) $(avl_test_LDFLAGS) $(avl_test_OBJECTS) $(avl_test_LDADD) $(LIBS)
-
-avlt-test: $(avlt_test_OBJECTS) $(avlt_test_DEPENDENCIES)
- @rm -f avlt-test
- $(LINK) $(avlt_test_LDFLAGS) $(avlt_test_OBJECTS) $(avlt_test_LDADD) $(LIBS)
-
-avltr-test: $(avltr_test_OBJECTS) $(avltr_test_DEPENDENCIES)
- @rm -f avltr-test
- $(LINK) $(avltr_test_LDFLAGS) $(avltr_test_OBJECTS) $(avltr_test_LDADD) $(LIBS)
-
-thread-test: $(thread_test_OBJECTS) $(thread_test_DEPENDENCIES)
- @rm -f thread-test
- $(LINK) $(thread_test_LDFLAGS) $(thread_test_OBJECTS) $(thread_test_LDADD) $(LIBS)
-
-rb-test: $(rb_test_OBJECTS) $(rb_test_DEPENDENCIES)
- @rm -f rb-test
- $(LINK) $(rb_test_LDFLAGS) $(rb_test_OBJECTS) $(rb_test_LDADD) $(LIBS)
-
-avl.info: avl.texinfo
-avl.dvi: avl.texinfo
-
-
-DVIPS = dvips
-
-.texi.info:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texi.dvi:
- TEXINPUTS=.:$$TEXINPUTS \
- MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.texi:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.info:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.texinfo.dvi:
- TEXINPUTS=.:$$TEXINPUTS \
- MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi.info:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-
-.txi.dvi:
- TEXINPUTS=.:$$TEXINPUTS \
- MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi:
- @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9]
- cd $(srcdir) \
- && $(MAKEINFO) `echo $< | sed 's,.*/,,'`
-.dvi.ps:
- $(DVIPS) $< -o $@
-
-install-info-am: $(INFO_DEPS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(infodir)
- @list='$(INFO_DEPS)'; \
- for file in $$list; do \
- d=$(srcdir); \
- for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
- if test -f $$d/$$ifile; then \
- echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
- $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
- else : ; fi; \
- done; \
- done
- @$(POST_INSTALL)
- @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
- install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
- done; \
- else : ; fi
-
-uninstall-info:
- $(PRE_UNINSTALL)
- @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
- ii=yes; \
- else ii=; fi; \
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- test -z "$ii" \
- || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
- done
- @$(NORMAL_UNINSTALL)
- list='$(INFO_DEPS)'; \
- for file in $$list; do \
- (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
- done
-
-dist-info: $(INFO_DEPS)
- list='$(INFO_DEPS)'; \
- for base in $$list; do \
- d=$(srcdir); \
- for file in `cd $$d && eval echo $$base*`; do \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file; \
- done; \
- done
-
-mostlyclean-aminfo:
- -rm -f avl.aux avl.cp avl.cps avl.dvi avl.fn avl.fns avl.ky avl.kys \
- avl.ps avl.log avl.pg avl.toc avl.tp avl.tps avl.vr avl.vrs \
- avl.op avl.tr avl.cv avl.cn
-
-clean-aminfo:
-
-distclean-aminfo:
-
-maintainer-clean-aminfo:
- cd $(srcdir) && for i in $(INFO_DEPS); do \
- rm -f $$i; \
- if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
- rm -f $$i-[0-9]*; \
- fi; \
- done
-
-install-includeHEADERS: $(include_HEADERS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(includedir)
- @list='$(include_HEADERS)'; for p in $$list; do \
- if test -f "$$p"; then d= ; else d="$(srcdir)/"; fi; \
- echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p"; \
- $(INSTALL_DATA) $$d$$p $(DESTDIR)$(includedir)/$$p; \
- done
-
-uninstall-includeHEADERS:
- @$(NORMAL_UNINSTALL)
- list='$(include_HEADERS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(includedir)/$$p; \
- done
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(PACKAGE)-$(VERSION)
-top_distdir = $(distdir)
-
-# This target untars the dist file and tries a VPATH configuration. Then
-# it guarantees that the distribution is self-contained by making another
-# tarfile.
-distcheck: dist
- -rm -rf $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
- dc_install_base=`cd $(distdir)/=inst && pwd`; \
- cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
- && $(MAKE) $(AM_MAKEFLAGS) \
- && $(MAKE) $(AM_MAKEFLAGS) dvi \
- && $(MAKE) $(AM_MAKEFLAGS) check \
- && $(MAKE) $(AM_MAKEFLAGS) install \
- && $(MAKE) $(AM_MAKEFLAGS) installcheck \
- && $(MAKE) $(AM_MAKEFLAGS) dist
- -rm -rf $(distdir)
- @banner="$(distdir).tar.gz is ready for distribution"; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"
-dist: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-dist-all: distdir
- -chmod -R a+r $(distdir)
- GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
- -rm -rf $(distdir)
-distdir: $(DISTFILES)
- @if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" > /dev/null; then :; else \
- echo "NEWS not updated; not releasing" 1>&2; \
- exit 1; \
- fi
- -rm -rf $(distdir)
- mkdir $(distdir)
- -chmod 777 $(distdir)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$d/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
- $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
-
-check-TESTS: $(TESTS)
- @failed=0; all=0; \
- srcdir=$(srcdir); export srcdir; \
- for tst in $(TESTS); do \
- if test -f $$tst; then dir=.; \
- else dir="$(srcdir)"; fi; \
- if $(TESTS_ENVIRONMENT) $$dir/$$tst; then \
- all=`expr $$all + 1`; \
- echo "PASS: $$tst"; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- failed=`expr $$failed + 1`; \
- echo "FAIL: $$tst"; \
- fi; \
- done; \
- if test "$$failed" -eq 0; then \
- banner="All $$all tests passed"; \
- else \
- banner="$$failed of $$all tests failed"; \
- fi; \
- dashes=`echo "$$banner" | sed s/./=/g`; \
- echo "$$dashes"; \
- echo "$$banner"; \
- echo "$$dashes"; \
- test "$$failed" -eq 0
-info-am: $(INFO_DEPS)
-info: info-am
-dvi-am: $(DVIS)
-dvi: dvi-am
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-libLIBRARIES
-install-exec: install-exec-am
-
-install-data-am: install-info-am install-includeHEADERS
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-libLIBRARIES uninstall-info \
- uninstall-includeHEADERS
-uninstall: uninstall-am
-all-am: Makefile $(INFO_DEPS) $(LIBRARIES) $(DATA) $(HEADERS)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(infodir) \
- $(DESTDIR)$(includedir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
- -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-
-maintainer-clean-generic:
- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-mostlyclean-am: mostlyclean-libLIBRARIES mostlyclean-compile \
- mostlyclean-aminfo mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-libLIBRARIES clean-compile clean-aminfo clean-tags \
- clean-generic mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-libLIBRARIES distclean-compile distclean-aminfo \
- distclean-tags distclean-generic clean-am
-
-distclean: distclean-am
- -rm -f config.status
-
-maintainer-clean-am: maintainer-clean-libLIBRARIES \
- maintainer-clean-compile maintainer-clean-aminfo \
- maintainer-clean-tags maintainer-clean-generic \
- distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
- -rm -f config.status
-
-.PHONY: mostlyclean-libLIBRARIES distclean-libLIBRARIES \
-clean-libLIBRARIES maintainer-clean-libLIBRARIES uninstall-libLIBRARIES \
-install-libLIBRARIES mostlyclean-compile distclean-compile \
-clean-compile maintainer-clean-compile install-info-am uninstall-info \
-mostlyclean-aminfo distclean-aminfo clean-aminfo \
-maintainer-clean-aminfo uninstall-includeHEADERS install-includeHEADERS \
-tags mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
-distdir check-TESTS info-am info dvi-am dvi check check-am \
-installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-avl.text : avl.texinfo
- $(MAKEINFO) $(srcdir)/avl.texinfo -o avl.text --no-headers
-
-avl.html: avl.texinfo
- -texi2html -monolithic $(srcdir)/avl.texinfo
-avl-test.c avlt-test.c avltr-test.c rb-test.c:
- rm -f $@
- echo '#define SELF_TEST 1' > $@
- echo '#include "'`echo $@ | sed s/-test//`'"' >> $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/avl-1.4.0/NEWS b/avl-1.4.0/NEWS
deleted file mode 100644
index ecdc25d..0000000
--- a/avl-1.4.0/NEWS
+++ /dev/null
@@ -1,98 +0,0 @@
-libavl NEWS -- history of user-visible changes.
-Time-stamp: <1999-08-15 21:52:15 blp>
-Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-See the end for copying conditions.
-
-Please send PSPP bug reports to bug-gnu-pspp@gnu.org.
-
-Changes for version 1.4.0:
-
- Implemented red-black trees.
-
- New functions, *_init_traverser(), to initialize a *_traverser
- structure. New macros *_TRAVERSER_INIT for same purpose.
-
-Changes for version 1.3.0:
-
- Now uses Autoconf and Automake to configure. Thanks to Alexandre
- Oliva <oliva@dcc.unicamp.br>.
-
- New: automated testing with `make check'.
-
- Fixes for strict ANSI C compliance.
-
- Fixed useless assertions. Fixed bug regarding empty trees for some
- operations with threaded and right-threaded trees. Thanks to
- "Ficarra, David W, NNAD" <dficarra@att.com>.
-
- New functions, avl*_find_close(), for finding a node in the tree
- with a value close to a specified value. See documentation and
- source code for more details. Thanks to Thomas Binder
- <binder@iue.tuwien.ac.at>.
-
-Changes for version 1.2.9:
-
- Fix typos in documentation. Thanks to onTy Toom <onty@yahoo.com>.
-
-Changes for version 1.2.8:
-
- Fixed typos in assertions. Thanks to Girish Zambre
- <gzambre@sprynet.com>.
-
- Better support for gcc 2.7.x.
-
-Changes for versions 1.2.4, 1.2.5, 1.2.6, 1.2.7:
-
- Documentation updates. Thanks to Ron Pfeifle <rpfeifle@aw.sgi.com>,
- Jason Eisner <jeisner@linc.cis.upenn.edu>, and others.
-
-Changes for version 1.2.3:
-
- The library's allocation function xmalloc() can easily be overridden
- by the library's user. Thanks to Clayton Weaver <cgweav@eskimo.com>
- for the idea.
-
-Changes for version 1.2.2:
-
- Documentation fixes. Thanks to Akim Demaille <demaille@inf.enst.fr>
- for pointing these out.
-
-Changes for version 1.2.1:
-
- Bug fixes.
-
-Changes for version 1.2.0:
-
- Implemented right-threaded trees.
-
- Added functions to convert among AVL tree types.
-
- First GNU release.
-
-Changes for version 1.1.0:
-
- Implemented threaded trees.
-
-Changes for version 1.0:
-
- First public release.
-
-----------------------------------------------------------------------
-Copyright information:
-
-Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- Permission is granted to anyone to make or distribute verbatim
- copies of this document as received, in any medium, provided that
- the copyright notice and this permission notice are preserved, thus
- giving the recipient permission to redistribute in turn.
-
- Permission is granted to distribute modified versions of this
- document, or of portions of it, under the above conditions,
- provided also that they carry prominent notices stating who last
- changed them.
-
-Local variables:
-version-control: never
-mode: indented-text
-end:
diff --git a/avl-1.4.0/README b/avl-1.4.0/README
deleted file mode 100644
index 46ed6e4..0000000
--- a/avl-1.4.0/README
+++ /dev/null
@@ -1,37 +0,0 @@
-This is version 1.4 of libavl, a library in ANSI C for manipulation of
-balanced binary trees. Functions for use with three varieties of AVL
-tree and one type of red-black tree are included. There is full
-documentation, including an explanation of what AVL and red-black
-trees are and why you'd use them, in Texinfo, Info, HTML, and plain
-text formats.
-
-The library is divided into three parts, described in more detail
-below. You need only include the files for the types of trees that
-you are using.
-
- - avl.h, avl.c: Unthreaded AVL tree library.
- - avlt.h, avlt.c: Threaded AVL tree library.
- - avltr.h, avltr.c: Right-threaded AVL tree library.
- - rb.h, rb.c: Unthreaded red-black tree library.
-
-Each .c file in the library has a self-test routine built in, which
-can be invoked by compiling it with SELF_TEST set to 1. In addition,
-there is a separate program thread-test.c that tests the functions
-that convert among types of AVL trees. To automatically run these
-tests, type `make check' after you have configured the library with
-`configure'. For more information on how to configure and compile
-libavl, see the file INSTALL included in this directory.
-
-libavl is licensed under the GNU General Public License (GPL), which
-should be included in this directory in file COPYING. This is not the
-same as GNU Library General Public License (LGPL). Please read the
-license and become familiar with its terms.
-
-Please send bug reports and enhancement requests for libavl to Ben
-Pfaff <blp@gnu.org>.
-
-Share and enjoy!
-
-Local variables:
-mode: text
-End:
diff --git a/avl-1.4.0/THANKS b/avl-1.4.0/THANKS
deleted file mode 100644
index cd9319a..0000000
--- a/avl-1.4.0/THANKS
+++ /dev/null
@@ -1,15 +0,0 @@
-Thanks to...
-
-* Donald Knuth for _The Art of Computer Programming_.
-
-* Thomas Cormen, Charles Leiserson, and Ron Rivest for _Introduction
- to Algorithms_.
-
-* David MacKenzie for writing Autoconf, the automatic configuration
- tool.
-
-* David MacKenzie and Tom Tromey for writing Automake, the tool for
- generating `Makefile's.
-
-* All those who have contributed bug reports and enhancements. You
- can find them listed individually in the NEWS and the ChangeLog.
diff --git a/avl-1.4.0/TODO b/avl-1.4.0/TODO
deleted file mode 100644
index 0231395..0000000
--- a/avl-1.4.0/TODO
+++ /dev/null
@@ -1,92 +0,0 @@
-TODO
-----
-
-* Write `bare' no-rebalancing version for comparison purposes.
-
-* In avl_delete's D9 it may be faster to move the data instead of
- moving around all the pointers. Consider the situation carefully.
-
-* avl_traverse_{fwd,rev}; avl_find_traverse
-
-* Generalized testing framework; for instance, could compare with
- kazlib and avllib implementations.
-
-* Merge algorithm paper into documentation.
-
-----------------------------------------------------------------------
-From: Akim Demaille <demaille@inf.enst.fr>
-Subject: Re: libavl
-To: pfaffben@pilot.msu.edu
-Date: 25 Sep 1998 16:04:03 +0200
-
-
-Sorry for the delays...
-
-Ben Pfaff <pfaffben@pilot.msu.edu> writes:
-
-> Akim Demaille <demaille@inf.enst.fr> writes:
->
-> And finaly, for the application I want to make of libavl, I have
-> sometimes to merge two avls, say the second into the first, while
-> specifying, when conflict, whether it is always the first or the
-> second that wins.
->
-> I can easily make this using your api, nevertheless, I wanted to ask
-> you whether you know none brute-force approaches, or even whether
-> this kind of features might appear in the future.
->
-> Knuth describes an elegant algorithm for merging two avls, but it only
-> works if all the values in one of them is smaller than all the values
-> in the other.
->
-> If you do think of a clever algorithm for doing this, please let me
-> know and I'll incorporate it into the API.
-
-I know none. but looking on the web, I found one in haskell :)
-I didn't look whether it was smart or not.
-
-http://www.cs.chalmers.se/pub/haskell/library/avl-tree.lgs
-
-There is not much material. I think comp.compiler is a good place to
-ask for an algorithm...
-
-Akim
-----------------------------------------------------------------------
-From: David Kastrup <dak@neuroinformatik.ruhr-uni-bochum.de>
-Subject: Re: Your AVL tree page
-To: pfaffben@pilot.msu.edu
-Date: Mon, 23 Nov 1998 18:38:55 +0100
-
- From: Ben Pfaff <pfaffben@pilot.msu.edu>
- Date: 23 Nov 1998 12:12:31 -0500
-
- David Kastrup <dak@neuroinformatik.ruhr-uni-bochum.de> writes:
-
- You might want to take a look at the texts at
- http://www-lsi.upc.es/www/dept/techreps/1998.html
-
- In particular the paper
- http://www-lsi.upc.es/dept/techreps/ps/R98-12.ps.gz
-
- might be interesting, as it gives an AVL-tree mechanism for
- multi-threaded, distributed access.
-
- Thanks for the pointers. It seems that connectivity to that machine
- is really slow from here, at least right now, so I'll try to take a
- look at them a little later. Currently there is no multithread
- support in libavl, but it might be nice to add it later.
-
-Well, the reference will probably not be what you think it is. It is
-intended to not properly balance the tree during the access when that
-would mean locking the entire tree. Instead, it does only local
-corrections that eventually probagate to the top. One can also let a
-"garbage collect" thread run that will optimize the data structures
-at idle times, but will let them deteriorate a bit rather than fix
-them up properly under stress. This is, of course, especially
-interesting for internal data structures of an operating system, where
-full balancing at the time of access will slow operations down, but
-there will be idle times when balancing can occur without overhead.
-
-David Kastrup Phone: +49-234-700-5570
-Email: dak@neuroinformatik.ruhr-uni-bochum.de Fax: +49-234-709-4209
-Institut für Neuroinformatik, Universitätsstr. 150, 44780 Bochum, Germany
diff --git a/avl-1.4.0/aclocal.m4 b/avl-1.4.0/aclocal.m4
deleted file mode 100644
index 9f8add8..0000000
--- a/avl-1.4.0/aclocal.m4
+++ /dev/null
@@ -1,104 +0,0 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
-
-dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-dnl PARTICULAR PURPOSE.
-
-# Do all the work for Automake. This macro actually does too much --
-# some checks are only needed if your package does certain things.
-# But this isn't really a big deal.
-
-# serial 1
-
-dnl Usage:
-dnl AM_INIT_AUTOMAKE(package,version, [no-define])
-
-AC_DEFUN(AM_INIT_AUTOMAKE,
-[AC_REQUIRE([AC_PROG_INSTALL])
-PACKAGE=[$1]
-AC_SUBST(PACKAGE)
-VERSION=[$2]
-AC_SUBST(VERSION)
-dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-ifelse([$3],,
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
-AC_REQUIRE([AM_SANITY_CHECK])
-AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
-
-#
-# Check to make sure that the build environment is sane.
-#
-
-AC_DEFUN(AM_SANITY_CHECK,
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "[$]*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "[$]*" != "X $srcdir/configure conftestfile" \
- && test "[$]*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "[$]2" = conftestfile
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-rm -f conftest*
-AC_MSG_RESULT(yes)])
-
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
- $1=$2
- AC_MSG_RESULT(found)
-else
- $1="$3/missing $2"
- AC_MSG_RESULT(missing)
-fi
-AC_SUBST($1)])
-
diff --git a/avl-1.4.0/avl.c b/avl-1.4.0/avl.c
deleted file mode 100644
index 82cdb6e..0000000
--- a/avl-1.4.0/avl.c
+++ /dev/null
@@ -1,1154 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file avl.c in libavl. */
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-#if PSPP
-#include "common.h"
-#include "arena.h"
-#define HAVE_XMALLOC 1
-#endif
-#if SELF_TEST
-#include <limits.h>
-#include <time.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "avl.h"
-
-#if !PSPP && !__GCC__
-#define inline
-#endif
-
-#if !PSPP
-#if __GNUC__ >= 2
-#define unused __attribute__ ((unused))
-#else
-#define unused
-#endif
-#endif
-
-#ifdef HAVE_XMALLOC
-void *xmalloc (size_t);
-#else /* !HAVE_XMALLOC */
-/* Allocates SIZE bytes of space using malloc(). Aborts if out of
- memory. */
-static void *
-xmalloc (size_t size)
-{
- void *vp;
-
- if (size == 0)
- return NULL;
- vp = malloc (size);
-
- assert (vp != NULL);
- if (vp == NULL)
- {
- fprintf (stderr, "virtual memory exhausted\n");
- exit (EXIT_FAILURE);
- }
- return vp;
-}
-#endif /* !HAVE_XMALLOC */
-
-/* Creates an AVL tree in arena OWNER (which can be NULL). The arena
- is owned by the caller, not by the AVL tree. CMP is a order
- function for the data to be stored in the tree. PARAM is arbitrary
- data that becomes an argument to the comparison function. */
-avl_tree *
-avl_create (MAYBE_ARENA avl_comparison_func cmp, void *param)
-{
- avl_tree *tree;
-
- assert (cmp != NULL);
-#if PSPP
- if (owner)
- tree = arena_alloc (owner, sizeof (avl_tree));
- else
-#endif
- tree = xmalloc (sizeof (avl_tree));
-
-#if PSPP
- tree->owner = owner;
-#endif
- tree->root.link[0] = NULL;
- tree->root.link[1] = NULL;
- tree->cmp = cmp;
- tree->count = 0;
- tree->param = param;
-
- return tree;
-}
-
-/* Destroy tree TREE. Function FREE_FUNC is called for every node in
- the tree as it is destroyed.
-
- No effect if the tree has an arena owner and free_func is NULL.
- The caller owns the arena and must destroy it itself.
-
- Do not attempt to reuse the tree after it has been freed. Create a
- new one. */
-void
-avl_destroy (avl_tree *tree, avl_node_func free_func)
-{
- assert (tree != NULL);
-
-#if PSPP
- if (free_func || tree->owner == NULL)
-#endif
- {
- /* Uses Knuth's Algorithm 2.3.1T as modified in exercise 13
- (postorder traversal). */
-
- /* T1. */
- avl_node *an[AVL_MAX_HEIGHT]; /* Stack A: nodes. */
- char ab[AVL_MAX_HEIGHT]; /* Stack A: bits. */
- int ap = 0; /* Stack A: height. */
- avl_node *p = tree->root.link[0];
-
- for (;;)
- {
- /* T2. */
- while (p != NULL)
- {
- /* T3. */
- ab[ap] = 0;
- an[ap++] = p;
- p = p->link[0];
- }
-
- /* T4. */
- for (;;)
- {
- if (ap == 0)
- goto done;
-
- p = an[--ap];
- if (ab[ap] == 0)
- {
- ab[ap++] = 1;
- p = p->link[1];
- break;
- }
-
- if (free_func)
- free_func (p->data, tree->param);
-#if PSPP
- if (tree->owner == NULL)
-#endif
- free (p);
- }
- }
- }
-
- done:
-#if PSPP
- if (tree->owner == NULL)
-#endif
- free (tree);
-}
-
-/* avl_destroy() with FREE_FUNC hardcoded as free(). */
-void
-avl_free (avl_tree *tree)
-{
- avl_destroy (tree, (avl_node_func) free);
-}
-
-/* Return the number of nodes in TREE. */
-int
-avl_count (const avl_tree *tree)
-{
- assert (tree != NULL);
- return tree->count;
-}
-
-/* Allocates room for a new avl_node in arena OWNER, or using
- xmalloc() if OWNER is NULL. */
-#if PSPP
-static inline avl_node *
-new_node (arena **owner)
-{
- if (owner != NULL)
- return arena_alloc (owner, sizeof (avl_node));
- else
- return xmalloc (sizeof (avl_node));
-}
-#else
-static inline avl_node *
-new_node (void)
-{
- return xmalloc (sizeof (avl_node));
-}
-
-#define new_node(owner) \
- new_node ()
-#endif
-
-/* Copy the contents of TREE to a new tree in arena OWNER. If COPY is
- non-NULL, then each data item is passed to function COPY, and the
- return values are inserted into the new tree; otherwise, the items
- are copied verbatim from the old tree to the new tree. Returns the
- new tree. */
-avl_tree *
-avl_copy (MAYBE_ARENA const avl_tree *tree, avl_copy_func copy)
-{
- /* This is a combination of Knuth's Algorithm 2.3.1C (copying a
- binary tree) and Algorithm 2.3.1T as modified by exercise 12
- (preorder traversal). */
-
- avl_tree *new_tree;
-
- /* PT1. */
- const avl_node *pa[AVL_MAX_HEIGHT]; /* Stack PA: nodes. */
- const avl_node **pp = pa; /* Stack PA: stack pointer. */
- const avl_node *p = &tree->root;
-
- /* QT1. */
- avl_node *qa[AVL_MAX_HEIGHT]; /* Stack QA: nodes. */
- avl_node **qp = qa; /* Stack QA: stack pointer. */
- avl_node *q;
-
- assert (tree != NULL);
-#if PSPP
- new_tree = avl_create (owner, tree->cmp, tree->param);
-#else
- new_tree = avl_create (tree->cmp, tree->param);
-#endif
- new_tree->count = tree->count;
- q = &new_tree->root;
-
- for (;;)
- {
- /* C4. */
- if (p->link[0] != NULL)
- {
- avl_node *r = new_node (owner);
- r->link[0] = r->link[1] = NULL;
- q->link[0] = r;
- }
-
- /* C5: Find preorder successors of P and Q. */
- goto start;
- for (;;)
- {
- /* PT2. */
- while (p != NULL)
- {
- goto escape;
- start:
- /* PT3. */
- *pp++ = p;
- *qp++ = q;
- p = p->link[0];
- q = q->link[0];
- }
-
- /* PT4. */
- if (pp == pa)
- {
- assert (qp == qa);
- return new_tree;
- }
-
- p = *--pp;
- q = *--qp;
-
- /* PT5. */
- p = p->link[1];
- q = q->link[1];
- }
- escape:
-
- /* C2. */
- if (p->link[1])
- {
- avl_node *r = new_node (owner);
- r->link[0] = r->link[1] = NULL;
- q->link[1] = r;
- }
-
- /* C3. */
- q->bal = p->bal;
- if (copy == NULL)
- q->data = p->data;
- else
- q->data = copy (p->data, tree->param);
- }
-}
-
-/* Walk tree TREE in inorder, calling WALK_FUNC at each node. Passes
- PARAM to WALK_FUNC. */
-void
-avl_walk (const avl_tree *tree, avl_node_func walk_func, void *param)
-{
- /* Uses Knuth's algorithm 2.3.1T (inorder traversal). */
- assert (tree && walk_func);
-
- {
- /* T1. */
- const avl_node *an[AVL_MAX_HEIGHT]; /* Stack A: nodes. */
- const avl_node **ap = an; /* Stack A: stack pointer. */
- const avl_node *p = tree->root.link[0];
-
- for (;;)
- {
- /* T2. */
- while (p != NULL)
- {
- /* T3. */
- *ap++ = p;
- p = p->link[0];
- }
-
- /* T4. */
- if (ap == an)
- return;
- p = *--ap;
-
- /* T5. */
- walk_func (p->data, param);
- p = p->link[1];
- }
- }
-}
-
-/* Each call to this function for a given TREE and TRAV return the
- next item in the tree in inorder. Initialize the first element of
- TRAV (init) to 0 before calling the first time. Returns NULL when
- out of elements. */
-void *
-avl_traverse (const avl_tree *tree, avl_traverser *trav)
-{
- assert (tree && trav);
-
- /* Uses Knuth's algorithm 2.3.1T (inorder traversal). */
- if (trav->init == 0)
- {
- /* T1. */
- trav->init = 1;
- trav->nstack = 0;
- trav->p = tree->root.link[0];
- }
- else
- /* T5. */
- trav->p = trav->p->link[1];
-
- for (;;)
- {
- /* T2. */
- while (trav->p != NULL)
- {
- /* T3. */
- trav->stack[trav->nstack++] = trav->p;
- trav->p = trav->p->link[0];
- }
-
- /* T4. */
- if (trav->nstack == 0)
- {
- trav->init = 0;
- return NULL;
- }
- trav->p = trav->stack[--trav->nstack];
-
- /* T5. */
- return trav->p->data;
- }
-}
-
-/* Search TREE for an item matching ITEM. If found, returns a pointer
- to the address of the item. If none is found, ITEM is inserted
- into the tree, and a pointer to the address of ITEM is returned.
- In either case, the pointer returned can be changed by the caller,
- or the returned data item can be directly edited, but the key data
- in the item must not be changed. */
-void **
-avl_probe (avl_tree *tree, void *item)
-{
- /* Uses Knuth's Algorithm 6.2.3A (balanced tree search and
- insertion), but caches results of comparisons. In empirical
- tests this eliminates about 25% of the comparisons seen under
- random insertions. */
-
- /* A1. */
- avl_node *t;
- avl_node *s, *p, *q, *r;
-
- assert (tree != NULL);
- t = &tree->root;
- s = p = t->link[0];
-
- if (s == NULL)
- {
- tree->count++;
- assert (tree->count == 1);
- q = t->link[0] = new_node (tree->owner);
- q->data = item;
- q->link[0] = q->link[1] = NULL;
- q->bal = 0;
- return &q->data;
- }
-
- for (;;)
- {
- /* A2. */
- int diff = tree->cmp (item, p->data, tree->param);
-
- /* A3. */
- if (diff < 0)
- {
- p->cache = 0;
- q = p->link[0];
- if (q == NULL)
- {
- p->link[0] = q = new_node (tree->owner);
- break;
- }
- }
- /* A4. */
- else if (diff > 0)
- {
- p->cache = 1;
- q = p->link[1];
- if (q == NULL)
- {
- p->link[1] = q = new_node (tree->owner);
- break;
- }
- }
- else
- /* A2. */
- return &p->data;
-
- /* A3, A4. */
- if (q->bal != 0)
- t = p, s = q;
- p = q;
- }
-
- /* A5. */
- tree->count++;
- q->data = item;
- q->link[0] = q->link[1] = NULL;
- q->bal = 0;
-
- /* A6. */
- r = p = s->link[(int) s->cache];
- while (p != q)
- {
- p->bal = p->cache * 2 - 1;
- p = p->link[(int) p->cache];
- }
-
- /* A7. */
- if (s->cache == 0)
- {
- /* a = -1. */
- if (s->bal == 0)
- {
- s->bal = -1;
- return &q->data;
- }
- else if (s->bal == +1)
- {
- s->bal = 0;
- return &q->data;
- }
-
- assert (s->bal == -1);
- if (r->bal == -1)
- {
- /* A8. */
- p = r;
- s->link[0] = r->link[1];
- r->link[1] = s;
- s->bal = r->bal = 0;
- }
- else
- {
- /* A9. */
- assert (r->bal == +1);
- p = r->link[1];
- r->link[1] = p->link[0];
- p->link[0] = r;
- s->link[0] = p->link[1];
- p->link[1] = s;
- if (p->bal == -1)
- s->bal = 1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == +1);
- s->bal = 0, r->bal = -1;
- }
- p->bal = 0;
- }
- }
- else
- {
- /* a == +1. */
- if (s->bal == 0)
- {
- s->bal = 1;
- return &q->data;
- }
- else if (s->bal == -1)
- {
- s->bal = 0;
- return &q->data;
- }
-
- assert (s->bal == +1);
- if (r->bal == +1)
- {
- /* A8. */
- p = r;
- s->link[1] = r->link[0];
- r->link[0] = s;
- s->bal = r->bal = 0;
- }
- else
- {
- /* A9. */
- assert (r->bal == -1);
- p = r->link[0];
- r->link[0] = p->link[1];
- p->link[1] = r;
- s->link[1] = p->link[0];
- p->link[0] = s;
- if (p->bal == +1)
- s->bal = -1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == -1);
- s->bal = 0, r->bal = 1;
- }
- p->bal = 0;
- }
- }
-
- /* A10. */
- if (t != &tree->root && s == t->link[1])
- t->link[1] = p;
- else
- t->link[0] = p;
-
- return &q->data;
-}
-
-/* Search TREE for an item matching ITEM, and return it if found. */
-void *
-avl_find (const avl_tree *tree, const void *item)
-{
- const avl_node *p;
-
- assert (tree != NULL);
- for (p = tree->root.link[0]; p; )
- {
- int diff = tree->cmp (item, p->data, tree->param);
-
- if (diff < 0)
- p = p->link[0];
- else if (diff > 0)
- p = p->link[1];
- else
- return p->data;
- }
-
- return NULL;
-}
-
-/* Search TREE for an item close to the value of ITEM, and return it.
- This function will return a null pointer only if TREE is empty. */
-void *
-avl_find_close (const avl_tree *tree, const void *item)
-{
- const avl_node *p;
-
- assert (tree != NULL);
- p = tree->root.link[0];
- if (p == NULL)
- return NULL;
-
- for (;;)
- {
- int diff = tree->cmp (item, p->data, tree->param);
- int t;
-
- if (diff < 0)
- t = 0;
- else if (diff > 0)
- t = 1;
- else
- return p->data;
-
- if (p->link[t])
- p = p->link[t];
- else
- return p->data;
- }
-}
-
-/* Searches AVL tree TREE for an item matching ITEM. If found, the
- item is removed from the tree and the actual item found is returned
- to the caller. If no item matching ITEM exists in the tree,
- returns NULL. */
-void *
-avl_delete (avl_tree *tree, const void *item)
-{
- /* Uses my Algorithm D, which can be found at
- http://www.msu.edu/user/pfaffben/avl. Algorithm D is based on
- Knuth's Algorithm 6.2.2D (Tree deletion) and 6.2.3A (Balanced
- tree search and insertion), as well as the notes on pages 465-466
- of Vol. 3. */
-
- /* D1. */
- avl_node *pa[AVL_MAX_HEIGHT]; /* Stack P: Nodes. */
- char a[AVL_MAX_HEIGHT]; /* Stack P: Bits. */
- int k = 1; /* Stack P: Pointer. */
-
- avl_node **q;
- avl_node *p;
-
- assert (tree != NULL);
-
- a[0] = 0;
- pa[0] = &tree->root;
- p = tree->root.link[0];
- for (;;)
- {
- /* D2. */
- int diff;
-
- if (p == NULL)
- return NULL;
-
- diff = tree->cmp (item, p->data, tree->param);
- if (diff == 0)
- break;
-
- /* D3, D4. */
- pa[k] = p;
- if (diff < 0)
- {
- p = p->link[0];
- a[k] = 0;
- }
- else if (diff > 0)
- {
- p = p->link[1];
- a[k] = 1;
- }
- k++;
- }
- tree->count--;
-
- item = p->data;
-
- /* D5. */
- q = &pa[k - 1]->link[(int) a[k - 1]];
- if (p->link[1] == NULL)
- {
- *q = p->link[0];
- if (*q)
- (*q)->bal = 0;
- }
- else
- {
- /* D6. */
- avl_node *r = p->link[1];
- if (r->link[0] == NULL)
- {
- r->link[0] = p->link[0];
- *q = r;
- r->bal = p->bal;
- a[k] = 1;
- pa[k++] = r;
- }
- else
- {
- /* D7. */
- avl_node *s = r->link[0];
- int l = k++;
-
- a[k] = 0;
- pa[k++] = r;
-
- /* D8. */
- while (s->link[0] != NULL)
- {
- r = s;
- s = r->link[0];
- a[k] = 0;
- pa[k++] = r;
- }
-
- /* D9. */
- a[l] = 1;
- pa[l] = s;
- s->link[0] = p->link[0];
- r->link[0] = s->link[1];
- s->link[1] = p->link[1];
- s->bal = p->bal;
- *q = s;
- }
- }
-
-#if PSPP
- if (tree->owner == NULL)
-#endif
- free (p);
-
- assert (k > 0);
- /* D10. */
- while (--k)
- {
- avl_node *s = pa[k], *r;
-
- if (a[k] == 0)
- {
- /* D10. */
- if (s->bal == -1)
- {
- s->bal = 0;
- continue;
- }
- else if (s->bal == 0)
- {
- s->bal = 1;
- break;
- }
-
- assert (s->bal == +1);
- r = s->link[1];
-
- assert (r != NULL);
- if (r->bal == 0)
- {
- /* D11. */
- s->link[1] = r->link[0];
- r->link[0] = s;
- r->bal = -1;
- pa[k - 1]->link[(int) a[k - 1]] = r;
- break;
- }
- else if (r->bal == +1)
- {
- /* D12. */
- s->link[1] = r->link[0];
- r->link[0] = s;
- s->bal = r->bal = 0;
- pa[k - 1]->link[(int) a[k - 1]] = r;
- }
- else
- {
- /* D13. */
- assert (r->bal == -1);
- p = r->link[0];
- r->link[0] = p->link[1];
- p->link[1] = r;
- s->link[1] = p->link[0];
- p->link[0] = s;
- if (p->bal == +1)
- s->bal = -1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == -1);
- s->bal = 0, r->bal = +1;
- }
- p->bal = 0;
- pa[k - 1]->link[(int) a[k - 1]] = p;
- }
- }
- else
- {
- assert (a[k] == 1);
-
- /* D10. */
- if (s->bal == +1)
- {
- s->bal = 0;
- continue;
- }
- else if (s->bal == 0)
- {
- s->bal = -1;
- break;
- }
-
- assert (s->bal == -1);
- r = s->link[0];
-
- if (r == NULL || r->bal == 0)
- {
- /* D11. */
- s->link[0] = r->link[1];
- r->link[1] = s;
- r->bal = 1;
- pa[k - 1]->link[(int) a[k - 1]] = r;
- break;
- }
- else if (r->bal == -1)
- {
- /* D12. */
- s->link[0] = r->link[1];
- r->link[1] = s;
- s->bal = r->bal = 0;
- pa[k - 1]->link[(int) a[k - 1]] = r;
- }
- else if (r->bal == +1)
- {
- /* D13. */
- p = r->link[1];
- r->link[1] = p->link[0];
- p->link[0] = r;
- s->link[0] = p->link[1];
- p->link[1] = s;
- if (p->bal == -1)
- s->bal = 1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == 1);
- s->bal = 0, r->bal = -1;
- }
- p->bal = 0;
- pa[k - 1]->link[(int) a[k - 1]] = p;
- }
- }
- }
-
- return (void *) item;
-}
-
-/* Inserts ITEM into TREE. Returns NULL if the item was inserted,
- otherwise a pointer to the duplicate item. */
-void *
-avl_insert (avl_tree *tree, void *item)
-{
- void **p;
-
- assert (tree != NULL);
-
- p = avl_probe (tree, item);
- return (*p == item) ? NULL : *p;
-}
-
-/* If ITEM does not exist in TREE, inserts it and returns NULL. If a
- matching item does exist, it is replaced by ITEM and the item
- replaced is returned. The caller is responsible for freeing the
- item returned. */
-void *
-avl_replace (avl_tree *tree, void *item)
-{
- void **p;
-
- assert (tree != NULL);
-
- p = avl_probe (tree, item);
- if (*p == item)
- return NULL;
- else
- {
- void *r = *p;
- *p = item;
- return r;
- }
-}
-
-/* Delete ITEM from TREE when you know that ITEM must be in TREE. For
- debugging purposes. */
-void *
-(avl_force_delete) (avl_tree *tree, void *item)
-{
- void *found = avl_delete (tree, item);
- assert (found != NULL);
- return found;
-}
-
-#if SELF_TEST
-
-/* Used to flag delayed aborting. */
-int done = 0;
-
-/* Print the structure of node NODE of an avl tree, which is LEVEL
- levels from the top of the tree. Uses different delimiters to
- visually distinguish levels. */
-void
-print_structure (avl_node *node, int level)
-{
- char lc[] = "([{`/";
- char rc[] = ")]}'\\";
-
- assert (level <= 10);
-
- if (node == NULL)
- {
- printf (" nil");
- return;
- }
- printf (" %c%d", lc[level % 5], (int) node->data);
- if (node->link[0] || node->link[1])
- print_structure (node->link[0], level + 1);
- if (node->link[1])
- print_structure (node->link[1], level + 1);
- printf ("%c", rc[level % 5]);
-}
-
-/* Compare two integers A and B and return a strcmp()-type result. */
-int
-compare_ints (const void *a, const void *b, void *param unused)
-{
- return ((int) a) - ((int) b);
-}
-
-/* Print the value of integer A. */
-void
-print_int (void *a, void *param unused)
-{
- printf (" %d", (int) a);
-}
-
-/* Linearly print contents of TREE. */
-void
-print_contents (avl_tree *tree)
-{
- avl_walk (tree, print_int, NULL);
- printf ("\n");
-}
-
-/* Examine NODE in a avl tree. *COUNT is increased by the number of
- nodes in the tree, including the current one. If the node is the
- root of the tree, PARENT should be INT_MIN, otherwise it should be
- the parent node value. DIR is the direction that the current node
- is linked from the parent: -1 for left child, +1 for right child;
- it is not used if PARENT is INT_MIN. Returns the height of the
- tree rooted at NODE. */
-int
-recurse_tree (avl_node *node, int *count, int parent, int dir)
-{
- if (node)
- {
- int d = (int) node->data;
- int nl = node->link[0] ? recurse_tree (node->link[0], count, d, -1) : 0;
- int nr = node->link[1] ? recurse_tree (node->link[1], count, d, 1) : 0;
- (*count)++;
-
- if (nr - nl != node->bal)
- {
- printf (" Node %d is unbalanced: right height=%d, left height=%d, "
- "difference=%d, but balance factor=%d.\n",
- d, nr, nl, nr - nl, node->bal);
- done = 1;
- }
-
- if (parent != INT_MIN)
- {
- assert (dir == -1 || dir == +1);
- if (dir == -1 && d > parent)
- {
- printf (" Node %d is smaller than its left child %d.\n",
- parent, d);
- done = 1;
- }
- else if (dir == +1 && d < parent)
- {
- printf (" Node %d is larger than its right child %d.\n",
- parent, d);
- done = 1;
- }
- }
- assert (node->bal >= -1 && node->bal <= 1);
- return 1 + (nl > nr ? nl : nr);
- }
- else return 0;
-}
-
-/* Check that everything about TREE is kosher. */
-void
-verify_tree (avl_tree *tree)
-{
- int count = 0;
- recurse_tree (tree->root.link[0], &count, INT_MIN, 0);
- if (count != tree->count)
- {
- printf (" Tree has %d nodes, but tree count is %d.\n",
- count, tree->count);
- done = 1;
- }
- if (done)
- abort ();
-}
-
-/* Arrange the N elements of ARRAY in random order. */
-void
-shuffle (int *array, int n)
-{
- int i;
-
- for (i = 0; i < n; i++)
- {
- int j = i + rand () % (n - i);
- int t = array[j];
- array[j] = array[i];
- array[i] = t;
- }
-}
-
-/* Compares avl trees rooted at A and B, making sure that they are
- identical. */
-void
-compare_trees (avl_node *a, avl_node *b)
-{
- if (a == NULL || b == NULL)
- {
- assert (a == NULL && b == NULL);
- return;
- }
- if (a->data != b->data || a->bal != b->bal
- || ((a->link[0] != NULL) ^ (b->link[0] != NULL))
- || ((a->link[1] != NULL) ^ (b->link[1] != NULL)))
- {
- printf (" Copied nodes differ: %d b=%d a->bal=%d b->bal=%d a:",
- (int) a->data, (int) b->data, a->bal, b->bal);
- if (a->link[0])
- printf ("l");
- if (a->link[1])
- printf ("r");
- printf (" b:");
- if (b->link[0])
- printf ("l");
- if (b->link[1])
- printf ("r");
- printf ("\n");
- abort ();
- }
- if (a->link[0] != NULL)
- compare_trees (a->link[0], b->link[0]);
- if (a->link[1] != NULL)
- compare_trees (a->link[1], b->link[1]);
-}
-
-/* Simple stress test procedure for the AVL tree routines. Does the
- following:
-
- * Generate a random number seed. By default this is generated from
- the current time. You can also pass a seed value on the command
- line if you want to test the same case. The seed value is
- displayed.
-
- * Create a tree and insert the integers from 0 up to TREE_SIZE - 1
- into it, in random order. Verify the tree structure after each
- insertion.
-
- * Remove each integer from the tree, in a different random order.
- After each deletion, verify the tree structure; also, make a copy
- of the tree into a new tree, verify the copy and compare it to the
- original, then destroy the copy.
-
- * Destroy the tree, increment the random seed value, and start over.
-
- If you make any modifications to the avl tree routines, then you
- might want to insert some calls to print_structure() at strategic
- places in order to be able to see what's really going on. Also,
- memory debuggers like Checker or Purify are very handy. */
-#define TREE_SIZE 1024
-#define N_ITERATIONS 16
-int
-main (int argc, char **argv)
-{
- int array[TREE_SIZE];
- int seed;
- int iteration;
-
- if (argc == 2)
- seed = atoi (argv[1]);
- else
- seed = time (0) * 257 % 32768;
-
- fputs ("Testing avl...\n", stdout);
-
- for (iteration = 1; iteration <= N_ITERATIONS; iteration++)
- {
- avl_tree *tree;
- int i;
-
- printf ("Iteration %4d/%4d: seed=%5d", iteration, N_ITERATIONS, seed);
- fflush (stdout);
-
- srand (seed++);
-
- for (i = 0; i < TREE_SIZE; i++)
- array[i] = i;
- shuffle (array, TREE_SIZE);
-
- tree = avl_create (compare_ints, NULL);
- for (i = 0; i < TREE_SIZE; i++)
- avl_force_insert (tree, (void *) (array[i]));
- verify_tree (tree);
-
- shuffle (array, TREE_SIZE);
- for (i = 0; i < TREE_SIZE; i++)
- {
- avl_tree *copy;
-
- avl_delete (tree, (void *) (array[i]));
- verify_tree (tree);
-
- copy = avl_copy (tree, NULL);
- verify_tree (copy);
- compare_trees (tree->root.link[0], copy->root.link[0]);
- avl_destroy (copy, NULL);
-
- if (i % 128 == 0)
- {
- putchar ('.');
- fflush (stdout);
- }
- }
- fputs (" good.\n", stdout);
-
- avl_destroy (tree, NULL);
- }
-
- return 0;
-}
-#endif /* SELF_TEST */
-
-/*
- Local variables:
- compile-command: "gcc -DSELF_TEST=1 -W -Wall -I. -o ./avl-test avl.c"
- End:
-*/
-
diff --git a/avl-1.4.0/avl.h b/avl-1.4.0/avl.h
deleted file mode 100644
index 436a461..0000000
--- a/avl-1.4.0/avl.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file avl.h in libavl. */
-
-#if !avl_h
-#define avl_h 1
-
-/* The default maximum height of 32 allows for AVL trees having
- between 5,704,880 and 4,294,967,295 nodes, depending on order of
- insertion. You may change this compile-time constant as you
- wish. */
-#ifndef AVL_MAX_HEIGHT
-#define AVL_MAX_HEIGHT 32
-#endif
-
-/* Structure for a node in an AVL tree. */
-typedef struct avl_node
- {
- void *data; /* Pointer to data. */
- struct avl_node *link[2]; /* Subtrees. */
- signed char bal; /* Balance factor. */
- char cache; /* Used during insertion. */
- signed char pad[2]; /* Unused. Reserved for threaded trees. */
- }
-avl_node;
-
-/* Used for traversing an AVL tree. */
-typedef struct avl_traverser
- {
- int init; /* Initialized? */
- int nstack; /* Top of stack. */
- const avl_node *p; /* Used for traversal. */
- const avl_node *stack[AVL_MAX_HEIGHT];/* Descended trees. */
- }
-avl_traverser;
-
-/* Initializer for avl_traverser. */
-#define AVL_TRAVERSER_INIT {0}
-
-/* Function types. */
-#if !AVL_FUNC_TYPES
-#define AVL_FUNC_TYPES 1
-typedef int (*avl_comparison_func) (const void *a, const void *b, void *param);
-typedef void (*avl_node_func) (void *data, void *param);
-typedef void *(*avl_copy_func) (void *data, void *param);
-#endif
-
-/* Structure which holds information about an AVL tree. */
-typedef struct avl_tree
- {
-#if PSPP
- struct arena **owner; /* Arena to store nodes. */
-#endif
- avl_node root; /* Tree root node. */
- avl_comparison_func cmp; /* Used to compare keys. */
- int count; /* Number of nodes in the tree. */
- void *param; /* Arbitary user data. */
- }
-avl_tree;
-
-#if PSPP
-#define MAYBE_ARENA struct arena **owner,
-#else
-#define MAYBE_ARENA /* nothing */
-#endif
-
-/* General functions. */
-avl_tree *avl_create (MAYBE_ARENA avl_comparison_func, void *param);
-void avl_destroy (avl_tree *, avl_node_func);
-void avl_free (avl_tree *);
-int avl_count (const avl_tree *);
-avl_tree *avl_copy (MAYBE_ARENA const avl_tree *, avl_copy_func);
-
-/* Walk the tree. */
-void avl_walk (const avl_tree *, avl_node_func, void *param);
-void *avl_traverse (const avl_tree *, avl_traverser *);
-#define avl_init_traverser(TRAVERSER) ((TRAVERSER)->init = 0)
-
-/* Search for a given item. */
-void **avl_probe (avl_tree *, void *);
-void *avl_delete (avl_tree *, const void *);
-void *avl_find (const avl_tree *, const void *);
-void *avl_find_close (const avl_tree *, const void *);
-
-#if __GCC__ >= 2
-extern inline void *
-avl_insert (avl_tree *tree, void *item)
-{
- void **p = avl_probe (tree, item);
- return (*p == item) ? NULL : *p;
-}
-
-extern inline void *
-avl_replace (avl_tree *tree, void *item)
-{
- void **p = avl_probe (tree, item);
- if (*p == item)
- return NULL;
- else
- {
- void *r = *p;
- *p = item;
- return r;
- }
-}
-#else /* not gcc */
-void *avl_insert (avl_tree *tree, void *item);
-void *avl_replace (avl_tree *tree, void *item);
-#endif /* not gcc */
-
-/* Easy assertions on insertion & deletion. */
-#ifndef NDEBUG
-#define avl_force_insert(A, B) \
- do \
- { \
- void *r = avl_insert (A, B); \
- assert (r == NULL); \
- } \
- while (0)
-void *avl_force_delete (avl_tree *, void *);
-#else
-#define avl_force_insert(A, B) \
- avl_insert (A, B)
-#define avl_force_delete(A, B) \
- avl_delete (A, B)
-#endif
-
-#endif /* avl_h */
diff --git a/avl-1.4.0/avl.html b/avl-1.4.0/avl.html
deleted file mode 100644
index ef3e51e..0000000
--- a/avl-1.4.0/avl.html
+++ /dev/null
@@ -1,1046 +0,0 @@
-<HTML>
-<HEAD>
-<!-- This HTML file has been created by texi2html 1.54
- from ./avl.texinfo on 6 October 1999 -->
-
-<TITLE>libavl manual</TITLE>
-
-</HEAD>
-<BODY>
-<H1>libavl</H1>
-<H2>A library for manipulation of balanced binary trees</H2>
-<ADDRESS>Ben Pfaff</ADDRESS>
-<P>
-<P><HR><P>
-<H1>Table of Contents</H1>
-<UL>
-<LI><A NAME="TOC1" HREF="avl.html#SEC1">Introduction to balanced binary trees</A>
-<LI><A NAME="TOC2" HREF="avl.html#SEC2">Introduction to threaded trees</A>
-<LI><A NAME="TOC3" HREF="avl.html#SEC3">Types</A>
-<LI><A NAME="TOC4" HREF="avl.html#SEC4">Functions</A>
-<LI><A NAME="TOC5" HREF="avl.html#SEC5">Tree Creation</A>
-<LI><A NAME="TOC6" HREF="avl.html#SEC6">Insertion and Deletion</A>
-<LI><A NAME="TOC7" HREF="avl.html#SEC7">Searching</A>
-<LI><A NAME="TOC8" HREF="avl.html#SEC8">Iteration</A>
-<LI><A NAME="TOC9" HREF="avl.html#SEC9">Conversion</A>
-<LI><A NAME="TOC10" HREF="avl.html#SEC10">Author</A>
-<LI><A NAME="TOC11" HREF="avl.html#SEC11">Index</A>
-</UL>
-<P><HR><P>
-
-
-<H1><A NAME="SEC1" HREF="avl.html#TOC1">Introduction to balanced binary trees</A></H1>
-
-<P>
-<A NAME="IDX1"></A>
-Consider some techniques that can be used to find a particular item in a
-data set. Typical methods include sequential searching, digital
-searching, hash tables, and binary searching.
-
-</P>
-<P>
-Sequential searching is simple, but slow (O(n)). Digital searching
-requires that the entire data set be known in advance, and memory
-efficient implementations are slow.
-
-</P>
-<P>
-Hash tables are fast (O(1)) for static data sets, but they can be
-wasteful of memory. It can be difficult to choose an effective hash
-function. Some hash tables variants also make deletion an expensive
-operation.
-
-</P>
-<P>
-<A NAME="IDX2"></A>
-Binary search techniques work almost as quickly (O(log(n)) on an ordered
-table, or on a binary tree. Binary trees also allow easy iteration over
-the data in the tree in sorted order. With hash tables it is necessary
-to sort the data before iterating, and after sorting the data is no
-longer in hash form.
-
-</P>
-<P>
-Binary trees are efficient for insertion, deletion, and searching, if
-data are inserted in random order. But, if data are inserted in order
-using a naive algorithm, binary search degenerates to sequential search.
-
-</P>
-<P>
-<A NAME="IDX3"></A>
-<A NAME="IDX4"></A>
-<A NAME="IDX5"></A>
-In turn, this problem can be solved by <STRONG>rebalancing</STRONG> the tree after
-each insertion or deletion. In rebalancing, nodes are rearranged via
-transformations called <STRONG>rotations</STRONG> using an algorithm that tends to
-minimize the tree's height.
-
-</P>
-<P>
-There are several schemes for rebalancing binary trees. The two most
-common types of balanced tree are <STRONG>AVL trees</STRONG> and <STRONG>red-black
-trees</STRONG>. libavl implements both types:
-
-</P>
-
-<UL>
-<LI>
-
-<A NAME="IDX6"></A>
-<A NAME="IDX7"></A>
-AVL trees, invented by Russian mathematicians G. M. Adel'son-Velskii and
-E. M. Landis, ensure that, for each node, the difference in height
-between its subtrees (the <STRONG>balance factor</STRONG>) is not greater than 1.
-
-<LI>
-
-Red-black trees, invented by R. Bayer and studied at length by
-L. J. Guibas and R. Sedgewick, assign each node of a tree a color (red
-or black), and specify a set of rules governing how red and black nodes
-may be arranged.
-</UL>
-
-<P>
-The table below presents a comparison among unbalanced binary trees, AVL
-trees, and red-black trees. In the table, <VAR>n</VAR> is the number of
-nodes in the tree and <VAR>h</VAR> is the tree's height before the
-operation. <STRONG>lg</STRONG> is the base-2 logarithm function.
-
-</P>
-<TABLE>
-
-<TR>Operation
-<BR>
-<TR>
-<TD> Binary Tree
-<TD> AVL Tree
-<TD> Red-Black Tree
-
-<BR>
-<TR>Time per insertion or deletion
-<BR>
-<TR>
-<TD> O(<VAR>h</VAR>)
-<TD> O(lg <VAR>n</VAR>)
-<TD> O(lg <VAR>n</VAR>)
-
-<BR>
-<TR>Time for insertion of <VAR>k</VAR> nodes having sequential values
-<BR>
-<TR>
-<TD> O(<VAR>k</VAR>^2)
-<TD> O(<VAR>n</VAR> lg <VAR>n</VAR>)
-<TD> O(<VAR>n</VAR> lg <VAR>n</VAR>)
-
-<BR>
-<TR>Time for insertion of <VAR>k</VAR> nodes having random values
-<BR>
-<TR>
-<TD> O(<VAR>n</VAR> lg <VAR>n</VAR>)
-<TD> O(<VAR>n</VAR> lg <VAR>n</VAR>)
-<TD> O(<VAR>n</VAR> lg <VAR>n</VAR>)
-
-<BR>
-<TR>Maximum number of rotations per insertion
-<BR>
-<TR>
-<TD> 0
-<TD> 1
-<TD> lg <VAR>n</VAR>
-
-<BR>
-<TR>Maximum number of rotations per deletion
-<BR>
-<TR>
-<TD> 0
-<TD> lg <VAR>n</VAR>
-<TD> lg <VAR>n</VAR>
-
-<BR>
-<TR>Maximum <VAR>h</VAR> as a function of <VAR>n</VAR>
-<BR>
-<TR>
-<TD> <VAR>n</VAR>
-<TD> 1.44 lg (<VAR>n</VAR> + 2) - .328
-<TD> 2 lg (<VAR>n</VAR> + 1)
-
-<BR>
-<TR>Minimum <VAR>n</VAR> as a function of <VAR>h</VAR>
-<BR>
-<TR>
-<TD> <VAR>h</VAR>
-<TD> 2^((<VAR>h</VAR> + .328) / 1.44) - 2
-<TD> 2^(<VAR>h</VAR> / 2) - 1
-</TABLE>
-
-There are alternatives to AVL trees that share some of their properties.
-For instance, skip lists, 2-3 trees, and splay trees all allow O(log(n))
-insertion and deletion. The main disadvantage of these methods is that
-their operations are not as well documented in the literature.
-
-
-
-<H1><A NAME="SEC2" HREF="avl.html#TOC2">Introduction to threaded trees</A></H1>
-
-<P>
-<STRONG>Threading</STRONG> is a clever method that simplifies binary tree
-traversal.
-
-</P>
-<P>
-Nodes in a unthreaded binary tree that have zero or one subnodes have
-two or one null subnode pointers, respectively. In a threaded binary
-tree, a left child pointer that would otherwise be null is used to point
-to the node's inorder<A NAME="DOCF1" HREF="avl.html#FOOT1">(1)</A>
-predecessor, and in a null right child pointer points to its inorder
-successor.
-
-</P>
-<P>
-In a threaded tree, it is always possible to find the next node and the
-previous node of a node, given only a pointer to the node in question.
-In an unthreaded tree, it's also necessary to have a list of the nodes
-between the node in question and root of the tree.
-
-</P>
-<P>
-Advantages of a threaded tree compared to an unthreaded one include:
-
-</P>
-
-<UL>
-<LI>
-
-Faster traversal and less memory usage during traversal, since no stack
-need be maintained.
-
-<LI>
-
-Greater generality, since one can go from a node to its successor or
-predecessor given only the node, simplifying algorithms that require
-moving forward and backward in a tree.
-</UL>
-
-<P>
-Some disadvantages of threaded trees are:
-
-</P>
-
-<UL>
-<LI>
-
-Slower insertion and deletion, since threads need to be maintained. In
-somes cases, this can be alleviated by constructing the tree as an
-unthreaded tree, then threading it with a special libavl function.
-
-<LI>
-
-In theory, threaded trees need two extra bits per node to indicate
-whether each child pointer points to an ordinary node or the node's
-successor/predecessor node. In libavl, however, these bits are stored
-in a byte that is used for structure alignment padding in unthreaded
-binary trees, so no extra storage is used.
-</UL>
-
-<P>
-A <STRONG>right-threaded binary tree</STRONG> is similar to a threaded binary tree,
-but threads are only maintained on the right side of each node. This
-allows for traversal to the right (toward larger values) but not to the
-left (toward smaller values). Right-threaded trees are convenient when
-the properties of a threaded tree are desirable, but traversal in
-reverse sort order is not necessary. Not threading the left links saves
-time in insertions and deletions.
-
-</P>
-<P>
-Left-threaded binary trees also exist, but they are not implemented by
-libavl. The same effect can be obtained by sorting the tree in the
-opposite order.
-
-</P>
-
-
-<H1><A NAME="SEC3" HREF="avl.html#TOC3">Types</A></H1>
-
-<P>
-The following types are defined and used by libavl:
-
-</P>
-<P>
-<DL>
-<DT><U>Data Type:</U> <B>avl_tree</B>
-<DD><A NAME="IDX8"></A>
-<DT><U>Data Type:</U> <B>avlt_tree</B>
-<DD><A NAME="IDX9"></A>
-<DT><U>Data Type:</U> <B>avltr_tree</B>
-<DD><A NAME="IDX10"></A>
-<DT><U>Data Type:</U> <B>rb_tree</B>
-<DD><A NAME="IDX11"></A>
-These are the data types used to represent a tree. Although they are
-defined in the libavl header files, it should never be necessary to
-access them directly. Instead, all accesses should take place through
-libavl functions.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Data Type:</U> <B>avl_node</B>
-<DD><A NAME="IDX12"></A>
-<DT><U>Data Type:</U> <B>avlt_node</B>
-<DD><A NAME="IDX13"></A>
-<DT><U>Data Type:</U> <B>avltr_node</B>
-<DD><A NAME="IDX14"></A>
-<DT><U>Data Type:</U> <B>rb_node</B>
-<DD><A NAME="IDX15"></A>
-These are the data types used to represent individual nodes in a tree.
-Similar cautions apply as with <CODE>avl_tree</CODE> structures.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Data Type:</U> <B>avl_traverser</B>
-<DD><A NAME="IDX16"></A>
-<DT><U>Data Type:</U> <B>avlt_traverser</B>
-<DD><A NAME="IDX17"></A>
-<DT><U>Data Type:</U> <B>avltr_traverser</B>
-<DD><A NAME="IDX18"></A>
-<DT><U>Data Type:</U> <B>rb_traverser</B>
-<DD><A NAME="IDX19"></A>
-These are the data types used by the <CODE>avl_traverse</CODE> family of
-functions to iterate across the tree. Again, these are opaque
-structures.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Data Type:</U> <B>avl_comparison_func</B>
-<DD><A NAME="IDX20"></A>
-Every tree must have an ordering defined by a function of this type. It
-must have the following signature:
-
-</P>
-
-<PRE>
-int <VAR>compare</VAR> (const void *<VAR>a</VAR>, const void *<VAR>b</VAR>, void *<VAR>param</VAR>)
-</PRE>
-
-<P>
-The return value is expected to be like that returned by <CODE>strcmp</CODE>
-in the standard C library: negative if <VAR>a</VAR> &#60; <VAR>b</VAR>, zero if
-<VAR>a</VAR> = <VAR>b</VAR>, positive if <VAR>a</VAR> &#62; <VAR>b</VAR>. <VAR>param</VAR> is an
-arbitrary value defined by the user when the tree was created.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Data Type:</U> <B>avl_node_func</B>
-<DD><A NAME="IDX21"></A>
-This is a class of function called to perform an operation on a data
-item. Functions of this type have the following signature:
-
-</P>
-
-<PRE>
-void <VAR>operate</VAR> (void *<VAR>data</VAR>, void *<VAR>param</VAR>)
-</PRE>
-
-<P>
-<VAR>data</VAR> is the data item and <VAR>param</VAR> is an arbitrary user-defined
-value set when the tree was created.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Data Type:</U> <B>avl_copy_func</B>
-<DD><A NAME="IDX22"></A>
-
-</P>
-<P>
-This is a class of function called to make a new copy of a node's data.
-Functions of this type have the following signature:
-
-</P>
-
-<PRE>
-void *<VAR>copy</VAR> (void *<VAR>data</VAR>, void *<VAR>param</VAR>)
-</PRE>
-
-<P>
-The function should return a new copy of <VAR>data</VAR>. <VAR>param</VAR> is an
-arbitrary user-defined value set when the tree was created.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Macro:</U> <B>AVL_MAX_HEIGHT</B>
-<DD><A NAME="IDX23"></A>
-This macro defines the maximum height of an AVL tree that can be handled
-by functions that maintain a stack of nodes descended. The default
-value is 32, which allows for AVL trees with a maximum number of nodes
-between 5,704,880 and 4,294,967,295, depending on order of insertion.
-This macro may be defined by the user before including any AVL tree
-header file, in which case libavl will honor that value.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Macro:</U> <B>RB_MAX_HEIGHT</B>
-<DD><A NAME="IDX24"></A>
-This macro defines the maximum height of an AVL tree that can be handled
-by functions that maintain a stack of nodes descended. The default
-value is 32, which allows for red-black trees with a maximum number of
-nodes of at least 65535. This macro may be defined by the user before
-including the red-black tree header file, in which case libavl will
-honor that value.
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC4" HREF="avl.html#TOC4">Functions</A></H1>
-
-<P>
-<A NAME="IDX25"></A>
-<A NAME="IDX26"></A>
-<A NAME="IDX27"></A>
-libavl is four libraries in one:
-
-</P>
-
-<UL>
-<LI>
-
-An unthreaded AVL tree library.
-
-<LI>
-
-A threaded AVL tree library.
-
-<LI>
-
-A right-threaded AVL tree library.
-
-<LI>
-
-A red-black tree library.
-</UL>
-
-<P>
-Identifiers in these libraries are prefixed by <CODE>avl_</CODE>,
-<CODE>avlt_</CODE>, <CODE>avltr_</CODE>, and <CODE>rb_</CODE>, with corresponding header
-files <TT>`avl.h'</TT>, <TT>`avlt.h'</TT>, <TT>`avltr.h'</TT>, and <TT>`rb.h'</TT>,
-respectively. The functions that they declare are defined in the
-<TT>`.c'</TT> files with the same names.
-
-</P>
-<P>
-Most tree functions are implemented in all three libraries, but
-threading allows more generality of operation. So, the threaded and
-right-threaded libraries offer a few additional functions for finding
-the next or previous node from a given node. In addition, they offer
-functions for converting trees from threaded or right-threaded
-representations to unthreaded, and vice versa.<A NAME="DOCF2" HREF="avl.html#FOOT2">(2)</A>
-
-</P>
-
-
-<H1><A NAME="SEC5" HREF="avl.html#TOC5">Tree Creation</A></H1>
-
-<P>
-These functions deal with creation and destruction of AVL trees.
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> avl_tree * <B>avl_create</B> <I>(avl_comparison_func <VAR>compare</VAR>, void *<VAR>param</VAR>)</I>
-<DD><A NAME="IDX28"></A>
-<DT><U>Function:</U> avlt_tree * <B>avlt_create</B> <I>(avlt_comparison_func <VAR>compare</VAR>, void *<VAR>param</VAR>)</I>
-<DD><A NAME="IDX29"></A>
-<DT><U>Function:</U> avltr_tree * <B>avltr_create</B> <I>(avltr_comparison_func <VAR>compare</VAR>, void *<VAR>param</VAR>)</I>
-<DD><A NAME="IDX30"></A>
-<DT><U>Function:</U> rb_tree * <B>rb_create</B> <I>(avl_comparison_func <VAR>compare</VAR>, void *<VAR>param</VAR>)</I>
-<DD><A NAME="IDX31"></A>
-Create a new, empty tree with comparison function <VAR>compare</VAR>.
-Arbitrary user data <VAR>param</VAR> is saved so that it can be passed to
-user callback functions.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>avl_destroy</B> <I>(avl_tree *<VAR>tree</VAR>, avl_node_func <VAR>free</VAR>)</I>
-<DD><A NAME="IDX32"></A>
-<DT><U>Function:</U> void <B>avlt_destroy</B> <I>(avlt_tree *<VAR>tree</VAR>, avl_node_func <VAR>free</VAR>)</I>
-<DD><A NAME="IDX33"></A>
-<DT><U>Function:</U> void <B>avltr_destroy</B> <I>(avltr_tree *<VAR>tree</VAR>, avl_node_func <VAR>free</VAR>)</I>
-<DD><A NAME="IDX34"></A>
-<DT><U>Function:</U> void <B>rb_destroy</B> <I>(rb_tree *<VAR>tree</VAR>, avl_node_func <VAR>free</VAR>)</I>
-<DD><A NAME="IDX35"></A>
-Destroys <VAR>tree</VAR>, releasing all of its storage. If <VAR>free</VAR> is
-non-null, then it is called for every node in postorder before that node
-is freed.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>avl_free</B> <I>(avl_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX36"></A>
-<DT><U>Function:</U> void <B>avlt_free</B> <I>(avlt_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX37"></A>
-<DT><U>Function:</U> void <B>avltr_free</B> <I>(avltr_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX38"></A>
-<DT><U>Function:</U> void <B>rb_free</B> <I>(rb_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX39"></A>
-Destroys <VAR>tree</VAR>, releasing all of its storage. The data in each
-node is freed with a call to the standard C library function
-<CODE>free</CODE>.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> avl_tree * <B>avl_copy</B> <I>(const avl_tree *<VAR>tree</VAR>, avl_copy_func <VAR>copy</VAR>)</I>
-<DD><A NAME="IDX40"></A>
-<DT><U>Function:</U> avlt_tree * <B>avl_copy</B> <I>(const avlt_tree *<VAR>tree</VAR>, avl_copy_func <VAR>copy</VAR>)</I>
-<DD><A NAME="IDX41"></A>
-<DT><U>Function:</U> avltr_tree * <B>avl_copy</B> <I>(const avltr_tree *<VAR>tree</VAR>, avl_copy_func <VAR>copy</VAR>)</I>
-<DD><A NAME="IDX42"></A>
-<DT><U>Function:</U> rb_tree * <B>rb_copy</B> <I>(const rb_tree *<VAR>tree</VAR>, avl_copy_func <VAR>copy</VAR>)</I>
-<DD><A NAME="IDX43"></A>
-Copies the contents of <VAR>tree</VAR> into a new tree, and returns the new
-tree. If <VAR>copy</VAR> is non-null, then it is called to make a new copy
-of each node's data; otherwise, the node data is copied verbatim into
-the new tree.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> int <B>avl_count</B> <I>(const avl_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX44"></A>
-<DT><U>Function:</U> int <B>avlt_count</B> <I>(const avlt_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX45"></A>
-<DT><U>Function:</U> int <B>avltr_count</B> <I>(const avltr_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX46"></A>
-<DT><U>Function:</U> int <B>rb_count</B> <I>(const rb_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX47"></A>
-Returns the number of nodes in <VAR>tree</VAR>.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>xmalloc</B> <I>(size_t <VAR>size</VAR>)</I>
-<DD><A NAME="IDX48"></A>
-This is not a function defined by libavl. Instead, it is a function
-that the user program can define. It must allocate <VAR>size</VAR> bytes
-using <CODE>malloc</CODE> and return it. It can handle out-of-memory errors
-however it chooses, but it may not ever return a null pointer.
-
-</P>
-<P>
-If there is an <CODE>xmalloc</CODE> function defined for use by libavl, the
-source files (<TT>`avl.c'</TT>, <TT>`avlt.c'</TT>, <TT>`avltr.c'</TT>, <TT>`rb.c'</TT>)
-must be compiled with <CODE>HAVE_XMALLOC</CODE> defined. Otherwise, the
-library will use its internal static <CODE>xmalloc</CODE>, which handles
-out-of-memory errors by printing a message <SAMP>`virtual memory
-exhausted'</SAMP> to stderr and terminating the program with exit code
-<CODE>EXIT_FAILURE</CODE>.
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC6" HREF="avl.html#TOC6">Insertion and Deletion</A></H1>
-
-<P>
-These function insert nodes, delete nodes, and search for nodes in
-trees.
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void ** <B>avl_probe</B> <I>(avl_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX49"></A>
-<DT><U>Function:</U> void ** <B>avlt_probe</B> <I>(avlt_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX50"></A>
-<DT><U>Function:</U> void ** <B>avltr_probe</B> <I>(avltr_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX51"></A>
-<DT><U>Function:</U> void ** <B>rb_probe</B> <I>(rb_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX52"></A>
-These are the workhorse functions for tree insertion. They search
-<VAR>tree</VAR> for a node with data matching <VAR>data</VAR>. If found, a
-pointer to the matching data is returned. Otherwise, a new node is
-created for <VAR>data</VAR>, and a pointer to that data is returned. In
-either case, the pointer returned can be changed by the user, but the
-key data used by the tree's comparison must not be changed<A NAME="DOCF3" HREF="avl.html#FOOT3">(3)</A>.
-
-</P>
-<P>
-It is usually easier to use one of the <CODE>avl_insert</CODE> or
-<CODE>avl_replace</CODE> functions instead of <CODE>avl_probe</CODE> directly.
-
-</P>
-<P>
-<STRONG>Please note:</STRONG> It's not a particularly good idea to insert a null
-pointer as a data item into a tree, because several libavl functions
-return a null pointer to indicate failure. You can sometimes avoid a
-problem by using functions that return a pointer to a pointer instead of
-a plain pointer. Also be wary of this when casting an arithmetic type
-to a void pointer for insertion--on typical architectures, 0's become
-null pointers when this is done.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>avl_insert</B> <I>(avl_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX53"></A>
-<DT><U>Function:</U> void * <B>avlt_insert</B> <I>(avlt_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX54"></A>
-<DT><U>Function:</U> void * <B>avltr_insert</B> <I>(avltr_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX55"></A>
-<DT><U>Function:</U> void * <B>rb_insert</B> <I>(rb_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX56"></A>
-If a node with data matching <VAR>data</VAR> exists in <VAR>tree</VAR>, returns
-the matching data item. Otherwise, inserts <VAR>data</VAR> into <VAR>tree</VAR>
-and returns a null pointer.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>avl_force_insert</B> <I>(avl_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX57"></A>
-<DT><U>Function:</U> void <B>avlt_force_insert</B> <I>(avlt_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX58"></A>
-<DT><U>Function:</U> void <B>avltr_force_insert</B> <I>(avltr_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX59"></A>
-<DT><U>Function:</U> void <B>rb_force_insert</B> <I>(rb_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX60"></A>
-Inserts <VAR>data</VAR> into <VAR>tree</VAR>. If a node with data matching
-<VAR>data</VAR> exists in <VAR>tree</VAR>, aborts the program with an assertion
-violation. This function is implemented as a macro; if it is used, the
-standard C header <CODE>assert.h</CODE> must also be included. If macro
-<CODE>NDEBUG</CODE> is defined when a libavl header is included, these
-functions are short-circuited to a direct call to <CODE>avl_insert</CODE>,
-and no check is performed.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>avl_replace</B> <I>(avl_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX61"></A>
-<DT><U>Function:</U> void * <B>avlt_replace</B> <I>(avlt_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX62"></A>
-<DT><U>Function:</U> void * <B>avltr_replace</B> <I>(avltr_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX63"></A>
-<DT><U>Function:</U> void * <B>rb_replace</B> <I>(rb_tree *<VAR>tree</VAR>, void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX64"></A>
-If a node with data matching <VAR>data</VAR>, such that the comparison
-function returns 0, exists in <VAR>tree</VAR>, replaces the node's data with
-<VAR>data</VAR> and returns the node's former contents. Otherwise, inserts
-<VAR>data</VAR> into <VAR>tree</VAR> and returns a null pointer.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>avl_delete</B> <I>(avl_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX65"></A>
-<DT><U>Function:</U> void * <B>avlt_delete</B> <I>(avlt_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX66"></A>
-<DT><U>Function:</U> void * <B>avltr_delete</B> <I>(avltr_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX67"></A>
-<DT><U>Function:</U> void * <B>rb_delete</B> <I>(rb_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX68"></A>
-Searches <VAR>tree</VAR> for a node with data matching <VAR>data</VAR>. If found,
-the node is deleted and its data is returned. Otherwise, returns a null
-pointer.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>avl_force_delete</B> <I>(avl_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX69"></A>
-<DT><U>Function:</U> void * <B>avlt_force_delete</B> <I>(avlt_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX70"></A>
-<DT><U>Function:</U> void * <B>avltr_force_delete</B> <I>(avltr_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX71"></A>
-<DT><U>Function:</U> void * <B>rb_force_delete</B> <I>(rb_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX72"></A>
-Deletes a node with data matching <VAR>data</VAR> from <VAR>tree</VAR>. If no
-matching node is found, aborts the program with an assertion violation.
-If macro <CODE>NDEBUG</CODE> is declared when a libavl header is included,
-these functions are short-circuited to a direct call to
-<CODE>avl_delete</CODE>, and no check is performed.
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC7" HREF="avl.html#TOC7">Searching</A></H1>
-
-<P>
-These function search a tree for an item without making an insertion or
-a deletion.
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>avl_find</B> <I>(avl_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX73"></A>
-<DT><U>Function:</U> void ** <B>avlt_find</B> <I>(avlt_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX74"></A>
-<DT><U>Function:</U> void ** <B>avltr_find</B> <I>(avltr_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX75"></A>
-<DT><U>Function:</U> void * <B>rb_find</B> <I>(rb_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX76"></A>
-Searches <VAR>tree</VAR> for a node with data matching <VAR>data</VAR>, If found,
-returns the node's data (for threaded and right-threaded trees, a
-pointer to the node's data). Otherwise, returns a null pointer.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>avl_find_close</B> <I>(avl_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX77"></A>
-<DT><U>Function:</U> void ** <B>avlt_find_close</B> <I>(avlt_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX78"></A>
-<DT><U>Function:</U> void ** <B>avltr_find_close</B> <I>(avltr_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX79"></A>
-<DT><U>Function:</U> void * <B>rb_find_close</B> <I>(rb_tree *<VAR>tree</VAR>, const void *<VAR>data</VAR>)</I>
-<DD><A NAME="IDX80"></A>
-Searches <VAR>tree</VAR> for a node with data matching <VAR>data</VAR>. If found,
-returns the node's data (for threaded and right-threaded trees, a
-pointer to the node's data). If no matching item is found, then it
-finds a node whose data is "close" to <VAR>data</VAR>; either the node
-closest in value to <VAR>data</VAR>, or the node either before or after the
-node with the closest value. Returns a null pointer if the tree does
-not contain any nodes.
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC8" HREF="avl.html#TOC8">Iteration</A></H1>
-
-<P>
-These functions allow the caller to iterate across the items in a tree.
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void <B>avl_walk</B> <I>(const avl_tree *<VAR>tree</VAR>, avl_node_func <VAR>operate</VAR>, void *<VAR>param</VAR>)</I>
-<DD><A NAME="IDX81"></A>
-<DT><U>Function:</U> void <B>avlt_walk</B> <I>(const avlt_tree *<VAR>tree</VAR>, avl_node_func <VAR>operate</VAR>, void *<VAR>param</VAR>)</I>
-<DD><A NAME="IDX82"></A>
-<DT><U>Function:</U> void <B>avltr_walk</B> <I>(const avltr_tree *<VAR>tree</VAR>, avl_node_func <VAR>operate</VAR>, void *<VAR>param</VAR>)</I>
-<DD><A NAME="IDX83"></A>
-<DT><U>Function:</U> void <B>rb_walk</B> <I>(const rb_tree *<VAR>tree</VAR>, avl_node_func <VAR>operate</VAR>, void *<VAR>param</VAR>)</I>
-<DD><A NAME="IDX84"></A>
-Walks through all the nodes in <VAR>tree</VAR>, and calls function
-<VAR>operate</VAR> for each node in inorder. <VAR>param</VAR> overrides the value
-passed to <CODE>avl_create</CODE> (and family) for this operation only.
-<VAR>operate</VAR> must not change the key data in the nodes in a way that
-would reorder the data values or cause two values to become equal.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>avl_traverse</B> <I>(const avl_tree *<VAR>tree</VAR>, avl_traverser *<VAR>trav</VAR>)</I>
-<DD><A NAME="IDX85"></A>
-<DT><U>Function:</U> void * <B>avlt_traverse</B> <I>(const avlt_tree *<VAR>tree</VAR>, avlt_traverser *<VAR>trav</VAR>)</I>
-<DD><A NAME="IDX86"></A>
-<DT><U>Function:</U> void * <B>avltr_traverse</B> <I>(const avltr_tree *<VAR>tree</VAR>, avltr_traverser *<VAR>trav</VAR>)</I>
-<DD><A NAME="IDX87"></A>
-<DT><U>Function:</U> void * <B>rb_traverse</B> <I>(const rb_tree *<VAR>tree</VAR>, rb_traverser *<VAR>trav</VAR>)</I>
-<DD><A NAME="IDX88"></A>
-Returns each of <VAR>tree</VAR>'s nodes' data values in sequence, then a null
-pointer to indicate the last item. <VAR>trav</VAR> must be initialized
-before the first call, either in a declaration like that below, or using
-one of the functions below.
-
-</P>
-
-<PRE>
-avl_traverser trav = AVL_TRAVERSER_INIT;
-</PRE>
-
-<P>
-Each <CODE>avl_traverser</CODE> (and family) is a separate, independent
-iterator.
-
-</P>
-<P>
-For threaded and right-threaded trees, <CODE>avlt_next</CODE> or
-<CODE>avltr_next</CODE>, respectively, are faster and more memory-efficient
-than <CODE>avlt_traverse</CODE> or <CODE>avltr_traverse</CODE>.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void * <B>avl_init_traverser</B> <I>(avl_traverser *<VAR>trav</VAR>)</I>
-<DD><A NAME="IDX89"></A>
-<DT><U>Function:</U> void * <B>avlt_init_traverser</B> <I>(avlt_traverser *<VAR>trav</VAR>)</I>
-<DD><A NAME="IDX90"></A>
-<DT><U>Function:</U> void * <B>avltr_init_traverser</B> <I>(avltr_traverser *<VAR>trav</VAR>)</I>
-<DD><A NAME="IDX91"></A>
-<DT><U>Function:</U> void * <B>rb_init_traverser</B> <I>(rb_traverser *<VAR>trav</VAR>)</I>
-<DD><A NAME="IDX92"></A>
-Initializes the specified tree traverser structure. After this function
-is called, the next call to the corresponding <CODE>*_traverse</CODE> function
-will return the smallest value in the appropriate tree.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void ** <B>avlt_next</B> <I>(const avlt_tree *<VAR>tree</VAR>, void **<VAR>data</VAR>)</I>
-<DD><A NAME="IDX93"></A>
-<DT><U>Function:</U> void ** <B>avltr_next</B> <I>(const avltr_tree *<VAR>tree</VAR>, void **<VAR>data</VAR>)</I>
-<DD><A NAME="IDX94"></A>
-<VAR>data</VAR> must be a null pointer or a pointer to a data item in AVL
-tree <VAR>tree</VAR>. Returns a pointer to the next data item after
-<VAR>data</VAR> in <VAR>tree</VAR> in inorder (this is the first item if
-<VAR>data</VAR> is a null pointer), or a null pointer if <VAR>data</VAR> was the
-last item in <VAR>tree</VAR>.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> void ** <B>avltr_prev</B> <I>(const avltr_tree *<VAR>tree</VAR>, void **<VAR>data</VAR>)</I>
-<DD><A NAME="IDX95"></A>
-<VAR>data</VAR> must be a null pointer or a pointer to a data item in AVL
-tree <VAR>tree</VAR>. Returns a pointer to the previous data item before
-<VAR>data</VAR> in <VAR>tree</VAR> in inorder (this is the last, or greatest
-valued, item if <VAR>data</VAR> is a null pointer), or a null pointer if
-<VAR>data</VAR> was the first item in <VAR>tree</VAR>.
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC9" HREF="avl.html#TOC9">Conversion</A></H1>
-
-<P>
-<DL>
-<DT><U>Function:</U> avlt_tree * <B>avlt_thread</B> <I>(avl_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX96"></A>
-<DT><U>Function:</U> avltr_tree * <B>avltr_thread</B> <I>(avl_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX97"></A>
-Adds symmetric threads or right threads, respectively, to unthreaded AVL
-tree <VAR>tree</VAR> and returns a pointer to <VAR>tree</VAR> cast to the
-appropriate type. After one of these functions is called, threaded or
-right-threaded functions, as appropriate, must be used with <VAR>tree</VAR>;
-unthreaded functions may not be used.
-</DL>
-
-</P>
-<P>
-<DL>
-<DT><U>Function:</U> avl_tree * <B>avlt_unthread</B> <I>(avlt_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX98"></A>
-<DT><U>Function:</U> avl_tree * <B>avltr_unthread</B> <I>(avltr_tree *<VAR>tree</VAR>)</I>
-<DD><A NAME="IDX99"></A>
-Cuts all threads in threaded or right-threaded, respectively, AVL tree
-<VAR>tree</VAR> and returns a pointer to <VAR>tree</VAR> cast to <CODE>avl_tree
-*</CODE>. After one of these functions is called, unthreaded functions must
-be used with <VAR>tree</VAR>; threaded or right-threaded functions may not be
-used.
-</DL>
-
-</P>
-
-
-<H1><A NAME="SEC10" HREF="avl.html#TOC10">Author</A></H1>
-
-<P>
-<A NAME="IDX100"></A>
-<A NAME="IDX101"></A>
-<A NAME="IDX102"></A>
-<A NAME="IDX103"></A>
-libavl was written by Ben Pfaff <A HREF="mailto:blp@gnu.org"><TT>blp@gnu.org</TT></A>.
-
-</P>
-<P>
-libavl's generic tree algorithms and AVL algorithms are based on those
-found in Donald Knuth's venerable <CITE>Art of Computer Programming</CITE>
-series from Addison-Wesley, primarily Volumes 1 and 3. libavl's
-red-black tree algorithms are based on those found in Cormen et al.,
-<CITE>Introduction to Algorithms</CITE>, 2nd ed., from MIT Press.
-
-</P>
-
-
-<H1><A NAME="SEC11" HREF="avl.html#TOC11">Index</A></H1>
-
-<P>
-<H2>a</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX7">Adel'son-Velskii, G. M.</A>
-<LI><A HREF="avl.html#IDX103"><CITE>Art of Computer Programming</CITE></A>
-<LI><A HREF="avl.html#IDX101">author</A>
-<LI><A HREF="avl.html#IDX4">AVL tree</A>
-<LI><A HREF="avl.html#IDX20">avl_comparison_func</A>
-<LI><A HREF="avl.html#IDX40">avl_copy</A>, <A HREF="avl.html#IDX41">avl_copy</A>, <A HREF="avl.html#IDX42">avl_copy</A>
-<LI><A HREF="avl.html#IDX22">avl_copy_func</A>
-<LI><A HREF="avl.html#IDX44">avl_count</A>
-<LI><A HREF="avl.html#IDX28">avl_create</A>
-<LI><A HREF="avl.html#IDX65">avl_delete</A>
-<LI><A HREF="avl.html#IDX32">avl_destroy</A>
-<LI><A HREF="avl.html#IDX73">avl_find</A>
-<LI><A HREF="avl.html#IDX77">avl_find_close</A>
-<LI><A HREF="avl.html#IDX69">avl_force_delete</A>
-<LI><A HREF="avl.html#IDX57">avl_force_insert</A>
-<LI><A HREF="avl.html#IDX36">avl_free</A>
-<LI><A HREF="avl.html#IDX89">avl_init_traverser</A>
-<LI><A HREF="avl.html#IDX53">avl_insert</A>
-<LI><A HREF="avl.html#IDX23">AVL_MAX_HEIGHT</A>
-<LI><A HREF="avl.html#IDX12">avl_node</A>
-<LI><A HREF="avl.html#IDX21">avl_node_func</A>
-<LI><A HREF="avl.html#IDX49">avl_probe</A>
-<LI><A HREF="avl.html#IDX61">avl_replace</A>
-<LI><A HREF="avl.html#IDX85">avl_traverse</A>
-<LI><A HREF="avl.html#IDX16">avl_traverser</A>
-<LI><A HREF="avl.html#IDX8">avl_tree</A>
-<LI><A HREF="avl.html#IDX81">avl_walk</A>
-<LI><A HREF="avl.html#IDX45">avlt_count</A>
-<LI><A HREF="avl.html#IDX29">avlt_create</A>
-<LI><A HREF="avl.html#IDX66">avlt_delete</A>
-<LI><A HREF="avl.html#IDX33">avlt_destroy</A>
-<LI><A HREF="avl.html#IDX74">avlt_find</A>
-<LI><A HREF="avl.html#IDX78">avlt_find_close</A>
-<LI><A HREF="avl.html#IDX70">avlt_force_delete</A>
-<LI><A HREF="avl.html#IDX58">avlt_force_insert</A>
-<LI><A HREF="avl.html#IDX37">avlt_free</A>
-<LI><A HREF="avl.html#IDX90">avlt_init_traverser</A>
-<LI><A HREF="avl.html#IDX54">avlt_insert</A>
-<LI><A HREF="avl.html#IDX93">avlt_next</A>
-<LI><A HREF="avl.html#IDX13">avlt_node</A>
-<LI><A HREF="avl.html#IDX50">avlt_probe</A>
-<LI><A HREF="avl.html#IDX62">avlt_replace</A>
-<LI><A HREF="avl.html#IDX96">avlt_thread</A>
-<LI><A HREF="avl.html#IDX86">avlt_traverse</A>
-<LI><A HREF="avl.html#IDX17">avlt_traverser</A>
-<LI><A HREF="avl.html#IDX9">avlt_tree</A>
-<LI><A HREF="avl.html#IDX98">avlt_unthread</A>
-<LI><A HREF="avl.html#IDX82">avlt_walk</A>
-<LI><A HREF="avl.html#IDX46">avltr_count</A>
-<LI><A HREF="avl.html#IDX30">avltr_create</A>
-<LI><A HREF="avl.html#IDX67">avltr_delete</A>
-<LI><A HREF="avl.html#IDX34">avltr_destroy</A>
-<LI><A HREF="avl.html#IDX75">avltr_find</A>
-<LI><A HREF="avl.html#IDX79">avltr_find_close</A>
-<LI><A HREF="avl.html#IDX71">avltr_force_delete</A>
-<LI><A HREF="avl.html#IDX59">avltr_force_insert</A>
-<LI><A HREF="avl.html#IDX38">avltr_free</A>
-<LI><A HREF="avl.html#IDX91">avltr_init_traverser</A>
-<LI><A HREF="avl.html#IDX55">avltr_insert</A>
-<LI><A HREF="avl.html#IDX94">avltr_next</A>
-<LI><A HREF="avl.html#IDX14">avltr_node</A>
-<LI><A HREF="avl.html#IDX95">avltr_prev</A>
-<LI><A HREF="avl.html#IDX51">avltr_probe</A>
-<LI><A HREF="avl.html#IDX63">avltr_replace</A>
-<LI><A HREF="avl.html#IDX97">avltr_thread</A>
-<LI><A HREF="avl.html#IDX87">avltr_traverse</A>
-<LI><A HREF="avl.html#IDX18">avltr_traverser</A>
-<LI><A HREF="avl.html#IDX10">avltr_tree</A>
-<LI><A HREF="avl.html#IDX99">avltr_unthread</A>
-<LI><A HREF="avl.html#IDX83">avltr_walk</A>
-</DIR>
-<H2>b</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX2">binary tree</A>
-</DIR>
-<H2>h</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX1">hash table</A>
-</DIR>
-<H2>k</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX102">Knuth, Donald Ervin</A>
-</DIR>
-<H2>l</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX6">Landis, E. M.</A>
-</DIR>
-<H2>p</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX100">Pfaff, Benjamin Levy</A>
-</DIR>
-<H2>r</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX43">rb_copy</A>
-<LI><A HREF="avl.html#IDX47">rb_count</A>
-<LI><A HREF="avl.html#IDX31">rb_create</A>
-<LI><A HREF="avl.html#IDX68">rb_delete</A>
-<LI><A HREF="avl.html#IDX35">rb_destroy</A>
-<LI><A HREF="avl.html#IDX76">rb_find</A>
-<LI><A HREF="avl.html#IDX80">rb_find_close</A>
-<LI><A HREF="avl.html#IDX72">rb_force_delete</A>
-<LI><A HREF="avl.html#IDX60">rb_force_insert</A>
-<LI><A HREF="avl.html#IDX39">rb_free</A>
-<LI><A HREF="avl.html#IDX92">rb_init_traverser</A>
-<LI><A HREF="avl.html#IDX56">rb_insert</A>
-<LI><A HREF="avl.html#IDX24">RB_MAX_HEIGHT</A>
-<LI><A HREF="avl.html#IDX15">rb_node</A>
-<LI><A HREF="avl.html#IDX52">rb_probe</A>
-<LI><A HREF="avl.html#IDX64">rb_replace</A>
-<LI><A HREF="avl.html#IDX88">rb_traverse</A>
-<LI><A HREF="avl.html#IDX19">rb_traverser</A>
-<LI><A HREF="avl.html#IDX11">rb_tree</A>
-<LI><A HREF="avl.html#IDX84">rb_walk</A>
-<LI><A HREF="avl.html#IDX5">rebalancing</A>
-<LI><A HREF="avl.html#IDX3">red-black tree</A>
-<LI><A HREF="avl.html#IDX27">right threads</A>
-</DIR>
-<H2>t</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX26">threads</A>
-</DIR>
-<H2>u</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX25">unthreaded</A>
-</DIR>
-<H2>x</H2>
-<DIR>
-<LI><A HREF="avl.html#IDX48">xmalloc</A>
-</DIR>
-
-</P>
-<P><HR><P>
-<H1>Footnotes</H1>
-<H3><A NAME="FOOT1" HREF="avl.html#DOCF1">(1)</A></H3>
-<P>In tree traversal, <STRONG>inorder</STRONG> refers
-to visiting the nodes in their sorted order from smallest to largest.
-<H3><A NAME="FOOT2" HREF="avl.html#DOCF2">(2)</A></H3>
-<P>In general, you
-should build the sort of tree that you need to use, but occasionally it
-is useful to convert between tree types.
-<H3><A NAME="FOOT3" HREF="avl.html#DOCF3">(3)</A></H3>
-<P>It
-can be changed if this would not change the ordering of the nodes in the
-tree; i.e., if this would not cause the data in the node to be less than
-or equal to the previous node's data or greater than or equal to the
-next node's data.
-<P><HR><P>
-This document was generated on 6 October 1999 using the
-<A HREF="http://wwwcn.cern.ch/dci/texi2html/">texi2html</A>
-translator version 1.51a.</P>
-</BODY>
-</HTML>
diff --git a/avl-1.4.0/avl.info b/avl-1.4.0/avl.info
deleted file mode 100644
index 8dd5330..0000000
--- a/avl-1.4.0/avl.info
+++ /dev/null
@@ -1,708 +0,0 @@
-This is avl.info, produced by makeinfo version 3.12n from avl.texinfo.
-
- This file documents libavl, a library for the manipulation of
-balanced binary trees.
-
- Copyright 1998, 1999 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
-
-
-File: avl.info, Node: Top, Next: Introduction to balanced binary trees, Prev: (dir), Up: (dir)
-
- This document describes libavl, a library for manipulation of
-balanced binary trees.
-
- This document applies to libavl version 1.4.0.
-
-* Menu:
-
-* Introduction to balanced binary trees::
-* Introduction to threaded trees::
-* Types::
-* Functions::
-* Tree Creation::
-* Insertion::
-* Searching::
-* Iteration::
-* Conversion::
-* Author::
-* Index::
-
-
-File: avl.info, Node: Introduction to balanced binary trees, Next: Introduction to threaded trees, Prev: Top, Up: Top
-
-Introduction to balanced binary trees
-*************************************
-
- Consider some techniques that can be used to find a particular item
-in a data set. Typical methods include sequential searching, digital
-searching, hash tables, and binary searching.
-
- Sequential searching is simple, but slow (O(n)). Digital searching
-requires that the entire data set be known in advance, and memory
-efficient implementations are slow.
-
- Hash tables are fast (O(1)) for static data sets, but they can be
-wasteful of memory. It can be difficult to choose an effective hash
-function. Some hash tables variants also make deletion an expensive
-operation.
-
- Binary search techniques work almost as quickly (O(log(n)) on an
-ordered table, or on a binary tree. Binary trees also allow easy
-iteration over the data in the tree in sorted order. With hash tables
-it is necessary to sort the data before iterating, and after sorting
-the data is no longer in hash form.
-
- Binary trees are efficient for insertion, deletion, and searching, if
-data are inserted in random order. But, if data are inserted in order
-using a naive algorithm, binary search degenerates to sequential search.
-
- In turn, this problem can be solved by "rebalancing" the tree after
-each insertion or deletion. In rebalancing, nodes are rearranged via
-transformations called "rotations" using an algorithm that tends to
-minimize the tree's height.
-
- There are several schemes for rebalancing binary trees. The two most
-common types of balanced tree are "AVL trees" and "red-black trees".
-libavl implements both types:
-
- * AVL trees, invented by Russian mathematicians G. M.
- Adel'son-Velskii and E. M. Landis, ensure that, for each node, the
- difference in height between its subtrees (the "balance factor")
- is not greater than 1.
-
- * Red-black trees, invented by R. Bayer and studied at length by L.
- J. Guibas and R. Sedgewick, assign each node of a tree a color (red
- or black), and specify a set of rules governing how red and black
- nodes may be arranged.
-
- The table below presents a comparison among unbalanced binary trees,
-AVL trees, and red-black trees. In the table, N is the number of nodes
-in the tree and H is the tree's height before the operation. "lg" is
-the base-2 logarithm function.
-
-Operation
- Binary Tree AVL Tree Red-Black Tree
-Time per insertion or deletion
- O(H) O(lg N) O(lg N)
-Time for insertion of K nodes having sequential values
- O(K^2) O(N lg N) O(N lg N)
-Time for insertion of K nodes having random values
- O(N lg N) O(N lg N) O(N lg N)
-Maximum number of rotations per insertion
- 0 1 lg N
-Maximum number of rotations per deletion
- 0 lg N lg N
-Maximum H as a function of N
- N 1.44 lg (N + 2) - .328 2 lg (N + 1)
-Minimum N as a function of H
- H 2^((H + .328) / 1.44) - 2 2^(H / 2) - 1
-
- There are alternatives to AVL trees that share some of their
-properties. For instance, skip lists, 2-3 trees, and splay trees all
-allow O(log(n)) insertion and deletion. The main disadvantage of these
-methods is that their operations are not as well documented in the
-literature.
-
-
-File: avl.info, Node: Introduction to threaded trees, Next: Types, Prev: Introduction to balanced binary trees, Up: Top
-
-Introduction to threaded trees
-******************************
-
- "Threading" is a clever method that simplifies binary tree traversal.
-
- Nodes in a unthreaded binary tree that have zero or one subnodes have
-two or one null subnode pointers, respectively. In a threaded binary
-tree, a left child pointer that would otherwise be null is used to point
-to the node's inorder(1) predecessor, and in a null right child pointer
-points to its inorder successor.
-
- In a threaded tree, it is always possible to find the next node and
-the previous node of a node, given only a pointer to the node in
-question. In an unthreaded tree, it's also necessary to have a list of
-the nodes between the node in question and root of the tree.
-
- Advantages of a threaded tree compared to an unthreaded one include:
-
- * Faster traversal and less memory usage during traversal, since no
- stack need be maintained.
-
- * Greater generality, since one can go from a node to its successor
- or predecessor given only the node, simplifying algorithms that
- require moving forward and backward in a tree.
-
- Some disadvantages of threaded trees are:
-
- * Slower insertion and deletion, since threads need to be
- maintained. In somes cases, this can be alleviated by
- constructing the tree as an unthreaded tree, then threading it
- with a special libavl function.
-
- * In theory, threaded trees need two extra bits per node to indicate
- whether each child pointer points to an ordinary node or the node's
- successor/predecessor node. In libavl, however, these bits are
- stored in a byte that is used for structure alignment padding in
- unthreaded binary trees, so no extra storage is used.
-
- A "right-threaded binary tree" is similar to a threaded binary tree,
-but threads are only maintained on the right side of each node. This
-allows for traversal to the right (toward larger values) but not to the
-left (toward smaller values). Right-threaded trees are convenient when
-the properties of a threaded tree are desirable, but traversal in
-reverse sort order is not necessary. Not threading the left links saves
-time in insertions and deletions.
-
- Left-threaded binary trees also exist, but they are not implemented
-by libavl. The same effect can be obtained by sorting the tree in the
-opposite order.
-
- ---------- Footnotes ----------
-
- (1) In tree traversal, "inorder" refers to visiting the nodes in
-their sorted order from smallest to largest.
-
-
-File: avl.info, Node: Types, Next: Functions, Prev: Introduction to threaded trees, Up: Top
-
-Types
-*****
-
- The following types are defined and used by libavl:
-
- - Data Type: avl_tree
- - Data Type: avlt_tree
- - Data Type: avltr_tree
- - Data Type: rb_tree
- These are the data types used to represent a tree. Although they
- are defined in the libavl header files, it should never be
- necessary to access them directly. Instead, all accesses should
- take place through libavl functions.
-
- - Data Type: avl_node
- - Data Type: avlt_node
- - Data Type: avltr_node
- - Data Type: rb_node
- These are the data types used to represent individual nodes in a
- tree. Similar cautions apply as with `avl_tree' structures.
-
- - Data Type: avl_traverser
- - Data Type: avlt_traverser
- - Data Type: avltr_traverser
- - Data Type: rb_traverser
- These are the data types used by the `avl_traverse' family of
- functions to iterate across the tree. Again, these are opaque
- structures.
-
- - Data Type: avl_comparison_func
- Every tree must have an ordering defined by a function of this
- type. It must have the following signature:
-
- int COMPARE (const void *A, const void *B, void *PARAM)
-
- The return value is expected to be like that returned by `strcmp'
- in the standard C library: negative if A < B, zero if A = B,
- positive if A > B. PARAM is an arbitrary value defined by the
- user when the tree was created.
-
- - Data Type: avl_node_func
- This is a class of function called to perform an operation on a
- data item. Functions of this type have the following signature:
-
- void OPERATE (void *DATA, void *PARAM)
-
- DATA is the data item and PARAM is an arbitrary user-defined value
- set when the tree was created.
-
- - Data Type: avl_copy_func
- This is a class of function called to make a new copy of a node's
- data. Functions of this type have the following signature:
-
- void *COPY (void *DATA, void *PARAM)
-
- The function should return a new copy of DATA. PARAM is an
- arbitrary user-defined value set when the tree was created.
-
- - Macro: AVL_MAX_HEIGHT
- This macro defines the maximum height of an AVL tree that can be
- handled by functions that maintain a stack of nodes descended.
- The default value is 32, which allows for AVL trees with a maximum
- number of nodes between 5,704,880 and 4,294,967,295, depending on
- order of insertion. This macro may be defined by the user before
- including any AVL tree header file, in which case libavl will
- honor that value.
-
- - Macro: RB_MAX_HEIGHT
- This macro defines the maximum height of an AVL tree that can be
- handled by functions that maintain a stack of nodes descended.
- The default value is 32, which allows for red-black trees with a
- maximum number of nodes of at least 65535. This macro may be
- defined by the user before including the red-black tree header
- file, in which case libavl will honor that value.
-
-
-File: avl.info, Node: Functions, Next: Tree Creation, Prev: Types, Up: Top
-
-Functions
-*********
-
- libavl is four libraries in one:
-
- * An unthreaded AVL tree library.
-
- * A threaded AVL tree library.
-
- * A right-threaded AVL tree library.
-
- * A red-black tree library.
-
- Identifiers in these libraries are prefixed by `avl_', `avlt_',
-`avltr_', and `rb_', with corresponding header files `avl.h', `avlt.h',
-`avltr.h', and `rb.h', respectively. The functions that they declare
-are defined in the `.c' files with the same names.
-
- Most tree functions are implemented in all three libraries, but
-threading allows more generality of operation. So, the threaded and
-right-threaded libraries offer a few additional functions for finding
-the next or previous node from a given node. In addition, they offer
-functions for converting trees from threaded or right-threaded
-representations to unthreaded, and vice versa.(1)
-
- ---------- Footnotes ----------
-
- (1) In general, you should build the sort of tree that you need to
-use, but occasionally it is useful to convert between tree types.
-
-
-File: avl.info, Node: Tree Creation, Next: Insertion, Prev: Functions, Up: Top
-
-Tree Creation
-*************
-
- These functions deal with creation and destruction of AVL trees.
-
- - Function: avl_tree * avl_create (avl_comparison_func COMPARE, void
- *PARAM)
- - Function: avlt_tree * avlt_create (avlt_comparison_func COMPARE,
- void *PARAM)
- - Function: avltr_tree * avltr_create (avltr_comparison_func COMPARE,
- void *PARAM)
- - Function: rb_tree * rb_create (avl_comparison_func COMPARE, void
- *PARAM)
- Create a new, empty tree with comparison function COMPARE.
- Arbitrary user data PARAM is saved so that it can be passed to
- user callback functions.
-
- - Function: void avl_destroy (avl_tree *TREE, avl_node_func FREE)
- - Function: void avlt_destroy (avlt_tree *TREE, avl_node_func FREE)
- - Function: void avltr_destroy (avltr_tree *TREE, avl_node_func FREE)
- - Function: void rb_destroy (rb_tree *TREE, avl_node_func FREE)
- Destroys TREE, releasing all of its storage. If FREE is non-null,
- then it is called for every node in postorder before that node is
- freed.
-
- - Function: void avl_free (avl_tree *TREE)
- - Function: void avlt_free (avlt_tree *TREE)
- - Function: void avltr_free (avltr_tree *TREE)
- - Function: void rb_free (rb_tree *TREE)
- Destroys TREE, releasing all of its storage. The data in each
- node is freed with a call to the standard C library function
- `free'.
-
- - Function: avl_tree * avl_copy (const avl_tree *TREE, avl_copy_func
- COPY)
- - Function: avlt_tree * avl_copy (const avlt_tree *TREE, avl_copy_func
- COPY)
- - Function: avltr_tree * avl_copy (const avltr_tree *TREE,
- avl_copy_func COPY)
- - Function: rb_tree * rb_copy (const rb_tree *TREE, avl_copy_func COPY)
- Copies the contents of TREE into a new tree, and returns the new
- tree. If COPY is non-null, then it is called to make a new copy
- of each node's data; otherwise, the node data is copied verbatim
- into the new tree.
-
- - Function: int avl_count (const avl_tree *TREE)
- - Function: int avlt_count (const avlt_tree *TREE)
- - Function: int avltr_count (const avltr_tree *TREE)
- - Function: int rb_count (const rb_tree *TREE)
- Returns the number of nodes in TREE.
-
- - Function: void * xmalloc (size_t SIZE)
- This is not a function defined by libavl. Instead, it is a
- function that the user program can define. It must allocate SIZE
- bytes using `malloc' and return it. It can handle out-of-memory
- errors however it chooses, but it may not ever return a null
- pointer.
-
- If there is an `xmalloc' function defined for use by libavl, the
- source files (`avl.c', `avlt.c', `avltr.c', `rb.c') must be
- compiled with `HAVE_XMALLOC' defined. Otherwise, the library will
- use its internal static `xmalloc', which handles out-of-memory
- errors by printing a message `virtual memory exhausted' to stderr
- and terminating the program with exit code `EXIT_FAILURE'.
-
-
-File: avl.info, Node: Insertion, Next: Searching, Prev: Tree Creation, Up: Top
-
-Insertion and Deletion
-**********************
-
- These function insert nodes, delete nodes, and search for nodes in
-trees.
-
- - Function: void ** avl_probe (avl_tree *TREE, void *DATA)
- - Function: void ** avlt_probe (avlt_tree *TREE, void *DATA)
- - Function: void ** avltr_probe (avltr_tree *TREE, void *DATA)
- - Function: void ** rb_probe (rb_tree *TREE, void *DATA)
- These are the workhorse functions for tree insertion. They search
- TREE for a node with data matching DATA. If found, a pointer to
- the matching data is returned. Otherwise, a new node is created
- for DATA, and a pointer to that data is returned. In either case,
- the pointer returned can be changed by the user, but the key data
- used by the tree's comparison must not be changed(1).
-
- It is usually easier to use one of the `avl_insert' or
- `avl_replace' functions instead of `avl_probe' directly.
-
- *Please note:* It's not a particularly good idea to insert a null
- pointer as a data item into a tree, because several libavl
- functions return a null pointer to indicate failure. You can
- sometimes avoid a problem by using functions that return a pointer
- to a pointer instead of a plain pointer. Also be wary of this
- when casting an arithmetic type to a void pointer for
- insertion--on typical architectures, 0's become null pointers when
- this is done.
-
- - Function: void * avl_insert (avl_tree *TREE, void *DATA)
- - Function: void * avlt_insert (avlt_tree *TREE, void *DATA)
- - Function: void * avltr_insert (avltr_tree *TREE, void *DATA)
- - Function: void * rb_insert (rb_tree *TREE, void *DATA)
- If a node with data matching DATA exists in TREE, returns the
- matching data item. Otherwise, inserts DATA into TREE and returns
- a null pointer.
-
- - Function: void avl_force_insert (avl_tree *TREE, void *DATA)
- - Function: void avlt_force_insert (avlt_tree *TREE, void *DATA)
- - Function: void avltr_force_insert (avltr_tree *TREE, void *DATA)
- - Function: void rb_force_insert (rb_tree *TREE, void *DATA)
- Inserts DATA into TREE. If a node with data matching DATA exists
- in TREE, aborts the program with an assertion violation. This
- function is implemented as a macro; if it is used, the standard C
- header `assert.h' must also be included. If macro `NDEBUG' is
- defined when a libavl header is included, these functions are
- short-circuited to a direct call to `avl_insert', and no check is
- performed.
-
- - Function: void * avl_replace (avl_tree *TREE, void *DATA)
- - Function: void * avlt_replace (avlt_tree *TREE, void *DATA)
- - Function: void * avltr_replace (avltr_tree *TREE, void *DATA)
- - Function: void * rb_replace (rb_tree *TREE, void *DATA)
- If a node with data matching DATA, such that the comparison
- function returns 0, exists in TREE, replaces the node's data with
- DATA and returns the node's former contents. Otherwise, inserts
- DATA into TREE and returns a null pointer.
-
- - Function: void * avl_delete (avl_tree *TREE, const void *DATA)
- - Function: void * avlt_delete (avlt_tree *TREE, const void *DATA)
- - Function: void * avltr_delete (avltr_tree *TREE, const void *DATA)
- - Function: void * rb_delete (rb_tree *TREE, const void *DATA)
- Searches TREE for a node with data matching DATA. If found, the
- node is deleted and its data is returned. Otherwise, returns a
- null pointer.
-
- - Function: void * avl_force_delete (avl_tree *TREE, const void *DATA)
- - Function: void * avlt_force_delete (avlt_tree *TREE, const void
- *DATA)
- - Function: void * avltr_force_delete (avltr_tree *TREE, const void
- *DATA)
- - Function: void * rb_force_delete (rb_tree *TREE, const void *DATA)
- Deletes a node with data matching DATA from TREE. If no matching
- node is found, aborts the program with an assertion violation. If
- macro `NDEBUG' is declared when a libavl header is included, these
- functions are short-circuited to a direct call to `avl_delete',
- and no check is performed.
-
- ---------- Footnotes ----------
-
- (1) It can be changed if this would not change the ordering of the
-nodes in the tree; i.e., if this would not cause the data in the node
-to be less than or equal to the previous node's data or greater than or
-equal to the next node's data.
-
-
-File: avl.info, Node: Searching, Next: Iteration, Prev: Insertion, Up: Top
-
-Searching
-*********
-
- These function search a tree for an item without making an insertion
-or a deletion.
-
- - Function: void * avl_find (avl_tree *TREE, const void *DATA)
- - Function: void ** avlt_find (avlt_tree *TREE, const void *DATA)
- - Function: void ** avltr_find (avltr_tree *TREE, const void *DATA)
- - Function: void * rb_find (rb_tree *TREE, const void *DATA)
- Searches TREE for a node with data matching DATA, If found,
- returns the node's data (for threaded and right-threaded trees, a
- pointer to the node's data). Otherwise, returns a null pointer.
-
- - Function: void * avl_find_close (avl_tree *TREE, const void *DATA)
- - Function: void ** avlt_find_close (avlt_tree *TREE, const void *DATA)
- - Function: void ** avltr_find_close (avltr_tree *TREE, const void
- *DATA)
- - Function: void * rb_find_close (rb_tree *TREE, const void *DATA)
- Searches TREE for a node with data matching DATA. If found,
- returns the node's data (for threaded and right-threaded trees, a
- pointer to the node's data). If no matching item is found, then it
- finds a node whose data is "close" to DATA; either the node
- closest in value to DATA, or the node either before or after the
- node with the closest value. Returns a null pointer if the tree
- does not contain any nodes.
-
-
-File: avl.info, Node: Iteration, Next: Conversion, Prev: Searching, Up: Top
-
-Iteration
-*********
-
- These functions allow the caller to iterate across the items in a
-tree.
-
- - Function: void avl_walk (const avl_tree *TREE, avl_node_func
- OPERATE, void *PARAM)
- - Function: void avlt_walk (const avlt_tree *TREE, avl_node_func
- OPERATE, void *PARAM)
- - Function: void avltr_walk (const avltr_tree *TREE, avl_node_func
- OPERATE, void *PARAM)
- - Function: void rb_walk (const rb_tree *TREE, avl_node_func OPERATE,
- void *PARAM)
- Walks through all the nodes in TREE, and calls function OPERATE
- for each node in inorder. PARAM overrides the value passed to
- `avl_create' (and family) for this operation only. OPERATE must
- not change the key data in the nodes in a way that would reorder
- the data values or cause two values to become equal.
-
- - Function: void * avl_traverse (const avl_tree *TREE, avl_traverser
- *TRAV)
- - Function: void * avlt_traverse (const avlt_tree *TREE,
- avlt_traverser *TRAV)
- - Function: void * avltr_traverse (const avltr_tree *TREE,
- avltr_traverser *TRAV)
- - Function: void * rb_traverse (const rb_tree *TREE, rb_traverser
- *TRAV)
- Returns each of TREE's nodes' data values in sequence, then a null
- pointer to indicate the last item. TRAV must be initialized
- before the first call, either in a declaration like that below, or
- using one of the functions below.
-
- avl_traverser trav = AVL_TRAVERSER_INIT;
-
- Each `avl_traverser' (and family) is a separate, independent
- iterator.
-
- For threaded and right-threaded trees, `avlt_next' or
- `avltr_next', respectively, are faster and more memory-efficient
- than `avlt_traverse' or `avltr_traverse'.
-
- - Function: void * avl_init_traverser (avl_traverser *TRAV)
- - Function: void * avlt_init_traverser (avlt_traverser *TRAV)
- - Function: void * avltr_init_traverser (avltr_traverser *TRAV)
- - Function: void * rb_init_traverser (rb_traverser *TRAV)
- Initializes the specified tree traverser structure. After this
- function is called, the next call to the corresponding
- `*_traverse' function will return the smallest value in the
- appropriate tree.
-
- - Function: void ** avlt_next (const avlt_tree *TREE, void **DATA)
- - Function: void ** avltr_next (const avltr_tree *TREE, void **DATA)
- DATA must be a null pointer or a pointer to a data item in AVL
- tree TREE. Returns a pointer to the next data item after DATA in
- TREE in inorder (this is the first item if DATA is a null
- pointer), or a null pointer if DATA was the last item in TREE.
-
- - Function: void ** avltr_prev (const avltr_tree *TREE, void **DATA)
- DATA must be a null pointer or a pointer to a data item in AVL
- tree TREE. Returns a pointer to the previous data item before
- DATA in TREE in inorder (this is the last, or greatest valued,
- item if DATA is a null pointer), or a null pointer if DATA was the
- first item in TREE.
-
-
-File: avl.info, Node: Conversion, Next: Author, Prev: Iteration, Up: Top
-
-Conversion
-**********
-
- - Function: avlt_tree * avlt_thread (avl_tree *TREE)
- - Function: avltr_tree * avltr_thread (avl_tree *TREE)
- Adds symmetric threads or right threads, respectively, to
- unthreaded AVL tree TREE and returns a pointer to TREE cast to the
- appropriate type. After one of these functions is called,
- threaded or right-threaded functions, as appropriate, must be used
- with TREE; unthreaded functions may not be used.
-
- - Function: avl_tree * avlt_unthread (avlt_tree *TREE)
- - Function: avl_tree * avltr_unthread (avltr_tree *TREE)
- Cuts all threads in threaded or right-threaded, respectively, AVL
- tree TREE and returns a pointer to TREE cast to `avl_tree *'.
- After one of these functions is called, unthreaded functions must
- be used with TREE; threaded or right-threaded functions may not be
- used.
-
-
-File: avl.info, Node: Author, Next: Index, Prev: Conversion, Up: Top
-
-Author
-******
-
- libavl was written by Ben Pfaff <blp@gnu.org>.
-
- libavl's generic tree algorithms and AVL algorithms are based on
-those found in Donald Knuth's venerable `Art of Computer Programming'
-series from Addison-Wesley, primarily Volumes 1 and 3. libavl's
-red-black tree algorithms are based on those found in Cormen et al.,
-`Introduction to Algorithms', 2nd ed., from MIT Press.
-
-
-File: avl.info, Node: Index, Prev: Author, Up: Top
-
-Index
-*****
-
-* Menu:
-
-* `Art of Computer Programming': Author.
-* Adel'son-Velskii, G. M.: Introduction to balanced binary trees.
-* author: Author.
-* AVL tree: Introduction to balanced binary trees.
-* avl_comparison_func: Types.
-* avl_copy: Tree Creation.
-* avl_copy_func: Types.
-* avl_count: Tree Creation.
-* avl_create: Tree Creation.
-* avl_delete: Insertion.
-* avl_destroy: Tree Creation.
-* avl_find: Searching.
-* avl_find_close: Searching.
-* avl_force_delete: Insertion.
-* avl_force_insert: Insertion.
-* avl_free: Tree Creation.
-* avl_init_traverser: Iteration.
-* avl_insert: Insertion.
-* AVL_MAX_HEIGHT: Types.
-* avl_node: Types.
-* avl_node_func: Types.
-* avl_probe: Insertion.
-* avl_replace: Insertion.
-* avl_traverse: Iteration.
-* avl_traverser: Types.
-* avl_tree: Types.
-* avl_walk: Iteration.
-* avlt_count: Tree Creation.
-* avlt_create: Tree Creation.
-* avlt_delete: Insertion.
-* avlt_destroy: Tree Creation.
-* avlt_find: Searching.
-* avlt_find_close: Searching.
-* avlt_force_delete: Insertion.
-* avlt_force_insert: Insertion.
-* avlt_free: Tree Creation.
-* avlt_init_traverser: Iteration.
-* avlt_insert: Insertion.
-* avlt_next: Iteration.
-* avlt_node: Types.
-* avlt_probe: Insertion.
-* avlt_replace: Insertion.
-* avlt_thread: Conversion.
-* avlt_traverse: Iteration.
-* avlt_traverser: Types.
-* avlt_tree: Types.
-* avlt_unthread: Conversion.
-* avlt_walk: Iteration.
-* avltr_count: Tree Creation.
-* avltr_create: Tree Creation.
-* avltr_delete: Insertion.
-* avltr_destroy: Tree Creation.
-* avltr_find: Searching.
-* avltr_find_close: Searching.
-* avltr_force_delete: Insertion.
-* avltr_force_insert: Insertion.
-* avltr_free: Tree Creation.
-* avltr_init_traverser: Iteration.
-* avltr_insert: Insertion.
-* avltr_next: Iteration.
-* avltr_node: Types.
-* avltr_prev: Iteration.
-* avltr_probe: Insertion.
-* avltr_replace: Insertion.
-* avltr_thread: Conversion.
-* avltr_traverse: Iteration.
-* avltr_traverser: Types.
-* avltr_tree: Types.
-* avltr_unthread: Conversion.
-* avltr_walk: Iteration.
-* binary tree: Introduction to balanced binary trees.
-* hash table: Introduction to balanced binary trees.
-* Knuth, Donald Ervin: Author.
-* Landis, E. M.: Introduction to balanced binary trees.
-* Pfaff, Benjamin Levy: Author.
-* rb_copy: Tree Creation.
-* rb_count: Tree Creation.
-* rb_create: Tree Creation.
-* rb_delete: Insertion.
-* rb_destroy: Tree Creation.
-* rb_find: Searching.
-* rb_find_close: Searching.
-* rb_force_delete: Insertion.
-* rb_force_insert: Insertion.
-* rb_free: Tree Creation.
-* rb_init_traverser: Iteration.
-* rb_insert: Insertion.
-* RB_MAX_HEIGHT: Types.
-* rb_node: Types.
-* rb_probe: Insertion.
-* rb_replace: Insertion.
-* rb_traverse: Iteration.
-* rb_traverser: Types.
-* rb_tree: Types.
-* rb_walk: Iteration.
-* rebalancing: Introduction to balanced binary trees.
-* red-black tree: Introduction to balanced binary trees.
-* right threads: Functions.
-* threads: Functions.
-* unthreaded: Functions.
-* xmalloc: Tree Creation.
-
-
-
-Tag Table:
-Node: Top891
-Node: Introduction to balanced binary trees1340
-Node: Introduction to threaded trees5260
-Ref: Introduction to threaded trees-Footnote-17757
-Node: Types7871
-Node: Functions10904
-Ref: Functions-Footnote-111877
-Node: Tree Creation12014
-Node: Insertion15035
-Ref: Insertion-Footnote-119214
-Node: Searching19458
-Node: Iteration20863
-Node: Conversion23929
-Node: Author24875
-Node: Index25345
-
-End Tag Table
diff --git a/avl-1.4.0/avl.texinfo b/avl-1.4.0/avl.texinfo
deleted file mode 100644
index 9d06324..0000000
--- a/avl-1.4.0/avl.texinfo
+++ /dev/null
@@ -1,679 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename avl.info
-@settitle libavl manual
-@setchapternewpage on
-@c %**end of header
-
-@syncodeindex vr cp
-@syncodeindex fn cp
-@syncodeindex tp cp
-
-@ifinfo
-This file documents libavl, a library for the manipulation of balanced
-binary trees.
-
-Copyright 1998, 1999 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation
-approved by the Free Software Foundation.
-@end ifinfo
-
-@titlepage
-@title libavl
-@subtitle A library for manipulation of balanced binary trees
-@author Ben Pfaff
-
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1998, 1999 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation
-approved by the Free Software Foundation.
-@end titlepage
-
-@node Top, Introduction to balanced binary trees, (dir), (dir)
-
-@ifinfo
-This document describes libavl, a library for manipulation of balanced
-binary trees.
-
-This document applies to libavl version 1.4.0.
-@end ifinfo
-
-@menu
-* Introduction to balanced binary trees::
-* Introduction to threaded trees::
-* Types::
-* Functions::
-* Tree Creation::
-* Insertion::
-* Searching::
-* Iteration::
-* Conversion::
-* Author::
-* Index::
-@end menu
-
-@node Introduction to balanced binary trees, Introduction to threaded trees, Top, Top
-@chapter Introduction to balanced binary trees
-
-@cindex hash table
-Consider some techniques that can be used to find a particular item in a
-data set. Typical methods include sequential searching, digital
-searching, hash tables, and binary searching.
-
-Sequential searching is simple, but slow (O(n)). Digital searching
-requires that the entire data set be known in advance, and memory
-efficient implementations are slow.
-
-Hash tables are fast (O(1)) for static data sets, but they can be
-wasteful of memory. It can be difficult to choose an effective hash
-function. Some hash tables variants also make deletion an expensive
-operation.
-
-@cindex binary tree
-Binary search techniques work almost as quickly (O(log(n)) on an ordered
-table, or on a binary tree. Binary trees also allow easy iteration over
-the data in the tree in sorted order. With hash tables it is necessary
-to sort the data before iterating, and after sorting the data is no
-longer in hash form.
-
-Binary trees are efficient for insertion, deletion, and searching, if
-data are inserted in random order. But, if data are inserted in order
-using a naive algorithm, binary search degenerates to sequential search.
-
-@cindex red-black tree
-@cindex AVL tree
-@cindex rebalancing
-In turn, this problem can be solved by @dfn{rebalancing} the tree after
-each insertion or deletion. In rebalancing, nodes are rearranged via
-transformations called @dfn{rotations} using an algorithm that tends to
-minimize the tree's height.
-
-There are several schemes for rebalancing binary trees. The two most
-common types of balanced tree are @dfn{AVL trees} and @dfn{red-black
-trees}. libavl implements both types:
-
-@itemize @bullet
-@item
-@cindex Landis, E. M.
-@cindex Adel'son-Velskii, G. M.
-AVL trees, invented by Russian mathematicians G. M. Adel'son-Velskii and
-E. M. Landis, ensure that, for each node, the difference in height
-between its subtrees (the @dfn{balance factor}) is not greater than 1.
-
-@item
-Red-black trees, invented by R. Bayer and studied at length by
-L. J. Guibas and R. Sedgewick, assign each node of a tree a color (red
-or black), and specify a set of rules governing how red and black nodes
-may be arranged.
-@end itemize
-
-The table below presents a comparison among unbalanced binary trees, AVL
-trees, and red-black trees. In the table, @var{n} is the number of
-nodes in the tree and @var{h} is the tree's height before the
-operation. @dfn{lg} is the base-2 logarithm function.
-
-@multitable @columnfractions .05 .30 .35 .30
-
-@need 333
-@item @w{Operation}
-@item
-@tab Binary Tree
-@tab AVL Tree
-@tab Red-Black Tree
-
-@need 333
-@item @w{Time per insertion or deletion}
-@item
-@tab O(@var{h})
-@tab O(lg @var{n})
-@tab O(lg @var{n})
-
-@need 333
-@item @w{Time for insertion of @var{k} nodes having sequential values}
-@item
-@tab O(@math{@var{k}^2})
-@tab O(@var{n} lg @var{n})
-@tab O(@var{n} lg @var{n})
-
-@need 333
-@item @w{Time for insertion of @var{k} nodes having random values}
-@item
-@tab O(@var{n} lg @var{n})
-@tab O(@var{n} lg @var{n})
-@tab O(@var{n} lg @var{n})
-
-@need 333
-@item @w{Maximum number of rotations per insertion}
-@item
-@tab 0
-@tab 1
-@tab lg @var{n}
-
-@need 333
-@item @w{Maximum number of rotations per deletion}
-@item
-@tab 0
-@tab lg @var{n}
-@tab lg @var{n}
-
-@need 333
-@item @w{Maximum @var{h} as a function of @var{n}}
-@item
-@tab @var{n}
-@tab 1.44 lg (@var{n} + 2) - .328
-@tab 2 lg (@var{n} + 1)
-
-@need 333
-@item @w{Minimum @var{n} as a function of @var{h}}
-@item
-@tab @var{h}
-@tab 2^((@var{h} + .328) / 1.44) - 2
-@tab 2^(@var{h} / 2) - 1
-@end multitable
-
-There are alternatives to AVL trees that share some of their properties.
-For instance, skip lists, 2-3 trees, and splay trees all allow O(log(n))
-insertion and deletion. The main disadvantage of these methods is that
-their operations are not as well documented in the literature.
-
-@node Introduction to threaded trees, Types, Introduction to balanced binary trees, Top
-@chapter Introduction to threaded trees
-
-@dfn{Threading} is a clever method that simplifies binary tree
-traversal.
-
-Nodes in a unthreaded binary tree that have zero or one subnodes have
-two or one null subnode pointers, respectively. In a threaded binary
-tree, a left child pointer that would otherwise be null is used to point
-to the node's inorder@footnote{In tree traversal, @dfn{inorder} refers
-to visiting the nodes in their sorted order from smallest to largest.}
-predecessor, and in a null right child pointer points to its inorder
-successor.
-
-In a threaded tree, it is always possible to find the next node and the
-previous node of a node, given only a pointer to the node in question.
-In an unthreaded tree, it's also necessary to have a list of the nodes
-between the node in question and root of the tree.
-
-Advantages of a threaded tree compared to an unthreaded one include:
-
-@itemize @bullet
-@item
-Faster traversal and less memory usage during traversal, since no stack
-need be maintained.
-
-@item
-Greater generality, since one can go from a node to its successor or
-predecessor given only the node, simplifying algorithms that require
-moving forward and backward in a tree.
-@end itemize
-
-Some disadvantages of threaded trees are:
-
-@itemize @bullet
-@item
-Slower insertion and deletion, since threads need to be maintained. In
-somes cases, this can be alleviated by constructing the tree as an
-unthreaded tree, then threading it with a special libavl function.
-
-@item
-In theory, threaded trees need two extra bits per node to indicate
-whether each child pointer points to an ordinary node or the node's
-successor/predecessor node. In libavl, however, these bits are stored
-in a byte that is used for structure alignment padding in unthreaded
-binary trees, so no extra storage is used.
-@end itemize
-
-A @dfn{right-threaded binary tree} is similar to a threaded binary tree,
-but threads are only maintained on the right side of each node. This
-allows for traversal to the right (toward larger values) but not to the
-left (toward smaller values). Right-threaded trees are convenient when
-the properties of a threaded tree are desirable, but traversal in
-reverse sort order is not necessary. Not threading the left links saves
-time in insertions and deletions.
-
-Left-threaded binary trees also exist, but they are not implemented by
-libavl. The same effect can be obtained by sorting the tree in the
-opposite order.
-
-@node Types, Functions, Introduction to threaded trees, Top
-@chapter Types
-
-The following types are defined and used by libavl:
-
-@deftp {Data Type} avl_tree
-@deftpx {Data Type} avlt_tree
-@deftpx {Data Type} avltr_tree
-@deftpx {Data Type} rb_tree
-These are the data types used to represent a tree. Although they are
-defined in the libavl header files, it should never be necessary to
-access them directly. Instead, all accesses should take place through
-libavl functions.
-@end deftp
-
-@deftp {Data Type} avl_node
-@deftpx {Data Type} avlt_node
-@deftpx {Data Type} avltr_node
-@deftpx {Data Type} rb_node
-These are the data types used to represent individual nodes in a tree.
-Similar cautions apply as with @code{avl_tree} structures.
-@end deftp
-
-@deftp {Data Type} avl_traverser
-@deftpx {Data Type} avlt_traverser
-@deftpx {Data Type} avltr_traverser
-@deftpx {Data Type} rb_traverser
-These are the data types used by the @code{avl_traverse} family of
-functions to iterate across the tree. Again, these are opaque
-structures.
-@end deftp
-
-@deftp {Data Type} avl_comparison_func
-Every tree must have an ordering defined by a function of this type. It
-must have the following signature:
-
-@smallexample
-int @var{compare} (const void *@var{a}, const void *@var{b}, void *@var{param})
-@end smallexample
-
-The return value is expected to be like that returned by @code{strcmp}
-in the standard C library: negative if @var{a} < @var{b}, zero if
-@var{a} = @var{b}, positive if @var{a} > @var{b}. @var{param} is an
-arbitrary value defined by the user when the tree was created.
-@end deftp
-
-@deftp {Data Type} avl_node_func
-This is a class of function called to perform an operation on a data
-item. Functions of this type have the following signature:
-
-@smallexample
-void @var{operate} (void *@var{data}, void *@var{param})
-@end smallexample
-
-@var{data} is the data item and @var{param} is an arbitrary user-defined
-value set when the tree was created.
-@end deftp
-
-@deftp {Data Type} avl_copy_func
-
-This is a class of function called to make a new copy of a node's data.
-Functions of this type have the following signature:
-
-@smallexample
-void *@var{copy} (void *@var{data}, void *@var{param})
-@end smallexample
-
-The function should return a new copy of @var{data}. @var{param} is an
-arbitrary user-defined value set when the tree was created.
-@end deftp
-
-@defmac AVL_MAX_HEIGHT
-This macro defines the maximum height of an AVL tree that can be handled
-by functions that maintain a stack of nodes descended. The default
-value is 32, which allows for AVL trees with a maximum number of nodes
-between 5,704,880 and 4,294,967,295, depending on order of insertion.
-This macro may be defined by the user before including any AVL tree
-header file, in which case libavl will honor that value.
-@end defmac
-
-@defmac RB_MAX_HEIGHT
-This macro defines the maximum height of an AVL tree that can be handled
-by functions that maintain a stack of nodes descended. The default
-value is 32, which allows for red-black trees with a maximum number of
-nodes of at least 65535. This macro may be defined by the user before
-including the red-black tree header file, in which case libavl will
-honor that value.
-@end defmac
-
-@node Functions, Tree Creation, Types, Top
-@chapter Functions
-
-@cindex unthreaded
-@cindex threads
-@cindex right threads
-libavl is four libraries in one:
-
-@itemize @bullet
-@item
-An unthreaded AVL tree library.
-
-@item
-A threaded AVL tree library.
-
-@item
-A right-threaded AVL tree library.
-
-@item
-A red-black tree library.
-@end itemize
-
-Identifiers in these libraries are prefixed by @code{avl_},
-@code{avlt_}, @code{avltr_}, and @code{rb_}, with corresponding header
-files @file{avl.h}, @file{avlt.h}, @file{avltr.h}, and @file{rb.h},
-respectively. The functions that they declare are defined in the
-@file{.c} files with the same names.
-
-Most tree functions are implemented in all three libraries, but
-threading allows more generality of operation. So, the threaded and
-right-threaded libraries offer a few additional functions for finding
-the next or previous node from a given node. In addition, they offer
-functions for converting trees from threaded or right-threaded
-representations to unthreaded, and vice versa.@footnote{In general, you
-should build the sort of tree that you need to use, but occasionally it
-is useful to convert between tree types.}
-
-@node Tree Creation, Insertion, Functions, Top
-@chapter Tree Creation
-
-These functions deal with creation and destruction of AVL trees.
-
-@deftypefun {avl_tree *} avl_create (avl_comparison_func @var{compare}, void *@var{param})
-@deftypefunx {avlt_tree *} avlt_create (avlt_comparison_func @var{compare}, void *@var{param})
-@deftypefunx {avltr_tree *} avltr_create (avltr_comparison_func @var{compare}, void *@var{param})
-@deftypefunx {rb_tree *} rb_create (avl_comparison_func @var{compare}, void *@var{param})
-Create a new, empty tree with comparison function @var{compare}.
-Arbitrary user data @var{param} is saved so that it can be passed to
-user callback functions.
-@end deftypefun
-
-@deftypefun {void} avl_destroy (avl_tree *@var{tree}, avl_node_func @var{free})
-@deftypefunx {void} avlt_destroy (avlt_tree *@var{tree}, avl_node_func @var{free})
-@deftypefunx {void} avltr_destroy (avltr_tree *@var{tree}, avl_node_func @var{free})
-@deftypefunx {void} rb_destroy (rb_tree *@var{tree}, avl_node_func @var{free})
-Destroys @var{tree}, releasing all of its storage. If @var{free} is
-non-null, then it is called for every node in postorder before that node
-is freed.
-@end deftypefun
-
-@deftypefun {void} avl_free (avl_tree *@var{tree})
-@deftypefunx {void} avlt_free (avlt_tree *@var{tree})
-@deftypefunx {void} avltr_free (avltr_tree *@var{tree})
-@deftypefunx {void} rb_free (rb_tree *@var{tree})
-Destroys @var{tree}, releasing all of its storage. The data in each
-node is freed with a call to the standard C library function
-@code{free}.
-@end deftypefun
-
-@deftypefun {avl_tree *} avl_copy (const avl_tree *@var{tree}, avl_copy_func @var{copy})
-@deftypefunx {avlt_tree *} avl_copy (const avlt_tree *@var{tree}, avl_copy_func @var{copy})
-@deftypefunx {avltr_tree *} avl_copy (const avltr_tree *@var{tree}, avl_copy_func @var{copy})
-@deftypefunx {rb_tree *} rb_copy (const rb_tree *@var{tree}, avl_copy_func @var{copy})
-Copies the contents of @var{tree} into a new tree, and returns the new
-tree. If @var{copy} is non-null, then it is called to make a new copy
-of each node's data; otherwise, the node data is copied verbatim into
-the new tree.
-@end deftypefun
-
-@deftypefun int avl_count (const avl_tree *@var{tree})
-@deftypefunx int avlt_count (const avlt_tree *@var{tree})
-@deftypefunx int avltr_count (const avltr_tree *@var{tree})
-@deftypefunx int rb_count (const rb_tree *@var{tree})
-Returns the number of nodes in @var{tree}.
-@end deftypefun
-
-@deftypefun {void *} xmalloc (size_t @var{size})
-This is not a function defined by libavl. Instead, it is a function
-that the user program can define. It must allocate @var{size} bytes
-using @code{malloc} and return it. It can handle out-of-memory errors
-however it chooses, but it may not ever return a null pointer.
-
-If there is an @code{xmalloc} function defined for use by libavl, the
-source files (@file{avl.c}, @file{avlt.c}, @file{avltr.c}, @file{rb.c})
-must be compiled with @code{HAVE_XMALLOC} defined. Otherwise, the
-library will use its internal static @code{xmalloc}, which handles
-out-of-memory errors by printing a message @samp{virtual memory
-exhausted} to stderr and terminating the program with exit code
-@code{EXIT_FAILURE}.
-@end deftypefun
-
-@node Insertion, Searching, Tree Creation, Top
-@chapter Insertion and Deletion
-
-These function insert nodes, delete nodes, and search for nodes in
-trees.
-
-@deftypefun {void **} avl_probe (avl_tree *@var{tree}, void *@var{data})
-@deftypefunx {void **} avlt_probe (avlt_tree *@var{tree}, void *@var{data})
-@deftypefunx {void **} avltr_probe (avltr_tree *@var{tree}, void *@var{data})
-@deftypefunx {void **} rb_probe (rb_tree *@var{tree}, void *@var{data})
-These are the workhorse functions for tree insertion. They search
-@var{tree} for a node with data matching @var{data}. If found, a
-pointer to the matching data is returned. Otherwise, a new node is
-created for @var{data}, and a pointer to that data is returned. In
-either case, the pointer returned can be changed by the user, but the
-key data used by the tree's comparison must not be changed@footnote{It
-can be changed if this would not change the ordering of the nodes in the
-tree; i.e., if this would not cause the data in the node to be less than
-or equal to the previous node's data or greater than or equal to the
-next node's data.}.
-
-It is usually easier to use one of the @code{avl_insert} or
-@code{avl_replace} functions instead of @code{avl_probe} directly.
-
-@strong{Please note:} It's not a particularly good idea to insert a null
-pointer as a data item into a tree, because several libavl functions
-return a null pointer to indicate failure. You can sometimes avoid a
-problem by using functions that return a pointer to a pointer instead of
-a plain pointer. Also be wary of this when casting an arithmetic type
-to a void pointer for insertion---on typical architectures, 0's become
-null pointers when this is done.
-@end deftypefun
-
-@deftypefun {void *} avl_insert (avl_tree *@var{tree}, void *@var{data})
-@deftypefunx {void *} avlt_insert (avlt_tree *@var{tree}, void *@var{data})
-@deftypefunx {void *} avltr_insert (avltr_tree *@var{tree}, void *@var{data})
-@deftypefunx {void *} rb_insert (rb_tree *@var{tree}, void *@var{data})
-If a node with data matching @var{data} exists in @var{tree}, returns
-the matching data item. Otherwise, inserts @var{data} into @var{tree}
-and returns a null pointer.
-@end deftypefun
-
-@deftypefun void avl_force_insert (avl_tree *@var{tree}, void *@var{data})
-@deftypefunx void avlt_force_insert (avlt_tree *@var{tree}, void *@var{data})
-@deftypefunx void avltr_force_insert (avltr_tree *@var{tree}, void *@var{data})
-@deftypefunx void rb_force_insert (rb_tree *@var{tree}, void *@var{data})
-Inserts @var{data} into @var{tree}. If a node with data matching
-@var{data} exists in @var{tree}, aborts the program with an assertion
-violation. This function is implemented as a macro; if it is used, the
-standard C header @code{assert.h} must also be included. If macro
-@code{NDEBUG} is defined when a libavl header is included, these
-functions are short-circuited to a direct call to @code{avl_insert},
-and no check is performed.
-@end deftypefun
-
-@deftypefun {void *} avl_replace (avl_tree *@var{tree}, void *@var{data})
-@deftypefunx {void *} avlt_replace (avlt_tree *@var{tree}, void *@var{data})
-@deftypefunx {void *} avltr_replace (avltr_tree *@var{tree}, void *@var{data})
-@deftypefunx {void *} rb_replace (rb_tree *@var{tree}, void *@var{data})
-If a node with data matching @var{data}, such that the comparison
-function returns 0, exists in @var{tree}, replaces the node's data with
-@var{data} and returns the node's former contents. Otherwise, inserts
-@var{data} into @var{tree} and returns a null pointer.
-@end deftypefun
-
-@deftypefun {void *} avl_delete (avl_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void *} avlt_delete (avlt_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void *} avltr_delete (avltr_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void *} rb_delete (rb_tree *@var{tree}, const void *@var{data})
-Searches @var{tree} for a node with data matching @var{data}. If found,
-the node is deleted and its data is returned. Otherwise, returns a null
-pointer.
-@end deftypefun
-
-@deftypefun {void *} avl_force_delete (avl_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void *} avlt_force_delete (avlt_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void *} avltr_force_delete (avltr_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void *} rb_force_delete (rb_tree *@var{tree}, const void *@var{data})
-Deletes a node with data matching @var{data} from @var{tree}. If no
-matching node is found, aborts the program with an assertion violation.
-If macro @code{NDEBUG} is declared when a libavl header is included,
-these functions are short-circuited to a direct call to
-@code{avl_delete}, and no check is performed.
-@end deftypefun
-
-@node Searching, Iteration, Insertion, Top
-@chapter Searching
-
-These function search a tree for an item without making an insertion or
-a deletion.
-
-@deftypefun {void *} avl_find (avl_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void **} avlt_find (avlt_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void **} avltr_find (avltr_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void *} rb_find (rb_tree *@var{tree}, const void *@var{data})
-Searches @var{tree} for a node with data matching @var{data}, If found,
-returns the node's data (for threaded and right-threaded trees, a
-pointer to the node's data). Otherwise, returns a null pointer.
-@end deftypefun
-
-@deftypefun {void *} avl_find_close (avl_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void **} avlt_find_close (avlt_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void **} avltr_find_close (avltr_tree *@var{tree}, const void *@var{data})
-@deftypefunx {void *} rb_find_close (rb_tree *@var{tree}, const void *@var{data})
-Searches @var{tree} for a node with data matching @var{data}. If found,
-returns the node's data (for threaded and right-threaded trees, a
-pointer to the node's data). If no matching item is found, then it
-finds a node whose data is ``close'' to @var{data}; either the node
-closest in value to @var{data}, or the node either before or after the
-node with the closest value. Returns a null pointer if the tree does
-not contain any nodes.
-@end deftypefun
-
-@node Iteration, Conversion, Searching, Top
-@chapter Iteration
-
-These functions allow the caller to iterate across the items in a tree.
-
-@deftypefun void avl_walk (const avl_tree *@var{tree}, avl_node_func @var{operate}, void *@var{param})
-@deftypefunx void avlt_walk (const avlt_tree *@var{tree}, avl_node_func @var{operate}, void *@var{param})
-@deftypefunx void avltr_walk (const avltr_tree *@var{tree}, avl_node_func @var{operate}, void *@var{param})
-@deftypefunx void rb_walk (const rb_tree *@var{tree}, avl_node_func @var{operate}, void *@var{param})
-Walks through all the nodes in @var{tree}, and calls function
-@var{operate} for each node in inorder. @var{param} overrides the value
-passed to @code{avl_create} (and family) for this operation only.
-@var{operate} must not change the key data in the nodes in a way that
-would reorder the data values or cause two values to become equal.
-@end deftypefun
-
-@deftypefun {void *} avl_traverse (const avl_tree *@var{tree}, avl_traverser *@var{trav})
-@deftypefunx {void *} avlt_traverse (const avlt_tree *@var{tree}, avlt_traverser *@var{trav})
-@deftypefunx {void *} avltr_traverse (const avltr_tree *@var{tree}, avltr_traverser *@var{trav})
-@deftypefunx {void *} rb_traverse (const rb_tree *@var{tree}, rb_traverser *@var{trav})
-Returns each of @var{tree}'s nodes' data values in sequence, then a null
-pointer to indicate the last item. @var{trav} must be initialized
-before the first call, either in a declaration like that below, or using
-one of the functions below.
-
-@smallexample
-avl_traverser trav = AVL_TRAVERSER_INIT;
-@end smallexample
-
-Each @code{avl_traverser} (and family) is a separate, independent
-iterator.
-
-For threaded and right-threaded trees, @code{avlt_next} or
-@code{avltr_next}, respectively, are faster and more memory-efficient
-than @code{avlt_traverse} or @code{avltr_traverse}.
-@end deftypefun
-
-@deftypefun {void *} avl_init_traverser (avl_traverser *@var{trav})
-@deftypefunx {void *} avlt_init_traverser (avlt_traverser *@var{trav})
-@deftypefunx {void *} avltr_init_traverser (avltr_traverser *@var{trav})
-@deftypefunx {void *} rb_init_traverser (rb_traverser *@var{trav})
-Initializes the specified tree traverser structure. After this function
-is called, the next call to the corresponding @code{*_traverse} function
-will return the smallest value in the appropriate tree.
-@end deftypefun
-
-@deftypefun {void **} avlt_next (const avlt_tree *@var{tree}, void **@var{data})
-@deftypefunx {void **} avltr_next (const avltr_tree *@var{tree}, void **@var{data})
-@var{data} must be a null pointer or a pointer to a data item in AVL
-tree @var{tree}. Returns a pointer to the next data item after
-@var{data} in @var{tree} in inorder (this is the first item if
-@var{data} is a null pointer), or a null pointer if @var{data} was the
-last item in @var{tree}.
-@end deftypefun
-
-@deftypefun {void **} avltr_prev (const avltr_tree *@var{tree}, void **@var{data})
-@var{data} must be a null pointer or a pointer to a data item in AVL
-tree @var{tree}. Returns a pointer to the previous data item before
-@var{data} in @var{tree} in inorder (this is the last, or greatest
-valued, item if @var{data} is a null pointer), or a null pointer if
-@var{data} was the first item in @var{tree}.
-@end deftypefun
-
-@node Conversion, Author, Iteration, Top
-@chapter Conversion
-
-@deftypefun {avlt_tree *} avlt_thread (avl_tree *@var{tree})
-@deftypefunx {avltr_tree *} avltr_thread (avl_tree *@var{tree})
-Adds symmetric threads or right threads, respectively, to unthreaded AVL
-tree @var{tree} and returns a pointer to @var{tree} cast to the
-appropriate type. After one of these functions is called, threaded or
-right-threaded functions, as appropriate, must be used with @var{tree};
-unthreaded functions may not be used.
-@end deftypefun
-
-@deftypefun {avl_tree *} avlt_unthread (avlt_tree *@var{tree})
-@deftypefunx {avl_tree *} avltr_unthread (avltr_tree *@var{tree})
-Cuts all threads in threaded or right-threaded, respectively, AVL tree
-@var{tree} and returns a pointer to @var{tree} cast to @code{avl_tree
-*}. After one of these functions is called, unthreaded functions must
-be used with @var{tree}; threaded or right-threaded functions may not be
-used.
-@end deftypefun
-
-@node Author, Index, Conversion, Top
-@chapter Author
-
-@cindex Pfaff, Benjamin Levy
-@cindex author
-@cindex Knuth, Donald Ervin
-@cindex @cite{Art of Computer Programming}
-libavl was written by Ben Pfaff @email{blp@@gnu.org}.
-
-libavl's generic tree algorithms and AVL algorithms are based on those
-found in Donald Knuth's venerable @cite{Art of Computer Programming}
-series from Addison-Wesley, primarily Volumes 1 and 3. libavl's
-red-black tree algorithms are based on those found in Cormen et al.,
-@cite{Introduction to Algorithms}, 2nd ed., from MIT Press.
-
-@node Index, , Author, Top
-@unnumbered Index
-
-@printindex cp
-
-@contents
-@bye
diff --git a/avl-1.4.0/avl.text b/avl-1.4.0/avl.text
deleted file mode 100644
index 9804050..0000000
--- a/avl-1.4.0/avl.text
+++ /dev/null
@@ -1,636 +0,0 @@
-This file documents libavl, a library for the manipulation of balanced
-binary trees.
-
- Copyright 1998, 1999 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that the
-entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
-
-This document
-describes libavl, a library for manipulation of balanced binary trees.
-
- This document applies to libavl version 1.4.0.
-
-Introduction to balanced binary trees
-*************************************
-
- Consider some techniques that can be used to find a particular item
-in a data set. Typical methods include sequential searching, digital
-searching, hash tables, and binary searching.
-
- Sequential searching is simple, but slow (O(n)). Digital searching
-requires that the entire data set be known in advance, and memory
-efficient implementations are slow.
-
- Hash tables are fast (O(1)) for static data sets, but they can be
-wasteful of memory. It can be difficult to choose an effective hash
-function. Some hash tables variants also make deletion an expensive
-operation.
-
- Binary search techniques work almost as quickly (O(log(n)) on an
-ordered table, or on a binary tree. Binary trees also allow easy
-iteration over the data in the tree in sorted order. With hash tables
-it is necessary to sort the data before iterating, and after sorting
-the data is no longer in hash form.
-
- Binary trees are efficient for insertion, deletion, and searching, if
-data are inserted in random order. But, if data are inserted in order
-using a naive algorithm, binary search degenerates to sequential search.
-
- In turn, this problem can be solved by "rebalancing" the tree after
-each insertion or deletion. In rebalancing, nodes are rearranged via
-transformations called "rotations" using an algorithm that tends to
-minimize the tree's height.
-
- There are several schemes for rebalancing binary trees. The two most
-common types of balanced tree are "AVL trees" and "red-black trees".
-libavl implements both types:
-
- * AVL trees, invented by Russian mathematicians G. M.
- Adel'son-Velskii and E. M. Landis, ensure that, for each node, the
- difference in height between its subtrees (the "balance factor")
- is not greater than 1.
-
- * Red-black trees, invented by R. Bayer and studied at length by L.
- J. Guibas and R. Sedgewick, assign each node of a tree a color (red
- or black), and specify a set of rules governing how red and black
- nodes may be arranged.
-
- The table below presents a comparison among unbalanced binary trees,
-AVL trees, and red-black trees. In the table, N is the number of nodes
-in the tree and H is the tree's height before the operation. "lg" is
-the base-2 logarithm function.
-
-Operation
- Binary Tree AVL Tree Red-Black Tree
-Time per insertion or deletion
- O(H) O(lg N) O(lg N)
-Time for insertion of K nodes having sequential values
- O(K^2) O(N lg N) O(N lg N)
-Time for insertion of K nodes having random values
- O(N lg N) O(N lg N) O(N lg N)
-Maximum number of rotations per insertion
- 0 1 lg N
-Maximum number of rotations per deletion
- 0 lg N lg N
-Maximum H as a function of N
- N 1.44 lg (N + 2) - .328 2 lg (N + 1)
-Minimum N as a function of H
- H 2^((H + .328) / 1.44) - 2 2^(H / 2) - 1
-
- There are alternatives to AVL trees that share some of their
-properties. For instance, skip lists, 2-3 trees, and splay trees all
-allow O(log(n)) insertion and deletion. The main disadvantage of these
-methods is that their operations are not as well documented in the
-literature.
-
-Introduction to threaded trees
-******************************
-
- "Threading" is a clever method that simplifies binary tree traversal.
-
- Nodes in a unthreaded binary tree that have zero or one subnodes have
-two or one null subnode pointers, respectively. In a threaded binary
-tree, a left child pointer that would otherwise be null is used to point
-to the node's inorder(1) predecessor, and in a null right child pointer
-points to its inorder successor.
-
- In a threaded tree, it is always possible to find the next node and
-the previous node of a node, given only a pointer to the node in
-question. In an unthreaded tree, it's also necessary to have a list of
-the nodes between the node in question and root of the tree.
-
- Advantages of a threaded tree compared to an unthreaded one include:
-
- * Faster traversal and less memory usage during traversal, since no
- stack need be maintained.
-
- * Greater generality, since one can go from a node to its successor
- or predecessor given only the node, simplifying algorithms that
- require moving forward and backward in a tree.
-
- Some disadvantages of threaded trees are:
-
- * Slower insertion and deletion, since threads need to be
- maintained. In somes cases, this can be alleviated by
- constructing the tree as an unthreaded tree, then threading it
- with a special libavl function.
-
- * In theory, threaded trees need two extra bits per node to indicate
- whether each child pointer points to an ordinary node or the node's
- successor/predecessor node. In libavl, however, these bits are
- stored in a byte that is used for structure alignment padding in
- unthreaded binary trees, so no extra storage is used.
-
- A "right-threaded binary tree" is similar to a threaded binary tree,
-but threads are only maintained on the right side of each node. This
-allows for traversal to the right (toward larger values) but not to the
-left (toward smaller values). Right-threaded trees are convenient when
-the properties of a threaded tree are desirable, but traversal in
-reverse sort order is not necessary. Not threading the left links saves
-time in insertions and deletions.
-
- Left-threaded binary trees also exist, but they are not implemented
-by libavl. The same effect can be obtained by sorting the tree in the
-opposite order.
-
- ---------- Footnotes ----------
-
- (1) In tree traversal, "inorder" refers to visiting the nodes in
-their sorted order from smallest to largest.
-
-Types
-*****
-
- The following types are defined and used by libavl:
-
- - Data Type: avl_tree
- - Data Type: avlt_tree
- - Data Type: avltr_tree
- - Data Type: rb_tree
- These are the data types used to represent a tree. Although they
- are defined in the libavl header files, it should never be
- necessary to access them directly. Instead, all accesses should
- take place through libavl functions.
-
- - Data Type: avl_node
- - Data Type: avlt_node
- - Data Type: avltr_node
- - Data Type: rb_node
- These are the data types used to represent individual nodes in a
- tree. Similar cautions apply as with `avl_tree' structures.
-
- - Data Type: avl_traverser
- - Data Type: avlt_traverser
- - Data Type: avltr_traverser
- - Data Type: rb_traverser
- These are the data types used by the `avl_traverse' family of
- functions to iterate across the tree. Again, these are opaque
- structures.
-
- - Data Type: avl_comparison_func
- Every tree must have an ordering defined by a function of this
- type. It must have the following signature:
-
- int COMPARE (const void *A, const void *B, void *PARAM)
-
- The return value is expected to be like that returned by `strcmp'
- in the standard C library: negative if A < B, zero if A = B,
- positive if A > B. PARAM is an arbitrary value defined by the
- user when the tree was created.
-
- - Data Type: avl_node_func
- This is a class of function called to perform an operation on a
- data item. Functions of this type have the following signature:
-
- void OPERATE (void *DATA, void *PARAM)
-
- DATA is the data item and PARAM is an arbitrary user-defined value
- set when the tree was created.
-
- - Data Type: avl_copy_func
- This is a class of function called to make a new copy of a node's
- data. Functions of this type have the following signature:
-
- void *COPY (void *DATA, void *PARAM)
-
- The function should return a new copy of DATA. PARAM is an
- arbitrary user-defined value set when the tree was created.
-
- - Macro: AVL_MAX_HEIGHT
- This macro defines the maximum height of an AVL tree that can be
- handled by functions that maintain a stack of nodes descended.
- The default value is 32, which allows for AVL trees with a maximum
- number of nodes between 5,704,880 and 4,294,967,295, depending on
- order of insertion. This macro may be defined by the user before
- including any AVL tree header file, in which case libavl will
- honor that value.
-
- - Macro: RB_MAX_HEIGHT
- This macro defines the maximum height of an AVL tree that can be
- handled by functions that maintain a stack of nodes descended.
- The default value is 32, which allows for red-black trees with a
- maximum number of nodes of at least 65535. This macro may be
- defined by the user before including the red-black tree header
- file, in which case libavl will honor that value.
-
-Functions
-*********
-
- libavl is four libraries in one:
-
- * An unthreaded AVL tree library.
-
- * A threaded AVL tree library.
-
- * A right-threaded AVL tree library.
-
- * A red-black tree library.
-
- Identifiers in these libraries are prefixed by `avl_', `avlt_',
-`avltr_', and `rb_', with corresponding header files `avl.h', `avlt.h',
-`avltr.h', and `rb.h', respectively. The functions that they declare
-are defined in the `.c' files with the same names.
-
- Most tree functions are implemented in all three libraries, but
-threading allows more generality of operation. So, the threaded and
-right-threaded libraries offer a few additional functions for finding
-the next or previous node from a given node. In addition, they offer
-functions for converting trees from threaded or right-threaded
-representations to unthreaded, and vice versa.(1)
-
- ---------- Footnotes ----------
-
- (1) In general, you should build the sort of tree that you need to
-use, but occasionally it is useful to convert between tree types.
-
-Tree Creation
-*************
-
- These functions deal with creation and destruction of AVL trees.
-
- - Function: avl_tree * avl_create (avl_comparison_func COMPARE, void
- *PARAM)
- - Function: avlt_tree * avlt_create (avlt_comparison_func COMPARE,
- void *PARAM)
- - Function: avltr_tree * avltr_create (avltr_comparison_func COMPARE,
- void *PARAM)
- - Function: rb_tree * rb_create (avl_comparison_func COMPARE, void
- *PARAM)
- Create a new, empty tree with comparison function COMPARE.
- Arbitrary user data PARAM is saved so that it can be passed to
- user callback functions.
-
- - Function: void avl_destroy (avl_tree *TREE, avl_node_func FREE)
- - Function: void avlt_destroy (avlt_tree *TREE, avl_node_func FREE)
- - Function: void avltr_destroy (avltr_tree *TREE, avl_node_func FREE)
- - Function: void rb_destroy (rb_tree *TREE, avl_node_func FREE)
- Destroys TREE, releasing all of its storage. If FREE is non-null,
- then it is called for every node in postorder before that node is
- freed.
-
- - Function: void avl_free (avl_tree *TREE)
- - Function: void avlt_free (avlt_tree *TREE)
- - Function: void avltr_free (avltr_tree *TREE)
- - Function: void rb_free (rb_tree *TREE)
- Destroys TREE, releasing all of its storage. The data in each
- node is freed with a call to the standard C library function
- `free'.
-
- - Function: avl_tree * avl_copy (const avl_tree *TREE, avl_copy_func
- COPY)
- - Function: avlt_tree * avl_copy (const avlt_tree *TREE, avl_copy_func
- COPY)
- - Function: avltr_tree * avl_copy (const avltr_tree *TREE,
- avl_copy_func COPY)
- - Function: rb_tree * rb_copy (const rb_tree *TREE, avl_copy_func COPY)
- Copies the contents of TREE into a new tree, and returns the new
- tree. If COPY is non-null, then it is called to make a new copy
- of each node's data; otherwise, the node data is copied verbatim
- into the new tree.
-
- - Function: int avl_count (const avl_tree *TREE)
- - Function: int avlt_count (const avlt_tree *TREE)
- - Function: int avltr_count (const avltr_tree *TREE)
- - Function: int rb_count (const rb_tree *TREE)
- Returns the number of nodes in TREE.
-
- - Function: void * xmalloc (size_t SIZE)
- This is not a function defined by libavl. Instead, it is a
- function that the user program can define. It must allocate SIZE
- bytes using `malloc' and return it. It can handle out-of-memory
- errors however it chooses, but it may not ever return a null
- pointer.
-
- If there is an `xmalloc' function defined for use by libavl, the
- source files (`avl.c', `avlt.c', `avltr.c', `rb.c') must be
- compiled with `HAVE_XMALLOC' defined. Otherwise, the library will
- use its internal static `xmalloc', which handles out-of-memory
- errors by printing a message `virtual memory exhausted' to stderr
- and terminating the program with exit code `EXIT_FAILURE'.
-
-Insertion and Deletion
-**********************
-
- These function insert nodes, delete nodes, and search for nodes in
-trees.
-
- - Function: void ** avl_probe (avl_tree *TREE, void *DATA)
- - Function: void ** avlt_probe (avlt_tree *TREE, void *DATA)
- - Function: void ** avltr_probe (avltr_tree *TREE, void *DATA)
- - Function: void ** rb_probe (rb_tree *TREE, void *DATA)
- These are the workhorse functions for tree insertion. They search
- TREE for a node with data matching DATA. If found, a pointer to
- the matching data is returned. Otherwise, a new node is created
- for DATA, and a pointer to that data is returned. In either case,
- the pointer returned can be changed by the user, but the key data
- used by the tree's comparison must not be changed(1).
-
- It is usually easier to use one of the `avl_insert' or
- `avl_replace' functions instead of `avl_probe' directly.
-
- *Please note:* It's not a particularly good idea to insert a null
- pointer as a data item into a tree, because several libavl
- functions return a null pointer to indicate failure. You can
- sometimes avoid a problem by using functions that return a pointer
- to a pointer instead of a plain pointer. Also be wary of this
- when casting an arithmetic type to a void pointer for
- insertion--on typical architectures, 0's become null pointers when
- this is done.
-
- - Function: void * avl_insert (avl_tree *TREE, void *DATA)
- - Function: void * avlt_insert (avlt_tree *TREE, void *DATA)
- - Function: void * avltr_insert (avltr_tree *TREE, void *DATA)
- - Function: void * rb_insert (rb_tree *TREE, void *DATA)
- If a node with data matching DATA exists in TREE, returns the
- matching data item. Otherwise, inserts DATA into TREE and returns
- a null pointer.
-
- - Function: void avl_force_insert (avl_tree *TREE, void *DATA)
- - Function: void avlt_force_insert (avlt_tree *TREE, void *DATA)
- - Function: void avltr_force_insert (avltr_tree *TREE, void *DATA)
- - Function: void rb_force_insert (rb_tree *TREE, void *DATA)
- Inserts DATA into TREE. If a node with data matching DATA exists
- in TREE, aborts the program with an assertion violation. This
- function is implemented as a macro; if it is used, the standard C
- header `assert.h' must also be included. If macro `NDEBUG' is
- defined when a libavl header is included, these functions are
- short-circuited to a direct call to `avl_insert', and no check is
- performed.
-
- - Function: void * avl_replace (avl_tree *TREE, void *DATA)
- - Function: void * avlt_replace (avlt_tree *TREE, void *DATA)
- - Function: void * avltr_replace (avltr_tree *TREE, void *DATA)
- - Function: void * rb_replace (rb_tree *TREE, void *DATA)
- If a node with data matching DATA, such that the comparison
- function returns 0, exists in TREE, replaces the node's data with
- DATA and returns the node's former contents. Otherwise, inserts
- DATA into TREE and returns a null pointer.
-
- - Function: void * avl_delete (avl_tree *TREE, const void *DATA)
- - Function: void * avlt_delete (avlt_tree *TREE, const void *DATA)
- - Function: void * avltr_delete (avltr_tree *TREE, const void *DATA)
- - Function: void * rb_delete (rb_tree *TREE, const void *DATA)
- Searches TREE for a node with data matching DATA. If found, the
- node is deleted and its data is returned. Otherwise, returns a
- null pointer.
-
- - Function: void * avl_force_delete (avl_tree *TREE, const void *DATA)
- - Function: void * avlt_force_delete (avlt_tree *TREE, const void
- *DATA)
- - Function: void * avltr_force_delete (avltr_tree *TREE, const void
- *DATA)
- - Function: void * rb_force_delete (rb_tree *TREE, const void *DATA)
- Deletes a node with data matching DATA from TREE. If no matching
- node is found, aborts the program with an assertion violation. If
- macro `NDEBUG' is declared when a libavl header is included, these
- functions are short-circuited to a direct call to `avl_delete',
- and no check is performed.
-
- ---------- Footnotes ----------
-
- (1) It can be changed if this would not change the ordering of the
-nodes in the tree; i.e., if this would not cause the data in the node
-to be less than or equal to the previous node's data or greater than or
-equal to the next node's data.
-
-Searching
-*********
-
- These function search a tree for an item without making an insertion
-or a deletion.
-
- - Function: void * avl_find (avl_tree *TREE, const void *DATA)
- - Function: void ** avlt_find (avlt_tree *TREE, const void *DATA)
- - Function: void ** avltr_find (avltr_tree *TREE, const void *DATA)
- - Function: void * rb_find (rb_tree *TREE, const void *DATA)
- Searches TREE for a node with data matching DATA, If found,
- returns the node's data (for threaded and right-threaded trees, a
- pointer to the node's data). Otherwise, returns a null pointer.
-
- - Function: void * avl_find_close (avl_tree *TREE, const void *DATA)
- - Function: void ** avlt_find_close (avlt_tree *TREE, const void *DATA)
- - Function: void ** avltr_find_close (avltr_tree *TREE, const void
- *DATA)
- - Function: void * rb_find_close (rb_tree *TREE, const void *DATA)
- Searches TREE for a node with data matching DATA. If found,
- returns the node's data (for threaded and right-threaded trees, a
- pointer to the node's data). If no matching item is found, then it
- finds a node whose data is "close" to DATA; either the node
- closest in value to DATA, or the node either before or after the
- node with the closest value. Returns a null pointer if the tree
- does not contain any nodes.
-
-Iteration
-*********
-
- These functions allow the caller to iterate across the items in a
-tree.
-
- - Function: void avl_walk (const avl_tree *TREE, avl_node_func
- OPERATE, void *PARAM)
- - Function: void avlt_walk (const avlt_tree *TREE, avl_node_func
- OPERATE, void *PARAM)
- - Function: void avltr_walk (const avltr_tree *TREE, avl_node_func
- OPERATE, void *PARAM)
- - Function: void rb_walk (const rb_tree *TREE, avl_node_func OPERATE,
- void *PARAM)
- Walks through all the nodes in TREE, and calls function OPERATE
- for each node in inorder. PARAM overrides the value passed to
- `avl_create' (and family) for this operation only. OPERATE must
- not change the key data in the nodes in a way that would reorder
- the data values or cause two values to become equal.
-
- - Function: void * avl_traverse (const avl_tree *TREE, avl_traverser
- *TRAV)
- - Function: void * avlt_traverse (const avlt_tree *TREE,
- avlt_traverser *TRAV)
- - Function: void * avltr_traverse (const avltr_tree *TREE,
- avltr_traverser *TRAV)
- - Function: void * rb_traverse (const rb_tree *TREE, rb_traverser
- *TRAV)
- Returns each of TREE's nodes' data values in sequence, then a null
- pointer to indicate the last item. TRAV must be initialized
- before the first call, either in a declaration like that below, or
- using one of the functions below.
-
- avl_traverser trav = AVL_TRAVERSER_INIT;
-
- Each `avl_traverser' (and family) is a separate, independent
- iterator.
-
- For threaded and right-threaded trees, `avlt_next' or
- `avltr_next', respectively, are faster and more memory-efficient
- than `avlt_traverse' or `avltr_traverse'.
-
- - Function: void * avl_init_traverser (avl_traverser *TRAV)
- - Function: void * avlt_init_traverser (avlt_traverser *TRAV)
- - Function: void * avltr_init_traverser (avltr_traverser *TRAV)
- - Function: void * rb_init_traverser (rb_traverser *TRAV)
- Initializes the specified tree traverser structure. After this
- function is called, the next call to the corresponding
- `*_traverse' function will return the smallest value in the
- appropriate tree.
-
- - Function: void ** avlt_next (const avlt_tree *TREE, void **DATA)
- - Function: void ** avltr_next (const avltr_tree *TREE, void **DATA)
- DATA must be a null pointer or a pointer to a data item in AVL
- tree TREE. Returns a pointer to the next data item after DATA in
- TREE in inorder (this is the first item if DATA is a null
- pointer), or a null pointer if DATA was the last item in TREE.
-
- - Function: void ** avltr_prev (const avltr_tree *TREE, void **DATA)
- DATA must be a null pointer or a pointer to a data item in AVL
- tree TREE. Returns a pointer to the previous data item before
- DATA in TREE in inorder (this is the last, or greatest valued,
- item if DATA is a null pointer), or a null pointer if DATA was the
- first item in TREE.
-
-Conversion
-**********
-
- - Function: avlt_tree * avlt_thread (avl_tree *TREE)
- - Function: avltr_tree * avltr_thread (avl_tree *TREE)
- Adds symmetric threads or right threads, respectively, to
- unthreaded AVL tree TREE and returns a pointer to TREE cast to the
- appropriate type. After one of these functions is called,
- threaded or right-threaded functions, as appropriate, must be used
- with TREE; unthreaded functions may not be used.
-
- - Function: avl_tree * avlt_unthread (avlt_tree *TREE)
- - Function: avl_tree * avltr_unthread (avltr_tree *TREE)
- Cuts all threads in threaded or right-threaded, respectively, AVL
- tree TREE and returns a pointer to TREE cast to `avl_tree *'.
- After one of these functions is called, unthreaded functions must
- be used with TREE; threaded or right-threaded functions may not be
- used.
-
-Author
-******
-
- libavl was written by Ben Pfaff <blp@gnu.org>.
-
- libavl's generic tree algorithms and AVL algorithms are based on
-those found in Donald Knuth's venerable `Art of Computer Programming'
-series from Addison-Wesley, primarily Volumes 1 and 3. libavl's
-red-black tree algorithms are based on those found in Cormen et al.,
-`Introduction to Algorithms', 2nd ed., from MIT Press.
-
-Index
-*****
-
-* Menu:
-
-* `Art of Computer Programming': Author.
-* Adel'son-Velskii, G. M.: Introduction to balanced binary trees.
-* author: Author.
-* AVL tree: Introduction to balanced binary trees.
-* avl_comparison_func: Types.
-* avl_copy: Tree Creation.
-* avl_copy_func: Types.
-* avl_count: Tree Creation.
-* avl_create: Tree Creation.
-* avl_delete: Insertion.
-* avl_destroy: Tree Creation.
-* avl_find: Searching.
-* avl_find_close: Searching.
-* avl_force_delete: Insertion.
-* avl_force_insert: Insertion.
-* avl_free: Tree Creation.
-* avl_init_traverser: Iteration.
-* avl_insert: Insertion.
-* AVL_MAX_HEIGHT: Types.
-* avl_node: Types.
-* avl_node_func: Types.
-* avl_probe: Insertion.
-* avl_replace: Insertion.
-* avl_traverse: Iteration.
-* avl_traverser: Types.
-* avl_tree: Types.
-* avl_walk: Iteration.
-* avlt_count: Tree Creation.
-* avlt_create: Tree Creation.
-* avlt_delete: Insertion.
-* avlt_destroy: Tree Creation.
-* avlt_find: Searching.
-* avlt_find_close: Searching.
-* avlt_force_delete: Insertion.
-* avlt_force_insert: Insertion.
-* avlt_free: Tree Creation.
-* avlt_init_traverser: Iteration.
-* avlt_insert: Insertion.
-* avlt_next: Iteration.
-* avlt_node: Types.
-* avlt_probe: Insertion.
-* avlt_replace: Insertion.
-* avlt_thread: Conversion.
-* avlt_traverse: Iteration.
-* avlt_traverser: Types.
-* avlt_tree: Types.
-* avlt_unthread: Conversion.
-* avlt_walk: Iteration.
-* avltr_count: Tree Creation.
-* avltr_create: Tree Creation.
-* avltr_delete: Insertion.
-* avltr_destroy: Tree Creation.
-* avltr_find: Searching.
-* avltr_find_close: Searching.
-* avltr_force_delete: Insertion.
-* avltr_force_insert: Insertion.
-* avltr_free: Tree Creation.
-* avltr_init_traverser: Iteration.
-* avltr_insert: Insertion.
-* avltr_next: Iteration.
-* avltr_node: Types.
-* avltr_prev: Iteration.
-* avltr_probe: Insertion.
-* avltr_replace: Insertion.
-* avltr_thread: Conversion.
-* avltr_traverse: Iteration.
-* avltr_traverser: Types.
-* avltr_tree: Types.
-* avltr_unthread: Conversion.
-* avltr_walk: Iteration.
-* binary tree: Introduction to balanced binary trees.
-* hash table: Introduction to balanced binary trees.
-* Knuth, Donald Ervin: Author.
-* Landis, E. M.: Introduction to balanced binary trees.
-* Pfaff, Benjamin Levy: Author.
-* rb_copy: Tree Creation.
-* rb_count: Tree Creation.
-* rb_create: Tree Creation.
-* rb_delete: Insertion.
-* rb_destroy: Tree Creation.
-* rb_find: Searching.
-* rb_find_close: Searching.
-* rb_force_delete: Insertion.
-* rb_force_insert: Insertion.
-* rb_free: Tree Creation.
-* rb_init_traverser: Iteration.
-* rb_insert: Insertion.
-* RB_MAX_HEIGHT: Types.
-* rb_node: Types.
-* rb_probe: Insertion.
-* rb_replace: Insertion.
-* rb_traverse: Iteration.
-* rb_traverser: Types.
-* rb_tree: Types.
-* rb_walk: Iteration.
-* rebalancing: Introduction to balanced binary trees.
-* red-black tree: Introduction to balanced binary trees.
-* right threads: Functions.
-* threads: Functions.
-* unthreaded: Functions.
-* xmalloc: Tree Creation.
-
diff --git a/avl-1.4.0/avlt.c b/avl-1.4.0/avlt.c
deleted file mode 100644
index d050fba..0000000
--- a/avl-1.4.0/avlt.c
+++ /dev/null
@@ -1,1597 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file avlt.c in libavl. */
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-#if SELF_TEST
-#include <limits.h>
-#include <time.h>
-#endif
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "avlt.h"
-
-/* Tag types. */
-#define PLUS +1
-#define MINUS -1
-
-#if !__GCC__ && !defined (inline)
-#define inline
-#endif
-
-#if __GNUC__ >= 2
-#define unused __attribute__ ((unused))
-#else
-#define unused
-#endif
-
-#ifdef HAVE_XMALLOC
-void *xmalloc (size_t);
-#else /* !HAVE_XMALLOC */
-/* Allocates SIZE bytes of space using malloc(). Aborts if out of
- memory. */
-static void *
-xmalloc (size_t size)
-{
- void *vp;
- if (size == 0)
- return NULL;
- vp = malloc (size);
- assert (vp != NULL);
- if (vp == NULL)
- {
- fprintf (stderr, "virtual memory exhausted\n");
- exit (EXIT_FAILURE);
- }
- return vp;
-}
-#endif /* !HAVE_XMALLOC */
-
-/* Creates an AVL tree in arena OWNER (which can be NULL). The arena
- is owned by the caller, not by the AVL tree. CMP is a order
- function for the data to be stored in the tree. PARAM is arbitrary
- data that becomes an argument to the comparison function. */
-avlt_tree *
-avlt_create (avl_comparison_func cmp, void *param)
-{
- avlt_tree *tree;
-
- assert (cmp != NULL);
- tree = xmalloc (sizeof (avlt_tree));
-
- tree->root.link[0] = tree->root.link[1] = &tree->root;
- tree->root.tag[0] = MINUS;
- tree->root.tag[1] = PLUS;
- tree->cmp = cmp;
- tree->count = 0;
- tree->param = param;
-
- return tree;
-}
-
-/* Destroy tree TREE. Function FREE_FUNC is called for every node in
- the tree as it is destroyed.
-
- No effect if the tree has an arena owner and free_func is NULL.
- The caller owns the arena and must destroy it itself.
-
- Do not attempt to reuse the tree after it has been freed. Create a
- new one. */
-void
-avlt_destroy (avlt_tree *tree, avl_node_func free_func)
-{
- assert (tree != NULL);
-
- if (tree->root.link[0] != &tree->root)
- {
- /* Uses Knuth's Algorithm 2.3.1T as modified in exercise 13
- (postorder traversal). */
-
- /* T1. */
- avlt_node *an[AVL_MAX_HEIGHT]; /* Stack A: nodes. */
- char ab[AVL_MAX_HEIGHT]; /* Stack A: bits. */
- int ap = 0; /* Stack A: height. */
- avlt_node *p = tree->root.link[0];
-
- for (;;)
- {
- /* T2. */
- for (;;)
- {
- /* T3. */
- ab[ap] = 0;
- an[ap++] = p;
- if (p->tag[0] == MINUS)
- break;
- p = p->link[0];
- }
-
- /* T4. */
- for (;;)
- {
- if (ap == 0)
- goto done;
-
- p = an[--ap];
- if (ab[ap] == 0)
- {
- ab[ap++] = 1;
- if (p->tag[1] == MINUS)
- continue;
- p = p->link[1];
- break;
- }
-
- if (free_func)
- free_func (p->data, tree->param);
- free (p);
- }
- }
- }
-
- done:
- free (tree);
-}
-
-/* avlt_destroy() with FREE_FUNC hardcoded as free(). */
-void
-avlt_free (avlt_tree *tree)
-{
- avlt_destroy (tree, (avl_node_func) free);
-}
-
-/* Return the number of nodes in TREE. */
-int
-avlt_count (const avlt_tree *tree)
-{
- assert (tree != NULL);
- return tree->count;
-}
-
-/* Copy the contents of TREE to a new tree in arena OWNER. If COPY is
- non-NULL, then each data item is passed to function COPY, and the
- return values are inserted into the new tree; otherwise, the items
- are copied verbatim from the old tree to the new tree. Returns the
- new tree. */
-avlt_tree *
-avlt_copy (const avlt_tree *tree, avl_copy_func copy)
-{
- /* Knuth's Algorithm 2.3.1C (copying a binary tree). Additionally
- uses Algorithm 2.3.1I (insertion into a threaded binary tree) and
- Algorithm 2.3.1 exercise 17 (preorder successor in threaded
- binary tree). */
-
- avlt_tree *new_tree;
-
- const avlt_node *p;
- avlt_node *q;
-
- assert (tree != NULL);
- new_tree = avlt_create (tree->cmp, tree->param);
- new_tree->count = tree->count;
- p = &tree->root;
- if (p->link[0] == p)
- return new_tree;
- q = &new_tree->root;
-
- for (;;)
- {
- /* C4. This is Algorithm 2.3.1I modified for insertion to the
- left. Step I2 is not necessary. */
- if (p->tag[0] == PLUS)
- {
- avlt_node *r = xmalloc (sizeof (avlt_node));
-
- r->link[0] = q->link[0];
- r->tag[0] = q->tag[0];
- q->link[0] = r;
- q->tag[0] = PLUS;
- r->link[1] = q;
- r->tag[1] = MINUS;
- }
-
- /* C5: Find preorder successors of P and Q. This is Algorithm
- 2.3.1 exercise 17 but applies its actions to Q as well as
- P. */
- if (p->tag[0] == PLUS)
- {
- p = p->link[0];
- q = q->link[0];
- }
- else
- {
- while (p->tag[1] == MINUS)
- {
- p = p->link[1];
- q = q->link[1];
- }
- p = p->link[1];
- q = q->link[1];
- }
-
- /* C6. */
- if (p == &tree->root)
- {
- assert (q == &new_tree->root);
- return new_tree;
- }
-
- /* C2. This is Algorithm 2.3.1I. Step I2 is not necessary. */
- if (p->tag[1] == PLUS)
- {
- avlt_node *r = xmalloc (sizeof (avlt_node));
-
- r->link[1] = q->link[1];
- r->tag[1] = q->tag[1];
- q->link[1] = r;
- q->tag[1] = PLUS;
- r->link[0] = q;
- r->tag[0] = MINUS;
- }
-
- /* C3. */
- q->bal = p->bal;
- if (copy == NULL)
- q->data = p->data;
- else
- q->data = copy (p->data, tree->param);
- }
-}
-
-/* Threads the unthreaded AVL tree TREE in-place, and returns TREE cast to
- avlt_tree *. */
-avlt_tree *
-avlt_thread (struct avl_tree *_tree)
-{
- /* Uses Knuth's Algorithm 2.3.1 exercise 30 (thread an unthreaded
- tree, with Algorithm 2.3.1T (inorder traversal) for computing
- Q$. */
-
- avlt_tree *tree = (avlt_tree *) _tree;
-
- /* Algorithm T's variables. */
- avlt_node *an[AVL_MAX_HEIGHT]; /* Stack A: nodes. */
- avlt_node **ap; /* Stack A: stack pointer. */
- avlt_node *tp; /* P. */
-
- /* Algorithm L's variables. */
- avlt_node *p, *q;
-
- assert (tree != NULL);
-
- /* T1. */
- ap = an;
- tp = tree->root.link[0];
-
- /* L1. */
- q = &tree->root;
- q->link[1] = q;
-
- for (;;)
- {
- /* L2. */
- {
- /* T2. */
- while (tp != NULL)
- {
- /* T3. */
- *ap++ = tp;
- tp = tp->link[0];
- }
-
- /* T4. Modified to visit HEAD after fully traversing the
- tree. */
- if (ap == an)
- tp = &tree->root;
- else
- tp = *--ap;
-
- /* T5: Visit P. */
- p = tp;
- }
-
- /* L3. */
- if (q->link[1] == NULL)
- {
- q->link[1] = p;
- q->tag[1] = MINUS;
- }
- else
- q->tag[1] = PLUS;
-
- if (p->link[0] == NULL)
- {
- p->link[0] = q;
- p->tag[0] = MINUS;
- }
- else
- p->tag[0] = PLUS;
-
- /* L4. */
- if (p == &tree->root)
- return tree;
- q = p;
-
- /* T5: Next. */
- tp = tp->link[1];
- }
-}
-
-/* Unthreads the threaded tree TREE in-place, and returns TREE cast to
- avl_tree *. */
-struct avl_tree *
-avlt_unthread (avlt_tree *tree)
-{
- /* Uses Knuth's Algorithm 2.3.1T as modified in exercise 13
- (postorder traversal). */
-
- /* T1. */
- avlt_node *an[AVL_MAX_HEIGHT]; /* Stack A: nodes. */
- char ab[AVL_MAX_HEIGHT]; /* Stack A: bits. */
- int ap = 0; /* Stack A: height. */
- avlt_node *p;
-
- assert (tree != NULL);
- p = tree->root.link[0];
- if (p != &tree->root)
- for (;;)
- {
- /* T2. */
- for (;;)
- {
- /* T3. */
- ab[ap] = 0;
- an[ap++] = p;
- if (p->tag[0] == MINUS)
- break;
- p = p->link[0];
- }
-
- /* T4. */
- for (;;)
- {
- if (ap == 0)
- goto done;
-
- p = an[--ap];
- if (ab[ap] == 0)
- {
- ab[ap++] = 1;
- if (p->tag[1] == MINUS)
- continue;
- p = p->link[1];
- break;
- }
-
- if (p->tag[0] == MINUS)
- p->link[0] = NULL;
- if (p->tag[1] == MINUS)
- p->link[1] = NULL;
- }
- }
- else
- tree->root.link[0] = NULL;
-
- done:
- tree->root.link[1] = NULL;
- return (struct avl_tree *) tree;
-}
-
-/* Walk tree TREE in inorder, calling WALK_FUNC at each node. Passes
- PARAM to WALK_FUNC. */
-void
-avlt_walk (const avlt_tree *tree, avl_node_func walk_func, void *param)
-{
- const avlt_node *p;
-
- /* Uses Knuth's algorithm 2.3.1D (threaded inorder successor). */
- assert (tree && walk_func);
-
- p = &tree->root;
- for (;;)
- {
- if (p->tag[1] == MINUS)
- p = p->link[1];
- else
- {
- p = p->link[1];
- while (p->tag[0] == PLUS)
- p = p->link[0];
- }
-
- if (p == &tree->root)
- return;
-
- walk_func (p->data, param);
- }
-}
-
-/* Each call to this function for a given TREE and TRAV return the
- next item in the tree in inorder. Initialize the first element of
- TRAV (init) to 0 before calling the first time. Returns NULL when
- out of elements. */
-void *
-avlt_traverse (const avlt_tree *tree, avlt_traverser *trav)
-{
- const avlt_node *p;
-
- assert (tree && trav);
-
- if (trav->init == 0)
- {
- p = &tree->root;
- trav->init = 1;
- }
- else
- p = trav->p;
-
- /* Knuth's Algorithm 2.3.1S (threaded inorder successor). */
- if (p->tag[1] == MINUS)
- p = p->link[1];
- else
- {
- p = p->link[1];
- while (p->tag[0] == PLUS)
- p = p->link[0];
- }
-
- if (p == &tree->root)
- {
- trav->init = 0;
- return NULL;
- }
- else
- {
- trav->p = p;
- return (void *) p->data;
- }
-}
-
-/* Given ITEM, a pointer to a data item in TREE (or NULL), returns a
- pointer to the next item in the tree in comparison order, or NULL
- if ITEM is the last item. */
-void **
-avlt_next (const avlt_tree *tree, void **item)
-{
- const avlt_node *p;
-
- assert (tree != NULL);
- if (item == NULL)
- p = &tree->root;
- else
- p = (avlt_node *) (((char *) item) - offsetof (avlt_node, data));
-
- /* Knuth's Algorithm 2.3.1S (threaded inorder successor). */
- if (p->tag[1] == MINUS)
- p = p->link[1];
- else
- {
- p = p->link[1];
- while (p->tag[0] == PLUS)
- p = p->link[0];
- }
-
- if (p == &tree->root)
- return NULL;
-
- return (void **) &p->data;
-}
-
-/* Given ITEM, a pointer to a data item in TREE (or NULL), returns a
- pointer to the previous item in the tree in comparison order, or
- NULL if ITEM is the first item. */
-void **
-avlt_prev (const avlt_tree *tree, void **item)
-{
- const avlt_node *p;
-
- assert (tree != NULL);
- if (item == NULL)
- {
- /* Find node with greatest value. */
- p = tree->root.link[0];
- if (p == &tree->root)
- return NULL;
- while (p->tag[1] == PLUS)
- p = p->link[1];
- }
- else
- {
- p = (avlt_node *) (((char *) item) - offsetof (avlt_node, data));
-
- /* Knuth's Algorithm 2.3.1S (threaded inorder successor)
- modified to find the predecessor node. */
- if (p->tag[0] == MINUS)
- p = p->link[0];
- else
- {
- assert (p->tag[0] == PLUS);
- p = p->link[0];
- while (p->tag[1] == PLUS)
- p = p->link[1];
- }
- }
-
- if (p == &tree->root)
- return NULL;
-
- return (void **) &p->data;
-}
-
-/* Search TREE for an item matching ITEM. If found, returns a pointer
- to the address of the item. If none is found, ITEM is inserted
- into the tree, and a pointer to the address of ITEM is returned.
- In either case, the pointer returned can be changed by the caller,
- or the returned data item can be directly edited, but the key data
- in the item must not be changed. */
-void **
-avlt_probe (avlt_tree *tree, void *item)
-{
- /* Uses Knuth's Algorithm 6.2.3A (balanced tree search and
- insertion), modified for a threaded binary tree. Caches results
- of comparisons. In empirical tests this eliminates about 25% of
- the comparisons seen under random insertions. */
-
- /* A1. */
- avlt_node *t;
- avlt_node *s, *p, *q, *r;
-
- assert (tree != NULL);
- t = &tree->root;
- s = p = t->link[0];
-
- if (t->tag[0] == MINUS)
- {
- tree->count++;
- assert (tree->count == 1);
- t->tag[0] = PLUS;
- q = t->link[0] = xmalloc (sizeof (avlt_node));
- q->data = item;
- q->link[0] = q->link[1] = t;
- q->tag[0] = q->tag[1] = MINUS;
- q->bal = 0;
- return &q->data;
- }
-
- for (;;)
- {
- /* A2. */
- int diff = tree->cmp (item, p->data, tree->param);
-
- /* A3. */
- if (diff < 0)
- {
- p->cache = 0;
- q = p->link[0];
- if (p->tag[0] == MINUS)
- {
- q = xmalloc (sizeof (avlt_node));
- q->link[0] = p->link[0];
- q->tag[0] = p->tag[0];
- p->link[0] = q;
- p->tag[0] = PLUS;
- q->link[1] = p;
- q->tag[1] = MINUS;
- break;
- }
- }
- /* A4. */
- else if (diff > 0)
- {
- p->cache = 1;
- q = p->link[1];
- if (p->tag[1] == MINUS)
- {
- q = xmalloc (sizeof (avlt_node));
- q->link[1] = p->link[1];
- q->tag[1] = p->tag[1];
- p->link[1] = q;
- p->tag[1] = PLUS;
- q->link[0] = p;
- q->tag[0] = MINUS;
- break;
- }
- }
- else
- /* A2. */
- return &p->data;
-
- /* A3, A4. */
- if (q->bal != 0)
- t = p, s = q;
- p = q;
- }
-
- /* A5. */
- tree->count++;
- q->data = item;
- q->bal = 0;
-
- /* A6. */
- r = p = s->link[(int) s->cache];
- while (p != q)
- {
- p->bal = p->cache * 2 - 1;
- p = p->link[(int) p->cache];
- }
-
- /* A7. */
- if (s->cache == 0)
- {
- /* a = -1. */
- if (s->bal == 0)
- {
- s->bal = -1;
- return &q->data;
- }
- else if (s->bal == +1)
- {
- s->bal = 0;
- return &q->data;
- }
-
- assert (s->bal == -1);
- if (r->bal == -1)
- {
- /* A8. */
- p = r;
- s->link[0] = r->link[1];
- s->tag[0] = r->tag[1];
- r->link[1] = s;
- r->tag[1] = PLUS;
- if (s->link[0] == s)
- {
- s->link[0] = r;
- s->tag[0] = MINUS;
- }
- r->tag[0] = r->tag[1] = PLUS;
- s->bal = r->bal = 0;
- }
- else
- {
- /* A9. */
- assert (r->bal == +1);
- p = r->link[1];
- r->link[1] = p->link[0];
- p->link[0] = r;
- s->link[0] = p->link[1];
- p->link[1] = s;
- if (p->bal == -1)
- s->bal = 1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == +1);
- s->bal = 0, r->bal = -1;
- }
- p->bal = 0;
- p->tag[0] = p->tag[1] = PLUS;
- if (s->link[0] == s)
- {
- s->link[0] = p;
- s->tag[0] = MINUS;
- }
- if (r->link[1] == r)
- {
- r->link[1] = p;
- r->tag[1] = MINUS;
- }
- }
- }
- else
- {
- /* a == +1. */
- if (s->bal == 0)
- {
- s->bal = 1;
- return &q->data;
- }
- else if (s->bal == -1)
- {
- s->bal = 0;
- return &q->data;
- }
-
- assert (s->bal == +1);
- if (r->bal == +1)
- {
- /* A8. */
- p = r;
- s->link[1] = r->link[0];
- s->tag[1] = r->tag[0];
- r->link[0] = s;
- r->tag[0] = PLUS;
- if (s->link[1] == s)
- {
- s->link[1] = r;
- s->tag[1] = MINUS;
- }
- s->bal = r->bal = 0;
- }
- else
- {
- /* A9. */
- assert (r->bal == -1);
- p = r->link[0];
- r->link[0] = p->link[1];
- p->link[1] = r;
- s->link[1] = p->link[0];
- p->link[0] = s;
- if (p->bal == +1)
- s->bal = -1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == -1);
- s->bal = 0, r->bal = 1;
- }
- p->tag[0] = p->tag[1] = PLUS;
- if (s->link[1] == s)
- {
- s->link[1] = p;
- s->tag[1] = MINUS;
- }
- if (r->link[0] == r)
- {
- r->link[0] = p;
- r->tag[0] = MINUS;
- }
- p->bal = 0;
- }
- }
-
- /* A10. */
- if (t != &tree->root && s == t->link[1])
- t->link[1] = p;
- else
- t->link[0] = p;
-
- return &q->data;
-}
-
-/* Search TREE for an item matching ITEM, and return a pointer to it
- if found. */
-void **
-avlt_find (const avlt_tree *tree, const void *item)
-{
- const avlt_node *p;
-
- assert (tree != NULL);
- if (tree->root.tag[0] == MINUS)
- /* Tree is empty. */
- return NULL;
-
- p = tree->root.link[0];
- for (;;)
- {
- int diff = tree->cmp (item, p->data, tree->param);
- int t;
-
- /* A3. */
- if (diff < 0)
- t = 0;
- else if (diff > 0)
- t = 1;
- else
- return (void **) &p->data;
-
- if (p->tag[t] == PLUS)
- p = p->link[t];
- else
- return NULL;
- }
-}
-
-/* Search TREE for an item close to the value of ITEM, and return it.
- This function will return a null pointer only if TREE is empty. */
-void **
-avlt_find_close (const avlt_tree *tree, const void *item)
-{
- const avlt_node *p;
-
- assert (tree != NULL);
- if (tree->root.tag[0] == MINUS)
- /* Tree is empty. */
- return NULL;
-
- p = tree->root.link[0];
- for (;;)
- {
- int diff = tree->cmp (item, p->data, tree->param);
- int t;
-
- /* A3. */
- if (diff < 0)
- t = 0;
- else if (diff > 0)
- t = 1;
- else
- return (void **) &p->data;
-
- if (p->tag[t] == PLUS)
- p = p->link[t];
- else
- return (void **) &p->data;
- }
-}
-
-/* Searches AVL tree TREE for an item matching ITEM. If found, the
- item is removed from the tree and the actual item found is returned
- to the caller. If no item matching ITEM exists in the tree,
- returns NULL. */
-void *
-avlt_delete (avlt_tree *tree, const void *item)
-{
- /* Uses my Algorithm DT, which can be found at
- http://www.msu.edu/user/pfaffben/avl. Algorithm DT is based on
- Knuth's Algorithms 6.2.2D (Tree deletion), 6.2.3A (Balanced tree
- search and insertion), 2.3.1I (Insertion into a threaded binary
- trees), and the notes on pages 465-466 of Vol. 3. */
-
- /* D1. */
- avlt_node *pa[AVL_MAX_HEIGHT]; /* Stack P: Nodes. */
- unsigned char a[AVL_MAX_HEIGHT]; /* Stack P: Bits. */
- int k = 1; /* Stack P: Pointer. */
-
- avlt_node *p;
-
- assert (tree != NULL);
-
- if (tree->root.tag[0] == MINUS)
- /* Empty tree. */
- return NULL;
-
- a[0] = 0;
- pa[0] = &tree->root;
- p = tree->root.link[0];
- for (;;)
- {
- /* D2. */
- int diff = tree->cmp (item, p->data, tree->param);
-
- if (diff == 0)
- break;
-
- /* D3, D4. */
- pa[k] = p;
- if (diff < 0)
- {
- if (p->tag[0] == PLUS)
- {
- p = p->link[0];
- a[k] = 0;
- }
- else
- return NULL;
- }
- else if (diff > 0)
- {
- if (p->tag[1] == PLUS)
- {
- p = p->link[1];
- a[k] = 1;
- }
- else
- return NULL;
- }
-
- k++;
- }
- tree->count--;
-
- item = p->data;
-
- {
- avlt_node *t = p;
- avlt_node **q = &pa[k - 1]->link[(int) a[k - 1]];
-
- /* D5. */
- if (t->tag[1] == MINUS)
- {
- if (t->tag[0] == PLUS)
- {
- avlt_node *const x = t->link[0];
-
- *q = x;
- (*q)->bal = 0;
- if (x->tag[1] == MINUS)
- {
- if (a[k - 1] == 1)
- x->link[1] = t->link[1];
- else
- x->link[1] = pa[k - 1];
- }
- }
- else
- {
- *q = t->link[a[k - 1]];
- pa[k - 1]->tag[a[k - 1]] = MINUS;
- }
- }
- else
- {
- /* D6. */
- avlt_node *r = t->link[1];
- if (r->tag[0] == MINUS)
- {
- r->link[0] = t->link[0];
- r->tag[0] = t->tag[0];
- r->bal = t->bal;
- if (r->tag[0] == PLUS)
- {
- avlt_node *s = r->link[0];
- while (s->tag[1] == PLUS)
- s = s->link[1];
- assert (s->tag[1] == MINUS);
- s->link[1] = r;
- }
- *q = r;
- a[k] = 1;
- pa[k++] = r;
- }
- else
- {
- /* D7. */
- avlt_node *s = r->link[0];
-
- a[k] = 1;
- pa[k++] = t;
-
- a[k] = 0;
- pa[k++] = r;
-
- /* D8. */
- while (s->tag[0] != MINUS)
- {
- r = s;
- s = r->link[0];
- a[k] = 0;
- pa[k++] = r;
- }
-
- /* D9. */
- t->data = s->data;
- if (s->tag[1] == MINUS)
- {
- r->tag[0] = MINUS;
- r->link[0] = t;
- }
- else
- {
- r->link[0] = s->link[1];
- if (s->link[1]->tag[0] == MINUS)
- s->link[1]->link[0] = t;
- }
- p = s;
- }
- }
- }
-
- free (p);
-
- assert (k > 0);
- /* D10. */
- while (--k)
- {
- avlt_node *const s = pa[k];
-
- if (a[k] == 0)
- {
- avlt_node *const r = s->link[1];
-
- /* D10. */
- if (s->bal == -1)
- {
- s->bal = 0;
- continue;
- }
- else if (s->bal == 0)
- {
- s->bal = +1;
- break;
- }
-
- assert (s->bal == +1);
- if (s->tag[1] == MINUS || r->bal == 0)
- {
- /* D11. */
- s->link[1] = r->link[0];
- r->link[0] = s;
- r->bal = -1;
- pa[k - 1]->link[(int) a[k - 1]] = r;
- break;
- }
- else if (r->bal == +1)
- {
- /* D12. */
- if (PLUS == (s->tag[1] = r->tag[0]))
- s->link[1] = r->link[0];
- r->link[0] = s;
- r->tag[0] = PLUS;
- s->bal = r->bal = 0;
- pa[k - 1]->link[a[k - 1]] = r;
- }
- else
- {
- /* D13. */
- assert (r->bal == -1);
- p = r->link[0];
- if (PLUS == (r->tag[0] = p->tag[1]))
- r->link[0] = p->link[1];
- p->link[1] = r;
- p->tag[1] = PLUS;
- if (MINUS == (s->tag[1] = p->tag[0]))
- s->link[1] = p;
- else
- s->link[1] = p->link[0];
- p->link[0] = s;
- p->tag[0] = PLUS;
- if (p->bal == +1)
- s->bal = -1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == -1);
- s->bal = 0, r->bal = +1;
- }
- p->bal = 0;
- pa[k - 1]->link[(int) a[k - 1]] = p;
- pa[k - 1]->tag[(int) a[k - 1]] = PLUS;
- }
- }
- else
- {
- avlt_node *const r = s->link[0];
-
- /* D10. */
- if (s->bal == +1)
- {
- s->bal = 0;
- continue;
- }
- else if (s->bal == 0)
- {
- s->bal = -1;
- break;
- }
-
- assert (s->bal == -1);
- if (s->tag[0] == MINUS || r->bal == 0)
- {
- /* D11. */
- s->link[0] = r->link[1];
- r->link[1] = s;
- r->bal = +1;
- pa[k - 1]->link[(int) a[k - 1]] = r;
- break;
- }
- else if (r->bal == -1)
- {
- /* D12. */
- if (PLUS == (s->tag[0] = r->tag[1]))
- s->link[0] = r->link[1];
- r->link[1] = s;
- r->tag[1] = PLUS;
- s->bal = r->bal = 0;
- pa[k - 1]->link[a[k - 1]] = r;
- }
- else
- {
- /* D13. */
- assert (r->bal == +1);
- p = r->link[1];
- if (PLUS == (r->tag[1] = p->tag[0]))
- r->link[1] = p->link[0];
- p->link[0] = r;
- p->tag[0] = PLUS;
- if (MINUS == (s->tag[0] = p->tag[1]))
- s->link[0] = p;
- else
- s->link[0] = p->link[1];
- p->link[1] = s;
- p->tag[1] = PLUS;
- if (p->bal == -1)
- s->bal = +1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == +1);
- s->bal = 0, r->bal = -1;
- }
- p->bal = 0;
- pa[k - 1]->link[(int) a[k - 1]] = p;
- pa[k - 1]->tag[(int) a[k - 1]] = PLUS;
- }
- }
- }
-
- return (void *) item;
-}
-
-/* Inserts ITEM into TREE. Returns NULL if the item was inserted,
- otherwise a pointer to the duplicate item. */
-void *
-avlt_insert (avlt_tree *tree, void *item)
-{
- void **p;
-
- assert (tree != NULL);
-
- p = avlt_probe (tree, item);
- return (*p == item) ? NULL : *p;
-}
-
-/* If ITEM does not exist in TREE, inserts it and returns NULL. If a
- matching item does exist, it is replaced by ITEM and the item
- replaced is returned. The caller is responsible for freeing the
- item returned. */
-void *
-avlt_replace (avlt_tree *tree, void *item)
-{
- void **p;
-
- assert (tree != NULL);
-
- p = avlt_probe (tree, item);
- if (*p == item)
- return NULL;
- else
- {
- void *r = *p;
- *p = item;
- return r;
- }
-}
-
-/* Delete ITEM from TREE when you know that ITEM must be in TREE. For
- debugging purposes. */
-void *
-(avlt_force_delete) (avlt_tree *tree, void *item)
-{
- void *found = avlt_delete (tree, item);
- assert (found != NULL);
- return found;
-}
-
-#if SELF_TEST
-
-/* Size of the tree used for testing. */
-#define TREE_SIZE 1024
-
-/* Used to flag delayed aborting. */
-int done = 0;
-
-/* Count the number of nodes in TREE below and including NODE. */
-int
-count (avlt_tree *tree, avlt_node *node)
-{
- int n = 1;
- if (node->tag[0] == PLUS)
- n += count (tree, node->link[0]);
- if (node->tag[1] == PLUS)
- n += count (tree, node->link[1]);
- return n;
-}
-
-/* Print the structure of node NODE of an avl tree, which is LEVEL
- levels from the top of the tree. Uses different delimiters to
- visually distinguish levels. */
-void
-print_structure (avlt_tree *tree, avlt_node *node, int level)
-{
- char lc[] = "([{<`";
- char rc[] = ")]}>'";
-
- assert (node != NULL);
- if (level >= 10)
- {
- printf ("Too deep, giving up.\n");
- done = 1;
- return;
- }
- if (node == &tree->root)
- {
- printf (" root");
- return;
- }
- printf (" %c%d", lc[level % 5], (int) node->data);
- fflush (stdout);
-
- {
- int i;
-
- for (i = 0; i <= 1; i++)
- {
- if (node->tag[i] == PLUS)
- print_structure (tree, node->link[i], level + 1);
- else if (node->link[i] != &tree->root)
- printf (" :%d", (int) node->link[i]->data);
- else
- printf (" :r");
- fflush (stdout);
- }
- }
- printf ("%c", rc[level % 5]);
- fflush (stdout);
-}
-
-/* Compare two integers A and B and return a strcmp()-type result. */
-int
-compare_ints (const void *a, const void *b, void *param unused)
-{
- return ((int) a) - ((int) b);
-}
-
-/* Print the value of integer A. */
-void
-print_int (void *a, void *param unused)
-{
- printf (" %d", (int) a);
-}
-
-/* Linearly print contents of TREE. */
-void
-print_contents (avlt_tree *tree)
-{
- avlt_walk (tree, print_int, NULL);
- printf ("\n");
-}
-
-/* Examine NODE in a avl tree. *COUNT is increased by the number of
- nodes in the tree, including the current one. If the node is the
- root of the tree, PARENT should be INT_MIN, otherwise it should be
- the parent node value. DIR is the direction that the current node
- is linked from the parent: -1 for left child, +1 for right child;
- it is not used if PARENT is INT_MIN. Returns the height of the
- tree rooted at NODE. */
-int
-recurse_tree (avlt_tree *tree, avlt_node *node, int *count, int parent,
- int dir, unsigned char *nodes, unsigned char *threads)
-{
- if (node != &tree->root)
- {
- int d = (int) node->data;
- int nl = 0;
- int nr = 0;
-
- (*count)++;
-
- assert (d >= 0 && d < TREE_SIZE);
- if (nodes[d / 8] & (1 << (d % 8)))
- {
- printf (" Arrived at node %d by two different paths.\n", d);
- done = 1;
- }
- else
- nodes[d / 8] |= 1 << (d % 8);
-
- if (node->tag[0] == PLUS)
- nl = recurse_tree (tree, node->link[0], count, d, -1, nodes, threads);
- else if (node->link[0] != &tree->root)
- {
- int dl = (int) node->link[0]->data;
- assert (dl >= 0 && dl < TREE_SIZE);
- threads[dl / 8] |= 1 << (dl % 8);
- }
-
- if (node->tag[1] == PLUS)
- nr = recurse_tree (tree, node->link[1], count, d, 1, nodes, threads);
- else if (node->link[1] != &tree->root)
- {
- int dr = (int) node->link[1]->data;
- assert (dr >= 0 && dr < TREE_SIZE);
- threads[dr / 8] |= 1 << (dr % 8);
- }
-
- if (nr - nl != node->bal)
- {
- printf (" Node %d has incorrect balance: right height=%d, "
- "left height=%d, difference=%d, but balance factor=%d.\n",
- d, nr, nl, nr - nl, node->bal);
- done = 1;
- }
-
- if (node->bal < -1 || node->bal > 1)
- {
- printf (" Node %d has invalid balance factor %d.\n",
- d, node->bal);
- done = 1;
- }
-
- if (parent != INT_MIN)
- {
- assert (dir == -1 || dir == +1);
- if (dir == -1 && d > parent)
- {
- printf (" Node %d is smaller than its left child %d.\n",
- parent, d);
- done = 1;
- }
- else if (dir == +1 && d < parent)
- {
- printf (" Node %d is larger than its right child %d.\n",
- parent, d);
- done = 1;
- }
- }
- assert (node->bal >= -1 && node->bal <= 1);
- return 1 + (nl > nr ? nl : nr);
- }
- else return 0;
-}
-
-/* Check that everything about TREE is kosher. */
-void
-verify_tree (avlt_tree *tree)
-{
- {
- unsigned char nodes[(TREE_SIZE + 7) / 8];
- unsigned char threads[(TREE_SIZE + 7) / 8];
-
- int count = 0;
- int i;
-
- memset (nodes, 0, (TREE_SIZE + 7) / 8);
- memset (threads, 0, (TREE_SIZE + 7) / 8);
-
- recurse_tree (tree, tree->root.link[0], &count, INT_MIN, 0, nodes,
- threads);
-
- if (count != tree->count)
- {
- printf (" Tree should have %d nodes, but tree count by recursive "
- "descent is %d.\n", tree->count, count);
- done = 1;
- }
-
- for (i = 0; i < TREE_SIZE; i++)
- {
- int thread = threads[i / 8] & (1 << (i % 8));
- int node = nodes[i / 8] & (1 << (i % 8));
-
- if (thread && !node)
- {
- printf (" A thread leads to ``node'' %d, which is "
- "not in the tree.", i);
- done = 1;
- }
- }
- }
-
- /* Check right threads. */
- {
- int count = 0;
- int last = INT_MIN;
- void **data = NULL;
-
- while (NULL != (data = avlt_next (tree, data)))
- {
- if (((int) *data) < last)
- {
- printf (" Misordered right threads.\n");
- abort ();
- }
- else if (((int) *data) == last)
- {
- printf (" Loop in right threads detected on %d.\n", last);
- abort ();
- }
- last = (int) *data;
- count++;
- }
- if (count != tree->count)
- {
- printf (" Tree should have %d nodes, but tree count by right threads "
- "is %d.\n", tree->count, count);
- done = 1;
- }
- }
-
- /* Check left threads. */
- {
- int count = 0;
- int last = INT_MAX;
- void **data = NULL;
-
- while (NULL != (data = avlt_prev (tree, data)))
- {
- if (((int) *data) > last)
- {
- printf (" Misordered left threads.\n");
- abort ();
- }
- else if (((int) *data) == last)
- {
- printf (" Loop in left threads detected on %d.\n", last);
- abort ();
- }
- last = (int) *data;
- count++;
- }
- if (count != tree->count)
- {
- printf (" Tree should have %d nodes, but tree count by left threads "
- "is %d.\n", tree->count, count);
- done = 1;
- }
- }
-
- if (done)
- abort ();
-}
-
-/* Arrange the N elements of ARRAY in random order. */
-void
-shuffle (int *array, int n)
-{
- int i;
-
- for (i = 0; i < n; i++)
- {
- int j = i + rand () % (n - i);
- int t = array[j];
- array[j] = array[i];
- array[i] = t;
- }
-}
-
-/* Compares avl trees rooted at A and B, making sure that they are
- identical. */
-void
-compare_trees (avlt_node *a, avlt_node *b)
-{
- int diff = 0;
-
- assert (a && b);
-
- /* Separating these conditions makes it easier to pinpoint bad data
- under a memory debugger like Checker because each test is a
- separate statement. */
- diff |= a->data != b->data;
- diff |= a->bal != b->bal;
- diff |= ((a->tag[0] == PLUS) ^ (b->tag[0] == PLUS));
- diff |= ((a->tag[1] == PLUS) ^ (b->tag[1] == PLUS));
- if (diff)
- {
- printf (" Copied nodes differ: %d b=%d a->bal=%d b->bal=%d a:",
- (int) a->data, (int) b->data, a->bal, b->bal);
- if (a->link[0])
- printf ("l");
- if (a->link[1])
- printf ("r");
- printf (" b:");
- if (b->link[0])
- printf ("l");
- if (b->link[1])
- printf ("r");
- printf ("\n");
- abort ();
- }
- if (a->tag[0] == PLUS)
- compare_trees (a->link[0], b->link[0]);
- if (a->tag[1] == PLUS)
- compare_trees (a->link[1], b->link[1]);
-}
-
-/* Simple stress test procedure for the AVL tree routines. Does the
- following:
-
- * Generate a random number seed. By default this is generated from
- the current time. You can also pass a seed value on the command
- line if you want to test the same case. The seed value is
- displayed.
-
- * Create a tree and insert the integers from 0 up to TREE_SIZE - 1
- into it, in random order. Verify the tree structure after each
- insertion.
-
- * Remove each integer from the tree, in a different random order.
- After each deletion, verify the tree structure; also, make a copy
- of the tree into a new tree, verify the copy and compare it to the
- original, then destroy the copy.
-
- * Destroy the tree, increment the random seed value, and start over.
-
- If you make any modifications to the avl tree routines, then you
- might want to insert some calls to print_structure() at strategic
- places in order to be able to see what's really going on. Also,
- memory debuggers like Checker or Purify are very handy. */
-#define N_ITERATIONS 16
-int
-main (int argc, char **argv)
-{
- int array[TREE_SIZE];
- int seed;
- int iteration;
-
- if (argc == 2)
- seed = atoi (argv[1]);
- else
- seed = time (0) * 257 % 32768;
-
- fputs ("Testing avlt...\n", stdout);
-
- for (iteration = 1; iteration <= N_ITERATIONS; iteration++)
- {
- avlt_tree *tree;
- int i;
-
- printf ("Iteration %4d/%4d: seed=%5d", iteration, N_ITERATIONS, seed);
- fflush (stdout);
-
- srand (seed++);
-
- for (i = 0; i < TREE_SIZE; i++)
- array[i] = i;
- shuffle (array, TREE_SIZE);
-
- tree = avlt_create (compare_ints, NULL);
- for (i = 0; i < TREE_SIZE; i++)
- avlt_force_insert (tree, (void *) (array[i]));
- verify_tree (tree);
-
- shuffle (array, TREE_SIZE);
- for (i = 0; i < TREE_SIZE; i++)
- {
- avlt_tree *copy;
-
- avlt_delete (tree, (void *) (array[i]));
- verify_tree (tree);
-
- copy = avlt_copy (tree, NULL);
- verify_tree (copy);
- if (tree->root.link[0] != &tree->root)
- compare_trees (tree->root.link[0], copy->root.link[0]);
- else if (copy->root.link[1] != &copy->root)
- printf (" Empty tree results in nonempty copy.\n"), abort ();
- avlt_destroy (copy, NULL);
-
- if (i % 128 == 0)
- {
- putchar ('.');
- fflush (stdout);
- }
- }
- fputs (" good.\n", stdout);
-
- avlt_destroy (tree, NULL);
- }
-
- return 0;
-}
-#endif /* SELF_TEST */
-
-/*
- Local variables:
- compile-command: "gcc -DSELF_TEST=1 -W -Wall -I. -o ./avlt-test avlt.c"
- End:
-*/
-
diff --git a/avl-1.4.0/avlt.h b/avl-1.4.0/avlt.h
deleted file mode 100644
index 94272b4..0000000
--- a/avl-1.4.0/avlt.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file avlt.h in libavl. */
-
-#if !avlt_h
-#define avlt_h 1
-
-/* The default maximum height of 32 allows for AVL trees having
- between 5,704,880 and 4,294,967,295 nodes, depending on order of
- insertion. You may change this compile-time constant as you
- wish. */
-#ifndef AVL_MAX_HEIGHT
-#define AVL_MAX_HEIGHT 32
-#endif
-
-/* Structure for a node in a threaded AVL tree. */
-typedef struct avlt_node
- {
- void *data; /* Pointer to data. */
- struct avlt_node *link[2]; /* Subtrees or threads. */
- signed char bal; /* Balance factor. */
- char cache; /* Used during insertion. */
- signed char tag[2]; /* Left and right thread tags. */
- }
-avlt_node;
-
-/* Used for traversing a threaded AVL tree. */
-typedef struct avlt_traverser
- {
- int init; /* Initialized? */
- const avlt_node *p; /* Last node returned. */
- }
-avlt_traverser;
-
-/* Initializer for avlt_traverser. */
-#define AVLT_TRAVERSER_INIT {0}
-
-/* Function types. */
-#if !AVL_FUNC_TYPES
-#define AVL_FUNC_TYPES 1
-typedef int (*avl_comparison_func) (const void *a, const void *b, void *param);
-typedef void (*avl_node_func) (void *data, void *param);
-typedef void *(*avl_copy_func) (void *data, void *param);
-#endif
-
-/* Structure which holds information about a threaded AVL tree. */
-typedef struct avlt_tree
- {
- avlt_node root; /* Tree root node. */
- avl_comparison_func cmp; /* Used to compare keys. */
- int count; /* Number of nodes in the tree. */
- void *param; /* Arbitary user data. */
- }
-avlt_tree;
-
-/* General functions. */
-avlt_tree *avlt_create (avl_comparison_func, void *param);
-void avlt_destroy (avlt_tree *, avl_node_func);
-void avlt_free (avlt_tree *);
-int avlt_count (const avlt_tree *);
-avlt_tree *avlt_copy (const avlt_tree *, avl_copy_func);
-struct avl_tree;
-avlt_tree *avlt_thread (struct avl_tree *);
-struct avl_tree *avlt_unthread (avlt_tree *);
-
-/* Walk the tree. */
-void avlt_walk (const avlt_tree *, avl_node_func, void *param);
-void *avlt_traverse (const avlt_tree *, avlt_traverser *);
-#define avlt_init_traverser(TRAVERSER) ((TRAVERSER)->init = 0)
-void **avlt_next (const avlt_tree *tree, void **item);
-void **avlt_prev (const avlt_tree *tree, void **item);
-
-/* Search for a given item. */
-void **avlt_probe (avlt_tree *, void *);
-void *avlt_delete (avlt_tree *, const void *);
-void **avlt_find (const avlt_tree *, const void *);
-void **avlt_find_close (const avlt_tree *, const void *);
-
-#if __GCC__ >= 2
-extern inline void *
-avlt_insert (avlt_tree *tree, void *item)
-{
- void **p = avlt_probe (tree, item);
- return (*p == item) ? NULL : *p;
-}
-
-extern inline void *
-avlt_replace (avlt_tree *tree, void *item)
-{
- void **p = avlt_probe (tree, item);
- if (*p == item)
- return NULL;
- else
- {
- void *r = *p;
- *p = item;
- return r;
- }
-}
-#else /* not gcc */
-void *avlt_insert (avlt_tree *tree, void *item);
-void *avlt_replace (avlt_tree *tree, void *item);
-#endif /* not gcc */
-
-/* Easy assertions on insertion & deletion. */
-#ifndef NDEBUG
-#define avlt_force_insert(A, B) \
- do \
- { \
- void *r = avlt_insert (A, B); \
- assert (r == NULL); \
- } \
- while (0)
-void *avlt_force_delete (avlt_tree *, void *);
-#else
-#define avlt_force_insert(A, B) \
- avlt_insert (A, B)
-#define avlt_force_delete(A, B) \
- avlt_delete (A, B)
-#endif
-
-#endif /* avlt_h */
diff --git a/avl-1.4.0/avltr.c b/avl-1.4.0/avltr.c
deleted file mode 100644
index 2831bee..0000000
--- a/avl-1.4.0/avltr.c
+++ /dev/null
@@ -1,1538 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file avltr.c in libavl. */
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-#if SELF_TEST
-#include <limits.h>
-#include <time.h>
-#endif
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "avltr.h"
-
-/* Tag types. */
-#define PLUS +1
-#define MINUS -1
-
-#if !__GCC__ && !defined (inline)
-#define inline
-#endif
-
-void
-print_structure (avltr_tree *tree, avltr_node *node, int level);
-
-#if __GNUC__ >= 2
-#define unused __attribute__ ((unused))
-#else
-#define unused
-#endif
-
-#ifdef HAVE_XMALLOC
-void *xmalloc (size_t);
-#else /* !HAVE_XMALLOC */
-/* Allocates SIZE bytes of space using malloc(). Aborts if out of
- memory. */
-static void *
-xmalloc (size_t size)
-{
- void *vp;
- if (size == 0)
- return NULL;
- vp = malloc (size);
- assert (vp != NULL);
- if (vp == NULL)
- {
- fprintf (stderr, "virtual memory exhausted\n");
- exit (EXIT_FAILURE);
- }
- return vp;
-}
-#endif /* !HAVE_XMALLOC */
-
-/* Creates an AVL tree in arena OWNER (which can be NULL). The arena
- is owned by the caller, not by the AVL tree. CMP is a order
- function for the data to be stored in the tree. PARAM is arbitrary
- data that becomes an argument to the comparison function. */
-avltr_tree *
-avltr_create (avl_comparison_func cmp, void *param)
-{
- avltr_tree *tree;
-
- assert (cmp != NULL);
- tree = xmalloc (sizeof (avltr_tree));
-
- tree->root.link[0] = NULL;
- tree->root.link[1] = &tree->root;
- tree->root.rtag = PLUS;
- tree->cmp = cmp;
- tree->count = 0;
- tree->param = param;
-
- return tree;
-}
-
-/* Destroy tree TREE. Function FREE_FUNC is called for every node in
- the tree as it is destroyed.
-
- No effect if the tree has an arena owner and free_func is NULL.
- The caller owns the arena and must destroy it itself.
-
- Do not attempt to reuse the tree after it has been freed. Create a
- new one. */
-void
-avltr_destroy (avltr_tree *tree, avl_node_func free_func)
-{
- assert (tree != NULL);
-
- if (tree->root.link[0] != &tree->root)
- {
- /* Uses Knuth's Algorithm 2.3.1T as modified in exercise 13
- (postorder traversal), further modified for right-threaded
- trees. */
-
- /* T1. */
- avltr_node *an[AVL_MAX_HEIGHT]; /* Stack A: nodes. */
- char ab[AVL_MAX_HEIGHT]; /* Stack A: bits. */
- int ap = 0; /* Stack A: height. */
- avltr_node *p = tree->root.link[0];
-
- for (;;)
- {
- /* T2. */
- while (p != NULL)
- {
- /* T3. */
- ab[ap] = 0;
- an[ap++] = p;
- p = p->link[0];
- }
-
- /* T4. */
- for (;;)
- {
- if (ap == 0)
- goto done;
-
- p = an[--ap];
- if (ab[ap] == 0)
- {
- ab[ap++] = 1;
- if (p->rtag == MINUS)
- continue;
- p = p->link[1];
- break;
- }
-
- if (free_func)
- free_func (p->data, tree->param);
- free (p);
- }
- }
- }
-
- done:
- free (tree);
-}
-
-/* avltr_destroy() with FREE_FUNC hardcoded as free(). */
-void
-avltr_free (avltr_tree *tree)
-{
- avltr_destroy (tree, (avl_node_func) free);
-}
-
-/* Return the number of nodes in TREE. */
-int
-avltr_count (const avltr_tree *tree)
-{
- assert (tree != NULL);
- return tree->count;
-}
-
-/* Copy the contents of TREE to a new tree in arena OWNER. If COPY is
- non-NULL, then each data item is passed to function COPY, and the
- return values are inserted into the new tree; otherwise, the items
- are copied verbatim from the old tree to the new tree. Returns the
- new tree. */
-avltr_tree *
-avltr_copy (const avltr_tree *tree, avl_copy_func copy)
-{
- /* Knuth's Algorithm 2.3.1C (copying a binary tree). Additionally
- uses Algorithm 2.3.1I (insertion into a threaded binary tree) and
- Algorithm 2.3.1 exercise 17 (preorder successor in threaded
- binary tree). */
-
- avltr_tree *new_tree;
-
- const avltr_node *p;
- avltr_node *q;
-
- assert (tree != NULL);
- new_tree = avltr_create (tree->cmp, tree->param);
- new_tree->count = tree->count;
- p = &tree->root;
- if (p->link[0] == p)
- return new_tree;
- q = &new_tree->root;
-
- for (;;)
- {
- /* C4. This is Algorithm 2.3.1 exercise 23 for insertion to the
- left in a right-threaded binary tree. */
- if (p->link[0] != NULL)
- {
- avltr_node *r = xmalloc (sizeof (avltr_node));
-
- q->link[0] = r;
- r->link[0] = NULL;
- r->link[1] = q;
- r->rtag = MINUS;
- }
-
- /* C5: Find preorder successors of P and Q. This is Algorithm
- 2.3.1 exercise 17 but applies its actions to Q as well as
- P. */
- if (p->link[0] != NULL)
- {
- p = p->link[0];
- q = q->link[0];
- }
- else
- {
- while (p->rtag == MINUS)
- {
- p = p->link[1];
- q = q->link[1];
- }
- p = p->link[1];
- q = q->link[1];
- }
-
- /* C6. */
- if (p == &tree->root)
- {
- assert (q == &new_tree->root);
- return new_tree;
- }
-
- /* C2. This is Algorithm 2.3.1 exercise 23 for insertion to the
- right in a right-threaded binary tree. */
- if (p->rtag == PLUS)
- {
- avltr_node *r = xmalloc (sizeof (avltr_node));
-
- r->link[1] = q->link[1];
- r->rtag = q->rtag;
- q->link[1] = r;
- q->rtag = PLUS;
- r->link[0] = NULL;
- }
-
- /* C3. */
- q->bal = p->bal;
- if (copy == NULL)
- q->data = p->data;
- else
- q->data = copy (p->data, tree->param);
- }
-}
-
-/* Threads the unthreaded AVL tree TREE in-place, and returns TREE cast to
- avltr_tree *. */
-avltr_tree *
-avltr_thread (struct avl_tree *_tree)
-{
- /* Uses Knuth's Algorithm 2.3.1 exercise 30 (thread an unthreaded
- tree, with Algorithm 2.3.1T (inorder traversal) for computing
- Q$. */
-
- avltr_tree *tree = (avltr_tree *) _tree;
-
- /* Algorithm T's variables. */
- avltr_node *an[AVL_MAX_HEIGHT]; /* Stack A: nodes. */
- avltr_node **ap; /* Stack A: stack pointer. */
- avltr_node *tp; /* P. */
-
- /* Algorithm L's variables. */
- avltr_node *p, *q;
-
- assert (tree != NULL);
-
- /* T1. */
- ap = an;
- tp = tree->root.link[0];
-
- /* L1. */
- q = &tree->root;
- q->link[1] = q;
-
- for (;;)
- {
- /* L2. */
- {
- /* T2. */
- while (tp != NULL)
- {
- /* T3. */
- *ap++ = tp;
- tp = tp->link[0];
- }
-
- /* T4. Modified to visit HEAD after fully traversing the
- tree. */
- if (ap == an)
- tp = &tree->root;
- else
- tp = *--ap;
-
- /* T5: Visit P. */
- p = tp;
- }
-
- /* L3. */
- if (q->link[1] == NULL)
- {
- q->link[1] = p;
- q->rtag = MINUS;
- }
- else
- q->rtag = PLUS;
-
- /* L4. */
- if (p == &tree->root)
- return tree;
- q = p;
-
- /* T5: Next. */
- tp = tp->link[1];
- }
-}
-
-/* Unthreads the threaded tree TREE in-place, and returns TREE cast to
- avl_tree *. */
-struct avl_tree *
-avltr_unthread (avltr_tree *tree)
-{
- /* Uses Knuth's Algorithm 2.3.1T as modified in exercise 13
- (postorder traversal). */
-
- /* T1. */
- avltr_node *an[AVL_MAX_HEIGHT]; /* Stack A: nodes. */
- char ab[AVL_MAX_HEIGHT]; /* Stack A: bits. */
- int ap = 0; /* Stack A: height. */
- avltr_node *p;
-
- assert (tree != NULL);
- p = tree->root.link[0];
- if (p != NULL)
- for (;;)
- {
- /* T2. */
- for (;;)
- {
- /* T3. */
- ab[ap] = 0;
- an[ap++] = p;
- if (p->link[0] == NULL)
- break;
- p = p->link[0];
- }
-
- /* T4. */
- for (;;)
- {
- if (ap == 0)
- goto done;
-
- p = an[--ap];
- if (ab[ap] == 0)
- {
- ab[ap++] = 1;
- if (p->rtag == MINUS)
- continue;
- p = p->link[1];
- break;
- }
-
- if (p->rtag == MINUS)
- p->link[1] = NULL;
- }
- }
- else
- tree->root.link[0] = NULL;
-
- done:
- tree->root.link[1] = NULL;
- return (struct avl_tree *) tree;
-}
-
-/* Walk tree TREE in inorder, calling WALK_FUNC at each node. Passes
- PARAM to WALK_FUNC. */
-void
-avltr_walk (const avltr_tree *tree, avl_node_func walk_func, void *param)
-{
- const avltr_node *p = &tree->root;
-
- /* Uses Knuth's algorithm 2.3.1D (threaded inorder successor). */
- assert (tree && walk_func);
-
- for (;;)
- {
- if (p->rtag == MINUS)
- p = p->link[1];
- else
- {
- p = p->link[1];
- while (p->link[0] != NULL)
- p = p->link[0];
- }
-
- if (p == &tree->root)
- return;
-
- walk_func (p->data, param);
- }
-}
-
-/* Each call to this function for a given TREE and TRAV return the
- next item in the tree in inorder. Initialize the first element of
- TRAV (init) to 0 before calling the first time. Returns NULL when
- out of elements. */
-void *
-avltr_traverse (const avltr_tree *tree, avltr_traverser *trav)
-{
- const avltr_node *p;
-
- assert (tree && trav);
-
- if (trav->init == 0)
- {
- p = &tree->root;
- trav->init = 1;
- }
- else
- p = trav->p;
-
- /* Knuth's Algorithm 2.3.1S (threaded inorder successor). */
- if (p->rtag == MINUS)
- p = p->link[1];
- else
- {
- p = p->link[1];
- while (p->link[0] != NULL)
- p = p->link[0];
- }
-
- if (p == &tree->root)
- {
- trav->init = 0;
- return NULL;
- }
- else
- {
- trav->p = p;
- return (void *) p->data;
- }
-}
-
-/* Given ITEM, a pointer to a data item in TREE (or NULL), returns a
- pointer to the next item in the tree in comparison order, or NULL
- if ITEM is the last item. */
-void **
-avltr_next (const avltr_tree *tree, void **item)
-{
- const avltr_node *p;
-
- assert (tree != NULL);
- if (item == NULL)
- p = &tree->root;
- else
- p = (avltr_node *) (((char *) item) - offsetof (avltr_node, data));
-
- /* Knuth's Algorithm 2.3.1S (threaded inorder successor). */
- if (p->rtag == MINUS)
- p = p->link[1];
- else
- {
- p = p->link[1];
- while (p->link[0] != NULL)
- p = p->link[0];
- }
-
- if (p == &tree->root)
- return NULL;
-
- return (void **) &p->data;
-}
-
-/* Search TREE for an item matching ITEM. If found, returns a pointer
- to the address of the item. If none is found, ITEM is inserted
- into the tree, and a pointer to the address of ITEM is returned.
- In either case, the pointer returned can be changed by the caller,
- or the returned data item can be directly edited, but the key data
- in the item must not be changed. */
-void **
-avltr_probe (avltr_tree *tree, void *item)
-{
- /* Uses Knuth's Algorithm 6.2.3A (balanced tree search and
- insertion), modified for a right-threaded binary tree. Caches
- results of comparisons. In empirical tests this eliminates about
- 25% of the comparisons seen under random insertions. */
-
- /* A1. */
- avltr_node *t;
- avltr_node *s, *p, *q, *r;
-
- assert (tree != NULL);
- t = &tree->root;
- s = p = t->link[0];
-
- if (s == NULL)
- {
- tree->count++;
- assert (tree->count == 1);
- q = t->link[0] = xmalloc (sizeof (avltr_node));
- q->data = item;
- q->link[0] = NULL;
- q->link[1] = t;
- q->rtag = MINUS;
- q->bal = 0;
- return &q->data;
- }
-
- for (;;)
- {
- /* A2. */
- int diff = tree->cmp (item, p->data, tree->param);
-
- /* A3. */
- if (diff < 0)
- {
- p->cache = 0;
- q = p->link[0];
- if (q == NULL)
- {
- /* Algorithm 2.3.1 exercise 23 for insertion to the left
- in a right-threaded binary tree. */
- q = xmalloc (sizeof (avltr_node));
- p->link[0] = q;
- q->link[0] = NULL;
- q->link[1] = p;
- q->rtag = MINUS;
- break;
- }
- }
- /* A4. */
- else if (diff > 0)
- {
- p->cache = 1;
- q = p->link[1];
- if (p->rtag == MINUS)
- {
- /* Algorithm 2.3.1 exercise 23 for insertion to the right
- in a right-threaded binary tree. */
- q = xmalloc (sizeof (avltr_node));
- q->link[1] = p->link[1];
- q->rtag = p->rtag;
- p->link[1] = q;
- p->rtag = PLUS;
- q->link[0] = NULL;
- break;
- }
- assert (q != NULL);
- }
- else
- /* A2. */
- return &p->data;
-
- /* A3, A4. */
- if (q->bal != 0)
- t = p, s = q;
- p = q;
- }
-
- /* A5. */
- tree->count++;
- q->data = item;
- q->bal = 0;
-
- /* A6. */
- r = p = s->link[(int) s->cache];
- while (p != q)
- {
- p->bal = p->cache * 2 - 1;
- p = p->link[(int) p->cache];
- }
-
- /* A7. */
- if (s->cache == 0)
- {
- /* a = -1. */
- if (s->bal == 0)
- {
- s->bal = -1;
- return &q->data;
- }
- else if (s->bal == +1)
- {
- s->bal = 0;
- return &q->data;
- }
-
- assert (s->bal == -1);
- if (r->bal == -1)
- {
- /* A8. */
- p = r;
- if (r->rtag == MINUS)
- {
- s->link[0] = NULL;
- r->link[1] = s;
- r->rtag = PLUS;
- }
- else
- {
- s->link[0] = r->link[1];
- r->link[1] = s;
- }
- s->bal = r->bal = 0;
- }
- else
- {
- /* A9. */
- assert (r->bal == +1);
- p = r->link[1];
- r->link[1] = p->link[0];
- p->link[0] = r;
- s->link[0] = p->link[1];
- p->link[1] = s;
- if (p->bal == -1)
- s->bal = 1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == +1);
- s->bal = 0, r->bal = -1;
- }
- p->bal = 0;
- p->rtag = PLUS;
- if (s->link[0] == s)
- s->link[0] = NULL;
- if (r->link[1] == NULL)
- {
- r->link[1] = p;
- r->rtag = MINUS;
- }
- }
- }
- else
- {
- /* a == +1. */
- if (s->bal == 0)
- {
- s->bal = 1;
- return &q->data;
- }
- else if (s->bal == -1)
- {
- s->bal = 0;
- return &q->data;
- }
-
- assert (s->bal == +1);
- if (r->bal == +1)
- {
- /* A8. */
- p = r;
- if (r->link[0] == NULL)
- {
- s->rtag = MINUS;
- r->link[0] = s;
- }
- else
- {
- s->link[1] = r->link[0];
- s->rtag = PLUS;
- r->link[0] = s;
- }
- s->bal = r->bal = 0;
- }
- else
- {
- /* A9. */
- assert (r->bal == -1);
- p = r->link[0];
- r->link[0] = p->link[1];
- p->link[1] = r;
- s->link[1] = p->link[0];
- p->link[0] = s;
- if (p->bal == +1)
- s->bal = -1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == -1);
- s->bal = 0, r->bal = 1;
- }
- p->rtag = PLUS;
- if (s->link[1] == NULL)
- {
- s->link[1] = p;
- s->rtag = MINUS;
- }
- if (r->link[0] == r)
- r->link[0] = NULL;
- p->bal = 0;
- }
- }
-
- /* A10. */
- if (t != &tree->root && s == t->link[1])
- t->link[1] = p;
- else
- t->link[0] = p;
-
- return &q->data;
-}
-
-/* Search TREE for an item matching ITEM, and return a pointer to it
- if found. */
-void **
-avltr_find (const avltr_tree *tree, const void *item)
-{
- const avltr_node *p;
-
- assert (tree != NULL);
- p = tree->root.link[0];
- if (p == NULL)
- return NULL;
- for (;;)
- {
- int diff = tree->cmp (item, p->data, tree->param);
-
- /* A3. */
- if (diff < 0)
- {
- p = p->link[0];
- if (p == NULL)
- return NULL;
- }
- else if (diff > 0)
- {
- if (p->rtag == MINUS)
- return NULL;
- p = p->link[1];
- }
- else
- return (void **) &p->data;
- }
-}
-
-/* Search TREE for an item close to the value of ITEM, and return it.
- This function will return a null pointer only if TREE is empty. */
-void **
-avltr_find_close (const avltr_tree *tree, const void *item)
-{
- const avltr_node *p;
-
- assert (tree != NULL);
- p = tree->root.link[0];
- if (p == NULL)
- return NULL;
- for (;;)
- {
- int diff = tree->cmp (item, p->data, tree->param);
-
- /* A3. */
- if (diff < 0)
- {
- if (p->link[0])
- p = p->link[0];
- else
- return (void **) &p->data;
- }
- else if (diff > 0)
- {
- if (p->rtag == MINUS)
- return (void **) &p->data;
- p = p->link[1];
- }
- else
- return (void **) &p->data;
- }
-}
-
-/* Searches AVL tree TREE for an item matching ITEM. If found, the
- item is removed from the tree and the actual item found is returned
- to the caller. If no item matching ITEM exists in the tree,
- returns NULL. */
-void *
-avltr_delete (avltr_tree *tree, const void *item)
-{
- /* Uses my Algorithm DTR, which can be found at
- http://www.msu.edu/user/pfaffben/avl. Algorithm DT is based on
- Knuth's Algorithms 6.2.2D (Tree deletion), 6.2.3A (Balanced tree
- search and insertion), 2.3.1I (Insertion into a threaded binary
- trees), and the notes on pages 465-466 of Vol. 3. */
-
- /* D1. */
- avltr_node *pa[AVL_MAX_HEIGHT]; /* Stack P: Nodes. */
- unsigned char a[AVL_MAX_HEIGHT]; /* Stack P: Bits. */
- int k = 1; /* Stack P: Pointer. */
-
- avltr_node *p;
-
- assert (tree != NULL);
-
- a[0] = 0;
- pa[0] = &tree->root;
- p = tree->root.link[0];
- if (p == NULL)
- return NULL;
- for (;;)
- {
- /* D2. */
- int diff = tree->cmp (item, p->data, tree->param);
-
- if (diff == 0)
- break;
-
- /* D3, D4. */
- pa[k] = p;
- if (diff < 0)
- {
- if (p->link[0] != NULL)
- {
- p = p->link[0];
- a[k] = 0;
- }
- else
- return NULL;
- }
- else if (diff > 0)
- {
- if (p->rtag == PLUS)
- {
- p = p->link[1];
- a[k] = 1;
- }
- else
- return NULL;
- }
-
- k++;
- }
- tree->count--;
-
- item = p->data;
-
- {
- avltr_node *t = p;
- avltr_node **q = &pa[k - 1]->link[(int) a[k - 1]];
-
- /* D5. */
- if (t->rtag == MINUS)
- {
- if (t->link[0] != NULL)
- {
- avltr_node *const x = t->link[0];
-
- *q = x;
- (*q)->bal = 0;
- if (x->rtag == MINUS)
- {
- if (a[k - 1] == 1)
- x->link[1] = t->link[1];
- else
- x->link[1] = pa[k - 1];
- }
- }
- else
- {
- *q = t->link[a[k - 1]];
- if (a[k - 1] == 0)
- pa[k - 1]->link[0] = NULL;
- else
- pa[k - 1]->rtag = MINUS;
- }
- }
- else
- {
- /* D6. */
- avltr_node *r = t->link[1];
- if (r->link[0] == NULL)
- {
- r->link[0] = t->link[0];
- r->bal = t->bal;
- if (r->link[0] != NULL)
- {
- avltr_node *s = r->link[0];
- while (s->rtag == PLUS)
- s = s->link[1];
- assert (s->rtag == MINUS);
- s->link[1] = r;
- }
- *q = r;
- a[k] = 1;
- pa[k++] = r;
- }
- else
- {
- /* D7. */
- avltr_node *s = r->link[0];
-
- a[k] = 1;
- pa[k++] = t;
-
- a[k] = 0;
- pa[k++] = r;
-
- /* D8. */
- while (s->link[0] != NULL)
- {
- r = s;
- s = r->link[0];
- a[k] = 0;
- pa[k++] = r;
- }
-
- /* D9. */
- t->data = s->data;
- if (s->rtag == PLUS)
- r->link[0] = s->link[1];
- else
- r->link[0] = NULL;
- p = s;
- }
- }
- }
-
- free (p);
-
- assert (k > 0);
- /* D10. */
- while (--k)
- {
- avltr_node *const s = pa[k];
-
- if (a[k] == 0)
- {
- avltr_node *const r = s->link[1];
-
- /* D10. */
- if (s->bal == -1)
- {
- s->bal = 0;
- continue;
- }
- else if (s->bal == 0)
- {
- s->bal = +1;
- break;
- }
-
- assert (s->bal == +1);
- if (s->rtag == MINUS || r->bal == 0)
- {
- /* D11. */
- s->link[1] = r->link[0];
- r->link[0] = s;
- r->bal = -1;
- pa[k - 1]->link[(int) a[k - 1]] = r;
- break;
- }
- else if (r->bal == +1)
- {
- /* D12. */
- if (r->link[0] != NULL)
- {
- s->rtag = PLUS;
- s->link[1] = r->link[0];
- }
- else
- s->rtag = MINUS;
- r->link[0] = s;
- s->bal = r->bal = 0;
- pa[k - 1]->link[a[k - 1]] = r;
- }
- else
- {
- /* D13. */
- assert (r->bal == -1);
- p = r->link[0];
- if (p->rtag == PLUS)
- r->link[0] = p->link[1];
- else
- r->link[0] = NULL;
- p->link[1] = r;
- p->rtag = PLUS;
- if (p->link[0] == NULL)
- {
- s->link[1] = p;
- s->rtag = MINUS;
- }
- else
- {
- s->link[1] = p->link[0];
- s->rtag = PLUS;
- }
- p->link[0] = s;
- if (p->bal == +1)
- s->bal = -1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == -1);
- s->bal = 0, r->bal = +1;
- }
- p->bal = 0;
- pa[k - 1]->link[(int) a[k - 1]] = p;
- if (a[k - 1] == 1)
- pa[k - 1]->rtag = PLUS;
- }
- }
- else
- {
- avltr_node *const r = s->link[0];
-
- /* D10. */
- if (s->bal == +1)
- {
- s->bal = 0;
- continue;
- }
- else if (s->bal == 0)
- {
- s->bal = -1;
- break;
- }
-
- assert (s->bal == -1);
- if (s->link[0] == NULL || r->bal == 0)
- {
- /* D11. */
- s->link[0] = r->link[1];
- r->link[1] = s;
- r->bal = +1;
- pa[k - 1]->link[(int) a[k - 1]] = r;
- break;
- }
- else if (r->bal == -1)
- {
- /* D12. */
- if (r->rtag == PLUS)
- s->link[0] = r->link[1];
- else
- s->link[0] = NULL;
- r->link[1] = s;
- r->rtag = PLUS;
- s->bal = r->bal = 0;
- pa[k - 1]->link[a[k - 1]] = r;
- }
- else
- {
- /* D13. */
- assert (r->bal == +1);
- p = r->link[1];
- if (p->link[0] != NULL)
- {
- r->rtag = PLUS;
- r->link[1] = p->link[0];
- }
- else
- r->rtag = MINUS;
- p->link[0] = r;
- if (p->rtag == MINUS)
- s->link[0] = NULL;
- else
- s->link[0] = p->link[1];
- p->link[1] = s;
- p->rtag = PLUS;
- if (p->bal == -1)
- s->bal = +1, r->bal = 0;
- else if (p->bal == 0)
- s->bal = r->bal = 0;
- else
- {
- assert (p->bal == +1);
- s->bal = 0, r->bal = -1;
- }
- p->bal = 0;
- if (a[k - 1] == 1)
- pa[k - 1]->rtag = PLUS;
- pa[k - 1]->link[(int) a[k - 1]] = p;
- }
- }
- }
-
- return (void *) item;
-}
-
-/* Inserts ITEM into TREE. Returns NULL if the item was inserted,
- otherwise a pointer to the duplicate item. */
-void *
-avltr_insert (avltr_tree *tree, void *item)
-{
- void **p;
-
- assert (tree != NULL);
-
- p = avltr_probe (tree, item);
- return (*p == item) ? NULL : *p;
-}
-
-/* If ITEM does not exist in TREE, inserts it and returns NULL. If a
- matching item does exist, it is replaced by ITEM and the item
- replaced is returned. The caller is responsible for freeing the
- item returned. */
-void *
-avltr_replace (avltr_tree *tree, void *item)
-{
- void **p;
-
- assert (tree != NULL);
-
- p = avltr_probe (tree, item);
- if (*p == item)
- return NULL;
- else
- {
- void *r = *p;
- *p = item;
- return r;
- }
-}
-
-/* Delete ITEM from TREE when you know that ITEM must be in TREE. For
- debugging purposes. */
-void *
-(avltr_force_delete) (avltr_tree *tree, void *item)
-{
- void *found = avltr_delete (tree, item);
- assert (found != NULL);
- return found;
-}
-
-#if SELF_TEST
-
-/* Size of the tree used for testing. */
-#define TREE_SIZE 1024
-
-/* Used to flag delayed aborting. */
-int done = 0;
-
-/* Count the number of nodes in TREE below and including NODE. */
-int
-count (avltr_tree *tree, avltr_node *node)
-{
- int n = 1;
- if (node->link[0] != NULL)
- n += count (tree, node->link[0]);
- if (node->rtag == PLUS)
- n += count (tree, node->link[1]);
- return n;
-}
-
-/* Print the structure of node NODE of an avl tree, which is LEVEL
- levels from the top of the tree. Uses different delimiters to
- visually distinguish levels. */
-void
-print_structure (avltr_tree *tree, avltr_node *node, int level)
-{
- char lc[] = "([{<`";
- char rc[] = ")]}>'";
-
- if (node == NULL)
- {
- printf (" :nil");
- return;
- }
- else if (level >= 10)
- {
- printf ("Too deep, giving up.\n");
- done = 1;
- return;
- }
- else if (node == &tree->root)
- {
- printf (" root");
- return;
- }
- printf (" %c%d", lc[level % 5], (int) node->data);
- fflush (stdout);
-
- print_structure (tree, node->link[0], level + 1);
- fflush (stdout);
-
- if (node->rtag == PLUS)
- print_structure (tree, node->link[1], level + 1);
- else if (node->link[1] != &tree->root)
- printf (" :%d", (int) node->link[1]->data);
- else
- printf (" :r");
- fflush (stdout);
-
- printf ("%c", rc[level % 5]);
- fflush (stdout);
-}
-
-/* Compare two integers A and B and return a strcmp()-type result. */
-int
-compare_ints (const void *a, const void *b, void *param unused)
-{
- return ((int) a) - ((int) b);
-}
-
-/* Print the value of integer A. */
-void
-print_int (void *a, void *param unused)
-{
- printf (" %d", (int) a);
-}
-
-/* Linearly print contents of TREE. */
-void
-print_contents (avltr_tree *tree)
-{
- avltr_walk (tree, print_int, NULL);
- printf ("\n");
-}
-
-/* Examine NODE in a avl tree. *COUNT is increased by the number of
- nodes in the tree, including the current one. If the node is the
- root of the tree, PARENT should be INT_MIN, otherwise it should be
- the parent node value. DIR is the direction that the current node
- is linked from the parent: -1 for left child, +1 for right child;
- it is not used if PARENT is INT_MIN. Returns the height of the
- tree rooted at NODE. */
-int
-recurse_tree (avltr_tree *tree, avltr_node *node, int *count, int parent,
- int dir, unsigned char *nodes, unsigned char *threads)
-{
- if (node != NULL && node != &tree->root)
- {
- int d = (int) node->data;
- int nl = 0;
- int nr = 0;
-
- (*count)++;
-
- assert (d >= 0 && d < TREE_SIZE);
- if (nodes[d / 8] & (1 << (d % 8)))
- {
- printf (" Arrived at node %d by two different paths.\n", d);
- done = 1;
- }
- else
- nodes[d / 8] |= 1 << (d % 8);
-
- if (node->link[0] != NULL)
- nl = recurse_tree (tree, node->link[0], count, d, -1, nodes, threads);
-
- if (node->rtag == PLUS)
- {
- if (node->link[1] == NULL)
- {
- printf (" Null thread link.\n");
- done = 1;
- }
- nr = recurse_tree (tree, node->link[1], count, d, 1, nodes, threads);
- }
- else if (node->link[1] != &tree->root)
- {
- int dr = (int) node->link[1]->data;
- assert (dr >= 0 && dr < TREE_SIZE);
- if (threads[dr / 8] & (1 << dr % 8))
- {
- printf (" Multiple threads to node %d.\n", d);
- done = 1;
- }
- threads[dr / 8] |= 1 << (dr % 8);
- }
-
- if (nr - nl != node->bal)
- {
- printf (" Node %d has incorrect balance: right height=%d, "
- "left height=%d, difference=%d, but balance factor=%d.\n",
- d, nr, nl, nr - nl, node->bal);
- done = 1;
- }
-
- if (node->bal < -1 || node->bal > 1)
- {
- printf (" Node %d has invalid balance factor %d.\n", d, node->bal);
- done = 1;
- }
-
- if (parent != INT_MIN)
- {
- assert (dir == -1 || dir == +1);
- if (dir == -1 && d > parent)
- {
- printf (" Node %d is smaller than its left child %d.\n",
- parent, d);
- done = 1;
- }
- else if (dir == +1 && d < parent)
- {
- printf (" Node %d is larger than its right child %d.\n",
- parent, d);
- done = 1;
- }
- }
- assert (node->bal >= -1 && node->bal <= 1);
- return 1 + (nl > nr ? nl : nr);
- }
- else return 0;
-}
-
-/* Check that everything about TREE is kosher. */
-void
-verify_tree (avltr_tree *tree)
-{
- {
- unsigned char nodes[(TREE_SIZE + 7) / 8];
- unsigned char threads[(TREE_SIZE + 7) / 8];
-
- int count = 0;
- int i;
-
- memset (nodes, 0, (TREE_SIZE + 7) / 8);
- memset (threads, 0, (TREE_SIZE + 7) / 8);
-
- recurse_tree (tree, tree->root.link[0], &count, INT_MIN, 0, nodes,
- threads);
-
- if (count != tree->count)
- {
- printf (" Tree should have %d nodes, but tree count by recursive "
- "descent is %d.\n", tree->count, count);
- done = 1;
- }
-
- for (i = 0; i < TREE_SIZE; i++)
- {
- int thread = threads[i / 8] & (1 << (i % 8));
- int node = nodes[i / 8] & (1 << (i % 8));
-
- if (thread && !node)
- {
- printf (" A thread leads to ``node'' %d, "
- "which is not in the tree.", i);
- done = 1;
- }
- }
- }
-
- /* Check threads. */
- {
- int count = 0;
- int last = INT_MIN;
- void **data = NULL;
-
- while (NULL != (data = avltr_next (tree, data)))
- {
- if (((int) *data) < last)
- {
- printf (" Misordered right threads.\n");
- abort ();
- }
- else if (((int) *data) == last)
- {
- printf (" Loop in right threads detected on %d.\n", last);
- abort ();
- }
- last = (int) *data;
- count++;
- }
-
- if (count != tree->count)
- {
- printf (" Tree should have %d nodes, but tree count by right threads "
- "is %d.\n", tree->count, count);
- done = 1;
- }
- }
-
- if (done)
- abort ();
-}
-
-/* Arrange the N elements of ARRAY in random order. */
-void
-shuffle (int *array, int n)
-{
- int i;
-
- for (i = 0; i < n; i++)
- {
- int j = i + rand () % (n - i);
- int t = array[j];
- array[j] = array[i];
- array[i] = t;
- }
-}
-
-/* Compares avl trees rooted at A and B, making sure that they are
- identical. */
-void
-compare_trees (avltr_node *a, avltr_node *b)
-{
- int diff = 0;
-
- assert (a && b);
-
- /* Separating these conditions makes it easier to pinpoint bad data
- under a memory debugger like Checker because each test is a
- separate statement. */
- diff |= a->data != b->data;
- diff |= a->bal != b->bal;
- diff |= ((a->link[0] != NULL) ^ (b->link[0] != NULL));
- diff |= ((a->rtag == PLUS) ^ (b->rtag == PLUS));
- if (diff)
- {
- printf (" Copied nodes differ: %d b=%d a->bal=%d b->bal=%d a:",
- (int) a->data, (int) b->data, a->bal, b->bal);
- if (a->link[0])
- printf ("l");
- if (a->link[1])
- printf ("r");
- printf (" b:");
- if (b->link[0])
- printf ("l");
- if (b->link[1])
- printf ("r");
- printf ("\n");
- abort ();
- }
- if (a->link[0] != NULL)
- compare_trees (a->link[0], b->link[0]);
- if (a->rtag == PLUS)
- compare_trees (a->link[1], b->link[1]);
-}
-
-/* Simple stress test procedure for the AVL tree routines. Does the
- following:
-
- * Generate a random number seed. By default this is generated from
- the current time. You can also pass a seed value on the command
- line if you want to test the same case. The seed value is
- displayed.
-
- * Create a tree and insert the integers from 0 up to TREE_SIZE - 1
- into it, in random order. Verify the tree structure after each
- insertion.
-
- * Remove each integer from the tree, in a different random order.
- After each deletion, verify the tree structure; also, make a copy
- of the tree into a new tree, verify the copy and compare it to the
- original, then destroy the copy.
-
- * Destroy the tree, increment the random seed value, and start over.
-
- If you make any modifications to the avl tree routines, then you
- might want to insert some calls to print_structure() at strategic
- places in order to be able to see what's really going on. Also,
- memory debuggers like Checker or Purify are very handy. */
-#define N_ITERATIONS 16
-int
-main (int argc, char **argv)
-{
- int array[TREE_SIZE];
- int seed;
- int iteration;
-
- if (argc == 2)
- seed = atoi (argv[1]);
- else
- seed = time (0) * 257 % 32768;
-
- fputs ("Testing avltr...\n", stdout);
-
- for (iteration = 1; iteration <= N_ITERATIONS; iteration++)
- {
- avltr_tree *tree;
- int i;
-
- printf ("Iteration %4d/%4d: seed=%5d", iteration, N_ITERATIONS, seed);
- fflush (stdout);
-
- srand (seed++);
-
- for (i = 0; i < TREE_SIZE; i++)
- array[i] = i;
- shuffle (array, TREE_SIZE);
-
- tree = avltr_create (compare_ints, NULL);
- for (i = 0; i < TREE_SIZE; i++)
- avltr_force_insert (tree, (void *) (array[i]));
- verify_tree (tree);
-
- shuffle (array, TREE_SIZE);
- for (i = 0; i < TREE_SIZE; i++)
- {
- avltr_tree *copy;
-
- avltr_delete (tree, (void *) (array[i]));
- verify_tree (tree);
-
- copy = avltr_copy (tree, NULL);
- verify_tree (copy);
- if (tree->root.link[0] != NULL)
- compare_trees (tree->root.link[0], copy->root.link[0]);
- else if (copy->root.link[0] != NULL)
- {
- printf (" Empty tree results in nonempty copy.\n");
- abort ();
- }
- avltr_destroy (copy, NULL);
-
- if (i % 128 == 0)
- {
- putchar ('.');
- fflush (stdout);
- }
- }
- fputs (" good.\n", stdout);
-
- avltr_destroy (tree, NULL);
- }
-
- return 0;
-}
-#endif /* SELF_TEST */
-
-/*
- Local variables:
- compile-command: "gcc -DSELF_TEST=1 -W -Wall -I. -o ./avltr-test avltr.c"
- End:
-*/
-
diff --git a/avl-1.4.0/avltr.h b/avl-1.4.0/avltr.h
deleted file mode 100644
index 27465ef..0000000
--- a/avl-1.4.0/avltr.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file avltr.h in libavl. */
-
-#if !avltr_h
-#define avltr_h 1
-
-/* The default maximum height of 32 allows for AVL trees having
- between 5,704,880 and 4,294,967,295 nodes, depending on order of
- insertion. You may change this compile-time constant as you
- wish. */
-#ifndef AVL_MAX_HEIGHT
-#define AVL_MAX_HEIGHT 32
-#endif
-
-/* Structure for a node in a right-threaded AVL tree. */
-typedef struct avltr_node
- {
- void *data; /* Pointer to data. */
- struct avltr_node *link[2]; /* Subtrees or threads. */
- signed char bal; /* Balance factor. */
- char cache; /* Used during insertion. */
- char pad; /* Reserved for fully threaded trees. */
- signed char rtag; /* Right thread tag. */
- }
-avltr_node;
-
-/* Used for traversing a right-threaded AVL tree. */
-typedef struct avltr_traverser
- {
- int init; /* Initialized? */
- const avltr_node *p; /* Last node returned. */
- }
-avltr_traverser;
-
-/* Initializer for avltr_traverser. */
-#define AVLTR_TRAVERSER_INIT {0}
-
-/* Function types. */
-#if !AVL_FUNC_TYPES
-#define AVL_FUNC_TYPES 1
-typedef int (*avl_comparison_func) (const void *a, const void *b, void *param);
-typedef void (*avl_node_func) (void *data, void *param);
-typedef void *(*avl_copy_func) (void *data, void *param);
-#endif
-
-/* Structure which holds information about a threaded AVL tree. */
-typedef struct avltr_tree
- {
- avltr_node root; /* Tree root node. */
- avl_comparison_func cmp; /* Used to compare keys. */
- int count; /* Number of nodes in the tree. */
- void *param; /* Arbitary user data. */
- }
-avltr_tree;
-
-/* General functions. */
-avltr_tree *avltr_create (avl_comparison_func, void *param);
-void avltr_destroy (avltr_tree *, avl_node_func);
-void avltr_free (avltr_tree *);
-int avltr_count (const avltr_tree *);
-avltr_tree *avltr_copy (const avltr_tree *, avl_copy_func);
-struct avl_tree;
-avltr_tree *avltr_thread (struct avl_tree *);
-struct avl_tree *avltr_unthread (avltr_tree *);
-
-/* Walk the tree. */
-void avltr_walk (const avltr_tree *, avl_node_func, void *param);
-void *avltr_traverse (const avltr_tree *, avltr_traverser *);
-#define avlt_init_traverser(TRAVERSER) ((TRAVERSER)->init = 0)
-void **avltr_next (const avltr_tree *tree, void **item);
-
-/* Search for a given item. */
-void **avltr_probe (avltr_tree *, void *);
-void *avltr_delete (avltr_tree *, const void *);
-void **avltr_find (const avltr_tree *, const void *);
-void **avltr_find_close (const avltr_tree *, const void *);
-
-#if __GCC__ >= 2
-extern inline void *
-avltr_insert (avltr_tree *tree, void *item)
-{
- void **p = avltr_probe (tree, item);
- return (*p == item) ? NULL : *p;
-}
-
-extern inline void *
-avltr_replace (avltr_tree *tree, void *item)
-{
- void **p = avltr_probe (tree, item);
- if (*p == item)
- return NULL;
- else
- {
- void *r = *p;
- *p = item;
- return r;
- }
-}
-#else /* not gcc */
-void *avltr_insert (avltr_tree *tree, void *item);
-void *avltr_replace (avltr_tree *tree, void *item);
-#endif /* not gcc */
-
-/* Easy assertions on insertion & deletion. */
-#ifndef NDEBUG
-#define avltr_force_insert(A, B) \
- do \
- { \
- void *r = avltr_insert (A, B); \
- assert (r == NULL); \
- } \
- while (0)
-void *avltr_force_delete (avltr_tree *, void *);
-#else
-#define avltr_force_insert(A, B) \
- avltr_insert (A, B)
-#define avltr_force_delete(A, B) \
- avltr_delete (A, B)
-#endif
-
-#endif /* avltr_h */
diff --git a/avl-1.4.0/configure b/avl-1.4.0/configure
deleted file mode 100755
index 5b955a9..0000000
--- a/avl-1.4.0/configure
+++ /dev/null
@@ -1,1297 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# 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
-
-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"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$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="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # 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" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # 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
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -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
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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="$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="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # 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'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # 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" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -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-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" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- 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"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-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
-
-# 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
-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" ;;
- 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
-
-# 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
-
-# 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=avl.c
-
-# 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%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-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; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-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
-
-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
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# 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:556: checking for a BSD compatible install" >&5
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # 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/*) ;;
- *)
- # 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 test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- 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.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&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}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:609: checking whether build environment is sane" >&5
-# Just in case
-sleep 1
-echo timestamp > conftestfile
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
- if test "$*" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftestfile`
- fi
- if test "$*" != "X $srcdir/configure conftestfile" \
- && test "$*" != "X conftestfile $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- { echo "configure: error: ls -t appears to fail. Make sure there is not a broken
-alias in your environment" 1>&2; exit 1; }
- fi
-
- test "$2" = conftestfile
- )
-then
- # Ok.
- :
-else
- { echo "configure: error: newly created file is older than distributed files!
-Check your system clock" 1>&2; exit 1; }
-fi
-rm -f conftest*
-echo "$ac_t""yes" 1>&6
-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 &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:666: 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
-else
- cat > conftestmake <<\EOF
-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=`
-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
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-
-PACKAGE=avl
-
-VERSION=1.4.0
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
- { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-cat >> confdefs.h <<EOF
-#define PACKAGE "$PACKAGE"
-EOF
-
-cat >> confdefs.h <<EOF
-#define VERSION "$VERSION"
-EOF
-
-
-
-missing_dir=`cd $ac_aux_dir && pwd`
-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:712: checking for working aclocal" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
- ACLOCAL=aclocal
- echo "$ac_t""found" 1>&6
-else
- ACLOCAL="$missing_dir/missing aclocal"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:725: checking for working autoconf" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoconf --version) < /dev/null > /dev/null 2>&1; then
- AUTOCONF=autoconf
- echo "$ac_t""found" 1>&6
-else
- AUTOCONF="$missing_dir/missing autoconf"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:738: checking for working automake" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (automake --version) < /dev/null > /dev/null 2>&1; then
- AUTOMAKE=automake
- echo "$ac_t""found" 1>&6
-else
- AUTOMAKE="$missing_dir/missing automake"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:751: checking for working autoheader" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (autoheader --version) < /dev/null > /dev/null 2>&1; then
- AUTOHEADER=autoheader
- echo "$ac_t""found" 1>&6
-else
- AUTOHEADER="$missing_dir/missing autoheader"
- echo "$ac_t""missing" 1>&6
-fi
-
-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:764: checking for working makeinfo" >&5
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf. Sigh.
-if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
- MAKEINFO=makeinfo
- echo "$ac_t""found" 1>&6
-else
- MAKEINFO="$missing_dir/missing makeinfo"
- echo "$ac_t""missing" 1>&6
-fi
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:780: 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 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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:810: 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 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_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"
-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
- # 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" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-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:861: 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 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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-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; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:893: 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_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
-
-cat > conftest.$ac_ext << EOF
-
-#line 904 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:909: \"$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
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_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_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:935: 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:940: 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:949: \"$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
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-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:968: 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
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- 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:1002: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-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=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# 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.
-#
-# 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.
-#
-EOF
-# 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
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- 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}'
-
-# 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.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
-
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# 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
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -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"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# 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%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
-s%@INSTALL_DATA@%$INSTALL_DATA%g
-s%@PACKAGE@%$PACKAGE%g
-s%@VERSION@%$VERSION%g
-s%@ACLOCAL@%$ACLOCAL%g
-s%@AUTOCONF@%$AUTOCONF%g
-s%@AUTOMAKE@%$AUTOMAKE%g
-s%@AUTOHEADER@%$AUTOHEADER%g
-s%@MAKEINFO@%$MAKEINFO%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@CC@%$CC%g
-s%@RANLIB@%$RANLIB%g
-
-CEOF
-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_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
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # 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" ;;
- 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%/[^/][^/]*$%%'`
- 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%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- 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" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- 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
-
- 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*
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/avl-1.4.0/configure.in b/avl-1.4.0/configure.in
deleted file mode 100644
index 118f3c8..0000000
--- a/avl-1.4.0/configure.in
+++ /dev/null
@@ -1,5 +0,0 @@
-AC_INIT(avl.c)
-AM_INIT_AUTOMAKE(avl, 1.4.0)
-AC_PROG_CC
-AC_PROG_RANLIB
-AC_OUTPUT(Makefile)
diff --git a/avl-1.4.0/install-sh b/avl-1.4.0/install-sh
deleted file mode 100755
index e9de238..0000000
--- a/avl-1.4.0/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/avl-1.4.0/missing b/avl-1.4.0/missing
deleted file mode 100755
index 7789652..0000000
--- a/avl-1.4.0/missing
+++ /dev/null
@@ -1,190 +0,0 @@
-#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-# Franc,ois Pinard <pinard@iro.umontreal.ca>, 1996.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
-fi
-
-case "$1" in
-
- -h|--h|--he|--hel|--help)
- echo "\
-$0 [OPTION]... PROGRAM [ARGUMENT]...
-
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
-
-Options:
- -h, --help display this help and exit
- -v, --version output version information and exit
-
-Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
- ;;
-
- -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing - GNU libit 0.0"
- ;;
-
- -*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
- exit 1
- ;;
-
- aclocal)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acinclude.m4' or \`configure.in'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`configure.in'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`acconfig.h' or \`configure.in'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' configure.in`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case "$f" in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
-
- bison|yacc)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if [ ! -f y.tab.h ]; then
- echo >y.tab.h
- fi
- if [ ! -f y.tab.c ]; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex|flex)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if [ $# -ne 1 ]; then
- eval LASTARG="\${$#}"
- case "$LASTARG" in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if [ -f "$SRCFILE" ]; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if [ ! -f lex.yy.c ]; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- makeinfo)
- echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
- if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
- fi
- touch $file
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequirements for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/avl-1.4.0/mkinstalldirs b/avl-1.4.0/mkinstalldirs
deleted file mode 100755
index 6b3b5fc..0000000
--- a/avl-1.4.0/mkinstalldirs
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id$
-
-errstatus=0
-
-for file
-do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d
- do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp"
-
- mkdir "$pathcomp" || lasterr=$?
-
- if test ! -d "$pathcomp"; then
- errstatus=$lasterr
- fi
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/avl-1.4.0/rb.c b/avl-1.4.0/rb.c
deleted file mode 100644
index b0ec05d..0000000
--- a/avl-1.4.0/rb.c
+++ /dev/null
@@ -1,1083 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file rb.c in libavl. */
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-#if SELF_TEST
-#include <limits.h>
-#include <time.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "rb.h"
-
-#if !PSPP && !__GCC__
-#define inline
-#endif
-
-#if __GNUC__ >= 2
-#define unused __attribute__ ((unused))
-#else
-#define unused
-#endif
-
-#ifdef HAVE_XMALLOC
-void *xmalloc (size_t);
-#else /* !HAVE_XMALLOC */
-/* Allocates SIZE bytes of space using malloc(). Aborts if out of
- memory. */
-static void *
-xmalloc (size_t size)
-{
- void *vp;
-
- if (size == 0)
- return NULL;
- vp = malloc (size);
-
- assert (vp != NULL);
- if (vp == NULL)
- {
- fprintf (stderr, "virtual memory exhausted\n");
- exit (EXIT_FAILURE);
- }
- return vp;
-}
-#endif /* !HAVE_XMALLOC */
-
-/* Creates a red-black tree in arena OWNER (which can be NULL). The
- arena is owned by the caller, not by the red-black tree. CMP is a
- order function for the data to be stored in the tree. PARAM is
- arbitrary data that becomes an argument to the comparison
- function. */
-rb_tree *
-rb_create (MAYBE_ARENA avl_comparison_func cmp, void *param)
-{
- rb_tree *tree;
-
- assert (cmp != NULL);
- tree = xmalloc (sizeof (rb_tree));
-
- tree->root.link[0] = NULL;
- tree->root.link[1] = NULL;
- tree->cmp = cmp;
- tree->count = 0;
- tree->param = param;
-
- return tree;
-}
-
-/* Destroy tree TREE. Function FREE_FUNC is called for every node in
- the tree as it is destroyed.
-
- No effect if the tree has an arena owner and free_func is NULL.
- The caller owns the arena and must destroy it itself.
-
- Do not attempt to reuse the tree after it has been freed. Create a
- new one. */
-void
-rb_destroy (rb_tree *tree, avl_node_func free_func)
-{
- assert (tree != NULL);
-
- {
- /* Uses Knuth's Algorithm 2.3.1T as modified in exercise 13
- (postorder traversal). */
-
- /* T1. */
- rb_node *an[RB_MAX_HEIGHT]; /* Stack A: nodes. */
- unsigned long ab = 0; /* Stack A: bits. */
- int ap = 0; /* Stack A: height. */
- rb_node *p = tree->root.link[0];
-
- for (;;)
- {
- /* T2. */
- while (p != NULL)
- {
- /* T3. */
- ab &= ~(1ul << ap);
- an[ap++] = p;
- p = p->link[0];
- }
-
- /* T4. */
- for (;;)
- {
- if (ap == 0)
- goto done;
-
- p = an[--ap];
- if ((ab & (1ul << ap)) == 0)
- {
- ab |= (1ul << ap++);
- p = p->link[1];
- break;
- }
-
- if (free_func)
- free_func (p->data, tree->param);
- free (p);
- }
- }
- }
-
- done:
- free (tree);
-}
-
-/* rb_destroy() with FREE_FUNC hardcoded as free(). */
-void
-rb_free (rb_tree *tree)
-{
- rb_destroy (tree, (avl_node_func) free);
-}
-
-/* Return the number of nodes in TREE. */
-int
-rb_count (const rb_tree *tree)
-{
- assert (tree != NULL);
- return tree->count;
-}
-
-/* Copy the contents of TREE to a new tree in arena OWNER. If COPY is
- non-NULL, then each data item is passed to function COPY, and the
- return values are inserted into the new tree; otherwise, the items
- are copied verbatim from the old tree to the new tree. Returns the
- new tree. */
-rb_tree *
-rb_copy (MAYBE_ARENA const rb_tree *tree, avl_copy_func copy)
-{
- /* This is a combination of Knuth's Algorithm 2.3.1C (copying a
- binary tree) and Algorithm 2.3.1T as modified by exercise 12
- (preorder traversal). */
-
- rb_tree *new_tree;
-
- /* PT1. */
- const rb_node *pa[RB_MAX_HEIGHT]; /* Stack PA: nodes. */
- const rb_node **pp = pa; /* Stack PA: stack pointer. */
- const rb_node *p = &tree->root;
-
- /* QT1. */
- rb_node *qa[RB_MAX_HEIGHT]; /* Stack QA: nodes. */
- rb_node **qp = qa; /* Stack QA: stack pointer. */
- rb_node *q;
-
- assert (tree != NULL);
- new_tree = rb_create (tree->cmp, tree->param);
- new_tree->count = tree->count;
- q = &new_tree->root;
-
- for (;;)
- {
- /* C4. */
- if (p->link[0] != NULL)
- {
- rb_node *r = xmalloc (sizeof (rb_node));
- r->link[0] = r->link[1] = NULL;
- q->link[0] = r;
- }
-
- /* C5: Find preorder successors of P and Q. */
- goto start;
- for (;;)
- {
- /* PT2. */
- while (p != NULL)
- {
- goto escape;
- start:
- /* PT3. */
- *pp++ = p;
- *qp++ = q;
- p = p->link[0];
- q = q->link[0];
- }
-
- /* PT4. */
- if (pp == pa)
- {
- assert (qp == qa);
- return new_tree;
- }
-
- p = *--pp;
- q = *--qp;
-
- /* PT5. */
- p = p->link[1];
- q = q->link[1];
- }
- escape:
-
- /* C2. */
- if (p->link[1])
- {
- rb_node *r = xmalloc (sizeof (rb_node));
- r->link[0] = r->link[1] = NULL;
- q->link[1] = r;
- }
-
- /* C3. */
- q->color = p->color;
- if (copy == NULL)
- q->data = p->data;
- else
- q->data = copy (p->data, tree->param);
- }
-}
-
-/* Walk tree TREE in inorder, calling WALK_FUNC at each node. Passes
- PARAM to WALK_FUNC. */
-void
-rb_walk (const rb_tree *tree, avl_node_func walk_func, void *param)
-{
- /* Uses Knuth's algorithm 2.3.1T (inorder traversal). */
- assert (tree && walk_func);
-
- {
- /* T1. */
- const rb_node *an[RB_MAX_HEIGHT]; /* Stack A: nodes. */
- const rb_node **ap = an; /* Stack A: stack pointer. */
- const rb_node *p = tree->root.link[0];
-
- for (;;)
- {
- /* T2. */
- while (p != NULL)
- {
- /* T3. */
- *ap++ = p;
- p = p->link[0];
- }
-
- /* T4. */
- if (ap == an)
- return;
- p = *--ap;
-
- /* T5. */
- walk_func (p->data, param);
- p = p->link[1];
- }
- }
-}
-
-/* Each call to this function for a given TREE and TRAV return the
- next item in the tree in inorder. Initialize the first element of
- TRAV (init) to 0 before calling the first time. Returns NULL when
- out of elements. */
-void *
-rb_traverse (const rb_tree *tree, rb_traverser *trav)
-{
- assert (tree && trav);
-
- /* Uses Knuth's algorithm 2.3.1T (inorder traversal). */
- if (trav->init == 0)
- {
- /* T1. */
- trav->init = 1;
- trav->nstack = 0;
- trav->p = tree->root.link[0];
- }
- else
- /* T5. */
- trav->p = trav->p->link[1];
-
- for (;;)
- {
- /* T2. */
- while (trav->p != NULL)
- {
- /* T3. */
- trav->stack[trav->nstack++] = trav->p;
- trav->p = trav->p->link[0];
- }
-
- /* T4. */
- if (trav->nstack == 0)
- {
- trav->init = 0;
- return NULL;
- }
- trav->p = trav->stack[--trav->nstack];
-
- /* T5. */
- return trav->p->data;
- }
-}
-
-/* Search TREE for an item matching ITEM. If found, returns a pointer
- to the address of the item. If none is found, ITEM is inserted
- into the tree, and a pointer to the address of ITEM is returned.
- In either case, the pointer returned can be changed by the caller,
- or the returned data item can be directly edited, but the key data
- in the item must not be changed. */
-void **
-rb_probe (rb_tree *tree, void *item)
-{
- /* Algorithm based on RB-Insert from section 14.3 of _Introduction
- to Algorithms_, Cormen et al., MIT Press 1990, ISBN
- 0-262-03141-8. */
-
- rb_node *ap[RB_MAX_HEIGHT]; /* Stack A: Nodes. */
- char ad[RB_MAX_HEIGHT]; /* Stack A: Directions. */
- int ak = 1; /* Stack A: Pointer. */
-
- rb_node *t, *x, *y, *n;
-
- assert (tree != NULL);
- t = &tree->root;
- x = t->link[0];
-
- if (x == NULL)
- {
- tree->count++;
- assert (tree->count == 1);
- x = t->link[0] = xmalloc (sizeof (rb_node));
- x->data = item;
- x->link[0] = x->link[1] = NULL;
- x->color = RB_BLACK;
- return &x->data;
- }
-
- ad[0] = 0;
- ap[0] = &tree->root;
-
- for (;;)
- {
- int diff = tree->cmp (item, x->data, tree->param);
-
- if (diff < 0)
- {
- ap[ak] = x;
- ad[ak++] = 0;
- y = x->link[0];
- if (y == NULL)
- {
- n = x = x->link[0] = xmalloc (sizeof (rb_node));
- break;
- }
- }
- else if (diff > 0)
- {
- ap[ak] = x;
- ad[ak++] = 1;
- y = x->link[1];
- if (y == NULL)
- {
- n = x = x->link[1] = xmalloc (sizeof (rb_node));
- break;
- }
- }
- else
- return &x->data;
-
- x = y;
- }
-
- tree->count++;
- x->data = item;
- x->link[0] = x->link[1] = NULL;
- x->color = RB_RED;
-
- for (;;)
- {
- if (ak < 3 || ap[ak - 1]->color != RB_RED)
- break;
-
- if (ad[ak - 2] == 0)
- {
- y = ap[ak - 2]->link[1];
- if (y != NULL && y->color == RB_RED)
- {
- /* Case 1. */
- ap[ak - 1]->color = y->color = RB_BLACK;
- ap[ak - 2]->color = RB_RED;
- ak -= 2;
- }
- else
- {
- if (ad[ak - 1] == 1)
- {
- /* Case 2. */
- x = ap[ak - 1];
- y = x->link[1];
- x->link[1] = y->link[0];
- y->link[0] = x;
- ap[ak - 2]->link[0] = y;
- }
- else
- y = ap[ak - 1];
-
- /* Case 3. */
- x = ap[ak - 2];
- x->color = RB_RED;
- y->color = RB_BLACK;
-
- x->link[0] = y->link[1];
- y->link[1] = x;
- ap[ak - 3]->link[(int) ad[ak - 3]] = y;
-
- break;
- }
- }
- else
- {
- y = ap[ak - 2]->link[0];
- if (y != NULL && y->color == RB_RED)
- {
- /* Case 1. */
- ap[ak - 1]->color = y->color = RB_BLACK;
- ap[ak - 2]->color = RB_RED;
- ak -= 2;
- }
- else
- {
- if (ad[ak - 1] == 0)
- {
- /* Case 2. */
- x = ap[ak - 1];
- y = x->link[0];
- x->link[0] = y->link[1];
- y->link[1] = x;
- ap[ak - 2]->link[1] = y;
- }
- else
- y = ap[ak - 1];
-
- /* Case 3. */
- x = ap[ak - 2];
- x->color = RB_RED;
- y->color = RB_BLACK;
-
- x->link[1] = y->link[0];
- y->link[0] = x;
- ap[ak - 3]->link[(int) ad[ak - 3]] = y;
- break;
- }
- }
- }
-
- tree->root.link[0]->color = RB_BLACK;
-
- return &n->data;
-}
-
-/* Search TREE for an item matching ITEM, and return it if found. */
-void *
-rb_find (const rb_tree *tree, const void *item)
-{
- const rb_node *p;
-
- assert (tree != NULL);
- for (p = tree->root.link[0]; p; )
- {
- int diff = tree->cmp (item, p->data, tree->param);
-
- if (diff < 0)
- p = p->link[0];
- else if (diff > 0)
- p = p->link[1];
- else
- return p->data;
- }
-
- return NULL;
-}
-
-/* Search TREE for an item close to the value of ITEM, and return it.
- This function will return a null pointer only if TREE is empty. */
-void *
-rb_find_close (const rb_tree *tree, const void *item)
-{
- const rb_node *p;
-
- assert (tree != NULL);
- p = tree->root.link[0];
- if (p == NULL)
- return NULL;
-
- for (;;)
- {
- int diff = tree->cmp (item, p->data, tree->param);
- int t;
-
- if (diff < 0)
- t = 0;
- else if (diff > 0)
- t = 1;
- else
- return p->data;
-
- if (p->link[t])
- p = p->link[t];
- else
- return p->data;
- }
-}
-
-/* Searches red-black tree TREE for an item matching ITEM. If found,
- the item is removed from the tree and the actual item found is
- returned to the caller. If no item matching ITEM exists in the
- tree, returns NULL. */
-void *
-rb_delete (rb_tree *tree, const void *item)
-{
- /* Algorithm based on RB-Delete and RB-Delete-Fixup from section
- 14.4 of _Introduction to Algorithms_, Cormen et al., MIT Press
- 1990, ISBN 0-262-03141-8. */
-
- rb_node *pa[RB_MAX_HEIGHT]; /* Stack P: Nodes. */
- char a[RB_MAX_HEIGHT]; /* Stack P: Bits. */
- int k = 1; /* Stack P: Pointer. */
-
- rb_node *w, *x, *y, *z;
-
- assert (tree != NULL);
-
- a[0] = 0;
- pa[0] = &tree->root;
- z = tree->root.link[0];
- for (;;)
- {
- int diff;
-
- if (z == NULL)
- return NULL;
-
- diff = tree->cmp (item, z->data, tree->param);
- if (diff == 0)
- break;
-
- pa[k] = z;
- if (diff < 0)
- {
- z = z->link[0];
- a[k] = 0;
- }
- else if (diff > 0)
- {
- z = z->link[1];
- a[k] = 1;
- }
- k++;
- }
- tree->count--;
-
- item = z->data;
-
- /* RB-Delete: Line 1. */
- if (z->link[0] == NULL || z->link[1] == NULL)
- {
- /* Line 2. */
- y = z;
-
- /* Lines 4-6. */
- if (y->link[0] != NULL)
- x = y->link[0];
- else
- x = y->link[1];
-
- pa[k - 1]->link[(int) a[k - 1]] = x;
- }
- else
- {
- pa[k] = z;
- a[k++] = 1;
-
- /* Line 3. */
- y = z->link[1];
- while (y->link[0])
- {
- pa[k] = y;
- a[k++] = 0;
- y = y->link[0];
- }
-
- /* Lines 4-6. */
- x = y->link[1];
-
- /* Lines 13-15. */
- z->data = y->data;
- pa[k - 1]->link[(int) a[k - 1]] = x;
- }
-
- /* Line 16. */
- if (y->color == RB_RED)
- {
- free (y);
- return (void *) item;
- }
-
- free (y);
-
- /* Numbers below are line numbers from RB-Delete-Fixup. */
- while (k > 1 && (x == NULL || x->color == RB_BLACK)) /* 1 */
- {
- if (a[k - 1] == 0) /* 2 */
- {
- w = pa[k - 1]->link[1]; /* 3 */
-
- if (w->color == RB_RED) /* 4 */
- {
- /* Case 1. */
- w->color = RB_BLACK; /* 5 */
- pa[k - 1]->color = RB_RED; /* 6 */
-
- pa[k - 1]->link[1] = w->link[0]; /* 7 */
- w->link[0] = pa[k - 1];
- pa[k - 2]->link[(int) a[k - 2]] = w;
-
- pa[k] = pa[k - 1];
- a[k] = 0;
- pa[k - 1] = w;
- k++;
-
- w = pa[k - 1]->link[1]; /* 8 */
- }
-
- if ((w->link[0] == NULL || w->link[0]->color == RB_BLACK) /* 9 */
- && (w->link[1] == NULL || w->link[1]->color == RB_BLACK))
- {
- /* Case 2. */
- w->color = RB_RED; /* 10 */
-
- x = pa[k - 1]; /* 11 */
- k--;
- }
- else
- {
- if (w->link[1] == NULL || w->link[1]->color == RB_BLACK) /* 12 */
- {
- /* Case 3. */
- w->link[0]->color = RB_BLACK; /* 13 */
- w->color = RB_RED; /* 14 */
-
- y = w->link[0]; /* 15 */
- w->link[0] = y->link[1];
- y->link[1] = w;
-
- w = pa[k - 1]->link[1] = y; /* 16 */
- }
-
- /* Case 4. */
- w->color = pa[k - 1]->color; /* 17 */
- pa[k - 1]->color = RB_BLACK; /* 18 */
- w->link[1]->color = RB_BLACK; /* 19 */
-
- pa[k - 1]->link[1] = w->link[0]; /* 20 */
- w->link[0] = pa[k - 1];
- pa[k - 2]->link[(int) a[k - 2]] = w;
-
- x = tree->root.link[0]; /* 21 */
- break;
- }
- }
- else
- {
- w = pa[k - 1]->link[0];
- if (w->color == RB_RED)
- {
- /* Case 1. */
- w->color = RB_BLACK;
- pa[k - 1]->color = RB_RED;
-
- pa[k - 1]->link[0] = w->link[1];
- w->link[1] = pa[k - 1];
- pa[k - 2]->link[(int) a[k - 2]] = w;
-
- pa[k] = pa[k - 1];
- a[k] = 1;
- pa[k - 1] = w;
- k++;
-
- w = pa[k - 1]->link[0];
- }
-
- if ((w->link[0] == NULL || w->link[0]->color == RB_BLACK)
- && (w->link[1] == NULL || w->link[1]->color == RB_BLACK))
- {
- /* Case 2. */
- w->color = RB_RED;
- x = pa[k - 1];
- k--;
- }
- else
- {
- if (w->link[0] == NULL || w->link[0]->color == RB_BLACK)
- {
- /* Case 3. */
- w->link[1]->color = RB_BLACK;
- w->color = RB_RED;
-
- y = w->link[1];
- w->link[1] = y->link[0];
- y->link[0] = w;
-
- w = pa[k - 1]->link[0] = y;
- }
-
- /* Case 4. */
- w->color = pa[k - 1]->color;
- pa[k - 1]->color = RB_BLACK;
- w->link[0]->color = RB_BLACK;
-
- pa[k - 1]->link[0] = w->link[1];
- w->link[1] = pa[k - 1];
- pa[k - 2]->link[(int) a[k - 2]] = w;
-
- x = tree->root.link[0];
- break;
- }
- }
- }
-
- if (x != NULL)
- x->color = RB_BLACK; /* 23 */
-
- return (void *) item;
-}
-
-/* Inserts ITEM into TREE. Returns NULL if the item was inserted,
- otherwise a pointer to the duplicate item. */
-void *
-rb_insert (rb_tree *tree, void *item)
-{
- void **p;
-
- assert (tree != NULL);
-
- p = rb_probe (tree, item);
- return (*p == item) ? NULL : *p;
-}
-
-/* If ITEM does not exist in TREE, inserts it and returns NULL. If a
- matching item does exist, it is replaced by ITEM and the item
- replaced is returned. The caller is responsible for freeing the
- item returned. */
-void *
-rb_replace (rb_tree *tree, void *item)
-{
- void **p;
-
- assert (tree != NULL);
-
- p = rb_probe (tree, item);
- if (*p == item)
- return NULL;
- else
- {
- void *r = *p;
- *p = item;
- return r;
- }
-}
-
-/* Delete ITEM from TREE when you know that ITEM must be in TREE. For
- debugging purposes. */
-void *
-(rb_force_delete) (rb_tree *tree, void *item)
-{
- void *found = rb_delete (tree, item);
- assert (found != NULL);
- return found;
-}
-
-#if SELF_TEST
-
-/* Used to flag delayed aborting. */
-int done = 0;
-
-/* Print the structure of node NODE of a red-black tree, which is
- LEVEL levels from the top of the tree. Uses different delimiters
- to visually distinguish levels. */
-void
-print_structure (rb_node *node, int level)
-{
- char lc[] = "([{<`/";
- char rc[] = ")]}>'\\";
-
- assert (level <= 10);
-
- if (node == NULL)
- {
- printf (" nil");
- fflush (stdout);
- return;
- }
- printf (" %c%d%c",
- lc[level % 6], (int) node->data,
- node->color == RB_BLACK ? 'b' : 'r');
- fflush (stdout);
- if (node->link[0] || node->link[1])
- print_structure (node->link[0], level + 1);
- if (node->link[1])
- print_structure (node->link[1], level + 1);
- printf ("%c", rc[level % 6]);
- fflush (stdout);
-}
-
-/* Compare two integers A and B and return a strcmp()-type result. */
-int
-compare_ints (const void *a, const void *b, void *param unused)
-{
- return ((int) a) - ((int) b);
-}
-
-/* Print the value of integer A. */
-void
-print_int (void *a, void *param unused)
-{
- printf (" %d", (int) a);
-}
-
-/* Linearly print contents of TREE. */
-void
-print_contents (rb_tree *tree)
-{
- rb_walk (tree, print_int, NULL);
- printf ("\n");
-}
-
-/* Examine NODE in a red-black tree. *COUNT is increased by the
- number of nodes in the tree, including the current one. Returns
- the number of black nodes (including this node) in a path from this
- node to any leaf. */
-int
-recurse_tree (rb_node *node, int *count, int ge, int le)
-{
- if (node)
- {
- const int d = (int) node->data;
- int nl = 1;
- int nr = 1;
-
- (*count)++;
-
- if (!(d >= ge) || !(d <= le))
- {
- printf (" Node %d is out of order in the tree.\n", d);
- done = 1;
- }
-
- if (node->link[0])
- nl = recurse_tree (node->link[0], count, ge, d - 1);
- if (node->link[1])
- nr = recurse_tree (node->link[1], count, d + 1, le);
-
- if (node->color != RB_RED && node->color != RB_BLACK)
- {
- printf (" Node %d is neither red nor black (%d).\n", d, node->color);
- done = 1;
- }
-
- if (node->color == RB_RED
- && node->link[0] && node->link[0]->color == RB_RED)
- {
- printf (" Red node %d has red left child %d\n",
- d, (int) node->link[0]->data);
- done = 1;
- }
-
- if (node->color == RB_RED
- && node->link[1] && node->link[1]->color == RB_RED)
- {
- printf (" Red node %d has red right child %d\n",
- d, (int) node->link[1]->data);
- done = 1;
- }
-
- if (nl != nr)
- {
- printf (" Node %d has two different black-heights: left bh=%d, "
- "right bh=%d\n", d, nl, nr);
- done = 1;
- }
-
- return (node->color == RB_BLACK) + nl;
- }
- else return 1;
-}
-
-/* Check that everything about TREE is kosher. */
-void
-verify_tree (rb_tree *tree)
-{
- int count = 0;
- recurse_tree (tree->root.link[0], &count, INT_MIN, INT_MAX);
- if (count != tree->count)
- {
- printf (" Tree has %d nodes, but tree count is %d.\n",
- count, tree->count);
- done = 1;
- }
- if (done)
- abort ();
-}
-
-/* Arrange the N elements of ARRAY in random order. */
-void
-shuffle (int *array, int n)
-{
- int i;
-
- for (i = 0; i < n; i++)
- {
- int j = i + rand () % (n - i);
- int t = array[j];
- array[j] = array[i];
- array[i] = t;
- }
-}
-
-/* Compares red-black trees rooted at A and B, making sure that they
- are identical. */
-void
-compare_trees (rb_node *a, rb_node *b)
-{
- if (a == NULL || b == NULL)
- {
- assert (a == NULL && b == NULL);
- return;
- }
- if (a->data != b->data || a->color != b->color
- || ((a->link[0] != NULL) ^ (b->link[0] != NULL))
- || ((a->link[1] != NULL) ^ (b->link[1] != NULL)))
- {
- printf (" Copied nodes differ: %d b=%d a->color=%d b->color=%d a:",
- (int) a->data, (int) b->data, a->color, b->color);
- if (a->link[0])
- printf ("l");
- if (a->link[1])
- printf ("r");
- printf (" b:");
- if (b->link[0])
- printf ("l");
- if (b->link[1])
- printf ("r");
- printf ("\n");
- abort ();
- }
- if (a->link[0] != NULL)
- compare_trees (a->link[0], b->link[0]);
- if (a->link[1] != NULL)
- compare_trees (a->link[1], b->link[1]);
-}
-
-/* Simple stress test procedure for the red-black tree routines. Does
- the following:
-
- * Generate a random number seed. By default this is generated from
- the current time. You can also pass a seed value on the command
- line if you want to test the same case. The seed value is
- displayed.
-
- * Create a tree and insert the integers from 0 up to TREE_SIZE - 1
- into it, in random order. Verify the tree structure after each
- insertion.
-
- * Remove each integer from the tree, in a different random order.
- After each deletion, verify the tree structure; also, make a copy
- of the tree into a new tree, verify the copy and compare it to the
- original, then destroy the copy.
-
- * Destroy the tree, increment the random seed value, and start over.
-
- If you make any modifications to the red-black tree routines, then
- you might want to insert some calls to print_structure() at
- strategic places in order to be able to see what's really going on.
- Also, memory debuggers like Checker or Purify are very handy. */
-#define TREE_SIZE 16
-#define N_ITERATIONS 1024
-int
-main (int argc, char **argv)
-{
- int array[TREE_SIZE];
- int seed;
- int iteration;
-
- if (argc == 2)
- seed = atoi (argv[1]);
- else
- seed = time (0) * 257 % 32768;
-
- fputs ("Testing rb...\n", stdout);
-
- for (iteration = 1; iteration <= N_ITERATIONS; iteration++)
- {
- rb_tree *tree;
- int i;
-
- printf ("Iteration %4d/%4d: seed=%5d", iteration, N_ITERATIONS, seed);
- fflush (stdout);
-
- srand (seed++);
-
- for (i = 0; i < TREE_SIZE; i++)
- array[i] = i;
- shuffle (array, TREE_SIZE);
-
- tree = rb_create (compare_ints, NULL);
- for (i = 0; i < TREE_SIZE; i++)
- rb_force_insert (tree, (void *) (array[i]));
- verify_tree (tree);
-
- shuffle (array, TREE_SIZE);
- for (i = 0; i < TREE_SIZE; i++)
- {
- rb_tree *copy;
-
- rb_delete (tree, (void *) (array[i]));
- verify_tree (tree);
-
- copy = rb_copy (tree, NULL);
- verify_tree (copy);
- compare_trees (tree->root.link[0], copy->root.link[0]);
- rb_destroy (copy, NULL);
-
- if (i % 128 == 0)
- {
- putchar ('.');
- fflush (stdout);
- }
- }
- fputs (" good.\n", stdout);
-
- rb_destroy (tree, NULL);
- }
-
- return 0;
-}
-#endif /* SELF_TEST */
-
-/*
- Local variables:
- compile-command: "gcc -DSELF_TEST=1 -W -Wall -I. -o ./rb-test rb.c"
- End:
-*/
diff --git a/avl-1.4.0/rb.h b/avl-1.4.0/rb.h
deleted file mode 100644
index 26a9f49..0000000
--- a/avl-1.4.0/rb.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file rb.h in libavl. */
-
-#if !rb_h
-#define rb_h 1
-
-/* The default maximum height of 32 allows for red-black trees having
- between 65,535 and 4,294,967,295 nodes, depending on order of
- insertion. You may change this compile-time constant as you
- wish. */
-#ifndef RB_MAX_HEIGHT
-#define RB_MAX_HEIGHT 32
-#endif
-
-/* Node colors. */
-enum
- {
- RB_BLACK,
- RB_RED,
- };
-
-/* Structure for a node in a red-black tree. */
-typedef struct rb_node
- {
- void *data; /* Pointer to data. */
- struct rb_node *link[2]; /* Subtrees. */
- signed char color; /* Color. */
- char cache; /* Used during insertion. */
- signed char pad[2]; /* Unused. Reserved for threaded trees. */
- }
-rb_node;
-
-/* Used for traversing a red-black tree. */
-typedef struct rb_traverser
- {
- int init; /* Initialized? */
- int nstack; /* Top of stack. */
- const rb_node *p; /* Used for traversal. */
- const rb_node *stack[RB_MAX_HEIGHT];/* Descended trees. */
- }
-rb_traverser;
-
-/* Initializer for rb_traverser. */
-#define RB_TRAVERSER_INIT {0}
-
-/* Function types. */
-#if !AVL_FUNC_TYPES
-#define AVL_FUNC_TYPES 1
-typedef int (*avl_comparison_func) (const void *a, const void *b, void *param);
-typedef void (*avl_node_func) (void *data, void *param);
-typedef void *(*avl_copy_func) (void *data, void *param);
-#endif
-
-/* Structure which holds information about a red-black tree. */
-typedef struct rb_tree
- {
-#if PSPP
- struct arena **owner; /* Arena to store nodes. */
-#endif
- rb_node root; /* Tree root node. */
- avl_comparison_func cmp; /* Used to compare keys. */
- int count; /* Number of nodes in the tree. */
- void *param; /* Arbitary user data. */
- }
-rb_tree;
-
-#if PSPP
-#define MAYBE_ARENA struct arena **owner,
-#else
-#define MAYBE_ARENA /* nothing */
-#endif
-
-/* General functions. */
-rb_tree *rb_create (MAYBE_ARENA avl_comparison_func, void *param);
-void rb_destroy (rb_tree *, avl_node_func);
-void rb_free (rb_tree *);
-int rb_count (const rb_tree *);
-rb_tree *rb_copy (MAYBE_ARENA const rb_tree *, avl_copy_func);
-
-/* Walk the tree. */
-void rb_walk (const rb_tree *, avl_node_func, void *param);
-void *rb_traverse (const rb_tree *, rb_traverser *);
-#define rb_init_traverser(TRAVERSER) ((TRAVERSER)->init = 0)
-
-/* Search for a given item. */
-void **rb_probe (rb_tree *, void *);
-void *rb_delete (rb_tree *, const void *);
-void *rb_find (const rb_tree *, const void *);
-void *rb_find_close (const rb_tree *, const void *);
-
-#if __GCC__ >= 2
-extern inline void *
-rb_insert (rb_tree *tree, void *item)
-{
- void **p = rb_probe (tree, item);
- return (*p == item) ? NULL : *p;
-}
-
-extern inline void *
-rb_replace (rb_tree *tree, void *item)
-{
- void **p = rb_probe (tree, item);
- if (*p == item)
- return NULL;
- else
- {
- void *r = *p;
- *p = item;
- return r;
- }
-}
-#else /* not gcc */
-void *rb_insert (rb_tree *tree, void *item);
-void *rb_replace (rb_tree *tree, void *item);
-#endif /* not gcc */
-
-/* Easy assertions on insertion & deletion. */
-#ifndef NDEBUG
-#define rb_force_insert(A, B) \
- do \
- { \
- void *r = rb_insert (A, B); \
- assert (r == NULL); \
- } \
- while (0)
-void *rb_force_delete (rb_tree *, void *);
-#else
-#define rb_force_insert(A, B) \
- rb_insert (A, B)
-#define rb_force_delete(A, B) \
- rb_delete (A, B)
-#endif
-
-#endif /* rb_h */
diff --git a/avl-1.4.0/texinfo.tex b/avl-1.4.0/texinfo.tex
deleted file mode 100644
index aa52853..0000000
--- a/avl-1.4.0/texinfo.tex
+++ /dev/null
@@ -1,5484 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-%
-% Load plain if necessary, i.e., if running under initex.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-%
-\def\texinfoversion{1999-01-05}%
-%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
-% Free Software Foundation, Inc.
-%
-% This texinfo.tex file is free software; you can redistribute it and/or
-% modify it under the terms of the GNU General Public License as
-% published by the Free Software Foundation; either version 2, or (at
-% your option) any later version.
-%
-% This texinfo.tex file is distributed in the hope that it will be
-% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-% General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this texinfo.tex file; see the file COPYING. If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them. Help stamp out software-hoarding!
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-% ftp://ftp.gnu.org/pub/gnu/texinfo.tex
-% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
-% ftp://tug.org/tex/texinfo.tex
-% ftp://ctan.org/macros/texinfo/texinfo.tex
-% (and all CTAN mirrors, finger ctan@ctan.org for a list).
-% The texinfo.tex in the texinfo distribution itself could well be out
-% of date, so if that's what you're using, please check.
-%
-% Send bug reports to bug-texinfo@gnu.org.
-% Please include a precise test case in each bug report,
-% including a complete document with which we can reproduce the problem.
-%
-% To process a Texinfo manual with TeX, it's most reliable to use the
-% texi2dvi shell script that comes with the distribution. For simple
-% manuals, however, you can get away with:
-% tex foo.texi
-% texindex foo.??
-% tex foo.texi
-% tex foo.texi
-% dvips foo.dvi -o # or whatever, to process the dvi file.
-% The extra runs of TeX get the cross-reference information correct.
-% Sometimes one run after texindex suffices, and sometimes you need more
-% than two; texi2dvi does it as many times as necessary.
-
-\message{Loading texinfo [version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}%
- \catcode`+=\active \catcode`\_=\active}
-
-% Save some parts of plain tex whose names we will redefine.
-
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexi=\i
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexstar=\*
-\let\ptext=\t
-
-% We never want plain's outer \+ definition in Texinfo.
-% For @tex, we can use \tabalign.
-\let\+ = \relax
-
-
-\message{Basics,}
-\chardef\other=12
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Set up fixed words for English if not already set.
-\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
-\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
-\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
-\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
-\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
-\ifx\putwordon\undefined \gdef\putwordon{on}\fi
-\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
-\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
-\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
-\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
-\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
-\ifx\putwordShortContents\undefined \gdef\putwordShortContents{Short Contents}\fi
-\ifx\putwordTableofContents\undefined\gdef\putwordTableofContents{Table of Contents}\fi
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
-\hyphenation{white-space}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal. We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\ifx\eTeXversion\undefined
-\def\loggingall{\tracingcommands2 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\else
-\def\loggingall{\tracingcommands3 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \tracingscantokens1 \tracingassigns1 \tracingifs1
- \tracinggroups1 \tracingnesting2
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\fi
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-%
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\cornerlong \cornerlong=1pc
-\newdimen\cornerthick \cornerthick=.3pt
-\newdimen\topandbottommargin \topandbottommargin=.75in
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
- \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
- %
- \ifodd\pageno \advance\hoffset by \bindingoffset
- \else \advance\hoffset by -\bindingoffset\fi
- %
- % Do this outside of the \shipout so @code etc. will be expanded in
- % the headline as they should be, not taken literally (outputting ''code).
- \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
- \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
- %
- {%
- % Have to do this stuff outside the \shipout because we want it to
- % take effect in \write's, yet the group defined by the \vbox ends
- % before the \shipout runs.
- %
- \escapechar = `\\ % use backslash in output files.
- \indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
- \shipout\vbox{%
- \ifcropmarks \vbox to \outervsize\bgroup
- \hsize = \outerhsize
- \vskip-\topandbottommargin
- \vtop to0pt{%
- \line{\ewtop\hfil\ewtop}%
- \nointerlineskip
- \line{%
- \vbox{\moveleft\cornerthick\nstop}%
- \hfill
- \vbox{\moveright\cornerthick\nstop}%
- }%
- \vss}%
- \vskip\topandbottommargin
- \line\bgroup
- \hfil % center the page within the outer (page) hsize.
- \ifodd\pageno\hskip\bindingoffset\fi
- \vbox\bgroup
- \fi
- %
- \unvbox\headlinebox
- \pagebody{#1}%
- \ifdim\ht\footlinebox > 0pt
- % Only leave this space if the footline is nonempty.
- % (We lessened \vsize for it in \oddfootingxxx.)
- % The \baselineskip=24pt in plain's \makefootline has no effect.
- \vskip 2\baselineskip
- \unvbox\footlinebox
- \fi
- %
- \ifcropmarks
- \egroup % end of \vbox\bgroup
- \hfil\egroup % end of (centering) \line\bgroup
- \vskip\topandbottommargin plus1fill minus1fill
- \boxmaxdepth = \cornerthick
- \vbox to0pt{\vss
- \line{%
- \vbox{\moveleft\cornerthick\nsbot}%
- \hfill
- \vbox{\moveright\cornerthick\nsbot}%
- }%
- \nointerlineskip
- \line{\ewbot\hfil\ewbot}%
- }%
- \egroup % \vbox from first cropmarks clause
- \fi
- }% end of \shipout\vbox
- }% end of group with \turnoffactive
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, juha@viisa.uucp (Juha Takala)
-\ifvoid\margin\else % marginal info is present
- \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1 \unvbox#1
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
-\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks. Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
- {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
- {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1. The argument is the rest of
-% the input line (except we remove a trailing comment). #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg#1{%
- \let\next = #1%
- \begingroup
- \obeylines
- \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse. Otherwise, we're done.
-\def\parseargx{%
- % \obeyedspace is defined far below, after the definition of \sepspaces.
- \ifx\obeyedspace\temp
- \expandafter\parseargdiscardspace
- \else
- \expandafter\parseargline
- \fi
-}
-
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
-{\obeylines %
- \gdef\parseargline#1^^M{%
- \endgroup % End of the group started in \parsearg.
- %
- % First remove any @c comment, then any @comment.
- % Result of each macro is put in \toks0.
- \argremovec #1\c\relax %
- \expandafter\argremovecomment \the\toks0 \comment\relax %
- %
- % Call the caller's macro, saved as \next in \parsearg.
- \expandafter\next\expandafter{\the\toks0}%
- }%
-}
-
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us. The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
-
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
-% @end itemize @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'. Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands. (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.) But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
- \begingroup
- \ignoreactivespaces
- \edef\temp{#1}%
- \global\toks0 = \expandafter{\temp}%
- \endgroup
-}
-
-% Change the active space to expand to nothing.
-%
-\begingroup
- \obeyspaces
- \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment; press RETURN to continue}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
-
-% @begin foo is the same as @foo, for now.
-\newhelp\EMsimple{Press RETURN to continue.}
-
-\outer\def\begin{\parsearg\beginxxx}
-
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
-
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
- \removeactivespaces{#1}%
- \edef\endthing{\the\toks0}%
- %
- \expandafter\ifx\csname E\endthing\endcsname\relax
- \expandafter\ifx\csname \endthing\endcsname\relax
- % There's no \foo, i.e., no ``environment'' foo.
- \errhelp = \EMsimple
- \errmessage{Undefined command `@end \endthing'}%
- \else
- \unmatchedenderror\endthing
- \fi
- \else
- % Everything's ok; the right environment has been started.
- \csname E\endthing\endcsname
- \fi
-}
-
-% There is an environment #1, but it hasn't been started. Give an error.
-%
-\def\unmatchedenderror#1{%
- \errhelp = \EMsimple
- \errmessage{This `@end #1' doesn't have a matching `@#1'}%
-}
-
-% Define the control sequence \E#1 to give an unmatched @end error.
-%
-\def\defineunmatchedend#1{%
- \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
-}
-
-
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
- % Why was this kern here? It messes up equalizing space above and below
- % environments. --karl, 6may93
- %{\advance \baselineskip by -\singlespaceskip
- %\kern \baselineskip}%
- \setleading \singlespaceskip
-}
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt\char64}}
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt\char123}}
-\def\myrbrace {{\tt\char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
- % Definitions to produce actual \{ & \} command in an index.
- \catcode`\{ = 12 \catcode`\} = 12
- \catcode`\[ = 1 \catcode`\] = 2
- \catcode`\@ = 0 \catcode`\\ = 12
- @gdef@lbracecmd[\{]%
- @gdef@rbracecmd[\}]%
-@endgroup
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
- \def\temp{#1}%
- \ifx\temp\imacro \ptexi
- \else\ifx\temp\jmacro \j
- \else \errmessage{@dotless can be used only with i or j}%
- \fi\fi
-}
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using \@M directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = \@M
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
-
-% @w prevents a word break. Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line. According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0). If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-\def\group{\begingroup
- \ifnum\catcode13=\active \else
- \errhelp = \groupinvalidhelp
- \errmessage{@group invalid in context where filling is enabled}%
- \fi
- %
- % The \vtop we start below produces a box with normal height and large
- % depth; thus, TeX puts \baselineskip glue before it, and (when the
- % next line of text is done) \lineskip glue after it. (See p.82 of
- % the TeXbook.) Thus, space below is not quite equal to space
- % above. But it's pretty close.
- \def\Egroup{%
- \egroup % End the \vtop.
- \endgroup % End the \group.
- }%
- %
- \vtop\bgroup
- % We have to put a strut on the last line in case the @group is in
- % the midst of an example, rather than completely enclosing it.
- % Otherwise, the interline space between the last line of the group
- % and the first line afterwards is too small. But we can't put the
- % strut in \Egroup, since there it would be on a line by itself.
- % Hence this just inserts a strut at the beginning of each line.
- \everypar = {\strut}%
- %
- % Since we have a strut on every line, we don't need any of TeX's
- % normal interline spacing.
- \offinterlineskip
- %
- % OK, but now we have to do something about blank
- % lines in the input in @example-like environments, which normally
- % just turn into \lisppar, which will insert no space now that we've
- % turned off the interline space. Simplest is to make them be an
- % empty paragraph.
- \ifx\par\lisppar
- \edef\par{\leavevmode \par}%
- %
- % Reset ^^M's definition to new definition of \par.
- \obeylines
- \fi
- %
- % Do @comment since we are called inside an environment such as
- % @example, where each end-of-line in the input causes an
- % end-of-line in the output. We don't want the end-of-line after
- % the `@group' to put extra space in the output. Since @group
- % should appear on a line by itself (according to the Texinfo
- % manual), we don't worry about eating any user text.
- \comment
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing `@group can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil \mil=0.001in
-
-\def\need{\parsearg\needx}
-
-% Old definition--didn't work.
-%\def\needx #1{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
-\def\needx#1{%
- % Go into vertical mode, so we don't make a big box in the middle of a
- % paragraph.
- \par
- %
- % Don't add any leading before our big empty box, but allow a page
- % break, since the best break might be right here.
- \allowbreak
- \nointerlineskip
- \vtop to #1\mil{\vfil}%
- %
- % TeX does not even consider page breaks if a penalty added to the
- % main vertical list is 10000 or more. But in order to see if the
- % empty box we just added fits on the page, we must make it consider
- % page breaks. On the other hand, we don't want to actually break the
- % page after the empty box. So we use a penalty of 9999.
- %
- % There is an extremely small chance that TeX will actually break the
- % page at this \penalty, if there are no other feasible breakpoints in
- % sight. (If the user is using lots of big @group commands, which
- % almost-but-not-quite fill up a page, TeX will have a hard time doing
- % good page breaking, for example.) However, I could not construct an
- % example where a page broke at this \penalty; if it happens in a real
- % document, then we can reconsider our strategy.
- \penalty9999
- %
- % Back up by the size of the box, whether we did a page break or not.
- \kern -#1\mil
- %
- % Do not allow a page break right after this kern.
- \nobreak
-}
-
-% @br forces paragraph break
-
-\let\br = \par
-
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{%
- \leavevmode
- \hbox to 1.5em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
-}
-
-% @enddots{} is an end-of-sentence ellipsis.
-%
-\def\enddots{%
- \leavevmode
- \hbox to 2em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
- \spacefactor=3000
-}
-
-
-% @page forces the start of a new page
-%
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
-
-% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
- \vtop to \strutdepth{\baselineskip\strutdepth\vss
- \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
-
-% @include file insert text of that file as input.
-% Allow normal characters that we make active in the argument (a file name).
-\def\include{\begingroup
- \catcode`\\=12
- \catcode`~=12
- \catcode`^=12
- \catcode`_=12
- \catcode`|=12
- \catcode`<=12
- \catcode`>=12
- \catcode`+=12
- \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
- % Read the included file in a group so nested @include's work.
- \def\thisfile{#1}%
- \input\thisfile
-\endgroup}
-
-\def\thisfile{}
-
-% @center line outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
-
-% @sp n outputs n lines of vertical space
-
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore is another way to write a comment
-
-\def\comment{\begingroup \catcode`\^^M=\other%
-\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
-\commentxxx}
-{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
-\let\c=\comment
-
-% @paragraphindent is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
-\let\chapter=\relax
-\let\unnumbered=\relax
-\let\top=\relax
-\let\unnumberedsec=\relax
-\let\unnumberedsection=\relax
-\let\unnumberedsubsec=\relax
-\let\unnumberedsubsection=\relax
-\let\unnumberedsubsubsec=\relax
-\let\unnumberedsubsubsection=\relax
-\let\section=\relax
-\let\subsec=\relax
-\let\subsubsec=\relax
-\let\subsection=\relax
-\let\subsubsection=\relax
-\let\appendix=\relax
-\let\appendixsec=\relax
-\let\appendixsection=\relax
-\let\appendixsubsec=\relax
-\let\appendixsubsection=\relax
-\let\appendixsubsubsec=\relax
-\let\appendixsubsubsection=\relax
-\let\contents=\relax
-\let\smallbook=\relax
-\let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
- \let\defcodeindex = \relax
- \let\defcv = \relax
- \let\deffn = \relax
- \let\deffnx = \relax
- \let\defindex = \relax
- \let\defivar = \relax
- \let\defmac = \relax
- \let\defmethod = \relax
- \let\defop = \relax
- \let\defopt = \relax
- \let\defspec = \relax
- \let\deftp = \relax
- \let\deftypefn = \relax
- \let\deftypefun = \relax
- \let\deftypevar = \relax
- \let\deftypevr = \relax
- \let\defun = \relax
- \let\defvar = \relax
- \let\defvr = \relax
- \let\ref = \relax
- \let\xref = \relax
- \let\printindex = \relax
- \let\pxref = \relax
- \let\settitle = \relax
- \let\setchapternewpage = \relax
- \let\setchapterstyle = \relax
- \let\everyheading = \relax
- \let\evenheading = \relax
- \let\oddheading = \relax
- \let\everyfooting = \relax
- \let\evenfooting = \relax
- \let\oddfooting = \relax
- \let\headings = \relax
- \let\include = \relax
- \let\lowersections = \relax
- \let\down = \relax
- \let\raisesections = \relax
- \let\up = \relax
- \let\set = \relax
- \let\clear = \relax
- \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% @dircategory CATEGORY -- specify a category of the dir file
-% which this file should belong to. Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line `@end #1'.
-%
-\def\doignore#1{\begingroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define a command to swallow text until we reach `@end #1'.
- % This @ is a catcode 12 token (that is the normal catcode of @ in
- % this texinfo.tex file). We change the catcode of @ below to match.
- \long\def\doignoretext##1@end #1{\enddoignore}%
- %
- % Make sure that spaces turn into tokens that match what \doignoretext wants.
- \catcode32 = 10
- %
- % Ignore braces, too, so mismatched braces don't cause trouble.
- \catcode`\{ = 9
- \catcode`\} = 9
- %
- % We must not have @c interpreted as a control sequence.
- \catcode`\@ = 12
- %
- % Make the letter c a comment character so that the rest of the line
- % will be ignored. This way, the document can have (for example)
- % @c @end ifinfo
- % and the @end ifinfo will be properly ignored.
- % (We've just changed @ to catcode 12.)
- \catcode`\c = 14
- %
- % And now expand that command.
- \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
- \ifwarnedobs\relax\else
- % We need to warn folks that they may have trouble with TeX 3.0.
- % This uses \immediate\write16 rather than \message to get newlines.
- \immediate\write16{}
- \immediate\write16{***WARNING*** for users of Unix TeX 3.0!}
- \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
- \immediate\write16{If you are running another version of TeX, relax.}
- \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
- \immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
- \immediate\write16{If you are stuck with version 3.0, run the}
- \immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
- \immediate\write16{ to use a workaround.}
- \immediate\write16{}
- \global\warnedobstrue
- \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex. For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an `@end #1' command.
-%
-\def\nestedignore#1{%
- \obstexwarn
- % We must actually expand the ignored text to look for the @end
- % command, so that nested ignore constructs work. Thus, we put the
- % text into a \vbox and then do nothing with the result. To minimize
- % the change of memory overflow, we follow the approach outlined on
- % page 401 of the TeXbook: make the current font be a dummy font.
- %
- \setbox0 = \vbox\bgroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define `@end #1' to end the box, which will in turn undefine the
- % @end command again.
- \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
- %
- % We are going to be parsing Texinfo commands. Most cause no
- % trouble when they are used incorrectly, but some commands do
- % complicated argument parsing or otherwise get confused, so we
- % undefine them.
- %
- % We can't do anything about stray @-signs, unfortunately;
- % they'll produce `undefined control sequence' errors.
- \ignoremorecommands
- %
- % Set the current font to be \nullfont, a TeX primitive, and define
- % all the font commands to also use \nullfont. We don't use
- % dummy.tfm, as suggested in the TeXbook, because not all sites
- % might have that installed. Therefore, math mode will still
- % produce output, but that should be an extremely small amount of
- % stuff compared to the main input.
- %
- \nullfont
- \let\tenrm = \nullfont \let\tenit = \nullfont \let\tensl = \nullfont
- \let\tenbf = \nullfont \let\tentt = \nullfont \let\smallcaps = \nullfont
- \let\tensf = \nullfont
- % Similarly for index fonts (mostly for their use in
- % smallexample)
- \let\indrm = \nullfont \let\indit = \nullfont \let\indsl = \nullfont
- \let\indbf = \nullfont \let\indtt = \nullfont \let\indsc = \nullfont
- \let\indsf = \nullfont
- %
- % Don't complain when characters are missing from the fonts.
- \tracinglostchars = 0
- %
- % Don't bother to do space factor calculations.
- \frenchspacing
- %
- % Don't report underfull hboxes.
- \hbadness = 10000
- %
- % Do minimal line-breaking.
- \pretolerance = 10000
- %
- % Do not execute instructions in @tex
- \def\tex{\doignore{tex}}%
- % Do not execute macro definitions.
- % `c' is a comment character, so the word `macro' will get cut off.
- \def\macro{\doignore{ma}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it. Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
- \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
- \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
- \def\temp{#2}%
- \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
- \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
- \fi
- \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider `@set foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-%
-{
- \catcode`\_ = \active
- %
- % We might end up with active _ or - characters in the argument if
- % we're called from @code, as @code{@value{foo-bar_}}. So \let any
- % such active characters to their normal equivalents.
- \gdef\value{\begingroup
- \catcode`\-=12 \catcode`\_=12
- \indexbreaks \let_\normalunderscore
- \valuexxx}
-}
-\def\valuexxx#1{\expandablevalue{#1}\endgroup}
-
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we \let\value to this in \indexdummies). Ones
-% whose names contain - or _ still won't work, but we can't do anything
-% about that. The command has to be fully expandable, since the result
-% winds up in the index file. This means that if the variable's value
-% contains other Texinfo commands, it's almost certain it will fail
-% (although perhaps we could fix that with sufficient work to do a
-% one-level expansion on the result, instead of complete).
-%
-\def\expandablevalue#1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- {[No value for ``#1'']}%
- \else
- \csname SET#1\endcsname
- \fi
-}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifsetfail
- \else
- \expandafter\ifsetsucceed
- \fi
-}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifclearsucceed
- \else
- \expandafter\ifclearfail
- \fi
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.). Make `@end iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group). So we must
-% define \Eiftex to redefine itself to be its previous value. (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
- \edef\temp{%
- % Remember the current value of \E#1.
- \let\nece{prevE#1} = \nece{E#1}%
- %
- % At the `@end #1', redefine \E#1 to be its previous value.
- \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
- }%
- \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
-
-% @asis just yields its argument. Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written. Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo). So we must use a
-% control sequence to switch into and out of math mode.
-%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
-%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
-
-% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% If working on a large document in chapters, it is convenient to
-% be able to disable indexing, cross-referencing, and contents, for test runs.
-% This is done with @novalidate (before @setfilename).
-%
-\newif\iflinks \linkstrue % by default we want the aux files.
-\let\novalidate = \linksfalse
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
- \iflinks
- \readauxfile
- \fi % \openindices needs to do some work in any case.
- \openindices
- \fixbackslash % Turn off hack to swallow `\input texinfo'.
- \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
- %
- % If texinfo.cnf is present on the system, read it.
- % Useful for site-wide @afourpaper, etc.
- % Just to be on the safe side, close the input stream before the \input.
- \openin 1 texinfo.cnf
- \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
- \closein1
- \temp
- %
- \comment % Ignore the actual filename.
-}
-
-% Called from \setfilename.
-%
-\def\openindices{%
- \newindex{cp}%
- \newcodeindex{fn}%
- \newcodeindex{vr}%
- \newcodeindex{tp}%
- \newcodeindex{ky}%
- \newcodeindex{pg}%
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-
-\message{fonts,}
-% Font-change commands.
-
-% Texinfo sort of supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
-\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
-
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx} %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
-\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
-\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-
-% Fonts for indices and small examples (9pt).
-% We actually use the slanted font rather than the italic,
-% because texinfo normally uses the slanted fonts for that.
-% Do not make many font distinctions in general in the index, since they
-% aren't very useful.
-\setfont\ninett\ttshape{9}{1000}
-\setfont\ninettsl\ttslshape{10}{900}
-\setfont\indrm\rmshape{9}{1000}
-\setfont\indit\itshape{9}{1000}
-\setfont\indsl\slshape{9}{1000}
-\let\indtt=\ninett
-\let\indttsl=\ninettsl
-\let\indsf=\indrm
-\let\indbf=\indrm
-\setfont\indsc\scshape{10}{900}
-\font\indi=cmmi9
-\font\indsy=cmsy9
-
-% Fonts for title page:
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-
-% Section fonts (14.4pt).
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-
-% \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than
-%\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
-% Subsection fonts (13.15pt).
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. Since
-% texinfo doesn't allow for producing subscripts and superscripts, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
- \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
- \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
- \textfont\ttfam = \tentt \textfont\sffam = \tensf
-}
-
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE. We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example. By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
-\def\textfonts{%
- \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
- \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
- \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
- \resetmathfonts}
-\def\titlefonts{%
- \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
- \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
- \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
- \let\tenttsl=\titlettsl
- \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
-\def\chapfonts{%
- \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
- \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
- \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
- \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
- \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
- \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
- \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
- \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
- \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\indexfonts{%
- \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
- \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
- \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
- \resetmathfonts \setleading{12pt}}
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\textfonts
-
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
-\setfont\shortcontsl\slshape{12}{1000}
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\var=\smartslanted
-\let\dfn=\smartslanted
-\let\emph=\smartitalic
-\let\cite=\smartslanted
-
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph. Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-\def\t#1{%
- {\tt \rawbackslash \frenchspacing #1}%
- \null
-}
-\let\ttfont=\t
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\smallrm\rmshape{8}{1000}
-\font\smallsy=cmsy9
-\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
- \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
- \vbox{\hrule\kern-0.4pt
- \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
- \kern-0.4pt\hrule}%
- \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
- {%
- % Change normal interword space to be same as for the current font.
- \spaceskip = \fontdimen2\font
- %
- % Switch to typewriter.
- \tt
- %
- % But `\ ' produces the large typewriter interword space.
- \def\ {{\spaceskip = 0pt{} }}%
- %
- % Turn off hyphenation.
- \nohyphenation
- %
- \rawbackslash
- \frenchspacing
- #1%
- }%
- \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-% -- rms.
-{
- \catcode`\-=\active
- \catcode`\_=\active
- %
- \global\def\code{\begingroup
- \catcode`\-=\active \let-\codedash
- \catcode`\_=\active \let_\codeunder
- \codex
- }
- %
- % If we end up with any active - characters when handling the index,
- % just treat them as a normal -.
- \global\def\indexbreaks{\catcode`\-=\active \let-\realdash}
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
-\def\codex #1{\tclose{#1}\endgroup}
-
-%\let\exp=\tclose %Was temporary
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
- \def\arg{#1}%
- \ifx\arg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\arg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\arg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is kbdinputdistinct. (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
-
-% For @url, @env, @command quotes seem unnecessary, so use \code.
-\let\url=\code
-\let\env=\code
-\let\command=\code
-
-% @uref (abbreviation for `urlref') takes an optional second argument
-% specifying the text to display. First (mandatory) arg is the url.
-% Perhaps eventually put in a hypertex \special here.
-%
-\def\uref#1{\urefxxx #1,,\finish}
-\def\urefxxx#1,#2,#3\finish{%
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0 > 0pt
- \unhbox0\ (\code{#1})%
- \else
- \code{#1}%
- \fi
-}
-
-% rms does not like the angle brackets --karl, 17may97.
-% So now @email is just like @uref.
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\let\email=\uref
-
-% Check if we are currently using a typewriter font. Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find. We need it for
-% Polish suppressed-l. --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-% Explicit font changes: @r, @sc, undocumented @ii.
-\def\r#1{{\rm #1}} % roman font
-\def\sc#1{{\smallcaps#1}} % smallcaps font
-\def\ii#1{{\it #1}} % italic font
-
-% @acronym downcases the argument and prints in smallcaps.
-\def\acronym#1{{\smallcaps \lowercase{#1}}}
-
-% @pounds{} is a sterling sign.
-\def\pounds{{\it\$}}
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page. Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-%
-\newif\ifsetcontentsaftertitlepage
- \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
-\newif\ifsetshortcontentsaftertitlepage
- \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
-
-\def\titlepage{\begingroup \parindent=0pt \textfonts
- \let\subtitlerm=\tenrm
- \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
- %
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
- %
- % Leave some space at the very top of the page.
- \vglue\titlepagetopglue
- %
- % Now you can print the title using @title.
- \def\title{\parsearg\titlezzz}%
- \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
- % No rule at page bottom unless we print one at the top with @title.
- \finishedtitlepagetrue
- %
- % Now you can put text using @subtitle.
- \def\subtitle{\parsearg\subtitlezzz}%
- \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
- %
- % @author should come last, but may come many times.
- \def\author{\parsearg\authorzzz}%
- \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
- {\authorfont \leftline{##1}}}%
- %
- % Most title ``pages'' are actually two pages long, with space
- % at the top of the second. We don't want the ragged left on the second.
- \let\oldpage = \page
- \def\page{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- \oldpage
- \let\page = \oldpage
- \hbox{}}%
-% \def\page{\oldpage \hbox{}}
-}
-
-\def\Etitlepage{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- % It is important to do the page break before ending the group,
- % because the headline and footline are only empty inside the group.
- % If we use the new definition of \page, we always get a blank page
- % after the title page, which we certainly don't want.
- \oldpage
- \endgroup
- %
- % If they want short, they certainly want long too.
- \ifsetshortcontentsaftertitlepage
- \shortcontents
- \contents
- \global\let\shortcontents = \relax
- \global\let\contents = \relax
- \fi
- %
- \ifsetcontentsaftertitlepage
- \contents
- \global\let\contents = \relax
- \global\let\shortcontents = \relax
- \fi
- %
- \HEADINGSon
-}
-
-\def\finishtitlepage{%
- \vskip4pt \hrule height 2pt width \hsize
- \vskip\titlepagebottomglue
- \finishedtitlepagetrue
-}
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks\evenheadline % headline on even pages
-\newtoks\oddheadline % headline on odd pages
-\newtoks\evenfootline % footline on even pages
-\newtoks\oddfootline % footline on odd pages
-
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
- \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
- \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what @headings on does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
- \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
- %
- % Leave some space for the footline. Hopefully ok to assume
- % @evenfooting will not be used by itself.
- \global\advance\pageheight by -\baselineskip
- \global\advance\vsize by -\baselineskip
-}
-
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
-
-% @headings double turns headings on for double-sided printing.
-% @headings single turns headings on for single-sided printing.
-% @headings off turns them off.
-% @headings on same as @headings double, retained for compatibility.
-% @headings after turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line... specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
-
-
-\message{tables,}
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
- \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
- \itemzzz {#1}}
-
-\def\itemzzz #1{\begingroup %
- \advance\hsize by -\rightskip
- \advance\hsize by -\tableindent
- \setbox0=\hbox{\itemfont{#1}}%
- \itemindex{#1}%
- \nobreak % This prevents a break before @itemx.
- %
- % If the item text does not fit in the space we have, put it on a line
- % by itself, and do not allow a page break either before or after that
- % line. We do not start a paragraph here because then if the next
- % command is, e.g., @kindex, the whatsit would get put into the
- % horizontal list on a line by itself, resulting in extra blank space.
- \ifdim \wd0>\itemmax
- %
- % Make this a paragraph so we get the \parskip glue and wrapping,
- % but leave it ragged-right.
- \begingroup
- \advance\leftskip by-\tableindent
- \advance\hsize by\tableindent
- \advance\rightskip by0pt plus1fil
- \leavevmode\unhbox0\par
- \endgroup
- %
- % We're going to be starting a paragraph, but we don't want the
- % \parskip glue -- logically it's part of the @item we just started.
- \nobreak \vskip-\parskip
- %
- % Stop a page break at the \parskip glue coming up. Unfortunately
- % we can't prevent a possible page break at the following
- % \baselineskip glue.
- \nobreak
- \endgroup
- \itemxneedsnegativevskipfalse
- \else
- % The item text fits into the space. Start a paragraph, so that the
- % following text (if any) will end up on the same line.
- \noindent
- % Do this with kerns and \unhbox so that if there is a footnote in
- % the item text, it can migrate to the main vertical list and
- % eventually be printed.
- \nobreak\kern-\tableindent
- \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
- \unhbox0
- \nobreak\kern\dimen0
- \endgroup
- \itemxneedsnegativevskiptrue
- \fi
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-% Contains a kludge to get @end[description] to work.
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-% @table, @ftable, @vtable.
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1 \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1 \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1 \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
-}
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\def\itemize{\parsearg\itemizezzz}
-
-\def\itemizezzz #1{%
- \begingroup % ended by the @end itemize
- \itemizey {#1}{\Eitemize}
-}
-
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
- \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list. No
-% argument is the same as `1'.
-%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1 \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
- \begingroup % ended by the @end enumerate
- %
- % If we were given no argument, pretend we were given `1'.
- \def\thearg{#1}%
- \ifx\thearg\empty \def\thearg{1}\fi
- %
- % Detect if the argument is a single token. If so, it might be a
- % letter. Otherwise, the only valid thing it can be is a number.
- % (We will always have one token, because of the test we just made.
- % This is a good thing, since \splitoff doesn't work given nothing at
- % all -- the first parameter is undelimited.)
- \expandafter\splitoff\thearg\endmark
- \ifx\rest\empty
- % Only one token in the argument. It could still be anything.
- % A ``lowercase letter'' is one whose \lccode is nonzero.
- % An ``uppercase letter'' is one whose \lccode is both nonzero, and
- % not equal to itself.
- % Otherwise, we assume it's a number.
- %
- % We need the \relax at the end of the \ifnum lines to stop TeX from
- % continuing to look for a <number>.
- %
- \ifnum\lccode\expandafter`\thearg=0\relax
- \numericenumerate % a number (we hope)
- \else
- % It's a letter.
- \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
- \lowercaseenumerate % lowercase letter
- \else
- \uppercaseenumerate % uppercase letter
- \fi
- \fi
- \else
- % Multiple tokens in the argument. We hope it's a number.
- \numericenumerate
- \fi
-}
-
-% An @enumerate whose labels are integers. The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
- \itemno = \thearg
- \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more lowercase letters in @enumerate; get a bigger
- alphabet}%
- \fi
- \char\lccode\itemno
- }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more uppercase letters in @enumerate; get a bigger
- alphabet}
- \fi
- \char\uccode\itemno
- }%
-}
-
-% Call itemizey, adding a period to the first argument and supplying the
-% common last two arguments. Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
- \advance\itemno by -1
- \itemizey{#1.}\Eenumerate\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-% @multitable @columnfractions .25 .3 .45
-% @item ...
-%
-% Numbers following @columnfractions are the percent of the total
-% current hsize to be used for each column. You may use as many
-% columns as desired.
-
-
-% Or use a template:
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item ...
-% using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-% @multitable {Column 1 template} {Column 2 template} {Column 3
-% template}
-% Not:
-% @multitable {Column 1 template} {Column 2 template}
-% {Column 3 template}
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
-
-% Sample multitable:
-
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item first col stuff @tab second col stuff @tab third col
-% @item
-% first col stuff
-% @tab
-% second col stuff
-% @tab
-% third col
-% @item first col stuff @tab second col stuff
-% @tab Many paragraphs of text may be used in any column.
-%
-% They will wrap at the width determined by the template.
-% @item@tab@tab This will be in third column.
-% @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-% to baseline.
-% 0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-%
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% #1 is the part of the @columnfraction before the decimal point, which
-% is presumably either 0 or the empty string (but we don't check, we
-% just throw it away). #2 is the decimal part, which we use as the
-% percent of \hsize for this column.
-\def\pickupwholefraction#1.#2 {%
- \global\advance\colcount by 1
- \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}%
- \setuptable
-}
-
-\newcount\colcount
-\def\setuptable#1{%
- \def\firstarg{#1}%
- \ifx\firstarg\xendsetuptable
- \let\go = \relax
- \else
- \ifx\firstarg\xcolumnfractions
- \global\setpercenttrue
- \else
- \ifsetpercent
- \let\go\pickupwholefraction
- \else
- \global\advance\colcount by 1
- \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator;
- % typically that is always in the input, anyway.
- \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
- \fi
- \fi
- \ifx\go\pickupwholefraction
- % Put the argument back for the \pickupwholefraction call, so
- % we'll always have a period there to be parsed.
- \def\go{\pickupwholefraction#1}%
- \else
- \let\go = \setuptable
- \fi%
- \fi
- \go
-}
-
-% multitable syntax
-\def\tab{&\hskip1sp\relax} % 2/2/96
- % tiny skip here makes sure this column space is
- % maintained, even if it is never used.
-
-% @multitable ... @end multitable definitions:
-%
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
- \vskip\parskip
- \let\item\crcr
- \tolerance=9500
- \hbadness=9500
- \setmultitablespacing
- \parskip=\multitableparskip
- \parindent=\multitableparindent
- \overfullrule=0pt
- \global\colcount=0
- \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
- %
- % To parse everything between @multitable and @item:
- \setuptable#1 \endsetuptable
- %
- % \everycr will reset column counter, \colcount, at the end of
- % each line. Every column entry will cause \colcount to advance by one.
- % The table preamble
- % looks at the current \colcount to find the correct column width.
- \everycr{\noalign{%
- %
- % \filbreak%% keeps underfull box messages off when table breaks over pages.
- % Maybe so, but it also creates really weird page breaks when the table
- % breaks over pages. Wouldn't \vfil be better? Wait until the problem
- % manifests itself, so it can be fixed for real --karl.
- \global\colcount=0\relax}}%
- %
- % This preamble sets up a generic column definition, which will
- % be used as many times as user calls for columns.
- % \vtop will set a single line and will also let text wrap and
- % continue for many paragraphs if desired.
- \halign\bgroup&\global\advance\colcount by 1\relax
- \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
- %
- % In order to keep entries from bumping into each other
- % we will add a \leftskip of \multitablecolspace to all columns after
- % the first one.
- %
- % If a template has been used, we will add \multitablecolspace
- % to the width of each template entry.
- %
- % If the user has set preamble in terms of percent of \hsize we will
- % use that dimension as the width of the column, and the \leftskip
- % will keep entries from bumping into each other. Table will start at
- % left margin and final column will justify at right margin.
- %
- % Make sure we don't inherit \rightskip from the outer environment.
- \rightskip=0pt
- \ifnum\colcount=1
- % The first column will be indented with the surrounding text.
- \advance\hsize by\leftskip
- \else
- \ifsetpercent \else
- % If user has not set preamble in terms of percent of \hsize
- % we will advance \hsize by \multitablecolspace.
- \advance\hsize by \multitablecolspace
- \fi
- % In either case we will make \leftskip=\multitablecolspace:
- \leftskip=\multitablecolspace
- \fi
- % Ignoring space at the beginning and end avoids an occasional spurious
- % blank line, when TeX decides to break the line at the space before the
- % box from the multistrut, so the strut ends up on a line by itself.
- % For example:
- % @multitable @columnfractions .11 .89
- % @item @code{#}
- % @tab Legal holiday which is valid in major parts of the whole country.
- % Is automatically provided with highlighting sequences respectively marking
- % characters.
- \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
-\ifdim\multitablelinespace=0pt
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
-\else
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi}
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-%
-\def\newindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
- \fi
- \expandafter\xdef\csname#1index\endcsname{% % Define @#1index
- \noexpand\doindex{#1}}
-}
-
-% @defindex foo == \newindex{foo}
-
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1
- \fi
- \expandafter\xdef\csname#1index\endcsname{%
- \noexpand\docodeindex{#1}}
-}
-
-\def\defcodeindex{\parsearg\newcodeindex}
-
-% @synindex foo bar makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-% The \closeout helps reduce unnecessary open files; the limit on the
-% Acorn RISC OS is a mere 16 files.
-\def\synindex#1 #2 {%
- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
- \expandafter\closeout\csname#1indfile\endcsname
- \expandafter\let\csname#1indfile\endcsname=\synindexfoo
- \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
- \noexpand\doindex{#2}}%
-}
-
-% @syncodeindex foo bar similar, but put all entries made for index foo
-% inside @code.
-\def\syncodeindex#1 #2 {%
- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
- \expandafter\closeout\csname#1indfile\endcsname
- \expandafter\let\csname#1indfile\endcsname=\synindexfoo
- \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
- \noexpand\docodeindex{#2}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-% and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-\def\indexdummies{%
-\def\ { }%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-\def\@{@}% will be @@ when we switch to @ as escape char.
-% Need these in case \tex is in effect and \{ is a \delimiter again.
-% But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.
-\let\{ = \mylbrace
-\let\} = \myrbrace
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\uref##1{\realbackslash uref {##1}}%
-\def\url##1{\realbackslash url {##1}}%
-\def\env##1{\realbackslash env {##1}}%
-\def\command##1{\realbackslash command {##1}}%
-\def\option##1{\realbackslash option {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\acronym##1{\realbackslash acronym {##1}}%
-%
-% Handle some cases of @value -- where the variable name does not
-% contain - or _, and the value does not contain any
-% (non-fully-expandable) commands.
-\let\value = \expandablevalue
-%
-\unsepspaces
-}
-
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-
-\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\url=\indexdummyfont
-\let\uref=\indexdummyfont
-\let\env=\indexdummyfont
-\let\command=\indexdummyfont
-\let\option=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
-\def\@{@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
- @gdef@realbackslash{\}}
-
-\let\indexbackslash=0 %overridden during \printindex.
-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-
-% For \ifx comparisons.
-\def\emptymacro{\empty}
-
-% Most index entries go through here, but \dosubind is the general case.
-%
-\def\doind#1#2{\dosubind{#1}{#2}\empty}
-
-% Workhorse for all \fooindexes.
-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% \empty if called from \doind, as we usually are. The main exception
-% is with defuns, which call us directly.
-%
-\def\dosubind#1#2#3{%
- % Put the index entry in the margin if desired.
- \ifx\SETmarginindex\relax\else
- \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
- \fi
- {%
- \count255=\lastpenalty
- {%
- \indexdummies % Must do this here, since \bf, etc expand at this stage
- \escapechar=`\\
- {%
- \let\folio = 0% We will expand all macros now EXCEPT \folio.
- \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
- % so it will be output as is; and it will print as backslash.
- %
- \def\thirdarg{#3}%
- %
- % If third arg is present, precede it with space in sort key.
- \ifx\thirdarg\emptymacro
- \let\subentry = \empty
- \else
- \def\subentry{ #3}%
- \fi
- %
- % First process the index-string with all font commands turned off
- % to get the string to sort by.
- {\indexnofonts \xdef\indexsorttmp{#2\subentry}}%
- %
- % Now produce the complete index entry, with both the sort key and the
- % original text, including any font commands.
- \toks0 = {#2}%
- \edef\temp{%
- \write\csname#1indfile\endcsname{%
- \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
- }%
- %
- % If third (subentry) arg is present, add it to the index string.
- \ifx\thirdarg\emptymacro \else
- \toks0 = {#3}%
- \edef\temp{\temp{\the\toks0}}%
- \fi
- %
- % If a skip is the last thing on the list now, preserve it
- % by backing up by \lastskip, doing the \write, then inserting
- % the skip again. Otherwise, the whatsit generated by the
- % \write will make \lastskip zero. The result is that sequences
- % like this:
- % @end defun
- % @tindex whatever
- % @defun ...
- % will have extra space inserted, because the \medbreak in the
- % start of the @defun won't see the skip inserted by the @end of
- % the previous defun.
- %
- % But don't do any of this if we're not in vertical mode. We
- % don't want to do a \vskip and prematurely end a paragraph.
- %
- % Avoid page breaks due to these extra skips, too.
- %
- \iflinks
- \ifvmode
- \skip0 = \lastskip
- \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi
- \fi
- %
- \temp % do the write
- %
- %
- \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
- \fi
- }%
- }%
- \penalty\count255
- }%
-}
-
-% The index entry written in the file actually looks like
-% \entry {sortstring}{page}{topic}
-% or
-% \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-% \initial {c}
-% before the first topic whose initial is c
-% \entry {topic}{pagelist}
-% for a topic that is used without subtopics
-% \primary {topic}
-% for the beginning of a topic that is used with subtopics
-% \secondary {subtopic}{pagelist}
-% for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
- \dobreak \chapheadingskip{10000}%
- %
- \indexfonts \rm
- \tolerance = 9500
- \indexbreaks
- %
- % See if the index file exists and is nonempty.
- % Change catcode of @ here so that if the index file contains
- % \initial {@}
- % as its first line, TeX doesn't complain about mismatched braces
- % (because it thinks @} is a control sequence).
- \catcode`\@ = 11
- \openin 1 \jobname.#1s
- \ifeof 1
- % \enddoublecolumns gets confused if there is no text in the index,
- % and it loses the chapter title and the aux file entries for the
- % index. The easiest way to prevent this problem is to make sure
- % there is some text.
- (Index is nonexistent)
- \else
- %
- % If the index file exists but is empty, then \openin leaves \ifeof
- % false. We have to make TeX try to read something from the file, so
- % it can discover if there is anything in it.
- \read 1 to \temp
- \ifeof 1
- (Index is empty)
- \else
- % Index files are almost Texinfo source, but we use \ as the escape
- % character. It would be better to use @, but that's too big a change
- % to make right now.
- \def\indexbackslash{\rawbackslashxx}%
- \catcode`\\ = 0
- \escapechar = `\\
- \begindoublecolumns
- \input \jobname.#1s
- \enddoublecolumns
- \fi
- \fi
- \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-\def\initial#1{{%
- % Some minor font changes for the special characters.
- \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
- %
- % Remove any glue we may have, we'll be inserting our own.
- \removelastskip
- %
- % We like breaks before the index initials, so insert a bonus.
- \penalty -300
- %
- % Typeset the initial. Making this add up to a whole number of
- % baselineskips increases the chance of the dots lining up from column
- % to column. It still won't often be perfect, because of the stretch
- % we need before each entry, but it's better.
- %
- % No shrink because it confuses \balancecolumns.
- \vskip 1.67\baselineskip plus .5\baselineskip
- \leftline{\secbf #1}%
- \vskip .33\baselineskip plus .1\baselineskip
- %
- % Do our best not to break after the initial.
- \nobreak
-}}
-
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin. It is used for index and table of contents
-% entries. The paragraph is indented by \leftskip.
-%
-\def\entry#1#2{\begingroup
- %
- % Start a new paragraph if necessary, so our assignments below can't
- % affect previous text.
- \par
- %
- % Do not fill out the last line with white space.
- \parfillskip = 0in
- %
- % No extra space above this paragraph.
- \parskip = 0in
- %
- % Do not prefer a separate line ending with a hyphen to fewer lines.
- \finalhyphendemerits = 0
- %
- % \hangindent is only relevant when the entry text and page number
- % don't both fit on one line. In that case, bob suggests starting the
- % dots pretty far over on the line. Unfortunately, a large
- % indentation looks wrong when the entry text itself is broken across
- % lines. So we use a small indentation and put up with long leaders.
- %
- % \hangafter is reset to 1 (which is the value we want) at the start
- % of each paragraph, so we need not do anything with that.
- \hangindent = 2em
- %
- % When the entry text needs to be broken, just fill out the first line
- % with blank space.
- \rightskip = 0pt plus1fil
- %
- % A bit of stretch before each entry for the benefit of balancing columns.
- \vskip 0pt plus1pt
- %
- % Start a ``paragraph'' for the index entry so the line breaking
- % parameters we've set above will have an effect.
- \noindent
- %
- % Insert the text of the index entry. TeX will do line-breaking on it.
- #1%
- % The following is kludged to not output a line of dots in the index if
- % there are no page numbers. The next person who breaks this will be
- % cursed by a Unix daemon.
- \def\tempa{{\rm }}%
- \def\tempb{#2}%
- \edef\tempc{\tempa}%
- \edef\tempd{\tempb}%
- \ifx\tempc\tempd\ \else%
- %
- % If we must, put the page number on a line of its own, and fill out
- % this line with blank space. (The \hfil is overwhelmed with the
- % fill leaders glue in \indexdotfill if the page number does fit.)
- \hfil\penalty50
- \null\nobreak\indexdotfill % Have leaders before the page number.
- %
- % The `\ ' here is removed by the implicit \unskip that TeX does as
- % part of (the primitive) \par. Without it, a spurious underfull
- % \hbox ensues.
- \ #2% The page number ends the paragraph.
- \fi%
- \par
-\endgroup}
-
-% Like \dotfill except takes at least 1 em.
-\def\indexdotfill{\cleaders
- \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
- % Grab any single-column material above us.
- \output = {\global\setbox\partialpage = \vbox{%
- %
- % Here is a possibility not foreseen in manmac: if we accumulate a
- % whole lot of material, we might end up calling this \output
- % routine twice in a row (see the doublecol-lose test, which is
- % essentially a couple of indexes with @setchapternewpage off). In
- % that case, we must prevent the second \partialpage from
- % simply overwriting the first, causing us to lose the page.
- % This will preserve it until a real output routine can ship it
- % out. Generally, \partialpage will be empty when this runs and
- % this will be a no-op.
- \unvbox\partialpage
- %
- % Unvbox the main output page.
- \unvbox255
- \kern-\topskip \kern\baselineskip
- }}%
- \eject % run that output routine to set \partialpage
- %
- % Use the double-column output routine for subsequent pages.
- \output = {\doublecolumnout}%
- %
- % Change the page size parameters. We could do this once outside this
- % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
- % format, but then we repeat the same computation. Repeating a couple
- % of assignments once per index is clearly meaningless for the
- % execution time, so we may as well do it in one place.
- %
- % First we halve the line length, less a little for the gutter between
- % the columns. We compute the gutter based on the line length, so it
- % changes automatically with the paper format. The magic constant
- % below is chosen so that the gutter has the same value (well, +-<1pt)
- % as it did when we hard-coded it.
- %
- % We put the result in a separate register, \doublecolumhsize, so we
- % can restore it in \pagesofar, after \hsize itself has (potentially)
- % been clobbered.
- %
- \doublecolumnhsize = \hsize
- \advance\doublecolumnhsize by -.04154\hsize
- \divide\doublecolumnhsize by 2
- \hsize = \doublecolumnhsize
- %
- % Double the \vsize as well. (We don't need a separate register here,
- % since nobody clobbers \vsize.)
- \advance\vsize by -\ht\partialpage
- \vsize = 2\vsize
-}
-
-% The double-column output routine for all double-column pages except
-% the last.
-%
-\def\doublecolumnout{%
- \splittopskip=\topskip \splitmaxdepth=\maxdepth
- % Get the available space for the double columns -- the normal
- % (undoubled) page height minus any material left over from the
- % previous page.
- \dimen@ = \vsize
- \divide\dimen@ by 2
- %
- % box0 will be the left-hand column, box2 the right.
- \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
- \onepageout\pagesofar
- \unvbox255
- \penalty\outputpenalty
-}
-\def\pagesofar{%
- % Re-output the contents of the output page -- any previous material,
- % followed by the two boxes we just split, in box0 and box2.
- \advance\vsize by \ht\partialpage
- \unvbox\partialpage
- %
- \hsize = \doublecolumnhsize
- \wd0=\hsize \wd2=\hsize
- \hbox to\pagewidth{\box0\hfil\box2}%
-}
-\def\enddoublecolumns{%
- \output = {%
- % Split the last of the double-column material. Leave it on the
- % current page, no automatic page break.
- \balancecolumns
- %
- % If we end up splitting too much material for the current page,
- % though, there will be another page break right after this \output
- % invocation ends. Having called \balancecolumns once, we do not
- % want to call it again. Therefore, reset \output to its normal
- % definition right away. (We hope \balancecolumns will never be
- % called on to balance too much material, but if it is, this makes
- % the output somewhat more palatable.)
- \global\output = {\onepageout{\pagecontents\PAGE}}%
- }%
- \eject
- \endgroup % started in \begindoublecolumns
- %
- % \pagegoal was set to the doubled \vsize above, since we restarted
- % the current page. We're now back to normal single-column
- % typesetting, so reset \pagegoal to the normal \vsize (after the
- % \endgroup where \vsize got restored).
- \pagegoal = \vsize
-}
-\def\balancecolumns{%
- % Called at the end of the double column material.
- \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
- \dimen@ = \ht0
- \advance\dimen@ by \topskip
- \advance\dimen@ by-\baselineskip
- \divide\dimen@ by 2 % target to split to
- %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
- \splittopskip = \topskip
- % Loop until we get a decent breakpoint.
- {%
- \vbadness = 10000
- \loop
- \global\setbox3 = \copy0
- \global\setbox1 = \vsplit3 to \dimen@
- \ifdim\ht3>\dimen@
- \global\advance\dimen@ by 1pt
- \repeat
- }%
- %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
- \setbox0=\vbox to\dimen@{\unvbox1}%
- \setbox2=\vbox to\dimen@{\unvbox3}%
- %
- \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Define chapters, sections, etc.
-
-\newcount\chapno
-\newcount\secno \secno=0
-\newcount\subsecno \subsecno=0
-\newcount\subsubsecno \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
-
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it. @section does likewise.
-\def\thischapter{}
-\def\thissection{}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \chapterzzz{#2}
-\or
- \seczzz{#2}
-\or
- \numberedsubseczzz{#2}
-\or
- \numberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \chapterzzz{#2}
- \else
- \numberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \appendixzzz{#2}
-\or
- \appendixsectionzzz{#2}
-\or
- \appendixsubseczzz{#2}
-\or
- \appendixsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \appendixzzz{#2}
- \else
- \appendixsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \unnumberedzzz{#2}
-\or
- \unnumberedseczzz{#2}
-\or
- \unnumberedsubseczzz{#2}
-\or
- \unnumberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \unnumberedzzz{#2}
- \else
- \unnumberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% @chapter, @appendix, @unnumbered.
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\the\chapno}}}%
-\temp
-\donoderef
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1
-\message{\putwordAppendix\space \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\putwordAppendix{} \appendixletter}}}%
-\temp
-\appendixnoderef
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
-}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
-
-% @top is like @unnumbered.
-\outer\def\top{\parsearg\unnumberedyyy}
-
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message. Therefore, if #1 contained @-commands, TeX
-% expanded them. For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself. We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of <toks register>. (We also do this for
-% the toc entries.)
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
-}
-
-% Sections.
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\the\chapno}{\the\secno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\appendixletter}{\the\secno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsections.
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsubsections.
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
-% 3) Likewise, headings look best if no \parindent is used, and
-% if justification is not attempted. Hence \raggedright.
-
-
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
- \pchapsepmacro
- {%
- \chapfonts \rm
- \def\chapnum{#2}%
- \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 \centerparametersmaybe
- \unhbox0 #1\par}%
- }%
- \nobreak\bigskip % no page break after a chapter title
- \nobreak
-}
-
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
- \def\centerparametersmaybe{%
- \advance\rightskip by 3\rightskip
- \leftskip = \rightskip
- \parfillskip = 0pt
- }%
- \chfplain{#1}{}%
-}}
-
-\CHAPFplain % The default
-
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\nobreak
-}
-
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt
- \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
-}
-
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles.
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
-
-% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-
-% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-
-
-% Print any size section title.
-%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
- {%
- \expandafter\advance\csname #1headingskip\endcsname by \parskip
- \csname #1headingbreak\endcsname
- }%
- {%
- % Switch to the right set of fonts.
- \csname #1fonts\endcsname \rm
- %
- % Only insert the separating space if we have a section number.
- \def\secnum{#2}%
- \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
- %
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 % zero if no section number
- \unhbox0 #3}%
- }%
- \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
-}
-
-
-\message{toc,}
-\newwrite\tocfile
-
-% Write an entry to the toc file, opening it if necessary.
-% Called from @chapter, etc. We supply {\folio} at the end of the
-% argument, which will end up as the last argument to the \...entry macro.
-%
-% We open the .toc file here instead of at @setfilename or any other
-% given time so that @contents can be put in the document anywhere.
-%
-\newif\iftocfileopened
-\def\writetocentry#1{%
- \iftocfileopened\else
- \immediate\openout\tocfile = \jobname.toc
- \global\tocfileopenedtrue
- \fi
- \iflinks \write\tocfile{#1{\folio}}\fi
-}
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\newcount\savepageno
-\newcount\lastnegativepageno \lastnegativepageno = -1
-
-% Finish up the main text and prepare to read what we've written
-% to \tocfile.
-%
-\def\startcontents#1{%
- % If @setchapternewpage on, and @headings double, the contents should
- % start on an odd page, unlike chapters. Thus, we maintain
- % \contentsalignmacro in parallel with \pagealignmacro.
- % From: Torbjorn Granlund <tege@matematik.su.se>
- \contentsalignmacro
- \immediate\closeout\tocfile
- %
- % Don't need to put `Contents' or `Short Contents' in the headline.
- % It is abundantly clear what they are.
- \unnumbchapmacro{#1}\def\thischapter{}%
- \savepageno = \pageno
- \begingroup % Set up to handle contents files properly.
- \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
- % We can't do this, because then an actual ^ in a section
- % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97.
- %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
- \raggedbottom % Worry more about breakpoints than the bottom.
- \advance\hsize by -\contentsrightmargin % Don't use the full line length.
- %
- % Roman numerals for page numbers.
- \ifnum \pageno>0 \pageno = \lastnegativepageno \fi
-}
-
-
-% Normal (long) toc.
-\def\contents{%
- \startcontents{\putwordTableofContents}%
- \openin 1 \jobname.toc
- \ifeof 1 \else
- \closein 1
- \input \jobname.toc
- \fi
- \vfill \eject
- \endgroup
- \lastnegativepageno = \pageno
- \pageno = \savepageno
-}
-
-% And just the chapters.
-\def\summarycontents{%
- \startcontents{\putwordShortContents}%
- %
- \let\chapentry = \shortchapentry
- \let\unnumbchapentry = \shortunnumberedentry
- % We want a true roman here for the page numbers.
- \secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
- \rm
- \hyphenpenalty = 10000
- \advance\baselineskip by 1pt % Open it up a little.
- \def\secentry ##1##2##3##4{}
- \def\unnumbsecentry ##1##2{}
- \def\subsecentry ##1##2##3##4##5{}
- \def\unnumbsubsecentry ##1##2{}
- \def\subsubsecentry ##1##2##3##4##5##6{}
- \def\unnumbsubsubsecentry ##1##2{}
- \openin 1 \jobname.toc
- \ifeof 1 \else
- \closein 1
- \input \jobname.toc
- \fi
- \vfill \eject
- \endgroup
- \lastnegativepageno = \pageno
- \pageno = \savepageno
-}
-\let\shortcontents = \summarycontents
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapter-level things, for both the long and short contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
-\def\shortchapentry#1#2#3{%
- \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}%
-}
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-\setbox0 = \hbox{\shortcontrm \putwordAppendix }
-\newdimen\shortappendixwidth \shortappendixwidth = \wd0
-
-\def\shortchaplabel#1{%
- % We typeset #1 in a box of constant width, regardless of the text of
- % #1, so the chapter titles will come out aligned.
- \setbox0 = \hbox{#1}%
- \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
- %
- % This space should be plenty, since a single number is .5em, and the
- % widest letter (M) is 1em, at least in the Computer Modern fonts.
- % (This space doesn't include the extra space that gets added after
- % the label; that gets put in by \shortchapentry above.)
- \advance\dimen0 by 1.1em
- \hbox to \dimen0{#1\hfil}%
-}
-
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
-
-% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
-
-% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
-
-% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
- \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
-% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
- \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
- \begingroup
- \chapentryfonts
- \tocentry{#1}{\dopageno{#2}}%
- \endgroup
- \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
- \secentryfonts \leftskip=\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
- \subsecentryfonts \leftskip=2\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
- \subsubsecentryfonts \leftskip=3\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here. (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
- \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
- % Do not use \turnoffactive in these arguments. Since the toc is
- % typeset in cmr, so characters such as _ would come out wrong; we
- % have to do the usual translation tricks.
- \entry{#1}{#2}%
-\endgroup}
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
-
-
-\message{environments,}
-
-% Since these characters are used in examples, it should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox \newbox\longdblarrowbox
-\newbox\pushcharbox \newbox\bullbox
-\newbox\equivbox \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-% depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% Adapted from the TeXbook's \boxit.
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
- \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
- \advance\hsize by -2\dimen2 % Rules.
- \vbox{
- \hrule height\dimen2
- \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
- \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
- \kern3pt\vrule width\dimen2}% Space to right.
- \hrule height\dimen2}
- \hfil}
-
-% The @error{} command.
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @tex ... @end tex escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\def\tex{\begingroup
- \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
- \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
- \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
- \catcode `\%=14
- \catcode 43=12 % plus
- \catcode`\"=12
- \catcode`\==12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \escapechar=`\\
- %
- \let\b=\ptexb
- \let\bullet=\ptexbullet
- \let\c=\ptexc
- \let\,=\ptexcomma
- \let\.=\ptexdot
- \let\dots=\ptexdots
- \let\equiv=\ptexequiv
- \let\!=\ptexexclam
- \let\i=\ptexi
- \let\{=\ptexlbrace
- \let\+=\tabalign
- \let\}=\ptexrbrace
- \let\*=\ptexstar
- \let\t=\ptext
- %
- \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
- \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
- \def\@{@}%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments. \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% Make each space character in the input produce a normal interword
-% space in the output. Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is. This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical. We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins.
-\let\nonarrowing=\relax
-
-% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
-% environment contents.
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
- \ctl\leaders\hrule height\circthick\hfil\ctr
- \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
- \cbl\leaders\hrule height\circthick\hfil\cbr
- \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\long\def\cartouche{%
-\begingroup
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt %we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18.4pt % allow for 3pt kerns on either
-% side, and for 6pt waste from
-% each corner char, and rule thickness
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing=\comment
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \hsize=\cartinner
- \kern3pt
- \begingroup
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
-\def\Ecartouche{%
- \endgroup
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
-\endgroup
-}}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\def\nonfillstart{%
- \aboveenvbreak
- \inENV % This group ends at the end of the body
- \hfuzz = 12pt % Don't be fussy
- \sepspaces % Make spaces be word-separators rather than space tokens.
- \singlespace
- \let\par = \lisppar % don't ignore blank lines
- \obeylines % each line of input is a line of output
- \parskip = 0pt
- \parindent = 0pt
- \emergencystretch = 0pt % don't try to avoid overfull boxes
- % @cartouche defines \nonarrowing to inhibit narrowing
- % at next level down.
- \ifx\nonarrowing\relax
- \advance \leftskip by \lispnarrowing
- \exdentamount=\lispnarrowing
- \let\exdent=\nofillexdent
- \let\nonarrowing=\relax
- \fi
-}
-
-% Define the \E... control sequence only if we are inside the particular
-% environment, so the error checking in \end will work.
-%
-% To end an @example-like environment, we first end the paragraph (via
-% \afterenvbreak's vertical glue), and then the group. That way we keep
-% the zero \parskip that the environments set -- \parskip glue will be
-% inserted at the beginning of the next paragraph in the document, after
-% the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}
-
-% @lisp: indented, narrowed, typewriter font.
-\def\lisp{\begingroup
- \nonfillstart
- \let\Elisp = \nonfillfinish
- \tt
- \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
- \gobble % eat return
-}
-
-% @example: Same as @lisp.
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-
-% @small... is usually equivalent to the non-small (@smallbook
-% redefines). We must call \example (or whatever) last in the
-% definition, since it reads the return following the @example (or
-% whatever) command.
-%
-% This actually allows (for example) @end display inside an
-% @smalldisplay. Too bad, but makeinfo will catch the error anyway.
-%
-\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display}
-\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format}
-\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts.
-% Originally contributed by Pavel@xerox.
-\def\smalllispx{\begingroup
- \def\Esmalllisp{\nonfillfinish\endgroup}%
- \def\Esmallexample{\nonfillfinish\endgroup}%
- \indexfonts
- \lisp
-}
-
-% @display: same as @lisp except keep current font.
-%
-\def\display{\begingroup
- \nonfillstart
- \let\Edisplay = \nonfillfinish
- \gobble
-}
-
-% @smalldisplay (when @smallbook): @display plus smaller fonts.
-%
-\def\smalldisplayx{\begingroup
- \def\Esmalldisplay{\nonfillfinish\endgroup}%
- \indexfonts \rm
- \display
-}
-
-% @format: same as @display except don't narrow margins.
-%
-\def\format{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eformat = \nonfillfinish
- \gobble
-}
-
-% @smallformat (when @smallbook): @format plus smaller fonts.
-%
-\def\smallformatx{\begingroup
- \def\Esmallformat{\nonfillfinish\endgroup}%
- \indexfonts \rm
- \format
-}
-
-% @flushleft (same as @format).
-%
-\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format}
-
-% @flushright.
-%
-\def\flushright{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eflushright = \nonfillfinish
- \advance\leftskip by 0pt plus 1fill
- \gobble
-}
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
-%
-\def\quotation{%
- \begingroup\inENV %This group ends at the end of the @quotation body
- {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \singlespace
- \parindent=0pt
- % We have retained a nonzero parskip for the environment, since we're
- % doing normal filling. So to avoid extra space below the environment...
- \def\Equotation{\parskip = 0pt \nonfillfinish}%
- %
- % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
- \ifx\nonarrowing\relax
- \advance\leftskip by \lispnarrowing
- \advance\rightskip by \lispnarrowing
- \exdentamount = \lispnarrowing
- \let\nonarrowing = \relax
- \fi
-}
-
-
-\message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc. For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
- \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
- % also in that case restore the outer-level definition of (.
- \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
- \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text. This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\def\ampnr{\&}
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\noindent
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2
-\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
-%
-\def\defmethparsebody#1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
-
-% @deftypemethod has an extra argument that nothing else does. Sigh.
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
-% #5 is the method's return type.
-%
-\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
-
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody. It could probably be used for
-% some of the others, too, with some judicious conditionals.
-%
-\def\parsebodycommon#1#2#3{%
- \begingroup\inENV %
- \medbreak %
- % Define the end token that this defining construct specifies
- % so that it will exit this group.
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines
-}
-
-\def\defvrparsebody#1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{#3{#4}}%
-}
-
-% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument. Sigh.
-% \let\deftpparsebody=\defvrparsebody
-%
-% So, to get around this, we put \empty in with the type name. That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
-%
-\def\deftpparsebody #1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{\parsetpheaderline{#3{#4}}}\empty
-}
-
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any). That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
-
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
- #1{\removeemptybraces#2\relax}{#3}%
-}%
-
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-% the first is all of #2 before the space token,
-% the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
-
-% Define @defun.
-
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
-
-\def\defunargs #1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-\hyphenchar\tensl=0
-#1%
-\hyphenchar\tensl=45
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-% Do complete processing of one @defun or @defunx line already parsed.
-
-% @deffn Command forward-char nchars
-
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defun == @deffn Function
-
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
-
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type. #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}%
-\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-
-% \defheaderxcond#1\relax$$$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
-
-% #1 is the classification. #2 is the data type. #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-% at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
-
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special Form}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-
-\def\deffnx #1 {\errmessage{@deffnx in invalid context}}
-\def\defunx #1 {\errmessage{@defunx in invalid context}}
-\def\defmacx #1 {\errmessage{@defmacx in invalid context}}
-\def\defspecx #1 {\errmessage{@defspecx in invalid context}}
-\def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}}
-\def\deftypemethodx #1 {\errmessage{@deftypemethodx in invalid context}}
-\def\deftypefunx #1 {\errmessage{@deftypefunx in invalid context}}
-
-% @defmethod, and so on
-
-% @defop CATEGORY CLASS OPERATION ARG...
-
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
-
-\def\defopheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @deftypemethod CLASS RETURN-TYPE METHOD ARG...
-%
-\def\deftypemethod{%
- \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
-%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}%
- \deftypefunargs{#4}%
- \endgroup
-}
-
-% @defmethod == @defop Method
-%
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-%
-% #1 is the class name, #2 the method name, #3 the args.
-\def\defmethodheader#1#2#3{%
- \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{#2}{\putwordMethodon\ \code{#1}}%
- \defunargs{#3}%
- \endgroup
-}
-
-% @defcv {Class Option} foo-class foo-flag
-
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
-
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype{} of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% @defivar == @defcv {Instance Variable}
-
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance Variable of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
-
-\def\defopx #1 {\errmessage{@defopx in invalid context}}
-\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}}
-\def\defcvx #1 {\errmessage{@defcvx in invalid context}}
-\def\defivarx #1 {\errmessage{@defivarx in invalid context}}
-
-% Now @defvar
-
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
-\defvarargs {#2}\endgroup %
-}
-
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
-\defvarargs {#2}\endgroup %
-}
-
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type. #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
-
-\def\defvrx #1 {\errmessage{@defvrx in invalid context}}
-\def\defvarx #1 {\errmessage{@defvarx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-\def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}}
-\def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
-
-\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
-
-
-\message{macros,}
-% @macro.
-
-% To do this right we need a feature of e-TeX, \scantokens,
-% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
- \newwrite\macscribble
- \def\scanmacro#1{%
- \begingroup \newlinechar`\^^M
- \immediate\openout\macscribble=\jobname.tmp
- \immediate\write\macscribble{#1}%
- \immediate\closeout\macscribble
- \let\xeatspaces\eatspaces
- \input \jobname.tmp
- \endgroup
-}
-\else
-\def\scanmacro#1{%
-\begingroup \newlinechar`\^^M
-\let\xeatspaces\eatspaces\scantokens{#1}\endgroup}
-\fi
-
-\newcount\paramno % Count of parameters
-\newtoks\macname % Macro name
-\newif\ifrecursive % Is it recursive?
-
-% Utility routines.
-% Thisdoes \let #1 = #2, except with \csnames.
-\def\cslet#1#2{%
-\expandafter\expandafter
-\expandafter\let
-\expandafter\expandafter
-\csname#1\endcsname
-\csname#2\endcsname}
-
-% Trim leading and trailing spaces off a string.
-% Concepts from aro-bend problem 15 (see CTAN).
-{\catcode`\@=11
-\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
-\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
-\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
-\def\unbrace#1{#1}
-\unbrace{\gdef\trim@@@ #1 } #2@{#1}
-}
-
-% Trim a single trailing ^^M off a string.
-{\catcode`\^^M=12\catcode`\Q=3%
-\gdef\eatcr #1{\eatcra #1Q^^MQ}%
-\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
-\gdef\eatcrb#1Q#2Q{#1}%
-}
-
-% Macro bodies are absorbed as an argument in a context where
-% all characters are catcode 10, 11 or 12, except \ which is active
-% (as in normal texinfo). It is necessary to change the definition of \.
-
-% It's necessary to have hard CRs when the macro is executed. This is
-% done by making ^^M (\endlinechar) catcode 12 when reading the macro
-% body, and then making it the \newlinechar in \scanmacro.
-
-\def\macrobodyctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\{=12
- \catcode`\}=12
- \catcode`\@=12
- \catcode`\^^M=12
- \usembodybackslash}
-
-\def\macroargctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\@=12
- \catcode`\\=12}
-
-% \mbodybackslash is the definition of \ in @macro bodies.
-% It maps \foo\ => \csname macarg.foo\endcsname => #N
-% where N is the macro parameter number.
-% We define \csname macarg.\endcsname to be \realbackslash, so
-% \\ in macro replacement text gets you a backslash.
-
-{\catcode`@=0 @catcode`@\=@active
- @gdef@usembodybackslash{@let\=@mbodybackslash}
- @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
-}
-\expandafter\def\csname macarg.\endcsname{\realbackslash}
-
-\def\macro{\recursivefalse\parsearg\macroxxx}
-\def\rmacro{\recursivetrue\parsearg\macroxxx}
-
-\def\macroxxx#1{%
- \getargs{#1}% now \macname is the macname and \argl the arglist
- \ifx\argl\empty % no arguments
- \paramno=0%
- \else
- \expandafter\parsemargdef \argl;%
- \fi
- \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
- \cslet{macsave.\the\macname}{\the\macname}%
- \else
- \message{Warning: redefining \the\macname}%
- \fi
- \begingroup \macrobodyctxt
- \ifrecursive \expandafter\parsermacbody
- \else \expandafter\parsemacbody
- \fi}
-
-\def\unmacro{\parsearg\unmacroxxx}
-\def\unmacroxxx#1{%
- \expandafter\ifx \csname macsave.\the\macname\endcsname \relax
- \errmessage{Macro \the\macname\ not defined.}%
- \else
- \cslet{#1}{macsave.#1}%
- \expandafter\let \csname macsave.\the\macname\endcsname \undefined
- \fi
-}
-
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> is #, then the preceding argument is delimited by
-% an opening brace, and that opening brace is not consumed.
-\def\getargs#1{\getargsxxx#1{}}
-\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
-\def\getmacname #1 #2\relax{\macname={#1}}
-\def\getmacargs#1{\def\argl{#1}}
-
-% Parse the optional {params} list. Set up \paramno and \paramlist
-% so \defmacro knows what to do. Define \macarg.blah for each blah
-% in the params list, to be ##N where N is the position in that list.
-% That gets used by \mbodybackslash (above).
-
-% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX: let \hash be something
-% unexpandable, insert that wherever you need a #, and then redefine
-% it to # just before using the token list produced.
-%
-% The same technique is used to protect \eatspaces till just before
-% the macro is used.
-
-\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
- \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
-\def\parsemargdefxxx#1,{%
- \if#1;\let\next=\relax
- \else \let\next=\parsemargdefxxx
- \advance\paramno by 1%
- \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
- {\xeatspaces{\hash\the\paramno}}%
- \edef\paramlist{\paramlist\hash\the\paramno,}%
- \fi\next}
-
-% These two commands read recursive and nonrecursive macro bodies.
-% (They're different since rec and nonrec macros end differently.)
-
-\long\def\parsemacbody#1@end macro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\long\def\parsermacbody#1@end rmacro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
-% Much magic with \expandafter here.
-% \xdef is used so that macro definitions will survive the file
-% they're defined in; @include reads the file inside a group.
-\def\defmacro{%
- \let\hash=##% convert placeholders to macro parameter chars
- \ifrecursive
- \ifcase\paramno
- % 0
- \expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\scanmacro{\temp}}%
- \or % 1
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\braceorline\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup\noexpand\scanmacro{\temp}}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{\egroup\noexpand\scanmacro{\temp}}%
- \fi
- \else
- \ifcase\paramno
- % 0
- \expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \or % 1
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\braceorline\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \fi
- \fi}
-
-\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
-
-% \braceorline decides whether the next nonwhitespace character is a
-% {. If so it reads up to the closing }, if not, it reads the whole
-% line. Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg)
-\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
-\def\braceorlinexxx{%
- \ifx\nchar\bgroup\else
- \expandafter\parsearg
- \fi \next}
-
-
-\message{cross references,}
-\newwrite\auxfile
-
-\newif\ifhavexrefs % True if xref values are known.
-\newif\ifwarnedxrefs % True if we warned once that they aren't known.
-
-% @inforef is relatively simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
- node \samp{\ignorespaces#1{}}}
-
-% @node's job is to define \lastnode.
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\nwnode=\node
-\let\lastnode=\relax
-
-% The sectioning commands (@chapter, etc.) call these.
-\def\donoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}%
- {Ysectionnumberandtype}%
- \global\let\lastnode=\relax
- \fi
-}
-\def\unnumbnoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}%
- \global\let\lastnode=\relax
- \fi
-}
-\def\appendixnoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}%
- {Yappendixletterandtype}%
- \global\let\lastnode=\relax
- \fi
-}
-
-
-% @anchor{NAME} -- define xref target at arbitrary point.
-%
-\def\anchor#1{\setref{#1}{Ynothing}}
-
-
-% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
-% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have
-% to set \indexdummies so commands such as @code in a section title
-% aren't expanded. It would be nicer not to expand the titles in the
-% first place, but there's so many layers that that is hard to do.
-%
-\def\setref#1#2{{%
- \indexdummies
- \dosetq{#1-title}{Ytitle}%
- \dosetq{#1-pg}{Ypagenumber}%
- \dosetq{#1-snt}{#2}
-}}
-
-% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
-% the node name, #2 the name of the Info cross-reference, #3 the printed
-% node name, #4 the name of the Info file, #5 the name of the printed
-% manual. All but the node name can be omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
- \def\printedmanual{\ignorespaces #5}%
- \def\printednodename{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual}%
- \setbox0=\hbox{\printednodename}%
- \ifdim \wd0 = 0pt
- % No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
- \def\printednodename{\ignorespaces #1}%
- \else
- % Use the actual chapter/section title appear inside
- % the square brackets. Use the real section title if we have it.
- \ifdim \wd1 > 0pt
- % It is in another manual, so we don't have it.
- \def\printednodename{\ignorespaces #1}%
- \else
- \ifhavexrefs
- % We know the real title if we have the xref values.
- \def\printednodename{\refx{#1-title}{}}%
- \else
- % Otherwise just copy the Info node name.
- \def\printednodename{\ignorespaces #1}%
- \fi%
- \fi
- \fi
- \fi
- %
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
- \ifdim \wd1 > 0pt
- \putwordsection{} ``\printednodename'' in \cite{\printedmanual}%
- \else
- % _ (for example) has to be the character _ for the purposes of the
- % control sequence corresponding to the node, but it has to expand
- % into the usual \leavevmode...\vrule stuff for purposes of
- % printing. So we \turnoffactive for the \refx-snt, back on for the
- % printing, back off for the \refx-pg.
- {\normalturnoffactive
- % Only output a following space if the -snt ref is nonempty; for
- % @unnumbered and @anchor, it won't be.
- \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
- \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
- }%
- % [mynode],
- [\printednodename],\space
- % page 3
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
-\endgroup}
-
-% \dosetq is the interface for calls from other macros
-
-% Use \normalturnoffactive so that punctuation chars such as underscore
-% and backslash work in node names. (\turnoffactive doesn't do \.)
-\def\dosetq#1#2{%
- {\let\folio=0
- \normalturnoffactive
- \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
- \iflinks
- \next
- \fi
- }%
-}
-
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
-
-\def\Ypagenumber{\folio}
-
-\def\Ytitle{\thissection}
-
-\def\Ynothing{}
-
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Non-3.0.
-\else
- \def\linenumber{\the\inputlineno:\space}
-\fi
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-
-\def\refx#1#2{%
- \expandafter\ifx\csname X#1\endcsname\relax
- % If not defined, say something at least.
- \angleleft un\-de\-fined\angleright
- \iflinks
- \ifhavexrefs
- \message{\linenumber Undefined cross reference `#1'.}%
- \else
- \ifwarnedxrefs\else
- \global\warnedxrefstrue
- \message{Cross reference values unknown; you must run TeX again.}%
- \fi
- \fi
- \fi
- \else
- % It's defined, so just use it.
- \csname X#1\endcsname
- \fi
- #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file.
-%
-\def\xrdef#1{\begingroup
- % Reenable \ as an escape while reading the second argument.
- \catcode`\\ = 0
- \afterassignment\endgroup
- \expandafter\gdef\csname X#1\endcsname
-}
-
-% Read the last existing aux file, if any. No error if none exists.
-\def\readauxfile{\begingroup
- \catcode`\^^@=\other
- \catcode`\^^A=\other
- \catcode`\^^B=\other
- \catcode`\^^C=\other
- \catcode`\^^D=\other
- \catcode`\^^E=\other
- \catcode`\^^F=\other
- \catcode`\^^G=\other
- \catcode`\^^H=\other
- \catcode`\^^K=\other
- \catcode`\^^L=\other
- \catcode`\^^N=\other
- \catcode`\^^P=\other
- \catcode`\^^Q=\other
- \catcode`\^^R=\other
- \catcode`\^^S=\other
- \catcode`\^^T=\other
- \catcode`\^^U=\other
- \catcode`\^^V=\other
- \catcode`\^^W=\other
- \catcode`\^^X=\other
- \catcode`\^^Z=\other
- \catcode`\^^[=\other
- \catcode`\^^\=\other
- \catcode`\^^]=\other
- \catcode`\^^^=\other
- \catcode`\^^_=\other
- \catcode`\@=\other
- \catcode`\^=\other
- % It was suggested to define this as 7, which would allow ^^e4 etc.
- % in xref tags, i.e., node names. But since ^^e4 notation isn't
- % supported in the main text, it doesn't seem desirable. Furthermore,
- % that is not enough: for node names that actually contain a ^
- % character, we would end up writing a line like this: 'xrdef {'hat
- % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
- % argument, and \hat is not an expandable control sequence. It could
- % all be worked out, but why? Either we support ^^ or we don't.
- %
- % The other change necessary for this was to define \auxhat:
- % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
- % and then to call \auxhat in \setq.
- %
- \catcode`\~=\other
- \catcode`\[=\other
- \catcode`\]=\other
- \catcode`\"=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\$=\other
- \catcode`\#=\other
- \catcode`\&=\other
- \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
- % Make the characters 128-255 be printing characters
- {%
- \count 1=128
- \def\loop{%
- \catcode\count 1=\other
- \advance\count 1 by 1
- \ifnum \count 1<256 \loop \fi
- }%
- }%
- % The aux file uses ' as the escape (for now).
- % Turn off \ as an escape so we do not lose on
- % entries which were dumped with control sequences in their names.
- % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
- % Reference to such entries still does not work the way one would wish,
- % but at least they do not bomb out when the aux file is read in.
- \catcode`\{=1
- \catcode`\}=2
- \catcode`\%=\other
- \catcode`\'=0
- \catcode`\\=\other
- %
- \openin 1 \jobname.aux
- \ifeof 1 \else
- \closein 1
- \input \jobname.aux
- \global\havexrefstrue
- \global\warnedobstrue
- \fi
- % Open the new aux file. TeX will close it automatically at exit.
- \openout\auxfile=\jobname.aux
-\endgroup}
-
-
-% Footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-\let\ptexfootnote=\footnote
-
-{\catcode `\@=11
-%
-% Auto-number footnotes. Otherwise like plain.
-\gdef\footnote{%
- \global\advance\footnoteno by \@ne
- \edef\thisfootno{$^{\the\footnoteno}$}%
- %
- % In case the footnote comes at the end of a sentence, preserve the
- % extra spacing after we do the footnote number.
- \let\@sf\empty
- \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
- %
- % Remove inadvertent blank space before typesetting the footnote number.
- \unskip
- \thisfootno\@sf
- \footnotezzz
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter. Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
-% the footnote is read. --karl, 16nov96.
-%
-\long\gdef\footnotezzz{\insert\footins\bgroup
- % We want to typeset this text as a normal paragraph, even if the
- % footnote reference occurs in (for example) a display environment.
- % So reset some parameters.
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \splitmaxdepth\dp\strutbox
- \floatingpenalty\@MM
- \leftskip\z@skip
- \rightskip\z@skip
- \spaceskip\z@skip
- \xspaceskip\z@skip
- \parindent\defaultparindent
- %
- % Hang the footnote text off the number.
- \hang
- \textindent{\thisfootno}%
- %
- % Don't crash into the line above the footnote text. Since this
- % expands into a box, it must come within the paragraph, lest it
- % provide a place where TeX can split the footnote.
- \footstrut
- \futurelet\next\fo@t
-}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
- \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\egroup}
-
-}%end \catcode `\@=11
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly. There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
- \normalbaselineskip = #1\relax
- \normallineskip = \lineskipfactor\normalbaselineskip
- \normalbaselines
- \setbox\strutbox =\hbox{%
- \vrule width0pt height\strutheightpercent\baselineskip
- depth \strutdepthpercent \baselineskip
- }%
-}
-
-% @| inserts a changebar to the left of the current line. It should
-% surround any changed text. This approach does *not* work if the
-% change spans more than two lines of output. To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
- % \vadjust can only be used in horizontal mode.
- \leavevmode
- %
- % Append this vertical mode material after the current line in the output.
- \vadjust{%
- % We want to insert a rule with the height and depth of the current
- % leading; that is exactly what \strutbox is supposed to record.
- \vskip-\baselineskip
- %
- % \vadjust-items are inserted at the left edge of the type. So
- % the \llap here moves out into the left-hand margin.
- \llap{%
- %
- % For a thicker or thinner bar, change the `1pt'.
- \vrule height\baselineskip width1pt
- %
- % This is the space between the bar and the text.
- \hskip 12pt
- }%
- }%
-}
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @image. We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-%
-% Check for and read epsf.tex up front. If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
- \closein 1
- % Do not bother showing banner with post-v2.7 epsf.tex (available in
- % doc/epsf.tex until it shows up on ctan).
- \def\epsfannounce{\toks0 = }%
- \input epsf.tex
-\fi
-%
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
- work. It is also included in the Texinfo distribution, or you can get
- it from ftp://ftp.tug.org/tex/epsf.tex.}
-%
-% Only complain once about lack of epsf.tex.
-\def\image#1{%
- \ifx\epsfbox\undefined
- \ifwarnednoepsf \else
- \errhelp = \noepsfhelp
- \errmessage{epsf.tex not found, images will be ignored}%
- \global\warnednoepsftrue
- \fi
- \else
- \imagexxx #1,,,\finish
- \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
- % \epsfbox itself resets \epsf?size at each figure.
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
- \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
- % If the image is by itself, center it.
- \ifvmode
- \nobreak\medskip
- \nobreak
- \centerline{\epsfbox{#1.eps}}%
- \bigbreak
- \else
- \epsfbox{#1.eps}%
- \fi
-}
-
-
-\message{paper sizes,}
-% And other related parameters.
-
-\newdimen\defaultparindent \defaultparindent = 15pt
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness = 10000
-
-% Don't be so finicky about underfull hboxes, either.
-\hbadness = 2000
-
-% Following George Bush, just get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything. We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize. This makes it come to about 9pt for the 8.5x11 format. We
-% call this whenever the paper size is set.
-%
-\def\setemergencystretch{%
- \ifx\emergencystretch\thisisundefined
- % Allow us to assign to \emergencystretch anyway.
- \def\emergencystretch{\dimen0}%
- \else
- \emergencystretch = \hsize
- \divide\emergencystretch by 45
- \fi
-}
-
-% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
-% 4) hoffset; 5) binding offset; 6) topskip. Then whoever calls us can
-% set \parskip and call \setleading for \baselineskip.
-%
-\def\internalpagesizes#1#2#3#4#5#6{%
- \voffset = #3\relax
- \topskip = #6\relax
- \splittopskip = \topskip
- %
- \vsize = #1\relax
- \advance\vsize by \topskip
- \outervsize = \vsize
- \advance\outervsize by 2\topandbottommargin
- \pageheight = \vsize
- %
- \hsize = #2\relax
- \outerhsize = \hsize
- \advance\outerhsize by 0.5in
- \pagewidth = \hsize
- %
- \normaloffset = #4\relax
- \bindingoffset = #5\relax
- %
- \parindent = \defaultparindent
- \setemergencystretch
-}
-
-% @letterpaper (the default).
-\def\letterpaper{{\globaldefs = 1
- \parskip = 3pt plus 2pt minus 1pt
- \setleading{13.2pt}%
- %
- % If page is nothing but text, make it come out even.
- \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}%
-}}
-
-% Use @smallbook to reset parameters for 7x9.5 (or so) format.
-\def\smallbook{{\globaldefs = 1
- \parskip = 2pt plus 1pt
- \setleading{12pt}%
- %
- \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}%
- %
- \lispnarrowing = 0.3in
- \tolerance = 700
- \hfuzz = 1pt
- \contentsrightmargin = 0pt
- \deftypemargin = 0pt
- \defbodyindent = .5cm
- %
- \let\smalldisplay = \smalldisplayx
- \let\smallexample = \smalllispx
- \let\smallformat = \smallformatx
- \let\smalllisp = \smalllispx
-}}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{{\globaldefs = 1
- \setleading{12pt}%
- \parskip = 3pt plus 2pt minus 1pt
- %
- \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%
- %
- \tolerance = 700
- \hfuzz = 1pt
-}}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex{{\globaldefs = 1
- \setleading{13.6pt}%
- %
- \afourpaper
- \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
- %
- \globaldefs = 0
-}}
-
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{%
- \afourpaper
- \internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
- %
- \globaldefs = 0
-}
-
-% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
-% Perhaps we should allow setting the margins, \topskip, \parskip,
-% and/or leading, also. Or perhaps we should compute them somehow.
-%
-\def\pagesizes{\parsearg\pagesizesxxx}
-\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish}
-\def\pagesizesyyy#1,#2,#3\finish{{%
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
- \globaldefs = 1
- %
- \parskip = 3pt plus 2pt minus 1pt
- \setleading{13.2pt}%
- %
- \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}%
-}}
-
-% Set default to letter.
-%
-\letterpaper
-
-\message{and turning on texinfo input format.}
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise. Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt\char34}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-\catcode`\|=\active
-\def|{{\tt\char124}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
-
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
-\catcode`\@=0
-
-% \rawbackslashxx output one backslash character in current font
-\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
-
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
-
-% Say @foo, not \foo, in error messages.
-\escapechar=`\@
-
-% \catcode 17=0 % Define control-q
-\catcode`\\=\active
-
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
-@gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi
- @catcode`+=@active @catcode`@_=@active}
-
-% These look ok in all fonts, so just make them not special. The @rm below
-% makes sure that the current font starts out as the newly loaded cmr10
-@catcode`@$=@other @catcode`@%=@other @catcode`@&=@other @catcode`@#=@other
-
-@textfonts
-@rm
-
-@c Local variables:
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
-@c page-delimiter: "^\\\\message"
-@c time-stamp-start: "def\\\\texinfoversion{"
-@c time-stamp-format: "%:y-%02m-%02d"
-@c time-stamp-end: "}"
-@c End:
diff --git a/avl-1.4.0/thread-test.c b/avl-1.4.0/thread-test.c
deleted file mode 100644
index 20eead4..0000000
--- a/avl-1.4.0/thread-test.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* libavl - manipulates AVL trees.
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- The author may be contacted at <pfaffben@pilot.msu.edu> on the
- Internet, or as Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA
- through more mundane means. */
-
-/* This is file thread-test.c in libavl. */
-
-#if HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include "avl.h"
-#include "avlt.h"
-#include "avltr.h"
-
-#if __GNUC__ >= 2
-#define unused __attribute__ ((unused))
-#else
-#define unused
-#endif
-
-/* Compare two integers A and B and return a strcmp()-type result. */
-int
-compare_ints (const void *a, const void *b, void unused *param)
-{
- return ((int) a) - ((int) b);
-}
-
-/* Arrange the N elements of ARRAY in random order. */
-void
-shuffle (int *array, int n)
-{
- int i;
-
- for (i = 0; i < n; i++)
- {
- int j = i + rand () % (n - i);
- int t = array[j];
- array[j] = array[i];
- array[i] = t;
- }
-}
-
-
-/* Simple stress test procedure for the AVL tree threading/unthreading
- routines. */
-#define TREE_SIZE 1024
-#define N_ITERATIONS 16
-int
-main (int argc, char **argv)
-{
- int array[TREE_SIZE];
- int seed;
- int iteration;
-
- if (argc == 2)
- seed = atoi (argv[1]);
- else
- seed = time (0) * 257 % 32768;
-
- fputs ("Testing threading and unthreading...\n", stdout);
- for (iteration = 1; iteration <= N_ITERATIONS; iteration++)
- {
- avl_tree *tree;
- avl_traverser trav = AVL_TRAVERSER_INIT;
- void **nodep = NULL;
- void *node;
- int i;
-
- printf ("Iteration %4d/%4d: seed=%5d", iteration, N_ITERATIONS, seed);
- fflush (stdout);
-
- srand (seed++);
-
- for (i = 0; i < TREE_SIZE; i++)
- array[i] = i + 1;
- shuffle (array, TREE_SIZE);
-
- tree = avl_create (compare_ints, NULL);
- for (i = 0; i < TREE_SIZE; i++)
- avl_force_insert (tree, (void *) (array[i]));
-
- shuffle (array, TREE_SIZE);
- for (i = 0; i < TREE_SIZE; i++)
- {
- avlt_tree *t;
- avltr_tree *tr;
-
- avl_delete (tree, (void *) (array[i]));
-
- while ((node = avl_traverse (tree, &trav)) != NULL);
-
- t = avlt_thread (tree);
- while ((nodep = avlt_next (t, nodep)) != NULL);
- while ((nodep = avlt_prev (t, nodep)) != NULL);
- avlt_unthread (t);
-
- tr = avltr_thread (tree);
- while ((nodep = avltr_next (tr, nodep)) != NULL);
- avltr_unthread (tr);
-
- while ((node = avl_traverse (tree, &trav)) != NULL);
-
- if (i % 128 == 0)
- {
- putchar ('.');
- fflush (stdout);
- }
- }
- fputs (" good.\n", stdout);
-
- avl_destroy (tree, NULL);
- }
-
- return 0;
-}
-
-/*
- Local variables:
- compile-command: "gcc -W -Wall -I. -o ./thread-test thread-test.c avl.c avlt.c avltr.c"
- End:
-*/
diff --git a/bit b/bit
deleted file mode 100755
index 772994a..0000000
--- a/bit
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-#
-# $Id$
-#
-
-#
-# Build all add-on packages for the current RTEMS_MAKEFILE_PATH architecture.
-#
-set -ex
-
-# rtemsNfs is version 1.2
-PACKAGES="rtemsNfs avl-1.4.0 ncurses-5.3 readline-4.3 libtecla-1.4.1 zlib-1.1.4"
-
-for p in $PACKAGES
-do
- cd $p
- makefile="../RTEMS_Makefiles/Makefile.$p"
- if [ \! -r "$makefile" ]
- then
- makefile="`echo $makefile | sed -e '/-.*/s///'`"
- fi
- if [ -r "$makefile" ]
- then
- make -w -f "$makefile"
- else
- make -w
- make -w install
- fi
- cd ..
-done
-
-for p in $PACKAGES
-do
- (cd $p ; make clean distclean || true)
-done
diff --git a/bit_bfd b/bit_bfd
deleted file mode 100644
index a6568f6..0000000
--- a/bit_bfd
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-#
-# $Id$
-#
-
-#
-# Where to find the binutils source
-#
-BINUTILS_SRC_DIR=~/src/RTEMS/bt/binutils-2.13.1
-set -ex
-
-rm -rf build
-mkdir build
-cd build
-make -w BINUTILS_SRC_DIR="$BINUTILS_SRC_DIR" -f ../RTEMS_Makefiles/Makefile.bfd
-cd ..
-rm -rf build
diff --git a/examples/avl/BuildTests.sh b/examples/avl/BuildTests.sh
deleted file mode 100644
index b0cc752..0000000
--- a/examples/avl/BuildTests.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-set -x
-
-SRCDIR=../../avl-1.4.0
-
-for TEST in avl avlt avltr rb
-do
- rm -f $TEST.c
- ln -s $SRCDIR/$TEST.c .
- make TEST=$TEST SRCDIR=$SRCDIR
- rm -f $TEST.c
-done
diff --git a/examples/avl/Makefile b/examples/avl/Makefile
deleted file mode 100644
index 0cbf425..0000000
--- a/examples/avl/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# $Id$
-#
-# Templates/Makefile.leaf
-# Template leaf node Makefile
-#
-
-# C source names, if any, go here -- minus the .c
-C_PIECES= init $(TEST)
-C_FILES=$(C_PIECES:%=%.c)
-C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
-
-# C++ source names, if any, go here -- minus the .cc
-CC_PIECES=
-CC_FILES=$(CC_PIECES:%=%.cc)
-CC_O_FILES=$(CC_PIECES:%=${ARCH}/%.o)
-
-H_FILES=
-
-# Assembly source names, if any, go here -- minus the .s
-S_PIECES=
-S_FILES=$(S_PIECES:%=%.s)
-S_O_FILES=$(S_FILES:%.s=${ARCH}/%.o)
-
-SRCS=$(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
-OBJS=$(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
-
-PGMS=${ARCH}/$(TEST)
-
-#
-# RTEMS managers go here
-#
-MANAGERS=io event message semaphore
-
-include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
-include $(RTEMS_CUSTOM)
-include $(PROJECT_ROOT)/make/leaf.cfg
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS += -I$(SRCDIR) -DSELF_TEST=1 -Dmain=ncchk
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS +=
-CFLAGS_LD += -Wl,--defsym -Wl,HeapSize=0x200000 # network needs more space
-CFLAGS_DEBUG_V += -DSTACK_CHECKER_ON
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-all: ${ARCH} $(SRCS) $(PGMS)
-
-${ARCH}/$(TEST): ${OBJS} ${LINK_FILES}
- $(make-exe)
-
-# Install the program(s), appending _g or _p as appropriate.
-# for include files, just use $(INSTALL)
-install: all
- $(INSTALL_VARIANT) -m 555 ${PGMS} /usr/local/tftpboot/bootfiles/m68360/
diff --git a/examples/avl/README b/examples/avl/README
deleted file mode 100644
index 72cab38..0000000
--- a/examples/avl/README
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory contains a script and a makefile to build RTEMS
-executable images of the avl test programs. To build all
-the tests:
- sh BuildTests.sh
diff --git a/examples/avl/init.c b/examples/avl/init.c
deleted file mode 100644
index eb33c84..0000000
--- a/examples/avl/init.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Root task
- *
- * $Revision$ $Date$ $Author$
- */
-#include <bsp.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/*
- ***********************************************************************
- * RTEMS CONFIGURATION *
- ***********************************************************************
- */
-#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
-
-#define CONFIGURE_MAXIMUM_TASKS 20
-#define CONFIGURE_MAXIMUM_SEMAPHORES 10
-#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 10
-
-#define CONFIGURE_MICROSECONDS_PER_TICK 52489
-
-#define CONFIGURE_INIT
-#define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \
- RTEMS_NO_TIMESLICE | \
- RTEMS_NO_ASR | \
- RTEMS_INTERRUPT_LEVEL(0))
-#define CONFIGURE_INIT_TASK_STACK_SIZE (40*1024)
-#define CONFIGURE_INIT_TASK_PRIORITY 100
-rtems_task Init (rtems_task_argument argument);
-
-#define CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
-rtems_driver_address_table Device_drivers[] = {
- CONSOLE_DRIVER_TABLE_ENTRY,
- CLOCK_DRIVER_TABLE_ENTRY,
-};
-
-#include <confdefs.h>
-
-extern int main (int argc, char **argv);
-
-/*
- * RTEMS Startup Task
- */
-rtems_task
-Init (rtems_task_argument ignored)
-{
- putenv ("TERM=xterm");
- main (0, NULL);
- rtems_task_suspend (RTEMS_SELF);
-}
diff --git a/examples/ncurses/BuildTests.sh b/examples/ncurses/BuildTests.sh
deleted file mode 100644
index f8c2f68..0000000
--- a/examples/ncurses/BuildTests.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-set -x
-
-SRCDIR=../../ncurses-5.2/test
-
-for TEST in \
- blue \
- bs \
- cardfile \
- ditto \
- filter \
- firework \
- firstlast \
- gdc \
- hanoi \
- hashtest \
- keynames \
- knight \
- lrtest \
- ncurses \
- newdemo \
- rain \
- tclock \
- testaddch \
- testcurs \
- testscanw \
- view \
- worm \
- xmas
-do
- rm -f $TEST.c
- ln -s $SRCDIR/$TEST.c .
- make TEST=$TEST SRCDIR=$SRCDIR
- rm -f $TEST.c
-done
diff --git a/examples/ncurses/Makefile b/examples/ncurses/Makefile
deleted file mode 100644
index ecdc006..0000000
--- a/examples/ncurses/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# $Id$
-#
-# Templates/Makefile.leaf
-# Template leaf node Makefile
-#
-
-# C source names, if any, go here -- minus the .c
-C_PIECES= init $(TEST)
-C_FILES=$(C_PIECES:%=%.c)
-C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
-
-# C++ source names, if any, go here -- minus the .cc
-CC_PIECES=
-CC_FILES=$(CC_PIECES:%=%.cc)
-CC_O_FILES=$(CC_PIECES:%=${ARCH}/%.o)
-
-H_FILES=
-
-# Assembly source names, if any, go here -- minus the .s
-S_PIECES=
-S_FILES=$(S_PIECES:%=%.s)
-S_O_FILES=$(S_FILES:%.s=${ARCH}/%.o)
-
-SRCS=$(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
-OBJS=$(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
-
-PGMS=${ARCH}/$(TEST)
-
-#
-# RTEMS managers go here
-#
-MANAGERS=io event message semaphore
-
-include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
-include $(RTEMS_CUSTOM)
-include $(PROJECT_ROOT)/make/leaf.cfg
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS += -I$(SRCDIR) -Dmain=ncchk -DRETSIGTYPE=void
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS += -lm -lpanel -lform -lmenu -lncurses
-CFLAGS_LD += -Wl,--defsym -Wl,HeapSize=0x200000 # network needs more space
-CFLAGS_DEBUG_V += -DSTACK_CHECKER_ON
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-all: ${ARCH} $(SRCS) $(PGMS)
-
-${ARCH}/$(TEST): ${OBJS} ${LINK_FILES}
- $(make-exe)
-
-# Install the program(s), appending _g or _p as appropriate.
-# for include files, just use $(INSTALL)
-install: all
- $(INSTALL_VARIANT) -m 555 ${PGMS} /usr/local/tftpboot/bootfiles/m68360/
diff --git a/examples/ncurses/README b/examples/ncurses/README
deleted file mode 100644
index beb3c32..0000000
--- a/examples/ncurses/README
+++ /dev/null
@@ -1,4 +0,0 @@
-This directory contains a script and a makefile to build RTEMS
-executable images of the ncurses test programs. To build all
-the tests:
- sh BuildTests.sh
diff --git a/examples/ncurses/init.c b/examples/ncurses/init.c
deleted file mode 100644
index 8a81a1a..0000000
--- a/examples/ncurses/init.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Root task
- *
- * $Revision$ $Date$ $Author$
- */
-#include <bsp.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/*
- ***********************************************************************
- * RTEMS CONFIGURATION *
- ***********************************************************************
- */
-#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
-
-#define CONFIGURE_MAXIMUM_TASKS 20
-#define CONFIGURE_MAXIMUM_SEMAPHORES 10
-#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 10
-
-#define CONFIGURE_MICROSECONDS_PER_TICK 52489
-
-#define CONFIGURE_INIT
-#define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \
- RTEMS_NO_TIMESLICE | \
- RTEMS_NO_ASR | \
- RTEMS_INTERRUPT_LEVEL(0))
-#define CONFIGURE_INIT_TASK_STACK_SIZE (40*1024)
-#define CONFIGURE_INIT_TASK_PRIORITY 100
-rtems_task Init (rtems_task_argument argument);
-
-#define CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
-rtems_driver_address_table Device_drivers[] = {
- CONSOLE_DRIVER_TABLE_ENTRY,
- CLOCK_DRIVER_TABLE_ENTRY,
-};
-
-#include <confdefs.h>
-
-extern int main (int argc, char **argv);
-
-/*
- * RTEMS Startup Task
- */
-rtems_task
-Init (rtems_task_argument ignored)
-{
- putenv ("TERM=xterm");
- putenv ("NCURSES_TRACE=20");
- main (0, NULL);
- rtems_task_suspend (RTEMS_SELF);
-}
diff --git a/examples/readline/.gdbinit b/examples/readline/.gdbinit
deleted file mode 100644
index f198616..0000000
--- a/examples/readline/.gdbinit
+++ /dev/null
@@ -1 +0,0 @@
-directory ../../readline
diff --git a/examples/readline/Makefile b/examples/readline/Makefile
deleted file mode 100644
index 0b67968..0000000
--- a/examples/readline/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# $Id$
-#
-# Templates/Makefile.leaf
-# Template leaf node Makefile
-#
-
-# C source names, if any, go here -- minus the .c
-C_PIECES= init rlgeneric
-C_FILES=$(C_PIECES:%=%.c)
-C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
-
-# C++ source names, if any, go here -- minus the .cc
-CC_PIECES=
-CC_FILES=$(CC_PIECES:%=%.cc)
-CC_O_FILES=$(CC_PIECES:%=${ARCH}/%.o)
-
-H_FILES=
-
-# Assembly source names, if any, go here -- minus the .s
-S_PIECES=
-S_FILES=$(S_PIECES:%=%.s)
-S_O_FILES=$(S_FILES:%.s=${ARCH}/%.o)
-
-SRCS=$(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES)
-OBJS=$(C_O_FILES) $(CC_O_FILES) $(S_O_FILES)
-
-PGMS=${ARCH}/rlchk
-
-#
-# RTEMS managers go here
-#
-MANAGERS=io event message semaphore
-
-include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
-include $(RTEMS_CUSTOM)
-include $(PROJECT_ROOT)/make/leaf.cfg
-
-#
-# (OPTIONAL) Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS += -Dmain=rlchk
-CFLAGS +=
-
-LD_PATHS +=
-LD_LIBS += -lreadline -lncurses
-CFLAGS_LD += -Wl,--defsym -Wl,HeapSize=0x200000 # network needs more space
-CFLAGS_DEBUG_V += -DSTACK_CHECKER_ON
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS +=
-CLOBBER_ADDITIONS +=
-
-all: ${ARCH} $(SRCS) $(PGMS)
-
-${ARCH}/rlchk: ${OBJS} ${LINK_FILES}
- $(make-exe)
-
-# Install the program(s), appending _g or _p as appropriate.
-# for include files, just use $(INSTALL)
-install: all
- $(INSTALL_VARIANT) -m 555 ${PGMS} /usr/local/tftpboot/bootfiles/m68360/
diff --git a/examples/readline/init.c b/examples/readline/init.c
deleted file mode 100644
index 1336cfe..0000000
--- a/examples/readline/init.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Root task
- *
- * $Revision$ $Date$ $Author$
- */
-#include <bsp.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/*
- ***********************************************************************
- * RTEMS CONFIGURATION *
- ***********************************************************************
- */
-#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
-
-#define CONFIGURE_MAXIMUM_TASKS 20
-#define CONFIGURE_MAXIMUM_SEMAPHORES 10
-#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 10
-
-#define CONFIGURE_MICROSECONDS_PER_TICK 52489
-
-#define CONFIGURE_INIT
-#define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \
- RTEMS_NO_TIMESLICE | \
- RTEMS_NO_ASR | \
- RTEMS_INTERRUPT_LEVEL(0))
-#define CONFIGURE_INIT_TASK_STACK_SIZE (10*1024)
-#define CONFIGURE_INIT_TASK_PRIORITY 100
-rtems_task Init (rtems_task_argument argument);
-
-#define CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
-rtems_driver_address_table Device_drivers[] = {
- CONSOLE_DRIVER_TABLE_ENTRY,
- CLOCK_DRIVER_TABLE_ENTRY,
-};
-
-#include <confdefs.h>
-
-extern int main (int argc, char **argv);
-
-/*
- * RTEMS Startup Task
- */
-rtems_task
-Init (rtems_task_argument ignored)
-{
- putenv ("TERM=xterm");
- main (0, NULL);
- rtems_task_suspend (RTEMS_SELF);
-}
diff --git a/examples/readline/rlgeneric.c b/examples/readline/rlgeneric.c
deleted file mode 100644
index 2bb5da4..0000000
--- a/examples/readline/rlgeneric.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Host version of readline test program.
- * Works as RTEMS version when included in rlchk.c
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <readline/readline.h>
-#include <readline/history.h>
-
-int
-main (int argc, char **argv)
-{
- char *line;
-
- rl_bind_key ('\t', rl_insert);
- stifle_history (10);
- for (;;) {
- line = readline ("Enter a line: ");
- if (line && *line)
- add_history (line);
- printf ("Line: `%s'\n", line);
- if (line && !strcmp (line, "dump")) {
- rl_dump_variables (0,0);
- rl_dump_functions (0,0);
- }
- free (line);
- }
- return 0;
-}
diff --git a/libtecla-1.4.1/CHANGES b/libtecla-1.4.1/CHANGES
deleted file mode 100644
index 45073e0..0000000
--- a/libtecla-1.4.1/CHANGES
+++ /dev/null
@@ -1,1492 +0,0 @@
-In the following log, modification dates are listed using the European
-convention in which the day comes before the month (ie. DD/MM/YYYY).
-The most recent modifications are listed first.
-
-25/05/2002 mcs@astro.caltech.edu (based on suggestions by Paul Smith)
- pathutil.c
- Apparently, under QNX pathconf("/",_PC_PATH_MAX) returns
- EINVAL. At Paul's suggestion I have modified the code to
- silently substitute the existing MAX_PATHLEN_FALLBACK
- value if pathconf() returns an error of any kind.
- homedir.c
- Under QNX, sysconf(_SC_GETPW_R_SIZE_MAX) also apparently
- returns EINVAL, so as with pathconf() I modified the code
- to substitute a fallback default, rather than
- complaining and failing.
- enhance.c
- Paul told me that the inclusion of sys/termios.h was
- causing compilation of enhance.c to fail under QNX. This
- line is a bug. The correct thing to do is include
- termios.h without a sub-directory prefix, as I was
- already doing futher up in the file, so I have just
- removed the errant include line.
-
-12/02/2002 mcs@astro.caltech.edu
- getline.c configure.in configure
- Mac OS X doesn't have a term.h or termcap.h, but it does
- define prototypes for tputs() and setupterm(), so the
- default prototypes that I was including if no headers
- where available, upset it. I've removed these prototypes.
- I also now conditionally include whichever is found of
- curses.h and ncurses/curses.h for both termcap and
- terminfo (before I wasn't including curses.h when
- termcap was selected).
-
-12/02/2002 mcs@astro.caltech.edu
- Updated version number to 1.4.1, ready for a micro
- release.
-
-12/02/2002 mcs@astro.caltech.edu
- html/index.html
- Added Mac OS X and Cygwin to the list of systems that
- can compile libtecla.
-
-12/02/2002 mcs@astro.caltech.edu
- getline.c
- Under Mac OS X, the tputs() callback function returns
- void, instead of the int return value used by other
- systems. This declaration is now used if both __MACH__
- and __APPLE__ are defined. Hopefully these are the
- correct system macros to check. Thanks for Stephan
- Fiedler for providing information on Mac OS X.
-
-11/02/2002 mcs@astro.caltech.edu
- configure.in configure getline.c
- Some systems don't have term.h, and others have it hidden
- in an ncurses sub-directory of the standard system include
- directory. If term.h can't be found, simply don't include
- it. If it is in an ncurses sub-directory, include
- ncurses/term.h instead of term.h.
-
-04/02/2002 mcs@astro.caltech.edu
- configure.in configure Makefile.in Makefile.rules
- Use ranlib on systems that need it (Mac OS X). Also,
- make all components of the installation directories where
- needed, instead of assuming that they exist.
-
-04/02/2002 mcs@astro.caltech.edu
- getline.c
- When the tab completion binding was unbound from the tab
- key, hitting the tab key caused gl_get_line() to ring the
- bell instead of inserting a tab character. This is
- problematic when using the 'enhance' program with
- Jython, since tabs are important in Python. I have
- corrected this.
-
-10/12/2001 Version 1.4.0 released.
-
-10/12/2001 mcs@astro.caltech.edu
- getline.c
- If the TIOCGWINSZ ioctl doesn't work, as is the case when
- running in an emacs shell, leave the size unchanged, rather
- than returning a fatal error.
-
-07/12/2001 mcs@astro.caltech.edu
- configure.in configure
- Now that the configure version of CFLAGS is included in
- the makefile, I noticed that the optimization flags -g
- and -O2 had been added. It turns out that if CFLAGS isn't
- already set, the autoconf AC_PROG_CC macro initializes it
- with these two optimization flags. Since this would break
- backwards compatibility in embedded distributions that
- already use the OPT= makefile argument, and because
- turning debugging on needlessly bloats the library, I now
- make sure that CFLAGS is set before calling this macro.
-
-07/12/2001 mcs@astro.caltech.edu
- enhance.c
- Use argv[0] in error reports instead of using a
- hardcoded macro.
-
-07/12/2001 mcs@astro.caltech.edu
- getline.c
- The cut buffer wasn't being cleared after being
- used as a work buffer by gl_load_history().
-
-06/12/2001 mcs@astro.caltech.edu
- configure.in configure
- I removed my now redundant definition of SUN_TPUTS from
- CFLAGS. I also added "-I/usr/include" to CFLAGS under
- Solaris to prevent gcc from seeing conflicting versions
- of system header files in /usr/local/include.
-
-06/12/2001 Markus Gyger (logged here by mcs)
- Lots of files.
- Lots of corrections to misspellings and typos in the
- comments.
- getline.c
- Markus reverted a supposed fix that I added a day or two
- ago. I had incorrectly thought that in Solaris 8, Sun had
- finally brought their declaration of the callback
- function of tputs() into line with other systems, but it
- turned out that gcc was pulling in a GNU version of
- term.h from /usr/local/include, and this was what
- confused me.
-
-05/12/2001 mcs@astro.caltech.edu
- Makefile.in
- I added @CFLAGS@ to the CFLAGS assignment, so that
- if CFLAGS is set as an environment variable when
- configure is run, the corresponding make variable
- includes its values in the output makefile.
-
-05/12/2001 mcs@astro.caltech.edu
- getline.c libtecla.h libtecla.map man3/gl_get_line.3
- man3/gl_last_signal.3
- I added a function that programs can use to find out
- which signal caused gl_get_line() to return EINTR.
-
-05/12/2001 mcs@astro.caltech.edu
- getline.c
- When the newline action was triggered by a printable
- character, it failed to display that character. It now
- does. Also, extra control codes that I had added, to
- clear to the end of the display after the carriage return,
- but before displaying the prompt, were confusing expect
- scripts, so I have removed them. This step is now done
- instead in gl_redisplay() after displaying the full input
- line.
-
-05/12/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- A user convinced me that continuing to invoke meta
- keybindings for meta characters that are printable is a
- bad idea, as is allowing users to ask to have setlocale()
- called behind the application's back. I have thus changed
- this. The setlocale configuration option has gone, and
- gl_get_line() is now completely 8-bit clean, by default.
- This means that if a meta character is printable, it is
- treated as a literal character, rather than a potential
- M-c binding. Meta bindings can still be invoked via
- their Esc-c equivalents, and indeed most terminal
- emulators either output such escape pairs by default when
- the meta character is pressed, or can be configured to do
- so. I have documented how to configure xterm to do this,
- in the man page.
-
-03/12/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- gl_get_line() by default now prints any 8-bit printable
- characters that don't match keybindings. Previously
- characters > 127 were only printed if preceded by the
- literal-next action. Alternatively, by placing the
- command literal_if_printable in the tecla configuration
- file, all printable characters are treated as literal
- characters, even if they are bound to action functions.
-
- For international users of programs written by
- programmers that weren't aware of the need to call
- setlocale() to support alternate character sets, the
- configuration file can now also contain the single-word
- command "setlocale", which tells gl_get_line() to remedy
- this.
-
-27/11/2001 mcs@astro.caltech.edu
- demo.c demo2.c enhance man3/gl_get_line.3
- All demos and programs now call setlocale(LC_CTYPE,"").
- This makes them support character sets of different
- locales, where specified with the LC_CTYPE, LC_ALL, or
- LANG environment variables. I also added this to the demo
- in the man page, and documented its effect.
-
-27/11/2001 mcs@astro.caltech.edu
- getline.c
- When displaying unsigned characters with values over
- 127 literally, previously it was assumed that they would
- all be displayable. Now isprint() is consulted, and if it
- says that a character isn't printable, the character code
- is displayed in octal like \307. In non-C locales, some
- characters with values > 127 are displayable, and
- isprint() tells gl_get_line() which are and which aren't.
-
-27/11/2001 mcs@astro.caltech.edu
- getline.c pathutil.c history.c enhance.c demo2.c
- All arguments of the ctype.h character class functions
- are now cast to (int)(unsigned char). Previously they
- were cast to (int), which doesn't correctly conform to
- the requirements of the C standard, and could cause
- problems for characters with values > 127 on systems
- with signed char's.
-
-26/11/2001 mcs@astro.caltech.edu
- man3/enhance.3 man3/libtecla.3
- I started writing a man page for the enhance program.
-
-26/11/2001 mcs@astro.caltech.edu
- Makefile.in Makefile.rules INSTALL
- It is now possible to specify whether the demos and other
- programs are to be built, by overriding the default
- values of the DEMOS, PROGRAMS and PROGRAMS_R variables.
- I have also documented the BINDIR variable and the
- install_bin makefile target.
-
-22/11/2001 mcs@astro.caltech.edu
- getline.c libtecla.h libtecla.map man3/gl_get_line.3
- man3/gl_ignore_signal.3 man3/gl_trap_signal.3
- Signal handling has now been modified to be customizable.
- Signals that are trapped by default can be removed from
- the list of trapped signals, and signals that aren't
- currently trapped, can be added to the list. Applications
- can also specify the signal and terminal environments in
- which an application's signal handler is invoked, and
- what gl_get_line() does after the signal handler returns.
-
-13/11/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- Added half-bright, reverse-video and blinking text to the
- available prompt formatting options.
- getline.c
- Removed ^O from the default VT100 sgr0 capability
- string. Apparently it can cause problems with some
- terminal emulators, and we don't need it, since it turns
- off the alternative character set mode, which we don't
- use.
- getline.c
- gl_tigetstr() and gl_tgetstr() didn't guard against the
- error returns of tigetstr() and tgetstr() respectively.
- They now do.
-
-11/11/2001 mcs@astro.caltech.edu
- getline.c libtecla.h libtecla.map man3/gl_get_line.3
- man3/gl_prompt_style.3
- Although the default remains to display the prompt string
- literally, the new gl_prompt_style() function can be used
- to enable text attribute formatting directives in prompt
- strings, such as underlining, bold font, and highlighting
- directives.
-
-09/11/2001 mcs@astro.caltech.edu
- enhance.c Makefile.rules configure.in configure
- I added a new program to the distribution that allows one
- to run most third party programs with the tecla library
- providing command-line editing.
-
-08/11/2001 mcs@astro.caltech.edu
- libtecla.h getline.c man3/gl_get_line.3 history.c history.h
- I added a max_lines argument to gl_show_history() and
- _glh_show_history(). This can optionally be used to
- set a limit on the number of history lines displayed.
- libtecla.h getline.c man3/gl_get_line.3
- I added a new function called gl_replace_prompt(). This
- can be used by gl_get_line() callback functions to
- request that a new prompt be use when they return.
-
-06/11/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- I implemented, bound and documented the list-history
- action, used for listing historical lines of the current
- history group.
- getline.c man3/gl_get_line.3 man3/gl_echo_mode.3
- I wrote functions to specify and query whether subsequent
- lines will be visible as they are being typed.
-
-28/10/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- For those cases where a terminal provides its own
- high-level terminal editing facilities, you can now
- specify an edit-mode argument of 'none'. This disables
- all tecla key bindings, and by using canonical terminal
- input mode instead of raw input mode, editing is left up
- to the terminal driver.
-
-21/10/2001 mcs@astro.caltech.edu
- libtecla.h getline.c history.c history.h
- man3/gl_get_line.3 man3/gl_history_info.3
- I added the new gl_state_of_history(),
- gl_range_of_history() and gl_size_of_history()
- functions for querying information about the
- history list.
- history.c
- While testing the new gl_size_of_history()
- function, I noticed that when the history buffer
- wrapped, any location nodes of old lines between
- the most recent line and the end of the buffer
- weren't being removed. This could result in bogus
- entries appearing at the start of the history list.
- Now fixed.
-
-20/10/2001 mcs@astro.caltech.edu
-
- libtecla.h getline.c history.c history.h
- man3/gl_get_line.3 man3/gl_lookup_history.3
- I added a function called gl_lookup_history(), that
- the application can use to lookup lines in the history
- list.
- libtecla.h getline.c history.c history.h man3/gl_get_line.3
- gl_show_history() now takes a format string argument
- to control how the line is displayed, and with what
- information. It also now provides the option of either
- displaying all history lines or just those of the
- current history group.
- getline.c man3/gl_get_line.3
- gl_get_line() only archives lines in the history buffer
- if the newline action was invoked by a newline or
- carriage return character.
-
-16/10/2001 mcs@astro.caltech.edu
-
- history.c history.h getline.c libtecla.h libtecla.map
- man3/gl_get_line.3 man3/gl_resize_history.3
- man3/gl_limit_history.3 man3/gl_clear_history.3
- man3/gl_toggle_history.3
- I added a number of miscellaneous history configuration
- functions. You can now resize or delete the history
- buffer, limit the number of lines that are allowed in the
- buffer, clear either all history or just the history of
- the current history group, and temporarily enable and
- disable the history mechanism.
-
-13/10/2001 mcs@astro.caltech.edu
-
- getline.c
- tputs_fp is now only declared if using termcap or
- terminfo.
- getline.c libtecla.map man3/gl_get_line.3
- man3/gl_terminal_size.3
- I added a public gl_terminal_size() function for
- updating and querying the current size of the terminal.
- update_version configure.in libtecla.h
- A user noted that on systems where the configure script
- couldn't be used, it was inconvenient to have the version
- number macros set by the configure script, so they are
- now specified in libtecla.h. To reduce the likelihood
- that the various files where the version number now
- appears might get out of sync, I have written the
- update_version script, which changes the version number
- in all of these files to a given value.
-
-01/10/2001 mcs@astro.caltech.edu
-
- getline.c history.c history.h man3/gl_get_line.3
- I added a max_lines argument to gl_save_history(), to
- allow people to optionally place a ceiling on the number
- of history lines saved. Specifying this as -1 sets the
- ceiling to infinity.
-
-01/10/2001 mcs@astro.caltech.edu
-
- configure.in configure
- Under digital unix, getline wouldn't compile with
- _POSIX_C_SOURCE set, due to type definitions needed by
- select being excluded by this flag. Defining the
- _OSF_SOURCE macro as well on this system, resolved this.
-
-30/09/2001 mcs@astro.caltech.edu
-
- getline.c libtecla.h history.c history.h man3/gl_get_line.3
- man3/gl_group_history.3
- I implemented history streams. History streams
- effectively allow multiple history lists to be stored in
- a single history buffer. Lines in the buffer are tagged
- with the current stream identification number, and
- lookups only consider lines that are marked with the
- current stream identifier.
- getline.c libtecla.h history.c history.h man3/gl_get_line.3
- man3/gl_show_history.3
- The new gl_show_history function displays the current
- history to a given stdio output stream.
-
-29/09/2001 mcs@astro.caltech.edu
-
- getline.c
- Previously new_GetLine() installed a persistent signal
- handler to be sure to catch the SIGWINCH (terminal size
- change) signal between calls to gl_get_line(). This had
- the drawback that if multiple GetLine objects were
- created, only the first GetLine object used after the
- signal was received, would see the signal and adapt to
- the new terminal size. Instead of this, a signal handler
- for sigwinch is only installed while gl_get_line() is
- running, and just after installing this handler,
- gl_get_line() checks for terminal size changes that
- might have occurred while the signal handler wasn't
- installed.
- getline.c
- Dynamically allocated copies of capability strings looked
- up in the terminfo or termcap databases are now made, so
- that calls to setupterm() etc for one GetLine object
- don't get trashed when another GetLine object calls
- setupterm() etc. It is now safe to allocate and use
- multiple GetLine objects, albeit only within a single
- thread.
-
-28/09/2001 mcs@astro.caltech.edu
-
- version.c Makefile.rules
- I added a function for querying the version number of
- the library.
-
-26/09/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3
- I added the new gl_watch_fd() function, which allows
- applications to register callback functions to be invoked
- when activity is seen on arbitrary file descriptors while
- gl_get_line() is awaiting keyboard input from the user.
-
- keytab.c
- If a request is received to delete a non-existent
- binding, which happens to be an ambiguous prefix of other
- bindings no complaint is now generated about it being
- ambiguous.
-
-23/09/2001 mcs@astro.caltech.edu
-
- getline.c history.c history.h man3/gl_get_line.3
- libtecla.map demo.c
- I added new public functions for saving and restoring the
- contents of the history list. The demo program now uses
- these functions to load and save history in ~/.demo_history.
-
-23/09/2001 mcs@astro.caltech.edu
-
- getline.c
- On trying the demo for the first time on a KDE konsole
- terminal, I discovered that the default M-O binding
- to repeat history was hiding the arrow keys, which are
- M-OA etc. I have removed this binding. The M-o (ie the
- lower case version of this), is still bound.
-
-18/09/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3 libtecla.map
- Automatic reading of ~/.teclarc is now postponed until
- the first call to gl_get_line(), to give the application
- the chance to specify alternative configuration sources
- with the new function gl_configure_getline(). The latter
- function allows configuration to be done with a string, a
- specified application-specific file, and/or a specified
- user-specific file. I also added a read-init-files action
- function, for re-reading the configuration files, if any.
- This is by default bound to ^X^R. This is all documented
- in gl_get_line.3.
-
-08/09/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3
- It is now possible to bind actions to key-sequences
- that start with printable characters. Previously
- keysequences were required to start with meta or control
- characters. This is documented in gl_get_line.3.
-
- getline.c man3/gl_get_line.3
- A customized completion function can now arrange for
- gl_get_line() to return the current input line whenever a
- successful completion has been made. This is signalled by
- setting the last character of the optional continuation
- suffix to a newline character. This is documented in
- gl_get_line.3.
-
-05/07/2001 Bug reported by Mike MacFaden, fixed by mcs
-
- configure.in
- There was a bug in the configure script that only
- revealed itself on systems without termcap but not
- terminfo (eg. NetBSD). I traced the bug back to a lack of
- sufficient quoting of multi-line m4 macro arguments in
- configure.in, and have now fixed this and recreated the
- configure script.
-
-05/07/2001 Bug reported and patched by Mike MacFaden (patch modified
- by mcs to match original intentions).
-
- getline.c
- getline.c wouldn't compile when termcap was selected as
- the terminal information database. setupterm() was being
- passed a non-existent variable, in place of the term[]
- argument of gl_control_strings(). Also if
- gl_change_terminal() is called with term==NULL, "ansi"
- is now substituted.
-
-02/07/2001 Version 1.3.3 released.
-
-27/06/2001 mcs@astro.caltech.edu
-
- getline.c expand.c cplmatch.c
- Added checks to fprintf() statements that write to the
- terminal.
- getline.c
- Move the cursor to the end of the line before suspending,
- so that the cursor doesn't get left in the middle of the
- input line.
- Makefile.in
- On systems that don't support shared libraries, the
- distclean target of make deleted libtecla.h. This has
- now been fixed.
- getline.c
- gl_change_terminal() was being called by gl_change_editor(),
- with the unwanted side effect that raw terminal modes were
- stored as those to be restored later, if called by an
- action function. gl_change_terminal() was being called in
- this case to re-establish terminal-specific key bindings,
- so I have just split this part of the function out into
- a separate function for both gl_change_editor() and
- gl_change_terminal() to call.
-
-12/06/2001 mcs@astro.caltech.edu
-
- getline.c
- Signal handling has been improved. Many more signals are
- now trapped, and instead of using a simple flag set by a
- signal handler, race conditions are avoided by blocking
- signals during most of the gl_get_line() code, and
- unblocking them via calls to sigsetjmp(), just before
- attempting to read each new character from the user.
- The matching use of siglongjmp() in the signal
- handlers ensures that signals are reblocked correctly
- before they are handled. In most cases, signals cause
- gl_get_line() to restore the terminal modes and signal
- handlers of the calling application, then resend the
- signal to the application. In the case of SIGINT, SIGHUP,
- SIGPIPE, and SIGQUIT, if the process still exists after
- the signals are resent, gl_get_line() immediately returns
- with appropriate values assigned to errno. If SIGTSTP,
- SIGTTIN or SIGTTOU signals are received, the process is
- suspended. If any other signal is received, and the
- process continues to exist after the signal is resent to
- the calling application, line input is resumed after the
- terminal is put back into raw mode, the gl_get_line()
- signal handling is restored, and the input line redrawn.
- man/gl_get_line(3)
- I added a SIGNAL HANDLING section to the gl_get_line()
- man page, describing the new signal handling features.
-
-21/05/2001 Version 1.3.2 released.
-
-21/05/2001 mcs@astro.caltech.edu
-
- getline.c
- When vi-replace-char was used to replace the character at
- the end of the line, it left the cursor one character to
- its right instead of on top of it. Now rememdied.
- getline.c
- When undoing, to properly emulate vi, the cursor is now
- left at the leftmost of the saved and current cursor
- positions.
- getline.c man3/gl_get_line.3
- Implemented find-parenthesis (%), delete-to-paren (M-d%),
- vi-change-to-paren (M-c%), copy-to-paren (M-y%).
- cplfile.c pcache.c
- In three places I was comparing the last argument of
- strncmp() to zero instead of the return value of
- strncmp().
-
-20/05/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3
- Implemented and documented the vi-repeat-change action,
- bound to the period key. This repeats the last action
- that modified the input line.
-
-19/05/2001 mcs@astro.caltech.edu
-
- man3/gl_get_line.3
- I documented the new action functions and bindings
- provided by Tim Eliseo, plus the ring-bell action and
- the new "nobeep" configuration option.
- getline.c
- I modified gl_change_editor() to remove and reinstate the
- terminal settings as well as the default bindings, since
- these have editor-specific differences. I also modified
- it to not abort if a key-sequence can't be bound for some
- reason. This allows the new vi-mode and emacs-mode
- bindings to be used safely.
- getline.c
- When the line was re-displayed on receipt of a SIGWINCH
- signal, the result wasn't visible until the next
- character was typed, since a call to fflush() was needed.
- gl_redisplay_line() now calls gl_flush_output() to remedy
- this.
-
-17/05/2001 mcs@astro.catlech.edu
-
- getline.c
- Under Linux, calling fflush(gl->output_fd) hangs if
- terminal output has been suspended with ^S. With the
- tecla library taking responsability for reading the stop
- and start characters this was a problem, because once
- hung in fflush(), the keyboard input loop wasn't entered,
- so the user couldn't type the start character to resume
- output. To remedy this, I now have the terminal process
- these characters, rather than the library.
-
-12/05/2001 mcs@astro.caltech.edu
-
- getline.c
- The literal-next action is now implemented as a single
- function which reads the next character itself.
- Previously it just set a flag which effected the
- interpretation of the next character read by the input
- loop.
- getline.c
- Added a ring-bell action function. This is currently
- unbound to any key by default, but it is used internally,
- and can be used by users that want to disable any of the
- default key-bindings.
-
-12/05/2001 Tim Eliseo (logged here by mcs)
-
- getline.c
- Don't reset gl->number until after calling an action
- function. By looking at whether gl->number is <0 or
- not, action functions can then tell whether the count
- that they were passed was explicitly specified by the
- user, as opposed to being defaulted to 1.
- getline.c
- In vi, the position at which input mode is entered
- acts as a barrier to backward motion for the few
- backward moving actions that are enabled in input mode.
- Tim added this barrier to getline.
- getline.c
- In gl_get_line() after reading an input line, or
- having the read aborted by a signal, the sig_atomic_t
- gl_pending_signal was being compared to zero instead
- of -1 to see if no signals had been received.
- gl_get_line() will thus have been calling raise(-1),
- which luckily didn't seem to do anything. Tim also
- arranged for errno to be set to EINTR when a signal
- aborts gl_get_line().
- getline.c
- The test in gl_add_char_to_line() for detecting
- when overwriting a character with a wider character,
- had a < where it needed a >. Overwriting with a wider
- character thus overwrote trailing characters. Tim also
- removed a redundant copy of the character into the
- line buffer.
- getline.c
- gl_cursor_left() and gl->cursor_right() were executing
- a lot of redundant code, when the existing call to the
- recently added gl_place_cursor() function, does all that
- is necessary.
- getline.c
- Remove redundant code from backward_kill_line() by
- re-implimenting in terms of gl_place_cursor() and
- gl_delete_chars().
- getline.c
- gl_forward_delete_char() now records characters in cut
- buffer when in vi command mode.
- getline.c
- In vi mode gl_backward_delete_char() now only deletes
- up to the point at which input mode was entered. Also
- gl_delete_chars() restores from the undo buffer when
- deleting in vi insert mode.
- getline.c
- Added action functions, vi-delete-goto-column,
- vi-change-to-bol, vi-change-line, emacs-mode, vi-mode,
- vi-forward-change-find, vi-backward-change-find,
- vi-forward-change-to, vi-backward-change-to,
- vi-change-goto-col, forward-delete-find, backward-delete-find,
- forward-delete-to, backward-delete-to,
- delete-refind, delete-invert-refind, forward-copy-find,
- backward-copy-find, forward-copy-to, backward-copy-to
- copy-goto-column, copy-rest-of-line, copy-to-bol, copy-line,
- history-re-search-forward, history-re-search-backward.
-
-06/05/2001 Version 1.3.1 released.
-
-03/05/2001 mcs@astro.caltech.edu
-
- configure.in
- Old versions of GNU ld don't accept version scripts.
- Under Linux I thus added a test to try out ld with
- the --version-script argument to see if it works.
- If not, version scripts aren't used.
- configure.in
- My test for versions of Solaris earlier than 7
- failed when confronted by a three figure version
- number (2.5.1). Fixed.
-
-30/04/2001 mcs@astro.caltech.edu
-
- getline.c
- In vi mode, history-search-backward and
- history-search-forward weren't doing anything when
- invoked at the start of an empty line, whereas
- they should have acted like up-history and down-history.
- Makefile.in Makefile.rules
- When shared libraries are being created, the build
- procedure now arranges for any alternate library
- links to be created as well, before linking the
- demos. Without this the demos always linked to the
- static libraries (which was perfectly ok, but wasn't a
- good example).
- Makefile.in Makefile.rules
- On systems on which shared libraries were being created,
- if there were no alternate list of names, make would
- abort due to a Bourne shell 'for' statement that didn't
- have any arguments. Currently there are no systems who's
- shared library configurations would trigger this
- problem.
- Makefile.rules
- The demos now relink to take account of changes to the
- library.
- configure.in configure
- When determining whether the reentrant version of the
- library should be compiled by default, the configure
- script now attempts to compile a dummy program that
- includes all of the appropriate system headers and
- defines _POSIX_C_SOURCE. This should now be a robust test
- on systems which use C macros to alias these function
- names to other internal functions.
- configure.in
- Under Solaris 2.6 and earlier, the curses library is in
- /usr/ccs/lib. Gcc wasn't finding this. In addition to
- remedying this, I had to remove "-z text" from
- LINK_SHARED under Solaris to get it to successfully
- compile the shared library against the static curses
- library.
- configure.in
- Under Linux the -soname directive was being used
- incorrectly, citing the fully qualified name of the
- library instead of its major version alias. This will
- unfortunately mean that binaries linked with the 1.2.3
- and 1.2.4 versions of the shared library won't use
- later versions of the library unless relinked.
-
-30/04/2001 mcs@astro.caltech.edu
-
- getline.c
- In gl_get_input_line(), don't redundantly copy the
- start_line if start_line == gl->line.
-
-30/04/2001 Version 1.3.0 released.
-
-28/04/2001 mcs@astro.caltech.edu
-
- configure.in
- I removed the --no-undefined directive from the Linux
- LINK_SHARED command. After recent patches to our RedHat
- 7.0 systems ld started reporting some internal symbols of
- libc as being undefined. Using nm on libc indicated that
- the offending symbols are indeed defined, albeit as
- "common" symbols, so there appears to be a bug in
- RedHat's ld. Removing this flag allows the tecla shared
- library to compile, and programs appear to function fine.
- man3/gl_get_line.3
- The default key-sequence used to invoke the
- read-from-file action was incorrectly cited as ^Xi
- instead of ^X^F.
-
-26/04/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3
- A new vi-style editing mode was added. This involved
- adding many new action functions, adding support for
- specifying editing modes in users' ~/.teclarc files,
- writing a higher level cursor motion function to support
- the different line-end bounds required in vi command
- mode, and a few small changes to support the fact that vi
- has two modes, input mode and command mode with different
- bindings.
-
- When vi editing mode is enabled, any binding that starts
- with an escape or a meta character, is interpreted as a
- command-mode binding, and switches the library to vi
- command mode if not already in that mode. Once in command
- mode the first character of all keysequences entered
- until input mode is re-enabled, are quietly coerced to
- meta characters before being looked up in the key-binding
- table. So, for example, in the key-binding table, the
- standard vi command-mode 'w' key, which moves the cursor
- one word to the right, is represented by M-w. This
- emulates vi's dual sets of bindings in a natural way
- without needing large changes to the library, or new
- binding syntaxes. Since cursor keys normally emit
- keysequences which start with escape, it also does
- something sensible when a cursor key is pressed during
- input mode (unlike true vi, which gets upset).
-
- I also added a ^Xg binding for the new list-glob action
- to both the emacs and vi key-binding tables. This lists
- the files that match the wild-card expression that
- precedes it on the command line.
-
- The function that reads in ~/.teclarc used to tell
- new_GetLine() to abort if it encountered anything that it
- didn't understand in this file. It now just reports an
- error and continues onto the next line.
- Makefile.in:
- When passing LIBS=$(LIBS) to recursive invokations of
- make, quotes weren't included around the $(LIBS) part.
- This would cause problems if LIBS ever contained more
- than one word (with the supplied configure script this
- doesn't happen currently). I added these quotes.
- expand.c man3/ef_expand_file.3:
- I wrote a new public function called ef_list_expansions(),
- to list the matching filenames returned by
- ef_expand_file().
-
- I also fixed the example in the man page, which cited
- exp->file instead of exp->files, and changed the
- dangerous name 'exp' with 'expn'.
- keytab.c:
- Key-binding tables start with 100 elements, and are
- supposedly incremented in size by 100 elements whenever
- the a table runs out of space. The realloc arguments to
- do this were wrong. This would have caused problems if
- anybody added a lot of personal bindings in their
- ~/.teclarc file. I only noticed it because the number of
- key bindings needed by the new vi mode exceeded this
- number.
- libtecla.map
- ef_expand_file() is now reported as having been added in
- the upcoming 1.3.0 release.
-
-25/03/2001 Markus Gyger (logged here by mcs)
-
- Makefile.in:
- Make symbolic links to alternative shared library names
- relative instead of absolute.
- Makefile.rules:
- The HP-UX libtecla.map.opt file should be made in the
- compilation directory, to allow the source code directory
- to be on a readonly filesystem.
- cplmatch.c demo2.c history.c pcache.c
- To allow the library to be compiled with a C++ compiler,
- without generating warnings, a few casts were added where
- void* return values were being assigned directly to
- none void* pointer variables.
-
-25/03/2001 mcs@astro.caltech.edu
-
- libtecla.map:
- Added comment header to explain the purpose of the file.
- Also added cpl_init_FileArgs to the list of exported
- symbols. This symbol is deprecated, and no longer
- documented, but for backwards compatibility, it should
- still be exported.
- configure:
- I had forgotten to run autoconf before releasing version
- 1.2.4, so I have just belatedly done so. This enables
- Markus' changes to "configure.in" documented previously,
- (see 17/03/2001).
-
-20/03/2001 John Levon (logged here by mcs)
-
- libtecla.h
- A couple of the function prototypes in libtecla.h have
- (FILE *) argument declarations, which means that stdio.h
- needs to be included. The header file should be self
- contained, so libtecla.h now includes stdio.h.
-
-18/03/2001 Version 1.2.4 released.
-
- README html/index.html configure.in
- Incremented minor version from 3 to 4.
-
-18/03/2001 mcs@astro.caltech.edu
-
- getline.c
- The fix for the end-of-line problem that I released a
- couple of weeks ago, only worked for the first line,
- because I was handling this case when the cursor position
- was equal to the last column, rather than when the cursor
- position modulo ncolumn was zero.
- Makefile.in Makefile.rules
- The demos are now made by default, their rules now being
- int Makefile.rules instead of Makefile.in.
- INSTALL
- I documented how to compile the library in a different
- directory than the distribution directory.
- I also documented features designed to facilitate
- configuring and building the library as part of another
- package.
-
-17/03/2001 Markus Gyger (logged here by mcs)
-
- getline.c
- Until now cursor motions were done one at a time. Markus
- has added code to make use the of the terminfo capability
- that moves the cursor by more than one position at a
- time. This greatly improves performance when editing near
- the start of long lines.
- getline.c
- To further improve performance, Markus switched from
- writing one character at a time to the terminal, using
- the write() system call, to using C buffered output
- streams. The output buffer is only flushed when
- necessary.
- Makefile.rules Makefile.in configure.in
- Added support for compiling for different architectures
- in different directories. Simply create another directory
- and run the configure script located in the original
- directory.
- Makefile.in configure.in libtecla.map
- Under Solaris, Linux and HP-UX, symbols that are to be
- exported by tecla shared libraries are explicitly specified
- via symbol map files. Only publicly documented functions
- are thus visible to applications.
- configure.in
- When linking shared libraries under Solaris SPARC,
- registers that are reserved for applications are marked
- as off limits to the library, using -xregs=no%appl when
- compiling with Sun cc, or -mno-app-regs when compiling
- with gcc. Also removed -z redlocsym for Solaris, which
- caused problems under some releases of ld.
- homedir.c (after minor changes by mcs)
- Under ksh, ~+ expands to the current value of the ksh
- PWD environment variable, which contains the path of
- the current working directory, including any symbolic
- links that were traversed to get there. The special
- username "+" is now treated equally by tecla, except
- that it substitutes the return value of getcwd() if PWD
- either isn't set, or if it points at a different
- directory than that reported by getcwd().
-
-08/03/2001 Version 1.2.3 released.
-
-08/03/2001 mcs@astro.caltech.edu
-
- getline.c
- On compiling the library under HP-UX for the first time
- I encountered and fixed a couple of bugs:
-
- 1. On all systems except Solaris, the callback function
- required by tputs() takes an int argument for the
- character that is to be printed. Under Solaris it
- takes a char argument. The callback function was
- passing this argument, regardless of type, to write(),
- which wrote the first byte of the argument. This was
- fine under Solaris and under little-endian systems,
- because the first byte contained the character to be
- written, but on big-endian systems, it always wrote
- the zero byte at the other end of the word. As a
- result, no control characters were being written to
- the terminal.
- 2. While attempting to start a newline after the user hit
- enter, the library was outputting the control sequence
- for moving the cursor down, instead of the newline
- character. On many systems the control sequence for
- moving the cursor down happends to be a newline
- character, but under HP-UX it isn't. The result was
- that no new line was being started under HP-UX.
-
-04/03/2001 mcs@astro.caltech.edu
-
- configure.in Makefile.in Makefile.stub configure config.guess
- config.sub Makefile.rules install-sh PORTING README INSTALL
- Configuration and compilation of the library is now
- performed with the help of an autoconf configure
- script. In addition to relieving the user of the need to
- edit the Makefile, this also allows automatic compilation
- of the reentrant version of the library on platforms that
- can handle it, along with the creation of shared
- libraries where configured. On systems that aren't known
- to the configure script, just the static tecla library is
- compiled. This is currently the case on all systems
- except Linux, Solaris and HP-UX. In the hope that
- installers will provide specific conigurations for other
- systems, the configure.in script is heavily commented,
- and instructions on how to use are included in a new
- PORTING file.
-
-24/02/2001 Version 1.2b released.
-
-22/02/2001 mcs@astro.caltech.edu
-
- getline.c
- It turns out that most terminals, but not all, on writing
- a character in the rightmost column, don't wrap the
- cursor onto the next line until the next character is
- output. This library wasn't aware of this and thus if one
- tried to reposition the cursor from the last column,
- gl_get_line() thought that it was moving relative to a
- point on the next line, and thus moved the cursor up a
- line. The fix was to write one extra character when in
- the last column to force the cursor onto the next line,
- then backup the cursor to the start of the new line.
- getline.c
- On terminal initialization, the dynamic LINES and COLUMNS
- environment variables were ignored unless
- terminfo/termcap didn't return sensible dimensions. In
- practice, when present they should override the static
- versions in the terminfo/termcap databases. This is the
- new behavior. In reality this probably won't have caused
- many problems, because a SIGWINCH signal which informs of
- terminal size changes is sent when the terminal is
- opened, so the dimensions established during
- initialization quickly get updated on most systems.
-
-18/02/2001 Version 1.2a released.
-
-18/02/2001 mcs@astro.caltech.edu
-
- getline.c
- Three months ago I moved the point at which termios.h
- was included in getline.c. Unfortunately, I didn't notice
- that this moved it to after the test for TIOCGWINSZ being
- defined. This resulted in SIGWINCH signals not being
- trapped for, and thus terminal size changes went
- unnoticed. I have now moved the test to after the
- inclusion of termios.h.
-
-12/02/2001 Markus Gyger (described here by mcs)
-
- man3/pca_lookup_file.3 man3/gl_get_line.3
- man3/ef_expand_file.3 man3/cpl_complete_word.3
- In the 1.2 release of the library, all functions in the
- library were given man pages. Most of these simply
- include one of the above 4 man pages, which describe the
- functions while describing the modules that they are in.
- Markus added all of these function names to the lists in
- the "NAME" headers of the respective man pages.
- Previously only the primary function of each module was
- named there.
-
-11/02/2001 mcs@astro.caltech.edu
-
- getline.c
- On entering a line that wrapped over two or more
- terminal, if the user pressed enter when the cursor
- wasn't on the last of the wrapped lines, the text of the
- wrapped lines that followed it got mixed up with the next
- line written by the application, or the next input
- line. Somehow this slipped through the cracks and wasn't
- noticed until now. Anyway, it is fixed now.
-
-09/02/2001 Version 1.2 released.
-
-04/02/2001 mcs@astro.caltech.edu
-
- pcache.c libtecla.h
- With all filesystems local, demo2 was very fast to start
- up, but on a Sun system with one of the target
- directories being on a remote nfs mounted filesystem, the
- startup time was many seconds. This was due to the
- executable selection callback being applied to all files
- in the path at startup. To avoid this, all files are now
- included in the cache, and the application specified
- file-selection callback is only called on files as they
- are matched. Whether the callback rejected or accepted
- them is then cached so that the next time an already
- checked file is looked at, the callback doesn't have to
- be called. As a result, startup is now fast on all
- systems, and since usually there are only a few matching
- file completions at a time, the delay during completion
- is also usually small. The only exception is if the user
- tries to complete an empty string, at which point all
- files have to be checked. Having done this once, however,
- doing it again is fast.
- man3/pca_lookup_file.3
- I added a man page documenting the new PathCache module.
- man3/<many-new-files>.3
- I have added man pages for all of the functions in each
- of the modules. These 1-line pages use the .so directive
- to redirect nroff to the man page of the parent module.
- man Makefile update_html
- I renamed man to man3 to make it easier to test man page
- rediction, and updated Makefile and update_html
- accordingly. I also instructed update_html to ignore
- 1-line man pages when making html equivalents of the man
- pages.
- cplmatch.c
- In cpl_list_completions() the size_t return value of
- strlen() was being used as the length argument of a "%*s"
- printf directive. This ought to be an int, so the return
- value of strlen() is now cast to int. This would have
- caused problems on architectures where the size of a
- size_t is not equal to the size of an int.
-
-02/02/2001 mcs@astro.caltech.edu
-
- getline.c
- Under UNIX, certain terminal bindings are set using the
- stty command. This, for example, specifies which control
- key generates a user-interrupt (usually ^C or ^Y). What I
- hadn't realized was that ASCII NUL is used as the way to
- specify that one of these bindings is unset. I have now
- modified the code to skip unset bindings, leaving the
- corresponding action bound to the built-in default, or a
- user provided binding.
-
-28/01/2001 mcs@astro.caltech.edu
-
- pcache.c libtecla.h
- A new module was added which supports searching for files
- in any colon separated list of directories, such as the
- unix execution PATH environment variable. Files in these
- directories, after being individually okayed for
- inclusion via an application provided callback, are
- cached in a PathCache object. You can then look up the
- full pathname of a given filename, or you can use the
- provided completion callback to list possible completions
- in the path-list. The contents of relative directories,
- such as ".", obviously can't be cached, so these
- directories are read on the fly during lookups and
- completions. The obvious application of this facility is
- to provide Tab-completion of commands, and thus a
- callback to place executable files in the cache, is
- provided.
- demo2.c
- This new program demonstrates the new PathCache
- module. It reads and processes lines of input until the
- word 'exit' is entered, or C-d is pressed. The default
- tab-completion callback is replaced with one which at the
- start of a line, looks up completions of commands in the
- user's execution path, and when invoked in other parts of
- the line, reverts to normal filename completion. Whenever
- a new line is entered, it extracts the first word on the
- line, looks it up in the user's execution path to see if
- it corresponds to a known command file, and if so,
- displays the full pathname of the file, along with the
- remaining arguments.
- cplfile.c
- I added an optional pair of callback function/data
- members to the new cpl_file_completions() configuration
- structure. Where provided, this callback is asked
- on a file-by-file basis, which files should be included
- in the list of file completions. For example, a callback
- is provided for listing only completions of executable
- files.
- cplmatch.c
- When listing completions, the length of the type suffix
- of each completion wasn't being taken into account
- correctly when computing the column widths. Thus the
- listing appeared ragged sometimes. This is now fixed.
- pathutil.c
- I added a function for prepending a string to a path,
- and another for testing whether a pathname referred to
- an executable file.
-
-28/01/2001 mcs@astro.caltech.edu
-
- libtecla.h cplmatch.c man/cpl_complete_word.3
- The use of a publically defined structure to configure
- the cpl_file_completions() callback was flawed, so a new
- approach has been designed, and the old method, albeit
- still supported, is no longer documented in the man
- pages. The definition of the CplFileArgs structure in
- libtecla.h is now accompanied by comments warning people
- not to modify it, since modifications could break
- applications linked to shared versions of the tecla
- library. The new method involves an opaque CplFileConf
- object, instances of which are returned by a provided
- constructor function, configured with provided accessor
- functions, and when no longer needed, deleted with a
- provided destructor function. This is documented in the
- cpl_complete_word man page. The cpl_file_completions()
- callback distinguishes what type of configuration
- structure it has been sent by virtue of a code placed at
- the beginning of the CplFileConf argument by its
- constructor.
-
-04/01/2001 mcs@astro.caltech.edu (Release of version 1.1j)
-
- getline.c
- I added upper-case bindings for the default meta-letter
- keysequences such as M-b. They thus continue to work
- when the user has caps-lock on.
- Makefile
- I re-implemented the "install" target in terms of new
- install_lib, install_inc and install_man targets. When
- distributing the library with other packages, these new
- targets allows for finer grained control of the
- installation process.
-
-30/12/2000 mcs@astro.caltech.edu
-
- getline.c man/gl_get_line.3
- I realized that the recall-history action that I
- implemented wasn't what Markus had asked me for. What he
- actually wanted was for down-history to continue going
- forwards through a previous history recall session if no
- history recall session had been started while entering
- the current line. I have thus removed the recall-history
- action and modified the down-history action function
- accordingly.
-
-24/12/2000 mcs@astro.caltech.edu
-
- getline.c
- I modified gl_get_line() to allow the previously returned
- line to be passed in the start_line argument.
- getline.c man/gl_get_line.3
- I added a recall-history action function, bound to M^P.
- This recalls the last recalled history line, regardless
- of whether it was from the current or previous line.
-
-13/12/2000 mcs@astro.caltech.edu (Release of version 1.1i)
-
- getline.c history.h history.c man/gl_get_line.3
- I implemented the equivalent of the ksh Operate action. I
- have named the tecla equivalent "repeat-history". This
- causes the line that is to be edited to returned, and
- arranges for the next most recent history line to be
- preloaded on the next call to gl_get_line(). Repeated
- invocations of this action thus result in successive
- history lines being repeated - hence the
- name. Implementing the ksh Operate action was suggested
- by Markus Gyger. In ksh it is bound to ^O, but since ^O
- is traditionally bound by the default terminal settings,
- to stop-output, I have bound the tecla equivalent to M-o.
-
-01/12/2000 mcs@astro.caltech.edu (Release of version 1.1h)
-
- getline.c keytab.c keytab.h man/gl_get_line.3
- I added a digit-argument action, to allow repeat
- counts for actions to be entered. As in both tcsh
- and readline, this is bound by default to each of
- M-0, M-1 through to M-9, the number being appended
- to the current repeat count. Once one of these has been
- pressed, the subsequent digits of the repeat count can be
- typed with or without the meta key pressed. It is also
- possible to bind digit-argument to other keys, with or
- without a numeric final keystroke. See man page for
- details.
-
- getline.c man/gl_get_line.3
- Markus noted that my choice of M-< for the default
- binding of read-from-file, could be confusing, since
- readline binds this to beginning-of-history. I have
- thus rebound it to ^X^F (ie. like find-file in emacs).
-
- getline.c history.c history.h man/gl_get_line.3
- I have now implemented equivalents of the readline
- beginning-of-history and end-of-history actions.
- These are bound to M-< and M-> respectively.
-
- history.c history.h
- I Moved the definition of the GlHistory type, and
- its subordinate types from history.h to history.c.
- There is no good reason for any other module to
- have access to the innards of this structure.
-
-27/11/2000 mcs@astro.caltech.edu (Release of version 1.1g)
-
- getline.c man/gl_get_line.3
- I added a "read-from-file" action function and bound it
- by default to M-<. This causes gl_get_line() to
- temporarily return input from the file who's name
- precedes the cursor.
-
-26/11/2000 mcs@astro.caltech.edu
-
- getline.c keytab.c keytab.h man/gl_get_line.3
- I have reworked some of the keybinding code again.
-
- Now, within key binding strings, in addition to the
- previously existing notation, you can now use M-a to
- denote meta-a, and C-a to denote control-a. For example,
- a key binding which triggers when the user presses the
- meta key, the control key and the letter [
- simultaneously, can now be denoted by M-C-[, or M-^[ or
- \EC-[ or \E^[.
-
- I also updated the man page to use M- instead of \E in
- the list of default bindings, since this looks cleaner.
-
- getline.c man/gl_get_line.3
- I added a copy-region-as-kill action function and
- gave it a default binding to M-w.
-
-22/11/2000 mcs@astro.caltech.edu
-
- *.c
- Markus Gyger sent me a copy of a previous version of
- the library, with const qualifiers added in appropriate
- places. I have done the same for the latest version.
- Among other things, this gets rid of the warnings
- that are generated if one tells the compiler to
- const qualify literal strings.
-
- getline.c getline.h glconf.c
- I have moved the contents of glconf.c and the declaration
- of the GetLine structure into getline.c. This is cleaner,
- since now only functions in getline.c can mess with the
- innards of GetLine objects. It also clears up some problems
- with system header inclusion order under Solaris, and also
- the possibility that this might result in inconsistent
- system macro definitions, which in turn could cause different
- declarations of the structure to be seen in different files.
-
- hash.c
- I wrote a wrapper function to go around strcmp(), such that
- when hash.c is compiled with a C++ compiler, the pointer
- to the wrapper function is a C++ function pointer.
- This makes it compatible with comparison function pointer
- recorded in the hash table.
-
- cplmatch.c getline.c libtecla.h
- Markus noted that the Sun C++ compiler wasn't able to
- match up the declaration of cpl_complete_word() in
- libtecla.h, where it is surrounded by a extern "C" {}
- wrapper, with the definition of this function in
- cplmatch.c. My suspicion is that the compiler looks not
- only at the function name, but also at the function
- arguments to see if two functions match, and that the
- match_fn() argument, being a fully blown function pointer
- declaration, got interpetted as that of a C function in
- one case, and a C++ function in the other, thus
- preventing a match.
-
- To fix this I now define a CplMatchFn typedef in libtecla.h,
- and use this to declare the match_fn callback.
-
-20/11/2000 (Changes suggested by Markus Gyger to support C++ compilers):
- expand.c
- Renamed a variable called "explicit" to "xplicit", to
- avoid conflicts when compiling with C++ compilers.
- *.c
- Added explicit casts when converting from (void *) to
- other pointer types. This isn't needed in C but it is
- in C++.
- getline.c
- tputs() has a strange declaration under Solaris. I was
- enabling this declaration when the SPARC feature-test
- macro was set. Markus changed the test to hinge on the
- __sun and __SVR4 macros.
- direader.c glconf.c stringrp.c
- I had omitted to include string.h in these two files.
-
- Markus also suggested some other changes, which are still
- under discussion. With the just above changes however, the
- library compiles without complaint using g++.
-
-19/11/2000 mcs@astro.caltech.edu
- getline.h getline.c keytab.c keytab.h glconf.c
- man/gl_get_line.3
- I added support for backslash escapes (include \e
- for the keyboard escape key) and literal binary
- characters to the characters allowed within key sequences
- of key bindings.
-
- getline.h getline.c keytab.c keytab.h glconf.c
- man/gl_get_line.3
- I introduced symbolic names for the arrow keys, and
- modified the library to use the cursor key sequences
- reported by terminfo/termcap in addition to the default
- ANSI ones. Anything bound to the symbolically named arrow
- keys also gets bound to the default and terminfo/termcap
- cursor key sequences. Note that under Solaris
- terminfo/termcap report the properties of hardware X
- terminals when TERM is xterm instead of the terminal
- emulator properties, and the cursor keys on these two
- systems generate different key sequences. This is an
- example of why extra default sequences are needed.
-
- getline.h getline.c keytab.c
- For some reason I was using \e to represent the escape
- character. This is supported by gcc, which thus doesn't
- emit a warning except with the -pedantic flag, but isn't
- part of standard C. I now use a macro to define escape
- as \033 in getline.h, and this is now used wherever the
- escape character is needed.
-
-17/11/2000 mcs@astro.caltech.edu (Release of version 1.1d)
-
- getline.c, man/gl_get_line(3), html/gl_get_line.html
- In tcsh ^D is bound to a function which does different
- things depending on where the cursor is within the input
- line. I have implemented its equivalent in the tecla
- library. When invoked at the end of the line this action
- function displays possible completions. When invoked on
- an empty line it causes gl_get_line() to return NULL,
- thus signalling end of input. When invoked within a line
- it invokes forward-delete-char, as before. The new action
- function is called del-char-or-list-or-eof.
-
- getline.c, man/gl_get_line(3), html/gl_get_line.html
- I found that the complete-word and expand-file actions
- had underscores in their names instead of hyphens. This
- made them different from all other action functions, so I
- have changed the underscores to hyphens.
-
- homedir.c
- On SCO UnixWare while getpwuid_r() is available, the
- associated _SC_GETPW_R_SIZE_MAX macro used by sysconf()
- to find out how big to make the buffer to pass to this
- function to cater for any password entry, doesn't
- exist. I also hadn't catered for the case where sysconf()
- reports that this limit is indeterminate. I have thus
- change the code to substitute a default limit of 1024 if
- either the above macro isn't defined or if sysconf() says
- that the associated limit is indeterminate.
-
-17/11/2000 mcs@astro.caltech.edu (Release of version 1.1c)
-
- getline.c, getline.h, history.c, history.h
- I have modified the way that the history recall functions
- operate, to make them better emulate the behavior of
- tcsh. Previously the history search bindings always
- searched for the prefix that preceded the cursor, then
- left the cursor at the same point in the line, so that a
- following search would search using the same prefix. This
- isn't how tcsh operates. On finding a matching line, tcsh
- puts the cursor at the end of the line, but arranges for
- the followup search to continue with the same prefix,
- unless the user does any cursor motion or character
- insertion operations in between, in which case it changes
- the search prefix to the new set of characters that are
- before the cursor. There are other complications as well,
- which I have attempted to emulate. As far as I can
- tell, the tecla history recall facilities now fully
- emulate those of tcsh.
-
-16/11/2000 mcs@astro.caltech.edu (Release of version 1.1b)
-
- demo.c:
- One can now quit from the demo by typing exit.
-
- keytab.c:
- The first entry of the table was getting deleted
- by _kt_clear_bindings() regardless of the source
- of the binding. This deleted the up-arrow binding.
- Symptoms noted by gazelle@yin.interaccess.com.
-
- getline.h:
- Depending on which system include files were include
- before the inclusion of getline.h, SIGWINCH and
- TIOCGWINSZ might or might not be defined. This resulted
- in different definitions of the GetLine object in
- different files, and thus some very strange bugs! I have
- now added #includes for the necessary system header files
- in getline.h itself. The symptom was that on creating a
- ~/.teclarc file, the demo program complained of a NULL
- argument to kt_set_keybinding() for the first line of the
- file.
-
-15/11/2000 mcs@astro.caltech.edu (Release of version 1.1a)
-
- demo.c:
- I had neglected to check the return value of
- new_GetLine() in the demo program. Oops.
-
- getline.c libtecla.h:
- I wrote gl_change_terminal(). This allows one to change to
- a different terminal or I/O stream, by specifying the
- stdio streams to use for input and output, along with the
- type of terminal that they are connected to.
-
- getline.c libtecla.h:
- Renamed GetLine::isterm to GetLine::is_term. Standard
- C reserves names that start with "is" followed by
- alphanumeric characters, so this avoids potential
- clashes in the future.
-
- keytab.c keytab.h
- Each key-sequence can now have different binding
- functions from different sources, with the user provided
- binding having the highest precedence, followed by the
- default binding, followed by any terminal specific
- binding. This allows gl_change_terminal() to redefine the
- terminal-specific bindings each time that
- gl_change_terminal() is called, without overwriting the
- user specified or default bindings. In the future, it will
- also allow for reconfiguration of user specified
- bindings after the call to new_GetLine(). Ie. deleting a
- user specified binding should reinstate any default or
- terminal specific binding.
-
- man/cpl_complete_word.3 html/cpl_complete_word.html
- man/ef_expand_file.3 html/ef_expand_file.html
- man/gl_get_line.3 html/gl_get_line.html
- I added sections on thread safety to the man pages of the
- individual modules.
-
- man/gl_get_line.3 html/gl_get_line.html
- I documented the new gl_change_terminal() function.
-
- man/gl_get_line.3 html/gl_get_line.html
- In the description of the ~/.teclarc configuration file,
- I had omitted the 'bind' command word in the example
- entry. I have now remedied this.
diff --git a/libtecla-1.4.1/INSTALL b/libtecla-1.4.1/INSTALL
deleted file mode 100644
index 1a1b036..0000000
--- a/libtecla-1.4.1/INSTALL
+++ /dev/null
@@ -1,168 +0,0 @@
-To compile and optionally install the library, it is first necessary
-to create a makefile for your system, by typing:
-
- ./configure
-
-The Makefile that this generates is designed to install the files of
-the library in subdirectories of /usr/local/. If you would prefer to
-install them under a different directory, you can type:
-
- ./configure --prefix /wherever
-
-Where you would replace /wherever with your chosen directory. Other
-command-line options are available, and can be listed by typing:
-
- ./configure --help
-
-Having run the configure script, you are then ready to make the
-library. To do this, just type:
-
- make
-
-What 'make' does depends on whether the configure script knows about
-your system. If the configure script doesn't know anything specific
-about your system, it will arrange for 'make' to produce the static
-tecla library, called libtecla.a, and if possible, the reentrant
-version of this called libtecla_r.a. If it does know about your
-system, it will also create shared libraries if possible. If you are
-on a system that isn't known, and you would like shared libraries to
-be compiled, please read the file called PORTING to see how this can
-be achieved.
-
-To install the library, its include file and it manual pages, type:
-
- make install
-
-Note that this will also compile the library if you haven't already
-done so.
-
-Having compiled the library, if you wish, you can test it by running
-the demo programs. After building the library, you should find two
-programs, called demo and demo2, in the current directory.
-
-The first of the demos programs reads input lines from the user, and
-writes what was typed back to the screen. While typing a line of
-input, you can experiment with line editing, tab completion, history
-recall etc.. For details about these line editing features, see the
-man page gl_get_line(3). If you haven't installed this yet, you can
-see it anyway by typing:
-
- nroff -man man3/gl_get_line.3 | more
-
-The second demo program, called demo2, demonstrates command-completion
-with the UNIX PATH. If you type in a partial command name, and press
-TAB, the command name will be completed if possible, and possible
-completions will be listed if it is ambiguous. When you then enter the
-line, the demo program then prints out the full pathname of the
-command that you typed. If you type anything after the command name,
-filename completion with the tab key reverts to its default behavior
-of completing filenames in the current directory.
-
-COMPILING IN A DIFFERENT DIRECTORY
-----------------------------------
-If you unpack the distribution in a directory which is visible from
-multiple hosts which have different architectures, you have the option
-of compiling the library for the different architectures in different
-directories. You might for example create a sub-directory for each
-architecture, under the top level directory of the distribution. You
-would then log in to a host of one of these architectures, cd to the
-sub-directory that you created for it, and type:
-
- ../configure
-
-The configure script then creates a makefile in the current directory
-which is designed to build the library, object files, demos etc for
-the architecture of the current host, in the current directory, using
-the original source code in ../. You then repeat this procedure on
-hosts of other architectures.
-
-The compilation directories don't have to be sub-directories of the
-top level directory of the distribution. That was just described as an
-example. They can be anywhere you like.
-
-Every rule in the makefiles that are generated by the configure
-script, cites the paths of the target and source files explicitly, so
-this procedure should work on any system, without the need for vpath
-makefile support.
-
-EMBEDDING IN OTHER PACKAGE DISTRIBUTIONS
-----------------------------------------
-
-If you distribute the library with another package, which has its own
-heirarchy and configuration procedures, the following installation
-options may be of interest to you. At first glance, the use of a GNU
-configure script by the tecla library, may appear to reduce your
-options for controlling what gets made, and where it gets installed,
-but this isn't the case, because many of the parameters configured by
-the configure script are assigned to make variables which can be
-overriden when you run make.
-
-For example, lets say that you have your own configuration script in
-the parent directory of the libtecla top-level directory. In your
-configuration script, you would first need to have the following line:
-
- (cd libtecla; ./configure)
-
-Now, from your makefile or whatever script you use to build your
-application, you would need to make the library. Assuming that your
-makefile or build script is in the parent directory of the libtecla
-distribution, the following line tells make to just make the
-non-reentrant, static version of the tecla library, and to install it
-and the tecla include file in sub-directories called lib and include
-in your current directory.
-
- (cd libtecla; make LIBDIR=../lib INCDIR=../include TARGETS=normal TARGET_LIBS="static" install_lib install_inc)
-
-First, the LIBDIR=../lib means that on installing the library, it
-should be placed in the directory libtecla/../lib. Similarly INCDIR
-tells make where to place the include files. The install_lib and
-install_inc targets tell make to install the libraries and the include
-file. Because the install_man and install_bin targets have been
-omitted in this example, the man pages and programs aren't installed.
-If you were to include these additional targets then you could use the
-MANDIR and BINDIR variables, respectively to control where they were
-installed.
-
-The TARGETS variable is used to specify which of the normal and
-reentrant versions of the library are compiled. This can contain one
-or both of the words "normal" and "reentrant". If you don't specify
-this when you invoke make, the default value generated by the
-configure script will be used. Depending on whether reentrant POSIX
-functions are available for compilation of the reentrant version, this
-will be either "normal" or "normal reentrant".
-
-The TARGET_LIBS variable is used to specify which of the static and
-shared libraries are to be built. This can contain one or both of the
-words "static" and "shared". If you don't specify this when you invoke
-make, the default value generated by the configure script will be
-used. Depending on whether the configure script knows how to create
-shared libraries on the target system, this will be either "static" or
-"static shared". Beware that shared libraries aren't supported on many
-systems, so requiring "shared" will limit which systems you can
-compile your package on. Also note that unless your package installs
-the tecla library in a directory which all users of your program will
-have access to, you should only compile the static version.
-Instructions for adding shared-library creation rules for new systems
-are included in the PORTING file.
-
-The OPT variable can be used to change the default optimization from
-the default of "-O" to something else.
-
-The DEMOS variable controls whether the demo programs are built.
-Normally this has the value "demos", which tells the makefile to build
-the demo programs. Setting it to an empty string stops the demos from
-being built.
-
-The PROGRAMS variable is used to specify which programs are to be
-built and subsequently installed. All available programs are built by
-default. Currently there is only one such program, selected by
-specifying the word "enhance". This program uses tecla-enhanced
-pseudo-terminals to layer command line editing on top of third party
-programs.
-
-The PROGRAMS_R variable serves the same purpose as the PROGRAMS
-variable, except that programs listed here are linked with the
-reentrant version of the library, and should be specified with a _r
-suffix. Currently this variable is empty by default.
-
-Martin Shepherd (mcs@astro.caltech.edu)
diff --git a/libtecla-1.4.1/LICENSE.TERMS b/libtecla-1.4.1/LICENSE.TERMS
deleted file mode 100644
index 275eef5..0000000
--- a/libtecla-1.4.1/LICENSE.TERMS
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2000, 2001 by Martin C. Shepherd.
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
diff --git a/libtecla-1.4.1/Makefile b/libtecla-1.4.1/Makefile
deleted file mode 100644
index 15116b5..0000000
--- a/libtecla-1.4.1/Makefile
+++ /dev/null
@@ -1,3 +0,0 @@
-default:
- ./configure
- make
diff --git a/libtecla-1.4.1/Makefile.in b/libtecla-1.4.1/Makefile.in
deleted file mode 100644
index f691375..0000000
--- a/libtecla-1.4.1/Makefile.in
+++ /dev/null
@@ -1,225 +0,0 @@
-#-----------------------------------------------------------------------
-# This is the template that the libtecla configure script uses to create
-# the libtecla Makefile. It does this by replacing all instances of
-# @name@ with the value of the correspondingly named configuration
-# variable. You should find another file in the same directory as this
-# one, called "configure.in". The latter file contains extensive comments
-# explaining how this all works.
-#-----------------------------------------------------------------------
-
-# Where is the source code?
-
-srcdir = @srcdir@
-
-# Where do you want to install the library, its header file, and the man pages?
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-LIBDIR=@libdir@
-INCDIR=@includedir@
-MANDIR=@mandir@
-BINDIR=@bindir@
-
-# Which C compiler do you want to use?
-
-CC = @CC@
-
-# If 'make' doesn't define the MAKE variable, define it here.
-
-@SET_MAKE@
-
-# To use RANLIB set the RANLIB variable to ranlib. Otherwise set it to
-# :, which is the bourne shell do-nothing command.
-
-RANLIB = @RANLIB@
-
-# The following optional defines change the characteristics of the library.
-#
-# USE_TERMINFO
-# Use the terminfo terminal information database when looking up
-# terminal characteristics. Most modern UNIX and UNIX-like operating
-# systems support terminfo, so this define should normally be included.
-# If in doubt leave it in, and see if the library compiles.
-# USE_TERMCAP
-# If you don't have terminfo but do have the termcap database, replace
-# the -DUSE_TERMINFO with -DUSE_TERMCAP. If there is a termcap.h in
-# /usr/include/, also add -DHAVE_TERMCAP_H.
-#
-# If neither USE_TERMINFO nor USE_TERMCAP are included, ANSI VT100 control
-# sequences will be used to control all terminal types.
-#
-# For Solaris and Linux, use:
-#
-# DEFINES = -DUSE_TERMINFO
-#
-
-DEFINES = @DEFS@
-
-#
-# The following defines are used in addition to the above when compiling
-# the reentrant version of the library. Note that the definition of
-# _POSIX_C_SOURCE to request reentrant functions, has the unfortunate
-# side-effect on some systems of stopping the TIOCGWINSZ ioctl macro from
-# getting defined. This in turn stops the library from being
-# able to respond to terminal size changes. Under Solaris this can be
-# remedied by adding -D__EXTENSIONS__. On linux this isn't necessary.
-# If you don't get this right, the library will still work, but
-# it will get confused if the terminal size gets changed and you try to
-# edit a line that exceeds the terminal width.
-#
-# Thus on Solaris you should use:
-#
-# DEFINES_R = -D_POSIX_C_SOURCE=199506L -D__EXTENSIONS__
-#
-# and on linux you should use:
-#
-# DEFINES_R = -D_POSIX_C_SOURCE=199506L
-#
-
-DEFINES_R = -D_POSIX_C_SOURCE=199506L
-
-#
-# The compiler optimization flags. I like to keep this separate so
-# that I can set it to -g from the 'make' command line without having
-# to edit this file when debugging the library. If you aren't working
-# on modifying the library, leave this set to -O.
-#
-
-OPT = -O
-
-#
-# These are paranoid gcc warning flags to use when compiling new code.
-# Simply invoke make with WARNING_FLAGS='$(PEDANTIC_FLAGS)'.
-#
-PEDANTIC_FLAGS=-Wall -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
-
-#
-# Specify any extra compiler warning options that you want to use.
-# Leave this blank unless you are porting the library to a new system,
-# or modifying the library.
-#
-
-WARNING_FLAGS=
-
-#
-# If you want to compile the demo program, specify any system
-# libraries that are needed for the terminal I/O functions.
-#
-# If you are using terminfo, you will probably only need -lcurses.
-# For termcap you may need -ltermcap or -ltermlib.
-#
-# For Solaris, use:
-#
-# LIBS = -lcurses
-#
-# For linux, use:
-#
-# LIBS = -lncurses
-#
-
-LIBS = @LIBS@
-
-#
-# List the default target libraries. This should be one or
-# both of the words "normal" and "reentrant".
-#
-TARGETS = @TARGETS@
-
-#
-# List which types of the above libraries are required.
-# This should be one or both of the words "static" and "shared".
-#
-TARGET_LIBS = @TARGET_LIBS@
-
-#
-# If you want the demo programs to be built, the following variable
-# should be assigned the single word: demos. If it isn't assigned
-# anything, the demo programs won't be built.
-#
-DEMOS = demos
-
-#
-# List the programs that are to be made by default.
-#
-PROGRAMS = enhance
-
-#
-# List programs for which reentrant versions are to be built by default.
-#
-PROGRAMS_R =
-
-#-----------------------------------------------------------------------
-# You shouldn't need to change anything below this line.
-#-----------------------------------------------------------------------
-
-CFLAGS = $(OPT) $(WARNING_FLAGS) $(DEFINES) @CFLAGS@ @SHARED_CFLAGS@
-
-default: $(TARGETS)
-
-normal:
- @$(MAKE) -f $(srcdir)/Makefile.rules TARGETS="$(TARGET_LIBS)" SUFFIX="" CFLAGS="$(CFLAGS)" CC="$(CC)" OBJDIR=normal_obj LINK_SHARED='@LINK_SHARED@' SHARED_EXT='@SHARED_EXT@' SHARED_ALT='@SHARED_ALT@' LIBS='$(LIBS)' srcdir='$(srcdir)' LIBDIR='$(LIBDIR)' LN_S='@LN_S@' DEMOS="$(DEMOS)" PROGRAMS='$(PROGRAMS)' RANLIB='$(RANLIB)'
-
-reentrant:
- @$(MAKE) -f $(srcdir)/Makefile.rules TARGETS="$(TARGET_LIBS)" SUFFIX="_r" CFLAGS="$(CFLAGS) $(DEFINES_R)" CC="$(CC)" OBJDIR=reentrant_obj LINK_SHARED='@LINK_SHARED@' SHARED_EXT='@SHARED_EXT@' SHARED_ALT='@SHARED_ALT@' LIBS='$(LIBS)' srcdir='$(srcdir)' LIBDIR='$(LIBDIR)' LN_S='@LN_S@' DEMOS="$(DEMOS)" PROGRAMS='$(PROGRAMS_R)' RANLIB='$(RANLIB)'
-
-demos: normal
-
-demos_r: reentrant
-
-clean:
- rm -rf *.o normal_obj reentrant_obj libtecla*.a demo demo2 demo_r demo2_r enhance *~ man3/*~ html/*~ compile_reentrant compile_normal
- @endings="@SHARED_EXT@ @SHARED_ALT@" ; \
- for alt in $$endings ; do \
- lib="libtecla*$$alt" ; \
- rm -f $$lib; echo rm -f $$lib ; \
- done
-
-distclean: clean
- rm -f config.cache config.status config.log Makefile libtecla.map.opt
- cp $(srcdir)/Makefile.stub Makefile
-
-install_lib: $(TARGETS) $(LIBDIR)
- @for lib in libtecla.a libtecla_r.a ; do \
- if [ -f $$lib ] ; then \
- cp $$lib $(LIBDIR)/ ; chmod ugo+r $(LIBDIR)/$$lib; \
- echo "cp $$lib $(LIBDIR)/ ; chmod ugo+r $(LIBDIR)/$$lib"; \
- fi ; \
- done
- @for lib in libtecla libtecla_r ; do \
- src="$$lib@SHARED_EXT@"; \
- if [ -f $$src ] ; then \
- dst="$(LIBDIR)/$$src"; \
- cp -f $$src $$dst; chmod a=rX $$dst; \
- echo "cp -f $$src $$dst ; chmod a=rX $$dst"; \
- endings="@SHARED_ALT@" ; \
- for alt in $$endings ; do \
- lnk="$$lib$$alt"; \
- (cd $(LIBDIR); rm -f $$lnk; @LN_S@ $$src $$lnk); \
- echo "(cd $(LIBDIR); rm -f $$lnk; @LN_S@ $$src $$lnk)"; \
- done ; \
- fi ; \
- done
-
-install_inc: $(INCDIR)
- @if [ -f $(srcdir)/libtecla.h ]; then \
- cp $(srcdir)/libtecla.h $(INCDIR)/ ; chmod ugo+r $(INCDIR)/libtecla.h; \
- echo "cp $(srcdir)/libtecla.h $(INCDIR)/ ; chmod ugo+r $(INCDIR)/libtecla.h"; \
- fi
-
-install_man: $(MANDIR) $(MANDIR)/man3
- cd $(srcdir)/man3 && for page in *.3; do cp $$page $(MANDIR)/man3; chmod ugo+r $(MANDIR)/man3/$$page; done
-
-install_bin: $(BINDIR) $(PROGRAMS) $(PROGRAMS_R)
- progs="$(PROGRAMS) $(PROGRAMS_R)"; \
- for prog in $$progs; do \
- cp $$prog $(BINDIR)/; \
- chmod ugo+rx $(BINDIR)/$$prog; \
- done
-
-install: install_lib install_inc install_man install_bin
-
-# Make any missing installation directories.
-
-$(MANDIR) $(MANDIR)/man3 $(LIBDIR) $(INCDIR) $(BINDIR):
- $(srcdir)/install-sh -d $@
- chmod ugo+rx $@
diff --git a/libtecla-1.4.1/Makefile.rules b/libtecla-1.4.1/Makefile.rules
deleted file mode 100644
index 6552057..0000000
--- a/libtecla-1.4.1/Makefile.rules
+++ /dev/null
@@ -1,142 +0,0 @@
-default: $(OBJDIR) $(TARGETS) $(DEMOS) $(PROGRAMS)
-
-#-----------------------------------------------------------------------
-# You shouldn't need to change anything in this file.
-#-----------------------------------------------------------------------
-
-# Create the directory in which the object files will be created.
-
-$(OBJDIR):
- mkdir $(OBJDIR)
-
-# Construct the compilation command.
-
-COMPILE = $(CC) -c $(CFLAGS) -o $@
-
-LIB_OBJECTS = $(OBJDIR)/getline.o $(OBJDIR)/keytab.o $(OBJDIR)/freelist.o \
- $(OBJDIR)/strngmem.o $(OBJDIR)/hash.o $(OBJDIR)/history.o \
- $(OBJDIR)/direader.o $(OBJDIR)/homedir.o $(OBJDIR)/pathutil.o \
- $(OBJDIR)/expand.o $(OBJDIR)/stringrp.o $(OBJDIR)/cplfile.o \
- $(OBJDIR)/cplmatch.o $(OBJDIR)/pcache.o $(OBJDIR)/version.o
-
-# List all of the programs that this makefile can build.
-
-PROGS = demo$(SUFFIX) demo2$(SUFFIX) enhance$(SUFFIX)
-
-static: libtecla$(SUFFIX).a
-
-libtecla$(SUFFIX).a: $(LIB_OBJECTS)
- ar -ru $@ $(LIB_OBJECTS); \
- $(RANLIB) $@; \
- rm -f $(PROGS)
-
-shared: libtecla$(SUFFIX)$(SHARED_EXT)
-
-libtecla$(SUFFIX)$(SHARED_EXT): $(LIB_OBJECTS) $(srcdir)/libtecla.map \
- libtecla.map.opt
- $(LINK_SHARED)
- @endings="$(SHARED_ALT)" ; \
- for alt in $$endings ; do \
- lnk="libtecla$(SUFFIX)$$alt"; \
- echo "rm -f $$lnk; $(LN_S) $@ $$lnk"; \
- rm -f $$lnk; $(LN_S) $@ $$lnk; \
- done; \
- rm -f $(PROGS)
-
-libtecla.map.opt: $(srcdir)/libtecla.map
- sed -n 's/^[ ]*\([_a-zA-Z0-9]*\)[ ]*;.*/+e \1/p' $? >$@
-
-demos: demo$(SUFFIX) demo2$(SUFFIX)
-
-demo$(SUFFIX): $(OBJDIR)/demo.o
- LD_RUN_PATH="$(LIBDIR):$$LD_RUN_PATH:`pwd`" $(CC) $(CFLAGS) -o $@ \
- $(OBJDIR)/demo.o -L. -ltecla$(SUFFIX) $(LIBS)
-
-demo2$(SUFFIX): $(OBJDIR)/demo2.o
- LD_RUN_PATH="$(LIBDIR):$$LD_RUN_PATH:`pwd`" $(CC) $(CFLAGS) -o $@ \
- $(OBJDIR)/demo2.o -L. -ltecla$(SUFFIX) $(LIBS)
-
-enhance$(SUFFIX): $(OBJDIR)/enhance.o
- LD_RUN_PATH="$(LIBDIR):$$LD_RUN_PATH:`pwd`" $(CC) $(CFLAGS) -o $@ \
- $(OBJDIR)/enhance.o -L. -ltecla$(SUFFIX) $(LIBS)
-
-#-----------------------------------------------------------------------
-# Object file dependencies.
-#-----------------------------------------------------------------------
-
-$(OBJDIR)/getline.o: $(srcdir)/getline.c $(srcdir)/pathutil.h \
- $(srcdir)/libtecla.h $(OBJDIR)/keytab.h $(srcdir)/history.h \
- $(srcdir)/freelist.h $(srcdir)/stringrp.h $(srcdir)/getline.h
- $(COMPILE) $(srcdir)/getline.c
-
-$(OBJDIR)/keytab.o: $(srcdir)/keytab.c $(OBJDIR)/keytab.h \
- $(srcdir)/strngmem.h $(srcdir)/getline.h
- $(COMPILE) $(srcdir)/keytab.c
-
-$(OBJDIR)/strngmem.o: $(srcdir)/strngmem.c $(srcdir)/strngmem.h \
- $(srcdir)/freelist.h
- $(COMPILE) $(srcdir)/strngmem.c
-
-$(OBJDIR)/freelist.o: $(srcdir)/freelist.c $(srcdir)/freelist.h
- $(COMPILE) $(srcdir)/freelist.c
-
-$(OBJDIR)/hash.o: $(srcdir)/hash.c $(srcdir)/hash.h $(srcdir)/strngmem.h \
- $(srcdir)/freelist.h
- $(COMPILE) $(srcdir)/hash.c
-
-$(OBJDIR)/history.o: $(srcdir)/history.c $(srcdir)/history.h \
- $(srcdir)/freelist.h
- $(COMPILE) $(srcdir)/history.c
-
-$(OBJDIR)/expand.o: $(srcdir)/expand.c $(srcdir)/freelist.h \
- $(srcdir)/direader.h $(srcdir)/pathutil.h $(srcdir)/homedir.h \
- $(srcdir)/stringrp.h $(srcdir)/libtecla.h
- $(COMPILE) $(srcdir)/expand.c
-
-$(OBJDIR)/direader.o: $(srcdir)/direader.c $(srcdir)/direader.h
- $(COMPILE) $(srcdir)/direader.c
-
-$(OBJDIR)/homedir.o: $(srcdir)/homedir.c $(srcdir)/pathutil.h \
- $(srcdir)/homedir.h
- $(COMPILE) $(srcdir)/homedir.c
-
-$(OBJDIR)/pathutil.o: $(srcdir)/pathutil.c $(srcdir)/pathutil.h
- $(COMPILE) $(srcdir)/pathutil.c
-
-$(OBJDIR)/stringrp.o: $(srcdir)/stringrp.c $(srcdir)/freelist.h \
- $(srcdir)/stringrp.h
- $(COMPILE) $(srcdir)/stringrp.c
-
-$(OBJDIR)/cplfile.o: $(srcdir)/cplfile.c $(srcdir)/libtecla.h \
- $(srcdir)/direader.h $(srcdir)/homedir.h $(srcdir)/pathutil.h \
- $(srcdir)/cplfile.h
- $(COMPILE) $(srcdir)/cplfile.c
-
-$(OBJDIR)/cplmatch.o: $(srcdir)/cplmatch.c $(srcdir)/libtecla.h \
- $(srcdir)/stringrp.h $(srcdir)/pathutil.h $(srcdir)/cplfile.h
- $(COMPILE) $(srcdir)/cplmatch.c
-
-$(OBJDIR)/pcache.o: $(srcdir)/pcache.c $(srcdir)/libtecla.h \
- $(srcdir)/pathutil.h $(srcdir)/homedir.h $(srcdir)/freelist.h \
- $(srcdir)/direader.h $(srcdir)/stringrp.h
- $(COMPILE) $(srcdir)/pcache.c
-
-$(OBJDIR)/demo.o: $(srcdir)/demo.c $(srcdir)/libtecla.h
- $(COMPILE) $(srcdir)/demo.c
-
-$(OBJDIR)/demo2.o: $(srcdir)/demo2.c $(srcdir)/libtecla.h
- $(COMPILE) $(srcdir)/demo2.c
-
-$(OBJDIR)/version.o: $(srcdir)/version.c $(srcdir)/libtecla.h
- $(COMPILE) $(srcdir)/version.c
-
-$(OBJDIR)/enhance.o: $(srcdir)/enhance.c $(srcdir)/libtecla.h
- $(COMPILE) $(srcdir)/enhance.c
-
-#-----------------------------------------------------------------------
-# Include file dependencies.
-#-----------------------------------------------------------------------
-
-$(OBJDIR)/keytab.h: $(srcdir)/keytab.h $(srcdir)/libtecla.h \
- $(srcdir)/hash.h $(srcdir)/strngmem.h
- cp $(srcdir)/keytab.h $@
diff --git a/libtecla-1.4.1/Makefile.stub b/libtecla-1.4.1/Makefile.stub
deleted file mode 100644
index 15116b5..0000000
--- a/libtecla-1.4.1/Makefile.stub
+++ /dev/null
@@ -1,3 +0,0 @@
-default:
- ./configure
- make
diff --git a/libtecla-1.4.1/PORTING b/libtecla-1.4.1/PORTING
deleted file mode 100644
index db39818..0000000
--- a/libtecla-1.4.1/PORTING
+++ /dev/null
@@ -1,38 +0,0 @@
-The Tecla library was written with portability in mind, so no
-modifications to the source code should be needed on UNIX or LINUX
-platforms. The default compilation and linking arrangements should
-also work unchanged on these systems, but if no specific configuration
-has been provided for your system, shared libraries won't be compiled.
-Configuring these requires modifications to be made to the file:
-
- configure.in
-
-This file is heavily commented (comments start with the word dnl) and
-is relatively simple, so the instructions and suggestions that you
-find in this file should be sufficient to help you figure out how to
-add a configuration for your system. This file is an input file to the
-GNU autoconf program, which uses it as a template for generating the
-distributed configure script. If autoconf is installed on your system,
-creating a new configure script is a simple matter of typing.
-
- autoconf
-
-To avoid confusion with the leftovers of the previous configuration,
-you should then do the following:
-
- rm -f config.cache
- ./configure
- make clean
- ./configure
- make
-
-The first ./configure creates a new makefile for your system, allowing
-you to type 'make clean' to discard any files that were compiled with
-the previous configuration. Since 'make clean' also deletes the new
-makefile, a second invokation of the configure script is then
-performed to re-create the makefile. The final make then creates the
-tecla library from scratch.
-
-Once you have confirmed that the new configuration works, please send
-the modified "configure.in" template to mcs@astro.caltech.edu, so that
-your changes can be included in subsequent releases.
diff --git a/libtecla-1.4.1/README b/libtecla-1.4.1/README
deleted file mode 100644
index 894819d..0000000
--- a/libtecla-1.4.1/README
+++ /dev/null
@@ -1,53 +0,0 @@
-This is version 1.4.1 of the tecla command-line editing library.
-
-For the current official release, please direct your browser to:
-
- http://www.astro.caltech.edu/~mcs/tecla/index.html
-
-The tecla library provides UNIX and LINUX programs with interactive
-command line editing facilities, similar to those of the unix tcsh
-shell. In addition to simple command-line editing, it supports recall
-of previously entered command lines, TAB completion of file names, and
-in-line wild-card expansion of filenames. The internal functions
-which perform file-name completion and wild-card expansion are also
-available externally for optional use by programs, along with a module
-for tab-completion and lookup of filenames in a list of directories.
-
-Note that special care has been taken to allow the use of this library
-in threaded programs. The option to enable this is discussed in the
-Makefile, and specific discussions of thread safety are presented in
-the included man pages.
-
-For instructions on how to compile and install the library, please see
-the INSTALL file, which should be in the same directory as this file.
-
-Copyright and Disclaimer
-------------------------
-Copyright (c) 2000, 2001 by Martin C. Shepherd.
-
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
diff --git a/libtecla-1.4.1/RELEASE.NOTES b/libtecla-1.4.1/RELEASE.NOTES
deleted file mode 100644
index 1b18a4a..0000000
--- a/libtecla-1.4.1/RELEASE.NOTES
+++ /dev/null
@@ -1,357 +0,0 @@
-This file lists major changes which accompany each new release.
-
-Version 1.4.1:
-
- This is a maintenance release. It includes minor changes to support
- Mac OS X (Darwin), the QNX real-time operating system, and Cygwin
- under Windows. It also fixes an oversight that was preventing the
- tab key from inserting tab characters when users unbound the
- complete-word action from it.
-
-Version 1.4.0:
-
- The contents of the history list can now be saved and restored with
- the new gl_save_history() and gl_load_history() functions.
-
- Event handlers can now be registered to watch for and respond to I/O
- on arbitrary file descriptors while gl_get_line() is waiting for
- terminal input from the user. See the gl_get_line(3) man page
- for details on gl_watch_fd().
-
- As an optional alternative to getting configuration information only
- from ~/.teclarc, the new gl_configure_getline() function allows
- configuration commands to be taken from any of, a string, a
- specified application-specific file, and/or a specified
- user-specific file. See the gl_get_line(3) man page for details.
-
- The version number of the library can now be queried using the
- libtecla_version() function. See the libtecla(3) man page.
-
- The new gl_group_history() function allows applications to group
- different types of input line in the history buffer, and arrange for
- only members of the appropriate group to be recalled on a given call
- to gl_get_line(). See the gl_get_line(3) man page.
-
- The new gl_show_history() function displays the current history list
- to a given stdio output stream. See the gl_get_line(3) man page.
-
- new_GetLine() now allows you to specify a history buffer size of
- zero, thus requesting that no history buffer be allocated. You can
- subsequently resize or delete the history buffer at any time, by
- calling gl_resize_history(), limit the number of lines that are
- allowed in the buffer by calling gl_limit_history(), clear either
- all history lines from the history list, or just the history lines
- that are associated with the current history group, by calling
- gl_clear_history, and toggle the history mechanism on and off by
- calling gl_toggle_history().
-
- The new gl_terminal_size() function can be used to query the
- current terminal size. It can also be used to supply a default
- terminal size on systems where no mechanism is available for
- looking up the size.
-
- The contents and configuration of the history list can now be
- obtained by the calling application, by calling the new
- gl_lookup_history(), gl_state_of_history(), gl_range_of_history()
- and gl_size_of_history() functions. See the gl_get_line(3) man page.
-
- Echoing of the input line as it is typed, can now be turned on and
- off via the new gl_echo_mode() function. While echoing is disabled,
- newly entered input lines are omitted from the history list. See
- the gl_get_line(3) man page.
-
- While the default remains to display the prompt string literally,
- the new gl_prompt_style() function can be used to enable text
- attribute formatting directives in prompt strings, such as
- underlining, bold font, and highlighting directives.
-
- Signal handling in gl_get_line() is now customizable. The default
- signal handling behavior remains essentially the same, except that
- the SIGTSTP, SIGTTIN and SIGTTOU are now forwarded to the
- corresponding signal handler of the calling program, instead of
- causing a SIGSTOP to be sent to the application. It is now possible
- to remove signals from the list that are trapped by gl_get_line(),
- as well as add new signals to this list. The signal and terminal
- environments in which the signal handler of the calling program is
- invoked, and what gl_get_line() does after the signal handler
- returns, is now customizable on a per signal basis. You can now also
- query the last signal that was caught by gl_get_line(). This is
- useful when gl_get_line() aborts with errno=EINTR, and you need to
- know which signal caused it to abort.
-
- Key-sequences bound to action functions can now start with printable
- characters. Previously only keysequences starting with control or
- meta characters were permitted.
-
- gl_get_line() is now 8-bit clean. If the calling program has
- correctly called setlocale(LC_CTYPE,""), then the user can select an
- alternate locale by setting the standard LC_CTYPE, LC_ALL, or LANG
- environment variables, and international characters can then be
- entered directly, either by using a non-US keyboard, or by using a
- compose key on a standard US keyboard. Note that in locales in which
- meta characters become printable, meta characters no longer match
- M-c bindings, which then have to be entered using their escape-c
- equivalents. Fortunately most modern terminal emulators either
- output the escape-c version by default when the meta key is used, or
- can be configured to do so (see the gl_get_line(3) man page), so in
- most cases you can continue to use the meta key.
-
- Completion callback functions can now tell gl_get_line() to return
- the input line immediately after a successful tab completion, simply
- by setting the last character of the optional continuation suffix to
- a newline character (ie. in the call to cpl_add_completion()).
-
- It is now safe to create and use multiple GetLine objects, albeit
- still only from a single thread. In conjunction with the new
- gl_configure_getline() function, this optionally allows multiple
- GetLine objects with different bindings to be used to implement
- different input modes.
-
- The edit-mode configuration command now accepts the argument,
- none. This tells gl_get_line() to revert to using just the native
- line editing facilities provided by the terminal driver. This could
- be used if the termcap or terminfo entry of the host terminal were
- badly corrupted.
-
- Application callback functions invoked by gl_get_line() can now
- change the displayed prompt using the gl_replace_prompt() function.
-
- Their is now an optional program distributed with the library. This
- is a beta release of a program which adds tecla command-line editing
- to virtually any third party application without the application
- needing to be linked to the library. See the enhance(3) man page for
- further details. Although built and installed by default, the
- INSTALL document explains how to prevent this.
-
- The INSTALL document now explains how you can stop the demo programs
- from being built and installed.
-
- NetBSD/termcap fixes. Mike MacFaden reported two problems that he
- saw when compiling libtecla under NetBSD. Both cases were related to
- the use of termcap. Most systems use terminfo, so this problem has
- gone unnoticed until now, and won't have affected the grand majority
- of users. The configure script had a bug which prevented the check
- for CPP working properly, and getline.c wouldn't compile due to an
- undeclared variable when USE_TERMCAP was defined. Both problems have
- now been fixed. Note that if you successfully compiled version
- 1.3.3, this problem didn't affect you.
-
- An unfortunate and undocumented binding of the key-sequence M-O was
- shadowing the arrow-key bindings on systems that use ^[OA etc. I
- have removed this binding (the documented lower case M-o binding
- remains bound). Under the KDE konsole terminal this was causing the
- arrow keys to do something other than expected.
-
- There was a bug in the history list code which could result in
- strange entries appearing at the start of the history list once
- enough history lines had been added to the list to cause the
- circular history buffer to wrap. This is now fixed.
-
-Version 1.3.3:
-
- Signal handling has been re-written, and documentation of its
- behaviour has been added to the gl_get_line(3) man page. In addition
- to eliminating race conditions, and appropriately setting errno for
- those signals that abort gl_get_line(), many more signals are now
- intercepted, making it less likely that the terminal will be left in
- raw mode by a signal that isn't trapped by gl_get_line().
-
- A bug was also fixed that was leaving the terminal in raw mode if
- the editing mode was changed interactively between vi and emacs.
- This was only noticeable when running programs from old shells that
- don't reset terminal modes.
-
-Version 1.3.2:
-
- Tim Eliseo contributed a number of improvements to vi mode,
- including a fuller set of vi key-bindings, implementation of the vi
- constraint that the cursor can't backup past the point at which
- input mode was entered, and restoration of overwritten characters
- when backspacing in overwrite mode. There are also now new bindings
- to allow users to toggle between vi and emacs modes interactively.
- The terminal bell is now used in some circumstances, such as when an
- unrecognized key sequence is entered. This can be turned off by the
- new nobeep option in the tecla configuration file.
-
- Unrelated to the above, a problem under Linux which prevented ^Q
- from being used to resume terminal output after the user had pressed
- ^S, has been fixed.
-
-Version 1.3.1:
-
- In vi mode a bug was preventing the history-search-backward and
- history-search-forward actions from doing anything when invoked on
- empty lines. On empty lines they now act like up-history and
- down-history respectively, as in emacs mode.
-
- When creating shared libraries under Linux, the -soname directive
- was being used incorrectly. The result is that Linux binaries linked
- with the 1.2.3, 1.2.4 and 1.3.0 versions of the tecla shared
- libraries, will refuse to see other versions of the shared library
- until relinked with version 1.3.1 or higher.
-
- The configure script can now handle the fact that under Solaris-2.6
- and earlier, the only curses library is a static one that hides in
- /usr/ccs/lib. Under Linux it now also caters for old versions of GNU
- ld which don't accept version scripts.
-
- The demos are now linked against the shared version of the library
- if possible. Previously they were always linked with the static
- version.
-
-Version 1.3.0:
-
- The major change in this release is the addition of an optional vi
- command-line editing mode in gl_get_line(), along with lots of new
- action functions to support its bindings. To enable this, first
- create a ~/.teclarc file if you don't already have one, then add the
- following line to it.
-
- edit-mode vi
-
- The default vi bindings, which are designed to mimic those of the vi
- editor as closely as possible, are described in the gl_get_line(3)
- man page.
-
- A new convenience function called ef_list_expansions() has been
- added for listing filename expansions. See the ef_list_expansions(3)
- man page for details. This is used in a new list-glob binding, bound
- to ^Xg in emacs mode, and ^G in vi input mode.
-
- A bug has been fixed in the key-binding table expansion code. This
- bug would have caused problems to anybody who defined more than
- about 18 personalized key-bindings in their ~/.teclarc file.
-
-Version 1.2.4:
-
- Buffered I/O is now used for writing to terminals, and where
- supported, cursor motion is done with move-n-positions terminfo
- capabilities instead of doing lots of move-1-position requests. This
- greatly improves how the library feels over slow links.
-
- You can now optionally compile different architectures in different
- directories, without having to make multiple copies of the
- distribution. This is documented in the INSTALL file.
-
- The ksh ~+ directive is now supported.
-
- Thanks to Markus Gyger for the above improvements.
-
- Documentation has been added to the INSTALL file describing features
- designed to facilitate configuration and installation of the library
- as part of larger packages. These features are intended to remove
- the need to modify the tecla distribution's configuration and build
- procedures when embedding the libtecla distribution in other package
- distributions.
-
- A previous fix to stop the cursor from warping when the last
- character of the input line was in the last column of the terminal,
- was only being used for the first terminal line of the input line.
- It is now used for all subsequent lines as well, as originally
- intended.
-
-Version 1.2.3:
-
- The installation procedure has been better automated with the
- addition of an autoconf configure script. This means that installers
- can now compile and install the library by typing:
-
- ./configure
- make
- make install
-
- On all systems this makes at least the normal static version of the
- tecla library. It also makes the reentrant version if reentrant
- POSIX functions are detected. Under Solaris, Linux and HP-UX the
- configuration script arranges for shared libraries to be compiled in
- addition to the static libraries. It is hoped that installers will
- return information about how to compile shared libraries on other
- systems, for inclusion in future releases, and to this end, a new
- PORTING guide has been provided.
-
- The versioning number scheme has been changed. This release would
- have been 1.2c, but instead will be refered to as 1.2.3. The
- versioning scheme, based on conventions used by Sun Microsystems, is
- described in configure.in.
-
- The library was also tested under HP-UX, and this revealed two
- serious bugs, both of which have now been fixed.
-
- The first bug prevented the library from writing control codes to
- terminals on big-endian machines, with the exception of those
- running under Solaris. This was due to an int variable being used
- where a char was needed.
-
- The second bug had the symptom that on systems that don't use the
- newline character as the control code for moving the cursor down a
- line, a newline wasn't started when the user hit enter.
-
-Version 1.2b:
-
- Two more minor bug fixes:
-
- Many terminals don't wrap the cursor to the next line when a
- character is written to the rightmost terminal column. Instead, they
- delay starting a new line until one more character is written, at
- which point they move the cursor two positions. gl_get_line()
- wasn't aware of this, so cursor repositionings just after writing
- the last character of a column, caused it to erroneously go up a
- line. This has now been remedied, using a method that should work
- regardless of whether a terminal exhibits this behavior or not.
-
- Some systems dynamically record the current terminal dimensions in
- environment variables called LINES and COLUMNS. On such systems,
- during the initial terminal setup, these values should override the
- static values read from the terminal information databases, and now
- do. Previously they were only used if the dimensions returned by
- terminfo/termcap looked bogus.
-
-Version 1.2a:
-
- This minor release fixes the following two bugs:
-
- The initial terminal size and subsequent changes thereto, weren't
- being noticed by gl_get_line(). This was because the test for the
- existence of TIOCWINSZ was erroneously placed before the inclusion
- of termios.h. One of the results was that on input lines that
- spanned more than one terminal line, the cursor occasionally jumped
- unexpectedly to the previous terminal line.
-
- On entering a line that wrapped over multiple terminal lines,
- gl_get_line() simply output a carriage-return line-feed at the point
- at which the user pressed return. Thus if one typed in such a line,
- then moved back onto one of the earlier terminal lines before
- hitting return, the cursor was left on a line containing part of the
- line that had just been entered. This didn't do any harm, but it
- looked a mess.
-
-Version 1.2:
-
- A new facility for looking up and completing filenames in UNIX-style
- paths has now been added (eg. you can search for, or complete
- commands using the UNIX PATH environment variable). See the
- pca_lookup_file(3) man page.
-
- The already existing filename completion callback can now be made
- selective in what types of files it lists. See the
- cpl_complete_word(3) man page.
-
- Due to its potential to break applications when changed, the use of
- the publically defined CplFileArgs structure to configure the
- cpl_file_completions() callback is now deprecated. The definition
- of this structure has been frozen, and its documentation has been
- removed from the man pages. It will remain supported, but if you
- have used it, you are recommended to switch to the new method, which
- involves a new opaque configuration object, allocated via a provided
- constructor function, configured via accessor functions, and
- eventually deleted with a provided destructor function. The
- cpl_file_completions() callback distinguishes which structure type
- it has been sent by virtue of a code placed at the start of the new
- structure by the constructor. It is assumed that no existing
- applications set the boolean 'escaped' member of the CplFileArgs
- structure to 4568. The new method is documented in the
- cpl_complete_word(3) man page.
-
-Version 1.1j
-
- This was the initial public release on freshmeat.org.
diff --git a/libtecla-1.4.1/config.guess b/libtecla-1.4.1/config.guess
deleted file mode 100644
index 0ce538b..0000000
--- a/libtecla-1.4.1/config.guess
+++ /dev/null
@@ -1,1183 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-# Free Software Foundation, Inc.
-#
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
-#
-# 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).
-#
-
-# 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
-
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
-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_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
- *:NetBSD:*:*)
- # 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.
- # 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 ;;
- 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:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- cat <<EOF >$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-cbm-sysv4
- exit 0;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- 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}
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- 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`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- 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
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-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 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-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
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- 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.
- 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:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 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
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=4.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[34678]??:HP-UX:*:*)
- 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
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
- rm -f $dummy.c $dummy
- esac
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i?86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- 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 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-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:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE}
- 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/
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alpha-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-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- F300:UNIX_System_V:*:*)
- 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}"
- 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:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- 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/[-_].*/\./'`
- exit 0 ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
- i*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- *: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.
- ld_help_string=`cd /; ld --help 2>&1`
- ld_supported_emulations=`echo $ld_help_string \
- | sed -ne '/supported emulations:/!d
- s/[ ][ ]*/ /g
- s/.*supported emulations: *//
- s/ .*//
- p'`
- case "$ld_supported_emulations" in
- *ia64)
- echo "${UNAME_MACHINE}-unknown-linux"
- exit 0
- ;;
- i?86linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0
- ;;
- elf_i?86)
- echo "${UNAME_MACHINE}-pc-linux"
- exit 0
- ;;
- i?86coff)
- 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
- ;;
- 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;
-}
-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*:*)
- echo i386-sequent-sysv4
- exit 0 ;;
- 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,
- # I just have to hope. -- rms.
- # 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.*:*)
- 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}
- else
- 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
- exit 0 ;;
- 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
- 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_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- i?86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-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)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && 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.*:*)
- 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]*:*)
- 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.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- 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>
- echo i586-unisys-sysv4
- exit 0 ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit 0 ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
- news*:NEWS-OS:*:6*)
- echo mips-sony-newsos6
- exit 0 ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit 0 ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit 0 ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit 0 ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- if test "${UNAME_MACHINE}" = "x86pc"; then
- UNAME_MACHINE=pc
- fi
- echo `uname -p`-${UNAME_MACHINE}-nto-qnx
- exit 0 ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit 0 ;;
- NSR-W:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${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 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
- printf ("vax-dec-bsd\n"); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-#echo '(Unable to guess system type)' 1>&2
-
-exit 1
diff --git a/libtecla-1.4.1/config.sub b/libtecla-1.4.1/config.sub
deleted file mode 100644
index c8e7785..0000000
--- a/libtecla-1.4.1/config.sub
+++ /dev/null
@@ -1,1268 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-# Free Software Foundation, Inc.
-#
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-if [ x$1 = x ]
-then
- echo Configuration name missing. 1>&2
- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
- echo "or $0 ALIAS" 1>&2
- echo where ALIAS is a recognized configuration type. 1>&2
- exit 1
-fi
-
-# First pass through any local machine types.
-case $1 in
- *local*)
- echo $1
- exit 0
- ;;
- *)
- ;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# 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*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-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 | 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 | fr30 | avr)
- basic_machine=$basic_machine-unknown
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
- ;;
-
- # 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[34567]86)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- # FIXME: clean up the formatting here.
- vax-* | tahoe-* | i[34567]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-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-cbm
- ;;
- amigaos | amigados)
- basic_machine=m68k-cbm
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-cbm
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- 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
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i[34567]86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i[34567]86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i[34567]86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i[34567]86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | 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
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- 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/'`-unknown
- ;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- msdos)
- basic_machine=i386-unknown
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexen)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexen-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=rs6000-ibm
- ;;
- ppc) basic_machine=powerpc-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/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sparclite-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=t3e-cray
- os=-unicos
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- xmp)
- basic_machine=xmp-cray
- os=-unicos
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- 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
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sparc | sparcv9)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- c4x*)
- basic_machine=c4x-none
- os=-coff
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i[34567]86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto*)
- os=-nto-qnx
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -*MiNT)
- os=-mint
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-ibm)
- os=-aix
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f301-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -*MiNT)
- vendor=atari
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
diff --git a/libtecla-1.4.1/configure b/libtecla-1.4.1/configure
deleted file mode 100755
index feaa587..0000000
--- a/libtecla-1.4.1/configure
+++ /dev/null
@@ -1,1939 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# 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
-
-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"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$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="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # 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" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # 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
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -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
- if test -n "$ac_help"; then
- echo "--enable and --with options recognized:$ac_help"
- fi
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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="$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="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # 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'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # 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" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -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-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" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- 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"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-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
-
-# 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
-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" ;;
- 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
-
-# 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
-
-# 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=getline.c
-
-# 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%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-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; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-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
-
-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
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-
-MAJOR_VER="1"
-
-
-
-MINOR_VER="4"
-
-
-
-MICRO_VER="1"
-
-
-CFLAGS="$CFLAGS"
-# 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:543: 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 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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:573: 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 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_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"
-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
- # 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" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-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:624: 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 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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-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; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:656: 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_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
-
-cat > conftest.$ac_ext << EOF
-
-#line 667 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:672: \"$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
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_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_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:698: 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:703: 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:712: \"$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
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-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:731: 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
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:765: 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
-else
- cat > conftestmake <<\EOF
-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=`
-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
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-
-
-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:794: 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
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-for ac_prog in gawk mawk nawk awk
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:821: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-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"
-fi
-fi
-AWK="$ac_cv_prog_AWK"
-if test -n "$AWK"; then
- echo "$ac_t""$AWK" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AWK" && break
-done
-
-
-
-# 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:855: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-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=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-# 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.
-
-# 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:931: 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:952: 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:970: 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 "$program_prefix$program_suffix$program_transform_name" = \
- NONENONEs,x,x, &&
- program_prefix=${target_alias}-
-
-
-
-case $target in
-*-sun-solaris2.[0-6]|*-sun-solaris2.[0-6].*)
- LIBS="$LIBS -L/usr/ccs/lib"
- ;;
-esac
-
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1002: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1017 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1034 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1040: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 1051 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1057: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for tigetstr in -lcurses""... $ac_c" 1>&6
-echo "configure:1082: checking for tigetstr in -lcurses" >&5
-ac_lib_var=`echo curses'_'tigetstr | 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="-lcurses $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1090 "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 tigetstr();
-
-int main() {
-tigetstr()
-; return 0; }
-EOF
-if { (eval echo configure:1101: \"$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
-#define USE_TERMINFO 1
-EOF
-
- LIBS="$LIBS -lcurses"
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for tigetstr in -lncurses""... $ac_c" 1>&6
-echo "configure:1126: checking for tigetstr in -lncurses" >&5
-ac_lib_var=`echo ncurses'_'tigetstr | 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="-lncurses $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1134 "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 tigetstr();
-
-int main() {
-tigetstr()
-; return 0; }
-EOF
-if { (eval echo configure:1145: \"$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
-#define USE_TERMINFO 1
-EOF
-
- LIBS="$LIBS -lncurses"
-
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for tgetstr in -lcurses""... $ac_c" 1>&6
-echo "configure:1170: checking for tgetstr in -lcurses" >&5
-ac_lib_var=`echo curses'_'tgetstr | 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="-lcurses $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1178 "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 tgetstr();
-
-int main() {
-tgetstr()
-; return 0; }
-EOF
-if { (eval echo configure:1189: \"$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
-#define USE_TERMCAP 1
-EOF
-
- LIBS="$LIBS -lcurses"
- ac_safe=`echo "termcap.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for termcap.h""... $ac_c" 1>&6
-echo "configure:1212: checking for termcap.h" >&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 1217 "configure"
-#include "confdefs.h"
-#include <termcap.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_TERMCAP_H 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-fi
-
-
-
-ac_safe=`echo "term.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for term.h""... $ac_c" 1>&6
-echo "configure:1259: checking for term.h" >&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 1264 "configure"
-#include "confdefs.h"
-#include <term.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_TERM_H 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-
- ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:1294: checking for ncurses/term.h" >&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 1299 "configure"
-#include "confdefs.h"
-#include <ncurses/term.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1304: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_TERM_H 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
-
-
-ac_safe=`echo "curses.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for curses.h""... $ac_c" 1>&6
-echo "configure:1335: checking for curses.h" >&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 1340 "configure"
-#include "confdefs.h"
-#include <curses.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1345: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_CURSES_H 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-
- ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:1370: checking for ncurses/curses.h" >&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 1375 "configure"
-#include "confdefs.h"
-#include <ncurses/curses.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1380: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_CURSES_H 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
-
-
-
-TARGETS="normal reentrant"
-
-
-echo $ac_n "checking for reentrant functions""... $ac_c" 1>&6
-echo "configure:1414: checking for reentrant functions" >&5
-if eval "test \"`echo '$''{'tecla_cv_reentrant'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- KEPT_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199506L"
- cat > conftest.$ac_ext <<EOF
-#line 1422 "configure"
-#include "confdefs.h"
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#include <pwd.h>
-
-int main() {
-
- (void) readdir_r(NULL, NULL, NULL);
- (void) getpwuid_r(geteuid(), NULL, NULL, 0, NULL);
- (void) getpwnam_r(NULL, NULL, NULL, 0, NULL);
-
-; return 0; }
-EOF
-if { (eval echo configure:1439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- tecla_cv_reentrant=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- tecla_cv_reentrant=no
-fi
-rm -f conftest*
- CFLAGS="$KEPT_CFLAGS"
-
-fi
-
-echo "$ac_t""$tecla_cv_reentrant" 1>&6
-
-
-if test $tecla_cv_reentrant = no; then
- TARGETS="normal"
-fi
-
-
-echo $ac_n "checking for select system call""... $ac_c" 1>&6
-echo "configure:1462: checking for select system call" >&5
-if eval "test \"`echo '$''{'tecla_cv_select'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 1468 "configure"
-#include "confdefs.h"
-
-#ifdef HAVE_SELECT_H
-#include <select.h>
-#endif
-#include <sys/time.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-int main() {
-
- fd_set fds;
- int nready;
- FD_ZERO(&fds);
- FD_SET(1, &fds);
- nready = select(2, &fds, &fds, &fds, NULL);
-
-; return 0; }
-EOF
-if { (eval echo configure:1488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- tecla_cv_select=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- tecla_cv_select=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$tecla_cv_select" 1>&6
-
-
-if test $tecla_cv_select = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SELECT 1
-EOF
-
-fi
-
-
-echo $ac_n "checking for SysV pseudo-terminals""... $ac_c" 1>&6
-echo "configure:1513: checking for SysV pseudo-terminals" >&5
-if eval "test \"`echo '$''{'tecla_cv_sysv_pty'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 1519 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <unistd.h>
-#include <stropts.h>
-
-int main() {
-
- char *name = ptsname(0);
- int i1 = grantpt(0);
- int i2 = unlockpt(0);
- int i3 = ioctl(0, I_PUSH, "ptem");
- return 0;
-
-; return 0; }
-EOF
-if { (eval echo configure:1536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- tecla_cv_sysv_pty=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- tecla_cv_sysv_pty=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$tecla_cv_sysv_pty" 1>&6
-
-
-if test $tecla_cv_sysv_pty = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SYSV_PTY 1
-EOF
-
-fi
-
-
-
-SHARED_EXT=""
-
-
-
-SHARED_ALT=""
-
-
-
-SHARED_CFLAGS=""
-
-
-
-LINK_SHARED=""
-
-
-case $target in
-*solaris*)
- cat >> confdefs.h <<\EOF
-#define __EXTENSIONS__ 1
-EOF
-
- SHARED_EXT=".so.${MAJOR_VER}"
- SHARED_ALT=".so"
- LINK_SHARED='ld -G -M $$(srcdir)/libtecla.map -o $$@ -h $$(@F) -z defs -i $$(LIB_OBJECTS) $$(LIBS) -lc'
- SHARED_CFLAGS="-Kpic"
- case $CC in
- */cc|cc) SHARED_CFLAGS="$SHARED_CFLAGS -xstrconst" ;;
- gcc) CFLAGS="-I/usr/include $CFLAGS" ;;
- esac
- case $target in
- *sparc*) SHARED_CFLAGS="$SHARED_CFLAGS -xregs=no%appl"
- esac
- ;;
-*linux*)
- SHARED_EXT=".so.${MAJOR_VER}.${MINOR_VER}.${MICRO_VER}"
- SHARED_ALT=".so .so.${MAJOR_VER}"
-
-
- echo $ac_n "checking for --version-script in GNU ld""... $ac_c" 1>&6
-echo "configure:1600: checking for --version-script in GNU ld" >&5
-if eval "test \"`echo '$''{'tecla_cv_gnu_ld_script'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- if (echo 'void dummy(void) {return;}' > dummy.c; $CC -c -fpic dummy.c; \
- ld -o dummy.so dummy.o -shared --version-script=$srcdir/libtecla.map) 1>&2 2>/dev/null; then
- tecla_cv_gnu_ld_script=yes
- else
- tecla_cv_gnu_ld_script=no
- fi
- rm -f dummy.c dummy.o dummy.so
-
-fi
-
-echo "$ac_t""$tecla_cv_gnu_ld_script" 1>&6
- if test $tecla_cv_gnu_ld_script = yes; then
- VERSION_OPT='--version-script=$$(srcdir)/libtecla.map'
- else
- VERSION_OPT=''
- fi
-
- LINK_SHARED='ld -o $$@ -soname libtecla$$(SUFFIX).so.'${MAJOR_VER}' -shared '$VERSION_OPT' $$(LIB_OBJECTS) $$(LIBS) -lc'
- SHARED_CFLAGS="-fpic"
- ;;
-*hpux*)
- SHARED_EXT=".${MAJOR_VER}"
- SHARED_ALT=".sl"
- LINK_SHARED='ld -b +h $$(@F) +k +vshlibunsats -o $$@ -c libtecla.map.opt $$(LIB_OBJECTS) $$(LIBS) -lc'
- SHARED_CFLAGS="+z"
- ;;
-*dec-osf*)
- cat >> confdefs.h <<\EOF
-#define _OSF_SOURCE 1
-EOF
-
- ;;
-esac
-
-
-if test "$GCC"_ = "yes"_ && test "$LINK_SHARED"_ != "_" ; then
- SHARED_CFLAGS="-fpic"
- case $target_os in
- sparc*solaris*) SHARED_CFLAGS="$SHARED_CFLAGS -mno-app-regs"
- esac
- LINK_SHARED="$LINK_SHARED `gcc -print-libgcc-file-name`"
-fi
-
-
-
-
-
-if test "$LINK_SHARED"_ != "_"; then
- TARGET_LIBS="static shared"
-else
- TARGET_LIBS="static"
- LINK_SHARED="@:"
-fi
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# 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.
-#
-# 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.
-#
-EOF
-# 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
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- 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}'
-
-# 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.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
-
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# 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
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -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"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# 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%@MAJOR_VER@%$MAJOR_VER%g
-s%@MINOR_VER@%$MINOR_VER%g
-s%@MICRO_VER@%$MICRO_VER%g
-s%@CC@%$CC%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@LN_S@%$LN_S%g
-s%@AWK@%$AWK%g
-s%@RANLIB@%$RANLIB%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%@CPP@%$CPP%g
-s%@TARGETS@%$TARGETS%g
-s%@SHARED_EXT@%$SHARED_EXT%g
-s%@SHARED_ALT@%$SHARED_ALT%g
-s%@SHARED_CFLAGS@%$SHARED_CFLAGS%g
-s%@LINK_SHARED@%$LINK_SHARED%g
-s%@TARGET_LIBS@%$TARGET_LIBS%g
-
-CEOF
-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_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
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # 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" ;;
- 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%/[^/][^/]*$%%'`
- 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%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- 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" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- 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
-
- 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
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/libtecla-1.4.1/configure.in b/libtecla-1.4.1/configure.in
deleted file mode 100644
index 3b083b9..0000000
--- a/libtecla-1.4.1/configure.in
+++ /dev/null
@@ -1,412 +0,0 @@
-dnl This is the input file which autoconf uses to construct a
-dnl "configure" script for the tecla library. It is a bourne shell
-dnl script which autoconf pre-processes with the m4 preprocessor to
-dnl expand autoconf-defined m4 macros such as AC_INIT(). The
-dnl following line just initializes autoconf. Autoconf interprets the
-dnl single argument as the name of an arbitrary file, which it uses to
-dnl ensure that it is being run correctly from the directory which
-dnl contains the libtecla source code.
-
-AC_INIT(getline.c)
-
-dnl Here we set the major version number of the tecla library.
-dnl Incrementing this number implies that a change has been made to
-dnl the library's public interface, which makes it binary incompatible
-dnl with programs that were linked with previous shared versions of
-dnl the tecla library. Incompatible changes of this type should be
-dnl avoided at all costs, so it is hoped that the major version number
-dnl won't ever have to change. The major version number must be a
-dnl small integer number, preferably a single numeric digit.
-
-AC_SUBST(MAJOR_VER)
-MAJOR_VER="1"
-
-dnl Set the minor version number of the tecla library. This number
-dnl should be incremented by one whenever additional functionality,
-dnl such as new functions or modules, are added to the library. The
-dnl idea is that a program that was linked with a shared library of
-dnl the same major version number, but a lower minor version number,
-dnl will continue to function when the run-time loader links it
-dnl against the updated version. The minor version number must be a
-dnl small integer number, which should be reset to 0 whenever the
-dnl major version number is incremented.
-
-AC_SUBST(MINOR_VER)
-MINOR_VER="4"
-
-dnl Set the micro version number of the tecla library. This is
-dnl incremented whenever modifications to the library are made which
-dnl make no changes to the public interface, but which fix bugs and/or
-dnl improve the behind-the-scenes implementation. The micro version
-dnl number should be reset to 0 whenever the minor version number is
-dnl incremented. The micro version number must be a small integer
-dnl number.
-
-AC_SUBST(MICRO_VER)
-MICRO_VER="1"
-
-dnl The AC_PROG_CC line looks for a C compiler, and if gcc is chosen,
-dnl sets the $GCC shell variable to "yes". Make sure that CFLAGS is
-dnl set to something first, to prevent AC_PROG_CC from substituting -g
-dnl for the optimization level.
-
-CFLAGS="$CFLAGS"
-AC_PROG_CC
-
-dnl Apparently not all implementations of the 'make' command define
-dnl the MAKE variable. The following directive creates a variable
-dnl called SET_MAKE which when expanded in a makefile is either empty
-dnl if the local 'make' command was found to define the MAKE variable,
-dnl or contains an assignment which will give the MAKE variable the
-dnl value 'make'.
-
-AC_PROG_MAKE_SET
-
-dnl The following directive causes autoconf to see if symbolic links
-dnl are supported on the current filesystem. If so, it sets the
-dnl variable LN_S to "ln -s". Otherwise it sets LN_S to just "ln".
-dnl This allows us to create symbolic links where possible, but falls
-dnl back to creating hard links where symbolic links aren't available.
-
-AC_PROG_LN_S
-
-dnl The following macro searches for the best implementation of awk
-dnl on the host system, and records it in the AWK shell variable.
-
-AC_PROG_AWK
-
-dnl If ranlib is needed on the target system, the RANLIB make variable
-dnl is set to ranlib. Otherwise it is set to :, which is the do-nothing
-dnl command of the bourne shell.
-
-AC_PROG_RANLIB
-
-dnl The following directive tells autoconf to figure out the target
-dnl system type and assign a canonical name for this to the $target
-dnl shell variable. This is used below in the target-specific case
-dnl statement.
-
-AC_CANONICAL_SYSTEM
-
-dnl In early versions of Solaris, some libraries are in /usr/ccs/lib,
-dnl where gcc doesn't look. The tests below for the curses library
-dnl would thus fail without this directory being added to the search
-dnl path. We thus add it here before the tests. Note that in the
-dnl following, since [ and ] are m4 quotes, and m4 will remove the
-dnl outermost quotes when it processes this file, we have to double
-dnl them up here to get [0-6] to appear in the output configure
-dnl script.
-
-case $target in
-*-sun-solaris2.[[0-6]]|*-sun-solaris2.[[0-6]].*)
- LIBS="$LIBS -L/usr/ccs/lib"
- ;;
-esac
-
-dnl The following lines look for terminfo functions in the normal
-dnl curses library. If not found, they are searched for in the GNU
-dnl ncurses library. If the terminfo functions still aren't found,
-dnl then termcap functions are searched for in the curses library. If
-dnl either set of functions is found, the corresponding variable
-dnl USE_TERMINFO or USE_TERMCAP is arranged to be defined in CFLAGS,
-dnl via the exported DEFINES shell variable, and the library in which
-dnl they were found is appended to the LIBS shell variable.
-
-AC_CHECK_LIB(curses, tigetstr, [
- AC_DEFINE(USE_TERMINFO)
- LIBS="$LIBS -lcurses"
-], [AC_CHECK_LIB(ncurses, tigetstr, [
- AC_DEFINE(USE_TERMINFO)
- LIBS="$LIBS -lncurses"
-], [AC_CHECK_LIB(curses, tgetstr, [
- AC_DEFINE(USE_TERMCAP)
- LIBS="$LIBS -lcurses"
- AC_CHECK_HEADER(termcap.h, AC_DEFINE(HAVE_TERMCAP_H))
-])])])
-
-dnl Some systems don't have term.h, some systems squirrel it away
-dnl in an ncurses sub-directory of the system include directory.
-dnl If term.h exists in the normal location, arrange for HAVE_TERM_H
-dnl to be added to CFLAGS in the Makefile, by appending it to the
-dnl DEFINES shell variable. Otherwise, if it exists under an ncurses
-dnl sub-directory, arrange for HAVE_NCURSES_TERM_H to be set instead.
-dnl If it isn't found in either of these places, neither of these
-dnl variables is set, so term.h just doesn't get included.
-
-AC_CHECK_HEADER(term.h, AC_DEFINE(HAVE_TERM_H), [
- AC_CHECK_HEADER(ncurses/term.h, AC_DEFINE(HAVE_NCURSES_TERM_H))
-])
-
-dnl Do the same search for curses.h.
-
-AC_CHECK_HEADER(curses.h, AC_DEFINE(HAVE_CURSES_H), [
- AC_CHECK_HEADER(ncurses/curses.h, AC_DEFINE(HAVE_NCURSES_CURSES_H))
-])
-
-dnl The following variable lists the targets that will be created if
-dnl the user runs make without any arguments. Initially we assume
-dnl that we can create both the normal and the reentrant versions
-dnl of the library.
-
-AC_SUBST(TARGETS)
-TARGETS="normal reentrant"
-
-dnl Check for reentrant functions by attempting to compile and link a
-dnl temporary program which calls them, being sure to include the
-dnl appropriate headers and define _POSIX_C_SOURCE, just in case any
-dnl of the functions are defined as macros. In the following,
-dnl AC_CACHE_CHECK outputs the message "checking for reentrant
-dnl functions". If this check has been done before, it assigns the
-dnl cached yes/no value to tecla_cv_reentrant. Otherwise it uses
-dnl AC_TRY_LINK() to attempt to compile and link the specified dummy
-dnl program, and sets tecla_cv_reentrant to yes or no, depending on
-dnl whether this succeeds. Finally it caches the value of
-dnl tecla_cv_reentrant in the file config.cache, and writes "yes" or
-dnl "no" to the terminal.
-
-AC_CACHE_CHECK(for reentrant functions, tecla_cv_reentrant, [
- KEPT_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199506L"
- AC_TRY_LINK([
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#include <pwd.h>
- ], [
- (void) readdir_r(NULL, NULL, NULL);
- (void) getpwuid_r(geteuid(), NULL, NULL, 0, NULL);
- (void) getpwnam_r(NULL, NULL, NULL, 0, NULL);
- ], tecla_cv_reentrant=yes, tecla_cv_reentrant=no)
- CFLAGS="$KEPT_CFLAGS"
-])
-
-dnl If the necessary reentrant functions weren't found to be
-dnl available, default to only compiling the non-reentrant version of
-dnl the library.
-
-if test $tecla_cv_reentrant = no; then
- TARGETS="normal"
-fi
-
-dnl Check for the select system call with the normal arguments,
-dnl by attempting to compile and link a temporary program which
-dnl calls it, being sure to include the appropriate headers.
-dnl In the following, AC_CACHE_CHECK outputs the message
-dnl "checking for select system call". If this check has been done
-dnl before, it assigns the cached yes/no value to tecla_cv_select.
-dnl Otherwise it uses AC_TRY_LINK() to attempt to compile and link
-dnl the specified dummy program, and sets tecla_cv_select to yes
-dnl or no, depending on whether this succeeds. Finally it caches
-dnl the value of tecla_cv_select in the file config.cache, and
-dnl writes "yes" or "no" to the terminal.
-
-AC_CACHE_CHECK(for select system call, tecla_cv_select, [
- AC_TRY_LINK([
-#ifdef HAVE_SELECT_H
-#include <select.h>
-#endif
-#include <sys/time.h>
-#include <sys/types.h>
-#include <unistd.h>
- ], [
- fd_set fds;
- int nready;
- FD_ZERO(&fds);
- FD_SET(1, &fds);
- nready = select(2, &fds, &fds, &fds, NULL);
- ], tecla_cv_select=yes, tecla_cv_select=no)
-])
-
-dnl If the select function was available, arrange for HAVE_SELECT to
-dnl be defined by CFLAGS.
-
-if test $tecla_cv_select = yes; then
- AC_DEFINE(HAVE_SELECT)
-fi
-
-dnl Check if this system supports the system V pseudo terminal interface.
-
-AC_CACHE_CHECK(for SysV pseudo-terminals, tecla_cv_sysv_pty, [
- AC_TRY_LINK([
-#include <stdlib.h>
-#include <unistd.h>
-#include <stropts.h>
- ], [
- char *name = ptsname(0);
- int i1 = grantpt(0);
- int i2 = unlockpt(0);
- int i3 = ioctl(0, I_PUSH, "ptem");
- return 0;
- ], tecla_cv_sysv_pty=yes, tecla_cv_sysv_pty=no)
-])
-
-dnl If the system-V pseudo-terminal interface is available, arrange
-dnl for HAVE_SYSV_PTY to be defined by CFLAGS.
-
-if test $tecla_cv_sysv_pty = yes; then
- AC_DEFINE(HAVE_SYSV_PTY)
-fi
-
-dnl The following variable contains the extension to append to
-dnl "libtecla" and "libtecla_r" when creating shared libraries on the
-dnl target platform. This is system dependent and is ignored if
-dnl LINK_SHARED remains an empty string. On most platforms that
-dnl support shared libaries, this will be .so.$MAJOR_VER, where
-dnl MAJOR_VER is the major version number described above, which on
-dnl some systems, tells the run-time loader if the program being
-dnl loaded is binary compatible with a given version of the library
-dnl (see the discussion of MAJOR_VER near the top of this file).
-dnl The following empty default can be overriden on a system by system
-dnl basis later in this file.
-
-AC_SUBST(SHARED_EXT)
-SHARED_EXT=""
-
-dnl When a shared library is installed with the extension $SHARED_EXT,
-dnl you can optionally produce other copies of this library with
-dnl different extensions. This is done using symbolic or hard links,
-dnl depending on what is available on the current filesystem, and the
-dnl extensions to use for these links are listed in the following
-dnl variable, separated by spaces. The following empty default can be
-dnl overriden on a system by system basis later in this file.
-
-AC_SUBST(SHARED_ALT)
-SHARED_ALT=""
-
-dnl The following variable lists extra compilation flags needed to
-dnl create object files that can be included in shared libraries.
-dnl Normally one would include a flag to tell the C compiler to
-dnl compile position-independent code. This option commonly includes
-dnl the acronym 'pic'.
-
-AC_SUBST(SHARED_CFLAGS)
-SHARED_CFLAGS=""
-
-dnl On systems that support shared libraries, the following variable
-dnl provides the command needed to make a shared library. In this
-dnl variable, $$@ will be replaced with the name of the shared
-dnl library, $$(LIB_OBJECTS) will be replaced with a space separated
-dnl list of the object files that are to be included in the library,
-dnl and libtecla$$(SUFFIX) will be the name of the library being
-dnl built, minus the system-specific extension (eg. libtecla or
-dnl libtecla_r). If LINK_SHARED is left as an empty string, shared
-dnl library creation will not attempted. If your system supports
-dnl shared library creation, you should override the default value of
-dnl this variable in the target-specific case statement later in this
-dnl file.
-
-AC_SUBST(LINK_SHARED)
-LINK_SHARED=""
-
-dnl The following bourne shell case statement is where system
-dnl dependencies can be added. In particular, if your system supports
-dnl shared library creation, the following switch is the place to
-dnl configure it. To do so you will first need to find out what target
-dnl type was just assigned by the AC_CANONICAL_SYSTEM macro executed
-dnl previously. The target type of your current system can be
-dnl determined by cd'ing to the top level directory of the tecla
-dnl distribution, and typing the command "sh config.guess". This will
-dnl report what autoconf thinks the system type is. Note that this
-dnl will be very specific, so if you know that the configuration
-dnl parameters that you are about to provide apply to different
-dnl versions of the current system type, you can express this in the
-dnl case statement by using a wild-card in place of the version
-dnl number, or by using an | alternation to list one or more version
-dnl names. Beware that autoconf uses [] as quote characters, so if you
-dnl want to use a regexp character range like [a-z], you should write
-dnl this as [[a-z]].
-
-case $target in
-*solaris*)
- AC_DEFINE(__EXTENSIONS__)
- SHARED_EXT=".so.${MAJOR_VER}"
- SHARED_ALT=".so"
- LINK_SHARED='ld -G -M $$(srcdir)/libtecla.map -o $$@ -h $$(@F) -z defs -i $$(LIB_OBJECTS) $$(LIBS) -lc'
- SHARED_CFLAGS="-Kpic"
- case $CC in
- */cc|cc) SHARED_CFLAGS="$SHARED_CFLAGS -xstrconst" ;;
- gcc) CFLAGS="-I/usr/include $CFLAGS" ;;
- esac
- case $target in
- *sparc*) SHARED_CFLAGS="$SHARED_CFLAGS -xregs=no%appl"
- esac
- ;;
-*linux*)
- SHARED_EXT=".so.${MAJOR_VER}.${MINOR_VER}.${MICRO_VER}"
- SHARED_ALT=".so .so.${MAJOR_VER}"
-
-dnl See if the installed version of Gnu ld accepts version scripts.
-
- AC_CACHE_CHECK([for --version-script in GNU ld], tecla_cv_gnu_ld_script, [
- if (echo 'void dummy(void) {return;}' > dummy.c; $CC -c -fpic dummy.c; \
- ld -o dummy.so dummy.o -shared --version-script=$srcdir/libtecla.map) 1>&2 2>/dev/null; then
- tecla_cv_gnu_ld_script=yes
- else
- tecla_cv_gnu_ld_script=no
- fi
- rm -f dummy.c dummy.o dummy.so
- ])
- if test $tecla_cv_gnu_ld_script = yes; then
- VERSION_OPT='--version-script=$$(srcdir)/libtecla.map'
- else
- VERSION_OPT=''
- fi
-
- LINK_SHARED='ld -o $$@ -soname libtecla$$(SUFFIX).so.'${MAJOR_VER}' -shared '$VERSION_OPT' $$(LIB_OBJECTS) $$(LIBS) -lc'
- SHARED_CFLAGS="-fpic"
- ;;
-*hpux*)
- SHARED_EXT=".${MAJOR_VER}"
- SHARED_ALT=".sl"
- LINK_SHARED='ld -b +h $$(@F) +k +vshlibunsats -o $$@ -c libtecla.map.opt $$(LIB_OBJECTS) $$(LIBS) -lc'
- SHARED_CFLAGS="+z"
- ;;
-*dec-osf*)
- AC_DEFINE(_OSF_SOURCE)
- ;;
-esac
-
-dnl The following statement checks to see if the GNU C compiler has
-dnl been chosen instead of the normal compiler of the host operating
-dnl system. If it has, and shared library creation has been
-dnl configured, it replaces the shared-library-specific C compilation
-dnl flags with those supported by gcc. Also append the gcc run-time
-dnl library to the shared library link line.
-
-if test "$GCC"_ = "yes"_ && test "$LINK_SHARED"_ != "_" ; then
- SHARED_CFLAGS="-fpic"
- case $target_os in
- sparc*solaris*) SHARED_CFLAGS="$SHARED_CFLAGS -mno-app-regs"
- esac
- LINK_SHARED="$LINK_SHARED `gcc -print-libgcc-file-name`"
-fi
-
-dnl The following variable will list which types of libraries,
-dnl "static", and possibly "shared", are to be created and installed.
-
-AC_SUBST(TARGET_LIBS)
-
-dnl If shared library creation has been configured, add shared
-dnl libraries to the list of libraries to be built.
-
-if test "$LINK_SHARED"_ != "_"; then
- TARGET_LIBS="static shared"
-else
- TARGET_LIBS="static"
- LINK_SHARED="@:"
-fi
-
-dnl The following directive must always be the last line of any
-dnl autoconf script. It causes autoconf to create the configure
-dnl script, which for each argument of AC_OUTPUT, will look for a
-dnl filename formed by appending ".in" to the argument, preprocess
-dnl that file, replacing @VAR@ directives with the corresponding value
-dnl of the specified shell variable VAR, as set above in this file,
-dnl and write the resulting output to the filename given in the
-dnl argument. Note that only shell variables that were exported above
-dnl with the AC_SUBST() directive will be substituted in @VAR@
-dnl directives (some macros like AC_PROG_CC also call AC_SUBST for you
-dnl for the variables that they output).
-
-AC_OUTPUT(Makefile)
diff --git a/libtecla-1.4.1/cplfile.c b/libtecla-1.4.1/cplfile.c
deleted file mode 100644
index 73eef1d..0000000
--- a/libtecla-1.4.1/cplfile.c
+++ /dev/null
@@ -1,874 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * Standard includes.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <errno.h>
-#include <string.h>
-#include <ctype.h>
-
-/*
- * Local includes.
- */
-#include "libtecla.h"
-#include "direader.h"
-#include "homedir.h"
-#include "pathutil.h"
-#include "cplfile.h"
-
-/*
- * Set the maximum length allowed for usernames.
- * names.
- */
-#define USR_LEN 100
-
-/*
- * Set the maximum length allowed for environment variable names.
- */
-#define ENV_LEN 100
-
-/*
- * Set the max length of the error-reporting string. There is no point
- * in this being longer than the width of a typical terminal window.
- * In composing error messages, I have assumed that this number is
- * at least 80, so you don't decrease it below this number.
- */
-#define ERRLEN 200
-
-/*
- * The resources needed to complete a filename are maintained in objects
- * of the following type.
- */
-struct CompleteFile {
- DirReader *dr; /* A directory reader */
- HomeDir *home; /* A home directory expander */
- PathName *path; /* The buffer in which to accumulate the path */
- PathName *buff; /* A pathname work buffer */
- char usrnam[USR_LEN+1]; /* The buffer used when reading the names of */
- /* users. */
- char envnam[ENV_LEN+1]; /* The buffer used when reading the names of */
- /* environment variables. */
- char errmsg[ERRLEN+1]; /* The error-report buffer */
-};
-
-static int cf_expand_home_dir(CompleteFile *cf, const char *user);
-static int cf_complete_username(CompleteFile *cf, WordCompletion *cpl,
- const char *prefix, const char *line,
- int word_start, int word_end, int escaped);
-static HOME_DIR_FN(cf_homedir_callback);
-static int cf_complete_entry(CompleteFile *cf, WordCompletion *cpl,
- const char *line, int word_start, int word_end,
- int escaped, CplCheckFn *check_fn,
- void *check_data);
-static char *cf_read_name(CompleteFile *cf, const char *type,
- const char *string, int slen,
- char *nambuf, int nammax);
-static int cf_prepare_suffix(CompleteFile *cf, const char *suffix,
- int add_escapes);
-
-/*
- * A stack based object of the following type is used to pass data to the
- * cf_homedir_callback() function.
- */
-typedef struct {
- CompleteFile *cf; /* The file-completion resource object */
- WordCompletion *cpl; /* The string-completion rsource object */
- const char *prefix; /* The username prefix to be completed */
- const char *line; /* The line from which the prefix was extracted */
- int word_start; /* The index in line[] of the start of the username */
- int word_end; /* The index in line[] following the end of the prefix */
- int escaped; /* If true, add escapes to the completion suffixes */
-} CfHomeArgs;
-
-/*.......................................................................
- * Create a new file-completion object.
- *
- * Output:
- * return CompleteFile * The new object, or NULL on error.
- */
-CompleteFile *_new_CompleteFile(void)
-{
- CompleteFile *cf; /* The object to be returned */
-/*
- * Allocate the container.
- */
- cf = (CompleteFile *) malloc(sizeof(CompleteFile));
- if(!cf) {
- fprintf(stderr, "_new_CompleteFile: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to _del_CompleteFile().
- */
- cf->dr = NULL;
- cf->home = NULL;
- cf->path = NULL;
- cf->buff = NULL;
- cf->usrnam[0] = '\0';
- cf->envnam[0] = '\0';
- cf->errmsg[0] = '\0';
-/*
- * Create the object that is used for reading directories.
- */
- cf->dr = _new_DirReader();
- if(!cf->dr)
- return _del_CompleteFile(cf);
-/*
- * Create the object that is used to lookup home directories.
- */
- cf->home = _new_HomeDir();
- if(!cf->home)
- return _del_CompleteFile(cf);
-/*
- * Create the buffer in which the completed pathname is accumulated.
- */
- cf->path = _new_PathName();
- if(!cf->path)
- return _del_CompleteFile(cf);
-/*
- * Create a pathname work buffer.
- */
- cf->buff = _new_PathName();
- if(!cf->buff)
- return _del_CompleteFile(cf);
- return cf;
-}
-
-/*.......................................................................
- * Delete a file-completion object.
- *
- * Input:
- * cf CompleteFile * The object to be deleted.
- * Output:
- * return CompleteFile * The deleted object (always NULL).
- */
-CompleteFile *_del_CompleteFile(CompleteFile *cf)
-{
- if(cf) {
- cf->dr = _del_DirReader(cf->dr);
- cf->home = _del_HomeDir(cf->home);
- cf->path = _del_PathName(cf->path);
- cf->buff = _del_PathName(cf->buff);
- free(cf);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Look up the possible completions of the incomplete filename that
- * lies between specified indexes of a given command-line string.
- *
- * Input:
- * cpl WordCompletion * The object in which to record the completions.
- * cf CompleteFile * The filename-completion resource object.
- * line const char * The string containing the incomplete filename.
- * word_start int The index of the first character in line[]
- * of the incomplete filename.
- * word_end int The index of the character in line[] that
- * follows the last character of the incomplete
- * filename.
- * escaped int If true, backslashes in line[] are
- * interpreted as escaping the characters
- * that follow them, and any spaces, tabs,
- * backslashes, or wildcard characters in the
- * returned suffixes will be similarly escaped.
- * If false, backslashes will be interpreted as
- * literal parts of the file name, and no
- * backslashes will be added to the returned
- * suffixes.
- * check_fn CplCheckFn * If not zero, this argument specifies a
- * function to call to ask whether a given
- * file should be included in the list
- * of completions.
- * check_data void * Anonymous data to be passed to check_fn().
- * Output:
- * return int 0 - OK.
- * 1 - Error. A description of the error can be
- * acquired by calling _cf_last_error(cf).
- */
-int _cf_complete_file(WordCompletion *cpl, CompleteFile *cf,
- const char *line, int word_start, int word_end,
- int escaped, CplCheckFn *check_fn, void *check_data)
-{
- const char *lptr; /* A pointer into line[] */
- int nleft; /* The number of characters still to be processed */
- /* in line[]. */
-/*
- * Check the arguments.
- */
- if(!cpl || !cf || !line || word_end < word_start) {
- if(cf)
- strcpy(cf->errmsg, "_cf_complete_file: Invalid arguments");
- return 1;
- };
-/*
- * Clear the buffer in which the filename will be constructed.
- */
- _pn_clear_path(cf->path);
-/*
- * How many characters are to be processed?
- */
- nleft = word_end - word_start;
-/*
- * Get a pointer to the start of the incomplete filename.
- */
- lptr = line + word_start;
-/*
- * If the first character is a tilde, then perform home-directory
- * interpolation.
- */
- if(nleft > 0 && *lptr == '~') {
- int slen;
- if(!cf_read_name(cf, "User", ++lptr, --nleft, cf->usrnam, USR_LEN))
- return 1;
-/*
- * Advance over the username in the input line.
- */
- slen = strlen(cf->usrnam);
- lptr += slen;
- nleft -= slen;
-/*
- * If we haven't hit the end of the input string then we have a complete
- * username to translate to the corresponding home directory.
- */
- if(nleft > 0) {
- if(cf_expand_home_dir(cf, cf->usrnam))
- return 1;
-/*
- * ~user and ~ are usually followed by a directory separator to
- * separate them from the file contained in the home directory.
- * If the home directory is the root directory, then we don't want
- * to follow the home directory by a directory separator, so we should
- * skip over it so that it doesn't get copied into the filename.
- */
- if(strcmp(cf->path->name, FS_ROOT_DIR) == 0 &&
- strncmp(lptr, FS_DIR_SEP, FS_DIR_SEP_LEN) == 0) {
- lptr += FS_DIR_SEP_LEN;
- nleft -= FS_DIR_SEP_LEN;
- };
-/*
- * If we have reached the end of the input string, then the username
- * may be incomplete, and we should attempt to complete it.
- */
- } else {
-/*
- * Look up the possible completions of the username.
- */
- return cf_complete_username(cf, cpl, cf->usrnam, line, word_start+1,
- word_end, escaped);
- };
- };
-/*
- * Copy the rest of the path, stopping to expand $envvar expressions
- * where encountered.
- */
- while(nleft > 0) {
- int seglen; /* The length of the next segment to be copied */
-/*
- * Find the length of the next segment to be copied, stopping if an
- * unescaped '$' is seen, or the end of the path is reached.
- */
- for(seglen=0; seglen < nleft; seglen++) {
- int c = lptr[seglen];
- if(escaped && c == '\\')
- seglen++;
- else if(c == '$')
- break;
-/*
- * We will be completing the last component of the file name,
- * so whenever a directory separator is seen, assume that it
- * might be the start of the last component, and mark the character
- * that follows it as the start of the name that is to be completed.
- */
- if(nleft >= FS_DIR_SEP_LEN &&
- strncmp(lptr + seglen, FS_DIR_SEP, FS_DIR_SEP_LEN)==0) {
- word_start = (lptr + seglen) - line + FS_DIR_SEP_LEN;
- };
- };
-/*
- * We have reached either the end of the filename or the start of
- * $environment_variable expression. Record the newly checked
- * segment of the filename in the output filename, removing
- * backslash-escapes where needed.
- */
- if(_pn_append_to_path(cf->path, lptr, seglen, escaped) == NULL) {
- strcpy(cf->errmsg, "Insufficient memory to complete filename");
- return 1;
- };
- lptr += seglen;
- nleft -= seglen;
-/*
- * If the above loop finished before we hit the end of the filename,
- * then this was because an unescaped $ was seen. In this case, interpolate
- * the value of the environment variable that follows it into the output
- * filename.
- */
- if(nleft > 0) {
- char *value; /* The value of the environment variable */
- int vlen; /* The length of the value string */
- int nlen; /* The length of the environment variable name */
-/*
- * Read the name of the environment variable.
- */
- if(!cf_read_name(cf, "Environment", ++lptr, --nleft, cf->envnam, ENV_LEN))
- return 1;
-/*
- * Advance over the environment variable name in the input line.
- */
- nlen = strlen(cf->envnam);
- lptr += nlen;
- nleft -= nlen;
-/*
- * Get the value of the environment variable.
- */
- value = getenv(cf->envnam);
- if(!value) {
- const char *fmt = "Unknown environment variable: %.*s";
- sprintf(cf->errmsg, fmt, ERRLEN - strlen(fmt), cf->envnam);
- return 1;
- };
- vlen = strlen(value);
-/*
- * If we are at the start of the filename and the first character of the
- * environment variable value is a '~', attempt home-directory
- * interpolation.
- */
- if(cf->path->name[0] == '\0' && value[0] == '~') {
- if(!cf_read_name(cf, "User", value+1, vlen-1, cf->usrnam, USR_LEN) ||
- cf_expand_home_dir(cf, cf->usrnam))
- return 1;
-/*
- * If the home directory is the root directory, and the ~usrname expression
- * was followed by a directory separator, prevent the directory separator
- * from being appended to the root directory by skipping it in the
- * input line.
- */
- if(strcmp(cf->path->name, FS_ROOT_DIR) == 0 &&
- strncmp(lptr, FS_DIR_SEP, FS_DIR_SEP_LEN) == 0) {
- lptr += FS_DIR_SEP_LEN;
- nleft -= FS_DIR_SEP_LEN;
- };
- } else {
-/*
- * Append the value of the environment variable to the output path.
- */
- if(_pn_append_to_path(cf->path, value, strlen(value), escaped)==NULL) {
- strcpy(cf->errmsg, "Insufficient memory to complete filename");
- return 1;
- };
-/*
- * Prevent extra directory separators from being added.
- */
- if(nleft >= FS_DIR_SEP_LEN &&
- strcmp(cf->path->name, FS_ROOT_DIR) == 0 &&
- strncmp(lptr, FS_DIR_SEP, FS_DIR_SEP_LEN) == 0) {
- lptr += FS_DIR_SEP_LEN;
- nleft -= FS_DIR_SEP_LEN;
- } else if(vlen > FS_DIR_SEP_LEN &&
- strcmp(value + vlen - FS_DIR_SEP_LEN, FS_DIR_SEP)==0) {
- cf->path->name[vlen-FS_DIR_SEP_LEN] = '\0';
- };
- };
-/*
- * If adding the environment variable didn't form a valid directory,
- * we can't complete the line, since there is no way to separate append
- * a partial filename to an environment variable reference without
- * that appended part of the name being seen later as part of the
- * environment variable name. Thus if the currently constructed path
- * isn't a directory, quite now with no completions having been
- * registered.
- */
- if(!_pu_path_is_dir(cf->path->name))
- return 0;
-/*
- * For the reasons given above, if we have reached the end of the filename
- * with the expansion of an environment variable, the only allowed
- * completion involves the addition of a directory separator.
- */
- if(nleft == 0) {
- if(cpl_add_completion(cpl, line, lptr-line, word_end, FS_DIR_SEP,
- "", "")) {
- strncpy(cf->errmsg, cpl_last_error(cpl), ERRLEN);
- cf->errmsg[ERRLEN] = '\0';
- return 1;
- };
- return 0;
- };
- };
- };
-/*
- * Complete the filename if possible.
- */
- return cf_complete_entry(cf, cpl, line, word_start, word_end, escaped,
- check_fn, check_data);
-}
-
-/*.......................................................................
- * Return a description of the last path-completion error that occurred.
- *
- * Input:
- * cf CompleteFile * The path-completion resource object.
- * Output:
- * return const char * The description of the last error.
- */
-const char *_cf_last_error(CompleteFile *cf)
-{
- return cf ? cf->errmsg : "NULL CompleteFile argument";
-}
-
-/*.......................................................................
- * Lookup the home directory of the specified user, or the current user
- * if no name is specified, appending it to output pathname.
- *
- * Input:
- * cf CompleteFile * The pathname completion resource object.
- * user const char * The username to lookup, or "" to lookup the
- * current user.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int cf_expand_home_dir(CompleteFile *cf, const char *user)
-{
-/*
- * Attempt to lookup the home directory.
- */
- const char *home_dir = _hd_lookup_home_dir(cf->home, user);
-/*
- * Failed?
- */
- if(!home_dir) {
- strncpy(cf->errmsg, _hd_last_home_dir_error(cf->home), ERRLEN);
- cf->errmsg[ERRLEN] = '\0';
- return 1;
- };
-/*
- * Append the home directory to the pathname string.
- */
- if(_pn_append_to_path(cf->path, home_dir, -1, 0) == NULL) {
- strcpy(cf->errmsg, "Insufficient memory for home directory expansion");
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Lookup and report all completions of a given username prefix.
- *
- * Input:
- * cf CompleteFile * The filename-completion resource object.
- * cpl WordCompletion * The object in which to record the completions.
- * prefix const char * The prefix of the usernames to lookup.
- * line const char * The command-line in which the username appears.
- * word_start int The index within line[] of the start of the
- * username that is being completed.
- * word_end int The index within line[] of the character which
- * follows the incomplete username.
- * escaped int True if the completions need to have special
- * characters escaped.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int cf_complete_username(CompleteFile *cf, WordCompletion *cpl,
- const char *prefix, const char *line,
- int word_start, int word_end, int escaped)
-{
-/*
- * Set up a container of anonymous arguments to be sent to the
- * username-lookup iterator.
- */
- CfHomeArgs args;
- args.cf = cf;
- args.cpl = cpl;
- args.prefix = prefix;
- args.line = line;
- args.word_start = word_start;
- args.word_end = word_end;
- args.escaped = escaped;
-/*
- * Iterate through the list of users, recording those which start
- * with the specified prefix.
- */
- if(_hd_scan_user_home_dirs(cf->home, &args, cf_homedir_callback)) {
- strncpy(cf->errmsg, _hd_last_home_dir_error(cf->home), ERRLEN);
- cf->errmsg[ERRLEN] = '\0';
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * The user/home-directory scanner callback function (see homedir.h)
- * used by cf_complete_username().
- */
-static HOME_DIR_FN(cf_homedir_callback)
-{
-/*
- * Get the file-completion resources from the anonymous data argument.
- */
- CfHomeArgs *args = (CfHomeArgs *) data;
- WordCompletion *cpl = args->cpl;
- CompleteFile *cf = args->cf;
-/*
- * Get the length of the username prefix.
- */
- int prefix_len = strlen(args->prefix);
-/*
- * Get the length of the latest user name that is to be compared to
- * the prefix.
- */
- int name_len = strlen(usrnam);
-/*
- * See if the latest username starts with the prefix that we are
- * searching for, and record its suffix in the array of matches if so.
- */
- if(name_len >= prefix_len && strncmp(args->prefix, usrnam, prefix_len)==0) {
-/*
- * Copy the username into the pathname work buffer, adding backslash
- * escapes where needed.
- */
- if(cf_prepare_suffix(cf, usrnam+prefix_len, args->escaped)) {
- strncpy(errmsg, cf->errmsg, maxerr);
- errmsg[maxerr] = '\0';
- return 1;
- };
-/*
- * Report the completion suffix that was copied above.
- */
- if(cpl_add_completion(cpl, args->line, args->word_start, args->word_end,
- cf->buff->name, FS_DIR_SEP, FS_DIR_SEP)) {
- strncpy(errmsg, cpl_last_error(cpl), maxerr);
- errmsg[maxerr] = '\0';
- return 1;
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Report possible completions of the filename in cf->path->name[].
- *
- * Input:
- * cf CompleteFile * The file-completion resource object.
- * cpl WordCompletion * The object in which to record the completions.
- * line const char * The input line, as received by the callback
- * function.
- * word_start int The index within line[] of the start of the
- * last component of the filename that is being
- * completed.
- * word_end int The index within line[] of the character which
- * follows the incomplete filename.
- * escaped int If true, escape special characters in the
- * completion suffixes.
- * check_fn CplCheckFn * If not zero, this argument specifies a
- * function to call to ask whether a given
- * file should be included in the list
- * of completions.
- * check_data void * Anonymous data to be passed to check_fn().
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int cf_complete_entry(CompleteFile *cf, WordCompletion *cpl,
- const char *line, int word_start, int word_end,
- int escaped, CplCheckFn *check_fn,
- void *check_data)
-{
- const char *dirpath; /* The name of the parent directory */
- int start; /* The index of the start of the last filename */
- /* component in the transcribed filename. */
- const char *prefix; /* The filename prefix to be completed */
- int prefix_len; /* The length of the filename prefix */
- const char *file_name; /* The lastest filename being compared */
- int waserr = 0; /* True after errors */
- int terminated=0; /* True if the directory part had to be terminated */
-/*
- * Get the pathname string and its current length.
- */
- char *pathname = cf->path->name;
- int pathlen = strlen(pathname);
-/*
- * Locate the start of the final component of the pathname.
- */
- for(start=pathlen - 1; start >= 0 &&
- strncmp(pathname + start, FS_DIR_SEP, FS_DIR_SEP_LEN) != 0; start--)
- ;
-/*
- * Is the parent directory the root directory?
- */
- if(start==0 ||
- (start < 0 && strncmp(pathname, FS_ROOT_DIR, FS_ROOT_DIR_LEN) == 0)) {
- dirpath = FS_ROOT_DIR;
- start += FS_ROOT_DIR_LEN;
-/*
- * If we found a directory separator then the part which precedes the
- * last component is the name of the directory to be opened.
- */
- } else if(start > 0) {
-/*
- * The _dr_open_dir() function requires the directory name to be '\0'
- * terminated, so temporarily do this by overwriting the first character
- * of the directory separator.
- */
- pathname[start] = '\0';
- dirpath = pathname;
- terminated = 1;
-/*
- * We reached the start of the pathname before finding a directory
- * separator, so arrange to open the current working directory.
- */
- } else {
- start = 0;
- dirpath = FS_PWD;
- };
-/*
- * Attempt to open the directory.
- */
- if(_dr_open_dir(cf->dr, dirpath, NULL)) {
- const char *fmt = "Can't open directory: %.*s";
- sprintf(cf->errmsg, fmt, ERRLEN - strlen(fmt), dirpath);
- return 1;
- };
-/*
- * If removed above, restore the directory separator and skip over it
- * to the start of the filename.
- */
- if(terminated) {
- memcpy(pathname + start, FS_DIR_SEP, FS_DIR_SEP_LEN);
- start += FS_DIR_SEP_LEN;
- };
-/*
- * Get the filename prefix and its length.
- */
- prefix = pathname + start;
- prefix_len = strlen(prefix);
-/*
- * Traverse the directory, looking for files who's prefixes match the
- * last component of the pathname.
- */
- while((file_name = _dr_next_file(cf->dr)) != NULL && !waserr) {
- int name_len = strlen(file_name);
-/*
- * Is the latest filename a possible completion of the filename prefix?
- */
- if(name_len >= prefix_len && strncmp(prefix, file_name, prefix_len)==0) {
-/*
- * When listing all files in a directory, don't list files that start
- * with '.'. This is how hidden files are denoted in UNIX.
- */
- if(prefix_len > 0 || file_name[0] != '.') {
-/*
- * Copy the completion suffix into the work pathname cf->buff->name,
- * adding backslash escapes if needed.
- */
- if(cf_prepare_suffix(cf, file_name + prefix_len, escaped)) {
- waserr = 1;
- } else {
-/*
- * We want directories to be displayed with directory suffixes,
- * and other fully completed filenames to be followed by spaces.
- * To check the type of the file, append the current suffix
- * to the path being completed, check the filetype, then restore
- * the path to its original form.
- */
- const char *cont_suffix = ""; /* The suffix to add if fully */
- /* completed. */
- const char *type_suffix = ""; /* The suffix to add when listing */
- if(_pn_append_to_path(cf->path, file_name + prefix_len,
- -1, escaped) == NULL) {
- strcpy(cf->errmsg, "Insufficient memory to complete filename.");
- return 1;
- };
-/*
- * Specify suffixes according to the file type.
- */
- if(_pu_path_is_dir(cf->path->name)) {
- cont_suffix = FS_DIR_SEP;
- type_suffix = FS_DIR_SEP;
- } else if(!check_fn || check_fn(check_data, cf->path->name)) {
- cont_suffix = " ";
- } else {
- cf->path->name[pathlen] = '\0';
- continue;
- };
-/*
- * Remove the temporarily added suffix.
- */
- cf->path->name[pathlen] = '\0';
-/*
- * Record the latest completion.
- */
- if(cpl_add_completion(cpl, line, word_start, word_end, cf->buff->name,
- type_suffix, cont_suffix))
- waserr = 1;
- };
- };
- };
- };
-/*
- * Close the directory.
- */
- _dr_close_dir(cf->dr);
- return waserr;
-}
-
-/*.......................................................................
- * Read a username or environment variable name, stopping when a directory
- * separator is seen, when the end of the string is reached, or the
- * output buffer overflows.
- *
- * Input:
- * cf CompleteFile * The file-completion resource object.
- * type char * The capitalized name of the type of name being read.
- * string char * The string who's prefix contains the name.
- * slen int The number of characters in string[].
- * nambuf char * The output name buffer.
- * nammax int The longest string that will fit in nambuf[], excluding
- * the '\0' terminator.
- * Output:
- * return char * A pointer to nambuf on success. On error NULL is
- * returned and a description of the error is recorded
- * in cf->errmsg[].
- */
-static char *cf_read_name(CompleteFile *cf, const char *type,
- const char *string, int slen,
- char *nambuf, int nammax)
-{
- int namlen; /* The number of characters in nambuf[] */
- const char *sptr; /* A pointer into string[] */
-/*
- * Work out the max number of characters that should be copied.
- */
- int nmax = nammax < slen ? nammax : slen;
-/*
- * Get the environment variable name that follows the dollar.
- */
- for(sptr=string,namlen=0;
- namlen < nmax && (slen-namlen < FS_DIR_SEP_LEN ||
- strncmp(sptr, FS_DIR_SEP, FS_DIR_SEP_LEN) != 0);
- namlen++) {
- nambuf[namlen] = *sptr++;
- };
-/*
- * Did the name overflow the buffer?
- */
- if(namlen >= nammax) {
- const char *fmt = "%.*s name too long";
- sprintf(cf->errmsg, fmt, ERRLEN - strlen(fmt), type);
- return NULL;
- };
-/*
- * Terminate the string.
- */
- nambuf[namlen] = '\0';
- return nambuf;
-}
-
-/*.......................................................................
- * Using the work buffer cf->buff, make a suitably escaped copy of a
- * given completion suffix, ready to be passed to cpl_add_completion().
- *
- * Input:
- * cf CompleteFile * The file-completion resource object.
- * suffix char * The suffix to be copied.
- * add_escapes int If true, escape special characters.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int cf_prepare_suffix(CompleteFile *cf, const char *suffix,
- int add_escapes)
-{
- const char *sptr; /* A pointer into suffix[] */
- int nbsl; /* The number of backslashes to add to the suffix */
- int i;
-/*
- * How long is the suffix?
- */
- int suffix_len = strlen(suffix);
-/*
- * Clear the work buffer.
- */
- _pn_clear_path(cf->buff);
-/*
- * Count the number of backslashes that will have to be added to
- * escape spaces, tabs, backslashes and wildcard characters.
- */
- nbsl = 0;
- if(add_escapes) {
- for(sptr = suffix; *sptr; sptr++) {
- switch(*sptr) {
- case ' ': case '\t': case '\\': case '*': case '?': case '[':
- nbsl++;
- break;
- };
- };
- };
-/*
- * Arrange for the output path buffer to have sufficient room for the
- * both the suffix and any backslashes that have to be inserted.
- */
- if(_pn_resize_path(cf->buff, suffix_len + nbsl) == NULL) {
- strcpy(cf->errmsg, "Insufficient memory to complete filename");
- return 1;
- };
-/*
- * If the suffix doesn't need any escapes, copy it directly into the
- * work buffer.
- */
- if(nbsl==0) {
- strcpy(cf->buff->name, suffix);
- } else {
-/*
- * Make a copy with special characters escaped?
- */
- if(nbsl > 0) {
- const char *src = suffix;
- char *dst = cf->buff->name;
- for(i=0; i<suffix_len; i++) {
- switch(*src) {
- case ' ': case '\t': case '\\': case '*': case '?': case '[':
- *dst++ = '\\';
- };
- *dst++ = *src++;
- };
- *dst = '\0';
- };
- };
- return 0;
-}
diff --git a/libtecla-1.4.1/cplfile.h b/libtecla-1.4.1/cplfile.h
deleted file mode 100644
index 31683ba..0000000
--- a/libtecla-1.4.1/cplfile.h
+++ /dev/null
@@ -1,96 +0,0 @@
-#ifndef cplfile_h
-#define cplfile_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-typedef struct CompleteFile CompleteFile;
-
-/*
- * Create a file-completion resource object.
- */
-CompleteFile *_new_CompleteFile(void);
-/*
- * Delete a file-completion resource object.
- */
-CompleteFile *_del_CompleteFile(CompleteFile *cf);
-
-/*.......................................................................
- * Complete the string between path[0] and path[len-1] as a pathname,
- * leaving the last component uncompleted if it is potentially ambiguous,
- * and returning an array of possible completions. Note that the returned
- * container belongs to the 'cf' object and its contents will change on
- * subsequent calls to this function.
- *
- * Input:
- * cpl WordCompletion * The object in which to record the completions.
- * cf CompleteFile * The filename-completion resource object.
- * line const char * The string containing the incomplete filename.
- * word_start int The index of the first character in line[]
- * of the incomplete filename.
- * word_end int The index of the character in line[] that
- * follows the last character of the incomplete
- * filename.
- * escaped int If true, backslashes in path[] are
- * interpreted as escaping the characters
- * that follow them, and any spaces, tabs,
- * backslashes, or wildcard characters in the
- * returned suffixes will be similarly be escaped.
- * If false, backslashes will be interpreted as
- * literal parts of the file name, and no
- * backslashes will be added to the returned
- * suffixes.
- * check_fn CplCheckFn * If not zero, this argument specifies a
- * function to call to ask whether a given
- * file should be included in the list
- * of completions.
- * check_data void * Anonymous data to be passed to check_fn().
- * Output:
- * return int 0 - OK.
- * 1 - Error. A description of the error can be
- * acquired by calling cf_last_error(cf).
- */
-int _cf_complete_file(WordCompletion *cpl, CompleteFile *cf,
- const char *line, int word_start, int word_end,
- int escaped, CplCheckFn *check_fn, void *check_data);
-
-/*.......................................................................
- * Return a description of the error that occurred on the last call to
- * cf_complete_file().
- *
- * Input:
- * cf CompleteFile * The path-completion resource object.
- * Output:
- * return char * The description of the last error.
- */
-const char *_cf_last_error(CompleteFile *cf);
-
-#endif
diff --git a/libtecla-1.4.1/cplmatch.c b/libtecla-1.4.1/cplmatch.c
deleted file mode 100644
index 111f5bd..0000000
--- a/libtecla-1.4.1/cplmatch.c
+++ /dev/null
@@ -1,927 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * Standard includes.
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-/*
- * Local includes.
- */
-#include "libtecla.h"
-#include "stringrp.h"
-#include "pathutil.h"
-#include "cplfile.h"
-
-/*
- * Specify the number of strings to allocate when the string free-list
- * is exhausted. This also sets the number of elements to expand the
- * matches[] array by whenever it is found to be too small.
- */
-#define STR_BLK_FACT 100
-
-/*
- * Set the max length of the error-reporting string. There is no point
- * in this being longer than the width of a typical terminal window.
- * In composing error messages, I have assumed that this number is
- * at least 80, so don't decrease it below 80.
- */
-#define ERRLEN 200
-
-/*
- * Completion matches are recorded in containers of the following
- * type.
- */
-struct WordCompletion {
- StringGroup *sg; /* Memory for a group of strings */
- int matches_dim; /* The allocated size of result.matches[] */
- char errmsg[ERRLEN+1]; /* The error-reporting buffer */
- CplMatches result; /* Completions to be returned to the caller */
- CompleteFile *cf; /* The resources used for filename completion */
-};
-
-static void cpl_sort_matches(WordCompletion *cpl);
-static void cpl_zap_duplicates(WordCompletion *cpl);
-static void cpl_clear_completions(WordCompletion *cpl);
-static int cpl_cmp_matches(const void *v1, const void *v2);
-static int cpl_cmp_suffixes(const void *v1, const void *v2);
-
-/*
- * The new_CplFileConf() constructor sets the integer first member of
- * the returned object to the following magic number. On seeing this,
- * cpl_file_completions() knows when it is passed a valid CplFileConf
- * object.
- */
-#define CFC_ID_CODE 4568
-
-/*
- * A pointer to a structure of the following type can be passed to
- * the builtin file-completion callback function to modify its behavior.
- */
-struct CplFileConf {
- int id; /* new_CplFileConf() sets this to CFC_ID_CODE */
- int escaped; /* If none-zero, backslashes in the input line are */
- /* interpreted as escaping special characters and */
- /* spaces, and any special characters and spaces in */
- /* the listed completions will also be escaped with */
- /* added backslashes. This is the default behaviour. */
- /* If zero, backslashes are interpreted as being */
- /* literal parts of the filename, and none are added */
- /* to the completion suffixes. */
- int file_start; /* The index in the input line of the first character */
- /* of the filename. If you specify -1 here, */
- /* cpl_file_completions() identifies the */
- /* the start of the filename by looking backwards for */
- /* an unescaped space, or the beginning of the line. */
- CplCheckFn *chk_fn; /* If not zero, this argument specifies a */
- /* function to call to ask whether a given */
- /* file should be included in the list */
- /* of completions. */
- void *chk_data; /* Anonymous data to be passed to check_fn(). */
-};
-
-static void cpl_init_FileConf(CplFileConf *cfc);
-
-/*.......................................................................
- * Create a new string-completion object.
- *
- * Output:
- * return WordCompletion * The new object, or NULL on error.
- */
-WordCompletion *new_WordCompletion(void)
-{
- WordCompletion *cpl; /* The object to be returned */
-/*
- * Allocate the container.
- */
- cpl = (WordCompletion *) malloc(sizeof(WordCompletion));
- if(!cpl) {
- fprintf(stderr, "new_WordCompletion: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_WordCompletion().
- */
- cpl->sg = NULL;
- cpl->matches_dim = 0;
- cpl->result.suffix = NULL;
- cpl->result.cont_suffix = NULL;
- cpl->result.matches = NULL;
- cpl->result.nmatch = 0;
- cpl->cf = NULL;
-/*
- * Allocate an object that allows a group of strings to be allocated
- * efficiently by placing many of them in contiguous string segments.
- */
- cpl->sg = _new_StringGroup(_pu_pathname_dim());
- if(!cpl->sg)
- return del_WordCompletion(cpl);
-/*
- * Allocate an array for matching completions. This will be extended later
- * if needed.
- */
- cpl->matches_dim = STR_BLK_FACT;
- cpl->result.matches = (CplMatch *) malloc(sizeof(cpl->result.matches[0]) *
- cpl->matches_dim);
- if(!cpl->result.matches) {
- fprintf(stderr,
- "new_WordCompletion: Insufficient memory to allocate array of matches.\n");
- return del_WordCompletion(cpl);
- };
-/*
- * Allocate a filename-completion resource object.
- */
- cpl->cf = _new_CompleteFile();
- if(!cpl->cf)
- return del_WordCompletion(cpl);
- return cpl;
-}
-
-/*.......................................................................
- * Delete a string-completion object.
- *
- * Input:
- * cpl WordCompletion * The object to be deleted.
- * Output:
- * return WordCompletion * The deleted object (always NULL).
- */
-WordCompletion *del_WordCompletion(WordCompletion *cpl)
-{
- if(cpl) {
- cpl->sg = _del_StringGroup(cpl->sg);
- if(cpl->result.matches) {
- free(cpl->result.matches);
- cpl->result.matches = NULL;
- cpl->cf = _del_CompleteFile(cpl->cf);
- };
- free(cpl);
- };
- return NULL;
-}
-
-/*.......................................................................
- * This function is designed to be called by CplMatchFn callback
- * functions. It adds one possible completion of the token that is being
- * completed to an array of completions. If the completion needs any
- * special quoting to be valid when displayed in the input line, this
- * quoting must be included in the string.
- *
- * Input:
- * cpl WordCompletion * The argument of the same name that was passed
- * to the calling CplMatchFn callback function.
- * line const char * The input line, as received by the callback
- * function.
- * word_start int The index within line[] of the start of the
- * word that is being completed.
- * word_end int The index within line[] of the character which
- * follows the incomplete word, as received by the
- * calling callback function.
- * suffix const char * The appropriately quoted string that could
- * be appended to the incomplete token to complete
- * it. A copy of this string will be allocated
- * internally.
- * type_suffix const char * When listing multiple completions, gl_get_line()
- * appends this string to the completion to indicate
- * its type to the user. If not pertinent pass "".
- * Otherwise pass a literal or static string.
- * cont_suffix const char * If this turns out to be the only completion,
- * gl_get_line() will append this string as
- * a continuation. For example, the builtin
- * file-completion callback registers a directory
- * separator here for directory matches, and a
- * space otherwise. If the match were a function
- * name you might want to append an open
- * parenthesis, etc.. If not relevant pass "".
- * Otherwise pass a literal or static string.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int cpl_add_completion(WordCompletion *cpl, const char *line,
- int word_start, int word_end, const char *suffix,
- const char *type_suffix, const char *cont_suffix)
-{
- CplMatch *match; /* The container of the new match */
- char *string; /* A newly allocated copy of the completion string */
-/*
- * Check the arguments.
- */
- if(!cpl)
- return 1;
- if(!suffix)
- return 0;
- if(!type_suffix)
- type_suffix = "";
- if(!cont_suffix)
- cont_suffix = "";
-/*
- * Do we need to extend the array of matches[]?
- */
- if(cpl->result.nmatch+1 > cpl->matches_dim) {
- int needed = cpl->matches_dim + STR_BLK_FACT;
- CplMatch *matches = (CplMatch *) realloc(cpl->result.matches,
- sizeof(cpl->result.matches[0]) * needed);
- if(!matches) {
- strcpy(cpl->errmsg, "Insufficient memory to extend array of matches.");
- return 1;
- };
- cpl->result.matches = matches;
- cpl->matches_dim = needed;
- };
-/*
- * Allocate memory to store the combined completion prefix and the
- * new suffix.
- */
- string = _sg_alloc_string(cpl->sg, word_end-word_start + strlen(suffix));
- if(!string) {
- strcpy(cpl->errmsg, "Insufficient memory to extend array of matches.");
- return 1;
- };
-/*
- * Compose the string.
- */
- strncpy(string, line + word_start, word_end - word_start);
- strcpy(string + word_end - word_start, suffix);
-/*
- * Record the new match.
- */
- match = cpl->result.matches + cpl->result.nmatch++;
- match->completion = string;
- match->suffix = string + word_end - word_start;
- match->type_suffix = type_suffix;
-/*
- * Record the continuation suffix.
- */
- cpl->result.cont_suffix = cont_suffix;
- return 0;
-}
-
-/*.......................................................................
- * Sort the array of matches.
- *
- * Input:
- * cpl WordCompletion * The completion resource object.
- */
-static void cpl_sort_matches(WordCompletion *cpl)
-{
- qsort(cpl->result.matches, cpl->result.nmatch,
- sizeof(cpl->result.matches[0]), cpl_cmp_matches);
-}
-
-/*.......................................................................
- * This is a qsort() comparison function used to sort matches.
- *
- * Input:
- * v1, v2 void * Pointers to the two matches to be compared.
- * Output:
- * return int -1 -> v1 < v2.
- * 0 -> v1 == v2
- * 1 -> v1 > v2
- */
-static int cpl_cmp_matches(const void *v1, const void *v2)
-{
- const CplMatch *m1 = (const CplMatch *) v1;
- const CplMatch *m2 = (const CplMatch *) v2;
- return strcmp(m1->completion, m2->completion);
-}
-
-/*.......................................................................
- * Sort the array of matches in order of their suffixes.
- *
- * Input:
- * cpl WordCompletion * The completion resource object.
- */
-static void cpl_sort_suffixes(WordCompletion *cpl)
-{
- qsort(cpl->result.matches, cpl->result.nmatch,
- sizeof(cpl->result.matches[0]), cpl_cmp_suffixes);
-}
-
-/*.......................................................................
- * This is a qsort() comparison function used to sort matches in order of
- * their suffixes.
- *
- * Input:
- * v1, v2 void * Pointers to the two matches to be compared.
- * Output:
- * return int -1 -> v1 < v2.
- * 0 -> v1 == v2
- * 1 -> v1 > v2
- */
-static int cpl_cmp_suffixes(const void *v1, const void *v2)
-{
- const CplMatch *m1 = (const CplMatch *) v1;
- const CplMatch *m2 = (const CplMatch *) v2;
- return strcmp(m1->suffix, m2->suffix);
-}
-
-/*.......................................................................
- * Find the common prefix of all of the matching completion matches,
- * and record a pointer to it in cpl->result.suffix. Note that this has
- * the side effect of sorting the matches into suffix order.
- *
- * Input:
- * cpl WordCompletion * The completion resource object.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int cpl_common_suffix(WordCompletion *cpl)
-{
- CplMatches *result; /* The result container */
- const char *first, *last; /* The first and last matching suffixes */
- int length; /* The length of the common suffix */
-/*
- * Get the container of the array of matching files.
- */
- result = &cpl->result;
-/*
- * No matching completions?
- */
- if(result->nmatch < 1)
- return 0;
-/*
- * Sort th matches into suffix order.
- */
- cpl_sort_suffixes(cpl);
-/*
- * Given that the array of matches is sorted, the first and last
- * suffixes are those that differ most in their prefixes, so the common
- * prefix of these strings is the longest common prefix of all of the
- * suffixes.
- */
- first = result->matches[0].suffix;
- last = result->matches[result->nmatch - 1].suffix;
-/*
- * Find the point at which the first and last matching strings
- * first difffer.
- */
- while(*first && *first == *last) {
- first++;
- last++;
- };
-/*
- * How long is the common suffix?
- */
- length = first - result->matches[0].suffix;
-/*
- * Allocate memory to record the common suffix.
- */
- result->suffix = _sg_alloc_string(cpl->sg, length);
- if(!result->suffix) {
- strcpy(cpl->errmsg,
- "Insufficient memory to record common completion suffix.");
- return 1;
- };
-/*
- * Record the common suffix.
- */
- strncpy(result->suffix, result->matches[0].suffix, length);
- result->suffix[length] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Discard the contents of the array of possible completion matches.
- *
- * Input:
- * cpl WordCompletion * The word-completion resource object.
- */
-static void cpl_clear_completions(WordCompletion *cpl)
-{
-/*
- * Discard all of the strings.
- */
- _clr_StringGroup(cpl->sg);
-/*
- * Record the fact that the array is now empty.
- */
- cpl->result.nmatch = 0;
- cpl->result.suffix = NULL;
- cpl->result.cont_suffix = "";
-/*
- * Also clear the error message.
- */
- cpl->errmsg[0] = '\0';
- return;
-}
-
-/*.......................................................................
- * Given an input line and the point at which it completion is to be
- * attempted, return an array of possible completions.
- *
- * Input:
- * cpl WordCompletion * The completion resource object.
- * line char * The current input line.
- * word_end int The index of the character in line[] which
- * follows the end of the token that is being
- * completed.
- * data void * Anonymous 'data' to be passed to match_fn().
- * match_fn CplMatchFn * The function that will identify the prefix
- * to be completed from the input line, and
- * record completion matches.
- * Output:
- * return CplMatches * The container of the array of possible
- * completions. The returned pointer refers
- * to a container owned by the parent WordCompletion
- * object, and its contents thus potentially
- * change on every call to cpl_matches().
- * On error, NULL is returned, and a description
- * of the error can be acquired by calling
- * cpl_last_error(cpl).
- */
-CplMatches *cpl_complete_word(WordCompletion *cpl, const char *line,
- int word_end, void *data,
- CplMatchFn *match_fn)
-{
- int line_len; /* The total length of the input line */
-/*
- * How long is the input line?
- */
- line_len = strlen(line);
-/*
- * Check the arguments.
- */
- if(!cpl || !line || !match_fn || word_end < 0 || word_end > line_len) {
- if(cpl)
- strcpy(cpl->errmsg, "cpl_complete_word: Invalid arguments.");
- return NULL;
- };
-/*
- * Clear the return container.
- */
- cpl_clear_completions(cpl);
-/*
- * Have the matching function record possible completion matches in
- * cpl->result.matches.
- */
- if(match_fn(cpl, data, line, word_end)) {
- if(cpl->errmsg[0] == '\0')
- strcpy(cpl->errmsg, "Error completing word.");
- return NULL;
- };
-/*
- * Record a copy of the common initial part of all of the prefixes
- * in cpl->result.common.
- */
- if(cpl_common_suffix(cpl))
- return NULL;
-/*
- * Sort the matches into lexicographic order.
- */
- cpl_sort_matches(cpl);
-/*
- * Discard any duplicate matches.
- */
- cpl_zap_duplicates(cpl);
-/*
- * If there is more than one match, discard the continuation suffix.
- */
- if(cpl->result.nmatch > 1)
- cpl->result.cont_suffix = "";
-/*
- * Return the array of matches.
- */
- return &cpl->result;
-}
-
-/*.......................................................................
- * Print out an array of matching completions.
- *
- * Input:
- * result CplMatches * The container of the sorted array of
- * completions.
- * fp FILE * The output stream to write to.
- * term_width int The width of the terminal.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int cpl_list_completions(CplMatches *result, FILE *fp, int term_width)
-{
- int maxlen; /* The length of the longest matching string */
- int width; /* The width of a column */
- int ncol; /* The number of columns to list */
- int nrow; /* The number of rows needed to list all of the matches */
- int row,col; /* The row and column being written to */
- int i;
-/*
- * Check the arguments.
- */
- if(!result || !fp) {
- fprintf(stderr, "cpl_list_completions: NULL argument(s).\n");
- return 1;
- };
-/*
- * Not enough space to list anything?
- */
- if(term_width < 1)
- return 0;
-/*
- * Work out the maximum length of the matching strings.
- */
- maxlen = 0;
- for(i=0; i<result->nmatch; i++) {
- CplMatch *match = result->matches + i;
- int len = strlen(match->completion) +
- strlen(match->type_suffix);
- if(len > maxlen)
- maxlen = len;
- };
-/*
- * Nothing to list?
- */
- if(maxlen == 0)
- return 0;
-/*
- * Split the available terminal width into columns of maxlen + 2 characters.
- */
- width = maxlen + 2;
- ncol = term_width / width;
-/*
- * If the column width is greater than the terminal width, the matches will
- * just have to overlap onto the next line.
- */
- if(ncol < 1)
- ncol = 1;
-/*
- * How many rows will be needed?
- */
- nrow = (result->nmatch + ncol - 1) / ncol;
-/*
- * Print the matches out in ncol columns, sorted in row order within each
- * column.
- */
- for(row=0; row < nrow; row++) {
- for(col=0; col < ncol; col++) {
- int m = col*nrow + row;
- if(m < result->nmatch) {
- CplMatch *match = result->matches + m;
- if(fprintf(fp, "%s%-*s%s", match->completion,
- (int) (ncol > 1 ? maxlen - strlen(match->completion):0),
- match->type_suffix, col<ncol-1 ? " " : "\r\n") < 0)
- return 1;
- } else {
- if(fprintf(fp, "\r\n") < 0)
- return 1;
- break;
- };
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Return a description of the string-completion error that occurred.
- *
- * Input:
- * cpl WordCompletion * The string-completion resource object.
- * Output:
- * return const char * The description of the last error.
- */
-const char *cpl_last_error(WordCompletion *cpl)
-{
- return cpl ? cpl->errmsg : "NULL WordCompletion argument";
-}
-
-/*.......................................................................
- * When an error occurs while performing a completion, you registerf a
- * terse description of the error by calling cpl_record_error(). This
- * message will then be returned on the next call to cpl_last_error().
- *
- * Input:
- * cpl WordCompletion * The string-completion resource object that was
- * originally passed to the callback.
- * errmsg const char * The description of the error.
- */
-void cpl_record_error(WordCompletion *cpl, const char *errmsg)
-{
- if(cpl && errmsg) {
- strncpy(cpl->errmsg, errmsg, ERRLEN);
- cpl->errmsg[ERRLEN] = '\0';
- };
-}
-
-/*.......................................................................
- * This is the builtin completion callback function which performs file
- * completion.
- *
- * Input:
- * cpl WordCompletion * An opaque pointer to the object that will
- * contain the matches. This should be filled
- * via zero or more calls to cpl_add_completion().
- * data void * Either NULL to request the default
- * file-completion behavior, or a pointer to a
- * CplFileConf structure, whose members specify
- * a different behavior.
- * line char * The current input line.
- * word_end int The index of the character in line[] which
- * follows the end of the token that is being
- * completed.
- * Output
- * return int 0 - OK.
- * 1 - Error.
- */
-CPL_MATCH_FN(cpl_file_completions)
-{
- const char *start_path; /* The pointer to the start of the pathname */
- /* in line[]. */
- CplFileConf *conf; /* The new-style configuration object. */
-/*
- * The following configuration object will be used if the caller didn't
- * provide one.
- */
- CplFileConf default_conf;
-/*
- * This function can be called externally, so check its arguments.
- */
- if(!cpl)
- return 1;
- if(!line || word_end < 0) {
- strcpy(cpl->errmsg, "cpl_file_completions: Invalid arguments.");
- return 1;
- };
-/*
- * The 'data' argument is either a CplFileConf pointer, identifiable
- * by having an integer id code as its first member, or the deprecated
- * CplFileArgs pointer, or can be NULL to request the default
- * configuration.
- */
- if(data && *(int *)data == CFC_ID_CODE) {
- conf = (CplFileConf *) data;
- } else {
-/*
- * Select the defaults.
- */
- conf = &default_conf;
- cpl_init_FileConf(&default_conf);
-/*
- * If we have been passed an instance of the deprecated CplFileArgs
- * structure, copy its configuration parameters over the defaults.
- */
- if(data) {
- CplFileArgs *args = (CplFileArgs *) data;
- conf->escaped = args->escaped;
- conf->file_start = args->file_start;
- };
- };
-/*
- * Get the start of the filename. If not specified by the caller
- * identify it by searching backwards in the input line for an
- * unescaped space or the start of the line.
- */
- if(conf->file_start < 0) {
- start_path = _pu_start_of_path(line, word_end);
- if(!start_path) {
- strcpy(cpl->errmsg, "Unable to find the start of the filename.");
- return 1;
- };
- } else {
- start_path = line + conf->file_start;
- };
-/*
- * Perform the completion.
- */
- if(_cf_complete_file(cpl, cpl->cf, line, start_path - line, word_end,
- conf->escaped, conf->chk_fn, conf->chk_data)) {
- cpl_record_error(cpl, _cf_last_error(cpl->cf));
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Initialize a CplFileArgs structure with default configuration
- * parameters. Note that the CplFileArgs configuration type is
- * deprecated. The opaque CplFileConf object should be used in future
- * applications.
- *
- * Input:
- * cfa CplFileArgs * The configuration object of the
- * cpl_file_completions() callback.
- */
-void cpl_init_FileArgs(CplFileArgs *cfa)
-{
- if(cfa) {
- cfa->escaped = 1;
- cfa->file_start = -1;
- };
-}
-
-/*.......................................................................
- * Initialize a CplFileConf structure with default configuration
- * parameters.
- *
- * Input:
- * cfc CplFileConf * The configuration object of the
- * cpl_file_completions() callback.
- */
-static void cpl_init_FileConf(CplFileConf *cfc)
-{
- if(cfc) {
- cfc->id = CFC_ID_CODE;
- cfc->escaped = 1;
- cfc->file_start = -1;
- cfc->chk_fn = 0;
- cfc->chk_data = NULL;
- };
-}
-
-/*.......................................................................
- * Create a new CplFileConf object and initialize it with defaults.
- *
- * Output:
- * return CplFileConf * The new object, or NULL on error.
- */
-CplFileConf *new_CplFileConf(void)
-{
- CplFileConf *cfc; /* The object to be returned */
-/*
- * Allocate the container.
- */
- cfc = (CplFileConf *)malloc(sizeof(CplFileConf));
- if(!cfc)
- return NULL;
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_CplFileConf().
- */
- cpl_init_FileConf(cfc);
- return cfc;
-}
-
-/*.......................................................................
- * Delete a CplFileConf object.
- *
- * Input:
- * cfc CplFileConf * The object to be deleted.
- * Output:
- * return CplFileConf * The deleted object (always NULL).
- */
-CplFileConf *del_CplFileConf(CplFileConf *cfc)
-{
- if(cfc) {
-/*
- * Delete the container.
- */
- free(cfc);
- };
- return NULL;
-}
-
-/*.......................................................................
- * If backslashes in the filename should be treated as literal
- * characters, call the following function with literal=1. Otherwise
- * the default is to treat them as escape characters, used for escaping
- * spaces etc..
- *
- * Input:
- * cfc CplFileConf * The cpl_file_completions() configuration object
- * to be configured.
- * literal int Pass non-zero here to enable literal interpretation
- * of backslashes. Pass 0 to turn off literal
- * interpretation.
- */
-void cfc_literal_escapes(CplFileConf *cfc, int literal)
-{
- if(cfc)
- cfc->escaped = !literal;
-}
-
-/*.......................................................................
- * Call this function if you know where the index at which the
- * filename prefix starts in the input line. Otherwise by default,
- * or if you specify start_index to be -1, the filename is taken
- * to start after the first unescaped space preceding the cursor,
- * or the start of the line, which ever comes first.
- *
- * Input:
- * cfc CplFileConf * The cpl_file_completions() configuration object
- * to be configured.
- * start_index int The index of the start of the filename in
- * the input line, or -1 to select the default.
- */
-void cfc_file_start(CplFileConf *cfc, int start_index)
-{
- if(cfc)
- cfc->file_start = start_index;
-}
-
-/*.......................................................................
- * If you only want certain types of files to be included in the
- * list of completions, you use the following function to specify a
- * callback function which will be called to ask whether a given file
- * should be included.
- *
- * Input:
- * cfc CplFileConf * The cpl_file_completions() configuration object
- * to be configured.
- * chk_fn CplCheckFn * Zero to disable filtering, or a pointer to a
- * function that returns 1 if a given file should
- * be included in the list of completions.
- * chk_data void * Anonymous data to be passed to chk_fn()
- * every time that it is called.
- */
-void cfc_set_check_fn(CplFileConf *cfc, CplCheckFn *chk_fn, void *chk_data)
-{
- if(cfc) {
- cfc->chk_fn = chk_fn;
- cfc->chk_data = chk_data;
- };
-}
-
-/*.......................................................................
- * The following CplCheckFn callback returns non-zero if the specified
- * filename is that of an executable.
- */
-CPL_CHECK_FN(cpl_check_exe)
-{
- return _pu_path_is_exe(pathname);
-}
-
-/*.......................................................................
- * Remove duplicates from a sorted array of matches.
- *
- * Input:
- * cpl WordCompletion * The completion resource object.
- */
-static void cpl_zap_duplicates(WordCompletion *cpl)
-{
- CplMatch *matches; /* The array of matches */
- int nmatch; /* The number of elements in matches[] */
- const char *completion; /* The completion string of the last unique match */
- const char *type_suffix; /* The type of the last unique match */
- int src; /* The index of the match being considered */
- int dst; /* The index at which to record the next */
- /* unique match. */
-/*
- * Get the array of matches and the number of matches that it
- * contains.
- */
- matches = cpl->result.matches;
- nmatch = cpl->result.nmatch;
-/*
- * No matches?
- */
- if(nmatch < 1)
- return;
-/*
- * Initialize the comparison strings with the first match.
- */
- completion = matches[0].completion;
- type_suffix = matches[0].type_suffix;
-/*
- * Go through the array of matches, copying each new unrecorded
- * match at the head of the array, while discarding duplicates.
- */
- for(src=dst=1; src<nmatch; src++) {
- CplMatch *match = matches + src;
- if(strcmp(completion, match->completion) != 0 ||
- strcmp(type_suffix, match->type_suffix) != 0) {
- if(src != dst)
- matches[dst] = *match;
- dst++;
- completion = match->completion;
- type_suffix = match->type_suffix;
- };
- };
-/*
- * Record the number of unique matches that remain.
- */
- cpl->result.nmatch = dst;
- return;
-}
diff --git a/libtecla-1.4.1/demo.c b/libtecla-1.4.1/demo.c
deleted file mode 100644
index 8bee92d..0000000
--- a/libtecla-1.4.1/demo.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by the California Institute of Technology.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <errno.h>
-#include <locale.h>
-
-#include <unistd.h>
-#include <sys/stat.h>
-
-#include "libtecla.h"
-
-int main(int argc, char *argv[])
-{
- char *line; /* A line of input */
- GetLine *gl; /* The line editor */
- int major,minor,micro; /* The version number of the library */
-/*
- * Create the line editor, specifying a max line length of 500 bytes,
- * and 10000 bytes to allocate to storage of historical input lines.
- */
- gl = new_GetLine(500, 5000);
- if(!gl)
- return 1;
-/*
- * If the user has the LC_CTYPE or LC_ALL environment variables set,
- * enable display of characters corresponding to the specified locale.
- */
- (void) setlocale(LC_CTYPE, "");
-/*
- * Lookup and display the version number of the library.
- */
- libtecla_version(&major, &minor, &micro);
- printf("Welcome to the demo program of libtecla version %d.%d.%d\n",
- major, minor, micro);
-/*
- * Load history.
- */
- (void) gl_load_history(gl, "~/.demo_history", "#");
-/*
- * Read lines of input from the user and print them to stdout.
- */
- do {
-/*
- * Get a new line from the user.
- */
- line = gl_get_line(gl, "$ ", NULL, 0);
- if(!line)
- break;
-/*
- * Display what was entered.
- */
- if(printf("You entered: %s", line) < 0 || fflush(stdout))
- break;
-/*
- * If the user types "exit", quit the program.
- */
- if(strcmp(line, "exit\n")==0)
- break;
- else if(strcmp(line, "history\n")==0)
- gl_show_history(gl, stdout, "%N %T %H\n", 0, -1);
- else if(strcmp(line, "size\n")==0) {
- GlTerminalSize size = gl_terminal_size(gl, 80, 24);
- printf("Terminal size = %d columns x %d lines.\n", size.ncolumn,
- size.nline);
- };
- } while(1);
-/*
- * Save historical command lines.
- */
- (void) gl_save_history(gl, "~/.demo_history", "#", -1);
-/*
- * Clean up.
- */
- gl = del_GetLine(gl);
- return 0;
-}
-
diff --git a/libtecla-1.4.1/demo2.c b/libtecla-1.4.1/demo2.c
deleted file mode 100644
index e1e80c6..0000000
--- a/libtecla-1.4.1/demo2.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <errno.h>
-#include <locale.h>
-
-#include <unistd.h>
-#include <sys/stat.h>
-
-#include "libtecla.h"
-
-/*
- * Encapsulate the resources needed by this demo.
- */
-typedef struct {
- GetLine *gl; /* The line editor */
- PathCache *pc; /* A cache of executables in the user's path */
- PcaPathConf *ppc; /* The configuration argument of pca_path_completions() */
-} DemoRes;
-
-/*
- * The following functions allocate and free instances of the above
- * structure.
- */
-static DemoRes *new_DemoRes(void);
-static DemoRes *del_DemoRes(DemoRes *res);
-
-/*
- * Search backwards for the start of a pathname.
- */
-static char *start_of_path(const char *string, int back_from);
-
-/*
- * Find the array indexes of the first character of the first
- * space-delimited word in the specified string, and of the character
- * that follows it.
- */
-static int get_word_limits(const char *string, int *wa, int *wb);
-
-/*
- * This is the demonstration completion callback function (defined below).
- */
-static CPL_MATCH_FN(demo_cpl_fn);
-
-/*.......................................................................
- * This demo takes no arguments. It reads lines of input until the
- * word 'exit' is entered, or C-d is pressed. It replaces the default
- * tab-completion callback with one which when invoked at the start of
- * a line, looks up completions of commands in the user's execution
- * path, and when invoked in other parts of the line, reverts to
- * normal filename completion. Whenever a new line is entered, it
- * extracts the first word on the line, looks it up in the user's
- * execution path to see if it corresponds to a known executable file,
- * and if so, displays the full pathname of the file, along with the
- * remaining arguments.
- */
-int main(int argc, char *argv[])
-{
- char *line; /* A line of input */
- DemoRes *res; /* The resources of the demo */
- int wa,wb; /* The delimiting indexes of a word in line[] */
- int major,minor,micro; /* The version number of the library */
-/*
- * Allocate the resources needed by this demo.
- */
- res = new_DemoRes();
- if(!res)
- return 1;
-/*
- * If the user has the LC_CTYPE or LC_ALL environment variables set,
- * enable display of characters corresponding to the specified locale.
- */
- (void) setlocale(LC_CTYPE, "");
-/*
- * Lookup and display the version number of the library.
- */
- libtecla_version(&major, &minor, &micro);
- printf("Welcome to the demo2 program of libtecla version %d.%d.%d\n",
- major, minor, micro);
-/*
- * Read lines of input from the user and print them to stdout.
- */
- do {
-/*
- * Get a new line from the user.
- */
- line = gl_get_line(res->gl, "$ ", NULL, 0);
- if(!line)
- break;
-/*
- * Work out the extent of the first word in the input line, and
- * try to identify this as a command in the path, displaying the
- * full pathname of the match if found.
- */
- if(get_word_limits(line, &wa, &wb) == 0) {
- char *cmd = pca_lookup_file(res->pc, line + wa, wb-wa, 0);
- if(cmd) {
- printf("Command=%s\n", cmd);
- printf("Arguments=%s", line+wb);
- } else {
- printf("Command not found\n");
- };
- };
-/*
- * If the user types "exit", quit the program.
- */
- if(strcmp(line, "exit\n")==0)
- break;
- } while(1);
-/*
- * Clean up.
- */
- res = del_DemoRes(res);
- return 0;
-}
-
-/*.......................................................................
- * This completion callback searches for completions of executables in
- * the user's path when invoked on a word at the start of the path, and
- * performs normal filename completion elsewhere.
- */
-static CPL_MATCH_FN(demo_cpl_fn)
-{
-/*
- * Get the resource object that was passed to gl_customize_completion().
- */
- DemoRes *res = (DemoRes *) data;
-/*
- * Find the start of the filename prefix to be completed, searching
- * backwards for the first unescaped space, or the start of the line.
- */
- char *start = start_of_path(line, word_end);
-/*
- * Skip spaces preceding the start of the prefix.
- */
- while(start > line && isspace((int)(unsigned char) start[-1]))
- start--;
-/*
- * If the filename prefix is at the start of the line, attempt
- * to complete the filename as a command in the path. Otherwise
- * perform normal filename completion.
- */
- return (start == line) ?
- pca_path_completions(cpl, res->ppc, line, word_end) :
- cpl_file_completions(cpl, NULL, line, word_end);
-}
-
-/*.......................................................................
- * Search backwards for the potential start of a filename. This
- * looks backwards from the specified index in a given string,
- * stopping at the first unescaped space or the start of the line.
- *
- * Input:
- * string const char * The string to search backwards in.
- * back_from int The index of the first character in string[]
- * that follows the pathname.
- * Output:
- * return char * The pointer to the first character of
- * the potential pathname, or NULL on error.
- */
-static char *start_of_path(const char *string, int back_from)
-{
- int i, j;
-/*
- * Search backwards from the specified index.
- */
- for(i=back_from-1; i>=0; i--) {
- int c = string[i];
-/*
- * Stop on unescaped spaces.
- */
- if(isspace((int)(unsigned char)c)) {
-/*
- * The space can't be escaped if we are at the start of the line.
- */
- if(i==0)
- break;
-/*
- * Find the extent of the escape characters which precedes the space.
- */
- for(j=i-1; j>=0 && string[j]=='\\'; j--)
- ;
-/*
- * If there isn't an odd number of escape characters before the space,
- * then the space isn't escaped.
- */
- if((i - 1 - j) % 2 == 0)
- break;
- };
- };
- return (char *)string + i + 1;
-}
-
-/*.......................................................................
- * Create a new DemoRes object containing the resources needed by the
- * demo.
- *
- * Output:
- * return DemoRes * The new object, or NULL on error.
- */
-static DemoRes *new_DemoRes(void)
-{
- DemoRes *res; /* The object to be returned */
-/*
- * Allocate the container.
- */
- res = (DemoRes *)malloc(sizeof(DemoRes));
- if(!res) {
- fprintf(stderr, "new_DemoRes: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_DemoRes().
- */
- res->gl = NULL;
- res->pc = NULL;
- res->ppc = NULL;
-/*
- * Create the line editor, specifying a max line length of 500 bytes,
- * and 10000 bytes to allocate to storage of historical input lines.
- */
- res->gl = new_GetLine(500, 10000);
- if(!res->gl)
- return del_DemoRes(res);
-/*
- * Enable text attribute formatting directives in prompt strings.
- */
- gl_prompt_style(res->gl, GL_FORMAT_PROMPT);
-/*
- * Allocate a cache of the executable files found in the user's path.
- */
- res->pc = new_PathCache();
- if(!res->pc)
- return del_DemoRes(res);
-/*
- * Populate the cache with the contents of the user's path.
- */
- if(pca_scan_path(res->pc, getenv("PATH")))
- return del_DemoRes(res);
-/*
- * Arrange for susequent calls to pca_lookup_file() and pca_path_completions()
- * to only report files that are executable by the user.
- */
- pca_set_check_fn(res->pc, cpl_check_exe, NULL);
-/*
- * Allocate a configuration object for use with pca_path_completions().
- */
- res->ppc = new_PcaPathConf(res->pc);
- if(!res->ppc)
- return del_DemoRes(res);
-/*
- * Replace the builtin filename completion callback with one which
- * searches for completions of executables in the user's path when
- * invoked on a word at the start of the path, and completes files
- * elsewhere.
- */
- if(gl_customize_completion(res->gl, res, demo_cpl_fn))
- return del_DemoRes(res);
- return res;
-}
-
-/*.......................................................................
- * Delete a DemoRes object.
- *
- * Input:
- * res DemoRes * The object to be deleted.
- * Output:
- * return DemoRes * The deleted object (always NULL).
- */
-static DemoRes *del_DemoRes(DemoRes *res)
-{
- if(res) {
- res->gl = del_GetLine(res->gl);
- res->pc = del_PathCache(res->pc);
- res->ppc = del_PcaPathConf(res->ppc);
- free(res);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Return the limits of the word at the start of a given string, ignoring
- * leading white-space, and interpretting the first unescaped space, tab or
- * the end of the line, as the end of the word.
- *
- * Input:
- * string const char * The string to tokenize.
- * Input/Output:
- * wa,wb int * The indexes of the first character of the word,
- * and the character which follows the last
- * character of the word, will be assigned to
- * *wa and *wb, respectively.
- * Output:
- * return int 0 - A word was found.
- * 1 - No word was found before the end of the
- * string.
- */
-static int get_word_limits(const char *string, int *wa, int *wb)
-{
- int escaped = 0; /* True if the next character is escaped */
-/*
- * Skip leading white-space.
- */
- for(*wa=0; isspace((int)(unsigned char)string[*wa]); (*wa)++)
- ;
-/*
- * Find the first unescaped space, stopping early if the end of the
- * string is reached.
- */
- for(*wb = *wa; ; (*wb)++) {
- int c = string[*wb];
- if(c=='\\')
- escaped = !escaped;
- else if((!escaped && isspace((int)(unsigned char)c)) || c=='\0')
- break;
- };
- return *wa == *wb;
-}
diff --git a/libtecla-1.4.1/direader.c b/libtecla-1.4.1/direader.c
deleted file mode 100644
index 8a81fbf..0000000
--- a/libtecla-1.4.1/direader.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * Standard includes.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-/*
- * Operating system includes.
- */
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-
-#include "direader.h"
-
-/*
- * Use the reentrant POSIX threads version of readdir()?
- */
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199506L
-#define USE_READDIR_R 1
-#endif
-
-/*
- * Set the max length of the error-reporting string. There is no point
- * in this being longer than the width of a typical terminal window.
- * In composing error messages, I have assumed that this number is
- * at least 80, so you don't decrease it below this number.
- */
-#define ERRLEN 200
-
-/*
- * Objects of the following type are used to maintain the resources
- * needed to read directories.
- */
-struct DirReader {
- DIR *dir; /* The directory stream (if open, NULL otherwise) */
- struct dirent *file; /* The latest directory entry */
- char errmsg[ERRLEN+1]; /* Error-report buffer */
-#ifdef USE_READDIR_R
- struct dirent *buffer; /* A buffer used by the threaded version of readdir */
- int buffer_dim; /* The allocated size of buffer[] */
-#endif
-};
-
-static int _dr_path_is_dir(const char *pathname);
-
-/*.......................................................................
- * Create a new DirReader object.
- *
- * Output:
- * return DirReader * The new object, or NULL on error.
- */
-DirReader *_new_DirReader(void)
-{
- DirReader *dr; /* The object to be returned */
-/*
- * Allocate the container.
- */
- dr = (DirReader *) malloc(sizeof(DirReader));
- if(!dr) {
- fprintf(stderr, "_new_DirReader: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to _del_DirReader().
- */
- dr->dir = NULL;
- dr->file = NULL;
- dr->errmsg[0] = '\0';
-#ifdef USE_READDIR_R
- dr->buffer = NULL;
- dr->buffer_dim = 0;
-#endif
- return dr;
-}
-
-/*.......................................................................
- * Delete a DirReader object.
- *
- * Input:
- * dr DirReader * The object to be deleted.
- * Output:
- * return DirReader * The deleted object (always NULL).
- */
-DirReader *_del_DirReader(DirReader *dr)
-{
- if(dr) {
- _dr_close_dir(dr);
-#ifdef USE_READDIR_R
- free(dr->buffer);
-#endif
- free(dr);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Open a new directory.
- *
- * Input:
- * dr DirReader * The directory reader resource object.
- * path const char * The directory to be opened.
- * Input/Output:
- * errmsg char ** If an error occurs and errmsg isn't NULL, a
- * pointer to an error description will be assigned
- * to *errmsg.
- * Output:
- * return int 0 - OK.
- * 1 - Error (see *errmsg for a description).
- */
-int _dr_open_dir(DirReader *dr, const char *path, char **errmsg)
-{
- DIR *dir = NULL; /* The directory stream */
-/*
- * If a directory is already open, close it first.
- */
- (void) _dr_close_dir(dr);
-/*
- * Is the path a directory?
- */
- if(!_dr_path_is_dir(path)) {
- if(errmsg) {
- const char *fmt = "Can't open directory: %.*s\n";
- sprintf(dr->errmsg, fmt, ERRLEN - strlen(fmt), path);
- *errmsg = dr->errmsg;
- };
- return 1;
- };
-/*
- * Attempt to open the directory.
- */
- dir = opendir(path);
- if(!dir) {
- if(errmsg) {
- const char *fmt = "Can't open directory: %.*s\n";
- sprintf(dr->errmsg, fmt, ERRLEN - strlen(fmt), path);
- *errmsg = dr->errmsg;
- };
- return 1;
- };
-/*
- * If using POSIX threads, allocate a buffer for readdir_r().
- */
-#ifdef USE_READDIR_R
- {
- size_t size;
- int name_max = pathconf(path, _PC_NAME_MAX);
-#ifdef NAME_MAX
- if(name_max < 0)
- name_max = NAME_MAX;
-#endif
- if(name_max < 0) {
- if(errmsg) {
- strcpy(dr->errmsg, "Unable to deduce readdir() buffer size.");
- *errmsg = dr->errmsg;
- };
- closedir(dir);
- return 1;
- };
-/*
- * How big a buffer do we need to allocate?
- */
- size = sizeof(struct dirent) + name_max;
-/*
- * Extend the buffer?
- */
- if(size > dr->buffer_dim || !dr->buffer) {
- struct dirent *buffer = (struct dirent *) (dr->buffer ?
- realloc(dr->buffer, size) :
- malloc(size));
- if(!buffer) {
- if(errmsg) {
- strcpy(dr->errmsg, "Insufficient memory for readdir() buffer.");
- *errmsg = dr->errmsg;
- };
- closedir(dir);
- return 1;
- };
- dr->buffer = buffer;
- dr->buffer_dim = size;
- };
- };
-#endif
-/*
- * Record the successfully opened directory.
- */
- dr->dir = dir;
- return 0;
-}
-
-/*.......................................................................
- * If the DirReader object is currently contains an open directory,
- * close it.
- *
- * Input:
- * dr DirReader * The directory reader resource object.
- */
-void _dr_close_dir(DirReader *dr)
-{
- if(dr && dr->dir) {
- closedir(dr->dir);
- dr->dir = NULL;
- dr->file = NULL;
- dr->errmsg[0] = '\0';
- };
-}
-
-/*.......................................................................
- * Read the next file from the directory opened with _dr_open_dir().
- *
- * Input:
- * dr DirReader * The directory reader resource object.
- * Output:
- * return char * The name of the new file, or NULL if we reached
- * the end of the directory.
- */
-char *_dr_next_file(DirReader *dr)
-{
-/*
- * Are we currently reading a directory?
- */
- if(dr->dir) {
-/*
- * Read the next directory entry.
- */
-#ifdef USE_READDIR_R
- if(readdir_r(dr->dir, dr->buffer, &dr->file) == 0 && dr->file)
- return dr->file->d_name;
-#else
- dr->file = readdir(dr->dir);
- if(dr->file)
- return dr->file->d_name;
-#endif
- };
-/*
- * When the end of a directory is reached, close it.
- */
- _dr_close_dir(dr);
- return NULL;
-}
-
-/*.......................................................................
- * Return 1 if the specified pathname refers to a directory.
- *
- * Input:
- * pathname const char * The path to test.
- * Output:
- * return int 0 - Not a directory.
- * 1 - pathname[] refers to a directory.
- */
-static int _dr_path_is_dir(const char *pathname)
-{
- struct stat statbuf; /* The file-statistics return buffer */
-/*
- * Look up the file attributes.
- */
- if(stat(pathname, &statbuf) < 0)
- return 0;
-/*
- * Is the file a directory?
- */
- return S_ISDIR(statbuf.st_mode) != 0;
-}
diff --git a/libtecla-1.4.1/direader.h b/libtecla-1.4.1/direader.h
deleted file mode 100644
index 2cf178e..0000000
--- a/libtecla-1.4.1/direader.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef dirreader_h
-#define dirreader_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-typedef struct DirReader DirReader;
-
-DirReader *_new_DirReader(void);
-DirReader *_del_DirReader(DirReader *dr);
-
-int _dr_open_dir(DirReader *dr, const char *pathname, char **errmsg);
-char *_dr_next_file(DirReader *dr);
-void _dr_close_dir(DirReader *dr);
-
-#endif
diff --git a/libtecla-1.4.1/enhance.c b/libtecla-1.4.1/enhance.c
deleted file mode 100644
index 72f5061..0000000
--- a/libtecla-1.4.1/enhance.c
+++ /dev/null
@@ -1,689 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <signal.h>
-#include <locale.h>
-
-#include <unistd.h>
-#include <termios.h>
-
-#include <fcntl.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <dirent.h>
-
-#if HAVE_SYSV_PTY
-#include <stropts.h> /* System-V stream I/O */
-char *ptsname(int fd);
-int grantpt(int fd);
-int unlockpt(int fd);
-#endif
-
-#include "libtecla.h"
-
-/*
- * Pseudo-terminal devices are found in the following directory.
- */
-#define PTY_DEV_DIR "/dev/"
-
-/*
- * Pseudo-terminal controller device file names start with the following
- * prefix.
- */
-#define PTY_CNTRL "pty"
-
-/*
- * Pseudo-terminal slave device file names start with the following
- * prefix.
- */
-#define PTY_SLAVE "tty"
-
-/*
- * Specify the maximum suffix length for the control and slave device
- * names.
- */
-#define PTY_MAX_SUFFIX 10
-
-/*
- * Set the maximum length of the master and slave terminal device filenames,
- * including space for a terminating '\0'.
- */
-#define PTY_MAX_NAME (sizeof(PTY_DEV_DIR)-1 + \
- (sizeof(PTY_SLAVE) > sizeof(PTY_CNTRL) ? \
- sizeof(PTY_SLAVE) : sizeof(PTY_CNTRL))-1 \
- + PTY_MAX_SUFFIX + 1)
-/*
- * Set the maximum length of an input line.
- */
-#define PTY_MAX_LINE 4096
-
-/*
- * Set the size of the buffer used for accumulating bytes written by the
- * user's terminal to its stdout.
- */
-#define PTY_MAX_READ 1000
-
-/*
- * Set the amount of memory used to record history.
- */
-#define PTY_HIST_SIZE 10000
-
-/*
- * Set the timeout delay used to check for quickly arriving
- * sequential output from the application.
- */
-#define PTY_READ_TIMEOUT 100000 /* micro-seconds */
-
-static int pty_open_master(const char *prog, int *cntrl, char *slave_name);
-static int pty_open_slave(const char *prog, char *slave_name);
-static int pty_child(const char *prog, int slave, char *argv[]);
-static int pty_parent(const char *prog, int cntrl);
-static int pty_stop_parent(int waserr, int cntrl, GetLine *gl, char *rbuff);
-static GL_FD_EVENT_FN(pty_read_from_program);
-static int pty_write_to_fd(int fd, const char *string, int n);
-static void pty_child_exited(int sig);
-static int pty_master_readable(int fd, long usec);
-
-/*.......................................................................
- * Run a program with enhanced terminal editing facilities.
- *
- * Usage:
- * enhance program [args...]
- */
-int main(int argc, char *argv[])
-{
- int cntrl = -1; /* The fd of the pseudo-terminal controller device */
- int slave = -1; /* The fd of the pseudo-terminal slave device */
- pid_t pid; /* The return value of fork() */
- int status; /* The return statuses of the parent and child functions */
- char slave_name[PTY_MAX_NAME]; /* The filename of the slave end of the */
- /* pseudo-terminal. */
- char *prog; /* The name of the program (ie. argv[0]) */
-/*
- * Check the arguments.
- */
- if(argc < 2) {
- fprintf(stderr, "Usage: %s <program> [arguments...]\n", argv[0]);
- return 1;
- };
-/*
- * Get the name of the program.
- */
- prog = argv[0];
-/*
- * If the user has the LC_CTYPE or LC_ALL environment variables set,
- * enable display of characters corresponding to the specified locale.
- */
- (void) setlocale(LC_CTYPE, "");
-/*
- * If the program is taking its input from a pipe or a file, or
- * sending its output to something other than a terminal, run the
- * program without tecla.
- */
- if(!isatty(STDIN_FILENO) || !isatty(STDOUT_FILENO)) {
- if(execvp(argv[1], argv + 1) < 0) {
- fprintf(stderr, "%s: Unable to execute %s (%s).\n", prog, argv[1],
- strerror(errno));
- fflush(stderr);
- _exit(1);
- };
- };
-/*
- * Open the master side of a pseudo-terminal pair, and return
- * the corresponding file descriptor and the filename of the
- * slave end of the pseudo-terminal.
- */
- if(pty_open_master(prog, &cntrl, slave_name))
- return 1;
-/*
- * Set up a signal handler to watch for the child process exiting.
- */
- signal(SIGCHLD, pty_child_exited);
-/*
- * The above signal handler sends the parent process a SIGINT signal.
- * This signal is caught by gl_get_line(), which resets the terminal
- * settings, and if the application signal handler for this signal
- * doesn't abort the process, gl_get_line() returns NULL with errno
- * set to EINTR. Arrange to ignore the signal, so that gl_get_line()
- * returns and we have a chance to cleanup.
- */
- signal(SIGINT, SIG_IGN);
-/*
- * We will read user input in one process, and run the user's program
- * in a child process.
- */
- pid = fork();
- if(pid < 0) {
- fprintf(stderr, "%s: Unable to fork child process (%s).\n", prog,
- strerror(errno));
- return 1;
- };
-/*
- * Are we the parent?
- */
- if(pid!=0) {
- status = pty_parent(prog, cntrl);
- close(cntrl);
- } else {
- close(cntrl); /* The child doesn't use the slave device */
- signal(SIGCHLD, pty_child_exited);
- if((slave = pty_open_slave(prog, slave_name)) >= 0) {
- status = pty_child(prog, slave, argv + 1);
- close(slave);
- } else {
- status = 1;
- };
- };
- return status;
-}
-
-/*.......................................................................
- * Open the master side of a pseudo-terminal pair, and return
- * the corresponding file descriptor and the filename of the
- * slave end of the pseudo-terminal.
- *
- * Input/Output:
- * prog const char * The name of this program.
- * cntrl int * The file descriptor of the pseudo-terminal
- * controller device will be assigned tp *cntrl.
- * slave_name char * The file-name of the pseudo-terminal slave device
- * will be recorded in slave_name[], which must have
- * at least PTY_MAX_NAME elements.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int pty_open_master(const char *prog, int *cntrl, char *slave_name)
-{
- char master_name[PTY_MAX_NAME]; /* The filename of the master device */
- DIR *dir; /* The directory iterator */
- struct dirent *file; /* A file in "/dev" */
-/*
- * Mark the controller device as not opened yet.
- */
- *cntrl = -1;
-/*
- * On systems with the Sys-V pseudo-terminal interface, we don't
- * have to search for a free master terminal. We just open /dev/ptmx,
- * and if there is a free master terminal device, we are given a file
- * descriptor connected to it.
- */
-#if HAVE_SYSV_PTY
- *cntrl = open("/dev/ptmx", O_RDWR);
- if(*cntrl >= 0) {
-/*
- * Get the filename of the slave side of the pseudo-terminal.
- */
- char *name = ptsname(*cntrl);
- if(name) {
- if(strlen(name)+1 > PTY_MAX_NAME) {
- fprintf(stderr, "%s: Slave pty filename too long.\n", prog);
- return 1;
- };
- strcpy(slave_name, name);
-/*
- * If unable to get the slave name, discard the controller file descriptor,
- * ready to try a search instead.
- */
- } else {
- close(*cntrl);
- *cntrl = -1;
- };
- } else {
-#endif
-/*
- * On systems without /dev/ptmx, or if opening /dev/ptmx failed,
- * we open one master terminal after another, until one that isn't
- * in use by another program is found.
- *
- * Open the devices directory.
- */
- dir = opendir(PTY_DEV_DIR);
- if(!dir) {
- fprintf(stderr, "%s: Couldn't open %s (%s)\n", prog, PTY_DEV_DIR,
- strerror(errno));
- return 1;
- };
-/*
- * Look for pseudo-terminal controller device files in the devices
- * directory.
- */
- while(*cntrl < 0 && (file = readdir(dir))) {
- if(strncmp(file->d_name, PTY_CNTRL, sizeof(PTY_CNTRL)-1) == 0) {
-/*
- * Get the common extension of the control and slave filenames.
- */
- const char *ext = file->d_name + sizeof(PTY_CNTRL)-1;
- if(strlen(ext) > PTY_MAX_SUFFIX)
- continue;
-/*
- * Attempt to open the control file.
- */
- strcpy(master_name, PTY_DEV_DIR);
- strcat(master_name, PTY_CNTRL);
- strcat(master_name, ext);
- *cntrl = open(master_name, O_RDWR);
- if(*cntrl < 0)
- continue;
-/*
- * Attempt to open the matching slave file.
- */
- strcpy(slave_name, PTY_DEV_DIR);
- strcat(slave_name, PTY_SLAVE);
- strcat(slave_name, ext);
- };
- };
- closedir(dir);
-#if HAVE_SYSV_PTY
- };
-#endif
-/*
- * Did we fail to find a pseudo-terminal pair that we could open?
- */
- if(*cntrl < 0) {
- fprintf(stderr, "%s: Unable to find a free pseudo-terminal.\n", prog);
- return 1;
- };
-/*
- * System V systems require the program that opens the master to
- * grant access to the slave side of the pseudo-terminal.
- */
-#ifdef HAVE_SYSV_PTY
- if(grantpt(*cntrl) < 0 ||
- unlockpt(*cntrl) < 0) {
- fprintf(stderr, "%s: Unable to unlock terminal (%s).\n", prog,
- strerror(errno));
- return 1;
- };
-#endif
-/*
- * Success.
- */
- return 0;
-}
-
-/*.......................................................................
- * Open the slave end of a pseudo-terminal.
- *
- * Input:
- * prog const char * The name of this program.
- * slave_name char * The filename of the slave device.
- * Output:
- * return int The file descriptor of the successfully opened
- * slave device, or < 0 on error.
- */
-static int pty_open_slave(const char *prog, char *slave_name)
-{
- int fd; /* The file descriptor of the slave device */
-/*
- * Place the process in its own process group. In system-V based
- * OS's, this ensures that when the pseudo-terminal is opened, it
- * becomes the controlling terminal of the process.
- */
- if(setsid() < 0) {
- fprintf(stderr, "%s: Unable to form new process group (%s).\n", prog,
- strerror(errno));
- return -1;
- };
-/*
- * Attempt to open the specified device.
- */
- fd = open(slave_name, O_RDWR);
- if(fd < 0) {
- fprintf(stderr, "%s: Unable to open pseudo-terminal slave device (%s).\n",
- prog, strerror(errno));
- return -1;
- };
-/*
- * On system-V streams based systems, we need to push the stream modules
- * that implement pseudo-terminal and termio interfaces. At least on
- * Solaris, which pushes these automatically when a slave is opened,
- * this is redundant, so ignore errors when pushing the modules.
- */
-#if HAVE_SYSV_PTY
- (void) ioctl(fd, I_PUSH, "ptem");
- (void) ioctl(fd, I_PUSH, "ldterm");
-/*
- * On BSD based systems other than SunOS 4.x, the following makes the
- * pseudo-terminal the controlling terminal of the child process.
- * According to the pseudo-terminal example code in Steven's
- * Advanced programming in the unix environment, the !defined(CIBAUD)
- * part of the clause prevents this from being used under SunOS. Since
- * I only have his code with me, and won't have access to the book,
- * I don't know why this is necessary.
- */
-#elif defined(TIOCSCTTY) && !defined(CIBAUD)
- if(ioctl(fd, TIOCSCTTY, (char *) 0) < 0) {
- fprintf(stderr, "%s: Unable to establish controlling terminal (%s).\n",
- prog, strerror(errno));
- close(fd);
- return -1;
- };
-#endif
- return fd;
-}
-
-/*.......................................................................
- * Read input from the controlling terminal of the program, using
- * gl_get_line(), and feed it to the user's program running in a child
- * process, via the controller side of the pseudo-terminal. Also pass
- * data received from the user's program via the conroller end of
- * the pseudo-terminal, to stdout.
- *
- * Input:
- * prog const char * The name of this program.
- * cntrl int The file descriptor of the controller end of the
- * pseudo-terminal.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int pty_parent(const char *prog, int cntrl)
-{
- GetLine *gl = NULL; /* The gl_get_line() resource object */
- char *line; /* An input line read from the user */
- char *rbuff=NULL; /* A buffer for reading from the pseudo terminal */
-/*
- * Allocate the gl_get_line() resource object.
- */
- gl = new_GetLine(PTY_MAX_LINE, PTY_HIST_SIZE);
- if(!gl)
- return pty_stop_parent(1, cntrl, gl, rbuff);
-/*
- * Allocate a buffer to use to accumulate bytes read from the
- * pseudo-terminal.
- */
- rbuff = (char *) malloc(PTY_MAX_READ+1);
- if(!rbuff)
- return pty_stop_parent(1, cntrl, gl, rbuff);
- rbuff[0] = '\0';
-/*
- * Register an event handler to watch for data appearing from the
- * user's program on the controller end of the pseudo terminal.
- */
- if(gl_watch_fd(gl, cntrl, GLFD_READ, pty_read_from_program, rbuff))
- return pty_stop_parent(1, cntrl, gl, rbuff);
-/*
- * Read input lines from the user and pass them on to the user's program,
- * by writing to the controller end of the pseudo-terminal.
- */
- while((line=gl_get_line(gl, rbuff, NULL, 0))) {
- if(pty_write_to_fd(cntrl, line, strlen(line)))
- return pty_stop_parent(1, cntrl, gl, rbuff);
- rbuff[0] = '\0';
- };
- return pty_stop_parent(0, cntrl, gl, rbuff);
-}
-
-/*.......................................................................
- * This is a private return function of pty_parent(), used to release
- * dynamically allocated resources, close the controller end of the
- * pseudo-terminal, and wait for the child to exit. It returns the
- * exit status of the child process, unless the caller reports an
- * error itself, in which case the caller's error status is returned.
- *
- * Input:
- * waserr int True if the caller is calling this function because
- * an error occured.
- * cntrl int The file descriptor of the controller end of the
- * pseudo-terminal.
- * gl GetLine * The resource object of gl_get_line().
- * rbuff char * The buffer used to accumulate bytes read from
- * the pseudo-terminal.
- * Output:
- * return int The desired exit status of the program.
- */
-static int pty_stop_parent(int waserr, int cntrl, GetLine *gl, char *rbuff)
-{
- int status; /* The return status of the child process */
-/*
- * Close the controller end of the terminal.
- */
- close(cntrl);
-/*
- * Delete the resource object.
- */
- gl = del_GetLine(gl);
-/*
- * Delete the read buffer.
- */
- if(rbuff)
- free(rbuff);
-/*
- * Wait for the user's program to end.
- */
- (void) wait(&status);
-/*
- * Return either our error status, or the return status of the child
- * program.
- */
- return waserr ? 1 : status;
-}
-
-/*.......................................................................
- * Run the user's program, with its stdin and stdout connected to the
- * slave end of the psuedo-terminal.
- *
- * Input:
- * prog const char * The name of this program.
- * slave int The file descriptor of the slave end of the
- * pseudo terminal.
- * argv char *[] The argument vector to pass to the user's program,
- * where argv[0] is the name of the user's program,
- * and the last argument is followed by a pointer
- * to NULL.
- * Output:
- * return int If this function returns at all, an error must
- * have occured when trying to overlay the process
- * with the user's program. In this case 1 is
- * returned.
- */
-static int pty_child(const char *prog, int slave, char *argv[])
-{
- struct termios attr; /* The terminal attributes */
-/*
- * We need to stop the pseudo-terminal from echoing everything that we send it.
- */
- if(tcgetattr(slave, &attr)) {
- fprintf(stderr, "%s: Can't get pseudo-terminal attributes (%s).\n", prog,
- strerror(errno));
- return 1;
- };
- attr.c_lflag &= ~(ECHO);
- while(tcsetattr(slave, TCSADRAIN, &attr)) {
- if(errno != EINTR) {
- fprintf(stderr, "%s: tcsetattr error: %s\n", prog, strerror(errno));
- return 1;
- };
- };
-/*
- * Arrange for stdin, stdout and stderr to be connected to the slave device,
- * ignoring errors that imply that either stdin or stdout is closed.
- */
- while(dup2(slave, STDIN_FILENO) < 0 && errno==EINTR)
- ;
- while(dup2(slave, STDOUT_FILENO) < 0 && errno==EINTR)
- ;
- while(dup2(slave, STDERR_FILENO) < 0 && errno==EINTR)
- ;
-/*
- * Run the user's program.
- */
- if(execvp(argv[0], argv) < 0) {
- fprintf(stderr, "%s: Unable to execute %s (%s).\n", prog, argv[0],
- strerror(errno));
- fflush(stderr);
- _exit(1);
- };
- return 0; /* This should never be reached */
-}
-
-/*.......................................................................
- * This is the event-handler that is called by gl_get_line() whenever
- * there is tet waiting to be read from the user's program, via the
- * controller end of the pseudo-terminal. See libtecla.h for details
- * about its arguments.
- */
-static GL_FD_EVENT_FN(pty_read_from_program)
-{
- char *nlptr; /* A pointer to the last newline in the accumulated string */
- char *crptr; /* A pointer to the last '\r' in the accumulated string */
- char *nextp; /* A pointer to the next unprocessed character */
-/*
- * Get the read buffer in which we are accumulating a line to be
- * forwarded to stdout.
- */
- char *rbuff = (char *) data;
-/*
- * New data may arrive while we are processing the current read, and
- * it is more efficient to display this here than to keep returning to
- * gl_get_line() and have it display the latest prefix as a prompt,
- * followed by the current input line, so we loop, delaying a bit at
- * the end of each iteration to check for more data arriving from
- * the application, before finally returning to gl_get_line() when
- * no more input is available.
- */
- do {
-/*
- * Get the current length of the output string.
- */
- int len = strlen(rbuff);
-/*
- * Read the text from the program.
- */
- int nnew = read(fd, rbuff + len, PTY_MAX_READ - len);
- if(nnew < 0)
- return GLFD_ABORT;
- len += nnew;
-/*
- * Nul terminate the accumulated string.
- */
- rbuff[len] = '\0';
-/*
- * Find the last newline and last carriage return in the buffer, if any.
- */
- nlptr = strrchr(rbuff, '\n');
- crptr = strrchr(rbuff, '\r');
-/*
- * We want to output up to just before the last newline or carriage
- * return. If there are no newlines of carriage returns in the line,
- * and the buffer is full, then we should output the whole line. In
- * all cases a new output line will be started after the latest text
- * has been output. The intention is to leave any incomplete line
- * in the buffer, for (perhaps temporary) use as the current prompt.
- */
- if(nlptr) {
- nextp = crptr && crptr < nlptr ? crptr : nlptr;
- } else if(crptr) {
- nextp = crptr;
- } else if(len >= PTY_MAX_READ) {
- nextp = rbuff + len;
- } else {
- nextp = NULL;
- };
-/*
- * Do we have any text to output yet?
- */
- if(nextp) {
-/*
- * If there was already some text in rbuff before this function
- * was called, then it will have been used as a prompt. Arrange
- * to rewrite this prefix, plus the new suffix, by moving back to
- * the start of the line.
- */
- if(len > 0)
- (void) pty_write_to_fd(STDOUT_FILENO, "\r", 1);
-/*
- * Write everything up to the last newline to stdout.
- */
- (void) pty_write_to_fd(STDOUT_FILENO, rbuff, nextp - rbuff);
-/*
- * Start a new line.
- */
- (void) pty_write_to_fd(STDOUT_FILENO, "\r\n", 2);
-/*
- * Skip trailing carriage returns and newlines.
- */
- while(*nextp=='\n' || *nextp=='\r')
- nextp++;
-/*
- * Move any unwritten text following the newline, to the start of the
- * buffer.
- */
- memmove(rbuff, nextp, len - (nextp - rbuff) + 1);
- };
- } while(pty_master_readable(fd, PTY_READ_TIMEOUT));
-/*
- * Make the incomplete line in the output buffer the current prompt.
- */
- gl_replace_prompt(gl, rbuff);
- return GLFD_REFRESH;
-}
-
-/*.......................................................................
- * Write a given string to a specified file descriptor.
- *
- * Input:
- * fd int The file descriptor to write to.
- * string const char * The string to write (of at least 'n' characters).
- * n int The number of characters to write.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int pty_write_to_fd(int fd, const char *string, int n)
-{
- int ndone = 0; /* The number of characters written so far */
-/*
- * Do as many writes as are needed to write the whole string.
- */
- while(ndone < n) {
- int nnew = write(fd, string + ndone, n - ndone);
- if(nnew > 0)
- ndone += nnew;
- else if(errno != EINTR)
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * This is the signal handler that is called when the child process
- * that is running the user's program exits for any reason. It closes
- * the slave end of the terminal, so that gl_get_line() in the parent
- * process sees an end of file.
- */
-static void pty_child_exited(int sig)
-{
- raise(SIGINT);
-}
-
-/*.......................................................................
- * Return non-zero after a given amount of time if there is data waiting
- * to be read from a given file descriptor.
- *
- * Input:
- * fd int The descriptor to watch.
- * usec long The number of micro-seconds to wait for input to
- * arrive before giving up.
- * Output:
- * return int 0 - No data is waiting to be read (or select isn't
- * available).
- * 1 - Data is waiting to be read.
- */
-static int pty_master_readable(int fd, long usec)
-{
-#if HAVE_SELECT
- fd_set rfds; /* The set of file descriptors to check */
- struct timeval timeout; /* The timeout */
- FD_ZERO(&rfds);
- FD_SET(fd, &rfds);
- timeout.tv_sec = 0;
- timeout.tv_usec = usec;
- return select(fd+1, &rfds, NULL, NULL, &timeout) == 1;
-#else
- return 0;
-#endif
-}
diff --git a/libtecla-1.4.1/expand.c b/libtecla-1.4.1/expand.c
deleted file mode 100644
index c1600ab..0000000
--- a/libtecla-1.4.1/expand.c
+++ /dev/null
@@ -1,1265 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#include "freelist.h"
-#include "direader.h"
-#include "pathutil.h"
-#include "homedir.h"
-#include "stringrp.h"
-#include "libtecla.h"
-
-/*
- * Specify the number of elements to extend the files[] array by
- * when it proves to be too small. This also sets the initial size
- * of the array.
- */
-#define MATCH_BLK_FACT 256
-
-/*
- * A list of directory iterators is maintained using nodes of the
- * following form.
- */
-typedef struct DirNode DirNode;
-struct DirNode {
- DirNode *next; /* The next directory in the list */
- DirNode *prev; /* The node that precedes this node in the list */
- DirReader *dr; /* The directory reader object */
-};
-
-typedef struct {
- FreeList *mem; /* Memory for DirNode list nodes */
- DirNode *head; /* The head of the list of used and unused cache nodes */
- DirNode *next; /* The next unused node between head and tail */
- DirNode *tail; /* The tail of the list of unused cache nodes */
-} DirCache;
-
-/*
- * Specify how many directory cache nodes to allocate at a time.
- */
-#define DIR_CACHE_BLK 20
-
-/*
- * Set the maximum length allowed for usernames.
- */
-#define USR_LEN 100
-
-/*
- * Set the maximum length allowed for environment variable names.
- */
-#define ENV_LEN 100
-
-/*
- * Set the max length of the error-reporting string. There is no point
- * in this being longer than the width of a typical terminal window.
- * In composing error messages, I have assumed that this number is
- * at least 80, so you don't decrease it below this number.
- */
-#define ERRLEN 200
-
-struct ExpandFile {
- StringGroup *sg; /* A list of string segments in which */
- /* matching filenames are stored. */
- DirCache cache; /* The cache of directory reader objects */
- PathName *path; /* The pathname being matched */
- HomeDir *home; /* Home-directory lookup object */
- int files_dim; /* The allocated dimension of result.files[] */
- char usrnam[USR_LEN+1]; /* A user name */
- char envnam[ENV_LEN+1]; /* An environment variable name */
- char errmsg[ERRLEN+1]; /* Error-report buffer */
- FileExpansion result; /* The container used to return the results of */
- /* expanding a path. */
-};
-
-static int ef_record_pathname(ExpandFile *ef, const char *pathname,
- int remove_escapes);
-static char *ef_cache_pathname(ExpandFile *ef, const char *pathname,
- int remove_escapes);
-static void ef_clear_files(ExpandFile *ef);
-
-static DirNode *ef_open_dir(ExpandFile *ef, const char *pathname);
-static DirNode *ef_close_dir(ExpandFile *ef, DirNode *node);
-static char *ef_expand_special(ExpandFile *ef, const char *path, int pathlen);
-static int ef_match_relative_pathname(ExpandFile *ef, DirReader *dr,
- const char *pattern, int separate);
-static int ef_matches_range(int c, const char *pattern, const char **endp);
-static int ef_string_matches_pattern(const char *file, const char *pattern,
- int xplicit, const char *nextp);
-static int ef_cmp_strings(const void *v1, const void *v2);
-
-/*.......................................................................
- * Create the resources needed to expand filenames.
- *
- * Output:
- * return ExpandFile * The new object, or NULL on error.
- */
-ExpandFile *new_ExpandFile(void)
-{
- ExpandFile *ef; /* The object to be returned */
-/*
- * Allocate the container.
- */
- ef = (ExpandFile *) malloc(sizeof(ExpandFile));
- if(!ef) {
- fprintf(stderr, "new_ExpandFile: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_ExpandFile().
- */
- ef->sg = NULL;
- ef->cache.mem = NULL;
- ef->cache.head = NULL;
- ef->cache.next = NULL;
- ef->cache.tail = NULL;
- ef->path = NULL;
- ef->home = NULL;
- ef->result.files = NULL;
- ef->result.nfile = 0;
- ef->usrnam[0] = '\0';
- ef->envnam[0] = '\0';
- ef->errmsg[0] = '\0';
-/*
- * Allocate a list of string segments for storing filenames.
- */
- ef->sg = _new_StringGroup(_pu_pathname_dim());
- if(!ef->sg)
- return del_ExpandFile(ef);
-/*
- * Allocate a freelist for allocating directory cache nodes.
- */
- ef->cache.mem = _new_FreeList("new_ExpandFile", sizeof(DirNode), DIR_CACHE_BLK);
- if(!ef->cache.mem)
- return del_ExpandFile(ef);
-/*
- * Allocate a pathname buffer.
- */
- ef->path = _new_PathName();
- if(!ef->path)
- return del_ExpandFile(ef);
-/*
- * Allocate an object for looking up home-directories.
- */
- ef->home = _new_HomeDir();
- if(!ef->home)
- return del_ExpandFile(ef);
-/*
- * Allocate an array for files. This will be extended later if needed.
- */
- ef->files_dim = MATCH_BLK_FACT;
- ef->result.files = (char **) malloc(sizeof(ef->result.files[0]) *
- ef->files_dim);
- if(!ef->result.files) {
- fprintf(stderr,
- "new_ExpandFile: Insufficient memory to allocate array of files.\n");
- return del_ExpandFile(ef);
- };
- return ef;
-}
-
-/*.......................................................................
- * Delete a ExpandFile object.
- *
- * Input:
- * ef ExpandFile * The object to be deleted.
- * Output:
- * return ExpandFile * The deleted object (always NULL).
- */
-ExpandFile *del_ExpandFile(ExpandFile *ef)
-{
- if(ef) {
- DirNode *dnode;
-/*
- * Delete the string segments.
- */
- ef->sg = _del_StringGroup(ef->sg);
-/*
- * Delete the cached directory readers.
- */
- for(dnode=ef->cache.head; dnode; dnode=dnode->next)
- dnode->dr = _del_DirReader(dnode->dr);
-/*
- * Delete the memory from which the DirNode list was allocated, thus
- * deleting the list at the same time.
- */
- ef->cache.mem = _del_FreeList("del_ExpandFile", ef->cache.mem, 1);
- ef->cache.head = ef->cache.tail = ef->cache.next = NULL;
-/*
- * Delete the pathname buffer.
- */
- ef->path = _del_PathName(ef->path);
-/*
- * Delete the home-directory lookup object.
- */
- ef->home = _del_HomeDir(ef->home);
-/*
- * Delete the array of pointers to files.
- */
- if(ef->result.files) {
- free(ef->result.files);
- ef->result.files = NULL;
- };
-/*
- * Delete the container.
- */
- free(ef);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Expand a pathname, converting ~user/ and ~/ patterns at the start
- * of the pathname to the corresponding home directories, replacing
- * $envvar with the value of the corresponding environment variable,
- * and then, if there are any wildcards, matching these against existing
- * filenames.
- *
- * If no errors occur, a container is returned containing the array of
- * files that resulted from the expansion. If there were no wildcards
- * in the input pathname, this will contain just the original pathname
- * after expansion of ~ and $ expressions. If there were any wildcards,
- * then the array will contain the files that matched them. Note that
- * if there were any wildcards but no existing files match them, this
- * is counted as an error and NULL is returned.
- *
- * The supported wildcards and their meanings are:
- * * - Match any sequence of zero or more characters.
- * ? - Match any single character.
- * [chars] - Match any single character that appears in 'chars'.
- * If 'chars' contains an expression of the form a-b,
- * then any character between a and b, including a and b,
- * matches. The '-' character looses its special meaning
- * as a range specifier when it appears at the start
- * of the sequence of characters.
- * [^chars] - The same as [chars] except that it matches any single
- * character that doesn't appear in 'chars'.
- *
- * Wildcard expressions are applied to individual filename components.
- * They don't match across directory separators. A '.' character at
- * the beginning of a filename component must also be matched
- * explicitly by a '.' character in the input pathname, since these
- * are UNIX's hidden files.
- *
- * Input:
- * ef ExpandFile * The pathname expansion resource object.
- * path char * The path name to be expanded.
- * pathlen int The length of the suffix of path[] that
- * constitutes the filename to be expanded,
- * or -1 to specify that the whole of the
- * path string should be used. Note that
- * regardless of the value of this argument,
- * path[] must contain a '\0' terminated
- * string, since this function checks that
- * pathlen isn't mistakenly too long.
- * Output:
- * return FileExpansion * A pointer to a container within the given
- * ExpandFile object. This contains an array
- * of the pathnames that resulted from expanding
- * ~ and $ expressions and from matching any
- * wildcards, sorted into lexical order.
- * This container and its contents will be
- * recycled on subsequent calls, so if you need
- * to keep the results of two successive runs,
- * you will either have to allocate a private
- * copy of the array, or use two ExpandFile
- * objects.
- *
- * On error NULL is returned. A description
- * of the error can be acquired by calling the
- * ef_last_error() function.
- */
-FileExpansion *ef_expand_file(ExpandFile *ef, const char *path, int pathlen)
-{
- DirNode *dnode; /* A directory-reader cache node */
- const char *dirname; /* The name of the top level directory of the search */
- const char *pptr; /* A pointer into path[] */
- int wild; /* True if the path contains any wildcards */
-/*
- * Check the arguments.
- */
- if(!ef || !path) {
- if(ef)
- strcpy(ef->errmsg, "ef_expand_file: NULL path argument");
- else
- fprintf(stderr, "ef_expand_file: NULL argument(s).\n");
- return NULL;
- };
-/*
- * If the caller specified that the whole of path[] be matched,
- * work out the corresponding length.
- */
- if(pathlen < 0 || pathlen > strlen(path))
- pathlen = strlen(path);
-/*
- * Discard previous expansion results.
- */
- ef_clear_files(ef);
-/*
- * Preprocess the path, expanding ~/, ~user/ and $envvar references,
- * using ef->path as a work directory and returning a pointer to
- * a copy of the resulting pattern in the cache.
- */
- path = ef_expand_special(ef, path, pathlen);
- if(!path)
- return NULL;
-/*
- * Clear the pathname buffer.
- */
- _pn_clear_path(ef->path);
-/*
- * Does the pathname contain any wildcards?
- */
- for(wild=0,pptr=path; !wild && *pptr; pptr++) {
- switch(*pptr) {
- case '\\': /* Skip escaped characters */
- if(pptr[1])
- pptr++;
- break;
- case '*': case '?': case '[': /* A wildcard character? */
- wild = 1;
- break;
- };
- };
-/*
- * If there are no wildcards to match, copy the current expanded
- * path into the output array, removing backslash escapes while doing so.
- */
- if(!wild) {
- if(ef_record_pathname(ef, path, 1))
- return NULL;
-/*
- * Does the filename exist?
- */
- ef->result.exists = _pu_file_exists(ef->result.files[0]);
-/*
- * Match wildcards against existing files.
- */
- } else {
-/*
- * Only existing files that match the pattern will be returned in the
- * cache.
- */
- ef->result.exists = 1;
-/*
- * Treat matching of the root-directory as a special case since it
- * isn't contained in a directory.
- */
- if(strcmp(path, FS_ROOT_DIR) == 0) {
- if(ef_record_pathname(ef, FS_ROOT_DIR, 0))
- return NULL;
- } else {
-/*
- * What should the top level directory of the search be?
- */
- if(strncmp(path, FS_ROOT_DIR, FS_ROOT_DIR_LEN) == 0) {
- dirname = FS_ROOT_DIR;
- if(!_pn_append_to_path(ef->path, FS_ROOT_DIR, -1, 0)) {
- strcpy(ef->errmsg, "Insufficient memory to record path");
- return NULL;
- };
- path += FS_ROOT_DIR_LEN;
- } else {
- dirname = FS_PWD;
- };
-/*
- * Open the top-level directory of the search.
- */
- dnode = ef_open_dir(ef, dirname);
- if(!dnode)
- return NULL;
-/*
- * Recursively match successive directory components of the path.
- */
- if(ef_match_relative_pathname(ef, dnode->dr, path, 0)) {
- dnode = ef_close_dir(ef, dnode);
- return NULL;
- };
-/*
- * Cleanup.
- */
- dnode = ef_close_dir(ef, dnode);
- };
-/*
- * No files matched?
- */
- if(ef->result.nfile < 1) {
- strcpy(ef->errmsg, "No files match");
- return NULL;
- };
-/*
- * Sort the pathnames that matched.
- */
- qsort(ef->result.files, ef->result.nfile, sizeof(ef->result.files[0]),
- ef_cmp_strings);
- };
-/*
- * Return the result container.
- */
- return &ef->result;
-}
-
-/*.......................................................................
- * Attempt to recursively match the given pattern with the contents of
- * the current directory, descending sub-directories as needed.
- *
- * Input:
- * ef ExpandFile * The pathname expansion resource object.
- * dr DirReader * The directory reader object of the directory
- * to be searched.
- * pattern const char * The pattern to match with files in the current
- * directory.
- * separate int When appending a filename from the specified
- * directory to ef->pathname, insert a directory
- * separator between the existing pathname and
- * the filename, unless separate is zero.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int ef_match_relative_pathname(ExpandFile *ef, DirReader *dr,
- const char *pattern, int separate)
-{
- const char *nextp; /* The pointer to the character that follows the part */
- /* of the pattern that is to be matched with files */
- /* in the current directory. */
- char *file; /* The name of the file being matched */
- int pathlen; /* The length of ef->pathname[] on entry to this */
- /* function */
-/*
- * Record the current length of the pathname string recorded in
- * ef->pathname[].
- */
- pathlen = strlen(ef->path->name);
-/*
- * Get a pointer to the character that follows the end of the part of
- * the pattern that should be matched to files within the current directory.
- * This will either point to a directory separator, or to the '\0' terminator
- * of the pattern string.
- */
- for(nextp=pattern; *nextp && strncmp(nextp, FS_DIR_SEP, FS_DIR_SEP_LEN) != 0;
- nextp++)
- ;
-/*
- * Read each file from the directory, attempting to match it to the
- * current pattern.
- */
- while((file=_dr_next_file(dr)) != NULL) {
-/*
- * Does the latest file match the pattern up to nextp?
- */
- if(ef_string_matches_pattern(file, pattern, file[0]=='.', nextp)) {
-/*
- * Append the new directory entry to the current matching pathname.
- */
- if((separate && _pn_append_to_path(ef->path, FS_DIR_SEP, -1, 0)==NULL) ||
- _pn_append_to_path(ef->path, file, -1, 0)==NULL) {
- strcpy(ef->errmsg, "Insufficient memory to record path");
- return 1;
- };
-/*
- * If we have reached the end of the pattern, record the accumulated
- * pathname in the list of matching files.
- */
- if(*nextp == '\0') {
- if(ef_record_pathname(ef, ef->path->name, 0))
- return 1;
-/*
- * If the matching directory entry is a subdirectory, and the
- * next character of the pattern is a directory separator,
- * recursively call the current function to scan the sub-directory
- * for matches.
- */
- } else if(_pu_path_is_dir(ef->path->name) &&
- strncmp(nextp, FS_DIR_SEP, FS_DIR_SEP_LEN) == 0) {
-/*
- * If the pattern finishes with the directory separator, then
- * record the pathame as matching.
- */
- if(nextp[FS_DIR_SEP_LEN] == '\0') {
- if(ef_record_pathname(ef, ef->path->name, 0))
- return 1;
-/*
- * Match files within the directory.
- */
- } else {
- DirNode *subdnode = ef_open_dir(ef, ef->path->name);
- if(subdnode) {
- if(ef_match_relative_pathname(ef, subdnode->dr,
- nextp+FS_DIR_SEP_LEN, 1)) {
- subdnode = ef_close_dir(ef, subdnode);
- return 1;
- };
- subdnode = ef_close_dir(ef, subdnode);
- };
- };
- };
-/*
- * Remove the latest filename from the pathname string, so that
- * another matching file can be appended.
- */
- ef->path->name[pathlen] = '\0';
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Record a new matching filename.
- *
- * Input:
- * ef ExpandFile * The filename-match resource object.
- * pathname const char * The pathname to record.
- * remove_escapes int If true, remove backslash escapes in the
- * recorded copy of the pathname.
- * Output:
- * return int 0 - OK.
- * 1 - Error (ef->errmsg will contain a
- * description of the error).
- */
-static int ef_record_pathname(ExpandFile *ef, const char *pathname,
- int remove_escapes)
-{
- char *copy; /* The recorded copy of pathname[] */
-/*
- * Attempt to make a copy of the pathname in the cache.
- */
- copy = ef_cache_pathname(ef, pathname, remove_escapes);
- if(!copy)
- return 1;
-/*
- * If there isn't room to record a pointer to the recorded pathname in the
- * array of files, attempt to extend the array.
- */
- if(ef->result.nfile + 1 > ef->files_dim) {
- int files_dim = ef->files_dim + MATCH_BLK_FACT;
- char **files = (char **) realloc(ef->result.files,
- files_dim * sizeof(files[0]));
- if(!files) {
- sprintf(ef->errmsg,
- "Insufficient memory to record all of the matching filenames");
- return 1;
- };
- ef->result.files = files;
- ef->files_dim = files_dim;
- };
-/*
- * Record a pointer to the new match.
- */
- ef->result.files[ef->result.nfile++] = copy;
- return 0;
-}
-
-/*.......................................................................
- * Record a pathname in the cache.
- *
- * Input:
- * ef ExpandFile * The filename-match resource object.
- * pathname char * The pathname to record.
- * remove_escapes int If true, remove backslash escapes in the
- * copy of the pathname.
- * Output:
- * return char * The pointer to the copy of the pathname.
- * On error NULL is returned and a description
- * of the error is left in ef->errmsg[].
- */
-static char *ef_cache_pathname(ExpandFile *ef, const char *pathname,
- int remove_escapes)
-{
- char *copy = _sg_store_string(ef->sg, pathname, remove_escapes);
- if(!copy)
- strcpy(ef->errmsg, "Insufficient memory to store pathname");
- return copy;
-}
-
-/*.......................................................................
- * Clear the results of the previous expansion operation, ready for the
- * next.
- *
- * Input:
- * ef ExpandFile * The pathname expansion resource object.
- */
-static void ef_clear_files(ExpandFile *ef)
-{
- _clr_StringGroup(ef->sg);
- _pn_clear_path(ef->path);
- ef->result.exists = 0;
- ef->result.nfile = 0;
- ef->errmsg[0] = '\0';
- return;
-}
-
-/*.......................................................................
- * Get a new directory reader object from the cache.
- *
- * Input:
- * ef ExpandFile * The pathname expansion resource object.
- * pathname const char * The pathname of the directory.
- * Output:
- * return DirNode * The cache entry of the new directory reader,
- * or NULL on error. On error, ef->errmsg will
- * contain a description of the error.
- */
-static DirNode *ef_open_dir(ExpandFile *ef, const char *pathname)
-{
- char *errmsg = NULL; /* An error message from a called function */
- DirNode *node; /* The cache node used */
-/*
- * Get the directory reader cache.
- */
- DirCache *cache = &ef->cache;
-/*
- * Extend the cache if there are no free cache nodes.
- */
- if(!cache->next) {
- node = (DirNode *) _new_FreeListNode(cache->mem);
- if(!node) {
- sprintf(ef->errmsg, "Insufficient memory to open a new directory");
- return NULL;
- };
-/*
- * Initialize the cache node.
- */
- node->next = NULL;
- node->prev = NULL;
- node->dr = NULL;
-/*
- * Allocate a directory reader object.
- */
- node->dr = _new_DirReader();
- if(!node->dr) {
- sprintf(ef->errmsg, "Insufficient memory to open a new directory");
- node = (DirNode *) _del_FreeListNode(cache->mem, node);
- return NULL;
- };
-/*
- * Append the node to the cache list.
- */
- node->prev = cache->tail;
- if(cache->tail)
- cache->tail->next = node;
- else
- cache->head = node;
- cache->next = cache->tail = node;
- };
-/*
- * Get the first unused node, but don't remove it from the list yet.
- */
- node = cache->next;
-/*
- * Attempt to open the specified directory.
- */
- if(_dr_open_dir(node->dr, pathname, &errmsg)) {
- strncpy(ef->errmsg, errmsg, ERRLEN);
- ef->errmsg[ERRLEN] = '\0';
- return NULL;
- };
-/*
- * Now that we have successfully opened the specified directory,
- * remove the cache node from the list, and relink the list around it.
- */
- cache->next = node->next;
- if(node->prev)
- node->prev->next = node->next;
- else
- cache->head = node->next;
- if(node->next)
- node->next->prev = node->prev;
- else
- cache->tail = node->prev;
- node->next = node->prev = NULL;
-/*
- * Return the successfully initialized cache node to the caller.
- */
- return node;
-}
-
-/*.......................................................................
- * Return a directory reader object to the cache, after first closing
- * the directory that it was managing.
- *
- * Input:
- * ef ExpandFile * The pathname expansion resource object.
- * node DirNode * The cache entry of the directory reader, as returned
- * by ef_open_dir().
- * Output:
- * return DirNode * The deleted DirNode (ie. allways NULL).
- */
-static DirNode *ef_close_dir(ExpandFile *ef, DirNode *node)
-{
-/*
- * Get the directory reader cache.
- */
- DirCache *cache = &ef->cache;
-/*
- * Close the directory.
- */
- _dr_close_dir(node->dr);
-/*
- * Return the node to the tail of the cache list.
- */
- node->next = NULL;
- node->prev = cache->tail;
- if(cache->tail)
- cache->tail->next = node;
- else
- cache->head = cache->tail = node;
- if(!cache->next)
- cache->next = node;
- return NULL;
-}
-
-/*.......................................................................
- * Return non-zero if the specified file name matches a given glob
- * pattern.
- *
- * Input:
- * file const char * The file-name component to be matched to the pattern.
- * pattern const char * The start of the pattern to match against file[].
- * xplicit int If non-zero, the first character must be matched
- * explicitly (ie. not with a wildcard).
- * nextp const char * The pointer to the the character following the
- * end of the pattern in pattern[].
- * Output:
- * return int 0 - Doesn't match.
- * 1 - The file-name string matches the pattern.
- */
-static int ef_string_matches_pattern(const char *file, const char *pattern,
- int xplicit, const char *nextp)
-{
- const char *pptr = pattern; /* The pointer used to scan the pattern */
- const char *fptr = file; /* The pointer used to scan the filename string */
-/*
- * Match each character of the pattern in turn.
- */
- while(pptr < nextp) {
-/*
- * Handle the next character of the pattern.
- */
- switch(*pptr) {
-/*
- * A match zero-or-more characters wildcard operator.
- */
- case '*':
-/*
- * Skip the '*' character in the pattern.
- */
- pptr++;
-/*
- * If wildcards aren't allowed, the pattern doesn't match.
- */
- if(xplicit)
- return 0;
-/*
- * If the pattern ends with a the '*' wildcard, then the
- * rest of the filename matches this.
- */
- if(pptr >= nextp)
- return 1;
-/*
- * Using the wildcard to match successively longer sections of
- * the remaining characters of the filename, attempt to match
- * the tail of the filename against the tail of the pattern.
- */
- for( ; *fptr; fptr++) {
- if(ef_string_matches_pattern(fptr, pptr, 0, nextp))
- return 1;
- };
- return 0; /* The pattern following the '*' didn't match */
- break;
-/*
- * A match-one-character wildcard operator.
- */
- case '?':
-/*
- * If there is a character to be matched, skip it and advance the
- * pattern pointer.
- */
- if(!xplicit && *fptr) {
- fptr++;
- pptr++;
-/*
- * If we hit the end of the filename string, there is no character
- * matching the operator, so the string doesn't match.
- */
- } else {
- return 0;
- };
- break;
-/*
- * A character range operator, with the character ranges enclosed
- * in matching square brackets.
- */
- case '[':
- if(xplicit || !ef_matches_range(*fptr++, ++pptr, &pptr))
- return 0;
- break;
-/*
- * A backslash in the pattern prevents the following character as
- * being seen as a special character.
- */
- case '\\':
- pptr++;
- /* Note fallthrough to default */
-/*
- * A normal character to be matched explicitly.
- */
- default:
- if(*fptr == *pptr) {
- fptr++;
- pptr++;
- } else {
- return 0;
- };
- break;
- };
-/*
- * After passing the first character, turn off the explicit match
- * requirement.
- */
- xplicit = 0;
- };
-/*
- * To get here the pattern must have been exhausted. If the filename
- * string matched, then the filename string must also have been
- * exhausted.
- */
- return *fptr == '\0';
-}
-
-/*.......................................................................
- * Match a character range expression terminated by an unescaped close
- * square bracket.
- *
- * Input:
- * c int The character to be matched with the range
- * pattern.
- * pattern const char * The range pattern to be matched (ie. after the
- * initiating '[' character).
- * endp const char ** On output a pointer to the character following the
- * range expression will be assigned to *endp.
- * Output:
- * return int 0 - Doesn't match.
- * 1 - The character matched.
- */
-static int ef_matches_range(int c, const char *pattern, const char **endp)
-{
- const char *pptr = pattern; /* The pointer used to scan the pattern */
- int invert = 0; /* True to invert the sense of the match */
- int matched = 0; /* True if the character matched the pattern */
-/*
- * If the first character is a caret, the sense of the match is
- * inverted and only if the character isn't one of those in the
- * range, do we say that it matches.
- */
- if(*pptr == '^') {
- pptr++;
- invert = 1;
- };
-/*
- * The hyphen is only a special character when it follows the first
- * character of the range (not including the caret).
- */
- if(*pptr == '-') {
- pptr++;
- if(c == '-') {
- *endp = pptr;
- matched = 1;
- };
-/*
- * Skip other leading '-' characters since they make no sense.
- */
- while(*pptr == '-')
- pptr++;
- };
-/*
- * The hyphen is only a special character when it follows the first
- * character of the range (not including the caret or a hyphen).
- */
- if(*pptr == ']') {
- pptr++;
- if(c == ']') {
- *endp = pptr;
- matched = 1;
- };
- };
-/*
- * Having dealt with the characters that have special meanings at
- * the beginning of a character range expression, see if the
- * character matches any of the remaining characters of the range,
- * up until a terminating ']' character is seen.
- */
- while(!matched && *pptr && *pptr != ']') {
-/*
- * Is this a range of characters signaled by the two end characters
- * separated by a hyphen?
- */
- if(*pptr == '-') {
- if(pptr[1] != ']') {
- if(c >= pptr[-1] && c <= pptr[1])
- matched = 1;
- pptr += 2;
- };
-/*
- * A normal character to be compared directly.
- */
- } else if(*pptr++ == c) {
- matched = 1;
- };
- };
-/*
- * Find the terminating ']'.
- */
- while(*pptr && *pptr != ']')
- pptr++;
-/*
- * Did we find a terminating ']'?
- */
- if(*pptr == ']') {
- *endp = pptr + 1;
- return matched ? !invert : invert;
- };
-/*
- * If the pattern didn't end with a ']' then it doesn't match, regardless
- * of the value of the required sense of the match.
- */
- *endp = pptr;
- return 0;
-}
-
-/*.......................................................................
- * This is a qsort() comparison function used to sort strings.
- *
- * Input:
- * v1, v2 void * Pointers to the two strings to be compared.
- * Output:
- * return int -1 -> v1 < v2.
- * 0 -> v1 == v2
- * 1 -> v1 > v2
- */
-static int ef_cmp_strings(const void *v1, const void *v2)
-{
- char * const *s1 = (char * const *) v1;
- char * const *s2 = (char * const *) v2;
- return strcmp(*s1, *s2);
-}
-
-/*.......................................................................
- * Preprocess a path, expanding ~/, ~user/ and $envvar references, using
- * ef->path as a work buffer, then copy the result into a cache entry,
- * and return a pointer to this copy.
- *
- * Input:
- * ef ExpandFile * The resource object of the file matcher.
- * pathlen int The length of the prefix of path[] to be expanded.
- * Output:
- * return char * A pointer to a copy of the output path in the
- * cache. On error NULL is returned, and a description
- * of the error is left in ef->errmsg[].
- */
-static char *ef_expand_special(ExpandFile *ef, const char *path, int pathlen)
-{
- int spos; /* The index of the start of the path segment that needs */
- /* to be copied from path[] to the output pathname. */
- int ppos; /* The index of a character in path[] */
- char *pptr; /* A pointer into the output path */
- int escaped; /* True if the previous character was a '\' */
- int i;
-/*
- * Clear the pathname buffer.
- */
- _pn_clear_path(ef->path);
-/*
- * We need to perform two passes, one to expand environment variables
- * and a second to do tilde expansion. This caters for the case
- * where an initial dollar expansion yields a tilde expression.
- */
- escaped = 0;
- for(spos=ppos=0; ppos < pathlen; ppos++) {
- int c = path[ppos];
- if(escaped) {
- escaped = 0;
- } else if(c == '\\') {
- escaped = 1;
- } else if(c == '$') {
- int envlen; /* The length of the environment variable */
- char *value; /* The value of the environment variable */
-/*
- * Record the preceding unrecorded part of the pathname.
- */
- if(spos < ppos && _pn_append_to_path(ef->path, path + spos, ppos-spos, 0)
- == NULL) {
- strcpy(ef->errmsg, "Insufficient memory to expand path");
- return NULL;
- };
-/*
- * Skip the dollar.
- */
- ppos++;
-/*
- * Copy the environment variable name that follows the dollar into
- * ef->envnam[], stopping if a directory separator or end of string
- * is seen.
- */
- for(envlen=0; envlen<ENV_LEN && ppos < pathlen &&
- strncmp(path + ppos, FS_DIR_SEP, FS_DIR_SEP_LEN); envlen++)
- ef->envnam[envlen] = path[ppos++];
-/*
- * If the username overflowed the buffer, treat it as invalid (note that
- * on most unix systems only 8 characters are allowed in a username,
- * whereas our ENV_LEN is much bigger than that.
- */
- if(envlen >= ENV_LEN) {
- strcpy(ef->errmsg, "Environment variable name too long");
- return NULL;
- };
-/*
- * Terminate the environment variable name.
- */
- ef->envnam[envlen] = '\0';
-/*
- * Lookup the value of the environment variable.
- */
- value = getenv(ef->envnam);
- if(!value) {
- const char *fmt = "No expansion found for: $%.*s";
- sprintf(ef->errmsg, fmt, ERRLEN - strlen(fmt), ef->envnam);
- return NULL;
- };
-/*
- * Copy the value of the environment variable into the output pathname.
- */
- if(_pn_append_to_path(ef->path, value, -1, 0) == NULL) {
- strcpy(ef->errmsg, "Insufficient memory to expand path");
- return NULL;
- };
-/*
- * Record the start of the uncopied tail of the input pathname.
- */
- spos = ppos;
- };
- };
-/*
- * Record the uncopied tail of the pathname.
- */
- if(spos < ppos && _pn_append_to_path(ef->path, path + spos, ppos-spos, 0)
- == NULL) {
- strcpy(ef->errmsg, "Insufficient memory to expand path");
- return NULL;
- };
-/*
- * If the first character of the resulting pathname is a tilde,
- * then attempt to substitute the home directory of the specified user.
- */
- pptr = ef->path->name;
- if(*pptr == '~' && path[0] != '\\') {
- int usrlen; /* The length of the username following the tilde */
- const char *homedir; /* The home directory of the user */
- int homelen; /* The length of the home directory string */
- int plen; /* The current length of the path */
- int skip=0; /* The number of characters to skip after the ~user */
-/*
- * Get the current length of the output path.
- */
- plen = strlen(ef->path->name);
-/*
- * Skip the tilde.
- */
- pptr++;
-/*
- * Copy the optional username that follows the tilde into ef->usrnam[].
- */
- for(usrlen=0; usrlen<USR_LEN && *pptr &&
- strncmp(pptr, FS_DIR_SEP, FS_DIR_SEP_LEN); usrlen++)
- ef->usrnam[usrlen] = *pptr++;
-/*
- * If the username overflowed the buffer, treat it as invalid (note that
- * on most unix systems only 8 characters are allowed in a username,
- * whereas our USR_LEN is much bigger than that.
- */
- if(usrlen >= USR_LEN) {
- strcpy(ef->errmsg, "Username too long");
- return NULL;
- };
-/*
- * Terminate the username string.
- */
- ef->usrnam[usrlen] = '\0';
-/*
- * Lookup the home directory of the user.
- */
- homedir = _hd_lookup_home_dir(ef->home, ef->usrnam);
- if(!homedir) {
- strncpy(ef->errmsg, _hd_last_home_dir_error(ef->home), ERRLEN);
- ef->errmsg[ERRLEN] = '\0';
- return NULL;
- };
- homelen = strlen(homedir);
-/*
- * ~user and ~ are usually followed by a directory separator to
- * separate them from the file contained in the home directory.
- * If the home directory is the root directory, then we don't want
- * to follow the home directory by a directory separator, so we must
- * erase it.
- */
- if(strcmp(homedir, FS_ROOT_DIR) == 0 &&
- strncmp(pptr, FS_DIR_SEP, FS_DIR_SEP_LEN) == 0) {
- skip = FS_DIR_SEP_LEN;
- };
-/*
- * If needed, increase the size of the pathname buffer to allow it
- * to accomodate the home directory instead of the tilde expression.
- * Note that pptr may not be valid after this call.
- */
- if(_pn_resize_path(ef->path, plen - usrlen - 1 - skip + homelen)==NULL) {
- strcpy(ef->errmsg, "Insufficient memory to expand filename");
- return NULL;
- };
-/*
- * Move the part of the pathname that follows the tilde expression to
- * the end of where the home directory will need to be inserted.
- */
- memmove(ef->path->name + homelen,
- ef->path->name + 1 + usrlen + skip, plen - usrlen - 1 - skip+1);
-/*
- * Write the home directory at the beginning of the string.
- */
- for(i=0; i<homelen; i++)
- ef->path->name[i] = homedir[i];
- };
-/*
- * Copy the result into the cache, and return a pointer to the copy.
- */
- return ef_cache_pathname(ef, ef->path->name, 0);
-}
-
-/*.......................................................................
- * Return a description of the last path-expansion error that occurred.
- *
- * Input:
- * ef ExpandFile * The path-expansion resource object.
- * Output:
- * return char * The description of the last error.
- */
-const char *ef_last_error(ExpandFile *ef)
-{
- return ef ? ef->errmsg : "NULL ExpandFile argument";
-}
-
-/*.......................................................................
- * Print out an array of matching files.
- *
- * Input:
- * result FileExpansion * The container of the sorted array of
- * expansions.
- * fp FILE * The output stream to write to.
- * term_width int The width of the terminal.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int ef_list_expansions(FileExpansion *result, FILE *fp, int term_width)
-{
- int maxlen; /* The length of the longest matching string */
- int width; /* The width of a column */
- int ncol; /* The number of columns to list */
- int nrow; /* The number of rows needed to list all of the expansions */
- int row,col; /* The row and column being written to */
- int i;
-/*
- * Check the arguments.
- */
- if(!result || !fp) {
- fprintf(stderr, "ef_list_expansions: NULL argument(s).\n");
- return 1;
- };
-/*
- * Not enough space to list anything?
- */
- if(term_width < 1)
- return 0;
-/*
- * Work out the maximum length of the matching filenames.
- */
- maxlen = 0;
- for(i=0; i<result->nfile; i++) {
- int len = strlen(result->files[i]);
- if(len > maxlen)
- maxlen = len;
- };
-/*
- * Nothing to list?
- */
- if(maxlen == 0)
- return 0;
-/*
- * Split the available terminal width into columns of maxlen + 2 characters.
- */
- width = maxlen + 2;
- ncol = term_width / width;
-/*
- * If the column width is greater than the terminal width, the matches will
- * just have to overlap onto the next line.
- */
- if(ncol < 1)
- ncol = 1;
-/*
- * How many rows will be needed?
- */
- nrow = (result->nfile + ncol - 1) / ncol;
-/*
- * Print the expansions out in ncol columns, sorted in row order within each
- * column.
- */
- for(row=0; row < nrow; row++) {
- for(col=0; col < ncol; col++) {
- int m = col*nrow + row;
- if(m < result->nfile) {
- const char *filename = result->files[m];
- if(fprintf(fp, "%s%-*s%s", filename,
- (int) (ncol > 1 ? maxlen - strlen(filename):0), "",
- col<ncol-1 ? " " : "\r\n") < 0)
- return 1;
- } else {
- if(fprintf(fp, "\r\n") < 0)
- return 1;
- break;
- };
- };
- };
- return 0;
-}
-
diff --git a/libtecla-1.4.1/freelist.c b/libtecla-1.4.1/freelist.c
deleted file mode 100644
index 4fe0472..0000000
--- a/libtecla-1.4.1/freelist.c
+++ /dev/null
@@ -1,393 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "freelist.h"
-
-typedef struct FreeListBlock FreeListBlock;
-struct FreeListBlock {
- FreeListBlock *next; /* The next block in the list */
- char *nodes; /* The array of free-list nodes */
-};
-
-struct FreeList {
- size_t node_size; /* The size of a free-list node */
- unsigned blocking_factor; /* The number of nodes per block */
- long nbusy; /* The number of nodes that are in use */
- FreeListBlock *block; /* The head of the list of free-list blocks */
- void *free_list; /* The free-list of nodes */
-};
-
-static FreeListBlock *_new_FreeListBlock(FreeList *fl);
-static FreeListBlock *_del_FreeListBlock(FreeListBlock *fl);
-static void _thread_FreeListBlock(FreeList *fl, FreeListBlock *block);
-
-/*.......................................................................
- * Allocate a new free-list from blocks of 'blocking_factor' objects of size
- * node_size.
- *
- * Input:
- * caller const char * The name of the calling function, for use in
- * error messages, or NULL to not report errors
- * to stderr.
- * node_size size_t The size of the free-list nodes to be returned
- * by _new_FreeListNode(). Use sizeof() to
- * determine this.
- * blocking_factor unsigned The number of objects of size 'object_size'
- * to allocate per block.
- * Output:
- * return FreeList * The new freelist, or NULL on error.
- */
-FreeList *_new_FreeList(const char *caller, size_t node_size,
- unsigned blocking_factor)
-{
- FreeList *fl; /* The new free-list container */
-/*
- * When a free-list node is on the free-list, it is used as a (void *)
- * link field. Roundup node_size to a mulitple of the size of a void
- * pointer. This, plus the fact that the array of nodes is obtained via
- * malloc, which returns memory suitably aligned for any object, will
- * ensure that the first sizeof(void *) bytes of each node will be
- * suitably aligned to use as a (void *) link pointer.
- */
- node_size = sizeof(void *) *
- ((node_size + sizeof(void *) - 1) / sizeof(void *));
-/*
- * Enfore a minimum block size.
- */
- if(blocking_factor < 1)
- blocking_factor = 1;
-/*
- * Allocate the container of the free list.
- */
- fl = (FreeList *) malloc(sizeof(FreeList));
- if(!fl) {
- if(caller)
- fprintf(stderr, "_new_FreeList (%s): Insufficient memory.\n", caller);
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to _del_FreeList().
- */
- fl->node_size = node_size;
- fl->blocking_factor = blocking_factor;
- fl->nbusy = 0;
- fl->block = NULL;
- fl->free_list = NULL;
-/*
- * Allocate the first block of memory.
- */
- fl->block = _new_FreeListBlock(fl);
- if(!fl->block) {
- if(caller)
- fprintf(stderr, "_new_FreeList (%s): Insufficient memory.\n", caller);
- return _del_FreeList(caller, fl, 1);
- };
-/*
- * Add the new list of nodes to the free-list.
- */
- fl->free_list = fl->block->nodes;
-/*
- * Return the free-list for use.
- */
- return fl;
-}
-
-/*.......................................................................
- * Re-thread a freelist to reclaim all allocated nodes.
- * This function should not be called unless if it is known that none
- * of the currently allocated nodes are still being used.
- *
- * Input:
- * fl FreeList * The free-list to be reset, or NULL.
- */
-void _rst_FreeList(FreeList *fl)
-{
- if(fl) {
- FreeListBlock *block;
-/*
- * Re-thread the nodes of each block into individual free-lists.
- */
- for(block=fl->block; block; block=block->next)
- _thread_FreeListBlock(fl, block);
-/*
- * Link all of the block freelists into one large freelist.
- */
- fl->free_list = NULL;
- for(block=fl->block; block; block=block->next) {
-/*
- * Locate the last node of the current block.
- */
- char *last_node = block->nodes + fl->node_size *
- (fl->blocking_factor - 1);
-/*
- * Make the link-field of the last node point to the first
- * node of the current freelist, then make the first node of the
- * new block the start of the freelist.
- */
- *(void **)last_node = fl->free_list;
- fl->free_list = block->nodes;
- };
-/*
- * All allocated nodes have now been returned to the freelist.
- */
- fl->nbusy = 0;
- };
-}
-
-/*.......................................................................
- * Delete a free-list.
- *
- * Input:
- * caller const char * The name of the calling function, for use in
- * error messages, or NULL if error messages
- * shouldn't be reported to stderr.
- * fl FreeList * The free-list to be deleted, or NULL.
- * force int If force==0 then _del_FreeList() will complain
- * and refuse to delete the free-list if any
- * of nodes have not been returned to the free-list.
- * If force!=0 then _del_FreeList() will not check
- * whether any nodes are still in use and will
- * always delete the list.
- * Output:
- * return FreeList * Always NULL (even if the list couldn't be
- * deleted).
- */
-FreeList *_del_FreeList(const char *caller, FreeList *fl, int force)
-{
- if(fl) {
-/*
- * Check whether any nodes are in use.
- */
- if(!force && _busy_FreeListNodes(fl) != 0) {
- if(caller)
- fprintf(stderr, "_del_FreeList (%s): %ld nodes are still in use.\n",
- caller, _busy_FreeListNodes(fl));
- return NULL;
- };
-/*
- * Delete the list blocks.
- */
- {
- FreeListBlock *next = fl->block;
- while(next) {
- FreeListBlock *block = next;
- next = block->next;
- block = _del_FreeListBlock(block);
- };
- };
- fl->block = NULL;
- fl->free_list = NULL;
-/*
- * Discard the container.
- */
- free(fl);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Allocate a new object from a free-list.
- *
- * Input:
- * fl FreeList * The free-list to return an object from.
- * Output:
- * return void * A new object of the size that was specified via
- * the node_size argument of _new_FreeList() when
- * the free-list was created, or NULL if there
- * is insufficient memory, or 'fl' is NULL.
- */
-void *_new_FreeListNode(FreeList *fl)
-{
- void *node; /* The node to be returned */
-/*
- * Check arguments.
- */
- if(!fl)
- return NULL;
-/*
- * If the free-list has been exhausted extend it by allocating
- * another block of nodes.
- */
- if(!fl->free_list) {
- FreeListBlock *block = _new_FreeListBlock(fl);
- if(!block)
- return NULL;
-/*
- * Prepend the new block to the list of free-list blocks.
- */
- block->next = fl->block;
- fl->block = block;
-/*
- * Add the new list of nodes to the free-list.
- */
- fl->free_list = fl->block->nodes;
- };
-/*
- * Remove and return a node from the front of the free list.
- */
- node = fl->free_list;
- fl->free_list = *(void **)node;
-/*
- * Record the loss of a node from the free-list.
- */
- fl->nbusy++;
-/*
- * Return the node.
- */
- return node;
-}
-
-/*.......................................................................
- * Return an object to the free-list that it was allocated from.
- *
- * Input:
- * caller const char * The name of the calling function, for use in
- * error messages, or NULL to not report errors
- * to stderr.
- * fl FreeList * The free-list from which the object was taken.
- * object void * The node to be returned.
- * Output:
- * return void * Always NULL.
- */
-void *_del_FreeListNode(FreeList *fl, void *object)
-{
-/*
- * Check arguments.
- */
- if(!fl)
- return NULL;
-/*
- * Return the node to the head of the free list.
- */
- if(object) {
- *(void **)object = fl->free_list;
- fl->free_list = object;
-/*
- * Record the return of the node to the free-list.
- */
- fl->nbusy--;
- };
- return NULL;
-}
-
-/*.......................................................................
- * Return a count of the number of nodes that are currently allocated.
- *
- * Input:
- * fl FreeList * The list to count wrt, or NULL.
- * Output:
- * return long The number of nodes (or 0 if fl==NULL).
- */
-long _busy_FreeListNodes(FreeList *fl)
-{
- return fl ? fl->nbusy : 0;
-}
-
-/*.......................................................................
- * Allocate a new list of free-list nodes. On return the nodes will
- * be linked together as a list starting with the node at the lowest
- * address and ending with a NULL next pointer.
- *
- * Input:
- * fl FreeList * The free-list to allocate the list for.
- * Output:
- * return FreeListBlock * The new linked block of free-list nodes,
- * or NULL on error.
- */
-static FreeListBlock *_new_FreeListBlock(FreeList *fl)
-{
- FreeListBlock *block; /* The new block to be returned */
-/*
- * Allocate the container.
- */
- block = (FreeListBlock *) malloc(sizeof(FreeListBlock));
- if(!block)
- return NULL;
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to _del_FreeListBlock().
- */
- block->next = NULL;
- block->nodes = NULL;
-/*
- * Allocate the block of nodes.
- */
- block->nodes = (char *) malloc(fl->node_size * fl->blocking_factor);
- if(!block->nodes)
- return _del_FreeListBlock(block);
-/*
- * Initialize the block as a linked list of FreeListNode's.
- */
- _thread_FreeListBlock(fl, block);
- return block;
-}
-
-/*.......................................................................
- * Link each node of a freelist block to the node that follows it.
- *
- * Input:
- * fl FreeList * The freelist that contains the block.
- * block FreeListBlock * The block to be threaded.
- */
-static void _thread_FreeListBlock(FreeList *fl, FreeListBlock *block)
-{
- char *mem = block->nodes;
- int i;
- for(i=0; i<fl->blocking_factor - 1; i++, mem += fl->node_size)
- *(void **)mem = mem + fl->node_size; /* Link to the next node */
- *(void **)mem = NULL; /* Terminate the list */
-}
-
-/*.......................................................................
- * Delete a free-list block.
- *
- * Input:
- * fl FreeListBlock * The block to be deleted, or NULL.
- * Output:
- * return FreeListBlock * Always NULL.
- */
-static FreeListBlock *_del_FreeListBlock(FreeListBlock *fl)
-{
- if(fl) {
- fl->next = NULL;
- if(fl->nodes)
- free(fl->nodes);
- fl->nodes = NULL;
- free(fl);
- };
- return NULL;
-}
diff --git a/libtecla-1.4.1/freelist.h b/libtecla-1.4.1/freelist.h
deleted file mode 100644
index 84e6aef..0000000
--- a/libtecla-1.4.1/freelist.h
+++ /dev/null
@@ -1,82 +0,0 @@
-#ifndef freelist_h
-#define freelist_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * This module provides a memory allocation scheme that helps to
- * prevent memory fragmentation by allocating large blocks of
- * fixed sized objects and forming them into a free-list for
- * subsequent allocations. The free-list is expanded as needed.
- */
-typedef struct FreeList FreeList;
-
-/*
- * Allocate a new free-list from blocks of 'blocking_factor' objects of size
- * node_size. The node_size argument should be determined by applying
- * the sizeof() operator to the object type that you intend to allocate from
- * the freelist.
- */
-FreeList *_new_FreeList(const char *caller, size_t node_size,
- unsigned blocking_factor);
-
-/*
- * If it is known that none of the nodes currently allocated from
- * a freelist are still in use, the following function can be called
- * to return all nodes to the freelist without the overhead of
- * having to call del_FreeListNode() for every allocated node. The
- * nodes of the freelist can then be reused by future callers to
- * new_FreeListNode().
- */
-void _rst_FreeList(FreeList *fl);
-
-/*
- * Delete a free-list.
- */
-FreeList *_del_FreeList(const char *caller, FreeList *fl, int force);
-
-/*
- * Determine the number of nodes that are currently allocated.
- */
-long _busy_FreeListNodes(FreeList *fl);
-
-/*
- * Allocate a new object from a free-list.
- */
-void *_new_FreeListNode(FreeList *fl);
-
-/*
- * Return an object to the free-list that it was allocated from.
- */
-void *_del_FreeListNode(FreeList *fl, void *object);
-
-#endif
diff --git a/libtecla-1.4.1/getline.c b/libtecla-1.4.1/getline.c
deleted file mode 100644
index 242fae3..0000000
--- a/libtecla-1.4.1/getline.c
+++ /dev/null
@@ -1,8346 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * Standard headers.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-#include <setjmp.h>
-
-/*
- * UNIX headers.
- */
-#include <sys/ioctl.h>
-#ifdef HAVE_SELECT
-#include <sys/time.h>
-#include <sys/types.h>
-#endif
-
-/*
- * Handle the different sources of terminal control string and size
- * information. Note that if no terminal information database is available,
- * ANSI VT100 control sequences are used.
- */
-#if defined(USE_TERMINFO) || defined(USE_TERMCAP)
-/*
- * Include curses.h or ncurses/curses.h depending on which is available.
- */
-#ifdef HAVE_CURSES_H
-#include <curses.h>
-#elif defined(HAVE_NCURSES_CURSES_H)
-#include <ncurses/curses.h>
-#endif
-/*
- * Include term.h where available.
- */
-#if defined(HAVE_TERM_H)
-#include <term.h>
-#elif defined(HAVE_NCURSES_TERM_H)
-#include <ncurses/term.h>
-#endif
-/*
- * When using termcap, include termcap.h on systems that have it.
- * Otherwise assume that all prototypes are provided by curses.h.
- */
-#if defined(USE_TERMCAP) && defined(HAVE_TERMCAP_H)
-#include <termcap.h>
-#endif
-/*
- * Unfortunately both terminfo and termcap require one to use the tputs()
- * function to output terminal control characters, and this function
- * doesn't allow one to specify a file stream. As a result, the following
- * file-scope variable is used to pass the current output file stream.
- * This is bad, but there doesn't seem to be any alternative.
- */
-static FILE *tputs_fp = NULL;
-/*
- * Under Solaris default Curses the output function that tputs takes is
- * declared to have a char argument. On all other systems and on Solaris
- * X/Open Curses (Issue 4, Version 2) it expects an int argument (using
- * c89 or options -I /usr/xpg4/include -L /usr/xpg4/lib -R /usr/xpg4/lib
- * selects XPG4v2 Curses on Solaris 2.6 and later).
- *
- * Similarly, under Mac OS X, the return value of the tputs output
- * function is declared as void, whereas it is declared as int on
- * other systems.
- */
-#if defined __sun && defined __SVR4 && !defined _XOPEN_CURSES
-static int gl_tputs_putchar(char c) {return putc(c, tputs_fp);}
-#elif defined(__APPLE__) && defined(__MACH__)
-static void gl_tputs_putchar(int c) {(void) putc(c, tputs_fp);}
-#else
-static int gl_tputs_putchar(int c) {return putc(c, tputs_fp);}
-#endif
-#endif
-
-/*
- * POSIX headers.
- */
-#include <unistd.h>
-#include <termios.h>
-
-/*
- * Does the system provide the signal and ioctl query facility used
- * to inform the process of terminal window size changes?
- */
-#if defined(SIGWINCH) && defined(TIOCGWINSZ)
-#define USE_SIGWINCH 1
-#endif
-
-/*
- * Provide typedefs for standard POSIX structures.
- */
-typedef struct sigaction SigAction;
-typedef struct termios Termios;
-
-/*
- * Local headers.
- */
-#include "pathutil.h"
-#include "libtecla.h"
-#include "keytab.h"
-#include "history.h"
-#include "freelist.h"
-#include "stringrp.h"
-#include "getline.h"
-
-/*
- * Enumerate the available editing styles.
- */
-typedef enum {
- GL_EMACS_MODE, /* Emacs style editing */
- GL_VI_MODE, /* Vi style editing */
- GL_NO_EDITOR /* Fall back to the basic OS-provided editing */
-} GlEditor;
-
-/*
- * In vi mode, the following datatype is used to implement the
- * undo command. It records a copy of the input line from before
- * the command-mode action which edited the input line.
- */
-typedef struct {
- char *line; /* A historical copy of the input line */
- int buff_curpos; /* The historical location of the cursor in */
- /* line[] when the line was modified. */
- int ntotal; /* The number of characters in line[] */
- int saved; /* True once a line has been saved after the */
- /* last call to gl_interpret_char(). */
-} ViUndo;
-
-/*
- * In vi mode, the following datatype is used to record information
- * needed by the vi-repeat-change command.
- */
-typedef struct {
- KtKeyFn *fn; /* The last action function that made a */
- /* change to the line. */
- int count; /* The repeat count that was passed to the */
- /* above command. */
- int input_curpos; /* Whenever vi command mode is entered, the */
- /* the position at which it was first left */
- /* is recorded here. */
- int command_curpos; /* Whenever vi command mode is entered, the */
- /* the location of the cursor is recorded */
- /* here. */
- char input_char; /* Commands that call gl_read_character() */
- /* record the character here, so that it can */
- /* used on repeating the function. */
- int saved; /* True if a function has been saved since the */
- /* last call to gl_interpret_char(). */
- int active; /* True while a function is being repeated. */
-} ViRepeat;
-
-/*
- * The following datatype is used to encapsulate information specific
- * to vi mode.
- */
-typedef struct {
- ViUndo undo; /* Information needed to implement the vi */
- /* undo command. */
- ViRepeat repeat; /* Information needed to implement the vi */
- /* repeat command. */
- int command; /* True in vi command-mode */
- int find_forward; /* True if the last character search was in the */
- /* forward direction. */
- int find_onto; /* True if the last character search left the */
- /* on top of the located character, as opposed */
- /* to just before or after it. */
- char find_char; /* The last character sought, or '\0' if no */
- /* searches have been performed yet. */
-} ViMode;
-
-#ifdef HAVE_SELECT
-/*
- * Define a type for recording a file-descriptor callback and its associated
- * data.
- */
-typedef struct {
- GlFdEventFn *fn; /* The callback function */
- void *data; /* Anonymous data to pass to the callback function */
-} GlFdHandler;
-
-/*
- * A list of nodes of the following type is used to record file-activity
- * event handlers, but only on systems that have the select() system call.
- */
-typedef struct GlFdNode GlFdNode;
-struct GlFdNode {
- GlFdNode *next; /* The next in the list of nodes */
- int fd; /* The file descriptor being watched */
- GlFdHandler rd; /* The callback to call when fd is readable */
- GlFdHandler wr; /* The callback to call when fd is writable */
- GlFdHandler ur; /* The callback to call when fd has urgent data */
-};
-
-/*
- * Set the number of the above structures to allocate every time that
- * the freelist of GlFdNode's becomes exhausted.
- */
-#define GLFD_FREELIST_BLOCKING 10
-
-/*
- * Listen for and handle file-descriptor events.
- */
-static int gl_event_handler(GetLine *gl);
-
-static int gl_call_fd_handler(GetLine *gl, GlFdHandler *gfh, int fd,
- GlFdEvent event);
-#endif
-
-/*
- * Each signal that gl_get_line() traps is described by a list node
- * of the following type.
- */
-typedef struct GlSignalNode GlSignalNode;
-struct GlSignalNode {
- GlSignalNode *next; /* The next signal in the list */
- int signo; /* The number of the signal */
- sigset_t proc_mask; /* A process mask which only includes signo */
- SigAction original; /* The signal disposition of the calling program */
- /* for this signal. */
- unsigned flags; /* A bitwise union of GlSignalFlags enumerators */
- GlAfterSignal after; /* What to do after the signal has been handled */
- int errno_value; /* What to set errno to */
-};
-
-/*
- * Set the number of the above structures to allocate every time that
- * the freelist of GlSignalNode's becomes exhausted.
- */
-#define GLS_FREELIST_BLOCKING 30
-
-/*
- * Define the contents of the GetLine object.
- * Note that the typedef for this object can be found in libtecla.h.
- */
-struct GetLine {
- GlHistory *glh; /* The line-history buffer */
- WordCompletion *cpl; /* String completion resource object */
- CplMatchFn(*cpl_fn); /* The tab completion callback function */
- void *cpl_data; /* Callback data to pass to cpl_fn() */
- ExpandFile *ef; /* ~user/, $envvar and wildcard expansion */
- /* resource object. */
- StringGroup *capmem; /* Memory for recording terminal capability */
- /* strings. */
- int input_fd; /* The file descriptor to read on */
- int output_fd; /* The file descriptor to write to */
- FILE *input_fp; /* A stream wrapper around input_fd */
- FILE *output_fp; /* A stream wrapper around output_fd */
- FILE *file_fp; /* When input is being temporarily taken from */
- /* a file, this is its file-pointer. Otherwise */
- /* it is NULL. */
- char *term; /* The terminal type specified on the last call */
- /* to gl_change_terminal(). */
- int is_term; /* True if stdin is a terminal */
- size_t linelen; /* The max number of characters per line */
- char *line; /* A line-input buffer of allocated size */
- /* linelen+2. The extra 2 characters are */
- /* reserved for "\n\0". */
- char *cutbuf; /* A cut-buffer of the same size as line[] */
- const char *prompt; /* The current prompt string */
- int prompt_len; /* The length of the prompt string */
- int prompt_changed; /* True after a callback changes the prompt */
- int prompt_style; /* How the prompt string is displayed */
- FreeList *sig_mem; /* Memory for nodes of the signal list */
- GlSignalNode *sigs; /* The head of the list of signals */
- sigset_t old_signal_set; /* The signal set on entry to gl_get_line() */
- sigset_t new_signal_set; /* The set of signals that we are trapping */
- Termios oldattr; /* Saved terminal attributes. */
- KeyTab *bindings; /* A table of key-bindings */
- int ntotal; /* The number of characters in gl->line[] */
- int buff_curpos; /* The cursor position within gl->line[] */
- int term_curpos; /* The cursor position on the terminal */
- int buff_mark; /* A marker location in the buffer */
- int insert_curpos; /* The cursor position at start of insert */
- int insert; /* True in insert mode */
- int number; /* If >= 0, a numeric argument is being read */
- int endline; /* True to tell gl_get_input_line() to return */
- /* the current contents of gl->line[] */
- KtKeyFn *current_fn; /* The action function that is currently being */
- /* invoked. */
- int current_count; /* The repeat count passed to current_fn() */
- GlhLineID preload_id; /* When not zero, this should be the ID of a */
- /* line in the history buffer for potential */
- /* recall. */
- int preload_history; /* If true, preload the above history line when */
- /* gl_get_input_line() is next called. */
- long keyseq_count; /* The number of key sequences entered by the */
- /* the user since new_GetLine() was called. */
- long last_search; /* The value of oper_count during the last */
- /* history search operation. */
- GlEditor editor; /* The style of editing, (eg. vi or emacs) */
- int silence_bell; /* True if gl_ring_bell() should do nothing. */
- ViMode vi; /* Parameters used when editing in vi mode */
- const char *left; /* The string that moves the cursor 1 character */
- /* left. */
- const char *right; /* The string that moves the cursor 1 character */
- /* right. */
- const char *up; /* The string that moves the cursor 1 character */
- /* up. */
- const char *down; /* The string that moves the cursor 1 character */
- /* down. */
- const char *home; /* The string that moves the cursor home */
- const char *bol; /* Move cursor to beginning of line */
- const char *clear_eol; /* The string that clears from the cursor to */
- /* the end of the line. */
- const char *clear_eod; /* The string that clears from the cursor to */
- /* the end of the display. */
- const char *u_arrow; /* The string returned by the up-arrow key */
- const char *d_arrow; /* The string returned by the down-arrow key */
- const char *l_arrow; /* The string returned by the left-arrow key */
- const char *r_arrow; /* The string returned by the right-arrow key */
- const char *sound_bell; /* The string needed to ring the terminal bell */
- const char *bold; /* Switch to the bold font */
- const char *underline; /* Underline subsequent characters */
- const char *standout; /* Turn on standout mode */
- const char *dim; /* Switch to a dim font */
- const char *reverse; /* Turn on reverse video */
- const char *blink; /* Switch to a blinking font */
- const char *text_attr_off; /* Turn off all text attributes */
- int nline; /* The height of the terminal in lines */
- int ncolumn; /* The width of the terminal in columns */
-#ifdef USE_TERMCAP
- char *tgetent_buf; /* The buffer that is used by tgetent() to */
- /* store a terminal description. */
- char *tgetstr_buf; /* The buffer that is used by tgetstr() to */
- /* store terminal capabilities. */
-#endif
-#ifdef USE_TERMINFO
- const char *left_n; /* The parameter string that moves the cursor */
- /* n characters left. */
- const char *right_n; /* The parameter string that moves the cursor */
- /* n characters right. */
-#endif
- char *app_file; /* The pathname of the application-specific */
- /* .teclarc configuration file, or NULL. */
- char *user_file; /* The pathname of the user-specific */
- /* .teclarc configuration file, or NULL. */
- int configured; /* True as soon as any teclarc configuration */
- /* file has been read. */
- int echo; /* True to display the line as it is being */
- /* entered. If 0, only the prompt will be */
- /* displayed, and the line will not be */
- /* archived in the history list. */
- int last_signal; /* The last signal that was caught by */
- /* the last call to gl_get_line(), or -1 */
- /* if no signal has been caught yet. */
-#ifdef HAVE_SELECT
- FreeList *fd_node_mem; /* A freelist of GlFdNode structures */
- GlFdNode *fd_nodes; /* The list of fd event descriptions */
- fd_set rfds; /* The set of fds to watch for readability */
- fd_set wfds; /* The set of fds to watch for writability */
- fd_set ufds; /* The set of fds to watch for urgent data */
- int max_fd; /* The maximum file-descriptor being watched */
-#endif
-};
-
-/*
- * Define the max amount of space needed to store a termcap terminal
- * description. Unfortunately this has to be done by guesswork, so
- * there is the potential for buffer overflows if we guess too small.
- * Fortunately termcap has been replaced by terminfo on most
- * platforms, and with terminfo this isn't an issue. The value that I
- * am using here is the conventional value, as recommended by certain
- * web references.
- */
-#ifdef USE_TERMCAP
-#define TERMCAP_BUF_SIZE 2048
-#endif
-
-/*
- * Set the size of the string segments used to store terminal capability
- * strings.
- */
-#define CAPMEM_SEGMENT_SIZE 512
-
-/*
- * If no terminal size information is available, substitute the
- * following vt100 default sizes.
- */
-#define GL_DEF_NLINE 24
-#define GL_DEF_NCOLUMN 80
-
-/*
- * List the signals that we need to catch. In general these are
- * those that by default terminate or suspend the process, since
- * in such cases we need to restore terminal settings.
- */
-static const struct GlDefSignal {
- int signo; /* The number of the signal */
- unsigned flags; /* A bitwise union of GlSignalFlags enumerators */
- GlAfterSignal after; /* What to do after the signal has been delivered */
- int errno_value; /* What to set errno to */
-} gl_signal_list[] = {
- {SIGABRT, GLS_SUSPEND_INPUT, GLS_ABORT, EINTR},
- {SIGINT, GLS_SUSPEND_INPUT, GLS_ABORT, EINTR},
- {SIGTERM, GLS_SUSPEND_INPUT, GLS_ABORT, EINTR},
- {SIGALRM, GLS_RESTORE_ENV, GLS_CONTINUE, 0},
- {SIGCONT, GLS_RESTORE_ENV, GLS_CONTINUE, 0},
-#if defined(SIGHUP)
-#ifdef ENOTTY
- {SIGHUP, GLS_SUSPEND_INPUT, GLS_ABORT, ENOTTY},
-#else
- {SIGHUP, GLS_SUSPEND_INPUT, GLS_ABORT, EINTR},
-#endif
-#endif
-#if defined(SIGPIPE)
-#ifdef EPIPE
- {SIGPIPE, GLS_SUSPEND_INPUT, GLS_ABORT, EPIPE},
-#else
- {SIGPIPE, GLS_SUSPEND_INPUT, GLS_ABORT, EINTR},
-#endif
-#endif
-#ifdef SIGPWR
- {SIGPWR, GLS_RESTORE_ENV, GLS_CONTINUE, 0},
-#endif
-#ifdef SIGQUIT
- {SIGQUIT, GLS_SUSPEND_INPUT, GLS_ABORT, EINTR},
-#endif
-#ifdef SIGTSTP
- {SIGTSTP, GLS_SUSPEND_INPUT, GLS_CONTINUE, 0},
-#endif
-#ifdef SIGTTIN
- {SIGTTIN, GLS_SUSPEND_INPUT, GLS_CONTINUE, 0},
-#endif
-#ifdef SIGTTOU
- {SIGTTOU, GLS_SUSPEND_INPUT, GLS_CONTINUE, 0},
-#endif
-#ifdef SIGUSR1
- {SIGUSR1, GLS_RESTORE_ENV, GLS_CONTINUE, 0},
-#endif
-#ifdef SIGUSR2
- {SIGUSR2, GLS_RESTORE_ENV, GLS_CONTINUE, 0},
-#endif
-#ifdef SIGVTALRM
- {SIGVTALRM, GLS_RESTORE_ENV, GLS_CONTINUE, 0},
-#endif
-#ifdef SIGWINCH
- {SIGWINCH, GLS_RESTORE_ENV, GLS_CONTINUE, 0},
-#endif
-#ifdef SIGXCPU
- {SIGXCPU, GLS_RESTORE_ENV, GLS_CONTINUE, 0},
-#endif
-};
-
-/*
- * Define file-scope variables for use in signal handlers.
- */
-static volatile sig_atomic_t gl_pending_signal = -1;
-static sigjmp_buf gl_setjmp_buffer;
-
-static void gl_signal_handler(int signo);
-
-static int gl_check_caught_signal(GetLine *gl);
-
-/*
- * Define a tab to be a string of 8 spaces.
- */
-#define TAB_WIDTH 8
-
-/*
- * Does the system send us SIGWINCH signals when the terminal size
- * changes?
- */
-#ifdef USE_SIGWINCH
-static int gl_resize_terminal(GetLine *gl, int redisplay);
-#endif
-
-/*
- * Getline calls this to temporarily override certain signal handlers
- * of the calling program.
- */
-static int gl_override_signal_handlers(GetLine *gl);
-
-/*
- * Getline calls this to restore the signal handlers of the calling
- * program.
- */
-static int gl_restore_signal_handlers(GetLine *gl);
-
-/*
- * Put the terminal into raw input mode, after saving the original
- * terminal attributes in gl->oldattr.
- */
-static int gl_raw_terminal_mode(GetLine *gl);
-
-/*
- * Restore the terminal attributes from gl->oldattr.
- */
-static int gl_restore_terminal_attributes(GetLine *gl);
-
-/*
- * Read a line from the user in raw mode.
- */
-static int gl_get_input_line(GetLine *gl, const char *start_line,
- int start_pos);
-
-/*
- * Set the largest key-sequence that can be handled.
- */
-#define GL_KEY_MAX 64
-
-/*
- * Handle the receipt of the potential start of a new key-sequence from
- * the user.
- */
-static int gl_interpret_char(GetLine *gl, char c);
-
-/*
- * Bind a single control or meta character to an action.
- */
-static int gl_bind_control_char(GetLine *gl, KtBinder binder,
- char c, const char *action);
-
-/*
- * Set up terminal-specific key bindings.
- */
-static int gl_bind_terminal_keys(GetLine *gl);
-
-/*
- * Lookup terminal control string and size information.
- */
-static int gl_control_strings(GetLine *gl, const char *term);
-
-/*
- * Wrappers around the terminfo and termcap functions that lookup
- * strings in the terminal information databases.
- */
-#ifdef USE_TERMINFO
-static const char *gl_tigetstr(GetLine *gl, const char *name);
-#elif defined(USE_TERMCAP)
-static const char *gl_tgetstr(GetLine *gl, const char *name, char **bufptr);
-#endif
-
-/*
- * Output a binary string directly to the terminal.
- */
-static int gl_output_raw_string(GetLine *gl, const char *string);
-
-/*
- * Output a terminal control sequence.
- */
-static int gl_output_control_sequence(GetLine *gl, int nline,
- const char *string);
-
-/*
- * Output a character or string to the terminal after converting tabs
- * to spaces and control characters to a caret followed by the modified
- * character.
- */
-static int gl_output_char(GetLine *gl, char c, char pad);
-static int gl_output_string(GetLine *gl, const char *string, char pad);
-
-/*
- * Delete nc characters starting from the one under the cursor.
- * Optionally copy the deleted characters to the cut buffer.
- */
-static int gl_delete_chars(GetLine *gl, int nc, int cut);
-
-/*
- * Add a character to the line buffer at the current cursor position,
- * inserting or overwriting according the current mode.
- */
-static int gl_add_char_to_line(GetLine *gl, char c);
-
-/*
- * Insert/append a string to the line buffer and terminal at the current
- * cursor position.
- */
-static int gl_add_string_to_line(GetLine *gl, const char *s);
-
-/*
- * Read a single character from the terminal.
- */
-static int gl_read_character(GetLine *gl, char *c);
-
-
-/*
- * Move the terminal cursor n positions to the left or right.
- */
-static int gl_terminal_move_cursor(GetLine *gl, int n);
-
-/*
- * Move the terminal cursor to a given position.
- */
-static int gl_set_term_curpos(GetLine *gl, int term_curpos);
-
-/*
- * Set the position of the cursor both in the line input buffer and on the
- * terminal.
- */
-static int gl_place_cursor(GetLine *gl, int buff_curpos);
-
-/*
- * Return the terminal cursor position that corresponds to a given
- * line buffer cursor position.
- */
-static int gl_buff_curpos_to_term_curpos(GetLine *gl, int buff_curpos);
-
-/*
- * Return the number of terminal characters needed to display a
- * given raw character.
- */
-static int gl_displayed_char_width(GetLine *gl, char c, int term_curpos);
-
-/*
- * Return the number of terminal characters needed to display a
- * given substring.
- */
-static int gl_displayed_string_width(GetLine *gl, const char *string, int nc,
- int term_curpos);
-/*
- * Return non-zero if 'c' is to be considered part of a word.
- */
-static int gl_is_word_char(int c);
-
-/*
- * Read a tecla configuration file.
- */
-static int _gl_read_config_file(GetLine *gl, const char *filename, KtBinder who);
-
-/*
- * Read a tecla configuration string.
- */
-static int _gl_read_config_string(GetLine *gl, const char *buffer, KtBinder who);
-
-/*
- * Define the callback function used by _gl_parse_config_line() to
- * read the next character of a configuration stream.
- */
-#define GLC_GETC_FN(fn) int (fn)(void *stream)
-typedef GLC_GETC_FN(GlcGetcFn);
-
-static GLC_GETC_FN(glc_file_getc); /* Read from a file */
-static GLC_GETC_FN(glc_buff_getc); /* Read from a string */
-
-/*
- * Parse a single configuration command line.
- */
-static int _gl_parse_config_line(GetLine *gl, void *stream, GlcGetcFn *getc_fn,
- const char *origin, KtBinder who, int *lineno);
-
-/*
- * Bind the actual arrow key bindings to match those of the symbolic
- * arrow-key bindings.
- */
-static int _gl_bind_arrow_keys(GetLine *gl);
-
-/*
- * Copy the binding of the specified symbolic arrow-key binding to
- * the terminal specific, and default arrow-key key-sequences.
- */
-static int _gl_rebind_arrow_key(KeyTab *bindings, const char *name,
- const char *term_seq,
- const char *def_seq1,
- const char *def_seq2);
-
-/*
- * After the gl_read_from_file() action has been used to tell gl_get_line()
- * to temporarily read input from a file, gl_revert_input() arranges
- * for input to be reverted to the input stream last registered with
- * gl_change_terminal().
- */
-static void gl_revert_input(GetLine *gl);
-
-/*
- * Flush unwritten characters to the terminal.
- */
-static int gl_flush_output(GetLine *gl);
-
-/*
- * Change the editor style being emulated.
- */
-static int gl_change_editor(GetLine *gl, GlEditor editor);
-
-/*
- * Searching in a given direction, return the index of a given (or
- * read) character in the input line, or the character that precedes
- * it in the specified search direction. Return -1 if not found.
- */
-static int gl_find_char(GetLine *gl, int count, int forward, int onto, char c);
-
-/*
- * Return the buffer index of the nth word ending after the cursor.
- */
-static int gl_nth_word_end_forward(GetLine *gl, int n);
-
-/*
- * Return the buffer index of the nth word start after the cursor.
- */
-static int gl_nth_word_start_forward(GetLine *gl, int n);
-
-/*
- * Return the buffer index of the nth word start before the cursor.
- */
-static int gl_nth_word_start_backward(GetLine *gl, int n);
-
-/*
- * When called when vi command mode is enabled, this function saves the
- * current line and cursor position for potential restoration later
- * by the vi undo command.
- */
-static void gl_save_for_undo(GetLine *gl);
-
-/*
- * If in vi mode, switch to vi command mode.
- */
-static void gl_vi_command_mode(GetLine *gl);
-
-/*
- * In vi mode this is used to delete up to or onto a given or read
- * character in the input line. Also switch to insert mode if requested
- * after the deletion.
- */
-static int gl_delete_find(GetLine *gl, int count, char c, int forward,
- int onto, int change);
-
-/*
- * Copy the characters between the cursor and the count'th instance of
- * a specified (or read) character in the input line, into the cut buffer.
- */
-static int gl_copy_find(GetLine *gl, int count, char c, int forward, int onto);
-
-/*
- * Return the line index of the parenthesis that either matches the one under
- * the cursor, or not over a parenthesis character, the index of the next
- * close parenthesis. Return -1 if not found.
- */
-static int gl_index_of_matching_paren(GetLine *gl);
-
-/*
- * Replace a malloc'd string (or NULL), with another malloc'd copy of
- * a string (or NULL).
- */
-static int gl_record_string(char **sptr, const char *string);
-
-/*
- * Enumerate text display attributes as powers of two, suitable for
- * use in a bit-mask.
- */
-typedef enum {
- GL_TXT_STANDOUT=1, /* Display text highlighted */
- GL_TXT_UNDERLINE=2, /* Display text underlined */
- GL_TXT_REVERSE=4, /* Display text with reverse video */
- GL_TXT_BLINK=8, /* Display blinking text */
- GL_TXT_DIM=16, /* Display text in a dim font */
- GL_TXT_BOLD=32 /* Display text using a bold font */
-} GlTextAttr;
-
-/*
- * Display the prompt regardless of the current visibility mode.
- */
-static int gl_display_prompt(GetLine *gl);
-
-/*
- * Return the number of characters used by the prompt on the terminal.
- */
-static int gl_displayed_prompt_width(GetLine *gl);
-
-/*
- * Prepare the return the current input line to the caller of gl_get_line().
- */
-static int gl_line_ended(GetLine *gl, int newline_char, int archive);
-
-/*
- * Set the maximum length of a line in a user's tecla configuration
- * file (not counting comments).
- */
-#define GL_CONF_BUFLEN 100
-
-/*
- * Set the maximum number of arguments supported by individual commands
- * in tecla configuration files.
- */
-#define GL_CONF_MAXARG 10
-
-/*
- * Prototype the available action functions.
- */
-static KT_KEY_FN(gl_user_interrupt);
-static KT_KEY_FN(gl_abort);
-static KT_KEY_FN(gl_suspend);
-static KT_KEY_FN(gl_stop_output);
-static KT_KEY_FN(gl_start_output);
-static KT_KEY_FN(gl_literal_next);
-static KT_KEY_FN(gl_cursor_left);
-static KT_KEY_FN(gl_cursor_right);
-static KT_KEY_FN(gl_insert_mode);
-static KT_KEY_FN(gl_beginning_of_line);
-static KT_KEY_FN(gl_end_of_line);
-static KT_KEY_FN(gl_delete_line);
-static KT_KEY_FN(gl_kill_line);
-static KT_KEY_FN(gl_forward_word);
-static KT_KEY_FN(gl_backward_word);
-static KT_KEY_FN(gl_forward_delete_char);
-static KT_KEY_FN(gl_backward_delete_char);
-static KT_KEY_FN(gl_forward_delete_word);
-static KT_KEY_FN(gl_backward_delete_word);
-static KT_KEY_FN(gl_delete_refind);
-static KT_KEY_FN(gl_delete_invert_refind);
-static KT_KEY_FN(gl_delete_to_column);
-static KT_KEY_FN(gl_delete_to_parenthesis);
-static KT_KEY_FN(gl_forward_delete_find);
-static KT_KEY_FN(gl_backward_delete_find);
-static KT_KEY_FN(gl_forward_delete_to);
-static KT_KEY_FN(gl_backward_delete_to);
-static KT_KEY_FN(gl_upcase_word);
-static KT_KEY_FN(gl_downcase_word);
-static KT_KEY_FN(gl_capitalize_word);
-static KT_KEY_FN(gl_redisplay);
-static KT_KEY_FN(gl_clear_screen);
-static KT_KEY_FN(gl_transpose_chars);
-static KT_KEY_FN(gl_set_mark);
-static KT_KEY_FN(gl_exchange_point_and_mark);
-static KT_KEY_FN(gl_kill_region);
-static KT_KEY_FN(gl_copy_region_as_kill);
-static KT_KEY_FN(gl_yank);
-static KT_KEY_FN(gl_up_history);
-static KT_KEY_FN(gl_down_history);
-static KT_KEY_FN(gl_history_search_backward);
-static KT_KEY_FN(gl_history_re_search_backward);
-static KT_KEY_FN(gl_history_search_forward);
-static KT_KEY_FN(gl_history_re_search_forward);
-static KT_KEY_FN(gl_complete_word);
-static KT_KEY_FN(gl_expand_filename);
-static KT_KEY_FN(gl_del_char_or_list_or_eof);
-static KT_KEY_FN(gl_list_or_eof);
-static KT_KEY_FN(gl_read_from_file);
-static KT_KEY_FN(gl_beginning_of_history);
-static KT_KEY_FN(gl_end_of_history);
-static KT_KEY_FN(gl_digit_argument);
-static KT_KEY_FN(gl_newline);
-static KT_KEY_FN(gl_repeat_history);
-static KT_KEY_FN(gl_vi_insert);
-static KT_KEY_FN(gl_vi_overwrite);
-static KT_KEY_FN(gl_change_case);
-static KT_KEY_FN(gl_vi_insert_at_bol);
-static KT_KEY_FN(gl_vi_append_at_eol);
-static KT_KEY_FN(gl_vi_append);
-static KT_KEY_FN(gl_list_glob);
-static KT_KEY_FN(gl_backward_kill_line);
-static KT_KEY_FN(gl_goto_column);
-static KT_KEY_FN(gl_forward_to_word);
-static KT_KEY_FN(gl_vi_replace_char);
-static KT_KEY_FN(gl_vi_change_rest_of_line);
-static KT_KEY_FN(gl_vi_change_line);
-static KT_KEY_FN(gl_vi_change_to_bol);
-static KT_KEY_FN(gl_vi_change_refind);
-static KT_KEY_FN(gl_vi_change_invert_refind);
-static KT_KEY_FN(gl_vi_change_to_column);
-static KT_KEY_FN(gl_vi_change_to_parenthesis);
-static KT_KEY_FN(gl_vi_forward_change_word);
-static KT_KEY_FN(gl_vi_backward_change_word);
-static KT_KEY_FN(gl_vi_forward_change_find);
-static KT_KEY_FN(gl_vi_backward_change_find);
-static KT_KEY_FN(gl_vi_forward_change_to);
-static KT_KEY_FN(gl_vi_backward_change_to);
-static KT_KEY_FN(gl_vi_forward_change_char);
-static KT_KEY_FN(gl_vi_backward_change_char);
-static KT_KEY_FN(gl_forward_copy_char);
-static KT_KEY_FN(gl_backward_copy_char);
-static KT_KEY_FN(gl_forward_find_char);
-static KT_KEY_FN(gl_backward_find_char);
-static KT_KEY_FN(gl_forward_to_char);
-static KT_KEY_FN(gl_backward_to_char);
-static KT_KEY_FN(gl_repeat_find_char);
-static KT_KEY_FN(gl_invert_refind_char);
-static KT_KEY_FN(gl_append_yank);
-static KT_KEY_FN(gl_backward_copy_word);
-static KT_KEY_FN(gl_forward_copy_word);
-static KT_KEY_FN(gl_copy_to_bol);
-static KT_KEY_FN(gl_copy_refind);
-static KT_KEY_FN(gl_copy_invert_refind);
-static KT_KEY_FN(gl_copy_to_column);
-static KT_KEY_FN(gl_copy_to_parenthesis);
-static KT_KEY_FN(gl_copy_rest_of_line);
-static KT_KEY_FN(gl_copy_line);
-static KT_KEY_FN(gl_backward_copy_find);
-static KT_KEY_FN(gl_forward_copy_find);
-static KT_KEY_FN(gl_backward_copy_to);
-static KT_KEY_FN(gl_forward_copy_to);
-static KT_KEY_FN(gl_vi_undo);
-static KT_KEY_FN(gl_emacs_editing_mode);
-static KT_KEY_FN(gl_vi_editing_mode);
-static KT_KEY_FN(gl_ring_bell);
-static KT_KEY_FN(gl_vi_repeat_change);
-static KT_KEY_FN(gl_find_parenthesis);
-static KT_KEY_FN(gl_read_init_files);
-static KT_KEY_FN(gl_list_history);
-
-/*
- * Name the available action functions.
- */
-static const struct {const char *name; KT_KEY_FN(*fn);} gl_actions[] = {
- {"user-interrupt", gl_user_interrupt},
- {"abort", gl_abort},
- {"suspend", gl_suspend},
- {"stop-output", gl_stop_output},
- {"start-output", gl_start_output},
- {"literal-next", gl_literal_next},
- {"cursor-right", gl_cursor_right},
- {"cursor-left", gl_cursor_left},
- {"insert-mode", gl_insert_mode},
- {"beginning-of-line", gl_beginning_of_line},
- {"end-of-line", gl_end_of_line},
- {"delete-line", gl_delete_line},
- {"kill-line", gl_kill_line},
- {"forward-word", gl_forward_word},
- {"backward-word", gl_backward_word},
- {"forward-delete-char", gl_forward_delete_char},
- {"backward-delete-char", gl_backward_delete_char},
- {"forward-delete-word", gl_forward_delete_word},
- {"backward-delete-word", gl_backward_delete_word},
- {"delete-refind", gl_delete_refind},
- {"delete-invert-refind", gl_delete_invert_refind},
- {"delete-to-column", gl_delete_to_column},
- {"delete-to-parenthesis", gl_delete_to_parenthesis},
- {"forward-delete-find", gl_forward_delete_find},
- {"backward-delete-find", gl_backward_delete_find},
- {"forward-delete-to", gl_forward_delete_to},
- {"backward-delete-to", gl_backward_delete_to},
- {"upcase-word", gl_upcase_word},
- {"downcase-word", gl_downcase_word},
- {"capitalize-word", gl_capitalize_word},
- {"redisplay", gl_redisplay},
- {"clear-screen", gl_clear_screen},
- {"transpose-chars", gl_transpose_chars},
- {"set-mark", gl_set_mark},
- {"exchange-point-and-mark", gl_exchange_point_and_mark},
- {"kill-region", gl_kill_region},
- {"copy-region-as-kill", gl_copy_region_as_kill},
- {"yank", gl_yank},
- {"up-history", gl_up_history},
- {"down-history", gl_down_history},
- {"history-search-backward", gl_history_search_backward},
- {"history-re-search-backward", gl_history_re_search_backward},
- {"history-search-forward", gl_history_search_forward},
- {"history-re-search-forward", gl_history_re_search_forward},
- {"complete-word", gl_complete_word},
- {"expand-filename", gl_expand_filename},
- {"del-char-or-list-or-eof", gl_del_char_or_list_or_eof},
- {"read-from-file", gl_read_from_file},
- {"beginning-of-history", gl_beginning_of_history},
- {"end-of-history", gl_end_of_history},
- {"digit-argument", gl_digit_argument},
- {"newline", gl_newline},
- {"repeat-history", gl_repeat_history},
- {"vi-insert", gl_vi_insert},
- {"vi-overwrite", gl_vi_overwrite},
- {"vi-insert-at-bol", gl_vi_insert_at_bol},
- {"vi-append-at-eol", gl_vi_append_at_eol},
- {"vi-append", gl_vi_append},
- {"change-case", gl_change_case},
- {"list-glob", gl_list_glob},
- {"backward-kill-line", gl_backward_kill_line},
- {"goto-column", gl_goto_column},
- {"forward-to-word", gl_forward_to_word},
- {"vi-replace-char", gl_vi_replace_char},
- {"vi-change-rest-of-line", gl_vi_change_rest_of_line},
- {"vi-change-line", gl_vi_change_line},
- {"vi-change-to-bol", gl_vi_change_to_bol},
- {"vi-change-refind", gl_vi_change_refind},
- {"vi-change-invert-refind", gl_vi_change_invert_refind},
- {"vi-change-to-column", gl_vi_change_to_column},
- {"vi-change-to-parenthesis", gl_vi_change_to_parenthesis},
- {"forward-copy-char", gl_forward_copy_char},
- {"backward-copy-char", gl_backward_copy_char},
- {"forward-find-char", gl_forward_find_char},
- {"backward-find-char", gl_backward_find_char},
- {"forward-to-char", gl_forward_to_char},
- {"backward-to-char", gl_backward_to_char},
- {"repeat-find-char", gl_repeat_find_char},
- {"invert-refind-char", gl_invert_refind_char},
- {"append-yank", gl_append_yank},
- {"backward-copy-word", gl_backward_copy_word},
- {"forward-copy-word", gl_forward_copy_word},
- {"copy-to-bol", gl_copy_to_bol},
- {"copy-refind", gl_copy_refind},
- {"copy-invert-refind", gl_copy_invert_refind},
- {"copy-to-column", gl_copy_to_column},
- {"copy-to-parenthesis", gl_copy_to_parenthesis},
- {"copy-rest-of-line", gl_copy_rest_of_line},
- {"copy-line", gl_copy_line},
- {"backward-copy-find", gl_backward_copy_find},
- {"forward-copy-find", gl_forward_copy_find},
- {"backward-copy-to", gl_backward_copy_to},
- {"forward-copy-to", gl_forward_copy_to},
- {"list-or-eof", gl_list_or_eof},
- {"vi-undo", gl_vi_undo},
- {"vi-backward-change-word", gl_vi_backward_change_word},
- {"vi-forward-change-word", gl_vi_forward_change_word},
- {"vi-backward-change-find", gl_vi_backward_change_find},
- {"vi-forward-change-find", gl_vi_forward_change_find},
- {"vi-backward-change-to", gl_vi_backward_change_to},
- {"vi-forward-change-to", gl_vi_forward_change_to},
- {"vi-backward-change-char", gl_vi_backward_change_char},
- {"vi-forward-change-char", gl_vi_forward_change_char},
- {"emacs-mode", gl_emacs_editing_mode},
- {"vi-mode", gl_vi_editing_mode},
- {"ring-bell", gl_ring_bell},
- {"vi-repeat-change", gl_vi_repeat_change},
- {"find-parenthesis", gl_find_parenthesis},
- {"read-init-files", gl_read_init_files},
- {"list-history", gl_list_history},
-};
-
-/*
- * Define the default key-bindings in emacs mode.
- */
-static const KtKeyBinding gl_emacs_bindings[] = {
- {"right", "cursor-right"},
- {"^F", "cursor-right"},
- {"left", "cursor-left"},
- {"^B", "cursor-left"},
- {"M-i", "insert-mode"},
- {"M-I", "insert-mode"},
- {"^A", "beginning-of-line"},
- {"^E", "end-of-line"},
- {"^U", "delete-line"},
- {"^K", "kill-line"},
- {"M-f", "forward-word"},
- {"M-F", "forward-word"},
- {"M-b", "backward-word"},
- {"M-B", "backward-word"},
- {"^D", "del-char-or-list-or-eof"},
- {"^H", "backward-delete-char"},
- {"^?", "backward-delete-char"},
- {"M-d", "forward-delete-word"},
- {"M-D", "forward-delete-word"},
- {"M-^H", "backward-delete-word"},
- {"M-^?", "backward-delete-word"},
- {"M-u", "upcase-word"},
- {"M-U", "upcase-word"},
- {"M-l", "downcase-word"},
- {"M-L", "downcase-word"},
- {"M-c", "capitalize-word"},
- {"M-C", "capitalize-word"},
- {"^R", "redisplay"},
- {"^L", "clear-screen"},
- {"^T", "transpose-chars"},
- {"^@", "set-mark"},
- {"^X^X", "exchange-point-and-mark"},
- {"^W", "kill-region"},
- {"M-w", "copy-region-as-kill"},
- {"M-W", "copy-region-as-kill"},
- {"^Y", "yank"},
- {"^P", "up-history"},
- {"up", "up-history"},
- {"^N", "down-history"},
- {"down", "down-history"},
- {"M-p", "history-search-backward"},
- {"M-P", "history-search-backward"},
- {"M-n", "history-search-forward"},
- {"M-N", "history-search-forward"},
- {"\t", "complete-word"},
- {"^X*", "expand-filename"},
- {"^X^F", "read-from-file"},
- {"^X^R", "read-init-files"},
- {"^Xg", "list-glob"},
- {"^XG", "list-glob"},
- {"^Xh", "list-history"},
- {"^XH", "list-history"},
- {"M-<", "beginning-of-history"},
- {"M->", "end-of-history"},
- {"M-0", "digit-argument"},
- {"M-1", "digit-argument"},
- {"M-2", "digit-argument"},
- {"M-3", "digit-argument"},
- {"M-4", "digit-argument"},
- {"M-5", "digit-argument"},
- {"M-6", "digit-argument"},
- {"M-7", "digit-argument"},
- {"M-8", "digit-argument"},
- {"M-9", "digit-argument"},
- {"\r", "newline"},
- {"\n", "newline"},
- {"M-o", "repeat-history"},
- {"M-C-v", "vi-mode"},
-};
-
-/*
- * Define the default key-bindings in vi mode. Note that in vi-mode
- * meta-key bindings are command-mode bindings. For example M-i first
- * switches to command mode if not already in that mode, then moves
- * the cursor one position right, as in vi.
- */
-static const KtKeyBinding gl_vi_bindings[] = {
- {"^D", "list-or-eof"},
- {"^G", "list-glob"},
- {"^H", "backward-delete-char"},
- {"\t", "complete-word"},
- {"\r", "newline"},
- {"\n", "newline"},
- {"^L", "clear-screen"},
- {"^N", "down-history"},
- {"^P", "up-history"},
- {"^R", "redisplay"},
- {"^U", "backward-kill-line"},
- {"^W", "backward-delete-word"},
- {"^X^F", "read-from-file"},
- {"^X^R", "read-init-files"},
- {"^X*", "expand-filename"},
- {"^?", "backward-delete-char"},
- {"M- ", "cursor-right"},
- {"M-$", "end-of-line"},
- {"M-*", "expand-filename"},
- {"M-+", "down-history"},
- {"M--", "up-history"},
- {"M-<", "beginning-of-history"},
- {"M->", "end-of-history"},
- {"M-^", "beginning-of-line"},
- {"M-;", "repeat-find-char"},
- {"M-,", "invert-refind-char"},
- {"M-|", "goto-column"},
- {"M-~", "change-case"},
- {"M-.", "vi-repeat-change"},
- {"M-%", "find-parenthesis"},
- {"M-0", "digit-argument"},
- {"M-1", "digit-argument"},
- {"M-2", "digit-argument"},
- {"M-3", "digit-argument"},
- {"M-4", "digit-argument"},
- {"M-5", "digit-argument"},
- {"M-6", "digit-argument"},
- {"M-7", "digit-argument"},
- {"M-8", "digit-argument"},
- {"M-9", "digit-argument"},
- {"M-a", "vi-append"},
- {"M-A", "vi-append-at-eol"},
- {"M-b", "backward-word"},
- {"M-B", "backward-word"},
- {"M-C", "vi-change-rest-of-line"},
- {"M-cb", "vi-backward-change-word"},
- {"M-cB", "vi-backward-change-word"},
- {"M-cc", "vi-change-line"},
- {"M-ce", "vi-forward-change-word"},
- {"M-cE", "vi-forward-change-word"},
- {"M-cw", "vi-forward-change-word"},
- {"M-cW", "vi-forward-change-word"},
- {"M-cF", "vi-backward-change-find"},
- {"M-cf", "vi-forward-change-find"},
- {"M-cT", "vi-backward-change-to"},
- {"M-ct", "vi-forward-change-to"},
- {"M-c;", "vi-change-refind"},
- {"M-c,", "vi-change-invert-refind"},
- {"M-ch", "vi-backward-change-char"},
- {"M-c^H", "vi-backward-change-char"},
- {"M-c^?", "vi-backward-change-char"},
- {"M-cl", "vi-forward-change-char"},
- {"M-c ", "vi-forward-change-char"},
- {"M-c^", "vi-change-to-bol"},
- {"M-c0", "vi-change-to-bol"},
- {"M-c$", "vi-change-rest-of-line"},
- {"M-c|", "vi-change-to-column"},
- {"M-c%", "vi-change-to-parenthesis"},
- {"M-dh", "backward-delete-char"},
- {"M-d^H", "backward-delete-char"},
- {"M-d^?", "backward-delete-char"},
- {"M-dl", "forward-delete-char"},
- {"M-d ", "forward-delete-char"},
- {"M-dd", "delete-line"},
- {"M-db", "backward-delete-word"},
- {"M-dB", "backward-delete-word"},
- {"M-de", "forward-delete-word"},
- {"M-dE", "forward-delete-word"},
- {"M-dw", "forward-delete-word"},
- {"M-dW", "forward-delete-word"},
- {"M-dF", "backward-delete-find"},
- {"M-df", "forward-delete-find"},
- {"M-dT", "backward-delete-to"},
- {"M-dt", "forward-delete-to"},
- {"M-d;", "delete-refind"},
- {"M-d,", "delete-invert-refind"},
- {"M-d^", "backward-kill-line"},
- {"M-d0", "backward-kill-line"},
- {"M-d$", "kill-line"},
- {"M-D", "kill-line"},
- {"M-d|", "delete-to-column"},
- {"M-d%", "delete-to-parenthesis"},
- {"M-e", "forward-word"},
- {"M-E", "forward-word"},
- {"M-f", "forward-find-char"},
- {"M-F", "backward-find-char"},
- {"M--", "up-history"},
- {"M-h", "cursor-left"},
- {"M-H", "beginning-of-history"},
- {"M-i", "vi-insert"},
- {"M-I", "vi-insert-at-bol"},
- {"M-j", "down-history"},
- {"M-J", "history-search-forward"},
- {"M-k", "up-history"},
- {"M-K", "history-search-backward"},
- {"M-l", "cursor-right"},
- {"M-L", "end-of-history"},
- {"M-n", "history-re-search-forward"},
- {"M-N", "history-re-search-backward"},
- {"M-p", "append-yank"},
- {"M-P", "yank"},
- {"M-r", "vi-replace-char"},
- {"M-R", "vi-overwrite"},
- {"M-s", "vi-forward-change-char"},
- {"M-S", "vi-change-line"},
- {"M-t", "forward-to-char"},
- {"M-T", "backward-to-char"},
- {"M-u", "vi-undo"},
- {"M-w", "forward-to-word"},
- {"M-W", "forward-to-word"},
- {"M-x", "forward-delete-char"},
- {"M-X", "backward-delete-char"},
- {"M-yh", "backward-copy-char"},
- {"M-y^H", "backward-copy-char"},
- {"M-y^?", "backward-copy-char"},
- {"M-yl", "forward-copy-char"},
- {"M-y ", "forward-copy-char"},
- {"M-ye", "forward-copy-word"},
- {"M-yE", "forward-copy-word"},
- {"M-yw", "forward-copy-word"},
- {"M-yW", "forward-copy-word"},
- {"M-yb", "backward-copy-word"},
- {"M-yB", "backward-copy-word"},
- {"M-yf", "forward-copy-find"},
- {"M-yF", "backward-copy-find"},
- {"M-yt", "forward-copy-to"},
- {"M-yT", "backward-copy-to"},
- {"M-y;", "copy-refind"},
- {"M-y,", "copy-invert-refind"},
- {"M-y^", "copy-to-bol"},
- {"M-y0", "copy-to-bol"},
- {"M-y$", "copy-rest-of-line"},
- {"M-yy", "copy-line"},
- {"M-Y", "copy-line"},
- {"M-y|", "copy-to-column"},
- {"M-y%", "copy-to-parenthesis"},
- {"M-^E", "emacs-mode"},
- {"M-^H", "cursor-left"},
- {"M-^?", "cursor-left"},
- {"M-^L", "clear-screen"},
- {"M-^N", "down-history"},
- {"M-^P", "up-history"},
- {"M-^R", "redisplay"},
- {"M-^D", "list-or-eof"},
- {"M-\r", "newline"},
- {"M-\t", "complete-word"},
- {"M-\n", "newline"},
- {"M-^X^R", "read-init-files"},
- {"M-^Xh", "list-history"},
- {"M-^XH", "list-history"},
- {"down", "down-history"},
- {"up", "up-history"},
- {"left", "cursor-left"},
- {"right", "cursor-right"},
-};
-
-/*.......................................................................
- * Create a new GetLine object.
- *
- * Input:
- * linelen size_t The maximum line length to allow for.
- * histlen size_t The number of bytes to allocate for recording
- * a circular buffer of history lines.
- * Output:
- * return GetLine * The new object, or NULL on error.
- */
-GetLine *new_GetLine(size_t linelen, size_t histlen)
-{
- GetLine *gl; /* The object to be returned */
- int i;
-/*
- * Check the arguments.
- */
- if(linelen < 10) {
- fprintf(stderr, "new_GetLine: Line length too small.\n");
- return NULL;
- };
-/*
- * Allocate the container.
- */
- gl = (GetLine *) malloc(sizeof(GetLine));
- if(!gl) {
- fprintf(stderr, "new_GetLine: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_GetLine().
- */
- gl->glh = NULL;
- gl->cpl = NULL;
- gl->cpl_fn = cpl_file_completions;
- gl->cpl_data = NULL;
- gl->ef = NULL;
- gl->capmem = NULL;
- gl->term = NULL;
- gl->is_term = 0;
- gl->input_fd = -1;
- gl->output_fd = -1;
- gl->input_fp = NULL;
- gl->output_fp = NULL;
- gl->file_fp = NULL;
- gl->linelen = linelen;
- gl->line = NULL;
- gl->cutbuf = NULL;
- gl->linelen = linelen;
- gl->prompt = "";
- gl->prompt_len = 0;
- gl->prompt_changed = 0;
- gl->prompt_style = GL_LITERAL_PROMPT;
- gl->vi.undo.line = NULL;
- gl->vi.undo.buff_curpos = 0;
- gl->vi.undo.ntotal = 0;
- gl->vi.undo.saved = 0;
- gl->vi.repeat.fn = 0;
- gl->vi.repeat.count = 0;
- gl->vi.repeat.input_curpos = 0;
- gl->vi.repeat.command_curpos = 0;
- gl->vi.repeat.input_char = '\0';
- gl->vi.repeat.saved = 0;
- gl->vi.repeat.active = 0;
- gl->sig_mem = NULL;
- gl->sigs = NULL;
- sigemptyset(&gl->old_signal_set);
- sigemptyset(&gl->new_signal_set);
- gl->bindings = NULL;
- gl->ntotal = 0;
- gl->buff_curpos = 0;
- gl->term_curpos = 0;
- gl->buff_mark = 0;
- gl->insert_curpos = 0;
- gl->insert = 1;
- gl->number = -1;
- gl->endline = 0;
- gl->current_fn = 0;
- gl->current_count = 0;
- gl->preload_id = 0;
- gl->preload_history = 0;
- gl->keyseq_count = 0;
- gl->last_search = -1;
- gl->editor = GL_EMACS_MODE;
- gl->silence_bell = 0;
- gl->vi.command = 0;
- gl->vi.find_forward = 0;
- gl->vi.find_onto = 0;
- gl->vi.find_char = '\0';
- gl->left = NULL;
- gl->right = NULL;
- gl->up = NULL;
- gl->down = NULL;
- gl->home = NULL;
- gl->bol = 0;
- gl->clear_eol = NULL;
- gl->clear_eod = NULL;
- gl->u_arrow = NULL;
- gl->d_arrow = NULL;
- gl->l_arrow = NULL;
- gl->r_arrow = NULL;
- gl->sound_bell = NULL;
- gl->bold = NULL;
- gl->underline = NULL;
- gl->standout = NULL;
- gl->dim = NULL;
- gl->reverse = NULL;
- gl->blink = NULL;
- gl->text_attr_off = NULL;
- gl->nline = 0;
- gl->ncolumn = 0;
-#ifdef USE_TERMINFO
- gl->left_n = NULL;
- gl->right_n = NULL;
-#elif defined(USE_TERMCAP)
- gl->tgetent_buf = NULL;
- gl->tgetstr_buf = NULL;
-#endif
- gl->app_file = NULL;
- gl->user_file = NULL;
- gl->configured = 0;
- gl->echo = 1;
- gl->last_signal = -1;
-#ifdef HAVE_SELECT
- gl->fd_node_mem = NULL;
- gl->fd_nodes = NULL;
- FD_ZERO(&gl->rfds);
- FD_ZERO(&gl->wfds);
- FD_ZERO(&gl->ufds);
- gl->max_fd = 0;
-#endif
-/*
- * Allocate the history buffer.
- */
- gl->glh = _new_GlHistory(histlen);
- if(!gl->glh)
- return del_GetLine(gl);
-/*
- * Allocate the resource object for file-completion.
- */
- gl->cpl = new_WordCompletion();
- if(!gl->cpl)
- return del_GetLine(gl);
-/*
- * Allocate the resource object for file-completion.
- */
- gl->ef = new_ExpandFile();
- if(!gl->ef)
- return del_GetLine(gl);
-/*
- * Allocate a string-segment memory allocator for use in storing terminal
- * capablity strings.
- */
- gl->capmem = _new_StringGroup(CAPMEM_SEGMENT_SIZE);
- if(!gl->capmem)
- return del_GetLine(gl);
-/*
- * Allocate a line buffer, leaving 2 extra characters for the terminating
- * '\n' and '\0' characters
- */
- gl->line = (char *) malloc(linelen + 2);
- if(!gl->line) {
- fprintf(stderr,
- "new_GetLine: Insufficient memory to allocate line buffer.\n");
- return del_GetLine(gl);
- };
- gl->line[0] = '\0';
-/*
- * Allocate a cut buffer.
- */
- gl->cutbuf = (char *) malloc(linelen + 2);
- if(!gl->cutbuf) {
- fprintf(stderr,
- "new_GetLine: Insufficient memory to allocate cut buffer.\n");
- return del_GetLine(gl);
- };
- gl->cutbuf[0] = '\0';
-/*
- * Allocate a vi undo buffer.
- */
- gl->vi.undo.line = (char *) malloc(linelen + 2);
- if(!gl->vi.undo.line) {
- fprintf(stderr,
- "new_GetLine: Insufficient memory to allocate undo buffer.\n");
- return del_GetLine(gl);
- };
- gl->vi.undo.line[0] = '\0';
-/*
- * Allocate a freelist from which to allocate nodes for the list
- * of signals.
- */
- gl->sig_mem = _new_FreeList("new_GetLine", sizeof(GlSignalNode),
- GLS_FREELIST_BLOCKING);
- if(!gl->sig_mem)
- return del_GetLine(gl);
-/*
- * Install dispositions for the default list of signals that gl_get_line()
- * traps.
- */
- for(i=0; i<sizeof(gl_signal_list)/sizeof(gl_signal_list[0]); i++) {
- const struct GlDefSignal *sig = gl_signal_list + i;
- if(gl_trap_signal(gl, sig->signo, sig->flags, sig->after,
- sig->errno_value))
- return del_GetLine(gl);
- };
-/*
- * Allocate an empty table of key bindings.
- */
- gl->bindings = _new_KeyTab();
- if(!gl->bindings)
- return del_GetLine(gl);
-/*
- * Define the available actions that can be bound to key sequences.
- */
- for(i=0; i<sizeof(gl_actions)/sizeof(gl_actions[0]); i++) {
- if(_kt_set_action(gl->bindings, gl_actions[i].name, gl_actions[i].fn))
- return del_GetLine(gl);
- };
-/*
- * Set up the default bindings.
- */
- if(gl_change_editor(gl, gl->editor))
- return del_GetLine(gl);
-/*
- * Allocate termcap buffers.
- */
-#ifdef USE_TERMCAP
- gl->tgetent_buf = (char *) malloc(TERMCAP_BUF_SIZE);
- gl->tgetstr_buf = (char *) malloc(TERMCAP_BUF_SIZE);
- if(!gl->tgetent_buf || !gl->tgetstr_buf) {
- fprintf(stderr, "new_GetLine: Insufficient memory for termcap buffers.\n");
- return del_GetLine(gl);
- };
-#endif
-/*
- * Set up for I/O assuming stdin and stdout.
- */
- if(gl_change_terminal(gl, stdin, stdout, getenv("TERM")))
- return del_GetLine(gl);
-/*
- * Create a freelist for use in allocating GlFdNode list nodes.
- */
-#ifdef HAVE_SELECT
- gl->fd_node_mem = _new_FreeList("new_GetLine", sizeof(GlFdNode),
- GLFD_FREELIST_BLOCKING);
- if(!gl->fd_node_mem)
- return del_GetLine(gl);
-#endif
-/*
- * We are done for now.
- */
- return gl;
-}
-
-/*.......................................................................
- * Delete a GetLine object.
- *
- * Input:
- * gl GetLine * The object to be deleted.
- * Output:
- * return GetLine * The deleted object (always NULL).
- */
-GetLine *del_GetLine(GetLine *gl)
-{
- if(gl) {
- gl->glh = _del_GlHistory(gl->glh);
- gl->cpl = del_WordCompletion(gl->cpl);
- gl->ef = del_ExpandFile(gl->ef);
- gl->capmem = _del_StringGroup(gl->capmem);
- if(gl->line)
- free(gl->line);
- if(gl->cutbuf)
- free(gl->cutbuf);
- if(gl->vi.undo.line)
- free(gl->vi.undo.line);
- gl->sig_mem = _del_FreeList(NULL, gl->sig_mem, 1);
- gl->sigs = NULL; /* Already freed by freeing sig_mem */
- gl->bindings = _del_KeyTab(gl->bindings);
-#ifdef USE_TERMCAP
- if(gl->tgetent_buf)
- free(gl->tgetent_buf);
- if(gl->tgetstr_buf)
- free(gl->tgetstr_buf);
-#endif
- if(gl->file_fp)
- fclose(gl->file_fp);
- if(gl->term)
- free(gl->term);
-#ifdef HAVE_SELECT
- gl->fd_node_mem = _del_FreeList(NULL, gl->fd_node_mem, 1);
-#endif
- free(gl);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Bind a control or meta character to an action.
- *
- * Input:
- * gl GetLine * The resource object of this program.
- * binder KtBinder The source of the binding.
- * c char The control or meta character.
- * If this is '\0', the call is ignored.
- * action const char * The action name to bind the key to.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_bind_control_char(GetLine *gl, KtBinder binder, char c,
- const char *action)
-{
- char keyseq[2];
-/*
- * Quietly reject binding to the NUL control character, since this
- * is an ambiguous prefix of all bindings.
- */
- if(c == '\0')
- return 0;
-/*
- * Making sure not to bind characters which aren't either control or
- * meta characters.
- */
- if(IS_CTRL_CHAR(c) || IS_META_CHAR(c)) {
- keyseq[0] = c;
- keyseq[1] = '\0';
- } else {
- return 0;
- };
-/*
- * Install the binding.
- */
- return _kt_set_keybinding(gl->bindings, binder, keyseq, action);
-}
-
-/*.......................................................................
- * Read a line from the user.
- *
- * Input:
- * gl GetLine * A resource object returned by new_GetLine().
- * prompt char * The prompt to prefix the line with.
- * start_line char * The initial contents of the input line, or NULL
- * if it should start out empty.
- * start_pos int If start_line isn't NULL, this specifies the
- * index of the character over which the cursor
- * should initially be positioned within the line.
- * If you just want it to follow the last character
- * of the line, send -1.
- * Output:
- * return char * An internal buffer containing the input line, or
- * NULL at the end of input. If the line fitted in
- * the buffer there will be a '\n' newline character
- * before the terminating '\0'. If it was truncated
- * there will be no newline character, and the remains
- * of the line should be retrieved via further calls
- * to this function.
- */
-char *gl_get_line(GetLine *gl, const char *prompt,
- const char *start_line, int start_pos)
-{
- int waserr = 0; /* True if an error occurs */
-/*
- * Check the arguments.
- */
- if(!gl || !prompt) {
- fprintf(stderr, "gl_get_line: NULL argument(s).\n");
- return NULL;
- };
-/*
- * If this is the first call to this function since new_GetLine(),
- * complete any postponed configuration.
- */
- if(!gl->configured) {
- (void) gl_configure_getline(gl, NULL, NULL, TECLA_CONFIG_FILE);
- gl->configured = 1;
- };
-/*
- * If input is temporarily being taken from a file, return lines
- * from the file until the file is exhausted, then revert to
- * the normal input stream.
- */
- if(gl->file_fp) {
- if(fgets(gl->line, gl->linelen, gl->file_fp))
- return gl->line;
- gl_revert_input(gl);
- };
-/*
- * Is input coming from a non-interactive source?
- */
- if(!gl->is_term)
- return fgets(gl->line, gl->linelen, gl->input_fp);
-/*
- * Record the new prompt and its displayed width.
- */
- gl_replace_prompt(gl, prompt);
-/*
- * Before installing our signal handler functions, record the fact
- * that there are no pending signals.
- */
- gl_pending_signal = -1;
-/*
- * Temporarily override the signal handlers of the calling program,
- * so that we can intercept signals that would leave the terminal
- * in a bad state.
- */
- waserr = gl_override_signal_handlers(gl);
-/*
- * After recording the current terminal settings, switch the terminal
- * into raw input mode.
- */
- waserr = waserr || gl_raw_terminal_mode(gl);
-/*
- * Attempt to read the line.
- */
- waserr = waserr || gl_get_input_line(gl, start_line, start_pos);
-/*
- * Restore terminal settings.
- */
- gl_restore_terminal_attributes(gl);
-/*
- * Restore the signal handlers.
- */
- gl_restore_signal_handlers(gl);
-/*
- * Having restored the program terminal and signal environment,
- * re-submit any signals that were received.
- */
- if(gl_pending_signal != -1) {
- raise(gl_pending_signal);
- waserr = 1;
- };
-/*
- * If gl_get_input_line() aborted input due to the user asking to
- * temporarily read lines from a file, read the first line from
- * this file.
- */
- if(!waserr && gl->file_fp)
- return gl_get_line(gl, prompt, NULL, 0);
-/*
- * Return the new input line.
- */
- return waserr ? NULL : gl->line;
-}
-
-/*.......................................................................
- * Record of the signal handlers of the calling program, so that they
- * can be restored later.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_override_signal_handlers(GetLine *gl)
-{
- GlSignalNode *sig; /* A node in the list of signals to be caught */
-/*
- * Set up our signal handler.
- */
- SigAction act;
- act.sa_handler = gl_signal_handler;
- sigemptyset(&act.sa_mask);
- act.sa_flags = 0;
-/*
- * Get the process signal mask so that we can see which signals the
- * calling program currently has blocked, and so that we can restore this
- * mask before returning to the calling program.
- */
- if(sigprocmask(SIG_SETMASK, NULL, &gl->old_signal_set) == -1) {
- fprintf(stderr, "gl_get_line(): sigprocmask error: %s\n", strerror(errno));
- return 1;
- };
-/*
- * Form a new process signal mask from the list of signals that we have
- * been asked to trap.
- */
- sigemptyset(&gl->new_signal_set);
- for(sig=gl->sigs; sig; sig=sig->next) {
-/*
- * Trap this signal? If it is blocked by the calling program and we
- * haven't been told to unblock it, don't arrange to trap this signal.
- */
- if(sig->flags & GLS_UNBLOCK_SIG ||
- !sigismember(&gl->old_signal_set, sig->signo)) {
- if(sigaddset(&gl->new_signal_set, sig->signo) == -1) {
- fprintf(stderr, "gl_get_line(): sigaddset error: %s\n",
- strerror(errno));
- return 1;
- };
- };
- };
-/*
- * Before installing our signal handlers, block all of the signals
- * that we are going to be trapping.
- */
- if(sigprocmask(SIG_BLOCK, &gl->new_signal_set, NULL) == -1) {
- fprintf(stderr, "gl_get_line(): sigprocmask error: %s\n", strerror(errno));
- return 1;
- };
-/*
- * Override the actions of the signals that we are trapping.
- */
- for(sig=gl->sigs; sig; sig=sig->next) {
- if(sigismember(&gl->new_signal_set, sig->signo) &&
- sigaction(sig->signo, &act, &sig->original)) {
- fprintf(stderr, "gl_get_line(): sigaction error: %s\n", strerror(errno));
- return 1;
- };
- };
-/*
- * Just in case a SIGWINCH signal was sent to the process while our
- * SIGWINCH signal handler wasn't in place, check to see if the terminal
- * size needs updating.
- */
-#ifdef USE_SIGWINCH
- if(gl_resize_terminal(gl, 0))
- return 1;
-#endif
- return 0;
-}
-
-/*.......................................................................
- * Restore the signal handlers of the calling program.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_restore_signal_handlers(GetLine *gl)
-{
- GlSignalNode *sig; /* A node in the list of signals to be caught */
-/*
- * Restore application signal handlers that were overriden
- * by gl_override_signal_handlers().
- */
- for(sig=gl->sigs; sig; sig=sig->next) {
- if(sigismember(&gl->new_signal_set, sig->signo) &&
- sigaction(sig->signo, &sig->original, NULL)) {
- fprintf(stderr, "gl_get_line(): sigaction error: %s\n", strerror(errno));
- return 1;
- };
- };
-/*
- * Restore the original signal mask.
- */
- if(sigprocmask(SIG_SETMASK, &gl->old_signal_set, NULL) == -1) {
- fprintf(stderr, "gl_get_line(): sigprocmask error: %s\n", strerror(errno));
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * This signal handler simply records the fact that a given signal was
- * caught in the file-scope gl_pending_signal variable.
- */
-static void gl_signal_handler(int signo)
-{
- gl_pending_signal = signo;
- siglongjmp(gl_setjmp_buffer, 1);
-}
-
-/*.......................................................................
- * Switch the terminal into raw mode after storing the previous terminal
- * settings in gl->attributes.
- *
- * Input:
- * gl GetLine * The resource object of this program.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_raw_terminal_mode(GetLine *gl)
-{
- Termios newattr; /* The new terminal attributes */
-/*
- * Record the current terminal attributes.
- */
- if(tcgetattr(gl->input_fd, &gl->oldattr)) {
- fprintf(stderr, "getline(): tcgetattr error: %s\n", strerror(errno));
- return 1;
- };
-/*
- * This function shouldn't do anything but record the current terminal
- * attritubes if editing has been disabled.
- */
- if(gl->editor == GL_NO_EDITOR)
- return 0;
-/*
- * Modify the existing attributes.
- */
- newattr = gl->oldattr;
-/*
- * Turn off local echo, canonical input mode and extended input processing.
- */
- newattr.c_lflag &= ~(ECHO | ICANON | IEXTEN);
-/*
- * Don't translate carriage return to newline, turn off input parity
- * checking, don't strip off 8th bit, turn off output flow control.
- */
- newattr.c_iflag &= ~(ICRNL | INPCK | ISTRIP);
-/*
- * Clear size bits, turn off parity checking, and allow 8-bit characters.
- */
- newattr.c_cflag &= ~(CSIZE | PARENB);
- newattr.c_cflag |= CS8;
-/*
- * Turn off output processing.
- */
- newattr.c_oflag &= ~(OPOST);
-/*
- * Request one byte at a time, without waiting.
- */
- newattr.c_cc[VMIN] = 1;
- newattr.c_cc[VTIME] = 0;
-/*
- * Install the new terminal modes.
- */
- while(tcsetattr(gl->input_fd, TCSADRAIN, &newattr)) {
- if (errno != EINTR) {
- fprintf(stderr, "getline(): tcsetattr error: %s\n", strerror(errno));
- return 1;
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Restore the terminal attributes recorded in gl->oldattr.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_restore_terminal_attributes(GetLine *gl)
-{
- int waserr = 0;
-/*
- * Before changing the terminal attributes, make sure that all output
- * has been passed to the terminal.
- */
- if(gl_flush_output(gl))
- waserr = 1;
-/*
- * Reset the terminal attributes to the values that they had on
- * entry to gl_get_line().
- */
- while(tcsetattr(gl->input_fd, TCSADRAIN, &gl->oldattr)) {
- if(errno != EINTR) {
- fprintf(stderr, "gl_get_line(): tcsetattr error: %s\n", strerror(errno));
- waserr = 1;
- break;
- };
- };
- return waserr;
-}
-
-/*.......................................................................
- * Read a new input line from the user.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * start_line char * The initial contents of the input line, or NULL
- * if it should start out empty.
- * start_pos int If start_line isn't NULL, this specifies the
- * index of the character over which the cursor
- * should initially be positioned within the line.
- * If you just want it to follow the last character
- * of the line, send -1.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_get_input_line(GetLine *gl, const char *start_line, int start_pos)
-{
- char c; /* The character being read */
-/*
- * Reset the properties of the line.
- */
- gl->ntotal = 0;
- gl->buff_curpos = 0;
- gl->term_curpos = 0;
- gl->insert_curpos = 0;
- gl->number = -1;
- gl->endline = 0;
- gl->vi.command = 0;
- gl->vi.undo.line[0] = '\0';
- gl->vi.undo.ntotal = 0;
- gl->vi.undo.buff_curpos = 0;
- gl->vi.repeat.fn = 0;
- gl->last_signal = -1;
-/*
- * Reset the history search pointers.
- */
- if(_glh_cancel_search(gl->glh))
- return 1;
-/*
- * Draw the prompt at the start of the line.
- */
- if(gl_display_prompt(gl))
- return 1;
-/*
- * Present an initial line?
- */
- if(start_line) {
- char *cptr; /* A pointer into gl->line[] */
-/*
- * Load the line into the buffer, and display it.
- */
- if(start_line != gl->line)
- strncpy(gl->line, start_line, gl->linelen);
- gl->line[gl->linelen] = '\0';
- gl->ntotal = strlen(gl->line);
-/*
- * Strip off any trailing newline and carriage return characters.
- */
- for(cptr=gl->line + gl->ntotal - 1; cptr >= gl->line &&
- (*cptr=='\n' || *cptr=='\r'); cptr--,gl->ntotal--)
- ;
- if(gl->ntotal < 0)
- gl->ntotal = 0;
- gl->line[gl->ntotal] = '\0';
-/*
- * Display the string that remains.
- */
- if(gl_output_string(gl, gl->line, '\0'))
- return 1;
-/*
- * Where should the cursor be placed within the line?
- */
- if(start_pos < 0 || start_pos > gl->ntotal) {
- if(gl_place_cursor(gl, gl->ntotal))
- return 1;
- } else {
- if(gl_place_cursor(gl, start_pos))
- return 1;
- };
- } else {
- gl->line[0] = '\0';
- };
-/*
- * Preload a history line?
- */
- if(gl->preload_history) {
- gl->preload_history = 0;
- if(gl->preload_id) {
- if(_glh_recall_line(gl->glh, gl->preload_id, gl->line, gl->linelen)) {
- gl->ntotal = strlen(gl->line);
- gl->buff_curpos = strlen(gl->line);
- };
- gl->preload_id = 0;
- };
- gl_redisplay(gl, 1);
- };
-/*
- * Read one character at a time.
- */
- while(gl_read_character(gl, &c) == 0) {
-/*
- * Increment the count of the number of key sequences entered.
- */
- gl->keyseq_count++;
-/*
- * Interpret the character either as the start of a new key-sequence,
- * as a continuation of a repeat count, or as a printable character
- * to be added to the line.
- */
- if(gl_interpret_char(gl, c))
- break;
-/*
- * If we just ran an action function which temporarily asked for
- * input to be taken from a file, abort this call.
- */
- if(gl->file_fp)
- return 0;
-/*
- * Has the line been completed?
- */
- if(gl->endline)
- return gl_line_ended(gl, isprint((int)(unsigned char) c) ? c : '\n',
- gl->echo && (c=='\n' || c=='\r'));
- };
-/*
- * To get here, gl_read_character() must have returned non-zero. See
- * if this was because a signal was caught that requested that the
- * current line be returned.
- */
- if(gl->endline)
- return gl_line_ended(gl, '\n', gl->echo);
- return 1;
-}
-
-/*.......................................................................
- * Add a character to the line buffer at the current cursor position,
- * inserting or overwriting according the current mode.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * c char The character to be added.
- * Output:
- * return int 0 - OK.
- * 1 - Insufficient room.
- */
-static int gl_add_char_to_line(GetLine *gl, char c)
-{
-/*
- * Keep a record of the current cursor position.
- */
- int buff_curpos = gl->buff_curpos;
- int term_curpos = gl->term_curpos;
-/*
- * Work out the displayed width of the new character.
- */
- int width = gl_displayed_char_width(gl, c, term_curpos);
-/*
- * If we are in insert mode, or at the end of the line,
- * check that we can accomodate a new character in the buffer.
- * If not, simply return, leaving it up to the calling program
- * to check for the absence of a newline character.
- */
- if((gl->insert || buff_curpos >= gl->ntotal) && gl->ntotal >= gl->linelen)
- return 0;
-/*
- * Are we adding characters to the line (ie. inserting or appending)?
- */
- if(gl->insert || buff_curpos >= gl->ntotal) {
-/*
- * If inserting, make room for the new character.
- */
- if(buff_curpos < gl->ntotal) {
- memmove(gl->line + buff_curpos + 1, gl->line + buff_curpos,
- gl->ntotal - buff_curpos);
- };
-/*
- * Copy the character into the buffer.
- */
- gl->line[buff_curpos] = c;
- gl->buff_curpos++;
-/*
- * If the line was extended, update the record of the string length
- * and terminate the extended string.
- */
- gl->ntotal++;
- gl->line[gl->ntotal] = '\0';
-/*
- * Redraw the line from the cursor position to the end of the line,
- * and move the cursor to just after the added character.
- */
- if(gl_output_string(gl, gl->line + buff_curpos, '\0') ||
- gl_set_term_curpos(gl, term_curpos + width))
- return 1;
-/*
- * Are we overwriting an existing character?
- */
- } else {
-/*
- * Get the widths of the character to be overwritten and the character
- * that is going to replace it.
- */
- int old_width = gl_displayed_char_width(gl, gl->line[buff_curpos],
- term_curpos);
-/*
- * Overwrite the character in the buffer.
- */
- gl->line[buff_curpos] = c;
-/*
- * If we are replacing with a narrower character, we need to
- * redraw the terminal string to the end of the line, then
- * overwrite the trailing old_width - width characters
- * with spaces.
- */
- if(old_width > width) {
- if(gl_output_string(gl, gl->line + buff_curpos, '\0'))
- return 1;
-/*
- * Clear to the end of the terminal.
- */
- if(gl_output_control_sequence(gl, gl->nline, gl->clear_eod))
- return 1;
-/*
- * Move the cursor to the end of the new character.
- */
- if(gl_set_term_curpos(gl, term_curpos + width))
- return 1;
- gl->buff_curpos++;
-/*
- * If we are replacing with a wider character, then we will be
- * inserting new characters, and thus extending the line.
- */
- } else if(width > old_width) {
-/*
- * Redraw the line from the cursor position to the end of the line,
- * and move the cursor to just after the added character.
- */
- if(gl_output_string(gl, gl->line + buff_curpos, '\0') ||
- gl_set_term_curpos(gl, term_curpos + width))
- return 1;
- gl->buff_curpos++;
-/*
- * The original and replacement characters have the same width,
- * so simply overwrite.
- */
- } else {
-/*
- * Copy the character into the buffer.
- */
- gl->line[buff_curpos] = c;
- gl->buff_curpos++;
-/*
- * Overwrite the original character.
- */
- if(gl_output_char(gl, c, gl->line[gl->buff_curpos]))
- return 1;
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Insert/append a string to the line buffer and terminal at the current
- * cursor position.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * s char * The string to be added.
- * Output:
- * return int 0 - OK.
- * 1 - Insufficient room.
- */
-static int gl_add_string_to_line(GetLine *gl, const char *s)
-{
- int buff_slen; /* The length of the string being added to line[] */
- int term_slen; /* The length of the string being written to the terminal */
- int buff_curpos; /* The original value of gl->buff_curpos */
- int term_curpos; /* The original value of gl->term_curpos */
-/*
- * Keep a record of the current cursor position.
- */
- buff_curpos = gl->buff_curpos;
- term_curpos = gl->term_curpos;
-/*
- * How long is the string to be added?
- */
- buff_slen = strlen(s);
- term_slen = gl_displayed_string_width(gl, s, buff_slen, term_curpos);
-/*
- * Check that we can accomodate the string in the buffer.
- * If not, simply return, leaving it up to the calling program
- * to check for the absence of a newline character.
- */
- if(gl->ntotal + buff_slen > gl->linelen)
- return 0;
-/*
- * Move the characters that follow the cursor in the buffer by
- * buff_slen characters to the right.
- */
- if(gl->ntotal > gl->buff_curpos) {
- memmove(gl->line + gl->buff_curpos + buff_slen, gl->line + gl->buff_curpos,
- gl->ntotal - gl->buff_curpos);
- };
-/*
- * Copy the string into the buffer.
- */
- memcpy(gl->line + gl->buff_curpos, s, buff_slen);
- gl->ntotal += buff_slen;
- gl->buff_curpos += buff_slen;
-/*
- * Maintain the buffer properly terminated.
- */
- gl->line[gl->ntotal] = '\0';
-/*
- * Write the modified part of the line to the terminal, then move
- * the terminal cursor to the end of the displayed input string.
- */
- if(gl_output_string(gl, gl->line + buff_curpos, '\0') ||
- gl_set_term_curpos(gl, term_curpos + term_slen))
- return 1;
- return 0;
-}
-
-/*.......................................................................
- * Read a single character from the terminal.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * Output:
- * return int 0 - OK.
- * 1 - Either an I/O error occurred, or a signal was
- * caught who's disposition is to abort gl_get_line()
- * or to have gl_get_line() return the current line
- * as though the user had pressed return. In the
- * latter case gl->endline will be non-zero.
- */
-static int gl_read_character(GetLine *gl, char *c)
-{
-/*
- * Before waiting for a new character to be input, flush unwritten
- * characters to the terminal.
- */
- if(gl_flush_output(gl))
- return 1;
-/*
- * We may have to repeat the read if window change signals are received.
- */
- for(;;) {
-/*
- * If the endline flag becomes set, don't wait for another character.
- */
- if(gl->endline)
- return 1;
-/*
- * Since the code in this function can block, trap signals.
- */
- if(sigsetjmp(gl_setjmp_buffer, 1)==0) {
-/*
- * Unblock the signals that we are trapping.
- */
- if(sigprocmask(SIG_UNBLOCK, &gl->new_signal_set, NULL) == -1) {
- fprintf(stderr, "getline(): sigprocmask error: %s\n", strerror(errno));
- return 1;
- };
-/*
- * If select() is available, watch for activity on any file descriptors
- * that the user has registered, and for data available on the terminal
- * file descriptor.
- */
-#ifdef HAVE_SELECT
- if(gl_event_handler(gl))
- return 1;
-#endif
-/*
- * Read one character from the terminal. This could take more
- * than one call if an interrupt that we aren't trapping is
- * received.
- */
- while(read(gl->input_fd, (void *)c, 1) != 1) {
- if(errno != EINTR) {
-#ifdef EAGAIN
- if(!errno) /* This can happen with SysV O_NDELAY */
- errno = EAGAIN;
-#endif
- return 1;
- };
- };
-/*
- * Block all of the signals that we are trapping.
- */
- if(sigprocmask(SIG_BLOCK, &gl->new_signal_set, NULL) == -1) {
- fprintf(stderr, "getline(): sigprocmask error: %s\n", strerror(errno));
- return 1;
- };
- return 0;
- };
-/*
- * To get here, one of the signals that we are trapping must have
- * been received. Note that by using sigsetjmp() instead of setjmp()
- * the signal mask that was blocking these signals will have been
- * reinstated, so we can be sure that no more of these signals will
- * be received until we explicitly unblock them again.
- */
- if(gl_check_caught_signal(gl))
- return 1;
- };
-}
-
-/*.......................................................................
- * This function is called to handle signals caught between calls to
- * sigsetjmp() and siglongjmp().
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * Output:
- * return int 0 - Signal handled internally.
- * 1 - Signal requires gl_get_line() to abort.
- */
-static int gl_check_caught_signal(GetLine *gl)
-{
- GlSignalNode *sig; /* The signal disposition */
- SigAction keep_action; /* The signal disposition of tecla signal handlers */
-/*
- * Was no signal caught?
- */
- if(gl_pending_signal == -1)
- return 0;
-/*
- * Record the signal that was caught, so that the user can query it later.
- */
- gl->last_signal = gl_pending_signal;
-/*
- * Did we receive a terminal size signal?
- */
-#ifdef USE_SIGWINCH
- if(gl_pending_signal == SIGWINCH && gl_resize_terminal(gl, 1))
- return 1;
-#endif
-/*
- * Lookup the requested disposition of this signal.
- */
- for(sig=gl->sigs; sig && sig->signo != gl_pending_signal; sig=sig->next)
- ;
- if(!sig)
- return 0;
-/*
- * Start a fresh line?
- */
- if(sig->flags & GLS_RESTORE_LINE) {
- if(gl_set_term_curpos(gl, gl_buff_curpos_to_term_curpos(gl, gl->ntotal)) ||
- gl_output_raw_string(gl, "\r\n"))
- return 1;
- };
-/*
- * Restore terminal settings to how they were before gl_get_line() was
- * called?
- */
- if(sig->flags & GLS_RESTORE_TTY)
- gl_restore_terminal_attributes(gl);
-/*
- * Restore signal handlers to how they were before gl_get_line() was
- * called? If this hasn't been requested, only reinstate the signal
- * handler of the signal that we are handling.
- */
- if(sig->flags & GLS_RESTORE_SIG) {
- gl_restore_signal_handlers(gl);
- } else {
- (void) sigaction(sig->signo, &sig->original, &keep_action);
- (void) sigprocmask(SIG_UNBLOCK, &sig->proc_mask, NULL);
- };
-/*
- * Forward the signal to the application's signal handler.
- */
- if(!(sig->flags & GLS_DONT_FORWARD))
- raise(gl_pending_signal);
- gl_pending_signal = -1;
-/*
- * Reinstate our signal handlers.
- */
- if(sig->flags & GLS_RESTORE_SIG) {
- gl_override_signal_handlers(gl);
- } else {
- (void) sigaction(sig->signo, &keep_action, NULL);
- (void) sigprocmask(SIG_BLOCK, &sig->proc_mask, NULL);
- };
-/*
- * Do we need to reinstate our terminal settings?
- */
- if(sig->flags & GLS_RESTORE_TTY)
- gl_raw_terminal_mode(gl);
-/*
- * Redraw the line?
- */
- if(sig->flags & GLS_REDRAW_LINE && gl_redisplay(gl, 1))
- return 1;
-/*
- * Set errno.
- */
- errno = sig->errno_value;
-/*
- * What next?
- */
- switch(sig->after) {
- case GLS_RETURN:
- return gl_newline(gl, 1);
- break;
- case GLS_ABORT:
- return 1;
- break;
- case GLS_CONTINUE:
- return 0;
- break;
- };
- return 0;
-}
-
-/*.......................................................................
- * Get pertinent terminal control strings and the initial terminal size.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * term char * The type of the terminal.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_control_strings(GetLine *gl, const char *term)
-{
- int bad_term = 0; /* True if term is unusable */
-/*
- * Discard any existing control strings from a previous terminal.
- */
- gl->left = NULL;
- gl->right = NULL;
- gl->up = NULL;
- gl->down = NULL;
- gl->home = NULL;
- gl->bol = 0;
- gl->clear_eol = NULL;
- gl->clear_eod = NULL;
- gl->u_arrow = NULL;
- gl->d_arrow = NULL;
- gl->l_arrow = NULL;
- gl->r_arrow = NULL;
- gl->sound_bell = NULL;
- gl->bold = NULL;
- gl->underline = NULL;
- gl->standout = NULL;
- gl->dim = NULL;
- gl->reverse = NULL;
- gl->blink = NULL;
- gl->text_attr_off = NULL;
- gl->nline = 0;
- gl->ncolumn = 0;
-#ifdef USE_TERMINFO
- gl->left_n = NULL;
- gl->right_n = NULL;
-#endif
-/*
- * If possible lookup the information in a terminal information
- * database.
- */
-#ifdef USE_TERMINFO
- if(!term || setupterm((char *)term, gl->input_fd, NULL) == ERR) {
- bad_term = 1;
- } else {
- _clr_StringGroup(gl->capmem);
- gl->left = gl_tigetstr(gl, "cub1");
- gl->right = gl_tigetstr(gl, "cuf1");
- gl->up = gl_tigetstr(gl, "cuu1");
- gl->down = gl_tigetstr(gl, "cud1");
- gl->home = gl_tigetstr(gl, "home");
- gl->clear_eol = gl_tigetstr(gl, "el");
- gl->clear_eod = gl_tigetstr(gl, "ed");
- gl->u_arrow = gl_tigetstr(gl, "kcuu1");
- gl->d_arrow = gl_tigetstr(gl, "kcud1");
- gl->l_arrow = gl_tigetstr(gl, "kcub1");
- gl->r_arrow = gl_tigetstr(gl, "kcuf1");
- gl->left_n = gl_tigetstr(gl, "cub");
- gl->right_n = gl_tigetstr(gl, "cuf");
- gl->sound_bell = gl_tigetstr(gl, "bel");
- gl->bold = gl_tigetstr(gl, "bold");
- gl->underline = gl_tigetstr(gl, "smul");
- gl->standout = gl_tigetstr(gl, "smso");
- gl->dim = gl_tigetstr(gl, "dim");
- gl->reverse = gl_tigetstr(gl, "rev");
- gl->blink = gl_tigetstr(gl, "blink");
- gl->text_attr_off = gl_tigetstr(gl, "sgr0");
- };
-#elif defined(USE_TERMCAP)
- if(!term || tgetent(gl->tgetent_buf, (char *)term) < 0) {
- bad_term = 1;
- } else {
- char *tgetstr_buf_ptr = gl->tgetstr_buf;
- _clr_StringGroup(gl->capmem);
- gl->left = gl_tgetstr(gl, "le", &tgetstr_buf_ptr);
- gl->right = gl_tgetstr(gl, "nd", &tgetstr_buf_ptr);
- gl->up = gl_tgetstr(gl, "up", &tgetstr_buf_ptr);
- gl->down = gl_tgetstr(gl, "do", &tgetstr_buf_ptr);
- gl->home = gl_tgetstr(gl, "ho", &tgetstr_buf_ptr);
- gl->clear_eol = gl_tgetstr(gl, "ce", &tgetstr_buf_ptr);
- gl->clear_eod = gl_tgetstr(gl, "cd", &tgetstr_buf_ptr);
- gl->u_arrow = gl_tgetstr(gl, "ku", &tgetstr_buf_ptr);
- gl->d_arrow = gl_tgetstr(gl, "kd", &tgetstr_buf_ptr);
- gl->l_arrow = gl_tgetstr(gl, "kl", &tgetstr_buf_ptr);
- gl->r_arrow = gl_tgetstr(gl, "kr", &tgetstr_buf_ptr);
- gl->sound_bell = gl_tgetstr(gl, "bl", &tgetstr_buf_ptr);
- gl->bold = gl_tgetstr(gl, "md", &tgetstr_buf_ptr);
- gl->underline = gl_tgetstr(gl, "us", &tgetstr_buf_ptr);
- gl->standout = gl_tgetstr(gl, "so", &tgetstr_buf_ptr);
- gl->dim = gl_tgetstr(gl, "mh", &tgetstr_buf_ptr);
- gl->reverse = gl_tgetstr(gl, "mr", &tgetstr_buf_ptr);
- gl->blink = gl_tgetstr(gl, "mb", &tgetstr_buf_ptr);
- gl->text_attr_off = gl_tgetstr(gl, "me", &tgetstr_buf_ptr);
- };
-#endif
-/*
- * Report term being unusable.
- */
- if(bad_term) {
- fprintf(stderr, "Bad terminal type: \"%s\". Will assume vt100.\n",
- term ? term : "(null)");
- };
-/*
- * Fill in missing information with ANSI VT100 strings.
- */
- if(!gl->left)
- gl->left = "\b"; /* ^H */
- if(!gl->right)
- gl->right = GL_ESC_STR "[C";
- if(!gl->up)
- gl->up = GL_ESC_STR "[A";
- if(!gl->down)
- gl->down = "\n";
- if(!gl->home)
- gl->home = GL_ESC_STR "[H";
- if(!gl->bol)
- gl->bol = "\r";
- if(!gl->clear_eol)
- gl->clear_eol = GL_ESC_STR "[K";
- if(!gl->clear_eod)
- gl->clear_eod = GL_ESC_STR "[J";
- if(!gl->u_arrow)
- gl->u_arrow = GL_ESC_STR "[A";
- if(!gl->d_arrow)
- gl->d_arrow = GL_ESC_STR "[B";
- if(!gl->l_arrow)
- gl->l_arrow = GL_ESC_STR "[D";
- if(!gl->r_arrow)
- gl->r_arrow = GL_ESC_STR "[C";
- if(!gl->sound_bell)
- gl->sound_bell = "\a";
- if(!gl->bold)
- gl->bold = GL_ESC_STR "[1m";
- if(!gl->underline)
- gl->underline = GL_ESC_STR "[4m";
- if(!gl->standout)
- gl->standout = GL_ESC_STR "[1;7m";
- if(!gl->dim)
- gl->dim = ""; /* Not available */
- if(!gl->reverse)
- gl->reverse = GL_ESC_STR "[7m";
- if(!gl->blink)
- gl->blink = GL_ESC_STR "[5m";
- if(!gl->text_attr_off)
- gl->text_attr_off = GL_ESC_STR "[m";
-/*
- * Find out the current terminal size.
- */
- (void) gl_terminal_size(gl, GL_DEF_NCOLUMN, GL_DEF_NLINE);
- return 0;
-}
-
-#ifdef USE_TERMINFO
-/*.......................................................................
- * This is a private function of gl_control_strings() used to look up
- * a termninal capability string from the terminfo database and make
- * a private copy of it.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * name const char * The name of the terminfo string to look up.
- * Output:
- * return const char * The local copy of the capability, or NULL
- * if not available.
- */
-static const char *gl_tigetstr(GetLine *gl, const char *name)
-{
- const char *value = tigetstr((char *)name);
- if(!value || value == (char *) -1)
- return NULL;
- return _sg_store_string(gl->capmem, value, 0);
-}
-#elif defined(USE_TERMCAP)
-/*.......................................................................
- * This is a private function of gl_control_strings() used to look up
- * a termninal capability string from the termcap database and make
- * a private copy of it. Note that some emulations of tgetstr(), such
- * as that used by Solaris, ignores the buffer pointer that is past to
- * it, so we can't assume that a private copy has been made that won't
- * be trashed by another call to gl_control_strings() by another
- * GetLine object. So we make what may be a redundant private copy
- * of the string in gl->capmem.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * name const char * The name of the terminfo string to look up.
- * Input/Output:
- * bufptr char ** On input *bufptr points to the location in
- * gl->tgetstr_buf at which to record the
- * capability string. On output *bufptr is
- * incremented over the stored string.
- * Output:
- * return const char * The local copy of the capability, or NULL
- * on error.
- */
-static const char *gl_tgetstr(GetLine *gl, const char *name, char **bufptr)
-{
- const char *value = tgetstr((char *)name, bufptr);
- if(!value || value == (char *) -1)
- return NULL;
- return _sg_store_string(gl->capmem, value, 0);
-}
-#endif
-
-/*.......................................................................
- * This is an action function that implements a user interrupt (eg. ^C).
- */
-static KT_KEY_FN(gl_user_interrupt)
-{
- raise(SIGINT);
- return 1;
-}
-
-/*.......................................................................
- * This is an action function that implements the abort signal.
- */
-static KT_KEY_FN(gl_abort)
-{
- raise(SIGABRT);
- return 1;
-}
-
-/*.......................................................................
- * This is an action function that sends a suspend signal (eg. ^Z) to the
- * the parent process.
- */
-static KT_KEY_FN(gl_suspend)
-{
- raise(SIGTSTP);
- return 0;
-}
-
-/*.......................................................................
- * This is an action function that halts output to the terminal.
- */
-static KT_KEY_FN(gl_stop_output)
-{
- tcflow(gl->output_fd, TCOOFF);
- return 0;
-}
-
-/*.......................................................................
- * This is an action function that resumes halted terminal output.
- */
-static KT_KEY_FN(gl_start_output)
-{
- tcflow(gl->output_fd, TCOON);
- return 0;
-}
-
-/*.......................................................................
- * This is an action function that allows the next character to be accepted
- * without any interpretation as a special character.
- */
-static KT_KEY_FN(gl_literal_next)
-{
- char c; /* The character to be added to the line */
- int i;
-/*
- * Get the character to be inserted literally.
- */
- if(gl_read_character(gl, &c))
- return 1;
-/*
- * Add the character to the line 'count' times.
- */
- for(i=0; i<count; i++)
- gl_add_char_to_line(gl, c);
- return 0;
-}
-
-/*.......................................................................
- * Return the number of characters needed to display a given character
- * on the screen. Tab characters require eight spaces, and control
- * characters are represented by a caret followed by the modified
- * character.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * c char The character to be displayed.
- * term_curpos int The destination terminal location of the character.
- * This is needed because the width of tab characters
- * depends on where they are, relative to the
- * preceding tab stops.
- * Output:
- * return int The number of terminal charaters needed.
- */
-static int gl_displayed_char_width(GetLine *gl, char c, int term_curpos)
-{
- if(c=='\t')
- return TAB_WIDTH - ((term_curpos % gl->ncolumn) % TAB_WIDTH);
- if(IS_CTRL_CHAR(c))
- return 2;
- if(!isprint((int)(unsigned char) c)) {
- char string[TAB_WIDTH + 4];
- sprintf(string, "\\%o", (int)(unsigned char)c);
- return strlen(string);
- };
- return 1;
-}
-
-/*.......................................................................
- * Work out the length of given string of characters on the terminal.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * string char * The string to be measured.
- * nc int The number of characters to be measured, or -1
- * to measure the whole string.
- * term_curpos int The destination terminal location of the character.
- * This is needed because the width of tab characters
- * depends on where they are, relative to the
- * preceding tab stops.
- * Output:
- * return int The number of displayed characters.
- */
-static int gl_displayed_string_width(GetLine *gl, const char *string, int nc,
- int term_curpos)
-{
- int slen=0; /* The displayed number of characters */
- int i;
-/*
- * How many characters are to be measured?
- */
- if(nc < 0)
- nc = strlen(string);
-/*
- * Add up the length of the displayed string.
- */
- for(i=0; i<nc; i++)
- slen += gl_displayed_char_width(gl, string[i], term_curpos + slen);
- return slen;
-}
-
-/*.......................................................................
- * Write a string directly to the terminal.
- *
- * Input:
- * gl GetLine * The resource object of this program.
- * string char * The string to be written.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_output_raw_string(GetLine *gl, const char *string)
-{
- if(gl->echo) {
- int ndone = 0; /* The number of characters written so far */
-/*
- * How long is the string to be written?
- */
- int slen = strlen(string);
-/*
- * Attempt to write the string to the terminal, restarting the
- * write if a signal is caught.
- */
- while(ndone < slen) {
- int nnew = fwrite(string + ndone, sizeof(char), slen-ndone,
- gl->output_fp);
- if(nnew > 0)
- ndone += nnew;
- else if(errno != EINTR)
- return 1;
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Output a terminal control sequence. When using terminfo,
- * this must be a sequence returned by tgetstr() or tigetstr()
- * respectively.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * nline int The number of lines affected by the operation,
- * or 1 if not relevant.
- * string char * The control sequence to be sent.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_output_control_sequence(GetLine *gl, int nline,
- const char *string)
-{
- if(gl->echo) {
-#if defined(USE_TERMINFO) || defined(USE_TERMCAP)
- tputs_fp = gl->output_fp;
- errno = 0;
- tputs((char *)string, nline, gl_tputs_putchar);
- return errno != 0;
-#else
- return gl_output_raw_string(gl, string);
-#endif
- };
- return 0;
-}
-
-/*.......................................................................
- * Move the terminal cursor n characters to the left or right.
- *
- * Input:
- * gl GetLine * The resource object of this program.
- * n int number of positions to the right (> 0) or left (< 0).
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_terminal_move_cursor(GetLine *gl, int n)
-{
- int cur_row, cur_col; /* The current terminal row and column index of */
- /* the cursor wrt the start of the input line. */
- int new_row, new_col; /* The target terminal row and column index of */
- /* the cursor wrt the start of the input line. */
-/*
- * How far can we move left?
- */
- if(gl->term_curpos + n < 0)
- n = gl->term_curpos;
-/*
- * Break down the current and target cursor locations into rows and columns.
- */
- cur_row = gl->term_curpos / gl->ncolumn;
- cur_col = gl->term_curpos % gl->ncolumn;
- new_row = (gl->term_curpos + n) / gl->ncolumn;
- new_col = (gl->term_curpos + n) % gl->ncolumn;
-/*
- * Move down to the next line.
- */
- for(; cur_row < new_row; cur_row++) {
- if(gl_output_control_sequence(gl, 1, gl->down))
- return 1;
- };
-/*
- * Move up to the previous line.
- */
- for(; cur_row > new_row; cur_row--) {
- if(gl_output_control_sequence(gl, 1, gl->up))
- return 1;
- };
-/*
- * Move to the right within the target line?
- */
- if(cur_col < new_col) {
-#ifdef USE_TERMINFO
-/*
- * Use a parameterized control sequence if it generates less control
- * characters (guess based on ANSI terminal termcap entry).
- */
- if(gl->right_n != NULL && new_col - cur_col > 1) {
- if(gl_output_control_sequence(gl, 1, tparm((char *)gl->right_n,
- (long)(new_col - cur_col), 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l)))
- return 1;
- } else
-#endif
- {
- for(; cur_col < new_col; cur_col++) {
- if(gl_output_control_sequence(gl, 1, gl->right))
- return 1;
- };
- };
-/*
- * Move to the left within the target line?
- */
- } else if(cur_col > new_col) {
-#ifdef USE_TERMINFO
-/*
- * Use a parameterized control sequence if it generates less control
- * characters (guess based on ANSI terminal termcap entry).
- */
- if(gl->left_n != NULL && cur_col - new_col > 3) {
- if(gl_output_control_sequence(gl, 1, tparm((char *)gl->left_n,
- (long)(cur_col - new_col), 0l, 0l, 0l, 0l, 0l, 0l, 0l, 0l)))
- return 1;
- } else
-#endif
- {
- for(; cur_col > new_col; cur_col--) {
- if(gl_output_control_sequence(gl, 1, gl->left))
- return 1;
- };
- };
- }
-/*
- * Update the recorded position of the terminal cursor.
- */
- gl->term_curpos += n;
- return 0;
-}
-
-/*.......................................................................
- * Write a character to the terminal after expanding tabs and control
- * characters to their multi-character representations.
- *
- * Input:
- * gl GetLine * The resource object of this program.
- * c char The character to be output.
- * pad char Many terminals have the irritating feature that
- * when one writes a character in the last column of
- * of the terminal, the cursor isn't wrapped to the
- * start of the next line until one more character
- * is written. Some terminals don't do this, so
- * after such a write, we don't know where the
- * terminal is unless we output an extra character.
- * This argument specifies the character to write.
- * If at the end of the input line send '\0' or a
- * space, and a space will be written. Otherwise,
- * pass the next character in the input line
- * following the one being written.
- * Output:
- * return int 0 - OK.
- */
-static int gl_output_char(GetLine *gl, char c, char pad)
-{
- char string[TAB_WIDTH + 4]; /* A work area for composing compound strings */
- int nchar; /* The number of terminal characters */
- int i;
-/*
- * Check for special characters.
- */
- if(c == '\t') {
-/*
- * How many spaces do we need to represent a tab at the current terminal
- * column?
- */
- nchar = gl_displayed_char_width(gl, '\t', gl->term_curpos);
-/*
- * Compose the tab string.
- */
- for(i=0; i<nchar; i++)
- string[i] = ' ';
- } else if(IS_CTRL_CHAR(c)) {
- string[0] = '^';
- string[1] = CTRL_TO_CHAR(c);
- nchar = 2;
- } else if(!isprint((int)(unsigned char) c)) {
- sprintf(string, "\\%o", (int)(unsigned char)c);
- nchar = strlen(string);
- } else {
- string[0] = c;
- nchar = 1;
- };
-/*
- * Terminate the string.
- */
- string[nchar] = '\0';
-/*
- * Write the string to the terminal.
- */
- if(gl_output_raw_string(gl, string))
- return 1;
-/*
- * Except for one exception to be described in a moment, the cursor should
- * now have been positioned after the character that was just output.
- */
- gl->term_curpos += nchar;
-/*
- * If the new character ended exactly at the end of a line,
- * most terminals won't move the cursor onto the next line until we
- * have written a character on the next line, so append an extra
- * space then move the cursor back.
- */
- if(gl->term_curpos % gl->ncolumn == 0) {
- int term_curpos = gl->term_curpos;
- if(gl_output_char(gl, pad ? pad : ' ', ' ') ||
- gl_set_term_curpos(gl, term_curpos))
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Write a string to the terminal after expanding tabs and control
- * characters to their multi-character representations.
- *
- * Input:
- * gl GetLine * The resource object of this program.
- * string char * The string to be output.
- * pad char Many terminals have the irritating feature that
- * when one writes a character in the last column of
- * of the terminal, the cursor isn't wrapped to the
- * start of the next line until one more character
- * is written. Some terminals don't do this, so
- * after such a write, we don't know where the
- * terminal is unless we output an extra character.
- * This argument specifies the character to write.
- * If at the end of the input line send '\0' or a
- * space, and a space will be written. Otherwise,
- * pass the next character in the input line
- * following the one being written.
- * Output:
- * return int 0 - OK.
- */
-static int gl_output_string(GetLine *gl, const char *string, char pad)
-{
- const char *cptr; /* A pointer into string[] */
- for(cptr=string; *cptr; cptr++) {
- char nextc = cptr[1];
- if(gl_output_char(gl, *cptr, nextc ? nextc : pad))
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Given a character position within gl->line[], work out the
- * corresponding gl->term_curpos position on the terminal.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * buff_curpos int The position within gl->line[].
- *
- * Output:
- * return int The gl->term_curpos position on the terminal.
- */
-static int gl_buff_curpos_to_term_curpos(GetLine *gl, int buff_curpos)
-{
- return gl->prompt_len + gl_displayed_string_width(gl, gl->line, buff_curpos,
- gl->prompt_len);
-}
-
-/*.......................................................................
- * Move the terminal cursor position.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * term_curpos int The destination terminal cursor position.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_set_term_curpos(GetLine *gl, int term_curpos)
-{
- return gl_terminal_move_cursor(gl, term_curpos - gl->term_curpos);
-}
-
-/*.......................................................................
- * This is an action function that moves the buffer cursor one character
- * left, and updates the terminal cursor to match.
- */
-static KT_KEY_FN(gl_cursor_left)
-{
- return gl_place_cursor(gl, gl->buff_curpos - count);
-}
-
-/*.......................................................................
- * This is an action function that moves the buffer cursor one character
- * right, and updates the terminal cursor to match.
- */
-static KT_KEY_FN(gl_cursor_right)
-{
- return gl_place_cursor(gl, gl->buff_curpos + count);
-}
-
-/*.......................................................................
- * This is an action function that toggles between overwrite and insert
- * mode.
- */
-static KT_KEY_FN(gl_insert_mode)
-{
- gl->insert = !gl->insert;
- return 0;
-}
-
-/*.......................................................................
- * This is an action function which moves the cursor to the beginning of
- * the line.
- */
-static KT_KEY_FN(gl_beginning_of_line)
-{
- return gl_place_cursor(gl, 0);
-}
-
-/*.......................................................................
- * This is an action function which moves the cursor to the end of
- * the line.
- */
-static KT_KEY_FN(gl_end_of_line)
-{
- return gl_place_cursor(gl, gl->ntotal);
-}
-
-/*.......................................................................
- * This is an action function which deletes the entire contents of the
- * current line.
- */
-static KT_KEY_FN(gl_delete_line)
-{
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Copy the contents of the line to the cut buffer.
- */
- strcpy(gl->cutbuf, gl->line);
-/*
- * Clear the buffer.
- */
- gl->ntotal = 0;
- gl->line[0] = '\0';
-/*
- * Move the terminal cursor to just after the prompt.
- */
- if(gl_place_cursor(gl, 0))
- return 1;
-/*
- * Clear from the end of the prompt to the end of the terminal.
- */
- if(gl_output_control_sequence(gl, gl->nline, gl->clear_eod))
- return 1;
- return 0;
-}
-
-/*.......................................................................
- * This is an action function which deletes all characters between the
- * current cursor position and the end of the line.
- */
-static KT_KEY_FN(gl_kill_line)
-{
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Copy the part of the line that is about to be deleted to the cut buffer.
- */
- strcpy(gl->cutbuf, gl->line + gl->buff_curpos);
-/*
- * Terminate the buffered line at the current cursor position.
- */
- gl->ntotal = gl->buff_curpos;
- gl->line[gl->ntotal] = '\0';
-/*
- * Clear the part of the line that follows the cursor.
- */
- if(gl_output_control_sequence(gl, gl->nline, gl->clear_eod))
- return 1;
-/*
- * Explicitly reset the cursor position to allow vi command mode
- * constraints on its position to be set.
- */
- return gl_place_cursor(gl, gl->buff_curpos);
-}
-
-/*.......................................................................
- * This is an action function which deletes all characters between the
- * start of the line and the current cursor position.
- */
-static KT_KEY_FN(gl_backward_kill_line)
-{
-/*
- * How many characters are to be deleted from before the cursor?
- */
- int nc = gl->buff_curpos - gl->insert_curpos;
- if (!nc)
- return 0;
-/*
- * Move the cursor to the start of the line, or in vi input mode,
- * the start of the sub-line at which insertion started, and delete
- * up to the old cursor position.
- */
- return gl_place_cursor(gl, gl->insert_curpos) ||
- gl_delete_chars(gl, nc, gl->editor == GL_EMACS_MODE || gl->vi.command);
-}
-
-/*.......................................................................
- * This is an action function which moves the cursor forward by a word.
- */
-static KT_KEY_FN(gl_forward_word)
-{
- return gl_place_cursor(gl, gl_nth_word_end_forward(gl, count) +
- (gl->editor==GL_EMACS_MODE));
-}
-
-/*.......................................................................
- * This is an action function which moves the cursor forward to the start
- * of the next word.
- */
-static KT_KEY_FN(gl_forward_to_word)
-{
- return gl_place_cursor(gl, gl_nth_word_start_forward(gl, count));
-}
-
-/*.......................................................................
- * This is an action function which moves the cursor backward by a word.
- */
-static KT_KEY_FN(gl_backward_word)
-{
- return gl_place_cursor(gl, gl_nth_word_start_backward(gl, count));
-}
-
-/*.......................................................................
- * Delete one or more characters, starting with the one under the cursor.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * nc int The number of characters to delete.
- * cut int If true, copy the characters to the cut buffer.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_delete_chars(GetLine *gl, int nc, int cut)
-{
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * If there are fewer than nc characters following the cursor, limit
- * nc to the number available.
- */
- if(gl->buff_curpos + nc > gl->ntotal)
- nc = gl->ntotal - gl->buff_curpos;
-/*
- * Copy the about to be deleted region to the cut buffer.
- */
- if(cut) {
- memcpy(gl->cutbuf, gl->line + gl->buff_curpos, nc);
- gl->cutbuf[nc] = '\0';
- }
-/*
- * Nothing to delete?
- */
- if(nc <= 0)
- return 0;
-/*
- * In vi overwrite mode, restore any previously overwritten characters
- * from the undo buffer.
- */
- if(gl->editor == GL_VI_MODE && !gl->vi.command && !gl->insert) {
-/*
- * How many of the characters being deleted can be restored from the
- * undo buffer?
- */
- int nrestore = gl->buff_curpos + nc <= gl->vi.undo.ntotal ?
- nc : gl->vi.undo.ntotal - gl->buff_curpos;
-/*
- * Restore any available characters.
- */
- if(nrestore > 0)
- memcpy(gl->line + gl->buff_curpos, gl->vi.undo.line + gl->buff_curpos,
- nrestore);
-/*
- * If their were insufficient characters in the undo buffer, then this
- * implies that we are deleting from the end of the line, so we need
- * to terminate the line either where the undo buffer ran out, or if
- * we are deleting from beyond the end of the undo buffer, at the current
- * cursor position.
- */
- if(nc != nrestore) {
- gl->ntotal = gl->vi.undo.ntotal > gl->buff_curpos ? gl->vi.undo.ntotal :
- gl->buff_curpos;
- gl->line[gl->ntotal] = '\0';
- };
- } else {
-/*
- * Copy the remaining part of the line back over the deleted characters.
- */
- memmove(gl->line + gl->buff_curpos, gl->line + gl->buff_curpos + nc,
- gl->ntotal - gl->buff_curpos - nc + 1);
- gl->ntotal -= nc;
- };
-/*
- * Redraw the remaining characters following the cursor.
- */
- if(gl_output_string(gl, gl->line + gl->buff_curpos, '\0'))
- return 1;
-/*
- * Clear to the end of the terminal.
- */
- if(gl_output_control_sequence(gl, gl->nline, gl->clear_eod))
- return 1;
-/*
- * Place the cursor at the start of where the deletion was performed.
- */
- return gl_place_cursor(gl, gl->buff_curpos);
-}
-
-/*.......................................................................
- * This is an action function which deletes character(s) under the
- * cursor without moving the cursor.
- */
-static KT_KEY_FN(gl_forward_delete_char)
-{
-/*
- * Delete 'count' characters.
- */
- return gl_delete_chars(gl, count, gl->vi.command);
-}
-
-/*.......................................................................
- * This is an action function which deletes character(s) under the
- * cursor and moves the cursor back one character.
- */
-static KT_KEY_FN(gl_backward_delete_char)
-{
-/*
- * Restrict the deletion count to the number of characters that
- * precede the insertion point.
- */
- if(count > gl->buff_curpos - gl->insert_curpos)
- count = gl->buff_curpos - gl->insert_curpos;
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
- return gl_cursor_left(gl, count) ||
- gl_delete_chars(gl, count, gl->vi.command);
-}
-
-/*.......................................................................
- * Starting from the cursor position delete to the specified column.
- */
-static KT_KEY_FN(gl_delete_to_column)
-{
- if (--count >= gl->buff_curpos)
- return gl_forward_delete_char(gl, count - gl->buff_curpos);
- else
- return gl_backward_delete_char(gl, gl->buff_curpos - count);
-}
-
-/*.......................................................................
- * Starting from the cursor position delete characters to a matching
- * parenthesis.
- */
-static KT_KEY_FN(gl_delete_to_parenthesis)
-{
- int curpos = gl_index_of_matching_paren(gl);
- if(curpos >= 0) {
- gl_save_for_undo(gl);
- if(curpos >= gl->buff_curpos)
- return gl_forward_delete_char(gl, curpos - gl->buff_curpos + 1);
- else
- return gl_backward_delete_char(gl, ++gl->buff_curpos - curpos + 1);
- };
- return 0;
-}
-
-/*.......................................................................
- * This is an action function which deletes from the cursor to the end
- * of the word that the cursor is either in or precedes.
- */
-static KT_KEY_FN(gl_forward_delete_word)
-{
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * In emacs mode delete to the end of the word. In vi mode delete to the
- * start of the net word.
- */
- if(gl->editor == GL_EMACS_MODE) {
- return gl_delete_chars(gl,
- gl_nth_word_end_forward(gl,count) - gl->buff_curpos + 1, 1);
- } else {
- return gl_delete_chars(gl,
- gl_nth_word_start_forward(gl,count) - gl->buff_curpos,
- gl->vi.command);
- };
-}
-
-/*.......................................................................
- * This is an action function which deletes the word that precedes the
- * cursor.
- */
-static KT_KEY_FN(gl_backward_delete_word)
-{
-/*
- * Keep a record of the current cursor position.
- */
- int buff_curpos = gl->buff_curpos;
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Move back 'count' words.
- */
- if(gl_backward_word(gl, count))
- return 1;
-/*
- * Delete from the new cursor position to the original one.
- */
- return gl_delete_chars(gl, buff_curpos - gl->buff_curpos,
- gl->editor == GL_EMACS_MODE || gl->vi.command);
-}
-
-/*.......................................................................
- * Searching in a given direction, delete to the count'th
- * instance of a specified or queried character, in the input line.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * count int The number of times to search.
- * c char The character to be searched for, or '\0' if
- * the character should be read from the user.
- * forward int True if searching forward.
- * onto int True if the search should end on top of the
- * character, false if the search should stop
- * one character before the character in the
- * specified search direction.
- * change int If true, this function is being called upon
- * to do a vi change command, in which case the
- * user will be left in insert mode after the
- * deletion.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_delete_find(GetLine *gl, int count, char c, int forward,
- int onto, int change)
-{
-/*
- * Search for the character, and abort the deletion if not found.
- */
- int pos = gl_find_char(gl, count, forward, onto, c);
- if(pos < 0)
- return 0;
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Allow the cursor to be at the end of the line if this is a change
- * command.
- */
- if(change)
- gl->vi.command = 0;
-/*
- * Delete the appropriate span of characters.
- */
- if(forward) {
- if(gl_delete_chars(gl, pos - gl->buff_curpos + 1, 1))
- return 1;
- } else {
- int buff_curpos = gl->buff_curpos;
- if(gl_place_cursor(gl, pos) ||
- gl_delete_chars(gl, buff_curpos - gl->buff_curpos, 1))
- return 1;
- };
-/*
- * If this is a change operation, switch the insert mode.
- */
- if(change && gl_vi_insert(gl, 0))
- return 1;
- return 0;
-}
-
-/*.......................................................................
- * This is an action function which deletes forward from the cursor up to and
- * including a specified character.
- */
-static KT_KEY_FN(gl_forward_delete_find)
-{
- return gl_delete_find(gl, count, '\0', 1, 1, 0);
-}
-
-/*.......................................................................
- * This is an action function which deletes backward from the cursor back to
- * and including a specified character.
- */
-static KT_KEY_FN(gl_backward_delete_find)
-{
- return gl_delete_find(gl, count, '\0', 0, 1, 0);
-}
-
-/*.......................................................................
- * This is an action function which deletes forward from the cursor up to but
- * not including a specified character.
- */
-static KT_KEY_FN(gl_forward_delete_to)
-{
- return gl_delete_find(gl, count, '\0', 1, 0, 0);
-}
-
-/*.......................................................................
- * This is an action function which deletes backward from the cursor back to
- * but not including a specified character.
- */
-static KT_KEY_FN(gl_backward_delete_to)
-{
- return gl_delete_find(gl, count, '\0', 0, 0, 0);
-}
-
-/*.......................................................................
- * This is an action function which deletes to a character specified by a
- * previous search.
- */
-static KT_KEY_FN(gl_delete_refind)
-{
- return gl_delete_find(gl, count, gl->vi.find_char, gl->vi.find_forward,
- gl->vi.find_onto, 0);
-}
-
-/*.......................................................................
- * This is an action function which deletes to a character specified by a
- * previous search, but in the opposite direction.
- */
-static KT_KEY_FN(gl_delete_invert_refind)
-{
- return gl_delete_find(gl, count, gl->vi.find_char,
- !gl->vi.find_forward, gl->vi.find_onto, 0);
-}
-
-/*.......................................................................
- * This is an action function which converts the characters in the word
- * following the cursor to upper case.
- */
-static KT_KEY_FN(gl_upcase_word)
-{
-/*
- * Locate the count'th word ending after the cursor.
- */
- int last = gl_nth_word_end_forward(gl, count);
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Upcase characters from the current cursor position to 'last'.
- */
- while(gl->buff_curpos <= last) {
- char *cptr = gl->line + gl->buff_curpos++;
-/*
- * Convert the character to upper case?
- */
- if(islower((int)(unsigned char) *cptr))
- *cptr = toupper((int) *cptr);
-/*
- * Write the possibly modified character back. Note that for non-modified
- * characters we want to do this as well, so as to advance the cursor.
- */
- if(gl_output_char(gl, *cptr, cptr[1]))
- return 1;
- };
- return gl_place_cursor(gl, gl->buff_curpos); /* bounds check */
-}
-
-/*.......................................................................
- * This is an action function which converts the characters in the word
- * following the cursor to lower case.
- */
-static KT_KEY_FN(gl_downcase_word)
-{
-/*
- * Locate the count'th word ending after the cursor.
- */
- int last = gl_nth_word_end_forward(gl, count);
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Upcase characters from the current cursor position to 'last'.
- */
- while(gl->buff_curpos <= last) {
- char *cptr = gl->line + gl->buff_curpos++;
-/*
- * Convert the character to upper case?
- */
- if(isupper((int)(unsigned char) *cptr))
- *cptr = tolower((int) *cptr);
-/*
- * Write the possibly modified character back. Note that for non-modified
- * characters we want to do this as well, so as to advance the cursor.
- */
- if(gl_output_char(gl, *cptr, cptr[1]))
- return 1;
- };
- return gl_place_cursor(gl, gl->buff_curpos); /* bounds check */
-}
-
-/*.......................................................................
- * This is an action function which converts the first character of the
- * following word to upper case, in order to capitalize the word, and
- * leaves the cursor at the end of the word.
- */
-static KT_KEY_FN(gl_capitalize_word)
-{
- char *cptr; /* &gl->line[gl->buff_curpos] */
- int first; /* True for the first letter of the word */
- int i;
-/*
- * Keep a record of the current insert mode and the cursor position.
- */
- int insert = gl->insert;
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * We want to overwrite the modified word.
- */
- gl->insert = 0;
-/*
- * Capitalize 'count' words.
- */
- for(i=0; i<count && gl->buff_curpos < gl->ntotal; i++) {
- int pos = gl->buff_curpos;
-/*
- * If we are not already within a word, skip to the start of the word.
- */
- for(cptr = gl->line + pos ; pos<gl->ntotal && !gl_is_word_char((int) *cptr);
- pos++, cptr++)
- ;
-/*
- * Move the cursor to the new position.
- */
- if(gl_place_cursor(gl, pos))
- return 1;
-/*
- * While searching for the end of the word, change lower case letters
- * to upper case.
- */
- for(first=1; gl->buff_curpos<gl->ntotal && gl_is_word_char((int) *cptr);
- gl->buff_curpos++, cptr++) {
-/*
- * Convert the character to upper case?
- */
- if(first) {
- if(islower((int)(unsigned char) *cptr))
- *cptr = toupper((int) *cptr);
- } else {
- if(isupper((int)(unsigned char) *cptr))
- *cptr = tolower((int) *cptr);
- };
- first = 0;
-/*
- * Write the possibly modified character back. Note that for non-modified
- * characters we want to do this as well, so as to advance the cursor.
- */
- if(gl_output_char(gl, *cptr, cptr[1]))
- return 1;
- };
- };
-/*
- * Restore the insertion mode.
- */
- gl->insert = insert;
- return gl_place_cursor(gl, gl->buff_curpos); /* bounds check */
-}
-
-/*.......................................................................
- * This is an action function which redraws the current line.
- */
-static KT_KEY_FN(gl_redisplay)
-{
-/*
- * Keep a record of the current cursor position.
- */
- int buff_curpos = gl->buff_curpos;
-/*
- * Move the cursor to the start of the terminal line, and clear from there
- * to the end of the display.
- */
- if(gl_set_term_curpos(gl, 0) ||
- gl_output_control_sequence(gl, gl->nline, gl->clear_eod))
- return 1;
-/*
- * Display the current prompt.
- */
- if(gl_display_prompt(gl))
- return 1;
-/*
- * Render the part of the line that the user has typed in so far.
- */
- if(gl_output_string(gl, gl->line, '\0'))
- return 1;
-/*
- * Restore the cursor position.
- */
- if(gl_place_cursor(gl, buff_curpos))
- return 1;
-/*
- * Flush the redisplayed line to the terminal.
- */
- return gl_flush_output(gl);
-}
-
-/*.......................................................................
- * This is an action function which clears the display and redraws the
- * input line from the home position.
- */
-static KT_KEY_FN(gl_clear_screen)
-{
-/*
- * Record the current cursor position.
- */
- int buff_curpos = gl->buff_curpos;
-/*
- * Home the cursor and clear from there to the end of the display.
- */
- if(gl_output_control_sequence(gl, gl->nline, gl->home) ||
- gl_output_control_sequence(gl, gl->nline, gl->clear_eod))
- return 1;
-/*
- * Redisplay the line.
- */
- gl->term_curpos = 0;
- gl->buff_curpos = 0;
- if(gl_redisplay(gl,1))
- return 1;
-/*
- * Restore the cursor position.
- */
- return gl_place_cursor(gl, buff_curpos);
-}
-
-/*.......................................................................
- * This is an action function which swaps the character under the cursor
- * with the character to the left of the cursor.
- */
-static KT_KEY_FN(gl_transpose_chars)
-{
- char from[3]; /* The original string of 2 characters */
- char swap[3]; /* The swapped string of two characters */
-/*
- * If we are at the beginning or end of the line, there aren't two
- * characters to swap.
- */
- if(gl->buff_curpos < 1 || gl->buff_curpos >= gl->ntotal)
- return 0;
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Get the original and swapped strings of the two characters.
- */
- from[0] = gl->line[gl->buff_curpos - 1];
- from[1] = gl->line[gl->buff_curpos];
- from[2] = '\0';
- swap[0] = gl->line[gl->buff_curpos];
- swap[1] = gl->line[gl->buff_curpos - 1];
- swap[2] = '\0';
-/*
- * Move the cursor to the start of the two characters.
- */
- if(gl_place_cursor(gl, gl->buff_curpos-1))
- return 1;
-/*
- * Swap the two characters in the buffer.
- */
- gl->line[gl->buff_curpos] = swap[0];
- gl->line[gl->buff_curpos+1] = swap[1];
-/*
- * If the sum of the displayed width of the two characters
- * in their current and final positions is the same, swapping can
- * be done by just overwriting with the two swapped characters.
- */
- if(gl_displayed_string_width(gl, from, -1, gl->term_curpos) ==
- gl_displayed_string_width(gl, swap, -1, gl->term_curpos)) {
- int insert = gl->insert;
- gl->insert = 0;
- if(gl_output_char(gl, swap[0], swap[1]) ||
- gl_output_char(gl, swap[1], gl->line[gl->buff_curpos+2]))
- return 1;
- gl->insert = insert;
-/*
- * If the swapped substring has a different displayed size, we need to
- * redraw everything after the first of the characters.
- */
- } else {
- if(gl_output_string(gl, gl->line + gl->buff_curpos, '\0') ||
- gl_output_control_sequence(gl, gl->nline, gl->clear_eod))
- return 1;
- };
-/*
- * Advance the cursor to the character after the swapped pair.
- */
- return gl_place_cursor(gl, gl->buff_curpos + 2);
-}
-
-/*.......................................................................
- * This is an action function which sets a mark at the current cursor
- * location.
- */
-static KT_KEY_FN(gl_set_mark)
-{
- gl->buff_mark = gl->buff_curpos;
- return 0;
-}
-
-/*.......................................................................
- * This is an action function which swaps the mark location for the
- * cursor location.
- */
-static KT_KEY_FN(gl_exchange_point_and_mark)
-{
-/*
- * Get the old mark position, and limit to the extent of the input
- * line.
- */
- int old_mark = gl->buff_mark <= gl->ntotal ? gl->buff_mark : gl->ntotal;
-/*
- * Make the current cursor position the new mark.
- */
- gl->buff_mark = gl->buff_curpos;
-/*
- * Move the cursor to the old mark position.
- */
- return gl_place_cursor(gl, old_mark);
-}
-
-/*.......................................................................
- * This is an action function which deletes the characters between the
- * mark and the cursor, recording them in gl->cutbuf for later pasting.
- */
-static KT_KEY_FN(gl_kill_region)
-{
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Limit the mark to be within the line.
- */
- if(gl->buff_mark > gl->ntotal)
- gl->buff_mark = gl->ntotal;
-/*
- * If there are no characters between the cursor and the mark, simply clear
- * the cut buffer.
- */
- if(gl->buff_mark == gl->buff_curpos) {
- gl->cutbuf[0] = '\0';
- return 0;
- };
-/*
- * If the mark is before the cursor, swap the cursor and the mark.
- */
- if(gl->buff_mark < gl->buff_curpos && gl_exchange_point_and_mark(gl,1))
- return 1;
-/*
- * Delete the characters.
- */
- if(gl_delete_chars(gl, gl->buff_mark - gl->buff_curpos, 1))
- return 1;
-/*
- * Make the mark the same as the cursor position.
- */
- gl->buff_mark = gl->buff_curpos;
- return 0;
-}
-
-/*.......................................................................
- * This is an action function which records the characters between the
- * mark and the cursor, in gl->cutbuf for later pasting.
- */
-static KT_KEY_FN(gl_copy_region_as_kill)
-{
- int ca, cb; /* The indexes of the first and last characters in the region */
- int mark; /* The position of the mark */
-/*
- * Get the position of the mark, limiting it to lie within the line.
- */
- mark = gl->buff_mark > gl->ntotal ? gl->ntotal : gl->buff_mark;
-/*
- * If there are no characters between the cursor and the mark, clear
- * the cut buffer.
- */
- if(mark == gl->buff_curpos) {
- gl->cutbuf[0] = '\0';
- return 0;
- };
-/*
- * Get the line indexes of the first and last characters in the region.
- */
- if(mark < gl->buff_curpos) {
- ca = mark;
- cb = gl->buff_curpos - 1;
- } else {
- ca = gl->buff_curpos;
- cb = mark - 1;
- };
-/*
- * Copy the region to the cut buffer.
- */
- memcpy(gl->cutbuf, gl->line + ca, cb + 1 - ca);
- gl->cutbuf[cb + 1 - ca] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * This is an action function which inserts the contents of the cut
- * buffer at the current cursor location.
- */
-static KT_KEY_FN(gl_yank)
-{
- int i;
-/*
- * Set the mark at the current location.
- */
- gl->buff_mark = gl->buff_curpos;
-/*
- * Do nothing else if the cut buffer is empty.
- */
- if(gl->cutbuf[0] == '\0')
- return gl_ring_bell(gl, 1);
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Insert the string count times.
- */
- for(i=0; i<count; i++) {
- if(gl_add_string_to_line(gl, gl->cutbuf))
- return 1;
- };
-/*
- * gl_add_string_to_line() leaves the cursor after the last character that
- * was pasted, whereas vi leaves the cursor over the last character pasted.
- */
- if(gl->editor == GL_VI_MODE && gl_cursor_left(gl, 1))
- return 1;
- return 0;
-}
-
-/*.......................................................................
- * This is an action function which inserts the contents of the cut
- * buffer one character beyond the current cursor location.
- */
-static KT_KEY_FN(gl_append_yank)
-{
- int was_command = gl->vi.command;
- int i;
-/*
- * If the cut buffer is empty, ring the terminal bell.
- */
- if(gl->cutbuf[0] == '\0')
- return gl_ring_bell(gl, 1);
-/*
- * Set the mark at the current location + 1.
- */
- gl->buff_mark = gl->buff_curpos + 1;
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Arrange to paste the text in insert mode after the current character.
- */
- if(gl_vi_append(gl, 0))
- return 1;
-/*
- * Insert the string count times.
- */
- for(i=0; i<count; i++) {
- if(gl_add_string_to_line(gl, gl->cutbuf))
- return 1;
- };
-/*
- * Switch back to command mode if necessary.
- */
- if(was_command)
- gl_vi_command_mode(gl);
- return 0;
-}
-
-#ifdef USE_SIGWINCH
-/*.......................................................................
- * Respond to the receipt of a window change signal.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * redisplay int If true redisplay the current line after
- * getting the new window size.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_resize_terminal(GetLine *gl, int redisplay)
-{
- int lines_used; /* The number of lines currently in use */
- struct winsize size; /* The new size information */
- int i;
-/*
- * Record the fact that the sigwinch signal has been noted.
- */
- if(gl_pending_signal == SIGWINCH)
- gl_pending_signal = -1;
-/*
- * Query the new terminal window size. Ignore invalid responses.
- */
- if(ioctl(gl->output_fd, TIOCGWINSZ, &size) == 0 &&
- size.ws_row > 0 && size.ws_col > 0) {
-/*
- * Redisplay the input line?
- */
- if(redisplay) {
-/*
- * How many lines are currently displayed.
- */
- lines_used = (gl_displayed_string_width(gl,gl->line,-1,gl->prompt_len) +
- gl->prompt_len + gl->ncolumn - 1) / gl->ncolumn;
-/*
- * Move to the cursor to the start of the line.
- */
- for(i=1; i<lines_used; i++) {
- if(gl_output_control_sequence(gl, 1, gl->up))
- return 1;
- };
- if(gl_output_control_sequence(gl, 1, gl->bol))
- return 1;
-/*
- * Clear to the end of the terminal.
- */
- if(gl_output_control_sequence(gl, size.ws_row, gl->clear_eod))
- return 1;
-/*
- * Record the fact that the cursor is now at the beginning of the line.
- */
- gl->term_curpos = 0;
- };
-/*
- * Update the recorded window size.
- */
- gl->nline = size.ws_row;
- gl->ncolumn = size.ws_col;
- };
-/*
- * Redisplay the line?
- */
- return redisplay ? gl_redisplay(gl,1) : 0;
-}
-#endif
-
-/*.......................................................................
- * This is the action function that recalls the previous line in the
- * history buffer.
- */
-static KT_KEY_FN(gl_up_history)
-{
-/*
- * In vi mode, switch to command mode, since the user is very
- * likely to want to move around newly recalled lines.
- */
- gl_vi_command_mode(gl);
-/*
- * Forget any previous recall session.
- */
- gl->preload_id = 0;
-/*
- * We don't want a search prefix for this function.
- */
- if(_glh_search_prefix(gl->glh, gl->line, 0))
- return 1;
-/*
- * Recall the count'th next older line in the history list. If the first one
- * fails we can return since nothing has changed otherwise we must continue
- * and update the line state.
- */
- if(_glh_find_backwards(gl->glh, gl->line, gl->linelen) == NULL)
- return 0;
- while(--count && _glh_find_backwards(gl->glh, gl->line, gl->linelen))
- ;
-/*
- * Record the number of characters in the new string.
- */
- gl->ntotal = strlen(gl->line);
-/*
- * Arrange to have the cursor placed at the end of the new line.
- */
- gl->buff_curpos = strlen(gl->line);
-/*
- * Erase and display the new line.
- */
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * This is the action function that recalls the next line in the
- * history buffer.
- */
-static KT_KEY_FN(gl_down_history)
-{
-/*
- * In vi mode, switch to command mode, since the user is very
- * likely to want to move around newly recalled lines.
- */
- gl_vi_command_mode(gl);
-/*
- * If no search is currently in progress continue a previous recall
- * session from a previous entered line if possible.
- */
- if(_glh_line_id(gl->glh, 0) == 0 && gl->preload_id) {
- _glh_recall_line(gl->glh, gl->preload_id, gl->line, gl->linelen);
- gl->preload_id = 0;
- } else {
-/*
- * We don't want a search prefix for this function.
- */
- if(_glh_search_prefix(gl->glh, gl->line, 0))
- return 1;
-/*
- * Recall the count'th next newer line in the history list. If the first one
- * fails we can return since nothing has changed otherwise we must continue
- * and update the line state.
- */
- if(_glh_find_forwards(gl->glh, gl->line, gl->linelen) == NULL)
- return 0;
- while(--count && _glh_find_forwards(gl->glh, gl->line, gl->linelen))
- ;
- };
-/*
- * Record the number of characters in the new string.
- */
- gl->ntotal = strlen(gl->line);
-/*
- * Arrange to have the cursor placed at the end of the new line.
- */
- gl->buff_curpos = strlen(gl->line);
-/*
- * Erase and display the new line.
- */
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * This is the action function that recalls the previous line in the
- * history buffer whos prefix matches the characters that currently
- * precede the cursor. By setting count=-1, this can be used internally
- * to force searching for the prefix used in the last search.
- */
-static KT_KEY_FN(gl_history_search_backward)
-{
-/*
- * In vi mode, switch to command mode, since the user is very
- * likely to want to move around newly recalled lines.
- */
- gl_vi_command_mode(gl);
-/*
- * Forget any previous recall session.
- */
- gl->preload_id = 0;
-/*
- * If the previous thing that the user did wasn't to execute a history
- * search function, set the search prefix equal to the string that
- * precedes the cursor. In vi command mode include the character that
- * is under the cursor in the string. If count<0 force a repeat search
- * even if the last command wasn't a history command.
- */
- if(gl->last_search != gl->keyseq_count - 1 && count>=0 &&
- _glh_search_prefix(gl->glh, gl->line, gl->buff_curpos +
- (gl->editor==GL_VI_MODE && gl->ntotal>0)))
- return 1;
-/*
- * Record the key sequence number in which this search function is
- * being executed, so that the next call to this function or
- * gl_history_search_forward() knows if any other operations
- * were performed in between.
- */
- gl->last_search = gl->keyseq_count;
-/*
- * Search backwards for a match to the part of the line which precedes the
- * cursor.
- */
- if(_glh_find_backwards(gl->glh, gl->line, gl->linelen) == NULL)
- return 0;
-/*
- * Record the number of characters in the new string.
- */
- gl->ntotal = strlen(gl->line);
-/*
- * Arrange to have the cursor placed at the end of the new line.
- */
- gl->buff_curpos = strlen(gl->line);
-/*
- * Erase and display the new line.
- */
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * This is the action function that recalls the previous line in the
- * history buffer who's prefix matches that specified in an earlier call
- * to gl_history_search_backward() or gl_history_search_forward().
- */
-static KT_KEY_FN(gl_history_re_search_backward)
-{
- return gl_history_search_backward(gl, -1);
-}
-
-/*.......................................................................
- * This is the action function that recalls the next line in the
- * history buffer who's prefix matches that specified in the earlier call
- * to gl_history_search_backward) which started the history search.
- * By setting count=-1, this can be used internally to force searching
- * for the prefix used in the last search.
- */
-static KT_KEY_FN(gl_history_search_forward)
-{
-/*
- * In vi mode, switch to command mode, since the user is very
- * likely to want to move around newly recalled lines.
- */
- gl_vi_command_mode(gl);
-/*
- * If the previous thing that the user did wasn't to execute a history
- * search function, set the search prefix equal to the string that
- * precedes the cursor. In vi command mode include the character that
- * is under the cursor in the string. If count<0 force a repeat search
- * even if the last command wasn't a history command.
- */
- if(gl->last_search != gl->keyseq_count - 1 && count>=0 &&
- _glh_search_prefix(gl->glh, gl->line, gl->buff_curpos +
- (gl->editor==GL_VI_MODE && gl->ntotal>0)))
- return 1;
-/*
- * Record the key sequence number in which this search function is
- * being executed, so that the next call to this function or
- * gl_history_search_backward() knows if any other operations
- * were performed in between.
- */
- gl->last_search = gl->keyseq_count;
-/*
- * Search forwards for the next matching line.
- */
- if(_glh_find_forwards(gl->glh, gl->line, gl->linelen) == NULL)
- return 0;
-/*
- * Record the number of characters in the new string.
- */
- gl->ntotal = strlen(gl->line);
-/*
- * Arrange for the cursor to be placed at the end of the new line.
- */
- gl->buff_curpos = strlen(gl->line);
-/*
- * Erase and display the new line.
- */
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * This is the action function that recalls the next line in the
- * history buffer who's prefix matches that specified in an earlier call
- * to gl_history_search_backward() or gl_history_search_forward().
- */
-static KT_KEY_FN(gl_history_re_search_forward)
-{
- return gl_history_search_forward(gl, -1);
-}
-
-/*.......................................................................
- * This is the tab completion function that completes the filename that
- * precedes the cursor position.
- */
-static KT_KEY_FN(gl_complete_word)
-{
- CplMatches *matches; /* The possible completions */
- int redisplay=0; /* True if the whole line needs to be redrawn */
- int suffix_len; /* The length of the completion extension */
- int cont_len; /* The length of any continuation suffix */
- int nextra; /* The number of characters being added to the */
- /* total length of the line. */
- int buff_pos; /* The buffer index at which the completion is */
- /* to be inserted. */
-/*
- * In vi command mode, switch to append mode so that the character below
- * the character is included in the completion (otherwise people can't
- * complete at the end of the line).
- */
- if(gl->vi.command && gl_vi_append(gl, 0))
- return 1;
-/*
- * Get the cursor position at which the completion is to be inserted.
- */
- buff_pos = gl->buff_curpos;
-/*
- * Perform the completion.
- */
- matches = cpl_complete_word(gl->cpl, gl->line, gl->buff_curpos, gl->cpl_data,
- gl->cpl_fn);
- if(!matches) {
- if(gl->echo &&
- fprintf(gl->output_fp, "\r\n%s\n", cpl_last_error(gl->cpl)) < 0)
- return 1;
- gl->term_curpos = 0;
- redisplay = 1;
-/*
- * Are there any completions?
- */
- } else if(matches->nmatch >= 1) {
-/*
- * If there any ambiguous matches, report them, starting on a new line.
- */
- if(matches->nmatch > 1 && gl->echo) {
- if(fprintf(gl->output_fp, "\r\n") < 0)
- return 1;
- cpl_list_completions(matches, gl->output_fp, gl->ncolumn);
- redisplay = 1;
- };
-/*
- * If the callback called gl_change_prompt(), we will need to redisplay
- * the whole line.
- */
- if(gl->prompt_changed)
- redisplay = 1;
-/*
- * Get the length of the suffix and any continuation suffix to add to it.
- */
- suffix_len = strlen(matches->suffix);
- cont_len = strlen(matches->cont_suffix);
-/*
- * If there is an unambiguous match, and the continuation suffix ends in
- * a newline, strip that newline and arrange to have getline return
- * after this action function returns.
- */
- if(matches->nmatch==1 && cont_len > 0 &&
- matches->cont_suffix[cont_len - 1] == '\n') {
- cont_len--;
- if(gl_newline(gl, 1))
- return 1;
- };
-/*
- * Work out the number of characters that are to be added.
- */
- nextra = suffix_len + cont_len;
-/*
- * Is there anything to be added?
- */
- if(nextra) {
-/*
- * Will there be space for the expansion in the line buffer?
- */
- if(gl->ntotal + nextra < gl->linelen) {
-/*
- * Make room to insert the filename extension.
- */
- memmove(gl->line + gl->buff_curpos + nextra, gl->line + gl->buff_curpos,
- gl->ntotal - gl->buff_curpos);
-/*
- * Insert the filename extension.
- */
- memcpy(gl->line + gl->buff_curpos, matches->suffix, suffix_len);
-/*
- * Add the terminating characters.
- */
- memcpy(gl->line + gl->buff_curpos + suffix_len, matches->cont_suffix,
- cont_len);
-/*
- * Record the increased length of the line.
- */
- gl->ntotal += nextra;
-/*
- * Place the cursor position at the end of the completion.
- */
- gl->buff_curpos += nextra;
-/*
- * Terminate the extended line.
- */
- gl->line[gl->ntotal] = '\0';
-/*
- * If we don't have to redisplay the whole line, redisplay the part
- * of the line which follows the original cursor position, and place
- * the cursor at the end of the completion.
- */
- if(!redisplay) {
- if(gl_output_control_sequence(gl, gl->nline, gl->clear_eod) ||
- gl_output_string(gl, gl->line + buff_pos, '\0') ||
- gl_place_cursor(gl, gl->buff_curpos))
- return 1;
- };
- } else {
- fprintf(stderr,
- "\r\nInsufficient room in line for file completion.\r\n");
- redisplay = 1;
- };
- };
- };
-/*
- * Redisplay the whole line?
- */
- if(redisplay) {
- gl->term_curpos = 0;
- if(gl_redisplay(gl,1))
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * This is the function that expands the filename that precedes the
- * cursor position. It expands ~user/ expressions, $envvar expressions,
- * and wildcards.
- */
-static KT_KEY_FN(gl_expand_filename)
-{
- char *start_path; /* The pointer to the start of the pathname in */
- /* gl->line[]. */
- FileExpansion *result; /* The results of the filename expansion */
- int pathlen; /* The length of the pathname being expanded */
- int redisplay=0; /* True if the whole line needs to be redrawn */
- int length; /* The number of characters needed to display the */
- /* expanded files. */
- int nextra; /* The number of characters to be added */
- int i,j;
-/*
- * In vi command mode, switch to append mode so that the character below
- * the character is included in the completion (otherwise people can't
- * complete at the end of the line).
- */
- if(gl->vi.command && gl_vi_append(gl, 0))
- return 1;
-/*
- * Locate the start of the filename that precedes the cursor position.
- */
- start_path = _pu_start_of_path(gl->line,
- gl->buff_curpos > 0 ? gl->buff_curpos : 0);
- if(!start_path)
- return 1;
-/*
- * Get the length of the string that is to be expanded.
- */
- pathlen = gl->buff_curpos - (start_path - gl->line);
-/*
- * Attempt to expand it.
- */
- result = ef_expand_file(gl->ef, start_path, pathlen);
-/*
- * If there was an error, report the error on a new line, then redraw
- * the original line.
- */
- if(!result) {
- if(gl->echo &&
- fprintf(gl->output_fp, "\r\n%s\n", ef_last_error(gl->ef)) < 0)
- return 1;
- gl->term_curpos = 0;
- return gl_redisplay(gl,1);
- };
-/*
- * If no files matched, report this as well.
- */
- if(result->nfile == 0 || !result->exists) {
- if(gl->echo && fprintf(gl->output_fp, "\r\nNo files match.\n") < 0)
- return 1;
- gl->term_curpos = 0;
- return gl_redisplay(gl,1);
- };
-/*
- * If in vi command mode, preserve the current line for potential use by
- * vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Work out how much space we will need to display all of the matching
- * filenames, taking account of the space that we need to place between
- * them, and the number of additional '\' characters needed to escape
- * spaces, tabs and backslash characters in the individual filenames.
- */
- length = 0;
- for(i=0; i<result->nfile; i++) {
- char *file = result->files[i];
- while(*file) {
- int c = *file++;
- switch(c) {
- case ' ': case '\t': case '\\': case '*': case '?': case '[':
- length++; /* Count extra backslash characters */
- };
- length++; /* Count the character itself */
- };
- length++; /* Count the space that follows each filename */
- };
-/*
- * Work out the number of characters that are to be added.
- */
- nextra = length - pathlen;
-/*
- * Will there be space for the expansion in the line buffer?
- */
- if(gl->ntotal + nextra >= gl->linelen) {
- fprintf(stderr, "\r\nInsufficient room in line for file expansion.\r\n");
- redisplay = 1;
- } else {
-/*
- * Do we need to move the part of the line that followed the unexpanded
- * filename?
- */
- if(nextra != 0) {
- memmove(gl->line + gl->buff_curpos + nextra, gl->line + gl->buff_curpos,
- gl->ntotal - gl->buff_curpos);
- };
-/*
- * Insert the filenames, separated by spaces, and with internal spaces,
- * tabs and backslashes escaped with backslashes.
- */
- for(i=0,j=start_path - gl->line; i<result->nfile; i++) {
- char *file = result->files[i];
- while(*file) {
- int c = *file++;
- switch(c) {
- case ' ': case '\t': case '\\': case '*': case '?': case '[':
- gl->line[j++] = '\\';
- };
- gl->line[j++] = c;
- };
- gl->line[j++] = ' ';
- };
-/*
- * Record the increased length of the line.
- */
- gl->ntotal += nextra;
-/*
- * Place the cursor position at the end of the expansion.
- */
- gl->buff_curpos += nextra;
-/*
- * Terminate the extended line.
- */
- gl->line[gl->ntotal] = '\0';
- };
-/*
- * Display the whole line on a new line?
- */
- if(redisplay) {
- gl->term_curpos = 0;
- return gl_redisplay(gl,1);
- };
-/*
- * Otherwise redisplay the part of the line which follows the start of
- * the original filename.
- */
- if(gl_set_term_curpos(gl, gl_buff_curpos_to_term_curpos(gl, start_path - gl->line)) ||
- gl_output_control_sequence(gl, gl->nline, gl->clear_eod) ||
- gl_output_string(gl, start_path, gl->line[gl->buff_curpos]))
- return 1;
-/*
- * Restore the cursor position to the end of the expansion.
- */
- return gl_place_cursor(gl, gl->buff_curpos);
-}
-
-/*.......................................................................
- * This is the action function that lists glob expansions of the
- * filename that precedes the cursor position. It expands ~user/
- * expressions, $envvar expressions, and wildcards.
- */
-static KT_KEY_FN(gl_list_glob)
-{
- char *start_path; /* The pointer to the start of the pathname in */
- /* gl->line[]. */
- FileExpansion *result; /* The results of the filename expansion */
- int pathlen; /* The length of the pathname being expanded */
-/*
- * Locate the start of the filename that precedes the cursor position.
- */
- start_path = _pu_start_of_path(gl->line,
- gl->buff_curpos > 0 ? gl->buff_curpos : 0);
- if(!start_path)
- return 1;
-/*
- * Get the length of the string that is to be expanded.
- */
- pathlen = gl->buff_curpos - (start_path - gl->line);
-/*
- * Attempt to expand it.
- */
- result = ef_expand_file(gl->ef, start_path, pathlen);
-/*
- * If there was an error, report the error.
- */
- if(!result) {
- if(gl->echo &&
- fprintf(gl->output_fp, "\r\n%s\n", ef_last_error(gl->ef)) < 0)
- return 1;
-/*
- * If no files matched, report this as well.
- */
- } else if(result->nfile == 0 || !result->exists) {
- if(gl->echo && fprintf(gl->output_fp, "\r\nNo files match.\n") < 0)
- return 1;
-/*
- * List the matching expansions.
- */
- } else if(gl->echo) {
- if(fprintf(gl->output_fp, "\r\n") < 0)
- return 1;
- ef_list_expansions(result, gl->output_fp, gl->ncolumn);
- };
-/*
- * Redisplay the line being edited.
- */
- gl->term_curpos = 0;
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * Return non-zero if a character should be considered a part of a word.
- *
- * Input:
- * c int The character to be tested.
- * Output:
- * return int True if the character should be considered part of a word.
- */
-static int gl_is_word_char(int c)
-{
- return isalnum((int)(unsigned char)c) || strchr(GL_WORD_CHARS, c) != NULL;
-}
-
-/*.......................................................................
- * Override the builtin file-completion callback that is bound to the
- * "complete_word" action function.
- *
- * Input:
- * gl GetLine * The resource object of the command-line input
- * module.
- * data void * This is passed to match_fn() whenever it is
- * called. It could, for example, point to a
- * symbol table where match_fn() could look
- * for possible completions.
- * match_fn CplMatchFn * The function that will identify the prefix
- * to be completed from the input line, and
- * report matching symbols.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_customize_completion(GetLine *gl, void *data, CplMatchFn *match_fn)
-{
-/*
- * Check the arguments.
- */
- if(!gl || !match_fn) {
- fprintf(stderr, "gl_customize_completion: NULL argument(s).\n");
- return 1;
- };
-/*
- * Record the new completion function and its callback data.
- */
- gl->cpl_fn = match_fn;
- gl->cpl_data = data;
- return 0;
-}
-
-/*.......................................................................
- * Change the terminal (or stream) that getline interacts with.
- *
- * Input:
- * gl GetLine * The resource object of the command-line input
- * module.
- * input_fp FILE * The stdio stream to read from.
- * output_fp FILE * The stdio stream to write to.
- * term char * The terminal type. This can be NULL if
- * either or both of input_fp and output_fp don't
- * refer to a terminal. Otherwise it should refer
- * to an entry in the terminal information database.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_change_terminal(GetLine *gl, FILE *input_fp, FILE *output_fp,
- const char *term)
-{
- int is_term = 0; /* True if both input_fd and output_fd are associated */
- /* with a terminal. */
-/*
- * Require that input_fp and output_fp both be valid.
- */
- if(!input_fp || !output_fp) {
- fprintf(stderr, "\r\ngl_change_terminal: Bad input/output stream(s).\n");
- return 1;
- };
-/*
- * If we are displacing a previous terminal, remove it from the list
- * of fds being watched.
- */
-#ifdef HAVE_SELECT
- if(gl->input_fd >= 0)
- FD_CLR(gl->input_fd, &gl->rfds);
-#endif
-/*
- * Record the file descriptors and streams.
- */
- gl->input_fp = input_fp;
- gl->input_fd = fileno(input_fp);
- gl->output_fp = output_fp;
- gl->output_fd = fileno(output_fp);
-/*
- * Make sure that the file descriptor will be visible in the set to
- * be watched.
- */
-#ifdef HAVE_SELECT
- FD_SET(gl->input_fd, &gl->rfds);
- if(gl->input_fd > gl->max_fd)
- gl->max_fd = gl->input_fd;
-#endif
-/*
- * Disable terminal interaction until we have enough info to interact
- * with the terminal.
- */
- gl->is_term = 0;
-/*
- * For terminal editing, we need both output_fd and input_fd to refer to
- * a terminal. While we can't verify that they both point to the same
- * terminal, we can verify that they point to terminals.
- */
- is_term = isatty(gl->input_fd) && isatty(gl->output_fd);
-/*
- * If we are interacting with a terminal and no terminal type has been
- * specified, treat it as a generic ANSI terminal.
- */
- if(is_term && !term)
- term = "ansi";
-/*
- * Make a copy of the terminal type string.
- */
- if(term != gl->term) {
-/*
- * Delete any old terminal type string.
- */
- if(gl->term) {
- free(gl->term);
- gl->term = NULL;
- };
-/*
- * Make a copy of the new terminal-type string, if any.
- */
- if(term) {
- gl->term = (char *) malloc(strlen(term)+1);
- if(gl->term)
- strcpy(gl->term, term);
- };
- };
-/*
- * Clear any terminal-specific key bindings that were taken from the
- * settings of the last terminal.
- */
- _kt_clear_bindings(gl->bindings, KTB_TERM);
-/*
- * If we have a terminal install new bindings for it.
- */
- if(is_term) {
-/*
- * Get the current settings of the terminal.
- */
- if(tcgetattr(gl->input_fd, &gl->oldattr)) {
- fprintf(stderr, "\r\ngl_change_terminal: tcgetattr error: %s\n",
- strerror(errno));
- return 1;
- };
-/*
- * Lookup the terminal control string and size information.
- */
- if(gl_control_strings(gl, term))
- return 1;
-/*
- * We now have enough info to interact with the terminal.
- */
- gl->is_term = 1;
-/*
- * Bind terminal-specific keys.
- */
- if(gl_bind_terminal_keys(gl))
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Set up terminal-specific key bindings.
- *
- * Input:
- * gl GetLine * The resource object of the command-line input
- * module.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_bind_terminal_keys(GetLine *gl)
-{
-/*
- * Install key-bindings for the special terminal characters.
- */
- if(gl_bind_control_char(gl, KTB_TERM, gl->oldattr.c_cc[VINTR],
- "user-interrupt") ||
- gl_bind_control_char(gl, KTB_TERM, gl->oldattr.c_cc[VQUIT], "abort") ||
- gl_bind_control_char(gl, KTB_TERM, gl->oldattr.c_cc[VSUSP], "suspend"))
- return 1;
-/*
- * In vi-mode, arrange for the above characters to be seen in command
- * mode.
- */
- if(gl->editor == GL_VI_MODE) {
- if(gl_bind_control_char(gl, KTB_TERM, MAKE_META(gl->oldattr.c_cc[VINTR]),
- "user-interrupt") ||
- gl_bind_control_char(gl, KTB_TERM, MAKE_META(gl->oldattr.c_cc[VQUIT]),
- "abort") ||
- gl_bind_control_char(gl, KTB_TERM, MAKE_META(gl->oldattr.c_cc[VSUSP]),
- "suspend"))
- return 1;
- };
-/*
- * Non-universal special keys.
- */
-#ifdef VLNEXT
- if(gl_bind_control_char(gl, KTB_TERM, gl->oldattr.c_cc[VLNEXT],
- "literal-next"))
- return 1;
-#else
- if(_kt_set_keybinding(gl->bindings, KTB_TERM, "^V", "literal-next"))
- return 1;
-#endif
-/*
- * Bind action functions to the terminal-specific arrow keys
- * looked up by gl_control_strings().
- */
- if(_gl_bind_arrow_keys(gl))
- return 1;
- return 0;
-}
-
-/*.......................................................................
- * This function is normally bound to control-D. When it is invoked within
- * a line it deletes the character which follows the cursor. When invoked
- * at the end of the line it lists possible file completions, and when
- * invoked on an empty line it causes gl_get_line() to return EOF. This
- * function emulates the one that is normally bound to control-D by tcsh.
- */
-static KT_KEY_FN(gl_del_char_or_list_or_eof)
-{
-/*
- * If we have an empty line arrange to return EOF.
- */
- if(gl->ntotal < 1) {
- return 1;
-/*
- * If we are at the end of the line list possible completions.
- */
- } else if(gl->buff_curpos >= gl->ntotal) {
-/*
- * Get the list of possible completions.
- */
- CplMatches *matches = cpl_complete_word(gl->cpl, gl->line, gl->buff_curpos,
- gl->cpl_data, gl->cpl_fn);
- if(!matches) {
- if(gl->echo &&
- fprintf(gl->output_fp, "\r\n%s\n", cpl_last_error(gl->cpl)) < 0)
- return 1;
- gl->term_curpos = 0;
-/*
- * List the matches.
- */
- } else if(matches->nmatch > 0 && gl->echo) {
- if(fprintf(gl->output_fp, "\r\n") < 0)
- return 1;
- cpl_list_completions(matches, gl->output_fp, gl->ncolumn);
- };
-/*
- * Redisplay the line unchanged.
- */
- return gl_redisplay(gl,1);
-/*
- * Within the line delete the character that follows the cursor.
- */
- } else {
-/*
- * If in vi command mode, first preserve the current line for potential use
- * by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Delete 'count' characters.
- */
- return gl_forward_delete_char(gl, count);
- };
-}
-
-/*.......................................................................
- * This function is normally bound to control-D in vi mode. When it is
- * invoked within a line it lists possible file completions, and when
- * invoked on an empty line it causes gl_get_line() to return EOF. This
- * function emulates the one that is normally bound to control-D by tcsh.
- */
-static KT_KEY_FN(gl_list_or_eof)
-{
-/*
- * If we have an empty line arrange to return EOF.
- */
- if(gl->ntotal < 1) {
- return 1;
-/*
- * Otherwise list possible completions.
- */
- } else {
-/*
- * Get the list of possible completions.
- */
- CplMatches *matches = cpl_complete_word(gl->cpl, gl->line, gl->buff_curpos,
- gl->cpl_data, gl->cpl_fn);
- if(!matches) {
- if(gl->echo &&
- fprintf(gl->output_fp, "\r\n%s\n", cpl_last_error(gl->cpl)) < 0)
- return 1;
- gl->term_curpos = 0;
-/*
- * List the matches.
- */
- } else if(matches->nmatch > 0 && gl->echo) {
- if(fprintf(gl->output_fp, "\r\n") < 0)
- return 1;
- cpl_list_completions(matches, gl->output_fp, gl->ncolumn);
- };
-/*
- * Redisplay the line unchanged.
- */
- return gl_redisplay(gl,1);
- };
-}
-
-/*.......................................................................
- * Where the user has used the symbolic arrow-key names to specify
- * arrow key bindings, bind the specified action functions to the default
- * and terminal specific arrow key sequences.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int _gl_bind_arrow_keys(GetLine *gl)
-{
-/*
- * Process each of the arrow keys.
- */
- if(_gl_rebind_arrow_key(gl->bindings, "up", gl->u_arrow, "^[[A", "^[OA") ||
- _gl_rebind_arrow_key(gl->bindings, "down", gl->d_arrow, "^[[B", "^[OB") ||
- _gl_rebind_arrow_key(gl->bindings, "left", gl->l_arrow, "^[[D", "^[OD") ||
- _gl_rebind_arrow_key(gl->bindings, "right", gl->r_arrow, "^[[C", "^[OC"))
- return 1;
- return 0;
-}
-
-/*.......................................................................
- * Lookup the action function of a symbolic arrow-key binding, and bind
- * it to the terminal-specific and default arrow-key sequences. Note that
- * we don't trust the terminal-specified key sequences to be correct.
- * The main reason for this is that on some machines the xterm terminfo
- * entry is for hardware X-terminals, rather than xterm terminal emulators
- * and the two terminal types emit different character sequences when the
- * their cursor keys are pressed. As a result we also supply a couple
- * of default key sequences.
- *
- * Input:
- * bindings KeyTab * The table of key bindings.
- * name char * The symbolic name of the arrow key.
- * term_seq char * The terminal-specific arrow-key sequence.
- * def_seq1 char * The first default arrow-key sequence.
- * def_seq2 char * The second arrow-key sequence.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int _gl_rebind_arrow_key(KeyTab *bindings, const char *name,
- const char *term_seq, const char *def_seq1,
- const char *def_seq2)
-{
- int first,last; /* The indexes of the first and last matching entries */
-/*
- * Lookup the key binding for the symbolic name of the arrow key. This
- * will either be the default action, or a user provided one.
- */
- if(_kt_lookup_keybinding(bindings, name, strlen(name), &first, &last)
- == KT_EXACT_MATCH) {
-/*
- * Get the action function.
- */
- KtKeyFn *key_fn = bindings->table[first].keyfn;
-/*
- * Bind this to each of the specified key sequences.
- */
- if((term_seq && _kt_set_keyfn(bindings, KTB_TERM, term_seq, key_fn)) ||
- (def_seq1 && _kt_set_keyfn(bindings, KTB_NORM, def_seq1, key_fn)) ||
- (def_seq2 && _kt_set_keyfn(bindings, KTB_NORM, def_seq2, key_fn)))
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Read getline configuration information from a given file.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * filename const char * The name of the file to read configuration
- * information from. The contents of this file
- * are as described in the gl_get_line(3) man
- * page for the default ~/.teclarc configuration
- * file.
- * who KtBinder Who bindings are to be installed for.
- * Output:
- * return int 0 - OK.
- * 1 - Irrecoverable error.
- */
-static int _gl_read_config_file(GetLine *gl, const char *filename, KtBinder who)
-{
- FileExpansion *expansion; /* The expansion of the filename */
- FILE *fp; /* The opened file */
- int waserr = 0; /* True if an error occurred while reading */
- int lineno = 1; /* The line number being processed */
-/*
- * Check the arguments.
- */
- if(!gl || !filename) {
- fprintf(stderr, "_gl_read_config_file: Invalid arguments.\n");
- return 1;
- };
-/*
- * Expand the filename.
- */
- expansion = ef_expand_file(gl->ef, filename, -1);
- if(!expansion) {
- fprintf(stderr, "Unable to expand %s (%s).\n", filename,
- ef_last_error(gl->ef));
- return 1;
- };
-/*
- * Attempt to open the file.
- */
- fp = fopen(expansion->files[0], "r");
-/*
- * It isn't an error for there to be no configuration file.
- */
- if(!fp)
- return 0;
-/*
- * Parse the contents of the file.
- */
- while(!waserr && !feof(fp))
- waserr = _gl_parse_config_line(gl, fp, glc_file_getc, filename, who,
- &lineno);
-/*
- * Bind action functions to the terminal-specific arrow keys.
- */
- if(_gl_bind_arrow_keys(gl))
- return 1;
-/*
- * Clean up.
- */
- (void) fclose(fp);
- return waserr;
-}
-
-/*.......................................................................
- * Read GetLine configuration information from a string. The contents of
- * the string are the same as those described in the gl_get_line(3)
- * man page for the contents of the ~/.teclarc configuration file.
- */
-static int _gl_read_config_string(GetLine *gl, const char *buffer, KtBinder who)
-{
- const char *bptr; /* A pointer into buffer[] */
- int waserr = 0; /* True if an error occurred while reading */
- int lineno = 1; /* The line number being processed */
-/*
- * Check the arguments.
- */
- if(!gl || !buffer) {
- fprintf(stderr, "_gl_read_config_string: Invalid arguments.\n");
- return 1;
- };
-/*
- * Get a pointer to the start of the buffer.
- */
- bptr = buffer;
-/*
- * Parse the contents of the buffer.
- */
- while(!waserr && *bptr)
- waserr = _gl_parse_config_line(gl, &bptr, glc_buff_getc, "", who, &lineno);
-/*
- * Bind action functions to the terminal-specific arrow keys.
- */
- if(_gl_bind_arrow_keys(gl))
- return 1;
- return waserr;
-}
-
-/*.......................................................................
- * Parse the next line of a getline configuration file.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * stream void * The pointer representing the stream to be read
- * by getc_fn().
- * getc_fn GlcGetcFn * A callback function which when called with
- * 'stream' as its argument, returns the next
- * unread character from the stream.
- * origin const char * The name of the entity being read (eg. a
- * file name).
- * who KtBinder Who bindings are to be installed for.
- * Input/Output:
- * lineno int * The line number being processed is to be
- * maintained in *lineno.
- * Output:
- * return int 0 - OK.
- * 1 - Irrecoverable error.
- */
-static int _gl_parse_config_line(GetLine *gl, void *stream, GlcGetcFn *getc_fn,
- const char *origin, KtBinder who, int *lineno)
-{
- char buffer[GL_CONF_BUFLEN+1]; /* The input line buffer */
- char *argv[GL_CONF_MAXARG]; /* The argument list */
- int argc = 0; /* The number of arguments in argv[] */
- int c; /* A character from the file */
- int escaped = 0; /* True if the next character is escaped */
- int i;
-/*
- * Skip spaces and tabs.
- */
- do c = getc_fn(stream); while(c==' ' || c=='\t');
-/*
- * Comments extend to the end of the line.
- */
- if(c=='#')
- do c = getc_fn(stream); while(c != '\n' && c != EOF);
-/*
- * Ignore empty lines.
- */
- if(c=='\n' || c==EOF) {
- (*lineno)++;
- return 0;
- };
-/*
- * Record the buffer location of the start of the first argument.
- */
- argv[argc] = buffer;
-/*
- * Read the rest of the line, stopping early if a comment is seen, or
- * the buffer overflows, and replacing sequences of spaces with a
- * '\0', and recording the thus terminated string as an argument.
- */
- i = 0;
- while(i<GL_CONF_BUFLEN) {
-/*
- * Did we hit the end of the latest argument?
- */
- if(c==EOF || (!escaped && (c==' ' || c=='\n' || c=='\t' || c=='#'))) {
-/*
- * Terminate the argument.
- */
- buffer[i++] = '\0';
- argc++;
-/*
- * Skip spaces and tabs.
- */
- while(c==' ' || c=='\t')
- c = getc_fn(stream);
-/*
- * If we hit the end of the line, or the start of a comment, exit the loop.
- */
- if(c==EOF || c=='\n' || c=='#')
- break;
-/*
- * Start recording the next argument.
- */
- if(argc >= GL_CONF_MAXARG) {
- fprintf(stderr, "%s:%d: Too many arguments.\n", origin, *lineno);
- do c = getc_fn(stream); while(c != '\n' && c != EOF); /* Skip past eol */
- return 0;
- };
- argv[argc] = buffer + i;
-/*
- * The next character was preceded by spaces, so it isn't escaped.
- */
- escaped = 0;
- } else {
-/*
- * If we hit an unescaped backslash, this means that we should arrange
- * to treat the next character like a simple alphabetical character.
- */
- if(c=='\\' && !escaped) {
- escaped = 1;
-/*
- * Splice lines where the newline is escaped.
- */
- } else if(c=='\n' && escaped) {
- (*lineno)++;
-/*
- * Record a normal character, preserving any preceding backslash.
- */
- } else {
- if(escaped)
- buffer[i++] = '\\';
- if(i>=GL_CONF_BUFLEN)
- break;
- escaped = 0;
- buffer[i++] = c;
- };
-/*
- * Get the next character.
- */
- c = getc_fn(stream);
- };
- };
-/*
- * Did the buffer overflow?
- */
- if(i>=GL_CONF_BUFLEN) {
- fprintf(stderr, "%s:%d: Line too long.\n", origin, *lineno);
- return 0;
- };
-/*
- * The first argument should be a command name.
- */
- if(strcmp(argv[0], "bind") == 0) {
- const char *action = NULL; /* A NULL action removes a keybinding */
- const char *keyseq = NULL;
- switch(argc) {
- case 3:
- action = argv[2];
- case 2: /* Note the intentional fallthrough */
- keyseq = argv[1];
-/*
- * Attempt to record the new keybinding.
- */
- if(_kt_set_keybinding(gl->bindings, who, keyseq, action)) {
- fprintf(stderr, "The error occurred at line %d of %s.\n", *lineno,
- origin);
- };
- break;
- default:
- fprintf(stderr, "%s:%d: Wrong number of arguments.\n", origin, *lineno);
- };
- } else if(strcmp(argv[0], "edit-mode") == 0) {
- if(argc == 2 && strcmp(argv[1], "emacs") == 0) {
- gl_change_editor(gl, GL_EMACS_MODE);
- } else if(argc == 2 && strcmp(argv[1], "vi") == 0) {
- gl_change_editor(gl, GL_VI_MODE);
- } else if(argc == 2 && strcmp(argv[1], "none") == 0) {
- gl_change_editor(gl, GL_NO_EDITOR);
- } else {
- fprintf(stderr, "%s:%d: The argument of editor should be vi or emacs.\n",
- origin, *lineno);
- };
- } else if(strcmp(argv[0], "nobeep") == 0) {
- gl->silence_bell = 1;
- } else {
- fprintf(stderr, "%s:%d: Unknown command name '%s'.\n", origin, *lineno,
- argv[0]);
- };
-/*
- * Skip any trailing comment.
- */
- while(c != '\n' && c != EOF)
- c = getc_fn(stream);
- (*lineno)++;
- return 0;
-}
-
-/*.......................................................................
- * This is the _gl_parse_config_line() callback function which reads the
- * next character from a configuration file.
- */
-static GLC_GETC_FN(glc_file_getc)
-{
- return fgetc((FILE *) stream);
-}
-
-/*.......................................................................
- * This is the _gl_parse_config_line() callback function which reads the
- * next character from a buffer. Its stream argument is a pointer to a
- * variable which is, in turn, a pointer into the buffer being read from.
- */
-static GLC_GETC_FN(glc_buff_getc)
-{
- const char **lptr = (char const **) stream;
- return **lptr ? *(*lptr)++ : EOF;
-}
-
-/*.......................................................................
- * When this action is triggered, it arranges to temporarily read command
- * lines from the regular file whos name precedes the cursor.
- * The current line is first discarded.
- */
-static KT_KEY_FN(gl_read_from_file)
-{
- char *start_path; /* The pointer to the start of the pathname in */
- /* gl->line[]. */
- FileExpansion *result; /* The results of the filename expansion */
- int pathlen; /* The length of the pathname being expanded */
- int error_reported = 0; /* True after an error has been reported */
-/*
- * Locate the start of the filename that precedes the cursor position.
- */
- start_path = _pu_start_of_path(gl->line,
- gl->buff_curpos > 0 ? gl->buff_curpos : 0);
- if(!start_path)
- return 1;
-/*
- * Get the length of the pathname string.
- */
- pathlen = gl->buff_curpos - (start_path - gl->line);
-/*
- * Attempt to expand the pathname.
- */
- result = ef_expand_file(gl->ef, start_path, pathlen);
-/*
- * If there was an error, report the error on a new line, then redraw
- * the original line.
- */
- if(!result) {
- if(gl->echo &&
- fprintf(gl->output_fp, "\r\n%s\n", ef_last_error(gl->ef)) < 0)
- return 1;
- error_reported = 1;
-/*
- * If no files matched, report this as well.
- */
- } else if(result->nfile == 0 || !result->exists) {
- if(gl->echo && fprintf(gl->output_fp, "\r\nNo files match.\n") < 0)
- return 1;
- error_reported = 1;
-/*
- * Complain if more than one file matches.
- */
- } else if(result->nfile > 1) {
- if(gl->echo &&
- fprintf(gl->output_fp, "\r\nMore than one file matches.\n") < 0)
- return 1;
- error_reported = 1;
-/*
- * Disallow input from anything but normal files. In principle we could
- * also support input from named pipes. Terminal files would be a problem
- * since we wouldn't know the terminal type, and other types of files
- * might cause the library to lock up.
- */
- } else if(!_pu_path_is_file(result->files[0])) {
- if(gl->echo && fprintf(gl->output_fp, "\r\nNot a normal file.\n") < 0)
- return 1;
- error_reported = 1;
- } else {
-/*
- * Attempt to open and install the specified file for reading.
- */
- gl->file_fp = fopen(result->files[0], "r");
- if(!gl->file_fp) {
- if(gl->echo && fprintf(gl->output_fp, "\r\nUnable to open: %s\n",
- result->files[0]) < 0)
- return 1;
- error_reported = 1;
- };
-/*
- * Inform the user what is happening.
- */
- if(gl->echo && fprintf(gl->output_fp, "\r\n<Taking input from %s>\n",
- result->files[0]) < 0)
- return 1;
- };
-/*
- * If an error was reported, redisplay the current line.
- */
- if(error_reported) {
- gl->term_curpos = 0;
- return gl_redisplay(gl,1);
- };
- return 0;
-}
-
-/*.......................................................................
- * Close any temporary file that is being used for input.
- *
- * Input:
- * gl GetLine * The getline resource object.
- */
-static void gl_revert_input(GetLine *gl)
-{
- if(gl->file_fp)
- fclose(gl->file_fp);
- gl->file_fp = NULL;
-}
-
-/*.......................................................................
- * This is the action function that recalls the oldest line in the
- * history buffer.
- */
-static KT_KEY_FN(gl_beginning_of_history)
-{
-/*
- * In vi mode, switch to command mode, since the user is very
- * likely to want to move around newly recalled lines.
- */
- gl_vi_command_mode(gl);
-/*
- * Forget any previous recall session.
- */
- gl->preload_id = 0;
-/*
- * Recall the next oldest line in the history list.
- */
- if(_glh_oldest_line(gl->glh, gl->line, gl->linelen) == NULL)
- return 0;
-/*
- * Record the number of characters in the new string.
- */
- gl->ntotal = strlen(gl->line);
-/*
- * Arrange to have the cursor placed at the end of the new line.
- */
- gl->buff_curpos = strlen(gl->line);
-/*
- * Erase and display the new line.
- */
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * If a history session is currently in progress, this action function
- * recalls the line that was being edited when the session started. If
- * no history session is in progress, it does nothing.
- */
-static KT_KEY_FN(gl_end_of_history)
-{
-/*
- * In vi mode, switch to command mode, since the user is very
- * likely to want to move around newly recalled lines.
- */
- gl_vi_command_mode(gl);
-/*
- * Forget any previous recall session.
- */
- gl->preload_id = 0;
-/*
- * Recall the next oldest line in the history list.
- */
- if(_glh_current_line(gl->glh, gl->line, gl->linelen) == NULL)
- return 0;
-/*
- * Record the number of characters in the new string.
- */
- gl->ntotal = strlen(gl->line);
-/*
- * Arrange to have the cursor placed at the end of the new line.
- */
- gl->buff_curpos = strlen(gl->line);
-/*
- * Erase and display the new line.
- */
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * This action function is treated specially, in that its count argument
- * is set to the end keystroke of the keysequence that activated it.
- * It accumulates a numeric argument, adding one digit on each call in
- * which the last keystroke was a numeric digit.
- */
-static KT_KEY_FN(gl_digit_argument)
-{
-/*
- * Was the last keystroke a digit?
- */
- int is_digit = isdigit((int)(unsigned char) count);
-/*
- * In vi command mode, a lone '0' means goto-start-of-line.
- */
- if(gl->vi.command && gl->number < 0 && count == '0')
- return gl_beginning_of_line(gl, count);
-/*
- * Are we starting to accumulate a new number?
- */
- if(gl->number < 0 || !is_digit)
- gl->number = 0;
-/*
- * Was the last keystroke a digit?
- */
- if(is_digit) {
-/*
- * Read the numeric value of the digit, without assuming ASCII.
- */
- int n;
- char s[2]; s[0] = count; s[1] = '\0';
- n = atoi(s);
-/*
- * Append the new digit.
- */
- gl->number = gl->number * 10 + n;
- };
- return 0;
-}
-
-/*.......................................................................
- * The newline action function sets gl->endline to tell
- * gl_get_input_line() that the line is now complete.
- */
-static KT_KEY_FN(gl_newline)
-{
- GlhLineID id; /* The last history line recalled while entering this line */
-/*
- * Flag the line as ended.
- */
- gl->endline = 1;
-/*
- * Record the next position in the history buffer, for potential
- * recall by an action function on the next call to gl_get_line().
- */
- id = _glh_line_id(gl->glh, 1);
- if(id)
- gl->preload_id = id;
- return 0;
-}
-
-/*.......................................................................
- * The 'repeat' action function sets gl->endline to tell
- * gl_get_input_line() that the line is now complete, and records the
- * ID of the next history line in gl->preload_id so that the next call
- * to gl_get_input_line() will preload the line with that history line.
- */
-static KT_KEY_FN(gl_repeat_history)
-{
- gl->endline = 1;
- gl->preload_id = _glh_line_id(gl->glh, 1);
- gl->preload_history = 1;
- return 0;
-}
-
-/*.......................................................................
- * Flush unwritten characters to the terminal.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_flush_output(GetLine *gl)
-{
-/*
- * Attempt to flush output to the terminal, restarting the output
- * if a signal is caught.
- */
- while(fflush(gl->output_fp) != 0) {
- if(errno!=EINTR)
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Change the style of editing to emulate a given editor.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * editor GlEditor The type of editor to emulate.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_change_editor(GetLine *gl, GlEditor editor)
-{
-/*
- * Install the default key-bindings of the requested editor.
- */
- switch(editor) {
- case GL_EMACS_MODE:
- _kt_clear_bindings(gl->bindings, KTB_NORM);
- _kt_clear_bindings(gl->bindings, KTB_TERM);
- (void) _kt_add_bindings(gl->bindings, KTB_NORM, gl_emacs_bindings,
- sizeof(gl_emacs_bindings)/sizeof(gl_emacs_bindings[0]));
- break;
- case GL_VI_MODE:
- _kt_clear_bindings(gl->bindings, KTB_NORM);
- _kt_clear_bindings(gl->bindings, KTB_TERM);
- (void) _kt_add_bindings(gl->bindings, KTB_NORM, gl_vi_bindings,
- sizeof(gl_vi_bindings)/sizeof(gl_vi_bindings[0]));
- break;
- case GL_NO_EDITOR:
- break;
- default:
- fprintf(stderr, "gl_change_editor: Unknown editor.\n");
- return 1;
- };
-/*
- * Record the new editing mode.
- */
- gl->editor = editor;
- gl->vi.command = 0; /* Start in input mode */
- gl->insert_curpos = 0;
-/*
- * Reinstate terminal-specific bindings.
- */
- if(gl->editor != GL_NO_EDITOR && gl->input_fp)
- (void) gl_bind_terminal_keys(gl);
- return 0;
-}
-
-/*.......................................................................
- * This is an action function that switches to editing using emacs bindings
- */
-static KT_KEY_FN(gl_emacs_editing_mode)
-{
- return gl_change_editor(gl, GL_EMACS_MODE);
-}
-
-/*.......................................................................
- * This is an action function that switches to editing using vi bindings
- */
-static KT_KEY_FN(gl_vi_editing_mode)
-{
- return gl_change_editor(gl, GL_VI_MODE);
-}
-
-/*.......................................................................
- * This is the action function that switches to insert mode.
- */
-static KT_KEY_FN(gl_vi_insert)
-{
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Switch to vi insert mode.
- */
- gl->insert = 1;
- gl->vi.command = 0;
- gl->insert_curpos = gl->buff_curpos;
- return 0;
-}
-
-/*.......................................................................
- * This is an action function that switches to overwrite mode.
- */
-static KT_KEY_FN(gl_vi_overwrite)
-{
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Switch to vi overwrite mode.
- */
- gl->insert = 0;
- gl->vi.command = 0;
- gl->insert_curpos = gl->buff_curpos;
- return 0;
-}
-
-/*.......................................................................
- * This action function toggles the case of the character under the
- * cursor.
- */
-static KT_KEY_FN(gl_change_case)
-{
- int i;
-/*
- * Keep a record of the current insert mode and the cursor position.
- */
- int insert = gl->insert;
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * We want to overwrite the modified word.
- */
- gl->insert = 0;
-/*
- * Toggle the case of 'count' characters.
- */
- for(i=0; i<count && gl->buff_curpos < gl->ntotal; i++) {
- char *cptr = gl->line + gl->buff_curpos++;
-/*
- * Convert the character to upper case?
- */
- if(islower((int)(unsigned char) *cptr))
- *cptr = toupper((int) *cptr);
- else if(isupper((int)(unsigned char) *cptr))
- *cptr = tolower((int) *cptr);
-/*
- * Write the possibly modified character back. Note that for non-modified
- * characters we want to do this as well, so as to advance the cursor.
- */
- if(gl_output_char(gl, *cptr, cptr[1]))
- return 1;
- };
-/*
- * Restore the insertion mode.
- */
- gl->insert = insert;
- return gl_place_cursor(gl, gl->buff_curpos); /* bounds check */
-}
-
-/*.......................................................................
- * This is the action function which implements the vi-style action which
- * moves the cursor to the start of the line, then switches to insert mode.
- */
-static KT_KEY_FN(gl_vi_insert_at_bol)
-{
- gl_save_for_undo(gl);
- return gl_beginning_of_line(gl, 0) ||
- gl_vi_insert(gl, 0);
-
-}
-
-/*.......................................................................
- * This is the action function which implements the vi-style action which
- * moves the cursor to the end of the line, then switches to insert mode
- * to allow text to be appended to the line.
- */
-static KT_KEY_FN(gl_vi_append_at_eol)
-{
- gl_save_for_undo(gl);
- gl->vi.command = 0; /* Allow cursor at EOL */
- return gl_end_of_line(gl, 0) ||
- gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * This is the action function which implements the vi-style action which
- * moves the cursor to right one then switches to insert mode, thus
- * allowing text to be appended after the next character.
- */
-static KT_KEY_FN(gl_vi_append)
-{
- gl_save_for_undo(gl);
- gl->vi.command = 0; /* Allow cursor at EOL */
- return gl_cursor_right(gl, 1) ||
- gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * This action function moves the cursor to the column specified by the
- * numeric argument. Column indexes start at 1.
- */
-static KT_KEY_FN(gl_goto_column)
-{
- return gl_place_cursor(gl, count - 1);
-}
-
-/*.......................................................................
- * Starting with the character under the cursor, replace 'count'
- * characters with the next character that the user types.
- */
-static KT_KEY_FN(gl_vi_replace_char)
-{
- char c; /* The replacement character */
- int i;
-/*
- * Keep a record of the current insert mode.
- */
- int insert = gl->insert;
-/*
- * Get the replacement character.
- */
- if(gl->vi.repeat.active) {
- c = gl->vi.repeat.input_char;
- } else {
- if(gl_read_character(gl, &c))
- return 1;
- gl->vi.repeat.input_char = c;
- };
-/*
- * Are there 'count' characters to be replaced?
- */
- if(gl->ntotal - gl->buff_curpos >= count) {
-/*
- * If in vi command mode, preserve the current line for potential
- * use by vi-undo.
- */
- gl_save_for_undo(gl);
-/*
- * Temporarily switch to overwrite mode.
- */
- gl->insert = 0;
-/*
- * Overwrite the current character plus count-1 subsequent characters
- * with the replacement character.
- */
- for(i=0; i<count; i++)
- gl_add_char_to_line(gl, c);
-/*
- * Restore the original insert/overwrite mode.
- */
- gl->insert = insert;
- };
- return gl_place_cursor(gl, gl->buff_curpos); /* bounds check */
-}
-
-/*.......................................................................
- * This is an action function which changes all characters between the
- * current cursor position and the end of the line.
- */
-static KT_KEY_FN(gl_vi_change_rest_of_line)
-{
- gl_save_for_undo(gl);
- gl->vi.command = 0; /* Allow cursor at EOL */
- return gl_kill_line(gl, count) || gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * This is an action function which changes all characters between the
- * start of the line and the current cursor position.
- */
-static KT_KEY_FN(gl_vi_change_to_bol)
-{
- return gl_backward_kill_line(gl, count) || gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * This is an action function which deletes the entire contents of the
- * current line and switches to insert mode.
- */
-static KT_KEY_FN(gl_vi_change_line)
-{
- return gl_delete_line(gl, count) || gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * Starting from the cursor position and looking towards the end of the
- * line, copy 'count' characters to the cut buffer.
- */
-static KT_KEY_FN(gl_forward_copy_char)
-{
-/*
- * Limit the count to the number of characters available.
- */
- if(gl->buff_curpos + count >= gl->ntotal)
- count = gl->ntotal - gl->buff_curpos;
- if(count < 0)
- count = 0;
-/*
- * Copy the characters to the cut buffer.
- */
- memcpy(gl->cutbuf, gl->line + gl->buff_curpos, count);
- gl->cutbuf[count] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Starting from the character before the cursor position and looking
- * backwards towards the start of the line, copy 'count' characters to
- * the cut buffer.
- */
-static KT_KEY_FN(gl_backward_copy_char)
-{
-/*
- * Limit the count to the number of characters available.
- */
- if(count > gl->buff_curpos)
- count = gl->buff_curpos;
- if(count < 0)
- count = 0;
- gl_place_cursor(gl, gl->buff_curpos - count);
-/*
- * Copy the characters to the cut buffer.
- */
- memcpy(gl->cutbuf, gl->line + gl->buff_curpos, count);
- gl->cutbuf[count] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Starting from the cursor position copy to the specified column into the
- * cut buffer.
- */
-static KT_KEY_FN(gl_copy_to_column)
-{
- if (--count >= gl->buff_curpos)
- return gl_forward_copy_char(gl, count - gl->buff_curpos);
- else
- return gl_backward_copy_char(gl, gl->buff_curpos - count);
-}
-
-/*.......................................................................
- * Starting from the cursor position copy characters up to a matching
- * parenthesis into the cut buffer.
- */
-static KT_KEY_FN(gl_copy_to_parenthesis)
-{
- int curpos = gl_index_of_matching_paren(gl);
- if(curpos >= 0) {
- gl_save_for_undo(gl);
- if(curpos >= gl->buff_curpos)
- return gl_forward_copy_char(gl, curpos - gl->buff_curpos + 1);
- else
- return gl_backward_copy_char(gl, ++gl->buff_curpos - curpos + 1);
- };
- return 0;
-}
-
-/*.......................................................................
- * Starting from the cursor position copy the rest of the line into the
- * cut buffer.
- */
-static KT_KEY_FN(gl_copy_rest_of_line)
-{
-/*
- * Copy the characters to the cut buffer.
- */
- memcpy(gl->cutbuf, gl->line + gl->buff_curpos, gl->ntotal - gl->buff_curpos);
- gl->cutbuf[gl->ntotal - gl->buff_curpos] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Copy from the beginning of the line to the cursor position into the
- * cut buffer.
- */
-static KT_KEY_FN(gl_copy_to_bol)
-{
-/*
- * Copy the characters to the cut buffer.
- */
- memcpy(gl->cutbuf, gl->line, gl->buff_curpos);
- gl->cutbuf[gl->buff_curpos] = '\0';
- gl_place_cursor(gl, 0);
- return 0;
-}
-
-/*.......................................................................
- * Copy the entire line into the cut buffer.
- */
-static KT_KEY_FN(gl_copy_line)
-{
-/*
- * Copy the characters to the cut buffer.
- */
- memcpy(gl->cutbuf, gl->line, gl->ntotal);
- gl->cutbuf[gl->ntotal] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Search forwards for the next character that the user enters.
- */
-static KT_KEY_FN(gl_forward_find_char)
-{
- int pos = gl_find_char(gl, count, 1, 1, '\0');
- return pos >= 0 && gl_place_cursor(gl, pos);
-}
-
-/*.......................................................................
- * Search backwards for the next character that the user enters.
- */
-static KT_KEY_FN(gl_backward_find_char)
-{
- int pos = gl_find_char(gl, count, 0, 1, '\0');
- return pos >= 0 && gl_place_cursor(gl, pos);
-}
-
-/*.......................................................................
- * Search forwards for the next character that the user enters. Move up to,
- * but not onto, the found character.
- */
-static KT_KEY_FN(gl_forward_to_char)
-{
- int pos = gl_find_char(gl, count, 1, 0, '\0');
- return pos >= 0 && gl_place_cursor(gl, pos);
-}
-
-/*.......................................................................
- * Search backwards for the next character that the user enters. Move back to,
- * but not onto, the found character.
- */
-static KT_KEY_FN(gl_backward_to_char)
-{
- int pos = gl_find_char(gl, count, 0, 0, '\0');
- return pos >= 0 && gl_place_cursor(gl, pos);
-}
-
-/*.......................................................................
- * Searching in a given direction, return the index of a given (or
- * read) character in the input line, or the character that precedes
- * it in the specified search direction. Return -1 if not found.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * count int The number of times to search.
- * forward int True if searching forward.
- * onto int True if the search should end on top of the
- * character, false if the search should stop
- * one character before the character in the
- * specified search direction.
- * c char The character to be sought, or '\0' if the
- * character should be read from the user.
- * Output:
- * return int The index of the character in gl->line[], or
- * -1 if not found.
- */
-static int gl_find_char(GetLine *gl, int count, int forward, int onto, char c)
-{
- int pos; /* The index reached in searching the input line */
- int i;
-/*
- * Get a character from the user?
- */
- if(!c) {
-/*
- * If we are in the process of repeating a previous change command, substitute
- * the last find character.
- */
- if(gl->vi.repeat.active) {
- c = gl->vi.find_char;
- } else {
- if(gl_read_character(gl, &c))
- return -1;
-/*
- * Record the details of the new search, for use by repeat finds.
- */
- gl->vi.find_forward = forward;
- gl->vi.find_onto = onto;
- gl->vi.find_char = c;
- };
- };
-/*
- * Which direction should we search?
- */
- if(forward) {
-/*
- * Search forwards 'count' times for the character, starting with the
- * character that follows the cursor.
- */
- for(i=0, pos=gl->buff_curpos; i<count && pos < gl->ntotal; i++) {
-/*
- * Advance past the last match (or past the current cursor position
- * on the first search).
- */
- pos++;
-/*
- * Search for the next instance of c.
- */
- for( ; pos<gl->ntotal && c!=gl->line[pos]; pos++)
- ;
- };
-/*
- * If the character was found and we have been requested to return the
- * position of the character that precedes the desired character, then
- * we have gone one character too far.
- */
- if(!onto && pos<gl->ntotal)
- pos--;
- } else {
-/*
- * Search backwards 'count' times for the character, starting with the
- * character that precedes the cursor.
- */
- for(i=0, pos=gl->buff_curpos; i<count && pos >= gl->insert_curpos; i++) {
-/*
- * Step back one from the last match (or from the current cursor
- * position on the first search).
- */
- pos--;
-/*
- * Search for the next instance of c.
- */
- for( ; pos>=gl->insert_curpos && c!=gl->line[pos]; pos--)
- ;
- };
-/*
- * If the character was found and we have been requested to return the
- * position of the character that precedes the desired character, then
- * we have gone one character too far.
- */
- if(!onto && pos>=gl->insert_curpos)
- pos++;
- };
-/*
- * If found, return the cursor position of the count'th match.
- * Otherwise ring the terminal bell.
- */
- if(pos >= gl->insert_curpos && pos < gl->ntotal) {
- return pos;
- } else {
- (void) gl_ring_bell(gl, 1);
- return -1;
- }
-}
-
-/*.......................................................................
- * Repeat the last character search in the same direction as the last
- * search.
- */
-static KT_KEY_FN(gl_repeat_find_char)
-{
- int pos = gl->vi.find_char ?
- gl_find_char(gl, count, gl->vi.find_forward, gl->vi.find_onto,
- gl->vi.find_char) : -1;
- return pos >= 0 && gl_place_cursor(gl, pos);
-}
-
-/*.......................................................................
- * Repeat the last character search in the opposite direction as the last
- * search.
- */
-static KT_KEY_FN(gl_invert_refind_char)
-{
- int pos = gl->vi.find_char ?
- gl_find_char(gl, count, !gl->vi.find_forward, gl->vi.find_onto,
- gl->vi.find_char) : -1;
- return pos >= 0 && gl_place_cursor(gl, pos);
-}
-
-/*.......................................................................
- * Search forward from the current position of the cursor for 'count'
- * word endings, returning the index of the last one found, or the end of
- * the line if there were less than 'count' words.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * n int The number of word boundaries to search for.
- * Output:
- * return int The buffer index of the located position.
- */
-static int gl_nth_word_end_forward(GetLine *gl, int n)
-{
- int bufpos; /* The buffer index being checked. */
- int i;
-/*
- * In order to guarantee forward motion to the next word ending,
- * we need to start from one position to the right of the cursor
- * position, since this may already be at the end of a word.
- */
- bufpos = gl->buff_curpos + 1;
-/*
- * If we are at the end of the line, return the index of the last
- * real character on the line. Note that this will be -1 if the line
- * is empty.
- */
- if(bufpos >= gl->ntotal)
- return gl->ntotal - 1;
-/*
- * Search 'n' times, unless the end of the input line is reached first.
- */
- for(i=0; i<n && bufpos<gl->ntotal; i++) {
-/*
- * If we are not already within a word, skip to the start of the next word.
- */
- for( ; bufpos<gl->ntotal && !gl_is_word_char((int)gl->line[bufpos]);
- bufpos++)
- ;
-/*
- * Find the end of the next word.
- */
- for( ; bufpos<gl->ntotal && gl_is_word_char((int)gl->line[bufpos]);
- bufpos++)
- ;
- };
-/*
- * We will have overshot.
- */
- return bufpos > 0 ? bufpos-1 : bufpos;
-}
-
-/*.......................................................................
- * Search forward from the current position of the cursor for 'count'
- * word starts, returning the index of the last one found, or the end of
- * the line if there were less than 'count' words.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * n int The number of word boundaries to search for.
- * Output:
- * return int The buffer index of the located position.
- */
-static int gl_nth_word_start_forward(GetLine *gl, int n)
-{
- int bufpos; /* The buffer index being checked. */
- int i;
-/*
- * Get the current cursor position.
- */
- bufpos = gl->buff_curpos;
-/*
- * Search 'n' times, unless the end of the input line is reached first.
- */
- for(i=0; i<n && bufpos<gl->ntotal; i++) {
-/*
- * Find the end of the current word.
- */
- for( ; bufpos<gl->ntotal && gl_is_word_char((int)gl->line[bufpos]);
- bufpos++)
- ;
-/*
- * Skip to the start of the next word.
- */
- for( ; bufpos<gl->ntotal && !gl_is_word_char((int)gl->line[bufpos]);
- bufpos++)
- ;
- };
- return bufpos;
-}
-
-/*.......................................................................
- * Search backward from the current position of the cursor for 'count'
- * word starts, returning the index of the last one found, or the start
- * of the line if there were less than 'count' words.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * n int The number of word boundaries to search for.
- * Output:
- * return int The buffer index of the located position.
- */
-static int gl_nth_word_start_backward(GetLine *gl, int n)
-{
- int bufpos; /* The buffer index being checked. */
- int i;
-/*
- * Get the current cursor position.
- */
- bufpos = gl->buff_curpos;
-/*
- * Search 'n' times, unless the beginning of the input line (or vi insertion
- * point) is reached first.
- */
- for(i=0; i<n && bufpos > gl->insert_curpos; i++) {
-/*
- * Starting one character back from the last search, so as not to keep
- * settling on the same word-start, search backwards until finding a
- * word character.
- */
- while(--bufpos >= gl->insert_curpos &&
- !gl_is_word_char((int)gl->line[bufpos]))
- ;
-/*
- * Find the start of the word.
- */
- while(--bufpos >= gl->insert_curpos &&
- gl_is_word_char((int)gl->line[bufpos]))
- ;
-/*
- * We will have gone one character too far.
- */
- bufpos++;
- };
- return bufpos >= gl->insert_curpos ? bufpos : gl->insert_curpos;
-}
-
-/*.......................................................................
- * Copy one or more words into the cut buffer without moving the cursor
- * or deleting text.
- */
-static KT_KEY_FN(gl_forward_copy_word)
-{
-/*
- * Find the location of the count'th start or end of a word
- * after the cursor, depending on whether in emacs or vi mode.
- */
- int next = gl->editor == GL_EMACS_MODE ?
- gl_nth_word_end_forward(gl, count) :
- gl_nth_word_start_forward(gl, count);
-/*
- * How many characters are to be copied into the cut buffer?
- */
- int n = next - gl->buff_curpos;
-/*
- * Copy the specified segment and terminate the string.
- */
- memcpy(gl->cutbuf, gl->line + gl->buff_curpos, n);
- gl->cutbuf[n] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Copy one or more words preceding the cursor into the cut buffer,
- * without moving the cursor or deleting text.
- */
-static KT_KEY_FN(gl_backward_copy_word)
-{
-/*
- * Find the location of the count'th start of word before the cursor.
- */
- int next = gl_nth_word_start_backward(gl, count);
-/*
- * How many characters are to be copied into the cut buffer?
- */
- int n = gl->buff_curpos - next;
- gl_place_cursor(gl, next);
-/*
- * Copy the specified segment and terminate the string.
- */
- memcpy(gl->cutbuf, gl->line + next, n);
- gl->cutbuf[n] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Copy the characters between the cursor and the count'th instance of
- * a specified character in the input line, into the cut buffer.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * count int The number of times to search.
- * c char The character to be searched for, or '\0' if
- * the character should be read from the user.
- * forward int True if searching forward.
- * onto int True if the search should end on top of the
- * character, false if the search should stop
- * one character before the character in the
- * specified search direction.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- *
- */
-static int gl_copy_find(GetLine *gl, int count, char c, int forward, int onto)
-{
- int n; /* The number of characters in the cut buffer */
-/*
- * Search for the character, and abort the operation if not found.
- */
- int pos = gl_find_char(gl, count, forward, onto, c);
- if(pos < 0)
- return 0;
-/*
- * Copy the specified segment.
- */
- if(forward) {
- n = pos + 1 - gl->buff_curpos;
- memcpy(gl->cutbuf, gl->line + gl->buff_curpos, n);
- } else {
- n = gl->buff_curpos - pos;
- memcpy(gl->cutbuf, gl->line + pos, n);
- if(gl->editor == GL_VI_MODE)
- gl_place_cursor(gl, pos);
- }
-/*
- * Terminate the copy.
- */
- gl->cutbuf[n] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Copy a section up to and including a specified character into the cut
- * buffer without moving the cursor or deleting text.
- */
-static KT_KEY_FN(gl_forward_copy_find)
-{
- return gl_copy_find(gl, count, '\0', 1, 1);
-}
-
-/*.......................................................................
- * Copy a section back to and including a specified character into the cut
- * buffer without moving the cursor or deleting text.
- */
-static KT_KEY_FN(gl_backward_copy_find)
-{
- return gl_copy_find(gl, count, '\0', 0, 1);
-}
-
-/*.......................................................................
- * Copy a section up to and not including a specified character into the cut
- * buffer without moving the cursor or deleting text.
- */
-static KT_KEY_FN(gl_forward_copy_to)
-{
- return gl_copy_find(gl, count, '\0', 1, 0);
-}
-
-/*.......................................................................
- * Copy a section back to and not including a specified character into the cut
- * buffer without moving the cursor or deleting text.
- */
-static KT_KEY_FN(gl_backward_copy_to)
-{
- return gl_copy_find(gl, count, '\0', 0, 0);
-}
-
-/*.......................................................................
- * Copy to a character specified in a previous search into the cut
- * buffer without moving the cursor or deleting text.
- */
-static KT_KEY_FN(gl_copy_refind)
-{
- return gl_copy_find(gl, count, gl->vi.find_char, gl->vi.find_forward,
- gl->vi.find_onto);
-}
-
-/*.......................................................................
- * Copy to a character specified in a previous search, but in the opposite
- * direction, into the cut buffer without moving the cursor or deleting text.
- */
-static KT_KEY_FN(gl_copy_invert_refind)
-{
- return gl_copy_find(gl, count, gl->vi.find_char, !gl->vi.find_forward,
- gl->vi.find_onto);
-}
-
-/*.......................................................................
- * Set the position of the cursor in the line input buffer and the
- * terminal.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * buff_curpos int The new buffer cursor position.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_place_cursor(GetLine *gl, int buff_curpos)
-{
-/*
- * Don't allow the cursor position to go out of the bounds of the input
- * line.
- */
- if(buff_curpos >= gl->ntotal)
- buff_curpos = gl->vi.command ? gl->ntotal-1 : gl->ntotal;
- if(buff_curpos < 0)
- buff_curpos = 0;
-/*
- * Record the new buffer position.
- */
- gl->buff_curpos = buff_curpos;
-/*
- * Move the terminal cursor to the corresponding character.
- */
- return gl_set_term_curpos(gl, gl_buff_curpos_to_term_curpos(gl, buff_curpos));
-}
-
-/*.......................................................................
- * In vi command mode, this function saves the current line to the
- * historical buffer needed by the undo command. In emacs mode it does
- * nothing. In order to allow action functions to call other action
- * functions, gl_interpret_char() sets gl->vi.undo.saved to 0 before
- * invoking an action, and thereafter once any call to this function
- * has set it to 1, further calls are ignored.
- *
- * Input:
- * gl GetLine * The getline resource object.
- */
-static void gl_save_for_undo(GetLine *gl)
-{
- if(gl->vi.command && !gl->vi.undo.saved) {
- strcpy(gl->vi.undo.line, gl->line);
- gl->vi.undo.buff_curpos = gl->buff_curpos;
- gl->vi.undo.ntotal = gl->ntotal;
- gl->vi.undo.saved = 1;
- };
- if(gl->vi.command && !gl->vi.repeat.saved &&
- gl->current_fn != gl_vi_repeat_change) {
- gl->vi.repeat.fn = gl->current_fn;
- gl->vi.repeat.count = gl->current_count;
- gl->vi.repeat.saved = 1;
- };
- return;
-}
-
-/*.......................................................................
- * In vi mode, restore the line to the way it was before the last command
- * mode operation, storing the current line in the buffer so that the
- * undo operation itself can subsequently be undone.
- */
-static KT_KEY_FN(gl_vi_undo)
-{
-/*
- * Get pointers into the two lines.
- */
- char *undo_ptr = gl->vi.undo.line;
- char *line_ptr = gl->line;
-/*
- * Swap the characters of the two buffers up to the length of the shortest
- * line.
- */
- while(*undo_ptr && *line_ptr) {
- char c = *undo_ptr;
- *undo_ptr++ = *line_ptr;
- *line_ptr++ = c;
- };
-/*
- * Copy the rest directly.
- */
- if(gl->ntotal > gl->vi.undo.ntotal) {
- strcpy(undo_ptr, line_ptr);
- *line_ptr = '\0';
- } else {
- strcpy(line_ptr, undo_ptr);
- *undo_ptr = '\0';
- };
-/*
- * Swap the length information.
- */
- {
- int ntotal = gl->ntotal;
- gl->ntotal = gl->vi.undo.ntotal;
- gl->vi.undo.ntotal = ntotal;
- };
-/*
- * Set both cursor positions to the leftmost of the saved and current
- * cursor positions to emulate what vi does.
- */
- if(gl->buff_curpos < gl->vi.undo.buff_curpos)
- gl->vi.undo.buff_curpos = gl->buff_curpos;
- else
- gl->buff_curpos = gl->vi.undo.buff_curpos;
-/*
- * Since we have bipassed calling gl_save_for_undo(), record repeat
- * information inline.
- */
- gl->vi.repeat.fn = gl_vi_undo;
- gl->vi.repeat.count = 1;
-/*
- * Display the restored line.
- */
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * Delete the following word and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_forward_change_word)
-{
- gl_save_for_undo(gl);
- gl->vi.command = 0; /* Allow cursor at EOL */
- return gl_forward_delete_word(gl, count) || gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * Delete the preceding word and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_backward_change_word)
-{
- return gl_backward_delete_word(gl, count) || gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * Delete the following section and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_forward_change_find)
-{
- return gl_delete_find(gl, count, '\0', 1, 1, 1);
-}
-
-/*.......................................................................
- * Delete the preceding section and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_backward_change_find)
-{
- return gl_delete_find(gl, count, '\0', 0, 1, 1);
-}
-
-/*.......................................................................
- * Delete the following section and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_forward_change_to)
-{
- return gl_delete_find(gl, count, '\0', 1, 0, 1);
-}
-
-/*.......................................................................
- * Delete the preceding section and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_backward_change_to)
-{
- return gl_delete_find(gl, count, '\0', 0, 0, 1);
-}
-
-/*.......................................................................
- * Delete to a character specified by a previous search and leave the user
- * in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_change_refind)
-{
- return gl_delete_find(gl, count, gl->vi.find_char, gl->vi.find_forward,
- gl->vi.find_onto, 1);
-}
-
-/*.......................................................................
- * Delete to a character specified by a previous search, but in the opposite
- * direction, and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_change_invert_refind)
-{
- return gl_delete_find(gl, count, gl->vi.find_char, !gl->vi.find_forward,
- gl->vi.find_onto, 1);
-}
-
-/*.......................................................................
- * Delete the following character and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_forward_change_char)
-{
- gl_save_for_undo(gl);
- gl->vi.command = 0; /* Allow cursor at EOL */
- return gl_delete_chars(gl, count, 1) || gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * Delete the preceding character and leave the user in vi insert mode.
- */
-static KT_KEY_FN(gl_vi_backward_change_char)
-{
- return gl_backward_delete_char(gl, count) || gl_vi_insert(gl, 0);
-}
-
-/*.......................................................................
- * Starting from the cursor position change characters to the specified column.
- */
-static KT_KEY_FN(gl_vi_change_to_column)
-{
- if (--count >= gl->buff_curpos)
- return gl_vi_forward_change_char(gl, count - gl->buff_curpos);
- else
- return gl_vi_backward_change_char(gl, gl->buff_curpos - count);
-}
-
-/*.......................................................................
- * Starting from the cursor position change characters to a matching
- * parenthesis.
- */
-static KT_KEY_FN(gl_vi_change_to_parenthesis)
-{
- int curpos = gl_index_of_matching_paren(gl);
- if(curpos >= 0) {
- gl_save_for_undo(gl);
- if(curpos >= gl->buff_curpos)
- return gl_vi_forward_change_char(gl, curpos - gl->buff_curpos + 1);
- else
- return gl_vi_backward_change_char(gl, ++gl->buff_curpos - curpos + 1);
- };
- return 0;
-}
-
-/*.......................................................................
- * If in vi mode, switch to vi command mode.
- *
- * Input:
- * gl GetLine * The getline resource object.
- */
-static void gl_vi_command_mode(GetLine *gl)
-{
- if(gl->editor == GL_VI_MODE && !gl->vi.command) {
- gl->insert = 1;
- gl->vi.command = 1;
- gl->vi.repeat.input_curpos = gl->insert_curpos;
- gl->vi.repeat.command_curpos = gl->buff_curpos;
- gl->insert_curpos = 0; /* unrestrict left motion boundary */
- gl_cursor_left(gl, 1); /* Vi moves left one on entering command mode */
- };
-}
-
-/*.......................................................................
- * This is an action function which rings the terminal bell.
- */
-static KT_KEY_FN(gl_ring_bell)
-{
- return gl->silence_bell ? 0 :
- gl_output_control_sequence(gl, 1, gl->sound_bell);
-}
-
-/*.......................................................................
- * This is the action function which implements the vi-repeat-change
- * action.
- */
-static KT_KEY_FN(gl_vi_repeat_change)
-{
- int status; /* The return status of the repeated action function */
- int i;
-/*
- * Nothing to repeat?
- */
- if(!gl->vi.repeat.fn)
- return gl_ring_bell(gl, 1);
-/*
- * Provide a way for action functions to know whether they are being
- * called by us.
- */
- gl->vi.repeat.active = 1;
-/*
- * Re-run the recorded function.
- */
- status = gl->vi.repeat.fn(gl, gl->vi.repeat.count);
-/*
- * Mark the repeat as completed.
- */
- gl->vi.repeat.active = 0;
-/*
- * Is we are repeating a function that has just switched to input
- * mode to allow the user to type, re-enter the text that the user
- * previously entered.
- */
- if(status==0 && !gl->vi.command) {
-/*
- * Make sure that the current line has been saved.
- */
- gl_save_for_undo(gl);
-/*
- * Repeat a previous insertion or overwrite?
- */
- if(gl->vi.repeat.input_curpos >= 0 &&
- gl->vi.repeat.input_curpos <= gl->vi.repeat.command_curpos &&
- gl->vi.repeat.command_curpos <= gl->vi.undo.ntotal) {
-/*
- * Using the current line which is saved in the undo buffer, plus
- * the range of characters therein, as recorded by gl_vi_command_mode(),
- * add the characters that the user previously entered, to the input
- * line.
- */
- for(i=gl->vi.repeat.input_curpos; i<gl->vi.repeat.command_curpos; i++) {
- if(gl_add_char_to_line(gl, gl->vi.undo.line[i]))
- return 1;
- };
- };
-/*
- * Switch back to command mode, now that the insertion has been repeated.
- */
- gl_vi_command_mode(gl);
- };
- return status;
-}
-
-/*.......................................................................
- * If the cursor is currently over a parenthesis character, return the
- * index of its matching parenthesis. If not currently over a parenthesis
- * character, return the next close parenthesis character to the right of
- * the cursor. If the respective parenthesis character isn't found,
- * ring the terminal bell and return -1.
- *
- * Input:
- * gl GetLine * The getline resource object.
- * Output:
- * return int Either the index of the matching parenthesis,
- * or -1 if not found.
- */
-static int gl_index_of_matching_paren(GetLine *gl)
-{
- int i;
-/*
- * List the recognized parentheses, and their matches.
- */
- const char *o_paren = "([{";
- const char *c_paren = ")]}";
- const char *cptr;
-/*
- * Get the character that is currently under the cursor.
- */
- char c = gl->line[gl->buff_curpos];
-/*
- * If the character under the cursor is an open parenthesis, look forward
- * for the matching close parenthesis.
- */
- if((cptr=strchr(o_paren, c))) {
- char match = c_paren[cptr - o_paren];
- int matches_needed = 1;
- for(i=gl->buff_curpos+1; i<gl->ntotal; i++) {
- if(gl->line[i] == c)
- matches_needed++;
- else if(gl->line[i] == match && --matches_needed==0)
- return i;
- };
-/*
- * If the character under the cursor is an close parenthesis, look forward
- * for the matching open parenthesis.
- */
- } else if((cptr=strchr(c_paren, c))) {
- char match = o_paren[cptr - c_paren];
- int matches_needed = 1;
- for(i=gl->buff_curpos-1; i>=0; i--) {
- if(gl->line[i] == c)
- matches_needed++;
- else if(gl->line[i] == match && --matches_needed==0)
- return i;
- };
-/*
- * If not currently over a parenthesis character, search forwards for
- * the first close parenthesis (this is what the vi % binding does).
- */
- } else {
- for(i=gl->buff_curpos+1; i<gl->ntotal; i++)
- if(strchr(c_paren, gl->line[i]) != NULL)
- return i;
- };
-/*
- * Not found.
- */
- (void) gl_ring_bell(gl, 1);
- return -1;
-}
-
-/*.......................................................................
- * If the cursor is currently over a parenthesis character, this action
- * function moves the cursor to its matching parenthesis.
- */
-static KT_KEY_FN(gl_find_parenthesis)
-{
- int curpos = gl_index_of_matching_paren(gl);
- if(curpos >= 0)
- return gl_place_cursor(gl, curpos);
- return 0;
-}
-
-/*.......................................................................
- * Handle the receipt of the potential start of a new key-sequence from
- * the user.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * first_char char The first character of the sequence.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_interpret_char(GetLine *gl, char first_char)
-{
- KtKeyFn *keyfn; /* An action function */
- char keyseq[GL_KEY_MAX+1]; /* A special key sequence being read */
- int nkey=0; /* The number of characters in the key sequence */
- int count; /* The repeat count of an action function */
- int ret; /* The return value of an action function */
- int i;
-/*
- * Get the first character.
- */
- char c = first_char;
-/*
- * If editting is disabled, just add newly entered characters to the
- * input line buffer, and watch for the end of the line.
- */
- if(gl->editor == GL_NO_EDITOR) {
- if(gl->ntotal >= gl->linelen)
- return 0;
- if(c == '\n' || c == '\r')
- return gl_newline(gl, 1);
- gl->line[gl->ntotal++] = c;
- return 0;
- };
-/*
- * If the user is in the process of specifying a repeat count and the
- * new character is a digit, increment the repeat count accordingly.
- */
- if(gl->number >= 0 && isdigit((int)(unsigned char) c))
- return gl_digit_argument(gl, c);
-/*
- * In vi command mode, all key-sequences entered need to be
- * either implicitly or explicitly prefixed with an escape character.
- */
- else if(gl->vi.command && c != GL_ESC_CHAR)
- keyseq[nkey++] = GL_ESC_CHAR;
-/*
- * If the first character of the sequence is a printable character,
- * then to avoid confusion with the special "up", "down", "left"
- * or "right" cursor key bindings, we need to prefix the
- * printable character with a backslash escape before looking it up.
- */
- else if(!IS_META_CHAR(c) && !IS_CTRL_CHAR(c))
- keyseq[nkey++] = '\\';
-/*
- * Compose a potentially multiple key-sequence in gl->keyseq.
- */
- while(nkey < GL_KEY_MAX) {
- int first, last; /* The matching entries in gl->keys */
-/*
- * If the character is an unprintable meta character, split it
- * into two characters, an escape character and the character
- * that was modified by the meta key.
- */
- if(IS_META_CHAR(c)) {
- keyseq[nkey++] = GL_ESC_CHAR;
- c = META_TO_CHAR(c);
- continue;
- };
-/*
- * Append the latest character to the key sequence.
- */
- keyseq[nkey++] = c;
-/*
- * When doing vi-style editing, an escape at the beginning of any binding
- * switches to command mode.
- */
- if(keyseq[0] == GL_ESC_CHAR && !gl->vi.command)
- gl_vi_command_mode(gl);
-/*
- * Lookup the key sequence.
- */
- switch(_kt_lookup_keybinding(gl->bindings, keyseq, nkey, &first, &last)) {
- case KT_EXACT_MATCH:
-/*
- * Get the matching action function.
- */
- keyfn = gl->bindings->table[first].keyfn;
-/*
- * Get the repeat count, passing the last keystroke if executing the
- * digit-argument action.
- */
- if(keyfn == gl_digit_argument) {
- count = c;
- } else {
- count = gl->number >= 0 ? gl->number : 1;
- };
-/*
- * Record the function that is being invoked.
- */
- gl->current_fn = keyfn;
- gl->current_count = count;
-/*
- * Mark the current line as not yet preserved for use by the vi undo command.
- */
- gl->vi.undo.saved = 0;
- gl->vi.repeat.saved = 0;
-/*
- * Execute the action function. Note the action function can tell
- * whether the provided repeat count was defaulted or specified
- * explicitly by looking at whether gl->number is -1 or not. If
- * it is negative, then no repeat count was specified by the user.
- */
- ret = keyfn(gl, count);
-/*
- * Reset the repeat count after running action functions (other
- * than digit-argument).
- */
- if(keyfn != gl_digit_argument)
- gl->number = -1;
- if(ret)
- return 1;
- return 0;
- break;
- case KT_AMBIG_MATCH: /* Ambiguous match - so look ahead */
- if(gl_read_character(gl, &c)) /* Get the next character */
- return 1;
- break;
- case KT_NO_MATCH:
-/*
- * If the first character looked like it might be a prefix of a key-sequence
- * but it turned out not to be, ring the bell to tell the user that it
- * wasn't recognised.
- */
- if(keyseq[0] != '\\' && keyseq[0] != '\t') {
- gl_ring_bell(gl, 0);
- } else {
-/*
- * The user typed a single printable character that doesn't match
- * the start of any keysequence, so add it to the line in accordance
- * with the current repeat count.
- */
- count = gl->number >= 0 ? gl->number : 1;
- for(i=0; i<count; i++)
- gl_add_char_to_line(gl, first_char);
- gl->number = -1;
- };
- return 0;
- break;
- case KT_BAD_MATCH:
- return 1;
- break;
- };
- };
-/*
- * Key sequence too long to match.
- */
- return 0;
-}
-
-/*.......................................................................
- * Configure the application and/or user-specific behavior of
- * gl_get_line().
- *
- * Note that calling this function between calling new_GetLine() and
- * the first call to new_GetLine(), disables the otherwise automatic
- * reading of ~/.teclarc on the first call to gl_get_line().
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * app_string const char * Either NULL, or a string containing one
- * or more .teclarc command lines, separated
- * by newline characters. This can be used to
- * establish an application-specific
- * configuration, without the need for an external
- * file. This is particularly useful in embedded
- * environments where there is no filesystem.
- * app_file const char * Either NULL, or the pathname of an
- * application-specific .teclarc file. The
- * contents of this file, if provided, are
- * read after the contents of app_string[].
- * user_file const char * Either NULL, or the pathname of a
- * user-specific .teclarc file. Except in
- * embedded applications, this should
- * usually be "~/.teclarc".
- * Output:
- * return int 0 - OK.
- * 1 - Bad argument(s).
- */
-int gl_configure_getline(GetLine *gl, const char *app_string,
- const char *app_file, const char *user_file)
-{
-/*
- * Check the arguments.
- */
- if(!gl) {
- fprintf(stderr, "gl_configure_getline: NULL gl argument.\n");
- return 1;
- };
-/*
- * Mark getline as having been explicitly configured.
- */
- gl->configured = 1;
-/*
- * Start by parsing the configuration string, if provided.
- */
- if(app_string)
- (void) _gl_read_config_string(gl, app_string, KTB_NORM);
-/*
- * Now parse the application-specific configuration file, if provided.
- */
- if(app_file)
- (void) _gl_read_config_file(gl, app_file, KTB_NORM);
-/*
- * Finally, parse the user-specific configuration file, if provided.
- */
- if(user_file)
- (void) _gl_read_config_file(gl, user_file, KTB_USER);
-/*
- * Record the names of the configuration files to allow them to
- * be re-read if requested at a later time.
- */
- if(gl_record_string(&gl->app_file, app_file) ||
- gl_record_string(&gl->user_file, user_file)) {
- fprintf(stderr,
- "Insufficient memory to record tecla configuration file names.\n");
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Replace a malloc'd string (or NULL), with another malloc'd copy of
- * a string (or NULL).
- *
- * Input:
- * sptr char ** On input if *sptr!=NULL, *sptr will be
- * free'd and *sptr will be set to NULL. Then,
- * on output, if string!=NULL a malloc'd copy
- * of this string will be assigned to *sptr.
- * string const char * The string to be copied, or NULL to simply
- * discard any existing string.
- * Output:
- * return int 0 - OK.
- * 1 - Malloc failure (no error message is generated).
- */
-static int gl_record_string(char **sptr, const char *string)
-{
-/*
- * If the original string is the same string, don't do anything.
- */
- if(*sptr == string || (*sptr && string && strcmp(*sptr, string)==0))
- return 0;
-/*
- * Discard any existing cached string.
- */
- if(*sptr) {
- free(*sptr);
- *sptr = NULL;
- };
-/*
- * Allocate memory for a copy of the specified string.
- */
- if(string) {
- *sptr = (char *) malloc(strlen(string) + 1);
- if(!*sptr)
- return 1;
-/*
- * Copy the string.
- */
- strcpy(*sptr, string);
- };
- return 0;
-}
-
-/*.......................................................................
- * Re-read any application-specific and user-specific files previously
- * specified via the gl_configure_getline() function.
- */
-static KT_KEY_FN(gl_read_init_files)
-{
- return gl_configure_getline(gl, NULL, gl->app_file, gl->user_file);
-}
-
-/*.......................................................................
- * Save the contents of the history buffer to a given new file.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * filename const char * The name of the new file to write to.
- * comment const char * Extra information such as timestamps will
- * be recorded on a line started with this
- * string, the idea being that the file can
- * double as a command file. Specify "" if
- * you don't care.
- * max_lines int The maximum number of lines to save, or -1
- * to save all of the lines in the history
- * list.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_save_history(GetLine *gl, const char *filename, const char *comment,
- int max_lines)
-{
- FileExpansion *expansion; /* The expansion of the filename */
-/*
- * Check the arguments.
- */
- if(!gl || !filename || !comment) {
- fprintf(stderr, "gl_save_history: NULL argument(s).\n");
- return 1;
- };
-/*
- * Expand the filename.
- */
- expansion = ef_expand_file(gl->ef, filename, -1);
- if(!expansion) {
- fprintf(stderr, "Unable to expand %s (%s).\n", filename,
- ef_last_error(gl->ef));
- return 1;
- };
-/*
- * Attempt to save to the specified file.
- */
- return _glh_save_history(gl->glh, expansion->files[0], comment, max_lines);
-}
-
-/*.......................................................................
- * Restore the contents of the history buffer from a given new file.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * filename const char * The name of the new file to write to.
- * comment const char * This must be the same string that was
- * passed to gl_save_history() when the file
- * was written.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_load_history(GetLine *gl, const char *filename, const char *comment)
-{
- FileExpansion *expansion; /* The expansion of the filename */
-/*
- * Check the arguments.
- */
- if(!gl || !filename || !comment) {
- fprintf(stderr, "gl_load_history: NULL argument(s).\n");
- return 1;
- };
-/*
- * Expand the filename.
- */
- expansion = ef_expand_file(gl->ef, filename, -1);
- if(!expansion) {
- fprintf(stderr, "Unable to expand %s (%s).\n", filename,
- ef_last_error(gl->ef));
- return 1;
- };
-/*
- * Attempt to load from the specified file.
- */
- if(_glh_load_history(gl->glh, expansion->files[0], comment,
- gl->cutbuf, gl->linelen)) {
- gl->cutbuf[0] = '\0';
- return 1;
- };
- gl->cutbuf[0] = '\0';
- return 0;
-}
-
-/*.......................................................................
- * Where possible, register a function and associated data to be called
- * whenever a specified event is seen on a file descriptor.
- *
- * Input:
- * gl GetLine * The resource object of the command-line input
- * module.
- * fd int The file descriptor to watch.
- * event GlFdEvent The type of activity to watch for.
- * callback GlFdEventFn * The function to call when the specified
- * event occurs. Setting this to 0 removes
- * any existing callback.
- * data void * A pointer to arbitrary data to pass to the
- * callback function.
- * Output:
- * return int 0 - OK.
- * 1 - Either gl==NULL, or this facility isn't
- * available on the the host system
- * (ie. select() isn't available). No
- * error message is generated in the latter
- * case.
- */
-int gl_watch_fd(GetLine *gl, int fd, GlFdEvent event,
- GlFdEventFn *callback, void *data)
-#if !defined(HAVE_SELECT)
-{return 1;} /* The facility isn't supported on this system */
-#else
-{
- GlFdNode *prev; /* The node that precedes 'node' in gl->fd_nodes */
- GlFdNode *node; /* The file-descriptor node being checked */
-/*
- * Check the arguments.
- */
- if(!gl) {
- fprintf(stderr, "gl_watch_fd: NULL gl argument.\n");
- return 1;
- };
- if(fd < 0) {
- fprintf(stderr, "gl_watch_fd: Error fd < 0.\n");
- return 1;
- };
-/*
- * Search the list of already registered fd activity nodes for the specified
- * file descriptor.
- */
- for(prev=NULL,node=gl->fd_nodes; node && node->fd != fd;
- prev=node, node=node->next)
- ;
-/*
- * Hasn't a node been allocated for this fd yet?
- */
- if(!node) {
-/*
- * If there is no callback to record, just ignore the call.
- */
- if(!callback)
- return 0;
-/*
- * Allocate the new node.
- */
- node = (GlFdNode *) _new_FreeListNode(gl->fd_node_mem);
- if(!node) {
- fprintf(stderr, "gl_watch_fd: Insufficient memory.\n");
- return 1;
- };
-/*
- * Prepend the node to the list.
- */
- node->next = gl->fd_nodes;
- gl->fd_nodes = node;
-/*
- * Initialize the node.
- */
- node->fd = fd;
- node->rd.fn = 0;
- node->rd.data = NULL;
- node->ur = node->wr = node->rd;
- };
-/*
- * Record the new callback.
- */
- switch(event) {
- case GLFD_READ:
- node->rd.fn = callback;
- node->rd.data = data;
- if(callback)
- FD_SET(fd, &gl->rfds);
- else
- FD_CLR(fd, &gl->rfds);
- break;
- case GLFD_WRITE:
- node->wr.fn = callback;
- node->wr.data = data;
- if(callback)
- FD_SET(fd, &gl->wfds);
- else
- FD_CLR(fd, &gl->wfds);
- break;
- case GLFD_URGENT:
- node->ur.fn = callback;
- node->ur.data = data;
- if(callback)
- FD_SET(fd, &gl->ufds);
- else
- FD_CLR(fd, &gl->ufds);
- break;
- };
-/*
- * Keep a record of the largest file descriptor being watched.
- */
- if(fd > gl->max_fd)
- gl->max_fd = fd;
-/*
- * If we are deleting an existing callback, also delete the parent
- * activity node if no callbacks are registered to the fd anymore.
- */
- if(!callback) {
- if(!node->rd.fn && !node->wr.fn && !node->ur.fn) {
- if(prev)
- prev->next = node->next;
- else
- gl->fd_nodes = node->next;
- node = (GlFdNode *) _del_FreeListNode(gl->fd_node_mem, node);
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * When select() is available, this function is called by
- * gl_read_character() to respond to file-descriptor events registered by
- * the caller.
- *
- * Input:
- * gl GetLine * The resource object of this module.
- * Output:
- * return int 0 - A character is waiting to be read from the
- * terminal.
- * 1 - An error occurred.
- */
-static int gl_event_handler(GetLine *gl)
-{
-/*
- * If at any time no external callbacks remain, quit the loop return,
- * so that we can simply wait in read(). This is designed as an
- * optimization for when no callbacks have been registered on entry to
- * this function, but since callbacks can delete themselves, it can
- * also help later.
- */
- while(gl->fd_nodes) {
-/*
- * Get the set of descriptors to be watched.
- */
- fd_set rfds = gl->rfds;
- fd_set wfds = gl->wfds;
- fd_set ufds = gl->ufds;
-/*
- * Wait for activity on any of the file descriptors.
- */
- int nready = select(gl->max_fd+1, &rfds, &wfds, &ufds, NULL);
-/*
- * If select() returns but none of the file descriptors are reported
- * to have activity, then select() timed out.
- */
- if(nready == 0) {
- fprintf(stdout, "\r\nUnexpected select() timeout\r\n");
- return 1;
-/*
- * If nready < 0, this means an error occurred.
- */
- } else if(nready < 0) {
- if(errno != EINTR) {
-#ifdef EAGAIN
- if(!errno) /* This can happen with SysV O_NDELAY */
- errno = EAGAIN;
-#endif
- return 1;
- };
-/*
- * If the terminal input file descriptor has data available, return.
- */
- } else if(FD_ISSET(gl->input_fd, &rfds)) {
- return 0;
-/*
- * Check for activity on any of the file descriptors registered by the
- * calling application, and call the associated callback functions.
- */
- } else {
- GlFdNode *node; /* The fd event node being checked */
-/*
- * Search the list for the file descriptor that caused select() to return.
- */
- for(node=gl->fd_nodes; node; node=node->next) {
-/*
- * Is there urgent out of band data waiting to be read on fd?
- */
- if(node->ur.fn && FD_ISSET(node->fd, &ufds)) {
- if(gl_call_fd_handler(gl, &node->ur, node->fd, GLFD_URGENT))
- return 1;
- break; /* The callback may have changed the list of nodes */
-/*
- * Is the fd readable?
- */
- } else if(node->rd.fn && FD_ISSET(node->fd, &rfds)) {
- if(gl_call_fd_handler(gl, &node->rd, node->fd, GLFD_READ))
- return 1;
- break; /* The callback may have changed the list of nodes */
-/*
- * Is the fd writable?
- */
- } else if(node->wr.fn && FD_ISSET(node->fd, &rfds)) {
- if(gl_call_fd_handler(gl, &node->wr, node->fd, GLFD_WRITE))
- return 1;
- break; /* The callback may have changed the list of nodes */
- };
- };
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * This is a private function of gl_event_handler(), used to call a
- * file-descriptor callback.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * gfh GlFdHandler * The I/O handler.
- * fd int The file-descriptor being reported.
- * event GlFdEvent The I/O event being reported.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_call_fd_handler(GetLine *gl, GlFdHandler *gfh, int fd,
- GlFdEvent event)
-{
- Termios attr; /* The terminal attributes */
- int redisplay = 0; /* True to have the input line redisplayed */
- int waserr = 0; /* True after any error */
-/*
- * We don't want to do a longjmp in the middle of a callback that
- * might be modifying global or heap data, so block all the signals
- * that we are trapping.
- */
- if(sigprocmask(SIG_BLOCK, &gl->new_signal_set, NULL) == -1) {
- fprintf(stderr, "getline(): sigprocmask error: %s\n", strerror(errno));
- return 1;
- };
-/*
- * Re-enable conversion of newline characters to carriage-return/linefeed,
- * so that the callback can write to the terminal without having to do
- * anything special.
- */
- if(tcgetattr(gl->input_fd, &attr)) {
- fprintf(stderr, "\r\ngetline(): tcgetattr error: %s\r\n", strerror(errno));
- return 1;
- };
- attr.c_oflag |= OPOST;
- while(tcsetattr(gl->input_fd, TCSADRAIN, &attr)) {
- if (errno != EINTR) {
- fprintf(stderr, "\r\ngetline(): tcsetattr error: %s\r\n",
- strerror(errno));
- return 1;
- };
- };
-/*
- * Invoke the application's callback function.
- */
- switch(gfh->fn(gl, gfh->data, fd, event)) {
- default:
- case GLFD_ABORT:
- waserr = 1;
- break;
- case GLFD_REFRESH:
- redisplay = 1;
- break;
- case GLFD_CONTINUE:
- redisplay = gl->prompt_changed;
- break;
- };
-/*
- * Disable conversion of newline characters to carriage-return/linefeed.
- */
- attr.c_oflag &= ~(OPOST);
- while(tcsetattr(gl->input_fd, TCSADRAIN, &attr)) {
- if(errno != EINTR) {
- fprintf(stderr, "\ngetline(): tcsetattr error: %s\n", strerror(errno));
- return 1;
- };
- };
-/*
- * If requested, redisplay the input line.
- */
- if(redisplay && gl_redisplay(gl, 1))
- return 1;
-/*
- * Unblock the signals that we were trapping before this function
- * was called.
- */
- if(sigprocmask(SIG_UNBLOCK, &gl->new_signal_set, NULL) == -1) {
- fprintf(stderr, "getline(): sigprocmask error: %s\n", strerror(errno));
- return 1;
- };
- return waserr;
-}
-#endif /* HAVE_SELECT */
-
-/*.......................................................................
- * Switch history groups. History groups represent separate history
- * lists recorded within a single history buffer. Different groups
- * are distinguished by integer identifiers chosen by the calling
- * appplicaton. Initially new_GetLine() sets the group identifier to
- * 0. Whenever a new line is appended to the history list, the current
- * group identifier is recorded with it, and history lookups only
- * consider lines marked with the current group identifier.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * id unsigned The new history group identifier.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_group_history(GetLine *gl, unsigned id)
-{
-/*
- * Check the arguments.
- */
- if(!gl) {
- fprintf(stderr, "gl_group_history: NULL argument(s).\n");
- return 1;
- };
-/*
- * If the group isn't being changed, do nothing.
- */
- if(_glh_get_group(gl->glh) == id)
- return 0;
-/*
- * Establish the new group.
- */
- if(_glh_set_group(gl->glh, id))
- return 1;
-/*
- * Prevent history information from the previous group being
- * inappropriately used by the next call to gl_get_line().
- */
- gl->preload_history = 0;
- gl->last_search = -1;
- return 0;
-}
-
-/*.......................................................................
- * Display the contents of the history list.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * fp FILE * The stdio output stream to write to.
- * fmt const char * A format string. This containing characters to be
- * written verbatim, plus any of the following
- * format directives:
- * %D - The date, formatted like 2001-11-20
- * %T - The time of day, formatted like 23:59:59
- * %N - The sequential entry number of the
- * line in the history buffer.
- * %G - The number of the history group that
- * the line belongs to.
- * %% - A literal % character.
- * %H - The history line itself.
- * Note that a '\n' newline character is not
- * appended by default.
- * all_groups int If true, display history lines from all
- * history groups. Otherwise only display
- * those of the current history group.
- * max_lines int If max_lines is < 0, all available lines
- * are displayed. Otherwise only the most
- * recent max_lines lines will be displayed.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_show_history(GetLine *gl, FILE *fp, const char *fmt, int all_groups,
- int max_lines)
-{
-/*
- * Check the arguments.
- */
- if(!gl || !fp || !fmt) {
- fprintf(stderr, "gl_show_history: NULL argument(s).\n");
- return 1;
- };
- return _glh_show_history(gl->glh, fp, fmt, all_groups, max_lines);
-}
-
-/*.......................................................................
- * Update if necessary, and return the current size of the terminal.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * def_ncolumn int If the number of columns in the terminal
- * can't be determined, substitute this number.
- * def_nline int If the number of lines in the terminal can't
- * be determined, substitute this number.
- * Output:
- * return GlTerminalSize The current terminal size.
- */
-GlTerminalSize gl_terminal_size(GetLine *gl, int def_ncolumn, int def_nline)
-{
- GlTerminalSize size; /* The return value */
- const char *env; /* The value of an environment variable */
- int n; /* A number read from env[] */
-/*
- * Set the number of lines and columns to non-sensical values so that
- * we know later if they have been set.
- */
- gl->nline = 0;
- gl->ncolumn = 0;
-/*
- * Are we reading from a terminal?
- */
- if(gl->is_term) {
-/*
- * Ask the terminal directly if possible.
- */
-#ifdef USE_SIGWINCH
- (void) gl_resize_terminal(gl, 0);
-#endif
-/*
- * If gl_resize_terminal() couldn't be used, or it returned non-sensical
- * values for the number of lines, see if the LINES environment variable
- * exists and specifies a believable number. If this doesn't work,
- * look up the default size in the terminal information database,
- * where available.
- */
- if(gl->nline < 1) {
- if((env = getenv("LINES")) && (n=atoi(env)) > 0)
- gl->nline = n;
-#ifdef USE_TERMINFO
- else
- gl->nline = tigetnum((char *)"lines");
-#elif defined(USE_TERMCAP)
- else
- gl->nline = tgetnum("li");
-#endif
- };
-/*
- * If gl_resize_terminal() couldn't be used, or it returned non-sensical
- * values for the number of columns, see if the COLUMNS environment variable
- * exists and specifies a believable number. If this doesn't work, fall
- * lookup the default size in the terminal information database,
- * where available.
- */
- if(gl->ncolumn < 1) {
- if((env = getenv("COLUMNS")) && (n=atoi(env)) > 0)
- gl->ncolumn = n;
-#ifdef USE_TERMINFO
- else
- gl->ncolumn = tigetnum((char *)"cols");
-#elif defined(USE_TERMCAP)
- else
- gl->ncolumn = tgetnum("co");
-#endif
- };
- };
-/*
- * If we still haven't been able to acquire reasonable values, substitute
- * the default values specified by the caller.
- */
- if(gl->nline <= 0)
- gl->nline = def_nline;
- if(gl->ncolumn <= 0)
- gl->ncolumn = def_ncolumn;
-/*
- * Copy the new size into the return value.
- */
- size.nline = gl->nline;
- size.ncolumn = gl->ncolumn;
- return size;
-}
-
-/*.......................................................................
- * Resize or delete the history buffer.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * bufsize size_t The number of bytes in the history buffer, or 0
- * to delete the buffer completely.
- * Output:
- * return int 0 - OK.
- * 1 - Insufficient memory (the previous buffer
- * will have been retained). No error message
- * will be displayed.
- */
-int gl_resize_history(GetLine *gl, size_t bufsize)
-{
- return gl ? _glh_resize_history(gl->glh, bufsize) : 1;
-}
-
-/*.......................................................................
- * Set an upper limit to the number of lines that can be recorded in the
- * history list, or remove a previously specified limit.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * max_lines int The maximum number of lines to allow, or -1 to
- * cancel a previous limit and allow as many lines
- * as will fit in the current history buffer size.
- */
-void gl_limit_history(GetLine *gl, int max_lines)
-{
- if(gl)
- _glh_limit_history(gl->glh, max_lines);
-}
-
-/*.......................................................................
- * Discard either all historical lines, or just those associated with the
- * current history group.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * all_groups int If true, clear all of the history. If false,
- * clear only the stored lines associated with the
- * currently selected history group.
- */
-void gl_clear_history(GetLine *gl, int all_groups)
-{
- if(gl)
- _glh_clear_history(gl->glh, all_groups);
-}
-
-/*.......................................................................
- * Temporarily enable or disable the gl_get_line() history mechanism.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * enable int If true, turn on the history mechanism. If
- * false, disable it.
- */
-void gl_toggle_history(GetLine *gl, int enable)
-{
- if(gl)
- _glh_toggle_history(gl->glh, enable);
-}
-
-/*.......................................................................
- * Lookup a history line by its sequential number of entry in the
- * history buffer.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * id unsigned long The identification number of the line to
- * be returned, where 0 denotes the first line
- * that was entered in the history list, and
- * each subsequently added line has a number
- * one greater than the previous one. For
- * the range of lines currently in the list,
- * see the gl_range_of_history() function.
- * Input/Output:
- * line GlHistoryLine * A pointer to the variable in which to
- * return the details of the line.
- * Output:
- * return int 0 - The line is no longer in the history
- * list, and *line has not been changed.
- * 1 - The requested line can be found in
- * *line. Note that line->line is part
- * of the history buffer, so a
- * private copy should be made if you
- * wish to use it after subsequent calls
- * to any functions that take *gl as an
- * argument.
- */
-int gl_lookup_history(GetLine *gl, unsigned long id, GlHistoryLine *line)
-{
- return gl ? _glh_lookup_history(gl->glh, (GlhLineID) id, &line->line,
- &line->group, &line->timestamp) : 0;
-}
-
-/*.......................................................................
- * Query the state of the history list. Note that any of the input/output
- * pointers can be specified as NULL.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * Input/Output:
- * state GlHistoryState * A pointer to the variable in which to record
- * the return values.
- */
-void gl_state_of_history(GetLine *gl, GlHistoryState *state)
-{
- if(gl && state)
- _glh_state_of_history(gl->glh, &state->enabled, &state->group,
- &state->max_lines);
-}
-
-/*.......................................................................
- * Query the number and range of lines in the history buffer.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * range GlHistoryRange * A pointer to the variable in which to record
- * the return values. If range->nline=0, the
- * range of lines will be given as 0-0.
- */
-void gl_range_of_history(GetLine *gl, GlHistoryRange *range)
-{
- if(gl && range)
- _glh_range_of_history(gl->glh, &range->oldest, &range->newest,
- &range->nlines);
-}
-
-/*.......................................................................
- * Return the size of the history buffer and the amount of the
- * buffer that is currently in use.
- *
- * Input:
- * gl GetLine * The gl_get_line() resource object.
- * Input/Output:
- * GlHistorySize size * A pointer to the variable in which to return
- * the results.
- */
-void gl_size_of_history(GetLine *gl, GlHistorySize *size)
-{
- if(gl && size)
- _glh_size_of_history(gl->glh, &size->size, &size->used);
-}
-
-/*.......................................................................
- * This is the action function that lists the contents of the history
- * list.
- */
-static KT_KEY_FN(gl_list_history)
-{
-/*
- * Start a new line.
- */
- if(fprintf(gl->output_fp, "\r\n") < 0)
- return 1;
-/*
- * List history lines that belong to the current group.
- */
- _glh_show_history(gl->glh, gl->output_fp, "%N %T %H\r\n", 0,
- count<=1 ? -1 : count);
-/*
- * Redisplay the line being edited.
- */
- gl->term_curpos = 0;
- return gl_redisplay(gl,1);
-}
-
-/*.......................................................................
- * Specify whether text that users type should be displayed or hidden.
- * In the latter case, only the prompt is displayed, and the final
- * input line is not archived in the history list.
- *
- * Input:
- * gl GetLine * The gl_get_line() resource object.
- * enable int 0 - Disable echoing.
- * 1 - Enable echoing.
- * -1 - Just query the mode without changing it.
- * Output:
- * return int The echoing disposition that was in effect
- * before this function was called:
- * 0 - Echoing was disabled.
- * 1 - Echoing was enabled.
- */
-int gl_echo_mode(GetLine *gl, int enable)
-{
- if(gl) {
- int was_echoing = gl->echo;
- if(enable >= 0)
- gl->echo = enable;
- return was_echoing;
- };
- return 1;
-}
-
-/*.......................................................................
- * Display the prompt.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_display_prompt(GetLine *gl)
-{
- const char *pptr; /* A pointer into gl->prompt[] */
- unsigned old_attr=0; /* The current text display attributes */
- unsigned new_attr=0; /* The requested text display attributes */
-/*
- * Temporarily switch to echoing output characters.
- */
- int kept_echo = gl->echo;
- gl->echo = 1;
-/*
- * In case the screen got messed up, send a carriage return to
- * put the cursor at the beginning of the current terminal line.
- */
- if(gl_output_control_sequence(gl, 1, gl->bol))
- return 1;
-/*
- * Write the prompt, using the currently selected prompt style.
- */
- switch(gl->prompt_style) {
- case GL_LITERAL_PROMPT:
- if(gl_output_string(gl, gl->prompt, '\0'))
- return 1;
- break;
- case GL_FORMAT_PROMPT:
- for(pptr=gl->prompt; *pptr; pptr++) {
-/*
- * Does the latest character appear to be the start of a directive?
- */
- if(*pptr == '%') {
-/*
- * Check for and act on attribute changing directives.
- */
- switch(pptr[1]) {
-/*
- * Add or remove a text attribute from the new set of attributes.
- */
- case 'B': case 'U': case 'S': case 'P': case 'F': case 'V':
- case 'b': case 'u': case 's': case 'p': case 'f': case 'v':
- switch(*++pptr) {
- case 'B': /* Switch to a bold font */
- new_attr |= GL_TXT_BOLD;
- break;
- case 'b': /* Switch to a non-bold font */
- new_attr &= ~GL_TXT_BOLD;
- break;
- case 'U': /* Start underlining */
- new_attr |= GL_TXT_UNDERLINE;
- break;
- case 'u': /* Stop underlining */
- new_attr &= ~GL_TXT_UNDERLINE;
- break;
- case 'S': /* Start highlighting */
- new_attr |= GL_TXT_STANDOUT;
- break;
- case 's': /* Stop highlighting */
- new_attr &= ~GL_TXT_STANDOUT;
- break;
- case 'P': /* Switch to a pale font */
- new_attr |= GL_TXT_DIM;
- break;
- case 'p': /* Switch to a non-pale font */
- new_attr &= ~GL_TXT_DIM;
- break;
- case 'F': /* Switch to a flashing font */
- new_attr |= GL_TXT_BLINK;
- break;
- case 'f': /* Switch to a steady font */
- new_attr &= ~GL_TXT_BLINK;
- break;
- case 'V': /* Switch to reverse video */
- new_attr |= GL_TXT_REVERSE;
- break;
- case 'v': /* Switch out of reverse video */
- new_attr &= ~GL_TXT_REVERSE;
- break;
- };
- continue;
-/*
- * A literal % is represented by %%. Skip the leading %.
- */
- case '%':
- pptr++;
- break;
- };
- };
-/*
- * Many terminals, when asked to turn off a single text attribute, turn
- * them all off, so the portable way to turn one off individually is to
- * explicitly turn them all off, then specify those that we want from
- * scratch.
- */
- if(old_attr & ~new_attr) {
- if(gl_output_control_sequence(gl, 1, gl->text_attr_off))
- return 1;
- old_attr = 0;
- };
-/*
- * Install new text attributes?
- */
- if(new_attr != old_attr) {
- if(new_attr & GL_TXT_BOLD && !(old_attr & GL_TXT_BOLD) &&
- gl_output_control_sequence(gl, 1, gl->bold))
- return 1;
- if(new_attr & GL_TXT_UNDERLINE && !(old_attr & GL_TXT_UNDERLINE) &&
- gl_output_control_sequence(gl, 1, gl->underline))
- return 1;
- if(new_attr & GL_TXT_STANDOUT && !(old_attr & GL_TXT_STANDOUT) &&
- gl_output_control_sequence(gl, 1, gl->standout))
- return 1;
- if(new_attr & GL_TXT_DIM && !(old_attr & GL_TXT_DIM) &&
- gl_output_control_sequence(gl, 1, gl->dim))
- return 1;
- if(new_attr & GL_TXT_REVERSE && !(old_attr & GL_TXT_REVERSE) &&
- gl_output_control_sequence(gl, 1, gl->reverse))
- return 1;
- if(new_attr & GL_TXT_BLINK && !(old_attr & GL_TXT_BLINK) &&
- gl_output_control_sequence(gl, 1, gl->blink))
- return 1;
- old_attr = new_attr;
- };
-/*
- * Display the latest character.
- */
- if(gl_output_char(gl, *pptr, pptr[1]))
- return 1;
- };
-/*
- * Turn off all text attributes now that we have finished drawing
- * the prompt.
- */
- if(gl_output_control_sequence(gl, 1, gl->text_attr_off))
- return 1;
- break;
- };
-/*
- * Restore the original echo mode.
- */
- gl->echo = kept_echo;
-/*
- * The prompt has now been displayed at least once.
- */
- gl->prompt_changed = 0;
- return 0;
-}
-
-/*.......................................................................
- * This function can be called from gl_get_line() callbacks to have
- * the prompt changed when they return. It has no effect if gl_get_line()
- * is not currently being invoked.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * prompt const char * The new prompt.
- */
-void gl_replace_prompt(GetLine *gl, const char *prompt)
-{
- if(gl) {
- gl->prompt = prompt ? prompt : "";
- gl->prompt_len = gl_displayed_prompt_width(gl);
- gl->prompt_changed = 1;
- };
-}
-
-/*.......................................................................
- * Work out the length of the current prompt on the terminal, according
- * to the current prompt formatting style.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * Output:
- * return int The number of displayed characters.
- */
-static int gl_displayed_prompt_width(GetLine *gl)
-{
- int slen=0; /* The displayed number of characters */
- const char *pptr; /* A pointer into prompt[] */
-/*
- * The length differs according to the prompt display style.
- */
- switch(gl->prompt_style) {
- case GL_LITERAL_PROMPT:
- return gl_displayed_string_width(gl, gl->prompt, -1, 0);
- break;
- case GL_FORMAT_PROMPT:
-/*
- * Add up the length of the displayed string, while filtering out
- * attribute directives.
- */
- for(pptr=gl->prompt; *pptr; pptr++) {
-/*
- * Does the latest character appear to be the start of a directive?
- */
- if(*pptr == '%') {
-/*
- * Check for and skip attribute changing directives.
- */
- switch(pptr[1]) {
- case 'B': case 'b': case 'U': case 'u': case 'S': case 's':
- pptr++;
- continue;
-/*
- * A literal % is represented by %%. Skip the leading %.
- */
- case '%':
- pptr++;
- break;
- };
- };
- slen += gl_displayed_char_width(gl, *pptr, slen);
- };
- break;
- };
- return slen;
-}
-
-/*.......................................................................
- * Specify whether to heed text attribute directives within prompt
- * strings.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * style GlPromptStyle The style of prompt (see the definition of
- * GlPromptStyle in libtecla.h for details).
- */
-void gl_prompt_style(GetLine *gl, GlPromptStyle style)
-{
- if(gl) {
- if(style != gl->prompt_style) {
- gl->prompt_style = style;
- gl->prompt_len = gl_displayed_prompt_width(gl);
- gl->prompt_changed = 1;
- };
- };
-}
-
-/*.......................................................................
- * Tell gl_get_line() how to respond to a given signal. This can be used
- * both to override the default responses to signals that gl_get_line()
- * normally catches and to add new signals to the list that are to be
- * caught.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * signo int The number of the signal to be caught.
- * flags unsigned A bitwise union of GlSignalFlags enumerators.
- * after GlAfterSignal What to do after the application's signal
- * handler has been called.
- * errno_value int The value to set errno to.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_trap_signal(GetLine *gl, int signo, unsigned flags,
- GlAfterSignal after, int errno_value)
-{
- GlSignalNode *sig;
-/*
- * Check the arguments.
- */
- if(!gl) {
- fprintf(stderr, "gl_trap_signal: NULL argument(s).\n");
- return 1;
- };
-/*
- * See if the signal has already been registered.
- */
- for(sig=gl->sigs; sig && sig->signo != signo; sig = sig->next)
- ;
-/*
- * If the signal hasn't already been registered, allocate a node for
- * it.
- */
- if(!sig) {
- sig = (GlSignalNode *) _new_FreeListNode(gl->sig_mem);
- if(!sig)
- return 1;
-/*
- * Add the new node to the head of the list.
- */
- sig->next = gl->sigs;
- gl->sigs = sig;
-/*
- * Record the signal number.
- */
- sig->signo = signo;
-/*
- * Create a signal set that includes just this signal.
- */
- sigemptyset(&sig->proc_mask);
- if(sigaddset(&sig->proc_mask, signo) == -1) {
- fprintf(stderr, "gl_trap_signal: sigaddset error: %s\n",
- strerror(errno));
- sig = (GlSignalNode *) _del_FreeListNode(gl->sig_mem, sig);
- return 1;
- };
- };
-/*
- * Record the new signal attributes.
- */
- sig->flags = flags;
- sig->after = after;
- sig->errno_value = errno_value;
- return 0;
-}
-
-/*.......................................................................
- * Remove a signal from the list of signals that gl_get_line() traps.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * signo int The number of the signal to be ignored.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_ignore_signal(GetLine *gl, int signo)
-{
- GlSignalNode *sig; /* The gl->sigs list node of the specified signal */
- GlSignalNode *prev; /* The node that precedes sig in the list */
-/*
- * Check the arguments.
- */
- if(!gl) {
- fprintf(stderr, "gl_ignore_signal: NULL argument(s).\n");
- return 1;
- };
-/*
- * Find the node of the gl->sigs list which records the disposition
- * of the specified signal.
- */
- for(prev=NULL,sig=gl->sigs; sig && sig->signo != signo;
- prev=sig,sig=sig->next)
- ;
- if(sig) {
-/*
- * Remove the node from the list.
- */
- if(prev)
- prev->next = sig->next;
- else
- gl->sigs = sig->next;
-/*
- * Return the node to the freelist.
- */
- sig = (GlSignalNode *) _del_FreeListNode(gl->sig_mem, sig);
- };
- return 0;
-}
-
-/*.......................................................................
- * This function is called when an input line has been completed. It
- * appends the specified newline character, terminates the line,
- * records the line in the history buffer if appropriate, and positions
- * the terminal cursor at the start of the next line.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * newline_char int The newline character to add to the end
- * of the line.
- * archive int True to have the line archived in the
- * history buffer.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int gl_line_ended(GetLine *gl, int newline_char, int archive)
-{
-/*
- * If the newline character is printable, display it.
- */
- if(isprint((int)(unsigned char) newline_char)) {
- if(gl_end_of_line(gl, 1) || gl_add_char_to_line(gl, newline_char))
- return 1;
- } else {
-/*
- * Otherwise just append it to the input line buffer.
- */
- gl->line[gl->ntotal++] = newline_char;
- gl->line[gl->ntotal] = '\0';
- };
-/*
- * Add the line to the history buffer if it was entered with a
- * newline or carriage return character.
- */
- if(archive)
- (void) _glh_add_history(gl->glh, gl->line, 0);
-/*
- * Unless depending on the system-provided line editing, start a new
- * line after the end of the line that has just been entered.
- */
- if(gl->editor != GL_NO_EDITOR) {
- if(gl_end_of_line(gl, 1) ||
- gl_output_raw_string(gl, "\r\n"))
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Return the last signal that was caught by the most recent call to
- * gl_get_line(), or -1 if no signals were caught. This is useful if
- * gl_get_line() returns errno=EINTR and you need to find out what signal
- * caused it to abort.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * Output:
- * return int The last signal caught by the most recent
- * call to gl_get_line(), or -1 if no signals
- * were caught.
- */
-int gl_last_signal(const GetLine *gl)
-{
- return gl ? gl->last_signal : -1;
-}
diff --git a/libtecla-1.4.1/getline.h b/libtecla-1.4.1/getline.h
deleted file mode 100644
index 24b0875..0000000
--- a/libtecla-1.4.1/getline.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef getline_h
-#define getline_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * Set the name of the getline configuration file.
- */
-#define TECLA_CONFIG_FILE "~/.teclarc"
-
-/*
- * The following macro returns non-zero if a character is
- * a control character.
- */
-#define IS_CTRL_CHAR(c) ((unsigned char)(c) < ' ' || (unsigned char)(c)=='\177')
-
-/*
- * The following macro returns non-zero if a character is
- * a meta character.
- */
-#define IS_META_CHAR(c) (((unsigned char)(c) & 0x80) && !isprint((int)(unsigned char)(c)))
-
-/*
- * Return the character that would be produced by pressing the
- * specified key plus the control key.
- */
-#define MAKE_CTRL(c) ((c)=='?' ? '\177' : ((unsigned char)toupper(c) & ~0x40))
-
-/*
- * Return the character that would be produced by pressing the
- * specified key plus the meta key.
- */
-#define MAKE_META(c) ((unsigned char)(c) | 0x80)
-
-/*
- * Given a binary control character, return the character that
- * had to be pressed at the same time as the control key.
- */
-#define CTRL_TO_CHAR(c) (toupper((unsigned char)(c) | 0x40))
-
-/*
- * Given a meta character, return the character that was pressed
- * at the same time as the meta key.
- */
-#define META_TO_CHAR(c) ((unsigned char)(c) & ~0x80)
-
-/*
- * Specify the string of characters other than the alphanumeric characters,
- * that are to be considered parts of words.
- */
-#define GL_WORD_CHARS "_*\?\\[]"
-
-/*
- * Define the escape character, both as a string and as a character.
- */
-#define GL_ESC_STR "\033"
-#define GL_ESC_CHAR '\033'
-
-#endif
diff --git a/libtecla-1.4.1/hash.c b/libtecla-1.4.1/hash.c
deleted file mode 100644
index 89f8245..0000000
--- a/libtecla-1.4.1/hash.c
+++ /dev/null
@@ -1,748 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "hash.h"
-#include "strngmem.h"
-#include "freelist.h"
-
-/*
- * The following container object contains free-lists to be used
- * for allocation of HashTable containers and nodes.
- */
-struct HashMemory {
- FreeList *hash_memory; /* HashTable free-list */
- FreeList *node_memory; /* HashNode free-list */
- StringMem *string_memory; /* Memory used to allocate hash strings */
-};
-
-/*
- * Define a hash symbol-table entry.
- * See symbol.h for the definition of the Symbol container type.
- */
-typedef struct HashNode HashNode;
-struct HashNode {
- Symbol symbol; /* The symbol stored in the hash-entry */
- HashNode *next; /* The next hash-table entry in a bucket list */
-};
-
-/*
- * Each hash-table bucket contains a linked list of entries that
- * hash to the same bucket.
- */
-typedef struct {
- HashNode *head; /* The head of the bucket hash-node list */
- int count; /* The number of entries in the list */
-} HashBucket;
-
-/*
- * Set the max length of the error-reporting string. There is no point
- * in this being longer than the width of a typical terminal window.
- * In composing error messages, I have assumed that this number is
- * at least 80, so you don't decrease it below this number.
- */
-#define ERRLEN 200
-
-/*
- * A hash-table consists of 'size' hash buckets.
- * Note that the HashTable typedef for this struct is contained in hash.h.
- */
-struct HashTable {
- char errmsg[ERRLEN+1];/* Error-report buffer */
- HashMemory *mem; /* HashTable free-list */
- int internal_mem; /* True if 'mem' was allocated by _new_HashTable() */
- int case_sensitive; /* True if case is significant in lookup keys */
- int size; /* The number of hash buckets */
- HashBucket *bucket; /* An array of 'size' hash buckets */
- int (*keycmp)(const char *, const char *); /* Key comparison function */
- void *app_data; /* Application-provided data */
- HASH_DEL_FN(*del_fn); /* Application-provided 'app_data' destructor */
-};
-
-static HashNode *_del_HashNode(HashTable *hash, HashNode *node);
-static HashNode *_new_HashNode(HashTable *hash, const char *name, int code,
- void (*fn)(void), void *data, SYM_DEL_FN(*del_fn));
-static HashNode *_find_HashNode(HashTable *hash, HashBucket *bucket,
- const char *name, HashNode **prev);
-static HashBucket *_find_HashBucket(HashTable *hash, const char *name);
-static int _ht_lower_strcmp(const char *node_key, const char *look_key);
-static int _ht_strcmp(const char *node_key, const char *look_key);
-
-/*.......................................................................
- * Allocate a free-list for use in allocating hash tables and their nodes.
- *
- * Input:
- * list_count int The number of HashTable containers per free-list
- * block.
- * node_count int The number of HashTable nodes per free-list block.
- * Output:
- * return HashMemory * The new free-list for use in allocating hash tables
- * and their nodes.
- */
-HashMemory *_new_HashMemory(int hash_count, int node_count)
-{
- HashMemory *mem;
-/*
- * Allocate the free-list container.
- */
- mem = (HashMemory *) malloc(sizeof(HashMemory));
- if(!mem) {
- fprintf(stderr, "_new_HashMemory: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Initialize the container at least up to the point at which it can
- * safely be passed to _del_HashMemory().
- */
- mem->hash_memory = NULL;
- mem->node_memory = NULL;
- mem->string_memory = NULL;
-/*
- * Allocate the two free-lists.
- */
- mem->hash_memory = _new_FreeList("_new_HashMemory", sizeof(HashTable),
- hash_count);
- if(!mem->hash_memory)
- return _del_HashMemory(mem, 1);
- mem->node_memory = _new_FreeList("_new_HashMemory", sizeof(HashNode),
- node_count);
- if(!mem->node_memory)
- return _del_HashMemory(mem, 1);
- mem->string_memory = _new_StringMem("_new_HashMemory", 64);
- if(!mem->string_memory)
- return _del_HashMemory(mem, 1);
-/*
- * Return the free-list container.
- */
- return mem;
-}
-
-/*.......................................................................
- * Delete a HashTable free-list. An error will be displayed if the list is
- * still in use and the deletion will be aborted.
- *
- * Input:
- * mem HashMemory * The free-list container to be deleted.
- * force int If force==0 then _del_HashMemory() will complain
- * and refuse to delete the free-list if any
- * of nodes have not been returned to the free-list.
- * If force!=0 then _del_HashMemory() will not check
- * whether any nodes are still in use and will
- * always delete the list.
- * Output:
- * return HashMemory * Always NULL (even if the memory could not be
- * deleted).
- */
-HashMemory *_del_HashMemory(HashMemory *mem, int force)
-{
- const char *caller = "_del_HashMemory";
- if(mem) {
- if(!force && (_busy_FreeListNodes(mem->hash_memory) > 0 ||
- _busy_FreeListNodes(mem->node_memory) > 0)) {
- fprintf(stderr, "%s: Free-list in use.\n", caller);
- return NULL;
- };
- mem->hash_memory = _del_FreeList(caller, mem->hash_memory, force);
- mem->node_memory = _del_FreeList(caller, mem->node_memory, force);
- mem->string_memory = _del_StringMem(caller, mem->string_memory, force);
- free(mem);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Create a new hash table.
- *
- * Input:
- * mem HashMemory * An optional free-list for use in allocating
- * HashTable containers and nodes. See explanation
- * in hash.h. If you are going to allocate more
- * than one hash table, then it will be more
- * efficient to allocate a single free-list for
- * all of them than to force each hash table
- * to allocate its own private free-list.
- * size int The size of the hash table. Best performance
- * will be acheived if this is a prime number.
- * hcase HashCase Specify how symbol case is considered when
- * looking up symbols, from:
- * IGNORE_CASE - Upper and lower case versions
- * of a letter are treated as
- * being identical.
- * HONOUR_CASE - Upper and lower case versions
- * of a letter are treated as
- * being distinct.
- * characters in a lookup name is significant.
- * app_data void * Optional application data to be registered
- * to the table. This is presented to user
- * provided SYM_DEL_FN() symbol destructors along
- * with the symbol data.
- * del_fn() HASH_DEL_FN(*) If you want app_data to be free'd when the
- * hash-table is destroyed, register a suitable
- * destructor function here.
- * Output:
- * return HashTable * The new hash table, or NULL on error.
- */
-HashTable *_new_HashTable(HashMemory *mem, int size, HashCase hcase,
- void *app_data, HASH_DEL_FN(*del_fn))
-{
- HashTable *hash; /* The table to be returned */
- int allocate_mem = !mem; /* True if mem should be internally allocated */
- int i;
-/*
- * Check arguments.
- */
- if(size <= 0) {
- fprintf(stderr, "_new_HashTable: Illegal table size (%d).\n", size);
- return NULL;
- };
-/*
- * Allocate an internal free-list?
- */
- if(allocate_mem) {
- mem = _new_HashMemory(1, 100);
- if(!mem)
- return NULL;
- };
-/*
- * Allocate the container.
- */
- hash = (HashTable *) _new_FreeListNode(mem->hash_memory);
- if(!hash) {
- fprintf(stderr, "_new_HashTable: Insufficient memory.\n");
- if(allocate_mem)
- mem = _del_HashMemory(mem, 1);
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize
- * the container at least up to the point at which it can safely
- * be passed to _del_HashTable().
- */
- hash->errmsg[0] = '\0';
- hash->mem = mem;
- hash->internal_mem = allocate_mem;
- hash->case_sensitive = hcase==HONOUR_CASE;
- hash->size = size;
- hash->bucket = NULL;
- hash->keycmp = hash->case_sensitive ? _ht_strcmp : _ht_lower_strcmp;
- hash->app_data = app_data;
- hash->del_fn = del_fn;
-/*
- * Allocate the array of 'size' hash buckets.
- */
- hash->bucket = (HashBucket *) malloc(sizeof(HashBucket) * size);
- if(!hash->bucket) {
- fprintf(stderr, "_new_HashTable: Insufficient memory for %d buckets.\n",
- size);
- return _del_HashTable(hash);
- };
-/*
- * Initialize the bucket array.
- */
- for(i=0; i<size; i++) {
- HashBucket *b = hash->bucket + i;
- b->head = NULL;
- b->count = 0;
- };
-/*
- * The table is ready for use - albeit currently empty.
- */
- return hash;
-}
-
-/*.......................................................................
- * Delete a hash-table.
- *
- * Input:
- * hash HashTable * The hash table to be deleted.
- * Output:
- * return HashTable * The deleted hash table (always NULL).
- */
-HashTable *_del_HashTable(HashTable *hash)
-{
- if(hash) {
-/*
- * Clear and delete the bucket array.
- */
- if(hash->bucket) {
- _clear_HashTable(hash);
- free(hash->bucket);
- hash->bucket = NULL;
- };
-/*
- * Delete application data.
- */
- if(hash->del_fn)
- hash->del_fn(hash->app_data);
-/*
- * If the hash table was allocated from an internal free-list, delete
- * it and the hash table by deleting the free-list. Otherwise just
- * return the hash-table to the external free-list.
- */
- if(hash->internal_mem)
- _del_HashMemory(hash->mem, 1);
- else
- hash = (HashTable *) _del_FreeListNode(hash->mem->hash_memory, hash);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Create and install a new entry in a hash table. If an entry with the
- * same name already exists, replace its contents with the new data.
- *
- * Input:
- * hash HashTable * The hash table to insert the symbol into.
- * name const char * The name to tag the entry with.
- * code int An application-specific code to be stored in
- * the entry.
- * fn void (*)(void) An application-specific function to be stored
- * in the entry.
- * data void * An application-specific pointer to data to be
- * associated with the entry, or NULL if not
- * relevant.
- * del_fn SYM_DEL_FN(*) An optional destructor function. When the
- * symbol is deleted this function will be called
- * with the 'code' and 'data' arguments given
- * above. Any application data that was registered
- * to the table via the app_data argument of
- * _new_HashTable() will also be passed.
- * Output:
- * return HashNode * The new entry, or NULL if there was insufficient
- * memory or the arguments were invalid.
- */
-Symbol *_new_HashSymbol(HashTable *hash, const char *name, int code,
- void (*fn)(void), void *data, SYM_DEL_FN(*del_fn))
-{
- HashBucket *bucket; /* The hash-bucket associated with the name */
- HashNode *node; /* The new node */
-/*
- * Check arguments.
- */
- if(!hash || !name)
- return NULL;
-/*
- * Get the hash bucket of the specified name.
- */
- bucket = _find_HashBucket(hash, name);
-/*
- * See if a node with the same name already exists.
- */
- node = _find_HashNode(hash, bucket, name, NULL);
-/*
- * If found, delete its contents by calling the user-supplied
- * destructor function, if provided.
- */
- if(node) {
- if(node->symbol.data && node->symbol.del_fn) {
- node->symbol.data = node->symbol.del_fn(hash->app_data, node->symbol.code,
- node->symbol.data);
- };
-/*
- * Allocate a new node if necessary.
- */
- } else {
- node = _new_HashNode(hash, name, code, fn, data, del_fn);
- if(!node)
- return NULL;
- };
-/*
- * Install the node at the head of the hash-bucket list.
- */
- node->next = bucket->head;
- bucket->head = node;
- bucket->count++;
- return &node->symbol;
-}
-
-/*.......................................................................
- * Remove and delete a given hash-table entry.
- *
- * Input:
- * hash HashTable * The hash table to find the symbol in.
- * name const char * The name of the entry.
- * Output:
- * return HashNode * The deleted hash node (always NULL).
- */
-Symbol *_del_HashSymbol(HashTable *hash, const char *name)
-{
- if(hash && name) {
- HashBucket *bucket = _find_HashBucket(hash, name);
- HashNode *prev; /* The node preceding the located node */
- HashNode *node = _find_HashNode(hash, bucket, name, &prev);
-/*
- * Node found?
- */
- if(node) {
-/*
- * Remove the node from the bucket list.
- */
- if(prev) {
- prev->next = node->next;
- } else {
- bucket->head = node->next;
- };
-/*
- * Record the loss of a node.
- */
- bucket->count--;
-/*
- * Delete the node.
- */
- (void) _del_HashNode(hash, node);
- };
- };
- return NULL;
-}
-
-/*.......................................................................
- * Look up a symbol in the hash table.
- *
- * Input:
- * hash HashTable * The table to look up the string in.
- * name const char * The name of the symbol to look up.
- * Output:
- * return Symbol * The located hash-table symbol, or NULL if not
- * found.
- */
-Symbol *_find_HashSymbol(HashTable *hash, const char *name)
-{
- HashBucket *bucket; /* The hash-table bucket associated with name[] */
- HashNode *node; /* The hash-table node of the requested symbol */
-/*
- * Check arguments.
- */
- if(!hash)
- return NULL;
-/*
- * Nothing to lookup?
- */
- if(!name)
- return NULL;
-/*
- * Hash the name to a hash-table bucket.
- */
- bucket = _find_HashBucket(hash, name);
-/*
- * Find the bucket entry that exactly matches the name.
- */
- node = _find_HashNode(hash, bucket, name, NULL);
- if(!node)
- return NULL;
- return &node->symbol;
-}
-
-/*.......................................................................
- * Private function used to allocate a hash-table node.
- * The caller is responsible for checking that the specified symbol
- * is unique and for installing the returned entry in the table.
- *
- * Input:
- * hash HashTable * The table to allocate the node for.
- * name const char * The name of the new entry.
- * code int A user-supplied context code.
- * fn void (*)(void) A user-supplied function pointer.
- * data void * A user-supplied data pointer.
- * del_fn SYM_DEL_FN(*) An optional 'data' destructor function.
- * Output:
- * return HashNode * The new node, or NULL on error.
- */
-static HashNode *_new_HashNode(HashTable *hash, const char *name, int code,
- void (*fn)(void), void *data, SYM_DEL_FN(*del_fn))
-{
- HashNode *node; /* The new node */
-/*
- * Allocate the new node from the free list.
- */
- node = (HashNode *) _new_FreeListNode(hash->mem->node_memory);
- if(!node)
- return NULL;
-/*
- * Before attempting any operation that might fail, initialize the
- * contents of 'node' at least up to the point at which it can be
- * safely passed to _del_HashNode().
- */
- node->symbol.name = NULL;
- node->symbol.code = code;
- node->symbol.fn = fn;
- node->symbol.data = data;
- node->symbol.del_fn = del_fn;
- node->next = NULL;
-/*
- * Allocate a copy of 'name'.
- */
- node->symbol.name = _new_StringMemString(hash->mem->string_memory,
- strlen(name) + 1);
- if(!node->symbol.name)
- return _del_HashNode(hash, node);
-/*
- * If character-case is insignificant in the current table, convert the
- * name to lower case while copying it.
- */
- if(hash->case_sensitive) {
- strcpy(node->symbol.name, name);
- } else {
- const char *src = name;
- char *dst = node->symbol.name;
- for( ; *src; src++,dst++)
- *dst = tolower(*src);
- *dst = '\0';
- };
- return node;
-}
-
-/*.......................................................................
- * Private function used to delete a hash-table node.
- * The node must have been removed from its list before calling this
- * function.
- *
- * Input:
- * hash HashTable * The table for which the node was originally
- * allocated.
- * node HashNode * The node to be deleted.
- * Output:
- * return HashNode * The deleted node (always NULL).
- */
-static HashNode *_del_HashNode(HashTable *hash, HashNode *node)
-{
- if(node) {
- node->symbol.name = _del_StringMemString(hash->mem->string_memory,
- node->symbol.name);
-/*
- * Call the user-supplied data-destructor if provided.
- */
- if(node->symbol.data && node->symbol.del_fn)
- node->symbol.data = node->symbol.del_fn(hash->app_data,
- node->symbol.code,
- node->symbol.data);
-/*
- * Return the node to the free-list.
- */
- node->next = NULL;
- node = (HashNode *) _del_FreeListNode(hash->mem->node_memory, node);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Private function to locate the hash bucket associated with a given
- * name.
- *
- * This uses a hash-function described in the dragon-book
- * ("Compilers - Principles, Techniques and Tools", by Aho, Sethi and
- * Ullman; pub. Adison Wesley) page 435.
- *
- * Input:
- * hash HashTable * The table to look up the string in.
- * name const char * The name of the symbol to look up.
- * Output:
- * return HashBucket * The located hash-bucket.
- */
-static HashBucket *_find_HashBucket(HashTable *hash, const char *name)
-{
- unsigned const char *kp;
- unsigned long h = 0L;
- if(hash->case_sensitive) {
- for(kp=(unsigned const char *) name; *kp; kp++)
- h = 65599UL * h + *kp; /* 65599 is a prime close to 2^16 */
- } else {
- for(kp=(unsigned const char *) name; *kp; kp++)
- h = 65599UL * h + tolower((int)*kp); /* 65599 is a prime close to 2^16 */
- };
- return hash->bucket + (h % hash->size);
-}
-
-/*.......................................................................
- * Search for a given name in the entries of a given bucket.
- *
- * Input:
- * hash HashTable * The hash-table being searched.
- * bucket HashBucket * The bucket to search (use _find_HashBucket()).
- * name const char * The name to search for.
- * Output:
- * prev HashNode ** If prev!=NULL then the pointer to the node
- * preceding the located node in the list will
- * be recorded in *prev. This will be NULL either
- * if the name is not found or the located node is
- * at the head of the list of entries.
- * return HashNode * The located hash-table node, or NULL if not
- * found.
- */
-static HashNode *_find_HashNode(HashTable *hash, HashBucket *bucket,
- const char *name, HashNode **prev)
-{
- HashNode *last; /* The previously searched node */
- HashNode *node; /* The node that is being searched */
-/*
- * Search the list for a node containing the specified name.
- */
- for(last=NULL, node=bucket->head;
- node && hash->keycmp(node->symbol.name, name)!=0;
- last = node, node=node->next)
- ;
- if(prev)
- *prev = node ? last : NULL;
- return node;
-}
-
-/*.......................................................................
- * When hash->case_sensitive is zero this function is called
- * in place of strcmp(). In such cases the hash-table names are stored
- * as lower-case versions of the original strings so this function
- * performs the comparison against lower-case copies of the characters
- * of the string being compared.
- *
- * Input:
- * node_key const char * The lower-case hash-node key being compared
- * against.
- * look_key const char * The lookup key.
- * Output:
- * return int <0 if node_key < look_key.
- * 0 if node_key == look_key.
- * >0 if node_key > look_key.
- */
-static int _ht_lower_strcmp(const char *node_key, const char *look_key)
-{
- int cn; /* The latest character from node_key[] */
- int cl; /* The latest character from look_key[] */
- do {
- cn = *node_key++;
- cl = *look_key++;
- } while(cn && cn==tolower(cl));
- return cn - tolower(cl);
-}
-
-/*.......................................................................
- * This is a wrapper around strcmp for comparing hash-keys in a case
- * sensitive manner. The reason for having this wrapper, instead of using
- * strcmp() directly, is to make some C++ compilers happy. The problem
- * is that when the library is compiled with a C++ compiler, the
- * declaration of the comparison function is a C++ declaration, whereas
- * strcmp() is a pure C function and thus although it appears to have the
- * same declaration, the compiler disagrees.
- *
- * Input:
- * node_key char * The lower-case hash-node key being compared against.
- * look_key char * The lookup key.
- * Output:
- * return int <0 if node_key < look_key.
- * 0 if node_key == look_key.
- * >0 if node_key > look_key.
- */
-static int _ht_strcmp(const char *node_key, const char *look_key)
-{
- return strcmp(node_key, look_key);
-}
-
-/*.......................................................................
- * Empty a hash-table by deleting all of its entries.
- *
- * Input:
- * hash HashTable * The hash table to clear.
- * Output:
- * return int 0 - OK.
- * 1 - Invalid arguments.
- */
-int _clear_HashTable(HashTable *hash)
-{
- int i;
-/*
- * Check the arguments.
- */
- if(!hash)
- return 1;
-/*
- * Clear the contents of the bucket array.
- */
- for(i=0; i<hash->size; i++) {
- HashBucket *bucket = hash->bucket + i;
-/*
- * Delete the list of active hash nodes from the bucket.
- */
- HashNode *node = bucket->head;
- while(node) {
- HashNode *next = node->next;
- (void) _del_HashNode(hash, node);
- node = next;
- };
-/*
- * Mark the bucket as empty.
- */
- bucket->head = NULL;
- bucket->count = 0;
- };
- return 0;
-}
-
-/*.......................................................................
- * Execute a given function on each entry of a hash table, returning
- * before completion if the the specified function returns non-zero.
- *
- * Input:
- * hash HashTable * The table to traverse.
- * scan_fn HASH_SCAN_FN(*) The function to call.
- * context void * Optional caller-specific context data
- * to be passed to scan_fn().
- * Output:
- * return int 0 - OK.
- * 1 - Either the arguments were invalid, or
- * scan_fn() returned non-zero at some
- * point.
- */
-int _scan_HashTable(HashTable *hash, HASH_SCAN_FN(*scan_fn), void *context)
-{
- int i;
-/*
- * Check the arguments.
- */
- if(!hash || !scan_fn)
- return 1;
-/*
- * Iterate through the buckets of the table.
- */
- for(i=0; i<hash->size; i++) {
- HashBucket *bucket = hash->bucket + i;
- HashNode *node;
-/*
- * Iterate through the list of symbols that fall into bucket i,
- * passing each one to the caller-specified function.
- */
- for(node=bucket->head; node; node=node->next) {
- if(scan_fn(&node->symbol, context))
- return 1;
- };
- };
- return 0;
-}
diff --git a/libtecla-1.4.1/hash.h b/libtecla-1.4.1/hash.h
deleted file mode 100644
index 13c0a2b..0000000
--- a/libtecla-1.4.1/hash.h
+++ /dev/null
@@ -1,157 +0,0 @@
-#ifndef hash_h
-#define hash_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * The following macro can be used to prototype or define a
- * function that deletes the data of a symbol-table entry.
- *
- * Input:
- * app_data void * The _new_HashTable() app_data argument.
- * code int The Symbol::code argument.
- * sym_data void * The Symbol::data argument to be deleted.
- * Output:
- * return void * The deleted data (always return NULL).
- */
-#define SYM_DEL_FN(fn) void *(fn)(void *app_data, int code, void *sym_data)
-
-/*
- * The following macro can be used to prototype or define a
- * function that deletes the application-data of a hash-table.
- *
- * Input:
- * data void * The _new_HashTable() 'app_data' argument to be
- * deleted.
- * Output:
- * return void * The deleted data (always return NULL).
- */
-#define HASH_DEL_FN(fn) void *(fn)(void *app_data)
-
-/*
- * The following is a container for recording the context
- * of a symbol in a manner that is independant of the particular
- * symbol-table implementation. Each hash-table entry contains
- * the following user supplied parameters:
- *
- * 1. An optional integral parameter 'code'. This is useful for
- * enumerating a symbol or for describing what type of data
- * or function is stored in the symbol.
- *
- * 2. An optional generic function pointer. This is useful for
- * associating functions with names. The user is responsible
- * for casting between the generic function type and the
- * actual function type. The code field could be used to
- * enumerate what type of function to cast to.
- *
- * 3. An optional generic pointer to a static or heap-allocated
- * object. It is up to the user to cast this back to the
- * appropriate object type. Again, the code field could be used
- * to describe what type of object is stored there.
- * If the object is dynamically allocated and should be discarded
- * when the symbol is deleted from the symbol table, send a
- * destructor function to have it deleted automatically.
- */
-typedef struct {
- char *name; /* The name of the symbol */
- int code; /* Application supplied integral code */
- void (*fn)(void); /* Application supplied generic function */
- void *data; /* Application supplied context data */
- SYM_DEL_FN(*del_fn); /* Data destructor function */
-} Symbol;
-
-/*
- * HashNode's and HashTable's are small objects. Separately allocating
- * many such objects would normally cause memory fragmentation. To
- * counter this, HashMemory objects are used. These contain
- * dedicated free-lists formed from large dynamically allocated arrays
- * of objects. One HashMemory object can be shared between multiple hash
- * tables (within a single thread).
- */
-typedef struct HashMemory HashMemory;
-
- /* Create a free-list for allocation of hash tables and their nodes */
-
-HashMemory *_new_HashMemory(int hash_count, int node_count);
-
- /* Delete a redundant free-list if not being used */
-
-HashMemory *_del_HashMemory(HashMemory *mem, int force);
-
-/*
- * Declare an alias for the private HashTable structure defined in
- * hash.c.
- */
-typedef struct HashTable HashTable;
-
-/*
- * Enumerate case-sensitivity options.
- */
-typedef enum {
- IGNORE_CASE, /* Ignore case when looking up symbols */
- HONOUR_CASE /* Honor case when looking up symbols */
-} HashCase;
-
- /* Create a new hash-table */
-
-HashTable *_new_HashTable(HashMemory *mem, int size, HashCase hcase,
- void *app_data, HASH_DEL_FN(*del_fn));
-
- /* Delete a reference to a hash-table */
-
-HashTable *_del_HashTable(HashTable *hash);
-
- /* Add an entry to a hash table */
-
-Symbol *_new_HashSymbol(HashTable *hash, const char *key, int code,
- void (*fn)(void), void *data, SYM_DEL_FN(*del_fn));
-
- /* Remove and delete all the entries in a given hash table */
-
-int _clear_HashTable(HashTable *hash);
-
- /* Remove and delete a given hash-table entry */
-
-Symbol *_del_HashSymbol(HashTable *hash, const char *key);
-
- /* Lookup a given hash-table entry */
-
-Symbol *_find_HashSymbol(HashTable *hash, const char *key);
-
- /* Execute a given function on each entry of a hash table, returning */
- /* before completion if the specified function returns non-zero. */
-
-#define HASH_SCAN_FN(fn) int (fn)(Symbol *sym, void *context)
-
-int _scan_HashTable(HashTable *hash, HASH_SCAN_FN(*scan_fn), void *context);
-
-#endif
diff --git a/libtecla-1.4.1/history.c b/libtecla-1.4.1/history.c
deleted file mode 100644
index 5a8d94f..0000000
--- a/libtecla-1.4.1/history.c
+++ /dev/null
@@ -1,2003 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <time.h>
-#include <errno.h>
-
-#include "history.h"
-#include "freelist.h"
-
-/*
- * GlLineNode's record the location and length of historical lines in
- * a buffer array.
- */
-typedef struct GlLineNode GlLineNode;
-struct GlLineNode {
- long id; /* The unique identifier of this history line */
- time_t timestamp; /* The time at which the line was archived */
- unsigned group; /* The identifier of the history group to which the */
- /* the line belongs. */
- GlLineNode *next; /* The next youngest line in the list */
- GlLineNode *prev; /* The next oldest line in the list */
- int start; /* The start index of the line in the buffer */
- int nchar; /* The total length of the line, including the '\0' */
-};
-
-/*
- * The number of GlLineNode elements per freelist block.
- */
-#define LINE_NODE_BLK 100
-
-/*
- * Lines are organised in the buffer from oldest to newest. The
- * positions of the lines are recorded in a doubly linked list
- * of GlLineNode objects.
- */
-typedef struct {
- FreeList *node_mem; /* A freelist of GlLineNode objects */
- GlLineNode *head; /* The head of the list of lines */
- GlLineNode *tail; /* The tail of the list of lines */
-} GlLineList;
-
-/*
- * All elements of the history mechanism are recorded in an object of
- * the following type.
- */
-struct GlHistory {
- char *buffer; /* A circular buffer used to record historical input */
- /* lines. */
- size_t buflen; /* The length of the buffer array */
- GlLineList list; /* A list of the start of lines in buffer[] */
- GlLineNode *recall; /* The last line recalled, or NULL if no recall */
- /* session is currently active. */
- GlLineNode *id_node;/* The node at which the last ID search terminated */
- const char *prefix; /* A pointer to the line containing the prefix that */
- /* is being searched for. */
- int prefix_len; /* The length of the prefix */
- unsigned long seq; /* The next ID to assign to a line node */
- unsigned group; /* The identifier of the current history group */
- int nline; /* The number of lines currently in the history list */
- int max_lines; /* Either -1 or a ceiling on the number of lines */
- int enable; /* If false, ignore history additions and lookups */
-};
-
-static char *_glh_restore_line(GlHistory *glh, char *line, size_t dim);
-static int _glh_cant_load_history(GlHistory *glh, const char *filename,
- int lineno, const char *message, FILE *fp);
-static int _glh_write_timestamp(FILE *fp, time_t timestamp);
-static int _glh_decode_timestamp(char *string, char **endp, time_t *t);
-static void _glh_discard_node(GlHistory *glh, GlLineNode *node);
-static GlLineNode *_glh_find_id(GlHistory *glh, GlhLineID id);
-
-/*.......................................................................
- * Create a line history maintenance object.
- *
- * Input:
- * buflen size_t The number of bytes to allocate to the circular
- * buffer that is used to record all of the
- * most recent lines of user input that will fit.
- * If buflen==0, no buffer will be allocated.
- * Output:
- * return GlHistory * The new object, or NULL on error.
- */
-GlHistory *_new_GlHistory(size_t buflen)
-{
- GlHistory *glh; /* The object to be returned */
-/*
- * Allocate the container.
- */
- glh = (GlHistory *) malloc(sizeof(GlHistory));
- if(!glh) {
- fprintf(stderr, "_new_GlHistory: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to _del_GlHistory().
- */
- glh->buffer = NULL;
- glh->buflen = buflen;
- glh->list.node_mem = NULL;
- glh->list.head = NULL;
- glh->list.tail = NULL;
- glh->recall = NULL;
- glh->id_node = NULL;
- glh->prefix = NULL;
- glh->prefix_len = 0;
- glh->seq = 0;
- glh->group = 0;
- glh->nline = 0;
- glh->max_lines = -1;
- glh->enable = 1;
-/*
- * Allocate the buffer, if required.
- */
- if(buflen > 0) {
- glh->buffer = (char *) malloc(sizeof(char) * buflen);
- if(!glh->buffer) {
- fprintf(stderr, "_new_GlHistory: Insufficient memory.\n");
- return _del_GlHistory(glh);
- };
- };
-/*
- * Allocate the GlLineNode freelist.
- */
- glh->list.node_mem = _new_FreeList("_new_GlHistory", sizeof(GlLineNode),
- LINE_NODE_BLK);
- if(!glh->list.node_mem)
- return _del_GlHistory(glh);
- return glh;
-}
-
-/*.......................................................................
- * Delete a GlHistory object.
- *
- * Input:
- * glh GlHistory * The object to be deleted.
- * Output:
- * return GlHistory * The deleted object (always NULL).
- */
-GlHistory *_del_GlHistory(GlHistory *glh)
-{
- if(glh) {
-/*
- * Delete the buffer.
- */
- if(glh->buffer) {
- free(glh->buffer);
- glh->buffer = NULL;
- };
-/*
- * Delete the freelist of GlLineNode's.
- */
- glh->list.node_mem = _del_FreeList("_del_GlHistory", glh->list.node_mem, 1);
-/*
- * The contents of the list were deleted by deleting the freelist.
- */
- glh->list.head = NULL;
- glh->list.tail = NULL;
-/*
- * Delete the container.
- */
- free(glh);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Add a new line to the end of the history buffer, wrapping round to the
- * start of the buffer if needed.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * line char * The line to be archived.
- * force int Unless this flag is non-zero, empty lines and
- * lines which match the previous line in the history
- * buffer, aren't archived. This flag requests that
- * the line be archived regardless.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _glh_add_history(GlHistory *glh, const char *line, int force)
-{
- GlLineList *list; /* The line location list */
- int nchar; /* The number of characters needed to record the line */
- GlLineNode *node; /* The new line location list node */
- int empty; /* True if the string is empty */
- const char *nlptr;/* A pointer to a newline character in line[] */
- int i;
-/*
- * Check the arguments.
- */
- if(!glh || !line)
- return 1;
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->buffer || glh->max_lines == 0)
- return 0;
-/*
- * Get the line location list.
- */
- list = &glh->list;
-/*
- * Cancel any ongoing search.
- */
- if(_glh_cancel_search(glh))
- return 1;
-/*
- * See how much buffer space will be needed to record the line?
- *
- * If the string contains a terminating newline character, arrange to
- * have the archived line NUL terminated at this point.
- */
- nlptr = strchr(line, '\n');
- if(nlptr)
- nchar = (nlptr - line) + 1;
- else
- nchar = strlen(line) + 1;
-/*
- * If the line is too big to fit in the buffer, truncate it.
- */
- if(nchar > glh->buflen)
- nchar = glh->buflen;
-/*
- * Is the line empty?
- */
- empty = 1;
- for(i=0; i<nchar-1 && empty; i++)
- empty = isspace((int)(unsigned char) line[i]);
-/*
- * If the line is empty, don't add it to the buffer unless explicitly
- * told to.
- */
- if(empty && !force)
- return 0;
-/*
- * If the new line is the same as the most recently added line,
- * don't add it again, unless explicitly told to.
- */
- if(!force &&
- list->tail && strlen(glh->buffer + list->tail->start) == nchar-1 &&
- strncmp(line, glh->buffer + list->tail->start, nchar-1)==0)
- return 0;
-/*
- * Allocate the list node that will record the line location.
- */
- node = (GlLineNode *) _new_FreeListNode(list->node_mem);
- if(!node)
- return 1;
-/*
- * Is the buffer empty?
- */
- if(!list->head) {
-/*
- * Place the line at the beginning of the buffer.
- */
- strncpy(glh->buffer, line, nchar);
- glh->buffer[nchar-1] = '\0';
-/*
- * Record the location of the line.
- */
- node->start = 0;
-/*
- * The buffer has one or more lines in it.
- */
- } else {
-/*
- * Place the start of the new line just after the most recently
- * added line.
- */
- int start = list->tail->start + list->tail->nchar;
-/*
- * If there is insufficient room between the end of the most
- * recently added line and the end of the buffer, we place the
- * line at the beginning of the buffer. To make as much space
- * as possible for this line, we first delete any old lines
- * at the end of the buffer, then shift the remaining contents
- * of the buffer to the end of the buffer.
- */
- if(start + nchar >= glh->buflen) {
- GlLineNode *last; /* The last line in the buffer */
- GlLineNode *ln; /* A member of the list of line locations */
- int shift; /* The shift needed to move the contents of the */
- /* buffer to its end. */
-/*
- * Delete any old lines between the most recent line and the end of the
- * buffer.
- */
- while(list->head && list->head->start > list->tail->start)
- _glh_discard_node(glh, list->head);
-/*
- * Find the line that is nearest the end of the buffer.
- */
- last = NULL;
- for(ln=list->head; ln; ln=ln->next) {
- if(!last || ln->start > last->start)
- last = ln;
- };
-/*
- * How big a shift is needed to move the existing contents of the
- * buffer to the end of the buffer?
- */
- shift = last ? (glh->buflen - (last->start + last->nchar)) : 0;
-/*
- * Is any shift needed?
- */
- if(shift > 0) {
-/*
- * Move the buffer contents to the end of the buffer.
- */
- memmove(glh->buffer + shift, glh->buffer, glh->buflen - shift);
-/*
- * Update the listed locations to reflect the shift.
- */
- for(ln=list->head; ln; ln=ln->next)
- ln->start += shift;
- };
-/*
- * The new line should now be located at the start of the buffer.
- */
- start = 0;
- };
-/*
- * Make space for the new line at the beginning of the buffer by
- * deleting the oldest lines. This just involves removing them
- * from the list of used locations. Also enforce the current
- * maximum number of lines.
- */
- while(list->head &&
- ((list->head->start >= start && list->head->start - start < nchar) ||
- (glh->max_lines >= 0 && glh->nline>=glh->max_lines))) {
- _glh_discard_node(glh, list->head);
- };
-/*
- * Copy the new line into the buffer.
- */
- memcpy(glh->buffer + start, line, nchar);
- glh->buffer[start + nchar - 1] = '\0';
-/*
- * Record its location.
- */
- node->start = start;
- };
-/*
- * Append the line location node to the end of the list.
- */
- node->id = glh->seq++;
- node->timestamp = time(NULL);
- node->group = glh->group;
- node->nchar = nchar;
- node->next = NULL;
- node->prev = list->tail;
- if(list->tail)
- list->tail->next = node;
- else
- list->head = node;
- list->tail = node;
- glh->nline++;
- return 0;
-}
-
-/*.......................................................................
- * Recall the next oldest line that has the search prefix last recorded
- * by _glh_search_prefix().
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * line char * The input line buffer. On input this should contain
- * the current input line, and on output, if anything
- * was found, its contents will have been replaced
- * with the matching line.
- * dim size_t The allocated dimensions of the line buffer.
- * Output:
- * return char * A pointer to line[0], or NULL if not found.
- */
-char *_glh_find_backwards(GlHistory *glh, char *line, size_t dim)
-{
- GlLineNode *node; /* The line location node being checked */
- int first; /* True if this is the start of a new search */
-/*
- * Check the arguments.
- */
- if(!glh || !line) {
- fprintf(stderr, "_glh_find_backwards: NULL argument(s).\n");
- return NULL;
- };
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->buffer || glh->max_lines == 0)
- return NULL;
-/*
- * Check the line dimensions.
- */
- if(dim < strlen(line) + 1) {
- fprintf(stderr,
- "_glh_find_backwards: 'dim' inconsistent with strlen(line) contents.\n");
- return NULL;
- };
-/*
- * Is this the start of a new search?
- */
- first = glh->recall==NULL;
-/*
- * If this is the first search backwards, save the current line
- * for potential recall later, and mark it as the last line
- * recalled.
- */
- if(first) {
- if(_glh_add_history(glh, line, 1))
- return NULL;
- glh->recall = glh->list.tail;
- };
-/*
- * If there is no search prefix, the prefix last set by glh_search_prefix()
- * doesn't exist in the history buffer.
- */
- if(!glh->prefix)
- return NULL;
-/*
- * From where should we start the search?
- */
- if(glh->recall)
- node = glh->recall->prev;
- else
- node = glh->list.tail;
-/*
- * Search backwards through the list for the first match with the
- * prefix string.
- */
- for( ; node &&
- (node->group != glh->group ||
- strncmp(glh->buffer + node->start, glh->prefix, glh->prefix_len) != 0);
- node = node->prev)
- ;
-/*
- * Was a matching line found?
- */
- if(node) {
-/*
- * Recall the found node as the starting point for subsequent
- * searches.
- */
- glh->recall = node;
-/*
- * Copy the matching line into the provided line buffer.
- */
- strncpy(line, glh->buffer + node->start, dim);
- line[dim-1] = '\0';
- return line;
- };
-/*
- * No match was found.
- */
- return NULL;
-}
-
-/*.......................................................................
- * Recall the next newest line that has the search prefix last recorded
- * by _glh_search_prefix().
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * line char * The input line buffer. On input this should contain
- * the current input line, and on output, if anything
- * was found, its contents will have been replaced
- * with the matching line.
- * dim size_t The allocated dimensions of the line buffer.
- * Output:
- * return char * The line requested, or NULL if no matching line
- * was found.
- */
-char *_glh_find_forwards(GlHistory *glh, char *line, size_t dim)
-{
- GlLineNode *node; /* The line location node being checked */
-/*
- * Check the arguments.
- */
- if(!glh || !line) {
- fprintf(stderr, "_glh_find_forwards: NULL argument(s).\n");
- return NULL;
- };
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->buffer || glh->max_lines == 0)
- return NULL;
-/*
- * Check the line dimensions.
- */
- if(dim < strlen(line) + 1) {
- fprintf(stderr,
- "_glh_find_forwards: 'dim' inconsistent with strlen(line) contents.\n");
- return NULL;
- };
-/*
- * From where should we start the search?
- */
- if(glh->recall)
- node = glh->recall->next;
- else
- return NULL;
-/*
- * If there is no search prefix, the prefix last set by glh_search_prefix()
- * doesn't exist in the history buffer.
- */
- if(!glh->prefix)
- return NULL;
-/*
- * Search forwards through the list for the first match with the
- * prefix string.
- */
- for( ; node &&
- (node->group != glh->group ||
- strncmp(glh->buffer + node->start, glh->prefix, glh->prefix_len) != 0);
- node = node->next)
- ;
-/*
- * Was a matching line found?
- */
- if(node) {
-/*
- * Did we hit the line that was originally being edited when the
- * current history traversal started?
- */
- if(node == glh->list.tail)
- return _glh_restore_line(glh, line, dim);
-/*
- * Copy the matching line into the provided line buffer.
- */
- strncpy(line, glh->buffer + node->start, dim);
- line[dim-1] = '\0';
-/*
- * Record the starting point of the next search.
- */
- glh->recall = node;
-/*
- * Return the matching line to the user.
- */
- return line;
- };
-/*
- * No match was found.
- */
- return NULL;
-}
-
-/*.......................................................................
- * If a search is in progress, cancel it.
- *
- * This involves discarding the line that was temporarily saved by
- * _glh_find_backwards() when the search was originally started,
- * and reseting the search iteration pointer to NULL.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _glh_cancel_search(GlHistory *glh)
-{
-/*
- * Check the arguments.
- */
- if(!glh) {
- fprintf(stderr, "_glh_cancel_search: NULL argument(s).\n");
- return 1;
- };
-/*
- * If there wasn't a search in progress, do nothing.
- */
- if(!glh->recall)
- return 0;
-/*
- * Delete the node of the preserved line.
- */
- _glh_discard_node(glh, glh->list.tail);
-/*
- * Reset the search pointers.
- */
- glh->recall = NULL;
- glh->prefix = "";
- glh->prefix_len = 0;
- return 0;
-}
-
-/*.......................................................................
- * Set the prefix of subsequent history searches.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * line char * The command line who's prefix is to be used.
- * prefix_len int The length of the prefix.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _glh_search_prefix(GlHistory *glh, const char *line, int prefix_len)
-{
- GlLineNode *node; /* The line location node being checked */
-/*
- * Check the arguments.
- */
- if(!glh) {
- fprintf(stderr, "_glh_search_prefix: NULL argument(s).\n");
- return 1;
- };
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->buffer || glh->max_lines == 0)
- return 0;
-/*
- * Record a zero length search prefix?
- */
- if(prefix_len <= 0) {
- glh->prefix_len = 0;
- glh->prefix = "";
- return 0;
- };
-/*
- * Record the length of the new search prefix.
- */
- glh->prefix_len = prefix_len;
-/*
- * If any history line starts with the specified prefix, record a
- * pointer to it for comparison in subsequent searches. If the prefix
- * doesn't match any of the lines, then simply record NULL to indicate
- * that there is no point in searching. Note that _glh_add_history()
- * clears this pointer by calling _glh_cancel_search(), so there is
- * no danger of it being used after the buffer has been modified.
- */
- for(node = glh->list.tail ; node &&
- (node->group != glh->group ||
- strncmp(glh->buffer + node->start, line, prefix_len) != 0);
- node = node->prev)
- ;
-/*
- * If a matching line was found record it for use as the search
- * prefix.
- */
- glh->prefix = node ? glh->buffer + node->start : NULL;
- return 0;
-}
-
-/*.......................................................................
- * Recall the oldest recorded line.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * line char * The input line buffer. On input this should contain
- * the current input line, and on output, its contents
- * will have been replaced with the oldest line.
- * dim size_t The allocated dimensions of the line buffer.
- * Output:
- * return char * A pointer to line[0], or NULL if not found.
- */
-char *_glh_oldest_line(GlHistory *glh, char *line, size_t dim)
-{
- GlLineNode *node; /* The line location node being checked */
- int first; /* True if this is the start of a new search */
-/*
- * Check the arguments.
- */
- if(!glh || !line) {
- fprintf(stderr, "_glh_oldest_line: NULL argument(s).\n");
- return NULL;
- };
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->buffer || glh->max_lines == 0)
- return NULL;
-/*
- * Check the line dimensions.
- */
- if(dim < strlen(line) + 1) {
- fprintf(stderr,
- "_glh_oldest_line: 'dim' inconsistent with strlen(line) contents.\n");
- return NULL;
- };
-/*
- * Is this the start of a new search?
- */
- first = glh->recall==NULL;
-/*
- * If this is the first search backwards, save the current line
- * for potential recall later, and mark it as the last line
- * recalled.
- */
- if(first) {
- if(_glh_add_history(glh, line, 1))
- return NULL;
- glh->recall = glh->list.tail;
- };
-/*
- * Locate the oldest line that belongs to the current group.
- */
- for(node=glh->list.head; node && node->group != glh->group;
- node = node->next)
- ;
-/*
- * No line found?
- */
- if(!node)
- return NULL;
-/*
- * Record the above node as the starting point for subsequent
- * searches.
- */
- glh->recall = node;
-/*
- * Copy the recalled line into the provided line buffer.
- */
- strncpy(line, glh->buffer + node->start, dim);
- line[dim-1] = '\0';
- return line;
-}
-
-/*.......................................................................
- * Recall the line that was being entered when the search started.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * line char * The input line buffer. On input this should contain
- * the current input line, and on output, its contents
- * will have been replaced with the line that was
- * being entered when the search was started.
- * dim size_t The allocated dimensions of the line buffer.
- * Output:
- * return char * A pointer to line[0], or NULL if not found.
- */
-char *_glh_current_line(GlHistory *glh, char *line, size_t dim)
-{
-/*
- * Check the arguments.
- */
- if(!glh || !line) {
- fprintf(stderr, "_glh_current_line: NULL argument(s).\n");
- return NULL;
- };
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->buffer || glh->max_lines == 0)
- return NULL;
-/*
- * Check the line dimensions.
- */
- if(dim < strlen(line) + 1) {
- fprintf(stderr,
- "_glh_current_line: 'dim' inconsistent with strlen(line) contents.\n");
- return NULL;
- };
-/*
- * Restore the original line.
- */
- return _glh_restore_line(glh, line, dim);
-}
-
-/*.......................................................................
- * Remove the line that was originally being edited when the history
- * traversal was started, from its saved position in the history list,
- * and place it in the provided line buffer.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * line char * The input line buffer. On input this should contain
- * the current input line, and on output, its contents
- * will have been replaced with the saved line.
- * dim size_t The allocated dimensions of the line buffer.
- * Output:
- * return char * A pointer to line[0], or NULL if not found.
- */
-static char *_glh_restore_line(GlHistory *glh, char *line, size_t dim)
-{
- GlLineNode *tail; /* The tail node to be discarded */
-/*
- * If there wasn't a search in progress, do nothing.
- */
- if(!glh->recall)
- return NULL;
-/*
- * Get the list node that is to be removed.
- */
- tail = glh->list.tail;
-/*
- * If a pointer to the saved line is being used to record the
- * current search prefix, reestablish the search prefix, to
- * have it recorded by another history line if possible.
- */
- if(glh->prefix == glh->buffer + tail->start)
- (void) _glh_search_prefix(glh, glh->buffer + tail->start, glh->prefix_len);
-/*
- * Copy the recalled line into the input-line buffer.
- */
- strncpy(line, glh->buffer + tail->start, dim);
- line[dim-1] = '\0';
-/*
- * Discard the line-location node.
- */
- _glh_discard_node(glh, tail);
-/*
- * Mark the search as ended.
- */
- glh->recall = NULL;
- return line;
-}
-
-/*.......................................................................
- * Query the id of a history line offset by a given number of lines from
- * the one that is currently being recalled. If a recall session isn't
- * in progress, or the offset points outside the history list, 0 is
- * returned.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * offset int The line offset (0 for the current line, < 0
- * for an older line, > 0 for a newer line.
- * Output:
- * return GlhLineID The identifier of the line that is currently
- * being recalled, or 0 if no recall session is
- * currently in progress.
- */
-GlhLineID _glh_line_id(GlHistory *glh, int offset)
-{
- GlLineNode *node; /* The line location node being checked */
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->buffer || glh->max_lines == 0)
- return 0;
-/*
- * Search forward 'offset' lines to find the required line.
- */
- if(offset >= 0) {
- for(node=glh->recall; node && offset != 0; node=node->next) {
- if(node->group == glh->group)
- offset--;
- };
- } else {
- for(node=glh->recall; node && offset != 0; node=node->prev) {
- if(node->group == glh->group)
- offset++;
- };
- };
- return node ? node->id : 0;
-}
-
-/*.......................................................................
- * Recall a line by its history buffer ID. If the line is no longer
- * in the buffer, or the id is zero, NULL is returned.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * id GlhLineID The ID of the line to be returned.
- * line char * The input line buffer. On input this should contain
- * the current input line, and on output, its contents
- * will have been replaced with the saved line.
- * dim size_t The allocated dimensions of the line buffer.
- * Output:
- * return char * A pointer to line[0], or NULL if not found.
- */
-char *_glh_recall_line(GlHistory *glh, GlhLineID id, char *line, size_t dim)
-{
- GlLineNode *node; /* The line location node being checked */
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->buffer || glh->max_lines == 0)
- return NULL;
-/*
- * If we are starting a new recall session, save the current line
- * for potential recall later.
- */
- if(!glh->recall && _glh_add_history(glh, line, 1))
- return NULL;
-/*
- * Search for the specified line.
- */
- node = _glh_find_id(glh, id);
-/*
- * Not found?
- */
- if(!node || node->group != glh->group)
- return NULL;
-/*
- * Record the node of the matching line as the starting point
- * for subsequent searches.
- */
- glh->recall = node;
-/*
- * Copy the recalled line into the provided line buffer.
- */
- strncpy(line, glh->buffer + node->start, dim);
- line[dim-1] = '\0';
- return line;
-}
-
-/*.......................................................................
- * Save the current history in a specified file.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * filename const char * The name of the new file to record the
- * history in.
- * comment const char * Extra information such as timestamps will
- * be recorded on a line started with this
- * string, the idea being that the file can
- * double as a command file. Specify "" if
- * you don't care.
- * max_lines int The maximum number of lines to save, or -1
- * to save all of the lines in the history
- * list.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _glh_save_history(GlHistory *glh, const char *filename, const char *comment,
- int max_lines)
-{
- FILE *fp; /* The output file */
- GlLineNode *node; /* The line being saved */
- GlLineNode *head; /* The head of the list of lines to be saved */
-/*
- * Check the arguments.
- */
- if(!glh || !filename || !comment) {
- fprintf(stderr, "_glh_save_history: NULL argument(s).\n");
- return 1;
- };
-/*
- * Attempt to open the specified file.
- */
- fp = fopen(filename, "w");
- if(!fp) {
- fprintf(stderr, "_glh_save_history: Can't open %s (%s).\n",
- filename, strerror(errno));
- return 1;
- };
-/*
- * If a ceiling on the number of lines to save was specified, count
- * that number of lines backwards, to find the first line to be saved.
- */
- head = NULL;
- if(max_lines >= 0) {
- for(head=glh->list.tail; head && --max_lines > 0; head=head->prev)
- ;
- };
- if(!head)
- head = glh->list.head;
-/*
- * Write the contents of the history buffer to the history file, writing
- * associated data such as timestamps, to a line starting with the
- * specified comment string.
- */
- for(node=head; node; node=node->next) {
-/*
- * Write peripheral information associated with the line, as a comment.
- */
- if(fprintf(fp, "%s ", comment) < 0 ||
- _glh_write_timestamp(fp, node->timestamp) ||
- fprintf(fp, " %u\n", node->group) < 0) {
- fprintf(stderr, "Error writing %s (%s).\n", filename, strerror(errno));
- (void) fclose(fp);
- return 1;
- };
-/*
- * Write the history line.
- */
- if(fprintf(fp, "%s\n", glh->buffer + node->start) < 0) {
- fprintf(stderr, "Error writing %s (%s).\n", filename, strerror(errno));
- (void) fclose(fp);
- return 1;
- };
- };
-/*
- * Close the history file.
- */
- if(fclose(fp) == EOF) {
- fprintf(stderr, "Error writing %s (%s).\n", filename, strerror(errno));
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Restore previous history lines from a given file.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * filename const char * The name of the file to read from.
- * comment const char * The same comment string that was passed to
- * _glh_save_history() when this file was
- * written.
- * line char * A buffer into which lines can be read.
- * dim size_t The allocated dimension of line[].
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _glh_load_history(GlHistory *glh, const char *filename, const char *comment,
- char *line, size_t dim)
-{
- FILE *fp; /* The output file */
- size_t comment_len; /* The length of the comment string */
- time_t timestamp; /* The timestamp of the history line */
- unsigned group; /* The identifier of the history group to which */
- /* the line belongs. */
- int lineno; /* The line number being read */
-/*
- * Check the arguments.
- */
- if(!glh || !filename || !comment || !line) {
- fprintf(stderr, "_glh_load_history: NULL argument(s).\n");
- return 1;
- };
-/*
- * Measure the length of the comment string.
- */
- comment_len = strlen(comment);
-/*
- * Clear the history list.
- */
- _glh_clear_history(glh, 1);
-/*
- * Attempt to open the specified file. Don't treat it as an error
- * if the file doesn't exist.
- */
- fp = fopen(filename, "r");
- if(!fp)
- return 0;
-/*
- * Attempt to read each line and preceding peripheral info, and add these
- * to the history list.
- */
- for(lineno=1; fgets(line, dim, fp) != NULL; lineno++) {
- char *lptr; /* A pointer into the input line */
-/*
- * Check that the line starts with the comment string.
- */
- if(strncmp(line, comment, comment_len) != 0) {
- return _glh_cant_load_history(glh, filename, lineno,
- "Corrupt history parameter line", fp);
- };
-/*
- * Skip spaces and tabs after the comment.
- */
- for(lptr=line+comment_len; *lptr && (*lptr==' ' || *lptr=='\t'); lptr++)
- ;
-/*
- * The next word must be a timestamp.
- */
- if(_glh_decode_timestamp(lptr, &lptr, &timestamp)) {
- return _glh_cant_load_history(glh, filename, lineno,
- "Corrupt timestamp", fp);
- };
-/*
- * Skip spaces and tabs.
- */
- while(*lptr==' ' || *lptr=='\t')
- lptr++;
-/*
- * The next word must be an unsigned integer group number.
- */
- group = (int) strtoul(lptr, &lptr, 10);
- if(*lptr != ' ' && *lptr != '\n') {
- return _glh_cant_load_history(glh, filename, lineno,
- "Corrupt group id", fp);
- };
-/*
- * Skip spaces and tabs.
- */
- while(*lptr==' ' || *lptr=='\t')
- lptr++;
-/*
- * There shouldn't be anything left on the line.
- */
- if(*lptr != '\n') {
- return _glh_cant_load_history(glh, filename, lineno,
- "Corrupt parameter line", fp);
- };
-/*
- * Now read the history line itself.
- */
- lineno++;
- if(fgets(line, dim, fp) == NULL)
- return _glh_cant_load_history(glh, filename, lineno, "Read error", fp);
-/*
- * Append the line to the history buffer.
- */
- if(_glh_add_history(glh, line, 1)) {
- return _glh_cant_load_history(glh, filename, lineno,
- "Insufficient memory to record line", fp);
- };
-/*
- * Record the group and timestamp information along with the line.
- */
- if(glh->list.tail) {
- glh->list.tail->timestamp = timestamp;
- glh->list.tail->group = group;
- };
- };
-/*
- * Close the file.
- */
- (void) fclose(fp);
- return 0;
-}
-
-/*.......................................................................
- * This is a private error return function of _glh_load_history().
- */
-static int _glh_cant_load_history(GlHistory *glh, const char *filename,
- int lineno, const char *message, FILE *fp)
-{
- fprintf(stderr, "%s:%d: %s.\n", filename, lineno, message);
- (void) fclose(fp);
- return 1;
-}
-
-/*.......................................................................
- * Switch history groups.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * group unsigned The new group identifier. This will be recorded
- * with subsequent history lines, and subsequent
- * history searches will only return lines with
- * this group identifier. This allows multiple
- * separate history lists to exist within
- * a single GlHistory object. Note that the
- * default group identifier is 0.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _glh_set_group(GlHistory *glh, unsigned group)
-{
-/*
- * Check the arguments.
- */
- if(!glh) {
- fprintf(stderr, "_glh_set_group: NULL argument(s).\n");
- return 1;
- };
-/*
- * Is the group being changed?
- */
- if(group != glh->group) {
-/*
- * Cancel any ongoing search.
- */
- if(_glh_cancel_search(glh))
- return 1;
-/*
- * Record the new group.
- */
- glh->group = group;
- };
- return 0;
-}
-
-/*.......................................................................
- * Query the current history group.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * Output:
- * return unsigned The group identifier.
- */
-int _glh_get_group(GlHistory *glh)
-{
- return glh ? glh->group : 0;
-}
-
-/*.......................................................................
- * Write a timestamp to a given stdio stream, in the format
- * yyyymmddhhmmss
- *
- * Input:
- * fp FILE * The stream to write to.
- * timestamp time_t The timestamp to be written.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int _glh_write_timestamp(FILE *fp, time_t timestamp)
-{
- struct tm *t; /* THe broken-down calendar time */
-/*
- * Get the calendar components corresponding to the given timestamp.
- */
- if(timestamp < 0 || (t = localtime(&timestamp)) == NULL) {
- if(fprintf(fp, "?") < 0)
- return 1;
- return 0;
- };
-/*
- * Write the calendar time as yyyymmddhhmmss.
- */
- if(fprintf(fp, "%04d%02d%02d%02d%02d%02d", t->tm_year + 1900, t->tm_mon + 1,
- t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec) < 0)
- return 1;
- return 0;
-}
-
-/*.......................................................................
- * Read a timestamp from a string.
- *
- * Input:
- * string char * The string to read from.
- * Input/Output:
- * endp char ** On output *endp will point to the next unprocessed
- * character in string[].
- * timestamp time_t * The timestamp will be assigned to *t.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int _glh_decode_timestamp(char *string, char **endp, time_t *timestamp)
-{
- unsigned year,month,day,hour,min,sec; /* Calendar time components */
- struct tm t;
-/*
- * There are 14 characters in the date format yyyymmddhhmmss.
- */
- enum {TSLEN=14};
- char timestr[TSLEN+1]; /* The timestamp part of the string */
-/*
- * If the time wasn't available at the time that the line was recorded
- * it will have been written as "?". Check for this before trying
- * to read the timestamp.
- */
- if(string[0] == '\?') {
- *endp = string+1;
- *timestamp = -1;
- return 0;
- };
-/*
- * The timestamp is expected to be written in the form yyyymmddhhmmss.
- */
- if(strlen(string) < TSLEN) {
- *endp = string;
- return 1;
- };
-/*
- * Copy the timestamp out of the string.
- */
- strncpy(timestr, string, TSLEN);
- timestr[TSLEN] = '\0';
-/*
- * Decode the timestamp.
- */
- if(sscanf(timestr, "%4u%2u%2u%2u%2u%2u", &year, &month, &day, &hour, &min,
- &sec) != 6) {
- *endp = string;
- return 1;
- };
-/*
- * Advance the string pointer over the successfully read timestamp.
- */
- *endp = string + TSLEN;
-/*
- * Copy the read values into a struct tm.
- */
- t.tm_sec = sec;
- t.tm_min = min;
- t.tm_hour = hour;
- t.tm_mday = day;
- t.tm_wday = 0;
- t.tm_yday = 0;
- t.tm_mon = month - 1;
- t.tm_year = year - 1900;
- t.tm_isdst = -1;
-/*
- * Convert the contents of the struct tm to a time_t.
- */
- *timestamp = mktime(&t);
- return 0;
-}
-
-/*.......................................................................
- * Display the contents of the history list.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * fp FILE * The stdio stream to write to.
- * fmt const char * A format string. This can contain arbitrary
- * characters, which are written verbatim, plus
- * any of the following format directives:
- * %D - The date, like 2001-11-20
- * %T - The time of day, like 23:59:59
- * %N - The sequential entry number of the
- * line in the history buffer.
- * %G - The history group number of the line.
- * %% - A literal % character.
- * %H - The history line.
- * all_groups int If true, display history lines from all
- * history groups. Otherwise only display
- * those of the current history group.
- * max_lines int If max_lines is < 0, all available lines
- * are displayed. Otherwise only the most
- * recent max_lines lines will be displayed.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _glh_show_history(GlHistory *glh, FILE *fp, const char *fmt,
- int all_groups, int max_lines)
-{
- GlLineNode *node; /* The line being displayed */
- GlLineNode *oldest; /* The oldest line to display */
- enum {TSMAX=32}; /* The maximum length of the date and time string */
- char buffer[TSMAX+1]; /* The buffer in which to write the date and time */
- int idlen; /* The length of displayed ID strings */
- unsigned grpmax; /* The maximum group number in the buffer */
- int grplen; /* The number of characters needed to print grpmax */
-/*
- * Check the arguments.
- */
- if(!glh || !fp || !fmt) {
- fprintf(stderr, "_glh_show_history: NULL argument(s).\n");
- return 1;
- };
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->list.head)
- return 0;
-/*
- * Work out the length to display ID numbers, choosing the length of
- * the biggest number in the buffer. Smaller numbers will be padded
- * with leading zeroes if needed.
- */
- sprintf(buffer, "%lu", (unsigned long) glh->list.tail->id);
- idlen = strlen(buffer);
-/*
- * Find the largest group number.
- */
- grpmax = 0;
- for(node=glh->list.head; node; node=node->next) {
- if(node->group > grpmax)
- grpmax = node->group;
- };
-/*
- * Find out how many characters are needed to display the group number.
- */
- sprintf(buffer, "%u", (unsigned) grpmax);
- grplen = strlen(buffer);
-/*
- * Find the node that follows the oldest line to be displayed.
- */
- if(max_lines < 0) {
- oldest = glh->list.head;
- } else if(max_lines==0) {
- return 0;
- } else {
- for(oldest=glh->list.tail; oldest; oldest=oldest->prev) {
- if((all_groups || oldest->group == glh->group) && --max_lines <= 0)
- break;
- };
-/*
- * If the number of lines in the buffer doesn't exceed the specified
- * maximum, start from the oldest line in the buffer.
- */
- if(!oldest)
- oldest = glh->list.head;
- };
-/*
- * List the history lines in increasing time order.
- */
- for(node=oldest; node; node=node->next) {
-/*
- * Only display lines from the current history group, unless
- * told otherwise.
- */
- if(all_groups || node->group == glh->group) {
- const char *fptr; /* A pointer into the format string */
- struct tm *t = NULL; /* The broken time version of the timestamp */
-/*
- * Work out the calendar representation of the node timestamp.
- */
- if(node->timestamp != (time_t) -1)
- t = localtime(&node->timestamp);
-/*
- * Parse the format string.
- */
- fptr = fmt;
- while(*fptr) {
-/*
- * Search for the start of the next format directive or the end of the string.
- */
- const char *start = fptr;
- while(*fptr && *fptr != '%')
- fptr++;
-/*
- * Display any literal characters that precede the located directive.
- */
- if(fptr > start && fprintf(fp, "%.*s", (int) (fptr - start), start) < 0)
- return 1;
-/*
- * Did we hit a new directive before the end of the line?
- */
- if(*fptr) {
-/*
- * Obey the directive. Ignore unknown directives.
- */
- switch(*++fptr) {
- case 'D': /* Display the date */
- if(t && strftime(buffer, TSMAX, "%Y-%m-%d", t) != 0 &&
- fprintf(fp, "%s", buffer) < 0)
- return 1;
- break;
- case 'T': /* Display the time of day */
- if(t && strftime(buffer, TSMAX, "%H:%M:%S", t) != 0 &&
- fprintf(fp, "%s", buffer) < 0)
- return 1;
- break;
- case 'N': /* Display the sequential entry number */
- if(fprintf(fp, "%*lu", idlen, (unsigned long) node->id) < 0)
- return 1;
- break;
- case 'G':
- if(fprintf(fp, "%*u", grplen, (unsigned) node->group) < 0)
- return 1;
- break;
- case 'H': /* Display the history line */
- if(fprintf(fp, "%s", glh->buffer + node->start) < 0)
- return 1;
- break;
- case '%': /* A literal % symbol */
- if(fputc('%', fp) == EOF)
- return 1;
- break;
- };
-/*
- * Skip the directive.
- */
- if(*fptr)
- fptr++;
- };
- };
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Change the size of the history buffer.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * bufsize size_t The number of bytes in the history buffer, or 0
- * to delete the buffer completely.
- * Output:
- * return int 0 - OK.
- * 1 - Insufficient memory (the previous buffer
- * will have been retained). No error message
- * will be displayed.
- */
-int _glh_resize_history(GlHistory *glh, size_t bufsize)
-{
- GlLineNode *node; /* A line location node in the list of lines */
- GlLineNode *prev; /* The line location node preceding 'node' */
-/*
- * Check the arguments.
- */
- if(!glh)
- return bufsize > 0;
-/*
- * If the new size doesn't differ from the existing size, do nothing.
- */
- if(glh->buflen == bufsize)
- return 0;
-/*
- * Cancel any ongoing search.
- */
- (void) _glh_cancel_search(glh);
-/*
- * Create a wholly new buffer?
- */
- if(glh->buflen == 0) {
- glh->buffer = (char *) malloc(bufsize);
- if(!glh->buffer)
- return 1;
- glh->buflen = bufsize;
-/*
- * Delete an existing buffer?
- */
- } else if(bufsize == 0) {
- _glh_clear_history(glh, 1);
- free(glh->buffer);
- glh->buffer = NULL;
- glh->buflen = 0;
-/*
- * To get here, we must be shrinking or expanding from one
- * finite size to another.
- */
- } else {
-/*
- * If we are shrinking the size of the buffer, then we first need
- * to discard the oldest lines that won't fit in the new buffer.
- */
- if(bufsize < glh->buflen) {
- size_t nbytes = 0; /* The number of bytes used in the new buffer */
- GlLineNode *oldest; /* The oldest node to be kept */
-/*
- * Searching backwards from the youngest line, find the oldest
- * line for which there will be sufficient room in the new buffer.
- */
- for(oldest = glh->list.tail;
- oldest && (nbytes += oldest->nchar) <= bufsize;
- oldest = oldest->prev)
- ;
-/*
- * We will have gone one node too far, unless we reached the oldest line
- * without exceeding the target length.
- */
- if(oldest) {
- nbytes -= oldest->nchar;
- oldest = oldest->next;
- };
-/*
- * Discard the nodes that can't be retained.
- */
- while(glh->list.head && glh->list.head != oldest)
- _glh_discard_node(glh, glh->list.head);
-/*
- * If we are increasing the size of the buffer, we need to reallocate
- * the buffer before shifting the lines into their new positions.
- */
- } else {
- char *new_buffer = (char *) realloc(glh->buffer, bufsize);
- if(!new_buffer)
- return 1;
- glh->buffer = new_buffer;
- glh->buflen = bufsize;
- };
-/*
- * If there are any lines to be preserved, copy the block of lines
- * that precedes the end of the existing buffer to what will be
- * the end of the new buffer.
- */
- if(glh->list.head) {
- int shift; /* The number of bytes to shift lines in the buffer */
-/*
- * Get the oldest line to be kept.
- */
- GlLineNode *oldest = glh->list.head;
-/*
- * Count the number of characters that are used in the lines that
- * precede the end of the current buffer (ie. not including those
- * lines that have been wrapped to the start of the buffer).
- */
- int n = 0;
- for(node=oldest,prev=oldest->prev; node && node->start >= oldest->start;
- prev=node, node=node->next)
- n += node->nchar;
-/*
- * Move these bytes to the end of the resized buffer.
- */
- memmove(glh->buffer + bufsize - n, glh->buffer + oldest->start, n);
-/*
- * Adjust the buffer pointers to reflect the new locations of the moved
- * lines.
- */
- shift = bufsize - n - oldest->start;
- for(node=prev; node && node->start >= oldest->start; node=node->prev)
- node->start += shift;
- };
-/*
- * Shrink the buffer?
- */
- if(bufsize < glh->buflen) {
- char *new_buffer = (char *) realloc(glh->buffer, bufsize);
- if(new_buffer)
- glh->buffer = new_buffer;
- glh->buflen = bufsize; /* Mark it as shrunk, regardless of success */
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Set an upper limit to the number of lines that can be recorded in the
- * history list, or remove a previously specified limit.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * max_lines int The maximum number of lines to allow, or -1 to
- * cancel a previous limit and allow as many lines
- * as will fit in the current history buffer size.
- */
-void _glh_limit_history(GlHistory *glh, int max_lines)
-{
- if(!glh)
- return;
-/*
- * Apply a new limit?
- */
- if(max_lines >= 0 && max_lines != glh->max_lines) {
-/*
- * Count successively older lines until we reach the start of the
- * list, or until we have seen max_lines lines (at which point 'node'
- * will be line number max_lines+1).
- */
- int nline = 0;
- GlLineNode *node;
- for(node=glh->list.tail; node && ++nline <= max_lines; node=node->prev)
- ;
-/*
- * Discard any lines that exceed the limit.
- */
- if(node) {
- GlLineNode *oldest = node->next; /* The oldest line to be kept */
-/*
- * Delete nodes from the head of the list until we reach the node that
- * is to be kept.
- */
- while(glh->list.head && glh->list.head != oldest)
- _glh_discard_node(glh, glh->list.head);
- };
- };
-/*
- * Record the new limit.
- */
- glh->max_lines = max_lines;
- return;
-}
-
-/*.......................................................................
- * Discard either all history, or the history associated with the current
- * history group.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * all_groups int If true, clear all of the history. If false,
- * clear only the stored lines associated with the
- * currently selected history group.
- */
-void _glh_clear_history(GlHistory *glh, int all_groups)
-{
-/*
- * Check the arguments.
- */
- if(!glh)
- return;
-/*
- * Cancel any ongoing search.
- */
- (void) _glh_cancel_search(glh);
-/*
- * Delete all history lines regardless of group?
- */
- if(all_groups) {
- _rst_FreeList(glh->list.node_mem);
- glh->list.head = glh->list.tail = NULL;
- glh->nline = 0;
- glh->id_node = NULL;
-/*
- * Just delete lines of the current group?
- */
- } else {
- GlLineNode *node; /* The line node being checked */
- GlLineNode *prev; /* The line node that precedes 'node' */
- GlLineNode *next; /* The line node that follows 'node' */
-/*
- * Search out and delete the line nodes of the current group.
- */
- for(node=glh->list.head; node; node=next) {
-/*
- * Keep a record of the following node before we delete the current
- * node.
- */
- next = node->next;
-/*
- * Discard this node?
- */
- if(node->group == glh->group)
- _glh_discard_node(glh, node);
- };
-/*
- * If there are any lines left, and we deleted any lines, there will
- * be gaps in the buffer. These need to be removed.
- */
- if(glh->list.head) {
- int epos; /* The index of the last used element in the buffer */
-/*
- * Find the line nearest the end of the buffer.
- */
- GlLineNode *enode;
- for(node=glh->list.head, prev=NULL;
- node && node->start >= glh->list.head->start;
- prev=node, node = node->next)
- ;
- enode = prev;
-/*
- * Move the end line to abutt the end of the buffer, and remove gaps
- * between the lines that precede it.
- */
- epos = glh->buflen;
- for(node=enode; node; node=node->prev) {
- int shift = epos - (node->start + node->nchar);
- if(shift) {
- memmove(glh->buffer + node->start + shift,
- glh->buffer + node->start, node->nchar);
- node->start += shift;
- };
- epos = node->start;
- };
-/*
- * Move the first line in the buffer to the start of the buffer, and
- * remove gaps between the lines that follow it.
- */
- epos = 0;
- for(node=enode ? enode->next : NULL; node; node=node->next) {
- int shift = epos - node->start;
- if(shift) {
- memmove(glh->buffer + node->start + shift,
- glh->buffer + node->start, node->nchar);
- node->start += shift;
- };
- epos = node->start + node->nchar;
- };
- };
- };
- return;
-}
-
-/*.......................................................................
- * Temporarily enable or disable the history list.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * enable int If true, turn on the history mechanism. If
- * false, disable it.
- */
-void _glh_toggle_history(GlHistory *glh, int enable)
-{
- if(glh)
- glh->enable = enable;
-}
-
-/*.......................................................................
- * Remove a given line location node from the history list, and return
- * it to the freelist.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * node GlLineNode * The node to be removed. This must be currently
- * in the list who's head is glh->list.head, or
- * be NULL.
- */
-static void _glh_discard_node(GlHistory *glh, GlLineNode *node)
-{
- if(node) {
-/*
- * Make the node that precedes the node being removed point
- * to the one that follows it.
- */
- if(node->prev)
- node->prev->next = node->next;
- else
- glh->list.head = node->next;
-/*
- * Make the node that follows the node being removed point
- * to the one that precedes it.
- */
- if(node->next)
- node->next->prev = node->prev;
- else
- glh->list.tail = node->prev;
-/*
- * If we are deleting the node that is marked as the start point of the
- * last ID search, remove the cached starting point.
- */
- if(node == glh->id_node)
- glh->id_node = NULL;
-/*
- * Return the node to the free list.
- */
- node = (GlLineNode *) _del_FreeListNode(glh->list.node_mem, node);
-/*
- * Decrement the count of the number of lines in the buffer.
- */
- glh->nline--;
- };
-}
-
-/*.......................................................................
- * Lookup the details of a given history line, given its id.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * id GlLineID The sequential number of the line.
- * Input/Output:
- * line const char ** A pointer to the history line will be assigned
- * to *line.
- * group unsigned * The group membership of the line will be assigned
- * to *group.
- * timestamp time_t * The timestamp of the line will be assigned to
- * *timestamp.
- * Output:
- * return int 0 - The requested line wasn't found.
- * 1 - The line was found.
- */
-int _glh_lookup_history(GlHistory *glh, GlhLineID id, const char **line,
- unsigned *group, time_t *timestamp)
-{
- GlLineNode *node; /* The located line location node */
-/*
- * Check the arguments.
- */
- if(!glh)
- return 0;
-/*
- * Search for the line that has the specified ID.
- */
- node = _glh_find_id(glh, (GlhLineID) id);
-/*
- * Not found?
- */
- if(!node)
- return 0;
-/*
- * Return the details of the line.
- */
- if(line)
- *line = glh->buffer + node->start;
- if(group)
- *group = node->group;
- if(timestamp)
- *timestamp = node->timestamp;
- return 1;
-}
-
-/*.......................................................................
- * Lookup a node in the history list by its ID.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * id GlhLineID The ID of the line to be returned.
- * Output:
- * return GlLIneNode * The located node, or NULL if not found.
- */
-static GlLineNode *_glh_find_id(GlHistory *glh, GlhLineID id)
-{
- GlLineNode *node; /* The node being checked */
-/*
- * Is history enabled?
- */
- if(!glh->enable || !glh->list.head)
- return NULL;
-/*
- * If possible, start at the end point of the last ID search.
- * Otherwise start from the head of the list.
- */
- node = glh->id_node;
- if(!node)
- node = glh->list.head;
-/*
- * Search forwards from 'node'?
- */
- if(node->id < id) {
- while(node && node->id != id)
- node = node->next;
- glh->id_node = node ? node : glh->list.tail;
-/*
- * Search backwards from 'node'?
- */
- } else {
- while(node && node->id != id)
- node = node->prev;
- glh->id_node = node ? node : glh->list.head;
- };
-/*
- * Return the located node (this will be NULL if the ID wasn't found).
- */
- return node;
-}
-
-/*.......................................................................
- * Query the state of the history list. Note that any of the input/output
- * pointers can be specified as NULL.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * Input/Output:
- * enabled int * If history is enabled, *enabled will be
- * set to 1. Otherwise it will be assigned 0.
- * group unsigned * The current history group ID will be assigned
- * to *group.
- * max_lines int * The currently requested limit on the number
- * of history lines in the list, or -1 if
- * unlimited.
- */
-void _glh_state_of_history(GlHistory *glh, int *enabled, unsigned *group,
- int *max_lines)
-{
- if(glh) {
- if(enabled)
- *enabled = glh->enable;
- if(group)
- *group = glh->group;
- if(max_lines)
- *max_lines = glh->max_lines;
- };
-}
-
-/*.......................................................................
- * Get the range of lines in the history buffer.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * Input/Output:
- * oldest unsigned long * The sequential entry number of the oldest
- * line in the history list will be assigned
- * to *oldest, unless there are no lines, in
- * which case 0 will be assigned.
- * newest unsigned long * The sequential entry number of the newest
- * line in the history list will be assigned
- * to *newest, unless there are no lines, in
- * which case 0 will be assigned.
- * nlines int * The number of lines currently in the history
- * list.
- */
-void _glh_range_of_history(GlHistory *glh, unsigned long *oldest,
- unsigned long *newest, int *nlines)
-{
- if(glh) {
- if(oldest)
- *oldest = glh->list.head ? glh->list.head->id : 0;
- if(newest)
- *newest = glh->list.tail ? glh->list.tail->id : 0;
- if(nlines)
- *nlines = glh->nline;
- };
-}
-
-/*.......................................................................
- * Return the size of the history buffer and the amount of the
- * buffer that is currently in use.
- *
- * Input:
- * glh GlHistory * The input-line history maintenance object.
- * Input/Output:
- * buff_size size_t * The size of the history buffer (bytes).
- * buff_used size_t * The amount of the history buffer that
- * is currently occupied (bytes).
- */
-void _glh_size_of_history(GlHistory *glh, size_t *buff_size, size_t *buff_used)
-{
- if(glh) {
- if(buff_size)
- *buff_size = glh->buflen;
-/*
- * Determine the amount of buffer space that is currently occupied.
- */
- if(buff_used) {
- size_t used = 0;
- GlLineNode *node;
- for(node=glh->list.head; node; node=node->next)
- used += node->nchar;
- *buff_used = used;
- };
- };
-}
diff --git a/libtecla-1.4.1/history.h b/libtecla-1.4.1/history.h
deleted file mode 100644
index 49671a4..0000000
--- a/libtecla-1.4.1/history.h
+++ /dev/null
@@ -1,159 +0,0 @@
-#ifndef history_h
-#define history_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdio.h> /* FILE * */
-
-/*-----------------------------------------------------------------------
- * This module is used to record and traverse historical lines of user input.
- */
-
-typedef struct GlHistory GlHistory;
-
-/*
- * Create a new history maintenance object.
- */
-GlHistory *_new_GlHistory(size_t buflen);
-
-/*
- * Delete a history maintenance object.
- */
-GlHistory *_del_GlHistory(GlHistory *glh);
-
-int _glh_add_history(GlHistory *glh, const char *line, int force);
-
-int _glh_search_prefix(GlHistory *glh, const char *line, int prefix_len);
-
-char *_glh_find_backwards(GlHistory *glh, char *line, size_t dim);
-char *_glh_find_forwards(GlHistory *glh, char *line, size_t dim);
-
-int _glh_cancel_search(GlHistory *glh);
-
-char *_glh_oldest_line(GlHistory *glh, char *line, size_t dim);
-char *_glh_current_line(GlHistory *glh, char *line, size_t dim);
-
-/*
- * Whenever a new line is added to the history buffer, it is given
- * a unique ID, recorded in an object of the following type.
- */
-typedef unsigned long GlhLineID;
-
-/*
- * Query the id of a history line offset by a given number of lines from
- * the one that is currently being recalled. If a recall session isn't
- * in progress, or the offset points outside the history list, 0 is
- * returned.
- */
-GlhLineID _glh_line_id(GlHistory *glh, int offset);
-
-/*
- * Recall a line by its history buffer ID. If the line is no longer
- * in the buffer, or the specified id is zero, NULL is returned.
- */
-char *_glh_recall_line(GlHistory *glh, GlhLineID id, char *line, size_t dim);
-
-/*
- * Write the contents of the history buffer to a given file. Note that
- * ~ and $ expansion are not performed on the filename.
- */
-int _glh_save_history(GlHistory *glh, const char *filename,
- const char *comment, int max_lines);
-
-/*
- * Restore the contents of the history buffer from a given file.
- * Note that ~ and $ expansion are not performed on the filename.
- */
-int _glh_load_history(GlHistory *glh, const char *filename, const char *comment,
- char *line, size_t dim);
-
-/*
- * Set and query the current history group.
- */
-int _glh_set_group(GlHistory *glh, unsigned group);
-int _glh_get_group(GlHistory *glh);
-
-/*
- * Display the contents of the history list to the specified stdio
- * output group.
- */
-int _glh_show_history(GlHistory *glh, FILE *fp, const char *fmt,
- int all_groups, int max_lines);
-
-/*
- * Change the size of the history buffer.
- */
-int _glh_resize_history(GlHistory *glh, size_t bufsize);
-
-/*
- * Set an upper limit to the number of lines that can be recorded in the
- * history list, or remove a previously specified limit.
- */
-void _glh_limit_history(GlHistory *glh, int max_lines);
-
-/*
- * Discard either all history, or the history associated with the current
- * history group.
- */
-void _glh_clear_history(GlHistory *glh, int all_groups);
-
-/*
- * Temporarily enable or disable the history facility.
- */
-void _glh_toggle_history(GlHistory *glh, int enable);
-
-/*
- * Lookup a history line by its sequential number of entry in the
- * history buffer.
- */
-int _glh_lookup_history(GlHistory *glh, GlhLineID id, const char **line,
- unsigned *group, time_t *timestamp);
-
-/*
- * Query the state of the history list.
- */
-void _glh_state_of_history(GlHistory *glh, int *enabled, unsigned *group,
- int *max_lines);
-
-/*
- * Get the range of lines in the history buffer.
- */
-void _glh_range_of_history(GlHistory *glh, unsigned long *oldest,
- unsigned long *newest, int *nlines);
-
-/*
- * Return the size of the history buffer and the amount of the
- * buffer that is currently in use.
- */
-void _glh_size_of_history(GlHistory *glh, size_t *buff_size, size_t *buff_used);
-
-#endif
diff --git a/libtecla-1.4.1/homedir.c b/libtecla-1.4.1/homedir.c
deleted file mode 100644
index f2029b7..0000000
--- a/libtecla-1.4.1/homedir.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <pwd.h>
-
-#include "pathutil.h"
-#include "homedir.h"
-
-/*
- * Set the max length of the error-reporting string. There is no point
- * in this being longer than the width of a typical terminal window.
- * In composing error messages, I have assumed that this number is
- * at least 80, so you don't decrease it below this number.
- */
-#define ERRLEN 200
-
-/*
- * Use the reentrant POSIX threads versions of the password lookup functions?
- */
-#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199506L
-#define THREAD_COMPATIBLE 1
-#endif
-
-/*
- * Provide a password buffer size fallback in case the max size reported
- * by sysconf() is said to be indeterminate.
- */
-#define DEF_GETPW_R_SIZE_MAX 1024
-
-/*
- * The resources needed to lookup and record a home directory are
- * maintained in objects of the following type.
- */
-struct HomeDir {
- char errmsg[ERRLEN+1]; /* Error-report buffer */
- char *buffer; /* A buffer for reading password entries and */
- /* directory paths. */
- int buflen; /* The allocated size of buffer[] */
-#ifdef THREAD_COMPATIBLE
- struct passwd pwd; /* The password entry of a user */
-#endif
-};
-
-static const char *hd_getpwd(HomeDir *home);
-
-/*.......................................................................
- * Create a new HomeDir object.
- *
- * Output:
- * return HomeDir * The new object, or NULL on error.
- */
-HomeDir *_new_HomeDir(void)
-{
- HomeDir *home; /* The object to be returned */
- size_t pathlen; /* The estimated maximum size of a pathname */
-/*
- * Allocate the container.
- */
- home = (HomeDir *) malloc(sizeof(HomeDir));
- if(!home) {
- fprintf(stderr, "_new_HomeDir: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to _del_HomeDir().
- */
- home->errmsg[0] = '\0';
- home->buffer = NULL;
- home->buflen = 0;
-/*
- * Allocate the buffer that is used by the reentrant POSIX password-entry
- * lookup functions.
- */
-#ifdef THREAD_COMPATIBLE
-/*
- * Get the length of the buffer needed by the reentrant version
- * of getpwnam().
- */
-#ifndef _SC_GETPW_R_SIZE_MAX
- home->buflen = DEF_GETPW_R_SIZE_MAX;
-#else
- errno = 0;
- home->buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
-/*
- * If the limit isn't available, substitute a suitably large fallback value.
- */
- if(home->buflen < 0 || errno)
- home->buflen = DEF_GETPW_R_SIZE_MAX;
-#endif
-#endif
-/*
- * If the existing buffer length requirement is too restrictive to record
- * a pathname, increase its length.
- */
- pathlen = _pu_pathname_dim();
- if(pathlen > home->buflen)
- home->buflen = pathlen;
-/*
- * Allocate a work buffer.
- */
- home->buffer = (char *) malloc(home->buflen);
- if(!home->buffer) {
- fprintf(stderr, "_new_HomeDir: Insufficient memory.");
- return _del_HomeDir(home);
- };
- return home;
-}
-
-/*.......................................................................
- * Delete a HomeDir object.
- *
- * Input:
- * home HomeDir * The object to be deleted.
- * Output:
- * return HomeDir * The deleted object (always NULL).
- */
-HomeDir *_del_HomeDir(HomeDir *home)
-{
- if(home) {
- if(home->buffer)
- free(home->buffer);
- free(home);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Lookup the home directory of a given user in the password file.
- *
- * Input:
- * home HomeDir * The resources needed to lookup the home directory.
- * user const char * The name of the user to lookup, or "" to lookup
- * the home directory of the person running the
- * program.
- * Output:
- * return const char * The home directory. If the library was compiled
- * with threads, this string is part of the HomeDir
- * object and will change on subsequent calls. If
- * the library wasn't compiled to be reentrant,
- * then the string is a pointer into a static string
- * in the C library and will change not only on
- * subsequent calls to this function, but also if
- * any calls are made to the C library password
- * file lookup functions. Thus to be safe, you should
- * make a copy of this string before calling any
- * other function that might do a password file
- * lookup.
- *
- * On error, NULL is returned and a description
- * of the error can be acquired by calling
- * _hd_last_home_dir_error().
- */
-const char *_hd_lookup_home_dir(HomeDir *home, const char *user)
-{
- const char *home_dir; /* A pointer to the home directory of the user */
-/*
- * If no username has been specified, arrange to lookup the current
- * user.
- */
- int login_user = !user || *user=='\0';
-/*
- * Check the arguments.
- */
- if(!home) {
- fprintf(stderr, "_hd_lookup_home_dir: NULL argument(s).\n");
- return NULL;
- };
-/*
- * Handle the ksh "~+". This expands to the absolute path of the
- * current working directory.
- */
- if (!login_user && strcmp(user, "+") == 0) {
- home_dir = hd_getpwd(home);
- if(!home_dir) {
- strncpy(home->errmsg, "Cannot determine current directory.", ERRLEN);
- home->errmsg[ERRLEN] = '\0';
- return NULL;
- }
- return home_dir;
- };
-/*
- * Look up the password entry of the user.
- * First the POSIX threads version - this is painful!
- */
-#ifdef THREAD_COMPATIBLE
- {
- struct passwd *ret; /* The returned pointer to pwd */
- int status; /* The return value of getpwnam_r() */
-/*
- * Look up the password entry of the specified user.
- */
- if(login_user)
- status = getpwuid_r(geteuid(), &home->pwd, home->buffer, home->buflen,
- &ret);
- else
- status = getpwnam_r(user, &home->pwd, home->buffer, home->buflen, &ret);
- if(status || !ret) {
- const char *fmt = "User '%.*s' doesn't exist.";
- sprintf(home->errmsg, fmt, ERRLEN - strlen(fmt), user);
- return NULL;
- };
-/*
- * Get a pointer to the string that holds the home directory.
- */
- home_dir = home->pwd.pw_dir;
- };
-/*
- * Now the classic unix version.
- */
-#else
- {
- struct passwd *pwd = login_user ? getpwuid(geteuid()) : getpwnam(user);
- if(!pwd) {
- const char *fmt = "User '%.*s' doesn't exist.";
- sprintf(home->errmsg, fmt, ERRLEN - strlen(fmt), user);
- return NULL;
- };
-/*
- * Get a pointer to the home directory.
- */
- home_dir = pwd->pw_dir;
- };
-#endif
- return home_dir;
-}
-
-/*.......................................................................
- * Return a description of the last error that caused _hd_lookup_home_dir()
- * to return NULL.
- *
- * Input:
- * home HomeDir * The resources needed to record the home directory.
- * Output:
- * return char * The description of the last error.
- */
-const char *_hd_last_home_dir_error(HomeDir *home)
-{
- return home ? home->errmsg : "NULL HomeDir argument";
-}
-
-/*.......................................................................
- * The _hd_scan_user_home_dirs() function calls a user-provided function
- * for each username known by the system, passing the function both
- * the name and the home directory of the user.
- *
- * Input:
- * home HomeDir * The resource object for reading home
- * directories.
- * data void * Anonymous data to be passed to the
- * callback function.
- * callback_fn HOME_DIR_FN(*) The function to call for each user.
- * Output:
- * return int 0 - Successful completion.
- * 1 - An error occurred. A description
- * of the error can be obtained by
- * calling _hd_last_home_dir_error().
- */
-int _hd_scan_user_home_dirs(HomeDir *home, void *data, HOME_DIR_FN(*callback_fn))
-{
- int waserr = 0; /* True after errors */
-/*
- * Check the arguments.
- */
- if(!home || !callback_fn) {
- if(home)
- strcpy(home->errmsg,
- "_hd_scan_user_home_dirs: Missing callback function");
- return 1;
- };
-/*
- * There are no reentrant versions of getpwent() etc for scanning
- * the password file, so disable username completion when the
- * library is compiled to be reentrant.
- */
-#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 199506L
- {
- struct passwd *pwd; /* The pointer to the latest password entry */
-/*
- * Open the password file.
- */
- setpwent();
-/*
- * Read the contents of the password file, looking for usernames
- * that start with the specified prefix, and adding them to the
- * list of matches.
- */
- while((pwd = getpwent()) != NULL && !waserr)
- waserr = callback_fn(data, pwd->pw_name, pwd->pw_dir, home->errmsg,
- ERRLEN);
-/*
- * Close the password file.
- */
- endpwent();
- };
-#endif
-/*
- * Under ksh ~+ stands for the absolute pathname of the current working
- * directory.
- */
- if (!waserr) {
- const char *pwd = hd_getpwd(home);
- if(pwd) {
- waserr = callback_fn(data, "+", pwd, home->errmsg, ERRLEN);
- } else {
- waserr = 1;
- strncpy(home->errmsg, "Cannot determine current directory.", ERRLEN);
- home->errmsg[ERRLEN] = '\0';
- };
- };
- return waserr;
-}
-
-/*.......................................................................
- * Return the value of getenv("PWD") if this points to the current
- * directory, or the return value of getcwd() otherwise. The reason for
- * prefering PWD over getcwd() is that the former preserves the history
- * of symbolic links that have been traversed to reach the current
- * directory. This function is designed to provide the equivalent
- * expansion of the ksh ~+ directive, which normally returns its value
- * of PWD.
- *
- * Input:
- * home HomeDir * The resource object for reading home directories.
- * Output:
- * return const char * A pointer to either home->buffer, where the
- * pathname is recorded, the string returned by
- * getenv("PWD"), or NULL on error.
- */
-static const char *hd_getpwd(HomeDir *home)
-{
-/*
- * Get the absolute path of the current working directory.
- */
- char *cwd = getcwd(home->buffer, home->buflen);
-/*
- * Some shells set PWD with the path of the current working directory.
- * This will differ from cwd in that it won't have had symbolic links
- * expanded.
- */
- const char *pwd = getenv("PWD");
-/*
- * If PWD was set, and it points to the same directory as cwd, return
- * its value. Note that it won't be the same if the current shell or
- * the current program has changed directories, after inheriting PWD
- * from a parent shell.
- */
- struct stat cwdstat, pwdstat;
- if(pwd && cwd && stat(cwd, &cwdstat)==0 && stat(pwd, &pwdstat)==0 &&
- cwdstat.st_dev == pwdstat.st_dev && cwdstat.st_ino == pwdstat.st_ino)
- return pwd;
-/*
- * Also return pwd if getcwd() failed, since it represents the best
- * information that we have access to.
- */
- if(!cwd)
- return pwd;
-/*
- * In the absence of a valid PWD, return cwd.
- */
- return cwd;
-}
diff --git a/libtecla-1.4.1/homedir.h b/libtecla-1.4.1/homedir.h
deleted file mode 100644
index 5607802..0000000
--- a/libtecla-1.4.1/homedir.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef homedir_h
-#define homedir_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-typedef struct HomeDir HomeDir;
-
-/*
- * The following constructor and destructor functions create and
- * delete the resources needed to look up home directories.
- */
-HomeDir *_new_HomeDir(void);
-HomeDir *_del_HomeDir(HomeDir *home);
-
-/*
- * Return the home directory of a specified user, or NULL if unknown.
- */
-const char *_hd_lookup_home_dir(HomeDir *home, const char *user);
-
-/*
- * Get the description of the that occured when _hd_lookup_home_dir() was
- * last called.
- */
-const char *_hd_last_home_dir_error(HomeDir *home);
-
-/*
- * The _hd_scan_user_home_dirs() function calls a user-provided function
- * for each username known by the system, passing the function both
- * the name and the home directory of the user.
- *
- * The following macro can be used to declare both pointers and
- * prototypes for the callback functions. The 'data' argument is
- * a copy of the 'data' argument passed to _hd_scan_user_home_dirs()
- * and is intended for the user of _hd_scan_user_home_dirs() to use
- * to pass anonymous context data to the callback function.
- * The username and home directories are passed to the callback function
- * in the *usrnam and *homedir arguments respectively.
- * To abort the scan, and have _hd_scan_user_home_dirs() return 1, the
- * callback function can return 1. A description of up to maxerr
- * characters before the terminating '\0', can be written to errmsg[].
- * This can then be examined by calling _hd_last_home_dir_error().
- * To indicate success and continue the scan, the callback function
- * should return 0. _hd_scan_user_home_dirs() returns 0 on successful
- * completion of the scan, or 1 if an error occurred or a call to the
- * callback function returned 1.
- */
-#define HOME_DIR_FN(fn) int (fn)(void *data, const char *usrnam, const char *homedir, char *errmsg, int maxerr)
-
-int _hd_scan_user_home_dirs(HomeDir *home, void *data,
- HOME_DIR_FN(*callback_fn));
-
-#endif
diff --git a/libtecla-1.4.1/html/changes.html b/libtecla-1.4.1/html/changes.html
deleted file mode 100644
index b309a7b..0000000
--- a/libtecla-1.4.1/html/changes.html
+++ /dev/null
@@ -1,1495 +0,0 @@
-<HEAD><TITLE>The tecla library change log</TITLE></HEAD>
-<BODY bgcolor=add8e6><PRE>
-In the following log, modification dates are listed using the European
-convention in which the day comes before the month (ie. DD/MM/YYYY).
-The most recent modifications are listed first.
-
-25/05/2002 mcs@astro.caltech.edu (based on suggestions by Paul Smith)
- pathutil.c
- Apparently, under QNX pathconf("/",_PC_PATH_MAX) returns
- EINVAL. At Paul's suggestion I have modified the code to
- silently substitute the existing MAX_PATHLEN_FALLBACK
- value if pathconf() returns an error of any kind.
- homedir.c
- Under QNX, sysconf(_SC_GETPW_R_SIZE_MAX) also apparently
- returns EINVAL, so as with pathconf() I modified the code
- to substitute a fallback default, rather than
- complaining and failing.
- enhance.c
- Paul told me that the inclusion of sys/termios.h was
- causing compilation of enhance.c to fail under QNX. This
- line is a bug. The correct thing to do is include
- termios.h without a sub-directory prefix, as I was
- already doing futher up in the file, so I have just
- removed the errant include line.
-
-12/02/2002 mcs@astro.caltech.edu
- getline.c configure.in configure
- Mac OS X doesn't have a term.h or termcap.h, but it does
- define prototypes for tputs() and setupterm(), so the
- default prototypes that I was including if no headers
- where available, upset it. I've removed these prototypes.
- I also now conditionally include whichever is found of
- curses.h and ncurses/curses.h for both termcap and
- terminfo (before I wasn't including curses.h when
- termcap was selected).
-
-12/02/2002 mcs@astro.caltech.edu
- Updated version number to 1.4.1, ready for a micro
- release.
-
-12/02/2002 mcs@astro.caltech.edu
- html/index.html
- Added Mac OS X and Cygwin to the list of systems that
- can compile libtecla.
-
-12/02/2002 mcs@astro.caltech.edu
- getline.c
- Under Mac OS X, the tputs() callback function returns
- void, instead of the int return value used by other
- systems. This declaration is now used if both __MACH__
- and __APPLE__ are defined. Hopefully these are the
- correct system macros to check. Thanks for Stephan
- Fiedler for providing information on Mac OS X.
-
-11/02/2002 mcs@astro.caltech.edu
- configure.in configure getline.c
- Some systems don't have term.h, and others have it hidden
- in an ncurses sub-directory of the standard system include
- directory. If term.h can't be found, simply don't include
- it. If it is in an ncurses sub-directory, include
- ncurses/term.h instead of term.h.
-
-04/02/2002 mcs@astro.caltech.edu
- configure.in configure Makefile.in Makefile.rules
- Use ranlib on systems that need it (Mac OS X). Also,
- make all components of the installation directories where
- needed, instead of assuming that they exist.
-
-04/02/2002 mcs@astro.caltech.edu
- getline.c
- When the tab completion binding was unbound from the tab
- key, hitting the tab key caused gl_get_line() to ring the
- bell instead of inserting a tab character. This is
- problematic when using the 'enhance' program with
- Jython, since tabs are important in Python. I have
- corrected this.
-
-10/12/2001 Version 1.4.0 released.
-
-10/12/2001 mcs@astro.caltech.edu
- getline.c
- If the TIOCGWINSZ ioctl doesn't work, as is the case when
- running in an emacs shell, leave the size unchanged, rather
- than returning a fatal error.
-
-07/12/2001 mcs@astro.caltech.edu
- configure.in configure
- Now that the configure version of CFLAGS is included in
- the makefile, I noticed that the optimization flags -g
- and -O2 had been added. It turns out that if CFLAGS isn't
- already set, the autoconf AC_PROG_CC macro initializes it
- with these two optimization flags. Since this would break
- backwards compatibility in embedded distributions that
- already use the OPT= makefile argument, and because
- turning debugging on needlessly bloats the library, I now
- make sure that CFLAGS is set before calling this macro.
-
-07/12/2001 mcs@astro.caltech.edu
- enhance.c
- Use argv[0] in error reports instead of using a
- hardcoded macro.
-
-07/12/2001 mcs@astro.caltech.edu
- getline.c
- The cut buffer wasn't being cleared after being
- used as a work buffer by gl_load_history().
-
-06/12/2001 mcs@astro.caltech.edu
- configure.in configure
- I removed my now redundant definition of SUN_TPUTS from
- CFLAGS. I also added "-I/usr/include" to CFLAGS under
- Solaris to prevent gcc from seeing conflicting versions
- of system header files in /usr/local/include.
-
-06/12/2001 Markus Gyger (logged here by mcs)
- Lots of files.
- Lots of corrections to misspellings and typos in the
- comments.
- getline.c
- Markus reverted a supposed fix that I added a day or two
- ago. I had incorrectly thought that in Solaris 8, Sun had
- finally brought their declaration of the callback
- function of tputs() into line with other systems, but it
- turned out that gcc was pulling in a GNU version of
- term.h from /usr/local/include, and this was what
- confused me.
-
-05/12/2001 mcs@astro.caltech.edu
- Makefile.in
- I added @CFLAGS@ to the CFLAGS assignment, so that
- if CFLAGS is set as an environment variable when
- configure is run, the corresponding make variable
- includes its values in the output makefile.
-
-05/12/2001 mcs@astro.caltech.edu
- getline.c libtecla.h libtecla.map man3/gl_get_line.3
- man3/gl_last_signal.3
- I added a function that programs can use to find out
- which signal caused gl_get_line() to return EINTR.
-
-05/12/2001 mcs@astro.caltech.edu
- getline.c
- When the newline action was triggered by a printable
- character, it failed to display that character. It now
- does. Also, extra control codes that I had added, to
- clear to the end of the display after the carriage return,
- but before displaying the prompt, were confusing expect
- scripts, so I have removed them. This step is now done
- instead in gl_redisplay() after displaying the full input
- line.
-
-05/12/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- A user convinced me that continuing to invoke meta
- keybindings for meta characters that are printable is a
- bad idea, as is allowing users to ask to have setlocale()
- called behind the application's back. I have thus changed
- this. The setlocale configuration option has gone, and
- gl_get_line() is now completely 8-bit clean, by default.
- This means that if a meta character is printable, it is
- treated as a literal character, rather than a potential
- M-c binding. Meta bindings can still be invoked via
- their Esc-c equivalents, and indeed most terminal
- emulators either output such escape pairs by default when
- the meta character is pressed, or can be configured to do
- so. I have documented how to configure xterm to do this,
- in the man page.
-
-03/12/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- gl_get_line() by default now prints any 8-bit printable
- characters that don't match keybindings. Previously
- characters > 127 were only printed if preceded by the
- literal-next action. Alternatively, by placing the
- command literal_if_printable in the tecla configuration
- file, all printable characters are treated as literal
- characters, even if they are bound to action functions.
-
- For international users of programs written by
- programmers that weren't aware of the need to call
- setlocale() to support alternate character sets, the
- configuration file can now also contain the single-word
- command "setlocale", which tells gl_get_line() to remedy
- this.
-
-27/11/2001 mcs@astro.caltech.edu
- demo.c demo2.c enhance man3/gl_get_line.3
- All demos and programs now call setlocale(LC_CTYPE,"").
- This makes them support character sets of different
- locales, where specified with the LC_CTYPE, LC_ALL, or
- LANG environment variables. I also added this to the demo
- in the man page, and documented its effect.
-
-27/11/2001 mcs@astro.caltech.edu
- getline.c
- When displaying unsigned characters with values over
- 127 literally, previously it was assumed that they would
- all be displayable. Now isprint() is consulted, and if it
- says that a character isn't printable, the character code
- is displayed in octal like \307. In non-C locales, some
- characters with values > 127 are displayable, and
- isprint() tells gl_get_line() which are and which aren't.
-
-27/11/2001 mcs@astro.caltech.edu
- getline.c pathutil.c history.c enhance.c demo2.c
- All arguments of the ctype.h character class functions
- are now cast to (int)(unsigned char). Previously they
- were cast to (int), which doesn't correctly conform to
- the requirements of the C standard, and could cause
- problems for characters with values > 127 on systems
- with signed char's.
-
-26/11/2001 mcs@astro.caltech.edu
- man3/enhance.3 man3/libtecla.3
- I started writing a man page for the enhance program.
-
-26/11/2001 mcs@astro.caltech.edu
- Makefile.in Makefile.rules INSTALL
- It is now possible to specify whether the demos and other
- programs are to be built, by overriding the default
- values of the DEMOS, PROGRAMS and PROGRAMS_R variables.
- I have also documented the BINDIR variable and the
- install_bin makefile target.
-
-22/11/2001 mcs@astro.caltech.edu
- getline.c libtecla.h libtecla.map man3/gl_get_line.3
- man3/gl_ignore_signal.3 man3/gl_trap_signal.3
- Signal handling has now been modified to be customizable.
- Signals that are trapped by default can be removed from
- the list of trapped signals, and signals that aren't
- currently trapped, can be added to the list. Applications
- can also specify the signal and terminal environments in
- which an application's signal handler is invoked, and
- what gl_get_line() does after the signal handler returns.
-
-13/11/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- Added half-bright, reverse-video and blinking text to the
- available prompt formatting options.
- getline.c
- Removed ^O from the default VT100 sgr0 capability
- string. Apparently it can cause problems with some
- terminal emulators, and we don't need it, since it turns
- off the alternative character set mode, which we don't
- use.
- getline.c
- gl_tigetstr() and gl_tgetstr() didn't guard against the
- error returns of tigetstr() and tgetstr() respectively.
- They now do.
-
-11/11/2001 mcs@astro.caltech.edu
- getline.c libtecla.h libtecla.map man3/gl_get_line.3
- man3/gl_prompt_style.3
- Although the default remains to display the prompt string
- literally, the new gl_prompt_style() function can be used
- to enable text attribute formatting directives in prompt
- strings, such as underlining, bold font, and highlighting
- directives.
-
-09/11/2001 mcs@astro.caltech.edu
- enhance.c Makefile.rules configure.in configure
- I added a new program to the distribution that allows one
- to run most third party programs with the tecla library
- providing command-line editing.
-
-08/11/2001 mcs@astro.caltech.edu
- libtecla.h getline.c man3/gl_get_line.3 history.c history.h
- I added a max_lines argument to gl_show_history() and
- _glh_show_history(). This can optionally be used to
- set a limit on the number of history lines displayed.
- libtecla.h getline.c man3/gl_get_line.3
- I added a new function called gl_replace_prompt(). This
- can be used by gl_get_line() callback functions to
- request that a new prompt be use when they return.
-
-06/11/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- I implemented, bound and documented the list-history
- action, used for listing historical lines of the current
- history group.
- getline.c man3/gl_get_line.3 man3/gl_echo_mode.3
- I wrote functions to specify and query whether subsequent
- lines will be visible as they are being typed.
-
-28/10/2001 mcs@astro.caltech.edu
- getline.c man3/gl_get_line.3
- For those cases where a terminal provides its own
- high-level terminal editing facilities, you can now
- specify an edit-mode argument of 'none'. This disables
- all tecla key bindings, and by using canonical terminal
- input mode instead of raw input mode, editing is left up
- to the terminal driver.
-
-21/10/2001 mcs@astro.caltech.edu
- libtecla.h getline.c history.c history.h
- man3/gl_get_line.3 man3/gl_history_info.3
- I added the new gl_state_of_history(),
- gl_range_of_history() and gl_size_of_history()
- functions for querying information about the
- history list.
- history.c
- While testing the new gl_size_of_history()
- function, I noticed that when the history buffer
- wrapped, any location nodes of old lines between
- the most recent line and the end of the buffer
- weren't being removed. This could result in bogus
- entries appearing at the start of the history list.
- Now fixed.
-
-20/10/2001 mcs@astro.caltech.edu
-
- libtecla.h getline.c history.c history.h
- man3/gl_get_line.3 man3/gl_lookup_history.3
- I added a function called gl_lookup_history(), that
- the application can use to lookup lines in the history
- list.
- libtecla.h getline.c history.c history.h man3/gl_get_line.3
- gl_show_history() now takes a format string argument
- to control how the line is displayed, and with what
- information. It also now provides the option of either
- displaying all history lines or just those of the
- current history group.
- getline.c man3/gl_get_line.3
- gl_get_line() only archives lines in the history buffer
- if the newline action was invoked by a newline or
- carriage return character.
-
-16/10/2001 mcs@astro.caltech.edu
-
- history.c history.h getline.c libtecla.h libtecla.map
- man3/gl_get_line.3 man3/gl_resize_history.3
- man3/gl_limit_history.3 man3/gl_clear_history.3
- man3/gl_toggle_history.3
- I added a number of miscellaneous history configuration
- functions. You can now resize or delete the history
- buffer, limit the number of lines that are allowed in the
- buffer, clear either all history or just the history of
- the current history group, and temporarily enable and
- disable the history mechanism.
-
-13/10/2001 mcs@astro.caltech.edu
-
- getline.c
- tputs_fp is now only declared if using termcap or
- terminfo.
- getline.c libtecla.map man3/gl_get_line.3
- man3/gl_terminal_size.3
- I added a public gl_terminal_size() function for
- updating and querying the current size of the terminal.
- update_version configure.in libtecla.h
- A user noted that on systems where the configure script
- couldn't be used, it was inconvenient to have the version
- number macros set by the configure script, so they are
- now specified in libtecla.h. To reduce the likelihood
- that the various files where the version number now
- appears might get out of sync, I have written the
- update_version script, which changes the version number
- in all of these files to a given value.
-
-01/10/2001 mcs@astro.caltech.edu
-
- getline.c history.c history.h man3/gl_get_line.3
- I added a max_lines argument to gl_save_history(), to
- allow people to optionally place a ceiling on the number
- of history lines saved. Specifying this as -1 sets the
- ceiling to infinity.
-
-01/10/2001 mcs@astro.caltech.edu
-
- configure.in configure
- Under digital unix, getline wouldn't compile with
- _POSIX_C_SOURCE set, due to type definitions needed by
- select being excluded by this flag. Defining the
- _OSF_SOURCE macro as well on this system, resolved this.
-
-30/09/2001 mcs@astro.caltech.edu
-
- getline.c libtecla.h history.c history.h man3/gl_get_line.3
- man3/gl_group_history.3
- I implemented history streams. History streams
- effectively allow multiple history lists to be stored in
- a single history buffer. Lines in the buffer are tagged
- with the current stream identification number, and
- lookups only consider lines that are marked with the
- current stream identifier.
- getline.c libtecla.h history.c history.h man3/gl_get_line.3
- man3/gl_show_history.3
- The new gl_show_history function displays the current
- history to a given stdio output stream.
-
-29/09/2001 mcs@astro.caltech.edu
-
- getline.c
- Previously new_GetLine() installed a persistent signal
- handler to be sure to catch the SIGWINCH (terminal size
- change) signal between calls to gl_get_line(). This had
- the drawback that if multiple GetLine objects were
- created, only the first GetLine object used after the
- signal was received, would see the signal and adapt to
- the new terminal size. Instead of this, a signal handler
- for sigwinch is only installed while gl_get_line() is
- running, and just after installing this handler,
- gl_get_line() checks for terminal size changes that
- might have occurred while the signal handler wasn't
- installed.
- getline.c
- Dynamically allocated copies of capability strings looked
- up in the terminfo or termcap databases are now made, so
- that calls to setupterm() etc for one GetLine object
- don't get trashed when another GetLine object calls
- setupterm() etc. It is now safe to allocate and use
- multiple GetLine objects, albeit only within a single
- thread.
-
-28/09/2001 mcs@astro.caltech.edu
-
- version.c Makefile.rules
- I added a function for querying the version number of
- the library.
-
-26/09/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3
- I added the new gl_watch_fd() function, which allows
- applications to register callback functions to be invoked
- when activity is seen on arbitrary file descriptors while
- gl_get_line() is awaiting keyboard input from the user.
-
- keytab.c
- If a request is received to delete a non-existent
- binding, which happens to be an ambiguous prefix of other
- bindings no complaint is now generated about it being
- ambiguous.
-
-23/09/2001 mcs@astro.caltech.edu
-
- getline.c history.c history.h man3/gl_get_line.3
- libtecla.map demo.c
- I added new public functions for saving and restoring the
- contents of the history list. The demo program now uses
- these functions to load and save history in ~/.demo_history.
-
-23/09/2001 mcs@astro.caltech.edu
-
- getline.c
- On trying the demo for the first time on a KDE konsole
- terminal, I discovered that the default M-O binding
- to repeat history was hiding the arrow keys, which are
- M-OA etc. I have removed this binding. The M-o (ie the
- lower case version of this), is still bound.
-
-18/09/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3 libtecla.map
- Automatic reading of ~/.teclarc is now postponed until
- the first call to gl_get_line(), to give the application
- the chance to specify alternative configuration sources
- with the new function gl_configure_getline(). The latter
- function allows configuration to be done with a string, a
- specified application-specific file, and/or a specified
- user-specific file. I also added a read-init-files action
- function, for re-reading the configuration files, if any.
- This is by default bound to ^X^R. This is all documented
- in gl_get_line.3.
-
-08/09/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3
- It is now possible to bind actions to key-sequences
- that start with printable characters. Previously
- keysequences were required to start with meta or control
- characters. This is documented in gl_get_line.3.
-
- getline.c man3/gl_get_line.3
- A customized completion function can now arrange for
- gl_get_line() to return the current input line whenever a
- successful completion has been made. This is signalled by
- setting the last character of the optional continuation
- suffix to a newline character. This is documented in
- gl_get_line.3.
-
-05/07/2001 Bug reported by Mike MacFaden, fixed by mcs
-
- configure.in
- There was a bug in the configure script that only
- revealed itself on systems without termcap but not
- terminfo (eg. NetBSD). I traced the bug back to a lack of
- sufficient quoting of multi-line m4 macro arguments in
- configure.in, and have now fixed this and recreated the
- configure script.
-
-05/07/2001 Bug reported and patched by Mike MacFaden (patch modified
- by mcs to match original intentions).
-
- getline.c
- getline.c wouldn't compile when termcap was selected as
- the terminal information database. setupterm() was being
- passed a non-existent variable, in place of the term[]
- argument of gl_control_strings(). Also if
- gl_change_terminal() is called with term==NULL, "ansi"
- is now substituted.
-
-02/07/2001 Version 1.3.3 released.
-
-27/06/2001 mcs@astro.caltech.edu
-
- getline.c expand.c cplmatch.c
- Added checks to fprintf() statements that write to the
- terminal.
- getline.c
- Move the cursor to the end of the line before suspending,
- so that the cursor doesn't get left in the middle of the
- input line.
- Makefile.in
- On systems that don't support shared libraries, the
- distclean target of make deleted libtecla.h. This has
- now been fixed.
- getline.c
- gl_change_terminal() was being called by gl_change_editor(),
- with the unwanted side effect that raw terminal modes were
- stored as those to be restored later, if called by an
- action function. gl_change_terminal() was being called in
- this case to re-establish terminal-specific key bindings,
- so I have just split this part of the function out into
- a separate function for both gl_change_editor() and
- gl_change_terminal() to call.
-
-12/06/2001 mcs@astro.caltech.edu
-
- getline.c
- Signal handling has been improved. Many more signals are
- now trapped, and instead of using a simple flag set by a
- signal handler, race conditions are avoided by blocking
- signals during most of the gl_get_line() code, and
- unblocking them via calls to sigsetjmp(), just before
- attempting to read each new character from the user.
- The matching use of siglongjmp() in the signal
- handlers ensures that signals are reblocked correctly
- before they are handled. In most cases, signals cause
- gl_get_line() to restore the terminal modes and signal
- handlers of the calling application, then resend the
- signal to the application. In the case of SIGINT, SIGHUP,
- SIGPIPE, and SIGQUIT, if the process still exists after
- the signals are resent, gl_get_line() immediately returns
- with appropriate values assigned to errno. If SIGTSTP,
- SIGTTIN or SIGTTOU signals are received, the process is
- suspended. If any other signal is received, and the
- process continues to exist after the signal is resent to
- the calling application, line input is resumed after the
- terminal is put back into raw mode, the gl_get_line()
- signal handling is restored, and the input line redrawn.
- man/gl_get_line(3)
- I added a SIGNAL HANDLING section to the gl_get_line()
- man page, describing the new signal handling features.
-
-21/05/2001 Version 1.3.2 released.
-
-21/05/2001 mcs@astro.caltech.edu
-
- getline.c
- When vi-replace-char was used to replace the character at
- the end of the line, it left the cursor one character to
- its right instead of on top of it. Now rememdied.
- getline.c
- When undoing, to properly emulate vi, the cursor is now
- left at the leftmost of the saved and current cursor
- positions.
- getline.c man3/gl_get_line.3
- Implemented find-parenthesis (%), delete-to-paren (M-d%),
- vi-change-to-paren (M-c%), copy-to-paren (M-y%).
- cplfile.c pcache.c
- In three places I was comparing the last argument of
- strncmp() to zero instead of the return value of
- strncmp().
-
-20/05/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3
- Implemented and documented the vi-repeat-change action,
- bound to the period key. This repeats the last action
- that modified the input line.
-
-19/05/2001 mcs@astro.caltech.edu
-
- man3/gl_get_line.3
- I documented the new action functions and bindings
- provided by Tim Eliseo, plus the ring-bell action and
- the new "nobeep" configuration option.
- getline.c
- I modified gl_change_editor() to remove and reinstate the
- terminal settings as well as the default bindings, since
- these have editor-specific differences. I also modified
- it to not abort if a key-sequence can't be bound for some
- reason. This allows the new vi-mode and emacs-mode
- bindings to be used safely.
- getline.c
- When the line was re-displayed on receipt of a SIGWINCH
- signal, the result wasn't visible until the next
- character was typed, since a call to fflush() was needed.
- gl_redisplay_line() now calls gl_flush_output() to remedy
- this.
-
-17/05/2001 mcs@astro.catlech.edu
-
- getline.c
- Under Linux, calling fflush(gl->output_fd) hangs if
- terminal output has been suspended with ^S. With the
- tecla library taking responsability for reading the stop
- and start characters this was a problem, because once
- hung in fflush(), the keyboard input loop wasn't entered,
- so the user couldn't type the start character to resume
- output. To remedy this, I now have the terminal process
- these characters, rather than the library.
-
-12/05/2001 mcs@astro.caltech.edu
-
- getline.c
- The literal-next action is now implemented as a single
- function which reads the next character itself.
- Previously it just set a flag which effected the
- interpretation of the next character read by the input
- loop.
- getline.c
- Added a ring-bell action function. This is currently
- unbound to any key by default, but it is used internally,
- and can be used by users that want to disable any of the
- default key-bindings.
-
-12/05/2001 Tim Eliseo (logged here by mcs)
-
- getline.c
- Don't reset gl->number until after calling an action
- function. By looking at whether gl->number is <0 or
- not, action functions can then tell whether the count
- that they were passed was explicitly specified by the
- user, as opposed to being defaulted to 1.
- getline.c
- In vi, the position at which input mode is entered
- acts as a barrier to backward motion for the few
- backward moving actions that are enabled in input mode.
- Tim added this barrier to getline.
- getline.c
- In gl_get_line() after reading an input line, or
- having the read aborted by a signal, the sig_atomic_t
- gl_pending_signal was being compared to zero instead
- of -1 to see if no signals had been received.
- gl_get_line() will thus have been calling raise(-1),
- which luckily didn't seem to do anything. Tim also
- arranged for errno to be set to EINTR when a signal
- aborts gl_get_line().
- getline.c
- The test in gl_add_char_to_line() for detecting
- when overwriting a character with a wider character,
- had a < where it needed a >. Overwriting with a wider
- character thus overwrote trailing characters. Tim also
- removed a redundant copy of the character into the
- line buffer.
- getline.c
- gl_cursor_left() and gl->cursor_right() were executing
- a lot of redundant code, when the existing call to the
- recently added gl_place_cursor() function, does all that
- is necessary.
- getline.c
- Remove redundant code from backward_kill_line() by
- re-implimenting in terms of gl_place_cursor() and
- gl_delete_chars().
- getline.c
- gl_forward_delete_char() now records characters in cut
- buffer when in vi command mode.
- getline.c
- In vi mode gl_backward_delete_char() now only deletes
- up to the point at which input mode was entered. Also
- gl_delete_chars() restores from the undo buffer when
- deleting in vi insert mode.
- getline.c
- Added action functions, vi-delete-goto-column,
- vi-change-to-bol, vi-change-line, emacs-mode, vi-mode,
- vi-forward-change-find, vi-backward-change-find,
- vi-forward-change-to, vi-backward-change-to,
- vi-change-goto-col, forward-delete-find, backward-delete-find,
- forward-delete-to, backward-delete-to,
- delete-refind, delete-invert-refind, forward-copy-find,
- backward-copy-find, forward-copy-to, backward-copy-to
- copy-goto-column, copy-rest-of-line, copy-to-bol, copy-line,
- history-re-search-forward, history-re-search-backward.
-
-06/05/2001 Version 1.3.1 released.
-
-03/05/2001 mcs@astro.caltech.edu
-
- configure.in
- Old versions of GNU ld don't accept version scripts.
- Under Linux I thus added a test to try out ld with
- the --version-script argument to see if it works.
- If not, version scripts aren't used.
- configure.in
- My test for versions of Solaris earlier than 7
- failed when confronted by a three figure version
- number (2.5.1). Fixed.
-
-30/04/2001 mcs@astro.caltech.edu
-
- getline.c
- In vi mode, history-search-backward and
- history-search-forward weren't doing anything when
- invoked at the start of an empty line, whereas
- they should have acted like up-history and down-history.
- Makefile.in Makefile.rules
- When shared libraries are being created, the build
- procedure now arranges for any alternate library
- links to be created as well, before linking the
- demos. Without this the demos always linked to the
- static libraries (which was perfectly ok, but wasn't a
- good example).
- Makefile.in Makefile.rules
- On systems on which shared libraries were being created,
- if there were no alternate list of names, make would
- abort due to a Bourne shell 'for' statement that didn't
- have any arguments. Currently there are no systems who's
- shared library configurations would trigger this
- problem.
- Makefile.rules
- The demos now relink to take account of changes to the
- library.
- configure.in configure
- When determining whether the reentrant version of the
- library should be compiled by default, the configure
- script now attempts to compile a dummy program that
- includes all of the appropriate system headers and
- defines _POSIX_C_SOURCE. This should now be a robust test
- on systems which use C macros to alias these function
- names to other internal functions.
- configure.in
- Under Solaris 2.6 and earlier, the curses library is in
- /usr/ccs/lib. Gcc wasn't finding this. In addition to
- remedying this, I had to remove "-z text" from
- LINK_SHARED under Solaris to get it to successfully
- compile the shared library against the static curses
- library.
- configure.in
- Under Linux the -soname directive was being used
- incorrectly, citing the fully qualified name of the
- library instead of its major version alias. This will
- unfortunately mean that binaries linked with the 1.2.3
- and 1.2.4 versions of the shared library won't use
- later versions of the library unless relinked.
-
-30/04/2001 mcs@astro.caltech.edu
-
- getline.c
- In gl_get_input_line(), don't redundantly copy the
- start_line if start_line == gl->line.
-
-30/04/2001 Version 1.3.0 released.
-
-28/04/2001 mcs@astro.caltech.edu
-
- configure.in
- I removed the --no-undefined directive from the Linux
- LINK_SHARED command. After recent patches to our RedHat
- 7.0 systems ld started reporting some internal symbols of
- libc as being undefined. Using nm on libc indicated that
- the offending symbols are indeed defined, albeit as
- "common" symbols, so there appears to be a bug in
- RedHat's ld. Removing this flag allows the tecla shared
- library to compile, and programs appear to function fine.
- man3/gl_get_line.3
- The default key-sequence used to invoke the
- read-from-file action was incorrectly cited as ^Xi
- instead of ^X^F.
-
-26/04/2001 mcs@astro.caltech.edu
-
- getline.c man3/gl_get_line.3
- A new vi-style editing mode was added. This involved
- adding many new action functions, adding support for
- specifying editing modes in users' ~/.teclarc files,
- writing a higher level cursor motion function to support
- the different line-end bounds required in vi command
- mode, and a few small changes to support the fact that vi
- has two modes, input mode and command mode with different
- bindings.
-
- When vi editing mode is enabled, any binding that starts
- with an escape or a meta character, is interpreted as a
- command-mode binding, and switches the library to vi
- command mode if not already in that mode. Once in command
- mode the first character of all keysequences entered
- until input mode is re-enabled, are quietly coerced to
- meta characters before being looked up in the key-binding
- table. So, for example, in the key-binding table, the
- standard vi command-mode 'w' key, which moves the cursor
- one word to the right, is represented by M-w. This
- emulates vi's dual sets of bindings in a natural way
- without needing large changes to the library, or new
- binding syntaxes. Since cursor keys normally emit
- keysequences which start with escape, it also does
- something sensible when a cursor key is pressed during
- input mode (unlike true vi, which gets upset).
-
- I also added a ^Xg binding for the new list-glob action
- to both the emacs and vi key-binding tables. This lists
- the files that match the wild-card expression that
- precedes it on the command line.
-
- The function that reads in ~/.teclarc used to tell
- new_GetLine() to abort if it encountered anything that it
- didn't understand in this file. It now just reports an
- error and continues onto the next line.
- Makefile.in:
- When passing LIBS=$(LIBS) to recursive invokations of
- make, quotes weren't included around the $(LIBS) part.
- This would cause problems if LIBS ever contained more
- than one word (with the supplied configure script this
- doesn't happen currently). I added these quotes.
- expand.c man3/ef_expand_file.3:
- I wrote a new public function called ef_list_expansions(),
- to list the matching filenames returned by
- ef_expand_file().
-
- I also fixed the example in the man page, which cited
- exp->file instead of exp->files, and changed the
- dangerous name 'exp' with 'expn'.
- keytab.c:
- Key-binding tables start with 100 elements, and are
- supposedly incremented in size by 100 elements whenever
- the a table runs out of space. The realloc arguments to
- do this were wrong. This would have caused problems if
- anybody added a lot of personal bindings in their
- ~/.teclarc file. I only noticed it because the number of
- key bindings needed by the new vi mode exceeded this
- number.
- libtecla.map
- ef_expand_file() is now reported as having been added in
- the upcoming 1.3.0 release.
-
-25/03/2001 Markus Gyger (logged here by mcs)
-
- Makefile.in:
- Make symbolic links to alternative shared library names
- relative instead of absolute.
- Makefile.rules:
- The HP-UX libtecla.map.opt file should be made in the
- compilation directory, to allow the source code directory
- to be on a readonly filesystem.
- cplmatch.c demo2.c history.c pcache.c
- To allow the library to be compiled with a C++ compiler,
- without generating warnings, a few casts were added where
- void* return values were being assigned directly to
- none void* pointer variables.
-
-25/03/2001 mcs@astro.caltech.edu
-
- libtecla.map:
- Added comment header to explain the purpose of the file.
- Also added cpl_init_FileArgs to the list of exported
- symbols. This symbol is deprecated, and no longer
- documented, but for backwards compatibility, it should
- still be exported.
- configure:
- I had forgotten to run autoconf before releasing version
- 1.2.4, so I have just belatedly done so. This enables
- Markus' changes to "configure.in" documented previously,
- (see 17/03/2001).
-
-20/03/2001 John Levon (logged here by mcs)
-
- libtecla.h
- A couple of the function prototypes in libtecla.h have
- (FILE *) argument declarations, which means that stdio.h
- needs to be included. The header file should be self
- contained, so libtecla.h now includes stdio.h.
-
-18/03/2001 Version 1.2.4 released.
-
- README html/index.html configure.in
- Incremented minor version from 3 to 4.
-
-18/03/2001 mcs@astro.caltech.edu
-
- getline.c
- The fix for the end-of-line problem that I released a
- couple of weeks ago, only worked for the first line,
- because I was handling this case when the cursor position
- was equal to the last column, rather than when the cursor
- position modulo ncolumn was zero.
- Makefile.in Makefile.rules
- The demos are now made by default, their rules now being
- int Makefile.rules instead of Makefile.in.
- INSTALL
- I documented how to compile the library in a different
- directory than the distribution directory.
- I also documented features designed to facilitate
- configuring and building the library as part of another
- package.
-
-17/03/2001 Markus Gyger (logged here by mcs)
-
- getline.c
- Until now cursor motions were done one at a time. Markus
- has added code to make use the of the terminfo capability
- that moves the cursor by more than one position at a
- time. This greatly improves performance when editing near
- the start of long lines.
- getline.c
- To further improve performance, Markus switched from
- writing one character at a time to the terminal, using
- the write() system call, to using C buffered output
- streams. The output buffer is only flushed when
- necessary.
- Makefile.rules Makefile.in configure.in
- Added support for compiling for different architectures
- in different directories. Simply create another directory
- and run the configure script located in the original
- directory.
- Makefile.in configure.in libtecla.map
- Under Solaris, Linux and HP-UX, symbols that are to be
- exported by tecla shared libraries are explicitly specified
- via symbol map files. Only publicly documented functions
- are thus visible to applications.
- configure.in
- When linking shared libraries under Solaris SPARC,
- registers that are reserved for applications are marked
- as off limits to the library, using -xregs=no%appl when
- compiling with Sun cc, or -mno-app-regs when compiling
- with gcc. Also removed -z redlocsym for Solaris, which
- caused problems under some releases of ld.
- homedir.c (after minor changes by mcs)
- Under ksh, ~+ expands to the current value of the ksh
- PWD environment variable, which contains the path of
- the current working directory, including any symbolic
- links that were traversed to get there. The special
- username "+" is now treated equally by tecla, except
- that it substitutes the return value of getcwd() if PWD
- either isn't set, or if it points at a different
- directory than that reported by getcwd().
-
-08/03/2001 Version 1.2.3 released.
-
-08/03/2001 mcs@astro.caltech.edu
-
- getline.c
- On compiling the library under HP-UX for the first time
- I encountered and fixed a couple of bugs:
-
- 1. On all systems except Solaris, the callback function
- required by tputs() takes an int argument for the
- character that is to be printed. Under Solaris it
- takes a char argument. The callback function was
- passing this argument, regardless of type, to write(),
- which wrote the first byte of the argument. This was
- fine under Solaris and under little-endian systems,
- because the first byte contained the character to be
- written, but on big-endian systems, it always wrote
- the zero byte at the other end of the word. As a
- result, no control characters were being written to
- the terminal.
- 2. While attempting to start a newline after the user hit
- enter, the library was outputting the control sequence
- for moving the cursor down, instead of the newline
- character. On many systems the control sequence for
- moving the cursor down happends to be a newline
- character, but under HP-UX it isn't. The result was
- that no new line was being started under HP-UX.
-
-04/03/2001 mcs@astro.caltech.edu
-
- configure.in Makefile.in Makefile.stub configure config.guess
- config.sub Makefile.rules install-sh PORTING README INSTALL
- Configuration and compilation of the library is now
- performed with the help of an autoconf configure
- script. In addition to relieving the user of the need to
- edit the Makefile, this also allows automatic compilation
- of the reentrant version of the library on platforms that
- can handle it, along with the creation of shared
- libraries where configured. On systems that aren't known
- to the configure script, just the static tecla library is
- compiled. This is currently the case on all systems
- except Linux, Solaris and HP-UX. In the hope that
- installers will provide specific conigurations for other
- systems, the configure.in script is heavily commented,
- and instructions on how to use are included in a new
- PORTING file.
-
-24/02/2001 Version 1.2b released.
-
-22/02/2001 mcs@astro.caltech.edu
-
- getline.c
- It turns out that most terminals, but not all, on writing
- a character in the rightmost column, don't wrap the
- cursor onto the next line until the next character is
- output. This library wasn't aware of this and thus if one
- tried to reposition the cursor from the last column,
- gl_get_line() thought that it was moving relative to a
- point on the next line, and thus moved the cursor up a
- line. The fix was to write one extra character when in
- the last column to force the cursor onto the next line,
- then backup the cursor to the start of the new line.
- getline.c
- On terminal initialization, the dynamic LINES and COLUMNS
- environment variables were ignored unless
- terminfo/termcap didn't return sensible dimensions. In
- practice, when present they should override the static
- versions in the terminfo/termcap databases. This is the
- new behavior. In reality this probably won't have caused
- many problems, because a SIGWINCH signal which informs of
- terminal size changes is sent when the terminal is
- opened, so the dimensions established during
- initialization quickly get updated on most systems.
-
-18/02/2001 Version 1.2a released.
-
-18/02/2001 mcs@astro.caltech.edu
-
- getline.c
- Three months ago I moved the point at which termios.h
- was included in getline.c. Unfortunately, I didn't notice
- that this moved it to after the test for TIOCGWINSZ being
- defined. This resulted in SIGWINCH signals not being
- trapped for, and thus terminal size changes went
- unnoticed. I have now moved the test to after the
- inclusion of termios.h.
-
-12/02/2001 Markus Gyger (described here by mcs)
-
- man3/pca_lookup_file.3 man3/gl_get_line.3
- man3/ef_expand_file.3 man3/cpl_complete_word.3
- In the 1.2 release of the library, all functions in the
- library were given man pages. Most of these simply
- include one of the above 4 man pages, which describe the
- functions while describing the modules that they are in.
- Markus added all of these function names to the lists in
- the "NAME" headers of the respective man pages.
- Previously only the primary function of each module was
- named there.
-
-11/02/2001 mcs@astro.caltech.edu
-
- getline.c
- On entering a line that wrapped over two or more
- terminal, if the user pressed enter when the cursor
- wasn't on the last of the wrapped lines, the text of the
- wrapped lines that followed it got mixed up with the next
- line written by the application, or the next input
- line. Somehow this slipped through the cracks and wasn't
- noticed until now. Anyway, it is fixed now.
-
-09/02/2001 Version 1.2 released.
-
-04/02/2001 mcs@astro.caltech.edu
-
- pcache.c libtecla.h
- With all filesystems local, demo2 was very fast to start
- up, but on a Sun system with one of the target
- directories being on a remote nfs mounted filesystem, the
- startup time was many seconds. This was due to the
- executable selection callback being applied to all files
- in the path at startup. To avoid this, all files are now
- included in the cache, and the application specified
- file-selection callback is only called on files as they
- are matched. Whether the callback rejected or accepted
- them is then cached so that the next time an already
- checked file is looked at, the callback doesn't have to
- be called. As a result, startup is now fast on all
- systems, and since usually there are only a few matching
- file completions at a time, the delay during completion
- is also usually small. The only exception is if the user
- tries to complete an empty string, at which point all
- files have to be checked. Having done this once, however,
- doing it again is fast.
- man3/pca_lookup_file.3
- I added a man page documenting the new PathCache module.
- man3/<many-new-files>.3
- I have added man pages for all of the functions in each
- of the modules. These 1-line pages use the .so directive
- to redirect nroff to the man page of the parent module.
- man Makefile update_html
- I renamed man to man3 to make it easier to test man page
- rediction, and updated Makefile and update_html
- accordingly. I also instructed update_html to ignore
- 1-line man pages when making html equivalents of the man
- pages.
- cplmatch.c
- In cpl_list_completions() the size_t return value of
- strlen() was being used as the length argument of a "%*s"
- printf directive. This ought to be an int, so the return
- value of strlen() is now cast to int. This would have
- caused problems on architectures where the size of a
- size_t is not equal to the size of an int.
-
-02/02/2001 mcs@astro.caltech.edu
-
- getline.c
- Under UNIX, certain terminal bindings are set using the
- stty command. This, for example, specifies which control
- key generates a user-interrupt (usually ^C or ^Y). What I
- hadn't realized was that ASCII NUL is used as the way to
- specify that one of these bindings is unset. I have now
- modified the code to skip unset bindings, leaving the
- corresponding action bound to the built-in default, or a
- user provided binding.
-
-28/01/2001 mcs@astro.caltech.edu
-
- pcache.c libtecla.h
- A new module was added which supports searching for files
- in any colon separated list of directories, such as the
- unix execution PATH environment variable. Files in these
- directories, after being individually okayed for
- inclusion via an application provided callback, are
- cached in a PathCache object. You can then look up the
- full pathname of a given filename, or you can use the
- provided completion callback to list possible completions
- in the path-list. The contents of relative directories,
- such as ".", obviously can't be cached, so these
- directories are read on the fly during lookups and
- completions. The obvious application of this facility is
- to provide Tab-completion of commands, and thus a
- callback to place executable files in the cache, is
- provided.
- demo2.c
- This new program demonstrates the new PathCache
- module. It reads and processes lines of input until the
- word 'exit' is entered, or C-d is pressed. The default
- tab-completion callback is replaced with one which at the
- start of a line, looks up completions of commands in the
- user's execution path, and when invoked in other parts of
- the line, reverts to normal filename completion. Whenever
- a new line is entered, it extracts the first word on the
- line, looks it up in the user's execution path to see if
- it corresponds to a known command file, and if so,
- displays the full pathname of the file, along with the
- remaining arguments.
- cplfile.c
- I added an optional pair of callback function/data
- members to the new cpl_file_completions() configuration
- structure. Where provided, this callback is asked
- on a file-by-file basis, which files should be included
- in the list of file completions. For example, a callback
- is provided for listing only completions of executable
- files.
- cplmatch.c
- When listing completions, the length of the type suffix
- of each completion wasn't being taken into account
- correctly when computing the column widths. Thus the
- listing appeared ragged sometimes. This is now fixed.
- pathutil.c
- I added a function for prepending a string to a path,
- and another for testing whether a pathname referred to
- an executable file.
-
-28/01/2001 mcs@astro.caltech.edu
-
- libtecla.h cplmatch.c man/cpl_complete_word.3
- The use of a publically defined structure to configure
- the cpl_file_completions() callback was flawed, so a new
- approach has been designed, and the old method, albeit
- still supported, is no longer documented in the man
- pages. The definition of the CplFileArgs structure in
- libtecla.h is now accompanied by comments warning people
- not to modify it, since modifications could break
- applications linked to shared versions of the tecla
- library. The new method involves an opaque CplFileConf
- object, instances of which are returned by a provided
- constructor function, configured with provided accessor
- functions, and when no longer needed, deleted with a
- provided destructor function. This is documented in the
- cpl_complete_word man page. The cpl_file_completions()
- callback distinguishes what type of configuration
- structure it has been sent by virtue of a code placed at
- the beginning of the CplFileConf argument by its
- constructor.
-
-04/01/2001 mcs@astro.caltech.edu (Release of version 1.1j)
-
- getline.c
- I added upper-case bindings for the default meta-letter
- keysequences such as M-b. They thus continue to work
- when the user has caps-lock on.
- Makefile
- I re-implemented the "install" target in terms of new
- install_lib, install_inc and install_man targets. When
- distributing the library with other packages, these new
- targets allows for finer grained control of the
- installation process.
-
-30/12/2000 mcs@astro.caltech.edu
-
- getline.c man/gl_get_line.3
- I realized that the recall-history action that I
- implemented wasn't what Markus had asked me for. What he
- actually wanted was for down-history to continue going
- forwards through a previous history recall session if no
- history recall session had been started while entering
- the current line. I have thus removed the recall-history
- action and modified the down-history action function
- accordingly.
-
-24/12/2000 mcs@astro.caltech.edu
-
- getline.c
- I modified gl_get_line() to allow the previously returned
- line to be passed in the start_line argument.
- getline.c man/gl_get_line.3
- I added a recall-history action function, bound to M^P.
- This recalls the last recalled history line, regardless
- of whether it was from the current or previous line.
-
-13/12/2000 mcs@astro.caltech.edu (Release of version 1.1i)
-
- getline.c history.h history.c man/gl_get_line.3
- I implemented the equivalent of the ksh Operate action. I
- have named the tecla equivalent "repeat-history". This
- causes the line that is to be edited to returned, and
- arranges for the next most recent history line to be
- preloaded on the next call to gl_get_line(). Repeated
- invocations of this action thus result in successive
- history lines being repeated - hence the
- name. Implementing the ksh Operate action was suggested
- by Markus Gyger. In ksh it is bound to ^O, but since ^O
- is traditionally bound by the default terminal settings,
- to stop-output, I have bound the tecla equivalent to M-o.
-
-01/12/2000 mcs@astro.caltech.edu (Release of version 1.1h)
-
- getline.c keytab.c keytab.h man/gl_get_line.3
- I added a digit-argument action, to allow repeat
- counts for actions to be entered. As in both tcsh
- and readline, this is bound by default to each of
- M-0, M-1 through to M-9, the number being appended
- to the current repeat count. Once one of these has been
- pressed, the subsequent digits of the repeat count can be
- typed with or without the meta key pressed. It is also
- possible to bind digit-argument to other keys, with or
- without a numeric final keystroke. See man page for
- details.
-
- getline.c man/gl_get_line.3
- Markus noted that my choice of M-< for the default
- binding of read-from-file, could be confusing, since
- readline binds this to beginning-of-history. I have
- thus rebound it to ^X^F (ie. like find-file in emacs).
-
- getline.c history.c history.h man/gl_get_line.3
- I have now implemented equivalents of the readline
- beginning-of-history and end-of-history actions.
- These are bound to M-< and M-> respectively.
-
- history.c history.h
- I Moved the definition of the GlHistory type, and
- its subordinate types from history.h to history.c.
- There is no good reason for any other module to
- have access to the innards of this structure.
-
-27/11/2000 mcs@astro.caltech.edu (Release of version 1.1g)
-
- getline.c man/gl_get_line.3
- I added a "read-from-file" action function and bound it
- by default to M-<. This causes gl_get_line() to
- temporarily return input from the file who's name
- precedes the cursor.
-
-26/11/2000 mcs@astro.caltech.edu
-
- getline.c keytab.c keytab.h man/gl_get_line.3
- I have reworked some of the keybinding code again.
-
- Now, within key binding strings, in addition to the
- previously existing notation, you can now use M-a to
- denote meta-a, and C-a to denote control-a. For example,
- a key binding which triggers when the user presses the
- meta key, the control key and the letter [
- simultaneously, can now be denoted by M-C-[, or M-^[ or
- \EC-[ or \E^[.
-
- I also updated the man page to use M- instead of \E in
- the list of default bindings, since this looks cleaner.
-
- getline.c man/gl_get_line.3
- I added a copy-region-as-kill action function and
- gave it a default binding to M-w.
-
-22/11/2000 mcs@astro.caltech.edu
-
- *.c
- Markus Gyger sent me a copy of a previous version of
- the library, with const qualifiers added in appropriate
- places. I have done the same for the latest version.
- Among other things, this gets rid of the warnings
- that are generated if one tells the compiler to
- const qualify literal strings.
-
- getline.c getline.h glconf.c
- I have moved the contents of glconf.c and the declaration
- of the GetLine structure into getline.c. This is cleaner,
- since now only functions in getline.c can mess with the
- innards of GetLine objects. It also clears up some problems
- with system header inclusion order under Solaris, and also
- the possibility that this might result in inconsistent
- system macro definitions, which in turn could cause different
- declarations of the structure to be seen in different files.
-
- hash.c
- I wrote a wrapper function to go around strcmp(), such that
- when hash.c is compiled with a C++ compiler, the pointer
- to the wrapper function is a C++ function pointer.
- This makes it compatible with comparison function pointer
- recorded in the hash table.
-
- cplmatch.c getline.c libtecla.h
- Markus noted that the Sun C++ compiler wasn't able to
- match up the declaration of cpl_complete_word() in
- libtecla.h, where it is surrounded by a extern "C" {}
- wrapper, with the definition of this function in
- cplmatch.c. My suspicion is that the compiler looks not
- only at the function name, but also at the function
- arguments to see if two functions match, and that the
- match_fn() argument, being a fully blown function pointer
- declaration, got interpetted as that of a C function in
- one case, and a C++ function in the other, thus
- preventing a match.
-
- To fix this I now define a CplMatchFn typedef in libtecla.h,
- and use this to declare the match_fn callback.
-
-20/11/2000 (Changes suggested by Markus Gyger to support C++ compilers):
- expand.c
- Renamed a variable called "explicit" to "xplicit", to
- avoid conflicts when compiling with C++ compilers.
- *.c
- Added explicit casts when converting from (void *) to
- other pointer types. This isn't needed in C but it is
- in C++.
- getline.c
- tputs() has a strange declaration under Solaris. I was
- enabling this declaration when the SPARC feature-test
- macro was set. Markus changed the test to hinge on the
- __sun and __SVR4 macros.
- direader.c glconf.c stringrp.c
- I had omitted to include string.h in these two files.
-
- Markus also suggested some other changes, which are still
- under discussion. With the just above changes however, the
- library compiles without complaint using g++.
-
-19/11/2000 mcs@astro.caltech.edu
- getline.h getline.c keytab.c keytab.h glconf.c
- man/gl_get_line.3
- I added support for backslash escapes (include \e
- for the keyboard escape key) and literal binary
- characters to the characters allowed within key sequences
- of key bindings.
-
- getline.h getline.c keytab.c keytab.h glconf.c
- man/gl_get_line.3
- I introduced symbolic names for the arrow keys, and
- modified the library to use the cursor key sequences
- reported by terminfo/termcap in addition to the default
- ANSI ones. Anything bound to the symbolically named arrow
- keys also gets bound to the default and terminfo/termcap
- cursor key sequences. Note that under Solaris
- terminfo/termcap report the properties of hardware X
- terminals when TERM is xterm instead of the terminal
- emulator properties, and the cursor keys on these two
- systems generate different key sequences. This is an
- example of why extra default sequences are needed.
-
- getline.h getline.c keytab.c
- For some reason I was using \e to represent the escape
- character. This is supported by gcc, which thus doesn't
- emit a warning except with the -pedantic flag, but isn't
- part of standard C. I now use a macro to define escape
- as \033 in getline.h, and this is now used wherever the
- escape character is needed.
-
-17/11/2000 mcs@astro.caltech.edu (Release of version 1.1d)
-
- getline.c, man/gl_get_line(3), html/gl_get_line.html
- In tcsh ^D is bound to a function which does different
- things depending on where the cursor is within the input
- line. I have implemented its equivalent in the tecla
- library. When invoked at the end of the line this action
- function displays possible completions. When invoked on
- an empty line it causes gl_get_line() to return NULL,
- thus signalling end of input. When invoked within a line
- it invokes forward-delete-char, as before. The new action
- function is called del-char-or-list-or-eof.
-
- getline.c, man/gl_get_line(3), html/gl_get_line.html
- I found that the complete-word and expand-file actions
- had underscores in their names instead of hyphens. This
- made them different from all other action functions, so I
- have changed the underscores to hyphens.
-
- homedir.c
- On SCO UnixWare while getpwuid_r() is available, the
- associated _SC_GETPW_R_SIZE_MAX macro used by sysconf()
- to find out how big to make the buffer to pass to this
- function to cater for any password entry, doesn't
- exist. I also hadn't catered for the case where sysconf()
- reports that this limit is indeterminate. I have thus
- change the code to substitute a default limit of 1024 if
- either the above macro isn't defined or if sysconf() says
- that the associated limit is indeterminate.
-
-17/11/2000 mcs@astro.caltech.edu (Release of version 1.1c)
-
- getline.c, getline.h, history.c, history.h
- I have modified the way that the history recall functions
- operate, to make them better emulate the behavior of
- tcsh. Previously the history search bindings always
- searched for the prefix that preceded the cursor, then
- left the cursor at the same point in the line, so that a
- following search would search using the same prefix. This
- isn't how tcsh operates. On finding a matching line, tcsh
- puts the cursor at the end of the line, but arranges for
- the followup search to continue with the same prefix,
- unless the user does any cursor motion or character
- insertion operations in between, in which case it changes
- the search prefix to the new set of characters that are
- before the cursor. There are other complications as well,
- which I have attempted to emulate. As far as I can
- tell, the tecla history recall facilities now fully
- emulate those of tcsh.
-
-16/11/2000 mcs@astro.caltech.edu (Release of version 1.1b)
-
- demo.c:
- One can now quit from the demo by typing exit.
-
- keytab.c:
- The first entry of the table was getting deleted
- by _kt_clear_bindings() regardless of the source
- of the binding. This deleted the up-arrow binding.
- Symptoms noted by gazelle@yin.interaccess.com.
-
- getline.h:
- Depending on which system include files were include
- before the inclusion of getline.h, SIGWINCH and
- TIOCGWINSZ might or might not be defined. This resulted
- in different definitions of the GetLine object in
- different files, and thus some very strange bugs! I have
- now added #includes for the necessary system header files
- in getline.h itself. The symptom was that on creating a
- ~/.teclarc file, the demo program complained of a NULL
- argument to kt_set_keybinding() for the first line of the
- file.
-
-15/11/2000 mcs@astro.caltech.edu (Release of version 1.1a)
-
- demo.c:
- I had neglected to check the return value of
- new_GetLine() in the demo program. Oops.
-
- getline.c libtecla.h:
- I wrote gl_change_terminal(). This allows one to change to
- a different terminal or I/O stream, by specifying the
- stdio streams to use for input and output, along with the
- type of terminal that they are connected to.
-
- getline.c libtecla.h:
- Renamed GetLine::isterm to GetLine::is_term. Standard
- C reserves names that start with "is" followed by
- alphanumeric characters, so this avoids potential
- clashes in the future.
-
- keytab.c keytab.h
- Each key-sequence can now have different binding
- functions from different sources, with the user provided
- binding having the highest precedence, followed by the
- default binding, followed by any terminal specific
- binding. This allows gl_change_terminal() to redefine the
- terminal-specific bindings each time that
- gl_change_terminal() is called, without overwriting the
- user specified or default bindings. In the future, it will
- also allow for reconfiguration of user specified
- bindings after the call to new_GetLine(). Ie. deleting a
- user specified binding should reinstate any default or
- terminal specific binding.
-
- man/cpl_complete_word.3 html/cpl_complete_word.html
- man/ef_expand_file.3 html/ef_expand_file.html
- man/gl_get_line.3 html/gl_get_line.html
- I added sections on thread safety to the man pages of the
- individual modules.
-
- man/gl_get_line.3 html/gl_get_line.html
- I documented the new gl_change_terminal() function.
-
- man/gl_get_line.3 html/gl_get_line.html
- In the description of the ~/.teclarc configuration file,
- I had omitted the 'bind' command word in the example
- entry. I have now remedied this.
-</PRE></BODY>
diff --git a/libtecla-1.4.1/html/cpl_complete_word.html b/libtecla-1.4.1/html/cpl_complete_word.html
deleted file mode 100644
index 063359d..0000000
--- a/libtecla-1.4.1/html/cpl_complete_word.html
+++ /dev/null
@@ -1,423 +0,0 @@
-<head>
-<title>Manual Page</title>
-</head>
-<body>
-<pre>
-</pre><h2>NAME</h2><pre>
- cpl_complete_word, cfc_file_start, cfc_literal_escapes,
- cfc_set_check_fn, cpl_add_completion, cpl_file_completions,
- cpl_last_error, cpl_list_completions, cpl_record_error,
- del_CplFileConf, del_WordCompletion, new_CplFileConf,
- new_WordCompletion - lookup possible completions for a word
-
-</pre><h2>SYNOPSIS</h2><pre>
- #include &lt;stdio.h&gt;
- #include &lt;libtecla.h&gt;
-
- WordCompletion *new_WordCompletion(void);
-
- WordCompletion *del_WordCompletion(WordCompletion *cpl);
-
- #define CPL_MATCH_FN(fn) int (fn)(WordCompletion *cpl, \
- void *data, \
- const char *line, \
- int word_end)
- typedef CPL_MATCH_FN(CplMatchFn);
-
- CPL_MATCH_FN(cpl_file_completions);
-
- CplMatches *cpl_complete_word(WordCompletion *cpl,
- const char *line,
- int word_end, void *data,
- CplMatchFn *match_fn);
-
- int cpl_list_completions(CplMatches *result, FILE *fp,
- int term_width);
-
- int cpl_add_completion(WordCompletion *cpl,
- const char *line, int word_start,
- int word_end, const char *suffix,
- const char *type_suffix,
- const char *cont_suffix);
-
- void cpl_record_error(WordCompletion *cpl,
- const char *errmsg);
-
- const char *cpl_last_error(WordCompletion *cpl);
-
-
-
-</pre><h2>DESCRIPTION</h2><pre>
- The cpl_complete_word() function is part of the tecla
- library (see the <a href="libtecla.html">libtecla(3)</a> man page). It is usually called
- behind the scenes by <a href="gl_get_line.html">gl_get_line(3)</a>, but can also be called
- separately.
-
- Given an input line containing an incomplete word to be com-
- pleted, it calls a user-provided callback function (or the
- provided file-completion callback function) to look up all
- possible completion suffixes for that word. The callback
- function is expected to look backward in the line, starting
- from the specified cursor position, to find the start of the
- word to be completed, then to look up all possible comple-
- tions of that word and record them, one at a time by calling
- cpl_add_completion().
-
-
- Descriptions of the functions of this module are as follows:
-
- CompleteWord *new_CompleteWord(void)
-
- This function creates the resources used by the
- cpl_complete_word() function. In particular, it maintains
- the memory that is used to return the results of calling
- cpl_complete_word().
-
- CompleteWord *del_CompleteWord(CompleteWord *cpl)
-
- This function deletes the resources that were returned by a
- previous call to new_CompleteWord(). It always returns NULL
- (ie. a deleted object). It does nothing if the cpl argument
- is NULL.
-
- The callback functions which lookup possible completions
- should be defined with the following macro (which is defined
- in libtecla.h).
-
- #define CPL_MATCH_FN(fn) int (fn)(WordCompletion *cpl, \
- void *data, \
- const char *line, \
- int word_end)
-
- Functions of this type are called by cpl_complete_word(),
- and all of the arguments of the callback are those that were
- passed to said function. In particular, the line argument
- contains the input line containing the word to be completed,
- and word_end is the index of the character that follows the
- last character of the incomplete word within this string.
- The callback is expected to look backwards from word_end for
- the start of the incomplete word. What constitutes the start
- of a word clearly depends on the application, so it makes
- sense for the callback to take on this responsibility. For
- example, the builtin filename completion function looks
- backwards until it hits an unescaped space, or the start of
- the line. Having found the start of the word, the callback
- should then lookup all possible completions of this word,
- and record each completion via separate calls to
- cpl_add_completion(). If the callback needs access to an
- application-specific symbol table, it can pass it and any
- other data that it needs, via the data argument. This
- removes any need for globals.
-
- The callback function should return 0 if no errors occur. On
- failure it should return 1, and register a terse description
- of the error by calling cpl_record_error().
-
- void cpl_record_error(WordCompletion *cpl,
- const char *errmsg);
-
- The last error message recorded by calling
- cpl_record_error(), can subsequently be queried by calling
- cpl_last_error(), as described later.
-
- int cpl_add_completion(WordCompletion *cpl,
- const char *line, int word_start,
- int word_end, const char *suffix,
- const char *type_suffix,
- const char *cont_suffix);
-
- The cpl_add_completion() function is called zero or more
- times by the completion callback function to record each
- possible completion in the specified WordCompletion object.
- These completions are subsequently returned by
- cpl_complete_word(), as described later. The cpl, line, and
- word_end arguments should be those that were passed to the
- callback function. The word_start argument should be the
- index within the input line string of the start of the word
- that is being completed. This should equal word_end if a
- zero-length string is being completed. The suffix argument
- is the string that would have to be appended to the incom-
- plete word to complete it. If this needs any quoting (eg.
- the addition of backslashes before special charaters) to be
- valid within the displayed input line, this should be
- included. A copy of the suffix string is allocated inter-
- nally, so there is no need to maintain your copy of the
- string after cpl_add_completion() returns.
-
- Note that in the array of possible completions which the
- cpl_complete_word() function returns, the suffix recorded by
- cpl_add_completion() is listed along with the concatentation
- of this suffix with the word that lies between word_start
- and word_end in the input line.
-
- The type_suffix argument specifies an optional string to be
- appended to the completion if it is displayed as part of a
- list of completions by cpl_list_completions(). The intention
- is that this indicate to the user the type of each comple-
- tion. For example, the file completion function places a
- directory separator after completions that are directories,
- to indicate their nature to the user. Similary, if the com-
- pletion were a function, you could indicate this to the user
- by setting type_suffix to "()". Note that the type_suffix
- string isn't copied, so if the argument isn't a literal
- string between speech marks, be sure that the string remains
- valid for at least as long as the results of
- cpl_complete_word() are needed.
-
- The cont_suffix is a continuation suffix to append to the
- completed word in the input line if this is the only comple-
- tion. This is something that isn't part of the completion
- itself, but that gives the user an indication about how they
- might continue to extend the token. For example, the file-
- completion callback function adds a directory separator if
- the completed word is a directory. If the completed word
- were a function name, you could similarly aid the user by
- arranging for an open parenthesis to be appended.
-
- CplMatches *cpl_complete_word(WordCompletion *cpl,
- const char *line,
- int word_end, void *data,
- CplMatchFn *match_fn);
-
- The cpl_complete_word() is normally called behind the scenes
- by <a href="gl_get_line.html">gl_get_line(3)</a>, but can also be called separately if you
- separately allocate a WordCompletion object. It performs
- word completion, as described at the beginning of this sec-
- tion. Its first argument is a resource object previously
- returned by new_CompleteWord(). The line argument is the
- input line string, containing the word to be completed. The
- word_end argument contains the index of the character in the
- input line, that just follows the last character of the word
- to be completed. When called by gl_get_line(), this is the
- character over which the user pressed TAB. The match_fn
- argument is the function pointer of the callback function
- which will lookup possible completions of the word, as
- described above, and the data argument provides a way for
- the application to pass arbitrary data to the callback func-
- tion.
-
- If no errors occur, the cpl_complete_word() function returns
- a pointer to a CplMatches container, as defined below. This
- container is allocated as part of the cpl object that was
- passed to cpl_complete_word(), and will thus change on each
- call which uses the same cpl argument.
-
- typedef struct {
- char *completion; /* A matching completion */
- /* string */
- char *suffix; /* The part of the */
- /* completion string which */
- /* would have to be */
- /* appended to complete the */
- /* original word. */
- const char *type_suffix; /* A suffix to be added when */
- /* listing completions, to */
- /* indicate the type of the */
- /* completion. */
- } CplMatch;
-
- typedef struct {
- char *suffix; /* The common initial part */
- /* of all of the completion */
- /* suffixes. */
- const char *cont_suffix; /* Optional continuation */
- /* string to be appended to */
- /* the sole completion when */
- /* nmatch==1. */
- CplMatch *matches; /* The array of possible */
- /* completion strings, */
- /* sorted into lexical */
- /* order. */
- int nmatch; /* The number of elements in */
- /* the above matches[] */
- /* array. */
- } CplMatches;
-
- If an error occurs during completion, cpl_complete_word()
- returns NULL. A description of the error can be acquired by
- calling the cpl_last_error() function.
-
- const char *cpl_last_error(WordCompletion *cpl);
-
- The cpl_last_error() function returns a terse description of
- the error which occurred on the last call to
- cpl_complete_word() or cpl_add_completion().
-
- int cpl_list_completions(CplMatches *result, FILE *fp,
- int terminal_width);
-
- When the cpl_complete_word() function returns multiple pos-
- sible completions, the cpl_list_completions() function can
- be called upon to list them, suitably arranged across the
- available width of the terminal. It arranges for the
- displayed columns of completions to all have the same width,
- set by the longest completion. It also appends the
- type_suffix strings that were recorded with each completion,
- thus indicating their types to the user.
-
-
-</pre><h2>THE BUILT-IN FILENAME-COMPLETION CALLBACK</h2><pre>
- By default the <a href="gl_get_line.html">gl_get_line(3)</a> function, passes the following
- completion callback function to cpl_complete_word(). This
- function can also be used separately, either by sending it
- to cpl_complete_word(), or by calling it directly from your
- own completion callback function.
-
- CPL_MATCH_FN(cpl_file_completions);
-
- Certain aspects of the behavior of this callback can be
- changed via its data argument. If you are happy with its
- default behavior you can pass NULL in this argument. Other-
- wise it should be a pointer to a CplFileConf object, previ-
- ously allocated by calling new_CplFileConf().
-
- CplFileConf *new_CplFileConf(void);
-
- CplFileConf objects encapsulate the configuration parameters
- of cpl_file_completions(). These parameters, which start out
- with default values, can be changed by calling the accessor
- functions described below.
-
- By default, the cpl_file_completions() callback function
- searches backwards for the start of the filename being com-
- pleted, looking for the first un-escaped space or the start
- of the input line. If you wish to specify a different loca-
- tion, call cfc_file_start() with the index at which the
- filename starts in the input line. Passing start_index=-1
- re-enables the default behavior.
-
- void cfc_file_start(CplFileConf *cfc, int start_index);
-
- By default, when cpl_file_completions() looks at a filename
- in the input line, each lone backslash in the input line is
- interpreted as being a special character which removes any
- special significance of the character which follows it, such
- as a space which should be taken as part of the filename
- rather than delimiting the start of the filename. These
- backslashes are thus ignored while looking for completions,
- and subsequently added before spaces, tabs and literal
- backslashes in the list of completions. To have unescaped
- backslashes treated as normal characters, call
- cfc_literal_escapes() with a non-zero value in its literal
- argument.
-
- void cfc_literal_escapes(CplFileConf *cfc, int literal);
-
- By default, cpl_file_completions() reports all files who's
- names start with the prefix that is being completed. If you
- only want a selected subset of these files to be reported in
- the list of completions, you can arrange this by providing a
- callback function which takes the full pathname of a file,
- and returns 0 if the file should be ignored, or 1 if the
- file should be included in the list of completions. To
- register such a function for use by cpl_file_completions(),
- call cfc_set_check_fn(), and pass it a pointer to the func-
- tion, together with a pointer to any data that you would
- like passed to this callback whenever it is called. Your
- callback can make its decisions based on any property of the
- file, such as the filename itself, whether the file is read-
- able, writable or executable, or even based on what the file
- contains.
-
- #define CPL_CHECK_FN(fn) int (fn)(void *data, \
- const char *pathname)
- typedef CPL_CHECK_FN(CplCheckFn);
-
- void cfc_set_check_fn(CplFileConf *cfc,
- CplCheckFn *chk_fn, void *chk_data);
-
- The cpl_check_exe() function is a provided callback of the
- above type, for use with cpl_file_completions(). It returns
- non-zero if the filename that it is given represents a nor-
- mal file that the user has execute permission to. You could
- use this to have cpl_file_completions() only list comple-
- tions of executable files.
-
- When you have finished with a CplFileConf variable, you can
- pass it to the del_CplFileConf() destructor function to
- reclaim its memory.
-
- CplFileConf *del_CplFileConf(CplFileConf *cfc);
-
-
-
-</pre><h2>THREAD SAFETY</h2><pre>
- In multi-threaded programs, you should use the libtecla_r.a
- version of the library. This uses POSIX reentrant functions
- where available (hence the _r suffix), and disables features
- that rely on non-reentrant system functions. In the case of
- this module, the only disabled feature is username comple-
- tion in ~username/ expressions, in cpl_file_completions().
-
- Using the libtecla_r.a version of the library, it is safe to
- use the facilities of this module in multiple threads, pro-
- vided that each thread uses a separately allocated WordCom-
- pletion object. In other words, if two threads want to do
- word completion, they should each call new_WordCompletion()
- to allocate their own completion objects.
-
-
-</pre><h2>FILES</h2><pre>
- libtecla.a - The tecla library
- libtecla.h - The tecla header file.
-
-
-</pre><h2>SEE ALSO</h2><pre>
- <a href="libtecla.html">libtecla(3)</a>, <a href="gl_get_line.html">gl_get_line(3)</a>, <a href="ef_expand_file.html">ef_expand_file(3)</a>,
- <a href="pca_lookup_file.html">pca_lookup_file(3)</a>
-
-
-</pre><h2>AUTHOR</h2><pre>
- Martin Shepherd (mcs@astro.caltech.edu)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</body>
diff --git a/libtecla-1.4.1/html/ef_expand_file.html b/libtecla-1.4.1/html/ef_expand_file.html
deleted file mode 100644
index c1e71c7..0000000
--- a/libtecla-1.4.1/html/ef_expand_file.html
+++ /dev/null
@@ -1,267 +0,0 @@
-<head>
-<title>Manual Page</title>
-</head>
-<body>
-<pre>
-</pre><h2>NAME</h2><pre>
- ef_expand_file, del_ExpandFile, ef_last_error,
- ef_list_expansions, new_ExpandFile - expand filenames con-
- taining ~user/$envvar and wildcard expressions
-
-</pre><h2>SYNOPSIS</h2><pre>
- #include &lt;libtecla.h&gt;
-
- ExpandFile *new_ExpandFile(void);
-
- ExpandFile *del_ExpandFile(ExpandFile *ef);
-
- FileExpansion *ef_expand_file(ExpandFile *ef,
- const char *path,
- int pathlen);
-
- int ef_list_expansions(FileExpansion *result, FILE *fp,
- int term_width);
-
- const char *ef_last_error(ExpandFile *ef);
-
-
-</pre><h2>DESCRIPTION</h2><pre>
- The ef_expand_file() function is part of the tecla library
- (see the <a href="libtecla.html">libtecla(3)</a> man page). It expands a specified
- filename, converting ~user/ and ~/ expressions at the start
- of the filename to the corresponding home directories,
- replacing $envvar with the value of the corresponding
- environment variable, and then, if there are any wildcards,
- matching these against existing filenames. Backslashes in
- the input filename are interpreted as escaping any special
- meanings of the characters that follow them. Only
- backslahes that are themselves preceded by backslashes are
- preserved in the expanded filename.
-
- In the presence of wildcards, the returned list of filenames
- only includes the names of existing files which match the
- wildcards. Otherwise, the original filename is returned
- after expansion of tilde and dollar expressions, and the
- result is not checked against existing files. This mimics
- the file-globbing behavior of the unix tcsh shell.
-
- The supported wildcards and their meanings are:
- * - Match any sequence of zero or more characters.
- ? - Match any single character.
- [chars] - Match any single character that appears in
- 'chars'. If 'chars' contains an expression of
- the form a-b, then any character between a and
- b, including a and b, matches. The '-'
- character looses its special meaning as a
- range specifier when it appears at the start
- of the sequence of characters. The ']'
- character also looses its significance as the
- terminator of the range expression if it
- appears immediately after the opening '[', at
- which point it is treated one of the
- characters of the range. If you want both '-'
- and ']' to be part of the range, the '-'
- should come first and the ']' second.
-
- [^chars] - The same as [chars] except that it matches any
- single character that doesn't appear in
- 'chars'.
-
- Note that wildcards never match the initial dot in filenames
- that start with '.'. The initial '.' must be explicitly
- specified in the filename. This again mimics the globbing
- behavior of most unix shells, and its rational is based in
- the fact that in unix, files with names that start with '.'
- are usually hidden configuration files, which are not listed
- by default by the ls command.
-
- The following is a complete example of how to use the file
- expansion function.
-
- #include &lt;stdio.h&gt;
- #include &lt;libtecla.h&gt;
-
- int main(int argc, char *argv[])
- {
- ExpandFile *ef; /* The expansion resource object */
- char *filename; /* The filename being expanded */
- FileExpansion *expn; /* The results of the expansion */
- int i;
-
- ef = new_ExpandFile();
- if(!ef)
- return 1;
-
- for(arg = *(argv++); arg; arg = *(argv++)) {
- if((expn = ef_expand_file(ef, arg, -1)) == NULL) {
- fprintf(stderr, "Error expanding %s (%s).\n", arg,
- ef_last_error(ef));
- } else {
- printf("%s matches the following files:\n", arg);
- for(i=0; i&lt;expn-&gt;nfile; i++)
- printf(" %s\n", expn-&gt;files[i]);
- }
- }
-
- ef = del_ExpandFile(ef);
- return 0;
- }
-
- Descriptions of the functions used above are as follows:
-
- ExpandFile *new_ExpandFile(void)
-
- This function creates the resources used by the
- ef_expand_file() function. In particular, it maintains the
- memory that is used to record the array of matching
- filenames that is returned by ef_expand_file(). This array
- is expanded as needed, so there is no built in limit to the
- number of files that can be matched.
-
- ExpandFile *del_ExpandFile(ExpandFile *ef)
-
- This function deletes the resources that were returned by a
- previous call to new_ExpandFile(). It always returns NULL
- (ie a deleted object). It does nothing if the ef argument is
- NULL.
-
- A container of the following type is returned by
- ef_expand_file().
-
- typedef struct {
- int exists; /* True if the files in files[] exist */
- int nfile; /* The number of files in files[] */
- char **files; /* An array of 'nfile' filenames. */
- } FileExpansion;
-
- FileExpansion *ef_expand_file(ExpandFile *ef,
- const char *path,
- int pathlen)
-
- The ef_expand_file() function performs filename expansion,
- as documented at the start of this section. Its first argu-
- ment is a resource object returned by new_ExpandFile(). A
- pointer to the start of the filename to be matched is passed
- via the path argument. This must be a normal NUL terminated
- string, but unless a length of -1 is passed in pathlen, only
- the first pathlen characters will be used in the filename
- expansion. If the length is specified as -1, the whole of
- the string will be expanded.
-
- The function returns a pointer to a container who's contents
- are the results of the expansion. If there were no wildcards
- in the filename, the nfile member will be 1, and the exists
- member should be queried if it is important to know if the
- expanded file currently exists or not. If there were wild-
- cards, then the contained files[] array will contain the
- names of the nfile existing files that matched the wild-
- carded filename, and the exists member will have the value
- 1. Note that the returned container belongs to the specified
- ef object, and its contents will change on each call, so if
- you need to retain the results of more than one call to
- ef_expand_file(), you should either make a private copy of
- the returned results, or create multiple file-expansion
- resource objects via multiple calls to new_ExpandFile().
-
- On error, NULL is returned, and an explanation of the error
- can be determined by calling ef_last_error(ef).
-
- const char *ef_last_error(ExpandFile *ef)
-
- This function returns the message which describes the error
- that occurred on the last call to ef_expand_file(), for the
- given (ExpandFile *ef) resource object.
-
- int ef_list_expansions(FileExpansion *result, FILE *fp,
- int terminal_width);
-
- The ef_list_expansions() function provides a convenient way
- to list the filename expansions returned by
- ef_expand_file(). Like the unix ls command, it arranges the
- filenames into equal width columns, each column having the
- width of the largest file. The number of columns used is
- thus determined by the length of the longest filename, and
- the specified terminal width. Beware that filenames that are
- longer than the specified terminal width are printed without
- being truncated, so output longer than the specified termi-
- nal width can occur. The list is written to the stdio stream
- specified by the fp argument.
-
-
-</pre><h2>THREAD SAFETY</h2><pre>
- In multi-threaded programs, you should use the libtecla_r.a
- version of the library. This uses POSIX reentrant functions
- where available (hence the _r suffix), and disables features
- that rely on non-reentrant system functions. Currently there
- are no features disabled in this module.
-
- Using the libtecla_r.a version of the library, it is safe to
- use the facilities of this module in multiple threads, pro-
- vided that each thread uses a separately allocated Expand-
- File object. In other words, if two threads want to do file
- expansion, they should each call new_ExpandFile() to allo-
- cate their own file-expansion objects.
-
-
-</pre><h2>FILES</h2><pre>
- libtecla.a - The tecla library
- libtecla.h - The tecla header file.
-
-
-</pre><h2>SEE ALSO</h2><pre>
- <a href="libtecla.html">libtecla(3)</a>, <a href="gl_get_line.html">gl_get_line(3)</a>, <a href="cpl_complete_word.html">cpl_complete_word(3)</a>,
- <a href="pca_lookup_file.html">pca_lookup_file(3)</a>
-</pre><h2>AUTHOR</h2><pre>
- Martin Shepherd (mcs@astro.caltech.edu)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</body>
diff --git a/libtecla-1.4.1/html/enhance.html b/libtecla-1.4.1/html/enhance.html
deleted file mode 100644
index 9f6bb09..0000000
--- a/libtecla-1.4.1/html/enhance.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<head>
-<title>Manual Page</title>
-</head>
-<body>
-<pre>
-</pre><h2>NAME</h2><pre>
- enhance - A program that adds command-line editing to third
- party programs.
-
-</pre><h2>SYNOPSIS</h2><pre>
- enhance command [ argument ... ]
-
-
-</pre><h2>DESCRIPTION</h2><pre>
- The enhance program provides enhanced command-line editing
- facilities to users of third party applications, to which
- one doesn't have any source code. It does this by placing a
- pseudo-terminal between the application and the real termi-
- nal. It uses the tecla command-line editing library to read
- input from the real terminal, then forwards each just com-
- pleted input line to the application via the pseudo-
- terminal. All output from the application is forwarded back
- unchanged to the real terminal.
-
- Whenever the application stops generating output for more
- than a tenth of a second, the enhance program treats the
- latest incomplete output line as the prompt, and redisplays
- any incompleted input line that the user has typed after it.
- Note that the small delay, which is imperceptible to the
- user, isn't necessary for correct operation of the program.
- It is just an optimization, designed to stop the input line
- from being redisplayed so often that it slows down output.
-
-
-</pre><h2>DEFICIENCIES</h2><pre>
- The one major problem that hasn't been solved yet, is how to
- deal with applications that change whether typed input is
- echo'd by their controlling terminal. For example, programs
- that ask for a password, such as ftp and telnet, temporarily
- tell their controlling terminal not to echo what the user
- types. Since this request goes to the application side of
- the psuedo terminal, the enhance program has no way of know-
- ing that this has happened, and continues to echo typed
- input to its controlling terminal, while the user types
- their password.
-
- Furthermore, before executing the host application, the
- enhance program initially sets the pseudo terminal to noecho
- mode, so that everything that it sends to the program
- doesn't get redundantly echoed. If a program that switches
- to noecho mode explicitly restores echoing afterwards,
- rather than restoring the terminal modes that were previ-
- ously in force, then subsequently, every time that you enter
- a new input line, a duplicate copy will be displayed on the
- next line.
-
-
-</pre><h2>FILES</h2><pre>
- libtecla.a - The tecla library.
- ~/.teclarc - The tecla personal customization file.
-
-
-</pre><h2>SEE ALSO</h2><pre>
- <a href="libtecla.html">libtecla(3)</a>
-
-
-</pre><h2>AUTHOR</h2><pre>
- Martin Shepherd (mcs@astro.caltech.edu)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</body>
diff --git a/libtecla-1.4.1/html/gl_get_line.html b/libtecla-1.4.1/html/gl_get_line.html
deleted file mode 100644
index dcc45a0..0000000
--- a/libtecla-1.4.1/html/gl_get_line.html
+++ /dev/null
@@ -1,2295 +0,0 @@
-<head>
-<title>Manual Page</title>
-</head>
-<body>
-<pre>
-</pre><h2>NAME</h2><pre>
- gl_get_line, new_GetLine, del_GetLine,
- gl_customize_completion, gl_change_terminal,
- gl_configure_getline, gl_load_history, gl_save_history,
- gl_group_history, gl_show_history, gl_watch_fd,
- gl_terminal_size, gl_resize_history, gl_limit_history,
- gl_clear_history, gl_toggle_history, gl_lookup_history,
- gl_state_of_history, gl_range_of_history,
- gl_size_of_history, gl_echo_mode, gl_replace_prompt,
- gl_prompt_style, gl_ignore_signal, gl_trap_signal,
- gl_last_signal - allow the user to compose an input line
-
-</pre><h2>SYNOPSIS</h2><pre>
- #include &lt;stdio.h&gt;
- #include &lt;libtecla.h&gt;
-
- GetLine *new_GetLine(size_t linelen, size_t histlen);
-
- GetLine *del_GetLine(GetLine *gl);
-
- char *gl_get_line(GetLine *gl, const char *prompt,
- const char *start_line, int start_pos);
-
- int gl_customize_completion(GetLine *gl, void *data,
- CplMatchFn *match_fn);
-
- int gl_change_terminal(GetLine *gl, FILE *input_fp,
- FILE *output_fp, const char *term);
-
- int gl_configure_getline(GetLine *gl,
- const char *app_string,
- const char *app_file,
- const char *user_file);
-
- int gl_save_history(GetLine *gl, const char *filename,
- const char *comment, int max_lines);
-
- int gl_load_history(GetLine *gl, const char *filename,
- const char *comment);
-
- int gl_watch_fd(GetLine *gl, int fd, GlFdEvent event,
- GlFdEventFn *callback, void *data);
-
- int gl_group_history(GetLine *gl, unsigned stream);
-
- int gl_show_history(GetLine *gl, FILE *fp,
- const char *fmt, int all_groups,
- int max_lines);
-
- int gl_resize_history(GetLine *gl, size_t bufsize);
-
- void gl_limit_history(GetLine *gl, int max_lines);
- void gl_clear_history(GetLine *gl, int all_groups);
-
- void gl_toggle_history(GetLine *gl, int enable);
-
- GlTerminalSize gl_terminal_size(GetLine *gl,
- int def_ncolumn,
- int def_nline);
-
- int gl_lookup_history(GetLine *gl, unsigned long id,
- GlHistoryLine *hline);
-
- void gl_state_of_history(GetLine *gl,
- GlHistoryState *state);
-
- void gl_range_of_history(GetLine *gl,
- GlHistoryRange *range);
-
- void gl_size_of_history(GetLine *gl, GlHistorySize *size);
-
- void gl_echo_mode(GetLine *gl, int enable);
-
- void gl_replace_prompt(GetLine *gl, const char *prompt);
-
- void gl_prompt_style(GetLine *gl, GlPromptStyle style);
-
- int gl_ignore_signal(GetLine *gl, int signo);
-
- int gl_trap_signal(GetLine *gl, int signo, unsigned flags,
- GlAfterSignal after, int errno_value);
-
- int gl_last_signal(const GetLine *gl);
-
-
-
-</pre><h2>DESCRIPTION</h2><pre>
- The gl_get_line() function is part of the tecla library (see
- the <a href="libtecla.html">libtecla(3)</a> man page). If the user is typing at a termi-
- nal, it prompts them for an line of input, then provides
- interactive editing facilities, similar to those of the unix
- tcsh shell. In addition to simple command-line editing, it
- supports recall of previously entered command lines, TAB
- completion of file names, and in-line wild-card expansion of
- filenames.
-
-
-</pre><h2>AN EXAMPLE</h2><pre>
- The following shows a complete example of how to use the
- gl_get_line() function to get input from the user:
-
- #include &lt;stdio.h&gt;
- #include &lt;locale.h&gt;
- #include &lt;libtecla.h&gt;
- int main(int argc, char *argv[])
- {
- char *line; /* The line that the user typed */
- GetLine *gl; /* The gl_get_line() resource object */
-
- setlocale(LC_CTYPE, ""); /* Adopt the user's choice */
- /* of character set. */
-
- gl = new_GetLine(1024, 2048);
- if(!gl)
- return 1;
-
- while((line=gl_get_line(gl, "$ ", NULL, -1)) != NULL &amp;&amp;
- strcmp(line, "exit\n") != 0)
- printf("You typed: %s\n", line);
-
- gl = del_GetLine(gl);
- return 0;
- }
-
- In the example, first the resources needed by the
- gl_get_line() function are created by calling new_GetLine().
- This allocates the memory used in subsequent calls to the
- gl_get_line() function, including the history buffer for
- recording previously entered lines. Then one or more lines
- are read from the user, until either an error occurs, or the
- user types exit. Then finally the resources that were allo-
- cated by new_GetLine(), are returned to the system by cal-
- ling del_GetLine(). Note the use of the NULL return value of
- del_GetLine() to make gl NULL. This is a safety precaution.
- If the program subsequently attempts to pass gl to
- gl_get_line(), said function will complain, and return an
- error, instead of attempting to use the deleted resource
- object.
-
-
-
-</pre><h2>THE FUNCTIONS USED IN THE EXAMPLE</h2><pre>
- The descriptions of the functions used in the example are as
- follows:
-
- GetLine *new_GetLine(size_t linelen, size_t histlen)
-
- This function creates the resources used by the
- gl_get_line() function and returns an opaque pointer to the
- object that contains them. The maximum length of an input
- line is specified via the linelen argument, and the number
- of bytes to allocate for storing history lines is set by the
- histlen argument. History lines are stored back-to-back in a
- single buffer of this size. Note that this means that the
- number of history lines that can be stored at any given
- time, depends on the lengths of the individual lines. If
- you want to place an upper limit on the number of lines that
- can be stored, see the gl_limit_history() function described
- later. If you don't want history at all, specify histlen as
- zero, and no history buffer will be allocated.
-
- On error, a message is printed to stderr and NULL is
- returned.
-
- GetLine *del_GetLine(GetLine *gl)
-
- This function deletes the resources that were returned by a
- previous call to new_GetLine(). It always returns NULL (ie a
- deleted object). It does nothing if the gl argument is NULL.
-
- char *gl_get_line(GetLine *gl, const char *prompt,
- const char *start_line, int start_pos);
-
- The gl_get_line() function can be called any number of times
- to read input from the user. The gl argument must have been
- previously returned by a call to new_GetLine(). The prompt
- argument should be a normal NUL terminated string, specify-
- ing the prompt to present the user with. By default prompts
- are displayed literally, but if enabled with the
- gl_prompt_style() function (see later), prompts can contain
- directives to do underlining, switch to and from bold fonts,
- or turn highlighting on and off.
-
- If you want to specify the initial contents of the line, for
- the user to edit, pass the desired string via the start_line
- argument. You can then specify which character of this line
- the cursor is initially positioned over, using the start_pos
- argument. This should be -1 if you want the cursor to follow
- the last character of the start line. If you don't want to
- preload the line in this manner, send start_line as NULL,
- and set start_pos to -1.
-
- The gl_get_line() function returns a pointer to the line
- entered by the user, or NULL on error or at the end of the
- input. The returned pointer is part of the specified gl
- resource object, and thus should not be free'd by the
- caller, or assumed to be unchanging from one call to the
- next. When reading from a user at a terminal, there will
- always be a newline character at the end of the returned
- line. When standard input is being taken from a pipe or a
- file, there will similarly be a newline unless the input
- line was too long to store in the internal buffer. In the
- latter case you should call gl_get_line() again to read the
- rest of the line. Note that this behavior makes
- gl_get_line() similar to fgets(). In fact when stdin isn't
- connected to a terminal,gl_get_line() just calls fgets().
-
-
-</pre><h2>OPTIONAL PROMPT FORMATTING</h2><pre>
- Whereas by default the prompt string that you specify is
- displayed literally, without any special interpretation of
- the characters within it, the gl_prompt_style() function can
- be used to enable optional formatting directives within the
- prompt.
-
- void gl_prompt_style(GetLine *gl, GlPromptStyle style);
-
- The style argument, which specifies the formatting style,
- can take any of the following values:
-
- GL_FORMAT_PROMPT - In this style, the formatting
- directives described below, when
- included in prompt strings, are
- interpreted as follows:
-
- %B - Display subsequent
- characters with a bold
- font.
- %b - Stop displaying characters
- with the bold font.
- %F - Make subsequent characters
- flash.
- %f - Turn off flashing
- characters.
- %U - Underline subsequent
- characters.
- %u - Stop underlining
- characters.
- %P - Switch to a pale (half
- brightness) font.
- %p - Stop using the pale font.
- %S - Highlight subsequent
- characters (also known as
- standout mode).
- %s - Stop highlighting
- characters.
- %V - Turn on reverse video.
- %v - Turn off reverse video.
- %% - Display a single %
- character.
-
- For example, in this mode, a prompt
- string like "%UOK%u$ " would
- display the prompt "OK$ ",
- but with the OK part
- underlined.
-
- Note that although a pair of
- characters that starts with a %
- character, but doesn't match any of
- the above directives is displayed
- literally, if a new directive is
- subsequently introduced which does
- match, the displayed prompt will
- change, so it is better to always
- use %% to display a literal %.
-
- Also note that not all terminals
- support all of these text
- attributes, and that some substitute
- a different attribute for missing
- ones.
-
- GL_LITERAL_PROMPT - In this style, the prompt string is
- printed literally. This is the
- default style.
-
-
-
-</pre><h2>THE AVAILABLE KEY BINDING FUNCTIONS</h2><pre>
- The gl_get_line() function provides a number of functions
- which can be bound to key sequences. The names of these
- functions, and what they do, are given below.
-
- user-interrupt - Send a SIGINT signal to the
- parent process.
- abort - Send a SIGABRT signal to the
- parent process.
- suspend - Suspend the parent process.
- stop-output - Pause terminal output.
- start-output - Resume paused terminal output.
- literal-next - Arrange for the next character
- to be treated as a normal
- character. This allows control
- characters to be entered.
- cursor-right - Move the cursor one character
- right.
- cursor-left - Move the cursor one character
- left.
- insert-mode - Toggle between insert mode and
- overwrite mode.
- beginning-of-line - Move the cursor to the
- beginning of the line.
- end-of-line - Move the cursor to the end of
- the line.
- delete-line - Delete the contents of the
- current line.
- kill-line - Delete everything that follows
- the cursor.
- backward-kill-line - Delete all characters between
- the cursor and the start of the
- line.
- forward-word - Move to the end of the word
- which follows the cursor.
- forward-to-word - Move the cursor to the start of
- the word that follows the
- cursor.
- backward-word - Move to the start of the word
- which precedes the cursor.
- goto-column - Move the cursor to the
- 1-relative column in the line
- specified by any preceding
- digit-argument sequences (see
- ENTERING REPEAT COUNTS below).
- find-parenthesis - If the cursor is currently
- over a parenthesis character,
- move it to the matching
- parenthesis character. If not
- over a parenthesis character
- move right to the next close
- parenthesis.
- forward-delete-char - Delete the character under the
- cursor.
- backward-delete-char - Delete the character which
- precedes the cursor.
- list-or-eof - This is intended for binding
- to ^D. When invoked when the
- cursor is within the line it
- displays all possible
- completions then redisplays
- the line unchanged. When
- invoked on an empty line, it
- signals end-of-input (EOF) to
- the caller of gl_get_line().
- del-char-or-list-or-eof - This is intended for binding
- to ^D. When invoked when the
- cursor is within the line it
- invokes forward-delete-char.
- When invoked at the end of the
- line it displays all possible
- completions then redisplays
- the line unchanged. When
- invoked on an empty line, it
- signals end-of-input (EOF) to
- the caller of gl_get_line().
- forward-delete-word - Delete the word which follows
- the cursor.
- backward-delete-word - Delete the word which precedes
- the cursor.
- upcase-word - Convert all of the characters
- of the word which follows the
- cursor, to upper case.
- downcase-word - Convert all of the characters
- of the word which follows the
- cursor, to lower case.
- capitalize-word - Capitalize the word which
- follows the cursor.
- change-case - If the next character is upper
- case, toggle it to lower case
- and vice versa.
- redisplay - Redisplay the line.
- clear-screen - Clear the terminal, then
- redisplay the current line.
- transpose-chars - Swap the character under the
- cursor with the character just
- before the cursor.
- set-mark - Set a mark at the position of
- the cursor.
- exchange-point-and-mark - Move the cursor to the last
- mark that was set, and move
- the mark to where the cursor
- used to be.
- kill-region - Delete the characters that lie
- between the last mark that was
- set, and the cursor.
- copy-region-as-kill - Copy the text between the mark
- and the cursor to the cut
- buffer, without deleting the
- original text.
- yank - Insert the text that was last
- deleted, just before the
- current position of the cursor.
- append-yank - Paste the current contents of
- the cut buffer, after the
- cursor.
- up-history - Recall the next oldest line
- that was entered. Note that
- in vi mode you are left in
- command mode.
- down-history - Recall the next most recent
- line that was entered. If no
- history recall session is
- currently active, the next
- line from a previous recall
- session is recalled. Note that
- in vi mode you are left in
- command mode.
- history-search-backward - Recall the next oldest line
- who's prefix matches the string
- which currently precedes the
- cursor (in vi command-mode the
- character under the cursor is
- also included in the search
- string). Note that in vi mode
- you are left in command mode.
- history-search-forward - Recall the next newest line
- who's prefix matches the string
- which currently precedes the
- cursor (in vi command-mode the
- character under the cursor is
- also included in the search
- string). Note that in vi mode
- you are left in command mode.
- history-re-search-backward -Recall the next oldest line
- who's prefix matches that
- established by the last
- invocation of either
- history-search-forward or
- history-search-backward.
- history-re-search-forward - Recall the next newest line
- who's prefix matches that
- established by the last
- invocation of either
- history-search-forward or
- history-search-backward.
- complete-word - Attempt to complete the
- incomplete word which
- precedes the cursor. Unless
- the host program has customized
- word completion, filename
- completion is attempted. In vi
- commmand mode the character
- under the cursor is also
- included in the word being
- completed, and you are left in
- vi insert mode.
- expand-filename - Within the command line, expand
- wild cards, tilde expressions
- and dollar expressions in the
- filename which immediately
- precedes the cursor. In vi
- commmand mode the character
- under the cursor is also
- included in the filename being
- expanded, and you are left in
- vi insert mode.
- list-glob - List any filenames which match
- the wild-card, tilde and dollar
- expressions in the filename
- which immediately precedes the
- cursor, then redraw the input
- line unchanged.
- list-history - Display the contents of the
- history list for the current
- history group. If a repeat
- count of &gt; 1 is specified,
- only that many of the most
- recent lines are displayed.
- See the "ENTERING REPEAT
- COUNTS" section.
- read-from-file - Temporarily switch to reading
- input from the file who's
- name precedes the cursor.
- read-init-files - Re-read teclarc configuration
- files.
- beginning-of-history - Move to the oldest line in the
- history list. Note that in vi
- mode you are left in command
- mode.
- end-of-history - Move to the newest line in the
- history list (ie. the current
- line). Note that in vi mode
- this leaves you in command
- mode.
- digit-argument - Enter a repeat count for the
- next key-binding function.
- For details, see the ENTERING
- REPEAT COUNTS section.
- newline - Terminate and return the
- current contents of the
- line, after appending a
- newline character. The newline
- character is normally '\n',
- but will be the first
- character of the key-sequence
- that invoked the newline
- action, if this happens to be
- a printable character. If the
- action was invoked by the
- '\n' newline character or the
- '\r' carriage return
- character, the line is
- appended to the history
- buffer.
- repeat-history - Return the line that is being
- edited, then arrange for the
- next most recent entry in the
- history buffer to be recalled
- when gl_get_line() is
- next called. Repeatedly
- invoking this action causes
- successive historical input
- lines to be re-executed. Note
- that this action is equivalent
- to the 'Operate' action in
- ksh.
- ring-bell - Ring the terminal bell, unless
- the bell has been silenced via
- the nobeep configuration
- option (see the THE TECLA
- CONFIGURATION FILE section).
- forward-copy-char - Copy the next character into
- the cut buffer (NB. use repeat
- counts to copy more than one).
- backward-copy-char - Copy the previous character
- into the cut buffer.
- forward-copy-word - Copy the next word into the cut
- buffer.
- backward-copy-word - Copy the previous word into the
- cut buffer.
- forward-find-char - Move the cursor to the next
- occurrence of the next
- character that you type.
- backward-find-char - Move the cursor to the last
- occurrence of the next
- character that you type.
- forward-to-char - Move the cursor to the
- character just before the next
- occurrence of the next
- character that the user types.
- backward-to-char - Move the cursor to the
- character just after the last
- occurrence before the cursor
- of the next character that the
- user types.
- repeat-find-char - Repeat the last
- backward-find-char,
- forward-find-char,
- backward-to-char or
- forward-to-char.
- invert-refind-char - Repeat the last
- backward-find-char,
- forward-find-char,
- backward-to-char, or
- forward-to-char in the
- opposite direction.
- delete-to-column - Delete the characters from the
- cursor up to the column that
- is specified by the repeat
- count.
- delete-to-parenthesis - Delete the characters from the
- cursor up to and including
- the matching parenthesis, or
- next close parenthesis.
- forward-delete-find - Delete the characters from the
- cursor up to and including the
- following occurence of the
- next character typed.
- backward-delete-find - Delete the characters from the
- cursor up to and including the
- preceding occurence of the
- next character typed.
- forward-delete-to - Delete the characters from the
- cursor up to, but not
- including, the following
- occurence of the next
- character typed.
- backward-delete-to - Delete the characters from the
- cursor up to, but not
- including, the preceding
- occurence of the next
- character typed.
- delete-refind - Repeat the last *-delete-find
- or *-delete-to action.
- delete-invert-refind - Repeat the last *-delete-find
- or *-delete-to action, in the
- opposite direction.
- copy-to-column - Copy the characters from the
- cursor up to the column that
- is specified by the repeat
- count, into the cut buffer.
- copy-to-parenthesis - Copy the characters from the
- cursor up to and including
- the matching parenthesis, or
- next close parenthesis, into
- the cut buffer.
- forward-copy-find - Copy the characters from the
- cursor up to and including the
- following occurence of the
- next character typed, into the
- cut buffer.
- backward-copy-find - Copy the characters from the
- cursor up to and including the
- preceding occurence of the
- next character typed, into the
- cut buffer.
- forward-copy-to - Copy the characters from the
- cursor up to, but not
- including, the following
- occurence of the next
- character typed, into the cut
- buffer.
- backward-copy-to - Copy the characters from the
- cursor up to, but not
- including, the preceding
- occurence of the next
- character typed, into the cut
- buffer.
- copy-refind - Repeat the last *-copy-find
- or *-copy-to action.
- copy-invert-refind - Repeat the last *-copy-find
- or *-copy-to action, in the
- opposite direction.
- vi-mode - Switch to vi mode from emacs
- mode.
- emacs-mode - Switch to emacs mode from vi
- mode.
- vi-insert - From vi command mode, switch to
- insert mode.
- vi-overwrite - From vi command mode, switch to
- overwrite mode.
- vi-insert-at-bol - From vi command mode, move the
- cursor to the start of the line
- and switch to insert mode.
- vi-append-at-eol - From vi command mode, move the
- cursor to the end of the line
- and switch to append mode.
- vi-append - From vi command mode, move the
- cursor one position right, and
- switch to insert mode.
- vi-replace-char - From vi command mode, replace
- the character under the cursor
- with the the next character
- entered.
- vi-forward-change-char - From vi command mode, delete
- the next character then enter
- insert mode.
- vi-backward-change-char - From vi command mode, delete
- the preceding character then
- enter insert mode.
- vi-forward-change-word - From vi command mode, delete
- the next word then enter
- insert mode.
- vi-backward-change-word - From vi command mode, delete
- the preceding word then
- enter insert mode.
- vi-change-rest-of-line - From vi command mode, delete
- from the cursor to the end of
- the line, then enter insert
- mode.
- vi-change-line - From vi command mode, delete
- the current line, then enter
- insert mode.
- vi-change-to-bol - From vi command mode, delete
- all characters between the
- cursor and the beginning of
- the line, then enter insert
- mode.
- vi-change-to-column - From vi command mode, delete
- the characters from the cursor
- up to the column that is
- specified by the repeat count,
- then enter insert mode.
- vi-change-to-parenthesis - Delete the characters from the
- cursor up to and including
- the matching parenthesis, or
- next close parenthesis, then
- enter vi insert mode.
- vi-forward-change-find - From vi command mode, delete
- the characters from the
- cursor up to and including the
- following occurence of the
- next character typed, then
- enter insert mode.
- vi-backward-change-find - From vi command mode, delete
- the characters from the
- cursor up to and including the
- preceding occurence of the
- next character typed, then
- enter insert mode.
- vi-forward-change-to - From vi command mode, delete
- the characters from the
- cursor up to, but not
- including, the following
- occurence of the next
- character typed, then enter
- insert mode.
- vi-backward-change-to - From vi command mode, delete
- the characters from the
- cursor up to, but not
- including, the preceding
- occurence of the next
- character typed, then enter
- insert mode.
- vi-change-refind - Repeat the last
- vi-*-change-find or
- vi-*-change-to action.
- vi-change-invert-refind - Repeat the last
- vi-*-change-find or
- vi-*-change-to action, in the
- opposite direction.
- vi-undo - In vi mode, undo the last
- editing operation.
- vi-repeat-change - In vi command mode, repeat the
- last command that modified the
- line.
-
-
-</pre><h2>DEFAULT KEY BINDINGS IN EMACS MODE</h2><pre>
- The following default key bindings, which can be overriden
- by the tecla configuration file, are designed to mimic most
- of the bindings of the unix tcsh shell, when it is in emacs
- editing mode.
-
- This is the default editing mode of the tecla library.
-
- Note that a key sequence like ^A or C-a means hold the
- control-key down while pressing the letter A, and that where
- you see \E or M- in a binding, this represents the escape
- key or the Meta modifier key. Also note that to
- gl_get_line(), pressing the escape key before a key is
- equivalent to pressing the meta key at the same time as that
- key. Thus the key sequence M-p can be typed in two ways, by
- pressing the escape key, followed by pressing p, or by
- pressing the Meta key at the same time as p.
-
- Under UNIX the terminal driver sets a number of special keys
- for certain functions. The tecla library attempts to use the
- same keybindings to maintain consistency. The key sequences
- shown for the following 6 bindings are thus just examples of
- what they will probably be set to. If you have used the stty
- command to change these keys, then the default bindings
- should match.
-
- ^C -&gt; user-interrupt
- ^\ -&gt; abort
- ^Z -&gt; suspend
- ^Q -&gt; start-output
- ^S -&gt; stop-output
- ^V -&gt; literal-next
-
- The cursor keys are refered to by name, as follows. This is
- necessary because different types of terminals generate dif-
- ferent key sequences when their cursor keys are pressed.
-
- right -&gt; cursor-right
- left -&gt; cursor-left
- up -&gt; up-history
- down -&gt; down-history
-
- The remaining bindings don't depend on the terminal sett-
- tings.
-
- ^F -&gt; cursor-right
- ^B -&gt; cursor-left
- M-i -&gt; insert-mode
- ^A -&gt; beginning-of-line
- ^E -&gt; end-of-line
- ^U -&gt; delete-line
- ^K -&gt; kill-line
- M-f -&gt; forward-word
- M-b -&gt; backward-word
- ^D -&gt; del-char-or-list-or-eof
- ^H -&gt; backward-delete-char
- ^? -&gt; backward-delete-char
- M-d -&gt; forward-delete-word
- M-^H -&gt; backward-delete-word
- M-^? -&gt; backward-delete-word
- M-u -&gt; upcase-word
- M-l -&gt; downcase-word
- M-c -&gt; capitalize-word
- ^R -&gt; redisplay
- ^L -&gt; clear-screen
- ^T -&gt; transpose-chars
- ^@ -&gt; set-mark
- ^X^X -&gt; exchange-point-and-mark
- ^W -&gt; kill-region
- M-w -&gt; copy-region-as-kill
- ^Y -&gt; yank
- ^P -&gt; up-history
- ^N -&gt; down-history
- M-p -&gt; history-search-backward
- M-n -&gt; history-search-forward
- ^I -&gt; complete-word
- ^X* -&gt; expand-filename
- ^X^F -&gt; read-from-file
- ^X^R -&gt; read-init-files
- ^Xg -&gt; list-glob
- ^Xh -&gt; list-history
- M-&lt; -&gt; beginning-of-history
- M-&gt; -&gt; end-of-history
- \n -&gt; newline
- \r -&gt; newline
- M-o -&gt; repeat-history
- M-^V -&gt; vi-mode
-
- M-0, M-1, ... M-9 -&gt; digit-argument (see below)
-
- Note that ^I is what the TAB key generates, and that ^@ can
- be generated not only by pressing the control key and the @
- key simultaneously, but also by pressing the control key and
- the space bar at the same time.
-
-
-</pre><h2>DEFAULT KEY BINDINGS IN VI MODE</h2><pre>
- The following default key bindings are designed to mimic the
- vi style of editing as closely as possible. This means that
- very few editing functions are provided in the initial char-
- acter input mode, editing functions instead being provided
- by the vi command mode. Vi command mode is entered whenever
- the escape character is pressed, or whenever a key-sequence
- that starts with a meta character is entered. In addition to
- mimicing vi, libtecla provides bindings for tab completion,
- wild-card expansion of file names, and historical line
- recall.
-
- To learn how to tell the tecla library to use vi mode
- instead of the default emacs editing mode, see the section
- entitled THE TECLA CONFIGURATION FILE.
-
- As already mentioned above in the emacs section, Note that a
- key sequence like ^A or C-a means hold the control-key down
- while pressing the letter A, and that where you see \E or M-
- in a binding, this represents the escape key or the Meta
- modifier key. Also note that to gl_get_line(), pressing the
- escape key before a key is equivalent to pressing the meta
- key at the same time as that key. Thus the key sequence M-p
- can be typed in two ways, by pressing the escape key, fol-
- lowed by pressing p, or by pressing the Meta key at the same
- time as p.
-
- Under UNIX the terminal driver sets a number of special keys
- for certain functions. The tecla library attempts to use the
- same keybindings to maintain consistency, binding them both
- in input mode and in command mode. The key sequences shown
- for the following 6 bindings are thus just examples of what
- they will probably be set to. If you have used the stty com-
- mand to change these keys, then the default bindings should
- match.
-
- ^C -&gt; user-interrupt
- ^\ -&gt; abort
- ^Z -&gt; suspend
- ^Q -&gt; start-output
- ^S -&gt; stop-output
- ^V -&gt; literal-next
- M-^C -&gt; user-interrupt
- M-^\ -&gt; abort
- M-^Z -&gt; suspend
- M-^Q -&gt; start-output
- M-^S -&gt; stop-output
-
- Note that above, most of the bindings are defined twice,
- once as a raw control code like ^C and then a second time as
- a meta character like M-^C. The former is the binding for vi
- input mode, whereas the latter is the binding for vi command
- mode. Once in command mode all key-sequences that the user
- types that they don't explicitly start with an escape or a
- meta key, have their first key secretly converted to a meta
- character before the key sequence is looked up in the key
- binding table. Thus, once in command mode, when you type the
- letter i, for example, the tecla library actually looks up
- the binding for M-i.
-
- The cursor keys are refered to by name, as follows. This is
- necessary because different types of terminals generate dif-
- ferent key sequences when their cursor keys are pressed.
-
- right -&gt; cursor-right
- left -&gt; cursor-left
- up -&gt; up-history
- down -&gt; down-history
-
- The cursor keys normally generate a keysequence that start
- with an escape character, so beware that using the arrow
- keys will put you into command mode (if you aren't already
- in command mode).
-
- The following are the terminal-independent key bindings for
- vi input mode.
-
- ^D -&gt; list-or-eof
- ^G -&gt; list-glob
- ^H -&gt; backward-delete-char
- ^I -&gt; complete-word
- \r -&gt; newline
- \n -&gt; newline
- ^L -&gt; clear-screen
- ^N -&gt; down-history
- ^P -&gt; up-history
- ^R -&gt; redisplay
- ^U -&gt; backward-kill-line
- ^W -&gt; backward-delete-word
- ^X* -&gt; expand-filename
- ^X^F -&gt; read-from-file
- ^X^R -&gt; read-init-files
- ^? -&gt; backward-delete-char
-
- The following are the key bindings that are defined in vi
- command mode, this being specified by them all starting with
- a meta character. As mentioned above, once in command mode
- the initial meta character is optional. For example, you
- might enter command mode by typing Esc, and then press h
- twice to move the cursor two positions to the left. Both h
- characters get quietly converted to M-h before being com-
- pared to the key-binding table, the first one because Escape
- followed by a character is always converted to the
- equivalent meta character, and the second because command
- mode was already active.
-
- M-\ -&gt; cursor-right (Meta-space)
- M-$ -&gt; end-of-line
- M-* -&gt; expand-filename
- M-+ -&gt; down-history
- M-- -&gt; up-history
- M-&lt; -&gt; beginning-of-history
- M-&gt; -&gt; end-of-history
- M-^ -&gt; beginning-of-line
- M-; -&gt; repeat-find-char
- M-, -&gt; invert-refind-char
- M-| -&gt; goto-column
- M-~ -&gt; change-case
- M-. -&gt; vi-repeat-change
- M-% -&gt; find-parenthesis
- M-a -&gt; vi-append
- M-A -&gt; vi-append-at-eol
- M-b -&gt; backward-word
- M-B -&gt; backward-word
- M-C -&gt; vi-change-rest-of-line
- M-cb -&gt; vi-backward-change-word
- M-cB -&gt; vi-backward-change-word
- M-cc -&gt; vi-change-line
- M-ce -&gt; vi-forward-change-word
- M-cE -&gt; vi-forward-change-word
- M-cw -&gt; vi-forward-change-word
- M-cW -&gt; vi-forward-change-word
- M-cF -&gt; vi-backward-change-find
- M-cf -&gt; vi-forward-change-find
- M-cT -&gt; vi-backward-change-to
- M-ct -&gt; vi-forward-change-to
- M-c; -&gt; vi-change-refind
- M-c, -&gt; vi-change-invert-refind
- M-ch -&gt; vi-backward-change-char
- M-c^H -&gt; vi-backward-change-char
- M-c^? -&gt; vi-backward-change-char
- M-cl -&gt; vi-forward-change-char
- M-c\ -&gt; vi-forward-change-char (Meta-c-space)
- M-c^ -&gt; vi-change-to-bol
- M-c0 -&gt; vi-change-to-bol
- M-c$ -&gt; vi-change-rest-of-line
- M-c| -&gt; vi-change-to-column
- M-c% -&gt; vi-change-to-parenthesis
- M-dh -&gt; backward-delete-char
- M-d^H -&gt; backward-delete-char
- M-d^? -&gt; backward-delete-char
- M-dl -&gt; forward-delete-char
- M-d -&gt; forward-delete-char (Meta-d-space)
- M-dd -&gt; delete-line
- M-db -&gt; backward-delete-word
- M-dB -&gt; backward-delete-word
- M-de -&gt; forward-delete-word
- M-dE -&gt; forward-delete-word
- M-dw -&gt; forward-delete-word
- M-dW -&gt; forward-delete-word
- M-dF -&gt; backward-delete-find
- M-df -&gt; forward-delete-find
- M-dT -&gt; backward-delete-to
- M-dt -&gt; forward-delete-to
- M-d; -&gt; delete-refind
- M-d, -&gt; delete-invert-refind
- M-d^ -&gt; backward-kill-line
- M-d0 -&gt; backward-kill-line
- M-d$ -&gt; kill-line
- M-D -&gt; kill-line
- M-d| -&gt; delete-to-column
- M-d% -&gt; delete-to-parenthesis
- M-e -&gt; forward-word
- M-E -&gt; forward-word
- M-f -&gt; forward-find-char
- M-F -&gt; backward-find-char
- M-- -&gt; up-history
- M-h -&gt; cursor-left
- M-H -&gt; beginning-of-history
- M-i -&gt; vi-insert
- M-I -&gt; vi-insert-at-bol
- M-j -&gt; down-history
- M-J -&gt; history-search-forward
- M-k -&gt; up-history
- M-K -&gt; history-search-backward
- M-l -&gt; cursor-right
- M-L -&gt; end-of-history
- M-n -&gt; history-re-search-forward
- M-N -&gt; history-re-search-backward
- M-p -&gt; append-yank
- M-P -&gt; yank
- M-r -&gt; vi-replace-char
- M-R -&gt; vi-overwrite
- M-s -&gt; vi-forward-change-char
- M-S -&gt; vi-change-line
- M-t -&gt; forward-to-char
- M-T -&gt; backward-to-char
- M-u -&gt; vi-undo
- M-w -&gt; forward-to-word
- M-W -&gt; forward-to-word
- M-x -&gt; forward-delete-char
- M-X -&gt; backward-delete-char
- M-yh -&gt; backward-copy-char
- M-y^H -&gt; backward-copy-char
- M-y^? -&gt; backward-copy-char
- M-yl -&gt; forward-copy-char
- M-y\ -&gt; forward-copy-char (Meta-y-space)
- M-ye -&gt; forward-copy-word
- M-yE -&gt; forward-copy-word
- M-yw -&gt; forward-copy-word
- M-yW -&gt; forward-copy-word
- M-yb -&gt; backward-copy-word
- M-yB -&gt; backward-copy-word
- M-yf -&gt; forward-copy-find
- M-yF -&gt; backward-copy-find
- M-yt -&gt; forward-copy-to
- M-yT -&gt; backward-copy-to
- M-y; -&gt; copy-refind
- M-y, -&gt; copy-invert-refind
- M-y^ -&gt; copy-to-bol
- M-y0 -&gt; copy-to-bol
- M-y$ -&gt; copy-rest-of-line
- M-yy -&gt; copy-line
- M-Y -&gt; copy-line
- M-y| -&gt; copy-to-column
- M-y% -&gt; copy-to-parenthesis
- M-^E -&gt; emacs-mode
- M-^H -&gt; cursor-left
- M-^? -&gt; cursor-left
- M-^L -&gt; clear-screen
- M-^N -&gt; down-history
- M-^P -&gt; up-history
- M-^R -&gt; redisplay
- M-^D -&gt; list-or-eof
- M-^I -&gt; complete-word
- M-\r -&gt; newline
- M-\n -&gt; newline
- M-^X^R -&gt; read-init-files
- M-^Xh -&gt; list-history
-
- M-0, M-1, ... M-9 -&gt; digit-argument (see below)
-
- Note that ^I is what the TAB key generates.
-
-
-</pre><h2>ENTERING REPEAT COUNTS</h2><pre>
- Many of the key binding functions described previously, take
- an optional count, typed in before the target keysequence.
- This is interpreted as a repeat count by most bindings. A
- notable exception is the goto-column binding, which inter-
- prets the count as a column number.
-
- By default you can specify this count argument by pressing
- the meta key while typing in the numeric count. This relies
- on the digit-argument action being bound to Meta-0, Meta-1
- etc. Once any one of these bindings has been activated, you
- can optionally take your finger off the meta key to type in
- the rest of the number, since every numeric digit thereafter
- is treated as part of the number, unless it is preceded by
- the literal-next binding. As soon as a non-digit, or literal
- digit key is pressed the repeat count is terminated and
- either causes the just typed character to be added to the
- line that many times, or causes the next key-binding func-
- tion to be given that argument.
-
- For example, in emacs mode, typing:
-
- M-12a
-
- causes the letter 'a' to be added to the line 12 times,
- whereas
-
- M-4M-c
-
- Capitalizes the next 4 words.
-
- In vi command mode the Meta modifier is automatically added
- to all characters typed in, so to enter a count in vi
- command-mode, just involves typing in the number, just as at
- it does in the vi editor itself. So for example, in vi com-
- mand mode, typing:
-
- 4w2x
-
- moves the cursor four words to the right, then deletes two
- characters.
-
- You can also bind digit-argument to other key sequences. If
- these end in a numeric digit, that digit gets appended to
- the current repeat count. If it doesn't end in a numeric
- digit, a new repeat count is started with a value of zero,
- and can be completed by typing in the number, after letting
- go of the key which triggered the digit-argument action.
-
-
-</pre><h2>THE TECLA CONFIGURATION FILE</h2><pre>
- By default, the first call to gl_get_line() looks for a file
- called .teclarc in your home directory (ie. ~/.teclarc). If
- it finds this file, it reads it, interpreting each line as
- defining a new key binding or an editing configuration
- option. Since the emacs keybindings are installed by
- default, if you want to use the non-default vi editing mode,
- the most important item to go in this file is the following
- line:
-
- edit-mode vi
-
- This will re-configure the default bindings for vi-mode. The
- complete set of arguments that this command accepts are:
-
- vi - Install key-bindings like those of the vi
- editor.
- emacs - Install key-bindings like those of the emacs
- editor. This is the default.
- none - Use just the native line editing facilities
- provided by the terminal driver.
-
- To prevent the terminal bell from being rung, such as when
- an unrecognized control-sequence is typed, place the follow-
- ing line in the configuration file:
-
- nobeep
-
- An example of a key binding line in the configuration file
- is the following.
-
- bind M-[2~ insert-mode
-
- On many keyboards, the above key sequence is generated when
- one presses the insert key, so with this keybinding, one can
- toggle between the emacs-mode insert and overwrite modes by
- hitting one key. One could also do it by typing out the
- above sequence of characters one by one. As explained above,
- the M- part of this sequence can be typed either by pressing
- the escape key before the following key, or by pressing the
- Meta key at the same time as the following key. Thus if you
- had set the above key binding, and the insert key on your
- keyboard didn't generate the above key sequence, you could
- still type it in either of the following 2 ways.
-
- 1. Hit the escape key momentarily, then press '[', then '2', then
- finally '~'.
-
- 2. Press the meta key at the same time as pressing the '[' key,
- then press '2', then '~'.
-
- If you set a keybinding for a key-sequence that is already
- bound to a function, the new binding overrides the old one.
- If in the new binding you omit the name of the new function
- to bind to the key-sequence, the original binding becomes
- undefined.
-
- Starting with versions of libtecla later than 1.3.3 it is
- now possible to bind keysequences that begin with a print-
- able character. Previously key-sequences were required to
- start with a control or meta character.
-
- Note that the special keywords "up", "down", "left" and
- "right" refer to the arrow keys, and are thus not treated as
- keysequences. So, for example, to rebind the up and down
- arrow keys to use the history search mechanism instead of
- the simple history recall method, you could place the fol-
- lowing in your configuration file:
-
- bind up history-search-backwards
- bind down history-search-backwards
-
- To unbind an existing binding, you can do this with the bind
- command by omitting to name any action to rebind the key
- sequence to. For example, by not specifying an action func-
- tion, the following command unbinds the default beginning-
- of-line action from the ^A key sequence:
-
- bind ^A
-
-
-</pre><h2>ALTERNATE CONFIGURATION SOURCES</h2><pre>
- As mentioned above, by default users have the option of con-
- figuring the behavior of gl_get_line() via a configuration
- file called .teclarc in their home directories. The fact
- that all applications share this same configuration file is
- both an advantage and a disadvantage. In most cases it is
- an advantage, since it encourages uniformity, and frees the
- user from having to configure each application separately.
- In some applications, however, this single means of confi-
- guration is a problem. This is particularly true of embedded
- software, where there's no filesystem to read a configura-
- tion file from, and also in applications where a radically
- different choice of keybindings is needed to emulate a
- legacy keyboard interface. To cater for such cases, the
- following function allows the application to control where
- configuration information is read from.
-
-
- int gl_configure_getline(GetLine *gl,
- const char *app_string,
- const char *app_file,
- const char *user_file);
-
-
- It allows the configuration commands that would normally be
- read from a user's ~/.teclarc file, to be read from any or
- none of, a string, an application specific configuration
- file, and/or a user-specific configuration file. If this
- function is called before the first call to gl_get_line(),
- the default behavior of reading ~/.teclarc on the first call
- to gl_get_line() is disabled, so all configuration must be
- achieved using the configuration sources specified with this
- function.
-
- If app_string != NULL, then it is interpreted as a string
- containing one or more configuration commands, separated
- from each other in the string by embedded newline charac-
- ters. If app_file != NULL then it is interpreted as the full
- pathname of an application-specific configuration file. If
- user_file != NULL then it is interpreted as the full path-
- name of a user-specific configuration file, such as
- ~/.teclarc. For example, in the following call,
-
- gl_configure_getline(gl, "edit-mode vi \n nobeep",
- "/usr/share/myapp/teclarc",
- "~/.teclarc");
-
- the app_string argument causes the calling application to
- start in vi edit-mode, instead of the default emacs mode,
- and turns off the use of the terminal bell by the library.
- It then attempts to read system-wide configuration commands
- from an optional file called /usr/share/myapp/teclarc, then
- finally reads user-specific configuration commands from an
- optional .teclarc file in the user's home directory. Note
- that the arguments are listed in ascending order of prior-
- ity, with the contents of app_string being potentially over-
- riden by commands in app_file, and commands in app_file
- potentially being overriden by commands in user_file.
- You can call this function as many times as needed, the
- results being cumulative, but note that copies of any
- filenames specified via the app_file and user_file arguments
- are recorded internally for subsequent use by the read-
- init-files key-binding function, so if you plan to call this
- function multiple times, be sure that the last call speci-
- fies the filenames that you want re-read when the user
- requests that the configuration files be re-read.
-
-
-</pre><h2>FILENAME AND TILDE COMPLETION</h2><pre>
- With the default key bindings, pressing the TAB key (aka.
- ^I) results in gl_get_line() attempting to complete the
- incomplete filename that precedes the cursor. gl_get_line()
- searches backwards from the cursor, looking for the start of
- the filename, stopping when it hits either a space or the
- start of the line. If more than one file has the specified
- prefix, gl_get_line() completes the filename up to the point
- at which the ambiguous matches start to differ, then lists
- the possible matches.
-
- In addition to literally written filenames, gl_get_line()
- can complete files that start with ~/ and ~user/ expressions
- and that contain $envvar expressions. In particular, if you
- hit TAB within an incomplete ~user, expression,
- gl_get_line() will attempt to complete the username, listing
- any ambiguous matches.
-
- The completion binding is implemented using the
- cpl_word_completions() function, which is also available
- separately to users of this library. See the
- cpl_word_completions(3) man page for more details.
-
-
-</pre><h2>CUSTOMIZED WORD COMPLETION</h2><pre>
- If in your application, you would like to have TAB comple-
- tion complete other things in addition to or instead of
- filenames, you can arrange this by registering an alternate
- completion callback function, via a call to the
- gl_customize_completion() function.
-
- int gl_customize_completion(GetLine *gl, void *data,
- CplMatchFn *match_fn);
-
- The data argument provides a way for your application to
- pass arbitrary, application-specific information to the
- callback function. This is passed to the callback every time
- that it is called. It might for example, point to the symbol
- table from which possible completions are to be sought. The
- match_fn argument specifies the callback function to be
- called. The CplMatchFn function type is defined in
- libtecla.h, as is a CPL_MATCH_FN() macro that you can use to
- declare and prototype callback functions. The declaration
- and responsibilities of callback functions are described in
- depth in the <a href="cpl_complete_word.html">cpl_complete_word(3)</a> man page.
-
- In brief, the callback function is responsible for looking
- backwards in the input line, back from the point at which
- the user pressed TAB, to find the start of the word being
- completed. It then must lookup possible completions of this
- word, and record them one by one in the WordCompletion
- object that is passed to it as an argument, by calling the
- cpl_add_completion() function. If the callback function
- wishes to provide filename completion in addition to its own
- specific completions, it has the option of itself calling
- the builtin file-name completion callback. This also, is
- documented in the <a href="cpl_complete_word.html">cpl_complete_word(3)</a> man page.
-
- Note that if you would like gl_get_line() to return the
- current input line when a successful completion is been
- made, you can arrange this when you call
- cpl_add_completion(), by making the last character of the
- continuation suffix a newline character. If you do this, the
- input line will be updated to display the completion,
- together with any contiuation suffix up to the newline char-
- acter, then gl_get_line() will return this input line.
-
-
-</pre><h2>FILENAME EXPANSION</h2><pre>
- With the default key bindings, pressing ^X* causes
- gl_get_line() to expand the filename that precedes the cur-
- sor, replacing ~/ and ~user/ expressions with the
- corresponding home directories, and replacing $envvar
- expressions with the value of the specified environment
- variable, then if there are any wildcards, replacing the so
- far expanded filename with a space-separated list of the
- files which match the wild cards.
-
- The expansion binding is implemented using the
- ef_expand_file() function. See the <a href="ef_expand_file.html">ef_expand_file(3)</a> man
- page for more details.
-
-
-</pre><h2>RECALLING PREVIOUSLY TYPED LINES</h2><pre>
- Every time that a new line is entered by the user, it is
- appended to a list of historical input lines maintained
- within the GetLine resource object. You can traverse up and
- down this list using the up and down arrow keys. Alterna-
- tively, you can do the same with the ^P, and ^N keys, and in
- vi command mode you can alternatively use the k and j char-
- acters. Thus pressing up-arrow once, replaces the current
- input line with the previously entered line. Pressing up-
- arrow again, replaces this with the line that was entered
- before it, etc.. Having gone back one or more lines into the
- history list, one can return to newer lines by pressing
- down-arrow one or more times. If you do this sufficient
- times, you will return to the original line that you were
- entering when you first hit up-arrow.
-
- Note that in vi mode, all of the history recall functions
- switch the library into command mode.
-
- In emacs mode the M-p and M-n keys work just like the ^P and
- ^N keys, except that they skip all but those historical
- lines which share the prefix that precedes the cursor. In vi
- command mode the upper case K and J characters do the same
- thing, except that the string that they search for includes
- the character under the cursor as well as what precedes it.
-
- Thus for example, suppose that you were in emacs mode, and
- you had just entered the following list of commands in the
- order shown:
-
- ls ~/tecla/
- cd ~/tecla
- ls -l getline.c
- emacs ~/tecla/getline.c
-
- If you next typed:
-
- ls
-
- and then hit M-p, then rather than returning the previously
- typed emacs line, which doesn't start with "ls",
- gl_get_line() would recall the "ls -l getline.c" line.
- Pressing M-p again would recall the "ls ~/tecla/" line.
-
-
-</pre><h2>HISTORY FILES</h2><pre>
- To save the contents of the history buffer before quitting
- your application, and subsequently restore them when you
- next start the application, the following functions are pro-
- vided.
-
-
- int gl_save_history(GetLine *gl, const char *filename,
- const char *comment, int max_lines);
- int gl_load_history(GetLine *gl, const char *filename,
- const char *comment);
-
-
- The filename argument specifies the name to give the history
- file when saving, or the name of an existing history file,
- when loading. This may contain home-directory and environ-
- ment variable expressions, such as "~/.myapp_history" or
- "$HOME/.myapp_history".
- Along with each history line, extra information about it,
- such as when it was entered by the user, and what its nest-
- ing level is, is recorded as a comment preceding the line in
- the history file. Writing this as a comment allows the his-
- tory file to double as a command file, just in case you wish
- to replay a whole session using it. Since comment prefixes
- differ in different languages, the comment argument is pro-
- vided for specifying the comment prefix. For example, if
- your application were a unix shell, such as the bourne
- shell, you would specify "#" here. Whatever you choose for
- the comment character, you must specify the same prefix to
- gl_load_history() that you used when you called
- gl_save_history() to write the history file.
-
- The max_lines must be either -1 to specify that all lines in
- the history list be saved, or a positive number specifying a
- ceiling on how many of the most recent lines should be
- saved.
-
- Both fuctions return non-zero on error, after writing an
- error message to stderr. Note that gl_load_history() does
- not consider the non-existence of a file to be an error.
-
-
-</pre><h2>MULTIPLE HISTORY LISTS</h2><pre>
- If your application uses a single GetLine object for enter-
- ing many different types of input lines, you may wish
- gl_get_line() to distinguish the different types of lines in
- the history list, and only recall lines that match the
- current type of line. To support this requirement,
- gl_get_line() marks lines being recorded in the history list
- with an integer identifier chosen by the application. Ini-
- tially this identifier is set to 0 by new_GetLine(), but it
- can be changed subsequently by calling gl_group_history().
-
-
- int gl_group_history(GetLine *gl, unsigned id);
-
-
- The integer identifier id can be any number chosen by the
- application, but note that gl_save_history() and
- gl_load_history() preserve the association between identif-
- iers and historical input lines between program invokations,
- so you should choose fixed identifiers for the different
- types of input line used by your application.
-
- Whenever gl_get_line() appends a new input line to the his-
- tory list, the current history identifier is recorded with
- it, and when it is asked to recall a historical input line,
- it only recalls lines that are marked with the current iden-
- tifier.
-
-</pre><h2>DISPLAYING HISTORY</h2><pre>
- The history list can be displayed by calling
- gl_show_history().
-
-
- int gl_show_history(GetLine *gl, FILE *fp,
- const char *fmt,
- int all_groups,
- int max_lines);
-
-
- This displays the current contents of the history list to
- the stdio output stream fp. If the max_lines argument is
- greater than or equal to zero, then no more than this number
- of the most recent lines will be displayed. If the
- all_groups argument is non-zero, lines from all history
- groups are displayed. Otherwise just those of the currently
- selected history group are displayed. The format string
- argument, fmt, determines how the line is displayed. This
- can contain arbitrary characters which are written verbatim,
- interleaved with any of the following format directives:
-
- %D - The date on which the line was originally
- entered, formatted like 2001-11-20.
- %T - The time of day when the line was entered,
- formatted like 23:59:59.
- %N - The sequential entry number of the line in
- the history buffer.
- %G - The number of the history group which the
- line belongs to.
- %% - A literal % character.
- %H - The history line itself.
-
- Thus a format string like "%D %T %H0 would output something
- like:
-
- 2001-11-20 10:23:34 Hello world
-
- Note the inclusion of an explicit newline character in the
- format string.
-
-
-</pre><h2>LOOKING UP HISTORY</h2><pre>
- The gl_lookup_history() function allows the calling applica-
- tion to look up lines in the history list.
-
-
- typedef struct {
- const char *line; /* The requested historical */
- /* line. */
- unsigned group; /* The history group to which */
- /* the line belongs. */
- time_t timestamp; /* The date and time at which */
- /* the line was originally */
- /* entered. */
- } GlHistoryLine;
-
- int gl_lookup_history(GetLine *gl, unsigned long id,
- GlHistoryLine *hline);
-
-
- The id argument indicates which line to look up, where the
- first line that was entered in the history list after
- new_GetLine() was called, is denoted by 0, and subsequently
- entered lines are denoted with successively higher numbers.
- Note that the range of lines currently preserved in the his-
- tory list can be queried by calling the
- gl_range_of_history() function, described later. If the
- requested line is in the history list, the details of the
- line are recorded in the variable pointed to by the hline
- argument, and 1 is returned. Otherwise 0 is returned, and
- the variable pointed to by hline is left unchanged.
-
- Beware that the string returned in hline-&gt;line is part of
- the history buffer, so it must not be modified by the
- caller, and will be recycled on the next call to any func-
- tion that takes gl as its argument. Therefore you should
- make a private copy of this string if you need to keep it
- around.
-
-
-</pre><h2>MISCELLANEOUS HISTORY CONFIGURATION</h2><pre>
- If you wish to change the size of the history buffer that
- was originally specified in the call to new_GetLine(), you
- can do so with the gl_resize_history() function.
-
-
- int gl_resize_history(GetLine *gl, size_t histlen);
-
-
- The histlen argument specifies the new size in bytes, and if
- you specify this as 0, the buffer will be deleted.
-
- As mentioned in the discussion of new_GetLine(), the number
- of lines that can be stored in the history buffer, depends
- on the lengths of the individual lines. For example, a 1000
- byte buffer could equally store 10 lines of average length
- 100 bytes, or 2 lines of average length 50 bytes. Although
- the buffer is never expanded when new lines are added, a
- list of pointers into the buffer does get expanded when
- needed to accomodate the number of lines currently stored in
- the buffer. To place an upper limit on the number of lines
- in the buffer, and thus a ceiling on the amount of memory
- used in this list, you can call the gl_limit_history()
- function.
-
-
- void gl_limit_history(GetLine *gl, int max_lines);
-
-
- The max_lines should either be a positive number &gt;= 0,
- specifying an upper limit on the number of lines in the
- buffer, or be -1 to cancel any previously specified limit.
- When a limit is in effect, only the max_lines most recently
- appended lines are kept in the buffer. Older lines are dis-
- carded.
-
- To discard lines from the history buffer, use the
- gl_clear_history() function.
-
- void gl_clear_history(GetLine *gl, int all_groups);
-
- The all_groups argument tells the function whether to delete
- just the lines associated with the current history group
- (see gl_group_history()), or all historical lines in the
- buffer.
-
- The gl_toggle_history() function allows you to toggle his-
- tory on and off without losing the current contents of the
- history list.
-
-
- void gl_toggle_history(GetLine *gl, int enable);
-
-
- Setting the enable argument to 0 turns off the history
- mechanism, and setting it to 1 turns it back on. When his-
- tory is turned off, no new lines will be added to the his-
- tory list, and history lookup key-bindings will act as
- though there is nothing in the history buffer.
-
-
-</pre><h2>QUERYING HISTORY INFORMATION</h2><pre>
- The configured state of the history list can be queried with
- the gl_history_state() function.
-
-
- typedef struct {
- int enabled; /* True if history is enabled */
- unsigned group; /* The current history group */
- int max_lines; /* The current upper limit on the */
- /* number of lines in the history */
- /* list, or -1 if unlimited. */
- } GlHistoryState;
-
- void gl_state_of_history(GetLine *gl,
- GlHistoryState *state);
-
- On return, the status information is recorded in the vari-
- able pointed to by the state argument.
-
- The gl_range_of_history() function returns the number and
- range of lines in the history list.
-
-
- typedef struct {
- unsigned long oldest; /* The sequential entry number */
- /* of the oldest line in the */
- /* history list. */
- unsigned long newest; /* The sequential entry number */
- /* of the newest line in the */
- /* history list. */
- int nlines; /* The number of lines in the */
- /* history list. */
- } GlHistoryRange;
-
- void gl_range_of_history(GetLine *gl, GlHistoryRange *range);
-
- The return values are recorded in the variable pointed to by
- the range argument. If the nlines member of this structure
- is greater than zero, then the oldest and newest members
- report the range of lines in the list, and
- newest=oldest+nlines-1. Otherwise they are both zero.
-
- The gl_size_of_history() function returns the total size of
- the history buffer and the amount of the buffer that is
- currently occupied.
-
- typedef struct {
- size_t size; /* The size of the history buffer */
- /* (bytes). */
- size_t used; /* The number of bytes of the */
- /* history buffer that are */
- /* currently occupied. */
- } GlHistorySize;
-
- void gl_size_of_history(GetLine *gl, GlHistorySize *size);
-
- On return, the size information is recorded in the variable
- pointed to by the size argument.
-
-
-</pre><h2>CHANGING TERMINALS</h2><pre>
- The new_GetLine() constructor function assumes that input is
- to be read from stdin, and output written to stdout. The
- following function allows you to switch to different input
- and output streams.
-
- int gl_change_terminal(GetLine *gl, FILE *input_fp,
- FILE *output_fp, const char *term);
-
- The gl argument is the object that was returned by
- new_GetLine(). The input_fp argument specifies the stream
- to read from, and output_fp specifies the stream to be writ-
- ten to. Only if both of these refer to a terminal, will
- interactive terminal input be enabled. Otherwise
- gl_get_line() will simply call fgets() to read command
- input. If both streams refer to a terminal, then they must
- refer to the same terminal, and the type of this terminal
- must be specified via the term argument. The value of the
- term argument is looked up in the terminal information data-
- base (terminfo or termcap), in order to determine which spe-
- cial control sequences are needed to control various aspects
- of the terminal. new_GetLine() for example, passes the
- return value of getenv("TERM") in this argument. Note that
- if one or both of input_fp and output_fp don't refer to a
- terminal, then it is legal to pass NULL instead of a termi-
- nal type.
-
- Note that if you want to pass file descriptors to
- gl_change_terminal(), you can do this by creating stdio
- stream wrappers using the POSIX fdopen() function.
-
-
-</pre><h2>EXTERNAL EVENT HANDLING</h2><pre>
- While gl_get_line() is waiting for keyboard input from the
- user, you can ask it to also watch for activity on arbitrary
- file descriptors, such as network sockets, pipes etc, and
- have it call functions of your choosing when activity is
- seen. This works on any system that has the select() system
- call, which is most, if not all flavors of unix. Registering
- a file descriptor to be watched by gl_get_line() involves
- calling the gl_watch_fd() function.
-
-
- int gl_watch_fd(GetLine *gl, int fd, GlFdEvent event,
- GlFdEventFn *callback, void *data);
-
-
- If this returns non-zero, then it means that either your
- arguments are invalid, or that this facility isn't supported
- on the host system.
-
- The fd argument is the file descriptor to be watched. The
- event argument specifies what type of activity is of
- interest, chosen from the following enumerated values:
-
-
- GLFD_READ - Watch for the arrival of data to be read.
- GLFD_WRITE - Watch for the ability to write to the file
- descriptor without blocking.
- GLFD_URGENT - Watch for the arrival of urgent
- out-of-band data on the file descriptor.
-
-
- The callback argument is the function to call when the
- selected activity is seen. It should be defined with the
- following macro, which is defined in libtecla.h.
-
-
- #define GL_FD_EVENT_FN(fn) GlFdStatus (fn)(GetLine *gl, \
- void *data, int fd, \
- GlFdEvent event)
-
- The data argument of the gl_watch_fd() function is passed to
- the callback function for its own use, and can point to any-
- thing you like, including NULL. The file descriptor and the
- event argument are also passed to the callback function, and
- this potentially allows the same callback function to be
- registered to more than one type of event and/or more than
- one file descriptor. The return value of the callback func-
- tion should be one of the following values.
-
-
- GLFD_ABORT - Tell gl_get_line() to abort with an
- error (errno won't be set, so set it
- appropriately yourself if you need it).
- GLFD_REFRESH - Redraw the input line then continue
- waiting for input. Return this if
- your callback wrote to the terminal.
- GLFD_CONTINUE - Continue to wait for input, without
- redrawing the line.
-
- Note that before calling the callback, gl_get_line() blocks
- most signals, and leaves its own signal handlers installed,
- so if you need to catch a particular signal you will need to
- both temporarily install your own signal handler, and
- unblock the signal. Be sure to re-block the signal (if it
- was originally blocked) and reinstate the original signal
- handler, if any, before returning.
-
- Your callback shouldn't try to read from the terminal, which
- is left in raw mode as far as input is concerned. You can
- however write to the terminal as usual, since features like
- conversion of newline to carriage-return/linefeed are re-
- enabled while the callback is running. If your callback
- function does write to the terminal, be sure to output a
- newline first, and when your callback returns, tell
- gl_get_line() that the input line needs to be redrawn, by
- returning the GLFD_REFRESH status code.
-
- To remove a callback function that you previously registered
- for a given file descriptor and event, simply call
- gl_watch_fd() with the same file descriptor and event argu-
- ments, but with a callback argument of 0. The data argument
- is ignored in this case.
-
-
-</pre><h2>SIGNAL HANDLING DEFAULTS</h2><pre>
- By default, the gl_get_line() function intercepts a number
- of signals. This is particularly important for signals which
- would by default terminate the process, since the terminal
- needs to be restored to a usable state before this happens.
- In this section, the signals that are trapped by default,
- and how gl_get_line() responds to them, is described. Chang-
- ing these defaults is the topic of the following section.
-
- When the following subset of signals are caught,
- gl_get_line() first restores the terminal settings and sig-
- nal handling to how they were before gl_get_line() was
- called, resends the signal, to allow the calling
- application's signal handlers to handle it, then if the pro-
- cess still exists, gl_get_line() returns NULL and sets errno
- as specified below.
-
-
- SIGINT - This signal is generated both by the keyboard
- interrupt key (usually ^C), and the keyboard
- break key.
-
- errno=EINTR
-
- SIGHUP - This signal is generated when the controlling
- terminal exits.
-
- errno=ENOTTY
-
- SIGPIPE - This signal is generated when a program attempts
- to write to a pipe who's remote end isn't being
- read by any process. This can happen for example
- if you have called gl_change_terminal() to
- redirect output to a pipe hidden under a pseudo
- terminal.
-
- errno=EPIPE
-
- SIGQUIT - This signal is generated by the keyboard quit
- key (usually ^\).
-
- errno=EINTR
-
- SIGABRT - This signal is generated by the standard C,
- abort() function. By default it both
- terminates the process and generates a core
- dump.
-
- errno=EINTR
-
- SIGTERM - This is the default signal that the UN*X
- kill command sends to processes.
-
- errno=EINTR
-
- Note that in the case of all of the above signals, POSIX
- mandates that by default the process is terminated, with the
- addition of a core dump in the case of the SIGQUIT signal.
- In other words, if the calling application doesn't override
- the default handler by supplying its own signal handler,
- receipt of the corresponding signal will terminate the
- application before gl_get_line() returns.
-
- If gl_get_line() aborts with errno set to EINTR, you can
- find out what signal caused it to abort, by calling the fol-
- lowing function.
-
- int gl_last_signal(const GetLine *gl);
-
- This returns the numeric code (eg. SIGINT) of the last sig-
- nal that was received during the most recent call to
- gl_get_line(), or -1 if no signals were received.
-
- On systems that support it, when a SIGWINCH (window change)
- signal is received, gl_get_line() queries the terminal to
- find out its new size, redraws the current input line to
- accomodate the new size, then returns to waiting for key-
- board input from the user. Unlike other signals, this signal
- isn't resent to the application.
-
- Finally, the following signals cause gl_get_line() to first
- restore the terminal and signal environment to that which
- prevailed before gl_get_line() was called, then resend the
- signal to the application. If the process still exists after
- the signal has been delivered, then gl_get_line() then re-
- establishes its own signal handlers, switches the terminal
- back to raw mode, redisplays the input line, and goes back
- to awaiting terminal input from the user.
-
- SIGCONT - This signal is generated when a suspended
- process is resumed.
-
- SIGPWR - This signal is generated when a power failure
- occurs (presumably when the system is on a
- UPS).
-
- SIGALRM - This signal is generated when a timer
- expires.
- SIGUSR1 - An application specific signal.
-
- SIGUSR2 - Another application specific signal.
-
- SIGVTALRM - This signal is generated when a virtual
- timer expires (see man setitimer(2)).
-
- SIGXCPU - This signal is generated when a process
- exceeds its soft CPU time limit.
-
- SIGTSTP - This signal is generated by the terminal
- suspend key, which is usually ^Z, or the
- delayed terminal suspend key, which is
- usually ^Y.
-
- SIGTTIN - This signal is generated if the program
- attempts to read from the terminal while the
- program is running in the background.
-
- SIGTTOU - This signal is generated if the program
- attempts to write to the terminal while the
- program is running in the background.
-
-
- Obviously not all of the above signals are supported on all
- systems, so code to support them is conditionally compiled
- into the tecla library.
-
- Note that if SIGKILL, which by definition can't be caught,
- or any of the hardware generated exception signals, such as
- SIGSEGV, SIGBUS and SIGFPE, are received and unhandled while
- gl_get_line() has the terminal in raw mode, the program will
- be terminated without the terminal having been restored to a
- usable state. In practice, job-control shells usually reset
- the terminal settings when a process relinquishes the con-
- trolling terminal, so this is only a problem with older
- shells.
-
-
-</pre><h2>CUSTOMIZED SIGNAL HANDLING</h2><pre>
- The previous section listed the signals that gl_get_line()
- traps by default, and described how it responds to them.
- This section describes how to both add and remove signals
- from the list of trapped signals, and how to specify how
- gl_get_line() should respond to a given signal.
-
- If you don't need gl_get_line() to do anything in response
- to a signal that it normally traps, you can tell to
- gl_get_line() to ignore that signal by calling
- gl_ignore_signal().
-
- int gl_ignore_signal(GetLine *gl, int signo);
- The signo argument is the number of the signal (eg. SIGINT)
- that you want to have ignored. If the specified signal isn't
- currently one of those being trapped, this function does
- nothing.
-
- The gl_trap_signal() function allows you to either add a new
- signal to the list that gl_get_line() traps, or modify how
- it responds to a signal that it already traps.
-
- int gl_trap_signal(GetLine *gl, int signo, unsigned flags,
- GlAfterSignal after, int errno_value);
-
- The signo argument is the number of the signal that you wish
- to have trapped. The flags argument is a set of flags which
- determine the environment in which the application's signal
- handler is invoked, the after argument tells gl_get_line()
- what to do after the application's signal handler returns,
- and errno_value tells gl_get_line() what to set errno to if
- told to abort.
-
- The flags argument is a bitwise OR of zero or more of the
- following enumerators:
-
- GLS_RESTORE_SIG - Restore the caller's signal
- environment while handling the
- signal.
-
- GLS_RESTORE_TTY - Restore the caller's terminal settings
- while handling the signal.
-
- GLS_RESTORE_LINE - Move the cursor to the start of the
- line following the input line before
- invoking the application's signal
- handler.
-
- GLS_REDRAW_LINE - Redraw the input line when the
- application's signal handler returns.
-
- GLS_UNBLOCK_SIG - Normally, if the calling program has
- a signal blocked (man sigprocmask),
- gl_get_line() does not trap that
- signal. This flag tells gl_get_line()
- to trap the signal and unblock it for
- the duration of the call to
- gl_get_line().
-
- GLS_DONT_FORWARD - If this flag is included, the signal
- will not be forwarded to the signal
- handler of the calling program.
-
- Two commonly useful flag combinations are also enumerated as
- follows:
- GLS_RESTORE_ENV = GLS_RESTORE_SIG | GLS_RESTORE_TTY |
- GLS_REDRAW_LINE
-
- GLS_SUSPEND_INPUT = GLS_RESTORE_ENV | GLS_RESTORE_LINE
-
-
- If your signal handler, or the default system signal handler
- for this signal, if you haven't overriden it, never either
- writes to the terminal, nor suspends or terminates the cal-
- ling program, then you can safely set the flags argument to
- 0.
-
- If your signal handler always writes to the terminal, reads
- from it, or suspends or terminates the program, you should
- specify the flags argument as GL_SUSPEND_INPUT, so that:
-
- 1. The cursor doesn't get left in the middle of the input
- line.
- 2. So that the user can type in input and have it echoed.
- 3. So that you don't need to end each output line with
- \r\n, instead of just \n.
-
- The GL_RESTORE_ENV combination is the same as
- GL_SUSPEND_INPUT, except that it doesn't move the cursor,
- and if your signal handler doesn't read or write anything to
- the terminal, the user won't see any visible indication that
- a signal was caught. This can be useful if you have a signal
- handler that only occasionally writes to the terminal, where
- using GL_SUSPEND_LINE would cause the input line to be
- unnecessarily duplicated when nothing had been written to
- the terminal. Such a signal handler, when it does write to
- the terminal, should be sure to start a new line at the
- start of its first write, by writing a new line before
- returning. If the signal arrives while the user is entering
- a line that only occupies a signal terminal line, or if the
- cursor is on the last terminal line of a longer input line,
- this will have the same effect as GL_SUSPEND_INPUT. Other-
- wise it will start writing on a line that already contains
- part of the displayed input line. This doesn't do any harm,
- but it looks a bit ugly, which is why the GL_SUSPEND_INPUT
- combination is better if you know that you are always going
- to be writting to the terminal.
-
- The after argument, which determines what gl_get_line() does
- after the application's signal handler returns (if it
- returns), can take any one of the following values:
-
- GLS_RETURN - Return the completed input line, just as
- though the user had pressed the return
- key.
-
- GLS_ABORT - Cause gl_get_line() to return NULL.
- GLS_CONTINUE - Resume command line editing.
-
- The errno_value argument is intended to be combined with the
- GLS_ABORT option, telling gl_get_line() what to set the
- standard errno variable to before returning NULL to the cal-
- ling program. It can also, however, be used with the
- GL_RETURN option, in case you wish to have a way to distin-
- guish between an input line that was entered using the
- return key, and one that was entered by the receipt of a
- signal.
-
-
-</pre><h2>THE TERMINAL SIZE</h2><pre>
- On most systems the combination of the TIOCGWINSZ ioctl and
- the SIGWINCH signal is used to maintain an accurate idea of
- the terminal size. The terminal size is newly queried every
- time that gl_get_line() is called and whenever a SIGWINCH
- signal is received.
-
- On the few systems where this mechanism isn't available, at
- startup new_GetLine() first looks for the LINES and COLUMNS
- environment variables. If these aren't found, or they con-
- tain unusable values, then if a terminal information data-
- base like terminfo or termcap is available, the default size
- of the terminal is looked up in this database. If this too
- fails to provide the terminal size, a default size of 80
- columns by 24 lines is used. If this default isn't appropri-
- ate for your system, gl_terminal_size() can be used to sup-
- ply a different fallback.
-
- The gl_terminal_size() function allows you to query the
- current size of the terminal, and install an alternate fall-
- back size for cases where the size isn't available. Beware
- that the terminal size won't be available if reading from a
- pipe or a file, so the default values can be important even
- on systems that do support ways of finding out the terminal
- size.
-
- typedef struct {
- int nline; /* The terminal has nline lines */
- int ncolumn; /* The terminal has ncolumn columns */
- } GlTerminalSize;
-
- GlTerminalSize gl_terminal_size(GetLine *gl,
- int def_ncolumn,
- int def_nline);
-
- This function first updates gl_get_line()'s idea of the ter-
- minal size, then records its findings in the return value.
-
- The def_ncolumn and def_nline specify the default number of
- terminal columns and lines to use if the terminal size can't
- be determined.
-
-
-</pre><h2>HIDING WHAT YOU TYPE</h2><pre>
- When entering sensitive information, such as passwords, it
- is best not to have the text that you are entering echoed on
- the terminal. Furthermore, such text should not be recorded
- in the history list, since somebody finding your terminal
- unattended could then recall it, or somebody snooping
- through your directories could see it in your history file.
- With this in mind, the gl_echo_mode() function allows you to
- toggle on and off the display and archival of any text that
- is subsequently entered in calls to gl_get_line().
-
-
- int gl_echo_mode(GetLine *gl, int enable);
-
-
- The enable argument specifies whether entered text should be
- visible or not. If it is 0, then subsequently entered lines
- will not be visible on the terminal, and will not be
- recorded in the history list. If it is 1, then subsequent
- input lines will be displayed as they are entered, and pro-
- vided that history hasn't been turned off via a call to
- gl_toggle_history(), then they will also be archived in the
- history list. Finally, if the enable argument is -1, then
- the echoing mode is left unchanged, which allows you to
- non-destructively query the current setting via the return
- value. In all cases, the return value of the function is 0
- if echoing was disabled before the function was called, and
- 1 if it was enabled.
-
- When echoing is turned off, note that although tab comple-
- tion will invisibly complete your prefix as far as possible,
- ambiguous completions will not be displayed.
-
-
-</pre><h2>CALLBACK FUNCTION FACILITIES</h2><pre>
- Unless otherwise stated, callback functions, such as tab
- completion callbacks and event callbacks should not call any
- functions in this module. The following functions, however,
- are designed specifically to be used by callback functions.
-
- Calling the gl_replace_prompt() function from a callback
- tells gl_get_line() to display a different prompt when the
- callback returns. It has no effect if called when
- gl_get_line() is not being called.
-
- void gl_replace_prompt(GetLine *gl, const char *prompt);
-
-
-
-</pre><h2>INTERNATIONAL CHARACTER SETS</h2><pre>
- Since libtecla version 1.4.0, gl_get_line() has been 8-bit
- clean. This means that all 8-bit characters that are print-
- able in the user's current locale are now displayed verbatim
- and included in the returned input line. Assuming that the
- calling program correctly contains a call like the follow-
- ing,
-
- setlocale(LC_CTYPE, "");
-
- then the current locale is determined by the first of the
- environment variables LC_CTYPE, LC_ALL, and LANG, that is
- found to contain a valid locale name. If none of these vari-
- ables are defined, or the program neglects to call setlo-
- cale, then the default C locale is used, which is US 7-bit
- ASCII. On most unix-like platforms, you can get a list of
- valid locales by typing the command:
-
- locale -a
-
- at the shell prompt.
-
-
-</pre><h2> Meta keys and locales</h2><pre>
- Beware that in most locales other than the default C locale,
- meta characters become printable, and they are then no
- longer considered to match M-c style key bindings. This
- allows international characters to be entered with the com-
- pose key without unexpectedly triggering meta key bindings.
- You can still invoke meta bindings, since there are actually
- two ways to do this. For example the binding M-c can also be
- invoked by pressing the escape key momentarily, then press-
- ing the c key, and this will work regardless of locale.
- Moreover, many modern terminal emulators, such as gnome's
- gnome-terminal's and KDE's konsole terminals, already gen-
- erate escape pairs like this when you use the meta key,
- rather than a real meta character, and other emulators usu-
- ally have a way to request this behavior, so you can con-
- tinue to use the meta key on most systems.
-
- For example, although xterm terminal emulators generate real
- 8-bit meta characters by default when you use the meta key,
- they can be configured to output the equivalent escape pair
- by setting their EightBitInput X resource to False. You can
- either do this by placing a line like the following in your
- ~/.Xdefaults file,
-
- XTerm*EightBitInput: False
-
- or by starting an xterm with an -xrm '*EightBitInput: False'
- command-line argument. In recent versions of xterm you can
- toggle this feature on and off with the "Meta Sends Escape"
- option in the menu that is displayed when you press the left
- mouse button and the control key within an xterm window. In
- CDE, dtterms can be similarly coerced to generate escape
- pairs in place of meta characters, by setting the
- Dtterm*KshMode resource to True.
-
-
-</pre><h2> Entering international characters</h2><pre>
- If you don't have a keyboard that generates all of the
- international characters that you need, there is usually a
- compose key that will allow you to enter special characters,
- or a way to create one. For example, under X windows on
- unix-like systems, if your keyboard doesn't have a compose
- key, you can designate a redundant key to serve this purpose
- with the xmodmap command. For example, on many PC keyboards
- there is a microsoft-windows key, which is otherwise useless
- under Linux. On my PC the xev program reports that pressing
- this key generates keycode 115, so to turn this key into a
- compose key, I do the following:
-
- xmodmap -e 'keycode 115 = Multi_key'
-
- I can then enter an i with a umlaut over it by typing this
- key, followed by ", followed by i.
-
-
-</pre><h2>THREAD SAFETY</h2><pre>
- In a multi-threaded program, you should use the libtecla_r.a
- version of the library. This uses reentrant versions of sys-
- tem functions, where available. Unfortunately neither ter-
- minfo nor termcap were designed to be reentrant, so you
- can't safely use the functions of the getline module in mul-
- tiple threads (you can use the separate file-expansion and
- word-completion modules in multiple threads, see the
- corresponding man pages for details). However due to the use
- of POSIX reentrant functions for looking up home directories
- etc, it is safe to use this module from a single thread of a
- multi-threaded program, provided that your other threads
- don't use any termcap or terminfo functions.
-
-
-</pre><h2>FILES</h2><pre>
- libtecla.a - The tecla library
- libtecla.h - The tecla header file.
- ~/.teclarc - The personal tecla customization file.
-
-
-</pre><h2>SEE ALSO</h2><pre>
- <a href="libtecla.html">libtecla(3)</a>, <a href="ef_expand_file.html">ef_expand_file(3)</a>, <a href="cpl_complete_word.html">cpl_complete_word(3)</a>,
- <a href="pca_lookup_file.html">pca_lookup_file(3)</a>
-
-
-</pre><h2>AUTHOR</h2><pre>
- Martin Shepherd (mcs@astro.caltech.edu)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</body>
diff --git a/libtecla-1.4.1/html/index.html b/libtecla-1.4.1/html/index.html
deleted file mode 100644
index f75a90f..0000000
--- a/libtecla-1.4.1/html/index.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<HEAD><TITLE>The tecla command-line editing library.</TITLE></HEAD>
-<BODY bgcolor=add8e6>
-<H1>The Tecla command-line editing library.</H1>
-
-The tecla library provides UNIX and LINUX programs with interactive
-command line editing facilities, similar to those of the UNIX tcsh
-shell. In addition to simple command-line editing, it supports recall
-of previously entered command lines, TAB completion of file names or
-other tokens, and in-line wild-card expansion of filenames. The
-internal functions which perform file-name completion and wild-card
-expansion are also available externally for optional use by programs.
-<P>
-In addition, the library includes a path-searching module. This
-allows an application to provide completion and lookup of files
-located in UNIX style paths. Although not built into the line editor
-by default, it can easily be called from custom tab-completion
-callback functions. This was originally conceived for completing the
-names of executables and providing a way to look up their locations in
-the user's PATH environment variable, but it can easily be asked to
-look up and complete other types of files in any list of directories.
-
-<P>
-Note that special care has been taken to allow the use of this library
-in threaded programs. The option to enable this is discussed in the
-Makefile, and specific discussions of thread safety are presented in
-the included man pages.
-<P>
-The current version is version 1.4.1. This may be obtained from:
-<P>
- <a href="libtecla-1.4.1.tar.gz">http://www.astro.caltech.edu/~mcs/tecla/libtecla-1.4.1.tar.gz</a>
-<P>
-
-For the sake of automated scripts, the following URL always points to
-the latest version. Note that the version number can be found in the
-README file.
-
-<P>
- <a href="libtecla.tar.gz">http://www.astro.caltech.edu/~mcs/tecla/libtecla.tar.gz</a>
-<P>
-
-The library is distributed under a permissive non-copyleft
-<a href="LICENSE.TERMS">free software license</a> (the X11 license with
-the name of the copyright holder changed). This is compatible with,
-but not as restrictive as the GNU GPL.
-
-<H2>Release notes</H2>
-
-The list of major changes that accompany each new release can be found
-<a href="release.html">here</a>.
-
-<H2>Modifications</H2>
-
-The gory details of changes in the latest and previous versions of the
-library can be found <a href="changes.html">here</a>.
-
-<H2>Library documentation</H2>
-
-The following are html versions of the libtecla man pages:
-
-<UL>
-<LI> <a href="libtecla.html">libtecla(3)</a> - An introduction to the tecla library.
-<LI> <a href="gl_get_line.html">gl_get_line(3)</a> - The interactive line-input function.
-<LI> <a href="cpl_complete_word.html">cpl_complete_word(3)</a> - The word (eg. filename) completion function.
-<LI> <a href="ef_expand_file.html">ef_expand_file(3)</a> - The filename expansion function.
-<LI> <a href="pca_lookup_file.html">pca_lookup_file(3)</a> - A directory-list based filename lookup and completion module.
-<LI> <a href="enhance.html">enhance(3)</a> - A program that adds command-line editing to third party programs.
-</UL>
-
-<H2>Portability</H2>
-
-In principle, the standard version of the library should compile
-without any problems on any UNIX or UNIX like system. So far it has
-been reported to work on the following systems:
-
-<pre>
- Sun Solaris 2.5,2.6,7,8, with any of gcc, Sun C, or g++.
- Mandrake Linux 7.1 etc.., gcc
- Red Hat Linux 7 etc.., gcc
- Suse Linux 6.4, gcc
- IBM AIX 4.3.3, gcc
- HP-UX 10.20, HP-UX 11, gcc, c89
- SCO UnixWare 7.1.1
- FreeBSD, gcc
- Alpha OSF1, cc, gcc
- Mac OS X
- Cygwin (running under Windows)
- QNX
-</pre>
-
-There haven't been many reports concerning the POSIX reentrant
-version, so the absence of any of the above from the following list of
-systems on which the reentrant version is known to work, shouldn't be
-taken as an indication that the reentrant version doesn't work.
-
-<pre>
- Sun Solaris 2.5,2.6,7,8, with any of gcc, Sun C, or g++.
- Mandrake Linux 7.1, gcc
- RedHat Linux 7.0,7.1, gcc
- SuSe Linux 6.4, gcc
- HP-UX 11, gcc
- IBM AIX 4.3.3, gcc
- Alpha OSF1, cc
-</pre>
-
-The only system that is known to have issues with the reentrant
-version of the library is SCO UnixWare 7.1.1. The problem is in the
-system provided signal.h, which breaks when POSIX_C_SOURCE is
-defined. It has been reported that this can be fixed by editing
-signal.h.
-
-<P>
-If you compile the library on a system that isn't mentioned above,
-please send E-mail to <b>mcs@astro.caltech.edu</b>.
-<HR>
-Martin Shepherd (25-May-2002)
-</BODY>
diff --git a/libtecla-1.4.1/html/libtecla.html b/libtecla-1.4.1/html/libtecla.html
deleted file mode 100644
index 914c1e9..0000000
--- a/libtecla-1.4.1/html/libtecla.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<head>
-<title>Manual Page</title>
-</head>
-<body>
-<pre>
-</pre><h2>NAME</h2><pre>
- libtecla - An interactive command-line input library.
-
-</pre><h2>SYNOPSIS</h2><pre>
- gcc ... -ltecla -lcurses
-
-
-</pre><h2>DESCRIPTION</h2><pre>
- The tecla library provides programs with interactive command
- line editing facilities, similar to those of the unix tcsh
- shell. In addition to simple command-line editing, it sup-
- ports recall of previously entered command lines, TAB com-
- pletion of file names or other tokens, and in-line wild-card
- expansion of filenames. The internal functions which perform
- file-name completion and wild-card expansion are also avail-
- able externally for optional use by the calling program.
-
- The various parts of the library are documented in the fol-
- lowing man pages:
-
- <a href="gl_get_line.html">gl_get_line(3)</a> - The interactive line-input module.
- <a href="cpl_complete_word.html">cpl_complete_word(3)</a> - The word completion module.
- <a href="ef_expand_file.html">ef_expand_file(3)</a> - The filename expansion module.
- <a href="pca_lookup_file.html">pca_lookup_file(3)</a> - A directory-list based filename
- lookup and completion module.
-
- In addition there is one optional application distributed
- with the library:
-
- <a href="enhance.html">enhance(3)</a> - Add command-line editing to third
- party applications.
-
-
-</pre><h2>THREAD SAFETY</h2><pre>
- If the library is compiled with -D_POSIX_C_SOURCE=199506L,
- reentrant versions of as many functions as possible are
- used. This includes using getpwuid_r() and getpwnam_r()
- instead of getpwuid() and getpwnam() when looking up the
- home directories of specific users in the password file (for
- ~user/ expansion), and readdir_r() instead of readdir() for
- reading directory entries when doing filename completion.
- The reentrant version of the library is usually called
- libtecla_r.a instead of libtecla.a, so if only the latter is
- available, it probably isn't the correct version to link
- with threaded programs.
-
- Reentrant functions for iterating through the password file
- aren't available, so when the library is compiled to be
- reentrant, TAB completion of incomplete usernames in ~user-
- name/ expressions is disabled. This doesn't disable expan-
- sion of complete ~username expressions, which can be done
- reentrantly, or expansion of the parts of filenames that
- follow them, so this doesn't remove much functionality.
-
- The terminfo functions setupterm(), tigetstr(), tigetnum()
- and tputs() also aren't reentrant, but very few programs
- will want to interact with multiple terminals, so this
- shouldn't prevent this library from being used in threaded
- programs.
-
-
-</pre><h2>LIBRARY VERSION NUMBER</h2><pre>
- The version number of the library can be queried using the
- following function.
-
- void libtecla_version(int *major, int *minor, int *micro);
-
-
- On return, this function records the three components of the
- libtecla version number in *major, *minor, *micro. The for-
- mal meaning of the three components is as follows.
-
-
- major - Incrementing this number implies that a change has
- been made to the library's public interface, which
- makes it binary incompatible with programs that
- were linked with previous shared versions of the
- tecla library.
-
- minor - This number is incremented by one whenever
- additional functionality, such as new functions or
- modules, are added to the library.
-
- micro - This is incremented whenever modifications to the
- library are made which make no changes to the
- public interface, but which fix bugs and/or improve
- the behind-the-scenes implementation.
-
-
-
-</pre><h2>TRIVIA</h2><pre>
- In Spanish, a "tecla" is the key of a keyboard. Since this
- library centers on keyboard input, and given that I wrote
- much of the library while working in Chile, this seemed like
- a suitable name.
-
-
-</pre><h2>FILES</h2><pre>
- libtecla.a - The tecla library.
- libtecla.h - The tecla header file.
- ~/.teclarc - The tecla personal customization file.
-
-
-
-</pre><h2>SEE ALSO</h2><pre>
- <a href="gl_get_line.html">gl_get_line(3)</a>, <a href="ef_expand_file.html">ef_expand_file(3)</a>, <a href="cpl_complete_word.html">cpl_complete_word(3)</a>,
- <a href="pca_lookup_file.html">pca_lookup_file(3)</a>, <a href="enhance.html">enhance(3)</a>
-
-
-</pre><h2>AUTHOR</h2><pre>
- Martin Shepherd (mcs@astro.caltech.edu)
-
-
-</pre><h2>ACKNOWLEDGMENTS</h2><pre>
- Markus Gyger - Lots of assistance, including help with
- shared libraries, configuration information,
- particularly for Solaris; modifications to
- support C++ compilers, improvements for ksh
- users, faster cursor motion, output
- buffering, and changes to make gl_get_line()
- 8-bit clean.
- Mike MacFaden - Suggestions, feedback and testing that led
- to many of the major new functions that were
- added in version 1.4.0.
- Tim Eliseo - Many vi-mode bindings and fixes.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</body>
diff --git a/libtecla-1.4.1/html/pca_lookup_file.html b/libtecla-1.4.1/html/pca_lookup_file.html
deleted file mode 100644
index 40c9f2b..0000000
--- a/libtecla-1.4.1/html/pca_lookup_file.html
+++ /dev/null
@@ -1,371 +0,0 @@
-<head>
-<title>Manual Page</title>
-</head>
-<body>
-<pre>
-</pre><h2>NAME</h2><pre>
- pca_lookup_file, del_PathCache, del_PcaPathConf,
- new_PathCache, new_PcaPathConf, pca_last_error,
- pca_path_completions, pca_scan_path, pca_set_check_fn,
- ppc_file_start, ppc_literal_escapes - lookup a file in a
- list of directories
-
-</pre><h2>SYNOPSIS</h2><pre>
- #include &lt;libtecla.h&gt;
-
- PathCache *new_PathCache(void);
-
- PathCache *del_PathCache(PathCache *pc);
-
- int pca_scan_path(PathCache *pc, const char *path);
-
- void pca_set_check_fn(PathCache *pc, CplCheckFn *check_fn,
- void *data);
-
- char *pca_lookup_file(PathCache *pc, const char *name,
- int name_len, int literal);
-
- const char *pca_last_error(PathCache *pc);
-
- CPL_MATCH_FN(pca_path_completions);
-
-
-
-</pre><h2>DESCRIPTION</h2><pre>
- The PathCache object is part of the tecla library (see the
- <a href="libtecla.html">libtecla(3)</a> man page).
-
- PathCache objects allow an application to search for files
- in any colon separated list of directories, such as the unix
- execution PATH environment variable. Files in absolute
- directories are cached in a PathCache object, whereas rela-
- tive directories are scanned as needed. Using a PathCache
- object, you can look up the full pathname of a simple
- filename, or you can obtain a list of the possible comple-
- tions of a given filename prefix. By default all files in
- the list of directories are targets for lookup and comple-
- tion, but a versatile mechanism is provided for only select-
- ing specific types of files. The obvious application of this
- facility is to provide Tab-completion and lookup of execut-
- able commands in the unix PATH, so an optional callback
- which rejects all but executable files, is provided.
-
-
-</pre><h2>AN EXAMPLE</h2><pre>
- Under UNIX, the following example program looks up and
- displays the full pathnames of each of the command names on
- the command line.
- #include &lt;stdio.h&gt;
- #include &lt;stdlib.h&gt;
- #include &lt;libtecla.h&gt;
-
- int main(int argc, char *argv[])
- {
- int i;
- /*
- * Create a cache for executable files.
- */
- PathCache *pc = new_PathCache();
- if(!pc)
- exit(1);
- /*
- * Scan the user's PATH for executables.
- */
- if(pca_scan_path(pc, getenv("PATH"))) {
- fprintf(stderr, "%s\n", pca_last_error(pc));
- exit(1);
- }
- /*
- * Arrange to only report executable files.
- */
- pca_set_check_fn(pc, cpl_check_exe, NULL);
- /*
- * Lookup and display the full pathname of each of the
- * commands listed on the command line.
- */
- for(i=1; i&lt;argc; i++) {
- char *cmd = pca_lookup_file(pc, argv[i], -1, 0);
- printf("The full pathname of '%s' is %s\n", argv[i],
- cmd ? cmd : "unknown");
- }
- pc = del_PathCache(pc); /* Clean up */
- return 0;
- }
-
- The following is an example of what this does on my laptop
- under linux:
-
- $ ./example less more blob
- The full pathname of 'less' is /usr/bin/less
- The full pathname of 'more' is /bin/more
- The full pathname of 'blob' is unknown
- $
-
-
-</pre><h2>FUNCTION DESCRIPTIONS</h2><pre>
- In order to use the facilities of this module, you must
- first allocate a PathCache object by calling the
- new_PathCache() constructor function.
-
- PathCache *new_PathCache(void)
-
- This function creates the resources needed to cache and
- lookup files in a list of directories. It returns NULL on
- error.
-
-
-</pre><h2>POPULATING THE CACHE</h2><pre>
- Once you have created a cache, it needs to be populated with
- files. To do this, call the pca_scan_path() function.
-
- int pca_scan_path(PathCache *pc, const char *path);
-
- Whenever this function is called, it discards the current
- contents of the cache, then scans the list of directories
- specified in its path argument for files. The path argument
- must be a string containing a colon-separated list of direc-
- tories, such as "/usr/bin:/home/mcs/bin:.". This can include
- directories specified by absolute pathnames such as
- "/usr/bin", as well as sub-directories specified by relative
- pathnames such as "." or "bin". Files in the absolute direc-
- tories are immediately cached in the specified PathCache
- object, whereas sub-directories, whose identities obviously
- change whenever the current working directory is changed,
- are marked to be scanned on the fly whenever a file is
- looked up.
-
- On success this function return 0. On error it returns 1,
- and a description of the error can be obtained by calling
- pca_last_error(pc).
-
-
-</pre><h2>LOOKING UP FILES</h2><pre>
- Once the cache has been populated with files, you can look
- up the full pathname of a file, simply by specifying its
- filename to pca_lookup_file().
-
- char *pca_lookup_file(PathCache *pc, const char *name,
- int name_len, int literal);
-
- To make it possible to pass this function a filename which
- is actually part of a longer string, the name_len argument
- can be used to specify the length of the filename at the
- start of the name[] argument. If you pass -1 for this
- length, the length of the string will be determined with
- strlen(). If the name[] string might contain backslashes
- that escape the special meanings of spaces and tabs within
- the filename, give the literal argument, the value 0. Other-
- wise, if backslashes should be treated as normal characters,
- pass 1 for the value of the literal argument.
-
-
-</pre><h2>FILENAME COMPLETION</h2><pre>
- Looking up the potential completions of a filename-prefix in
- the filename cache, is achieved by passing the provided
- pca_path_completions() callback function to the
- cpl_complete_word() function (see the <a href="cpl_complete_word.html">cpl_complete_word(3)</a>
- man page).
-
- CPL_MATCH_FN(pca_path_completions);
-
- This callback requires that its data argument be a pointer
- to a PcaPathConf object. Configuration objects of this type
- are allocated by calling new_PcaPathConf().
-
- PcaPathConf *new_PcaPathConf(PathCache *pc);
-
- This function returns an object initialized with default
- configuration parameters, which determine how the
- cpl_path_completions() callback function behaves. The func-
- tions which allow you to individually change these parame-
- ters are discussed below.
-
- By default, the pca_path_completions() callback function
- searches backwards for the start of the filename being com-
- pleted, looking for the first un-escaped space or the start
- of the input line. If you wish to specify a different loca-
- tion, call ppc_file_start() with the index at which the
- filename starts in the input line. Passing start_index=-1
- re-enables the default behavior.
-
- void ppc_file_start(PcaPathConf *ppc, int start_index);
-
- By default, when pca_path_completions() looks at a filename
- in the input line, each lone backslash in the input line is
- interpreted as being a special character which removes any
- special significance of the character which follows it, such
- as a space which should be taken as part of the filename
- rather than delimiting the start of the filename. These
- backslashes are thus ignored while looking for completions,
- and subsequently added before spaces, tabs and literal
- backslashes in the list of completions. To have unescaped
- backslashes treated as normal characters, call
- ppc_literal_escapes() with a non-zero value in its literal
- argument.
-
- void ppc_literal_escapes(PcaPathConf *ppc, int literal);
-
- When you have finished with a PcaPathConf variable, you can
- pass it to the del_PcaPathConf() destructor function to
- reclaim its memory.
-
- PcaPathConf *del_PcaPathConf(PcaPathConf *ppc);
-
-</pre><h2>BEING SELECTIVE</h2><pre>
- If you are only interested in certain types or files, such
- as, for example, executable files, or files whose names end
- in a particular suffix, you can arrange for the file comple-
- tion and lookup functions to be selective in the filenames
- that they return. This is done by registering a callback
- function with your PathCache object. Thereafter, whenever a
- filename is found which either matches a filename being
- looked up, or matches a prefix which is being completed,
- your callback function will be called with the full pathname
- of the file, plus any application-specific data that you
- provide, and if the callback returns 1 the filename will be
- reported as a match, and if it returns 0, it will be
- ignored. Suitable callback functions and their prototypes
- should be declared with the following macro. The CplCheckFn
- typedef is also provided in case you wish to declare
- pointers to such functions.
-
- #define CPL_CHECK_FN(fn) int (fn)(void *data, \
- const char *pathname)
- typedef CPL_CHECK_FN(CplCheckFn);
-
- Registering one of these functions involves calling the
- pca_set_check_fn() function. In addition to the callback
- function, passed via the check_fn argument, you can pass a
- pointer to anything via the data argument. This pointer will
- be passed on to your callback function, via its own data
- argument, whenever it is called, so this provides a way to
- pass appplication specific data to your callback.
-
- void pca_set_check_fn(PathCache *pc, CplCheckFn *check_fn,
- void *data);
-
- Note that these callbacks are passed the full pathname of
- each matching file, so the decision about whether a file is
- of interest can be based on any property of the file, not
- just its filename. As an example, the provided
- cpl_check_exe() callback function looks at the executable
- permissions of the file and the permissions of its parent
- directories, and only returns 1 if the user has execute per-
- mission to the file. This callback function can thus be used
- to lookup or complete command names found in the directories
- listed in the user's PATH environment variable. The example
- program given earlier in this man page provides a demonstra-
- tion of this.
-
- Beware that if somebody tries to complete an empty string,
- your callback will get called once for every file in the
- cache, which could number in the thousands. If your callback
- does anything time consuming, this could result in an unac-
- ceptable delay for the user, so callbacks should be kept
- short.
- To improve performance, whenever one of these callbacks is
- called, the choice that it makes is cached, and the next
- time the corresponding file is looked up, instead of calling
- the callback again, the cached record of whether it was
- accepted or rejected is used. Thus if somebody tries to com-
- plete an empty string, and hits tab a second time when noth-
- ing appears to happen, there will only be one long delay,
- since the second pass will operate entirely from the cached
- dispositions of the files. These cached dipositions are dis-
- carded whenever pca_scan_path() is called, and whenever
- pca_set_check_fn() is called with changed callback function
- or data arguments.
-
-
-</pre><h2>ERROR HANDLING</h2><pre>
- If pca_scan_path() reports that an error occurred by return-
- ing 1, you can obtain a terse description of the error by
- calling pca_last_error(pc). This returns an internal string
- containing an error message.
-
- const char *pca_last_error(PathCache *pc);
-
-
-
-</pre><h2>CLEANING UP</h2><pre>
- Once you have finished using a PathCache object, you can
- reclaim its resources by passing it to the del_PathCache()
- destructor function. This takes a pointer to one of these
- objects, and always returns NULL.
-
- PathCache *del_PathCache(PathCache *pc);
-
-
-</pre><h2>THREAD SAFETY</h2><pre>
- In multi-threaded programs, you should use the libtecla_r.a
- version of the library. This uses POSIX reentrant functions
- where available (hence the _r suffix), and disables features
- that rely on non-reentrant system functions. In the case of
- this module, the only disabled feature is username comple-
- tion in ~username/ expressions, in cpl_path_completions().
-
- Using the libtecla_r.a version of the library, it is safe to
- use the facilities of this module in multiple threads, pro-
- vided that each thread uses a separately allocated PathCache
- object. In other words, if two threads want to do path
- searching, they should each call new_PathCache() to allocate
- their own caches.
-
-
-</pre><h2>FILES</h2><pre>
- libtecla.a - The tecla library
- libtecla.h - The tecla header file.
-</pre><h2>SEE ALSO</h2><pre>
- <a href="libtecla.html">libtecla(3)</a>, <a href="gl_get_line.html">gl_get_line(3)</a>, <a href="ef_expand_file.html">ef_expand_file(3)</a>,
- <a href="cpl_complete_word.html">cpl_complete_word(3)</a>
-
-
-</pre><h2>AUTHOR</h2><pre>
- Martin Shepherd (mcs@astro.caltech.edu)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</body>
diff --git a/libtecla-1.4.1/html/release.html b/libtecla-1.4.1/html/release.html
deleted file mode 100644
index e0d219c..0000000
--- a/libtecla-1.4.1/html/release.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<HEAD><TITLE>The tecla library release notes</TITLE></HEAD>
-<BODY bgcolor=add8e6><PRE>
-This file lists major changes which accompany each new release.
-
-Version 1.4.1:
-
- This is a maintenance release. It includes minor changes to support
- Mac OS X (Darwin), the QNX real-time operating system, and Cygwin
- under Windows. It also fixes an oversight that was preventing the
- tab key from inserting tab characters when users unbound the
- complete-word action from it.
-
-Version 1.4.0:
-
- The contents of the history list can now be saved and restored with
- the new gl_save_history() and gl_load_history() functions.
-
- Event handlers can now be registered to watch for and respond to I/O
- on arbitrary file descriptors while gl_get_line() is waiting for
- terminal input from the user. See the gl_get_line(3) man page
- for details on gl_watch_fd().
-
- As an optional alternative to getting configuration information only
- from ~/.teclarc, the new gl_configure_getline() function allows
- configuration commands to be taken from any of, a string, a
- specified application-specific file, and/or a specified
- user-specific file. See the gl_get_line(3) man page for details.
-
- The version number of the library can now be queried using the
- libtecla_version() function. See the libtecla(3) man page.
-
- The new gl_group_history() function allows applications to group
- different types of input line in the history buffer, and arrange for
- only members of the appropriate group to be recalled on a given call
- to gl_get_line(). See the gl_get_line(3) man page.
-
- The new gl_show_history() function displays the current history list
- to a given stdio output stream. See the gl_get_line(3) man page.
-
- new_GetLine() now allows you to specify a history buffer size of
- zero, thus requesting that no history buffer be allocated. You can
- subsequently resize or delete the history buffer at any time, by
- calling gl_resize_history(), limit the number of lines that are
- allowed in the buffer by calling gl_limit_history(), clear either
- all history lines from the history list, or just the history lines
- that are associated with the current history group, by calling
- gl_clear_history, and toggle the history mechanism on and off by
- calling gl_toggle_history().
-
- The new gl_terminal_size() function can be used to query the
- current terminal size. It can also be used to supply a default
- terminal size on systems where no mechanism is available for
- looking up the size.
-
- The contents and configuration of the history list can now be
- obtained by the calling application, by calling the new
- gl_lookup_history(), gl_state_of_history(), gl_range_of_history()
- and gl_size_of_history() functions. See the gl_get_line(3) man page.
-
- Echoing of the input line as it is typed, can now be turned on and
- off via the new gl_echo_mode() function. While echoing is disabled,
- newly entered input lines are omitted from the history list. See
- the gl_get_line(3) man page.
-
- While the default remains to display the prompt string literally,
- the new gl_prompt_style() function can be used to enable text
- attribute formatting directives in prompt strings, such as
- underlining, bold font, and highlighting directives.
-
- Signal handling in gl_get_line() is now customizable. The default
- signal handling behavior remains essentially the same, except that
- the SIGTSTP, SIGTTIN and SIGTTOU are now forwarded to the
- corresponding signal handler of the calling program, instead of
- causing a SIGSTOP to be sent to the application. It is now possible
- to remove signals from the list that are trapped by gl_get_line(),
- as well as add new signals to this list. The signal and terminal
- environments in which the signal handler of the calling program is
- invoked, and what gl_get_line() does after the signal handler
- returns, is now customizable on a per signal basis. You can now also
- query the last signal that was caught by gl_get_line(). This is
- useful when gl_get_line() aborts with errno=EINTR, and you need to
- know which signal caused it to abort.
-
- Key-sequences bound to action functions can now start with printable
- characters. Previously only keysequences starting with control or
- meta characters were permitted.
-
- gl_get_line() is now 8-bit clean. If the calling program has
- correctly called setlocale(LC_CTYPE,""), then the user can select an
- alternate locale by setting the standard LC_CTYPE, LC_ALL, or LANG
- environment variables, and international characters can then be
- entered directly, either by using a non-US keyboard, or by using a
- compose key on a standard US keyboard. Note that in locales in which
- meta characters become printable, meta characters no longer match
- M-c bindings, which then have to be entered using their escape-c
- equivalents. Fortunately most modern terminal emulators either
- output the escape-c version by default when the meta key is used, or
- can be configured to do so (see the gl_get_line(3) man page), so in
- most cases you can continue to use the meta key.
-
- Completion callback functions can now tell gl_get_line() to return
- the input line immediately after a successful tab completion, simply
- by setting the last character of the optional continuation suffix to
- a newline character (ie. in the call to cpl_add_completion()).
-
- It is now safe to create and use multiple GetLine objects, albeit
- still only from a single thread. In conjunction with the new
- gl_configure_getline() function, this optionally allows multiple
- GetLine objects with different bindings to be used to implement
- different input modes.
-
- The edit-mode configuration command now accepts the argument,
- none. This tells gl_get_line() to revert to using just the native
- line editing facilities provided by the terminal driver. This could
- be used if the termcap or terminfo entry of the host terminal were
- badly corrupted.
-
- Application callback functions invoked by gl_get_line() can now
- change the displayed prompt using the gl_replace_prompt() function.
-
- Their is now an optional program distributed with the library. This
- is a beta release of a program which adds tecla command-line editing
- to virtually any third party application without the application
- needing to be linked to the library. See the enhance(3) man page for
- further details. Although built and installed by default, the
- INSTALL document explains how to prevent this.
-
- The INSTALL document now explains how you can stop the demo programs
- from being built and installed.
-
- NetBSD/termcap fixes. Mike MacFaden reported two problems that he
- saw when compiling libtecla under NetBSD. Both cases were related to
- the use of termcap. Most systems use terminfo, so this problem has
- gone unnoticed until now, and won't have affected the grand majority
- of users. The configure script had a bug which prevented the check
- for CPP working properly, and getline.c wouldn't compile due to an
- undeclared variable when USE_TERMCAP was defined. Both problems have
- now been fixed. Note that if you successfully compiled version
- 1.3.3, this problem didn't affect you.
-
- An unfortunate and undocumented binding of the key-sequence M-O was
- shadowing the arrow-key bindings on systems that use ^[OA etc. I
- have removed this binding (the documented lower case M-o binding
- remains bound). Under the KDE konsole terminal this was causing the
- arrow keys to do something other than expected.
-
- There was a bug in the history list code which could result in
- strange entries appearing at the start of the history list once
- enough history lines had been added to the list to cause the
- circular history buffer to wrap. This is now fixed.
-
-Version 1.3.3:
-
- Signal handling has been re-written, and documentation of its
- behaviour has been added to the gl_get_line(3) man page. In addition
- to eliminating race conditions, and appropriately setting errno for
- those signals that abort gl_get_line(), many more signals are now
- intercepted, making it less likely that the terminal will be left in
- raw mode by a signal that isn't trapped by gl_get_line().
-
- A bug was also fixed that was leaving the terminal in raw mode if
- the editing mode was changed interactively between vi and emacs.
- This was only noticeable when running programs from old shells that
- don't reset terminal modes.
-
-Version 1.3.2:
-
- Tim Eliseo contributed a number of improvements to vi mode,
- including a fuller set of vi key-bindings, implementation of the vi
- constraint that the cursor can't backup past the point at which
- input mode was entered, and restoration of overwritten characters
- when backspacing in overwrite mode. There are also now new bindings
- to allow users to toggle between vi and emacs modes interactively.
- The terminal bell is now used in some circumstances, such as when an
- unrecognized key sequence is entered. This can be turned off by the
- new nobeep option in the tecla configuration file.
-
- Unrelated to the above, a problem under Linux which prevented ^Q
- from being used to resume terminal output after the user had pressed
- ^S, has been fixed.
-
-Version 1.3.1:
-
- In vi mode a bug was preventing the history-search-backward and
- history-search-forward actions from doing anything when invoked on
- empty lines. On empty lines they now act like up-history and
- down-history respectively, as in emacs mode.
-
- When creating shared libraries under Linux, the -soname directive
- was being used incorrectly. The result is that Linux binaries linked
- with the 1.2.3, 1.2.4 and 1.3.0 versions of the tecla shared
- libraries, will refuse to see other versions of the shared library
- until relinked with version 1.3.1 or higher.
-
- The configure script can now handle the fact that under Solaris-2.6
- and earlier, the only curses library is a static one that hides in
- /usr/ccs/lib. Under Linux it now also caters for old versions of GNU
- ld which don't accept version scripts.
-
- The demos are now linked against the shared version of the library
- if possible. Previously they were always linked with the static
- version.
-
-Version 1.3.0:
-
- The major change in this release is the addition of an optional vi
- command-line editing mode in gl_get_line(), along with lots of new
- action functions to support its bindings. To enable this, first
- create a ~/.teclarc file if you don't already have one, then add the
- following line to it.
-
- edit-mode vi
-
- The default vi bindings, which are designed to mimic those of the vi
- editor as closely as possible, are described in the gl_get_line(3)
- man page.
-
- A new convenience function called ef_list_expansions() has been
- added for listing filename expansions. See the ef_list_expansions(3)
- man page for details. This is used in a new list-glob binding, bound
- to ^Xg in emacs mode, and ^G in vi input mode.
-
- A bug has been fixed in the key-binding table expansion code. This
- bug would have caused problems to anybody who defined more than
- about 18 personalized key-bindings in their ~/.teclarc file.
-
-Version 1.2.4:
-
- Buffered I/O is now used for writing to terminals, and where
- supported, cursor motion is done with move-n-positions terminfo
- capabilities instead of doing lots of move-1-position requests. This
- greatly improves how the library feels over slow links.
-
- You can now optionally compile different architectures in different
- directories, without having to make multiple copies of the
- distribution. This is documented in the INSTALL file.
-
- The ksh ~+ directive is now supported.
-
- Thanks to Markus Gyger for the above improvements.
-
- Documentation has been added to the INSTALL file describing features
- designed to facilitate configuration and installation of the library
- as part of larger packages. These features are intended to remove
- the need to modify the tecla distribution's configuration and build
- procedures when embedding the libtecla distribution in other package
- distributions.
-
- A previous fix to stop the cursor from warping when the last
- character of the input line was in the last column of the terminal,
- was only being used for the first terminal line of the input line.
- It is now used for all subsequent lines as well, as originally
- intended.
-
-Version 1.2.3:
-
- The installation procedure has been better automated with the
- addition of an autoconf configure script. This means that installers
- can now compile and install the library by typing:
-
- ./configure
- make
- make install
-
- On all systems this makes at least the normal static version of the
- tecla library. It also makes the reentrant version if reentrant
- POSIX functions are detected. Under Solaris, Linux and HP-UX the
- configuration script arranges for shared libraries to be compiled in
- addition to the static libraries. It is hoped that installers will
- return information about how to compile shared libraries on other
- systems, for inclusion in future releases, and to this end, a new
- PORTING guide has been provided.
-
- The versioning number scheme has been changed. This release would
- have been 1.2c, but instead will be refered to as 1.2.3. The
- versioning scheme, based on conventions used by Sun Microsystems, is
- described in configure.in.
-
- The library was also tested under HP-UX, and this revealed two
- serious bugs, both of which have now been fixed.
-
- The first bug prevented the library from writing control codes to
- terminals on big-endian machines, with the exception of those
- running under Solaris. This was due to an int variable being used
- where a char was needed.
-
- The second bug had the symptom that on systems that don't use the
- newline character as the control code for moving the cursor down a
- line, a newline wasn't started when the user hit enter.
-
-Version 1.2b:
-
- Two more minor bug fixes:
-
- Many terminals don't wrap the cursor to the next line when a
- character is written to the rightmost terminal column. Instead, they
- delay starting a new line until one more character is written, at
- which point they move the cursor two positions. gl_get_line()
- wasn't aware of this, so cursor repositionings just after writing
- the last character of a column, caused it to erroneously go up a
- line. This has now been remedied, using a method that should work
- regardless of whether a terminal exhibits this behavior or not.
-
- Some systems dynamically record the current terminal dimensions in
- environment variables called LINES and COLUMNS. On such systems,
- during the initial terminal setup, these values should override the
- static values read from the terminal information databases, and now
- do. Previously they were only used if the dimensions returned by
- terminfo/termcap looked bogus.
-
-Version 1.2a:
-
- This minor release fixes the following two bugs:
-
- The initial terminal size and subsequent changes thereto, weren't
- being noticed by gl_get_line(). This was because the test for the
- existence of TIOCWINSZ was erroneously placed before the inclusion
- of termios.h. One of the results was that on input lines that
- spanned more than one terminal line, the cursor occasionally jumped
- unexpectedly to the previous terminal line.
-
- On entering a line that wrapped over multiple terminal lines,
- gl_get_line() simply output a carriage-return line-feed at the point
- at which the user pressed return. Thus if one typed in such a line,
- then moved back onto one of the earlier terminal lines before
- hitting return, the cursor was left on a line containing part of the
- line that had just been entered. This didn't do any harm, but it
- looked a mess.
-
-Version 1.2:
-
- A new facility for looking up and completing filenames in UNIX-style
- paths has now been added (eg. you can search for, or complete
- commands using the UNIX PATH environment variable). See the
- pca_lookup_file(3) man page.
-
- The already existing filename completion callback can now be made
- selective in what types of files it lists. See the
- cpl_complete_word(3) man page.
-
- Due to its potential to break applications when changed, the use of
- the publically defined CplFileArgs structure to configure the
- cpl_file_completions() callback is now deprecated. The definition
- of this structure has been frozen, and its documentation has been
- removed from the man pages. It will remain supported, but if you
- have used it, you are recommended to switch to the new method, which
- involves a new opaque configuration object, allocated via a provided
- constructor function, configured via accessor functions, and
- eventually deleted with a provided destructor function. The
- cpl_file_completions() callback distinguishes which structure type
- it has been sent by virtue of a code placed at the start of the new
- structure by the constructor. It is assumed that no existing
- applications set the boolean 'escaped' member of the CplFileArgs
- structure to 4568. The new method is documented in the
- cpl_complete_word(3) man page.
-
-Version 1.1j
-
- This was the initial public release on freshmeat.org.
-</PRE></BODY>
diff --git a/libtecla-1.4.1/install-sh b/libtecla-1.4.1/install-sh
deleted file mode 100755
index e9de238..0000000
--- a/libtecla-1.4.1/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/libtecla-1.4.1/keytab.c b/libtecla-1.4.1/keytab.c
deleted file mode 100644
index b2bab8b..0000000
--- a/libtecla-1.4.1/keytab.c
+++ /dev/null
@@ -1,827 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "keytab.h"
-#include "getline.h"
-#include "strngmem.h"
-
-static int _kt_extend_table(KeyTab *kt);
-static int _kt_parse_keybinding_string(const char *keyseq,
- char *binary, int *nc);
-static int _kt_compare_strings(const char *s1, int n1, const char *s2, int n2);
-static void _kt_assign_action(KeySym *sym, KtBinder binder, KtKeyFn *keyfn);
-static char _kt_backslash_escape(const char *string, const char **endp);
-static int _kt_is_emacs_meta(const char *string);
-static int _kt_is_emacs_ctrl(const char *string);
-
-/*.......................................................................
- * Create a new key-binding symbol table.
- *
- * Output:
- * return KeyTab * The new object, or NULL on error.
- */
-KeyTab *_new_KeyTab(void)
-{
- KeyTab *kt; /* The object to be returned */
-/*
- * Allocate the container.
- */
- kt = (KeyTab *) malloc(sizeof(KeyTab));
- if(!kt) {
- fprintf(stderr, "new_KeyTab: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_KeyTab().
- */
- kt->size = KT_TABLE_INC;
- kt->nkey = 0;
- kt->table = NULL;
- kt->actions = NULL;
- kt->smem = NULL;
-/*
- * Allocate the table.
- */
- kt->table = (KeySym *) malloc(sizeof(kt->table[0]) * kt->size);
- if(!kt->table) {
- fprintf(stderr, "new_KeyTab: Insufficient memory for table of size %d.\n",
- kt->size);
- return _del_KeyTab(kt);
- };
-/*
- * Allocate a hash table of actions.
- */
- kt->actions = _new_HashTable(NULL, KT_HASH_SIZE, IGNORE_CASE, NULL, 0);
- if(!kt->actions)
- return _del_KeyTab(kt);
-/*
- * Allocate a string allocation object. This allows allocation of
- * small strings without fragmenting the heap.
- */
- kt->smem = _new_StringMem("new_KeyTab", KT_TABLE_INC);
- if(!kt->smem)
- return _del_KeyTab(kt);
- return kt;
-}
-
-/*.......................................................................
- * Delete a KeyTab object.
- *
- * Input:
- * kt KeyTab * The object to be deleted.
- * Output:
- * return KeyTab * The deleted object (always NULL).
- */
-KeyTab *_del_KeyTab(KeyTab *kt)
-{
- if(kt) {
- if(kt->table)
- free(kt->table);
- kt->actions = _del_HashTable(kt->actions);
- kt->smem = _del_StringMem("del_KeyTab", kt->smem, 1);
- free(kt);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Increase the size of the table to accomodate more keys.
- *
- * Input:
- * kt KeyTab * The table to be extended.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int _kt_extend_table(KeyTab *kt)
-{
-/*
- * Attempt to increase the size of the table.
- */
- KeySym *newtab = (KeySym *) realloc(kt->table, sizeof(kt->table[0]) *
- (kt->size + KT_TABLE_INC));
-/*
- * Failed?
- */
- if(!newtab) {
- fprintf(stderr,
- "getline(): Insufficient memory to extend keybinding table.\n");
- return 1;
- };
-/*
- * Install the resized table.
- */
- kt->table = newtab;
- kt->size += KT_TABLE_INC;
- return 0;
-}
-
-/*.......................................................................
- * Add, update or remove a keybinding to the table.
- *
- * Input:
- * kt KeyTab * The table to add the binding to.
- * binder KtBinder The source of the binding.
- * keyseq const char * The key-sequence to bind.
- * action char * The action to associate with the key sequence, or
- * NULL to remove the action associated with the
- * key sequence.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _kt_set_keybinding(KeyTab *kt, KtBinder binder, const char *keyseq,
- const char *action)
-{
- KtKeyFn *keyfn; /* The action function */
-/*
- * Check arguments.
- */
- if(kt==NULL || !keyseq) {
- fprintf(stderr, "kt_set_keybinding: NULL argument(s).\n");
- return 1;
- };
-/*
- * Lookup the function that implements the specified action.
- */
- if(!action) {
- keyfn = 0;
- } else {
- Symbol *sym = _find_HashSymbol(kt->actions, action);
- if(!sym) {
- fprintf(stderr, "getline: Unknown key-binding action: %s\n", action);
- return 1;
- };
- keyfn = (KtKeyFn *) sym->fn;
- };
-/*
- * Record the action in the table.
- */
- return _kt_set_keyfn(kt, binder, keyseq, keyfn);
-}
-
-/*.......................................................................
- * Add, update or remove a keybinding to the table, specifying an action
- * function directly.
- *
- * Input:
- * kt KeyTab * The table to add the binding to.
- * binder KtBinder The source of the binding.
- * keyseq char * The key-sequence to bind.
- * keyfn KtKeyFn * The action function, or NULL to remove any existing
- * action function.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _kt_set_keyfn(KeyTab *kt, KtBinder binder, const char *keyseq,
- KtKeyFn *keyfn)
-{
- const char *kptr; /* A pointer into keyseq[] */
- char *binary; /* The binary version of keyseq[] */
- int nc; /* The number of characters in binary[] */
- int first,last; /* The first and last entries in the table which */
- /* minimally match. */
- int size; /* The size to allocate for the binary string */
-/*
- * Check arguments.
- */
- if(kt==NULL || !keyseq) {
- fprintf(stderr, "kt_set_keybinding: NULL argument(s).\n");
- return 1;
- };
-/*
- * Work out a pessimistic estimate of how much space will be needed
- * for the binary copy of the string, noting that binary meta characters
- * embedded in the input string get split into two characters.
- */
- for(size=0,kptr = keyseq; *kptr; kptr++)
- size += IS_META_CHAR(*kptr) ? 2 : 1;
-/*
- * Allocate a string that has the length of keyseq[].
- */
- binary = _new_StringMemString(kt->smem, size + 1);
- if(!binary) {
- fprintf(stderr,
- "gl_get_line: Insufficient memory to record key sequence.\n");
- return 1;
- };
-/*
- * Convert control and octal character specifications to binary characters.
- */
- if(_kt_parse_keybinding_string(keyseq, binary, &nc)) {
- binary = _del_StringMemString(kt->smem, binary);
- return 1;
- };
-/*
- * Lookup the position in the table at which to insert the binding.
- */
- switch(_kt_lookup_keybinding(kt, binary, nc, &first, &last)) {
-/*
- * If an exact match for the key-sequence is already in the table,
- * simply replace its binding function (or delete the entry if
- * the new binding is 0).
- */
- case KT_EXACT_MATCH:
- if(keyfn) {
- _kt_assign_action(kt->table + first, binder, keyfn);
- } else {
- _del_StringMemString(kt->smem, kt->table[first].keyseq);
- memmove(kt->table + first, kt->table + first + 1,
- (kt->nkey - first - 1) * sizeof(kt->table[0]));
- kt->nkey--;
- };
- binary = _del_StringMemString(kt->smem, binary);
- break;
-/*
- * If an ambiguous match has been found and we are installing a
- * callback, then our new key-sequence would hide all of the ambiguous
- * matches, so we shouldn't allow it.
- */
- case KT_AMBIG_MATCH:
- if(keyfn) {
- fprintf(stderr,
- "getline: Can't bind \"%s\", because it's a prefix of another binding.\n",
- keyseq);
- binary = _del_StringMemString(kt->smem, binary);
- return 1;
- };
- break;
-/*
- * If the entry doesn't exist, create it.
- */
- case KT_NO_MATCH:
-/*
- * Add a new binding?
- */
- if(keyfn) {
- KeySym *sym;
-/*
- * We will need a new entry, extend the table if needed.
- */
- if(kt->nkey + 1 > kt->size) {
- if(_kt_extend_table(kt)) {
- binary = _del_StringMemString(kt->smem, binary);
- return 1;
- };
- };
-/*
- * Make space to insert the new key-sequence before 'last'.
- */
- if(last < kt->nkey) {
- memmove(kt->table + last + 1, kt->table + last,
- (kt->nkey - last) * sizeof(kt->table[0]));
- };
-/*
- * Insert the new binding in the vacated position.
- */
- sym = kt->table + last;
- sym->keyseq = binary;
- sym->nc = nc;
- sym->user_fn = sym->term_fn = sym->norm_fn = sym->keyfn = 0;
- _kt_assign_action(sym, binder, keyfn);
- kt->nkey++;
- };
- break;
- case KT_BAD_MATCH:
- binary = _del_StringMemString(kt->smem, binary);
- return 1;
- break;
- };
- return 0;
-}
-
-/*.......................................................................
- * Perform a min-match lookup of a key-binding.
- *
- * Input:
- * kt KeyTab * The keybinding table to lookup in.
- * binary_keyseq char * The binary key-sequence to lookup.
- * nc int the number of characters in keyseq[].
- * Input/Output:
- * first,last int * If there is an ambiguous or exact match, the indexes
- * of the first and last symbols that minimally match
- * will be assigned to *first and *last respectively.
- * If there is no match, then first and last will
- * bracket the location where the symbol should be
- * inserted.
- *
- * Output:
- * return KtKeyMatch One of the following enumerators:
- * KT_EXACT_MATCH - An exact match was found.
- * KT_AMBIG_MATCH - An ambiguous match was found.
- * KT_NO_MATCH - No match was found.
- * KT_BAD_MATCH - An error occurred while searching.
- */
-KtKeyMatch _kt_lookup_keybinding(KeyTab *kt, const char *binary_keyseq, int nc,
- int *first, int *last)
-{
- int mid; /* The index at which to bisect the table */
- int bot; /* The lowest index of the table not searched yet */
- int top; /* The highest index of the table not searched yet */
- int test; /* The return value of strcmp() */
-/*
- * Check the arguments.
- */
- if(!kt || !binary_keyseq || !first || !last || nc < 0) {
- fprintf(stderr, "kt_lookup_keybinding: NULL argument(s).\n");
- return KT_BAD_MATCH;
- };
-/*
- * Perform a binary search for the key-sequence.
- */
- bot = 0;
- top = kt->nkey - 1;
- while(top >= bot) {
- mid = (top + bot)/2;
- test = _kt_compare_strings(kt->table[mid].keyseq, kt->table[mid].nc,
- binary_keyseq, nc);
- if(test > 0)
- top = mid - 1;
- else if(test < 0)
- bot = mid + 1;
- else {
- *first = *last = mid;
- return KT_EXACT_MATCH;
- };
- };
-/*
- * An exact match wasn't found, but top is the index just below the
- * index where a match would be found, and bot is the index just above
- * where the match ought to be found.
- */
- *first = top;
- *last = bot;
-/*
- * See if any ambiguous matches exist, and if so make *first and *last
- * refer to the first and last matches.
- */
- if(*last < kt->nkey && kt->table[*last].nc > nc &&
- _kt_compare_strings(kt->table[*last].keyseq, nc, binary_keyseq, nc)==0) {
- *first = *last;
- while(*last+1 < kt->nkey && kt->table[*last+1].nc > nc &&
- _kt_compare_strings(kt->table[*last+1].keyseq, nc, binary_keyseq, nc)==0)
- (*last)++;
- return KT_AMBIG_MATCH;
- };
-/*
- * No match.
- */
- return KT_NO_MATCH;
-}
-
-/*.......................................................................
- * Convert a keybinding string into a uniq binary representation.
- *
- * Control characters can be given directly in their binary form,
- * expressed as either ^ or C-, followed by the character, expressed in
- * octal, like \129 or via C-style backslash escapes, with the addition
- * of '\E' to denote the escape key. Similarly, meta characters can be
- * given directly in binary or expressed as M- followed by the character.
- * Meta characters are recorded as two characters in the binary output
- * string, the first being the escape key, and the second being the key
- * that was modified by the meta key. This means that binding to
- * \EA or ^[A or M-A are all equivalent.
- *
- * Input:
- * keyseq char * The key sequence being added.
- * Input/Output:
- * binary char * The binary version of the key sequence will be
- * assigned to binary[], which must have at least
- * as many characters as keyseq[] plus the number
- * of embedded binary meta characters.
- * nc int * The number of characters assigned to binary[]
- * will be recorded in *nc.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int _kt_parse_keybinding_string(const char *keyseq, char *binary,
- int *nc)
-{
- const char *iptr = keyseq; /* Pointer into keyseq[] */
- char *optr = binary; /* Pointer into binary[] */
-/*
- * Parse the input characters until they are exhausted or the
- * output string becomes full.
- */
- while(*iptr) {
-/*
- * Check for special characters.
- */
- switch(*iptr) {
- case '^': /* A control character specification */
-/*
- * Convert the caret expression into the corresponding control
- * character unless no character follows the caret, in which case
- * record a literal caret.
- */
- if(iptr[1]) {
- *optr++ = MAKE_CTRL(iptr[1]);
- iptr += 2;
- } else {
- *optr++ = *iptr++;
- };
- break;
-/*
- * A backslash-escaped character?
- */
- case '\\':
-/*
- * Convert the escape sequence to a binary character.
- */
- *optr++ = _kt_backslash_escape(iptr+1, &iptr);
- break;
-/*
- * Possibly an emacs-style meta character?
- */
- case 'M':
- if(_kt_is_emacs_meta(iptr)) {
- *optr++ = GL_ESC_CHAR;
- iptr += 2;
- } else {
- *optr++ = *iptr++;
- };
- break;
-/*
- * Possibly an emacs-style control character specification?
- */
- case 'C':
- if(_kt_is_emacs_ctrl(iptr)) {
- *optr++ = MAKE_CTRL(iptr[2]);
- iptr += 3;
- } else {
- *optr++ = *iptr++;
- };
- break;
- default:
-
-/*
- * Convert embedded meta characters into an escape character followed
- * by the meta-unmodified character.
- */
- if(IS_META_CHAR(*iptr)) {
- *optr++ = GL_ESC_CHAR;
- *optr++ = META_TO_CHAR(*iptr);
- iptr++;
-/*
- * To allow keysequences that start with printable characters to
- * be distinguished from the cursor-key keywords, prepend a backslash
- * to the former. This same operation is performed in gl_interpret_char()
- * before looking up a keysequence that starts with a printable character.
- */
- } else if(iptr==keyseq && !IS_CTRL_CHAR(*iptr) &&
- strcmp(keyseq, "up") != 0 && strcmp(keyseq, "down") != 0 &&
- strcmp(keyseq, "left") != 0 && strcmp(keyseq, "right") != 0) {
- *optr++ = '\\';
- *optr++ = *iptr++;
- } else {
- *optr++ = *iptr++;
- };
- };
- };
-/*
- * How many characters were placed in the output array?
- */
- *nc = optr - binary;
- return 0;
-}
-
-/*.......................................................................
- * Add, remove or modify an action.
- *
- * Input:
- * kt KeyTab * The key-binding table.
- * action char * The name of the action.
- * fn KtKeyFn * The function that implements the action, or NULL
- * to remove an existing action.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _kt_set_action(KeyTab *kt, const char *action, KtKeyFn *fn)
-{
- Symbol *sym; /* The symbol table entry of the action */
-/*
- * Check the arguments.
- */
- if(!kt || !action) {
- fprintf(stderr, "kt_set_action: NULL argument(s).\n");
- return 1;
- };
-/*
- * If no function was provided, delete an existing action.
- */
- if(!fn) {
- sym = _del_HashSymbol(kt->actions, action);
- return 0;
- };
-/*
- * If the action already exists, replace its action function.
- */
- sym = _find_HashSymbol(kt->actions, action);
- if(sym) {
- sym->fn = (void (*)(void))fn;
- return 0;
- };
-/*
- * Add a new action.
- */
- if(!_new_HashSymbol(kt->actions, action, 0, (void (*)(void))fn, NULL, 0)) {
- fprintf(stderr, "Insufficient memory to record new key-binding action.\n");
- return 1;
- };
- return 0;
-}
-
-/*.......................................................................
- * Compare two strings of specified length which may contain embedded
- * ascii NUL's.
- *
- * Input:
- * s1 char * The first of the strings to be compared.
- * n1 int The length of the string in s1.
- * s2 char * The second of the strings to be compared.
- * n2 int The length of the string in s2.
- * Output:
- * return int < 0 if(s1 < s2)
- * 0 if(s1 == s2)
- * > 0 if(s1 > s2)
- */
-static int _kt_compare_strings(const char *s1, int n1, const char *s2, int n2)
-{
- int i;
-/*
- * Find the first character where the two strings differ.
- */
- for(i=0; i<n1 && i<n2 && s1[i]==s2[i]; i++)
- ;
-/*
- * Did we hit the end of either string before finding a difference?
- */
- if(i==n1 || i==n2) {
- if(n1 == n2)
- return 0;
- else if(n1==i)
- return -1;
- else
- return 1;
- };
-/*
- * Compare the two characters that differed to determine which
- * string is greatest.
- */
- return s1[i] - s2[i];
-}
-
-/*.......................................................................
- * Assign a given action function to a binding table entry.
- *
- * Input:
- * sym KeySym * The binding table entry to be modified.
- * binder KtBinder The source of the binding.
- * keyfn KtKeyFn * The action function.
- */
-static void _kt_assign_action(KeySym *sym, KtBinder binder, KtKeyFn *keyfn)
-{
-/*
- * Record the action according to its source.
- */
- switch(binder) {
- case KTB_USER:
- sym->user_fn = keyfn;
- break;
- case KTB_TERM:
- sym->term_fn = keyfn;
- break;
- case KTB_NORM:
- default:
- sym->norm_fn = keyfn;
- break;
- };
-/*
- * Which of the current set of bindings should be used?
- */
- if(sym->user_fn)
- sym->keyfn = sym->user_fn;
- else if(sym->norm_fn)
- sym->keyfn = sym->norm_fn;
- else
- sym->keyfn = sym->term_fn;
- return;
-}
-
-/*.......................................................................
- * Remove all key bindings that came from a specified source.
- *
- * Input:
- * kt KeyTab * The table of key bindings.
- * binder KtBinder The source of the bindings to be cleared.
- */
-void _kt_clear_bindings(KeyTab *kt, KtBinder binder)
-{
- int oldkey; /* The index of a key in the original binding table */
- int newkey; /* The index of a key in the updated binding table */
-/*
- * If there is no table, then no bindings exist to be deleted.
- */
- if(!kt)
- return;
-/*
- * Clear bindings of the given source.
- */
- for(oldkey=0; oldkey<kt->nkey; oldkey++)
- _kt_assign_action(kt->table + oldkey, binder, 0);
-/*
- * Delete entries that now don't have a binding from any source.
- */
- newkey = 0;
- for(oldkey=0; oldkey<kt->nkey; oldkey++) {
- KeySym *sym = kt->table + oldkey;
- if(!sym->keyfn) {
- _del_StringMemString(kt->smem, sym->keyseq);
- } else {
- if(oldkey != newkey)
- kt->table[newkey] = *sym;
- newkey++;
- };
- };
-/*
- * Record the number of keys that were kept.
- */
- kt->nkey = newkey;
- return;
-}
-
-/*.......................................................................
- * Translate a backslash escape sequence to a binary character.
- *
- * Input:
- * string const char * The characters that follow the backslash.
- * Input/Output:
- * endp const char ** If endp!=NULL, on return *endp will be made to
- * point to the character in string[] which follows
- * the escape sequence.
- * Output:
- * return char The binary character.
- */
-static char _kt_backslash_escape(const char *string, const char **endp)
-{
- char c; /* The output character */
-/*
- * Is the backslash followed by one or more octal digits?
- */
- switch(*string) {
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- c = strtol(string, (char **)&string, 8);
- break;
- case 'a':
- c = '\a';
- string++;
- break;
- case 'b':
- c = '\b';
- string++;
- break;
- case 'e': case 'E': /* Escape */
- c = GL_ESC_CHAR;
- string++;
- break;
- case 'f':
- c = '\f';
- string++;
- break;
- case 'n':
- c = '\n';
- string++;
- break;
- case 'r':
- c = '\r';
- string++;
- break;
- case 't':
- c = '\t';
- string++;
- break;
- case 'v':
- c = '\v';
- string++;
- break;
- case '\0':
- c = '\\';
- break;
- default:
- c = *string++;
- break;
- };
-/*
- * Report the character which follows the escape sequence.
- */
- if(endp)
- *endp = string;
- return c;
-}
-
-/*.......................................................................
- * Return non-zero if the next two characters are M- and a third character
- * follows. Otherwise return 0.
- *
- * Input:
- * string const char * The sub-string to scan.
- * Output:
- * return int 1 - The next two characters are M- and these
- * are followed by at least one character.
- * 0 - The next two characters aren't M- or no
- * character follows a M- pair.
- */
-static int _kt_is_emacs_meta(const char *string)
-{
- return *string++ == 'M' && *string++ == '-' && *string;
-}
-
-/*.......................................................................
- * Return non-zero if the next two characters are C- and a third character
- * follows. Otherwise return 0.
- *
- * Input:
- * string const char * The sub-string to scan.
- * Output:
- * return int 1 - The next two characters are C- and these
- * are followed by at least one character.
- * 0 - The next two characters aren't C- or no
- * character follows a C- pair.
- */
-static int _kt_is_emacs_ctrl(const char *string)
-{
- return *string++ == 'C' && *string++ == '-' && *string;
-}
-
-/*.......................................................................
- * Merge an array of bindings with existing bindings.
- *
- * Input:
- * kt KeyTab * The table of key bindings.
- * binder KtBinder The source of the bindings.
- * bindings const KtKeyBinding * The array of bindings.
- * n int The number of bindings in bindings[].
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int _kt_add_bindings(KeyTab *kt, KtBinder binder, const KtKeyBinding *bindings,
- unsigned n)
-{
- int i;
-/*
- * Check the arguments.
- */
- if(!kt || !bindings) {
- fprintf(stderr, "_kt_add_bindings: NULL argument(s).\n");
- return 1;
- };
-/*
- * Install the array of bindings.
- */
- for(i=0; i<n; i++) {
- if(_kt_set_keybinding(kt, binder, bindings[i].keyseq, bindings[i].action))
- return 1;
- };
- return 0;
-}
-
diff --git a/libtecla-1.4.1/keytab.h b/libtecla-1.4.1/keytab.h
deleted file mode 100644
index 9436e8f..0000000
--- a/libtecla-1.4.1/keytab.h
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef keytab_h
-#define keytab_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include "libtecla.h"
-#include "hash.h"
-#include "strngmem.h"
-
-/*-----------------------------------------------------------------------*
- * This module defines a binary-search symbol table of key-bindings. *
- *-----------------------------------------------------------------------*/
-
-/*
- * All key-binding functions are defined as follows.
- *
- * Input:
- * gl GetLine * The resource object of this library.
- * count int A positive repeat count specified by the user,
- * or 1. Action functions should ignore this if
- * repeating the action multiple times isn't
- * appropriate.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-#define KT_KEY_FN(fn) int (fn)(GetLine *gl, int count)
-
-typedef KT_KEY_FN(KtKeyFn);
-
-/*
- * Define an entry of a key-binding binary symbol table.
- */
-typedef struct {
- char *keyseq; /* The key sequence that triggers the macro */
- int nc; /* The number of characters in keyseq[] */
- KtKeyFn *user_fn; /* A user specified binding (or 0 if none) */
- KtKeyFn *term_fn; /* A terminal-specific binding (or 0 if none) */
- KtKeyFn *norm_fn; /* The default binding (or 0 if none) */
- KtKeyFn *keyfn; /* The function to execute when this key sequence */
- /* is seen. This is the function above which has */
- /* the highest priority. */
-} KeySym;
-
-/*
- * When allocating or reallocating the key-binding table, how
- * many entries should be added?
- */
-#define KT_TABLE_INC 100
-
-/*
- * Define the size of the hash table that is used to associate action
- * names with action functions. This should be a prime number.
- */
-#define KT_HASH_SIZE 113
-
-/*
- * Define a binary-symbol-table object.
- */
-typedef struct {
- int size; /* The allocated dimension of table[] */
- int nkey; /* The current number of members in the table */
- KeySym *table; /* The table of lexically sorted key sequences */
- HashTable *actions; /* The hash table of actions */
- StringMem *smem; /* Memory for allocating strings */
-} KeyTab;
-
-KeyTab *_new_KeyTab(void);
-KeyTab *_del_KeyTab(KeyTab *kt);
-
-/*
- * Enumerate the possible sources of key-bindings.
- */
-typedef enum {
- KTB_USER, /* This is a binding being set by the user */
- KTB_TERM, /* This is a binding taken from the terminal settings */
- KTB_NORM /* This is the default binding set by the library */
-} KtBinder;
-
-int _kt_set_keybinding(KeyTab *kt, KtBinder binder,
- const char *keyseq, const char *action);
-int _kt_set_keyfn(KeyTab *kt, KtBinder binder, const char *keyseq,
- KtKeyFn *keyfn);
-
-int _kt_set_action(KeyTab *kt, const char *action, KtKeyFn *fn);
-
-typedef enum {
- KT_EXACT_MATCH, /* An exact match was found */
- KT_AMBIG_MATCH, /* An ambiguous match was found */
- KT_NO_MATCH, /* No match was found */
- KT_BAD_MATCH /* An error occurred while searching */
-} KtKeyMatch;
-
-KtKeyMatch _kt_lookup_keybinding(KeyTab *kt, const char *binary_keyseq,
- int nc, int *first,int *last);
-
-/*
- * Remove all key bindings that came from a specified source.
- */
-void _kt_clear_bindings(KeyTab *kt, KtBinder binder);
-
-/*
- * When installing an array of keybings each binding is defined by
- * an element of the following type:
- */
-typedef struct {
- const char *keyseq; /* The sequence of keys that trigger this binding */
- const char *action; /* The name of the action function that is triggered */
-} KtKeyBinding;
-
-/*
- * Merge an array of bindings with existing bindings.
- */
-int _kt_add_bindings(KeyTab *kt, KtBinder binder, const KtKeyBinding *bindings,
- unsigned n);
-
-#endif
diff --git a/libtecla-1.4.1/libtecla.h b/libtecla-1.4.1/libtecla.h
deleted file mode 100644
index f124dd0..0000000
--- a/libtecla-1.4.1/libtecla.h
+++ /dev/null
@@ -1,1194 +0,0 @@
-#ifndef libtecla_h
-#define libtecla_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h> /* FILE * */
-#include <stdlib.h> /* size_t */
-#include <time.h> /* time_t */
-
-/*
- * The following are the three components of the libtecla version number.
- * Note that it is better to use the libtecla_version() function than these
- * macros since the macros only tell you which version of the library your
- * code was compiled against, whereas the libtecla_version() function
- * tells you which version of the shared tecla library your program is
- * actually linked to.
- */
-#define TECLA_MAJOR_VER 1
-#define TECLA_MINOR_VER 4
-#define TECLA_MICRO_VER 1
-
-/*.......................................................................
- * Query the version number of the tecla library.
- *
- * Input:
- * major int * The major version number of the library
- * will be assigned to *major. This number is
- * only incremented when a change to the library is
- * made that breaks binary (shared library) and/or
- * compilation backwards compatibility.
- * minor int * The minor version number of the library
- * will be assigned to *minor. This number is
- * incremented whenever new functions are added to
- * the public API.
- * micro int * The micro version number of the library will be
- * assigned to *micro. This number is incremented
- * whenever internal changes are made that don't
- * change the public API, such as bug fixes and
- * performance enhancements.
- */
-void libtecla_version(int *major, int *minor, int *micro);
-
-/*-----------------------------------------------------------------------
- * The getline module provides interactive command-line input, recall
- * and editing by users at terminals. See the gl_getline(3) man page for
- * more details.
- *-----------------------------------------------------------------------*/
-
-/*
- * Provide an opaque handle for the resource object that is defined in
- * getline.h.
- */
-typedef struct GetLine GetLine;
-
-/*
- * The following two functions are used to create and delete the
- * resource objects that are used by the gl_getline() function.
- */
-GetLine *new_GetLine(size_t linelen, size_t histlen);
-GetLine *del_GetLine(GetLine *gl);
-
-/*
- * Read a line into an internal buffer of gl.
- */
-char *gl_get_line(GetLine *gl, const char *prompt, const char *start_line,
- int start_pos);
-
-/*
- * Configure the application specific and/or user-specific behavior of
- * gl_get_line().
- */
-int gl_configure_getline(GetLine *gl, const char *app_string,
- const char *app_file, const char *user_file);
-
-/*-----------------------------------------------------------------------
- * The file-expansion module provides facilities for expanding ~user/ and
- * $envvar expressions, and for expanding glob-style wildcards.
- * See the ef_expand_file(3) man page for more details.
- *-----------------------------------------------------------------------*/
-
-/*
- * ExpandFile objects contain the resources needed to expand pathnames.
- */
-typedef struct ExpandFile ExpandFile;
-
-/*
- * The following functions are used to create and delete the resource
- * objects that are used by the ef_expand_file() function.
- */
-ExpandFile *new_ExpandFile(void);
-ExpandFile *del_ExpandFile(ExpandFile *ef);
-
-/*
- * A container of the following type is returned by ef_expand_file().
- */
-typedef struct {
- int exists; /* True if the files in files[] currently exist. */
- /* This only time that this may not be true is if */
- /* the input filename didn't contain any wildcards */
- /* and thus wasn't matched against existing files. */
- /* In this case the single entry in 'nfile' may not */
- /* refer to an existing file. */
- int nfile; /* The number of files in files[] */
- char **files; /* An array of 'nfile' filenames. */
-} FileExpansion;
-
-/*
- * The ef_expand_file() function expands a specified pathname, converting
- * ~user/ and ~/ patterns at the start of the pathname to the
- * corresponding home directories, replacing $envvar with the value of
- * the corresponding environment variable, and then, if there are any
- * wildcards, matching these against existing filenames.
- *
- * If no errors occur, a container is returned containing the array of
- * files that resulted from the expansion. If there were no wildcards
- * in the input pathname, this will contain just the original pathname
- * after expansion of ~ and $ expressions. If there were any wildcards,
- * then the array will contain the files that matched them. Note that
- * if there were any wildcards but no existing files match them, this
- * is counted as an error and NULL is returned.
- *
- * The supported wildcards and their meanings are:
- * * - Match any sequence of zero or more characters.
- * ? - Match any single character.
- * [chars] - Match any single character that appears in 'chars'.
- * If 'chars' contains an expression of the form a-b,
- * then any character between a and b, including a and b,
- * matches. The '-' character looses its special meaning
- * as a range specifier when it appears at the start
- * of the sequence of characters.
- * [^chars] - The same as [chars] except that it matches any single
- * character that doesn't appear in 'chars'.
- *
- * Wildcard expressions are applied to individual filename components.
- * They don't match across directory separators. A '.' character at
- * the beginning of a filename component must also be matched
- * explicitly by a '.' character in the input pathname, since these
- * are UNIX's hidden files.
- *
- * Input:
- * fe ExpandFile * The pathname expansion resource object.
- * path const char * The path name to be expanded.
- * pathlen int The length of the suffix of path[] that
- * constitutes the filename to be expanded,
- * or -1 to specify that the whole of the
- * path string should be used.
- * Output:
- * return FileExpansion * A pointer to a results container within the
- * given ExpandFile object. This contains an
- * array of the pathnames that resulted from
- * expanding ~ and $ expressions and from
- * matching any wildcards, sorted into lexical
- * order.
- *
- * This container and its contents will be
- * recycled on subsequent calls, so if you need
- * to keep the results of two successive runs,
- * you will either have to allocate a private
- * copy of the array, or use two ExpandFile
- * objects.
- *
- * On error, NULL is returned. A description
- * of the error can be acquired by calling the
- * ef_last_error() function.
- */
-FileExpansion *ef_expand_file(ExpandFile *ef, const char *path, int pathlen);
-
-/*.......................................................................
- * Print out an array of matching files.
- *
- * Input:
- * result FileExpansion * The container of the sorted array of
- * expansions.
- * fp FILE * The output stream to write to.
- * term_width int The width of the terminal.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int ef_list_expansions(FileExpansion *result, FILE *fp, int term_width);
-
-/*
- * The ef_last_error() function returns a description of the last error
- * that occurred in a call ef_expand_file(). Note that this message is
- * contained in an array which is allocated as part of *ef, and its
- * contents thus potentially change on every call to ef_expand_file().
- */
-const char *ef_last_error(ExpandFile *ef);
-
-/*-----------------------------------------------------------------------
- * The WordCompletion module is used for completing incomplete words, such
- * as filenames. Programs can use functions within this module to register
- * their own customized completion functions.
- *-----------------------------------------------------------------------*/
-
-/*
- * Ambiguous completion matches are recorded in objects of the
- * following type.
- */
-typedef struct WordCompletion WordCompletion;
-
-/*
- * Create a new completion object.
- */
-WordCompletion *new_WordCompletion(void);
-
-/*
- * Delete a redundant completion object.
- */
-WordCompletion *del_WordCompletion(WordCompletion *cpl);
-
-/*.......................................................................
- * Callback functions declared and prototyped using the following macro
- * are called upon to return an array of possible completion suffixes
- * for the token that precedes a specified location in the given
- * input line. It is up to this function to figure out where the token
- * starts, and to call cpl_add_completion() to register each possible
- * completion before returning.
- *
- * Input:
- * cpl WordCompletion * An opaque pointer to the object that will
- * contain the matches. This should be filled
- * via zero or more calls to cpl_add_completion().
- * data void * The anonymous 'data' argument that was
- * passed to cpl_complete_word() or
- * gl_customize_completion()).
- * line const char * The current input line.
- * word_end int The index of the character in line[] which
- * follows the end of the token that is being
- * completed.
- * Output
- * return int 0 - OK.
- * 1 - Error.
- */
-#define CPL_MATCH_FN(fn) int (fn)(WordCompletion *cpl, void *data, \
- const char *line, int word_end)
-typedef CPL_MATCH_FN(CplMatchFn);
-
-/*.......................................................................
- * Optional callback functions declared and prototyped using the
- * following macro are called upon to return non-zero if a given
- * file, specified by its pathname, is to be included in a list of
- * completions.
- *
- * Input:
- * data void * The application specified pointer which
- * was specified when this callback function
- * was registered. This can be used to have
- * anything you like passed to your callback.
- * pathname const char * The pathname of the file to be checked to
- * see if it should be included in the list
- * of completions.
- * Output
- * return int 0 - Ignore this file.
- * 1 - Do include this file in the list
- * of completions.
- */
-#define CPL_CHECK_FN(fn) int (fn)(void *data, const char *pathname)
-typedef CPL_CHECK_FN(CplCheckFn);
-
-/*
- * You can use the following CplCheckFn callback function to only
- * have executables included in a list of completions.
- */
-CPL_CHECK_FN(cpl_check_exe);
-
-/*
- * cpl_file_completions() is the builtin filename completion callback
- * function. This can also be called by your own custom CPL_MATCH_FN()
- * callback functions. To do this pass on all of the arguments of your
- * custom callback function to cpl_file_completions(), with the exception
- * of the (void *data) argument. The data argument should either be passed
- * NULL to request the default behaviour of the file-completion function,
- * or be passed a pointer to a CplFileConf structure (see below). In the
- * latter case the contents of the structure modify the behavior of the
- * file-completer.
- */
-CPL_MATCH_FN(cpl_file_completions);
-
-/*
- * Objects of the following type can be used to change the default
- * behavior of the cpl_file_completions() callback function.
- */
-typedef struct CplFileConf CplFileConf;
-
-/*
- * If you want to change the behavior of the cpl_file_completions()
- * callback function, call the following function to allocate a
- * configuration object, then call one or more of the subsequent
- * functions to change any of the default configuration parameters
- * that you don't want. This function returns NULL when there is
- * insufficient memory.
- */
-CplFileConf *new_CplFileConf(void);
-
-/*
- * If backslashes in the prefix being passed to cpl_file_completions()
- * should be treated as literal characters, call the following function
- * with literal=1. Otherwise the default is to treat them as escape
- * characters which remove the special meanings of spaces etc..
- */
-void cfc_literal_escapes(CplFileConf *cfc, int literal);
-
-/*
- * Before calling cpl_file_completions(), call this function if you
- * know the index at which the filename prefix starts in the input line.
- * Otherwise by default, or if you specify start_index to be -1, the
- * filename is taken to start after the first unescaped space preceding
- * the cursor, or the start of the line, which ever comes first.
- */
-void cfc_file_start(CplFileConf *cfc, int start_index);
-
-/*
- * If you only want certain types of files to be included in the
- * list of completions, use the following function to specify a
- * callback function which will be called to ask whether a given file
- * should be included. The chk_data argument is will be passed to the
- * callback function whenever it is called and can be anything you want.
- */
-void cfc_set_check_fn(CplFileConf *cfc, CplCheckFn *chk_fn, void *chk_data);
-
-/*
- * The following function deletes a CplFileConf objects previously
- * returned by new_CplFileConf(). It always returns NULL.
- */
-CplFileConf *del_CplFileConf(CplFileConf *cfc);
-
-/*
- * The following configuration structure is deprecated. Do not change
- * its contents, since this will break any programs that still use it,
- * and don't use it in new programs. Instead use opaque CplFileConf
- * objects as described above. cpl_file_completions() figures out
- * what type of structure you pass it, by virtue of a magic int code
- * placed at the start of CplFileConf object by new_CplFileConf().
- */
-typedef struct {
- int escaped; /* Opposite to the argument of cfc_literal_escapes() */
- int file_start; /* Equivalent to the argument of cfc_file_start() */
-} CplFileArgs;
-/*
- * This initializes the deprecated CplFileArgs structures.
- */
-void cpl_init_FileArgs(CplFileArgs *cfa);
-
-/*.......................................................................
- * When an error occurs while performing a completion, custom completion
- * callback functions should register a terse description of the error
- * by calling cpl_record_error(). This message will then be returned on
- * the next call to cpl_last_error() and used by getline to display an
- * error message to the user.
- *
- * Input:
- * cpl WordCompletion * The string-completion resource object that was
- * originally passed to the callback.
- * errmsg const char * The description of the error.
- */
-void cpl_record_error(WordCompletion *cpl, const char *errmsg);
-
-/*.......................................................................
- * This function can be used to replace the builtin filename-completion
- * function with one of the user's choice. The user's completion function
- * has the option of calling the builtin filename-completion function
- * if it believes that the token that it has been presented with is a
- * filename (see cpl_file_completions() above).
- *
- * Input:
- * gl GetLine * The resource object of the command-line input
- * module.
- * data void * This is passed to match_fn() whenever it is
- * called. It could, for example, point to a
- * symbol table that match_fn() would look up
- * matches in.
- * match_fn CplMatchFn * The function that will identify the prefix
- * to be completed from the input line, and
- * report matching symbols.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_customize_completion(GetLine *gl, void *data, CplMatchFn *match_fn);
-
-/*.......................................................................
- * Change the terminal (or stream) that getline interacts with.
- *
- * Input:
- * gl GetLine * The resource object of the command-line input
- * module.
- * input_fp FILE * The stdio stream to read from.
- * output_fp FILE * The stdio stream to write to.
- * term const char * The terminal type. This can be NULL if
- * either or both of input_fp and output_fp don't
- * refer to a terminal. Otherwise it should refer
- * to an entry in the terminal information database.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_change_terminal(GetLine *gl, FILE *input_fp, FILE *output_fp,
- const char *term);
-
-/*.......................................................................
- * The following functions can be used to save and restore the contents
- * of the history buffer.
- *
- * Input:
- * gl GetLine * The resource object of the command-line input
- * module.
- * filename const char * The name of the new file to write to.
- * comment const char * Extra information such as timestamps will
- * be recorded on a line started with this
- * string, the idea being that the file can
- * double as a command file. Specify "" if
- * you don't care. Be sure to specify the
- * same string to both functions.
- * max_lines int The maximum number of lines to save, or -1
- * to save all of the lines in the history
- * list.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_save_history(GetLine *gl, const char *filename, const char *comment,
- int max_lines);
-int gl_load_history(GetLine *gl, const char *filename, const char *comment);
-
-/*
- * Enumerate file-descriptor events that can be waited for.
- */
-typedef enum {
- GLFD_READ, /* Watch for data waiting to be read from a file descriptor */
- GLFD_WRITE, /* Watch for ability to write to a file descriptor */
- GLFD_URGENT /* Watch for urgent out-of-band data on the file descriptor */
-} GlFdEvent;
-
-/*
- * The following enumeration is used for the return status of file
- * descriptor event callbacks.
- */
-typedef enum {
- GLFD_ABORT, /* Cause gl_get_line() to abort with an error */
- GLFD_REFRESH, /* Redraw the input line and continue waiting for input */
- GLFD_CONTINUE /* Continue to wait for input, without redrawing the line */
-} GlFdStatus;
-
-/*.......................................................................
- * While gl_get_line() is waiting for terminal input, it can also be
- * asked to listen for activity on arbitrary file descriptors.
- * Callback functions of the following type can be registered to be
- * called when activity is seen. If your callback needs to write to
- * the terminal or use signals, please see the gl_get_line(3) man
- * page.
- *
- * Input:
- * gl GetLine * The gl_get_line() resource object. You can use
- * this safely to call gl_watch_fd() or
- * gl_watch_time(). The effect of calling other
- * functions that take a gl argument is undefined,
- * and must be avoided.
- * data void * A pointer to arbitrary callback data, as originally
- * registered with gl_watch_fd().
- * fd int The file descriptor that has activity.
- * event GlFdEvent The activity seen on the file descriptor. The
- * inclusion of this argument allows the same
- * callback to be registered for multiple events.
- * Output:
- * return GlFdStatus GLFD_ABORT - Cause gl_get_line() to abort with
- * an error (set errno if you need it).
- * GLFD_REFRESH - Redraw the input line and continue
- * waiting for input. Use this if you
- * wrote something to the terminal.
- * GLFD_CONTINUE - Continue to wait for input, without
- * redrawing the line.
- */
-#define GL_FD_EVENT_FN(fn) GlFdStatus (fn)(GetLine *gl, void *data, int fd, \
- GlFdEvent event)
-typedef GL_FD_EVENT_FN(GlFdEventFn);
-
-/*.......................................................................
- * Where possible, register a function and associated data to be called
- * whenever a specified event is seen on a file descriptor.
- *
- * Input:
- * gl GetLine * The resource object of the command-line input
- * module.
- * fd int The file descriptor to watch.
- * event GlFdEvent The type of activity to watch for.
- * callback GlFdEventFn * The function to call when the specified
- * event occurs. Setting this to 0 removes
- * any existing callback.
- * data void * A pointer to arbitrary data to pass to the
- * callback function.
- * Output:
- * return int 0 - OK.
- * 1 - Either gl==NULL, or this facility isn't
- * available on the the host system
- * (ie. select() isn't available). No
- * error message is generated in the latter
- * case.
- */
-int gl_watch_fd(GetLine *gl, int fd, GlFdEvent event,
- GlFdEventFn *callback, void *data);
-
-/*.......................................................................
- * Switch history streams. History streams represent separate history
- * lists recorded within a single history buffer. Different streams
- * are distinguished by integer identifiers chosen by the calling
- * appplicaton. Initially new_GetLine() sets the stream identifier to
- * 0. Whenever a new line is appended to the history list, the current
- * stream identifier is recorded with it, and history lookups only
- * consider lines marked with the current stream identifier.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * id unsigned The new history stream identifier.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_group_history(GetLine *gl, unsigned id);
-
-/*.......................................................................
- * Display the contents of the history list.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * fp FILE * The stdio output stream to write to.
- * fmt const char * A format string. This containing characters to be
- * written verbatim, plus any of the following
- * format directives:
- * %D - The date, formatted like 2001-11-20
- * %T - The time of day, formatted like 23:59:59
- * %N - The sequential entry number of the
- * line in the history buffer.
- * %G - The number of the history group that
- * the line belongs to.
- * %% - A literal % character.
- * %H - The history line itself.
- * Note that a '\n' newline character is not
- * appended by default.
- * all_groups int If true, display history lines from all
- * history groups. Otherwise only display
- * those of the current history group.
- * max_lines int If max_lines is < 0, all available lines
- * are displayed. Otherwise only the most
- * recent max_lines lines will be displayed.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_show_history(GetLine *gl, FILE *fp, const char *fmt, int all_groups,
- int max_lines);
-
-/*.......................................................................
- * Resize or delete the history buffer.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * bufsize size_t The number of bytes in the history buffer, or 0
- * to delete the buffer completely.
- * Output:
- * return int 0 - OK.
- * 1 - Insufficient memory (the previous buffer
- * will have been retained). No error message
- * will be displayed.
- */
-int gl_resize_history(GetLine *gl, size_t bufsize);
-
-/*.......................................................................
- * Set an upper limit to the number of lines that can be recorded in the
- * history list, or remove a previously specified limit.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * max_lines int The maximum number of lines to allow, or -1 to
- * cancel a previous limit and allow as many lines
- * as will fit in the current history buffer size.
- */
-void gl_limit_history(GetLine *gl, int max_lines);
-
-/*.......................................................................
- * Discard either all historical lines, or just those associated with the
- * current history group.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * all_groups int If true, clear all of the history. If false,
- * clear only the stored lines associated with the
- * currently selected history group.
- */
-void gl_clear_history(GetLine *gl, int all_groups);
-
-/*.......................................................................
- * Temporarily enable or disable the gl_get_line() history mechanism.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * enable int If true, turn on the history mechanism. If
- * false, disable it.
- */
-void gl_toggle_history(GetLine *gl, int enable);
-
-/*
- * Objects of the following type are returned by gl_terminal_size().
- */
-typedef struct {
- int nline; /* The terminal has nline lines */
- int ncolumn; /* The terminal has ncolumn columns */
-} GlTerminalSize;
-
-/*.......................................................................
- * Update if necessary, and return the current size of the terminal.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * def_ncolumn int If the number of columns in the terminal
- * can't be determined, substitute this number.
- * def_nline int If the number of lines in the terminal can't
- * be determined, substitute this number.
- * Output:
- * return GlTerminalSize The current terminal size.
- */
-GlTerminalSize gl_terminal_size(GetLine *gl, int def_ncolumn, int def_nline);
-
-/*
- * The gl_lookup_history() function returns information in an
- * argument of the following type.
- */
-typedef struct {
- const char *line; /* The requested history line */
- unsigned group; /* The history group to which the */
- /* line belongs. */
- time_t timestamp; /* The date and time at which the */
- /* line was originally entered. */
-} GlHistoryLine;
-
-/*.......................................................................
- * Lookup a history line by its sequential number of entry in the
- * history buffer.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * id unsigned long The identification number of the line to
- * be returned, where 0 denotes the first line
- * that was entered in the history list, and
- * each subsequently added line has a number
- * one greater than the previous one. For
- * the range of lines currently in the list,
- * see the gl_range_of_history() function.
- * Input/Output:
- * line GlHistoryLine * A pointer to the variable in which to
- * return the details of the line.
- * Output:
- * return int 0 - The line is no longer in the history
- * list, and *line has not been changed.
- * 1 - The requested line can be found in
- * *line. Note that the string in
- * line->line is part of the history
- * buffer and will change, so a private
- * copy should be made if you wish to
- * use it after subsequent calls to any
- * functions that take gl as an argument.
- */
-int gl_lookup_history(GetLine *gl, unsigned long id, GlHistoryLine *line);
-
-/*
- * The gl_state_of_history() function returns information in an argument
- * of the following type.
- */
-typedef struct {
- int enabled; /* True if history is enabled */
- unsigned group; /* The current history group */
- int max_lines; /* The current upper limit on the number of lines */
- /* in the history list, or -1 if unlimited. */
-} GlHistoryState;
-
-/*.......................................................................
- * Query the state of the history list. Note that any of the input/output
- * pointers can be specified as NULL.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * Input/Output:
- * state GlHistoryState * A pointer to the variable in which to record
- * the return values.
- */
-void gl_state_of_history(GetLine *gl, GlHistoryState *state);
-
-/*
- * The gl_range_of_history() function returns information in an argument
- * of the following type.
- */
-typedef struct {
- unsigned long oldest; /* The sequential entry number of the oldest */
- /* line in the history list. */
- unsigned long newest; /* The sequential entry number of the newest */
- /* line in the history list. */
- int nlines; /* The number of lines in the history list */
-} GlHistoryRange;
-
-/*.......................................................................
- * Query the number and range of lines in the history buffer.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * range GlHistoryRange * A pointer to the variable in which to record
- * the return values. If range->nline=0, the
- * range of lines will be given as 0-0.
- */
-void gl_range_of_history(GetLine *gl, GlHistoryRange *range);
-
-/*
- * The gl_size_of_history() function returns information in an argument
- * of the following type.
- */
-typedef struct {
- size_t size; /* The size of the history buffer (bytes) */
- size_t used; /* The number of bytes of the history buffer */
- /* that are currently occupied. */
-} GlHistorySize;
-
-/*.......................................................................
- * Return the size of the history buffer and the amount of the
- * buffer that is currently in use.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * Input/Output:
- * GlHistorySize size * A pointer to the variable in which to return
- * the results.
- */
-void gl_size_of_history(GetLine *gl, GlHistorySize *size);
-
-/*.......................................................................
- * Specify whether text that users type should be displayed or hidden.
- * In the latter case, only the prompt is displayed, and the final
- * input line is not archived in the history list.
- *
- * Input:
- * gl GetLine * The input-line history maintenance object.
- * enable int 0 - Disable echoing.
- * 1 - Enable echoing.
- * -1 - Just query the mode without changing it.
- * Output:
- * return int The echoing disposition that was in effect
- * before this function was called:
- * 0 - Echoing was disabled.
- * 1 - Echoing was enabled.
- */
-int gl_echo_mode(GetLine *gl, int enable);
-
-/*.......................................................................
- * This function can be called from gl_get_line() callbacks to have
- * the prompt changed when they return. It has no effect if gl_get_line()
- * is not currently being invoked.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * prompt const char * The new prompt.
- */
-void gl_replace_prompt(GetLine *gl, const char *prompt);
-
-/*
- * Enumerate the available prompt formatting styles.
- */
-typedef enum {
- GL_LITERAL_PROMPT, /* Display the prompt string literally */
- GL_FORMAT_PROMPT /* The prompt string can contain any of the */
- /* following formatting directives: */
- /* %B - Display subsequent characters */
- /* with a bold font. */
- /* %b - Stop displaying characters */
- /* with the bold font. */
- /* %U - Underline subsequent characters. */
- /* %u - Stop underlining characters. */
- /* %S - Highlight subsequent characters */
- /* (also known as standout mode). */
- /* %s - Stop highlighting characters */
- /* %% - Display a single % character. */
-} GlPromptStyle;
-
-/*.......................................................................
- * Specify whether to heed text attribute directives within prompt
- * strings.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * style GlPromptStyle The style of prompt (see the definition of
- * GlPromptStyle in libtecla.h for details).
- */
-void gl_prompt_style(GetLine *gl, GlPromptStyle style);
-
-/*.......................................................................
- * Remove a signal from the list of signals that gl_get_line() traps.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * signo int The number of the signal to be ignored.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int gl_ignore_signal(GetLine *gl, int signo);
-
-/*
- * A bitwise union of the following enumerators is passed to
- * gl_trap_signal() to specify the environment in which the
- * application's signal handler is to be called.
- */
-typedef enum {
- GLS_RESTORE_SIG=1, /* Restore the caller's signal environment */
- /* while handling the signal. */
- GLS_RESTORE_TTY=2, /* Restore the caller's terminal settings */
- /* while handling the signal. */
- GLS_RESTORE_LINE=4, /* Move the cursor to the start of the next line */
- GLS_REDRAW_LINE=8, /* Redraw the input line when the signal handler */
- /* returns. */
- GLS_UNBLOCK_SIG=16, /* Normally a signal who's delivery is found to */
- /* be blocked by the calling application is not */
- /* trapped by gl_get_line(). Including this flag */
- /* causes it to be temporarily unblocked and */
- /* trapped while gl_get_line() is executing. */
- GLS_DONT_FORWARD=32,/* Don't forward the signal to the signal handler */
- /* of the calling program. */
- GLS_RESTORE_ENV = GLS_RESTORE_SIG | GLS_RESTORE_TTY | GLS_REDRAW_LINE,
- GLS_SUSPEND_INPUT = GLS_RESTORE_ENV | GLS_RESTORE_LINE
-} GlSignalFlags;
-
-/*
- * The following enumerators are passed to gl_trap_signal() to tell
- * it what to do after the application's signal handler has been called.
- */
-typedef enum {
- GLS_RETURN, /* Return the line as though the user had pressed the */
- /* return key. */
- GLS_ABORT, /* Cause gl_get_line() to return NULL */
- GLS_CONTINUE /* After handling the signal, resume command line editing */
-} GlAfterSignal;
-
-/*.......................................................................
- * Tell gl_get_line() how to respond to a given signal. This can be used
- * both to override the default responses to signals that gl_get_line()
- * normally catches and to add new signals to the list that are to be
- * caught.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * signo int The number of the signal to be caught.
- * flags unsigned A bitwise union of GlSignalFlags enumerators.
- * after GlAfterSignal What to do after the application's signal
- * handler has been called.
- * errno_value int The value to set errno to.
- * Output:
- * return int 0 - OK.
- * 1 - Insufficient memory to record the
- * new signal disposition.
- */
-int gl_trap_signal(GetLine *gl, int signo, unsigned flags,
- GlAfterSignal after, int errno_value);
-
-/*.......................................................................
- * Return the last signal that was caught by the most recent call to
- * gl_get_line(), or -1 if no signals were caught. This is useful if
- * gl_get_line() returns errno=EINTR and you need to find out what signal
- * caused it to abort.
- *
- * Input:
- * gl GetLine * The resource object of gl_get_line().
- * Output:
- * return int The last signal caught by the most recent
- * call to gl_get_line(), or -1 if no signals
- * were caught.
- */
-int gl_last_signal(const GetLine *gl);
-
-/*.......................................................................
- * This function is designed to be called by CPL_MATCH_FN() callback
- * functions. It adds one possible completion of the token that is being
- * completed to an array of completions. If the completion needs any
- * special quoting to be valid when displayed in the input line, this
- * quoting must be included in the string.
- *
- * Input:
- * cpl WordCompletion * The argument of the same name that was passed
- * to the calling CPL_MATCH_FN() callback function.
- * line const char * The input line, as received by the callback
- * function.
- * word_start int The index within line[] of the start of the
- * word that is being completed. If an empty
- * string is being completed, set this to be
- * the same as word_end.
- * word_end int The index within line[] of the character which
- * follows the incomplete word, as received by the
- * callback function.
- * suffix const char * The appropriately quoted string that could
- * be appended to the incomplete token to complete
- * it. A copy of this string will be allocated
- * internally.
- * type_suffix const char * When listing multiple completions, gl_get_line()
- * appends this string to the completion to indicate
- * its type to the user. If not pertinent pass "".
- * Otherwise pass a literal or static string.
- * cont_suffix const char * If this turns out to be the only completion,
- * gl_get_line() will append this string as
- * a continuation. For example, the builtin
- * file-completion callback registers a directory
- * separator here for directory matches, and a
- * space otherwise. If the match were a function
- * name you might want to append an open
- * parenthesis, etc.. If not relevant pass "".
- * Otherwise pass a literal or static string.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int cpl_add_completion(WordCompletion *cpl, const char *line,
- int word_start, int word_end, const char *suffix,
- const char *type_suffix, const char *cont_suffix);
-
-/*
- * Each possible completion string is recorded in an array element of
- * the following type.
- */
-typedef struct {
- char *completion; /* The matching completion string */
- char *suffix; /* The pointer into completion[] at which the */
- /* string was extended. */
- const char *type_suffix; /* A suffix to be added when listing completions */
- /* to indicate the type of the completion. */
-} CplMatch;
-
-/*
- * Completions are returned in a container of the following form.
- */
-typedef struct {
- char *suffix; /* The common initial part of all of the */
- /* completion suffixes. */
- const char *cont_suffix; /* Optional continuation string to be appended to */
- /* the sole completion when nmatch==1. */
- CplMatch *matches; /* The array of possible completion strings, */
- /* sorted into lexical order. */
- int nmatch; /* The number of elements in matches[] */
-} CplMatches;
-
-/*.......................................................................
- * Given an input line and the point at which completion is to be
- * attempted, return an array of possible completions.
- *
- * Input:
- * cpl WordCompletion * The word-completion resource object.
- * line const char * The current input line.
- * word_end int The index of the character in line[] which
- * follows the end of the token that is being
- * completed.
- * data void * Anonymous 'data' to be passed to match_fn().
- * match_fn CplMatchFn * The function that will identify the prefix
- * to be completed from the input line, and
- * record completion suffixes.
- * Output:
- * return CplMatches * The container of the array of possible
- * completions. The returned pointer refers
- * to a container owned by the parent Completion
- * object, and its contents thus potentially
- * change on every call to cpl_matches().
- */
-CplMatches *cpl_complete_word(WordCompletion *cpl, const char *line,
- int word_end, void *data,
- CplMatchFn *match_fn);
-
-/*.......................................................................
- * Print out an array of matching completions.
- *
- * Input:
- * result CplMatches * The container of the sorted array of
- * completions.
- * fp FILE * The output stream to write to.
- * term_width int The width of the terminal.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-int cpl_list_completions(CplMatches *result, FILE *fp, int term_width);
-
-/*.......................................................................
- * Return a description of the error that occurred on the last call to
- * cpl_complete_word() or cpl_add_completion().
- *
- * Input:
- * cpl WordCompletion * The string-completion resource object.
- * Output:
- * return const char * The description of the last error.
- */
-const char *cpl_last_error(WordCompletion *cpl);
-
-/*
- * PathCache objects encapsulate the resources needed to record
- * files of interest from comma-separated lists of directories.
- */
-typedef struct PathCache PathCache;
-
-/*.......................................................................
- * Create an object who's function is to maintain a cache of filenames
- * found within a list of directories, and provide quick lookup and
- * completion of selected files in this cache.
- *
- * Output:
- * return PathCache * The new, initially empty cache, or NULL
- * on error.
- */
-PathCache *new_PathCache(void);
-
-/*.......................................................................
- * Delete a given cache of files, returning the resources that it
- * was using to the system.
- *
- * Input:
- * pc PathCache * The cache to be deleted (can be NULL).
- * Output:
- * return PathCache * The deleted object (ie. allways NULL).
- */
-PathCache *del_PathCache(PathCache *pc);
-
-/*.......................................................................
- * Return a description of the last path-caching error that occurred.
- *
- * Input:
- * pc PathCache * The filename cache that suffered the error.
- * Output:
- * return char * The description of the last error.
- */
-const char *pca_last_error(PathCache *pc);
-
-/*.......................................................................
- * Build the list of files of interest contained in a given
- * colon-separated list of directories.
- *
- * Input:
- * pc PathCache * The cache in which to store the names of
- * the files that are found in the list of
- * directories.
- * path const char * A colon-separated list of directory
- * paths. Under UNIX, when searching for
- * executables, this should be the return
- * value of getenv("PATH").
- * Output:
- * return int 0 - OK.
- * 1 - An error occurred.
- */
-int pca_scan_path(PathCache *pc, const char *path);
-
-/*.......................................................................
- * If you want subsequent calls to pca_lookup_file() and
- * pca_path_completions() to only return the filenames of certain
- * types of files, for example executables, or filenames ending in
- * ".ps", call this function to register a file-selection callback
- * function. This callback function takes the full pathname of a file,
- * plus application-specific data, and returns 1 if the file is of
- * interest, and zero otherwise.
- *
- * Input:
- * pc PathCache * The filename cache.
- * check_fn CplCheckFn * The function to call to see if the name of
- * a given file should be included in the
- * cache. This determines what type of files
- * will reside in the cache. To revert to
- * selecting all files, regardless of type,
- * pass 0 here.
- * data void * You can pass a pointer to anything you
- * like here, including NULL. It will be
- * passed to your check_fn() callback
- * function, for its private use.
- */
-void pca_set_check_fn(PathCache *pc, CplCheckFn *check_fn, void *data);
-
-/*.......................................................................
- * Given the simple name of a file, search the cached list of files
- * in the order in which they where found in the list of directories
- * previously presented to pca_scan_path(), and return the pathname
- * of the first file which has this name.
- *
- * Input:
- * pc PathCache * The cached list of files.
- * name const char * The name of the file to lookup.
- * name_len int The length of the filename substring at the
- * beginning of name[], or -1 to assume that the
- * filename occupies the whole of the string.
- * literal int If this argument is zero, lone backslashes
- * in name[] are ignored during comparison
- * with filenames in the cache, under the
- * assumption that they were in the input line
- * soley to escape the special significance of
- * characters like spaces. To have them treated
- * as normal characters, give this argument a
- * non-zero value, such as 1.
- * Output:
- * return char * The pathname of the first matching file,
- * or NULL if not found. Note that the returned
- * pointer points to memory owned by *pc, and
- * will become invalid on the next call.
- */
-char *pca_lookup_file(PathCache *pc, const char *name, int name_len,
- int literal);
-
-/*
- * Objects of the following type can be used to change the default
- * behavior of the pca_path_completions() callback function.
- */
-typedef struct PcaPathConf PcaPathConf;
-
-/*
- * pca_path_completions() is a completion callback function for use directly
- * with cpl_complete_word() or gl_customize_completions(), or indirectly
- * from your own completion callback function. It requires that a PcaPathConf
- * object be passed via its 'void *data' argument (see below).
- */
-CPL_MATCH_FN(pca_path_completions);
-
-/*.......................................................................
- * Allocate and initialize a pca_path_completions() configuration object.
- *
- * Input:
- * pc PathCache * The filename cache in which to look for
- * file name completions.
- * Output:
- * return PcaPathConf * The new configuration structure, or NULL
- * on error.
- */
-PcaPathConf *new_PcaPathConf(PathCache *pc);
-
-/*.......................................................................
- * Deallocate memory, previously allocated by new_PcaPathConf().
- *
- * Input:
- * ppc PcaPathConf * Any pointer previously returned by
- * new_PcaPathConf() [NULL is allowed].
- * Output:
- * return PcaPathConf * The deleted structure (always NULL).
- */
-PcaPathConf *del_PcaPathConf(PcaPathConf *ppc);
-
-/*
- * If backslashes in the prefix being passed to pca_path_completions()
- * should be treated as literal characters, call the following function
- * with literal=1. Otherwise the default is to treat them as escape
- * characters which remove the special meanings of spaces etc..
- */
-void ppc_literal_escapes(PcaPathConf *ppc, int literal);
-
-/*
- * Before calling pca_path_completions, call this function if you know
- * the index at which the filename prefix starts in the input line.
- * Otherwise by default, or if you specify start_index to be -1, the
- * filename is taken to start after the first unescaped space preceding
- * the cursor, or the start of the line, whichever comes first.
- */
-void ppc_file_start(PcaPathConf *ppc, int start_index);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/libtecla-1.4.1/libtecla.map b/libtecla-1.4.1/libtecla.map
deleted file mode 100644
index 7e774b7..0000000
--- a/libtecla-1.4.1/libtecla.map
+++ /dev/null
@@ -1,124 +0,0 @@
-# This mapfile (or version script) lists the public symbols that are
-# publically exported by each version of the tecla library. This file
-# has the format required by the Sun and Linux linkers, and also acts
-# as a template from which map files for other systems can be derived
-# with awk or sed.
-#
-# Under Solaris and Linux, this map file is used by ld during shared
-# library creation. It has two purposes:
-#
-# 1. It specifies which symbols in the library are to be made visible
-# to applications. This has the dual benefits of reducing namespace
-# polution, and of preventing applications from using private
-# internal library functions that might change or disappear in
-# future releases.
-#
-# 2. The information listed in this file is recorded in the shared
-# library, such that when an application is linked against it, the
-# linker can record a dependency in the application which says
-# which is the earliest library version which included all of the
-# symbols that the application needs. This means that if the
-# application is copied to another system that has an earlier
-# version of the library, the linker can quickly determine whether
-# the earlier version contains all of the symbols that it needs.
-#
-# Under Linux, mapfiles can also be used to allow multiple
-# incompatible versions of a given function to exist in a library,
-# thus supporting applications that were compiled against different
-# incompatible versions of the library. Since this feature (and the
-# inclusion of .symver directives) isn't supported by Solaris, it
-# can't be included in this file. Non backwards compatibility in the
-# ABI must instead be handled in the more traditional way, by
-# incrementing the major version number.
-#
-# When a new minor release is made, a new tecla_1.x specification
-# should be added which inherits the symbols of the previous release
-# and lists newly added functions. For example, below you will find
-# the following clause:
-#
-# tecla_1.3 {
-# global:
-# ef_list_expansions;
-# } tecla_1.2;
-#
-# This says that ef_list_expansions is the name of a public function
-# that was added in the 1.3 release, and that the symbols defined in
-# the previous tecla_1.2 clause have been inherited by tecla_1.3.
-#
-# For more details see the following URL:
-#
-# http://www.usenix.org/publications/library/proceedings/als2000/browndavid.html
-#-------------------------------------------------------------------------------
-
-tecla_1.2 {
- global:
- cfc_file_start;
- cfc_literal_escapes;
- cfc_set_check_fn;
- cpl_add_completion;
- cpl_check_exe;
- cpl_complete_word;
- cpl_file_completions;
- cpl_init_FileArgs;
- cpl_last_error;
- cpl_list_completions;
- cpl_record_error;
- del_CplFileConf;
- del_ExpandFile;
- del_GetLine;
- del_PathCache;
- del_PcaPathConf;
- del_WordCompletion;
- ef_expand_file;
- ef_last_error;
- gl_change_terminal;
- gl_customize_completion;
- gl_get_line;
- new_CplFileConf;
- new_ExpandFile;
- new_GetLine;
- new_PathCache;
- new_PcaPathConf;
- new_WordCompletion;
- pca_last_error;
- pca_lookup_file;
- pca_path_completions;
- pca_scan_path;
- pca_set_check_fn;
- ppc_file_start;
- ppc_literal_escapes;
-
- local:
- *;
-};
-
-tecla_1.3 {
- global:
- ef_list_expansions;
-} tecla_1.2;
-
-tecla_1.4 {
- global:
- gl_configure_getline;
- gl_save_history;
- gl_load_history;
- gl_group_history;
- gl_show_history;
- gl_resize_history;
- gl_limit_history;
- gl_clear_history;
- gl_toggle_history;
- gl_watch_fd;
- libtecla_version;
- gl_terminal_size;
- gl_state_of_history;
- gl_range_of_history;
- gl_size_of_history;
- gl_lookup_history;
- gl_echo_mode;
- gl_replace_prompt;
- gl_prompt_style;
- gl_ignore_signal;
- gl_trap_signal;
- gl_last_signal;
-} tecla_1.3;
diff --git a/libtecla-1.4.1/man3/cfc_file_start.3 b/libtecla-1.4.1/man3/cfc_file_start.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/cfc_file_start.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/cfc_literal_escapes.3 b/libtecla-1.4.1/man3/cfc_literal_escapes.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/cfc_literal_escapes.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/cfc_set_check_fn.3 b/libtecla-1.4.1/man3/cfc_set_check_fn.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/cfc_set_check_fn.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/cpl_add_completion.3 b/libtecla-1.4.1/man3/cpl_add_completion.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/cpl_add_completion.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/cpl_complete_word.3 b/libtecla-1.4.1/man3/cpl_complete_word.3
deleted file mode 100644
index ae76439..0000000
--- a/libtecla-1.4.1/man3/cpl_complete_word.3
+++ /dev/null
@@ -1,405 +0,0 @@
-.\" Copyright (C) 2000, 2001 by Martin C. Shepherd
-.\"
-.\" All rights reserved.
-.\"
-.\" Permission is hereby granted, free of charge, to any person obtaining a
-.\" copy of this software and associated documentation files (the
-.\" "Software"), to deal in the Software without restriction, including
-.\" without limitation the rights to use, copy, modify, merge, publish,
-.\" distribute, and/or sell copies of the Software, and to permit persons
-.\" to whom the Software is furnished to do so, provided that the above
-.\" copyright notice(s) and this permission notice appear in all copies of
-.\" the Software and that both the above copyright notice(s) and this
-.\" permission notice appear in supporting documentation.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.\"
-.\" Except as contained in this notice, the name of a copyright holder
-.\" shall not be used in advertising or otherwise to promote the sale, use
-.\" or other dealings in this Software without prior written authorization
-.\" of the copyright holder.
-.TH cpl_complete_word 3
-.SH NAME
-cpl_complete_word, cfc_file_start, cfc_literal_escapes, cfc_set_check_fn, cpl_add_completion, cpl_file_completions, cpl_last_error, cpl_list_completions, cpl_record_error, del_CplFileConf, del_WordCompletion, new_CplFileConf, new_WordCompletion \- lookup possible completions for a word
-.SH SYNOPSIS
-.nf
-#include <stdio.h>
-#include <libtecla.h>
-
-WordCompletion *new_WordCompletion(void);
-
-WordCompletion *del_WordCompletion(WordCompletion *cpl);
-
-#define CPL_MATCH_FN(fn) int (fn)(WordCompletion *cpl, \\
- void *data, \\
- const char *line, \\
- int word_end)
-typedef CPL_MATCH_FN(CplMatchFn);
-
-CPL_MATCH_FN(cpl_file_completions);
-
-CplMatches *cpl_complete_word(WordCompletion *cpl,
- const char *line,
- int word_end, void *data,
- CplMatchFn *match_fn);
-
-int cpl_list_completions(CplMatches *result, FILE *fp,
- int term_width);
-
-int cpl_add_completion(WordCompletion *cpl,
- const char *line, int word_start,
- int word_end, const char *suffix,
- const char *type_suffix,
- const char *cont_suffix);
-
-void cpl_record_error(WordCompletion *cpl,
- const char *errmsg);
-
-const char *cpl_last_error(WordCompletion *cpl);
-
-.fi
-
-.SH DESCRIPTION
-
-The \f3cpl_complete_word()\f1 function is part of the tecla library
-(see the libtecla(3) man page). It is usually called behind the scenes
-by \f3gl_get_line(3)\f1, but can also be called separately.
-
-Given an input line containing an incomplete word to be completed, it
-calls a user-provided callback function (or the provided
-file-completion callback function) to look up all possible completion
-suffixes for that word. The callback function is expected to look
-backward in the line, starting from the specified cursor position, to
-find the start of the word to be completed, then to look up all
-possible completions of that word and record them, one at a time by
-calling \f3cpl_add_completion()\f1.
-
-.sp
-Descriptions of the functions of this module are as follows:
-.sp
-.nf
- CompleteWord *new_CompleteWord(void)
-.fi
-.sp
-This function creates the resources used by the \f3cpl_complete_word()\f1
-function. In particular, it maintains the memory that is used to
-return the results of calling \f3cpl_complete_word()\f1.
-.sp
-.nf
- CompleteWord *del_CompleteWord(CompleteWord *cpl)
-.fi
-.sp
-This function deletes the resources that were returned by a previous
-call to \f3new_CompleteWord()\f1. It always returns \f3NULL\f1 (ie. a
-deleted object). It does nothing if the \f3cpl\f1 argument is
-\f3NULL\f1.
-.sp
-The callback functions which lookup possible completions should be
-defined with the following macro (which is defined in libtecla.h).
-.sp
-.nf
- #define CPL_MATCH_FN(fn) int (fn)(WordCompletion *cpl, \\
- void *data, \\
- const char *line, \\
- int word_end)
-.fi
-.sp
-Functions of this type are called by \f3cpl_complete_word()\f1, and
-all of the arguments of the callback are those that were passed to
-said function. In particular, the \f3line\f1 argument contains the
-input line containing the word to be completed, and \f3word_end\f1 is
-the index of the character that follows the last character of the
-incomplete word within this string. The callback is expected to look
-backwards from \f3word_end\f1 for the start of the incomplete
-word. What constitutes the start of a word clearly depends on the
-application, so it makes sense for the callback to take on this
-responsibility. For example, the builtin filename completion function
-looks backwards until it hits an unescaped space, or the start of the
-line. Having found the start of the word, the callback should then
-lookup all possible completions of this word, and record each
-completion via separate calls to \f3cpl_add_completion()\f1. If the
-callback needs access to an application-specific symbol table, it can
-pass it and any other data that it needs, via the \f3data\f1
-argument. This removes any need for globals.
-.sp
-The callback function should return 0 if no errors occur. On failure
-it should return 1, and register a terse description of the error by
-calling \f3cpl_record_error()\f1.
-.sp
-.nf
- void cpl_record_error(WordCompletion *cpl,
- const char *errmsg);
-.fi
-.sp
-The last error message recorded by calling \f3cpl_record_error()\f1,
-can subsequently be queried by calling \f3cpl_last_error()\f1, as
-described later.
-.sp
-.nf
- int cpl_add_completion(WordCompletion *cpl,
- const char *line, int word_start,
- int word_end, const char *suffix,
- const char *type_suffix,
- const char *cont_suffix);
-.fi
-.sp
-The \f3cpl_add_completion()\f1 function is called zero or more times
-by the completion callback function to record each possible completion
-in the specified \f3WordCompletion\f1 object. These completions are
-subsequently returned by \f3cpl_complete_word()\f1, as described
-later. The \f3cpl\f1, \f3line\f1, and \f3word_end\f1 arguments should
-be those that were passed to the callback function. The
-\f3word_start\f1 argument should be the index within the input line
-string of the start of the word that is being completed. This should
-equal \f3word_end\f1 if a zero-length string is being completed. The
-\f3suffix\f1 argument is the string that would have to be appended to
-the incomplete word to complete it. If this needs any quoting
-(eg. the addition of backslashes before special charaters) to be valid
-within the displayed input line, this should be included. A copy of
-the suffix string is allocated internally, so there is no need to
-maintain your copy of the string after \f3cpl_add_completion()\f1
-returns.
-.sp
-Note that in the array of possible completions which the
-\f3cpl_complete_word()\f1 function returns, the suffix recorded by
-\f3cpl_add_completion()\f1 is listed along with the concatentation of
-this suffix with the word that lies between \f3word_start\f1 and
-\f3word_end\f1 in the input line.
-.sp
-The \f3type_suffix\f1 argument specifies an optional string to be
-appended to the completion if it is displayed as part of a list of
-completions by \f3cpl_list_completions()\f1. The intention is that
-this indicate to the user the type of each completion. For example,
-the file completion function places a directory separator after
-completions that are directories, to indicate their nature to the
-user. Similary, if the completion were a function, you could indicate
-this to the user by setting \f3type_suffix\f1 to "()". Note that the
-\f3type_suffix\f1 string isn't copied, so if the argument isn't a
-literal string between speech marks, be sure that the string remains
-valid for at least as long as the results of \f3cpl_complete_word()\f1
-are needed.
-.sp
-The \f3cont_suffix\f1 is a continuation suffix to append to the
-completed word in the input line if this is the only completion. This
-is something that isn't part of the completion itself, but that gives
-the user an indication about how they might continue to extend the
-token. For example, the file-completion callback function adds a
-directory separator if the completed word is a directory. If the
-completed word were a function name, you could similarly aid the user
-by arranging for an open parenthesis to be appended.
-.sp
-.nf
- CplMatches *cpl_complete_word(WordCompletion *cpl,
- const char *line,
- int word_end, void *data,
- CplMatchFn *match_fn);
-.fi
-.sp
-The \f3cpl_complete_word()\f1 is normally called behind the scenes by
-\f3gl_get_line(3)\f1, but can also be called separately if you
-separately allocate a \f3WordCompletion\f1 object. It performs word
-completion, as described at the beginning of this section. Its first
-argument is a resource object previously returned by
-\f3new_CompleteWord()\f1. The \f3line\f1 argument is the input line
-string, containing the word to be completed. The \f3word_end\f1
-argument contains the index of the character in the input line, that
-just follows the last character of the word to be completed. When
-called by \f3gl_get_line()\f1, this is the character over which the
-user pressed \f3TAB\f1. The \f3match_fn\f3 argument is the function
-pointer of the callback function which will lookup possible
-completions of the word, as described above, and the \f3data\f1
-argument provides a way for the application to pass arbitrary data to
-the callback function.
-.sp
-If no errors occur, the \f3cpl_complete_word()\f1 function returns a
-pointer to a \f3CplMatches\f1 container, as defined below. This
-container is allocated as part of the \f3cpl\f1 object that was passed
-to \f3cpl_complete_word()\f1, and will thus change on each call which
-uses the same \f3cpl\f1 argument.
-.sp
-.nf
- typedef struct {
- char *completion; /* A matching completion */
- /* string */
- char *suffix; /* The part of the */
- /* completion string which */
- /* would have to be */
- /* appended to complete the */
- /* original word. */
- const char *type_suffix; /* A suffix to be added when */
- /* listing completions, to */
- /* indicate the type of the */
- /* completion. */
- } CplMatch;
-
- typedef struct {
- char *suffix; /* The common initial part */
- /* of all of the completion */
- /* suffixes. */
- const char *cont_suffix; /* Optional continuation */
- /* string to be appended to */
- /* the sole completion when */
- /* nmatch==1. */
- CplMatch *matches; /* The array of possible */
- /* completion strings, */
- /* sorted into lexical */
- /* order. */
- int nmatch; /* The number of elements in */
- /* the above matches[] */
- /* array. */
- } CplMatches;
-.fi
-.sp
-If an error occurs during completion, \f3cpl_complete_word()\f1
-returns NULL. A description of the error can be acquired by calling
-the \f3cpl_last_error()\f3 function.
-.sp
-.nf
- const char *cpl_last_error(WordCompletion *cpl);
-.fi
-.sp
-The \f3cpl_last_error()\f3 function returns a terse description of the
-error which occurred on the last call to \f3cpl_complete_word()\f1 or
-\f3cpl_add_completion()\f1.
-.sp
-.nf
- int cpl_list_completions(CplMatches *result, FILE *fp,
- int terminal_width);
-.fi
-.sp
-When the \f3cpl_complete_word()\f1 function returns multiple possible
-completions, the \f3cpl_list_completions()\f1 function can be called
-upon to list them, suitably arranged across the available width of the
-terminal. It arranges for the displayed columns of completions to all
-have the same width, set by the longest completion. It also appends
-the \f3type_suffix\f1 strings that were recorded with each completion,
-thus indicating their types to the user.
-
-.SH THE BUILT-IN FILENAME-COMPLETION CALLBACK
-
-By default the \f3gl_get_line(3)\f1 function, passes the following
-completion callback function to \f3cpl_complete_word()\f1. This
-function can also be used separately, either by sending it to
-\f3cpl_complete_word()\f1, or by calling it directly from your
-own completion callback function.
-.sp
-.nf
- CPL_MATCH_FN(cpl_file_completions);
-.fi
-.sp
-Certain aspects of the behavior of this callback can be changed via
-its \f3data\f1 argument. If you are happy with its default behavior
-you can pass \f3NULL\f1 in this argument. Otherwise it should be a
-pointer to a \f3CplFileConf\f1 object, previously allocated by calling
-\f3new_CplFileConf()\f1.
-.sp
-.nf
- CplFileConf *new_CplFileConf(void);
-.fi
-.sp
-\f3CplFileConf\f1 objects encapsulate the configuration parameters of
-\f3cpl_file_completions()\f1. These parameters, which start out with
-default values, can be changed by calling the accessor functions
-described below.
-.sp
-By default, the \f3cpl_file_completions()\f3 callback function
-searches backwards for the start of the filename being completed,
-looking for the first un-escaped space or the start of the input
-line. If you wish to specify a different location, call
-\f3cfc_file_start()\f1 with the index at which the filename starts in
-the input line. Passing start_index=-1 re-enables the default
-behavior.
-.sp
-.nf
- void cfc_file_start(CplFileConf *cfc, int start_index);
-.fi
-.sp
-By default, when \f3cpl_file_completions()\f1 looks at a filename in
-the input line, each lone backslash in the input line is interpreted
-as being a special character which removes any special significance of
-the character which follows it, such as a space which should be taken
-as part of the filename rather than delimiting the start of the
-filename. These backslashes are thus ignored while looking for
-completions, and subsequently added before spaces, tabs and literal
-backslashes in the list of completions. To have unescaped backslashes
-treated as normal characters, call \f3cfc_literal_escapes()\f1 with a
-non-zero value in its \f3literal\f1 argument.
-.sp
-.nf
- void cfc_literal_escapes(CplFileConf *cfc, int literal);
-.fi
-.sp
-By default, \f3cpl_file_completions()\f1 reports all files who's names
-start with the prefix that is being completed. If you only want a
-selected subset of these files to be reported in the list of
-completions, you can arrange this by providing a callback function
-which takes the full pathname of a file, and returns \f30\f1 if the
-file should be ignored, or \f31\f1 if the file should be included in
-the list of completions. To register such a function for use by
-\f3cpl_file_completions()\f1, call \f3cfc_set_check_fn()\f1, and pass
-it a pointer to the function, together with a pointer to any data that
-you would like passed to this callback whenever it is called. Your
-callback can make its decisions based on any property of the file,
-such as the filename itself, whether the file is readable, writable or
-executable, or even based on what the file contains.
-.sp
-.nf
- #define CPL_CHECK_FN(fn) int (fn)(void *data, \\
- const char *pathname)
- typedef CPL_CHECK_FN(CplCheckFn);
-
- void cfc_set_check_fn(CplFileConf *cfc,
- CplCheckFn *chk_fn, void *chk_data);
-.fi
-.sp
-The \f3cpl_check_exe()\f1 function is a provided callback of the above
-type, for use with \f3cpl_file_completions()\f1. It returns non-zero
-if the filename that it is given represents a normal file that the
-user has execute permission to. You could use this to have
-\f3cpl_file_completions()\f1 only list completions of executable
-files.
-.sp
-When you have finished with a \f3CplFileConf\f1 variable, you can pass
-it to the \f3del_CplFileConf()\f1 destructor function to reclaim its
-memory.
-.sp
-.nf
- CplFileConf *del_CplFileConf(CplFileConf *cfc);
-.fi
-.sp
-
-.SH THREAD SAFETY
-
-In multi-threaded programs, you should use the \f3libtecla_r.a\f1
-version of the library. This uses POSIX reentrant functions where
-available (hence the \f3_r\f1 suffix), and disables features that rely
-on non-reentrant system functions. In the case of this module, the
-only disabled feature is username completion in \f3~username/\f1
-expressions, in \f3cpl_file_completions()\f1.
-
-Using the \f3libtecla_r.a\f1 version of the library, it is safe to use
-the facilities of this module in multiple threads, provided that each
-thread uses a separately allocated \f3WordCompletion\f1 object. In
-other words, if two threads want to do word completion, they should
-each call \f3new_WordCompletion()\f1 to allocate their own completion
-objects.
-
-.SH FILES
-.nf
-libtecla.a - The tecla library
-libtecla.h - The tecla header file.
-.fi
-
-.SH SEE ALSO
-libtecla(3), gl_get_line(3), ef_expand_file(3), pca_lookup_file(3)
-
-.SH AUTHOR
-Martin Shepherd (mcs@astro.caltech.edu)
diff --git a/libtecla-1.4.1/man3/cpl_file_completions.3 b/libtecla-1.4.1/man3/cpl_file_completions.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/cpl_file_completions.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/cpl_last_error.3 b/libtecla-1.4.1/man3/cpl_last_error.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/cpl_last_error.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/cpl_list_completions.3 b/libtecla-1.4.1/man3/cpl_list_completions.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/cpl_list_completions.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/cpl_record_error.3 b/libtecla-1.4.1/man3/cpl_record_error.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/cpl_record_error.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/del_CplFileConf.3 b/libtecla-1.4.1/man3/del_CplFileConf.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/del_CplFileConf.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/del_ExpandFile.3 b/libtecla-1.4.1/man3/del_ExpandFile.3
deleted file mode 100644
index f4299df..0000000
--- a/libtecla-1.4.1/man3/del_ExpandFile.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/ef_expand_file.3
diff --git a/libtecla-1.4.1/man3/del_GetLine.3 b/libtecla-1.4.1/man3/del_GetLine.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/del_GetLine.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/del_PathCache.3 b/libtecla-1.4.1/man3/del_PathCache.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/del_PathCache.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/del_PcaPathConf.3 b/libtecla-1.4.1/man3/del_PcaPathConf.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/del_PcaPathConf.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/del_WordCompletion.3 b/libtecla-1.4.1/man3/del_WordCompletion.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/del_WordCompletion.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/ef_expand_file.3 b/libtecla-1.4.1/man3/ef_expand_file.3
deleted file mode 100644
index 88c2d54..0000000
--- a/libtecla-1.4.1/man3/ef_expand_file.3
+++ /dev/null
@@ -1,245 +0,0 @@
-.\" Copyright (C) 2000, 2001 by Martin C. Shepherd
-.\"
-.\" All rights reserved.
-.\"
-.\" Permission is hereby granted, free of charge, to any person obtaining a
-.\" copy of this software and associated documentation files (the
-.\" "Software"), to deal in the Software without restriction, including
-.\" without limitation the rights to use, copy, modify, merge, publish,
-.\" distribute, and/or sell copies of the Software, and to permit persons
-.\" to whom the Software is furnished to do so, provided that the above
-.\" copyright notice(s) and this permission notice appear in all copies of
-.\" the Software and that both the above copyright notice(s) and this
-.\" permission notice appear in supporting documentation.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.\"
-.\" Except as contained in this notice, the name of a copyright holder
-.\" shall not be used in advertising or otherwise to promote the sale, use
-.\" or other dealings in this Software without prior written authorization
-.\" of the copyright holder.
-.TH ef_expand_file 3
-.SH NAME
-ef_expand_file, del_ExpandFile, ef_last_error, ef_list_expansions, new_ExpandFile \- expand filenames containing ~user/$envvar and wildcard expressions
-.SH SYNOPSIS
-.nf
-#include <libtecla.h>
-
-ExpandFile *new_ExpandFile(void);
-
-ExpandFile *del_ExpandFile(ExpandFile *ef);
-
-FileExpansion *ef_expand_file(ExpandFile *ef,
- const char *path,
- int pathlen);
-
-int ef_list_expansions(FileExpansion *result, FILE *fp,
- int term_width);
-
-const char *ef_last_error(ExpandFile *ef);
-.fi
-
-.SH DESCRIPTION
-
-The \f3ef_expand_file()\f1 function is part of the tecla library
-(see the libtecla(3) man page). It expands a specified filename,
-converting \f3~user/\f1 and \f3~/\f1 expressions at the start of the
-filename to the corresponding home directories, replacing
-\f3$envvar\f1 with the value of the corresponding environment
-variable, and then, if there are any wildcards, matching these against
-existing filenames. Backslashes in the input filename are interpreted
-as escaping any special meanings of the characters that follow them.
-Only backslahes that are themselves preceded by backslashes are
-preserved in the expanded filename.
-.sp
-In the presence of wildcards, the returned list of filenames only
-includes the names of existing files which match the
-wildcards. Otherwise, the original filename is returned after
-expansion of tilde and dollar expressions, and the result is not
-checked against existing files. This mimics the file-globbing behavior
-of the unix \f3tcsh\f1 shell.
-.sp
-The supported wildcards and their meanings are:
-.nf
- * - Match any sequence of zero or more characters.
- ? - Match any single character.
- [chars] - Match any single character that appears in
- 'chars'. If 'chars' contains an expression of
- the form a-b, then any character between a and
- b, including a and b, matches. The '-'
- character looses its special meaning as a
- range specifier when it appears at the start
- of the sequence of characters. The ']'
- character also looses its significance as the
- terminator of the range expression if it
- appears immediately after the opening '[', at
- which point it is treated one of the
- characters of the range. If you want both '-'
- and ']' to be part of the range, the '-'
- should come first and the ']' second.
-
- [^chars] - The same as [chars] except that it matches any
- single character that doesn't appear in
- 'chars'.
-.fi
-
-Note that wildcards never match the initial dot in filenames that
-start with '.'. The initial '.' must be explicitly specified in the
-filename. This again mimics the globbing behavior of most unix shells,
-and its rational is based in the fact that in unix, files with names
-that start with '.' are usually hidden configuration files, which are
-not listed by default by the ls command.
-.sp
-The following is a complete example of how to use the file expansion
-function.
-
-.nf
- #include <stdio.h>
- #include <libtecla.h>
-
- int main(int argc, char *argv[])
- {
- ExpandFile *ef; /* The expansion resource object */
- char *filename; /* The filename being expanded */
- FileExpansion *expn; /* The results of the expansion */
- int i;
-
- ef = new_ExpandFile();
- if(!ef)
- return 1;
-
- for(arg = *(argv++); arg; arg = *(argv++)) {
- if((expn = ef_expand_file(ef, arg, -1)) == NULL) {
- fprintf(stderr, "Error expanding %s (%s).\\n", arg,
- ef_last_error(ef));
- } else {
- printf("%s matches the following files:\\n", arg);
- for(i=0; i<expn->nfile; i++)
- printf(" %s\\n", expn->files[i]);
- }
- }
-
- ef = del_ExpandFile(ef);
- return 0;
- }
-.fi
-.sp
-Descriptions of the functions used above are as follows:
-.sp
-.nf
- ExpandFile *new_ExpandFile(void)
-.fi
-.sp
-This function creates the resources used by the \f3ef_expand_file()\f1
-function. In particular, it maintains the memory that is used to record the
-array of matching filenames that is returned by \f3ef_expand_file()\f1. This
-array is expanded as needed, so there is no built in limit to the number of
-files that can be matched.
-.sp
-.nf
- ExpandFile *del_ExpandFile(ExpandFile *ef)
-.fi
-.sp
-This function deletes the resources that were returned by a previous call to
-\f3new_ExpandFile()\f1. It always returns \f3NULL\f1 (ie a deleted object). It
-does nothing if the \f3ef\f1 argument is \f3NULL\f1.
-.sp
-A container of the following type is returned by \f3ef_expand_file()\f1.
-.sp
-.nf
- typedef struct {
- int exists; /* True if the files in files[] exist */
- int nfile; /* The number of files in files[] */
- char **files; /* An array of 'nfile' filenames. */
- } FileExpansion;
-.fi
-.sp
-.nf
- FileExpansion *ef_expand_file(ExpandFile *ef,
- const char *path,
- int pathlen)
-.fi
-.sp
-The \f3ef_expand_file()\f1 function performs filename expansion, as documented
-at the start of this section. Its first argument is a resource object returned
-by \f3new_ExpandFile()\f1. A pointer to the start of the filename to be matched
-is passed via the \f3path\f1 argument. This must be a normal \f3NUL\f1
-terminated string, but unless a length of -1 is passed in \f3pathlen\f1, only
-the first \f3pathlen\f1 characters will be used in the filename expansion. If
-the length is specified as -1, the whole of the string will be
-expanded.
-.sp
-The function returns a pointer to a container who's contents are the
-results of the expansion. If there were no wildcards in the filename,
-the \f3nfile\f1 member will be 1, and the \f3exists\f1 member should
-be queried if it is important to know if the expanded file currently
-exists or not. If there were wildcards, then the contained
-\f3files[]\f1 array will contain the names of the \f3nfile\f1 existing
-files that matched the wildcarded filename, and the \f3exists\f1
-member will have the value 1. Note that the returned container belongs
-to the specified \f3ef\f1 object, and its contents will change on each
-call, so if you need to retain the results of more than one call to
-\f3ef_expand_file()\f1, you should either make a private copy of the
-returned results, or create multiple file-expansion resource objects
-via multiple calls to \f3new_ExpandFile()\f1.
-.sp
-On error, \f3NULL\f1 is returned, and an explanation of the error can
-be determined by calling \f3ef_last_error(ef)\f1.
-.sp
-.nf
- const char *ef_last_error(ExpandFile *ef)
-.fi
-.sp
-This function returns the message which describes the error that
-occurred on the last call to \f3ef_expand_file()\f1, for the given
-\f3(ExpandFile *ef)\f1 resource object.
-.sp
-.nf
- int ef_list_expansions(FileExpansion *result, FILE *fp,
- int terminal_width);
-.fi
-.sp
-The \f3ef_list_expansions()\f1 function provides a convenient way to
-list the filename expansions returned by \f3ef_expand_file()\f1. Like
-the unix \f3ls\f1 command, it arranges the filenames into equal width
-columns, each column having the width of the largest file. The number
-of columns used is thus determined by the length of the longest
-filename, and the specified terminal width. Beware that filenames that
-are longer than the specified terminal width are printed without being
-truncated, so output longer than the specified terminal width can
-occur. The list is written to the stdio stream specified by the
-\f3fp\f1 argument.
-
-.SH THREAD SAFETY
-
-In multi-threaded programs, you should use the \f3libtecla_r.a\f1
-version of the library. This uses POSIX reentrant functions where
-available (hence the \f3_r\f1 suffix), and disables features that rely
-on non-reentrant system functions. Currently there are no features
-disabled in this module.
-
-Using the \f3libtecla_r.a\f1 version of the library, it is safe to use
-the facilities of this module in multiple threads, provided that each
-thread uses a separately allocated \f3ExpandFile\f1 object. In other
-words, if two threads want to do file expansion, they should each call
-\f3new_ExpandFile()\f1 to allocate their own file-expansion objects.
-
-.SH FILES
-.nf
-libtecla.a - The tecla library
-libtecla.h - The tecla header file.
-.fi
-
-.SH SEE ALSO
-libtecla(3), gl_get_line(3), cpl_complete_word(3), pca_lookup_file(3)
-
-.SH AUTHOR
-Martin Shepherd (mcs@astro.caltech.edu)
diff --git a/libtecla-1.4.1/man3/ef_last_error.3 b/libtecla-1.4.1/man3/ef_last_error.3
deleted file mode 100644
index f4299df..0000000
--- a/libtecla-1.4.1/man3/ef_last_error.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/ef_expand_file.3
diff --git a/libtecla-1.4.1/man3/ef_list_expansions.3 b/libtecla-1.4.1/man3/ef_list_expansions.3
deleted file mode 100644
index f4299df..0000000
--- a/libtecla-1.4.1/man3/ef_list_expansions.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/ef_expand_file.3
diff --git a/libtecla-1.4.1/man3/enhance.3 b/libtecla-1.4.1/man3/enhance.3
deleted file mode 100644
index 648ef34..0000000
--- a/libtecla-1.4.1/man3/enhance.3
+++ /dev/null
@@ -1,86 +0,0 @@
-.\" Copyright (C) 2000, 2001 by Martin C. Shepherd
-.\"
-.\" All rights reserved.
-.\"
-.\" Permission is hereby granted, free of charge, to any person obtaining a
-.\" copy of this software and associated documentation files (the
-.\" "Software"), to deal in the Software without restriction, including
-.\" without limitation the rights to use, copy, modify, merge, publish,
-.\" distribute, and/or sell copies of the Software, and to permit persons
-.\" to whom the Software is furnished to do so, provided that the above
-.\" copyright notice(s) and this permission notice appear in all copies of
-.\" the Software and that both the above copyright notice(s) and this
-.\" permission notice appear in supporting documentation.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.\"
-.\" Except as contained in this notice, the name of a copyright holder
-.\" shall not be used in advertising or otherwise to promote the sale, use
-.\" or other dealings in this Software without prior written authorization
-.\" of the copyright holder.
-.TH libtecla 3
-.SH NAME
-enhance - A program that adds command-line editing to third party programs.
-.SH SYNOPSIS
-.nf
-enhance command [ argument ... ]
-.fi
-
-.SH DESCRIPTION
-
-The \f3enhance\f1 program provides enhanced command-line editing
-facilities to users of third party applications, to which one doesn't
-have any source code. It does this by placing a pseudo-terminal
-between the application and the real terminal. It uses the tecla
-command-line editing library to read input from the real terminal,
-then forwards each just completed input line to the application via
-the pseudo-terminal. All output from the application is forwarded
-back unchanged to the real terminal.
-.sp
-Whenever the application stops generating output for more than a tenth
-of a second, the \f3enhance\f1 program treats the latest incomplete
-output line as the prompt, and redisplays any incompleted input line
-that the user has typed after it. Note that the small delay, which is
-imperceptible to the user, isn't necessary for correct operation of
-the program. It is just an optimization, designed to stop the input
-line from being redisplayed so often that it slows down output.
-
-.SH DEFICIENCIES
-
-The one major problem that hasn't been solved yet, is how to deal with
-applications that change whether typed input is echo'd by their
-controlling terminal. For example, programs that ask for a password,
-such as ftp and telnet, temporarily tell their controlling terminal
-not to echo what the user types. Since this request goes to the
-application side of the psuedo terminal, the \f3enhance\f1 program has
-no way of knowing that this has happened, and continues to echo typed
-input to its controlling terminal, while the user types their
-password.
-.sp
-Furthermore, before executing the host application, the \f3enhance\f1
-program initially sets the pseudo terminal to noecho mode, so that
-everything that it sends to the program doesn't get redundantly
-echoed. If a program that switches to noecho mode explicitly restores
-echoing afterwards, rather than restoring the terminal modes that were
-previously in force, then subsequently, every time that you enter a
-new input line, a duplicate copy will be displayed on the next line.
-
-.SH FILES
-.nf
-libtecla.a - The tecla library.
-~/.teclarc - The tecla personal customization file.
-.fi
-
-.SH SEE ALSO
-libtecla(3)
-
-.SH AUTHOR
-Martin Shepherd (mcs@astro.caltech.edu)
diff --git a/libtecla-1.4.1/man3/gl_change_terminal.3 b/libtecla-1.4.1/man3/gl_change_terminal.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_change_terminal.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_clear_history.3 b/libtecla-1.4.1/man3/gl_clear_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_clear_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_configure_getline.3 b/libtecla-1.4.1/man3/gl_configure_getline.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_configure_getline.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_customize_completion.3 b/libtecla-1.4.1/man3/gl_customize_completion.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_customize_completion.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_echo_mode.3 b/libtecla-1.4.1/man3/gl_echo_mode.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_echo_mode.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_get_line.3 b/libtecla-1.4.1/man3/gl_get_line.3
deleted file mode 100644
index 51fc9d8..0000000
--- a/libtecla-1.4.1/man3/gl_get_line.3
+++ /dev/null
@@ -1,2329 +0,0 @@
-.\" Copyright (C) 2000, 2001 by Martin C. Shepherd
-.\"
-.\" All rights reserved.
-.\"
-.\" Permission is hereby granted, free of charge, to any person obtaining a
-.\" copy of this software and associated documentation files (the
-.\" "Software"), to deal in the Software without restriction, including
-.\" without limitation the rights to use, copy, modify, merge, publish,
-.\" distribute, and/or sell copies of the Software, and to permit persons
-.\" to whom the Software is furnished to do so, provided that the above
-.\" copyright notice(s) and this permission notice appear in all copies of
-.\" the Software and that both the above copyright notice(s) and this
-.\" permission notice appear in supporting documentation.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.\"
-.\" Except as contained in this notice, the name of a copyright holder
-.\" shall not be used in advertising or otherwise to promote the sale, use
-.\" or other dealings in this Software without prior written authorization
-.\" of the copyright holder.
-.TH gl_get_line 3
-.SH NAME
-gl_get_line, new_GetLine, del_GetLine, gl_customize_completion, gl_change_terminal, gl_configure_getline, gl_load_history, gl_save_history, gl_group_history, gl_show_history, gl_watch_fd, gl_terminal_size, gl_resize_history, gl_limit_history, gl_clear_history, gl_toggle_history, gl_lookup_history, gl_state_of_history, gl_range_of_history, gl_size_of_history, gl_echo_mode, gl_replace_prompt, gl_prompt_style, gl_ignore_signal, gl_trap_signal, gl_last_signal \- allow the user to compose an input line
-.SH SYNOPSIS
-.nf
-#include <stdio.h>
-#include <libtecla.h>
-
-GetLine *new_GetLine(size_t linelen, size_t histlen);
-
-GetLine *del_GetLine(GetLine *gl);
-
-char *gl_get_line(GetLine *gl, const char *prompt,
- const char *start_line, int start_pos);
-
-int gl_customize_completion(GetLine *gl, void *data,
- CplMatchFn *match_fn);
-
-int gl_change_terminal(GetLine *gl, FILE *input_fp,
- FILE *output_fp, const char *term);
-
-int gl_configure_getline(GetLine *gl,
- const char *app_string,
- const char *app_file,
- const char *user_file);
-
-int gl_save_history(GetLine *gl, const char *filename,
- const char *comment, int max_lines);
-
-int gl_load_history(GetLine *gl, const char *filename,
- const char *comment);
-
-int gl_watch_fd(GetLine *gl, int fd, GlFdEvent event,
- GlFdEventFn *callback, void *data);
-
-int gl_group_history(GetLine *gl, unsigned stream);
-
-int gl_show_history(GetLine *gl, FILE *fp,
- const char *fmt, int all_groups,
- int max_lines);
-
-int gl_resize_history(GetLine *gl, size_t bufsize);
-
-void gl_limit_history(GetLine *gl, int max_lines);
-
-void gl_clear_history(GetLine *gl, int all_groups);
-
-void gl_toggle_history(GetLine *gl, int enable);
-
-GlTerminalSize gl_terminal_size(GetLine *gl,
- int def_ncolumn,
- int def_nline);
-
-int gl_lookup_history(GetLine *gl, unsigned long id,
- GlHistoryLine *hline);
-
-void gl_state_of_history(GetLine *gl,
- GlHistoryState *state);
-
-void gl_range_of_history(GetLine *gl,
- GlHistoryRange *range);
-
-void gl_size_of_history(GetLine *gl, GlHistorySize *size);
-
-void gl_echo_mode(GetLine *gl, int enable);
-
-void gl_replace_prompt(GetLine *gl, const char *prompt);
-
-void gl_prompt_style(GetLine *gl, GlPromptStyle style);
-
-int gl_ignore_signal(GetLine *gl, int signo);
-
-int gl_trap_signal(GetLine *gl, int signo, unsigned flags,
- GlAfterSignal after, int errno_value);
-
-int gl_last_signal(const GetLine *gl);
-
-.fi
-
-.SH DESCRIPTION
-
-The \f3gl_get_line()\f1 function is part of the tecla library (see
-the libtecla(3) man page). If the user is typing at a terminal, it
-prompts them for an line of input, then provides interactive editing
-facilities, similar to those of the unix \f3tcsh\f1 shell. In addition
-to simple command-line editing, it supports recall of previously
-entered command lines, TAB completion of file names, and in-line
-wild-card expansion of filenames.
-.sp
-.SH AN EXAMPLE
-
-The following shows a complete example of how to use the
-\f3gl_get_line()\f1 function to get input from the user:
-
-.nf
- #include <stdio.h>
- #include <locale.h>
- #include <libtecla.h>
-
- int main(int argc, char *argv[])
- {
- char *line; /* The line that the user typed */
- GetLine *gl; /* The gl_get_line() resource object */
-
- setlocale(LC_CTYPE, ""); /* Adopt the user's choice */
- /* of character set. */
-
- gl = new_GetLine(1024, 2048);
- if(!gl)
- return 1;
-
- while((line=gl_get_line(gl, "$ ", NULL, -1)) != NULL &&
- strcmp(line, "exit\\n") != 0)
- printf("You typed: %s\\n", line);
-
- gl = del_GetLine(gl);
- return 0;
- }
-.fi
-.sp
-In the example, first the resources needed by the \f3gl_get_line()\f1 function
-are created by calling \f3new_GetLine()\f1. This allocates the memory used in
-subsequent calls to the \f3gl_get_line()\f1 function, including the history
-buffer for recording previously entered lines. Then one or more lines are read
-from the user, until either an error occurs, or the user types \f3exit\f1. Then
-finally the resources that were allocated by \f3new_GetLine()\f1, are returned
-to the system by calling \f3del_GetLine()\f1. Note the use of the \f3NULL\f1
-return value of \f3del_GetLine()\f1 to make \f3gl\f1 \f3NULL\f1. This is a
-safety precaution. If the program subsequently attempts to pass \f3gl\f1 to
-\f3gl_get_line()\f1, said function will complain, and return an error, instead of
-attempting to use the deleted resource object.
-
-.sp
-.SH THE FUNCTIONS USED IN THE EXAMPLE
-The descriptions of the functions used in the example are as follows:
-.sp
-.nf
- GetLine *new_GetLine(size_t linelen, size_t histlen)
-.fi
-.sp
-This function creates the resources used by the \f3gl_get_line()\f1
-function and returns an opaque pointer to the object that contains
-them. The maximum length of an input line is specified via the
-\f3linelen\f1 argument, and the number of bytes to allocate for
-storing history lines is set by the \f3histlen\f1 argument. History
-lines are stored back-to-back in a single buffer of this size. Note
-that this means that the number of history lines that can be stored at
-any given time, depends on the lengths of the individual lines. If
-you want to place an upper limit on the number of lines that can be
-stored, see the \f3gl_limit_history()\f1 function described later. If
-you don't want history at all, specify \f3histlen\f1 as zero, and no
-history buffer will be allocated.
-.sp
-On error, a message is printed to \f3stderr\f1 and \f3NULL\f1 is returned.
-.sp
-.nf
- GetLine *del_GetLine(GetLine *gl)
-.fi
-.sp
-This function deletes the resources that were returned by a previous
-call to \f3new_GetLine()\f1. It always returns \f3NULL\f1 (ie a
-deleted object). It does nothing if the \f3gl\f1 argument is
-\f3NULL\f1.
-.sp
-.nf
- char *gl_get_line(GetLine *gl, const char *prompt,
- const char *start_line, int start_pos);
-.fi
-.sp
-The \f3gl_get_line()\f1 function can be called any number of
-times to read input from the user. The \f3gl\f1 argument
-must have been previously returned by a call to
-\f3new_GetLine()\f1. The \f3prompt\f1 argument should be a
-normal \f3NUL\f1 terminated string, specifying the prompt to
-present the user with. By default prompts are displayed
-literally, but if enabled with the \f3gl_prompt_style()\f1
-function (see later), prompts can contain directives to do
-underlining, switch to and from bold fonts, or turn
-highlighting on and off.
-
-If you want to specify the initial contents of the line, for
-the user to edit, pass the desired string via the
-\f3start_line\f1 argument. You can then specify which
-character of this line the cursor is initially positioned
-over, using the \f3start_pos\f1 argument. This should be -1
-if you want the cursor to follow the last character of the
-start line. If you don't want to preload the line in this
-manner, send \f3start_line\f1 as \f3NULL\f1, and set
-\f3start_pos\f1 to -1.
-
-The \f3gl_get_line()\f1 function returns a pointer to the line entered
-by the user, or \f3NULL\f1 on error or at the end of the input. The
-returned pointer is part of the specified \f3gl\f1 resource object,
-and thus should not be free'd by the caller, or assumed to be
-unchanging from one call to the next. When reading from a user at a
-terminal, there will always be a newline character at the end of the
-returned line. When standard input is being taken from a pipe or a
-file, there will similarly be a newline unless the input line was too
-long to store in the internal buffer. In the latter case you should
-call \f3gl_get_line()\f1 again to read the rest of the line. Note that
-this behavior makes \f3gl_get_line()\f1 similar to \f3fgets()\f1. In
-fact when \f3stdin\f1 isn't connected to a terminal,\f3gl_get_line()\f1
-just calls \f3fgets()\f1.
-
-.SH OPTIONAL PROMPT FORMATTING
-
-Whereas by default the prompt string that you specify is
-displayed literally, without any special interpretation of
-the characters within it, the \f3gl_prompt_style()\f1
-function can be used to enable optional formatting
-directives within the prompt.
-.sp
-.nf
- void gl_prompt_style(GetLine *gl, GlPromptStyle style);
-.fi
-.sp
-The \f3style\f1 argument, which specifies the formatting
-style, can take any of the following values:
-.sp
-.nf
- GL_FORMAT_PROMPT - In this style, the formatting
- directives described below, when
- included in prompt strings, are
- interpreted as follows:
-
- %B - Display subsequent
- characters with a bold
- font.
- %b - Stop displaying characters
- with the bold font.
- %F - Make subsequent characters
- flash.
- %f - Turn off flashing
- characters.
- %U - Underline subsequent
- characters.
- %u - Stop underlining
- characters.
- %P - Switch to a pale (half
- brightness) font.
- %p - Stop using the pale font.
- %S - Highlight subsequent
- characters (also known as
- standout mode).
- %s - Stop highlighting
- characters.
- %V - Turn on reverse video.
- %v - Turn off reverse video.
- %% - Display a single %
- character.
-
- For example, in this mode, a prompt
- string like \f3"%UOK%u$ "\f1 would
- display the prompt \f3"OK$ "\f1,
- but with the \f3OK\f1 part
- underlined.
-
- Note that although a pair of
- characters that starts with a %
- character, but doesn't match any of
- the above directives is displayed
- literally, if a new directive is
- subsequently introduced which does
- match, the displayed prompt will
- change, so it is better to always
- use %% to display a literal %.
-
- Also note that not all terminals
- support all of these text
- attributes, and that some substitute
- a different attribute for missing
- ones.
-
- GL_LITERAL_PROMPT - In this style, the prompt string is
- printed literally. This is the
- default style.
-.fi
-.sp
-
-.SH THE AVAILABLE KEY BINDING FUNCTIONS
-
-The \f3gl_get_line()\f1 function provides a number of functions which
-can be bound to key sequences. The names of these functions, and what
-they do, are given below.
-
-.nf
- user-interrupt - Send a SIGINT signal to the
- parent process.
- abort - Send a SIGABRT signal to the
- parent process.
- suspend - Suspend the parent process.
- stop-output - Pause terminal output.
- start-output - Resume paused terminal output.
- literal-next - Arrange for the next character
- to be treated as a normal
- character. This allows control
- characters to be entered.
- cursor-right - Move the cursor one character
- right.
- cursor-left - Move the cursor one character
- left.
- insert-mode - Toggle between insert mode and
- overwrite mode.
- beginning-of-line - Move the cursor to the
- beginning of the line.
- end-of-line - Move the cursor to the end of
- the line.
- delete-line - Delete the contents of the
- current line.
- kill-line - Delete everything that follows
- the cursor.
- backward-kill-line - Delete all characters between
- the cursor and the start of the
- line.
- forward-word - Move to the end of the word
- which follows the cursor.
- forward-to-word - Move the cursor to the start of
- the word that follows the
- cursor.
- backward-word - Move to the start of the word
- which precedes the cursor.
- goto-column - Move the cursor to the
- 1-relative column in the line
- specified by any preceding
- digit-argument sequences (see
- ENTERING REPEAT COUNTS below).
- find-parenthesis - If the cursor is currently
- over a parenthesis character,
- move it to the matching
- parenthesis character. If not
- over a parenthesis character
- move right to the next close
- parenthesis.
- forward-delete-char - Delete the character under the
- cursor.
- backward-delete-char - Delete the character which
- precedes the cursor.
- list-or-eof - This is intended for binding
- to ^D. When invoked when the
- cursor is within the line it
- displays all possible
- completions then redisplays
- the line unchanged. When
- invoked on an empty line, it
- signals end-of-input (EOF) to
- the caller of gl_get_line().
- del-char-or-list-or-eof - This is intended for binding
- to ^D. When invoked when the
- cursor is within the line it
- invokes forward-delete-char.
- When invoked at the end of the
- line it displays all possible
- completions then redisplays
- the line unchanged. When
- invoked on an empty line, it
- signals end-of-input (EOF) to
- the caller of gl_get_line().
- forward-delete-word - Delete the word which follows
- the cursor.
- backward-delete-word - Delete the word which precedes
- the cursor.
- upcase-word - Convert all of the characters
- of the word which follows the
- cursor, to upper case.
- downcase-word - Convert all of the characters
- of the word which follows the
- cursor, to lower case.
- capitalize-word - Capitalize the word which
- follows the cursor.
- change-case - If the next character is upper
- case, toggle it to lower case
- and vice versa.
- redisplay - Redisplay the line.
- clear-screen - Clear the terminal, then
- redisplay the current line.
- transpose-chars - Swap the character under the
- cursor with the character just
- before the cursor.
- set-mark - Set a mark at the position of
- the cursor.
- exchange-point-and-mark - Move the cursor to the last
- mark that was set, and move
- the mark to where the cursor
- used to be.
- kill-region - Delete the characters that lie
- between the last mark that was
- set, and the cursor.
- copy-region-as-kill - Copy the text between the mark
- and the cursor to the cut
- buffer, without deleting the
- original text.
- yank - Insert the text that was last
- deleted, just before the
- current position of the cursor.
- append-yank - Paste the current contents of
- the cut buffer, after the
- cursor.
- up-history - Recall the next oldest line
- that was entered. Note that
- in vi mode you are left in
- command mode.
- down-history - Recall the next most recent
- line that was entered. If no
- history recall session is
- currently active, the next
- line from a previous recall
- session is recalled. Note that
- in vi mode you are left in
- command mode.
- history-search-backward - Recall the next oldest line
- who's prefix matches the string
- which currently precedes the
- cursor (in vi command-mode the
- character under the cursor is
- also included in the search
- string). Note that in vi mode
- you are left in command mode.
- history-search-forward - Recall the next newest line
- who's prefix matches the string
- which currently precedes the
- cursor (in vi command-mode the
- character under the cursor is
- also included in the search
- string). Note that in vi mode
- you are left in command mode.
- history-re-search-backward -Recall the next oldest line
- who's prefix matches that
- established by the last
- invocation of either
- history-search-forward or
- history-search-backward.
- history-re-search-forward - Recall the next newest line
- who's prefix matches that
- established by the last
- invocation of either
- history-search-forward or
- history-search-backward.
- complete-word - Attempt to complete the
- incomplete word which
- precedes the cursor. Unless
- the host program has customized
- word completion, filename
- completion is attempted. In vi
- commmand mode the character
- under the cursor is also
- included in the word being
- completed, and you are left in
- vi insert mode.
- expand-filename - Within the command line, expand
- wild cards, tilde expressions
- and dollar expressions in the
- filename which immediately
- precedes the cursor. In vi
- commmand mode the character
- under the cursor is also
- included in the filename being
- expanded, and you are left in
- vi insert mode.
- list-glob - List any filenames which match
- the wild-card, tilde and dollar
- expressions in the filename
- which immediately precedes the
- cursor, then redraw the input
- line unchanged.
- list-history - Display the contents of the
- history list for the current
- history group. If a repeat
- count of > 1 is specified,
- only that many of the most
- recent lines are displayed.
- See the "ENTERING REPEAT
- COUNTS" section.
- read-from-file - Temporarily switch to reading
- input from the file who's
- name precedes the cursor.
- read-init-files - Re-read teclarc configuration
- files.
- beginning-of-history - Move to the oldest line in the
- history list. Note that in vi
- mode you are left in command
- mode.
- end-of-history - Move to the newest line in the
- history list (ie. the current
- line). Note that in vi mode
- this leaves you in command
- mode.
- digit-argument - Enter a repeat count for the
- next key-binding function.
- For details, see the ENTERING
- REPEAT COUNTS section.
- newline - Terminate and return the
- current contents of the
- line, after appending a
- newline character. The newline
- character is normally '\\n',
- but will be the first
- character of the key-sequence
- that invoked the newline
- action, if this happens to be
- a printable character. If the
- action was invoked by the
- '\\n' newline character or the
- '\\r' carriage return
- character, the line is
- appended to the history
- buffer.
- repeat-history - Return the line that is being
- edited, then arrange for the
- next most recent entry in the
- history buffer to be recalled
- when \f3gl_get_line()\f1 is
- next called. Repeatedly
- invoking this action causes
- successive historical input
- lines to be re-executed. Note
- that this action is equivalent
- to the 'Operate' action in
- ksh.
- ring-bell - Ring the terminal bell, unless
- the bell has been silenced via
- the \f3nobeep\f1 configuration
- option (see the THE TECLA
- CONFIGURATION FILE section).
- forward-copy-char - Copy the next character into
- the cut buffer (NB. use repeat
- counts to copy more than one).
- backward-copy-char - Copy the previous character
- into the cut buffer.
- forward-copy-word - Copy the next word into the cut
- buffer.
- backward-copy-word - Copy the previous word into the
- cut buffer.
- forward-find-char - Move the cursor to the next
- occurrence of the next
- character that you type.
- backward-find-char - Move the cursor to the last
- occurrence of the next
- character that you type.
- forward-to-char - Move the cursor to the
- character just before the next
- occurrence of the next
- character that the user types.
- backward-to-char - Move the cursor to the
- character just after the last
- occurrence before the cursor
- of the next character that the
- user types.
- repeat-find-char - Repeat the last
- backward-find-char,
- forward-find-char,
- backward-to-char or
- forward-to-char.
- invert-refind-char - Repeat the last
- backward-find-char,
- forward-find-char,
- backward-to-char, or
- forward-to-char in the
- opposite direction.
- delete-to-column - Delete the characters from the
- cursor up to the column that
- is specified by the repeat
- count.
- delete-to-parenthesis - Delete the characters from the
- cursor up to and including
- the matching parenthesis, or
- next close parenthesis.
- forward-delete-find - Delete the characters from the
- cursor up to and including the
- following occurence of the
- next character typed.
- backward-delete-find - Delete the characters from the
- cursor up to and including the
- preceding occurence of the
- next character typed.
- forward-delete-to - Delete the characters from the
- cursor up to, but not
- including, the following
- occurence of the next
- character typed.
- backward-delete-to - Delete the characters from the
- cursor up to, but not
- including, the preceding
- occurence of the next
- character typed.
- delete-refind - Repeat the last *-delete-find
- or *-delete-to action.
- delete-invert-refind - Repeat the last *-delete-find
- or *-delete-to action, in the
- opposite direction.
- copy-to-column - Copy the characters from the
- cursor up to the column that
- is specified by the repeat
- count, into the cut buffer.
- copy-to-parenthesis - Copy the characters from the
- cursor up to and including
- the matching parenthesis, or
- next close parenthesis, into
- the cut buffer.
- forward-copy-find - Copy the characters from the
- cursor up to and including the
- following occurence of the
- next character typed, into the
- cut buffer.
- backward-copy-find - Copy the characters from the
- cursor up to and including the
- preceding occurence of the
- next character typed, into the
- cut buffer.
- forward-copy-to - Copy the characters from the
- cursor up to, but not
- including, the following
- occurence of the next
- character typed, into the cut
- buffer.
- backward-copy-to - Copy the characters from the
- cursor up to, but not
- including, the preceding
- occurence of the next
- character typed, into the cut
- buffer.
- copy-refind - Repeat the last *-copy-find
- or *-copy-to action.
- copy-invert-refind - Repeat the last *-copy-find
- or *-copy-to action, in the
- opposite direction.
- vi-mode - Switch to vi mode from emacs
- mode.
- emacs-mode - Switch to emacs mode from vi
- mode.
- vi-insert - From vi command mode, switch to
- insert mode.
- vi-overwrite - From vi command mode, switch to
- overwrite mode.
- vi-insert-at-bol - From vi command mode, move the
- cursor to the start of the line
- and switch to insert mode.
- vi-append-at-eol - From vi command mode, move the
- cursor to the end of the line
- and switch to append mode.
- vi-append - From vi command mode, move the
- cursor one position right, and
- switch to insert mode.
- vi-replace-char - From vi command mode, replace
- the character under the cursor
- with the the next character
- entered.
- vi-forward-change-char - From vi command mode, delete
- the next character then enter
- insert mode.
- vi-backward-change-char - From vi command mode, delete
- the preceding character then
- enter insert mode.
- vi-forward-change-word - From vi command mode, delete
- the next word then enter
- insert mode.
- vi-backward-change-word - From vi command mode, delete
- the preceding word then
- enter insert mode.
- vi-change-rest-of-line - From vi command mode, delete
- from the cursor to the end of
- the line, then enter insert
- mode.
- vi-change-line - From vi command mode, delete
- the current line, then enter
- insert mode.
- vi-change-to-bol - From vi command mode, delete
- all characters between the
- cursor and the beginning of
- the line, then enter insert
- mode.
- vi-change-to-column - From vi command mode, delete
- the characters from the cursor
- up to the column that is
- specified by the repeat count,
- then enter insert mode.
- vi-change-to-parenthesis - Delete the characters from the
- cursor up to and including
- the matching parenthesis, or
- next close parenthesis, then
- enter vi insert mode.
- vi-forward-change-find - From vi command mode, delete
- the characters from the
- cursor up to and including the
- following occurence of the
- next character typed, then
- enter insert mode.
- vi-backward-change-find - From vi command mode, delete
- the characters from the
- cursor up to and including the
- preceding occurence of the
- next character typed, then
- enter insert mode.
- vi-forward-change-to - From vi command mode, delete
- the characters from the
- cursor up to, but not
- including, the following
- occurence of the next
- character typed, then enter
- insert mode.
- vi-backward-change-to - From vi command mode, delete
- the characters from the
- cursor up to, but not
- including, the preceding
- occurence of the next
- character typed, then enter
- insert mode.
- vi-change-refind - Repeat the last
- vi-*-change-find or
- vi-*-change-to action.
- vi-change-invert-refind - Repeat the last
- vi-*-change-find or
- vi-*-change-to action, in the
- opposite direction.
- vi-undo - In vi mode, undo the last
- editing operation.
- vi-repeat-change - In vi command mode, repeat the
- last command that modified the
- line.
-.fi
-
-.SH DEFAULT KEY BINDINGS IN EMACS MODE
-
-The following default key bindings, which can be overriden by
-the tecla configuration file, are designed to mimic most of
-the bindings of the unix \f3tcsh\f1 shell, when it is in
-emacs editing mode.
-.sp
-This is the default editing mode of the tecla library.
-.sp
-Note that a key sequence like \f3^A\f1 or \f3C-a\f1 means hold the control-key
-down while pressing the letter \f3A\f1, and that where you see \f3\\E\f1 or
-\f3M-\f1 in a binding, this represents the escape key or the Meta modifier
-key. Also note that to \f3gl_get_line()\f1, pressing the escape key before a
-key is equivalent to pressing the meta key at the same time as that key. Thus
-the key sequence \f3M-p\f1 can be typed in two ways, by pressing the escape
-key, followed by pressing \f3p\f1, or by pressing the Meta key at the same time
-as \f3p\f1.
-.sp
-Under UNIX the terminal driver sets a number of special keys for certain
-functions. The tecla library attempts to use the same keybindings to maintain
-consistency. The key sequences shown for the following 6 bindings are thus just
-examples of what they will probably be set to. If you have used the \f3stty\f1
-command to change these keys, then the default bindings should match.
-
-.nf
- ^C -> user-interrupt
- ^\\ -> abort
- ^Z -> suspend
- ^Q -> start-output
- ^S -> stop-output
- ^V -> literal-next
-.fi
-
-The cursor keys are refered to by name, as follows. This is necessary
-because different types of terminals generate different key sequences
-when their cursor keys are pressed.
-
- right -> cursor-right
- left -> cursor-left
- up -> up-history
- down -> down-history
-
-The remaining bindings don't depend on the terminal setttings.
-
-.nf
- ^F -> cursor-right
- ^B -> cursor-left
- M-i -> insert-mode
- ^A -> beginning-of-line
- ^E -> end-of-line
- ^U -> delete-line
- ^K -> kill-line
- M-f -> forward-word
- M-b -> backward-word
- ^D -> del-char-or-list-or-eof
- ^H -> backward-delete-char
- ^? -> backward-delete-char
- M-d -> forward-delete-word
- M-^H -> backward-delete-word
- M-^? -> backward-delete-word
- M-u -> upcase-word
- M-l -> downcase-word
- M-c -> capitalize-word
- ^R -> redisplay
- ^L -> clear-screen
- ^T -> transpose-chars
- ^@ -> set-mark
- ^X^X -> exchange-point-and-mark
- ^W -> kill-region
- M-w -> copy-region-as-kill
- ^Y -> yank
- ^P -> up-history
- ^N -> down-history
- M-p -> history-search-backward
- M-n -> history-search-forward
- ^I -> complete-word
- ^X* -> expand-filename
- ^X^F -> read-from-file
- ^X^R -> read-init-files
- ^Xg -> list-glob
- ^Xh -> list-history
- M-< -> beginning-of-history
- M-> -> end-of-history
- \\n -> newline
- \\r -> newline
- M-o -> repeat-history
- M-^V -> vi-mode
-
- M-0, M-1, ... M-9 -> digit-argument (see below)
-.fi
-
-Note that ^I is what the TAB key generates, and that ^@ can be
-generated not only by pressing the control key and the @ key
-simultaneously, but also by pressing the control key and the space bar
-at the same time.
-
-.SH DEFAULT KEY BINDINGS IN VI MODE
-
-The following default key bindings are designed to mimic the
-vi style of editing as closely as possible. This means that
-very few editing functions are provided in the initial
-character input mode, editing functions instead being
-provided by the vi command mode. Vi command mode is entered
-whenever the escape character is pressed, or whenever a
-key-sequence that starts with a meta character is entered. In
-addition to mimicing vi, libtecla provides bindings for tab
-completion, wild-card expansion of file names, and historical
-line recall.
-.sp
-To learn how to tell the tecla library to use vi mode instead
-of the default emacs editing mode, see the section entitled
-THE TECLA CONFIGURATION FILE.
-.sp
-As already mentioned above in the emacs section, Note that a
-key sequence like \f3^A\f1 or \f3C-a\f1 means hold the
-control-key down while pressing the letter \f3A\f1, and that
-where you see \f3\\E\f1 or \f3M-\f1 in a binding, this
-represents the escape key or the Meta modifier key. Also note
-that to \f3gl_get_line()\f1, pressing the escape key before a
-key is equivalent to pressing the meta key at the same time
-as that key. Thus the key sequence \f3M-p\f1 can be typed in
-two ways, by pressing the escape key, followed by pressing
-\f3p\f1, or by pressing the Meta key at the same time as
-\f3p\f1.
-.sp
-Under UNIX the terminal driver sets a number of special keys
-for certain functions. The tecla library attempts to use the
-same keybindings to maintain consistency, binding them both
-in input mode and in command mode. The key sequences shown
-for the following 6 bindings are thus just examples of what
-they will probably be set to. If you have used the \f3stty\f1
-command to change these keys, then the default bindings
-should match.
-
-.nf
- ^C -> user-interrupt
- ^\\ -> abort
- ^Z -> suspend
- ^Q -> start-output
- ^S -> stop-output
- ^V -> literal-next
- M-^C -> user-interrupt
- M-^\\ -> abort
- M-^Z -> suspend
- M-^Q -> start-output
- M-^S -> stop-output
-.fi
-
-Note that above, most of the bindings are defined twice, once
-as a raw control code like \f3^C\f1 and then a second time as
-a meta character like \f3M-^C\f1. The former is the binding
-for vi input mode, whereas the latter is the binding for vi
-command mode. Once in command mode all key-sequences that the
-user types that they don't explicitly start with an escape or
-a meta key, have their first key secretly converted to a meta
-character before the key sequence is looked up in the key
-binding table. Thus, once in command mode, when you type the
-letter \f3i\f1, for example, the tecla library actually looks
-up the binding for \f3M-i\f1.
-
-The cursor keys are refered to by name, as follows. This is necessary
-because different types of terminals generate different key sequences
-when their cursor keys are pressed.
-
- right -> cursor-right
- left -> cursor-left
- up -> up-history
- down -> down-history
-
-The cursor keys normally generate a keysequence that start
-with an escape character, so beware that using the arrow keys
-will put you into command mode (if you aren't already in
-command mode).
-.sp
-The following are the terminal-independent key bindings for vi input
-mode.
-
-.nf
- ^D -> list-or-eof
- ^G -> list-glob
- ^H -> backward-delete-char
- ^I -> complete-word
- \\r -> newline
- \\n -> newline
- ^L -> clear-screen
- ^N -> down-history
- ^P -> up-history
- ^R -> redisplay
- ^U -> backward-kill-line
- ^W -> backward-delete-word
- ^X* -> expand-filename
- ^X^F -> read-from-file
- ^X^R -> read-init-files
- ^? -> backward-delete-char
-.fi
-
-The following are the key bindings that are defined in vi
-command mode, this being specified by them all starting with
-a meta character. As mentioned above, once in command mode
-the initial meta character is optional. For example, you
-might enter command mode by typing Esc, and then press h
-twice to move the cursor two positions to the left. Both h
-characters get quietly converted to M-h before being compared
-to the key-binding table, the first one because Escape
-followed by a character is always converted to the equivalent
-meta character, and the second because command mode was
-already active.
-
-.nf
- M-\\ -> cursor-right (Meta-space)
- M-$ -> end-of-line
- M-* -> expand-filename
- M-+ -> down-history
- M-- -> up-history
- M-< -> beginning-of-history
- M-> -> end-of-history
- M-^ -> beginning-of-line
- M-; -> repeat-find-char
- M-, -> invert-refind-char
- M-| -> goto-column
- M-~ -> change-case
- M-. -> vi-repeat-change
- M-% -> find-parenthesis
- M-a -> vi-append
- M-A -> vi-append-at-eol
- M-b -> backward-word
- M-B -> backward-word
- M-C -> vi-change-rest-of-line
- M-cb -> vi-backward-change-word
- M-cB -> vi-backward-change-word
- M-cc -> vi-change-line
- M-ce -> vi-forward-change-word
- M-cE -> vi-forward-change-word
- M-cw -> vi-forward-change-word
- M-cW -> vi-forward-change-word
- M-cF -> vi-backward-change-find
- M-cf -> vi-forward-change-find
- M-cT -> vi-backward-change-to
- M-ct -> vi-forward-change-to
- M-c; -> vi-change-refind
- M-c, -> vi-change-invert-refind
- M-ch -> vi-backward-change-char
- M-c^H -> vi-backward-change-char
- M-c^? -> vi-backward-change-char
- M-cl -> vi-forward-change-char
- M-c\\ -> vi-forward-change-char (Meta-c-space)
- M-c^ -> vi-change-to-bol
- M-c0 -> vi-change-to-bol
- M-c$ -> vi-change-rest-of-line
- M-c| -> vi-change-to-column
- M-c% -> vi-change-to-parenthesis
- M-dh -> backward-delete-char
- M-d^H -> backward-delete-char
- M-d^? -> backward-delete-char
- M-dl -> forward-delete-char
- M-d -> forward-delete-char (Meta-d-space)
- M-dd -> delete-line
- M-db -> backward-delete-word
- M-dB -> backward-delete-word
- M-de -> forward-delete-word
- M-dE -> forward-delete-word
- M-dw -> forward-delete-word
- M-dW -> forward-delete-word
- M-dF -> backward-delete-find
- M-df -> forward-delete-find
- M-dT -> backward-delete-to
- M-dt -> forward-delete-to
- M-d; -> delete-refind
- M-d, -> delete-invert-refind
- M-d^ -> backward-kill-line
- M-d0 -> backward-kill-line
- M-d$ -> kill-line
- M-D -> kill-line
- M-d| -> delete-to-column
- M-d% -> delete-to-parenthesis
- M-e -> forward-word
- M-E -> forward-word
- M-f -> forward-find-char
- M-F -> backward-find-char
- M-- -> up-history
- M-h -> cursor-left
- M-H -> beginning-of-history
- M-i -> vi-insert
- M-I -> vi-insert-at-bol
- M-j -> down-history
- M-J -> history-search-forward
- M-k -> up-history
- M-K -> history-search-backward
- M-l -> cursor-right
- M-L -> end-of-history
- M-n -> history-re-search-forward
- M-N -> history-re-search-backward
- M-p -> append-yank
- M-P -> yank
- M-r -> vi-replace-char
- M-R -> vi-overwrite
- M-s -> vi-forward-change-char
- M-S -> vi-change-line
- M-t -> forward-to-char
- M-T -> backward-to-char
- M-u -> vi-undo
- M-w -> forward-to-word
- M-W -> forward-to-word
- M-x -> forward-delete-char
- M-X -> backward-delete-char
- M-yh -> backward-copy-char
- M-y^H -> backward-copy-char
- M-y^? -> backward-copy-char
- M-yl -> forward-copy-char
- M-y\\ -> forward-copy-char (Meta-y-space)
- M-ye -> forward-copy-word
- M-yE -> forward-copy-word
- M-yw -> forward-copy-word
- M-yW -> forward-copy-word
- M-yb -> backward-copy-word
- M-yB -> backward-copy-word
- M-yf -> forward-copy-find
- M-yF -> backward-copy-find
- M-yt -> forward-copy-to
- M-yT -> backward-copy-to
- M-y; -> copy-refind
- M-y, -> copy-invert-refind
- M-y^ -> copy-to-bol
- M-y0 -> copy-to-bol
- M-y$ -> copy-rest-of-line
- M-yy -> copy-line
- M-Y -> copy-line
- M-y| -> copy-to-column
- M-y% -> copy-to-parenthesis
- M-^E -> emacs-mode
- M-^H -> cursor-left
- M-^? -> cursor-left
- M-^L -> clear-screen
- M-^N -> down-history
- M-^P -> up-history
- M-^R -> redisplay
- M-^D -> list-or-eof
- M-^I -> complete-word
- M-\\r -> newline
- M-\\n -> newline
- M-^X^R -> read-init-files
- M-^Xh -> list-history
-
- M-0, M-1, ... M-9 -> digit-argument (see below)
-.fi
-
-Note that ^I is what the TAB key generates.
-
-.SH ENTERING REPEAT COUNTS
-
-Many of the key binding functions described previously, take
-an optional count, typed in before the target
-keysequence. This is interpreted as a repeat count by most
-bindings. A notable exception is the goto-column binding,
-which interprets the count as a column number.
-.sp
-By default you can specify this count argument by pressing
-the meta key while typing in the numeric count. This relies
-on the \f3digit-argument\f1 action being bound to Meta-0,
-Meta-1 etc. Once any one of these bindings has been
-activated, you can optionally take your finger off the meta
-key to type in the rest of the number, since every numeric
-digit thereafter is treated as part of the number, unless it
-is preceded by the \f3literal-next\f1 binding. As soon as a
-non-digit, or literal digit key is pressed the repeat count
-is terminated and either causes the just typed character to
-be added to the line that many times, or causes the next
-key-binding function to be given that argument.
-.sp
-For example, in emacs mode, typing:
-.sp
-.nf
- M-12a
-.fi
-.sp
-causes the letter 'a' to be added to the line 12 times,
-whereas
-.sp
-.nf
- M-4M-c
-.fi
-.sp
-Capitalizes the next 4 words.
-.sp
-In vi command mode the Meta modifier is automatically added
-to all characters typed in, so to enter a count in vi
-command-mode, just involves typing in the number, just as at
-it does in the vi editor itself. So for example, in vi
-command mode, typing:
-.sp
-.nf
- 4w2x
-.fi
-.sp
-moves the cursor four words to the right, then deletes two characters.
-.sp
-You can also bind \f3digit-argument\f1 to other key sequences. If
-these end in a numeric digit, that digit gets appended to the current
-repeat count. If it doesn't end in a numeric digit, a new repeat count
-is started with a value of zero, and can be completed by typing in the
-number, after letting go of the key which triggered the digit-argument
-action.
-
-.SH THE TECLA CONFIGURATION FILE
-
-By default, the first call to \f3gl_get_line()\f1 looks for a file
-called \f3\&.teclarc\f1 in your home directory (ie. \f3~/.teclarc\f1).
-If it finds this file, it reads it, interpreting each line as defining
-a new key binding or an editing configuration option. Since the emacs
-keybindings are installed by default, if you want to use the
-non-default vi editing mode, the most important item to go in this
-file is the following line:
-
-.nf
- edit-mode vi
-.fi
-
-This will re-configure the default bindings for vi-mode. The
-complete set of arguments that this command accepts are:
-.sp
-.nf
- vi - Install key-bindings like those of the vi
- editor.
- emacs - Install key-bindings like those of the emacs
- editor. This is the default.
- none - Use just the native line editing facilities
- provided by the terminal driver.
-.fi
-.sp
-To prevent the terminal bell from being rung, such as when
-an unrecognized control-sequence is typed, place the
-following line in the configuration file:
-
-.nf
- nobeep
-.fi
-
-An example of a key binding line in the configuration file is
-the following.
-
-.nf
- bind M-[2~ insert-mode
-.fi
-
-On many keyboards, the above key sequence is generated when one
-presses the \f3insert\f1 key, so with this keybinding, one can toggle
-between the emacs-mode insert and overwrite modes by hitting one
-key. One could also do it by typing out the above sequence of
-characters one by one. As explained above, the \f3M-\f1 part of this
-sequence can be typed either by pressing the escape key before the
-following key, or by pressing the Meta key at the same time as the
-following key. Thus if you had set the above key binding, and the
-insert key on your keyboard didn't generate the above key sequence,
-you could still type it in either of the following 2 ways.
-
-.nf
- 1. Hit the escape key momentarily, then press '[', then '2', then
- finally '~'.
-
- 2. Press the meta key at the same time as pressing the '[' key,
- then press '2', then '~'.
-.fi
-
-If you set a keybinding for a key-sequence that is already bound to a function,
-the new binding overrides the old one. If in the new binding you omit the name
-of the new function to bind to the key-sequence, the original binding becomes
-undefined.
-.sp
-Starting with versions of libtecla later than 1.3.3 it is now possible
-to bind keysequences that begin with a printable character. Previously
-key-sequences were required to start with a control or meta character.
-.sp
-Note that the special keywords "up", "down", "left" and "right" refer
-to the arrow keys, and are thus not treated as keysequences. So, for
-example, to rebind the up and down arrow keys to use the history
-search mechanism instead of the simple history recall method, you
-could place the following in your configuration file:
-
-.nf
- bind up history-search-backwards
- bind down history-search-backwards
-.fi
-.sp
-To unbind an existing binding, you can do this with the bind command
-by omitting to name any action to rebind the key sequence to. For
-example, by not specifying an action function, the following command
-unbinds the default beginning-of-line action from the ^A key sequence:
-
-.nf
- bind ^A
-.fi
-
-.SH ALTERNATE CONFIGURATION SOURCES
-
-As mentioned above, by default users have the option of configuring
-the behavior of \f3gl_get_line()\f1 via a configuration file called
-\f3\&.teclarc\f1 in their home directories. The fact that all
-applications share this same configuration file is both an advantage
-and a disadvantage. In most cases it is an advantage, since it
-encourages uniformity, and frees the user from having to configure
-each application separately. In some applications, however, this
-single means of configuration is a problem. This is particularly true
-of embedded software, where there's no filesystem to read a
-configuration file from, and also in applications where a radically
-different choice of keybindings is needed to emulate a legacy keyboard
-interface. To cater for such cases, the following function allows the
-application to control where configuration information is read from.
-
-.sp
-.nf
- int gl_configure_getline(GetLine *gl,
- const char *app_string,
- const char *app_file,
- const char *user_file);
-.fi
-.sp
-
-It allows the configuration commands that would normally be read from
-a user's \f3~/.teclarc\f1 file, to be read from any or none of, a
-string, an application specific configuration file, and/or a
-user-specific configuration file. If this function is called before
-the first call to \f3gl_get_line()\f1, the default behavior of
-reading \f3~/.teclarc\f1 on the first call to \f3gl_get_line()\f1 is
-disabled, so all configuration must be achieved using the
-configuration sources specified with this function.
-
-If \f3app_string != NULL\f1, then it is interpreted as a string
-containing one or more configuration commands, separated from each
-other in the string by embedded newline characters. If \f3app_file !=
-NULL\f1 then it is interpreted as the full pathname of an
-application-specific configuration file. If \f3user_file != NULL\f1
-then it is interpreted as the full pathname of a user-specific
-configuration file, such as \f3~/.teclarc\f1. For example, in the
-following call,
-
- gl_configure_getline(gl, "edit-mode vi \\n nobeep",
- "/usr/share/myapp/teclarc",
- "~/.teclarc");
-
-the \f3app_string\f1 argument causes the calling application to start
-in vi edit-mode, instead of the default emacs mode, and turns off the
-use of the terminal bell by the library. It then attempts to read
-system-wide configuration commands from an optional file called
-\f3/usr/share/myapp/teclarc\f1, then finally reads user-specific
-configuration commands from an optional \f3\&.teclarc\f1 file in the
-user's home directory. Note that the arguments are listed in ascending
-order of priority, with the contents of \f3app_string\f1 being
-potentially overriden by commands in \f3app_file\f1, and commands in
-\f3app_file\f1 potentially being overriden by commands in
-\f3user_file\f1.
-.sp
-You can call this function as many times as needed, the results being
-cumulative, but note that copies of any filenames specified via the
-\f3app_file\f1 and \f3user_file\f1 arguments are recorded internally
-for subsequent use by the \f3read-init-files\f1 key-binding function,
-so if you plan to call this function multiple times, be sure that the
-last call specifies the filenames that you want re-read when the user
-requests that the configuration files be re-read.
-
-.SH FILENAME AND TILDE COMPLETION
-
-With the default key bindings, pressing the TAB key (aka. ^I) results
-in \f3gl_get_line()\f1 attempting to complete the incomplete filename
-that precedes the cursor. \f3gl_get_line()\f1 searches backwards from
-the cursor, looking for the start of the filename, stopping when it
-hits either a space or the start of the line. If more than one file
-has the specified prefix, \f3gl_get_line()\f1 completes the filename
-up to the point at which the ambiguous matches start to differ, then
-lists the possible matches.
-.sp
-In addition to literally written filenames, \f3gl_get_line()\f1 can
-complete files that start with \f3~/\f1 and \f3~user/\f1 expressions
-and that contain \f3$envvar\f1 expressions. In particular, if you hit
-TAB within an incomplete \f3~user\f1, expression, \f3gl_get_line()\f1
-will attempt to complete the username, listing any ambiguous matches.
-.sp
-The completion binding is implemented using the
-\f3cpl_word_completions()\f1 function, which is also available
-separately to users of this library. See the
-\f3cpl_word_completions(3)\f1 man page for more details.
-
-.SH CUSTOMIZED WORD COMPLETION
-
-If in your application, you would like to have TAB completion complete
-other things in addition to or instead of filenames, you can arrange
-this by registering an alternate completion callback function, via a
-call to the \f3gl_customize_completion()\f1 function.
-.sp
-.nf
- int gl_customize_completion(GetLine *gl, void *data,
- CplMatchFn *match_fn);
-.fi
-.sp
-The \f3data\f1 argument provides a way for your application to pass
-arbitrary, application-specific information to the callback
-function. This is passed to the callback every time that it is
-called. It might for example, point to the symbol table from which
-possible completions are to be sought. The \f3match_fn\f1 argument
-specifies the callback function to be called. The \f3CplMatchFn\f1
-function type is defined in \f3libtecla.h\f1, as is a
-\f3CPL_MATCH_FN()\f1 macro that you can use to declare and prototype
-callback functions. The declaration and responsibilities of callback
-functions are described in depth in the \f1cpl_complete_word(3)\f1 man
-page.
-.sp
-In brief, the callback function is responsible for looking backwards
-in the input line, back from the point at which the user pressed TAB,
-to find the start of the word being completed. It then must lookup
-possible completions of this word, and record them one by one in the
-\f3WordCompletion\f1 object that is passed to it as an argument, by
-calling the \f3cpl_add_completion()\f1 function. If the callback
-function wishes to provide filename completion in addition to its own
-specific completions, it has the option of itself calling the builtin
-file-name completion callback. This also, is documented in the
-\f3cpl_complete_word(3)\f1 man page.
-.sp
-Note that if you would like \f3gl_get_line()\f1 to return the current
-input line when a successful completion is been made, you can arrange
-this when you call \f3cpl_add_completion()\f1, by making the last
-character of the continuation suffix a newline character. If you do
-this, the input line will be updated to display the completion,
-together with any contiuation suffix up to the newline character, then
-\f3gl_get_line()\f1 will return this input line.
-
-.SH FILENAME EXPANSION
-
-With the default key bindings, pressing \f3^X*\f1 causes
-\f3gl_get_line()\f1 to expand the filename that precedes the cursor,
-replacing \f3~/\f1 and \f3~user/\f1 expressions with the corresponding
-home directories, and replacing \f3$envvar\f1 expressions with the
-value of the specified environment variable, then if there are any
-wildcards, replacing the so far expanded filename with a
-space-separated list of the files which match the wild cards.
-.sp
-The expansion binding is implemented using the \f3ef_expand_file()\f1 function.
-See the \f3ef_expand_file(3)\f1 man page for more details.
-
-.SH RECALLING PREVIOUSLY TYPED LINES
-
-Every time that a new line is entered by the user, it is appended to a
-list of historical input lines maintained within the GetLine resource
-object. You can traverse up and down this list using the up and down
-arrow keys. Alternatively, you can do the same with the \f3^P\f1, and
-\f3^N\f1 keys, and in vi command mode you can alternatively use the k
-and j characters. Thus pressing up-arrow once, replaces the current
-input line with the previously entered line. Pressing up-arrow again,
-replaces this with the line that was entered before it, etc.. Having
-gone back one or more lines into the history list, one can return to
-newer lines by pressing down-arrow one or more times. If you do this
-sufficient times, you will return to the original line that you were
-entering when you first hit up-arrow.
-.sp
-Note that in vi mode, all of the history recall functions switch the
-library into command mode.
-.sp
-In emacs mode the \f3M-p\f1 and \f3M-n\f1 keys work just like the
-\f3^P\f1 and \f3^N\f1 keys, except that they skip all but those
-historical lines which share the prefix that precedes the cursor. In
-vi command mode the upper case \f3K\f1 and \f3J\f1 characters do the
-same thing, except that the string that they search for includes the
-character under the cursor as well as what precedes it.
-.sp
-Thus for example, suppose that you were in emacs mode, and you had
-just entered the following list of commands in the order shown:
-
-.nf
- ls ~/tecla/
- cd ~/tecla
- ls -l getline.c
- emacs ~/tecla/getline.c
-.fi
-
-If you next typed:
-
-.nf
- ls
-.fi
-
-and then hit \f3M-p\f1, then rather than returning the previously
-typed emacs line, which doesn't start with "ls", \f3gl_get_line()\f1
-would recall the "ls -l getline.c" line. Pressing \f3M-p\f1 again
-would recall the "ls ~/tecla/" line.
-
-.SH HISTORY FILES
-
-To save the contents of the history buffer before quitting your
-application, and subsequently restore them when you next start the
-application, the following functions are provided.
-
-.sp
-.nf
- int gl_save_history(GetLine *gl, const char *filename,
- const char *comment, int max_lines);
- int gl_load_history(GetLine *gl, const char *filename,
- const char *comment);
-.fi
-.sp
-
-The \f3filename\f1 argument specifies the name to give the history
-file when saving, or the name of an existing history file, when
-loading. This may contain home-directory and environment variable
-expressions, such as "~/.myapp_history" or "$HOME/.myapp_history".
-.sp
-Along with each history line, extra information about it, such as when
-it was entered by the user, and what its nesting level is, is recorded
-as a comment preceding the line in the history file. Writing this as a
-comment allows the history file to double as a command file, just in
-case you wish to replay a whole session using it. Since comment
-prefixes differ in different languages, the \f3comment\f1 argument is
-provided for specifying the comment prefix. For example, if your
-application were a unix shell, such as the bourne shell, you would
-specify "#" here. Whatever you choose for the comment character, you
-must specify the same prefix to \f3gl_load_history()\f1 that you used
-when you called \f3gl_save_history()\f1 to write the history file.
-.sp
-The \f3max_lines\f1 must be either -1 to specify that all lines in the
-history list be saved, or a positive number specifying a ceiling on
-how many of the most recent lines should be saved.
-.sp
-Both fuctions return non-zero on error, after writing an error message
-to stderr. Note that \f3gl_load_history()\f1 does not consider the
-non-existence of a file to be an error.
-
-.SH MULTIPLE HISTORY LISTS
-
-If your application uses a single \f3GetLine\f1 object for entering
-many different types of input lines, you may wish \f3gl_get_line()\f1
-to distinguish the different types of lines in the history list, and
-only recall lines that match the current type of line. To support this
-requirement, \f3gl_get_line()\f1 marks lines being recorded in the
-history list with an integer identifier chosen by the application.
-Initially this identifier is set to \f10\f3 by \f3new_GetLine()\f1,
-but it can be changed subsequently by calling
-\f3gl_group_history()\f1.
-
-.sp
-.nf
- int gl_group_history(GetLine *gl, unsigned id);
-.fi
-.sp
-
-The integer identifier \f3id\f1 can be any number chosen by the
-application, but note that \f3gl_save_history()\f1 and
-\f3gl_load_history()\f1 preserve the association between identifiers
-and historical input lines between program invokations, so you should
-choose fixed identifiers for the different types of input line used by
-your application.
-.sp
-Whenever \f3gl_get_line()\f1 appends a new input line to the history
-list, the current history identifier is recorded with it, and when it
-is asked to recall a historical input line, it only recalls lines that
-are marked with the current identifier.
-
-.SH DISPLAYING HISTORY
-
-The history list can be displayed by calling \f3gl_show_history()\f1.
-
-.sp
-.nf
- int gl_show_history(GetLine *gl, FILE *fp,
- const char *fmt,
- int all_groups,
- int max_lines);
-.fi
-.sp
-
-This displays the current contents of the history list to the stdio
-output stream \f3fp\f1. If the \f3max_lines\f1 argument is greater
-than or equal to zero, then no more than this number of the most
-recent lines will be displayed. If the \f3all_groups\f1 argument is
-non-zero, lines from all history groups are displayed. Otherwise just
-those of the currently selected history group are displayed. The
-format string argument, \f3fmt\f1, determines how the line is
-displayed. This can contain arbitrary characters which are written
-verbatim, interleaved with any of the following format directives:
-
-.nf
- %D - The date on which the line was originally
- entered, formatted like 2001-11-20.
- %T - The time of day when the line was entered,
- formatted like 23:59:59.
- %N - The sequential entry number of the line in
- the history buffer.
- %G - The number of the history group which the
- line belongs to.
- %% - A literal % character.
- %H - The history line itself.
-.fi
-
-Thus a format string like \f3"%D %T %H\n"\f1 would output something like:
-
-.nf
- 2001-11-20 10:23:34 Hello world
-.fi
-
-Note the inclusion of an explicit newline character in the format
-string.
-
-.SH LOOKING UP HISTORY
-
-The \f3gl_lookup_history()\f1 function allows the calling application
-to look up lines in the history list.
-
-.sp
-.nf
- typedef struct {
- const char *line; /* The requested historical */
- /* line. */
- unsigned group; /* The history group to which */
- /* the line belongs. */
- time_t timestamp; /* The date and time at which */
- /* the line was originally */
- /* entered. */
- } GlHistoryLine;
-
- int gl_lookup_history(GetLine *gl, unsigned long id,
- GlHistoryLine *hline);
-.fi
-.sp
-
-The \f3id\f1 argument indicates which line to look up, where the first
-line that was entered in the history list after \f3new_GetLine()\f1
-was called, is denoted by 0, and subsequently entered lines are
-denoted with successively higher numbers. Note that the range of lines
-currently preserved in the history list can be queried by calling the
-\f3gl_range_of_history()\f1 function, described later. If the
-requested line is in the history list, the details of the line are
-recorded in the variable pointed to by the \f3hline\f1 argument, and
-\f31\f1 is returned. Otherwise \f30\f1 is returned, and the variable
-pointed to by \f3hline\f1 is left unchanged.
-.sp
-Beware that the string returned in \f3hline->line\f1 is part of the
-history buffer, so it must not be modified by the caller, and will be
-recycled on the next call to any function that takes \f3gl\f1 as its
-argument. Therefore you should make a private copy of this string if
-you need to keep it around.
-
-.SH MISCELLANEOUS HISTORY CONFIGURATION
-
-If you wish to change the size of the history buffer that was
-originally specified in the call to \f3new_GetLine()\f1, you can do so
-with the \f3gl_resize_history()\f1 function.
-
-.sp
-.nf
- int gl_resize_history(GetLine *gl, size_t histlen);
-.fi
-.sp
-
-The \f3histlen\f1 argument specifies the new size in bytes, and if you
-specify this as 0, the buffer will be deleted.
-.sp
-As mentioned in the discussion of \f3new_GetLine()\f1, the number of
-lines that can be stored in the history buffer, depends on the lengths
-of the individual lines. For example, a 1000 byte buffer could equally
-store 10 lines of average length 100 bytes, or 2 lines of average
-length 50 bytes. Although the buffer is never expanded when new lines
-are added, a list of pointers into the buffer does get expanded when
-needed to accomodate the number of lines currently stored in the
-buffer. To place an upper limit on the number of lines in the buffer,
-and thus a ceiling on the amount of memory used in this list, you can
-call the \f3gl_limit_history()\f1 function.
-
-.sp
-.nf
- void gl_limit_history(GetLine *gl, int max_lines);
-.fi
-.sp
-
-The \f3max_lines\f1 should either be a positive number \f3>= 0\f1,
-specifying an upper limit on the number of lines in the buffer, or be
-\f3-1\f1 to cancel any previously specified limit. When a limit is in
-effect, only the \f3max_lines\f1 most recently appended lines are kept
-in the buffer. Older lines are discarded.
-.sp
-To discard lines from the history buffer, use the
-\f3gl_clear_history()\f1 function.
-.sp
-.nf
- void gl_clear_history(GetLine *gl, int all_groups);
-.fi
-.sp
-The \f3all_groups\f1 argument tells the function whether to delete
-just the lines associated with the current history group (see
-\f3gl_group_history()\f1), or all historical lines in the buffer.
-.sp
-The \f3gl_toggle_history()\f1 function allows you to toggle history on
-and off without losing the current contents of the history list.
-
-.sp
-.nf
- void gl_toggle_history(GetLine *gl, int enable);
-.fi
-.sp
-
-Setting the \f3enable\f1 argument to 0 turns off the history
-mechanism, and setting it to 1 turns it back on. When history is
-turned off, no new lines will be added to the history list, and
-history lookup key-bindings will act as though there is nothing in the
-history buffer.
-
-.SH QUERYING HISTORY INFORMATION
-
-The configured state of the history list can be queried with the
-\f3gl_history_state()\f1 function.
-
-.sp
-.nf
- typedef struct {
- int enabled; /* True if history is enabled */
- unsigned group; /* The current history group */
- int max_lines; /* The current upper limit on the */
- /* number of lines in the history */
- /* list, or -1 if unlimited. */
- } GlHistoryState;
-
- void gl_state_of_history(GetLine *gl,
- GlHistoryState *state);
-.fi
-.sp
-On return, the status information is recorded in the variable pointed
-to by the \f3state\f1 argument.
-.sp
-The \f3gl_range_of_history()\f1 function returns the number and
-range of lines in the history list.
-
-.sp
-.nf
-typedef struct {
- unsigned long oldest; /* The sequential entry number */
- /* of the oldest line in the */
- /* history list. */
- unsigned long newest; /* The sequential entry number */
- /* of the newest line in the */
- /* history list. */
- int nlines; /* The number of lines in the */
- /* history list. */
-} GlHistoryRange;
-
-void gl_range_of_history(GetLine *gl, GlHistoryRange *range);
-.fi
-.sp
-The return values are recorded in the variable pointed to by the
-\f3range\f1 argument. If the \f3nlines\f1 member of this structure is
-greater than zero, then the \f3oldest\f1 and \f3newest\f1 members
-report the range of lines in the list, and \f3newest=oldest+nlines-1\f1.
-Otherwise they are both zero.
-.sp
-The \f3gl_size_of_history()\f1 function returns the total size of the
-history buffer and the amount of the buffer that is currently
-occupied.
-.sp
-.nf
- typedef struct {
- size_t size; /* The size of the history buffer */
- /* (bytes). */
- size_t used; /* The number of bytes of the */
- /* history buffer that are */
- /* currently occupied. */
- } GlHistorySize;
-
- void gl_size_of_history(GetLine *gl, GlHistorySize *size);
-.fi
-.sp
-On return, the size information is recorded in the variable pointed to
-by the \f3size\f1 argument.
-
-.SH CHANGING TERMINALS
-
-The \f3new_GetLine()\f1 constructor function assumes that input is to
-be read from \f3stdin\f1, and output written to \f3stdout\f1. The
-following function allows you to switch to different input and output
-streams.
-.sp
-.nf
- int gl_change_terminal(GetLine *gl, FILE *input_fp,
- FILE *output_fp, const char *term);
-.fi
-.sp
-The \f3gl\f1 argument is the object that was returned by
-\f3new_GetLine()\f1. The \f3input_fp\f1 argument specifies the stream
-to read from, and \f3output_fp\f1 specifies the stream to be written
-to. Only if both of these refer to a terminal, will interactive
-terminal input be enabled. Otherwise \f3gl_get_line()\f1 will simply
-call \f3fgets()\f1 to read command input. If both streams refer to a
-terminal, then they must refer to the same terminal, and the type of
-this terminal must be specified via the \f3term\f1 argument. The value
-of the \f3term\f1 argument is looked up in the terminal information
-database (terminfo or termcap), in order to determine which special
-control sequences are needed to control various aspects of the
-terminal. \f3new_GetLine()\f1 for example, passes the return value of
-\f3getenv("TERM")\f1 in this argument. Note that if one or both of
-\f3input_fp\f1 and \f3output_fp\f1 don't refer to a terminal, then it
-is legal to pass \f3NULL\f1 instead of a terminal type.
-.sp
-Note that if you want to pass file descriptors to
-\f3gl_change_terminal()\f1, you can do this by creating stdio stream
-wrappers using the POSIX \f3fdopen()\f1 function.
-
-.SH EXTERNAL EVENT HANDLING
-
-While \f3gl_get_line()\f1 is waiting for keyboard input from the user,
-you can ask it to also watch for activity on arbitrary file
-descriptors, such as network sockets, pipes etc, and have it call
-functions of your choosing when activity is seen. This works on any
-system that has the \f3select()\f1 system call, which is most, if not
-all flavors of unix. Registering a file descriptor to be watched by
-\f3gl_get_line()\f1 involves calling the \f3gl_watch_fd()\f1 function.
-
-.sp
-.nf
- int gl_watch_fd(GetLine *gl, int fd, GlFdEvent event,
- GlFdEventFn *callback, void *data);
-.fi
-.sp
-
-If this returns non-zero, then it means that either your arguments are
-invalid, or that this facility isn't supported on the host system.
-.sp
-The \f3fd\f1 argument is the file descriptor to be watched. The
-\f3event\f1 argument specifies what type of activity is of interest,
-chosen from the following enumerated values:
-
-.sp
-.nf
- GLFD_READ - Watch for the arrival of data to be read.
- GLFD_WRITE - Watch for the ability to write to the file
- descriptor without blocking.
- GLFD_URGENT - Watch for the arrival of urgent
- out-of-band data on the file descriptor.
-.fi
-.sp
-
-The \f3callback\f1 argument is the function to call when the selected
-activity is seen. It should be defined with the following macro, which
-is defined in libtecla.h.
-
-.sp
-.nf
- #define GL_FD_EVENT_FN(fn) GlFdStatus (fn)(GetLine *gl, \\
- void *data, int fd, \\
- GlFdEvent event)
-.fi
-.sp
-The \f3data\f1 argument of the \f3gl_watch_fd()\f1 function is passed
-to the callback function for its own use, and can point to anything
-you like, including \f3NULL\f1. The file descriptor and the event
-argument are also passed to the callback function, and this
-potentially allows the same callback function to be registered to more
-than one type of event and/or more than one file descriptor. The
-return value of the callback function should be one of the following
-values.
-
-.sp
-.nf
- GLFD_ABORT - Tell gl_get_line() to abort with an
- error (errno won't be set, so set it
- appropriately yourself if you need it).
- GLFD_REFRESH - Redraw the input line then continue
- waiting for input. Return this if
- your callback wrote to the terminal.
- GLFD_CONTINUE - Continue to wait for input, without
- redrawing the line.
-.fi
-.sp
-Note that before calling the callback, \f3gl_get_line()\f1 blocks most
-signals, and leaves its own signal handlers installed, so if you need
-to catch a particular signal you will need to both temporarily install
-your own signal handler, and unblock the signal. Be sure to re-block
-the signal (if it was originally blocked) and reinstate the original
-signal handler, if any, before returning.
-.sp
-Your callback shouldn't try to read from the terminal, which is left
-in raw mode as far as input is concerned. You can however write to the
-terminal as usual, since features like conversion of newline to
-carriage-return/linefeed are re-enabled while the callback is
-running. If your callback function does write to the terminal, be sure
-to output a newline first, and when your callback returns, tell
-\f3gl_get_line()\f1 that the input line needs to be redrawn, by
-returning the \f3GLFD_REFRESH\f1 status code.
-.sp
-To remove a callback function that you previously registered for a
-given file descriptor and event, simply call \f3gl_watch_fd()\f1 with
-the same file descriptor and \f3event\f1 arguments, but with a
-\f3callback\f1 argument of \f30\f1. The \f3data\f1 argument is ignored
-in this case.
-
-.SH SIGNAL HANDLING DEFAULTS
-
-By default, the \f3gl_get_line()\f1 function intercepts a
-number of signals. This is particularly important for
-signals which would by default terminate the process, since
-the terminal needs to be restored to a usable state before
-this happens. In this section, the signals that are trapped
-by default, and how gl_get_line() responds to them, is
-described. Changing these defaults is the topic of the
-following section.
-.sp
-When the following subset of signals are caught, \f3gl_get_line()\f1
-first restores the terminal settings and signal handling to how they
-were before \f3gl_get_line()\f1 was called, resends the signal, to
-allow the calling application's signal handlers to handle it, then if
-the process still exists, \f3gl_get_line()\f1 returns \f3NULL\f1 and
-sets \f3errno\f1 as specified below.
-
-.sp
-.nf
- SIGINT - This signal is generated both by the keyboard
- interrupt key (usually ^C), and the keyboard
- break key.
-
- errno=EINTR
-
- SIGHUP - This signal is generated when the controlling
- terminal exits.
-
- errno=ENOTTY
-
- SIGPIPE - This signal is generated when a program attempts
- to write to a pipe who's remote end isn't being
- read by any process. This can happen for example
- if you have called \f3gl_change_terminal()\f1 to
- redirect output to a pipe hidden under a pseudo
- terminal.
-
- errno=EPIPE
-
- SIGQUIT - This signal is generated by the keyboard quit
- key (usually ^\\).
-
- errno=EINTR
-
- SIGABRT - This signal is generated by the standard C,
- abort() function. By default it both
- terminates the process and generates a core
- dump.
-
- errno=EINTR
-
- SIGTERM - This is the default signal that the UN*X
- kill command sends to processes.
-
- errno=EINTR
-.fi
-.sp
-Note that in the case of all of the above signals, POSIX mandates that
-by default the process is terminated, with the addition of a core dump
-in the case of the \f3SIGQUIT\f1 signal. In other words, if the
-calling application doesn't override the default handler by supplying
-its own signal handler, receipt of the corresponding signal will
-terminate the application before \f3gl_get_line()\f1 returns.
-.sp
-If gl_get_line() aborts with errno set to EINTR, you can find out what
-signal caused it to abort, by calling the following function.
-.sp
-.nf
- int gl_last_signal(const GetLine *gl);
-.fi
-.sp
-This returns the numeric code (eg. \f3SIGINT\f1) of the last signal
-that was received during the most recent call to \f3gl_get_line()\f1,
-or \f3-1\f1 if no signals were received.
-.sp
-On systems that support it, when a SIGWINCH (window change) signal is
-received, \f3gl_get_line()\f1 queries the terminal to find out its new
-size, redraws the current input line to accomodate the new size, then
-returns to waiting for keyboard input from the user. Unlike other
-signals, this signal isn't resent to the application.
-.sp
-Finally, the following signals cause \f3gl_get_line()\f1 to first
-restore the terminal and signal environment to that which prevailed
-before \f3gl_get_line()\f1 was called, then resend the signal to the
-application. If the process still exists after the signal has been
-delivered, then \f3gl_get_line()\f1 then re-establishes its own signal
-handlers, switches the terminal back to raw mode, redisplays the input
-line, and goes back to awaiting terminal input from the user.
-.sp
-.nf
- SIGCONT - This signal is generated when a suspended
- process is resumed.
-
- SIGPWR - This signal is generated when a power failure
- occurs (presumably when the system is on a
- UPS).
-
- SIGALRM - This signal is generated when a timer
- expires.
-
- SIGUSR1 - An application specific signal.
-
- SIGUSR2 - Another application specific signal.
-
- SIGVTALRM - This signal is generated when a virtual
- timer expires (see man setitimer(2)).
-
- SIGXCPU - This signal is generated when a process
- exceeds its soft CPU time limit.
-
- SIGTSTP - This signal is generated by the terminal
- suspend key, which is usually ^Z, or the
- delayed terminal suspend key, which is
- usually ^Y.
-
- SIGTTIN - This signal is generated if the program
- attempts to read from the terminal while the
- program is running in the background.
-
- SIGTTOU - This signal is generated if the program
- attempts to write to the terminal while the
- program is running in the background.
-.fi
-.sp
-
-Obviously not all of the above signals are supported on all systems,
-so code to support them is conditionally compiled into the tecla
-library.
-.sp
-Note that if \f3SIGKILL\f1, which by definition can't be caught, or
-any of the hardware generated exception signals, such as
-\f3SIGSEGV\f1, \f3SIGBUS\f1 and \f3SIGFPE\f1, are received and
-unhandled while \f3gl_get_line()\f1 has the terminal in raw mode, the
-program will be terminated without the terminal having been restored
-to a usable state. In practice, job-control shells usually reset the
-terminal settings when a process relinquishes the controlling
-terminal, so this is only a problem with older shells.
-
-.SH CUSTOMIZED SIGNAL HANDLING
-
-The previous section listed the signals that
-\f3gl_get_line()\f1 traps by default, and described how it
-responds to them. This section describes how to both add and
-remove signals from the list of trapped signals, and how to
-specify how \f3gl_get_line()\f1 should respond to a given
-signal.
-.sp
-If you don't need \f3gl_get_line()\f1 to do anything in
-response to a signal that it normally traps, you can tell to
-\f3gl_get_line()\f1 to ignore that signal by calling
-\f3gl_ignore_signal()\f1.
-.sp
-.nf
- int gl_ignore_signal(GetLine *gl, int signo);
-.fi
-.sp
-The \f3signo\f1 argument is the number of the signal
-(eg. \f3SIGINT\f1) that you want to have ignored. If the
-specified signal isn't currently one of those being trapped,
-this function does nothing.
-.sp
-The \f3gl_trap_signal()\f1 function allows you to either add
-a new signal to the list that \f3gl_get_line()\f1 traps, or
-modify how it responds to a signal that it already traps.
-.sp
-.nf
- int gl_trap_signal(GetLine *gl, int signo, unsigned flags,
- GlAfterSignal after, int errno_value);
-.fi
-.sp
-The \f3signo\f1 argument is the number of the signal that
-you wish to have trapped. The \f3flags\f1 argument is a set
-of flags which determine the environment in which the
-application's signal handler is invoked, the \f3after\f1
-argument tells \f3gl_get_line()\f1 what to do after the
-application's signal handler returns, and \f3errno_value\f1
-tells \f3gl_get_line()\f1 what to set \f3errno\f1 to if told
-to abort.
-.sp
-The \f3flags\f1 argument is a bitwise OR of zero or more of
-the following enumerators:
-.sp
-.nf
- GLS_RESTORE_SIG - Restore the caller's signal
- environment while handling the
- signal.
-
- GLS_RESTORE_TTY - Restore the caller's terminal settings
- while handling the signal.
-
- GLS_RESTORE_LINE - Move the cursor to the start of the
- line following the input line before
- invoking the application's signal
- handler.
-
- GLS_REDRAW_LINE - Redraw the input line when the
- application's signal handler returns.
-
- GLS_UNBLOCK_SIG - Normally, if the calling program has
- a signal blocked (man sigprocmask),
- gl_get_line() does not trap that
- signal. This flag tells gl_get_line()
- to trap the signal and unblock it for
- the duration of the call to
- gl_get_line().
-
- GLS_DONT_FORWARD - If this flag is included, the signal
- will not be forwarded to the signal
- handler of the calling program.
-.fi
-.sp
-Two commonly useful flag combinations are also enumerated as
-follows:
-.sp
-.nf
- GLS_RESTORE_ENV = GLS_RESTORE_SIG | GLS_RESTORE_TTY |
- GLS_REDRAW_LINE
-
- GLS_SUSPEND_INPUT = GLS_RESTORE_ENV | GLS_RESTORE_LINE
-.fi
-.sp
-
-If your signal handler, or the default system signal
-handler for this signal, if you haven't overriden it, never
-either writes to the terminal, nor suspends or terminates
-the calling program, then you can safely set the \f3flags\f1
-argument to \f30\f1.
-.sp
-If your signal handler always writes to the terminal, reads
-from it, or suspends or terminates the program, you should
-specify the \f3flags\f1 argument as \f3GL_SUSPEND_INPUT\f1,
-so that:
-.sp
-.nf
-1. The cursor doesn't get left in the middle of the input
- line.
-2. So that the user can type in input and have it echoed.
-3. So that you don't need to end each output line with
- \f3\\r\\n\f1, instead of just \f3\\n\f1.
-.fi
-.sp
-The \f3GL_RESTORE_ENV\f1 combination is the same as
-\f3GL_SUSPEND_INPUT\f1, except that it doesn't move the
-cursor, and if your signal handler doesn't read or write
-anything to the terminal, the user won't see any visible
-indication that a signal was caught. This can be useful if
-you have a signal handler that only occasionally writes to
-the terminal, where using \f3GL_SUSPEND_LINE\f1 would cause
-the input line to be unnecessarily duplicated when nothing
-had been written to the terminal. Such a signal handler,
-when it does write to the terminal, should be sure to start
-a new line at the start of its first write, by writing a
-'\\n' character, and should be sure to leave the cursor on a
-new line before returning. If the signal arrives while the
-user is entering a line that only occupies a signal terminal
-line, or if the cursor is on the last terminal line of a
-longer input line, this will have the same effect as
-\f3GL_SUSPEND_INPUT\f1. Otherwise it will start writing on a
-line that already contains part of the displayed input line.
-This doesn't do any harm, but it looks a bit ugly, which is
-why the \f3GL_SUSPEND_INPUT\f1 combination is better if you
-know that you are always going to be writting to the
-terminal.
-.sp
-The \f3after\f1 argument, which determines what
-\f3gl_get_line()\f1 does after the application's signal
-handler returns (if it returns), can take any one of the
-following values:
-.sp
-.nf
- GLS_RETURN - Return the completed input line, just as
- though the user had pressed the return
- key.
-
- GLS_ABORT - Cause gl_get_line() to return \f3NULL\f1.
-
- GLS_CONTINUE - Resume command line editing.
-.fi
-.sp
-The \f3errno_value\f1 argument is intended to be combined
-with the \f3GLS_ABORT\f1 option, telling \f3gl_get_line()\f1
-what to set the standard \f3errno\f1 variable to before
-returning \f3NULL\f1 to the calling program. It can also,
-however, be used with the \f3GL_RETURN\f1 option, in case
-you wish to have a way to distinguish between an input line
-that was entered using the return key, and one that was
-entered by the receipt of a signal.
-
-.SH THE TERMINAL SIZE
-
-On most systems the combination of the \f3TIOCGWINSZ\f1 ioctl and the
-\f3SIGWINCH\f1 signal is used to maintain an accurate idea of the
-terminal size. The terminal size is newly queried every time that
-\f3gl_get_line()\f1 is called and whenever a \f3SIGWINCH\f1 signal is
-received.
-.sp
-On the few systems where this mechanism isn't available, at
-startup \f3new_GetLine()\f1 first looks for the \f3LINES\f1
-and \f3COLUMNS\f1 environment variables. If these aren't
-found, or they contain unusable values, then if a terminal
-information database like terminfo or termcap is available,
-the default size of the terminal is looked up in this
-database. If this too fails to provide the terminal size, a
-default size of 80 columns by 24 lines is used. If this
-default isn't appropriate for your system,
-\f3gl_terminal_size()\f1 can be used to supply a different
-fallback.
-.sp
-The \f3gl_terminal_size()\f1 function allows you to query
-the current size of the terminal, and install an alternate
-fallback size for cases where the size isn't available.
-Beware that the terminal size won't be available if reading
-from a pipe or a file, so the default values can be
-important even on systems that do support ways of finding
-out the terminal size.
-.sp
-.nf
- typedef struct {
- int nline; /* The terminal has nline lines */
- int ncolumn; /* The terminal has ncolumn columns */
- } GlTerminalSize;
-
- GlTerminalSize gl_terminal_size(GetLine *gl,
- int def_ncolumn,
- int def_nline);
-.fi
-.sp
-This function first updates \f3gl_get_line()\f1's idea of
-the terminal size, then records its findings in the return
-value.
-.sp
-The \f3def_ncolumn\f1 and \f3def_nline\f1 specify the
-default number of terminal columns and lines to use if the
-terminal size can't be determined.
-
-.SH HIDING WHAT YOU TYPE
-
-When entering sensitive information, such as passwords, it is best not
-to have the text that you are entering echoed on the terminal.
-Furthermore, such text should not be recorded in the history list,
-since somebody finding your terminal unattended could then recall it,
-or somebody snooping through your directories could see it in your
-history file. With this in mind, the \f3gl_echo_mode()\f1
-function allows you to toggle on and off the display and archival of
-any text that is subsequently entered in calls to \f3gl_get_line()\f1.
-
-.sp
-.nf
- int gl_echo_mode(GetLine *gl, int enable);
-.fi
-.sp
-
-The \f3enable\f1 argument specifies whether entered text
-should be visible or not. If it is \f30\f1, then
-subsequently entered lines will not be visible on the
-terminal, and will not be recorded in the history list. If
-it is \f31\f1, then subsequent input lines will be displayed
-as they are entered, and provided that history hasn't been
-turned off via a call to \f3gl_toggle_history()\f1, then
-they will also be archived in the history list. Finally, if
-the \f3enable\f1 argument is \f3-1\f1, then the echoing mode
-is left unchanged, which allows you to non-destructively
-query the current setting via the return value. In all
-cases, the return value of the function is \f30\f1 if
-echoing was disabled before the function was called, and
-\f31\f1 if it was enabled.
-.sp
-When echoing is turned off, note that although tab
-completion will invisibly complete your prefix as far as
-possible, ambiguous completions will not be displayed.
-
-.SH CALLBACK FUNCTION FACILITIES
-
-Unless otherwise stated, callback functions, such as tab
-completion callbacks and event callbacks should not call any
-functions in this module. The following functions, however,
-are designed specifically to be used by callback functions.
-.sp
-Calling the \f3gl_replace_prompt()\f1 function from a
-callback tells \f3gl_get_line() to display a different
-prompt when the callback returns. It has no effect if called
-when \f3gl_get_line()\f1 is not being called.
-.sp
-.nf
- void gl_replace_prompt(GetLine *gl, const char *prompt);
-.fi
-.sp
-
-.SH INTERNATIONAL CHARACTER SETS
-
-Since libtecla version 1.4.0, \f3gl_get_line()\f1 has been 8-bit
-clean. This means that all 8-bit characters that are printable in the
-user's current locale are now displayed verbatim and included in the
-returned input line. Assuming that the calling program correctly
-contains a call like the following,
-.sp
-.nf
- setlocale(LC_CTYPE, "");
-.fi
-.sp
-then the current locale is determined by the first of the environment
-variables \f3LC_CTYPE\f1, \f3LC_ALL\f1, and \f3LANG\f1, that is found
-to contain a valid locale name. If none of these variables are
-defined, or the program neglects to call setlocale, then the default
-\f3C\f1 locale is used, which is US 7-bit ASCII. On most unix-like
-platforms, you can get a list of valid locales by typing the command:
-.sp
-.nf
- locale -a
-.fi
-.sp
-at the shell prompt.
-.sp
-.SS "Meta keys and locales"
-
-Beware that in most locales other than the default C locale, meta
-characters become printable, and they are then no longer considered to
-match \f3M-c\f1 style key bindings. This allows international
-characters to be entered with the compose key without unexpectedly
-triggering meta key bindings. You can still invoke meta bindings,
-since there are actually two ways to do this. For example the binding
-\f3M-c\f1 can also be invoked by pressing the escape key momentarily,
-then pressing the \f3c\f1 key, and this will work regardless of
-locale. Moreover, many modern terminal emulators, such as gnome's
-gnome-terminal's and KDE's konsole terminals, already generate escape
-pairs like this when you use the meta key, rather than a real meta
-character, and other emulators usually have a way to request this
-behavior, so you can continue to use the meta key on most systems.
-.sp
-For example, although xterm terminal emulators generate real 8-bit
-meta characters by default when you use the meta key, they can be
-configured to output the equivalent escape pair by setting their
-\f3EightBitInput\f1 X resource to \f3False\f1. You can either do this
-by placing a line like the following in your \f3~/.Xdefaults\f1 file,
-.sp
-.nf
- XTerm*EightBitInput: False
-.sp
-.fi
-or by starting an xterm with an \f3-xrm '*EightBitInput: False'\f1
-command-line argument. In recent versions of xterm you can toggle this
-feature on and off with the \f3"Meta Sends Escape"\f1 option in the
-menu that is displayed when you press the left mouse button and the
-control key within an xterm window. In CDE, dtterms can be similarly
-coerced to generate escape pairs in place of meta characters, by
-setting the \f3Dtterm*KshMode\f1 resource to \f3True\f1.
-.sp
-.SS "Entering international characters"
-
-If you don't have a keyboard that generates all of the international
-characters that you need, there is usually a compose key that will
-allow you to enter special characters, or a way to create one. For
-example, under X windows on unix-like systems, if your keyboard
-doesn't have a compose key, you can designate a redundant key to serve
-this purpose with the xmodmap command. For example, on many PC
-keyboards there is a microsoft-windows key, which is otherwise useless
-under Linux. On my PC the \f3xev\f1 program reports that pressing this
-key generates keycode 115, so to turn this key into a compose key, I
-do the following:
-.sp
-.nf
- xmodmap -e 'keycode 115 = Multi_key'
-.fi
-.sp
-I can then enter an i with a umlaut over it by typing this key,
-followed by \f3"\f1, followed by i.
-
-.SH THREAD SAFETY
-
-In a multi-threaded program, you should use the libtecla_r.a version
-of the library. This uses reentrant versions of system functions,
-where available. Unfortunately neither terminfo nor termcap were
-designed to be reentrant, so you can't safely use the functions of the
-getline module in multiple threads (you can use the separate
-file-expansion and word-completion modules in multiple threads, see
-the corresponding man pages for details). However due to the use of
-POSIX reentrant functions for looking up home directories etc, it is
-safe to use this module from a single thread of a multi-threaded
-program, provided that your other threads don't use any termcap or
-terminfo functions.
-
-.SH FILES
-.nf
-libtecla.a - The tecla library
-libtecla.h - The tecla header file.
-~/.teclarc - The personal tecla customization file.
-.fi
-
-.SH SEE ALSO
-libtecla(3), ef_expand_file(3), cpl_complete_word(3), pca_lookup_file(3)
-
-.SH AUTHOR
-Martin Shepherd (mcs@astro.caltech.edu)
diff --git a/libtecla-1.4.1/man3/gl_group_history.3 b/libtecla-1.4.1/man3/gl_group_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_group_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_ignore_signal.3 b/libtecla-1.4.1/man3/gl_ignore_signal.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_ignore_signal.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_last_signal.3 b/libtecla-1.4.1/man3/gl_last_signal.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_last_signal.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_limit_history.3 b/libtecla-1.4.1/man3/gl_limit_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_limit_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_load_history.3 b/libtecla-1.4.1/man3/gl_load_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_load_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_lookup_history.3 b/libtecla-1.4.1/man3/gl_lookup_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_lookup_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_prompt_style.3 b/libtecla-1.4.1/man3/gl_prompt_style.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_prompt_style.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_range_of_history.3 b/libtecla-1.4.1/man3/gl_range_of_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_range_of_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_resize_history.3 b/libtecla-1.4.1/man3/gl_resize_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_resize_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_save_history.3 b/libtecla-1.4.1/man3/gl_save_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_save_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_show_history.3 b/libtecla-1.4.1/man3/gl_show_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_show_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_size_of_history.3 b/libtecla-1.4.1/man3/gl_size_of_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_size_of_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_state_of_history.3 b/libtecla-1.4.1/man3/gl_state_of_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_state_of_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_terminal_size.3 b/libtecla-1.4.1/man3/gl_terminal_size.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_terminal_size.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_toggle_history.3 b/libtecla-1.4.1/man3/gl_toggle_history.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_toggle_history.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_trap_signal.3 b/libtecla-1.4.1/man3/gl_trap_signal.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_trap_signal.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/gl_watch_fd.3 b/libtecla-1.4.1/man3/gl_watch_fd.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/gl_watch_fd.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/libtecla.3 b/libtecla-1.4.1/man3/libtecla.3
deleted file mode 100644
index 611eb57..0000000
--- a/libtecla-1.4.1/man3/libtecla.3
+++ /dev/null
@@ -1,160 +0,0 @@
-.\" Copyright (C) 2000, 2001 by Martin C. Shepherd
-.\"
-.\" All rights reserved.
-.\"
-.\" Permission is hereby granted, free of charge, to any person obtaining a
-.\" copy of this software and associated documentation files (the
-.\" "Software"), to deal in the Software without restriction, including
-.\" without limitation the rights to use, copy, modify, merge, publish,
-.\" distribute, and/or sell copies of the Software, and to permit persons
-.\" to whom the Software is furnished to do so, provided that the above
-.\" copyright notice(s) and this permission notice appear in all copies of
-.\" the Software and that both the above copyright notice(s) and this
-.\" permission notice appear in supporting documentation.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.\"
-.\" Except as contained in this notice, the name of a copyright holder
-.\" shall not be used in advertising or otherwise to promote the sale, use
-.\" or other dealings in this Software without prior written authorization
-.\" of the copyright holder.
-.TH libtecla 3
-.SH NAME
-libtecla - An interactive command-line input library.
-.SH SYNOPSIS
-.nf
-gcc ... -ltecla -lcurses
-.fi
-
-.SH DESCRIPTION
-
-The \f3tecla\f1 library provides programs with interactive command
-line editing facilities, similar to those of the unix \f3tcsh\f1
-shell. In addition to simple command-line editing, it supports recall
-of previously entered command lines, TAB completion of file names or
-other tokens, and in-line wild-card expansion of filenames. The
-internal functions which perform file-name completion and wild-card
-expansion are also available externally for optional use by the
-calling program.
-.sp
-The various parts of the library are documented in the following man
-pages:
-
-.nf
- gl_get_line(3) - The interactive line-input module.
- cpl_complete_word(3) - The word completion module.
- ef_expand_file(3) - The filename expansion module.
- pca_lookup_file(3) - A directory-list based filename
- lookup and completion module.
-.fi
-
-In addition there is one optional application distributed
-with the library:
-
-.nf
- enhance(3) - Add command-line editing to third
- party applications.
-.fi
-
-.SH THREAD SAFETY
-
-If the library is compiled with -D_POSIX_C_SOURCE=199506L, reentrant
-versions of as many functions as possible are used. This includes
-using getpwuid_r() and getpwnam_r() instead of getpwuid() and
-getpwnam() when looking up the home directories of specific users in
-the password file (for ~user/ expansion), and readdir_r() instead of
-readdir() for reading directory entries when doing filename
-completion. The reentrant version of the library is usually called
-libtecla_r.a instead of libtecla.a, so if only the latter is
-available, it probably isn't the correct version to link with
-threaded programs.
-
-Reentrant functions for iterating through the password file aren't
-available, so when the library is compiled to be reentrant, TAB
-completion of incomplete usernames in \f3~username/\f1 expressions is
-disabled. This doesn't disable expansion of complete \f3~username\f1
-expressions, which can be done reentrantly, or expansion of the parts
-of filenames that follow them, so this doesn't remove much
-functionality.
-
-The terminfo functions setupterm(), tigetstr(), tigetnum() and tputs()
-also aren't reentrant, but very few programs will want to interact
-with multiple terminals, so this shouldn't prevent this library from
-being used in threaded programs.
-
-.SH LIBRARY VERSION NUMBER
-
-The version number of the library can be queried using the following
-function.
-.sp
-.nf
- void libtecla_version(int *major, int *minor, int *micro);
-.fi
-.sp
-
-On return, this function records the three components of the libtecla
-version number in \f3*major\f1, \f3*minor\f1, \f3*micro\f1. The formal
-meaning of the three components is as follows.
-
-.sp
-.nf
- major - Incrementing this number implies that a change has
- been made to the library's public interface, which
- makes it binary incompatible with programs that
- were linked with previous shared versions of the
- tecla library.
-
- minor - This number is incremented by one whenever
- additional functionality, such as new functions or
- modules, are added to the library.
-
- micro - This is incremented whenever modifications to the
- library are made which make no changes to the
- public interface, but which fix bugs and/or improve
- the behind-the-scenes implementation.
-.fi
-.sp
-
-.SH TRIVIA
-
-In Spanish, a "tecla" is the key of a keyboard. Since this library
-centers on keyboard input, and given that I wrote much of the library
-while working in Chile, this seemed like a suitable name.
-
-.SH FILES
-.nf
-libtecla.a - The tecla library.
-libtecla.h - The tecla header file.
-~/.teclarc - The tecla personal customization file.
-.fi
-
-.SH SEE ALSO
-gl_get_line(3), ef_expand_file(3), cpl_complete_word(3),
-pca_lookup_file(3), enhance(3)
-
-.SH AUTHOR
-Martin Shepherd (mcs@astro.caltech.edu)
-
-.SH ACKNOWLEDGMENTS
-
-.nf
-Markus Gyger - Lots of assistance, including help with
- shared libraries, configuration information,
- particularly for Solaris; modifications to
- support C++ compilers, improvements for ksh
- users, faster cursor motion, output
- buffering, and changes to make gl_get_line()
- 8-bit clean.
-Mike MacFaden - Suggestions, feedback and testing that led
- to many of the major new functions that were
- added in version 1.4.0.
-Tim Eliseo - Many vi-mode bindings and fixes.
-.fi
diff --git a/libtecla-1.4.1/man3/libtecla_version.3 b/libtecla-1.4.1/man3/libtecla_version.3
deleted file mode 100644
index 2c9c2c7..0000000
--- a/libtecla-1.4.1/man3/libtecla_version.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/libtecla.3
diff --git a/libtecla-1.4.1/man3/new_CplFileConf.3 b/libtecla-1.4.1/man3/new_CplFileConf.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/new_CplFileConf.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/new_ExpandFile.3 b/libtecla-1.4.1/man3/new_ExpandFile.3
deleted file mode 100644
index f4299df..0000000
--- a/libtecla-1.4.1/man3/new_ExpandFile.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/ef_expand_file.3
diff --git a/libtecla-1.4.1/man3/new_GetLine.3 b/libtecla-1.4.1/man3/new_GetLine.3
deleted file mode 100644
index 6bd3d1f..0000000
--- a/libtecla-1.4.1/man3/new_GetLine.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/gl_get_line.3
diff --git a/libtecla-1.4.1/man3/new_PathCache.3 b/libtecla-1.4.1/man3/new_PathCache.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/new_PathCache.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/new_PcaPathConf.3 b/libtecla-1.4.1/man3/new_PcaPathConf.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/new_PcaPathConf.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/new_WordCompletion.3 b/libtecla-1.4.1/man3/new_WordCompletion.3
deleted file mode 100644
index 36c83a3..0000000
--- a/libtecla-1.4.1/man3/new_WordCompletion.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/cpl_complete_word.3
diff --git a/libtecla-1.4.1/man3/pca_last_error.3 b/libtecla-1.4.1/man3/pca_last_error.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/pca_last_error.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/pca_lookup_file.3 b/libtecla-1.4.1/man3/pca_lookup_file.3
deleted file mode 100644
index 131394a..0000000
--- a/libtecla-1.4.1/man3/pca_lookup_file.3
+++ /dev/null
@@ -1,361 +0,0 @@
-.\" Copyright (C) 2001 by Martin C. Shepherd
-.\"
-.\" All rights reserved.
-.\"
-.\" Permission is hereby granted, free of charge, to any person obtaining a
-.\" copy of this software and associated documentation files (the
-.\" "Software"), to deal in the Software without restriction, including
-.\" without limitation the rights to use, copy, modify, merge, publish,
-.\" distribute, and/or sell copies of the Software, and to permit persons
-.\" to whom the Software is furnished to do so, provided that the above
-.\" copyright notice(s) and this permission notice appear in all copies of
-.\" the Software and that both the above copyright notice(s) and this
-.\" permission notice appear in supporting documentation.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
-.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
-.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
-.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.\"
-.\" Except as contained in this notice, the name of a copyright holder
-.\" shall not be used in advertising or otherwise to promote the sale, use
-.\" or other dealings in this Software without prior written authorization
-.\" of the copyright holder.
-.TH pca_lookup_file 3
-.SH NAME
-pca_lookup_file, del_PathCache, del_PcaPathConf, new_PathCache, new_PcaPathConf, pca_last_error, pca_path_completions, pca_scan_path, pca_set_check_fn, ppc_file_start, ppc_literal_escapes \- lookup a file in a list of directories
-.SH SYNOPSIS
-.nf
-#include <libtecla.h>
-
-PathCache *new_PathCache(void);
-
-PathCache *del_PathCache(PathCache *pc);
-
-int pca_scan_path(PathCache *pc, const char *path);
-
-void pca_set_check_fn(PathCache *pc, CplCheckFn *check_fn,
- void *data);
-
-char *pca_lookup_file(PathCache *pc, const char *name,
- int name_len, int literal);
-
-const char *pca_last_error(PathCache *pc);
-
-CPL_MATCH_FN(pca_path_completions);
-
-.fi
-
-.SH DESCRIPTION
-
-The \f3PathCache\f1 object is part of the tecla library (see the
-libtecla(3) man page).
-.sp
-\f3PathCache\f1 objects allow an application to search for files in
-any colon separated list of directories, such as the unix execution
-PATH environment variable. Files in absolute directories are cached in
-a \f3PathCache\f1 object, whereas relative directories are scanned as
-needed. Using a \f3PathCache\f1 object, you can look up the full
-pathname of a simple filename, or you can obtain a list of the
-possible completions of a given filename prefix. By default all files
-in the list of directories are targets for lookup and completion, but
-a versatile mechanism is provided for only selecting specific types of
-files. The obvious application of this facility is to provide
-Tab-completion and lookup of executable commands in the unix PATH, so
-an optional callback which rejects all but executable files, is
-provided.
-.sp
-.SH AN EXAMPLE
-
-Under UNIX, the following example program looks up and displays the
-full pathnames of each of the command names on the command line.
-.sp
-.nf
- #include <stdio.h>
- #include <stdlib.h>
- #include <libtecla.h>
-
- int main(int argc, char *argv[])
- {
- int i;
- /*
- * Create a cache for executable files.
- */
- PathCache *pc = new_PathCache();
- if(!pc)
- exit(1);
- /*
- * Scan the user's PATH for executables.
- */
- if(pca_scan_path(pc, getenv("PATH"))) {
- fprintf(stderr, "%s\\n", pca_last_error(pc));
- exit(1);
- }
- /*
- * Arrange to only report executable files.
- */
- pca_set_check_fn(pc, cpl_check_exe, NULL);
- /*
- * Lookup and display the full pathname of each of the
- * commands listed on the command line.
- */
- for(i=1; i<argc; i++) {
- char *cmd = pca_lookup_file(pc, argv[i], -1, 0);
- printf("The full pathname of '%s' is %s\\n", argv[i],
- cmd ? cmd : "unknown");
- }
- pc = del_PathCache(pc); /* Clean up */
- return 0;
- }
-.fi
-.sp
-The following is an example of what this does on my laptop under
-linux:
-.sp
-.nf
- $ ./example less more blob
- The full pathname of 'less' is /usr/bin/less
- The full pathname of 'more' is /bin/more
- The full pathname of 'blob' is unknown
- $
-.fi
-.sp
-.SH FUNCTION DESCRIPTIONS
-
-In order to use the facilities of this module, you must first allocate
-a \f3PathCache\f1 object by calling the \f3new_PathCache()\f1
-constructor function.
-.sp
-.nf
- PathCache *new_PathCache(void)
-.fi
-.sp
-This function creates the resources needed to cache and lookup files
-in a list of directories. It returns \f3NULL\f1 on error.
-.sp
-.SH POPULATING THE CACHE
-Once you have created a cache, it needs to be populated with files.
-To do this, call the \f3pca_scan_path()\f1 function.
-.sp
-.nf
- int pca_scan_path(PathCache *pc, const char *path);
-.fi
-.sp
-Whenever this function is called, it discards the current contents of
-the cache, then scans the list of directories specified in its
-\f3path\f1 argument for files. The \f3path\f1 argument must be a
-string containing a colon-separated list of directories, such as
-\f3"/usr/bin:/home/mcs/bin:."\f1. This can include directories
-specified by absolute pathnames such as \f3"/usr/bin"\f1, as well as
-sub-directories specified by relative pathnames such as \f3"."\f1 or
-\f3"bin"\f1. Files in the absolute directories are immediately cached
-in the specified \f3PathCache\f1 object, whereas sub-directories,
-whose identities obviously change whenever the current working
-directory is changed, are marked to be scanned on the fly whenever a
-file is looked up.
-.sp
-On success this function return \f30\f1. On error it returns \f31\f1,
-and a description of the error can be obtained by calling
-\f3pca_last_error(pc)\f1.
-.sp
-.SH LOOKING UP FILES
-
-Once the cache has been populated with files, you can look up the full
-pathname of a file, simply by specifying its filename to
-\f3pca_lookup_file()\f1.
-.sp
-.nf
- char *pca_lookup_file(PathCache *pc, const char *name,
- int name_len, int literal);
-.fi
-.sp
-To make it possible to pass this function a filename which is actually
-part of a longer string, the \f3name_len\f1 argument can be used to
-specify the length of the filename at the start of the \f3name[]\f1
-argument. If you pass \f3-1\f1 for this length, the length of the
-string will be determined with \f3strlen()\f1. If the \f3name[]\f1
-string might contain backslashes that escape the special meanings of
-spaces and tabs within the filename, give the \f3literal\f1 argument,
-the value \f30\f1. Otherwise, if backslashes should be treated as
-normal characters, pass \f31\f1 for the value of the \f3literal\f1
-argument.
-
-.SH FILENAME COMPLETION
-
-Looking up the potential completions of a filename-prefix in the
-filename cache, is achieved by passing the provided
-\f3pca_path_completions()\f1 callback function to the
-\f3cpl_complete_word()\f1 function (see the \f3cpl_complete_word(3)\f1
-man page).
-.sp
-.nf
- CPL_MATCH_FN(pca_path_completions);
-.fi
-.sp
-This callback requires that its \f3data\f1 argument be a pointer to a
-\f3PcaPathConf\f1 object. Configuration objects of this type are
-allocated by calling \f3new_PcaPathConf()\f1.
-.sp
-.nf
- PcaPathConf *new_PcaPathConf(PathCache *pc);
-.fi
-.sp
-This function returns an object initialized with default configuration
-parameters, which determine how the \f3cpl_path_completions()\f1
-callback function behaves. The functions which allow you to
-individually change these parameters are discussed below.
-.sp
-By default, the \f3pca_path_completions()\f1 callback function
-searches backwards for the start of the filename being completed,
-looking for the first un-escaped space or the start of the input
-line. If you wish to specify a different location, call
-\f3ppc_file_start()\f1 with the index at which the filename starts in
-the input line. Passing \f3start_index=-1\f1 re-enables the default
-behavior.
-.sp
-.nf
- void ppc_file_start(PcaPathConf *ppc, int start_index);
-.fi
-.sp
-By default, when \f3pca_path_completions()\f1 looks at a filename in
-the input line, each lone backslash in the input line is interpreted
-as being a special character which removes any special significance of
-the character which follows it, such as a space which should be taken
-as part of the filename rather than delimiting the start of the
-filename. These backslashes are thus ignored while looking for
-completions, and subsequently added before spaces, tabs and literal
-backslashes in the list of completions. To have unescaped backslashes
-treated as normal characters, call \f3ppc_literal_escapes()\f1 with a
-non-zero value in its \f3literal\f1 argument.
-.sp
-.nf
- void ppc_literal_escapes(PcaPathConf *ppc, int literal);
-.fi
-.sp
-When you have finished with a \f3PcaPathConf\f1 variable, you can pass
-it to the \f3del_PcaPathConf()\f1 destructor function to reclaim its
-memory.
-.sp
-.nf
- PcaPathConf *del_PcaPathConf(PcaPathConf *ppc);
-.fi
-.sp
-
-.SH BEING SELECTIVE
-If you are only interested in certain types or files, such as, for
-example, executable files, or files whose names end in a particular
-suffix, you can arrange for the file completion and lookup functions
-to be selective in the filenames that they return. This is done by
-registering a callback function with your \f3PathCache\f1
-object. Thereafter, whenever a filename is found which either matches
-a filename being looked up, or matches a prefix which is being
-completed, your callback function will be called with the full
-pathname of the file, plus any application-specific data that you
-provide, and if the callback returns \f31\f1 the filename will be
-reported as a match, and if it returns \f30\f1, it will be ignored.
-Suitable callback functions and their prototypes should be declared
-with the following macro. The \f3CplCheckFn\f1 \f3typedef\f1 is also
-provided in case you wish to declare pointers to such functions.
-.sp
-.nf
- #define CPL_CHECK_FN(fn) int (fn)(void *data, \\
- const char *pathname)
- typedef CPL_CHECK_FN(CplCheckFn);
-.fi
-.sp
-Registering one of these functions involves calling the
-\f3pca_set_check_fn()\f1 function. In addition to the callback
-function, passed via the \f3check_fn\f1 argument, you can pass a
-pointer to anything via the \f3data\f1 argument. This pointer will be
-passed on to your callback function, via its own \f3data\f1 argument,
-whenever it is called, so this provides a way to pass appplication
-specific data to your callback.
-.sp
-.nf
- void pca_set_check_fn(PathCache *pc, CplCheckFn *check_fn,
- void *data);
-.fi
-.sp
-Note that these callbacks are passed the full pathname of each
-matching file, so the decision about whether a file is of interest can
-be based on any property of the file, not just its filename. As an
-example, the provided \f3cpl_check_exe()\f1 callback function looks at
-the executable permissions of the file and the permissions of its
-parent directories, and only returns \f31\f1 if the user has execute
-permission to the file. This callback function can thus be used to
-lookup or complete command names found in the directories listed in
-the user's \f3PATH\f1 environment variable. The example program given
-earlier in this man page provides a demonstration of this.
-.sp
-Beware that if somebody tries to complete an empty string, your
-callback will get called once for every file in the cache, which could
-number in the thousands. If your callback does anything time
-consuming, this could result in an unacceptable delay for the user, so
-callbacks should be kept short.
-.sp
-To improve performance, whenever one of these callbacks is called, the
-choice that it makes is cached, and the next time the corresponding
-file is looked up, instead of calling the callback again, the cached
-record of whether it was accepted or rejected is used. Thus if
-somebody tries to complete an empty string, and hits tab a second time
-when nothing appears to happen, there will only be one long delay,
-since the second pass will operate entirely from the cached
-dispositions of the files. These cached dipositions are discarded
-whenever \f3pca_scan_path()\f1 is called, and whenever
-\f3pca_set_check_fn()\f1 is called with changed callback function or
-data arguments.
-
-.SH ERROR HANDLING
-
-If \f3pca_scan_path()\f1 reports that an error occurred by returning
-\f31\f1, you can obtain a terse description of the error by calling
-\f3pca_last_error(pc)\f1. This returns an internal string containing
-an error message.
-.sp
-.nf
- const char *pca_last_error(PathCache *pc);
-.fi
-.sp
-
-.SH CLEANING UP
-
-Once you have finished using a \f3PathCache\f1 object, you can reclaim
-its resources by passing it to the \f3del_PathCache()\f1 destructor
-function. This takes a pointer to one of these objects, and always
-returns \f3NULL\f1.
-.sp
-.nf
- PathCache *del_PathCache(PathCache *pc);
-.fi
-.sp
-.SH THREAD SAFETY
-
-In multi-threaded programs, you should use the \f3libtecla_r.a\f1
-version of the library. This uses POSIX reentrant functions where
-available (hence the \f3_r\f1 suffix), and disables features that rely
-on non-reentrant system functions. In the case of this module, the
-only disabled feature is username completion in \f3~username/\f1
-expressions, in \f3cpl_path_completions()\f1.
-
-Using the \f3libtecla_r.a\f1 version of the library, it is safe to use
-the facilities of this module in multiple threads, provided that each
-thread uses a separately allocated \f3PathCache\f1 object. In other
-words, if two threads want to do path searching, they should each call
-\f3new_PathCache()\f1 to allocate their own caches.
-
-.SH FILES
-.nf
-libtecla.a - The tecla library
-libtecla.h - The tecla header file.
-.fi
-
-.SH SEE ALSO
-libtecla(3), gl_get_line(3), ef_expand_file(3), cpl_complete_word(3)
-
-.SH AUTHOR
-Martin Shepherd (mcs@astro.caltech.edu)
diff --git a/libtecla-1.4.1/man3/pca_path_completions.3 b/libtecla-1.4.1/man3/pca_path_completions.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/pca_path_completions.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/pca_scan_path.3 b/libtecla-1.4.1/man3/pca_scan_path.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/pca_scan_path.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/pca_set_check_fn.3 b/libtecla-1.4.1/man3/pca_set_check_fn.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/pca_set_check_fn.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/ppc_file_start.3 b/libtecla-1.4.1/man3/ppc_file_start.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/ppc_file_start.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/man3/ppc_literal_escapes.3 b/libtecla-1.4.1/man3/ppc_literal_escapes.3
deleted file mode 100644
index e5a136e..0000000
--- a/libtecla-1.4.1/man3/ppc_literal_escapes.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pca_lookup_file.3
diff --git a/libtecla-1.4.1/pathutil.c b/libtecla-1.4.1/pathutil.c
deleted file mode 100644
index 015504b..0000000
--- a/libtecla-1.4.1/pathutil.c
+++ /dev/null
@@ -1,532 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <ctype.h>
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "pathutil.h"
-
-/*.......................................................................
- * Create a new PathName object.
- *
- * Output:
- * return PathName * The new object, or NULL on error.
- */
-PathName *_new_PathName(void)
-{
- PathName *path; /* The object to be returned */
-/*
- * Allocate the container.
- */
- path = (PathName *)malloc(sizeof(PathName));
- if(!path) {
- fprintf(stderr, "_new_PathName: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to _del_PathName().
- */
- path->name = NULL;
- path->dim = 0;
-/*
- * Figure out the maximum length of an expanded pathname.
- */
- path->dim = _pu_pathname_dim();
- if(path->dim == 0)
- return _del_PathName(path);
-/*
- * Allocate the pathname buffer.
- */
- path->name = (char *)malloc(path->dim * sizeof(char));
- if(!path->name) {
- fprintf(stderr,
- "_new_PathName: Insufficient memory to allocate pathname buffer.\n");
- return _del_PathName(path);
- };
- return path;
-}
-
-/*.......................................................................
- * Delete a PathName object.
- *
- * Input:
- * path PathName * The object to be deleted.
- * Output:
- * return PathName * The deleted object (always NULL).
- */
-PathName *_del_PathName(PathName *path)
-{
- if(path) {
- if(path->name)
- free(path->name);
- free(path);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Return the pathname to a zero-length string.
- *
- * Input:
- * path PathName * The pathname container.
- * Output:
- * return char * The cleared pathname buffer, or NULL on error.
- */
-char *_pn_clear_path(PathName *path)
-{
-/*
- * Check the arguments.
- */
- if(!path) {
- fprintf(stderr, "_pn_clear_path: NULL argument.\n");
- return NULL;
- };
- path->name[0] = '\0';
- return path->name;
-}
-
-/*.......................................................................
- * Append a string to a pathname, increasing the size of the pathname
- * buffer if needed.
- *
- * Input:
- * path PathName * The pathname container.
- * string const char * The string to be appended to the pathname.
- * Note that regardless of the slen argument,
- * this should be a '\0' terminated string.
- * slen int The maximum number of characters to append
- * from string[], or -1 to append the whole
- * string.
- * remove_escapes int If true, remove the backslashes that escape
- * spaces, tabs, backslashes etc..
- * Output:
- * return char * The pathname string path->name[], which may
- * have been reallocated, or NULL if there was
- * insufficient memory to extend the pathname.
- */
-char *_pn_append_to_path(PathName *path, const char *string, int slen,
- int remove_escapes)
-{
- int pathlen; /* The length of the pathname */
- int i;
-/*
- * Check the arguments.
- */
- if(!path || !string) {
- fprintf(stderr, "_pn_append_to_path: NULL argument(s).\n");
- return NULL;
- };
-/*
- * Get the current length of the pathname.
- */
- pathlen = strlen(path->name);
-/*
- * How many characters should be appended?
- */
- if(slen < 0 || slen > strlen(string))
- slen = strlen(string);
-/*
- * Resize the pathname if needed.
- */
- if(!_pn_resize_path(path, pathlen + slen))
- return NULL;
-/*
- * Append the string to the output pathname, removing any escape
- * characters found therein.
- */
- if(remove_escapes) {
- int is_escape = 0;
- for(i=0; i<slen; i++) {
- is_escape = !is_escape && string[i] == '\\';
- if(!is_escape)
- path->name[pathlen++] = string[i];
- };
-/*
- * Terminate the string.
- */
- path->name[pathlen] = '\0';
- } else {
-/*
- * Append the string directly to the pathname.
- */
- memcpy(path->name + pathlen, string, slen);
- path->name[pathlen + slen] = '\0';
- };
- return path->name;
-}
-
-/*.......................................................................
- * Prepend a string to a pathname, increasing the size of the pathname
- * buffer if needed.
- *
- * Input:
- * path PathName * The pathname container.
- * string const char * The string to be prepended to the pathname.
- * Note that regardless of the slen argument,
- * this should be a '\0' terminated string.
- * slen int The maximum number of characters to prepend
- * from string[], or -1 to append the whole
- * string.
- * remove_escapes int If true, remove the backslashes that escape
- * spaces, tabs, backslashes etc..
- * Output:
- * return char * The pathname string path->name[], which may
- * have been reallocated, or NULL if there was
- * insufficient memory to extend the pathname.
- */
-char *_pn_prepend_to_path(PathName *path, const char *string, int slen,
- int remove_escapes)
-{
- int pathlen; /* The length of the pathname */
- int shift; /* The number of characters to shift the suffix by */
- int i,j;
-/*
- * Check the arguments.
- */
- if(!path || !string) {
- fprintf(stderr, "_pn_prepend_to_path: NULL argument(s).\n");
- return NULL;
- };
-/*
- * Get the current length of the pathname.
- */
- pathlen = strlen(path->name);
-/*
- * How many characters should be appended?
- */
- if(slen < 0 || slen > strlen(string))
- slen = strlen(string);
-/*
- * Work out how far we need to shift the original path string to make
- * way for the new prefix. When removing escape characters, we need
- * final length of the new prefix, after unescaped backslashes have
- * been removed.
- */
- if(remove_escapes) {
- int is_escape = 0;
- for(shift=0,i=0; i<slen; i++) {
- is_escape = !is_escape && string[i] == '\\';
- if(!is_escape)
- shift++;
- };
- } else {
- shift = slen;
- };
-/*
- * Resize the pathname if needed.
- */
- if(!_pn_resize_path(path, pathlen + shift))
- return NULL;
-/*
- * Make room for the prefix at the beginning of the string.
- */
- memmove(path->name + shift, path->name, pathlen+1);
-/*
- * Copy the new prefix into the vacated space at the beginning of the
- * output pathname, removing any escape characters if needed.
- */
- if(remove_escapes) {
- int is_escape = 0;
- for(i=j=0; i<slen; i++) {
- is_escape = !is_escape && string[i] == '\\';
- if(!is_escape)
- path->name[j++] = string[i];
- };
- } else {
- memcpy(path->name, string, slen);
- };
- return path->name;
-}
-
-/*.......................................................................
- * If needed reallocate a given pathname buffer to allow a string of
- * a given length to be stored in it.
- *
- * Input:
- * path PathName * The pathname container object.
- * length size_t The required length of the pathname buffer,
- * not including the terminating '\0'.
- * Output:
- * return char * The pathname buffer, or NULL if there was
- * insufficient memory (this isn't reported
- * to stderr).
- */
-char *_pn_resize_path(PathName *path, size_t length)
-{
-/*
- * Check the arguments.
- */
- if(!path) {
- fprintf(stderr, "_pn_resize_path: NULL argument(s).\n");
- return NULL;
- };
-/*
- * If the pathname buffer isn't large enough to accomodate a string
- * of the specified length, attempt to reallocate it with the new
- * size, plus space for a terminating '\0'. Also add a bit of
- * head room to prevent too many reallocations if the initial length
- * turned out to be very optimistic.
- */
- if(length + 1 > path->dim) {
- size_t dim = length + 1 + PN_PATHNAME_INC;
- char *name = (char *) realloc(path->name, dim);
- if(!name)
- return NULL;
- path->name = name;
- path->dim = dim;
- };
- return path->name;
-}
-
-/*.......................................................................
- * Estimate the largest amount of space needed to store a pathname.
- *
- * Output:
- * return size_t The number of bytes needed, including space for the
- * terminating '\0'.
- */
-size_t _pu_pathname_dim(void)
-{
- int maxlen; /* The return value excluding space for the '\0' */
-/*
- * If the POSIX PATH_MAX macro is defined in limits.h, use it.
- */
-#ifdef PATH_MAX
- maxlen = PATH_MAX;
-/*
- * If we have pathconf, use it.
- */
-#elif defined(_PC_PATH_MAX)
- errno = 0;
- maxlen = pathconf(FS_ROOT_DIR, _PC_PATH_MAX);
- if(maxlen <= 0 || errno)
- maxlen = MAX_PATHLEN_FALLBACK;
-/*
- * None of the above approaches worked, so substitute our fallback
- * guess.
- */
-#else
- maxlen = MAX_PATHLEN_FALLBACK;
-#endif
-/*
- * Return the amount of space needed to accomodate a pathname plus
- * a terminating '\0'.
- */
- return maxlen + 1;
-}
-
-/*.......................................................................
- * Return non-zero if the specified path name refers to a directory.
- *
- * Input:
- * pathname const char * The path to test.
- * Output:
- * return int 0 - Not a directory.
- * 1 - pathname[] refers to a directory.
- */
-int _pu_path_is_dir(const char *pathname)
-{
- struct stat statbuf; /* The file-statistics return buffer */
-/*
- * Look up the file attributes.
- */
- if(stat(pathname, &statbuf) < 0)
- return 0;
-/*
- * Is the file a directory?
- */
- return S_ISDIR(statbuf.st_mode) != 0;
-}
-
-/*.......................................................................
- * Return non-zero if the specified path name refers to a regular file.
- *
- * Input:
- * pathname const char * The path to test.
- * Output:
- * return int 0 - Not a regular file.
- * 1 - pathname[] refers to a regular file.
- */
-int _pu_path_is_file(const char *pathname)
-{
- struct stat statbuf; /* The file-statistics return buffer */
-/*
- * Look up the file attributes.
- */
- if(stat(pathname, &statbuf) < 0)
- return 0;
-/*
- * Is the file a regular file?
- */
- return S_ISREG(statbuf.st_mode) != 0;
-}
-
-/*.......................................................................
- * Return non-zero if the specified path name refers to an executable.
- *
- * Input:
- * pathname const char * The path to test.
- * Output:
- * return int 0 - Not an executable file.
- * 1 - pathname[] refers to an executable file.
- */
-int _pu_path_is_exe(const char *pathname)
-{
- struct stat statbuf; /* The file-statistics return buffer */
-/*
- * Look up the file attributes.
- */
- if(stat(pathname, &statbuf) < 0)
- return 0;
-/*
- * Is the file a regular file which is executable by the current user.
- */
- return S_ISREG(statbuf.st_mode) != 0 &&
- (statbuf.st_mode & (S_IXOTH | S_IXGRP | S_IXUSR)) &&
- access(pathname, X_OK) == 0;
-}
-
-/*.......................................................................
- * Search backwards for the potential start of a filename. This
- * looks backwards from the specified index in a given string,
- * stopping at the first unescaped space or the start of the line.
- *
- * Input:
- * string const char * The string to search backwards in.
- * back_from int The index of the first character in string[]
- * that follows the pathname.
- * Output:
- * return char * The pointer to the first character of
- * the potential pathname, or NULL on error.
- */
-char *_pu_start_of_path(const char *string, int back_from)
-{
- int i, j;
-/*
- * Check the arguments.
- */
- if(!string || back_from < 0) {
- fprintf(stderr, "_pu_start_path: Invalid argument(s).\n");
- return NULL;
- };
-/*
- * Search backwards from the specified index.
- */
- for(i=back_from-1; i>=0; i--) {
- int c = string[i];
-/*
- * Stop on unescaped spaces.
- */
- if(isspace((int)(unsigned char)c)) {
-/*
- * The space can't be escaped if we are at the start of the line.
- */
- if(i==0)
- break;
-/*
- * Find the extent of the escape characters which precedes the space.
- */
- for(j=i-1; j>=0 && string[j]=='\\'; j--)
- ;
-/*
- * If there isn't an odd number of escape characters before the space,
- * then the space isn't escaped.
- */
- if((i - 1 - j) % 2 == 0)
- break;
- };
- };
- return (char *)string + i + 1;
-}
-
-/*.......................................................................
- * Find the length of a potential filename starting from a given
- * point. This looks forwards from the specified index in a given string,
- * stopping at the first unescaped space or the end of the line.
- *
- * Input:
- * string const char * The string to search backwards in.
- * start_from int The index of the first character of the pathname
- * in string[].
- * Output:
- * return char * The pointer to the character that follows
- * the potential pathname, or NULL on error.
- */
-char *_pu_end_of_path(const char *string, int start_from)
-{
- int c; /* The character being examined */
- int escaped = 0; /* True when the next character is escaped */
- int i;
-/*
- * Check the arguments.
- */
- if(!string || start_from < 0) {
- fprintf(stderr, "_pu_end_path: Invalid argument(s).\n");
- return NULL;
- };
-/*
- * Search forwards from the specified index.
- */
- for(i=start_from; (c=string[i]) != '\0'; i++) {
- if(escaped) {
- escaped = 0;
- } else if(isspace(c)) {
- break;
- } else if(c == '\\') {
- escaped = 1;
- };
- };
- return (char *)string + i;
-}
-
-/*.......................................................................
- * Return non-zero if the specified path name refers to an existing file.
- *
- * Input:
- * pathname const char * The path to test.
- * Output:
- * return int 0 - The file doesn't exist.
- * 1 - The file does exist.
- */
-int _pu_file_exists(const char *pathname)
-{
- struct stat statbuf;
- return stat(pathname, &statbuf) == 0;
-}
diff --git a/libtecla-1.4.1/pathutil.h b/libtecla-1.4.1/pathutil.h
deleted file mode 100644
index 2f4ece5..0000000
--- a/libtecla-1.4.1/pathutil.h
+++ /dev/null
@@ -1,122 +0,0 @@
-#ifndef pathutil_h
-#define pathutil_h
-
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * The following object encapsulates a buffer designed to be used to
- * store pathnames. The pathname member of the object is initially
- * allocated with the size that _pu_pathname_dim() returns, and then
- * if this turns out to be pessimistic, the pathname can be reallocated
- * via calls to pb_append_to_path() and/or pb_resize_path().
- */
-typedef struct {
- char *name; /* The path buffer */
- size_t dim; /* The current allocated size of buffer[] */
-} PathName;
-
-PathName *_new_PathName(void);
-PathName *_del_PathName(PathName *path);
-
-char *_pn_clear_path(PathName *path);
-char *_pn_append_to_path(PathName *path, const char *string, int slen,
- int remove_escapes);
-char *_pn_prepend_to_path(PathName *path, const char *string, int slen,
- int remove_escapes);
-char *_pn_resize_path(PathName *path, size_t length);
-
-/*
- * Search backwards for the potential start of a filename. This
- * looks backwards from the specified index in a given string,
- * stopping at the first unescaped space or the start of the line.
- */
-char *_pu_start_of_path(const char *string, int back_from);
-
-/*
- * Find the end of a potential filename, starting from a given index
- * in the string. This looks forwards from the specified index in a
- * given string, stopping at the first unescaped space or the end
- * of the line.
- */
-char *_pu_end_of_path(const char *string, int start_from);
-
-
-/*
- * Return an estimate of the the length of the longest pathname
- * on the local system.
- */
-size_t _pu_pathname_dim(void);
-
-/*
- * Return non-zero if the specified path name refers to a directory.
- */
-int _pu_path_is_dir(const char *pathname);
-
-/*
- * Return non-zero if the specified path name refers to a regular file.
- */
-int _pu_path_is_file(const char *pathname);
-
-/*
- * Return non-zero if the specified path name refers to an executable.
- */
-int _pu_path_is_exe(const char *pathname);
-
-/*
- * Return non-zero if a file exists with the specified pathname.
- */
-int _pu_file_exists(const char *pathname);
-
-/*
- * If neither the POSIX PATH_MAX macro nor the pathconf() function
- * can be used to find out the maximum pathlength on the target
- * system, the following fallback maximum length is used.
- */
-#define MAX_PATHLEN_FALLBACK 1024
-
-/*
- * If the pathname buffer turns out to be too small, it will be extended
- * in chunks of the following amount (plus whatever is needed at the time).
- */
-#define PN_PATHNAME_INC 100
-
-/*
- * Define the special character-sequences of the filesystem.
- */
-#define FS_ROOT_DIR "/" /* The root directory */
-#define FS_ROOT_DIR_LEN (sizeof(FS_ROOT_DIR) - 1)
-#define FS_PWD "." /* The current working directory */
-#define FS_PWD_LEN (sizeof(FS_PWD_LEN) - 1)
-#define FS_DIR_SEP "/" /* The directory separator string */
-#define FS_DIR_SEP_LEN (sizeof(FS_DIR_SEP) - 1)
-
-#endif
diff --git a/libtecla-1.4.1/pcache.c b/libtecla-1.4.1/pcache.c
deleted file mode 100644
index bbea916..0000000
--- a/libtecla-1.4.1/pcache.c
+++ /dev/null
@@ -1,1688 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "libtecla.h"
-#include "pathutil.h"
-#include "homedir.h"
-#include "freelist.h"
-#include "direader.h"
-#include "stringrp.h"
-
-/*
- * The new_PcaPathConf() constructor sets the integer first member of
- * the returned object to the following magic number. This is then
- * checked for by pca_path_completions() as a sanity check.
- */
-#define PPC_ID_CODE 4567
-
-/*
- * A pointer to a structure of the following type can be passed to
- * the builtin path-completion callback function to modify its behavior.
- */
-struct PcaPathConf {
- int id; /* This is set to PPC_ID_CODE by new_PcaPathConf() */
- PathCache *pc; /* The path-list cache in which to look up the executables */
- int escaped; /* If non-zero, backslashes in the input line are */
- /* interpreted as escaping special characters and */
- /* spaces, and any special characters and spaces in */
- /* the listed completions will also be escaped with */
- /* added backslashes. This is the default behaviour. */
- /* If zero, backslashes are interpreted as being */
- /* literal parts of the file name, and none are added */
- /* to the completion suffixes. */
- int file_start; /* The index in the input line of the first character */
- /* of the file name. If you specify -1 here, */
- /* pca_path_completions() identifies the */
- /* the start of the file by looking backwards for */
- /* an unescaped space, or the beginning of the line. */
-};
-
-/*
- * Prepended to each chached filename is a character which contains
- * one of the following status codes. When a given filename (minus
- * this byte) is passed to the application's check_fn(), the result
- * is recorded in this byte, such that the next time it is looked
- * up, we don't have to call check_fn() again. These codes are cleared
- * whenever the path is scanned and whenever the check_fn() callback
- * is changed.
- */
-typedef enum {
- PCA_F_ENIGMA='?', /* The file remains to be checked */
- PCA_F_WANTED='+', /* The file has been selected by the caller's callback */
- PCA_F_IGNORE='-' /* The file has been rejected by the caller's callback */
-} PcaFileStatus;
-
-/*
- * Encapsulate the memory management objects which supply memoy for
- * the arrays of filenames.
- */
-typedef struct {
- StringGroup *sg; /* The memory used to record the names of files */
- size_t files_dim; /* The allocated size of files[] */
- char **files; /* Memory for 'files_dim' pointers to files */
- size_t nfiles; /* The number of filenames currently in files[] */
-} CacheMem;
-
-static CacheMem *new_CacheMem(void);
-static CacheMem *del_CacheMem(CacheMem *cm);
-static void rst_CacheMem(CacheMem *cm);
-
-/*
- * Lists of nodes of the following type are used to record the
- * names and contents of individual directories.
- */
-typedef struct PathNode PathNode;
-struct PathNode {
- PathNode *next; /* The next directory in the path */
- int relative; /* True if the directory is a relative pathname */
- CacheMem *mem; /* The memory used to store dir[] and files[] */
- char *dir; /* The directory pathname (stored in pc->sg) */
- int nfile; /* The number of filenames stored in 'files' */
- char **files; /* Files of interest in the current directory, */
- /* or NULL if dir[] is a relative pathname */
- /* who's contents can't be cached. This array */
- /* and its contents are taken from pc->abs_mem */
- /* or pc->rel_mem */
-};
-
-/*
- * Append a new node to the list of directories in the path.
- */
-static int add_PathNode(PathCache *pc, const char *dirname);
-
-/*
- * Set the max length of the error-reporting string. There is no point
- * in this being longer than the width of a typical terminal window.
- * In composing error messages, I have assumed that this number is
- * at least 80, so you don't decrease it below this number.
- */
-#define ERRLEN 200
-
-/*
- * Set the maximum length allowed for usernames.
- * names.
- */
-#define USR_LEN 100
-
-/*
- * PathCache objects encapsulate the resources needed to record
- * files of interest from comma-separated lists of directories.
- */
-struct PathCache {
- FreeList *node_mem; /* A free-list of PathNode objects */
- CacheMem *abs_mem; /* Memory for the filenames of absolute paths */
- CacheMem *rel_mem; /* Memory for the filenames of relative paths */
- PathNode *head; /* The head of the list of directories in the */
- /* path, or NULL if no path has been scanned yet. */
- PathNode *tail; /* The tail of the list of directories in the */
- /* path, or NULL if no path has been scanned yet. */
- PathName *path; /* The fully qualified name of a file */
- HomeDir *home; /* Home-directory lookup object */
- DirReader *dr; /* A portable directory reader */
- CplFileConf *cfc; /* Configuration parameters to pass to */
- /* cpl_file_completions() */
- CplCheckFn *check_fn; /* The callback used to determine if a given */
- /* filename should be recorded in the cache. */
- void *data; /* Annonymous data to be passed to pc->check_fn() */
- char usrnam[USR_LEN+1];/* The buffer used when reading the names of */
- /* users. */
- char errmsg[ERRLEN+1]; /* Error-report buffer */
-};
-
-/*
- * Empty the cache.
- */
-static void pca_clear_cache(PathCache *pc);
-
-/*
- * Read a username from string[] and record it in pc->usrnam[].
- */
-static int pca_read_username(PathCache *pc, const char *string, int slen,
- int literal, const char **nextp);
-
-/*
- * Extract the next component of a colon separated list of directory
- * paths.
- */
-static int pca_extract_dir(PathCache *pc, const char *path,
- const char **nextp);
-
-/*
- * Scan absolute directories for files of interest, recording their names
- * in mem->sg and recording pointers to these names in mem->files[].
- */
-static int pca_scan_dir(PathCache *pc, const char *dirname, CacheMem *mem);
-
-/*
- * A qsort() comparison function for comparing the cached filename
- * strings pointed to by two (char **) array elements. Note that
- * this ignores the initial cache-status byte of each filename.
- */
-static int pca_cmp_matches(const void *v1, const void *v2);
-
-/*
- * A qsort() comparison function for comparing a filename
- * against an element of an array of pointers to filename cache
- * entries.
- */
-static int pca_cmp_file(const void *v1, const void *v2);
-
-/*
- * Initialize a PcaPathConf configuration objects with the default
- * options.
- */
-static int pca_init_PcaPathConf(PcaPathConf *ppc, PathCache *pc);
-
-/*
- * Make a copy of a completion suffix, suitable for passing to
- * cpl_add_completion().
- */
-static int pca_prepare_suffix(PathCache *pc, const char *suffix,
- int add_escapes);
-
-/*
- * Return non-zero if the specified string appears to start with a pathname.
- */
-static int cpa_cmd_contains_path(const char *prefix, int prefix_len);
-
-/*
- * Return a given prefix with escapes optionally removed.
- */
-static const char *pca_prepare_prefix(PathCache *pc, const char *prefix,
- size_t prefix_len, int escaped);
-
-/*
- * If there is a tilde expression at the beginning of the specified path,
- * place the corresponding home directory into pc->path. Otherwise
- * just clear pc->path.
- */
-static int pca_expand_tilde(PathCache *pc, const char *path, int pathlen,
- int literal, const char **endp);
-
-/*
- * Clear the filename status codes that are recorded before each filename
- * in the cache.
- */
-static void pca_remove_marks(PathCache *pc);
-
-/*
- * Specify how many PathNode's to allocate at a time.
- */
-#define PATH_NODE_BLK 30
-
-/*
- * Specify the amount by which the files[] arrays are to be extended
- * whenever they are found to be too small.
- */
-#define FILES_BLK_FACT 256
-
-/*.......................................................................
- * Create a new object who's function is to maintain a cache of
- * filenames found within a list of directories, and provide quick
- * lookup and completion of selected files in this cache.
- *
- * Output:
- * return PathCache * The new, initially empty cache, or NULL
- * on error.
- */
-PathCache *new_PathCache(void)
-{
- PathCache *pc; /* The object to be returned */
-/*
- * Allocate the container.
- */
- pc = (PathCache *)malloc(sizeof(PathCache));
- if(!pc) {
- fprintf(stderr, "new_PathCache: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_PathCache().
- */
- pc->node_mem = NULL;
- pc->abs_mem = NULL;
- pc->rel_mem = NULL;
- pc->head = NULL;
- pc->tail = NULL;
- pc->path = NULL;
- pc->home = NULL;
- pc->dr = NULL;
- pc->cfc = NULL;
- pc->check_fn = 0;
- pc->data = NULL;
- pc->usrnam[0] = '\0';
- pc->errmsg[0] = '\0';
-/*
- * Allocate the freelist of directory list nodes.
- */
- pc->node_mem = _new_FreeList("new_PathCache", sizeof(PathNode),
- PATH_NODE_BLK);
- if(!pc->node_mem)
- return del_PathCache(pc);
-/*
- * Allocate memory for recording names of files in absolute paths.
- */
- pc->abs_mem = new_CacheMem();
- if(!pc->abs_mem)
- return del_PathCache(pc);
-/*
- * Allocate memory for recording names of files in relative paths.
- */
- pc->rel_mem = new_CacheMem();
- if(!pc->rel_mem)
- return del_PathCache(pc);
-/*
- * Allocate a pathname buffer.
- */
- pc->path = _new_PathName();
- if(!pc->path)
- return del_PathCache(pc);
-/*
- * Allocate an object for looking up home-directories.
- */
- pc->home = _new_HomeDir();
- if(!pc->home)
- return del_PathCache(pc);
-/*
- * Allocate an object for reading directories.
- */
- pc->dr = _new_DirReader();
- if(!pc->dr)
- return del_PathCache(pc);
-/*
- * Allocate a cpl_file_completions() configuration object.
- */
- pc->cfc = new_CplFileConf();
- if(!pc->cfc)
- return del_PathCache(pc);
-/*
- * Configure cpl_file_completions() to use check_fn() to select
- * files of interest.
- */
- cfc_set_check_fn(pc->cfc, pc->check_fn, pc->data);
-/*
- * Return the cache, ready for use.
- */
- return pc;
-}
-
-/*.......................................................................
- * Delete a given cache of files, returning the resources that it
- * was using to the system.
- *
- * Input:
- * pc PathCache * The cache to be deleted (can be NULL).
- * Output:
- * return PathCache * The deleted object (ie. allways NULL).
- */
-PathCache *del_PathCache(PathCache *pc)
-{
- if(pc) {
-/*
- * Delete the memory of the list of path nodes.
- */
- pc->node_mem = _del_FreeList(NULL, pc->node_mem, 1);
-/*
- * Delete the memory used to record filenames.
- */
- pc->abs_mem = del_CacheMem(pc->abs_mem);
- pc->rel_mem = del_CacheMem(pc->rel_mem);
-/*
- * The list of PathNode's was already deleted when node_mem was
- * deleted.
- */
- pc->head = NULL;
- pc->tail = NULL;
-/*
- * Delete the pathname buffer.
- */
- pc->path = _del_PathName(pc->path);
-/*
- * Delete the home-directory lookup object.
- */
- pc->home = _del_HomeDir(pc->home);
-/*
- * Delete the directory reader.
- */
- pc->dr = _del_DirReader(pc->dr);
-/*
- * Delete the cpl_file_completions() config object.
- */
- pc->cfc = del_CplFileConf(pc->cfc);
-/*
- * Delete the container.
- */
- free(pc);
- };
- return NULL;
-}
-
-/*.......................................................................
- * If you want subsequent calls to pca_lookup_file() and
- * pca_path_completions() to only return the filenames of certain
- * types of files, for example executables, or filenames ending in
- * ".ps", call this function to register a file-selection callback
- * function. This callback function takes the full pathname of a file,
- * plus application-specific data, and returns 1 if the file is of
- * interest, and zero otherwise.
- *
- * Input:
- * pc PathCache * The filename cache.
- * check_fn CplCheckFn * The function to call to see if the name of
- * a given file should be included in the
- * cache. This determines what type of files
- * will reside in the cache. To revert to
- * selecting all files, regardless of type,
- * pass 0 here.
- * data void * You can pass a pointer to anything you
- * like here, including NULL. It will be
- * passed to your check_fn() callback
- * function, for its private use.
- */
-void pca_set_check_fn(PathCache *pc, CplCheckFn *check_fn, void *data)
-{
- if(pc) {
-/*
- * If the callback or its data pointer have changed, clear the cached
- * statuses of files that were accepted or rejected by the previous
- * calback.
- */
- if(check_fn != pc->check_fn || data != pc->data)
- pca_remove_marks(pc);
-/*
- * Record the new callback locally.
- */
- pc->check_fn = check_fn;
- pc->data = data;
-/*
- * Configure cpl_file_completions() to use the same callback to
- * select files of interest.
- */
- cfc_set_check_fn(pc->cfc, check_fn, data);
- };
- return;
-}
-
-/*.......................................................................
- * Return a description of the last path-caching error that occurred.
- *
- * Input:
- * pc PathCache * The filename cache that suffered the error.
- * Output:
- * return char * The description of the last error.
- */
-const char *pca_last_error(PathCache *pc)
-{
- return pc ? pc->errmsg : "NULL PathCache argument";
-}
-
-/*.......................................................................
- * Discard all cached filenames.
- *
- * Input:
- * pc PathCache * The cache to be cleared.
- */
-static void pca_clear_cache(PathCache *pc)
-{
- if(pc) {
-/*
- * Return all path-nodes to the freelist.
- */
- _rst_FreeList(pc->node_mem);
- pc->head = pc->tail = NULL;
-/*
- * Delete all filename strings.
- */
- rst_CacheMem(pc->abs_mem);
- rst_CacheMem(pc->rel_mem);
- };
- return;
-}
-
-/*.......................................................................
- * Build the list of files of interest contained in a given
- * colon-separated list of directories.
- *
- * Input:
- * pc PathCache * The cache in which to store the names of
- * the files that are found in the list of
- * directories.
- * path const char * A colon-separated list of directory
- * paths. Under UNIX, when searching for
- * executables, this should be the return
- * value of getenv("PATH").
- * Output:
- * return int 0 - OK.
- * 1 - An error occurred. A description of
- * the error can be acquired by calling
- * pca_last_error(pc).
- */
-int pca_scan_path(PathCache *pc, const char *path)
-{
- const char *pptr; /* A pointer to the next unprocessed character in path[] */
- PathNode *node; /* A node in the list of directory paths */
- char **fptr; /* A pointer into pc->abs_mem->files[] */
-/*
- * Check the arguments.
- */
- if(!pc)
- return 1;
-/*
- * Clear the outdated contents of the cache.
- */
- pca_clear_cache(pc);
-/*
- * If no path list was provided, there is nothing to be added to the
- * cache.
- */
- if(!path)
- return 0;
-/*
- * Extract directories from the path list, expanding tilde expressions
- * on the fly into pc->pathname, then add them to the list of path
- * nodes, along with a sorted list of the filenames of interest that
- * the directories hold.
- */
- pptr = path;
- while(*pptr) {
-/*
- * Extract the next pathname component into pc->path->name.
- */
- if(pca_extract_dir(pc, pptr, &pptr))
- return 1;
-/*
- * Add a new node to the list of paths, containing both the
- * directory name and, if not a relative pathname, the list of
- * files of interest in the directory.
- */
- if(add_PathNode(pc, pc->path->name))
- return 1;
- };
-/*
- * The file arrays in each absolute directory node are sections of
- * pc->abs_mem->files[]. Record pointers to the starts of each
- * of these sections in each directory node. Note that this couldn't
- * be done in add_PathNode(), because pc->abs_mem->files[] may
- * get reallocated in subsequent calls to add_PathNode(), thus
- * invalidating any pointers to it.
- */
- fptr = pc->abs_mem->files;
- for(node=pc->head; node; node=node->next) {
- node->files = fptr;
- fptr += node->nfile;
- };
- return 0;
-}
-
-/*.......................................................................
- * Extract the next directory path from a colon-separated list of
- * directories, expanding tilde home-directory expressions where needed.
- *
- * Input:
- * pc PathCache * The cache of filenames.
- * path const char * A pointer to the start of the next component
- * in the path list.
- * Input/Output:
- * nextp const char ** A pointer to the next unprocessed character
- * in path[] will be assigned to *nextp.
- * Output:
- * return int 0 - OK. The extracted path is in pc->path->name.
- * 1 - Error. A description of the error will
- * have been left in pc->errmsg.
- */
-static int pca_extract_dir(PathCache *pc, const char *path, const char **nextp)
-{
- const char *pptr; /* A pointer into path[] */
- const char *sptr; /* The path following tilde expansion */
- int escaped = 0; /* True if the last character was a backslash */
-/*
- * If there is a tilde expression at the beginning of the specified path,
- * place the corresponding home directory into pc->path. Otherwise
- * just clear pc->path.
- */
- if(pca_expand_tilde(pc, path, strlen(path), 0, &pptr))
- return 1;
-/*
- * Keep a record of the current location in the path.
- */
- sptr = pptr;
-/*
- * Locate the end of the directory name in the pathname string, stopping
- * when either the end of the string is reached, or an un-escaped colon
- * separator is seen.
- */
- while(*pptr && (escaped || *pptr != ':'))
- escaped = !escaped && *pptr++ == '\\';
-/*
- * Append the rest of the directory path to the pathname buffer.
- */
- if(_pn_append_to_path(pc->path, sptr, pptr - sptr, 1) == NULL) {
- strcpy(pc->errmsg, "Insufficient memory to record directory name");
- return 1;
- };
-/*
- * To facilitate subsequently appending filenames to the directory
- * path name, make sure that the recorded directory name ends in a
- * directory separator.
- */
- {
- int dirlen = strlen(pc->path->name);
- if(dirlen < FS_DIR_SEP_LEN ||
- strncmp(pc->path->name + dirlen - FS_DIR_SEP_LEN, FS_DIR_SEP,
- FS_DIR_SEP_LEN) != 0) {
- if(_pn_append_to_path(pc->path, FS_DIR_SEP, FS_DIR_SEP_LEN, 0) == NULL) {
- strcpy(pc->errmsg, "Insufficient memory to record directory name");
- return 1;
- };
- };
- };
-/*
- * Skip the separator unless we have reached the end of the path.
- */
- if(*pptr==':')
- pptr++;
-/*
- * Return the unprocessed tail of the path-list string.
- */
- *nextp = pptr;
- return 0;
-}
-
-/*.......................................................................
- * Read a username, stopping when a directory separator is seen, a colon
- * separator is seen, the end of the string is reached, or the username
- * buffer overflows.
- *
- * Input:
- * pc PathCache * The cache of filenames.
- * string char * The string who's prefix contains the name.
- * slen int The max number of characters to read from string[].
- * literal int If true, treat backslashes as literal characters
- * instead of escapes.
- * Input/Output:
- * nextp char ** A pointer to the next unprocessed character
- * in string[] will be assigned to *nextp.
- * Output:
- * return int 0 - OK. The username can be found in pc->usrnam.
- * 1 - Error. A description of the error message
- * can be found in pc->errmsg.
- */
-static int pca_read_username(PathCache *pc, const char *string, int slen,
- int literal, const char **nextp)
-{
- int usrlen; /* The number of characters in pc->usrnam[] */
- const char *sptr; /* A pointer into string[] */
- int escaped = 0; /* True if the last character was a backslash */
-/*
- * Extract the username.
- */
- for(sptr=string,usrlen=0; usrlen < USR_LEN && (sptr-string) < slen; sptr++) {
-/*
- * Stop if the end of the string is reached, or a directory separator
- * or un-escaped colon separator is seen.
- */
- if(!*sptr || strncmp(sptr, FS_DIR_SEP, FS_DIR_SEP_LEN)==0 ||
- (!escaped && *sptr == ':'))
- break;
-/*
- * Escape the next character?
- */
- if(!literal && !escaped && *sptr == '\\') {
- escaped = 1;
- } else {
- escaped = 0;
- pc->usrnam[usrlen++] = *sptr;
- };
- };
-/*
- * Did the username overflow the buffer?
- */
- if(usrlen >= USR_LEN) {
- strcpy(pc->errmsg, "Username too long");
- return 1;
- };
-/*
- * Terminate the string.
- */
- pc->usrnam[usrlen] = '\0';
-/*
- * Indicate where processing of the input string should continue.
- */
- *nextp = sptr;
- return 0;
-}
-
-
-/*.......................................................................
- * Create a new CacheMem object.
- *
- * Output:
- * return CacheMem * The new object, or NULL on error.
- */
-static CacheMem *new_CacheMem(void)
-{
- CacheMem *cm; /* The object to be returned */
-/*
- * Allocate the container.
- */
- cm = (CacheMem *)malloc(sizeof(CacheMem));
- if(!cm) {
- fprintf(stderr, "new_CacheMem: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_CacheMem().
- */
- cm->sg = NULL;
- cm->files_dim = 0;
- cm->files = NULL;
- cm->nfiles = 0;
-/*
- * Allocate a list of string segments for storing filenames.
- */
- cm->sg = _new_StringGroup(_pu_pathname_dim());
- if(!cm->sg)
- return del_CacheMem(cm);
-/*
- * Allocate an array of pointers to filenames.
- * This will be extended later if needed.
- */
- cm->files_dim = FILES_BLK_FACT;
- cm->files = (char **) malloc(sizeof(*cm->files) * cm->files_dim);
- if(!cm->files) {
- fprintf(stderr,
- "new_CacheMem: Insufficient memory to allocate array of files.\n");
- return del_CacheMem(cm);
- };
- return cm;
-}
-
-/*.......................................................................
- * Delete a CacheMem object.
- *
- * Input:
- * cm CacheMem * The object to be deleted.
- * Output:
- * return CacheMem * The deleted object (always NULL).
- */
-static CacheMem *del_CacheMem(CacheMem *cm)
-{
- if(cm) {
-/*
- * Delete the memory that was used to record filename strings.
- */
- cm->sg = _del_StringGroup(cm->sg);
-/*
- * Delete the array of pointers to filenames.
- */
- cm->files_dim = 0;
- if(cm->files) {
- free(cm->files);
- cm->files = NULL;
- };
-/*
- * Delete the container.
- */
- free(cm);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Re-initialize the memory used to allocate filename strings.
- *
- * Input:
- * cm CacheMem * The memory cache to be cleared.
- */
-static void rst_CacheMem(CacheMem *cm)
-{
- _clr_StringGroup(cm->sg);
- cm->nfiles = 0;
- return;
-}
-
-/*.......................................................................
- * Append a new directory node to the list of directories read from the
- * path.
- *
- * Input:
- * pc PathCache * The filename cache.
- * dirname const char * The name of the new directory.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int add_PathNode(PathCache *pc, const char *dirname)
-{
- PathNode *node; /* The new directory list node */
- int relative; /* True if dirname[] is a relative pathname */
-/*
- * Have we been passed a relative pathname or an absolute pathname?
- */
- relative = strncmp(dirname, FS_ROOT_DIR, FS_ROOT_DIR_LEN) != 0;
-/*
- * If it's an absolute pathname, ignore it if the corresponding
- * directory doesn't exist.
- */
- if(!relative && !_pu_path_is_dir(dirname))
- return 0;
-/*
- * Allocate a new list node to record the specifics of the new directory.
- */
- node = (PathNode *) _new_FreeListNode(pc->node_mem);
- if(!node) {
- sprintf(pc->errmsg, "Insufficient memory to cache new directory.");
- return 1;
- };
-/*
- * Initialize the node.
- */
- node->next = NULL;
- node->relative = relative;
- node->mem = relative ? pc->rel_mem : pc->abs_mem;
- node->dir = NULL;
- node->nfile = 0;
- node->files = NULL;
-/*
- * Make a copy of the directory pathname.
- */
- node->dir = _sg_store_string(pc->abs_mem->sg, dirname, 0);
- if(!node->dir) {
- strcpy(pc->errmsg, "Insufficient memory to store directory name.");
- return 1;
- };
-/*
- * Scan absolute directories for files of interest, recording their names
- * in node->mem->sg and appending pointers to these names to the
- * node->mem->files[] array.
- */
- if(!node->relative) {
- int nfile = node->nfile = pca_scan_dir(pc, node->dir, node->mem);
- if(nfile < 1) { /* No files matched or an error occurred */
- node = (PathNode *) _del_FreeListNode(pc->node_mem, node);
- return nfile < 0;
- };
- };
-/*
- * Append the new node to the list.
- */
- if(pc->head) {
- pc->tail->next = node;
- pc->tail = node;
- } else {
- pc->head = pc->tail = node;
- };
- return 0;
-}
-
-/*.......................................................................
- * Scan a given directory for files of interest, record their names
- * in mem->sg and append pointers to them to the mem->files[] array.
- *
- * Input:
- * pc PathCache * The filename cache.
- * dirname const char * The pathname of the directory to be scanned.
- * mem CacheMem * The memory in which to store filenames of
- * interest.
- * Output:
- * return int The number of files recorded, or -1 if a
- * memory error occurs. Note that the
- * inability to read the contents of the
- * directory is not counted as an error.
- */
-static int pca_scan_dir(PathCache *pc, const char *dirname, CacheMem *mem)
-{
- int nfile = 0; /* The number of filenames recorded */
- const char *filename; /* The name of the file being looked at */
-/*
- * Attempt to open the directory. If the directory can't be read then
- * there are no accessible files of interest in the directory.
- */
- if(_dr_open_dir(pc->dr, dirname, NULL))
- return 0;
-/*
- * Record the names of all files in the directory in the cache.
- */
- while((filename = _dr_next_file(pc->dr))) {
- char *copy; /* A copy of the filename */
-/*
- * Make a temporary copy of the filename with an extra byte prepended.
- */
- _pn_clear_path(pc->path);
- if(_pn_append_to_path(pc->path, " ", 1, 0) == NULL ||
- _pn_append_to_path(pc->path, filename, -1, 1) == NULL) {
- strcpy(pc->errmsg, "Insufficient memory to record filename");
- return -1;
- };
-/*
- * Store the filename.
- */
- copy = _sg_store_string(mem->sg, pc->path->name, 0);
- if(!copy) {
- strcpy(pc->errmsg, "Insufficient memory to cache file name.");
- return -1;
- };
-/*
- * Mark the filename as unchecked.
- */
- copy[0] = PCA_F_ENIGMA;
-/*
- * Make room to store a pointer to the copy in mem->files[].
- */
- if(mem->nfiles + 1 > mem->files_dim) {
- int needed = mem->files_dim + FILES_BLK_FACT;
- char **files = (char **) realloc(mem->files, sizeof(*mem->files)*needed);
- if(!files) {
- strcpy(pc->errmsg, "Insufficient memory to extend filename cache.");
- return 1;
- };
- mem->files = files;
- mem->files_dim = needed;
- };
-/*
- * Record a pointer to the copy of the filename at the end of the files[]
- * array.
- */
- mem->files[mem->nfiles++] = copy;
-/*
- * Keep a record of the number of files matched so far.
- */
- nfile++;
- };
-/*
- * Sort the list of files into lexical order.
- */
- qsort(mem->files + mem->nfiles - nfile, nfile, sizeof(*mem->files),
- pca_cmp_matches);
-/*
- * Return the number of files recorded in mem->files[].
- */
- return nfile;
-}
-
-/*.......................................................................
- * A qsort() comparison function for comparing the cached filename
- * strings pointed to by two (char **) array elements. Note that
- * this ignores the initial cache-status byte of each filename.
- *
- * Input:
- * v1, v2 void * Pointers to the pointers of two strings to be compared.
- * Output:
- * return int -1 -> v1 < v2.
- * 0 -> v1 == v2
- * 1 -> v1 > v2
- */
-static int pca_cmp_matches(const void *v1, const void *v2)
-{
- const char **s1 = (const char **) v1;
- const char **s2 = (const char **) v2;
- return strcmp(*s1+1, *s2+1);
-}
-
-/*.......................................................................
- * Given the simple name of a file, search the cached list of files
- * in the order in which they where found in the list of directories
- * previously presented to pca_scan_path(), and return the pathname
- * of the first file which has this name. If a pathname to a file is
- * given instead of a simple filename, this is returned without being
- * looked up in the cache, but with any initial ~username expression
- * expanded, and optionally, unescaped backslashes removed.
- *
- * Input:
- * pc PathCache * The cached list of files.
- * name const char * The name of the file to lookup.
- * name_len int The length of the filename string at the
- * beginning of name[], or -1 to indicate that
- * the filename occupies the whole of the
- * string.
- * literal int If this argument is zero, lone backslashes
- * in name[] are ignored during comparison
- * with filenames in the cache, under the
- * assumption that they were in the input line
- * soley to escape the special significance of
- * characters like spaces. To have them treated
- * as normal characters, give this argument a
- * non-zero value, such as 1.
- * Output:
- * return char * The pathname of the first matching file,
- * or NULL if not found. Note that the returned
- * pointer points to memory owned by *pc, and
- * will become invalid on the next call to any
- * function in the PathCache module.
- */
-char *pca_lookup_file(PathCache *pc, const char *name, int name_len,
- int literal)
-{
- PathNode *node; /* A node in the list of directories in the path */
- char **match; /* A pointer to a matching filename string in the cache */
-/*
- * Check the arguments.
- */
- if(!pc || !name || name_len==0)
- return NULL;
-/*
- * If no length was specified, determine the length of the string to
- * be looked up.
- */
- if(name_len < 0)
- name_len = strlen(name);
-/*
- * If the word starts with a ~username expression, the root directory,
- * of it contains any directory separators, then treat it isn't a simple
- * filename that can be looked up in the cache, but rather appears to
- * be the pathname of a file. If so, return a copy of this pathname with
- * escapes removed, if requested, and any initial ~username expression
- * expanded.
- */
- if(cpa_cmd_contains_path(name, name_len)) {
- const char *nptr;
- if(pca_expand_tilde(pc, name, name_len, literal, &nptr) ||
- _pn_append_to_path(pc->path, nptr, name_len - (nptr-name),
- !literal) == NULL)
- return NULL;
- return pc->path->name;
- };
-/*
- * Look up the specified filename in each of the directories of the path,
- * in the same order that they were listed in the path, and stop as soon
- * as an instance of the file is found.
- */
- for(node=pc->head; node; node=node->next) {
-/*
- * If the directory of the latest node is a relative pathname,
- * scan it for files of interest.
- */
- if(node->relative) {
- rst_CacheMem(node->mem);
- if(pca_scan_dir(pc, node->dir, node->mem) < 1)
- continue;
- node->files = node->mem->files;
- node->nfile = node->mem->nfiles;
- };
-/*
- * Copy the filename into a temporary buffer, while interpretting
- * escape characters if needed.
- */
- _pn_clear_path(pc->path);
- if(_pn_append_to_path(pc->path, name, name_len, !literal) == NULL)
- return NULL;
-/*
- * Perform a binary search for the requested filename.
- */
- match = (char **)bsearch(pc->path->name, node->files, node->nfile,
- sizeof(*node->files), pca_cmp_file);
- if(match) {
-/*
- * Prepend the pathname in which the directory was found, which we have
- * guaranteed to end in a directory separator, to the located filename.
- */
- if(_pn_prepend_to_path(pc->path, node->dir, -1, 0) == NULL)
- return NULL;
-/*
- * Return the matching pathname unless it is rejected by the application.
- */
- if(!pc->check_fn || (*match)[0] == PCA_F_WANTED ||
- ((*match)[0]==PCA_F_ENIGMA && pc->check_fn(pc->data, pc->path->name))){
- (*match)[0] = PCA_F_WANTED;
- return pc->path->name;
- } else {
- *(match)[0] = PCA_F_IGNORE;
- };
- };
- };
-/*
- * File not found.
- */
- return NULL;
-}
-
-/*.......................................................................
- * A qsort() comparison function for comparing a filename string to
- * a cached filename string pointed to by a (char **) array element.
- * This ignores the initial code byte at the start of the cached filename
- * string.
- *
- * Input:
- * v1, v2 void * Pointers to the pointers of two strings to be compared.
- * Output:
- * return int -1 -> v1 < v2.
- * 0 -> v1 == v2
- * 1 -> v1 > v2
- */
-static int pca_cmp_file(const void *v1, const void *v2)
-{
- const char *file_name = (const char *) v1;
- const char **cache_name = (const char **) v2;
- return strcmp(file_name, *cache_name + 1);
-}
-
-/*.......................................................................
- * The PcaPathConf structure may have options added to it in the future.
- * To allow your application to be linked against a shared version of the
- * tecla library, without these additions causing your application to
- * crash, you should use new_PcaPathConf() to allocate such structures.
- * This will set all of the configuration options to their default values,
- * which you can then change before passing the structure to
- * pca_path_completions().
- *
- * Input:
- * pc PathCache * The filename cache in which to look for
- * file name completions.
- * Output:
- * return PcaPathConf * The new configuration structure, or NULL
- * on error. A descripition of the error
- * can be found by calling pca_last_error(pc).
- */
-PcaPathConf *new_PcaPathConf(PathCache *pc)
-{
- PcaPathConf *ppc; /* The object to be returned */
-/*
- * Check the arguments.
- */
- if(!pc)
- return NULL;
-/*
- * Allocate the container.
- */
- ppc = (PcaPathConf *)malloc(sizeof(PcaPathConf));
- if(!ppc) {
- strcpy(pc->errmsg, "Insufficient memory.");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to del_PcaPathConf().
- */
- if(pca_init_PcaPathConf(ppc, pc))
- return del_PcaPathConf(ppc);
- return ppc;
-}
-
-/*.......................................................................
- * Initialize a PcaPathConf configuration structure with defaults.
- *
- * Input:
- * ppc PcaPathConf * The structre to be initialized.
- * pc PathCache * The cache in which completions will be looked up.
- * Output:
- * return int 0 - OK.
- * 1 - Error. A description of the error can be
- * obtained by calling pca_last_error(pc).
- */
-static int pca_init_PcaPathConf(PcaPathConf *ppc, PathCache *pc)
-{
-/*
- * Check the arguments.
- */
- if(!pc)
- return 1;
-/*
- * Set the default options.
- */
- ppc->id = PPC_ID_CODE;
- ppc->pc = pc;
- ppc->escaped = 1;
- ppc->file_start = -1;
- return 0;
-}
-
-/*.......................................................................
- * Delete a PcaPathConf object.
- *
- * Input:
- * ppc PcaPathConf * The object to be deleted.
- * Output:
- * return PcaPathConf * The deleted object (always NULL).
- */
-PcaPathConf *del_PcaPathConf(PcaPathConf *ppc)
-{
- if(ppc) {
- ppc->pc = NULL; /* It is up to the caller to delete the cache */
-/*
- * Delete the container.
- */
- free(ppc);
- };
- return NULL;
-}
-
-/*.......................................................................
- * pca_path_completions() is a completion callback function for use
- * directly with cpl_complete_word() or gl_customize_completions(), or
- * indirectly from your own completion callback function. It requires
- * that a CpaPathArgs object be passed via its 'void *data' argument.
- */
-CPL_MATCH_FN(pca_path_completions)
-{
- PcaPathConf *ppc; /* The configuration arguments */
- PathCache *pc; /* The cache in which to look for completions */
- PathNode *node; /* A node in the list of directories in the path */
- const char *filename; /* The name of the file being looked at */
- const char *start_path; /* The pointer to the start of the pathname */
- /* in line[]. */
- int word_start; /* The index in line[] corresponding to start_path */
- const char *prefix; /* The file-name prefix being searched for */
- size_t prefix_len; /* The length of the prefix being completed */
- int bot; /* The lowest index of the array not searched yet */
- int top; /* The highest index of the array not searched yet */
-/*
- * Check the arguments.
- */
- if(!cpl)
- return 1;
- if(!line || word_end < 0 || !data) {
- cpl_record_error(cpl, "pca_path_completions: Invalid arguments.");
- return 1;
- };
-/*
- * Get the configuration arguments.
- */
- ppc = (PcaPathConf *) data;
-/*
- * Check that the callback data is a PcaPathConf structure returned
- * by new_PcaPathConf().
- */
- if(ppc->id != PPC_ID_CODE) {
- cpl_record_error(cpl,
- "Invalid callback data passed to pca_path_completions()");
- return 1;
- };
-/*
- * Get the filename cache.
- */
- pc = ppc->pc;
-/*
- * Get the start of the file name. If not specified by the caller,
- * identify it by searching backwards in the input line for an
- * unescaped space or the start of the line.
- */
- if(ppc->file_start < 0) {
- start_path = _pu_start_of_path(line, word_end);
- if(!start_path) {
- cpl_record_error(cpl, "Unable to find the start of the file name.");
- return 1;
- };
- } else {
- start_path = line + ppc->file_start;
- };
-/*
- * Get the index of the start of the word being completed.
- */
- word_start = start_path - line;
-/*
- * Work out the length of the prefix that is bein completed.
- */
- prefix_len = word_end - word_start;
-/*
- * If the word starts with a ~username expression or the root directory,
- * of it contains any directory separators, then completion must be
- * delegated to cpl_file_completions().
- */
- if(cpa_cmd_contains_path(start_path, prefix_len)) {
- cfc_file_start(pc->cfc, word_start);
- return cpl_file_completions(cpl, pc->cfc, line, word_end);
- };
-/*
- * Look up the specified file name in each of the directories of the path,
- * in the same order that they were listed in the path, and stop as soon
- * as an instance of the file is found.
- */
- for(node=pc->head; node; node=node->next) {
-/*
- * If the directory of the latest node is a relative pathname,
- * scan it for files of interest.
- */
- if(node->relative) {
- rst_CacheMem(node->mem);
- if(pca_scan_dir(pc, node->dir, node->mem) < 1)
- continue;
- node->files = node->mem->files;
- node->nfile = node->mem->nfiles;
- };
-/*
- * If needed, make a copy of the file-name being matched, with
- * escapes removed. Note that we need to do this anew every loop
- * iteration, because the above call to pca_scan_dir() uses
- * pc->path.
- */
- prefix = pca_prepare_prefix(pc, start_path, prefix_len, ppc->escaped);
- if(!prefix)
- return 1;
-/*
- * The directory entries are sorted, so we can perform a binary
- * search for an instance of the prefix being searched for.
- */
- bot = 0;
- top = node->nfile - 1;
- while(top >= bot) {
- int mid = (top + bot)/2;
- int test = strncmp(node->files[mid]+1, prefix, prefix_len);
- if(test > 0)
- top = mid - 1;
- else if(test < 0)
- bot = mid + 1;
- else {
- top = bot = mid;
- break;
- };
- };
-/*
- * If we found a match, look to see if any of its neigbors also match.
- */
- if(top == bot) {
- while(--bot >= 0 && strncmp(node->files[bot]+1, prefix, prefix_len) == 0)
- ;
- while(++top < node->nfile &&
- strncmp(node->files[top]+1, prefix, prefix_len) == 0)
- ;
-/*
- * We will have gone one too far in each direction.
- */
- bot++;
- top--;
-/*
- * Add the completions to the list after checking them against the
- * callers requirements.
- */
- for( ; bot<=top; bot++) {
- char *match = node->files[bot];
-/*
- * Form the full pathname of the file.
- */
- _pn_clear_path(pc->path);
- if(_pn_append_to_path(pc->path, node->dir, -1, 0) == NULL ||
- _pn_append_to_path(pc->path, match+1, -1, 0) == NULL) {
- strcpy(pc->errmsg, "Insufficient memory to complete file name");
- return 1;
- };
-/*
- * Should the file be included in the list of completions?
- */
- if(!pc->check_fn || match[0] == PCA_F_WANTED ||
- (match[0]==PCA_F_ENIGMA && pc->check_fn(pc->data, pc->path->name))) {
- match[0] = PCA_F_WANTED;
-/*
- * Copy the completion suffix into the work pathname pc->path->name,
- * adding backslash escapes if needed.
- */
- if(pca_prepare_suffix(pc, match + 1 + prefix_len,
- ppc->escaped))
- return 1;
-/*
- * Record the completion.
- */
- if(cpl_add_completion(cpl, line, word_start, word_end, pc->path->name,
- "", " "))
- return 1;
-/*
- * The file was rejected by the application.
- */
- } else {
- match[0] = PCA_F_IGNORE;
- };
- };
- };
- };
-/*
- * We now need to search for subdirectories of the current directory which
- * have matching prefixes. First, if needed, make a copy of the word being
- * matched, with escapes removed.
- */
- prefix = pca_prepare_prefix(pc, start_path, prefix_len, ppc->escaped);
- if(!prefix)
- return 1;
-/*
- * Now open the current directory.
- */
- if(_dr_open_dir(pc->dr, FS_PWD, NULL))
- return 0;
-/*
- * Scan the current directory for sub-directories whos names start with
- * the prefix that we are completing.
- */
- while((filename = _dr_next_file(pc->dr))) {
-/*
- * Does the latest filename match the prefix, and is it a directory?
- */
- if(strncmp(filename, prefix, prefix_len) == 0 && _pu_path_is_dir(filename)){
-/*
- * Record the completion.
- */
- if(pca_prepare_suffix(pc, filename + prefix_len, ppc->escaped) ||
- cpl_add_completion(cpl, line, word_start, word_end, pc->path->name,
- FS_DIR_SEP, FS_DIR_SEP))
- return 1;
-/*
- * The prefix in pc->path->name will have been overwritten by
- * pca_prepare_suffix(). Restore it here.
- */
- prefix = pca_prepare_prefix(pc, start_path, prefix_len, ppc->escaped);
- if(!prefix)
- return 1;
- };
- };
- _dr_close_dir(pc->dr);
- return 0;
-}
-
-/*.......................................................................
- * Using the work buffer pc->path, make a suitably escaped copy of a
- * given completion suffix, ready to be passed to cpl_add_completion().
- *
- * Input:
- * pc PathCache * The filename cache resource object.
- * suffix char * The suffix to be copied.
- * add_escapes int If true, escape special characters.
- * Output:
- * return int 0 - OK.
- * 1 - Error.
- */
-static int pca_prepare_suffix(PathCache *pc, const char *suffix,
- int add_escapes)
-{
- const char *sptr; /* A pointer into suffix[] */
- int nbsl; /* The number of backslashes to add to the suffix */
- int i;
-/*
- * How long is the suffix?
- */
- int suffix_len = strlen(suffix);
-/*
- * Clear the work buffer.
- */
- _pn_clear_path(pc->path);
-/*
- * Count the number of backslashes that will have to be added to
- * escape spaces, tabs, backslashes and wildcard characters.
- */
- nbsl = 0;
- if(add_escapes) {
- for(sptr = suffix; *sptr; sptr++) {
- switch(*sptr) {
- case ' ': case '\t': case '\\': case '*': case '?': case '[':
- nbsl++;
- break;
- };
- };
- };
-/*
- * Arrange for the output path buffer to have sufficient room for the
- * both the suffix and any backslashes that have to be inserted.
- */
- if(_pn_resize_path(pc->path, suffix_len + nbsl) == NULL) {
- strcpy(pc->errmsg, "Insufficient memory to complete file name");
- return 1;
- };
-/*
- * If the suffix doesn't need any escapes, copy it directly into the
- * work buffer.
- */
- if(nbsl==0) {
- strcpy(pc->path->name, suffix);
- } else {
-/*
- * Make a copy with special characters escaped?
- */
- if(nbsl > 0) {
- const char *src = suffix;
- char *dst = pc->path->name;
- for(i=0; i<suffix_len; i++) {
- switch(*src) {
- case ' ': case '\t': case '\\': case '*': case '?': case '[':
- *dst++ = '\\';
- };
- *dst++ = *src++;
- };
- *dst = '\0';
- };
- };
- return 0;
-}
-
-/*.......................................................................
- * Return non-zero if the specified string appears to start with a pathname.
- *
- * Input:
- * prefix const char * The filename prefix to check.
- * prefix_len int The length of the prefix.
- * Output:
- * return int 0 - Doesn't start with a path name.
- * 1 - Does start with a path name.
- */
-static int cpa_cmd_contains_path(const char *prefix, int prefix_len)
-{
- int i;
-/*
- * If the filename starts with a ~, then this implies a ~username
- * expression, which constitutes a pathname.
- */
- if(*prefix == '~')
- return 1;
-/*
- * If the filename starts with the root directory, then it obviously
- * starts with a pathname.
- */
- if(prefix_len >= FS_ROOT_DIR_LEN &&
- strncmp(prefix, FS_ROOT_DIR, FS_ROOT_DIR_LEN) == 0)
- return 1;
-/*
- * Search the prefix for directory separators, returning as soon as
- * any are found, since their presence indicates that the filename
- * starts with a pathname specification (valid or otherwise).
- */
- for(i=0; i<prefix_len; i++) {
- if(prefix_len - i >= FS_DIR_SEP_LEN &&
- strncmp(prefix + i, FS_DIR_SEP, FS_DIR_SEP_LEN) == 0)
- return 1;
- };
-/*
- * The file name doesn't appear to start with a pathname specification.
- */
- return 0;
-}
-
-/*.......................................................................
- * If needed make a new copy of the prefix being matched, in pc->path->name,
- * but with escapes removed. If no escapes are to be removed, simply return
- * the original prefix string.
- *
- * Input:
- * pc PathCache * The cache being searched.
- * prefix const char * The prefix to be processed.
- * prefix_len size_t The length of the prefix.
- * escaped int If true, return a copy with escapes removed.
- * Output:
- * return const char * The prepared prefix, or NULL on error, in
- * which case an error message will have been
- * left in pc->errmsg.
- */
-static const char *pca_prepare_prefix(PathCache *pc, const char *prefix,
- size_t prefix_len, int escaped)
-{
-/*
- * Make a copy with escapes removed?
- */
- if(escaped) {
- _pn_clear_path(pc->path);
- if(_pn_append_to_path(pc->path, prefix, prefix_len, 1) == NULL) {
- strcpy(pc->errmsg, "Insufficient memory to complete filename");
- return NULL;
- };
- return pc->path->name;
- };
- return prefix;
-}
-
-/*.......................................................................
- * If backslashes in the filename should be treated as literal
- * characters, call the following function with literal=1. Otherwise
- * the default is to treat them as escape characters, used for escaping
- * spaces etc..
- *
- * Input:
- * ppc PcaPathConf * The pca_path_completions() configuration object
- * to be configured.
- * literal int Pass non-zero here to enable literal interpretation
- * of backslashes. Pass 0 to turn off literal
- * interpretation.
- */
-void ppc_literal_escapes(PcaPathConf *ppc, int literal)
-{
- if(ppc)
- ppc->escaped = !literal;
-}
-
-/*.......................................................................
- * Call this function if you know where the index at which the
- * filename prefix starts in the input line. Otherwise by default,
- * or if you specify start_index to be -1, the filename is taken
- * to start after the first unescaped space preceding the cursor,
- * or the start of the line, which ever comes first.
- *
- * Input:
- * ppc PcaPathConf * The pca_path_completions() configuration object
- * to be configured.
- * start_index int The index of the start of the filename in
- * the input line, or -1 to select the default.
- */
-void ppc_file_start(PcaPathConf *ppc, int start_index)
-{
- if(ppc)
- ppc->file_start = start_index;
-}
-
-/*.......................................................................
- * Expand any ~user expression found at the start of a path, leaving
- * either an empty string in pc->path if there is no ~user expression,
- * or the corresponding home directory.
- *
- * Input:
- * pc PathCache * The filename cache.
- * path const char * The path to expand.
- * pathlen int The max number of characters to look at in path[].
- * literal int If true, treat backslashes as literal characters
- * instead of escapes.
- * Input/Output:
- * endp const char * A pointer to the next unprocessed character in
- * path[] will be assigned to *endp.
- * Output:
- * return int 0 - OK
- * 1 - Error (a description will have been placed
- * in pc->errmsg[]).
- */
-static int pca_expand_tilde(PathCache *pc, const char *path, int pathlen,
- int literal, const char **endp)
-{
- const char *pptr = path; /* A pointer into path[] */
- const char *homedir=NULL; /* A home directory */
-/*
- * Clear the pathname buffer.
- */
- _pn_clear_path(pc->path);
-/*
- * If the first character is a tilde, then perform home-directory
- * interpolation.
- */
- if(*pptr == '~') {
-/*
- * Skip the tilde character and attempt to read the username that follows
- * it, into pc->usrnam[].
- */
- if(pca_read_username(pc, ++pptr, pathlen-1, literal, &pptr))
- return 1;
-/*
- * Attempt to lookup the home directory of the user.
- */
- homedir = _hd_lookup_home_dir(pc->home, pc->usrnam);
- if(!homedir) {
- strncpy(pc->errmsg, _hd_last_home_dir_error(pc->home), ERRLEN);
- pc->errmsg[ERRLEN] = '\0';
- return 1;
- };
-/*
- * Append the home directory to the pathname string.
- */
- if(_pn_append_to_path(pc->path, homedir, -1, 0) == NULL) {
- strcpy(pc->errmsg, "Insufficient memory for home directory expansion");
- return 1;
- };
- };
-/*
- * ~user and ~ are usually followed by a directory separator to
- * separate them from the file contained in the home directory.
- * If the home directory is the root directory, then we don't want
- * to follow the home directory by a directory separator, so we should
- * skip over it so that it doesn't get copied into the output pathname
- */
- if(homedir && strcmp(homedir, FS_ROOT_DIR) == 0 &&
- (pptr-path) + FS_DIR_SEP_LEN < pathlen &&
- strncmp(pptr, FS_DIR_SEP, FS_DIR_SEP_LEN) == 0) {
- pptr += FS_DIR_SEP_LEN;
- };
-/*
- * Return a pointer to the next unprocessed character.
- */
- *endp = pptr;
- return 0;
-}
-
-/*.......................................................................
- * Clear the filename status codes that are recorded before each filename
- * in the cache.
- *
- * Input:
- * pc PathCache * The filename cache.
- */
-static void pca_remove_marks(PathCache *pc)
-{
- PathNode *node; /* A node in the list of directories in the path */
- int i;
-/*
- * Traverse the absolute directories of the path, clearing the
- * filename status marks that precede each filename.
- */
- for(node=pc->head; node; node=node->next) {
- if(!node->relative) {
- for(i=0; i<node->nfile; i++)
- *node->files[i] = PCA_F_ENIGMA;
- };
- };
- return;
-}
diff --git a/libtecla-1.4.1/stringrp.c b/libtecla-1.4.1/stringrp.c
deleted file mode 100644
index fe7d875..0000000
--- a/libtecla-1.4.1/stringrp.c
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "freelist.h"
-#include "stringrp.h"
-
-/*
- * StringSegment objects store lots of small strings in larger
- * character arrays. Since the total length of all of the strings can't
- * be known in advance, an extensible list of large character arrays,
- * called string-segments are used.
- */
-typedef struct StringSegment StringSegment;
-struct StringSegment {
- StringSegment *next; /* A pointer to the next segment in the list */
- char *block; /* An array of characters to be shared between strings */
- int unused; /* The amount of unused space at the end of block[] */
-};
-
-/*
- * StringGroup is typedef'd in stringrp.h.
- */
-struct StringGroup {
- FreeList *node_mem; /* The StringSegment free-list */
- int block_size; /* The dimension of each character array block */
- StringSegment *head; /* The list of character arrays */
-};
-
-/*
- * Specify how many StringSegment's to allocate at a time.
- */
-#define STR_SEG_BLK 20
-
-/*.......................................................................
- * Create a new StringGroup object.
- *
- * Input:
- * segment_size int The length of each of the large character
- * arrays in which multiple strings will be
- * stored. This sets the length of longest
- * string that can be stored, and for efficiency
- * should be at least 10 times as large as
- * the average string that will be stored.
- * Output:
- * return StringGroup * The new object, or NULL on error.
- */
-StringGroup *_new_StringGroup(int segment_size)
-{
- StringGroup *sg; /* The object to be returned */
-/*
- * Check the arguments.
- */
- if(segment_size < 1) {
- fprintf(stderr, "_new_StringGroup: Invalid segment_size argument.\n");
- return NULL;
- };
-/*
- * Allocate the container.
- */
- sg = (StringGroup *) malloc(sizeof(StringGroup));
- if(!sg) {
- fprintf(stderr, "_new_StringGroup: Insufficient memory.\n");
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize the
- * container at least up to the point at which it can safely be passed
- * to _del_StringGroup().
- */
- sg->node_mem = NULL;
- sg->head = NULL;
- sg->block_size = segment_size;
-/*
- * Allocate the free list that is used to allocate list nodes.
- */
- sg->node_mem = _new_FreeList("_new_StringGroup", sizeof(StringSegment),
- STR_SEG_BLK);
- if(!sg->node_mem)
- return _del_StringGroup(sg);
- return sg;
-}
-
-/*.......................................................................
- * Delete a StringGroup object.
- *
- * Input:
- * sg StringGroup * The object to be deleted.
- * Output:
- * return StringGroup * The deleted object (always NULL).
- */
-StringGroup *_del_StringGroup(StringGroup *sg)
-{
- if(sg) {
- StringSegment *node;
-/*
- * Delete the character arrays.
- */
- for(node=sg->head; node; node=node->next) {
- if(node->block)
- free(node->block);
- node->block = NULL;
- };
-/*
- * Delete the list nodes that contained the string segments.
- */
- sg->node_mem = _del_FreeList("_del_StringGroup", sg->node_mem, 1);
- sg->head = NULL; /* Already deleted by deleting sg->node_mem */
-/*
- * Delete the container.
- */
- free(sg);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Make a copy of a string in the specified string group, and return
- * a pointer to the copy.
- *
- * Input:
- * sg StringGroup * The group to store the string in.
- * string const char * The string to be recorded.
- * remove_escapes int If true, omit backslashes which escape
- * other characters when making the copy.
- * Output:
- * return char * The pointer to the copy of the string,
- * or NULL if there was insufficient memory.
- */
-char *_sg_store_string(StringGroup *sg, const char *string, int remove_escapes)
-{
- char *copy; /* The recorded copy of string[] */
-/*
- * Check the arguments.
- */
- if(!sg || !string)
- return NULL;
-/*
- * Get memory for the string.
- */
- copy = _sg_alloc_string(sg, strlen(string));
- if(copy) {
-/*
- * If needed, remove backslash escapes while copying the input string
- * into the cache string.
- */
- if(remove_escapes) {
- int escaped = 0; /* True if the next character should be */
- /* escaped. */
- const char *src = string; /* A pointer into the input string */
- char *dst = copy; /* A pointer into the cached copy of the */
- /* string. */
- while(*src) {
- if(!escaped && *src == '\\') {
- escaped = 1;
- src++;
- } else {
- escaped = 0;
- *dst++ = *src++;
- };
- };
- *dst = '\0';
-/*
- * If escapes have already been removed, copy the input string directly
- * into the cache.
- */
- } else {
- strcpy(copy, string);
- };
- };
-/*
- * Return a pointer to the copy of the string (or NULL if the allocation
- * failed).
- */
- return copy;
-}
-
-/*.......................................................................
- * Allocate memory for a string of a given length.
- *
- * Input:
- * sg StringGroup * The group to store the string in.
- * length int The required length of the string.
- * Output:
- * return char * The pointer to the copy of the string,
- * or NULL if there was insufficient memory.
- */
-char *_sg_alloc_string(StringGroup *sg, int length)
-{
- StringSegment *node; /* A node of the list of string segments */
- char *copy; /* The allocated string */
-/*
- * If the string is longer than block_size, then we can't record it.
- */
- if(length > sg->block_size || length < 0)
- return NULL;
-/*
- * See if there is room to record the string in one of the existing
- * string segments.
- */
- for(node=sg->head; node && node->unused <= length; node=node->next)
- ;
-/*
- * If there wasn't room, allocate a new string segment.
- */
- if(!node) {
- node = (StringSegment *) _new_FreeListNode(sg->node_mem);
- if(!node)
- return NULL;
-/*
- * Initialize the segment.
- */
- node->next = NULL;
- node->block = NULL;
- node->unused = sg->block_size;
-/*
- * Attempt to allocate the string segment character array.
- */
- node->block = (char *) malloc(sg->block_size);
- if(!node->block)
- return NULL;
-/*
- * Prepend the node to the list.
- */
- node->next = sg->head;
- sg->head = node;
- };
-/*
- * Get memory for the string.
- */
- copy = node->block + sg->block_size - node->unused;
- node->unused -= length + 1;
-/*
- * Return a pointer to the string memory.
- */
- return copy;
-}
-
-/*.......................................................................
- * Delete all of the strings that are currently stored by a specified
- * StringGroup object.
- *
- * Input:
- * sg StringGroup * The group of strings to clear.
- */
-void _clr_StringGroup(StringGroup *sg)
-{
- StringSegment *node; /* A node in the list of string segments */
-/*
- * Mark all of the string segments as unoccupied.
- */
- for(node=sg->head; node; node=node->next)
- node->unused = sg->block_size;
- return;
-}
diff --git a/libtecla-1.4.1/stringrp.h b/libtecla-1.4.1/stringrp.h
deleted file mode 100644
index 8b15ce9..0000000
--- a/libtecla-1.4.1/stringrp.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef stringrp_h
-#define stringrp_h
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-/*
- * StringGroup objects provide memory for modules that need to
- * allocate lots of small strings without needing to free any of them
- * individually, but rather is happy to free them all at the same
- * time. Taking advantage of these properties, StringGroup objects
- * avoid the heap fragmentation that tends to occur when lots of small
- * strings are allocated directly from the heap and later free'd. They
- * do this by allocating a list of large character arrays in each of
- * which multiple strings are stored. Thus instead of allocating lots
- * of small strings, a few large character arrays are allocated. When
- * the strings are free'd on mass, this list of character arrays is
- * maintained, ready for subsequent use in recording another set of
- * strings.
- */
-typedef struct StringGroup StringGroup;
-
-/*
- * The following constructor allocates a string-allocation object.
- * The segment_size argument specifies how long each string segment
- * array should be. This should be at least 10 times the length of
- * the average string to be recorded in the string group, and
- * sets the length of the longest string that can be stored.
- */
-StringGroup *_new_StringGroup(int segment_size);
-
-/*
- * Delete all of the strings that are currently stored by a specified
- * StringGroup object.
- */
-void _clr_StringGroup(StringGroup *sg);
-
-/*
- * Make a copy of the specified string, returning a pointer to
- * the copy, or NULL if there was insufficient memory. If the
- * remove_escapes argument is non-zero, backslashes that escape
- * other characters will be removed.
- */
-char *_sg_store_string(StringGroup *sg, const char *string, int remove_escapes);
-
-/*
- * Allocate memory for a string of a given length.
- */
-char *_sg_alloc_string(StringGroup *sg, int length);
-
-/*
- * Delete a StringGroup object (and all of the strings that it
- * contains).
- */
-StringGroup *_del_StringGroup(StringGroup *sg);
-
-#endif
diff --git a/libtecla-1.4.1/strngmem.c b/libtecla-1.4.1/strngmem.c
deleted file mode 100644
index fedf4ff..0000000
--- a/libtecla-1.4.1/strngmem.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#include "strngmem.h"
-#include "freelist.h"
-
-struct StringMem {
- unsigned long nmalloc; /* The number of strings allocated with malloc */
- FreeList *fl; /* The free-list */
-};
-
-/*.......................................................................
- * Create a string free-list container and the first block of its free-list.
- *
- * Input:
- * caller const char * The name of the calling function, or NULL
- * to not report errors to stderr.
- * blocking_factor int The blocking_factor argument specifies how
- * many strings of length SM_STRLEN
- * bytes (see stringmem.h) are allocated in each
- * free-list block.
- * For example if blocking_factor=64 and
- * SM_STRLEN=16, then each new
- * free-list block will take 1K of memory.
- * Output:
- * return StringMem * The new free-list container, or NULL on
- * error.
- */
-StringMem *_new_StringMem(const char *caller, unsigned blocking_factor)
-{
- StringMem *sm; /* The container to be returned. */
-/*
- * Check arguments.
- */
- if(blocking_factor < 1) {
- if(caller) {
- fprintf(stderr, "_new_StringMem (%s): Bad blocking factor (%d).\n",
- caller, blocking_factor);
- };
- return NULL;
- };
-/*
- * Allocate the container.
- */
- sm = (StringMem *) malloc(sizeof(StringMem));
- if(!sm) {
- if(caller)
- fprintf(stderr, "_new_StringMem (%s): Insufficient memory.\n", caller);
- return NULL;
- };
-/*
- * Before attempting any operation that might fail, initialize
- * the container at least up to the point at which it can safely
- * be passed to _del_StringMem().
- */
- sm->nmalloc = 0;
- sm->fl = NULL;
-/*
- * Allocate the free-list.
- */
- sm->fl = _new_FreeList(caller, SM_STRLEN, blocking_factor);
- if(!sm->fl)
- return _del_StringMem(caller, sm, 1);
-/*
- * Return the free-list container.
- */
- return sm;
-}
-
-/*.......................................................................
- * Delete a string free-list.
- *
- * Input:
- * caller const char * The name of the calling function, or NULL to
- * not report errors to stderr.
- * sm StringMem * The string free-list to be deleted, or NULL.
- * force int If force==0 then _del_StringMem() will complain
- * and refuse to delete the free-list if any
- * of nodes have not been returned to the free-list.
- * If force!=0 then _del_StringMem() will not check
- * whether any nodes are still in use and will
- * always delete the list.
- * Output:
- * return StringMem * Always NULL (even if the list couldn't be
- * deleted).
- */
-StringMem *_del_StringMem(const char *caller, StringMem *sm, int force)
-{
- if(sm) {
-/*
- * Check whether any strings have not been returned to the free-list.
- */
- if(!force && (sm->nmalloc > 0 || _busy_FreeListNodes(sm->fl) > 0)) {
- if(caller)
- fprintf(stderr, "_del_StringMem (%s): Free-list in use.\n", caller);
- return NULL;
- };
-/*
- * Delete the free-list.
- */
- sm->fl = _del_FreeList(caller, sm->fl, force);
-/*
- * Delete the container.
- */
- free(sm);
- };
- return NULL;
-}
-
-/*.......................................................................
- * Allocate an array of 'length' chars.
- *
- * Input:
- * sm StringMem * The string free-list to allocate from.
- * length size_t The length of the new string (including '\0').
- * Output:
- * return char * The new string or NULL on error.
- */
-char *_new_StringMemString(StringMem *sm, size_t length)
-{
- char *string; /* The string to be returned */
- int was_malloc; /* True if malloc was used to allocate the string */
-/*
- * Check arguments.
- */
- if(!sm)
- return NULL;
- if(length < 1)
- length = 1;
-/*
- * Allocate the new node from the free list if possible.
- */
- if(length < SM_STRLEN) {
- string = (char *)_new_FreeListNode(sm->fl);
- if(!string)
- return NULL;
- was_malloc = 0;
- } else {
- string = (char *) malloc(length+1); /* Leave room for the flag byte */
- if(!string)
- return NULL;
-/*
- * Count malloc allocations.
- */
- was_malloc = 1;
- sm->nmalloc++;
- };
-/*
- * Use the first byte of the string to record whether the string was
- * allocated with malloc or from the free-list. Then return the rest
- * of the string for use by the user.
- */
- string[0] = (char) was_malloc;
- return string + 1;
-}
-
-/*.......................................................................
- * Free a string that was previously returned by _new_StringMemString().
- *
- * Input:
- * sm StringMem * The free-list from which the string was originally
- * allocated.
- * s char * The string to be returned to the free-list, or NULL.
- * Output:
- * return char * Always NULL.
- */
-char *_del_StringMemString(StringMem *sm, char *s)
-{
- int was_malloc; /* True if the string originally came from malloc() */
-/*
- * Is there anything to be deleted?
- */
- if(s && sm) {
-/*
- * Retrieve the true string pointer. This is one less than the one
- * returned by _new_StringMemString() because the first byte of the
- * allocated memory is reserved by _new_StringMemString as a flag byte
- * to say whether the memory was allocated from the free-list or directly
- * from malloc().
- */
- s--;
-/*
- * Get the origination flag.
- */
- was_malloc = s[0];
- if(was_malloc) {
- free(s);
- s = NULL;
- sm->nmalloc--;
- } else {
- s = (char *) _del_FreeListNode(sm->fl, s);
- };
- };
- return NULL;
-}
diff --git a/libtecla-1.4.1/strngmem.h b/libtecla-1.4.1/strngmem.h
deleted file mode 100644
index 5737ae0..0000000
--- a/libtecla-1.4.1/strngmem.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef stringmem_h
-#define stringmem_h
-/*
- * Copyright (c) 2000, 2001 by Martin C. Shepherd.
- *
- * All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, and/or sell copies of the Software, and to permit persons
- * to whom the Software is furnished to do so, provided that the above
- * copyright notice(s) and this permission notice appear in all copies of
- * the Software and that both the above copyright notice(s) and this
- * permission notice appear in supporting documentation.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Except as contained in this notice, the name of a copyright holder
- * shall not be used in advertising or otherwise to promote the sale, use
- * or other dealings in this Software without prior written authorization
- * of the copyright holder.
- */
-
-typedef struct StringMem StringMem;
-
-/*
- * Applications that dynamically allocate lots of small strings
- * run the risk of significantly fragmenting the heap. This module
- * aims to reduce this risk by allocating large arrays of small fixed
- * length strings, arranging them as a free-list and allowing
- * callers to allocate from the list. Strings that are too long
- * to be allocated from the free-list are allocated from the heap.
- * Since typical implementations of malloc() eat up a minimum of
- * 16 bytes per call to malloc() [because of alignment and space
- * management constraints] it makes sense to set the free-list
- * string size to 16 bytes. Note that unlike malloc() which typically
- * keeps 8 bytes per allocation for its own use, our allocator will
- * return all but one of the 16 bytes for use. One hidden byte of overhead
- * is reserved for flagging whether the string was allocated directly
- * from malloc or from the free-list.
- */
-
-/*
- * Set the length of each free-list string. The longest string that
- * will be returned without calling malloc() will be one less than
- * this number.
- */
-#define SM_STRLEN 16
-
-/*
- * Create a string free-list container and the first block of its free-list.
- */
-StringMem *_new_StringMem(const char *caller, unsigned blocking_factor);
-
-/*
- * Delete a string free-list.
- */
-StringMem *_del_StringMem(const char *caller, StringMem *sm, int force);
-
-/*
- * Allocate an array of 'length' chars.
- */
-char *_new_StringMemString(StringMem *sm, size_t size);
-
-/*
- * Free a string that was previously returned by _new_StringMemString().
- */
-char *_del_StringMemString(StringMem *sm, char *s);
-
-#endif
diff --git a/libtecla-1.4.1/update_html b/libtecla-1.4.1/update_html
deleted file mode 100755
index 35625a7..0000000
--- a/libtecla-1.4.1/update_html
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-# Convert man pages to html files.
-
-cd man3
-for page in *.3;do
- if [ "`wc -l $page | awk '{print $1}'`" -gt 1 ]; then
- html="../html/`echo $page | sed -e 's/.3$/.html/'`"
- man2html $page > $html
- for ref in "libtecla(3)" "cpl_complete_word(3)" "ef_expand_file(3)" "gl_get_line(3)" "pca_lookup_file(3)" "enhance(3)"; do
- link="`echo $ref | sed 's/(3)/.html/'`"
- ed -s $html << EOF
- 1,\$s|$ref|<a href="$link">&</a>|g
- w
- q
-EOF
- done
- fi
-done
-
-# Convert the change log into a web page.
-
-cd ../html
-echo '<HEAD><TITLE>The tecla library change log</TITLE></HEAD>' > changes.html
-echo '<BODY bgcolor=add8e6><PRE>' >> changes.html
-cat ../CHANGES >> changes.html
-echo '</PRE></BODY>' >> changes.html
-
-# Do the same to the release-notes file.
-
-cd ../html
-echo '<HEAD><TITLE>The tecla library release notes</TITLE></HEAD>' > release.html
-echo '<BODY bgcolor=add8e6><PRE>' >> release.html
-cat ../RELEASE.NOTES >> release.html
-echo '</PRE></BODY>' >> release.html
diff --git a/libtecla-1.4.1/update_version b/libtecla-1.4.1/update_version
deleted file mode 100755
index c18f714..0000000
--- a/libtecla-1.4.1/update_version
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/sh
-#-----------------------------------------------------------------------
-# Change the version number of the library. This changes the number in
-# every file that it is known to appear in.
-#
-# Usage:
-# update_version major minor micro
-#-----------------------------------------------------------------------
-
-usage="$0 major minor micro"
-
-if [ $# -ne 3 ]; then
- echo $usage
- exit 1
-fi
-
-# Get the three components of the version number.
-
-major="$1"
-minor="$2"
-micro="$3"
-
-# Everything will need to be reconfigured after this change, so
-# discard any existing configuration.
-
-make distclean 2>/dev/null
-
-# Check that the version components are all positive integers.
-
-for c in $major $minor $micro; do
- if echo "$c" | awk '{exit $1 ~ /^[0-9]+$/}'; then
- echo 'Version number components must all be positive integers.'
- exit 1
- fi
-done
-
-#
-# Update the version number in the configure.in script.
-#
-ed -s configure.in << EOF
-/^MAJOR_VER=\"[0-9][0-9]*\"/ s/^.*$/MAJOR_VER=\"$major\"/
-/^MINOR_VER=\"[0-9][0-9]*\"/ s/^.*$/MINOR_VER=\"$minor\"/
-/^MICRO_VER=\"[0-9][0-9]*\"/ s/^.*$/MICRO_VER=\"$micro\"/
-w
-q
-EOF
-
-if which autoconf 1>/dev/null 2>&1; then
- autoconf
-else
- echo 'Note that autoconf needs to be run.'
-fi
-
-#
-# Update the version number in the libtecla header file script.
-#
-ed -s libtecla.h << EOF
-/^#define TECLA_MAJOR_VER [0-9][0-9]*/ s/^.*$/#define TECLA_MAJOR_VER $major/
-/^#define TECLA_MINOR_VER [0-9][0-9]*/ s/^.*$/#define TECLA_MINOR_VER $minor/
-/^#define TECLA_MICRO_VER [0-9][0-9]*/ s/^.*$/#define TECLA_MICRO_VER $micro/
-w
-q
-EOF
-
-#
-# Update the version number in the README file.
-#
-ed -s README << EOF
-/version [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]* / s/version [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*/version $major.$minor.$micro/
-w
-q
-EOF
-
-#
-# Update the version number in the html index file.
-#
-ed -s html/index.html << EOF
-/version [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\./ s/version [0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*/version $major.$minor.$micro/g
-/libtecla-[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\./ s/libtecla-[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\./libtecla-$major.$minor.$micro./g
-w
-q
-EOF
diff --git a/libtecla-1.4.1/version.c b/libtecla-1.4.1/version.c
deleted file mode 100644
index 9e1275e..0000000
--- a/libtecla-1.4.1/version.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include "libtecla.h"
-
-/*.......................................................................
- * Return the version number of the tecla library.
- *
- * Input:
- * major int * The major version number of the library
- * will be assigned to *major. This number is
- * only incremented when a change to the library is
- * made that breaks binary (shared library) and/or
- * compilation backwards compatibility.
- * minor int * The minor version number of the library
- * will be assigned to *minor. This number is
- * incremented whenever new functions are added to
- * the public API.
- * micro int * The micro version number of the library will be
- * assigned to *micro. This number is incremented
- * whenever internal changes are made that don't
- * change the public API, such as bug fixes and
- * performance enhancements.
- */
-void libtecla_version(int *major, int *minor, int *micro)
-{
- if(major)
- *major = TECLA_MAJOR_VER;
- if(minor)
- *minor = TECLA_MINOR_VER;
- if(micro)
- *micro = TECLA_MICRO_VER;
-}
diff --git a/ncurses-5.2/ANNOUNCE b/ncurses-5.2/ANNOUNCE
deleted file mode 100644
index 7b5f4ef..0000000
--- a/ncurses-5.2/ANNOUNCE
+++ /dev/null
@@ -1,486 +0,0 @@
-
- Announcing ncurses 5.2
-
- 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.
-
- 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.
-
- 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 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
- manual pages are provided for the library and tools.
-
- The ncurses distribution is available via anonymous FTP at the GNU
- distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses.
- It is also available at [2]ftp://dickey.his.com/ncurses.
-
- 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.
-
- 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.
-
- 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.
-
- 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.
-
- 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.
- * 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.
- * 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).
-
- 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
- documented).
- * Full support for SVr4 curses features including keyboard mapping,
- color, forms-drawing with ACS characters, and automatic
- recognition of keypad and function keys.
- * An emulation of the SVr4 panels library, supporting a stack of
- windows with backing store, is included.
- * An emulation of the SVr4 menus library, supporting a uniform but
- flexible interface for menu programming, is included.
- * An emulation of the SVr4 form library, supporting data collection
- 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
- 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
- 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
- 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
- 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
- capability.
- * Ada95 and C++ bindings.
- * Support for mouse event reporting with X Window xterm and OS/2
- console windows.
- * Extended mouse support via Alessandro Rubini's gpm package.
- * 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
- 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.
- * Better cursor-movement optimization. The package now features a
- 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
- 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
- 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
- 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
- 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
- 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
- V.)
- * 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
- compiled entries in either the system terminfo directory or the
- 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
- $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
- to, but it's there.
- * 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
- have a corresponding function which may be linked (and will be
- prototype-checked) if the macro definition is disabled with
- #undef.
- * 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
- 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.
-
- The ncurses code has been tested with a wide variety of applications
- including (versions starting with those noted):
-
- cdk
- Curses Development Kit
- [3]http://www.vexus.ca/CDK.html
- [4]http://dickey.his.com/cdk.
-
- ded
- directory-editor
- [5]http://dickey.his.com/ded.
-
- dialog
- the underlying application used in Slackware's setup, and the
- basis for similar applications on GNU/Linux.
- [6]http://dickey.his.com/dialog.
-
- lynx
- the character-screen WWW browser
- [7]http://lynx.isc.org/release.
-
- Midnight Commander 4.1
- file manager
- [8]www.gnome.org/mc/.
-
- mutt
- mail utility
- [9]http://www.mutt.org.
-
- ncftp
- file-transfer utility
- [10]http://www.ncftp.com.
-
- nvi
- New vi versions 1.50 are able to use ncurses versions 1.9.7 and
- later.
- [11]http://www.bostic.com/vi/.
-
- tin
- newsreader, supporting color, MIME
- [12]http://www.tin.org.
-
- taper
- tape archive utility
- [13]http://members.iinet.net.au/~yusuf/taper/.
-
- vh-1.6
- Volks-Hypertext browser for the Jargon File
- [14]http://www.bg.debian.org/Packages/unstable/text/vh.html.
-
- as well as some that use ncurses for the terminfo support alone:
-
- minicom
- terminal emulator
- [15]http://www.pp.clinet.fi/~walker/minicom.html.
-
- vile
- vi-like-emacs
- [16]http://dickey.his.com/vile.
-
- 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
- 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.
-
- 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.
-
- Beta versions of ncurses and patches to the current release are made
- available at [23]ftp://dickey.his.com/ncurses.
-
-Future Plans
-
- * Extended-level XPG4 conformance, with internationalization
- support.
- * Ports to more systems, including DOS and Windows.
-
- We need people to help with these projects. If you are interested in
- 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.
- [24]http://earthspace.net/~esr/terminfo.
-
- 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
- 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
- 7. http://lynx.isc.org/release/
- 8. file://localhost/usr/build/ncurses/ncurses-5.2-20001021/doc/html/www.gnome.org/mc/
- 9. http://www.mutt.org/
- 10. http://www.ncftp.com/
- 11. http://www.bostic.com/vi/
- 12. http://www.tin.org/
- 13. http://members.iinet.net.au/~yusuf/taper/
- 14. http://www.bg.debian.org/Packages/unstable/text/vh.html
- 15. http://www.pp.clinet.fi/~walker/minicom.html
- 16. http://dickey.his.com/vile/vile.html
- 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
- 21. mailto:dickey@herndon4.his.com
- 22. mailto:bug-ncurses@gnu.org
- 23. ftp://dickey.his.com/ncurses
- 24. http://earthspace.net/~esr/terminfo
- 25. http://www.cs.utk.edu/~shuford/terminal_index.html
diff --git a/ncurses-5.2/Ada95/Makefile.in b/ncurses-5.2/Ada95/Makefile.in
deleted file mode 100644
index 8dcf186..0000000
--- a/ncurses-5.2/Ada95/Makefile.in
+++ /dev/null
@@ -1,67 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-#
-# Version Control
-# $Revision$
-#
-SHELL = /bin/sh
-THIS = Makefile
-
-SUBDIRS = @ADA_SUBDIRS@
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-
-all \
-libs \
-sources \
-install \
-install.libs \
-uninstall \
-uninstall.libs ::
- for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
- done
-
-clean \
-mostlyclean ::
- for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
- done
-
-distclean \
-realclean ::
- for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
- done
- rm -f Makefile
-
-install.data :
- @
diff --git a/ncurses-5.2/Ada95/README b/ncurses-5.2/Ada95/README
deleted file mode 100644
index 8a53061..0000000
--- a/ncurses-5.2/Ada95/README
+++ /dev/null
@@ -1,33 +0,0 @@
--------------------------------------------------------------------------------
--- 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. --
--------------------------------------------------------------------------------
-
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-
-The documentation is provided in HTML format in the ./html
-subdirectory. The main document is named index.html
-
diff --git a/ncurses-5.2/Ada95/TODO b/ncurses-5.2/Ada95/TODO
deleted file mode 100644
index ece4d96..0000000
--- a/ncurses-5.2/Ada95/TODO
+++ /dev/null
@@ -1,27 +0,0 @@
--- $Id$
-
--- Intensive testing
- Perhaps the delivery of the Beta will help a bit.
-
--- Documentation
- Like most WEB pages: under continuous construction
-
--- Style cleanup
-
--- Alternate functions for procedures with out params
- Comfort purpose
-
--- Sample program
- Under continuous construction (and it's not a WEB page!!!)
-
--- Make the binding objects a shared library
- They are rather large, so it would make sense, otherwise Ada95
- would look too large, although the generated code is as compact
- as C or C++. I'll wait a bit until the GNAT people provide some
- better support to construct shared libraries.
-
--- Think about more inlining
-
--- Check for memory leaks.
- Oh I would like it so much if the GNAT guys would put an optional
- GC into their system.
diff --git a/ncurses-5.2/Ada95/gen/Makefile.in b/ncurses-5.2/Ada95/gen/Makefile.in
deleted file mode 100644
index 31d3fb3..0000000
--- a/ncurses-5.2/Ada95/gen/Makefile.in
+++ /dev/null
@@ -1,429 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-#
-# Version Control
-# $Revision$
-#
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-x = @PROG_EXT@
-
-top_srcdir = @top_srcdir@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-ADA_INCLUDE = $(DESTDIR)@ADA_INCLUDE@
-ADA_OBJECTS = $(DESTDIR)@ADA_OBJECTS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-HOST_CC = @BUILD_CC@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @ACPPFLAGS@ \
- -DHAVE_CONFIG_H -I$(srcdir)
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(HOST_CC)
-LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS)
-
-RANLIB = @RANLIB@
-
-LIB_CURSES = -L../../lib -lncurses@LIB_SUFFIX@
-
-M4 = m4
-M4FLAGS =
-
-GENERATE = ./gen$x '@DFT_ARG_SUFFIX@'
-DEL_ADAMODE = sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
-
-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
-
-################################################################################
-ALIB = @cf_ada_package@
-ABASE = $(ALIB)-curses
-
-ADA_SRCDIR = ../src
-
-GEN_FILES0 = Base_Defs
-
-GEN_FILES1 = Key_Definitions \
- Old_Keys \
- Character_Attribute_Set_Rep \
- AC_Rep \
- Color_Defs \
- ACS_Map \
- Linker_Options \
- Base_Defs \
- Window_Offsets \
- Version_Info
-
-GEN_FILES2 = Menu_Opt_Rep \
- Menu_Base_Defs \
- Menu_Linker_Options \
- Item_Rep
-
-GEN_FILES3 = Form_Opt_Rep \
- Form_Base_Defs \
- Form_Linker_Options \
- Field_Rep
-
-GEN_FILES4 = Mouse_Base_Defs \
- Mouse_Event_Rep \
- Mouse_Events \
- Panel_Linker_Options
-
-GEN_FILES5 = Chtype_Def \
- Eti_Defs
-
-GEN_TARGETS = $(ADA_SRCDIR)/$(ABASE).ads \
- $(ADA_SRCDIR)/$(ABASE)-aux.ads \
- $(ADA_SRCDIR)/$(ABASE)-menus.ads \
- $(ADA_SRCDIR)/$(ABASE)-forms.ads \
- $(ADA_SRCDIR)/$(ABASE)-mouse.ads \
- $(ADA_SRCDIR)/$(ABASE)-panels.ads \
- $(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads \
- $(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads \
- $(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads \
- $(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads \
- $(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads \
- $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads
-
-GEN_SRC = $(srcdir)/$(ABASE).ads.m4 \
- $(srcdir)/$(ABASE)-aux.ads.m4 \
- $(srcdir)/$(ABASE)-menus.ads.m4 \
- $(srcdir)/$(ABASE)-forms.ads.m4 \
- $(srcdir)/$(ABASE)-mouse.ads.m4 \
- $(srcdir)/$(ABASE)-panels.ads.m4 \
- $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 \
- $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 \
- $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 \
- $(srcdir)/$(ABASE)-forms-field_types.ads.m4 \
- $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
- $(srcdir)/$(ABASE)-panels-user_data.ads.m4
-
-
-all \
-libs : $(GEN_TARGETS)
- @
-
-sources:
-
-$(ADA_INCLUDE) \
-$(ADA_OBJECTS) :
- $(top_srcdir)/mkinstalldirs $@
-
-install \
-install.libs :: $(ADA_INCLUDE)
- @echo installing package $(ALIB) in $(ADA_INCLUDE)
- @$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ad?' $(ADA_SRCDIR) $(ADA_INCLUDE)
- @test $(srcdir) != ./ && $(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ad?' $(srcdir)/../src $(ADA_INCLUDE)
-
-install \
-install.libs :: $(ADA_OBJECTS)
- @echo installing package $(ALIB) in $(ADA_OBJECTS)
- @chmod a-wx $(ADA_SRCDIR)/*.ali
- @$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ali' $(ADA_SRCDIR) $(ADA_OBJECTS)
- @chmod u+x $(ADA_SRCDIR)/*.ali
-
-uninstall \
-uninstall.libs ::
- @echo removing package $(ALIB) from $(ADA_INCLUDE)
- -@cd $(ADA_INCLUDE) && rm -f $(ALIB)[-.]*
-
-uninstall \
-uninstall.libs ::
- @echo removing package $(ALIB) from $(ADA_OBJECTS)
- -@cd $(ADA_OBJECTS) && rm -f $(ALIB)[-.]*
-
-gen$x: gen.o
- @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@ $(LIB_CURSES)
-
-gen.o: $(srcdir)/gen.c
- $(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
-
-Character_Attribute_Set_Rep: gen$x
- $(GENERATE) B A >$@
-
-Base_Defs: gen$x
- $(GENERATE) B B >$@
-
-Color_Defs: gen$x
- $(GENERATE) B C >$@
-
-Key_Definitions: gen$x
- $(GENERATE) B K >$@
-
-Old_Keys: gen$x
- $(GENERATE) B O >$@
-
-ACS_Map: gen$x
- $(GENERATE) B M >$@
-
-AC_Rep: gen$x
- $(GENERATE) B R >$@
-
-Linker_Options: gen$x
- $(GENERATE) B L >$@
-
-Version_Info: gen$x
- $(GENERATE) B V >$@
-
-Window_Offsets: gen$x
- $(GENERATE) B D >$@
-
-Menu_Opt_Rep: gen$x
- $(GENERATE) M R >$@
-
-Menu_Base_Defs: gen$x
- $(GENERATE) M B >$@
-
-Menu_Linker_Options: gen$x
- $(GENERATE) M L >$@
-
-Item_Rep: gen$x
- $(GENERATE) M I >$@
-
-Form_Opt_Rep: gen$x
- $(GENERATE) F R >$@
-
-Form_Base_Defs: gen$x
- $(GENERATE) F B >$@
-
-Form_Linker_Options: gen$x
- $(GENERATE) F L >$@
-
-Field_Rep: gen$x
- $(GENERATE) F I >$@
-
-Mouse_Base_Defs: gen$x
- $(GENERATE) P B >$@
-
-Mouse_Event_Rep: gen$x
- $(GENERATE) P M >$@
-
-Mouse_Events: gen$x
- $(GENERATE) B E >$@
-
-Panel_Linker_Options: gen$x
- $(GENERATE) P L >$@
-
-Chtype_Def: gen$x
- $(GENERATE) E C >$@
-
-Eti_Defs: gen$x
- $(GENERATE) E E >$@
-
-$(ADA_SRCDIR)/$(ABASE).ads: $(srcdir)/$(ABASE).ads.m4 \
- $(GEN_FILES1) $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE).ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
- $(GEN_FILES5) $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-aux.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 \
- $(srcdir)/$(ABASE)-menus.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-forms.ads: $(srcdir)/$(ABASE)-forms.ads.m4 \
- $(GEN_FILES3) $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-forms.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-mouse.ads: $(srcdir)/$(ABASE)-mouse.ads.m4 \
- $(GEN_FILES4) $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-mouse.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-panels.ads: $(srcdir)/$(ABASE)-panels.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-panels.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads: \
- $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads: \
- $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads: \
- $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads: \
- $(srcdir)/$(ABASE)-forms-field_types.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-forms-field_types.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads: \
- $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads: \
- $(srcdir)/$(ABASE)-panels-user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-panels-user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-install.progs ::
-
-tags:
- ctags *.[ch]
-
-TAGS:
- etags *.[ch]
-
-mostlyclean ::
- -rm -f a.out core gen$x *.o
- -rm -f $(GEN_FILES1)
- -rm -f $(GEN_FILES2)
- -rm -f $(GEN_FILES3)
- -rm -f $(GEN_FILES4)
- -rm -f $(GEN_FILES5)
-
-clean :: mostlyclean
- -rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
-
-distclean :: clean
- rm -f Makefile
-
-realclean :: distclean
-
-HTML_DIR = ../../doc/html/ada
-
-instab.tmp : table.m4 $(GEN_SRC)
- @rm -f $@
- @for f in $(GEN_SRC) ; do \
- $(M4) $(M4FLAGS) -DM4MACRO=table.m4 $$f | $(DEL_ADAMODE) >> $@ ;\
- done;
-
-$(HTML_DIR)/table.html : instab.tmp
- @-touch $@
- @-chmod +w $@
- @echo '<!DOCTYPE HTML' > $@
- @echo 'PUBLIC "-//IETF//DTD HTML 3.0//EN">' >> $@
- @echo '<HTML>' >> $@
- @echo '<HEAD>' >> $@
- @echo '<TITLE>Correspondence between ncurses C and Ada functions</TITLE>' >>$@
- @echo '</HEAD>' >> $@
- @echo '<BODY>' >> $@
- @echo '<H1>Correspondence between ncurses C and Ada functions</H1>' >>$@
- @echo '<H2>Sorted by C function name</H2>' >>$@
- @echo '<TABLE ALIGN=CENTER BORDER>' >>$@
- @echo '<TR ALIGN=LEFT>' >>$@
- @echo '<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>' >>$@
- @sort < instab.tmp >> $@
- @echo '</TABLE></BODY></HTML>' >>$@
- @rm -f instab.tmp
-
-adahtml:
- @rm -rf $(HTML_DIR)/
- @mkdir -p $(HTML_DIR)
- cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
- ln -sf ../src/*.ali .
- for f in $(GEN_SRC); do \
- g=`basename $$f .ads.m4` ;\
- $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
- done
- @-rm -f $(HTML_DIR)/$(ALIB)*.htm*
- $(GNATHTML) -d -f $(ALIB)*.ads
- for f in html/$(ALIB)*.htm*; do \
- a=`basename $$f` ; \
- sed -e 's/You may also.*body.*//' <$$f |\
- sed -e 's%GNAT%<A HREF="http://$(GNATHP)">GNAT</A>%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%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%&lt;/A&gt;%</A>%g' > $$a.tmp ;\
- mv $$a.tmp $$f ;\
- done
- @rm -f *.ad[sb] *.ali *.tmp
- @for f in funcs.htm main.htm ; do \
- sed -e "\%<A HREF=funcs/ .htm>\[ \]</A>%d" < html/$$f > $$f ;\
- mv $$f html/$$f ;\
- done
- @rm -f "html/funcs/ .htm"
- @cp -pdrf html/* $(HTML_DIR)/
- @rm -rf html
-
-html : adahtml $(HTML_DIR)/table.html
- @
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/Ada95/gen/gen.c b/ncurses-5.2/Ada95/gen/gen.c
deleted file mode 100644
index a566ccd..0000000
--- a/ncurses-5.2/Ada95/gen/gen.c
+++ /dev/null
@@ -1,1381 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996 *
- ****************************************************************************/
-
-/*
- Version Control
- $Revision$
- --------------------------------------------------------------------------*/
-/*
- This program generates various record structures and constants from the
- ncurses header file for the Ada95 packages. Essentially it produces
- Ada95 source on stdout, which is then merged using m4 into a template
- to produce the real source.
- */
-
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-#include <assert.h>
-#include <ctype.h>
-
-#include <menu.h>
-#include <form.h>
-
-#define RES_NAME "Reserved"
-
-static const char *model = "";
-static int little_endian = 0;
-
-typedef struct {
- const char *name;
- unsigned long attr;
-} name_attribute_pair;
-
-static int find_pos (char *s, unsigned len, int *low, int *high)
-{
- unsigned int i,j;
- int l = 0;
-
- *high = -1;
- *low = 8*len;
-
- for(i=0; i < len; i++,s++)
- {
- if (*s)
- {
- for(j=0;j<8*sizeof(char);j++)
- {
- if ((( little_endian && ((*s)&0x01)) ||
- (!little_endian && ((*s)&0x80))) )
- {
- if (l > *high)
- *high = l;
- if (l < *low)
- *low = l;
- }
- l++;
- if (little_endian)
- *s >>= 1;
- else
- *s <<= 1;
- }
- }
- else
- l += 8;
- }
- return (*high >= 0 && (*low <= *high)) ? *low : -1;
-}
-
-/*
- * This helper routine generates a representation clause for a
- * record type defined in the binding.
- * We are only dealing with record types which are of 32 or 16
- * bit size, i.e. they fit into an (u)int or a (u)short.
- */
-static void
-gen_reps
-(const name_attribute_pair *nap, /* array of name_attribute_pair records */
- const char *name, /* name of the represented record type */
- int len, /* size of the record in bytes */
- int bias)
-{
- int i,n,l,cnt = 0,low,high;
- int width = strlen(RES_NAME) + 3;
- unsigned long a;
- unsigned long mask = 0;
-
- assert (nap!=NULL);
-
- for (i=0; nap[i].name != (char *)0; i++)
- {
- cnt++;
- l = strlen(nap[i].name);
- if (l>width)
- width = l;
- }
- assert (width > 0);
-
- printf(" type %s is\n",name);
- printf(" record\n");
- for (i=0; nap[i].name != (char *)0; i++)
- {
- printf(" %-*s : Boolean;\n",width,nap[i].name);
- }
- printf(" end record;\n");
- printf(" pragma Pack (%s);\n",name);
- printf(" pragma Convention (C, %s);\n\n",name);
-
- printf(" for %s use\n",name);
- printf(" record\n");
-
- for (i=0; nap[i].name != (char *)0; i++)
- {
- a = nap[i].attr;
- mask |= a;
- l = find_pos( (char *)&a,sizeof(a),&low,&high );
- if (l>=0)
- printf(" %-*s at 0 range %2d .. %2d;\n",width,nap[i].name,
- low-bias,high-bias);
- }
- i = 1; n = cnt;
- printf(" end record;\n");
- printf(" for %s'Size use %d;\n", name, 8*len);
- printf(" -- Please note: this rep. clause is generated and may be\n");
- printf(" -- different on your system.");
-}
-
-
-static void chtype_rep (const char *name, attr_t mask)
-{
- attr_t x = -1;
- attr_t t = x & mask;
- int low, high;
- int l = find_pos ((char *)&t, sizeof(t), &low, &high);
- if (l>=0)
- printf(" %-5s at 0 range %2d .. %2d;\n",name,low,high);
-}
-
-static void gen_chtype_rep(const char *name)
-{
- printf(" for %s use\n record\n",name);
- chtype_rep("Ch",A_CHARTEXT);
- chtype_rep("Color",A_COLOR);
- chtype_rep("Attr",(A_ATTRIBUTES&~A_COLOR));
- printf(" end record;\n for %s'Size use %ld;\n", name, (long)(8*sizeof(chtype)));
- printf(" -- Please note: this rep. clause is generated and may be\n");
- printf(" -- different on your system.\n");
-}
-
-
-static void mrep_rep (const char *name, void *rec)
-{
- int low, high;
- int l = find_pos((char *)rec, sizeof(MEVENT), &low, &high);
- if (l>=0)
- printf(" %-7s at 0 range %3d .. %3d;\n",name,low,high);
-}
-
-
-static void gen_mrep_rep(const char *name)
-{
- MEVENT x;
-
- printf(" for %s use\n record\n",name);
-
- memset(&x,0,sizeof(x));
- x.id = -1;
- mrep_rep("Id",&x);
-
- memset(&x,0,sizeof(x));
- x.x = -1;
- mrep_rep("X",&x);
-
- memset(&x,0,sizeof(x));
- x.y = -1;
- mrep_rep("Y",&x);
-
- memset(&x,0,sizeof(x));
- x.z = -1;
- mrep_rep("Z",&x);
-
- memset(&x,0,sizeof(x));
- x.bstate = -1;
- mrep_rep("Bstate",&x);
-
- printf(" end record;\n");
- printf(" -- Please note: this rep. clause is generated and may be\n");
- printf(" -- different on your system.\n");
-}
-
-static void gen_attr_set( const char *name )
-{
- /* All of the A_xxx symbols are defined in ncurses, but not all are nonzero
- * if "configure --enable-widec" is specified.
- */
- static const name_attribute_pair nap[] = {
-#if A_STANDOUT
- {"Stand_Out", A_STANDOUT},
-#endif
-#if A_UNDERLINE
- {"Under_Line", A_UNDERLINE},
-#endif
-#if A_REVERSE
- {"Reverse_Video", A_REVERSE},
-#endif
-#if A_BLINK
- {"Blink", A_BLINK},
-#endif
-#if A_DIM
- {"Dim_Character", A_DIM},
-#endif
-#if A_BOLD
- {"Bold_Character", A_BOLD},
-#endif
-#if A_ALTCHARSET
- {"Alternate_Character_Set", A_ALTCHARSET},
-#endif
-#if A_INVIS
- {"Invisible_Character", A_INVIS},
-#endif
-#if A_PROTECT
- {"Protected_Character", A_PROTECT},
-#endif
-#if A_HORIZONTAL
- {"Horizontal", A_HORIZONTAL},
-#endif
-#if A_LEFT
- {"Left", A_LEFT},
-#endif
-#if A_LOW
- {"Low", A_LOW},
-#endif
-#if A_RIGHT
- {"Right", A_RIGHT},
-#endif
-#if A_TOP
- {"Top", A_TOP},
-#endif
-#if A_VERTICAL
- {"Vertical", A_VERTICAL},
-#endif
- {(char *)0, 0}
- };
- chtype attr = A_ATTRIBUTES & ~A_COLOR;
- int start=-1, len=0, i, set;
- for(i=0;i<(int)(8*sizeof(chtype));i++) {
- set = attr&1;
- if (set) {
- if (start<0)
- start = i;
- if (start>=0) {
- len++;
- }
- }
- attr = attr >> 1;
- }
- gen_reps (nap, name, (len+7)/8, little_endian?start:0);
-}
-
-static void gen_menu_opt_rep(const char *name)
-{
- static const name_attribute_pair nap[] = {
-#ifdef O_ONEVALUE
- {"One_Valued", O_ONEVALUE},
-#endif
-#ifdef O_SHOWDESC
- {"Show_Descriptions", O_SHOWDESC},
-#endif
-#ifdef O_ROWMAJOR
- {"Row_Major_Order", O_ROWMAJOR},
-#endif
-#ifdef O_IGNORECASE
- {"Ignore_Case", O_IGNORECASE},
-#endif
-#ifdef O_SHOWMATCH
- {"Show_Matches", O_SHOWMATCH},
-#endif
-#ifdef O_NONCYCLIC
- {"Non_Cyclic", O_NONCYCLIC},
-#endif
- {(char *)0, 0}
- };
- gen_reps (nap, name, sizeof(int),0);
-}
-
-static void gen_item_opt_rep(const char *name)
-{
- static const name_attribute_pair nap[] = {
-#ifdef O_SELECTABLE
- {"Selectable", O_SELECTABLE},
-#endif
- {(char *)0 , 0}
- };
- gen_reps (nap, name, sizeof(int),0);
-}
-
-static void gen_form_opt_rep(const char *name)
-{
- static const name_attribute_pair nap[] = {
-#ifdef O_NL_OVERLOAD
- {"NL_Overload", O_NL_OVERLOAD},
-#endif
-#ifdef O_BS_OVERLOAD
- {"BS_Overload", O_BS_OVERLOAD},
-#endif
- {(char *)0 , 0}
- };
- gen_reps (nap, name, sizeof(int),0);
-}
-
-/*
- * Generate the representation clause for the Field_Option_Set record
- */
-static void gen_field_opt_rep(const char *name)
-{
- static const name_attribute_pair nap[] = {
-#ifdef O_VISIBLE
- {"Visible",O_VISIBLE},
-#endif
-#ifdef O_ACTIVE
- {"Active",O_ACTIVE},
-#endif
-#ifdef O_PUBLIC
- {"Public",O_PUBLIC},
-#endif
-#ifdef O_EDIT
- {"Edit",O_EDIT},
-#endif
-#ifdef O_WRAP
- {"Wrap",O_WRAP},
-#endif
-#ifdef O_BLANK
- {"Blank",O_BLANK},
-#endif
-#ifdef O_AUTOSKIP
- {"Auto_Skip",O_AUTOSKIP},
-#endif
-#ifdef O_NULLOK
- {"Null_Ok",O_NULLOK},
-#endif
-#ifdef O_PASSOK
- {"Pass_Ok",O_PASSOK},
-#endif
-#ifdef O_STATIC
- {"Static",O_STATIC},
-#endif
- {(char *)0, 0}
- };
- gen_reps (nap, name, sizeof(int),0);
-}
-
-/*
- * Generate a single key code constant definition.
- */
-static void keydef(const char *name, const char *old_name, int value, int mode)
-{
- if (mode==0) /* Generate the new name */
- printf(" %-30s : constant Special_Key_Code := 8#%3o#;\n",name,value);
- else
- { /* generate the old name, but only if it doesn't conflict with the old
- * name (Ada95 isn't case sensitive!)
- */
- const char *s = old_name; const char *t = name;
- while ( *s && *t && (toupper(*s++) == toupper(*t++)));
- if (*s || *t)
- printf(" %-16s : Special_Key_Code renames %s;\n",old_name,name);
- }
-}
-
-/*
- * Generate constants for the key codes. When called with mode==0, a
- * complete list with nice constant names in proper casing style will
- * be generated. Otherwise a list of old (i.e. C-style) names will be
- * generated, given that the name wasn't already defined in the "nice"
- * list.
- */
-static void gen_keydefs (int mode)
-{
- char buf[16];
- char obuf[16];
- int i;
-
-#ifdef KEY_CODE_YES
- keydef("Key_Code_Yes","KEY_CODE_YES",KEY_CODE_YES,mode);
-#endif
-#ifdef KEY_MIN
- keydef("Key_Min","KEY_MIN",KEY_MIN,mode);
-#endif
-#ifdef KEY_BREAK
- keydef("Key_Break","KEY_BREAK",KEY_BREAK,mode);
-#endif
-#ifdef KEY_DOWN
- keydef("Key_Cursor_Down","KEY_DOWN",KEY_DOWN,mode);
-#endif
-#ifdef KEY_UP
- keydef("Key_Cursor_Up","KEY_UP",KEY_UP,mode);
-#endif
-#ifdef KEY_LEFT
- keydef("Key_Cursor_Left","KEY_LEFT",KEY_LEFT,mode);
-#endif
-#ifdef KEY_RIGHT
- keydef("Key_Cursor_Right","KEY_RIGHT",KEY_RIGHT,mode);
-#endif
-#ifdef KEY_HOME
- keydef("Key_Home","KEY_HOME",KEY_HOME,mode);
-#endif
-#ifdef KEY_BACKSPACE
- keydef("Key_Backspace","KEY_BACKSPACE",KEY_BACKSPACE,mode);
-#endif
-#ifdef KEY_F0
- keydef("Key_F0","KEY_F0",KEY_F0,mode);
-#endif
-#ifdef KEY_F
- for(i=1;i<=24;i++)
- {
- sprintf(buf ,"Key_F%d",i);
- sprintf(obuf,"KEY_F%d",i);
- keydef(buf,obuf,KEY_F(i),mode);
- }
-#endif
-#ifdef KEY_DL
- keydef("Key_Delete_Line","KEY_DL",KEY_DL,mode);
-#endif
-#ifdef KEY_IL
- keydef("Key_Insert_Line","KEY_IL",KEY_IL,mode);
-#endif
-#ifdef KEY_DC
- keydef("Key_Delete_Char","KEY_DC",KEY_DC,mode);
-#endif
-#ifdef KEY_IC
- keydef("Key_Insert_Char","KEY_IC",KEY_IC,mode);
-#endif
-#ifdef KEY_EIC
- keydef("Key_Exit_Insert_Mode","KEY_EIC",KEY_EIC,mode);
-#endif
-#ifdef KEY_CLEAR
- keydef("Key_Clear_Screen","KEY_CLEAR",KEY_CLEAR,mode);
-#endif
-#ifdef KEY_EOS
- keydef("Key_Clear_End_Of_Screen","KEY_EOS",KEY_EOS,mode);
-#endif
-#ifdef KEY_EOL
- keydef("Key_Clear_End_Of_Line","KEY_EOL",KEY_EOL,mode);
-#endif
-#ifdef KEY_SF
- keydef("Key_Scroll_1_Forward","KEY_SF",KEY_SF,mode);
-#endif
-#ifdef KEY_SR
- keydef("Key_Scroll_1_Backward","KEY_SR",KEY_SR,mode);
-#endif
-#ifdef KEY_NPAGE
- keydef("Key_Next_Page","KEY_NPAGE",KEY_NPAGE,mode);
-#endif
-#ifdef KEY_PPAGE
- keydef("Key_Previous_Page","KEY_PPAGE",KEY_PPAGE,mode);
-#endif
-#ifdef KEY_STAB
- keydef("Key_Set_Tab","KEY_STAB",KEY_STAB,mode);
-#endif
-#ifdef KEY_CTAB
- keydef("Key_Clear_Tab","KEY_CTAB",KEY_CTAB,mode);
-#endif
-#ifdef KEY_CATAB
- keydef("Key_Clear_All_Tabs","KEY_CATAB",KEY_CATAB,mode);
-#endif
-#ifdef KEY_ENTER
- keydef("Key_Enter_Or_Send","KEY_ENTER",KEY_ENTER,mode);
-#endif
-#ifdef KEY_SRESET
- keydef("Key_Soft_Reset","KEY_SRESET",KEY_SRESET,mode);
-#endif
-#ifdef KEY_RESET
- keydef("Key_Reset","KEY_RESET",KEY_RESET,mode);
-#endif
-#ifdef KEY_PRINT
- keydef("Key_Print","KEY_PRINT",KEY_PRINT,mode);
-#endif
-#ifdef KEY_LL
- keydef("Key_Bottom","KEY_LL",KEY_LL,mode);
-#endif
-#ifdef KEY_A1
- keydef("Key_Upper_Left_Of_Keypad","KEY_A1",KEY_A1,mode);
-#endif
-#ifdef KEY_A3
- keydef("Key_Upper_Right_Of_Keypad","KEY_A3",KEY_A3,mode);
-#endif
-#ifdef KEY_B2
- keydef("Key_Center_Of_Keypad","KEY_B2",KEY_B2,mode);
-#endif
-#ifdef KEY_C1
- keydef("Key_Lower_Left_Of_Keypad","KEY_C1",KEY_C1,mode);
-#endif
-#ifdef KEY_C3
- keydef("Key_Lower_Right_Of_Keypad","KEY_C3",KEY_C3,mode);
-#endif
-#ifdef KEY_BTAB
- keydef("Key_Back_Tab","KEY_BTAB",KEY_BTAB,mode);
-#endif
-#ifdef KEY_BEG
- keydef("Key_Beginning","KEY_BEG",KEY_BEG,mode);
-#endif
-#ifdef KEY_CANCEL
- keydef("Key_Cancel","KEY_CANCEL",KEY_CANCEL,mode);
-#endif
-#ifdef KEY_CLOSE
- keydef("Key_Close","KEY_CLOSE",KEY_CLOSE,mode);
-#endif
-#ifdef KEY_COMMAND
- keydef("Key_Command","KEY_COMMAND",KEY_COMMAND,mode);
-#endif
-#ifdef KEY_COPY
- keydef("Key_Copy","KEY_COPY",KEY_COPY,mode);
-#endif
-#ifdef KEY_CREATE
- keydef("Key_Create","KEY_CREATE",KEY_CREATE,mode);
-#endif
-#ifdef KEY_END
- keydef("Key_End","KEY_END",KEY_END,mode);
-#endif
-#ifdef KEY_EXIT
- keydef("Key_Exit","KEY_EXIT",KEY_EXIT,mode);
-#endif
-#ifdef KEY_FIND
- keydef("Key_Find","KEY_FIND",KEY_FIND,mode);
-#endif
-#ifdef KEY_HELP
- keydef("Key_Help","KEY_HELP",KEY_HELP,mode);
-#endif
-#ifdef KEY_MARK
- keydef("Key_Mark","KEY_MARK",KEY_MARK,mode);
-#endif
-#ifdef KEY_MESSAGE
- keydef("Key_Message","KEY_MESSAGE",KEY_MESSAGE,mode);
-#endif
-#ifdef KEY_MOVE
- keydef("Key_Move","KEY_MOVE",KEY_MOVE,mode);
-#endif
-#ifdef KEY_NEXT
- keydef("Key_Next","KEY_NEXT",KEY_NEXT,mode);
-#endif
-#ifdef KEY_OPEN
- keydef("Key_Open","KEY_OPEN",KEY_OPEN,mode);
-#endif
-#ifdef KEY_OPTIONS
- keydef("Key_Options","KEY_OPTIONS",KEY_OPTIONS,mode);
-#endif
-#ifdef KEY_PREVIOUS
- keydef("Key_Previous","KEY_PREVIOUS",KEY_PREVIOUS,mode);
-#endif
-#ifdef KEY_REDO
- keydef("Key_Redo","KEY_REDO",KEY_REDO,mode);
-#endif
-#ifdef KEY_REFERENCE
- keydef("Key_Reference","KEY_REFERENCE",KEY_REFERENCE,mode);
-#endif
-#ifdef KEY_REFRESH
- keydef("Key_Refresh","KEY_REFRESH",KEY_REFRESH,mode);
-#endif
-#ifdef KEY_REPLACE
- keydef("Key_Replace","KEY_REPLACE",KEY_REPLACE,mode);
-#endif
-#ifdef KEY_RESTART
- keydef("Key_Restart","KEY_RESTART",KEY_RESTART,mode);
-#endif
-#ifdef KEY_RESUME
- keydef("Key_Resume","KEY_RESUME",KEY_RESUME,mode);
-#endif
-#ifdef KEY_SAVE
- keydef("Key_Save","KEY_SAVE",KEY_SAVE,mode);
-#endif
-#ifdef KEY_SBEG
- keydef("Key_Shift_Begin","KEY_SBEG",KEY_SBEG,mode);
-#endif
-#ifdef KEY_SCANCEL
- keydef("Key_Shift_Cancel","KEY_SCANCEL",KEY_SCANCEL,mode);
-#endif
-#ifdef KEY_SCOMMAND
- keydef("Key_Shift_Command","KEY_SCOMMAND",KEY_SCOMMAND,mode);
-#endif
-#ifdef KEY_SCOPY
- keydef("Key_Shift_Copy","KEY_SCOPY",KEY_SCOPY,mode);
-#endif
-#ifdef KEY_SCREATE
- keydef("Key_Shift_Create","KEY_SCREATE",KEY_SCREATE,mode);
-#endif
-#ifdef KEY_SDC
- keydef("Key_Shift_Delete_Char","KEY_SDC",KEY_SDC,mode);
-#endif
-#ifdef KEY_SDL
- keydef("Key_Shift_Delete_Line","KEY_SDL",KEY_SDL,mode);
-#endif
-#ifdef KEY_SELECT
- keydef("Key_Select","KEY_SELECT",KEY_SELECT,mode);
-#endif
-#ifdef KEY_SEND
- keydef("Key_Shift_End","KEY_SEND",KEY_SEND,mode);
-#endif
-#ifdef KEY_SEOL
- keydef("Key_Shift_Clear_End_Of_Line","KEY_SEOL",KEY_SEOL,mode);
-#endif
-#ifdef KEY_SEXIT
- keydef("Key_Shift_Exit","KEY_SEXIT",KEY_SEXIT,mode);
-#endif
-#ifdef KEY_SFIND
- keydef("Key_Shift_Find","KEY_SFIND",KEY_SFIND,mode);
-#endif
-#ifdef KEY_SHELP
- keydef("Key_Shift_Help","KEY_SHELP",KEY_SHELP,mode);
-#endif
-#ifdef KEY_SHOME
- keydef("Key_Shift_Home","KEY_SHOME",KEY_SHOME,mode);
-#endif
-#ifdef KEY_SIC
- keydef("Key_Shift_Insert_Char","KEY_SIC",KEY_SIC,mode);
-#endif
-#ifdef KEY_SLEFT
- keydef("Key_Shift_Cursor_Left","KEY_SLEFT",KEY_SLEFT,mode);
-#endif
-#ifdef KEY_SMESSAGE
- keydef("Key_Shift_Message","KEY_SMESSAGE",KEY_SMESSAGE,mode);
-#endif
-#ifdef KEY_SMOVE
- keydef("Key_Shift_Move","KEY_SMOVE",KEY_SMOVE,mode);
-#endif
-#ifdef KEY_SNEXT
- keydef("Key_Shift_Next_Page","KEY_SNEXT",KEY_SNEXT,mode);
-#endif
-#ifdef KEY_SOPTIONS
- keydef("Key_Shift_Options","KEY_SOPTIONS",KEY_SOPTIONS,mode);
-#endif
-#ifdef KEY_SPREVIOUS
- keydef("Key_Shift_Previous_Page","KEY_SPREVIOUS",KEY_SPREVIOUS,mode);
-#endif
-#ifdef KEY_SPRINT
- keydef("Key_Shift_Print","KEY_SPRINT",KEY_SPRINT,mode);
-#endif
-#ifdef KEY_SREDO
- keydef("Key_Shift_Redo","KEY_SREDO",KEY_SREDO,mode);
-#endif
-#ifdef KEY_SREPLACE
- keydef("Key_Shift_Replace","KEY_SREPLACE",KEY_SREPLACE,mode);
-#endif
-#ifdef KEY_SRIGHT
- keydef("Key_Shift_Cursor_Right","KEY_SRIGHT",KEY_SRIGHT,mode);
-#endif
-#ifdef KEY_SRSUME
- keydef("Key_Shift_Resume","KEY_SRSUME",KEY_SRSUME,mode);
-#endif
-#ifdef KEY_SSAVE
- keydef("Key_Shift_Save","KEY_SSAVE",KEY_SSAVE,mode);
-#endif
-#ifdef KEY_SSUSPEND
- keydef("Key_Shift_Suspend","KEY_SSUSPEND",KEY_SSUSPEND,mode);
-#endif
-#ifdef KEY_SUNDO
- keydef("Key_Shift_Undo","KEY_SUNDO",KEY_SUNDO,mode);
-#endif
-#ifdef KEY_SUSPEND
- keydef("Key_Suspend","KEY_SUSPEND",KEY_SUSPEND,mode);
-#endif
-#ifdef KEY_UNDO
- keydef("Key_Undo","KEY_UNDO",KEY_UNDO,mode);
-#endif
-#ifdef KEY_MOUSE
- keydef("Key_Mouse","KEY_MOUSE",KEY_MOUSE,mode);
-#endif
-#ifdef KEY_RESIZE
- keydef("Key_Resize","KEY_RESIZE",KEY_RESIZE,mode);
-#endif
-}
-
-/*
- * Generate a constant with the given name. The second parameter
- * is a reference to the ACS character in the acs_map[] array and
- * will be translated into an index.
- */
-static void acs_def (const char *name, chtype *a)
-{
- int c = a - &acs_map[0];
- printf(" %-24s : constant Character := ",name);
- if (isprint(c) && (c!='`'))
- printf("'%c';\n",c);
- else
- printf("Character'Val (%d);\n",c);
-}
-
-/*
- * Generate the constants for the ACS characters
- */
-static void gen_acs (void)
-{
-#ifdef ACS_ULCORNER
- acs_def("ACS_Upper_Left_Corner",&ACS_ULCORNER);
-#endif
-#ifdef ACS_LLCORNER
- acs_def("ACS_Lower_Left_Corner",&ACS_LLCORNER);
-#endif
-#ifdef ACS_URCORNER
- acs_def("ACS_Upper_Right_Corner",&ACS_URCORNER);
-#endif
-#ifdef ACS_LRCORNER
- acs_def("ACS_Lower_Right_Corner",&ACS_LRCORNER);
-#endif
-#ifdef ACS_LTEE
- acs_def("ACS_Left_Tee",&ACS_LTEE);
-#endif
-#ifdef ACS_RTEE
- acs_def("ACS_Right_Tee",&ACS_RTEE);
-#endif
-#ifdef ACS_BTEE
- acs_def("ACS_Bottom_Tee",&ACS_BTEE);
-#endif
-#ifdef ACS_TTEE
- acs_def("ACS_Top_Tee",&ACS_TTEE);
-#endif
-#ifdef ACS_HLINE
- acs_def("ACS_Horizontal_Line",&ACS_HLINE);
-#endif
-#ifdef ACS_VLINE
- acs_def("ACS_Vertical_Line",&ACS_VLINE);
-#endif
-#ifdef ACS_PLUS
- acs_def("ACS_Plus_Symbol",&ACS_PLUS);
-#endif
-#ifdef ACS_S1
- acs_def("ACS_Scan_Line_1",&ACS_S1);
-#endif
-#ifdef ACS_S9
- acs_def("ACS_Scan_Line_9",&ACS_S9);
-#endif
-#ifdef ACS_DIAMOND
- acs_def("ACS_Diamond",&ACS_DIAMOND);
-#endif
-#ifdef ACS_CKBOARD
- acs_def("ACS_Checker_Board",&ACS_CKBOARD);
-#endif
-#ifdef ACS_DEGREE
- acs_def("ACS_Degree",&ACS_DEGREE);
-#endif
-#ifdef ACS_PLMINUS
- acs_def("ACS_Plus_Minus",&ACS_PLMINUS);
-#endif
-#ifdef ACS_BULLET
- acs_def("ACS_Bullet",&ACS_BULLET);
-#endif
-#ifdef ACS_LARROW
- acs_def("ACS_Left_Arrow",&ACS_LARROW);
-#endif
-#ifdef ACS_RARROW
- acs_def("ACS_Right_Arrow",&ACS_RARROW);
-#endif
-#ifdef ACS_DARROW
- acs_def("ACS_Down_Arrow",&ACS_DARROW);
-#endif
-#ifdef ACS_UARROW
- acs_def("ACS_Up_Arrow",&ACS_UARROW);
-#endif
-#ifdef ACS_BOARD
- acs_def("ACS_Board_Of_Squares",&ACS_BOARD);
-#endif
-#ifdef ACS_LANTERN
- acs_def("ACS_Lantern",&ACS_LANTERN);
-#endif
-#ifdef ACS_BLOCK
- acs_def("ACS_Solid_Block",&ACS_BLOCK);
-#endif
-#ifdef ACS_S3
- acs_def("ACS_Scan_Line_3",&ACS_S3);
-#endif
-#ifdef ACS_S7
- acs_def("ACS_Scan_Line_7",&ACS_S7);
-#endif
-#ifdef ACS_LEQUAL
- acs_def("ACS_Less_Or_Equal",&ACS_LEQUAL);
-#endif
-#ifdef ACS_GEQUAL
- acs_def("ACS_Greater_Or_Equal",&ACS_GEQUAL);
-#endif
-#ifdef ACS_PI
- acs_def("ACS_PI",&ACS_PI);
-#endif
-#ifdef ACS_NEQUAL
- acs_def("ACS_Not_Equal",&ACS_NEQUAL);
-#endif
-#ifdef ACS_STERLING
- acs_def("ACS_Sterling",&ACS_STERLING);
-#endif
-}
-
-
-#define GEN_EVENT(name,value) \
- printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
- #name, value)
-
-#define GEN_MEVENT(name) \
- printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
- #name, name)
-
-static
-void gen_mouse_events(void)
-{
- mmask_t all1 = 0;
- mmask_t all2 = 0;
- mmask_t all3 = 0;
- mmask_t all4 = 0;
-
-#ifdef BUTTON1_RELEASED
- GEN_MEVENT(BUTTON1_RELEASED);
- all1 |= BUTTON1_RELEASED;
-#endif
-#ifdef BUTTON1_PRESSED
- GEN_MEVENT(BUTTON1_PRESSED);
- all1 |= BUTTON1_PRESSED;
-#endif
-#ifdef BUTTON1_CLICKED
- GEN_MEVENT(BUTTON1_CLICKED);
- all1 |= BUTTON1_CLICKED;
-#endif
-#ifdef BUTTON1_DOUBLE_CLICKED
- GEN_MEVENT(BUTTON1_DOUBLE_CLICKED);
- all1 |= BUTTON1_DOUBLE_CLICKED;
-#endif
-#ifdef BUTTON1_TRIPLE_CLICKED
- GEN_MEVENT(BUTTON1_TRIPLE_CLICKED);
- all1 |= BUTTON1_TRIPLE_CLICKED;
-#endif
-#ifdef BUTTON1_RESERVED_EVENT
- GEN_MEVENT(BUTTON1_RESERVED_EVENT);
- all1 |= BUTTON1_RESERVED_EVENT;
-#endif
-#ifdef BUTTON2_RELEASED
- GEN_MEVENT(BUTTON2_RELEASED);
- all2 |= BUTTON2_RELEASED;
-#endif
-#ifdef BUTTON2_PRESSED
- GEN_MEVENT(BUTTON2_PRESSED);
- all2 |= BUTTON2_PRESSED;
-#endif
-#ifdef BUTTON2_CLICKED
- GEN_MEVENT(BUTTON2_CLICKED);
- all2 |= BUTTON2_CLICKED;
-#endif
-#ifdef BUTTON2_DOUBLE_CLICKED
- GEN_MEVENT(BUTTON2_DOUBLE_CLICKED);
- all2 |= BUTTON2_DOUBLE_CLICKED;
-#endif
-#ifdef BUTTON2_TRIPLE_CLICKED
- GEN_MEVENT(BUTTON2_TRIPLE_CLICKED);
- all2 |= BUTTON2_TRIPLE_CLICKED;
-#endif
-#ifdef BUTTON2_RESERVED_EVENT
- GEN_MEVENT(BUTTON2_RESERVED_EVENT);
- all2 |= BUTTON2_RESERVED_EVENT;
-#endif
-#ifdef BUTTON3_RELEASED
- GEN_MEVENT(BUTTON3_RELEASED);
- all3 |= BUTTON3_RELEASED;
-#endif
-#ifdef BUTTON3_PRESSED
- GEN_MEVENT(BUTTON3_PRESSED);
- all3 |= BUTTON3_PRESSED;
-#endif
-#ifdef BUTTON3_CLICKED
- GEN_MEVENT(BUTTON3_CLICKED);
- all3 |= BUTTON3_CLICKED;
-#endif
-#ifdef BUTTON3_DOUBLE_CLICKED
- GEN_MEVENT(BUTTON3_DOUBLE_CLICKED);
- all3 |= BUTTON3_DOUBLE_CLICKED;
-#endif
-#ifdef BUTTON3_TRIPLE_CLICKED
- GEN_MEVENT(BUTTON3_TRIPLE_CLICKED);
- all3 |= BUTTON3_TRIPLE_CLICKED;
-#endif
-#ifdef BUTTON3_RESERVED_EVENT
- GEN_MEVENT(BUTTON3_RESERVED_EVENT);
- all3 |= BUTTON3_RESERVED_EVENT;
-#endif
-#ifdef BUTTON4_RELEASED
- GEN_MEVENT(BUTTON4_RELEASED);
- all4 |= BUTTON4_RELEASED;
-#endif
-#ifdef BUTTON4_PRESSED
- GEN_MEVENT(BUTTON4_PRESSED);
- all4 |= BUTTON4_PRESSED;
-#endif
-#ifdef BUTTON4_CLICKED
- GEN_MEVENT(BUTTON4_CLICKED);
- all4 |= BUTTON4_CLICKED;
-#endif
-#ifdef BUTTON4_DOUBLE_CLICKED
- GEN_MEVENT(BUTTON4_DOUBLE_CLICKED);
- all4 |= BUTTON4_DOUBLE_CLICKED;
-#endif
-#ifdef BUTTON4_TRIPLE_CLICKED
- GEN_MEVENT(BUTTON4_TRIPLE_CLICKED);
- all4 |= BUTTON4_TRIPLE_CLICKED;
-#endif
-#ifdef BUTTON4_RESERVED_EVENT
- GEN_MEVENT(BUTTON4_RESERVED_EVENT);
- all4 |= BUTTON4_RESERVED_EVENT;
-#endif
-#ifdef BUTTON_CTRL
- GEN_MEVENT(BUTTON_CTRL);
-#endif
-#ifdef BUTTON_SHIFT
- GEN_MEVENT(BUTTON_SHIFT);
-#endif
-#ifdef BUTTON_ALT
- GEN_MEVENT(BUTTON_ALT);
-#endif
-#ifdef ALL_MOUSE_EVENTS
- GEN_MEVENT(ALL_MOUSE_EVENTS);
-#endif
-
-GEN_EVENT(BUTTON1_EVENTS,all1);
-GEN_EVENT(BUTTON2_EVENTS,all2);
-GEN_EVENT(BUTTON3_EVENTS,all3);
-GEN_EVENT(BUTTON4_EVENTS,all4);
-}
-
-/*
- * Output some comment lines indicating that the file is generated.
- * The name parameter is the name of the facility to be used in
- * the comment.
- */
-static void prologue(const char *name)
-{
- printf("-- %s binding.\n",name);
- printf("-- This module is generated. Please don't change it manually!\n");
- printf("-- Run the generator instead.\n-- |");
-
- printf("define(`M4_BIT_ORDER',`%s_Order_First')",
- little_endian ? "Low":"High");
-}
-
-/*
- * Write the prologue for the curses facility and make sure that
- * KEY_MIN and KEY_MAX are defined for the rest of this source.
- */
-static void basedefs (void)
-{
- prologue("curses");
-#ifndef KEY_MAX
-# define KEY_MAX 0777
-#endif
- printf("define(`M4_KEY_MAX',`8#%o#')",KEY_MAX);
-#ifndef KEY_MIN
-# define KEY_MIN 0401
-#endif
- if (KEY_MIN == 256) {
- fprintf(stderr,"Unexpected value for KEY_MIN: %d\n",KEY_MIN);
- exit(1);
- }
- printf("define(`M4_SPECIAL_FIRST',`8#%o#')",KEY_MIN - 1);
-}
-
-/*
- * Write out the comment lines for the menu facility
- */
-static void menu_basedefs (void)
-{
- prologue("menu");
-}
-
-/*
- * Write out the comment lines for the form facility
- */
-static void form_basedefs (void)
-{
- prologue("form");
-}
-
-/*
- * Write out the comment lines for the mouse facility
- */
-static void mouse_basedefs(void)
-{
- prologue("mouse");
-}
-
-/*
- * Write the definition of a single color
- */
-static void color_def (const char *name, int value)
-{
- printf(" %-8s : constant Color_Number := %d;\n",name,value);
-}
-
-/*
- * Generate all color definitions
- */
-static void gen_color (void)
-{
-#ifdef COLOR_BLACK
- color_def ("Black",COLOR_BLACK);
-#endif
-#ifdef COLOR_RED
- color_def ("Red",COLOR_RED);
-#endif
-#ifdef COLOR_GREEN
- color_def ("Green",COLOR_GREEN);
-#endif
-#ifdef COLOR_YELLOW
- color_def ("Yellow",COLOR_YELLOW);
-#endif
-#ifdef COLOR_BLUE
- color_def ("Blue",COLOR_BLUE);
-#endif
-#ifdef COLOR_MAGENTA
- color_def ("Magenta",COLOR_MAGENTA);
-#endif
-#ifdef COLOR_CYAN
- color_def ("Cyan",COLOR_CYAN);
-#endif
-#ifdef COLOR_WHITE
- color_def ("White",COLOR_WHITE);
-#endif
-}
-
-/*
- * Generate the linker options for the base facility
- */
-static void gen_linkopts (void)
-{
- printf(" pragma Linker_Options (\"-lncurses%s\");\n", model);
-}
-
-/*
- * Generate the linker options for the menu facility
- */
-static void gen_menu_linkopts (void)
-{
- printf(" pragma Linker_Options (\"-lmenu%s\");\n", model);
-}
-
-/*
- * Generate the linker options for the form facility
- */
-static void gen_form_linkopts (void)
-{
- printf(" pragma Linker_Options (\"-lform%s\");\n", model);
-}
-
-/*
- * Generate the linker options for the panel facility
- */
-static void gen_panel_linkopts (void)
-{
- printf(" pragma Linker_Options (\"-lpanel%s\");\n", model);
-}
-
-static void gen_version_info (void)
-{
- static const char* v1 =
- " NC_Major_Version : constant := %d; -- Major version of the library\n";
- static const char* v2 =
- " NC_Minor_Version : constant := %d; -- Minor version of the library\n";
- static const char* v3 =
- " NC_Version : constant String := %c%d.%d%c; -- Version of library\n";
-
- printf(v1, NCURSES_VERSION_MAJOR);
- printf(v2, NCURSES_VERSION_MINOR);
- printf(v3, '"',NCURSES_VERSION_MAJOR,NCURSES_VERSION_MINOR,'"');
-}
-
-static int
-eti_gen(char*buf, int code, const char* name, int* etimin, int* etimax)
-{
- sprintf(buf," E_%-16s : constant Eti_Error := %d;\n",name,code);
- if (code < *etimin)
- *etimin = code;
- if (code > *etimax)
- *etimax = code;
- return strlen(buf);
-}
-
-#define GEN_OFFSET(member,itype) \
- if (sizeof(((WINDOW*)0)->member)==sizeof(itype)) { \
- o = offsetof(WINDOW, member); \
- if ((o%sizeof(itype) == 0)) { \
- printf(" Offset%-*s : constant Natural := %2ld; -- %s\n", \
- 8, #member, o/sizeof(itype),#itype); \
- } \
- }
-
-static void
-gen_offsets(void)
-{
- long o;
- const char* s_bool = "";
-
- GEN_OFFSET(_maxy,short);
- GEN_OFFSET(_maxx,short);
- GEN_OFFSET(_begy,short);
- GEN_OFFSET(_begx,short);
- GEN_OFFSET(_cury,short);
- GEN_OFFSET(_curx,short);
- GEN_OFFSET(_yoffset,short);
- GEN_OFFSET(_pary,int);
- GEN_OFFSET(_parx,int);
- if (sizeof(bool) == sizeof(char)) {
- GEN_OFFSET(_scroll,char);
- s_bool = "char";
- } else if (sizeof(bool) == sizeof(short)) {
- GEN_OFFSET(_scroll,short);
- s_bool = "short";
- } else if (sizeof(bool) == sizeof(int)) {
- GEN_OFFSET(_scroll,int);
- s_bool = "int";
- }
- printf(" Sizeof%-*s : constant Natural := %2ld; -- %s\n",
- 8, "_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",
- 8, "_XY",1,"int");
- printf("\n");
- printf(" type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n",s_bool);
-}
-
-/*
- * main() expects two arguments on the commandline, both single characters.
- * The first character denotes the facility for which we generate output.
- * Possible values are
- * B - Base
- * M - Menus
- * F - Forms
- * P - Pointer Device (Mouse)
- * E - ETI base definitions
- *
- * The second character then denotes the specific output that should be
- * generated for the selected facility.
- */
-int main(int argc, char *argv[])
-{
- int x = 0x12345678;
- char *s = (char *)&x;
-
- if (*s == 0x78)
- little_endian = 1;
-
- if (argc!=4)
- exit(1);
- model = *++argv;
-
- switch(argv[1][0])
- {
- /* ---------------------------------------------------------------*/
- case 'B': /* The Base facility */
- switch(argv[2][0])
- {
- case 'A': /* chtype translation into Ada95 record type */
- gen_attr_set("Character_Attribute_Set");
- break;
- case 'K': /* translation of keycodes */
- gen_keydefs(0);
- break;
- case 'B': /* write some initial comment lines */
- basedefs();
- break;
- case 'C': /* generate color constants */
- gen_color();
- break;
- case 'D': /* generate displacements of fields in WINDOW struct. */
- gen_offsets();
- break;
- case 'E': /* generate Mouse Event codes */
- gen_mouse_events();
- break;
- case 'M': /* generate constants for the ACS characters */
- gen_acs();
- break;
- case 'L': /* generate the Linker_Options pragma */
- gen_linkopts();
- break;
- case 'O': /* generate definitions of the old key code names */
- gen_keydefs(1);
- break;
- case 'R': /* generate representation clause for Attributed character */
- gen_chtype_rep("Attributed_Character");
- break;
- case 'V': /* generate version info */
- gen_version_info();
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'M': /* The Menu facility */
- switch(argv[2][0])
- {
- case 'R': /* generate representation clause for Menu_Option_Set */
- gen_menu_opt_rep("Menu_Option_Set");
- break;
- case 'B': /* write some initial comment lines */
- menu_basedefs();
- break;
- case 'L': /* generate the Linker_Options pragma */
- gen_menu_linkopts();
- break;
- case 'I': /* generate representation clause for Item_Option_Set */
- gen_item_opt_rep("Item_Option_Set");
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'F': /* The Form facility */
- switch(argv[2][0])
- {
- case 'R': /* generate representation clause for Form_Option_Set */
- gen_form_opt_rep("Form_Option_Set");
- break;
- case 'B': /* write some initial comment lines */
- form_basedefs();
- break;
- case 'L': /* generate the Linker_Options pragma */
- gen_form_linkopts();
- break;
- case 'I': /* generate representation clause for Field_Option_Set */
- gen_field_opt_rep("Field_Option_Set");
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'P': /* The Pointer(=Mouse) facility */
- switch(argv[2][0]) {
- case 'B': /* write some initial comment lines */
- mouse_basedefs();
- break;
- case 'M': /* generate representation clause for Mouse_Event */
- gen_mrep_rep("Mouse_Event");
- break;
- case 'L': /* generate the Linker_Options pragma */
- gen_panel_linkopts();
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'E' : /* chtype size detection */
- switch(argv[2][0]) {
- case 'C':
- {
- const char* fmt = " type C_Chtype is new %s;\n";
- const char* afmt = " type C_AttrType is new %s;\n";
-
- if (sizeof(chtype)==sizeof(int)) {
- if (sizeof(int)==sizeof(long))
- printf(fmt,"C_ULong");
- else
- printf(fmt,"C_UInt");
- }
- else if (sizeof(chtype)==sizeof(long)) {
- printf(fmt,"C_ULong");
- }
- else
- printf("Error\n");
-
- if (sizeof(attr_t)==sizeof(int)) {
- if (sizeof(int)==sizeof(long))
- printf(afmt,"C_ULong");
- else
- printf(afmt,"C_UInt");
- }
- else if (sizeof(attr_t)==sizeof(long)) {
- printf(afmt,"C_ULong");
- }
- else
- printf("Error\n");
-
- printf("define(`CF_CURSES_OK',`%d')",OK);
- printf("define(`CF_CURSES_ERR',`%d')",ERR);
- printf("define(`CF_CURSES_TRUE',`%d')",TRUE);
- printf("define(`CF_CURSES_FALSE',`%d')",FALSE);
- }
- break;
- case 'E':
- {
- char* buf = (char*)malloc(2048);
- char* p = buf;
- int etimin = E_OK;
- int etimax = E_OK;
- if (p) {
- p += eti_gen(p, E_OK, "Ok", &etimin, &etimax);
- p += eti_gen(p, E_SYSTEM_ERROR,"System_Error", &etimin, &etimax);
- p += eti_gen(p, E_BAD_ARGUMENT, "Bad_Argument", &etimin, &etimax);
- p += eti_gen(p, E_POSTED, "Posted", &etimin, &etimax);
- p += eti_gen(p, E_CONNECTED, "Connected", &etimin, &etimax);
- p += eti_gen(p, E_BAD_STATE, "Bad_State", &etimin, &etimax);
- p += eti_gen(p, E_NO_ROOM, "No_Room", &etimin, &etimax);
- p += eti_gen(p, E_NOT_POSTED, "Not_Posted", &etimin, &etimax);
- p += eti_gen(p, E_UNKNOWN_COMMAND,
- "Unknown_Command", &etimin, &etimax);
- p += eti_gen(p, E_NO_MATCH, "No_Match", &etimin, &etimax);
- p += eti_gen(p, E_NOT_SELECTABLE,
- "Not_Selectable", &etimin, &etimax);
- p += eti_gen(p, E_NOT_CONNECTED,
- "Not_Connected", &etimin, &etimax);
- p += eti_gen(p, E_REQUEST_DENIED,
- "Request_Denied", &etimin, &etimax);
- p += eti_gen(p, E_INVALID_FIELD,
- "Invalid_Field", &etimin, &etimax);
- p += eti_gen(p, E_CURRENT,
- "Current", &etimin, &etimax);
- }
- printf(" subtype Eti_Error is C_Int range %d .. %d;\n\n",
- etimin,etimax);
- printf(buf);
- }
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'V' : /* plain version dump */
- {
- switch(argv[2][0]) {
- case '1': /* major version */
-#ifdef NCURSES_VERSION_MAJOR
- printf("%d",NCURSES_VERSION_MAJOR);
-#endif
- break;
- case '2': /* minor version */
-#ifdef NCURSES_VERSION_MINOR
- printf("%d",NCURSES_VERSION_MINOR);
-#endif
- break;
- case '3': /* patch level */
-#ifdef NCURSES_VERSION_PATCH
- printf("%d",NCURSES_VERSION_PATCH);
-#endif
- break;
- default:
- break;
- }
- }
- break;
- /* ---------------------------------------------------------------*/
- default:
- break;
- }
- return 0;
-}
-
diff --git a/ncurses-5.2/Ada95/gen/html.m4 b/ncurses-5.2/Ada95/gen/html.m4
deleted file mode 100644
index 0b4254d..0000000
--- a/ncurses-5.2/Ada95/gen/html.m4
+++ /dev/null
@@ -1,11 +0,0 @@
-define(`ANCHORIDX',`0')dnl
-define(`MANPAGE',`define(`MANPG',$1)dnl
-|=====================================================================
- -- | Man page <A HREF="../man/MANPG.html">MANPG</A>
- -- |=====================================================================')dnl
-define(`ANCHOR',`define(`ANCHORIDX',incr(ANCHORIDX))dnl
-`#'1A NAME="AFU`_'ANCHORIDX"`#'2dnl
-define(`CFUNAME',`$1')define(`AFUNAME',`$2')dnl
-|')
-define(`AKA',``AKA': <A HREF="../man/MANPG.html">CFUNAME</A>')dnl
-define(`ALIAS',``AKA': $1')dnl
diff --git a/ncurses-5.2/Ada95/gen/normal.m4 b/ncurses-5.2/Ada95/gen/normal.m4
deleted file mode 100644
index f884c46..0000000
--- a/ncurses-5.2/Ada95/gen/normal.m4
+++ /dev/null
@@ -1,8 +0,0 @@
-define(`MANPAGE',`define(`MANPG',$1)dnl
-|=====================================================================
- -- | Man page MANPG
- -- |=====================================================================')dnl
-define(`ANCHOR',`define(`CFUNAME',`$1')define(`AFUNAME',`$2')'dnl
-|)dnl
-define(`AKA',``AKA': CFUNAME')dnl
-define(`ALIAS',``AKA': $1')dnl
diff --git a/ncurses-5.2/Ada95/gen/table.m4 b/ncurses-5.2/Ada95/gen/table.m4
deleted file mode 100644
index 48ed6ce..0000000
--- a/ncurses-5.2/Ada95/gen/table.m4
+++ /dev/null
@@ -1,6 +0,0 @@
-define(`ANCHORIDX',`0')dnl
-define(`MANPAGE',`define(`MANPG',$1)')dnl
-divert(-1)dnl
-define(`ANCHOR',`divert(0)define(`ANCHORIDX',incr(ANCHORIDX))dnl
-<TR><TD>$1</TD><TD><A HREF="HTMLNAME`#'AFU`_'ANCHORIDX">$2</A></TD><TD><A HREF="../man/MANPG.html">MANPG</A></TD></TR>
-divert(-1)')
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-aux.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-aux.ads.m4
deleted file mode 100644
index 5d479ce..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-aux.ads.m4
+++ /dev/null
@@ -1,104 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-aux__ads.htm')dnl
-include(M4MACRO)------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Aux --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Base_Defs')
-with System;
-with Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Unchecked_Conversion;
-
-package Terminal_Interface.Curses.Aux is
- pragma Preelaborate (Terminal_Interface.Curses.Aux);
-
- use type Interfaces.C.int;
-
- subtype C_Int is Interfaces.C.int;
- subtype C_Short is Interfaces.C.short;
- subtype C_Long_Int is Interfaces.C.long;
- subtype C_Size_T is Interfaces.C.size_t;
- subtype C_UInt is Interfaces.C.unsigned;
- subtype C_ULong is Interfaces.C.unsigned_long;
- subtype C_Char_Ptr is Interfaces.C.Strings.chars_ptr;
- type C_Void_Ptr is new System.Address;
-include(`Chtype_Def')
- -- This is how those constants are defined in ncurses. I see them also
- -- exactly like this in all ETI implementations I ever tested. So it
- -- could be that this is quite general, but please check with your curses.
- -- This is critical, because curses sometime mixes boolean returns with
- -- returning an error status.
- Curses_Ok : constant C_Int := CF_CURSES_OK;
- Curses_Err : constant C_Int := CF_CURSES_ERR;
-
- Curses_True : constant C_Int := CF_CURSES_TRUE;
- Curses_False : constant C_Int := CF_CURSES_FALSE;
-
- -- Eti_Error: type for error codes returned by the menu and form subsystem
-include(`Eti_Defs')
- procedure Eti_Exception (Code : Eti_Error);
- -- Dispatch the error code and raise the appropriate exception
- --
- --
- -- Some helpers
- function Chtype_To_AttrChar is new
- Unchecked_Conversion (Source => C_Chtype,
- Target => Attributed_Character);
- function AttrChar_To_Chtype is new
- Unchecked_Conversion (Source => Attributed_Character,
- Target => C_Chtype);
-
- function AttrChar_To_AttrType is new
- Unchecked_Conversion (Source => Attributed_Character,
- Target => C_AttrType);
-
- function AttrType_To_AttrChar is new
- Unchecked_Conversion (Source => C_AttrType,
- Target => Attributed_Character);
-
- procedure Fill_String (Cp : in chars_ptr;
- Str : out String);
- -- Fill the Str parameter with the string denoted by the chars_ptr
- -- C-Style string.
-
- function Fill_String (Cp : chars_ptr) return String;
- -- Same but as function.
-
-end Terminal_Interface.Curses.Aux;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
deleted file mode 100644
index 3ee0ecf..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
+++ /dev/null
@@ -1,238 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-field_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-
-package Terminal_Interface.Curses.Forms.Field_Types is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
- use type Interfaces.C.int;
- subtype C_Int is Interfaces.C.int;
-
- -- MANPAGE(`form_fieldtype.3x')
-
- type Field_Type is abstract tagged null record;
- -- Abstract base type for all field types. A concrete field type
- -- is an extension that adds some data elements describing formats or
- -- boundary values for the type and validation routines.
- -- For the builtin low-level fieldtypes, the validation routines are
- -- already defined by the low-level C library.
- -- The builtin types like Alpha or AlphaNumeric etc. are defined in
- -- child packages of this package. You may use one of them as example
- -- how to create you own child packages for low-level field types that
- -- you may have already written in C.
-
- type Field_Type_Access is access all Field_Type'Class;
-
- -- ANCHOR(`set_field_type()',`Set_Type')
- procedure Set_Field_Type (Fld : in Field;
- Fld_Type : in Field_Type) is abstract;
- -- AKA
- -- But: we hide the vararg mechanism of the C interface. You always
- -- have to pass a single Field_Type parameter.
-
- -- ---------------------------------------------------------------------
-
- -- MANPAGE(`form_field_validation.3x')
-
- -- ANCHOR(`field_type()',`Get_Type')
- function Get_Type (Fld : in Field) return Field_Type_Access;
- -- AKA
- -- ALIAS(`field_arg()')
- -- In Ada95 we can combine these. If you try to retrieve the field type
- -- that is not defined as extension of the abstract tagged type above,
- -- you will raise a Form_Exception.
- -- This is not inlined
-
- -- +----------------------------------------------------------------------
- -- | Private Part.
- -- | Most of this is used by the implementations of the child packages.
- -- |
-private
- type Makearg_Function is access
- function (Args : System.Address) return System.Address;
- pragma Convention (C, Makearg_Function);
-
- type Copyarg_Function is access
- function (Usr : System.Address) return System.Address;
- pragma Convention (C, Copyarg_Function);
-
- type Freearg_Function is access
- procedure (Usr : System.Address);
- pragma Convention (C, Freearg_Function);
-
- type Field_Check_Function is access
- function (Fld : Field; Usr : System.Address) return C_Int;
- pragma Convention (C, Field_Check_Function);
-
- type Char_Check_Function is access
- function (Ch : C_Int; Usr : System.Address) return C_Int;
- pragma Convention (C, Char_Check_Function);
-
- type Choice_Function is access
- function (Fld : Field; Usr : System.Address) return C_Int;
- pragma Convention (C, Choice_Function);
-
- -- +----------------------------------------------------------------------
- -- | This must be in sync with the FIELDTYPE structure in form.h
- -- |
- type Low_Level_Field_Type is
- record
- Status : Interfaces.C.short;
- Ref_Count : Interfaces.C.long;
- Left, Right : System.Address;
- Makearg : Makearg_Function;
- Copyarg : Copyarg_Function;
- Freearg : Freearg_Function;
- Fcheck : Field_Check_Function;
- Ccheck : Char_Check_Function;
- Next, Prev : Choice_Function;
- end record;
- pragma Convention (C, Low_Level_Field_Type);
- type C_Field_Type is access all Low_Level_Field_Type;
-
- Null_Field_Type : constant C_Field_Type := null;
-
- -- +----------------------------------------------------------------------
- -- | This four low-level fieldtypes are the ones associated with
- -- | fieldtypes handled by this binding. Any other low-level fieldtype
- -- | will result in a Form_Exception is function Get_Type.
- -- |
- M_Generic_Type : C_Field_Type := null;
- M_Generic_Choice : C_Field_Type := null;
- M_Builtin_Router : C_Field_Type := null;
- M_Choice_Router : C_Field_Type := null;
-
- -- Two wrapper functions to access those low-level fieldtypes defined
- -- in this package.
- function C_Builtin_Router return C_Field_Type;
- function C_Choice_Router return C_Field_Type;
-
- procedure Wrap_Builtin (Fld : Field;
- Typ : Field_Type'Class;
- Cft : C_Field_Type := C_Builtin_Router);
- -- This procedure has to be called by the Set_Field_Type implementation
- -- for builtin low-level fieldtypes to replace it by an Ada95
- -- conformant Field_Type object.
- -- The parameter Cft must be C_Builtin_Router for regular low-level
- -- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for
- -- low-level fieldtypes witch choice functions (like TYP_ENUM).
- -- Any other value will raise a Form_Exception.
-
- function Make_Arg (Args : System.Address) return System.Address;
- pragma Convention (C, Make_Arg);
- -- This is the Makearg_Function for the internal low-level types
- -- introduced by this binding.
-
- function Copy_Arg (Usr : System.Address) return System.Address;
- pragma Convention (C, Copy_Arg);
- -- This is the Copyarg_Function for the internal low-level types
- -- introduced by this binding.
-
- procedure Free_Arg (Usr : System.Address);
- pragma Convention (C, Free_Arg);
- -- This is the Freearg_Function for the internal low-level types
- -- introduced by this binding.
-
- function Field_Check_Router (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Field_Check_Router);
- -- This is the Field_Check_Function for the internal low-level types
- -- introduced to wrap the low-level types by a Field_Type derived
- -- type. It routes the call to the corresponding low-level validation
- -- function.
-
- function Char_Check_Router (Ch : C_Int;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Char_Check_Router);
- -- This is the Char_Check_Function for the internal low-level types
- -- introduced to wrap the low-level types by a Field_Type derived
- -- type. It routes the call to the corresponding low-level validation
- -- function.
-
- function Next_Router (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Next_Router);
- -- This is the Choice_Function for the internal low-level types
- -- introduced to wrap the low-level types by a Field_Type derived
- -- type. It routes the call to the corresponding low-level next_choice
- -- function.
-
- function Prev_Router (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Prev_Router);
- -- This is the Choice_Function for the internal low-level types
- -- introduced to wrap the low-level types by a Field_Type derived
- -- type. It routes the call to the corresponding low-level prev_choice
- -- function.
-
- -- This is the Argument structure maintained by all low-level field types
- -- introduced by this binding.
- type Argument is record
- Typ : Field_Type_Access; -- the Field_Type creating this record
- Usr : System.Address; -- original arg for builtin low-level types
- Cft : C_Field_Type; -- the original low-level type
- end record;
- type Argument_Access is access all Argument;
-
- -- +----------------------------------------------------------------------
- -- |
- -- | Some Imports of libform routines to deal with low-level fieldtypes.
- -- |
- function New_Fieldtype (Fcheck : Field_Check_Function;
- Ccheck : Char_Check_Function)
- return C_Field_Type;
- pragma Import (C, New_Fieldtype, "new_fieldtype");
-
- function Set_Fieldtype_Arg (Cft : C_Field_Type;
- Mak : Makearg_Function := Make_Arg'Access;
- Cop : Copyarg_Function := Copy_Arg'Access;
- Fre : Freearg_Function := Free_Arg'Access)
- return C_Int;
- pragma Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
-
- function Set_Fieldtype_Choice (Cft : C_Field_Type;
- Next, Prev : Choice_Function)
- return C_Int;
- pragma Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
-
-end Terminal_Interface.Curses.Forms.Field_Types;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
deleted file mode 100644
index eb8714e..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
+++ /dev/null
@@ -1,70 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-field_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access User;
-package Terminal_Interface.Curses.Forms.Field_User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_User_Data);
-
- -- MANPAGE(`form_field_userptr.3x')
-
- -- ANCHOR(`set_field_userptr',`Set_User_Data')
- procedure Set_User_Data (Fld : in Field;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`field_userptr',`Get_User_Data')
- procedure Get_User_Data (Fld : in Field;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`field_userptr',`Get_User_Data')
- function Get_User_Data (Fld : in Field) return User_Access;
- -- AKA
- -- Sama as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Forms.Field_User_Data;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
deleted file mode 100644
index 87f777c..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
+++ /dev/null
@@ -1,70 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-form_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Form_User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access User;
-package Terminal_Interface.Curses.Forms.Form_User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Form_User_Data);
-
- -- MANPAGE(`form_userptr.3x')
-
- -- ANCHOR(`set_form_userptr',`Set_User_Data')
- procedure Set_User_Data (Frm : in Form;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`form_userptr',`Get_User_Data')
- procedure Get_User_Data (Frm : in Form;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`form_userptr',`Get_User_Data')
- function Get_User_Data (Frm : in Form) return User_Access;
- -- AKA
- -- Same as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Forms.Form_User_Data;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms.ads.m4
deleted file mode 100644
index 24c4dc1..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-forms.ads.m4
+++ /dev/null
@@ -1,696 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Form --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Form_Base_Defs')
-with System;
-with Ada.Characters.Latin_1;
-
-package Terminal_Interface.Curses.Forms is
- pragma Preelaborate (Terminal_Interface.Curses.Forms);
-include(`Form_Linker_Options')dnl
-include(`Linker_Options')
- Space : Character renames Ada.Characters.Latin_1.Space;
-
- type Field is private;
- type Form is private;
-
- Null_Field : constant Field;
- Null_Form : constant Form;
-
- type Field_Justification is (None,
- Left,
- Center,
- Right);
-
- pragma Warnings (Off);
-include(`Field_Rep')Dnl
-
- pragma Warnings (On);
-
- function Default_Field_Options return Field_Option_Set;
- -- The initial defaults for the field options.
- pragma Inline (Default_Field_Options);
-
- pragma Warnings (Off);
-include(`Form_Opt_Rep')Dnl
-
- pragma Warnings (On);
-
- function Default_Form_Options return Form_Option_Set;
- -- The initial defaults for the form options.
- pragma Inline (Default_Form_Options);
-
- type Buffer_Number is new Natural;
-
- type Field_Array is array (Positive range <>) of aliased Field;
- pragma Convention (C, Field_Array);
-
- type Field_Array_Access is access Field_Array;
-
- procedure Free (FA : in out Field_Array_Access;
- Free_Fields : in Boolean := False);
- -- Release the memory for an allocated field array
- -- If Free_Fields is True, call Delete() for all the fields in
- -- the array.
-
- subtype Form_Request_Code is Key_Code range (Key_Max + 1) .. (Key_Max + 57);
-
- -- The prefix F_ stands for "Form Request"
- F_Next_Page : constant Form_Request_Code := Key_Max + 1;
- F_Previous_Page : constant Form_Request_Code := Key_Max + 2;
- F_First_Page : constant Form_Request_Code := Key_Max + 3;
- F_Last_Page : constant Form_Request_Code := Key_Max + 4;
-
- F_Next_Field : constant Form_Request_Code := Key_Max + 5;
- F_Previous_Field : constant Form_Request_Code := Key_Max + 6;
- F_First_Field : constant Form_Request_Code := Key_Max + 7;
- F_Last_Field : constant Form_Request_Code := Key_Max + 8;
- F_Sorted_Next_Field : constant Form_Request_Code := Key_Max + 9;
- F_Sorted_Previous_Field : constant Form_Request_Code := Key_Max + 10;
- F_Sorted_First_Field : constant Form_Request_Code := Key_Max + 11;
- F_Sorted_Last_Field : constant Form_Request_Code := Key_Max + 12;
- F_Left_Field : constant Form_Request_Code := Key_Max + 13;
- F_Right_Field : constant Form_Request_Code := Key_Max + 14;
- F_Up_Field : constant Form_Request_Code := Key_Max + 15;
- F_Down_Field : constant Form_Request_Code := Key_Max + 16;
-
- F_Next_Char : constant Form_Request_Code := Key_Max + 17;
- F_Previous_Char : constant Form_Request_Code := Key_Max + 18;
- F_Next_Line : constant Form_Request_Code := Key_Max + 19;
- F_Previous_Line : constant Form_Request_Code := Key_Max + 20;
- F_Next_Word : constant Form_Request_Code := Key_Max + 21;
- F_Previous_Word : constant Form_Request_Code := Key_Max + 22;
- F_Begin_Field : constant Form_Request_Code := Key_Max + 23;
- F_End_Field : constant Form_Request_Code := Key_Max + 24;
- F_Begin_Line : constant Form_Request_Code := Key_Max + 25;
- F_End_Line : constant Form_Request_Code := Key_Max + 26;
- F_Left_Char : constant Form_Request_Code := Key_Max + 27;
- F_Right_Char : constant Form_Request_Code := Key_Max + 28;
- F_Up_Char : constant Form_Request_Code := Key_Max + 29;
- F_Down_Char : constant Form_Request_Code := Key_Max + 30;
-
- F_New_Line : constant Form_Request_Code := Key_Max + 31;
- F_Insert_Char : constant Form_Request_Code := Key_Max + 32;
- F_Insert_Line : constant Form_Request_Code := Key_Max + 33;
- F_Delete_Char : constant Form_Request_Code := Key_Max + 34;
- F_Delete_Previous : constant Form_Request_Code := Key_Max + 35;
- F_Delete_Line : constant Form_Request_Code := Key_Max + 36;
- F_Delete_Word : constant Form_Request_Code := Key_Max + 37;
- F_Clear_EOL : constant Form_Request_Code := Key_Max + 38;
- F_Clear_EOF : constant Form_Request_Code := Key_Max + 39;
- F_Clear_Field : constant Form_Request_Code := Key_Max + 40;
- F_Overlay_Mode : constant Form_Request_Code := Key_Max + 41;
- F_Insert_Mode : constant Form_Request_Code := Key_Max + 42;
-
- -- Vertical Scrolling
- F_ScrollForward_Line : constant Form_Request_Code := Key_Max + 43;
- F_ScrollBackward_Line : constant Form_Request_Code := Key_Max + 44;
- F_ScrollForward_Page : constant Form_Request_Code := Key_Max + 45;
- F_ScrollBackward_Page : constant Form_Request_Code := Key_Max + 46;
- F_ScrollForward_HalfPage : constant Form_Request_Code := Key_Max + 47;
- F_ScrollBackward_HalfPage : constant Form_Request_Code := Key_Max + 48;
-
- -- Horizontal Scrolling
- F_HScrollForward_Char : constant Form_Request_Code := Key_Max + 49;
- F_HScrollBackward_Char : constant Form_Request_Code := Key_Max + 50;
- F_HScrollForward_Line : constant Form_Request_Code := Key_Max + 51;
- F_HScrollBackward_Line : constant Form_Request_Code := Key_Max + 52;
- F_HScrollForward_HalfLine : constant Form_Request_Code := Key_Max + 53;
- F_HScrollBackward_HalfLine : constant Form_Request_Code := Key_Max + 54;
-
- F_Validate_Field : constant Form_Request_Code := Key_Max + 55;
- F_Next_Choice : constant Form_Request_Code := Key_Max + 56;
- F_Previous_Choice : constant Form_Request_Code := Key_Max + 57;
-
- -- For those who like the old 'C' style request names
- REQ_NEXT_PAGE : Form_Request_Code renames F_Next_Page;
- REQ_PREV_PAGE : Form_Request_Code renames F_Previous_Page;
- REQ_FIRST_PAGE : Form_Request_Code renames F_First_Page;
- REQ_LAST_PAGE : Form_Request_Code renames F_Last_Page;
-
- REQ_NEXT_FIELD : Form_Request_Code renames F_Next_Field;
- REQ_PREV_FIELD : Form_Request_Code renames F_Previous_Field;
- REQ_FIRST_FIELD : Form_Request_Code renames F_First_Field;
- REQ_LAST_FIELD : Form_Request_Code renames F_Last_Field;
- REQ_SNEXT_FIELD : Form_Request_Code renames F_Sorted_Next_Field;
- REQ_SPREV_FIELD : Form_Request_Code renames F_Sorted_Previous_Field;
- REQ_SFIRST_FIELD : Form_Request_Code renames F_Sorted_First_Field;
- REQ_SLAST_FIELD : Form_Request_Code renames F_Sorted_Last_Field;
- REQ_LEFT_FIELD : Form_Request_Code renames F_Left_Field;
- REQ_RIGHT_FIELD : Form_Request_Code renames F_Right_Field;
- REQ_UP_FIELD : Form_Request_Code renames F_Up_Field;
- REQ_DOWN_FIELD : Form_Request_Code renames F_Down_Field;
-
- REQ_NEXT_CHAR : Form_Request_Code renames F_Next_Char;
- REQ_PREV_CHAR : Form_Request_Code renames F_Previous_Char;
- REQ_NEXT_LINE : Form_Request_Code renames F_Next_Line;
- REQ_PREV_LINE : Form_Request_Code renames F_Previous_Line;
- REQ_NEXT_WORD : Form_Request_Code renames F_Next_Word;
- REQ_PREV_WORD : Form_Request_Code renames F_Previous_Word;
- REQ_BEG_FIELD : Form_Request_Code renames F_Begin_Field;
- REQ_END_FIELD : Form_Request_Code renames F_End_Field;
- REQ_BEG_LINE : Form_Request_Code renames F_Begin_Line;
- REQ_END_LINE : Form_Request_Code renames F_End_Line;
- REQ_LEFT_CHAR : Form_Request_Code renames F_Left_Char;
- REQ_RIGHT_CHAR : Form_Request_Code renames F_Right_Char;
- REQ_UP_CHAR : Form_Request_Code renames F_Up_Char;
- REQ_DOWN_CHAR : Form_Request_Code renames F_Down_Char;
-
- REQ_NEW_LINE : Form_Request_Code renames F_New_Line;
- REQ_INS_CHAR : Form_Request_Code renames F_Insert_Char;
- REQ_INS_LINE : Form_Request_Code renames F_Insert_Line;
- REQ_DEL_CHAR : Form_Request_Code renames F_Delete_Char;
- REQ_DEL_PREV : Form_Request_Code renames F_Delete_Previous;
- REQ_DEL_LINE : Form_Request_Code renames F_Delete_Line;
- REQ_DEL_WORD : Form_Request_Code renames F_Delete_Word;
- REQ_CLR_EOL : Form_Request_Code renames F_Clear_EOL;
- REQ_CLR_EOF : Form_Request_Code renames F_Clear_EOF;
- REQ_CLR_FIELD : Form_Request_Code renames F_Clear_Field;
- REQ_OVL_MODE : Form_Request_Code renames F_Overlay_Mode;
- REQ_INS_MODE : Form_Request_Code renames F_Insert_Mode;
-
- REQ_SCR_FLINE : Form_Request_Code renames F_ScrollForward_Line;
- REQ_SCR_BLINE : Form_Request_Code renames F_ScrollBackward_Line;
- REQ_SCR_FPAGE : Form_Request_Code renames F_ScrollForward_Page;
- REQ_SCR_BPAGE : Form_Request_Code renames F_ScrollBackward_Page;
- REQ_SCR_FHPAGE : Form_Request_Code renames F_ScrollForward_HalfPage;
- REQ_SCR_BHPAGE : Form_Request_Code renames F_ScrollBackward_HalfPage;
-
- REQ_SCR_FCHAR : Form_Request_Code renames F_HScrollForward_Char;
- REQ_SCR_BCHAR : Form_Request_Code renames F_HScrollBackward_Char;
- REQ_SCR_HFLINE : Form_Request_Code renames F_HScrollForward_Line;
- REQ_SCR_HBLINE : Form_Request_Code renames F_HScrollBackward_Line;
- REQ_SCR_HFHALF : Form_Request_Code renames F_HScrollForward_HalfLine;
- REQ_SCR_HBHALF : Form_Request_Code renames F_HScrollBackward_HalfLine;
-
- REQ_VALIDATION : Form_Request_Code renames F_Validate_Field;
- REQ_NEXT_CHOICE : Form_Request_Code renames F_Next_Choice;
- REQ_PREV_CHOICE : Form_Request_Code renames F_Previous_Choice;
-
-
- procedure Request_Name (Key : in Form_Request_Code;
- Name : out String);
-
- function Request_Name (Key : Form_Request_Code) return String;
- -- Same as function
- pragma Inline (Request_Name);
-
- ------------------
- -- Exceptions --
- ------------------
- Form_Exception : exception;
-
- -- MANPAGE(`form_field_new.3x')
-
- -- ANCHOR(`new_field()',`Create')
- function Create (Height : Line_Count;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0;
- More_Buffers : Buffer_Number := Buffer_Number'First)
- return Field;
- -- AKA
- -- An overloaded Create is defined later. Pragma Inline appears there.
-
- -- ANCHOR(`new_field()',`New_Field')
- function New_Field (Height : Line_Count;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0;
- More_Buffers : Buffer_Number := Buffer_Number'First)
- return Field renames Create;
- -- AKA
- pragma Inline (New_Field);
-
- -- ANCHOR(`free_field()',`Delete')
- procedure Delete (Fld : in out Field);
- -- AKA
- -- Reset Fld to Null_Field
- -- An overloaded Delete is defined later. Pragma Inline appears there.
-
- -- ANCHOR(`dup_field()',`Duplicate')
- function Duplicate (Fld : Field;
- Top : Line_Position;
- Left : Column_Position) return Field;
- -- AKA
- pragma Inline (Duplicate);
-
- -- ANCHOR(`link_field()',`Link')
- function Link (Fld : Field;
- Top : Line_Position;
- Left : Column_Position) return Field;
- -- AKA
- pragma Inline (Link);
-
- -- MANPAGE(`form_field_just.3x')
-
- -- ANCHOR(`set_field_just()',`Set_Justification')
- procedure Set_Justification (Fld : in Field;
- Just : in Field_Justification := None);
- -- AKA
- pragma Inline (Set_Justification);
-
- -- ANCHOR(`field_just()',`Get_Justification')
- function Get_Justification (Fld : Field) return Field_Justification;
- -- AKA
- pragma Inline (Get_Justification);
-
- -- MANPAGE(`form_field_buffer.3x')
-
- -- ANCHOR(`set_field_buffer()',`Set_Buffer')
- procedure Set_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First;
- Str : in String);
- -- AKA
- -- Not inlined
-
- -- ANCHOR(`field_buffer()',`Get_Buffer')
- procedure Get_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First;
- Str : out String);
- -- AKA
-
- function Get_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First) return String;
- -- AKA
- -- Same but as function
- pragma Inline (Get_Buffer);
-
- -- ANCHOR(`set_field_status()',`Set_Status')
- procedure Set_Status (Fld : in Field;
- Status : in Boolean := True);
- -- AKA
- pragma Inline (Set_Status);
-
- -- ANCHOR(`field_status()',`Changed')
- function Changed (Fld : Field) return Boolean;
- -- AKA
- pragma Inline (Changed);
-
- -- ANCHOR(`set_field_max()',`Set_Maximum_Size')
- procedure Set_Maximum_Size (Fld : in Field;
- Max : in Natural := 0);
- -- AKA
- pragma Inline (Set_Maximum_Size);
-
- -- MANPAGE(`form_field_opts.3x')
-
- -- ANCHOR(`set_field_opts()',`Set_Options')
- procedure Set_Options (Fld : in Field;
- Options : in Field_Option_Set);
- -- AKA
- -- An overloaded version is defined later. Pragma Inline appears there
-
- -- ANCHOR(`field_opts_on()',`Switch_Options')
- procedure Switch_Options (Fld : in Field;
- Options : in Field_Option_Set;
- On : Boolean := True);
- -- AKA
- -- ALIAS(`field_opts_off()')
- -- An overloaded version is defined later. Pragma Inline appears there
-
- -- ANCHOR(`field_opts()',`Get_Options')
- procedure Get_Options (Fld : in Field;
- Options : out Field_Option_Set);
- -- AKA
-
- -- ANCHOR(`field_opts()',`Get_Options')
- function Get_Options (Fld : Field := Null_Field)
- return Field_Option_Set;
- -- AKA
- -- An overloaded version is defined later. Pragma Inline appears there
-
- -- MANPAGE(`form_field_attributes.3x')
-
- -- ANCHOR(`set_field_fore()',`Set_Foreground')
- procedure Set_Foreground
- (Fld : in Field;
- Fore : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Foreground);
-
- -- ANCHOR(`field_fore()',`Foreground')
- procedure Foreground (Fld : in Field;
- Fore : out Character_Attribute_Set);
- -- AKA
-
- -- ANCHOR(`field_fore()',`Foreground')
- procedure Foreground (Fld : in Field;
- Fore : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Foreground);
-
- -- ANCHOR(`set_field_back()',`Set_Background')
- procedure Set_Background
- (Fld : in Field;
- Back : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Background);
-
- -- ANCHOR(`field_back()',`Background')
- procedure Background (Fld : in Field;
- Back : out Character_Attribute_Set);
- -- AKA
-
- -- ANCHOR(`field_back()',`Background')
- procedure Background (Fld : in Field;
- Back : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Background);
-
- -- ANCHOR(`set_field_pad()',`Set_Pad_Character')
- procedure Set_Pad_Character (Fld : in Field;
- Pad : in Character := Space);
- -- AKA
- pragma Inline (Set_Pad_Character);
-
- -- ANCHOR(`field_pad()',`Pad_Character')
- procedure Pad_Character (Fld : in Field;
- Pad : out Character);
- -- AKA
- pragma Inline (Pad_Character);
-
- -- MANPAGE(`form_field_info.3x')
-
- -- ANCHOR(`field_info()',`Info')
- procedure Info (Fld : in Field;
- Lines : out Line_Count;
- Columns : out Column_Count;
- First_Row : out Line_Position;
- First_Column : out Column_Position;
- Off_Screen : out Natural;
- Additional_Buffers : out Buffer_Number);
- -- AKA
- pragma Inline (Info);
-
- -- ANCHOR(`dynamic_field_info()',`Dynamic_Info')
- procedure Dynamic_Info (Fld : in Field;
- Lines : out Line_Count;
- Columns : out Column_Count;
- Max : out Natural);
- -- AKA
- pragma Inline (Dynamic_Info);
-
- -- MANPAGE(`form_win.3x')
-
- -- ANCHOR(`set_form_win()',`Set_Window')
- procedure Set_Window (Frm : in Form;
- Win : in Window);
- -- AKA
- pragma Inline (Set_Window);
-
- -- ANCHOR(`form_win()',`Get_Window')
- function Get_Window (Frm : Form) return Window;
- -- AKA
- pragma Inline (Get_Window);
-
- -- ANCHOR(`set_form_sub()',`Set_Sub_Window')
- procedure Set_Sub_Window (Frm : in Form;
- Win : in Window);
- -- AKA
- pragma Inline (Set_Sub_Window);
-
- -- ANCHOR(`form_sub()',`Get_Sub_Window')
- function Get_Sub_Window (Frm : Form) return Window;
- -- AKA
- pragma Inline (Get_Sub_Window);
-
- -- ANCHOR(`scale_form()',`Scale')
- procedure Scale (Frm : in Form;
- Lines : out Line_Count;
- Columns : out Column_Count);
- -- AKA
- pragma Inline (Scale);
-
- -- MANPAGE(`form_hook.3x')
-
- type Form_Hook_Function is access procedure (Frm : in Form);
- pragma Convention (C, Form_Hook_Function);
-
- -- ANCHOR(`set_field_init()',`Set_Field_Init_Hook')
- procedure Set_Field_Init_Hook (Frm : in Form;
- Proc : in Form_Hook_Function);
- -- AKA
- pragma Inline (Set_Field_Init_Hook);
-
- -- ANCHOR(`set_field_term()',`Set_Field_Term_Hook')
- procedure Set_Field_Term_Hook (Frm : in Form;
- Proc : in Form_Hook_Function);
- -- AKA
- pragma Inline (Set_Field_Term_Hook);
-
- -- ANCHOR(`set_form_init()',`Set_Form_Init_Hook')
- procedure Set_Form_Init_Hook (Frm : in Form;
- Proc : in Form_Hook_Function);
- -- AKA
- pragma Inline (Set_Form_Init_Hook);
-
- -- ANCHOR(`set_form_term()',`Set_Form_Term_Hook')
- procedure Set_Form_Term_Hook (Frm : in Form;
- Proc : in Form_Hook_Function);
- -- AKA
- pragma Inline (Set_Form_Term_Hook);
-
- -- ANCHOR(`field_init()',`Get_Field_Init_Hook')
- function Get_Field_Init_Hook (Frm : Form) return Form_Hook_Function;
- -- AKA
- pragma Import (C, Get_Field_Init_Hook, "field_init");
-
- -- ANCHOR(`field_term()',`Get_Field_Term_Hook')
- function Get_Field_Term_Hook (Frm : Form) return Form_Hook_Function;
- -- AKA
- pragma Import (C, Get_Field_Term_Hook, "field_term");
-
- -- ANCHOR(`form_init()',`Get_Form_Init_Hook')
- function Get_Form_Init_Hook (Frm : Form) return Form_Hook_Function;
- -- AKA
- pragma Import (C, Get_Form_Init_Hook, "form_init");
-
- -- ANCHOR(`form_term()',`Get_Form_Term_Hook')
- function Get_Form_Term_Hook (Frm : Form) return Form_Hook_Function;
- -- AKA
- pragma Import (C, Get_Form_Term_Hook, "form_term");
-
- -- MANPAGE(`form_field.3x')
-
- -- ANCHOR(`set_form_fields()',`Redefine')
- procedure Redefine (Frm : in Form;
- Flds : in Field_Array_Access);
- -- AKA
- pragma Inline (Redefine);
-
- -- ANCHOR(`set_form_fields()',`Set_Fields')
- procedure Set_Fields (Frm : in Form;
- Flds : in Field_Array_Access) renames Redefine;
- -- AKA
- pragma Inline (Set_Fields);
-
- -- ANCHOR(`form_fields()',`Fields')
- function Fields (Frm : Form;
- Index : Positive) return Field;
- -- AKA
- pragma Inline (Fields);
-
- -- ANCHOR(`field_count()',`Field_Count')
- function Field_Count (Frm : Form) return Natural;
- -- AKA
- pragma Inline (Field_Count);
-
- -- ANCHOR(`move_field()',`Move')
- procedure Move (Fld : in Field;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move);
-
- -- MANPAGE(`form_new.3x')
-
- -- ANCHOR(`new_form()',`Create')
- function Create (Fields : Field_Array_Access) return Form;
- -- AKA
- pragma Inline (Create);
-
- -- ANCHOR(`new_form()',`New_Form')
- function New_Form (Fields : Field_Array_Access) return Form
- renames Create;
- -- AKA
- pragma Inline (New_Form);
-
- -- ANCHOR(`free_form()',`Delete')
- procedure Delete (Frm : in out Form);
- -- AKA
- -- Reset Frm to Null_Form
- pragma Inline (Delete);
-
- -- MANPAGE(`form_opts.3x')
-
- -- ANCHOR(`set_form_opts()',`Set_Options')
- procedure Set_Options (Frm : in Form;
- Options : in Form_Option_Set);
- -- AKA
- pragma Inline (Set_Options);
-
- -- ANCHOR(`form_opts_on()',`Switch_Options')
- procedure Switch_Options (Frm : in Form;
- Options : in Form_Option_Set;
- On : Boolean := True);
- -- AKA
- -- ALIAS(`form_opts_off()')
- pragma Inline (Switch_Options);
-
- -- ANCHOR(`form_opts()',`Get_Options')
- procedure Get_Options (Frm : in Form;
- Options : out Form_Option_Set);
- -- AKA
-
- -- ANCHOR(`form_opts()',`Get_Options')
- function Get_Options (Frm : Form := Null_Form) return Form_Option_Set;
- -- AKA
- pragma Inline (Get_Options);
-
- -- MANPAGE(`form_post.3x')
-
- -- ANCHOR(`post_form()',`Post')
- procedure Post (Frm : in Form;
- Post : in Boolean := True);
- -- AKA
- -- ALIAS(`unpost_form()')
- pragma Inline (Post);
-
- -- MANPAGE(`form_cursor.3x')
-
- -- ANCHOR(`pos_form_cursor()',`Position_Cursor')
- procedure Position_Cursor (Frm : Form);
- -- AKA
- pragma Inline (Position_Cursor);
-
- -- MANPAGE(`form_data.3x')
-
- -- ANCHOR(`data_ahead()',`Data_Ahead')
- function Data_Ahead (Frm : Form) return Boolean;
- -- AKA
- pragma Inline (Data_Ahead);
-
- -- ANCHOR(`data_behind()',`Data_Behind')
- function Data_Behind (Frm : Form) return Boolean;
- -- AKA
- pragma Inline (Data_Behind);
-
- -- MANPAGE(`form_driver.3x')
-
- type Driver_Result is (Form_Ok,
- Request_Denied,
- Unknown_Request,
- Invalid_Field);
-
- -- ANCHOR(`form_driver()',`Driver')
- function Driver (Frm : Form;
- Key : Key_Code) return Driver_Result;
- -- AKA
- -- Driver not inlined
-
- -- MANPAGE(`form_page.3x')
-
- type Page_Number is new Natural;
-
- -- ANCHOR(`set_current_field()',`Set_Current')
- procedure Set_Current (Frm : in Form;
- Fld : in Field);
- -- AKA
- pragma Inline (Set_Current);
-
- -- ANCHOR(`current_field()',`Current')
- function Current (Frm : in Form) return Field;
- -- AKA
- pragma Inline (Current);
-
- -- ANCHOR(`set_form_page()',`Set_Page')
- procedure Set_Page (Frm : in Form;
- Page : in Page_Number := Page_Number'First);
- -- AKA
- pragma Inline (Set_Page);
-
- -- ANCHOR(`form_page()',`Page')
- function Page (Frm : Form) return Page_Number;
- -- AKA
- pragma Inline (Page);
-
- -- ANCHOR(`field_index()',`Get_Index')
- function Get_Index (Fld : Field) return Positive;
- -- AKA
- -- Please note that in this binding we start the numbering of fields
- -- with 1. So this is number is one more than you get from the low
- -- level call.
- pragma Inline (Get_Index);
-
- -- MANPAGE(`form_new_page.3x')
-
- -- ANCHOR(`set_new_page()',`Set_New_Page')
- procedure Set_New_Page (Fld : in Field;
- New_Page : in Boolean := True);
- -- AKA
- pragma Inline (Set_New_Page);
-
- -- ANCHOR(`new_page()',`Is_New_Page')
- function Is_New_Page (Fld : Field) return Boolean;
- -- AKA
- pragma Inline (Is_New_Page);
-
-------------------------------------------------------------------------------
-private
- type Field is new System.Storage_Elements.Integer_Address;
- type Form is new System.Storage_Elements.Integer_Address;
-
- Null_Field : constant Field := 0;
- Null_Form : constant Form := 0;
-
-end Terminal_Interface.Curses.Forms;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
deleted file mode 100644
index d9b3503..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
+++ /dev/null
@@ -1,75 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus-item_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus.Item_User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access User;
-package Terminal_Interface.Curses.Menus.Item_User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Menus.Item_User_Data);
-
- -- The binding uses the same user pointer for menu items
- -- as the low level C implementation. So you can safely
- -- read or write the user pointer also with the C routines
- --
- -- MANPAGE(`mitem_userptr.3x')
-
- -- ANCHOR(`set_item_userptr',`Set_User_Data')
- procedure Set_User_Data (Itm : in Item;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`item_userptr',`Get_User_Data')
- procedure Get_User_Data (Itm : in Item;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`item_userptr',`Get_User_Data')
- function Get_User_Data (Itm : in Item) return User_Access;
- -- AKA
- -- Same as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Menus.Item_User_Data;
-
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
deleted file mode 100644
index 57c57f7..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
+++ /dev/null
@@ -1,70 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus-menu_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus.Menu_User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access User;
-package Terminal_Interface.Curses.Menus.Menu_User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Menus.Menu_User_Data);
-
- -- MANPAGE(`menu_userptr.3x')
-
- -- ANCHOR(`set_menu_userptr',`Set_User_Data')
- procedure Set_User_Data (Men : in Menu;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`menu_userptr',`Get_User_Data')
- procedure Get_User_Data (Men : in Menu;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`menu_userptr',`Get_User_Data')
- function Get_User_Data (Men : in Menu) return User_Access;
- -- AKA
- -- Same as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Menus.Menu_User_Data;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus.ads.m4
deleted file mode 100644
index a718e97..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-menus.ads.m4
+++ /dev/null
@@ -1,594 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menu --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Menu_Base_Defs')
-with System;
-with Ada.Characters.Latin_1;
-
-package Terminal_Interface.Curses.Menus is
- pragma Preelaborate (Terminal_Interface.Curses.Menus);
-include(`Menu_Linker_Options')dnl
-include(`Linker_Options')
- Space : Character renames Ada.Characters.Latin_1.Space;
-
- type Item is private;
- type Menu is private;
-
- ---------------------------
- -- Interface constants --
- ---------------------------
- Null_Item : constant Item;
- Null_Menu : constant Menu;
-
- subtype Menu_Request_Code is Key_Code
- range (Key_Max + 1) .. (Key_Max + 17);
-
- -- The prefix M_ stands for "Menu Request"
- M_Left_Item : constant Menu_Request_Code := Key_Max + 1;
- M_Right_Item : constant Menu_Request_Code := Key_Max + 2;
- M_Up_Item : constant Menu_Request_Code := Key_Max + 3;
- M_Down_Item : constant Menu_Request_Code := Key_Max + 4;
- M_ScrollUp_Line : constant Menu_Request_Code := Key_Max + 5;
- M_ScrollDown_Line : constant Menu_Request_Code := Key_Max + 6;
- M_ScrollDown_Page : constant Menu_Request_Code := Key_Max + 7;
- M_ScrollUp_Page : constant Menu_Request_Code := Key_Max + 8;
- M_First_Item : constant Menu_Request_Code := Key_Max + 9;
- M_Last_Item : constant Menu_Request_Code := Key_Max + 10;
- M_Next_Item : constant Menu_Request_Code := Key_Max + 11;
- M_Previous_Item : constant Menu_Request_Code := Key_Max + 12;
- M_Toggle_Item : constant Menu_Request_Code := Key_Max + 13;
- M_Clear_Pattern : constant Menu_Request_Code := Key_Max + 14;
- M_Back_Pattern : constant Menu_Request_Code := Key_Max + 15;
- M_Next_Match : constant Menu_Request_Code := Key_Max + 16;
- M_Previous_Match : constant Menu_Request_Code := Key_Max + 17;
-
- -- For those who like the old 'C' names for the request codes
- REQ_LEFT_ITEM : Menu_Request_Code renames M_Left_Item;
- REQ_RIGHT_ITEM : Menu_Request_Code renames M_Right_Item;
- REQ_UP_ITEM : Menu_Request_Code renames M_Up_Item;
- REQ_DOWN_ITEM : Menu_Request_Code renames M_Down_Item;
- REQ_SCR_ULINE : Menu_Request_Code renames M_ScrollUp_Line;
- REQ_SCR_DLINE : Menu_Request_Code renames M_ScrollDown_Line;
- REQ_SCR_DPAGE : Menu_Request_Code renames M_ScrollDown_Page;
- REQ_SCR_UPAGE : Menu_Request_Code renames M_ScrollUp_Page;
- REQ_FIRST_ITEM : Menu_Request_Code renames M_First_Item;
- REQ_LAST_ITEM : Menu_Request_Code renames M_Last_Item;
- REQ_NEXT_ITEM : Menu_Request_Code renames M_Next_Item;
- REQ_PREV_ITEM : Menu_Request_Code renames M_Previous_Item;
- REQ_TOGGLE_ITEM : Menu_Request_Code renames M_Toggle_Item;
- REQ_CLEAR_PATTERN : Menu_Request_Code renames M_Clear_Pattern;
- REQ_BACK_PATTERN : Menu_Request_Code renames M_Back_Pattern;
- REQ_NEXT_MATCH : Menu_Request_Code renames M_Next_Match;
- REQ_PREV_MATCH : Menu_Request_Code renames M_Previous_Match;
-
- procedure Request_Name (Key : in Menu_Request_Code;
- Name : out String);
-
- function Request_Name (Key : Menu_Request_Code) return String;
- -- Same as function
-
- ------------------
- -- Exceptions --
- ------------------
-
- Menu_Exception : exception;
- --
- -- Menu options
- --
- pragma Warnings (Off);
-include(`Menu_Opt_Rep')dnl
-
- pragma Warnings (On);
-
- function Default_Menu_Options return Menu_Option_Set;
- -- Initial default options for a menu.
- pragma Inline (Default_Menu_Options);
- --
- -- Item options
- --
- pragma Warnings (Off);
-include(`Item_Rep')dnl
-
- pragma Warnings (On);
-
- function Default_Item_Options return Item_Option_Set;
- -- Initial default options for an item.
- pragma Inline (Default_Item_Options);
-
- --
- -- Item Array
- --
- type Item_Array is array (Positive range <>) of aliased Item;
- pragma Convention (C, Item_Array);
-
- type Item_Array_Access is access Item_Array;
-
- procedure Free (IA : in out Item_Array_Access;
- Free_Items : Boolean := False);
- -- Release the memory for an allocated item array
- -- If Free_Items is True, call Delete() for all the items in
- -- the array.
-
- -- MANPAGE(`mitem_new.3x')
-
- -- ANCHOR(`new_item()',`Create')
- function Create (Name : String;
- Description : String := "") return Item;
- -- AKA
- -- Not inlined.
-
- -- ANCHOR(`new_item()',`New_Item')
- function New_Item (Name : String;
- Description : String := "") return Item
- renames Create;
- -- AKA
-
- -- ANCHOR(`free_item()',`Delete')
- procedure Delete (Itm : in out Item);
- -- AKA
- -- Resets Itm to Null_Item
-
- -- MANPAGE(`mitem_value.3x')
-
- -- ANCHOR(`set_item_value()',`Set_Value')
- procedure Set_Value (Itm : in Item;
- Value : in Boolean := True);
- -- AKA
- pragma Inline (Set_Value);
-
- -- ANCHOR(`item_value()',`Value')
- function Value (Itm : Item) return Boolean;
- -- AKA
- pragma Inline (Value);
-
- -- MANPAGE(`mitem_visible.3x')
-
- -- ANCHOR(`item_visible()',`Visible')
- function Visible (Itm : Item) return Boolean;
- -- AKA
- pragma Inline (Visible);
-
- -- MANPAGE(`mitem_opts.3x')
-
- -- ANCHOR(`set_item_opts()',`Set_Options')
- procedure Set_Options (Itm : in Item;
- Options : in Item_Option_Set);
- -- AKA
- -- An overloaded Set_Options is defined later. Pragma Inline appears there
-
- -- ANCHOR(`item_opts_on()',`Switch_Options')
- procedure Switch_Options (Itm : in Item;
- Options : in Item_Option_Set;
- On : Boolean := True);
- -- AKA
- -- ALIAS(`item_opts_off()')
- -- An overloaded Switch_Options is defined later.
- -- Pragma Inline appears there
-
- -- ANCHOR(`item_opts()',`Get_Options')
- procedure Get_Options (Itm : in Item;
- Options : out Item_Option_Set);
- -- AKA
-
- -- ANCHOR(`item_opts()',`Get_Options')
- function Get_Options (Itm : Item := Null_Item) return Item_Option_Set;
- -- AKA
- -- An overloaded Get_Options is defined later. Pragma Inline appears there
-
- -- MANPAGE(`mitem_name.3x')
-
- -- ANCHOR(`item_name()',`Name')
- procedure Name (Itm : in Item;
- Name : out String);
- -- AKA
- function Name (Itm : Item) return String;
- -- AKA
- -- Implemented as function
- pragma Inline (Name);
-
- -- ANCHOR(`item_description();',`Description')
- procedure Description (Itm : in Item;
- Description : out String);
- -- AKA
-
- function Description (Itm : Item) return String;
- -- AKA
- -- Implemented as function
- pragma Inline (Description);
-
- -- MANPAGE(`mitem_current.3x')
-
- -- ANCHOR(`set_current_item()',`Set_Current')
- procedure Set_Current (Men : in Menu;
- Itm : in Item);
- -- AKA
- pragma Inline (Set_Current);
-
- -- ANCHOR(`current_item()',`Current')
- function Current (Men : Menu) return Item;
- -- AKA
- pragma Inline (Current);
-
- -- ANCHOR(`set_top_row()',`Set_Top_Row')
- procedure Set_Top_Row (Men : in Menu;
- Line : in Line_Position);
- -- AKA
- pragma Inline (Set_Top_Row);
-
- -- ANCHOR(`top_row()',`Top_Row')
- function Top_Row (Men : Menu) return Line_Position;
- -- AKA
- pragma Inline (Top_Row);
-
- -- ANCHOR(`item_index()',`Get_Index')
- function Get_Index (Itm : Item) return Positive;
- -- AKA
- -- Please note that in this binding we start the numbering of items
- -- with 1. So this is number is one more than you get from the low
- -- level call.
- pragma Inline (Get_Index);
-
- -- MANPAGE(`menu_post.3x')
-
- -- ANCHOR(`post_menu()',`Post')
- procedure Post (Men : in Menu;
- Post : in Boolean := True);
- -- AKA
- -- ALIAS(`unpost_menu()')
- pragma Inline (Post);
-
- -- MANPAGE(`menu_opts.3x')
-
- -- ANCHOR(`set_menu_opts()',`Set_Options')
- procedure Set_Options (Men : in Menu;
- Options : in Menu_Option_Set);
- -- AKA
- pragma Inline (Set_Options);
-
- -- ANCHOR(`menu_opts_on()',`Switch_Options')
- procedure Switch_Options (Men : in Menu;
- Options : in Menu_Option_Set;
- On : Boolean := True);
- -- AKA
- -- ALIAS(`menu_opts_off()')
- pragma Inline (Switch_Options);
-
- -- ANCHOR(`menu_opts()',`Get_Options')
- procedure Get_Options (Men : in Menu;
- Options : out Menu_Option_Set);
- -- AKA
-
- -- ANCHOR(`menu_opts()',`Get_Options')
- function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set;
- -- AKA
- pragma Inline (Get_Options);
-
- -- MANPAGE(`menu_win.3x')
-
- -- ANCHOR(`set_menu_win()',`Set_Window')
- procedure Set_Window (Men : in Menu;
- Win : in Window);
- -- AKA
- pragma Inline (Set_Window);
-
- -- ANCHOR(`menu_win()',`Get_Window')
- function Get_Window (Men : Menu) return Window;
- -- AKA
- pragma Inline (Get_Window);
-
- -- ANCHOR(`set_menu_sub()',`Set_Sub_Window')
- procedure Set_Sub_Window (Men : in Menu;
- Win : in Window);
- -- AKA
- pragma Inline (Set_Sub_Window);
-
- -- ANCHOR(`menu_sub()',`Get_Sub_Window')
- function Get_Sub_Window (Men : Menu) return Window;
- -- AKA
- pragma Inline (Get_Sub_Window);
-
- -- ANCHOR(`scale_menu()',`Scale')
- procedure Scale (Men : in Menu;
- Lines : out Line_Count;
- Columns : out Column_Count);
- -- AKA
- pragma Inline (Scale);
-
- -- MANPAGE(`menu_cursor.3x')
-
- -- ANCHOR(`pos_menu_cursor()',`Position_Cursor')
- procedure Position_Cursor (Men : Menu);
- -- AKA
- pragma Inline (Position_Cursor);
-
- -- MANPAGE(`menu_mark.3x')
-
- -- ANCHOR(`set_menu_mark()',`Set_Mark')
- procedure Set_Mark (Men : in Menu;
- Mark : in String);
- -- AKA
- pragma Inline (Set_Mark);
-
- -- ANCHOR(`menu_mark()',`Mark')
- procedure Mark (Men : in Menu;
- Mark : out String);
- -- AKA
-
- function Mark (Men : Menu) return String;
- -- AKA
- -- Implemented as function
- pragma Inline (Mark);
-
- -- MANPAGE(`menu_attribs.3x')
-
- -- ANCHOR(`set_menu_fore()',`Set_Foreground')
- procedure Set_Foreground
- (Men : in Menu;
- Fore : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Foreground);
-
- -- ANCHOR(`menu_fore()',`Foreground')
- procedure Foreground (Men : in Menu;
- Fore : out Character_Attribute_Set);
- -- AKA
-
- -- ANCHOR(`menu_fore()',`Foreground')
- procedure Foreground (Men : in Menu;
- Fore : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Foreground);
-
- -- ANCHOR(`set_menu_back()',`Set_Background')
- procedure Set_Background
- (Men : in Menu;
- Back : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Background);
-
- -- ANCHOR(`menu_back()',`Background')
- procedure Background (Men : in Menu;
- Back : out Character_Attribute_Set);
- -- AKA
- -- ANCHOR(`menu_back()',`Background')
-
- procedure Background (Men : in Menu;
- Back : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Background);
-
- -- ANCHOR(`set_menu_grey()',`Set_Grey')
- procedure Set_Grey
- (Men : in Menu;
- Grey : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Grey);
-
- -- ANCHOR(`menu_grey()',`Grey')
- procedure Grey (Men : in Menu;
- Grey : out Character_Attribute_Set);
- -- AKA
-
- -- ANCHOR(`menu_grey()',`Grey')
- procedure Grey
- (Men : in Menu;
- Grey : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Grey);
-
- -- ANCHOR(`set_menu_pad()',`Set_Pad_Character')
- procedure Set_Pad_Character (Men : in Menu;
- Pad : in Character := Space);
- -- AKA
- pragma Inline (Set_Pad_Character);
-
- -- ANCHOR(`menu_pad()',`Pad_Character')
- procedure Pad_Character (Men : in Menu;
- Pad : out Character);
- -- AKA
- pragma Inline (Pad_Character);
-
- -- MANPAGE(`menu_spacing.3x')
-
- -- ANCHOR(`set_menu_spacing()',`Set_Spacing')
- procedure Set_Spacing (Men : in Menu;
- Descr : in Column_Position := 0;
- Row : in Line_Position := 0;
- Col : in Column_Position := 0);
- -- AKA
- pragma Inline (Set_Spacing);
-
- -- ANCHOR(`menu_spacing()',`Spacing')
- procedure Spacing (Men : in Menu;
- Descr : out Column_Position;
- Row : out Line_Position;
- Col : out Column_Position);
- -- AKA
- pragma Inline (Spacing);
-
- -- MANPAGE(`menu_pattern.3x')
-
- -- ANCHOR(`set_menu_pattern()',`Set_Pattern')
- function Set_Pattern (Men : Menu;
- Text : String) return Boolean;
- -- AKA
- -- Return TRUE if the pattern matches, FALSE otherwise
- pragma Inline (Set_Pattern);
-
- -- ANCHOR(`menu_pattern()',`Pattern')
- procedure Pattern (Men : in Menu;
- Text : out String);
- -- AKA
- pragma Inline (Pattern);
-
- -- MANPAGE(`menu_format.3x')
-
- -- ANCHOR(`set_menu_format()',`Set_Format')
- procedure Set_Format (Men : in Menu;
- Lines : in Line_Count;
- Columns : in Column_Count);
- -- AKA
- pragma Inline (Set_Format);
-
- -- ANCHOR(`menu_format()',`Format')
- procedure Format (Men : in Menu;
- Lines : out Line_Count;
- Columns : out Column_Count);
- -- AKA
- pragma Inline (Format);
-
- -- MANPAGE(`menu_hook.3x')
-
- type Menu_Hook_Function is access procedure (Men : in Menu);
- pragma Convention (C, Menu_Hook_Function);
-
- -- ANCHOR(`set_item_init()',`Set_Item_Init_Hook')
- procedure Set_Item_Init_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function);
- -- AKA
- pragma Inline (Set_Item_Init_Hook);
-
- -- ANCHOR(`set_item_term()',`Set_Item_Term_Hook')
- procedure Set_Item_Term_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function);
- -- AKA
- pragma Inline (Set_Item_Term_Hook);
-
- -- ANCHOR(`set_menu_init()',`Set_Menu_Init_Hook')
- procedure Set_Menu_Init_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function);
- -- AKA
- pragma Inline (Set_Menu_Init_Hook);
-
- -- ANCHOR(`set_menu_term()',`Set_Menu_Term_Hook')
- procedure Set_Menu_Term_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function);
- -- AKA
- pragma Inline (Set_Menu_Term_Hook);
-
- -- ANCHOR(`item_init()',`Get_Item_Init_Hook')
- function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function;
- -- AKA
- pragma Inline (Get_Item_Init_Hook);
-
- -- ANCHOR(`item_term()',`Get_Item_Term_Hook')
- function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function;
- -- AKA
- pragma Inline (Get_Item_Term_Hook);
-
- -- ANCHOR(`menu_init()',`Get_Menu_Init_Hook')
- function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function;
- -- AKA
- pragma Inline (Get_Menu_Init_Hook);
-
- -- ANCHOR(`menu_term()',`Get_Menu_Term_Hook')
- function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function;
- -- AKA
- pragma Inline (Get_Menu_Term_Hook);
-
- -- MANPAGE(`menu_items.3x')
-
- -- ANCHOR(`set_menu_items()',`Redefine')
- procedure Redefine (Men : in Menu;
- Items : in Item_Array_Access);
- -- AKA
- pragma Inline (Redefine);
-
- procedure Set_Items (Men : in Menu;
- Items : in Item_Array_Access) renames Redefine;
- pragma Inline (Set_Items);
-
- -- ANCHOR(`menu_items()',`Items')
- function Items (Men : Menu;
- Index : Positive) return Item;
- -- AKA
- pragma Inline (Items);
-
- -- ANCHOR(`item_count()',`Item_Count')
- function Item_Count (Men : Menu) return Natural;
- -- AKA
- pragma Inline (Item_Count);
-
- -- MANPAGE(`menu_new.3x')
-
- -- ANCHOR(`new_menu()',`Create')
- function Create (Items : Item_Array_Access) return Menu;
- -- AKA
- -- Not inlined
-
- function New_Menu (Items : Item_Array_Access) return Menu renames Create;
-
- -- ANCHOR(`free_menu()',`Delete')
- procedure Delete (Men : in out Menu);
- -- AKA
- -- Reset Men to Null_Menu
- -- Not inlined
-
- -- MANPAGE(`menu_new.3x')
-
- type Driver_Result is (Menu_Ok,
- Request_Denied,
- Unknown_Request,
- No_Match);
-
- -- ANCHOR(`menu_driver()',`Driver')
- function Driver (Men : Menu;
- Key : Key_Code) return Driver_Result;
- -- AKA
- -- Driver is not inlined
-
--------------------------------------------------------------------------------
-private
- type Item is new System.Storage_Elements.Integer_Address;
- type Menu is new System.Storage_Elements.Integer_Address;
-
- Null_Item : constant Item := 0;
- Null_Menu : constant Menu := 0;
-
-end Terminal_Interface.Curses.Menus;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-mouse.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-mouse.ads.m4
deleted file mode 100644
index 21e1ef3..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-mouse.ads.m4
+++ /dev/null
@@ -1,173 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-mouse__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Mouse --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Mouse_Base_Defs')
-with System;
-
-package Terminal_Interface.Curses.Mouse is
- pragma Preelaborate (Terminal_Interface.Curses.Mouse);
-
- -- MANPAGE(`curs_mouse.3x')
- -- Please note, that in ncurses-1.9.9e documentation mouse support
- -- is still marked as experimental. So also this binding will change
- -- if the ncurses methods change.
- --
- type Event_Mask is private;
- No_Events : constant Event_Mask;
- All_Events : constant Event_Mask;
-
- type Mouse_Button is (Left, -- aka: Button 1
- Middle, -- aka: Button 2
- Right, -- aka: Button 3
- Button4, -- aka: Button 4
- Control, -- Control Key
- Shift, -- Shift Key
- Alt); -- ALT Key
-
- subtype Real_Buttons is Mouse_Button range Left .. Button4;
- subtype Modifier_Keys is Mouse_Button range Control .. Alt;
-
- type Button_State is (Released,
- Pressed,
- Clicked,
- Double_Clicked,
- Triple_Clicked);
-
- type Button_States is array (Button_State) of Boolean;
- pragma Pack (Button_States);
-
- All_Clicks : constant Button_States := (Clicked .. Triple_Clicked => True,
- others => False);
- All_States : constant Button_States := (others => True);
-
- type Mouse_Event is private;
-
- -- MANPAGE(`curs_mouse.3x')
-
- function Has_Mouse return Boolean;
- -- Return true if a mouse device is supported, false otherwise.
-
- procedure Register_Reportable_Event
- (Button : in Mouse_Button;
- State : in Button_State;
- Mask : in out Event_Mask);
- -- Stores the event described by the button and the state in the mask.
- -- Before you call this the first time, you should init the mask
- -- with the Empty_Mask constant
- pragma Inline (Register_Reportable_Event);
-
- procedure Register_Reportable_Events
- (Button : in Mouse_Button;
- State : in Button_States;
- Mask : in out Event_Mask);
- -- Register all events described by the Button and the State bitmap.
- -- Before you call this the first time, you should init the mask
- -- with the Empty_Mask constant
-
- -- 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.
- function Start_Mouse (Mask : Event_Mask := All_Events)
- return Event_Mask;
- -- AKA
- pragma Inline (Start_Mouse);
-
- procedure End_Mouse (Mask : in Event_Mask := No_Events);
- -- Terminates the mouse, restores the specified event mask
- pragma Inline (End_Mouse);
-
- -- ANCHOR(`getmouse()',`Get_Mouse')
- function Get_Mouse return Mouse_Event;
- -- AKA
- pragma Inline (Get_Mouse);
-
- procedure Get_Event (Event : in Mouse_Event;
- Y : out Line_Position;
- X : out Column_Position;
- Button : out Mouse_Button;
- State : out Button_State);
- -- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they
- -- may not be identical to window coordinates.
- pragma Inline (Get_Event);
-
- -- ANCHOR(`ungetmouse()',`Unget_Mouse')
- procedure Unget_Mouse (Event : in Mouse_Event);
- -- AKA
- pragma Inline (Unget_Mouse);
-
- -- ANCHOR(`wenclose()',`Enclosed_In_Window')
- function Enclosed_In_Window (Win : Window := Standard_Window;
- Event : Mouse_Event) return Boolean;
- -- AKA
- -- But : use event instead of screen coordinates.
- pragma Inline (Enclosed_In_Window);
-
- -- ANCHOR(`mouseinterval()',`Mouse_Interval')
- function Mouse_Interval (Msec : Natural := 200) return Natural;
- -- AKA
- pragma Inline (Mouse_Interval);
-
-private
- type Event_Mask is new Interfaces.C.unsigned_long;
-
- type Mouse_Event is
- record
- Id : Integer range Integer (Interfaces.C.short'First) ..
- Integer (Interfaces.C.short'Last);
- X, Y, Z : Integer range Integer (Interfaces.C.int'First) ..
- Integer (Interfaces.C.int'Last);
- Bstate : Event_Mask;
- end record;
- pragma Convention (C, Mouse_Event);
- pragma Pack (Mouse_Event);
-
-include(`Mouse_Event_Rep')
- Generation_Bit_Order : constant System.Bit_Order := System.M4_BIT_ORDER;
- -- This constant may be different on your system.
-
-include(`Mouse_Events')
-
- No_Events : constant Event_Mask := 0;
- All_Events : constant Event_Mask := ALL_MOUSE_EVENTS;
-
-end Terminal_Interface.Curses.Mouse;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
deleted file mode 100644
index f126aee..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
+++ /dev/null
@@ -1,70 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-panels-user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Panels.User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access all User;
-package Terminal_Interface.Curses.Panels.User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
-
- -- MANPAGE(`panel.3x')
-
- -- ANCHOR(`set_panel_userptr',`Set_User_Data')
- procedure Set_User_Data (Pan : in Panel;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`panel_userptr',`Get_User_Data')
- procedure Get_User_Data (Pan : in Panel;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`panel_userptr',`Get_User_Data')
- function Get_User_Data (Pan : in Panel) return User_Access;
- -- AKA
- -- Same as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Panels.User_Data;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses-panels.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses-panels.ads.m4
deleted file mode 100644
index f0982ef..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses-panels.ads.m4
+++ /dev/null
@@ -1,146 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-panels__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Panels --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with System;
-
-package Terminal_Interface.Curses.Panels is
- pragma Preelaborate (Terminal_Interface.Curses.Panels);
-include(`Panel_Linker_Options')dnl
-include(`Linker_Options')
- type Panel is private;
-
- ---------------------------
- -- Interface constants --
- ---------------------------
- Null_Panel : constant Panel;
-
- -------------------
- -- Exceptions --
- -------------------
-
- Panel_Exception : exception;
-
- -- MANPAGE(`panel.3x')
-
- -- ANCHOR(`new_panel()',`Create')
- function Create (Win : Window) return Panel;
- -- AKA
- pragma Inline (Create);
-
- -- ANCHOR(`new_panel()',`New_Panel')
- function New_Panel (Win : Window) return Panel renames Create;
- -- AKA
- pragma Inline (New_Panel);
-
- -- ANCHOR(`bottom_panel()',`Bottom')
- procedure Bottom (Pan : in Panel);
- -- AKA
- pragma Inline (Bottom);
-
- -- ANCHOR(`top_panel()',`Top')
- procedure Top (Pan : in Panel);
- -- AKA
- pragma Inline (Top);
-
- -- ANCHOR(`show_panel()',`Show')
- procedure Show (Pan : in Panel);
- -- AKA
- pragma Inline (Show);
-
- -- ANCHOR(`update_panels()',`Update_Panels')
- procedure Update_Panels;
- -- AKA
- pragma Import (C, Update_Panels, "update_panels");
-
- -- ANCHOR(`hide_panel()',`Hide')
- procedure Hide (Pan : in Panel);
- -- AKA
- pragma Inline (Hide);
-
- -- ANCHOR(`panel_window()',`Get_Window')
- function Get_Window (Pan : Panel) return Window;
- -- AKA
- pragma Inline (Get_Window);
-
- -- ANCHOR(`panel_window()',`Panel_Window')
- function Panel_Window (Pan : Panel) return Window renames Get_Window;
- pragma Inline (Panel_Window);
-
- -- ANCHOR(`replace_panel()',`Replace')
- procedure Replace (Pan : in Panel;
- Win : in Window);
- -- AKA
- pragma Inline (Replace);
-
- -- ANCHOR(`move_panel()',`Move')
- procedure Move (Pan : in Panel;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move);
-
- -- ANCHOR(`panel_hidden()',`Is_Hidden')
- function Is_Hidden (Pan : Panel) return Boolean;
- -- AKA
- pragma Inline (Is_Hidden);
-
- -- ANCHOR(`panel_above()',`Above')
- function Above (Pan : Panel) return Panel;
- -- AKA
- pragma Import (C, Above, "panel_above");
-
- -- ANCHOR(`panel_below()',`Below')
- function Below (Pan : Panel) return Panel;
- -- AKA
- pragma Import (C, Below, "panel_below");
-
- -- ANCHOR(`del_panel()',`Delete')
- procedure Delete (Pan : in out Panel);
- -- AKA
- pragma Inline (Delete);
-
-private
- type Panel is new System.Storage_Elements.Integer_Address;
- Null_Panel : constant Panel := 0;
-
-end Terminal_Interface.Curses.Panels;
diff --git a/ncurses-5.2/Ada95/gen/terminal_interface-curses.ads.m4 b/ncurses-5.2/Ada95/gen/terminal_interface-curses.ads.m4
deleted file mode 100644
index be2f02b..0000000
--- a/ncurses-5.2/Ada95/gen/terminal_interface-curses.ads.m4
+++ /dev/null
@@ -1,1388 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses__ads.htm')dnl
-include(M4MACRO)------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Base_Defs')
-with System.Storage_Elements;
-with Interfaces.C; -- We need this for some assertions.
-
-package Terminal_Interface.Curses is
- pragma Preelaborate (Terminal_Interface.Curses);
-include(`Linker_Options')
-include(`Version_Info')
- type Window is private;
- Null_Window : constant Window;
-
- type Line_Position is new Natural; -- line coordinate
- type Column_Position is new Natural; -- column coordinate
-
- subtype Line_Count is Line_Position range 1 .. Line_Position'Last;
- -- Type to count lines. We do not allow null windows, so must be positive
- subtype Column_Count is Column_Position range 1 .. Column_Position'Last;
- -- Type to count columns. We do not allow null windows, so must be positive
-
- type Key_Code is new Natural;
- -- That is anything including real characters, special keys and logical
- -- request codes.
-
- subtype Real_Key_Code is Key_Code range 0 .. M4_KEY_MAX;
- -- This are the codes that potentially represent a real keystroke.
- -- Not all codes may be possible on a specific terminal. To check the
- -- availability of a special key, the Has_Key function is provided.
-
- subtype Special_Key_Code is Real_Key_Code
- range M4_SPECIAL_FIRST .. Real_Key_Code'Last;
- -- Type for a function- or special key number
-
- subtype Normal_Key_Code is Real_Key_Code range
- Character'Pos (Character'First) .. Character'Pos (Character'Last);
- -- This are the codes for regular (incl. non-graphical) characters.
-
- -- Constants for function- and special keys
- --
- Key_None : constant Special_Key_Code := M4_SPECIAL_FIRST;
-include(`Key_Definitions')
- Key_Max : constant Special_Key_Code
- := Special_Key_Code'Last;
-
- subtype User_Key_Code is Key_Code
- range (Key_Max + 129) .. Key_Code'Last;
- -- This is reserved for user defined key codes. The range between Key_Max
- -- and the first user code is reserved for subsystems like menu and forms.
-
- -- For those who like to use the original key names we produce them were
- -- they differ from the original. Please note that they may differ in
- -- lower/upper case.
-include(`Old_Keys')dnl
-
-------------------------------------------------------------------------------
-
- type Color_Number is range 0 .. 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
- -- (potentially) definable colors. Some of those indices are
- -- predefined (see below), although they may not really exist.
-
-include(`Color_Defs')
- type RGB_Value is range 0 .. Integer (Interfaces.C.short'Last);
- for RGB_Value'Size use Interfaces.C.short'Size;
- -- Some system may allow to redefine a color by setting RGB values.
-
- type Color_Pair is range 0 .. 255;
- for Color_Pair'Size use 8;
- subtype Redefinable_Color_Pair is Color_Pair range 1 .. 255;
- -- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0
- -- is fixed (Black & White). A color pair is simply a combination of
- -- two colors described by Color_Numbers, one for the foreground and
- -- the other for the background
-
-include(`Character_Attribute_Set_Rep')
- -- (n)curses uses all but the lowest 16 Bits for Attributes.
-
- Normal_Video : constant Character_Attribute_Set := (others => False);
-
- type Attributed_Character is
- record
- Attr : Character_Attribute_Set;
- Color : Color_Pair;
- Ch : Character;
- end record;
- pragma Convention (C, Attributed_Character);
- -- This is the counterpart for the chtype in C.
-
-include(`AC_Rep')
- Default_Character : constant Attributed_Character
- := (Ch => Character'First,
- Color => Color_Pair'First,
- Attr => (others => False)); -- preelaboratable Normal_Video
-
- type Attributed_String is array (Positive range <>) of Attributed_Character;
- pragma Pack (Attributed_String);
- -- In this binding we allow strings of attributed characters.
-
- ------------------
- -- Exceptions --
- ------------------
- Curses_Exception : exception;
- Wrong_Curses_Version : exception;
-
- -- Those exceptions are raised by the ETI (Extended Terminal Interface)
- -- subpackets for Menu and Forms handling.
- --
- Eti_System_Error : exception;
- Eti_Bad_Argument : exception;
- Eti_Posted : exception;
- Eti_Connected : exception;
- Eti_Bad_State : exception;
- Eti_No_Room : exception;
- Eti_Not_Posted : exception;
- Eti_Unknown_Command : exception;
- Eti_No_Match : exception;
- Eti_Not_Selectable : exception;
- Eti_Not_Connected : exception;
- Eti_Request_Denied : exception;
- Eti_Invalid_Field : exception;
- Eti_Current : exception;
-
- --------------------------------------------------------------------------
- -- External C variables
- -- Conceptually even in C this are kind of constants, but they are
- -- initialized and sometimes changed by the library routines at runtime
- -- depending on the type of terminal. I believe the best way to model
- -- this is to use functions.
- --------------------------------------------------------------------------
-
- function Lines return Line_Count;
- pragma Inline (Lines);
-
- function Columns return Column_Count;
- pragma Inline (Columns);
-
- function Tab_Size return Natural;
- pragma Inline (Tab_Size);
-
- function Number_Of_Colors return Natural;
- pragma Inline (Number_Of_Colors);
-
- function Number_Of_Color_Pairs return Natural;
- pragma Inline (Number_Of_Color_Pairs);
-
- ACS_Map : array (Character'Val (0) .. Character'Val (127)) of
- Attributed_Character;
- pragma Import (C, ACS_Map, "acs_map");
- --
- --
- -- Constants for several characters from the Alternate Character Set
- -- You must use this constants as indices into the ACS_Map array
- -- to get the corresponding attributed character at runtime.
- --
-include(`ACS_Map')dnl
-
- -- MANPAGE(`curs_initscr.3x')
- -- | Not implemented: newterm, set_term, delscreen
-
- -- ANCHOR(`stdscr',`Standard_Window')
- function Standard_Window return Window;
- -- AKA
- pragma Inline (Standard_Window);
-
- -- ANCHOR(`initscr()',`Init_Screen')
- procedure Init_Screen;
-
- -- ANCHOR(`initscr()',`Init_Windows')
- procedure Init_Windows renames Init_Screen;
- -- AKA
- pragma Inline (Init_Screen);
- pragma Inline (Init_Windows);
-
- -- ANCHOR(`endwin()',`End_Windows')
- procedure End_Windows;
- -- AKA
- procedure End_Screen renames End_Windows;
- pragma Inline (End_Windows);
- pragma Inline (End_Screen);
-
- -- ANCHOR(`isendwin()',`Is_End_Window')
- function Is_End_Window return Boolean;
- -- AKA
- pragma Inline (Is_End_Window);
-
- -- MANPAGE(`curs_move.3x')
-
- -- ANCHOR(`wmove()',`Move_Cursor')
- procedure Move_Cursor (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move_Cursor);
-
- -- MANPAGE(`curs_addch.3x')
-
- -- ANCHOR(`waddch()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Ch : in Attributed_Character);
- -- AKA
-
- procedure Add (Win : in Window := Standard_Window;
- Ch : in Character);
- -- Add a single character at the current logical cursor position to
- -- the window. Use the current windows attributes.
-
- -- ANCHOR(`mvwaddch()',`Add')
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Attributed_Character);
- -- AKA
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Character);
- -- Move to the position and add a single character into the window
- -- There are more Add routines, so the Inline pragma follows later
-
- -- ANCHOR(`wechochar()',`Add_With_Immediate_Echo')
- procedure Add_With_Immediate_Echo
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character);
- -- AKA
-
- procedure Add_With_Immediate_Echo
- (Win : in Window := Standard_Window;
- Ch : in Character);
- -- Add a character and do an immediate refresh of the screen.
- pragma Inline (Add_With_Immediate_Echo);
-
- -- MANPAGE(`curs_window.3x')
-
- -- ANCHOR(`newwin()',`Create')
- function Create
- (Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window;
- -- AKA
- pragma Inline (Create);
-
- function New_Window
- (Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- renames Create;
- pragma Inline (New_Window);
-
- -- ANCHOR(`delwin()',`Delete')
- procedure Delete (Win : in out Window);
- -- AKA
- -- Reset Win to Null_Window
- pragma Inline (Delete);
-
- -- ANCHOR(`subwin()',`Sub_Window')
- function Sub_Window
- (Win : Window := Standard_Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window;
- -- AKA
- pragma Inline (Sub_Window);
-
- -- ANCHOR(`derwin()',`Derived_Window')
- function Derived_Window
- (Win : Window := Standard_Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window;
- -- AKA
- pragma Inline (Derived_Window);
-
- -- ANCHOR(`dupwin()',`Duplicate')
- function Duplicate (Win : Window) return Window;
- -- AKA
- pragma Inline (Duplicate);
-
- -- ANCHOR(`mvwin()',`Move_Window')
- procedure Move_Window (Win : in Window;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move_Window);
-
- -- ANCHOR(`mvderwin()',`Move_Derived_Window')
- procedure Move_Derived_Window (Win : in Window;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move_Derived_Window);
-
- -- ANCHOR(`wsyncup()',`Synchronize_Upwards')
- procedure Synchronize_Upwards (Win : in Window);
- -- AKA
- pragma Import (C, Synchronize_Upwards, "wsyncup");
-
- -- ANCHOR(`wsyncdown()',`Synchronize_Downwards')
- procedure Synchronize_Downwards (Win : in Window);
- -- AKA
- pragma Import (C, Synchronize_Downwards, "wsyncdown");
-
- -- ANCHOR(`syncok()',`Set_Synch_Mode')
- procedure Set_Synch_Mode (Win : in Window := Standard_Window;
- Mode : in Boolean := False);
- -- AKA
- pragma Inline (Set_Synch_Mode);
-
- -- MANPAGE(`curs_addstr.3x')
-
- -- ANCHOR(`waddnstr()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Str : in String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`waddstr()')
-
- -- ANCHOR(`mvwaddnstr()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwaddstr()')
-
- -- MANPAGE(`curs_addchstr.3x')
-
- -- ANCHOR(`waddchnstr()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Str : in Attributed_String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`waddchstr()')
-
- -- ANCHOR(`mvwaddchnstr()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in Attributed_String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwaddchstr()')
- pragma Inline (Add);
-
- -- MANPAGE(`curs_border.3x')
-
- -- ANCHOR(`wborder()',`Border')
- procedure Border
- (Win : in Window := Standard_Window;
- Left_Side_Symbol : in Attributed_Character := Default_Character;
- Right_Side_Symbol : in Attributed_Character := Default_Character;
- Top_Side_Symbol : in Attributed_Character := Default_Character;
- Bottom_Side_Symbol : in Attributed_Character := Default_Character;
- Upper_Left_Corner_Symbol : in Attributed_Character := Default_Character;
- Upper_Right_Corner_Symbol : in Attributed_Character := Default_Character;
- Lower_Left_Corner_Symbol : in Attributed_Character := Default_Character;
- Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character
- );
- -- AKA
- pragma Inline (Border);
-
- -- ANCHOR(`box()',`Box')
- procedure Box
- (Win : in Window := Standard_Window;
- Vertical_Symbol : in Attributed_Character := Default_Character;
- Horizontal_Symbol : in Attributed_Character := Default_Character);
- -- AKA
- pragma Inline (Box);
-
- -- ANCHOR(`whline()',`Horizontal_Line')
- procedure Horizontal_Line
- (Win : in Window := Standard_Window;
- Line_Size : in Natural;
- Line_Symbol : in Attributed_Character := Default_Character);
- -- AKA
- pragma Inline (Horizontal_Line);
-
- -- ANCHOR(`wvline()',`Vertical_Line')
- procedure Vertical_Line
- (Win : in Window := Standard_Window;
- Line_Size : in Natural;
- Line_Symbol : in Attributed_Character := Default_Character);
- -- AKA
- pragma Inline (Vertical_Line);
-
- -- MANPAGE(`curs_getch.3x')
-
- -- ANCHOR(`wgetch()',`Get_Keystroke')
- function Get_Keystroke (Win : Window := Standard_Window)
- return Real_Key_Code;
- -- AKA
- -- 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
- -- returned keycode is Key_None.
- pragma Inline (Get_Keystroke);
-
- -- ANCHOR(`ungetch()',`Undo_Keystroke')
- procedure Undo_Keystroke (Key : in Real_Key_Code);
- -- AKA
- pragma Inline (Undo_Keystroke);
-
- -- ANCHOR(`has_key()',`Has_Key')
- function Has_Key (Key : Special_Key_Code) return Boolean;
- -- AKA
- pragma Inline (Has_Key);
-
- -- |
- -- | Some helper functions
- -- |
- function Is_Function_Key (Key : Special_Key_Code) return Boolean;
- -- Return True if the Key is a function key (i.e. one of F0 .. F63)
- pragma Inline (Is_Function_Key);
-
- subtype Function_Key_Number is Integer range 0 .. 63;
- -- (n)curses allows for 64 function keys.
-
- function Function_Key (Key : Real_Key_Code) return Function_Key_Number;
- -- Return the number of the function key. If the code is not a
- -- function key, a CONSTRAINT_ERROR will be raised.
- pragma Inline (Function_Key);
-
- function Function_Key_Code (Key : Function_Key_Number) return Real_Key_Code;
- -- Return the key code for a given function-key number.
- pragma Inline (Function_Key_Code);
-
- -- MANPAGE(`curs_attr.3x')
-
- -- 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.
- -- AKA
- -- ALIAS(`wattroff()')
-
- -- ANCHOR(`wattrset()',`Set_Character_Attributes')
- procedure Set_Character_Attributes
- (Win : in Window := Standard_Window;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- 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
-
- -- ANCHOR(`wattr_get()',`Get_Character_Attribute')
- function Get_Character_Attribute
- (Win : in Window := Standard_Window) return Color_Pair;
- -- AKA
- pragma Inline (Get_Character_Attribute);
-
- -- ANCHOR(`wcolor_set()',`Set_Color')
- procedure Set_Color (Win : in Window := Standard_Window;
- Pair : in Color_Pair);
- -- AKA
- pragma Inline (Set_Color);
-
- -- ANCHOR(`wchgat()',`Change_Attributes')
- procedure Change_Attributes
- (Win : in Window := Standard_Window;
- Count : in Integer := -1;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
-
- -- ANCHOR(`mvwchgat()',`Change_Attributes')
- procedure Change_Attributes
- (Win : in Window := Standard_Window;
- Line : in Line_Position := Line_Position'First;
- Column : in Column_Position := Column_Position'First;
- Count : in Integer := -1;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Change_Attributes);
-
- -- MANPAGE(`curs_beep.3x')
-
- -- ANCHOR(`beep()',`Beep')
- procedure Beep;
- -- AKA
- pragma Inline (Beep);
-
- -- ANCHOR(`flash()',`Flash_Screen')
- procedure Flash_Screen;
- -- AKA
- pragma Inline (Flash_Screen);
-
- -- MANPAGE(`curs_inopts.3x')
-
- -- | Not implemented : typeahead
- --
- -- ANCHOR(`cbreak()',`Set_Cbreak_Mode')
- procedure Set_Cbreak_Mode (SwitchOn : in Boolean := True);
- -- AKA
- -- ALIAS(`nocbreak()')
- pragma Inline (Set_Cbreak_Mode);
-
- -- ANCHOR(`raw()',`Set_Raw_Mode')
- procedure Set_Raw_Mode (SwitchOn : in Boolean := True);
- -- AKA
- -- ALIAS(`noraw()')
- pragma Inline (Set_Raw_Mode);
-
- -- ANCHOR(`echo()',`Set_Echo_Mode')
- procedure Set_Echo_Mode (SwitchOn : in Boolean := True);
- -- AKA
- -- ALIAS(`noecho()')
- pragma Inline (Set_Echo_Mode);
-
- -- ANCHOR(`meta()',`Set_Meta_Mode')
- procedure Set_Meta_Mode (Win : in Window := Standard_Window;
- SwitchOn : in Boolean := True);
- -- AKA
- pragma Inline (Set_Meta_Mode);
-
- -- ANCHOR(`keypad()',`Set_KeyPad_Mode')
- procedure Set_KeyPad_Mode (Win : in Window := Standard_Window;
- SwitchOn : in Boolean := True);
- -- AKA
- pragma Inline (Set_KeyPad_Mode);
-
- type Half_Delay_Amount is range 1 .. 255;
-
- -- ANCHOR(`halfdelay()',`Half_Delay')
- procedure Half_Delay (Amount : in Half_Delay_Amount);
- -- AKA
- pragma Inline (Half_Delay);
-
- -- ANCHOR(`intrflush()',`Set_Flush_On_Interrupt_Mode')
- procedure Set_Flush_On_Interrupt_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := True);
- -- AKA
- pragma Inline (Set_Flush_On_Interrupt_Mode);
-
- -- ANCHOR(`qiflush()',`Set_Queue_Interrupt_Mode')
- procedure Set_Queue_Interrupt_Mode
- (Win : in Window := Standard_Window;
- Flush : in Boolean := True);
- -- AKA
- -- ALIAS(`noqiflush()')
- pragma Inline (Set_Queue_Interrupt_Mode);
-
- -- ANCHOR(`nodelay()',`Set_NoDelay_Mode')
- procedure Set_NoDelay_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False);
- -- AKA
- pragma Inline (Set_NoDelay_Mode);
-
- type Timeout_Mode is (Blocking, Non_Blocking, Delayed);
-
- -- ANCHOR(`wtimeout()',`Set_Timeout_Mode')
- procedure Set_Timeout_Mode (Win : in Window := Standard_Window;
- Mode : in Timeout_Mode;
- Amount : in Natural); -- in Milliseconds
- -- AKA
- -- 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
- -- evaluated.
- -- We don't inline this procedure.
-
- -- ANCHOR(`notimeout()',`Set_Escape_Time_Mode')
- procedure Set_Escape_Timer_Mode
- (Win : in Window := Standard_Window;
- Timer_Off : in Boolean := False);
- -- AKA
- pragma Inline (Set_Escape_Timer_Mode);
-
- -- MANPAGE(`curs_outopts.3x')
-
- -- ANCHOR(`nl()',`Set_NL_Mode')
- procedure Set_NL_Mode (SwitchOn : in Boolean := True);
- -- AKA
- -- ALIAS(`nonl()')
- pragma Inline (Set_NL_Mode);
-
- -- ANCHOR(`clearok()',`Clear_On_Next_Update')
- procedure Clear_On_Next_Update
- (Win : in Window := Standard_Window;
- Do_Clear : in Boolean := True);
- -- AKA
- pragma Inline (Clear_On_Next_Update);
-
- -- ANCHOR(`idlok()',`Use_Insert_Delete_Line')
- procedure Use_Insert_Delete_Line
- (Win : in Window := Standard_Window;
- Do_Idl : in Boolean := True);
- -- AKA
- pragma Inline (Use_Insert_Delete_Line);
-
- -- ANCHOR(`idcok()',`Use_Insert_Delete_Character')
- procedure Use_Insert_Delete_Character
- (Win : in Window := Standard_Window;
- Do_Idc : in Boolean := True);
- -- AKA
- pragma Inline (Use_Insert_Delete_Character);
-
- -- ANCHOR(`leaveok()',`Leave_Cursor_After_Update')
- procedure Leave_Cursor_After_Update
- (Win : in Window := Standard_Window;
- Do_Leave : in Boolean := True);
- -- AKA
- pragma Inline (Leave_Cursor_After_Update);
-
- -- ANCHOR(`immedok()',`Immediate_Update_Mode')
- procedure Immediate_Update_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False);
- -- AKA
- pragma Inline (Immediate_Update_Mode);
-
- -- ANCHOR(`scrollok()',`Allow_Scrolling')
- procedure Allow_Scrolling
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False);
- -- AKA
- pragma Inline (Allow_Scrolling);
-
- function Scrolling_Allowed (Win : Window := Standard_Window) return Boolean;
- -- There is no such function in the C interface.
- pragma Inline (Scrolling_Allowed);
-
- -- ANCHOR(`wsetscrreg()',`Set_Scroll_Region')
- procedure Set_Scroll_Region
- (Win : in Window := Standard_Window;
- Top_Line : in Line_Position;
- Bottom_Line : in Line_Position);
- -- AKA
- pragma Inline (Set_Scroll_Region);
-
- -- MANPAGE(`curs_refresh.3x')
-
- -- ANCHOR(`doupdate()',`Update_Screen')
- procedure Update_Screen;
- -- AKA
- pragma Inline (Update_Screen);
-
- -- ANCHOR(`wrefresh()',`Refresh')
- procedure Refresh (Win : in Window := Standard_Window);
- -- AKA
- -- There is an overloaded Refresh for Pads.
- -- The Inline pragma appears there
-
- -- ANCHOR(`wnoutrefresh()',`Refresh_Without_Update')
- procedure Refresh_Without_Update
- (Win : in Window := Standard_Window);
- -- AKA
- -- There is an overloaded Refresh_Without_Update for Pads.
- -- The Inline pragma appears there
-
- -- ANCHOR(`redrawwin()',`Redraw')
- procedure Redraw (Win : in Window := Standard_Window);
- -- AKA
-
- -- ANCHOR(`wredrawln()',`Redraw')
- procedure Redraw (Win : in Window := Standard_Window;
- Begin_Line : in Line_Position;
- Line_Count : in Positive);
- -- AKA
- pragma Inline (Redraw);
-
- -- MANPAGE(`curs_clear.3x')
-
- -- ANCHOR(`werase()',`Erase')
- procedure Erase (Win : in Window := Standard_Window);
- -- AKA
- pragma Inline (Erase);
-
- -- ANCHOR(`wclear()',`Clear')
- procedure Clear
- (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
- 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_Line);
-
- -- MANPAGE(`curs_bkgd.3x')
-
- -- ANCHOR(`wbkgdset()',`Set_Background')
- procedure Set_Background
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character);
- -- AKA
- pragma Inline (Set_Background);
-
- -- ANCHOR(`wbkgd()',`Change_Background')
- procedure Change_Background
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character);
- -- AKA
- pragma Inline (Change_Background);
-
- -- ANCHOR(`wbkgdget()',`Get_Background')
- function Get_Background (Win : Window := Standard_Window)
- return Attributed_Character;
- -- AKA
- pragma Inline (Get_Background);
-
- -- MANPAGE(`curs_touch.3x')
-
- -- ANCHOR(`untouchwin()',`Untouch')
- procedure Untouch (Win : in Window := Standard_Window);
- -- AKA
- pragma Inline (Untouch);
-
- -- ANCHOR(`touchwin()',`Touch')
- procedure Touch (Win : in Window := Standard_Window);
- -- AKA
-
- -- ANCHOR(`touchline()',`Touch')
- procedure Touch (Win : in Window := Standard_Window;
- Start : in Line_Position;
- Count : in Positive);
- -- AKA
- pragma Inline (Touch);
-
- -- ANCHOR(`wtouchln()',`Change_Line_Status')
- procedure Change_Lines_Status (Win : in Window := Standard_Window;
- Start : in Line_Position;
- Count : in Positive;
- State : in Boolean);
- -- AKA
- pragma Inline (Change_Lines_Status);
-
- -- ANCHOR(`is_linetouched()',`Is_Touched')
- function Is_Touched (Win : Window := Standard_Window;
- Line : Line_Position) return Boolean;
- -- AKA
-
- -- ANCHOR(`is_wintouched()',`Is_Touched')
- function Is_Touched (Win : Window := Standard_Window) return Boolean;
- -- AKA
- pragma Inline (Is_Touched);
-
- -- MANPAGE(`curs_overlay.3x')
-
- -- ANCHOR(`copywin()',`Copy')
- procedure Copy
- (Source_Window : in Window;
- Destination_Window : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position;
- Non_Destructive_Mode : in Boolean := True);
- -- AKA
- pragma Inline (Copy);
-
- -- ANCHOR(`overwrite()',`Overwrite')
- procedure Overwrite (Source_Window : in Window;
- Destination_Window : in Window);
- -- AKA
- pragma Inline (Overwrite);
-
- -- ANCHOR(`overlay()',`Overlay')
- procedure Overlay (Source_Window : in Window;
- Destination_Window : in Window);
- -- AKA
- pragma Inline (Overlay);
-
- -- MANPAGE(`curs_deleteln.3x')
-
- -- ANCHOR(`winsdelln()',`Insert_Delete_Lines')
- procedure Insert_Delete_Lines
- (Win : in Window := Standard_Window;
- Lines : in Integer := 1); -- default is to insert one line above
- -- AKA
- pragma Inline (Insert_Delete_Lines);
-
- -- ANCHOR(`wdeleteln()',`Delete_Line')
- procedure Delete_Line (Win : in Window := Standard_Window);
- -- AKA
- pragma Inline (Delete_Line);
-
- -- ANCHOR(`winsertln()',`Insert_Line')
- procedure Insert_Line (Win : in Window := Standard_Window);
- -- AKA
- pragma Inline (Insert_Line);
-
- -- MANPAGE(`curs_getyx.3x')
-
- -- ANCHOR(`getmaxyx()',`Get_Size')
- procedure Get_Size
- (Win : in Window := Standard_Window;
- Number_Of_Lines : out Line_Count;
- Number_Of_Columns : out Column_Count);
- -- AKA
- pragma Inline (Get_Size);
-
- -- ANCHOR(`getbegyx()',`Get_Window_Position')
- procedure Get_Window_Position
- (Win : in Window := Standard_Window;
- Top_Left_Line : out Line_Position;
- Top_Left_Column : out Column_Position);
- -- AKA
- pragma Inline (Get_Window_Position);
-
- -- ANCHOR(`getyx()',`Get_Cursor_Position')
- procedure Get_Cursor_Position
- (Win : in Window := Standard_Window;
- Line : out Line_Position;
- Column : out Column_Position);
- -- AKA
- pragma Inline (Get_Cursor_Position);
-
- -- ANCHOR(`getparyx()',`Get_Origin_Relative_To_Parent')
- procedure Get_Origin_Relative_To_Parent
- (Win : in Window;
- Top_Left_Line : out Line_Position;
- Top_Left_Column : out Column_Position;
- Is_Not_A_Subwindow : out Boolean);
- -- AKA
- -- Instead of placing -1 in the coordinates as return, we use a boolean
- -- to return the info that the window has no parent.
- pragma Inline (Get_Origin_Relative_To_Parent);
-
- -- MANPAGE(`curs_pad.3x')
-
- -- ANCHOR(`newpad()',`New_Pad')
- function New_Pad (Lines : Line_Count;
- Columns : Column_Count) return Window;
- -- AKA
- pragma Inline (New_Pad);
-
- -- ANCHOR(`subpad()',`Sub_Pad')
- function Sub_Pad
- (Pad : Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window;
- -- AKA
- pragma Inline (Sub_Pad);
-
- -- ANCHOR(`prefresh()',`Refresh')
- procedure Refresh
- (Pad : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position);
- -- AKA
- pragma Inline (Refresh);
-
- -- ANCHOR(`pnoutrefresh()',`Refresh_Without_Update')
- procedure Refresh_Without_Update
- (Pad : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position);
- -- AKA
- pragma Inline (Refresh_Without_Update);
-
- -- ANCHOR(`pechochar()',`Add_Character_To_Pad_And_Echo_It')
- procedure Add_Character_To_Pad_And_Echo_It
- (Pad : in Window;
- Ch : in Attributed_Character);
- -- AKA
-
- procedure Add_Character_To_Pad_And_Echo_It
- (Pad : in Window;
- Ch : in Character);
- pragma Inline (Add_Character_To_Pad_And_Echo_It);
-
- -- MANPAGE(`curs_scroll.3x')
-
- -- ANCHOR(`wscrl()',`Scroll')
- procedure Scroll (Win : in Window := Standard_Window;
- Amount : in Integer := 1);
- -- AKA
- pragma Inline (Scroll);
-
- -- MANPAGE(`curs_delch.3x')
-
- -- ANCHOR(`wdelch()',`Delete_Character')
- procedure Delete_Character (Win : in Window := Standard_Window);
- -- AKA
-
- -- ANCHOR(`mvwdelch()',`Delete_Character')
- procedure Delete_Character
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Delete_Character);
-
- -- MANPAGE(`curs_inch.3x')
-
- -- ANCHOR(`winch()',`Peek')
- function Peek (Win : Window := Standard_Window)
- return Attributed_Character;
- -- AKA
-
- -- ANCHOR(`mvwinch()',`Peek')
- function Peek
- (Win : Window := Standard_Window;
- Line : Line_Position;
- Column : Column_Position) return Attributed_Character;
- -- AKA
- -- More Peek's follow, pragma Inline appears later.
-
- -- MANPAGE(`curs_winch.3x')
-
- -- ANCHOR(`winsch()',`Insert')
- procedure Insert (Win : in Window := Standard_Window;
- Ch : in Attributed_Character);
- -- AKA
-
- -- ANCHOR(`mvwinsch()',`Insert')
- procedure Insert (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Attributed_Character);
- -- AKA
-
- -- MANPAGE(`curs_winch.3x')
-
- -- ANCHOR(`winsnstr()',`Insert')
- procedure Insert (Win : in Window := Standard_Window;
- Str : in String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`winsstr()')
-
- -- ANCHOR(`mvwinsnstr()',`Insert')
- procedure Insert (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwinsstr()')
- pragma Inline (Insert);
-
- -- MANPAGE(`curs_instr.3x')
-
- -- ANCHOR(`winnstr()',`Peek')
- procedure Peek (Win : in Window := Standard_Window;
- Str : out String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`winstr()')
-
- -- ANCHOR(`mvwinnstr()',`Peek')
- procedure Peek (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwinstr()')
-
- -- MANPAGE(`curs_inchstr.3x')
-
- -- ANCHOR(`winchnstr()',`Peek')
- procedure Peek (Win : in Window := Standard_Window;
- Str : out Attributed_String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`winchstr()')
-
- -- ANCHOR(`mvwinchnstr()',`Peek')
- procedure Peek (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out Attributed_String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwinchstr()')
- -- We don't inline the Peek procedures
-
- -- MANPAGE(`curs_getstr.3x')
-
- -- ANCHOR(`wgetnstr()',`Get')
- procedure Get (Win : in Window := Standard_Window;
- Str : out String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`wgetstr()')
-
- 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)
- -- Get is not inlined
-
- -- MANPAGE(`curs_slk.3x')
-
- type Soft_Label_Key_Format is (Three_Two_Three,
- Four_Four,
- PC_Style, -- ncurses specific
- PC_Style_With_Index); -- "
- type Label_Number is new Positive range 1 .. 12;
- type Label_Justification is (Left, Centered, Right);
-
- -- ANCHOR(`slk_init()',`Init_Soft_Label_Keys')
- procedure Init_Soft_Label_Keys
- (Format : in Soft_Label_Key_Format := Three_Two_Three);
- -- AKA
- pragma Inline (Init_Soft_Label_Keys);
-
- -- ANCHOR(`slk_set()',`Set_Soft_Label_Key')
- procedure Set_Soft_Label_Key (Label : in Label_Number;
- Text : in String;
- Fmt : in Label_Justification := Left);
- -- AKA
- -- We don't inline this procedure
-
- -- ANCHOR(`slk_refresh()',`Refresh_Soft_Label_Key')
- procedure Refresh_Soft_Label_Keys;
- -- AKA
- pragma Inline (Refresh_Soft_Label_Keys);
-
- -- ANCHOR(`slk_noutrefresh()',`Refresh_Soft_Label_Keys_Without_Update')
- procedure Refresh_Soft_Label_Keys_Without_Update;
- -- AKA
- pragma Inline (Refresh_Soft_Label_Keys_Without_Update);
-
- -- ANCHOR(`slk_label()',`Get_Soft_Label_Key')
- procedure Get_Soft_Label_Key (Label : in Label_Number;
- Text : out String);
- -- AKA
-
- -- ANCHOR(`slk_label()',`Get_Soft_Label_Key')
- function Get_Soft_Label_Key (Label : in Label_Number) return String;
- -- AKA
- -- Same as function
- pragma Inline (Get_Soft_Label_Key);
-
- -- ANCHOR(`slk_clear()',`Clear_Soft_Label_Keys')
- procedure Clear_Soft_Label_Keys;
- -- AKA
- pragma Inline (Clear_Soft_Label_Keys);
-
- -- ANCHOR(`slk_restore()',`Restore_Soft_Label_Keys')
- procedure Restore_Soft_Label_Keys;
- -- AKA
- pragma Inline (Restore_Soft_Label_Keys);
-
- -- ANCHOR(`slk_touch()',`Touch_Soft_Label_Keys')
- procedure Touch_Soft_Label_Keys;
- -- AKA
- pragma Inline (Touch_Soft_Label_Keys);
-
- -- ANCHOR(`slk_attron()',`Switch_Soft_Label_Key_Attributes')
- procedure Switch_Soft_Label_Key_Attributes
- (Attr : in Character_Attribute_Set;
- On : in Boolean := True);
- -- AKA
- -- ALIAS(`slk_attroff()')
- pragma Inline (Switch_Soft_Label_Key_Attributes);
-
- -- ANCHOR(`slk_attrset()',`Set_Soft_Label_Key_Attributes')
- procedure Set_Soft_Label_Key_Attributes
- (Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Soft_Label_Key_Attributes);
-
- -- ANCHOR(`slk_attr()',`Get_Soft_Label_Key_Attributes')
- function Get_Soft_Label_Key_Attributes return Character_Attribute_Set;
- -- AKA
-
- -- ANCHOR(`slk_attr()',`Get_Soft_Label_Key_Attributes')
- function Get_Soft_Label_Key_Attributes return Color_Pair;
- -- AKA
- pragma Inline (Get_Soft_Label_Key_Attributes);
-
- -- ANCHOR(`slk_color()',`Set_Soft_Label_Key_Color')
- procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair);
- -- AKA
- pragma Inline (Set_Soft_Label_Key_Color);
-
- -- MANPAGE(`keyok.3x')
-
- -- ANCHOR(`keyok()',`Enable_Key')
- procedure Enable_Key (Key : in Special_Key_Code;
- Enable : in Boolean := True);
- -- AKA
- pragma Inline (Enable_Key);
-
- -- MANPAGE(`define_key.3x')
-
- -- ANCHOR(`define_key()',`Define_Key')
- procedure Define_Key (Definition : in String;
- Key : in Special_Key_Code);
- -- AKA
- pragma Inline (Define_Key);
-
- -- MANPAGE(`curs_util.3x')
-
- -- | Not implemented : filter, use_env, putwin, getwin
- --
- -- ANCHOR(`keyname()',`Key_Name')
- procedure Key_Name (Key : in Real_Key_Code;
- Name : out String);
- -- AKA
- -- The external name for a real keystroke.
-
- -- ANCHOR(`keyname()',`Key_Name')
- function Key_Name (Key : in Real_Key_Code) return String;
- -- AKA
- -- Same as function
- -- We don't inline this routine
-
- -- ANCHOR(`unctrl()',`Un_Control')
- procedure Un_Control (Ch : in Attributed_Character;
- Str : out String);
- -- AKA
-
- -- ANCHOR(`unctrl()',`Un_Control')
- function Un_Control (Ch : in Attributed_Character) return String;
- -- AKA
- -- Same as function
- pragma Inline (Un_Control);
-
- -- ANCHOR(`delay_output()',`Delay_Output')
- procedure Delay_Output (Msecs : in Natural);
- -- AKA
- pragma Inline (Delay_Output);
-
- -- ANCHOR(`flushinp()',`Flush_Input')
- procedure Flush_Input;
- -- AKA
- pragma Inline (Flush_Input);
-
- -- MANPAGE(`curs_termattrs.3x')
-
- -- ANCHOR(`baudrate()',`Baudrate')
- function Baudrate return Natural;
- -- AKA
- pragma Inline (Baudrate);
-
- -- ANCHOR(`erasechar()',`Erase_Character')
- function Erase_Character return Character;
- -- AKA
- pragma Inline (Erase_Character);
-
- -- ANCHOR(`killchar()',`Kill_Character')
- function Kill_Character return Character;
- -- AKA
- pragma Inline (Kill_Character);
-
- -- ANCHOR(`has_ic()',`Has_Insert_Character')
- function Has_Insert_Character return Boolean;
- -- AKA
- pragma Inline (Has_Insert_Character);
-
- -- ANCHOR(`has_il()',`Has_Insert_Line')
- function Has_Insert_Line return Boolean;
- -- AKA
- pragma Inline (Has_Insert_Line);
-
- -- ANCHOR(`termattrs()',`Supported_Attributes')
- function Supported_Attributes return Character_Attribute_Set;
- -- AKA
- pragma Inline (Supported_Attributes);
-
- -- ANCHOR(`longname()',`Long_Name')
- procedure Long_Name (Name : out String);
- -- AKA
-
- -- ANCHOR(`longname()',`Long_Name')
- function Long_Name return String;
- -- AKA
- -- Same as function
- pragma Inline (Long_Name);
-
- -- ANCHOR(`termname()',`Terminal_Name')
- procedure Terminal_Name (Name : out String);
- -- AKA
-
- -- ANCHOR(`termname()',`Terminal_Name')
- function Terminal_Name return String;
- -- AKA
- -- Same as function
- pragma Inline (Terminal_Name);
-
- -- MANPAGE(`curs_color.3x')
-
- -- ANCHOR(`start_color()',`Start_Color')
- procedure Start_Color;
- -- AKA
- pragma Import (C, Start_Color, "start_color");
-
- -- ANCHOR(`init_pair()',`Init_Pair')
- procedure Init_Pair (Pair : in Redefinable_Color_Pair;
- Fore : in Color_Number;
- Back : in Color_Number);
- -- AKA
- pragma Inline (Init_Pair);
-
- -- ANCHOR(`pair_content()',`Pair_Content')
- procedure Pair_Content (Pair : in Color_Pair;
- Fore : out Color_Number;
- Back : out Color_Number);
- -- AKA
- pragma Inline (Pair_Content);
-
- -- ANCHOR(`has_colors()',`Has_Colors')
- function Has_Colors return Boolean;
- -- AKA
- pragma Inline (Has_Colors);
-
- -- ANCHOR(`init_color()',`Init_Color')
- procedure Init_Color (Color : in Color_Number;
- Red : in RGB_Value;
- Green : in RGB_Value;
- Blue : in RGB_Value);
- -- AKA
- pragma Inline (Init_Color);
-
- -- ANCHOR(`can_change_color()',`Can_Change_Color')
- function Can_Change_Color return Boolean;
- -- AKA
- pragma Inline (Can_Change_Color);
-
- -- ANCHOR(`color_content()',`Color_Content')
- procedure Color_Content (Color : in Color_Number;
- Red : out RGB_Value;
- Green : out RGB_Value;
- Blue : out RGB_Value);
- -- AKA
- pragma Inline (Color_Content);
-
- -- MANPAGE(`curs_kernel.3x')
-
- -- | Not implemented: getsyx, setsyx
- --
- type Curses_Mode is (Curses, Shell);
-
- -- ANCHOR(`def_prog_mode()',`Save_Curses_Mode')
- procedure Save_Curses_Mode (Mode : in Curses_Mode);
- -- AKA
- -- ALIAS(`def_shell_mode()')
- pragma Inline (Save_Curses_Mode);
-
- -- ANCHOR(`reset_prog_mode()',`Reset_Curses_Mode')
- procedure Reset_Curses_Mode (Mode : in Curses_Mode);
- -- AKA
- -- ALIAS(`reset_shell_mode()')
- pragma Inline (Reset_Curses_Mode);
-
- -- ANCHOR(`savetty()',`Save_Terminal_State')
- procedure Save_Terminal_State;
- -- AKA
- pragma Inline (Save_Terminal_State);
-
- -- ANCHOR(`resetty();',`Reset_Terminal_State')
- procedure Reset_Terminal_State;
- -- AKA
- pragma Inline (Reset_Terminal_State);
-
- type Stdscr_Init_Proc is access
- function (Win : Window;
- Columns : Column_Count) return Integer;
- pragma Convention (C, Stdscr_Init_Proc);
- -- N.B.: the return value is actually ignored, but it seems to be
- -- a good practice to return 0 if you think all went fine
- -- and -1 otherwise.
-
- -- ANCHOR(`ripoffline()',`Rip_Off_Lines')
- procedure Rip_Off_Lines (Lines : in Integer;
- Proc : in Stdscr_Init_Proc);
- -- AKA
- -- N.B.: to be more precise, this uses a ncurses specific enhancement of
- -- ripoffline(), in which the Lines argument absolute value is the
- -- number of lines to be ripped of. The official ripoffline() only
- -- uses the sign of Lines to rip of a single line from bottom or top.
- pragma Inline (Rip_Off_Lines);
-
- type Cursor_Visibility is (Invisible, Normal, Very_Visible);
-
- -- ANCHOR(`curs_set()',`Set_Cursor_Visibility')
- procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility);
- -- AKA
- pragma Inline (Set_Cursor_Visibility);
-
- -- ANCHOR(`napms()',`Nap_Milli_Seconds')
- procedure Nap_Milli_Seconds (Ms : in Natural);
- -- AKA
- pragma Inline (Nap_Milli_Seconds);
-
- -- |=====================================================================
- -- | Some useful helpers.
- -- |=====================================================================
- type Transform_Direction is (From_Screen, To_Screen);
- procedure Transform_Coordinates
- (W : in Window := Standard_Window;
- Line : in out Line_Position;
- Column : in out Column_Position;
- Dir : in Transform_Direction := From_Screen);
- -- This procedure transforms screen coordinates into coordinates relative
- -- to the window and vice versa, depending on the Dir parameter.
- -- Screen coordinates are the position informations on the physical device.
- -- An Curses_Exception will be raised if Line and Column are not in the
- -- Window or if you pass the Null_Window as argument.
- -- We don't inline this procedure
-
-private
- type Window is new System.Storage_Elements.Integer_Address;
- Null_Window : constant Window := 0;
-
- -- The next constants are generated and may be different on your
- -- architecture.
- --
-include(`Window_Offsets')dnl
- Curses_Bool_False : constant Curses_Bool := 0;
-
-end Terminal_Interface.Curses;
diff --git a/ncurses-5.2/Ada95/samples/Makefile.in b/ncurses-5.2/Ada95/samples/Makefile.in
deleted file mode 100644
index 9e9f0c7..0000000
--- a/ncurses-5.2/Ada95/samples/Makefile.in
+++ /dev/null
@@ -1,137 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-#
-# Version Control
-# $Revision$
-#
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-x = @PROG_EXT@
-
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @ACPPFLAGS@ \
- -DHAVE_CONFIG_H -I$(srcdir)
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-RANLIB = @RANLIB@
-################################################################################
-ada_srcdir=../src
-
-LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS)
-
-ADA = @cf_ada_compiler@
-ADAFLAGS = @ADAFLAGS@ -I$(srcdir)
-
-ADAMAKE = @cf_ada_make@
-ADAMAKEFLAGS = -a -A$(srcdir) -A$(ada_srcdir) -A$(srcdir)/$(ada_srcdir)
-
-ALIB = @cf_ada_package@
-ABASE = $(ALIB)-curses
-
-CARGS =-cargs $(ADAFLAGS)
-LARGS =-largs -L../../lib $(LD_FLAGS) -lAdaCurses -lncurses@LIB_SUFFIX@
-
-PROGS = tour rain
-
-TOUR_OBJS = tour.o sample.o sample-curses_demo.o sample-explanation.o \
- sample-form_demo.o sample-function_key_setting.o \
- sample-header_handler.o sample-helpers.o \
- sample-keyboard_handler.o sample-manifest.o sample-menu_demo.o \
- sample-menu_demo-aux.o sample-text_io_demo.o \
- sample-curses_demo-attributes.o sample-curses_demo-mouse.o \
- sample-form_demo-aux.o sample-my_field_type.o
-
-RAIN_OBJS = rain.o status.o
-
-all :: tour$x rain$x
- @
-
-sources :
- @
-
-libs \
-install \
-install.libs ::
- @
-
-uninstall \
-uninstall.libs ::
- @
-
-tour$x : explain.msg
- $(ADAMAKE) $(ADAMAKEFLAGS) tour $(CARGS) $(LARGS)
-
-explain.msg: $(srcdir)/explain.txt
- cp $(srcdir)/explain.txt $@
-
-rain$x :
- $(ADAMAKE) $(ADAMAKEFLAGS) rain $(CARGS) $(LARGS)
-
-mostlyclean:
- @
-
-clean :: mostlyclean
- rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] explain.msg
-
-distclean :: clean
- rm -f Makefile
-
-realclean :: distclean
- @
-
-
diff --git a/ncurses-5.2/Ada95/samples/README b/ncurses-5.2/Ada95/samples/README
deleted file mode 100644
index 6ea8a18..0000000
--- a/ncurses-5.2/Ada95/samples/README
+++ /dev/null
@@ -1,6 +0,0 @@
-The intention of the demo at this point in time is not to demonstrate all
-the features of (n)curses and it's subsystems, but to give some sample
-sources how to use the binding at all.
-
-Ideally in the future we can combine both goals.
-
diff --git a/ncurses-5.2/Ada95/samples/explain.txt b/ncurses-5.2/Ada95/samples/explain.txt
deleted file mode 100644
index 570f617..0000000
--- a/ncurses-5.2/Ada95/samples/explain.txt
+++ /dev/null
@@ -1,186 +0,0 @@
-#VERSION
-This is Version 00.90.00 of the demo package.
-#MENUKEYS
-In a menu you can use the following Keys in the whole application:
-
- - CTRL-X eXit the menu
- - CTRL-N Go to next item
- - CTRL-P Go to previous item
- - CTRL-U Scroll up one line
- - CTRL-D Scroll down one line
- - CTRL-F Scroll down one page
- - PAGE DOWN Scroll down one page
- - PAGE UP Scroll back one page
- - CTRL-B Scroll back one page
- - CTRL-Y Clear pattern
- - CTRL-H Delete last character from pattern
- - Backspace Delete last character from pattern
- - CTRL-A Next pattern match
- - CTRL-E Previous pattern match
- - CTRL-T Toggle item in a multi-selection menu
- - CR or LF Select an item
- - HOME Key Go to the first item
- - F3 Quit the menu
- - Cursor Down Down one item
- - Cursor Up Up one item
- - Cursor Left Left one item
- - Cursor Right Right one item
- - END Key Go to last item
-#FORMKEYS
- - CTRL-X eXit the form
- - CTRL-F Go forward to the next field
- - CTRL-B Go backward to the previous field
- - CTRL-L Go to the field left of the current one
- - CTRL-R Go to the field right of the current one
- - CTRL-U Go to the field above the current one
- - CTRL-D Go to the field below the current one
-
- - CTRL-W Go to the next word in the field
- - CTRL-T Go to the previous word in the field
-
- - CTRL-A Go to the beginning of the field
- - CTRL-E Go to the end of the field
-
- - CTRL-I Insert a blank character at the current position
- - CTRL-O Insert a line
- - CTRL-V Delete a character
- - CTRL-H Delete previous character
- - CTRL-Y Delete a line
- - CTRL-G Delete a word
- - CTRL-K Clear to end of field
-
- - CTRL-N Next choice in a choice field (Enumerations etc.)
- - CTRL-P Previous choice in a choice field.
-#HELP
-#HELPKEYS
-You may scroll with the Cursor Up/Down Keys.
-You may leave the help with the Function Key labelled 'Quit'.
-#INHELP
-You are already in the help system.
-You may leave the help with the Function Key labelled 'Quit'.
-#MAIN
-This is the main menu of the sample program for the ncurses Ada95
-binding. The main intention of the demo is not to demonstate or
-test all the features of ncurses and it's subsystems, but to provide
-to you some sample code how to use the binding with Ada95.
-
-You may select this options:
-
- * Look at some ncurses core functions
- * Look at some features of the menu subsystem
- * Look at some features of the form subsystem
- * Look at the output of the Ada.Text_IO like functions
- for ncurses.
-
-#MAINPAD
-You may press at any place in this demo CTRL-C. This will give you a command
-window. You can just type in the Label-String of a function key, then this
-key will be simulated. This should help you to run the application even if
-you run it on a terminal with no or only a few function keys. With CTRL-N
-and CTRL-P you may browse through the possible values in the command window.
-#MENU00
-Here we give you a selection of various menu demonstrations.
-#MENU-PAD00
-This menu itself is a demo for a single valued, 1-column menu with
-descriptions for the items, a marker and a padding character between
-the item name and the description.
-#MENU01
-This is a demo of the some of the menu layout options. One of them
-is the spacing functionality. Just press the Key labelled "Flip" to
-flip between the non-spaced and a spaced version of the menu. Please
-note that this functionality is unique for ncurses and is not found
-in the SVr4 menu implementation.
-
-This is a menu that sometimes doesn't fit into it's window and
-therefore it becomes a scroll menu.
-
-You can also see here very nicely the pattern matching functionality
-of menus. Type for example a 'J' and you will be positioned to the
-next item after the current starting with a 'J'. Any more characters
-you type in make the pattern more specific. With CTRL-A and CTRL-Z
-(for more details press the Key labelled "Keys") you can browse
-through all the items matching the pattern.
-
-You may change the format of the menu. Just press one of the keys
-labelled "4x1", "4x2" or "4x3" to get a menu with that many rows
-and columns.
-
-With the Keys "O-Row" or "O-Col" (they occupy the same label and
-switch on selection) you can change the major order scheme for
-the menu. If "O-Col" is visible, the menu is currently major
-ordered by rows, you can switch to major column order by pressing
-the key. If "O-Row" is visible, it's just the reverse situation.
-This Key is not visible in "4x1" layout mode, because in this case
-the functionality makes no sense.
-
-With the Keys "Multi" or "Singl" (they occupy the same label and
-switch on selection) you can change whether or not the menu allows
-multiple or only single selection.
-
-With the Keys "+Desc" or "-Desc" (they occupy the same label and
-switch on selection) you can change whether or not the descriptions
-for each item should be displayed. Please not that this key is
-not visible in the "4x3" layout mode, because in this case the
-menu wouldn't fit on a typicall 80x24 screen.
-
-With the Keys "Disab" or "Enab" (they occupy the same label and
-switch on selection) you can dis- or enable the selectability of
-the month with 31 days.
-#MENU-PAD01
-You may press "Flip" to see the effect of ncurses unique menu-spacing.
-The Keys "4x1", "4x2" and "4x3" will change the format of the menu.
-Please note that this is a scrolling menu. You may also play with the
-pattern matching functionality or try to change the format of the menu.
-For more details press the Key labelled "Help".
-#FORM00
-This is a demo of the forms package.
-#FORM-PAD00
-Please note that this demo is far from being complete. It really shows
-only a small part of the functionality of the forms package. Let's hope
-the next version will have a richer demo (You wan't to contribute ?).
-#NOTIMPL
-Sorry this functionality of the demo is not implemented at the moment.
-Remember this is a freeware project, so I can use only my very rare
-free time to continue coding. If you would like to contribute, you
-are very welcome !
-#CURSES00
-This is a menu where you can select some different demos of the ncurses
-functionality.
-#CURSES-PAD00
-Please note that this demo is far from being complete. It really shows
-only a small part of the functionality of the curses package. Let's hope
-the next version will have a richer demo (You wan't to contribute ?).
-#MOUSEKEYS
-In this demo you may use this keys:
-
- - Key labelled "Help" to get a help
- - Key labelled "Keys" is what you are reading now
- - Key labelled "Quit" to leave the demo
-
-You may click the mouse buttons at any location at the screen and look
-at the protocol window !
-#MOUSE00
-A rather simple use of a mouse as demo. It's there just to test the
-code and to provide the sample source.
-
-It might be of interest, that the output into the protocol window is
-done by the (n)curses Text_IO subpackages. Especially the output of
-the button and state names is done by Ads's enumeration IO, which
-allows you to print the names of enumeration literals. That's really
-nice.
-#MOUSE-PAD00
-This is a very simple demo of the mouse features of ncurses. It's there
-just to test whether or not the generated code for the binding really
-works on the different architectures (seems so).
-#ATTRIBDEMO
-Again this is a more than simple demo and just here to give you the
-sourcecode.
-#ATTRIBKEYS
-You may press one of the three well known standard keys of this demo.
-#ATTRIB-PAD00
-Again this is a more than simple demo and just here to give you the
-sourcecode. Feel free to contribute more.
-#TEXTIO
-#TEXTIOKEYS
-#TEXTIO-PAD00
-#END
diff --git a/ncurses-5.2/Ada95/samples/rain.adb b/ncurses-5.2/Ada95/samples/rain.adb
deleted file mode 100644
index 6d5fd63..0000000
--- a/ncurses-5.2/Ada95/samples/rain.adb
+++ /dev/null
@@ -1,161 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Rain --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Laurent Pautet <pautet@gnat.com> 1997 (modified by J.Pfeifer)
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- --
-with Ada.Numerics.Float_Random; use Ada.Numerics.Float_Random;
-with Status; use Status;
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
-procedure Rain is
-
- Visibility : Cursor_Visibility;
-
- subtype X_Position is Line_Position;
- subtype Y_Position is Column_Position;
-
- Xpos : array (1 .. 5) of X_Position;
- Ypos : array (1 .. 5) of Y_Position;
-
- N : Integer;
-
- G : Generator;
-
- Max_X, X : X_Position;
- Max_Y, Y : Y_Position;
-
- procedure Next (J : in out Integer);
- procedure Cursor (X : X_Position; Y : Y_Position);
-
- procedure Next (J : in out Integer) is
- begin
- if J = 5 then
- J := 1;
- else
- J := J + 1;
- end if;
- end Next;
-
- procedure Cursor (X : X_Position; Y : Y_Position) is
- begin
- Move_Cursor (Line => X, Column => Y);
- end Cursor;
- pragma Inline (Cursor);
-
-begin
-
- Init_Screen;
- Set_NL_Mode;
- Set_Echo_Mode (False);
-
- Visibility := Invisible;
- Set_Cursor_Visibility (Visibility);
-
- Max_X := Lines - 5;
- Max_Y := Columns - 5;
-
- for I in Xpos'Range loop
- Xpos (I) := X_Position (Float (Max_X) * Random (G)) + 2;
- Ypos (I) := Y_Position (Float (Max_Y) * Random (G)) + 2;
- end loop;
-
- N := 1;
- while Process.Continue loop
-
- X := X_Position (Float (Max_X) * Random (G)) + 2;
- Y := Y_Position (Float (Max_Y) * Random (G)) + 2;
-
- Cursor (X, Y);
- Add (Ch => '.');
-
- Cursor (Xpos (N), Ypos (N));
- Add (Ch => 'o');
-
- --
- Next (N);
- Cursor (Xpos (N), Ypos (N));
- Add (Ch => 'O');
-
- --
- Next (N);
- Cursor (Xpos (N) - 1, Ypos (N));
- Add (Ch => '-');
- Cursor (Xpos (N), Ypos (N) - 1);
- Add (Str => "|.|");
- Cursor (Xpos (N) + 1, Ypos (N));
- Add (Ch => '-');
-
- --
- Next (N);
- Cursor (Xpos (N) - 2, Ypos (N));
- Add (Ch => '-');
- Cursor (Xpos (N) - 1, Ypos (N) - 1);
- Add (Str => "/\\");
- Cursor (Xpos (N), Ypos (N) - 2);
- Add (Str => "| O |");
- Cursor (Xpos (N) + 1, Ypos (N) - 1);
- Add (Str => "\\/");
- Cursor (Xpos (N) + 2, Ypos (N));
- Add (Ch => '-');
-
- --
- Next (N);
- Cursor (Xpos (N) - 2, Ypos (N));
- Add (Ch => ' ');
- Cursor (Xpos (N) - 1, Ypos (N) - 1);
- Add (Str => " ");
- Cursor (Xpos (N), Ypos (N) - 2);
- Add (Str => " ");
- Cursor (Xpos (N) + 1, Ypos (N) - 1);
- Add (Str => " ");
- Cursor (Xpos (N) + 2, Ypos (N));
- Add (Ch => ' ');
-
- Xpos (N) := X;
- Ypos (N) := Y;
-
- Refresh;
- Nap_Milli_Seconds (50);
- end loop;
-
- Visibility := Normal;
- Set_Cursor_Visibility (Visibility);
- End_Windows;
-
-end Rain;
diff --git a/ncurses-5.2/Ada95/samples/rain.ads b/ncurses-5.2/Ada95/samples/rain.ads
deleted file mode 100644
index 64b42a9..0000000
--- a/ncurses-5.2/Ada95/samples/rain.ads
+++ /dev/null
@@ -1,42 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Rain --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Laurent Pautet <pautet@gnat.com> 1997 (modified by J.Pfeifer)
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- --
-procedure Rain;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb b/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb
deleted file mode 100644
index ac0f54c..0000000
--- a/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb
+++ /dev/null
@@ -1,122 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo.Attributes --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Curses_Demo.Attributes is
-
- procedure Demo
- is
- P : Panel := Create (Standard_Window);
- K : Real_Key_Code;
- begin
- Set_Meta_Mode;
- Set_KeyPad_Mode;
-
- Top (P);
-
- Push_Environment ("ATTRIBDEMO");
- Default_Labels;
- Notepad ("ATTRIB-PAD00");
-
- Set_Character_Attributes (Attr => (others => False));
- Add (Line => 1, Column => Columns / 2 - 10,
- Str => "This is NORMAL");
-
- Set_Character_Attributes (Attr => (Stand_Out => True,
- others => False));
- Add (Line => 2, Column => Columns / 2 - 10,
- Str => "This is Stand_Out");
-
- Set_Character_Attributes (Attr => (Under_Line => True,
- others => False));
- Add (Line => 3, Column => Columns / 2 - 10,
- Str => "This is Under_Line");
-
- Set_Character_Attributes (Attr => (Reverse_Video => True,
- others => False));
- Add (Line => 4, Column => Columns / 2 - 10,
- Str => "This is Reverse_Video");
-
- Set_Character_Attributes (Attr => (Blink => True,
- others => False));
- Add (Line => 5, Column => Columns / 2 - 10,
- Str => "This is Blink");
-
- Set_Character_Attributes (Attr => (Dim_Character => True,
- others => False));
- Add (Line => 6, Column => Columns / 2 - 10,
- Str => "This is Dim_Character");
-
- Set_Character_Attributes (Attr => (Bold_Character => True,
- others => False));
- Add (Line => 7, Column => Columns / 2 - 10,
- Str => "This is Bold_Character");
-
- Refresh_Without_Update;
- Update_Panels; Update_Screen;
-
- loop
- K := Get_Key;
- if K in Special_Key_Code'Range then
- case K is
- when QUIT_CODE => exit;
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("ATTRIBKEYS");
- when others => null;
- end case;
- end if;
- end loop;
-
- Pop_Environment;
- Clear;
- Refresh_Without_Update;
- Delete (P);
- Update_Panels; Update_Screen;
-
- end Demo;
-
-end Sample.Curses_Demo.Attributes;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads b/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads
deleted file mode 100644
index a9a0121..0000000
--- a/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads
+++ /dev/null
@@ -1,45 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo.Attributes --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Curses_Demo.Attributes is
-
- procedure Demo;
-
-end Sample.Curses_Demo.Attributes;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb b/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb
deleted file mode 100644
index 3b20b69..0000000
--- a/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb
+++ /dev/null
@@ -1,220 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo.Mouse --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
-with Terminal_Interface.Curses.Text_IO; use Terminal_Interface.Curses.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Integer_IO;
-with Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Curses_Demo.Mouse is
-
- package Int_IO is new
- Terminal_Interface.Curses.Text_IO.Integer_IO (Integer);
- use Int_IO;
-
- package Button_IO is new
- Terminal_Interface.Curses.Text_IO.Enumeration_IO (Mouse_Button);
- use Button_IO;
-
- package State_IO is new
- Terminal_Interface.Curses.Text_IO.Enumeration_IO (Button_State);
- use State_IO;
-
- procedure Demo is
-
- type Controls is array (1 .. 3) of Panel;
-
- Frame : Window;
- Msg : Window;
- Ctl : Controls;
- Pan : Panel;
- K : Real_Key_Code;
- V : Cursor_Visibility := Invisible;
- W : Window;
- Note : Window;
- Msg_L : constant Line_Count := 8;
- Lins : Line_Position := Lines;
- Cols : Column_Position;
- Mask : Event_Mask;
- procedure Show_Mouse_Event;
-
- procedure Show_Mouse_Event
- is
- Evt : constant Mouse_Event := Get_Mouse;
- Y : Line_Position;
- X : Column_Position;
- Button : Mouse_Button;
- State : Button_State;
- W : Window;
- begin
- Get_Event (Evt, Y, X, Button, State);
- Put (Msg, "Event at");
- Put (Msg, " X="); Put (Msg, Integer (X), 3);
- Put (Msg, ", Y="); Put (Msg, Integer (Y), 3);
- Put (Msg, ", Btn="); Put (Msg, Button, 10);
- Put (Msg, ", Stat="); Put (Msg, State, 15);
- for I in Ctl'Range loop
- W := Get_Window (Ctl (I));
- if Enclosed_In_Window (W, Evt) then
- Transform_Coordinates (W, Y, X, From_Screen);
- Put (Msg, ",Box(");
- Put (Msg, Integer (I), 1); Put (Msg, ",");
- Put (Msg, Integer (Y), 1); Put (Msg, ",");
- Put (Msg, Integer (X), 1); Put (Msg, ")");
- end if;
- end loop;
- New_Line (Msg);
- Flush (Msg);
- Update_Panels; Update_Screen;
- end Show_Mouse_Event;
-
- begin
- Push_Environment ("MOUSE00");
- Notepad ("MOUSE-PAD00");
- Default_Labels;
- Set_Cursor_Visibility (V);
-
- Note := Notepad_Window;
- if Note /= Null_Window then
- Get_Window_Position (Note, Lins, Cols);
- end if;
- Frame := Create (Msg_L, Columns, Lins - Msg_L, 0);
- if Has_Colors then
- Set_Background (Win => Frame,
- Ch => (Color => Default_Colors,
- Attr => Normal_Video,
- Ch => ' '));
- Set_Character_Attributes (Win => Frame,
- Attr => Normal_Video,
- Color => Default_Colors);
- Erase (Frame);
- end if;
- Msg := Derived_Window (Frame, Msg_L - 2, Columns - 2, 1, 1);
- Pan := Create (Frame);
-
- Set_Meta_Mode;
- Set_KeyPad_Mode;
- Mask := Start_Mouse;
-
- Box (Frame);
- Window_Title (Frame, "Mouse Protocol");
- Refresh_Without_Update (Frame);
- Allow_Scrolling (Msg, True);
-
- declare
- Middle_Column : constant Integer := Integer (Columns) / 2;
- Middle_Index : constant Natural := Ctl'First + (Ctl'Length / 2);
- Width : constant Column_Count := 5;
- Height : constant Line_Count := 3;
- Half : constant Column_Count := Width / 2;
- Space : constant Column_Count := 3;
- Position : Integer;
- W : Window;
- begin
- for I in Ctl'Range loop
- Position := (Integer (I) - Integer (Middle_Index)) *
- Integer (Half + Space + Width) + Middle_Column;
- W := Create (Height,
- Width,
- 1,
- Column_Position (Position));
- if Has_Colors then
- Set_Background (Win => W,
- Ch => (Color => Menu_Back_Color,
- Attr => Normal_Video,
- Ch => ' '));
- Set_Character_Attributes (Win => W,
- Attr => Normal_Video,
- Color => Menu_Fore_Color);
- Erase (W);
- end if;
- Ctl (I) := Create (W);
- Box (W);
- Move_Cursor (W, 1, Half);
- Put (W, Integer (I), 1);
- Refresh_Without_Update (W);
- end loop;
- end;
-
- Update_Panels; Update_Screen;
-
- loop
- K := Get_Key;
- if K in Special_Key_Code'Range then
- case K is
- when QUIT_CODE => exit;
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("MOUSEKEYS");
- when Key_Mouse => Show_Mouse_Event;
- when others => null;
- end case;
- end if;
- end loop;
-
- for I in Ctl'Range loop
- W := Get_Window (Ctl (I));
- Clear (W);
- Delete (Ctl (I));
- Delete (W);
- end loop;
-
- Clear (Frame);
- Delete (Pan);
- Delete (Msg);
- Delete (Frame);
-
- Set_Cursor_Visibility (V);
- End_Mouse (Mask);
-
- Pop_Environment;
- Update_Panels; Update_Screen;
-
- end Demo;
-
-end Sample.Curses_Demo.Mouse;
-
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads b/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads
deleted file mode 100644
index 603050a..0000000
--- a/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads
+++ /dev/null
@@ -1,45 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo.Mouse --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Curses_Demo.Mouse is
-
- procedure Demo;
-
-end Sample.Curses_Demo.Mouse;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo.adb b/ncurses-5.2/Ada95/samples/sample-curses_demo.adb
deleted file mode 100644
index 02c751a..0000000
--- a/ncurses-5.2/Ada95/samples/sample-curses_demo.adb
+++ /dev/null
@@ -1,142 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-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;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Panels.User_Data;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-
-with Sample.Explanation; use Sample.Explanation;
-
-with Sample.Menu_Demo.Handler;
-with Sample.Curses_Demo.Mouse;
-with Sample.Curses_Demo.Attributes;
-
-package body Sample.Curses_Demo is
-
- type User_Data is new Integer;
- type User_Data_Access is access all User_Data;
- package PUD is new Panels.User_Data (User_Data, User_Data_Access);
- -- We use above instantiation of the generic User_Data package to
- -- demonstrate and test the use of the user data maechanism.
-
- procedure Demo
- is
- function My_Driver (M : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean;
- package Mh is new Sample.Menu_Demo.Handler (My_Driver);
-
- Itm : Item_Array_Access := new Item_Array'
- (New_Item ("Attributes Demo"),
- New_Item ("Mouse Demo"),
- Null_Item);
- M : Menu := New_Menu (Itm);
- U1 : User_Data_Access := new User_Data'(4711);
- U2 : User_Data_Access;
-
- function My_Driver (M : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean
- is
- Idx : constant Positive := Get_Index (Current (M));
- Result : Boolean := False;
- begin
- PUD.Set_User_Data (Pan, U1); -- set some user data, just for fun
- if K in User_Key_Code'Range then
- if K = QUIT then
- Result := True;
- elsif K = SELECT_ITEM then
- if Idx in Itm'Range then
- Hide (Pan);
- Update_Panels;
- end if;
- case Idx is
- when 1 => Sample.Curses_Demo.Attributes.Demo;
- when 2 => Sample.Curses_Demo.Mouse.Demo;
- when others => Not_Implemented;
- end case;
- if Idx in Itm'Range then
- Top (Pan);
- Show (Pan);
- Update_Panels;
- Update_Screen;
- end if;
- end if;
- end if;
- PUD.Get_User_Data (Pan, U2); -- get the user data
- pragma Assert (U1.all = U2.all and then U1 = U2);
- return Result;
- end My_Driver;
-
- begin
-
- if (1 + Item_Count (M)) /= Itm'Length then
- raise Constraint_Error;
- end if;
-
- if not Has_Mouse then
- declare
- O : Item_Option_Set;
- begin
- Get_Options (Itm (2), O);
- O.Selectable := False;
- Set_Options (Itm (2), O);
- end;
- end if;
-
- Push_Environment ("CURSES00");
- Notepad ("CURSES-PAD00");
- Default_Labels;
- Refresh_Soft_Label_Keys_Without_Update;
-
- Mh.Drive_Me (M, " Demo ");
- Pop_Environment;
-
- Delete (M);
- Free (Itm, True);
- end Demo;
-
-end Sample.Curses_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo.ads b/ncurses-5.2/Ada95/samples/sample-curses_demo.ads
deleted file mode 100644
index 9b791b6..0000000
--- a/ncurses-5.2/Ada95/samples/sample-curses_demo.ads
+++ /dev/null
@@ -1,45 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Curses_Demo is
-
- procedure Demo;
-
-end Sample.Curses_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-explanation.adb b/ncurses-5.2/Ada95/samples/sample-explanation.adb
deleted file mode 100644
index f42652c..0000000
--- a/ncurses-5.2/Ada95/samples/sample-explanation.adb
+++ /dev/null
@@ -1,408 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Explanation --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- Poor mans help system. This scans a sequential file for key lines and
--- then reads the lines up to the next key. Those lines are presented in
--- a window as help or explanation.
---
-with Ada.Text_IO; use Ada.Text_IO;
-with Ada.Unchecked_Deallocation;
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Helpers; use Sample.Helpers;
-
-package body Sample.Explanation is
-
- Help_Keys : constant String := "HELPKEYS";
- In_Help : constant String := "INHELP";
-
- File_Name : String := "explain.msg";
- F : File_Type;
-
- type Help_Line;
- type Help_Line_Access is access Help_Line;
- pragma Controlled (Help_Line_Access);
- type String_Access is access String;
- pragma Controlled (String_Access);
-
- type Help_Line is
- record
- Prev, Next : Help_Line_Access;
- Line : String_Access;
- end record;
-
- procedure Explain (Key : in String;
- Win : in Window);
-
- procedure Release_String is
- new Ada.Unchecked_Deallocation (String,
- String_Access);
- procedure Release_Help_Line is
- new Ada.Unchecked_Deallocation (Help_Line,
- Help_Line_Access);
-
- function Search (Key : String) return Help_Line_Access;
- procedure Release_Help (Root : in out Help_Line_Access);
-
- procedure Explain (Key : in String)
- is
- begin
- Explain (Key, Null_Window);
- end Explain;
-
- procedure Explain (Key : in String;
- Win : in Window)
- is
- -- Retrieve the text associated with this key and display it in this
- -- window. If no window argument is passed, the routine will create
- -- a temporary window and use it.
-
- function Filter_Key return Real_Key_Code;
- procedure Unknown_Key;
- procedure Redo;
- procedure To_Window (C : in out Help_Line_Access;
- More : in out Boolean);
-
- Frame : Window := Null_Window;
-
- W : Window := Win;
- K : Real_Key_Code;
- P : Panel;
-
- Height : Line_Count;
- Width : Column_Count;
- Help : Help_Line_Access := Search (Key);
- Current : Help_Line_Access;
- Top_Line : Help_Line_Access;
-
- Has_More : Boolean;
-
- procedure Unknown_Key
- is
- begin
- Add (W, "Help message with ID ");
- Add (W, Key);
- Add (W, " not found.");
- Add (W, Character'Val (10));
- Add (W, "Press the Function key labelled 'Quit' key to continue.");
- end Unknown_Key;
-
- procedure Redo
- is
- H : Help_Line_Access := Top_Line;
- begin
- if Top_Line /= null then
- for L in 0 .. (Height - 1) loop
- Add (W, L, 0, H.Line.all);
- exit when H.Next = null;
- H := H.Next;
- end loop;
- else
- Unknown_Key;
- end if;
- end Redo;
-
- function Filter_Key return Real_Key_Code
- is
- K : Real_Key_Code;
- begin
- loop
- K := Get_Key (W);
- if K in Special_Key_Code'Range then
- case K is
- when HELP_CODE =>
- if not Find_Context (In_Help) then
- Push_Environment (In_Help, False);
- Explain (In_Help, W);
- Pop_Environment;
- Redo;
- end if;
- when EXPLAIN_CODE =>
- if not Find_Context (Help_Keys) then
- Push_Environment (Help_Keys, False);
- Explain (Help_Keys, W);
- Pop_Environment;
- Redo;
- end if;
- when others => exit;
- end case;
- else
- exit;
- end if;
- end loop;
- return K;
- end Filter_Key;
-
- procedure To_Window (C : in out Help_Line_Access;
- More : in out Boolean)
- is
- L : Line_Position := 0;
- begin
- loop
- Add (W, L, 0, C.Line.all);
- L := L + 1;
- exit when C.Next = null or else L = Height;
- C := C.Next;
- end loop;
- if C.Next /= null then
- pragma Assert (L = Height);
- More := True;
- else
- More := False;
- end if;
- end To_Window;
-
- begin
- if W = Null_Window then
- Push_Environment ("HELP");
- Default_Labels;
- Frame := New_Window (Lines - 2, Columns, 0, 0);
- if Has_Colors then
- Set_Background (Win => Frame,
- Ch => (Ch => ' ',
- Color => Help_Color,
- Attr => Normal_Video));
- Set_Character_Attributes (Win => Frame,
- Attr => Normal_Video,
- Color => Help_Color);
- Erase (Frame);
- end if;
- Box (Frame);
- Set_Character_Attributes (Frame, (Reverse_Video => True,
- others => False));
- Add (Frame, Lines - 3, 2, "Cursor Up/Down scrolls");
- Set_Character_Attributes (Frame); -- Back to default.
- Window_Title (Frame, "Explanation");
- W := Derived_Window (Frame, Lines - 4, Columns - 2, 1, 1);
- Refresh_Without_Update (Frame);
- Get_Size (W, Height, Width);
- Set_Meta_Mode (W);
- Set_KeyPad_Mode (W);
- Allow_Scrolling (W, True);
- Set_Echo_Mode (False);
- P := Create (Frame);
- Top (P);
- Update_Panels;
- else
- Clear (W);
- Refresh_Without_Update (W);
- end if;
-
- Current := Help; Top_Line := Help;
-
- if null = Help then
- Unknown_Key;
- loop
- K := Filter_Key;
- exit when K = QUIT_CODE;
- end loop;
- else
- To_Window (Current, Has_More);
- if Has_More then
- -- This means there are more lines available, so we have to go
- -- into a scroll manager.
- loop
- K := Filter_Key;
- if K in Special_Key_Code'Range then
- case K is
- when Key_Cursor_Down =>
- if Current.Next /= null then
- Move_Cursor (W, Height - 1, 0);
- Scroll (W, 1);
- Current := Current.Next;
- Top_Line := Top_Line.Next;
- Add (W, Current.Line.all);
- end if;
- when Key_Cursor_Up =>
- if Top_Line.Prev /= null then
- Move_Cursor (W, 0, 0);
- Scroll (W, -1);
- Top_Line := Top_Line.Prev;
- Current := Current.Prev;
- Add (W, Top_Line.Line.all);
- end if;
- when QUIT_CODE => exit;
- when others => null;
- end case;
- end if;
- end loop;
- else
- loop
- K := Filter_Key;
- exit when K = QUIT_CODE;
- end loop;
- end if;
- end if;
-
- Clear (W);
-
- if Frame /= Null_Window then
- Clear (Frame);
- Delete (P);
- Delete (W);
- Delete (Frame);
- Pop_Environment;
- end if;
-
- Update_Panels;
- Update_Screen;
-
- Release_Help (Help);
-
- end Explain;
-
- function Search (Key : String) return Help_Line_Access
- is
- Last : Natural;
- Buffer : String (1 .. 256);
- Root : Help_Line_Access := null;
- Current : Help_Line_Access;
- Tail : Help_Line_Access := null;
-
- function Next_Line return Boolean;
-
- function Next_Line return Boolean
- is
- H_End : constant String := "#END";
- begin
- Get_Line (F, Buffer, Last);
- if Last = H_End'Length and then H_End = Buffer (1 .. Last) then
- return False;
- else
- return True;
- end if;
- end Next_Line;
- begin
- Reset (F);
- Outer :
- loop
- exit when not Next_Line;
- if Last = (1 + Key'Length) and then Key = Buffer (2 .. Last)
- and then Buffer (1) = '#' then
- loop
- exit when not Next_Line;
- exit when Buffer (1) = '#';
- Current := new Help_Line'(null, null,
- new String'(Buffer (1 .. Last)));
- if Tail = null then
- Release_Help (Root);
- Root := Current;
- else
- Tail.Next := Current;
- Current.Prev := Tail;
- end if;
- Tail := Current;
- end loop;
- exit Outer;
- end if;
- end loop Outer;
- return Root;
- end Search;
-
- procedure Release_Help (Root : in out Help_Line_Access)
- is
- Next : Help_Line_Access;
- begin
- loop
- exit when Root = null;
- Next := Root.Next;
- Release_String (Root.Line);
- Release_Help_Line (Root);
- Root := Next;
- end loop;
- end Release_Help;
-
- procedure Explain_Context
- is
- begin
- Explain (Context);
- end Explain_Context;
-
- procedure Notepad (Key : in String)
- is
- H : constant Help_Line_Access := Search (Key);
- T : Help_Line_Access := H;
- N : Line_Count := 1;
- L : Line_Position := 0;
- W : Window;
- P : Panel;
- begin
- if H /= null then
- loop
- T := T.Next;
- exit when T = null;
- N := N + 1;
- end loop;
- W := New_Window (N + 2, Columns, Lines - N - 2, 0);
- if Has_Colors then
- Set_Background (Win => W,
- Ch => (Ch => ' ',
- Color => Notepad_Color,
- Attr => Normal_Video));
- Set_Character_Attributes (Win => W,
- Attr => Normal_Video,
- Color => Notepad_Color);
- Erase (W);
- end if;
- Box (W);
- Window_Title (W, "Notepad");
- P := New_Panel (W);
- T := H;
- loop
- Add (W, L + 1, 1, T.Line.all, Integer (Columns - 2));
- L := L + 1;
- T := T.Next;
- exit when T = null;
- end loop;
- T := H;
- Release_Help (T);
- Refresh_Without_Update (W);
- Notepad_To_Context (P);
- end if;
- end Notepad;
-
-begin
- Open (F, In_File, File_Name);
-end Sample.Explanation;
-
diff --git a/ncurses-5.2/Ada95/samples/sample-explanation.ads b/ncurses-5.2/Ada95/samples/sample-explanation.ads
deleted file mode 100644
index 056b5af..0000000
--- a/ncurses-5.2/Ada95/samples/sample-explanation.ads
+++ /dev/null
@@ -1,59 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Explanation --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- Poor mans help system. This scans a sequential file for key lines and
--- then reads the lines up to the next key. Those lines are presented in
--- a window as help or explanation.
---
-package Sample.Explanation is
-
- procedure Explain (Key : in String);
- -- Retrieve the text associated with this key and display it.
-
- procedure Explain_Context;
- -- Explain the current context.
-
- procedure Notepad (Key : in String);
- -- Put a note on the screen and maintain it with the context
-
- Explanation_Not_Found : exception;
- Explanation_Error : exception;
-
-end Sample.Explanation;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb b/ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb
deleted file mode 100644
index 92c8868..0000000
--- a/ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb
+++ /dev/null
@@ -1,259 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo.Aux --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Form_Demo.Aux is
-
- procedure Geometry (F : in Form;
- L : out Line_Count; -- Lines used for menu
- C : out Column_Count; -- Columns used for menu
- Y : out Line_Position; -- Proposed Line for menu
- X : out Column_Position) -- Proposed Column for menu
- is
- begin
- Scale (F, L, C);
-
- L := L + 2; -- count for frame at top and bottom
- C := C + 2; -- "
-
- -- Calculate horizontal coordinate at the screen center
- X := (Columns - C) / 2;
- Y := 1; -- start always in line 1
- end Geometry;
-
- function Create (F : Form;
- Title : String;
- Lin : Line_Position;
- Col : Column_Position) return Panel
- is
- W, S : Window;
- L : Line_Count;
- C : Column_Count;
- Y : Line_Position;
- X : Column_Position;
- Pan : Panel;
- begin
- Geometry (F, L, C, Y, X);
- W := New_Window (L, C, Lin, Col);
- Set_Meta_Mode (W);
- Set_KeyPad_Mode (W);
- if Has_Colors then
- Set_Background (Win => W,
- Ch => (Ch => ' ',
- Color => Default_Colors,
- Attr => Normal_Video));
- Set_Character_Attributes (Win => W,
- Color => Default_Colors,
- Attr => Normal_Video);
- Erase (W);
- end if;
- S := Derived_Window (W, L - 2, C - 2, 1, 1);
- Set_Meta_Mode (S);
- Set_KeyPad_Mode (S);
- Box (W);
- Set_Window (F, W);
- Set_Sub_Window (F, S);
- if Title'Length > 0 then
- Window_Title (W, Title);
- end if;
- Pan := New_Panel (W);
- Post (F);
- return Pan;
- end Create;
-
- procedure Destroy (F : in Form;
- P : in out Panel)
- is
- W, S : Window;
- begin
- W := Get_Window (F);
- S := Get_Sub_Window (F);
- Post (F, False);
- Erase (W);
- Delete (P);
- Set_Window (F, Null_Window);
- Set_Sub_Window (F, Null_Window);
- Delete (S);
- Delete (W);
- Update_Panels;
- end Destroy;
-
- function Get_Request (F : Form;
- P : Panel;
- Handle_CRLF : Boolean := True) return Key_Code
- is
- W : constant Window := Get_Window (F);
- K : Real_Key_Code;
- Ch : Character;
- begin
- Top (P);
- loop
- K := Get_Key (W);
- if K in Special_Key_Code'Range then
- case K is
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("FORMKEYS");
- when Key_Home => return F_First_Field;
- when Key_End => return F_Last_Field;
- when QUIT_CODE => return QUIT;
- when Key_Cursor_Down => return F_Down_Char;
- when Key_Cursor_Up => return F_Up_Char;
- when Key_Cursor_Left => return F_Previous_Char;
- when Key_Cursor_Right => return F_Next_Char;
- when Key_Next_Page => return F_Next_Page;
- when Key_Previous_Page => return F_Previous_Page;
- when Key_Backspace => return F_Delete_Previous;
- when Key_Clear_Screen => return F_Clear_Field;
- when Key_Clear_End_Of_Line => return F_Clear_EOF;
- when others => return K;
- end case;
- elsif K in Normal_Key_Code'Range then
- Ch := Character'Val (K);
- case Ch is
- when CAN => return QUIT; -- CTRL-X
-
- when ACK => return F_Next_Field; -- CTRL-F
- when STX => return F_Previous_Field; -- CTRL-B
- when FF => return F_Left_Field; -- CTRL-L
- when DC2 => return F_Right_Field; -- CTRL-R
- when NAK => return F_Up_Field; -- CTRL-U
- when EOT => return F_Down_Field; -- CTRL-D
-
- when ETB => return F_Next_Word; -- CTRL-W
- when DC4 => return F_Previous_Word; -- CTRL-T
-
- when SOH => return F_Begin_Field; -- CTRL-A
- when ENQ => return F_End_Field; -- CTRL-E
-
- when HT => return F_Insert_Char; -- CTRL-I
- when SI => return F_Insert_Line; -- CTRL-O
- when SYN => return F_Delete_Char; -- CTRL-V
- when BS => return F_Delete_Previous; -- CTRL-H
- when EM => return F_Delete_Line; -- CTRL-Y
- when BEL => return F_Delete_Word; -- CTRL-G
- when VT => return F_Clear_EOF; -- CTRL-K
-
- when SO => return F_Next_Choice; -- CTRL-N
- when DLE => return F_Previous_Choice; -- CTRL-P
-
- when CR | LF =>
- if Handle_CRLF then
- return F_New_Line;
- else
- return K;
- end if;
- when others => return K;
- end case;
- else
- return K;
- end if;
- end loop;
- end Get_Request;
-
- function Make (Top : Line_Position;
- Left : Column_Position;
- Text : String) return Field
- is
- Fld : Field;
- C : Column_Count := Column_Count (Text'Length);
- begin
- Fld := New_Field (1, C, Top, Left);
- Set_Buffer (Fld, 0, Text);
- Switch_Options (Fld, (Active => True, others => False), False);
- if Has_Colors then
- Set_Background (Fld => Fld, Color => Default_Colors);
- end if;
- return Fld;
- end Make;
-
- function Make (Height : Line_Count := 1;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0) return Field
- is
- Fld : Field := New_Field (Height, Width, Top, Left, Off_Screen);
- begin
- if Has_Colors then
- Set_Foreground (Fld => Fld, Color => Form_Fore_Color);
- Set_Background (Fld => Fld, Color => Form_Back_Color);
- else
- Set_Background (Fld, (Reverse_Video => True, others => False));
- end if;
- return Fld;
- end Make;
-
- function Default_Driver (F : Form;
- K : Key_Code;
- P : Panel) return Boolean
- is
- begin
- if K in User_Key_Code'Range and then K = QUIT then
- if Driver (F, F_Validate_Field) = Form_Ok then
- return True;
- end if;
- end if;
- return False;
- end Default_Driver;
-
- function Count_Active (F : Form) return Natural
- is
- N : Natural := 0;
- O : Field_Option_Set;
- H : constant Natural := Field_Count (F);
- begin
- if H > 0 then
- for I in 1 .. H loop
- Get_Options (Fields (F, I), O);
- if O.Active then
- N := N + 1;
- end if;
- end loop;
- end if;
- return N;
- end Count_Active;
-
-end Sample.Form_Demo.Aux;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads b/ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads
deleted file mode 100644
index d3e6d8d..0000000
--- a/ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads
+++ /dev/null
@@ -1,92 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo.Aux --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-
-package Sample.Form_Demo.Aux is
-
- procedure Geometry (F : in Form;
- L : out Line_Count;
- C : out Column_Count;
- Y : out Line_Position;
- X : out Column_Position);
- -- Calculate the geometry for a panel beeing able to be used to display
- -- the menu.
-
- function Create (F : Form;
- Title : String;
- Lin : Line_Position;
- Col : Column_Position) return Panel;
- -- Create a panel decorated with a frame and the title at the specified
- -- position. The dimension of the panel is derived from the menus layout.
-
- procedure Destroy (F : in Form;
- P : in out Panel);
- -- Destroy all the windowing structures associated with this menu and
- -- panel.
-
- function Get_Request (F : Form;
- P : Panel;
- Handle_CRLF : Boolean := True) return Key_Code;
- -- Centralized request driver for all menus in this sample. This
- -- gives us a common key binding for all menus.
-
- function Make (Top : Line_Position;
- Left : Column_Position;
- Text : String) return Field;
- -- create a label
-
- function Make (Height : Line_Count := 1;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0) return Field;
- -- create a editable field
-
- function Default_Driver (F : Form;
- K : Key_Code;
- P : Panel) return Boolean;
-
- function Count_Active (F : Form) return Natural;
- -- Count the number of active fields in the form
-
-end Sample.Form_Demo.Aux;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb b/ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb
deleted file mode 100644
index 6cffc9c..0000000
--- a/ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb
+++ /dev/null
@@ -1,97 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo.Handler --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Sample.Form_Demo.Aux;
-
-package body Sample.Form_Demo.Handler is
-
- package Aux renames Sample.Form_Demo.Aux;
-
- procedure Drive_Me (F : in Form;
- Title : in String := "")
- is
- L : Line_Count;
- C : Column_Count;
- Y : Line_Position;
- X : Column_Position;
- begin
- Aux.Geometry (F, L, C, Y, X);
- Drive_Me (F, Y, X, Title);
- end Drive_Me;
-
- procedure Drive_Me (F : in Form;
- Lin : in Line_Position;
- Col : in Column_Position;
- Title : in String := "")
- is
- Pan : Panel := Aux.Create (F, Title, Lin, Col);
- V : Cursor_Visibility := Normal;
- Handle_CRLF : Boolean := True;
-
- begin
- Set_Cursor_Visibility (V);
- if Aux.Count_Active (F) = 1 then
- Handle_CRLF := False;
- end if;
- loop
- declare
- K : Key_Code := Aux.Get_Request (F, Pan, Handle_CRLF);
- R : Driver_Result;
- begin
- if (K = 13 or else K = 10) and then not Handle_CRLF then
- R := Unknown_Request;
- else
- R := Driver (F, K);
- end if;
- case R is
- when Form_Ok => null;
- when Unknown_Request =>
- if My_Driver (F, K, Pan) then
- exit;
- end if;
- when others => Beep;
- end case;
- end;
- end loop;
- Set_Cursor_Visibility (V);
- Aux.Destroy (F, Pan);
- end Drive_Me;
-
-end Sample.Form_Demo.Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads b/ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads
deleted file mode 100644
index 9f8da7d..0000000
--- a/ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads
+++ /dev/null
@@ -1,64 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo.Handler --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses;
-use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels;
-use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Forms;
-use Terminal_Interface.Curses.Forms;
-
-generic
- with function My_Driver (Frm : Form;
- K : Key_Code;
- Pan : Panel) return Boolean;
-package Sample.Form_Demo.Handler is
-
- procedure Drive_Me (F : in Form;
- Lin : in Line_Position;
- Col : in Column_Position;
- Title : in String := "");
- -- Position the menu at the given point and drive it.
-
- procedure Drive_Me (F : in Form;
- Title : in String := "");
- -- Center menu and drive it.
-
-end Sample.Form_Demo.Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo.adb b/ncurses-5.2/Ada95/samples/sample-form_demo.adb
deleted file mode 100644
index ec4a762..0000000
--- a/ncurses-5.2/Ada95/samples/sample-form_demo.adb
+++ /dev/null
@@ -1,134 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-with Terminal_Interface.Curses.Forms.Field_User_Data;
-with Terminal_Interface.Curses.Forms.Form_User_Data;
-with Sample.My_Field_Type; use Sample.My_Field_Type;
-with Sample.Explanation; use Sample.Explanation;
-with Sample.Form_Demo.Aux; use Sample.Form_Demo.Aux;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Form_Demo.Handler;
-
-with Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
-with Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-use Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-with Terminal_Interface.Curses.Forms.Field_Types.IntField;
-use Terminal_Interface.Curses.Forms.Field_Types.IntField;
-
-package body Sample.Form_Demo is
-
- type User_Data is
- record
- Data : Integer;
- end record;
- type User_Access is access User_Data;
-
- package Fld_U is new
- Terminal_Interface.Curses.Forms.Field_User_Data (User_Data,
- User_Access);
-
- package Frm_U is new
- Terminal_Interface.Curses.Forms.Form_User_Data (User_Data,
- User_Access);
-
- type Weekday is (Sunday, Monday, Tuesday, Wednesday, Thursday,
- Friday, Saturday);
-
- package Weekday_Enum is new
- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada (Weekday);
-
- Enum_Field : constant Enumeration_Field :=
- Weekday_Enum.Create;
-
- procedure Demo
- is
-
- Mft : My_Data := (Ch => 'X');
-
- FA : Field_Array_Access := new Field_Array'
- (Make (0, 14, "Sample Entry Form"),
- Make (2, 0, "WeekdayEnumeration"),
- Make (2, 20, "Numeric 1-10"),
- Make (2, 34, "Only 'X'"),
- Make (5, 0, "Multiple Lines offscreen(Scroll)"),
- Make (Width => 18, Top => 3, Left => 0),
- Make (Width => 12, Top => 3, Left => 20),
- Make (Width => 12, Top => 3, Left => 34),
- Make (Width => 46, Top => 6, Left => 0, Height => 4, Off_Screen => 2),
- Null_Field
- );
-
- Frm : Terminal_Interface.Curses.Forms.Form := Create (FA);
-
- I_F : constant Integer_Field := (Precision => 0,
- Lower_Limit => 1,
- Upper_Limit => 10);
-
- F1, F2 : User_Access;
-
- package Fh is new Sample.Form_Demo.Handler (Default_Driver);
-
- begin
- Push_Environment ("FORM00");
- Notepad ("FORM-PAD00");
- Default_Labels;
-
- Set_Field_Type (FA (6), Enum_Field);
- Set_Field_Type (FA (7), I_F);
- Set_Field_Type (FA (8), Mft);
-
- F1 := new User_Data'(Data => 4711);
- Fld_U.Set_User_Data (FA (1), F1);
-
- Fh.Drive_Me (Frm);
-
- Fld_U.Get_User_Data (FA (1), F2);
- pragma Assert (F1 = F2);
- pragma Assert (F1.Data = F2.Data);
-
- Pop_Environment;
- Delete (Frm);
-
- Free (FA, True);
- end Demo;
-
-end Sample.Form_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo.ads b/ncurses-5.2/Ada95/samples/sample-form_demo.ads
deleted file mode 100644
index 61d9cbf..0000000
--- a/ncurses-5.2/Ada95/samples/sample-form_demo.ads
+++ /dev/null
@@ -1,45 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Form_Demo is
-
- procedure Demo;
-
-end Sample.Form_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-function_key_setting.adb b/ncurses-5.2/Ada95/samples/sample-function_key_setting.adb
deleted file mode 100644
index 3579153..0000000
--- a/ncurses-5.2/Ada95/samples/sample-function_key_setting.adb
+++ /dev/null
@@ -1,213 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Function_Key_Setting --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Deallocation;
-with Sample.Manifest; use Sample.Manifest;
-
--- This package implements a simple stack of function key label environments.
---
-package body Sample.Function_Key_Setting is
-
- Max_Label_Length : constant Positive := 8;
- Number_Of_Keys : Label_Number := Label_Number'Last;
- Justification : Label_Justification := Left;
-
- subtype Label is String (1 .. Max_Label_Length);
- type Label_Array is array (Label_Number range <>) of Label;
-
- type Key_Environment (N : Label_Number := Label_Number'Last);
- type Env_Ptr is access Key_Environment;
- pragma Controlled (Env_Ptr);
-
- type String_Access is access String;
- pragma Controlled (String_Access);
-
- Active_Context : String_Access := new String'("MAIN");
- Active_Notepad : Panel := Null_Panel;
-
- type Key_Environment (N : Label_Number := Label_Number'Last) is
- record
- Prev : Env_Ptr;
- Help : String_Access;
- Notepad : Panel;
- Labels : Label_Array (1 .. N);
- end record;
-
- procedure Release_String is
- new Ada.Unchecked_Deallocation (String,
- String_Access);
-
- procedure Release_Environment is
- new Ada.Unchecked_Deallocation (Key_Environment,
- Env_Ptr);
-
- Top_Of_Stack : Env_Ptr := null;
-
- procedure Push_Environment (Key : in String;
- Reset : in Boolean := True)
- is
- P : constant Env_Ptr := new Key_Environment (Number_Of_Keys);
- begin
- -- Store the current labels in the environment
- for I in 1 .. Number_Of_Keys loop
- Get_Soft_Label_Key (I, P.Labels (I));
- if Reset then
- Set_Soft_Label_Key (I, " ");
- end if;
- end loop;
- P.Prev := Top_Of_Stack;
- -- now store active help context and notepad
- P.Help := Active_Context;
- P.Notepad := Active_Notepad;
- -- The notepad must now vanish and the new notepad is empty.
- if (P.Notepad /= Null_Panel) then
- Hide (P.Notepad);
- Update_Panels;
- end if;
- Active_Notepad := Null_Panel;
- Active_Context := new String'(Key);
-
- Top_Of_Stack := P;
- if Reset then
- Refresh_Soft_Label_Keys_Without_Update;
- end if;
- end Push_Environment;
-
- procedure Pop_Environment
- is
- P : Env_Ptr := Top_Of_Stack;
- begin
- if Top_Of_Stack = null then
- raise Function_Key_Stack_Error;
- else
- for I in 1 .. Number_Of_Keys loop
- Set_Soft_Label_Key (I, P.Labels (I), Justification);
- end loop;
- pragma Assert (Active_Context /= null);
- Release_String (Active_Context);
- Active_Context := P.Help;
- Refresh_Soft_Label_Keys_Without_Update;
- Notepad_To_Context (P.Notepad);
- Top_Of_Stack := P.Prev;
- Release_Environment (P);
- end if;
- end Pop_Environment;
-
- function Context return String
- is
- begin
- if Active_Context /= null then
- return Active_Context.all;
- else
- return "";
- end if;
- end Context;
-
- function Find_Context (Key : String) return Boolean
- is
- P : Env_Ptr := Top_Of_Stack;
- begin
- if Active_Context.all = Key then
- return True;
- else
- loop
- exit when P = null;
- if P.Help.all = Key then
- return True;
- else
- P := P.Prev;
- end if;
- end loop;
- return False;
- end if;
- end Find_Context;
-
- procedure Notepad_To_Context (Pan : in Panel)
- is
- W : Window;
- begin
- if Active_Notepad /= Null_Panel then
- W := Get_Window (Active_Notepad);
- Clear (W);
- Delete (Active_Notepad);
- Delete (W);
- end if;
- Active_Notepad := Pan;
- if Pan /= Null_Panel then
- Top (Pan);
- end if;
- Update_Panels;
- Update_Screen;
- end Notepad_To_Context;
-
- procedure Initialize (Mode : Soft_Label_Key_Format := PC_Style;
- Just : Label_Justification := Left)
- is
- begin
- case Mode is
- when PC_Style .. PC_Style_With_Index
- => Number_Of_Keys := 12;
- when others
- => Number_Of_Keys := 8;
- end case;
- Init_Soft_Label_Keys (Mode);
- Justification := Just;
- end Initialize;
-
- procedure Default_Labels
- is
- begin
- Set_Soft_Label_Key (FKEY_QUIT, "Quit");
- Set_Soft_Label_Key (FKEY_HELP, "Help");
- Set_Soft_Label_Key (FKEY_EXPLAIN, "Keys");
- Refresh_Soft_Label_Keys_Without_Update;
- end Default_Labels;
-
- function Notepad_Window return Window
- is
- begin
- if Active_Notepad /= Null_Panel then
- return Get_Window (Active_Notepad);
- else
- return Null_Window;
- end if;
- end Notepad_Window;
-
-end Sample.Function_Key_Setting;
diff --git a/ncurses-5.2/Ada95/samples/sample-function_key_setting.ads b/ncurses-5.2/Ada95/samples/sample-function_key_setting.ads
deleted file mode 100644
index eb375d3..0000000
--- a/ncurses-5.2/Ada95/samples/sample-function_key_setting.ads
+++ /dev/null
@@ -1,82 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Function_Key_Setting --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-
--- This package implements a simple stack of function key label environments.
---
-package Sample.Function_Key_Setting is
-
- procedure Push_Environment (Key : in String;
- Reset : in Boolean := True);
- -- Push the definition of the current function keys on an internal
- -- stack. If the reset flag is true, all labels are reset while
- -- pushed, so the new environment can assume a tabula rasa.
- -- The Key defines the new Help Context associated with the new
- -- Environment. This saves also the currently active Notepad.
-
- procedure Pop_Environment;
- -- Pop the Definitions from the stack and make them the current ones.
- -- This also restores the Help context and the previous Notepad.
-
- procedure Initialize (Mode : Soft_Label_Key_Format := PC_Style;
- Just : Label_Justification := Left);
- -- Initialize the environment
-
- function Context return String;
- -- Return the current context identitfier
-
- function Find_Context (Key : String) return Boolean;
- -- Look for a context, return true if it is in the stack,
- -- false otherwise.
-
- procedure Notepad_To_Context (Pan : in Panel);
- -- Add a panel representing a notepad to the current context.
-
- Function_Key_Stack_Error : exception;
-
- procedure Default_Labels;
- -- Set the default labels used in all environments
-
- function Notepad_Window return Window;
- -- Return the current notepad window or Null_Window if there is none.
-
-end Sample.Function_Key_Setting;
diff --git a/ncurses-5.2/Ada95/samples/sample-header_handler.adb b/ncurses-5.2/Ada95/samples/sample-header_handler.adb
deleted file mode 100644
index 77cd187..0000000
--- a/ncurses-5.2/Ada95/samples/sample-header_handler.adb
+++ /dev/null
@@ -1,180 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Header_Handler --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Calendar; use Ada.Calendar;
-with Terminal_Interface.Curses.Text_IO.Integer_IO;
-with Sample.Manifest; use Sample.Manifest;
-
--- This package handles the painting of the header line of the screen.
---
-package body Sample.Header_Handler is
-
- package Int_IO is new
- Terminal_Interface.Curses.Text_IO.Integer_IO (Integer);
- use Int_IO;
-
- Header_Window : Window := Null_Window;
-
- Display_Hour : Integer := -1; -- hour last displayed
- Display_Min : Integer := -1; -- minute last displayed
- Display_Day : Integer := -1; -- day last displayed
- Display_Month : Integer := -1; -- month last displayed
-
- -- This is the routine handed over to the curses library to be called
- -- as initialization routine when ripping of the header lines from
- -- the screen. This routine must follow C conventions.
- function Init_Header_Window (Win : Window;
- Columns : Column_Count) return Integer;
- pragma Convention (C, Init_Header_Window);
-
- procedure Internal_Update_Header_Window (Do_Update : in Boolean);
-
-
- -- The initialization must be called before Init_Screen. It steals two
- -- lines from the top of the screen.
- procedure Init_Header_Handler
- is
- begin
- Rip_Off_Lines (2, Init_Header_Window'Access);
- end Init_Header_Handler;
-
- procedure N_Out (N : in Integer);
-
- -- Emit a two digit number and ensure that a leading zero is generated if
- -- necessary.
- procedure N_Out (N : in Integer)
- is
- begin
- if N < 10 then
- Add (Header_Window, '0');
- Put (Header_Window, N, 1);
- else
- Put (Header_Window, N, 2);
- end if;
- end N_Out;
-
- -- Paint the header window. The input parameter is a flag indicating
- -- whether or not the screen should be updated physically after painting.
- procedure Internal_Update_Header_Window (Do_Update : in Boolean)
- is
- type Month_Name_Array is
- array (Month_Number'First .. Month_Number'Last) of String (1 .. 9);
-
- Month_Names : constant Month_Name_Array :=
- ("January ",
- "February ",
- "March ",
- "April ",
- "May ",
- "June ",
- "July ",
- "August ",
- "September",
- "October ",
- "November ",
- "December ");
-
- Now : Time := Clock;
- Sec : Integer := Integer (Seconds (Now));
- Hour : Integer := Sec / 3600;
- Minute : Integer := (Sec - Hour * 3600) / 60;
- Mon : Month_Number := Month (Now);
- D : Day_Number := Day (Now);
- begin
- if Header_Window /= Null_Window then
- if Minute /= Display_Min or else Hour /= Display_Hour
- or else Display_Day /= D or else Display_Month /= Mon then
- Move_Cursor (Header_Window, 0, 0);
- N_Out (D); Add (Header_Window, '.');
- Add (Header_Window, Month_Names (Mon));
- Move_Cursor (Header_Window, 1, 0);
- N_Out (Hour); Add (Header_Window, ':');
- N_Out (Minute);
- Display_Min := Minute;
- Display_Hour := Hour;
- Display_Month := Mon;
- Display_Day := D;
- Refresh_Without_Update (Header_Window);
- if Do_Update then
- Update_Screen;
- end if;
- end if;
- end if;
- end Internal_Update_Header_Window;
-
- -- This routine is called in the keyboard input timeout handler. So it will
- -- periodically update the header line of the screen.
- procedure Update_Header_Window
- is
- begin
- Internal_Update_Header_Window (True);
- end Update_Header_Window;
-
- function Init_Header_Window (Win : Window;
- Columns : Column_Count) return Integer
- is
- Title : constant String := "Ada 95 ncurses Binding Sample";
- Pos : Column_Position;
- begin
- Header_Window := Win;
- if Win /= Null_Window then
- if Has_Colors then
- Set_Background (Win => Win,
- Ch => (Ch => ' ',
- Color => Header_Color,
- Attr => Normal_Video));
- Set_Character_Attributes (Win => Win,
- Attr => Normal_Video,
- Color => Header_Color);
- Erase (Win);
- end if;
- Leave_Cursor_After_Update (Win, True);
- Pos := Columns - Column_Position (Title'Length);
- Add (Win, 0, Pos / 2, Title);
- -- In this phase we must not allow a physical update, because
- -- ncurses isn´t properly initialized at this point.
- Internal_Update_Header_Window (False);
- return 0;
- else
- return -1;
- end if;
- end Init_Header_Window;
-
-end Sample.Header_Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-header_handler.ads b/ncurses-5.2/Ada95/samples/sample-header_handler.ads
deleted file mode 100644
index 35973b3..0000000
--- a/ncurses-5.2/Ada95/samples/sample-header_handler.ads
+++ /dev/null
@@ -1,53 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Header_Handler --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
--- This package handles the painting of the header line of the screen.
---
-package Sample.Header_Handler is
-
- procedure Init_Header_Handler;
- -- Initialize the handler for the headerlines.
-
- procedure Update_Header_Window;
- -- Update the information in the header window
-
-end Sample.Header_Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-helpers.adb b/ncurses-5.2/Ada95/samples/sample-helpers.adb
deleted file mode 100644
index 7b15895..0000000
--- a/ncurses-5.2/Ada95/samples/sample-helpers.adb
+++ /dev/null
@@ -1,69 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Helpers --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
-with Sample.Explanation; use Sample.Explanation;
-
--- This package contains some conveniant helper routines used throughout
--- this example.
---
-package body Sample.Helpers is
-
- procedure Window_Title (Win : in Window;
- Title : in String)
- is
- Height : Line_Count;
- Width : Column_Count;
- Pos : Column_Position := 0;
- begin
- Get_Size (Win, Height, Width);
- if Title'Length < Width then
- Pos := (Width - Title'Length) / 2;
- end if;
- Add (Win, 0, Pos, Title);
- end Window_Title;
-
- procedure Not_Implemented is
- begin
- Explain ("NOTIMPL");
- end Not_Implemented;
-
-end Sample.Helpers;
diff --git a/ncurses-5.2/Ada95/samples/sample-helpers.ads b/ncurses-5.2/Ada95/samples/sample-helpers.ads
deleted file mode 100644
index f8dc0d9..0000000
--- a/ncurses-5.2/Ada95/samples/sample-helpers.ads
+++ /dev/null
@@ -1,54 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Helpers --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
--- This package contains some conveniant helper routines used throughout
--- this example.
---
-package Sample.Helpers is
-
- procedure Window_Title (Win : in Window;
- Title : in String);
- -- Put a title string into the first line of the window
-
- procedure Not_Implemented;
-
-end Sample.Helpers;
diff --git a/ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb b/ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb
deleted file mode 100644
index 8dfda23..0000000
--- a/ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb
+++ /dev/null
@@ -1,191 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Keyboard_Handler --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Strings; use Ada.Strings;
-with Ada.Strings.Fixed; use Ada.Strings.Fixed;
-with Ada.Strings.Maps.Constants; use Ada.Strings.Maps.Constants;
-with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
-with Ada.Characters.Handling; use Ada.Characters.Handling;
-
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-with Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-use Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-
-with Sample.Header_Handler; use Sample.Header_Handler;
-with Sample.Form_Demo.Aux; use Sample.Form_Demo.Aux;
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Form_Demo.Handler;
-
--- This package contains a centralized keyboard handler used throughout
--- this example. The handler establishes a timeout mechanism that provides
--- periodical updates of the common header lines used in this example.
---
-
-package body Sample.Keyboard_Handler is
-
- In_Command : Boolean := False;
-
- function Get_Key (Win : Window := Standard_Window) return Real_Key_Code
- is
- K : Real_Key_Code;
-
- function Command return Real_Key_Code;
-
-
- function Command return Real_Key_Code
- is
- function My_Driver (F : Form;
- C : Key_Code;
- P : Panel) return Boolean;
- package Fh is new Sample.Form_Demo.Handler (My_Driver);
-
- type Label_Array is array (Label_Number) of String (1 .. 8);
-
- Labels : Label_Array;
-
- FA : Field_Array_Access := new Field_Array'
- (Make (0, 0, "Command:"),
- Make (Top => 0, Left => 9, Width => Columns - 11),
- Null_Field);
-
- K : Real_Key_Code := Key_None;
- N : Natural := 0;
-
- function My_Driver (F : Form;
- C : Key_Code;
- P : Panel) return Boolean
- is
- Ch : Character;
- begin
- if C in User_Key_Code'Range and then C = QUIT then
- if Driver (F, F_Validate_Field) = Form_Ok then
- K := Key_None;
- return True;
- end if;
- elsif C in Normal_Key_Code'Range then
- Ch := Character'Val (C);
- if (Ch = LF or else Ch = CR) then
- if Driver (F, F_Validate_Field) = Form_Ok then
- declare
- Buffer : String (1 .. Positive (Columns - 11));
- Cmdc : String (1 .. 8);
- begin
- Get_Buffer (Fld => FA (2), Str => Buffer);
- Trim (Buffer, Left);
- if Buffer (1) /= ' ' then
- Cmdc := To_Upper (Buffer (Cmdc'Range));
- for I in Labels'Range loop
- if Cmdc = Labels (I) then
- K := Function_Key_Code
- (Function_Key_Number (I));
- exit;
- end if;
- end loop;
- end if;
- return True;
- end;
- end if;
- end if;
- end if;
- return False;
- end My_Driver;
-
- begin
- In_Command := True;
- for I in Label_Number'Range loop
- Get_Soft_Label_Key (I, Labels (I));
- Trim (Labels (I), Left);
- Translate (Labels (I), Upper_Case_Map);
- if Labels (I) (1) /= ' ' then
- N := N + 1;
- end if;
- end loop;
- if N > 0 then -- some labels were really set
- declare
- Enum_Info : Enumeration_Info (N);
- Enum_Field : Enumeration_Field;
- J : Positive := Enum_Info.Names'First;
-
- Frm : Form := Create (FA);
-
- begin
- for I in Label_Number'Range loop
- if Labels (I) (1) /= ' ' then
- Enum_Info.Names (J) := new String'(Labels (I));
- J := J + 1;
- end if;
- end loop;
- Enum_Field := Create (Enum_Info, True);
- Set_Field_Type (FA (2), Enum_Field);
- Set_Background (FA (2), Normal_Video);
-
- Fh.Drive_Me (Frm, Lines - 3, 0);
- Delete (Frm);
- Update_Panels; Update_Screen;
- end;
- end if;
- Free (FA, True);
- In_Command := False;
- return K;
- end Command;
-
- begin
- Set_Timeout_Mode (Win, Delayed, 30000);
- loop
- K := Get_Keystroke (Win);
- if K = Key_None then -- a timeout occured
- Update_Header_Window;
- elsif K = 3 and then not In_Command then -- CTRL-C
- K := Command;
- exit when K /= Key_None;
- else
- exit;
- end if;
- end loop;
- return K;
- end Get_Key;
-
- procedure Init_Keyboard_Handler is
- begin
- null;
- end Init_Keyboard_Handler;
-
-end Sample.Keyboard_Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads b/ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads
deleted file mode 100644
index 5601aa4..0000000
--- a/ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads
+++ /dev/null
@@ -1,55 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Keyboard_Handler --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
--- This package contains a centralized keyboard handler used throughout
--- this example. The handler establishes a timeout mechanism that provides
--- periodical updates of the common header lines used in this example.
---
-package Sample.Keyboard_Handler is
-
- function Get_Key (Win : Window := Standard_Window) return Real_Key_Code;
- -- The central routine for handling keystrokes.
-
- procedure Init_Keyboard_Handler;
- -- Initialize the keyboard
-
-end Sample.Keyboard_Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-manifest.ads b/ncurses-5.2/Ada95/samples/sample-manifest.ads
deleted file mode 100644
index 7ed79e1..0000000
--- a/ncurses-5.2/Ada95/samples/sample-manifest.ads
+++ /dev/null
@@ -1,67 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Manifest --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
-package Sample.Manifest is
-
- QUIT : constant User_Key_Code := User_Key_Code'First;
- SELECT_ITEM : constant User_Key_Code := QUIT + 1;
-
- FKEY_HELP : constant Label_Number := 1;
- HELP_CODE : constant Special_Key_Code := Key_F1;
- FKEY_EXPLAIN : constant Label_Number := 2;
- EXPLAIN_CODE : constant Special_Key_Code := Key_F2;
- FKEY_QUIT : constant Label_Number := 3;
- QUIT_CODE : constant Special_Key_Code := Key_F3;
-
- Menu_Marker : constant String := "=> ";
-
- Default_Colors : constant Redefinable_Color_Pair := 1;
- Menu_Fore_Color : constant Redefinable_Color_Pair := 2;
- Menu_Back_Color : constant Redefinable_Color_Pair := 3;
- Menu_Grey_Color : constant Redefinable_Color_Pair := 4;
- Form_Fore_Color : constant Redefinable_Color_Pair := 5;
- Form_Back_Color : constant Redefinable_Color_Pair := 6;
- Notepad_Color : constant Redefinable_Color_Pair := 7;
- Help_Color : constant Redefinable_Color_Pair := 8;
- Header_Color : constant Redefinable_Color_Pair := 9;
-
-end Sample.Manifest;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb b/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb
deleted file mode 100644
index 2c1931c..0000000
--- a/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb
+++ /dev/null
@@ -1,204 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo.Aux --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Menu_Demo.Aux is
-
- procedure Geometry (M : in Menu;
- L : out Line_Count;
- C : out Column_Count;
- Y : out Line_Position;
- X : out Column_Position;
- Fy : out Line_Position;
- Fx : out Column_Position);
-
- procedure Geometry (M : in Menu;
- L : out Line_Count; -- Lines used for menu
- C : out Column_Count; -- Columns used for menu
- Y : out Line_Position; -- Proposed Line for menu
- X : out Column_Position; -- Proposed Column for menu
- Fy : out Line_Position; -- Vertical inner frame
- Fx : out Column_Position) -- Horiz. inner frame
- is
- Spc_Desc : Column_Position; -- spaces between description and item
- begin
- Set_Mark (M, Menu_Marker);
-
- Spacing (M, Spc_Desc, Fy, Fx);
- Scale (M, L, C);
-
- Fx := Fx + Column_Position (Fy - 1); -- looks a bit nicer
-
- L := L + 2 * Fy; -- count for frame at top and bottom
- C := C + 2 * Fx; -- "
-
- -- Calculate horizontal coordinate at the screen center
- X := (Columns - C) / 2;
- Y := 1; -- always startin line 1
-
- end Geometry;
-
- procedure Geometry (M : in Menu;
- L : out Line_Count; -- Lines used for menu
- C : out Column_Count; -- Columns used for menu
- Y : out Line_Position; -- Proposed Line for menu
- X : out Column_Position) -- Proposed Column for menu
- is
- Fy : Line_Position;
- Fx : Column_Position;
- begin
- Geometry (M, L, C, Y, X, Fy, Fx);
- end Geometry;
-
- function Create (M : Menu;
- Title : String;
- Lin : Line_Position;
- Col : Column_Position) return Panel
- is
- W, S : Window;
- L : Line_Count;
- C : Column_Count;
- Y, Fy : Line_Position;
- X, Fx : Column_Position;
- Pan : Panel;
- begin
- Geometry (M, L, C, Y, X, Fy, Fx);
- W := New_Window (L, C, Lin, Col);
- Set_Meta_Mode (W);
- Set_KeyPad_Mode (W);
- if Has_Colors then
- Set_Background (Win => W,
- Ch => (Ch => ' ',
- Color => Menu_Back_Color,
- Attr => Normal_Video));
- Set_Foreground (Men => M, Color => Menu_Fore_Color);
- Set_Background (Men => M, Color => Menu_Back_Color);
- Set_Grey (Men => M, Color => Menu_Grey_Color);
- Erase (W);
- end if;
- S := Derived_Window (W, L - Fy, C - Fx, Fy, Fx);
- Set_Meta_Mode (S);
- Set_KeyPad_Mode (S);
- Box (W);
- Set_Window (M, W);
- Set_Sub_Window (M, S);
- if Title'Length > 0 then
- Window_Title (W, Title);
- end if;
- Pan := New_Panel (W);
- Post (M);
- return Pan;
- end Create;
-
- procedure Destroy (M : in Menu;
- P : in out Panel)
- is
- W, S : Window;
- begin
- W := Get_Window (M);
- S := Get_Sub_Window (M);
- Post (M, False);
- Erase (W);
- Delete (P);
- Set_Window (M, Null_Window);
- Set_Sub_Window (M, Null_Window);
- Delete (S);
- Delete (W);
- Update_Panels;
- end Destroy;
-
- function Get_Request (M : Menu; P : Panel) return Key_Code
- is
- W : constant Window := Get_Window (M);
- K : Real_Key_Code;
- Ch : Character;
- begin
- Top (P);
- loop
- K := Get_Key (W);
- if K in Special_Key_Code'Range then
- case K is
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("MENUKEYS");
- when Key_Home => return REQ_FIRST_ITEM;
- when QUIT_CODE => return QUIT;
- when Key_Cursor_Down => return REQ_DOWN_ITEM;
- when Key_Cursor_Up => return REQ_UP_ITEM;
- when Key_Cursor_Left => return REQ_LEFT_ITEM;
- when Key_Cursor_Right => return REQ_RIGHT_ITEM;
- when Key_End => return REQ_LAST_ITEM;
- when Key_Backspace => return REQ_BACK_PATTERN;
- when Key_Next_Page => return REQ_SCR_DPAGE;
- when Key_Previous_Page => return REQ_SCR_UPAGE;
- when others => return K;
- end case;
- elsif K in Normal_Key_Code'Range then
- Ch := Character'Val (K);
- case Ch is
- when CAN => return QUIT; -- CTRL-X
- when SO => return REQ_NEXT_ITEM; -- CTRL-N
- when DLE => return REQ_PREV_ITEM; -- CTRL-P
- when NAK => return REQ_SCR_ULINE; -- CTRL-U
- when EOT => return REQ_SCR_DLINE; -- CTRL-D
- when ACK => return REQ_SCR_DPAGE; -- CTRL-F
- when STX => return REQ_SCR_UPAGE; -- CTRL-B
- when EM => return REQ_CLEAR_PATTERN; -- CTRL-Y
- when BS => return REQ_BACK_PATTERN; -- CTRL-H
- when SOH => return REQ_NEXT_MATCH; -- CTRL-A
- when ENQ => return REQ_PREV_MATCH; -- CTRL-E
- when DC4 => return REQ_TOGGLE_ITEM; -- CTRL-T
-
- when CR | LF => return SELECT_ITEM;
- when others => return K;
- end case;
- else
- return K;
- end if;
- end loop;
- end Get_Request;
-
-end Sample.Menu_Demo.Aux;
-
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads b/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads
deleted file mode 100644
index 88de9bd..0000000
--- a/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads
+++ /dev/null
@@ -1,71 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo.Aux --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
-
-package Sample.Menu_Demo.Aux is
-
- procedure Geometry (M : in Menu;
- L : out Line_Count;
- C : out Column_Count;
- Y : out Line_Position;
- X : out Column_Position);
- -- Calculate the geometry for a panel beeing able to be used to display
- -- the menu.
-
- function Create (M : Menu;
- Title : String;
- Lin : Line_Position;
- Col : Column_Position) return Panel;
- -- Create a panel decorated with a frame and the title at the specified
- -- position. The dimension of the panel is derived from the menus layout.
-
- procedure Destroy (M : in Menu;
- P : in out Panel);
- -- Destroy all the windowing structures associated with this menu and
- -- panel.
-
- function Get_Request (M : Menu; P : Panel) return Key_Code;
- -- Centralized request driver for all menus in this sample. This
- -- gives us a common key binding for all menus.
-
-end Sample.Menu_Demo.Aux;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb b/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb
deleted file mode 100644
index 90f4e39..0000000
--- a/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb
+++ /dev/null
@@ -1,107 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo.Handler --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Sample.Menu_Demo.Aux;
-with Sample.Manifest; use Sample.Manifest;
-with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
-
-package body Sample.Menu_Demo.Handler is
-
- package Aux renames Sample.Menu_Demo.Aux;
-
- procedure Drive_Me (M : in Menu;
- Title : in String := "")
- is
- L : Line_Count;
- C : Column_Count;
- Y : Line_Position;
- X : Column_Position;
- begin
- Aux.Geometry (M, L, C, Y, X);
- Drive_Me (M, Y, X, Title);
- end Drive_Me;
-
- procedure Drive_Me (M : in Menu;
- Lin : in Line_Position;
- Col : in Column_Position;
- Title : in String := "")
- is
- Mask : Event_Mask := No_Events;
- Old : Event_Mask;
- Pan : Panel := Aux.Create (M, Title, Lin, Col);
- V : Cursor_Visibility := Invisible;
- begin
- -- We are only interested in Clicks with the left button
- Register_Reportable_Events (Left, All_Clicks, Mask);
- Old := Start_Mouse (Mask);
- Set_Cursor_Visibility (V);
- loop
- declare
- K : Key_Code := Aux.Get_Request (M, Pan);
- R : Driver_Result := Driver (M, K);
- begin
- case R is
- when Menu_Ok => null;
- when Unknown_Request =>
- declare
- I : constant Item := Current (M);
- O : Item_Option_Set;
- begin
- if K = Key_Mouse then
- K := SELECT_ITEM;
- end if;
- Get_Options (I, O);
- if K = SELECT_ITEM and then not O.Selectable then
- Beep;
- else
- if My_Driver (M, K, Pan) then
- exit;
- end if;
- end if;
- end;
- when others => Beep;
- end case;
- end;
- end loop;
- End_Mouse (Old);
- Aux.Destroy (M, Pan);
- end Drive_Me;
-
-end Sample.Menu_Demo.Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads b/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads
deleted file mode 100644
index 7e58ace..0000000
--- a/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads
+++ /dev/null
@@ -1,64 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo.Handler --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses;
-use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels;
-use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Menus;
-use Terminal_Interface.Curses.Menus;
-
-generic
- with function My_Driver (Men : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean;
-package Sample.Menu_Demo.Handler is
-
- procedure Drive_Me (M : in Menu;
- Lin : in Line_Position;
- Col : in Column_Position;
- Title : in String := "");
- -- Position the menu at the given point and drive it.
-
- procedure Drive_Me (M : in Menu;
- Title : in String := "");
- -- Center menu and drive it.
-
-end Sample.Menu_Demo.Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo.adb b/ncurses-5.2/Ada95/samples/sample-menu_demo.adb
deleted file mode 100644
index 3a2c21e..0000000
--- a/ncurses-5.2/Ada95/samples/sample-menu_demo.adb
+++ /dev/null
@@ -1,390 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
-with Terminal_Interface.Curses.Menus.Menu_User_Data;
-with Terminal_Interface.Curses.Menus.Item_User_Data;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Menu_Demo.Handler;
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Menu_Demo is
-
- package Spacing_Demo is
- procedure Spacing_Test;
- end Spacing_Demo;
-
- package body Spacing_Demo is
-
- procedure Spacing_Test
- is
- function My_Driver (M : Menu;
- K : Key_Code;
- P : Panel) return Boolean;
-
- procedure Set_Option_Key;
- procedure Set_Select_Key;
- procedure Set_Description_Key;
- procedure Set_Hide_Key;
-
- package Mh is new Sample.Menu_Demo.Handler (My_Driver);
-
- I : Item_Array_Access := new Item_Array'
- (New_Item ("January", "31 Days"),
- New_Item ("February", "28/29 Days"),
- New_Item ("March", "31 Days"),
- New_Item ("April", "30 Days"),
- New_Item ("May", "31 Days"),
- New_Item ("June", "30 Days"),
- New_Item ("July", "31 Days"),
- New_Item ("August", "31 Days"),
- New_Item ("September", "30 Days"),
- New_Item ("October", "31 Days"),
- New_Item ("November", "30 Days"),
- New_Item ("December", "31 Days"),
- Null_Item);
-
- M : Menu := New_Menu (I);
- Flip_State : Boolean := True;
- Hide_Long : Boolean := False;
-
- type Format_Code is (Four_By_1, Four_By_2, Four_By_3);
- type Operations is (Flip, Reorder, Reformat, Reselect, Describe);
-
- type Change is array (Operations) of Boolean;
- pragma Pack (Change);
- No_Change : constant Change := Change'(others => False);
-
- Current_Format : Format_Code := Four_By_1;
- To_Change : Change := No_Change;
-
- function My_Driver (M : Menu;
- K : Key_Code;
- P : Panel) return Boolean
- is
- begin
- To_Change := No_Change;
- if K in User_Key_Code'Range then
- if K = QUIT then
- return True;
- end if;
- end if;
- if K in Special_Key_Code'Range then
- case K is
- when Key_F4 =>
- To_Change (Flip) := True;
- return True;
- when Key_F5 =>
- To_Change (Reformat) := True;
- Current_Format := Four_By_1;
- return True;
- when Key_F6 =>
- To_Change (Reformat) := True;
- Current_Format := Four_By_2;
- return True;
- when Key_F7 =>
- To_Change (Reformat) := True;
- Current_Format := Four_By_3;
- return True;
- when Key_F8 =>
- To_Change (Reorder) := True;
- return True;
- when Key_F9 =>
- To_Change (Reselect) := True;
- return True;
- when Key_F10 =>
- if Current_Format /= Four_By_3 then
- To_Change (Describe) := True;
- return True;
- else
- return False;
- end if;
- when Key_F11 =>
- Hide_Long := not Hide_Long;
- declare
- O : Item_Option_Set;
- begin
- for J in I'Range loop
- Get_Options (I (J), O);
- O.Selectable := True;
- if Hide_Long then
- case J is
- when 1 | 3 | 5 | 7 | 8 | 10 | 12 =>
- O.Selectable := False;
- when others => null;
- end case;
- end if;
- Set_Options (I (J), O);
- end loop;
- end;
- return False;
- when others => null;
- end case;
- end if;
- return False;
- end My_Driver;
-
- procedure Set_Option_Key
- is
- O : Menu_Option_Set;
- begin
- if Current_Format = Four_By_1 then
- Set_Soft_Label_Key (8, "");
- else
- Get_Options (M, O);
- if O.Row_Major_Order then
- Set_Soft_Label_Key (8, "O-Col");
- else
- Set_Soft_Label_Key (8, "O-Row");
- end if;
- end if;
- Refresh_Soft_Label_Keys_Without_Update;
- end Set_Option_Key;
-
- procedure Set_Select_Key
- is
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- if O.One_Valued then
- Set_Soft_Label_Key (9, "Multi");
- else
- Set_Soft_Label_Key (9, "Singl");
- end if;
- Refresh_Soft_Label_Keys_Without_Update;
- end Set_Select_Key;
-
- procedure Set_Description_Key
- is
- O : Menu_Option_Set;
- begin
- if Current_Format = Four_By_3 then
- Set_Soft_Label_Key (10, "");
- else
- Get_Options (M, O);
- if O.Show_Descriptions then
- Set_Soft_Label_Key (10, "-Desc");
- else
- Set_Soft_Label_Key (10, "+Desc");
- end if;
- end if;
- Refresh_Soft_Label_Keys_Without_Update;
- end Set_Description_Key;
-
- procedure Set_Hide_Key
- is
- begin
- if Hide_Long then
- Set_Soft_Label_Key (11, "Enab");
- else
- Set_Soft_Label_Key (11, "Disab");
- end if;
- Refresh_Soft_Label_Keys_Without_Update;
- end Set_Hide_Key;
-
- begin
- Push_Environment ("MENU01");
- Notepad ("MENU-PAD01");
- Default_Labels;
- Set_Soft_Label_Key (4, "Flip");
- Set_Soft_Label_Key (5, "4x1");
- Set_Soft_Label_Key (6, "4x2");
- Set_Soft_Label_Key (7, "4x3");
- Set_Option_Key;
- Set_Select_Key;
- Set_Description_Key;
- Set_Hide_Key;
-
- Set_Format (M, 4, 1);
- loop
- Mh.Drive_Me (M);
- exit when To_Change = No_Change;
- if To_Change (Flip) then
- if Flip_State then
- Flip_State := False;
- Set_Spacing (M, 3, 2, 0);
- else
- Flip_State := True;
- Set_Spacing (M);
- end if;
- elsif To_Change (Reformat) then
- case Current_Format is
- when Four_By_1 => Set_Format (M, 4, 1);
- when Four_By_2 => Set_Format (M, 4, 2);
- when Four_By_3 =>
- declare
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- O.Show_Descriptions := False;
- Set_Options (M, O);
- Set_Format (M, 4, 3);
- end;
- end case;
- Set_Option_Key;
- Set_Description_Key;
- elsif To_Change (Reorder) then
- declare
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- O.Row_Major_Order := not O.Row_Major_Order;
- Set_Options (M, O);
- Set_Option_Key;
- end;
- elsif To_Change (Reselect) then
- declare
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- O.One_Valued := not O.One_Valued;
- Set_Options (M, O);
- Set_Select_Key;
- end;
- elsif To_Change (Describe) then
- declare
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- O.Show_Descriptions := not O.Show_Descriptions;
- Set_Options (M, O);
- Set_Description_Key;
- end;
- else
- null;
- end if;
- end loop;
- Set_Spacing (M);
- Flip_State := True;
-
- Pop_Environment;
- pragma Assert (Get_Index (Items (M, 1)) = Get_Index (I (1)));
- Delete (M);
- Free (I, True);
- end Spacing_Test;
- end Spacing_Demo;
-
- procedure Demo
- is
- -- We use this datatype only to test the instantiation of
- -- the Menu_User_Data generic package. No functionality
- -- behind it.
- type User_Data is new Integer;
- type User_Data_Access is access User_Data;
-
- -- Those packages are only instantiated to test the usability.
- -- No real functionality is shown in the demo.
- package MUD is new Menu_User_Data (User_Data, User_Data_Access);
- package IUD is new Item_User_Data (User_Data, User_Data_Access);
-
- function My_Driver (M : Menu;
- K : Key_Code;
- P : Panel) return Boolean;
-
- package Mh is new Sample.Menu_Demo.Handler (My_Driver);
-
- Itm : Item_Array_Access := new Item_Array'
- (New_Item ("Menu Layout Options"),
- New_Item ("Demo of Hook functions"),
- Null_Item);
- M : Menu := New_Menu (Itm);
-
- U1 : User_Data_Access := new User_Data'(4711);
- U2 : User_Data_Access;
- U3 : User_Data_Access := new User_Data'(4712);
- U4 : User_Data_Access;
-
- function My_Driver (M : Menu;
- K : Key_Code;
- P : Panel) return Boolean
- is
- Idx : constant Positive := Get_Index (Current (M));
- begin
- if K in User_Key_Code'Range then
- if K = QUIT then
- return True;
- elsif K = SELECT_ITEM then
- if Idx in Itm'Range then
- Hide (P);
- Update_Panels;
- end if;
- case Idx is
- when 1 => Spacing_Demo.Spacing_Test;
- when others => Not_Implemented;
- end case;
- if Idx in Itm'Range then
- Top (P);
- Show (P);
- Update_Panels;
- Update_Screen;
- end if;
- end if;
- end if;
- return False;
- end My_Driver;
- begin
- Push_Environment ("MENU00");
- Notepad ("MENU-PAD00");
- Default_Labels;
- Refresh_Soft_Label_Keys_Without_Update;
- Set_Pad_Character (M, '|');
-
- MUD.Set_User_Data (M, U1);
- IUD.Set_User_Data (Itm (1), U3);
-
- Mh.Drive_Me (M);
-
- MUD.Get_User_Data (M, U2);
- pragma Assert (U1 = U2 and U1.all = 4711);
-
- IUD.Get_User_Data (Itm (1), U4);
- pragma Assert (U3 = U4 and U3.all = 4712);
-
- Pop_Environment;
- Delete (M);
- Free (Itm, True);
- end Demo;
-
-end Sample.Menu_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo.ads b/ncurses-5.2/Ada95/samples/sample-menu_demo.ads
deleted file mode 100644
index d147789..0000000
--- a/ncurses-5.2/Ada95/samples/sample-menu_demo.ads
+++ /dev/null
@@ -1,45 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Menu_Demo is
-
- procedure Demo;
-
-end Sample.Menu_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-my_field_type.adb b/ncurses-5.2/Ada95/samples/sample-my_field_type.adb
deleted file mode 100644
index 42937a3..0000000
--- a/ncurses-5.2/Ada95/samples/sample-my_field_type.adb
+++ /dev/null
@@ -1,65 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.My_Field_Type --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-
--- This is a very simple user defined field type. It accepts only a
--- defined character as input into the field.
---
-package body Sample.My_Field_Type is
-
- -- That's simple. There are no field validity checks.
- function Field_Check (Fld : Field;
- Typ : My_Data) return Boolean
- is
- begin
- return True;
- end Field_Check;
-
- -- Check exactly against the specified character.
- function Character_Check (Ch : Character;
- Typ : My_Data) return Boolean
- is
- C : constant Character := Typ.Ch;
- begin
- return Ch = C;
- end Character_Check;
-
-end Sample.My_Field_Type;
diff --git a/ncurses-5.2/Ada95/samples/sample-my_field_type.ads b/ncurses-5.2/Ada95/samples/sample-my_field_type.ads
deleted file mode 100644
index d35e475..0000000
--- a/ncurses-5.2/Ada95/samples/sample-my_field_type.ads
+++ /dev/null
@@ -1,62 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.My_Field_Type --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-with Terminal_Interface.Curses.Forms.Field_Types.User;
-use Terminal_Interface.Curses.Forms.Field_Types.User;
-
--- This is a very simple user defined field type. It accepts only a
--- defined character as input into the field.
---
-package Sample.My_Field_Type is
-
- type My_Data is new User_Defined_Field_Type with
- record
- Ch : Character;
- end record;
-
- function Field_Check (Fld : Field;
- Typ : My_Data) return Boolean;
-
- function Character_Check (Ch : Character;
- Typ : My_Data) return Boolean;
-
-end Sample.My_Field_Type;
-
diff --git a/ncurses-5.2/Ada95/samples/sample-text_io_demo.adb b/ncurses-5.2/Ada95/samples/sample-text_io_demo.adb
deleted file mode 100644
index 743c161..0000000
--- a/ncurses-5.2/Ada95/samples/sample-text_io_demo.adb
+++ /dev/null
@@ -1,180 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Text_IO_Demo --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Numerics.Generic_Elementary_Functions;
-with Ada.Numerics.Complex_Types;
-use Ada.Numerics.Complex_Types;
-
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Text_IO;
-use Terminal_Interface.Curses.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Integer_IO;
-with Terminal_Interface.Curses.Text_IO.Float_IO;
-with Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-with Terminal_Interface.Curses.Text_IO.Complex_IO;
-with Terminal_Interface.Curses.Text_IO.Fixed_IO;
-with Terminal_Interface.Curses.Text_IO.Decimal_IO;
-with Terminal_Interface.Curses.Text_IO.Modular_IO;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Text_IO_Demo is
-
- type Weekday is (Sunday,
- Monday,
- Tuesday,
- Wednesday,
- Thursday,
- Friday,
- Saturday);
-
- type Fix is delta 0.1 range 0.0 .. 4.0;
- type Dec is delta 0.01 digits 5 range 0.0 .. 4.0;
- type Md is mod 5;
-
- package Math is new
- Ada.Numerics.Generic_Elementary_Functions (Float);
-
- package Int_IO is new
- Terminal_Interface.Curses.Text_IO.Integer_IO (Integer);
- use Int_IO;
-
- package Real_IO is new
- Terminal_Interface.Curses.Text_IO.Float_IO (Float);
- use Real_IO;
-
- package Enum_IO is new
- Terminal_Interface.Curses.Text_IO.Enumeration_IO (Weekday);
- use Enum_IO;
-
- package C_IO is new
- Terminal_Interface.Curses.Text_IO.Complex_IO (Ada.Numerics.Complex_Types);
- use C_IO;
-
- package F_IO is new
- Terminal_Interface.Curses.Text_IO.Fixed_IO (Fix);
- use F_IO;
-
- package D_IO is new
- Terminal_Interface.Curses.Text_IO.Decimal_IO (Dec);
- use D_IO;
-
- package M_IO is new
- Terminal_Interface.Curses.Text_IO.Modular_IO (Md);
- use M_IO;
-
- procedure Demo
- is
- W : Window;
- P : Panel := Create (Standard_Window);
- K : Real_Key_Code;
- Im : Complex := (0.0, 1.0);
- Fx : Fix := 3.14;
- Dc : Dec := 2.72;
- L : Md;
-
- begin
- Push_Environment ("TEXTIO");
- Default_Labels;
- Notepad ("TEXTIO-PAD00");
-
- Set_Echo_Mode (False);
- Set_Meta_Mode;
- Set_KeyPad_Mode;
- W := Sub_Window (Standard_Window, Lines - 2, Columns - 2, 1, 1);
- Box;
- Refresh_Without_Update;
- Set_Meta_Mode (W);
- Set_KeyPad_Mode (W);
- Immediate_Update_Mode (W, True);
-
- Set_Window (W);
-
- for I in 1 .. 10 loop
- Put ("Square root of ");
- Put (Item => I, Width => 5);
- Put (" is ");
- Put (Item => Math.Sqrt (Float (I)), Exp => 0, Aft => 7);
- New_Line;
- end loop;
-
- for W in Weekday loop
- Put (Item => W); Put (' ');
- end loop;
- New_Line;
-
- L := Md'First;
- for I in 1 .. 2 loop
- for J in Md'Range loop
- Put (L); Put (' ');
- L := L + 1;
- end loop;
- end loop;
- New_Line;
-
- Put (Im); New_Line;
- Put (Fx); New_Line;
- Put (Dc); New_Line;
-
- loop
- K := Get_Key;
- if K in Special_Key_Code'Range then
- case K is
- when QUIT_CODE => exit;
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("TEXTIOKEYS");
- when others => null;
- end case;
- end if;
- end loop;
-
- Set_Window (Null_Window);
- Erase; Refresh_Without_Update;
- Delete (P);
- Delete (W);
-
- Pop_Environment;
- end Demo;
-
-end Sample.Text_IO_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-text_io_demo.ads b/ncurses-5.2/Ada95/samples/sample-text_io_demo.ads
deleted file mode 100644
index 171bc58..0000000
--- a/ncurses-5.2/Ada95/samples/sample-text_io_demo.ads
+++ /dev/null
@@ -1,45 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Text_IO_Demo --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Text_IO_Demo is
-
- procedure Demo;
-
-end Sample.Text_IO_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample.adb b/ncurses-5.2/Ada95/samples/sample.adb
deleted file mode 100644
index 4dd064d..0000000
--- a/ncurses-5.2/Ada95/samples/sample.adb
+++ /dev/null
@@ -1,218 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Text_IO;
-
-with Ada.Exceptions; use Ada.Exceptions;
-
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
-with Terminal_Interface.Curses.Menus.Menu_User_Data;
-with Terminal_Interface.Curses.Menus.Item_User_Data;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Header_Handler; use Sample.Header_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-with Sample.Menu_Demo.Handler;
-with Sample.Curses_Demo;
-with Sample.Form_Demo;
-with Sample.Menu_Demo;
-with Sample.Text_IO_Demo;
-
-with GNAT.OS_Lib;
-
-package body Sample is
-
- type User_Data is
- record
- Data : Integer;
- end record;
- type User_Access is access User_Data;
-
- package Ud is new
- Terminal_Interface.Curses.Menus.Menu_User_Data
- (User_Data, User_Access);
-
- package Id is new
- Terminal_Interface.Curses.Menus.Item_User_Data
- (User_Data, User_Access);
-
- procedure Whow is
- procedure Main_Menu;
- procedure Main_Menu
- is
- function My_Driver (M : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean;
-
- package Mh is new Sample.Menu_Demo.Handler (My_Driver);
-
- I : Item_Array_Access := new Item_Array'
- (New_Item ("Curses Core Demo"),
- New_Item ("Menu Demo"),
- New_Item ("Form Demo"),
- New_Item ("Text IO Demo"),
- Null_Item);
-
- M : Menu := New_Menu (I);
-
- D1, D2 : User_Access;
- I1, I2 : User_Access;
-
- function My_Driver (M : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean
- is
- Idx : constant Positive := Get_Index (Current (M));
- begin
- if K in User_Key_Code'Range then
- if K = QUIT then
- return True;
- elsif K = SELECT_ITEM then
- if Idx in 1 .. 4 then
- Hide (Pan);
- Update_Panels;
- end if;
- case Idx is
- when 1 => Sample.Curses_Demo.Demo;
- when 2 => Sample.Menu_Demo.Demo;
- when 3 => Sample.Form_Demo.Demo;
- when 4 => Sample.Text_IO_Demo.Demo;
- when others => null;
- end case;
- if Idx in 1 .. 4 then
- Top (Pan);
- Show (Pan);
- Update_Panels;
- Update_Screen;
- end if;
- end if;
- end if;
- return False;
- end My_Driver;
-
- begin
-
- if (1 + Item_Count (M)) /= I'Length then
- raise Constraint_Error;
- end if;
-
- D1 := new User_Data'(Data => 4711);
- Ud.Set_User_Data (M, D1);
-
- I1 := new User_Data'(Data => 1174);
- Id.Set_User_Data (I (1), I1);
-
- Set_Spacing (Men => M, Row => 2);
-
- Default_Labels;
- Notepad ("MAINPAD");
-
- Mh.Drive_Me (M, " Demo ");
-
- Ud.Get_User_Data (M, D2);
- pragma Assert (D1 = D2);
- pragma Assert (D1.Data = D2.Data);
-
- Id.Get_User_Data (I (1), I2);
- pragma Assert (I1 = I2);
- pragma Assert (I1.Data = I2.Data);
-
- Delete (M);
- Free (I, True);
- end Main_Menu;
-
- begin
- Initialize (PC_Style_With_Index);
- Init_Header_Handler;
- Init_Screen;
-
- if Has_Colors then
- Start_Color;
-
- Init_Pair (Pair => Default_Colors, Fore => Black, Back => White);
- Init_Pair (Pair => Menu_Back_Color, Fore => Black, Back => Cyan);
- Init_Pair (Pair => Menu_Fore_Color, Fore => Red, Back => Cyan);
- Init_Pair (Pair => Menu_Grey_Color, Fore => White, Back => Cyan);
- Init_Pair (Pair => Notepad_Color, Fore => Black, Back => Yellow);
- Init_Pair (Pair => Help_Color, Fore => Blue, Back => Cyan);
- Init_Pair (Pair => Form_Back_Color, Fore => Black, Back => Cyan);
- Init_Pair (Pair => Form_Fore_Color, Fore => Red, Back => Cyan);
- Init_Pair (Pair => Header_Color, Fore => Black, Back => Green);
-
- Set_Background (Ch => (Color => Default_Colors,
- Attr => Normal_Video,
- Ch => ' '));
- Set_Character_Attributes (Attr => Normal_Video,
- Color => Default_Colors);
- Erase;
-
- Set_Soft_Label_Key_Attributes (Color => Header_Color);
- -- This propagates the attributes to the label window
- Clear_Soft_Label_Keys; Restore_Soft_Label_Keys;
- end if;
-
- Init_Keyboard_Handler;
-
- Set_Echo_Mode (False);
- Set_Raw_Mode;
- Set_Meta_Mode;
- Set_KeyPad_Mode;
-
- -- Initialize the Function Key Environment
- -- We have some fixed key throughout this sample
- Main_Menu;
- End_Windows;
-
- exception
- when Event : others =>
- Terminal_Interface.Curses.End_Windows;
- Text_IO.Put ("Exception: ");
- Text_IO.Put (Exception_Name (Event));
- Text_IO.New_Line;
- GNAT.OS_Lib.OS_Exit (1);
-
- end Whow;
-
-end Sample;
diff --git a/ncurses-5.2/Ada95/samples/sample.ads b/ncurses-5.2/Ada95/samples/sample.ads
deleted file mode 100644
index 7558876..0000000
--- a/ncurses-5.2/Ada95/samples/sample.ads
+++ /dev/null
@@ -1,43 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample is
- procedure Whow;
-end Sample;
diff --git a/ncurses-5.2/Ada95/samples/status.adb b/ncurses-5.2/Ada95/samples/status.adb
deleted file mode 100644
index 0bdbad2..0000000
--- a/ncurses-5.2/Ada95/samples/status.adb
+++ /dev/null
@@ -1,56 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Status --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- This package has been contributed by Laurent Pautet <pautet@gnat.com> --
--- --
-package body Status is
-
- protected body Process is
- procedure Stop is
- begin
- Done := True;
- end Stop;
- function Continue return Boolean is
- begin
- return not Done;
- end Continue;
- end Process;
-
-end Status;
diff --git a/ncurses-5.2/Ada95/samples/status.ads b/ncurses-5.2/Ada95/samples/status.ads
deleted file mode 100644
index 90e1a1b..0000000
--- a/ncurses-5.2/Ada95/samples/status.ads
+++ /dev/null
@@ -1,59 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Status --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- This package has been contributed by Laurent Pautet <pautet@gnat.com> --
--- --
-with Ada.Interrupts.Names;
-
-package Status is
-
- pragma Warnings (Off); -- the next pragma exists since 3.11p
- pragma Unreserve_All_Interrupts;
- pragma Warnings (On);
-
- protected Process is
- procedure Stop;
- function Continue return Boolean;
- pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
- private
- Done : Boolean := False;
- end Process;
-
-end Status;
diff --git a/ncurses-5.2/Ada95/samples/tour.adb b/ncurses-5.2/Ada95/samples/tour.adb
deleted file mode 100644
index 2398b6e..0000000
--- a/ncurses-5.2/Ada95/samples/tour.adb
+++ /dev/null
@@ -1,46 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- tour --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Sample; use Sample;
-
-procedure Tour is
-begin
- Whow;
-end Tour;
diff --git a/ncurses-5.2/Ada95/samples/tour.ads b/ncurses-5.2/Ada95/samples/tour.ads
deleted file mode 100644
index 4eea20b..0000000
--- a/ncurses-5.2/Ada95/samples/tour.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Tour --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure Tour;
diff --git a/ncurses-5.2/Ada95/src/Makefile.in b/ncurses-5.2/Ada95/src/Makefile.in
deleted file mode 100644
index cd8e546..0000000
--- a/ncurses-5.2/Ada95/src/Makefile.in
+++ /dev/null
@@ -1,352 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-#
-# Version Control
-# $Revision$
-#
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = ../../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-ADA_INCLUDE = @ADA_INCLUDE@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @ACPPFLAGS@ \
- -DHAVE_CONFIG_H -I$(srcdir)
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-RANLIB = @RANLIB@
-################################################################################
-ADA = @cf_ada_compiler@
-ADAFLAGS = @ADAFLAGS@ -I. -I$(srcdir)
-
-ADAMAKE = @cf_ada_make@
-ADAMAKEFLAGS =
-
-CARGS = -cargs $(ADAFLAGS)
-LARGS =
-
-ALIB = @cf_ada_package@
-ABASE = $(ALIB)-curses
-
-LIBALIS=$(ALIB).ali \
- $(ABASE)-aux.ali \
- $(ABASE).ali \
- $(ABASE)-mouse.ali \
- $(ABASE)-panels.ali \
- $(ABASE)-menus.ali \
- $(ABASE)-forms.ali \
- $(ABASE)-forms-field_types.ali \
- $(ABASE)-forms-field_types-alpha.ali \
- $(ABASE)-forms-field_types-alphanumeric.ali \
- $(ABASE)-forms-field_types-intfield.ali \
- $(ABASE)-forms-field_types-numeric.ali \
- $(ABASE)-forms-field_types-regexp.ali \
- $(ABASE)-forms-field_types-enumeration.ali \
- $(ABASE)-forms-field_types-ipv4_address.ali \
- $(ABASE)-forms-field_types-user.ali \
- $(ABASE)-forms-field_types-user-choice.ali \
- $(ABASE)-text_io.ali \
- $(ABASE)-text_io-aux.ali
-
-# Ada Library files for generic packages. Since gnat 3.10 they are
-# also compiled
-GENALIS=$(ABASE)-menus-menu_user_data.ali \
- $(ABASE)-menus-item_user_data.ali \
- $(ABASE)-forms-form_user_data.ali \
- $(ABASE)-forms-field_user_data.ali \
- $(ABASE)-forms-field_types-enumeration-ada.ali \
- $(ABASE)-panels-user_data.ali \
- $(ABASE)-text_io-integer_io.ali \
- $(ABASE)-text_io-float_io.ali \
- $(ABASE)-text_io-fixed_io.ali \
- $(ABASE)-text_io-decimal_io.ali \
- $(ABASE)-text_io-enumeration_io.ali \
- $(ABASE)-text_io-modular_io.ali \
- $(ABASE)-text_io-complex_io.ali
-
-LIBOBJS=$(ALIB).o \
- $(ABASE)-aux.o \
- $(ABASE).o \
- $(ABASE)-mouse.o \
- $(ABASE)-panels.o \
- $(ABASE)-menus.o \
- $(ABASE)-forms.o \
- $(ABASE)-forms-field_types.o \
- $(ABASE)-forms-field_types-alpha.o \
- $(ABASE)-forms-field_types-alphanumeric.o \
- $(ABASE)-forms-field_types-intfield.o \
- $(ABASE)-forms-field_types-numeric.o \
- $(ABASE)-forms-field_types-regexp.o \
- $(ABASE)-forms-field_types-enumeration.o \
- $(ABASE)-forms-field_types-ipv4_address.o \
- $(ABASE)-forms-field_types-user.o \
- $(ABASE)-forms-field_types-user-choice.o \
- $(ABASE)-text_io.o \
- $(ABASE)-text_io-aux.o
-
-# Ada object files for generic packages. Since gnat 3.10 they are
-# also compiled
-GENOBJS=$(ABASE)-menus-menu_user_data.o \
- $(ABASE)-menus-item_user_data.o \
- $(ABASE)-forms-form_user_data.o \
- $(ABASE)-forms-field_user_data.o \
- $(ABASE)-forms-field_types-enumeration-ada.o \
- $(ABASE)-panels-user_data.o \
- $(ABASE)-text_io-integer_io.o \
- $(ABASE)-text_io-float_io.o \
- $(ABASE)-text_io-fixed_io.o \
- $(ABASE)-text_io-decimal_io.o \
- $(ABASE)-text_io-enumeration_io.o \
- $(ABASE)-text_io-modular_io.o \
- $(ABASE)-text_io-complex_io.o
-
-
-all :: libAdaCurses.a
- @echo done
-
-libAdaCurses.a :: dotouch $(LIBOBJS) @cf_generic_objects@
- $(AR) $(AR_OPTS) $@ $(LIBOBJS) @cf_generic_objects@
-
-dotouch :
- @sh -c 'for f in $(LIBALIS) $(GENALIS); do test -f $$f || touch $$f; done'
-
-sources :
- @
-
-libs \
-install \
-install.libs \
-uninstall \
-uninstall.libs ::
- @
-
-generics: $(GENALIS)
- @
-
-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)
-
-distclean :: clean
- rm -f Makefile
-
-realclean :: distclean
-
-BASEDEPS=$(ABASE).ads $(ABASE)-aux.ads $(srcdir)/$(ABASE).adb
-
-$(ALIB).o: $(srcdir)/$(ALIB).ads
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ALIB).ads
-
-
-$(ABASE)-aux.o: $(srcdir)/$(ABASE)-aux.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-aux.adb
-
-
-$(ABASE).o: $(srcdir)/$(ABASE).adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE).adb
-
-
-$(ABASE)-mouse.o: \
- $(ABASE)-mouse.ads \
- $(srcdir)/$(ABASE)-mouse.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-mouse.adb
-
-
-$(ABASE)-panels.o: \
- $(ABASE)-panels.ads \
- $(srcdir)/$(ABASE)-panels.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-panels.adb
-
-
-$(ABASE)-menus.o: \
- $(ABASE)-menus.ads \
- $(srcdir)/$(ABASE)-menus.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus.adb
-
-
-$(ABASE)-forms.o: \
- $(ABASE)-forms.ads \
- $(srcdir)/$(ABASE)-forms.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms.adb
-
-$(ABASE)-forms-field_types.o: \
- $(ABASE)-forms-field_types.ads \
- $(srcdir)/$(ABASE)-forms-field_types.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types.adb
-
-$(ABASE)-forms-field_types-alpha.o: \
- $(srcdir)/$(ABASE)-forms-field_types-alpha.ads \
- $(srcdir)/$(ABASE)-forms-field_types-alpha.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-alpha.adb
-
-$(ABASE)-forms-field_types-alphanumeric.o: \
- $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.ads \
- $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.adb
-
-$(ABASE)-forms-field_types-intfield.o: \
- $(srcdir)/$(ABASE)-forms-field_types-intfield.ads \
- $(srcdir)/$(ABASE)-forms-field_types-intfield.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-intfield.adb
-
-$(ABASE)-forms-field_types-numeric.o: \
- $(srcdir)/$(ABASE)-forms-field_types-numeric.ads \
- $(srcdir)/$(ABASE)-forms-field_types-numeric.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-numeric.adb
-
-$(ABASE)-forms-field_types-regexp.o: \
- $(srcdir)/$(ABASE)-forms-field_types-regexp.ads \
- $(srcdir)/$(ABASE)-forms-field_types-regexp.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-regexp.adb
-
-$(ABASE)-forms-field_types-enumeration.o: \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration.ads \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-enumeration.adb
-
-$(ABASE)-forms-field_types-ipv4_address.o: \
- $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.ads \
- $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.adb
-
-$(ABASE)-forms-field_types-user.o: \
- $(srcdir)/$(ABASE)-forms-field_types-user.ads \
- $(srcdir)/$(ABASE)-forms-field_types-user.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-user.adb
-
-$(ABASE)-forms-field_types-user-choice.o: \
- $(srcdir)/$(ABASE)-forms-field_types-user-choice.ads \
- $(srcdir)/$(ABASE)-forms-field_types-user-choice.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-user-choice.adb
-
-$(ABASE)-text_io.o: \
- $(srcdir)/$(ABASE)-text_io.ads \
- $(srcdir)/$(ABASE)-text_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io.adb
-
-$(ABASE)-text_io-aux.o: \
- $(srcdir)/$(ABASE)-text_io-aux.ads \
- $(srcdir)/$(ABASE)-text_io-aux.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-aux.adb
-
-$(ABASE)-menus-menu_user_data.o: \
- $(ABASE)-menus-menu_user_data.ads \
- $(srcdir)/$(ABASE)-menus-menu_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus-menu_user_data.adb
-
-$(ABASE)-menus-item_user_data.o: \
- $(ABASE)-menus-item_user_data.ads \
- $(srcdir)/$(ABASE)-menus-item_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus-item_user_data.adb
-
-$(ABASE)-forms-form_user_data.o: \
- $(ABASE)-forms-form_user_data.ads \
- $(srcdir)/$(ABASE)-forms-form_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-form_user_data.adb
-
-$(ABASE)-forms-field_user_data.o: \
- $(ABASE)-forms-field_user_data.ads \
- $(srcdir)/$(ABASE)-forms-field_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_user_data.adb
-
-$(ABASE)-forms-field_types-enumeration-ada.o: \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.ads \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.adb
-
-$(ABASE)-panels-user_data.o: \
- $(ABASE)-panels-user_data.ads \
- $(srcdir)/$(ABASE)-panels-user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-panels-user_data.adb
-
-$(ABASE)-text_io-integer_io.o: \
- $(srcdir)/$(ABASE)-text_io-integer_io.ads \
- $(srcdir)/$(ABASE)-text_io-integer_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-integer_io.adb
-
-$(ABASE)-text_io-float_io.o: \
- $(srcdir)/$(ABASE)-text_io-float_io.ads \
- $(srcdir)/$(ABASE)-text_io-float_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-float_io.adb
-
-$(ABASE)-text_io-fixed_io.o: \
- $(srcdir)/$(ABASE)-text_io-fixed_io.ads \
- $(srcdir)/$(ABASE)-text_io-fixed_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-fixed_io.adb
-
-$(ABASE)-text_io-decimal_io.o: \
- $(srcdir)/$(ABASE)-text_io-decimal_io.ads \
- $(srcdir)/$(ABASE)-text_io-decimal_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-decimal_io.adb
-
-$(ABASE)-text_io-enumeration_io.o: \
- $(srcdir)/$(ABASE)-text_io-enumeration_io.ads \
- $(srcdir)/$(ABASE)-text_io-enumeration_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-enumeration_io.adb
-
-$(ABASE)-text_io-modular_io.o: \
- $(srcdir)/$(ABASE)-text_io-modular_io.ads \
- $(srcdir)/$(ABASE)-text_io-modular_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-modular_io.adb
-
-$(ABASE)-text_io-complex_io.o: \
- $(srcdir)/$(ABASE)-text_io-complex_io.ads \
- $(srcdir)/$(ABASE)-text_io-complex_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-complex_io.adb
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb
deleted file mode 100644
index aa8cc76..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb
+++ /dev/null
@@ -1,116 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Aux --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Aux is
- --
- -- Some helpers
- procedure Fill_String (Cp : in chars_ptr;
- Str : out 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 Str'Length < Len then
- raise Constraint_Error;
- end if;
- declare
- S : String (1 .. Len);
- begin
- S := Value (Cp);
- Str (Str'First .. (Str'First + Len - 1)) := S (S'Range);
- end;
- else
- Len := 0;
- end if;
-
- if Len < Str'Length then
- Str ((Str'First + Len) .. Str'Last) := (others => ' ');
- end if;
-
- end Fill_String;
-
- function Fill_String (Cp : chars_ptr) return String
- is
- Len : Natural;
- begin
- if Cp /= Null_Ptr then
- Len := Natural (Strlen (Cp));
- if Len = 0 then
- return "";
- else
- declare
- S : String (1 .. Len);
- begin
- Fill_String (Cp, S);
- return S;
- end;
- end if;
- else
- return "";
- end if;
- end Fill_String;
-
- procedure Eti_Exception (Code : Eti_Error)
- is
- begin
- case Code is
- when E_Ok => null;
- when E_System_Error => raise Eti_System_Error;
- when E_Bad_Argument => raise Eti_Bad_Argument;
- when E_Posted => raise Eti_Posted;
- when E_Connected => raise Eti_Connected;
- when E_Bad_State => raise Eti_Bad_State;
- when E_No_Room => raise Eti_No_Room;
- when E_Not_Posted => raise Eti_Not_Posted;
- when E_Unknown_Command => raise Eti_Unknown_Command;
- when E_No_Match => raise Eti_No_Match;
- when E_Not_Selectable => raise Eti_Not_Selectable;
- when E_Not_Connected => raise Eti_Not_Connected;
- when E_Request_Denied => raise Eti_Request_Denied;
- when E_Invalid_Field => raise Eti_Invalid_Field;
- when E_Current => raise Eti_Current;
- end case;
- end Eti_Exception;
-
-end Terminal_Interface.Curses.Aux;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
deleted file mode 100644
index c7a64f7..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
+++ /dev/null
@@ -1,68 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Alpha --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.Alpha is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Alpha_Field)
- is
- C_Alpha_Field_Type : C_Field_Type;
- pragma Import (C, C_Alpha_Field_Type, "TYPE_ALPHA");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Alpha_Field_Type;
- Arg1 : C_Int) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Alpha;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads
deleted file mode 100644
index f869c0b..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads
+++ /dev/null
@@ -1,53 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Alpha --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.Alpha is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Alpha);
-
- type Alpha_Field is new Field_Type
- with record
- Minimum_Field_Width : Natural := 0;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Alpha_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.Alpha;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
deleted file mode 100644
index 3684b8a..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
+++ /dev/null
@@ -1,68 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in AlphaNumeric_Field)
- is
- C_AlphaNumeric_Field_Type : C_Field_Type;
- pragma Import (C, C_AlphaNumeric_Field_Type, "TYPE_ALNUM");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_AlphaNumeric_Field_Type;
- Arg1 : C_Int) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads
deleted file mode 100644
index 2e174d6..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads
+++ /dev/null
@@ -1,54 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric);
-
- type AlphaNumeric_Field is new Field_Type
- with record
- Minimum_Field_Width : Natural := 0;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in AlphaNumeric_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
deleted file mode 100644
index c8ffe58..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
+++ /dev/null
@@ -1,80 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Characters.Handling; use Ada.Characters.Handling;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
-
- function Create (Set : Type_Set := Mixed_Case;
- Case_Sensitive : Boolean := False;
- Must_Be_Unique : Boolean := False)
- return Enumeration_Field
- is
- I : Enumeration_Info (T'Pos (T'Last) - T'Pos (T'First) + 1);
- J : Positive := 1;
- begin
- I.Case_Sensitive := Case_Sensitive;
- I.Match_Must_Be_Unique := Must_Be_Unique;
-
- for E in T'Range loop
- I.Names (J) := new String'(T'Image (T (E)));
- -- The Image attribute defaults to upper case, so we have to handle
- -- only the other ones...
- if Set /= Upper_Case then
- I.Names (J).all := To_Lower (I.Names (J).all);
- if Set = Mixed_Case then
- I.Names (J)(I.Names (J).all'First) :=
- To_Upper (I.Names (J)(I.Names (J).all'First));
- end if;
- end if;
- J := J + 1;
- end loop;
-
- return Create (I, True);
- end Create;
-
- function Value (Fld : Field;
- Buf : Buffer_Number := Buffer_Number'First) return T
- is
- begin
- return T'Value (Get_Buffer (Fld, Buf));
- end Value;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads
deleted file mode 100644
index 6b01c26..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads
+++ /dev/null
@@ -1,59 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type T is (<>);
-
-package Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada);
-
- function Create (Set : Type_Set := Mixed_Case;
- Case_Sensitive : Boolean := False;
- Must_Be_Unique : Boolean := False)
- return Enumeration_Field;
-
- function Value (Fld : Field;
- Buf : Buffer_Number := Buffer_Number'First) return T;
- -- Translate the content of the fields buffer - indicated by the
- -- buffer number - into an enumeration value. If the buffer is empty
- -- or the content is invalid, a Constraint_Error is raises.
-
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
deleted file mode 100644
index fccb4f3..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
+++ /dev/null
@@ -1,119 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Deallocation;
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
-
- function Create (Info : Enumeration_Info;
- Auto_Release_Names : Boolean := False)
- return Enumeration_Field
- is
- procedure Release_String is
- new Ada.Unchecked_Deallocation (String,
- String_Access);
- E : Enumeration_Field;
- L : constant size_t := 1 + size_t (Info.C);
- S : String_Access;
- begin
- E.Case_Sensitive := Info.Case_Sensitive;
- E.Match_Must_Be_Unique := Info.Match_Must_Be_Unique;
- E.Arr := new chars_ptr_array (size_t (1) .. L);
- for I in 1 .. Positive (L - 1) loop
- if Info.Names (I) = null then
- raise Form_Exception;
- end if;
- E.Arr (size_t (I)) := New_String (Info.Names (I).all);
- if Auto_Release_Names then
- S := Info.Names (I);
- Release_String (S);
- end if;
- end loop;
- E.Arr (L) := Null_Ptr;
- return E;
- end Create;
-
- procedure Release (Enum : in out Enumeration_Field)
- is
- I : size_t := 0;
- P : chars_ptr;
- begin
- loop
- P := Enum.Arr (I);
- exit when P = Null_Ptr;
- Free (P);
- Enum.Arr (I) := Null_Ptr;
- I := I + 1;
- end loop;
- Enum.Arr := null;
- end Release;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Enumeration_Field)
- is
- C_Enum_Type : C_Field_Type;
- pragma Import (C, C_Enum_Type, "TYPE_ENUM");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Enum_Type;
- Arg1 : chars_ptr_array;
- Arg2 : C_Int;
- Arg3 : C_Int) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- if Typ.Arr = null then
- raise Form_Exception;
- end if;
- Res := Set_Fld_Type (Arg1 => Typ.Arr.all,
- Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
- Arg3 => C_Int (Boolean'Pos
- (Typ.Match_Must_Be_Unique)));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ, C_Choice_Router);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads
deleted file mode 100644
index d3d54b8..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads
+++ /dev/null
@@ -1,98 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C.Strings;
-
-package Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.Enumeration);
-
- type String_Access is access String;
-
- -- Type_Set is used by the child package Ada
- type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
-
- type Enum_Array is array (Positive range <>)
- of String_Access;
-
- type Enumeration_Info (C : Positive) is
- record
- Names : Enum_Array (1 .. C);
- Case_Sensitive : Boolean := False;
- Match_Must_Be_Unique : Boolean := False;
- end record;
-
- type Enumeration_Field is new Field_Type with private;
-
- function Create (Info : Enumeration_Info;
- Auto_Release_Names : Boolean := False)
- return Enumeration_Field;
- -- Make an fieldtype from the info. Enumerations are special, because
- -- they normally don't copy the enum values into a private store, so
- -- we have to care for the lifetime of the info we provide.
- -- The Auto_Release_Names flag may be used to automatically releases
- -- the strings in the Names array of the Enumeration_Info.
-
- function Make_Enumeration_Type (Info : Enumeration_Info;
- Auto_Release_Names : Boolean := False)
- return Enumeration_Field renames Create;
-
- procedure Release (Enum : in out Enumeration_Field);
- -- But we may want to release the field to release the memory allocated
- -- by it internally. After that the Enumeration field is no longer usable.
-
- -- The next type defintions are all ncurses extensions. They are typically
- -- not available in other curses implementations.
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Enumeration_Field);
- pragma Inline (Set_Field_Type);
-
-private
- type CPA_Access is access Interfaces.C.Strings.chars_ptr_array;
-
- type Enumeration_Field is new Field_Type with
- record
- Case_Sensitive : Boolean := False;
- Match_Must_Be_Unique : Boolean := False;
- Arr : CPA_Access := null;
- end record;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
deleted file mode 100644
index 4607a78..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
+++ /dev/null
@@ -1,72 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.IntField --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.IntField is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Integer_Field)
- is
- C_Integer_Field_Type : C_Field_Type;
- pragma Import (C, C_Integer_Field_Type, "TYPE_INTEGER");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Integer_Field_Type;
- Arg1 : C_Int;
- Arg2 : C_Long_Int;
- Arg3 : C_Long_Int) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
- Arg2 => C_Long_Int (Typ.Lower_Limit),
- Arg3 => C_Long_Int (Typ.Upper_Limit));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.IntField;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads
deleted file mode 100644
index 4ab7903..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads
+++ /dev/null
@@ -1,55 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.IntField --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.IntField is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.IntField);
-
- type Integer_Field is new Field_Type with
- record
- Precision : Natural;
- Lower_Limit : Integer;
- Upper_Limit : Integer;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Integer_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.IntField;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
deleted file mode 100644
index b5ec33a..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
+++ /dev/null
@@ -1,68 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Internet_V4_Address_Field)
- is
- C_IPV4_Field_Type : C_Field_Type;
- pragma Import (C, C_IPV4_Field_Type, "TYPE_IPV4");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_IPV4_Field_Type)
- return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type;
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads
deleted file mode 100644
index 2f91980..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads
+++ /dev/null
@@ -1,51 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address);
-
- type Internet_V4_Address_Field is new Field_Type with null record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Internet_V4_Address_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb
deleted file mode 100644
index 4d172f1..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb
+++ /dev/null
@@ -1,74 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Numeric --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.Numeric is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Numeric_Field)
- is
- type Double is new Interfaces.C.double;
-
- C_Numeric_Field_Type : C_Field_Type;
- pragma Import (C, C_Numeric_Field_Type, "TYPE_NUMERIC");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Numeric_Field_Type;
- Arg1 : C_Int;
- Arg2 : Double;
- Arg3 : Double) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
- Arg2 => Double (Typ.Lower_Limit),
- Arg3 => Double (Typ.Upper_Limit));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Numeric;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads
deleted file mode 100644
index 0bcf03c..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads
+++ /dev/null
@@ -1,55 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Numeric --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.Numeric is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Numeric);
-
- type Numeric_Field is new Field_Type with
- record
- Precision : Natural;
- Lower_Limit : Float;
- Upper_Limit : Float;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Numeric_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.Numeric;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
deleted file mode 100644
index f377e95..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
+++ /dev/null
@@ -1,71 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.RegExp --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C; use Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.RegExp is
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Regular_Expression_Field)
- is
- type Char_Ptr is access all Interfaces.C.char;
-
- C_Regexp_Field_Type : C_Field_Type;
- pragma Import (C, C_Regexp_Field_Type, "TYPE_REGEXP");
-
- function Set_Ftyp (F : Field := Fld;
- Cft : C_Field_Type := C_Regexp_Field_Type;
- Arg1 : Char_Ptr) return C_Int;
- pragma Import (C, Set_Ftyp, "set_field_type");
-
- Txt : char_array (0 .. Typ.Regular_Expression.all'Length);
- Len : size_t;
- Res : Eti_Error;
- begin
- To_C (Typ.Regular_Expression.all, Txt, Len);
- Res := Set_Ftyp (Arg1 => Txt (Txt'First)'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.RegExp;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads
deleted file mode 100644
index ce4c883..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads
+++ /dev/null
@@ -1,55 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.RegExp --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.RegExp is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.RegExp);
-
- type String_Access is access String;
-
- type Regular_Expression_Field is new Field_Type with
- record
- Regular_Expression : String_Access;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Regular_Expression_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.RegExp;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
deleted file mode 100644
index 4f8d058..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
+++ /dev/null
@@ -1,110 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Conversion;
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
-
- use type Interfaces.C.int;
-
- function To_Argument_Access is new Ada.Unchecked_Conversion
- (System.Address, Argument_Access);
-
- function Generic_Next (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Result : Boolean;
- Udf : User_Defined_Field_Type_With_Choice_Access :=
- User_Defined_Field_Type_With_Choice_Access
- (To_Argument_Access (Usr).Typ);
- begin
- Result := Next (Fld, Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Next;
-
- function Generic_Prev (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Result : Boolean;
- Udf : User_Defined_Field_Type_With_Choice_Access :=
- User_Defined_Field_Type_With_Choice_Access
- (To_Argument_Access (Usr).Typ);
- begin
- Result := Previous (Fld, Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Prev;
-
- -- -----------------------------------------------------------------------
- --
- function C_Generic_Choice return C_Field_Type
- is
- Res : Eti_Error;
- T : C_Field_Type;
- begin
- if M_Generic_Choice = Null_Field_Type then
- T := New_Fieldtype (Generic_Field_Check'Access,
- Generic_Char_Check'Access);
- if T = Null_Field_Type then
- raise Form_Exception;
- else
- Res := Set_Fieldtype_Arg (T,
- Make_Arg'Access,
- Copy_Arg'Access,
- Free_Arg'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
-
- Res := Set_Fieldtype_Choice (T,
- Generic_Next'Access,
- Generic_Prev'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- M_Generic_Choice := T;
- end if;
- pragma Assert (M_Generic_Choice /= Null_Field_Type);
- return M_Generic_Choice;
- end C_Generic_Choice;
-
-end Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads
deleted file mode 100644
index 9f1ba10..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads
+++ /dev/null
@@ -1,96 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-
-package Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.User.Choice);
-
- use type Interfaces.C.int;
- subtype C_Int is Interfaces.C.int;
-
- type User_Defined_Field_Type_With_Choice is abstract new
- User_Defined_Field_Type with null record;
- -- This is the root of the mechanism we use to create field types in
- -- Ada95 that allow the prev/next mechanism. You should your own type
- -- derive from this one and implement the Field_Check, Character_Check
- -- Next and Previous functions for your own type.
-
- type User_Defined_Field_Type_With_Choice_Access is access all
- User_Defined_Field_Type_With_Choice'Class;
-
- function Next
- (Fld : Field;
- Typ : User_Defined_Field_Type_With_Choice) return Boolean
- is abstract;
- -- If True is returned, the function successfully generated a next
- -- value into the fields buffer.
-
- function Previous
- (Fld : Field;
- Typ : User_Defined_Field_Type_With_Choice) return Boolean
- is abstract;
- -- If True is returned, the function successfully generated a previous
- -- value into the fields buffer.
-
- -- +----------------------------------------------------------------------
- -- | Private Part.
- -- |
-private
- use type Interfaces.C.int;
-
- function C_Generic_Choice return C_Field_Type;
-
- function Generic_Next (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Generic_Next);
- -- This is the generic next Choice_Function for the low-level fieldtype
- -- representing all the User_Defined_Field_Type derivates. It routes
- -- the call to the Next implementation for the type.
-
- function Generic_Prev (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Generic_Prev);
- -- This is the generic prev Choice_Function for the low-level fieldtype
- -- representing all the User_Defined_Field_Type derivates. It routes
- -- the call to the Previous implementation for the type.
-
-end Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb
deleted file mode 100644
index b011c5f..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb
+++ /dev/null
@@ -1,132 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.User --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Conversion;
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.User is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in User_Defined_Field_Type)
- is
- function Allocate_Arg (T : User_Defined_Field_Type'Class)
- return Argument_Access;
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Generic_Type;
- Arg1 : Argument_Access)
- return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
-
- function Allocate_Arg (T : User_Defined_Field_Type'Class)
- return Argument_Access
- is
- Ptr : Field_Type_Access := new User_Defined_Field_Type'Class'(T);
- begin
- return new Argument'(Usr => System.Null_Address,
- Typ => Ptr,
- Cft => Null_Field_Type);
- end Allocate_Arg;
-
- begin
- Res := Set_Fld_Type (Arg1 => Allocate_Arg (Typ));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Field_Type;
-
- function To_Argument_Access is new Ada.Unchecked_Conversion
- (System.Address, Argument_Access);
-
- function Generic_Field_Check (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Result : Boolean;
- Udf : User_Defined_Field_Type_Access :=
- User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
- begin
- Result := Field_Check (Fld, Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Field_Check;
-
- function Generic_Char_Check (Ch : C_Int;
- Usr : System.Address) return C_Int
- is
- Result : Boolean;
- Udf : User_Defined_Field_Type_Access :=
- User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
- begin
- Result := Character_Check (Character'Val (Ch), Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Char_Check;
-
- -- -----------------------------------------------------------------------
- --
- function C_Generic_Type return C_Field_Type
- is
- Res : Eti_Error;
- T : C_Field_Type;
- begin
- if M_Generic_Type = Null_Field_Type then
- T := New_Fieldtype (Generic_Field_Check'Access,
- Generic_Char_Check'Access);
- if T = Null_Field_Type then
- raise Form_Exception;
- else
- Res := Set_Fieldtype_Arg (T,
- Make_Arg'Access,
- Copy_Arg'Access,
- Free_Arg'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- M_Generic_Type := T;
- end if;
- pragma Assert (M_Generic_Type /= Null_Field_Type);
- return M_Generic_Type;
- end C_Generic_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.User;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads
deleted file mode 100644
index a138d2d..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads
+++ /dev/null
@@ -1,97 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.User --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-
-package Terminal_Interface.Curses.Forms.Field_Types.User is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.User);
- use type Interfaces.C.int;
- subtype C_Int is Interfaces.C.int;
-
- type User_Defined_Field_Type is abstract new Field_Type with null record;
- -- This is the root of the mechanism we use to create field types in
- -- Ada95. You should your own type derive from this one and implement
- -- the Field_Check and Character_Check functions for your own type.
-
- type User_Defined_Field_Type_Access is access all
- User_Defined_Field_Type'Class;
-
- function Field_Check
- (Fld : Field;
- Typ : User_Defined_Field_Type) return Boolean
- is abstract;
- -- If True is returned, the field is considered valid, otherwise it is
- -- invalid.
-
- function Character_Check
- (Ch : Character;
- Typ : User_Defined_Field_Type) return Boolean
- is abstract;
- -- If True is returned, the character is considered as valid for the
- -- field, otherwise as invalid.
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in User_Defined_Field_Type);
- -- This should work for all types derived from User_Defined_Field_Type.
- -- No need to reimplement it for your derived type.
-
- -- +----------------------------------------------------------------------
- -- | Private Part.
- -- | Used by the Choice child package.
-private
- use type Interfaces.C.int;
-
- function C_Generic_Type return C_Field_Type;
-
- function Generic_Field_Check (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Generic_Field_Check);
- -- This is the generic Field_Check_Function for the low-level fieldtype
- -- representing all the User_Defined_Field_Type derivates. It routes
- -- the call to the Field_Check implementation for the type.
-
- function Generic_Char_Check (Ch : C_Int;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Generic_Char_Check);
- -- This is the generic Char_Check_Function for the low-level fieldtype
- -- representing all the User_Defined_Field_Type derivates. It routes
- -- the call to the Character_Check implementation for the type.
-
-end Terminal_Interface.Curses.Forms.Field_Types.User;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb
deleted file mode 100644
index da223c9..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb
+++ /dev/null
@@ -1,296 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Ada.Unchecked_Deallocation;
-with Ada.Unchecked_Conversion;
--- |
--- |=====================================================================
--- | man page form_fieldtype.3x
--- |=====================================================================
--- |
-package body Terminal_Interface.Curses.Forms.Field_Types is
-
- use type Interfaces.C.int;
- use type System.Address;
-
- function To_Argument_Access is new Ada.Unchecked_Conversion
- (System.Address, Argument_Access);
-
- function Get_Fieldtype (F : Field) return C_Field_Type;
- pragma Import (C, Get_Fieldtype, "field_type");
-
- function Get_Arg (F : Field) return System.Address;
- pragma Import (C, Get_Arg, "field_arg");
- -- |
- -- |=====================================================================
- -- | man page form_field_validation.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Get_Type (Fld : in Field) return Field_Type_Access
- is
- Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
- Arg : Argument_Access;
- begin
- if Low_Level = Null_Field_Type then
- return null;
- else
- if Low_Level = M_Builtin_Router or else
- Low_Level = M_Generic_Type or else
- Low_Level = M_Choice_Router or else
- Low_Level = M_Generic_Choice then
- Arg := To_Argument_Access (Get_Arg (Fld));
- if Arg = null then
- raise Form_Exception;
- else
- return Arg.Typ;
- end if;
- else
- raise Form_Exception;
- end if;
- end if;
- end Get_Type;
-
- function Make_Arg (Args : System.Address) return System.Address
- is
- -- Actually args is a double indirected pointer to the arguments
- -- of a C variable argument list. In theory it is now quite
- -- complicated to write portable routine that reads the arguments,
- -- because one has to know the growth direction of the stack and
- -- the sizes of the individual arguments.
- -- Fortunately we are only interested in the first argument (#0),
- -- we know its size and for the first arg we don't care about
- -- into which stack direction we have to proceed. We simply
- -- resolve the double indirection and thats it.
- type V is access all System.Address;
- function To_Access is new Ada.Unchecked_Conversion (System.Address,
- V);
- begin
- return To_Access (To_Access (Args).all).all;
- end Make_Arg;
-
- function Copy_Arg (Usr : System.Address) return System.Address
- is
- begin
- return Usr;
- end Copy_Arg;
-
- procedure Free_Arg (Usr : in System.Address)
- is
- procedure Free_Type is new Ada.Unchecked_Deallocation
- (Field_Type'Class, Field_Type_Access);
- procedure Freeargs is new Ada.Unchecked_Deallocation
- (Argument, Argument_Access);
-
- To_Be_Free : Argument_Access := To_Argument_Access (Usr);
- Low_Level : C_Field_Type;
- begin
- if To_Be_Free /= null then
- if To_Be_Free.Usr /= System.Null_Address then
- Low_Level := To_Be_Free.Cft;
- if Low_Level.Freearg /= null then
- Low_Level.Freearg (To_Be_Free.Usr);
- end if;
- end if;
- if To_Be_Free.Typ /= null then
- Free_Type (To_Be_Free.Typ);
- end if;
- Freeargs (To_Be_Free);
- end if;
- end Free_Arg;
-
-
- procedure Wrap_Builtin (Fld : Field;
- Typ : Field_Type'Class;
- Cft : C_Field_Type := C_Builtin_Router)
- is
- Usr_Arg : System.Address := Get_Arg (Fld);
- Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
- Arg : Argument_Access;
- Res : Eti_Error;
- function Set_Fld_Type (F : Field := Fld;
- Cf : C_Field_Type := Cft;
- Arg1 : Argument_Access) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- begin
- pragma Assert (Low_Level /= Null_Field_Type);
- if Cft /= C_Builtin_Router and then Cft /= C_Choice_Router then
- raise Form_Exception;
- else
- Arg := new Argument'(Usr => System.Null_Address,
- Typ => new Field_Type'Class'(Typ),
- Cft => Get_Fieldtype (Fld));
- if Usr_Arg /= System.Null_Address then
- if Low_Level.Copyarg /= null then
- Arg.Usr := Low_Level.Copyarg (Usr_Arg);
- else
- Arg.Usr := Usr_Arg;
- end if;
- end if;
-
- Res := Set_Fld_Type (Arg1 => Arg);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- end Wrap_Builtin;
-
- function Field_Check_Router (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Arg : constant Argument_Access := To_Argument_Access (Usr);
- begin
- pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
- and then Arg.Typ /= null);
- if Arg.Cft.Fcheck /= null then
- return Arg.Cft.Fcheck (Fld, Arg.Usr);
- else
- return 1;
- end if;
- end Field_Check_Router;
-
- function Char_Check_Router (Ch : C_Int;
- Usr : System.Address) return C_Int
- is
- Arg : constant Argument_Access := To_Argument_Access (Usr);
- begin
- pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
- and then Arg.Typ /= null);
- if Arg.Cft.Ccheck /= null then
- return Arg.Cft.Ccheck (Ch, Arg.Usr);
- else
- return 1;
- end if;
- end Char_Check_Router;
-
- function Next_Router (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Arg : constant Argument_Access := To_Argument_Access (Usr);
- begin
- pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
- and then Arg.Typ /= null);
- if Arg.Cft.Next /= null then
- return Arg.Cft.Next (Fld, Arg.Usr);
- else
- return 1;
- end if;
- end Next_Router;
-
- function Prev_Router (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Arg : constant Argument_Access := To_Argument_Access (Usr);
- begin
- pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
- and then Arg.Typ /= null);
- if Arg.Cft.Prev /= null then
- return Arg.Cft.Prev (Fld, Arg.Usr);
- else
- return 1;
- end if;
- end Prev_Router;
-
- -- -----------------------------------------------------------------------
- --
- function C_Builtin_Router return C_Field_Type
- is
- Res : Eti_Error;
- T : C_Field_Type;
- begin
- if M_Builtin_Router = Null_Field_Type then
- T := New_Fieldtype (Field_Check_Router'Access,
- Char_Check_Router'Access);
- if T = Null_Field_Type then
- raise Form_Exception;
- else
- Res := Set_Fieldtype_Arg (T,
- Make_Arg'Access,
- Copy_Arg'Access,
- Free_Arg'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- M_Builtin_Router := T;
- end if;
- pragma Assert (M_Builtin_Router /= Null_Field_Type);
- return M_Builtin_Router;
- end C_Builtin_Router;
-
- -- -----------------------------------------------------------------------
- --
- function C_Choice_Router return C_Field_Type
- is
- Res : Eti_Error;
- T : C_Field_Type;
- begin
- if M_Choice_Router = Null_Field_Type then
- T := New_Fieldtype (Field_Check_Router'Access,
- Char_Check_Router'Access);
- if T = Null_Field_Type then
- raise Form_Exception;
- else
- Res := Set_Fieldtype_Arg (T,
- Make_Arg'Access,
- Copy_Arg'Access,
- Free_Arg'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
-
- Res := Set_Fieldtype_Choice (T,
- Next_Router'Access,
- Prev_Router'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- M_Choice_Router := T;
- end if;
- pragma Assert (M_Choice_Router /= Null_Field_Type);
- return M_Choice_Router;
- end C_Choice_Router;
-
-end Terminal_Interface.Curses.Forms.Field_Types;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb
deleted file mode 100644
index 82d8f71..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb
+++ /dev/null
@@ -1,85 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
--- |
--- |=====================================================================
--- | man page form_field_userptr.3x
--- |=====================================================================
--- |
-package body Terminal_Interface.Curses.Forms.Field_User_Data is
- -- |
- -- |
- -- |
- use type Interfaces.C.int;
-
- procedure Set_User_Data (Fld : in Field;
- Data : in User_Access)
- is
- function Set_Field_Userptr (Fld : Field;
- Usr : User_Access) return C_Int;
- pragma Import (C, Set_Field_Userptr, "set_field_userptr");
-
- Res : constant Eti_Error := Set_Field_Userptr (Fld, Data);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_User_Data;
- -- |
- -- |
- -- |
- function Get_User_Data (Fld : in Field) return User_Access
- is
- function Field_Userptr (Fld : Field) return User_Access;
- pragma Import (C, Field_Userptr, "field_userptr");
- begin
- return Field_Userptr (Fld);
- end Get_User_Data;
-
- procedure Get_User_Data (Fld : in Field;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Fld);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Forms.Field_User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb
deleted file mode 100644
index b4c0ffc..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb
+++ /dev/null
@@ -1,86 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Form_User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- |
--- |=====================================================================
--- | man page form__userptr.3x
--- |=====================================================================
--- |
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Form_User_Data is
-
- use type Interfaces.C.int;
-
- -- |
- -- |
- -- |
- procedure Set_User_Data (Frm : in Form;
- Data : in User_Access)
- is
- function Set_Form_Userptr (Frm : Form;
- Data : User_Access) return C_Int;
- pragma Import (C, Set_Form_Userptr, "set_form_userptr");
-
- Res : constant Eti_Error := Set_Form_Userptr (Frm, Data);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_User_Data;
- -- |
- -- |
- -- |
- function Get_User_Data (Frm : in Form) return User_Access
- is
- function Form_Userptr (Frm : Form) return User_Access;
- pragma Import (C, Form_Userptr, "form_userptr");
- begin
- return Form_Userptr (Frm);
- end Get_User_Data;
-
- procedure Get_User_Data (Frm : in Form;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Frm);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Forms.Form_User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms.adb
deleted file mode 100644
index 6c592d8..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms.adb
+++ /dev/null
@@ -1,1160 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Deallocation;
-with Ada.Unchecked_Conversion;
-
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Interfaces.C.Pointers;
-
-with Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms is
-
- use Terminal_Interface.Curses.Aux;
-
- type C_Field_Array is array (Natural range <>) of aliased Field;
- package F_Array is new
- Interfaces.C.Pointers (Natural, Field, C_Field_Array, Null_Field);
-
-------------------------------------------------------------------------------
- -- |
- -- |
- -- |
- -- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
-
- function FOS_2_CInt is new
- Ada.Unchecked_Conversion (Field_Option_Set,
- C_Int);
-
- function CInt_2_FOS is new
- Ada.Unchecked_Conversion (C_Int,
- Field_Option_Set);
-
- function FrmOS_2_CInt is new
- Ada.Unchecked_Conversion (Form_Option_Set,
- C_Int);
-
- function CInt_2_FrmOS is new
- Ada.Unchecked_Conversion (C_Int,
- Form_Option_Set);
-
- procedure Request_Name (Key : in Form_Request_Code;
- Name : out String)
- is
- function Form_Request_Name (Key : C_Int) return chars_ptr;
- pragma Import (C, Form_Request_Name, "form_request_name");
- begin
- Fill_String (Form_Request_Name (C_Int (Key)), Name);
- end Request_Name;
-
- function Request_Name (Key : Form_Request_Code) return String
- is
- function Form_Request_Name (Key : C_Int) return chars_ptr;
- pragma Import (C, Form_Request_Name, "form_request_name");
- begin
- return Fill_String (Form_Request_Name (C_Int (Key)));
- end Request_Name;
-------------------------------------------------------------------------------
- -- |
- -- |
- -- |
- -- |
- -- |=====================================================================
- -- | man page form_field_new.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Create (Height : Line_Count;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0;
- More_Buffers : Buffer_Number := Buffer_Number'First)
- return Field
- is
- function Newfield (H, W, T, L, O, M : C_Int) return Field;
- pragma Import (C, Newfield, "new_field");
- Fld : constant Field := Newfield (C_Int (Height), C_Int (Width),
- C_Int (Top), C_Int (Left),
- C_Int (Off_Screen),
- C_Int (More_Buffers));
- begin
- if Fld = Null_Field then
- raise Form_Exception;
- end if;
- return Fld;
- end Create;
--- |
--- |
--- |
- procedure Delete (Fld : in out Field)
- is
- function Free_Field (Fld : Field) return C_Int;
- pragma Import (C, Free_Field, "free_field");
-
- Res : Eti_Error;
- begin
- Res := Free_Field (Fld);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Fld := Null_Field;
- end Delete;
- -- |
- -- |
- -- |
- function Duplicate (Fld : Field;
- Top : Line_Position;
- Left : Column_Position) return Field
- is
- function Dup_Field (Fld : Field;
- Top : C_Int;
- Left : C_Int) return Field;
- pragma Import (C, Dup_Field, "dup_field");
-
- F : constant Field := Dup_Field (Fld,
- C_Int (Top),
- C_Int (Left));
- begin
- if F = Null_Field then
- raise Form_Exception;
- end if;
- return F;
- end Duplicate;
- -- |
- -- |
- -- |
- function Link (Fld : Field;
- Top : Line_Position;
- Left : Column_Position) return Field
- is
- function Lnk_Field (Fld : Field;
- Top : C_Int;
- Left : C_Int) return Field;
- pragma Import (C, Lnk_Field, "link_field");
-
- F : constant Field := Lnk_Field (Fld,
- C_Int (Top),
- C_Int (Left));
- begin
- if F = Null_Field then
- raise Form_Exception;
- end if;
- return F;
- end Link;
- -- |
- -- |=====================================================================
- -- | man page form_field_just.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Justification (Fld : in Field;
- Just : in Field_Justification := None)
- is
- function Set_Field_Just (Fld : Field;
- Just : C_Int) return C_Int;
- pragma Import (C, Set_Field_Just, "set_field_just");
-
- Res : constant Eti_Error :=
- Set_Field_Just (Fld,
- C_Int (Field_Justification'Pos (Just)));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Justification;
- -- |
- -- |
- -- |
- function Get_Justification (Fld : Field) return Field_Justification
- is
- function Field_Just (Fld : Field) return C_Int;
- pragma Import (C, Field_Just, "field_just");
- begin
- return Field_Justification'Val (Field_Just (Fld));
- end Get_Justification;
- -- |
- -- |=====================================================================
- -- | man page form_field_buffer.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First;
- Str : in String)
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Set_Fld_Buffer (Fld : Field;
- Bufnum : C_Int;
- S : Char_Ptr)
- return C_Int;
- pragma Import (C, Set_Fld_Buffer, "set_field_buffer");
-
- Txt : char_array (0 .. Str'Length);
- Len : size_t;
- Res : Eti_Error;
- begin
- To_C (Str, Txt, Len);
- Res := Set_Fld_Buffer (Fld, C_Int (Buffer), Txt (Txt'First)'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Buffer;
- -- |
- -- |
- -- |
- procedure Get_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First;
- Str : out String)
- is
- function Field_Buffer (Fld : Field;
- B : C_Int) return chars_ptr;
- pragma Import (C, Field_Buffer, "field_buffer");
- begin
- Fill_String (Field_Buffer (Fld, C_Int (Buffer)), Str);
- end Get_Buffer;
-
- function Get_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First) return String
- is
- function Field_Buffer (Fld : Field;
- B : C_Int) return chars_ptr;
- pragma Import (C, Field_Buffer, "field_buffer");
- begin
- return Fill_String (Field_Buffer (Fld, C_Int (Buffer)));
- end Get_Buffer;
- -- |
- -- |
- -- |
- procedure Set_Status (Fld : in Field;
- Status : in Boolean := True)
- is
- function Set_Fld_Status (Fld : Field;
- St : C_Int) return C_Int;
- pragma Import (C, Set_Fld_Status, "set_field_status");
-
- Res : constant Eti_Error := Set_Fld_Status (Fld, Boolean'Pos (Status));
- begin
- if Res /= E_Ok then
- raise Form_Exception;
- end if;
- end Set_Status;
- -- |
- -- |
- -- |
- function Changed (Fld : Field) return Boolean
- is
- function Field_Status (Fld : Field) return C_Int;
- pragma Import (C, Field_Status, "field_status");
-
- Res : constant C_Int := Field_Status (Fld);
- begin
- if Res = Curses_False then
- return False;
- else
- return True;
- end if;
- end Changed;
- -- |
- -- |
- -- |
- procedure Set_Maximum_Size (Fld : in Field;
- Max : in Natural := 0)
- is
- function Set_Field_Max (Fld : Field;
- M : C_Int) return C_Int;
- pragma Import (C, Set_Field_Max, "set_max_field");
-
- Res : constant Eti_Error := Set_Field_Max (Fld, C_Int (Max));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Maximum_Size;
- -- |
- -- |=====================================================================
- -- | man page form_field_opts.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Options (Fld : in Field;
- Options : in Field_Option_Set)
- is
- function Set_Field_Opts (Fld : Field;
- Opt : C_Int) return C_Int;
- pragma Import (C, Set_Field_Opts, "set_field_opts");
-
- Opt : C_Int := FOS_2_CInt (Options);
- Res : Eti_Error;
- begin
- Res := Set_Field_Opts (Fld, Opt);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Options;
- -- |
- -- |
- -- |
- procedure Switch_Options (Fld : in Field;
- Options : in Field_Option_Set;
- On : Boolean := True)
- is
- function Field_Opts_On (Fld : Field;
- Opt : C_Int) return C_Int;
- pragma Import (C, Field_Opts_On, "field_opts_on");
- function Field_Opts_Off (Fld : Field;
- Opt : C_Int) return C_Int;
- pragma Import (C, Field_Opts_Off, "field_opts_off");
-
- Err : Eti_Error;
- Opt : C_Int := FOS_2_CInt (Options);
- begin
- if On then
- Err := Field_Opts_On (Fld, Opt);
- else
- Err := Field_Opts_Off (Fld, Opt);
- end if;
- if Err /= E_Ok then
- Eti_Exception (Err);
- end if;
- end Switch_Options;
- -- |
- -- |
- -- |
- procedure Get_Options (Fld : in Field;
- Options : out Field_Option_Set)
- is
- function Field_Opts (Fld : Field) return C_Int;
- pragma Import (C, Field_Opts, "field_opts");
-
- Res : C_Int := Field_Opts (Fld);
- begin
- Options := CInt_2_FOS (Res);
- end Get_Options;
- -- |
- -- |
- -- |
- function Get_Options (Fld : Field := Null_Field)
- return Field_Option_Set
- is
- Fos : Field_Option_Set;
- begin
- Get_Options (Fld, Fos);
- return Fos;
- end Get_Options;
- -- |
- -- |=====================================================================
- -- | man page form_field_attributes.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Foreground
- (Fld : in Field;
- Fore : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Field_Fore (Fld : Field;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Field_Fore, "set_field_fore");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Fore);
- Res : constant Eti_Error :=
- Set_Field_Fore (Fld, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Foreground;
- -- |
- -- |
- -- |
- procedure Foreground (Fld : in Field;
- Fore : out Character_Attribute_Set)
- is
- function Field_Fore (Fld : Field) return C_Chtype;
- pragma Import (C, Field_Fore, "field_fore");
- begin
- Fore := Chtype_To_AttrChar (Field_Fore (Fld)).Attr;
- end Foreground;
-
- procedure Foreground (Fld : in Field;
- Fore : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Field_Fore (Fld : Field) return C_Chtype;
- pragma Import (C, Field_Fore, "field_fore");
- begin
- Fore := Chtype_To_AttrChar (Field_Fore (Fld)).Attr;
- Color := Chtype_To_AttrChar (Field_Fore (Fld)).Color;
- end Foreground;
- -- |
- -- |
- -- |
- procedure Set_Background
- (Fld : in Field;
- Back : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Field_Back (Fld : Field;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Field_Back, "set_field_back");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Back);
- Res : constant Eti_Error :=
- Set_Field_Back (Fld, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Background;
- -- |
- -- |
- -- |
- procedure Background (Fld : in Field;
- Back : out Character_Attribute_Set)
- is
- function Field_Back (Fld : Field) return C_Chtype;
- pragma Import (C, Field_Back, "field_back");
- begin
- Back := Chtype_To_AttrChar (Field_Back (Fld)).Attr;
- end Background;
-
- procedure Background (Fld : in Field;
- Back : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Field_Back (Fld : Field) return C_Chtype;
- pragma Import (C, Field_Back, "field_back");
- begin
- Back := Chtype_To_AttrChar (Field_Back (Fld)).Attr;
- Color := Chtype_To_AttrChar (Field_Back (Fld)).Color;
- end Background;
- -- |
- -- |
- -- |
- procedure Set_Pad_Character (Fld : in Field;
- Pad : in Character := Space)
- is
- function Set_Field_Pad (Fld : Field;
- Ch : C_Int) return C_Int;
- pragma Import (C, Set_Field_Pad, "set_field_pad");
-
- Res : constant Eti_Error := Set_Field_Pad (Fld,
- C_Int (Character'Pos (Pad)));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Pad_Character;
- -- |
- -- |
- -- |
- procedure Pad_Character (Fld : in Field;
- Pad : out Character)
- is
- function Field_Pad (Fld : Field) return C_Int;
- pragma Import (C, Field_Pad, "field_pad");
- begin
- Pad := Character'Val (Field_Pad (Fld));
- end Pad_Character;
- -- |
- -- |=====================================================================
- -- | man page form_field_info.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Info (Fld : in Field;
- Lines : out Line_Count;
- Columns : out Column_Count;
- First_Row : out Line_Position;
- First_Column : out Column_Position;
- Off_Screen : out Natural;
- Additional_Buffers : out Buffer_Number)
- is
- type C_Int_Access is access all C_Int;
- function Fld_Info (Fld : Field;
- L, C, Fr, Fc, Os, Ab : C_Int_Access)
- return C_Int;
- pragma Import (C, Fld_Info, "field_info");
-
- L, C, Fr, Fc, Os, Ab : aliased C_Int;
- Res : constant Eti_Error := Fld_Info (Fld,
- L'Access, C'Access,
- Fr'Access, Fc'Access,
- Os'Access, Ab'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- else
- Lines := Line_Count (L);
- Columns := Column_Count (C);
- First_Row := Line_Position (Fr);
- First_Column := Column_Position (Fc);
- Off_Screen := Natural (Os);
- Additional_Buffers := Buffer_Number (Ab);
- end if;
- end Info;
--- |
--- |
--- |
- procedure Dynamic_Info (Fld : in Field;
- Lines : out Line_Count;
- Columns : out Column_Count;
- Max : out Natural)
- is
- type C_Int_Access is access all C_Int;
- function Dyn_Info (Fld : Field; L, C, M : C_Int_Access) return C_Int;
- pragma Import (C, Dyn_Info, "dynamic_field_info");
-
- L, C, M : aliased C_Int;
- Res : constant Eti_Error := Dyn_Info (Fld,
- L'Access, C'Access,
- M'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- else
- Lines := Line_Count (L);
- Columns := Column_Count (C);
- Max := Natural (M);
- end if;
- end Dynamic_Info;
- -- |
- -- |=====================================================================
- -- | man page form_win.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Window (Frm : in Form;
- Win : in Window)
- is
- function Set_Form_Win (Frm : Form;
- Win : Window) return C_Int;
- pragma Import (C, Set_Form_Win, "set_form_win");
-
- Res : constant Eti_Error := Set_Form_Win (Frm, Win);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Window;
- -- |
- -- |
- -- |
- function Get_Window (Frm : Form) return Window
- is
- function Form_Win (Frm : Form) return Window;
- pragma Import (C, Form_Win, "form_win");
-
- W : constant Window := Form_Win (Frm);
- begin
- return W;
- end Get_Window;
- -- |
- -- |
- -- |
- procedure Set_Sub_Window (Frm : in Form;
- Win : in Window)
- is
- function Set_Form_Sub (Frm : Form;
- Win : Window) return C_Int;
- pragma Import (C, Set_Form_Sub, "set_form_sub");
-
- Res : constant Eti_Error := Set_Form_Sub (Frm, Win);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Sub_Window;
- -- |
- -- |
- -- |
- function Get_Sub_Window (Frm : Form) return Window
- is
- function Form_Sub (Frm : Form) return Window;
- pragma Import (C, Form_Sub, "form_sub");
-
- W : constant Window := Form_Sub (Frm);
- begin
- return W;
- end Get_Sub_Window;
- -- |
- -- |
- -- |
- procedure Scale (Frm : in Form;
- Lines : out Line_Count;
- Columns : out Column_Count)
- is
- type C_Int_Access is access all C_Int;
- function M_Scale (Frm : Form; Yp, Xp : C_Int_Access) return C_Int;
- pragma Import (C, M_Scale, "scale_form");
-
- X, Y : aliased C_Int;
- Res : constant Eti_Error := M_Scale (Frm, Y'Access, X'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Lines := Line_Count (Y);
- Columns := Column_Count (X);
- end Scale;
- -- |
- -- |=====================================================================
- -- | man page menu_hook.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Field_Init_Hook (Frm : in Form;
- Proc : in Form_Hook_Function)
- is
- function Set_Field_Init (Frm : Form;
- Proc : Form_Hook_Function) return C_Int;
- pragma Import (C, Set_Field_Init, "set_field_init");
-
- Res : constant Eti_Error := Set_Field_Init (Frm, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Field_Init_Hook;
- -- |
- -- |
- -- |
- procedure Set_Field_Term_Hook (Frm : in Form;
- Proc : in Form_Hook_Function)
- is
- function Set_Field_Term (Frm : Form;
- Proc : Form_Hook_Function) return C_Int;
- pragma Import (C, Set_Field_Term, "set_field_term");
-
- Res : constant Eti_Error := Set_Field_Term (Frm, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Field_Term_Hook;
- -- |
- -- |
- -- |
- procedure Set_Form_Init_Hook (Frm : in Form;
- Proc : in Form_Hook_Function)
- is
- function Set_Form_Init (Frm : Form;
- Proc : Form_Hook_Function) return C_Int;
- pragma Import (C, Set_Form_Init, "set_form_init");
-
- Res : constant Eti_Error := Set_Form_Init (Frm, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Form_Init_Hook;
- -- |
- -- |
- -- |
- procedure Set_Form_Term_Hook (Frm : in Form;
- Proc : in Form_Hook_Function)
- is
- function Set_Form_Term (Frm : Form;
- Proc : Form_Hook_Function) return C_Int;
- pragma Import (C, Set_Form_Term, "set_form_term");
-
- Res : constant Eti_Error := Set_Form_Term (Frm, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Form_Term_Hook;
- -- |
- -- |=====================================================================
- -- | man page form_fields.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Redefine (Frm : in Form;
- Flds : in Field_Array_Access)
- is
- function Set_Frm_Fields (Frm : Form;
- Items : System.Address) return C_Int;
- pragma Import (C, Set_Frm_Fields, "set_form_fields");
-
- Res : Eti_Error;
- begin
- pragma Assert (Flds (Flds'Last) = Null_Field);
- if Flds (Flds'Last) /= Null_Field then
- raise Form_Exception;
- else
- Res := Set_Frm_Fields (Frm, Flds (Flds'First)'Address);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- end Redefine;
- -- |
- -- |
- -- |
- function Fields (Frm : Form;
- Index : Positive) return Field
- is
- use F_Array;
-
- function C_Fields (Frm : Form) return Pointer;
- pragma Import (C, C_Fields, "form_fields");
-
- P : Pointer := C_Fields (Frm);
- begin
- if P = null or else Index not in 1 .. Field_Count (Frm) then
- raise Form_Exception;
- else
- P := P + ptrdiff_t (C_Int (Index) - 1);
- return P.all;
- end if;
- end Fields;
- -- |
- -- |
- -- |
- function Field_Count (Frm : Form) return Natural
- is
- function Count (Frm : Form) return C_Int;
- pragma Import (C, Count, "field_count");
- begin
- return Natural (Count (Frm));
- end Field_Count;
- -- |
- -- |
- -- |
- procedure Move (Fld : in Field;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Move (Fld : Field; L, C : C_Int) return C_Int;
- pragma Import (C, Move, "move_field");
-
- Res : constant Eti_Error := Move (Fld, C_Int (Line), C_Int (Column));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Move;
- -- |
- -- |=====================================================================
- -- | man page form_new.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Create (Fields : Field_Array_Access) return Form
- is
- function NewForm (Fields : System.Address) return Form;
- pragma Import (C, NewForm, "new_form");
-
- M : Form;
- begin
- pragma Assert (Fields (Fields'Last) = Null_Field);
- if Fields (Fields'Last) /= Null_Field then
- raise Form_Exception;
- else
- M := NewForm (Fields (Fields'First)'Address);
- if M = Null_Form then
- raise Form_Exception;
- end if;
- return M;
- end if;
- end Create;
- -- |
- -- |
- -- |
- procedure Delete (Frm : in out Form)
- is
- function Free (Frm : Form) return C_Int;
- pragma Import (C, Free, "free_form");
-
- Res : constant Eti_Error := Free (Frm);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Frm := Null_Form;
- end Delete;
- -- |
- -- |=====================================================================
- -- | man page form_opts.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Options (Frm : in Form;
- Options : in Form_Option_Set)
- is
- function Set_Form_Opts (Frm : Form;
- Opt : C_Int) return C_Int;
- pragma Import (C, Set_Form_Opts, "set_form_opts");
-
- Opt : C_Int := FrmOS_2_CInt (Options);
- Res : Eti_Error;
- begin
- Res := Set_Form_Opts (Frm, Opt);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Options;
- -- |
- -- |
- -- |
- procedure Switch_Options (Frm : in Form;
- Options : in Form_Option_Set;
- On : Boolean := True)
- is
- function Form_Opts_On (Frm : Form;
- Opt : C_Int) return C_Int;
- pragma Import (C, Form_Opts_On, "form_opts_on");
- function Form_Opts_Off (Frm : Form;
- Opt : C_Int) return C_Int;
- pragma Import (C, Form_Opts_Off, "form_opts_off");
-
- Err : Eti_Error;
- Opt : C_Int := FrmOS_2_CInt (Options);
- begin
- if On then
- Err := Form_Opts_On (Frm, Opt);
- else
- Err := Form_Opts_Off (Frm, Opt);
- end if;
- if Err /= E_Ok then
- Eti_Exception (Err);
- end if;
- end Switch_Options;
- -- |
- -- |
- -- |
- procedure Get_Options (Frm : in Form;
- Options : out Form_Option_Set)
- is
- function Form_Opts (Frm : Form) return C_Int;
- pragma Import (C, Form_Opts, "form_opts");
-
- Res : C_Int := Form_Opts (Frm);
- begin
- Options := CInt_2_FrmOS (Res);
- end Get_Options;
- -- |
- -- |
- -- |
- function Get_Options (Frm : Form := Null_Form) return Form_Option_Set
- is
- Fos : Form_Option_Set;
- begin
- Get_Options (Frm, Fos);
- return Fos;
- end Get_Options;
- -- |
- -- |=====================================================================
- -- | man page form_post.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Post (Frm : in Form;
- Post : in Boolean := True)
- is
- function M_Post (Frm : Form) return C_Int;
- pragma Import (C, M_Post, "post_form");
- function M_Unpost (Frm : Form) return C_Int;
- pragma Import (C, M_Unpost, "unpost_form");
-
- Res : Eti_Error;
- begin
- if Post then
- Res := M_Post (Frm);
- else
- Res := M_Unpost (Frm);
- end if;
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Post;
- -- |
- -- |=====================================================================
- -- | man page form_cursor.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Position_Cursor (Frm : Form)
- is
- function Pos_Form_Cursor (Frm : Form) return C_Int;
- pragma Import (C, Pos_Form_Cursor, "pos_form_cursor");
-
- Res : constant Eti_Error := Pos_Form_Cursor (Frm);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Position_Cursor;
- -- |
- -- |=====================================================================
- -- | man page form_data.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Data_Ahead (Frm : Form) return Boolean
- is
- function Ahead (Frm : Form) return C_Int;
- pragma Import (C, Ahead, "data_ahead");
-
- Res : constant C_Int := Ahead (Frm);
- begin
- if Res = Curses_False then
- return False;
- else
- return True;
- end if;
- end Data_Ahead;
- -- |
- -- |
- -- |
- function Data_Behind (Frm : Form) return Boolean
- is
- function Behind (Frm : Form) return C_Int;
- pragma Import (C, Behind, "data_behind");
-
- Res : constant C_Int := Behind (Frm);
- begin
- if Res = Curses_False then
- return False;
- else
- return True;
- end if;
- end Data_Behind;
- -- |
- -- |=====================================================================
- -- | man page form_driver.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Driver (Frm : Form;
- Key : Key_Code) return Driver_Result
- is
- function Frm_Driver (Frm : Form; Key : C_Int) return C_Int;
- pragma Import (C, Frm_Driver, "form_driver");
-
- R : Eti_Error := Frm_Driver (Frm, C_Int (Key));
- begin
- if R /= E_Ok then
- if R = E_Unknown_Command then
- return Unknown_Request;
- elsif R = E_Invalid_Field then
- return Invalid_Field;
- elsif R = E_Request_Denied then
- return Request_Denied;
- else
- Eti_Exception (R);
- return Form_Ok;
- end if;
- else
- return Form_Ok;
- end if;
- end Driver;
- -- |
- -- |=====================================================================
- -- | man page form_page.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Current (Frm : in Form;
- Fld : in Field)
- is
- function Set_Current_Fld (Frm : Form; Fld : Field) return C_Int;
- pragma Import (C, Set_Current_Fld, "set_current_field");
-
- Res : constant Eti_Error := Set_Current_Fld (Frm, Fld);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Current;
- -- |
- -- |
- -- |
- function Current (Frm : in Form) return Field
- is
- function Current_Fld (Frm : Form) return Field;
- pragma Import (C, Current_Fld, "current_field");
-
- Fld : constant Field := Current_Fld (Frm);
- begin
- if Fld = Null_Field then
- raise Form_Exception;
- end if;
- return Fld;
- end Current;
- -- |
- -- |
- -- |
- procedure Set_Page (Frm : in Form;
- Page : in Page_Number := Page_Number'First)
- is
- function Set_Frm_Page (Frm : Form; Pg : C_Int) return C_Int;
- pragma Import (C, Set_Frm_Page, "set_form_page");
-
- Res : constant Eti_Error := Set_Frm_Page (Frm, C_Int (Page));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Page;
- -- |
- -- |
- -- |
- function Page (Frm : Form) return Page_Number
- is
- function Get_Page (Frm : Form) return C_Int;
- pragma Import (C, Get_Page, "form_page");
-
- P : constant C_Int := Get_Page (Frm);
- begin
- if P < 0 then
- raise Form_Exception;
- else
- return Page_Number (P);
- end if;
- end Page;
-
- function Get_Index (Fld : Field) return Positive
- is
- function Get_Fieldindex (Fld : Field) return C_Int;
- pragma Import (C, Get_Fieldindex, "field_index");
-
- Res : constant C_Int := Get_Fieldindex (Fld);
- begin
- if Res = Curses_Err then
- raise Form_Exception;
- end if;
- return Positive (Natural (Res) + Positive'First);
- end Get_Index;
-
- -- |
- -- |=====================================================================
- -- | man page form_new_page.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_New_Page (Fld : in Field;
- New_Page : in Boolean := True)
- is
- function Set_Page (Fld : Field; Flg : C_Int) return C_Int;
- pragma Import (C, Set_Page, "set_new_page");
-
- Res : constant Eti_Error := Set_Page (Fld, Boolean'Pos (New_Page));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_New_Page;
- -- |
- -- |
- -- |
- function Is_New_Page (Fld : Field) return Boolean
- is
- function Is_New (Fld : Field) return C_Int;
- pragma Import (C, Is_New, "new_page");
-
- Res : constant C_Int := Is_New (Fld);
- begin
- if Res = Curses_False then
- return False;
- else
- return True;
- end if;
- end Is_New_Page;
-
- procedure Free (FA : in out Field_Array_Access;
- Free_Fields : in Boolean := False)
- is
- procedure Release is new Ada.Unchecked_Deallocation
- (Field_Array, Field_Array_Access);
- begin
- if FA /= null and then Free_Fields then
- for I in FA'First .. (FA'Last - 1) loop
- if (FA (I) /= Null_Field) then
- Delete (FA (I));
- end if;
- end loop;
- end if;
- Release (FA);
- end Free;
-
- -- |=====================================================================
-
- function Default_Field_Options return Field_Option_Set
- is
- begin
- return Get_Options (Null_Field);
- end Default_Field_Options;
-
- function Default_Form_Options return Form_Option_Set
- is
- begin
- return Get_Options (Null_Form);
- end Default_Form_Options;
-
-end Terminal_Interface.Curses.Forms;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb
deleted file mode 100644
index 3facadd..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb
+++ /dev/null
@@ -1,77 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus.Item_User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Menus.Item_User_Data is
-
- use type Interfaces.C.int;
-
- procedure Set_User_Data (Itm : in Item;
- Data : in User_Access)
- is
- function Set_Item_Userptr (Itm : Item;
- Addr : User_Access) return C_Int;
- pragma Import (C, Set_Item_Userptr, "set_item_userptr");
-
- Res : constant Eti_Error := Set_Item_Userptr (Itm, Data);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_User_Data;
-
- function Get_User_Data (Itm : in Item) return User_Access
- is
- function Item_Userptr (Itm : Item) return User_Access;
- pragma Import (C, Item_Userptr, "item_userptr");
- begin
- return Item_Userptr (Itm);
- end Get_User_Data;
-
- procedure Get_User_Data (Itm : in Item;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Itm);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Menus.Item_User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
deleted file mode 100644
index 87ea22b..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
+++ /dev/null
@@ -1,76 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus.Menu_User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Menus.Menu_User_Data is
-
- use type Interfaces.C.int;
-
- procedure Set_User_Data (Men : in Menu;
- Data : in User_Access)
- is
- function Set_Menu_Userptr (Men : Menu;
- Data : User_Access) return C_Int;
- pragma Import (C, Set_Menu_Userptr, "set_menu_userptr");
-
- Res : constant Eti_Error := Set_Menu_Userptr (Men, Data);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_User_Data;
-
- function Get_User_Data (Men : in Menu) return User_Access
- is
- function Menu_Userptr (Men : Menu) return User_Access;
- pragma Import (C, Menu_Userptr, "menu_userptr");
- begin
- return Menu_Userptr (Men);
- end Get_User_Data;
-
- procedure Get_User_Data (Men : in Menu;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Men);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Menus.Menu_User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-menus.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-menus.adb
deleted file mode 100644
index 3d70de3..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-menus.adb
+++ /dev/null
@@ -1,1021 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Deallocation;
-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 Interfaces.C.Pointers;
-
-with Ada.Unchecked_Conversion;
-
-package body Terminal_Interface.Curses.Menus is
-
- type C_Item_Array is array (Natural range <>) of aliased Item;
- package I_Array is new
- Interfaces.C.Pointers (Natural, Item, C_Item_Array, Null_Item);
-
- use type System.Bit_Order;
- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
-
- function MOS_2_CInt is new
- Ada.Unchecked_Conversion (Menu_Option_Set,
- C_Int);
-
- function CInt_2_MOS is new
- Ada.Unchecked_Conversion (C_Int,
- Menu_Option_Set);
-
- function IOS_2_CInt is new
- Ada.Unchecked_Conversion (Item_Option_Set,
- C_Int);
-
- function CInt_2_IOS is new
- Ada.Unchecked_Conversion (C_Int,
- Item_Option_Set);
-
-------------------------------------------------------------------------------
- procedure Request_Name (Key : in Menu_Request_Code;
- Name : out String)
- is
- function Request_Name (Key : C_Int) return chars_ptr;
- pragma Import (C, Request_Name, "menu_request_name");
- begin
- Fill_String (Request_Name (C_Int (Key)), Name);
- end Request_Name;
-
- function Request_Name (Key : Menu_Request_Code) return String
- is
- function Request_Name (Key : C_Int) return chars_ptr;
- pragma Import (C, Request_Name, "menu_request_name");
- begin
- return Fill_String (Request_Name (C_Int (Key)));
- end Request_Name;
-
- function Create (Name : String;
- Description : String := "") return Item
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Newitem (Name, Desc : Char_Ptr) return Item;
- pragma Import (C, Newitem, "new_item");
-
- type Name_String is new char_array (0 .. Name'Length);
- type Name_String_Ptr is access Name_String;
- pragma Controlled (Name_String_Ptr);
-
- type Desc_String is new char_array (0 .. Description'Length);
- type Desc_String_Ptr is access Desc_String;
- pragma Controlled (Desc_String_Ptr);
-
- Name_Str : Name_String_Ptr := new Name_String;
- Desc_Str : Desc_String_Ptr := new Desc_String;
- Name_Len, Desc_Len : size_t;
- Result : Item;
- begin
- To_C (Name, Name_Str.all, Name_Len);
- To_C (Description, Desc_Str.all, Desc_Len);
- Result := Newitem (Name_Str.all (Name_Str.all'First)'Access,
- Desc_Str.all (Desc_Str.all'First)'Access);
- if Result = Null_Item then
- raise Eti_System_Error;
- end if;
- return Result;
- end Create;
-
- procedure Delete (Itm : in out Item)
- is
- function Descname (Itm : Item) return chars_ptr;
- pragma Import (C, Descname, "item_description");
- function Itemname (Itm : Item) return chars_ptr;
- pragma Import (C, Itemname, "item_name");
-
- function Freeitem (Itm : Item) return C_Int;
- pragma Import (C, Freeitem, "free_item");
-
- Res : Eti_Error;
- Ptr : chars_ptr;
- begin
- Ptr := Descname (Itm);
- if Ptr /= Null_Ptr then
- Interfaces.C.Strings.Free (Ptr);
- end if;
- Ptr := Itemname (Itm);
- if Ptr /= Null_Ptr then
- Interfaces.C.Strings.Free (Ptr);
- end if;
- Res := Freeitem (Itm);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Itm := Null_Item;
- end Delete;
--------------------------------------------------------------------------------
- procedure Set_Value (Itm : in Item;
- Value : in Boolean := True)
- is
- function Set_Item_Val (Itm : Item;
- Val : C_Int) return C_Int;
- pragma Import (C, Set_Item_Val, "set_item_value");
-
- Res : constant Eti_Error := Set_Item_Val (Itm, Boolean'Pos (Value));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Value;
-
- function Value (Itm : Item) return Boolean
- is
- function Item_Val (Itm : Item) return C_Int;
- pragma Import (C, Item_Val, "item_value");
- begin
- if Item_Val (Itm) = Curses_False then
- return False;
- else
- return True;
- end if;
- end Value;
-
--------------------------------------------------------------------------------
- function Visible (Itm : Item) return Boolean
- is
- function Item_Vis (Itm : Item) return C_Int;
- pragma Import (C, Item_Vis, "item_visible");
- begin
- if Item_Vis (Itm) = Curses_False then
- return False;
- else
- return True;
- end if;
- end Visible;
--------------------------------------------------------------------------------
- procedure Set_Options (Itm : in Item;
- Options : in Item_Option_Set)
- is
- function Set_Item_Opts (Itm : Item;
- Opt : C_Int) return C_Int;
- pragma Import (C, Set_Item_Opts, "set_item_opts");
-
- Opt : C_Int := IOS_2_CInt (Options);
- Res : Eti_Error;
- begin
- Res := Set_Item_Opts (Itm, Opt);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Options;
-
- procedure Switch_Options (Itm : in Item;
- Options : in Item_Option_Set;
- On : Boolean := True)
- is
- function Item_Opts_On (Itm : Item;
- Opt : C_Int) return C_Int;
- pragma Import (C, Item_Opts_On, "item_opts_on");
- function Item_Opts_Off (Itm : Item;
- Opt : C_Int) return C_Int;
- pragma Import (C, Item_Opts_Off, "item_opts_off");
-
- Opt : C_Int := IOS_2_CInt (Options);
- Err : Eti_Error;
- begin
- if On then
- Err := Item_Opts_On (Itm, Opt);
- else
- Err := Item_Opts_Off (Itm, Opt);
- end if;
- if Err /= E_Ok then
- Eti_Exception (Err);
- end if;
- end Switch_Options;
-
- procedure Get_Options (Itm : in Item;
- Options : out Item_Option_Set)
- is
- function Item_Opts (Itm : Item) return C_Int;
- pragma Import (C, Item_Opts, "item_opts");
-
- Res : C_Int := Item_Opts (Itm);
- begin
- Options := CInt_2_IOS (Res);
- end Get_Options;
-
- function Get_Options (Itm : Item := Null_Item) return Item_Option_Set
- is
- Ios : Item_Option_Set;
- begin
- Get_Options (Itm, Ios);
- return Ios;
- end Get_Options;
--------------------------------------------------------------------------------
- procedure Name (Itm : in Item;
- Name : out String)
- is
- function Itemname (Itm : Item) return chars_ptr;
- pragma Import (C, Itemname, "item_name");
- begin
- Fill_String (Itemname (Itm), Name);
- end Name;
-
- function Name (Itm : in Item) return String
- is
- function Itemname (Itm : Item) return chars_ptr;
- pragma Import (C, Itemname, "item_name");
- begin
- return Fill_String (Itemname (Itm));
- end Name;
-
- procedure Description (Itm : in Item;
- Description : out String)
- is
- function Descname (Itm : Item) return chars_ptr;
- pragma Import (C, Descname, "item_description");
- begin
- Fill_String (Descname (Itm), Description);
- end Description;
-
- function Description (Itm : in Item) return String
- is
- function Descname (Itm : Item) return chars_ptr;
- pragma Import (C, Descname, "item_description");
- begin
- return Fill_String (Descname (Itm));
- end Description;
--------------------------------------------------------------------------------
- procedure Set_Current (Men : in Menu;
- Itm : in Item)
- is
- function Set_Curr_Item (Men : Menu;
- Itm : Item) return C_Int;
- pragma Import (C, Set_Curr_Item, "set_current_item");
-
- Res : constant Eti_Error := Set_Curr_Item (Men, Itm);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Current;
-
- function Current (Men : Menu) return Item
- is
- function Curr_Item (Men : Menu) return Item;
- pragma Import (C, Curr_Item, "current_item");
-
- Res : constant Item := Curr_Item (Men);
- begin
- if Res = Null_Item then
- raise Menu_Exception;
- end if;
- return Res;
- end Current;
-
- procedure Set_Top_Row (Men : in Menu;
- Line : in Line_Position)
- is
- function Set_Toprow (Men : Menu;
- Line : C_Int) return C_Int;
- pragma Import (C, Set_Toprow, "set_top_row");
-
- Res : constant Eti_Error := Set_Toprow (Men, C_Int (Line));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Top_Row;
-
- function Top_Row (Men : Menu) return Line_Position
- is
- function Toprow (Men : Menu) return C_Int;
- pragma Import (C, Toprow, "top_row");
-
- Res : constant C_Int := Toprow (Men);
- begin
- if Res = Curses_Err then
- raise Menu_Exception;
- end if;
- return Line_Position (Res);
- end Top_Row;
-
- function Get_Index (Itm : Item) return Positive
- is
- function Get_Itemindex (Itm : Item) return C_Int;
- pragma Import (C, Get_Itemindex, "item_index");
-
- Res : constant C_Int := Get_Itemindex (Itm);
- begin
- if Res = Curses_Err then
- raise Menu_Exception;
- end if;
- return Positive (Natural (Res) + Positive'First);
- end Get_Index;
--------------------------------------------------------------------------------
- procedure Post (Men : in Menu;
- Post : in Boolean := True)
- is
- function M_Post (Men : Menu) return C_Int;
- pragma Import (C, M_Post, "post_menu");
- function M_Unpost (Men : Menu) return C_Int;
- pragma Import (C, M_Unpost, "unpost_menu");
-
- Res : Eti_Error;
- begin
- if Post then
- Res := M_Post (Men);
- else
- Res := M_Unpost (Men);
- end if;
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Post;
--------------------------------------------------------------------------------
- procedure Set_Options (Men : in Menu;
- Options : in Menu_Option_Set)
- is
- function Set_Menu_Opts (Men : Menu;
- Opt : C_Int) return C_Int;
- pragma Import (C, Set_Menu_Opts, "set_menu_opts");
-
- Opt : C_Int := MOS_2_CInt (Options);
- Res : Eti_Error;
- begin
- Res := Set_Menu_Opts (Men, Opt);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Options;
-
- procedure Switch_Options (Men : in Menu;
- Options : in Menu_Option_Set;
- On : in Boolean := True)
- is
- function Menu_Opts_On (Men : Menu;
- Opt : C_Int) return C_Int;
- pragma Import (C, Menu_Opts_On, "menu_opts_on");
- function Menu_Opts_Off (Men : Menu;
- Opt : C_Int) return C_Int;
- pragma Import (C, Menu_Opts_Off, "menu_opts_off");
-
- Opt : C_Int := MOS_2_CInt (Options);
- Err : Eti_Error;
- begin
- if On then
- Err := Menu_Opts_On (Men, Opt);
- else
- Err := Menu_Opts_Off (Men, Opt);
- end if;
- if Err /= E_Ok then
- Eti_Exception (Err);
- end if;
- end Switch_Options;
-
- procedure Get_Options (Men : in Menu;
- Options : out Menu_Option_Set)
- is
- function Menu_Opts (Men : Menu) return C_Int;
- pragma Import (C, Menu_Opts, "menu_opts");
-
- Res : C_Int := Menu_Opts (Men);
- begin
- Options := CInt_2_MOS (Res);
- end Get_Options;
-
- function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set
- is
- Mos : Menu_Option_Set;
- begin
- Get_Options (Men, Mos);
- return Mos;
- end Get_Options;
--------------------------------------------------------------------------------
- procedure Set_Window (Men : in Menu;
- Win : in Window)
- is
- function Set_Menu_Win (Men : Menu;
- Win : Window) return C_Int;
- pragma Import (C, Set_Menu_Win, "set_menu_win");
-
- Res : constant Eti_Error := Set_Menu_Win (Men, Win);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Window;
-
- function Get_Window (Men : Menu) return Window
- is
- function Menu_Win (Men : Menu) return Window;
- pragma Import (C, Menu_Win, "menu_win");
-
- W : constant Window := Menu_Win (Men);
- begin
- return W;
- end Get_Window;
-
- procedure Set_Sub_Window (Men : in Menu;
- Win : in Window)
- is
- function Set_Menu_Sub (Men : Menu;
- Win : Window) return C_Int;
- pragma Import (C, Set_Menu_Sub, "set_menu_sub");
-
- Res : constant Eti_Error := Set_Menu_Sub (Men, Win);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Sub_Window;
-
- function Get_Sub_Window (Men : Menu) return Window
- is
- function Menu_Sub (Men : Menu) return Window;
- pragma Import (C, Menu_Sub, "menu_sub");
-
- W : constant Window := Menu_Sub (Men);
- begin
- return W;
- end Get_Sub_Window;
-
- procedure Scale (Men : in Menu;
- Lines : out Line_Count;
- Columns : out Column_Count)
- is
- type C_Int_Access is access all C_Int;
- function M_Scale (Men : Menu;
- Yp, Xp : C_Int_Access) return C_Int;
- pragma Import (C, M_Scale, "scale_menu");
-
- X, Y : aliased C_Int;
- Res : constant Eti_Error := M_Scale (Men, Y'Access, X'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Lines := Line_Count (Y);
- Columns := Column_Count (X);
- end Scale;
--------------------------------------------------------------------------------
- procedure Position_Cursor (Men : Menu)
- is
- function Pos_Menu_Cursor (Men : Menu) return C_Int;
- pragma Import (C, Pos_Menu_Cursor, "pos_menu_cursor");
-
- Res : constant Eti_Error := Pos_Menu_Cursor (Men);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Position_Cursor;
-
--------------------------------------------------------------------------------
- procedure Set_Mark (Men : in Menu;
- Mark : in String)
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Set_Mark (Men : Menu;
- Mark : Char_Ptr) return C_Int;
- pragma Import (C, Set_Mark, "set_menu_mark");
-
- Txt : char_array (0 .. Mark'Length);
- Len : size_t;
- Res : Eti_Error;
- begin
- To_C (Mark, Txt, Len);
- Res := Set_Mark (Men, Txt (Txt'First)'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Mark;
-
- procedure Mark (Men : in Menu;
- Mark : out String)
- is
- function Get_Menu_Mark (Men : Menu) return chars_ptr;
- pragma Import (C, Get_Menu_Mark, "menu_mark");
- begin
- Fill_String (Get_Menu_Mark (Men), Mark);
- end Mark;
-
- function Mark (Men : Menu) return String
- is
- function Get_Menu_Mark (Men : Menu) return chars_ptr;
- pragma Import (C, Get_Menu_Mark, "menu_mark");
- begin
- return Fill_String (Get_Menu_Mark (Men));
- end Mark;
-
--------------------------------------------------------------------------------
- procedure Set_Foreground
- (Men : in Menu;
- Fore : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Menu_Fore (Men : Menu;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Menu_Fore, "set_menu_fore");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Fore);
- Res : constant Eti_Error := Set_Menu_Fore (Men, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Foreground;
-
- procedure Foreground (Men : in Menu;
- Fore : out Character_Attribute_Set)
- is
- function Menu_Fore (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Fore, "menu_fore");
- begin
- Fore := Chtype_To_AttrChar (Menu_Fore (Men)).Attr;
- end Foreground;
-
- procedure Foreground (Men : in Menu;
- Fore : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Menu_Fore (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Fore, "menu_fore");
- begin
- Fore := Chtype_To_AttrChar (Menu_Fore (Men)).Attr;
- Color := Chtype_To_AttrChar (Menu_Fore (Men)).Color;
- end Foreground;
-
- procedure Set_Background
- (Men : in Menu;
- Back : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Menu_Back (Men : Menu;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Menu_Back, "set_menu_back");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Back);
- Res : constant Eti_Error := Set_Menu_Back (Men, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Background;
-
- procedure Background (Men : in Menu;
- Back : out Character_Attribute_Set)
- is
- function Menu_Back (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Back, "menu_back");
- begin
- Back := Chtype_To_AttrChar (Menu_Back (Men)).Attr;
- end Background;
-
- procedure Background (Men : in Menu;
- Back : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Menu_Back (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Back, "menu_back");
- begin
- Back := Chtype_To_AttrChar (Menu_Back (Men)).Attr;
- Color := Chtype_To_AttrChar (Menu_Back (Men)).Color;
- end Background;
-
- procedure Set_Grey (Men : in Menu;
- Grey : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Menu_Grey (Men : Menu;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Menu_Grey, "set_menu_grey");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Grey);
-
- Res : constant Eti_Error := Set_Menu_Grey (Men, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Grey;
-
- procedure Grey (Men : in Menu;
- Grey : out Character_Attribute_Set)
- is
- function Menu_Grey (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Grey, "menu_grey");
- begin
- Grey := Chtype_To_AttrChar (Menu_Grey (Men)).Attr;
- end Grey;
-
- procedure Grey (Men : in Menu;
- Grey : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Menu_Grey (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Grey, "menu_grey");
- begin
- Grey := Chtype_To_AttrChar (Menu_Grey (Men)).Attr;
- Color := Chtype_To_AttrChar (Menu_Grey (Men)).Color;
- end Grey;
-
- procedure Set_Pad_Character (Men : in Menu;
- Pad : in Character := Space)
- is
- function Set_Menu_Pad (Men : Menu;
- Ch : C_Int) return C_Int;
- pragma Import (C, Set_Menu_Pad, "set_menu_pad");
-
- Res : constant Eti_Error := Set_Menu_Pad (Men,
- C_Int (Character'Pos (Pad)));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Pad_Character;
-
- procedure Pad_Character (Men : in Menu;
- Pad : out Character)
- is
- function Menu_Pad (Men : Menu) return C_Int;
- pragma Import (C, Menu_Pad, "menu_pad");
- begin
- Pad := Character'Val (Menu_Pad (Men));
- end Pad_Character;
--------------------------------------------------------------------------------
- procedure Set_Spacing (Men : in Menu;
- Descr : in Column_Position := 0;
- Row : in Line_Position := 0;
- Col : in Column_Position := 0)
- is
- function Set_Spacing (Men : Menu;
- D, R, C : C_Int) return C_Int;
- pragma Import (C, Set_Spacing, "set_menu_spacing");
-
- Res : constant Eti_Error := Set_Spacing (Men,
- C_Int (Descr),
- C_Int (Row),
- C_Int (Col));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Spacing;
-
- procedure Spacing (Men : in Menu;
- Descr : out Column_Position;
- Row : out Line_Position;
- Col : out Column_Position)
- is
- type C_Int_Access is access all C_Int;
- function Get_Spacing (Men : Menu;
- D, R, C : C_Int_Access) return C_Int;
- pragma Import (C, Get_Spacing, "menu_spacing");
-
- D, R, C : aliased C_Int;
- Res : constant Eti_Error := Get_Spacing (Men,
- D'Access,
- R'Access,
- C'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- else
- Descr := Column_Position (D);
- Row := Line_Position (R);
- Col := Column_Position (C);
- end if;
- end Spacing;
--------------------------------------------------------------------------------
- function Set_Pattern (Men : Menu;
- Text : String) return Boolean
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Set_Pattern (Men : Menu;
- Pattern : Char_Ptr) return C_Int;
- pragma Import (C, Set_Pattern, "set_menu_pattern");
-
- S : char_array (0 .. Text'Length);
- L : size_t;
- Res : Eti_Error;
- begin
- To_C (Text, S, L);
- Res := Set_Pattern (Men, S (S'First)'Access);
- case Res is
- when E_No_Match => return False;
- when E_Ok => return True;
- when others =>
- Eti_Exception (Res);
- return False;
- end case;
- end Set_Pattern;
-
- procedure Pattern (Men : in Menu;
- Text : out String)
- is
- function Get_Pattern (Men : Menu) return chars_ptr;
- pragma Import (C, Get_Pattern, "menu_pattern");
- begin
- Fill_String (Get_Pattern (Men), Text);
- end Pattern;
--------------------------------------------------------------------------------
- procedure Set_Format (Men : in Menu;
- Lines : in Line_Count;
- Columns : in Column_Count)
- is
- function Set_Menu_Fmt (Men : Menu;
- Lin : C_Int;
- Col : C_Int) return C_Int;
- pragma Import (C, Set_Menu_Fmt, "set_menu_format");
-
- Res : constant Eti_Error := Set_Menu_Fmt (Men,
- C_Int (Lines),
- C_Int (Columns));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Format;
-
- procedure Format (Men : in Menu;
- Lines : out Line_Count;
- Columns : out Column_Count)
- is
- type C_Int_Access is access all C_Int;
- function Menu_Fmt (Men : Menu;
- Y, X : C_Int_Access) return C_Int;
- pragma Import (C, Menu_Fmt, "menu_format");
-
- L, C : aliased C_Int;
- Res : constant Eti_Error := Menu_Fmt (Men, L'Access, C'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- else
- Lines := Line_Count (L);
- Columns := Column_Count (C);
- end if;
- end Format;
--------------------------------------------------------------------------------
- procedure Set_Item_Init_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function)
- is
- function Set_Item_Init (Men : Menu;
- Proc : Menu_Hook_Function) return C_Int;
- pragma Import (C, Set_Item_Init, "set_item_init");
-
- Res : constant Eti_Error := Set_Item_Init (Men, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Item_Init_Hook;
-
- procedure Set_Item_Term_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function)
- is
- function Set_Item_Term (Men : Menu;
- Proc : Menu_Hook_Function) return C_Int;
- pragma Import (C, Set_Item_Term, "set_item_term");
-
- Res : constant Eti_Error := Set_Item_Term (Men, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Item_Term_Hook;
-
- procedure Set_Menu_Init_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function)
- is
- function Set_Menu_Init (Men : Menu;
- Proc : Menu_Hook_Function) return C_Int;
- pragma Import (C, Set_Menu_Init, "set_menu_init");
-
- Res : constant Eti_Error := Set_Menu_Init (Men, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Menu_Init_Hook;
-
- procedure Set_Menu_Term_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function)
- is
- function Set_Menu_Term (Men : Menu;
- Proc : Menu_Hook_Function) return C_Int;
- pragma Import (C, Set_Menu_Term, "set_menu_term");
-
- Res : constant Eti_Error := Set_Menu_Term (Men, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Menu_Term_Hook;
-
- function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function
- is
- function Item_Init (Men : Menu) return Menu_Hook_Function;
- pragma Import (C, Item_Init, "item_init");
- begin
- return Item_Init (Men);
- end Get_Item_Init_Hook;
-
- function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function
- is
- function Item_Term (Men : Menu) return Menu_Hook_Function;
- pragma Import (C, Item_Term, "item_term");
- begin
- return Item_Term (Men);
- end Get_Item_Term_Hook;
-
- function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function
- is
- function Menu_Init (Men : Menu) return Menu_Hook_Function;
- pragma Import (C, Menu_Init, "menu_init");
- begin
- return Menu_Init (Men);
- end Get_Menu_Init_Hook;
-
- function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function
- is
- function Menu_Term (Men : Menu) return Menu_Hook_Function;
- pragma Import (C, Menu_Term, "menu_term");
- begin
- return Menu_Term (Men);
- end Get_Menu_Term_Hook;
--------------------------------------------------------------------------------
- procedure Redefine (Men : in Menu;
- Items : in Item_Array_Access)
- is
- function Set_Items (Men : Menu;
- Items : System.Address) return C_Int;
- pragma Import (C, Set_Items, "set_menu_items");
-
- Res : Eti_Error;
- begin
- pragma Assert (Items (Items'Last) = Null_Item);
- if Items (Items'Last) /= Null_Item then
- raise Menu_Exception;
- else
- Res := Set_Items (Men, Items.all'Address);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- end Redefine;
-
- function Item_Count (Men : Menu) return Natural
- is
- function Count (Men : Menu) return C_Int;
- pragma Import (C, Count, "item_count");
- begin
- return Natural (Count (Men));
- end Item_Count;
-
- function Items (Men : Menu;
- Index : Positive) return Item
- is
- use I_Array;
-
- function C_Mitems (Men : Menu) return Pointer;
- pragma Import (C, C_Mitems, "menu_items");
-
- P : Pointer := C_Mitems (Men);
- begin
- if P = null or else Index not in 1 .. Item_Count (Men) then
- raise Menu_Exception;
- else
- P := P + ptrdiff_t (C_Int (Index) - 1);
- return P.all;
- end if;
- end Items;
-
--------------------------------------------------------------------------------
- function Create (Items : Item_Array_Access) return Menu
- is
- function Newmenu (Items : System.Address) return Menu;
- pragma Import (C, Newmenu, "new_menu");
-
- M : Menu;
- begin
- pragma Assert (Items (Items'Last) = Null_Item);
- if Items (Items'Last) /= Null_Item then
- raise Menu_Exception;
- else
- M := Newmenu (Items.all'Address);
- if M = Null_Menu then
- raise Menu_Exception;
- end if;
- return M;
- end if;
- end Create;
-
- procedure Delete (Men : in out Menu)
- is
- function Free (Men : Menu) return C_Int;
- pragma Import (C, Free, "free_menu");
-
- Res : constant Eti_Error := Free (Men);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Men := Null_Menu;
- end Delete;
-
-------------------------------------------------------------------------------
- function Driver (Men : Menu;
- Key : Key_Code) return Driver_Result
- is
- function Driver (Men : Menu;
- Key : C_Int) return C_Int;
- pragma Import (C, Driver, "menu_driver");
-
- R : Eti_Error := Driver (Men, C_Int (Key));
- begin
- if R /= E_Ok then
- case R is
- when E_Unknown_Command => return Unknown_Request;
- when E_No_Match => return No_Match;
- when E_Request_Denied |
- E_Not_Selectable => return Request_Denied;
- when others =>
- Eti_Exception (R);
- end case;
- end if;
- return Menu_Ok;
- end Driver;
-
- procedure Free (IA : in out Item_Array_Access;
- Free_Items : in Boolean := False)
- is
- procedure Release is new Ada.Unchecked_Deallocation
- (Item_Array, Item_Array_Access);
- begin
- if IA /= null and then Free_Items then
- for I in IA'First .. (IA'Last - 1) loop
- if (IA (I) /= Null_Item) then
- Delete (IA (I));
- end if;
- end loop;
- end if;
- Release (IA);
- end Free;
-
--------------------------------------------------------------------------------
- function Default_Menu_Options return Menu_Option_Set
- is
- begin
- return Get_Options (Null_Menu);
- end Default_Menu_Options;
-
- function Default_Item_Options return Item_Option_Set
- is
- begin
- return Get_Options (Null_Item);
- end Default_Item_Options;
--------------------------------------------------------------------------------
-
-end Terminal_Interface.Curses.Menus;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-mouse.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-mouse.adb
deleted file mode 100644
index 0cf3c55..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-mouse.adb
+++ /dev/null
@@ -1,214 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Mouse --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with System;
-
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Interfaces.C; use Interfaces.C;
-use Interfaces;
-
-package body Terminal_Interface.Curses.Mouse is
-
- use type System.Bit_Order;
- use type Interfaces.C.int;
-
- function Has_Mouse return Boolean
- is
- function Mouse_Avail return C_Int;
- pragma Import (C, Mouse_Avail, "_nc_has_mouse");
- begin
- if Has_Key (Key_Mouse) or else Mouse_Avail /= 0 then
- return True;
- else
- return False;
- end if;
- end Has_Mouse;
-
- function Get_Mouse return Mouse_Event
- is
- type Event_Access is access all Mouse_Event;
-
- function Getmouse (Ev : Event_Access) return C_Int;
- pragma Import (C, Getmouse, "getmouse");
-
- Event : aliased Mouse_Event;
- begin
- if Getmouse (Event'Access) = Curses_Err then
- raise Curses_Exception;
- end if;
- return Event;
- end Get_Mouse;
-
- procedure Register_Reportable_Event (Button : in Mouse_Button;
- State : in Button_State;
- Mask : in out Event_Mask)
- is
- Button_Nr : constant Natural := Mouse_Button'Pos (Button);
- State_Nr : constant Natural := Button_State'Pos (State);
- begin
- if Button in Modifier_Keys and then State /= Pressed then
- raise Curses_Exception;
- else
- if Button in Real_Buttons then
- Mask := Mask or ((2 ** (6 * Button_Nr)) ** State_Nr);
- else
- Mask := Mask or (BUTTON_CTRL ** (Button_Nr - 4));
- end if;
- end if;
- end Register_Reportable_Event;
-
- procedure Register_Reportable_Events (Button : in Mouse_Button;
- State : in Button_States;
- Mask : in out Event_Mask)
- is
- begin
- for S in Button_States'Range loop
- if State (S) then
- Register_Reportable_Event (Button, S, Mask);
- end if;
- end loop;
- end Register_Reportable_Events;
-
- function Start_Mouse (Mask : Event_Mask := All_Events)
- return Event_Mask
- is
- function MMask (M : Event_Mask;
- O : access Event_Mask) return Event_Mask;
- pragma Import (C, MMask, "mousemask");
- R : Event_Mask;
- Old : aliased Event_Mask;
- begin
- R := MMask (Mask, Old'Access);
- return Old;
- end Start_Mouse;
-
- procedure End_Mouse (Mask : in Event_Mask := No_Events)
- is
- begin
- null;
- end End_Mouse;
-
- procedure Dispatch_Event (Mask : in Event_Mask;
- Button : out Mouse_Button;
- State : out Button_State);
-
- procedure Dispatch_Event (Mask : in Event_Mask;
- Button : out Mouse_Button;
- State : out Button_State) is
- L : Event_Mask;
- begin
- Button := Alt; -- preset to non real button;
- if (Mask and BUTTON1_EVENTS) /= 0 then
- Button := Left;
- elsif (Mask and BUTTON2_EVENTS) /= 0 then
- Button := Middle;
- elsif (Mask and BUTTON3_EVENTS) /= 0 then
- Button := Right;
- elsif (Mask and BUTTON4_EVENTS) /= 0 then
- Button := Button4;
- end if;
- if Button in Real_Buttons then
- L := 2 ** (6 * Mouse_Button'Pos (Button));
- for I in Button_State'Range loop
- if (Mask and L) /= 0 then
- State := I;
- exit;
- end if;
- L := 2 * L;
- end loop;
- else
- State := Pressed;
- if (Mask and BUTTON_CTRL) /= 0 then
- Button := Control;
- elsif (Mask and BUTTON_SHIFT) /= 0 then
- Button := Shift;
- elsif (Mask and BUTTON_ALT) /= 0 then
- Button := Alt;
- end if;
- end if;
- end Dispatch_Event;
-
- procedure Get_Event (Event : in Mouse_Event;
- Y : out Line_Position;
- X : out Column_Position;
- Button : out Mouse_Button;
- State : out Button_State)
- is
- Mask : constant Event_Mask := Event.Bstate;
- begin
- X := Column_Position (Event.X);
- Y := Line_Position (Event.Y);
- Dispatch_Event (Mask, Button, State);
- end Get_Event;
-
- procedure Unget_Mouse (Event : in Mouse_Event)
- is
- function Ungetmouse (Ev : Mouse_Event) return C_Int;
- pragma Import (C, Ungetmouse, "ungetmouse");
- begin
- if Ungetmouse (Event) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Unget_Mouse;
-
- function Enclosed_In_Window (Win : Window := Standard_Window;
- Event : Mouse_Event) return Boolean
- is
- function Wenclose (Win : Window; Y : C_Int; X : C_Int)
- return Curses_Bool;
- pragma Import (C, Wenclose, "wenclose");
- begin
- if Wenclose (Win, C_Int (Event.Y), C_Int (Event.X))
- = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Enclosed_In_Window;
-
- function Mouse_Interval (Msec : Natural := 200) return Natural
- is
- function Mouseinterval (Msec : C_Int) return C_Int;
- pragma Import (C, Mouseinterval, "mouseinterval");
- begin
- return Natural (Mouseinterval (C_Int (Msec)));
- end Mouse_Interval;
-
-end Terminal_Interface.Curses.Mouse;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb
deleted file mode 100644
index 1e18a0d..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb
+++ /dev/null
@@ -1,78 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Panels.User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux;
-use Terminal_Interface.Curses.Aux;
-with Terminal_Interface.Curses.Panels;
-use Terminal_Interface.Curses.Panels;
-
-package body Terminal_Interface.Curses.Panels.User_Data is
-
- use type Interfaces.C.int;
-
- procedure Set_User_Data (Pan : in Panel;
- Data : in User_Access)
- is
- function Set_Panel_Userptr (Pan : Panel;
- Addr : User_Access) return C_Int;
- pragma Import (C, Set_Panel_Userptr, "set_panel_userptr");
- begin
- if Set_Panel_Userptr (Pan, Data) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Set_User_Data;
-
- function Get_User_Data (Pan : in Panel) return User_Access
- is
- function Panel_Userptr (Pan : Panel) return User_Access;
- pragma Import (C, Panel_Userptr, "panel_userptr");
- begin
- return Panel_Userptr (Pan);
- end Get_User_Data;
-
- procedure Get_User_Data (Pan : in Panel;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Pan);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Panels.User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb
deleted file mode 100644
index ebbaf2a..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb
+++ /dev/null
@@ -1,164 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Panels --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Interfaces.C;
-
-package body Terminal_Interface.Curses.Panels is
-
- use type Interfaces.C.int;
-
- function Create (Win : Window) return Panel
- is
- function Newpanel (Win : Window) return Panel;
- pragma Import (C, Newpanel, "new_panel");
-
- Pan : Panel;
- begin
- Pan := Newpanel (Win);
- if Pan = Null_Panel then
- raise Panel_Exception;
- end if;
- return Pan;
- end Create;
-
- procedure Bottom (Pan : in Panel)
- is
- function Bottompanel (Pan : Panel) return C_Int;
- pragma Import (C, Bottompanel, "bottom_panel");
- begin
- if Bottompanel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Bottom;
-
- procedure Top (Pan : in Panel)
- is
- function Toppanel (Pan : Panel) return C_Int;
- pragma Import (C, Toppanel, "top_panel");
- begin
- if Toppanel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Top;
-
- procedure Show (Pan : in Panel)
- is
- function Showpanel (Pan : Panel) return C_Int;
- pragma Import (C, Showpanel, "show_panel");
- begin
- if Showpanel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Show;
-
- procedure Hide (Pan : in Panel)
- is
- function Hidepanel (Pan : Panel) return C_Int;
- pragma Import (C, Hidepanel, "hide_panel");
- begin
- if Hidepanel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Hide;
-
- function Get_Window (Pan : Panel) return Window
- is
- function Panel_Win (Pan : Panel) return Window;
- pragma Import (C, Panel_Win, "panel_window");
-
- Win : Window := Panel_Win (Pan);
- begin
- if Win = Null_Window then
- raise Panel_Exception;
- end if;
- return Win;
- end Get_Window;
-
- procedure Replace (Pan : in Panel;
- Win : in Window)
- is
- function Replace_Pan (Pan : Panel;
- Win : Window) return C_Int;
- pragma Import (C, Replace_Pan, "replace_panel");
- begin
- if Replace_Pan (Pan, Win) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Replace;
-
- procedure Move (Pan : in Panel;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Move (Pan : Panel;
- Line : C_Int;
- Column : C_Int) return C_Int;
- pragma Import (C, Move, "move_panel");
- begin
- if Move (Pan, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Move;
-
- function Is_Hidden (Pan : Panel) return Boolean
- is
- function Panel_Hidden (Pan : Panel) return C_Int;
- pragma Import (C, Panel_Hidden, "panel_hidden");
- begin
- if Panel_Hidden (Pan) = Curses_False then
- return False;
- else
- return True;
- end if;
- end Is_Hidden;
-
- procedure Delete (Pan : in out Panel)
- is
- function Del_Panel (Pan : Panel) return C_Int;
- pragma Import (C, Del_Panel, "del_panel");
- begin
- if Del_Panel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- Pan := Null_Panel;
- end Delete;
-
-end Terminal_Interface.Curses.Panels;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb
deleted file mode 100644
index 20b7609..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb
+++ /dev/null
@@ -1,128 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Aux --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Text_IO.Aux is
-
- procedure Put_Buf
- (Win : in Window;
- Buf : in String;
- Width : in Field;
- Signal : in Boolean := True;
- Ljust : in Boolean := False)
- is
- L : Field;
- Len : Field;
- W : Field := Width;
- LC : Line_Count;
- CC : Column_Count;
- Y : Line_Position;
- X : Column_Position;
-
- procedure Output (From, To : Field);
-
- procedure Output (From, To : Field)
- is
- begin
- if Len > 0 then
- if W = 0 then
- W := Len;
- end if;
- if Len > W then
- -- LRM A10.6 (7) says this
- W := Len;
- end if;
-
- pragma Assert (Len <= W);
- Get_Size (Win, LC, CC);
- if Column_Count (Len) > CC then
- if Signal then
- raise Layout_Error;
- else
- return;
- end if;
- else
- if Len < W and then not Ljust then
- declare
- Filler : constant String (1 .. (W - Len))
- := (others => ' ');
- begin
- Put (Win, Filler);
- end;
- end if;
- Get_Cursor_Position (Win, Y, X);
- if (X + Column_Position (Len)) > CC then
- New_Line (Win);
- end if;
- Put (Win, Buf (From .. To));
- if Len < W and then Ljust then
- declare
- Filler : constant String (1 .. (W - Len))
- := (others => ' ');
- begin
- Put (Win, Filler);
- end;
- end if;
- end if;
- end if;
- end Output;
-
- begin
- pragma Assert (Win /= Null_Window);
- if Ljust then
- L := 1;
- for I in 1 .. Buf'Length loop
- exit when Buf (L) = ' ';
- L := L + 1;
- end loop;
- Len := L - 1;
- Output (1, Len);
- else -- input buffer is not left justified
- L := Buf'Length;
- for I in 1 .. Buf'Length loop
- exit when Buf (L) = ' ';
- L := L - 1;
- end loop;
- Len := Buf'Length - L;
- Output (L + 1, Buf'Length);
- end if;
- end Put_Buf;
-
-end Terminal_Interface.Curses.Text_IO.Aux;
-
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads
deleted file mode 100644
index 0148053..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads
+++ /dev/null
@@ -1,55 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Aux --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-private package Terminal_Interface.Curses.Text_IO.Aux is
- -- pragma Preelaborate (Aux);
-
- -- This routine is called from the Text_IO output routines for numeric
- -- and enumeration types.
- --
- procedure Put_Buf
- (Win : in Window; -- The output window
- Buf : in String; -- The buffer containing the text
- Width : in Field; -- The width of the output field
- Signal : in Boolean := True; -- If true, we raise Layout_Error
- Ljust : in Boolean := False); -- The Buf is left justified
-
-end Terminal_Interface.Curses.Text_IO.Aux;
-
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb
deleted file mode 100644
index 2ed8b56..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb
+++ /dev/null
@@ -1,73 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Complex_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Text_IO.Float_IO;
-
-package body Terminal_Interface.Curses.Text_IO.Complex_IO is
-
- package FIO is new
- Terminal_Interface.Curses.Text_IO.Float_IO (Complex_Types.Real'Base);
-
- procedure Put
- (Win : in Window;
- Item : in Complex;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- begin
- Put (Win, '(');
- FIO.Put (Win, Item.Re, Fore, Aft, Exp);
- Put (Win, ',');
- FIO.Put (Win, Item.Im, Fore, Aft, Exp);
- Put (Win, ')');
- end Put;
-
- procedure Put
- (Item : in Complex;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- begin
- Put (Get_Window, Item, Fore, Aft, Exp);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Complex_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads
deleted file mode 100644
index c83a005..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads
+++ /dev/null
@@ -1,70 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Complex_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Numerics.Generic_Complex_Types;
-
-generic
- with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (<>);
-
-package Terminal_Interface.Curses.Text_IO.Complex_IO is
-
- use Complex_Types;
-
- Default_Fore : Field := 2;
- Default_Aft : Field := Real'Digits - 1;
- Default_Exp : Field := 3;
-
- procedure Put
- (Win : in Window;
- Item : in Complex;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
- procedure Put
- (Item : in Complex;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Complex_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb
deleted file mode 100644
index a9cbbce..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb
+++ /dev/null
@@ -1,75 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Decimal_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Decimal_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package DIO is new Ada.Text_IO.Decimal_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- Buf : String (1 .. Field'Last);
- Len : Field := Fore + 1 + Aft;
- begin
- if Exp > 0 then
- Len := Len + 1 + Exp;
- end if;
- DIO.Put (Buf, Item, Aft, Exp);
- Aux.Put_Buf (Win, Buf, Len, False);
- end Put;
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp) is
- begin
- Put (Get_Window, Item, Fore, Aft, Exp);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Decimal_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads
deleted file mode 100644
index 73d243e..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads
+++ /dev/null
@@ -1,66 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Decimal_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is delta <> digits <>;
-
-package Terminal_Interface.Curses.Text_IO.Decimal_IO is
-
- Default_Fore : Field := Num'Fore;
- Default_Aft : Field := Num'Aft;
- Default_Exp : Field := 0;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Decimal_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb
deleted file mode 100644
index 5bf1332..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb
+++ /dev/null
@@ -1,80 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Enumeration_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Ada.Characters.Handling; use Ada.Characters.Handling;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Enumeration_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package EIO is new Ada.Text_IO.Enumeration_IO (Enum);
-
- procedure Put
- (Win : in Window;
- Item : in Enum;
- Width : in Field := Default_Width;
- Set : in Type_Set := Default_Setting)
- is
- Buf : String (1 .. Field'Last);
- Tset : Ada.Text_IO.Type_Set;
- begin
- if Set /= Mixed_Case then
- Tset := Ada.Text_IO.Type_Set'Val (Type_Set'Pos (Set));
- else
- Tset := Ada.Text_IO.Lower_Case;
- end if;
- EIO.Put (Buf, Item, Tset);
- if Set = Mixed_Case then
- Buf (Buf'First) := To_Upper (Buf (Buf'First));
- end if;
- Aux.Put_Buf (Win, Buf, Width, True, True);
- end Put;
-
- procedure Put
- (Item : in Enum;
- Width : in Field := Default_Width;
- Set : in Type_Set := Default_Setting)
- is
- begin
- Put (Get_Window, Item, Width, Set);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Enumeration_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads
deleted file mode 100644
index 86f2173..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads
+++ /dev/null
@@ -1,63 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Enumeration_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Enum is (<>);
-
-package Terminal_Interface.Curses.Text_IO.Enumeration_IO is
-
- Default_Width : Field := 0;
- Default_Setting : Type_Set := Mixed_Case;
-
- procedure Put
- (Win : in Window;
- Item : in Enum;
- Width : in Field := Default_Width;
- Set : in Type_Set := Default_Setting);
-
- procedure Put
- (Item : in Enum;
- Width : in Field := Default_Width;
- Set : in Type_Set := Default_Setting);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Enumeration_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb
deleted file mode 100644
index 0bd26fa..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb
+++ /dev/null
@@ -1,75 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Fixed_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Fixed_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package FIXIO is new Ada.Text_IO.Fixed_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- Buf : String (1 .. Field'Last);
- Len : Field := Fore + 1 + Aft;
- begin
- if Exp > 0 then
- Len := Len + 1 + Exp;
- end if;
- FIXIO.Put (Buf, Item, Aft, Exp);
- Aux.Put_Buf (Win, Buf, Len, False);
- end Put;
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp) is
- begin
- Put (Get_Window, Item, Fore, Aft, Exp);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Fixed_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads
deleted file mode 100644
index 83c5a16..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads
+++ /dev/null
@@ -1,66 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Fixed_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is delta <>;
-
-package Terminal_Interface.Curses.Text_IO.Fixed_IO is
-
- Default_Fore : Field := Num'Fore;
- Default_Aft : Field := Num'Aft;
- Default_Exp : Field := 0;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Fixed_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb
deleted file mode 100644
index 9b24daa..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb
+++ /dev/null
@@ -1,76 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Float_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Float_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package FIO is new Ada.Text_IO.Float_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- Buf : String (1 .. Field'Last);
- Len : Field := Fore + 1 + Aft;
- begin
- if Exp > 0 then
- Len := Len + 1 + Exp;
- end if;
- FIO.Put (Buf, Item, Aft, Exp);
- Aux.Put_Buf (Win, Buf, Len, False);
- end Put;
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- begin
- Put (Get_Window, Item, Fore, Aft, Exp);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Float_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads
deleted file mode 100644
index 01fa996..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads
+++ /dev/null
@@ -1,66 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Float_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is digits <>;
-
-package Terminal_Interface.Curses.Text_IO.Float_IO is
-
- Default_Fore : Field := 2;
- Default_Aft : Field := Num'Digits - 1;
- Default_Exp : Field := 3;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Float_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb
deleted file mode 100644
index b7bd495..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb
+++ /dev/null
@@ -1,70 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Integer_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Integer_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package IIO is new Ada.Text_IO.Integer_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base)
- is
- Buf : String (1 .. Field'Last);
- begin
- IIO.Put (Buf, Item, Base);
- Aux.Put_Buf (Win, Buf, Width);
- end Put;
-
- procedure Put
- (Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base)
- is
- begin
- Put (Get_Window, Item, Width, Base);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Integer_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads
deleted file mode 100644
index a4e430e..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads
+++ /dev/null
@@ -1,63 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Integer_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is range <>;
-
-package Terminal_Interface.Curses.Text_IO.Integer_IO is
-
- Default_Width : Field := Num'Width;
- Default_Base : Number_Base := 10;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base);
-
- procedure Put
- (Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Integer_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb
deleted file mode 100644
index aff0666..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb
+++ /dev/null
@@ -1,70 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Modular_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Modular_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package MIO is new Ada.Text_IO.Modular_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base)
- is
- Buf : String (1 .. Field'Last);
- begin
- MIO.Put (Buf, Item, Base);
- Aux.Put_Buf (Win, Buf, Width);
- end Put;
-
- procedure Put
- (Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base)
- is
- begin
- Put (Get_Window, Item, Width, Base);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Modular_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads
deleted file mode 100644
index 9033f7f..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads
+++ /dev/null
@@ -1,63 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Modular_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is mod <>;
-
-package Terminal_Interface.Curses.Text_IO.Modular_IO is
-
- Default_Width : Field := Num'Width;
- Default_Base : Number_Base := 10;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base);
-
- procedure Put
- (Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Modular_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.adb
deleted file mode 100644
index ed7a4c8..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.adb
+++ /dev/null
@@ -1,336 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Text_IO is
-
- Default_Window : Window := Null_Window;
-
- procedure Set_Window (Win : in Window)
- is
- begin
- Default_Window := Win;
- end Set_Window;
-
- function Get_Window return Window
- is
- begin
- if Default_Window = Null_Window then
- return Standard_Window;
- else
- return Default_Window;
- end if;
- end Get_Window;
- pragma Inline (Get_Window);
-
- procedure Flush (Win : in Window)
- is
- begin
- Refresh (Win);
- end Flush;
-
- procedure Flush
- is
- begin
- Flush (Get_Window);
- end Flush;
-
- --------------------------------------------
- -- Specification of line and page lengths --
- --------------------------------------------
-
- -- There are no set routines in this package. I assume, that you allocate
- -- the window with an appropriate size.
- -- A scroll-window is interpreted as an page with unbounded page length,
- -- i.e. it returns the conventional 0 as page length.
-
- function Line_Length (Win : in Window) return Count
- is
- N_Lines : Line_Count;
- N_Cols : Column_Count;
- begin
- Get_Size (Win, N_Lines, N_Cols);
- if Natural (N_Cols) > Natural (Count'Last) then
- raise Layout_Error;
- end if;
- return Count (N_Cols);
- end Line_Length;
-
- function Line_Length return Count
- is
- begin
- return Line_Length (Get_Window);
- end Line_Length;
-
- function Page_Length (Win : in Window) return Count
- is
- N_Lines : Line_Count;
- N_Cols : Column_Count;
- begin
- if Scrolling_Allowed (Win) then
- return 0;
- else
- Get_Size (Win, N_Lines, N_Cols);
- if Natural (N_Lines) > Natural (Count'Last) then
- raise Layout_Error;
- end if;
- return Count (N_Lines);
- end if;
- end Page_Length;
-
- function Page_Length return Count
- is
- begin
- return Page_Length (Get_Window);
- end Page_Length;
-
- ------------------------------------
- -- Column, Line, and Page Control --
- ------------------------------------
- procedure New_Line (Win : in Window; Spacing : in Positive_Count := 1)
- is
- P_Size : constant Count := Page_Length (Win);
- begin
- if Spacing not in Positive_Count then
- raise Constraint_Error;
- end if;
-
- for I in 1 .. Spacing loop
- if P_Size > 0 and then Line (Win) >= P_Size then
- New_Page (Win);
- else
- Add (Win, ASCII.LF);
- end if;
- end loop;
- end New_Line;
-
- procedure New_Line (Spacing : in Positive_Count := 1)
- is
- begin
- New_Line (Get_Window, Spacing);
- end New_Line;
-
- procedure New_Page (Win : in Window)
- is
- begin
- Clear (Win);
- end New_Page;
-
- procedure New_Page
- is
- begin
- New_Page (Get_Window);
- end New_Page;
-
- procedure Set_Col (Win : in Window; To : in Positive_Count)
- is
- Y : Line_Position;
- X1 : Column_Position;
- X2 : Column_Position;
- N : Natural;
- begin
- if To not in Positive_Count then
- raise Constraint_Error;
- end if;
-
- Get_Cursor_Position (Win, Y, X1);
- N := Natural (To); N := N - 1;
- X2 := Column_Position (N);
- if X1 > X2 then
- New_Line (Win, 1);
- X1 := 0;
- end if;
- if X1 < X2 then
- declare
- Filler : constant String (Integer (X1) .. (Integer (X2) - 1))
- := (others => ' ');
- begin
- Put (Win, Filler);
- end;
- end if;
- end Set_Col;
-
- procedure Set_Col (To : in Positive_Count)
- is
- begin
- Set_Col (Get_Window, To);
- end Set_Col;
-
- procedure Set_Line (Win : in Window; To : in Positive_Count)
- is
- Y1 : Line_Position;
- Y2 : Line_Position;
- X : Column_Position;
- N : Natural;
- begin
- if To not in Positive_Count then
- raise Constraint_Error;
- end if;
-
- Get_Cursor_Position (Win, Y1, X);
- N := Natural (To); N := N - 1;
- Y2 := Line_Position (N);
- if Y2 < Y1 then
- New_Page (Win);
- Y1 := 0;
- end if;
- if Y1 < Y2 then
- New_Line (Win, Positive_Count (Y2 - Y1));
- end if;
- end Set_Line;
-
- procedure Set_Line (To : in Positive_Count)
- is
- begin
- Set_Line (Get_Window, To);
- end Set_Line;
-
- function Col (Win : in Window) return Positive_Count
- is
- Y : Line_Position;
- X : Column_Position;
- N : Natural;
- begin
- Get_Cursor_Position (Win, Y, X);
- N := Natural (X); N := N + 1;
- if N > Natural (Count'Last) then
- raise Layout_Error;
- end if;
- return Positive_Count (N);
- end Col;
-
- function Col return Positive_Count
- is
- begin
- return Col (Get_Window);
- end Col;
-
- function Line (Win : in Window) return Positive_Count
- is
- Y : Line_Position;
- X : Column_Position;
- N : Natural;
- begin
- Get_Cursor_Position (Win, Y, X);
- N := Natural (Y); N := N + 1;
- if N > Natural (Count'Last) then
- raise Layout_Error;
- end if;
- return Positive_Count (N);
- end Line;
-
- function Line return Positive_Count
- is
- begin
- return Line (Get_Window);
- end Line;
-
- -----------------------
- -- Characters Output --
- -----------------------
-
- procedure Put (Win : in Window; Item : in Character)
- is
- P_Size : constant Count := Page_Length (Win);
- Y : Line_Position;
- X : Column_Position;
- L : Line_Count;
- C : Column_Count;
- begin
- if P_Size > 0 then
- Get_Cursor_Position (Win, Y, X);
- Get_Size (Win, L, C);
- if (Y + 1) = L and then (X + 1) = C then
- New_Page (Win);
- end if;
- end if;
- Add (Win, Item);
- end Put;
-
- procedure Put (Item : in Character)
- is
- begin
- Put (Get_Window, Item);
- end Put;
-
- --------------------
- -- Strings-Output --
- --------------------
-
- procedure Put (Win : in Window; Item : in String)
- is
- P_Size : constant Count := Page_Length (Win);
- Y : Line_Position;
- X : Column_Position;
- L : Line_Count;
- C : Column_Count;
- begin
- if P_Size > 0 then
- Get_Cursor_Position (Win, Y, X);
- Get_Size (Win, L, C);
- if (Y + 1) = L and then (X + 1 + Item'Length) >= C then
- New_Page (Win);
- end if;
- end if;
- Add (Win, Item);
- end Put;
-
- procedure Put (Item : in String)
- is
- begin
- Put (Get_Window, Item);
- end Put;
-
- procedure Put_Line
- (Win : in Window;
- Item : in String)
- is
- begin
- Put (Win, Item);
- New_Line (Win, 1);
- end Put_Line;
-
- procedure Put_Line
- (Item : in String)
- is
- begin
- Put_Line (Get_Window, Item);
- end Put_Line;
-
-end Terminal_Interface.Curses.Text_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads
deleted file mode 100644
index fa659a8..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads
+++ /dev/null
@@ -1,136 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Ada.IO_Exceptions;
-
-package Terminal_Interface.Curses.Text_IO is
-
- use type Ada.Text_IO.Count;
- subtype Count is Ada.Text_IO.Count;
- subtype Positive_Count is Count range 1 .. Count'Last;
-
- subtype Field is Ada.Text_IO.Field;
- subtype Number_Base is Integer range 2 .. 16;
-
- type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
-
- -- For most of the routines you will see a version without a Window
- -- type parameter. They will operate on a default window, which can
- -- be set by the user. It is initially equal to Standard_Window.
-
- procedure Set_Window (Win : in Window);
- -- Set Win as the default window
-
- function Get_Window return Window;
- -- Get the current default window
-
- procedure Flush (Win : in Window);
- procedure Flush;
-
- --------------------------------------------
- -- Specification of line and page lengths --
- --------------------------------------------
-
- -- There are no set routines in this package. I assume, that you allocate
- -- the window with an appropriate size.
- -- A scroll-window is interpreted as an page with unbounded page length,
- -- i.e. it returns the conventional 0 as page length.
-
- function Line_Length (Win : in Window) return Count;
- function Line_Length return Count;
-
- function Page_Length (Win : in Window) return Count;
- function Page_Length return Count;
-
- ------------------------------------
- -- Column, Line, and Page Control --
- ------------------------------------
- procedure New_Line (Win : in Window; Spacing : in Positive_Count := 1);
- procedure New_Line (Spacing : in Positive_Count := 1);
-
- procedure New_Page (Win : in Window);
- procedure New_Page;
-
- procedure Set_Col (Win : in Window; To : in Positive_Count);
- procedure Set_Col (To : in Positive_Count);
-
- procedure Set_Line (Win : in Window; To : in Positive_Count);
- procedure Set_Line (To : in Positive_Count);
-
- function Col (Win : in Window) return Positive_Count;
- function Col return Positive_Count;
-
- function Line (Win : in Window) return Positive_Count;
- function Line return Positive_Count;
-
- -----------------------
- -- Characters-Output --
- -----------------------
-
- procedure Put (Win : in Window; Item : in Character);
- procedure Put (Item : in Character);
-
- --------------------
- -- Strings-Output --
- --------------------
-
- procedure Put (Win : in Window; Item : in String);
- procedure Put (Item : in String);
-
- procedure Put_Line
- (Win : in Window;
- Item : in String);
-
- procedure Put_Line
- (Item : in String);
-
- -- Exceptions
-
- Status_Error : exception renames Ada.IO_Exceptions.Status_Error;
- Mode_Error : exception renames Ada.IO_Exceptions.Mode_Error;
- Name_Error : exception renames Ada.IO_Exceptions.Name_Error;
- Use_Error : exception renames Ada.IO_Exceptions.Use_Error;
- Device_Error : exception renames Ada.IO_Exceptions.Device_Error;
- End_Error : exception renames Ada.IO_Exceptions.End_Error;
- Data_Error : exception renames Ada.IO_Exceptions.Data_Error;
- Layout_Error : exception renames Ada.IO_Exceptions.Layout_Error;
-
-end Terminal_Interface.Curses.Text_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses.adb
deleted file mode 100644
index 0ca29ea..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface-curses.adb
+++ /dev/null
@@ -1,2414 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with System;
-
-with Terminal_Interface.Curses.Aux;
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Interfaces.C.Pointers;
-with Ada.Characters.Handling; use Ada.Characters.Handling;
-with Ada.Strings.Fixed;
-with Ada.Unchecked_Conversion;
-
-package body Terminal_Interface.Curses is
-
- use Aux;
- use type System.Bit_Order;
-
- package ASF renames Ada.Strings.Fixed;
-
- type chtype_array is array (size_t range <>)
- of aliased Attributed_Character;
- pragma Convention (C, chtype_array);
-
-------------------------------------------------------------------------------
- generic
- type Element is (<>);
- function W_Get_Element (Win : in Window;
- Offset : in Natural) return Element;
-
- function W_Get_Element (Win : in Window;
- Offset : in Natural) return Element is
- type E_Array is array (Natural range <>) of aliased Element;
- package C_E_Array is new
- Interfaces.C.Pointers (Natural, Element, E_Array, Element'Val (0));
- use C_E_Array;
-
- function To_Pointer is new
- Ada.Unchecked_Conversion (Window, Pointer);
-
- P : Pointer := To_Pointer (Win);
- begin
- if Win = Null_Window then
- raise Curses_Exception;
- else
- P := P + ptrdiff_t (Offset);
- return P.all;
- end if;
- end W_Get_Element;
-
- function W_Get_Int is new W_Get_Element (C_Int);
- 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 Key_Name (Key : in Real_Key_Code) return String
- is
- function Keyname (K : C_Int) return chars_ptr;
- pragma Import (C, Keyname, "keyname");
-
- Ch : Character;
- begin
- if Key <= Character'Pos (Character'Last) then
- Ch := Character'Val (Key);
- if Is_Control (Ch) then
- return Un_Control (Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- elsif Is_Graphic (Ch) then
- declare
- S : String (1 .. 1);
- begin
- S (1) := Ch;
- return S;
- end;
- else
- return "";
- end if;
- else
- return Fill_String (Keyname (C_Int (Key)));
- end if;
- end Key_Name;
-
- procedure Key_Name (Key : in Real_Key_Code;
- Name : out String)
- is
- begin
- ASF.Move (Key_Name (Key), Name);
- end Key_Name;
-
-------------------------------------------------------------------------------
- procedure Init_Screen
- is
- function Initscr return Window;
- pragma Import (C, Initscr, "initscr");
-
- W : Window;
- begin
- W := Initscr;
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- end Init_Screen;
-
- procedure End_Windows
- is
- function Endwin return C_Int;
- pragma Import (C, Endwin, "endwin");
- begin
- if Endwin = Curses_Err then
- raise Curses_Exception;
- end if;
- end End_Windows;
-
- function Is_End_Window return Boolean
- is
- function Isendwin return Curses_Bool;
- pragma Import (C, Isendwin, "isendwin");
- begin
- if Isendwin = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Is_End_Window;
-------------------------------------------------------------------------------
- procedure Move_Cursor (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Wmove (Win : Window;
- Line : C_Int;
- Column : C_Int
- ) return C_Int;
- pragma Import (C, Wmove, "wmove");
- begin
- if Wmove (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Move_Cursor;
-------------------------------------------------------------------------------
- procedure Add (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- function Waddch (W : Window;
- Ch : C_Chtype) return C_Int;
- pragma Import (C, Waddch, "waddch");
- begin
- if Waddch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add;
-
- procedure Add (Win : in Window := Standard_Window;
- Ch : in Character)
- is
- begin
- Add (Win,
- Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end Add;
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Attributed_Character)
- is
- function mvwaddch (W : Window;
- Y : C_Int;
- X : C_Int;
- Ch : C_Chtype) return C_Int;
- pragma Import (C, mvwaddch, "mvwaddch");
- begin
- if mvwaddch (Win, C_Int (Line),
- C_Int (Column),
- AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add;
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Character)
- is
- begin
- Add (Win,
- Line,
- Column,
- Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end Add;
-
- procedure Add_With_Immediate_Echo
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- function Wechochar (W : Window;
- Ch : C_Chtype) return C_Int;
- pragma Import (C, Wechochar, "wechochar");
- begin
- if Wechochar (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add_With_Immediate_Echo;
-
- procedure Add_With_Immediate_Echo
- (Win : in Window := Standard_Window;
- Ch : in Character)
- is
- begin
- Add_With_Immediate_Echo
- (Win,
- Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end Add_With_Immediate_Echo;
-------------------------------------------------------------------------------
- function Create (Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- is
- function Newwin (Number_Of_Lines : C_Int;
- Number_Of_Columns : C_Int;
- First_Line_Position : C_Int;
- First_Column_Position : C_Int) return Window;
- pragma Import (C, Newwin, "newwin");
-
- W : Window;
- begin
- W := Newwin (C_Int (Number_Of_Lines),
- C_Int (Number_Of_Columns),
- C_Int (First_Line_Position),
- C_Int (First_Column_Position));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Create;
-
- procedure Delete (Win : in out Window)
- is
- function Wdelwin (W : Window) return C_Int;
- pragma Import (C, Wdelwin, "delwin");
- begin
- if Wdelwin (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- Win := Null_Window;
- end Delete;
-
- function Sub_Window
- (Win : Window := Standard_Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- is
- function Subwin
- (Win : Window;
- Number_Of_Lines : C_Int;
- Number_Of_Columns : C_Int;
- First_Line_Position : C_Int;
- First_Column_Position : C_Int) return Window;
- pragma Import (C, Subwin, "subwin");
-
- W : Window;
- begin
- W := Subwin (Win,
- C_Int (Number_Of_Lines),
- C_Int (Number_Of_Columns),
- C_Int (First_Line_Position),
- C_Int (First_Column_Position));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Sub_Window;
-
- function Derived_Window
- (Win : Window := Standard_Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- is
- function Derwin
- (Win : Window;
- Number_Of_Lines : C_Int;
- Number_Of_Columns : C_Int;
- First_Line_Position : C_Int;
- First_Column_Position : C_Int) return Window;
- pragma Import (C, Derwin, "derwin");
-
- W : Window;
- begin
- W := Derwin (Win,
- C_Int (Number_Of_Lines),
- C_Int (Number_Of_Columns),
- C_Int (First_Line_Position),
- C_Int (First_Column_Position));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Derived_Window;
-
- function Duplicate (Win : Window) return Window
- is
- function Dupwin (Win : Window) return Window;
- pragma Import (C, Dupwin, "dupwin");
-
- W : Window := Dupwin (Win);
- begin
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Duplicate;
-
- procedure Move_Window (Win : in Window;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Mvwin (Win : Window;
- Line : C_Int;
- Column : C_Int) return C_Int;
- pragma Import (C, Mvwin, "mvwin");
- begin
- if Mvwin (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Move_Window;
-
- procedure Move_Derived_Window (Win : in Window;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Mvderwin (Win : Window;
- Line : C_Int;
- Column : C_Int) return C_Int;
- pragma Import (C, Mvderwin, "mvderwin");
- begin
- if Mvderwin (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Move_Derived_Window;
-
- procedure Set_Synch_Mode (Win : in Window := Standard_Window;
- Mode : in Boolean := False)
- is
- function Syncok (Win : Window;
- Mode : Curses_Bool) return C_Int;
- pragma Import (C, Syncok, "syncok");
- begin
- if Syncok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Synch_Mode;
-------------------------------------------------------------------------------
- procedure Add (Win : in Window := Standard_Window;
- Str : in String;
- Len : in Integer := -1)
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Waddnstr (Win : Window;
- Str : Char_Ptr;
- Len : C_Int := -1) return C_Int;
- pragma Import (C, Waddnstr, "waddnstr");
-
- Txt : char_array (0 .. Str'Length);
- Length : size_t;
- begin
- To_C (Str, Txt, Length);
- if Waddnstr (Win, Txt (Txt'First)'Access, C_Int (Len)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add;
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Add (Win, Str, Len);
- end Add;
-------------------------------------------------------------------------------
- procedure Add
- (Win : in Window := Standard_Window;
- Str : in Attributed_String;
- Len : in Integer := -1)
- is
- type Chtype_Ptr is access all Attributed_Character;
- function Waddchnstr (Win : Window;
- Str : Chtype_Ptr;
- Len : C_Int := -1) return C_Int;
- pragma Import (C, Waddchnstr, "waddchnstr");
-
- Txt : chtype_array (0 .. Str'Length);
- begin
- for Length in 1 .. size_t (Str'Length) loop
- Txt (Length - 1) := Str (Natural (Length));
- end loop;
- Txt (Str'Length) := Default_Character;
- if Waddchnstr (Win,
- Txt (Txt'First)'Access,
- C_Int (Len)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add;
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in Attributed_String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Add (Win, Str, Len);
- end Add;
-------------------------------------------------------------------------------
- procedure Border
- (Win : in Window := Standard_Window;
- Left_Side_Symbol : in Attributed_Character := Default_Character;
- Right_Side_Symbol : in Attributed_Character := Default_Character;
- Top_Side_Symbol : in Attributed_Character := Default_Character;
- Bottom_Side_Symbol : in Attributed_Character := Default_Character;
- Upper_Left_Corner_Symbol : in Attributed_Character := Default_Character;
- Upper_Right_Corner_Symbol : in Attributed_Character := Default_Character;
- Lower_Left_Corner_Symbol : in Attributed_Character := Default_Character;
- Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character)
- is
- function Wborder (W : Window;
- LS : C_Chtype;
- RS : C_Chtype;
- TS : C_Chtype;
- BS : C_Chtype;
- ULC : C_Chtype;
- URC : C_Chtype;
- LLC : C_Chtype;
- LRC : C_Chtype) return C_Int;
- pragma Import (C, Wborder, "wborder");
- begin
- if Wborder (Win,
- AttrChar_To_Chtype (Left_Side_Symbol),
- AttrChar_To_Chtype (Right_Side_Symbol),
- AttrChar_To_Chtype (Top_Side_Symbol),
- AttrChar_To_Chtype (Bottom_Side_Symbol),
- AttrChar_To_Chtype (Upper_Left_Corner_Symbol),
- AttrChar_To_Chtype (Upper_Right_Corner_Symbol),
- AttrChar_To_Chtype (Lower_Left_Corner_Symbol),
- AttrChar_To_Chtype (Lower_Right_Corner_Symbol)
- ) = Curses_Err
- then
- raise Curses_Exception;
- end if;
- end Border;
-
- procedure Box
- (Win : in Window := Standard_Window;
- Vertical_Symbol : in Attributed_Character := Default_Character;
- Horizontal_Symbol : in Attributed_Character := Default_Character)
- is
- begin
- Border (Win,
- Vertical_Symbol, Vertical_Symbol,
- Horizontal_Symbol, Horizontal_Symbol);
- end Box;
-
- procedure Horizontal_Line
- (Win : in Window := Standard_Window;
- Line_Size : in Natural;
- Line_Symbol : in Attributed_Character := Default_Character)
- is
- function Whline (W : Window;
- Ch : C_Chtype;
- Len : C_Int) return C_Int;
- pragma Import (C, Whline, "whline");
- begin
- if Whline (Win,
- AttrChar_To_Chtype (Line_Symbol),
- C_Int (Line_Size)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Horizontal_Line;
-
- procedure Vertical_Line
- (Win : in Window := Standard_Window;
- Line_Size : in Natural;
- Line_Symbol : in Attributed_Character := Default_Character)
- is
- function Wvline (W : Window;
- Ch : C_Chtype;
- Len : C_Int) return C_Int;
- pragma Import (C, Wvline, "wvline");
- begin
- if Wvline (Win,
- AttrChar_To_Chtype (Line_Symbol),
- C_Int (Line_Size)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Vertical_Line;
-
-------------------------------------------------------------------------------
- function Get_Keystroke (Win : Window := Standard_Window)
- return Real_Key_Code
- is
- function Wgetch (W : Window) return C_Int;
- pragma Import (C, Wgetch, "wgetch");
-
- C : constant C_Int := Wgetch (Win);
- begin
- if C = Curses_Err then
- return Key_None;
- else
- return Real_Key_Code (C);
- end if;
- end Get_Keystroke;
-
- procedure Undo_Keystroke (Key : in Real_Key_Code)
- is
- function Ungetch (Ch : C_Int) return C_Int;
- pragma Import (C, Ungetch, "ungetch");
- begin
- if Ungetch (C_Int (Key)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Undo_Keystroke;
-
- function Has_Key (Key : Special_Key_Code) return Boolean
- is
- function Haskey (Key : C_Int) return C_Int;
- pragma Import (C, Haskey, "has_key");
- begin
- if Haskey (C_Int (Key)) = Curses_False then
- return False;
- else
- return True;
- end if;
- end Has_Key;
-
- function Is_Function_Key (Key : Special_Key_Code) return Boolean
- is
- L : constant Special_Key_Code := Special_Key_Code (Natural (Key_F0) +
- Natural (Function_Key_Number'Last));
- begin
- if (Key >= Key_F0) and then (Key <= L) then
- return True;
- else
- return False;
- end if;
- end Is_Function_Key;
-
- function Function_Key (Key : Real_Key_Code)
- return Function_Key_Number
- is
- begin
- if Is_Function_Key (Key) then
- return Function_Key_Number (Key - Key_F0);
- else
- raise Constraint_Error;
- end if;
- end Function_Key;
-
- function Function_Key_Code (Key : Function_Key_Number) return Real_Key_Code
- is
- begin
- return Real_Key_Code (Natural (Key_F0) + Natural (Key));
- end Function_Key_Code;
-------------------------------------------------------------------------------
- procedure Switch_Character_Attribute
- (Win : in Window := Standard_Window;
- Attr : in Character_Attribute_Set := Normal_Video;
- On : in Boolean := True)
- is
- function Wattron (Win : Window;
- C_Attr : C_AttrType) return C_Int;
- pragma Import (C, Wattron, "wattr_on");
- function Wattroff (Win : Window;
- C_Attr : C_AttrType) return C_Int;
- pragma Import (C, Wattroff, "wattr_off");
- -- In Ada we use the On Boolean to control whether or not we want to
- -- switch on or off the attributes in the set.
- Err : C_Int;
- AC : constant Attributed_Character := (Ch => Character'First,
- Color => Color_Pair'First,
- Attr => Attr);
- begin
- if On then
- Err := Wattron (Win, AttrChar_To_AttrType (AC));
- else
- Err := Wattroff (Win, AttrChar_To_AttrType (AC));
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Switch_Character_Attribute;
-
- procedure Set_Character_Attributes
- (Win : in Window := Standard_Window;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Wattrset (Win : Window;
- C_Attr : C_AttrType) return C_Int;
- pragma Import (C, Wattrset, "wattrset"); -- ??? wattr_set
- begin
- if Wattrset (Win,
- AttrChar_To_AttrType (Attributed_Character'
- (Ch => Character'First,
- Color => Color,
- Attr => Attr))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Character_Attributes;
-
- function Get_Character_Attribute (Win : Window := Standard_Window)
- return Character_Attribute_Set
- is
- function Wattrget (Win : Window;
- Atr : access C_AttrType;
- Col : access C_Short;
- Opt : System.Address) return C_Int;
- pragma Import (C, Wattrget, "wattr_get");
-
- Attr : aliased C_AttrType;
- Col : aliased C_Short;
- Res : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
- System.Null_Address);
- Ch : Attributed_Character;
- begin
- if Res = Curses_Ok then
- Ch := AttrType_To_AttrChar (Attr);
- return Ch.Attr;
- else
- raise Curses_Exception;
- end if;
- end Get_Character_Attribute;
-
- function Get_Character_Attribute (Win : Window := Standard_Window)
- return Color_Pair
- is
- function Wattrget (Win : Window;
- Atr : access C_AttrType;
- Col : access C_Short;
- Opt : System.Address) return C_Int;
- pragma Import (C, Wattrget, "wattr_get");
-
- Attr : aliased C_AttrType;
- Col : aliased C_Short;
- Res : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
- System.Null_Address);
- Ch : Attributed_Character;
- begin
- if Res = Curses_Ok then
- Ch := AttrType_To_AttrChar (Attr);
- return Ch.Color;
- else
- raise Curses_Exception;
- end if;
- end Get_Character_Attribute;
-
- procedure Set_Color (Win : in Window := Standard_Window;
- Pair : in Color_Pair)
- is
- function Wset_Color (Win : Window;
- Color : C_Short;
- Opts : C_Void_Ptr) return C_Int;
- pragma Import (C, Wset_Color, "wcolor_set");
- begin
- if Wset_Color (Win,
- C_Short (Pair),
- C_Void_Ptr (System.Null_Address)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Color;
-
- procedure Change_Attributes
- (Win : in Window := Standard_Window;
- Count : in Integer := -1;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Wchgat (Win : Window;
- Cnt : C_Int;
- Attr : C_AttrType;
- Color : C_Short;
- Opts : System.Address := System.Null_Address)
- return C_Int;
- pragma Import (C, Wchgat, "wchgat");
-
- Ch : constant Attributed_Character :=
- (Ch => Character'First, Color => Color_Pair'First, Attr => Attr);
- begin
- if Wchgat (Win, C_Int (Count), AttrChar_To_AttrType (Ch),
- C_Short (Color)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Change_Attributes;
-
- procedure Change_Attributes
- (Win : in Window := Standard_Window;
- Line : in Line_Position := Line_Position'First;
- Column : in Column_Position := Column_Position'First;
- Count : in Integer := -1;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Change_Attributes (Win, Count, Attr, Color);
- end Change_Attributes;
-------------------------------------------------------------------------------
- procedure Beep
- is
- function Beeper return C_Int;
- pragma Import (C, Beeper, "beep");
- begin
- if Beeper = Curses_Err then
- raise Curses_Exception;
- end if;
- end Beep;
-
- procedure Flash_Screen
- is
- function Flash return C_Int;
- pragma Import (C, Flash, "flash");
- begin
- if Flash = Curses_Err then
- raise Curses_Exception;
- end if;
- end Flash_Screen;
-------------------------------------------------------------------------------
- procedure Set_Cbreak_Mode (SwitchOn : in Boolean := True)
- is
- function Cbreak return C_Int;
- pragma Import (C, Cbreak, "cbreak");
- function NoCbreak return C_Int;
- pragma Import (C, NoCbreak, "nocbreak");
-
- Err : C_Int;
- begin
- if SwitchOn then
- Err := Cbreak;
- else
- Err := NoCbreak;
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Cbreak_Mode;
-
- procedure Set_Raw_Mode (SwitchOn : in Boolean := True)
- is
- function Raw return C_Int;
- pragma Import (C, Raw, "raw");
- function NoRaw return C_Int;
- pragma Import (C, NoRaw, "noraw");
-
- Err : C_Int;
- begin
- if SwitchOn then
- Err := Raw;
- else
- Err := NoRaw;
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Raw_Mode;
-
- procedure Set_Echo_Mode (SwitchOn : in Boolean := True)
- is
- function Echo return C_Int;
- pragma Import (C, Echo, "echo");
- function NoEcho return C_Int;
- pragma Import (C, NoEcho, "noecho");
-
- Err : C_Int;
- begin
- if SwitchOn then
- Err := Echo;
- else
- Err := NoEcho;
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Echo_Mode;
-
- procedure Set_Meta_Mode (Win : in Window := Standard_Window;
- SwitchOn : in Boolean := True)
- is
- function Meta (W : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Meta, "meta");
- begin
- if Meta (Win, Curses_Bool (Boolean'Pos (SwitchOn))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Meta_Mode;
-
- procedure Set_KeyPad_Mode (Win : in Window := Standard_Window;
- SwitchOn : in Boolean := True)
- is
- function Keypad (W : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Keypad, "keypad");
- begin
- if Keypad (Win, Curses_Bool (Boolean'Pos (SwitchOn))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_KeyPad_Mode;
-
- procedure Half_Delay (Amount : in Half_Delay_Amount)
- is
- function Halfdelay (Amount : C_Int) return C_Int;
- pragma Import (C, Halfdelay, "halfdelay");
- begin
- if Halfdelay (C_Int (Amount)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Half_Delay;
-
- procedure Set_Flush_On_Interrupt_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := True)
- is
- function Intrflush (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Intrflush, "intrflush");
- begin
- if Intrflush (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Flush_On_Interrupt_Mode;
-
- procedure Set_Queue_Interrupt_Mode
- (Win : in Window := Standard_Window;
- Flush : in Boolean := True)
- is
- procedure Qiflush;
- pragma Import (C, Qiflush, "qiflush");
- procedure No_Qiflush;
- pragma Import (C, No_Qiflush, "noqiflush");
- begin
- if Flush then
- Qiflush;
- else
- No_Qiflush;
- end if;
- end Set_Queue_Interrupt_Mode;
-
- procedure Set_NoDelay_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False)
- is
- function Nodelay (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Nodelay, "nodelay");
- begin
- if Nodelay (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_NoDelay_Mode;
-
- procedure Set_Timeout_Mode (Win : in Window := Standard_Window;
- Mode : in Timeout_Mode;
- Amount : in Natural)
- is
- function Wtimeout (Win : Window; Amount : C_Int) return C_Int;
- pragma Import (C, Wtimeout, "wtimeout");
-
- Time : C_Int;
- begin
- case Mode is
- when Blocking => Time := -1;
- when Non_Blocking => Time := 0;
- when Delayed =>
- if Amount = 0 then
- raise Constraint_Error;
- end if;
- Time := C_Int (Amount);
- end case;
- if Wtimeout (Win, Time) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Timeout_Mode;
-
- procedure Set_Escape_Timer_Mode
- (Win : in Window := Standard_Window;
- Timer_Off : in Boolean := False)
- is
- function Notimeout (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Notimeout, "notimeout");
- begin
- if Notimeout (Win, Curses_Bool (Boolean'Pos (Timer_Off)))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Escape_Timer_Mode;
-
-------------------------------------------------------------------------------
- procedure Set_NL_Mode (SwitchOn : in Boolean := True)
- is
- function NL return C_Int;
- pragma Import (C, NL, "nl");
- function NoNL return C_Int;
- pragma Import (C, NoNL, "nonl");
-
- Err : C_Int;
- begin
- if SwitchOn then
- Err := NL;
- else
- Err := NoNL;
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_NL_Mode;
-
- procedure Clear_On_Next_Update
- (Win : in Window := Standard_Window;
- Do_Clear : in Boolean := True)
- is
- function Clear_Ok (W : Window; Flag : Curses_Bool) return C_Int;
- pragma Import (C, Clear_Ok, "clearok");
- begin
- if Clear_Ok (Win, Curses_Bool (Boolean'Pos (Do_Clear))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear_On_Next_Update;
-
- procedure Use_Insert_Delete_Line
- (Win : in Window := Standard_Window;
- Do_Idl : in Boolean := True)
- is
- function IDL_Ok (W : Window; Flag : Curses_Bool) return C_Int;
- pragma Import (C, IDL_Ok, "idlok");
- begin
- if IDL_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idl))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Use_Insert_Delete_Line;
-
- procedure Use_Insert_Delete_Character
- (Win : in Window := Standard_Window;
- Do_Idc : in Boolean := True)
- is
- function IDC_Ok (W : Window; Flag : Curses_Bool) return C_Int;
- pragma Import (C, IDC_Ok, "idcok");
- begin
- if IDC_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idc))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Use_Insert_Delete_Character;
-
- procedure Leave_Cursor_After_Update
- (Win : in Window := Standard_Window;
- Do_Leave : in Boolean := True)
- is
- function Leave_Ok (W : Window; Flag : Curses_Bool) return C_Int;
- pragma Import (C, Leave_Ok, "leaveok");
- begin
- if Leave_Ok (Win, Curses_Bool (Boolean'Pos (Do_Leave))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Leave_Cursor_After_Update;
-
- procedure Immediate_Update_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False)
- is
- function Immedok (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Immedok, "immedok");
- begin
- if Immedok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Immediate_Update_Mode;
-
- procedure Allow_Scrolling
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False)
- is
- function Scrollok (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Scrollok, "scrollok");
- begin
- if Scrollok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Allow_Scrolling;
-
- function Scrolling_Allowed (Win : Window := Standard_Window) return Boolean
- is
- Res : C_Int;
- 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;
- end Scrolling_Allowed;
-
- procedure Set_Scroll_Region
- (Win : in Window := Standard_Window;
- Top_Line : in Line_Position;
- Bottom_Line : in Line_Position)
- is
- function Wsetscrreg (Win : Window;
- Lin : C_Int;
- Col : C_Int) return C_Int;
- pragma Import (C, Wsetscrreg, "wsetscrreg");
- begin
- if Wsetscrreg (Win, C_Int (Top_Line), C_Int (Bottom_Line))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Scroll_Region;
-------------------------------------------------------------------------------
- procedure Update_Screen
- is
- function Do_Update return C_Int;
- pragma Import (C, Do_Update, "doupdate");
- begin
- if Do_Update = Curses_Err then
- raise Curses_Exception;
- end if;
- end Update_Screen;
-
- procedure Refresh (Win : in Window := Standard_Window)
- is
- function Wrefresh (W : Window) return C_Int;
- pragma Import (C, Wrefresh, "wrefresh");
- begin
- if Wrefresh (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh;
-
- procedure Refresh_Without_Update
- (Win : in Window := Standard_Window)
- is
- function Wnoutrefresh (W : Window) return C_Int;
- pragma Import (C, Wnoutrefresh, "wnoutrefresh");
- begin
- if Wnoutrefresh (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh_Without_Update;
-
- procedure Redraw (Win : in Window := Standard_Window)
- is
- function Redrawwin (Win : Window) return C_Int;
- pragma Import (C, Redrawwin, "redrawwin");
- begin
- if Redrawwin (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Redraw;
-
- procedure Redraw
- (Win : in Window := Standard_Window;
- Begin_Line : in Line_Position;
- Line_Count : in Positive)
- is
- function Wredrawln (Win : Window; First : C_Int; Cnt : C_Int)
- return C_Int;
- pragma Import (C, Wredrawln, "wredrawln");
- begin
- if Wredrawln (Win,
- C_Int (Begin_Line),
- C_Int (Line_Count)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Redraw;
-
-------------------------------------------------------------------------------
- procedure Erase (Win : in Window := Standard_Window)
- is
- function Werase (W : Window) return C_Int;
- pragma Import (C, Werase, "werase");
- begin
- if Werase (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Erase;
-
- procedure Clear (Win : in Window := Standard_Window)
- is
- function Wclear (W : Window) return C_Int;
- pragma Import (C, Wclear, "wclear");
- begin
- if Wclear (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear;
-
- procedure Clear_To_End_Of_Screen (Win : in Window := Standard_Window)
- is
- function Wclearbot (W : Window) return C_Int;
- pragma Import (C, Wclearbot, "wclrtobot");
- begin
- if Wclearbot (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear_To_End_Of_Screen;
-
- procedure Clear_To_End_Of_Line (Win : in Window := Standard_Window)
- is
- function Wcleareol (W : Window) return C_Int;
- pragma Import (C, Wcleareol, "wclrtoeol");
- begin
- if Wcleareol (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear_To_End_Of_Line;
-------------------------------------------------------------------------------
- procedure Set_Background
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- procedure WBackground (W : in Window; Ch : in C_Chtype);
- pragma Import (C, WBackground, "wbkgdset");
- begin
- WBackground (Win, AttrChar_To_Chtype (Ch));
- end Set_Background;
-
- procedure Change_Background
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- function WChangeBkgd (W : Window; Ch : C_Chtype) return C_Int;
- pragma Import (C, WChangeBkgd, "wbkgd");
- begin
- if WChangeBkgd (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Change_Background;
-
- function Get_Background (Win : Window := Standard_Window)
- return Attributed_Character
- is
- function Wgetbkgd (Win : Window) return C_Chtype;
- pragma Import (C, Wgetbkgd, "getbkgd");
- begin
- return Chtype_To_AttrChar (Wgetbkgd (Win));
- end Get_Background;
-------------------------------------------------------------------------------
- procedure Change_Lines_Status (Win : in Window := Standard_Window;
- Start : in Line_Position;
- Count : in Positive;
- State : in Boolean)
- is
- function Wtouchln (Win : Window;
- Sta : C_Int;
- Cnt : C_Int;
- Chg : C_Int) return C_Int;
- pragma Import (C, Wtouchln, "wtouchln");
- begin
- if Wtouchln (Win, C_Int (Start), C_Int (Count),
- C_Int (Boolean'Pos (State))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Change_Lines_Status;
-
- procedure Touch (Win : in Window := Standard_Window)
- is
- Y : Line_Position;
- X : Column_Position;
- begin
- Get_Size (Win, Y, X);
- Change_Lines_Status (Win, 0, Positive (Y), True);
- end Touch;
-
- procedure Untouch (Win : in Window := Standard_Window)
- is
- Y : Line_Position;
- X : Column_Position;
- begin
- Get_Size (Win, Y, X);
- Change_Lines_Status (Win, 0, Positive (Y), False);
- end Untouch;
-
- procedure Touch (Win : in Window := Standard_Window;
- Start : in Line_Position;
- Count : in Positive)
- is
- begin
- Change_Lines_Status (Win, Start, Count, True);
- end Touch;
-
- function Is_Touched
- (Win : Window := Standard_Window;
- Line : Line_Position) return Boolean
- is
- function WLineTouched (W : Window; L : C_Int) return Curses_Bool;
- pragma Import (C, WLineTouched, "is_linetouched");
- begin
- if WLineTouched (Win, C_Int (Line)) = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Is_Touched;
-
- function Is_Touched
- (Win : Window := Standard_Window) return Boolean
- is
- function WWinTouched (W : Window) return Curses_Bool;
- pragma Import (C, WWinTouched, "is_wintouched");
- begin
- if WWinTouched (Win) = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Is_Touched;
-------------------------------------------------------------------------------
- procedure Copy
- (Source_Window : in Window;
- Destination_Window : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position;
- Non_Destructive_Mode : in Boolean := True)
- is
- function Copywin (Src : Window;
- Dst : Window;
- Str : C_Int;
- Slc : C_Int;
- Dtr : C_Int;
- Dlc : C_Int;
- Dbr : C_Int;
- Drc : C_Int;
- Ndm : C_Int) return C_Int;
- pragma Import (C, Copywin, "copywin");
- begin
- if Copywin (Source_Window,
- Destination_Window,
- C_Int (Source_Top_Row),
- C_Int (Source_Left_Column),
- C_Int (Destination_Top_Row),
- C_Int (Destination_Left_Column),
- C_Int (Destination_Bottom_Row),
- C_Int (Destination_Right_Column),
- Boolean'Pos (Non_Destructive_Mode)
- ) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Copy;
-
- procedure Overwrite
- (Source_Window : in Window;
- Destination_Window : in Window)
- is
- function Overwrite (Src : Window; Dst : Window) return C_Int;
- pragma Import (C, Overwrite, "overwrite");
- begin
- if Overwrite (Source_Window, Destination_Window) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Overwrite;
-
- procedure Overlay
- (Source_Window : in Window;
- Destination_Window : in Window)
- is
- function Overlay (Src : Window; Dst : Window) return C_Int;
- pragma Import (C, Overlay, "overlay");
- begin
- if Overlay (Source_Window, Destination_Window) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Overlay;
-
-------------------------------------------------------------------------------
- procedure Insert_Delete_Lines
- (Win : in Window := Standard_Window;
- Lines : in Integer := 1) -- default is to insert one line above
- is
- function Winsdelln (W : Window; N : C_Int) return C_Int;
- pragma Import (C, Winsdelln, "winsdelln");
- begin
- if Winsdelln (Win, C_Int (Lines)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert_Delete_Lines;
-
- procedure Delete_Line (Win : in Window := Standard_Window)
- is
- begin
- Insert_Delete_Lines (Win, -1);
- end Delete_Line;
-
- procedure Insert_Line (Win : in Window := Standard_Window)
- is
- begin
- Insert_Delete_Lines (Win, 1);
- end Insert_Line;
-------------------------------------------------------------------------------
-
-
- procedure Get_Size
- (Win : in Window := Standard_Window;
- Number_Of_Lines : out Line_Count;
- Number_Of_Columns : out Column_Count)
- is
- -- Please note: in ncurses they are one off.
- -- This might be different in other implementations of curses
- Y : C_Int := C_Int (W_Get_Short (Win, Offset_maxy)) + C_Int (Offset_XY);
- X : C_Int := C_Int (W_Get_Short (Win, Offset_maxx)) + C_Int (Offset_XY);
- begin
- Number_Of_Lines := Line_Count (Y);
- Number_Of_Columns := Column_Count (X);
- end Get_Size;
-
- procedure Get_Window_Position
- (Win : in Window := Standard_Window;
- Top_Left_Line : out Line_Position;
- Top_Left_Column : out Column_Position)
- is
- Y : C_Short := W_Get_Short (Win, Offset_begy);
- X : C_Short := W_Get_Short (Win, Offset_begx);
- begin
- Top_Left_Line := Line_Position (Y);
- Top_Left_Column := Column_Position (X);
- end Get_Window_Position;
-
- procedure Get_Cursor_Position
- (Win : in Window := Standard_Window;
- Line : out Line_Position;
- Column : out Column_Position)
- is
- Y : C_Short := W_Get_Short (Win, Offset_cury);
- X : C_Short := W_Get_Short (Win, Offset_curx);
- begin
- Line := Line_Position (Y);
- Column := Column_Position (X);
- end Get_Cursor_Position;
-
- procedure Get_Origin_Relative_To_Parent
- (Win : in Window;
- Top_Left_Line : out Line_Position;
- Top_Left_Column : out Column_Position;
- Is_Not_A_Subwindow : out Boolean)
- is
- Y : C_Int := W_Get_Int (Win, Offset_pary);
- X : C_Int := W_Get_Int (Win, Offset_parx);
- begin
- if Y = -1 then
- Top_Left_Line := Line_Position'Last;
- Top_Left_Column := Column_Position'Last;
- Is_Not_A_Subwindow := True;
- else
- Top_Left_Line := Line_Position (Y);
- Top_Left_Column := Column_Position (X);
- Is_Not_A_Subwindow := False;
- end if;
- end Get_Origin_Relative_To_Parent;
-------------------------------------------------------------------------------
- function New_Pad (Lines : Line_Count;
- Columns : Column_Count) return Window
- is
- function Newpad (Lines : C_Int; Columns : C_Int) return Window;
- pragma Import (C, Newpad, "newpad");
-
- W : Window;
- begin
- W := Newpad (C_Int (Lines), C_Int (Columns));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end New_Pad;
-
- function Sub_Pad
- (Pad : Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- is
- function Subpad
- (Pad : Window;
- Number_Of_Lines : C_Int;
- Number_Of_Columns : C_Int;
- First_Line_Position : C_Int;
- First_Column_Position : C_Int) return Window;
- pragma Import (C, Subpad, "subpad");
-
- W : Window;
- begin
- W := Subpad (Pad,
- C_Int (Number_Of_Lines),
- C_Int (Number_Of_Columns),
- C_Int (First_Line_Position),
- C_Int (First_Column_Position));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Sub_Pad;
-
- procedure Refresh
- (Pad : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position)
- is
- function Prefresh
- (Pad : Window;
- Source_Top_Row : C_Int;
- Source_Left_Column : C_Int;
- Destination_Top_Row : C_Int;
- Destination_Left_Column : C_Int;
- Destination_Bottom_Row : C_Int;
- Destination_Right_Column : C_Int) return C_Int;
- pragma Import (C, Prefresh, "prefresh");
- begin
- if Prefresh (Pad,
- C_Int (Source_Top_Row),
- C_Int (Source_Left_Column),
- C_Int (Destination_Top_Row),
- C_Int (Destination_Left_Column),
- C_Int (Destination_Bottom_Row),
- C_Int (Destination_Right_Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh;
-
- procedure Refresh_Without_Update
- (Pad : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position)
- is
- function Pnoutrefresh
- (Pad : Window;
- Source_Top_Row : C_Int;
- Source_Left_Column : C_Int;
- Destination_Top_Row : C_Int;
- Destination_Left_Column : C_Int;
- Destination_Bottom_Row : C_Int;
- Destination_Right_Column : C_Int) return C_Int;
- pragma Import (C, Pnoutrefresh, "pnoutrefresh");
- begin
- if Pnoutrefresh (Pad,
- C_Int (Source_Top_Row),
- C_Int (Source_Left_Column),
- C_Int (Destination_Top_Row),
- C_Int (Destination_Left_Column),
- C_Int (Destination_Bottom_Row),
- C_Int (Destination_Right_Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh_Without_Update;
-
- procedure Add_Character_To_Pad_And_Echo_It
- (Pad : in Window;
- Ch : in Attributed_Character)
- is
- function Pechochar (Pad : Window; Ch : C_Chtype)
- return C_Int;
- pragma Import (C, Pechochar, "pechochar");
- begin
- if Pechochar (Pad, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add_Character_To_Pad_And_Echo_It;
-
- procedure Add_Character_To_Pad_And_Echo_It
- (Pad : in Window;
- Ch : in Character)
- is
- begin
- Add_Character_To_Pad_And_Echo_It
- (Pad,
- Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end Add_Character_To_Pad_And_Echo_It;
-------------------------------------------------------------------------------
- procedure Scroll (Win : in Window := Standard_Window;
- Amount : in Integer := 1)
- is
- function Wscrl (Win : Window; N : C_Int) return C_Int;
- pragma Import (C, Wscrl, "wscrl");
-
- begin
- if Wscrl (Win, C_Int (Amount)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Scroll;
-
-------------------------------------------------------------------------------
- procedure Delete_Character (Win : in Window := Standard_Window)
- is
- function Wdelch (Win : Window) return C_Int;
- pragma Import (C, Wdelch, "wdelch");
- begin
- if Wdelch (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Delete_Character;
-
- procedure Delete_Character
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Mvwdelch (Win : Window;
- Lin : C_Int;
- Col : C_Int) return C_Int;
- pragma Import (C, Mvwdelch, "mvwdelch");
- begin
- if Mvwdelch (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Delete_Character;
-------------------------------------------------------------------------------
- function Peek (Win : Window := Standard_Window)
- return Attributed_Character
- is
- function Winch (Win : Window) return C_Chtype;
- pragma Import (C, Winch, "winch");
- begin
- return Chtype_To_AttrChar (Winch (Win));
- end Peek;
-
- function Peek
- (Win : Window := Standard_Window;
- Line : Line_Position;
- Column : Column_Position) return Attributed_Character
- is
- function Mvwinch (Win : Window;
- Lin : C_Int;
- Col : C_Int) return C_Chtype;
- pragma Import (C, Mvwinch, "mvwinch");
- begin
- return Chtype_To_AttrChar (Mvwinch (Win, C_Int (Line), C_Int (Column)));
- end Peek;
-------------------------------------------------------------------------------
- procedure Insert (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- function Winsch (Win : Window; Ch : C_Chtype) return C_Int;
- pragma Import (C, Winsch, "winsch");
- begin
- if Winsch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert;
-
- procedure Insert
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Attributed_Character)
- is
- function Mvwinsch (Win : Window;
- Lin : C_Int;
- Col : C_Int;
- Ch : C_Chtype) return C_Int;
- pragma Import (C, Mvwinsch, "mvwinsch");
- begin
- if Mvwinsch (Win,
- C_Int (Line),
- C_Int (Column),
- AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert;
-------------------------------------------------------------------------------
- procedure Insert (Win : in Window := Standard_Window;
- Str : in String;
- Len : in Integer := -1)
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Winsnstr (Win : Window;
- Str : Char_Ptr;
- Len : Integer := -1) return C_Int;
- pragma Import (C, Winsnstr, "winsnstr");
-
- Txt : char_array (0 .. Str'Length);
- Length : size_t;
- begin
- To_C (Str, Txt, Length);
- if Winsnstr (Win, Txt (Txt'First)'Access, Len) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert;
-
- procedure Insert
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- 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;
- Str : Char_Ptr;
- Len : C_Int) return C_Int;
- pragma Import (C, Mvwinsnstr, "mvwinsnstr");
-
- Txt : char_array (0 .. Str'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))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert;
-------------------------------------------------------------------------------
- procedure Peek (Win : in Window := Standard_Window;
- Str : out String;
- Len : in Integer := -1)
- is
- function Winnstr (Win : Window;
- Str : char_array;
- Len : C_Int) return C_Int;
- pragma Import (C, Winnstr, "winnstr");
-
- N : Integer := Len;
- Txt : char_array (0 .. Str'Length);
- Cnt : Natural;
- begin
- if N < 0 then
- N := Str'Length;
- end if;
- if N > Str'Length then
- raise Constraint_Error;
- end if;
- Txt (0) := Interfaces.C.char'First;
- if Winnstr (Win, Txt, C_Int (N)) = Curses_Err then
- raise Curses_Exception;
- end if;
- To_Ada (Txt, Str, Cnt, True);
- if Cnt < Str'Length then
- Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
- end if;
- end Peek;
-
- procedure Peek
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Peek (Win, Str, Len);
- end Peek;
-------------------------------------------------------------------------------
- procedure Peek
- (Win : in Window := Standard_Window;
- Str : out Attributed_String;
- Len : in Integer := -1)
- is
- type Chtype_Ptr is access all Attributed_Character;
- function Winchnstr (Win : Window;
- Str : Chtype_Ptr;
- Len : C_Int) return C_Int;
- pragma Import (C, Winchnstr, "winchnstr");
-
- N : Integer := Len;
- Txt : chtype_array (0 .. Str'Length);
- Cnt : Natural := 0;
- begin
- if N < 0 then
- N := Str'Length;
- 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
- raise Curses_Exception;
- end if;
- for To in Str'Range loop
- exit when Txt (size_t (Cnt)) = Default_Character;
- Str (To) := Txt (size_t (Cnt));
- Cnt := Cnt + 1;
- end loop;
- if Cnt < Str'Length then
- Str ((Str'First + Cnt) .. Str'Last) :=
- (others => (Ch => ' ',
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end if;
- end Peek;
-
- procedure Peek
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out Attributed_String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Peek (Win, Str, Len);
- end Peek;
-------------------------------------------------------------------------------
- procedure Get (Win : in Window := Standard_Window;
- Str : out String;
- Len : in Integer := -1)
- is
- function Wgetnstr (Win : Window;
- Str : char_array;
- Len : C_Int) return C_Int;
- pragma Import (C, Wgetnstr, "wgetnstr");
-
- N : Integer := Len;
- Txt : char_array (0 .. Str'Length);
- Cnt : Natural;
- begin
- if N < 0 then
- N := Str'Length;
- end if;
- if N > Str'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, Str, Cnt, True);
- if Cnt < Str'Length then
- Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
- end if;
- end Get;
-
- procedure Get
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Get (Win, Str, Len);
- end Get;
-------------------------------------------------------------------------------
- procedure Init_Soft_Label_Keys
- (Format : in Soft_Label_Key_Format := Three_Two_Three)
- is
- function Slk_Init (Fmt : C_Int) return C_Int;
- pragma Import (C, Slk_Init, "slk_init");
- begin
- if Slk_Init (Soft_Label_Key_Format'Pos (Format)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Init_Soft_Label_Keys;
-
- procedure Set_Soft_Label_Key (Label : in Label_Number;
- Text : in String;
- Fmt : in Label_Justification := Left)
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Slk_Set (Label : C_Int;
- Txt : Char_Ptr;
- Fmt : C_Int) return C_Int;
- pragma Import (C, Slk_Set, "slk_set");
-
- Txt : char_array (0 .. Text'Length);
- 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
- raise Curses_Exception;
- end if;
- end Set_Soft_Label_Key;
-
- procedure Refresh_Soft_Label_Keys
- is
- function Slk_Refresh return C_Int;
- pragma Import (C, Slk_Refresh, "slk_refresh");
- begin
- if Slk_Refresh = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh_Soft_Label_Keys;
-
- procedure Refresh_Soft_Label_Keys_Without_Update
- is
- function Slk_Noutrefresh return C_Int;
- pragma Import (C, Slk_Noutrefresh, "slk_noutrefresh");
- begin
- if Slk_Noutrefresh = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh_Soft_Label_Keys_Without_Update;
-
- procedure Get_Soft_Label_Key (Label : in Label_Number;
- Text : out String)
- is
- function Slk_Label (Label : C_Int) return chars_ptr;
- pragma Import (C, Slk_Label, "slk_label");
- begin
- Fill_String (Slk_Label (C_Int (Label)), Text);
- end Get_Soft_Label_Key;
-
- function Get_Soft_Label_Key (Label : in Label_Number) return String
- is
- function Slk_Label (Label : C_Int) return chars_ptr;
- pragma Import (C, Slk_Label, "slk_label");
- begin
- return Fill_String (Slk_Label (C_Int (Label)));
- end Get_Soft_Label_Key;
-
- procedure Clear_Soft_Label_Keys
- is
- function Slk_Clear return C_Int;
- pragma Import (C, Slk_Clear, "slk_clear");
- begin
- if Slk_Clear = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear_Soft_Label_Keys;
-
- procedure Restore_Soft_Label_Keys
- is
- function Slk_Restore return C_Int;
- pragma Import (C, Slk_Restore, "slk_restore");
- begin
- if Slk_Restore = Curses_Err then
- raise Curses_Exception;
- end if;
- end Restore_Soft_Label_Keys;
-
- procedure Touch_Soft_Label_Keys
- is
- function Slk_Touch return C_Int;
- pragma Import (C, Slk_Touch, "slk_touch");
- begin
- if Slk_Touch = Curses_Err then
- raise Curses_Exception;
- end if;
- end Touch_Soft_Label_Keys;
-
- procedure Switch_Soft_Label_Key_Attributes
- (Attr : in Character_Attribute_Set;
- On : in Boolean := True)
- is
- function Slk_Attron (Ch : C_Chtype) return C_Int;
- pragma Import (C, Slk_Attron, "slk_attron");
- function Slk_Attroff (Ch : C_Chtype) return C_Int;
- pragma Import (C, Slk_Attroff, "slk_attroff");
-
- Err : C_Int;
- Ch : constant Attributed_Character := (Ch => Character'First,
- Attr => Attr,
- Color => Color_Pair'First);
- begin
- if On then
- Err := Slk_Attron (AttrChar_To_Chtype (Ch));
- else
- Err := Slk_Attroff (AttrChar_To_Chtype (Ch));
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Switch_Soft_Label_Key_Attributes;
-
- procedure Set_Soft_Label_Key_Attributes
- (Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Slk_Attrset (Ch : C_Chtype) return C_Int;
- pragma Import (C, Slk_Attrset, "slk_attrset");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Attr => Attr,
- Color => Color);
- begin
- if Slk_Attrset (AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Soft_Label_Key_Attributes;
-
- function Get_Soft_Label_Key_Attributes return Character_Attribute_Set
- is
- function Slk_Attr return C_Chtype;
- pragma Import (C, Slk_Attr, "slk_attr");
-
- Attr : constant C_Chtype := Slk_Attr;
- begin
- return Chtype_To_AttrChar (Attr).Attr;
- end Get_Soft_Label_Key_Attributes;
-
- function Get_Soft_Label_Key_Attributes return Color_Pair
- is
- function Slk_Attr return C_Chtype;
- pragma Import (C, Slk_Attr, "slk_attr");
-
- Attr : constant C_Chtype := Slk_Attr;
- begin
- return Chtype_To_AttrChar (Attr).Color;
- end Get_Soft_Label_Key_Attributes;
-
- procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair)
- is
- function Slk_Color (Color : in C_Short) return C_Int;
- pragma Import (C, Slk_Color, "slk_color");
- begin
- if Slk_Color (C_Short (Pair)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Soft_Label_Key_Color;
-
-------------------------------------------------------------------------------
- procedure Enable_Key (Key : in Special_Key_Code;
- Enable : in Boolean := True)
- is
- function Keyok (Keycode : C_Int;
- On_Off : Curses_Bool) return C_Int;
- pragma Import (C, Keyok, "keyok");
- begin
- if Keyok (C_Int (Key), Curses_Bool (Boolean'Pos (Enable)))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Enable_Key;
-------------------------------------------------------------------------------
- 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;
- Key : C_Int) return C_Int;
- pragma Import (C, Defkey, "define_key");
-
- Txt : char_array (0 .. Definition'Length);
- Length : size_t;
- begin
- To_C (Definition, Txt, Length);
- if Defkey (Txt (Txt'First)'Access, C_Int (Key)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Define_Key;
-------------------------------------------------------------------------------
- procedure Un_Control (Ch : in Attributed_Character;
- Str : out String)
- is
- function Unctrl (Ch : C_Chtype) return chars_ptr;
- pragma Import (C, Unctrl, "unctrl");
- begin
- Fill_String (Unctrl (AttrChar_To_Chtype (Ch)), Str);
- end Un_Control;
-
- function Un_Control (Ch : in Attributed_Character) return String
- is
- function Unctrl (Ch : C_Chtype) return chars_ptr;
- pragma Import (C, Unctrl, "unctrl");
- begin
- return Fill_String (Unctrl (AttrChar_To_Chtype (Ch)));
- end Un_Control;
-
- procedure Delay_Output (Msecs : in Natural)
- is
- function Delayoutput (Msecs : C_Int) return C_Int;
- pragma Import (C, Delayoutput, "delay_output");
- begin
- if Delayoutput (C_Int (Msecs)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Delay_Output;
-
- procedure Flush_Input
- is
- function Flushinp return C_Int;
- pragma Import (C, Flushinp, "flushinp");
- begin
- if Flushinp = Curses_Err then -- docu says that never happens, but...
- raise Curses_Exception;
- end if;
- end Flush_Input;
-------------------------------------------------------------------------------
- function Baudrate return Natural
- is
- function Baud return C_Int;
- pragma Import (C, Baud, "baudrate");
- begin
- return Natural (Baud);
- end Baudrate;
-
- function Erase_Character return Character
- is
- function Erasechar return C_Int;
- pragma Import (C, Erasechar, "erasechar");
- begin
- return Character'Val (Erasechar);
- end Erase_Character;
-
- function Kill_Character return Character
- is
- function Killchar return C_Int;
- pragma Import (C, Killchar, "killchar");
- begin
- return Character'Val (Killchar);
- end Kill_Character;
-
- function Has_Insert_Character return Boolean
- is
- function Has_Ic return Curses_Bool;
- pragma Import (C, Has_Ic, "has_ic");
- begin
- if Has_Ic = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Has_Insert_Character;
-
- function Has_Insert_Line return Boolean
- is
- function Has_Il return Curses_Bool;
- pragma Import (C, Has_Il, "has_il");
- begin
- if Has_Il = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Has_Insert_Line;
-
- function Supported_Attributes return Character_Attribute_Set
- is
- function Termattrs return C_Chtype;
- pragma Import (C, Termattrs, "termattrs");
-
- Ch : constant Attributed_Character := Chtype_To_AttrChar (Termattrs);
- begin
- return Ch.Attr;
- end Supported_Attributes;
-
- procedure Long_Name (Name : out String)
- is
- function Longname return chars_ptr;
- pragma Import (C, Longname, "longname");
- begin
- Fill_String (Longname, Name);
- end Long_Name;
-
- function Long_Name return String
- is
- function Longname return chars_ptr;
- pragma Import (C, Longname, "longname");
- begin
- return Fill_String (Longname);
- end Long_Name;
-
- procedure Terminal_Name (Name : out String)
- is
- function Termname return chars_ptr;
- pragma Import (C, Termname, "termname");
- begin
- Fill_String (Termname, Name);
- end Terminal_Name;
-
- function Terminal_Name return String
- is
- function Termname return chars_ptr;
- pragma Import (C, Termname, "termname");
- begin
- return Fill_String (Termname);
- end Terminal_Name;
-------------------------------------------------------------------------------
- procedure Init_Pair (Pair : in Redefinable_Color_Pair;
- Fore : in Color_Number;
- Back : in Color_Number)
- is
- function Initpair (Pair : C_Short;
- Fore : C_Short;
- Back : C_Short) return C_Int;
- pragma Import (C, Initpair, "init_pair");
- begin
- if Integer (Pair) >= Number_Of_Color_Pairs then
- raise Constraint_Error;
- end if;
- if Integer (Fore) >= Number_Of_Colors or else
- Integer (Back) >= Number_Of_Colors then raise Constraint_Error;
- end if;
- if Initpair (C_Short (Pair), C_Short (Fore), C_Short (Back))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Init_Pair;
-
- procedure Pair_Content (Pair : in Color_Pair;
- Fore : out Color_Number;
- Back : out Color_Number)
- is
- type C_Short_Access is access all C_Short;
- function Paircontent (Pair : C_Short;
- Fp : C_Short_Access;
- Bp : C_Short_Access) return C_Int;
- pragma Import (C, Paircontent, "pair_content");
-
- F, B : aliased C_Short;
- begin
- if Paircontent (C_Short (Pair), F'Access, B'Access) = Curses_Err then
- raise Curses_Exception;
- else
- Fore := Color_Number (F);
- Back := Color_Number (B);
- end if;
- end Pair_Content;
-
- function Has_Colors return Boolean
- is
- function Hascolors return Curses_Bool;
- pragma Import (C, Hascolors, "has_colors");
- begin
- if Hascolors = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Has_Colors;
-
- procedure Init_Color (Color : in Color_Number;
- Red : in RGB_Value;
- Green : in RGB_Value;
- Blue : in RGB_Value)
- is
- function Initcolor (Col : C_Short;
- Red : C_Short;
- Green : C_Short;
- Blue : C_Short) return C_Int;
- pragma Import (C, Initcolor, "init_color");
- begin
- if Initcolor (C_Short (Color), C_Short (Red), C_Short (Green),
- C_Short (Blue)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Init_Color;
-
- function Can_Change_Color return Boolean
- is
- function Canchangecolor return Curses_Bool;
- pragma Import (C, Canchangecolor, "can_change_color");
- begin
- if Canchangecolor = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Can_Change_Color;
-
- procedure Color_Content (Color : in Color_Number;
- Red : out RGB_Value;
- Green : out RGB_Value;
- Blue : out RGB_Value)
- is
- type C_Short_Access is access all C_Short;
-
- function Colorcontent (Color : C_Short; R, G, B : C_Short_Access)
- return C_Int;
- pragma Import (C, Colorcontent, "color_content");
-
- R, G, B : aliased C_Short;
- begin
- if Colorcontent (C_Short (Color), R'Access, G'Access, B'Access) =
- Curses_Err then
- raise Curses_Exception;
- else
- Red := RGB_Value (R);
- Green := RGB_Value (G);
- Blue := RGB_Value (B);
- end if;
- end Color_Content;
-
-------------------------------------------------------------------------------
- procedure Save_Curses_Mode (Mode : in Curses_Mode)
- is
- function Def_Prog_Mode return C_Int;
- pragma Import (C, Def_Prog_Mode, "def_prog_mode");
- function Def_Shell_Mode return C_Int;
- pragma Import (C, Def_Shell_Mode, "def_shell_mode");
-
- Err : C_Int;
- begin
- case Mode is
- when Curses => Err := Def_Prog_Mode;
- when Shell => Err := Def_Shell_Mode;
- end case;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Save_Curses_Mode;
-
- procedure Reset_Curses_Mode (Mode : in Curses_Mode)
- is
- function Reset_Prog_Mode return C_Int;
- pragma Import (C, Reset_Prog_Mode, "reset_prog_mode");
- function Reset_Shell_Mode return C_Int;
- pragma Import (C, Reset_Shell_Mode, "reset_shell_mode");
-
- Err : C_Int;
- begin
- case Mode is
- when Curses => Err := Reset_Prog_Mode;
- when Shell => Err := Reset_Shell_Mode;
- end case;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Reset_Curses_Mode;
-
- procedure Save_Terminal_State
- is
- function Savetty return C_Int;
- pragma Import (C, Savetty, "savetty");
- begin
- if Savetty = Curses_Err then
- raise Curses_Exception;
- end if;
- end Save_Terminal_State;
-
- procedure Reset_Terminal_State
- is
- function Resetty return C_Int;
- pragma Import (C, Resetty, "resetty");
- begin
- if Resetty = Curses_Err then
- raise Curses_Exception;
- end if;
- end Reset_Terminal_State;
-
- procedure Rip_Off_Lines (Lines : in Integer;
- Proc : in Stdscr_Init_Proc)
- is
- function Ripoffline (Lines : C_Int;
- Proc : Stdscr_Init_Proc) return C_Int;
- pragma Import (C, Ripoffline, "_nc_ripoffline");
- begin
- if Ripoffline (C_Int (Lines), Proc) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Rip_Off_Lines;
-
- procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility)
- is
- function Curs_Set (Curs : C_Int) return C_Int;
- pragma Import (C, Curs_Set, "curs_set");
-
- Res : C_Int;
- begin
- Res := Curs_Set (Cursor_Visibility'Pos (Visibility));
- if Res /= Curses_Err then
- Visibility := Cursor_Visibility'Val (Res);
- end if;
- end Set_Cursor_Visibility;
-
- procedure Nap_Milli_Seconds (Ms : in Natural)
- is
- function Napms (Ms : C_Int) return C_Int;
- pragma Import (C, Napms, "napms");
- begin
- if Napms (C_Int (Ms)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Nap_Milli_Seconds;
-------------------------------------------------------------------------------
-
- function Standard_Window return Window
- is
- Stdscr : Window;
- pragma Import (C, Stdscr, "stdscr");
- begin
- return Stdscr;
- end Standard_Window;
-
- function Lines return Line_Count
- is
- C_Lines : C_Int;
- pragma Import (C, C_Lines, "LINES");
- begin
- return Line_Count (C_Lines);
- end Lines;
-
- function Columns return Column_Count
- is
- C_Columns : C_Int;
- pragma Import (C, C_Columns, "COLS");
- begin
- return Column_Count (C_Columns);
- end Columns;
-
- function Tab_Size return Natural
- is
- C_Tab_Size : C_Int;
- pragma Import (C, C_Tab_Size, "TABSIZE");
- begin
- return Natural (C_Tab_Size);
- end Tab_Size;
-
- function Number_Of_Colors return Natural
- is
- C_Number_Of_Colors : C_Int;
- pragma Import (C, C_Number_Of_Colors, "COLORS");
- begin
- return Natural (C_Number_Of_Colors);
- end Number_Of_Colors;
-
- function Number_Of_Color_Pairs return Natural
- is
- C_Number_Of_Color_Pairs : C_Int;
- pragma Import (C, C_Number_Of_Color_Pairs, "COLOR_PAIRS");
- begin
- return Natural (C_Number_Of_Color_Pairs);
- end Number_Of_Color_Pairs;
-------------------------------------------------------------------------------
- procedure Transform_Coordinates
- (W : in Window := Standard_Window;
- Line : in out Line_Position;
- Column : in out Column_Position;
- Dir : in Transform_Direction := From_Screen)
- is
- type Int_Access is access all C_Int;
- function Transform (W : Window;
- Y, X : Int_Access;
- Dir : Curses_Bool) return C_Int;
- pragma Import (C, Transform, "wmouse_trafo");
-
- X : aliased C_Int := C_Int (Column);
- Y : aliased C_Int := C_Int (Line);
- D : Curses_Bool := Curses_Bool_False;
- R : C_Int;
- begin
- if Dir = To_Screen then
- D := 1;
- end if;
- R := Transform (W, Y'Access, X'Access, D);
- if R = Curses_False then
- raise Curses_Exception;
- else
- Line := Line_Position (Y);
- Column := Column_Position (X);
- end if;
- end Transform_Coordinates;
-
-end Terminal_Interface.Curses;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface.ads b/ncurses-5.2/Ada95/src/terminal_interface.ads
deleted file mode 100644
index d49747b..0000000
--- a/ncurses-5.2/Ada95/src/terminal_interface.ads
+++ /dev/null
@@ -1,48 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface is
- pragma Pure (Terminal_Interface);
---
--- Everything is in the child units
---
-end Terminal_Interface;
-
-
diff --git a/ncurses-5.2/INSTALL b/ncurses-5.2/INSTALL
deleted file mode 100644
index 9fc742f..0000000
--- a/ncurses-5.2/INSTALL
+++ /dev/null
@@ -1,1059 +0,0 @@
--- $Id$
----------------------------------------------------------------------
- How to install Ncurses/Terminfo on your system
----------------------------------------------------------------------
-
- ************************************************************
- * READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. *
- ************************************************************
-
-You should be reading the file INSTALL in a directory called ncurses-d.d, where
-d.d is the current version number. There should be several subdirectories,
-including `c++', `form', `man', `menu', 'misc', `ncurses', `panel', `progs',
-and `test'. See the README file for a roadmap to the package.
-
-If you are a Linux or FreeBSD or NetBSD distribution integrator or packager,
-please read and act on the section titled IF YOU ARE A SYSTEM INTEGRATOR
-below.
-
-If you are converting from BSD curses and do not have root access, be sure
-to read the BSD CONVERSION NOTES section below.
-
-If you are using a version of XFree86 xterm older than 3.1.2F, see the section
-on RECENT XTERM VERSIONS below.
-
-If you are trying to build GNU Emacs using ncurses for terminal support,
-read the USING NCURSES WITH EMACS section below.
-
-If you are trying to build applications using gpm with ncurses,
-read the USING NCURSES WITH GPM section below.
-
-If you are running over the Andrew File System see the note below on
-USING NCURSES WITH AFS.
-
-If you are cross-compiling, see the note below on BUILDING NCURSES WITH A
-CROSS-COMPILER.
-
-If you want to build the Ada95 binding, go to the Ada95 directory and
-follow the instructions there. The Ada95 binding is not covered below.
-
-If you are using anything but (a) Linux, or (b) one of the 4.4BSD-based
-i386 Unixes, go read the Portability section in the TO-DO file before you
-do anything else.
-
-
-REQUIREMENTS:
-------------
-
-You will need the following in order to build and install ncurses under UNIX:
-
- * ANSI C compiler (gcc is recommended)
- * sh (bash will do)
- * awk (mawk or gawk will do)
- * sed
- * BSD or System V style install (a script is enclosed)
-
-Ncurses has been also built in the OS/2 EMX environment.
-
-
-INSTALLATION PROCEDURE:
-----------------------
-
-1. First, decide whether you want ncurses to replace your existing library (in
- which case you'll need super-user privileges) or be installed in parallel
- with it.
-
- The --prefix option to configure changes the root directory for installing
- ncurses. The default is in subdirectories of /usr/local. Use
- --prefix=/usr to replace your default curses distribution. This is the
- default for Linux and BSD/OS users.
-
- The package gets installed beneath the --prefix directory as follows:
-
- In $(prefix)/bin: tic, infocmp, captoinfo, tset,
- reset, clear, tput, toe
- In $(prefix)/lib: libncurses*.* libcurses.a
- In $(prefix)/share/terminfo: compiled terminal descriptions
- In $(prefix)/include: C header files
- Under $(prefix)/man: the manual pages
-
- Note however that the configure script attempts to locate previous
- installation of ncurses, and will set the default prefix according to where
- it finds the ncurses headers.
-
-2. Type `./configure' in the top-level directory of the distribution to
- configure ncurses for your operating system and create the Makefiles.
- Besides --prefix, various configuration options are available to customize
- the installation; use `./configure --help' to list the available options.
-
- If your operating system is not supported, read the PORTABILITY section in
- the file ncurses/README for information on how to create a configuration
- file for your system.
-
- The `configure' script generates makefile rules for one or more object
- models and their associated libraries:
-
- libncurses.a (normal)
-
- libcurses.a (normal, a link to libncurses.a)
- This gets left out if you configure with --disable-overwrite.
-
- libncurses.so (shared)
-
- libncurses_g.a (debug)
-
- libncurses_p.a (profile)
-
- libncurses.la (libtool)
-
- If you do not specify any models, the normal and debug libraries will be
- configured. Typing `configure' with no arguments is equivalent to:
-
- ./configure --with-normal --with-debug --enable-overwrite
-
- Typing
-
- ./configure --with-shared
-
- makes the shared libraries the default, resulting in
-
- ./configure --with-shared --with-normal --with-debug --enable-overwrite
-
- If you want only shared libraries, type
-
- ./configure --with-shared --without-normal --without-debug
-
- Rules for generating shared libraries are highly dependent upon the choice
- of host system and compiler. We've been testing shared libraries on Linux
- and SunOS with gcc, but more work needs to be done to make shared libraries
- work on other systems.
-
- If you have libtool installed, you can type
-
- ./configure --with-libtool
-
- to generate the appropriate static and/or shared libraries for your
- platform using libtool.
-
- You can make curses and terminfo fall back to an existing file of termcap
- definitions by configuring with --enable-termcap. If you do this, the
- library will search /etc/termcap before the terminfo database, and will
- also interpret the contents of the TERM environment variable. See the
- section BSD CONVERSION NOTES below.
-
-3. Type `make'. Ignore any warnings, no error messages should be produced.
- This should compile the ncurses library, the terminfo compiler tic(1),
- captoinfo(1), infocmp(1), toe(1), clear(1) tset(1), reset(1), and tput(1)
- programs (see the manual pages for explanation of what they do), some test
- programs, and the panels, menus, and forms libraries.
-
-4. Run ncurses and several other test programs in the test directory to
- verify that ncurses functions correctly before doing an install that
- may overwrite system files. Read the file test/README for details on
- the test programs.
-
- NOTE: You must have installed the terminfo database, or set the
- environment variable $TERMINFO to point to a SVr4-compatible terminfo
- database before running the test programs. Not all vendors' terminfo
- databases are SVr4-compatible, but most seem to be. Exceptions include
- DEC's Digital Unix (formerly known as OSF/1).
-
- 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.
-
-5. Once you've tested, you can type `make install' to install libraries,
- the programs, the terminfo database and the manual pages. Alternately, you
- can type `make install' in each directory you want to install. In the
- top-level directory, you can do a partial install using these commands:
-
- 'make install.progs' installs tic, infocmp, etc...
- 'make install.includes' installs the headers.
- 'make install.libs' installs the libraries (and the headers).
- 'make install.data' installs the terminfo data. (Note: `tic' must
- be installed before the terminfo data can be
- compiled).
- 'make install.man' installs the manual pages.
-
- ############################################################################
- # CAVEAT EMPTOR: `install.data' run as root will NUKE any existing #
- # terminfo database. If you have any custom or unusual entries SAVE them #
- # before you install ncurses. I have a file called terminfo.custom for #
- # this purpose. Don't forget to run tic on the file once you're done. #
- ############################################################################
-
- The terminfo(5) manual page must be preprocessed with tbl(1) before
- being formatted by nroff(1). Modern man(1) implementations tend to do
- this by default, but you may want to look at your version's manual page
- to be sure. You may also install the manual pages after preprocessing
- 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.
-
- If you have BSD curses installed in your system and you accidentally
- compile using its curses.h you'll end up with a large number of
- undefined symbols at link time. _waddbytes is one of them.
-
- IF YOU DO NOT HAVE ROOT: Change directory to the `progs' subdirectory
- and run the `capconvert' script. This script will deduce various things
- about your environment and use them to build you a private terminfo tree,
- so you can use ncurses applications.
-
- If more than one user at your site does this, the space for the duplicate
- trees is wasted. Try to get your site administrators to install a system-
- wide terminfo tree instead.
-
- See the BSD CONVERSION NOTES section below for a few more details.
-
-6. The c++ directory has C++ classes that are built on top of ncurses and
- panels. You must have c++ (and its libraries) installed before you can
- compile and run the demo.
-
- Use --without-cxx-binding to tell configure to not build the C++ bindings
- and demo.
-
- If you do not have C++, you must use the --without-cxx option to tell
- the configure script to not attempt to determine the type of 'bool'
- 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:
-----------------------------
-
- The configure script provides a short list of its options when you type
-
- ./configure --help
-
- The --help and several options are common to all configure scripts that are
- generated with autoconf. Those are all listed before the line
-
- --enable and --with options recognized:
-
- The other options are specific to this package. We list them in alphabetic
- order.
-
- --disable-assumed-color
- With ncurses 5.1, we introduced a new function, assume_default_colors()
- which allows applications to specify what the default foreground and
- background color are assumed to be. Most color applications use
- full-screen color; but a few do not color the background. While the
- assumed values can be overridden by invoking assume_default_colors(),
- you may find it useful to set the assumed values to the pre-5.1
- convention, using this configure option.
-
- --disable-big-core
- Assume machine has little memory. The configure script attempts to
- determine if your machine has enough memory (about 6Mb) to compile the
- terminfo database without writing portions to disk. Some allocators
- return deceptive results, so you may have to override the configure
- script. Or you may be building tic for a smaller machine.
-
- --disable-database
- 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.
-
- --disable-ext-funcs
- Disable function-extensions. Configure ncurses without the functions
- that are not specified by XSI. See ncurses/modules for the exact
- list of library modules that would be suppressed.
-
- --disable-hashmap
- Compile without hashmap scrolling-optimization code. This algorithm is
- the default.
-
- --disable-leaks
- For testing, compile-in code that frees memory that normally would not
- be freed, to simplify analysis of memory-leaks.
-
- --disable-macros
- For testing, use functions rather than macros. The program will run
- more slowly, but it is simpler to debug. This makes a header file
- "nomacros.h". See also the --enable-expanded option.
-
- --disable-overwrite
- If you are installing ncurses on a system which contains another
- development version of curses, or which could be confused by the loader
- for another version, we recommend that you leave out the link to
- -lcurses. The ncurses library is always available as -lncurses.
- Disabling overwrite also causes the ncurses header files to be
- installed into a subdirectory, e.g., /usr/local/include/ncurses,
- rather than the include directory. This makes it simpler to avoid
- compile-time conflicts with other versions of curses.h
-
- --disable-root-environ
- Compile with environment restriction, so certain environment variables
- are not available when running as root, or via a setuid/setgid
- application. These are (for example $TERMINFO) those that allow the
- search path for the terminfo or termcap entry to be customized.
-
- --disable-scroll-hints
- Compile without scroll-hints code. This option is ignored when
- hashmap scrolling is configured, which is the default.
-
- --enable-add-ons=DIR...
- This is used to check if this package is a glibc add-on. This is used
- only by the glibc makefiles.
-
- --enable-assertions
- For testing, compile-in assertion code. This is used only for a few
- places where ncurses cannot easily recover by returning an error code.
-
- --enable-broken_linker
- A few platforms have what we consider a broken linker: it cannot link
- objects from an archive solely by referring to data objects in those
- files, but requires a function reference. This configure option
- changes several data references to functions to work around this
- problem.
-
- NOTE: With ncurses 5.1, this may not be necessary, since we are
- told that some linkers interpret uninitialized global data as a
- different type of reference which behaves as described above. We have
- explicitly initialized all of the global data to work around the
- problem.
-
- --enable-bsdpad
- Recognize BSD-style prefix padding. Some ancient BSD programs (such as
- nethack) call tputs("50") to implement delays.
-
- --enable-colorfgbg
- Compile with experimental $COLORFGBG code. That environment variable
- is set by some terminal emulators as a hint to applications, by
- advertising the default foreground and background colors. During
- initialization, ncurses sets color pair 0 to match this.
-
- --enable-const
- The curses interface as documented in XSI is rather old, in fact
- including features that precede ANSI C. The prototypes generally do
- not make effective use of "const". When using stricter compilers (or
- gcc with appropriate warnings), you may see warnings about the mismatch
- between const and non-const data. We provide a configure option which
- changes the interfaces to use const - quieting these warnings and
- reflecting the actual use of the parameters more closely. The ncurses
- library uses the symbol NCURSES_CONST for these instances of const,
- and if you have asked for compiler warnings, will add gcc's const-qual
- warning. There will still be warnings due to subtle inconsistencies
- in the interface, but at a lower level.
-
- NOTE: configuring ncurses with this option may detract from the
- portability of your applications by encouraging you to use const in
- places where the XSI curses interface would not allow them. Similar
- issues arise when porting to SVr4 curses, which uses const in even
- fewer places.
-
- --enable-echo
- Use the option --disable-echo to make the build-log less verbose by
- suppressing the display of the compile and link commands. This makes
- it easier to see the compiler warnings. (You can always use "make -n"
- to see the options that are used).
-
- --enable-expanded
- For testing, generate functions for certain macros to make them visible
- as such to the debugger. See also the --disable-macros option.
-
- --enable-getcap
- Use the 4.4BSD getcap code if available, or a bundled version of it to
- fetch termcap entries. Entries read in this way cannot use (make
- cross-references to) the terminfo tree, but it is faster than reading
- /etc/termcap.
-
- --enable-getcap-cache
- Cache translated termcaps under the directory $HOME/.terminfo
-
- NOTE: this sounds good - it makes ncurses run faster the second time.
- But look where the data comes from - an /etc/termcap containing lots of
- entries that are not up to date. If you configure with this option and
- forget to install the terminfo database before running an ncurses
- application, you will end up with a hidden terminfo database that
- generally does not support color and will miss some function keys.
-
- --enable-hard-tabs
- Compile-in cursor-optimization code that uses hard-tabs. We would make
- this a standard feature except for the concern that the terminfo entry
- may not be accurate, or that your stty settings have disabled the use
- of tabs.
-
- --enable-no-padding
- Compile-in support for the $NCURSES_NO_PADDING environment variable,
- which allows you to suppress the effect of non-mandatory padding in
- terminfo entries. This is the default, unless you have disabled the
- extended functions.
-
- --enable-rpath
- Use rpath option when generating shared libraries, and with some
- restrictions when linking the corresponding programs. This applies
- mainly to systems using the GNU linker (read the manpage).
-
- --enable-safe-sprintf
- Compile with experimental safe-sprintf code. You may consider using
- this if you are building ncurses for a system that has neither
- vsnprintf() or vsprintf(). It is slow, however.
-
- --enable-sigwinch
- Compile support for ncurses' SIGWINCH handler. If your application has
- its own SIGWINCH handler, ncurses will not use its own. The ncurses
- handler causes wgetch() to return KEY_RESIZE when the screen-size
- changes. This option is the default, unless you have disabled the
- extended functions.
-
- --enable-symlinks
- If your system supports symbolic links, make tic use symbolic links
- rather than hard links to save diskspace when writing aliases in the
- terminfo database.
-
- --enable-tcap-names
- Compile-in support for user-definable terminal capabilities. Use the
- -x option of tic and infocmp to treat unrecognized terminal
- capabilities as user-defined strings. This option is the default,
- unless you have disabled the extended functions.
-
- --enable-termcap
- Compile in support for reading terminal descriptions from termcap if no
- match is found in the terminfo database. See also the --enable-getcap
- and --enable-getcap-cache options.
-
- --enable-warnings
- Turn on GCC compiler warnings. There should be only a few.
-
- --enable-widec
- Compile with experimental wide-character code. This makes a different
- version of the libraries (e.g., libncursesw.so), which stores
- characters in 16-bits. We provide a simple UTF-8 driver and test
- program to use this feature with terminals that can display UTF-8.
-
- 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
-
- --enable-xmc-glitch
- Compile-in support experimental xmc (magic cookie) code.
-
- --with-ada-compiler=CMD
- Specify the Ada95 compiler command (default "gnatmake")
-
- --with-ada-include=DIR
- Tell where to install the Ada includes (default:
- PREFIX/lib/ada/adainclude)
-
- --with-ada-objects=DIR
- Tell where to install the Ada objects (default: PREFIX/lib/ada/adalib)
-
- --with-database=XXX
- Specify the terminfo source file to install. Usually you will wish
- to install ncurses' default (misc/terminfo.src). Certain systems
- have special requirements, e.g, OS/2 EMX has a customized terminfo
- source file.
-
- --with-dbmalloc
- For testing, compile and link with Conor Cahill's dbmalloc library.
-
- --with-debug
- Generate debug-libraries (default). These are named by adding "_g"
- to the root, e.g., libncurses_g.a
-
- --with-default-terminfo-dir=XXX
- Specify the default terminfo database directory. This is normally
- DATADIR/terminfo, e.g., /usr/share/terminfo.
-
- --with-develop
- Enable experimental/development options. This does not count those
- that change the interface, such as --enable-widec.
-
- --with-dmalloc
- For testing, compile and link with Gray Watson's dmalloc library.
-
- --with-fallbacks=XXX
- Specify a list of fallback terminal descriptions which will be
- compiled into the ncurses library. See CONFIGURING FALLBACK ENTRIES.
-
- --with-gpm
- use Alessandro Rubini's GPM library to provide mouse support on the
- Linux console.
-
- --with-install-prefix=XXX
- Allows you to specify an alternate location for installing ncurses
- after building it. The value you specify is prepended to the "real"
- install location. This simplifies making binary packages.
-
- NOTE: a few systems build shared libraries with fixed pathnames; this
- option probably will not work for those configurations.
-
- --with-libtool
- Generate libraries with libtool. If this option is selected, then
- it overrides all other library model specifications.
-
- --with-manpage-format=XXX
- Tell the configure script how you would like to install man-pages. The
- option value must be one of these: gzip, compress, BSDI, normal,
- formatted. If you do not give this option, the configure script
- attempts to determine which is the case.
-
- --with-manpage-renames=XXX
- Tell the configure script that you wish to rename the manpages while
- installing. Currently the only distribution which does this is
- the Linux Debian. The option value specifies the name of a file
- that lists the renamed files, e.g., $srcdir/man/man_db.renames
-
- --with-manpage-symlinks
- Tell the configure script that you wish to make symbolic links in the
- man-directory for aliases to the man-pages. This is the default, but
- can be disabled for systems that provide this automatically. Doing
- this on systems that do not support symbolic links will result in
- copying the man-page for each alias.
-
- --with-manpage-tbl
- Tell the configure script that you with to preprocess the manpages
- by running them through tbl to generate tables understandable by
- nroff.
-
- --with-normal
- Generate normal (i.e., static) libraries (default).
-
- --with-profile
- Generate profile-libraries These are named by adding "_p" to the root,
- e.g., libncurses_p.a
-
- --with-rcs-ids
- Compile-in RCS identifiers. Most of the C files have an identifier.
-
- --with-shared
- Generate shared-libraries. The names given depend on the system for
- which you are building, typically using a ".so" suffix, along with
- symbolic links that refer to the release version.
-
- NOTE: Unless you override the configure script by setting the $CFLAGS
- environment variable, these will not be built with the -g debugging
- option.
-
- --with-shlib-version=XXX
- Specify whether to use the release or ABI version for shared libraries.
- This is normally chosen automatically based on the type of system
- which you are building on. We use it for testing the configure script.
-
- --with-system-type=XXX
- For testing, override the derived host system-type which is used to
- decide things such as the linker commands used to build shared
- libraries. This is normally chosen automatically based on the type of
- system which you are building on. We use it for testing the configure
- script.
-
- --with-terminfo-dirs=XXX
- Specify a search-list of terminfo directories which will be compiled
- into the ncurses library (default: DATADIR/terminfo)
-
- --with-termlib
- When building the ncurses library, organize this as two parts: the
- curses library (libncurses) and the low-level terminfo library
- (libtinfo). This is done to accommodate applications that use only
- the latter. The terminfo library is about half the size of the total.
-
- --without-ada
- Suppress the configure script's check for Ada95, do not build the
- Ada95 binding and related demo.
-
- --without-curses-h
- Don't install the ncurses header with the name "curses.h". Rather,
- install as "ncurses.h" and modify the installed headers and manpages
- accordingly.
-
- --without-cxx
- XSI curses declares "bool" as part of the interface. C++ also declares
- "bool". Neither specifies the size and type of booleans, but both
- insist on the same name. We chose to accommodate this by making the
- configure script check for the size and type (e.g., unsigned or signed)
- that your C++ compiler uses for booleans. If you do not wish to use
- ncurses with C++, use this option to tell the configure script to not
- adjust ncurses bool to match C++.
-
- --without-cxx-binding
- Suppress the configure script's check for C++, do not build the
- C++ binding and related demo.
-
- --without-progs
- Tell the configure script to suppress the build of ncurses' application
- programs (e.g., tic). The test applications will still be built if you
- type "make", though not if you simply do "make install".
-
-
-COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
---------------------------------------------
-
- Because ncurses implements the X/Open Curses Specification, its interface
- is fairly stable. That does not mean the interface does not change.
- Changes are made to the documented interfaces when we find differences
- between ncurses and X/Open or implementations which they certify (such as
- Solaris). We add extensions to those interfaces to solve problems not
- addressed by the original curses design, but those must not conflict with
- the X/Open documentation.
-
- Here are some of the major interface changes, and related problems which
- you may encounter when building a system with different versions of
- ncurses:
-
- 5.1 (July 8, 2000)
- Interface changes:
-
- + made the extended terminal capabilities
- (configure --enable-tcap-names) a standard feature. This should
- be transparent to applications that do not require it.
-
- + removed the trace() function and related trace support from the
- production library.
-
- + modified curses.h.in, undef'ing some symbols to avoid conflict
- with C++ STL.
-
- Added extensions: assume_default_colors().
-
- 5.0 (October 23, 1999)
- Interface changes:
-
- + implemented the wcolor_set() and slk_color() functions.
-
- + move macro winch to a function, to hide details of struct ldat
-
- + corrected prototypes for slk_* functions, using chtype rather than
- attr_t.
-
- + the slk_attr_{set,off,on} functions need an additional void*
- parameter according to XSI.
-
- + modified several prototypes to correspond with 1997 version of X/Open
- Curses: [w]attr_get(), [w]attr_set(), border_set() have different
- parameters. Some functions were renamed or misspelled:
- erase_wchar(), in_wchntr(), mvin_wchntr(). Some developers have used
- attr_get().
-
- Added extensions: keybound(), curses_version().
-
- Terminfo database changes:
-
- + change translation for termcap 'rs' to terminfo 'rs2', which is
- the documented equivalent, rather than 'rs1'.
-
- The problems are subtler in recent releases.
-
- a) This release provides users with the ability to define their own
- terminal capability extensions, like termcap. To accomplish this,
- we redesigned the TERMTYPE struct (in term.h). Very few
- applications use this struct. They must be recompiled to work with
- the 5.0 library.
-
- a) If you use the extended terminfo names (i.e., you used configure
- --enable-tcap-names), the resulting terminfo database can have some
- entries which are not readable by older versions of ncurses. This
- is a bug in the older versions:
-
- + the terminfo database stores booleans, numbers and strings in
- arrays. The capabilities that are listed in the arrays are
- specified by X/Open. ncurses recognizes a number of obsolete and
- extended names which are stored past the end of the specified
- entries.
-
- + a change to read_entry.c in 951001 made the library do an lseek()
- call incorrectly skipping data which is already read from the
- string array. This happens when the number of strings in the
- terminfo data file is greater than STRCOUNT, the number of
- specified and obsolete or extended strings.
-
- + as part of alignment with the X/Open final specification, in the
- 990109 patch we added two new terminfo capabilities:
- set_a_attributes and set_pglen_inch). This makes the indices for
- the obsolete and extended capabilities shift up by 2.
-
- + the last two capabilities in the obsolete/extended list are memu
- and meml, which are found in most terminfo descriptions for xterm.
-
- When trying to read this terminfo entry, the spurious lseek()
- causes the library to attempt to read the final portion of the
- terminfo data (the text of the string capabilities) 4 characters
- past its starting point, and reads 4 characters too few. The
- library rejects the data, and applications are unable to
- initialize that terminal type.
-
- FIX: remove memu and meml from the xterm description. They are
- obsolete, not used by ncurses. (It appears that the feature was
- added to xterm to make it more like hpterm).
-
- This is not a problem if you do not use the -x option of tic to
- create a terminfo database with extended names. Note that the
- user-defined terminal capabilities are not affected by this bug,
- since they are stored in a table after the older terminfo data ends,
- and are invisible to the older libraries.
-
- c) Some developers did not wish to use the C++ binding, and used the
- configure --without-cxx option. This causes problems if someone
- uses the ncurses library from C++ because that configure test
- determines the type for C++'s bool and makes ncurses match it, since
- both C++ and curses are specified to declare bool. Calling ncurses
- functions with the incorrect type for bool will cause execution
- errors. In 5.0 we added a configure option "--without-cxx-binding"
- which controls whether the binding itself is built and installed.
-
- 4.2 (March 2, 1998)
- Interface changes:
-
- + correct prototype for termattrs() as per XPG4 version 2.
-
- + add placeholder prototypes for color_set(), erasewchar(),
- term_attrs(), wcolor_set() as per XPG4 version 2.
-
- + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in
- SVr4 headers.
-
- New extensions: keyok() and define_key().
-
- Terminfo database changes:
-
- + corrected definition in curses.h for ACS_LANTERN, which was 'I'
- rather than 'i'.
-
- 4.1 (May 15, 1997)
-
- We added these extensions: use_default_colors(). Also added
- configure option --enable-const, to support the use of const where
- X/Open should have, but did not, specify.
-
- The terminfo database content changed the representation of color for
- most entries that use ANSI colors. SVr4 curses treats the setaf/setab
- and setf/setb capabilities differently, interchanging the red/blue
- colors in the latter.
-
- 4.0 (December 24, 1996)
-
- We bumped to version 4.0 because the newly released dynamic loader
- (ld.so.1.8.5) on Linux did not load shared libraries whose ABI and REL
- versions were inconsistent. At that point, ncurses ABI was 3.4 and the
- REL was 1.9.9g, so we made them consistent.
-
- 1.9.9g (December 1, 1996)
-
- This fixed most of the problems with 1.9.9e, and made these interface
- changes:
-
- + remove tparam(), which had been provided for compatibility with
- some termcap. tparm() is standard, and does not conflict with
- application's fallback for missing tparam().
-
- + turn off hardware echo in initscr(). This changes the sense of the
- echo() function, which was initialized to echoing rather than
- nonechoing (the latter is specified). There were several other
- corrections to the terminal I/O settings which cause applications to
- behave differently.
-
- + implemented several functions (such as attr_on()) which were
- available only as macros.
-
- + corrected several typos in curses.h.in (i.e., the mvXXXX macros).
-
- + corrected prototypes for delay_output(),
- has_color, immedok() and idcok().
-
- + corrected misspelled getbkgd(). Some applications used the
- misspelled name.
-
- + added _yoffset to WINDOW. The size of WINDOW does not impact
- applications, since they use only pointers to WINDOW structs.
-
- These changes were made to the terminfo database:
-
- + removed boolean 'getm' which was available as an extended name.
-
- We added these extensions: wresize(), resizeterm(), has_key() and
- mcprint().
-
- 1.9.9e (March 24, 1996)
-
- not recommended (a last-minute/untested change left the forms and
- menus libraries unusable since they do not repaint the screen).
- Foreground/background colors are combined incorrectly, working properly
- only on a black background. When this was released, the X/Open
- specification was available only in draft form.
-
- Some applications (such as lxdialog) were "fixed" to work with the
- incorrect color scheme.
-
-
-IF YOU ARE A SYSTEM INTEGRATOR:
-------------------------------
-
- Beginning with 1.9.9, the ncurses distribution includes both a tset
- utility and /usr/share/tabset directory. If you are installing ncurses,
- it is no longer either necessary or desirable to install tset-jv.
-
- Configuration and Installation:
-
- Configure with --prefix=/usr to make the install productions put
- libraries and headers in the correct locations (overwriting any
- previous curses libraries and headers). This will put the terminfo
- hierarchy under /usr/share/terminfo; you may want to override this with
- --datadir=/usr/share/misc; terminfo and tabset are installed under the
- data directory.
-
- Please configure the ncurses library in a pure-terminfo mode; that
- is, with the --disable-termcap option. This will make the ncurses
- library smaller and faster. The ncurses library includes a termcap
- emulation that queries the terminfo database, so even applications
- that use raw termcap to query terminal characteristics will win
- (providing you recompile and relink them!).
-
- If you must configure with termcap fallback enabled, you may also
- wish to use the --enable-getcap option. This option speeds up
- termcap-based startups, at the expense of not allowing personal
- termcap entries to reference the terminfo tree. See the code in
- ncurses/tinfo/read_termcap.c for details.
-
- Note that if you have $TERMCAP set, ncurses will use that value
- to locate termcap data. In particular, running from xterm will
- set $TERMCAP to the contents of the xterm's termcap entry.
- If ncurses sees that, it will not examine /etc/termcap.
-
- Keyboard Mapping:
-
- The terminfo file assumes that Shift-Tab generates \E[Z (the ECMA-48
- reverse-tabulation sequence) rather than ^I. Here are the loadkeys -d
- mappings that will set this up:
-
- keycode 15 = Tab Tab
- alt keycode 15 = Meta_Tab
- shift keycode 15 = F26
- string F26 ="\033[Z"
-
- Naming the Console Terminal
-
- In various Linuxes (and possibly elsewhere) there has been a practice
- of designating the system console driver type as `console'. Please
- do not do this any more! It complicates peoples' lives, because it
- can mean that several different terminfo entries from different
- operating systems all logically want to be called `console'.
-
- Please pick a name unique to your console driver and set that up
- in the /etc/inittab table or local equivalent. Send the entry to the
- terminfo maintainer (listed in the misc/terminfo file) to be included
- in the terminfo file, if it's not already there. See the
- term(7) manual page included with this distribution for more on
- conventions for choosing type names.
-
- Here are some recommended primary console names:
-
- linux -- Linux console driver
- freebsd -- FreeBSD
- netbsd -- NetBSD
- bsdos -- BSD/OS
-
- If you are responsible for integrating ncurses for one of these
- distribution, please either use the recommended name or get back
- to us explaining why you don't want to, so we can work out nomenclature
- that will make users' lives easier rather than harder.
-
-
-RECENT XTERM VERSIONS:
----------------------
-
- The terminfo database file included with this distribution assumes you
- are running an XFree86 xterm based on X11R6 (i.e., xterm-r6). The
- earlier X11R5 entry (xterm-r5) is provided as well.
-
- If you are running XFree86 version 3.2 (actually 3.1.2F and up), you
- should consider using the xterm-xf86-v32 (or later, the most recent
- version is always named "xterm-xfree86") entry, which adds ANSI color
- and the VT220 capabilities which have been added in XFree86. If you
- are running a mixed network, however, where this terminal description
- may be used on an older xterm, you may have problems, since
- applications that assume these capabilities will produce incorrect
- output on the older xterm (e.g., highlighting is not cleared).
-
-
-CONFIGURING FALLBACK ENTRIES:
-----------------------------
-
- In order to support operation of ncurses programs before the terminfo
- tree is accessible (that is, in single-user mode or at OS installation
- time) the ncurses library can be compiled to include an array of
- pre-fetched fallback entries.
-
- These entries are checked by setupterm() only when the conventional
- fetches from the terminfo tree and the termcap fallback (if configured)
- have been tried and failed. Thus, the presence of a fallback will not
- shadow modifications to the on-disk entry for the same type, when that
- entry is accessible.
-
- By default, there are no entries on the fallback list. After you
- have built the ncurses suite for the first time, you can change
- the list (the process needs infocmp(1)). To do so, use the script
- MKfallback.sh. A configure script option --with-fallbacks does this
- (it accepts a comma-separated list of the names you wish, and does
- not require a rebuild).
-
- If you wanted (say) to have linux, vt100, and xterm fallbacks, you
- would use the commands
-
- cd ncurses;
- MKfallback.sh linux vt100 xterm >fallback.c
-
- Then just rebuild and reinstall the library as you would normally.
- You can restore the default empty fallback list with
-
- MKfallback.sh >fallback.c
-
- The overhead for an empty fallback list is one trivial stub function.
- Any non-empty fallback list is const-ed and therefore lives in sharable
- text space. You can look at the comment trailing each initializer in
- the generated ncurses/fallback.c file to see the core cost of the
- fallbacks. A good rule of thumb for modern vt100-like entries is that
- each one will cost about 2.5K of text space.
-
-
-BSD CONVERSION NOTES:
---------------------
-
- If you need to support really ancient BSD programs, you probably
- want to configure with the --enable-bsdpad option. What this does
- is enable code in tputs() that recognizes a numeric prefix on a
- capability as a request for that much trailing padding in milliseconds.
- There are old BSD programs that do things like tputs("50").
-
- (If you are distributing ncurses as a support-library component of
- an application you probably want to put the remainder of this section
- in the package README file.)
-
- The following note applies only if you have configured ncurses with
- --enable-termcap.
-
-------------------------------- CUT HERE --------------------------------
-
-If you are installing this application privately (either because you
-have no root access or want to experiment with it before doing a root
-installation), there are a couple of details you need to be aware of.
-They have to do with the ncurses library, which uses terminfo rather
-than termcap for describing terminal characteristics.
-
-Though the ncurses library is terminfo-based, it will interpret your
-TERMCAP variable (if present), any local termcap files you reference
-through it, and the system termcap file. However, in order to avoid
-slowing down your application startup, it will only do this once per
-terminal type!
-
-The first time you load a given terminal type from your termcap
-database, the library initialization code will automatically write it
-in terminfo format to a subdirectory under $HOME/.terminfo. After
-that, the initialization code will find it there and do a (much
-faster) terminfo fetch.
-
-Usually, all this means is that your home directory will silently grow
-an invisible .terminfo subdirectory which will get filled in with
-terminfo descriptions of terminal types as you invoke them. If anyone
-ever installs a global terminfo tree on your system, this will quietly
-stop happening and your $HOME/.terminfo will become redundant.
-
-The objective of all this logic is to make converting from BSD termcap
-as painless as possible without slowing down your application (termcap
-compilation is expensive).
-
-If you don't have a TERMCAP variable or custom personal termcap file,
-you can skip the rest of this dissertation.
-
-If you *do* have a TERMCAP variable and/or a custom personal termcap file
-that defines a terminal type, that definition will stop being visible
-to this application after the first time you run it, because it will
-instead see the terminfo entry that it wrote to $HOME/terminfo the
-first time around.
-
-Subsequently, editing the TERMCAP variable or personal TERMCAP file
-will have no effect unless you explicitly remove the terminfo entry
-under $HOME/terminfo. If you do that, the entry will be recompiled
-from your termcap resources the next time it is invoked.
-
-To avoid these complications, use infocmp(1) and tic(1) to edit the
-terminfo directory directly.
-
-------------------------------- CUT HERE --------------------------------
-
-USING NCURSES WITH AFS:
- AFS treats each directory as a separate logical filesystem, you
- can't hard-link across them. The --enable-symlinks option copes
- with this by making tic use symbolic links.
-
-USING NCURSES WITH EMACS:
- GNU Emacs has its own termcap support. By default, it uses a mixture
- of those functions and code linked from the host system's libraries.
- You need to foil this and shut out the GNU termcap library entirely.
-
- In order to do this, hack the Linux config file (s/linux.h) to contain
- a #define TERMINFO and set the symbol LIBS_TERMCAP to "-lncurses".
-
- We have submitted such a change for the 19.30 release, so it may
- already be applied in your sources -- check for the #define TERMINFO.
-
-USING NCURSES WITH GPM:
- Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse)
- which is used on Linux console. Be aware that GPM is commonly
- installed as a shared library which contains a wrapper for the curses
- wgetch() function (libcurses.o). Some integrators have simplified
- linking applications by combining all or part of libcurses.so (the BSD
- curses) into the libgpm.so file, producing symbol conflicts with
- ncurses (specifically the wgetch function). You may be able to work
- around this problem by linking as follows:
-
- cc -o foo foo.o -lncurses -lgpm -lncurses
-
- but the linker may not cooperate, producing mysterious errors.
- A patched version of gpm is available:
-
- dickey.his.com:/ncurses/gpm-1.10-970125.tar.gz
-
- This patch is incorporated in gpm 1.12; however some integrators
- are slow to update this library. Current distributions of gpm can
- be configured properly using the --without-curses option.
-
-BUILDING NCURSES WITH A CROSS-COMPILER
- Ncurses can be built with a cross-compiler. Some parts must be built
- with the host's compiler since they are used for building programs
- (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables
- that are compiled into the ncurses library. You should set the
- BUILD_CC environment variable to your host's compiler, and run the
- configure script configuring for the cross-compiler.
-
- Note that all of the generated source-files which are part of ncurses
- will be made if you use
-
- make sources
-
- This would be useful in porting to an environment which has little
- support for the tools used to generate the sources, e.g., sed, awk and
- Bourne-shell.
-
-BUGS:
- Send any feedback to the ncurses mailing list at
- bug-ncurses@gnu.org. To subscribe send mail to
- bug-ncurses-request@gnu.org with body that reads:
- subscribe ncurses <your-email-address-here>
-
- The Hacker's Guide in the doc directory includes some guidelines
- on how to report bugs in ways that will get them fixed most quickly.
diff --git a/ncurses-5.2/MANIFEST b/ncurses-5.2/MANIFEST
deleted file mode 100644
index 24368e5..0000000
--- a/ncurses-5.2/MANIFEST
+++ /dev/null
@@ -1,866 +0,0 @@
-./ANNOUNCE
-./Ada95/Makefile.in
-./Ada95/README
-./Ada95/TODO
-./Ada95/gen/Makefile.in
-./Ada95/gen/gen.c
-./Ada95/gen/html.m4
-./Ada95/gen/normal.m4
-./Ada95/gen/table.m4
-./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.ads.m4
-./Ada95/samples/Makefile.in
-./Ada95/samples/README
-./Ada95/samples/explain.txt
-./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-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.adb
-./Ada95/src/terminal_interface.ads
-./INSTALL
-./MANIFEST
-./Makefile.glibc
-./Makefile.in
-./Makefile.os2
-./NEWS
-./README
-./README.emx
-./README.glibc
-./TO-DO
-./aclocal.m4
-./announce.html.in
-./c++/Makefile.in
-./c++/NEWS
-./c++/PROBLEMS
-./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++/headers
-./c++/internal.h
-./c++/modules
-./config.guess
-./config.sub
-./configure
-./configure.in
-./convert_configure.pl
-./dist.mk
-./doc/hackguide.doc
-./doc/html/Ada95.html
-./doc/html/ada/files.htm
-./doc/html/ada/files/T.htm
-./doc/html/ada/funcs.htm
-./doc/html/ada/funcs/A.htm
-./doc/html/ada/funcs/B.htm
-./doc/html/ada/funcs/C.htm
-./doc/html/ada/funcs/D.htm
-./doc/html/ada/funcs/E.htm
-./doc/html/ada/funcs/F.htm
-./doc/html/ada/funcs/G.htm
-./doc/html/ada/funcs/H.htm
-./doc/html/ada/funcs/I.htm
-./doc/html/ada/funcs/K.htm
-./doc/html/ada/funcs/L.htm
-./doc/html/ada/funcs/M.htm
-./doc/html/ada/funcs/N.htm
-./doc/html/ada/funcs/O.htm
-./doc/html/ada/funcs/P.htm
-./doc/html/ada/funcs/Q.htm
-./doc/html/ada/funcs/R.htm
-./doc/html/ada/funcs/S.htm
-./doc/html/ada/funcs/T.htm
-./doc/html/ada/funcs/U.htm
-./doc/html/ada/funcs/V.htm
-./doc/html/ada/funcs/W.htm
-./doc/html/ada/index.htm
-./doc/html/ada/main.htm
-./doc/html/ada/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-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__adb.htm
-./doc/html/ada/terminal_interface-curses__ads.htm
-./doc/html/ada/terminal_interface__ads.htm
-./doc/html/announce.html
-./doc/html/hackguide.html
-./doc/html/index.html
-./doc/html/man/captoinfo.1m.html
-./doc/html/man/clear.1.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_attr.3x.html
-./doc/html/man/curs_beep.3x.html
-./doc/html/man/curs_bkgd.3x.html
-./doc/html/man/curs_border.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_getch.3x.html
-./doc/html/man/curs_getstr.3x.html
-./doc/html/man/curs_getyx.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_insch.3x.html
-./doc/html/man/curs_insstr.3x.html
-./doc/html/man/curs_instr.3x.html
-./doc/html/man/curs_kernel.3x.html
-./doc/html/man/curs_mouse.3x.html
-./doc/html/man/curs_move.3x.html
-./doc/html/man/curs_outopts.3x.html
-./doc/html/man/curs_overlay.3x.html
-./doc/html/man/curs_pad.3x.html
-./doc/html/man/curs_print.3x.html
-./doc/html/man/curs_printw.3x.html
-./doc/html/man/curs_refresh.3x.html
-./doc/html/man/curs_scanw.3x.html
-./doc/html/man/curs_scr_dump.3x.html
-./doc/html/man/curs_scroll.3x.html
-./doc/html/man/curs_slk.3x.html
-./doc/html/man/curs_termattrs.3x.html
-./doc/html/man/curs_termcap.3x.html
-./doc/html/man/curs_terminfo.3x.html
-./doc/html/man/curs_touch.3x.html
-./doc/html/man/curs_trace.3x.html
-./doc/html/man/curs_util.3x.html
-./doc/html/man/curs_window.3x.html
-./doc/html/man/default_colors.3x.html
-./doc/html/man/define_key.3x.html
-./doc/html/man/form.3x.html
-./doc/html/man/form_cursor.3x.html
-./doc/html/man/form_data.3x.html
-./doc/html/man/form_driver.3x.html
-./doc/html/man/form_field.3x.html
-./doc/html/man/form_field_attributes.3x.html
-./doc/html/man/form_field_buffer.3x.html
-./doc/html/man/form_field_info.3x.html
-./doc/html/man/form_field_just.3x.html
-./doc/html/man/form_field_new.3x.html
-./doc/html/man/form_field_opts.3x.html
-./doc/html/man/form_field_userptr.3x.html
-./doc/html/man/form_field_validation.3x.html
-./doc/html/man/form_fieldtype.3x.html
-./doc/html/man/form_hook.3x.html
-./doc/html/man/form_new.3x.html
-./doc/html/man/form_new_page.3x.html
-./doc/html/man/form_opts.3x.html
-./doc/html/man/form_page.3x.html
-./doc/html/man/form_post.3x.html
-./doc/html/man/form_requestname.3x.html
-./doc/html/man/form_userptr.3x.html
-./doc/html/man/form_win.3x.html
-./doc/html/man/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/headers
-./form/llib-lform
-./form/modules
-./include/Caps
-./include/MKhashsize.sh
-./include/MKncurses_def.sh
-./include/MKparametrized.sh
-./include/MKterm.h.awk.in
-./include/Makefile.in
-./include/capdefaults.c
-./include/curses.h.in
-./include/edit_cfg.sh
-./include/headers
-./include/nc_alloc.h
-./include/nc_panel.h
-./include/ncurses_cfg.hin
-./include/ncurses_defs
-./include/term_entry.h
-./include/termcap.h.in
-./include/tic.h
-./include/unctrl.h.in
-./install-sh
-./man/MKterminfo.sh
-./man/Makefile.in
-./man/captoinfo.1m
-./man/clear.1
-./man/curs_addch.3x
-./man/curs_addchstr.3x
-./man/curs_addstr.3x
-./man/curs_attr.3x
-./man/curs_beep.3x
-./man/curs_bkgd.3x
-./man/curs_border.3x
-./man/curs_clear.3x
-./man/curs_color.3x
-./man/curs_delch.3x
-./man/curs_deleteln.3x
-./man/curs_extend.3x
-./man/curs_getch.3x
-./man/curs_getstr.3x
-./man/curs_getyx.3x
-./man/curs_inch.3x
-./man/curs_inchstr.3x
-./man/curs_initscr.3x
-./man/curs_inopts.3x
-./man/curs_insch.3x
-./man/curs_insstr.3x
-./man/curs_instr.3x
-./man/curs_kernel.3x
-./man/curs_mouse.3x
-./man/curs_move.3x
-./man/curs_outopts.3x
-./man/curs_overlay.3x
-./man/curs_pad.3x
-./man/curs_print.3x
-./man/curs_printw.3x
-./man/curs_refresh.3x
-./man/curs_scanw.3x
-./man/curs_scr_dump.3x
-./man/curs_scroll.3x
-./man/curs_slk.3x
-./man/curs_termattrs.3x
-./man/curs_termcap.3x
-./man/curs_terminfo.3x
-./man/curs_touch.3x
-./man/curs_trace.3x
-./man/curs_util.3x
-./man/curs_window.3x
-./man/default_colors.3x
-./man/define_key.3x
-./man/form.3x
-./man/form_cursor.3x
-./man/form_data.3x
-./man/form_driver.3x
-./man/form_field.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_opts.3x
-./man/form_field_userptr.3x
-./man/form_field_validation.3x
-./man/form_fieldtype.3x
-./man/form_hook.3x
-./man/form_new.3x
-./man/form_new_page.3x
-./man/form_opts.3x
-./man/form_page.3x
-./man/form_post.3x
-./man/form_requestname.3x
-./man/form_userptr.3x
-./man/form_win.3x
-./man/infocmp.1m
-./man/infotocap.1m
-./man/keybound.3x
-./man/keyok.3x
-./man/make_sed.sh
-./man/man_db.renames
-./man/manlinks.sed
-./man/menu.3x
-./man/menu_attributes.3x
-./man/menu_cursor.3x
-./man/menu_driver.3x
-./man/menu_format.3x
-./man/menu_hook.3x
-./man/menu_items.3x
-./man/menu_mark.3x
-./man/menu_new.3x
-./man/menu_opts.3x
-./man/menu_pattern.3x
-./man/menu_post.3x
-./man/menu_requestname.3x
-./man/menu_spacing.3x
-./man/menu_userptr.3x
-./man/menu_win.3x
-./man/mitem_current.3x
-./man/mitem_name.3x
-./man/mitem_new.3x
-./man/mitem_opts.3x
-./man/mitem_userptr.3x
-./man/mitem_value.3x
-./man/mitem_visible.3x
-./man/ncurses.3x
-./man/panel.3x
-./man/resizeterm.3x
-./man/term.5
-./man/term.7
-./man/terminfo.head
-./man/terminfo.tail
-./man/tic.1m
-./man/toe.1m
-./man/tput.1
-./man/tset.1
-./man/wresize.3x
-./menu/Makefile.in
-./menu/READ.ME
-./menu/eti.h
-./menu/headers
-./menu/llib-lmenu
-./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
-./menu/modules
-./misc/Makefile.in
-./misc/chkdef.cmd
-./misc/cleantic.cmd
-./misc/cmpdef.cmd
-./misc/emx.src
-./misc/form.def
-./misc/form.ref
-./misc/indent.pro
-./misc/makedef.cmd
-./misc/makellib
-./misc/menu.def
-./misc/menu.ref
-./misc/ncurses.def
-./misc/ncurses.ref
-./misc/panel.def
-./misc/panel.ref
-./misc/run_tic.in
-./misc/shlib
-./misc/tabset/std
-./misc/tabset/stdcrt
-./misc/tabset/vt100
-./misc/tabset/vt300
-./misc/tdlint
-./misc/terminfo.src
-./mk-0th.awk
-./mk-1st.awk
-./mk-2nd.awk
-./mkinstalldirs
-./ncurses/Makefile.in
-./ncurses/README
-./ncurses/SigAction.h
-./ncurses/base/MKkeyname.awk
-./ncurses/base/MKlib_gen.sh
-./ncurses/base/MKunctrl.awk
-./ncurses/base/README
-./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/modules
-./ncurses/tinfo/MKcaptab.awk
-./ncurses/tinfo/MKfallback.sh
-./ncurses/tinfo/MKnames.awk
-./ncurses/tinfo/README
-./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
-./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/README
-./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/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
-./panel/Makefile.in
-./panel/headers
-./panel/llib-lpanel
-./panel/modules
-./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/capconvert
-./progs/clear.c
-./progs/clear.sh
-./progs/dump_entry.c
-./progs/dump_entry.h
-./progs/infocmp.c
-./progs/modules
-./progs/progs.priv.h
-./progs/tic.c
-./progs/toe.c
-./progs/tput.c
-./progs/tset.c
-./sysdeps/unix/sysv/linux/Makefile
-./sysdeps/unix/sysv/linux/alpha/configure
-./sysdeps/unix/sysv/linux/configure
-./sysdeps/unix/sysv/linux/edit_man.sed
-./sysdeps/unix/sysv/linux/edit_man.sh
-./sysdeps/unix/sysv/linux/run_tic.sh
-./tack/COPYING
-./tack/HISTORY
-./tack/Makefile.in
-./tack/README
-./tack/ansi.c
-./tack/charset.c
-./tack/color.c
-./tack/control.c
-./tack/crum.c
-./tack/edit.c
-./tack/fun.c
-./tack/init.c
-./tack/menu.c
-./tack/modes.c
-./tack/modules
-./tack/output.c
-./tack/pad.c
-./tack/scan.c
-./tack/sync.c
-./tack/sysdep.c
-./tack/tack.1
-./tack/tack.c
-./tack/tack.h
-./tar-copy.sh
-./test/Makefile.in
-./test/README
-./test/blue.c
-./test/bs.6
-./test/bs.c
-./test/cardfile.c
-./test/cardfile.dat
-./test/configure
-./test/configure.in
-./test/ditto.c
-./test/dots.c
-./test/filter.c
-./test/firework.c
-./test/firstlast.c
-./test/gdc.6
-./test/gdc.c
-./test/hanoi.c
-./test/hashtest.c
-./test/keynames.c
-./test/knight.c
-./test/lrtest.c
-./test/modules
-./test/ncurses.c
-./test/ncurses_tst.hin
-./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
diff --git a/ncurses-5.2/Makefile.glibc b/ncurses-5.2/Makefile.glibc
deleted file mode 100644
index 780650a..0000000
--- a/ncurses-5.2/Makefile.glibc
+++ /dev/null
@@ -1,403 +0,0 @@
-# Copyright (C) 1997,1998 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-
-# You should have received a copy of the GNU Library General Public
-# License along with the GNU C Library; see the file COPYING.LIB. If not,
-# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-#
-# Makefile for ncurses part.
-#
-subdir := ncurses
-
-ncurses-version = 4.2
-form-version = $(ncurses-version)
-menu-version = $(ncurses-version)
-panel-version = $(ncurses-version)
-
-extras := form menu ncurses panel
-
-extra-libs = $(extras:%=lib%)
-# These libraries will be built in the `others' pass rather than
-# the `lib' pass, because they depend on libc.so being built already.
-extra-libs-others = $(extra-libs)
-
-# The sources are found in the appropriate subdir.
-subdir-dirs = $(extras) progs test
-vpath %.c $(subdir-dirs)
-vpath %.h $(subdir-dirs)
-
-libform-routines = \
- fld_arg \
- fld_attr \
- fld_current \
- fld_def \
- fld_dup \
- fld_ftchoice \
- fld_ftlink \
- fld_info \
- fld_just \
- fld_link \
- fld_max \
- fld_move \
- fld_newftyp \
- fld_opts \
- fld_pad \
- fld_page \
- fld_stat \
- fld_type \
- fld_user \
- frm_cursor \
- frm_data \
- frm_def \
- frm_driver \
- frm_hook \
- frm_opts \
- frm_page \
- frm_post \
- frm_req_name \
- frm_scale \
- frm_sub \
- frm_user \
- frm_win \
- fty_alnum \
- fty_alpha \
- fty_enum \
- fty_int \
- fty_ipv4 \
- fty_num \
- fty_regex
-
-libncurses-routines = \
- base/define_key \
- base/keybound \
- base/keyok \
- base/lib_addch \
- base/lib_addstr \
- base/lib_beep \
- base/lib_bkgd \
- base/lib_box \
- base/lib_chgat \
- base/lib_clear \
- base/lib_clearok \
- base/lib_clrbot \
- base/lib_clreol \
- base/lib_color \
- base/lib_colorset \
- base/lib_delch \
- base/lib_delwin \
- base/lib_dft_fgbg \
- base/lib_echo \
- base/lib_endwin \
- base/lib_erase \
- base/lib_flash \
- base/lib_freeall \
- base/lib_getch \
- base/lib_getstr \
- base/lib_hline \
- base/lib_immedok \
- base/lib_inchstr \
- base/lib_initscr \
- base/lib_insch \
- base/lib_insdel \
- base/lib_insstr \
- base/lib_instr \
- base/lib_isendwin \
- base/lib_leaveok \
- base/lib_mouse \
- base/lib_move \
- base/lib_mvwin \
- base/lib_newterm \
- base/lib_newwin \
- base/lib_nl \
- base/lib_overlay \
- base/lib_pad \
- base/lib_printw \
- base/lib_redrawln \
- base/lib_refresh \
- base/lib_restart \
- base/lib_scanw \
- base/lib_screen \
- base/lib_scroll \
- base/lib_scrollok \
- base/lib_scrreg \
- base/lib_set_term \
- base/lib_slk \
- base/lib_slkatr_set \
- base/lib_slkatrof \
- base/lib_slkatron \
- base/lib_slkatrset \
- base/lib_slkattr \
- base/lib_slkclear \
- base/lib_slkcolor \
- base/lib_slkinit \
- base/lib_slklab \
- base/lib_slkrefr \
- base/lib_slkset \
- base/lib_slktouch \
- base/lib_touch \
- base/lib_ungetch \
- base/lib_vline \
- base/lib_wattroff \
- base/lib_wattron \
- base/lib_winch \
- base/lib_window \
- base/memmove \
- base/nc_panel \
- base/resizeterm \
- base/safe_sprintf \
- base/sigaction \
- base/tries \
- base/version \
- base/vsscanf \
- base/wresize \
- codes \
- comp_captab \
- expanded \
- fallback \
- lib_gen \
- lib_keyname \
- names \
- tinfo/access \
- tinfo/add_tries \
- tinfo/alloc_entry \
- tinfo/alloc_ttype \
- tinfo/captoinfo \
- tinfo/comp_error \
- tinfo/comp_expand \
- tinfo/comp_hash \
- tinfo/comp_parse \
- tinfo/comp_scan \
- tinfo/doalloc \
- tinfo/free_ttype \
- tinfo/getenv_num \
- tinfo/home_terminfo \
- tinfo/init_keytry \
- tinfo/lib_acs \
- tinfo/lib_baudrate \
- tinfo/lib_cur_term \
- tinfo/lib_data \
- tinfo/lib_has_cap \
- tinfo/lib_kernel \
- tinfo/lib_longname \
- tinfo/lib_napms \
- tinfo/lib_options \
- tinfo/lib_print \
- tinfo/lib_raw \
- tinfo/lib_setup \
- tinfo/lib_termcap \
- tinfo/lib_termname \
- tinfo/lib_tgoto \
- tinfo/lib_ti \
- tinfo/lib_tparm \
- tinfo/lib_tputs \
- tinfo/lib_ttyflags \
- tinfo/name_match \
- tinfo/parse_entry \
- tinfo/read_entry \
- tinfo/read_termcap \
- tinfo/setbuf \
- tinfo/strings \
- tinfo/write_entry \
- trace/lib_trace \
- trace/lib_traceatr \
- trace/lib_tracebits \
- trace/lib_tracechr \
- trace/lib_tracedmp \
- trace/lib_tracemse \
- trace/trace_buf \
- trace/trace_tries \
- trace/trace_xnames \
- tty/hardscroll \
- tty/hashmap \
- tty/lib_mvcur \
- tty/lib_tstp \
- tty/lib_vidattr \
- tty/lib_twait \
- tty/tty_update \
- unctrl
-
-libmenu-routines = \
- m_attribs \
- m_cursor \
- m_driver \
- m_format \
- m_global \
- m_hook \
- m_item_cur \
- m_item_nam \
- m_item_new \
- m_item_opt \
- m_item_top \
- m_item_use \
- m_item_val \
- m_item_vis \
- m_items \
- m_new \
- m_opts \
- m_pad \
- m_pattern \
- m_post \
- m_req_name \
- m_scale \
- m_spacing \
- m_sub \
- m_userptr \
- m_win
-
-libpanel-routines = \
- panel \
- p_above \
- p_below \
- p_bottom \
- p_delete \
- p_hide \
- p_hidden \
- p_move \
- p_new \
- p_replace \
- p_show \
- p_top \
- p_update \
- p_user \
- p_win
-
-headers = curses.h eti.h form.h menu.h panel.h term.h termcap.h \
- unctrl.h
-others = clear infocmp tic toe tput tset
-install-bin = $(others)
-
-clear-objs = clear.o
-infocmp-objs = infocmp.o dump_entry.o
-tic-objs = tic.o dump_entry.o
-toe-objs = toe.o dump_entry.o
-tput-objs = tput.o
-tset-objs = tset.o dump_entry.o
-extra-objs = $(tic-objs) $(toe-objs) $(infocmp-objs) $(clear-objs) \
- $(tput-objs) $(tset-objs)
-
-test-srcs = blue bs cardfile ditto firework firstlast gdc hanoi hashtest knight \
- lrtest ncurses newdemo rain tclock testaddch testcurs \
- testscanw view worm xmas
-
-include ../Rules
-
-ifndef tabsetdir
-tabsetdir = $(datadir)/tabset
-endif
-ifndef inst_tabsetdir
-inst_tabsetdir = $(install_root)/$(tabsetdir)
-endif
-
-ifndef terminfodir
-terminfodir = $(datadir)/terminfo
-endif
-ifndef inst_terminfodir
-inst_terminfodir = $(install_root)/$(terminfodir)
-endif
-
-ifndef mandir
-mandir = $(prefix)/man
-endif
-
-ifndef inst_mandir
-inst_mandir = $(install_root)/$(mandir)
-endif
-
-CPPFLAGS += -DTERMINFO='"$(terminfodir)"' -Iinclude -Iform -Incurses \
- -Imenu -Ipanel -Iprogs -Itest
-
-ifneq ($(strip $(objpfx)),)
-CPPFLAGS += -I$(objpfx)
-endif
-
-LDLIBS-tclock = math/libm
-
-tests: $(test-srcs:%=$(objpfx)%)
-
-$(objpfx)clear: $(addprefix $(objpfx),$(clear-objs))
-$(objpfx)infocmp: $(addprefix $(objpfx),$(infocmp-objs))
-$(objpfx)tic: $(addprefix $(objpfx),$(tic-objs))
-$(objpfx)toe: $(addprefix $(objpfx),$(toe-objs))
-$(objpfx)tput: $(addprefix $(objpfx),$(tput-objs))
-$(objpfx)tset: $(addprefix $(objpfx),$(tset-objs))
-
-ifeq ($(build-shared),yes)
-$(others:%=$(objpfx)%): $(objpfx)libncurses.so
-else
-$(others:%=$(objpfx)%): $(objpfx)libncurses.a
-endif
-
-$(test-srcs:%=$(objpfx)%): $(objpfx)libform.a $(objpfx)libmenu.a \
- $(objpfx)libpanel.a $(objpfx)libncurses.a
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(extras:%=$(objpfx)lib%.so): $(common-objpfx)libc.so
-
-subdir_install: $(inst_libdir)/libtermcap.a $(inst_libdir)/libcurses.a \
- $(inst_bindir)/reset $(inst_bindir)/captoinfo
-
-$(inst_libdir)/libtermcap.a $(inst_libdir)/libcurses.a: \
- $(inst_libdir)/libncurses.a
- $(make-link)
-
-$(inst_bindir)/reset: $(inst_bindir)/tset
- $(make-link)
-
-$(inst_bindir)/captoinfo: $(inst_bindir)/tic
- $(make-link)
-
-ifeq (yes,$(build-shared))
-subdir_install: $(inst_libdir)/libtermcap.so $(inst_libdir)/libcurses.so
-
-$(inst_libdir)/libtermcap.so $(inst_libdir)/libcurses.so: \
- $(inst_libdir)/libncurses.so
- $(make-link)
-endif
-
-subdir_install: $(inst_mandir)/man5/terminfo.5
-
-$(inst_mandir)/man5/terminfo.5: $(objpfx)terminfo.5 $(wildcard man/*.[0-9]*)
- $(make-target-directory)
- sh $(edit_man-sh) $(prefix) $(inst_mandir) $(edit_man-sed) $^
-
-subdir_install: $(inst_tabsetdir)/std
-
-$(inst_tabsetdir)/std: \
- $(filter-out misc/tabset/CVS, $(wildcard misc/tabset/*))
- $(make-target-directory)
- for f in $^; do \
- echo installing $$f; \
- $(INSTALL_DATA) $$f $(inst_tabsetdir); \
- done
-
-
-ifeq (no,$(cross-compiling))
-subdir_install: $(inst_terminfodir)/v/vt100
-
-$(inst_terminfodir)/v/vt100: misc/terminfo.src $(objpfx)tic
- $(make-target-directory)
- sh $(run_tic-sh) $(common-objpfx) misc $(terminfodir) \
- $(install_root)
-endif
-
-subdir_distclean subdir_realclean:
- -rm -f $(addprefix $(objpfx), MKterm.h.awk codes.c \
- comp_captab.c confdefs.h config.log curses.h \
- expanded.c fallback.c hashsize.h keys.tries \
- lib_gen.c lib_keyname.c names.c ncurses_cfg.h \
- nomacros.h parametrized.h term.h termcap.h \
- terminfo.5 termsort.c unctrl.c unctrl.h)
diff --git a/ncurses-5.2/Makefile.in b/ncurses-5.2/Makefile.in
deleted file mode 100644
index 21238b0..0000000
--- a/ncurses-5.2/Makefile.in
+++ /dev/null
@@ -1,92 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Master Makefile for ncurses library.
-
-SHELL = /bin/sh
-
-DESTDIR=@DESTDIR@
-CF_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)"
-
-@SET_MAKE@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-NCURSES_PATCH = @NCURSES_PATCH@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-ticdir = @TERMINFO@
-includedir = @includedir@
-libdir = @libdir@
-mandir = @mandir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-DIRS_TO_MAKE = @DIRS_TO_MAKE@
-
-all :: $(DIRS_TO_MAKE)
-
-$(DIRS_TO_MAKE) :
- mkdir $@
-
-preinstall :
- @ echo ''
- @ echo '** Configuration summary for NCURSES $(NCURSES_MAJOR).$(NCURSES_MINOR) $(NCURSES_PATCH):'
- @ echo ''
- @ echo ' bin directory: '$(bindir)
- @ echo ' lib directory: '$(libdir)
- @ echo ' include directory: '$(includedir)
- @ echo ' man directory: '$(mandir)
- @ echo ' terminfo directory: '$(ticdir)
- @ echo ''
- @ test "$(includedir)" = "$(prefix)/include" || \
- echo '** Include-directory is not in a standard location'
- @ test ! -f $(includedir)/termcap.h || \
- fgrep NCURSES_VERSION $(includedir)/termcap.h >/dev/null || \
- echo '** Will overwrite non-ncurses termcap.h'
- @ test ! -f $(includedir)/curses.h || \
- fgrep NCURSES_VERSION $(includedir)/curses.h >/dev/null || \
- echo '** Will overwrite non-ncurses curses.h'
-
-# Put the common rules here so that we can easily construct the list of
-# directories to visit.
-all \
-clean \
-distclean \
-mostlyclean \
-realclean \
-sources \
-uninstall \
-install ::
diff --git a/ncurses-5.2/Makefile.os2 b/ncurses-5.2/Makefile.os2
deleted file mode 100644
index ed0f68a..0000000
--- a/ncurses-5.2/Makefile.os2
+++ /dev/null
@@ -1,234 +0,0 @@
-################################################################################
-# Wrapper Makefile for ncurses library under OS/2.
-################################################################################
-# $Id$
-#
-# Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
-# Webpage: http://www.arrakis.es/~worm/
-################################################################################
-#
-# Notes (from I Zakharevich)
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~
-# I could build the library with the following sequence of commands:
-#
-# touch Makefile
-# make -f Makefile.os2 config
-# make -f Makefile.os2 CC=gcc HOSTCC=gcc CXX=gcc
-#
-# Ignoring the following errors:
-# Invalid configuration `os2'...
-# ... ac_maketemp="make": not found
-# ... syntax error: `done' unexpected
-# No rule to make target `lib/ncurses4.dll'
-#
-# You may need to run
-#
-# rm make.defs
-# make -f Makefile.os2 make.defs
-#
-# if the build of misc/panel.def fails.
-#
-# If you do not have perl, the configuration will fail. Use autoconf to
-# generate the EMX-specific configure script (see README.emx), and run the
-# configure script to generate the makefiles. Then, run
-#
-# make -f Makefile.os2 make.dlls
-#
-# Notes (from J J G Ripoll)
-# ~~~~~~~~~~~~~~~~~~~~~~~~~
-# The `make.defs' rule creates the new '.def' files and outputs a diagnostic
-# about symbols that disappear from one release to the other, as well as
-# checks about the new '.def' consistency. If there were no problems, the
-# maintainer is free to replace the `.ref' files with the newer ones using the
-# `save.defs' rule. So, the only tough work is ensuring that the symbols that
-# disappear are not essential.
-#
-# I first thought about killing '_nc_*' symbols, but it seems that some of
-# them --_nc_panel_hook, _nc_ada*, etc-- are needed outside ncurses.dll.
-# However, the whole size of the export table will not be larger than 1k or
-# so.
-#
-# [installation]
-#
-# The way things are handled in misc/Makefile is not well suited for OS/2,
-# where only emx.src is needed. Thus, I've written a few wrapper rules in
-# Makefile.os2 that handle installation/deinstallation.
-#
-# [distribution]
-#
-# There's also a new rule that configures and builds a sort of binary
-# distribution, much like the one I prepared for 1.9.9e. It's `os2dist'.
-#
-################################################################################
-
-all :: config
-
-# This is for configuring
-
-# What is a useful value for this?
-CONFIG_OPTS = --enable-termcap
-WWWGET = lynx -source
-MV_F = mv -f
-DLL_LN_OPTS = -Zcrtdll -Zdll -Zomf -Zmt
-
-config: config.cache
-
-config.cache: configure.cmd configure
- -$(MV_F) $@ $@.ref
- configure.cmd $(CONFIG_OPTS)
-
-configure.cmd: configure convert_configure.pl
- perl convert_configure.pl configure > $@
-
-convert_configure.pl:
- $(WWWGET) ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/$@ > $@
-
-install ::
- echo ***
- echo *** Do not use this command. Use install.os2 instead.
- echo ***
- exit 2
-
-install.os2 : install.emxdata install.libs install.progs
-
-include ./Makefile
-
-all :: make.dlls
-
-#
-# DLLs and that stuff
-#
-
-LIBRARIES = ncurses form menu panel
-
-DLL_TAG = $(NCURSES_MAJOR)
-LIB_TAG = _s
-
-DLL_ROOTS = $(addsuffix $(DLL_TAG), $(LIBRARIES))
-DLLS = $(addsuffix .dll, $(addprefix ./lib/, $(DLL_ROOTS)))
-
-LIB_ROOTS = $(addsuffix $(LIB_TAG), $(LIBRARIES))
-LIBS = $(addsuffix .lib, $(addprefix ./lib/, $(LIB_ROOTS)))
-
-LIBS_AOUT = $(addsuffix .a, $(addprefix ./lib/, $(LIB_ROOTS)))
-
-DEFS = $(addsuffix .def, $(addprefix ./misc/, $(LIBRARIES)))
-
-DLL_SIGNATURE = NCurses-$(NCURSES_MAJOR)-$(NCURSES_MINOR)-$(NCURSES_PATCH)
-
-./lib/%$(LIB_TAG).lib : ./misc/%.def
- emximp -o $@ $<
-
-./lib/%$(LIB_TAG).a : ./misc/%.def
- emximp -o $@ $<
-
-./lib/%$(DLL_TAG).dll : ./lib/%.a
- emxomf -o ./lib/$*$(DLL_TAG).lib $<
- if [ "$*" = "ncurses" ]; then \
- gcc $(LDFLAGS) $(DLL_LN_OPTS) ./lib/$*$(DLL_TAG).lib \
- ./misc/$*.def -o $@; \
- else \
- gcc $(LDFLAGS) $(DLL_LN_OPTS) ./lib/$*$(DLL_TAG).lib \
- ./lib/ncurses$(LIB_TAG).lib ./misc/$*.def -o $@; \
- fi
- -rm -f ./lib/$*$(DLL_TAG).lib
-
-make.dlls : $(DEFS) $(LIBS) $(DLLS) $(LIBS_AOUT)
-
-$(DEFS) : make.defs
-
-LIBDIR = $(DESTDIR)$(libdir)
-$(LIBDIR) :
- mkdir -p $@
-
-install.libs :: $(LIBS) $(DLLS) $(LIBDIR)
- @for i in $(DLL_ROOTS); do \
- echo installing ./lib/$$i.dll as $(LIBDIR)/$$i.dll; \
- $(INSTALL_DATA) ./lib/$$i.dll $(LIBDIR)/$$i.dll; done
- @for i in $(LIB_ROOTS); do \
- echo installing ./lib/$$i.lib as $(LIBDIR)/$$i.lib; \
- $(INSTALL_DATA) ./lib/$$i.lib $(LIBDIR)/$$i.lib; done
-
-uninstall.libs ::
- -@for i in $(DLL_ROOTS); do \
- echo uninstalling $(LIBDIR)/$$i.dll; \
- rm -f $(LIBDIR)/$$i.dll; done
- -@for i in $(LIB_ROOTS); do \
- echo uninstalling $(LIBDIR)/$$i.lib; \
- rm -f $(LIBDIR)/$$i.lib; done
-
-make.defs :
- for i in $(LIBRARIES); do \
- echo LIBRARY $${i}$(DLL_TAG) INITINSTANCE TERMINSTANCE > ./misc/$$i.def; \
- echo DESCRIPTION \"$(DLL_SIGNATURE), module $$i\" >> ./misc/$$i.def; \
- echo CODE LOADONCALL >> ./misc/$$i.def; \
- echo DATA LOADONCALL NONSHARED MULTIPLE >> ./misc/$$i.def; \
- echo EXPORTS >> ./misc/$$i.def; \
- echo Creating $$i.def; \
- (cmd /C ".\\misc\\makedef.cmd ./lib/$$i.a ./misc/$$i.ref >> ./misc/$$i.def" \
- && cmd /C ".\\misc\\chkdef.cmd ./misc/$$i.def") \
- || exit 1; \
- done
- touch make.defs
-
-save.defs :
- for i in $(LIBRARIES); do \
- test -f ./misc/$$i.def && cp ./misc/$$i.def ./misc/$$i.ref; \
- done
-
-clean \
-os2clean ::
- -rm -f $(DLLS) $(LIBS)
-
-realclean ::
- -rm -f $(addprefix ./misc/, $(addsuffix .def, $(LIBRARIES)))
-
-#
-# This is a simplified version of misc/Makefile
-#
-
-TICDIR = $(DESTDIR)$(datadir)/terminfo
-TABSETDIR = $(DESTDIR)$(datadir)/tabset
-
-$(TICDIR) :
- mkdir -p $@
-
-install \
-install.emxdata :: $(TICDIR)
- -@rm -fr $(TICDIR)/*
- echo Building terminfo database, please wait...
- set TERMINFO=$(TICDIR); ./progs/tic ./misc/emx.src
- echo Installing the terminfo cleaner and the sources...
- cp ./misc/emx.src ./misc/cleantic.cmd $(TICDIR)
- ./misc/cleantic.cmd $(TICDIR)
-
-uninstall \
-uninstall.emxdata ::
- -cd $(TICDIR) && rm -rf *
- -cd $(TABSETDIR) && rm -rf *
-
-#
-# This is for preparing binary distributions
-#
-
-OS2NAME=ncurses-$(NCURSES_MAJOR).$(NCURSES_MINOR)-emx
-
-#
-# FIXME: this assumes that we can rerun the configure script, changing only
-# the install-prefix. That means we cannot provide "interesting" options
-# when building.
-#
-os2dist :
- $(MAKE) -f Makefile.os2 os2clean
- ./configure --without-debug --with-install-prefix=`pwd|sed -e 's@^.:@@'`/$(OS2NAME)
- $(MAKE) -f Makefile.os2 $(CF_MFLAGS) install.os2
- -rm -f $(OS2NAME).zip
- echo NCurses-$(NCURSES_MAJOR).$(NCURSES_MINOR)-$(NCURSES_PATCH) for emx > $(OS2NAME)/FILE_ID.DIZ
- echo Binary release. >> $(OS2NAME)/FILE_ID.DIZ
- zip -r $(OS2NAME).zip ./$(OS2NAME)
-
-clean \
-os2clean ::
- -rm -rf $(OS2NAME)
- -rm -f $(OS2NAME).zip
-
diff --git a/ncurses-5.2/NEWS b/ncurses-5.2/NEWS
deleted file mode 100644
index fe1b776..0000000
--- a/ncurses-5.2/NEWS
+++ /dev/null
@@ -1,4584 +0,0 @@
--- $Id$
-
-This is a log of changes that ncurses has gone through since Zeyd started
-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.
-
-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
- in html manpages.
- + fix an uninitialized pointer in read_termcap.c (report by Todd C
- Miller, from report/patch by Philip Guenther <guenther@gac.edu>).
- + correct help-message and array limit in knight.c (patch by Brian
- Raiter <breadbox@muppetlabs.com>).
- > patch by Juergen Pfeifer:
- + fix to avoid warning by GNAT-3.13p about use of inconsistent casing
- for some identifiers defined in the standard package.
- + cosmetic change to forms/fty_enum.c
-
-20001014
- + correct an off-by-one position in test/railroad.c which could cause
- wrapping at the right margin.
- + test/repair some issues with libtool configuration. Make
- --disable-echo force libtool --silent. (Libtool does not work for
- OS/2 EMX, works partly for SCO - libtool is still very specific to
- gcc).
- + change default of --with-manpage-tbl to "no", since for most of the
- platforms which do have tbl installed, the system "man" program
- understands how to run tbl automatically.
- + minor improvement to force_bar() in comp_parse.c (Bernhard
- Rosenkraenzer <bero@redhat.de>).
- + modify lib_tparm.c to use get_space() before writing terminating
- null character, both for consistency as well as to ensure that if
- save_char() was called immediately before, that the allocated memory
- is enough (patch by Sergei Ivanov).
- + add note about termcap ML capability which is duplicated between two
- different capabilities: smgl and smglr (reported by Sergei Ivanov
- <svivanov@pdmi.ras.ru>).
- + correct parameter counts in include/Caps for dclk as well as some
- printer-specific capabilities: csnm, defc, scs, scsd, smgtp, smglp.
- > patch by Johnny C Lam <lamj@stat.cmu.edu>:
- + add support for building with libtool (apparently version 1.3.5,
- since old versions do not handle -L../lib), using new configure
- option --with-libtool.
- + add configure option --with-manpage-tbl, which causes the manpages to
- be preprocessed by tbl(1) prior to installation,
- + add configure option --without-curses-h, which causes the
- installation process to install curses.h as ncurses.h and make
- appropriate changes to headers and manpages.
-
-20001009
- + correct order of options/parameters in run_tic.in invocation of tic,
- which did not work with standard getopt() (reported by Ethan
- Butterfield <primus@veris.org>).
- + correct logic for 'reverse' variable in lib_vidattr.c, which was
- setting it true without checking if newmode had A_REVERSE set, e.g.,
- using $TERM=ansi on OS/2 EMX (see 20000917).
- > patch by Todd Miller:
- + add a few missing use_terminfo_vars() and fixes up _nc_tgetent().
- Previously, _nc_cgetset() would still get called on cp so the
- simplest thing is to set cp to NULL if !use_terminfo_vars().
- + added checks for an empty $HOME environment variable.
- > patches by Ilya Zakharevich for OS/2 EMX:
- + modify convert_configure.pl to support INSTALL. Change compiler
- options in that script to use multithreading, needed for the mouse.
- + modify OS/2 mouse support, retrying as a 2-button mouse if code fails
- to set up a 3-button mouse.
- + improve code for OS/2 mouse support, using _nc_timed_wait() to
- replace select() call.
-
-20001007
- + change type of ospeed variable back to short to match its use in
- legacy applications (reported by Andrey A Chernov).
- + add case to configure script for --enable-rpath on IRIX (patch by
- Albert Chin-A-Young).
- + minor fix to position_check() function, to ensure it gets the whole
- cursor report before decoding.
- + add configure option --disable-assumed-color, to allow pre-5.1
- convention of default colors used for color-pair 0 to be configured
- (see assume_default_colors()).
- + rename configure option --enable-hashmap --disable-hashmap, and
- reorder the configure options, splitting the experimental and
- 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
- several people).
- + modified misc/run_tic.in to use tic -o, to eliminate dependency on
- $TERMINFO variable for installs.
- + add table entry for plab_norm to tput, so it passes in strings
- for that capability.
- + modify parse_format() in lib_tparm.c to ignore precision if it is
- 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>).
-
-20000930
- + modify several descriptions, including those 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. Fixes a problem where the generated termcap
- would contain a spurious "%p1" for the terminfo "%p1%d".
- + modify ld -rpath options (e.g., Linux, and Solaris) to use an
- absolute pathname for the build tree's lib directory (prompted by
- discussion with Albert Chin-A-Young).
- + modify "make install.man" and "make uninstall.man" to include tack's
- man-page.
- + various fixes for install scripts used to support configure --srcdir
- and --with-install-prefix (reported by Matthew Clarke
- <Matthew_Clarke@mindlink.bc.ca>).
- + 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
- (report/patch by Albert Chin-A-Young).
-
-20000923
- + modify rs2 capability in xterm-r6 and similar where cursor
- 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
- terminfo.src -TD
- + modify tic to verify that its inputs are really files, in case
- someone tries to read a directory (or /dev/zero).
- + 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 reported by Aaron Campbell <aaron@cs.dal.ca>).
- + add to railroad.c some code exercising tgoto(), providing an
- alternate form of display if the terminal supports cursor addressing.
- + split-out tgoto() again, this time into new file lib_tgoto.c, and
- implement a conventional BSD-style tgoto() which is used if the
- capability string does not contain terminfo-style padding or
- parameters (requested by Andrey A Chernov).
- + add check to tic which reports capabilities that do not reference
- 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.
-
-20000917
- + add S0, E0 extensions to screen's terminfo entry, which is another
- way to solve the misconfiguration issue -TD
- + completed special case for tgoto from 20000916
-
-20000916
- + update xterm terminfo entries to match XFree86 xterm patch #146 -TD
- + add Matrix Orbital terminfo entries (from Eric Z Ayers
- <eric@ale.org>).
- + add special case to lib_tparm.c to allow 'screen' program to use a
- termcap-style parameter "%." to tgoto() for switching character sets.
- + use LN_S substitution in run_tic.in, to work on OS/2 EMX which has
- no symbolic links.
- + updated notes in README.emx regarding autoconf patches.
- + replace a lookup table in lib_vidattr.c used to decode no_color_video
- with a logic expression (suggested by Philippe Blain).
- + add a/A toggle to ncurses.c 'b' test, which clears/sets alternate
- character set attribute from the displayed text.
- + correct inequality in parameter analysis of rewritten lib_tparm.c
- 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:
- 20000902, reported by Albert Chin-A-Young).
-
-20000909
- + correct an uninitialized parameter to open_tempfile() in tic.c which
- made "tic -I" give an ambiguous error message about tmpnam.
- + add special case in lib_vidattr.c to reset underline and standout for
- devices that have no sgr0 defined (patch by Don Lewis
- <Don.Lewis@tsc.tdk.com>). Note that this will not work for bold
- mode, since there is no exit-bold-mode capability.
- + improved patch for Make_Enum_Type (patch by Juergen Pfeifer).
- + 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 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 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).
- + regen'd configure to pick up "hpux*" change from 20000902.
-
-20000902
- + modify tset.c to check for transformed "reset" program name, if any.
- + add a check for null pointer in Make_Enum_Type() (reported by Steven
- W Orr <steveo@world.std.com>).
- + change functions _nc_parse_entry() and postprocess_termcap() to avoid
- using strtok(), because it is non-reentrant (reported by Andrey A
- Chernov <ache@nagual.pp.ru>).
- + 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 (reported by Albert Chin-A-Young).
- + correct a dependency in Ada95/src/Makefile.in which prevented
- building with configure --srcdir (patch by H Nanosecond
- <aldomel@ix.netcom.com>).
- + modify ifdef's in curses.h.in to avoid warning if GCC_PRINTF or
- GCC_SCANF was not previously defined (reported by Pavel Roskin
- <proski@gnu.org>).
- + 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".
-
-20000826
- + add QNX qansi entries to terminfo -TD
- + add os2 entry to misc/emx.src (<jmcoopr@webmail.bmi.net>).
- + add configure option --with-database to allow specifying a different
- terminfo source-file to install. On OS/2 EMX, this defaults to
- misc/emx.src
- + change misc/run_tic.sh to derive it from misc/run_tic.in, to simplify
- setting .exe extension on OS/2 EMX.
- + add .exe extension in Ada95/gen/Makefile.in,
- Ada95/samples/Makefile.in, for OS/2 EMX (reported by
- <jmcoopr@webmail.bmi.net>).
- + 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.
- + 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 (report by Glenn Cooper
- <gcooper@qantas.com.au>, using Purify on Solaris 5.6).
- + change configure script to use AC_CANONICAL_SYSTEM rather than
- AC_CANONICAL_HOST, which means that configure --target will set
- a default program-prefix.
- + add note on cross-compiling to INSTALL (which does not rely on the
- AC_CANONICAL_* macros).
-
-20000819
- + add cases for EMX OS/2 to config.guess, config.sub
- + new version of config.guess, config.sub from lynx 2.8.4dev.7
- + add definitions via transform.h to allow tic and tput to check for
- the transformed aliases rather than the original infotocap, etc.
- + simplify transform-expressions in progs/Makefile.in, make the
- uninstall rule work for transformed program names.
- + change symbol used by --install-prefix configure option from
- INSTALL_PREFIX to DESTDIR (the latter has become common usage
- although the name is misleading).
- + 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.
-
-20000812
- + modify CF_MAN_PAGES configure macro to make transformed program names
- a parameter to that macro rather than embedding them in the macro.
- + newer config.guess, config.sub (reference version used in lynx
- 2.8.4dev.7).
- + add configure option --with-default-terminfo-dir=DIR to allow
- specifying the default terminfo database directory (request by Albert
- Chin-A-Young).
- + minor updates for terminfo.src from FreeBSD termcap change-history.
- + correct notes in README and INSTALL regarding documentation files
- that were moved from misc directory to doc (report by Rich Kulawiec
- <rsk@gsp.org>).
- + change most remaining unquoted parameters of 'test' in configure
- script to use quotes, for instance fixing a problem in the
- --disable-database option (reported by Christian Mondrup
- <scancm@biobase.dk>).
- + minor adjustments to work around some of the incompatibilities/bugs
- in autoconf 2.29a alpha.
- + add -I/usr/local/include when --with-ncurses option is used in
- test/configure script.
- + 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.
-
-20000730
- + correct a missing backslash in curses.priv.h
-
-20000729
- + 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 (reported by Ruediger Kuhlmann
- <uck4@rz.uni-karlsruhe.de>).
- + add/use new trace function to display chtype values from winch() and
- getbkgd().
- + add trace mask TRACE_ATTRS, alter several existing _tracef calls that
- trace attribute changes under TRACE_CALLS to use this.
- + modify MKlib_gen.sh so that functions returning chtype will call
- returnChar().
- + add returnChar() trace, for functions returning chtype.
- + change indent.pro to line up parenthesis.
-
-20000722
- + fix a heap problem with the c++ binding (report by
- <alexander_liberson@ninewest.com>, patch by Juergen Pfeifer).
- + minor adjustment to ClrToEOL() to handle an out-of-bounds parameter.
- + 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).
- > fixes based on diff's for Amiga and BeOS found at
- http://www.mathematik.uni-karlsruhe.de/~kuhlmann/cross/ncurses/
- + alter definition of NCURSES_CONST to make it non-empty.
- + add amiga-vnc terminfo entry.
- + redefine 'TEXT' in menu.h for AMIGA, since it is reported to have
- an (unspecified) symbol conflict.
- + 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.
- + modify configure test for tcgetattr() to allow for old
- implementations, e.g., on BeOS, which only defined it as a macro.
- > patches by Bruno Haible:
- + when checking LC_ALL/LC_CTYPE/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.
-
-20000715
- + correct manlinks.sed script to avoid using ERE "\+", which is not
- understood by older versions of sed (patch by Albert Chin-A-Young).
- + implement configure script options that transform installed program
- names, e.g., --program-prefix, including the manpage names and cross
- references (patch by Albert Chin-A-Young <china@thewrittenword.com>).
- + 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 (report by Todd C Miller).
- + 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 (reported by Igor Schein <igor@txc.com>).
- + 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).
-
-20000708 5.1 release for upload to ftp.gnu.org
- + document configure options in INSTALL.
- + add man-page for ncurses trace functions.
- + correct return value shown in curs_touch.3x for is_linetouched() and
- is_wintouched(), in curs_initscr.3x for isendwin(), and in
- curs_termattr.3x for has_ic() and has_il().
- + add prototypes for touchline() and touchwin(), adding them to the
- list of generated functions.
- + modify fifo_push() to put ERR into the fifo just like other values to
- return from wgetch(). It was returning without doing that, making
- end-of-file condition incorrectly return a 0 (reported by Todd C
- Miller).
- + uncomment CC_SHARED_OPTS for progs and tack (see 971115), since they
- are needed for SCO OpenServer.
- + move _nc_disable_period from free_ttype.c to comp_scan.c to appease
- dynamic loaders on SCO and IRIX64.
- + add "-a" option to test/ncurses.c to invoke assume_default_colors()
- for testing.
- + correct assignment in assume_default_colors() which tells ncurses
- whether to use default colors, or the assumed ones (reported by Gary
- Funck <gary@Intrepid.Com>).
- + review/correct logic in mk-1st.awk for making symbolic links for
- shared libraries, in particular for FreeBSD, etc.
- + regenerate misc/*.def files for OS/2 EMX dll's.
- + correct quoting of values for CC_SHARED_OPTS in aclocal.m4 for
- cases openbsd2*, openbsd*, freebsd* and netbsd* (patch by Peter
- Wemm) (err in 20000610).
- + minor updates to release notes, as well as adding/updating URLs for
- examples cited in announce.html
- > several fixes from Philippe Blain <philippe.blain2@freesbee.fr>:
- + correct placement of ifdef for NCURSES_XNAMES in function
- _nc_free_termtype(), fixes a memory leak.
- + add a call to _nc_synchook() to the end of function whline() like
- that in wvline() (difference was in 1.9.4).
- + make ClearScreen() a little faster by moving two instances of
- UpdateAttr() out of for-loops.
- + simplify ClrBottom() by eliminating the tstLine data, using for-loops
- (cf: 960428).
-
-20000701 pre-release
- + change minor version to 1, i.e., ncurses 5.1
- + add experimental configure option --enable-colorfgbg to check for
- $COLORTERM variable as set by rxvt/aterm/Eterm.
- + add Eterm terminfo entry (Michael Jennings <mej@valinux.com>).
- + modify manlinks.sed to pick aliases from the SYNOPSIS section, and
- several manpages so manlinks.sed can find aliases for creating
- symbolic links.
- + add explanation to run_tic.sh regarding extended terminal
- capabilities.
- + change message format for edit_cfg.sh, since some people interpret
- it as a warning.
- + correct unescaped '$' in sysv5uw7*|unix_sv* rule for CF_SHARED_OPTS
- configure macro (report by Thanh Ma <Thanh.Ma@casi-rusco.com>).
- + correct logic in lib_twait.c as used by lib_mouse.c for GPM mouse
- support when poll() is used rather than select() (prompted by
- discussion with David Allen <DAllen24@aol.com>).
-
-20000624 pre-release
- + modify TransformLine() to check for cells with different color pairs
- that happen to render the same display colors.
- + apply $NCURSES_NO_PADDING to cost-computation in mvcur().
- + improve cost computation in PutRange() by accounting for the use
- of parm_right_cursor in mvcur().
- + correct cost computation in EmitRange(), which was not using the
- normalized value for cursor_address.
- + newer config.guess, config.sub (reference version used in TIN 1.5.6).
-
-20000617
- + update config.guess, config.sub (reference version used in PCRE 3.2).
- + resync changes to gnathtml against version 1.22, regenerated html
- files under doc/html/ada using this (1.22.1.1).
- + regenerated html files under doc/html/man after correcting top and
- bottom margin options for man2html in dist.mk
- + minor fixes to test programs ncurses 'i' and testcurs program to make
- the subwindow's background color cover the subwindow.
- + modify configure script so AC_MSG_ERROR is temporarily defined to a
- warning in AC_PROG_CXX to make it recover from a missing C++ compiler
- without requiring user to add --without-cxx option (from comment by
- Akim Demaille <akim@epita.fr> to autoconf mailing list).
- + modify headers.sh to avoid creating temporary files in the build
- directory when installing headers (reported by Sergei Pokrovsky
- <pok@nbsp.nsk.su>)
-
-20000610
- + regenerated the html files under doc/html/ada/files and
- doc/html/ada/funcs with a slightly-improved gnathtml.
- + add kmous capability to linux terminfo entry to allow it to use
- xterm-style events provided by gpm patch by Joerg Schoen.
- + make the configure macro CF_SHARED_OPTS a little smarter by testing
- if -fPIC is supported by gcc rather than -fpic. The former option
- allows larger symbol tables.
- + update config.guess and config.sub (patches by
- Kevin Buettner <kev@primenet.com> for elf64_ia64
- Bernd Kuemmerlen <bkuemmer@mevis.de> and MacOS X).
- + add warning for 'tic -cv' about use of '^?' in terminfo source, which
- is an extension.
-
-20000527
- + modify echo() behavior of getch() to match Solaris curses for
- carriage return and backspace (reported by Neil Zanella).
- + change _nc_flush() to a function.
- + modify delscreen() to check if the output stream has been closed, and
- if so, free the buffer allocated for setbuf (this provides an
- ncurses-specific way to avoid a memory leak when repeatedly calling
- newterm reported by Chipp C <at_1@zdnetonebox.com>).
- + correct typo in curs_getch.3x manpage regarding noecho (reported by
- David Malone <dwmalone@maths.tcd.ie>).
- + add a "make libs" rule.
- + make the Ada95 interface build with configure --enable-widec.
- + if the configure --enable-widec option is given, append 'w' to names
- of the generated libraries (e.g., libncursesw.so) to avoid conflict
- with existing ncurses libraries.
-
-20000520
- + modify view.c to make a rudimentary viewer of UTF-8 text if ncurses
- is configured with the experimental wide-character support.
- + add a simple UTF-8 output driver to the experimental wide-character
- support. If any of the environment variables LC_ALL, LC_CTYPE or
- LANG contain the string "UTF-8", this driver will be used to
- translate the output to UTF-8. This works with XFree86 xterm.
- + modify configure script to allow building shared libraries on BeOS
- (from a patch by by Valeriy E Ushakov).
- + modify lib_addch.c to allow repeated update to the lower-right
- corner, rather than displaying only the first character written until
- the cursor is moved. Recent versions of SVr4 curses can update the
- lower-right corner, and behave this way (reported by Neil Zanella).
- + add a limit-check in _nc_do_color(), to avoid using invalid color
- pair value (from bug report by Brendan O'Dea <bod@compusol.com.au>).
-
-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).
- + xterm-16color does allow bold+colors, removed ncv#32 from that
- terminfo entry.
-
-20000506
- + 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 web- and ftp-site to dickey.his.com
-
-20000429
- + move _nc_curr_token from parse_entry.c to comp_scan.c, to work around
- problem linking tack on MacOS X DP3.
- + include <sys/time.h> in lib_napms.c to compile on MacOS X DP3
- (reported by Gerben Wierda <wierda@holmes.nl>).
- + modify lib_vidattr.c to check for ncv fixes when pair-0 is not
- default colors.
- + add -d option to ncurses.c, to turn on default-colors for testing.
- + add a check to _nc_makenew() to ensure that newwin() and newpad()
- calls do not silently fail by passing too-large limits.
- + add symbol NCURSES_SIZE_T to use rather than explicit 'short' for
- internal window and pad sizes. Note that since this is visible in
- the WINDOW struct, it would be an ABI change to make this an 'int'
- (prompted by a question by Bastian Trompetter
- <btrompetter@firemail.de>, who attempted to create a 96000-line pad).
-
-20000422
- + add mgterm terminfo entry from NetBSD, minor adjustments to sun-ss5,
- aixterm entries -TD
- + modify tack/ansi.c to make it more tolerant of bad ANSI replies. An
- example of an illegal ANSI resonse can be found using Microsoft's
- Telnet client. A correct display can be found using a VT-4xx
- terminal or XFree86 xterm with:
- XTerm*VT100*decTerminalID: 450
- (patch by Daniel Weaver).
- + modify gdc.c to recognize 'q' for quit, 's' for single-step and ' '
- for resume. Add '-n' option to force gdc's standard input to
- /dev/null, to both illustrate the use of newterm() for specifying
- alternate inputs as well as for testing signal handling.
- + minor fix for configure option --with-manpage-symlinks, for target
- directories that contain a period ('.') (reported by Larry Virden).
-
-20000415
- + minor additions to beterm entry (feedback from Rico Tudor) -TD
- + corrections/updates for some IBM terminfo entries -TD
- + modify _nc_screen_wrap() so that when exiting curses mode with
- non-default colors, the last line on the screen will be cleared to
- the screen's default colors (request by Alexander Lukyanov).
- + modify ncurses.c 'r' example to set nonl(), allowing control/M to be
- read for demonstrating the REQ_NEW_LINE operation (prompted by a
- question by Tony L Keith" <tlkeith@keithconsulting.com>).
- + modify ncurses.c 'r' example of field_info() to work on Solaris 2.7,
- documented extension of ncurses which allows a zero pointer.
- + modify fmt_complex() to avoid buffer overflow in case of excess
- recursion, and to recognize "%e%?" as a synonym for else-if, which
- means that it will not recur for that special case.
- + add logic to support $TERMCAP variable in case the USE_GETCAP symbol
- is defined (patch by Todd C Miller).
- + modify one of the m4 files used to generate the Ada95 sources,
- to avoid using the token "symbols" (patch by Juergen Pfeifer).
-
-20000408
- + add terminfo entries bsdos-pc-m, bsdos-pc-mono (Jeffrey C Honig)
- + correct spelling error in terminfo entry name: bq300-rv was given as
- bg300-rv in esr's version.
- + modify redrawwin() macro so its parameter is fully parenthesized
- (fixes Debian bug report #61088).
- + correct formatting error in dump_entry() which set incorrect column
- value when no newline trimming was needed at the end of an entry,
- before appending "use=" clauses (cf: 960406).
-
-20000401
- + add configure option --with-manpage-symlinks
- + change unctrl() to render C1 characters (128-159) as ~@, ~A, etc.
- + change makefiles so trace() function is provided only if TRACE is
- defined, e.g., in the debug library. Modify related calls to
- _tracechar() to use unctrl() instead.
-
-20000325
- + add screen's AX capability (for ECMA SGR 39 and 49) to applicable
- terminfo entries, use presence of this as a check for a small
- improvement in setting default colors.
- + improve logic in _nc_do_color() implementing assume_default_colors()
- by passing in previous color pair info to eliminate redundant call to
- set_original_colors(). (Part of this is from a patch by Alexander
- Lukyanov).
- + modify warning in _nc_trans_string() about a possibly too-long string
- to do this once only rather than for each character past the
- threshold (600). Change interface of _nc_trans_string() to allow
- check for buffer overflow.
- + correct use of memset in _nc_read_entry_source() to initialize ENTRY
- struct each time before reading new data into it, rather than once
- per loop (cf: 990301). This affects multi-entry in-core operations
- such as "infocmp -Fa".
-
-20000319
- + remove a spurious pointer increment in _nc_infotocap() changes from
- 20000311. Add check for '.' in format of number, since that also
- is not permitted in termcap.
- + correct typo in rxvt-basic terminfo from temporary change made while
- integrating 20000318.
-
-20000318
- + revert part of the vt220 change (request by Todd C Miller).
- + add ansi-* terminfo entries from Eric's version.
- + add -a option to tic and infocmp, which retains commented-out
- capabilities during source translation/comparison, e.g., captoinfo
- and infotocap.
- + modify cardfile.c to display an empty card if no input data file is
- found, fixes a core dump in that case (reported by Bruno Haible).
- + correct bracketing in CF_MATH_LIB configure macro, which gave wrong
- result for OS/2 EMX.
- + supply required parameter for _nc_resolve_uses() call in
- read_termcap.c, overlooked in 20000311 (reported by Todd C Miller).
- > patches by Bruno Haible <haible@ilog.fr>:
- + fix a compiler warning in fty_enum.c
- + correct LIB_PREFIX expression for DEPS_CURSES in progs, tack
- makefiles, which resulted in redundant linking (cf: 20000122).
-
-20000311
- + make ifdef's for BROKEN_LINKER consistent (patch by Todd C Miller).
- + improved tack/README (patch by Daniel Weaver).
- + modify tput.c to ensure that unspecified parameters are passed to
- tparm() as 0's.
- + add a few checks in infocmp to guard against buffer overflow when
- displaying string capabilities.
- + add check for zero-uses in infocmp's file_comparison() function
- before calling _nc_align_termtype(). Otherwise one parameter is
- indexed past the end of the uses-array.
- + add an option -q to infocmp to specify the less verbose output,
- keeping the existing format as the default, though not retaining the
- previous behavior that made the -F option compare each entry to
- itself.
- + adapted patch by Eric Raymond to make infocmp -F less verbose
- (the submitted patch was unusable because it did not compile
- properly):
- + modify write_entry.c to ensure that absent or cancelled booleans
- are written as FALSE, for consistency with infocmp which now
- assumes this. Note that for the small-core configuration, tic
- may not produce the same result as before.
- + change some private library interfaces used by infocmp, e.g.,
- _nc_resolve_uses().
- + add a check in _nc_infotocap() to ensure that cm-style capabilities
- accept only %d codes when converting the format from terminfo to
- termcap.
- + modify ENTRY struct to separate the data in 'parent' into the name
- and link values (the original idea to merge both into 'parent' was
- not good).
- + discard repair_acsc(tterm);
- > patch by Juergen Pfeifer:
- + drop support for gnat 3.10
- + move generated documentation and html files under ./doc directory,
- adding makefile rules for this to dist.mk
-
-20000304
- + correct conflicting use of tparm() in 20000226 change to tic, which
- made it check only one entry at a time.
- + fix errors in ncurses-intro.html and hackguide.html shown by Dave
- Raggett's tidy.
- + make the example in ncurses-intro.html do something plausible, and
- corrected misleading comment (reported by Neil Zanella).
- + modify pnoutrefresh() to set newscr->_leaveok as wnoutrefresh() does,
- to fix a case where the cursor position was not updated as in
- Solaris (patch by David Mosberger <davidm@hpl.hp.com>).
- + add a limit-check for wresize() to ensure that a subwindow does not
- address out of bounds.
- + correct offsets used for subwindows in wresize() (patch by Michael
- Andres <ma@suse.de>).
- + regenerate html'ized manual pages with man2html 3.0.1 (patch by
- Juergen Pfeifer). This generated a file with a space in its name,
- which I removed.
- + fix a few spelling errors in tack.
- + modify tack/Makefile.in to match linker options of progs/Makefile.in;
- otherwise it does not build properly for older HPUX shared library
- configurations.
- + add several terminfo entries from esr's "11.0".
-
-20000226
- + make 'tput flash' work properly for xterm by flushing output in
- delay_output() when using napms(), and modifying xterm's terminfo to
- specify no padding character. Otherwise, xterm's reported baud rate
- can mislead ncurses into producing too few padding characters
- (Debian #58530).
- + add a check to tic for consistency between sgr and the separate
- capabilities such as smso, use this to check/correct several
- terminfo entries (Debian #58530).
- + add a check to tic if cvvis is the same as cnorm, adjusted several
- terminfo entries to remove the conflict (Debian #58530).
- + correct prototype shown in attr_set()/wattr_set() manpages (fixes
- Debian #53962).
- + minor clarification for curs_set() and leaveok() manpages.
- + use mkstemp() for creating temporary file for tic's processing of
- $TERMCAP contents (fixes Debian #56465).
- + correct two errors from integrating Alexander's changes: did not
- handle the non-bce case properly in can_erase_with() (noted by
- Alexander), and left fg/bg uninitialized in the pair-zero case of
- _nc_do_color() (reported by Dr Werner Fink <werner@suse.de> and
- Ismael Cordeiro <ismael@cordeiro.com>).
-
-20000219
- + store default-color code consistently as C_MASK, even if given as
- -1 for convenience (adapted from patches by Alexander Lukyanov).
- > patches by Alexander Lukyanov:
- + change can_clear_with() macro to accommodate logic for
- assume_default_colors(), making most of the FILL_BCE logic
- unnecessary. Made can_clear_with() an inline function to make it
- simpler to read.
-
-20000212
- + corrected form of recent copyright dates.
- + minor corrections to xterm-xf86-v333 terminfo entry -TD
- > patches by Alexander Lukyanov:
- + reworded dft_fgbg.3x to avoid assuming that the terminal's default
- colors are white on black.
- + fix initialization of tstLine so that it is filled with current blank
- character in any case. Previously it was possible to have it filled
- with old blank. The wrong over-optimization was introduced in 991002
- patch. (it is not very critical as the only bad effect is not using
- clr_eos for clearing if blank has changed).
-
-20000205
- + minor corrections/updates to several terminfo entries: rxvt-basic,
- vt520, vt525, ibm5151, xterm-xf86-v40 -TD
- + modify ifdef's for poll() to allow it to use <sys/poll.h>, thereby
- allowing poll() to be used on Linux.
- + add CF_FUNC_POLL macro to check if poll() is able to select from
- standard input. If not we will not use it, preferring select()
- (adapted from patch by Michael Pakovic <mpakovic@fdn.com>).
- + update CF_SHARED_OPTS macro for SCO Unixware 7.1 to allow building
- shared libraries (reported/tested by Thanh <thanhma@mediaone.net>).
- + override $LANGUAGE in build to avoid incorrect ordering of keynames.
- + correct CF_MATH_LIB parameter, must be sin(x), not sqrt(x).
-
-20000122
- + resync CF_CHECK_ERRNO and CF_LIB_PREFIX macros from tin and xterm.
- + modify CF_MATH_LIB configure macro to parameterize the test function
- used, for reuse in dialog and similar packages.
- + correct tests for file-descriptors in OS/2 EMX mouse support. A
- negative value could be used by FD_SET, causing the select() call
- to wait indefinitely.
-
-20000115
- + additional fixes for non-bce terminals (handling of delete_character)
- to work when assume_default_colors() is not specified.
- + modify warning message from _nc_parse_entry() regarding extended
- capability names to print only if tic/infocmp/toe have the -v flag
- set, and not at all in ordinary user applications. Otherwise, this
- warning would be shown for screen's extended capabilities in programs
- that use the termcap interface (reported by Todd C Miller).
- + modify use of _nc_tracing from programs such as tic so their debug
- level is not in the same range as values set by trace() function.
- + small panel header cleanup (patch by Juergen Pfeifer).
- + add 'railroad' demo for termcap interface.
- + modify 'tic' to write its usage message to stderr (patch by Todd C
- Miller).
-
-20000108
- + add prototype for erase() to curses.h.in, needed to make test
- programs build with c++/g++.
- + add .c.i and .c.h suffix rules to generated makefiles, for debugging.
- + correct install rule for tack.1; it assumed that file was in the
- current directory (reported by Mike Castle <dalgoda@ix.netcom.com>).
- + modify terminfo/termcap translation to suppress acsc before trying
- sgr if the entry would be too large (patch by Todd C Miller).
- + document a special case of incompatiblity between ncurses 4.2 and
- 5.0, add a section for this in INSTALL.
- + add TRACE_DATABASE flag for trace().
-
-20000101
- + update mach, add mach-color terminfo entries based on Debian diffs
- for ncurses 5.0 -TD
- + add entries for xterm-hp, xterm-vt220, xterm-vt52 and xterm-noapp
- terminfo entries -TD
- + change OTrs capabilities to rs2 in terminfo.src -TD
- + add obsolete and extended capabilities to 'screen' terminfo -TD
- + corrected conversion from terminfo rs2 to termcap rs (cf: 980704)
- + make conversion to termcap ug (underline glitch) more consistently
- applied.
- + fix out-of-scope use of 'personal[]' buffer in 'toe' (this error
- was in the original pre-1.9.7 version, when $HOME/.terminfo was
- introduced).
- + modify 'toe' to ignore terminfo directories to which it has no
- permissions.
- + modify read_termtype(), fixing 'toe', which could dump core when it
- found an incomplete entry such as "dumb" because it did not
- initialize its buffer for _nc_read_file_entry().
- + use -fPIC rather than -fpic for shared libraries on Linux, not
- needed for i386 but some ports (from Debian diffs for 5.0).
- + use explicit VALID_NUMERIC() checks in a few places that had been
- overlooked, and add a check to ensure that init_tabs is nonzero,
- to avoid divide-by-zero (reported by Todd C Miller).
- + minor fix for CF_ANSI_CC_CHECK configure macro, for HPUX 10.x (from
- tin).
-
-19991218
- + reorder tests during mouse initialization to allow for gpm to run in
- xterm, or for xterm to be used under OS/2 EMX. Also drop test for
- $DISPLAY in favor of kmous=\E[M or $TERM containing "xterm" (report
- by Christian Weisgerber <naddy@mips.rhein-neckar.de>).
- + modify raw() and noraw() to clear/restore IEXTEN flag which affects
- stty lnext on systems such as FreeBSD (report by Bruce Evans
- <bde@zeta.org.au>, via Jason Evans <jasone@canonware.com>).
- + fix a potential (but unlikely) buffer overflow in failed() function
- of tset.c (reported by Todd C Miller).
- + add manual-page for ncurses extensions, documented curses_version(),
- use_extended_names().
-
-19991211
- + treat as untranslatable to termcap those terminfo strings which
- contain non-decimal formatting, e.g., hexadecimal or octal.
- + correct commented-out capabilities that cannot be translated to
- termcap, which did not check if a colon must be escaped.
- + correct termcap translation for "%>" and "%+", which did not check
- if a colon must be escaped, for instance.
- + use save_string/save_char for _nc_captoinfo() to eliminate fixed
- buffer (originally for _nc_infotocap() in 960301 -TD).
- + correct expression used for terminfo equivalent of termcap %B,
- adjust regent100 entry which uses this.
- + some cleanup and commenting of ad hoc cases in _nc_infotocap().
- + eliminate a fixed-buffer in tic, used for translating comments.
- + add manpage for infotocap
-
-19991204
- + add kvt and gnome terminfo entries -TD
- + correct translation of "%%" by infotocap, which was emitted as "%".
- + add "obsolete" termcap strings to terminfo.src
- + modify infocmp to default to showing obsolete capabilities rather
- than terminfo only.
- + modify write_entry.c so that if extended names (i.e., configure
- --enable-tcap-names) are active, then tic will also write "obsolete"
- capabilities that are present in the terminfo source.
- + modify tic so that when running as captoinfo or infotocap, it
- initializes the output format as in -C and -I options, respectively.
- + improve infocmp and tic -f option by splitting long strings that do
- not have if-then-else construct, but do have parameters, e.g., the
- initc for xterm-88color.
- + refine MKtermsort.sh slightly by using bool for the *_from_termcap
- arrays.
-
-19991127
- + additional fixes for non-bce terminals (handling of clear_screen,
- clr_eol, clr_eos, scrolling) to work when assume_default_colors() is
- not specified.
- + several small changes to xterm terminfo entries -TD.
- + move logic for _nc_windows in lib_freeall.c inside check for nonnull
- SP, since it is part of that struct.
- + remove obsolete shlib-versions, which was unintentionally re-added
- in 970927.
- + modify infocmp -e, -E options to ensure that generated fallback.c
- type for Booleans agrees with term.h (reported by Eric Norum
- <eric@cls.usask.ca>).
- + correct configure script's use of $LIB_PREFIX, which did not work
- for installing the c++ directory if $libdir did not end with "/lib"
- (reported by Huy Le <huyle@ugcs.caltech.edu>).
- + modify infocmp so -L and -f options work together.
- + modify the initialization of SP->_color_table[] in start_color() so
- that color_content() will return usable values for COLORS greater
- than 8.
- + modify ncurses 'd' test in case COLORS is greater than 16, e.g., for
- xterm-88color, to limit the displayed/computed colors to 16.
- > patch by Juergen Pfeifer:
- + simplify coding of the panel library according to suggestions by
- Philippe Blain.
- + improve macro coding for a few macros in curses.priv.h
-
-19991113
- + modify treatment of color pair 0 so that if ncurses is configured
- to support default colors, and they are not active, then ncurses
- will set that explicitly, not relying on orig_colors or orig_pair.
- + add new extension, assume_default_colors() to provide better control
- over the use of default colors.
- + modify test programs to use more-specific ifdef's for existence of
- wresize(), resizeterm() and use_default_colors().
- + modify configure script to add specific ifdef's for some functions
- that are included when --enable-ext-funcs is in effect, so their
- existence can be ifdef'd in the test programs.
- + reorder some configure options, moving those extensions that have
- evolved from experimental status into a new section.
- + change configure --enable-tcap-names to enable this by default.
-
-19991106
- + install tack's manpage (reported by Robert Weiner
- <robert@progplus.com>)
- + correct worm.c's handling of KEY_RESIZE (patch by Frank Heckenbach).
- + modify curses.h.in, undef'ing some symbols to avoid conflict with C++
- STL (reported by Matt Gerassimoff <mgeras@ticon.net>)
-
-19991030
- + modify linux terminfo entry to indicate that dim does not mix with
- color (reported by Klaus Weide <kweide@enteract.com>).
- + correct several typos in terminfo entries related to missing '['
- in CSI's -TD
- + fix several compiler warnings in c++ binding (reported by Tim
- Mooney for alphaev56-dec-osf4.0f
- + rename parameter of _nc_free_entries() to accommodate lint.
- + correct lint rule for tack, used incorrect list of source files.
- + add case to config.guess, config.sub for Rhapsody.
- + improve configure tests for libg++ and libstdc++ by omitting the
- math library (which is missing on Rhapsody), and improved test for
- the math library itself (adapted from path by Nelson H. F. Beebe).
- + explicitly initialize to zero several data items which were
- implicitly initialized, e.g., cur_term. If not explicitly
- initialized, their storage type is C (common), and causes problems
- linking on Rhapsody 5.5 using gcc 2.7.2.1 (reported by Nelson H. F.
- Beebe).
- + modify Ada95 binding to not include the linker option for Ada
- bindings in the Ada headers, but in the Makefiles instead (patch by
- Juergen Pfeifer).
-
-19991023 5.0 release for upload to ftp.gnu.org
- + effective with release of 5.0, change NCURSES_VERSION_PATCH to
- 4-digit year.
- + add function curses_version(), to return ncurses library version
- (request by Bob van der Poel).
- + remove rmam, smam from cygwin terminfo entry.
- + modify FreeBSD cons25 terminfo entry to add cnorm and cvvis, as well
- as update ncv to indicate that 'dim' conflicts with colors.
- + modify configure script to use symbolic links for FreeBSD shared
- libraries by default.
- + correct ranf() function in rain and worm programs to ensure it does
- not return 1.0
- + hide the cursor in hanoi.c if it is running automatically.
- + amend lrtest.c to account for optimizations that exploit margin
- wrapping.
- + add a simple terminfo demo, dots.c
- + modify SIGINT/SIGQUIT handler to set a flag used in _nc_outch() to
- tell it to use write() rather than putc(), since the latter is not
- safe in a signal handler according to POSIX.
- + add/use internal macros _nc_flush() and NC_OUTPUT to hide details
- of output-file pointer in ncurses library.
- + uncomment CC_SHARED_OPTS (see 971115), since they are needed for SCO
- OpenServer.
- + correct CC_SHARED_OPTS for building shared libraries for SCO
- OpenServer.
- + remove usleep() from alternatives in napms(), since it may interact
- with alarm(), causing a process to be interrupted by SIGALRM (with
- advice from Bela Lubkin).
- + modify terminal_interface-curses-forms.ads.m4 to build/work with
- GNAT 3.10 (patch by Juergen Pfeifer).
- + remove part of CF_GPP_LIBRARY configure-script macro, which did not
- work with gcc 2.7.2.3
- + minor fix to test/tclock.c to avoid beeping more than once per second
- + add 's' and ' ' decoding to test/rain.c
-
-991016 pre-release
- + corrected BeOS code for lib_twait.c, making nodelay() function work.
-
-991009 pre-release
- + correct ncurses' value for cursor-column in PutCharLR(), which was
- off-by-one in one case (patch by Ilya Zakharevich).
- + fix some minor errors in position_check() debugging code, found while
- using this to validate the PutCharLR() patch.
- + modify firework, lrtest, worm examples to be resizable, and to
- recognize 'q' for quit, 's' for single-step and ' ' for resume.
- + restore reverted change to terminal_interface-curses-forms.ads.m4,
- add a note on building with gnat 3.10p to Ada95/TODO.
- + add a copy of the standalone configure script for the test-directory
- to simplify testing on SCO and Solaris.
-
-991002 pre-release
- + minor fixes for _nc_msec_cost(), color_content(), pair_content(),
- _nc_freewin(), ClrBottom() and onscreen_mvcur() (analysis by Philippe
- Blain, comments by Alexander Lukyanov).
- + simplify definition of PANEL and eliminate internal functions
- _nc_calculate_obscure(), _nc_free_obscure() and _nc_override(),
- (patch by Juergen Pfeifer, based on analysis by Philippe Blain
- <bledp@voila.fr>)).
- + change renaming of dft_fgbg.3x to use_default_colors.3ncurses in
- man_db.renames, since Debian is not concerned with 14-character
- filename limitation (from Debian bug report by Josip Rodin
- <joy@cibalia.gkvk.hr>).
- + corrected scoansi terminfo entry by testing with scoterm and console.
- + revert change from 990614 to terminal_interface-curses-forms.ads.m4,
- since this does not work for gnat 3.10p
- + modify tclock example to be resizable (if ncurses' sigwinch handler
- is used), and in color.
- + use $(CC) rather than 'gcc' in MK_SHARED_LIB symbols, used for Linux
- shared library rules.
-
-990925 pre-release
- + add newer NetBSD console terminfo entries
- + add amiga-8bit terminfo entry (from Henning 'Faroul' Peters
- <Faroul@beyond.kn-bremen.de>)
- + remove -lcurses -ltermcap from configure script's check for the gpm
- library, since they are not really necessary (a properly configured
- gpm library has no dependency on any curses library), and if the
- curses library is not installed, this would cause the test to fail.
- + modify tic's -C option so that terminfo "use=" clauses are translated
- to "tc=" clauses even when running it as captoinfo.
- + modify CF_STDCPP_LIBRARY configure macro to perform its check only
- for GNU C++, since that library conflicts with SGI's libC on IRIX-6.2
- + modify CF_SHARED_OPTS configure macro to support build on NetBSD with
- ELF libraries (patch by Bernd Ernesti <bernd@arresum.inka.de>).
- + correct a problem in libpanel, where the _nc_top_panel variable was
- not set properly when bottom_panel() is called to hide a panel which
- is the only one on the stack (report/analysis by Michael Andres
- <ma@suse.de>, patch by Juergen Pfeifer).
-
-990918 pre-release
- + add acsc string to HP 70092 terminfo entry (patch by Joerg Wunsch
- <j@interface-business.de>).
- + add top-level uninstall.data and uninstall.man makefile rules.
- + correct logic of CF_LINK_FUNCS configure script, from BeOS changes so
- that hard-links work on Unix again.
- + change default value of cf_cv_builtin_bool to 1 as suggested by
- Jeremy Buhler, making it less likely that a conflicting declaration
- of bool will be seen when compiling with C++.
-
-990911 pre-release
- + improved configure checks for builtin.h
- + minor changes to C++ binding (remove static initializations, and make
- configure-test for parameter initializations) for features not
- allowed by vendor's C++ compilers (reported by Martin Mokrejs, this
- applies to SGI, though I found SCO has the same characteristics).
- + corrected quoting of ETIP_xxx definitions which support old versions
- of g++, e.g., those using -lg++
- + remove 'L' code from safe_sprintf.c, since 'long double' is not
- widely portable. safe_sprintf.c is experimental, however, and
- exists mainly as a fallback for systems without snprintf (reported
- by Martin Mokrejs <mmokrejs@natur.cuni.cz>, for IRIX 6.2)
- + modify definition of _nc_tinfo_fkeys in broken-linker configuration
- so that it is not unnecessarily made extern (Jeffrey C Honig).
-
-990904 pre-release
- + move definition for builtin.h in configure tests to specific check
- for libg++, since qt uses the same filename incompatibly.
- + correct logic of lib_termcap.c tgetstr function, which did not copy
- the result to the buffer parameter. Testing shows Solaris does
- update this, though of course tgetent's buffer is untouched (from
- mpc.lists.freebsd.current newsgroup item by Peter Edwards
- <peter.edwards@ireland.com>).
- + corrected beterm terminfo entry, which lists some capabilities which
- are not actually provided by the BeOS Terminal.
- + add special logic to replace select() calls on BeOS, whose select()
- function works only for sockets.
- + correct missing escape in mkterm.h.awk.in, which caused part
- of the copyright noticed to be omitted (reported by Peter
- Wemm <peter@netplex.com.au>).
- > several small changes to make the c++ binding and demo work on OS/2
- EMX (related to a clean reinstall of EMX):
- + correct library-prefix for c++ binding; none is needed.
- + add $x suffix to make_hash and make_keys so 'make distclean' works.
- + correct missing $x suffix for tack, c++ demo executables.
- + split CF_CXX_LIBRARY into CF_GPP_LIBRARY (for -lg++) and
- CF_STDCPP_LIBRARY (for -lstdc++)
-
-990828 pre-release
- + add cygwin terminfo entry -TD
- + modify CF_PROG_EXT configure macro to set .exe extension for cygwin.
- + add configure option --without-cxx-binding, modifying the existing
- --without-cxx option to check only for the C++ compiler
- characteristics. Whether or not the C++ binding is needed, the
- configure script checks for the size/type of bool, to make ncurses
- match. Otherwise C++ applications cannot use ncurses.
-
-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.
- + 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
- nonfunctional link().
- + improved configure macros CF_BOOL_DECL and CF_BOOL_SIZE to detect
- BeOS's bool, which is declared as an unsigned char.
-
-990814 pre-release
- + add ms-vt100 terminfo entry -TD
- + minor fixes for misc/emx.src, based on testing with tack.
- + minor fix for test/ncurses.c, test 'a', in case ncv is not set.
-
-990731 pre-release
- + minor correction for 'screen' terminfo entry.
- + clarify description of errret values for setupterm in manpage.
- + modify tput to allow it to emit capabilities for hardcopy terminals
- (patch by Goran Uddeborg <goeran@uddeborg.pp.se>).
- + modify the 'o' (panel) test in ncurses.c to show the panels in color
- or at least in bold, to test Juergen's change to wrefresh().
- > patches by Juergen Pfeifer:
- + Fixes a problem using wbkgdset() with panels. It has actually
- nothing to with panels but is a problem in the implementation of
- 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>).
- + 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.
-
-990724 pre-release
- + suppress a call to def_prog_mode() in the SIGTSTP handler if the
- signal was received while not in curses mode, e.g., endwin() was
- called in preparation for spawning a shell command (reported by Frank
- Heckenbach <frank@g-n-u.de>)
- + corrected/enhanced xterm-r5, xterm+sl, xterm+sl-twm terminfo entries.
- + change test for xterm mouse capability: it now checks only if the
- user's $DISPLAY variable is set in conjunction with the kmous
- capability being present in the terminfo. Before, it checked if any
- of "xterm", "rxvt" or "kterm" were substrings of the terminal name.
- However, some emulators which are incompatible with xterm in other
- ways do support the xterm mouse capability.
- + reviewed and made minor changes in ncurses to quiet g++ warnings
- about shadowed or uninitialized variables. g++ incorrectly warns
- about uninitialized variables because it does not take into account
- short-circuit expression evaluation.
- + change ncurses 'b' test to start in color pair 0 and to show in the
- right margin those attributes which are suppressed by no_color_video,
- i.e., "(NCV)".
- + modify ifdef's in curses.h so that __attribute__ is not redefined
- when compiling with g++, but instead disabled the macros derived for
- __attribute__ since g++ does not consistently recognize the same
- keywords as gcc (reported by Stephan K Zitz <zitz@erf.net>).
- + update dependencies for term.h in ncurses/modules (reported by
- Ilya Zakharevich).
-
-990710 pre-release
- + modify the form demo in ncurses.c to illustrate how to manipulate the
- field appearance, e.g, for highlighting or translating the field
- contents.
- + correct logic in write_entry from split-out of home_terminfo in
- 980919, which prevented update of $HOME/.terminfo (reported by Philip
- Spencer <pspencer@fields.utoronto.ca>).
-
-990703 pre-release
- + modify linux terminfo description to make use of kernel 2.2.x mods
- that support cursor style, e.g., to implement cvvis (patch by Frank
- Heckenbach <frank@g-n-u.de>)
- + add special-case in setupterm to retain previously-saved terminal
- 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.
- + 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).
-
-990626 pre-release
- + use TTY definition in tack/sysdep.c rather than struct termios
- (reported by Philippe De Muyter).
- + add a fallback for strstr, used in lib_mvcur.c and tack/edit.c,
- not present on sysV68 (reported by Philippe De Muyter).
- + correct definition in comp_hash.c to build with configure
- --with-rcs-ids option.
-
-990619 pre-release
- + modified ifdef's for sigaction and sigvec to ensure we do not try to
- handle SIGTSTP if neither is available (from report by Philippe De
- Muyter).
- > patch by Philippe De Muyter:
- + in tic.c, use `unlink' if `remove' is not available.
- + use only `unsigned' as fallback value for `speed_t'. Some files used
- `short' instead.
-
-990616 pre-release
- + fix some compiler warnings in tack.
- + add a check for predefined bool type in CC, based on report that
- BeOS predefines a bool type.
- + correct logic for infocmp -e option (i.e., the configure
- --with-fallbacks option), which I'd not updated when implementing
- extended names (cf: 990301). The new implementation adds a -E
- option to infocmp.
- > patch by Juergen Pfeifer:
- + introduce the private type Curses_Bool in the Ada95 binding
- implementation. This is to clearly represent the use of "bool" also
- in the binding. It should have no effect on the generated code.
- + improve the man page for field_buffer() to tell the people, that the
- whole buffer including leading/trailing spaces is returned. This is
- a common source of confusion, so it's better to document it clearly.
-
-990614 pre-release
- > patch by Juergen Pfeifer:
- + use pragma PreElaborate in several places.
- + change a few System.Address uses to more specific types.
- + change interface version-number to 1.0
- + regenerate Ada95 HTML files.
-
-990612 pre-release
- + modify lib_endwin.c to avoid calling reset_shell_mode(), return ERR
- if it appears that curses was never initialized, e.g., by initscr().
- For instance, this guards against setting the terminal modes to
- strange values if endwin() is called after setupterm(). In the same
- context, Solaris curses will dump core.
- + modify logic that avoids a conflict in lib_vidattr.c between sgr0 and
- equivalent values in rmso or rmul by ensuring we do not modify the
- data which would be returned by the terminfo or termcap interfaces
- (reported by Brad Pepers <brad@linuxcanada.com>, cf: 960706).
- + 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).
-
-990605 pre-release
- + include time.h in lib_napms.c if nanosleep is used (patch by
- R Lindsay Todd <toddr@rpi.edu>).
- + add an "#undef bool" to curses.h, in case someone tries to define it,
- e.g., perl.
- + add check to tparm to guard against divide by zero (reported by Aaron
- Campbell <aaron@ug.cs.dal.ca>).
-
-990516 pre-release
- + minor fix to build tack on CLIX (mismatched const).
- > patch by Juergen Pfeifer:
- + change Juergen's old email address with new one in the files where it
- is referenced. The Ada95 HTML pages are regenerated.
- + update MANIFEST to list the tack files.
-
-990509 pre-release
- + minor fixes to make 'tack' build/link on NeXT (reported by Francisco
- A. Tomei Torres).
-
-990417 pre-release
- + add 'tack' program (which is GPL'd), updating it to work with the
- modified TERMTYPE struct and making a fix to support setaf/setab
- capabilities. Note that the tack program is not part of the
- ncurses libraries, but an application which can be distributed with
- ncurses. The configure script will ignore the directory if it is
- omitted, however.
- + modify gpm mouse support so that buttons 2 and 3 are used for
- select/paste only when shift key is pressed, making them available
- for use by an application (patch by Klaus Weide).
- + add complete list of function keys to scoansi terminfo entry - TD
-
-990410 pre-release
- + add a simple test program cardfile.c to illustrate how to read form
- fields, and showing forms within panels.
- + change shared-library versioning for the Hurd to be like Linux rather
- than *BSD (patch by Mark Kettenis <kettenis@wins.uva.nl>).
- + add linux-lat terminfo entry.
- + back-out _nc_access check in read_termcap.c (both incorrect and
- unnecessary, except to guard against a small window where the file's
- ownership may change).
-
-990403 pre-release
- + remove conflicting _nc_free_termtype() function from test module
- lib_freeall.c
- + use _nc_access check in read_termcap.c for termpaths[] array (noted
- by Jeremy Buhler, indicating that Alan Cox made a similar patch).
- > 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>)
-
-990327 pre-release (alpha.gnu.org:/gnu/ncurses-5.0-beta1.tar.gz)
- + minor fixes to xterm-xfree86 terminfo entry - TD.
- + split up an expression in configure script check for ldconfig to
- workaround limitation of BSD/OS sh (reported by Jeff Haas
- <jmh@mail.msen.com>).
- + correct a typo in man/form_hook.3x (Todd C Miller).
-
-990318 pre-release
- + parenthesize and undef 'index' symbol in c++ binding and demo, to
- accommodate its definition on NeXT (reported by Francisco A. Tomei
- Torres).
- + add sigismember() to base/sigaction.c compatibility to link on NeXT
- (reported by Francisco A. Tomei Torres).
- + further refinements to inequality in hashmap.c to cover a case with
- ^U in nvi (patch by Alexander Lukyanov).
-
-990316 pre-release
- + add fallback definition for getcwd, to link on NeXT.
- + add a copy of cur_term to tic.c to make it link properly on NeXT
- (reported by Francisco A. Tomei Torres).
- + change inequality in hashmap.c which checks the distance traveled by
- a chunk so that ^D command in nvi (scrolls 1/2 screen) will use
- scrolling logic (patch by Alexander Lukyanov, reported by Jeffrey
- C Honig).
-
-990314 pre-release
- + modify lib_color.c to handle a special case where the curscr
- attributes have been made obsolete (patch by Alexander Lukyanov).
- + update BSD/OS console terminfo entries to use klone+sgr and
- klone+color (patch by Jeffrey C Honig).
- + update glibc addon configure script for extended capabilities.
- + correct a couple of warnings in the --enable-const configuration.
- + make comp_hash build properly with _nc_strdup(), on NeXT (reported by
- Francisco A. Tomei Torres <francisco.tomei@cwix.com>).
-
-990313 pre-release
- + correct typos in linux-c initc string - TD
- + add 'crt' terminfo entry, update xterm-xfree86 entry - TD
- + remove a spurious argument to tparm() in lib_sklrefr.c (patch by
- Alexander Lukyanov).
-
-990307 pre-release
- + back-out change to wgetch because it causes a problem with ^Z
- handling in lynx (reported by Kim DeVaughn).
-
-990306 pre-release
- + add -G option to tic and infocmp, to reverse the -g option.
- + recode functions in name_match.c to avoid use of strncpy, which
- caused a 4-fold slowdown in tic (cf: 980530).
- + correct a few warnings about sign-extension in recent changes.
- > patch by Juergen Pfeifer:
- + fixes suggested by Jeff Bradbury <jibradbury@lucent.com>:
- + improved parameter checking in new_fieldtype().
- + fixed a typo in wgetch() timeout handling.
- + allow slk_init() to be called per newterm call. The internal SLK
- state is stored in the SCREEN struct after every newterm() and then
- reset for the next newterm.
- + fix the problem that a slk_refresh() refreshes stdscr if the
- terminal has true SLKs.
- + update HTML documentation for Ada binding.
-
-990301 pre-release
- + remove 'bool' casts from definitions of TRUE/FALSE so that statements
- such as "#if TRUE" work. This was originally done to allow for a C++
- compiler which would warn of implicit conversions between enum and
- int, but is not needed for g++ (reported by Kim DeVaughn).
- + add use_extended_names() function to allow applications to suppress
- read of the extended capabilities.
- + add configure option --enable-tcap-names to support logic which
- allows ncurses' tic to define new (i.e., extended) terminal
- capabilities. This is activated by the tic -x switch. The infocmp
- program automatically shows or compares extended capabilities.
- Note: This changes the Strings and similar arrays in the TERMTYPE
- struct so that applications which manipulate it must be recompiled.
- + use macros typeMalloc, typeCalloc and typeRealloc consistently
- throughout ncurses library.
- + add _nc_strdup() to doalloc.c.
- + modify define_key() to allow multiple strings to be bound to the
- same keycode.
- + correct logic error in _nc_remove_string, from 990220.
- > patch by Juergen Pfeifer, for Ada95 binding:
- + regenerate some of the html documentation
- + minor cleanup in terminal_interface-curses.adb
-
-990220 pre-release
- + resolve ambiguity of kend/kll/kslt and khome/kfnd/kich1 strings in
- xterm and ncsa terminfo entries by removing the unneeded ones. Note
- that some entries will return kend & khome versus kslt and kfnd, for
- PC-style keyboards versus strict vt220 compatiblity - TD
- + add function keybound(), which returns the definition associated with
- a given keycode.
- + modify define_key() to undefine the given string when no keycode is
- given.
- + modify keyok() so it works properly if there is more than one string
- defined for a keycode.
- + add check to tic to warn about terminfo descriptions that contain
- more than one key assigned to the same string. This is shown only if
- the verbose (-v) option is given. Moved related logic (tic -v) from
- comp_parse.c into the tic program.
- + add/use _nc_trace_tries() to show the function keys that will be
- recognized.
- + rename init_acs to _nc_init_acs (request by Alexander Lukyanov).
- > patch by Juergen Pfeifer, for Ada95 binding:
- + remove all the *_adabind.c from ncurses, menu and form projects.
- Those little helper routines have all been implemented in Ada and are
- no longer required.
- + The option handling routines in menu and form have been made more
- save. They now make sure that the unused bits in options are always
- zero.
- + modify configuration scripts to
- + use gnatmake as default compiler name. This is a safer choice than
- gcc, because some GNAT implementations use other names for the
- compilerdriver to avoid conflicts.
- + use new default installation locations for the Ada files according
- to the proposed GNU Ada filesystem standard (for Linux).
- + simplify the Makefiles for the Ada binding
- + rename ada_include directory to src.
-
-990213
- + enable sigwinch handler by default.
- + disable logic that allows setbuf to be turned off/on, because some
- implementations will overrun the buffer after it has been disabled
- once.
-
-990206
- + suppress sc/rc capabilities from terminal description if they appear
- in smcup/rmcup. This affects only scrolling optimization, to fix a
- problem reported by several people with xterm's alternate screen,
- though the problem is more general.
- > patch by Juergen Pfeifer, for Ada95 binding:
- + removed all pragma Preelaborate() stuff, because the just released
- gnat-3.11p complains on some constructs.
- + fixed some upper/lower case notations because gnat-3.11p found
- inconsistent use.
- + used a new method to generate the HTML documentation of the Ada95
- binding. This invalidates nearly the whole ./Ada95/html subtree.
- Nearly all current files in this subtree are removed
-
-990130
- + cache last result from _nc_baudrate, for performance (suggested by
- Alexander Lukyanov).
- + modify ClrUpdate() function to workaround a problem in nvi, which
- uses redrawwin in SIGTSTP handling. Jeffrey C Honig reported that
- ncurses repainted the screen with nulls before resuming normal
- operation (patch by Alexander Lukyanov).
- + generalize is_xterm() function a little by letting xterm/rxvt/kterm
- be any substring rather than the prefix.
- + modify lib_data.c to initialize SP. Some linkers, e.g., IBM's, will
- not link a module if the only symbols exported from the module are
- uninitialized ones (patch by Ilya Zakharevich, who says that he has
- seen messages claiming this behaviour conforms to the standard.)
- + move call on _nc_signal_handler past _nc_initscr, to avoid a small
- window where Nttyb hasn't yet been filled (reported by Klaus Weide).
- + modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a
- problem where ncurses applications which were run via a shell script
- would hang when given a ^Z. Also, check if the terminal's process
- group is consistent, i.e., a shell has not taken ownership of it,
- before deciding to save the current terminal settings in the SIGTSTP
- handler (patch by Klaus Weide).
- + correct spelling of ACS_ names in curs_border.3x (reported by Bob van
- der Poel <bvdpoel@kootenay.com>).
- + correct a couple of typos in the macros supporting the configure
- --with-shlib-version option.
-
-990123
- + modify fty_regex.c to compile on HAVE_REGEXPR_H_FUNCS machine (patch
- by Kimio Ishii <ishii@csl.sony.co.jp>).
- + rename BSDI console terminfo entries: bsdos to bsdos-pc-nobold, and
- bsdos-bold to bsdos-pc (patch by Jeffrey C Honig).
- + modify tput to accept termcap names as an alternative to terminfo
- names (patch by Jeffrey C Honig).
- + correct a typo in term.7 (Todd C Miller).
- + add configure --with-shlib-version option to allow installing shared
- libraries named according to release or ABI versions. This
- parameterizes some existing logic in the configure script, and is
- intended for compatiblity upgrades on Digital Unix, which used
- versioned libraries in ncurses 4.2, but no longer does (cf: 980425).
- + resync configure script against autoconf 2.13 + patches
- + minor improvements for teraterm terminfo entry based on the program's
- source distribution.
-
-990116
- + change default for configure --enable-big-core to assume machines do
- have enough memory to resolve terminfo.src in-memory.
- + correct name of ncurses library in TEST_ARGS when configuring with
- debug library.
- + minor fixes to compile ncurses library with broken-linker with g++.
- + add --enable-broken-linker configure option, default to environment
- variable $BROKEN_LINKER (request by Jeffrey C Honig).
- + change key_names[] array to static since it is not part of the curses
- interface (reported by Jeffrey C Honig <jch@bsdi.com>).
-
-990110
- + add Tera Term terminfo entry - TD
-
-990109
- + reviewed/corrected macros in curses.h as per XSI document.
- + provide support for termcap PC variable by copying it from terminfo
- data and using it as the padding character in tputs (reported by
- Alexander Lukyanov).
- + corrected iris-ansi and iris-ansi-ap terminfo entries for kent and
- kf9-kf12 capabilities, as well as adding kcbt.
- + document the mouse handling mechanism in menu_driver and make a small
- change in menu_driver's return codes to provide more consistency
- (patch by Juergen Pfeifer).
- + add fallback definition for NCURSES_CONST to termcap.h.in (reported
- by Uchiyama Yasushi <uch@nop.or.jp>).
- + move lib_restart.c to ncurses/base, since it uses curses functions
- directly, and therefore cannot be used in libtinfo.so
- + rename micro_char_size to micro_col_size, adding #define to retain
- old name.
- + add set_a_attributes and set_pglen_inch to terminfo structure, as per
- XSI and Solaris 2.5.
- + minor makefile files to build ncurses test_progs
- + update html files in misc directory to reflect changes since 4.2
-
-990102
- + disable scroll hints when hashmap is enabled (patch by Alexander
- Lukyanov).
- + move logic for tic's verify of -e option versus -I and -C so that the
- terminfo data is not processed if we cannot handle -e (reported by
- Steven Schwartz <steves@unitrends.com>.
- + add test-driver traces to terminfo and termcap functions.
- + provide support for termcap ospeed variable by copying it from the
- internal cur_term member, and using ospeed as the baudrate reference
- for the delay_output and tputs functions. If an application does not
- set ospeed, the library behaves as before, except that _nc_timed_wait
- is no longer used, or needed, since ospeed always has a value. But
- the application can modify ospeed to adjust the output of padding
- characters (from a bug report for screen 3.7.6 and email from Michael
- Schroeder <Michael.Schroeder@informatik.uni-erlangen.de>).
- + removed some unused ifdef's as part of Alexander's restructuring.
- + reviewed/updated curses.h, term.h against X/Open Curses Issue 4
- Version 2. This includes making some parameters NCURSES_CONST
- rather than const, e.g., in termcap.h.
- + change linux terminfo entry to use ncv#2, since underline does not
- work with color
-
-981226
- + miscellaneous corrections for curses.h to match XSI.
- + change --enable-no-padding configure option to be normally enabled.
- + add section to ncurses manpage for environment variables.
- + investigated Debian bug report that pertains to screen 3.7.4/3.7.6
- changes, found no sign of problems on Linux (or on SunOS, Solaris)
- running screen built with ncurses.
- + check if tmp_fp is opened in tic.c before closing it (patch by Pavel
- Roskin <pavel_roskin@geocities.com>).
- + correct several font specification typos in man-pages.
-
-981220
- + correct default value for BUILD_CC (reported by Larry Virden).
-
-981219
- + modify _nc_set_writedir() to set a flag in _nc_tic_dir() to prevent
- it from changing the terminfo directory after chdir'ing to it.
- 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
- + 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
- BUILD_CC variable for cross compiling (patch by Uchiyama Yasushi
- <uch@nop.or.jp>)
-
-981212
- + add environment variable NCURSES_NO_SETBUF to allow disabling the
- setbuf feature, for testing purposes.
- + correct ifdef's for termcap.h versus term.h that suppress redundant
- declarations of prototypes (reported by H.J.Lu).
- + modify Makefile.os2 to add linker flags which allow multiple copies
- of an application to coexist (reported by Ilya Zakharevich).
- + update Makefile.glibc and associated configure script so that ncurses
- builds as a glibc add-on with the new directory configuration
- (reported by H.J.Lu).
-
-981205
- + modify gen_reps() function in gen.c to work properly on SunOS
- (sparc), which is a left-to-right architecture.
- + modify relative_move and tputs to avoid an interaction with the
- BSD-style padding. The relative_move function could produce a string
- to replace on the screen which began with a numeric character, which
- was then interpreted by tputs as padding. Now relative_move will not
- generate a string with a leading digit in that case (overwrite).
- Also, tputs will only interpret padding if the string begins with a
- digit; as coded it permitted a string to begin with a decimal point
- or asterisk (reported by Larry Virden).
- > patches by Juergen Pfeifer:
- + fix a typo in m_driver.c mouse handling and improves the error
- handling.
- + fix broken mouse handling in the Ada95 binding
- + make the Ada95 sample application menus work with the new menu mouse
- support
- + improve the mouse handling introduced by Ilya; it now handles menus
- with spacing.
- + repair a minor bug in the menu_driver code discovered during this
- rework.
- + add new function wmouse_trafo() to hide implementation details of
- _yoffset member of WINDOW struct needed for mouse coordinate
- transformation.
-
-981128
- + modify Ada95/gen/gen.c to avoid using return-value of sprintf, since
- some older implementations (e.g., SunOS 4.x) return the buffer
- address rather than its length.
- > patch by Rick Ohnemus:
- + modify demo.cc to get it to compile with newer versions of egcs.
- + trim a space that appears at the end of the table preprocessor lines
- ('\" t). This space prevents some versions of man from displaying
- the pages - changed to remove all trailing whitespace (TD)
- + finally, 'make clean' does not remove panel objects.
- > patches by Ilya Zakharevich:
- + allow remapping of OS/2 mouse buttons using environment variable
- MOUSE_BUTTONS_123 with the default value 132.
- + add mouse support to ncurses menus.
-
-981121
- + modify misc/makedef.cmd to report old-style .def file symbols, and to
- generate the .def files sorted by increasing names rather than the
- reverse.
- + add misc/*.ref which are J.J.G.Ripoll's dll definition files (renamed
- from misc/*.old), and updated based on the entrypoint coding he used
- for an older version of ncurses.
- + add README.emx, to document how to build on OS/2 EMX.
- + updates for config.guess, config.sub from Lynx
- > patches by Ilya Zakharevich:
- + minor fixes for mouse handling mode:
- a) Do not initialize mouse if the request is to have no mouse;
- b) Allow switching of OS/2 VIO mouse on and off.
- + modify Makefile.os2 to support alternative means of generating
- configure script, by translating Unix script with Perl.
- > patches by Juergen Pfeifer:
- + Updates MANIFEST to reflect changes in source structure
- + Eliminates a problem introduced with my last patch for the C++
- binding in the panels code. It removes the update() call done in the
- panel destructor.
- + Changes in the Ada95 binding to better support systems where
- sizeof(chtype)!=sizeof(int) (e.g. DEC Alpha).
-
-981114
- + modify install-script for manpages to skip over .orig and .rej files
- (request by Larry Virden).
- > patches/discussion by Alexander Lukyanov:
- + move base-library sources into ncurses/base and tty (serial terminal)
- sources into ncurses/tty, as part of Alexander Lukyanov's proposed
- changes to ncurses library.
- + copy _tracemouse() into ncurses.c so that lib_tracemse.c need not
- be linked into the normal ncurses library.
- + move macro winch to a function, to hide details of struct ldat
- > patches by Juergen Pfeifer:
- + fix a potential compile problem in cursesw.cc
- + some Ada95 cosmetics
- + fix a gen.c problem when compiling on 64-Bit machines
- + fix Ada95/gen/Makefile.in "-L" linker switch
- + modify Ada95 makefiles to use the INSTALL_PREFIX setting.
-
-981107
- + ifdef'd out lib_freeall.c when not configured.
- + rename _tracebits() to _nc_tracebits().
- + move terminfo-library sources into ncurses/tinfo, and trace-support
- functions into ncurses/trace as part of Alexander Lukyanov's proposed
- changes to ncurses library.
- + modify generated term.h to always specify its own definitions for
- HAVE_TERMIOS_H, etc., to guard against inclusion by programs with
- broken configure scripts.
-
-981031
- + modify terminfo parsing to accept octal and hexadecimal constants,
- like Solaris.
- + remove an autoconf 2.10 artifact from the configure script's check
- for "-g" compiler options. (Though harmless, this confused someone
- at Debian, who recently issued a patch that results in the opposite
- effect).
- + add configure option --with-ada-compiler to accommodate installations
- that do not use gcc as the driver for GNAT (patch by Juergen
- Pfeifer).
-
-981017
- + ensure ./man exists in configure script, needed when configuring
- 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 mk-2nd.awk to handle subdirectories, e.g., ncurses/tty
- (patch by Alexander V Lukyanov).
-
-981010
- + modify --with-terminfo-dirs option so that the default value is the
- ${datadir} value, unless $TERMINFO_DIRS is already set. This gets
- rid of a hardcoded list of candidate directories in the configure
- script.
- + add some error-checking to _nc_read_file_entry() to ensure that
- strings are properly terminated (Todd C Miller).
- + rename manpage file curs_scr_dmp.3x to curs_scr_dump.3x, to
- correspond with contents (reported by Neil Zanella
- <nzanella@cs.mun.ca>).
- + remove redundant configure check for C++ which did not work when $CXX
- was specified with a full pathname (reported by Andreas Jaeger).
- + corrected bcopy/memmove check; the macro was not standalone.
-
-981003
- + remove unnecessary portion of OS/2 EMX mouse change from
- check_pending() (reported by Alexander V Lukyanov).
-
-980926
- + implement mouse support for OS/2 EMX (adapted from patch against
- 4.2(?) by Ilya Zakharevich).
- + add configure-check for bcopy/memmove, for 980919 changes to hashmap.
- + merge Data General terminfo from Hasufin <hasufin@vidnet.net> - TD
- + merge AIX 3.2.5 terminfo descriptions for IBM terminals, replaces
- some older entries - TD
- + modify tic to compile into %'char' form in preference to %{number},
- since that is a little more efficient.
- + minor correction to infocmp to avoid displaying "difference" between
- two capabilities that are rendered in equivalent forms.
- + add -g option to tic/infocmp to force character constants to be
- displayed in quoted form. Otherwise their decimal values are shown.
- + modify setupterm so that cancelled strings are treated the same as
- absent strings, cancelled and absent booleans false (does not affect
- tic, infocmp).
- + modify tic, infocmp to discard redundant i3, r3 strings when output
- to termcap format.
- > patch by Alexander V Lukyanov:
- + improve performance of tparm, now it takes 19% instead of 25% when
- profiling worm.
- + rename maxlen/minlen to prec/width for better readability.
- + use format string for printing strings.
- + use len argument correctly in save_text, and pass it to save_number.
-
-980919
- + make test_progs compile (but hashmap does not function).
- + correct NC_BUFFERED macro, used in lib_mvcur test-driver, modify
- associated logic to avoid freeing the SP->_setbuf data.
- + add modules home_terminfo and getenv_num to libtinfo.
- + move write_entry to libtinfo, to work with termcap caching.
- + minor fixes to blue.c to build with atac.
- + remove softscroll.c module; no longer needed for testing.
- > patches by Todd C Miller:
- + use strtol(3) instead of atoi(3) when parsing env variables so we can
- detect a bogus (non-numeric) value.
- + check for terminal names > MAX_NAME_SIZE in a few more places when
- dealing with env variables again.
- + fix a MAX_NAME_SIZE that should be MAX_NAME_SIZE+1
- + use sizeof instead of strlen(3) on PRIVATE_INFO since it is a fixed
- string #define (compile time vs runtime).
- + when setting errno to ENOMEM, set it right before the return, not
- before code that could, possibly, set errno to a different value.
- > patches by Alexander V Lukyanov:
- + use default background in update_cost_from_blank()
- + disable scroll-hints when hashmap is configured.
- + 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 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
- insert_padding in insert mode after each char. This adds new costs
- to the SP struct.
-
-980912
- + 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
- never were HTML 2.0-compliant, but are acceptable 3.0).
-
-980905
- + modify MKterminfo.sh to generate terminfo.5 with tables sorted by
- capability name, as in SVr4.
- + modified term.h, termcap.h headers to avoid redundant declarations.
- + change 'u_int' type in tset.c to unsigned, making this compile on
- Sequent PRX 4.1 (reported by Michael Sterrett <msterret@coat.com>).
-
-980829
- + corrections to mailing addresses, and moving the magic line that
- causes the man program to invoke tbl to the first line of each
- manpage (patch by Rick Ohnemus <rick@ecompcon.com>).
- + add Makefile.os2 and supporting scripts to generate dll's on OS/2 EMX
- (from J.J.G.Ripoll, with further integration by TD).
- + correct a typo in icl6404 terminfo entry.
- + add xtermm and xtermc terminfo entries.
- > from esr's terminfo version:
- + Added Francesco Potorti's tuned Wyse 99 entries.
- + dtterm enacs correction from Alexander V Lukyanov.
- + Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version.
-
-980822
- + document AT&T acs characters in terminfo.5 manpage.
- + use EMX _scrsize() function if terminfo and environment do not
- declare the screen size (reported by Ilya Zakharevich
- <ilya@math.ohio-state.edu>).
- + remove spurious '\' characters from eterm and osborne terminfo
- entries (prompted by an old Debian bug report).
- + correct reversed malloc/realloc calls in _nc_doalloc (reported by
- Hans-Joachim Widmaier <hjwidmai@foxboro.com>).
- + correct misplaced parenthesis which caused file-descriptor from
- opening termcap to be lost, from 980725 changes (reported by Andreas
- Jaeger).
-
-980815
- + 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.
-
-980809
- + correct missing braces around a trace statement in read_entry.c,
- from 980808 (reported by Kim DeVaughn <kimdv@best.com> and Liviu
- Daia).
-
-980808
- + fix missing include <errno.h> in ditto.c (reported by Bernhard
- Rosenkraenzer <bero@k5.sucks.eu.org>)
- + add NCSA telnet terminfo entries from Francesco Potorti
- <F.Potorti@cnuce.cnr.it>, from Debian bug reports.
- + make handling of $LINES and $COLUMNS variables more compatible with
- Solaris by allowing them to individually override the window size
- as obtained via ioctl.
-
-980801
- + modify lib_vidattr.c to allow for terminal types (e.g., xterm-color)
- which may reset all attributes in the 'op' capability, so that colors
- are set before turning on bold and other attributes, but still after
- turning attributes off.
- + add 'ditto.c' to test directory to illustrate use of newterm for
- initializing multiple screens.
- + modify _nc_write_entry() to recover from failed attempt to link alias
- for a terminfo on a filesystem which does not preserve character case
- (reported by Peter L Jordan <PJordan@chla.usc.edu>).
-
-980725
- + updated versions of config.guess and config.sub based on automake 1.3
- + change name-comparisons in lib_termcap to compare no more than 2
- characters (gleaned from Debian distribution of 1.9.9g-8.8, verified
- with Solaris curses).
- + fix typo in curs_insstr.3x (patch by Todd C Miller)
- + use 'access()' to check if ncurses library should be permitted to
- open or modify files with fopen/open/link/unlink/remove calls, in
- case the calling application is running in setuid mode (request by
- Cristian Gafton <gafton@redhat.com>, responding to Duncan Simpson
- <dps@io.stargate.co.uk>).
- + arm100 terminfo entries from Dave Millen <dmill@globalnet.co.uk>).
- + qnxt2 and minitel terminfo entries from esr's version.
-
-980718
- + use -R option with ldconfig on FreeBSD because otherwise it resets
- 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).
- + correct conversion of CANCELLED_NUMERIC in write_object(), which was
- omitting the high-order byte, producing a 254 in the compiled
- terminfo.
- + modify return-values of tgetflag, tgetnum, tgetstr, tigetflag,
- tigetnum and tigetstr to be compatible with Solaris (gleaned from
- Debian distribution of 1.9.9g-8.8).
- + modify _nc_syserr_abort to abort only when compiled for debugging,
- otherwise simply exit with an error.
-
-980711
- + modify Ada95 'gen' program to use appropriate library suffix (e.g.,
- "_g" for a debug build).
- + update Ada95 'make clean' rule to include generics .ali files
- + add a configure test to ensure that if GNAT is found, that it can
- compile/link working Ada95 program.
- + flush output in beep and flash functions, fixing a problem with
- getstr (patch by Alexander V Lukyanov)
- + fix egcs 1.0.2 warning for etip.h (patch by Chris Johns).
- + correct ifdef/brace nesting in lib_sprintf.c (patch by Bernhard
- Rosenkraenzer <bero@Pool.Informatik.RWTH-Aachen.DE>).
- + correct typo in wattr_get macro from 980509 fixes (patch by Dan
- Nelson).
-
-980704
- + merge changes from current XFree86 xterm terminfo descriptions.
- + add configure option '--without-ada'.
- + add a smart-default for termcap 'ac' to terminfo 'acs_chars' which
- corresponds to vt100.
- + change translation for termcap 'rs' to terminfo 'rs2', which is
- the documented equivalent, rather than 'rs1'.
-
-980627
- + slow 'worm' down a little, for very fast machines.
- + corrected firstchar/lastchar computation in lib_hline.c
- + simplify some expressions with CHANGED_CELL, CHANGED_RANGE and
- CHANGED_TO_EOL macros.
- + modify init_pair so that if a color-pair is reinitialized, we will
- repaint the areas of the screen whose color changes, like SVr4 curses
- (reported by Christian Maurer <maurer@inf.fu-berlin.de>).
- + modify getsyx/setsyx macros to comply with SVr4 man-page which
- says that leaveok() affects their behavior (report by Darryl Miles,
- patch by Alexander V Lukyanov).
-
-980620
- + review terminfo.5 against Solaris 2.6 curses version, corrected
- several minor errors/omissions.
- + implement tparm %l format.
- + implement tparm printf-style width and precision for %s, %d, %x, %o
- as per XSI.
- + implement tparm dynamic variables (reported by Xiaodan Tang).
-
-980613
- + update man-page for for wattr_set, wattr_get (cf: 980509)
- + correct limits in hashtest, which would cause nonprinting characters
- to be written to large screens.
- + correct configure script, when --without-cxx was specified: the
- wrong variable was used for cf_cv_type_of_bool. Compilers up to gcc
- 2.8 tolerated the missing 'int'.
- + remove the hardcoded name "gcc" for the GNU Ada compiler. The
- compiler's name might be something like "egcs" (patch by Juergen
- Pfeifer).
- + correct curs_addch.3x, which implied that echochar could directly
- display control characters (patch by Alexander V Lukyanov).
- + fix typos in ncurses-intro.html (patch by Sidik Isani
- <isani@cfht.hawaii.edu>)
-
-980606
- + add configure test for conflicting use of exception in math.h and
- other headers.
- + minor optimization to 'hash()' function in hashmap.c, reduces its
- time by 10%.
- + correct form of LD_SHARED_OPTS for HP-UX 10.x (patch by Tim Mooney).
- + fix missing quotes for 'print' in MKunctrl.awk script (reported by
- Mihai Budiu <mihaib@gs41.sp.cs.cmu.edu>).
- > patch by Alexander V Lukyanov:
- + correct problem on Solaris (with poll() function) where getch could
- hang indefinitely even if timeout(x) was called. This turned out to
- be because milliseconds was not updated before 'goto retry' in
- _nc_timed_wait.
- + simplified the function _nc_timed_wait and fixed another bug, which
- was the assumption of !GOOD_SELECT && HAVE_GETTIMEOFDAY in *timeleft
- assignment.
- + removed the cycle on EINTR, as it seems to be useless.
-
-980530
- + add makefile-rule for test/keynames
- + modify run_tic.sh and shlib to ensure that user's .profile does not
- override the $PATH used to run tic (patch by Tim Mooney).
- + restore LD_SHARED_OPTS to $(LD_SHARED_FLAGS) when linking programs,
- needed for HP-UX shared-library path (recommended by Tim Mooney).
- + remove special case of HP-UX -L options, use +b options to embed
- $(libdir) in the shared libraries (recommended by Tim Mooney).
- + add checks for some possible buffer overflows and unchecked
- malloc/realloc/calloc/strdup return values (patch by Todd C Miller
- <Todd.Miller@courtesan.com>)
-
-980523
- + correct maxx/maxy expression for num_columns/num_lines in derwin
- (patch by Alexander V Lukyanov).
- + add /usr/share/lib/terminfo and /usr/lib/terminfo as compatibilty
- fallbacks to _nc_read_entry(), along with --with-terminfo-dirs
- configure option (suggested by Mike Hopkirk).
- + modify config.guess to recognize Unixware 2.1 and 7 (patch by Mike
- Hopkirk <hops@sco.com>).
- + suppress definition of CC_SHARED_OPTS in LDFLAGS_SHARED in c++
- Makefile.in, since this conflicts when g++ is used with HP-UX
- compiler (reported by Tim Mooney).
- + parenthesize 'strcpy' calls in c++ binding to workaround redefinition
- in some C++ implementations (reported by several people running
- egcs with glibc 2.0.93, analysis by Andreas Jaeger.
-
-980516
- + modify write_entry.c so that it will not attempt to link aliases
- with embedded '/', but give only a warning.
- + put -L$(libdir) first when linking programs, except for HP-UX.
- + modify comp_scan.c to handle SVr4 terminfo description for att477,
- which contains a colon in the description field.
- + modify configure script to support SCO osr5.0.5 shared libraries
- (from comp.unix.sco.programmer newsgroup item by Mike Hopkirk
- <hops@sco.com>).
- + eliminate extra GoTo call in lib_doupdate.c (patch by Alexander V.
- Lukyanov).
- + minor adjustments of const/NCURSES_CONST from IRIX compile.
- + add updates based on esr's 980509 version of terminfo.src.
-
-980509
- + correct macros for wattr_set, wattr_get, separate wattrset macro from
- these to preserve behavior that allows attributes to be combined with
- color pair numbers.
- + add configure option --enable-no-padding, to allow environment
- variable $NCURSES_NO_PADDING to eliminate non-mandatory padding,
- thereby making terminal emulators (e.g., for vt100) a little more
- efficient (request by Daniel Eisenbud <eisenbud@cs.swarthmore.edu>).
- + modify configure script to embed ABI in shared libraries for HP-UX
- 10.x (detailed request by Tim Mooney).
- + add test/example of the 'filter()' function.
- + add nxterm and xterm-color terminfo description (request by Cristian
- Gafton <gafton@redhat.com>).
- + modify rxvt terminfo description to clear alternate screen before
- switching back to normal screen, for compatibility with applications
- which use xterm (reported by Manoj Kasichainula <manojk@io.com>).
- + modify linux terminfo description to reset color palette (reported
- by Telford Tendys <telford@eng.uts.edu.au>).
- + correction to doupdate, for case where terminal does not support
- insert/delete character. The logic did not check that there was a
- difference in alignment of changes to old/new screens before
- repainting the whole non-blank portion of the line. Modified to fall
- through into logic that reduces by the portion which does not differ
- (reported by Daniel Eisenbud <eisenbud@cs.swarthmore.edu>).
- + minor performance improvement to wnoutrefresh by moving some
- comparisons out of inner loop.
-
-980425
- + modify configure script to substitute NCURSES_CONST in curses.h
- + updated terminfo entries for xterm-xf86-v40, xterm-16color,
- xterm-8bit to correspond to XFree86 3.9Ag.
- + remove restriction that forces ncurses to use setaf/setab if the
- number of colors is greater than 8. (see 970524 for xterm-16color).
- + change order of -L options (so that $(libdir) is searched first) when
- linking tic and other programs, to workaround HP's linker.
- Otherwise, the -L../lib is embedded when linking against shared
- libraries and the installed program does not run (reported by Ralf
- Hildebrandt).
- + modify configuration of shared libraries on Digital Unix so that
- versioning is embedded in the library, rather than implied by
- links (patch by Tim Mooney).
-
-980418
- + modify etip.h to avoid conflict with math.h on HP-UX 9.03 with gcc
- 2.8.1 which redefines 'exception' (reported by Ralf Hildebrandt
- <R.Hildebrandt@tu-bs.de>).
- + correct configure tests in CF_SHARED_OPTS which used $CC value to
- check for gcc, rather than autoconf's $GCC value. This did not
- work properly if the full pathname of the compiler were given
- (reported by Michael Yount <yount@csf.Colorado.edu>).
- + revise check for compiler options to force ANSI mode since repeating
- an option such as -Aa causes HP's compiler to fail on its own headers
- (reported by Clint Olsen <olsenc@ichips.intel.com>).
-
-980411
- + ifdef'd has_key() and mcprint() as extended functions.
- + modified several prototypes to correspond with 1997 version of
- X/Open Curses (affects ABI since developers have used attr_get).
- + remove spurious trailing blanks in glibc addon-scripts (patch by
- H.J.Lu).
- + insert a few braces at locations where gcc-2.8.x asks to use them to
- avoid ambigous else's, use -fpic rather than -fPIC for Linux (patch
- by Juergen Pfeifer).
-
-980404
- + split SHLIB_LIST into SHLIB_DIRS/SHLIB_LIST to keep -L options
- before -l to accommodate Solaris' linker (reported by Larry Virden).
-
-980328
- + modify lib_color.c to eliminate dependency on orig_colors and
- orig_pair, since SVr4 curses does not require these either, but
- uses them when they are available.
- + add detailed usage-message to infocmp.
- + correct a typo in att6386 entry (a "%?" which was "?").
- + add -f option to infocmp and tic, which formats the terminfo
- if/then/else/endif so that they are readable (with newlines and
- tabs).
- + fixes for glibc addon scripts (patch by H.J.Lu).
-
-980321
- + revise configure macro CF_SPEED_TYPE so that termcap.h has speed_t
- declared (from Adam J. Richter <adam@yggdrasil.com>)
- + remove spurious curs_set() call from leaveok() (J.T.Conklin).
- + corrected handling leaveok() in doupdate() (patch by Alexander V.
- Lukyanov).
- + improved version of wredrawln (patch by Alexander V. Lukyanov).
- + correct c++/Makefile.in so install target do not have embedded ../lib
- to confuse it (patch by Thomas Graf <graf@essi.fr>).
- + add warning to preinstall rule which checks if the installer would
- overwrite a curses.h or termcap.h that is not derived from ncurses.
- (The recommended configuration for developers who need both is to
- use --disable-overwrite).
- + modify preinstall rule in top-level Makefile to avoid implicit
- use of 'sh', to accommodate Ultrix 4.4 (reported by Joao Palhoto
- Matos <jmatos@math.ist.utl.pt>, patch by Thomas Esser
- <te@informatik.uni-hannover.de>)
- + refine ifdef's for TRACE so that libncurses has fewer dependencies
- on libtinfo when TRACE is disabled.
- + modify configure script so that if the --with-termlib option is used
- to generate a separate terminfo library, we chain it to the ncurses
- library with a "-l" option (reported by Darryl Miles and Ian T.
- Zimmerman).
-
-980314
- + correct limits and window in wredrawln function (reported/analysis by
- Alexander V. Lukyanov).
- + correct sed expression in configure script for --with-fallback
- option (patch by Jesse Thilo).
- + correct some places in configure script where $enableval was used
- rather than $withval (patch by Darryl Miles <dlm@g7led.demon.co.uk>).
- + modify some man-pages so no '.' or '..' falls between TH and SH
- macros, to accommodate man_db program (reported by Ian T. Zimmerman
- <itz@rahul.net>).
- + terminfo.src 10.2.1 from Eric's webpage.
- > several changes by Juergen Pfeifer:
- + add copyright notices (and rcs id's) on remaining man-pages.
- + corrected prototypes for slk_* functions, using chtype rather than
- attr_t.
- + implemented the wcolor_set() and slk_color() functions
- + the slk_attr_{set,off,on} functions need an additional void*
- parameter according to XSI.
- + fix the C++ and Ada95 binding as well as the man pages to
- reflect above enhancements.
-
-980307
- + use 'stat()' rather than 'access()' in toe.c to check for the
- existence of $HOME/.terminfo, since it may be a file.
- + suppress configure CF_CXX_LIBRARY check if we are not using g++
- 2.7.x, since this is not needed with g++ 2.8 or egcs (patch by
- Juergen Pfeifer).
- + turn on hashmap scrolling code by default, intend to remedy defects
- by 4.3 release.
- + minor corrections to terminfo.src changelog.
-
-980302 4.2 release for upload to prep.ai.mit.edu
- + correct Florian's email address in ncurses-intro.html
- + terminfo.src 10.2.0 from Eric.
-
-980228 pre-release
- + add linux-koi8r replace linux-koi8, which is not KOI8 (patch by
- QingLong <qinglong@Bolizm.ihep.su>).
- + minor documentation fixes (patch by Juergen Pfeifer).
- + add setlocale() call to ncurses.c (reported by Claes G. Lindblad
- <claesg@algonet.se>).
- + correct sign-extension in lib_insstr.c (reported by Sotiris
- Vassilopoulos <svas@leon.nrcps.ariadne-t.gr>)
-
-980221 pre-release
- + regenerated some documentation overlooked in 980214 patch
- (ncurses-intro.doc, curs_outopts.3x.html)
- + minor ifdef change to C++ binding to work with gcc 2.8.0 (patch by
- Juergen Pfeifer).
- + change maintainer's mailing address to florian@gnu.org, change
- tentative mailing list address to bug-ncurses-request@gnu.org (patch
- by Florian La Roche).
- + add definition of $(REL_VERSION) to c++/Makefile.in (reported by Gran
- Hasse <gh@raditex.se>).
- + restore version numbers to Ada95 binding, accidentally deleted by
- copyright patch (patch by Juergen Pfeifer).
-
-980214 pre-release
- + remove ncurses.lsm from MANIFEST so that it won't be used in FSF
- distributions, though it is retained in development.
- + correct scaling of milliseconds to nanoseconds in lib_napms.c (patch
- by Jeremy Buhler).
- + update mailing-list information (bug-ncurses@gnu.org).
- + update announcement for upcoming 4.2 release.
- + modify -lm test to check for 'sin()' rather than 'floor()'
- + remove spurious commas from terminfo.src descriptions.
- + change copyright notices to Free Software Foundation
-
-980207
- + minor fixes for autoconf macros CF_ERRNO, CF_HELP_MESSAGE and
- CF_SIZECHANGE
- + modify Makefile.glibc so that $(objpfx) is defined (H.J.Lu).
- + ifdef-out true-return from _nc_mouse_inline() which depends on
- merge of QNX patch (pending 4.2 release).
- > patch by J.T.Conklin, to split off seldom-used modules in ncurses
- (reduces size by up to 2.6kb):
- + move functionality of _nc_usleep into napms, add configuration case
- for nanosleep().
- + moved wchgat() from lib_addch.c to lib_chgat.c
- + moved clearok(), immedok(), leaveok(), and scrollok() from
- lib_options.c to lib_clearok.c, lib_immedok.c, lib_leaveok.c and
- lib_scrollok.c.
- + moved napms() from lib_kernel.c to lib_napms.c
- + moved echo() and noecho() from lib_raw.c to lib_echo.c
- + moved nl() and nonl() from lib_raw.c to lib_nl.c
-
-980131
- + corrected conversion in tclock.c (cf: 971018).
- + updates to Makefile.glibc and associated Linux configure script
- (patch by H.J.Lu).
- + 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
- + add ncv capability to FreeBSD console (cons25w), making reverse
- work with color.
- + correct sense of configure-test for sys/time.h inclusion with
- sys/select.h
- + fixes for Ada95/ada_include/Makefile.in to work with --srcdir option.
- + remove unused/obsolete test-program rules from progs/Makefile.in
- (the rules in ncurses/Makefile.in work).
- + 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.
- > 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
- + add QNX-specific prototype for vsscanf()
- + move initialization of SP->_keytry from init_keytry() to newterm() to
- avoid resetting it via a keyok() call by mouse_activate().
- + reorganized some functions in lib_mouse() to use case-statements.
- + remove sgr string from qnx terminfo entry since it is reported to
- turn off attributes inconsistently.
-
-980124
- + add f/F/b/B commands to ncurses 'b' test to toggle colors, providing
- test for no_color_video.
- + adjusted emx.src to use no_color_video, now works with ncurses 'b'
- and 'k' tests.
- + implement no_color_video attribute, and as a special case, reverse
- colors when the reverse attribute cannot be combined with color.
- + check for empty string in $TERM variable (reported by Brett Michaels
- <brett@xylan.com>).
- > from reports by Fred Fish:
- + add configure-test for isascii
- + add configure-test for -lm library.
- + modify CF_BOOL_SIZE to check if C++ bool types are unsigned.
- > patches by J.J.G.Ripoll
- + add configure/makefile variables to support .exe extension on
- OS/2 EMX (requires additional autoconf patches).
- + explicitly initialize variables in lib_data.c to appease OS/2 linker
- > patches by Fred Fish <fnf@ninemoons.com>
- + misc/Makefile.in (install.data): Avoid trying to install the CVS
- directory.
- + aclocal.m4 (install.includes): Remove files in the include directory
- where we are going to install new ones, not the original source
- files.
- + misc/terminfo.src: Add entry for "beterm", derived from termcap
- distributed with BeOS PR2 using captoinfo.
- + aclocal.m4: Wrap $cf_cv_type_of_bool with quotes (contains space)
- + aclocal.m4: Assume bool types are unsigned.
- + progs/infocmp.c: workaround mwcc 32k function data limit
-
-980117
- + correct initialization of color-pair (from 970524) in xmas.c, which
- was using only one color-pair for all colors (reported by
- J.J.G.Ripoll).
- + add multithread options for objects build on EMX, for compatibility
- with XFree86.
- + split up an expression in MKlib_gen.sh to work around a problem on
- OS/2 EMX, with 'ash' (patch by J.J.G.Ripoll).
- + change terminfo entries xterm (xterm-xf86-v40), xterm-8bit rs1 to use
- hard reset.
- + rename terminfo entry xterm-xf86-v39t to xterm-xf86-v40
- + remove bold/underline from sun console entries since they're not
- implemented.
- + correct _tracef calls in _tracedump(), which did not separate format
- from parameters.
- + correct getopt string for tic "-o" option, and add it to man-page
- synopsis (reported by Darren Hiebert <darren@hmi.com>).
- + correct typo in panel/Makefile.in, reversed if-statement in scrolling
- optimization (Alexander V. Lukyanov).
- + test for 'remove()', use 'unlink() if not found (patch by Philippe De
- Muyter <phdm@macqel.be>).
- > patches by Juergen Pfeifer:
- + Improve a feature of the forms driver. For invisible fields
- (O_VISIBLE off) only the contents but not the attributes are cleared.
- We now clear both. (Reported by Javier Kohan
- <jkohan@adan.fceia.unr.edu.ar>)
- + The man page form_field_opts.3x makes now clear, that invisible
- fields are also always inactive.
- + adjust ifdef's to compile the C++ binding with the just released
- gcc-2.8.0 c++ and the corresponding new C++ libraries.
-
-980110
- + correct "?" command in ncurses.c; it was performing non-screen writes
- while the program was in screen mode. (It "worked" in 1.9.9e because
- that version sets OPOST and OCRNL incorrectly).
- + return error from functions in lib_kernel, lib_raw and lib_ti if
- cur_term is null, or if underlying I/O fails.
- + amend change to tputs() so that it does not return an error if
- cur_term is null, since some applications depend on being able to use
- tputs without initializing the terminal (reported by Christian J.
- Robinson <infynity@cyberhighway.net>).
-
-980103
- + add a copy of emx.src from J.J.G.Ripoll's OS/2 EMX version of ncurses
- 1.9.9e, together with fixes/additions for the "ansi" terminal type.
- + add tic check for save/restore cursor if change_scroll_region is
- defined (from O'Reilly book).
- + modify read_termcap.c to handle EMX-style pathnames (reported by
- J.J.G.Ripoll).
- + modify lib_raw.c to use EMX's setmode (from J.J.G.Ripoll, who says
- EMX's curses does this).
- + modify _nc_tic_expand() to generate \0 rather than \200.
- + move/revise 'expand()' from dump_entry.c to ncurses library as
- _nc_tic_expand(), for use by tack.
- + decode \a as \007 for terminfo, as per XSI.
- + correct translation of terminfo "^@", to \200, like \0.
- + modify next_char() to treat <cr><lf> the same as <newline>, for
- cross-platform compatibility.
- + use new version of autoconf (971230) to work around limited
- environment on CLIX, due to the way autoconf builds --help message.
- > patch by Juergen Pfeifer:
- + check that the Ada95 binding runs against the correct version of
- ncurses.
- + insert constants about the library version into the main spec-file of
- the Ada95 binding.
-
-971227
- + modify open/fopen calls to use binary mode, needed for EMX.
- + modify configure script to work with autoconf 2.10 mods for OS/2
- EMX from J.J.G.Ripoll.
- + generated ncurses_cfg.h with patch (971222) to autoconf 2.12 which
- bypasses limited sed buffer length.
- > several changes from Juan Jose Garcia Ripoll <worm@arrakis.es>
- (J.J.G.Ripoll) to support OS/2 EMX:
- + add a _scrolling flag to SP, to set when we encounter a terminal
- that simply cannot scroll.
- + corrected logic in _nc_add_to_try(), by ensuring that strings with
- embedded \200 characters are matched.
- + don't assume the host has 'link()' function, for linking terminfo
- entries.
-
-971220
- + if there's no ioctl's to support sigwinch handler, disable it.
- + add configure option --disable-ext-funcs to remove the extended
- functions from the build.
- + add configure option --with-termlib to generate the terminfo
- functions as a separate library.
- + add 'sources' rule to facilitate cross-compiling.
- + review/fix order of mostlyclean/clean/distclean rules.
- + modify install-rule for headers to first remove old header, in
- case there was a symbolic link that confuses the install script.
- + corrected substitution for NCURSES_CONST in term.h (cf: 971108)
- + add null pointer checks in wnoutrefresh(), overlap() (patch by
- Xiaodan Tang <xtang@qnx.com>)
- + correct tputs(), which could dereference a null cur_term if invoked
- before terminal is initialized (patch by Christopher Seawood
- <cls@seawood.org>)
- > patch by Juergen Pfeifer:
- + makes better use of "pragma Inline" in the Ada95 binding
- + resynchronizes the generated html manpages
-
-971213
- + additional fixes for man-pages section-references
- + add (for debugging) a check for ich/ich1 conflict with smir/rmir
- to tic, etc.
- + remove hpa/vpa from rxvt terminal description because they are not
- implemented correctly, added sgr0.
- + change ncurses 's' to use raw mode, so ^Q works (reported by Rudolf
- Leitgeb <leitgeb@leland.stanford.edu>)
-
-971206
- + modify protection when installing libraries to (normally) not
- executable. HP-UX shared libraries are an exception.
- + add configure check for 'tack'.
- + implement script for renaming section-references in man-page install,
- for Debian configuration.
- + add validity-check for SP in trace code in baudrate() (reported by
- Daniel Weaver).
- > patch by Alexander V. Lukyanov (fixes to match sol25 curses)
- + modify 'overlay()' so that copy applies target window background to
- characters.
- + correct 'mvwin()' so that it does not clear the previous locations.
- + correct lib_acs.c so that 8-bit character is not sign expanded in
- case of wide characters in chtype.
- + correct control-char test in lib_addch.c for use with wide chars
- + use attribute in the chtype when adding a control character in
- lib_addch.c control char was added with current attribute
-
-971129
- + save/restore errno in _tracef() function
- + change treatment of initialize_color to use a range of 0..1000
- (recommended by Daniel Weaver).
- + set umask in mkinstalldirs, fixing problems reported by users who
- have set root's umask to 077.
- + correct bug in tic that caused capabilities to be reprinted at the
- end of output when they had embedded comments.
- + rewrote wredrawln to correspond to XSI, and split-out since it is
- not often used (from report by Alexander V. Lukyanov, 970825)
- + rewrote Dan Nelson's change to make it portable, as well as to
- correct logic for handling backslashes.
- + add code to _nc_tgetent() to make it work more like a real tgetent().
- It removes all empty fields, and removes all but the first in a group
- of duplicate caps. The code was pulled from the BSD libtermcap code
- in termcap.c (patch by Dan Nelson <dnelson@emsphone.com>
- + don't include --enable-widec in the --with-develop configure option,
- since it is not binary-compatible with 4.1 (noted by Alexander V.
- Lukyanov)
- > patch by Juergen Pfeifer:
- + further improvements of the usage of elaboration pragmas in the Ada95
- binding
- + enhanced Ada95 sample to use the user_data mechanism for panels.
- + a fix for the configuration script to make gnat-3.10 the required
- version.
- + resync of the html version of the manpages
-
-971122
- > fixes/updates for terminfo.src:
- + add vt220-js, pilot, rbcomm, datapoint entries from esr's 27-jun-97
- version.
- + add hds200 description (Walter Skorski)
- + add EMX 0.9b descriptions
- + correct rmso/smso capabilities in wy30-mc and wy50-mc (Daniel Weaver)
- + rename xhpterm back to hpterm.
- > patch by Juergen Pfeifer:
- + Improves the usage of elaboration pragmas for the Ada95 binding.
- + Adds a translation of the test/rain.c into Ada95 to the samples.
- This has been contributed to the project by Laurent Pautet
- (pautet@gnat.com)
-
-971115
- + increase MAX_NAME_SIZE to 512 to handle extremely long alias list
- in HP-UX terminfo.
- + correction & simplification of delay computation in tputs, based on
- comments from Daniel Weaver.
- + replace test for SCO with more precise header tests.
- + add configure test for unsigned literals, use in NCURSES_BITS macro.
- + comment-out the -PIC, etc., flags from c++, progs and test makefiles
- since they probably are not needed, and are less efficient (noted by.
- Ju"rgen Fluk)
- + add -L$(libdir) to loader options, after -L../lib so that loaders
- that record this information will tend to do the right thing if
- the programs are moved around after installing them (suggested by.
- Ju"rgen Fluk).
- + add -R option to loader options for programs for Solaris if the
- --enable-rpath option is specified for the libraries.
-
-971112
- + correct installed filename for shared libraries on *BSD (reported by
- Ju"rgen Fluk).
-
-971108
- + cleanup logic for deciding when tputs() should call delay_output(),
- based on comments from Daniel Weaver.
- + modified tputs() to avoid use of float.
- + correct use of trailpad in tputs(), which used the wrong variable
- in call to delay_output().
- + correct inverted expression for null-count in delay_output()
- (analysis by Daniel Weaver).
- + apply --enable-rpath option to Solaris (requested by Larry Virden).
- + correct substitution of EXTRA_CFLAGS for gcc 2.6.3
- + correct check for error-return by _nc_tgetent(), which returns 0
- for success.
- + add configure test for BSD 4.4 cgetent() function, modify
- read_termcap.c to use the host's version of that if found, using the
- terminal database on FreeBSD (reported by Peter Wemm).
- + add u8, u9 strings to sun-il description for Daniel Weaver.
- + use NCURSES_CONST in panel's user-pointer.
- + modify edit_cfg.sh and MKterm.h.awk.in to substitute NCURSES_CONST
- so that will work on NeXT.
- + use _nc_set_screen() rather than assignments to SP to fix port to
- NeXT (reported by Francisco A. Tomei Torres).
-
-971101
- + 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
- defined, or if the cur_term pointer is not initialized. XSI treats
- this as unspecified. (requested by Daniel Weaver).
- + change getcap-cache ifdef's to eliminate unnecessary chdir/mkdir
- when that feature is not configured.
- + remove _nc_err_abort() calls when write_entry.c finds a directory but
- cannot write to it, e.g., when translating part/all of /etc/termcap
- (reported by Andreas Jaeger <aj@arthur.rhein-neckar.de>).
- (this dates back to 951102, in 1.9.7a).
- + minor ifdef fixes to compile with atac and glibc 2.0.5c
- + add check for -lgen when configuring regexpr.h
- + modify Solaris shared-library option "-d y" to "-dy" to workaround
- incompatibility of gcc 2.7.2 vs vendor's tools.
-
-971026
- + correct ifdef's for struct winsize vs struct ttysize in lib_setup.c
- to compile on SCO.
- + remove dangling backslash in panel/Makefile.in
- + modify MKkeyname.awk to work with SCO's nawk, which dumps core in the
- length() function.
- + correct length of allocation in _nc_add_to_try(), to allow for
- trailing null.
- + correct logic in _nc_remove_key(), which was discarding too many
- nodes (patch by Alexander V. Lukyanov)
-
-971025
- + add definition for $(REL_VERSION) to test/Makefile.in, so *BSD
- shared libraries link properly (see 970524).
- + modify Linux shared-library generation to include library
- dependencies (e.g., -lncurses and -lgpm) in the forms, menu and
- panel libraries (suggested by Juergen Pfeifer).
- + modify configure script to use config.guess and config.sub rather
- than uname, which is unreliable on some systems.
- + updated Makefile.glibc, test-built with glibc 2.0.5c
- + modify keyname() to return values consistent with SVr4 curses (patch
- by Ju"rgen Fluk).
- > changes requested by Daniel Weaver:
- + modify delay_output() so that it uses the same output function as
- tputs() if called from that function.
- + move _baudrate from SCREEN to TERMINAL so that low-level use of
- tputs works when SP is not set.
- > patch by Juergen Pfeifer:
- + factor lib_menu and lib_form into smaller modules
- + clean up the interface between panel and SCREEN
- + minor changes to the Ada95 mouse support implemenation
- + minor bugfix in C++ binding to ripoff windows
- + fix a few Ada95 html documentation pages
-
-971018
- + split-out lib_ungetch.c, make runtime link to resizeterm() to
- decouple those modules from lib_restart.c
- + add xterm-xf86-v39t description to terminfo.src
- + reset SP->_endwin in lib_tstp.c cleanup() function after calling
- endwin() to avoid unnecessary repainting if the application has
- established an atexit function, etc. Encountered this problem in
- the c++ demo, whose destructors repaint the screen.
- + combine _nc_get_screensize() and resizeterm() calls as new function
- _nc_update_screensize().
- + minor fixes to allow compile with g++ (suggested by Nelson H. F.
- Beebe).
- + implement install-rules for Ada95 makefiles.
- + use screen_lines or MAXLINES as needed where LINES was coded,
- as well as screen_columns for COLS, in the ncurses library.
- > patch by Alexander V. Lukyanov:
- + modify logic for ripped-off lines to handle several SCREENs.
- > patch by Juergen Pfeifer:
- + factors lib_slk.c into some smaller modules
- + factors panel.c into some smaller modules
- + puts the static information about the current panel stack into the
- SCREEN structure to allow different panel stacks on different
- screens.
- + preliminary fix for an error adjusting LINES to account for
- ripped-off lines.
-
-971011
- + move _nc_max_click_interval and other mouse interface items to SCREEN
- struct so that they are associated with a single terminal, and also
- save memory when the application does not need a mouse (roughly 3k vs
- 0.5k on Linux).
- + modify mouseinterval() so that a negative parameter queries the
- click-interval without modifying it.
- + modify ncurses 'i' test to work with ncurses' apparent extension from
- SVr4, i.e., allows nocbreak+noecho (analysis by Alexander V.
- Lukyanov).
- + add configure options --with-ada-includes and --with-ada-objects,
- to drive Ada95 binding install (not yet implemented).
- + install C++ binding as -lncurses++ and associated headers with the
- other ncurses headers.
- + fix header uninstall if configure --srcdir is used.
- > minor interface changes (request by Daniel Weaver <danw@znyx.com>,
- to support 'tack' program):
- + export functions _nc_trans_string() and _nc_msec_cost().
- + add variable _nc_nulls_sent, to record the number of padding
- characters output in delay_output().
- + move tests for generic_type and hard_copy terminals in setupterm()
- to the end of that function so that the library will still be
- initialized, though not generally useful for curses programs.
- > patches by Alexander V. Lukyanov:
- + modify ClrBottom() to avoid using clr_eos if there is only one line
- to erase.
- + typo in configure --help.
- > patch by J.T.Conklin (with minor resync against Juergen's changes)
- + split-out lib_flash.c from lib_beep.c
- + split-out lib_hline.c and lib_vline.c from lib_box.c
- + split-out lib_wattron.c, lib_wattroff.c from lib_addch.c
-
-971005
- > patch by Juergen Pfeifer:
- + correct source/target of c++/edit_cfg.sh
-
-971004
- + add color, mouse support to kterm terminfo entry.
- + modify lib_mouse.c to recognize rxvt, kterm, color_xterm also as
- providing "xterm"-style mouse.
- + updated rxvt's terminfo description to correspond to 2.21b, with
- fixes for the acsc (the box1 capability is incorrect, ech1 does not
- work).
- + fix logic in parse_entry.c that discarded acsc when 'synthesizing'
- an entry from equivalents in XENIX or AIX. This lets ncurses handle
- the distribution copy of rxvt's terminfo.
- + modify acsc capability for linux and linux-koi8 terminfo descriptions
- (from Pavel Roskin <pavel@absolute.spb.su>).
- + corrected definition in curses.h for ACS_LANTERN, which was 'I'
- rather than 'i' (see 970802).
- + updated terminfo.src with reformatted acsc entries, and repaired the
- trashed entries with spurious '\' characters that this exposed.
- + add logic to dump_entry.c to reformat acsc entries into canonical
- form (sorted, unique mapping).
- + 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).
- > 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.
- + remove clause from PutCharLR() that would try to use
- eat_newline_glitch since that apparently does not work on some
- terminals (e.g., M$ telnet).
- + correct a limit check in scroll_csr_backward()
- > patches by Juergen Pfeifer:
- + adds dummy implementations of methods above() and below() to the
- NCursesPanel class.
- + fixes missing returncode in NCursesWindow::ripoffline()
- + fixes missing returncode in TestApplication::run() in demo.cc
- + We should at least give a comment in etip.h why it is currently a
- problem to install the C++ binding somewhere
- + makes the WINDOW* argument of wenclose() a const.
- + modifies several of the routines in lib_adabind.c to use a const
- WINDOW* argument.
-
-970927
- + add 'deinstall' rules.
- + use explicit assignments in configure --without-progs option to
- work around autoconf bug which doesn't always set $withval.
- + check for ldconfig, don't try to run it if not found.
- + implement simple/unoptimized case in lib_doupdate.c to handle
- display with magic cookie glitch, tested with ncurses.c program.
- + correct missing _tracef in getmouse(), to balance the returnCode
- macro.
- + simplify show_attr() in ncurses.c using termattrs().
- > patches by Juergen Pfeifer:
- + provides missing inlines for mvw[hv]line in cursesw.h of the C++
- binding
- + fixes a typo in a comment of frm_driver.c
- + Enhances Ada95 Makefiles to fulfill the requirement of GNAT-3.10 that
- generics should be compiled. Proper fixes to the configuration
- scripts are also provided.
-
-970920
- + several modifications to the configure script (requested by Ward
- Horner):
- + add configure options --without-progs, to suppress the build of the
- utility programs, e.g., for cross-compiling.
- + add $(HOSTCCFLAGS) and $(HOSTLDFLAGS) symbols to ncurses
- Makefile.in, to simplify setup for cross compiling.
- + add logic in configure script to recognize "--target=vxworks", and
- generate load/install actions for VxWorks objects.
- + move typedef for sigaction_t into SigAction.h to work around problem
- generating lint library.
- + modify fty_regex.c to reflect renaming of ifdef's for regular
- expressions.
- + simplify ifdef in lib_setup.c for TIOCGWINSZ since that symbol may
- reside in <sys/ioctl.h>.
- + merge testcurs.c with version from PDCurses 2.3, clarifying some of
- the more obscure tests, which rely upon color.
- + use macros getbegyx() and getmaxyx() in newdemo.c and testcurs.c
- + modify ncurses.c to use getbegyx() and getmaxyx() macros to cover up
- implementation difference wrt SVr4 curses, allow 's' test to work.
- + add missing endwin() to testscanw.c program (reported by Fausto
- Saporito <fausap@itb.it>).
- + fixes/updates for Makefile.glibc and related files under sysdeps
- (patch by H.J.Lu).
- > patches by Juergen Pfeifer:
- + add checks for null pointers, especially WINDOW's throughout the
- ncurses library.
- + solve a problem with wrong calculation of panel overlapping (reported
- by Ward Horner):
- + make sure that a panel's window isn't a pad.
- + do more error checking in module lib_touch.c
- + missing files for Ada95 binding from the last patch
- + synch. of generated html pages (RCS-Id's were wrong in html files)
- + support for Key_Resize in Ada binding
- + changed documentation style in ./c++/cursesm.h
- > patches by Alexander V. Lukyanov:
- + undo attempt to do recursive inlining for PutChar(), noting that it
- did not improve timing measurably, but inflated the size of
- lib_doupdate.o
-
-970913
- + modify rain.c to use color.
- + correct scroll_csr_backward() to match scroll_csr_forward().
- + minor adjustment to llib-lncurses, to work with Solaris 2.5.1
- + minor fixes to sysdeps/unix/sysv/linux/configure to reflect renaming
- of configure cache variables in 970906.
- + correct logic involving changes to O_VISIBLE option in
- Synchronize_Options function in frm_driver.c (Tony Hoffmann
- <Tony.Hoffmann@hia.nrc.ca>)
- + add $(HOSTCC) symbol to ncurses Makefile.in, to simplify setup for
- cross compiling (suggested by Chris Johns).
- + modify ifdef in lib_setup.c to only include <sys/ioctl.h> if we can
- use it to support screen-size calculation (reported by Chris Johns).
- + #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.
- + The C++ binding has been enhanced:
- + Improve NCursesWindow class: added additional methods to cover
- more ncurses functionality. Make refresh() and noutrefresh()
- virtual members to allow different implementation in the
- NCursesPanel class.
- + CAUTION: changed order of parameters in vline() and hline() of
- NCursesWindow class.
- + Make refresh() in NCursesPanel non-static, it is now a
- reimplementation of refresh() in the base class. Added
- noutrefresh() to NCursesPanel.
- + Added NCursesForm and related classes to support libform
- functionality.
- + Moved most of configuration related stuff from cursesw.h to etip.h
- + Added NCursesApplication class to support easy configuration of
- menu and forms related attributes as well as ripped of title lines
- and Soft-Label-Keys for an application.
- + Support of Auto-Cleanup for a menu's fieldlist.
- + Change of return type for current_item() and operator[] for menus.
- + Enhanced demo.
- + Fixed a bug in form/fld_def.c: take into account that copyarg and
- freearg for a fieldtype may be NULL, makearg must not be NULL
- + Fixed a bug in form/fld_type.c: in set_fieldtype_arg() makearg must
- not be NULL, copyarg and freearg may be NULL.
- + Fixed a bug in form/frm_def.c: Allow Disconnect_Fields() if it is
- already disconnected.
- + Enhance form/frm_driver.c: Allow growth of dynamic fields also on
- navigation requests.
- + Fixed a bug in form/fty_enum.c: wrong position of postincrement in
- case-insensitiva comparision routine.
- + Enhanced form/lib_adabind.c with function _nc_get_field() to get a
- forms field by index.
- + Enhanced menu/m_adabind.c with function _nc_get_item() to get a menus
- item by index.
- + Fixed in curses.h.in: make chtype argument for pechochar() constant.
- Mark wbkgdset() as implemented, remove wbkgdset macro, because it was
- broken (didn't handle colors correctly).
- + Enhanced lib_mouse.c: added _nc_has_mouse() function
- + Added _nc_has_mouse() prototype to curses.priv.h
- + Modified lib_bkgd.c: hopefully correct implementation of wbkgdset();
- streamlined implementation of wbkgd()
- + Modified lib_mvwin.c: Disable move of a pad. Implement (costly)
- move of subwindows. Fixed update behaviour of movements of regular
- windows.
- + Fixed lib_pad.c: make chtype argument of pechochar() const.
- + Fixed lib_window.c: dupwin() is not(!) in every bit a really clone
- of the original. Subwindows become regular windows by doing a
- dupwin().
- + Improved manpage form_fieldtype.3x
- > patches by Alexander V. Lukyanov:
- + simplify the PutChar() handling of exit_am_mode, because we already
- know that auto_right_margin is true.
- + add a check in PutChar() for ability to insert to the case of
- shifting character to LR corner.
- + in terminal initialization by _nc_screen_resume(), make sure that
- terminal right margin mode is known.
- + move logic that invokes touchline(), or does the equivalent, into
- _nc_scroll_window().
- + modify scrolling logic use of insert/delete line capability, assuming
- that they affect the screen contents only within the current
- scrolling region.
- + modify rain.c to demonstrate SIGWINCH handler.
- + remove logic from getch() that would return an ERR if the application
- called getch() when the cursor was at the lower-right corner of the
- physical screen, and the terminal does not have insert-character
- ability.
- + change view.c so that it breaks out of getch() loop if a KEY_RESIZE
- is read, and modify logic in getch() so this fix will yield the
- desired behavior, i.e., the screen is repainted automatically when
- the terminal window is resized.
-
-970906
- + add configure option --enable-sigwinch
- + modify view.c to test KEY_RESIZE logic, with "-r" option.
- + modify testcurs.c to eliminate misleading display wrt cursor type
- by testing if the terminal supports cnorm, civis, cvvis.
- + several fixes for m68k/NeXT 4.0, to bring cur_term, _nc_curr_line and
- _nc_curr_col variables into linked programs: move these variables,
- making new modules lib_cur_term and trace_buf (reported by Francisco
- Alberto Tomei Torres <fatomei@sandburg.unm.edu>).
- > patches by Alexander V. Lukyanov:
- + add pseudo-functionkey KEY_RESIZE which is returned by getch() when
- the SIGWINCH handler has been called since the last call to
- doupdate().
- + modify lib_twait.c to hide EINTR only if HIDE_EINTR is defined.
- + add SIGWINCH handler to ncurses library which is used if there is no
- application SIGWINCH handler in effect when the screen is
- initialized.
- + make linked list of all SCREEN structures.
- + move curses.h include before definition of SCREEN to use types in
- that structure.
- + correction to ensure that wgetstr uses only a newline to force a
- scroll (970831).
-
-970831
- + add experimental configure option --enable-safe-sprintf; the normal
- mode now allocates a buffer as large as the screen for the
- lib_printw.c functions.
- + modify wgetch to refresh screen when reading ungetch'd characters,
- since the application may require this - SVr4 does this.
- + refine treatment of newline in wgetstr to echo only when this would
- force the screen to scroll.
-
-970830
- + remove override in wgetstr() that forces keypad(), since SVr4 does
- not do this.
- + correct y-reference for erasure in wgetstr() when a wrap forces a
- scroll.
- + correct x-position in waddch() after a wrap forces a scroll.
- + echo newline in wgetstr(), making testscanw.c scroll properly when
- scanw is done.
- + modify vwscanw() to avoid potential buffer overflow.
- + rewrote lib_printw.c to eliminate fixed-buffer limits.
- > patches by Alexander V. Lukyanov:
- + correct an error in handling cooked mode in wgetch(); processing
- was in the wrong order.
- + simplified logic in wgetch() that handles backspace, etc., by using
- wechochar().
- + correct wechochar() so that it interprets the output character as
- in waddch().
- + modify pechochar() to use prefresh() rather than doupdate(), since
- the latter does not guarantee immediate refresh of the pad.
- + modify pechochar() so that if called with a non-pad WINDOW, will
- invoke wechochar() instead.
- + modify fifo indices to allow fifo to be longer than 127 bytes.
-
-970823
- + add xterm-8bit to terminfo.src
- + moved logic for SP->_fifohold inside check_pending() to make it
- work properly when we add calls to that function.
- + ensure that bool functions return only TRUE or FALSE, and TRUE/FALSE
- are assigned to bool values (patch by H.J.Lu).
- > patches by Alexander V. Lukyanov:
- + several fixes to getch:
- 1. Separate cooked and raw keys in fifo
- 2. Fix the case of ungetch'ed KEY_MOUSE
- 3. wrap the code for hiding EINTR with ifdef HIDE_EINTR
- 4. correctly handle input errors (i.e., EINTR) without loss of raw
- keys
- 5. recognize ESC KEY_LEFT and similar
- 6. correctly handle the case of receiption of KEY_MOUSE from gpm
- + correct off-by-one indexing error in _nc_mouse_parse(), that caused
- single mouse events (press/release) to be ignored in favor of
- composed events (click). Improves on a fix from integrating gpm
- support in 961229.
- + add another call to check_pending, before scrolling, for
- line-breakout optimization
- + improve hashmap.c by
- 1. fixed loop condition in grow_hunks()
- 2. not marking lines with offset 0
- 3. fixed condition of 'too far' criteria, thus one-line hunks are
- ignored and two lines interchanged won't pass.
- + rewrote/simplified _nc_scroll_optimize() by separating into two
- passes, forward/backward, looking for chunks moving only in the given
- direction.
- + move logic that emits sgr0 when initializing the screen to
- _nc_screen_init(), now invoked from newterm.
- + move cursor-movement cleanup from endwin() into _nc_mvcur_wrap()
- function and screen cleanup (i.e., color) into _nc_screen_wrap()
- function.
- + add new functions _nc_screen_init(), _nc_screen_resume() and
- _nc_screen_wrap().
- + rename _nc_mvcur_scrolln() to _nc_scrolln().
- + add a copy of acs_map[] to the SCREEN structure, where it can be
- stored/retrieved via set_term().
- + move variables _nc_idcok, _nc_idlok, _nc_windows into the SCREEN
- structure.
-
-970816
- + implement experimental _nc_perform_scroll().
- + modify newterm (actually _nc_setupscreen()) to emit an sgr0 when
- initializing the screen, as does SVr4 (reported by Alexander V.
- Lukyanov).
- + added test_progs rule to ncurses/Makefile.
- + modify test/configure.in to check if initscr is already in $LIBS
- before looking for (n)curses library.
- + correct version-number in configure script for OSF1 shared-library
- options (patch by Tim Mooney).
- + add -DNDEBUG to CPPFLAGS for --enable-assertions (as Juergen
- originally patched) since the c++ demo files do not necessarily
- include ncurses_cfg.h
- + supply default value for --enable-assertions option in configure
- script (reported by Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>).
- > patches by Alexander V. Lukyanov:
- + correct/simplify logic of werase(), wclrtoeol() and wclrbot(). See
- example firstlast.c
- + optimize waddch_literal() and waddch_nosync() by factoring out
- common subexpressions.
- + correct sense of NDEBUG ifdef for CHECK_POSITION macro.
- + corrections to render_char(), to make handling of colored blanks
- match SVr4 curses, as well as to correct a bug that xor'd space
- against the background character.
- + replaced hash function with a faster one (timed it)
- + rewrote the hashmap algorithm to be one-pass, this avoids multiple
- cost_effective() calls on the same lines.
- + modified cost_effective() so it is now slightly more precise.
- > patches by H.J.Lu for glibc integration:
- + add modules define_key, keyok, name_match, tries
- + add makefile rules for some of the unit tests in ncurses (mvcur,
- captoinfo, hardscroll, hashmap).
- + update Linux configure-script for wide-character definitions.
-
-970809
- + modify _tracebits() to show the character size (e.g., CS8).
- + modify tparm() to emit '\200' where the generated string would have a
- null (reported by From: Ian Dall <Ian.Dall@dsto.defence.gov.au> for
- terminal type ncr7900).
- + modify install process so that ldconfig is not invoked if the
- package is built with an install-prefix.
- + correct test program for chtype size (reported by Tim Mooney).
- + add configure option --disable-scroll-hints, using this to ifdef the
- logic that computes indices for _nc_scroll_optimize().
- + add module ncurses/softscroll.c, to perform single-stage computation
- of scroll indices used in _nc_scroll_optimize(). This is faster than
- the existing scrolling algorithm, but tends to make too-small hunks.
- + eliminate fixed buffer size in _nc_linedump().
- + minor fixes to lib_doupdate.c to add tradeoff between clr_eol (el)
- and clr_bol (el1), refine logic in ClrUpdate() and ClrBottom() (patch
- by Alexander V. Lukyanov).
- + add test/testaddch.c, from a pending patch by Alexander V. Lukyanov.
- + correct processing of "configure --enable-assertions" option (patch
- by Juergen Pfeifer).
-
-970802
- + add '-s' (single-step) option too test/hashtest.c, correct an error
- in loop limit for '-f' (footer option), toggle scrollok() when
- writing footer to avoid wrap at lower-right corner.
- + correct behavior of clrtoeol() immediately after wrapping cursor,
- which was not clearing the line at the cursor position (reported by
- Liviu Daia <daia@stoilow.imar.ro>).
- + corrected mapping for ACS_LANTERN, which was 'I' rather than 'i'
- (reported by Klaus Weide <kweide@tezcat.com>).
- + many corrections to make progs/capconvert work, as well as make it
- reasonably portable and integrated with ncurses 4.1 (reported by Dave
- Furstenau <df@ravine.binary.net>).
-
-970726
- + add flag SP->_fifohold, corresponding logic to modify the behavior of
- the line breakout logic so that if the application does not read
- input, refreshes will not be stopped, but only slowed.
- + generate slk_attr_off(), slk_attr_on(), slk_attr_set(), vid_attr(),
- ifdef'd for wide-character support, since ncurses' WA_xxx attribute
- masks are identical with the A_xxx masks.
- + modify MKlib_gen.sh to generate ifdef'd functions to support optional
- configuration of wide-characters.
- + modify tset to behave more like SVr4's tset, which does not modify
- the settings of intr, quit or erase unless they are given as command
- options (reported by Nelson H. F. Beebe <beebe@math.utah.edu>).
- + modify tset to look in /etc/ttys or /etc/ttytype if the configuration
- does not have getttynam().
- + extend baudrate table in tset.c to match baudrate() function.
- + add table entries for 230400 and 460800 bd to baudrate() function.
- + improve breakout logic by allowing it before the first line updated,
- which is what SVr4 curses does (patch by Alexander V. Lukyanov).
- + correct initialization of vcost in relative_move(), for cursor-down
- case (patch by Alexander V. Lukyanov).
- > nits gleaned from Debian distribution of 1.9.9g-3:
- + install symbolic link for intotocap.
- + reference libc directly when making shared libraries.
- + correct renaming of curs_scr_dmp.3x in man_db.renames.
- + guard tgetflag() and other termcap functions against null cur_term
- pointer.
-
-970719
- + corrected initial state of software echo (error in 970405, reported
- by Alexander V. Lukyanov).
- + reviewed/added messages to configure script, so that all non-test
- options should be accompanied by a message.
- + add configure check for long filenames, using this to determine if
- it is safe to allow long aliases for terminal descriptions as does
- SVr4.
- + add configure options for widec (wide character), hashmap (both
- experimental).
- > patch by Alexander V. Lukyanov:
- + hashmap.c - improved by heuristic, so that scroll test works much
- better when csr is not available.
- + hardscroll.c - patched so that it continues to scroll other chunks
- after failure to scroll one.
- + lib_doupdate.c - _nc_mvcur_scrolln extended to handle more cases; csr
- is avoided as it is relative costly. Fixed wrong coordinates in one
- case and wrong string in TRACE.
- > patch by Juergen Pfeifer:
- + modify C++ binding to compile on AIX 4.x with the IBM C-SET++
- compiler.
-
-970712
- + remove alternate character set from kterm terminfo entry; it uses the
- shift-out control for a purpose incompatible with curses, i.e., font
- switching.
- + disentangle 'xterm' terminfo entry from some derived entries that
- should be based on xterm-r6 instead.
- + add cbt to xterm-xf86-xv32 terminfo entry; I added the emulation for
- XFree86 3.1.2F, but overlooked its use in terminfo then - T.Dickey.
- + correct logic in lib_mvcur.c that uses back_tab.
-
-970706
- + correct change from 970628 to ClrUpdate() in lib_doupdate.c so that
- contents of curscr are saved in newscr before clearing the screen.
- This is needed to make repainting work with the present logic of
- TransformLine().
- + use napms() rather than sleep() in tset.c to avoid interrupting I/O.
-
-970705
- + add limit checks to _nc_read_file_entry() to guard against overflow
- of buffer when reading incompatible terminfo format, e.g, from OSF/1.
- + correct some loop-variable errors in xmc support in lib_doupdate.c
- + modify ncurses 'b' test to add gaps, specified by user, to allow
- investigation of interaction with xmc (magic cookie) code.
- + correct typo in 970524 mods to xmas.c, had omitted empty parameter
- list from has_colors(), which gcc ignores, but SVr4 does not
- (reported by Larry Virden).
- + correct rmso capability in wy50-mc description.
- + add configure option "--enable-hard-tabs", renamed TABS_OK ifdef to
- USE_HARD_TABS.
- > patch by Juergen Pfeifer:
- + Add bindings for keyok() and define_key() to the Ada95 packages.
- + Improve man pages menu_post.3x and menu_format.3x
- + Fix the HTML pages in the Ada95/html directory to reflect the above
- changes.
-
-970628
- + modify change from 970101 to ClrUpdate() in lib_doupdate.c so that
- pending changes to both curscr and newscr are flushed properly.
- This fixes a case where the first scrolling operation in nvi would
- cause the screen to be cleared unnecessarily and repainted before
- doing the indexing, i.e., by repeatedly pressing 'j' (reported by
- Juergen Pfeifer).
- + correct error in trans_string() which added embedded newlines in a
- terminfo description to the stored strings.
- + remove spurious newlines from sgr in wyse50 (and several other)
- terminfo descriptions.
- + add configure option for experimental xmc (magic cookie) code,
- "--enable-xmc-glitch". When disabled (the default), attributes that
- would store a magic cookie are suppressed in vidputs(). The magic
- cookie code is far from workable at this stage; the configuration
- option is a stopgap.
- + move _nc_initscr() from lib_initscr.c to lib_newterm.c
- + correct path for invoking make_keys (a missing "./").
-
-970621
- + correct sign-extension problem with "infocmp -e", which corrupted
- acsc values computed for linux fallback data.
- + correct dependency on ncurses/names.c (a missing "./").
- + modify configure script to use '&&' even for cd'ing to existing
- directories to work around broken shell interpreters.
- + correct a loop-limit in _nc_hash_map() (patch by Alexander V.
- Lukyanov).
-
-970615
- + restore logic in _nc_scroll_optimize() which marks as touched the
- lines in curscr that are shifted.
- + add new utility 'make_keys' to compute keys.tries as a table rather
- than a series of function calls.
- + correct include-dependency for tic.h used by name_match
- + removed buffer-allocation for name and description from m_item_new.c,
- since this might result in incompatibilities with SVr4. Also fixed
- the corresponding Ada95 binding module (patch by Juergen Pfeifer,
- from report by Avery Pennarun <apenwarr@foxnet.net>)
- + removed the mechanism to timestamp the generated Ada95 sources. This
- resulted always in generating patches for the HTML doc, even when
- nothing really changed (patch by Juergen Pfeifer).
- + improve man page mitem_new.3x (patch by Juergen Pfeifer).
-
-970614
- + remove ech capability from rxvt description because it does not work.
- + add missing case logic for infocmp -I option (reported by Lorenzo M.
- Catucci <lorenzo@argon.roma2.infn.it>)
- + correct old bug in pnoutrefresh() unmasked by fix in 970531; this
- caused glitches in the ncurses 'p' test since the area outside the
- pad was not compared when setting up indices for _nc_scroll_optimize.
- + rewrote tracebits() to workaround misdefinition of TOSTOP on Ultrix
- 4.4, as well as to eliminate fixed-size buffer (reported by Chris
- Tanner <tannerc@aecl.ca>)
- + correct prototype for termattrs() as per XPG4 version 2.
- + add placeholder prototypes for color_set(), erasewchar(),
- term_attrs(), wcolor_set() as per XPG4 version 2.
- + correct attribution for progs/progs.priv.h and lib_twait.c
- + improve line-breakout logic by checking based on changed lines rather
- than total lines (patch by Alexander V. Lukyanov).
- + correct loop limits for table-lookup of enumerated value in form
- (patch by Juergen Pfeifer).
- + improve threshhold computation for determining when to call ClrToEOL
- (patch by Alexander V. Lukyanov).
-
-970531
- + add configure option --disable-database to force the library to
- use only the fallback data.
- + add configure option --with-fallbacks, to specify list of fallback
- terminal descriptions.
- + add a symbolic link for ncurses.h during install; too many programs
- still assume there's an ncurses.h
- + add new terminfo.src entry for xterm-xf86-v33.
- + restore terminfo.src entry for emu to using setf/setb, since it is
- not, after all, generating ANSI sequences. Corrected missing comma
- that caused setf/setb entries to merge.
- + modify mousemask() to use keyok() to enable/disable KEY_MOUSE, so
- that applications can disable ncurses' mouse and supply their own
- handler.
- + add extensions keyok() and define_key(). These are designed to allow
- the user's application better control over the use of function keys,
- e.g., disabling the ncurses KEY_MOUSE. (The define_key idea was from
- a mailing-list thread started by kjahds@kjahds.com Nov'1995).
- + 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).
- + tidy up exit from hashtest (reported by Hugh Daniel).
- + restore check for ^Q in ncurses 'g' test broken in 970510 (reported
- by Hugh Daniel)
- + correct tput program, checking return-value of setupterm (patch by
- Florian La Roche).
- + correct logic in pnoutrefresh() and pechochar() functions (reported
- by Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>). The computation
- of 'wide' date to eric's #283 (1.9.9), and the pechochar bug to the
- original implementation (1.9.6).
- + correct typo in vt102-w terminfo.src entry (patch by Robert Wuest
- <rwuest@sire.vt.com>)
- + move calls of _nc_background() out of various loops, as its return
- value will be the same for the whole window being operated on (patch
- by J.T.Conklin).
- + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in
- SVr4 headers (patch by J.T.Conklin <jtc@NetBSD.ORG>)
- + modify glibc addon-configure scripts (patch by H.J.Lu).
- + correct a bug in hashmap.c: the size used for clearing the hashmap
- table was incorrect, causing stack corruption for large values of
- LINES, e.g., >MAXLINES/2 (patch by Alexander V. Lukyanov).
- + eric's terminfo 9.13.23 & 9.13.24 changes: replaced minitel-2 entry,
- added MGR, ansi-nt (note: the changes described for 9.13.24 have not
- been applied).
- > several changes by Juergen Pfeifer:
- + correct a missing error-return in form_driver.c when wrapping of a
- field is not possible.
- + correct logic in form_driver.c for configurations that do not have
- memccpy() (reported by Sidik Isani <isani@cfht.hawaii.edu>)
- + change several c++ binding functions to inline.
- + modify c++ menu binding to inherit from panels, for proper
- initialization.
- + correct freeing of menu items in c++ binding.
- + modify c++ binding to reflect removal of const from user data pointer
- in forms/menus libraries.
-
-970524
- + add description of xterm-16color.
- + modify name of shared-library on *BSD to end with $(REL_VERSION)
- rather than $(ABI_VERSION) to match actual convention on FreeBSD
- (cf: 960713).
- + add OpenBSD to shared-library case, same as NetBSD and FreeBSD
- (reported by Hugh Daniel <hugh@rat.toad.com>).
- + corrected include-dependency in menu/Makefile so that "make install"
- works properly w/o first doing "make".
- + add fallback definition for isascii, used in infocmp.
- + modify xmas to use color, and to exit right away when a key is
- pressed.
- + modify gdc so that the scrolled digits function as described (there
- was no time delay between the stages, and the digits overwrote the
- bounding box without tidying up).
- + modify lib_color.c to use setaf/setab only for the ANSI color codes
- 0 through 7. Using 16 colors requires setf/setb.
- + modify ncurses 'c' test to work with 16 colors, as well as the normal
- 8 colors.
- + remove const qualifier from user data pointer in forms and menus
- libraries (patch by Juergen Pfeifer).
- + rewrote 'waddchnstr()' to avoid using the _nc_waddch_nosync()
- function, thereby not interpreting tabs, etc., as per spec (patch by
- Alexander V. Lukyanov).
-
-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 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 flags to OSF1 shared-library options to specify version and
- symbol file (patch by Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>)
- + add missing definition for ABI_VERSION to c++/Makefile.in (reported
- by Satoshi Adachi <adachi@wisdom.aa.ap.titech.ac.jp>).
- + modify link flags to accommodate HP-UX linker which embeds absolute
- pathnames in executables linked against shared libraries (reported by
- Jason Evans <jasone@mrc.uidaho.edu>, solved by Alan Shutko
- <ats@hubert.wustl.edu>).
- + drop unnecessary check for attribute-change in onscreen_mvcur() since
- mvcur() is the only caller within the library, and that check in turn
- is exercised only from lib_doupdate.c (patch by Alexander V.
- Lukyanov).
- + add 'blank' parameter to _nc_scroll_window() so _nc_mvcur_scrolln()
- can use the background of stdscr as a parameter to that function
- (patch by Alexander V. Lukyanov).
- + moved _nc_mvcur_scrolln() from lib_mvcur.c to lib_doupdate.c, to use
- the latter's internal functions, as well as to eliminate unnecessary
- cursor save/restore operations (patch by Alexander V. Lukyanov).
- + omit parameter of ClrUpdate(), since it is called only for newscr,
- further optimized/reduced by using ClearScreen() and TransformLine()
- to get rid of duplicate code (patch by Alexander V. Lukyanov).
- + modify scrolling algorithm in _nc_scroll_optimize() to reject hunks
- that are smaller than the distance to be moved (patch by Alexander V.
- Lukyanov).
- + correct a place where the panel library was not ifdef'd in ncurses.c
- (Juergen Pfeifer)
- + documentation fixes (Juergen Pfeifer)
-
-970515 4.1 release for upload to prep.ai.mit.edu
- + re-tag changes since 970505 as 4.1 release.
-
-970510
- + 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).
- + 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).
- + 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
- (reported by Alexander V. Lukyanov).
- + add files to support configuration of ncurses as an add-on library
- for GNU libc (patch by H.J.Lu <hjl@lucon.org>)
-
-970506
- + correct buffer overrun in lib_traceatr.c
- + modify change to lib_vidattr.c to avoid redundant orig_pair.
- + turn on 'echo()' in hanoi.c, since it is initially off.
- + rename local 'errno' variable in etip.h to avoid conflict with global
- (H.J.Lu).
- + modify configure script to cache LD, AR, AR_OPTS (patch by H.J.Lu
- <hjl@lucon.org>)
-
-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 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
- overwrite of symbolic links.
- + change order of top-level targets so that 'include' immediate
- precedes the 'ncurses' directory, reducing the time between new
- headers and new libraries (requested by Larry Virden).
- + modify lib_vidattr.c so that colors are turned off only before
- modifying other attributes, turned on after others. This makes the
- hanoi.c program display correctly on FreeBSD console.
- + modify debug code in panel library to print user-data addresses
- rather than the strings which they (may) point to.
- + add check to ensure that C++ binding and demo are not built with g++
- versions below 2.7, since the binding uses templates.
- + modify c++ binding and demo to build and run with SGI's c++ compiler.
- (It also compiles with the Sun SparcWorks compiler, but the demo does
- not link, due to a vtbl problem).
- + corrections to demo.cc, to fix out-of-scope variables (Juergen
- Pfeifer).
-
-970503
- + correct memory leak in _nc_trace_buf().
- + add configure test for regexpr.h, for Unixware 1.x.
- + correct missing "./" prefixing names of generated files in ncurses
- directory.
- + use single-quotes in configure scripts assignments for MK_SHARED_LIB
- to workaround shell bug on FreeBSD 2.1.5
- + remove tabs from intermediate #define's for GCC_PRINTF, GCC_SCANF
- that caused incorrect result in ncurses_cfg.h
- + correct initialization in lib_trace.c, which omitted version info.
- + remove ech, el1 attributes from cons25w description; they appear to
- malfunction in FreeBSD 2.1.5
- + correct color attributes in terminfo.src and lib_color.c to match
- SVr4 behavior by interchanging codes 1,4, 3,6 in the setf/setb
- capabilities.
- + use curs_set() rather than checks via tigetstr() for test programs
- that hide the cursor: firework, rain, worm.
- + ensure that if the terminal lacks change_scroll_region, parm_index
- and parm_rindex are used only to scroll the whole screen (patch by
- Peter Wemm).
- + correct curs_set() logic, which did not return ERR if the requested
- attributes did not exist, nor did it assume an unknown initial state
- for the cursor (patch by Alexander V. Lukyanov).
- + combine IDcTransformLine and NoIDcTransformLine to new TransformLine
- function in lib_doupdate.c (patch by Alexander V. Lukyanov).
- + correct hashmap.c, which did not update index information (patch by
- Alexander V. Lukyanov).
- + patch by Juergen Pfeifer for C++ binding and demo (see c++/NEWS)
- + correct index in lib_instr.c (Juergen Pfeifer).
- + correct typo in 970426 patch from Tom's cleanup of lib_overlay.c
- (Juergen Pfeifer).
-
-970426
- + corrected cost computation in PutRange(), which was using
- milliseconds compared to characters by adding two new members to the
- SCREEN struct, _hpa_ch_cost and _cup_ch_cost.
- + drop ncurses/lib_unctrl.c, add ncurses/MKunctrl.awk to generate a
- const array of strings (suggested by Alexander V. Lukyanov, though
- with a perl script 970118).
- + rewrote ncurses 'b' test to better exercise magic-cookie (xmc), as
- well as noting the attributes that are not supported by a terminal.
- + trace the computation of cost values in lib_mvcur.c
- + modify _nc_visbuf() to use octal rather than hex, corrected sign
- extension bug in that function that caused buffer overflow.
- + modify trace in lib_acs.c to use _nc_visbuf().
- + suppress trace within _traceattr2().
- + correct logic of _tracechtype2(), which did not account for repeats
- or redefinition within an acsc string.
- + modify debug-library version baudrate() to use environment variable
- $BAUDRATE to override speed computation. This is needed for
- regression testing.
- + correct problems shown by "weblint -pedantic".
- + update mailing-list information (now ncurses@bsdi.com).
-
-970419
- + Improve form_field_validation.3x manpage to better describe the
- precision parameter for TYPE_NUMERIC and TYPE_INTEGER. Provide more
- precise information how the range checking can be avoided. (patch by
- Juergen Pfeifer, reported by Bryan Henderson)
- + change type of min/max value of form types TYPE_INTEGER to long to
- match SVr4 documentation.
- + set the form window to stdscr in set_form_win() so that form_win()
- won't return null (patch by Juergen Pfeifer, reported by Bryan
- Henderson <bryanh@giraffe.netgate.net>).
-
-970412
- + corrected ifdef'ing of inline (from 970321) for TRACE vs C++.
- + corrected toggle_attr_off() macro (patch by Andries.Brouwer).
- + modify treatment of empty token in $MANPATH to /usr/man (reported by
- <Andries.Brouwer@cwi.nl>)
- + modify traces that record functions-called so that chtype and attr_t
- values are expressed symbolically, to simplify reuse of generated
- test-scripts on SVr4 regression testing.
- + add new trace functions _traceattr2() and _tracechtype2()
-
-970405
- + add configure option --enable-const, to support the use of 'const'
- where XSI should have, but did not, specify. This defines
- NCURSES_CONST, which is an empty token otherwise, for strict
- compatibility.
- + make processing of configure options more verbose by echoing the
- --enable/--with values.
- + add configure option --enable-big-core
- + set initial state of software echo off as per XSI.
- + 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).
- + 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
- Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 970329).
- + modify 'clean' rule in include/Makefile so that files created by
- configure script are removed in 'distclean' rule instead.
-
-970328
- + correct array limit in tparam_internal(), add case to interpret "%x"
- (patch by Andreas Schwab)
- + rewrote number-parsing in ncurses.c 'd' test; it did not reset the
- value properly when non-numeric characters were given (reported by
- Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
-
-970321
- + move definition of __INTERNAL_CAPS_VISIBLE before include for
- progs.priv.h (patch by David MacKenzie).
- + add configuration summary, reordered check for default include
- directory to better accommodate a case where installer is configuring
- a second copy of ncurses (reported by Klaus Weide
- <kweide@tezcat.com>)
- + moved the #define for 'inline' as an empty token from the
- $(CFLAGS_DEBUG) symbol into config.h, to avoid redefinition warning
- (reported by Ward Horner).
- + modify test for bool builtin type to use 'unsigned' rather than
- 'unknown' when cross-compiling (reported by Ward Horner).
-
-970315
- + add header dependencies so that "make install.libs" will succeed
- even if "make all" is not done first.
- + moved some macros from lib_doupdate.c to curses.priv.h to use in
- expanded functions with ATAC.
- + correct implementation of lib_instr.c; both XSI and SVr4 agree that
- the winnstr functions can return more characters than will fit on one
- line.
-
-970308
- + modify script that generates lib_gen.c to support traces of called &
- return.
- + add new configure option "--disable-macros", for testing calls within
- lib_gen.c
- + corrected logic that screens level-checking of called/return traces.
-
-970301
- + use new configure macro NC_SUBST to replace AC_PATH_PROG, better
- addressing request by Ward Horner.
- + check for cross-compiling before trying to invoke the autoconf
- AC_FUNC_SETVBUF_REVERSED macro (reported by Ward Horner)
- + correct/simplify loop in _nc_visbuf(), 970201 changes omitted
- a pointer-increment.
- + eliminate obsolete symbol SHARED_ABI from dist.mk (noted by
- Florian La Roche).
-
-970215
- + add configure option --enable-expanded, together with code that
- implements an expanded form of certain complex macros, for testing
- with ATAC.
- + disable CHECK_POSITION unless --with-assertions is configured
- (Alexander Lukyanov pointed out that this is redundant).
- + use keyname() to show traced chtype values where applicable rather
- than _tracechar(), which truncates the value to 8-bits.
- + minor fixes to TRACE_ICALLS, added T_CREATE, TRACE_CCALLS macros.
- + modify makefiles in progs and test directories to avoid using C
- preprocessor options on link commands (reported by Ward Horner)
- + correct ifdef/include-order for nc_alloc.h vs lib_freeall.c (reported
- by Ward Horner)
- + modify ifdef's to use configure-defined symbols consistently
- (reported by Ward Horner)
- + add/use new makefile symbols AR, AR_OPTS and LD to assist in non-UNIX
- ports (reported by Ward Horner <whorner@tsi-telsys.com>)
- + rename struct try to struct tries, to avoid name conflict with C++
- (reported by Gary Johnson).
- + modify worm.c to hide cursor while running.
- + add -Wcast-qual to gcc warnings, fix accordingly.
- + use PutChar rather than PutAttrChar in ClrToEOL to properly handle
- wrapping (Alexander Lukyanov).
- + correct spurious echoing of input in hanoi.c from eric's #291 & #292
- patches (reported by Vernon C. Hoxie <vern@zebra.alphacdc.com>).
- + extend IRIX configuration to IRIX64
- + supply missing install.libs rule needed after restructuring
- test/Makefile.in
-
-970208
- + modify "make mostlyclean" to leave automatically-generated source
- in the ncurses directory, for use in cross-compiles.
- + autogenerated object-dependencies for test directory
- + add configure option --with-rcs-ids
- + modify configuration scripts to generate major/minor/patch versions
- (suggested by Alexander Lukyanov).
- + supply missing va_end's in lib_scanw.c
- + use stream I/O for trace-output, to eliminate fixed-size buffer
- + add TRACE_ICALLS definition/support to lib_trace.c
- + modify Ada95 binding to work with GNAT 3.09 (Juergen Pfeifer).
-
-970201
- + add/modify traces for called/return values to simplify extraction
- for test scripts.
- + changed _nc_visbuf to quote its result, and to dynamically allocate
- the returned buffer.
- + invoke ldconfig after installing shared library
- + modify install so that overwrite applies to shared library -lcurses
- in preference to static library (reported by Zeyd 960928).
- + correct missing ';' in 961221 mod to overwrite option use of $(LN_S).
- + fixes to allow "make install" to work without first doing a "make
- all" (suggested by Larry Virden).
-
-970125
- + correct order of #ifdef for TABS_OK.
- + instrumented toe.c to test memory-leaks.
- + correct memory-deallocation in toe.c (patch by Jesse Thilo).
- + include <sys/types.h> in configuration test for regex.h (patch by
- Andreas Schwab)
- + make infocmp recognize -I option, for SVr4 compatibility (reported by
- Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
-
-970118
- + add extension 'use_default_colors()', modified test applications that
- use default background (firework, gdc, hanoi, knight, worm) to
- demonstrate.
- + correct some limit checks in lib_doupdate.c exposed while running
- worm.
- + use typeCalloc macro for readability.
- + add/use definition for CONST to accommodate testing with Solaris
- (SVr4) curses, which doesn't use 'const' in its prototypes.
- + modify ifdef's in test/hashtest.c and test/view.c to compile with
- Solaris curses.
- + modify _tracedump() to pad pad colors & attrs lines to match change
- in 970101 showing first/last changes.
- + corrected location of terminating null on dynamically allocated forms
- fields (patch by Per Foreby).
-
-970111
- + added headers to make view.c compile on SCO with the resizeterm()
- code (i.e., struct winsize) - though this compiles, I don't have a
- suitable test configuration since SIGWINCH doesn't pass my network to
- that machine - T.Dickey.
- + update test/configure.in to supply some default substitutions.
- + modify configure script to add -lncurses after -lgpm to fix problem
- linking against static libraries.
- + add a missing noraw() to test/ncurses.c (places noted by Jeremy
- Buhler)
- + add a missing wclear() to test/testcurs.c (patch by Jeremy Buhler
- <jbuhler@cs.washington.edu>)
- + modify headers to accommodate compilers that don't allow duplicate
- "#define" lines for NCURSES_VERSION (reported by Larry W. Virden
- <lvirden@cas.org>)
- + fix formatting glitch in curs_getch.3x (patch by Jesse Thilo).
- + modify lib_doupdate to make el, el1 and ed optimization use the
- can_clear_with macro, and change EmitRange to allow leaving cursor at
- the middle of interval, rather than always at the end (patch by
- Alexander Lukyanov originally 960929, resync 970106).
-
-970104
- + workaround defect in autoconf 2.12 (which terminates configuration
- if no C++ compiler is found) by adding an option --without-cxx.
- + modify several man-pages to use tbl, where .nf/.fi was used (reported
- by Jesse Thilo).
- + correct font-codes in some man-pages (patch by Jesse Thilo
- <Jesse.Thilo@pobox.com>)
- + use configure script's knowledge of existence of g++ library for the
- c++ Makefile (reported by Paul Jackson).
- + correct misleading description of --datadir configuration option
- (reported by Paul Jackson <pj@sam.engr.sgi.com>)
-
-970101
- + several corrections to _nc_mvcur_scrolln(), prompted by a bug report
- from Peter Wemm:
- > the logic for non_dest_scroll_region was interchanged between the
- forward & reverse scrolling cases.
- > multiple returns from the function allowed certain conditions to do
- part of an operation before discovering that it couldn't be
- completed, returning an error without restoring the cursor.
- > some returns were ERR, where the function had completed the
- operation, because the insert/delete line logic was improperly
- tested (this was probably the case Peter saw).
- > contrary to comments, some scrolling cases were tested after the
- insert/delete line method.
- + modify _tracedump() to show first/last changes.
- + modify param of ClrUpdate() in lib_doupdate.c to 'newscr', fixes
- refresh problem (reported by Peter Wemm) that caused nvi to not show
- result of ":r !ls" until a ^L was typed.
-
-961229 (internal alpha)
- + correct some of the writable-strings warnings (reported by Gary
- Johnson <gjohnson@season.com>). Note that most of the remaining ones
- are part of the XSI specification, and can't be "fixed".
- + improve include-dependencies in form, menu, panel directories.
- + correct logic of delay_output(), which would return early if
- there is data on stdin.
- + modify interface & logic of _nc_timed_wait() to support 2 file
- descriptors, needed for GPM.
- + integrate patch by Andrew Kuchling <amk@magnet.com> for GPM (mouse)
- support, correcting logic in wgetch() and _nc_mouse_parse() which
- prevented patch from working properly.
- + improve performance of panel algorithm (Juergen Pfeifer 961203).
- + strip RCS id's from generated .html files in Ada95 subtree.
- + resync with generated .html files (Juergen Pfeifer 961223).
- + terminfo.src 10.1.0 from Eric.
-
-961224 4.0 release
- + release as 4.0 to accommodate Linux ld.so.1.8.5
- + correct syntax/spelling, regenerated .doc files from .html using
- lynx 2.5
- + refined forms/menus makefiles (Juergen Pfeifer 961223).
-
-961221 - snapshot
- + remove logic in read_entry.c that attempts to refine errno by using
- 'access()' for the directory (from patch by Florian La Roche).
- + correct configure test/substitution that inhibits generating
- include-path to /usr/include if gcc is used (reported by Florian La
- Roche).
- + modify setupterm() to allocate new TERMINAL for each call, just as
- solaris' curses does (Alexander Lukyanov 960829).
- + corrected memory leaks in read_entry.c
- + add configure options --with-dbmalloc, --with-dmalloc, and
- --disable-leaks, tested by instrumenting infocmp, ncurses programs.
- + move #include's for stdlib.h and string.h to *.priv.h to accommodate
- use of dbmalloc.
- + modify use of $(LN_S) to follow recommendation in autoconf 2.12,
- i.e., set current directory before linking.
- + split-out panel.priv.h, improve dependencies for forms, menus
- (Juergen Pfeifer 961204).
- + modify _nc_freewin() to reset globals curscr/newscr/stdscr when
- freeing the corresponding WINDOW (Purify).
- + modify delwin() to return ERR if the window to be deleted has
- subwindows, needed as a side-effect of resizeterm() (Purify). Tested
- and found that SVr4 curses behaves this way.
- + implement logic for _nc_freeall(), bringing stub up to date.
-
-961215
- + modify wbkgd() so that it doesn't set nulls in the rendered text,
- even if its argument doesn't specify a character (fixes test case by
- Juergen Pfeifer for bug-report).
- + set window-attributes in wbkgd(), to simplify comparison against
- Solaris curses, which does this.
-
-961214 - snapshot
- + replace most constants in ncurses 'o' test by expressions, making it
- work with wider range of screen sizes.
- + add options to ncurses.c to specify 'e' test softkey format, and the
- number of header/footer lines to rip-off.
- + add ^R (repaint after resize), ^L (refresh) commands to ncurses 'p'
- test.
- + add shell-out (!) command to ncurses 'p' test to allow test of
- resize between endwin/refresh.
- + correct line-wrap case in mvcur() by emitting carriage return,
- overlooked in 960928, but needed due to SVr4 compatibility changes to
- terminal modes in 960907.
- + correct logic in wresize that causes new lines to be allocated,
- broken for the special case of increasing rows only in 960907's fix
- for subwindows.
- + modify configure script to generate $(LDFLAGS) with -L and -l options
- in preference to explicit library filenames. (NOTE: this may
- require further amending, since I vaguely recall a dynamic loader
- that did not work properly without the full names, but it should be
- handled as an exception to the rule, since some linkers do bulk
- inclusion of libraries when given the full name - T.Dickey).
- + modify configure script to allow user-supplied $CFLAGS to set the
- debug-option in all libraries (requested by lots of people).
- + use return consistently from main(), rather than exit (reported by
- Florian La Roche).
- + add --enable-getcap-cache option to configure, normally disabled
- (requested by Florian La Roche).
- + make configure test for gettimeofday() and possibly -lbsd more
- efficient (requested by Florian La Roche florian@knorke.saar.de)
- + minor adjustments to Ada95 binding (patches by Juergen Pfeifer)
- + correct attributes after emitting orig_pair in lib_vidattr.c (patch
- by lav@yars.free.net).
-
-961208
- + corrected README wrt Ada95 (Juergen Pfeifer)
-
-961207 - snapshot
- + integrate resizeterm() into doupdate(), so that if screen size
- changes between endwin/refresh, ncurses will resize windows to fit
- (this needs additional testing with pads and softkeys).
- + add, for memory-leak testing, _nc_freeall() entrypoint to free all
- data used in ncurses library.
- + initialize _nc_idcok, _nc_idlok statically to resolve discrepancy
- between initscr() and newwin() initialization (reported by
- lav@yars.free.net).
- + test built VERSION=4.0, SHARED_ABI=4 with Linux ld.so.1.8.5
- (set beta versions to those values -- NOTE that subsequent pre-4.0
- beta may not be interchangeable).
- + modify configure script to work with autoconf 2.12
-
-961130 1.9.9g release
- + add copyright notices to configuration scripts (written by Thomas
- Dickey).
-
-961127
- > patch by Juergen Pfeifer (mostly for panel):
- + cosmetic improvement for a few routines in the ncurses core library
- to avoid warning messages.
- + the panel overlap detection was broken
- + the panel_window() function was not fool-proof.
- + Some inlining...
- + Cosmetic changes (also to avoid warning messages when compiling with
- -DTRACE).
-
-961126
- > patch by Juergen Pfeifer:
- + eliminates warning messages for the compile of libform.
- + inserts Per Foreby's new field type TYPE_IPV4 into libform.
- + Updates man page and the Ada95 binding to reflect this.
- + Improves inlining in libmenu and libform.
-
-961120
- + improve the use of the "const" qualifier in the
- panel library (Juergen Pfeifer)
- + change set_panel_userptr() and panel_userptr() to use void*
- (Juergen Pfeifer)
-
-961119
- + change ABI to 3.4
- + package with 961119 version of Ada95 binding (fixes for gnat-3.07).
- (Juergen Pfeifer)
- + correct initialization of the stdscr pseudo panel in panel library
- (Juergen Pfeifer)
- + use MODULE_ID (rcs keywords) in forms and menus libraries (Juergen
- Pfeifer).
- > patch #324 by Eric.
- + typo in curs_termcap man page (reported by Hendrik Reichel
- <106065.2344@compuserve.com>)
- + change default xterm entry to xterm-r6.
- + add entry for color_xterm
-
-961116 - snapshot
- + lint found several functions that had only #define implementations
- (e.g., attr_off), modified curses.h.in to generate them as per XSI
- Curses requirement that every macro be available as a function.
- + add check in infocmp.c to guard against string compare of
- CANCELLED_STRING values.
- + modify firework.c, rain.c to hide cursor while running.
- + correct missing va_end in lib_tparm.c
- + modify hanoi.c to work on non-color terminals, and to use timing
- delays when in autoplay mode.
- + correct 'echochar()' to refresh immediately (reported by Adrian
- Garside 94ajg2@eng.cam.ac.uk)
- > patch #322 by eric:
- + reorganize terminfo.src entries for xterm.
-
-961109 - snapshot
- + corrected error in line-breakout logic (lib_doupdate.c)
- + modified newdemo to use wgetch(win) rather than getch() to eliminate
- a spurious clear-screen.
- + corrected ifdef's for 'poll()' configuration.
- + added modules to ncurses, form, menu for Ada95 binding (Juergen
- Pfeifer).
- + modify set_field_buffer() to allow assignment of string longer than
- the initial buffer length, and to return the complete string rather
- than only the initial size (Juergen Pfeifer and Per Foreby
- <perf@efd.lth.se>).
-
-961102 - snapshot
- + configure for 'poll()' in preference to 'select()', since older
- systems are more likely to have a broken 'select()'.
- + modified render_char() to avoid OR'ing colors.
- + minor fixes to testcurs.c, newdemo.c test programs: ifdef'd out the
- resize test, use wbkgd and corrected box() parameters.
- + make flushinp() test work in ncurses.c by using napms() instead of
- sleep().
- + undo Eric's changes to xterm-x11r6 (it no longer matched the X11R6.1
- distribution, as stated)
- + terminfo 9.13.18 (resync by Eric)
- + check for getenv("HOME") returning null (Eric).
- + change buffer used to decode xterm-mouse commands to unsigned to
- 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>).
- + corrections to logic that combines colors and attributes; they must
- not be OR'd (Juergen Pfeifer, extending from report/patch by Rick
- Marshall).
-
-961026 - snapshot
- + reset flags in 'getwin()' that might cause refresh to attempt to
- manipulate the non-existent parent of a window that is read from a
- file (lib_screen.c).
- + restructure _nc_timed_wait() to log more information, and to try to
- recover from badly-behaved 'select()' calls (still testing this).
- + move define for GOOD_SELECT into configure script.
- + corrected extra '\' character inserted before ',' in comp_scan.c
- + corrected expansion of %-format characters in dump_entry.c; some were
- rendered as octal constants.
- + modify dump_entry.c to make terminfo output more readable and like
- SVr4, by using "\s" for spaces (leading/trailing only), "\," for
- comma, "\^" and "\:" as well.
- + corrected some memory leaks in ncurses.c, and a minor logic error
- in the top-level command-parser.
- + correction for label format 4 (PC style with info line), a
- slk_clear(), slk_restore() sequence didn't redraw the info line
- (Juergen Pfeifer).
- + modified the slk window (if simulated) to inherit the background and
- default character attributes from stdscr (Juergen Pfeifer).
- + corrected limit-check in set_top_row (Juergen Pfeifer).
-
-961019 - snapshot
- + correct loop-limit in wnoutrefresh(), bug exposed during pipe-testing
- had '.lastchar' entry one beyond '._maxx'.
- + modify ncurses test-program to work with data piped to it.
- + corrected pathname computation in run_tic.sh, removing extra "../"
- (reported by Tim Mooney).
- + modified configure script to use previous install's location for
- curses.h
- + added NetBSD and FreeBSD to platforms that use --prefix=/usr as
- a default.
-
-961013
- + revised xterm terminfo descriptions to reflect the several versions
- that are available.
- + corrected a pointer reference in dump_entry.c that didn't test if
- the pointer was -1.
-
-961005 - snapshot
- + correct _nc_mvcur_scrolln for terminals w/o scrolling region.
- + add -x option to hashtest to control whether it allows writes to the
- lower-right corner.
- + ifdef'd (NCURSES_TEST) the logic for _nc_optimize_enable to make it
- simpler to construct tests (for double-check of _nc_hash_map tests).
- + correct ifdef's for c++ in curses.h
- + change default xterm type to xterm-x11r6.
- + correct quoting in configure that made man-pages installed with
- $datadir instead of actual terminfo path.
- + correct whitespace in include/Caps, which caused kf11, clr_eol and
- clr_end to be omitted from terminfo.5
- + fix memory leaks in delscreen() (adapted from Alexander Lukyanov).
- + improve appearance of marker in multi-selection menu (Juergen
- Pfeifer)
- + fix behaviour for forms with all fields inactive (Juergen
- Pfeifer)
- + document 'field_index()' (Juergen Pfeifer)
- > patch #321 by eric:
- + add some more XENIX keycap translations to include/Caps.
- + modify newwin to set initial state of each line to 'touched'
- (from patch by Peter Wemm <peter@spinner.dialix.com>)
- + in SET_TTY, replace TCSANOW with TCSADRAIN (Alexander Lukyanov).
-
-960928 - snapshot
- + ifdef'd out _nc_hash_map (still slower)
- + add graphic characters to vt52 description.
- + use PutAttrChar in ClrToEOL to ensure proper background, position.
- + simplify/correct logic in 'mvcur()' that does wrapping; it was
- updating the position w/o actually moving the cursor, which broke
- relative moves.
- + ensure that 'doupdate()' sets the .oldindex values back to a sane
- state; this was causing a spurious refresh in ncurses 'r'.
- + add logic to configure (from vile) to guard against builders who
- don't remove config.cache & config.status when doing new builds.
- + corrected logic for 'repeat_char' in EmitRange (from #317), which
- did not follow the 2-parameter scheme specified in XSI.
- + corrected logic of wrefresh, wnoutrefresh broken in #319, making
- clearok work properly (from report by Michael Elkins).
- + corrected problem with endwin introduced by #314 (removing the
- scrolling-region reset) that broke ncurses.c tests.
- + corrected order of args in AC_CHECK_LIB (from report by Ami Fischman
- <fischman@math.ucla.edu>).
- + corrected formatting of terminfo.5 tables (Juergen Ehling)
- > patch 320 by eric:
- + change ABI to 3.3
- + emit a carriage-return in 'endwin()' to workaround a kernel bug in
- BSDI. (requested by Mike Karels <karels@redrock.bsdi.com>)
- + reverse the default o configure --enable-termcap (consensus).
- > patch 319 by eric:
- + modified logic for clearok and related functions (from report by
- Michael Elkins) - untested
- > patch 318 by eric:
- + correction to #317.
- > patch 317 by eric:
- + re-add _nc_hash_map
- + modify EmitRange to maintain position as per original design.
- + add hashtest.c, program to time the hashmap optimization.
- > patch 316 by eric:
- + add logic to deal with magic-cookie (how was this tested?)
- (lib_doupdate.c).
- + add ncurses.c driver for magic-cookie, some fixes to ncurses.c
- > patch 315 by eric:
- + merged A. Lukyanov's patch to use ech and rep - untested
- (lib_doupdate.c).
- + modified handling of interrupted system calls - untested
- (lib_getch.c, lib_twait.c).
- + new function _nc_mvcur_resume()
- + fix return value for 'overlay()', 'overwrite()'
-
-960914 - snapshot
- + implement subwindow-logic in wresize, minor fixes to ncurses 'g'
- test.
- + corrected bracketing of fallback.c (reported/suggested fix by Juergen
- Ehling <eh@eclipse.aball.de>).
- + update xterm-color to reflect XFree86 3.1.3G release.
- + correct broken dtterm description from #314 patch (e.g., spurious
- newline. The 'pairs' change might work, but no one's tested it
- either ;-)
- + clarify the documentation for the builtin form fieldtypes (Juergen
- Pfeifer)
- > patch 314 by eric:
- + Enhancement suggested by A. Lukyanov -- reset scroll region on
- startup rather than at wrapup time.
- + Fix suggested by A. Lukyanov, make storage of palette tables
- and their size counts per-screen for multi-terminal applications.
- + Improved error reporting for infotocap translation errors.
- + Update terminfo.src to 9.13.14.
-
-960907 - snapshot
- + rewrote wgetstr to make it erase control chars and also fix bogus use
- of _nc_outstr which caused the display to not wrap properly (display
- problem reported by John M. Flinchbaugh <glynis@netrax.net>)
- + modify ncurses 'f' test to accommodate terminal responses to C1 codes
- (and split up this screen to accommodate non-ANSI terminals).
- + test enter_insert_mode and exit_insert_mode in has_ic().
- + removed bogus logic in mvcur that assumes nl/nonl set output modes
- (XSI says they are input modes; SVr4 implements this).
- + added macros SET_TTY, GET_TTY to term.h
- + correct getstr() logic that altered terminal modes w/o restoring.
- + disable ICRNL, etc., during initialization to match SVr4, removing
- the corresponding logic from raw, cbreak, etc.
- + disable ONLCR during initialization, to match SVr4 (this is needed
- for cursor optimization when the cursor-down is a newline).
- + replaced Eric's imitation of wresize with my original (his didn't
- work).
-
-960831 - snapshot
- + memory leaks (Alexander V. Lukyanov).
- + modified pnoutrefresh() to be more tolerant of too-large screen
- size (reported by Michael Elkins).
- + correct handling of terminfo files with no strings (Philippe De
- Muyter)
- + correct "tic -s" to take into account -I, -C options.
- + modify ncurses 'f' test to not print codes 80 through 9F, since they
- are considered control codes by ANSI terminals.
-
-960824 - snapshot
- + correct speed variable-type in 'tgetent()' (reported by Peter Wemm)
- + make "--enable-getcap" configuration-option work (reported by
- Peter Wemm <peter@spinner.DIALix.COM>)
-
-960820
- + correct err in 960817 that changed return-value of tigetflag()
- (reported by Alexander V. Lukyanov).
- + modify infocmp to use library default search-path for terminfo
- directory (Alexander V. Lukyanov).
-
-960817 - snapshot
- + corrected an err in mvcur that broke resizing-behavior.
- + correct fall-thru behavior of _nc_read_entry(), which was not finding
- descriptions that existed in directories past the first one searched
- (reported by Alexander V. Lukyanov)
- + corrected typo in dtterm description.
- > patch 313 by eric:
- + add dtterm description
- + clarify ncurses 'i' test (drop vscanf subtest)
-
-960810 - snapshot
- + correct nl()/nonl() to work as per SVr4 & XSI.
- + minor fixes to ncurses.c (use 'noraw()', mvscanw return-code)
- + refine configure-test for -g option (Tim Mooney).
- + correct interaction between O_BLANK and NEW_LINE request in form
- library (Juergen Pfeifer)
-
-960804
- + revised fix to tparm; previous fix reversed parameter order.
- > patch 312 by eric:
- correct terminfo.src corrupted by #310
- > patch 311 by eric:
- + fix idlok() and idcok() and the default of the idlok switch.
-
-960803 - snapshot
- + corrected tparm to handle capability strings without explicit pop
- (reported by William P Setzer)
- + add fallback def for GCC_NORETURN, GCC_UNUSED for termcap users
- (reported by Tim Mooney).
- > patch 310 by eric:
- + documentation and prototyping errors for has_color, immedok and idcok
- (reported by William P Setzer <wsetzer@pams.ncsu.edu>)
- + updated qnx terminfo entry (by Michael Hunter)
-
-960730
- + eliminate quoted includes in ncurses subdirectory, ensure config.h
- is included first.
- + newterm initializes terminal settings the same as initscr (reported
- by Tim Mooney).
-
-960727 - snapshot
- + call cbreak() in initscr(), as per XSI & SVr4.
- + turn off hardware echo in initscr() as per XSI & SVr4
- > patch 309 by eric:
- + terminfo changes (9.3.10), from BRL
- + add more checks to terminfo parser.
- + add more symbols to infocmp.
-
-960720 - snapshot
- + save previous-attribute in lib_vidattr.c if SP is null (reported by
- 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.
- + 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
- include therein).
- + move the ifdefs for errno into curses.priv.h
- > patch 308 by eric:
- + terminfo changes (9.3.8)
- + modified logic of error-reporting in terminfo parser
-
-960713 - snapshot
- + always check for <sys/bsdtypes.h> since ISC needs it to declare
- fd_set (Juergen Pfeifer)
- + install shared-libraries on NetBSD/FreeBSD with ABI-version (reported
- by several people: Juergen Pfeifer, Mike Long)
- + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer)
- + corrected prototype for delay_output() -- bump ABI to 3.2
- + terminfo patches #306/307 from Eric.
- + moved logic that filters out rmul and rmso from setupterm to newterm
- where it is less likely to interfere with termcap applications.
-
-960707
- + rollback Eric's #305 change to terminfo.src (it breaks existing
- applications, e.g., 'less 290').
- + correct path of edit_man.sh, and fix typo that made all man-pages
- preformatted.
- + restore man/menu_requestname.3x omitted in Zeyd's resync (oops).
- + auto-configure the GCC_PRINTFLIKE/GCC_SCANFLIKE macros (reported by
- Philippe De Muyter).
-
-960706 - snapshot
- + make lib_vidattr.c more readable using macros.
- + filter out rmul, rmso that conflict with sgr0 when reading terminal
- descriptions.
- + added sanity-checking of various paired string attributes (Eric).
- + work around autoconf bug, force $INSTALL to absolute path.
- (reported by Zeyd).
- + modify man-page install for BSDI to install preformatted .0 files
- (reported by David MacKenzie).
- + add/use gcc __attribute__ for printf and scanf in curses.h
- + added SGR attributes test-case to ncurses
- + revised ncurses 't' logic to show trace-disable effect in the menu.
- + use getopt in ncurses program to process -s and -t options.
- + make ncurses 'p' legend toggle with '?'
- + disable scrollok during the ncurses 'p' test; if it is enabled the
- stdscr will scroll when putting the box-corners in the lower-right
- of the screen.
-
-960629 - snapshot
- + check return code of _nc_mvcur_scrolln() in _nc_scroll_optimize() for
- terminals with no scrolling-support (reported by Nikolay Shadrin
- <queen@qh.mirea.ac.ru>)
- + added ^S scrollok-toggle to ncurses 'g' test.
- + added ^T trace-toggle to ncurses tests.
- + modified ncurses test program to use ^Q or ESC consistently for
- terminating tests (rather than ^D), and to use control keys rather
- than function keys in 'g' test.
- + corrected misplaced wclrtoeol calls in addch to accommodate wrapping
- (reported by Philippe De Muyter).
- + modify lib_doupdate.c to use effective costs to tradeoff between
- delete-character/insert-character vs normal updating (reported by
- David MacKenzie).
- + compute effective costs for screen update operations (e.g., clr_eos,
- delete_character).
- + corrected error in knight.c exposed by wrap fixes in 960622; the
- 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.
- + corrected off-by-one in RoomFor call in read_entry.c
-
-960622 - snapshot
- + modified logic that wraps cursor in addch to follow the XSI spec,
- (implemented in SVr4) which states that the cursor position is
- updated when wrapping. Renamed _NEED_WRAP to _WRAPPED to reflect the
- actual semantics.
- + added -s option to tic, to provide better diagnostics in run_tic.sh
- + improved error-recovery for tabset install.
- + change ABI to 3.1 (dropped tparam, corrected getbkgd(), added
- _yoffset to WINDOW).
- + modified initialization of SP->_ofp so that init_acs() is called with
- the "right" file pointer (reported by Rick Marshall <rjm@nlc.net.au>
- + documentation fixes (Juergen Pfeifer).
- + corrected, using new SCREEN and WINDOW members, the behavior of
- ncurses if one uses ripoffline() to remove a line from the top of the
- screen (Juergen Pfeifer).
- + modified autoconf scripts to prepare for Ada95 (GNAT) binding to
- ncurses (Juergen Pfeifer).
- + incorrect buffer-size in _nc_read_entry, reported by Eric Raymond.
-
-960617
- + corrected two logic errors in read_entry.c, write_entry.c (called by
- tic, the write/read of terminfo entries used inconsistent rules for
- locating the entries; the $TERMINFO_DIRS code would find only the
- first entry in a list).
- + refined pathname computation in run_tic.sh and shlib.
- + corrected initialization of $IP in misc/run_tic.sh
-
-960615 - snapshot
- + ifdef'd out _nc_hash_map() call because it does not improve speed.
- + display version of gcc if configure script identifies it.
- + modify configure script to use /usr as Linux's default prefix.
- + modify run_tic.sh to use shlib script, fixes some problems installing
- with a shared-library configuration.
- + adjusted configure script so that it doesn't run tests with the
- warnings turned on, which makes config.log hard to read.
- + added 'lint' rule to top-level Makefile.
- + added configure option '--with-install-prefix' for use by system
- builders to install into staging locations (from request by
- charles@comm.polymtl.ca)
- + corrected autoconfigure for Debian man program; it's not installed
- as "man_db".
- + set noecho in 'worm'; it was ifdef'd for debug only
- + updated test/configure.in for timing-display in ncurses 'p' test
- + corrected misspelled 'getbkgd()'.
- + corrected wbkgdset to work like observed syvr4 (sets A_CHARTEXT part
- to blank if no character given, copies attributes to window's
- attributes).
- + modified lib_doupdate.c to use lower-level SP's current_attr state
- instead of curscr's state, since it is redundant.
- + correction to IDcTransformLine logic which controls where InsStr is
- invoked (refined by lav@yars.free.net).
- > patches 303 by eric
- + conditionally include Chris Torek's hash function _nc_hash_map().
- + better fix for nvi refresh-bug (Rick Marshall)
- + fix for bug in handling of interrupted keystroke waits,
- (Werner Fleck).
-
-960601 - snapshot
- + auto-configure man-page compression-format and renames for Debian.
- + corrected several typos in curses.h.in (i.e., the mvXXXX macros).
- + re-order curses.priv.h for lint.
- + added rules for lintlib, lint
- + 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).
- + enhancement to the control over the new PC-style soft key format.
- allow caller now to select whether or not one wants to have
- the index-line; see curs_slk.3x for documentation (Juergen Pfeifer).
- + typos, don't use inline with -g (Philippe De Muyter)
- + fixes for menus & wattr-, slk-functions (Juergen Pfeifer)
-
-960526 - snapshot
- + removed --with-ticdir option altogether, maintain compatibility with
- existing applications via symbolic link in run_tic.sh
- + patch for termio.h, signal (Philippe De Muyter)
- + auto-configure gcc warning options rather than infer from version.
- + auto-configure __attribute__ for different gcc versions.
- + corrected special use of clearok() in hardscroll.c by resetting flag
- in wrefresh().
- + include stdlib.h before defs for EXIT_SUCCESS, for OSF/1.
- + include sys/types.h in case stdlib.h does not declare size_t.
- + fixes for makefile (Tim Mooney)
- + fixes for menus & forms (Juergen.Pfeifer@T-Online.de)
-
-960518 - snapshot
- + revised ncurses.c panner test, let pad abut all 4 sides of screen.
- + refined case in lib_doupdate.c for ClrToEOL().
- + corrected prior change for PutRange (Alexander V. Lukyanov:
- lav@yars.free.net).
- + autoconf mods (Tim Mooney: mooney@dogbert.cc.ndsu.NoDak.edu).
- + locale fix for forms (Philippe De Muyter: phdemuyt@ulb.ac.be)
- + renamed "--with-datadir" option to "--with-ticdir" to avoid
- confusion, and made this check for the /usr/lib/terminfo pre-existing
- directory.
- > patches 299-301 by eric:
- + added hashmap.c
- + mods to tracing, especially for ACS chars.
- + corrected off-by-one in IDCtransform.
- + corrected intermittent mouse bug by using return-value from read().
- + mods to parse_entry.c, for smarter defaults.
-
-960512
- + use getopt in 'tic'; added -L option and modified -e option to allow
- list from a file.
-
-960511
- + don't use fixed buffer-size in tparm().
- + modified tic to create terminfo directory if it doesn't exist.
- + added -T options to tic and infocmp (for testing/analysis)
- + refined the length criteria for termcap and terminfo
- + optimize lib_doupdate with memcpy, PutRange
- > patches 297, 298 by eric
- + implement TERMINFO_DIRS, and -o option of tic
- + added TRACE_IEVENT
- + removed boolean version of 'getm'
- + added lib_print.c (for Rick Marshall)
- + added has_key()
- + added 't' to ncurses.c test.
- + moved delay_output() to lib_tputs.c
- + removed tparam().
- + misc cursor & optimization fixes.
-
-960504 - snapshot
- + modified ncurses 'p' test to allow full-screen range for panner size.
- + fixes for locale (phdm@labauto1.ulb.ac.be)
- + don't use fixed buffer-size in fmt_entry().
- + added usage-message to 'infocmp'.
- + modified install.includes rules to prepend subdirectory-name to
- "#include" if needed.
-
-960430
- + protect wrefresh, wnoutrefresh from invocation with pad argument.
- + corrected default CCFLAGS in test/Makefile.
-
-960428 - snapshot
- + implemented logic to support terminals with background color erase
- (e.g., rxvt and the newer color xterm).
- + improved screen update logic (off-by-one logic error; use clr_eos if
- possible)
-
-960426 - snapshot
- + change ncurses 'a' test to run in raw mode.
- + make TIOCGWINSZ configure test less stringent, in case user
- configures via terminal that cannot get screen size.
- > patches 295, 296 by eric:
- + new "-e" option of tic.
- + fix for "infocmp -e".
- + restore working-directory in read_termcap.c
- + split lib_kernel.c, lib_setup.c and names.c in order to reduce
- overhead for programs that use only termcap features.
-
-960418 - snapshot
- + use autoconf 2.9
- + fix for AIX 3.2.5 (must define _POSIX_SOURCE to get termios struct
- definitions via <termios.h>, modified macros in lib_raw.c to avoid
- K&R-style substitution)
- > patches 293, 294 by eric:
- + mods to wgetch() in cooked mode
- + corrected askuser() logic in tset
- + correct interaction of endwin() with mouse processing
- + added trace support for TTY flags
-
-960406
- + fixes for NeXT, ISC and HPUX auto-configure
- + 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
- + modify tic to generate directories only as-needed (and corrected
- instance of use of data from function that had already returned).
-
-### ncurses-1.9.8a -> 1.9.9e
-
-* fixed broken wsyncup()/wysncdown(), as a result wnoutrefresh() now has
- copy-changed-lines behavior.
-* added and documented wresize() function.
-* more fixes to LOWER-RIGHT corner handling.
-* changed the line-breakout optimization code to allow some lines to be
- emitted before the first check.
-* added option for tic to use symbolic instead of hard links (for AFS)
-* fix to restore auto-wrap mode.
-* trace level can be controlled by environment variable.
-* better handling of NULs in terminal descriptions.
-* improved compatibility with observed SVR4 behavior.
-* the refresh behavior of over-lapping windows is now more efficient and
- behaves like SVR4.
-* use autoconf 2.7, which results in a working setup for SCO 5.0.
-* support for ESCDELAY.
-* small fixes for menu/form code.
-* the test directory has its own configure.
-* fixes to pads when optimizing scrolling.
-* fixed several off-by-one bugs.
-* fixes for termcap->terminfo translation; less restrictions more correct
- behavior.
-
-### ncurses-1.9.7 -> 1.9.8a
-
-* teach infocmp -i to recognize ECMA highlight sequences
-* infocmp now dumps all SVr4 termcaps (not just the SVr4 ones) on -C
-* support infocmp -RBSD.
-* satisfy XSI Curses requirement that every macro be available as a function.
-* This represents the last big change to the public interface of ncurses. The
- ABI_VERSION has now been set at 3.0 and should stay there barring any great
- catastrophies or acts of God.
-* The C++ has been cleaned up in reaction to the changes to satisfy XSI's
- requirements.
-* libncurses now gets linked to libcurses to help seamless emulation
- (replacement) of a vendor's curses. --disable-overwrite turns this behavior
- off.
-
-### ncurses-1.9.6 -> 1.9.7
-
-* corrected return values of setupterm()
-* Fixed some bugs in tput (it does padding now)
-* fixed a bug in tic that made it do the wrong thing on entries with more than
- one `use' capability.
-* corrected the screen-size calculation at startup time to alter the
- numeric capabilities as per SVr4, not just LINES and COLS.
-* toe(1) introduced; does what infocmp -T used to.
-* tic(1) can now translate AIX box1 and font[0123] capabilities.
-* tic uses much less core, the dotic.sh kluge can go away now.
-* fix read_entry() and write_entry() to pass through cancelled capabilities OK.
-* Add $HOME/.terminfo as source/target directory for terminfo entries.
-* termcap compilation now automatically dumps an entry to $HOME/.terminfo.
-* added -h option to toe(1).
-* added -R option to tic(1) and infocmp(1).
-* added fallback-entry-list feature.
-* added -i option to infocmp(1).
-* do a better job at detecting if we're on SCO.
-
-### ncurses-1.9.5 -> 1.9.6
-
-* handling of TERMCAP environment variables now works correctly.
-* various changes to shorten termcap translations to less that 1024 chars.
-* tset(1) added
-* mouse support for xterm.
-* most data tables are now const and accordingly live in shareable text space.
-* Obey the XPG4/SVr4 practice that echo() is initally off.
-* tic is much better at translating XENIX and AIX termcap entries now.
-* tic can interpret ko capabilities now.
-* integrated Juergen Pfeifer's forms library.
-* taught write_entry() how not to write more than it needs to; this change
- reduces the size of the terminfo tree by a full 26%!
-* infocmp -T option added.
-* better warnings about historical tic quirks from tic.
-
-### ncurses 1.9.4 -> 1.9.5
-
-* menus library is now included with documentation.
-* lib_mvcur has been carefully profiled and tuned.
-* Fixed a ^Z-handling bug that was tanking lynx(1).
-* HJ Lu's patches for ELF shared libraries under Linux
-* terminfo.src 9.8.2
-* tweaks for compiling in seperate directories.
-* Thomas Dickey's patches to support NeXT's brain-dead linker
-* Eric Raymond's patches to fix problems with long termcap entries.
-* more support for shared libraries under SunOS and IRIX.
-
-### ncurses 1.9.3 -> 1.9.4
-
-* fixed an undefined-order-of-evaluation bug in lib_acs.c
-* systematically gave non-API public functions and data an _nc_ prefix.
-* integrated Juergen Pfeifer's menu code into the distribution.
-* totally rewrote the knight test game's interface
-
-### ncurses 1.9.2c -> 1.9.3
-
-* fixed the TERMCAP_FILE Support.
-* fixed off-by-one errors in scrolling code
-* added tracemunch to the test tools
-* took steps to cut the running time of make install.data
-
-### ncurses 1.9.2c -> 1.9.2d
-
-* revised 'configure' script to produce libraries for normal, debug,
- profile and shared object models.
-
-### ncurses 1.9.1 -> 1.9.2
-
-* use 'autoconf' to implement 'configure' script.
-* panels support added
-* tic now checks for excessively long termcap entries when doing translation
-* first cut at eliminating namespace pollution.
-
-### ncurses 1.8.9 -> 1.9
-
-* cleanup gcc warnings for the following: use size_t where 'int' is not
- appropriate, fixed some shadowed variables, change attr_t to compatible with
- chtype, use attr_t in some places where it was confused with 'int'.
-* use chtype/attr_t casts as appropriate to ensure portability of masking
- operations.
-* added-back waddchnstr() to lib_addstr.c (it had been deleted).
-* supplied missing prototypes in curses.h
-* include <termcap.h> in lib_termcap.c to ensure that the prototypes
- are consistent (they weren't).
-* corrected prototype of tputs in <termcap.h>
-* rewrote varargs parsing in lib_tparm.c (to avoid referencing memory
- that may be out of bounds on the stack) -- Purify found this.
-* ensure that TRACE is defined in lib_trace.c (to solve prototype
- warnings from gcc).
-* corrected scrolling-region size in 'mvcur_wrap()'
-* more spelling fixes
-* use 'calloc()' to allocate WINDOW struct in lib_newwin.c (Purify).
-* set default value for SP->_ofp in lib_set_term.c (otherwise SunOS dumps
- core in init_acs()).
-* include <errno.h> in write_entry.c (most "braindead" includes declare errno
- in that file).
-
-### ncurses 1.8.8 -> 1.8.9
-
-* compile (mostly) clean with gcc 2.5.8 -Wall -Wstrict-prototypes
- -Wmissing-prototypes -Wconversion and using __attribute__ to flush out
- non-portable use of "%x" for pointers, or for chtype data (which is declared
- as a long).
-* modified doupdate to ensure that typahead was turned on before attempting
- select-call (otherwise, some implementations hang).
-* added trace mask TRACE_FIFO, use this in lib_getch.c to allow finer
- resolution of traces.
-* improved bounds checking on several critical functions.
-* the data directory has been replaced by the new master terminfo file.
-* -F file-comparison option added to infocmp.
-* compatibility with XSI Curses is now documented in the man bages.
-* wsyncup/wsyncdown functions are reliable now; subwindow code in general
- is much less flaky.
-* capabilities ~msgr, tilde_glitch, insert_padding, generic_type, no_pad_char,
- memory_above, memory_below, and hard_copy are now used properly.
-* cursor-movement optimization has been completely rewritten.
-* vertical-movement optimization now uses hardware scrolling, il, dl.
-
-### ncurses 1.8.7 -> 1.8.8
-* untic no longer exists, infocmp replaces it.
-* tic can understand termcap now, especially if it is called captoinfo.
-* The Linux Standard Console terminfo entry is called linux insead of console.
- It also uses the kernel's new method of changing charsets.
-* initscr() will EXIT upon error (as the docs say) This wil mostly happen if
- you try to run on an undefined terminal.
-* I can get things running on AIX but tic can't compile terminfo. I have to
- compile entries on another machine. Volunteers to hunt this bug are welcome.
-* wbkgd() and wbkgdset() can be used to set a windows background to color.
- wclear()/werase() DO NOT use the current attribute to clear the screen.
- This is the way SVR4 curses works. PDCurses 2.1 is broken in this respect,
- though PDCurses 2.2 has been fixed.
-* cleaned up the test/ directory.
-* test/worm will segfault after quite a while.
-* many spelling corrections courtesy of Thomas E. Dickey
-
-### ncurses 1.8.6 -> 1.8.7
-* cleaned up programs in test/ directory.
-* fixed wbkgdset() macro.
-* modified getstr() to stop it from advancing cursor in noecho mode.
-* modified linux terminfo entry to work with the latest kernel to get
- the correct alternate character set.
-* also added a linux-mono entry for those running on monochrome screens.
-* changed initscr() so that it behaves like the man page says it does.
- this fixes the problem with programs in test/ crashing with SIGSEV if
- a terminal is undefined.
-* modified addch() to avoid using any term.h #define's
-* removed duplicate tgoto() in lib_tparm.c
-* modified dump_entry.c so that infocmp deals correctly with ',' in acsc
-* modified delwin() to correctly handle deleting subwindows.
-* fixed Makefile.dist to stop installing an empty curses.h
-* fixed a couple of out-of-date notes in man pages.
-
-### ncurses 1.8.5 -> 1.8.6
-* Implemented wbkgd(), bkgd(), bkgdset(), and wbkgdset().
-* The handling of attributes has been improved and now does not turn off color
- if other attributes are turned off.
-* scrolling code is improved. Scrolling in subwindows is still broken.
-* Fixes to several bugs that manifest them on platforms other than Linux.
-* The default to meta now depends on the status of the terminal when ncurses
- is started.
-* The interface to the tracing facility has changed. Instead of the pair of
- functions traceon() and traceoff(), there is just one function trace() which
- 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 */
-
- 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
- been improved.
-* The prototype ansi entry has been changed to work with a wider variety
- of emulators.
-* Fix to the prototype ansi entry that enables it to work with PC emulators
- that treat trailing ";m" in a highlight sequence as ";0m"; this doesn't
- break operation with any emulators.
-* There are now working infocmp, captoinfo, tput, and tclear utilities.
-* tic can now compile entries in termcap syntax.
-* Core-dump bug in pnoutrefresh fixed.
-* We now recognize and compile all the nonstandard capabilities in Ross
- Ridge's mytinfo package (rendering it obsolete).
-* General cleanup and documentation improvements.
-* Fixes and additions to the installation-documentation files.
-* Take cursor to normal mode on endwin.
-
-### ncurses 1.8.4 -> 1.8.5
-* serious bugs in updating screen which caused erratic non-display,
- fixed.
-* fixed initialization for getch() related variable which cause
- unpredictable results.
-* fixed another doupdate bug which only appeared if you have
- parm_char.
-* implemented redrawln() and redrawwin().
-* implemented winsnstr() and related functions.
-* cleaned up insertln() and deleteln() and implemented (w)insdeln().
-* changed Makefile.dist so that installation of man pages will
- take note of the terminfo directory.
-* fixed Configure (removed the mysterious 'X').
-* Eric S. Raymond fixed the script.* files so that they work with
- stock awk.
-
-#### ncurses 1.8.3 -> 1.8.4 #### ####
-* fixed bug in refreshing the screen after return from shell_mode.
- There are still problems but they don't manifest themselves on
- my machine (Linux 0.99.14f).
-* added wgetnstr() and modified things accordingly.
-* fixed the script.src script.test to work with awk not just gawk.
-* Configure can now take an argument of the target system.
-* added test/ncurses.c which replaces several other programs and
- performs more testing.
-[Thanks to Eric S Raymond for the last 4]
-* more fixes to lib_overlay.c and added test/over.c to illustrate
- how it works.
-* fixed ungetch() to take int instead of ch.
-* fixes to cure wgetch() if flushinp() is called.
-
-One note I forgot to mention in 1.8.3 is that tracing is off by
-default starting in the version. If you want tracing output, put
-traceon(); in your code and link with -ldcurses.
-
-#### ncurses 1.8.2 -> ncurses 1.8.3 #### ####
-MAJOR CHANGES:
-1) The order of capabilities has been changed in order to achieve
-binary compatibility with SVR4 terminfo database. This has the
-unfortunate effect of breaking application currently linked with
-ncurses. To ensure correct behavior, recompile all such programs.
-Most programs using color or newer capabilities will break, others
-will probably continue to work ok.
-
-2) Pavel Curtis has renounced his copyright to the public domain.
-This means that his original sources (posted to comp.sources.unix,
-volume 1) are now in the public domain. The current sources are
-NOT in the public domain, they are copyrighted by me. I'm
-entertaining ideas on what the new terms ncurses is released under.
-
-3) Eric S. Raymond has supplied a complete set of man pages for
-ncurses in ?roff format. They will eventually replace most of the
-current docs. Both sets are included in this release.
-
-Other changes and notes from 1.8.2 include:
-* SIGSEGV during scrolling no longer occurs.
-* Other problems with scrolling and use of idl have been corrected.
-* lib_getch.c has been re-written and should perform flawlessly.
- please use test/getch.c and any other programs to test this.
-* ripoffline() is implemented (Thanks to Eric) and slk_ functions
- changed accordingly.
-* I've added support for terminals that scroll if you write in the
- bottom-right corner.
-* fixed more bugs in pads code. If anybody has a program that uses
- pads I'd love a copy.
-* correct handling for terminal with back_color_erase capability
- (such as Linux console, and most PC terminals)
-* ^Z handling apparently didn't work (I should never trust code
- sent me to me without extensive testing). It now seems to be
- fixed. Let me know if you have problems.
-* I've added support for Apollo and NeXT, but it may still be
- incomplete, especially when dealing with the lack of POSIX
- features.
-* scrolling should be more efficient on terminals with idl
- capabilities. Please see src/lib_scroll.c for more notes.
-* The line drawing routines were offset by 1 at both ends. This
- is now fixed.
-* added a few missing prototypes and macros (e.g. setterm())
-* fixed code in src/lib_overlay.c which used to crash.
-* added a few more programs in test/ The ones from the PDCurses
- package are useful, especially if you have SVR4 proper. I'm
- interested in the results you get on such a systems (Eric? ;-).
- They already exposed certain bugs in ncurses.
-* See src/README for porting notes.
-* The C++ code should really replace ncurses.h instead of working
- around it. It should avoid name-space clashes with nterm.h (use
- rows instead of lines, etc.)
-* The C++ should compile ok. I've added explicit rules to the
- Makefile because no C++ defaults are documented on the suns.
-* The docs say that echo() and nocbreak() are mutually exclusive.
- At the moment ncurses will switch to cbreak() if the case above
- occurs. Should it continue to do so? How about echo() and noraw()?
-* PDCurses seem to assume that wclear() will use current attribute
- when clearing the screen. According to Eric this is not the case
- with SVR4.
-* I have discovered, to my chagrin, SunOS 4.x (and probably other systems)
- * doesn't have vsscanf and God knows what else! I've will do a vsscanf().
-* I've also found out that the src/script.* rely on gawk and will not
- work with stock awk or even with nawk. Any changes are welcome.
-* Linux is more tolerant of NULL dereferences than most systems. This
- fact was exposed by hanoi.
-* ncurses still seems inefficient in drawing the screen on a serial
- link between Linux and suns. The padding may be the culprit.
-* There seems to be one lingering problem with doupdate() after shelling
- out. Despite the fact the it is sending out the correct information
- to the terminal, nothing takes effect until you press ^L or another
- refresh takes place. And yes, output does get flushed.
-
-#### ncurses 1.8.1 -> ncurses 1.8.2 #### Nov 28, 1993 ####
-
-* added support for SVR4 and BSDI's BSD/386.
-* major update and fix to scrolling routine.
-* MORE fixes to stuff in lib_getch.c.
-* cleaned-up configuration options and can now generate
- Config.* files through an awk script.
-* changed setupterm() so it can be called more than once,
- add added set_curterm(), del_curterm().
-* a few minor cleanups.
-* added more prototypes in curses.h
-
-#### ncurses 1.8 -> ncurses 1.8.1 #### Nov 4, 1993 ####
-
-* added support for NeXTStep 3.0
-* added termcap emulation (not well tested).
-* more complete C++ interface to ncurses.
-* fixed overlay(), overwrite(), and added copywin().
-* a couple of bug fixes.
-* a few code cleanups.
-
-#### ncurses 0.7.2/0.7.3 -> ncurses 1.8 #### Aug 31, 1993 ####
-
-* The annoying message "can't open file." was due to missing
- terminfo entry for the used terminal. It has now been
- replaced by a hopefully more helpful message.
-* Problems with running on serial lines are now fixed.
-* Added configuration files for SunOS, Linux, HP/UX, Ultrix,
- 386bsd/BSDI (if you have others send'em to me)
-* Cleaner Makefile.
-* The documentation in manual.doc is now more uptodate.
-* update optimization and support for hp terminals, and 386bsd
- console driver(s).
-* mvcur optimization for terminals without cursor addressing
- (doesn't work on Linux)
-* if cursor moved since last update, getch() will refresh the
- screen before working.
-* getch() & alarm() can now live together. in 0.7.3 a signal
- interrupted getch() (bug or feature?) now the getch is
- restarted.
-* scanw() et all were sick, now fixed.
-* support for 8-bit input (use meta()).
-* added default screen size to all terminfos.
-* added c++ Ncursesw class.
-* several minor bug fixes.
-
-#### ncurses 0.7.2 -> ncurses 0.7.3 #### May 27, 1993 ####
-
-* Config file to cope with different platforms (386BSD, BSDI, Ultrix, SunOS)
-* more fixes to lib_getch.c
-* changes related to Config
-
-#### ncurses 0.7 -> ncurses 0.7.2 #### May 22, 1993 ####
-
-* docs updated slightly (color usage is now documented).
-* yet another fix for getch(), this one fixes problems with ESC being swallowed
- if another character is typed before the 1 second timeout.
-* Hopefully, addstr() and addch() are 8-bit clean.
-* fixed lib_tparm.c to use stdarg.h (should run on suns now)
-* order of capabilities changed to reflect that specified in SYSV
- this will allow for binary-compatibility with existing terminfo dbs.
-* added halfdelay()
-* fixed problems with asc_init()
-* added A_PROTECT and A_INVIS
-* cleaned up vidputs()
-* general cleanup of the code
-* more attention to portability to other systems
-* added terminfos for hp70092 (wont work until changes to lib_update.c are
- made) and 386BSD pcvt drivers.
-
-Thanks to Hellmuth Michaelis for his help.
-optimization code is slated for the next major release, stay tuned!
-
-#### ncurses 0.6/0.61 -> ncurses 0.7 #### April 1, 1993
-Please note that the next release will be called 1.8. If you want to know about
-the rationale drop me a line.
-
-Included are several test programs in test/.
-I've split up the panels library, reversi, tetris, sokoban. They are now
-available separately from netcom.com:pub/zmbenhal/
-
-* color and ACS support is now fully compatible with SYSV at the terminfo
- level.
-* Capabilities now includes as many SYSV caps I could find.
-* tigetflag,tigetnum,tigetstr functions added.
-* boolnames, boolfnames, boolcodes numnames, numfnames, numcodes,
- strnames, strfnames, strcodes arrays are now added.
-* keyname() is added.
-* All function keys can be defined in terminfo entries.
-* fixed lin_tparm.c to behave properly.
-* terminfo entries for vt* and xterm are included (improvements are welcome)
-* more automation in handling caps and keys.
-* included fixes from 0.6.1
-* added a few more missing functions.
-* fixed a couple of minor bugs.
-* updated docs JUST a little (still miles behind in documenting the newer
- features).
-
-#### ncurses 0.6 -> ncurses 0.61 ####
-
-1) Included the missing data/console.
-
-2) allow attributes when drawing boxes.
-
-3) corrected usage of win->_delay value.
-
-4) fixed a bug in lib_getch.c. if it didn't recognize a sequence it would
- simply return the last character in the sequence. The correct
- behavior is to return the entire sequence one character at a time.
-
-#### ncurses0.5 -> ncurses0.6 #### March 1, 1993 ####
-* removed _numchngd from struct _win_st and made appropriate changes.
-* rewritten kgetch() to remove problems with interaction between alarm and
- read(). It caused SIGSEGV every now and then.
-* fixed a bug that miscounted the numbers of columns when updating.
- (in lib_doupdate.c(ClrUpdate() -- iterate to columns not columns-1)
-* fixed a bug that cause the lower-right corner to be incorrect.
- (in lib_doupdate.c(putChar() -- check against columns not columns-1)
-* made resize() and cleanup() static to lib_newterm.c
-* added notimeout().
-* added timeout() define in curses.h
-* added more function prototypes and fixed napms.
-* added use_env().
-* moved screen size detection to lib_setup.c.
-* fixed newterm() to confirm to prototype.
-* removed SIGWINCH support as SYSV does not define its semantics.
-* cleaned-up lib_touch.c
-* added waddnstr() and relatives.
-* added slk_* support.
-* fixed a bug in wdeleteln().
-* added PANEL library.
-* modified Makefile for smoother installation.
-* terminfo.h is really term.h
-
-#### ncurses 0.4 -> ncurses 0.5 #### Feb 14, 1993 ####
-* changed _win_st structure to allow support for missing functionality.
-* Addition of terminfo support for all KEY_*.
-* Support for nodelay(), timeout(), notimeout().
-* fixed a bug with the keypad char reading that did not return ESC until
- another key is pressed.
-* nl mapping no longer occur on output (as should be)
- fixed bug '\n' no causing a LF.
-* fixed bug that reset terminal colors regardless of whether we use color
- or not.
-* Better support for ACS (not quite complete).
-* fixed bug in wvline().
-* added curs_set().
-* changed from signal() to sigaction().
-* re-included the contents of important.patch into source.
-
-#### ncurses 0.3 -> ncurses 0.4 #### Feb 3, 1993 ####
-* Addition of more KEY_* definitions.
-* Addition of function prototypes.
-* Addition of several missing functions.
-* No more crashes if screen size is undefined (use SIGWINCH handler).
-* added a handler to cleanup after SIGSEGV (hopefully never needed).
-* changed SRCDIR from /etc/term to /usr/lib/terminfo.
-* renamed compile/dump to tic/untic.
-* New scrolling code.
-* fixed bug that reversed the sense of nl() and nonl().
-
-#### 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.
-* no more core dumps if you don't have a terminfo entry.
-* support for LINES and COLUMNS environment variables.
-* support for SIGWINCH signal.
-* added a handler for SIGINT for clean exits.
-
-#### ncurses 0.1 -> ncurses 0.2 #### Aug 14, 1992 ####
-* support for color.
-* support for PC graphic characters.
-* lib_trace.c updated to use stdarg.h and vprintf routines.
-* added gdc.c (Great Digital Clock) as an example of using color.
-
-#### ncurses -> ncurses 0.1 #### Jul 31, 1992 ####
-* replacing sgtty stuff by termios stuff.
-* ANSIfication of some functions.
-* Disabling cost analysis 'cause it's incorrect.
-* A quick hack for a terminfo entry.
diff --git a/ncurses-5.2/README b/ncurses-5.2/README
deleted file mode 100644
index 52aa79d..0000000
--- a/ncurses-5.2/README
+++ /dev/null
@@ -1,175 +0,0 @@
--- $Id$
--------------------------------------------------------------------------------
- README file for the ncurses package
-
-See the file ANNOUNCE for a summary of ncurses features and ports.
-See the file INSTALL for instructions on how to build and install ncurses.
-See the file NEWS for a release history and bug-fix notes.
-See the file TO-DO for things that still need doing, including known bugs.
-
-Browse the file misc/ncurses-intro.html for narrative descriptions of how
-to use ncurses and the panel, menu, and form libraries.
-
-Browse the file doc/html/hackguide.html for a tour of the package internals.
-
-ROADMAP AND PACKAGE OVERVIEW:
-
-You should be reading this file in a directory called: ncurses-d.d, where d.d
-is the current version number (see the dist.mk file in this directory for
-that). There should be a number of subdirectories, including `c++', `form',
-`man', `menu', `misc', `ncurses', `panel', `progs', `test', 'tack' and `Ada95'.
-(The 'tack' program may be distributed separately).
-
-A full build/install of this package typically installs several libraries, a
-handful of utilities, and a database hierarchy. Here is an inventory of the
-pieces:
-
-The libraries are:
-
- libncurses.a (normal)
- libncurses.so (shared)
- libncurses_g.a (debug and trace code enabled)
- libncurses_p.a (profiling enabled)
-
- libpanel.a (normal)
- libpanel.so (shared)
- libpanel_g.a (debug and trace code enabled)
-
- libmenu.a (normal)
- libmenu.so (shared)
- libmenu_g.a (debug enabled)
-
- libform.a (normal)
- libform.so (shared)
- libform_g.a (debug enabled)
-
-The ncurses libraries implement the curses API. The panel, menu and forms
-libraries implement clones of the SVr4 panel, menu and forms APIs. The source
-code for these lives in the `ncurses', `panel', `menu', and `form' directories
-respectively.
-
-In the `c++' directory, you'll find code that defines an interface to the
-curses, forms, menus and panels library packaged as C++ classes, and a demo program in C++
-to test it. These class definition modules are not installed by the 'make
-install.libs' rule as libncurses++.
-
-In the `Ada95' directory, you'll find code and documentation for an
-Ada95 binding of the curses API, to be used with the GNAT compiler.
-This binding is built by a normal top-level `make' if configure detects
-an usable version of GNAT (3.10 or above). It is not installed automatically.
-See the Ada95 directory for more build and installation instructions and
-for documentation of the binding.
-
-To do its job, the ncurses code needs your terminal type to be set in the
-environment variable TERM (normally set by your OS; under UNIX, getty(1)
-typically does this, but you can override it in your .profile); and, it needs a
-database of terminal descriptions in which to look up your terminal type's
-capabilities.
-
-In older (V7/BSD) versions of curses, the database was a flat text file,
-/etc/termcap; in newer (USG/USL) versions, the database is a hierarchy of
-fast-loading binary description blocks under /usr/lib/terminfo. These binary
-blocks are compiled from an improved editable text representation called
-`terminfo' format (documented in man/terminfo.5). The ncurses library can use
-either /etc/termcap or the compiled binary terminfo blocks, but prefers the
-second form.
-
-In the `misc' directory, there is a text file terminfo.src, in editable
-terminfo format, which can be used to generate the terminfo binaries (that's
-what make install.data does). If the package was built with the
---enable-termcap option enabled, and the ncurses library cannot find a terminfo
-description for your terminal, it will fall back to the termcap file supplied
-with your system (which the ncurses package installation leaves strictly
-alone).
-
-The utilities are as follows:
-
- tic -- terminfo source to binary compiler
- infocmp -- terminfo binary to source decompiler/comparator
- clear -- emits clear-screen for current terminal
- tput -- shell-script access to terminal capabilities.
- toe -- table of entries utility
- tset -- terminal-initialization utility
-
-The first two (tic and infocmp) are used for manipulating terminfo
-descriptions; the next two (clear and tput) are for use in shell scripts. The
-last (tset) is provided for 4.4BSD compatibility. The source code for all of
-these lives in the `progs' directory.
-
-Detailed documentation for all libraries and utilities can be found in the
-`man' and `doc' directories. An HTML introduction to ncurses, panels, and
-menus programming lives in the `doc/html' directory. Manpages in HTML format
-are under `doc/html/man'.
-
-The `test' directory contains programs that can be used to verify or
-demonstrate the functions of the ncurses libraries. See test/README for
-descriptions of these programs. Notably, the `ncurses' utility is designed to
-help you systematically exercise the library functions.
-
-AUTHORS:
-
-Pavel Curtis:
- wrote the original ncurses
-
-Zeyd M. Ben-Halim:
- port of original to Linux and many enhancements.
-
-Thomas Dickey (maintainer for 1.9.9g through 4.1, resuming with FSF's 5.0):
- configuration scripts, porting, mods to adhere to XSI Curses in the
- areas of background color, terminal modes. Also memory leak testing,
- the wresize, default colors and key definition extensions and numerous
- bug fixes (more than half of those enumerated in NEWS beginning with
- the internal release 1.8.9).
-
-Florian La Roche (official maintainer for FSF's ncurses 4.2)
- Beginning with release 4.2, ncurses is distributed under an MIT-style
- license.
-
-Eric S. Raymond:
- the man pages, infocmp(1), tput(1), clear(1), captoinfo(1), tset(1),
- toe(1), most of tic(1), trace levels, the HTML intro, wgetnstr() and
- many other entry points, the cursor-movement optimization, the
- scroll-pack optimizer for vertical motions, the mouse interface and
- xterm mouse support, and the ncurses test program.
-
-Juergen Pfeifer
- The menu and form libraries, C++ bindings for ncurses, menus, forms and
- panels, as well as the Ada95 binding. Ongoing support for panel.
-
-CONTRIBUTORS:
-
-Alexander V. Lukyanov
- for numerous fixes and improvements to the optimization logic.
-
-David MacKenzie
- for first-class bug-chasing and methodical testing.
-
-Ross Ridge
- for the code that hacks termcap parameterized strings into terminfo.
-
-Warren Tucker and Gerhard Fuernkranz,
- for writing and sending the panel library.
-
-Hellmuth Michaelis,
- for many patches and testing the optimization code.
-
-Eric Newton, Ulrich Drepper, and Anatoly Ivasyuk:
- the C++ code.
-
-Jonathan Ross,
- for lessons in using sed.
-
-Keith Bostic (maintainer of 4.4BSD curses)
- for help, criticism, comments, bug-finding, and being willing to
- deep-six BSD curses for this one when it grew up.
-
-Richard Stallman,
- for his commitment to making ncurses free software.
-
-Countless other people have contributed by reporting bugs, sending fixes,
-suggesting improvements, and generally whining about ncurses :-)
-
-BUGS:
- See the INSTALL file for bug and developer-list addresses.
- The Hacker's Guide in the doc directory includes some guidelines
- on how to report bugs in ways that will get them fixed most quickly.
diff --git a/ncurses-5.2/README.emx b/ncurses-5.2/README.emx
deleted file mode 100644
index 7285130..0000000
--- a/ncurses-5.2/README.emx
+++ /dev/null
@@ -1,45 +0,0 @@
--- $Id$
--- Author: Thomas Dickey
--------------------------------------------------------------------------------
-
-You can build ncurses on OS/2 in the EMX environment. But you must build and
-acquire tools. Not all of the tools distributed with EMX work properly, and
-some additional ones are required.
-
-First, the configure script distributed with ncurses will not run as-is in EMX.
-You can generate a new one if you have autoconf built for EMX. You will need
-the EMX development tools, of course. Get these programs to start:
-
- GNU m4 program (version 1.4)
- GNU autoconf (version 2.13).
- GNU patch (version 2.5)
-
-Apply the autoconf patches from
-
- http://dickey.his.com/autoconf
- ftp://dickey.his.com/autoconf
-
-These are ordered by date:
-
- autoconf-2.13-20000819.patch.gz
- autoconf-2.13-20000819-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,
-using a similar environment (he prefers using the 'ash' shell). Newer versions
-may fix these problems:
-
- + The pdksh program distributed at Hobbes and Leo (with a 1996 date) is
- defective. It does not process "here documents" correctly (which
- renders it useless for running the autoconf script). I built my own
- copy of pdksh 5.2.13, which does have the bug corrected (documented
- in the change log for pdksh).
-
- + I also built from sources (because the distributed binaries did not
- work) the cmp, diff programs.
-
- Other required utilities such as ar, cat, chmod, cp, gawk, grep, mv,
- ls, rm, mkdir, sed, sort and tr worked.
-
-Once you have autoconf patched and installed, run 'autoconf' from the top-level
-directory of ncurses to generate the EMX-specific configure script.
diff --git a/ncurses-5.2/README.glibc b/ncurses-5.2/README.glibc
deleted file mode 100644
index 7d52269..0000000
--- a/ncurses-5.2/README.glibc
+++ /dev/null
@@ -1,5 +0,0 @@
-To compile this as an add-on for glibc, unpack it in the glibc source
-tree and put ncurses on the add-on list when you do configure.
-
-hjl@gnu.ai.mit.edu
-03/21/1997
diff --git a/ncurses-5.2/TO-DO b/ncurses-5.2/TO-DO
deleted file mode 100644
index 7465e6f..0000000
--- a/ncurses-5.2/TO-DO
+++ /dev/null
@@ -1,251 +0,0 @@
--- $Id$
-
-SHORT-TERM TO-DO ITEMS:
-
-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.
-
-* 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.
-
-* Magic cookie support does not work, since the logic does not take into account
- refresh. Also, the initial optimize does not adjust the current location
- when a cookie is emitted.
-
-* Scrolling optimization has holes: for example, it forces repaints of the
- screen between calls to refresh().
-
-* SVr4 uses slightly different rules for determining when softkeys are shown.
- For example, they are initially displayed (before the ncurses 'e' test
- activates them), and a touchwin can apparently also force them to be
- displayed.
-
-+ The code departs from perfect 8-bit cleanness in one respect; you cannot
- specify a character \200 as part of a capability string, because the terminfo
- library interprets \200 as a request to embed NUL (\000) at that point. This
- is a legacy terminfo property we can't mess with.
-
-* The window classes defined in the c++ subdirectory need documentation.
- Some C++ programmer could earn a lot of good karma by doing this...
-
-Portability (or lack thereof):
-
-* Users of older System V UNIXes (but not Solaris, and probably not SVr4)
- may trip over a known problem with the signal-handling code which causes
- abrupt termination of ncurses applications following resume from a ^Z
- suspend (this problem was first seen running lynx). You will not see
- this problem if you are running Linux or one of the 4.4BSD derivatives
- like FreeBSD, NetBSD, or BSDI. For details, see the analysis in the
- header comment of ncurses/lib_tstp.c.
-
-* In theory, vwprintw and vwscanf are supposed to use the older varargs.h
- interface for handling variadic argument lists. Linux doesn't have
- varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So
- these functions use stdargs instead. This is unlikely to be a problem
- unless you're building ncurses on a System V old enough to only have
- varargs.h. (Solaris 2.5.1 uses the stdarg.h binding as well).
-
-* If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to
- have a native vsscanf(3) in its library, vwscanw() will not work. You lose.
- (It should work on any System V, however). If you want to fix this, add
- an implementation to ncurses/vsscanf.c.
-
-* The demo build for the c++ library craps out with many link errors under gcc
- 2.6.3. We're told the C++ support in 2.6.3 is broken and that the right
- fix is to upgrade to 2.7.0. This demo is also known to not build with
- the Sun SPARCworks 4.1 C++ compiler, due to a problem resolving templates.
-
-* Under Ultrix, configure craps out (Ultrix sh is lame). Run it under ksh.
-
-* We've not tested the configure script with cross-compilers. The autoconf
- tests are supposed to be able to support this (please report bugs). You will
- have to configure and build in two steps. The first step must create the
- automatically-generated sources (e.g., comp_captab.c) on your host machine.
- Then, run "make mostlyclean", remove config.* from the top-level directory
- and configure for the cross-compiler.
-
-+ terminfo.5 does not format with the SunOS (and most other platform's) tbl
- utility because it relies on a diversion for each table entry. Get the groff
- package.
-
-Untested features:
-
-* The code for the HP color model using set_color_pair is untested.
-
-* The code for handling soft labels on a terminal type with built-in support
- for them (num_labels > 0, label_height, label_width, label_format, label_off,
- label_on, plab_norm, lab_f*) has not been tested. The label_format and
- lab_f* capabilities aren't presently used.
-
-LONGER-TERM TO-DO ITEMS:
-
-1. Extended COSE conformance
-
-There is an XPG4 standard recently released which describes a superset
-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.
-
-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.
-
-2. DOS port
-
-Only 16 of the 55 files in the library depend on the terminfo format.
-It should be possible to further kernelize the package, then rewrite
-a small number of core files to produce a functionally-compatible
-port that would do updates to a memory-mapped screen area. The first
-result of this would be a DOS port.
-
-3. X port
-
-It would be nice if ncurses could recognize when it was running under X and
-maintain its own window. With this feature, all ncurses programs would
-automatically become X programs. The challenge is to handle resize events
-properly.
-
-4. Unused capabilities
-
-The currently unused capabilities fall naturally into several groups:
-
-A. Status-line capabilities:
-
- Booleans: has_status_line, status_line_esc_ok.
- Numerics: width_status_line.
- Strings: dis_status_line, from_status_line, to_status_line.
-
-System V Release 1 curses made no use of these at all. SVr4's use, if
-any, is unknown. From the AT&T termcap file it looks like curses, in general,
-shouldn't use them; terminal variants with status lines have their line count
-decremented by 1, suggesting that curses is supposed to leave the status line
-alone.
-
-B. Printer capabilities:
-
- Boolean: col_addr_glitch, cr_cancels_micro_mode, has_print_wheel,
- row_addr_glitch, semi_auto_right_margin, cpi_changes_res,
- lpi_changes_res.
- Numeric: buffer_capacity, dot_horz_spacing, dot_vert_spacing,
- max_micro_address, max_micro_jump, micro_col_size,
- micro_line_size, number_of_pins, output_res_char,
- output_res_line, output_res_horz_inch, print_rate,
- wide_char_size, bit_image_entwining, bit_image_type.
- String: down_half_line, form_feed, up_half_line, set_left_margin,
- set_right_margin, clear_margins, change_char_pitch
- ... set_page_length (all the SVr4 printer caps),
-
-Curses doesn't use these.
-
-C. Printer-control capabilities:
-
- Boolean: prtr_silent.
- Strings: print_screen, prtr_on, prtr_off, prtr_non.
-
-Curses doesn't use these.
-
-D. Dialer strings:
-
- Strings: hangup, dial_phone, quick_dial, tone, pulse, flash_hook,
- fixed_pause, wait_tone.
-
-Curses doesn't use these.
-
-E. Window and virtual-terminal capabilities:
-
- Numerics: maximum_windows, virtual_terminal.
- Strings: req_for_input, create_window, goto_window, set_window.
-
-These seem to be fossils from some AT&T experiments on character-based
-window systems that never escaped the lab. The virtual_terminal cap had
-something to do with building terminal emulations into tty line disciplines.
-
-F. Unused VDT capabilities:
-
- Booleans: erase_overstrike, has_meta_key, insert_null_glitch,
- move_insert, dest_tabs_magic_smso, transparent_underline,
- needs_xon_xoff, hard_cursor.
- Numerics: lines_of_memory, buttons.
- Strings: pkey_key, pkey_local, pkey_xmit, underline_char,
- enter_xon_mode, exit_xon_mode, xon_character, xoff_character,
- display_clock, remove_clock, user[0-5], display_pc_char,
- enter_scancode_mode, exit_scancode_mode, pc_term_options,
- scancode_escape, alt_scancode_esc.
-
-These are the potentially important ones for ncurses. Notes:
-
- i) ncurses doesn't need move_insert; it never uses cup/hpa/vpa while
- insert_mode is on.
-
- ii) We probably don't care about dest_tabs_magic_smso; only
- Telerays used it and they're all long obsolete.
-
-
diff --git a/ncurses-5.2/aclocal.m4 b/ncurses-5.2/aclocal.m4
deleted file mode 100644
index 73f2dbd..0000000
--- a/ncurses-5.2/aclocal.m4
+++ /dev/null
@@ -1,2573 +0,0 @@
-dnl***************************************************************************
-dnl Copyright (c) 1998-2000 Free Software Foundation, Inc. *
-dnl *
-dnl Permission is hereby granted, free of charge, to any person obtaining a *
-dnl copy of this software and associated documentation files (the *
-dnl "Software"), to deal in the Software without restriction, including *
-dnl without limitation the rights to use, copy, modify, merge, publish, *
-dnl distribute, distribute with modifications, sublicense, and/or sell *
-dnl copies of the Software, and to permit persons to whom the Software is *
-dnl furnished to do so, subject to the following conditions: *
-dnl *
-dnl The above copyright notice and this permission notice shall be included *
-dnl in all copies or substantial portions of the Software. *
-dnl *
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-dnl *
-dnl Except as contained in this notice, the name(s) of the above copyright *
-dnl holders shall not be used in advertising or otherwise to promote the *
-dnl sale, use or other dealings in this Software without prior written *
-dnl authorization. *
-dnl***************************************************************************
-dnl
-dnl Author: Thomas E. Dickey 1996,1997,1998,1999,2000
-dnl
-dnl $Id$
-dnl Macros used in NCURSES auto-configuration script.
-dnl
-dnl See http://dickey.his.com/autoconf/ for additional information.
-dnl
-dnl ---------------------------------------------------------------------------
-dnl ---------------------------------------------------------------------------
-dnl Construct the list of include-options for the C programs in the Ada95
-dnl binding.
-AC_DEFUN([CF_ADA_INCLUDE_DIRS],
-[
-ACPPFLAGS="$ACPPFLAGS -I. -I../../include"
-if test "$srcdir" != "."; then
- ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include"
-fi
-if test "$GCC" != yes; then
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
- fi
- else
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
- fi
-fi
-AC_SUBST(ACPPFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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,[
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
- "" \
- -qlanglvl=ansi \
- -std1 \
- -Ae \
- "-Aa -D_HPUX_SOURCE" \
- -Xc
-do
- CFLAGS="$cf_save_CFLAGS $cf_arg"
- AC_TRY_COMPILE(
-[
-#ifndef CC_HAS_PROTOS
-#if !defined(__STDC__) || (__STDC__ != 1)
-choke me
-#endif
-#endif
-],[
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};],
- [cf_cv_ansi_cc="$cf_arg"; break])
-done
-CFLAGS="$cf_save_CFLAGS"
-])
-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
- CFLAGS="$CFLAGS $cf_cv_ansi_cc"
-else
- AC_DEFINE(CC_HAS_PROTOS)
-fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl For programs that must use an ANSI compiler, obtain compiler options that
-dnl will make it recognize prototypes. We'll do preprocessor checks in other
-dnl macros, since tools such as unproto can fake prototypes, but only part of
-dnl the preprocessor.
-AC_DEFUN([CF_ANSI_CC_REQD],
-[AC_REQUIRE([CF_ANSI_CC_CHECK])
-if test "$cf_cv_ansi_cc" = "no"; then
- AC_ERROR(
-[Your compiler does not appear to recognize prototypes.
-You have the following choices:
- a. adjust your compiler options
- b. get an up-to-date compiler
- c. use a wrapper such as unproto])
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
-dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
-dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
-dnl
-dnl Treat the configuration-variable specially here, since we're directly
-dnl substituting its value (i.e., 1/0).
-AC_DEFUN([CF_BOOL_DECL],
-[
-AC_MSG_CHECKING([for builtin bool type])
-AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[
- AC_TRY_COMPILE([
-#include <stdio.h>
-#include <sys/types.h>
-],[bool x = false],
- [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
- [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
- ])
-if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
-then AC_MSG_RESULT(yes)
-else AC_MSG_RESULT(no)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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.
-AC_DEFUN([CF_BOOL_SIZE],
-[
-AC_MSG_CHECKING([for size of bool])
-AC_CACHE_VAL(cf_cv_type_of_bool,[
- rm -f cf_test.out
- AC_TRY_RUN([
-#include <stdlib.h>
-#include <stdio.h>
-#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
-main()
-{
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
- bool x = true;
- if ((bool)(-x) >= 0)
- fputs("unsigned ", fp);
- if (sizeof(x) == sizeof(int)) fputs("int", fp);
- else if (sizeof(x) == sizeof(char)) fputs("char", fp);
- else if (sizeof(x) == sizeof(short))fputs("short",fp);
- else if (sizeof(x) == sizeof(long)) fputs("long", fp);
- fclose(fp);
- }
- exit(0);
-}
- ],
- [cf_cv_type_of_bool=`cat cf_test.out`],
- [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
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Determine the default configuration into which we'll install ncurses. This
-dnl can be overridden by the user's command-line options. There's two items to
-dnl look for:
-dnl 1. the prefix (e.g., /usr)
-dnl 2. the header files (e.g., /usr/include/ncurses)
-dnl We'll look for a previous installation of ncurses and use the same defaults.
-dnl
-dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
-dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
-dnl programs from a vendor's.
-AC_DEFUN([CF_CFG_DEFAULTS],
-[
-AC_MSG_CHECKING(for prefix)
-if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
- openbsd*|netbsd*|freebsd*|linux*)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
- ;;
- esac
-fi
-AC_MSG_RESULT($prefix)
-
-if test "x$prefix" = "xNONE" ; then
-AC_MSG_CHECKING(for default include-directory)
-test -n "$verbose" && echo 1>&AC_FD_MSG
-for cf_symbol in \
- $includedir \
- $includedir/ncurses \
- $prefix/include \
- $prefix/include/ncurses \
- /usr/local/include \
- /usr/local/include/ncurses \
- /usr/include \
- /usr/include/ncurses
-do
- cf_dir=`eval echo $cf_symbol`
- if test -f $cf_dir/curses.h ; then
- if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
- includedir="$cf_symbol"
- test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
- break
- fi
- fi
- test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
-done
-AC_MSG_RESULT($includedir)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if the terminal-capability database functions are available. If not,
-dnl ncurses has a much-reduced version.
-AC_DEFUN([CF_CGETENT],[
-AC_MSG_CHECKING(for terminal-capability database functions)
-AC_CACHE_VAL(cf_cv_cgetent,[
-AC_TRY_LINK([
-#include <stdlib.h>],[
- char temp[128];
- char *buf = temp;
- char *db_array = temp;
- cgetent(&buf, /* int *, */ &db_array, "vt100");
- cgetcap(buf, "tc", '=');
- cgetmatch(buf, "tc");
- ],
- [cf_cv_cgetent=yes],
- [cf_cv_cgetent=no])
-])
-AC_MSG_RESULT($cf_cv_cgetent)
-test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if we're accidentally using a cache from a different machine.
-dnl Derive the system name, as a check for reusing the autoconf cache.
-dnl
-dnl If we've packaged config.guess and config.sub, run that (since it does a
-dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
-dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
-dnl which is useful in cross-compiles.
-AC_DEFUN([CF_CHECK_CACHE],
-[
-if test -f $srcdir/config.guess ; then
- ifelse([$1],,[AC_CANONICAL_HOST],[$1])
- system_name="$host_os"
-else
- system_name="`(uname -s -r) 2>/dev/null`"
- if test -z "$system_name" ; then
- system_name="`(hostname) 2>/dev/null`"
- fi
-fi
-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
-AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
-
-test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && AC_MSG_RESULT("Configuring for $cf_cv_system_name")
-
-if test ".$system_name" != ".$cf_cv_system_name" ; then
- AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
- AC_ERROR("Please remove config.cache and try again.")
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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 (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],
-[
-AC_MSG_CHECKING(if external $1 is declared)
-AC_CACHE_VAL(cf_cv_dcl_$1,[
- AC_TRY_COMPILE([
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
-#include <errno.h> ],
- [long x = (long) $1],
- [eval 'cf_cv_dcl_'$1'=yes'],
- [eval '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)
- AC_DEFINE_UNQUOTED($cf_result)
-fi
-
-# It's possible (for near-UNIX clones) that the data doesn't exist
-CF_CHECK_EXTERN_DATA($1,int)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check for existence of external data in the current set of libraries. If
-dnl we can modify it, it's real enough.
-dnl $1 = the name to check
-dnl $2 = its type
-AC_DEFUN([CF_CHECK_EXTERN_DATA],
-[
-AC_MSG_CHECKING(if external $1 exists)
-AC_CACHE_VAL(cf_cv_have_$1,[
- 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)
-
-if test "$cf_result" = yes ; then
- eval 'cf_result=HAVE_'$1
- CF_UPPER(cf_result,$cf_result)
- AC_DEFINE_UNQUOTED($cf_result)
-fi
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if the C++ compiler accepts duplicate parameter initialization. This
-dnl is a late feature for the standard and is not in some recent compilers
-dnl (1999/9/11).
-AC_DEFUN([CF_CPP_PARAM_INIT],
-[
-if test "$CXX" = yes ; then
-AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
- AC_LANG_CPLUSPLUS
- AC_TRY_RUN([
-class TEST {
-private:
- int value;
-public:
- TEST(int x = 1);
- ~TEST();
-};
-
-TEST::TEST(int x = 1) // some compilers do not like second initializer
-{
- value = x;
-}
-void main() { }
-],
- [cf_cv_cpp_param_init=yes],
- [cf_cv_cpp_param_init=no],
- [cf_cv_cpp_param_init=unknown])
-])
-fi
-test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
-])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)
- DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
-done
-for cf_dir in $DIRS_TO_MAKE
-do
- test ! -d $cf_dir && mkdir $cf_dir
-done
-AC_SUBST(DIRS_TO_MAKE)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if 'errno' is declared in <errno.h>
-AC_DEFUN([CF_ERRNO],
-[
-CF_CHECK_ERRNO(errno)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
-dnl math.h and builtin.h, only for ncurses
-AC_DEFUN([CF_ETIP_DEFINES],
-[
-AC_MSG_CHECKING(for special defines needed for etip.h)
-cf_save_CXXFLAGS="$CXXFLAGS"
-cf_result="none"
-for cf_math in "" MATH_H
-do
-for cf_excp in "" MATH_EXCEPTION
-do
- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu"
- test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
- test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
-AC_TRY_COMPILE([
-#include <etip.h.in>
-],[],[
- test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
- test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
- cf_result="$cf_math $cf_excp"
- break
-],[])
-done
-done
-AC_MSG_RESULT($cf_result)
-CXXFLAGS="$cf_save_CXXFLAGS"
-])
-dnl ---------------------------------------------------------------------------
-dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
-dnl is found, add our own version of memmove to the list of objects.
-AC_DEFUN([CF_FUNC_MEMMOVE],
-[
-AC_CHECK_FUNC(memmove,,[
-AC_CHECK_FUNC(bcopy,[
- AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
- AC_TRY_RUN([
-int main() {
- static char data[] = "abcdefghijklmnopqrstuwwxyz";
- char temp[40];
- bcopy(data, temp, sizeof(data));
- bcopy(temp+10, temp, 15);
- bcopy(temp+5, temp+15, 10);
- exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
-}
- ],
- [cf_cv_good_bcopy=yes],
- [cf_cv_good_bcopy=no],
- [cf_cv_good_bcopy=unknown])
- ])
- ],[cf_cv_good_bcopy=no])
- if test "$cf_cv_good_bcopy" = yes ; then
- AC_DEFINE(USE_OK_BCOPY)
- else
- AC_DEFINE(USE_MY_MEMMOVE)
- fi
-])])dnl
-dnl ---------------------------------------------------------------------------
-dnl See if the poll function really works. Some platforms have poll(), but
-dnl it does not work for terminals or files.
-AC_DEFUN([CF_FUNC_POLL],[
-AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
-AC_TRY_RUN([
-#include <stdio.h>
-#ifdef HAVE_POLL_H
-#include <poll.h>
-#else
-#include <sys/poll.h>
-#endif
-int main() {
- struct pollfd myfds;
- int ret;
-
- myfds.fd = 0;
- myfds.events = POLLIN;
-
- ret = poll(&myfds, 1, 100);
- exit(ret != 0);
-}],
- [cf_cv_working_poll=yes],
- [cf_cv_working_poll=no],
- [cf_cv_working_poll=unknown])])
-test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some old/broken variations define tcgetattr() only as a macro in
-dnl termio(s).h
-AC_DEFUN([CF_FUNC_TERMIOS],[
-AC_REQUIRE([CF_STRUCT_TERMIOS])
-AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
-AC_TRY_LINK([
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#define TTY struct termios
-#else
-#ifdef HAVE_TERMIO_H
-#include <termio.h>
-#define TTY struct termio
-#endif
-#endif
-],[
-TTY foo;
-tcgetattr(1, &foo);],
-[cf_cv_have_tcgetattr=yes],
-[cf_cv_have_tcgetattr=no])])
-test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Test for availability of useful gcc __attribute__ directives to quiet
-dnl compiler warnings. Though useful, not all are supported -- and contrary
-dnl to documentation, unrecognized directives cause older compilers to barf.
-AC_DEFUN([CF_GCC_ATTRIBUTES],
-[
-if test "$GCC" = yes
-then
-cat > conftest.i <<EOF
-#ifndef GCC_PRINTF
-#define GCC_PRINTF 0
-#endif
-#ifndef GCC_SCANF
-#define GCC_SCANF 0
-#endif
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-EOF
-if test "$GCC" = yes
-then
- AC_CHECKING([for $CC __attribute__ directives])
- changequote(,)dnl
-cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-#include "confdefs.h"
-#include "conftest.h"
-#include "conftest.i"
-#if GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-#if GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
-EOF
- changequote([,])dnl
- for cf_attribute in scanf printf unused noreturn
- do
- CF_UPPER(CF_ATTRIBUTE,$cf_attribute)
- cf_directive="__attribute__(($cf_attribute))"
- echo "checking for $CC $cf_directive" 1>&AC_FD_CC
- case $cf_attribute in
- scanf|printf)
- cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE 1
-EOF
- ;;
- *)
- cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE $cf_directive
-EOF
- ;;
- esac
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
- cat conftest.h >>confdefs.h
-# else
-# sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h
- fi
- done
-else
- fgrep define conftest.i >>confdefs.h
-fi
-rm -rf conftest*
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if the compiler supports useful warning options. There's a few that
-dnl we don't use, simply because they're too noisy:
-dnl
-dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
-dnl -Wredundant-decls (system headers make this too noisy)
-dnl -Wtraditional (combines too many unrelated messages, only a few useful)
-dnl -Wwrite-strings (too noisy, but should review occasionally)
-dnl -pedantic
-dnl
-AC_DEFUN([CF_GCC_WARNINGS],
-[
-if test "$GCC" = yes
-then
- changequote(,)dnl
- cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
-EOF
- changequote([,])dnl
- AC_CHECKING([for $CC warning options])
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-W -Wall"
- cf_warn_CONST=""
- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
- for cf_opt in \
- Wbad-function-cast \
- Wcast-align \
- Wcast-qual \
- Winline \
- Wmissing-declarations \
- Wmissing-prototypes \
- Wnested-externs \
- Wpointer-arith \
- Wshadow \
- Wstrict-prototypes $cf_warn_CONST
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
- fi
- done
- rm -f conftest*
- CFLAGS="$cf_save_CFLAGS"
-fi
-AC_SUBST(EXTRA_CFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Verify that a test program compiles and runs with GNAT
-dnl $cf_ada_make is set to the program that compiles/links
-AC_DEFUN([CF_GNAT_TRY_RUN],
-[
-rm -f conftest*
-cat >>conftest.ads <<CF_EOF
-$1
-CF_EOF
-cat >>conftest.adb <<CF_EOF
-$2
-CF_EOF
-if ( $cf_ada_make conftest 1>&AC_FD_CC 2>&1 ) ; then
- if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
-ifelse($3,, :,[ $3])
-ifelse($4,,,[ else
- $4])
- fi
-ifelse($4,,,[else
- $4])
-fi
-rm -f conftest*
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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>>;}'`
-case $cf_cv_gnat_version in
- 3.1[1-9]*|3.[2-9]*|[4-9].*)
- cf_cv_prog_gnat_correct=yes
- ;;
- *) echo Unsupported GNAT version $cf_cv_gnat_version. Required is 3.11 or better. Disabling Ada95 binding.
- cf_cv_prog_gnat_correct=no
- ;;
-esac
-case $cf_cv_gnat_version in
- 3.1*|[4-9].*)
- cf_compile_generics=generics
- cf_generic_objects="\$(GENOBJS)"
- ;;
- *) cf_compile_generics=
- cf_generic_objects=
- ;;
-esac
-changequote([, ])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.
-AC_DEFUN([CF_GPP_LIBRARY],
-[
-cf_cxx_library=unknown
-case $cf_cv_system_name in #(vi
-os2*) #(vi
- cf_gpp_libname=gpp
- ;;
-*)
- cf_gpp_libname=g++
- ;;
-esac
-if test "$ac_cv_prog_gxx" = yes; then
- AC_MSG_CHECKING([for lib$cf_gpp_libname])
- cf_save="$LIBS"
- LIBS="$LIBS -l$cf_gpp_libname"
- AC_TRY_LINK([
-#include <$cf_gpp_libname/builtin.h>
- ],
- [two_arg_error_handler_t foo2 = lib_error_handler],
- [cf_cxx_library=yes
- CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
- if test "$cf_gpp_libname" = cpp ; then
- AC_DEFINE(HAVE_GPP_BUILTIN_H)
- else
- AC_DEFINE(HAVE_GXX_BUILTIN_H)
- fi],
- [AC_TRY_LINK([
-#include <builtin.h>
- ],
- [two_arg_error_handler_t foo2 = lib_error_handler],
- [cf_cxx_library=yes
- CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
- AC_DEFINE(HAVE_BUILTIN_H)],
- [cf_cxx_library=no])])
- LIBS="$cf_save"
- AC_MSG_RESULT($cf_cxx_library)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
-AC_DEFUN([CF_HELP_MESSAGE],
-[AC_DIVERT_HELP([$1])dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Construct the list of include-options according to whether we're building
-dnl in the source directory or using '--srcdir=DIR' option. If we're building
-dnl with gcc, don't append the includedir if it happens to be /usr/include,
-dnl since that usually breaks gcc's shadow-includes.
-AC_DEFUN([CF_INCLUDE_DIRS],
-[
-CPPFLAGS="$CPPFLAGS -I. -I../include"
-if test "$srcdir" != "."; then
- CPPFLAGS="$CPPFLAGS -I\$(srcdir)/../include"
-fi
-if test "$GCC" != yes; then
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
- fi
- else
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
- fi
-fi
-AC_SUBST(CPPFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if we have either a function or macro for 'isascii()'.
-AC_DEFUN([CF_ISASCII],
-[
-AC_MSG_CHECKING(for isascii)
-AC_CACHE_VAL(cf_cv_have_isascii,[
- AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
- [cf_cv_have_isascii=yes],
- [cf_cv_have_isascii=no])
-])dnl
-AC_MSG_RESULT($cf_cv_have_isascii)
-test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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='' ;;
- *) LIB_PREFIX='lib' ;;
- esac
-ifelse($1,,,[$1=$LIB_PREFIX])
- AC_SUBST(LIB_PREFIX)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Append definitions and rules for the given models to the subdirectory
-dnl Makefiles, and the recursion rule for the top-level Makefile. If the
-dnl subdirectory is a library-source directory, modify the LIBRARIES list in
-dnl the corresponding makefile to list the models that we'll generate.
-dnl
-dnl For shared libraries, make a list of symbolic links to construct when
-dnl generating each library. The convention used for Linux is the simplest
-dnl one:
-dnl lib<name>.so ->
-dnl lib<name>.so.<major> ->
-dnl lib<name>.so.<maj>.<minor>
-AC_DEFUN([CF_LIB_RULES],
-[
-CF_LIB_PREFIX(cf_prefix)
-AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $srcdir/$cf_dir/modules; then
-
- cf_libs_to_make=
- for cf_item in $CF_LIST_MODELS
- do
- CF_LIB_SUFFIX($cf_item,cf_suffix)
- if test $cf_item = shared ; then
- if test "$cf_cv_do_symlinks" = yes ; then
- case "$cf_cv_shlib_version" in #(vi
- rel) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;; #(vi
- abi) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
- esac
- fi
- fi
- cf_libs_to_make="$cf_libs_to_make ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
- done
-
- if test $cf_dir = ncurses ; then
- 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"
- ;;
- esac
- fi
-
- sed -e "s@\@LIBS_TO_MAKE\@@$cf_libs_to_make@" \
- $cf_dir/Makefile >$cf_dir/Makefile.out
- mv $cf_dir/Makefile.out $cf_dir/Makefile
-
- $AWK -f $srcdir/mk-0th.awk \
- name=$cf_dir \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-
- for cf_item in $CF_LIST_MODELS
- do
- echo 'Appending rules for '$cf_item' model ('$cf_dir')'
- CF_UPPER(CF_ITEM,$cf_item)
- CF_LIB_SUFFIX($cf_item,cf_suffix)
- CF_OBJ_SUBDIR($cf_item,cf_subdir)
-
- # These dependencies really are for development, not
- # builds, but they are useful in porting, too.
- cf_depend="../include/ncurses_cfg.h"
- if test "$srcdir" = "."; then
- cf_reldir="."
- else
- cf_reldir="\$(srcdir)"
- fi
-
- if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
- cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
- elif test -f $srcdir/$cf_dir/curses.priv.h; then
- cf_depend="$cf_depend $cf_reldir/curses.priv.h"
- fi
-
- for cf_subset in $LIB_SUBSETS
- do
- $AWK -f $srcdir/mk-1st.awk \
- name=$cf_dir \
- traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
- model=$cf_subdir \
- prefix=$cf_prefix \
- suffix=$cf_suffix \
- subset=$cf_subset \
- ShlibVer=$cf_cv_shlib_version \
- DoLinks=$cf_cv_do_symlinks \
- rmSoLocs=$cf_cv_rm_so_locs \
- ldconfig="$LDCONFIG" \
- overwrite=$WITH_OVERWRITE \
- depend="$cf_depend" \
- target="$target" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- test $cf_dir = ncurses && WITH_OVERWRITE=no
- $AWK -f $srcdir/mk-2nd.awk \
- name=$cf_dir \
- traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
- model=$cf_subdir \
- subset=$cf_subset \
- srcdir=$srcdir \
- echo=$WITH_ECHO \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- done
- done
- fi
-
- echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >>Makefile
-done
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $cf_dir/Makefile ; then
- case "$cf_dir" in
- Ada95) #(vi
- echo 'libs \' >> Makefile
- echo 'install.libs \' >> Makefile
- echo 'uninstall.libs ::' >> Makefile
- echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >> Makefile
- ;;
- esac
- fi
-
- if test -f $srcdir/$cf_dir/modules; then
- echo >> Makefile
- if test -f $srcdir/$cf_dir/headers; then
-cat >> Makefile <<CF_EOF
-install.includes \\
-uninstall.includes \\
-CF_EOF
- fi
-if test "$cf_dir" != "c++" ; then
-echo 'lint \' >> Makefile
-fi
-cat >> Makefile <<CF_EOF
-libs \\
-lintlib \\
-install.libs \\
-uninstall.libs \\
-install.$cf_dir \\
-uninstall.$cf_dir ::
- cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@
-CF_EOF
- elif test -f $srcdir/$cf_dir/headers; then
-cat >> Makefile <<CF_EOF
-
-libs \\
-install.libs \\
-uninstall.libs \\
-install.includes \\
-uninstall.includes ::
- cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@
-CF_EOF
-fi
-done
-
-cat >> Makefile <<CF_EOF
-
-install.data \
-uninstall.data ::
- cd misc && \$(MAKE) \$(CF_MFLAGS) \[$]@
-
-install.man \
-uninstall.man ::
- cd man && \$(MAKE) \$(CF_MFLAGS) \[$]@
-
-distclean ::
- rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
- rm -f headers.sh headers.sed
- rm -rf \$(DIRS_TO_MAKE)
-CF_EOF
-
-# Special case: tack's manpage lives in its own directory.
-if test -d tack ; then
-if test -f $srcdir/$tack.h; then
-cat >> Makefile <<CF_EOF
-
-install.man \
-uninstall.man ::
- cd tack && \$(MAKE) \$(CF_MFLAGS) \[$]@
-CF_EOF
-fi
-fi
-
-dnl If we're installing into a subdirectory of /usr/include, etc., we should
-dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
-dnl anything, and will make it more standardized. It's awkward to decide this
-dnl at configuration because of quoting, so we'll simply make all headers
-dnl installed via a script that can do the right thing.
-
-rm -f headers.sed headers.sh
-
-dnl ( generating this script makes the makefiles a little tidier :-)
-echo creating headers.sh
-cat >headers.sh <<CF_EOF
-#! /bin/sh
-# This shell script is generated by the 'configure' script. It is invoked in a
-# subdirectory of the build tree. It generates a sed-script in the parent
-# directory that is used to adjust includes for header files that reside in a
-# subdirectory of /usr/include, etc.
-PRG=""
-while test \[$]# != 3
-do
-PRG="\$PRG \[$]1"; shift
-done
-DST=\[$]1
-REF=\[$]2
-SRC=\[$]3
-TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
-TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
-echo installing \$SRC in \$DST
-CF_EOF
-if test $WITH_CURSES_H = yes; then
- cat >>headers.sh <<CF_EOF
-case \$DST in
-/*/include/*)
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
- done
- ;;
-*)
- echo "" >> \$TMPSED
- ;;
-esac
-CF_EOF
-else
- cat >>headers.sh <<CF_EOF
-case \$DST in
-/*/include/*)
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- if test "\$NAME" = "curses.h"
- then
- echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
- NAME=ncurses.h
- fi
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
- done
- ;;
-*)
- echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
- ;;
-esac
-CF_EOF
-fi
-cat >>headers.sh <<CF_EOF
-rm -f \$TMPSRC
-sed -f \$TMPSED \$SRC > \$TMPSRC
-NAME=\`basename \$SRC\`
-CF_EOF
-if test $WITH_CURSES_H != yes; then
- cat >>headers.sh <<CF_EOF
-test "\$NAME" = "curses.h" && NAME=ncurses.h
-CF_EOF
-fi
-cat >>headers.sh <<CF_EOF
-eval \$PRG \$TMPSRC \$DST/\$NAME
-rm -f \$TMPSRC \$TMPSED
-CF_EOF
-
-chmod 0755 headers.sh
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $srcdir/$cf_dir/headers; then
- cat >>$cf_dir/Makefile <<CF_EOF
-\$(DESTDIR)\$(includedir) :
- \$(srcdir)/../mkinstalldirs \[$]@
-
-install \\
-install.libs \\
-install.includes :: \$(AUTO_SRC) \$(DESTDIR)\$(includedir) \\
-CF_EOF
- j=""
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- test -n "$j" && echo " $j \\" >>$cf_dir/Makefile
- j=$i
- done
- echo " $j" >>$cf_dir/Makefile
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile
- test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile
- done
-
- cat >>$cf_dir/Makefile <<CF_EOF
-
-uninstall \\
-uninstall.libs \\
-uninstall.includes ::
-CF_EOF
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- i=`basename $i`
- echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f $i)" >>$cf_dir/Makefile
- test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
- done
- fi
-done
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Compute the library file-suffix from the given model name
-dnl $1 = model name
-dnl $2 = variable to set
-dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
-AC_DEFUN([CF_LIB_SUFFIX],
-[
- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
- case $1 in
- libtool) $2='.la' ;;
- normal) $2='.a' ;;
- debug) $2='_g.a' ;;
- profile) $2='_p.a' ;;
- shared)
- case $cf_cv_system_name in
- hpux*) $2='.sl' ;;
- *) $2='.so' ;;
- esac
- esac
- test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Compute the string to append to -library from the given model name
-dnl $1 = model name
-dnl $2 = variable to set
-dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
-AC_DEFUN([CF_LIB_TYPE],
-[
- case $1 in
- libtool) $2='' ;;
- normal) $2='' ;;
- debug) $2='_g' ;;
- profile) $2='_p' ;;
- shared) $2='' ;;
- esac
- test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
-dnl only data (i.e., no functions), for example NeXT. On those systems we'll
-dnl have to provide wrappers for global tables to ensure they're linked
-dnl properly.
-AC_DEFUN([CF_LINK_DATAONLY],
-[
-AC_MSG_CHECKING([if data-only library module links])
-AC_CACHE_VAL(cf_cv_link_dataonly,[
- rm -f conftest.a
- changequote(,)dnl
- cat >conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-int testdata[3] = { 123, 456, 789 };
-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
- changequote(,)dnl
- cat >conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-int testfunc()
-{
-#if defined(NeXT)
- exit(1); /* I'm told this linker is broken */
-#else
- extern int testdata[3];
- return testdata[0] == 123
- && testdata[1] == 456
- && testdata[2] == 789;
-#endif
-}
-EOF
- 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
- fi
- rm -f conftest.$ac_ext func.o
- ( eval $ac_cv_prog_RANLIB conftest.a ) 2>&5 >/dev/null
- cf_saveLIBS="$LIBS"
- LIBS="conftest.a $LIBS"
- AC_TRY_RUN([
- int main()
- {
- extern int testfunc();
- exit (!testfunc());
- }
- ],
- [cf_cv_link_dataonly=yes],
- [cf_cv_link_dataonly=no],
- [cf_cv_link_dataonly=unknown])
- LIBS="$cf_saveLIBS"
- ])
-AC_MSG_RESULT($cf_cv_link_dataonly)
-test "$cf_cv_link_dataonly" = no && AC_DEFINE(BROKEN_LINKER)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Most Unix systems have both link and symlink, a few don't have symlink.
-dnl A few non-Unix systems implement symlink, but not link.
-dnl A few non-systems implement neither (or have nonfunctional versions).
-AC_DEFUN([CF_LINK_FUNCS],
-[
-AC_CHECK_FUNCS( \
- remove \
- unlink )
-
-if test "$ac_cv_prog_cc_cross" = yes ; then
- AC_CHECK_FUNCS( \
- link \
- symlink )
-else
- AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
- cf_cv_link_funcs=
- for cf_func in link symlink ; do
- AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-int main()
-{
- int fail = 0;
- char *src = "config.log";
- char *dst = "conftest.chk";
- struct stat src_sb;
- struct stat dst_sb;
-
- stat(src, &src_sb);
- fail = ($cf_func("config.log", "conftest.chk") < 0)
- || (stat(dst, &dst_sb) < 0)
- || (dst_sb.st_mtime != src_sb.st_mtime);
-#ifdef HAVE_UNLINK
- unlink(dst);
-#else
- remove(dst);
-#endif
- exit (fail);
-}
- ],[
- cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
- eval 'ac_cv_func_'$cf_func'=yes'],[
- eval 'ac_cv_func_'$cf_func'=no'],[
- eval 'ac_cv_func_'$cf_func'=error'])
- done
- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
- ])
- test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
- test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make'
-dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
-dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
-dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-)
-AC_DEFUN([CF_MAKEFLAGS],
-[
-AC_MSG_CHECKING([for makeflags variable])
-AC_CACHE_VAL(cf_cv_makeflags,[
- cf_cv_makeflags=''
- for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
- do
- cat >cf_makeflags.tmp <<CF_EOF
-all :
- @ echo '.$cf_option'
-CF_EOF
- cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null`
- case "$cf_result" in
- .*k)
- cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
- case "$cf_result" in
- .*CC=*) cf_cv_makeflags=
- ;;
- *) cf_cv_makeflags=$cf_option
- ;;
- esac
- break
- ;;
- *) echo no match "$cf_result"
- ;;
- esac
- done
- rm -f cf_makeflags.tmp])
-AC_MSG_RESULT($cf_cv_makeflags)
-AC_SUBST(cf_cv_makeflags)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
-dnl a monocase filesystem.
-AC_DEFUN([CF_MAKE_TAGS],[
-AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
-AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
-
-if test "$cf_cv_mixedcase" = yes ; then
- AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
-else
- MAKE_UPPER_TAGS=no
-fi
-
-if test "$MAKE_UPPER_TAGS" = yes ; then
- MAKE_UPPER_TAGS=
-else
- MAKE_UPPER_TAGS="#"
-fi
-AC_SUBST(MAKE_UPPER_TAGS)
-
-if test "$MAKE_LOWER_TAGS" = yes ; then
- MAKE_LOWER_TAGS=
-else
- MAKE_LOWER_TAGS="#"
-fi
-AC_SUBST(MAKE_LOWER_TAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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_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])
-
-case ".$cf_manpage_form" in
-.gzip|.compress|.BSDI|.normal|.formatted) # (vi
- ;;
-.unknown|.) # (vi
- if test -z "$MANPATH" ; then
- MANPATH="/usr/man:/usr/share/man"
- fi
- # look for the 'date' man-page (it's most likely to be installed!)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- cf_manpage_form=unknown
- 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
- 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;;
- esac
- break
- fi
- done
- if test "$cf_manpage_form" != "unknown" ; then
- break
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-.*) # (vi
- AC_MSG_WARN(Unexpected manpage-format)
- ;;
-esac
-
-AC_MSG_RESULT($cf_manpage_form)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl The Debian people have their own naming convention for manpages. This
-dnl option lets us override the name of the file containing renaming, or
-dnl disable it altogether.
-AC_DEFUN([CF_MANPAGE_RENAMES],
-[
-AC_MSG_CHECKING(for manpage renaming)
-
-AC_ARG_WITH(manpage-renames,
- [ --with-manpage-renames specify manpage-renaming],
- [cf_manpage_renames=$withval],
- [cf_manpage_renames=yes])
-
-case ".$cf_manpage_renames" in #(vi
-.no) #(vi
- ;;
-.|.yes)
- # Debian 'man' program?
- if test -f /etc/debian_version ; then
- cf_manpage_renames=`cd $srcdir && pwd`/man/man_db.renames
- else
- cf_manpage_renames=no
- 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)
- fi
-
- test ! -d man && mkdir man
-
- # Construct a sed-script to perform renaming within man-pages
- if test -n "$cf_manpage_renames" ; then
- test ! -d man && mkdir man
- $srcdir/man/make_sed.sh $cf_manpage_renames >man/edit_man.sed
- fi
-fi
-
-AC_MSG_RESULT($cf_manpage_renames)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some people expect each tool to make all aliases for manpages in the
-dnl man-directory. This accommodates the older, less-capable implementations
-dnl of 'man', and is optional.
-AC_DEFUN([CF_MANPAGE_SYMLINKS],
-[
-AC_MSG_CHECKING(for manpage symlinks)
-
-AC_ARG_WITH(manpage-symlinks,
- [ --with-manpage-symlinks specify manpage-symlinks],
- [cf_manpage_symlinks=$withval],
- [cf_manpage_symlinks=yes])
-
-AC_MSG_RESULT($cf_manpage_symlinks)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl This option causes manpages to be run through tbl(1) to generate tables
-dnl correctly.
-AC_DEFUN([CF_MANPAGE_TBL],
-[
-AC_MSG_CHECKING(for manpage tbl)
-
-AC_ARG_WITH(manpage-tbl,
- [ --with-manpage-tbl specify manpage processing with tbl],
- [cf_manpage_tbl=$withval],
- [cf_manpage_tbl=no])
-
-AC_MSG_RESULT($cf_manpage_tbl)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Try to determine if the man-pages on the system are compressed, and if
-dnl so, what format is used. Use this information to construct a script that
-dnl will install man-pages.
-AC_DEFUN([CF_MAN_PAGES],
-[
-CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
-CF_MANPAGE_FORMAT
-CF_MANPAGE_RENAMES
-CF_MANPAGE_SYMLINKS
-CF_MANPAGE_TBL
-
- if test "$prefix" = "NONE" ; then
- cf_prefix="$ac_default_prefix"
- else
- cf_prefix="$prefix"
- fi
-
- case "$cf_manpage_form" in # (vi
- *formatted*) # (vi
- cf_subdir='$mandir/cat'
- cf_format=yes
- ;;
- *)
- cf_subdir='$mandir/man'
- cf_format=no
- ;;
- esac
-
-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"
-TERMINFO="$TERMINFO"
-MKDIRS="`cd $srcdir && pwd`/mkinstalldirs"
-INSTALL="$INSTALL"
-INSTALL_DATA="$INSTALL_DATA"
-transform="$program_transform_name"
-
-TMP=\${TMPDIR-/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 5 15
-
-verb=\{{$}}1
-shift
-
-mandir=\{{$}}1
-shift
-
-srcdir=\{{$}}1
-shift
-
-for i in \{{$}}* ; do
-case \$i in #(vi
-*.orig|*.rej) ;; #(vi
-*.[0-9]*)
- section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
- if test \$verb = installing ; then
- if test ! -d $cf_subdir\${section} ; then
- \$MKDIRS $cf_subdir\$section
- fi
- fi
- aliases=
- source=\`basename \$i\`
- inalias=\$source
- test ! -f \$inalias && inalias="\$srcdir/\$inalias"
- if test ! -f \$inalias ; then
- echo .. skipped \$source
- continue
- fi
-CF_EOF
-if test "$cf_manpage_symlinks" = yes ; then
-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
-cat >>man/edit_man.sh <<CF_EOF
- # perform program transformations for section 1 man pages
- if test \$section = 1 ; then
- target=$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
- else
- target=$cf_subdir\${section}/\$source
- fi
-
- # replace variables in man page
-CF_EOF
- 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
- }})
-cat >>man/edit_man.sh <<CF_EOF
- sed -e "s,@DATADIR@,\$datadir," \\
- -e "s,@TERMINFO@,\$TERMINFO," \\
-CF_EOF
- ifelse($1,,,{{
- for cf_name in $1
- 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
- }})
-cat >>man/edit_man.sh <<CF_EOF
- < \$i >\$TMP
-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
-CF_EOF
-fi
-if test $cf_manpage_tbl = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- tbl \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-if test $with_curses_h != yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-if test $cf_format = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- nroff -man \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-case "$cf_manpage_form" in #(vi
-*compress*) #(vi
-cat >>man/edit_man.sh <<CF_EOF
- if test \$verb = installing ; then
- if ( compress -f \$TMP )
- then
- mv \$TMP.Z \$TMP
- fi
- fi
- target="\$target.Z"
-CF_EOF
- ;;
-*gzip*) #(vi
-cat >>man/edit_man.sh <<CF_EOF
- if test \$verb = installing ; then
- if ( gzip -f \$TMP )
- then
- mv \$TMP.gz \$TMP
- fi
- fi
- target="\$target.gz"
-CF_EOF
- ;;
-*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/'\`"
-CF_EOF
- ;;
-esac
-cat >>man/edit_man.sh <<CF_EOF
- suffix=\`basename \$target | sed -e 's/^[^.]*//'\`
- if test \$verb = installing ; then
- echo \$verb \$target
- \$INSTALL_DATA \$TMP \$target
- test -n "\$aliases" && (
- cd $cf_subdir\${section} && (
- target=\`basename \$target\`
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- if test -f \$cf_alias\${suffix} ; then
- if ( cmp -s \$target \$cf_alias\${suffix} )
- then
- :
- else
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- fi
- else
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- fi
- done
- )
- )
- elif test \$verb = removing ; then
- echo \$verb \$target
- rm -f \$target
- test -n "\$aliases" && (
- cd $cf_subdir\${section} && (
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- done
- )
- )
- else
-# echo ".hy 0"
- cat \$TMP
- fi
- ;;
-esac
-done
-exit 0
-CF_EOF
-changequote([,])dnl
-chmod 755 man/edit_man.sh
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Checks for libraries. At least one UNIX system, Apple Macintosh
-dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
-dnl AC_CHECK_LIB(m,sin), because that fails for C++.
-AC_DEFUN([CF_MATH_LIB],
-[
-AC_CACHE_CHECK(if -lm needed for math functions,
- cf_cv_need_libm,[
- AC_TRY_LINK([
- #include <stdio.h>
- #include <math.h>
- ],
- [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
- [cf_cv_need_libm=no],
- [cf_cv_need_libm=yes])])
-if test "$cf_cv_need_libm" = yes
-then
-ifelse($1,,[
- LIBS="$LIBS -lm"
-],[$1=-lm])
-fi
-])
-dnl ---------------------------------------------------------------------------
-dnl Check if the file-system supports mixed-case filenames. If we're able to
-dnl create a lowercase name and see it as uppercase, it doesn't support that.
-AC_DEFUN([CF_MIXEDCASE_FILENAMES],
-[
-AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
- rm -f conftest CONFTEST
- echo test >conftest
- if test -f CONFTEST ; then
- cf_cv_mixedcase=no
- else
- cf_cv_mixedcase=yes
- fi
- rm -f conftest CONFTEST
-])
-test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Compute the object-directory name from the given model name
-AC_DEFUN([CF_OBJ_SUBDIR],
-[
- case $1 in
- libtool) $2='obj_lo' ;;
- normal) $2='objects' ;;
- debug) $2='obj_g' ;;
- profile) $2='obj_p' ;;
- shared) $2='obj_s' ;;
- esac
-])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 delayed evaluation of those symbols.
-AC_DEFUN([CF_PATH_SYNTAX],[
-case ".[$]$1" in #(vi
-./*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\[$]{*prefix}*) #(vi
- eval $1="[$]$1"
- case ".[$]$1" in #(vi
- .NONE/*)
- $1=`echo [$]$1 | sed -e s@NONE@$ac_default_prefix@`
- ;;
- esac
- ;; #(vi
-.NONE/*)
- $1=`echo [$]$1 | sed -e s@NONE@$ac_default_prefix@`
- ;;
-*)
- AC_ERROR(expected a pathname)
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
-AC_DEFUN([CF_PROG_EXT],
-[
-AC_REQUIRE([CF_CHECK_CACHE])
-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__"
- LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
- PROG_EXT=".exe"
- ;;
-cygwin*)
- PROG_EXT=".exe"
- ;;
-esac
-AC_SUBST(PROG_EXT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the
-dnl misc/tabset install won't work properly. Usually this happens only when
-dnl using the fallback mkinstalldirs script
-AC_DEFUN([CF_PROG_INSTALL],
-[AC_PROG_INSTALL
-case $INSTALL in
-/*)
- ;;
-*)
-changequote({{,}})dnl
- cf_dir=`echo $INSTALL|sed -e 's%/[^/]*$%%'`
- test -z "$cf_dir" && cf_dir=.
-changequote([,])dnl
- INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Attempt to determine if we've got one of the flavors of regular-expression
-dnl code that we can support.
-AC_DEFUN([CF_REGEX],
-[
-AC_MSG_CHECKING([for regular-expression headers])
-AC_CACHE_VAL(cf_cv_regex,[
-AC_TRY_LINK([#include <sys/types.h>
-#include <regex.h>],[
- regex_t *p;
- int x = regcomp(p, "", 0);
- int y = regexec(p, "", 0, 0, 0);
- regfree(p);
- ],[cf_cv_regex="regex.h"],[
- AC_TRY_LINK([#include <regexp.h>],[
- char *p = compile("", "", "", 0);
- int x = step("", "");
- ],[cf_cv_regex="regexp.h"],[
- cf_save_LIBS="$LIBS"
- LIBS="-lgen $LIBS"
- AC_TRY_LINK([#include <regexpr.h>],[
- char *p = compile("", "", "");
- int x = step("", "");
- ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
-])
-AC_MSG_RESULT($cf_cv_regex)
-case $cf_cv_regex in
- regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
- regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
- regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Attempt to determine the appropriate CC/LD options for creating a shared
-dnl library.
-dnl
-dnl Note: $(LOCAL_LDFLAGS) is used to link executables that will run within the
-dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
-dnl We avoid compiling-in a ../lib path for the shared library since that can
-dnl lead to unexpected results at runtime.
-dnl $(LOCAL_LDFLAGS2) has the same intention but assumes that the shared libraries
-dnl are compiled in ../../lib
-dnl
-dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
-dnl to install symbolic links to the rel/abi versions of shared libraries.
-dnl
-dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
-dnl version when making symbolic links.
-dnl
-dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
-AC_DEFUN([CF_SHARED_OPTS],
-[
- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
- LOCAL_LDFLAGS=
- LOCAL_LDFLAGS2=
- LD_SHARED_OPTS=
- INSTALL_LIB="-m 644"
-
- cf_cv_do_symlinks=no
-
- AC_MSG_CHECKING(if release/abi version should be used for shared libs)
- AC_ARG_WITH(shlib-version,
- [ --with-shlib-version=X Specify rel or abi version for shared libs],
- [test -z "$withval" && withval=auto
- case $withval in #(vi
- yes) #(vi
- cf_cv_shlib_version=auto
- ;;
- rel|abi|auto|no) #(vi
- cf_cv_shlib_version=$withval
- ;;
- *)
- AC_ERROR([option value must be one of: rel, abi, auto or no])
- ;;
- esac
- ],[cf_cv_shlib_version=auto])
- AC_MSG_RESULT($cf_cv_shlib_version)
-
- cf_cv_rm_so_locs=no
-
- # Some less-capable ports of gcc support only -fpic
- CC_SHARED_OPTS=
- if test "$GCC" = yes
- then
- AC_MSG_CHECKING(which $CC option to use)
- cf_save_CFLAGS="$CFLAGS"
- for CC_SHARED_OPTS in -fPIC -fpic ''
- do
- CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
- AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
- done
- AC_MSG_RESULT($CC_SHARED_OPTS)
- CFLAGS="$cf_save_CFLAGS"
- fi
-
- case $cf_cv_system_name in
- beos*)
- MK_SHARED_LIB='$(CC) -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
- ;;
- hpux*)
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
- LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)'
- else
- CC_SHARED_OPTS='+Z'
- LD_SHARED_OPTS='-Wl,+b,$(libdir)'
- fi
- MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $[@]'
- # HP-UX shared libraries must be executable, and should be
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
- irix*)
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $[@]` -o $[@]'
- cf_cv_rm_so_locs=yes
- ;;
- linux*|gnu*)
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $[@]'
- ;;
- openbsd2*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $[@].$(ABI_VERSION)` -o $[@]'
- ;;
- openbsd*|freebsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='$(LD) -Bshareable -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- netbsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
- MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
- if test "$cf_cv_shlib_version" = auto; then
- if test ! -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=rel
- fi
- fi
- else
- MK_SHARED_LIB='$(LD) -Bshareable -o $[@]'
- fi
- ;;
- osf*|mls+*)
- # tested with OSF/1 V3.2 and 'cc'
- # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
- # link with shared libs).
- MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $[@]`'
- case $host_os in
- osf4*)
- MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
- ;;
- esac
- MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-rpath"
- # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- cf_cv_rm_so_locs=yes
- ;;
- sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
- # tested with osr5.0.5
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-belf -KPIC'
- fi
- MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o [$]@'
- if test "$cf_cv_ld_rpath" = yes ; then
- # only way is to set LD_RUN_PATH but no switch for it
- RUN_PATH=$libdir
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- LINK_PROGS='LD_RUN_PATH=$(libdir)'
- LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
- ;;
- sunos4*)
- # tested with SunOS 4.1.1 and gcc 2.7.0
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -assert pure-text -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- solaris2*)
- # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-R"
- EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- sysv5uw7*|unix_sv*)
- # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -d y -G -o [$]@'
- ;;
- *)
- CC_SHARED_OPTS='unknown'
- MK_SHARED_LIB='echo unknown'
- ;;
- esac
-
- # This works if the last tokens in $MK_SHARED_LIB are the -o target.
- case "$cf_cv_shlib_version" in #(vi
- rel|abi)
- case "$MK_SHARED_LIB" in #(vi
- *'-o $[@]')
- test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
- ;;
- *)
- AC_MSG_WARN(ignored --with-shlib-version)
- ;;
- esac
- ;;
- esac
-
- if test -n "$cf_ld_rpath_opt" ; then
- AC_MSG_CHECKING(if we need a space after rpath option)
- cf_save_LIBS="$LIBS"
- LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
- AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
- LIBS="$cf_save_LIBS"
- AC_MSG_RESULT($cf_rpath_space)
- test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)"
- fi
-
- AC_SUBST(CC_SHARED_OPTS)
- AC_SUBST(LD_SHARED_OPTS)
- AC_SUBST(MK_SHARED_LIB)
- AC_SUBST(LINK_PROGS)
- AC_SUBST(LINK_TESTS)
- AC_SUBST(EXTRA_LDFLAGS)
- AC_SUBST(LOCAL_LDFLAGS)
- AC_SUBST(LOCAL_LDFLAGS2)
- AC_SUBST(INSTALL_LIB)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check for definitions & structures needed for window size-changing
-dnl FIXME: check that this works with "snake" (HP-UX 10.x)
-AC_DEFUN([CF_SIZECHANGE],
-[
-AC_REQUIRE([CF_STRUCT_TERMIOS])
-AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
- cf_cv_sizechange=unknown
- cf_save_CFLAGS="$CFLAGS"
-
-for cf_opts in "" "NEED_PTEM_H"
-do
-
- CFLAGS="$cf_save_CFLAGS"
- test -n "$cf_opts" && CFLAGS="$CFLAGS -D$cf_opts"
- AC_TRY_COMPILE([#include <sys/types.h>
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#else
-#ifdef HAVE_TERMIO_H
-#include <termio.h>
-#endif
-#endif
-#ifdef NEED_PTEM_H
-/* This is a workaround for SCO: they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
- */
-#include <sys/stream.h>
-#include <sys/ptem.h>
-#endif
-#if !defined(sun) || !defined(HAVE_TERMIOS_H)
-#include <sys/ioctl.h>
-#endif
-],[
-#ifdef TIOCGSIZE
- struct ttysize win; /* FIXME: what system is this? */
- int y = win.ts_lines;
- int x = win.ts_cols;
-#else
-#ifdef TIOCGWINSZ
- struct winsize win;
- int y = win.ws_row;
- int x = win.ws_col;
-#else
- no TIOCGSIZE or TIOCGWINSZ
-#endif /* TIOCGWINSZ */
-#endif /* TIOCGSIZE */
- ],
- [cf_cv_sizechange=yes],
- [cf_cv_sizechange=no])
-
- CFLAGS="$cf_save_CFLAGS"
- if test "$cf_cv_sizechange" = yes ; then
- echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
- test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
- break
- fi
-done
-])
-if test "$cf_cv_sizechange" != no ; then
- AC_DEFINE(HAVE_SIZECHANGE)
- case $cf_cv_sizechange in #(vi
- NEED*)
- AC_DEFINE_UNQUOTED($cf_cv_sizechange )
- ;;
- esac
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl For each parameter, test if the source-directory exists, and if it contains
-dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
-dnl use in CF_LIB_RULES.
-dnl
-dnl This uses the configured value to make the lists SRC_SUBDIRS and
-dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
-AC_DEFUN([CF_SRC_MODULES],
-[
-AC_MSG_CHECKING(for src modules)
-
-# dependencies and linker-arguments for test-programs
-TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
-if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
-else
- TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
-fi
-
-# dependencies and linker-arguments for utility-programs
-PROG_ARGS="$TEST_ARGS"
-
-cf_cv_src_modules=
-for cf_dir in $1
-do
- if test -f $srcdir/$cf_dir/modules; then
-
- # We may/may not have tack in the distribution, though the
- # makefile is.
- if test $cf_dir = tack ; then
- if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
- continue
- fi
- fi
-
- if test -z "$cf_cv_src_modules"; then
- cf_cv_src_modules=$cf_dir
- else
- cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
- fi
-
- # Make the ncurses_cfg.h file record the library interface files as
- # well. These are header files that are the same name as their
- # directory. Ncurses is the only library that does not follow
- # that pattern.
- if test $cf_dir = tack ; then
- continue
- elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
- CF_UPPER(cf_have_include,$cf_dir)
- AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
- AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
- fi
- fi
- fi
-done
-AC_MSG_RESULT($cf_cv_src_modules)
-TEST_ARGS="-L${LIB_DIR} -L\$(libdir) $TEST_ARGS"
-AC_SUBST(TEST_DEPS)
-AC_SUBST(TEST_ARGS)
-
-PROG_ARGS="-L${LIB_DIR} -L\$(libdir) $PROG_ARGS"
-AC_SUBST(PROG_ARGS)
-
-SRC_SUBDIRS="man include"
-for cf_dir in $cf_cv_src_modules
-do
- SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
-done
-SRC_SUBDIRS="$SRC_SUBDIRS misc test"
-test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
-
-ADA_SUBDIRS=
-if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
- SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
- ADA_SUBDIRS="gen src samples"
-fi
-
-SUB_MAKEFILES=
-for cf_dir in $SRC_SUBDIRS
-do
- SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
-done
-
-if test -n "$ADA_SUBDIRS"; then
- for cf_dir in $ADA_SUBDIRS
- do
- SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
- done
- AC_SUBST(ADA_SUBDIRS)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check for -lstdc++, which is GNU's standard C++ library.
-AC_DEFUN([CF_STDCPP_LIBRARY],
-[
-if test -n "$GXX" ; then
-case $cf_cv_system_name in #(vi
-os2*) #(vi
- cf_stdcpp_libname=stdcpp
- ;;
-*)
- cf_stdcpp_libname=stdc++
- ;;
-esac
-AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
- cf_save="$LIBS"
- LIBS="$LIBS -l$cf_stdcpp_libname"
-AC_TRY_LINK([
-#include <strstream.h>],[
-char buf[80];
-strstreambuf foo(buf, sizeof(buf))
-],
- [cf_cv_libstdcpp=yes],
- [cf_cv_libstdcpp=no])
- LIBS="$cf_save"
-])
-test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Remove "-g" option from the compiler options
-AC_DEFUN([CF_STRIP_G_OPT],
-[$1=`echo ${$1} | sed -e 's/-g //' -e 's/-g$//'`])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
-dnl do this if we've found the sigaction function.
-dnl
-dnl If needed, define SVR4_ACTION.
-AC_DEFUN([CF_STRUCT_SIGACTION],[
-if test "$ac_cv_func_sigaction" = yes; then
-AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <signal.h>],
- [struct sigaction act],
- [sigact_bad=no],
- [
-AC_TRY_COMPILE([
-#define _POSIX_SOURCE
-#include <sys/types.h>
-#include <signal.h>],
- [struct sigaction act],
- [sigact_bad=yes
- AC_DEFINE(SVR4_ACTION)],
- [sigact_bad=unknown])])
-AC_MSG_RESULT($sigact_bad)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some machines require _POSIX_SOURCE to completely define struct termios.
-dnl If so, define SVR4_TERMIO
-AC_DEFUN([CF_STRUCT_TERMIOS],[
-AC_CHECK_HEADERS( \
-termio.h \
-termios.h \
-unistd.h \
-)
-if test "$ISC" = yes ; then
- AC_CHECK_HEADERS( sys/termio.h )
-fi
-if test "$ac_cv_header_termios_h" = yes ; then
- case "$CFLAGS" in
- *-D_POSIX_SOURCE*)
- termios_bad=dunno ;;
- *) termios_bad=maybe ;;
- esac
- if test "$termios_bad" = maybe ; then
- AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
- AC_TRY_COMPILE([#include <termios.h>],
- [struct termios foo; int x = foo.c_iflag],
- termios_bad=no, [
- AC_TRY_COMPILE([
-#define _POSIX_SOURCE
-#include <termios.h>],
- [struct termios foo; int x = foo.c_iflag],
- termios_bad=unknown,
- termios_bad=yes AC_DEFINE(SVR4_TERMIO))
- ])
- AC_MSG_RESULT($termios_bad)
- fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Shorthand macro for substituting things that the user may override
-dnl with an environment variable.
-dnl
-dnl $1 = long/descriptive name
-dnl $2 = environment variable
-dnl $3 = default value
-AC_DEFUN([CF_SUBST],
-[AC_CACHE_VAL(cf_cv_subst_$2,[
-AC_MSG_CHECKING(for $1 (symbol $2))
-test -z "[$]$2" && $2=$3
-AC_MSG_RESULT([$]$2)
-AC_SUBST($2)
-cf_cv_subst_$2=[$]$2])
-$2=${cf_cv_subst_$2}
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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
-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`))
-dnl We need these values in the generated headers
-AC_SUBST(NCURSES_MAJOR)
-AC_SUBST(NCURSES_MINOR)
-AC_SUBST(NCURSES_PATCH)
-dnl We need these values in the generated makefiles
-AC_SUBST(cf_cv_rel_version)
-AC_SUBST(cf_cv_abi_version)
-AC_SUBST(cf_cv_cc_bool_type)
-AC_SUBST(cf_cv_builtin_bool)
-AC_SUBST(cf_cv_type_of_bool)dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
-dnl older SCO configurations.
-AC_DEFUN([CF_SYS_TIME_SELECT],
-[
-AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
-AC_CACHE_VAL(cf_cv_sys_time_select,[
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-],[],[cf_cv_sys_time_select=yes],
- [cf_cv_sys_time_select=no])
- ])
-AC_MSG_RESULT($cf_cv_sys_time_select)
-test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Determine the type we should use for chtype (and attr_t, which is treated
-dnl as the same thing). We want around 32 bits, so on most machines want a
-dnl long, but on newer 64-bit machines, probably want an int. If we're using
-dnl wide characters, we have to have a type compatible with that, as well.
-AC_DEFUN([CF_TYPEOF_CHTYPE],
-[
-AC_REQUIRE([CF_UNSIGNED_LITERALS])
-AC_MSG_CHECKING([for type of chtype])
-AC_CACHE_VAL(cf_cv_typeof_chtype,[
- AC_TRY_RUN([
-#ifdef USE_WIDEC_SUPPORT
-#include <stddef.h> /* we want wchar_t */
-#define WANT_BITS 39
-#else
-#define WANT_BITS 31
-#endif
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
- char *result = "long";
-#ifdef USE_WIDEC_SUPPORT
- /*
- * If wchar_t is smaller than a long, it must be an int or a
- * short. We prefer not to use a short anyway.
- */
- if (sizeof(unsigned long) > sizeof(wchar_t))
- result = "int";
-#endif
- if (sizeof(unsigned long) > sizeof(unsigned int)) {
- int n;
- unsigned int x;
- for (n = 0; n < WANT_BITS; n++) {
- unsigned int y = (x >> n);
- if (y != 1 || x == 0) {
- x = 0;
- break;
- }
- }
- /*
- * If x is nonzero, an int is big enough for the bits
- * that we want.
- */
- result = (x != 0) ? "int" : "long";
- }
- fputs(result, fp);
- fclose(fp);
- }
- exit(0);
-}
- ],
- [cf_cv_typeof_chtype=`cat cf_test.out`],
- [cf_cv_typeof_chtype=long],
- [cf_cv_typeof_chtype=long])
- rm -f cf_test.out
- ])
-AC_MSG_RESULT($cf_cv_typeof_chtype)
-
-AC_SUBST(cf_cv_typeof_chtype)
-AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
-
-cf_cv_1UL="1"
-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
-test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L"
-AC_SUBST(cf_cv_1UL)
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl
-AC_DEFUN([CF_TYPE_SIGACTION],
-[
-AC_MSG_CHECKING([for type sigaction_t])
-AC_CACHE_VAL(cf_cv_type_sigaction,[
- AC_TRY_COMPILE([
-#include <signal.h>],
- [sigaction_t x],
- [cf_cv_type_sigaction=yes],
- [cf_cv_type_sigaction=no])])
-AC_MSG_RESULT($cf_cv_type_sigaction)
-test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
-dnl won't, but they're still there.
-AC_DEFUN([CF_UNSIGNED_LITERALS],
-[
-AC_MSG_CHECKING([if unsigned literals are legal])
-AC_CACHE_VAL(cf_cv_unsigned_literals,[
- AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
- [cf_cv_unsigned_literals=yes],
- [cf_cv_unsigned_literals=no])
- ])
-AC_MSG_RESULT($cf_cv_unsigned_literals)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Make an uppercase version of a variable
-dnl $1=uppercase($2)
-AC_DEFUN([CF_UPPER],
-[
-changequote(,)dnl
-$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-changequote([,])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
-dnl ---------------------------------------------------------------------------
-dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
-dnl defaulting to yes/no.
-dnl
-dnl $1 = option name
-dnl $2 = help-text
-dnl $3 = environment variable to set
-dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
-dnl
-AC_DEFUN([CF_WITH_PATH],
-[AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
-ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
-CF_PATH_SYNTAX(withval)
-eval $3="$withval"
-AC_SUBST($3)dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Process an option specifying a list of colon-separated paths.
-dnl
-dnl $1 = option name
-dnl $2 = help-text
-dnl $3 = environment variable to set
-dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
-dnl
-AC_DEFUN([CF_WITH_PATHLIST],[
-AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
-ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
-
-IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-cf_dst_path=
-for cf_src_path in $withval
-do
- CF_PATH_SYNTAX(cf_src_path)
- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
- cf_dst_path="${cf_dst_path}${cf_src_path}"
-done
-IFS="$ac_save_ifs"
-
-eval $3="$cf_dst_path"
-AC_SUBST($3)dnl
-])dnl
diff --git a/ncurses-5.2/announce.html.in b/ncurses-5.2/announce.html.in
deleted file mode 100644
index c8cd852..0000000
--- a/ncurses-5.2/announce.html.in
+++ /dev/null
@@ -1,593 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>Announcing ncurses @VERSION@</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-</HEAD>
-<BODY>
-
-<H1>Announcing ncurses @VERSION@</H1>
-
-The ncurses (new curses) library is a free software emulation of
-curses in System V Release 4.0, and more. It uses terminfo format,
-supports pads and color
-and multiple highlights and forms characters and function-key mapping,
-and has all the other SYSV-curses enhancements over BSD curses.<P>
-
-In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and is encouraging the keepers of
-Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
-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 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 manual pages are provided for
-the library and tools.<P>
-
-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
-<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>.
-
-<H1>Release Notes</H1>
-
-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.
-<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>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>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>terminfo database:
- <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>added os2 entry to misc/emx.src.
-
- <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>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>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>add error checking to infocmp's -v and -m options to ensure that
- the option value is indeed a number.
- </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>
-
-</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>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>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>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>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>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 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>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>various fixes for install scripts used to support configure
- <code>--srcdir</code> and <code>--with-install-prefix</code>.
-
- <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.
-</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>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>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 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 configure test for <code>tcgetattr()</code> to allow for
- old implementations, e.g., on BeOS, which only defined it as a
- macro.
-
- <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 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>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>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>improved OS/2 mouse support by retrying as a 2-button mouse if code
- fails to set up a 3-button mouse.
-
- <li>added private entrypoint <code>_nc_basename()</code>, used to
- consolidate related code in progs, as well as accommodating OS/2 EMX
- pathnames.
-
- <li>alter definition of NCURSES_CONST to make it non-empty.
-
- <li>redefine 'TEXT' in menu.h for AMIGA, since it is reported to have
- an (unspecified) symbol conflict.
- </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>
-
-</ul>
-
-<H1>Features of Ncurses</H1>
-
-The ncurses package is fully compatible with SVr4 (System V Release 4) curses:
-
-<UL>
-<LI>All 257 of the SVr4 calls have been implemented (and are documented).
-<LI>Full support for SVr4 curses features including keyboard mapping, color,
-forms-drawing with ACS characters, and automatic recognition of keypad
-and function keys.
-<LI>An emulation of the SVr4 panels library, supporting
-a stack of windows with backing store, is included.
-<LI>An emulation of the SVr4 menus library, supporting
-a uniform but flexible interface for menu programming, is included.
-<LI>An emulation of the SVr4 form library, supporting
-data collection through on-screen forms, is included.
-<LI>Binary terminfo entries generated by the ncurses tic(1) implementation
-are bit-for-bit-compatible with the entry format SVr4 curses uses.
-<LI>The utilities have options to allow you to filter terminfo
-entries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG>
-versions such as the HP/UX and AIX ports.</UL>
-
-The ncurses package also has many useful extensions over SVr4:
-
-<UL>
-<LI>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 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).
-<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner
-of the screen if your terminal has an insert-character capability.
-<LI>Ada95 and C++ bindings.
-<LI>Support for mouse event reporting with X Window xterm and OS/2 console windows.
-<LI>Extended mouse support via Alessandro Rubini's gpm package.
-<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving
-their data.
-<LI>The function <CODE>use_default_colors()</CODE> allows you to
-use the terminal's default colors for the default color pair,
-achieving the effect of transparent colors.
-<LI>The functions <CODE>keyok()</CODE>
-and <CODE>define_key()</CODE> 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 key code.
-<LI>Support for 16-color terminals, such as aixterm and XFree86 xterm.
-<LI>Better cursor-movement optimization. The package now features a
-cursor-local-movement computation more efficient than either BSD's
-or System V's.
-<LI>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.
-<LI>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.
-<LI>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).
-<LI>The tic(1)/captoinfo utility provided with ncurses has the
-ability to translate many termcaps from the XENIX, IBM and
-AT&amp;T extension sets.
-<LI>A BSD-like tset(1) utility is provided.
-<LI>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 terminfo directory.
-<LI>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.)
-<LI>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
-compiled entries in either the system terminfo directory or the user's
-$HOME/.terminfo directory.
-<LI>A script (<STRONG>capconvert</STRONG>) 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.
-<LI>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.
-<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to
-see exactly what terminal types are available on the system.
-<LI>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
-<CODE>#undef</CODE>.
-<LI>An HTML "Introduction to Programming with NCURSES" document provides
-a narrative introduction to the curses programming interface.
-</UL>
-
-<H1>State of the Package</H1>
-
-Numerous bugs present in earlier versions have been fixed; the
-library is far more reliable than it used to be. Bounds checking in many
-`dangerous' entry points has been improved. The code is now type-safe
-according to gcc -Wall. The library has been checked for malloc leaks and
-arena corruption by the Purify memory-allocation tester.<P>
-
-The ncurses code has been tested with a wide variety of applications
-including (versions starting with those noted):
-<DL>
-<DT> cdk
-<DD> Curses Development Kit
-<br>
-<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
-<br>
-<A HREF="http://dickey.his.com/cdk/cdk.html">http://dickey.his.com/cdk</A>.
-<DT> ded
-<DD> directory-editor
-<br>
-<A HREF="http://dickey.his.com/ded/ded.html">http://dickey.his.com/ded</A>.
-<DT> dialog
-<DD> the underlying application used in Slackware's setup, and the basis
-for similar applications on GNU/Linux.
-<br>
-<A HREF="http://dickey.his.com/dialog/dialog.html">http://dickey.his.com/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> Midnight Commander 4.1
-<DD> file manager
-<br>
-<A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
-<DT> mutt
-<DD> mail utility
-<br>
-<A HREF="http://www.mutt.org">http://www.mutt.org</A>.
-<DT> ncftp
-<DD> file-transfer utility
-<br>
-<A HREF="http://www.ncftp.com">http://www.ncftp.com</A>.
-<DT> nvi
-<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
-<br>
-<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>.
-<DT> tin
-<DD> newsreader, supporting color, MIME
-<br>
-<A HREF="http://www.tin.org">http://www.tin.org</A>.
-<DT> taper
-<DD> tape archive utility
-<br>
-<A HREF="http://members.iinet.net.au/~yusuf/taper/">http://members.iinet.net.au/~yusuf/taper/</A>.
-<DT> vh-1.6
-<DD> Volks-Hypertext browser for the Jargon File
-<br>
-<A HREF="http://www.bg.debian.org/Packages/unstable/text/vh.html">http://www.bg.debian.org/Packages/unstable/text/vh.html</A>.
-</DL>
-as well as some that use ncurses for the terminfo support alone:
-<DL>
-<DT> minicom
-<DD> terminal emulator
-<br>
-<A HREF="http://www.pp.clinet.fi/~walker/minicom.html">http://www.pp.clinet.fi/~walker/minicom.html</A>.
-<DT> vile
-<DD> vi-like-emacs
-<br>
-<A HREF="http://dickey.his.com/vile/vile.html">http://dickey.his.com/vile</A>.
-</DL>
-<P>
-
-The ncurses distribution includes a selection of test programs (including
-a few games).
-
-<H2>Who's Who and What's What</H2>
-
-The original developers of ncurses are <A
-HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and
-<A HREF="http://www.ccil.org/~esr/home.html">Eric S. Raymond</A>.
-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="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
-acts as the maintainer for the Free Software Foundation, which holds the
-copyright on ncurses.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-To join the ncurses mailing list, please write email to
-<CODE>bug-ncurses-request@gnu.org</CODE> containing the line:
-<PRE>
- subscribe &lt;name&gt;@&lt;host.domain&gt;
-</PRE>
-
-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
-<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>.
-
-<H2>Future Plans</H2>
-<UL>
-<LI>Extended-level XPG4 conformance, with internationalization support.
-<LI>Ports to more systems, including DOS and Windows.
-</UL>
-We need people to help with these projects. If you are interested in working
-on them, please join the ncurses list.
-
-<H2>Other Related Resources</H2>
-
-The distribution includes and uses a version of the terminfo-format
-terminal description file maintained by Eric Raymond.
-<A HREF="http://earthspace.net/~esr/terminfo">http://earthspace.net/~esr/terminfo</A>.<P>
-
-You can find lots of information on terminal-related topics
-not covered in the terminfo file at
-<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
-archive</A>.
-</BODY>
-</HTML>
-<!--
-# The following sets edit modes for GNU EMACS
-# Local Variables:
-# mode:html
-# case-fold-search:nil
-# fill-column:70
-# End:
--->
diff --git a/ncurses-5.2/c++/Makefile.in b/ncurses-5.2/c++/Makefile.in
deleted file mode 100644
index 36ce484..0000000
--- a/ncurses-5.2/c++/Makefile.in
+++ /dev/null
@@ -1,213 +0,0 @@
-# $Id$
-##############################################################################
-# Copyright (c) 1998,1999 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1996,1997
-#
-# Simple makefile for c++ window class demo
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-x = @PROG_EXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-RANLIB = @RANLIB@
-
-CXX = @CXX@
-CXXFLAGS = @CXXFLAGS@
-CXXLIBS = @CXXLIBS@
-
-INCDIR = ../include
-CPPFLAGS = -I../c++ -I$(INCDIR) -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
-
-CCFLAGS = $(CPPFLAGS) $(CXXFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CXX_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-LINK = @LINK_PROGS@ $(LIBTOOL) $(CXX) @CXXLDFLAGS@
-
-LIBROOT = ncurses++
-
-LIBNAME_LIBTOOL = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.la
-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_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib -L$(libdir) ../lib/$(LIBNAME)
-LINK_NORMAL = $(LINK_FLAGS)
-LINK_DEBUG = $(LINK_FLAGS)
-LINK_PROFILE = $(LINK_FLAGS)
-LINK_SHARED = $(LINK_FLAGS)
-
-LDFLAGS = @TEST_ARGS@ @LDFLAGS@ \
- @LD_MODEL@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
-
-LDFLAGS_LIBTOOL = $(LDFLAGS)
-LDFLAGS_NORMAL = $(LDFLAGS)
-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
-LDFLAGS_PROFILE = $(LDFLAGS) -pg
-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@)
-
-AUTO_SRC = \
- etip.h
-
-all \
-libs :: $(AUTO_SRC) ../lib/$(LIBNAME)
-
-all :: demo$x
-
-sources : $(AUTO_SRC)
-
-# Build a conventional library for installing, since a shared library would
-# pull in all of the ncurses libraries (panel, menu, form, ncurses) as direct
-# dependencies.
-LIB_OBJS = \
- $(MODEL)/cursesf.o \
- $(MODEL)/cursesm.o \
- $(MODEL)/cursesw.o \
- $(MODEL)/cursespad.o \
- $(MODEL)/cursesp.o \
- $(MODEL)/cursslk.o \
- $(MODEL)/cursesapp.o \
- $(MODEL)/cursesmain.o
-
-../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS)
- $(AR) $(AR_OPTS) $@ $?
- $(RANLIB) $@
-
-../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
- cd ../lib && $(LIBTOOL) $(CXX) -o $(LIBNAME) $(LIB_OBJS:.o=.lo) \
- -rpath $(INSTALL_PREFIX)$(libdir) \
- -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR)
-
-OBJS_DEMO = $(MODEL)/demo.o
-
-$(MODEL)/demo.o : $(srcdir)/demo.cc \
- $(cursesf_h) $(cursesm_h) $(cursesapp_h)
-
-demo$x: $(OBJS_DEMO) \
- ../lib/$(LIBNAME) \
- @TEST_DEPS@
- @ECHO_LINK@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT)
-
-etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh
- cp $(srcdir)/etip.h.in $@
- sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
-
-$(DESTDIR)$(libdir) :
- $(srcdir)/../mkinstalldirs $@
-
-install \
-install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir)
- $(LIBTOOL) $(INSTALL) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME)
-
-uninstall \
-uninstall.libs::
- -$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME)
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.ln *.atac trace
-
-clean :: mostlyclean
- -$(LIBTOOL) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:.o=.lo) $(OBJS_DEMO)
- -rm -rf .libs
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-###############################################################################
-
-cursesw_h = $(srcdir)/cursesw.h \
- etip.h \
- $(INCDIR)/curses.h
-
-cursesp_h = $(srcdir)/cursesp.h \
- $(cursesw_h) \
- $(INCDIR)/panel.h
-
-cursesf_h = $(srcdir)/cursesf.h \
- $(cursesp_h) \
- $(INCDIR)/form.h
-
-cursesm_h = $(srcdir)/cursesm.h \
- $(cursesp_h) \
- $(INCDIR)/menu.h
-
-cursslk_h = $(srcdir)/cursslk.h \
- $(cursesw_h)
-
-cursesapp_h = $(srcdir)/cursesapp.h \
- $(cursslk_h)
-
-$(INCDIR)/form.h :
- cd ../form && $(MAKE) $@
-
-$(INCDIR)/menu.h :
- cd ../menu && $(MAKE) $@
-
-$(INCDIR)/panel.h :
- cd ../panel && $(MAKE) $@
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/c++/NEWS b/ncurses-5.2/c++/NEWS
deleted file mode 100644
index 299292d..0000000
--- a/ncurses-5.2/c++/NEWS
+++ /dev/null
@@ -1,42 +0,0 @@
-This is a log of changes that the ncurses C++ binding has gone
-through starting with the integration of menu and forms integration
-into the binding.
-
-990731 + Improve support for pads. A viewport window may now be added to
- a pad. It will then be possible to use a builtin panning mechanism
- to view the pad.
-
-970908 + Improve NCursesWindow class: added additional methods to
- cover more ncurses functionality. Make refresh() and
- noutrefresh() virtual members to allow different implementation
- in the NCursesPanel class.
- + CAUTION: changed order of parameters in vline() and hline() of
- NCursesWindow class.
- + Make refresh() in NCursesPanel non-static, it is now a
- reimplementation of refresh() in the base class. Added
- noutrefresh() to NCursesPanel.
- + Added NCursesForm and related classes to support libform
- functionality.
- + Moved most of configuration related stuff from cursesw.h to
- etip.h
- + Added NCursesApplication class to support easy configuration
- of menu and forms related attributes as well as ripped of
- title lines and Soft-Label-Keys for an application.
- + Support of Auto-Cleanup for a menus fieldlist.
- + Change of return type for current_item() and operator[] for
- menus.
- + Enhanced demo.
-970502
- + Introduced the THROW and THROWS functions/macros to prepare
- a smoother transition to real exception handling.
- + Exception classes provided in etip.h
- + Added the NCursesMenu class to support libmenu functionality.
- + The inheritace relation between NCursesWindow and NCursesColorWindow
- was kind of brain damage. Monochrome is a special case of colored, so
- the relation should be just the opposite. This would allow all
- derived classes like NCursesPanel, NCursesMenu or NCursesForm to
- have colors.
- To resolve that design flaw I put the color functionality into the
- NCursesWindow class and it can be switched on by the static member
- useColors(). NCursesColorWindow is still there for compatibility
- reasons.
diff --git a/ncurses-5.2/c++/PROBLEMS b/ncurses-5.2/c++/PROBLEMS
deleted file mode 100644
index 81c1eba..0000000
--- a/ncurses-5.2/c++/PROBLEMS
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a list of open problems. This mainly lists known missing pieces
-and design flaws.
-
-1. Testing!!!
-2. Better demo program
diff --git a/ncurses-5.2/c++/README-first b/ncurses-5.2/c++/README-first
deleted file mode 100644
index eb37ac6..0000000
--- a/ncurses-5.2/c++/README-first
+++ /dev/null
@@ -1,58 +0,0 @@
- C++ interface to ncurses routines
------------------------------------------------------------------------
-
-This directory contains the source code for several C++ classes which
-ease the use of writing ncurses-based programs. The code is derived
-from the libg++ CursesWindow class but enhanced for ncurses.
-
-The classes simplify the use of window specific functions by
-encapsulating them in the window object. Function overloading is
-used in order to narrow the interface. E.g. you don't have the
-distinction between `printw' and `mvprintw' anymore.
-
-A second benefit is the removal of all #defines which are included in
-the curses.h file. This is a steady cause of trouble because many
-common identifiers are used. Instead now all #defines are inline
-functions which also allows strict type checking of arguments.
-
-The next enhancement is color support. It was originally provided by a
-derived class. This caused some trouble if you think about Panels or
-Menus and Forms with colors. We decided to put color support into the
-base class so that any derived class may use color support also.
-The implementation chosen here is directed to unrestricted use
-of mixes of color and monochrome windows. The original NCursesColorWindow
-class is maintained for compatibility reasons.
-
-The last point to mention is the support of other packages that are
-distributed with the ncurses package: the panels library, the menu library
-and the form library. This support is provided by the NCursesPanel class,
-which is also derived from the NCursesWindow class and the NCursesMenu
-and NCursesForm classes which are derived from NCursesPanel. This allows
-building interfaces with windows.
-
-Please see the example program for a quick introduction.
-
-Note that at this point, there is no documentation for these classes.
-Hopefully some will be written in the not too distant future. For now,
-to find out how to use the classes, read the code and the example program.
-
-Suggestions for enhancements and contributions of code (and docs) are
-welcome. Please let us know which functionality you miss.
-
- ATTENTION LINUX USERS: There is currently some discussion of
- replacing the BSD curses in the Linux libc with ncurses. If
- this is done we could perhaps include these classes in the Linux
- libg++ replacing the original CursesWindow class (and renaming it
- to CursesWindow). This could be done because NCursesWindow can
- be made easily to a superset of the CursesWindow class.
-
-
-Original author:
- Eric Newton <newton@rocky.oswego.edu> for FSF's libg++
-
-Authors of first ncurses based release (NCursesWindow, NCursesPanel):
- Ulrich Drepper <drepper@ira.uka.de>
- and Anatoly Ivasyuk <anatoly@nick.csh.rit.edu>
-
-Author of this release:
- Juergen Pfeifer <juergen.pfeifer@gmx.net>
diff --git a/ncurses-5.2/c++/cursesapp.cc b/ncurses-5.2/c++/cursesapp.cc
deleted file mode 100644
index 6da9862..0000000
--- a/ncurses-5.2/c++/cursesapp.cc
+++ /dev/null
@@ -1,146 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-#include "cursesapp.h"
-#include "internal.h"
-
-MODULE_ID("$Id$")
-
-void
-NCursesApplication::init(bool bColors) {
- if (bColors)
- NCursesWindow::useColors();
-
- if (Root_Window->colors() > 1) {
- b_Colors = TRUE;
- Root_Window->setcolor(1);
- Root_Window->setpalette(COLOR_YELLOW,COLOR_BLUE);
- Root_Window->setcolor(2);
- Root_Window->setpalette(COLOR_CYAN,COLOR_BLUE);
- Root_Window->setcolor(3);
- Root_Window->setpalette(COLOR_BLACK,COLOR_BLUE);
- Root_Window->setcolor(4);
- Root_Window->setpalette(COLOR_BLACK,COLOR_CYAN);
- Root_Window->setcolor(5);
- Root_Window->setpalette(COLOR_BLUE,COLOR_YELLOW);
- Root_Window->setcolor(6);
- Root_Window->setpalette(COLOR_BLACK,COLOR_GREEN);
- }
- else
- b_Colors = FALSE;
-
- Root_Window->bkgd(' '|window_backgrounds());
-}
-
-NCursesApplication* NCursesApplication::theApp = 0;
-NCursesWindow* NCursesApplication::titleWindow = 0;
-NCursesApplication::SLK_Link* NCursesApplication::slk_stack = 0;
-
-NCursesApplication::~NCursesApplication() {
- Soft_Label_Key_Set* S;
-
- delete titleWindow;
- while( (S=top()) ) {
- pop();
- delete S;
- }
- delete Root_Window;
- ::endwin();
-}
-
-int NCursesApplication::rinit(NCursesWindow& w) {
- titleWindow = &w;
- return OK;
-}
-
-void NCursesApplication::push(Soft_Label_Key_Set& S) {
- SLK_Link* L = new SLK_Link;
- assert(L != 0);
- L->prev = slk_stack;
- L->SLKs = &S;
- slk_stack = L;
- if (Root_Window)
- S.show();
-}
-
-bool NCursesApplication::pop() {
- if (slk_stack) {
- SLK_Link* L = slk_stack;
- slk_stack = slk_stack->prev;
- delete L;
- if (Root_Window && top())
- top()->show();
- }
- return (slk_stack ? FALSE : TRUE);
-}
-
-Soft_Label_Key_Set* NCursesApplication::top() const {
- if (slk_stack)
- return slk_stack->SLKs;
- else
- return (Soft_Label_Key_Set*)0;
-}
-
-int NCursesApplication::operator()(void) {
- bool bColors = b_Colors;
- Soft_Label_Key_Set* S;
-
- int ts = titlesize();
- if (ts>0)
- NCursesWindow::ripoffline(ts,rinit);
- Soft_Label_Key_Set::Label_Layout fmt = useSLKs();
- if (fmt!=Soft_Label_Key_Set::None) {
- S = new Soft_Label_Key_Set(fmt);
- assert(S != 0);
- init_labels(*S);
- }
-
- Root_Window = new NCursesWindow(::stdscr);
- init(bColors);
-
- if (ts>0)
- title();
- if (fmt!=Soft_Label_Key_Set::None) {
- push(*S);
- }
-
- return run();
-}
-
-NCursesApplication::NCursesApplication(bool bColors) {
- b_Colors = bColors;
- if (theApp)
- THROW(new NCursesException("Application object already created."));
- else
- theApp = this;
-}
diff --git a/ncurses-5.2/c++/cursesapp.h b/ncurses-5.2/c++/cursesapp.h
deleted file mode 100644
index 0958bb7..0000000
--- a/ncurses-5.2/c++/cursesapp.h
+++ /dev/null
@@ -1,163 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef _CURSESAPP_H
-#define _CURSESAPP_H
-
-#include <cursslk.h>
-
-class NCursesApplication {
-public:
- typedef struct _slk_link { // This structure is used to maintain
- struct _slk_link* prev; // a stack of SLKs
- Soft_Label_Key_Set* SLKs;
- } SLK_Link;
-private:
- static int rinit(NCursesWindow& w); // Internal Init function for title
- static NCursesApplication* theApp; // Global ref. to the application
-
- static SLK_Link* slk_stack;
-
-protected:
- static NCursesWindow* titleWindow; // The Title Window (if any)
-
- bool b_Colors; // Is this a color application?
- NCursesWindow* Root_Window; // This is the stdscr equiv.
-
- // Initialization of attributes;
- // Rewrite this in your derived class if you prefer other settings
- virtual void init(bool bColors);
-
- // The number of lines for the title window. Default is no title window
- // You may rewrite this in your derived class
- virtual int titlesize() const {
- return 0;
- }
-
- // This method is called to put something into the title window initially
- // You may rewrite this in your derived class
- virtual void title() {
- }
-
- // The layout used for the Soft Label Keys. Default is to have no SLKs.
- // You may rewrite this in your derived class
- virtual Soft_Label_Key_Set::Label_Layout useSLKs() const {
- return Soft_Label_Key_Set::None;
- }
-
- // This method is called to initialize the SLKs. Default is nothing.
- // You may rewrite this in your derived class
- virtual void init_labels(Soft_Label_Key_Set& S) const {
- }
-
- // Your derived class must implement this method. The return value must
- // be the exit value of your application.
- virtual int run() = 0;
-
-
- // The constructor is protected, so you may use it in your derived
- // class constructor. The argument tells whether or not you want colors.
- NCursesApplication(bool wantColors = FALSE);
-
-public:
- virtual ~NCursesApplication();
-
- // Get a pointer to the current application object
- static NCursesApplication* getApplication() {
- return theApp;
- }
-
- // This method runs the application and returns its exit value
- int operator()(void);
-
- // Process the commandline arguments. The default implementation simply
- // ignores them. Your derived class may rewrite this.
- virtual void handleArgs(int argc, char* argv[]) {
- }
-
- // Does this application use colors?
- inline bool useColors() const {
- return b_Colors;
- }
-
- // Push the Key Set S onto the SLK Stack. S then becomes the current set
- // of Soft Labelled Keys.
- void push(Soft_Label_Key_Set& S);
-
- // Throw away the current set of SLKs and make the previous one the
- // new current set.
- bool pop();
-
- // Retrieve the current set of Soft Labelled Keys.
- Soft_Label_Key_Set* top() const;
-
- // Attributes to use for menu and forms foregrounds
- virtual chtype foregrounds() const {
- return b_Colors ? COLOR_PAIR(1) : A_BOLD;
- }
-
- // Attributes to use for menu and forms backgrounds
- virtual chtype backgrounds() const {
- return b_Colors ? COLOR_PAIR(2) : A_NORMAL;
- }
-
- // Attributes to use for inactive (menu) elements
- virtual chtype inactives() const {
- return b_Colors ? (COLOR_PAIR(3)|A_DIM) : A_DIM;
- }
-
- // Attributes to use for (form) labels and SLKs
- virtual chtype labels() const {
- return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
- }
-
- // Attributes to use for form backgrounds
- virtual chtype dialog_backgrounds() const {
- return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
- }
-
- // Attributes to use as default for (form) window backgrounds
- virtual chtype window_backgrounds() const {
- return b_Colors ? COLOR_PAIR(5) : A_NORMAL;
- }
-
- // Attributes to use for the title window
- virtual chtype screen_titles() const {
- return b_Colors ? COLOR_PAIR(6) : A_BOLD;
- }
-
-};
-
-#endif // _CURSESAPP_H
diff --git a/ncurses-5.2/c++/cursesf.cc b/ncurses-5.2/c++/cursesf.cc
deleted file mode 100644
index c5885ca..0000000
--- a/ncurses-5.2/c++/cursesf.cc
+++ /dev/null
@@ -1,426 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-#include "cursesf.h"
-#include "cursesapp.h"
-#include "internal.h"
-
-MODULE_ID("$Id$")
-
-NCursesFormField::~NCursesFormField () {
- if (field)
- OnError(::free_field (field));
-}
-
-/* Construct a FIELD* array from an array of NCursesFormField
- * objects.
- */
-FIELD**
-NCursesForm::mapFields(NCursesFormField* nfields[]) {
- int fieldCount = 0,lcv;
- FIELD** old_fields;
-
- assert(nfields != 0);
-
- for (lcv=0; nfields[lcv]->field; ++lcv)
- ++fieldCount;
-
- FIELD** fields = new FIELD*[fieldCount + 1];
-
- for (lcv=0;nfields[lcv]->field;++lcv) {
- fields[lcv] = nfields[lcv]->field;
- }
- fields[lcv] = NULL;
-
- my_fields = nfields;
-
- if (form && (old_fields = ::form_fields(form))) {
- ::set_form_fields(form,(FIELD**)0);
- delete[] old_fields;
- }
- return fields;
-}
-
-void NCursesForm::setDefaultAttributes() {
- NCursesApplication* S = NCursesApplication::getApplication();
-
- int n = count();
- if (n > 0) {
- for(int i=0; i<n; i++) {
- NCursesFormField* f = (*this)[i];
- if ((f->options() & (O_EDIT|O_ACTIVE))==(O_EDIT|O_ACTIVE)) {
- if (S) {
- f->set_foreground(S->foregrounds());
- f->set_background(S->backgrounds());
- }
- f->set_pad_character('_');
- }
- else {
- if (S)
- f->set_background(S->labels());
- }
- }
- }
-
- if (S) {
- bkgd(' '|S->dialog_backgrounds());
- if (sub)
- sub->bkgd(' '|S->dialog_backgrounds());
- }
-}
-
-void
-NCursesForm::InitForm(NCursesFormField* nfields[],
- bool with_frame,
- bool autoDelete_Fields) {
- int mrows, mcols;
-
- keypad(TRUE);
- meta(TRUE);
-
- b_framed = with_frame;
- b_autoDelete = autoDelete_Fields;
-
- form = (FORM*)0;
- 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);
-
- ::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);
-
- if (with_frame) {
- if ((mrows > height()-2) || (mcols > width()-2))
- OnError(E_NO_ROOM);
- sub = new NCursesWindow(*this,mrows,mcols,1,1,'r');
- ::set_form_sub(form, sub->w);
- b_sub_owner = TRUE;
- }
- else {
- sub = (NCursesWindow*)0;
- b_sub_owner = FALSE;
- }
- options_on(O_NL_OVERLOAD);
- setDefaultAttributes();
-}
-
-NCursesForm::~NCursesForm() {
- UserHook* hook = (UserHook*)::form_userptr(form);
- delete hook;
- if (b_sub_owner) {
- delete sub;
- ::set_form_sub(form,(WINDOW *)0);
- }
- if (form) {
- FIELD** fields = ::form_fields(form);
- int cnt = count();
-
- OnError(::set_form_fields(form,(FIELD**)0));
-
- if (b_autoDelete) {
- if (cnt>0) {
- for (int i=0; i <= cnt; i++)
- delete my_fields[i];
- }
- delete[] my_fields;
- }
-
- ::free_form(form);
- // It's essential to do this after free_form()
- delete[] fields;
- }
-}
-
-void
-NCursesForm::setSubWindow(NCursesWindow& nsub) {
- if (!isDescendant(nsub))
- OnError(E_SYSTEM_ERROR);
- else {
- if (b_sub_owner)
- delete sub;
- sub = &nsub;
- ::set_form_sub(form,sub->w);
- }
-}
-
-/* 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
- * implementing a virtual method in a derived class
- */
-void
-NCursesForm::frm_init(FORM *f) {
- getHook(f)->On_Form_Init();
-}
-
-void
-NCursesForm::frm_term(FORM *f) {
- getHook(f)->On_Form_Termination();
-}
-
-void
-NCursesForm::fld_init(FORM *f) {
- NCursesForm* F = getHook(f);
- F->On_Field_Init (*(F->current_field ()));
-}
-
-void
-NCursesForm::fld_term(FORM *f) {
- NCursesForm* F = getHook(f);
- F->On_Field_Termination (*(F->current_field ()));
-}
-
-void
-NCursesForm::On_Form_Init() {
-}
-
-void
-NCursesForm::On_Form_Termination() {
-}
-
-void
-NCursesForm::On_Field_Init(NCursesFormField& field) {
-}
-
-void
-NCursesForm::On_Field_Termination(NCursesFormField& field) {
-}
-
-// call the form driver and do basic error checking.
-int
-NCursesForm::driver (int c) {
- int res = ::form_driver (form, c);
- switch (res) {
- case E_OK:
- case E_REQUEST_DENIED:
- case E_INVALID_FIELD:
- case E_UNKNOWN_COMMAND:
- break;
- default:
- OnError (res);
- }
- return (res);
-}
-
-void NCursesForm::On_Request_Denied(int c) const {
- beep();
-}
-
-void NCursesForm::On_Invalid_Field(int c) const {
- beep();
-}
-
-void NCursesForm::On_Unknown_Command(int c) const {
- beep();
-}
-
-static const int CMD_QUIT = MAX_COMMAND + 1;
-
-NCursesFormField*
-NCursesForm::operator()(void) {
- int drvCmnd;
- int err;
- int c;
-
- post();
- show();
- refresh();
-
- while (((drvCmnd = virtualize((c=getch()))) != CMD_QUIT)) {
- switch((err=driver(drvCmnd))) {
- case E_REQUEST_DENIED:
- On_Request_Denied(c);
- break;
- case E_INVALID_FIELD:
- On_Invalid_Field(c);
- break;
- case E_UNKNOWN_COMMAND:
- On_Unknown_Command(c);
- break;
- case E_OK:
- break;
- default:
- OnError(err);
- }
- }
-
- unpost();
- hide();
- refresh();
- return my_fields[::field_index (::current_field (form))];
-}
-
-// Provide a default key virtualization. Translate the keyboard
-// code c into a form request code.
-// The default implementation provides a hopefully straightforward
-// mapping for the most common keystrokes and form requests.
-int
-NCursesForm::virtualize(int c) {
- switch(c) {
-
- case KEY_HOME : return(REQ_FIRST_FIELD);
- case KEY_END : return(REQ_LAST_FIELD);
-
- case KEY_DOWN : return(REQ_DOWN_CHAR);
- case KEY_UP : return(REQ_UP_CHAR);
- case KEY_LEFT : return(REQ_PREV_CHAR);
- case KEY_RIGHT : return(REQ_NEXT_CHAR);
-
- case KEY_NPAGE : return(REQ_NEXT_PAGE);
- case KEY_PPAGE : return(REQ_PREV_PAGE);
-
- case KEY_BACKSPACE : return(REQ_DEL_PREV);
- case KEY_ENTER : return(REQ_NEW_LINE);
- case KEY_CLEAR : return(REQ_CLR_FIELD);
-
- case CTRL('X') : return(CMD_QUIT); // eXit
-
- 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('R') : return(REQ_RIGHT_FIELD); // Right
- case CTRL('U') : return(REQ_UP_FIELD); // Up
- case CTRL('D') : return(REQ_DOWN_FIELD); // Down
-
- case CTRL('W') : return(REQ_NEXT_WORD);
- case CTRL('T') : return(REQ_PREV_WORD);
-
- case CTRL('A') : return(REQ_BEG_FIELD);
- case CTRL('E') : return(REQ_END_FIELD);
-
- case CTRL('I') : return(REQ_INS_CHAR);
- case CTRL('M') :
- case CTRL('J') : return(REQ_NEW_LINE);
- case CTRL('O') : return(REQ_INS_LINE);
- case CTRL('V') : return(REQ_DEL_CHAR);
- case CTRL('H') : return(REQ_DEL_PREV);
- case CTRL('Y') : return(REQ_DEL_LINE);
- case CTRL('G') : return(REQ_DEL_WORD);
- case CTRL('K') : return(REQ_CLR_EOF);
-
- case CTRL('N') : return(REQ_NEXT_CHOICE);
- case CTRL('P') : return(REQ_PREV_CHOICE);
-
- default:
- return(c);
- }
-}
-//
-// -------------------------------------------------------------------------
-// User Defined Fieldtypes
-// -------------------------------------------------------------------------
-//
-bool UserDefinedFieldType::fcheck(FIELD *f, const void *u) {
- NCursesFormField* F = (NCursesFormField*)u;
- assert(F != 0);
- UserDefinedFieldType* udf = (UserDefinedFieldType*)(F->fieldtype());
- assert(udf != 0);
- return udf->field_check(*F);
-}
-
-bool UserDefinedFieldType::ccheck(int c, const void *u) {
- NCursesFormField* F = (NCursesFormField*)u;
- assert(F != 0);
- UserDefinedFieldType* udf =
- (UserDefinedFieldType*)(F->fieldtype());
- assert(udf != 0);
- return udf->char_check(c);
-}
-
-void* UserDefinedFieldType::makearg(va_list* va) {
- return va_arg(*va,NCursesFormField*);
-}
-
-FIELDTYPE* UserDefinedFieldType::generic_fieldtype =
- ::new_fieldtype(UserDefinedFieldType::fcheck,
- UserDefinedFieldType::ccheck);
-
-FIELDTYPE* UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice =
- ::new_fieldtype(UserDefinedFieldType::fcheck,
- UserDefinedFieldType::ccheck);
-
-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*)(F->fieldtype());
- assert(udf != 0);
- return udf->next(*F);
-}
-
-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*)(F->fieldtype());
- assert(udf != 0);
- return udf->previous(*F);
-}
-
-class UDF_Init {
-private:
- int code;
- static UDF_Init* I;
-public:
- UDF_Init() {
- code = ::set_fieldtype_arg(UserDefinedFieldType::generic_fieldtype,
- UserDefinedFieldType::makearg,
- NULL,
- NULL);
- if (code==E_OK)
- code = ::set_fieldtype_arg
- (UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
- UserDefinedFieldType::makearg,
- NULL,
- NULL);
- if (code==E_OK)
- code = ::set_fieldtype_choice
- (UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
- UserDefinedFieldType_With_Choice::next_choice,
- UserDefinedFieldType_With_Choice::prev_choice);
- }
-};
-
-UDF_Init* UDF_Init::I = new UDF_Init();
-
diff --git a/ncurses-5.2/c++/cursesf.h b/ncurses-5.2/c++/cursesf.h
deleted file mode 100644
index a5a4a9e..0000000
--- a/ncurses-5.2/c++/cursesf.h
+++ /dev/null
@@ -1,824 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef _CURSESF_H
-#define _CURSESF_H
-
-#include <cursesp.h>
-#include <string.h>
-
-extern "C" {
-# include <form.h>
-}
-//
-// -------------------------------------------------------------------------
-// The abstract base class for buitin and user defined Fieldtypes.
-// -------------------------------------------------------------------------
-//
-class NCursesFormField; // forward declaration
-
-// Class to represent builtin field types as well as C++ written new
-// fieldtypes (see classes UserDefineFieldType...
-class NCursesFieldType {
- friend class NCursesFormField;
-
-protected:
- FIELDTYPE* fieldtype;
-
- inline void OnError(int err) const THROWS(NCursesFormException) {
- if (err!=E_OK)
- THROW(new NCursesFormException (err));
- }
-
- NCursesFieldType(FIELDTYPE *f) : fieldtype(f) {
- }
-
- virtual ~NCursesFieldType() {}
-
- // Set the fields f fieldtype to this one.
- virtual void set(NCursesFormField& f) = 0;
-
-public:
- NCursesFieldType() : fieldtype((FIELDTYPE*)0) {
- }
-};
-
-//
-// -------------------------------------------------------------------------
-// The class representing a forms field, wrapping the lowlevel FIELD struct
-// -------------------------------------------------------------------------
-//
-class NCursesFormField {
- friend class NCursesForm;
-
-protected:
- FIELD *field; // lowlevel structure
- NCursesFieldType* ftype; // Associated field type
-
- // Error handler
- inline void OnError (int err) const THROWS(NCursesFormException) {
- if (err != E_OK)
- THROW(new NCursesFormException (err));
- }
-
-public:
- // Create a 'Null' field. Can be used to delimit a field list
- NCursesFormField()
- : field((FIELD*)0), ftype((NCursesFieldType*)0) {
- }
-
- // Create a new field
- NCursesFormField (int rows,
- int cols,
- int first_row = 0,
- int first_col = 0,
- int offscreen_rows = 0,
- int additional_buffers = 0)
- : ftype((NCursesFieldType*)0) {
- field = ::new_field(rows,cols,first_row,first_col,
- offscreen_rows, additional_buffers);
- if (!field)
- OnError(errno);
- }
-
- virtual ~NCursesFormField ();
-
- // Duplicate the field at a new position
- inline NCursesFormField* dup(int first_row, int first_col) {
- NCursesFormField* f = new NCursesFormField();
- if (!f)
- OnError(E_SYSTEM_ERROR);
- else {
- f->ftype = ftype;
- f->field = ::dup_field(field,first_row,first_col);
- if (!f->field)
- OnError(errno);
- }
- return f;
- }
-
- // Link the field to a new location
- inline NCursesFormField* link(int first_row, int first_col) {
- NCursesFormField* f = new NCursesFormField();
- if (!f)
- OnError(E_SYSTEM_ERROR);
- else {
- f->ftype = ftype;
- f->field = ::link_field(field,first_row,first_col);
- if (!f->field)
- OnError(errno);
- }
- return f;
- }
-
- // Get the lowlevel field representation
- inline FIELD* get_field() const {
- return field;
- }
-
- // Retrieve info about the field
- inline void info(int& rows, int& cols,
- int& first_row, int& first_col,
- int& offscreen_rows, int& additional_buffers) const {
- OnError(::field_info(field, &rows, &cols,
- &first_row, &first_col,
- &offscreen_rows, &additional_buffers));
- }
-
- // Retrieve info about the fields dynamic properties.
- inline void dynamic_info(int& dynamic_rows, int& dynamic_cols,
- int& max_growth) const {
- OnError(::dynamic_field_info(field, &dynamic_rows, &dynamic_cols,
- &max_growth));
- }
-
- // For a dynamic field you may set the maximum growth limit.
- // A zero means unlimited growth.
- inline void set_maximum_growth(int growth = 0) {
- OnError(::set_max_field(field,growth));
- }
-
- // Move the field to a new position
- inline void move(int row, int col) {
- OnError(::move_field(field,row,col));
- }
-
- // Mark the field to start a new page
- inline void new_page(bool pageFlag = FALSE) {
- OnError(::set_new_page(field,pageFlag));
- }
-
- // Retrieve whether or not the field starts a new page.
- inline bool is_new_page() const {
- return ::new_page(field);
- }
-
- // Set the justification for the field
- inline void set_justification(int just) {
- OnError(::set_field_just(field,just));
- }
-
- // Retrieve the fields justification
- inline int justification() const {
- return ::field_just(field);
- }
- // Set the foreground attribute for the field
- inline void set_foreground(chtype fore) {
- OnError(::set_field_fore(field,fore));
- }
-
- // Retrieve the fields foreground attribute
- inline chtype fore() const {
- return ::field_fore(field);
- }
-
- // Set the background attribute for the field
- inline void set_background(chtype back) {
- OnError(::set_field_back(field,back));
- }
-
- // Retrieve the fields background attribute
- inline chtype back() const {
- return ::field_back(field);
- }
-
- // Set the padding character for the field
- inline void set_pad_character(int pad) {
- OnError(::set_field_pad(field,pad));
- }
-
- // Retrieve the fields padding character
- inline int pad() const {
- return ::field_pad(field);
- }
-
- // Switch on the fields options
- inline void options_on (Field_Options options) {
- OnError (::field_opts_on (field, options));
- }
-
- // Switch off the fields options
- inline void options_off (Field_Options options) {
- OnError (::field_opts_off (field, options));
- }
-
- // Retrieve the fields options
- inline Field_Options options () const {
- return ::field_opts (field);
- }
-
- // Set the fields options
- inline void set_options (Field_Options options) {
- OnError (::set_field_opts (field, options));
- }
-
- // Mark the field as changed
- inline void set_changed(bool changeFlag = TRUE) {
- OnError(::set_field_status(field,changeFlag));
- }
-
- // Test whether or not the field is marked as changed
- inline bool changed() const {
- return ::field_status(field);
- }
-
- // Return the index of the field in the field array of a form
- // or -1 if the field is not associated to a form
- inline int (index)() const {
- return ::field_index(field);
- }
-
- // Store a value in a fields buffer. The default buffer is nr. 0
- inline void set_value(const char *val, int buffer = 0) {
- OnError(::set_field_buffer(field,buffer,val));
- }
-
- // Retrieve the value of a fields buffer. The defaukt buffer is nr. 0
- inline char* value(int buffer = 0) const {
- return ::field_buffer(field,buffer);
- }
-
- // Set the validation type of the field.
- inline void set_fieldtype(NCursesFieldType& f) {
- ftype = &f;
- f.set(*this); // A good friend may do that...
- }
-
- // Retrieve the validation type of the field.
- inline NCursesFieldType* fieldtype() const {
- return ftype;
- }
-
-};
-
-//
-// -------------------------------------------------------------------------
-// The class representing a form, wrapping the lowlevel FORM struct
-// -------------------------------------------------------------------------
-//
-class NCursesForm : public NCursesPanel {
-protected:
- FORM* form; // the lowlevel structure
-
-private:
- NCursesWindow* sub; // the subwindow object
- bool b_sub_owner; // is this our own subwindow?
- bool b_framed; // has the form a border?
- bool b_autoDelete; // Delete fields when deleting form?
-
- NCursesFormField** my_fields; // The array of fields for this form
-
- // This structure is used for the form's user data field to link the
- // FORM* to the C++ object and to provide extra space for a user pointer.
- typedef struct {
- void* m_user; // the pointer for the user's data
- const NCursesForm* m_back; // backward pointer to C++ object
- const FORM* m_owner;
- } UserHook;
-
- // Get the backward pointer to the C++ object from a FORM
- static inline NCursesForm* getHook(const FORM *f) {
- UserHook* hook = (UserHook*)::form_userptr(f);
- assert(hook != 0 && hook->m_owner==f);
- return (NCursesForm*)(hook->m_back);
- }
-
- // This are the built-in hook functions in this C++ binding. In C++ we use
- // virtual member functions (see below On_..._Init and On_..._Termination)
- // to provide this functionality in an object oriented manner.
- static void frm_init(FORM *);
- static void frm_term(FORM *);
- static void fld_init(FORM *);
- static void fld_term(FORM *);
-
- // Calculate FIELD* array for the menu
- FIELD** mapFields(NCursesFormField* nfields[]);
-
-protected:
- // internal routines
- inline void set_user(void *user) {
- UserHook* uptr = (UserHook*)::form_userptr (form);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);
- uptr->m_user = user;
- }
-
- inline void *get_user() {
- UserHook* uptr = (UserHook*)::form_userptr (form);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);
- return uptr->m_user;
- }
-
- void InitForm (NCursesFormField* Fields[],
- bool with_frame,
- bool autoDeleteFields);
-
- inline void OnError (int err) const THROWS(NCursesFormException) {
- if (err != E_OK)
- THROW(new NCursesFormException (err));
- }
-
- // this wraps the form_driver call.
- virtual int driver (int c) ;
-
- // 'Internal' constructor, builds an object without association to a
- // field array.
- NCursesForm( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0)
- : NCursesPanel(lines,cols,begin_y,begin_x),
- form ((FORM*)0) {
- }
-
-public:
- // Create form for the default panel.
- NCursesForm (NCursesFormField* Fields[],
- bool with_frame=FALSE, // reserve space for a frame?
- bool autoDelete_Fields=FALSE) // do automatic cleanup?
- : NCursesPanel() {
- InitForm(Fields, with_frame, autoDelete_Fields);
- }
-
- // Create a form in a panel with the given position and size.
- NCursesForm (NCursesFormField* Fields[],
- int lines,
- int cols,
- int begin_y,
- int begin_x,
- bool with_frame=FALSE, // reserve space for a frame?
- bool autoDelete_Fields=FALSE) // do automatic cleanup?
- : NCursesPanel(lines, cols, begin_y, begin_x) {
- InitForm(Fields, with_frame, autoDelete_Fields);
- }
-
- virtual ~NCursesForm();
-
- // Set the default attributes for the form
- virtual void setDefaultAttributes();
-
- // Retrieve current field of the form.
- inline NCursesFormField* current_field() const {
- return my_fields[::field_index(::current_field(form))];
- }
-
- // Set the forms subwindow
- void setSubWindow(NCursesWindow& sub);
-
- // Set these fields for the form
- inline void setFields(NCursesFormField* Fields[]) {
- OnError(::set_form_fields(form,mapFields(Fields)));
- }
-
- // Remove the form from the screen
- inline void unpost (void) {
- OnError (::unpost_form (form));
- }
-
- // Post the form to the screen if flag is true, unpost it otherwise
- inline void post(bool flag = TRUE) {
- OnError (flag ? ::post_form(form) : ::unpost_form (form));
- }
-
- // Decorations
- inline void frame(const char *title=NULL, const char* btitle=NULL) {
- if (b_framed)
- NCursesPanel::frame(title,btitle);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- inline void boldframe(const char *title=NULL, const char* btitle=NULL) {
- if (b_framed)
- NCursesPanel::boldframe(title,btitle);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- inline void label(const char *topLabel, const char *bottomLabel) {
- if (b_framed)
- NCursesPanel::label(topLabel,bottomLabel);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- // -----
- // Hooks
- // -----
-
- // Called after the form gets repositioned in its window.
- // This is especially true if the form is posted.
- virtual void On_Form_Init();
-
- // Called before the form gets repositioned in its window.
- // This is especially true if the form is unposted.
- virtual void On_Form_Termination();
-
- // Called after the field became the current field
- virtual void On_Field_Init(NCursesFormField& field);
-
- // Called before this field is left as current field.
- virtual void On_Field_Termination(NCursesFormField& field);
-
- // Calculate required window size for the form.
- void scale(int& rows, int& cols) const {
- OnError(::scale_form(form,&rows,&cols));
- }
-
- // Retrieve number of fields in the form.
- int count() const {
- return ::field_count(form);
- }
-
- // Make the page the current page of the form.
- void set_page(int page) {
- OnError(::set_form_page(form,page));
- }
-
- // Retrieve current page number
- int page() const {
- return ::form_page(form);
- }
-
- // Switch on the forms options
- inline void options_on (Form_Options options) {
- OnError (::form_opts_on (form, options));
- }
-
- // Switch off the forms options
- inline void options_off (Form_Options options) {
- OnError (::form_opts_off (form, options));
- }
-
- // Retrieve the forms options
- inline Form_Options options () const {
- return ::form_opts (form);
- }
-
- // Set the forms options
- inline void set_options (Form_Options options) {
- OnError (::set_form_opts (form, options));
- }
-
- // Are there more data in the current field after the data shown
- inline bool data_ahead() const {
- return ::data_ahead(form);
- }
-
- // Are there more data in the current field before the data shown
- inline bool data_behind() const {
- return ::data_behind(form);
- }
-
- // Position the cursor to the current field
- inline void position_cursor () {
- OnError (::pos_form_cursor (form));
- }
- // Set the current field
- inline void set_current(NCursesFormField& F) {
- OnError (::set_current_field(form, F.field));
- }
-
- // Provide a default key virtualization. Translate the keyboard
- // code c into a form request code.
- // The default implementation provides a hopefully straightforward
- // mapping for the most common keystrokes and form requests.
- virtual int virtualize(int c);
-
- // Operators
- inline NCursesFormField* operator[](int i) const {
- if ( (i < 0) || (i >= ::field_count (form)) )
- OnError (E_BAD_ARGUMENT);
- return my_fields[i];
- }
-
- // Perform the menu's operation
- // Return the field where you left the form.
- virtual NCursesFormField* operator()(void);
-
- // Exception handlers. The default is a Beep.
- virtual void On_Request_Denied(int c) const;
- virtual void On_Invalid_Field(int c) const;
- virtual void On_Unknown_Command(int c) const;
-
-};
-
-//
-// -------------------------------------------------------------------------
-// This is the typical C++ typesafe way to allow to attach
-// user data to a field of a form. Its assumed that the user
-// data belongs to some class T. Use T as template argument
-// to create a UserField.
-// -------------------------------------------------------------------------
-template<class T> class NCursesUserField : public NCursesFormField
-{
-public:
- NCursesUserField (int rows,
- int cols,
- int first_row = 0,
- int first_col = 0,
- const T* p_UserData = (T*)0,
- int offscreen_rows = 0,
- int additional_buffers = 0)
- : NCursesFormField (rows, cols,
- first_row, first_col,
- offscreen_rows, additional_buffers) {
- if (field)
- OnError(::set_field_userptr(field,(void *)p_UserData));
- }
-
- virtual ~NCursesUserField() {};
-
- inline const T* UserData (void) const {
- return (const T*)::field_userptr (field);
- }
-
- inline virtual void setUserData(const T* p_UserData) {
- if (field)
- OnError (::set_field_userptr (field, (void *)p_UserData));
- }
-};
-//
-// -------------------------------------------------------------------------
-// The same mechanism is used to attach user data to a form
-// -------------------------------------------------------------------------
-//
-template<class T> class NCursesUserForm : public NCursesForm
-{
-protected:
- // 'Internal' constructor, builds an object without association to a
- // field array.
- NCursesUserForm( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesForm(lines,cols,begin_y,begin_x) {
- if (form)
- set_user ((void *)p_UserData);
- }
-
-public:
- NCursesUserForm (NCursesFormField Fields[],
- bool with_frame=FALSE,
- bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, with_frame, autoDelete_Fields) {
- };
-
- NCursesUserForm (NCursesFormField Fields[],
- const T* p_UserData = (T*)0,
- bool with_frame=FALSE,
- bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, with_frame, autoDelete_Fields) {
- if (form)
- set_user ((void *)p_UserData);
- };
-
- NCursesUserForm (NCursesFormField Fields[],
- int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0,
- bool with_frame=FALSE,
- bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, lines, cols, begin_y, begin_x,
- with_frame, autoDelete_Fields) {
- if (form)
- set_user ((void *)p_UserData);
- };
-
- virtual ~NCursesUserForm() {
- };
-
- inline T* UserData (void) const {
- return (T*)get_user ();
- };
-
- inline virtual void setUserData (const T* p_UserData) {
- if (form)
- set_user ((void *)p_UserData);
- }
-
-};
-//
-// -------------------------------------------------------------------------
-// Builtin Fieldtypes
-// -------------------------------------------------------------------------
-//
-class Alpha_Field : public NCursesFieldType {
-private:
- int min_field_width;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,min_field_width));
- }
-
-public:
- Alpha_Field(int width)
- : NCursesFieldType(TYPE_ALPHA),
- min_field_width(width) {
- }
-};
-
-class Alphanumeric_Field : public NCursesFieldType {
-private:
- int min_field_width;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,min_field_width));
- }
-
-public:
- Alphanumeric_Field(int width)
- : NCursesFieldType(TYPE_ALNUM),
- min_field_width(width) {
- }
-};
-
-class Integer_Field : public NCursesFieldType {
-private:
- int precision;
- long lower_limit, upper_limit;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,
- precision,lower_limit,upper_limit));
- }
-
-public:
- Integer_Field(int prec, long low=0L, long high=0L)
- : NCursesFieldType(TYPE_INTEGER),
- precision(prec), lower_limit(low), upper_limit(high) {
- }
-};
-
-class Numeric_Field : public NCursesFieldType {
-private:
- int precision;
- double lower_limit, upper_limit;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,
- precision,lower_limit,upper_limit));
- }
-
-public:
- Numeric_Field(int prec, double low=0.0, double high=0.0)
- : NCursesFieldType(TYPE_NUMERIC),
- precision(prec), lower_limit(low), upper_limit(high) {
- }
-};
-
-class Regular_Expression_Field : public NCursesFieldType {
-private:
- char* regex;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,regex));
- }
-
-public:
- Regular_Expression_Field(const char *expr)
- : NCursesFieldType(TYPE_REGEXP) {
- regex = new char[1+::strlen(expr)];
- (strcpy)(regex,expr);
- }
-
- ~Regular_Expression_Field() {
- delete[] regex;
- }
-};
-
-class Enumeration_Field : public NCursesFieldType {
-private:
- char** list;
- int case_sensitive;
- int non_unique_matches;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,
- list,case_sensitive,non_unique_matches));
- }
-public:
- Enumeration_Field(char* enums[],
- bool case_sens=FALSE,
- bool non_unique=FALSE)
- : NCursesFieldType(TYPE_ENUM),
- list(enums),
- case_sensitive(case_sens?-1:0),
- non_unique_matches(non_unique?-1:0) {
- }
-};
-
-class IPV4_Address_Field : public NCursesFieldType {
-private:
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype));
- }
-
-public:
- IPV4_Address_Field() : NCursesFieldType(TYPE_IPV4) {
- }
-};
-//
-// -------------------------------------------------------------------------
-// Abstract base class for User-Defined Fieldtypes
-// -------------------------------------------------------------------------
-//
-class 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
- // FIELDTYPE* element.
- static FIELDTYPE* generic_fieldtype;
-
-protected:
- // This are the functions required by the low level libforms functions
- // to construct a fieldtype.
- static bool fcheck(FIELD *, const void*);
- static bool ccheck(int c, const void *);
- static void* makearg(va_list*);
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,&f));
- }
-
-protected:
- // Redefine this function to do a field validation. The argument
- // is a reference to the field you should validate.
- virtual bool field_check(NCursesFormField& f) = 0;
-
- // Redefine this function to do a character validation. The argument
- // is the character to be validated.
- virtual bool char_check (int c) = 0;
-
-public:
- UserDefinedFieldType() : NCursesFieldType(generic_fieldtype) {
- }
-};
-//
-// -------------------------------------------------------------------------
-// Abstract base class for User-Defined Fieldtypes with Choice functions
-// -------------------------------------------------------------------------
-//
-class 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
- // generic lowlevel FIELDTYPE* element.
- static FIELDTYPE* generic_fieldtype_with_choice;
-
- // This are the functions required by the low level libforms functions
- // to construct a fieldtype with choice functions.
- static bool next_choice(FIELD*, const void *);
- static bool prev_choice(FIELD*, const void *);
-
-protected:
- // Redefine this function to do the retrieval of the next choice value.
- // The argument is a reference to the field tobe examined.
- virtual bool next (NCursesFormField& f) = 0;
-
- // Redefine this function to do the retrieval of the previous choice value.
- // The argument is a reference to the field tobe examined.
- virtual bool previous(NCursesFormField& f) = 0;
-
-public:
- UserDefinedFieldType_With_Choice() {
- fieldtype = generic_fieldtype_with_choice;
- }
-};
-
-#endif // _CURSESF_H
-
diff --git a/ncurses-5.2/c++/cursesm.cc b/ncurses-5.2/c++/cursesm.cc
deleted file mode 100644
index b2f20b3..0000000
--- a/ncurses-5.2/c++/cursesm.cc
+++ /dev/null
@@ -1,383 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-#include "cursesm.h"
-#include "cursesapp.h"
-#include "internal.h"
-
-MODULE_ID("$Id$")
-
-NCursesMenuItem::~NCursesMenuItem() {
- if (item)
- OnError(::free_item(item));
-}
-
-bool
-NCursesMenuItem::action() {
- return FALSE;
-};
-
-NCursesMenuCallbackItem::~NCursesMenuCallbackItem() {
-}
-
-bool
-NCursesMenuCallbackItem::action() {
- if (p_fct)
- return p_fct (*this);
- else
- return FALSE;
-}
-
-/* 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
- * implementing a virtual method in a derived class
- */
-void
-NCursesMenu::mnu_init(MENU *m) {
- getHook(m)->On_Menu_Init();
-}
-
-void
-NCursesMenu::mnu_term(MENU *m) {
- getHook(m)->On_Menu_Termination();
-}
-
-void
-NCursesMenu::itm_init(MENU *m) {
- NCursesMenu* M = getHook(m);
- M->On_Item_Init (*(M->current_item ()));
-}
-
-void
-NCursesMenu::itm_term(MENU *m) {
- NCursesMenu* M = getHook(m);
- M->On_Item_Termination (*(M->current_item ()));
-}
-
-/* Construct an ITEM* array from an array of NCursesMenuItem
- * objects.
- */
-ITEM**
-NCursesMenu::mapItems(NCursesMenuItem* nitems[]) {
- int itemCount = 0,lcv;
-
- for (lcv=0; nitems[lcv]->item; ++lcv)
- ++itemCount;
-
- ITEM** items = new ITEM*[itemCount + 1];
-
- for (lcv=0;nitems[lcv]->item;++lcv) {
- items[lcv] = nitems[lcv]->item;
- }
- items[lcv] = NULL;
-
- my_items = nitems;
-
- if (menu)
- delete[] ::menu_items(menu);
- return items;
-}
-
-void
-NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
- bool with_frame,
- bool autoDelete_Items) {
- int mrows, mcols;
-
- keypad(TRUE);
- meta(TRUE);
-
- b_framed = with_frame;
- b_autoDelete = autoDelete_Items;
-
- menu = (MENU*)0;
- 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);
-
- ::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);
-
- if (with_frame) {
- if ((mrows > height()-2) || (mcols > width()-2))
- OnError(E_NO_ROOM);
- sub = new NCursesWindow(*this,mrows,mcols,1,1,'r');
- ::set_menu_sub(menu, sub->w);
- b_sub_owner = TRUE;
- }
- else {
- sub = (NCursesWindow*)0;
- b_sub_owner = FALSE;
- }
- setDefaultAttributes();
-}
-
-void
-NCursesMenu::setDefaultAttributes() {
- NCursesApplication* S = NCursesApplication::getApplication();
- if (S) {
- ::set_menu_fore(menu, S->foregrounds());
- ::set_menu_back(menu, S->backgrounds());
- ::set_menu_grey(menu, S->inactives());
- }
-}
-
-NCursesMenu::~NCursesMenu() {
- UserHook* hook = (UserHook*)::menu_userptr(menu);
- delete hook;
- if (b_sub_owner) {
- delete sub;
- ::set_menu_sub(menu,(WINDOW *)0);
- }
- if (menu) {
- ITEM** itms = ::menu_items(menu);
- int cnt = count();
-
- OnError(::set_menu_items(menu,(ITEM**)0));
-
- if (b_autoDelete) {
- if (cnt>0) {
- for (int i=0; i <= cnt; i++)
- delete my_items[i];
- }
- delete[] my_items;
- }
-
- ::free_menu(menu);
- // It's essential to do this after free_menu()
- delete[] itms;
- }
-}
-
-void
-NCursesMenu::setSubWindow(NCursesWindow& nsub) {
- if (!isDescendant(nsub))
- OnError(E_SYSTEM_ERROR);
- else {
- if (b_sub_owner)
- delete sub;
- sub = &nsub;
- ::set_menu_sub(menu,sub->w);
- }
-}
-
-bool
-NCursesMenu::set_pattern (const char *pat) {
- int res = ::set_menu_pattern (menu, pat);
- switch(res) {
- case E_OK:
- break;
- case E_NO_MATCH:
- return FALSE;
- default:
- OnError (res);
- }
- return TRUE;
-}
-
-// call the menu driver and do basic error checking.
-int
-NCursesMenu::driver (int c) {
- int res = ::menu_driver (menu, c);
- switch (res) {
- case E_OK:
- case E_REQUEST_DENIED:
- case E_NOT_SELECTABLE:
- case E_UNKNOWN_COMMAND:
- case E_NO_MATCH:
- break;
- default:
- OnError (res);
- }
- return (res);
-}
-
-static const int CMD_QUIT = MAX_COMMAND + 1;
-static const int CMD_ACTION = MAX_COMMAND + 2;
-//
-// -------------------------------------------------------------------------
-// Provide a default key virtualization. Translate the keyboard
-// code c into a menu request code.
-// The default implementation provides a hopefully straightforward
-// mapping for the most common keystrokes and menu requests.
-// -------------------------------------------------------------------------
-int
-NCursesMenu::virtualize(int c) {
- switch(c) {
- case CTRL('X') : return(CMD_QUIT); // eXit
-
- case KEY_DOWN : return(REQ_DOWN_ITEM);
- case CTRL('N') : return(REQ_NEXT_ITEM); // Next
- case KEY_UP : return(REQ_UP_ITEM);
- case CTRL('P') : return(REQ_PREV_ITEM); // Previous
-
- case CTRL('U') : return(REQ_SCR_ULINE); // Up
- case CTRL('D') : return(REQ_SCR_DLINE); // Down
- case CTRL('F') : return(REQ_SCR_DPAGE); // Forward
- case CTRL('B') : return(REQ_SCR_UPAGE); // Backward
-
- case CTRL('Y') : return(REQ_CLEAR_PATTERN);
- case CTRL('H') : return(REQ_BACK_PATTERN);
- case CTRL('A') : return(REQ_NEXT_MATCH);
- case CTRL('E') : return(REQ_PREV_MATCH);
- case CTRL('T') : return(REQ_TOGGLE_ITEM);
-
- case CTRL('J') :
- case CTRL('M') : return(CMD_ACTION);
-
- case KEY_HOME : return(REQ_FIRST_ITEM);
- case KEY_LEFT : return(REQ_LEFT_ITEM);
- case KEY_RIGHT : return(REQ_RIGHT_ITEM);
- case KEY_END : return(REQ_LAST_ITEM);
- case KEY_BACKSPACE : return(REQ_BACK_PATTERN);
- case KEY_NPAGE : return(REQ_SCR_DPAGE);
- case KEY_PPAGE : return(REQ_SCR_UPAGE);
-
- default:
- return(c);
- }
-}
-
-NCursesMenuItem*
-NCursesMenu::operator()(void) {
- int drvCmnd;
- int err;
- int c;
- bool b_action = FALSE;
-
- post();
- show();
- refresh();
-
- while (!b_action && ((drvCmnd = virtualize((c=getch()))) != CMD_QUIT)) {
-
- switch((err=driver(drvCmnd))) {
- case E_REQUEST_DENIED:
- On_Request_Denied(c);
- break;
- case E_NOT_SELECTABLE:
- On_Not_Selectable(c);
- break;
- case E_UNKNOWN_COMMAND:
- if (drvCmnd == CMD_ACTION) {
- if (options() & O_ONEVALUE) {
- NCursesMenuItem* itm = current_item();
- assert(itm != 0);
- if (itm->options() & O_SELECTABLE)
- {
- b_action = itm->action();
- refresh();
- }
- else
- On_Not_Selectable(c);
- }
- else {
- int n = count();
- for(int i=0; i<n; i++) {
- NCursesMenuItem* itm = my_items[i];
- if (itm->value()) {
- b_action |= itm->action();
- refresh();
- }
- }
- }
- } else
- On_Unknown_Command(c);
- break;
- case E_NO_MATCH:
- On_No_Match(c);
- break;
- case E_OK:
- break;
- default:
- OnError(err);
- }
- }
-
- unpost();
- hide();
- refresh();
- if (options() & O_ONEVALUE)
- return my_items[::item_index (::current_item (menu))];
- else
- return NULL;
-}
-
-void
-NCursesMenu::On_Menu_Init() {
-}
-
-void
-NCursesMenu::On_Menu_Termination() {
-}
-
-void
-NCursesMenu::On_Item_Init(NCursesMenuItem& item) {
-}
-
-void
-NCursesMenu::On_Item_Termination(NCursesMenuItem& item) {
-}
-
-void
-NCursesMenu::On_Request_Denied(int c) const {
- beep();
-}
-
-void
-NCursesMenu::On_Not_Selectable(int c) const {
- beep();
-}
-
-void
-NCursesMenu::On_No_Match(int c) const {
- beep();
-}
-
-void
-NCursesMenu::On_Unknown_Command(int c) const {
- beep();
-}
-
diff --git a/ncurses-5.2/c++/cursesm.h b/ncurses-5.2/c++/cursesm.h
deleted file mode 100644
index 8c14c56..0000000
--- a/ncurses-5.2/c++/cursesm.h
+++ /dev/null
@@ -1,592 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef _CURSESM_H
-#define _CURSESM_H
-
-#include <cursesp.h>
-
-extern "C" {
-# include <menu.h>
-}
-//
-// -------------------------------------------------------------------------
-// This wraps the ITEM type of <menu.h>
-// -------------------------------------------------------------------------
-//
-class NCursesMenuItem {
- friend class NCursesMenu;
-
-protected:
- ITEM *item;
-
- inline void OnError (int err) const THROWS(NCursesMenuException) {
- if (err != E_OK)
- THROW(new NCursesMenuException (err));
- }
-
-public:
- NCursesMenuItem (const char* p_name = NULL,
- const char* p_descript = NULL ) {
- item = p_name ? ::new_item (p_name, p_descript) : (ITEM*)0;
- if (p_name && !item)
- OnError (E_SYSTEM_ERROR);
- }
- // Create an item. If you pass both parameters as NULL, a delimiting
- // item is constructed which can be used to terminate a list of
- // NCursesMenu objects.
-
- virtual ~NCursesMenuItem ();
- // Release the items memory
-
- inline const char* name () const {
- return ::item_name (item);
- }
- // Name of the item
-
- inline const char* description () const {
- return ::item_description (item);
- }
- // Description of the item
-
- inline int (index) (void) const {
- return ::item_index (item);
- }
- // Index of the item in an item array (or -1)
-
- inline void options_on (Item_Options options) {
- OnError (::item_opts_on (item, options));
- }
- // Switch on the items options
-
- inline void options_off (Item_Options options) {
- OnError (::item_opts_off (item, options));
- }
- // Switch off the item's option
-
- inline Item_Options options () const {
- return ::item_opts (item);
- }
- // Retrieve the items options
-
- inline void set_options (Item_Options options) {
- OnError (::set_item_opts (item, options));
- }
- // Set the items options
-
- inline void set_value (bool f) {
- OnError (::set_item_value (item,f));
- }
- // Set/Reset the items selection state
-
- inline bool value () const {
- return ::item_value (item);
- }
- // Retrieve the items selection state
-
- inline bool visible () const {
- return ::item_visible (item);
- }
- // Retrieve visibility of the item
-
- virtual bool action();
- // Perform an action associated with this item; you may use this in an
- // user supplied driver for a menu; you may derive from this class and
- // overload action() to supply items with different actions.
- // If an action returns true, the menu will be exited. The default action
- // is to do nothing.
-};
-
-// Prototype for an items callback function.
-typedef bool ITEMCALLBACK(NCursesMenuItem&);
-
-// If you don't like to create a child class for individual items to
-// overload action(), you may use this class and provide a callback
-// function pointer for items.
-class NCursesMenuCallbackItem : public NCursesMenuItem {
-private:
- ITEMCALLBACK* p_fct;
-
-public:
- NCursesMenuCallbackItem(ITEMCALLBACK* fct = NULL,
- const char* p_name = NULL,
- const char* p_descript = NULL )
- : NCursesMenuItem (p_name, p_descript),
- p_fct (fct) {
- }
-
- virtual ~NCursesMenuCallbackItem();
-
- bool action();
-};
-//
-// -------------------------------------------------------------------------
-// This wraps the MENU type of <menu.h>
-// -------------------------------------------------------------------------
-//
-class NCursesMenu : public NCursesPanel {
-protected:
- MENU *menu;
-
-private:
- NCursesWindow* sub; // the subwindow object
- bool b_sub_owner; // is this our own subwindow?
- bool b_framed; // has the menu a border?
- bool b_autoDelete; // Delete items when deleting menu?
-
- NCursesMenuItem** my_items; // The array of items for this menu
-
- // This structure is used for the menu's user data field to link the
- // MENU* to the C++ object and to provide extra space for a user pointer.
- typedef struct {
- void* m_user; // the pointer for the user's data
- const NCursesMenu* m_back; // backward pointer to C++ object
- const MENU* m_owner;
- } UserHook;
-
- // Get the backward pointer to the C++ object from a MENU
- static inline NCursesMenu* getHook(const MENU *m) {
- UserHook* hook = (UserHook*)::menu_userptr(m);
- assert(hook != 0 && hook->m_owner==m);
- return (NCursesMenu*)(hook->m_back);
- }
-
- // This are the built-in hook functions in this C++ binding. In C++ we use
- // virtual member functions (see below On_..._Init and On_..._Termination)
- // to provide this functionality in an object oriented manner.
- static void mnu_init(MENU *);
- static void mnu_term(MENU *);
- static void itm_init(MENU *);
- static void itm_term(MENU *);
-
- // Calculate ITEM* array for the menu
- ITEM** mapItems(NCursesMenuItem* nitems[]);
-
-protected:
- // internal routines
- inline void set_user(void *user) {
- UserHook* uptr = (UserHook*)::menu_userptr (menu);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
- uptr->m_user = user;
- }
-
- inline void *get_user() {
- UserHook* uptr = (UserHook*)::menu_userptr (menu);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
- return uptr->m_user;
- }
-
- void InitMenu (NCursesMenuItem* menu[],
- bool with_frame,
- bool autoDeleteItems);
-
- inline void OnError (int err) const THROWS(NCursesMenuException) {
- if (err != E_OK)
- THROW(new NCursesMenuException (this, err));
- }
-
- // this wraps the menu_driver call.
- virtual int driver (int c) ;
-
- // 'Internal' constructor to create a menu without association to
- // an array of items.
- NCursesMenu( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0)
- : NCursesPanel(lines,cols,begin_y,begin_x),
- menu ((MENU*)0) {
- }
-
-public:
- // Make a full window size menu
- NCursesMenu (NCursesMenuItem* Items[],
- bool with_frame=FALSE, // Reserve space for a frame?
- bool autoDelete_Items=FALSE) // Autocleanup of Items?
- : NCursesPanel() {
- InitMenu(Items, with_frame, autoDelete_Items);
- }
-
- // Make a menu with a window of this size.
- NCursesMenu (NCursesMenuItem* Items[],
- int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- bool with_frame=FALSE, // Reserve space for a frame?
- bool autoDelete_Items=FALSE) // Autocleanup of Items?
- : NCursesPanel(lines, cols, begin_y, begin_x) {
- InitMenu(Items, with_frame, autoDelete_Items);
- }
-
- virtual ~NCursesMenu ();
-
- // Retrieve the menus subwindow
- inline NCursesWindow& subWindow() const {
- assert(sub!=NULL);
- return *sub;
- }
-
- // Set the menus subwindow
- void setSubWindow(NCursesWindow& sub);
-
- // Set these items for the menu
- inline void setItems(NCursesMenuItem* Items[]) {
- OnError(::set_menu_items(menu,mapItems(Items)));
- }
-
- // Remove the menu from the screen
- inline void unpost (void) {
- OnError (::unpost_menu (menu));
- }
-
- // Post the menu to the screen if flag is true, unpost it otherwise
- inline void post(bool flag = TRUE) {
- flag ? OnError (::post_menu(menu)) : OnError (::unpost_menu (menu));
- }
-
- // Get the numer of rows and columns for this menu
- inline void scale (int& mrows, int& mcols) const {
- OnError (::scale_menu (menu, &mrows, &mcols));
- }
-
- // Set the format of this menu
- inline void set_format(int mrows, int mcols) {
- OnError (::set_menu_format(menu, mrows, mcols));
- }
-
- // Get the format of this menu
- inline void menu_format(int& rows,int& cols) {
- ::menu_format(menu,&rows,&cols);
- }
-
- // Items of the menu
- inline NCursesMenuItem* items() const {
- return *my_items;
- }
-
- // Get the number of items in this menu
- inline int count() const {
- return ::item_count(menu);
- }
-
- // Get the current item (i.e. the one the cursor is located)
- inline NCursesMenuItem* current_item() const {
- return my_items[::item_index(::current_item(menu))];
- }
-
- // Get the marker string
- inline const char* mark() const {
- return ::menu_mark(menu);
- }
-
- // Set the marker string
- inline void set_mark(const char *mark) {
- OnError (::set_menu_mark (menu, mark));
- }
-
- // Get the name of the request code c
- inline static const char* request_name(int c) {
- return ::menu_request_name(c);
- }
-
- // Get the current pattern
- inline char* pattern() const {
- return ::menu_pattern(menu);
- }
-
- // true if there is a pattern match, false otherwise.
- bool set_pattern (const char *pat);
-
- // set the default attributes for the menu
- // i.e. set fore, back and grey attribute
- virtual void setDefaultAttributes();
-
- // Get the menus background attributes
- inline chtype back() const {
- return ::menu_back(menu);
- }
-
- // Get the menus foreground attributes
- inline chtype fore() const {
- return ::menu_fore(menu);
- }
-
- // Get the menus grey attributes (used for unselectable items)
- inline chtype grey() const {
- return ::menu_grey(menu);
- }
-
- // Set the menus background attributes
- inline chtype set_background(chtype a) {
- return ::set_menu_back(menu,a);
- }
-
- // Set the menus foreground attributes
- inline chtype set_foreground(chtype a) {
- return ::set_menu_fore(menu,a);
- }
-
- // Set the menus grey attributes (used for unselectable items)
- inline chtype set_grey(chtype a) {
- return ::set_menu_grey(menu,a);
- }
-
- inline void options_on (Menu_Options opts) {
- OnError (::menu_opts_on (menu,opts));
- }
-
- inline void options_off(Menu_Options opts) {
- OnError (::menu_opts_off(menu,opts));
- }
-
- inline Menu_Options options() const {
- return ::menu_opts(menu);
- }
-
- inline void set_options (Menu_Options opts) {
- OnError (::set_menu_opts (menu,opts));
- }
-
- inline int pad() const {
- return ::menu_pad(menu);
- }
-
- inline void set_pad (int padch) {
- OnError (::set_menu_pad (menu, padch));
- }
-
- // Position the cursor to the current item
- inline void position_cursor () const {
- OnError (::pos_menu_cursor (menu));
- }
-
- // Set the current item
- inline void set_current(NCursesMenuItem& I) {
- OnError (::set_current_item(menu, I.item));
- }
-
- // Get the current top row of the menu
- inline int top_row (void) const {
- return ::top_row (menu);
- }
-
- // Set the current top row of the menu
- inline void set_top_row (int row) {
- OnError (::set_top_row (menu, row));
- }
-
- // spacing control
- // Set the spacing for the menu
- inline void setSpacing(int spc_description,
- int spc_rows,
- int spc_columns) {
- OnError(::set_menu_spacing(menu,
- spc_description,
- spc_rows,
- spc_columns));
- }
-
- // Get the spacing info for the menu
- inline void Spacing(int& spc_description,
- int& spc_rows,
- int& spc_columns) const {
- OnError(::menu_spacing(menu,
- &spc_description,
- &spc_rows,
- &spc_columns));
- }
-
- // Decorations
- inline void frame(const char *title=NULL, const char* btitle=NULL) {
- if (b_framed)
- NCursesPanel::frame(title,btitle);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- inline void boldframe(const char *title=NULL, const char* btitle=NULL) {
- if (b_framed)
- NCursesPanel::boldframe(title,btitle);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- inline void label(const char *topLabel, const char *bottomLabel) {
- if (b_framed)
- NCursesPanel::label(topLabel,bottomLabel);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- // -----
- // Hooks
- // -----
-
- // Called after the menu gets repositioned in its window.
- // This is especially true if the menu is posted.
- virtual void On_Menu_Init();
-
- // Called before the menu gets repositioned in its window.
- // This is especially true if the menu is unposted.
- virtual void On_Menu_Termination();
-
- // Called after the item became the current item
- virtual void On_Item_Init(NCursesMenuItem& item);
-
- // Called before this item is left as current item.
- virtual void On_Item_Termination(NCursesMenuItem& item);
-
- // Provide a default key virtualization. Translate the keyboard
- // code c into a menu request code.
- // The default implementation provides a hopefully straightforward
- // mapping for the most common keystrokes and menu requests.
- virtual int virtualize(int c);
-
-
- // Operators
- inline NCursesMenuItem* operator[](int i) const {
- if ( (i < 0) || (i >= ::item_count (menu)) )
- OnError (E_BAD_ARGUMENT);
- return (my_items[i]);
- }
-
- // Perform the menu's operation
- // Return the item where you left the selection mark for a single
- // selection menu, or NULL for a multivalued menu.
- virtual NCursesMenuItem* operator()(void);
-
- // --------------------
- // Exception handlers
- // Called by operator()
- // --------------------
-
- // Called if the request is denied
- virtual void On_Request_Denied(int c) const;
-
- // Called if the item is not selectable
- virtual void On_Not_Selectable(int c) const;
-
- // Called if pattern doesn't match
- virtual void On_No_Match(int c) const;
-
- // Called if the command is unknown
- virtual void On_Unknown_Command(int c) const;
-
-};
-//
-// -------------------------------------------------------------------------
-// This is the typical C++ typesafe way to allow to attach
-// user data to an item of a menu. Its assumed that the user
-// data belongs to some class T. Use T as template argument
-// to create a UserItem.
-// -------------------------------------------------------------------------
-//
-template<class T> class NCursesUserItem : public NCursesMenuItem
-{
-public:
- NCursesUserItem (const char* p_name,
- const char* p_descript = NULL,
- const T* p_UserData = (T*)0)
- : NCursesMenuItem (p_name, p_descript) {
- if (item)
- OnError (::set_item_userptr (item, (void *)p_UserData));
- };
-
- virtual ~NCursesUserItem() {};
-
- inline const T* UserData (void) const {
- return (const T*)::item_userptr (item);
- };
-
- inline virtual void setUserData(const T* p_UserData) {
- if (item)
- OnError (::set_item_userptr (item, (void *)p_UserData));
- }
-};
-//
-// -------------------------------------------------------------------------
-// The same mechanism is used to attach user data to a menu
-// -------------------------------------------------------------------------
-//
-template<class T> class NCursesUserMenu : public NCursesMenu
-{
-protected:
- NCursesUserMenu( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesMenu(lines,cols,begin_y,begin_x) {
- if (menu)
- set_user ((void *)p_UserData);
- }
-
-public:
- NCursesUserMenu (NCursesMenuItem Items[],
- const T* p_UserData = (T*)0,
- bool with_frame=FALSE,
- bool autoDelete_Items=FALSE)
- : NCursesMenu (Items, with_frame, autoDelete_Items) {
- if (menu)
- set_user ((void *)p_UserData);
- };
-
- NCursesUserMenu (NCursesMenuItem Items[],
- int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0,
- bool with_frame=FALSE)
- : NCursesMenu (Items, lines, cols, begin_y, begin_x, with_frame) {
- if (menu)
- set_user ((void *)p_UserData);
- };
-
- virtual ~NCursesUserMenu() {
- };
-
- inline T* UserData (void) const {
- return (T*)get_user ();
- };
-
- inline virtual void setUserData (const T* p_UserData) {
- if (menu)
- set_user ((void *)p_UserData);
- }
-};
-
-#endif // _CURSESM_H
diff --git a/ncurses-5.2/c++/cursesmain.cc b/ncurses-5.2/c++/cursesmain.cc
deleted file mode 100644
index 33f36d5..0000000
--- a/ncurses-5.2/c++/cursesmain.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-#include "cursesapp.h"
-#include "internal.h"
-
-MODULE_ID("$Id$")
-
-/* This is the default implementation of main() for a NCursesApplication.
- * You only have to instantiate a static NCursesApplication object in your
- * main application source file and link this module with your application.
- */
-int main(int argc, char* argv[])
-{
- NCursesApplication* A = NCursesApplication::getApplication();
- if (!A)
- return(1);
- A->handleArgs(argc,argv);
- ::endwin();
- return((*A)());
-}
diff --git a/ncurses-5.2/c++/cursesp.cc b/ncurses-5.2/c++/cursesp.cc
deleted file mode 100644
index 36278fe..0000000
--- a/ncurses-5.2/c++/cursesp.cc
+++ /dev/null
@@ -1,124 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 <juergen.pfeifer@gmx.net> 1993,1997 *
- ****************************************************************************/
-
-#include "cursesp.h"
-#include "internal.h"
-#include <string.h>
-
-MODULE_ID("$Id$")
-
-NCursesPanel* NCursesPanel::dummy = (NCursesPanel*)0;
-
-void NCursesPanel::init() {
- p = ::new_panel(w);
- if (!p)
- OnError(ERR);
-
- UserHook* hook = new UserHook;
- hook->m_user = NULL;
- hook->m_back = this;
- hook->m_owner = p;
- ::set_panel_userptr(p, (void *)hook);
-}
-
-NCursesPanel::~NCursesPanel() {
- UserHook* hook = (UserHook*)::panel_userptr(p);
- assert(hook != 0 && hook->m_back==this && hook->m_owner==p);
- delete hook;
- ::del_panel(p);
- ::update_panels();
-}
-
-void
-NCursesPanel::redraw() {
- PANEL *pan;
-
- pan = ::panel_above(NULL);
- while (pan) {
- ::touchwin(panel_window(pan));
- pan = ::panel_above(pan);
- }
- ::update_panels();
- ::doupdate();
-}
-
-int
-NCursesPanel::refresh() {
- ::update_panels();
- return doupdate();
-}
-
-int
-NCursesPanel::noutrefresh() {
- ::update_panels();
- return OK;
-}
-
-void
-NCursesPanel::boldframe(const char *title, const char* btitle) {
- standout();
- frame(title, btitle);
- standend();
-}
-
-void
-NCursesPanel::frame(const char *title,const char *btitle) {
- int err = OK;
- if (!title && !btitle) {
- err = box();
- }
- else {
- err = box();
- if (err==OK)
- label(title,btitle);
- }
- OnError(err);
-}
-
-void
-NCursesPanel::label(const char *tLabel, const char *bLabel) {
- if (tLabel)
- centertext(0,tLabel);
- if (bLabel)
- centertext(maxy(),bLabel);
-}
-
-void
-NCursesPanel::centertext(int row,const char *label) {
- if (label) {
- int x = (maxx() - strlen(label)) / 2;
- if (x<0)
- x=0;
- OnError(addstr(row, x, label, width()));
- }
-}
diff --git a/ncurses-5.2/c++/cursesp.h b/ncurses-5.2/c++/cursesp.h
deleted file mode 100644
index 7b37645..0000000
--- a/ncurses-5.2/c++/cursesp.h
+++ /dev/null
@@ -1,218 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-#ifndef _CURSESP_H
-#define _CURSESP_H
-
-// $Id$
-
-#include <cursesw.h>
-
-extern "C" {
-# include <panel.h>
-}
-
-class NCursesPanel : public NCursesWindow {
-protected:
- PANEL *p;
- static NCursesPanel *dummy;
-
-private:
- // This structure is used for the panel's user data field to link the
- // PANEL* to the C++ object and to provide extra space for a user pointer.
- typedef struct {
- void* m_user; // the pointer for the user's data
- const NCursesPanel* m_back; // backward pointer to C++ object
- const PANEL* m_owner; // the panel itself
- } UserHook;
-
- void init(); // Initialize the panel object
-
-protected:
- void set_user(void *user) {
- UserHook* uptr = (UserHook*)::panel_userptr (p);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
- uptr->m_user = user;
- }
- // Set the user pointer of the panel.
-
- void *get_user() {
- UserHook* uptr = (UserHook*)::panel_userptr (p);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
- return uptr->m_user;
- }
-
- void OnError (int err) const THROWS((NCursesPanelException)) {
- if (err==ERR)
- THROW(new NCursesPanelException (this, err));
- }
- // If err is equal to the curses error indicator ERR, an error handler
- // is called.
-
-public:
- NCursesPanel(int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0)
- : NCursesWindow(lines,cols,begin_y,begin_x) {
- init();
- }
- // Create a panel with this size starting at the requested position.
-
- NCursesPanel() : NCursesWindow(::stdscr) { init(); }
- // This constructor creates the default Panel associated with the
- // ::stdscr window
-
- virtual ~NCursesPanel();
-
- // basic manipulation
- inline void hide() {
- OnError (::hide_panel(p));
- }
- // Hide the panel. It stays in the stack but becomes invisible.
-
- inline void show() {
- OnError (::show_panel(p));
- }
- // Show the panel, i.e. make it visible.
-
- inline void top() {
- OnError (::top_panel(p));
- }
- // Make this panel the top panel in the stack.
-
- inline void bottom() {
- OnError (::bottom_panel(p));
- }
- // Make this panel the bottom panel in the stack.
- // N.B.: The panel associated with ::stdscr is always on the bottom. So
- // actually bottom() makes the panel the first above ::stdscr.
-
- virtual int mvwin(int y, int x) {
- OnError(::move_panel(p, y, x));
- return OK;
- }
-
- inline bool hidden() const {
- return (::panel_hidden (p) ? TRUE : FALSE);
- }
- // Return TRUE if the panel is hidden, FALSE otherwise.
-
-/* The functions panel_above() and panel_below() are not reflected in
- the NCursesPanel class. The reason for this is, that we cannot
- assume that a panel retrieved by those operations is one wrapped
- by a C++ class. Although this situation might be handled, we also
- need a reverse mapping from PANEL to NCursesPanel which needs some
- redesign of the low level stuff. At the moment, we define them in the
- interface but they will always produce an error. */
- inline NCursesPanel& above() const {
- OnError(ERR);
- return *dummy;
- }
-
- inline NCursesPanel& below() const {
- OnError(ERR);
- return *dummy;
- }
-
- // Those two are rewrites of the corresponding virtual members of
- // NCursesWindow
- virtual int refresh();
- // Propagate all panel changes to the virtual screen and update the
- // physical screen.
-
- virtual int noutrefresh();
- // Propagate all panel changes to the virtual screen.
-
- static void redraw();
- // Redraw all panels.
-
- // decorations
- virtual void frame(const char* title=NULL,
- const char* btitle=NULL);
- // Put a frame around the panel and put the title centered in the top line
- // and btitle in the bottom line.
-
- virtual void boldframe(const char* title=NULL,
- const char* btitle=NULL);
- // Same as frame(), but use highlighted attributes.
-
- virtual void label(const char* topLabel,
- const char* bottomLabel);
- // Put the title centered in the top line and btitle in the bottom line.
-
- virtual void centertext(int row,const char* label);
- // Put the label text centered in the specified row.
-};
-
-/* We use templates to provide a typesafe mechanism to associate
- * user data with a panel. A NCursesUserPanel<T> is a panel
- * associated with some user data of type T.
- */
-template<class T> class NCursesUserPanel : public NCursesPanel
-{
-public:
- NCursesUserPanel (int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesPanel (lines, cols, begin_y, begin_x) {
- if (p)
- set_user ((void *)p_UserData);
- };
- // This creates an user panel of the requested size with associated
- // user data pointed to by p_UserData.
-
- NCursesUserPanel(const T* p_UserData = (T*)0) : NCursesPanel() {
- if (p)
- set_user((void *)p_UserData);
- };
- // This creates an user panel associated with the ::stdscr and user data
- // pointed to by p_UserData.
-
- virtual ~NCursesUserPanel() {};
-
- T* UserData (void) const {
- return (T*)get_user ();
- };
- // Retrieve the user data associated with the panel.
-
- virtual void setUserData (const T* p_UserData) {
- if (p)
- set_user ((void *)p_UserData);
- }
- // Associate the user panel with the user data pointed to by p_UserData.
-};
-
-#endif // _CURSESP_H
diff --git a/ncurses-5.2/c++/cursespad.cc b/ncurses-5.2/c++/cursespad.cc
deleted file mode 100644
index e1ae334..0000000
--- a/ncurses-5.2/c++/cursespad.cc
+++ /dev/null
@@ -1,270 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 <juergen.pfeifer@gmx.net> 1999 *
- ****************************************************************************/
-
-#include "etip.h"
-#include "cursesw.h"
-#include "internal.h"
-
-MODULE_ID("$Id$")
-
-NCursesPad::NCursesPad(int lines, int cols)
- : NCursesWindow(),
- viewWin((NCursesWindow*)0),
- viewSub((NCursesWindow*)0),
- h_gridsize(0), v_gridsize(0),
- min_row(0), min_col(0)
-{
- w = ::newpad(lines,cols);
- if ((WINDOW*)0==w) {
- count--;
- err_handler("Cannot construct window");
- }
- alloced = TRUE;
-}
-
-
-int NCursesPad::driver (int key) {
- // Default implementation
- switch(key) {
- case KEY_UP:
- // =======
- return REQ_PAD_UP;
- case KEY_DOWN:
- // =========
- return REQ_PAD_DOWN;
- case KEY_LEFT:
- // =========
- return REQ_PAD_LEFT;
- case KEY_RIGHT:
- // ==========
- return REQ_PAD_RIGHT;
- case KEY_EXIT:
- // =========
- case CTRL('X'):
- // ==========
- return REQ_PAD_EXIT;
-
- default: return(key);
- }
-}
-
-
-void NCursesPad::operator()(void) {
- NCursesWindow* W = Win();
-
- if ((NCursesWindow*)0 != W) {
- int Width = W->width();
- int Height = W->height();
-
- int req = REQ_PAD_REFRESH;
-
- W->keypad(TRUE);
- W->meta(TRUE);
- refresh();
-
- do {
- bool changed = FALSE;
-
- switch (req) {
- case REQ_PAD_REFRESH:
- // ================
- changed = TRUE;
- break;
- case REQ_PAD_LEFT:
- // =============
- if (min_col > 0) {
- changed = TRUE;
- if (min_col < h_gridsize)
- min_col = 0;
- else
- min_col -= h_gridsize;
- }
- else
- OnNavigationError(req);
- break;
- case REQ_PAD_RIGHT:
- // ==============
- if (min_col < (width() - Width - 1)) {
- changed = TRUE;
- if (min_col > (width() - Width - h_gridsize - 1))
- min_col = width() - Width - 1;
- else
- min_col += h_gridsize;
- }
- else
- OnNavigationError(req);
- break;
- case REQ_PAD_UP:
- // ===========
- if (min_row > 0) {
- changed = TRUE;
- if (min_row < v_gridsize)
- min_row = 0;
- else
- min_row -= v_gridsize;
- }
- else
- OnNavigationError(req);
- break;
- case REQ_PAD_DOWN:
- // =============
- if (min_row < (height() - Height - 1)) {
- changed = TRUE;
- if (min_row > (height() - Height - v_gridsize - 1))
- min_row = height() - Height - 1;
- else
- min_row += v_gridsize;
- }
- else
- OnNavigationError(req);
- break;
-
- default:
- OnUnknownOperation(req);
- }
-
- if (changed) {
- noutrefresh();
- W->syncup();
- OnOperation(req);
- viewWin->refresh();
- }
- } while( (req=driver(W->getch())) != REQ_PAD_EXIT );
- }
-}
-
-
-int NCursesPad::refresh() {
- int res = noutrefresh();
- if (res==OK && ((NCursesWindow*)0 != viewWin)) {
- res = (viewWin->refresh());
- }
- return(res);
-}
-
-int NCursesPad::noutrefresh() {
- int res = OK;
- NCursesWindow* W = Win();
- if ((NCursesWindow*)0 != W) {
- res = copywin(*W,min_row,min_col,
- 0,0,W->maxy(),W->maxx(),
- FALSE);
- if (res==OK) {
- W->syncup();
- res = viewWin->noutrefresh();
- }
- }
- return (res);
-}
-
-void NCursesPad::setWindow(NCursesWindow& view,
- int v_grid NCURSES_PARAM_INIT(1),
- int h_grid NCURSES_PARAM_INIT(1))
-{
- viewWin = &view;
- min_row = min_col = 0;
- if (h_grid <=0 || v_grid <= 0)
- err_handler("Illegal Gridsize");
- else {
- h_gridsize = h_grid;
- v_gridsize = v_grid;
- }
-}
-
-void NCursesPad::setSubWindow(NCursesWindow& sub)
-{
- if ((NCursesWindow*)0 == viewWin)
- err_handler("Pad has no viewport");
- if (!viewWin->isDescendant(sub))
- THROW(new NCursesException("NCursesFramePad", E_SYSTEM_ERROR));
- viewSub = &sub;
-}
-
-void NCursesFramedPad::OnOperation(int pad_req) {
- NCursesWindow* W = Win();
- NCursesWindow* Win = getWindow();
-
- if (((NCursesWindow*)0 != W) && ((NCursesWindow*)0 != Win)) {
- int Width = W->width();
- int Height = W->height();
- int i, row, col, h_len, v_len;
-
- h_len = (Width*Width + width() - 1)/width();
- if (h_len==0)
- h_len = 1;
- if (h_len > Width)
- h_len = Width;
-
- v_len = (Height*Height + height() - 1)/height();
- if (v_len==0)
- v_len = 1;
- if (v_len > Height)
- v_len = Height;
-
- col = (min_col * Width + width() - 1) / width();
- if (col + h_len > Width)
- col = Width - h_len;
-
- row = (min_row * Height + height() - 1) / height();
- if (row + v_len > Height)
- row = Height - v_len;
-
- Win->vline(1,Width+1,Height);
- Win->attron(A_REVERSE);
- if (v_len>=2) {
- Win->addch(row+1,Width+1,ACS_UARROW);
- for(i=2;i<v_len;i++)
- Win->addch(row+i,Width+1,' ');
- Win->addch(row+v_len,Width+1,ACS_DARROW);
- }
- else {
- for(i=1;i<=v_len;i++)
- Win->addch(row+i,Width+1,' ');
- }
- Win->attroff(A_REVERSE);
-
- Win->hline(Height+1,1,Width);
- Win->attron(A_REVERSE);
- if (h_len >= 2) {
- Win->addch(Height+1,col+1,ACS_LARROW);
- for(i=2;i<h_len;i++)
- Win->addch(Height+1,col+i,' ');
- Win->addch(Height+1,col+h_len,ACS_RARROW);
- }
- else {
- for(i=1;i<=h_len;i++)
- Win->addch(Height+1,col+i,' ');
- }
- Win->attroff(A_REVERSE);
- }
-}
diff --git a/ncurses-5.2/c++/cursesw.cc b/ncurses-5.2/c++/cursesw.cc
deleted file mode 100644
index 514347d..0000000
--- a/ncurses-5.2/c++/cursesw.cc
+++ /dev/null
@@ -1,434 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-
-/*
- Copyright (C) 1989 Free Software Foundation
- written by Eric Newton (newton@rocky.oswego.edu)
-
- This file is part of the GNU C++ Library. This library is free
- software; you can redistribute it and/or modify it under the terms of
- the GNU Library General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version. This library is distributed in the hope
- that it will be useful, but WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the GNU Library General Public License for more details.
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free Software
- Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
- modified by Ulrich Drepper (drepper@karlsruhe.gmd.de)
- and Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
-
- modified by Juergen Pfeifer (juergen.pfeifer@gmx.net)
-*/
-
-#include "cursesw.h"
-#include "internal.h"
-
-MODULE_ID("$Id$")
-
-#define COLORS_NEED_INITIALIZATION -1
-#define COLORS_NOT_INITIALIZED 0
-#define COLORS_MONOCHROME 1
-#define COLORS_ARE_REALLY_THERE 2
-
-// declare static variables for the class
-long NCursesWindow::count = 0L;
-bool NCursesWindow::b_initialized = FALSE;
-
-#if defined(__GNUG__)
-# ifndef _IO_va_list
-# define _IO_va_list char *
-# endif
-#endif
-
-int
-NCursesWindow::scanw(const char* fmt, ...)
-{
-#if defined(__GNUG__)
- va_list args;
- va_start(args, fmt);
- char buf[BUFSIZ];
- int result = wgetstr(w, buf);
- if (result == OK) {
- strstreambuf ss(buf, sizeof(buf));
- result = ss.vscan(fmt, (_IO_va_list)args);
- }
- va_end(args);
- return result;
-#else
- return ERR;
-#endif
-}
-
-
-int
-NCursesWindow::scanw(int y, int x, const char* fmt, ...)
-{
-#if defined(__GNUG__)
- va_list args;
- va_start(args, fmt);
- char buf[BUFSIZ];
- int result = wmove(w, y, x);
- if (result == OK) {
- result = wgetstr(w, buf);
- if (result == OK) {
- strstreambuf ss(buf, sizeof(buf));
- result = ss.vscan(fmt, (_IO_va_list)args);
- }
- }
- va_end(args);
- return result;
-#else
- return ERR;
-#endif
-}
-
-
-int
-NCursesWindow::printw(const char * fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- char buf[BUFSIZ];
- vsprintf(buf, fmt, args);
- va_end(args);
- return waddstr(w, buf);
-}
-
-
-int
-NCursesWindow::printw(int y, int x, const char * fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- int result = wmove(w, y, x);
- if (result == OK) {
- char buf[BUFSIZ];
- vsprintf(buf, fmt, args);
- result = waddstr(w, buf);
- }
- va_end(args);
- return result;
-}
-
-
-void
-NCursesWindow::init(void)
-{
- leaveok(0);
- keypad(1);
- meta(1);
-}
-
-void
-NCursesWindow::err_handler(const char *msg) const THROWS(NCursesException)
-{
- THROW(new NCursesException(msg));
-}
-
-void
-NCursesWindow::initialize() {
- if (!b_initialized) {
- ::initscr();
- b_initialized = TRUE;
- if (colorInitialized==COLORS_NEED_INITIALIZATION) {
- colorInitialized=COLORS_NOT_INITIALIZED;
- useColors();
- }
- ::noecho();
- ::cbreak();
- }
-}
-
-NCursesWindow::NCursesWindow() {
- if (!b_initialized)
- initialize();
-
- w = (WINDOW *)0;
- init();
- alloced = FALSE;
- subwins = par = sib = 0;
- count++;
-}
-
-NCursesWindow::NCursesWindow(int lines, int cols, int begin_y, int begin_x)
-{
- if (!b_initialized)
- initialize();
-
- w = ::newwin(lines, cols, begin_y, begin_x);
- if (w == 0) {
- err_handler("Cannot construct window");
- }
- init();
-
- alloced = TRUE;
- subwins = par = sib = 0;
- count++;
-}
-
-NCursesWindow::NCursesWindow(WINDOW* &window)
-{
- if (!b_initialized)
- initialize();
-
- w = window;
- init();
- alloced = FALSE;
- subwins = par = sib = 0;
- count++;
-}
-
-NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
- int begin_y, int begin_x, char absrel)
-{
- if (absrel == 'a') { // absolute origin
- begin_y -= win.begy();
- begin_x -= win.begx();
- }
-
- // Even though we treat subwindows as a tree, the standard curses
- // library needs the `subwin' call to link to the parent in
- // order to correctly perform refreshes, etc.
- // Friendly enough, this also works for pads.
- w = ::derwin(win.w, l, c, begin_y, begin_x);
- if (w == 0) {
- err_handler("Cannot construct subwindow");
- }
-
- par = &win;
- sib = win.subwins;
- win.subwins = this;
- subwins = 0;
- alloced = TRUE;
- count++;
-}
-
-NCursesWindow::NCursesWindow(NCursesWindow& win,
- bool do_box NCURSES_PARAM_INIT(TRUE))
-{
- w = :: derwin(win.w,win.height()-2,win.width()-2,1,1);
- if (w == 0) {
- err_handler("Cannot construct subwindow");
- }
-
- par = &win;
- sib = win.subwins;
- win.subwins = this;
- subwins = 0;
- alloced = TRUE;
- count++;
-
- if (do_box) {
- win.box();
- win.touchwin();
- }
-}
-
-NCursesWindow NCursesWindow::Clone() {
- WINDOW *d = ::dupwin(w);
- NCursesWindow W(d);
- W.subwins = subwins;
- W.sib = sib;
- W.par = par;
- W.alloced = alloced;
- return W;
-}
-
-typedef int (*RIPOFFINIT)(NCursesWindow&);
-static RIPOFFINIT R_INIT[5]; // There can't be more
-static int r_init_idx = 0;
-static RIPOFFINIT* prip = R_INIT;
-
-extern "C" int _nc_ripoffline(int,int (*init)(WINDOW*,int));
-
-NCursesWindow::NCursesWindow(WINDOW *win, int cols) {
- w = win;
- assert((w->_maxx+1)==cols);
- alloced = FALSE;
- subwins = par = sib = 0;
-}
-
-int NCursesWindow::ripoff_init(WINDOW *w, int cols)
-{
- int res = ERR;
-
- RIPOFFINIT init = *prip++;
- if (init) {
- NCursesWindow* W = new NCursesWindow(w,cols);
- res = init(*W);
- }
- return res;
-}
-
-int NCursesWindow::ripoffline(int ripoff_lines,
- int (*init)(NCursesWindow& win)) {
- int code = ::_nc_ripoffline(ripoff_lines,ripoff_init);
- if (code==OK && init && ripoff_lines) {
- R_INIT[r_init_idx++] = init;
- }
- return code;
-}
-
-bool
-NCursesWindow::isDescendant(NCursesWindow& win) {
- for (NCursesWindow* p = subwins; p != NULL; p = p->sib) {
- if (p==&win)
- return TRUE;
- else {
- if (p->isDescendant(win))
- return TRUE;
- }
- }
- return FALSE;
-}
-
-void
-NCursesWindow::kill_subwindows()
-{
- for (NCursesWindow* p = subwins; p != 0; p = p->sib) {
- p->kill_subwindows();
- if (p->alloced) {
- if (p->w != 0)
- ::delwin(p->w);
- p->alloced = FALSE;
- }
- p->w = 0; // cause a run-time error if anyone attempts to use...
- }
-}
-
-
-NCursesWindow::~NCursesWindow()
-{
- kill_subwindows();
-
- if (par != 0) { // Snip us from the parent's list of subwindows.
- NCursesWindow * win = par->subwins;
- NCursesWindow * trail = 0;
- for (;;) {
- if (win == 0)
- break;
- else if (win == this) {
- if (trail != 0)
- trail->sib = win->sib;
- else
- par->subwins = win->sib;
- break;
- } else {
- trail = win;
- win = win->sib;
- }
- }
- }
-
- if (alloced && w != 0)
- delwin(w);
-
- if (alloced) {
- --count;
- if (count == 0) {
- ::endwin();
- }
- else if (count < 0) { // cannot happen!
- err_handler("Too many windows destroyed");
- }
- }
-}
-
-// ---------------------------------------------------------------------
-// Color stuff
-//
-int NCursesWindow::colorInitialized = COLORS_NOT_INITIALIZED;
-
-void
-NCursesWindow::useColors(void)
-{
- if (colorInitialized == COLORS_NOT_INITIALIZED) {
- if (b_initialized) {
- if (::has_colors()) {
- ::start_color();
- colorInitialized = COLORS_ARE_REALLY_THERE;
- }
- else
- colorInitialized = COLORS_MONOCHROME;
- }
- else
- colorInitialized = COLORS_NEED_INITIALIZATION;
- }
-}
-
-short
-NCursesWindow::getcolor(int getback) const
-{
- short fore, back;
-
- if (colorInitialized==COLORS_ARE_REALLY_THERE) {
- if (pair_content((short)PAIR_NUMBER(w->_attrs), &fore, &back))
- err_handler("Can't get color pair");
- }
- else {
- // Monochrome means white on black
- back = COLOR_BLACK;
- fore = COLOR_WHITE;
- }
- return getback ? back : fore;
-}
-
-int NCursesWindow::NumberOfColors()
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return COLORS;
- else
- return 1; // monochrome (actually there are two ;-)
-}
-
-short
-NCursesWindow::getcolor() const
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return PAIR_NUMBER(w->_attrs);
- else
- return 0; // we only have pair zero
-}
-
-int
-NCursesWindow::setpalette(short fore, short back, short pair)
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return init_pair(pair, fore, back);
- else
- return OK;
-}
-
-int
-NCursesWindow::setpalette(short fore, short back)
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return setpalette(fore, back, (short)PAIR_NUMBER(w->_attrs));
- else
- return OK;
-}
-
-
-int
-NCursesWindow::setcolor(short pair)
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE) {
- if ((pair < 1) || (pair > COLOR_PAIRS))
- err_handler("Can't set color pair");
-
- attroff(A_COLOR);
- attrset(COLOR_PAIR(pair));
- }
- return OK;
-}
-
-#if HAVE_HAS_KEY
-extern "C" int _nc_has_mouse(void);
-
-bool NCursesWindow::has_mouse() const {
- return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
- ? TRUE : FALSE);
-}
-#endif
diff --git a/ncurses-5.2/c++/cursesw.h b/ncurses-5.2/c++/cursesw.h
deleted file mode 100644
index 2a68d5a..0000000
--- a/ncurses-5.2/c++/cursesw.h
+++ /dev/null
@@ -1,1375 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-#ifndef _CURSESW_H
-#define _CURSESW_H
-
-// $Id$
-
-#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
-#include <strstream.h>
-#endif
-
-extern "C" {
-# include <curses.h>
-}
-
-/* SCO 3.2v4 curses.h includes term.h, which defines lines as a macro.
- Undefine it here, because NCursesWindow uses lines as a method. */
-#undef lines
-
-/* "Convert" macros to inlines. We'll define it as another symbol to avoid
- * conflict with library symbols.
- */
-#undef UNDEF
-#define UNDEF(name) CUR_ ##name
-
-#ifdef addch
-inline int UNDEF(addch)(chtype ch) { return addch(ch); }
-#undef addch
-#define addch UNDEF(addch)
-#endif
-
-#ifdef echochar
-inline int UNDEF(echochar)(chtype ch) { return echochar(ch); }
-#undef echochar
-#define echochar UNDEF(echochar)
-#endif
-
-#ifdef insdelln
-inline int UNDEF(insdelln)(int n) { return insdelln(n); }
-#undef insdelln
-#define insdelln UNDEF(insdelln)
-#endif
-
-#ifdef addstr
-/* The (char*) cast is to hack around missing const's */
-inline int UNDEF(addstr)(const char * str) { return addstr((char*)str); }
-#undef addstr
-#define addstr UNDEF(addstr)
-#endif
-
-#ifdef attron
-inline int UNDEF(attron)(chtype at) { return attron(at); }
-#undef attron
-#define attron UNDEF(attron)
-#endif
-
-#ifdef attroff
-inline int UNDEF(attroff)(chtype at) { return attroff(at); }
-#undef attroff
-#define attroff UNDEF(attroff)
-#endif
-
-#ifdef attrset
-inline chtype UNDEF(attrset)(chtype at) { return attrset(at); }
-#undef attrset
-#define attrset UNDEF(attrset)
-#endif
-
-#ifdef color_set
-inline chtype UNDEF(color_set)(short p,void* opts) { return color_set(p,opts); }
-#undef color_set
-#define color_set UNDEF(color_set)
-#endif
-
-#ifdef border
-inline int UNDEF(border)(chtype ls, chtype rs, chtype ts, chtype bs, chtype tl, chtype tr, chtype bl, chtype br)
-{ return border(ls,rs,ts,bs,tl,tr,bl,br); }
-#undef border
-#define border UNDEF(border)
-#endif
-
-#ifdef box
-inline int UNDEF(box)(WINDOW *win, int v, int h) { return box(win, v, h); }
-#undef box
-#define box UNDEF(box)
-#endif
-
-#ifdef mvwhline
-inline int UNDEF(mvwhline)(WINDOW *win,int y,int x,chtype c,int n) {
- return mvwhline(win,y,x,c,n); }
-#undef mvwhline
-#define mvwhline UNDEF(mvwhline)
-#endif
-
-#ifdef mvwvline
-inline int UNDEF(mvwvline)(WINDOW *win,int y,int x,chtype c,int n) {
- return mvwvline(win,y,x,c,n); }
-#undef mvwvline
-#define mvwvline UNDEF(mvwvline)
-#endif
-
-#ifdef clear
-inline int UNDEF(clear)() { return clear(); }
-#undef clear
-#define clear UNDEF(clear)
-#endif
-
-#ifdef clearok
-inline int UNDEF(clearok)(WINDOW* win, bool bf) { return clearok(win, bf); }
-#undef clearok
-#define clearok UNDEF(clearok)
-#else
-extern "C" int clearok(WINDOW*, bool);
-#endif
-
-#ifdef clrtobot
-inline int UNDEF(clrtobot)() { return clrtobot(); }
-#undef clrtobot
-#define clrtobot UNDEF(clrtobot)
-#endif
-
-#ifdef clrtoeol
-inline int UNDEF(clrtoeol)() { return clrtoeol(); }
-#undef clrtoeol
-#define clrtoeol UNDEF(clrtoeol)
-#endif
-
-#ifdef delch
-inline int UNDEF(delch)() { return delch(); }
-#undef delch
-#define delch UNDEF(delch)
-#endif
-
-#ifdef deleteln
-inline int UNDEF(deleteln)() { return deleteln(); }
-#undef deleteln
-#define deleteln UNDEF(deleteln)
-#endif
-
-#ifdef erase
-inline int UNDEF(erase)() { return erase(); }
-#undef erase
-#define erase UNDEF(erase)
-#endif
-
-#ifdef flushok
-inline int UNDEF(flushok)(WINDOW* _win, bool _bf) {
- return flushok(_win, _bf); }
-#undef flushok
-#define flushok UNDEF(flushok)
-#else
-#define _no_flushok
-#endif
-
-#ifdef getch
-inline int UNDEF(getch)() { return getch(); }
-#undef getch
-#define getch UNDEF(getch)
-#endif
-
-#ifdef getstr
-inline int UNDEF(getstr)(char *_str) { return getstr(_str); }
-#undef getstr
-#define getstr UNDEF(getstr)
-#endif
-
-#ifdef instr
-inline int UNDEF(instr)(char *_str) { return instr(_str); }
-#undef instr
-#define instr UNDEF(instr)
-#endif
-
-#ifdef innstr
-inline int UNDEF(innstr)(char *_str, int n) { return innstr(_str,n); }
-#undef innstr
-#define innstr UNDEF(innstr)
-#endif
-
-#ifdef mvwinnstr
-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
-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
-inline int UNDEF(winsstr)(WINDOW *w, const char *_str) {
- 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) {
- return mvwinsstr(w,y,x,_str); }
-#undef mvwinsstr
-#define mvwinsstr UNDEF(mvwinsstr)
-#endif
-
-#ifdef insstr
-inline int UNDEF(insstr)(const char *_str) {
- return insstr(_str); }
-#undef insstr
-#define insstr UNDEF(insstr)
-#endif
-
-#ifdef mvinsstr
-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
-inline int UNDEF(insnstr)(const char *_str, int n) {
- return insnstr(_str,n); }
-#undef insnstr
-#define insnstr UNDEF(insnstr)
-#endif
-
-#ifdef mvwinsnstr
-inline int UNDEF(mvwinsnstr)(WINDOW *w, int y, int x,const char *_str, int n) {
- return mvwinsnstr(w,y,x,_str,n); }
-#undef mvwinsnstr
-#define mvwinsnstr UNDEF(mvwinsnstr)
-#endif
-
-#ifdef mvinsnstr
-inline int UNDEF(mvinsnstr)(int y, int x,const char *_str, int n) {
- return mvinsnstr(y,x,_str,n); }
-#undef mvinsnstr
-#define mvinsnstr UNDEF(mvinsnstr)
-#endif
-
-#ifdef getnstr
-inline int UNDEF(getnstr)(char *_str, int n) { return getnstr(_str,n); }
-#undef getnstr
-#define getnstr UNDEF(getnstr)
-#endif
-
-#ifdef getyx
-inline void UNDEF(getyx)(const WINDOW* win, int& y, int& x) {
- getyx(win, y, x); }
-#undef getyx
-#define getyx UNDEF(getyx)
-#endif
-
-#ifdef getbegyx
-inline void UNDEF(getbegyx)(WINDOW* win, int& y, int& x) { getbegyx(win, y, x); }
-#undef getbegyx
-#define getbegyx UNDEF(getbegyx)
-#endif
-
-#ifdef getmaxyx
-inline void UNDEF(getmaxyx)(WINDOW* win, int& y, int& x) { getmaxyx(win, y, x); }
-#undef getmaxyx
-#define getmaxyx UNDEF(getmaxyx)
-#endif
-
-#ifdef hline
-inline int UNDEF(hline)(chtype ch, int n) { return hline(ch, n); }
-#undef hline
-#define hline UNDEF(hline)
-#endif
-
-#ifdef inch
-inline chtype UNDEF(inch)() { return inch(); }
-#undef inch
-#define inch UNDEF(inch)
-#endif
-
-#ifdef insch
-inline int UNDEF(insch)(char c) { return insch(c); }
-#undef insch
-#define insch UNDEF(insch)
-#endif
-
-#ifdef insertln
-inline int UNDEF(insertln)() { return insertln(); }
-#undef insertln
-#define insertln UNDEF(insertln)
-#endif
-
-#ifdef leaveok
-inline int UNDEF(leaveok)(WINDOW* win, bool bf) { return leaveok(win, bf); }
-#undef leaveok
-#define leaveok UNDEF(leaveok)
-#else
-extern "C" int leaveok(WINDOW* win, bool bf);
-#endif
-
-#ifdef move
-inline int UNDEF(move)(int x, int y) { return move(x, y); }
-#undef move
-#define move UNDEF(move)
-#endif
-
-#ifdef refresh
-inline int UNDEF(refresh)() { return refresh(); }
-#undef refresh
-#define refresh UNDEF(refresh)
-#endif
-
-#ifdef redrawwin
-inline int UNDEF(redrawwin)(WINDOW *win) { return redrawwin(win); }
-#undef redrawwin
-#define redrawwin UNDEF(redrawwin)
-#endif
-
-#ifdef scrl
-inline int UNDEF(scrl)(int l) { return scrl(l); }
-#undef scrl
-#define scrl UNDEF(scrl)
-#endif
-
-#ifdef scroll
-inline int UNDEF(scroll)(WINDOW *win) { return scroll(win); }
-#undef scroll
-#define scroll UNDEF(scroll)
-#endif
-
-#ifdef scrollok
-inline int UNDEF(scrollok)(WINDOW* win, bool bf) { return scrollok(win, bf); }
-#undef scrollok
-#define scrollok UNDEF(scrollok)
-#else
-#if defined(__NCURSES_H)
-extern "C" int scrollok(WINDOW*, bool);
-#else
-extern "C" int scrollok(WINDOW*, char);
-#endif
-#endif
-
-#ifdef setscrreg
-inline int UNDEF(setscrreg)(int t, int b) { return setscrreg(t, b); }
-#undef setscrreg
-#define setscrreg UNDEF(setscrreg)
-#endif
-
-#ifdef standend
-inline int UNDEF(standend)() { return standend(); }
-#undef standend
-#define standend UNDEF(standend)
-#endif
-
-#ifdef standout
-inline int UNDEF(standout)() { return standout(); }
-#undef standout
-#define standout UNDEF(standout)
-#endif
-
-#ifdef subpad
-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)
-#endif
-
-#ifdef timeout
-inline void UNDEF(timeout)(int delay) { timeout(delay); }
-#undef timeout
-#define timeout UNDEF(timeout)
-#endif
-
-#ifdef touchline
-inline int UNDEF(touchline)(WINDOW *win, int s, int c)
-{ return touchline(win,s,c); }
-#undef touchline
-#define touchline UNDEF(touchline)
-#endif
-
-#ifdef touchwin
-inline int UNDEF(touchwin)(WINDOW *win) { return touchwin(win); }
-#undef touchwin
-#define touchwin UNDEF(touchwin)
-#endif
-
-#ifdef untouchwin
-inline int UNDEF(untouchwin)(WINDOW *win) { return untouchwin(win); }
-#undef untouchwin
-#define untouchwin UNDEF(untouchwin)
-#endif
-
-#ifdef vline
-inline int UNDEF(vline)(chtype ch, int n) { return vline(ch, n); }
-#undef vline
-#define vline UNDEF(vline)
-#endif
-
-#ifdef waddstr
-inline int UNDEF(waddstr)(WINDOW *win, char *str) { return waddstr(win, str); }
-#undef waddstr
-#define waddstr UNDEF(waddstr)
-#endif
-
-#ifdef waddchstr
-inline int UNDEF(waddchstr)(WINDOW *win, chtype *at) { return waddchstr(win, at); }
-#undef waddchstr
-#define waddchstr UNDEF(waddchstr)
-#endif
-
-#ifdef wstandend
-inline int UNDEF(wstandend)(WINDOW *win) { return wstandend(win); }
-#undef wstandend
-#define wstandend UNDEF(wstandend)
-#endif
-
-#ifdef wstandout
-inline int UNDEF(wstandout)(WINDOW *win) { return wstandout(win); }
-#undef wstandout
-#define wstandout UNDEF(wstandout)
-#endif
-
-
-#ifdef wattroff
-inline int UNDEF(wattroff)(WINDOW *win, int att) { return wattroff(win, att); }
-#undef wattroff
-#define wattroff UNDEF(wattroff)
-#endif
-
-#ifdef chgat
-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)
-#endif
-
-#ifdef mvchgat
-inline int UNDEF(mvchgat)(int y, int x, int n,
- attr_t attr, short color, const void *opts) {
- return mvchgat(y,x,n,attr,color,opts); }
-#undef mvchgat
-#define mvchgat UNDEF(mvchgat)
-#endif
-
-#ifdef mvwchgat
-inline int UNDEF(mvwchgat)(WINDOW *win, int y, int x, int n,
- attr_t attr, short color, const void *opts) {
- return mvwchgat(win,y,x,n,attr,color,opts); }
-#undef mvwchgat
-#define mvwchgat UNDEF(mvwchgat)
-#endif
-
-#ifdef wattrset
-inline int UNDEF(wattrset)(WINDOW *win, int att) { return wattrset(win, att); }
-#undef wattrset
-#define wattrset UNDEF(wattrset)
-#endif
-
-#ifdef winch
-inline chtype UNDEF(winch)(const WINDOW* win) { return winch(win); }
-#undef winch
-#define winch UNDEF(winch)
-#endif
-
-#ifdef mvwaddch
-inline int UNDEF(mvwaddch)(WINDOW *win, int y, int x, const chtype ch)
-{ return mvwaddch(win, y, x, ch); }
-#undef mvwaddch
-#define mvwaddch UNDEF(mvwaddch)
-#endif
-
-#ifdef mvwaddchnstr
-inline int UNDEF(mvwaddchnstr)(WINDOW *win, int y, int x, chtype *str, int n)
-{ return mvwaddchnstr(win, y, x, str, n); }
-#undef mvwaddchnstr
-#define mvwaddchnstr UNDEF(mvwaddchnstr)
-#endif
-
-#ifdef mvwaddchstr
-inline int UNDEF(mvwaddchstr)(WINDOW *win, int y, int x, chtype *str)
-{ return mvwaddchstr(win, y, x, str); }
-#undef mvwaddchstr
-#define mvwaddchstr UNDEF(mvwaddchstr)
-#endif
-
-#ifdef addnstr
-inline int UNDEF(addnstr)(const char *str, int n)
-{ return addnstr((char*)str, n); }
-#undef addnstr
-#define addnstr UNDEF(addnstr)
-#endif
-
-#ifdef mvwaddnstr
-inline int UNDEF(mvwaddnstr)(WINDOW *win, int y, int x, const char *str, int n)
-{ return mvwaddnstr(win, y, x, (char*)str, n); }
-#undef mvwaddnstr
-#define mvwaddnstr UNDEF(mvwaddnstr)
-#endif
-
-#ifdef mvwaddstr
-inline int UNDEF(mvwaddstr)(WINDOW *win, int y, int x, const char * str)
-{ return mvwaddstr(win, y, x, (char*)str); }
-#undef mvwaddstr
-#define mvwaddstr UNDEF(mvwaddstr)
-#endif
-
-#ifdef mvwdelch
-inline int UNDEF(mvwdelch)(WINDOW *win, int y, int x)
-{ return mvwdelch(win, y, x); }
-#undef mvwdelch
-#define mvwdelch UNDEF(mvwdelch)
-#endif
-
-#ifdef mvwgetch
-inline int UNDEF(mvwgetch)(WINDOW *win, int y, int x) { return mvwgetch(win, y, x);}
-#undef mvwgetch
-#define mvwgetch UNDEF(mvwgetch)
-#endif
-
-#ifdef mvwgetstr
-inline int UNDEF(mvwgetstr)(WINDOW *win, int y, int x, char *str)
-{return mvwgetstr(win,y,x, str);}
-#undef mvwgetstr
-#define mvwgetstr UNDEF(mvwgetstr)
-#endif
-
-#ifdef mvwgetnstr
-inline int UNDEF(mvwgetnstr)(WINDOW *win, int y, int x, char *str, int n)
-{return mvwgetnstr(win,y,x, str,n);}
-#undef mvwgetnstr
-#define mvwgetnstr UNDEF(mvwgetnstr)
-#endif
-
-#ifdef mvwinch
-inline chtype UNDEF(mvwinch)(WINDOW *win, int y, int x) {
- return mvwinch(win, y, x);}
-#undef mvwinch
-#define mvwinch UNDEF(mvwinch)
-#endif
-
-#ifdef mvwinsch
-inline int UNDEF(mvwinsch)(WINDOW *win, int y, int x, char c)
-{ return mvwinsch(win, y, x, c); }
-#undef mvwinsch
-#define mvwinsch UNDEF(mvwinsch)
-#endif
-
-#ifdef mvaddch
-inline int UNDEF(mvaddch)(int y, int x, chtype ch)
-{ return mvaddch(y, x, ch); }
-#undef mvaddch
-#define mvaddch UNDEF(mvaddch)
-#endif
-
-#ifdef mvaddnstr
-inline int UNDEF(mvaddnstr)(int y, int x, const char *str, int n)
-{ return mvaddnstr(y, x, (char*)str, n); }
-#undef mvaddnstr
-#define mvaddnstr UNDEF(mvaddnstr)
-#endif
-
-#ifdef mvaddstr
-inline int UNDEF(mvaddstr)(int y, int x, const char * str)
-{ return mvaddstr(y, x, (char*)str); }
-#undef mvaddstr
-#define mvaddstr UNDEF(mvaddstr)
-#endif
-
-#ifdef mvdelch
-inline int UNDEF(mvdelch)(int y, int x) { return mvdelch(y, x);}
-#undef mvdelch
-#define mvdelch UNDEF(mvdelch)
-#endif
-
-#ifdef mvgetch
-inline int UNDEF(mvgetch)(int y, int x) { return mvgetch(y, x);}
-#undef mvgetch
-#define mvgetch UNDEF(mvgetch)
-#endif
-
-#ifdef mvgetstr
-inline int UNDEF(mvgetstr)(int y, int x, char *str) {return mvgetstr(y, x, str);}
-#undef mvgetstr
-#define mvgetstr UNDEF(mvgetstr)
-#endif
-
-#ifdef mvgetnstr
-inline int UNDEF(mvgetnstr)(int y, int x, char *str, int n) {
- return mvgetnstr(y, x, str,n);}
-#undef mvgetnstr
-#define mvgetnstr UNDEF(mvgetnstr)
-#endif
-
-#ifdef mvinch
-inline chtype UNDEF(mvinch)(int y, int x) { return mvinch(y, x);}
-#undef mvinch
-#define mvinch UNDEF(mvinch)
-#endif
-
-#ifdef mvinsch
-inline int UNDEF(mvinsch)(int y, int x, char c)
-{ return mvinsch(y, x, c); }
-#undef mvinsch
-#define mvinsch UNDEF(mvinsch)
-#endif
-
-#ifdef napms
-inline void UNDEF(napms)(unsigned long x) { napms(x); }
-#undef napms
-#define napms UNDEF(napms)
-#endif
-
-#ifdef fixterm
-inline int UNDEF(fixterm)(void) { return fixterm(); }
-#undef fixterm
-#define fixterm UNDEF(fixterm)
-#endif
-
-#ifdef resetterm
-inline int UNDEF(resetterm)(void) { return resetterm(); }
-#undef resetterm
-#define resetterm UNDEF(resetterm)
-#endif
-
-#ifdef saveterm
-inline int UNDEF(saveterm)(void) { return saveterm(); }
-#undef saveterm
-#define saveterm UNDEF(saveterm)
-#endif
-
-#ifdef crmode
-inline int UNDEF(crmode)(void) { return crmode(); }
-#undef crmode
-#define crmode UNDEF(crmode)
-#endif
-
-#ifdef nocrmode
-inline int UNDEF(nocrmode)(void) { return nocrmode(); }
-#undef nocrmode
-#define nocrmode UNDEF(nocrmode)
-#endif
-
-#ifdef getbkgd
-inline chtype UNDEF(getbkgd)(const WINDOW *win) { return getbkgd(win); }
-#undef getbkgd
-#define getbkgd UNDEF(getbkgd)
-#endif
-
-#ifdef bkgd
-inline int UNDEF(bkgd)(chtype ch) { return bkgd(ch); }
-#undef bkgd
-#define bkgd UNDEF(bkgd)
-#endif
-
-#ifdef bkgdset
-inline void UNDEF(bkgdset)(chtype ch) { bkgdset(ch); }
-#undef bkgdset
-#define bkgdset UNDEF(bkgdset)
-#endif
-
-/*
- *
- * C++ class for windows.
- *
- *
- */
-
-class NCursesWindow
-{
- friend class NCursesMenu;
- friend class NCursesForm;
-
-private:
- static bool b_initialized;
- static void initialize();
- static int ripoff_init(WINDOW *,int);
-
- void init();
-
- short getcolor(int getback) const;
-
- static int setpalette(short fore, short back, short pair);
- static int colorInitialized;
-
- // This private constructor is only used during the initialization
- // of windows generated by ripoffline() calls.
- NCursesWindow(WINDOW* win, int cols);
-
-protected:
- void err_handler(const char *) const THROWS(NCursesException);
- // Signal an error with the given message text.
-
- static long count; // count of all active windows:
- // We rely on the c++ promise that
- // all otherwise uninitialized
- // static class vars are set to 0
-
- WINDOW* w; // the curses 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
-
- void kill_subwindows(); // disable all subwindows
- // Destroy all subwindows.
-
- /* Only for use by derived classes. They are then in charge to
- fill the member variables correctly. */
- NCursesWindow();
-
-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(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
- // absolute screen pos, else if `r', they are relative to par origin
-
- NCursesWindow(NCursesWindow& par,// parent window
- bool do_box = TRUE);
- // this is the very common case that we want to create the subwindow that
- // is two lines and two columns smaller and begins at (1,1).
- // We may automatically request the box around it.
-
- virtual ~NCursesWindow();
-
- NCursesWindow Clone();
- // Make an exact copy of the window.
-
- // Initialization.
- static void useColors(void);
- // Call this routine very early if you want to have colors.
-
- static int ripoffline(int ripoff_lines,
- 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.
- // This function must be called before any other ncurses function. The
- // creation of the window is defered until ncurses gets initialized.
- // The initialization function is then called.
-
- // -------------------------------------------------------------------------
- // terminal status
- // -------------------------------------------------------------------------
- int lines() const { return LINES; }
- // Number of lines on terminal, *not* window
-
- int cols() const { return COLS; }
- // Number of cols on terminal, *not* window
-
- int tabsize() const { return TABSIZE; }
- // Size of a tab on terminal, *not* window
-
- static int NumberOfColors();
- // Number of available colors
-
- int colors() const { return NumberOfColors(); }
- // Number of available colors
-
- // -------------------------------------------------------------------------
- // window status
- // -------------------------------------------------------------------------
- int height() const { return maxy() + 1; }
- // Number of lines in this window
-
- int width() const { return maxx() + 1; }
- // Number of columns in this window
-
- int begx() const { return w->_begx; }
- // Column of top left corner relative to stdscr
-
- int begy() const { return w->_begy; }
- // Line of top left corner relative to stdscr
-
- int maxx() const { return w->_maxx; }
- // Largest x coord in window
-
- int maxy() const { return w->_maxy; }
- // Largest y coord in window
-
- short getcolor() const;
- // Actual color pair
-
- short foreground() const { return getcolor(0); }
- // Actual foreground color
-
- short background() const { return getcolor(1); }
- // Actual background color
-
- int setpalette(short fore, short back);
- // Set color palette entry
-
- int setcolor(short pair);
- // Set actually used palette entry
-
- // -------------------------------------------------------------------------
- // window positioning
- // -------------------------------------------------------------------------
- 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.
-
- // -------------------------------------------------------------------------
- // coordinate positioning
- // -------------------------------------------------------------------------
- int move(int y, int x) { return ::wmove(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
-
- 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.
-
- // -------------------------------------------------------------------------
- // input
- // -------------------------------------------------------------------------
- int getch() { return ::wgetch(w); }
- // 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) {
- 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) {
- return ::mvwgetnstr(w,y,x,str,n); }
- // Move the cursor to the requested position and then perform the getstr()
- // as described above.
-
- int instr(char *s, int n=-1) { return ::winnstr(w,s,n); }
- // Get a string of characters from the window into the buffer s. Retrieve
- // at most n characters, if n is negative retrieve all characters up to the
- // end of the current line. Attributes are stripped from the characters.
-
- int instr(int y, int x, char *s, int n=-1) {
- return ::mvwinnstr(w,y,x,s,n); }
- // Move the cursor to the requested position and then perform the instr()
- // 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.
-#if __GNUG__ >= 2
- __attribute__ ((format (scanf, 2, 3)));
-#else
- ;
-#endif
-
- 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.
-#if __GNUG__ >= 2
- __attribute__ ((format (scanf, 4, 5)));
-#else
- ;
-#endif
-
- // -------------------------------------------------------------------------
- // output
- // -------------------------------------------------------------------------
- int addch(const chtype ch) { return ::waddch(w, ch); }
- // Put attributed character to the window.
-
- int addch(int y, int x, const chtype ch) {
- return ::mvwaddch(w,y,x,ch); }
- // Move cursor to the requested position and then put attributed character
- // to the window.
-
- 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) {
- 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.
-
- int addstr(int y, int x, const char * str, int n=-1) {
- return ::mvwaddnstr(w,y,x,(char*)str,n); }
- // Move the cursor to the requested position and then perform the addstr
- // as described above.
-
- int printw(const char* fmt, ...)
- // Do a formatted print to the window.
-#if __GNUG__ >= 2
- __attribute__ ((format (printf, 2, 3)));
-#else
- ;
-#endif
-
- int printw(int y, int x, const char * fmt, ...)
- // Move the cursor and then do a formatted print to the window.
-#if __GNUG__ >= 2
- __attribute__ ((format (printf, 4, 5)));
-#else
- ;
-#endif
-
- chtype inch() const { return ::winch(w); }
- // Retrieve attributed character under the current cursor position.
-
- chtype inch(int y, int x) { return ::mvwinch(w,y,x); }
- // Move cursor to requested position and then retrieve attributed character
- // at this position.
-
- int insch(chtype ch) { return ::winsch(w, ch); }
- // Insert attributed character into the window before current cursor
- // position.
-
- int insch(int y, int x, chtype ch) {
- return ::mvwinsch(w,y,x,(char)ch); }
- // Move cursor to requested position and then insert the attributed
- // character before that position.
-
- 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 insstr(const char *s, int n=-1) {
- return ::winsnstr(w,s,n); }
- // 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()
- // as described above.
-
- 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 attrset(chtype at) { return ::wattrset(w, (int) at); }
- // Set the window attributes;
-
- int color_set(short color_pair_number, void* opts=NULL) {
- return ::wcolor_set(w, color_pair_number, opts); }
- // Set the window color attribute;
-
- int chgat(int n,attr_t attr, short color, const void *opts=NULL) {
- return ::wchgat(w,n,attr,color,opts); }
- // Change the attributes of the next n characters in the current line. If
- // n is negative or greater than the number of remaining characters in the
- // line, the attributes will be changed up to the end of the line.
-
- int chgat(int y, int x,
- int n,attr_t attr, short color, const void *opts=NULL) {
- return ::mvwchgat(w,y,x,n,attr,color,opts); }
- // Move the cursor to the requested position and then perform chgat() as
- // described above.
-
- // -------------------------------------------------------------------------
- // background
- // -------------------------------------------------------------------------
- chtype getbkgd() const { return ::getbkgd(w); }
- // Get current background setting.
-
- int bkgd(const chtype ch) { return ::wbkgd(w,ch); }
- // Set the background property and apply it to the window.
-
- void bkgdset(chtype ch) { ::wbkgdset(w,ch); }
- // Set the background property.
-
- // -------------------------------------------------------------------------
- // borders
- // -------------------------------------------------------------------------
- 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
- // drawing characters. If you specifiy a zero as character, curses will try
- // to find a "nice" character.
-
- int border(chtype left=0, chtype right=0,
- chtype top =0, chtype bottom=0,
- chtype top_left =0, chtype top_right=0,
- chtype bottom_left =0, chtype bottom_right=0) {
- return ::wborder(w,left,right,top,bottom,top_left,top_right,
- bottom_left,bottom_right); }
- // Draw a border around the window with the given characters for the
- // various parts of the border. If you pass zero for a character, curses
- // will try to find "nice" characters.
-
- // -------------------------------------------------------------------------
- // lines and boxes
- // -------------------------------------------------------------------------
- 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.
-
- int hline(int y, int x, int len, chtype ch=0) {
- return ::mvwhline(w,y,x,ch,len); }
- // Move the cursor to the requested position and then draw a horizontal line.
-
- int vline(int len, chtype ch=0) { return ::wvline(w, ch, len); }
- // Draw a vertical line of len characters with the given character. If
- // you pass zero for the character, curses will try to find a "nice" one.
-
- 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
- // -------------------------------------------------------------------------
- int erase() { return ::werase(w); }
- // Erase the window.
-
- int clear() { return ::wclear(w); }
- // Clear the window.
-
- int clearok(bool bf) { return ::clearok(w, bf); }
- // Set/Reset the clear flag. If set, the next refresh() will clear the
- // screen.
-
- int clrtobot() { return ::wclrtobot(w); }
- // Clear to the end of the window.
-
- int clrtoeol() { return ::wclrtoeol(w); }
- // Clear to the end of the line.
-
- int delch() { return ::wdelch(w); }
- // 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
- // cursor.
-
- int deleteln() { return ::winsdelln(w,-1); }
- // Delete the current line.
-
- // -------------------------------------------------------------------------
- // screen control
- // -------------------------------------------------------------------------
- int scroll(int amount=1) { return ::wscrl(w,amount); }
- // Scroll amount lines. If amount is positive, scroll up, otherwise
- // scroll down.
-
- int scrollok(bool bf) { return ::scrollok(w, bf); }
- // If bf is TRUE, window scrolls if cursor is moved off the bottom
- // edge of the window or a scrolling region, otherwise the cursor is left
- // at the bottom line.
-
- int setscrreg(int from, int to) {
- return ::wsetscrreg(w,from,to); }
- // Define a soft scrolling region.
-
- int idlok(bool bf) { return ::idlok(w, bf); }
- // If bf is TRUE, use insert/delete line hardware support if possible.
- // Otherwise do it in software.
-
-
- void idcok(bool bf) { ::idcok(w, bf); }
- // If bf is TRUE, use insert/delete character hardware support if possible.
- // Otherwise do it in software.
-
- int touchwin() { return ::wtouchln(w,0,height(),1); }
- // Mark the whole window as modified.
-
- int untouchwin() { return ::wtouchln(w,0,height(),0); }
- // Mark the whole window as unmodified.
-
- 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.
-
- bool is_linetouched(int line) const {
- return (::is_linetouched(w,line) ? TRUE:FALSE); }
- // Return TRUE if line is marked as changed, FALSE otherwise
-
- bool is_wintouched() const {
- return (::is_wintouched(w) ? TRUE:FALSE); }
- // 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
- // it is after the update.
-
- int redrawln(int from, int n) { return ::wredrawln(w,from,n); }
- // Redraw n lines starting from the requested line
-
- int redrawwin() { return ::wredrawln(w,0,height()); }
- // Redraw the whole window
-
- int doupdate() { return ::doupdate(); }
- // Do all outputs to make the physical screen looking like the virtual one
-
- void syncdown() { ::wsyncdown(w); }
- // Propagate the changes down to all descendant windows
-
- void syncup() { ::wsyncup(w); }
- // Propagate the changes up in the hierarchy
-
- void cursyncup() { ::wcursyncup(w); }
- // Position the cursor in all ancestor windows corresponding to our setting
-
- int syncok(bool bf) { return ::syncok(w,bf); }
- // If called with bf=TRUE, syncup() is called whenever the window is changed
-
-#ifndef _no_flushok
- int flushok(bool bf) { return ::flushok(w, bf); }
-#endif
-
- void immedok(bool bf) { ::immedok(w,bf); }
- // If called with bf=TRUE, any change in the window will cause an
- // automatic immediate refresh()
-
- int keypad(bool bf) { return ::keypad(w, bf); }
- // If called with bf=TRUE, the application will interpret function keys.
-
- 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.
-
- int standout() { return ::wstandout(w); }
- // Enable "standout" attributes
-
- int standend() { return ::wstandend(w); }
- // Disable "standout" attributes
-
- // -------------------------------------------------------------------------
- // The next two are virtual, because we redefine them in the
- // NCursesPanel class.
- // -------------------------------------------------------------------------
- virtual int refresh() { return ::wrefresh(w); }
- // Propagate the changes in this window to the virtual screen and call
- // doupdate(). This is redefined in NCursesPanel.
-
- virtual int noutrefresh() { return ::wnoutrefresh(w); }
- // Propagate the changes in this window to the virtual screen. This is
- // redefined in NCursesPanel.
-
- // -------------------------------------------------------------------------
- // multiple window control
- // -------------------------------------------------------------------------
- int overlay(NCursesWindow& win) {
- return ::overlay(w, win.w); }
- // Overlay this window over win.
-
- int overwrite(NCursesWindow& win) {
- return ::overwrite(w, win.w); }
- // Overwrite win with this window.
-
- int copywin(NCursesWindow& win,
- int sminrow, int smincol,
- int dminrow, int dmincol,
- int dmaxrow, int dmaxcol, bool overlay=TRUE) {
- return ::copywin(w,win.w,sminrow,smincol,dminrow,dmincol,
- dmaxrow,dmaxcol,(int)(overlay?1:0)); }
- // Overlay or overwrite the rectangle in win given by dminrow,dmincol,
- // dmaxrow,dmaxcol with the rectangle in this window beginning at
- // sminrow,smincol.
-
- // -------------------------------------------------------------------------
- // Mouse related
- // -------------------------------------------------------------------------
- bool has_mouse() const;
- // Return TRUE if terminal supports a mouse, FALSE otherwise
-
- // -------------------------------------------------------------------------
- // traversal support
- // -------------------------------------------------------------------------
- NCursesWindow* child() { return subwins; }
- // Get the first child window.
-
- NCursesWindow* sibling() { return sib; }
- // Get the next child of my parent.
-
- NCursesWindow* parent() { return par; }
- // Get my parent.
-
- bool isDescendant(NCursesWindow& win);
- // Return TRUE if win is a descendant of this.
-};
-
-// -------------------------------------------------------------------------
-// We leave this here for compatibility reasons.
-// -------------------------------------------------------------------------
-class NCursesColorWindow : public NCursesWindow {
-public:
- NCursesColorWindow(WINDOW* &window) // useful only for stdscr
- : NCursesWindow(window) {
- useColors(); }
-
- NCursesColorWindow(int lines, // number of lines
- int cols, // number of columns
- int begin_y, // line origin
- int begin_x) // col origin
- : NCursesWindow(lines,cols,begin_y,begin_x) {
- useColors(); }
-
- NCursesColorWindow(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
- : NCursesWindow(par,lines,cols, // absolute screen pos,
- begin_y,begin_x, // else if `r', they are
- absrel ) { // relative to par origin
- useColors(); }
-};
-
-// These enum definitions really belong inside the NCursesPad class, but only
-// recent compilers support that feature.
-
- typedef enum {
- REQ_PAD_REFRESH = KEY_MAX + 1,
- REQ_PAD_UP,
- REQ_PAD_DOWN,
- REQ_PAD_LEFT,
- REQ_PAD_RIGHT,
- REQ_PAD_EXIT
- } Pad_Request;
-
- const Pad_Request PAD_LOW = REQ_PAD_REFRESH; // lowest op-code
- const Pad_Request PAD_HIGH = REQ_PAD_EXIT; // highest op-code
-
-// -------------------------------------------------------------------------
-// Pad Support. We allow an association of a pad with a "real" window
-// through which the pad may be viewed.
-// -------------------------------------------------------------------------
-class NCursesPad : public NCursesWindow {
-private:
- NCursesWindow* viewWin; // the "viewport" window
- NCursesWindow* viewSub; // the "viewport" subwindow
-
- int h_gridsize, v_gridsize;
-
-protected:
- int min_row, min_col; // top left row/col of the pads display area
-
- NCursesWindow* Win(void) const {
- // Get the window into which the pad should be copied (if any)
- return (viewSub?viewSub:(viewWin?viewWin:0));
- }
-
- NCursesWindow* getWindow(void) const {
- return viewWin;
- }
-
- NCursesWindow* getSubWindow(void) const {
- return viewSub;
- }
-
- virtual int driver (int key); // Virtualize keystroke key
- // The driver translates the keystroke c into an Pad_Request
-
- virtual void OnUnknownOperation(int pad_req) {
- ::beep();
- }
- // This is called if the driver returns an unknown op-code
-
- virtual void OnNavigationError(int pad_req) {
- ::beep();
- }
- // This is called if a navigation request couldn't be satisfied
-
- virtual void OnOperation(int pad_req) {
- };
- // OnOperation is called if a Pad_Operation was executed and just before
- // the refresh() operation is done.
-
-public:
- NCursesPad(int lines, int cols);
- // create a pad with the given size
-
- virtual ~NCursesPad() {}
-
- 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(int pminrow, int pmincol,
- int sminrow, int smincol,
- int smaxrow, int smaxcol) {
- return ::prefresh(w,pminrow,pmincol,
- sminrow,smincol,smaxrow,smaxcol);
- }
- // The coordinates sminrow,smincol,smaxrow,smaxcol describe a rectangle
- // on the screen. <b>refresh</b> copies a rectangle of this size beginning
- // with top left corner pminrow,pmincol onto the screen and calls doupdate().
-
- int noutrefresh();
- // If a viewport is defined the pad is displayed in this window, otherwise
- // this is a noop.
-
- int noutrefresh(int pminrow, int pmincol,
- int sminrow, int smincol,
- int smaxrow, int smaxcol) {
- return ::pnoutrefresh(w,pminrow,pmincol,
- sminrow,smincol,smaxrow,smaxcol);
- }
- // Does the same like 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 setSubWindow(NCursesWindow& sub);
- // Use the subwindow "sub" of the viewport window for the actual viewing.
- // The full viewport window is usually used to provide some decorations
- // like frames, titles etc.
-
- virtual void operator() (void);
- // Perform Pad's operation
-};
-
-// 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 {
-protected:
- virtual void OnOperation(int pad_req);
-
-public:
- NCursesFramedPad(NCursesWindow& win, int lines, int cols,
- int v_grid = 1, int h_grid = 1)
- : NCursesPad(lines,cols) {
- NCursesPad::setWindow(win,v_grid,h_grid);
- NCursesPad::setSubWindow(*(new NCursesWindow(win)));
- }
- // Construct the FramedPad with the given Window win as viewport.
-
- virtual ~NCursesFramedPad() {
- delete getSubWindow();
- }
-
- void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1) {
- err_handler("Operation not allowed");
- }
- // Disable this call; the viewport is already defined
-
- void setSubWindow(NCursesWindow& sub) {
- err_handler("Operation not allowed");
- }
- // Disable this call; the viewport subwindow is already defined
-
-};
-
-#endif // _CURSESW_H
diff --git a/ncurses-5.2/c++/cursslk.cc b/ncurses-5.2/c++/cursslk.cc
deleted file mode 100644
index fc493e6..0000000
--- a/ncurses-5.2/c++/cursslk.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-#include "cursslk.h"
-#include "cursesapp.h"
-#include "internal.h"
-#include <string.h>
-
-MODULE_ID("$Id$")
-
-void Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text) {
- delete[] label;
- label = new char[1 + ::strlen(text)];
- (strcpy)(label,text);
-}
-
-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::format = None;
-
-void Soft_Label_Key_Set::init() {
- slk_array = new Soft_Label_Key[num_labels];
- for(int i=0; i < num_labels; i++) {
- slk_array[i].num = i+1;
- }
- b_attrInit = FALSE;
-}
-
-Soft_Label_Key_Set::Soft_Label_Key_Set() {
- if (format==None)
- Error("No default SLK layout");
- init();
-}
-
-Soft_Label_Key_Set::Soft_Label_Key_Set(Soft_Label_Key_Set::Label_Layout fmt) {
- if (fmt==None)
- Error("Invalid SLK Layout");
- if (count++==0) {
- format = fmt;
- if (ERR == ::slk_init((int)fmt))
- Error("slk_init");
- num_labels = (fmt>=PC_Style?12:8);
- }
- else if (fmt!=format)
- Error("All SLKs must have same layout");
- init();
-}
-
-Soft_Label_Key_Set::~Soft_Label_Key_Set() {
- if (!::isendwin())
- clear();
- delete[] slk_array;
- count--;
-}
-
-Soft_Label_Key_Set::Soft_Label_Key& Soft_Label_Key_Set::operator[](int i) {
- if (i<1 || i>num_labels)
- Error("Invalid Label index");
- return slk_array[i-1];
-}
-
-void Soft_Label_Key_Set::activate_label(int i, bool bf) {
- if (!b_attrInit) {
- NCursesApplication* A = NCursesApplication::getApplication();
- if (A) attrset(A->labels());
- b_attrInit = TRUE;
- }
- Soft_Label_Key& K = (*this)[i];
- if (ERR==::slk_set(K.num,bf?K.label:"",K.format))
- Error("slk_set");
- noutrefresh();
-}
-
-void Soft_Label_Key_Set::activate_labels(bool bf) {
- if (!b_attrInit) {
- NCursesApplication* A = NCursesApplication::getApplication();
- if (A) attrset(A->labels());
- b_attrInit = TRUE;
- }
- for(int i=1; i <= num_labels; i++) {
- Soft_Label_Key& K = (*this)[i];
- if (ERR==::slk_set(K.num,bf?K.label:"",K.format))
- Error("slk_set");
- }
- if (bf)
- restore();
- else
- clear();
- noutrefresh();
-}
diff --git a/ncurses-5.2/c++/cursslk.h b/ncurses-5.2/c++/cursslk.h
deleted file mode 100644
index 71750e0..0000000
--- a/ncurses-5.2/c++/cursslk.h
+++ /dev/null
@@ -1,205 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef _CURSSLK_H
-#define _CURSSLK_H
-
-#include <cursesw.h>
-
-class Soft_Label_Key_Set {
-public:
- // This inner class represents the attributes of a Soft Label Key (SLK)
- class Soft_Label_Key {
- friend class Soft_Label_Key_Set;
- public:
- typedef enum { Left=0, Center=1, Right=2 } Justification;
-
- private:
- char *label; // The Text of the Label
- Justification format; // The Justification
- int num; // The number of the Label
-
- Soft_Label_Key() : label((char*)0),format(Left),num(-1) {
- }
-
- virtual ~Soft_Label_Key() {
- delete[] label;
- };
-
- public:
- // Set the text of the Label
- void operator=(char *text);
-
- // Set the Justification of the Label
- inline void operator=(Justification just) {
- format = just;
- }
-
- // Retrieve the text of the label
- inline char* operator()(void) const {
- return label;
- }
- };
-
-public:
- typedef enum {
- None = -1,
- Three_Two_Three = 0,
- Four_Four = 1,
- PC_Style = 2,
- PC_Style_With_Index = 3
- } 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
-
- Soft_Label_Key *slk_array; // The array of SLK's
-
- // Init the Key Set
- void init();
-
- // Activate or Deactivate Label# i, Label counting starts with 1!
- void activate_label(int i, bool bf=TRUE);
-
- // Activate of Deactivate all Labels
- void activate_labels(bool bf);
-
-protected:
- inline void Error (const char* msg) const THROWS(NCursesException) {
- THROW(new NCursesException (msg));
- }
-
- // Remove SLK's from screen
- void clear() {
- if (ERR==::slk_clear())
- Error("slk_clear");
- }
-
- // Restore them
- void restore() {
- if (ERR==::slk_restore())
- Error("slk_restore");
- }
-
-public:
-
- // Construct a Key Set, use the most comfortable layout as default.
- // You must create a Soft_Label_Key_Set before you create any object of
- // the NCursesWindow, NCursesPanel or derived classes. (Actually before
- // ::initscr() is called).
- Soft_Label_Key_Set(Label_Layout fmt);
-
- // 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();
-
- virtual ~Soft_Label_Key_Set();
-
- // Get Label# i. Label counting starts with 1!
- Soft_Label_Key& operator[](int i);
-
- // Retrieve number of Labels
- inline int labels() const { return num_labels; }
-
- // Refresh the SLK portion of the screen
- inline void refresh() {
- if (ERR==::slk_refresh())
- Error("slk_refresh");
- }
-
- // Mark the SLK portion of the screen for refresh, defer actual refresh
- // until next update call.
- inline void noutrefresh() {
- if (ERR==::slk_noutrefresh())
- Error("slk_noutrefresh");
- }
-
- // Mark the whole SLK portion of the screen as modified
- inline void touch() {
- if (ERR==::slk_touch())
- Error("slk_touch");
- }
-
- // Activate Label# i
- inline void show(int i) {
- activate_label(i,FALSE);
- activate_label(i,TRUE);
- }
-
- // Hide Label# i
- inline void hide(int i) {
- activate_label(i,FALSE);
- }
-
- // Show all Labels
- inline void show() {
- activate_labels(FALSE);
- activate_labels(TRUE);
- }
-
- // Hide all Labels
- inline void hide() {
- activate_labels(FALSE);
- }
-
- inline void attron(attr_t attrs) {
- if (ERR==::slk_attron(attrs))
- Error("slk_attron");
- }
-
- inline void attroff(attr_t attrs) {
- if (ERR==::slk_attroff(attrs))
- Error("slk_attroff");
- }
-
- inline void attrset(attr_t attrs) {
- if (ERR==::slk_attrset(attrs))
- Error("slk_attrset");
- }
-
- inline void color(short color_pair_number) {
- if (ERR==::slk_color(color_pair_number))
- Error("slk_color");
- }
-
- inline attr_t attr() const {
- return ::slk_attr();
- }
-};
-
-#endif // _CURSSLK_H
diff --git a/ncurses-5.2/c++/demo.cc b/ncurses-5.2/c++/demo.cc
deleted file mode 100644
index 614dc4f..0000000
--- a/ncurses-5.2/c++/demo.cc
+++ /dev/null
@@ -1,449 +0,0 @@
-/*
- * Silly demo program for the NCursesPanel class.
- *
- * written by Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
- *
- * Demo code for NCursesMenu and NCursesForm written by
- * Juergen Pfeifer <juergen.pfeifer@gmx.net>
- *
- * $Id$
- */
-
-#include "cursesapp.h"
-#include "cursesm.h"
-#include "cursesf.h"
-
-#if HAVE_LIBC_H
-# include <libc.h>
-#endif
-
-extern "C" unsigned int sleep(unsigned int);
-
-#undef index // needed for NeXT
-
-//
-// -------------------------------------------------------------------------
-//
-class SillyDemo
-{
- public:
- void run(int sleeptime) {
-
- NCursesPanel *std = new NCursesPanel();
-
- // Make a few small demo panels
-
- NCursesPanel *u = new NCursesPanel(8,20,12,4);
- NCursesPanel *v = new NCursesPanel(8,20,10,6);
- NCursesPanel *w = new NCursesPanel(8,20,8,8);
- NCursesPanel *x = new NCursesPanel(8,20,6,10);
- NCursesPanel *y = new NCursesPanel(8,20,4,12);
- NCursesPanel *z = new NCursesPanel(8,30,2,14);
-
- // Draw something on the main screen, so we can see what happens
- // when panels get moved or deleted.
-
- std->box();
- std->move(std->height()/2,1);
- std->hline(std->width()-2);
- std->move(1,std->width()/2);
- std->vline(std->height()-2);
- std->addch(0,std->width()/2,ACS_TTEE);
- std->addch(std->height()-1,std->width()/2,ACS_BTEE);
- std->addch(std->height()/2,0,ACS_LTEE);
- std->addch(std->height()/2,std->width()-1,ACS_RTEE);
- std->addch(std->height()/2,std->width()/2,ACS_PLUS);
-
- // Draw frames with titles around panels so that we can see where
- // the panels are located.
- u->boldframe("Win U");
- v->frame("Win V");
- w->boldframe("Win W");
- x->frame("Win X");
- y->boldframe("Win Y");
- z->frame("Win Z");
- if (NCursesApplication::getApplication()->useColors()) {
- u->bkgd(' '|COLOR_PAIR(1));
- w->bkgd(' '|COLOR_PAIR(1));
- y->bkgd(' '|COLOR_PAIR(1));
- v->bkgd(' '|COLOR_PAIR(2));
- x->bkgd(' '|COLOR_PAIR(2));
- z->bkgd(' '|COLOR_PAIR(2));
- }
-
- // A refresh to any valid panel updates all panels and refreshes
- // the screen. Using std is just convenient - We know it's always
- // valid until the end of the program.
-
- std->refresh();
- sleep(sleeptime);
-
- // Show what happens when panels are deleted and moved.
-
- sleep(sleeptime);
- delete u;
- std->refresh();
-
- sleep(sleeptime);
- delete z;
- std->refresh();
-
- sleep(sleeptime);
- delete v;
- std->refresh();
-
- // show how it looks when a panel moves
- sleep(sleeptime);
- y->mvwin(5,30);
- std->refresh();
-
- sleep(sleeptime);
- delete y;
- std->refresh();
-
- // show how it looks when you raise a panel
- sleep(sleeptime);
- w->top();
- std->refresh();
-
- sleep(sleeptime);
- delete w;
- std->refresh();
-
- sleep(sleeptime);
- delete x;
-
- std->clear();
- std->refresh();
-
- // Don't forget to clean up the main screen. Since this is the
- // last thing using NCursesWindow, this has the effect of
- // shutting down ncurses and restoring the terminal state.
-
- sleep(sleeptime);
- delete std;
- }
-};
-
-class UserData
-{
-private:
- int u;
-public:
- UserData(int x) : u(x) {}
- int sleeptime() const { return u; }
-};
-//
-// -------------------------------------------------------------------------
-//
-template<class T> class MyAction : public NCursesUserItem<T>
-{
-public:
- MyAction (const char* p_name,
- const T* p_UserData)
- : NCursesUserItem<T>(p_name, (const char*)0, p_UserData)
- {};
-
- ~MyAction() {}
-
- bool action() {
- SillyDemo a;
- a.run(NCursesUserItem<T>::UserData()->sleeptime());
- return FALSE;
- }
-};
-
-class QuitItem : public NCursesMenuItem
-{
-public:
- QuitItem() : NCursesMenuItem("Quit") {
- }
-
- bool action() {
- return TRUE;
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class Label : public NCursesFormField
-{
-public:
- Label(const char* title,
- int row, int col)
- : NCursesFormField(1,(int)::strlen(title),row,col) {
- set_value(title);
- options_off(O_EDIT|O_ACTIVE);
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class MyFieldType : public UserDefinedFieldType {
-private:
- int chk;
-protected:
- bool field_check(NCursesFormField& f) {
- return TRUE;
- }
- bool char_check(int c) {
- return (c==chk?TRUE:FALSE);
- }
-public:
- MyFieldType(int x) : chk(x) {
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class TestForm : public NCursesForm
-{
-private:
- NCursesFormField** F;
- MyFieldType* mft;
- Integer_Field *ift;
- Enumeration_Field *eft;
-
- static char *weekdays[];
-
-public:
- TestForm() : NCursesForm(13,51,(lines()-15)/2,(cols()-53)/2) {
-
- F = new NCursesFormField*[10];
- mft = new MyFieldType('X');
- ift = new Integer_Field(0,1,10);
- eft = new Enumeration_Field(weekdays);
-
- F[0] = new Label("Demo Entry Form",0,16);
- F[1] = new Label("Weekday Enum",2,1);
- F[2] = new Label("Number(1-10)",2,21);
- F[3] = new Label("Only 'X'",2,35);
- F[4] = new Label("Multiline Field (Dynamic and Scrollable)",5,1);
- F[5] = new NCursesFormField(1,18,3,1);
- F[6] = new NCursesFormField(1,12,3,21);
- F[7] = new NCursesFormField(1,12,3,35);
- F[8] = new NCursesFormField(4,46,6,1,2);
- F[9] = new NCursesFormField();
-
- InitForm(F,TRUE,TRUE);
- boldframe();
-
- F[5]->set_fieldtype(*eft);
- F[6]->set_fieldtype(*ift);
-
- F[7]->set_fieldtype(*mft);
- F[7]->set_maximum_growth(20); // max. 20 characters
- F[7]->options_off(O_STATIC); // make field dynamic
-
- F[8]->set_maximum_growth(10); // max. 10 lines
- F[8]->options_off(O_STATIC); // make field dynamic
- }
-
- ~TestForm() {
- delete mft;
- delete ift;
- delete eft;
- }
-};
-
-char* TestForm::weekdays[] = {
- "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
- "Friday", "Saturday", (char *)0 };
-//
-// -------------------------------------------------------------------------
-//
-class FormAction : public NCursesMenuItem
-{
-public:
- FormAction(const char *s) : NCursesMenuItem(s) {
- }
-
- bool action() {
- TestForm F;
- Soft_Label_Key_Set* S = new Soft_Label_Key_Set;
- for(int i=1; i <= S->labels(); i++) {
- char buf[5];
- ::sprintf(buf,"Frm%02d",i);
- (*S)[i] = buf; // Text
- (*S)[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
- }
- NCursesApplication::getApplication()->push(*S);
- F();
- NCursesApplication::getApplication()->pop();
- return FALSE;
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class PadAction : public NCursesMenuItem
-{
-public:
- PadAction(const char* s) : NCursesMenuItem(s) {
- }
-
- bool action() {
- const int GRIDSIZE = 3;
- const int PADSIZE = 200;
- unsigned gridcount = 0;
-
- NCursesPanel std;
- NCursesPanel P(std.lines()-2,std.cols()-2,1,1);
- NCursesFramedPad FP(P,PADSIZE,PADSIZE);
-
- 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(' ');
- }
- }
-
- P.label("Pad Demo",NULL);
- FP();
- P.clear();
- return FALSE;
- }
-};
-
-//
-// -------------------------------------------------------------------------
-//
-class PassiveItem : public NCursesMenuItem {
-public:
- PassiveItem(const char* text) : NCursesMenuItem(text) {
- options_off(O_SELECTABLE);
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class MyMenu : public NCursesMenu
-{
-private:
- NCursesPanel* P;
- NCursesMenuItem** I;
- UserData *u;
- #define n_items 7
-
-public:
- MyMenu ()
- : NCursesMenu (n_items+2, 8, (lines()-10)/2, (cols()-10)/2)
- {
- u = new UserData(1);
- I = new NCursesMenuItem*[1+n_items];
- I[0] = new PassiveItem("One");
- I[1] = new PassiveItem("Two");
- I[2] = new MyAction<UserData> ("Silly", u);
- I[3] = new FormAction("Form");
- I[4] = new PadAction("Pad");
- I[5] = new PassiveItem("Six");
- I[6] = new QuitItem();
- I[7] = new NCursesMenuItem(); // Terminating empty item
-
- InitMenu(I,TRUE,TRUE);
-
- P = new NCursesPanel(1,n_items,LINES-1,1);
- boldframe("Demo","Silly");
- P->show();
- }
-
- ~MyMenu()
- {
- P->hide();
- delete P;
- delete u;
- }
-
- virtual void On_Menu_Init()
- {
- NCursesWindow W(::stdscr);
- P->move(0,0);
- P->clrtoeol();
- for(int i=1; i<=count(); i++)
- P->addch('0' + i);
- P->bkgd(W.getbkgd());
- refresh();
- }
-
- virtual void On_Menu_Termination()
- {
- P->move(0,0);
- P->clrtoeol();
- refresh();
- }
-
- virtual void On_Item_Init(NCursesMenuItem& item)
- {
- P->move(0,item.index());
- P->attron(A_REVERSE);
- P->printw("%1d",1+item.index());
- P->attroff(A_REVERSE);
- refresh();
- }
-
- virtual void On_Item_Termination(NCursesMenuItem& item)
- {
- P->move(0,item.index());
- P->attroff(A_REVERSE);
- P->printw("%1d",1+item.index());
- refresh();
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class TestApplication : public NCursesApplication {
-protected:
- int titlesize() const { return 1; }
- void title();
- Soft_Label_Key_Set::Label_Layout useSLKs() const {
- return Soft_Label_Key_Set::PC_Style_With_Index;
- }
- void init_labels(Soft_Label_Key_Set& S) const;
-
-public:
- TestApplication() : NCursesApplication(TRUE) {
- }
-
- int run();
-};
-
-void TestApplication::init_labels(Soft_Label_Key_Set& S) const {
- for(int i=1; i <= S.labels(); i++) {
- char buf[5];
- ::sprintf(buf,"Key%02d",i);
- S[i] = buf; // Text
- S[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
- }
-}
-
-void TestApplication::title() {
- const char * const title = "Simple C++ Binding Demo";
- const int len = ::strlen(title);
-
- titleWindow->bkgd(screen_titles());
- titleWindow->addstr(0,(titleWindow->cols()-len)/2,title);
- titleWindow->noutrefresh();
-}
-
-
-int TestApplication::run() {
- MyMenu M;
- M();
- return 0;
-}
-
-//
-// -------------------------------------------------------------------------
-//
-static TestApplication Demo;
diff --git a/ncurses-5.2/c++/edit_cfg.sh b/ncurses-5.2/c++/edit_cfg.sh
deleted file mode 100755
index d3abb9f..0000000
--- a/ncurses-5.2/c++/edit_cfg.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-# Edit the default value of the etip.h file based on the autoconf-generated
-# values:
-#
-# $1 = ncurses_cfg.h
-# $2 = etip.h
-#
-echo "substituting autoconf'd values from $1 into $2"
-for name in \
- CPP_HAS_PARAM_INIT \
- ETIP_NEEDS_MATH_EXCEPTION \
- ETIP_NEEDS_MATH_H \
- HAVE_BUILTIN_H \
- HAVE_GXX_BUILTIN_H \
- HAVE_GPP_BUILTIN_H \
- HAVE_TYPEINFO \
- HAVE_VALUES_H
-do
- mv $2 $2.bak
- if ( grep "[ ]$name[ ]1" $1 2>&1 >/dev/null)
- then
- value=1
- sed -e 's/define '$name'.*$/define '$name' 1/' $2.bak >$2
- else
- value=0
- sed -e 's/define '$name'.*$/define '$name' 0/' $2.bak >$2
- fi
- if (cmp -s $2 $2.bak)
- then
- echo '... '$name $value
- mv $2.bak $2
- else
- echo '... '$name $value
- rm -f $2.bak
- fi
-done
diff --git a/ncurses-5.2/c++/etip.h.in b/ncurses-5.2/c++/etip.h.in
deleted file mode 100644
index 5b5ca37..0000000
--- a/ncurses-5.2/c++/etip.h.in
+++ /dev/null
@@ -1,273 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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 <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef _ETIP_H
-#define _ETIP_H
-
-// These are substituted at configure/build time
-#ifndef HAVE_BUILTIN_H
-#define HAVE_BUILTIN_H 0
-#endif
-
-#ifndef HAVE_GXX_BUILTIN_H
-#define HAVE_GXX_BUILTIN_H 0
-#endif
-
-#ifndef HAVE_GPP_BUILTIN_H
-#define HAVE_GPP_BUILTIN_H 0
-#endif
-
-#ifndef HAVE_TYPEINFO
-#define HAVE_TYPEINFO 0
-#endif
-
-#ifndef HAVE_VALUES_H
-#define HAVE_VALUES_H 0
-#endif
-
-#ifndef ETIP_NEEDS_MATH_H
-#define ETIP_NEEDS_MATH_H 0
-#endif
-
-#ifndef ETIP_NEEDS_MATH_EXCEPTION
-#define ETIP_NEEDS_MATH_EXCEPTION 0
-#endif
-
-#ifndef CPP_HAS_PARAM_INIT
-#define CPP_HAS_PARAM_INIT 0
-#endif
-
-#ifdef __GNUG__
-# if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
-# if HAVE_TYPEINFO
-# include <typeinfo>
-# endif
-# endif
-#endif
-
-#if defined(__GNUG__)
-# if HAVE_BUILTIN_H || HAVE_GXX_BUILTIN_H || HAVE_GPP_BUILTIN_H
-# if ETIP_NEEDS_MATH_H
-# if ETIP_NEEDS_MATH_EXCEPTION
-# undef exception
-# define exception math_exception
-# endif
-# include <math.h>
-# endif
-# undef exception
-# define exception builtin_exception
-# if HAVE_GPP_BUILTIN_H
-# include <gpp/builtin.h>
-# elif HAVE_GXX_BUILTIN_H
-# include <g++/builtin.h>
-# else
-# include <builtin.h>
-# endif
-# undef exception
-# endif
-#elif defined (__SUNPRO_CC)
-# include <generic.h>
-# include <string.h>
-#else
-# include <string.h>
-#endif
-
-extern "C" {
-#if HAVE_VALUES_H
-# include <values.h>
-#endif
-
-#include <assert.h>
-#include <eti.h>
-#include <errno.h>
-}
-
-// Language features
-#if CPP_HAS_PARAM_INIT
-#define NCURSES_PARAM_INIT(value) = value
-#else
-#define NCURSES_PARAM_INIT(value) /*nothing*/
-#endif
-
-// Forward Declarations
-class NCursesPanel;
-class NCursesMenu;
-class NCursesForm;
-
-class NCursesException
-{
-public:
- const char *message;
- int errorno;
-
- NCursesException (const char* msg, int err)
- : message(msg), errorno (err)
- {};
-
- NCursesException (const char* msg)
- : message(msg), errorno (E_SYSTEM_ERROR)
- {};
-
- virtual const char *classname() const {
- return "NCursesWindow";
- }
-};
-
-class NCursesPanelException : public NCursesException
-{
-public:
- const NCursesPanel* p;
-
- NCursesPanelException (const char *msg, int err) :
- NCursesException (msg, err),
- p ((NCursesPanel*)0)
- {};
-
- NCursesPanelException (const NCursesPanel* panel,
- const char *msg,
- int err) :
- NCursesException (msg, err),
- p (panel)
- {};
-
- NCursesPanelException (int err) :
- NCursesException ("panel library error", err),
- p ((NCursesPanel*)0)
- {};
-
- NCursesPanelException (const NCursesPanel* panel,
- int err) :
- NCursesException ("panel library error", err),
- p (panel)
- {};
-
- virtual const char *classname() const {
- return "NCursesPanel";
- }
-
-};
-
-class NCursesMenuException : public NCursesException
-{
-public:
- const NCursesMenu* m;
-
- NCursesMenuException (const char *msg, int err) :
- NCursesException (msg, err),
- m ((NCursesMenu *)0)
- {};
-
- NCursesMenuException (const NCursesMenu* menu,
- const char *msg,
- int err) :
- NCursesException (msg, err),
- m (menu)
- {};
-
- NCursesMenuException (int err) :
- NCursesException ("menu library error", err),
- m ((NCursesMenu *)0)
- {};
-
- NCursesMenuException (const NCursesMenu* menu,
- int err) :
- NCursesException ("menu library error", err),
- m (menu)
- {};
-
- virtual const char *classname() const {
- return "NCursesMenu";
- }
-
-};
-
-class NCursesFormException : public NCursesException
-{
-public:
- const NCursesForm* f;
-
- NCursesFormException (const char *msg, int err) :
- NCursesException (msg, err),
- f ((NCursesForm*)0)
- {};
-
- NCursesFormException (const NCursesForm* form,
- const char *msg,
- int err) :
- NCursesException (msg, err),
- f (form)
- {};
-
- NCursesFormException (int err) :
- NCursesException ("form library error", err),
- f ((NCursesForm*)0)
- {};
-
- NCursesFormException (const NCursesForm* form,
- int err) :
- NCursesException ("form library error", err),
- f (form)
- {};
-
- virtual const char *classname() const {
- return "NCursesForm";
- }
-
-};
-
-#if !(defined(__GNUG__)||defined(__SUNPRO_CC))
-# include <iostream.h>
- extern "C" void exit(int);
-#endif
-
-inline void THROW(const NCursesException *e) {
-#if defined(__GNUG__)
-# if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8))
- (*lib_error_handler)(e?e->classname():"",e?e->message:"");
-#else
- throw *e;
-#endif
-#elif defined(__SUNPRO_CC)
- genericerror(1, ((e != 0) ? (char *)(e->message) : ""));
-#else
- if (e)
- cerr << e->message << endl;
- exit(0);
-#endif
-}
-
-#define THROWS(s)
-
-#endif // _ETIP_H
diff --git a/ncurses-5.2/c++/headers b/ncurses-5.2/c++/headers
deleted file mode 100644
index 89f8ec5..0000000
--- a/ncurses-5.2/c++/headers
+++ /dev/null
@@ -1,39 +0,0 @@
-# C++ headers
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-$(srcdir)/cursesapp.h
-$(srcdir)/cursesf.h
-$(srcdir)/cursesm.h
-$(srcdir)/cursesp.h
-$(srcdir)/cursesw.h
-$(srcdir)/cursslk.h
-etip.h
diff --git a/ncurses-5.2/c++/internal.h b/ncurses-5.2/c++/internal.h
deleted file mode 100644
index 7df6c4d..0000000
--- a/ncurses-5.2/c++/internal.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1997 *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef _CPLUS_INTERNAL_H
-#define _CPLUS_INTERNAL_H 1
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#define CTRL(x) ((x) & 0x1f)
-
-#endif
diff --git a/ncurses-5.2/c++/modules b/ncurses-5.2/c++/modules
deleted file mode 100644
index a2e2e60..0000000
--- a/ncurses-5.2/c++/modules
+++ /dev/null
@@ -1,43 +0,0 @@
-# Program modules
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
-#
-
-@ base
-cursesf c++ $(srcdir) $(cursesf_h) $(cursesapp_h)
-cursesm c++ $(srcdir) $(cursesm_h) $(cursesapp_h)
-cursesp c++ $(srcdir) $(cursesp_h)
-cursesw c++ $(srcdir) $(cursesw_h)
-cursespad c++ $(srcdir) $(cursesw_h)
-cursslk c++ $(srcdir) $(cursslk_h) $(cursesapp_h)
-cursesapp c++ $(srcdir) $(cursesapp_h)
-cursesmain c++ $(srcdir) $(cursesapp_h)
-demo c++ $(srcdir) $(cursesf_h) $(cursesm_h) $(cursesapp_h)
diff --git a/ncurses-5.2/config.guess b/ncurses-5.2/config.guess
deleted file mode 100755
index b100dbe..0000000
--- a/ncurses-5.2/config.guess
+++ /dev/null
@@ -1,1276 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-# Free Software Foundation, Inc.
-
-version='2000-06-13'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
-#
-# 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).
-#
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of this system.
-
-Operation modes:
- -h, --help print this help, then exit
- -V, --version print version number, then exit"
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case "$1" in
- --version | --vers* | -V )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- exec >&2
- echo "$me: invalid option $1"
- echo "$help"
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- 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
-
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 8/24/94.)
-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_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
- i?86:OS/2:*:*)
- echo "i386-unknown-os2"
- exit 0;;
- *:NetBSD:*:*)
- # 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.
- # 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 ;;
- 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:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- cat <<EOF >$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-cbm-sysv4
- exit 0;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- 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}
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- 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`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- 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
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-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 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
- mips:*:*:UMIPS | mips:*:*:RISCos)
- sed 's/^ //' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h> /* for printf() prototype */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-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
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- 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.
- 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:*:*)
- echo i386-ibm-aix
- exit 0 ;;
- *:AIX:2:3)
- if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 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
- IBM_ARCH=rs6000
- else
- IBM_ARCH=powerpc
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=4.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit 0 ;;
- 9000/[34678]??:HP-UX:*:*)
- 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
-
- #define _HPUX_SOURCE
- #include <stdlib.h>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
- rm -f $dummy.c $dummy
- esac
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
- 3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i?86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- 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 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-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:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE}
- 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/
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alpha-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-2:*:*:*)
- echo cray2-cray-unicos
- exit 0 ;;
- F300:UNIX_System_V:*:*)
- 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}"
- 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:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- 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/[-_].*/\./'`
- exit 0 ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
- i*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
- *: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.
- ld_help_string=`cd /; ld --help 2>&1`
- ld_supported_emulations=`echo $ld_help_string \
- | sed -ne '/supported emulations:/!d
- s/[ ][ ]*/ /g
- s/.*supported emulations: *//
- s/ .*//
- p'`
- case "$ld_supported_emulations" in
- *ia64)
- echo "${UNAME_MACHINE}-unknown-linux"
- exit 0
- ;;
- i?86linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0
- ;;
- elf_i?86)
- echo "${UNAME_MACHINE}-pc-linux"
- exit 0
- ;;
- i?86coff)
- 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
- ;;
- 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;
-}
-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*:*)
- echo i386-sequent-sysv4
- exit 0 ;;
- 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,
- # I just have to hope. -- rms.
- # 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.*:*)
- 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}
- else
- 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
- exit 0 ;;
- 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
- 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_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- i?86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-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)
- OS_REL=''
- test -r /etc/.relid \
- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && 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.*:*)
- 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]*:*)
- 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.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- 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>
- echo i586-unisys-sysv4
- exit 0 ;;
- *:UNIX_System_V:4*:FTX*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit 0 ;;
- mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
- news*:NEWS-OS:*:6*)
- echo mips-sony-newsos6
- exit 0 ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit 0 ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit 0 ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit 0 ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- if test "${UNAME_MACHINE}" = "x86pc"; then
- UNAME_MACHINE=pc
- fi
- echo `uname -p`-${UNAME_MACHINE}-nto-qnx
- exit 0 ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit 0 ;;
- NSR-W:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${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 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-#if !defined (ultrix)
- printf ("vax-dec-bsd\n"); exit (0);
-#else
- printf ("vax-dec-ultrix\n"); exit (0);
-#endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-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:
-
- ftp://ftp.gnu.org/pub/gnu/config/
-
-If the version you run ($0) is already up to date, please
-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.
-
-config.guess version = $version
-
-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`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "version='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/ncurses-5.2/config.sub b/ncurses-5.2/config.sub
deleted file mode 100755
index f8ec622..0000000
--- a/ncurses-5.2/config.sub
+++ /dev/null
@@ -1,1328 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script, version 1.1.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
-# Free Software Foundation, Inc.
-
-version='2000-07-06'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -h, --help print this help, then exit
- -V, --version print version number, then exit"
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
- case "$1" in
- --version | --vers* | -V )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- exec >&2
- echo "$me: invalid option $1"
- echo "$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit 0;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# 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*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### 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.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-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)
- basic_machine=$basic_machine-unknown
- ;;
- m6811 | m68hc11 | m6812 | m68hc12)
- # Motorola 68HC11/12.
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | h8500 | w65 | pj | pjl)
- ;;
-
- # 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)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- 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-*)
- ;;
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-cbm
- ;;
- amigaos | amigados)
- basic_machine=m68k-cbm
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-cbm
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- 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
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
- ;;
- delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i[34567]86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i[34567]86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i[34567]86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i[34567]86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | 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
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- 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/'`-unknown
- ;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- msdos)
- basic_machine=i386-unknown
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexen)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexen-*)
- 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/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=rs6000-ibm
- ;;
- ppc) basic_machine=powerpc-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/^[^-]*-//'`
- ;;
- ps2)
- basic_machine=i386-ibm
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- rtpc | rtpc-*)
- basic_machine=romp-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sparclite-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3e)
- basic_machine=t3e-cray
- os=-unicos
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- xmp)
- basic_machine=xmp-cray
- os=-unicos
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- 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
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- vax)
- basic_machine=vax-dec
- ;;
- pdp11)
- basic_machine=pdp11-dec
- ;;
- we32k)
- basic_machine=we32k-att
- ;;
- sh3 | sh4)
- base_machine=sh-unknown
- ;;
- sparc | sparcv9)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- c4x*)
- basic_machine=c4x-none
- os=-coff
- ;;
- *)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i[34567]86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto*)
- os=-nto-qnx
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -os2 \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -*MiNT)
- os=-mint
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-ibm)
- os=-aix
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f301-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -*MiNT)
- vendor=atari
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "version='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/ncurses-5.2/configure b/ncurses-5.2/configure
deleted file mode 100755
index c18a988..0000000
--- a/ncurses-5.2/configure
+++ /dev/null
@@ -1,8083 +0,0 @@
-#! /bin/sh
-
-# From configure.in Revision: 1.220
-
-
-
-# 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.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# 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
-
-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"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$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="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # 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" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # 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
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -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 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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="$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="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13.20000819"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # 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'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # 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" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -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-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" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- 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"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-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
-
-# 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
-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" ;;
- 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
-
-# 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
-
-# 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
-
-# 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%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-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; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-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
-
-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
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-
-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
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-if test -f $srcdir/config.guess ; then
-
-# 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.
-
-# 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 "$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`"
- if test -z "$system_name" ; then
- system_name="`(hostname) 2>/dev/null`"
- fi
-fi
-test -n "$system_name" && cat >> confdefs.h <<EOF
-#define SYSTEM_NAME "$system_name"
-EOF
-
-if eval "test \"`echo '$''{'cf_cv_system_name'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cf_cv_system_name="$system_name"
-fi
-
-
-test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$ac_t"""Configuring for $cf_cv_system_name"" 1>&6
-
-if test ".$system_name" != ".$cf_cv_system_name" ; then
- echo "$ac_t""Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" 1>&6
- { echo "configure: error: "Please remove config.cache and try again."" 1>&2; exit 1; }
-fi
-
-
-# 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
- cf_cv_system_name=$withval
-fi
-
-
-# We need a configure script only when compiling as part of GNU C library.
-# Here we have to generate one of the files we need while compiling.
-#
-# The only problem is that users of the package might think they have to
-# run configure themself and find it irritating when nothing happens.
-#
-# So we try here to find out whether we are called from the glibc configure
-# or by a user.
-#
-
-# Check whether --enable-add-ons or --disable-add-ons was given.
-if test "${enable_add_ons+set}" = set; then
- enableval="$enable_add_ons"
- glibc_add_on=yes
-else
- glibc_add_on=
-fi
-
-
-if test x"$glibc_add_on" = "xyes" ; then
- rm -f $srcdir/Banner
- # We are in glibc.
- rm -f $srcdir/Makefile
- cp $srcdir/Makefile.glibc $srcdir/Makefile
- echo "ncurses `grep \"^[ ]*ncurses-version[ ]*=.*$\" \
- $srcdir/Makefile | sed -e \
- 's/^[ ]*ncurses-version[ ]*=[ ]*\([^ ^ ]*\)[ ]*$/\1/'`" > $srcdir/Banner
- exit 0
-fi
-
-### Save the given $CFLAGS to allow user-override.
-cf_user_CFLAGS="$CFLAGS"
-
-### Default install-location
-
-echo $ac_n "checking for prefix""... $ac_c" 1>&6
-echo "configure:807: checking for prefix" >&5
-if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
- openbsd*|netbsd*|freebsd*|linux*)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
- ;;
- esac
-fi
-echo "$ac_t""$prefix" 1>&6
-
-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
-test -n "$verbose" && echo 1>&6
-for cf_symbol in \
- $includedir \
- $includedir/ncurses \
- $prefix/include \
- $prefix/include/ncurses \
- /usr/local/include \
- /usr/local/include/ncurses \
- /usr/include \
- /usr/include/ncurses
-do
- cf_dir=`eval echo $cf_symbol`
- if test -f $cf_dir/curses.h ; then
- if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
- includedir="$cf_symbol"
- test -n "$verbose" && echo $ac_n " found " 1>&6
- break
- fi
- fi
- test -n "$verbose" && echo " tested $cf_dir" 1>&6
-done
-echo "$ac_t""$includedir" 1>&6
-fi
-
-
-### Checks for programs.
-# 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: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
-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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $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
-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_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"
-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
- # 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" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-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
-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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-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; }
-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
-
-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
-
-cat > conftest.$ac_ext << EOF
-
-#line 976 "configure"
-#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
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_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_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
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-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
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-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"
-fi
-if test "$host" != $build; then
- for ac_prog in $CC gcc cc
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $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
-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"
-fi
-fi
-BUILD_CC="$ac_cv_prog_BUILD_CC"
-if test -n "$BUILD_CC"; then
- echo "$ac_t""$BUILD_CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$BUILD_CC" && break
-done
-
-else
- BUILD_CC="$CC"
-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
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1131 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure: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
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1148 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure: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
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 1165 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure: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
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-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
-else
- ac_pattern="Autoconf.*'x'"
- cat > conftest.$ac_ext <<EOF
-#line 1203 "configure"
-#include "confdefs.h"
-#include <sgtty.h>
-Autoconf TIOCGETP
-EOF
-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
- rm -rf conftest*
- ac_cv_prog_gcc_traditional=no
-fi
-rm -f conftest*
-
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat > conftest.$ac_ext <<EOF
-#line 1221 "configure"
-#include "confdefs.h"
-#include <termio.h>
-Autoconf TCGETA
-EOF
-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
-
-echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
- 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
-if test -d /etc/conf/kconfig.d &&
- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
-then
- echo "$ac_t""yes" 1>&6
- ISC=yes # If later tests want to check for ISC.
- cat >> confdefs.h <<\EOF
-#define _POSIX_SOURCE 1
-EOF
-
- if test "$GCC" = yes; then
- CC="$CC -posix"
- else
- CC="$CC -Xp"
- fi
-else
- echo "$ac_t""no" 1>&6
- 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
-else
-
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
- "" \
- -qlanglvl=ansi \
- -std1 \
- -Ae \
- "-Aa -D_HPUX_SOURCE" \
- -Xc
-do
- CFLAGS="$cf_save_CFLAGS $cf_arg"
- cat > conftest.$ac_ext <<EOF
-#line 1289 "configure"
-#include "confdefs.h"
-
-#ifndef CC_HAS_PROTOS
-#if !defined(__STDC__) || (__STDC__ != 1)
-choke me
-#endif
-#endif
-
-int main() {
-
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};
-; return 0; }
-EOF
-if { (eval echo configure:1305: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_ansi_cc="$cf_arg"; break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-CFLAGS="$cf_save_CFLAGS"
-
-fi
-
-echo "$ac_t""$cf_cv_ansi_cc" 1>&6
-
-if test "$cf_cv_ansi_cc" != "no"; then
-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
- CFLAGS="$CFLAGS $cf_cv_ansi_cc"
-else
- cat >> confdefs.h <<\EOF
-#define CC_HAS_PROTOS 1
-EOF
-
-fi
-fi
-
-
-if test "$cf_cv_ansi_cc" = "no"; then
- { echo "configure: error: Your compiler does not appear to recognize prototypes.
-You have the following choices:
- a. adjust your compiler options
- b. get an up-to-date compiler
- c. use a wrapper such as unproto" 1>&2; exit 1; }
-fi
-
-
-
-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__"
- LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
- PROG_EXT=".exe"
- ;;
-cygwin*)
- PROG_EXT=".exe"
- ;;
-esac
-
-
-
-case "$cf_cv_system_name" in
-freebsd*) #(vi
- test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
- ;;
-*) LDPATH=$PATH:/sbin:/usr/sbin
- # Extract the first word of "ldconfig", so it can be a program name with args.
-set dummy ldconfig; ac_word=$2
-echo $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
-else
- 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 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"
- ;;
-esac
-fi
-LDCONFIG="$ac_cv_path_LDCONFIG"
-if test -n "$LDCONFIG"; then
- echo "$ac_t""$LDCONFIG" 1>&6
-else
- echo "$ac_t""no" 1>&6
-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
-
-# Check whether --with-cxx or --without-cxx was given.
-if test "${with_cxx+set}" = set; then
- withval="$with_cxx"
- cf_with_cxx=$withval
-else
- cf_with_cxx=yes
-fi
-
-echo "$ac_t""$cf_with_cxx" 1>&6
-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
-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"
-fi
-fi
-CXX="$ac_cv_prog_CXX"
-if test -n "$CXX"; then
- echo "$ac_t""$CXX" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$CXX" && break
-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
-
-#line 1466 "configure"
-#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;
-#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
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
-else
- GXX=
-fi
-
-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
- ac_cv_prog_cxx_g=yes
-else
- ac_cv_prog_cxx_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-
- fi
-
-if test "$GXX" = yes; then
- case "`${CXX-g++} --version`" in
- 1*|2.[0-6]*)
- GXX=""; CXX=""; ac_cv_prog_gxx=no
- cf_cxx_library=no
- echo No: templates do not work
- ;;
- 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
-
-# Check whether --with-cxx-binding or --without-cxx-binding was given.
-if test "${with_cxx_binding+set}" = set; then
- withval="$with_cxx_binding"
- cf_with_cxx_binding=$withval
-else
- cf_with_cxx_binding=$cf_with_cxx
-fi
-
-echo "$ac_t""$cf_with_cxx_binding" 1>&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
-
-# Check whether --with-ada or --without-ada was given.
-if test "${with_ada+set}" = set; then
- withval="$with_ada"
- cf_with_ada=$withval
-else
- cf_with_ada=yes
-fi
-
-echo "$ac_t""$cf_with_ada" 1>&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
-
-# Check whether --with-progs or --without-progs was given.
-if test "${with_progs+set}" = set; then
- withval="$with_progs"
- cf_with_progs=$withval
-else
- cf_with_progs=yes
-fi
-
-echo "$ac_t""$cf_with_progs" 1>&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
-
-# Check whether --with-curses-h or --without-curses-h was given.
-if test "${with_curses_h+set}" = set; then
- withval="$with_curses_h"
- with_curses_h=$withval
-else
- with_curses_h=yes
-fi
-
-echo "$ac_t""$with_curses_h" 1>&6
-
-modules_to_build="ncurses"
-if test "X$cf_with_progs" != Xno ; then
-modules_to_build="$modules_to_build progs tack"
-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 &&
- program_transform_name="s,^,${program_prefix},; $program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
-
-# sed with no file args requires a program.
-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
-
-for ac_prog in mawk gawk nawk awk
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $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
-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"
-fi
-fi
-AWK="$ac_cv_prog_AWK"
-if test -n "$AWK"; then
- echo "$ac_t""$AWK" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AWK" && break
-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
-else
- cat > conftestmake <<\EOF
-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=`
-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
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# 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
-if test -z "$INSTALL"; then
-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
- for ac_dir in $PATH; do
- # 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/*) ;;
- *)
- # 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 test $ac_prog = install &&
- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- else
- ac_cv_path_install="$ac_dir/$ac_prog -c"
- break 2
- fi
- fi
- done
- ;;
- esac
- done
- IFS="$ac_save_IFS"
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- 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.
- INSTALL="$ac_install_sh"
- fi
-fi
-echo "$ac_t""$INSTALL" 1>&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}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-case $INSTALL in
-/*)
- ;;
-*)
- cf_dir=`echo $INSTALL|sed -e 's%/[^/]*$%%'`
- 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
-else
- ac_cv_sys_long_file_names=yes
-# Test for long file names in all the places we know might matter:
-# . the current directory, where building will happen
-# $prefix/lib where we will be installing things
-# $exec_prefix/lib likewise
-# eval it to expand exec_prefix.
-# $TMPDIR if set, where it might want to write temporary files
-# if $TMPDIR is not set:
-# /tmp where it might want to write temporary files
-# /var/tmp likewise
-# /usr/tmp likewise
-if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
- 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.
- (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_cv_sys_long_file_names=no
- rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
- break
- fi
- rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
-done
-fi
-
-echo "$ac_t""$ac_cv_sys_long_file_names" 1>&6
-if test $ac_cv_sys_long_file_names = yes; then
- cat >> confdefs.h <<\EOF
-#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
-else
-
- rm -f conftest CONFTEST
- echo test >conftest
- if test -f CONFTEST ; then
- cf_cv_mixedcase=no
- else
- cf_cv_mixedcase=yes
- fi
- rm -f conftest CONFTEST
-
-fi
-
-echo "$ac_t""$cf_cv_mixedcase" 1>&6
-test "$cf_cv_mixedcase" = yes && cat >> confdefs.h <<\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
-else
- echo "$ac_t""no" 1>&6
-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
-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=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
- echo "$ac_t""$RANLIB" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-
-# 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
-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"
- 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"
-if test -n "$MAKE_LOWER_TAGS"; then
- echo "$ac_t""$MAKE_LOWER_TAGS" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-if test "$cf_cv_mixedcase" = yes ; then
- # Extract the first word of "etags", so it can be a program name with args.
-set dummy etags; ac_word=$2
-echo $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
-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"
- 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"
-if test -n "$MAKE_UPPER_TAGS"; then
- echo "$ac_t""$MAKE_UPPER_TAGS" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-else
- MAKE_UPPER_TAGS=no
-fi
-
-if test "$MAKE_UPPER_TAGS" = yes ; then
- MAKE_UPPER_TAGS=
-else
- MAKE_UPPER_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
-# 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: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
-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"
-fi
-fi
-LINT="$ac_cv_prog_LINT"
-if test -n "$LINT"; then
- echo "$ac_t""$LINT" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$LINT" && break
-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.
-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
-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"
-fi
-fi
-MAN="$ac_cv_prog_MAN"
-if test -n "$MAN"; then
- echo "$ac_t""$MAN" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$MAN" && break
-done
-
-
-
-if eval "test \"`echo '$''{'cf_cv_subst_LD'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-echo $ac_n "checking for loader (symbol LD)""... $ac_c" 1>&6
-echo "configure:2061: checking for loader (symbol LD)" >&5
-test -z "$LD" && LD=ld
-echo "$ac_t""$LD" 1>&6
-
-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
-else
-
-echo $ac_n "checking for archiver (symbol AR)""... $ac_c" 1>&6
-echo "configure:2075: checking for archiver (symbol AR)" >&5
-test -z "$AR" && AR=ar
-echo "$ac_t""$AR" 1>&6
-
-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
-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
-test -z "$AR_OPTS" && AR_OPTS=rv
-echo "$ac_t""$AR_OPTS" 1>&6
-
-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
-else
-
- cf_cv_makeflags=''
- for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
- do
- cat >cf_makeflags.tmp <<CF_EOF
-all :
- @ echo '.$cf_option'
-CF_EOF
- cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null`
- case "$cf_result" in
- .*k)
- cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
- case "$cf_result" in
- .*CC=*) cf_cv_makeflags=
- ;;
- *) cf_cv_makeflags=$cf_option
- ;;
- esac
- break
- ;;
- *) echo no match "$cf_result"
- ;;
- esac
- done
- rm -f cf_makeflags.tmp
-fi
-
-echo "$ac_t""$cf_cv_makeflags" 1>&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
-
-# Check whether --with-install-prefix or --without-install-prefix was given.
-if test "${with_install_prefix+set}" = set; then
- withval="$with_install_prefix"
- case "$withval" in #(vi
- yes|no) #(vi
- ;;
- *) DESTDIR="$withval"
- ;;
- esac
-fi
-
-echo "$ac_t""$DESTDIR" 1>&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=""
-
-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
-
-# Check whether --with-libtool or --without-libtool was given.
-if test "${with_libtool+set}" = set; then
- withval="$with_libtool"
- with_libtool=$withval
-else
- with_libtool=no
-fi
-
-echo "$ac_t""$with_libtool" 1>&6
-if test "$with_libtool" = "yes"; then
- cf_list_models="$cf_list_models libtool"
- test -z "$LIBTOOL" && LIBTOOL=libtool
-else
- 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
-
-# Check whether --with-shared or --without-shared was given.
-if test "${with_shared+set}" = set; then
- withval="$with_shared"
- with_shared=$withval
-else
- with_shared=no
-fi
-
-echo "$ac_t""$with_shared" 1>&6
-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
-
-# Check whether --with-normal or --without-normal was given.
-if test "${with_normal+set}" = set; then
- withval="$with_normal"
- with_normal=$withval
-else
- with_normal=yes
-fi
-
-echo "$ac_t""$with_normal" 1>&6
-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
-
-# Check whether --with-debug or --without-debug was given.
-if test "${with_debug+set}" = set; then
- withval="$with_debug"
- with_debug=$withval
-else
- with_debug=yes
-fi
-
-echo "$ac_t""$with_debug" 1>&6
-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
-
-# Check whether --with-profile or --without-profile was given.
-if test "${with_profile+set}" = set; then
- withval="$with_profile"
- with_profile=$withval
-else
- with_profile=no
-fi
-
-echo "$ac_t""$with_profile" 1>&6
-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
-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
-
-### 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
-DFT_LWR_MODEL=`echo $cf_list_models | $AWK '{print $1}'`
-echo "$ac_t""$DFT_LWR_MODEL" 1>&6
-
-
-DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-
-TINFO_NAME=tinfo
-
-
-LIB_NAME=ncurses
-
-
-LIB_DIR=../lib
-
- case $cf_cv_system_name in
- os2) LIB_PREFIX='' ;;
- *) LIB_PREFIX='lib' ;;
- esac
-cf_prefix=$LIB_PREFIX
-
-
-LIB_PREFIX=$cf_prefix
-
-
-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
-
-# Check whether --with-termlib or --without-termlib was given.
-if test "${with_termlib+set}" = set; then
- withval="$with_termlib"
- with_termlib=$withval
-else
- with_termlib=no
-fi
-
-echo "$ac_t""$with_termlib" 1>&6
-
-### 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
-
-# Check whether --with-dbmalloc or --without-dbmalloc was given.
-if test "${with_dbmalloc+set}" = set; then
- withval="$with_dbmalloc"
- with_dbmalloc=$withval
-else
- with_dbmalloc=no
-fi
-
-echo "$ac_t""$with_dbmalloc" 1>&6
-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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldbmalloc $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2315 "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 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
-EOF
-
- LIBS="-ldbmalloc $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-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
-
-# Check whether --with-dmalloc or --without-dmalloc was given.
-if test "${with_dmalloc+set}" = set; then
- withval="$with_dmalloc"
- with_dmalloc=$withval
-else
- with_dmalloc=no
-fi
-
-echo "$ac_t""$with_dmalloc" 1>&6
-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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldmalloc $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2377 "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 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
-EOF
-
- LIBS="-ldmalloc $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-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
-
-# Check whether --with-gpm or --without-gpm was given.
-if test "${with_gpm+set}" = set; then
- withval="$with_gpm"
- with_gpm=$withval
-else
- with_gpm=no
-fi
-
-echo "$ac_t""$with_gpm" 1>&6
-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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lgpm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2440 "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: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"
-
-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"
- cat >> confdefs.h <<\EOF
-#define HAVE_LIBGPM 1
-EOF
-
- for ac_hdr in gpm.h
-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"
-#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"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-else
- echo "$ac_t""no" 1>&6
-echo "configure: warning: Cannot link with gpm library - read the FAQ" 1>&2
-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"$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
-case $DFT_LWR_MODEL in
-libtool) LD_MODEL='' ;;
-normal) LD_MODEL='' ;;
-debug) LD_MODEL=$CC_G_OPT ;;
-profile) LD_MODEL='-pg';;
-shared) LD_MODEL='' ;;
-esac
-echo "$ac_t""$LD_MODEL" 1>&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
-
-# Check whether --enable-rpath or --disable-rpath was given.
-if test "${enable_rpath+set}" = set; then
- enableval="$enable_rpath"
- cf_cv_ld_rpath=$enableval
-else
- cf_cv_ld_rpath=no
-fi
-
-echo "$ac_t""$cf_cv_ld_rpath" 1>&6
-
-
-
- LOCAL_LDFLAGS=
- LOCAL_LDFLAGS2=
- 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
-
-# Check whether --with-shlib-version or --without-shlib-version was given.
-if test "${with_shlib_version+set}" = set; then
- withval="$with_shlib_version"
- test -z "$withval" && withval=auto
- case $withval in #(vi
- yes) #(vi
- cf_cv_shlib_version=auto
- ;;
- rel|abi|auto|no) #(vi
- cf_cv_shlib_version=$withval
- ;;
- *)
- { echo "configure: error: option value must be one of: rel, abi, auto or no" 1>&2; exit 1; }
- ;;
- esac
-
-else
- cf_cv_shlib_version=auto
-fi
-
- echo "$ac_t""$cf_cv_shlib_version" 1>&6
-
- cf_cv_rm_so_locs=no
-
- # Some less-capable ports of gcc support only -fpic
- 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
- 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"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-int x = 1
-; return 0; }
-EOF
-if { (eval echo configure:2612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
- echo "$ac_t""$CC_SHARED_OPTS" 1>&6
- CFLAGS="$cf_save_CFLAGS"
- fi
-
- case $cf_cv_system_name in
- beos*)
- MK_SHARED_LIB='$(CC) -o $@ -Xlinker -soname=`basename $@` -nostart -e 0'
- ;;
- hpux*)
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
- LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)'
- else
- CC_SHARED_OPTS='+Z'
- LD_SHARED_OPTS='-Wl,+b,$(libdir)'
- fi
- MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $@'
- # HP-UX shared libraries must be executable, and should be
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
- irix*)
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $@` -o $@'
- cf_cv_rm_so_locs=yes
- ;;
- linux*|gnu*)
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $@ .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $@'
- ;;
- openbsd2*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $@.$(ABI_VERSION)` -o $@'
- ;;
- openbsd*|freebsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='$(LD) -Bshareable -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- netbsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
- MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
- if test "$cf_cv_shlib_version" = auto; then
- if test ! -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=rel
- fi
- fi
- else
- MK_SHARED_LIB='$(LD) -Bshareable -o $@'
- fi
- ;;
- osf*|mls+*)
- # tested with OSF/1 V3.2 and 'cc'
- # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
- # link with shared libs).
- MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $@`'
- case $host_os in
- osf4*)
- MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
- ;;
- esac
- MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $@'
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-rpath"
- # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- cf_cv_rm_so_locs=yes
- ;;
- sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
- # tested with osr5.0.5
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-belf -KPIC'
- fi
- MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
- if test "$cf_cv_ld_rpath" = yes ; then
- # only way is to set LD_RUN_PATH but no switch for it
- RUN_PATH=$libdir
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- LINK_PROGS='LD_RUN_PATH=$(libdir)'
- LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
- ;;
- sunos4*)
- # tested with SunOS 4.1.1 and gcc 2.7.0
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -assert pure-text -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- solaris2*)
- # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-R"
- EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- sysv5uw7*|unix_sv*)
- # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -d y -G -o $@'
- ;;
- *)
- CC_SHARED_OPTS='unknown'
- MK_SHARED_LIB='echo unknown'
- ;;
- esac
-
- # This works if the last tokens in $MK_SHARED_LIB are the -o target.
- case "$cf_cv_shlib_version" in #(vi
- rel|abi)
- case "$MK_SHARED_LIB" in #(vi
- *'-o $@')
- test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
- ;;
- *)
- echo "configure: warning: ignored --with-shlib-version" 1>&2
- ;;
- 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
- cf_save_LIBS="$LIBS"
- LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
- cat > conftest.$ac_ext <<EOF
-#line 2784 "configure"
-#include "confdefs.h"
-
-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*
- cf_rpath_space=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_rpath_space=yes
-fi
-rm -f conftest*
- LIBS="$cf_save_LIBS"
- echo "$ac_t""$cf_rpath_space" 1>&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
-
-
-
-
-
-
-
-
-
-
-
-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; }
- fi
- done
-fi
-
-###############################################################################
-
-
-### 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
-
-# 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
-
-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
-
-# Check whether --enable-database or --disable-database was given.
-if test "${enable_database+set}" = set; then
- enableval="$enable_database"
- use_database=$enableval
-else
- use_database=yes
-fi
-
-echo "$ac_t""$use_database" 1>&6
-
-case $host_os in #(vi
-os2*) #(vi
- TERMINFO_SRC='${top_srcdir}/misc/emx.src'
- ;;
-*) #(vi
- TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
- ;;
-esac
-
-
-if test "$use_database" != no ; then
- cat >> confdefs.h <<\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
-
-# Check whether --enable-database or --disable-database was given.
-if test "${enable_database+set}" = set; then
- enableval="$enable_database"
- TERMINFO_SRC=$withval
-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
-
-# Check whether --with-fallbacks or --without-fallbacks was given.
-if test "${with_fallbacks+set}" = set; then
- withval="$with_fallbacks"
- with_fallback=$withval
-else
- with_fallback=
-fi
-
-echo "$ac_t""$with_fallback" 1>&6
-FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
-
-
-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"
-else
-
-echo $ac_n "checking for list of terminfo directories""... $ac_c" 1>&6
-echo "configure:2905: checking for list of terminfo directories" >&5
-
-
-# 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}:"
-cf_dst_path=
-for cf_src_path in $withval
-do
-
-case ".$cf_src_path" in #(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 "configure: error: expected a pathname" 1>&2; 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"
-
-eval TERMINFO_DIRS="$cf_dst_path"
-
-echo "$ac_t""$TERMINFO_DIRS" 1>&6
-test -n "$TERMINFO_DIRS" && cat >> confdefs.h <<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
-
-# 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}"
-fi
-
-case ".$withval" in #(vi
-./*) #(vi
- ;;
-.a-zA-Z:\\/*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
- ;;
- esac
- ;; #(vi
-.NONE/*)
- withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
- ;;
-*)
- { echo "configure: error: expected a pathname" 1>&2; exit 1; }
- ;;
-esac
-
-eval TERMINFO="$withval"
-
-echo "$ac_t""$TERMINFO" 1>&6
-cat >> confdefs.h <<EOF
-#define TERMINFO "$TERMINFO"
-EOF
-
-
-fi
-
-
-
-### use option --disable-big-core to make tic run on small machines
-### We need 4Mb, check if we can allocate 50% more than that.
-echo $ac_n "checking if big-core option selected""... $ac_c" 1>&6
-echo "configure:3002: checking if big-core option selected" >&5
-
-# Check whether --enable-big-core or --disable-big-core was given.
-if test "${enable_big_core+set}" = set; then
- enableval="$enable_big_core"
- with_big_core=$enableval
-else
- if test "$cross_compiling" = yes; then
- with_big_core=no
-else
- cat > conftest.$ac_ext <<EOF
-#line 3013 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <string.h>
-int main() {
- unsigned long n = 6000000L;
- char *s = malloc(n);
- if (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
- 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*
-fi
-
-fi
-
-echo "$ac_t""$with_big_core" 1>&6
-test "$with_big_core" = "yes" && cat >> confdefs.h <<\EOF
-#define HAVE_BIG_CORE 1
-EOF
-
-
-### use option --enable-termcap to compile in the termcap fallback support
-echo $ac_n "checking if you want termcap-fallback support""... $ac_c" 1>&6
-echo "configure:3048: checking if you want termcap-fallback support" >&5
-
-# Check whether --enable-termcap or --disable-termcap was given.
-if test "${enable_termcap+set}" = set; then
- enableval="$enable_termcap"
- with_termcap=$enableval
-else
- with_termcap=no
-fi
-
-echo "$ac_t""$with_termcap" 1>&6
-
-if test "$with_termcap" != "yes" ; then
- cat >> confdefs.h <<\EOF
-#define PURE_TERMINFO 1
-EOF
-
-else
-
-### 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
-
-# Check whether --enable-getcap or --disable-getcap was given.
-if test "${enable_getcap+set}" = set; then
- enableval="$enable_getcap"
- with_getcap=$enableval
-else
- with_getcap=no
-fi
-
-echo "$ac_t""$with_getcap" 1>&6
-test "$with_getcap" = "yes" && cat >> confdefs.h <<\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
-
-# Check whether --enable-getcap-cache or --disable-getcap-cache was given.
-if test "${enable_getcap_cache+set}" = set; then
- enableval="$enable_getcap_cache"
- 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
-#define USE_GETCAP_CACHE 1
-EOF
-
-
-fi
-
-### Use option --enable-symlinks to make tic use symlinks, not hard links
-### to reduce storage requirements for the terminfo database.
-
-for ac_func in \
- remove \
- unlink
-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"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* 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() {
-
-/* 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();
-#endif
-
-; return 0; }
-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
-
-
-if test "$ac_cv_prog_cc_cross" = yes ; then
- for ac_func in \
- link \
- symlink
-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"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* 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() {
-
-/* 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();
-#endif
-
-; return 0; }
-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
- 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
-else
-
- 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
- cat > conftest.$ac_ext <<EOF
-#line 3237 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-int main()
-{
- int fail = 0;
- char *src = "config.log";
- char *dst = "conftest.chk";
- struct stat src_sb;
- struct stat dst_sb;
-
- stat(src, &src_sb);
- fail = ($cf_func("config.log", "conftest.chk") < 0)
- || (stat(dst, &dst_sb) < 0)
- || (dst_sb.st_mtime != src_sb.st_mtime);
-#ifdef HAVE_UNLINK
- unlink(dst);
-#else
- remove(dst);
-#endif
- exit (fail);
-}
-
-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
-
- 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*
-
- eval 'ac_cv_func_'$cf_func'=no'
-fi
-rm -fr conftest*
-fi
-
- 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
-#define HAVE_LINK 1
-EOF
-
- test "$ac_cv_func_symlink" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_SYMLINK 1
-EOF
-
-fi
-
-
-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
- if test "$ac_cv_func_symlink" = yes ; then
- with_symlinks=yes
- else
- with_symlinks=no
- fi
- echo "$ac_t""$with_symlinks" 1>&6
-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
- if test "$ac_cv_func_link" = yes ; then
- with_links=yes
- else
- with_links=no
- fi
- echo "$ac_t""$with_links" 1>&6
-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
-
-# 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 "$ac_t""$with_symlinks" 1>&6
-fi
-
-test "$with_links" = yes && cat >> confdefs.h <<\EOF
-#define USE_LINKS 1
-EOF
-
-test "$with_symlinks" = yes && cat >> confdefs.h <<\EOF
-#define USE_SYMLINKS 1
-EOF
-
-
-### 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
-
-# Check whether --enable-broken_linker or --disable-broken_linker was given.
-if test "${enable_broken_linker+set}" = set; then
- enableval="$enable_broken_linker"
- with_broken_linker=$enableval
-else
- with_broken_linker=$BROKEN_LINKER
-fi
-
-echo "$ac_t""$with_broken_linker" 1>&6
-test "$with_broken_linker" = yes && cat >> confdefs.h <<\EOF
-#define BROKEN_LINKER 1
-EOF
-
-
-### 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
-
-# Check whether --enable-bsdpad or --disable-bsdpad was given.
-if test "${enable_bsdpad+set}" = set; then
- enableval="$enable_bsdpad"
- with_bsdpad=$enableval
-else
- with_bsdpad=no
-fi
-
-echo "$ac_t""$with_bsdpad" 1>&6
-test "$with_bsdpad" = yes && cat >> confdefs.h <<\EOF
-#define BSD_TPUTS 1
-EOF
-
-
-### 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
-
-# Check whether --with-rcs-ids or --without-rcs-ids was given.
-if test "${with_rcs_ids+set}" = set; then
- withval="$with_rcs_ids"
- with_rcs_ids=$withval
-else
- with_rcs_ids=no
-fi
-
-echo "$ac_t""$with_rcs_ids" 1>&6
-test "$with_rcs_ids" = yes && cat >> confdefs.h <<\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
-
-
-# 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
-else
- cf_manpage_form=unknown
-fi
-
-
-case ".$cf_manpage_form" in
-.gzip|.compress|.BSDI|.normal|.formatted) # (vi
- ;;
-.unknown|.) # (vi
- if test -z "$MANPATH" ; then
- MANPATH="/usr/man:/usr/share/man"
- fi
- # look for the 'date' man-page (it's most likely to be installed!)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
- cf_manpage_form=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
- 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;;
- esac
- break
- fi
- done
- if test "$cf_manpage_form" != "unknown" ; then
- break
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-.*) # (vi
- echo "configure: warning: Unexpected manpage-format" 1>&2
- ;;
-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
-
-
-# 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
-else
- cf_manpage_renames=yes
-fi
-
-
-case ".$cf_manpage_renames" in #(vi
-.no) #(vi
- ;;
-.|.yes)
- # Debian 'man' program?
- if test -f /etc/debian_version ; then
- cf_manpage_renames=`cd $srcdir && pwd`/man/man_db.renames
- else
- cf_manpage_renames=no
- 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; }
- fi
-
- test ! -d man && mkdir man
-
- # Construct a sed-script to perform renaming within man-pages
- if test -n "$cf_manpage_renames" ; then
- test ! -d man && mkdir man
- $srcdir/man/make_sed.sh $cf_manpage_renames >man/edit_man.sed
- 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
-
-
-# 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
-else
- cf_manpage_symlinks=yes
-fi
-
-
-echo "$ac_t""$cf_manpage_symlinks" 1>&6
-
-
-echo $ac_n "checking for manpage tbl""... $ac_c" 1>&6
-echo "configure:3512: checking for manpage tbl" >&5
-
-
-# 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
-else
- cf_manpage_tbl=no
-fi
-
-
-echo "$ac_t""$cf_manpage_tbl" 1>&6
-
-
- if test "$prefix" = "NONE" ; then
- cf_prefix="$ac_default_prefix"
- else
- cf_prefix="$prefix"
- fi
-
- case "$cf_manpage_form" in # (vi
- *formatted*) # (vi
- cf_subdir='$mandir/cat'
- cf_format=yes
- ;;
- *)
- cf_subdir='$mandir/man'
- cf_format=no
- ;;
- esac
-
-test ! -d man && mkdir man
-cat >man/edit_man.sh <<CF_EOF
-#! /bin/sh
-# this script is generated by the configure-script
-prefix="$cf_prefix"
-datadir="$datadir"
-TERMINFO="$TERMINFO"
-MKDIRS="`cd $srcdir && pwd`/mkinstalldirs"
-INSTALL="$INSTALL"
-INSTALL_DATA="$INSTALL_DATA"
-transform="$program_transform_name"
-
-TMP=\${TMPDIR-/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 5 15
-
-verb=\$1
-shift
-
-mandir=\$1
-shift
-
-srcdir=\$1
-shift
-
-for i in \$* ; do
-case \$i in #(vi
-*.orig|*.rej) ;; #(vi
-*.[0-9]*)
- section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
- if test \$verb = installing ; then
- if test ! -d $cf_subdir\${section} ; then
- \$MKDIRS $cf_subdir\$section
- fi
- fi
- aliases=
- source=\`basename \$i\`
- inalias=\$source
- test ! -f \$inalias && inalias="\$srcdir/\$inalias"
- if test ! -f \$inalias ; then
- echo .. skipped \$source
- continue
- fi
-CF_EOF
-if test "$cf_manpage_symlinks" = yes ; then
-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
-cat >>man/edit_man.sh <<CF_EOF
- # perform program transformations for section 1 man pages
- if test \$section = 1 ; then
- target=$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
- else
- target=$cf_subdir\${section}/\$source
- fi
-
- # replace variables in man page
-CF_EOF
-
- 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
-
-cat >>man/edit_man.sh <<CF_EOF
- sed -e "s,@DATADIR@,\$datadir," \\
- -e "s,@TERMINFO@,\$TERMINFO," \\
-CF_EOF
-
- 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
-
-cat >>man/edit_man.sh <<CF_EOF
- < \$i >\$TMP
-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
-CF_EOF
-fi
-if test $cf_manpage_tbl = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- tbl \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-if test $with_curses_h != yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-if test $cf_format = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- nroff -man \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-case "$cf_manpage_form" in #(vi
-*compress*) #(vi
-cat >>man/edit_man.sh <<CF_EOF
- if test \$verb = installing ; then
- if ( compress -f \$TMP )
- then
- mv \$TMP.Z \$TMP
- fi
- fi
- target="\$target.Z"
-CF_EOF
- ;;
-*gzip*) #(vi
-cat >>man/edit_man.sh <<CF_EOF
- if test \$verb = installing ; then
- if ( gzip -f \$TMP )
- then
- mv \$TMP.gz \$TMP
- fi
- fi
- target="\$target.gz"
-CF_EOF
- ;;
-*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/'\`"
-CF_EOF
- ;;
-esac
-cat >>man/edit_man.sh <<CF_EOF
- suffix=\`basename \$target | sed -e 's/^[^.]*//'\`
- if test \$verb = installing ; then
- echo \$verb \$target
- \$INSTALL_DATA \$TMP \$target
- test -n "\$aliases" && (
- cd $cf_subdir\${section} && (
- target=\`basename \$target\`
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- if test -f \$cf_alias\${suffix} ; then
- if ( cmp -s \$target \$cf_alias\${suffix} )
- then
- :
- else
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- fi
- else
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- fi
- done
- )
- )
- elif test \$verb = removing ; then
- echo \$verb \$target
- rm -f \$target
- test -n "\$aliases" && (
- cd $cf_subdir\${section} && (
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- done
- )
- )
- else
-# echo ".hy 0"
- cat \$TMP
- fi
- ;;
-esac
-done
-exit 0
-CF_EOF
-chmod 755 man/edit_man.sh
-
-
-
-###############################################################################
-
-
-### 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
-
-# Check whether --enable-ext-funcs or --disable-ext-funcs was given.
-if test "${enable_ext_funcs+set}" = set; then
- enableval="$enable_ext_funcs"
- with_ext_funcs=$enableval
-else
- with_ext_funcs=yes
-fi
-
-echo "$ac_t""$with_ext_funcs" 1>&6
-if test "$with_ext_funcs" = yes ; then
- cat >> confdefs.h <<\EOF
-#define HAVE_CURSES_VERSION 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_HAS_KEY 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_RESIZETERM 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_USE_DEFAULT_COLORS 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_WRESIZE 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define NCURSES_EXT_FUNCS 1
-EOF
-
-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
-
-# Check whether --enable-const or --disable-const was given.
-if test "${enable_const+set}" = set; then
- enableval="$enable_const"
- with_ext_const=$enableval
-else
- with_ext_const=no
-fi
-
-echo "$ac_t""$with_ext_const" 1>&6
-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
-
-# Check whether --enable-no-padding or --disable-no-padding was given.
-if test "${enable_no_padding+set}" = set; then
- enableval="$enable_no_padding"
- with_no_padding=$enableval
-else
- with_no_padding=$with_ext_funcs
-fi
-
-echo "$ac_t""$with_no_padding" 1>&6
-test "$with_no_padding" = yes && cat >> confdefs.h <<\EOF
-#define NCURSES_NO_PADDING 1
-EOF
-
-
-### use option --enable-sigwinch to turn on use of SIGWINCH logic
-echo $ac_n "checking if you want SIGWINCH handler""... $ac_c" 1>&6
-echo "configure:3827: checking if you want SIGWINCH handler" >&5
-
-# Check whether --enable-sigwinch or --disable-sigwinch was given.
-if test "${enable_sigwinch+set}" = set; then
- enableval="$enable_sigwinch"
- with_sigwinch=$enableval
-else
- with_sigwinch=$with_ext_funcs
-fi
-
-echo "$ac_t""$with_sigwinch" 1>&6
-test "$with_sigwinch" = yes && cat >> confdefs.h <<\EOF
-#define USE_SIGWINCH 1
-EOF
-
-
-### use option --enable-tcap-names to allow user to define new capabilities
-echo $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
-
-# Check whether --enable-tcap-names or --disable-tcap-names was given.
-if test "${enable_tcap_names+set}" = set; then
- enableval="$enable_tcap_names"
- with_tcap_names=$enableval
-else
- with_tcap_names=$with_ext_funcs
-fi
-
-echo "$ac_t""$with_tcap_names" 1>&6
-NCURSES_XNAMES=0
-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-
-
-###############################################################################
-# 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
-
-# Check whether --with-develop or --without-develop was given.
-if test "${with_develop+set}" = set; then
- withval="$with_develop"
- with_develop=$withval
-else
- with_develop=no
-fi
-
-echo "$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
-
-
-### 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
-
-# Check whether --enable-hard-tabs or --disable-hard-tabs was given.
-if test "${enable_hard_tabs+set}" = set; then
- enableval="$enable_hard_tabs"
- with_hardtabs=$enableval
-else
- with_hardtabs=$with_develop
-fi
-
-echo "$ac_t""$with_hardtabs" 1>&6
-test "$with_hardtabs" = yes && cat >> confdefs.h <<\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
-
-# Check whether --enable-root-environ or --disable-root-environ was given.
-if test "${enable_root_environ+set}" = set; then
- enableval="$enable_root_environ"
- with_root_environ=$enableval
-else
- with_root_environ=yes
-fi
-
-echo "$ac_t""$with_root_environ" 1>&6
-test "$with_root_environ" = yes && cat >> confdefs.h <<\EOF
-#define USE_ROOT_ENVIRON 1
-EOF
-
-
-### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo $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
-
-# Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
-if test "${enable_xmc_glitch+set}" = set; then
- enableval="$enable_xmc_glitch"
- with_xmc_glitch=$enableval
-else
- with_xmc_glitch=$with_develop
-fi
-
-echo "$ac_t""$with_xmc_glitch" 1>&6
-test "$with_xmc_glitch" = yes && cat >> confdefs.h <<\EOF
-#define USE_XMC_SUPPORT 1
-EOF
-
-
-###############################################################################
-# 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
-
-# Check whether --enable-assumed-color or --disable-assumed-color was given.
-if test "${enable_assumed_color+set}" = set; then
- enableval="$enable_assumed_color"
- with_assumed_color=$enableval
-else
- with_assumed_color=yes
-fi
-
-echo "$ac_t""$with_assumed_color" 1>&6
-test "$with_assumed_color" = yes && cat >> confdefs.h <<\EOF
-#define USE_ASSUMED_COLOR 1
-EOF
-
-
-### use option --enable-hashmap to turn on use of hashmap scrolling logic
-echo $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
-
-# Check whether --enable-hashmap or --disable-hashmap was given.
-if test "${enable_hashmap+set}" = set; then
- enableval="$enable_hashmap"
- with_hashmap=$enableval
-else
- with_hashmap=yes
-fi
-
-echo "$ac_t""$with_hashmap" 1>&6
-test "$with_hashmap" = yes && cat >> confdefs.h <<\EOF
-#define USE_HASHMAP 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
-
-# Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
-if test "${enable_safe_sprintf+set}" = set; then
- enableval="$enable_safe_sprintf"
- with_safe_sprintf=$enableval
-else
- with_safe_sprintf=no
-fi
-
-echo "$ac_t""$with_safe_sprintf" 1>&6
-test "$with_safe_sprintf" = yes && cat >> confdefs.h <<\EOF
-#define USE_SAFE_SPRINTF 1
-EOF
-
-
-### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
-# when hashmap is used scroll hints are useless
-if test "$with_hashmap" = no ; then
-echo $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
-
-# Check whether --enable-scroll-hints or --disable-scroll-hints was given.
-if test "${enable_scroll_hints+set}" = set; then
- enableval="$enable_scroll_hints"
- with_scroll_hints=$enableval
-else
- with_scroll_hints=yes
-fi
-
-echo "$ac_t""$with_scroll_hints" 1>&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
-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
-
-# Check whether --enable-widec or --disable-widec was given.
-if test "${enable_widec+set}" = set; then
- enableval="$enable_widec"
- with_widec=$enableval
-else
- with_widec=no
-fi
-
-echo "$ac_t""$with_widec" 1>&6
-if test "$with_widec" = yes ; then
- LIB_SUFFIX="w${LIB_SUFFIX}"
- cat >> confdefs.h <<\EOF
-#define USE_WIDEC_SUPPORT 1
-EOF
-
-fi
-
-###############################################################################
-
-
-### 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
-
-# Check whether --enable-echo or --disable-echo was given.
-if test "${enable_echo+set}" = set; then
- enableval="$enable_echo"
- with_echo=$enableval
-else
- with_echo=yes
-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
-
-
-### 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
-
-# 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
-
-if test -n "$with_warnings"; then
- ADAFLAGS="$ADAFLAGS -gnatg"
-
-if test "$GCC" = yes
-then
- cat > conftest.$ac_ext <<EOF
-#line 4087 "configure"
-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
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-W -Wall"
- cf_warn_CONST=""
- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
- for cf_opt in \
- Wbad-function-cast \
- Wcast-align \
- Wcast-qual \
- Winline \
- Wmissing-declarations \
- Wmissing-prototypes \
- Wnested-externs \
- Wpointer-arith \
- Wshadow \
- Wstrict-prototypes $cf_warn_CONST
- 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
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
- fi
- done
- rm -f conftest*
- CFLAGS="$cf_save_CFLAGS"
-fi
-
-
-fi
-
-if test "$GCC" = yes
-then
-cat > conftest.i <<EOF
-#ifndef GCC_PRINTF
-#define GCC_PRINTF 0
-#endif
-#ifndef GCC_SCANF
-#define GCC_SCANF 0
-#endif
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-EOF
-if test "$GCC" = yes
-then
- echo "checking for $CC __attribute__ directives" 1>&6
-echo "configure:4141: checking for $CC __attribute__ directives" >&5
- cat > conftest.$ac_ext <<EOF
-#line 4143 "configure"
-#include "confdefs.h"
-#include "conftest.h"
-#include "conftest.i"
-#if GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-#if GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
-EOF
- for cf_attribute in scanf printf unused noreturn
- do
-
-CF_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cf_directive="__attribute__(($cf_attribute))"
- echo "checking for $CC $cf_directive" 1>&5
- case $cf_attribute in
- scanf|printf)
- cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE 1
-EOF
- ;;
- *)
- cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE $cf_directive
-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
- cat conftest.h >>confdefs.h
-# else
-# sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h
- fi
- done
-else
- fgrep define conftest.i >>confdefs.h
-fi
-rm -rf conftest*
-fi
-
-
-### 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
-
-# Check whether --enable-assertions or --disable-assertions was given.
-if test "${enable_assertions+set}" = set; then
- enableval="$enable_assertions"
- with_assertions=$enableval
-else
- with_assertions=no
-fi
-
-echo "$ac_t""$with_assertions" 1>&6
-if test -n "$GCC"
-then
- if test "$with_assertions" = no
- then
- cat >> confdefs.h <<\EOF
-#define NDEBUG 1
-EOF
-
- CPPFLAGS="$CPPFLAGS -DNDEBUG"
- else
- ADAFLAGS="$ADAFLAGS -gnata"
- fi
-fi
-
-### use option --disable-leaks to suppress "permanent" leaks, for testing
-
-# 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
-#define NO_LEAKS 1
-EOF
-
-fi
-
-cat >> confdefs.h <<\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"
- test "$enableval" = yes && cat >> confdefs.h <<\EOF
-#define NCURSES_EXPANDED 1
-EOF
-
-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"
- test "$enableval" = no && cat >> confdefs.h <<\EOF
-#define NCURSES_NOMACROS 1
-EOF
-
-fi
-
-
-### 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
-else
- cat > conftest.$ac_ext <<EOF
-#line 4269 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gettimeofday(); 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 gettimeofday();
-
-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
-gettimeofday();
-#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
-#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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lbsd $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4323 "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 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
-#define HAVE_GETTIMEOFDAY 1
-EOF
-
- LIBS="$LIBS -lbsd"
-else
- echo "$ac_t""no" 1>&6
-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
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 4368 "configure"
-#include "confdefs.h"
-
- #include <stdio.h>
- #include <math.h>
-
-int main() {
-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*
- 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
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$cf_cv_need_libm" 1>&6
-if test "$cf_cv_need_libm" = yes
-then
-MATH_LIB=-lm
-fi
-
-
-
-### 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
-else
- cat > conftest.$ac_ext <<EOF
-#line 4405 "configure"
-#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*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 4430 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-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*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 4448 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-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*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 4469 "configure"
-#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); }
-
-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
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#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"
-#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"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_dirent_$ac_safe=no"
-fi
-rm -f conftest*
-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
-EOF
- ac_header_dirent=$ac_hdr; break
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
-echo $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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldir $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4554 "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 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
- LIBS="$LIBS -ldir"
-else
- echo "$ac_t""no" 1>&6
-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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lx $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4595 "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 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"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="$LIBS -lx"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-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
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 4636 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <regex.h>
-int main() {
-
- 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*
- 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"
-#include "confdefs.h"
-#include <regexp.h>
-int main() {
-
- 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*
- cf_cv_regex="regexp.h"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-
- cf_save_LIBS="$LIBS"
- LIBS="-lgen $LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 4679 "configure"
-#include "confdefs.h"
-#include <regexpr.h>
-int main() {
-
- 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*
- cf_cv_regex="regexpr.h"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- LIBS="$cf_save_LIBS"
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_regex" 1>&6
-case $cf_cv_regex in
- regex.h) cat >> confdefs.h <<\EOF
-#define HAVE_REGEX_H_FUNCS 1
-EOF
- ;;
- regexp.h) cat >> confdefs.h <<\EOF
-#define HAVE_REGEXP_H_FUNCS 1
-EOF
- ;;
- regexpr.h) cat >> confdefs.h <<\EOF
-#define HAVE_REGEXPR_H_FUNCS 1
-EOF
- ;;
-esac
-
-
-for ac_hdr in \
-fcntl.h \
-getopt.h \
-libc.h \
-limits.h \
-locale.h \
-poll.h \
-sys/bsdtypes.h \
-sys/ioctl.h \
-sys/param.h \
-sys/poll.h \
-sys/select.h \
-sys/time.h \
-sys/times.h \
-ttyent.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: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"
-#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"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-# 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lcposix $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4792 "configure"
-#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
-EOF
-
- LIBS="-lcposix $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-linet $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4835 "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 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
- LIBS="$LIBS -linet"
-else
- echo "$ac_t""no" 1>&6
-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
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 4875 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:4890: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_sys_time_select=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_sys_time_select=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_sys_time_select" 1>&6
-test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_SYS_TIME_SELECT 1
-EOF
-
-
-
-### 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_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"
-#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;
-}
-{ /* 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;
-}
-
-; return 0; }
-EOF
-if { (eval echo configure:4973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- 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
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
- cat >> confdefs.h <<\EOF
-#define const
-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
-else
- ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
- cat > conftest.$ac_ext <<EOF
-#line 5001 "configure"
-#include "confdefs.h"
-
-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*
- ac_cv_c_inline=$ac_kw; break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-
-fi
-
-echo "$ac_t""$ac_cv_c_inline" 1>&6
-case "$ac_cv_c_inline" in
- inline | yes) ;;
- no) cat >> confdefs.h <<\EOF
-#define inline
-EOF
- ;;
- *) cat >> confdefs.h <<EOF
-#define inline $ac_cv_c_inline
-EOF
- ;;
-esac
-
-test "$ac_cv_c_inline" != no && cat >> confdefs.h <<\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
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 5046 "configure"
-#include "confdefs.h"
-
-int main() {
-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*
- 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*
-
-fi
-
-echo "$ac_t""$cf_cv_unsigned_literals" 1>&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
-else
-
- if test "$cross_compiling" = yes; then
- cf_cv_typeof_chtype=long
-else
- cat > conftest.$ac_ext <<EOF
-#line 5080 "configure"
-#include "confdefs.h"
-
-#ifdef USE_WIDEC_SUPPORT
-#include <stddef.h> /* we want wchar_t */
-#define WANT_BITS 39
-#else
-#define WANT_BITS 31
-#endif
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
- char *result = "long";
-#ifdef USE_WIDEC_SUPPORT
- /*
- * If wchar_t is smaller than a long, it must be an int or a
- * short. We prefer not to use a short anyway.
- */
- if (sizeof(unsigned long) > sizeof(wchar_t))
- result = "int";
-#endif
- if (sizeof(unsigned long) > sizeof(unsigned int)) {
- int n;
- unsigned int x;
- for (n = 0; n < WANT_BITS; n++) {
- unsigned int y = (x >> n);
- if (y != 1 || x == 0) {
- x = 0;
- break;
- }
- }
- /*
- * If x is nonzero, an int is big enough for the bits
- * that we want.
- */
- result = (x != 0) ? "int" : "long";
- }
- fputs(result, fp);
- fclose(fp);
- }
- exit(0);
-}
-
-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
- 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
-fi
-rm -fr conftest*
-fi
-
- rm -f cf_test.out
-
-fi
-
-echo "$ac_t""$cf_cv_typeof_chtype" 1>&6
-
-
-cat >> confdefs.h <<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"
-
-
-
-
-
-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
-
-
-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
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 5244 "configure"
-#include "confdefs.h"
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
-#include <errno.h>
-int main() {
-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'
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval 'cf_cv_dcl_'errno'=no'
-fi
-rm -f conftest*
-
-fi
-
-
-eval 'cf_result=$cf_cv_dcl_'errno
-echo "$ac_t""$cf_result" 1>&6
-
-if test "$cf_result" = no ; then
- eval 'cf_result=DECL_'errno
-
-cf_result=`echo "$cf_result" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >> confdefs.h <<EOF
-#define $cf_result 1
-EOF
-
-fi
-
-# 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
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 5294 "configure"
-#include "confdefs.h"
-
-#undef errno
-extern int errno;
-
-int main() {
-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'
-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*
-fi
-
-
-eval 'cf_result=$cf_cv_have_'errno
-echo "$ac_t""$cf_result" 1>&6
-
-if test "$cf_result" = yes ; then
- eval 'cf_result=HAVE_'errno
-
-cf_result=`echo "$cf_result" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >> confdefs.h <<EOF
-#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
-else
-
- rm -f conftest.a
- cat >conftest.$ac_ext <<EOF
-#line 5343 "configure"
-int testdata[3] = { 123, 456, 789 };
-EOF
- if { (eval echo configure:5346: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } ; then
- mv conftest.o data.o && \
- ( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
- fi
- rm -f conftest.$ac_ext data.o
- cat >conftest.$ac_ext <<EOF
-#line 5352 "configure"
-int testfunc()
-{
-#if defined(NeXT)
- exit(1); /* I'm told this linker is broken */
-#else
- extern int testdata[3];
- return testdata[0] == 123
- && testdata[1] == 456
- && testdata[2] == 789;
-#endif
-}
-EOF
- if { (eval echo configure:5365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- mv conftest.o func.o && \
- ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
- fi
- rm -f conftest.$ac_ext func.o
- ( eval $ac_cv_prog_RANLIB conftest.a ) 2>&5 >/dev/null
- cf_saveLIBS="$LIBS"
- LIBS="conftest.a $LIBS"
- if test "$cross_compiling" = yes; then
- cf_cv_link_dataonly=unknown
-else
- cat > conftest.$ac_ext <<EOF
-#line 5377 "configure"
-#include "confdefs.h"
-
- int main()
- {
- 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
- 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
-fi
-rm -fr conftest*
-fi
-
- LIBS="$cf_saveLIBS"
-
-fi
-
-echo "$ac_t""$cf_cv_link_dataonly" 1>&6
-test "$cf_cv_link_dataonly" = no && cat >> confdefs.h <<\EOF
-#define BROKEN_LINKER 1
-EOF
-
-
-
-### Checks for library functions.
-for ac_func in \
-getcwd \
-getegid \
-geteuid \
-getttynam \
-issetugid \
-memccpy \
-mkstemp \
-nanosleep \
-poll \
-remove \
-select \
-setbuf \
-setbuffer \
-setvbuf \
-sigaction \
-sigvec \
-strdup \
-strstr \
-tcgetpgrp \
-times \
-vfscanf \
-vsnprintf \
-vsscanf \
-
-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"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* 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() {
-
-/* 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();
-#endif
-
-; return 0; }
-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
-
-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
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 5499 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-int main() {
-
- char temp[128];
- char *buf = temp;
- char *db_array = temp;
- 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*
- cf_cv_cgetent=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_cgetent=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_cgetent" 1>&6
-test "$cf_cv_cgetent" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_BSD_CGETENT 1
-EOF
-
-
-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
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 5543 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-int main() {
-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*
- 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
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$cf_cv_have_isascii" 1>&6
-test "$cf_cv_have_isascii" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_ISASCII 1
-EOF
-
-
-
-if test "$ac_cv_func_sigaction" = yes; then
-echo $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"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <signal.h>
-int main() {
-struct sigaction act
-; return 0; }
-EOF
-if { (eval echo configure:5582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- 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"
-#include "confdefs.h"
-
-#define _POSIX_SOURCE
-#include <sys/types.h>
-#include <signal.h>
-int main() {
-struct sigaction act
-; return 0; }
-EOF
-if { (eval echo configure:5601: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- sigact_bad=yes
- cat >> confdefs.h <<\EOF
-#define SVR4_ACTION 1
-EOF
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- sigact_bad=unknown
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-echo "$ac_t""$sigact_bad" 1>&6
-fi
-
-
-for ac_hdr in \
-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"
-#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"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-if test "$ISC" = yes ; then
- for ac_hdr in sys/termio.h
-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"
-#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"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-fi
-if test "$ac_cv_header_termios_h" = yes ; then
- case "$CFLAGS" in
- *-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"
-#include "confdefs.h"
-#include <termios.h>
-int main() {
-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*
- 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"
-#include "confdefs.h"
-
-#define _POSIX_SOURCE
-#include <termios.h>
-int main() {
-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*
- 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
-
-fi
-rm -f conftest*
-
-fi
-rm -f conftest*
- echo "$ac_t""$termios_bad" 1>&6
- fi
-fi
-
-
-
-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
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 5771 "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; }
-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
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_have_tcgetattr=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$cf_cv_have_tcgetattr" 1>&6
-test "$cf_cv_have_tcgetattr" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_TCGETATTR 1
-EOF
-
-
-
-if test "$cross_compiling" = yes ; then
- echo "configure: warning: cross compiling: assume setvbuf params not reversed" 1>&2
-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
-else
- if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 5825 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-/* If setvbuf has the reversed format, exit 0. */
-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. */
- if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
- exit(1);
- 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
- 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
-fi
-rm -fr conftest*
-fi
-
-rm -f core core.* *.core
-fi
-
-echo "$ac_t""$ac_cv_func_setvbuf_reversed" 1>&6
-if test $ac_cv_func_setvbuf_reversed = yes; then
- cat >> confdefs.h <<\EOF
-#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
-else
- cat > conftest.$ac_ext <<EOF
-#line 5869 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() {
-int i;
-; return 0; }
-EOF
-if { (eval echo configure:5886: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- 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
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<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
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 5912 "configure"
-#include "confdefs.h"
-
-#include <signal.h>
-int main() {
-sigaction_t x
-; return 0; }
-EOF
-if { (eval echo configure:5920: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- 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
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$cf_cv_type_sigaction" 1>&6
-test "$cf_cv_type_sigaction" = yes && cat >> confdefs.h <<\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
-else
-
- cf_cv_sizechange=unknown
- cf_save_CFLAGS="$CFLAGS"
-
-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"
-#include "confdefs.h"
-#include <sys/types.h>
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#else
-#ifdef HAVE_TERMIO_H
-#include <termio.h>
-#endif
-#endif
-#ifdef NEED_PTEM_H
-/* This is a workaround for SCO: they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
- */
-#include <sys/stream.h>
-#include <sys/ptem.h>
-#endif
-#if !defined(sun) || !defined(HAVE_TERMIOS_H)
-#include <sys/ioctl.h>
-#endif
-
-int main() {
-
-#ifdef TIOCGSIZE
- struct ttysize win; /* FIXME: what system is this? */
- int y = win.ts_lines;
- int x = win.ts_cols;
-#else
-#ifdef TIOCGWINSZ
- struct winsize win;
- int y = win.ws_row;
- int x = win.ws_col;
-#else
- no TIOCGSIZE or TIOCGWINSZ
-#endif /* TIOCGWINSZ */
-#endif /* TIOCGSIZE */
-
-; return 0; }
-EOF
-if { (eval echo configure:5994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_sizechange=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_sizechange=no
-fi
-rm -f conftest*
-
- CFLAGS="$cf_save_CFLAGS"
- if test "$cf_cv_sizechange" = yes ; then
- echo "size-change succeeded ($cf_opts)" >&5
- test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
- break
- fi
-done
-
-fi
-
-echo "$ac_t""$cf_cv_sizechange" 1>&6
-if test "$cf_cv_sizechange" != no ; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SIZECHANGE 1
-EOF
-
- case $cf_cv_sizechange in #(vi
- NEED*)
- cat >> confdefs.h <<EOF
-#define $cf_cv_sizechange 1
-EOF
-
- ;;
- 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
-else
- cat > conftest.$ac_ext <<EOF
-#line 6038 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char memmove(); 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 memmove();
-
-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
-memmove();
-#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
- :
-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
-else
- cat > conftest.$ac_ext <<EOF
-#line 6085 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char bcopy(); 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 bcopy();
-
-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
-bcopy();
-#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"
-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
- cat > conftest.$ac_ext <<EOF
-#line 6133 "configure"
-#include "confdefs.h"
-
-int main() {
- static char data[] = "abcdefghijklmnopqrstuwwxyz";
- char temp[40];
- bcopy(data, temp, sizeof(data));
- bcopy(temp+10, temp, 15);
- bcopy(temp+5, temp+15, 10);
- exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
-}
-
-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
- 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
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$cf_cv_good_bcopy" 1>&6
-
-else
- echo "$ac_t""no" 1>&6
-cf_cv_good_bcopy=no
-fi
-
- if test "$cf_cv_good_bcopy" = yes ; then
- cat >> confdefs.h <<\EOF
-#define USE_OK_BCOPY 1
-EOF
-
- else
- cat >> confdefs.h <<\EOF
-#define USE_MY_MEMMOVE 1
-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
-else
-
-if test "$cross_compiling" = yes; then
- cf_cv_working_poll=unknown
-else
- cat > conftest.$ac_ext <<EOF
-#line 6193 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#ifdef HAVE_POLL_H
-#include <poll.h>
-#else
-#include <sys/poll.h>
-#endif
-int main() {
- struct pollfd myfds;
- int ret;
-
- myfds.fd = 0;
- myfds.events = POLLIN;
-
- ret = poll(&myfds, 1, 100);
- exit(ret != 0);
-}
-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
- 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
-fi
-rm -fr conftest*
-fi
-
-fi
-
-echo "$ac_t""$cf_cv_working_poll" 1>&6
-test "$cf_cv_working_poll" = "yes" && cat >> confdefs.h <<\EOF
-#define HAVE_WORKING_POLL 1
-EOF
-
-
-
-if test -z "$cf_user_CFLAGS" ; then
- CFLAGS=`echo ${CFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
- CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
-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
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 6247 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <sys/types.h>
-
-int main() {
-bool x = false
-; return 0; }
-EOF
-if { (eval echo configure:6257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- 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
-fi
-rm -f conftest*
-
-fi
-
-if test "$cf_cv_cc_bool_type" = 1
-then echo "$ac_t""yes" 1>&6
-else echo "$ac_t""no" 1>&6
-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_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
-
-
-if test -n "$GXX" ; then
-case $cf_cv_system_name in #(vi
-os2*) #(vi
- cf_stdcpp_libname=stdcpp
- ;;
-*)
- 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
-else
-
- cf_save="$LIBS"
- LIBS="$LIBS -l$cf_stdcpp_libname"
-cat > conftest.$ac_ext <<EOF
-#line 6302 "configure"
-#include "confdefs.h"
-
-#include <strstream.h>
-int main() {
-
-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*
- cf_cv_libstdcpp=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_libstdcpp=no
-fi
-rm -f conftest*
- LIBS="$cf_save"
-
-fi
-
-echo "$ac_t""$cf_cv_libstdcpp" 1>&6
-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*)
-
-cf_cxx_library=unknown
-case $cf_cv_system_name in #(vi
-os2*) #(vi
- cf_gpp_libname=gpp
- ;;
-*)
- 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
- cf_save="$LIBS"
- LIBS="$LIBS -l$cf_gpp_libname"
- cat > conftest.$ac_ext <<EOF
-#line 6353 "configure"
-#include "confdefs.h"
-
-#include <$cf_gpp_libname/builtin.h>
-
-int main() {
-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*
- cf_cxx_library=yes
- CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
- if test "$cf_gpp_libname" = cpp ; then
- cat >> confdefs.h <<\EOF
-#define HAVE_GPP_BUILTIN_H 1
-EOF
-
- else
- cat >> confdefs.h <<\EOF
-#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"
-#include "confdefs.h"
-
-#include <builtin.h>
-
-int main() {
-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*
- cf_cxx_library=yes
- CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
- cat >> confdefs.h <<\EOF
-#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*
-fi
-rm -f conftest*
- LIBS="$cf_save"
- echo "$ac_t""$cf_cxx_library" 1>&6
-fi
-
- ;;
- *)
- 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
-else
- 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
- CXXCPP="${CXX-g++} -E"
- cat > conftest.$ac_ext <<EOF
-#line 6434 "configure"
-#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
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CXXCPP=/lib/cpp
-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
-fi
-fi
-CXXCPP="$ac_cv_prog_CXXCPP"
-echo "$ac_t""$CXXCPP" 1>&6
-
-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"
-#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"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-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
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 6511 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <sys/types.h>
-
-int main() {
-bool x = false
-; return 0; }
-EOF
-if { (eval echo configure:6521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- 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
-fi
-rm -f conftest*
-
-fi
-
-if test "$cf_cv_builtin_bool" = 1
-then echo "$ac_t""yes" 1>&6
-else echo "$ac_t""no" 1>&6
-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
-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"
-#include "confdefs.h"
-#ifdef __cplusplus
-extern "C" void exit(int);
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-#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
-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);
-}
-
-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
- cf_cv_type_of_bool=`cat cf_test.out`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- cf_cv_type_of_bool=unknown
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
- rm -f cf_test.out
-echo "$ac_t""$cf_cv_type_of_bool" 1>&6
-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
-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
-cf_save_CXXFLAGS="$CXXFLAGS"
-cf_result="none"
-for cf_math in "" MATH_H
-do
-for cf_excp in "" MATH_EXCEPTION
-do
- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu"
- 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"
-#include "confdefs.h"
-
-#include <etip.h.in>
-
-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
-#define ETIP_NEEDS_${cf_math} 1
-EOF
-
- test -n "$cf_excp" && cat >> confdefs.h <<EOF
-#define ETIP_NEEDS_${cf_excp} 1
-EOF
-
- cf_result="$cf_math $cf_excp"
- break
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-done
-echo "$ac_t""$cf_result" 1>&6
-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
-else
-
- 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
-
- if test "$cross_compiling" = yes; then
- cf_cv_cpp_param_init=unknown
-else
- cat > conftest.$ac_ext <<EOF
-#line 6670 "configure"
-#include "confdefs.h"
-#ifdef __cplusplus
-extern "C" void exit(int);
-#endif
-
-class TEST {
-private:
- int value;
-public:
- TEST(int x = 1);
- ~TEST();
-};
-
-TEST::TEST(int x = 1) // some compilers do not like second initializer
-{
- value = x;
-}
-void main() { }
-
-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
- cf_cv_cpp_param_init=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- cf_cv_cpp_param_init=no
-fi
-rm -fr conftest*
-fi
-
-
-fi
-
-echo "$ac_t""$cf_cv_cpp_param_init" 1>&6
-fi
-test "$cf_cv_cpp_param_init" = yes && cat >> confdefs.h <<\EOF
-#define CPP_HAS_PARAM_INIT 1
-EOF
-
-
- case $cf_cv_system_name in #(vi
- sco3.2v5*)
- CXXLDFLAGS="-u main"
- ;;
- esac
-
-else
- cf_cxx_library=no
- cf_cv_builtin_bool=1
-
- # Just because we are not configuring against C++ right now does not
- # mean that a user will not want to use C++. Some distributors disable
- # the C++ portion of this configuration as a shortcut (or just to avoid
- # compiling the demo in the c++ directory). So we need a reasonable
- # default for the 'bool' type.
- #
- # 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
-fi
-
-
-
-
-if test "$cf_with_ada" != "no" ; then
-cf_ada_make=gnatmake
-# Extract the first word of "$cf_ada_make", so it can be a program name with args.
-set dummy $cf_ada_make; ac_word=$2
-echo $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
-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"
- test -z "$ac_cv_prog_gnat_exists" && ac_cv_prog_gnat_exists="no"
-fi
-fi
-gnat_exists="$ac_cv_prog_gnat_exists"
-if test -n "$gnat_exists"; then
- echo "$ac_t""$gnat_exists" 1>&6
-else
- echo "$ac_t""no" 1>&6
-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
- 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=no
- ;;
-esac
-case $cf_cv_gnat_version in
- 3.1*|[4-9].*)
- cf_compile_generics=generics
- cf_generic_objects="\$(GENOBJS)"
- ;;
- *) cf_compile_generics=
- cf_generic_objects=
- ;;
-esac
-
- # 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
-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"
- test -z "$ac_cv_prog_M4_exists" && ac_cv_prog_M4_exists="no"
-fi
-fi
-M4_exists="$ac_cv_prog_M4_exists"
-if test -n "$M4_exists"; then
- echo "$ac_t""$M4_exists" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test "$ac_cv_prog_M4_exists" = no; then
- cf_cv_prog_gnat_correct=no
- 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
-
-rm -f conftest*
-cat >>conftest.ads <<CF_EOF
-procedure conftest;
-CF_EOF
-cat >>conftest.adb <<CF_EOF
-with Text_IO;
-with GNAT.OS_Lib;
-procedure conftest is
-begin
- Text_IO.Put ("Hello World");
- Text_IO.New_Line;
- GNAT.OS_Lib.OS_Exit (0);
-end conftest;
-CF_EOF
-if ( $cf_ada_make conftest 1>&5 2>&1 ) ; then
- if ( ./conftest 1>&5 2>&1 ) ; then
- cf_cv_prog_gnat_correct=yes
- else
- cf_cv_prog_gnat_correct=no
- fi
-else
- cf_cv_prog_gnat_correct=no
-fi
-rm -f conftest*
-
- echo "$ac_t""$cf_cv_prog_gnat_correct" 1>&6
- 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
-fi
-
-
- 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"
- :
-else
- withval="${ADA_INCLUDE-$prefix/lib/ada/adainclude}"
-fi
-
-case ".$withval" in #(vi
-./*) #(vi
- ;;
-.a-zA-Z:\\/*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
- ;;
- esac
- ;; #(vi
-.NONE/*)
- withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
- ;;
-*)
- { echo "configure: error: expected a pathname" 1>&2; exit 1; }
- ;;
-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"
- :
-else
- withval="${ADA_OBJECTS-$prefix/lib/ada/adalib}"
-fi
-
-case ".$withval" in #(vi
-./*) #(vi
- ;;
-.a-zA-Z:\\/*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
- ;;
- esac
- ;; #(vi
-.NONE/*)
- withval=`echo $withval | sed -e s@NONE@$ac_default_prefix@`
- ;;
-*)
- { echo "configure: error: expected a pathname" 1>&2; exit 1; }
- ;;
-esac
-
-eval ADA_OBJECTS="$withval"
-
-
-
-fi
-fi
-
-### It's not possible to appease gcc 2.6.3's conversion-warnings if we're
-### using a 'char' for bools. gcc 2.7.0's conversion-warnings are broken too
-### badly to consider using for development purposes, but 2.5.8 is okay.
-if test -n "$with_warnings"; then
- 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*)
- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
- ;;
- esac
- fi
-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
-if test "$with_termlib" = yes ; then
- LIB_SUBSETS="termlib "
-else
- LIB_SUBSETS="termlib+"
-fi
-LIB_SUBSETS="${LIB_SUBSETS}base"
-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-echo "$ac_t""$LIB_SUBSETS" 1>&6
-
-LIB_TRACING=DEBUG
-case "$CFLAGS" in
-*-DTRACE*)
- LIB_TRACING=all
- ;;
-esac
-
-### Construct the list of include-directories to be generated
-
-CPPFLAGS="$CPPFLAGS -I. -I../include"
-if test "$srcdir" != "."; then
- CPPFLAGS="$CPPFLAGS -I\$(srcdir)/../include"
-fi
-if test "$GCC" != yes; then
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
- fi
- else
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
- fi
-fi
-
-
-
-ACPPFLAGS="$ACPPFLAGS -I. -I../../include"
-if test "$srcdir" != "."; then
- ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include"
-fi
-if test "$GCC" != yes; then
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
- fi
- else
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
- fi
-fi
-
-
-
-### 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
-
- case $DFT_LWR_MODEL in
- libtool) DFT_ARG_SUFFIX='' ;;
- normal) DFT_ARG_SUFFIX='' ;;
- debug) DFT_ARG_SUFFIX='_g' ;;
- profile) DFT_ARG_SUFFIX='_p' ;;
- 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 $ac_n "checking default library-dependency suffix""... $ac_c" 1>&6
-echo "configure:7050: checking default library-dependency suffix" >&5
-
-
- case $DFT_LWR_MODEL in
- libtool) DFT_DEP_SUFFIX='.la' ;;
- normal) DFT_DEP_SUFFIX='.a' ;;
- debug) DFT_DEP_SUFFIX='_g.a' ;;
- profile) DFT_DEP_SUFFIX='_p.a' ;;
- shared)
- case $cf_cv_system_name in
- 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
-
-echo $ac_n "checking default object directory""... $ac_c" 1>&6
-echo "configure:7068: checking default object directory" >&5
-
- 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' ;;
- esac
-echo "$ac_t""$DFT_OBJ_SUBDIR" 1>&6
-
-# 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
-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' ;;
- debug) CXX_LIB_SUFFIX='_g.a' ;;
- profile) CXX_LIB_SUFFIX='_p.a' ;;
- shared)
- case $cf_cv_system_name in
- 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
-
-
-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
-test "$with_overwrite" = no && \
-test "x$includedir" = 'x${prefix}/include' && \
- includedir='$(prefix)/include/ncurses'${LIB_SUFFIX}
-echo "$ac_t""$includedir" 1>&6
-
-
-
-
-
-### Set up low-level terminfo dependencies for makefiles. Note that we
-### could override this.
-if test "$with_termlib" = yes ; then
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
- fi
-fi
-PROG_DEPS="$TEST_DEPS"
-PROG_ARGS="$TEST_ARGS"
-
-### 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
-
-# dependencies and linker-arguments for test-programs
-TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
-if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
-else
- TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
-fi
-
-# dependencies and linker-arguments for utility-programs
-PROG_ARGS="$TEST_ARGS"
-
-cf_cv_src_modules=
-for cf_dir in $modules_to_build
-do
- if test -f $srcdir/$cf_dir/modules; then
-
- # We may/may not have tack in the distribution, though the
- # makefile is.
- if test $cf_dir = tack ; then
- if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
- continue
- fi
- fi
-
- if test -z "$cf_cv_src_modules"; then
- cf_cv_src_modules=$cf_dir
- else
- cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
- fi
-
- # Make the ncurses_cfg.h file record the library interface files as
- # well. These are header files that are the same name as their
- # directory. Ncurses is the only library that does not follow
- # that pattern.
- if test $cf_dir = tack ; then
- continue
- elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
-
-cf_have_include=`echo "$cf_dir" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >> confdefs.h <<EOF
-#define HAVE_${cf_have_include}_H 1
-EOF
-
- cat >> confdefs.h <<EOF
-#define HAVE_LIB${cf_have_include} 1
-EOF
-
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
- fi
- fi
- fi
-done
-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"
-
-
-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"
-test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
-
-ADA_SUBDIRS=
-if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
- SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
- ADA_SUBDIRS="gen src samples"
-fi
-
-SUB_MAKEFILES=
-for cf_dir in $SRC_SUBDIRS
-do
- SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
-done
-
-if test -n "$ADA_SUBDIRS"; then
- for cf_dir in $ADA_SUBDIRS
- do
- SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
- done
-
-fi
-
-
-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' ;;
- shared) cf_subdir='obj_s' ;;
- esac
-
- 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
-
-
-
-### Now that we're done running tests, add the compiler-warnings, if any
-CFLAGS="$CFLAGS $EXTRA_CFLAGS"
-
-################################################################################
-trap '' 1 2 15
-cat > confcache <<\EOF
-# 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.
-#
-# 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.
-#
-EOF
-# 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
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- 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}'
-
-# 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.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# 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
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -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 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-ac_given_INSTALL="$INSTALL"
-
-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
-
-# 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
-
-CEOF
-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_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
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-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
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # 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" ;;
- 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%/[^/][^/]*$%%'`
- 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%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- 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" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) INSTALL="$ac_given_INSTALL" ;;
- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
- 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
-
- 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*
-
-# 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_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'
-
-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
- # 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" ;;
- 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
-
-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'.
-sort confdefs.h >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
-while :
-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
- echo 'CEOF' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-# Run sed to substitute the contents of conftest.frag into conftest.in at the
-# 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
-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
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- 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"
-
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-# Extra commands, if any
-
-
-
- case $cf_cv_system_name in
- os2) 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
-
- cf_libs_to_make=
- for cf_item in $CF_LIST_MODELS
- do
-
-
- case $cf_item in
- libtool) cf_suffix='.la' ;;
- normal) cf_suffix='.a' ;;
- debug) cf_suffix='_g.a' ;;
- profile) cf_suffix='_p.a' ;;
- shared)
- case $cf_cv_system_name in
- hpux*) cf_suffix='.sl' ;;
- *) cf_suffix='.so' ;;
- esac
- esac
- test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${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)' ;;
- esac
- fi
- fi
- cf_libs_to_make="$cf_libs_to_make ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
- done
-
- if test $cf_dir = ncurses ; then
- 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"
- ;;
- esac
- fi
-
- sed -e "s@\@LIBS_TO_MAKE\@@$cf_libs_to_make@" \
- $cf_dir/Makefile >$cf_dir/Makefile.out
- mv $cf_dir/Makefile.out $cf_dir/Makefile
-
- $AWK -f $srcdir/mk-0th.awk \
- name=$cf_dir \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-
- for cf_item in $CF_LIST_MODELS
- do
- echo 'Appending rules for '$cf_item' model ('$cf_dir')'
-
-CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-
-
- case $cf_item in
- libtool) cf_suffix='.la' ;;
- normal) cf_suffix='.a' ;;
- debug) cf_suffix='_g.a' ;;
- profile) cf_suffix='_p.a' ;;
- shared)
- case $cf_cv_system_name in
- 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' ;;
- shared) cf_subdir='obj_s' ;;
- esac
-
-
- # These dependencies really are for development, not
- # builds, but they are useful in porting, too.
- cf_depend="../include/ncurses_cfg.h"
- if test "$srcdir" = "."; then
- cf_reldir="."
- else
- cf_reldir="\$(srcdir)"
- fi
-
- if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
- cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
- elif test -f $srcdir/$cf_dir/curses.priv.h; then
- cf_depend="$cf_depend $cf_reldir/curses.priv.h"
- fi
-
- for cf_subset in $LIB_SUBSETS
- do
- $AWK -f $srcdir/mk-1st.awk \
- name=$cf_dir \
- traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
- model=$cf_subdir \
- prefix=$cf_prefix \
- suffix=$cf_suffix \
- subset=$cf_subset \
- ShlibVer=$cf_cv_shlib_version \
- DoLinks=$cf_cv_do_symlinks \
- rmSoLocs=$cf_cv_rm_so_locs \
- ldconfig="$LDCONFIG" \
- overwrite=$WITH_OVERWRITE \
- depend="$cf_depend" \
- target="$target" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- test $cf_dir = ncurses && WITH_OVERWRITE=no
- $AWK -f $srcdir/mk-2nd.awk \
- name=$cf_dir \
- traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
- model=$cf_subdir \
- subset=$cf_subset \
- srcdir=$srcdir \
- echo=$WITH_ECHO \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- done
- done
- fi
-
- echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) $@' >>Makefile
-done
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $cf_dir/Makefile ; then
- case "$cf_dir" in
- Ada95) #(vi
- echo 'libs \' >> Makefile
- echo 'install.libs \' >> Makefile
- echo 'uninstall.libs ::' >> Makefile
- echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) $@' >> Makefile
- ;;
- esac
- fi
-
- if test -f $srcdir/$cf_dir/modules; then
- echo >> Makefile
- if test -f $srcdir/$cf_dir/headers; then
-cat >> Makefile <<CF_EOF
-install.includes \\
-uninstall.includes \\
-CF_EOF
- fi
-if test "$cf_dir" != "c++" ; then
-echo 'lint \' >> Makefile
-fi
-cat >> Makefile <<CF_EOF
-libs \\
-lintlib \\
-install.libs \\
-uninstall.libs \\
-install.$cf_dir \\
-uninstall.$cf_dir ::
- cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \$@
-CF_EOF
- elif test -f $srcdir/$cf_dir/headers; then
-cat >> Makefile <<CF_EOF
-
-libs \\
-install.libs \\
-uninstall.libs \\
-install.includes \\
-uninstall.includes ::
- cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \$@
-CF_EOF
-fi
-done
-
-cat >> Makefile <<CF_EOF
-
-install.data \
-uninstall.data ::
- cd misc && \$(MAKE) \$(CF_MFLAGS) \$@
-
-install.man \
-uninstall.man ::
- cd man && \$(MAKE) \$(CF_MFLAGS) \$@
-
-distclean ::
- rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
- rm -f headers.sh headers.sed
- rm -rf \$(DIRS_TO_MAKE)
-CF_EOF
-
-# Special case: tack's manpage lives in its own directory.
-if test -d tack ; then
-if test -f $srcdir/$tack.h; then
-cat >> Makefile <<CF_EOF
-
-install.man \
-uninstall.man ::
- cd tack && \$(MAKE) \$(CF_MFLAGS) \$@
-CF_EOF
-fi
-fi
-
-
-rm -f headers.sed headers.sh
-
-echo creating headers.sh
-cat >headers.sh <<CF_EOF
-#! /bin/sh
-# This shell script is generated by the 'configure' script. It is invoked in a
-# subdirectory of the build tree. It generates a sed-script in the parent
-# directory that is used to adjust includes for header files that reside in a
-# subdirectory of /usr/include, etc.
-PRG=""
-while test \$# != 3
-do
-PRG="\$PRG \$1"; shift
-done
-DST=\$1
-REF=\$2
-SRC=\$3
-TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
-TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
-echo installing \$SRC in \$DST
-CF_EOF
-if test $WITH_CURSES_H = yes; then
- cat >>headers.sh <<CF_EOF
-case \$DST in
-/*/include/*)
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
- done
- ;;
-*)
- echo "" >> \$TMPSED
- ;;
-esac
-CF_EOF
-else
- cat >>headers.sh <<CF_EOF
-case \$DST in
-/*/include/*)
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- if test "\$NAME" = "curses.h"
- then
- echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
- NAME=ncurses.h
- fi
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
- done
- ;;
-*)
- echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
- ;;
-esac
-CF_EOF
-fi
-cat >>headers.sh <<CF_EOF
-rm -f \$TMPSRC
-sed -f \$TMPSED \$SRC > \$TMPSRC
-NAME=\`basename \$SRC\`
-CF_EOF
-if test $WITH_CURSES_H != yes; then
- cat >>headers.sh <<CF_EOF
-test "\$NAME" = "curses.h" && NAME=ncurses.h
-CF_EOF
-fi
-cat >>headers.sh <<CF_EOF
-eval \$PRG \$TMPSRC \$DST/\$NAME
-rm -f \$TMPSRC \$TMPSED
-CF_EOF
-
-chmod 0755 headers.sh
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $srcdir/$cf_dir/headers; then
- cat >>$cf_dir/Makefile <<CF_EOF
-\$(DESTDIR)\$(includedir) :
- \$(srcdir)/../mkinstalldirs \$@
-
-install \\
-install.libs \\
-install.includes :: \$(AUTO_SRC) \$(DESTDIR)\$(includedir) \\
-CF_EOF
- j=""
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- test -n "$j" && echo " $j \\" >>$cf_dir/Makefile
- j=$i
- done
- echo " $j" >>$cf_dir/Makefile
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile
- test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile
- done
-
- cat >>$cf_dir/Makefile <<CF_EOF
-
-uninstall \\
-uninstall.libs \\
-uninstall.includes ::
-CF_EOF
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- i=`basename $i`
- echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f $i)" >>$cf_dir/Makefile
- test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
- done
- fi
-done
-
-
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-${MAKE-make} preinstall
diff --git a/ncurses-5.2/configure.in b/ncurses-5.2/configure.in
deleted file mode 100644
index f8fcaf1..0000000
--- a/ncurses-5.2/configure.in
+++ /dev/null
@@ -1,1171 +0,0 @@
-dnl***************************************************************************
-dnl Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
-dnl *
-dnl Permission is hereby granted, free of charge, to any person obtaining a *
-dnl copy of this software and associated documentation files (the *
-dnl "Software"), to deal in the Software without restriction, including *
-dnl without limitation the rights to use, copy, modify, merge, publish, *
-dnl distribute, distribute with modifications, sublicense, and/or sell *
-dnl copies of the Software, and to permit persons to whom the Software is *
-dnl furnished to do so, subject to the following conditions: *
-dnl *
-dnl The above copyright notice and this permission notice shall be included *
-dnl in all copies or substantial portions of the Software. *
-dnl *
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-dnl *
-dnl Except as contained in this notice, the name(s) of the above copyright *
-dnl holders shall not be used in advertising or otherwise to promote the *
-dnl sale, use or other dealings in this Software without prior written *
-dnl authorization. *
-dnl***************************************************************************
-dnl
-dnl Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-dnl
-dnl $Id$
-dnl Process this file with autoconf to produce a configure script.
-dnl
-dnl See http://dickey.his.com/autoconf/ for additional information.
-dnl
-dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.13.20000819)
-AC_REVISION($Revision$)
-AC_INIT(ncurses/base/lib_initscr.c)
-AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
-
-CF_SUBST_NCURSES_VERSION
-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
-AC_ARG_WITH(system-type,
-[ --with-system-type=XXX test: override derived host system-type],
-[AC_MSG_WARN(overriding system type to $withval)
- cf_cv_system_name=$withval])
-
-# We need a configure script only when compiling as part of GNU C library.
-# Here we have to generate one of the files we need while compiling.
-#
-# The only problem is that users of the package might think they have to
-# run configure themself and find it irritating when nothing happens.
-#
-# So we try here to find out whether we are called from the glibc configure
-# or by a user.
-#
-dnl Check if we are a drop-in addition to glibc.
-AC_ARG_ENABLE(add-ons, dnl
-[ --enable-add-ons=DIR... used to check if we are a glibc add-on.],
- [glibc_add_on=yes],
- [glibc_add_on=])
-
-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
- echo "ncurses `grep \"^[ ]*ncurses-version[ ]*=.*$\" \
- $srcdir/Makefile | sed -e \
- 's/^[ ]*ncurses-version[ ]*=[ ]*\([^ ^ ]*\)[ ]*$/\1/'`" > $srcdir/Banner
- exit 0
-fi
-changequote([,])dnl
-
-### Save the given $CFLAGS to allow user-override.
-cf_user_CFLAGS="$CFLAGS"
-
-### Default install-location
-CF_CFG_DEFAULTS
-
-### Checks for programs.
-AC_PROG_CC
-if test "$GCC" = yes ; then
- AC_MSG_CHECKING(version of gcc)
- eval "$CC --version"
-fi
-if test "$host" != $build; then
- AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)
-else
- BUILD_CC="$CC"
-fi
-AC_SUBST(BUILD_CC)
-AC_PROG_CPP
-AC_PROG_GCC_TRADITIONAL
-AC_ISC_POSIX
-CF_ANSI_CC_REQD
-CF_PROG_EXT
-
-case "$cf_cv_system_name" in
-freebsd*) #(vi
- test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
- ;;
-*) LDPATH=$PATH:/sbin:/usr/sbin
- AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
- ;;
-esac
-AC_SUBST(LDCONFIG)
-
-dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the
-dnl configure script by not letting us test if C++
-dnl is present, making this option necessary.
-AC_MSG_CHECKING(if you want to ensure bool is consistent with C++)
-AC_ARG_WITH(cxx,
- [ --without-cxx do not adjust ncurses bool to match C++],
- [cf_with_cxx=$withval],
- [cf_with_cxx=yes])
-AC_MSG_RESULT($cf_with_cxx)
-if test "X$cf_with_cxx" = Xno ; then
- CXX=""
- GXX=""
-else
- pushdef([AC_MSG_ERROR],
- [AC_MSG_RESULT([You don't have any C++ compiler, too bad]); dnl
- cf_with_cxx=no; CXX=""; GXX="";])dnl
- AC_PROG_CXX
- popdef([AC_MSG_ERROR])dnl
-fi
-
-changequote(,)dnl
-if test "$GXX" = yes; then
- case "`${CXX-g++} --version`" in
- 1*|2.[0-6]*)
- GXX=""; CXX=""; ac_cv_prog_gxx=no
- cf_cxx_library=no
- echo No: templates do not work
- ;;
- esac
-fi
-changequote([,])dnl
-
-AC_MSG_CHECKING(if you want to build C++ binding and demo)
-AC_ARG_WITH(cxx-binding,
- [ --without-cxx-binding do not build C++ binding and demo],
- [cf_with_cxx_binding=$withval],
- [cf_with_cxx_binding=$cf_with_cxx])
-AC_MSG_RESULT($cf_with_cxx_binding)
-
-AC_MSG_CHECKING(if you want to build with Ada95)
-AC_ARG_WITH(ada,
- [ --without-ada suppress check for Ada95, don't build demo],
- [cf_with_ada=$withval],
- [cf_with_ada=yes])
-AC_MSG_RESULT($cf_with_ada)
-
-AC_MSG_CHECKING(if you want to build programs such as tic)
-AC_ARG_WITH(progs,
- [ --without-progs suppress build with programs (e.g., tic)],
- [cf_with_progs=$withval],
- [cf_with_progs=yes])
-AC_MSG_RESULT($cf_with_progs)
-
-AC_MSG_CHECKING(if you wish to install curses.h)
-AC_ARG_WITH(curses-h,
- [ --without-curses-h install curses.h as ncurses.h only],
- [with_curses_h=$withval],
- [with_curses_h=yes])
-AC_MSG_RESULT($with_curses_h)
-
-modules_to_build="ncurses"
-if test "X$cf_with_progs" != Xno ; then
-modules_to_build="$modules_to_build progs tack"
-fi
-modules_to_build="$modules_to_build panel menu form"
-
-AC_ARG_PROGRAM
-AC_PROG_AWK
-AC_PROG_MAKE_SET
-CF_PROG_INSTALL
-AC_SYS_LONG_FILE_NAMES
-CF_MIXEDCASE_FILENAMES
-AC_PROG_LN_S
-AC_PROG_RANLIB
-CF_MAKE_TAGS
-AC_CHECK_PROGS(LINT, tdlint lint alint)
-AC_CHECK_PROGS(MAN, man man_db)
-AC_SUBST(LINT_OPTS)
-
-dnl These are standard among *NIX systems, but not when cross-compiling
-CF_SUBST(loader,LD,ld)
-CF_SUBST(archiver,AR,ar)
-CF_SUBST(archiver options,AR_OPTS,rv)
-
-CF_MAKEFLAGS
-
-dnl Special option for use by system-builders: the install-prefix is used to
-dnl adjust the location into which the actual install is done, so that an
-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],
- [case "$withval" in #(vi
- yes|no) #(vi
- ;;
- *) DESTDIR="$withval"
- ;;
- esac])
-AC_MSG_RESULT($DESTDIR)
-AC_SUBST(DESTDIR)
-
-###############################################################################
-CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
-
-### Options to allow the user to specify the set of libraries which are used.
-### Use "--without-normal --with-shared" to allow the default model to be
-### shared, for example.
-cf_list_models=""
-AC_SUBST(cf_list_models)dnl the complete list of models ("normal debug")
-
-AC_MSG_CHECKING(if you want to build libraries with libtool)
-AC_ARG_WITH(libtool,
- [ --with-libtool generate libraries with libtool],
- [with_libtool=$withval],
- [with_libtool=no])
-AC_MSG_RESULT($with_libtool)
-if test "$with_libtool" = "yes"; then
- cf_list_models="$cf_list_models libtool"
- test -z "$LIBTOOL" && LIBTOOL=libtool
-else
- LIBTOOL=""
-fi
-AC_SUBST(LIBTOOL)
-
-AC_MSG_CHECKING(if you want to build shared libraries)
-AC_ARG_WITH(shared,
- [ --with-shared generate shared-libraries],
- [with_shared=$withval],
- [with_shared=no])
-AC_MSG_RESULT($with_shared)
-test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
-
-AC_MSG_CHECKING(if you want to build static libraries)
-AC_ARG_WITH(normal,
- [ --with-normal generate normal-libraries (default)],
- [with_normal=$withval],
- [with_normal=yes])
-AC_MSG_RESULT($with_normal)
-test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
-
-AC_MSG_CHECKING(if you want to build debug libraries)
-AC_ARG_WITH(debug,
- [ --with-debug generate debug-libraries (default)],
- [with_debug=$withval],
- [with_debug=yes])
-AC_MSG_RESULT($with_debug)
-test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
-
-AC_MSG_CHECKING(if you want to build profiling libraries)
-AC_ARG_WITH(profile,
- [ --with-profile generate profile-libraries],
- [with_profile=$withval],
- [with_profile=no])
-AC_MSG_RESULT($with_profile)
-test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
-
-###############################################################################
-
-AC_MSG_CHECKING(for specified models)
-test -z "$cf_list_models" && cf_list_models=normal
-dnl If we use libtool to generate libraries, then it must be the only
-dnl specified model.
-test "$with_libtool" = "yes" && cf_list_models=libtool
-AC_MSG_RESULT($cf_list_models)
-
-### Use the first model as the default, and save its suffix for use in building
-### up test-applications.
-AC_MSG_CHECKING(for default model)
-DFT_LWR_MODEL=`echo $cf_list_models | $AWK '{print $1}'`
-AC_MSG_RESULT($DFT_LWR_MODEL)
-
-CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl
-
-AC_SUBST(DFT_LWR_MODEL)dnl the default model ("normal")
-AC_SUBST(DFT_UPR_MODEL)dnl the default model ("NORMAL")
-
-TINFO_NAME=tinfo
-AC_SUBST(TINFO_NAME)
-
-LIB_NAME=ncurses
-AC_SUBST(LIB_NAME)
-
-LIB_DIR=../lib
-CF_LIB_PREFIX(cf_prefix)
-LIB_PREFIX=$cf_prefix
-AC_SUBST(LIB_PREFIX)
-
-LIB_SUFFIX=
-AC_SUBST(LIB_SUFFIX)
-
-###############################################################################
-
-AC_MSG_CHECKING(if you want to build a separate terminfo library)
-AC_ARG_WITH(termlib,
- [ --with-termlib generate separate terminfo library],
- [with_termlib=$withval],
- [with_termlib=no])
-AC_MSG_RESULT($with_termlib)
-
-### Checks for special libraries, must be done up-front.
-AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
-AC_ARG_WITH(dbmalloc,
- [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
- [with_dbmalloc=$withval],
- [with_dbmalloc=no])
-AC_MSG_RESULT($with_dbmalloc)
-if test "$with_dbmalloc" = yes ; then
- AC_CHECK_LIB(dbmalloc,debug_malloc)
-fi
-
-AC_MSG_CHECKING(if you want to link with dmalloc for testing)
-AC_ARG_WITH(dmalloc,
- [ --with-dmalloc test: use Gray Watson's dmalloc library],
- [with_dmalloc=$withval],
- [with_dmalloc=no])
-AC_MSG_RESULT($with_dmalloc)
-if test "$with_dmalloc" = yes ; then
- AC_CHECK_LIB(dmalloc,dmalloc_debug)
-fi
-
-SHLIB_LIST=""
-AC_MSG_CHECKING(if you want to link with the gpm mouse library)
-AC_ARG_WITH(gpm,
- [ --with-gpm use Alessandro Rubini's GPM library],
- [with_gpm=$withval],
- [with_gpm=no])
-AC_MSG_RESULT($with_gpm)
-if test "$with_gpm" = yes ; then
- AC_CHECK_LIB(gpm,Gpm_Open,[
- EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- AC_DEFINE(HAVE_LIBGPM)
- AC_CHECK_HEADERS(gpm.h)
- ],AC_MSG_WARN(Cannot link with gpm library - read the FAQ))
-fi
-
-dnl Not all ports of gcc support the -g option
-
-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
-AC_SUBST(CC_G_OPT)
-
-if test X"$CXX_G_OPT" = X"" ; then
- CXX_G_OPT='-g'
- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
-fi
-AC_SUBST(CXX_G_OPT)
-
-AC_MSG_CHECKING(for default loader flags)
-case $DFT_LWR_MODEL in
-libtool) LD_MODEL='' ;;
-normal) LD_MODEL='' ;;
-debug) LD_MODEL=$CC_G_OPT ;;
-profile) LD_MODEL='-pg';;
-shared) LD_MODEL='' ;;
-esac
-AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg)
-AC_MSG_RESULT($LD_MODEL)
-
-AC_MSG_CHECKING(if rpath option should be used)
-AC_ARG_ENABLE(rpath,
-[ --enable-rpath use rpath option when generating shared libraries],
-[cf_cv_ld_rpath=$enableval],
-[cf_cv_ld_rpath=no])
-AC_MSG_RESULT($cf_cv_ld_rpath)
-
-CF_SHARED_OPTS
-if test "$CC_SHARED_OPTS" = "unknown"; then
- for model in $cf_list_models; do
- if test "$model" = "shared"; then
- AC_ERROR(Shared libraries are not supported in this version)
- fi
- done
-fi
-
-###############################################################################
-CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
-
-### use option --disable-overwrite to leave out the link to -lcurses
-AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
-AC_ARG_ENABLE(overwrite,
- [ --disable-overwrite leave out the link to -lcurses],
- [with_overwrite=$enableval],
- [with_overwrite=yes])
-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],
- [use_database=$enableval],
- [use_database=yes])
-AC_MSG_RESULT($use_database)
-
-case $host_os in #(vi
-os2*) #(vi
- TERMINFO_SRC='${top_srcdir}/misc/emx.src'
- ;;
-*) #(vi
- TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
- ;;
-esac
-AC_SUBST(TERMINFO_SRC)
-
-if test "$use_database" != no ; then
- AC_DEFINE(USE_DATABASE)
- AC_MSG_CHECKING(which terminfo source-file will be installed)
- AC_ARG_ENABLE(database,
- [ --with-database=XXX specify terminfo source to install],
- [TERMINFO_SRC=$withval])
- AC_MSG_RESULT($TERMINFO_SRC)
-fi
-
-AC_MSG_CHECKING(for list of fallback descriptions)
-AC_ARG_WITH(fallbacks,
- [ --with-fallbacks=XXX specify list of fallback terminal descriptions],
- [with_fallback=$withval],
- [with_fallback=])
-AC_MSG_RESULT($with_fallback)
-FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
-AC_SUBST(FALLBACK_LIST)
-
-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"
-else
-
-AC_MSG_CHECKING(for list of terminfo directories)
-CF_WITH_PATHLIST(terminfo-dirs,
- [ --with-terminfo-dirs=XXX specify list of terminfo directories],
- TERMINFO_DIRS,
- DATADIR/terminfo,
- ${datadir}/terminfo)
-AC_MSG_RESULT($TERMINFO_DIRS)
-test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS")
-
-AC_MSG_CHECKING(for default terminfo directory)
-CF_WITH_PATH(default-terminfo-dir,
- [ --with-default-terminfo-dir=DIR default terminfo directory],
- TERMINFO,
- DATADIR/terminfo,
- ${datadir}/terminfo)
-AC_MSG_RESULT($TERMINFO)
-AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO")
-
-fi
-
-AC_SUBST(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.
-AC_MSG_CHECKING(if big-core option selected)
-AC_ARG_ENABLE(big-core,
- [ --disable-big-core assume machine has little memory],
- [with_big_core=$enableval],
- [AC_TRY_RUN([
-#include <stdlib.h>
-#include <string.h>
-int main() {
- unsigned long n = 6000000L;
- char *s = malloc(n);
- if (s != 0)
- s[0] = s[n-1] = 0;
- exit(s == 0);
-}],
- [with_big_core=yes],
- [with_big_core=no],
- [with_big_core=no])])
-AC_MSG_RESULT($with_big_core)
-test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
-
-### use option --enable-termcap to compile in the termcap fallback support
-AC_MSG_CHECKING(if you want termcap-fallback support)
-AC_ARG_ENABLE(termcap,
- [ --enable-termcap compile in termcap fallback support],
- [with_termcap=$enableval],
- [with_termcap=no])
-AC_MSG_RESULT($with_termcap)
-
-if test "$with_termcap" != "yes" ; then
- AC_DEFINE(PURE_TERMINFO)
-else
-
-### use option --enable-getcap to use a hacked getcap for reading termcaps
-AC_MSG_CHECKING(if fast termcap-loader is needed)
-AC_ARG_ENABLE(getcap,
- [ --enable-getcap fast termcap load, no xrefs to terminfo],
- [with_getcap=$enableval],
- [with_getcap=no])
-AC_MSG_RESULT($with_getcap)
-test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP)
-
-AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
-AC_ARG_ENABLE(getcap-cache,
- [ --enable-getcap-cache cache translated termcaps in ~/.terminfo],
- [with_getcap_cache=$enableval],
- [with_getcap_cache=no])
-AC_MSG_RESULT($with_getcap_cache)
-test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE)
-
-fi
-
-### Use option --enable-symlinks to make tic use symlinks, not hard links
-### to reduce storage requirements for the terminfo database.
-CF_LINK_FUNCS
-
-with_links=no
-with_symlinks=no
-
-if test "$ac_cv_func_link" != yes ; then
- AC_MSG_CHECKING(if tic should use symbolic links)
- if test "$ac_cv_func_symlink" = yes ; then
- with_symlinks=yes
- else
- with_symlinks=no
- fi
- AC_MSG_RESULT($with_symlinks)
-elif test "$ac_cv_func_symlink" != yes ; then
- AC_MSG_CHECKING(if tic should use hard links)
- if test "$ac_cv_func_link" = yes ; then
- with_links=yes
- else
- with_links=no
- fi
- AC_MSG_RESULT($with_links)
-else
- AC_MSG_CHECKING(if tic should use symbolic links)
- AC_ARG_ENABLE(symlinks,
- [ --enable-symlinks make tic use symbolic links not hard links],
- [with_symlinks=$enableval],
- [with_symlinks=no])
- AC_MSG_RESULT($with_symlinks)
-fi
-
-test "$with_links" = yes && AC_DEFINE(USE_LINKS)
-test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS)
-
-### use option --enable-broken-linker to force on use of broken-linker support
-AC_MSG_CHECKING(if you want broken-linker support code)
-AC_ARG_ENABLE(broken_linker,
- [ --enable-broken_linker compile with broken-linker support code],
- [with_broken_linker=$enableval],
- [with_broken_linker=$BROKEN_LINKER])
-AC_MSG_RESULT($with_broken_linker)
-test "$with_broken_linker" = yes && AC_DEFINE(BROKEN_LINKER)
-
-### use option --enable-bsdpad to have tputs process BSD-style prefix padding
-AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
-AC_ARG_ENABLE(bsdpad,
- [ --enable-bsdpad recognize BSD-style prefix padding],
- [with_bsdpad=$enableval],
- [with_bsdpad=no])
-AC_MSG_RESULT($with_bsdpad)
-test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS)
-
-### Enable compiling-in rcs id's
-AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
-AC_ARG_WITH(rcs-ids,
- [ --with-rcs-ids compile-in RCS identifiers],
- [with_rcs_ids=$withval],
- [with_rcs_ids=no])
-AC_MSG_RESULT($with_rcs_ids)
-test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
-
-###############################################################################
-CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ])
-
-###############################################################################
-CF_HELP_MESSAGE(Extensions:)
-
-### Note that some functions (such as const) are normally disabled anyway.
-AC_MSG_CHECKING(if you want to build with function extensions)
-AC_ARG_ENABLE(ext-funcs,
- [ --disable-ext-funcs disable function-extensions],
- [with_ext_funcs=$enableval],
- [with_ext_funcs=yes])
-AC_MSG_RESULT($with_ext_funcs)
-if test "$with_ext_funcs" = yes ; then
- 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)
-fi
-
-### use option --enable-const to turn on use of const beyond that in XSI.
-AC_MSG_CHECKING(for extended use of const keyword)
-AC_ARG_ENABLE(const,
- [ --enable-const compile with extra/non-standard const],
- [with_ext_const=$enableval],
- [with_ext_const=no])
-AC_MSG_RESULT($with_ext_const)
-NCURSES_CONST='/*nothing*/'
-if test "$with_ext_const" = yes ; then
- NCURSES_CONST=const
-fi
-AC_SUBST(NCURSES_CONST)
-
-AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
-AC_ARG_ENABLE(no-padding,
- [ --enable-no-padding compile with \$NCURSES_NO_PADDING code],
- [with_no_padding=$enableval],
- [with_no_padding=$with_ext_funcs])
-AC_MSG_RESULT($with_no_padding)
-test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING)
-
-### use option --enable-sigwinch to turn on use of SIGWINCH logic
-AC_MSG_CHECKING(if you want SIGWINCH handler)
-AC_ARG_ENABLE(sigwinch,
- [ --enable-sigwinch compile with SIGWINCH handler],
- [with_sigwinch=$enableval],
- [with_sigwinch=$with_ext_funcs])
-AC_MSG_RESULT($with_sigwinch)
-test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH)
-
-### use option --enable-tcap-names to allow user to define new capabilities
-AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
-AC_ARG_ENABLE(tcap-names,
- [ --enable-tcap-names compile with user-definable terminal capabilities],
- [with_tcap_names=$enableval],
- [with_tcap_names=$with_ext_funcs])
-AC_MSG_RESULT($with_tcap_names)
-NCURSES_XNAMES=0
-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-AC_SUBST(NCURSES_XNAMES)
-
-###############################################################################
-# These options are relatively safe to experiment with.
-CF_HELP_MESSAGE(Development Code:)
-AC_MSG_CHECKING(if you want all development code)
-AC_ARG_WITH(develop,
- [ --with-develop enable all development options],
- [with_develop=$withval],
- [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,
- [ --enable-hard-tabs compile with hard-tabs code],
- [with_hardtabs=$enableval],
- [with_hardtabs=$with_develop])
-AC_MSG_RESULT($with_hardtabs)
-test "$with_hardtabs" = yes && AC_DEFINE(USE_HARD_TABS)
-
-AC_MSG_CHECKING(if you want to use restrict environment when running as root)
-AC_ARG_ENABLE(root-environ,
- [ --disable-root-environ limit environment when running as root],
- [with_root_environ=$enableval],
- [with_root_environ=yes])
-AC_MSG_RESULT($with_root_environ)
-test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
-
-### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-AC_MSG_CHECKING(if you want limited support for xmc)
-AC_ARG_ENABLE(xmc-glitch,
- [ --enable-xmc-glitch compile with limited support for xmc],
- [with_xmc_glitch=$enableval],
- [with_xmc_glitch=$with_develop])
-AC_MSG_RESULT($with_xmc_glitch)
-test "$with_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT)
-
-###############################################################################
-# These are just experimental, probably should not be in a package:
-CF_HELP_MESSAGE(Experimental Code:)
-
-AC_MSG_CHECKING(if you do not want to assume colors are white-on-black)
-AC_ARG_ENABLE(assumed-color,
- [ --disable-assumed-color do not assume anything about default-colors],
- [with_assumed_color=$enableval],
- [with_assumed_color=yes])
-AC_MSG_RESULT($with_assumed_color)
-test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR)
-
-### use option --enable-hashmap to turn on use of hashmap scrolling logic
-AC_MSG_CHECKING(if you want hashmap scrolling-optimization code)
-AC_ARG_ENABLE(hashmap,
- [ --disable-hashmap compile without hashmap scrolling-optimization],
- [with_hashmap=$enableval],
- [with_hashmap=yes])
-AC_MSG_RESULT($with_hashmap)
-test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP)
-
-AC_MSG_CHECKING(if you want experimental safe-sprintf code)
-AC_ARG_ENABLE(safe-sprintf,
- [ --enable-safe-sprintf compile with experimental safe-sprintf code],
- [with_safe_sprintf=$enableval],
- [with_safe_sprintf=no])
-AC_MSG_RESULT($with_safe_sprintf)
-test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF)
-
-### 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
-AC_MSG_CHECKING(if you want to experiment without scrolling-hints code)
-AC_ARG_ENABLE(scroll-hints,
- [ --disable-scroll-hints compile without scroll-hints code],
- [with_scroll_hints=$enableval],
- [with_scroll_hints=yes])
-AC_MSG_RESULT($with_scroll_hints)
-test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
-fi
-
-### use option --enable-widec to turn on use of wide-character support
-AC_MSG_CHECKING(if you want experimental wide-character code)
-AC_ARG_ENABLE(widec,
- [ --enable-widec compile with experimental wide-char/UTF-8 code],
- [with_widec=$enableval],
- [with_widec=no])
-AC_MSG_RESULT($with_widec)
-if test "$with_widec" = yes ; then
- LIB_SUFFIX="w${LIB_SUFFIX}"
- AC_DEFINE(USE_WIDEC_SUPPORT)
-fi
-
-###############################################################################
-CF_HELP_MESSAGE(Testing/development Options:)
-
-### use option --disable-echo to suppress full display compiling commands
-AC_MSG_CHECKING(if you want to display full commands during build)
-AC_ARG_ENABLE(echo,
- [ --enable-echo build: display "compiling" commands (default)],
- [with_echo=$enableval],
- [with_echo=yes])
-if test "$with_echo" = yes; then
- ECHO_LINK=
-else
- ECHO_LINK='@ echo linking $@ ... ;'
- test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
-fi
-AC_MSG_RESULT($with_echo)
-AC_SUBST(ECHO_LINK)
-
-### use option --enable-warnings to turn on all gcc warnings
-AC_MSG_CHECKING(if you want to see compiler warnings)
-AC_ARG_ENABLE(warnings,
- [ --enable-warnings build: turn on GCC compiler warnings],
- [with_warnings=$enableval])
-AC_MSG_RESULT($with_warnings)
-
-if test -n "$with_warnings"; then
- ADAFLAGS="$ADAFLAGS -gnatg"
- CF_GCC_WARNINGS
-fi
-CF_GCC_ATTRIBUTES
-
-### use option --enable-assertions to turn on generation of assertion code
-AC_MSG_CHECKING(if you want to enable runtime assertions)
-AC_ARG_ENABLE(assertions,
- [ --enable-assertions test: turn on generation of assertion code],
- [with_assertions=$enableval],
- [with_assertions=no])
-AC_MSG_RESULT($with_assertions)
-if test -n "$GCC"
-then
- if test "$with_assertions" = no
- then
- AC_DEFINE(NDEBUG)
- CPPFLAGS="$CPPFLAGS -DNDEBUG"
- else
- ADAFLAGS="$ADAFLAGS -gnata"
- fi
-fi
-
-### use option --disable-leaks to suppress "permanent" leaks, for testing
-AC_ARG_ENABLE(leaks,
- [ --disable-leaks test: suppress permanent memory-leaks],
- [test "$enableval" = no && AC_DEFINE(NO_LEAKS)])
-AC_DEFINE(HAVE_NC_ALLOC_H)
-
-### use option --enable-expanded to generate certain macros as functions
-AC_ARG_ENABLE(expanded,
- [ --enable-expanded test: generate functions for certain macros],
- [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)])
-
-### use option --disable-macros to suppress macros in favor of functions
-AC_ARG_ENABLE(macros,
- [ --disable-macros test: use functions rather than macros],
- [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)])
-
-### Checks for libraries.
-AC_CHECK_FUNC(gettimeofday,
- AC_DEFINE(HAVE_GETTIMEOFDAY),[
-
-AC_CHECK_LIB(bsd, gettimeofday,
- AC_DEFINE(HAVE_GETTIMEOFDAY)
- LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday
-
-CF_MATH_LIB(MATH_LIB,sin(x))
-AC_SUBST(MATH_LIB)
-
-### Checks for header files.
-AC_STDC_HEADERS
-AC_HEADER_DIRENT
-CF_REGEX
-
-dnl These are some other potentially nonportable headers.
-AC_CHECK_HEADERS( \
-fcntl.h \
-getopt.h \
-libc.h \
-limits.h \
-locale.h \
-poll.h \
-sys/bsdtypes.h \
-sys/ioctl.h \
-sys/param.h \
-sys/poll.h \
-sys/select.h \
-sys/time.h \
-sys/times.h \
-ttyent.h \
-unistd.h \
-)
-
-# 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
- AC_CHECK_LIB(cposix,main)
- AC_CHECK_LIB(inet,bzero,LIBS="$LIBS -linet")dnl also 'select()'
-fi
-
-CF_SYS_TIME_SELECT
-
-### checks for compiler characteristics
-AC_LANG_C
-AC_C_CONST
-AC_C_INLINE
-test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
-
-CF_TYPEOF_CHTYPE
-CF_WIDEC_SHIFT
-
-### Checks for external-data
-CF_ERRNO
-CF_LINK_DATAONLY
-
-### Checks for library functions.
-AC_CHECK_FUNCS( \
-getcwd \
-getegid \
-geteuid \
-getttynam \
-issetugid \
-memccpy \
-mkstemp \
-nanosleep \
-poll \
-remove \
-select \
-setbuf \
-setbuffer \
-setvbuf \
-sigaction \
-sigvec \
-strdup \
-strstr \
-tcgetpgrp \
-times \
-vfscanf \
-vsnprintf \
-vsscanf \
-)
-if test "$with_getcap" = "yes" ; then
- CF_CGETENT
-fi
-
-CF_ISASCII
-CF_STRUCT_SIGACTION
-CF_FUNC_TERMIOS
-
-dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
-if test "$cross_compiling" = yes ; then
- AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
-else
- AC_FUNC_SETVBUF_REVERSED
-fi
-AC_TYPE_SIGNAL
-CF_TYPE_SIGACTION
-CF_SIZECHANGE
-CF_FUNC_MEMMOVE
-CF_FUNC_POLL
-
-dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
-if test -z "$cf_user_CFLAGS" ; then
- CF_STRIP_G_OPT(CFLAGS)
- CF_STRIP_G_OPT(CXXFLAGS)
-fi
-
-dnl Check for C++ compiler characteristics (and ensure that it's there!)
-CF_BOOL_DECL(cf_cv_cc_bool_type)
-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
- cf_cxx_library=no
- fi
- AC_CHECK_HEADERS(typeinfo)
- CF_BOOL_DECL
- CF_BOOL_SIZE
- CF_ETIP_DEFINES
- CF_CPP_PARAM_INIT
- case $cf_cv_system_name in #(vi
- sco3.2v5*)
- CXXLDFLAGS="-u main"
- ;;
- esac
- AC_SUBST(CXXLDFLAGS)
-else
- cf_cxx_library=no
- cf_cv_builtin_bool=1
-
- # Just because we are not configuring against C++ right now does not
- # mean that a user will not want to use C++. Some distributors disable
- # the C++ portion of this configuration as a shortcut (or just to avoid
- # compiling the demo in the c++ directory). So we need a reasonable
- # default for the 'bool' type.
- #
- # 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)
-fi
-AC_SUBST(CXXLIBS)
-
-CF_HELP_MESSAGE(Ada95 Binding Options:)
-
-dnl Check for availability of GNU Ada Translator (GNAT).
-dnl At the moment we support no other Ada95 compiler.
-if test "$cf_with_ada" != "no" ; then
-cf_ada_make=gnatmake
-AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
-if test "$ac_cv_prog_gnat_exists" = no; then
- cf_ada_make=
-else
- CF_GNAT_VERSION
- AC_CHECK_PROG(M4_exists, m4, yes, no)
- if test "$ac_cv_prog_M4_exists" = no; then
- cf_cv_prog_gnat_correct=no
- echo Ada95 binding required program m4 not found. Ada95 binding disabled.
- fi
- if test "$cf_cv_prog_gnat_correct" = yes; then
- AC_MSG_CHECKING(if GNAT works)
- CF_GNAT_TRY_RUN([procedure conftest;],
-[with Text_IO;
-with GNAT.OS_Lib;
-procedure conftest is
-begin
- Text_IO.Put ("Hello World");
- Text_IO.New_Line;
- GNAT.OS_Lib.OS_Exit (0);
-end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
- AC_MSG_RESULT($cf_cv_prog_gnat_correct)
- fi
-fi
-if test "$cf_cv_prog_gnat_correct" = yes; then
- ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
-
- AC_ARG_WITH(ada-compiler,
- [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
- [cf_ada_compiler=$withval],
- [cf_ada_compiler=gnatmake])
-
- cf_ada_package=terminal_interface
-
- AC_SUBST(cf_ada_make)
- AC_SUBST(cf_ada_compiler)
- AC_SUBST(cf_ada_package)
- AC_SUBST(ADAFLAGS)
- AC_SUBST(cf_compile_generics)
- AC_SUBST(cf_generic_objects)
-
- CF_WITH_PATH(ada-include,
- [ --with-ada-include=DIR Ada includes are in DIR],
- ADA_INCLUDE,
- PREFIX/lib/ada/adainclude,
- [$]prefix/lib/ada/adainclude)
- AC_SUBST(ADA_INCLUDE)
-
- CF_WITH_PATH(ada-objects,
- [ --with-ada-objects=DIR Ada objects are in DIR],
- ADA_OBJECTS,
- PREFIX/lib/ada/adalib,
- [$]prefix/lib/ada/adalib)
- AC_SUBST(ADA_OBJECTS)
-
-fi
-fi
-
-### It's not possible to appease gcc 2.6.3's conversion-warnings if we're
-### using a 'char' for bools. gcc 2.7.0's conversion-warnings are broken too
-### badly to consider using for development purposes, but 2.5.8 is okay.
-if test -n "$with_warnings"; then
- 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*)
- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
- ;;
- esac
- fi
-fi
-
-### Construct the library-subsets, if any, from this set of keywords:
-### none, base, ext_funcs, termlib.
-AC_MSG_CHECKING(for library subsets)
-if test "$with_termlib" = yes ; then
- LIB_SUBSETS="termlib "
-else
- LIB_SUBSETS="termlib+"
-fi
-LIB_SUBSETS="${LIB_SUBSETS}base"
-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-AC_MSG_RESULT($LIB_SUBSETS)
-
-LIB_TRACING=DEBUG
-case "$CFLAGS" in
-*-DTRACE*)
- LIB_TRACING=all
- ;;
-esac
-
-### Construct the list of include-directories to be generated
-CF_INCLUDE_DIRS
-CF_ADA_INCLUDE_DIRS
-
-### Build up pieces for makefile rules
-AC_MSG_CHECKING(default library suffix)
-CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl
-AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("")
-AC_MSG_RESULT($DFT_ARG_SUFFIX)
-
-AC_MSG_CHECKING(default library-dependency suffix)
-CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
-AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a")
-AC_MSG_RESULT($DFT_DEP_SUFFIX)
-
-AC_MSG_CHECKING(default object directory)
-CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl
-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_CHECKING(c++ library-dependency suffux)
-if test "$with_libtool" = "yes"; then
- CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
-else
- CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library
-fi
-AC_MSG_RESULT($CXX_LIB_SUFFIX)
-AC_SUBST(CXX_LIB_SUFFIX)
-
-TINFO_LIST="$SHLIB_LIST"
-test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
-
-AC_MSG_CHECKING(where we will install curses.h)
-test "$with_overwrite" = no && \
-test "x$includedir" = 'x${prefix}/include' && \
- includedir='$(prefix)/include/ncurses'${LIB_SUFFIX}
-AC_MSG_RESULT($includedir)
-
-AC_SUBST(EXTRA_LIBS)
-AC_SUBST(TINFO_LIST)
-AC_SUBST(SHLIB_LIST)
-
-### Set up low-level terminfo dependencies for makefiles. Note that we
-### could override this.
-if test "$with_termlib" = yes ; then
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
- fi
-fi
-PROG_DEPS="$TEST_DEPS"
-PROG_ARGS="$TEST_ARGS"
-
-### Construct the list of subdirectories for which we'll customize makefiles
-### with the appropriate compile-rules.
-
-CF_SRC_MODULES($modules_to_build)
-CF_DIRS_TO_MAKE
-
-### 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/termcap.h \
- include/unctrl.h \
- misc/run_tic.sh:misc/run_tic.in \
- $SUB_MAKEFILES \
- Makefile,[
-CF_LIB_RULES
-],[
-### 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"
-
-],sort)dnl
-${MAKE-make} preinstall
diff --git a/ncurses-5.2/convert_configure.pl b/ncurses-5.2/convert_configure.pl
deleted file mode 100644
index dea92ca..0000000
--- a/ncurses-5.2/convert_configure.pl
+++ /dev/null
@@ -1,90 +0,0 @@
-extproc perl -S -w
-
-# The converted script is written to stdout, so run this script as
-# convert_configure configure > configure.cmd
-#
-# When the converted script runs, it expects that /tmp dir is
-# available (so we create it).
-#
-# run the result like this:
-# .\configure
-
-# Some frequent manual intervention:
-# a) Some makefiles hardwire SHELL = /bin/sh ==> change to: sh
-# b) Some makefiles recognize that exe files terminate on .exe
-# You need to give this script -no-zexe option...
-
-shift, $no_zexe = 1 if @ARGV and $ARGV[0] eq '-no-zexe';
-
-mkdir '/tmp', 0777 unless -d '/tmp';
-
-print <<EOF;
-extproc sh
-
-EOF
-
-print <<EOF unless $no_zexe;
-# Make sensible defaults:
-CC="gcc -Zexe -Zmt"
-export CC
-CXX="gcc -Zexe -Zmt"
-export CXX
-#GCCOPT="$GCCOPT -Zexe"
-#export GCCOPT
-EOF
-
-print <<EOF;
-CONFIG_SHELL=sh
-export CONFIG_SHELL
-
-# Optimization (GNU make 3.74 cannot be loaded :-():
-emxload -m 30 sh.exe ls.exe tr.exe id.exe sed.exe # make.exe
-emxload -m 30 grep.exe egrep.exe fgrep.exe cat.exe rm.exe mv.exe cp.exe
-emxload -m 30 uniq.exe basename.exe sort.exe awk.exe echo.exe
-
-
-EOF
-
-$checking_path = 0;
-
-while (<>) {
- if (/for\s+(\w+)\s+in\s*\$(PATH|ac_dummy)\s*;/) {
- $checking_path = 1;
- $varname = $1;
- $subst= <<EOS
-$varname="`echo -E \\"\$$varname\\" | tr \\\\\\\\\\\\\\\\ / `"
-EOS
- }
- if (/if\s+test\s+-z\s+\"\$INSTALL\"/) {
- $checking_install = 1;
- }
- $checking_install = $checking_path = 0 if /^\s*done\s*$/;
- # We want to create an extra line like this one:
-# ac_dir="`echo -E \"$ac_dir\" | tr \\\\\\\\ / `"
- s{^((\s*)if\s+test)\s*-f\s*(\$$varname/\S+)\s*;}
- {$2$subst$1 -f $3 -o -f $3.exe ;}
- if $checking_path; # Checking for executables
- # change |/usr/sbin/*| to |/usr/sbin/*|?:[\\/]os2[\\/]install[\\/]*|
- # in the list of things to skip (with both cases)
- s{\Q|/usr/sbin/*|}
- {|/usr/sbin/*|?:[\\\\/]os2[\\\\/]install[\\\\/]*|?:[\\\\/]OS2[\\\\/]INSTALL[\\\\/]*|}
- if $checking_install; # Do not accept d:/os2/install/install.exe
- s/^(host|build)=NONE$/$1=x86-emx-os2/; # Make default host/build
- s/"\$\{IFS}:"$/"\${IFS};"/; # Fix IFS line
- s/\bIFS=\":\"$/IFS=";"/; # Fix another IFS line
- s/\btest\s+-s\s+conftest\b/test -f conftest/g; # Fix exe test
- # This one is needed for curses:
- s/^\s*host=`.*\$ac_config_sub \$host_alias`/$&\nif test -z "\$host"; then host=\$host_alias; fi/;
- s,/bin/sh(?![/\w]),sh,g;
- s,^(\s*/usr/sbin/sendmail\s*)\\$,$1 "`whence sendmail | tr '\\\\\\\\' / `" \\,;
- print;
-}
-
-__END__
-
-Changes: 98/11 : support check for executables in ncurses.
- 99/2 : support INSTALL,
- new IFS=':' style
- 99/11 : find sendmail
- 00/01 : export CONFIG_SHELL
- 00/10 : new syntax for host=`...` line
diff --git a/ncurses-5.2/dist.mk b/ncurses-5.2/dist.mk
deleted file mode 100644
index fe6aa5c..0000000
--- a/ncurses-5.2/dist.mk
+++ /dev/null
@@ -1,118 +0,0 @@
-# $Id$
-# Makefile for creating ncurses distributions.
-#
-# This only needs to be used directly as a makefile by developers, but
-# configure mines the current version number out of here. To move
-# to a new version number, just edit this file and run configure.
-#
-SHELL = /bin/sh
-
-# These define the major/minor/patch versions of ncurses.
-NCURSES_MAJOR = 5
-NCURSES_MINOR = 2
-NCURSES_PATCH = 20001021
-
-# We don't append the patch to the version, since this only applies to releases
-VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
-
-DUMP = lynx -dump
-DUMP2 = $(DUMP) -nolist
-
-GNATHTML= `type -p gnathtml || type -p gnathtml.pl`
-
-# man2html 3.0.1 is a Perl script which assumes that pages are fixed size.
-# Not all man programs agree with this assumption; some use half-spacing, which
-# has the effect of lengthening the text portion of the page -- so man2html
-# would remove some text. The man program on Redhat 6.1 appears to work with
-# man2html if we set the top/bottom margins to 6 (the default is 7).
-MAN2HTML= man2html -botm=6 -topm=6 -cgiurl '$$title.$$section$$subsection.html'
-
-ALL = ANNOUNCE doc/html/announce.html doc/ncurses-intro.doc doc/hackguide.doc manhtml adahtml
-
-all : $(ALL)
-
-dist: $(ALL)
- (cd ..; tar cvf ncurses-$(VERSION).tar `sed <ncurses-$(VERSION)/MANIFEST 's/^./ncurses-$(VERSION)/'`; gzip ncurses-$(VERSION).tar)
-
-distclean:
- rm -f $(ALL) subst.tmp subst.sed MANIFEST.tmp
-
-# Don't mess with announce.html.in unless you have lynx available!
-doc/html/announce.html: announce.html.in
- sed 's,@VERSION@,$(VERSION),' <announce.html.in > $@
-
-ANNOUNCE : doc/html/announce.html
- $(DUMP) doc/html/announce.html > $@
-
-doc/ncurses-intro.doc: doc/html/ncurses-intro.html
- $(DUMP2) doc/html/ncurses-intro.html > $@
-doc/hackguide.doc: doc/html/hackguide.html
- $(DUMP2) doc/html/hackguide.html > $@
-
-MANPROG = tbl | nroff -man
-
-manhtml: MANIFEST
- @rm -f doc/html/man/*.html
- @mkdir -p doc/html/man
- @rm -f subst.tmp ;
- @for f in man/*.[0-9]*; do \
- m=`basename $$f` ;\
- x=`echo $$m | awk -F. '{print $$2;}'` ;\
- xu=`echo $$x | dd conv=ucase 2>/dev/null` ;\
- if [ "$${x}" != "$${xu}" ]; then \
- echo "s/$${xu}/$${x}/g" >> subst.tmp ;\
- fi ;\
- done
- @sort < subst.tmp | uniq > subst.sed
- @rm -f subst.tmp
- @for f in man/*.[0-9]* ; do \
- m=`basename $$f` ;\
- 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) | \
- sed -f subst.sed |\
- sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \
- > doc/html/man/$$g ;\
- done
- @rm -f subst.sed
- @sed -e "\%./doc/html/man/%d" < MANIFEST > MANIFEST.tmp
- @find ./doc/html/man -type f -print >> MANIFEST.tmp
- @chmod u+w MANIFEST
- @sort -u < MANIFEST.tmp > MANIFEST
- @rm -f MANIFEST.tmp
-
-#
-# Please note that this target can only be properly built if the build of the
-# Ada95 subdir has been done. The reason is, that the gnathtml tool uses the
-# .ali files generated by the Ada95 compiler during the build process. These
-# .ali files contain cross referencing information required by gnathtml.
-adahtml: MANIFEST
- if [ ! -z "$(GNATHTML)" ]; then \
- (cd ./Ada95/gen ; make html) ;\
- sed -e "\%./doc/html/ada/%d" < MANIFEST > MANIFEST.tmp ;\
- find ./doc/html/ada -type f -print >> MANIFEST.tmp ;\
- sort -u < MANIFEST.tmp > MANIFEST ;\
- rm -f MANIFEST.tmp ;\
- fi
-
-# Prepare distribution for version control
-vcprepare:
- find . -type d -exec mkdir {}/RCS \;
-
-# Write-lock almost all files not under version control.
-ADA_EXCEPTIONS=$(shell eval 'a="\\\\\|";for x in Ada95/gen/terminal*.m4; do echo -n $${a}Ada95/ada_include/`basename $${x} .m4`; done')
-EXCEPTIONS = 'announce.html$\\|ANNOUNCE\\|misc/.*\\.doc\\|man/terminfo.5\\|lib_gen.c'$(ADA_EXCEPTIONS)
-writelock:
- for x in `grep -v $(EXCEPTIONS) MANIFEST`; do if [ ! -f `dirname $$x`/RCS/`basename $$x`,v ]; then chmod a-w $${x}; fi; done
-
-# This only works on a clean source tree, of course.
-MANIFEST:
- -rm -f $@
- touch $@
- find . -type f -print |sort | fgrep -v .lsm |fgrep -v .spec >$@
-
-TAGS:
- etags */*.[ch]
-
-# Makefile ends here
diff --git a/ncurses-5.2/doc/hackguide.doc b/ncurses-5.2/doc/hackguide.doc
deleted file mode 100644
index e9828d2..0000000
--- a/ncurses-5.2/doc/hackguide.doc
+++ /dev/null
@@ -1,687 +0,0 @@
-
- A Hacker's Guide to NCURSES
-
- Contents
-
- * Abstract
- * Objective of the Package
- + Why System V Curses?
- + How to Design Extensions
- * Portability and Configuration
- * Documentation Conventions
- * How to Report Bugs
- * A Tour of the Ncurses Library
- + Library Overview
- + The Engine Room
- + Keyboard Input
- + Mouse Events
- + Output and Screen Updating
- * The Forms and Menu Libraries
- * A Tour of the Terminfo Compiler
- + Translation of Non-use Capabilities
- + Use Capability Resolution
- + Source-Form Translation
- * Other Utilities
- * Style Tips for Developers
- * Porting Hints
-
- Abstract
-
- This document is a hacker's tour of the ncurses library and utilities.
- It discusses design philosophy, implementation methods, and the
- conventions used for coding and documentation. It is recommended
- reading for anyone who is interested in porting, extending or
- improving the package.
-
- Objective of the Package
-
- The objective of the ncurses package is to provide a free software API
- for character-cell terminals and terminal emulators with the following
- characteristics:
- * Source-compatible with historical curses implementations
- (including the original BSD curses and System V curses.
- * Conformant with the XSI Curses standard issued as part of XPG4 by
- X/Open.
- * High-quality -- stable and reliable code, wide portability, good
- packaging, superior documentation.
- * Featureful -- should eliminate as much of the drudgery of C
- interface programming as possible, freeing programmers to think at
- a higher level of design.
-
- These objectives are in priority order. So, for example, source
- compatibility with older version must trump featurefulness -- we
- cannot add features if it means breaking the portion of the API
- corresponding to historical curses versions.
-
-Why System V Curses?
-
- We used System V curses as a model, reverse-engineering their API, in
- order to fulfill the first two objectives.
-
- System V curses implementations can support BSD curses programs with
- just a recompilation, so by capturing the System V API we also capture
- BSD's.
-
- More importantly for the future, the XSI Curses standard issued by
- X/Open is explicitly and closely modeled on System V. So conformance
- with System V took us most of the way to base-level XSI conformance.
-
-How to Design Extensions
-
- The third objective (standards conformance) requires that it be easy
- to condition source code using ncurses so that the absence of
- nonstandard extensions does not break the code.
-
- Accordingly, we have a policy of associating with each nonstandard
- extension a feature macro, so that ncurses client code can use this
- macro to condition in or out the code that requires the ncurses
- extension.
-
- For example, there is a macro NCURSES_MOUSE_VERSION which XSI Curses
- does not define, but which is defined in the ncurses library header.
- You can use this to condition the calls to the mouse API calls.
-
- Portability and Configuration
-
- Code written for ncurses may assume an ANSI-standard C compiler and
- POSIX-compatible OS interface. It may also assume the presence of a
- System-V-compatible select(2) call.
-
- We encourage (but do not require) developers to make the code friendly
- to less-capable UNIX environments wherever possible.
-
- We encourage developers to support OS-specific optimizations and
- methods not available under POSIX/ANSI, provided only that:
- * All such code is properly conditioned so the build process does
- not attempt to compile it under a plain ANSI/POSIX environment.
- * Adding such implementation methods does not introduce
- incompatibilities in the ncurses API between platforms.
-
- We use GNU autoconf(1) as a tool to deal with portability issues. The
- right way to leverage an OS-specific feature is to modify the autoconf
- specification files (configure.in and aclocal.m4) to set up a new
- feature macro, which you then use to condition your code.
-
- Documentation Conventions
-
- There are three kinds of documentation associated with this package.
- Each has a different preferred format:
- * Package-internal files (README, INSTALL, TO-DO etc.)
- * Manual pages.
- * Everything else (i.e., narrative documentation).
-
- Our conventions are simple:
- 1. Maintain package-internal files in plain text. The expected viewer
- for them more(1) or an editor window; there's no point in
- elaborate mark-up.
- 2. Mark up manual pages in the man macros. These have to be viewable
- through traditional man(1) programs.
- 3. Write everything else in HTML.
-
- When in doubt, HTMLize a master and use lynx(1) to generate plain
- ASCII (as we do for the announcement document).
-
- The reason for choosing HTML is that it's (a) well-adapted for on-line
- browsing through viewers that are everywhere; (b) more easily readable
- as plain text than most other mark-ups, if you don't have a viewer;
- and (c) carries enough information that you can generate a
- nice-looking printed version from it. Also, of course, it make
- exporting things like the announcement document to WWW pretty trivial.
-
- How to Report Bugs
-
- The reporting address for bugs is bug-ncurses@gnu.org. This is a
- majordomo list; to join, write to bug-ncurses-request@gnu.org with a
- message containing the line:
- subscribe <name>@<host.domain>
-
- The ncurses code is maintained by a small group of volunteers. While
- we try our best to fix bugs promptly, we simply don't have a lot of
- hours to spend on elementary hand-holding. We rely on intelligent
- cooperation from our users. If you think you have found a bug in
- ncurses, there are some steps you can take before contacting us that
- will help get the bug fixed quickly.
-
- In order to use our bug-fixing time efficiently, we put people who
- show us they've taken these steps at the head of our queue. This means
- that if you don't, you'll probably end up at the tail end and have to
- wait a while.
- 1. Develop a recipe to reproduce the bug.
- Bugs we can reproduce are likely to be fixed very quickly, often
- within days. The most effective single thing you can do to get a
- quick fix is develop a way we can duplicate the bad behavior --
- ideally, by giving us source for a small, portable test program
- that breaks the library. (Even better is a keystroke recipe using
- one of the test programs provided with the distribution.)
- 2. Try to reproduce the bug on a different terminal type.
- In our experience, most of the behaviors people report as library
- bugs are actually due to subtle problems in terminal descriptions.
- This is especially likely to be true if you're using a traditional
- asynchronous terminal or PC-based terminal emulator, rather than
- xterm or a UNIX console entry.
- It's therefore extremely helpful if you can tell us whether or not
- your problem reproduces on other terminal types. Usually you'll
- have both a console type and xterm available; please tell us
- whether or not your bug reproduces on both.
- If you have xterm available, it is also good to collect xterm
- reports for different window sizes. This is especially true if you
- normally use an unusual xterm window size -- a surprising number
- of the bugs we've seen are either triggered or masked by these.
- 3. Generate and examine a trace file for the broken behavior.
- Recompile your program with the debugging versions of the
- libraries. Insert a trace() call with the argument set to
- TRACE_UPDATE. (See "Writing Programs with NCURSES" for details on
- trace levels.) Reproduce your bug, then look at the trace file to
- see what the library was actually doing.
- Another frequent cause of apparent bugs is application coding
- errors that cause the wrong things to be put on the virtual
- screen. Looking at the virtual-screen dumps in the trace file will
- tell you immediately if this is happening, and save you from the
- possible embarrassment of being told that the bug is in your code
- and is your problem rather than ours.
- If the virtual-screen dumps look correct but the bug persists,
- it's possible to crank up the trace level to give more and more
- information about the library's update actions and the control
- sequences it issues to perform them. The test directory of the
- distribution contains a tool for digesting these logs to make them
- less tedious to wade through.
- Often you'll find terminfo problems at this stage by noticing that
- the escape sequences put out for various capabilities are wrong.
- If not, you're likely to learn enough to be able to characterize
- any bug in the screen-update logic quite exactly.
- 4. Report details and symptoms, not just interpretations.
- If you do the preceding two steps, it is very likely that you'll
- discover the nature of the problem yourself and be able to send us
- a fix. This will create happy feelings all around and earn you
- good karma for the first time you run into a bug you really can't
- characterize and fix yourself.
- If you're still stuck, at least you'll know what to tell us.
- Remember, we need details. If you guess about what is safe to
- leave out, you are too likely to be wrong.
- If your bug produces a bad update, include a trace file. Try to
- make the trace at the least voluminous level that pins down the
- bug. Logs that have been through tracemunch are OK, it doesn't
- throw away any information (actually they're better than
- un-munched ones because they're easier to read).
- If your bug produces a core-dump, please include a symbolic stack
- trace generated by gdb(1) or your local equivalent.
- Tell us about every terminal on which you've reproduced the bug --
- and every terminal on which you can't. Ideally, sent us terminfo
- sources for all of these (yours might differ from ours).
- Include your ncurses version and your OS/machine type, of course!
- You can find your ncurses version in the curses.h file.
-
- If your problem smells like a logic error or in cursor movement or
- scrolling or a bad capability, there are a couple of tiny test frames
- for the library algorithms in the progs directory that may help you
- isolate it. These are not part of the normal build, but do have their
- own make productions.
-
- The most important of these is mvcur, a test frame for the
- cursor-movement optimization code. With this program, you can see
- directly what control sequences will be emitted for any given cursor
- movement or scroll/insert/delete operations. If you think you've got a
- bad capability identified, you can disable it and test again. The
- program is command-driven and has on-line help.
-
- If you think the vertical-scroll optimization is broken, or just want
- to understand how it works better, build hashmap and read the header
- comments of hardscroll.c and hashmap.c; then try it out. You can also
- test the hardware-scrolling optimization separately with hardscroll.
-
- There's one other interactive tester, tctest, that exercises
- translation between termcap and terminfo formats. If you have a
- serious need to run this, you probably belong on our development team!
-
- A Tour of the Ncurses Library
-
-Library Overview
-
- Most of the library is superstructure -- fairly trivial convenience
- interfaces to a small set of basic functions and data structures used
- to manipulate the virtual screen (in particular, none of this code
- does any I/O except through calls to more fundamental modules
- described below). The files
-
- lib_addch.c lib_bkgd.c lib_box.c lib_chgat.c lib_clear.c
- lib_clearok.c lib_clrbot.c lib_clreol.c lib_colorset.c lib_data.c
- lib_delch.c lib_delwin.c lib_echo.c lib_erase.c lib_gen.c
- lib_getstr.c lib_hline.c lib_immedok.c lib_inchstr.c lib_insch.c
- lib_insdel.c lib_insstr.c lib_instr.c lib_isendwin.c lib_keyname.c
- lib_leaveok.c lib_move.c lib_mvwin.c lib_overlay.c lib_pad.c
- lib_printw.c lib_redrawln.c lib_scanw.c lib_screen.c lib_scroll.c
- lib_scrollok.c lib_scrreg.c lib_set_term.c lib_slk.c
- lib_slkatr_set.c lib_slkatrof.c lib_slkatron.c lib_slkatrset.c
- lib_slkattr.c lib_slkclear.c lib_slkcolor.c lib_slkinit.c
- lib_slklab.c lib_slkrefr.c lib_slkset.c lib_slktouch.c lib_touch.c
- lib_unctrl.c lib_vline.c lib_wattroff.c lib_wattron.c lib_window.c
-
- are all in this category. They are very unlikely to need change,
- barring bugs or some fundamental reorganization in the underlying data
- structures.
-
- These files are used only for debugging support:
-
- lib_trace.c lib_traceatr.c lib_tracebits.c lib_tracechr.c
- lib_tracedmp.c lib_tracemse.c trace_buf.c
-
- It is rather unlikely you will ever need to change these, unless you
- want to introduce a new debug trace level for some reasoon.
-
- There is another group of files that do direct I/O via tputs(),
- computations on the terminal capabilities, or queries to the OS
- environment, but nevertheless have only fairly low complexity. These
- include:
-
- lib_acs.c lib_beep.c lib_color.c lib_endwin.c lib_initscr.c
- lib_longname.c lib_newterm.c lib_options.c lib_termcap.c lib_ti.c
- lib_tparm.c lib_tputs.c lib_vidattr.c read_entry.c.
-
- They are likely to need revision only if ncurses is being ported to an
- environment without an underlying terminfo capability representation.
-
- These files have serious hooks into the tty driver and signal
- facilities:
-
- lib_kernel.c lib_baudrate.c lib_raw.c lib_tstp.c lib_twait.c
-
- If you run into porting snafus moving the package to another UNIX, the
- problem is likely to be in one of these files. The file lib_print.c
- uses sleep(2) and also falls in this category.
-
- Almost all of the real work is done in the files
-
- hardscroll.c hashmap.c lib_addch.c lib_doupdate.c lib_getch.c
- lib_mouse.c lib_mvcur.c lib_refresh.c lib_setup.c lib_vidattr.c
-
- Most of the algorithmic complexity in the library lives in these
- files. If there is a real bug in ncurses itself, it's probably here.
- We'll tour some of these files in detail below (see The Engine Room).
-
- Finally, there is a group of files that is actually most of the
- terminfo compiler. The reason this code lives in the ncurses library
- is to support fallback to /etc/termcap. These files include
-
- alloc_entry.c captoinfo.c comp_captab.c comp_error.c comp_hash.c
- comp_parse.c comp_scan.c parse_entry.c read_termcap.c write_entry.c
-
- We'll discuss these in the compiler tour.
-
-The Engine Room
-
- Keyboard Input
-
- All ncurses input funnels through the function wgetch(), defined in
- lib_getch.c. This function is tricky; it has to poll for keyboard and
- mouse events and do a running match of incoming input against the set
- of defined special keys.
-
- The central data structure in this module is a FIFO queue, used to
- match multiple-character input sequences against special-key
- capabilities; also to implement pushback via ungetch().
-
- The wgetch() code distinguishes between function key sequences and the
- same sequences typed manually by doing a timed wait after each input
- character that could lead a function key sequence. If the entire
- sequence takes less than 1 second, it is assumed to have been
- generated by a function key press.
-
- Hackers bruised by previous encounters with variant select(2) calls
- may find the code in lib_twait.c interesting. It deals with the
- problem that some BSD selects don't return a reliable time-left value.
- The function timed_wait() effectively simulates a System V select.
-
- Mouse Events
-
- If the mouse interface is active, wgetch() polls for mouse events each
- call, before it goes to the keyboard for input. It is up to
- lib_mouse.c how the polling is accomplished; it may vary for different
- devices.
-
- Under xterm, however, mouse event notifications come in via the
- keyboard input stream. They are recognized by having the kmous
- capability as a prefix. This is kind of klugey, but trying to wire in
- recognition of a mouse key prefix without going through the
- function-key machinery would be just too painful, and this turns out
- to imply having the prefix somewhere in the function-key capabilities
- at terminal-type initialization.
-
- This kluge only works because kmous isn't actually used by any
- historic terminal type or curses implementation we know of. Best guess
- is it's a relic of some forgotten experiment in-house at Bell Labs
- that didn't leave any traces in the publicly-distributed System V
- terminfo files. If System V or XPG4 ever gets serious about using it
- again, this kluge may have to change.
-
- Here are some more details about mouse event handling:
-
- The lib_mouse()code is logically split into a lower level that accepts
- event reports in a device-dependent format and an upper level that
- parses mouse gestures and filters events. The mediating data structure
- is a circular queue of event structures.
-
- Functionally, the lower level's job is to pick up primitive events and
- put them on the circular queue. This can happen in one of two ways:
- either (a) _nc_mouse_event() detects a series of incoming mouse
- reports and queues them, or (b) code in lib_getch.c detects the kmous
- prefix in the keyboard input stream and calls _nc_mouse_inline to
- queue up a series of adjacent mouse reports.
-
- In either case, _nc_mouse_parse() should be called after the series is
- accepted to parse the digested mouse reports (low-level events) into a
- gesture (a high-level or composite event).
-
- Output and Screen Updating
-
- With the single exception of character echoes during a wgetnstr() call
- (which simulates cooked-mode line editing in an ncurses window), the
- library normally does all its output at refresh time.
-
- The main job is to go from the current state of the screen (as
- represented in the curscr window structure) to the desired new state
- (as represented in the newscr window structure), while doing as little
- I/O as possible.
-
- The brains of this operation are the modules hashmap.c, hardscroll.c
- and lib_doupdate.c; the latter two use lib_mvcur.c. Essentially, what
- happens looks like this:
-
- The hashmap.c module tries to detect vertical motion changes between
- the real and virtual screens. This information is represented by the
- oldindex members in the newscr structure. These are modified by
- vertical-motion and clear operations, and both are re-initialized
- after each update. To this change-journalling information, the hashmap
- code adds deductions made using a modified Heckel algorithm on hash
- values generated from the line contents.
-
- The hardscroll.c module computes an optimum set of scroll, insertion,
- and deletion operations to make the indices match. It calls
- _nc_mvcur_scrolln() in lib_mvcur.c to do those motions.
-
- Then lib_doupdate.c goes to work. Its job is to do line-by-line
- transformations of curscr lines to newscr lines. Its main tool is the
- routine mvcur() in lib_mvcur.c. This routine does cursor-movement
- optimization, attempting to get from given screen location A to given
- location B in the fewest output characters posible.
-
- If you want to work on screen optimizations, you should use the fact
- that (in the trace-enabled version of the library) enabling the
- TRACE_TIMES trace level causes a report to be emitted after each
- screen update giving the elapsed time and a count of characters
- emitted during the update. You can use this to tell when an update
- optimization improves efficiency.
-
- In the trace-enabled version of the library, it is also possible to
- disable and re-enable various optimizations at runtime by tweaking the
- variable _nc_optimize_enable. See the file include/curses.h.in for
- mask values, near the end.
-
- The Forms and Menu Libraries
-
- The forms and menu libraries should work reliably in any environment
- you can port ncurses to. The only portability issue anywhere in them
- is what flavor of regular expressions the built-in form field type
- TYPE_REGEXP will recognize.
-
- The configuration code prefers the POSIX regex facility, modeled on
- System V's, but will settle for BSD regexps if the former isn't
- available.
-
- Historical note: the panels code was written primarily to assist in
- porting u386mon 2.0 (comp.sources.misc v14i001-4) to systems lacking
- panels support; u386mon 2.10 and beyond use it. This version has been
- slightly cleaned up for ncurses.
-
- A Tour of the Terminfo Compiler
-
- The ncurses implementation of tic is rather complex internally; it has
- to do a trying combination of missions. This starts with the fact
- that, in addition to its normal duty of compiling terminfo sources
- into loadable terminfo binaries, it has to be able to handle termcap
- syntax and compile that too into terminfo entries.
-
- The implementation therefore starts with a table-driven, dual-mode
- lexical analyzer (in comp_scan.c). The lexer chooses its mode (termcap
- or terminfo) based on the first `,' or `:' it finds in each entry. The
- lexer does all the work of recognizing capability names and values;
- the grammar above it is trivial, just "parse entries till you run out
- of file".
-
-Translation of Non-use Capabilities
-
- Translation of most things besides use capabilities is pretty
- straightforward. The lexical analyzer's tokenizer hands each
- capability name to a hash function, which drives a table lookup. The
- table entry yields an index which is used to look up the token type in
- another table, and controls interpretation of the value.
-
- One possibly interesting aspect of the implementation is the way the
- compiler tables are initialized. All the tables are generated by
- various awk/sed/sh scripts from a master table include/Caps; these
- scripts actually write C initializers which are linked to the
- compiler. Furthermore, the hash table is generated in the same way, so
- it doesn't have to be generated at compiler startup time (another
- benefit of this organization is that the hash table can be in
- shareable text space).
-
- Thus, adding a new capability is usually pretty trivial, just a matter
- of adding one line to the include/Caps file. We'll have more to say
- about this in the section on Source-Form Translation.
-
-Use Capability Resolution
-
- The background problem that makes tic tricky isn't the capability
- translation itself, it's the resolution of use capabilities. Older
- versions would not handle forward use references for this reason (that
- is, a using terminal always had to follow its use target in the source
- file). By doing this, they got away with a simple implementation
- tactic; compile everything as it blows by, then resolve uses from
- compiled entries.
-
- This won't do for ncurses. The problem is that that the whole
- compilation process has to be embeddable in the ncurses library so
- that it can be called by the startup code to translate termcap entries
- on the fly. The embedded version can't go promiscuously writing
- everything it translates out to disk -- for one thing, it will
- typically be running with non-root permissions.
-
- So our tic is designed to parse an entire terminfo file into a
- doubly-linked circular list of entry structures in-core, and then do
- use resolution in-memory before writing everything out. This design
- has other advantages: it makes forward and back use-references equally
- easy (so we get the latter for free), and it makes checking for name
- collisions before they're written out easy to do.
-
- And this is exactly how the embedded version works. But the
- stand-alone user-accessible version of tic partly reverts to the
- historical strategy; it writes to disk (not keeping in core) any entry
- with no use references.
-
- This is strictly a core-economy kluge, implemented because the
- terminfo master file is large enough that some core-poor systems swap
- like crazy when you compile it all in memory...there have been reports
- of this process taking three hours, rather than the twenty seconds or
- less typical on the author's development box.
-
- So. The executable tic passes the entry-parser a hook that immediately
- writes out the referenced entry if it has no use capabilities. The
- compiler main loop refrains from adding the entry to the in-core list
- when this hook fires. If some other entry later needs to reference an
- entry that got written immediately, that's OK; the resolution code
- will fetch it off disk when it can't find it in core.
-
- Name collisions will still be detected, just not as cleanly. The
- write_entry() code complains before overwriting an entry that
- postdates the time of tic's first call to write_entry(), Thus it will
- complain about overwriting entries newly made during the tic run, but
- not about overwriting ones that predate it.
-
-Source-Form Translation
-
- Another use of tic is to do source translation between various termcap
- and terminfo formats. There are more variants out there than you might
- think; the ones we know about are described in the captoinfo(1) manual
- page.
-
- The translation output code (dump_entry() in ncurses/dump_entry.c) is
- shared with the infocmp(1) utility. It takes the same internal
- representation used to generate the binary form and dumps it to
- standard output in a specified format.
-
- The include/Caps file has a header comment describing ways you can
- specify source translations for nonstandard capabilities just by
- altering the master table. It's possible to set up capability aliasing
- or tell the compiler to plain ignore a given capability without
- writing any C code at all.
-
- For circumstances where you need to do algorithmic translation, there
- are functions in parse_entry.c called after the parse of each entry
- that are specifically intended to encapsulate such translations. This,
- for example, is where the AIX box1 capability get translated to an
- acsc string.
-
- Other Utilities
-
- The infocmp utility is just a wrapper around the same entry-dumping
- code used by tic for source translation. Perhaps the one interesting
- aspect of the code is the use of a predicate function passed in to
- dump_entry() to control which capabilities are dumped. This is
- necessary in order to handle both the ordinary De-compilation case and
- entry difference reporting.
-
- The tput and clear utilities just do an entry load followed by a
- tputs() of a selected capability.
-
- Style Tips for Developers
-
- See the TO-DO file in the top-level directory of the source
- distribution for additions that would be particularly useful.
-
- The prefix _nc_ should be used on library public functions that are
- not part of the curses API in order to prevent pollution of the
- application namespace. If you have to add to or modify the function
- prototypes in curses.h.in, read ncurses/MKlib_gen.sh first so you can
- avoid breaking XSI conformance. Please join the ncurses mailing list.
- See the INSTALL file in the top level of the distribution for details
- on the list.
-
- Look for the string FIXME in source files to tag minor bugs and
- potential problems that could use fixing.
-
- Don't try to auto-detect OS features in the main body of the C code.
- That's the job of the configuration system.
-
- To hold down complexity, do make your code data-driven. Especially, if
- you can drive logic from a table filtered out of include/Caps, do it.
- If you find you need to augment the data in that file in order to
- generate the proper table, that's still preferable to ad-hoc code --
- that's why the fifth field (flags) is there.
-
- Have fun!
-
- Porting Hints
-
- The following notes are intended to be a first step towards DOS and
- Macintosh ports of the ncurses libraries.
-
- The following library modules are `pure curses'; they operate only on
- the curses internal structures, do all output through other curses
- calls (not including tputs() and putp()) and do not call any other
- UNIX routines such as signal(2) or the stdio library. Thus, they
- should not need to be modified for single-terminal ports.
-
- lib_addch.c lib_addstr.c lib_bkgd.c lib_box.c lib_clear.c
- lib_clrbot.c lib_clreol.c lib_delch.c lib_delwin.c lib_erase.c
- lib_inchstr.c lib_insch.c lib_insdel.c lib_insstr.c lib_keyname.c
- lib_move.c lib_mvwin.c lib_newwin.c lib_overlay.c lib_pad.c
- lib_printw.c lib_refresh.c lib_scanw.c lib_scroll.c lib_scrreg.c
- lib_set_term.c lib_touch.c lib_tparm.c lib_tputs.c lib_unctrl.c
- lib_window.c panel.c
-
- This module is pure curses, but calls outstr():
-
- lib_getstr.c
-
- These modules are pure curses, except that they use tputs() and
- putp():
-
- lib_beep.c lib_color.c lib_endwin.c lib_options.c lib_slk.c
- lib_vidattr.c
-
- This modules assist in POSIX emulation on non-POSIX systems:
-
- sigaction.c
- signal calls
-
- The following source files will not be needed for a
- single-terminal-type port.
-
- alloc_entry.c captoinfo.c clear.c comp_captab.c comp_error.c
- comp_hash.c comp_main.c comp_parse.c comp_scan.c dump_entry.c
- infocmp.c parse_entry.c read_entry.c tput.c write_entry.c
-
- The following modules will use open()/read()/write()/close()/lseek()
- on files, but no other OS calls.
-
- lib_screen.c
- used to read/write screen dumps
-
- lib_trace.c
- used to write trace data to the logfile
-
- Modules that would have to be modified for a port start here:
-
- The following modules are `pure curses' but contain assumptions
- inappropriate for a memory-mapped port.
-
- lib_longname.c
- assumes there may be multiple terminals
-
- lib_acs.c
- assumes acs_map as a double indirection
-
- lib_mvcur.c
- assumes cursor moves have variable cost
-
- lib_termcap.c
- assumes there may be multiple terminals
-
- lib_ti.c
- assumes there may be multiple terminals
-
- The following modules use UNIX-specific calls:
-
- lib_doupdate.c
- input checking
-
- lib_getch.c
- read()
-
- lib_initscr.c
- getenv()
-
- lib_newterm.c
- lib_baudrate.c
- lib_kernel.c
- various tty-manipulation and system calls
-
- lib_raw.c
- various tty-manipulation calls
-
- lib_setup.c
- various tty-manipulation calls
-
- lib_restart.c
- various tty-manipulation calls
-
- lib_tstp.c
- signal-manipulation calls
-
- lib_twait.c
- gettimeofday(), select().
- _________________________________________________________________
-
-
- Eric S. Raymond <esr@snark.thyrsus.com>
-
- (Note: This is not the bug address!)
diff --git a/ncurses-5.2/doc/html/Ada95.html b/ncurses-5.2/doc/html/Ada95.html
deleted file mode 100644
index aef60ca..0000000
--- a/ncurses-5.2/doc/html/Ada95.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!DOCTYPE HTML
- PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<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
-<A HREF="mailto:juergen.pfeifer@gmx.net">J&uuml;rgen Pfeifer</A>.
-<P>
-
-Permission is hereby granted to reproduce and distribute this
-binding by any means and for any fee, whether alone or as part
-of a larger distribution, in source or in binary form, PROVIDED
-this notice is included with any such distribution, and is not
-removed from any of its header files. Mention of ncurses and the
-author of this binding in any applications linked with it is
-highly appreciated.<BR>
-
-This binding comes AS IS with no warranty, implied or expressed.
-<P>
-<HR SIZE=3 NOSHADE>
-<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
-package, a clone of the SVr4 curses model.<BR>
-I did the development on an Intel box running the latest stable release of
-<A HREF="http://www.linux.org">Linux</A>, ncurses and the most recent released
-<A HREF="http://www.gnat.com">GNU Ada Translator</A>
-gnat versions. For any older versions of ncurses and gnat
-it is not guaranteed to work.</LI>
-<LI>You must have the m4 macroprocessor to build this package.
-If you don't have this program, you can get the FSF version
-<A HREF="ftp://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
-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
-close to one-2-one on the functional level. Each (n)curses function
-has it's counterpart with a more or less similar formal parameter list
-in the binding. It is not one-2-one with respect to the datatypes.
-I tried to make records out of the flat chtype and similar structures,
-so you don't have to do bit operations to mark an attributed character
-as bold. Just make the boolean member <STRONG>bold</STRONG> of the record
-true. The binding also hides the structures like WINDOW, PANEL, MENU, FORM
-etc. ! It's a pure functional API.</LI>
-<LI>I try to do as much error checking as possible and feasible
-in the binding. I will raise an Ada exception when something
-went wrong in the low-level curses. This has the effect that - at least
-first time in my life - (n)curses programs have now a very rigid error
-checking, but - thanks to Ada - you don't have to code the orgiastic
-error checking style of C.</LI>
-<LI>Support for wide characters is currently not in the binding, as it
-is not really in ncurses at this point in time.</LI>
-</UL>
-<P>
-
-<H2>Limitations</H2>
-<UL>
-<LI>I provide no SCREEN datatype and functions to set a new screen.
-If you need this (mostly for debugging I guess), write a small
-C routine doing all this and import it into your Ada program.</LI>
-<LI>I provide no functions to switch on/off curses tracing options.
-Same suggestion as above.</LI>
-<LI>Although Ada95 is an OO Language, this binding doesn't provide
-an OO abstraction of the (n)curses functionality. As mentioned above
-it's a thin binding for the (n)curses functions. But without any
-doubt it would be nice to build on top of this an OO abstraction
-of (n)curses functionality.<BR>
-The only exception is the method how fieldtypes are represented in
-this Binding. We provide an abstract tagged type Field_Type from
-which the various fieldtypes are derived.</LI>
-<LI>I currently do not support the link_fieldtype functionality of the
-forms subsystem.</LI>
-<LI>The *_IO packages are currently output only.</LI>
-</UL>
-
-<H2>Hierarchy of packages</H2>
-<UL>
-<LI><A HREF="ada/terminal_interface__ads.htm">Terminal_Interface</A>
- <UL><LI><A HREF="ada/terminal_interface-curses__ads.htm">Curses</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-mouse__ads.htm">Mouse</A>
- <LI><A HREF="ada/terminal_interface-curses-panels__ads.htm">Panels</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-panels-user_data__ads.htm">User_Data</A>
- </UL>
- <LI><A HREF="ada/terminal_interface-curses-menus__ads.htm">Menus</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-menus-menu_user_data__ads.htm">Menu_User_Data</A>
- <LI><A HREF="ada/terminal_interface-curses-menus-item_user_data__ads.htm">Item_User_Data</A>
- </UL>
- <LI><A HREF="ada/terminal_interface-curses-forms__ads.htm">Forms</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-forms-form_user_data__ads.htm">Form_User_Data</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_user_data__ads.htm">Field_User_Data</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types__ads.htm">Field_Types</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-alpha__ads.htm">Alpha</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">AlphaNumeric</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-intfield__ads.htm">IntField</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-numeric__ads.htm">Numeric</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-regexp__ads.htm">RegExp</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">IPV4_Address</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm">Enumeration</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">Ada</A>
- </UL>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-user__ads.htm">User</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm">Choice</A>
- </UL>
- </UL>
- </UL>
- <LI><A HREF="ada/terminal_interface-curses-text_io__ads.htm">Text_IO</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-text_io-integer_io__ads.htm">Integer_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-float_io__ads.htm">Float_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-fixed_io__ads.htm">Fixed_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-decimal_io__ads.htm">Decimal_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-modular_io__ads.htm">Modular_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-enumeration_io__ads.htm">Enumeration_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-complex_io__ads.htm">Complex_IO</A>
- </UL>
- </UL>
- </UL>
-</UL>
-If you want to navigate through the html pages of the package specs, click <A HREF="ada/index.htm">here</A>.
-<H2>Implementation Details</H2>
-<H4>Behind the abstraction</H4>
-All the new types like <STRONG>Window</STRONG>, <STRONG>Panel</STRONG>,
-<STRONG>Menu</STRONG>, <STRONG>Form</STRONG> etc. are just
-opaque representations of the pointers to the corresponding
-low level (n)curses structures like
-<STRONG>WINDOW *</STRONG>, <STRONG>PANEL *</STRONG>,
-<STRONG>MENU *</STRONG> or <STRONG>FORM *</STRONG>.
-So you can safely pass them to C routines that expect a pointer
-to one of those structures.
-<H4>Extended ripoffline() usage</H4>
-The official documentation of (n)curses says, that the line parameter
-determines only whether or not exactly <STRONG>one</STRONG> line is
-stolen from the top or bottom of the screen. So essentially only the
-sign of the parameter is evaluated. ncurses has internally implemented
-it in a way, that uses the line parameter also to control the amount of
-lines to steal. This mechanism is used in the <STRONG>Rip_Off_Lines</STRONG>
-routine of the binding.
-<A NAME="userpointer">
-<H4>How user defined field types work</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.
-<A NAME="compiler">
-<H4>Using other Ada compilers</H4>
-This should basically not be a problem.
-<H4>Port to other curses implementations</H4>
-Basically it should not be too hard to make all this run on a regular SVr4
-implementation of curses. The problems are probably these:<BR>
-<UL>
-<LI>ncurses has some additional features which are presented in this binding. You
-have two choices to deal with this:
-<UL>
-<LI>Emulate the feature in this binding</LI>
-<LI>Raise an exception for non implemented features</LI>
-</UL>
-Most likely you will follow a mixed approach. Some features are easy to simulate,
-others will be hard if not impossible.</LI>
-</UL>
-I'm quite sure I forgot something.<P>
-</BODY>
-</HTML>
diff --git a/ncurses-5.2/doc/html/ada/files.htm b/ncurses-5.2/doc/html/ada/files.htm
deleted file mode 100644
index 682207c..0000000
--- a/ncurses-5.2/doc/html/ada/files.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<HTML><HEAD><TITLE></TITLE></HEAD>
-<BODY>
-<H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-</BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/files/T.htm b/ncurses-5.2/doc/html/ada/files/T.htm
deleted file mode 100644
index 46b0a00..0000000
--- a/ncurses-5.2/doc/html/ada/files/T.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<HTML><HEAD><TITLE>T</TITLE></HEAD>
-<BODY>
-<H2>Files - T</H2>
-<A HREF="../files.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-aux__adb.htm" TARGET="main">terminal_interface-curses-aux.adb</A>
-<LI><A HREF="../terminal_interface-curses-aux__ads.htm" TARGET="main">terminal_interface-curses-aux.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-alpha.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-alpha.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-alphanumeric.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-alphanumeric.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration-ada.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration-ada.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-intfield.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-intfield.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-ipv4_address.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-ipv4_address.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-numeric.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-numeric.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-regexp.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-regexp.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-user-choice.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-user-choice.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-user.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-user.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm" TARGET="main">terminal_interface-curses-forms-field_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm" TARGET="main">terminal_interface-curses-forms-field_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm" TARGET="main">terminal_interface-curses-forms-form_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm" TARGET="main">terminal_interface-curses-forms-form_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm" TARGET="main">terminal_interface-curses-forms.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm" TARGET="main">terminal_interface-curses-forms.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm" TARGET="main">terminal_interface-curses-menus-item_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm" TARGET="main">terminal_interface-curses-menus-item_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm" TARGET="main">terminal_interface-curses-menus-menu_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm" TARGET="main">terminal_interface-curses-menus-menu_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm" TARGET="main">terminal_interface-curses-menus.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm" TARGET="main">terminal_interface-curses-menus.ads</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm" TARGET="main">terminal_interface-curses-mouse.adb</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm" TARGET="main">terminal_interface-curses-mouse.ads</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm" TARGET="main">terminal_interface-curses-panels-user_data.adb</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-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-complex_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-complex_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-decimal_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-decimal_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-enumeration_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-enumeration_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-fixed_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-fixed_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-float_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-float_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-integer_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-integer_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-modular_io.adb</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__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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs.htm b/ncurses-5.2/doc/html/ada/funcs.htm
deleted file mode 100644
index 96e0b14..0000000
--- a/ncurses-5.2/doc/html/ada/funcs.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-<HTML><HEAD><TITLE></TITLE></HEAD>
-<BODY>
-<H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-</BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/A.htm b/ncurses-5.2/doc/html/ada/funcs/A.htm
deleted file mode 100644
index f32aaba..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/A.htm
+++ /dev/null
@@ -1,18 +0,0 @@
-<HTML><HEAD><TITLE>A</TITLE></HEAD>
-<BODY>
-<H2>Functions - A</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#958_16" TARGET="main">Ahead</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#52_16" TARGET="main">Allocate_Arg</A>
-<LI><A HREF="../terminal_interface-curses-forms-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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/B.htm b/ncurses-5.2/doc/html/ada/funcs/B.htm
deleted file mode 100644
index 46b0d30..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/B.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-<HTML><HEAD><TITLE>B</TITLE></HEAD>
-<BODY>
-<H2>Functions - B</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/C.htm b/ncurses-5.2/doc/html/ada/funcs/C.htm
deleted file mode 100644
index 47beaff..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/C.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<HTML><HEAD><TITLE>C</TITLE></HEAD>
-<BODY>
-<H2>Functions - C</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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-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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/D.htm b/ncurses-5.2/doc/html/ada/funcs/D.htm
deleted file mode 100644
index 9472a37..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/D.htm
+++ /dev/null
@@ -1,22 +0,0 @@
-<HTML><HEAD><TITLE>D</TITLE></HEAD>
-<BODY>
-<H2>Functions - D</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/E.htm b/ncurses-5.2/doc/html/ada/funcs/E.htm
deleted file mode 100644
index b9f13e3..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/E.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-<HTML><HEAD><TITLE>E</TITLE></HEAD>
-<BODY>
-<H2>Functions - E</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/F.htm b/ncurses-5.2/doc/html/ada/funcs/F.htm
deleted file mode 100644
index 1df765f..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/F.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<HTML><HEAD><TITLE>F</TITLE></HEAD>
-<BODY>
-<H2>Functions - F</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#467_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:467</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#477_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:477</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#254_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:254</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#265_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:265</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#56_13" TARGET="main">Field_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#423_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:423</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#433_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:433</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#212_16" TARGET="main">Field_Just</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#373_16" TARGET="main">Field_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#351_16" TARGET="main">Field_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#348_16" TARGET="main">Field_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#506_16" TARGET="main">Field_Pad</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#292_16" TARGET="main">Field_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#72_16" TARGET="main">Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-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-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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/G.htm b/ncurses-5.2/doc/html/ada/funcs/G.htm
deleted file mode 100644
index d90750d..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/G.htm
+++ /dev/null
@@ -1,21 +0,0 @@
-<HTML><HEAD><TITLE>G</TITLE></HEAD>
-<BODY>
-<H2>Functions - G</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#90_13" TARGET="main">Generic_Char_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#83_13" TARGET="main">Generic_Field_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13" TARGET="main">Generic_Next</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13" TARGET="main">Generic_Prev</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#68_16" TARGET="main">Getmouse</A>
-<LI><A HREF="../terminal_interface-curses-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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/H.htm b/ncurses-5.2/doc/html/ada/funcs/H.htm
deleted file mode 100644
index e852d92..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/H.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-<HTML><HEAD><TITLE>H</TITLE></HEAD>
-<BODY>
-<H2>Functions - H</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/I.htm b/ncurses-5.2/doc/html/ada/funcs/I.htm
deleted file mode 100644
index a3dada4..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/I.htm
+++ /dev/null
@@ -1,31 +0,0 @@
-<HTML><HEAD><TITLE>I</TITLE></HEAD>
-<BODY>
-<H2>Functions - I</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/K.htm b/ncurses-5.2/doc/html/ada/funcs/K.htm
deleted file mode 100644
index d09ddcd..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/K.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-<HTML><HEAD><TITLE>K</TITLE></HEAD>
-<BODY>
-<H2>Functions - K</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/L.htm b/ncurses-5.2/doc/html/ada/funcs/L.htm
deleted file mode 100644
index 456daf8..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/L.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<HTML><HEAD><TITLE>L</TITLE></HEAD>
-<BODY>
-<H2>Functions - L</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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-text_io__ads.htm#102_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:102</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#77_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:77</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#78_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:78</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#171_16" TARGET="main">Lnk_Field</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/M.htm b/ncurses-5.2/doc/html/ada/funcs/M.htm
deleted file mode 100644
index c2b7878..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/M.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<HTML><HEAD><TITLE>M</TITLE></HEAD>
-<BODY>
-<H2>Functions - M</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#73_13" TARGET="main">Make_Enumeration_Type</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#607_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:607</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#617_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:617</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#786_16" TARGET="main">Menu_Fmt</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#568_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:568</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#578_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:578</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#646_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:646</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#656_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:656</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#875_16" TARGET="main">Menu_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#413_16" TARGET="main">Menu_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#393_16" TARGET="main">Menu_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#390_16" TARGET="main">Menu_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#681_16" TARGET="main">Menu_Pad</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#469_16" TARGET="main">Menu_Sub</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#883_16" TARGET="main">Menu_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#63_16" TARGET="main">Menu_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#445_16" TARGET="main">Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/N.htm b/ncurses-5.2/doc/html/ada/funcs/N.htm
deleted file mode 100644
index 09ba03f..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/N.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<HTML><HEAD><TITLE>N</TITLE></HEAD>
-<BODY>
-<H2>Functions - N</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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-text_io__ads.htm#87_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:87</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#89_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:89</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#90_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:90</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#60_13" TARGET="main">Next</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/O.htm b/ncurses-5.2/doc/html/ada/funcs/O.htm
deleted file mode 100644
index d5ec406..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/O.htm
+++ /dev/null
@@ -1,9 +0,0 @@
-<HTML><HEAD><TITLE>O</TITLE></HEAD>
-<BODY>
-<H2>Functions - O</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#58_17" TARGET="main">Output</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1323_16" TARGET="main">Overlay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1311_16" TARGET="main">Overwrite</A>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/P.htm b/ncurses-5.2/doc/html/ada/funcs/P.htm
deleted file mode 100644
index 79eae2a..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/P.htm
+++ /dev/null
@@ -1,39 +0,0 @@
-<HTML><HEAD><TITLE>P</TITLE></HEAD>
-<BODY>
-<H2>Functions - P</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#80_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:80</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#81_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:81</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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#109_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:109</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#115_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:115</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#116_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:116</A>
-<LI><A HREF="../terminal_interface-curses-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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/Q.htm b/ncurses-5.2/doc/html/ada/funcs/Q.htm
deleted file mode 100644
index 51ad35b..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/Q.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-<HTML><HEAD><TITLE>Q</TITLE></HEAD>
-<BODY>
-<H2>Functions - Q</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#887_17" TARGET="main">Qiflush</A>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/R.htm b/ncurses-5.2/doc/html/ada/funcs/R.htm
deleted file mode 100644
index 213a13c..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/R.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML><HEAD><TITLE>R</TITLE></HEAD>
-<BODY>
-<H2>Functions - R</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/S.htm b/ncurses-5.2/doc/html/ada/funcs/S.htm
deleted file mode 100644
index f0e0204..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/S.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<HTML><HEAD><TITLE>S</TITLE></HEAD>
-<BODY>
-<H2>Functions - S</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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-text_io__ads.htm#93_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:93</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1025_16" TARGET="main">Set_Current_Fld</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#286_16" TARGET="main">Set_Curr_Item</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#447_16" TARGET="main">Set_Field_Back</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#403_16" TARGET="main">Set_Field_Fore</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#664_16" TARGET="main">Set_Field_Init</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#195_16" TARGET="main">Set_Field_Just</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#309_16" TARGET="main">Set_Field_Max</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#329_16" TARGET="main">Set_Field_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#489_16" TARGET="main">Set_Field_Pad</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#680_16" TARGET="main">Set_Field_Term</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alpha.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alphanumeric.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-enumeration.ads:84</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-intfield.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-ipv4_address.ads:47</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-numeric.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-regexp.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#70_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-user.ads:70</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#57_16" TARGET="main">Set_Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#230_16" TARGET="main">Set_Fld_Buffer</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#277_16" TARGET="main">Set_Fld_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm#54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alpha.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alphanumeric.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#97_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-enumeration.adb:97</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm#54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-intfield.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-ipv4_address.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#56_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-numeric.adb:56</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#55_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-user.adb:55</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#151_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:151</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#696_16" TARGET="main">Set_Form_Init</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#844_16" TARGET="main">Set_Form_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#612_16" TARGET="main">Set_Form_Sub</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#712_16" TARGET="main">Set_Form_Term</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#58_16" TARGET="main">Set_Form_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#584_16" TARGET="main">Set_Form_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#732_16" TARGET="main">Set_Frm_Fields</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1055_16" TARGET="main">Set_Frm_Page</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#54_16" TARGET="main">Set_Ftyp</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#892_16" TARGET="main">Set_Items</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#804_16" TARGET="main">Set_Item_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#193_16" TARGET="main">Set_Item_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#818_16" TARGET="main">Set_Item_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#51_16" TARGET="main">Set_Item_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#154_16" TARGET="main">Set_Item_Val</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#95_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:95</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#96_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:96</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#513_16" TARGET="main">Set_Mark</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#590_16" TARGET="main">Set_Menu_Back</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#767_16" TARGET="main">Set_Menu_Fmt</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#551_16" TARGET="main">Set_Menu_Fore</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#628_16" TARGET="main">Set_Menu_Grey</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#832_16" TARGET="main">Set_Menu_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#373_16" TARGET="main">Set_Menu_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#666_16" TARGET="main">Set_Menu_Pad</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#456_16" TARGET="main">Set_Menu_Sub</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#846_16" TARGET="main">Set_Menu_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#50_16" TARGET="main">Set_Menu_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#432_16" TARGET="main">Set_Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1104_16" TARGET="main">Set_Page</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#54_16" TARGET="main">Set_Panel_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#735_16" TARGET="main">Set_Pattern</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#692_16" TARGET="main">Set_Spacing</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#313_16" TARGET="main">Set_Toprow</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#59_14" TARGET="main">Set_Window</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#84_16" TARGET="main">Showpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/T.htm b/ncurses-5.2/doc/html/ada/funcs/T.htm
deleted file mode 100644
index 817d22b..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/T.htm
+++ /dev/null
@@ -1,19 +0,0 @@
-<HTML><HEAD><TITLE>T</TITLE></HEAD>
-<BODY>
-<H2>Functions - T</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/U.htm b/ncurses-5.2/doc/html/ada/funcs/U.htm
deleted file mode 100644
index 135f3fb..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/U.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-<HTML><HEAD><TITLE>U</TITLE></HEAD>
-<BODY>
-<H2>Functions - U</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/V.htm b/ncurses-5.2/doc/html/ada/funcs/V.htm
deleted file mode 100644
index 21bebc2..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/V.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-<HTML><HEAD><TITLE>V</TITLE></HEAD>
-<BODY>
-<H2>Functions - V</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13" TARGET="main">Value</A>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/funcs/W.htm b/ncurses-5.2/doc/html/ada/funcs/W.htm
deleted file mode 100644
index 5016fb7..0000000
--- a/ncurses-5.2/doc/html/ada/funcs/W.htm
+++ /dev/null
@@ -1,51 +0,0 @@
-<HTML><HEAD><TITLE>W</TITLE></HEAD>
-<BODY>
-<H2>Functions - W</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/index.htm b/ncurses-5.2/doc/html/ada/index.htm
deleted file mode 100644
index 79c9f4a..0000000
--- a/ncurses-5.2/doc/html/ada/index.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<HTML>
-<HEAD><TITLE>Source Browser</TITLE></HEAD>
-<FRAMESET COLS='250,*'>
-<NOFRAME>
-<H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-</UL>
-<HR>
-<H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-</UL>
-</NOFRAME>
-<FRAMESET ROWS='50%,50%'>
-<FRAME NAME=files SRC=files.htm>
-<FRAME NAME=funcs SRC=funcs.htm>
-</FRAMESET>
-<FRAME NAME=main SRC=main.htm>
-</FRAMESET>
-</HTML>
diff --git a/ncurses-5.2/doc/html/ada/main.htm b/ncurses-5.2/doc/html/ada/main.htm
deleted file mode 100644
index 2a403dc..0000000
--- a/ncurses-5.2/doc/html/ada/main.htm
+++ /dev/null
@@ -1,66 +0,0 @@
-<HTML><HEAD><TITLE></TITLE></HEAD>
-<BODY>
-<P ALIGN=right><A HREF="main.htm" TARGET="_top">[No frame version is here]</A><P><H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-</UL>
-<HR><H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-</UL>
-<HR>
-You should start your browsing with one of these files:
-<UL>
-<LI><A HREF="terminal_interface-curses-aux__ads.htm">terminal_interface-curses-aux.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm">terminal_interface-curses-forms-field_types-alpha.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">terminal_interface-curses-forms-field_types-alphanumeric.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">terminal_interface-curses-forms-field_types-enumeration-ada.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm">terminal_interface-curses-forms-field_types-enumeration.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm">terminal_interface-curses-forms-field_types-intfield.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">terminal_interface-curses-forms-field_types-ipv4_address.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm">terminal_interface-curses-forms-field_types-numeric.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm">terminal_interface-curses-forms-field_types-regexp.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm">terminal_interface-curses-forms-field_types-user-choice.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm">terminal_interface-curses-forms-field_types-user.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types__ads.htm">terminal_interface-curses-forms-field_types.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm">terminal_interface-curses-forms-field_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm">terminal_interface-curses-forms-form_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-forms__ads.htm">terminal_interface-curses-forms.ads</A>
-<LI><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm">terminal_interface-curses-menus-item_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm">terminal_interface-curses-menus-menu_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-menus__ads.htm">terminal_interface-curses-menus.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-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-enumeration_io__ads.htm">terminal_interface-curses-text_io-enumeration_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm">terminal_interface-curses-text_io-fixed_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-float_io__ads.htm">terminal_interface-curses-text_io-float_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__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
diff --git a/ncurses-5.2/doc/html/ada/table.html b/ncurses-5.2/doc/html/ada/table.html
deleted file mode 100644
index e185a8b..0000000
--- a/ncurses-5.2/doc/html/ada/table.html
+++ /dev/null
@@ -1,325 +0,0 @@
-<!DOCTYPE HTML
-PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Correspondence between ncurses C and Ada functions</TITLE>
-</HEAD>
-<BODY>
-<H1>Correspondence between ncurses C and Ada functions</H1>
-<H2>Sorted by C function name</H2>
-<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>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>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>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>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>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>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>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>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_count()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_43">Field_Count</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
-<TR><TD>field_fore()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_18">Foreground</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>field_fore()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_19">Foreground</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>field_index()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_61">Get_Index</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
-<TR><TD>field_info()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_25">Info</A></TD><TD><A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></TD></TR>
-<TR><TD>field_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_36">Get_Field_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>field_just()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_7">Get_Justification</A></TD><TD><A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></TD></TR>
-<TR><TD>field_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_15">Get_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
-<TR><TD>field_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_16">Get_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
-<TR><TD>field_opts_on()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_14">Switch_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
-<TR><TD>field_pad()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_24">Pad_Character</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>field_status()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_11">Changed</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
-<TR><TD>field_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_37">Get_Field_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.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>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_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_50">Get_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
-<TR><TD>form_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_51">Get_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
-<TR><TD>form_opts_on()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_49">Switch_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
-<TR><TD>form_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_60">Page</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
-<TR><TD>form_sub()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_30">Get_Sub_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
-<TR><TD>form_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_39">Get_Form_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>form_userptr</TD><TD><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></TD></TR>
-<TR><TD>form_userptr</TD><TD><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></TD></TR>
-<TR><TD>form_win()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_28">Get_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
-<TR><TD>free_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_3">Delete</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_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>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>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>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>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>item_index()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_17">Get_Index</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
-<TR><TD>item_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_52">Get_Item_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>item_name()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_11">Name</A></TD><TD><A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></TD></TR>
-<TR><TD>item_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_10">Get_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
-<TR><TD>item_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_9">Get_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
-<TR><TD>item_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_8">Switch_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
-<TR><TD>item_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_53">Get_Item_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.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>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>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_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_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_38">Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_39">Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_54">Get_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_57">Items</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
-<TR><TD>menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_30">Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
-<TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_21">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
-<TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_22">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.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_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>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>move_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_11">Move</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>mvderwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_16">Move_Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.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>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>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_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_46">New_Form</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
-<TR><TD>new_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
-<TR><TD>new_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_2">New_Item</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
-<TR><TD>new_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_59">Create</A></TD><TD><A HREF="../man/menu_new.3x.html">menu_new.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>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>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_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_2">Get_User_Data</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>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>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>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>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_field_buffer()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_8">Set_Buffer</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
-<TR><TD>set_field_fore()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_17">Set_Foreground</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>set_field_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_32">Set_Field_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>set_field_just()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_6">Set_Justification</A></TD><TD><A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></TD></TR>
-<TR><TD>set_field_max()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_12">Set_Maximum_Size</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
-<TR><TD>set_field_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_13">Set_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
-<TR><TD>set_field_pad()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_23">Set_Pad_Character</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>set_field_status()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_10">Set_Status</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
-<TR><TD>set_field_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_33">Set_Field_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>set_field_type()</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_1">Set_Type</A></TD><TD><A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></TD></TR>
-<TR><TD>set_field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
-<TR><TD>set_form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_40">Redefine</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
-<TR><TD>set_form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_41">Set_Fields</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
-<TR><TD>set_form_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_34">Set_Form_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>set_form_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_48">Set_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
-<TR><TD>set_form_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_59">Set_Page</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
-<TR><TD>set_form_sub()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_29">Set_Sub_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
-<TR><TD>set_form_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_35">Set_Form_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>set_form_userptr</TD><TD><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></TD></TR>
-<TR><TD>set_form_win()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_27">Set_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
-<TR><TD>set_item_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_48">Set_Item_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>set_item_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_7">Set_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
-<TR><TD>set_item_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_49">Set_Item_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>set_item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
-<TR><TD>set_item_value()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_4">Set_Value</A></TD><TD><A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></TD></TR>
-<TR><TD>set_menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_34">Set_Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_31">Set_Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_format()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_46">Set_Format</A></TD><TD><A HREF="../man/menu_format.3x.html">menu_format.3x</A></TD></TR>
-<TR><TD>set_menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_37">Set_Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_50">Set_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>set_menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_56">Redefine</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
-<TR><TD>set_menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_29">Set_Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
-<TR><TD>set_menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_19">Set_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
-<TR><TD>set_menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_40">Set_Pad_Character</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_44">Set_Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
-<TR><TD>set_menu_spacing()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_42">Set_Spacing</A></TD><TD><A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></TD></TR>
-<TR><TD>set_menu_sub()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_25">Set_Sub_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
-<TR><TD>set_menu_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_51">Set_Menu_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>set_menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
-<TR><TD>set_menu_win()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_23">Set_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
-<TR><TD>set_new_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_62">Set_New_Page</A></TD><TD><A HREF="../man/form_new_page.3x.html">form_new_page.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>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>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>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>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>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>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>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>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>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>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>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>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>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>
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__adb.htm
deleted file mode 100644
index f931ca6..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__adb.htm
+++ /dev/null
@@ -1,121 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-aux.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Aux --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>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>
- <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>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;
- <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>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>);
- <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>);
- <b>end</b>;
- <b>else</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> := 0;
- <b>end</b> <b>if</b>;
-
- <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> &lt; <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A> ((<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A>) .. <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'Last) := (<b>others</b> =&gt; ' ');
- <b>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>is</b>
- <FONT COLOR=red><A NAME="75_7">Len</A></FONT> : Natural;
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A> /= Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#75_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A>));
- <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#75_7">Len</A> = 0 <b>then</b>
- <b>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>);
- <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>;
- <b>end</b>;
- <b>end</b> <b>if</b>;
- <b>else</b>
- <b>return</b> "";
- <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>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>end</b> <b>case</b>;
- <b>end</b> Eti_Exception;
-
-<b>end</b> Terminal_Interface.Curses.Aux;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__ads.htm
deleted file mode 100644
index 3b10c65..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-aux__ads.htm
+++ /dev/null
@@ -1,130 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-aux.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Aux --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- curses binding.</EM></FONT>
-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">System</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="unchconv__ads.htm#22_10">Interfaces</A>.C.Strings; <b>use</b> Interfaces.C.Strings;
-<b>with</b> Unchecked_Conversion;
-
-<b>package</b> Terminal_Interface.Curses.Aux <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Aux);
-
- <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>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>-- exactly like this in all ETI implementations I ever tested. So it</EM></FONT>
- <FONT COLOR=green><EM>-- could be that this is quite general, but please check with your curses.</EM></FONT>
- <FONT COLOR=green><EM>-- This is critical, because curses sometime mixes boolean returns with</EM></FONT>
- <FONT COLOR=green><EM>-- returning an error status.</EM></FONT>
- <FONT COLOR=red><A NAME="72_4">Curses_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := 0;
- Curses_Err : <b>constant</b> C_Int := -1;
-
- <FONT COLOR=red><A NAME="75_4">Curses_True</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := 1;
- 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;
- E_Current : <b>constant</b> Eti_Error := -14;
-
- <b>procedure</b> Eti_Exception (Code : Eti_Error);
- <FONT COLOR=green><EM>-- Dispatch the error code and raise the appropriate exception</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Some helpers</EM></FONT>
- <b>function</b> Chtype_To_AttrChar <b>is</b> <b>new</b>
- 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);
- <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>,
- 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>,
- 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>,
- Target =&gt; Attributed_Character);
-
- <b>procedure</b> Fill_String (<FONT COLOR=red><A NAME="117_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>
-
- <b>function</b> Fill_String (Cp : chars_ptr) <b>return</b> String;
- <FONT COLOR=green><EM>-- Same but as function.</EM></FONT>
-
-<b>end</b> Terminal_Interface.Curses.Aux;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
deleted file mode 100644
index 74d986b..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>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>is</b>
- C_Alpha_Field_Type : C_Field_Type;
- <b>pragma</b> Import (C, C_Alpha_Field_Type, "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");
-
- <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#56_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#46_9">Minimum_Field_Width</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Typ</A>);
- <b>end</b> Set_Field_Type;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Alpha;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
deleted file mode 100644
index 87c2ce0..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
+++ /dev/null
@@ -1,58 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>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>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>with</b> <b>record</b>
- <FONT COLOR=red><A NAME="46_9">Minimum_Field_Width</A></FONT> : Natural := 0;
- <b>end</b> <b>record</b>;
-
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<FONT COLOR=red><A NAME="49_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="50_30">Typ</A></FONT> : <b>in</b> <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>end</b> Terminal_Interface.Curses.Forms.Field_Types.Alpha;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
deleted file mode 100644
index ffe72eb..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>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>is</b>
- C_AlphaNumeric_Field_Type : C_Field_Type;
- <b>pragma</b> Import (C, C_AlphaNumeric_Field_Type, "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");
-
- <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#56_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#47_9">Minimum_Field_Width</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Typ</A>);
- <b>end</b> Set_Field_Type;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
deleted file mode 100644
index 9b3c527..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>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>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>);
-
- <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>with</b> <b>record</b>
- <FONT COLOR=red><A NAME="47_9">Minimum_Field_Width</A></FONT> : Natural := 0;
- <b>end</b> <b>record</b>;
-
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="50_14"></A></FONT> (<FONT COLOR=red><A NAME="50_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="51_30">Typ</A></FONT> : <b>in</b> <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>end</b> Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
deleted file mode 100644
index b5b9b02..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.5 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>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>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>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;
- <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>;
-
- <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>)));
- <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>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;
- <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>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>is</b>
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#370_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_20">Buf</A>));
- <b>end</b> Value;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
deleted file mode 100644
index 8a667b7..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
+++ /dev/null
@@ -1,64 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Author: <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>-- Version Control:</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>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">T</A></FONT> <b>is</b> (&lt;&gt;);
-
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<FONT COLOR=red><A NAME="44_65">Ada</A></FONT> <b>is</b>
- <b>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>);
-
- <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#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>;
- <FONT COLOR=green><EM>-- Translate the content of the fields buffer - indicated by the</EM></FONT>
- <FONT COLOR=green><EM>-- buffer number - into an enumeration value. If the buffer is empty</EM></FONT>
- <FONT COLOR=green><EM>-- or the content is invalid, a Constraint_Error is raises.</EM></FONT>
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
deleted file mode 100644
index 6e4ce43..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
+++ /dev/null
@@ -1,124 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.5 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>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>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>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>is</b>
- <b>procedure</b> <FONT COLOR=red><A NAME="52_17">Release_String</A></FONT> <b>is</b>
- <b>new</b> Ada.Unchecked_Deallocation (String,
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#47_9">String_Access</A>);
- <FONT COLOR=red><A NAME="55_7">E</A></FONT> : <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>;
- <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>;
- <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>);
- <b>end</b> <b>if</b>;
- <b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">L</A>) := Null_Ptr;
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>;
- <b>end</b> 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>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;
- <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;
- <b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> := <b>null</b>;
- <b>end</b> 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>is</b>
- C_Enum_Type : C_Field_Type;
- <b>pragma</b> Import (C, C_Enum_Type, "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");
-
- <FONT COLOR=red><A NAME="104_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> = <b>null</b> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
- <b>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>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A>);
- <b>end</b> Set_Field_Type;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
deleted file mode 100644
index 0aff774..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
+++ /dev/null
@@ -1,103 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>);
-
- <b>type</b> <FONT COLOR=red><A NAME="47_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
-
- <FONT COLOR=green><EM>-- Type_Set is used by the child package Ada</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="50_9">Type_Set</A></FONT> <b>is</b> (Lower_Case, Upper_Case, Mixed_Case);
-
- <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="55_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="55_27">C</A></FONT> : Positive) <b>is</b>
- <b>record</b>
- <FONT COLOR=red><A NAME="57_10">Names</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#52_9">Enum_Array</A> (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_27">C</A>);
- <FONT COLOR=red><A NAME="58_10">Case_Sensitive</A></FONT> : Boolean := False;
- <FONT COLOR=red><A NAME="59_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
- <b>end</b> <b>record</b>;
-
- <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>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>;
- <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>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>);
- <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>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> <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>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>;
- <b>end</b> <b>record</b>;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
deleted file mode 100644
index 1f98bd7..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>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>is</b>
- C_Integer_Field_Type : C_Field_Type;
- <b>pragma</b> Import (C, C_Integer_Field_Type, "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");
-
- <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#56_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#46_10">Precision</A>),
- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#57_30">Arg2</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#47_10">Lower_Limit</A>),
- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#58_30">Arg3</A> =&gt; <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#48_10">Upper_Limit</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#61_7">Res</A>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>);
- <b>end</b> Set_Field_Type;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IntField;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
deleted file mode 100644
index d72b8b8..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>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>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>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;
- <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>end</b> Terminal_Interface.Curses.Forms.Field_Types.IntField;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
deleted file mode 100644
index dc79cc7..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
+++ /dev/null
@@ -1,73 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>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>is</b>
- C_IPV4_Field_Type : C_Field_Type;
- <b>pragma</b> Import (C, C_IPV4_Field_Type, "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");
-
- <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#54_16">Set_Fld_Type</A>;
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_30">Typ</A>);
- <b>end</b> Set_Field_Type;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
deleted file mode 100644
index f270ad6..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>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>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>);
-
- <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>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>end</b> Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
deleted file mode 100644
index e6d0742..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
+++ /dev/null
@@ -1,79 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.7 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<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>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>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>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;
-
- C_Numeric_Field_Type : C_Field_Type;
- <b>pragma</b> Import (C, C_Numeric_Field_Type, "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");
-
- <FONT COLOR=red><A NAME="63_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#63_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#56_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#58_30">Arg1</A> =&gt; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#46_10">Precision</A>),
- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#59_30">Arg2</A> =&gt; <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>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>);
- <b>end</b> Set_Field_Type;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Numeric;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
deleted file mode 100644
index 2f1edfd..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>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>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>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;
- <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>end</b> Terminal_Interface.Curses.Forms.Field_Types.Numeric;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
deleted file mode 100644
index 44d8860..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>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>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;
-
- C_Regexp_Field_Type : C_Field_Type;
- <b>pragma</b> Import (C, C_Regexp_Field_Type, "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");
-
- <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>;
- <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>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Typ</A>);
- <b>end</b> Set_Field_Type;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.RegExp;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
deleted file mode 100644
index e716502..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>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>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="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>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>;
- <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>end</b> Terminal_Interface.Curses.Forms.Field_Types.RegExp;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
deleted file mode 100644
index d9a59b2..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
+++ /dev/null
@@ -1,115 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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>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> <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>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);
- <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>));
- <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>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);
- <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>));
- <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>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;
- <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>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>);
- <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>);
- <b>end</b> <b>if</b>;
- <b>end</b> <b>if</b>;
- M_Generic_Choice := T;
- <b>end</b> <b>if</b>;
- <b>pragma</b> Assert (M_Generic_Choice /= Null_Field_Type);
- <b>return</b> M_Generic_Choice;
- <b>end</b> C_Generic_Choice;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
deleted file mode 100644
index dde056e..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
+++ /dev/null
@@ -1,101 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>);
-
- <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>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>;
- <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>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>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>is</b> <b>abstract</b>;
- <FONT COLOR=green><EM>-- If True is returned, the function successfully generated a previous</EM></FONT>
- <FONT COLOR=green><EM>-- value into the fields buffer.</EM></FONT>
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
-<b>private</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
-
- <b>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#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>);
- <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>);
- <FONT COLOR=green><EM>-- This is the generic prev Choice_Function for the low-level fieldtype</EM></FONT>
- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivates. It routes</EM></FONT>
- <FONT COLOR=green><EM>-- the call to the Previous implementation for the type.</EM></FONT>
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
deleted file mode 100644
index 95dfeda..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
+++ /dev/null
@@ -1,137 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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>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>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> <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");
-
- <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_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>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>);
- <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>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>);
- <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> <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>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);
- <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>));
- <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>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);
- <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>));
- <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>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;
- <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>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>);
- <b>end</b> <b>if</b>;
- <b>end</b> <b>if</b>;
- M_Generic_Type := T;
- <b>end</b> <b>if</b>;
- <b>pragma</b> Assert (M_Generic_Type /= Null_Field_Type);
- <b>return</b> M_Generic_Type;
- <b>end</b> C_Generic_Type;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
deleted file mode 100644
index 9be4226..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
+++ /dev/null
@@ -1,102 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>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>;
- <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>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>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>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>);
- <FONT COLOR=green><EM>-- This should work for all types derived from User_Defined_Field_Type.</EM></FONT>
- <FONT COLOR=green><EM>-- No need to reimplement it for your derived type.</EM></FONT>
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
- <FONT COLOR=green><EM>-- | Used by the Choice child package.</EM></FONT>
-<b>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#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>);
- <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>);
- <FONT COLOR=green><EM>-- This is the generic Char_Check_Function for the low-level fieldtype</EM></FONT>
- <FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivates. It routes</EM></FONT>
- <FONT COLOR=green><EM>-- the call to the Character_Check implementation for the type.</EM></FONT>
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
deleted file mode 100644
index 48c7ee4..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
+++ /dev/null
@@ -1,301 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#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> Ada.Unchecked_Deallocation;
-<b>with</b> Ada.Unchecked_Conversion;
-<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>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="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="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");
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_field_validation.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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;
- <b>begin</b>
- <b>if</b> Low_Level = Null_Field_Type <b>then</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>else</b>
- <b>return</b> Arg.Typ;
- <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>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>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>-- complicated to write portable routine that reads the arguments,</EM></FONT>
- <FONT COLOR=green><EM>-- because one has to know the growth direction of the stack and</EM></FONT>
- <FONT COLOR=green><EM>-- the sizes of the individual arguments.</EM></FONT>
- <FONT COLOR=green><EM>-- Fortunately we are only interested in the first argument (#0),</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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#106_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#106_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_23">Args</A>).<b>all</b>).<b>all</b>;
- <b>end</b> 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>is</b>
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_23">Usr</A>;
- <b>end</b> 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>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);
-
- 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;
- <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>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>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#122_17">Freeargs</A> (To_Be_Free);
- <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>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");
-
- <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>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>);
- <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>;
- <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>);
- <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>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>);
- <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>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>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>);
- <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>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>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>);
- <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>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>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>);
- <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>else</b>
- <b>return</b> 1;
- <b>end</b> <b>if</b>;
- <b>end</b> Prev_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#148_13">C_Builtin_Router</A><FONT COLOR=red><A NAME="237_13"></A></FONT> <b>return</b> C_Field_Type
- <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;
- <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>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>);
- <b>end</b> <b>if</b>;
- <b>end</b> <b>if</b>;
- M_Builtin_Router := T;
- <b>end</b> <b>if</b>;
- <b>pragma</b> Assert (M_Builtin_Router /= Null_Field_Type);
- <b>return</b> M_Builtin_Router;
- <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>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;
- <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>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>);
- <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>);
- <b>end</b> <b>if</b>;
- <b>end</b> <b>if</b>;
- M_Choice_Router := T;
- <b>end</b> <b>if</b>;
- <b>pragma</b> Assert (M_Choice_Router /= Null_Field_Type);
- <b>return</b> M_Choice_Router;
- <b>end</b> C_Choice_Router;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
deleted file mode 100644
index e11c256..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
+++ /dev/null
@@ -1,245 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> 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>subtype</b> C_Int <b>is</b> Interfaces.C.int;
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> Field_Type <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
- <FONT COLOR=green><EM>-- Abstract base type for all field types. A concrete field type</EM></FONT>
- <FONT COLOR=green><EM>-- is an extension that adds some data elements describing formats or</EM></FONT>
- <FONT COLOR=green><EM>-- boundary values for the type and validation routines.</EM></FONT>
- <FONT COLOR=green><EM>-- For the builtin low-level fieldtypes, the validation routines are</EM></FONT>
- <FONT COLOR=green><EM>-- already defined by the low-level C library.</EM></FONT>
- <FONT COLOR=green><EM>-- The builtin types like Alpha or AlphaNumeric etc. are defined in</EM></FONT>
- <FONT COLOR=green><EM>-- child packages of this package. You may use one of them as example</EM></FONT>
- <FONT COLOR=green><EM>-- how to create you own child packages for low-level field types that</EM></FONT>
- <FONT COLOR=green><EM>-- you may have already written in C.</EM></FONT>
-
- <b>type</b> 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>;
- 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>
- <FONT COLOR=green><EM>-- have to pass a single Field_Type parameter.</EM></FONT>
-
- <FONT COLOR=green><EM>-- ---------------------------------------------------------------------</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> Get_Type (Fld : <b>in</b> Field) <b>return</b> Field_Type_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: field_arg()</EM></FONT>
- <FONT COLOR=green><EM>-- In Ada95 we can combine these. If you try to retrieve the field type</EM></FONT>
- <FONT COLOR=green><EM>-- that is not defined as extension of the abstract tagged type above,</EM></FONT>
- <FONT COLOR=green><EM>-- you will raise a Form_Exception.</EM></FONT>
- <FONT COLOR=green><EM>-- This is not inlined</EM></FONT>
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
- <FONT COLOR=green><EM>-- | Most of this is used by the implementations of the child packages.</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
-<b>private</b>
- <b>type</b> Makearg_Function <b>is</b> <b>access</b>
- <b>function</b> (Args : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, Makearg_Function);
-
- <b>type</b> Copyarg_Function <b>is</b> <b>access</b>
- <b>function</b> (Usr : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, Copyarg_Function);
-
- <b>type</b> Freearg_Function <b>is</b> <b>access</b>
- <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>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>pragma</b> Convention (C, Char_Check_Function);
-
- <b>type</b> Choice_Function <b>is</b> <b>access</b>
- <b>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
- <b>pragma</b> Convention (C, Choice_Function);
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | This must be in sync with the FIELDTYPE structure in form.h</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>type</b> 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>;
- Next, Prev : Choice_Function;
- <b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C, Low_Level_Field_Type);
- <b>type</b> C_Field_Type <b>is</b> <b>access</b> <b>all</b> Low_Level_Field_Type;
-
- Null_Field_Type : <b>constant</b> C_Field_Type := <b>null</b>;
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | This four low-level fieldtypes are the ones associated with</EM></FONT>
- <FONT COLOR=green><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></FONT>
- <FONT COLOR=green><EM>-- | will result in a Form_Exception is function Get_Type.</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- 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>;
- 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> 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>
- 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>-- conformant Field_Type object.</EM></FONT>
- <FONT COLOR=green><EM>-- The parameter Cft must be C_Builtin_Router for regular low-level</EM></FONT>
- <FONT COLOR=green><EM>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</EM></FONT>
- <FONT COLOR=green><EM>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></FONT>
- <FONT COLOR=green><EM>-- Any other value will raise a Form_Exception.</EM></FONT>
-
- <b>function</b> Make_Arg (Args : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, Make_Arg);
- <FONT COLOR=green><EM>-- This is the Makearg_Function for the internal low-level types</EM></FONT>
- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
-
- <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>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>procedure</b> Free_Arg (Usr : System.Address);
- <b>pragma</b> Convention (C, Free_Arg);
- <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>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>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>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>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>-- type. It routes the call to the corresponding low-level prev_choice</EM></FONT>
- <FONT COLOR=green><EM>-- function.</EM></FONT>
-
- <FONT COLOR=green><EM>-- This is the Argument structure maintained by all low-level field types</EM></FONT>
- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
- <b>type</b> 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>
- 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>-- |</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>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>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>return</b> C_Int;
- <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
deleted file mode 100644
index c5fd816..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
+++ /dev/null
@@ -1,90 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_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>;
-
-<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>
- <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>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");
-
- <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>);
- <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>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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#72_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_28">Fld</A>);
- <b>end</b> 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>is</b>
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_29">Fld</A>);
- <b>end</b> Get_User_Data;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
deleted file mode 100644
index 07e5643..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-
-<b>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>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>-- | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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>;
- Data : <b>out</b> User_Access);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Fld : <b>in</b> Field) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Sama as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
deleted file mode 100644
index 46d298a..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
+++ /dev/null
@@ -1,91 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<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>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>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>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");
-
- <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>);
- <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>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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#73_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_28">Frm</A>);
- <b>end</b> 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>is</b>
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_29">Frm</A>);
- <b>end</b> Get_User_Data;
-
-<b>end</b> Terminal_Interface.Curses.Forms.Form_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
deleted file mode 100644
index 3f03f43..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-
-<b>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>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>-- | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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>;
- Data : <b>out</b> User_Access);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Frm : <b>in</b> Form) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Forms.Form_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__adb.htm
deleted file mode 100644
index 087bf55..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__adb.htm
+++ /dev/null
@@ -1,1165 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.20 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> Ada.Unchecked_Conversion;
-
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
-
-<b>with</b> <A HREF="terminal_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>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>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>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>);
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></FONT>
-
- <b>function</b> <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="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="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="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>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>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>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>);
- <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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#91_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#281_28">Key</A>)));
- <b>end</b> 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>-- | man page form_field_new.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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>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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#117_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>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>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");
-
- <FONT COLOR=red><A NAME="135_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#135_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#132_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#317_22">Fld</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#135_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#135_7">Res</A>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms__ads.htm#317_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>;
- <b>end</b> 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>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>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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#155_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>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>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>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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#176_7">F</A>;
- <b>end</b> Link;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_field_just.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <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>)));
- <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>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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#212_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#347_32">Fld</A>));
- <b>end</b> Get_Justification;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_field_buffer.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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>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>);
- <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>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>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>);
- <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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#265_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#371_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#372_7">Buffer</A>)));
- <b>end</b> 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>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");
-
- <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>));
- <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>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>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");
-
- <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>);
- <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>return</b> False;
- <b>else</b>
- <b>return</b> True;
- <b>end</b> <b>if</b>;
- <b>end</b> Changed;
- <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>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");
-
- <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>));
- <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>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>-- | man page form_field_opts.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <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>;
- <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>);
- <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>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>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>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>);
- <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>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>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");
-
- <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>);
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#414_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#68_13">CInt_2_FOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#376_7">Res</A>);
- <b>end</b> 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>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>;
- <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>;
- <b>end</b> Get_Options;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_field_attributes.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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>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>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>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>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>;
- <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>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>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>;
- <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>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>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>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>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>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>;
- <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>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>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>;
- <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>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");
-
- <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>)));
- <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>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>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>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#475_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#506_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#474_29">Fld</A>));
- <b>end</b> Pad_Character;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_field_info.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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>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>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>);
- <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>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>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>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>);
- <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>-- | man page form_win.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#602_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>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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#630_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>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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms__ads.htm#530_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#645_10">Y</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#531_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#645_7">X</A>);
- <b>end</b> Scale;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page menu_hook.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <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>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>-- | man page form_fields.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <FONT COLOR=red><A NAME="736_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <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>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>);
- <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>is</b>
- <b>use</b> <A HREF="terminal_interface-curses-forms__adb.htm#55_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");
-
- 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>);
- <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>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>;
- <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>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>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#773_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#609_26">Frm</A>));
- <b>end</b> 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>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");
-
- <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>));
- <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>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>-- | man page form_new.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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");
-
- <FONT COLOR=red><A NAME="806_7">M</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <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>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>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#806_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>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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms__ads.htm#636_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A>;
- <b>end</b> Delete;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_opts.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <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>;
- <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>);
- <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>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>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>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>);
- <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>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>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");
-
- <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>);
- <b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#661_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#76_13">CInt_2_FrmOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#891_7">Res</A>);
- <b>end</b> 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>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>;
- <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>;
- <b>end</b> Get_Options;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_post.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <FONT COLOR=red><A NAME="920_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#675_20">Post</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#915_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#674_20">Frm</A>);
- <b>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>);
- <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>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>-- | man page form_cursor.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <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>);
- <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>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>-- | man page form_data.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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");
-
- <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>);
- <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>return</b> False;
- <b>else</b>
- <b>return</b> True;
- <b>end</b> <b>if</b>;
- <b>end</b> Data_Ahead;
- <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>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");
-
- <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>);
- <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>return</b> False;
- <b>else</b>
- <b>return</b> True;
- <b>end</b> <b>if</b>;
- <b>end</b> Data_Behind;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_driver.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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");
-
- <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>));
- <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>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>;
- <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>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>-- | man page form_page.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#1042_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>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>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");
-
- <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>));
- <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>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>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");
-
- <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>);
- <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>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>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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#1086_7">Res</A>) + Positive'First);
- <b>end</b> Get_Index;
-
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_new_page.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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");
-
- <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>));
- <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>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>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");
-
- <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>);
- <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>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>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>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>end</b> <b>if</b>;
- <b>end</b> <b>loop</b>;
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms__adb.htm#1133_17">Release</A> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A>);
- <b>end</b> 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>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>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>is</b>
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#665_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A>);
- <b>end</b> Default_Form_Options;
-
-<b>end</b> Terminal_Interface.Curses.Forms;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__ads.htm
deleted file mode 100644
index a28c4ec..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-forms__ads.htm
+++ /dev/null
@@ -1,783 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Form --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.24 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- form binding.</EM></FONT>
-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> System;
-<b>with</b> Ada.Characters.Latin_1;
-
-<b>package</b> Terminal_Interface.Curses.Forms <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms);
- <b>pragma</b> Linker_Options ("-lform");
- <b>pragma</b> Linker_Options ("-lncurses");
-
- 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> 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>;
- Null_Form : <b>constant</b> Form;
-
- <b>type</b> Field_Justification <b>is</b> (None,
- Left,
- Center,
- Right);
-
- <b>pragma</b> Warnings (Off);
- <b>type</b> Field_Option_Set <b>is</b>
- <b>record</b>
- <FONT COLOR=red><A NAME="70_10">Visible</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="71_10">Active</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="72_10">Public</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="73_10">Edit</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="74_10">Wrap</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="75_10">Blank</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="76_10">Auto_Skip</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="77_10">Null_Ok</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="78_10">Pass_Ok</A></FONT> : Boolean;
- Static : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#67_9">;</A>
- <b>pragma</b> Pack (Field_Option_Set);
- <b>pragma</b> Convention (C, Field_Option_Set);
-
- <b>for</b> Field_Option_Set <b>use</b>
- <b>record</b>
- Visible <b>at</b> 0 <b>range</b> 0 .. 0;
- Active <b>at</b> 0 <b>range</b> 1 .. 1;
- Public <b>at</b> 0 <b>range</b> 2 .. 2;
- Edit <b>at</b> 0 <b>range</b> 3 .. 3;
- Wrap <b>at</b> 0 <b>range</b> 4 .. 4;
- Blank <b>at</b> 0 <b>range</b> 5 .. 5;
- Auto_Skip <b>at</b> 0 <b>range</b> 6 .. 6;
- Null_Ok <b>at</b> 0 <b>range</b> 7 .. 7;
- Pass_Ok <b>at</b> 0 <b>range</b> 8 .. 8;
- Static <b>at</b> 0 <b>range</b> 9 .. 9;
- <b>end</b> <b>record</b>;
- <b>for</b> Field_Option_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.Dnl</EM></FONT>
-
- <b>pragma</b> Warnings (On);
-
- <b>function</b> Default_Field_Options <b>return</b> Field_Option_Set;
- <FONT COLOR=green><EM>-- The initial defaults for the field options.</EM></FONT>
- <b>pragma</b> Inline (Default_Field_Options);
-
- <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;
- BS_Overload : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#107_9">;</A>
- <b>pragma</b> Pack (Form_Option_Set);
- <b>pragma</b> Convention (C, Form_Option_Set);
-
- <b>for</b> Form_Option_Set <b>use</b>
- <b>record</b>
- NL_Overload <b>at</b> 0 <b>range</b> 0 .. 0;
- BS_Overload <b>at</b> 0 <b>range</b> 1 .. 1;
- <b>end</b> <b>record</b>;
- <b>for</b> Form_Option_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.Dnl</EM></FONT>
-
- <b>pragma</b> Warnings (On);
-
- <b>function</b> Default_Form_Options <b>return</b> Form_Option_Set;
- <FONT COLOR=green><EM>-- The initial defaults for the form options.</EM></FONT>
- <b>pragma</b> Inline (Default_Form_Options);
-
- <b>type</b> Buffer_Number <b>is</b> <b>new</b> Natural;
-
- <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> Field;
- <b>pragma</b> Convention (C, 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;
- 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>
- <FONT COLOR=green><EM>-- the array.</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;
- 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;
- 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;
- 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;
- 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;
- 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;
- 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;
- F_Previous_Choice : <b>constant</b> Form_Request_Code := Key_Max + 57;
-
- <FONT COLOR=green><EM>-- For those who like the old 'C' style request names</EM></FONT>
- <FONT COLOR=red><A NAME="214_4">REQ_NEXT_PAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#147_4">F_Next_Page</A>;
- <FONT COLOR=red><A NAME="215_4">REQ_PREV_PAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#148_4">F_Previous_Page</A>;
- <FONT COLOR=red><A NAME="216_4">REQ_FIRST_PAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#149_4">F_First_Page</A>;
- REQ_LAST_PAGE : Form_Request_Code <b>renames</b> F_Last_Page;
-
- <FONT COLOR=red><A NAME="219_4">REQ_NEXT_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#152_4">F_Next_Field</A>;
- <FONT COLOR=red><A NAME="220_4">REQ_PREV_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#153_4">F_Previous_Field</A>;
- <FONT COLOR=red><A NAME="221_4">REQ_FIRST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#154_4">F_First_Field</A>;
- <FONT COLOR=red><A NAME="222_4">REQ_LAST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#155_4">F_Last_Field</A>;
- <FONT COLOR=red><A NAME="223_4">REQ_SNEXT_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#156_4">F_Sorted_Next_Field</A>;
- <FONT COLOR=red><A NAME="224_4">REQ_SPREV_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#157_4">F_Sorted_Previous_Field</A>;
- <FONT COLOR=red><A NAME="225_4">REQ_SFIRST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#158_4">F_Sorted_First_Field</A>;
- <FONT COLOR=red><A NAME="226_4">REQ_SLAST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#159_4">F_Sorted_Last_Field</A>;
- <FONT COLOR=red><A NAME="227_4">REQ_LEFT_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#160_4">F_Left_Field</A>;
- <FONT COLOR=red><A NAME="228_4">REQ_RIGHT_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#161_4">F_Right_Field</A>;
- <FONT COLOR=red><A NAME="229_4">REQ_UP_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#162_4">F_Up_Field</A>;
- REQ_DOWN_FIELD : Form_Request_Code <b>renames</b> F_Down_Field;
-
- <FONT COLOR=red><A NAME="232_4">REQ_NEXT_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#165_4">F_Next_Char</A>;
- <FONT COLOR=red><A NAME="233_4">REQ_PREV_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#166_4">F_Previous_Char</A>;
- <FONT COLOR=red><A NAME="234_4">REQ_NEXT_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#167_4">F_Next_Line</A>;
- <FONT COLOR=red><A NAME="235_4">REQ_PREV_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#168_4">F_Previous_Line</A>;
- <FONT COLOR=red><A NAME="236_4">REQ_NEXT_WORD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#169_4">F_Next_Word</A>;
- <FONT COLOR=red><A NAME="237_4">REQ_PREV_WORD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#170_4">F_Previous_Word</A>;
- <FONT COLOR=red><A NAME="238_4">REQ_BEG_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#171_4">F_Begin_Field</A>;
- <FONT COLOR=red><A NAME="239_4">REQ_END_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#172_4">F_End_Field</A>;
- <FONT COLOR=red><A NAME="240_4">REQ_BEG_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#173_4">F_Begin_Line</A>;
- <FONT COLOR=red><A NAME="241_4">REQ_END_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#174_4">F_End_Line</A>;
- <FONT COLOR=red><A NAME="242_4">REQ_LEFT_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#175_4">F_Left_Char</A>;
- <FONT COLOR=red><A NAME="243_4">REQ_RIGHT_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#176_4">F_Right_Char</A>;
- <FONT COLOR=red><A NAME="244_4">REQ_UP_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#177_4">F_Up_Char</A>;
- REQ_DOWN_CHAR : Form_Request_Code <b>renames</b> F_Down_Char;
-
- <FONT COLOR=red><A NAME="247_4">REQ_NEW_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#180_4">F_New_Line</A>;
- <FONT COLOR=red><A NAME="248_4">REQ_INS_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#181_4">F_Insert_Char</A>;
- <FONT COLOR=red><A NAME="249_4">REQ_INS_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#182_4">F_Insert_Line</A>;
- <FONT COLOR=red><A NAME="250_4">REQ_DEL_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#183_4">F_Delete_Char</A>;
- <FONT COLOR=red><A NAME="251_4">REQ_DEL_PREV</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#184_4">F_Delete_Previous</A>;
- <FONT COLOR=red><A NAME="252_4">REQ_DEL_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#185_4">F_Delete_Line</A>;
- <FONT COLOR=red><A NAME="253_4">REQ_DEL_WORD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#186_4">F_Delete_Word</A>;
- <FONT COLOR=red><A NAME="254_4">REQ_CLR_EOL</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#187_4">F_Clear_EOL</A>;
- <FONT COLOR=red><A NAME="255_4">REQ_CLR_EOF</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#188_4">F_Clear_EOF</A>;
- <FONT COLOR=red><A NAME="256_4">REQ_CLR_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#189_4">F_Clear_Field</A>;
- <FONT COLOR=red><A NAME="257_4">REQ_OVL_MODE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#190_4">F_Overlay_Mode</A>;
- REQ_INS_MODE : Form_Request_Code <b>renames</b> F_Insert_Mode;
-
- <FONT COLOR=red><A NAME="260_4">REQ_SCR_FLINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#194_4">F_ScrollForward_Line</A>;
- <FONT COLOR=red><A NAME="261_4">REQ_SCR_BLINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#195_4">F_ScrollBackward_Line</A>;
- <FONT COLOR=red><A NAME="262_4">REQ_SCR_FPAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#196_4">F_ScrollForward_Page</A>;
- <FONT COLOR=red><A NAME="263_4">REQ_SCR_BPAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#197_4">F_ScrollBackward_Page</A>;
- <FONT COLOR=red><A NAME="264_4">REQ_SCR_FHPAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#198_4">F_ScrollForward_HalfPage</A>;
- REQ_SCR_BHPAGE : Form_Request_Code <b>renames</b> F_ScrollBackward_HalfPage;
-
- <FONT COLOR=red><A NAME="267_4">REQ_SCR_FCHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#202_4">F_HScrollForward_Char</A>;
- <FONT COLOR=red><A NAME="268_4">REQ_SCR_BCHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#203_4">F_HScrollBackward_Char</A>;
- <FONT COLOR=red><A NAME="269_4">REQ_SCR_HFLINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#204_4">F_HScrollForward_Line</A>;
- <FONT COLOR=red><A NAME="270_4">REQ_SCR_HBLINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#205_4">F_HScrollBackward_Line</A>;
- <FONT COLOR=red><A NAME="271_4">REQ_SCR_HFHALF</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#206_4">F_HScrollForward_HalfLine</A>;
- REQ_SCR_HBHALF : Form_Request_Code <b>renames</b> F_HScrollBackward_HalfLine;
-
- <FONT COLOR=red><A NAME="274_4">REQ_VALIDATION</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#209_4">F_Validate_Field</A>;
- <FONT COLOR=red><A NAME="275_4">REQ_NEXT_CHOICE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#210_4">F_Next_Choice</A>;
- REQ_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;
- Name : <b>out</b> String);
-
- <b>function</b> Request_Name (Key : Form_Request_Code) <b>return</b> String;
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Request_Name);
-
- <FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
- <FONT COLOR=green><EM>------------------</EM></FONT>
- Form_Exception : <b>exception</b>;
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> 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;
- 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;
- 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>
- <b>pragma</b> Inline (New_Field);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>procedure</b> Delete (Fld : <b>in</b> <b>out</b> Field);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Reset Fld to Null_Field</EM></FONT>
- <FONT COLOR=green><EM>-- An overloaded Delete is defined later. Pragma Inline appears there.</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>function</b> 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>;
- 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>;
- 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>-- | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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_7"#2|</EM></FONT>
- <b>function</b> Get_Justification (Fld : Field) <b>return</b> Field_Justification;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Justification);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
- <b>procedure</b> 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;
- 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;
- 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>;
- 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;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
- <b>function</b> Changed (Fld : Field) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></FONT>
- <b>pragma</b> Inline (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;
- 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>-- | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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;
- 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>;
- 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_16"#2|</EM></FONT>
- <b>function</b> Get_Options (Fld : Field := Null_Field)
- <b>return</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>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
- <b>procedure</b> 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;
- 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>;
- 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>;
- 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;
- 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>;
- 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>;
- 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;
- 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;
- 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>-- | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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;
- 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>-- | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT>
- <b>function</b> Get_Window (Frm : Form) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_win()</A></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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
- <b>function</b> Get_Sub_Window (Frm : Form) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></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>;
- 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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> Form_Hook_Function <b>is</b> <b>access</b> <b>procedure</b> (Frm : <b>in</b> Form);
- <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>;
- 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>;
- 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>;
- 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>;
- 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>-- #1A NAME="AFU_36"#2|</EM></FONT>
- <b>function</b> Get_Field_Init_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></FONT>
- <b>pragma</b> Import (C, Get_Field_Init_Hook, "field_init");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT>
- <b>function</b> Get_Field_Term_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></FONT>
- <b>pragma</b> Import (C, Get_Field_Term_Hook, "field_term");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT>
- <b>function</b> Get_Form_Init_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></FONT>
- <b>pragma</b> Import (C, Get_Form_Init_Hook, "form_init");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT>
- <b>function</b> Get_Form_Term_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></FONT>
- <b>pragma</b> Import (C, Get_Form_Term_Hook, "form_term");
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field.3x.html">form_field.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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>;
- 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;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT>
- <b>function</b> Field_Count (Frm : Form) <b>return</b> Natural;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></FONT>
- <b>pragma</b> Inline (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>;
- 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>-- | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT>
- <b>function</b> Create (Fields : Field_Array_Access) <b>return</b> Form;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
- <b>pragma</b> Inline (Create);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
- <b>function</b> New_Form (Fields : Field_Array_Access) <b>return</b> Form
- <b>renames</b> Create;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
- <b>pragma</b> Inline (New_Form);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
- <b>procedure</b> Delete (Frm : <b>in</b> <b>out</b> Form);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Reset Frm to Null_Form</EM></FONT>
- <b>pragma</b> Inline (Delete);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_opts.3x.html">form_opts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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;
- 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>;
- 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>-- #1A NAME="AFU_51"#2|</EM></FONT>
- <b>function</b> Get_Options (Frm : Form := Null_Form) <b>return</b> Form_Option_Set;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Options);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_post.3x.html">form_post.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT>
- <b>procedure</b> Post (<FONT COLOR=red><A NAME="675_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>
- <b>pragma</b> Inline (Post);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
- <b>procedure</b> Position_Cursor (Frm : Form);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></FONT>
- <b>pragma</b> Inline (Position_Cursor);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
- <b>function</b> Data_Ahead (Frm : Form) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></FONT>
- <b>pragma</b> Inline (Data_Ahead);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
- <b>function</b> Data_Behind (Frm : Form) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></FONT>
- <b>pragma</b> Inline (Data_Behind);
-
- <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>,
- 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>;
- 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>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> 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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT>
- <b>function</b> Current (Frm : <b>in</b> Form) <b>return</b> Field;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">current_field()</A></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>;
- 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>-- #1A NAME="AFU_60"#2|</EM></FONT>
- <b>function</b> Page (Frm : Form) <b>return</b> Page_Number;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></FONT>
- <b>pragma</b> Inline (Page);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT>
- <b>function</b> Get_Index (Fld : Field) <b>return</b> Positive;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Please note that in this binding we start the numbering of fields</EM></FONT>
- <FONT COLOR=green><EM>-- with 1. So this is number is one more than you get from the low</EM></FONT>
- <FONT COLOR=green><EM>-- level call.</EM></FONT>
- <b>pragma</b> Inline (Get_Index);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT>
- <b>procedure</b> Set_New_Page (<FONT COLOR=red><A NAME="760_28">Fld</A></FONT> : <b>in</b> Field;
- New_Page : <b>in</b> Boolean := True);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></FONT>
- <b>pragma</b> Inline (Set_New_Page);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_63"#2|</EM></FONT>
- <b>function</b> Is_New_Page (Fld : Field) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></FONT>
- <b>pragma</b> Inline (Is_New_Page);
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <b>type</b> 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;
- Null_Form : <b>constant</b> Form := 0;
-
-<b>end</b> Terminal_Interface.Curses.Forms;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
deleted file mode 100644
index fc3aa79..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>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>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");
-
- <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>);
- <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>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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#64_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_28">Itm</A>);
- <b>end</b> 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>is</b>
- <b>begin</b>
- <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#64_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_29">Itm</A>);
- <b>end</b> Get_User_Data;
-
-<b>end</b> Terminal_Interface.Curses.Menus.Item_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
deleted file mode 100644
index 9249902..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-
-<b>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>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>-- The binding uses the same user pointer for menu items</EM></FONT>
- <FONT COLOR=green><EM>-- as the low level C implementation. So you can safely</EM></FONT>
- <FONT COLOR=green><EM>-- read or write the user pointer also with the C routines</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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>;
- Data : <b>out</b> User_Access);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Itm : <b>in</b> Item) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Menus.Item_User_Data;
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
deleted file mode 100644
index 5bd10d3..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_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>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>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>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");
-
- <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>);
- <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>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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#63_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_28">Men</A>);
- <b>end</b> 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>is</b>
- <b>begin</b>
- <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_29">Men</A>);
- <b>end</b> Get_User_Data;
-
-<b>end</b> Terminal_Interface.Curses.Menus.Menu_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
deleted file mode 100644
index a522b71..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-
-<b>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>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>-- | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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>;
- Data : <b>out</b> User_Access);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Men : <b>in</b> Menu) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Menus.Menu_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__adb.htm
deleted file mode 100644
index 7bb3b0e..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__adb.htm
+++ /dev/null
@@ -1,1026 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.20 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-
-<b>with</b> <A HREF="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.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>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>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>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="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="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="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>);
-
-<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>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>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>);
- <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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#87_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#108_28">Key</A>)));
- <b>end</b> 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>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="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="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>);
-
- <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>;
- <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>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Result</A>;
- <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>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="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");
-
- <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>;
- <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>);
- <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>);
- <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>);
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>;
- <b>end</b> 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>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");
-
- <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>));
- <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>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>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>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>return</b> False;
- <b>else</b>
- <b>return</b> True;
- <b>end</b> <b>if</b>;
- <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>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>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>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>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");
-
- <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>;
- <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>);
- <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>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");
-
- <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>;
- <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>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>);
- <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>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>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");
-
- <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>);
- <b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#253_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#71_13">CInt_2_IOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#236_7">Res</A>);
- <b>end</b> 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>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>;
- <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>;
- <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>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>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>);
- <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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#260_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#269_20">Itm</A>));
- <b>end</b> 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>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>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>);
- <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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#277_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#279_27">Itm</A>));
- <b>end</b> 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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#302_7">Res</A>;
- <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>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");
-
- <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>));
- <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>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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#329_7">Res</A>);
- <b>end</b> 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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#342_7">Res</A>) + Positive'First);
- <b>end</b> 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>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");
-
- <FONT COLOR=red><A NAME="358_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#324_20">Post</A> <b>then</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#353_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#323_20">Men</A>);
- <b>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>);
- <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>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>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");
-
- <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>;
- <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>);
- <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>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");
-
- <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>;
- <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>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>);
- <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>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>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");
-
- <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>);
- <b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#349_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#63_13">CInt_2_MOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#416_7">Res</A>);
- <b>end</b> 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>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>;
- <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>;
- <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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#448_7">W</A>;
- <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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#472_7">W</A>;
- <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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__ads.htm#385_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#486_10">Y</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#386_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#486_7">X</A>);
- <b>end</b> 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>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");
-
- <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>);
- <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>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>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>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>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>);
- <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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#539_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#414_20">Men</A>));
- <b>end</b> 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>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>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>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>;
- <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>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>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>;
- <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>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");
-
- <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>));
- <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>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>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>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>;
- <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>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>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>;
- <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>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");
-
- <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="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>));
- <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>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>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>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>;
- <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>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>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>;
- <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>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");
-
- <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>)));
- <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>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>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>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#492_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#681_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#491_29">Men</A>));
- <b>end</b> 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>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>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");
-
- <FONT COLOR=red><A NAME="716_7">D</A></FONT>, <FONT COLOR=red><A NAME="716_10">R</A></FONT>, <FONT COLOR=red><A NAME="716_13">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="717_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#712_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#509_23">Men</A>,
- <A HREF="terminal_interface-curses-menus__adb.htm#716_7">D</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-menus__adb.htm#716_10">R</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-menus__adb.htm#716_13">C</A>'<b>Access</b>);
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#717_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#717_7">Res</A>);
- <b>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>);
- <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>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>);
- <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>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>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>);
- <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>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");
-
- <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>));
- <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>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>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");
-
- <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>);
- <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>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>);
- <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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <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>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>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");
-
- <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>);
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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");
-
- <FONT COLOR=red><A NAME="896_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <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>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>);
- <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>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>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>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>is</b>
- <b>use</b> <A HREF="terminal_interface-curses-menus__adb.htm#53_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");
-
- 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>);
- <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>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>;
- <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>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");
-
- <FONT COLOR=red><A NAME="941_7">M</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <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>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>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#941_7">M</A>;
- <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>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");
-
- <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>);
- <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>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>;
- <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>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");
-
- <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>));
- <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>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>);
- <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>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>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>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>end</b> <b>if</b>;
- <b>end</b> <b>loop</b>;
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__adb.htm#994_17">Release</A> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A>);
- <b>end</b> 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>is</b>
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#353_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A>);
- <b>end</b> 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>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>end</b> Default_Item_Options;
-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-
-<b>end</b> Terminal_Interface.Curses.Menus;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__ads.htm
deleted file mode 100644
index 5a591da..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-menus__ads.htm
+++ /dev/null
@@ -1,673 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menu --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>-- menu binding.</EM></FONT>
-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> System;
-<b>with</b> Ada.Characters.Latin_1;
-
-<b>package</b> Terminal_Interface.Curses.Menus <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus);
- <b>pragma</b> Linker_Options ("-lmenu");
- <b>pragma</b> Linker_Options ("-lncurses");
-
- 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> 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>;
- 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;
- M_Previous_Match : <b>constant</b> Menu_Request_Code := Key_Max + 17;
-
- <FONT COLOR=green><EM>-- For those who like the old 'C' names for the request codes</EM></FONT>
- <FONT COLOR=red><A NAME="88_4">REQ_LEFT_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#69_4">M_Left_Item</A>;
- <FONT COLOR=red><A NAME="89_4">REQ_RIGHT_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#70_4">M_Right_Item</A>;
- <FONT COLOR=red><A NAME="90_4">REQ_UP_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#71_4">M_Up_Item</A>;
- <FONT COLOR=red><A NAME="91_4">REQ_DOWN_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#72_4">M_Down_Item</A>;
- <FONT COLOR=red><A NAME="92_4">REQ_SCR_ULINE</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#73_4">M_ScrollUp_Line</A>;
- <FONT COLOR=red><A NAME="93_4">REQ_SCR_DLINE</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#74_4">M_ScrollDown_Line</A>;
- <FONT COLOR=red><A NAME="94_4">REQ_SCR_DPAGE</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#75_4">M_ScrollDown_Page</A>;
- <FONT COLOR=red><A NAME="95_4">REQ_SCR_UPAGE</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#76_4">M_ScrollUp_Page</A>;
- <FONT COLOR=red><A NAME="96_4">REQ_FIRST_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#77_4">M_First_Item</A>;
- <FONT COLOR=red><A NAME="97_4">REQ_LAST_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#78_4">M_Last_Item</A>;
- <FONT COLOR=red><A NAME="98_4">REQ_NEXT_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#79_4">M_Next_Item</A>;
- <FONT COLOR=red><A NAME="99_4">REQ_PREV_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#80_4">M_Previous_Item</A>;
- <FONT COLOR=red><A NAME="100_4">REQ_TOGGLE_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#81_4">M_Toggle_Item</A>;
- <FONT COLOR=red><A NAME="101_4">REQ_CLEAR_PATTERN</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#82_4">M_Clear_Pattern</A>;
- <FONT COLOR=red><A NAME="102_4">REQ_BACK_PATTERN</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#83_4">M_Back_Pattern</A>;
- <FONT COLOR=red><A NAME="103_4">REQ_NEXT_MATCH</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#84_4">M_Next_Match</A>;
- REQ_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;
- Name : <b>out</b> String);
-
- <b>function</b> Request_Name (Key : Menu_Request_Code) <b>return</b> String;
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
-
- <FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
- <FONT COLOR=green><EM>------------------</EM></FONT>
-
- Menu_Exception : <b>exception</b>;
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Menu options</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <b>pragma</b> Warnings (Off);
- <b>type</b> 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;
- Non_Cyclic : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#120_9">;</A>
- <b>pragma</b> Pack (Menu_Option_Set);
- <b>pragma</b> Convention (C, Menu_Option_Set);
-
- <b>for</b> Menu_Option_Set <b>use</b>
- <b>record</b>
- One_Valued <b>at</b> 0 <b>range</b> 0 .. 0;
- Show_Descriptions <b>at</b> 0 <b>range</b> 1 .. 1;
- Row_Major_Order <b>at</b> 0 <b>range</b> 2 .. 2;
- Ignore_Case <b>at</b> 0 <b>range</b> 3 .. 3;
- Show_Matches <b>at</b> 0 <b>range</b> 4 .. 4;
- Non_Cyclic <b>at</b> 0 <b>range</b> 5 .. 5;
- <b>end</b> <b>record</b>;
- <b>for</b> Menu_Option_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);
-
- <b>function</b> Default_Menu_Options <b>return</b> Menu_Option_Set;
- <FONT COLOR=green><EM>-- Initial default options for a menu.</EM></FONT>
- <b>pragma</b> Inline (Default_Menu_Options);
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Item options</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <b>pragma</b> Warnings (Off);
- <b>type</b> Item_Option_Set <b>is</b>
- <b>record</b>
- Selectable : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#153_9">;</A>
- <b>pragma</b> Pack (Item_Option_Set);
- <b>pragma</b> Convention (C, Item_Option_Set);
-
- <b>for</b> Item_Option_Set <b>use</b>
- <b>record</b>
- Selectable <b>at</b> 0 <b>range</b> 0 .. 0;
- <b>end</b> <b>record</b>;
- <b>for</b> Item_Option_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);
-
- <b>function</b> Default_Item_Options <b>return</b> Item_Option_Set;
- <FONT COLOR=green><EM>-- Initial default options for an item.</EM></FONT>
- <b>pragma</b> Inline (Default_Item_Options);
-
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Item Array</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> Item;
- <b>pragma</b> Convention (C, 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;
- 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>-- the array.</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> Create (<FONT COLOR=red><A NAME="193_21">Name</A></FONT> : String;
- Description : String := "") <b>return</b> Item;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Not inlined.</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> New_Item (<FONT COLOR=red><A NAME="199_23">Name</A></FONT> : String;
- <A HREF="terminal_interface-curses-menus__ads.htm#192_13"> </A> Description : String := "") <b>return</b> Item
- <b>renames</b> Create;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>procedure</b> Delete (Itm : <b>in</b> <b>out</b> Item);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Resets Itm to Null_Item</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>procedure</b> Set_Value (<FONT COLOR=red><A NAME="214_25">Itm</A></FONT> : <b>in</b> Item;
- Value : <b>in</b> Boolean := True);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></FONT>
- <b>pragma</b> Inline (Set_Value);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>function</b> Value (Itm : Item) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></FONT>
- <b>pragma</b> Inline (Value);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <b>function</b> Visible (Itm : Item) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></FONT>
- <b>pragma</b> Inline (Visible);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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;
- 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>-- An overloaded Switch_Options is defined later.</EM></FONT>
- <FONT COLOR=green><EM>-- Pragma Inline appears there</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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>-- #1A NAME="AFU_10"#2|</EM></FONT>
- <b>function</b> Get_Options (Itm : Item := Null_Item) <b>return</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>-- An overloaded Get_Options is defined later. Pragma Inline appears there</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
- <b>procedure</b> Name (<FONT COLOR=red><A NAME="267_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;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
- <b>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;
- Description : <b>out</b> String);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
-
- <b>function</b> Description (Itm : Item) <b>return</b> String;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
- <b>pragma</b> Inline (Description);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
- <b>function</b> Current (Men : Menu) <b>return</b> Item;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></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>;
- 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>-- #1A NAME="AFU_16"#2|</EM></FONT>
- <b>function</b> Top_Row (Men : Menu) <b>return</b> Line_Position;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></FONT>
- <b>pragma</b> Inline (Top_Row);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
- <b>function</b> Get_Index (Itm : Item) <b>return</b> Positive;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Please note that in this binding we start the numbering of items</EM></FONT>
- <FONT COLOR=green><EM>-- with 1. So this is number is one more than you get from the low</EM></FONT>
- <FONT COLOR=green><EM>-- level call.</EM></FONT>
- <b>pragma</b> Inline (Get_Index);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
- <b>procedure</b> Post (<FONT COLOR=red><A NAME="324_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>
- <b>pragma</b> Inline (Post);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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;
- 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>;
- 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>-- #1A NAME="AFU_22"#2|</EM></FONT>
- <b>function</b> Get_Options (Men : Menu := Null_Menu) <b>return</b> Menu_Option_Set;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Options);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_win.3x.html">menu_win.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT>
- <b>function</b> Get_Window (Men : Menu) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT>
- <b>function</b> Get_Sub_Window (Men : Menu) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></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>;
- 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>-- | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT>
- <b>procedure</b> Position_Cursor (Men : Menu);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></FONT>
- <b>pragma</b> Inline (Position_Cursor);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
- <b>procedure</b> Set_Mark (<FONT COLOR=red><A NAME="405_24">Men</A></FONT> : <b>in</b> Menu;
- Mark : <b>in</b> String);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></FONT>
- <b>pragma</b> Inline (Set_Mark);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
- <b>procedure</b> Mark (<FONT COLOR=red><A NAME="411_20">Men</A></FONT> : <b>in</b> Menu;
- Mark : <b>out</b> String);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
-
- <b>function</b> Mark (Men : Menu) <b>return</b> String;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
- <b>pragma</b> Inline (Mark);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT>
- <b>procedure</b> Set_Foreground
- (<FONT COLOR=red><A NAME="426_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#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;
- 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>;
- 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>;
- 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;
- 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>;
- 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>;
- 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;
- 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>;
- 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>;
- 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;
- 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;
- 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>-- | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT>
- <b>procedure</b> 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;
- 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>;
- 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>-- | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
- <b>function</b> Set_Pattern (<FONT COLOR=red><A NAME="522_26">Men</A></FONT> : Menu;
- Text : String) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Return TRUE if the pattern matches, FALSE otherwise</EM></FONT>
- <b>pragma</b> Inline (Set_Pattern);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT>
- <b>procedure</b> Pattern (<FONT COLOR=red><A NAME="529_23">Men</A></FONT> : <b>in</b> Menu;
- 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>-- | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
- <b>procedure</b> 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>;
- Columns : <b>in</b> Column_Count);
- <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>;
- 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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> Menu_Hook_Function <b>is</b> <b>access</b> <b>procedure</b> (Men : <b>in</b> Menu);
- <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>;
- 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>;
- 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>;
- 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>;
- 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>-- #1A NAME="AFU_52"#2|</EM></FONT>
- <b>function</b> Get_Item_Init_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Item_Init_Hook);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
- <b>function</b> Get_Item_Term_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Item_Term_Hook);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
- <b>function</b> Get_Menu_Init_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Menu_Init_Hook);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
- <b>function</b> Get_Menu_Term_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Menu_Term_Hook);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
- <b>procedure</b> 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>;
- 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>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;
- 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>-- #1A NAME="AFU_58"#2|</EM></FONT>
- <b>function</b> Item_Count (Men : Menu) <b>return</b> Natural;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></FONT>
- <b>pragma</b> Inline (Item_Count);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT>
- <b>function</b> Create (Items : Item_Array_Access) <b>return</b> Menu;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Not inlined</EM></FONT>
-
- <b>function</b> New_Menu (Items : Item_Array_Access) <b>return</b> Menu <b>renames</b> Create;
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT>
- <b>procedure</b> Delete (Men : <b>in</b> <b>out</b> Menu);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Reset Men to Null_Menu</EM></FONT>
- <FONT COLOR=green><EM>-- Not inlined</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></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>,
- 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>;
- 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>-- Driver is not inlined</EM></FONT>
-
-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <b>type</b> 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;
- Null_Menu : <b>constant</b> Menu := 0;
-
-<b>end</b> Terminal_Interface.Curses.Menus;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__adb.htm
deleted file mode 100644
index f6eeaee..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__adb.htm
+++ /dev/null
@@ -1,219 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-mouse.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.16 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> System;
-
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>;
-
-<b>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>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>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>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>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>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>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");
-
- <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>;
- <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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#71_7">Event</A>;
- <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>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>);
- <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>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>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));
- <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>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>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>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>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>;
- <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>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#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>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>;
- <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>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>;
- <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>;
- <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>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>;
- <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>);
- <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>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>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>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>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>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>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>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>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>end</b> Mouse_Interval;
-
-<b>end</b> Terminal_Interface.Curses.Mouse;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__ads.htm
deleted file mode 100644
index bfd6fe9..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-mouse__ads.htm
+++ /dev/null
@@ -1,225 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-mouse.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.19 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- mouse binding.</EM></FONT>
-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> System;
-
-<b>package</b> Terminal_Interface.Curses.Mouse <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Mouse);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- Please note, that in ncurses-1.9.9e documentation mouse support</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>
- <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>;
- 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>
- 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> 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>,
- 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);
- 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>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>function</b> Has_Mouse <b>return</b> Boolean;
- <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;
- 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>
- <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT>
- <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;
- 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>-- with the Empty_Mask constant</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <FONT COLOR=green><EM>-- There is one difference to mousmask(): we return the value of the</EM></FONT>
- <FONT COLOR=green><EM>-- old mask, that means the event mask value before this call.</EM></FONT>
- <b>function</b> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#57_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>procedure</b> End_Mouse (Mask : <b>in</b> Event_Mask := No_Events);
- <FONT COLOR=green><EM>-- Terminates the mouse, restores the specified event mask</EM></FONT>
- <b>pragma</b> Inline (End_Mouse);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> Get_Mouse <b>return</b> Mouse_Event;
- <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>;
- State : <b>out</b> Button_State);
- <FONT COLOR=green><EM>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></FONT>
- <FONT COLOR=green><EM>-- may not be identical to window coordinates.</EM></FONT>
- <b>pragma</b> Inline (Get_Event);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>procedure</b> Unget_Mouse (Event : <b>in</b> Mouse_Event);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></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;
- 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>pragma</b> Inline (Enclosed_In_Window);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>function</b> Mouse_Interval (Msec : Natural := 200) <b>return</b> Natural;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></FONT>
- <b>pragma</b> Inline (Mouse_Interval);
-
-<b>private</b>
- <b>type</b> Event_Mask <b>is</b> <b>new</b> Interfaces.C.unsigned_long;
-
- <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);
- 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);
- Bstate : Event_Mask;
- <b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C, Mouse_Event);
- <b>pragma</b> Pack (Mouse_Event);
-
- <b>for</b> Mouse_Event <b>use</b>
- <b>record</b>
- Id <b>at</b> 0 <b>range</b> 0 .. 15;
- X <b>at</b> 0 <b>range</b> 32 .. 63;
- Y <b>at</b> 0 <b>range</b> 64 .. 95;
- Z <b>at</b> 0 <b>range</b> 96 .. 127;
- Bstate <b>at</b> 0 <b>range</b> 128 .. 159;
- <b>end</b> <b>record</b>;
- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
-
- 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#;
- 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>;
- All_Events : <b>constant</b> Event_Mask := ALL_MOUSE_EVENTS;
-
-<b>end</b> Terminal_Interface.Curses.Mouse;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
deleted file mode 100644
index 3e77b2e..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> <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>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>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>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>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>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>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>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#65_16">Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_28">Pan</A>);
- <b>end</b> 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>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>);
- <b>end</b> Get_User_Data;
-
-<b>end</b> Terminal_Interface.Curses.Panels.User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
deleted file mode 100644
index 27e8d5b..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-
-<b>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>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> Set_User_Data (Pan : <b>in</b> Panel;
- 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;
- Data : <b>out</b> User_Access);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Pan : <b>in</b> Panel) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Panels.User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__adb.htm
deleted file mode 100644
index e3dca5e..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__adb.htm
+++ /dev/null
@@ -1,169 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-panels.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-
-<b>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>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>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");
-
- <FONT COLOR=red><A NAME="53_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#50_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#66_21">Win</A>);
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#53_4">Null_Panel</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A>;
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#107_7">Win</A>;
- <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>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>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>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>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>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>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>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>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>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>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>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>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-panels__ads.htm#138_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#53_4">Null_Panel</A>;
- <b>end</b> Delete;
-
-<b>end</b> Terminal_Interface.Curses.Panels;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__ads.htm
deleted file mode 100644
index 5e5c6df..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-panels__ads.htm
+++ /dev/null
@@ -1,152 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-panels.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.15 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> System;
-
-<b>package</b> Terminal_Interface.Curses.Panels <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels);
- <b>pragma</b> Linker_Options ("-lpanel");
- <b>pragma</b> Linker_Options ("-lncurses");
-
- <b>type</b> Panel <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>
- Null_Panel : <b>constant</b> Panel;
-
- <FONT COLOR=green><EM>-------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
- <FONT COLOR=green><EM>-------------------</EM></FONT>
-
- Panel_Exception : <b>exception</b>;
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> Create (Win : Window) <b>return</b> Panel;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Create);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> New_Panel (Win : Window) <b>return</b> Panel <b>renames</b> Create;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
- <b>pragma</b> Inline (New_Panel);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>procedure</b> Bottom (Pan : <b>in</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Bottom);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>procedure</b> Top (Pan : <b>in</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Top);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>procedure</b> Show (Pan : <b>in</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Show);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <b>procedure</b> Update_Panels;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></FONT>
- <b>pragma</b> Import (C, Update_Panels, "update_panels");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
- <b>procedure</b> Hide (Pan : <b>in</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Hide);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
- <b>function</b> Get_Window (Pan : Panel) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Window);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
- <b>function</b> Panel_Window (Pan : Panel) <b>return</b> Window <b>renames</b> Get_Window;
- <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>;
- 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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
- <b>function</b> Is_Hidden (Pan : Panel) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></FONT>
- <b>pragma</b> Inline (Is_Hidden);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
- <b>function</b> Above (Pan : Panel) <b>return</b> Panel;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></FONT>
- <b>pragma</b> Import (C, Above, "panel_above");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
- <b>function</b> Below (Pan : Panel) <b>return</b> Panel;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></FONT>
- <b>pragma</b> Import (C, Below, "panel_below");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
- <b>procedure</b> Delete (Pan : <b>in</b> <b>out</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Delete);
-
-<b>private</b>
- <b>type</b> Panel <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- Null_Panel : <b>constant</b> Panel := 0;
-
-<b>end</b> Terminal_Interface.Curses.Panels;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
deleted file mode 100644
index 14797f8..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
+++ /dev/null
@@ -1,133 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>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>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>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>;
-
- <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#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>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>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>
- <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>;
- <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>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>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>))
- := (<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>);
- <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>);
- <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>
- <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>))
- := (<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>);
- <b>end</b>;
- <b>end</b> <b>if</b>;
- <b>end</b> <b>if</b>;
- <b>end</b> <b>if</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>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>);
- <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;
- <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);
- <b>end</b> <b>if</b>;
- <b>end</b> Put_Buf;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Aux;
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
deleted file mode 100644
index 32e2e74..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>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>
- <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>end</b> Terminal_Interface.Curses.Text_IO.Aux;
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
deleted file mode 100644
index 67b5976..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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="terminal_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>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> <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>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>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>, ')');
- <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>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>);
- <b>end</b> Put;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Complex_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
deleted file mode 100644
index 03753a8..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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>use</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#44_17">Complex_Types</A>;
-
- <FONT COLOR=red><A NAME="50_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 2;
- <FONT COLOR=red><A NAME="51_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := Real'<b>Digits</b> - 1;
- <FONT COLOR=red><A NAME="52_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 3;
-
- <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#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>private</b>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_14">Put</A>);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Complex_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
deleted file mode 100644
index e458ec2..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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> <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>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>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>;
- <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>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#47_12">DIO</A>.Put (<A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Len</A>, False);
- <b>end</b> 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>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>);
- <b>end</b> Put;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Decimal_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
deleted file mode 100644
index ee9138e..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>
- <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>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>
-
- <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;
-
- <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#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>private</b>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_14">Put</A>);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Decimal_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
deleted file mode 100644
index 14d2332..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
+++ /dev/null
@@ -1,85 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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> <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>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>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;
- <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>else</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Tset</A> := Ada.Text_IO.Lower_Case;
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#48_12">EIO</A>.Put (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Tset</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A> = <A HREF="terminal_interface-curses-text_io__ads.htm#53_46">Mixed_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>'First) := To_Upper (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>'First));
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#52_7">Width</A>, True, True);
- <b>end</b> 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>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>);
- <b>end</b> Put;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
deleted file mode 100644
index 8bb95d8..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Enum</A></FONT> <b>is</b> (&lt;&gt;);
-
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Enumeration_IO</A></FONT> <b>is</b>
-
- <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>;
-
- <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#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>private</b>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14">Put</A>);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
deleted file mode 100644
index 7e81c22..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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> <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>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>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>;
- <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>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#47_12">FIXIO</A>.Put (<A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Len</A>, False);
- <b>end</b> 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>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>);
- <b>end</b> Put;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Fixed_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
deleted file mode 100644
index f5ac125..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt;;
-
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Fixed_IO</A></FONT> <b>is</b>
-
- <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;
-
- <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#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>private</b>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_14">Put</A>);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Fixed_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
deleted file mode 100644
index d344cec..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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> <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>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>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>;
- <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>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#47_12">FIO</A>.Put (<A HREF="terminal_interface-curses-text_io-float_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Len</A>, False);
- <b>end</b> 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>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>);
- <b>end</b> Put;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Float_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
deleted file mode 100644
index 3e5a7f0..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>digits</b> &lt;&gt;;
-
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Float_IO</A></FONT> <b>is</b>
-
- <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;
-
- <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#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>private</b>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A>);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Float_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
deleted file mode 100644
index 0264fa5..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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> <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>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>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);
- <b>begin</b>
- <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#47_12">IIO</A>.Put (<A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#53_7">Base</A>);
- <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#52_7">Width</A>);
- <b>end</b> 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>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>);
- <b>end</b> Put;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Integer_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
deleted file mode 100644
index 9816bd2..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>range</b> &lt;&gt;;
-
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Integer_IO</A></FONT> <b>is</b>
-
- <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;
-
- <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#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>private</b>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_14">Put</A>);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Integer_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
deleted file mode 100644
index a2535eb..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
+++ /dev/null
@@ -1,75 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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> 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>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> <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>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>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);
- <b>begin</b>
- <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#47_12">MIO</A>.Put (<A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#53_7">Base</A>);
- <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#52_7">Width</A>);
- <b>end</b> 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>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>);
- <b>end</b> Put;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Modular_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
deleted file mode 100644
index 84bc5ea..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
+++ /dev/null
@@ -1,68 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>mod</b> &lt;&gt;;
-
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Modular_IO</A></FONT> <b>is</b>
-
- <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;
-
- <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#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>private</b>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_14">Put</A>);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Modular_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__adb.htm
deleted file mode 100644
index f38ec16..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__adb.htm
+++ /dev/null
@@ -1,341 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <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>
-
- <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>;
-
- <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>is</b>
- <b>begin</b>
- <A HREF="terminal_interface-curses-text_io__adb.htm#43_4">Default_Window</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#59_26">Win</A>;
- <b>end</b> 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>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>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#43_4">Default_Window</A>;
- <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>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>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>);
- <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>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>);
- <b>end</b> Flush;
-
- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT>
- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
-
- <FONT COLOR=green><EM>-- There are no set routines in this package. I assume, that you allocate</EM></FONT>
- <FONT COLOR=green><EM>-- the window with an appropriate size.</EM></FONT>
- <FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT>
- <FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT>
-
- <b>function</b> <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>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>;
- <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>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#86_7">N_Cols</A>);
- <b>end</b> 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>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>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>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>;
- <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>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>;
- <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>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>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>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>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>);
- <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>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>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);
- <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>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>);
- <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>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>);
- <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>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>);
- <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>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;
- <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>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;
- <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>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))
- := (<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>);
- <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>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>);
- <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>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;
- <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>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;
- <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>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>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>);
- <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>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;
- <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>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A>);
- <b>end</b> 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>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>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>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;
- <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>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A>);
- <b>end</b> 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>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>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>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>;
- <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>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>);
- <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>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>);
- <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>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>;
- <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>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>);
- <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>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>);
- <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>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);
- <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>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>);
- <b>end</b> Put_Line;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__ads.htm
deleted file mode 100644
index 4e19b4b..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses-text_io__ads.htm
+++ /dev/null
@@ -1,141 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> 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>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="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>type</b> <FONT COLOR=red><A NAME="53_9">Type_Set</A></FONT> <b>is</b> (Lower_Case, Upper_Case, Mixed_Case);
-
- <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>);
- <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>;
- <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>;
-
- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT>
- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
-
- <FONT COLOR=green><EM>-- There are no set routines in this package. I assume, that you allocate</EM></FONT>
- <FONT COLOR=green><EM>-- the window with an appropriate size.</EM></FONT>
- <FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT>
- <FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT>
-
- <b>function</b> <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#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>;
-
- <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#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#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#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>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#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>;
-
- <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);
-
- <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#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#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);
-
- <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;
-
-<b>end</b> Terminal_Interface.Curses.Text_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses__adb.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses__adb.htm
deleted file mode 100644
index a0be638..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses__adb.htm
+++ /dev/null
@@ -1,2419 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>
-<b>with</b> System;
-
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
-<b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
-<b>with</b> Ada.Strings.Fixed;
-<b>with</b> Ada.Unchecked_Conversion;
-
-<b>package</b> <b>body</b> 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>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
- <b>use</b> <b>type</b> System.Bit_Order;
-
- <b>package</b> <FONT COLOR=red><A NAME="56_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
-
- <b>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>);
-
-<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>function</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<FONT COLOR=red><A NAME="68_28">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="69_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A> <b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="70_12">E_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>;
- <b>package</b> <FONT COLOR=red><A NAME="71_15">C_E_Array</A></FONT> <b>is</b> <b>new</b>
- <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>, <A HREF="terminal_interface-curses__adb.htm#70_12">E_Array</A>, <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>'Val (0));
- <b>use</b> <A HREF="terminal_interface-curses__adb.htm#71_15">C_E_Array</A>;
-
- <b>function</b> <FONT COLOR=red><A NAME="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);
-
- 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>);
- <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>else</b>
- P := P + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#66_28">Offset</A>);
- <b>return</b> P.<b>all</b>;
- <b>end</b> <b>if</b>;
- <b>end</b> W_Get_Element;
-
- <b>function</b> <FONT COLOR=red><A NAME="88_13">W_Get_Int</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
- <b>function</b> <FONT COLOR=red><A NAME="89_13">W_Get_Short</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>);
- <b>function</b> <FONT COLOR=red><A NAME="90_13">W_Get_Byte</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned_char);
-
-<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>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");
-
- <FONT COLOR=red><A NAME="98_7">Ch</A></FONT> : Character;
- <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>declare</b>
- <FONT COLOR=red><A NAME="108_16">S</A></FONT> : String (1 .. 1);
- <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>;
- <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>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>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>);
- <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>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");
-
- <FONT COLOR=red><A NAME="134_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#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>;
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>));
- <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>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>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>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>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>));
- <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>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>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>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>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>));
- <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>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>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>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>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>;
- <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>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>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>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");
-
- <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>);
- <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>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#355_7">W</A>;
- <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>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>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>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>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>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>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>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>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>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>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");
-
- <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;
- <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>;
- <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>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>);
- <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>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");
-
- <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);
- <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>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>;
- <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>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>);
- <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>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#381_4">Curses_Exception</A>;
- <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>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>);
- <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>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>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>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>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>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>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>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");
-
- <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>);
- <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>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>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>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>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>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>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>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>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>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));
- <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>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>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>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>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>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");
- <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>);
- <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>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>));
- <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>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>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>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>'
- (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>;
- <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>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");
-
- <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>,
- 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>;
- <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>else</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#381_4">Curses_Exception</A>;
- <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>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");
-
- <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>,
- 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>;
- <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>else</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#381_4">Curses_Exception</A>;
- <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>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>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>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>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");
-
- <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>);
- <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>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>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>);
- <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>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>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>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>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>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>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>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");
-
- <FONT COLOR=red><A NAME="789_7">Err</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#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>else</b>
- <A HREF="terminal_interface-curses__adb.htm#789_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#786_16">NoCbreak</A>;
- <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>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>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");
-
- <FONT COLOR=red><A NAME="808_7">Err</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#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>else</b>
- <A HREF="terminal_interface-curses__adb.htm#808_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#805_16">NoRaw</A>;
- <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>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>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");
-
- <FONT COLOR=red><A NAME="827_7">Err</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#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>else</b>
- <A HREF="terminal_interface-curses__adb.htm#827_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#824_16">NoEcho</A>;
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>else</b>
- <A HREF="terminal_interface-curses__adb.htm#889_17">No_Qiflush</A>;
- <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>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>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>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>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");
-
- <FONT COLOR=red><A NAME="918_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <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>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>);
- <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>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>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>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>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>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");
-
- <FONT COLOR=red><A NAME="955_7">Err</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#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>else</b>
- <A HREF="terminal_interface-curses__adb.htm#955_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#952_16">NoNL</A>;
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>));
- <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>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>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>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>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>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>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>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>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>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>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>;
- <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);
- <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>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>;
- <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);
- <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>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);
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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);
- <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>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);
- <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>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>);
- <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>);
- <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>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>);
- <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>);
- <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>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>);
- <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>);
- <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>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>);
- <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>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;
- <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>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");
-
- <FONT COLOR=red><A NAME="1422_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#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>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1422_7">W</A>;
- <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>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>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>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>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>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>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>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>));
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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");
-
- <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;
- <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>;
- <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>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>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");
-
- <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;
- <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>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>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>;
- <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; ' ');
- <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>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>);
- <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>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");
-
- <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;
- <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>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>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>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>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>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>));
- <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>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>);
- <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>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");
-
- <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;
- <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>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>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>;
- <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; ' ');
- <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>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>);
- <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>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>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>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>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");
-
- <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;
- <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>;
- <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>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>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>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>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>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>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>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>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>);
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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");
-
- <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);
- <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>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>));
- <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>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>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");
-
- <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>);
- <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>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>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");
-
- <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>;
- <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>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>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");
-
- <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>;
- <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>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>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>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>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>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>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>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>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");
-
- <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;
- <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>;
- <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>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>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>);
- <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>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>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>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>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>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>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>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>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>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>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>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2051_16">Baud</A>);
- <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>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>begin</b>
- <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2059_16">Erasechar</A>);
- <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>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>begin</b>
- <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2067_16">Killchar</A>);
- <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>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>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>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>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>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>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>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");
-
- <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>);
- <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>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>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>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>);
- <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>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>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>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>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>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>);
- <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>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>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>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>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>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>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>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>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>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");
-
- <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>;
- <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>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>);
- <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>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>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>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>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>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>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>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>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>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>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="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");
-
- <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>;
- <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>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>);
- <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>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");
-
- <FONT COLOR=red><A NAME="2252_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <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>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>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>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");
-
- <FONT COLOR=red><A NAME="2270_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <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>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>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>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>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>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>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>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>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>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>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>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>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");
-
- <FONT COLOR=red><A NAME="2318_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <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>);
- <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>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>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>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>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");
- <b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2339_7">Stdscr</A>;
- <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>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");
- <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>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>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");
- <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>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>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");
- <b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2363_7">C_Tab_Size</A>);
- <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>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");
- <b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2371_7">C_Number_Of_Colors</A>);
- <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>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");
- <b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2379_7">C_Number_Of_Color_Pairs</A>);
- <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>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>);
- <b>end</b> <b>if</b>;
- <b>end</b> Transform_Coordinates;
-
-<b>end</b> Terminal_Interface.Curses;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface-curses__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface-curses__ads.htm
deleted file mode 100644
index bc66508..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface-curses__ads.htm
+++ /dev/null
@@ -1,1744 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</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>
-<FONT COLOR=green><EM>-- curses binding.</EM></FONT>
-<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">System</A>.Storage_Elements;
-<b>with</b> Interfaces.C; <FONT COLOR=green><EM>-- We need this for some assertions.</EM></FONT>
-
-<b>package</b> Terminal_Interface.Curses <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses);
- <b>pragma</b> Linker_Options ("-lncurses");
-
- <FONT COLOR=red><A NAME="53_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>-- Major version of the library</EM></FONT>
- <FONT COLOR=red><A NAME="54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 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;
-
- <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> 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>-- Type to count lines. We do not allow null windows, so must be positive</EM></FONT>
- <b>subtype</b> Column_Count <b>is</b> Column_Position <b>range</b> 1 .. Column_Position'Last;
- <FONT COLOR=green><EM>-- Type to count columns. We do not allow null windows, so must be positive</EM></FONT>
-
- <b>type</b> Key_Code <b>is</b> <b>new</b> Natural;
- <FONT COLOR=green><EM>-- That is anything including real characters, special keys and logical</EM></FONT>
- <FONT COLOR=green><EM>-- request codes.</EM></FONT>
-
- <b>subtype</b> Real_Key_Code <b>is</b> Key_Code <b>range</b> 0 .. 8#777#;
- <FONT COLOR=green><EM>-- This are the codes that potentially represent a real keystroke.</EM></FONT>
- <FONT COLOR=green><EM>-- Not all codes may be possible on a specific terminal. To check the</EM></FONT>
- <FONT COLOR=green><EM>-- availability of a special key, the Has_Key function is provided.</EM></FONT>
-
- <b>subtype</b> Special_Key_Code <b>is</b> Real_Key_Code
- <b>range</b> 8#400# .. Real_Key_Code'Last;
- <FONT COLOR=green><EM>-- Type for a function- or special key number</EM></FONT>
-
- <b>subtype</b> Normal_Key_Code <b>is</b> Real_Key_Code <b>range</b>
- Character'Pos (Character'First) .. Character'Pos (Character'Last);
- <FONT COLOR=green><EM>-- This are the codes for regular (incl. non-graphical) characters.</EM></FONT>
-
- <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#;
- Key_Resize : <b>constant</b> Special_Key_Code := 8#632#;
-
- Key_Max : <b>constant</b> Special_Key_Code
- := Special_Key_Code'Last;
-
- <b>subtype</b> User_Key_Code <b>is</b> Key_Code
- <b>range</b> (Key_Max + 129) .. Key_Code'Last;
- <FONT COLOR=green><EM>-- This is reserved for user defined key codes. The range between Key_Max</EM></FONT>
- <FONT COLOR=green><EM>-- and the first user code is reserved for subsystems like menu and forms.</EM></FONT>
-
- <FONT COLOR=green><EM>-- For those who like to use the original key names we produce them were</EM></FONT>
- <FONT COLOR=green><EM>-- they differ from the original. Please note that they may differ in</EM></FONT>
- <FONT COLOR=green><EM>-- lower/upper case.</EM></FONT>
- <FONT COLOR=red><A NAME="217_4">KEY_DOWN</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#91_4">Key_Cursor_Down</A>;
- <FONT COLOR=red><A NAME="218_4">KEY_UP</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#92_4">Key_Cursor_Up</A>;
- <FONT COLOR=red><A NAME="219_4">KEY_LEFT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#93_4">Key_Cursor_Left</A>;
- <FONT COLOR=red><A NAME="220_4">KEY_RIGHT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#121_4">Key_Cursor_Right</A>;
- <FONT COLOR=red><A NAME="221_4">KEY_DL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#122_4">Key_Delete_Line</A>;
- <FONT COLOR=red><A NAME="222_4">KEY_IL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#123_4">Key_Insert_Line</A>;
- <FONT COLOR=red><A NAME="223_4">KEY_DC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#124_4">Key_Delete_Char</A>;
- <FONT COLOR=red><A NAME="224_4">KEY_IC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#125_4">Key_Insert_Char</A>;
- <FONT COLOR=red><A NAME="225_4">KEY_EIC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#126_4">Key_Exit_Insert_Mode</A>;
- <FONT COLOR=red><A NAME="226_4">KEY_CLEAR</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#127_4">Key_Clear_Screen</A>;
- <FONT COLOR=red><A NAME="227_4">KEY_EOS</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#128_4">Key_Clear_End_Of_Screen</A>;
- <FONT COLOR=red><A NAME="228_4">KEY_EOL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#129_4">Key_Clear_End_Of_Line</A>;
- <FONT COLOR=red><A NAME="229_4">KEY_SF</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#130_4">Key_Scroll_1_Forward</A>;
- <FONT COLOR=red><A NAME="230_4">KEY_SR</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#131_4">Key_Scroll_1_Backward</A>;
- <FONT COLOR=red><A NAME="231_4">KEY_NPAGE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#132_4">Key_Next_Page</A>;
- <FONT COLOR=red><A NAME="232_4">KEY_PPAGE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#133_4">Key_Previous_Page</A>;
- <FONT COLOR=red><A NAME="233_4">KEY_STAB</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#134_4">Key_Set_Tab</A>;
- <FONT COLOR=red><A NAME="234_4">KEY_CTAB</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#135_4">Key_Clear_Tab</A>;
- <FONT COLOR=red><A NAME="235_4">KEY_CATAB</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#136_4">Key_Clear_All_Tabs</A>;
- <FONT COLOR=red><A NAME="236_4">KEY_ENTER</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#137_4">Key_Enter_Or_Send</A>;
- <FONT COLOR=red><A NAME="237_4">KEY_SRESET</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#140_4">Key_Soft_Reset</A>;
- <FONT COLOR=red><A NAME="238_4">KEY_LL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#141_4">Key_Bottom</A>;
- <FONT COLOR=red><A NAME="239_4">KEY_A1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#142_4">Key_Upper_Left_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="240_4">KEY_A3</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#143_4">Key_Upper_Right_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="241_4">KEY_B2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#144_4">Key_Center_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="242_4">KEY_C1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#145_4">Key_Lower_Left_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="243_4">KEY_C3</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#146_4">Key_Lower_Right_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="244_4">KEY_BTAB</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#147_4">Key_Back_Tab</A>;
- <FONT COLOR=red><A NAME="245_4">KEY_BEG</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#171_4">Key_Beginning</A>;
- <FONT COLOR=red><A NAME="246_4">KEY_SBEG</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#172_4">Key_Shift_Begin</A>;
- <FONT COLOR=red><A NAME="247_4">KEY_SCANCEL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#173_4">Key_Shift_Cancel</A>;
- <FONT COLOR=red><A NAME="248_4">KEY_SCOMMAND</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#174_4">Key_Shift_Command</A>;
- <FONT COLOR=red><A NAME="249_4">KEY_SCOPY</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#175_4">Key_Shift_Copy</A>;
- <FONT COLOR=red><A NAME="250_4">KEY_SCREATE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#176_4">Key_Shift_Create</A>;
- <FONT COLOR=red><A NAME="251_4">KEY_SDC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#177_4">Key_Shift_Delete_Char</A>;
- <FONT COLOR=red><A NAME="252_4">KEY_SDL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#179_4">Key_Shift_Delete_Line</A>;
- <FONT COLOR=red><A NAME="253_4">KEY_SEND</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#180_4">Key_Shift_End</A>;
- <FONT COLOR=red><A NAME="254_4">KEY_SEOL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#181_4">Key_Shift_Clear_End_Of_Line</A>;
- <FONT COLOR=red><A NAME="255_4">KEY_SEXIT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#182_4">Key_Shift_Exit</A>;
- <FONT COLOR=red><A NAME="256_4">KEY_SFIND</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#183_4">Key_Shift_Find</A>;
- <FONT COLOR=red><A NAME="257_4">KEY_SHELP</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#184_4">Key_Shift_Help</A>;
- <FONT COLOR=red><A NAME="258_4">KEY_SHOME</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#185_4">Key_Shift_Home</A>;
- <FONT COLOR=red><A NAME="259_4">KEY_SIC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#186_4">Key_Shift_Insert_Char</A>;
- <FONT COLOR=red><A NAME="260_4">KEY_SLEFT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#187_4">Key_Shift_Cursor_Left</A>;
- <FONT COLOR=red><A NAME="261_4">KEY_SMESSAGE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#188_4">Key_Shift_Message</A>;
- <FONT COLOR=red><A NAME="262_4">KEY_SMOVE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#189_4">Key_Shift_Move</A>;
- <FONT COLOR=red><A NAME="263_4">KEY_SNEXT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#190_4">Key_Shift_Next_Page</A>;
- <FONT COLOR=red><A NAME="264_4">KEY_SOPTIONS</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#191_4">Key_Shift_Options</A>;
- <FONT COLOR=red><A NAME="265_4">KEY_SPREVIOUS</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#192_4">Key_Shift_Previous_Page</A>;
- <FONT COLOR=red><A NAME="266_4">KEY_SPRINT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#193_4">Key_Shift_Print</A>;
- <FONT COLOR=red><A NAME="267_4">KEY_SREDO</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#194_4">Key_Shift_Redo</A>;
- <FONT COLOR=red><A NAME="268_4">KEY_SREPLACE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#195_4">Key_Shift_Replace</A>;
- <FONT COLOR=red><A NAME="269_4">KEY_SRIGHT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#196_4">Key_Shift_Cursor_Right</A>;
- <FONT COLOR=red><A NAME="270_4">KEY_SRSUME</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#197_4">Key_Shift_Resume</A>;
- <FONT COLOR=red><A NAME="271_4">KEY_SSAVE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#198_4">Key_Shift_Save</A>;
- <FONT COLOR=red><A NAME="272_4">KEY_SSUSPEND</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#199_4">Key_Shift_Suspend</A>;
- KEY_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>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);
- <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>for</b> Color_Pair'Size <b>use</b> 8;
- <b>subtype</b> Redefinable_Color_Pair <b>is</b> Color_Pair <b>range</b> 1 .. 255;
- <FONT COLOR=green><EM>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></FONT>
- <FONT COLOR=green><EM>-- is fixed (Black & White). A color pair is simply a combination of</EM></FONT>
- <FONT COLOR=green><EM>-- two colors described by Color_Numbers, one for the foreground and</EM></FONT>
- <FONT COLOR=green><EM>-- the other for the background</EM></FONT>
-
- <b>type</b> Character_Attribute_Set <b>is</b>
- <b>record</b>
- <FONT COLOR=red><A NAME="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;
- Vertical : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses__ads.htm#304_9">;</A>
- <b>pragma</b> Pack (Character_Attribute_Set);
- <b>pragma</b> Convention (C, Character_Attribute_Set);
-
- <b>for</b> Character_Attribute_Set <b>use</b>
- <b>record</b>
- Stand_Out <b>at</b> 0 <b>range</b> 0 .. 0;
- Under_Line <b>at</b> 0 <b>range</b> 1 .. 1;
- Reverse_Video <b>at</b> 0 <b>range</b> 2 .. 2;
- Blink <b>at</b> 0 <b>range</b> 3 .. 3;
- Dim_Character <b>at</b> 0 <b>range</b> 4 .. 4;
- Bold_Character <b>at</b> 0 <b>range</b> 5 .. 5;
- Alternate_Character_Set <b>at</b> 0 <b>range</b> 6 .. 6;
- Invisible_Character <b>at</b> 0 <b>range</b> 7 .. 7;
- Protected_Character <b>at</b> 0 <b>range</b> 8 .. 8;
- Horizontal <b>at</b> 0 <b>range</b> 9 .. 9;
- Left <b>at</b> 0 <b>range</b> 10 .. 10;
- Low <b>at</b> 0 <b>range</b> 11 .. 11;
- Right <b>at</b> 0 <b>range</b> 12 .. 12;
- Top <b>at</b> 0 <b>range</b> 13 .. 13;
- Vertical <b>at</b> 0 <b>range</b> 14 .. 14;
- <b>end</b> <b>record</b>;
- <b>for</b> Character_Attribute_Set'Size <b>use</b> 16;
- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
- <FONT COLOR=green><EM>-- (n)curses uses all but the lowest 16 Bits for Attributes.</EM></FONT>
-
- Normal_Video : <b>constant</b> Character_Attribute_Set := (<b>others</b> =&gt; False);
-
- <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;
- Ch : Character;
- <b>end</b> <b>record</b>;
- <b>pragma</b> Convention (C, Attributed_Character);
- <FONT COLOR=green><EM>-- This is the counterpart for the chtype in C.</EM></FONT>
-
- <b>for</b> Attributed_Character <b>use</b>
- <b>record</b>
- Ch <b>at</b> 0 <b>range</b> 0 .. 7;
- Color <b>at</b> 0 <b>range</b> 8 .. 15;
- Attr <b>at</b> 0 <b>range</b> 16 .. 31;
- <b>end</b> <b>record</b>;
- <b>for</b> Attributed_Character'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>
-
- Default_Character : <b>constant</b> Attributed_Character
- := (Ch =&gt; <A HREF="terminal_interface-curses__ads.htm#296_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>
-
- <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> Attributed_Character;
- <b>pragma</b> Pack (Attributed_String);
- <FONT COLOR=green><EM>-- In this binding we allow strings of attributed characters.</EM></FONT>
-
- <FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
- <FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=red><A NAME="382_4">Curses_Exception</A></FONT> : <b>exception</b>;
- Wrong_Curses_Version : <b>exception</b>;
-
- <FONT COLOR=green><EM>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></FONT>
- <FONT COLOR=green><EM>-- subpackets for Menu and Forms handling.</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=red><A NAME="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>;
- Eti_Current : <b>exception</b>;
-
- <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- External C variables</EM></FONT>
- <FONT COLOR=green><EM>-- Conceptually even in C this are kind of constants, but they are</EM></FONT>
- <FONT COLOR=green><EM>-- initialized and sometimes changed by the library routines at runtime</EM></FONT>
- <FONT COLOR=green><EM>-- depending on the type of terminal. I believe the best way to model</EM></FONT>
- <FONT COLOR=green><EM>-- this is to use functions.</EM></FONT>
- <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
-
- <b>function</b> Lines <A HREF="terminal_interface-curses__ads.htm#410_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 (Columns);
-
- <b>function</b> Tab_Size <b>return</b> Natural;
- <b>pragma</b> Inline (Tab_Size);
-
- <b>function</b> Number_Of_Colors <b>return</b> Natural;
- <b>pragma</b> Inline (Number_Of_Colors);
-
- <b>function</b> Number_Of_Color_Pairs <b>return</b> Natural;
- <b>pragma</b> Inline (Number_Of_Color_Pairs);
-
- ACS_Map : <b>array</b> (Character'Val (0) .. Character'Val (127)) <b>of</b>
- Attributed_Character;
- <b>pragma</b> Import (C, ACS_Map, "acs_map");
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Constants for several characters from the Alternate Character Set</EM></FONT>
- <FONT COLOR=green><EM>-- You must use 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 := '|';
- 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>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> Standard_Window <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></FONT>
- <b>pragma</b> Inline (Standard_Window);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>procedure</b> Init_Screen;
-
- <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 (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 (End_Screen);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>function</b> Is_End_Window <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></FONT>
- <b>pragma</b> Inline (Is_End_Window);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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>;
- Column : <b>in</b> Column_Position);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></FONT>
- <b>pragma</b> Inline (Move_Cursor);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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;
- Ch : <b>in</b> Attributed_Character);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></FONT>
-
- <b>procedure</b> Add (<FONT COLOR=red><A NAME="519_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Ch : <b>in</b> Character);
- <FONT COLOR=green><EM>-- Add a single character at the current logical cursor position to</EM></FONT>
- <FONT COLOR=green><EM>-- the window. Use the current windows attributes.</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
- <b>procedure</b> Add
- (<FONT COLOR=red><A NAME="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>;
- Ch : <b>in</b> Attributed_Character);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></FONT>
-
- <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;
- 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;
- Ch : <b>in</b> Attributed_Character);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></FONT>
-
- <b>procedure</b> Add_With_Immediate_Echo
- (<FONT COLOR=red><A NAME="547_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Ch : <b>in</b> Character);
- <FONT COLOR=green><EM>-- Add a character and do an immediate refresh of the screen.</EM></FONT>
- <b>pragma</b> Inline (Add_With_Immediate_Echo);
-
- <FONT COLOR=green><EM>-- |=====================================================================</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>-- #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>;
- First_Column_Position : Column_Position) <b>return</b> 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>;
- 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_11"#2|</EM></FONT>
- <b>procedure</b> Delete (Win : <b>in</b> <b>out</b> Window);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Reset Win to Null_Window</EM></FONT>
- <b>pragma</b> Inline (Delete);
-
- <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>;
- 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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
- <b>function</b> Duplicate (Win : Window) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></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>;
- 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>;
- 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
- <b>procedure</b> Synchronize_Upwards (Win : <b>in</b> Window);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></FONT>
- <b>pragma</b> Import (C, Synchronize_Upwards, "wsyncup");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
- <b>procedure</b> Synchronize_Downwards (Win : <b>in</b> Window);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></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;
- 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>-- | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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;
- 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>-- #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;
- Len : <b>in</b> Integer := -1);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvwaddstr()</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | 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;
- 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>-- #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;
- 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>
- <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>-- #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>;
- 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>
- <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>;
- 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>;
- 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>
- <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>;
- 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>
- <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>-- #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>-- 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>-- returned keycode is Key_None.</EM></FONT>
- <b>pragma</b> Inline (Get_Keystroke);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
- <b>procedure</b> Undo_Keystroke (Key : <b>in</b> Real_Key_Code);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></FONT>
- <b>pragma</b> Inline (Undo_Keystroke);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
- <b>function</b> Has_Key (Key : Special_Key_Code) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></FONT>
- <b>pragma</b> Inline (Has_Key);
-
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- | Some helper functions</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> Is_Function_Key (Key : Special_Key_Code) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></FONT>
- <b>pragma</b> Inline (Is_Function_Key);
-
- <b>subtype</b> Function_Key_Number <b>is</b> Integer <b>range</b> 0 .. 63;
- <FONT COLOR=green><EM>-- (n)curses allows for 64 function keys.</EM></FONT>
-
- <b>function</b> Function_Key (Key : Real_Key_Code) <b>return</b> Function_Key_Number;
- <FONT COLOR=green><EM>-- Return the number of the function key. If the code is not a</EM></FONT>
- <FONT COLOR=green><EM>-- function key, a CONSTRAINT_ERROR will be raised.</EM></FONT>
- <b>pragma</b> Inline (Function_Key);
-
- <b>function</b> Function_Key_Code (Key : Function_Key_Number) <b>return</b> Real_Key_Code;
- <FONT COLOR=green><EM>-- Return the key code for a given function-key number.</EM></FONT>
- <b>pragma</b> Inline (Function_Key_Code);
-
- <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>-- #1A NAME="AFU_31"#2|</EM></FONT>
- <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;
- On : <b>in</b> Boolean := True); <FONT COLOR=green><EM>-- if False we switch Off.</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>-- #1A NAME="AFU_32"#2|</EM></FONT>
- <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;
- 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>
- <b>pragma</b> Inline (Set_Character_Attributes);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_33"#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>
-
- <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> 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;
- Pair : <b>in</b> Color_Pair);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></FONT>
- <b>pragma</b> Inline (Set_Color);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT>
- <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;
- 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>-- #1A NAME="AFU_37"#2|</EM></FONT>
- <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;
- 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>
- <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>
- <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>
- <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>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- | Not implemented : typeahead</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_41"#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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#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);
-
- <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;
- 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;
- 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>type</b> Half_Delay_Amount <b>is</b> <b>range</b> 1 .. 255;
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
- <b>procedure</b> Set_Flush_On_Interrupt_Mode
- (<FONT COLOR=red><A NAME="876_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Mode : <b>in</b> Boolean := True);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></FONT>
- <b>pragma</b> Inline (Set_Flush_On_Interrupt_Mode);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
- <b>procedure</b> Set_Queue_Interrupt_Mode
- (<FONT COLOR=red><A NAME="883_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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
- <b>procedure</b> Set_NoDelay_Mode
- (<FONT COLOR=red><A NAME="891_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Mode : <b>in</b> Boolean := False);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></FONT>
- <b>pragma</b> Inline (Set_NoDelay_Mode);
-
- <b>type</b> Timeout_Mode <b>is</b> (Blocking, Non_Blocking, Delayed);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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;
- 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>-- 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>
- <b>procedure</b> Set_Escape_Timer_Mode
- (<FONT COLOR=red><A NAME="911_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Timer_Off : <b>in</b> Boolean := False);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></FONT>
- <b>pragma</b> Inline (Set_Escape_Timer_Mode);
-
- <FONT COLOR=green><EM>-- |=====================================================================</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>
- <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>
- <b>procedure</b> Clear_On_Next_Update
- (<FONT COLOR=red><A NAME="928_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Do_Clear : <b>in</b> Boolean := True);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></FONT>
- <b>pragma</b> Inline (Clear_On_Next_Update);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
- <b>procedure</b> Use_Insert_Delete_Line
- (<FONT COLOR=red><A NAME="935_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Do_Idl : <b>in</b> Boolean := True);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></FONT>
- <b>pragma</b> Inline (Use_Insert_Delete_Line);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
- <b>procedure</b> Use_Insert_Delete_Character
- (<FONT COLOR=red><A NAME="942_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Do_Idc : <b>in</b> Boolean := True);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></FONT>
- <b>pragma</b> Inline (Use_Insert_Delete_Character);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
- <b>procedure</b> Leave_Cursor_After_Update
- (<FONT COLOR=red><A NAME="949_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Do_Leave : <b>in</b> Boolean := True);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></FONT>
- <b>pragma</b> Inline (Leave_Cursor_After_Update);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
- <b>procedure</b> Immediate_Update_Mode
- (<FONT COLOR=red><A NAME="956_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- Mode : <b>in</b> Boolean := False);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></FONT>
- <b>pragma</b> Inline (Immediate_Update_Mode);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT>
- <b>procedure</b> Allow_Scrolling
- (<FONT COLOR=red><A NAME="963_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);
-
- <b>function</b> Scrolling_Allowed (Win : Window := Standard_Window) <b>return</b> Boolean;
- <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>
- <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>;
- Bottom_Line : <b>in</b> Line_Position);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></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>
- <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>
- <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>-- #1A NAME="AFU_61"#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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#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>
-
- <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;
- 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>-- |=====================================================================</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>
- <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>pragma</b> Inline (Erase);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_65"#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>pragma</b> Inline (Clear);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_66"#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>pragma</b> Inline (Clear_To_End_Of_Screen);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_67"#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>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>
- <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;
- Ch : <b>in</b> Attributed_Character);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></FONT>
- <b>pragma</b> Inline (Set_Background);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_69"#2|</EM></FONT>
- <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;
- Ch : <b>in</b> Attributed_Character);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></FONT>
- <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)
- <b>return</b> Attributed_Character;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></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>
- <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>
- <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;
- 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;
- 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;
- 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>
- <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>-- |=====================================================================</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>
- <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;
- 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>;
- 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>;
- 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>-- |=====================================================================</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>
- <b>procedure</b> Insert_Delete_Lines
- (<FONT COLOR=red><A NAME="1138_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>
- <b>pragma</b> Inline (Insert_Delete_Lines);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_81"#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>pragma</b> Inline (Delete_Line);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_82"#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>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>
- <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>;
- 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>
- <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>;
- 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>
- <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>;
- 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>
- <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;
- 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>-- to return the info that the window has no parent.</EM></FONT>
- <b>pragma</b> Inline (Get_Origin_Relative_To_Parent);
-
- <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>;
- 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>
- <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>;
- 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>
- <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>;
- 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>
- <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>;
- 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>
- <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>;
- 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;
- Ch : <b>in</b> Character);
- <b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | 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;
- Amount : <b>in</b> Integer := 1);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></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>
- <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>-- #1A NAME="AFU_94"#2|</EM></FONT>
- <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>;
- Column : <b>in</b> Column_Position);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></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)
- <b>return</b> Attributed_Character;
- <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>
- <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>;
- 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>-- 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>-- |=====================================================================</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;
- 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>-- #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>;
- 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>-- |=====================================================================</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>-- |=====================================================================</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;
- 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: winsstr()</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;
- 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: mvwinsstr()</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;
- 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>-- #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;
- Len : <b>in</b> Integer := -1);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvwinstr()</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | 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;
- 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>-- #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;
- 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>-- 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;
- 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>
-
- <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;
- 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>-- 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;
- <b>type</b> Label_Justification <b>is</b> (Left, Centered, Right);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_106"#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);
-
- <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>;
- 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>
- <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>
- <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;
- 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>
- <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>
- <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>
- <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>
- <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>
- <b>procedure</b> Switch_Soft_Label_Key_Attributes
- (<FONT COLOR=red><A NAME="1451_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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_116"#2|</EM></FONT>
- <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;
- 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>
- <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>
- <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>
- <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/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;
- Enable : <b>in</b> Boolean := True);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></FONT>
- <b>pragma</b> Inline (Enable_Key);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | 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>;
- Key : <b>in</b> Special_Key_Code);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></FONT>
- <b>pragma</b> Inline (Define_Key);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | 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>--</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;
- 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>
- <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;
- 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>
- <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>
- <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>
- <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>-- |=====================================================================</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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>pragma</b> Inline (Terminal_Name);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_138"#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");
-
- <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>;
- 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>;
- 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>
- <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>;
- 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>
- <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>;
- 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>-- | 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>
- <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>
- <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>
- <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>
- <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>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>;
- Proc : <b>in</b> Stdscr_Init_Proc);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></FONT>
- <FONT COLOR=green><EM>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></FONT>
- <FONT COLOR=green><EM>-- ripoffline(), in which the Lines argument absolute value is the</EM></FONT>
- <FONT COLOR=green><EM>-- number of lines to be ripped of. The official ripoffline() only</EM></FONT>
- <FONT COLOR=green><EM>-- uses the sign of Lines to rip of a single line from bottom or top.</EM></FONT>
- <b>pragma</b> Inline (Rip_Off_Lines);
-
- <b>type</b> Cursor_Visibility <b>is</b> (Invisible, Normal, Very_Visible);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_150"#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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_151"#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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Some useful helpers.</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <b>type</b> Transform_Direction <b>is</b> (From_Screen, To_Screen);
- <b>procedure</b> Transform_Coordinates
- (<FONT COLOR=red><A NAME="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;
- 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>-- Screen coordinates are the position informations on the physical device.</EM></FONT>
- <FONT COLOR=green><EM>-- An Curses_Exception will be raised if Line and Column are not in the</EM></FONT>
- <FONT COLOR=green><EM>-- Window or if you pass the Null_Window as argument.</EM></FONT>
- <FONT COLOR=green><EM>-- We don't inline this procedure</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;
-
- <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;
- Curses_Bool_False : <b>constant</b> Curses_Bool := 0;
-
-<b>end</b> Terminal_Interface.Curses;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/ada/terminal_interface__ads.htm b/ncurses-5.2/doc/html/ada/terminal_interface__ads.htm
deleted file mode 100644
index a930f21..0000000
--- a/ncurses-5.2/doc/html/ada/terminal_interface__ads.htm
+++ /dev/null
@@ -1,53 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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://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>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>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>);
-<FONT COLOR=green><EM>--</EM></FONT>
-<FONT COLOR=green><EM>-- Everything is in the child units</EM></FONT>
-<FONT COLOR=green><EM>--</EM></FONT>
-<b>end</b> Terminal_Interface;
-
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.2/doc/html/announce.html b/ncurses-5.2/doc/html/announce.html
deleted file mode 100644
index b95bbb3..0000000
--- a/ncurses-5.2/doc/html/announce.html
+++ /dev/null
@@ -1,593 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>Announcing ncurses 5.2</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-</HEAD>
-<BODY>
-
-<H1>Announcing ncurses 5.2</H1>
-
-The ncurses (new curses) library is a free software emulation of
-curses in System V Release 4.0, and more. It uses terminfo format,
-supports pads and color
-and multiple highlights and forms characters and function-key mapping,
-and has all the other SYSV-curses enhancements over BSD curses.<P>
-
-In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and is encouraging the keepers of
-Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
-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 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 manual pages are provided for
-the library and tools.<P>
-
-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
-<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>.
-
-<H1>Release Notes</H1>
-
-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.
-<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>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>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>terminfo database:
- <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>added os2 entry to misc/emx.src.
-
- <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>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>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>add error checking to infocmp's -v and -m options to ensure that
- the option value is indeed a number.
- </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>
-
-</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>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>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>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>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>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 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>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>various fixes for install scripts used to support configure
- <code>--srcdir</code> and <code>--with-install-prefix</code>.
-
- <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.
-</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>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>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 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 configure test for <code>tcgetattr()</code> to allow for
- old implementations, e.g., on BeOS, which only defined it as a
- macro.
-
- <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 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>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>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>improved OS/2 mouse support by retrying as a 2-button mouse if code
- fails to set up a 3-button mouse.
-
- <li>added private entrypoint <code>_nc_basename()</code>, used to
- consolidate related code in progs, as well as accommodating OS/2 EMX
- pathnames.
-
- <li>alter definition of NCURSES_CONST to make it non-empty.
-
- <li>redefine 'TEXT' in menu.h for AMIGA, since it is reported to have
- an (unspecified) symbol conflict.
- </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>
-
-</ul>
-
-<H1>Features of Ncurses</H1>
-
-The ncurses package is fully compatible with SVr4 (System V Release 4) curses:
-
-<UL>
-<LI>All 257 of the SVr4 calls have been implemented (and are documented).
-<LI>Full support for SVr4 curses features including keyboard mapping, color,
-forms-drawing with ACS characters, and automatic recognition of keypad
-and function keys.
-<LI>An emulation of the SVr4 panels library, supporting
-a stack of windows with backing store, is included.
-<LI>An emulation of the SVr4 menus library, supporting
-a uniform but flexible interface for menu programming, is included.
-<LI>An emulation of the SVr4 form library, supporting
-data collection through on-screen forms, is included.
-<LI>Binary terminfo entries generated by the ncurses tic(1) implementation
-are bit-for-bit-compatible with the entry format SVr4 curses uses.
-<LI>The utilities have options to allow you to filter terminfo
-entries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG>
-versions such as the HP/UX and AIX ports.</UL>
-
-The ncurses package also has many useful extensions over SVr4:
-
-<UL>
-<LI>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 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).
-<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner
-of the screen if your terminal has an insert-character capability.
-<LI>Ada95 and C++ bindings.
-<LI>Support for mouse event reporting with X Window xterm and OS/2 console windows.
-<LI>Extended mouse support via Alessandro Rubini's gpm package.
-<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving
-their data.
-<LI>The function <CODE>use_default_colors()</CODE> allows you to
-use the terminal's default colors for the default color pair,
-achieving the effect of transparent colors.
-<LI>The functions <CODE>keyok()</CODE>
-and <CODE>define_key()</CODE> 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 key code.
-<LI>Support for 16-color terminals, such as aixterm and XFree86 xterm.
-<LI>Better cursor-movement optimization. The package now features a
-cursor-local-movement computation more efficient than either BSD's
-or System V's.
-<LI>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.
-<LI>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.
-<LI>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).
-<LI>The tic(1)/captoinfo utility provided with ncurses has the
-ability to translate many termcaps from the XENIX, IBM and
-AT&amp;T extension sets.
-<LI>A BSD-like tset(1) utility is provided.
-<LI>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 terminfo directory.
-<LI>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.)
-<LI>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
-compiled entries in either the system terminfo directory or the user's
-$HOME/.terminfo directory.
-<LI>A script (<STRONG>capconvert</STRONG>) 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.
-<LI>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.
-<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to
-see exactly what terminal types are available on the system.
-<LI>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
-<CODE>#undef</CODE>.
-<LI>An HTML "Introduction to Programming with NCURSES" document provides
-a narrative introduction to the curses programming interface.
-</UL>
-
-<H1>State of the Package</H1>
-
-Numerous bugs present in earlier versions have been fixed; the
-library is far more reliable than it used to be. Bounds checking in many
-`dangerous' entry points has been improved. The code is now type-safe
-according to gcc -Wall. The library has been checked for malloc leaks and
-arena corruption by the Purify memory-allocation tester.<P>
-
-The ncurses code has been tested with a wide variety of applications
-including (versions starting with those noted):
-<DL>
-<DT> cdk
-<DD> Curses Development Kit
-<br>
-<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
-<br>
-<A HREF="http://dickey.his.com/cdk/cdk.html">http://dickey.his.com/cdk</A>.
-<DT> ded
-<DD> directory-editor
-<br>
-<A HREF="http://dickey.his.com/ded/ded.html">http://dickey.his.com/ded</A>.
-<DT> dialog
-<DD> the underlying application used in Slackware's setup, and the basis
-for similar applications on GNU/Linux.
-<br>
-<A HREF="http://dickey.his.com/dialog/dialog.html">http://dickey.his.com/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> Midnight Commander 4.1
-<DD> file manager
-<br>
-<A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
-<DT> mutt
-<DD> mail utility
-<br>
-<A HREF="http://www.mutt.org">http://www.mutt.org</A>.
-<DT> ncftp
-<DD> file-transfer utility
-<br>
-<A HREF="http://www.ncftp.com">http://www.ncftp.com</A>.
-<DT> nvi
-<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
-<br>
-<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>.
-<DT> tin
-<DD> newsreader, supporting color, MIME
-<br>
-<A HREF="http://www.tin.org">http://www.tin.org</A>.
-<DT> taper
-<DD> tape archive utility
-<br>
-<A HREF="http://members.iinet.net.au/~yusuf/taper/">http://members.iinet.net.au/~yusuf/taper/</A>.
-<DT> vh-1.6
-<DD> Volks-Hypertext browser for the Jargon File
-<br>
-<A HREF="http://www.bg.debian.org/Packages/unstable/text/vh.html">http://www.bg.debian.org/Packages/unstable/text/vh.html</A>.
-</DL>
-as well as some that use ncurses for the terminfo support alone:
-<DL>
-<DT> minicom
-<DD> terminal emulator
-<br>
-<A HREF="http://www.pp.clinet.fi/~walker/minicom.html">http://www.pp.clinet.fi/~walker/minicom.html</A>.
-<DT> vile
-<DD> vi-like-emacs
-<br>
-<A HREF="http://dickey.his.com/vile/vile.html">http://dickey.his.com/vile</A>.
-</DL>
-<P>
-
-The ncurses distribution includes a selection of test programs (including
-a few games).
-
-<H2>Who's Who and What's What</H2>
-
-The original developers of ncurses are <A
-HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and
-<A HREF="http://www.ccil.org/~esr/home.html">Eric S. Raymond</A>.
-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="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
-acts as the maintainer for the Free Software Foundation, which holds the
-copyright on ncurses.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-To join the ncurses mailing list, please write email to
-<CODE>bug-ncurses-request@gnu.org</CODE> containing the line:
-<PRE>
- subscribe &lt;name&gt;@&lt;host.domain&gt;
-</PRE>
-
-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
-<A HREF="ftp://dickey.his.com/ncurses">ftp://dickey.his.com/ncurses</A>.
-
-<H2>Future Plans</H2>
-<UL>
-<LI>Extended-level XPG4 conformance, with internationalization support.
-<LI>Ports to more systems, including DOS and Windows.
-</UL>
-We need people to help with these projects. If you are interested in working
-on them, please join the ncurses list.
-
-<H2>Other Related Resources</H2>
-
-The distribution includes and uses a version of the terminfo-format
-terminal description file maintained by Eric Raymond.
-<A HREF="http://earthspace.net/~esr/terminfo">http://earthspace.net/~esr/terminfo</A>.<P>
-
-You can find lots of information on terminal-related topics
-not covered in the terminfo file at
-<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
-archive</A>.
-</BODY>
-</HTML>
-<!--
-# The following sets edit modes for GNU EMACS
-# Local Variables:
-# mode:html
-# case-fold-search:nil
-# fill-column:70
-# End:
--->
diff --git a/ncurses-5.2/doc/html/hackguide.html b/ncurses-5.2/doc/html/hackguide.html
deleted file mode 100644
index 5def06f..0000000
--- a/ncurses-5.2/doc/html/hackguide.html
+++ /dev/null
@@ -1,890 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>A Hacker's Guide to Ncurses Internals</TITLE>
-<link rev="made" href="mailto:bugs-ncurses@gnu.org">
-<!--
-This document is self-contained, *except* that there is one relative link to
-the ncurses-intro.html document, expected to be in the same directory with
-this one.
--->
-</HEAD>
-<BODY>
-
-<H1>A Hacker's Guide to NCURSES</H1>
-
-<H1>Contents</H1>
-<UL>
-<LI><A HREF="#abstract">Abstract</A>
-<LI><A HREF="#objective">Objective of the Package</A>
-<UL>
-<LI><A HREF="#whysvr4">Why System V Curses?</A>
-<LI><A HREF="#extensions">How to Design Extensions</A>
-</UL>
-<LI><A HREF="#portability">Portability and Configuration</A>
-<LI><A HREF="#documentation">Documentation Conventions</A>
-<LI><A HREF="#bugtrack">How to Report Bugs</A>
-<LI><A HREF="#ncurslib">A Tour of the Ncurses Library</A>
-<UL>
-<LI><A HREF="#loverview">Library Overview</A>
-<LI><A HREF="#engine">The Engine Room</A>
-<LI><A HREF="#input">Keyboard Input</A>
-<LI><A HREF="#mouse">Mouse Events</A>
-<LI><A HREF="#output">Output and Screen Updating</A>
-</UL>
-<LI><A HREF="#fmnote">The Forms and Menu Libraries</A>
-<LI><A HREF="#tic">A Tour of the Terminfo Compiler</A>
-<UL>
-<LI><A HREF="#nonuse">Translation of Non-<STRONG>use</STRONG> Capabilities</A>
-<LI><A HREF="#uses">Use Capability Resolution</A>
-<LI><A HREF="#translation">Source-Form Translation</A>
-</UL>
-<LI><A HREF="#utils">Other Utilities</A>
-<LI><A HREF="#style">Style Tips for Developers</A>
-<LI><A HREF="#port">Porting Hints</A>
-</UL>
-
-<H1><A NAME="abstract">Abstract</A></H1>
-
-This document is a hacker's tour of the <STRONG>ncurses</STRONG> library and utilities.
-It discusses design philosophy, implementation methods, and the
-conventions used for coding and documentation. It is recommended
-reading for anyone who is interested in porting, extending or improving the
-package.
-
-<H1><A NAME="objective">Objective of the Package</A></H1>
-
-The objective of the <STRONG>ncurses</STRONG> package is to provide a free software API for
-character-cell terminals and terminal emulators with the following
-characteristics:
-
-<UL>
-<LI>Source-compatible with historical curses implementations (including
- the original BSD curses and System V curses.
-<LI>Conformant with the XSI Curses standard issued as part of XPG4 by
- X/Open.
-<LI>High-quality -- stable and reliable code, wide portability, good
- packaging, superior documentation.
-<LI>Featureful -- should eliminate as much of the drudgery of C interface
- programming as possible, freeing programmers to think at a higher
- level of design.
-</UL>
-
-These objectives are in priority order. So, for example, source
-compatibility with older version must trump featurefulness -- we cannot
-add features if it means breaking the portion of the API corresponding
-to historical curses versions.
-
-<H2><A NAME="whysvr4">Why System V Curses?</A></H2>
-
-We used System V curses as a model, reverse-engineering their API, in
-order to fulfill the first two objectives. <P>
-
-System V curses implementations can support BSD curses programs with
-just a recompilation, so by capturing the System V API we also
-capture BSD's. <P>
-
-More importantly for the future, the XSI Curses standard issued by X/Open
-is explicitly and closely modeled on System V. So conformance with
-System V took us most of the way to base-level XSI conformance.
-
-<H2><A NAME="extensions">How to Design Extensions</A></H2>
-
-The third objective (standards conformance) requires that it be easy to
-condition source code using <STRONG>ncurses</STRONG> so that the absence of nonstandard
-extensions does not break the code. <P>
-
-Accordingly, we have a policy of associating with each nonstandard extension
-a feature macro, so that ncurses client code can use this macro to condition
-in or out the code that requires the <STRONG>ncurses</STRONG> extension. <P>
-
-For example, there is a macro <CODE>NCURSES_MOUSE_VERSION</CODE> which XSI Curses
-does not define, but which is defined in the <STRONG>ncurses</STRONG> library header.
-You can use this to condition the calls to the mouse API calls.
-
-<H1><A NAME="portability">Portability and Configuration</A></H1>
-
-Code written for <STRONG>ncurses</STRONG> may assume an ANSI-standard C compiler and
-POSIX-compatible OS interface. It may also assume the presence of a
-System-V-compatible <EM>select(2)</EM> call. <P>
-
-We encourage (but do not require) developers to make the code friendly
-to less-capable UNIX environments wherever possible. <P>
-
-We encourage developers to support OS-specific optimizations and methods
-not available under POSIX/ANSI, provided only that:
-
-<UL>
-<LI>All such code is properly conditioned so the build process does not
- attempt to compile it under a plain ANSI/POSIX environment.
-<LI>Adding such implementation methods does not introduce incompatibilities
- in the <STRONG>ncurses</STRONG> API between platforms.
-</UL>
-
-We use GNU <CODE>autoconf(1)</CODE> as a tool to deal with portability issues.
-The right way to leverage an OS-specific feature is to modify the autoconf
-specification files (configure.in and aclocal.m4) to set up a new feature
-macro, which you then use to condition your code.
-
-<H1><A NAME="documentation">Documentation Conventions</A></H1>
-
-There are three kinds of documentation associated with this package. Each
-has a different preferred format:
-
-<UL>
-<LI>Package-internal files (README, INSTALL, TO-DO etc.)
-<LI>Manual pages.
-<LI>Everything else (i.e., narrative documentation).
-</UL>
-
-Our conventions are simple:
-<OL>
-<LI><STRONG>Maintain package-internal files in plain text.</STRONG>
- The expected viewer for them <EM>more(1)</EM> or an editor window; there's
- no point in elaborate mark-up.
-
-<LI><STRONG>Mark up manual pages in the man macros.</STRONG> These have to be viewable
- through traditional <EM>man(1)</EM> programs.
-
-<LI><STRONG>Write everything else in HTML.</STRONG>
-</OL>
-
-When in doubt, HTMLize a master and use <EM>lynx(1)</EM> to generate
-plain ASCII (as we do for the announcement document). <P>
-
-The reason for choosing HTML is that it's (a) well-adapted for on-line
-browsing through viewers that are everywhere; (b) more easily readable
-as plain text than most other mark-ups, if you don't have a viewer; and (c)
-carries enough information that you can generate a nice-looking printed
-version from it. Also, of course, it make exporting things like the
-announcement document to WWW pretty trivial.
-
-<H1><A NAME="bugtrack">How to Report Bugs</A></H1>
-
-The <A NAME="bugreport">reporting address for bugs</A> is
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-This is a majordomo list; to join, write
-to <CODE>bug-ncurses-request@gnu.org</CODE> with a message containing the line:
-<PRE>
- subscribe &lt;name&gt;@&lt;host.domain&gt;
-</PRE>
-
-The <CODE>ncurses</CODE> code is maintained by a small group of
-volunteers. While we try our best to fix bugs promptly, we simply
-don't have a lot of hours to spend on elementary hand-holding. We rely
-on intelligent cooperation from our users. If you think you have
-found a bug in <CODE>ncurses</CODE>, there are some steps you can take
-before contacting us that will help get the bug fixed quickly. <P>
-
-In order to use our bug-fixing time efficiently, we put people who
-show us they've taken these steps at the head of our queue. This
-means that if you don't, you'll probably end up at the tail end and
-have to wait a while.
-
-<OL>
-<LI>Develop a recipe to reproduce the bug.
-<p>
-Bugs we can reproduce are likely to be fixed very quickly, often
-within days. The most effective single thing you can do to get a
-quick fix is develop a way we can duplicate the bad behavior --
-ideally, by giving us source for a small, portable test program that
-breaks the library. (Even better is a keystroke recipe using one of
-the test programs provided with the distribution.)
-
-<LI>Try to reproduce the bug on a different terminal type. <P>
-
-In our experience, most of the behaviors people report as library bugs
-are actually due to subtle problems in terminal descriptions. This is
-especially likely to be true if you're using a traditional
-asynchronous terminal or PC-based terminal emulator, rather than xterm
-or a UNIX console entry. <P>
-
-It's therefore extremely helpful if you can tell us whether or not your
-problem reproduces on other terminal types. Usually you'll have both
-a console type and xterm available; please tell us whether or not your
-bug reproduces on both. <P>
-
-If you have xterm available, it is also good to collect xterm reports for
-different window sizes. This is especially true if you normally use an
-unusual xterm window size -- a surprising number of the bugs we've seen
-are either triggered or masked by these.
-
-<LI>Generate and examine a trace file for the broken behavior. <P>
-
-Recompile your program with the debugging versions of the libraries.
-Insert a <CODE>trace()</CODE> call with the argument set to <CODE>TRACE_UPDATE</CODE>.
-(See <A HREF="ncurses-intro.html#debugging">"Writing Programs with
-NCURSES"</A> for details on trace levels.)
-Reproduce your bug, then look at the trace file to see what the library
-was actually doing. <P>
-
-Another frequent cause of apparent bugs is application coding errors
-that cause the wrong things to be put on the virtual screen. Looking
-at the virtual-screen dumps in the trace file will tell you immediately if
-this is happening, and save you from the possible embarrassment of being
-told that the bug is in your code and is your problem rather than ours. <P>
-
-If the virtual-screen dumps look correct but the bug persists, it's
-possible to crank up the trace level to give more and more information
-about the library's update actions and the control sequences it issues
-to perform them. The test directory of the distribution contains a
-tool for digesting these logs to make them less tedious to wade
-through. <P>
-
-Often you'll find terminfo problems at this stage by noticing that the
-escape sequences put out for various capabilities are wrong. If not,
-you're likely to learn enough to be able to characterize any bug in
-the screen-update logic quite exactly.
-
-<LI>Report details and symptoms, not just interpretations. <P>
-
-If you do the preceding two steps, it is very likely that you'll discover
-the nature of the problem yourself and be able to send us a fix. This
-will create happy feelings all around and earn you good karma for the first
-time you run into a bug you really can't characterize and fix yourself. <P>
-
-If you're still stuck, at least you'll know what to tell us. Remember, we
-need details. If you guess about what is safe to leave out, you are too
-likely to be wrong. <P>
-
-If your bug produces a bad update, include a trace file. Try to make
-the trace at the <EM>least</EM> voluminous level that pins down the
-bug. Logs that have been through tracemunch are OK, it doesn't throw
-away any information (actually they're better than un-munched ones because
-they're easier to read). <P>
-
-If your bug produces a core-dump, please include a symbolic stack trace
-generated by gdb(1) or your local equivalent. <P>
-
-Tell us about every terminal on which you've reproduced the bug -- and
-every terminal on which you can't. Ideally, sent us terminfo sources
-for all of these (yours might differ from ours). <P>
-
-Include your ncurses version and your OS/machine type, of course! You can
-find your ncurses version in the <CODE>curses.h</CODE> file.
-</OL>
-
-If your problem smells like a logic error or in cursor movement or
-scrolling or a bad capability, there are a couple of tiny test frames
-for the library algorithms in the progs directory that may help you
-isolate it. These are not part of the normal build, but do have their
-own make productions. <P>
-
-The most important of these is <CODE>mvcur</CODE>, a test frame for the
-cursor-movement optimization code. With this program, you can see
-directly what control sequences will be emitted for any given cursor
-movement or scroll/insert/delete operations. If you think you've got
-a bad capability identified, you can disable it and test again. The
-program is command-driven and has on-line help. <P>
-
-If you think the vertical-scroll optimization is broken, or just want to
-understand how it works better, build <CODE>hashmap</CODE> and read the
-header comments of <CODE>hardscroll.c</CODE> and <CODE>hashmap.c</CODE>; then try
-it out. You can also test the hardware-scrolling optimization separately
-with <CODE>hardscroll</CODE>. <P>
-
-There's one other interactive tester, <CODE>tctest</CODE>, that exercises
-translation between termcap and terminfo formats. If you have a serious
-need to run this, you probably belong on our development team!
-
-<H1><A NAME="ncurslib">A Tour of the Ncurses Library</A></H1>
-
-<H2><A NAME="loverview">Library Overview</A></H2>
-
-Most of the library is superstructure -- fairly trivial convenience
-interfaces to a small set of basic functions and data structures used
-to manipulate the virtual screen (in particular, none of this code
-does any I/O except through calls to more fundamental modules
-described below). The files
-<blockquote>
-<CODE>
-lib_addch.c
-lib_bkgd.c
-lib_box.c
-lib_chgat.c
-lib_clear.c
-lib_clearok.c
-lib_clrbot.c
-lib_clreol.c
-lib_colorset.c
-lib_data.c
-lib_delch.c
-lib_delwin.c
-lib_echo.c
-lib_erase.c
-lib_gen.c
-lib_getstr.c
-lib_hline.c
-lib_immedok.c
-lib_inchstr.c
-lib_insch.c
-lib_insdel.c
-lib_insstr.c
-lib_instr.c
-lib_isendwin.c
-lib_keyname.c
-lib_leaveok.c
-lib_move.c
-lib_mvwin.c
-lib_overlay.c
-lib_pad.c
-lib_printw.c
-lib_redrawln.c
-lib_scanw.c
-lib_screen.c
-lib_scroll.c
-lib_scrollok.c
-lib_scrreg.c
-lib_set_term.c
-lib_slk.c
-lib_slkatr_set.c
-lib_slkatrof.c
-lib_slkatron.c
-lib_slkatrset.c
-lib_slkattr.c
-lib_slkclear.c
-lib_slkcolor.c
-lib_slkinit.c
-lib_slklab.c
-lib_slkrefr.c
-lib_slkset.c
-lib_slktouch.c
-lib_touch.c
-lib_unctrl.c
-lib_vline.c
-lib_wattroff.c
-lib_wattron.c
-lib_window.c
-</CODE>
-</blockquote>
-are all in this category. They are very
-unlikely to need change, barring bugs or some fundamental
-reorganization in the underlying data structures. <P>
-
-These files are used only for debugging support:
-<blockquote>
-<code>
-lib_trace.c
-lib_traceatr.c
-lib_tracebits.c
-lib_tracechr.c
-lib_tracedmp.c
-lib_tracemse.c
-trace_buf.c
-</code>
-</blockquote>
-It is rather unlikely you will ever need to change these, unless
-you want to introduce a new debug trace level for some reasoon.<P>
-
-There is another group of files that do direct I/O via <EM>tputs()</EM>,
-computations on the terminal capabilities, or queries to the OS
-environment, but nevertheless have only fairly low complexity. These
-include:
-<blockquote>
-<code>
-lib_acs.c
-lib_beep.c
-lib_color.c
-lib_endwin.c
-lib_initscr.c
-lib_longname.c
-lib_newterm.c
-lib_options.c
-lib_termcap.c
-lib_ti.c
-lib_tparm.c
-lib_tputs.c
-lib_vidattr.c
-read_entry.c.
-</code>
-</blockquote>
-They are likely to need revision only if
-ncurses is being ported to an environment without an underlying
-terminfo capability representation. <P>
-
-These files
-have serious hooks into
-the tty driver and signal facilities:
-<blockquote>
-<code>
-lib_kernel.c
-lib_baudrate.c
-lib_raw.c
-lib_tstp.c
-lib_twait.c
-</code>
-</blockquote>
-If you run into porting snafus
-moving the package to another UNIX, the problem is likely to be in one
-of these files.
-The file <CODE>lib_print.c</CODE> uses sleep(2) and also
-falls in this category.<P>
-
-Almost all of the real work is done in the files
-<blockquote>
-<code>
-hardscroll.c
-hashmap.c
-lib_addch.c
-lib_doupdate.c
-lib_getch.c
-lib_mouse.c
-lib_mvcur.c
-lib_refresh.c
-lib_setup.c
-lib_vidattr.c
-</code>
-</blockquote>
-Most of the algorithmic complexity in the
-library lives in these files.
-If there is a real bug in <STRONG>ncurses</STRONG> itself, it's probably here.
-We'll tour some of these files in detail
-below (see <A HREF="#engine">The Engine Room</A>). <P>
-
-Finally, there is a group of files that is actually most of the
-terminfo compiler. The reason this code lives in the <STRONG>ncurses</STRONG>
-library is to support fallback to /etc/termcap. These files include
-<blockquote>
-<code>
-alloc_entry.c
-captoinfo.c
-comp_captab.c
-comp_error.c
-comp_hash.c
-comp_parse.c
-comp_scan.c
-parse_entry.c
-read_termcap.c
-write_entry.c
-</code>
-</blockquote>
-We'll discuss these in the compiler tour.
-
-<H2><A NAME="engine">The Engine Room</A></H2>
-
-<H3><A NAME="input">Keyboard Input</A></H3>
-
-All <CODE>ncurses</CODE> input funnels through the function
-<CODE>wgetch()</CODE>, defined in <CODE>lib_getch.c</CODE>. This function is
-tricky; it has to poll for keyboard and mouse events and do a running
-match of incoming input against the set of defined special keys. <P>
-
-The central data structure in this module is a FIFO queue, used to
-match multiple-character input sequences against special-key
-capabilities; also to implement pushback via <CODE>ungetch()</CODE>. <P>
-
-The <CODE>wgetch()</CODE> code distinguishes between function key
-sequences and the same sequences typed manually by doing a timed wait
-after each input character that could lead a function key sequence.
-If the entire sequence takes less than 1 second, it is assumed to have
-been generated by a function key press. <P>
-
-Hackers bruised by previous encounters with variant <CODE>select(2)</CODE>
-calls may find the code in <CODE>lib_twait.c</CODE> interesting. It deals
-with the problem that some BSD selects don't return a reliable
-time-left value. The function <CODE>timed_wait()</CODE> effectively
-simulates a System V select.
-
-<H3><A NAME="mouse">Mouse Events</A></H3>
-
-If the mouse interface is active, <CODE>wgetch()</CODE> polls for mouse
-events each call, before it goes to the keyboard for input. It is
-up to <CODE>lib_mouse.c</CODE> how the polling is accomplished; it may vary
-for different devices. <P>
-
-Under xterm, however, mouse event notifications come in via the keyboard
-input stream. They are recognized by having the <STRONG>kmous</STRONG> capability
-as a prefix. This is kind of klugey, but trying to wire in recognition of
-a mouse key prefix without going through the function-key machinery would
-be just too painful, and this turns out to imply having the prefix somewhere
-in the function-key capabilities at terminal-type initialization. <P>
-
-This kluge only works because <STRONG>kmous</STRONG> isn't actually used by any
-historic terminal type or curses implementation we know of. Best
-guess is it's a relic of some forgotten experiment in-house at Bell
-Labs that didn't leave any traces in the publicly-distributed System V
-terminfo files. If System V or XPG4 ever gets serious about using it
-again, this kluge may have to change. <P>
-
-Here are some more details about mouse event handling: <P>
-
-The <CODE>lib_mouse()</CODE>code is logically split into a lower level that
-accepts event reports in a device-dependent format and an upper level that
-parses mouse gestures and filters events. The mediating data structure is a
-circular queue of event structures. <P>
-
-Functionally, the lower level's job is to pick up primitive events and
-put them on the circular queue. This can happen in one of two ways:
-either (a) <CODE>_nc_mouse_event()</CODE> detects a series of incoming
-mouse reports and queues them, or (b) code in <CODE>lib_getch.c</CODE> detects the
-<STRONG>kmous</STRONG> prefix in the keyboard input stream and calls _nc_mouse_inline
-to queue up a series of adjacent mouse reports. <P>
-
-In either case, <CODE>_nc_mouse_parse()</CODE> should be called after the
-series is accepted to parse the digested mouse reports (low-level
-events) into a gesture (a high-level or composite event).
-
-<H3><A NAME="output">Output and Screen Updating</A></H3>
-
-With the single exception of character echoes during a <CODE>wgetnstr()</CODE>
-call (which simulates cooked-mode line editing in an ncurses window),
-the library normally does all its output at refresh time. <P>
-
-The main job is to go from the current state of the screen (as represented
-in the <CODE>curscr</CODE> window structure) to the desired new state (as
-represented in the <CODE>newscr</CODE> window structure), while doing as
-little I/O as possible. <P>
-
-The brains of this operation are the modules <CODE>hashmap.c</CODE>,
-<CODE>hardscroll.c</CODE> and <CODE>lib_doupdate.c</CODE>; the latter two use
-<CODE>lib_mvcur.c</CODE>. Essentially, what happens looks like this: <P>
-
-The <CODE>hashmap.c</CODE> module tries to detect vertical motion
-changes between the real and virtual screens. This information
-is represented by the oldindex members in the newscr structure.
-These are modified by vertical-motion and clear operations, and both are
-re-initialized after each update. To this change-journalling
-information, the hashmap code adds deductions made using a modified Heckel
-algorithm on hash values generated from the line contents. <P>
-
-The <CODE>hardscroll.c</CODE> module computes an optimum set of scroll,
-insertion, and deletion operations to make the indices match. It calls
-<CODE>_nc_mvcur_scrolln()</CODE> in <CODE>lib_mvcur.c</CODE> to do those motions. <P>
-
-Then <CODE>lib_doupdate.c</CODE> goes to work. Its job is to do line-by-line
-transformations of <CODE>curscr</CODE> lines to <CODE>newscr</CODE> lines. Its main
-tool is the routine <CODE>mvcur()</CODE> in <CODE>lib_mvcur.c</CODE>. This routine
-does cursor-movement optimization, attempting to get from given screen
-location A to given location B in the fewest output characters posible. <P>
-
-If you want to work on screen optimizations, you should use the fact
-that (in the trace-enabled version of the library) enabling the
-<CODE>TRACE_TIMES</CODE> trace level causes a report to be emitted after
-each screen update giving the elapsed time and a count of characters
-emitted during the update. You can use this to tell when an update
-optimization improves efficiency. <P>
-
-In the trace-enabled version of the library, it is also possible to disable
-and re-enable various optimizations at runtime by tweaking the variable
-<CODE>_nc_optimize_enable</CODE>. See the file <CODE>include/curses.h.in</CODE>
-for mask values, near the end.
-
-<H1><A NAME="fmnote">The Forms and Menu Libraries</A></H1>
-
-The forms and menu libraries should work reliably in any environment you
-can port ncurses to. The only portability issue anywhere in them is what
-flavor of regular expressions the built-in form field type TYPE_REGEXP
-will recognize. <P>
-
-The configuration code prefers the POSIX regex facility, modeled on
-System V's, but will settle for BSD regexps if the former isn't available. <P>
-
-Historical note: the panels code was written primarily to assist in
-porting u386mon 2.0 (comp.sources.misc v14i001-4) to systems lacking
-panels support; u386mon 2.10 and beyond use it. This version has been
-slightly cleaned up for <CODE>ncurses</CODE>.
-
-<H1><A NAME="tic">A Tour of the Terminfo Compiler</A></H1>
-
-The <STRONG>ncurses</STRONG> implementation of <STRONG>tic</STRONG> is rather complex
-internally; it has to do a trying combination of missions. This starts
-with the fact that, in addition to its normal duty of compiling
-terminfo sources into loadable terminfo binaries, it has to be able to
-handle termcap syntax and compile that too into terminfo entries. <P>
-
-The implementation therefore starts with a table-driven, dual-mode
-lexical analyzer (in <CODE>comp_scan.c</CODE>). The lexer chooses its
-mode (termcap or terminfo) based on the first `,' or `:' it finds in
-each entry. The lexer does all the work of recognizing capability
-names and values; the grammar above it is trivial, just "parse entries
-till you run out of file".
-
-<H2><A NAME="nonuse">Translation of Non-<STRONG>use</STRONG> Capabilities</A></H2>
-
-Translation of most things besides <STRONG>use</STRONG> capabilities is pretty
-straightforward. The lexical analyzer's tokenizer hands each capability
-name to a hash function, which drives a table lookup. The table entry
-yields an index which is used to look up the token type in another table,
-and controls interpretation of the value. <P>
-
-One possibly interesting aspect of the implementation is the way the
-compiler tables are initialized. All the tables are generated by various
-awk/sed/sh scripts from a master table <CODE>include/Caps</CODE>; these
-scripts actually write C initializers which are linked to the compiler.
-Furthermore, the hash table is generated in the same way, so it doesn't
-have to be generated at compiler startup time (another benefit of this
-organization is that the hash table can be in shareable text space). <P>
-
-Thus, adding a new capability is usually pretty trivial, just a matter
-of adding one line to the <CODE>include/Caps</CODE> file. We'll have more
-to say about this in the section on <A HREF="#translation">Source-Form
-Translation</A>.
-
-<H2><A NAME="uses">Use Capability Resolution</A></H2>
-
-The background problem that makes <STRONG>tic</STRONG> tricky isn't the capability
-translation itself, it's the resolution of <STRONG>use</STRONG> capabilities. Older
-versions would not handle forward <STRONG>use</STRONG> references for this reason
-(that is, a using terminal always had to follow its use target in the
-source file). By doing this, they got away with a simple implementation
-tactic; compile everything as it blows by, then resolve uses from compiled
-entries. <P>
-
-This won't do for <STRONG>ncurses</STRONG>. The problem is that that the whole
-compilation process has to be embeddable in the <STRONG>ncurses</STRONG> library
-so that it can be called by the startup code to translate termcap
-entries on the fly. The embedded version can't go promiscuously writing
-everything it translates out to disk -- for one thing, it will typically
-be running with non-root permissions. <P>
-
-So our <STRONG>tic</STRONG> is designed to parse an entire terminfo file into a
-doubly-linked circular list of entry structures in-core, and then do
-<STRONG>use</STRONG> resolution in-memory before writing everything out. This
-design has other advantages: it makes forward and back use-references
-equally easy (so we get the latter for free), and it makes checking for
-name collisions before they're written out easy to do. <P>
-
-And this is exactly how the embedded version works. But the stand-alone
-user-accessible version of <STRONG>tic</STRONG> partly reverts to the historical
-strategy; it writes to disk (not keeping in core) any entry with no
-<STRONG>use</STRONG> references. <P>
-
-This is strictly a core-economy kluge, implemented because the
-terminfo master file is large enough that some core-poor systems swap
-like crazy when you compile it all in memory...there have been reports of
-this process taking <STRONG>three hours</STRONG>, rather than the twenty seconds
-or less typical on the author's development box. <P>
-
-So. The executable <STRONG>tic</STRONG> passes the entry-parser a hook that
-<EM>immediately</EM> writes out the referenced entry if it has no use
-capabilities. The compiler main loop refrains from adding the entry
-to the in-core list when this hook fires. If some other entry later
-needs to reference an entry that got written immediately, that's OK;
-the resolution code will fetch it off disk when it can't find it in
-core. <P>
-
-Name collisions will still be detected, just not as cleanly. The
-<CODE>write_entry()</CODE> code complains before overwriting an entry that
-postdates the time of <STRONG>tic</STRONG>'s first call to
-<CODE>write_entry()</CODE>, Thus it will complain about overwriting
-entries newly made during the <STRONG>tic</STRONG> run, but not about
-overwriting ones that predate it.
-
-<H2><A NAME="translation">Source-Form Translation</A></H2>
-
-Another use of <STRONG>tic</STRONG> is to do source translation between various termcap
-and terminfo formats. There are more variants out there than you might
-think; the ones we know about are described in the <STRONG>captoinfo(1)</STRONG>
-manual page. <P>
-
-The translation output code (<CODE>dump_entry()</CODE> in
-<CODE>ncurses/dump_entry.c</CODE>) is shared with the <STRONG>infocmp(1)</STRONG>
-utility. It takes the same internal representation used to generate
-the binary form and dumps it to standard output in a specified
-format. <P>
-
-The <CODE>include/Caps</CODE> file has a header comment describing ways you
-can specify source translations for nonstandard capabilities just by
-altering the master table. It's possible to set up capability aliasing
-or tell the compiler to plain ignore a given capability without writing
-any C code at all. <P>
-
-For circumstances where you need to do algorithmic translation, there
-are functions in <CODE>parse_entry.c</CODE> called after the parse of each
-entry that are specifically intended to encapsulate such
-translations. This, for example, is where the AIX <STRONG>box1</STRONG> capability
-get translated to an <STRONG>acsc</STRONG> string.
-
-<H1><A NAME="utils">Other Utilities</A></H1>
-
-The <STRONG>infocmp</STRONG> utility is just a wrapper around the same
-entry-dumping code used by <STRONG>tic</STRONG> for source translation. Perhaps
-the one interesting aspect of the code is the use of a predicate
-function passed in to <CODE>dump_entry()</CODE> to control which
-capabilities are dumped. This is necessary in order to handle both
-the ordinary De-compilation case and entry difference reporting. <P>
-
-The <STRONG>tput</STRONG> and <STRONG>clear</STRONG> utilities just do an entry load
-followed by a <CODE>tputs()</CODE> of a selected capability.
-
-<H1><A NAME="style">Style Tips for Developers</A></H1>
-
-See the TO-DO file in the top-level directory of the source distribution
-for additions that would be particularly useful. <P>
-
-The prefix <CODE>_nc_</CODE> should be used on library public functions that are
-not part of the curses API in order to prevent pollution of the
-application namespace.
-
-If you have to add to or modify the function prototypes in curses.h.in,
-read ncurses/MKlib_gen.sh first so you can avoid breaking XSI conformance.
-
-Please join the ncurses mailing list. See the INSTALL file in the
-top level of the distribution for details on the list. <P>
-
-Look for the string <CODE>FIXME</CODE> in source files to tag minor bugs
-and potential problems that could use fixing. <P>
-
-Don't try to auto-detect OS features in the main body of the C code.
-That's the job of the configuration system. <P>
-
-To hold down complexity, do make your code data-driven. Especially,
-if you can drive logic from a table filtered out of
-<CODE>include/Caps</CODE>, do it. If you find you need to augment the
-data in that file in order to generate the proper table, that's still
-preferable to ad-hoc code -- that's why the fifth field (flags) is
-there. <P>
-
-Have fun!
-
-<H1><A NAME="port">Porting Hints</A></H1>
-
-The following notes are intended to be a first step towards DOS and Macintosh
-ports of the ncurses libraries. <P>
-
-The following library modules are `pure curses'; they operate only on
-the curses internal structures, do all output through other curses
-calls (not including <CODE>tputs()</CODE> and <CODE>putp()</CODE>) and do not
-call any other UNIX routines such as signal(2) or the stdio library.
-Thus, they should not need to be modified for single-terminal
-ports.
-
-<blockquote>
-<code>
-lib_addch.c
-lib_addstr.c
-lib_bkgd.c
-lib_box.c
-lib_clear.c
-lib_clrbot.c
-lib_clreol.c
-lib_delch.c
-lib_delwin.c
-lib_erase.c
-lib_inchstr.c
-lib_insch.c
-lib_insdel.c
-lib_insstr.c
-lib_keyname.c
-lib_move.c
-lib_mvwin.c
-lib_newwin.c
-lib_overlay.c
-lib_pad.c
-lib_printw.c
-lib_refresh.c
-lib_scanw.c
-lib_scroll.c
-lib_scrreg.c
-lib_set_term.c
-lib_touch.c
-lib_tparm.c
-lib_tputs.c
-lib_unctrl.c
-lib_window.c
-panel.c
-</code>
-</blockquote>
-<P>
-
-This module is pure curses, but calls outstr():
-
-<blockquote>
-<code>
-lib_getstr.c
-</code>
-</blockquote>
-<P>
-
-These modules are pure curses, except that they use <CODE>tputs()</CODE>
-and <CODE>putp()</CODE>:
-
-<blockquote>
-<code>
-lib_beep.c
-lib_color.c
-lib_endwin.c
-lib_options.c
-lib_slk.c
-lib_vidattr.c
-</code>
-</blockquote>
-<P>
-
-This modules assist in POSIX emulation on non-POSIX systems:
-<DL>
-<DT> sigaction.c
-<DD> signal calls
-</DL>
-
-The following source files will not be needed for a
-single-terminal-type port.
-
-<blockquote>
-<code>
-alloc_entry.c
-captoinfo.c
-clear.c
-comp_captab.c
-comp_error.c
-comp_hash.c
-comp_main.c
-comp_parse.c
-comp_scan.c
-dump_entry.c
-infocmp.c
-parse_entry.c
-read_entry.c
-tput.c
-write_entry.c
-</code>
-</blockquote>
-<P>
-
-The following modules will use open()/read()/write()/close()/lseek() on files,
-but no other OS calls.
-
-<DL>
-<DT>lib_screen.c
-<DD>used to read/write screen dumps
-<DT>lib_trace.c
-<DD>used to write trace data to the logfile
-</DL>
-
-Modules that would have to be modified for a port start here: <P>
-
-The following modules are `pure curses' but contain assumptions inappropriate
-for a memory-mapped port.
-
-<dl>
-<dt>lib_longname.c<dd>assumes there may be multiple terminals
-<dt>lib_acs.c<dd>assumes acs_map as a double indirection
-<dt>lib_mvcur.c<dd>assumes cursor moves have variable cost
-<dt>lib_termcap.c<dd>assumes there may be multiple terminals
-<dt>lib_ti.c<dd>assumes there may be multiple terminals
-</dl>
-
-The following modules use UNIX-specific calls:
-
-<dl>
-<dt>lib_doupdate.c<dd>input checking
-<dt>lib_getch.c<dd>read()
-<dt>lib_initscr.c<dd>getenv()
-<dt>lib_newterm.c
-<dt>lib_baudrate.c
-<dt>lib_kernel.c<dd>various tty-manipulation and system calls
-<dt>lib_raw.c<dd>various tty-manipulation calls
-<dt>lib_setup.c<dd>various tty-manipulation calls
-<dt>lib_restart.c<dd>various tty-manipulation calls
-<dt>lib_tstp.c<dd>signal-manipulation calls
-<dt>lib_twait.c<dd>gettimeofday(), select().
-</dl>
-
-<HR>
-<ADDRESS>Eric S. Raymond &lt;esr@snark.thyrsus.com&gt;</ADDRESS>
-(Note: This is <EM>not</EM> the <A HREF="#bugtrack">bug address</A>!)
-</BODY>
-</HTML>
diff --git a/ncurses-5.2/doc/html/index.html b/ncurses-5.2/doc/html/index.html
deleted file mode 100644
index 6e0967c..0000000
--- a/ncurses-5.2/doc/html/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>Welcome to ncurses</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-</HEAD>
-<BODY>
-
-<H1>Welcome to ncurses</H1>
-From this index page you have access to these further documents
-<UL>
-<LI>The <a href="announce.html">Announcement</a> of the current version of ncurses.</LI>
-<LI>An <a href="ncurses-intro.html">Introduction</a> into (n)curses programming.</LI>
-<LI>A <a href="hackguide.html">hackers guide</a> to ncurses.</LI>
-<LI>A description of the <a href="Ada95.html">Ada95 binding</a> to ncurses.</LI>
-</UL><P>
-We also have HTML versions of all the ncurses <a href="man">manpages</a>.
-</BODY>
-</HTML>
-<!--
-# The following sets edit modes for GNU EMACS
-# Local Variables:
-# mode:html
-# case-fold-search:nil
-# fill-column:70
-# End:
--->
diff --git a/ncurses-5.2/doc/html/man/captoinfo.1m.html b/ncurses-5.2/doc/html/man/captoinfo.1m.html
deleted file mode 100644
index 806aec5..0000000
--- a/ncurses-5.2/doc/html/man/captoinfo.1m.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<HTML>
-<BODY>
-<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>
- 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> . . .
-
-
-</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
- the program runs.
-
- <B>-V</B> print out the version of the program in use on
- standard 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.
-
- <B>-w</B> change the output to <I>width</I> characters.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description
- database.
-
-
-</PRE>
-<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
- notification to stderr, inviting the user to check that it
- has not mistakenly translated a completely unknown and
- random capability and/or syntax error.
-
- Nonstd Std From Terminfo
- name name capability
- -----------------------------------------------
- BO mr AT&amp;T enter_reverse_mode
- CI vi AT&amp;T cursor_invisible
- CV ve AT&amp;T cursor_normal
- DS mh AT&amp;T enter_dim_mode
- EE me AT&amp;T exit_attribute_mode
-
- FE LF AT&amp;T label_on
- FL LO AT&amp;T label_off
- XS mk AT&amp;T enter_secure_mode
- EN @7 XENIX key_end
- GE ae XENIX exit_alt_charset_mode
- GS as XENIX enter_alt_charset_mode
- HM kh XENIX key_home
- LD kL XENIX key_dl
- PD kN XENIX key_npage
- PN po XENIX prtr_off
- PS pf XENIX prtr_on
- PU kP XENIX key_ppage
- RT @8 XENIX kent
- UP ku XENIX kcuu1
- KA k; Tek key_f10
- KB F1 Tek key_f11
- KC F2 Tek key_f12
- KD F3 Tek key_f13
- KE F4 Tek key_f14
- KF F5 Tek key_f15
- BC Sb Tek set_background
- 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:
-
- Cap Graphic
- -----------------------------
- G2 upper left
- G3 lower left
- G1 upper right
- G4 lower right
- GR pointing right
- GL pointing left
- GU pointing up
- GD pointing down
- GH horizontal line
- GV vertical line
- GC intersection
- G6 upper left
- G7 lower left
- G5 upper right
- G8 lower right
- Gr tee pointing right
- Gr tee pointing left
- Gu tee pointing up
- Gd tee pointing down
- Gh horizontal line
- Gv vertical line
- Gc intersection
- 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.
-
- 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 XSI
- -------------
- ksel kslt
- kbtab kcbt
- font0 s0ds
- font1 s1ds
- font2 s2ds
- font3 s3ds
-
- Additionally, the AIX <B>box1</B> capability will be
- automatically translated to an <B>acsc</B> 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.
-
-
-</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>.
-
- The trace option isn't identical to SVr4's. Under SVr4,
- instead of following the -v with a trace level n, you
- repeat it n times.
-
-
-</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>
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Eric S. Raymond &lt;esr@snark.thyrsus.com&gt;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/clear.1.html b/ncurses-5.2/doc/html/man/clear.1.html
deleted file mode 100644
index fad1c20..0000000
--- a/ncurses-5.2/doc/html/man/clear.1.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>clear</B> - clear the terminal screen
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>clear</B>
-
-
-</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.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_addch.3x.html b/ncurses-5.2/doc/html/man/curs_addch.3x.html
deleted file mode 100644
index 74fdef6..0000000
--- a/ncurses-5.2/doc/html/man/curs_addch.3x.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<HTML>
-<BODY>
-<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
- advance the cursor
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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
- 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-
- 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
- scrolled up one line.
-
- If <I>ch</I> is a tab, newline, or backspace, the cursor is moved
- appropriately within the window. Backspace moves the cur-
- sor one character left; at the left edge of a window it
- does nothing. Newline does a <B>clrtoeol</B>, then moves the
- cursor to the window left margin on the next line,
- scrolling the window if on the last line). Tabs are con-
- sidered to be at every eighth column.
-
- 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>
- after adding a control character does not return the char-
- acter itself, but instead returns the ^-representation of
- 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-
- 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
- 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
- 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>
- --------------------------------------------------
- ACS_BLOCK # solid square block
- ACS_BOARD # board of squares
- ACS_BTEE + bottom tee
- ACS_BULLET o bullet
- ACS_CKBOARD : checker board (stipple)
- ACS_DARROW v arrow pointing down
- ACS_DEGREE ' degree symbol
- ACS_DIAMOND + diamond
- ACS_GEQUAL &gt; greater-than-or-equal-to
- ACS_HLINE - horizontal line
- ACS_LANTERN # lantern symbol
- ACS_LARROW &lt; arrow pointing left
- ACS_LEQUAL &lt; less-than-or-equal-to
- ACS_LLCORNER + lower left-hand corner
- ACS_LRCORNER + lower right-hand corner
- ACS_LTEE + left tee
- ACS_NEQUAL ! not-equal
- ACS_PI * greek pi
- ACS_PLMINUS # plus/minus
- ACS_PLUS + plus
- ACS_RARROW &gt; arrow pointing right
- ACS_RTEE + right tee
- ACS_S1 - scan line 1
- ACS_S3 - scan line 3
- ACS_S7 - scan line 7
- ACS_S9 _ scan line 9
- ACS_STERLING f pound-sterling symbol
- ACS_TTEE + top tee
- ACS_UARROW ^ arrow pointing up
- ACS_ULCORNER + upper left-hand corner
- ACS_URCORNER + upper right-hand corner
- ACS_VLINE | vertical line
-
-
-
-</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-
- 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
- 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.
-
- 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>.
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_addchstr.3x.html b/ncurses-5.2/doc/html/man/curs_addchstr.3x.html
deleted file mode 100644
index 43f244d..0000000
--- a/ncurses-5.2/doc/html/man/curs_addchstr.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- These routines copy <I>chstr</I> into the window image structure
- 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
- 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-
- form any kind of checking (such as for the newline,
- backspace, or carriage return characters), they don't
- advance the current cursor position, they don't expand
- other control characters to ^-escapes, and they truncate
- the string if it crosses the right margin, rather then
- wrapping it around to the new line.
-
-
-
-</PRE>
-<H2>RETURN VALUES</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-
- wise noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all routines except <B>waddchnstr</B> 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>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
-
-
-</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/ncurses-5.2/doc/html/man/curs_addstr.3x.html b/ncurses-5.2/doc/html/man/curs_addstr.3x.html
deleted file mode 100644
index e83e795..0000000
--- a/ncurses-5.2/doc/html/man/curs_addstr.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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.
-
-
-</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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all of these routines except <B>waddstr</B> and
- <B>waddnstr</B> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- All these entry points are described in the XSI Curses
- standard, Issue 4. The XSI errors EILSEQ and EOVERFLOW,
- associated with extended-level conformance, are not yet
- detected.
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_attr.3x.html b/ncurses-5.2/doc/html/man/curs_attr.3x.html
deleted file mode 100644
index 6c2df3d..0000000
--- a/ncurses-5.2/doc/html/man/curs_attr.3x.html
+++ /dev/null
@@ -1,186 +0,0 @@
-<HTML>
-<BODY>
-<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-
- 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>
-
-
-</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
- 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
- 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
- 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
- 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
- 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>.
-
-
-
-</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.
-
-
-</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-
- 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 specifies that each pair of corre-
- sponding <B>A_</B> and <B>WA_</B>-using functions operates on the same
- 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
- 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>
-
-</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/ncurses-5.2/doc/html/man/curs_beep.3x.html b/ncurses-5.2/doc/html/man/curs_beep.3x.html
deleted file mode 100644
index 516cd68..0000000
--- a/ncurses-5.2/doc/html/man/curs_beep.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <B>int</B> <B>beep(void);</B>
- <B>int</B> <B>flash(void);</B>
-
-
-</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
- terminal, if possible; otherwise it flashes the screen
- (visible bell). The routine <B>flash</B> 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
- flash the screen.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return <B>OK</B> if they succeed in beeping or
- flashing, <B>ERR</B> otherwise.
-
-
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
- SVr4's beep and flash routines always returned <B>OK</B>, so it
- was not possible to tell when the beep or flash failed.
-
-
-</PRE>
-<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>.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_bkgd.3x.html b/ncurses-5.2/doc/html/man/curs_bkgd.3x.html
deleted file mode 100644
index d498f46..0000000
--- a/ncurses-5.2/doc/html/man/curs_bkgd.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
- background manipulation routines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>bkgdset</B> and <B>wbkgdset</B> routines manipulate the back-
- ground of the named window. The window background is a
- <B>chtype</B> 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-
- ters that are written into the window with <B>waddch</B>. 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 <B>bkgd</B> and <B>wbkgd</B> functions set the background property
- 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 <B>getbkgd</B> function returns the given window's current
- 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>
- 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.
-
-
-</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.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_border.3x.html b/ncurses-5.2/doc/html/man/curs_border.3x.html
deleted file mode 100644
index 44f6e43..0000000
--- a/ncurses-5.2/doc/html/man/curs_border.3x.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<HTML>
-<BODY>
-<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,
- 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>
-
-
-</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-
- tion in the window. The current cursor position is not
- changed. The line is at most <I>n</I> characters long, or as
- 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-
- tion in the window. The current cursor position is not
- changed. The line is at most <I>n</I> characters long, or as
- 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
- this appears to be an error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The borders generated by these functions are <I>inside</I> bor-
- 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.
-
-
-</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.
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_clear.3x.html b/ncurses-5.2/doc/html/man/curs_clear.3x.html
deleted file mode 100644
index 1a874f2..0000000
--- a/ncurses-5.2/doc/html/man/curs_clear.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#</B> <B>include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>erase</B> and <B>werase</B> routines copy blanks to every posi-
- 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
- and repainted from scratch.
-
- The <B>clrtobot</B> and <B>wclrtobot</B> 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.
-
- The <B>clrtoeol</B> and <B>wclrtoeol</B> 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-
- dition (as set by <B>wbkgdset</B>) merged into them.
-
-
-</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
- 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.
-
-
-</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
- 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.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_color.3x.html b/ncurses-5.2/doc/html/man/curs_color.3x.html
deleted file mode 100644
index b24a83c..0000000
--- a/ncurses-5.2/doc/html/man/curs_color.3x.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</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>
-
-
-</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
- 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>,
- 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
- 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
- of red, green, and blue components in an initialized
- color. The routine <B>pair_content</B> allows a programmer to
- 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
- 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,
- green, yellow, blue, magenta, cyan, and white), and two
- global variables, <B>COLORS</B> and <B>COLOR_PAIRS</B> (respectively
- defining the maximum number of colors and color-pairs the
- terminal can support). It also restores the colors on the
- terminal to the values they had when the terminal was just
- turned on.
-
- The <B>init_pair</B> 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:
-
- - The value of the first argument must be between <B>1</B> and
- <B>COLOR_PAIRS-1</B>.
-
- - The value of the second and third arguments must be
- between 0 and <B>COLORS</B> (the 0 color pair is wired to
- 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
- 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.
-
- The <B>init_color</B> routine changes the definition of a color.
- It takes four arguments: the number of the color to be
- changed followed by three RGB values (for the amounts of
- red, green, and blue components). The value of the first
- argument must be between <B>0</B> and <B>COLORS</B>. (See the section
- <B>Colors</B> for the default color index.) Each of the last
- three arguments must be a value between 0 and 1000. When
- <B>init_color</B> is used, all occurrences of that color on the
- 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-
- 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
- routine facilitates writing terminal-independent programs.
-
- The <B>color_content</B> routine gives programmers a way to find
- the intensity of the red, green, and blue (RGB) components
- in a color. It requires four arguments: the color number,
- and three addresses of <B>short</B>s for storing the information
- about the amounts of red, green, and blue components in
- the given color. The value of the first argument must be
- between 0 and <B>COLORS</B>. The values that are stored at the
- addresses pointed to by the last three arguments are
- between 0 (no component) and 1000 (maximum amount of com-
- ponent).
-
- The <B>pair_content</B> routine allows programmers to find out
- what colors a given color-pair consists of. It requires
- three arguments: the color-pair number, and two addresses
- of <B>short</B>s for storing the foreground and the background
- color numbers. The value of the first argument must be
- between 1 and <B>COLOR_PAIRS-1</B>. The values that are stored
- at the addresses pointed to by the second and third argu-
- ments are between 0 and <B>COLORS</B>.
-
- <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>
- 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>
-
-
-</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>.
-
- 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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- In the <I>ncurses</I> implementation, there is a separate color
- 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 SVr4/XSI interface is not really designed with this in
- mind, and historical implementations may use a single
- shared color palette.
-
- Note that setting an implicit background color via a color
- pair affects only character cells that a character write
- operation explicitly touches. To change the background
- color used when parts of a window are blanked by erasing
- or scrolling operations, see <B><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></B>.
-
- 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.
-
- - The A_BLINK attribute should in theory cause the
- background to go bright. This often fails to work,
- and even some cards for which it mostly works (such
- as the Paradise and compatibles) do the wrong thing
- when you try to set a bright "yellow" background (you
- get a blinking yellow foreground instead).
-
- - Color RGB values are not settable.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- This implementation satisfies XSI Curses's minimum maxi-
- mums for <B>COLORS</B> and <B>COLOR_PAIRS</B>.
-
- The <B>init_pair</B> routine accepts negative values of fore-
- ground and background color to support the
- <B>use_default_colors</B> extension, but only if that routine has
- been first invoked.
-
- The assumption that <B>COLOR_BLACK</B> is the default background
- color for all terminals can be modified using the
- <B>assume_default_colors</B> extension,
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_delch.3x.html b/ncurses-5.2/doc/html/man/curs_delch.3x.html
deleted file mode 100644
index 8d37648..0000000
--- a/ncurses-5.2/doc/html/man/curs_delch.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- These routines delete the character under the cursor; all
- 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
- 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>")
- upon successful completion.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>delch</B>, <B>mvdelch</B>, and <B>mvwdelch</B> may be macros.
-
-
-</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
- failure, but specifies no error conditions.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_deleteln.3x.html b/ncurses-5.2/doc/html/man/curs_deleteln.3x.html
deleted file mode 100644
index 62cb0a4..0000000
--- a/ncurses-5.2/doc/html/man/curs_deleteln.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>deleteln</B> and <B>wdeleteln</B> 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 <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
- cleared. The current cursor position remains the same.
-
- The <B>insertln</B> and <B>insertln</B> routines, insert a blank line
- 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>")
- 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
- failure, but specifies no error conditions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all but <B>winsdelln</B> may be macros.
-
- 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
- been set on the current window.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_extend.3x.html b/ncurses-5.2/doc/html/man/curs_extend.3x.html
deleted file mode 100644
index a91102e..0000000
--- a/ncurses-5.2/doc/html/man/curs_extend.3x.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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>
-
- The <I>use</I><B>_</B><I>extended</I><B>_</B><I>names()</I> 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
- essential descision is made by using the <B>-x</B> option of <I>tic</I>
- to compile extended terminal definitions. However you can
- disable this feature to ensure compatiblity with other
- implementations of curses
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <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>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.2/doc/html/man/curs_getch.3x.html b/ncurses-5.2/doc/html/man/curs_getch.3x.html
deleted file mode 100644
index 833b88e..0000000
--- a/ncurses-5.2/doc/html/man/curs_getch.3x.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>getch</B>, <B>wgetch</B>, <B>mvgetch</B> and <B>mvwgetch</B>, routines read a
- character from the window. In no-delay mode, if no input
- is waiting, the value <B>ERR</B> is returned. In delay mode, the
- program waits until the system passes text through to the
- program. Depending on the setting of <B>cbreak</B>, 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.
-
- Unless <B>noecho</B> 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
- <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.
- 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
- called before another character is read.
-
- If <B>keypad</B> is <B>TRUE</B>, 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
- <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
- 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
- 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 <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.
-
-
- <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
- that not all of these are necessarily supported on any
- particular terminal.
-
- <I>Name</I> <I>Key</I> <I>name</I>
-
- KEY_BREAK Break key
- KEY_DOWN The four arrow keys ...
- KEY_UP
- KEY_LEFT
- KEY_RIGHT
- KEY_HOME Home key (upward+left arrow)
- KEY_BACKSPACE Backspace
- KEY_F0 Function keys; space for 64 keys
- is reserved.
- KEY_F(<I>n</I>) For 0 &lt;= <I>n</I> &lt;= 63
- KEY_DL Delete line
- KEY_IL Insert line
- KEY_DC Delete character
- KEY_IC Insert char or enter insert mode
- KEY_EIC Exit insert char mode
- KEY_CLEAR Clear screen
- KEY_EOS Clear to end of screen
- KEY_EOL Clear to end of line
- KEY_SF Scroll 1 line forward
- KEY_SR Scroll 1 line backward (reverse)
- KEY_NPAGE Next page
- KEY_PPAGE Previous page
- KEY_STAB Set tab
- KEY_CTAB Clear tab
- KEY_CATAB Clear all tabs
- KEY_ENTER Enter or send
- KEY_SRESET Soft (partial) reset
- KEY_RESET Reset or hard reset
- KEY_PRINT Print or copy
- KEY_LL Home down or bottom (lower left).
- KEY_A1 Upper left of keypad
- KEY_A3 Upper right of keypad
- KEY_B2 Center of keypad
- KEY_C1 Lower left of keypad
- KEY_C3 Lower right of keypad
- KEY_BTAB Back tab key
- KEY_BEG Beg(inning) key
- KEY_CANCEL Cancel key
-
- KEY_CLOSE Close key
- KEY_COMMAND Cmd (command) key
- KEY_COPY Copy key
- KEY_CREATE Create key
- KEY_END End key
- KEY_EXIT Exit key
- KEY_FIND Find key
- KEY_HELP Help key
- KEY_MARK Mark key
- KEY_MESSAGE Message key
- KEY_MOUSE Mouse event read
- KEY_MOVE Move key
- KEY_NEXT Next object key
- KEY_OPEN Open key
- KEY_OPTIONS Options key
- KEY_PREVIOUS Previous object key
- KEY_REDO Redo key
- KEY_REFERENCE Ref(erence) key
- KEY_REFRESH Refresh key
- KEY_REPLACE Replace key
- KEY_RESIZE Screen resized
- KEY_RESTART Restart key
- KEY_RESUME Resume key
- KEY_SAVE Save key
- KEY_SBEG Shifted beginning key
- KEY_SCANCEL Shifted cancel key
- KEY_SCOMMAND Shifted command key
- KEY_SCOPY Shifted copy key
- KEY_SCREATE Shifted create key
- KEY_SDC Shifted delete char key
- KEY_SDL Shifted delete line key
- KEY_SELECT Select key
- KEY_SEND Shifted end key
- KEY_SEOL Shifted clear line key
- KEY_SEXIT Shifted exit key
- KEY_SFIND Shifted find key
- KEY_SHELP Shifted help key
- KEY_SHOME Shifted home key
- KEY_SIC Shifted input key
- KEY_SLEFT Shifted left arrow key
- KEY_SMESSAGE Shifted message key
- KEY_SMOVE Shifted move key
- KEY_SNEXT Shifted next key
- KEY_SOPTIONS Shifted options key
- KEY_SPREVIOUS Shifted prev key
- KEY_SPRINT Shifted print key
- KEY_SREDO Shifted redo key
- KEY_SREPLACE Shifted replace key
- KEY_SRIGHT Shifted right arrow
- KEY_SRSUME Shifted resume key
- KEY_SSAVE Shifted save key
- KEY_SSUSPEND Shifted suspend key
- KEY_SUNDO Shifted undo key
-
- KEY_SUSPEND Suspend key
- KEY_UNDO Undo key
-
- Keypad is arranged like this:
-
- +-----+------+-------+
- | <B>A1</B> | <B>up</B> | <B>A3</B> |
- +-----+------+-------+
- |<B>left</B> | <B>B2</B> | <B>right</B> |
- +-----+------+-------+
- | <B>C1</B> | <B>down</B> | <B>C3</B> |
- +-----+------+-------+
- 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.
-
-
-
-</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())
- upon successful completion.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Use of the escape key by a programmer for a single charac-
- ter function is discouraged, as it will cause a delay of
- 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
- undesirable results.
-
- Note that <B>getch</B>, <B>mvgetch</B>, and <B>mvwgetch</B> may be macros.
-
- 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>.
-
-
-</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,
- 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
- 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-
- 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>.
-
- 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.
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_getstr.3x.html b/ncurses-5.2/doc/html/man/curs_getstr.3x.html
deleted file mode 100644
index 19c8ce1..0000000
--- a/ncurses-5.2/doc/html/man/curs_getstr.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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
- 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>.
-
- <B>wgetnstr</B> reads at most <I>n</I> characters, thus preventing a
- possible overflow of the input buffer. Any attempt to
- enter more characters (other than the terminating newline
- or carriage return) causes a beep. Function keys also
- cause a beep and are ignored. The <B>getnstr</B> function reads
- from the <I>stdscr</I> default window.
-
- 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
- kill character.
-
- Characters input are echoed only if <B>echo</B> 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>
- 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>")
- upon successful completion.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>getstr</B>, <B>mvgetstr</B>, and <B>mvwgetstr</B> 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
- 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).
-
- 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
- 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-
- 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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_getyx.3x.html b/ncurses-5.2/doc/html/man/curs_getyx.3x.html
deleted file mode 100644
index 562d710..0000000
--- a/ncurses-5.2/doc/html/man/curs_getyx.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
- and window coordinates
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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>.
-
- If <I>win</I> is a subwindow, the <B>getparyx</B> macro places 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>.
-
- Like <B>getyx</B>, the <B>getbegyx</B> and <B>getmaxyx</B> macros store the
- 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>.,
- 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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_inch.3x.html b/ncurses-5.2/doc/html/man/curs_inch.3x.html
deleted file mode 100644
index 2c4b22a..0000000
--- a/ncurses-5.2/doc/html/man/curs_inch.3x.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- These routines return the character, of type <B>chtype</B>, 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
- <B>&lt;curses.h&gt;</B> can be used with the <B>&amp;</B> (logical AND) operator
- to extract the character or attributes alone.
-
-
- <B>Attributes</B>
- The following bit-masks may be AND-ed with characters
- returned by <B>winch</B>.
-
- <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
-
-
-</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>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_inchstr.3x.html b/ncurses-5.2/doc/html/man/curs_inchstr.3x.html
deleted file mode 100644
index 5688c02..0000000
--- a/ncurses-5.2/doc/html/man/curs_inchstr.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- These routines return a NULL-terminated array of <B>chtype</B>
- 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 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>].
-
-
-</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
- (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.
- 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
- meaning of the return value.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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>.
-
-
-</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>.
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_initscr.3x.html b/ncurses-5.2/doc/html/man/curs_initscr.3x.html
deleted file mode 100644
index 81be73b..0000000
--- a/ncurses-5.2/doc/html/man/curs_initscr.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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>.
-
- 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
- standard error and exits; otherwise, a pointer is returned
- to <B>stdscr</B>.
-
- 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
- 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-
- 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
- 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>
- 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-
- 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.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <B>endwin</B> returns the integer <B>ERR</B> upon failure and <B>OK</B> upon
- successful completion.
-
- Routines that return pointers always return <B>NULL</B> on error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>initscr</B> and <B>newterm</B> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4. It specifies that portable applications must not
- call <B>initscr</B> more than once.
-
- 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.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_inopts.3x.html b/ncurses-5.2/doc/html/man/curs_inopts.3x.html
deleted file mode 100644
index 13ec59c..0000000
--- a/ncurses-5.2/doc/html/man/curs_inopts.3x.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<HTML>
-<BODY>
-<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
- 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>
-
-
-</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
- 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
- the terminal to normal (cooked) mode.
-
- Initially the terminal may or may not be in <B>cbreak</B> mode,
- 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>.]
-
- 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.
- Echoing by the tty driver is always disabled, but ini-
- tially <B>getch</B> 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
- <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>.]
-
- 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
- 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
- half-delay mode.
-
- If the <B>intrflush</B> option is enabled, (<I>bf</I> is <B>TRUE</B>), when an
- interrupt key is pressed on the keyboard (interrupt,
- break, quit) all output in the tty driver queue will be
- flushed, giving the effect of faster response to the
- interrupt, but causing <B>curses</B> to have the wrong idea of
- what is on the screen. Disabling (<I>bf</I> is <B>FALSE</B>), the
- 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
- 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
- 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,
- 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
- 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
- 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>.
-
- 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>
- is called, the queues will be flushed when these control
- characters are read. You may want to call <B>noqiflush()</B> in
- 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
- additional capability of being able to block for only
- <I>delay</I> milliseconds (where <I>delay</I> is positive).
-
- The <B>curses</B> library does ``line-breakout optimization'' by
- looking for typeahead periodically while updating the
- screen. If input is found, and it is coming from a tty,
- the current update is postponed until <B>refresh</B> or <B>doupdate</B>
- 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
- typeahead checking is done.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines that return an integer return <B>ERR</B> upon fail-
- ure and OK (SVr4 specifies only "an integer value other
- than <B>ERR</B>") upon successful completion, unless otherwise
- noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4.
-
- The ncurses library obeys the XPG4 standard and the his-
- 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>
- 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>
- 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>
- may be macros.
-
- The <B>noraw</B> and <B>nocbreak</B> calls follow historical practice in
- that they attempt to restore to normal (`cooked') mode
- from raw and cbreak modes respectively. Mixing raw/noraw
- and cbreak/nocbreak calls leads to tty driver control
- states that are hard to predict or understand; it is not
- recommended.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_insch.3x.html b/ncurses-5.2/doc/html/man/curs_insch.3x.html
deleted file mode 100644
index 5a1610b..0000000
--- a/ncurses-5.2/doc/html/man/curs_insch.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- These routines, insert the character <I>ch</I> 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.
- The insertion operation does not change the cursor posi-
- tion.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines that return an integer return <B>ERR</B> upon fail-
- ure and OK (SVr4 specifies only "an integer value other
- than <B>ERR</B>") upon successful completion, unless otherwise
- noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_insstr.3x.html b/ncurses-5.2/doc/html/man/curs_insstr.3x.html
deleted file mode 100644
index 2349cbc..0000000
--- a/ncurses-5.2/doc/html/man/curs_insstr.3x.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- These routines insert a character string (as many charac-
- ters as will fit on the line) before the character under
- the cursor. All characters to the right of the cursor are
- shifted right, with the possibility of the rightmost char-
- 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
- string is inserted.
-
- If a character in <I>str</I> is a tab, newline, carriage return
- or backspace, the cursor is moved appropriately within the
- window. A newline also does a <B>clrtoeol</B> before moving.
- 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 (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>
- All routines that return an integer return <B>ERR</B> upon fail-
- ure and OK (SVr4 specifies only "an integer value other
- than <B>ERR</B>") upon successful completion, unless otherwise
- noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all but <B>winsnstr</B> 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.
- The XSI Curses error conditions <B>EILSEQ</B> and <B>EILOVERFLOW</B>
- associated with extended-level conformance are not yet
- detected (this implementation does not yet support XPG4
- multi-byte characters).
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_instr.3x.html b/ncurses-5.2/doc/html/man/curs_instr.3x.html
deleted file mode 100644
index 3074639..0000000
--- a/ncurses-5.2/doc/html/man/curs_instr.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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>
- window
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- These routines return a string of characters in <I>str</I>,
- 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
- (exclusive of the trailing NUL).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All of the functions return <B>ERR</B> upon failure, or the num-
- ber of characters actually read into the string.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all routines except <B>winnstr</B> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses error conditions <B>EILSEQ</B> and <B>EILOVERFLOW</B>
- 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
- 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
- return the string ending at the right margin.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_kernel.3x.html b/ncurses-5.2/doc/html/man/curs_kernel.3x.html
deleted file mode 100644
index 094f396..0000000
--- a/ncurses-5.2/doc/html/man/curs_kernel.3x.html
+++ /dev/null
@@ -1,188 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The following routines give low-level access to various
- <B>curses</B> capabilities. Theses routines typically are used
- 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
- 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
- not want to change the current position of the program's
- cursor. The library routine would call <B>getsyx</B> at the
- 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
- 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
- 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.
-
- <B>ripoffline</B> can be called up to five times before calling
- <B>initscr</B> or <B>newterm</B>.
-
- 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 <B>napms</B> routine is used to sleep for <I>ms</I> milliseconds.
-
-
-</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.
-
-
-</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>.
-
- Older SVr4 man pages warn that the return value of
- <B>curs_set</B> "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.
-
- 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.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The functions <B>setsyx</B> and <B>getsyx</B> are not described in the
- 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-
- 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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_mouse.3x.html b/ncurses-5.2/doc/html/man/curs_mouse.3x.html
deleted file mode 100644
index 6e1ca87..0000000
--- a/ncurses-5.2/doc/html/man/curs_mouse.3x.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<HTML>
-<BODY>
-<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
- 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>
-
-
-</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.
-
- To make mouse events visible, use the <B>mousemask</B> 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 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; setting a nonzero mask may turn it on.
- Whether this happens is device-dependent.
-
- Here are the mouse event type masks:
-
- <I>Name</I> <I>Description</I>
- ---------------------------------------------------------------------
- BUTTON1_PRESSED mouse button 1 down
- BUTTON1_RELEASED mouse button 1 up
- BUTTON1_CLICKED mouse button 1 clicked
- BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
- BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
-
- BUTTON2_PRESSED mouse button 2 down
- BUTTON2_RELEASED mouse button 2 up
- BUTTON2_CLICKED mouse button 2 clicked
- BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
- BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
- BUTTON3_PRESSED mouse button 3 down
- BUTTON3_RELEASED mouse button 3 up
- BUTTON3_CLICKED mouse button 3 clicked
- BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
- BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
- BUTTON4_PRESSED mouse button 4 down
- BUTTON4_RELEASED mouse button 4 up
- BUTTON4_CLICKED mouse button 4 clicked
- BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
- BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
- BUTTON_SHIFT shift was down during button state change
- BUTTON_CTRL control was down during button state change
- BUTTON_ALT alt was down during button state change
- ALL_MOUSE_EVENTS report all button state changes
- REPORT_MOUSE_POSITION report mouse movement
-
- 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
- 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
- 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
- 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
- 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-
- 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
- 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.
-
- 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.
-
-
-
-</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>
- 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
- 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
- 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-
- mented.
-
- The order of the <B>MEVENT</B> structure members is not guaran-
- 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
- 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>).
-
- 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.
-
-
-</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>.
- 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
- 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
- events.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_move.3x.html b/ncurses-5.2/doc/html/man/curs_move.3x.html
deleted file mode 100644
index 7a73e48..0000000
--- a/ncurses-5.2/doc/html/man/curs_move.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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.
- 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-
- ful completion.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>move</B> may be a macro.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4. The standard specifies that if (y,x) is within a
- multi-column character, the cursor is moved to the first
- column of that character; however, this implementation
- does not yet support the extended-level XSI multi-byte
- 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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_outopts.3x.html b/ncurses-5.2/doc/html/man/curs_outopts.3x.html
deleted file mode 100644
index a7a0a45..0000000
--- a/ncurses-5.2/doc/html/man/curs_outopts.3x.html
+++ /dev/null
@@ -1,188 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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
- otherwise stated. It is not necessary to turn these
- options off before calling <B>endwin</B>.
-
- 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-
- 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
- screen to be cleared and repainted from scratch.
-
- If <B>idlok</B> is called with <B>TRUE</B> as second argument, <B>curses</B>
- considers using the hardware insert/delete line feature of
- terminals so equipped. Calling <B>idlok</B> with <B>FALSE</B> 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-
- not be used, <B>curses</B> redraws the changed portions of all
- lines.
-
- If <B>idcok</B> is called with <B>FALSE</B> as second argument, <B>curses</B>
- 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-
- 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
- default.
-
- Normally, the hardware cursor is left at the location of
- the window cursor being refreshed. The <B>leaveok</B> option
- allows the cursor to be left wherever the update happens
- to leave it. It is useful for applications where the cur-
- sor is not used, since it reduces the need for cursor
- motions. If possible, the cursor is made invisible when
- this option is enabled.
-
- 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
- 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 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
- 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>
- 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
- 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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- 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)
- 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.
-
- 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.
-
- The XSI Curses standard does not mention that the cursor
- should be made invisible as a side-effect of <B>leaveok</B>.
- SVr4 curses documentation does this, but the code does
- not. Use <B>curs_set</B> to make the cursor invisible.
-
-
-</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.
-
- The <B>immedok</B> routine is useful for windows that are used as
- 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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_overlay.3x.html b/ncurses-5.2/doc/html/man/curs_overlay.3x.html
deleted file mode 100644
index d2af67a..0000000
--- a/ncurses-5.2/doc/html/man/curs_overlay.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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 <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>.
-
-
-</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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>overlay</B> and <B>overwrite</B> 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
- behavior in the presence of characters with multi-byte
- renditions (not yet supported in this implementation).
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_pad.3x.html b/ncurses-5.2/doc/html/man/curs_pad.3x.html
deleted file mode 100644
index 6172c57..0000000
--- a/ncurses-5.2/doc/html/man/curs_pad.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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
- 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
- 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-
- 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
- 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>.
-
- 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
- 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-
- 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
- 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
- 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>,
- the last location of the pad on the screen is reused for
- the arguments to <B>prefresh</B>.
-
-
-</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 pointers return <B>NULL</B> on error, and
- set <B>errno</B> to <B>ENOMEM</B>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>pechochar</B> may be a macro.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_print.3x.html b/ncurses-5.2/doc/html/man/curs_print.3x.html
deleted file mode 100644
index 1319ba6..0000000
--- a/ncurses-5.2/doc/html/man/curs_print.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>mcprint</B> - ship binary data to printer
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <B>int</B> <B>mcprint(char</B> <B>*data,</B> <B>int</B> <B>len);</B>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- This function uses the <B>mc5p</B> or <B>mc4</B> and <B>mc5</B> capabilities,
- 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
- 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
- (typically about half of its nominal cps rating). Dot-
- matrix printers and 6-page-per-minute lasers can typically
- handle 80cps, so a good conservative rule of thumb is to
- sleep for a second after shipping each 80-character line.
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The <B>mcprint</B> function returns <B>ERR</B> if the write operation
- aborted for some reason. In this case, errno will contain
- either an error associated with <B>write(2)</B> or one of the
- following:
-
- ENODEV
- Capabilities for printer redirection don't exist.
-
- ENOMEM
- Couldn't allocate sufficient memory to buffer the
- printer write.
-
- When <B>mcprint</B> succeeds, it returns the number of char-
- 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
- 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
- interpreted.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_printw.3x.html b/ncurses-5.2/doc/html/man/curs_printw.3x.html
deleted file mode 100644
index 95424b3..0000000
--- a/ncurses-5.2/doc/html/man/curs_printw.3x.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</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> ...);
-
- <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>
-
-
-</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 <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>.
-
-
-</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.
-
-
-</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.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_refresh.3x.html b/ncurses-5.2/doc/html/man/curs_refresh.3x.html
deleted file mode 100644
index a0c616c..0000000
--- a/ncurses-5.2/doc/html/man/curs_refresh.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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-
- minal, as other routines merely manipulate data struc-
- tures. The routine <B>wrefresh</B> copies the named window to
- 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
- 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>,
- which copies the named window to the virtual screen, and
- then calling <B>doupdate</B>, which compares the virtual screen
- to the physical screen and does the actual update. If the
- programmer wishes to output several windows at once, a
- series of calls to <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,
- 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
- 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
- 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
- exploiting this behavior.)
-
- The <B>wredrawln</B> routine indicates to <B>curses</B> that some screen
- lines are corrupted and should be thrown away before any-
- thing is written over them. It touches the indicated
- lines (marking them changed). The routine <B>redrawwin</B>()
- 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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>refresh</B> and <B>redrawwin</B> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
- Whether <B>wnoutrefresh()</B> 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
- explicit <B>touchwin()</B> before the <B>wnoutrefresh()</B> call to
- 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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_scanw.3x.html b/ncurses-5.2/doc/html/man/curs_scanw.3x.html
deleted file mode 100644
index 1fb1ba9..0000000
--- a/ncurses-5.2/doc/html/man/curs_scanw.3x.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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 <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>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <B>vwscanw</B> returns <B>ERR</B> on failure and an integer equal to the
- 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
- 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.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_scr_dump.3x.html b/ncurses-5.2/doc/html/man/curs_scr_dump.3x.html
deleted file mode 100644
index 7931102..0000000
--- a/ncurses-5.2/doc/html/man/curs_scr_dump.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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 <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
- 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
- what the terminal currently has on its screen. If the
- data is determined to be valid, <B>curses</B> bases its next
- 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)]
- 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
- 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>].
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <B>ERR</B> upon failure and <B>OK</B>
- upon success.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>scr_init</B>, <B>scr_set</B>, and <B>scr_restore</B> may be
- macros.
-
-
-</PRE>
-<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
- 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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_scroll.3x.html b/ncurses-5.2/doc/html/man/curs_scroll.3x.html
deleted file mode 100644
index fb2abac..0000000
--- a/ncurses-5.2/doc/html/man/curs_scroll.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>scroll</B> 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 <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
- 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>.
-
-
-</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-
- ful completion.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>scrl</B> and <B>scroll</B> 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
- this will occur, in order 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-
- erated by the scroll function is zeroed. Under this
- implementation it is.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
-
-</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>
-
-</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/ncurses-5.2/doc/html/man/curs_slk.3x.html b/ncurses-5.2/doc/html/man/curs_slk.3x.html
deleted file mode 100644
index cf77d62..0000000
--- a/ncurses-5.2/doc/html/man/curs_slk.3x.html
+++ /dev/null
@@ -1,188 +0,0 @@
-<HTML>
-<BODY>
-<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-
- 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>
-
-
-</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
- eight characters each. In addition to this, the ncurses
- implementation supports a mode where it simulates 12
- labels of up to five characters each. This is most common
- for todays PC like enduser devices. Please note that
- ncurses simulates this mode by taking over up to two lines
- at 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
- 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
- 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 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 <B>slk_label</B> routine returns the current label for label
- number <I>labnum</I>, with leading and trailing blanks stripped.
-
- The <B>slk_clear</B> routine clears the soft labels from the
- screen.
-
- The <B>slk_restore</B> routine, restores the soft labels to the
- screen after a <B>slk_clear</B> 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 <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>.
- 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
- effect only if soft labels are simulated on the bottom
- line of the screen.
-
-
-
-</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
- the soft keys.
-
- <B>slk_label</B> returns <B>NULL</B> on error.
-
-
-</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.
-
-
-</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.
-
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_termattrs.3x.html b/ncurses-5.2/doc/html/man/curs_termattrs.3x.html
deleted file mode 100644
index 2119177..0000000
--- a/ncurses-5.2/doc/html/man/curs_termattrs.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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 <B>erasechar</B> routine returns the user's current erase
- character.
-
- The <B>has_ic</B> routine is true if the terminal has insert- and
- delete- character capabilities.
-
- The <B>has_il</B> 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
- <B>scrollok</B>.
-
- The <B>killchar</B> routine returns the user's current line kill
- character.
-
- The <B>longname</B> 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-
- 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
- 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
- of the screen.
-
- The <B>termname</B> routine returns the value of the
- environmental variable <B>TERM</B> (truncated to 14 characters).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <B>longname</B> and <B>termname</B> return <B>NULL</B> 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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <B>termattrs</B> may be a macro.
-
-
-</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>.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_termcap.3x.html b/ncurses-5.2/doc/html/man/curs_termcap.3x.html
deleted file mode 100644
index a301dd1..0000000
--- a/ncurses-5.2/doc/html/man/curs_termcap.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</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>
-
-
-</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
- 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 <B>tgetflag</B> routine gets the boolean entry for <I>id</I>, or
- zero if it is not available.
-
- The <B>tgetnum</B> routine gets the numeric entry for <I>id</I>, or -1
- 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
- updated to point past the null ending this value.
-
- The <B>tgoto</B> routine instantiates the parameters into the
- given capability. The output from this routine is to be
- passed to <B>tputs</B>.
-
- The <B>tputs</B> routine is described on the <B><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></B>
- manual page. It can retrieve capabilities by either term-
- cap or terminfo name.
-
-
-
-</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
- completion.
-
- Routines that return pointers return <B>NULL</B> on error.
-
-
-</PRE>
-<H2>BUGS</H2><PRE>
- If you call <B>tgetstr</B> to fetch <B>ca</B> 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 <B>tgoto</B> or <B>tparm</B>, which both expand terminfo-style.
-
- Because terminfo conventions for representing padding in
- string capabilities differ from termcap's, <B>tputs("50");</B>
- will put out a literal "50" rather than busy-waiting for
- 50 milliseconds. Cope with it.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions. However, they are marked TO BE WITHDRAWN and may
- be removed in future versions.
-
- Neither the XSI Curses standard nor the SVr4 man pages
- documented the return values of <B>tgetent</B> correctly, though
- all three were in fact returned ever since SVr1.
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_terminfo.3x.html b/ncurses-5.2/doc/html/man/curs_terminfo.3x.html
deleted file mode 100644
index 8a53cbc..0000000
--- a/ncurses-5.2/doc/html/man/curs_terminfo.3x.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</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>
-
-
-</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
- certain terminal capabilities, such as programming func-
- tion keys. For all other functionality, <B>curses</B> routines
- 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>.
- 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-
- 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.
-
- The header files <B>curses.h</B> and <B>term.h</B> should be included
- (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>
- 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>
- 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>:
-
- <B>1</B> means that the terminal is hardcopy, cannot be
- used for curses applications.
-
- <B>0</B> means that the terminal could not be found, or
- 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
- found.
-
- If <I>errret</I> is null, <B>setupterm</B> prints an error message upon
- 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>,
-
- which uses all the defaults and sends the output to <B>std-</B>
- <B>out</B>.
-
- The <B>setterm</B> routine is being replaced by <B>setupterm</B>. The
- call:
-
- <B>setupterm(</B><I>term</I><B>,</B> <B>1,</B> <B>(int</B> <B>*)0)</B>
-
- provides the same functionality as <B>setterm(</B><I>term</I><B>)</B>. The
- <B>setterm</B> routine is included here for BSD compatibility,
- 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 <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>
- boolean, numeric, and string variables thereafter may
- refer to invalid memory locations until another <B>setupterm</B>
- 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
- to a previous state (for example, when reloading a game
- saved as a core image dump). It assumes that the windows
- and the input and output options are the same as when mem-
- ory was saved, but the terminal type and baud rate may be
- different. Accordingly, it saves various tty state bits,
- 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 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 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
- 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 <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
- 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
- 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 <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>.
-
- <B>char</B> <B>*boolnames</B>, <B>*boolcodes</B>, <B>*boolfnames</B>
-
- <B>char</B> <B>*numnames</B>, <B>*numcodes</B>, <B>*numfnames</B>
-
- <B>char</B> <B>*strnames</B>, <B>*strcodes</B>, <B>*strfnames</B>
-
- 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.
-
-
-</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
- in the preceding routine descriptions.
-
- Routines that return pointers always return <B>NULL</B> on error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The <B>setupterm</B> routine should be used in place of <B>setterm</B>.
- 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>.
-
- Note that <B>vidattr</B> and <B>vidputs</B> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The function <B>setterm</B> 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.
-
- 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
- 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
- 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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_touch.3x.html b/ncurses-5.2/doc/html/man/curs_touch.3x.html
deleted file mode 100644
index 198fc85..0000000
--- a/ncurses-5.2/doc/html/man/curs_touch.3x.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>touchwin</B> and <B>touchline</B> 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.
- The routine <B>touchline</B> only pretends that <I>count</I> lines have
- been changed, beginning with line <I>start</I>.
-
- The <B>untouchwin</B> routine marks all lines in the window as
- unchanged since the last call to <B>wrefresh</B>.
-
- 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 <B>is_linetouched</B> and <B>is_wintouched</B> routines return <B>TRUE</B>
- 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
- 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,
- unless otherwise noted in the preceding routine descrip-
- tions.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
- Some historic curses implementations had, as an undocu-
- mented feature, the ability to do the equivalent of
- <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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all routines except <B>wtouchln</B> may be macros.
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_trace.3x.html b/ncurses-5.2/doc/html/man/curs_trace.3x.html
deleted file mode 100644
index 51d082c..0000000
--- a/ncurses-5.2/doc/html/man/curs_trace.3x.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>trace</B> routines are used for debugging the ncurses
- libraries, as well as applications which use the ncurses
- libraries. These functions are normally available only
- with the debugging library <I>libncurses</I><B>_</B><I>g.a</I>, but may be com-
- piled into any model (shared, static, profile) by defining
- the symbol <B>TRACE</B>.
-
- The principal parts of this interface are the <B>trace</B> rou-
- tine which selectively enables different tracing features,
- and the <B>_tracef</B> routine which writes formatted data to the
- <I>trace</I> 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:
-
- TRACE_DISABLE
- turn off tracing.
-
- TRACE_TIMES
- trace user and system times of updates.
-
- TRACE_TPUTS
- trace tputs calls.
-
- TRACE_UPDATE
- trace update actions, old &amp; new screens.
-
- TRACE_MOVE
- trace cursor movement and scrolling.
-
- TRACE_CHARPUT
- trace all character outputs.
-
- TRACE_ORDINARY
- trace all update actions. The old and new screen
- contents are written to the trace file for each
- refresh.
-
- TRACE_CALLS
- trace all curses calls. The parameters for each call
- are traced, as well as return values.
-
- TRACE_VIRTPUT
- trace virtual character puts, i.e., calls to <B>addch</B>.
-
- TRACE_IEVENT
- trace low-level input processing, including timeouts.
-
- TRACE_BITS
- trace state of TTY control bits.
-
- TRACE_ICALLS
- trace internal/nested calls.
-
- TRACE_CCALLS
- trace per-character calls.
-
- TRACE_DATABASE
- trace read/write of terminfo/termcap data.
-
- TRACE_ATTRS
- trace changes to video attributes and colors.
-
- TRACE_MAXIMUM
- maximum trace level, enables all of the separate
- trace features.
-
- Some tracing features are enabled whenever the <B>trace</B>
- 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
- parameters to the <B>_tracef</B> routine.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are not part of the XSI interface. Some
- other curses implementations are known to have similar,
- undocumented features, but they are not compatible with
- ncurses.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>.
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_util.3x.html b/ncurses-5.2/doc/html/man/curs_util.3x.html
deleted file mode 100644
index 5fc178c..0000000
--- a/ncurses-5.2/doc/html/man/curs_util.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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
- 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
- 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
- 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.
-
- <B>flushinp</B> always returns <B>OK</B>.
-
- Routines that return pointers return <B>NULL</B> on error.
-
-
-</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>).
-
-
-</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;.
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/curs_window.3x.html b/ncurses-5.2/doc/html/man/curs_window.3x.html
deleted file mode 100644
index 1fae384..0000000
--- a/ncurses-5.2/doc/html/man/curs_window.3x.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<HTML>
-<BODY>
-<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>
- 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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Calling <B>newwin</B> creates and returns a pointer to a new win-
- dow with the given number of lines and columns. The upper
- left-hand corner of the window is at line <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>.
-
- Calling <B>delwin</B> 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.
-
- 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
- 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
- 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
- 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.
-
- 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
- between the subwindows and the derived windows.
-
- Calling <B>mvderwin</B> 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.
-
- Calling <B>dupwin</B> creates an exact duplicate of the window
- <I>win</I>.
-
- 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-
- ever there is a change in the window.
-
- The <B>wsyncdown</B> routine touches each location in <I>win</I> that
- has been touched in any of its ancestor windows. This
- routine is called by <B>wrefresh</B>, so it should almost never
- be necessary to call it manually.
-
- The routine <B>wcursyncup</B> 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>
- 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.
-
- <B>delwin</B> returns the integer <B>ERR</B> upon failure and <B>OK</B> upon
- successful completion.
-
- Routines that return pointers return <B>NULL</B> on error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- If many small changes are made to the window, the <B>wsyncup</B>
- option could degrade performance.
-
- Note that <B>syncok</B> may be a macro.
-
-
-</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-
- 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
- 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-
- terned on the XPG4 curses standard. The weaker XPG4 spec
- may result in slower updates.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/default_colors.3x.html b/ncurses-5.2/doc/html/man/default_colors.3x.html
deleted file mode 100644
index 8b6cdca..0000000
--- a/ncurses-5.2/doc/html/man/default_colors.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <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>
-
-
-</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-
- 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
- unspecified default value (e.g., with SGR 39 or SGR 49).
-
- Applications that paint a colored background over the
- 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
- 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
- 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
- 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
- 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>
-
- 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>.
-
- 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
- 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>
- 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
- 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
- accepts negative arguments to specify default foreground
- or background colors.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="curs_color.3x.html">curs_color(3x)</A></B>, <B><A HREF="ded.1.html">ded(1)</A></B>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey (from an analysis of the requirements for
- color xterm for XFree86 3.1.2C, February 1996).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/define_key.3x.html b/ncurses-5.2/doc/html/man/define_key.3x.html
deleted file mode 100644
index 7e914c7..0000000
--- a/ncurses-5.2/doc/html/man/define_key.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>define_key</B> - define a keycode
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <B>int</B> <B>define_key(char</B> <B>*definition,</B> <B>int</B> <B>keycode);</B>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- This is an extension to the curses library. It permits an
- application to define keycodes with their corresponding
- control strings, so that the ncurses library will inter-
- pret them just as it would the predefined codes in the
- terminfo database.
-
- 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.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The keycode must be greater than zero, else ERR is
- returned.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="keyok.3x.html">keyok(3x)</A></B>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.2/doc/html/man/form.3x.html b/ncurses-5.2/doc/html/man/form.3x.html
deleted file mode 100644
index a15a712..0000000
--- a/ncurses-5.2/doc/html/man/form.3x.html
+++ /dev/null
@@ -1,245 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form</B> - curses extension for programming forms
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>form</B> 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.
-
- 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>.
-
-
- <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
- 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
- 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
- of the manual page on which it is described.
-
- <B>curses</B> 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>
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return pointers return <B>NULL</B> on error. Rou-
- tines that return an integer return one of the following
- error codes:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_CONNECTED</B>
- The field is already connected to a form.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- The form is already posted.
-
- <B>E_BAD_STATE</B>
- Routine was called from an initialization or termina-
- tion function.
-
- <B>E_NO_ROOM</B>
- Form is too large for its window.
-
- <B>E_NOT_POSTED</B>
- The form has not been posted.
-
- <B>E_UNKNOWN_COMMAND</B>
- The form driver code saw an unknown request code.
-
- <B>E_INVALID_FIELD</B>
- Contents of a field are not valid.
-
- <B>E_NOT_CONNECTED</B>
- No fields are connected to the form.
-
- <B>E_REQUEST_DENIED</B>
- 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
- 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>.
-
- 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).
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for ncurses
- by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_cursor.3x.html b/ncurses-5.2/doc/html/man/form_cursor.3x.html
deleted file mode 100644
index b99b824..0000000
--- a/ncurses-5.2/doc/html/man/form_cursor.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_cursor</B> - position a form window cursor
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int pos_form_cursor(FORM *form);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>pos_form_cursor</B> restores the cursor to the
- position required for the forms driver to continue pro-
- cessing requests. This is useful after <B>curses</B> routines
- have been called to do screen-painting in response to a
- form operation.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- This routine returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_NOT_POSTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_data.3x.html b/ncurses-5.2/doc/html/man/form_data.3x.html
deleted file mode 100644
index 502495e..0000000
--- a/ncurses-5.2/doc/html/man/form_data.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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
- 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
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_driver.3x.html b/ncurses-5.2/doc/html/man/form_driver.3x.html
deleted file mode 100644
index 36a27aa..0000000
--- a/ncurses-5.2/doc/html/man/form_driver.3x.html
+++ /dev/null
@@ -1,299 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_driver</B> - command-processing loop of the form system
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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
- 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:
-
- REQ_NEXT_PAGE
- Move to the next page.
-
- REQ_PREV_PAGE
- Move to the previous page.
-
- REQ_FIRST_PAGE
- Move to the first page.
-
- REQ_LAST_PAGE
- Move to the last field.
-
-
- REQ_NEXT_FIELD
- Move to the next field.
-
- REQ_PREV_FIELD
- Move to the previous field.
-
- REQ_FIRST_FIELD
- Move to the first field.
-
- REQ_LAST_FIELD
- Move to the last field.
-
- REQ_SNEXT_FIELD
- Move to the sorted next field.
-
- REQ_SPREV_FIELD
- Move to the sorted previous field.
-
- REQ_SFIRST_FIELD
- Move to the sorted first field.
-
- REQ_SLAST_FIELD
- Move to the sorted last field.
-
- REQ_LEFT_FIELD
- Move left to a field.
-
- REQ_RIGHT_FIELD
- Move right to a field.
-
- REQ_UP_FIELD
- Move up to a field.
-
- REQ_DOWN_FIELD
- Move down to a field.
-
-
- REQ_NEXT_CHAR
- Move to the next char.
-
- REQ_PREV_CHAR
- Move to the previous char.
-
- REQ_NEXT_LINE
- Move to the next line.
-
- REQ_PREV_LINE
- Move to the previous line.
-
- REQ_NEXT_WORD
- Move to the next word.
-
- REQ_PREV_WORD
- Move to the previous word.
-
- REQ_BEG_FIELD
- Move to the beginning of the field.
-
- REQ_END_FIELD
- Move to the end of the field.
-
- REQ_BEG_LINE
- Move to the beginning of the line.
-
- REQ_END_LINE
- Move to the end of the line.
-
- REQ_LEFT_CHAR
- Move left in the field.
-
- REQ_RIGHT_CHAR
- Move right in the field.
-
- REQ_UP_CHAR
- Move up in the field.
-
- REQ_DOWN_CHAR
- Move down in the field.
-
-
-
- REQ_NEW_LINE
- Insert or overlay a new line.
-
- REQ_INS_CHAR
- Insert a blank at the cursor.
-
- REQ_INS_LINE
- Insert a blank line at the cursor.
-
- REQ_DEL_CHAR
- Delete character at the cursor.
-
- REQ_DEL_PREV
- Delete character before the cursor.
-
- REQ_DEL_LINE
- Delete line at the cursor.
-
- REQ_DEL_WORD
- Delete blank-delimited word at the cursor.
-
- REQ_CLR_EOL
- Clear to end of line from cursor.
-
- REQ_CLR_EOF
- Clear to end of field from cursor.
-
- REQ_CLR_FIELD
- Clear the entire field.
-
- REQ_OVL_MODE
- Enter overlay mode.
-
- REQ_INS_MODE
- Enter insert mode.
-
-
- REQ_SCR_FLINE
- Scroll the field forward a line.
-
- REQ_SCR_BLINE
- Scroll the field backward a line.
-
- REQ_SCR_FPAGE
- Scroll the field forward a page.
-
- REQ_SCR_BPAGE
- Scroll the field backward a page.
-
- REQ_SCR_FHPAGE
- Scroll the field forward half a page.
-
- REQ_SCR_BHPAGE
- Scroll the field backward half a page.
-
- REQ_SCR_FCHAR
- Scroll the field forward a character.
-
- REQ_SCR_BCHAR
- Scroll the field backward a character.
-
- REQ_SCR_HFLINE
- Horizontal scroll the field forward a line.
-
- REQ_SCR_HBLINE
- Horizontal scroll the field backward a line.
-
- REQ_SCR_HFHALF
- Horizontal scroll the field forward half a line.
-
- REQ_SCR_HBHALF
- Horizontal scroll the field backward half a line.
-
-
- REQ_VALIDATION
- Validate field.
-
- REQ_NEXT_CHOICE
- Display next field choice.
-
- REQ_PREV_CHOICE
- Display previous field choice.
-
- If the second argument is a printable ASCII character, the
- driver places it in the current position in the current
- field. If it is one of the forms requests listed above,
- that request is executed.
-
- 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
- these pre-defined requests.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <B>form_driver</B> return one of the following error codes:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_BAD_STATE</B>
- Routine was called from an initialization or
- termination function.
-
- <B>E_NOT_POSTED</B>
- The form has not been posted.
-
- <B>E_UNKNOWN_COMMAND</B>
- The form driver code saw an unknown request code.
-
- <B>E_INVALID_FIELD</B>
- Contents of field is invalid.
-
- <B>E_REQUEST_DENIED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_field.3x.html b/ncurses-5.2/doc/html/man/form_field.3x.html
deleted file mode 100644
index 2f14eaf..0000000
--- a/ncurses-5.2/doc/html/man/form_field.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field</B> - make and break connections between fields and
- forms
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int set_form_fields(FORM *form, FIELD **fields);
- FIELD **form_fields(const FORM *form);
- int field_count(const FORM *form);
- int move_field(FIELD *field, int frow, int fcol);
-
-
-</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 <B>form_fields</B> returns the field array of the
- given form.
-
- The function <B>field_count</B> returns the count of fields in
- <I>form</I>.
-
- The function <B>move_field</B> move the given field (which must
- 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 <B>field_count</B> returns <B>ERR</B> (the general <B>curses</B>
- error return value) on error.
-
- The functions <B>set_form_fields</B> and <B>move_field</B> return one of
- the following codes on error:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- The form is already posted.
-
- <B>E_CONNECTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- 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>).
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_field_attributes.3x.html b/ncurses-5.2/doc/html/man/form_field_attributes.3x.html
deleted file mode 100644
index 9e11aaf..0000000
--- a/ncurses-5.2/doc/html/man/form_field_attributes.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field_attributes</B> - color and attribute control for
- form fields
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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);
-
-
-</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
- form's pad character. The default is a blank.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- 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
- 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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_field_buffer.3x.html b/ncurses-5.2/doc/html/man/form_field_buffer.3x.html
deleted file mode 100644
index a4f3dcd..0000000
--- a/ncurses-5.2/doc/html/man/form_field_buffer.3x.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field_buffer</B> - field buffer control
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int set_field_buffer(FIELD *field, int buf, const char
- *value);
- char *field_buffer(const FIELD *field, int buffer);
- int set_field_status(FIELD *field, bool status);
- bool field_status(const FIELD *field);
- int set_max_field(FIELD *field, int max);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>set_field_buffer</B> 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
- 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
- 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
- spaces the buffer may also contain them. If you want the
- raw data, you must write your own routine that copies the
- value out of the buffer and removes the leading and trail-
- ing spaces. Please note also, that subsequent operations
- on the form will probably change the content of the
- buffer. So don't use it for long term storage of the
- 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
- 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
- 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 <B>field_status</B> function returns <B>TRUE</B> or <B>FALSE</B>.
-
- The remaining routines return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- 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
- 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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_field_info.3x.html b/ncurses-5.2/doc/html/man/form_field_info.3x.html
deleted file mode 100644
index 40ef3a2..0000000
--- a/ncurses-5.2/doc/html/man/form_field_info.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field_info</B> - retrieve field characteristics
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>field_info</B> 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.
-
- The function <B>dynamic_field_info</B> returns the actual size of
- the field, and its maximum possible size. If the field
- has no size limit, the location addressed by the third
- argument will be set to 0. (A field can be made dynamic
- by turning off the <B>O_STATIC</B>).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- 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
- 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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
- A null (zero pointer) is accepted for any of the return
- values, to ignore that value. Not all implementations
- allow this, e.g., Solaris 2.7 does not.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-</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/ncurses-5.2/doc/html/man/form_field_just.3x.html b/ncurses-5.2/doc/html/man/form_field_just.3x.html
deleted file mode 100644
index 1643c44..0000000
--- a/ncurses-5.2/doc/html/man/form_field_just.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field_just</B> - retrieve field characteristics
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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-
- fication attribute. The attribute may be one of NO_JUSTI-
- FICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The function <B>field_just</B> returns one of: NO_JUSTIFICATION,
- JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
-
- The function <B>set_field_just</B> return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- 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
- 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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_field_new.3x.html b/ncurses-5.2/doc/html/man/form_field_new.3x.html
deleted file mode 100644
index f6dd76a..0000000
--- a/ncurses-5.2/doc/html/man/form_field_new.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field_new</B> - create and destroy form fields
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- FIELD *new_field(int height, int width,
- int toprow, int leftcol,
- int offscreen, int nbuffers);
- FIELD *dup_field(FIELD *field, int toprow, int leftcol);
- FIELD *link_field(FIELD *field, int toprow, int leftcol);
- int free_field(FIELD *field);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>new_field</B> 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.
-
- The function <B>dup_field</B> 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.
-
- The function <B>link_field</B> acts like <B>dup_field</B>, but the new
- field shares buffers with its parent. Attribute data is
- separate.
-
- The function <B>free_field</B> de-allocates storage associated
- 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>
- on error.
-
- The function <B>free_field</B> returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- 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
- library documents are not very explicit on what gets
- copied and was not.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_field_opts.3x.html b/ncurses-5.2/doc/html/man/form_field_opts.3x.html
deleted file mode 100644
index 576dcad..0000000
--- a/ncurses-5.2/doc/html/man/form_field_opts.3x.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field_opts</B> - set and get field options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int set_field_opts(FIELD *field, OPTIONS opts);
- int field_opts_on(FIELD *field, OPTIONS opts);
- int field_opts_off(FIELD *field, OPTIONS opts);
- OPTIONS field_opts(const FIELD *field);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>set_field_opts</B> sets all the given field's
- option bits (field option bits may be logically-OR'ed
- together).
-
- The function <B>field_opts_on</B> turns on the given option bits,
- and leaves others alone.
-
- The function <B>field_opts_off</B> turns off the given option
- bits, and leaves others alone.
-
- The function <B>field_opts</B> returns the field's current option
- bits.
-
- The following options are defined (all are on by default):
-
- O_VISIBLE
- The field is displayed. If this option is off, dis-
- play of the field is suppressed,
-
- O_ACTIVE
- The field is visited during processing. If this
- option is off, the field will not be reachable by
- navigation keys. Please notice that an invisible
- field appears to be inactive also.
-
- O_PUBLIC
- The field contents are displayed as data is entered.
-
- O_EDIT
- The field can be edited.
-
- O_WRAP
- Words that don't fit on a line are wrapped to the
- next line. Words are blank-separated.
-
- O_BLANK
- The field is cleared whenever a character is entered
- at the first position.
-
- O_AUTOSKIP
- Skip to the next field when this one fills
-
-
- O_NULLOK
- Allow a blank field.
-
- O_STATIC
- Field buffers are fixed to field's original size.
-
- O_PASSOK
- Validate field only if modified by user.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <B>field_opts</B>, each routine returns one of the
- following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_CURRENT</B>
- 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>.
-
-
- <B>NOTES</B> The header file <B>&lt;form.h&gt;</B> automatically includes the
- header file <B>&lt;curses.h&gt;</B>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_field_userptr.3x.html b/ncurses-5.2/doc/html/man/form_field_userptr.3x.html
deleted file mode 100644
index 46977c9..0000000
--- a/ncurses-5.2/doc/html/man/form_field_userptr.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field_userptr</B> - associate application data with a
- form field
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int set_field_userptr(FIELD *field, void*userptr);
- void *field_userptr(const FIELD *field);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every form field has a field that can be used to hold
- application-specific data (that is, the form-driver code
- leaves it alone). These functions get and set that field.
-
-
-</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:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
- The user pointer should be a void pointer. We leave it as
- a char pointer for SVr4 compatibility.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_field_validation.3x.html b/ncurses-5.2/doc/html/man/form_field_validation.3x.html
deleted file mode 100644
index 34ae0dc..0000000
--- a/ncurses-5.2/doc/html/man/form_field_validation.3x.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_field_validation</B> - data type validation for fields
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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>
- The function <B>set_field_type</B> declares a data type for a
- 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
- minimum field width.
-
- TYPE_ALPHA
- Character data. Requires a third <B>int</B> argument, 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
- 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
- notice that the string list is not copied, only a
- reference to it is stored in the field. So you should
- avoid to use a list that lives in automatic variables
- 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.
- 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 ".*ld", where the '*' is
- replaced by the precision argument. For details of
- the precision handling see <B>printf's</B> man-page.
-
- 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.
- 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
- replaced by the precision argument. For details of
- the precision handling see <B>printf's</B> man-page.
-
- TYPE_REGEXP
- Regular expression data. Requires a regular expres-
- sion <B>(char</B> <B>*)</B> third argument; the data is valid if
- 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-
- sion must match the whole field. If you have for
- example an eight character wide field, a regular
- expression "^[0-9]*$" always means that you have to
- fill all eight positions with digits. If you want to
- allow fewer digits, you may use for example "^[0-9]*
- *$" which is good for trailing spaces (up to an empty
- field), or "^ *[0-9]* *$" which is good for leading
- and trailing spaces around the digits.
-
- TYPE_IPV4
- An Internet Protocol Version 4 address. This requires
- no additional argument. It is checked whether or not
- the buffer has the form a.b.c.d, where a,b,c and d
- are numbers between 0 and 255. Trailing blanks in the
- buffer are ignored. The address itself is not vali-
- dated. Please note that this is an ncurses extension.
- This field type may not be available in other curses
- 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.
-
-
-</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-
- lowing:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_fieldtype.3x.html b/ncurses-5.2/doc/html/man/form_fieldtype.3x.html
deleted file mode 100644
index dec43a3..0000000
--- a/ncurses-5.2/doc/html/man/form_fieldtype.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_fieldtype</B> - define validation-field types
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- FIELDTYPE *new_fieldtype(
- bool (* const field_check)(FIELD *, const void *),
- bool (* const char_check)(int, const void *));
- int free_fieldtype(FIELDTYPE *fieldtype);
- int set_fieldtype_arg(
- FIELDTYPE *fieldtype,
- void *(* const make_arg)(va_list *),
- void *(* const copy_arg)(const void *),
- void (* const free_arg)(void *));
- int set_fieldtype_choice(
- FIELDTYPE *fieldtype
- bool (* const next_choice)(FIELD *, const void *),
- bool (* const prev_choice)(FIELD *, const void *));
- FIELDTYPE *link_fieldtype(FIELDTYPE *type1,
- FIELDTYPE *type2);
-
-
-</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
- predicate to check the validity of an entered data string
- whenever the user attempt to leave a field. The (FIELD *)
- argument is passed in so the validation predicate can see
- the field's buffer, sizes and other attributes; the second
- argument is an argument-block structure, about which more
- below.
-
- You also supply <B>new_fieldtype</B> with <I>char</I><B>_</B><I>check</I>, 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.
-
- The function <B>free_fieldtype</B> frees the space allocated for
- 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
- is automatically applied to the list of arguments you give
- <B>set_field_type</B> when attaching validation to a field; its
- job is to bundle these into an allocated argument-block
- object which can later be passed to validation predicated.
- The other two hook arguments should copy and free argu-
- ment-block structures. They will be used by the forms-
- driver code. You must supply the <I>mak</I><B>_</B><I>arg</I> function, the
- 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
- 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
- form an ordered set, and provide the forms user with a way
- to move through the set. The <B>set_fieldtype_choice</B> 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
- arguments.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The pointer-valued routines return NULL on error.
-
- The integer-valued routines return one of the following
- codes on error:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_CONNECTED</B>
- 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>.
-
-
-</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>.
-
- 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
- for strict compatibility with System V.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_hook.3x.html b/ncurses-5.2/doc/html/man/form_hook.3x.html
deleted file mode 100644
index 87628aa..0000000
--- a/ncurses-5.2/doc/html/man/form_hook.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_hook</B> - set hooks for automatic invocation by applica-
- tions
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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 *));
- void (*)(FORM *) field_term(const FORM *form);
- int set_form_init(FORM *form, void (*func)(FORM *));
- void (*)(FORM *) form_init(const FORM *form);
- int set_form_term(FORM *form, void (*func)(FORM *));
- void (*)(FORM *) form_term(const FORM *form);
-
-
-</PRE>
-<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>.
-
- The function <B>set_field_init</B> sets a hook to be called at
- 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).
-
- The function <B>set_field_term</B> sets a hook to be called at
- 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).
-
- The function <B>set_form_init</B> sets a hook to be called at
- 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).
-
- The function <B>set_form_term</B> sets a hook to be called at
- 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).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return pointers return <B>NULL</B> on error. Other
- routines return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_new.3x.html b/ncurses-5.2/doc/html/man/form_new.3x.html
deleted file mode 100644
index 7b0d91b..0000000
--- a/ncurses-5.2/doc/html/man/form_new.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_new</B> - create and destroy forms
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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-
- nated).
-
- The function <B>free_form</B> disconnects <I>form</I> from its field
- 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 <B>free_form</B> returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_new_page.3x.html b/ncurses-5.2/doc/html/man/form_new_page.3x.html
deleted file mode 100644
index 1a8d4ea..0000000
--- a/ncurses-5.2/doc/html/man/form_new_page.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_new_page</B> - form pagination functions
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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 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
- 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 <B>set_new_page</B> return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_CONNECTED</B>
- 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
- 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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_opts.3x.html b/ncurses-5.2/doc/html/man/form_opts.3x.html
deleted file mode 100644
index 5ae1cc4..0000000
--- a/ncurses-5.2/doc/html/man/form_opts.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_opts</B> - set and get form options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int set_form_opts(FORM *form, OPTIONS opts);
- int form_opts_on(FORM *form, OPTIONS opts);
- int form_opts_off(FORM *form, OPTIONS opts);
- OPTIONS form_opts(const FORM *form);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>set_form_opts</B> sets all the given form's
- option bits (form option bits may be logically-OR'ed
- together).
-
- The function <B>form_opts_on</B> turns on the given option bits,
- and leaves others alone.
-
- The function <B>form_opts_off</B> turns off the given option
- bits, and leaves others alone.
-
- The function <B>form_opts</B> returns the form's current option
- 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
- 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
- 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-
- lowing:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_page.3x.html b/ncurses-5.2/doc/html/man/form_page.3x.html
deleted file mode 100644
index 874bda8..0000000
--- a/ncurses-5.2/doc/html/man/form_page.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_page</B> - set and get form page number
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int set_current_field(FORM *form, FIELD *field);
- FIELD *current_field(const FORM *);
- int set_form_page(FORM *form, int n);
- int form_page(const FORM *form);
- int field_index(const FIELD *field);
-
-
-</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 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 <B>form_page</B> returns the form's current page
- number.
-
- The function <B>field_index</B> returns the index of the field in
- 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
- not connected.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <B>form_page</B>, each routine returns one of the fol-
- lowing:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_BAD_STATE</B>
- Routine was called from an initialization or termina-
- tion function.
-
- <B>E_INVALID_FIELD</B>
- Contents of a field are not valid.
-
- <B>E_REQUEST_DENIED</B>
- 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>.
-
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_post.3x.html b/ncurses-5.2/doc/html/man/form_post.3x.html
deleted file mode 100644
index e52967e..0000000
--- a/ncurses-5.2/doc/html/man/form_post.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_post</B> - write or erase forms from associated subwin-
- dows
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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
- 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).
-
- The function <B>unpost_form</B> erases form from its associated
- subwindow.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- The form has already been posted.
-
- <B>E_BAD_STATE</B>
- Routine was called from an initialization or termina-
- tion function.
-
- <B>E_NO_ROOM</B>
- Form is too large for its window.
-
- <B>E_NOT_POSTED</B>
- The form has not been posted.
-
- <B>E_NOT_CONNECTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_requestname.3x.html b/ncurses-5.2/doc/html/man/form_requestname.3x.html
deleted file mode 100644
index dcf5065..0000000
--- a/ncurses-5.2/doc/html/man/form_requestname.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_requestname</B> - handle printable form request names
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- 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
- of a form request code.
- The function <B>form_request_by_name</B> 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>
- <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.
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_userptr.3x.html b/ncurses-5.2/doc/html/man/form_userptr.3x.html
deleted file mode 100644
index 4ac76f8..0000000
--- a/ncurses-5.2/doc/html/man/form_userptr.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>form_userptr</B> - associate application data with a form item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int set_form_userptr(FORM *form, void *userptr);
- void* form_userptr(const FORM *form);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every form and every form item has a field that can be
- used to hold application-specific data (that is, the form-
- driver code leaves it alone). These functions get and set
- the form user pointer field.
-
-
-</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:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
- The user pointer should be a void pointer. We leave it as
- a char pointer for SVr4 compatibility.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/form_win.3x.html b/ncurses-5.2/doc/html/man/form_win.3x.html
deleted file mode 100644
index 4f73a64..0000000
--- a/ncurses-5.2/doc/html/man/form_win.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<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-
- ciations
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;form.h&gt;</B>
- int set_form_win(FORM *form, WINDOW *win);
- WINDOW *form_win(const FORM *form);
- int set_form_sub(FORM *form, WINDOW *sub);
- WINDOW *form_sub(const FORM *form);
- int scale_form(const FORM *form, int *rows, int *columns);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every form has an associated pair of <B>curses</B> 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
- code uses <B>stdscr</B> 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
- 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>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return pointers return <B>NULL</B> on error. Rou-
- tines that return an integer return one of the following
- error codes:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- The form has already been posted.
-
- <B>E_NOT_CONNECTED</B>
- 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>.
-
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/infocmp.1m.html b/ncurses-5.2/doc/html/man/infocmp.1m.html
deleted file mode 100644
index 5f77495..0000000
--- a/ncurses-5.2/doc/html/man/infocmp.1m.html
+++ /dev/null
@@ -1,406 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>infocmp</B> - compare or print out <I>terminfo</I> descriptions
-
-
-</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>...]
-
-
-</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
- 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.
-
- <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
- 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.
-
- The <B>-d</B> option produces a list of each capability that is
- different between two entries. This option is useful to
- show the difference between two entries, created by dif-
- ferent people, for the same or similar terminals.
-
- The <B>-c</B> option produces a list of each capability that is
- common between two entries. Capabilities that are not set
- are ignored. This option can be used as a quick check to
- see if the <B>-u</B> 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>.
- 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
- 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;
-
- <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
-
- If no <I>termnames</I> are given, the environment variable <B>TERM</B>
- 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
- 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-
- 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
- this restriction, allowing all capabilities to be output
- in <I>termcap</I> form.
-
- 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
- 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.
-
- Some common <B>terminfo</B> parameter sequences, their <B>termcap</B>
- equivalents, and some terminal types which commonly have
- such sequences, are:
-
- <B>terminfo</B> <B>termcap</B> 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
- 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
- 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
- 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-
- ity gives a different value for the capability than that
- in the first <I>termname</I>.
-
- 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-
- 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
- found.
-
- Alternatively, specifying a capability <I>after</I> a <B>use=</B> entry
- that contains that capability will cause the second speci-
- fication to be ignored. Using <B>infocmp</B> 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-
- 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
- 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
- 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
- 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.
-
- <B>l</B> sort by the long C variable name.
-
- <B>c</B> sort by the <I>termcap</I> name.
-
- 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.
-
- <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.
-
- <B>-F</B> compare terminfo files. This assumes that two fol-
- lowing arguments are filenames. The files are
- searched for pairwise matches between entries, with
- two entries considered to match if any of their names
- do. The report printed to standard output lists
- entries with no matches in the other file, and
- entries with more than one match. For entries with
- exactly one match it includes a difference report.
- Normally, to reduce the volume of the report, use
- references are not resolved before looking for dif-
- 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.
-
- <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
- if/then/else/endif expressions indented for readabil-
- ity.
-
- <B>-g</B> Display constant character literals in quoted form
- 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
- 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
- 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
- sequences recognized:
-
- Action Meaning
- -----------------------------------------
- RIS full reset
- SC save cursor
- RC restore cursor
- LL home-down
- RSR reset scroll region
-
- ISO DEC G0 enable DEC graphics for G0
- ISO UK G0 enable UK chars for G0
- ISO US G0 enable US chars for G0
- ISO DEC G1 enable DEC graphics for G1
- ISO UK G1 enable UK chars for G1
- ISO US G1 enable US chars for G1
-
- DECPAM application keypad mode
- DECPNM normal keypad mode
- DECANSI enter ANSI mode
-
- DEC[+-]CKM application cursor keys
- DEC[+-]ANM set VT52 mode
- DEC[+-]COLM 132-column mode
- DEC[+-]SCLM smooth scroll
- DEC[+-]SCNM reverse video mode
- DEC[+-]OM origin mode
- DEC[+-]AWM wraparound mode
- DEC[+-]ARM auto-repeat mode
-
- It also recognizes a SGR action corresponding to
- ANSI/ISO 6429/ECMA Set Graphics Rendition, with the
- values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE.
- All but NORMAL may be prefixed with `+' (turn on) or
- `-' (turn off).
-
- An SGR0 designates an empty highlight sequence
- (equivalent to {SGR:NORMAL}).
-
- <B>-p</B> Ignore padding specifications when comparing strings.
-
- <B>-v</B> <I>n</I> prints out tracing information on standard error as
- the program runs. Higher values of n induce greater
- verbosity.
-
- <B>-w</B> <I>width</I>
- changes the output to <I>width</I> characters.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description
- database.
-
-
-
-</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 <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
- -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.
-
-
-</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>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and Thomas E.
- Dickey &lt;dickey@herndon4.his.com&gt;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/infotocap.1m.html b/ncurses-5.2/doc/html/man/infotocap.1m.html
deleted file mode 100644
index 38ab95c..0000000
--- a/ncurses-5.2/doc/html/man/infotocap.1m.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<HTML>
-<BODY>
-<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>
- 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> . . .
-
-
-</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.
-
- <B>-v</B> print out tracing information on standard error as
- the program runs.
-
- <B>-V</B> 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. 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.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description
- database.
-
-
-</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>.
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/keybound.3x.html b/ncurses-5.2/doc/html/man/keybound.3x.html
deleted file mode 100644
index 11af1ac..0000000
--- a/ncurses-5.2/doc/html/man/keybound.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>keybound</B> - return definition of keycode
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <B>int</B> <B>keybound(int</B> <B>keycode,</B> <B>int</B> <B>count);</B>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The keycode must be greater than zero, else NULL is
- returned. If it does not correspond to a defined key,
- then NULL is returned. Otherwise, the function returns a
- string, which must be freed by the caller.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="define_key.3x.html">define_key(3x)</A></B>, <B><A HREF="keyok.3x.html">keyok(3x)</A></B>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.2/doc/html/man/keyok.3x.html b/ncurses-5.2/doc/html/man/keyok.3x.html
deleted file mode 100644
index 1dbe455..0000000
--- a/ncurses-5.2/doc/html/man/keyok.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>keyok</B> - enable or disable a keycode
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <B>int</B> <B>keyok(int</B> <B>keycode,</B> <B>bool</B> <B>enable);</B>
-
-
-</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
- have been disabled can be reenabled.
-
-
-</PRE>
-<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 the key must have been disabled, and vice versa.
- Otherwise, the function returns OK.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="define_key.3x.html">define_key(3x)</A></B>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.2/doc/html/man/menu.3x.html b/ncurses-5.2/doc/html/man/menu.3x.html
deleted file mode 100644
index c72b67f..0000000
--- a/ncurses-5.2/doc/html/man/menu.3x.html
+++ /dev/null
@@ -1,244 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu</B> - curses extension for programming menus
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>menu</B> 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.
-
- 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>.
-
-
- <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
- 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
- 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
- of the manual page on which it is described.
-
- <B>curses</B> 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>
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return pointers return <B>NULL</B> on error. Rou-
- tines that return an integer return one of the following
- error codes:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- The menu is already posted.
-
- <B>E_BAD_STATE</B>
- Routine was called from an initialization or termina-
- tion function.
-
- <B>E_NO_ROOM</B>
- Menu is too large for its window.
-
- <B>E_NOT_POSTED</B>
- The menu has not been posted.
-
- <B>E_UNKNOWN_COMMAND</B>
- The menu driver code saw an unknown request code.
-
- <B>E_NO_MATCH</B>
- Character failed to match.
-
- <B>E_NOT_SELECTABLE</B>
- The designated item cannot be selected.
-
- <B>E_NOT_CONNECTED</B>
- No items are connected to the menu.
-
- <B>E_REQUEST_DENIED</B>
- 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
- 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>.
-
- 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).
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for ncurses
- by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_attributes.3x.html b/ncurses-5.2/doc/html/man/menu_attributes.3x.html
deleted file mode 100644
index d6e82b0..0000000
--- a/ncurses-5.2/doc/html/man/menu_attributes.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_attributes</B> - color and attribute control for menus
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_menu_fore(MENU *menu, chtype attr);
- chtype menu_fore(const MENU *menu);
- int set_menu_back(MENU *menu, chtype attr);
- chtype menu_back(const MENU *menu);
- int set_menu_grey(MENU *menu, chtype attr);
- chtype menu_grey(const MENU *menu);
- int set_menu_pad(MENU *menu, int pad);
- int menu_pad(const MENU *menu);
-
-
-</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 <B>set_menu_back</B> sets the background attribute
- of <I>menu</I>. This is the highlight used for selectable (but
- not currently selected) menu items. The function
- <B>menu_back</B> returns the background attribute. The default
- is <B>A_NORMAL</B>.
-
- The function <B>set_menu_grey</B> sets the grey attribute of
- <I>menu</I>. This is the highlight used for un-selectable menu
- 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>.
-
- The function <B>set_menu_pad</B> sets the character used to fill
- the space between the name and description parts of a menu
- item. <B>menu_pad</B> returns the given menu's pad character.
- The default is a blank.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- 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
- 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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_cursor.3x.html b/ncurses-5.2/doc/html/man/menu_cursor.3x.html
deleted file mode 100644
index aed8af8..0000000
--- a/ncurses-5.2/doc/html/man/menu_cursor.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_cursor</B> - position a menu's cursor
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int pos_menu_cursor(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>pos_menu_cursor</B> restores the cursor to the
- current position associated with the menu's selected item.
- This is useful after <B>curses</B> routines have been called to
- do screen-painting in response to a menu select.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- This routine returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_NOT_POSTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_driver.3x.html b/ncurses-5.2/doc/html/man/menu_driver.3x.html
deleted file mode 100644
index 48ea272..0000000
--- a/ncurses-5.2/doc/html/man/menu_driver.3x.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_driver</B> - command-processing loop of the menu system
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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
- 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.
- The menu driver requests are as follows:
-
- REQ_LEFT_ITEM
- Move left to an item.
-
- REQ_RIGHT_ITEM
- Move right to an item.
-
- REQ_UP_ITEM
- Move up to an item.
-
- REQ_DOWN_ITEM
- Move down to an item.
-
- REQ_SCR_ULINE
- Scroll up a line.
-
- REQ_SCR_DLINE
- Scroll down a line.
-
- REQ_SCR_DPAGE
- Scroll down a page.
-
- REQ_SCR_UPAGE
- Scroll up a page.
-
- REQ_FIRST_ITEM
- Move to the first item.
-
- REQ_LAST_ITEM
- Move to the last item.
-
- REQ_NEXT_ITEM
- Move to the next item.
-
- REQ_PREV_ITEM
- Move to the previous item.
-
- REQ_TOGGLE_ITEM
- Select/deselect an item.
-
- REQ_CLEAR_PATTERN
- Clear the menu pattern buffer.
-
- REQ_BACK_PATTERN
- Delete the previous character from the pattern
- buffer.
-
- REQ_NEXT_MATCH
- Move to the next item matching the pattern match.
-
- REQ_PREV_MATCH
- Move to the previous item matching the pattern match.
-
- 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
- appended character from the buffer.
-
- If the second argument is one of the above pre-defined
- requests, the corresponding action is performed.
-
- If the second argument is the KEY_MOUSE special key, the
- associated mouse event is translated into one of the above
- pre-defined requests. Currently only clicks in the user
- window (e.g. inside the menu display area or the decora-
- tion window) are handled. If you click above the display
- region of the menu, a REQ_SCR_ULINE is generated, if you
- doubleclick a REQ_SCR_UPAGE is generated and if you
- tripleclick a REQ_FIRST_ITEM is generated. If you click
- below the display region of the menu, a REQ_SCR_DLINE is
- generated, if you doubleclick a REQ_SCR_DPAGE is generated
- and if you tripleclick a REQ_LAST_ITEM is generated. If
- you click at an item inside the display area of the menu,
- the menu cursor is positioned to that item. 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
- 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
- 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.
-
- 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
- value of these pre-defined requests.
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <B>menu_driver</B> return one of the following error codes:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_BAD_STATE</B>
- Routine was called from an initialization or termina-
- tion function.
-
- <B>E_NOT_POSTED</B>
- The menu has not been posted.
-
- <B>E_UNKNOWN_COMMAND</B>
- The menu driver code saw an unknown request code.
-
- <B>E_NO_MATCH</B>
- Character failed to match.
-
- <B>E_REQUEST_DENIED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions. The sup-
- port for mouse events is ncurses specific.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_format.3x.html b/ncurses-5.2/doc/html/man/menu_format.3x.html
deleted file mode 100644
index 8702733..0000000
--- a/ncurses-5.2/doc/html/man/menu_format.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_format</B> - set and get menu sizes
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_menu_format(MENU *menu, int rows, int cols);
- int menu_format(const MENU *menu, int *rows, int *cols);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>set_menu_format</B> 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
- is too small to display all menu items, <B>post_menu()</B> will
- 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>
- is interpreted as a request not to change the current
- value.
-
- The function <B>menu_format</B> returns the maximum-size con-
- straints for the given menu into the storage addressed by
- <B>rows</B> and <B>cols</B>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_hook.3x.html b/ncurses-5.2/doc/html/man/menu_hook.3x.html
deleted file mode 100644
index 59519cd..0000000
--- a/ncurses-5.2/doc/html/man/menu_hook.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_hook</B> - set hooks for automatic invocation by applica-
- tions
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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 *));
- void (*)(MENU *) item_term(const MENU *menu);
- int set_menu_init(MENU *menu, void (*func)(MENU *));
- void (*)(MENU *) menu_init(const MENU *menu);
- int set_menu_term(MENU *menu, void (*func)(MENU *));
- void (*)(MENU *) menu_term(const MENU *menu);
-
-
-</PRE>
-<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>.
-
- The function <B>set_item_init</B> sets a hook to be called at
- 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).
-
- The function <B>set_item_term</B> sets a hook to be called at
- 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).
-
- The function <B>set_menu_init</B> sets a hook to be called at
- 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).
-
- The function <B>set_menu_term</B> sets a hook to be called at
- 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).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return pointers return <B>NULL</B> on error. Other
- routines return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_items.3x.html b/ncurses-5.2/doc/html/man/menu_items.3x.html
deleted file mode 100644
index d2bde33..0000000
--- a/ncurses-5.2/doc/html/man/menu_items.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_items</B> - make and break connections between items and
- menus
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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>
- 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 <B>menu_items</B> returns the item array of the
- given menu.
-
- The function <B>item_count</B> returns the count of items in
- <I>menu</I>.
-
-
-</PRE>
-<H2>RETURN VALUES</H2><PRE>
- The function <B>menu_items</B> returns <B>NULL</B> on error.
-
- The function <B>item_count</B> returns <B>ERR</B> (the general <B>curses</B>
- error return value) on error.
-
- The function <B>set_menu_items</B> returns one of the following
- codes on error:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- The menu is already posted.
-
- <B>E_NOT_CONNECTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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>item_count</B> error value as -1 (which is the value of <B>ERR</B>).
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_mark.3x.html b/ncurses-5.2/doc/html/man/menu_mark.3x.html
deleted file mode 100644
index f2eeac9..0000000
--- a/ncurses-5.2/doc/html/man/menu_mark.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_mark</B> - get and set the menu mark string
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_menu_mark(MENU *menu, const char *mark);
- const char *menu_mark(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- In order to make menu selections visible on older termi-
- nals without highlighting or color capability, the menu
- 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
- 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 function <B>menu_mark</B> returns the menu's mark string (or
- <B>NULL</B> if there is none).
-
-
-</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:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-</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/ncurses-5.2/doc/html/man/menu_new.3x.html b/ncurses-5.2/doc/html/man/menu_new.3x.html
deleted file mode 100644
index 33e39ad..0000000
--- a/ncurses-5.2/doc/html/man/menu_new.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_new</B> - create and destroy menus
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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-
- nated).
-
- The function <B>free_menu</B> disconnects <I>menu</I> from its item
- 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 <B>free_menu</B> returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_opts.3x.html b/ncurses-5.2/doc/html/man/menu_opts.3x.html
deleted file mode 100644
index 5730121..0000000
--- a/ncurses-5.2/doc/html/man/menu_opts.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_opts</B> - set and get menu options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_menu_opts(MENU *menu, OPTIONS opts);
- int menu_opts_on(MENU *menu, OPTIONS opts);
- int menu_opts_off(MENU *menu, OPTIONS opts);
- OPTIONS menu_opts(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>set_menu_opts</B> sets all the given menu's
- option bits (menu option bits may be logically-OR'ed
- together).
-
- The function <B>menu_opts_on</B> turns on the given option bits,
- and leaves others alone.
-
- The function <B>menu_opts_off</B> turns off the given option
- bits, and leaves others alone.
-
- The function <B>menu_opts</B> returns the menu's current option
- bits.
-
- The following options are defined (all are on by default):
-
- O_ONEVALUE
- Only one item can be selected for this menu.
-
- O_SHOWDESC
- Display the item descriptions when the menu is
- posted.
-
- O_ROWMAJOR
- Display the menu in row-major order.
-
- O_IGNORECASE
- Ignore the case when pattern-matching.
-
- O_SHOWMATCH
- Move the cursor to within the item name while pat-
- tern-matching.
-
- O_NONCYCLIC
- Don't wrap around next-item and previous-item,
- requests to the other end of the menu.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <B>menu_opts</B>, each routine returns one of the fol-
- lowing:
-
- <B>E_OK</B> The routine succeeded.
-
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_POSTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_pattern.3x.html b/ncurses-5.2/doc/html/man/menu_pattern.3x.html
deleted file mode 100644
index 2db0a3a..0000000
--- a/ncurses-5.2/doc/html/man/menu_pattern.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<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
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_menu_pattern(MENU *menu, const char *pattern);
- char *menu_pattern(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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>.
-
- The function <B>set_menu_pattern</B> 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 function <B>menu_pattern</B> returns the pattern buffer of
- the given <I>menu</I>.
-
-
-</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
- codes:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_NO_MATCH</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-</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/ncurses-5.2/doc/html/man/menu_post.3x.html b/ncurses-5.2/doc/html/man/menu_post.3x.html
deleted file mode 100644
index ca73447..0000000
--- a/ncurses-5.2/doc/html/man/menu_post.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_post</B> - write or erase menus from associated subwin-
- dows
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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
- 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
- items.
-
- The function <B>unpost_menu</B> erases menu from its associated
- subwindow.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- The menu has already been posted.
-
- <B>E_BAD_STATE</B>
- Routine was called from an initialization or termina-
- tion function.
-
- <B>E_NO_ROOM</B>
- Menu is too large for its window. You should consider
- to use <B>set_menu_format()</B> to solve the problem.
-
- <B>E_NOT_POSTED</B>
- The menu has not been posted.
-
- <B>E_NOT_CONNECTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_requestname.3x.html b/ncurses-5.2/doc/html/man/menu_requestname.3x.html
deleted file mode 100644
index 388d1fe..0000000
--- a/ncurses-5.2/doc/html/man/menu_requestname.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_requestname</B> - handle printable menu request names
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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
- of a menu request code.
- The function <B>menu_request_by_name</B> 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>
- <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.
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_spacing.3x.html b/ncurses-5.2/doc/html/man/menu_spacing.3x.html
deleted file mode 100644
index ba2cd1c..0000000
--- a/ncurses-5.2/doc/html/man/menu_spacing.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_spacing</B> - Control spacing between menu items.
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_menu_spacing(MENU *menu,
- int spc_description
- int spc_rows,
- int spc_columns);
- int menu_spacing(const MENU *menu,
- int* spc_description
- 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
- of spaces between an item name and an item description. It
- must not be larger than <B>TABSIZE</B>. The menu system puts in
- the middle of this spacing area the pad character. The
- remaining parts are filled with spaces. <B>spc_rows</B> 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-
- acter in the appropriate positions. <B>spc_columns</B> 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 function <B>menu_spacing</B> 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>
- 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>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-</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/ncurses-5.2/doc/html/man/menu_userptr.3x.html b/ncurses-5.2/doc/html/man/menu_userptr.3x.html
deleted file mode 100644
index 5eebdb8..0000000
--- a/ncurses-5.2/doc/html/man/menu_userptr.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>menu_userptr</B> - associate application data with a menu item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_menu_userptr(MENU *menu, void *userptr);
- void *menu_userptr(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every menu and every menu item has a field that can be
- used to hold application-specific data (that is, the menu-
- driver code leaves it alone). These functions get and set
- the menu user pointer field.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <B>menu_userptr</B> (which returns <B>NULL</B> on error),
- each function returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
- The user pointer should be a void pointer. We leave it as
- a char pointer for SVr4 compatibility.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/menu_win.3x.html b/ncurses-5.2/doc/html/man/menu_win.3x.html
deleted file mode 100644
index c2fb72a..0000000
--- a/ncurses-5.2/doc/html/man/menu_win.3x.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<BODY>
-<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-
- ciations
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_menu_win(MENU *menu, WINDOW *win);
- WINDOW *menu_win(const MENU *menu);
- int set_menu_sub(MENU *menu, WINDOW *sub);
- WINDOW *menu_sub(const MENU *menu);
- int scale_menu(const MENU *menu, int *rows, int *columns);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every menu has an associated pair of <B>curses</B> 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
- code uses <B>stdscr</B> 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
- 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>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return pointers return <B>NULL</B> on error. Rou-
- tines that return an integer return one of the following
- error codes:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_POSTED</B>
- The menu has already been posted.
-
- <B>E_NOT_CONNECTED</B>
- 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>.
-
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/mitem_current.3x.html b/ncurses-5.2/doc/html/man/mitem_current.3x.html
deleted file mode 100644
index ab74dff..0000000
--- a/ncurses-5.2/doc/html/man/mitem_current.3x.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>mitem_current</B> - set and get current_menu_item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_current_item(MENU *menu, const ITEM *item);
- ITEM *current_item(const MENU *menu);
- int set_top_row(MENU *menu, int row);
- int top_row(const MENU *menu);
- int item_index(const ITEM *item);
-
-
-</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
- given menu.
-
- The function <B>set_top_row</B> sets the top row of the menu to
- 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-
- gled). The item leftmost on the given row becomes cur-
- rent. The function <B>top_row</B> returns the number of the top
- 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.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <B>current_item</B> returns <B>NULL</B> on error.
-
- <B>top_row</B> and <B>item_index</B> return <B>ERR</B> (the general <B>curses</B>
- error value) on error.
-
- <B>set_current_item</B> and <B>set_top_row</B> return one of the follow-
- ing:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_BAD_STATE</B>
- Routine was called from an initialization or termina-
- tion function.
-
- <B>E_NOT_CONNECTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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>).
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/mitem_name.3x.html b/ncurses-5.2/doc/html/man/mitem_name.3x.html
deleted file mode 100644
index 803f966..0000000
--- a/ncurses-5.2/doc/html/man/mitem_name.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>mitem_name</B> - get menu item name and description fields
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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
- item.
- The function <B>item_description</B> returns the description part
- of the given item.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines returns <B>NULL</B> on error.
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/mitem_new.3x.html b/ncurses-5.2/doc/html/man/mitem_new.3x.html
deleted file mode 100644
index 9918f6c..0000000
--- a/ncurses-5.2/doc/html/man/mitem_new.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>mitem_new</B> - create and destroy menu items
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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
- 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
- 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>
- The function <B>new_item</B> returns <B>NULL</B> on error.
-
- The function <B>free_item</B> returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_BAD_ARGUMENT</B>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <B>E_CONNECTED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-</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/ncurses-5.2/doc/html/man/mitem_opts.3x.html b/ncurses-5.2/doc/html/man/mitem_opts.3x.html
deleted file mode 100644
index 17abe42..0000000
--- a/ncurses-5.2/doc/html/man/mitem_opts.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>mitem_opts</B> - set and get menu item options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_item_opts(ITEM *item, OPTIONS opts);
- int item_opts_on(ITEM *item, OPTIONS opts);
- int item_opts_off(ITEM *item, OPTIONS opts);
- OPTIONS item_opts(const ITEM *item);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <B>set_item_opts</B> sets all the given item's
- option bits (menu option bits may be logically-OR'ed
- together).
-
- The function <B>item_opts_on</B> turns on the given option bits,
- and leaves others alone.
-
- The function <B>item_opts_off</B> turns off the given option
- bits, and leaves others alone.
-
- The function <B>item_opts</B> returns the item's current option
- bits.
-
- There is only one defined option bit mask, <B>O_SELECTABLE</B>.
- 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-
- lowing:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-</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/ncurses-5.2/doc/html/man/mitem_userptr.3x.html b/ncurses-5.2/doc/html/man/mitem_userptr.3x.html
deleted file mode 100644
index 7d7c561..0000000
--- a/ncurses-5.2/doc/html/man/mitem_userptr.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>mitem_userptr</B> - associate application data with a menu
- item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- int set_item_userptr(ITEM *item, void *userptr);
- void *item_userptr(const ITEM *item);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every menu item has a field that can be used to hold
- application-specific data (that is, the menu-driver code
- leaves it alone). These functions get and set that field.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <B>item_userptr</B> (which returns <B>NULL</B> on error),
- each function returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
-
-</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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
- The user pointer should be a void pointer. We leave it as
- a char pointer for SVr4 compatibility.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/mitem_value.3x.html b/ncurses-5.2/doc/html/man/mitem_value.3x.html
deleted file mode 100644
index a83ece2..0000000
--- a/ncurses-5.2/doc/html/man/mitem_value.3x.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>mitem_value</B> - set and get menu item values
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- 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
- 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>).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The function <B>set_item_value</B> returns one of the following:
-
- <B>E_OK</B> The routine succeeded.
-
- <B>E_SYSTEM_ERROR</B>
- System error occurred (see <B>errno</B>).
-
- <B>E_REQUEST_DENIED</B>
- 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/mitem_visible.3x.html b/ncurses-5.2/doc/html/man/mitem_visible.3x.html
deleted file mode 100644
index bc105a0..0000000
--- a/ncurses-5.2/doc/html/man/mitem_visible.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>mitem_visible</B> - check visibility of a menu item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;menu.h&gt;</B>
- bool item_visible(const ITEM *item);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- A menu item is visible when it is in the portion of a
- posted menu that is mapped onto the screen (if the menu is
- scrollable, in particular, this portion will be smaller
- than the whole 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>.
-
-
-</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>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/ncurses.3x.html b/ncurses-5.2/doc/html/man/ncurses.3x.html
deleted file mode 100644
index 5fb8400..0000000
--- a/ncurses-5.2/doc/html/man/ncurses.3x.html
+++ /dev/null
@@ -1,899 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>ncurses</B> - CRT screen handling and optimization package
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>ncurses</B> 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.
-
- The <B>ncurses</B> routines emulate the <B><A HREF="ncurses.3x.html">curses(3x)</A></B> library of
- System V Release 4 UNIX, and the XPG4 curses standard (XSI
- curses) but the <B>ncurses</B> 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
- <B>-lncurses</B> option, or (if it has been generated) with the
- debugging library <B>-lncurses_g</B>. (Your system integrator
- may also have installed these libraries under the names
- <B>-lcurses</B> and <B>-lcurses_g</B>.) The ncurses_g library generates
- 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
- pad manipulation; output to windows and pads; reading
- terminal input; control over terminal and <B>curses</B> input and
- 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>
- must be called before any of the other routines that deal
- with windows and screens are used. The routine <B>endwin</B>
- 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>
-
- Most programs would additionally use the sequence:
-
- <B>nonl();</B>
- <B>intrflush(stdscr,</B> <B>FALSE);</B>
- <B>keypad(stdscr,</B> <B>TRUE);</B>
-
- Before a <B>curses</B> program is run, the tab stops of the
- terminal should be set and its initialization strings, if
- defined, must be output. This can be done by executing
- the <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 <B>ncurses</B> library permits manipulation of data
- structures, called <I>windows</I>, which can be thought of as
- two-dimensional arrays of characters representing all or
- part of a CRT screen. A default window called <B>stdscr</B>,
- which is the size of the terminal screen, is supplied.
- Others may be created with <B>newwin</B>.
-
- 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
- result in unpredictable, and undesired, effects.
-
- Windows are referred to by variables declared as <B>WINDOW</B> <B>*</B>.
- 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>.
- 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>.)
-
- 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
- information about the character may also be stored with
- each character.
-
- Special windows called <I>pads</I> may also be manipulated.
- 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.
-
- 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
- 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>.
-
- If the environment variables <B>LINES</B> and <B>COLUMNS</B> are set, or
- 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
- running in an AT&amp;T 630 layer, for example, where the size
- of a screen is changeable (see <B>ENVIRONMENT</B>).
-
- If the environment variable <B>TERMINFO</B> is defined, any
- program using <B>curses</B> checks for a local terminal
- definition before checking in the standard place. For
- example, if <B>TERM</B> is set to <B>att4424</B>, then the compiled
- terminal definition is found in
-
- <B>/usr/share/terminfo/a/att4424</B>.
-
- (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
-
- <B>$HOME/myterms/a/att4424</B>,
-
- and if that fails, it then checks
-
- <B>/usr/share/terminfo/a/att4424</B>.
-
- This is useful for developing experimental definitions or
- when write permission in <B>/usr/share/terminfo</B> is not
- 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 <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
- clearing and redrawing a screen containing garbage. The
- <B>curscr</B> 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>.
-
- The routines prefixed with <B>mv</B> require a <I>y</I> and <I>x</I> coordinate
- 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
- 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
- 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>.
-
- 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>.
- 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
- 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
- --------------------------------------------
- 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>
-
-
-</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
- 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
- as the right-hand side of assignment statements).
-
- Routines that return pointers return <B>NULL</B> on error.
-
-
-</PRE>
-<H2>ENVIRONMENT</H2><PRE>
- The following environment symbols are useful for
- customizing the runtime behavior of the <B>ncurses</B> library.
- The most important ones have been already discussed in
- detail.
-
- BAUDRATE
- The debugging library checks this environment symbol
- when the application has redirected output to a file.
- The symbol's numeric value is used for the baudrate.
- If no value is found <B>ncurses</B> uses 9600. This allows
- testers to construct repeatable test-cases that take
- into account costs that depend on baudrate.
-
- CC When set, change occurrences of the command_character
- (i.e., the <B>cmdch</B> capability) of the loaded terminfo
- entries to the value of this symbol. Very few
- terminfo entries provide this feature.
-
- COLUMNS
- Specify the width of the screen in characters.
- Applications running in a windowing environment
- usually are able to obtain the width of the window in
- which they are executing. If neither the $COLUMNS
- value nor the terminal's screen size is available,
- <B>ncurses</B> uses the size which may be specified in the
- terminfo database (i.e., the <B>cols</B> capability).
-
- It is important that your application use a correct
- size for the screen. However, this is not always
- possible because your application may be running on a
- host which does not honor NAWS (Negotiations About
- Window Size), or because you are temporarily running
- as another user.
-
- Either COLUMNS or LINES symbols may be specified
- independently. This is mainly useful to circumvent
- legacy misfeatures of terminal descriptions, e.g.,
- xterm which commonly specifies a 65 line screen. For
- best results, <B>lines</B> and <B>cols</B> should not be specified
- in a terminal description for terminals which are run
- as emulations.
-
- Use the <B>use_env</B> function to disable this feature.
-
- ESCDELAY
- Specifies the total time, in milliseconds, for which
- ncurses will await a character sequence, e.g., a
- function key. The default value, 1000 milliseconds,
- is enough for most uses. However, it is made a
- variable to accommodate unusual applications.
-
- The most common instance where you may wish to change
- this value is to work with slow hosts, e.g., running
- on a network. If the host cannot read characters
- rapidly enough, it will have the same effect as if
- the terminal did not send characters rapidly enough.
- The library will still see a timeout.
-
- Note that xterm mouse events are built up from
- character sequences received from the xterm. If your
- application makes heavy use of multiple-clicking, you
- may wish to lengthen this default value because the
- timeout applies to the composed multi-click event as
- well as the individual clicks.
-
- HOME Tells <B>ncurses</B> where your home directory is. That is
- where it may read and write auxiliary terminal
- descriptions:
-
- $HOME/.termcap
- $HOME/.terminfo
-
- LINES
- Like COLUMNS, specify the height of the screen in
- characters. See COLUMNS for a detailed description.
-
- MOUSE_BUTTONS_123
- This applies only to the OS/2 EMX port. It specifies
- the order of buttons on the mouse. OS/2 numbers a
- 3-button mouse inconsistently from other platforms:
-
- 1 = left
- 2 = right
- 3 = middle.
-
- This symbol lets you customize the mouse. The symbol
- must be three numeric digits 1-3 in any order, e.g.,
- 123 or 321. If it is not specified, <B>ncurses</B> uses
- 132.
-
- 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
- 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
- dataflow, preventing overruns. The cheapest solution
- (no hardware cost) is for your program to do this by
- pausing after operations that the terminal does
- slowly, such as clearing the display.
-
- As a result, many terminal descriptions (including
- the vt100) have delay times embedded. You may wish
- to use these descriptions, but not want to pay the
- performance penalty.
-
- Set the NCURSES_NO_PADDING symbol to disable all but
- mandatory padding. Mandatory padding is used as a
- part of special control sequences such as <I>flash</I>.
-
- 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
- NCURSES_NO_SETBUF variable disables output buffering,
- leaving the output in the original (usually line
- 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,
- 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.
-
- TERM Denotes your terminal type. Each terminal type is
- 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
- 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
- information, e.g., /etc/termcap.
-
- TERMINFO
- Overrides the directory in which <B>ncurses</B> searches for
- your terminal description. This is the simplest, but
- not the only way to change the list of directories.
- The complete list of directories in order follows:
-
- - the last directory to which <B>ncurses</B> wrote, if any,
- is searched first.
-
- - the directory specified by the TERMINFO symbol
-
- - $HOME/.terminfo
-
- - directories listed in the TERMINFO_DIRS symbol
-
- - one or more directories whose names are configured
- and compiled into the ncurses library, e.g.,
- /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.
-
- 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
- $HOME/.termcap, in that order.
-
- The library may be configured to disregard the following
- variables when the current user is the superuser (root),
- or if the application uses setuid or setgid permissions:
- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/tabset
- directory containing initialization files for the
- terminal capability database /usr/share/terminfo
- terminal capability database
-
-
-</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.
-
-
-</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
- /etc/termcap file if the terminal setup code cannot find a
- terminfo entry corresponding to <B>TERM</B>. Use of this feature
- is not recommended, as it essentially includes an entire
- termcap compiler in the <B>ncurses</B> startup code, at
- significant cost in core and startup cycles.
-
- The <B>ncurses</B> library includes facilities for capturing
- 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 <B>ncurses</B> library includes facilities for responding to
- 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
- details. In addition, the library may be configured with
- a SIGWINCH handler.
-
- The <B>ncurses</B> library extends the fixed set of function key
- capabilities of terminals by allowing the application
- designer to define additional key sequences at runtime.
- See the <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
- details.
-
- The <B>ncurses</B> 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
- contrasts. See the <B><A HREF="use_default_colors.3x.html">use_default_colors(3x)</A></B> manual page for
- details.
- The <B>ncurses</B> library includes a function for directing
- 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.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The <B>ncurses</B> 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: <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>,
-
- 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
- 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 <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
- details.
-
- The routines <B>getmouse</B>, <B>mousemask</B>, <B>ungetmouse</B>,
- <B>mouseinterval</B>, and <B>wenclose</B> relating to mouse interfacing
- 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 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
- 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.
-
- 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
- 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>
- 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>.
-
- If standard output from a <B>ncurses</B> 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.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
- Based on pcurses by Pavel Curtis.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/panel.3x.html b/ncurses-5.2/doc/html/man/panel.3x.html
deleted file mode 100644
index a07930d..0000000
--- a/ncurses-5.2/doc/html/man/panel.3x.html
+++ /dev/null
@@ -1,194 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- panel - panel stack extension for curses
-
-
-</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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Panels are <B><A HREF="ncurses.3x.html">curses(3x)</A></B> 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
- curses <B>stdscr</B> window are hidden or displayed when panels
- are added, moved, modified or removed. The set of cur-
- rently visible panels is the stack of panels. The <B>stdscr</B>
- window is beneath all panels, and is not considered part
- of the stack.
-
- A window is associated with every panel. The panel rou-
- tines enable you to create, move, hides, and show panels,
- 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>,
- 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
- (causes it to be displayed above any other
- panel) and returns a pointer to the new panel.
-
- <B>void</B> <B>update_panels()</B>
- 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.
- Use this function and not wrefresh or wnoutrefresh.
- update_panels() may be called more than once before
- a call to doupdate(), but doupdate() is the func-
- tion responsible for updating the physical screen.
-
- <B>del_panel(pan)</B>
- removes the given panel from the stack and deallo-
- cates the <B>PANEL</B> structure (but not its associated
- window).
-
- <B>hide_panel(pan)</B>
- removes the given panel from the panel stack and
- thus hides it from view. The <B>PANEL</B> structure is not
- lost, merely removed from the stack.
-
- <B>show_panel(pan)</B>
- 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>
- puts the given visible panel on top of all panels
- in the stack. See COMPATIBILITY below.
-
- <B>bottom_panel(pan)</B>
- puts panel at the bottom of all panels.
-
- <B>move_panel(pan,starty,startx)</B>
- moves the given panel window so that its upper-left
- corner is at <B>starty</B>, <B>startx</B>. It does not change
- the position of the panel in the stack. Be sure to
- use this function, not <B>mvwin()</B>, to move a panel
- window.
-
- <B>replace_panel(pan,window)</B>
- replaces the current window of panel with <B>window</B>
- (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
- the position of the panel in the stack.
-
- <B>panel_above(pan)</B>
- returns a pointer to the panel above pan. If the
- panel argument is <B>(PANEL</B> <B>*)0</B>, it returns a pointer
- to the bottom panel in the stack.
-
- <B>panel_below(pan)</B>
- returns a pointer to the panel just below pan. If
- the panel argument is <B>(PANEL</B> <B>*)0</B>, it returns a
- pointer to the top panel in the stack.
-
- <B>set_panel_userptr(pan,ptr)</B>
- sets the panel's user pointer.
-
- <B>panel_userptr(pan)</B>
- returns the user pointer for a given panel.
-
- <B>panel_window(pan)</B>
- 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
- error occurs. Each routine that returns an int value
- returns <B>OK</B> if it executes successfully and <B>ERR</B> if not.
-
-
-</PRE>
-<H2>COMPATIBILITY</H2><PRE>
- Reasonable care has been taken to ensure compatibility
- with the native panel facility introduced in SVr3.2
- (inspection of the SVr4 manual pages suggests the program-
- ming interface is unchanged). The <B>PANEL</B> data structures
- are merely similar. The programmer is cautioned not to
- directly use <B>PANEL</B> fields.
-
- The functions <B>show_panel()</B> and <B>top_panel()</B> are identical
- 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
- intended for making an already-visible panel move to the
- top of the stack. You are cautioned to use the correct
- function to ensure compatibility with native panel
- libraries.
-
-
-</PRE>
-<H2>NOTE</H2><PRE>
- In your library list, libpanel.a should be before libn-
- curses.a; that is, you want to say `-lpanel -lncurses',
- 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).
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- panel.h interface for the panels library
-
- libpanel.a the panels library itself
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B>
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Originally written by Warren Tucker &lt;wht@n4hgf.mt-
- park.ga.us&gt;, primarily to assist in porting u386mon to
- systems without a native panels library. Repackaged for
- ncurses by Zeyd ben-Halim.
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/resizeterm.3x.html b/ncurses-5.2/doc/html/man/resizeterm.3x.html
deleted file mode 100644
index 712dee1..0000000
--- a/ncurses-5.2/doc/html/man/resizeterm.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>resizeterm</B> - change the curses terminal size
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <B>int</B> <B>resizeterm(int</B> <B>lines,</B> <B>int</B> <B>columns);</B>
-
-
-</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-
- 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.
-
-
-</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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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 context where <B>malloc</B> or <B>realloc</B>
- may have been interrupted, since it uses those functions.
-
- 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
- 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>
- <B><A HREF="wresize.3x.html">wresize(3x)</A></B>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey (from an equivalent function written in 1988
- for BSD curses).
-
-
-
-</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/ncurses-5.2/doc/html/man/term.5.html b/ncurses-5.2/doc/html/man/term.5.html
deleted file mode 100644
index b4c1ed0..0000000
--- a/ncurses-5.2/doc/html/man/term.5.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- term - format of compiled term file.
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>term</B>
-
-
-</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
- 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.
-
- 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
- six parts: the header, terminal names, boolean flags, num-
- bers, strings, and string table.
-
- The header section begins the file. This section contains
- six short integers in the format described below. These
- integers are (1) the magic number (octal 0432); (2) the
- size, in bytes, of the names section; (3) the number of
- bytes in the boolean section; (4) the number of short
- integers in the numbers section; (5) the number of offsets
- (short integers) in the strings section; (6) the size, in
- bytes, of the string table.
-
- Short integers are stored in two 8-bit bytes. The first
- byte contains the least significant 8 bits of the value,
- and the second byte contains the most significant 8 bits.
- (Thus, the value represented is 256*second+first.) The
- value -1 is represented by the two bytes 0377, 0377; other
- negative values are illegal. This value generally means
- that the corresponding capability is missing from this
- terminal. Note that this format corresponds to the hard-
- ware of the VAX and PDP-11 (that is, little-endian
- machines). Machines where this does not correspond to the
- hardware must read the integers as two bytes and compute
- the little-endian value.
-
- The terminal names section comes next. It contains the
- first line of the terminfo description, listing the vari-
- ous names for the terminal, separated by the `|' charac-
- ter. The section is terminated with an ASCII NUL charac-
- ter.
-
- The boolean flags have one byte for each flag. This byte
- is either 0 or 1 as the flag is present or absent. The
- capabilities are in the same order as the file &lt;term.h&gt;.
-
- Between the boolean section and the number section, a null
- byte will be inserted, if necessary, to ensure that the
- number section begins on an even byte (this is a relic of
- the PDP-11's word-addressed architecture, originally
- designed in to avoid IOT traps induced by addressing a
- word on an odd byte boundary). All short integers are
- aligned on a short word boundary.
-
- The numbers section is similar to the flags section. Each
- capability takes up two bytes, and is stored as a little-
- endian short integer. If the value represented is -1, the
- capability is taken to be missing.
-
- The strings section is also similar. Each capability is
- stored as a short integer, in the format above. A value
- of -1 means the capability is missing. Otherwise, the
- value is taken as an offset from the beginning of the
- string table. Special characters in ^X or \c notation are
- stored in their interpreted form, not the printing repre-
- sentation. Padding information $&lt;nn&gt; and parameter infor-
- mation %x are stored intact in uninterpreted form.
-
- The final section is the string table. It contains all
- 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-
- 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-
- 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>
- 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,
- number, and string capabilities.
-
- Despite the consistent use of little-endian for numbers
- and the otherwise self-describing format, it is not wise
- to count on portability of binary terminfo entries between
- commercial UNIX versions. The problem is that there are
- at least three versions of terminfo (under HP-UX, AIX, and
- 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-
- sion of terminfo source compatibility issues.
-
- As an example, here is a hex dump of the description for
- the Lear-Siegler ADM-3, a popular though rather stupid
- early terminal:
-
- adm3a|lsi adm3a,
- 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,
- home=^^, ind=^J,
-
- 0000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
- 0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.
- 0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........
- 0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'...
- 0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-.....
- 0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$&lt;1
- 0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 &gt;..=%p1% {32}%+%c
- 0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....
- 0150 00 08 00 0c 00 0b 00 0a 00 ........ .
-
-
- Some limitations: total compiled entries cannot exceed
- 4096 bytes. The name field cannot exceed 128 bytes.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo/*/* compiled terminal capability data
- base
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/term.7.html b/ncurses-5.2/doc/html/man/term.7.html
deleted file mode 100644
index 55df37d..0000000
--- a/ncurses-5.2/doc/html/man/term.7.html
+++ /dev/null
@@ -1,239 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- term - conventions for naming terminal types
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The environment variable <B>TERM</B> 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.
-
- 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
- for workstation and microcomputer consoles.
-
- If you use a dialup line, the type of device attached to
- it may vary. Older UNIX systems pre-set a very dumb ter-
- minal type like `dumb' or `dialup' on dialup lines. Newer
- ones may pre-set `vt100', reflecting the prevalence of DEC
- VT100-compatible terminals and personal-computer emula-
- tors.
-
- Modern telnets pass your <B>TERM</B> 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
- can almost always be avoided by explicitly exporting
- `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>
- 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
- 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.
-
- Terminal type descriptions are stored as files of capabil-
- ity data underneath /usr/share/terminfo. To browse a list
- of all terminal names recognized by the system, do
-
- toe | more
-
- 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-
- lows:
-
- infocmp <I>entry-name</I>
-
- where <I>entry-name</I> 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
- described by <B><A HREF="terminfo.5.html">terminfo(5)</A></B>.
-
- The first line of a <B><A HREF="terminfo.5.html">terminfo(5)</A></B> description gives the
- 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
- 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
- first and last (if present) are aliases for the terminal,
- usually historical names retained for compatibility.
-
- There are some conventions for how to choose terminal pri-
- mary names that help keep them informative and unique.
- Here is a step-by-step guide to naming terminals that also
- explains how to parse them:
-
- First, choose a root name. The root will consist of a
- lower-case letter followed by up to seven lower-case let-
- ters or digits. You need to avoid using punctuation char-
- acters in root names, because they are used and inter-
- preted as filenames and shell meta-characters (such as !,
- $, *, ? etc.) embedded in them may cause odd and unhelpful
- behavior. The slash (/), or any other character that may
- be interpreted by anyone's file system (\, $, [, ]), is
- especially dangerous (terminfo is platform-independent,
- and choosing names with special characters could someday
- make life difficult for users of a future port). The dot
- (.) character is relatively safe as long as there is at
- most one per root name; some historical terminfo names use
- it.
-
- 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
- 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>.
-
- 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
- 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>).
-
- Following the root name, you may add any reasonable number
- of hyphen-separated feature suffixes.
-
- 2p Has two pages of memory. Likewise 4p, 8p, etc.
-
- mc Magic-cookie. Some terminals (notably older Wyses)
- can only support one attribute without magic-cookie
- lossage. Their base entry is usually paired with
- another that has this suffix and uses magic cookies
- to support multiple attributes.
-
- -am Enable auto-margin (right-margin wraparound)
-
- -m Mono mode - suppress color support
-
- -na No arrow keys - termcap ignores arrow keys which are
- actually there on the terminal, so the user can use
- the arrow keys locally.
-
- -nam No auto-margin - suppress am capability
-
- -nl No labels - suppress soft labels
-
- -nsl No status line - suppress status line
-
- -pp Has a printer port which is used.
-
- -rv Terminal in reverse video mode (black on white)
-
- -s Enable status line.
-
- -vb Use visible bell (flash) rather than beep.
-
- -w Wide; terminal is in 132 column mode.
-
- Conventionally, if your terminal type is a variant
- 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').
-
- 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
- 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>
- environment variable when no -T option is specified.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- For maximum compatibility with older System V UNIXes,
- names and aliases should be unique within the first 14
- characters.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo/?/*
- compiled terminal capability data base
-
- /etc/inittab
- tty line initialization (AT&amp;T-like UNIXes).
-
- /etc/ttys
- tty line initialization (BSD-like UNIXes).
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/terminfo.5.html b/ncurses-5.2/doc/html/man/terminfo.5.html
deleted file mode 100644
index 20bb063..0000000
--- a/ncurses-5.2/doc/html/man/terminfo.5.html
+++ /dev/null
@@ -1,2242 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- terminfo - terminal capability data base
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- /usr/share/terminfo/*/*
-
-
-</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-
- 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
- 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
- be a long name fully identifying the terminal, and all
- others are understood as synonyms for the terminal name.
- All names but the last should be in lower case and contain
- no blanks; the last name may well contain upper case and
- blanks for readability.
-
- Terminal names (except for the last, verbose entry) should
- be chosen using the following conventions. The particular
- piece of hardware making up the terminal should have a
- root name, thus ``hp2621''. This name should not contain
- hyphens. Modes that the hardware can be in, or user pref-
- erences, should be indicated by appending a hyphen and a
- mode suffix. Thus, a vt100 in 132 column mode would be
- vt100-w. The following suffixes should be used where pos-
- sible:
-
- <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
- -am With automargins (usually the default) vt100-am
- -m Mono mode; suppress color ansi-m
- -mc Magic cookie; spaces when highlighting wy30-mc
- -na No arrow keys (leave them in local) c100-na
- -nam Without automatic margins vt100-nam
- -nl No status line att4415-nl
- -ns No status line hp2626-ns
- -rv Reverse video c100-rv
- -s Enable status line vt100-s
- -vb Use visible bell instead of beep wy370-vb
- -w Wide mode (&gt; 80 columns, usually 132) vt100-w
-
- For more on terminal naming conventions, see the <B>term(7)</B>
- manual page.
-
- <B>Capabilities</B>
- 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
- terminfo level) accesses the capability.
-
- The <B>capname</B> 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 specifi-
- cation.
-
- The termcap code is the old <B>termcap</B> 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
- short and to allow the tabs in the source file <B>Caps</B> 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:
-
- (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>).
-
- (P*) indicates that padding may vary in proportion to
- the number of lines affected
-
- (#<I>i</I>) indicates the <I>i</I>th parameter.
-
-
- 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>
- auto_left_margin bw bw cub1 wraps from col-
- umn 0 to last column
- auto_right_margin am am terminal has auto-
- matic margins
- back_color_erase bce ut screen erased with
- background color
- can_change ccc cc terminal can re-
- define existing col-
- ors
-
- ceol_standout_glitch xhp xs standout not erased
- by overwriting (hp)
- col_addr_glitch xhpa YA only positive motion
- for hpa/mhpa caps
- cpi_changes_res cpix YF changing character
- pitch changes reso-
- lution
- cr_cancels_micro_mode crxm YB using cr turns off
- micro mode
- dest_tabs_magic_smso xt xt tabs destructive,
- magic so char
- (t1061)
- eat_newline_glitch xenl xn newline ignored
- after 80 cols (con-
- cept)
- erase_overstrike eo eo can erase over-
- strikes with a blank
- generic_type gn gn generic line type
- hard_copy hc hc hardcopy terminal
- hard_cursor chts HC cursor is hard to
- see
- has_meta_key km km Has a meta key
- (i.e., sets 8th-bit)
- has_print_wheel daisy YC printer needs opera-
- tor to change char-
- acter set
- has_status_line hs hs has extra status
- line
- hue_lightness_saturation hls hl terminal uses only
- HLS color notation
- (Tektronix)
- insert_null_glitch in in insert mode distin-
- guishes nulls
- lpi_changes_res lpix YG changing line pitch
- changes resolution
- memory_above da da display may be
- retained above the
- screen
- memory_below db db display may be
- retained below the
- screen
- move_insert_mode mir mi safe to move while
- 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
- 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_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
- 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
- (hazeltine)
- transparent_underline ul ul underline character
- overstrikes
- xon_xoff xon xo terminal uses
- xon/xoff handshaking
-
- 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>
- columns cols co number of columns in
- a line
- init_tabs it it tabs initially every
- # spaces
- label_height lh lh rows in each label
- label_width lw lw columns in each
- label
- lines lines li number of lines on
- screen or page
- lines_of_memory lm lm lines of memory if &gt;
- line. 0 means varies
- magic_cookie_glitch xmc sg number of blank
- characters left by
- smso or rmso
- max_attributes ma ma maximum combined
- attributes terminal
- can handle
- max_colors colors Co maximum number of
- colors on screen
- max_pairs pairs pa maximum number of
- color-pairs on the
- screen
- maximum_windows wnum MW maximum number of
- defineable windows
- no_color_video ncv NC video attributes
- that can't be used
- with colors
- 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
- number (CB/unix)
- 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
- 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>
- bit_image_entwining bitwin Yo number of passes for
- each bit-image row
- bit_image_type bitype Yp type of bit-image
- device
- buffer_capacity bufsz Ya numbers of bytes
- buffered before
- printing
- buttons btns BT number of buttons on
- mouse
- dot_horz_spacing spinh Yc spacing of dots hor-
- izontally in dots
- per inch
- dot_vert_spacing spinv Yb spacing of pins ver-
- tically in pins per
- inch
- max_micro_address maddr Yd maximum value in
- micro_..._address
- max_micro_jump mjump Ye maximum value in
- parm_..._micro
- micro_col_size mcs Yf character step size
- when in micro mode
- micro_line_size mls Yg line step size when
- in micro mode
- number_of_pins npins Yh numbers of pins in
- print-head
- output_res_char orc Yi horizontal resolu-
- tion in units per
- line
- output_res_horz_inch orhi Yk horizontal resolu-
- tion in units per
- inch
- output_res_line orl Yj vertical resolution
- in units per line
- output_res_vert_inch orvi Yl vertical resolution
- 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:
-
- <B>Variable</B> <B>Cap-</B> <B>TCap</B> <B>Description</B>
- <B>String</B> <B>name</B> <B>Code</B>
- acs_chars acsc ac graphics charset
- pairs, based on
- vt100
- back_tab cbt bt back tab (P)
- bell bel bl audible signal
- (bell) (P)
- carriage_return cr cr carriage return (P*)
- (P*)
- change_char_pitch cpi ZA Change number of
- characters per inch
- to #1
- change_line_pitch lpi ZB Change number of
- lines per inch to #1
- change_res_horz chr ZC Change horizontal
- resolution to #1
- change_res_vert cvr ZD Change vertical res-
- olution to #1
- change_scroll_region csr cs change region to
- line #1 to line #2
- (P)
- char_padding rmp rP like ip but when in
- insert mode
- clear_all_tabs tbc ct clear all tab stops
- (P)
- clear_margins mgc MC clear right and left
- soft margins
- clear_screen clear cl clear screen and
- home cursor (P*)
- clr_bol el1 cb Clear to beginning
- of line
- clr_eol el ce clear to end of line
- (P)
- clr_eos ed cd clear to end of
- screen (P*)
- column_address hpa ch horizontal position
- #1, absolute (P)
- command_character cmdch CC terminal settable
- cmd character in
- prototype !?
- create_window cwin CW define a window #1
- from #2,#3 to #4,#5
- cursor_address cup cm move to row #1
- columns #2
- cursor_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_mem_address mrcup CM memory relative cur-
- sor addressing, move
- to row #1 columns #2
- cursor_normal cnorm ve make cursor appear
- normal (undo
- civis/cvvis)
- cursor_right cuf1 nd non-destructive
- space (move right
- one space)
- cursor_to_ll ll ll last line, first
- column (if no cup)
- cursor_up cuu1 up up one line
- cursor_visible cvvis vs make cursor very
- visible
- define_char defc ZE Define a character
- #1, #2 dots wide,
- descender #3
- delete_character dch1 dc delete character
- (P*)
- delete_line dl1 dl delete line (P*)
- dial_phone dial DI dial number #1
- dis_status_line dsl ds disable status line
- display_clock dclk DK display clock
- down_half_line hd hd half a line down
- ena_acs enacs eA enable alternate
- char set
- enter_alt_charset_mode smacs as start alternate
- character set (P)
- enter_am_mode smam SA turn on automatic
- margins
- enter_blink_mode blink mb turn on blinking
- enter_bold_mode bold md turn on bold (extra
- bright) mode
- enter_ca_mode smcup ti string to start pro-
- grams using cup
- enter_delete_mode smdc dm enter delete mode
- enter_dim_mode dim mh turn on half-bright
- mode
- enter_doublewide_mode swidm ZF Enter double-wide
- mode
- enter_draft_quality sdrfq ZG Enter draft-quality
- mode
- enter_insert_mode smir im enter insert mode
- enter_italics_mode sitm ZH Enter italic mode
- enter_leftward_mode slm ZI Start leftward car-
- riage motion
- enter_micro_mode smicm ZJ Start micro-motion
- mode
- enter_near_letter_quality snlq ZK Enter NLQ mode
- enter_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
- (characters invisi-
- ble)
- enter_shadow_mode sshm ZM Enter shadow-print
- mode
- enter_standout_mode smso so begin standout mode
- enter_subscript_mode ssubm ZN Enter subscript mode
- enter_superscript_mode ssupm ZO Enter superscript
- mode
- enter_underline_mode smul us begin underline mode
- enter_upward_mode sum ZP Start upward car-
- riage motion
- enter_xon_mode smxon SX turn on xon/xoff
- handshaking
- erase_chars ech ec erase #1 characters
- (P)
- exit_alt_charset_mode rmacs ae end alternate char-
- acter set (P)
- exit_am_mode rmam RA turn off automatic
- margins
- exit_attribute_mode sgr0 me turn off all
- attributes
- exit_ca_mode rmcup te strings to end pro-
- grams using cup
- exit_delete_mode rmdc ed end delete mode
- exit_doublewide_mode rwidm ZQ End double-wide mode
- exit_insert_mode rmir ei exit insert mode
- exit_italics_mode ritm ZR End italic mode
- exit_leftward_mode rlm ZS End left-motion mode
- exit_micro_mode rmicm ZT End micro-motion
- mode
- exit_shadow_mode rshm ZU End shadow-print
- mode
- exit_standout_mode rmso se exit standout mode
- exit_subscript_mode rsubm ZV End subscript mode
- exit_superscript_mode rsupm ZW End superscript mode
- exit_underline_mode rmul ue exit underline mode
- exit_upward_mode rum ZX End reverse charac-
- ter motion
- exit_xon_mode rmxon RX turn off xon/xoff
- handshaking
- fixed_pause pause PA pause for 2-3 sec-
- onds
- 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
-
- hangup hup HU hang-up phone
- init_1string is1 i1 initialization
- string
- init_2string is2 is initialization
- string
- init_3string is3 i3 initialization
- string
- init_file if if name of initializa-
- tion file
- init_prog iprog iP path name of program
- for initialization
- initialize_color initc Ic initialize color #1
- to (#2,#3,#4)
- initialize_pair initp Ip Initialize color
- pair #1 to
- fg=(#2,#3,#4),
- bg=(#5,#6,#7)
- insert_character ich1 ic insert character (P)
- insert_line il1 al insert line (P*)
- insert_padding ip ip insert padding after
- inserted character
- key_a1 ka1 K1 upper left of keypad
- key_a3 ka3 K3 upper right of key-
- pad
- key_b2 kb2 K2 center of keypad
- key_backspace kbs kb backspace key
- key_beg kbeg @1 begin key
- key_btab kcbt kB back-tab key
- key_c1 kc1 K4 lower left of keypad
- key_c3 kc3 K5 lower right of key-
- pad
- key_cancel kcan @2 cancel key
- key_catab ktbc ka clear-all-tabs key
- key_clear kclr kC clear-screen or
- erase key
- key_close kclo @3 close key
- key_command kcmd @4 command key
- key_copy kcpy @5 copy key
- key_create kcrt @6 create key
- key_ctab kctab kt clear-tab key
- key_dc kdch1 kD delete-character key
- key_dl kdl1 kL delete-line key
- key_down kcud1 kd down-arrow key
- key_eic krmir kM sent by rmir or smir
- 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_f1 kf1 k1 F1 function key
- key_f10 kf10 k; F10 function key
- key_f11 kf11 F1 F11 function key
- key_f12 kf12 F2 F12 function key
- key_f13 kf13 F3 F13 function key
- key_f14 kf14 F4 F14 function key
- key_f15 kf15 F5 F15 function key
- key_f16 kf16 F6 F16 function key
- key_f17 kf17 F7 F17 function key
- key_f18 kf18 F8 F18 function key
- key_f19 kf19 F9 F19 function key
- key_f2 kf2 k2 F2 function key
- key_f20 kf20 FA F20 function key
- key_f21 kf21 FB F21 function key
- key_f22 kf22 FC F22 function key
- key_f23 kf23 FD F23 function key
- key_f24 kf24 FE F24 function key
- key_f25 kf25 FF F25 function key
- key_f26 kf26 FG F26 function key
- key_f27 kf27 FH F27 function key
- key_f28 kf28 FI F28 function key
- key_f29 kf29 FJ F29 function key
- key_f3 kf3 k3 F3 function key
- key_f30 kf30 FK F30 function key
- key_f31 kf31 FL F31 function key
- key_f32 kf32 FM F32 function key
- key_f33 kf33 FN F33 function key
- key_f34 kf34 FO F34 function key
- key_f35 kf35 FP F35 function key
- key_f36 kf36 FQ F36 function key
- key_f37 kf37 FR F37 function key
- key_f38 kf38 FS F38 function key
- key_f39 kf39 FT F39 function key
- key_f4 kf4 k4 F4 function key
- key_f40 kf40 FU F40 function key
- key_f41 kf41 FV F41 function key
- key_f42 kf42 FW F42 function key
- key_f43 kf43 FX F43 function key
- key_f44 kf44 FY F44 function key
- key_f45 kf45 FZ F45 function key
- key_f46 kf46 Fa F46 function key
- key_f47 kf47 Fb F47 function key
- key_f48 kf48 Fc F48 function key
- key_f49 kf49 Fd F49 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_f58 kf58 Fm F58 function key
- key_f59 kf59 Fn F59 function key
- key_f6 kf6 k6 F6 function key
- key_f60 kf60 Fo F60 function key
- key_f61 kf61 Fp F61 function key
- key_f62 kf62 Fq F62 function key
- key_f63 kf63 Fr F63 function key
- key_f7 kf7 k7 F7 function key
- key_f8 kf8 k8 F8 function key
- key_f9 kf9 k9 F9 function key
- key_find kfnd @0 find key
- key_help khlp %1 help key
- key_home khome kh home key
- key_ic kich1 kI insert-character key
- key_il kil1 kA insert-line key
- key_left kcub1 kl left-arrow key
- key_ll kll kH lower-left key (home
- down)
- key_mark kmrk %2 mark key
- key_message kmsg %3 message key
- key_move kmov %4 move key
- key_next knxt %5 next key
- key_npage knp kN next-page key
- key_open kopn %6 open key
- key_options kopt %7 options key
- key_ppage kpp kP previous-page key
- key_previous kprv %8 previous key
- key_print kprt %9 print key
- key_redo krdo %0 redo key
- key_reference kref &amp;1 reference key
- key_refresh krfr &amp;2 refresh key
- key_replace krpl &amp;3 replace key
- key_restart krst &amp;4 restart key
- key_resume kres &amp;5 resume key
- key_right kcuf1 kr right-arrow key
- key_save ksav &amp;6 save key
- key_sbeg kBEG &amp;9 shifted begin key
- key_scancel kCAN &amp;0 shifted cancel key
- key_scommand kCMD *1 shifted command key
- key_scopy kCPY *2 shifted copy key
- key_screate kCRT *3 shifted create key
- key_sdc kDC *4 shifted delete-char-
- acter key
- key_sdl kDL *5 shifted delete-line
- key
- key_select kslt *6 select key
- key_send kEND *7 shifted end key
- key_seol kEOL *8 shifted clear-to-
- end-of-line key
- key_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_sleft kLFT #4 shifted left-arrow
- key
- key_smessage kMSG %a shifted message key
- key_smove kMOV %b shifted move key
- key_snext kNXT %c shifted next key
- key_soptions kOPT %d shifted options key
- key_sprevious kPRV %e shifted previous key
- key_sprint kPRT %f shifted print key
- key_sr kri kR scroll-backward key
- key_sredo kRDO %g shifted redo key
- key_sreplace kRPL %h shifted replace key
- key_sright kRIT %i shifted right-arrow
- key
- key_srsume kRES %j shifted resume key
- key_ssave kSAV !1 shifted save key
- key_ssuspend kSPD !2 shifted suspend key
- key_stab khts kT set-tab key
- key_sundo kUND !3 shifted undo key
- key_suspend kspd &amp;7 suspend key
- key_undo kund &amp;8 undo key
- key_up kcuu1 ku up-arrow key
- keypad_local rmkx ke leave 'key-
- board_transmit' mode
- keypad_xmit smkx ks enter 'key-
- board_transmit' mode
- lab_f0 lf0 l0 label on function
- key f0 if not f0
- lab_f1 lf1 l1 label on function
- key f1 if not f1
- lab_f10 lf10 la label on function
- key f10 if not f10
- lab_f2 lf2 l2 label on function
- key f2 if not f2
- lab_f3 lf3 l3 label on function
- key f3 if not f3
- lab_f4 lf4 l4 label on function
- key f4 if not f4
- lab_f5 lf5 l5 label on function
- key f5 if not f5
- lab_f6 lf6 l6 label on function
- 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
- key f9 if not f9
- 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)
- micro_column_address mhpa ZY Like column_address
- in micro mode
- micro_down mcud1 ZZ Like cursor_down in
- micro mode
- micro_left mcub1 Za Like cursor_left in
- micro mode
- micro_right mcuf1 Zb Like cursor_right in
- micro mode
- micro_row_address mvpa Zc Like row_address #1
- in micro mode
- micro_up mcuu1 Zd Like cursor_up in
- micro mode
- newline nel nw newline (behave like
- cr followed by lf)
- order_of_pins porder Ze Match software bits
- to print-head pins
- orig_colors oc oc Set all color pairs
- to the original ones
- orig_pair op op Set default pair to
- its original value
- pad_char pad pc padding char
- (instead of null)
- parm_dch dch DC delete #1 characters
- (P*)
- parm_delete_line dl DL delete #1 lines (P*)
- parm_down_cursor cud DO down #1 lines (P*)
- parm_down_micro mcud Zf Like parm_down_cur-
- sor in micro mode
- parm_ich ich IC insert #1 characters
- (P*)
- parm_index indn SF scroll forward #1
- lines (P)
- parm_insert_line il AL insert #1 lines (P*)
- parm_left_cursor cub LE move #1 characters
- to the left (P)
- parm_left_micro mcub Zg Like parm_left_cur-
- sor in micro mode
- parm_right_cursor cuf RI move #1 characters
- to the right (P*)
- parm_right_micro mcuf Zh Like parm_right_cur-
- 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
-
-
-
- pkey_local pfloc pl program function key
- #1 to execute string
- #2
- pkey_xmit pfx px program function key
- #1 to transmit
- string #2
- plab_norm pln pn program label #1 to
- show string #2
- print_screen mc0 ps print contents of
- screen
- prtr_non mc5p pO turn on printer for
- #1 bytes
- prtr_off mc4 pf turn off printer
- prtr_on mc5 po turn on printer
- pulse pulse PU select pulse dialing
- quick_dial qdial QD dial number #1 with-
- out checking
- remove_clock rmclk RC remove clock
- repeat_char rep rp repeat char #1 #2
- times (P*)
- req_for_input rfi RF send next input char
- (for ptys)
- reset_1string rs1 r1 reset string
- reset_2string rs2 r2 reset string
- reset_3string rs3 r3 reset string
- reset_file rf rf name of reset file
- restore_cursor rc rc restore cursor to
- position of last
- save_cursor
- row_address vpa cv vertical position #1
- absolute (P)
- save_cursor sc sc save current cursor
- position (P)
- scroll_forward ind sf scroll text up (P)
- scroll_reverse ri sr scroll text down (P)
- select_char_set scs Zj Select character
- set, #1
- set_attributes sgr sa define video
- attributes #1-#9
- (PG9)
- set_background setb Sb Set background color
- #1
- set_bottom_margin smgb Zk Set bottom margin at
- current line
- set_bottom_margin_parm smgbp Zl Set bottom margin at
- 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_foreground setf Sf Set foreground color
- #1
- set_left_margin smgl ML set left soft margin
- at current column.
- See smgl. (ML is not
- in BSD termcap).
- set_left_margin_parm smglp Zm Set left (right)
- margin at column #1
- set_right_margin smgr MR set right soft mar-
- gin at current col-
- umn
- set_right_margin_parm smgrp Zn Set right margin at
- column #1
- set_tab hts st set a tab in every
- row, current columns
- set_top_margin smgt Zo Set top margin at
- current line
- set_top_margin_parm smgtp Zp Set top (bottom)
- margin at row #1
- set_window wind wi current window is
- lines #1-#2 cols
- #3-#4
- start_bit_image sbim Zq Start printing bit
- image graphics
- start_char_set_def scsd Zr Start character set
- definition #1, with
- #2 characters in the
- set
- stop_bit_image rbim Zs Stop printing bit
- image graphics
- stop_char_set_def rcsd Zt End definition of
- character set #1
- subscript_characters subcs Zu List of subscript-
- able characters
- superscript_characters supcs Zv List of superscript-
- able characters
- tab ht ta tab to next 8-space
- hardware tab stop
- these_cause_cr docr Zw Printing any of
- these characters
- causes CR
- to_status_line tsl ts move to status line,
- column #1
- tone tone TO select touch tone
- dialing
- underline_char uc uc underline char and
- 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
-
- user5 u5 u5 User string #5
- user6 u6 u6 User string #6
- user7 u7 u7 User string #7
- user8 u8 u8 User string #8
- user9 u9 u9 User string #9
- wait_tone wait WA wait for dial-tone
- xoff_character xoffc XF XOFF character
- xon_character xonc XN XON 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
- 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>
- alt_scancode_esc scesa S8 Alternate escape
- for scancode emu-
- lation
- bit_image_carriage_return bicr Yv Move to beginning
- of same row
- bit_image_newline binel Zz Move to next row
- of the bit image
- bit_image_repeat birep Xy Repeat bit image
- cell #1 #2 times
- char_set_names csnm Zy Produce #1'th item
- from list of char-
- acter set names
- code_set_init csin ci Init sequence for
- multiple codesets
- color_names colornm Yw Give name for
- color #1
- define_bit_image_region defbi Yx Define rectan-
- gualar bit image
- region
- device_type devt dv Indicate lan-
- guage/codeset sup-
- port
- display_pc_char dispc S1 Display PC charac-
- ter #1
- end_bit_image_region endbi Yy End a bit-image
- region
- enter_pc_charset_mode smpch S2 Enter PC character
- display mode
- enter_scancode_mode smsc S4 Enter PC scancode
- mode
- exit_pc_charset_mode rmpch S3 Exit PC character
- display mode
- exit_scancode_mode rmsc S5 Exit PC scancode
- mode
-
-
-
- get_mouse getm Gm Curses should get
- button events,
- parameter #1 not
- documented.
- key_mouse kmous Km Mouse event has
- occurred
- mouse_info minfo Mi Mouse status
- information
- pc_term_options pctrm S6 PC terminal
- options
- pkey_plab pfxl xl Program function
- key #1 to type
- string #2 and show
- string #3
- req_mouse_pos reqmp RQ Request mouse
- 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
- set_a_background setab AB Set background
- color to #1, using
- ANSI escape
- set_a_foreground setaf AF Set foreground
- color to #1, using
- ANSI escape
- set_color_band setcolor Yz Change to ribbon
- color #1
- set_lr_margin smglr ML Set both left and
- right margins to
- #1, #2. (ML is
- not in BSD term-
- cap).
- set_page_length slines YZ Set page length to
- #1 lines
- set_tb_margin smgtb MT Sets both top and
- bottom margins to
- #1, #2
-
- 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
- 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!
-
- <B>Variable</B> <B>Cap-</B> <B>TCap</B> <B>Description</B>
- <B>String</B> <B>name</B> <B>Code</B>
- enter_horizontal_hl_mode ehhlm Xh Enter horizontal
- highlight mode
- enter_left_hl_mode elhlm Xl Enter left highlight
- mode
- enter_low_hl_mode elohlm Xo Enter low highlight
- mode
- enter_right_hl_mode erhlm Xr Enter right high-
- light mode
- enter_top_hl_mode ethlm Xt Enter top highlight
- mode
- enter_vertical_hl_mode evhlm Xv Enter vertical high-
- light mode
- set_a_attributes sgr1 sA Define second set of
- video attributes
- #1-#6
- set_pglen_inch slengthsL YI Set page length
- to #1 hundredth of
- an inch
-
-
- <B>A</B> <B>Sample</B> <B>Entry</B>
- The following entry, describing an ANSI-standard terminal,
- is representative of what a <B>terminfo</B> entry for a modern
- terminal typically looks like.
-
- ansi|ansi/pc-term compatible with color,
- mc5i,
- colors#8, ncv#3, pairs#64,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
- ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I,
- ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V,
- kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P,
- kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
- kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
- op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db,
- rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B,
- s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
- sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
- u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
-
- Entries may continue onto multiple lines by placing white
- space at the beginning of each line except the first.
- Comments may be included on lines beginning with ``#''.
- Capabilities in <I>terminfo</I> are of three types: Boolean capa-
- bilities which indicate that the terminal has some partic-
- ular feature, numeric capabilities giving the size of the
- terminal or the size of particular delays, and string
- capabilities, which give a sequence which can be used to
- perform particular terminal operations.
-
-
- <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
- numeric capabilities may be specified in decimal, octal or
- hexadecimal, using the C programming language conventions
- (e.g., 255, 0377 and 0xff or 0xFF).
-
- Finally, string valued capabilities, such as <B>el</B> (clear to
- end of line sequence) are given by the two-character code,
- an `=', and then a string ending at the next following
- `,'.
-
- A number of escape sequences are provided in the string
- 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
- 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>.
-
- 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
- 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
- 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.
-
-
- <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-
- 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-
- 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
- very unusual terminal may expose deficiencies in the abil-
- ity of the <I>terminfo</I> file to describe it or bugs in the
- screen-handling code of the test program.
-
- To get the padding for insert line right (if the terminal
- manufacturer did not document it) a severe test is to edit
- a large file at 9600 baud, delete 16 or so lines from the
- middle of the screen, then hit the `u' key several times
- quickly. If the terminal messes up, more padding is usu-
- ally needed. A similar test can be used for insert char-
- 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
- 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
- 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
- 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.
-
- 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
- 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
- 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>
- out of one or both of them.
-
- These capabilities suffice to describe hard-copy and
- "glass-tty" terminals. Thus the model 33 teletype is
- described as
-
- 33|tty33|tty|model 33 teletype,
- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
-
- while the Lear Siegler ADM-3 is described as
-
- adm3|3|lsi adm3,
- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
- ind=^J, lines#24,
-
-
- <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
- 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>.
-
- 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
- format. Often more complex operations are necessary.
-
- The <B>%</B> encodings have the following meanings:
-
- %% outputs `%'
- %<I>[[</I>:<I>]flags][width[.precision]][</I>doxXs<I>]</I>
- as in <B>printf</B>, flags are [-+#] and space
- %c print pop() like %c in printf()
- %s print pop() like %s in printf()
-
- %p[1-9] push <I>i</I>'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
- %'<I>c</I>' char constant <I>c</I>
- %{<I>nn</I>} integer constant <I>nn</I>
- %l push strlen(pop)
-
- %+ %- %* %/ %m
- arithmetic (%m is mod): push(pop() op pop())
-
- %&amp; %| %^ bit operations: push(pop() op pop())
- %= %&gt; %&lt; logical operations: push(pop() op pop())
- %A, %O logical and &amp; or operations (for conditionals)
- %! %~ unary operations push(op pop())
- %i add 1 to first two parameters (for ANSI terminals)
-
- %? expr %t thenpart %e elsepart %;
- if-then-else, %e elsepart is optional.
- else-if's are possible a la Algol 68:
- %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
- ci are conditions, bi are bodies.
-
- 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
- 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".
-
- 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
- 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.
- More complex arithmetic is possible using the stack.
-
-
- <B>Cursor</B> <B>Motions</B>
- 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
- 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>.)
-
- 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-
- 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
- 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
- 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>.
-
-
- <B>Area</B> <B>Clears</B>
- 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
- 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
- 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>).
-
- 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
- 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-
- 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>
- implementation is more liberal and will do explicit erases
- after scrolling if <B>ndstr</B> is defined.
-
- 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
- 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
- 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)
- between the "abc" and the "def". Then position the cursor
- before the "abc" and put the terminal in insert mode. If
- typing characters causes the rest of the line to shift
- rigidly and characters to fall off the end, then your ter-
- minal does not distinguish between blanks and untyped
- positions. If the "abc" shifts over to the "def" which
- then move together around the end of the current line and
- onto the next as you insert, you have the second type of
- terminal, and should give the capability <B>in</B>, which stands
- 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.
-
- Terminfo can describe both terminals which have an insert
- mode, and terminals which send a simple sequence to open a
- blank position on the current line. Give as <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
- 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
- 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
- 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
- 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>.
-
- 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
- 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.
-
- 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
- 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).
-
- 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>
- with one parameter.
-
-
- <B>Highlighting,</B> <B>Underlining,</B> <B>and</B> <B>Visible</B> <B>Bells</B>
- 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
- 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
- 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,
- 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
- 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>
-
- none none \E[0m
- p1 standout \E[0;1;7m
- p2 underline \E[0;4m
- p3 reverse \E[0;7m
- p4 blink \E[0;5m
- p5 dim not available
- p6 bold \E[0;1m
- p7 invis \E[0;8m
- p8 protect not used
- p9 altcharset ^O (off) ^N (on)
-
- We begin each escape sequence by turning off any existing
- modes, since there is no quick way to determine whether
- 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
- \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,
- if either standout or reverse modes are turned on.
-
- Writing out the above sequences, along with their depen-
- dencies yields
-
- <B>sequence</B> <B>when</B> <B>to</B> <B>output</B> <B>terminfo</B> <B>translation</B>
-
- \E[0 always \E[0
- ;1 if p1 or p6 %?%p1%p6%|%t;1%;
- ;4 if p2 %?%p2%|%t;4%;
-
- ;5 if p4 %?%p4%|%t;5%;
- ;7 if p1 or p3 %?%p1%p3%|%t;7%;
- ;8 if p7 %?%p7%|%t;8%;
- m always m
- ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
-
- Putting this all together into the sgr sequence gives:
-
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
- %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-
- Remember that if you specify sgr, you must also specify
- 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
- 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 cursor needs to be made more visible than normal
- when it is not on the bottom line (to make, for example, a
- non-blinking underline into an easier to find block or
- 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
- 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>.
-
-
- <B>Keypad</B> <B>and</B> <B>Function</B> <B>Keys</B>
- 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
- 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>
- causes the string to be executed by the terminal in local;
- and <B>pfx</B> causes the string to be transmitted to the com-
- puter.
-
- The capabilities <B>nlab</B>, <B>lw</B> and <B>lh</B> define the number of pro-
- grammable screen labels and their width and height. If
- there are commands to turn the labels on and off, give
- them in <B>smln</B> and <B>rmln</B>. <B>smln</B> is normally output after one
- or more pln sequences to make sure that the change becomes
- visible.
-
-
- <B>Tabs</B> <B>and</B> <B>Initialization</B>
- If the terminal has hardware tabs, the command to advance
- to the next tab stop can be given as <B>ht</B> (usually control
- I). A ``back-tab'' command which moves leftward to the
- preceding tab stop can be given as <B>cbt</B>. By convention, if
- the teletype modes indicate that tabs are being expanded
- by the computer rather than being sent to the terminal,
- programs should not use <B>ht</B> or <B>cbt</B> even if they are pre-
- sent, since the user may not have the tab stops properly
- set. If the terminal has hardware tabs which are ini-
- tially set every <I>n</I> spaces when the terminal is powered up,
- the numeric parameter <B>it</B> is given, showing the number of
- spaces the tabs are set to. This is normally used by the
- <I>tset</I> command to determine whether to set the mode for
- hardware tab expansion, and whether to set the tab stops.
- If the terminal has tab stops that can be saved in non-
- volatile memory, the terminfo description can assume that
- they are properly set.
-
- Other capabilities include <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
- 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
- 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>.
-
- Most initialization is done with <B>is2</B>. Special terminal
- 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
- 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-
- 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
- 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
- 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>.
-
- <B>Delays</B> <B>and</B> <B>Padding</B>
- Many older and slower terminals don't support either
- XON/XOFF or DTR handshaking, including hard copy terminals
- and some very archaic CRTs (including, for example, DEC
- VT100s). These may require padding characters after cer-
- tain cursor motions and screen changes.
-
- If the terminal uses xon/xoff handshaking for flow control
- (that is, it automatically emits ^S back to the host when
- its input buffers are close to full), set <B>xon</B>. This capa-
- bility suppresses the emission of padding. You can also
- set it for memory-mapped console devices effectively that
- don't have a speed limit. Padding information should
- still be included so that routines can make better deci-
- 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
- padding baud rate, then whether padding is emitted or not
- is completely controlled by <B>xon</B>.
-
- 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.
-
-
- <B>Status</B> <B>Lines</B>
- 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).
-
- 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.
-
- 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
- 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.
-
- 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>.
-
- A command to erase or blank the status line may be speci-
- fied as <B>dsl</B>.
-
- The boolean capability <B>eslok</B> specifies that escape
- sequences, tabs, etc. work ordinarily in the status line.
-
- The <B>ncurses</B> implementation does not yet use any of these
- capabilities. They are documented here in case they ever
- become important.
-
-
- <B>Line</B> <B>Graphics</B>
- Many terminals have alternate character sets useful for
- forms-drawing. Terminfo and <B>curses</B> build in support for
- the drawing characters supported by the VT100, with some
- characters from the AT&amp;T 4410v1 added. This alternate
- character set may be specified by the <B>acsc</B> 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>
- UK pound sign ACS_STERLING f }
- arrow pointing down ACS_DARROW v .
- arrow pointing left ACS_LARROW &lt; ,
- arrow pointing right ACS_RARROW &gt; +
- arrow pointing up ACS_UARROW ^ -
- board of squares ACS_BOARD # h
- bullet ACS_BULLET o ~
- checker board (stipple) ACS_CKBOARD : a
- degree symbol ACS_DEGREE \ f
- diamond ACS_DIAMOND + `
- greater-than-or-equal-to ACS_GEQUAL &gt; z
- greek pi ACS_PI * {
- horizontal line ACS_HLINE - q
- lantern symbol ACS_LANTERN # i
- large plus or crossover ACS_PLUS + n
- less-than-or-equal-to ACS_LEQUAL &lt; y
- lower left corner ACS_LLCORNER + m
- lower right corner ACS_LRCORNER + j
- not-equal ACS_NEQUAL ! |
- plus/minus ACS_PLMINUS # g
- scan line 1 ACS_S1 ~ o
- scan line 3 ACS_S3 - p
- scan line 7 ACS_S7 - r
- scan line 9 ACS_S9 _ s
- solid square block ACS_BLOCK # 0
- tee pointing down ACS_TTEE + w
- tee pointing left ACS_RTEE + u
- tee pointing right ACS_LTEE + t
- tee pointing up ACS_BTEE + v
- upper left corner ACS_ULCORNER + l
- upper right corner ACS_URCORNER + k
- vertical line ACS_VLINE | x
-
- The best way to define a new device's graphics set is to
- add a column to a copy of this table for your terminal,
- giving the character which (when emitted between
- <B>smacs</B>/<B>rmacs</B> 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.
-
-
- <B>Color</B> <B>Handling</B>
- Most color terminals are either `Tektronix-like' or `HP-
- like'. Tektronix-like terminals have a predefined set of
- N colors (where N usually 8), and can set character-cell
- foreground and background characters independently, mixing
- them into N * N color-pairs. On HP-like terminals, the
- use must set each color pair up separately (foreground and
- background are not independently settable). Up to M
- color-pairs may be set up from 2*M different colors.
- 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
- the maximum numbers of colors and color-pairs that can be
- displayed simultaneously. The <B>op</B> (original pair) string
- resets foreground and background colors to their default
- values for the terminal. The <B>oc</B> 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 <B>bce</B>.
-
- 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
- color number. The SVr4 documentation describes only
- <B>setaf</B>/<B>setab</B>; the XPG4 draft says that "If the terminal
- supports ANSI escape sequences to set background and fore-
- ground, they should be coded as <B>setaf</B> and <B>setab</B>, respec-
- 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
- defined."
-
- The <B>setaf</B>/<B>setab</B> and <B>setf</B>/<B>setb</B> capabilities take a single
- numeric argument each. Argument values 0-7 are portably
- defined as follows (the middle column is the symbolic
- #define available in the header for the <B>curses</B> or <B>ncurses</B>
- 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
- parameter to set which color pair is current.
-
- On a Tektronix-like terminal, the capability <B>ccc</B> may be
- 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>
- - 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>
- 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
- changing a color-pair value. It will take seven parame-
- ters; a color-pair number (0 to <B>max_pairs</B> - 1), and two
- triples describing first background and then foreground
- colors. These parameters must be (Red, Green, Blue) or
- (Hue, Lightness, Saturation) depending on <B>hls</B>.
-
- On some color terminals, colors collide with highlights.
- You can register these collisions with the <B>ncv</B> capability.
- 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:
-
- <B>Attribute</B> <B>Bit</B> <B>Decimal</B>
- A_STANDOUT 0 1
- A_UNDERLINE 1 2
- A_REVERSE 2 4
- A_BLINK 3 8
- A_DIM 4 16
- A_BOLD 5 32
- A_INVIS 6 64
- A_PROTECT 7 128
- A_ALTCHARSET 8 256
-
- For example, on many IBM PC consoles, the underline
- attribute collides with the foreground color blue and is
- not available in color mode. These should have an <B>ncv</B>
- capability of 2.
-
- SVr4 curses does nothing with <B>ncv</B>, ncurses recognizes it
- and optimizes the output in favor of colors.
-
-
- <B>Miscellaneous</B>
- 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;
- though the application may set this value to something
- other than a null, ncurses will test <B>npc</B> first and use
- napms if the terminal has no pad character.
-
- If the terminal can move up or down half a line, this can
- be indicated with <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).
-
- 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
- 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
- prototype command character is chosen which is used in all
- capabilities. This character is given in the <B>cmdch</B> capa-
- 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
- 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
- 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
- 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
- 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>.
-
- 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
- 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>.
-
- 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>:
- 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
- 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.
-
-
- <B>Glitches</B> <B>and</B> <B>Braindamage</B>
- Hazeltine terminals, which do not allow `~' characters to
- be displayed should indicate <B>hz</B>.
-
- Terminals which ignore a line-feed immediately after an <B>am</B>
- wrap, such as the Concept and vt100, should indicate <B>xenl</B>.
-
- 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
- given.
-
- Teleray terminals, where tabs turn all characters moved
- over to blanks, should indicate <B>xt</B> (destructive tabs).
- Note: the variable indicating this is now
- `dest_tabs_magic_smso'; in older versions, it was tel-
- eray_glitch. This glitch is also taken to mean that it is
- not possible to position the cursor on top of a ``magic
- cookie'', that to erase standout mode it is instead neces-
- sary to use delete and insert line. The ncurses implemen-
- tation ignores this glitch.
-
- The Beehive Superbee, which is unable to correctly trans-
- mit the escape or control C characters, has <B>xsb</B>, indicat-
- ing that the f1 key is used for escape and f2 for control
- C. (Only certain Superbees have this problem, depending
- on the ROM.) Note that in older terminfo versions, this
- capability was called `beehive_glitch'; it is now
- `no_esc_ctl_c'.
-
- Other specific terminal problems may be corrected by
- adding more capabilities of the form <B>x</B><I>x</I>.
-
-
- <B>Similar</B> <B>Terminals</B>
- 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
- 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.
-
- 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-
- bility. For example, the entry
-
- 2621-nl, smkx@, rmkx@, use=2621,
-
- defines a 2621-nl that does not have the <B>smkx</B> or <B>rmkx</B>
- 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>
- Long terminfo entries are unlikely to be a problem; to
- date, no entry has even approached terminfo's 4K string-
- table maximum. Unfortunately, the termcap translations
- are much more strictly limited (to 1K), thus termcap
- translations of long terminfo entries can cause problems.
-
- The man pages for 4.3BSD and older versions of tgetent()
- instruct the user to allocate a 1K buffer for the termcap
- entry. The entry gets null-terminated by the termcap
- library, so that makes the maximum safe length for a term-
- cap entry 1k-1 (1023) bytes. Depending on what the appli-
- cation and the termcap library being used does, and where
- in the termcap file the terminal type that tgetent() is
- searching for is, several bad things can happen.
-
- Some termcap libraries print a warning message or exit if
- they find an entry that's longer than 1023 bytes; others
- don't; others truncate the entries to 1023 bytes. Some
- application programs allocate more than the recommended 1K
- for the termcap entry; others don't.
-
- Each termcap entry has two important sizes associated with
- it: before "tc" expansion, and after "tc" expansion. "tc"
- is the capability that tacks on another termcap entry to
- the end of the current one, to add on its capabilities.
- If a termcap entry doesn't use the "tc" capability, then
- of course the two lengths are the same.
-
- The "before tc expansion" length is the most important
- one, because it affects more than just users of that par-
- ticular terminal. This is the length of the entry as it
- 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). Now suppose:
-
- * a termcap entry before expansion is more than 1023
- bytes long,
-
- * and the application has only allocated a 1k buffer,
-
- * and the termcap library (like the one in BSD/OS 1.1
- and GNU) reads the whole entry into the buffer, no
- matter what its length, to see if it's the entry it
- wants,
-
- * and tgetent() is searching for a terminal type that
- either is the long entry, appears in the termcap file
- after the long entry, or doesn't appear in the file
- at all (so that tgetent() has to search the whole
- termcap file).
-
- Then tgetent() will overwrite memory, perhaps its stack,
- and probably core dump the program. Programs like telnet
- are particularly vulnerable; modern telnets pass along
- values like the terminal type automatically. The results
- are almost as undesirable with a termcap library, like
- SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
- when it reads an overly long termcap entry. If a termcap
- library truncates long entries, like OSF/1 3.0, it is
- immune to dying here but will return incorrect data for
- the terminal.
-
- The "after tc expansion" length will have a similar effect
- to the above, but only for people who actually set TERM to
- that terminal type, since tgetent() only does "tc" expan-
- sion once it's found the terminal type it was looking for,
- not while searching.
-
- In summary, a termcap entry that is longer than 1023 bytes
- can cause, on various combinations of termcap libraries
- and applications, a core dump, warnings, or incorrect
- operation. If it's too long even before "tc" expansion,
- it will have this effect even for users of some other ter-
- 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-
- 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>
- It is not wise to count on portability of binary terminfo
- entries between commercial UNIX versions. The problem is
- that there are at least two versions of terminfo (under
- HP-UX and AIX) which diverged from System V terminfo after
- SVr1, and have added extension capabilities to the string
- table that (in the binary format) collide with System V
- and XSI Curses extensions.
-
-
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
- Some SVr4 <B>curses</B> implementations, and all previous to
- SVr4, don't interpret the %A and %O operators in parameter
- strings.
- SVr4/XPG4 do not specify whether <B>msgr</B> 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 <B>ncurses</B> implementation
- ignores <B>msgr</B> in <B>ALTCHARSET</B> mode. This raises the possi-
- 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.
-
- 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 parameter substitutions for <B>set_clock</B> and <B>dis-</B>
- <B>play_clock</B> are not documented in SVr4 or the XSI Curses
- standard. They are deduced from the documentation for the
- AT&amp;T 505 terminal.
-
- Be careful assigning the <B>kmous</B> capability. The <B>ncurses</B>
- wants to interpret it as <B>KEY_MOUSE</B>, for use by terminals
- and emulators like xterm that can return mouse-tracking
- information in the keyboard-input stream.
-
- Different commercial ports of terminfo and curses support
- different subsets of the XSI Curses standard and (in some
- 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-
- ties.
-
- <B>SGI</B> -- Supports the SVr4 set, adds one undocumented
- extended string capability (<B>set_pglen</B>).
-
- <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>.
-
- <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
- table.
-
- <B>AIX</B> -- Supports the SVr1 subset, plus function keys 11
- through 63, plus a number of incompatible string table
- extensions.
-
- <B>OSF</B> -- Supports both the SVr4 set and the AIX extensions.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo/?/* files containing terminal
- descriptions
-
-
-</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>.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
- Based on pcurses by Pavel Curtis.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/tic.1m.html b/ncurses-5.2/doc/html/man/tic.1m.html
deleted file mode 100644
index eddb819..0000000
--- a/ncurses-5.2/doc/html/man/tic.1m.html
+++ /dev/null
@@ -1,297 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>tic</B> - the <I>terminfo</I> entry-description compiler
-
-
-</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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The command <B>tic</B> translates a <B>terminfo</B> file from source
- 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>.
-
- The results are normally placed in the system terminfo
- directory <B>/usr/share/terminfo</B>. There are two ways to
- change this behavior.
-
- First, you may override the system default by setting the
- variable <B>TERMINFO</B> in your shell environment to a valid
- (existing) directory name.
-
- Secondly, if <B>tic</B> cannot get access to <I>/usr/share/terminfo</I>
- or your TERMINFO directory, it looks for the directory
- <I>$HOME/.terminfo</I>; if that directory exists, the entry is
- 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>.
-
- <B>-a</B> tells <B>tic</B> to retain commented-out capabilities
- 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
- entries as user-defined names.
-
- <B>-c</B> tells <B>tic</B> to only check <I>file</I> for errors, including
- syntax problems and bad use links. If you specify
- <B>-C</B> (<B>-I</B>) 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.
-
- <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
-
- <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.
-
- <B>-G</B> Display constant literals in decimal form rather
- than their character equivalents.
-
- <B>-I</B> Force source translation to terminfo format.
-
- <B>-L</B> Force source translation to terminfo format using
- the long C variable names listed in &lt;<B>term.h</B>&gt;
-
- <B>-N</B> Disable smart defaults. Normally, when translating
- 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
- attempts to use obsolete termcap capabilities to
- deduce correct values. It also normally suppresses
- output of obsolete termcap capabilities such as <B>bs</B>.
- 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-
- right 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 <B><A HREF="terminfo.5.html">terminfo(5)</A></B> 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).
-
- <B>-V</B> reports the version of ncurses which was used in
- this program, and exits.
-
- <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.
-
- <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.)
-
- <B>-f</B> Display complex terminfo strings which contain
- if/then/else/endif expressions indented for read-
- ability.
-
- <B>-g</B> Display constant character literals in quoted form
- rather than their decimal equivalents.
-
- <B>-s</B> Summarize the compile by showing the directory into
- which entries are written, and the number of
- entries which are compiled.
-
- <B>-x</B> Treat unknown capabilities as user-defined. That
- is, if you supply a capability name which <B>tic</B> does
- 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-
- tion in the file describes the capabilities of a
- particular terminal.
-
- The debug flag levels are as follows:
-
- 1 Names of files created and linked
-
- 2 Information related to the ``use'' facility
-
- 3 Statistics from the hashing algorithm
-
- 5 String-table memory allocations
-
- 7 Entries into the string-table
-
- 8 List of tokens encountered by scanner
-
- 9 All values computed in construction of the hash
- table
-
- If n 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-
- 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
- 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>.
-
- If the environment variable <B>TERMINFO</B> is set, the compiled
- results are placed there instead of <B>/usr/share/terminfo</B>.
-
- 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
- long filenames, 14 characters otherwise) will be truncated
- to the maximum alias length and a warning message will be
- 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.
-
-
-</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
- 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
- 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
- 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.
-
- System V does not compile entries to or read entries from
- your <I>$HOME/.terminfo</I> directory unless TERMINFO is explic-
- itly set to it.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- <B>/usr/share/terminfo/?/*</B>
- 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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/toe.1m.html b/ncurses-5.2/doc/html/man/toe.1m.html
deleted file mode 100644
index 887a9c4..0000000
--- a/ncurses-5.2/doc/html/man/toe.1m.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>toe</B> - table of (terminfo) entries
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>toe</B> [<B>-v</B>[<I>n</I>]] [<B>-huUV</B>] <I>file...</I>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- With no options, <B>toe</B> lists all available terminal types by
- primary name with descriptions. File arguments specify
- the directories to be scanned; if no such arguments are
- given, your default terminfo directory is scanned. If you
- also specify the -h option, a directory header will be
- issued as each directory is entered.
-
- There are other options intended for use by terminfo file
- maintainers:
-
- <B>-u</B> <I>file</I>
- 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-
- nal that has use capabilities, followed by a colon,
- followed by the whitespace-separated primary names
- of all terminals which occur in those use capabili-
- ties, followed by a newline
-
- <B>-U</B> <I>file</I>
- says to issue a report on reverse dependencies in
- the given file. This report reverses the `use'
- relation: each line consists of the primary name of
- a terminal that occurs in use capabilities, fol-
- lowed by a colon, followed by the whitespace-sepa-
- 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>.
-
- <B>-V</B> reports the version of ncurses which was used in this
- program, and exits.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- <B>/usr/share/terminfo/?/*</B>
- 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>.
-
-
-
-
-</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/ncurses-5.2/doc/html/man/tput.1.html b/ncurses-5.2/doc/html/man/tput.1.html
deleted file mode 100644
index 17c55aa..0000000
--- a/ncurses-5.2/doc/html/man/tput.1.html
+++ /dev/null
@@ -1,246 +0,0 @@
-<HTML>
-<BODY>
-<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
- 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>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>tput</B> utility uses the <B>terminfo</B> database to make the
- 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
- 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
- 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),
- 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>.
-
- <B>-T</B><I>type</I> indicates the <I>type</I> of terminal. Normally this
- 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>
- 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>
- 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
- 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
- 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
- CODES section).
-
- <B>-V</B> reports the version of ncurses which was used in
- 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-
- 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
- (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
- 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>.
-
- <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),
- 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>].
-
- 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
- has similar behavior.
-
-
-</PRE>
-<H2>EXAMPLES</H2><PRE>
- <B>tput</B> <B>init</B>
- 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
- as the "home" cursor position).
-
- <B>tput</B> <B>clear</B>
- Echo the clear-screen sequence for the current
- terminal.
-
- <B>tput</B> <B>cols</B>
- Print the number of columns for the current terminal.
-
- <B>tput</B> <B>-T450</B> <B>cols</B>
- 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>
-
- <B>tput</B> <B>hc</B>
- Set exit code to indicate if the current terminal is
- 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-
- umn 4.
-
- <B>tput</B> <B>longname</B>
- Print the long name from the <B>terminfo</B> database for
- the type of terminal specified in the environmental
- variable <B>TERM</B>.
-
- <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>
-
- 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.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- <B>/usr/share/terminfo</B>
- compiled terminal description database
-
- <B>/usr/include/curses.h</B>
- <B><A HREF="ncurses.3x.html">curses(3x)</A></B> header file
-
- <B>/usr/include/term.h</B>
- <B>terminfo</B> header file
-
- <B>/usr/share/tabset/*</B>
- 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>.
-
-
-</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-
- TICS section.
-
-
-</PRE>
-<H2>DIAGNOSTICS</H2><PRE>
- <B>tput</B> prints the following error messages and sets the cor-
- 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>
- ---------------------------------------------------------------------
-
-
-</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
- in BSD curses or in AT&amp;T/USL curses before SVr4.
-
-</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/ncurses-5.2/doc/html/man/tset.1.html b/ncurses-5.2/doc/html/man/tset.1.html
deleted file mode 100644
index 635ddd5..0000000
--- a/ncurses-5.2/doc/html/man/tset.1.html
+++ /dev/null
@@ -1,303 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>tset</B>, <B>reset</B> - terminal initialization
-
-
-</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>]
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- <B>Tset</B> initializes terminals. <B>Tset</B> first determines the
- 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.
-
- 2. The value of the <B>TERM</B> environmental variable.
-
- 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>.)
-
- 4. The default terminal type, ``unknown''.
-
- If the terminal type was not specified on the command-
- line, the -m option mappings are then applied (see below
- for more information). Then, if the terminal type begins
- with a question mark (``?''), the user is prompted for
- confirmation of the terminal type. An empty response con-
- firms the type, or, another type can be entered to specify
- a new type. Once the terminal type has been determined,
- the terminfo entry for the terminal is retrieved. If no
- terminfo entry is found for the type, the user is prompted
- for another terminal type.
-
- Once the terminfo entry is retrieved, the window size,
- backspace, interrupt and line kill characters (among many
- other things) are set and the terminal and tab initializa-
- tion strings are sent to the standard error output.
- Finally, if the erase, interrupt and line kill characters
- have changed, or are not set to their default values,
- their values are displayed to the standard error output.
-
- When invoked as <B>reset</B>, <B>tset</B> 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
- described above. This is useful after a program dies
- leaving a terminal in an abnormal state. Note, you may
- have to type
-
- <B>&lt;LF&gt;reset&lt;LF&gt;</B>
-
- (the line-feed character is normally control-J) to get the
- terminal to work, as carriage-return may no longer work in
- the abnormal state. Also, the terminal will often not
- echo the command.
-
- The options are as follows:
-
- -q The terminal type is displayed to the standard out-
- put, and the terminal is not initialized in any way.
- The option `-' by itself is equivalent but archaic.
-
- -e Set the erase character to <I>ch</I>.
-
- -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.
-
- <B>-V</B> reports the version of ncurses which was used in this
- program, and exits.
-
- -i Set the interrupt character to <I>ch</I>.
-
- -k Set the line kill character to <I>ch</I>.
-
- -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
- the environment variable <B>TERM</B> to the standard output.
- See the section below on setting the environment for
- details.
-
- The arguments for the -e, -i, and -k options may either be
- entered as actual characters or by using the `hat' nota-
- tion, i.e. control-h may be specified as ``^H'' or ``^h''.
-
-
-</PRE>
-<H2>SETTING THE ENVIRONMENT</H2><PRE>
- It is often desirable to enter the terminal type and
- information about the terminal's capabilities into the
- shell's environment. This is done using the -s option.
-
- 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
- environment correctly:
-
- eval `tset -s options ... `
-
-
-
-</PRE>
-<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
- 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
- I'm on this port at a particular speed, guess that I'm on
- that kind of terminal''.
-
- The argument to the -m option consists of an optional port
- type, an optional operator, an optional baud rate specifi-
- cation, an optional colon (``:'') character and a terminal
- type. The port type is a string (delimited by either the
- operator or the colon character). The operator may be any
- combination of ``&gt;'', ``&lt;'', ``@'', and ``!''; ``&gt;'' means
- greater than, ``&lt;'' means less than, ``@'' means equal to
- and ``!'' inverts the sense of the test. The baud rate is
- specified as a number and is compared with the speed of
- the standard error output (which should be the control
- terminal). The terminal type is a string.
-
- If the terminal type is not specified on the command line,
- the -m mappings are applied to the terminal type. If the
- port type and baud rate match the mapping, the terminal
- type specified in the mapping replaces the current type.
- If more than one mapping is specified, the first applica-
- ble mapping is used.
-
- For example, consider the following mapping:
- <B>dialup&gt;9600:vt100</B>. 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-
- 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
- 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,
- regardless of baud rate, to match the terminal type vt100,
- and any non-dialup port type to match the terminal type
- ?xterm. Note, because of the leading question mark, the
- user will be queried on a default port as to whether they
- are actually using an xterm terminal.
-
- 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
- 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-
- mentation was lightly adapted from the 4.4BSD sources for
- a terminfo environment by Eric S. Raymond &lt;esr@snark.thyr-
- sus.com&gt;.
-
-
-</PRE>
-<H2>COMPATIBILITY</H2><PRE>
- The <B>tset</B> utility has been provided for backward-compati-
- 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
- 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
- noisily rather than silently induce lossage).
-
- There was an undocumented 4.4BSD feature that invoking
- tset via a link named `TSET` (or via any other name begin-
- ning with an upper-case letter) set the terminal to use
- 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
- 4.3BSD and all are of limited utility at best. The -a, -d,
- and -p options are similarly not documented or useful, but
- were retained as they appear to be in widespread use. It
- is strongly recommended that any usage of these three
- options be changed to use the -m option instead. The -n
- option remains, but has no effect. The -adnp options are
- therefore omitted from the usage summary above.
-
- It is still permissible to specify the -e, -i, and -k
- options without arguments, although it is strongly recom-
- mended that such usage be fixed to explicitly specify the
- character.
-
- As of 4.4BSD, executing <B>tset</B> as <B>reset</B> no longer implies
- 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.
-
-
-
-</PRE>
-<H2>ENVIRONMENT</H2><PRE>
- The <B>tset</B> command uses the <B>SHELL</B> and <B>TERM</B> environment vari-
- ables.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /etc/ttys
- system port name to terminal type mapping database
- (BSD versions only).
-
- /usr/share/terminfo
- terminal capability database
-
-
-</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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/man/wresize.3x.html b/ncurses-5.2/doc/html/man/wresize.3x.html
deleted file mode 100644
index d2e2650..0000000
--- a/ncurses-5.2/doc/html/man/wresize.3x.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML>
-<BODY>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <B>wresize</B> - resize a curses window
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <B>#include</B> <B>&lt;curses.h&gt;</B>
-
- <B>int</B> <B>wresize(WINDOW</B> <B>*win,</B> <B>int</B> <B>lines,</B> <B>int</B> <B>columns);</B>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>wresize</B> function reallocates storage for an <B>ncurses</B>
- 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
- them.
-
-
-</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 window.
-
-
-</PRE>
-<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
- dimensions fit within the actual screen dimensions.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <B><A HREF="resizeterm.3x.html">resizeterm(3x)</A></B>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey (from an equivalent function written in 1988
- for BSD curses).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.2/doc/html/ncurses-intro.html b/ncurses-5.2/doc/html/ncurses-intro.html
deleted file mode 100644
index fe0545d..0000000
--- a/ncurses-5.2/doc/html/ncurses-intro.html
+++ /dev/null
@@ -1,2686 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>Writing Programs with NCURSES</TITLE>
-<link rev="made" href="mailto:bugs-ncurses@gnu.org">
-</HEAD>
-<BODY>
-
-<H1>Writing Programs with NCURSES</H1>
-
-<BLOCKQUOTE>
-by Eric S. Raymond and Zeyd M. Ben-Halim<BR>
-updates since release 1.9.9e by Thomas Dickey
-</BLOCKQUOTE>
-
-<H1>Contents</H1>
-<UL>
-<LI><A HREF="#introduction">Introduction</A>
-<UL>
-<LI><A HREF="#history">A Brief History of Curses</A>
-<LI><A HREF="#scope">Scope of This Document</A>
-<LI><A HREF="#terminology">Terminology</A>
-</UL>
-<LI><A HREF="#curses">The Curses Library</A>
-<UL>
-<LI><A HREF="#overview">An Overview of Curses</A>
-<UL>
-<LI><A HREF="#compiling">Compiling Programs using Curses</A>
-<LI><A HREF="#updating">Updating the Screen</A>
-<LI><A HREF="#stdscr">Standard Windows and Function Naming Conventions</A>
-<LI><A HREF="#variables">Variables</A>
-</UL>
-<LI><A HREF="#using">Using the Library</A>
-<UL>
-<LI><A HREF="#starting">Starting up</A>
-<LI><A HREF="#output">Output</A>
-<LI><A HREF="#input">Input</A>
-<LI><A HREF="#formschars">Using Forms Characters</A>
-<LI><A HREF="#attributes">Character Attributes and Color</A>
-<LI><A HREF="#mouse">Mouse Interfacing</A>
-<LI><A HREF="#finishing">Finishing Up</A>
-</UL>
-<LI><A HREF="#functions">Function Descriptions</A>
-<UL>
-<LI><A HREF="#init">Initialization and Wrapup</A>
-<LI><A HREF="#flush">Causing Output to the Terminal</A>
-<LI><A HREF="#lowlevel">Low-Level Capability Access</A>
-<LI><A HREF="#debugging">Debugging</A>
-</UL>
-<LI><A HREF="#hints">Hints, Tips, and Tricks</A>
-<UL>
-<LI><A HREF="#caution">Some Notes of Caution</A>
-<LI><A HREF="#leaving">Temporarily Leaving ncurses Mode</A>
-<LI><A HREF="#xterm">Using <CODE>ncurses</CODE> under <CODE>xterm</CODE></A>
-<LI><A HREF="#screens">Handling Multiple Terminal Screens</A>
-<LI><A HREF="#testing">Testing for Terminal Capabilities</A>
-<LI><A HREF="#tuning">Tuning for Speed</A>
-<LI><A HREF="#special">Special Features of <CODE>ncurses</CODE></A>
-</UL>
-<LI><A HREF="#compat">Compatibility with Older Versions</A>
-<UL>
-<LI><A HREF="#refbug">Refresh of Overlapping Windows</A>
-<LI><A HREF="#backbug">Background Erase</A>
-</UL>
-<LI><A HREF="#xsifuncs">XSI Curses Conformance</A>
-</UL>
-<LI><A HREF="#panels">The Panels Library</A>
-<UL>
-<LI><A HREF="#pcompile">Compiling With the Panels Library</A>
-<LI><A HREF="#poverview">Overview of Panels</A>
-<LI><A HREF="#pstdscr">Panels, Input, and the Standard Screen</A>
-<LI><A HREF="#hiding">Hiding Panels</A>
-<LI><A HREF="#pmisc">Miscellaneous Other Facilities</A>
-</UL>
-<LI><A HREF="#menu">The Menu Library</A>
-<UL>
-<LI><A HREF="#mcompile">Compiling with the menu Library</A>
-<LI><A HREF="#moverview">Overview of Menus</A>
-<LI><A HREF="#mselect">Selecting items</A>
-<LI><A HREF="#mdisplay">Menu Display</A>
-<LI><A HREF="#mwindows">Menu Windows</A>
-<LI><A HREF="#minput">Processing Menu Input</A>
-<LI><A HREF="#mmisc">Miscellaneous Other Features</A>
-</UL>
-<LI><A HREF="#form">The Forms Library</A>
-<UL>
-<LI><A HREF="#fcompile">Compiling with the forms Library</A>
-<LI><A HREF="#foverview">Overview of Forms</A>
-<LI><A HREF="#fcreate">Creating and Freeing Fields and Forms</A>
-<LI><A HREF="#fattributes">Fetching and Changing Field Attributes</A>
-<UL>
-<LI><A HREF="#fsizes">Fetching Size and Location Data</A>
-<LI><A HREF="#flocation">Changing the Field Location</A>
-<LI><A HREF="#fjust">The Justification Attribute</A>
-<LI><A HREF="#fdispatts">Field Display Attributes</A>
-<LI><A HREF="#foptions">Field Option Bits</A>
-<LI><A HREF="#fstatus">Field Status</A>
-<LI><A HREF="#fuser">Field User Pointer</A>
-</UL>
-<LI><A HREF="#fdynamic">Variable-Sized Fields</A>
-<LI><A HREF="#fvalidation">Field Validation</A>
-<UL>
-<LI><A HREF="#ftype_alpha">TYPE_ALPHA</A>
-<LI><A HREF="#ftype_alnum">TYPE_ALNUM</A>
-<LI><A HREF="#ftype_enum">TYPE_ENUM</A>
-<LI><A HREF="#ftype_integer">TYPE_INTEGER</A>
-<LI><A HREF="#ftype_numeric">TYPE_NUMERIC</A>
-<LI><A HREF="#ftype_regexp">TYPE_REGEXP</A>
-</UL>
-<LI><A HREF="#fbuffer">Direct Field Buffer Manipulation</A>
-<LI><A HREF="#formattrs">Attributes of Forms</A>
-<LI><A HREF="#fdisplay">Control of Form Display</A>
-<LI><A HREF="#fdriver">Input Processing in the Forms Driver</A>
-<UL>
-<LI><A HREF="#fpage">Page Navigation Requests</A>
-<LI><A HREF="#ffield">Inter-Field Navigation Requests</A>
-<LI><A HREF="#fifield">Intra-Field Navigation Requests</A>
-<LI><A HREF="#fscroll">Scrolling Requests</A>
-<LI><A HREF="#fedit">Field Editing Requests</A>
-<LI><A HREF="#forder">Order Requests</A>
-<LI><A HREF="#fappcmds">Application Commands</A>
-</UL>
-<LI><A HREF="#fhooks">Field Change Hooks</A>
-<LI><A HREF="#ffocus">Field Change Commands</A>
-<LI><A HREF="#frmoptions">Form Options</A>
-<LI><A HREF="#fcustom">Custom Validation Types</A>
-<UL>
-<LI><A HREF="#flinktypes">Union Types</A>
-<LI><A HREF="#fnewtypes">New Field Types</A>
-<LI><A HREF="#fcheckargs">Validation Function Arguments</A>
-<LI><A HREF="#fcustorder">Order Functions For Custom Types</A>
-<LI><A HREF="#fcustprobs">Avoiding Problems</A>
-</UL>
-</UL>
-</UL>
-
-<HR>
-<H1><A NAME="introduction">Introduction</A></H1>
-
-This document is an introduction to programming with <CODE>curses</CODE>. It is
-not an exhaustive reference for the curses Application Programming Interface
-(API); that role is filled by the <CODE>curses</CODE> manual pages. Rather, it
-is intended to help C programmers ease into using the package. <P>
-
-This document is aimed at C applications programmers not yet specifically
-familiar with ncurses. If you are already an experienced <CODE>curses</CODE>
-programmer, you should nevertheless read the sections on
-<A HREF="#mouse">Mouse Interfacing</A>, <A HREF="#debugging">Debugging</A>,
-<A HREF="#compat">Compatibility with Older Versions</A>,
-and <A HREF="#hints">Hints, Tips, and Tricks</A>. These will bring you up
-to speed on the special features and quirks of the <CODE>ncurses</CODE>
-implementation. If you are not so experienced, keep reading. <P>
-
-The <CODE>curses</CODE> 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. <CODE>Curses</CODE> uses terminfo, which
-is a database format that can describe the capabilities of thousands of
-different terminals. <P>
-
-The <CODE>curses</CODE> 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 <EM>xterm(1)</EM>; the <CODE>curses</CODE>
-API has 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 <CODE>curses</CODE>
-will typically be a great deal simpler and less expensive than one using an
-X toolkit.
-
-<H2><A NAME="history">A Brief History of Curses</A></H2>
-
-Historically, the first ancestor of <CODE>curses</CODE> was the routines written to
-provide screen-handling for the game <CODE>rogue</CODE>; these used the
-already-existing <CODE>termcap</CODE> database facility for describing terminal
-capabilities. These routines were abstracted into a documented library and
-first released with the early BSD UNIX versions. <P>
-
-System III UNIX from Bell Labs featured a rewritten and much-improved
-<CODE>curses</CODE> 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&amp;T
-System V releases, <CODE>curses</CODE> evolved to use more facilities and offer
-more capabilities, going far beyond BSD curses in power and flexibility.
-
-<H2><A NAME="scope">Scope of This Document</A></H2>
-
-This document describes <CODE>ncurses</CODE>, a free implementation of
-the System V <CODE>curses</CODE> API with some clearly marked extensions.
-It includes the following System V curses features:
-<UL>
-<LI>Support for multiple screen highlights (BSD curses could only
-handle one `standout' highlight, usually reverse-video).
-<LI>Support for line- and box-drawing using forms characters.
-<LI>Recognition of function keys on input.
-<LI>Color support.
-<LI>Support for pads (windows of larger than screen size on which the
-screen or a subwindow defines a viewport).
-</UL>
-
-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. <P>
-
-The <CODE>ncurses</CODE> 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. <P>
-
-The <CODE>ncurses</CODE> package was originated by Pavel Curtis. The original
-maintainer of this package is
-<A HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A>
-&lt;zmbenhal@netcom.com&gt;.
-<A HREF="mailto:esr@snark.thyrsus.com">Eric S. Raymond</A>
-&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>
-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="mailto:florian@gnu.org">Florian La Roche</A>
-acts as the maintainer for the Free Software Foundation, which holds the
-copyright on ncurses.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-This document also describes the <A HREF="#panels">panels</A> 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). <P>
-
-Finally, this document describes in detail the <A HREF="#menu">menus</A> and <A
-HREF="#form">forms</A> extension libraries, also cloned from System V,
-which support easy construction and sequences of menus and fill-in
-forms.
-
-
-<H2><A NAME="terminology">Terminology</A></H2>
-
-In this document, the following terminology is used with reasonable
-consistency:
-
-<DL>
-<DT> window
-<DD>
-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.
-<DT> screens
-<DD>
-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, <CODE>stdscr</CODE>, is automatically provided for the programmer.
-<DT> terminal screen
-<DD>
-The package's idea of what the terminal display currently looks like, i.e.,
-what the user sees now. This is a special screen.
-</DL>
-
-<H1><A NAME="curses">The Curses Library</A></H1>
-
-<H2><A NAME="overview">An Overview of Curses</A></H2>
-
-<H3><A NAME="compiling">Compiling Programs using Curses</A></H3>
-
-In order to use the library, it is necessary to have certain types and
-variables defined. Therefore, the programmer must have a line:
-
-<PRE>
- #include &lt;curses.h&gt;
-</PRE>
-
-at the top of the program source. The screen package uses the Standard I/O
-library, so <CODE>&lt;curses.h&gt;</CODE> includes
-<CODE>&lt;stdio.h&gt;</CODE>. <CODE>&lt;curses.h&gt;</CODE> also includes
-<CODE>&lt;termios.h&gt;</CODE>, <CODE>&lt;termio.h&gt;</CODE>, or
-<CODE>&lt;sgtty.h&gt;</CODE> depending on your system. It is redundant (but
-harmless) for the programmer to do these includes, too. In linking with
-<CODE>curses</CODE> you need to have <CODE>-lncurses</CODE> in your LDFLAGS or on the
-command line. There is no need for any other libraries.
-
-<H3><A NAME="updating">Updating the Screen</A></H3>
-
-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 <CODE>curscr</CODE>, for current screen) is a
-screen image of what the terminal currently looks like. Another screen (called
-<CODE>stdscr</CODE>, for standard screen) is provided by default to make changes
-on. <P>
-
-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. <P>
-
-To make the section of physical screen corresponding to a window reflect the
-contents of the window structure, the routine <CODE>refresh()</CODE> (or
-<CODE>wrefresh()</CODE> if the window is not <CODE>stdscr</CODE>) is called. <P>
-
-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.
-
-<H3><A NAME="stdscr">Standard Windows and Function Naming Conventions</A></H3>
-
-As hinted above, the routines can use several windows, but two are
-automatically given: <CODE>curscr</CODE>, which knows what the terminal looks like,
-and <CODE>stdscr</CODE>, which is what the programmer wants the terminal to look
-like next. The user should never actually access <CODE>curscr</CODE> directly.
-Changes should be made to through the API, and then the routine
-<CODE>refresh()</CODE> (or <CODE>wrefresh()</CODE>) called. <P>
-
-Many functions are defined to use <CODE>stdscr</CODE> as a default screen. For
-example, to add a character to <CODE>stdscr</CODE>, one calls <CODE>addch()</CODE> with
-the desired character as argument. To write to a different window. use the
-routine <CODE>waddch()</CODE> (for `w'indow-specific addch()) is provided. This
-convention of prepending function names with a `w' when they are to be
-applied to specific windows is consistent. The only routines which do not
-follow it are those for which a window must always be specified. <P>
-
-In order to move the current (y, x) coordinates from one point to another, the
-routines <CODE>move()</CODE> and <CODE>wmove()</CODE> 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
-
-<PRE>
- move(y, x);
- addch(ch);
-</PRE>
-
-can be replaced by
-
-<PRE>
- mvaddch(y, x, ch);
-</PRE>
-
-and
-
-<PRE>
- wmove(win, y, x);
- waddch(win, ch);
-</PRE>
-
-can be replaced by
-
-<PRE>
- mvwaddch(win, y, x, ch);
-</PRE>
-
-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.
-
-<H3><A NAME="variables">Variables</A></H3>
-
-The <CODE>curses</CODE> library sets some variables describing the terminal
-capabilities.
-
-<PRE>
- type name description
- ------------------------------------------------------------------
- int LINES number of lines on the terminal
- int COLS number of columns on the terminal
-</PRE>
-
-The <CODE>curses.h</CODE> also introduces some <CODE>#define</CODE> constants and types
-of general usefulness:
-
-<DL>
-<DT> <CODE>bool</CODE>
-<DD> boolean type, actually a `char' (e.g., <CODE>bool doneit;</CODE>)
-<DT> <CODE>TRUE</CODE>
-<DD> boolean `true' flag (1).
-<DT> <CODE>FALSE</CODE>
-<DD> boolean `false' flag (0).
-<DT> <CODE>ERR</CODE>
-<DD> error flag returned by routines on a failure (-1).
-<DT> <CODE>OK</CODE>
-<DD> error flag returned by routines when things go right.
-</DL>
-
-<H2><A NAME="using">Using the Library</A></H2>
-
-Now we describe how to actually use the screen package. In it, we assume all
-updating, reading, etc. is applied to <CODE>stdscr</CODE>. These instructions will
-work on any window, providing you change the function names and parameters as
-mentioned above. <P>
-
-Here is a sample program to motivate the discussion:
-
-<PRE>
-#include &lt;curses.h&gt;
-#include &lt;signal.h&gt;
-
-static void finish(int sig);
-
-int
-main(int argc, char *argv[])
-{
- int num = 0;
-
- /* initialize your non-curses data structures here */
-
- (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-&gt;CR/NL on output */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) echo(); /* echo input - in color */
-
- if (has_colors())
- {
- start_color();
-
- /*
- * Simple color assignment, often all we need. Color pair 0 cannot
- * be redefined. This example uses the same value for the color
- * pair as for the foreground color, though of course that is not
- * necessary:
- */
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_YELLOW, COLOR_BLACK);
- init_pair(4, COLOR_BLUE, COLOR_BLACK);
- init_pair(5, COLOR_CYAN, COLOR_BLACK);
- init_pair(6, COLOR_MAGENTA, COLOR_BLACK);
- init_pair(7, COLOR_WHITE, COLOR_BLACK);
- }
-
- for (;;)
- {
- int c = getch(); /* refresh, accept single keystroke of input */
- attrset(COLOR_PAIR(num % 8));
- num++;
-
- /* process the command keystroke */
- }
-
- finish(0); /* we're done */
-}
-
-static void finish(int sig)
-{
- endwin();
-
- /* do your non-curses wrapup here */
-
- exit(0);
-}
-</PRE>
-
-<H3><A NAME="starting">Starting up</A></H3>
-
-In order to use the screen package, the routines must know about terminal
-characteristics, and the space for <CODE>curscr</CODE> and <CODE>stdscr</CODE> must be
-allocated. These function <CODE>initscr()</CODE> 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, <CODE>initscr()</CODE> will terminate
-the program with an error message. <CODE>initscr()</CODE> 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 <CODE>curscr</CODE> or <CODE>stdscr</CODE> 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 <CODE>nl()</CODE> and <CODE>cbreak()</CODE> should be called
-after <CODE>initscr()</CODE>. <P>
-
-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
-<CODE>scrollok()</CODE>. If you want the cursor to be left in place after
-the last change, use <CODE>leaveok()</CODE>. If this isn't done,
-<CODE>refresh()</CODE> will move the cursor to the window's current (y, x)
-coordinates after updating it. <P>
-
-You can create new windows of your own using the functions <CODE>newwin()</CODE>,
-<CODE>derwin()</CODE>, and <CODE>subwin()</CODE>. The routine <CODE>delwin()</CODE> will
-allow you to get rid of old windows. All the options described above can be
-applied to any window.
-
-<H3><A NAME="output">Output</A></H3>
-
-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
-<CODE>addch()</CODE> and <CODE>move()</CODE>. <CODE>addch()</CODE> adds a character at the
-current (y, x) coordinates. <CODE>move()</CODE> changes the current (y, x)
-coordinates to whatever you want them to be. It returns <CODE>ERR</CODE> if you
-try to move off the window. As mentioned above, you can combine the two into
-<CODE>mvaddch()</CODE> to do both things at once. <P>
-
-The other output functions, such as <CODE>addstr()</CODE> and <CODE>printw()</CODE>,
-all call <CODE>addch()</CODE> to add characters to the window. <P>
-
-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
-<CODE>refresh()</CODE>. In order to optimize finding changes, <CODE>refresh()</CODE>
-assumes that any part of the window not changed since the last
-<CODE>refresh()</CODE> 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 <CODE>touchwin()</CODE> is provided
-to make it look like the entire window has been changed, thus making
-<CODE>refresh()</CODE> check the whole subsection of the terminal for changes. <P>
-
-If you call <CODE>wrefresh()</CODE> with <CODE>curscr</CODE> as its argument, it will
-make the screen look like <CODE>curscr</CODE> thinks it looks like. This is useful
-for implementing a command which would redraw the screen in case it get messed
-up.
-
-<H3><A NAME="input">Input</A></H3>
-
-The complementary function to <CODE>addch()</CODE> is <CODE>getch()</CODE> which, if
-echo is set, will call <CODE>addch()</CODE> 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,
-one or the other has to changed before calling <CODE>getch()</CODE>; otherwise,
-the program's output will be unpredictable. <P>
-
-When you need to accept line-oriented input in a window, the functions
-<CODE>wgetstr()</CODE> and friends are available. There is even a <CODE>wscanw()</CODE>
-function that can do <CODE>scanf()</CODE>(3)-style multi-field parsing on window
-input. These pseudo-line-oriented functions turn on echoing while they
-execute. <P>
-
-The example code above uses the call <CODE>keypad(stdscr, TRUE)</CODE> to enable
-support for function-key mapping. With this feature, the <CODE>getch()</CODE> code
-watches the input stream for character sequences that correspond to arrow and
-function keys. These sequences are returned as pseudo-character values. The
-<CODE>#define</CODE> values returned are listed in the <CODE>curses.h</CODE> The
-mapping from sequences to <CODE>#define</CODE> values is determined by
-<CODE>key_</CODE> capabilities in the terminal's terminfo entry.
-
-<H3><A NAME="formschars">Using Forms Characters</A></H3>
-
-The <CODE>addch()</CODE> function (and some others, including <CODE>box()</CODE> and
-<CODE>border()</CODE>) can accept some pseudo-character arguments which are specially
-defined by <CODE>ncurses</CODE>. These are <CODE>#define</CODE> values set up in
-the <CODE>curses.h</CODE> header; see there for a complete list (look for
-the prefix <CODE>ACS_</CODE>). <P>
-
-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, <CODE>curses.h</CODE> will map them to a
-recognizable (though ugly) set of ASCII defaults.
-
-<H3><A NAME="attributes">Character Attributes and Color</A></H3>
-
-The <CODE>ncurses</CODE> package supports screen highlights including standout,
-reverse-video, underline, and blink. It also supports color, which is treated
-as another kind of highlight. <P>
-
-Highlights are encoded, internally, as high bits of the pseudo-character type
-(<CODE>chtype</CODE>) that <CODE>curses.h</CODE> uses to represent the contents of a
-screen cell. See the <CODE>curses.h</CODE> header file for a complete list of
-highlight mask values (look for the prefix <CODE>A_</CODE>).<P>
-
-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 <CODE>addch()</CODE> call,
-or any other output call that takes a <CODE>chtype</CODE> argument. <P>
-
-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 functions
-<CODE>attron()</CODE>, <CODE>attroff()</CODE>, and <CODE>attrset()</CODE>; 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 first arguments of the <CODE>init_pair()</CODE> values. <P>
-
-Once you've done an <CODE>init_pair()</CODE> that creates color-pair N, you can
-use <CODE>COLOR_PAIR(N)</CODE> as a highlight that invokes that particular
-color combination. Note that <CODE>COLOR_PAIR(N)</CODE>, for constant N,
-is itself a compile-time constant and can be used in initializers.
-
-<H3><A NAME="mouse">Mouse Interfacing</A></H3>
-
-The <CODE>ncurses</CODE> library also provides a mouse interface.
-<!-- The 'note' tag is not portable enough -->
-<blockquote>
-<strong>NOTE:</strong> this facility is specific to <CODE>ncurses</CODE>, 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.
-</blockquote>
-
-Presently, mouse event reporting works in the following environments:
-<ul>
-<li>xterm and similar programs such as rxvt.
-<li>Linux console, when configured with <CODE>gpm</CODE>(1), Alessandro
-Rubini's mouse server.
-<li>OS/2 EMX
-</ul>
-<P>
-The mouse interface is very simple. To activate it, you use the function
-<CODE>mousemask()</CODE>, 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. <P>
-
-Once the mouse is active, your application's command loop should watch
-for a return value of <CODE>KEY_MOUSE</CODE> from <CODE>wgetch()</CODE>. When
-you see this, a mouse event report has been queued. To pick it off
-the queue, use the function <CODE>getmouse()</CODE> (you must do this before
-the next <CODE>wgetch()</CODE>, otherwise another mouse event might come
-in and make the first one inaccessible). <P>
-
-Each call to <CODE>getmouse()</CODE> 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, corresponding
-to the event type being reported. <P>
-
-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. <P>
-
-The class of visible events may be changed at any time via <CODE>mousemask()</CODE>.
-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. <P>
-
-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. <P>
-
-Because mouse event reporting will not be available in all
-environments, it would be unwise to build <CODE>ncurses</CODE>
-applications that <EM>require</EM> 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
-<CODE>ncurses</CODE> distribution (<CODE>bs</CODE> and <CODE>knight</CODE>) contain
-code that illustrates how this can be done. <P>
-
-See the manual page <CODE>curs_mouse(3X)</CODE> for full details of the
-mouse-interface functions.
-
-<H3><A NAME="finishing">Finishing Up</A></H3>
-
-In order to clean up after the <CODE>ncurses</CODE> routines, the routine
-<CODE>endwin()</CODE> is provided. It restores tty modes to what they were when
-<CODE>initscr()</CODE> was first called, and moves the cursor down to the
-lower-left corner. Thus, anytime after the call to initscr, <CODE>endwin()</CODE>
-should be called before exiting.
-
-<H2><A NAME="functions">Function Descriptions</A></H2>
-
-We describe the detailed behavior of some important curses functions here, as a
-supplement to the manual page descriptions.
-
-<H3><A NAME="init">Initialization and Wrapup</A></H3>
-
-<DL>
-<DT> <CODE>initscr()</CODE>
-<DD> The first function called should almost always be <CODE>initscr()</CODE>.
-This will determine the terminal type and
-initialize curses data structures. <CODE>initscr()</CODE> also arranges that
-the first call to <CODE>refresh()</CODE> will clear the screen. If an error
-occurs a message is written to standard error and the program
-exits. Otherwise it returns a pointer to stdscr. A few functions may be
-called before initscr (<CODE>slk_init()</CODE>, <CODE>filter()</CODE>,
-<CODE>ripofflines()</CODE>, <CODE>use_env()</CODE>, and, if you are using multiple
-terminals, <CODE>newterm()</CODE>.)
-<DT> <CODE>endwin()</CODE>
-<DD> Your program should always call <CODE>endwin()</CODE> 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 <CODE>refresh()</CODE>
-or <CODE>doupdate()</CODE> after a temporary escape from the program will
-restore the ncurses screen from before the escape.
-<DT> <CODE>newterm(type, ofp, ifp)</CODE>
-<DD> A program which outputs to more than one terminal should use
-<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
-<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
-opened using this function.
-<DT> <CODE>set_term(new)</CODE>
-<DD> This function is used to switch to a different terminal previously
-opened by <CODE>newterm()</CODE>. 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.
-<DT> <CODE>delscreen(sp)</CODE>
-<DD> The inverse of <CODE>newterm()</CODE>; deallocates the data structures
-associated with a given <CODE>SCREEN</CODE> reference.
-</DL>
-
-<H3><A NAME="flush">Causing Output to the Terminal</A></H3>
-
-<DL>
-<DT> <CODE>refresh()</CODE> and <CODE>wrefresh(win)</CODE>
-<DD> These functions must be called to actually get any output on
-the terminal, as other routines merely manipulate data
-structures. <CODE>wrefresh()</CODE> copies the named window to the physical
-terminal screen, taking into account what is already
-there in order to do optimizations. <CODE>refresh()</CODE> does a
-refresh of <CODE>stdscr()</CODE>. Unless <CODE>leaveok()</CODE> has been
-enabled, the physical cursor of the terminal is left at the
-location of the window's cursor.
-<DT> <CODE>doupdate()</CODE> and <CODE>wnoutrefresh(win)</CODE>
-<DD> 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 physical screen,
-describing what is actually on the screen, and a virtual screen,
-describing what the programmer wants to have on the screen. wrefresh
-works by first copying the named window to the virtual screen
-(<CODE>wnoutrefresh()</CODE>), and then calling the routine to update the
-screen (<CODE>doupdate()</CODE>). If the programmer wishes to output
-several windows at once, a series of calls to <CODE>wrefresh</CODE> will result
-in alternating calls to <CODE>wnoutrefresh()</CODE> and <CODE>doupdate()</CODE>,
-causing several bursts of output to the screen. By calling
-<CODE>wnoutrefresh()</CODE> for each window, it is then possible to call
-<CODE>doupdate()</CODE> once, resulting in only one burst of output, with
-fewer total characters transmitted (this also avoids a visually annoying
-flicker at each update).
-</DL>
-
-<H3><A NAME="lowlevel">Low-Level Capability Access</A></H3>
-
-<DL>
-<DT> <CODE>setupterm(term, filenum, errret)</CODE>
-<DD> This routine is called to initialize a terminal's description, without setting
-up the curses screen structures or changing the tty-driver mode bits.
-<CODE>term</CODE> is the character string representing the name of the terminal
-being used. <CODE>filenum</CODE> is the UNIX file descriptor of the terminal to
-be used for output. <CODE>errret</CODE> is a 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
-database). <P>
-
-The value of <CODE>term</CODE> can be given as NULL, which will cause the value of
-<CODE>TERM</CODE> in the environment to be used. The <CODE>errret</CODE> pointer can
-also be given as NULL, meaning no error code is wanted. If <CODE>errret</CODE> is
-defaulted, and something goes wrong, <CODE>setupterm()</CODE> will 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. <P>
-
-After the call to <CODE>setupterm()</CODE>, the global variable <CODE>cur_term</CODE> is
-set to point to the current structure of terminal capabilities. By calling
-<CODE>setupterm()</CODE> for each terminal, and saving and restoring
-<CODE>cur_term</CODE>, it is possible for a program to use two or more terminals at
-once. <CODE>Setupterm()</CODE> also stores the names section of the terminal
-description in the global character array <CODE>ttytype[]</CODE>. Subsequent calls
-to <CODE>setupterm()</CODE> will overwrite this array, so you'll have to save it
-yourself if need be.
-</DL>
-
-<H3><A NAME="debugging">Debugging</A></H3>
-
-<!-- The 'note' tag is not portable enough -->
-<blockquote>
-<strong>NOTE:</strong> These functions are not part of the standard curses API!
-</blockquote>
-
-<DL>
-<DT> <CODE>trace()</CODE>
-<DD>
-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 containing a report on
-the library's actions. Higher trace levels enable more detailed (and
-verbose) reporting -- see comments attached to <CODE>TRACE_</CODE> defines
-in the <CODE>curses.h</CODE> file for details. (It is also possible to set
-a trace level by assigning a trace level value to the environment variable
-<CODE>NCURSES_TRACE</CODE>).
-<DT> <CODE>_tracef()</CODE>
-<DD>
-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
-<CODE>printf()</CODE>, only it outputs a newline after the end of arguments.
-The output goes to a file called <CODE>trace</CODE> in the current directory.
-</DL>
-
-Trace logs can be difficult to interpret due to the sheer volume of
-data dumped in them. There is a script called <STRONG>tracemunch</STRONG>
-included with the <CODE>ncurses</CODE> 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.
-
-<H2><A NAME="hints">Hints, Tips, and Tricks</A></H2>
-
-The <CODE>ncurses</CODE> 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.
-
-<H3><A NAME="caution">Some Notes of Caution</A></H3>
-
-If you find yourself thinking you need to use <CODE>noraw()</CODE> or
-<CODE>nocbreak()</CODE>, think again and move carefully. It's probably
-better design to use <CODE>getstr()</CODE> or one of its relatives to
-simulate cooked mode. The <CODE>noraw()</CODE> and <CODE>nocbreak()</CODE>
-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. <P>
-
-Bear in mind that <CODE>refresh()</CODE> is a synonym for <CODE>wrefresh(stdscr)</CODE>.
-Don't try to mix use of <CODE>stdscr</CODE> with use of windows declared
-by <CODE>newwin()</CODE>; a <CODE>refresh()</CODE> call will blow them off the
-screen. The right way to handle this is to use <CODE>subwin()</CODE>, or
-not touch <CODE>stdscr</CODE> at all and tile your screen with declared
-windows which you then <CODE>wnoutrefresh()</CODE> somewhere in your program
-event loop, with a single <CODE>doupdate()</CODE> call to trigger actual
-repainting. <P>
-
-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 <CODE>ncurses</CODE> library is not yet an exception to this
-rule. <P>
-
-There is a panels library included in the <CODE>ncurses</CODE>
-distribution that does a pretty good job of strengthening the
-overlapping-windows facilities. <P>
-
-Try to avoid using the global variables LINES and COLS. Use
-<CODE>getmaxyx()</CODE> on the <CODE>stdscr</CODE> 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.
-
-<H3><A NAME="leaving">Temporarily Leaving NCURSES Mode</A></H3>
-
-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 <CODE>ncurses</CODE>. <P>
-
-To leave <CODE>ncurses</CODE> mode, call <CODE>endwin()</CODE> 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
-<CODE>ncurses</CODE> mode, simply call <CODE>refresh()</CODE> or <CODE>doupdate()</CODE>.
-This will repaint the screen. <P>
-
-There is a boolean function, <CODE>isendwin()</CODE>, which code can use to
-test whether <CODE>ncurses</CODE> screen mode is active. It returns <CODE>TRUE</CODE>
-in the interval between an <CODE>endwin()</CODE> call and the following
-<CODE>refresh()</CODE>, <CODE>FALSE</CODE> otherwise. <P>
-
-Here is some sample code for shellout:
-
-<PRE>
- addstr("Shelling out...");
- def_prog_mode(); /* save current tty modes */
- endwin(); /* restore original tty modes */
- system("sh"); /* run shell */
- addstr("returned.\n"); /* prepare return message */
- refresh(); /* restore save modes, repaint screen */
-</PRE>
-
-<H3><A NAME="xterm">Using NCURSES under XTERM</A></H3>
-
-A resize operation in X sends SIGWINCH to the application running under xterm.
-The <CODE>ncurses</CODE> 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. <P>
-
-The easiest way to code your SIGWINCH handler is to have it do an
-<CODE>endwin</CODE>, followed by an <CODE>refresh</CODE> and a screen repaint you code
-yourself. The <CODE>refresh</CODE> will pick up the new screen size from the
-xterm's environment. <P>
-
-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 shrunk.
-<CODE>Ncurses</CODE> provides an extension which works better, the
-<CODE>resizeterm</CODE> function. That function ensures that all windows
-are limited to the new screen dimensions, and pads <CODE>stdscr</CODE>
-with blanks if the screen is larger. <P>
-
-Finally, ncurses can be configured to provide its own SIGWINCH handler,
-based on <CODE>resizeterm</CODE>.
-
-<H3><A NAME="screens">Handling Multiple Terminal Screens</A></H3>
-
-The <CODE>initscr()</CODE> function actually calls a function named
-<CODE>newterm()</CODE> to do most of its work. If you are writing a program that
-opens multiple terminals, use <CODE>newterm()</CODE> directly. <P>
-
-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 <CODE>stdscr</CODE> will be
-set to the last one allocated. You will switch between screens with the
-<CODE>set_term</CODE> call. Note that you will also have to call
-<CODE>def_shell_mode</CODE> and <CODE>def_prog_mode</CODE> on each tty yourself.
-
-<H3><A NAME="testing">Testing for Terminal Capabilities</A></H3>
-
-Sometimes you may want to write programs that test for the presence of various
-capabilities before deciding whether to go into <CODE>ncurses</CODE> mode. An easy
-way to do this is to call <CODE>setupterm()</CODE>, then use the functions
-<CODE>tigetflag()</CODE>, <CODE>tigetnum()</CODE>, and <CODE>tigetstr()</CODE> to do your
-testing. <P>
-
-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 <CODE>tigetstr("cup")</CODE> is non-NULL. Alternatively,
-you can include the <CODE>term.h</CODE> file and test the value of the
-macro <CODE>cursor_address</CODE>.
-
-<H3><A NAME="tuning">Tuning for Speed</A></H3>
-
-Use the <CODE>addchstr()</CODE> 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 <CODE>immedok()</CODE> option!
-
-<H3><A NAME="special">Special Features of NCURSES</A></H3>
-
-The <CODE>wresize()</CODE> function allows you to resize a window in place.
-The associated <CODE>resizeterm()</CODE> function simplifies the construction
-of <a HREF="#xterm">SIGWINCH</a> handlers, for resizing all windows. <P>
-
-The <CODE>define_key()</CODE> function allows you
-to define at runtime function-key control sequences which are not in the
-terminal description.
-The <CODE>keyok()</CODE> function allows you to temporarily
-enable or disable interpretation of any function-key control sequence. <P>
-
-The <CODE>use_default_colors()</CODE> 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 this feature, which is based on ISO 6429. <P>
-
-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.
-
-<H2><A NAME="compat">Compatibility with Older Versions</A></H2>
-
-Despite our best efforts, there are some differences between <CODE>ncurses</CODE>
-and the (undocumented!) behavior of older curses implementations. These arise
-from ambiguities or omissions in the documentation of the API.
-
-<H3><A NAME="refbug">Refresh of Overlapping Windows</A></H3>
-
-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
-<CODE>curses</CODE> versions were often not documented precisely. <P>
-
-To understand why this is a problem, remember that screen updates are
-calculated between two representations of the <EM>entire</EM> 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. <P>
-
-What happens to the overlapping region depends on what <CODE>wnoutrefresh()</CODE>
-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
-<CODE>wtouchln()</CODE> and friends). Some implementations do "entire copy",
-copying <EM>all</EM> window locations to the virtual screen whether or not
-they have changed. <P>
-
-The <CODE>ncurses</CODE> 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. <P>
-
-For most commercial curses implementations, it is not documented and not known
-for sure (at least not to the <CODE>ncurses</CODE> 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. <P>
-
-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 <CODE>touchwin()</CODE> before the <CODE>wnoutrefresh()</CODE> call to
-guarantee an entire-contents copy anywhere. <P>
-
-The really clean way to handle this is to use the panels library. If,
-when you want a screen update, you do <CODE>update_panels()</CODE>, it will
-do all the necessary <CODE>wnoutrfresh()</CODE> calls for whatever panel
-stacking order you have defined. Then you can do one <CODE>doupdate()</CODE>
-and there will be a <EM>single</EM> burst of physical I/O that will do
-all your updates.
-
-<H3><A NAME="backbug">Background Erase</A></H3>
-
-If you have been using a very old versions of <CODE>ncurses</CODE> (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 <STRONG>wattrset()</STRONG>, <STRONG>wattron()</STRONG>,
-<STRONG>wattroff()</STRONG> and friends). <P>
-
-In newer versions, this is not so. Instead, the attribute of erased blanks
-is normal unless and until it is modified by the functions <CODE>bkgdset()</CODE>
-or <CODE>wbkgdset()</CODE>. <P>
-
-This change in behavior conforms <CODE>ncurses</CODE> to System V Release 4 and
-the XSI Curses standard.
-
-<H2><A NAME="xsifuncs">XSI Curses Conformance</A></H2>
-
-The <CODE>ncurses</CODE> 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. <P>
-
-One effect of XSI conformance is the change in behavior described under
-<A HREF="#backbug">"Background Erase -- Compatibility with Old Versions"</A>. <P>
-
-Also, <CODE>ncurses</CODE> 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
-<CODE>#undef</CODE>.
-
-<H1><A NAME="panels">The Panels Library</A></H1>
-
-The <CODE>ncurses</CODE> library by itself provides good support for screen
-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
-<CODE>wnoutrefresh()</CODE> calls followed by a <CODE>doupdate()</CODE>, 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. <P>
-
-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. <P>
-
-The <CODE>panel</CODE> library first appeared in AT&amp;T System V. The
-version documented here is the <CODE>panel</CODE> code distributed
-with <CODE>ncurses</CODE>.
-
-<H2><A NAME="pcompile">Compiling With the Panels Library</A></H2>
-
-Your panels-using modules must import the panels library declarations with
-
-<PRE>
- #include &lt;panel.h&gt;
-</PRE>
-
-and must be linked explicitly with the panels library using an
-<CODE>-lpanel</CODE> argument. Note that they must also link the
-<CODE>ncurses</CODE> library with <CODE>-lncurses</CODE>. Many linkers
-are two-pass and will accept either order, but it is still good practice
-to put <CODE>-lpanel</CODE> first and <CODE>-lncurses</CODE> second.
-
-<H2><A NAME="poverview">Overview of Panels</A></H2>
-
-A panel object is a window that is implicitly treated as part of a
-<DFN>deck</DFN> including all other panel objects. The deck has an implicit
-bottom-to-top visibility order. The panels library includes an update
-function (analogous to <CODE>refresh()</CODE>) that displays all panels in the
-deck in the proper order to resolve overlaps. The standard window,
-<CODE>stdscr</CODE>, is considered below all panels. <P>
-
-Details on the panels functions are available in the man pages. We'll just
-hit the highlights here. <P>
-
-You create a panel from a window by calling <CODE>new_panel()</CODE> on a
-window pointer. It then becomes the top of the deck. The panel's window
-is available as the value of <CODE>panel_window()</CODE> called with the
-panel pointer as argument.<P>
-
-You can delete a panel (removing it from the deck) with <CODE>del_panel</CODE>.
-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
-<CODE>replace_window</CODE>. 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. <P>
-
-To move a panel's window, use <CODE>move_panel()</CODE>. The
-<CODE>mvwin()</CODE> 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. <P>
-
-Two functions (<CODE>top_panel()</CODE>, <CODE>bottom_panel()</CODE>) are
-provided for 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 panel's screen location, contents, and size unchanged. <P>
-
-The function <CODE>update_panels()</CODE> does all the
-<CODE>wnoutrefresh()</CODE> calls needed to prepare for
-<CODE>doupdate()</CODE> (which you must call yourself, afterwards). <P>
-
-Typically, you will want to call <CODE>update_panels()</CODE> and
-<CODE>doupdate()</CODE> just before accepting command input, once in each cycle
-of interaction with the user. If you call <CODE>update_panels()</CODE> after
-each and every panel write, you'll generate a lot of unnecessary refresh
-activity and screen flicker.
-
-<H2><A NAME="pstdscr">Panels, Input, and the Standard Screen</A></H2>
-
-You shouldn't mix <CODE>wnoutrefresh()</CODE> or <CODE>wrefresh()</CODE>
-operations with panels code; this will work only if the argument window
-is either in the top panel or unobscured by any other panels. <P>
-
-The <CODE>stsdcr</CODE> window is a special case. It is considered below all
-panels. Because changes to panels may obscure parts of <CODE>stdscr</CODE>,
-though, you should call <CODE>update_panels()</CODE> before
-<CODE>doupdate()</CODE> even when you only change <CODE>stdscr</CODE>. <P>
-
-Note that <CODE>wgetch</CODE> automatically calls <CODE>wrefresh</CODE>.
-Therefore, before requesting input from a panel window, you need to be sure
-that the panel is totally unobscured. <P>
-
-There is presently no way to display changes to one obscured panel without
-repainting all panels.
-
-<H2><A NAME="hiding">Hiding Panels</A></H2>
-
-It's possible to remove a panel from the deck temporarily; use
-<CODE>hide_panel</CODE> for this. Use <CODE>show_panel()</CODE> to render it
-visible again. The predicate function <CODE>panel_hidden</CODE>
-tests whether or not a panel is hidden. <P>
-
-The <CODE>panel_update</CODE> code ignores hidden panels. You cannot do
-<CODE>top_panel()</CODE> or <CODE>bottom_panel</CODE> on a hidden panel().
-Other panels operations are applicable.
-
-<H2><A NAME="pmisc">Miscellaneous Other Facilities</A></H2>
-
-It's possible to navigate the deck using the functions
-<CODE>panel_above()</CODE> and <CODE>panel_below</CODE>. Handed a panel
-pointer, they return the panel above or below that panel. Handed
-<CODE>NULL</CODE>, they return the bottom-most or top-most panel. <P>
-
-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 <CODE>set_panel_userptr()</CODE> and <CODE>panel_userptr</CODE> for
-details.
-
-<H1><A NAME="menu">The Menu Library</A></H1>
-
-A menu is a screen display that assists the user to choose some subset
-of a given set of items. The <CODE>menu</CODE> library is a curses
-extension that supports easy programming of menu hierarchies with a
-uniform but flexible interface. <P>
-
-The <CODE>menu</CODE> library first appeared in AT&amp;T System V. The
-version documented here is the <CODE>menu</CODE> code distributed
-with <CODE>ncurses</CODE>.
-
-<H2><A NAME="mcompile">Compiling With the menu Library</A></H2>
-
-Your menu-using modules must import the menu library declarations with
-
-<PRE>
- #include &lt;menu.h&gt;
-</PRE>
-
-and must be linked explicitly with the menus library using an
-<CODE>-lmenu</CODE> argument. Note that they must also link the
-<CODE>ncurses</CODE> library with <CODE>-lncurses</CODE>. Many linkers
-are two-pass and will accept either order, but it is still good practice
-to put <CODE>-lmenu</CODE> first and <CODE>-lncurses</CODE> second.
-
-<H2><A NAME="moverview">Overview of Menus</A></H2>
-
-The menus created by this library consist of collections of
-<DFN>items</DFN> 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. <P>
-
-The menu can then by <DFN>posted</DFN>, that is written to an
-associated window. Actually, each menu has two associated windows; a
-containing window in which the programmer can scribble titles or
-borders, and a subwindow 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 the collection of items. <P>
-
-A menu may also be <DFN>unposted</DFN> (that is, undisplayed), and finally
-freed to make the storage associated with it and its items available for
-re-use. <P>
-
-The general flow of control of a menu program looks like this:
-
-<OL>
-<LI>Initialize <CODE>curses</CODE>.
-<LI>Create the menu items, using <CODE>new_item()</CODE>.
-<LI>Create the menu using <CODE>new_menu()</CODE>.
-<LI>Post the menu using <CODE>menu_post()</CODE>.
-<LI>Refresh the screen.
-<LI>Process user requests via an input loop.
-<LI>Unpost the menu using <CODE>menu_unpost()</CODE>.
-<LI>Free the menu, using <CODE>free_menu()</CODE>.
-<LI>Free the items using <CODE>free_item()</CODE>.
-<LI>Terminate <CODE>curses</CODE>.
-</OL>
-
-<H2><A NAME="mselect">Selecting items</A></H2>
-
-Menus may be multi-valued or (the default) single-valued (see the manual
-page <CODE>menu_opts(3x)</CODE> to see how to change the default).
-Both types always have a <DFN>current item</DFN>. <P>
-
-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 <CODE>item_value()</CODE>
-predicate function. Your menu-processing code can use the function
-<CODE>set_item_value()</CODE> to flag the items in the select set. <P>
-
-Menu items can be made unselectable using <CODE>set_item_opts()</CODE>
-or <CODE>item_opts_off()</CODE> with the <CODE>O_SELECTABLE</CODE>
-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.
-
-<H2><A NAME="mdisplay">Menu Display</A></H2>
-
-The menu library calculates a minimum display size for your window, based
-on the following variables:
-
-<UL>
-<LI>The number and maximum length of the menu items
-<LI>Whether the O_ROWMAJOR option is enabled
-<LI>Whether display of descriptions is enabled
-<LI>Whatever menu format may have been set by the programmer
-<LI>The length of the menu mark string used for highlighting selected items
-</UL>
-
-The function <CODE>set_menu_format()</CODE> allows you to set the
-maximum size of the viewport or <DFN>menu page</DFN> that will be used
-to display menu items. You can retrieve any format associated with a
-menu with <CODE>menu_format()</CODE>. The default format is rows=16,
-columns=1. <P>
-
-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'
-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
-the first column. <P>
-
-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. <P>
-You can scroll it with requests to the menu driver, which will be described
-in the section on <A HREF="#minput">menu input handling</A>. <P>
-
-Each menu has a <DFN>mark string</DFN> used to visually tag selected items;
-see the <CODE>menu_mark(3x)</CODE> manual page for details. The mark
-string length also influences the menu page size. <P>
-
-The function <CODE>scale_menu()</CODE> 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 have reasonable defaults which the library allows you to
-change (see the <CODE>menu_attribs(3x)</CODE> manual page.
-
-<H2><A NAME="mwindows">Menu Windows</A></H2>
-
-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. <P>
-
-The outer or frame window is not otherwise touched by the menu
-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 erased at post/unpost time. The inner window or
-<DFN>subwindow</DFN> is where the current menu page is displayed. <P>
-
-By default, both windows are <CODE>stdscr</CODE>. You can set them with the
-functions in <CODE>menu_win(3x)</CODE>. <P>
-
-When you call <CODE>menu_post()</CODE>, you write the menu to its
-subwindow. When you call <CODE>menu_unpost()</CODE>, you erase the
-subwindow, However, neither of these actually modifies the screen. To
-do that, call <CODE>wrefresh()</CODE> or some equivalent.
-
-<H2><A NAME="minput">Processing Menu Input</A></H2>
-
-The main loop of your menu-processing code should call
-<CODE>menu_driver()</CODE> 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 output to <CODE>menu_driver()</CODE>. The menu command codes are
-fully documented in <CODE>menu_driver(3x)</CODE>. <P>
-
-The simplest group of command codes is <CODE>REQ_NEXT_ITEM</CODE>,
-<CODE>REQ_PREV_ITEM</CODE>, <CODE>REQ_FIRST_ITEM</CODE>,
-<CODE>REQ_LAST_ITEM</CODE>, <CODE>REQ_UP_ITEM</CODE>,
-<CODE>REQ_DOWN_ITEM</CODE>, <CODE>REQ_LEFT_ITEM</CODE>,
-<CODE>REQ_RIGHT_ITEM</CODE>. These change the currently selected
-item. These requests may cause scrolling of the menu page if it only
-partially displayed. <P>
-
-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 <CODE>REQ_SCR_DLINE</CODE>,
-<CODE>REQ_SCR_ULINE</CODE>, <CODE>REQ_SCR_DPAGE</CODE>, and
-<CODE>REQ_SCR_UPAGE</CODE>. <P>
-
-The <CODE>REQ_TOGGLE_ITEM</CODE> selects or deselects the current item.
-It is for use in multi-valued menus; if you use it with <CODE>O_ONEVALUE</CODE>
-on, you'll get an error return (<CODE>E_REQUEST_DENIED</CODE>). <P>
-
-Each menu has an associated pattern buffer. The
-<CODE>menu_driver()</CODE> 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 <CODE>menu_driver()</CODE> returns
-<CODE>E_NO_MATCH</CODE>. <P>
-
-Some requests change the pattern buffer directly:
-<CODE>REQ_CLEAR_PATTERN</CODE>, <CODE>REQ_BACK_PATTERN</CODE>,
-<CODE>REQ_NEXT_MATCH</CODE>, <CODE>REQ_PREV_MATCH</CODE>. The latter
-two are useful when pattern buffer input matches more than one item
-in a multi-valued menu. <P>
-
-Each successful scroll or item navigation request clears the pattern
-buffer. It is also possible to set the pattern buffer explicitly
-with <CODE>set_menu_pattern()</CODE>. <P>
-
-Finally, menu driver requests above the constant <CODE>MAX_COMMAND</CODE>
-are considered application-specific commands. The <CODE>menu_driver()</CODE>
-code ignores them and returns <CODE>E_UNKNOWN_COMMAND</CODE>.
-
-<H2><A NAME="mmisc">Miscellaneous Other Features</A></H2>
-
-Various menu options can affect the processing and visual appearance
-and input processing of menus. See <CODE>menu_opts(3x) for
-details.</CODE> <P>
-
-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
-<CODE>mitem_current(3x)</CODE>.
-
-If your application needs to change the menu subwindow cursor for
-any reason, <CODE>pos_menu_cursor()</CODE> will restore it to the
-correct location for continuing menu driver processing. <P>
-
-It is possible to set hooks to be called at menu initialization and
-wrapup time, and whenever the selected item changes. See
-<CODE>menu_hook(3x)</CODE>. <P>
-
-Each item, and each menu, has an associated user pointer on which you
-can hang application data. See <CODE>mitem_userptr(3x)</CODE> and
-<CODE>menu_userptr(3x)</CODE>.
-
-<H1><A NAME="form">The Forms Library</A></H1>
-
-The <CODE>form</CODE> library is a curses extension that supports easy
-programming of on-screen forms for data entry and program control. <P>
-
-The <CODE>form</CODE> library first appeared in AT&amp;T System V. The
-version documented here is the <CODE>form</CODE> code distributed
-with <CODE>ncurses</CODE>.
-
-<H2><A NAME="fcompile">Compiling With the form Library</A></H2>
-
-Your form-using modules must import the form library declarations with
-
-<PRE>
- #include &lt;form.h&gt;
-</PRE>
-
-and must be linked explicitly with the forms library using an
-<CODE>-lform</CODE> argument. Note that they must also link the
-<CODE>ncurses</CODE> library with <CODE>-lncurses</CODE>. Many linkers
-are two-pass and will accept either order, but it is still good practice
-to put <CODE>-lform</CODE> first and <CODE>-lncurses</CODE> second.
-
-<H2><A NAME="foverview">Overview of Forms</A></H2>
-
-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. <P>
-To make forms, you create groups of fields and connect them with form
-frame objects; the form library makes this relatively simple. <P>
-
-Once defined, a form can be <DFN>posted</DFN>, 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. <P>
-
-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 <CODE>curses</CODE>
-
-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. <P>
-
-Once its transaction is completed (or aborted), a form may be
-<DFN>unposted</DFN> (that is, undisplayed), and finally freed to make
-the storage associated with it and its items available for re-use. <P>
-
-The general flow of control of a form program looks like this:
-
-<OL>
-<LI>Initialize <CODE>curses</CODE>.
-<LI>Create the form fields, using <CODE>new_field()</CODE>.
-<LI>Create the form using <CODE>new_form()</CODE>.
-<LI>Post the form using <CODE>form_post()</CODE>.
-<LI>Refresh the screen.
-<LI>Process user requests via an input loop.
-<LI>Unpost the form using <CODE>form_unpost()</CODE>.
-<LI>Free the form, using <CODE>free_form()</CODE>.
-<LI>Free the fields using <CODE>free_field()</CODE>.
-<LI>Terminate <CODE>curses</CODE>.
-</OL>
-
-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 <A HREF="#menu">menu library</A>
-wherever possible. <P>
-
-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.
-
-<H2><A NAME="fcreate">Creating and Freeing Fields and Forms</A></H2>
-
-The basic function for creating fields is <CODE>new_field()</CODE>:
-
-<PRE>
-FIELD *new_field(int height, int width, /* new field size */
- int top, int left, /* upper left corner */
- int offscreen, /* number of offscreen rows */
- int nbuf); /* number of working buffers */
-</PRE>
-
-Menu items always occupy a single row, but forms fields may have
-multiple rows. So <CODE>new_field()</CODE> requires you to specify a
-width and height (the first two arguments, which mist both be greater
-than zero). <P>
-
-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 <CODE>stdscr</CODE> by default but
-need not be <CODE>stdscr</CODE> if you've done an explicit
-<CODE>set_form_window()</CODE> call. <P>
-
-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 <CODE>offscreen</CODE> argument was initially zero. <P>
-
-The forms library allocates one working buffer per field; the size of
-each buffer is <CODE>((height + offscreen)*width + 1</CODE>, 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 application can use them for its own purposes.
-
-<PRE>
-FIELD *dup_field(FIELD *field, /* field to copy */
- int top, int left); /* location of new copy */
-</PRE>
-
-The function <CODE>dup_field()</CODE> duplicates an existing field at a
-new location. Size and buffering information are copied; some
-attribute flags and status bits are not (see the
-<CODE>form_field_new(3X)</CODE> for details).
-
-<PRE>
-FIELD *link_field(FIELD *field, /* field to copy */
- int top, int left); /* location of new copy */
-</PRE>
-
-The function <CODE>link_field()</CODE> also duplicates an existing field
-at a new location. The difference from <CODE>dup_field()</CODE> is that
-it arranges for the new field's buffer to be shared with the old one. <P>
-
-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
-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. <P>
-
-As with duplicated fields, linked fields have attribute bits separate
-from the original. <P>
-
-As you might guess, all these field-allocations return <CODE>NULL</CODE> if
-the field allocation is not possible due to an out-of-memory error or
-out-of-bounds arguments. <P>
-
-To connect fields to a form, use
-
-<PRE>
-FORM *new_form(FIELD **fields);
-</PRE>
-
-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). <P>
-
-Note that <CODE>new_field()</CODE> does <EM>not</EM> 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. <P>
-
-The functions <CODE>free_field()</CODE> and <CODE>free_form</CODE> 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.
-
-<H2><A NAME="fattributes">Fetching and Changing Field Attributes</A></H2>
-
-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 <CODE>O_STATIC</CODE> bit)
-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. <P>
-
-When a field is created, the attributes not specified by the
-<CODE>new_field</CODE> 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.
-
-<H3><A NAME="fsizes">Fetching Size and Location Data</A></H3>
-
-You can retrieve field sizes and locations through:
-
-<PRE>
-int field_info(FIELD *field, /* field from which to fetch */
- int *height, *int width, /* field size */
- int *top, int *left, /* upper left corner */
- int *offscreen, /* number of offscreen rows */
- int *nbuf); /* number of working buffers */
-</PRE>
-
-This function is a sort of inverse of <CODE>new_field()</CODE>; instead of
-setting size and location attributes of a new field, it fetches them
-from an existing one.
-
-<H3><A NAME="flocation">Changing the Field Location</A></H3>
-
-It is possible to move a field's location on the screen:
-
-<PRE>
-int move_field(FIELD *field, /* field to alter */
- int top, int left); /* new upper-left corner */
-</PRE>
-
-You can, of course. query the current location through <CODE>field_info()</CODE>.
-
-<H3><A NAME="fjust">The Justification Attribute</A></H3>
-
-One-line fields may be unjustified, justified right, justified left,
-or centered. Here is how you manipulate this attribute:
-
-<PRE>
-int set_field_just(FIELD *field, /* field to alter */
- int justmode); /* mode to set */
-
-int field_just(FIELD *field); /* fetch mode of field */
-</PRE>
-
-The mode values accepted and returned by this functions are
-preprocessor macros <CODE>NO_JUSTIFICATION</CODE>, <CODE>JUSTIFY_RIGHT</CODE>,
-<CODE>JUSTIFY_LEFT</CODE>, or <CODE>JUSTIFY_CENTER</CODE>.
-
-<H3><A NAME="fdispatts">Field Display Attributes</A></H3>
-
-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. <P>
-
-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.
-
-<PRE>
-int set_field_fore(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_fore(FIELD *field); /* field to query */
-
-int set_field_back(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_back(FIELD *field); /* field to query */
-
-int set_field_pad(FIELD *field, /* field to alter */
- int pad); /* pad character to set */
-
-chtype field_pad(FIELD *field);
-
-int set_new_page(FIELD *field, /* field to alter */
- int flag); /* TRUE to force new page */
-
-chtype new_page(FIELD *field); /* field to query */
-</PRE>
-
-The attributes set and returned by the first four functions are normal
-<CODE>curses(3x)</CODE> display attribute values (<CODE>A_STANDOUT</CODE>,
-<CODE>A_BOLD</CODE>, <CODE>A_REVERSE</CODE> etc).
-
-The page bit of a field controls whether it is displayed at the start of
-a new form screen.
-
-<H3><A NAME="foptions">Field Option Bits</A></H3>
-
-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:
-
-<PRE>
-int set_field_opts(FIELD *field, /* field to alter */
- int attr); /* attribute to set */
-
-int field_opts_on(FIELD *field, /* field to alter */
- int attr); /* attributes to turn on */
-
-int field_opts_off(FIELD *field, /* field to alter */
- int attr); /* attributes to turn off */
-
-int field_opts(FIELD *field); /* field to query */
-</PRE>
-
-By default, all options are on. Here are the available option bits:
-<DL>
-<DT> O_VISIBLE
-<DD> 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.
-<DT> O_ACTIVE
-<DD> 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.
-<DT> O_PUBLIC
-<DD> 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.
-<DT> O_EDIT
-<DD> Controls whether the field's data can be modified. When this option is
-off, all editing requests except <CODE>REQ_PREV_CHOICE</CODE> and
-<CODE>REQ_NEXT_CHOICE</CODE> will fail. Such read-only fields may be useful for
-help messages.
-<DT> O_WRAP
-<DD> Controls word-wrapping in multi-line fields. Normally, when any
-character of a (blank-separated) word reaches the end of the current line, the
-entire word is wrapped to the next line (assuming there is one). When this
-option is off, the word will be split across the line break.
-<DT> O_BLANK
-<DD> 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).
-<DT> O_AUTOSKIP
-<DD> Controls automatic skip to next field when this one fills. Normally,
-when the forms user tries to type more data into a field than will fit,
-the editing location jumps to next field. When this option is off, the
-user's cursor will hang at the end of the field. This option is ignored
-in dynamic fields that have not reached their size limit.
-<DT> O_NULLOK
-<DD> Controls whether <A HREF="#fvalidation">validation</A> 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.
-<DT> O_PASSOK
-<DD> Controls whether validation occurs on every exit, or only after
-the field is modified. Normally the latter is true. Setting O_PASSOK
-may be useful if your field's validation function may change during
-forms processing.
-<DT> O_STATIC
-<DD> Controls whether the field is fixed to its initial dimensions. If you
-turn this off, the field becomes <A HREF="#fdynamic">dynamic</A> and will
-stretch to fit entered data.
-</DL>
-
-A field's options cannot be changed while the field is currently selected.
-However, options may be changed on posted fields that are not current. <P>
-
-The option values are bit-masks and can be composed with logical-or in
-the obvious way.
-
-<H2><A NAME="fstatus">Field Status</A></H2>
-
-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 can
-be queried and set directly:
-
-<PRE>
-int set_field_status(FIELD *field, /* field to alter */
- int status); /* mode to set */
-
-int field_status(FIELD *field); /* fetch mode of field */
-</PRE>
-
-Setting this flag under program control can be useful if you use the same
-form repeatedly, looking for modified fields each time. <P>
-
-Calling <CODE>field_status()</CODE> on a field not currently selected
-for input will return a correct value. Calling <CODE>field_status()</CODE> 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
-<CODE>field_status()</CODE> 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 <CODE>REQ_VALIDATION</CODE> request has been
-processed by the forms driver.
-
-<H2><A NAME="fuser">Field User Pointer</A></H2>
-
-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:
-
-<PRE>
-int set_field_userptr(FIELD *field, /* field to alter */
- char *userptr); /* mode to set */
-
-char *field_userptr(FIELD *field); /* fetch mode of field */
-</PRE>
-
-(Properly, this user pointer field ought to have <CODE>(void *)</CODE> type.
-The <CODE>(char *)</CODE> type is retained for System V compatibility.) <P>
-
-It is valid to set the user pointer of the default field (with a
-<CODE>set_field_userptr()</CODE> 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.
-
-<H2><A NAME="fdynamic">Variable-Sized Fields</A></H2>
-
-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
-<DFN>dynamic</DFN> 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. <P>
-
-A one-line dynamic field will have a fixed height (1) but variable
-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
-dimensioned and located. <P>
-
-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:
-
-<PRE>
-int set_max_field(FIELD *field, /* field to alter (may not be NULL) */
- int max_size); /* upper limit on field size */
-</PRE>
-
-If the field is one-line, <CODE>max_size</CODE> 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 whether
-or not the O_STATIC bit is on, but has no effect until it is. <P>
-
-The following properties of a field change when it becomes dynamic:
-
-<UL>
-<LI>If there is no growth limit, there is no final position of the field;
-therefore <CODE>O_AUTOSKIP</CODE> and <CODE>O_NL_OVERLOAD</CODE> are ignored.
-<LI>Field justification will be ignored (though whatever justification is
-set up will be retained internally and can be queried).
-<LI>The <CODE>dup_field()</CODE> and <CODE>link_field()</CODE> calls copy
-dynamic-buffer sizes. If the <CODE>O_STATIC</CODE> option is set on one of a
-collection of links, buffer resizing will occur only when the field is
-edited through that link.
-<LI>The call <CODE>field_info()</CODE> will retrieve the original static size of
-the field; use <CODE>dynamic_field_info()</CODE> to get the actual dynamic size.
-</UL>
-
-<H2><A NAME="fvalidation">Field Validation</A></H2>
-
-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. <P>
-
-A field's validation check (if any) is not called when
-<CODE>set_field_buffer()</CODE> modifies the input buffer, nor when that buffer
-is changed through a linked field. <P>
-
-The <CODE>form</CODE> 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:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- FIELDTYPE *ftype, /* type to associate */
- ...); /* additional arguments*/
-
-FIELDTYPE *field_type(FIELD *field); /* field to query */
-</PRE>
-
-The validation type of a field is considered an attribute of the field. As
-with other field attributes, Also, doing <CODE>set_field_type()</CODE> with a
-<CODE>NULL</CODE> field default will change the system default for validation of
-newly-created fields. <P>
-
-Here are the pre-defined validation types:
-
-<H3><A NAME="ftype_alpha">TYPE_ALPHA</A></H3>
-
-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:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ALPHA, /* type to associate */
- int width); /* maximum width of field */
-</PRE>
-
-The <CODE>width</CODE> 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 field completion optional.
-
-<H3><A NAME="ftype_alnum">TYPE_ALNUM</A></H3>
-
-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:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ALNUM, /* type to associate */
- int width); /* maximum width of field */
-</PRE>
-
-The <CODE>width</CODE> 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.
-
-<H3><A NAME="ftype_enum">TYPE_ENUM</A></H3>
-
-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:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ENUM, /* type to associate */
- char **valuelist; /* list of possible values */
- int checkcase; /* case-sensitive? */
- int checkunique); /* must specify uniquely? */
-</PRE>
-
-The <CODE>valuelist</CODE> parameter must point at a NULL-terminated list of
-valid strings. The <CODE>checkcase</CODE> argument, if true, makes comparison
-with the string case-sensitive. <P>
-
-When the user exits a TYPE_ENUM field, the validation procedure tries to
-complete the data in the buffer to a valid entry. If a complete choice string
-has been entered, it is of course valid. But it is also possible to enter a
-prefix of a valid string and have it completed for you. <P>
-
-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 <CODE>checkunique</CODE> argument, if true, requires prefix
-matches to be unique in order to be valid. <P>
-
-The <CODE>REQ_NEXT_CHOICE</CODE> and <CODE>REQ_PREV_CHOICE</CODE> input requests
-can be particularly useful with these fields.
-
-<H3><A NAME="ftype_integer">TYPE_INTEGER</A></H3>
-
-This field type accepts an integer. It is set up as follows:
-
-<PRE>
-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 */
-</PRE>
-
-Valid characters consist of an optional leading minus and digits.
-The range check is performed on exit. If the range maximum is less
-than or equal to the minimum, the range is ignored. <P>
-
-If the value passes its range check, it is padded with as many leading
-zero digits as necessary to meet the padding argument. <P>
-
-A <CODE>TYPE_INTEGER</CODE> value buffer can conveniently be interpreted
-with the C library function <CODE>atoi(3)</CODE>.
-
-<H3><A NAME="ftype_numeric">TYPE_NUMERIC</A></H3>
-
-This field type accepts a decimal number. It is set up as follows:
-
-<PRE>
-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 */
-</PRE>
-
-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. <P>
-
-If the value passes its range check, it is padded with as many trailing
-zero digits as necessary to meet the padding argument. <P>
-
-A <CODE>TYPE_NUMERIC</CODE> value buffer can conveniently be interpreted
-with the C library function <CODE>atof(3)</CODE>.
-
-<H3><A NAME="ftype_regexp">TYPE_REGEXP</A></H3>
-
-This field type accepts data matching a regular expression. It is set up
-as follows:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_REGEXP, /* type to associate */
- char *regexp); /* expression to match */
-</PRE>
-
-The syntax for regular expressions is that of <CODE>regcomp(3)</CODE>.
-The check for regular-expression match is performed on exit.
-
-<H2><A NAME="fbuffer">Direct Field Buffer Manipulation</A></H2>
-
-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 each
-field buffer. You can find this out with:
-
-<PRE>
-char *field_buffer(FIELD *field, /* field to query */
- int bufindex); /* number of buffer to query */
-</PRE>
-
-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:
-
-<PRE>
-int set_field_buffer(FIELD *field, /* field to alter */
- int bufindex, /* number of buffer to alter */
- char *value); /* string value to set */
-</PRE>
-
-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. <P>
-
-Calling <CODE>field_buffer()</CODE> with a null field pointer will raise an
-error. Calling <CODE>field_buffer()</CODE> on a field not currently selected
-for input will return a correct value. Calling <CODE>field_buffer()</CODE> 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 <CODE>field_buffer()</CODE> 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 <CODE>REQ_VALIDATION</CODE> request has been processed
-by the forms driver.
-
-<H2><A NAME="formattrs">Attributes of Forms</A></H2>
-
-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 <CODE>NULL</CODE>. <P>
-
-The principal attribute of a form is its field list. You can query
-and change this list with:
-
-<PRE>
-int set_form_fields(FORM *form, /* form to alter */
- FIELD **fields); /* fields to connect */
-
-char *form_fields(FORM *form); /* fetch fields of form */
-
-int field_count(FORM *form); /* count connect fields */
-</PRE>
-
-The second argument of <CODE>set_form_fields()</CODE> may be a
-NULL-terminated field pointer array like the one required by
-<CODE>new_form()</CODE>. 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 connected. <P>
-
-It may also be null, in which case the old fields are disconnected
-(and not freed) but no new ones are connected. <P>
-
-The <CODE>field_count()</CODE> function simply counts the number of fields
-connected to a given from. It returns -1 if the form-pointer argument
-is NULL.
-
-<H2><A NAME="fdisplay">Control of Form Display</A></H2>
-
-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
-<CODE>stdscr</CODE>. <P>
-
-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
-managed by <A HREF="#panels">panels</A>. <P>
-
-The two windows associated with each form have the same functions as
-their analogues in the <A HREF="#menu">menu library</A>. Both these
-windows are painted when the form is posted and erased when the form
-is unposted. <P>
-
-The outer or frame window is not otherwise touched by the form
-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 erased at post/unpost time. The inner window or subwindow
-is where the current form page is actually displayed. <P>
-
-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:
-
-<PRE>
-int scale_form(FORM *form, /* form to query */
- int *rows, /* form rows */
- int *cols); /* form cols */
-</PRE>
-
-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 of windows, then use one of these functions:
-
-<PRE>
-int set_form_win(FORM *form, /* form to alter */
- WINDOW *win); /* frame window to connect */
-
-WINDOW *form_win(FORM *form); /* fetch frame window of form */
-
-int set_form_sub(FORM *form, /* form to alter */
- WINDOW *win); /* form subwindow to connect */
-
-WINDOW *form_sub(FORM *form); /* fetch form subwindow of form */
-</PRE>
-
-Note that curses operations, including <CODE>refresh()</CODE>, on the form,
-should be done on the frame window, not the form subwindow. <P>
-
-It is possible to check from your application whether all of a
-scrollable field is actually displayed within the menu subwindow. Use
-these functions:
-
-<PRE>
-int data_ahead(FORM *form); /* form to be queried */
-
-int data_behind(FORM *form); /* form to be queried */
-</PRE>
-
-The function <CODE>data_ahead()</CODE> 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. <P>
-
-The function <CODE>data_behind()</CODE> returns TRUE if the first (upper
-left hand) character position is off-screen (not being displayed). <P>
-
-Finally, there is a function to restore the form window's cursor to the
-value expected by the forms driver:
-
-<PRE>
-int pos_form_cursor(FORM *) /* form to be queried */
-</PRE>
-
-If your application changes the form window cursor, call this function before
-handing control back to the forms driver in order to re-synchronize it.
-
-<H2><A NAME="fdriver">Input Processing in the Forms Driver</A></H2>
-
-The function <CODE>form_driver()</CODE> handles virtualized input requests
-for form navigation, editing, and validation requests, just as
-<CODE>menu_driver</CODE> does for menus (see the section on <A
-HREF="#minput">menu input handling</A>).
-
-<PRE>
-int form_driver(FORM *form, /* form to pass input to */
- int request); /* form request code */
-</PRE>
-
-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. <P>
-
-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.
-
-<H3><A NAME="fpage">Page Navigation Requests</A></H3>
-
-These requests cause page-level moves through the form,
-triggering display of a new form screen.
-
-<DL>
-<DT> <CODE>REQ_NEXT_PAGE</CODE>
-<DD> Move to the next form page.
-<DT> <CODE>REQ_PREV_PAGE</CODE>
-<DD> Move to the previous form page.
-<DT> <CODE>REQ_FIRST_PAGE</CODE>
-<DD> Move to the first form page.
-<DT> <CODE>REQ_LAST_PAGE</CODE>
-<DD> Move to the last form page.
-</DL>
-
-These requests treat the list as cyclic; that is, <CODE>REQ_NEXT_PAGE</CODE>
-from the last page goes to the first, and <CODE>REQ_PREV_PAGE</CODE> from
-the first page goes to the last.
-
-<H3><A NAME="#ffield">Inter-Field Navigation Requests</A></H3>
-
-These requests handle navigation between fields on the same page.
-
-<DL>
-<DT> <CODE>REQ_NEXT_FIELD</CODE>
-<DD> Move to next field.
-<DT> <CODE>REQ_PREV_FIELD</CODE>
-<DD> Move to previous field.
-<DT> <CODE>REQ_FIRST_FIELD</CODE>
-<DD> Move to the first field.
-<DT> <CODE>REQ_LAST_FIELD</CODE>
-<DD> Move to the last field.
-<DT> <CODE>REQ_SNEXT_FIELD</CODE>
-<DD> Move to sorted next field.
-<DT> <CODE>REQ_SPREV_FIELD</CODE>
-<DD> Move to sorted previous field.
-<DT> <CODE>REQ_SFIRST_FIELD</CODE>
-<DD> Move to the sorted first field.
-<DT> <CODE>REQ_SLAST_FIELD</CODE>
-<DD> Move to the sorted last field.
-<DT> <CODE>REQ_LEFT_FIELD</CODE>
-<DD> Move left to field.
-<DT> <CODE>REQ_RIGHT_FIELD</CODE>
-<DD> Move right to field.
-<DT> <CODE>REQ_UP_FIELD</CODE>
-<DD> Move up to field.
-<DT> <CODE>REQ_DOWN_FIELD</CODE>
-<DD> Move down to field.
-</DL>
-
-These requests treat the list of fields on a page as cyclic; that is,
-<CODE>REQ_NEXT_FIELD</CODE> from the last field goes to the first, and
-<CODE>REQ_PREV_FIELD</CODE> from the first field goes to the last. The
-order of the fields for these (and the <CODE>REQ_FIRST_FIELD</CODE> and
-<CODE>REQ_LAST_FIELD</CODE> requests) is simply the order of the field
-pointers in the form array (as set up by <CODE>new_form()</CODE> or
-<CODE>set_form_fields()</CODE> <P>
-
-It is also possible to traverse the fields as if they had been sorted in
-screen-position order, so the sequence goes left-to-right and top-to-bottom.
-To do this, use the second group of four sorted-movement requests. <P>
-
-Finally, it is possible to move between fields using visual directions up,
-down, right, and left. To accomplish this, use the third group of four
-requests. Note, however, that the position of a form for purposes of these
-requests is its upper-left corner. <P>
-
-For example, suppose you have a multi-line field B, and two
-single-line fields A and C on the same line with B, with A to the left
-of B and C to the right of B. A <CODE>REQ_MOVE_RIGHT</CODE> from A will
-go to B only if A, B, and C <EM>all</EM> share the same first line;
-otherwise it will skip over B to C.
-
-<H3><A NAME="#fifield">Intra-Field Navigation Requests</A></H3>
-
-These requests drive movement of the edit cursor within the currently
-selected field.
-
-<DL>
-<DT> <CODE>REQ_NEXT_CHAR</CODE>
-<DD> Move to next character.
-<DT> <CODE>REQ_PREV_CHAR</CODE>
-<DD> Move to previous character.
-<DT> <CODE>REQ_NEXT_LINE</CODE>
-<DD> Move to next line.
-<DT> <CODE>REQ_PREV_LINE</CODE>
-<DD> Move to previous line.
-<DT> <CODE>REQ_NEXT_WORD</CODE>
-<DD> Move to next word.
-<DT> <CODE>REQ_PREV_WORD</CODE>
-<DD> Move to previous word.
-<DT> <CODE>REQ_BEG_FIELD</CODE>
-<DD> Move to beginning of field.
-<DT> <CODE>REQ_END_FIELD</CODE>
-<DD> Move to end of field.
-<DT> <CODE>REQ_BEG_LINE</CODE>
-<DD> Move to beginning of line.
-<DT> <CODE>REQ_END_LINE</CODE>
-<DD> Move to end of line.
-<DT> <CODE>REQ_LEFT_CHAR</CODE>
-<DD> Move left in field.
-<DT> <CODE>REQ_RIGHT_CHAR</CODE>
-<DD> Move right in field.
-<DT> <CODE>REQ_UP_CHAR</CODE>
-<DD> Move up in field.
-<DT> <CODE>REQ_DOWN_CHAR</CODE>
-<DD> Move down in field.
-</DL>
-
-Each <EM>word</EM> 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.
-
-<H3><A NAME="fscroll">Scrolling Requests</A></H3>
-
-Fields that are dynamic and have grown and fields explicitly created
-with offscreen rows are scrollable. One-line fields scroll horizontally;
-multi-line fields scroll vertically. Most scrolling is triggered by
-editing and intra-field movement (the library scrolls the field to keep the
-cursor visible). It is possible to explicitly request scrolling with the
-following requests:
-
-<DL>
-<DT> <CODE>REQ_SCR_FLINE</CODE>
-<DD> Scroll vertically forward a line.
-<DT> <CODE>REQ_SCR_BLINE</CODE>
-<DD> Scroll vertically backward a line.
-<DT> <CODE>REQ_SCR_FPAGE</CODE>
-<DD> Scroll vertically forward a page.
-<DT> <CODE>REQ_SCR_BPAGE</CODE>
-<DD> Scroll vertically backward a page.
-<DT> <CODE>REQ_SCR_FHPAGE</CODE>
-<DD> Scroll vertically forward half a page.
-<DT> <CODE>REQ_SCR_BHPAGE</CODE>
-<DD> Scroll vertically backward half a page.
-<DT> <CODE>REQ_SCR_FCHAR</CODE>
-<DD> Scroll horizontally forward a character.
-<DT> <CODE>REQ_SCR_BCHAR</CODE>
-<DD> Scroll horizontally backward a character.
-<DT> <CODE>REQ_SCR_HFLINE</CODE>
-<DD> Scroll horizontally one field width forward.
-<DT> <CODE>REQ_SCR_HBLINE</CODE>
-<DD> Scroll horizontally one field width backward.
-<DT> <CODE>REQ_SCR_HFHALF</CODE>
-<DD> Scroll horizontally one half field width forward.
-<DT> <CODE>REQ_SCR_HBHALF</CODE>
-<DD> Scroll horizontally one half field width backward.
-</DL>
-
-For scrolling purposes, a <EM>page</EM> of a field is the height
-of its visible part.
-
-<H3><A NAME="fedit">Editing Requests</A></H3>
-
-When you pass the forms driver an ASCII character, it is treated as a
-request to add the character to the field's data buffer. Whether this
-is an insertion or a replacement depends on the field's edit mode
-(insertion is the default. <P>
-
-The following requests support editing the field and changing the edit
-mode:
-
-<DL>
-<DT> <CODE>REQ_INS_MODE</CODE>
-<DD> Set insertion mode.
-<DT> <CODE>REQ_OVL_MODE</CODE>
-<DD> Set overlay mode.
-<DT> <CODE>REQ_NEW_LINE</CODE>
-<DD> New line request (see below for explanation).
-<DT> <CODE>REQ_INS_CHAR</CODE>
-<DD> Insert space at character location.
-<DT> <CODE>REQ_INS_LINE</CODE>
-<DD> Insert blank line at character location.
-<DT> <CODE>REQ_DEL_CHAR</CODE>
-<DD> Delete character at cursor.
-<DT> <CODE>REQ_DEL_PREV</CODE>
-<DD> Delete previous word at cursor.
-<DT> <CODE>REQ_DEL_LINE</CODE>
-<DD> Delete line at cursor.
-<DT> <CODE>REQ_DEL_WORD</CODE>
-<DD> Delete word at cursor.
-<DT> <CODE>REQ_CLR_EOL</CODE>
-<DD> Clear to end of line.
-<DT> <CODE>REQ_CLR_EOF</CODE>
-<DD> Clear to end of field.
-<DT> <CODE>REQ_CLEAR_FIELD</CODE>
-<DD> Clear entire field.
-</DL>
-
-The behavior of the <CODE>REQ_NEW_LINE</CODE> and <CODE>REQ_DEL_PREV</CODE> requests
-is complicated and partly controlled by a pair of forms options.
-The special cases are triggered when the cursor is at the beginning of
-a field, or on the last line of the field. <P>
-
-First, we consider <CODE>REQ_NEW_LINE</CODE>: <P>
-
-The normal behavior of <CODE>REQ_NEW_LINE</CODE> in insert mode is to break the
-current line at the position of the edit cursor, inserting the portion of
-the current line after the cursor as a new line following the current
-and moving the cursor to the beginning of that new line (you may think
-of this as inserting a newline in the field buffer). <P>
-
-The normal behavior of <CODE>REQ_NEW_LINE</CODE> in overlay mode is to clear the
-current line from the position of the edit cursor to end of line.
-The cursor is then moved to the beginning of the next line. <P>
-
-However, <CODE>REQ_NEW_LINE</CODE> at the beginning of a field, or on the
-last line of a field, instead does a <CODE>REQ_NEXT_FIELD</CODE>.
-<CODE>O_NL_OVERLOAD</CODE> option is off, this special action is
-disabled. <P>
-
-Now, let us consider <CODE>REQ_DEL_PREV</CODE>: <P>
-
-The normal behavior of <CODE>REQ_DEL_PREV</CODE> is to delete the previous
-character. If insert mode is on, and the cursor is at the start of a
-line, and the text on that line will fit on the previous one, it
-instead appends the contents of the current line to the previous one
-and deletes the current line (you may think of this as deleting a
-newline from the field buffer). <P>
-
-However, <CODE>REQ_DEL_PREV</CODE> at the beginning of a field is instead
-treated as a <CODE>REQ_PREV_FIELD</CODE>. <P> If the
-<CODE>O_BS_OVERLOAD</CODE> option is off, this special action is
-disabled and the forms driver just returns <CODE>E_REQUEST_DENIED</CODE>. <P>
-
-See <A HREF="#frmoptions">Form Options</A> for discussion of how to set
-and clear the overload options.
-
-<H3><A NAME="forder">Order Requests</A></H3>
-
-If the type of your field is ordered, and has associated functions
-for getting the next and previous values of the type from a given value,
-there are requests that can fetch that value into the field buffer:
-
-<DL>
-<DT> <CODE>REQ_NEXT_CHOICE</CODE>
-<DD> Place the successor value of the current value in the buffer.
-<DT> <CODE>REQ_PREV_CHOICE</CODE>
-<DD> Place the predecessor value of the current value in the buffer.
-</DL>
-
-Of the built-in field types, only <CODE>TYPE_ENUM</CODE> has built-in successor
-and predecessor functions. When you define a field type of your own
-(see <A HREF="#fcustom">Custom Validation Types</A>), you can associate
-our own ordering functions.
-
-<H3><A NAME="fappcmds">Application Commands</A></H3>
-
-Form requests are represented as integers above the <CODE>curses</CODE> value
-greater than <CODE>KEY_MAX</CODE> and less than or equal to the constant
-<CODE>MAX_COMMAND</CODE>. If your input-virtualization routine returns a
-value above <CODE>MAX_COMMAND</CODE>, the forms driver will ignore it.
-
-<H2><A NAME="fhooks">Field Change Hooks</A></H2>
-
-It is possible to set function hooks to be executed whenever the
-current field or form changes. Here are the functions that support this:
-
-<PRE>
-typedef void (*HOOK)(); /* pointer to function returning void */
-
-int set_form_init(FORM *form, /* form to alter */
- HOOK hook); /* initialization hook */
-
-HOOK form_init(FORM *form); /* form to query */
-
-int set_form_term(FORM *form, /* form to alter */
- HOOK hook); /* termination hook */
-
-HOOK form_term(FORM *form); /* form to query */
-
-int set_field_init(FORM *form, /* form to alter */
- HOOK hook); /* initialization hook */
-
-HOOK field_init(FORM *form); /* form to query */
-
-int set_field_term(FORM *form, /* form to alter */
- HOOK hook); /* termination hook */
-
-HOOK field_term(FORM *form); /* form to query */
-</PRE>
-
-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
-of the hook call.
-
-<DL>
-<DT> form_init
-<DD> This hook is called when the form is posted; also, just after
-each page change operation.
-<DT> field_init
-<DD> This hook is called when the form is posted; also, just after
-each field change
-<DT> field_term
-<DD> 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.
-<DT> form_term
-<DD> This hook is called when the form is unposted; also, just before
-each page change operation.
-</DL>
-
-Calls to these hooks may be triggered
-<OL>
-<LI>When user editing requests are processed by the forms driver
-<LI>When the current page is changed by <CODE>set_current_field()</CODE> call
-<LI>When the current field is changed by a <CODE>set_form_page()</CODE> call
-</OL>
-
-See <A NAME="ffocus">Field Change Commands</A> for discussion of the latter
-two cases. <P>
-
-You can set a default hook for all fields by passing one of the set functions
-a NULL first argument. <P>
-
-You can disable any of these hooks by (re)setting them to NULL, the default
-value.
-
-<H2><A HREF="#ffocus">Field Change Commands</A></H2>
-
-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:
-
-<PRE>
-int set_current_field(FORM *form, /* form to alter */
- FIELD *field); /* field to shift to */
-
-FIELD *current_field(FORM *form); /* form to query */
-
-int field_index(FORM *form, /* form to query */
- FIELD *field); /* field to get index of */
-</PRE>
-
-The function <CODE>field_index()</CODE> returns the index of the given field
-in the given form's field array (the array passed to <CODE>new_form()</CODE> or
-<CODE>set_form_fields()</CODE>). <P>
-
-The initial current field of a form is the first active field on the
-first page. The function <CODE>set_form_fields()</CODE> resets this.<P>
-
-It is also possible to move around by pages.
-
-<PRE>
-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 */
-</PRE>
-
-The initial page of a newly-created form is 0. The function
-<CODE>set_form_fields()</CODE> resets this.
-
-<H2><A NAME="frmoptions">Form Options</A></H2>
-
-Like fields, forms may have control option bits. They can be changed
-or queried with these functions:
-
-<PRE>
-int set_form_opts(FORM *form, /* form to alter */
- int attr); /* attribute to set */
-
-int form_opts_on(FORM *form, /* form to alter */
- int attr); /* attributes to turn on */
-
-int form_opts_off(FORM *form, /* form to alter */
- int attr); /* attributes to turn off */
-
-int form_opts(FORM *form); /* form to query */
-</PRE>
-
-By default, all options are on. Here are the available option bits:
-
-<DL>
-<DT> O_NL_OVERLOAD
-<DD> Enable overloading of <CODE>REQ_NEW_LINE</CODE> as described in <A
-NAME="fedit">Editing Requests</A>. 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
-<CODE>REQ_NEXT_FIELD</CODE> never arise.
-<DT> O_BS_OVERLOAD
-<DD> Enable overloading of <CODE>REQ_DEL_PREV</CODE> as described in
-<A NAME="fedit">Editing Requests</A>.
-</DL>
-
-The option values are bit-masks and can be composed with logical-or in
-the obvious way.
-
-<H2><A NAME="fcustom">Custom Validation Types</A></H2>
-
-The <CODE>form</CODE> library gives you the capability to define custom
-validation types of your own. Further, the optional additional arguments
-of <CODE>set_field_type</CODE> effectively allow you to parameterize validation
-types. Most of the complications in the validation-type interface have to
-do with the handling of the additional arguments within custom validation
-functions.
-
-<H3><A NAME="flinktypes">Union Types</A></H3>
-
-The simplest way to create a custom data type is to compose it from two
-preexisting ones:
-
-<PRE>
-FIELD *link_fieldtype(FIELDTYPE *type1,
- FIELDTYPE *type2);
-</PRE>
-
-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 <CODE>set_field_type()</CODE> call later requires arguments, the new
-composite type expects all arguments for the first type, than all arguments
-for the second. Order functions (see <A HREF="#forder">Order Requests</A>)
-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.
-
-<H3><A NAME="fnewtypes">New Field Types</A></H3>
-
-To create a field type from scratch, you need to specify one or both of the
-following things:
-
-<UL>
-<LI>A character-validation function, to check each character as it is entered.
-<LI>A field-validation function to be applied on exit from the field.
-</UL>
-
-Here's how you do that:
-<PRE>
-typedef int (*HOOK)(); /* pointer to function returning int */
-
-FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
- HOOK c_validate) /* character validator */
-
-
-int free_fieldtype(FIELDTYPE *ftype); /* type to free */
-</PRE>
-
-At least one of the arguments of <CODE>new_fieldtype()</CODE> must be
-non-NULL. The forms driver will automatically call the new type's
-validation functions at appropriate points in processing a field of
-the new type. <P>
-
-The function <CODE>free_fieldtype()</CODE> deallocates the argument
-fieldtype, freeing all storage associated with it. <P>
-
-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. <P>
-
-A character validator gets the character passed in as a first argument.
-It too should return TRUE if the character is valid, FALSE otherwise.
-
-<H3><A NAME="fcheckargs">Validation Function Arguments</A></H3>
-
-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 <EM>pile</EM>) built from any of the
-field-type-specific arguments passed to <CODE>set_field_type()</CODE>. If
-no such arguments are defined for the field type, this pile pointer
-argument will be NULL. <P>
-
-In order to arrange for such arguments to be passed to your validation
-functions, you must associate a small set of storage-management functions
-with the type. The forms driver will use these to synthesize a pile
-from the trailing arguments of each <CODE>set_field_type()</CODE> argument, and
-a pointer to the pile will be passed to the validation functions. <P>
-
-Here is how you make the association:
-
-<PRE>
-typedef char *(*PTRHOOK)(); /* pointer to function returning (char *) */
-typedef void (*VOIDHOOK)(); /* pointer to function returning void */
-
-int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
- PTRHOOK make_str, /* make structure from args */
- PTRHOOK copy_str, /* make copy of structure */
- VOIDHOOK free_str); /* free structure storage */
-</PRE>
-
-Here is how the storage-management hooks are used:
-
-<DL>
-<DT> <CODE>make_str</CODE>
-<DD> This function is called by <CODE>set_field_type()</CODE>. It gets one
-argument, a <CODE>va_list</CODE> of the type-specific arguments passed to
-<CODE>set_field_type()</CODE>. It is expected to return a pile pointer to a data
-structure that encapsulates those arguments.
-<DT> <CODE>copy_str</CODE>
-<DD> 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 the pile copy.
-<DT> <CODE>free_str</CODE>
-<DD> 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.
-</DL>
-
-The <CODE>make_str</CODE> and <CODE>copy_str</CODE> 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.
-
-<H3><A NAME="fcustorder">Order Functions For Custom Types</A></H3>
-
-Some custom field types are simply ordered in the same well-defined way
-that <CODE>TYPE_ENUM</CODE> is. For such types, it is possible to define
-successor and predecessor functions to support the <CODE>REQ_NEXT_CHOICE</CODE>
-and <CODE>REQ_PREV_CHOICE</CODE> requests. Here's how:
-
-<PRE>
-typedef int (*INTHOOK)(); /* pointer to function returning int */
-
-int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
- INTHOOK succ, /* get successor value */
- INTHOOK pred); /* get predecessor value */
-</PRE>
-
-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 <CODE>field_buffer()</CODE> to read the
-current value, and <CODE>set_field_buffer()</CODE> 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.
-
-<H3><A NAME="fcustprobs">Avoiding Problems</A></H3>
-
-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. <P>
-
-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 <CODE>ncurses</CODE> library has been specifically exempted from
-the package copyright to support this. <P>
-
-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.
-</BODY>
-</HTML>
diff --git a/ncurses-5.2/doc/ncurses-intro.doc b/ncurses-5.2/doc/ncurses-intro.doc
deleted file mode 100644
index 669b0b3..0000000
--- a/ncurses-5.2/doc/ncurses-intro.doc
+++ /dev/null
@@ -1,2502 +0,0 @@
-
- Writing Programs with NCURSES
-
- by Eric S. Raymond and Zeyd M. Ben-Halim
- updates since release 1.9.9e by Thomas Dickey
-
- Contents
-
- * Introduction
- + A Brief History of Curses
- + Scope of This Document
- + Terminology
- * The Curses Library
- + An Overview of Curses
- o Compiling Programs using Curses
- o Updating the Screen
- o Standard Windows and Function Naming Conventions
- o Variables
- + Using the Library
- o Starting up
- o Output
- o Input
- o Using Forms Characters
- o Character Attributes and Color
- o Mouse Interfacing
- o Finishing Up
- + Function Descriptions
- o Initialization and Wrapup
- o Causing Output to the Terminal
- o Low-Level Capability Access
- o Debugging
- + Hints, Tips, and Tricks
- o Some Notes of Caution
- o Temporarily Leaving ncurses Mode
- o Using ncurses under xterm
- o Handling Multiple Terminal Screens
- o Testing for Terminal Capabilities
- o Tuning for Speed
- o Special Features of ncurses
- + Compatibility with Older Versions
- o Refresh of Overlapping Windows
- o Background Erase
- + XSI Curses Conformance
- * The Panels Library
- + Compiling With the Panels Library
- + Overview of Panels
- + Panels, Input, and the Standard Screen
- + Hiding Panels
- + Miscellaneous Other Facilities
- * The Menu Library
- + Compiling with the menu Library
- + Overview of Menus
- + Selecting items
- + Menu Display
- + Menu Windows
- + Processing Menu Input
- + Miscellaneous Other Features
- * The Forms Library
- + Compiling with the forms Library
- + Overview of Forms
- + Creating and Freeing Fields and Forms
- + Fetching and Changing Field Attributes
- o Fetching Size and Location Data
- o Changing the Field Location
- o The Justification Attribute
- o Field Display Attributes
- o Field Option Bits
- o Field Status
- o Field User Pointer
- + Variable-Sized Fields
- + Field Validation
- o TYPE_ALPHA
- o TYPE_ALNUM
- o TYPE_ENUM
- o TYPE_INTEGER
- o TYPE_NUMERIC
- o TYPE_REGEXP
- + Direct Field Buffer Manipulation
- + Attributes of Forms
- + Control of Form Display
- + Input Processing in the Forms Driver
- o Page Navigation Requests
- o Inter-Field Navigation Requests
- o Intra-Field Navigation Requests
- o Scrolling Requests
- o Field Editing Requests
- o Order Requests
- o Application Commands
- + Field Change Hooks
- + Field Change Commands
- + Form Options
- + Custom Validation Types
- o Union Types
- o New Field Types
- o Validation Function Arguments
- o Order Functions For Custom Types
- o Avoiding Problems
- _________________________________________________________________
-
- Introduction
-
- 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
- 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
- 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
- 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 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
- using an X toolkit.
-
-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
- 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
- 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
- curses API with some clearly marked extensions. It includes the
- following System V curses features:
- * 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.
- * Support for pads (windows of larger than screen size on which the
- 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
- changes in attributes.
-
- 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.
-
- 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
- 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
- Foundation, which holds the copyright on ncurses. Contact the current
- 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
- 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
- construction and sequences of menus and fill-in forms.
-
-Terminology
-
- In this document, the following terminology is used with reasonable
- consistency:
-
- 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
- other windows on the physical screen.
-
- 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
- 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.
-
- The Curses Library
-
-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
- 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.
-
- 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
- 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
- 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()
- (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
- 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
-
- As hinted above, the routines can use several windows, but two are
- 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
- 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
- desired character as argument. To write to a different window. use the
- routine waddch() (for `w'indow-specific addch()) is provided. This
- convention of prepending function names with a `w' when they are to be
- applied to specific windows is consistent. The only routines which do
- 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
- arguments to the function. For example, the calls
- move(y, x);
- addch(ch);
-
- can be replaced by
- mvaddch(y, x, ch);
-
- and
- wmove(win, y, x);
- waddch(win, 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
- always the first parameter passed.
-
- Variables
-
- 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
-
- The curses.h also introduces some #define constants and types of
- general usefulness:
-
- bool
- boolean type, actually a `char' (e.g., bool doneit;)
-
- TRUE
- boolean `true' flag (1).
-
- FALSE
- boolean `false' flag (0).
-
- ERR
- error flag returned by routines on a failure (-1).
-
- OK
- error flag returned by routines when things go right.
-
-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
- function names and parameters as mentioned above.
-
- Here is a sample program to motivate the discussion:
-#include <curses.h>
-#include <signal.h>
-
-static void finish(int sig);
-
-int
-main(int argc, char *argv[])
-{
- int num = 0;
-
- /* initialize your non-curses data structures here */
-
- (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) echo(); /* echo input - in color */
-
- if (has_colors())
- {
- start_color();
-
- /*
- * Simple color assignment, often all we need. Color pair 0 cannot
- * be redefined. This example uses the same value for the color
- * pair as for the foreground color, though of course that is not
- * necessary:
- */
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_YELLOW, COLOR_BLACK);
- init_pair(4, COLOR_BLUE, COLOR_BLACK);
- init_pair(5, COLOR_CYAN, COLOR_BLACK);
- init_pair(6, COLOR_MAGENTA, COLOR_BLACK);
- init_pair(7, COLOR_WHITE, COLOR_BLACK);
- }
-
- for (;;)
- {
- int c = getch(); /* refresh, accept single keystroke of input */
- attrset(COLOR_PAIR(num % 8));
- num++;
-
- /* process the command keystroke */
- }
-
- finish(0); /* we're done */
-}
-
-static void finish(int sig)
-{
- endwin();
-
- /* do your non-curses wrapup here */
-
- exit(0);
-}
-
- 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
- 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
- cursor to the window's current (y, x) coordinates after updating it.
-
- You can create new windows of your own using the functions newwin(),
- 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
- window.
-
- 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
- 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
- things at once.
-
- The other output functions, such as addstr() and printw(), all call
- 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
- touchwin() is provided to make it look like the entire window has been
- changed, thus making refresh() check the whole subsection of the
- 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
- messed up.
-
- Input
-
- The complementary function to addch() is getch() which, if echo is
- 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,
- 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
- that can do scanf()(3)-style multi-field parsing on window input.
- These pseudo-line-oriented functions turn on echoing while they
- 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
- 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
-
- The addch() function (and some others, including box() and border())
- can accept some pseudo-character arguments which are specially defined
- by ncurses. These are #define values set up in the curses.h header;
- 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
- a recognizable (though ugly) set of ASCII defaults.
-
- Character Attributes and Color
-
- 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.
-
- 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_).
-
- 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.
-
- 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
- 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
- first arguments of the init_pair() values.
-
- 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
- compile-time constant and can be used in initializers.
-
- Mouse Interfacing
-
- 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
- non-ncurses systems.
-
- 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
- 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
- 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
- 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).
-
- 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,
- 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
- 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
- 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
- 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
- can be done.
-
- See the manual page curs_mouse(3X) for full details of the
- mouse-interface functions.
-
- 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
- before exiting.
-
-Function Descriptions
-
- We describe the detailed behavior of some important curses functions
- here, as a supplement to the manual page descriptions.
-
- Initialization and Wrapup
-
- initscr()
- 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
- 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().)
-
- 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
- program will restore the ncurses screen from before the escape.
-
- newterm(type, ofp, ifp)
- 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
- 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.
-
- 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
- current terminal.
-
- delscreen(sp)
- The inverse of newterm(); deallocates the data structures
- associated with a given SCREEN reference.
-
- Causing Output to the Terminal
-
- 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
- cursor.
-
- 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
- physical screen, describing what is actually on the screen, and
- a virtual screen, describing what the programmer wants to have
- 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
- 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
- visually annoying flicker at each update).
-
- Low-Level Capability Access
-
- setupterm(term, filenum, errret)
- 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
- 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
- is returned. The values returned can be 1 (all is well), 0 (no
- such terminal), or -1 (some problem locating the terminfo
- database).
-
- 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
- can also be given as NULL, meaning no error code is wanted. If
- 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)
- and not worry about initialization errors.
-
- After the call to setupterm(), the global variable cur_term is
- 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
- array ttytype[]. Subsequent calls to setupterm() will overwrite
- this array, so you'll have to save it yourself if need be.
-
- Debugging
-
- NOTE: These functions are not part of the standard curses API!
-
- trace()
- 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
- 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).
-
- _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
- to a file called trace in the current directory.
-
- 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
- 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.
-
-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
-
- 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.
-
- 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.
-
- 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.
-
- There is a panels library included in the ncurses distribution that
- does a pretty good job of strengthening the overlapping-windows
- facilities.
-
- 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
- could be open with different sizes.
-
- 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
- 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
- the screen.
-
- 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.
-
- Here is some sample code for shellout:
- addstr("Shelling out...");
- def_prog_mode(); /* save current tty modes */
- endwin(); /* restore original tty modes */
- system("sh"); /* run shell */
- addstr("returned.\n"); /* prepare return message */
- 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
- 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
- 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
- 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
- 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
- the screen is larger.
-
- Finally, ncurses can be configured to provide its own SIGWINCH
- handler, based on resizeterm.
-
- Handling Multiple Terminal Screens
-
- The initscr() function actually calls a function named newterm() to do
- most of its work. If you are writing a program that opens multiple
- 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
- 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
- def_shell_mode and def_prog_mode on each tty yourself.
-
- Testing for Terminal Capabilities
-
- 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
- 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'
- (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
- cursor_address.
-
- 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
- the immedok() option!
-
- Special Features of NCURSES
-
- 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.
-
- 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
- interpretation of any function-key control sequence.
-
- 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
- this feature, which is based on ISO 6429.
-
- 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.
-
-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
- API.
-
- 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
- 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
- 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
- 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
- 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
- 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()
- 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
- single burst of physical I/O that will do all your updates.
-
- Background Erase
-
- 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(),
- 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
- bkgdset() or wbkgdset().
-
- This change in behavior conforms ncurses to System V Release 4 and the
- XSI Curses standard.
-
-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
- and internationalization) are also supported.
-
- One effect of XSI conformance is the change in behavior described
- 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
- prototype-checked) if the macro definition is disabled with #undef.
-
- The Panels Library
-
- The ncurses library by itself provides good support for screen
- 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
- 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
- panels library.
-
- The panel library first appeared in AT&T System V. The version
- documented here is the panel code distributed with ncurses.
-
-Compiling With the Panels Library
-
- 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
- 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.
-
-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
- function (analogous to refresh()) that displays all panels in the deck
- in the proper order to resolve overlaps. The standard window, stdscr,
- is considered below all panels.
-
- Details on the panels functions are available in the man pages. We'll
- 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
- 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
- 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
- operation leaves the panel's depth, contents, and size unchanged.
-
- Two functions (top_panel(), bottom_panel()) are provided for
- 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 panel's screen location, contents, and size unchanged.
-
- The function update_panels() does all the wnoutrefresh() calls needed
- to prepare for doupdate() (which you must call yourself, afterwards).
-
- Typically, you will want to call update_panels() and doupdate() just
- 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
- screen flicker.
-
-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
- panel or unobscured by any other panels.
-
- The stsdcr window is a special case. It is considered below all
- panels. Because changes to panels may obscure parts of stdscr, though,
- you should call update_panels() before doupdate() even when you only
- change stdscr.
-
- 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.
-
- There is presently no way to display changes to one obscured panel
- without repainting all 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
- hidden.
-
- The panel_update code ignores hidden panels. You cannot do top_panel()
- or bottom_panel on a hidden panel(). Other panels operations are
- applicable.
-
-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
- 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
- documentation of set_panel_userptr() and panel_userptr for details.
-
- The Menu Library
-
- 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
- flexible interface.
-
- The menu library first appeared in AT&T System V. The version
- 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>
-
- 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.
-
-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
- frame objects.
-
- The menu can then by posted, that is written to an associated window.
- Actually, each menu has two associated windows; a containing window in
- which the programmer can scribble titles or borders, and a subwindow
- 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
- 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
- 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().
- 3. Create the menu using new_menu().
- 4. Post the menu using menu_post().
- 5. Refresh the screen.
- 6. Process user requests via an input loop.
- 7. Unpost the menu using menu_unpost().
- 8. Free the menu, using free_menu().
- 9. Free the items using free_item().
- 10. Terminate curses.
-
-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
- 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
- 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
- though other option bits might be on.
-
-Menu Display
-
- 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
- * The length of the menu mark string used for highlighting selected
- items
-
- 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 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'
- 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
- 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
- scrollable.
-
- You can scroll it with requests to the menu driver, which will be
- described in the section on menu input handling.
-
- 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 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
- have reasonable defaults which the library allows you to change (see
- the menu_attribs(3x) manual page.
-
-Menu 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.
-
- The outer or frame window is not otherwise touched by the menu
- 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
- 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
- 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
- some equivalent.
-
-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
- routine that maps input characters to menu command codes, and pass its
- output to menu_driver(). The menu command codes are fully documented
- 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
- 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,
- 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
- 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
- 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
- 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
- set_menu_pattern().
-
- 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.
-
-Miscellaneous Other Features
-
- Various menu options can affect the processing and visual appearance
- 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
- 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
- menu_hook(3x).
-
- 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).
-
- The Forms Library
-
- The form library is a curses extension that supports easy programming
- of on-screen forms for data entry and program control.
-
- The form library first appeared in AT&T System V. The version
- 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>
-
- 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.
-
-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
- 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
- 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
- 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
- types, and makes it relatively easy to define new ones.
-
- Once its transaction is completed (or aborted), a form may be unposted
- (that is, undisplayed), and finally freed to make the storage
- 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().
- 3. Create the form using new_form().
- 4. Post the form using form_post().
- 5. Refresh the screen.
- 6. Process user requests via an input loop.
- 7. Unpost the form using form_unpost().
- 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
- possible.
-
- 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.
-
-Creating and Freeing Fields and Forms
-
- The basic function for creating fields is new_field():
-FIELD *new_field(int height, int width, /* new field size */
- int top, int left, /* upper left corner */
- 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
- zero).
-
- 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
- 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
- initially zero.
-
- 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
- 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 */
-
- 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 */
-
- 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.
-
- 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
- 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.
-
- As with duplicated fields, linked fields have attribute bits separate
- 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
- out-of-bounds arguments.
-
- 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;
- 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
- 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
- to a form, but not vice-versa; thus, you will generally free your form
- objects first.
-
-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
- display and editing of the field. Some (for example, the O_STATIC bit)
- 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.
-
- 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
- to mean this field. Changes to it persist as defaults until your forms
- application terminates.
-
- 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 */
- int *top, int *left, /* upper left corner */
- 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
- existing one.
-
- 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().
-
- The Justification Attribute
-
- 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 */
-
- The mode values accepted and returned by this functions are
- preprocessor macros NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or
- JUSTIFY_CENTER.
-
- 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
- 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
- field buffer.
-int set_field_fore(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_fore(FIELD *field); /* field to query */
-
-int set_field_back(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_back(FIELD *field); /* field to query */
-
-int set_field_pad(FIELD *field, /* field to alter */
- int pad); /* pad character to set */
-
-chtype field_pad(FIELD *field);
-
-int set_new_page(FIELD *field, /* field to alter */
- int flag); /* TRUE to force new page */
-
-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
- start of a new form screen.
-
- 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
- with these functions:
-int set_field_opts(FIELD *field, /* field to alter */
- int attr); /* attribute to set */
-
-int field_opts_on(FIELD *field, /* field to alter */
- int attr); /* attributes to turn on */
-
-int field_opts_off(FIELD *field, /* field to alter */
- int attr); /* attributes to turn off */
-
-int field_opts(FIELD *field); /* field to query */
-
- By default, all options are on. Here are the available option bits:
-
- O_VISIBLE
- 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.
-
- 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
- forms application, not the user.
-
- 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
- O_PUBLIC bit to define password fields.
-
- 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
- for help messages.
-
- 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
- (assuming there is one). When this option is off, the word will
- be split across the line break.
-
- O_BLANK
- 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).
-
- 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.
- When this option is off, the user's cursor will hang at the end
- of the field. This option is ignored in dynamic fields that
- have not reached their size limit.
-
- 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
- off on a field, exit from it will invoke a validation check.
-
- 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
- change during forms processing.
-
- O_STATIC
- 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.
-
- 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.
-
- 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
- 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 */
-
- Setting this flag under program control can be useful if you use the
- same form repeatedly, looking for modified fields each time.
-
- Calling field_status() on a field not currently selected for input
- 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
- REQ_VALIDATION request has been processed by the forms driver.
-
-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
- 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
- (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
- initialize the new field's user pointer.
-
-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
- grow right along with the main input buffer.
-
- A one-line dynamic field will have a fixed height (1) but variable
- 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
- 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
- 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
- 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:
- * 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).
- * 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.
- * The call field_info() will retrieve the original static size of
- the field; use dynamic_field_info() to get the actual dynamic
- size.
-
-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
- 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
- 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
- functions:
-int set_field_type(FIELD *field, /* field to alter */
- FIELDTYPE *ftype, /* type to associate */
- ...); /* additional arguments*/
-
-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
- validation of newly-created fields.
-
- Here are the pre-defined validation types:
-
- TYPE_ALPHA
-
- 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
- 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.
-
- TYPE_ALNUM
-
- 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 */
-
- 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.
-
- 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
- codes for U.S. states). It is set up with:
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ENUM, /* type to associate */
- char **valuelist; /* list of possible values */
- int checkcase; /* case-sensitive? */
- int checkunique); /* must specify uniquely? */
-
- 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.
-
- 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.
-
- 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.
-
- The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be
- particularly useful with these fields.
-
- 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 */
-
- 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.
-
- 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).
-
- 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 */
-
- 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.
-
- If the value passes its range check, it is padded with as many
- 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).
-
- TYPE_REGEXP
-
- 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 */
-
- The syntax for regular expressions is that of regcomp(3). The check
- 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
- 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 */
-
- 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 */
-
- 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.
-
- 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
- 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
- or form's initialization or termination hooks, or (3) just after a
- REQ_VALIDATION request has been processed by the forms driver.
-
-Attributes of Forms
-
- 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.
-
- 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 */
- FIELD **fields); /* fields to connect */
-
-char *form_fields(FORM *form); /* fetch fields of form */
-
-int field_count(FORM *form); /* count connect fields */
-
- 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,
- 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.
-
- It may also be null, in which case the old fields are disconnected
- (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
- is NULL.
-
-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
- 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
- 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.
-
- 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.
-
- The outer or frame window is not otherwise touched by the form
- 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
- 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
- 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
- of windows, then use one of these functions:
-int set_form_win(FORM *form, /* form to alter */
- WINDOW *win); /* frame window to connect */
-
-WINDOW *form_win(FORM *form); /* fetch frame window of form */
-
-int set_form_sub(FORM *form, /* form to alter */
- WINDOW *win); /* form subwindow to connect */
-
-WINDOW *form_sub(FORM *form); /* fetch form subwindow of form */
-
- Note that curses operations, including refresh(), on the form, should
- 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
- 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
- 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).
-
- 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
- before handing control back to the forms driver in order to
- re-synchronize it.
-
-Input Processing in the Forms Driver
-
- The function form_driver() handles virtualized input requests for form
- navigation, editing, and validation requests, just as menu_driver does
- for menus (see the section on menu input handling).
-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
- processing request.
-
- 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.
-
- Page Navigation Requests
-
- These requests cause page-level moves through the form, triggering
- display of a new form screen.
-
- REQ_NEXT_PAGE
- Move to the next form page.
-
- REQ_PREV_PAGE
- Move to the previous form page.
-
- REQ_FIRST_PAGE
- Move to the first form page.
-
- REQ_LAST_PAGE
- Move to the last form page.
-
- 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.
-
- Inter-Field Navigation Requests
-
- These requests handle navigation between fields on the same page.
-
- REQ_NEXT_FIELD
- Move to next field.
-
- REQ_PREV_FIELD
- Move to previous field.
-
- REQ_FIRST_FIELD
- Move to the first field.
-
- REQ_LAST_FIELD
- Move to the last field.
-
- REQ_SNEXT_FIELD
- Move to sorted next field.
-
- REQ_SPREV_FIELD
- Move to sorted previous field.
-
- REQ_SFIRST_FIELD
- Move to the sorted first field.
-
- REQ_SLAST_FIELD
- Move to the sorted last field.
-
- REQ_LEFT_FIELD
- Move left to field.
-
- REQ_RIGHT_FIELD
- Move right to field.
-
- REQ_UP_FIELD
- Move up 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
- 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
- sorted-movement requests.
-
- Finally, it is possible to move between fields using visual directions
- up, down, right, and left. To accomplish this, use the third group of
- four requests. Note, however, that the position of a form for purposes
- of these requests is its upper-left corner.
-
- For example, suppose you have a multi-line field B, and two
- single-line fields A and C on the same line with B, with A to the left
- of B and C to the right of B. A REQ_MOVE_RIGHT from A will go to B
- only if A, B, and C all share the same first line; otherwise it will
- skip over B to C.
-
- Intra-Field Navigation Requests
-
- These requests drive movement of the edit cursor within the currently
- selected field.
-
- REQ_NEXT_CHAR
- Move to next character.
-
- REQ_PREV_CHAR
- Move to previous character.
-
- REQ_NEXT_LINE
- Move to next line.
-
- REQ_PREV_LINE
- Move to previous line.
-
- REQ_NEXT_WORD
- Move to next word.
-
- REQ_PREV_WORD
- Move to previous word.
-
- REQ_BEG_FIELD
- Move to beginning of field.
-
- REQ_END_FIELD
- Move to end of field.
-
- REQ_BEG_LINE
- Move to beginning of line.
-
- REQ_END_LINE
- Move to end of line.
-
- REQ_LEFT_CHAR
- Move left in field.
-
- REQ_RIGHT_CHAR
- Move right in field.
-
- REQ_UP_CHAR
- Move up in field.
-
- REQ_DOWN_CHAR
- Move down in field.
-
- 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.
-
- 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
- triggered by editing and intra-field movement (the library scrolls the
- field to keep the cursor visible). It is possible to explicitly
- request scrolling with the following requests:
-
- REQ_SCR_FLINE
- Scroll vertically forward a line.
-
- REQ_SCR_BLINE
- Scroll vertically backward a line.
-
- REQ_SCR_FPAGE
- Scroll vertically forward a page.
-
- REQ_SCR_BPAGE
- Scroll vertically backward a page.
-
- REQ_SCR_FHPAGE
- Scroll vertically forward half a page.
-
- REQ_SCR_BHPAGE
- Scroll vertically backward half a page.
-
- REQ_SCR_FCHAR
- Scroll horizontally forward a character.
-
- REQ_SCR_BCHAR
- Scroll horizontally backward a character.
-
- REQ_SCR_HFLINE
- Scroll horizontally one field width forward.
-
- REQ_SCR_HBLINE
- Scroll horizontally one field width backward.
-
- REQ_SCR_HFHALF
- Scroll horizontally one half field width forward.
-
- 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.
-
- 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
- (insertion is the default.
-
- The following requests support editing the field and changing the edit
- mode:
-
- REQ_INS_MODE
- Set insertion mode.
-
- REQ_OVL_MODE
- Set overlay mode.
-
- REQ_NEW_LINE
- New line request (see below for explanation).
-
- REQ_INS_CHAR
- Insert space at character location.
-
- REQ_INS_LINE
- Insert blank line at character location.
-
- REQ_DEL_CHAR
- Delete character at cursor.
-
- REQ_DEL_PREV
- Delete previous word at cursor.
-
- REQ_DEL_LINE
- Delete line at cursor.
-
- REQ_DEL_WORD
- Delete word at cursor.
-
- REQ_CLR_EOL
- Clear to end of line.
-
- REQ_CLR_EOF
- Clear to end of 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
- field, or on the last line of the field.
-
- First, we consider REQ_NEW_LINE:
-
- The normal behavior of REQ_NEW_LINE in insert mode is to break the
- current line at the position of the edit cursor, inserting the portion
- of the current line after the cursor as a new line following the
- current and moving the cursor to the beginning of that new line (you
- may think of this as inserting a newline in the field buffer).
-
- 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.
-
- However, REQ_NEW_LINE at the beginning of a field, or on the last line
- of a field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD option is
- off, this special action is disabled.
-
- 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
- newline from the field buffer).
-
- However, REQ_DEL_PREV at the beginning of a field is instead treated
- as a REQ_PREV_FIELD.
-
- If the O_BS_OVERLOAD option is off, this special action is disabled
- and the forms driver just returns E_REQUEST_DENIED.
-
- See Form Options for discussion of how to set and clear the overload
- options.
-
- Order Requests
-
- If the type of your field is ordered, and has associated functions for
- getting the next and previous values of the type from a given value,
- there are requests that can fetch that value into the field buffer:
-
- 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.
-
- Of the built-in field types, only TYPE_ENUM has built-in successor and
- predecessor functions. When you define a field type of your own (see
- Custom Validation Types), you can associate our own ordering
- functions.
-
- 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
- above MAX_COMMAND, the forms driver will ignore it.
-
-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
- this:
-typedef void (*HOOK)(); /* pointer to function returning void */
-
-int set_form_init(FORM *form, /* form to alter */
- HOOK hook); /* initialization hook */
-
-HOOK form_init(FORM *form); /* form to query */
-
-int set_form_term(FORM *form, /* form to alter */
- HOOK hook); /* termination hook */
-
-HOOK form_term(FORM *form); /* form to query */
-
-int set_field_init(FORM *form, /* form to alter */
- HOOK hook); /* initialization hook */
-
-HOOK field_init(FORM *form); /* form to query */
-
-int set_field_term(FORM *form, /* form to alter */
- HOOK hook); /* termination hook */
-
-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
- of the hook call.
-
- form_init
- This hook is called when the form is posted; also, just after
- each page change operation.
-
- field_init
- This hook is called when the form is posted; also, just after
- each field change
-
- field_term
- 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.
-
- form_term
- This hook is called when the form is unposted; also, just
- 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
-
- 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
- functions a NULL first argument.
-
- You can disable any of these hooks by (re)setting them to NULL, the
- default value.
-
-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
- accomplish this:
-int set_current_field(FORM *form, /* form to alter */
- FIELD *field); /* field to shift to */
-
-FIELD *current_field(FORM *form); /* form to query */
-
-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
- given form's field array (the array passed to new_form() or
- set_form_fields()).
-
- The initial current field of a form is the first active field on the
- 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 */
-
- The initial page of a newly-created form is 0. The function
- set_form_fields() resets this.
-
-Form Options
-
- 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 */
-
-int form_opts_on(FORM *form, /* form to alter */
- int attr); /* attributes to turn on */
-
-int form_opts_off(FORM *form, /* form to alter */
- int attr); /* attributes to turn off */
-
-int form_opts(FORM *form); /* form to query */
-
- By default, all options are on. Here are the available option bits:
-
- O_NL_OVERLOAD
- Enable overloading of REQ_NEW_LINE as described in Editing
- Requests. The value of this option is ignored on dynamic fields
- that have not reached their size limit; these have no last
- line, so the circumstances for triggering a REQ_NEXT_FIELD
- never arise.
-
- O_BS_OVERLOAD
- Enable overloading of REQ_DEL_PREV as described in Editing
- Requests.
-
- The option values are bit-masks and can be composed with logical-or in
- the obvious way.
-
-Custom Validation Types
-
- 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.
- Most of the complications in the validation-type interface have to do
- with the handling of the additional arguments within custom validation
- functions.
-
- Union Types
-
- The simplest way to create a custom data type is to compose it from
- 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
- contents should be treated as.
-
- New Field Types
-
- To create a field type from scratch, you need to specify one or both
- of the following things:
- * A character-validation function, to check each character as it is
- 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 */
-
-FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
- HOOK c_validate) /* character validator */
-
-
-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
- functions at appropriate points in processing a field of the new type.
-
- The function free_fieldtype() deallocates the argument fieldtype,
- 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
- field.
-
- A character validator gets the character passed in as a first
- argument. It too should return TRUE if the character is valid, FALSE
- otherwise.
-
- 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
- will be NULL.
-
- In order to arrange for such arguments to be passed to your validation
- functions, you must associate a small set of storage-management
- functions with the type. The forms driver will use these to synthesize
- 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.
-
- Here is how you make the association:
-typedef char *(*PTRHOOK)(); /* pointer to function returning (char *) */
-typedef void (*VOIDHOOK)(); /* pointer to function returning void */
-
-int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
- PTRHOOK make_str, /* make structure from args */
- PTRHOOK copy_str, /* make copy of structure */
- VOIDHOOK free_str); /* free structure storage */
-
- Here is how the storage-management hooks are used:
-
- 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
- data structure that encapsulates those arguments.
-
- 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
- the pile copy.
-
- free_str
- 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.
-
- 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.
-
- 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
- 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 */
-
-int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
- 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
- failure.
-
- 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 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
- 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
- predecessor the maximum.
diff --git a/ncurses-5.2/form/Makefile.in b/ncurses-5.2/form/Makefile.in
deleted file mode 100644
index 05af6bc..0000000
--- a/ncurses-5.2/form/Makefile.in
+++ /dev/null
@@ -1,155 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for form source code.
-#
-# This makes the following:
-# libraries (normal/debug/profile/shared)
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LD = @LD@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @CPPFLAGS@ \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(LIBTOOL) $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib -L$(libdir)
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-MK_SHARED_LIB = @MK_SHARED_LIB@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-RANLIB = @RANLIB@
-
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lform -lncurses @LIBS@
-
-AUTO_SRC = \
- ../include/form.h
-
-################################################################################
-all \
-libs \
-install :: $(AUTO_SRC) $(LIBRARIES)
-
-sources : $(AUTO_SRC)
-
-$(DESTDIR)$(libdir) :
- $(srcdir)/../mkinstalldirs $@
-
-# make copies to simplify include-paths while still keeping form's include
-# file in this directory.
-../include/form.h : $(srcdir)/form.h
- -rm -f $@
- cp $(srcdir)/form.h $@
-
-FORM_PRIV_H = \
- $(srcdir)/form.priv.h \
- $(srcdir)/form.h \
- ../include/mf_common.h \
- ../include/curses.h \
- ../include/eti.h
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-../include/mf_common.h \
-../include/eti.h :
- cd ../menu && $(MAKE) $@
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/form/READ.ME b/ncurses-5.2/form/READ.ME
deleted file mode 100644
index dd91693..0000000
--- a/ncurses-5.2/form/READ.ME
+++ /dev/null
@@ -1,15 +0,0 @@
-This is a clone of the form library that is available with typical
-System V curses implementations (ETI).
-
-It is modelled after the documentation that comes for this library with
-a 386 based SVR4 implementation (ESIX).
-
-The development environment was and is an ELF based Linux system.
-
-For things that still need doing, see the TO-DO file in the top-level
-directory.
-
-Juergen Pfeifer
-
-eMail: juergen.pfeifer@gmx.net
-
diff --git a/ncurses-5.2/form/fld_arg.c b/ncurses-5.2/form/fld_arg.c
deleted file mode 100644
index 91ad79f..0000000
--- a/ncurses-5.2/form/fld_arg.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_fieldtype_arg(
-| FIELDTYPE *typ,
-| void * (* const make_arg)(va_list *),
-| void * (* const copy_arg)(const void *),
-| void (* const free_arg)(void *) )
-|
-| Description : Connects to the type additional arguments necessary
-| for a set_field_type call. The various function pointer
-| arguments are:
-| make_arg : allocates a structure for the field
-| specific parameters.
-| copy_arg : duplicate the structure created by
-| make_arg
-| free_arg : Release the memory allocated by make_arg
-| or copy_arg
-|
-| At least make_arg must be non-NULL.
-| You may pass NULL for copy_arg and free_arg if your
-| make_arg function doesn't allocate memory and your
-| arg fits into the storage for a (void*).
-|
-| 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 *))
-{
- if ( !typ || !make_arg )
- RETURN(E_BAD_ARGUMENT);
-
- typ->status |= _HAS_ARGS;
- typ->makearg = make_arg;
- typ->copyarg = copy_arg;
- typ->freearg = free_arg;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void *field_arg(const FIELD *field)
-|
-| Description : Retrieve pointer to the fields argument structure.
-|
-| Return Values : Pointer to structure or NULL if none is defined.
-+--------------------------------------------------------------------------*/
-void *field_arg(const FIELD * field)
-{
- return Normalize_Field(field)->arg;
-}
-
-/* fld_arg.c ends here */
diff --git a/ncurses-5.2/form/fld_attr.c b/ncurses-5.2/form/fld_attr.c
deleted file mode 100644
index ccf0415..0000000
--- a/ncurses-5.2/form/fld_attr.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*----------------------------------------------------------------------------
- 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)\
-{\
- int res = E_BAD_ARGUMENT;\
- if ( attr==A_NORMAL || ((attr & A_ATTRIBUTES)==attr) )\
- {\
- Normalize_Field( field );\
- if ((field -> name) != attr)\
- {\
- field -> name = attr;\
- res = _nc_Synchronize_Attributes( field );\
- }\
- else\
- res = E_OK;\
- }\
- RETURN(res);\
-}
-
-/* "Template" macro to generate a function to get a fields attribute */
-#define GEN_FIELD_ATTR_GET_FCT( name ) \
-chtype field_ ## name (const FIELD * field)\
-{\
- return ( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_fore(FIELD *field, chtype attr)
-|
-| Description : Sets the foreground of the field used to display the
-| field contents.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid attributes
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_SET_FCT( fore )
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : chtype field_fore(const FIELD *)
-|
-| Description : Retrieve fields foreground attribute
-|
-| Return Values : The foreground attribute
-+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_GET_FCT( fore )
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_back(FIELD *field, chtype attr)
-|
-| Description : Sets the background of the field used to display the
-| fields extend.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid attributes
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_SET_FCT( back )
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : chtype field_back(const
-|
-| Description : Retrieve fields background attribute
-|
-| Return Values : The background attribute
-+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_GET_FCT( back )
-
-/* fld_attr.c ends here */
diff --git a/ncurses-5.2/form/fld_current.c b/ncurses-5.2/form/fld_current.c
deleted file mode 100644
index d4b1254..0000000
--- a/ncurses-5.2/form/fld_current.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_current_field(FORM * form,FIELD * field)
-|
-| Description : Set the current field of the form to the specified one.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form or field pointer
-| E_REQUEST_DENIED - field not selectable
-| E_BAD_STATE - called from a hook routine
-| E_INVALID_FIELD - current field can't be left
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int set_current_field(FORM * form, FIELD * field)
-{
- int err = E_OK;
-
- if ( !form || !field )
- RETURN(E_BAD_ARGUMENT);
-
- if ( (form != field->form) || Field_Is_Not_Selectable(field) )
- RETURN(E_REQUEST_DENIED);
-
- if (!(form->status & _POSTED))
- {
- form->current = field;
- form->curpage = field->page;
- }
- else
- {
- if (form->status & _IN_DRIVER)
- err = E_BAD_STATE;
- else
- {
- if (form->current != field)
- {
- if (!_nc_Internal_Validation(form))
- err = E_INVALID_FIELD;
- else
- {
- Call_Hook(form,fieldterm);
- if (field->page != form->curpage)
- {
- Call_Hook(form,formterm);
- err = _nc_Set_Form_Page(form,field->page,field);
- Call_Hook(form,forminit);
- }
- else
- {
- err = _nc_Set_Current_Field(form,field);
- }
- Call_Hook(form,fieldinit);
- _nc_Refresh_Current_Field(form);
- }
- }
- }
- }
- RETURN(err);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *current_field(const FORM * form)
-|
-| Description : Return the current field.
-|
-| Return Values : Pointer to the current field.
-+--------------------------------------------------------------------------*/
-FIELD *current_field(const FORM * form)
-{
- return Normalize_Form(form)->current;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_index(const FIELD * field)
-|
-| Description : Return the index of the field in the field-array of
-| the form.
-|
-| Return Values : >= 0 : field index
-| -1 : fieldpointer invalid or field not connected
-+--------------------------------------------------------------------------*/
-int field_index(const FIELD * field)
-{
- return ( (field && field->form) ? field->index : -1 );
-}
-
-/* fld_current.c ends here */
diff --git a/ncurses-5.2/form/fld_def.c b/ncurses-5.2/form/fld_def.c
deleted file mode 100644
index 7b88693..0000000
--- a/ncurses-5.2/form/fld_def.c
+++ /dev/null
@@ -1,346 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/* this can't be readonly */
-static FIELD default_field = {
- 0, /* status */
- 0, /* rows */
- 0, /* cols */
- 0, /* frow */
- 0, /* fcol */
- 0, /* drows */
- 0, /* dcols */
- 0, /* maxgrow*/
- 0, /* nrow */
- 0, /* nbuf */
- NO_JUSTIFICATION, /* just */
- 0, /* page */
- 0, /* index */
- (int)' ', /* pad */
- A_NORMAL, /* fore */
- A_NORMAL, /* back */
- ALL_FIELD_OPTS, /* opts */
- (FIELD *)0, /* snext */
- (FIELD *)0, /* sprev */
- (FIELD *)0, /* link */
- (FORM *)0, /* form */
- (FIELDTYPE *)0, /* type */
- (char *)0, /* arg */
- (char *)0, /* buf */
- (char *)0 /* usrptr */
-};
-
-FIELD *_nc_Default_Field = &default_field;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : TypeArgument *_nc_Make_Argument(
-| const FIELDTYPE *typ,
-| va_list *ap,
-| int *err )
-|
-| Description : Create an argument structure for the specified type.
-| Use the type-dependant argument list to construct
-| it.
-|
-| 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)
-{
- TypeArgument *res = (TypeArgument *)0;
- TypeArgument *p;
-
- if (typ && (typ->status & _HAS_ARGS))
- {
- assert(err && ap);
- if (typ->status & _LINKED_TYPE)
- {
- p = (TypeArgument *)malloc(sizeof(TypeArgument));
- if (p)
- {
- p->left = _nc_Make_Argument(typ->left ,ap,err);
- p->right = _nc_Make_Argument(typ->right,ap,err);
- return p;
- }
- else
- *err += 1;
- } else
- {
- assert(typ->makearg);
- if ( !(res=(TypeArgument *)typ->makearg(ap)) )
- *err += 1;
- }
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : TypeArgument *_nc_Copy_Argument(const FIELDTYPE *typ,
-| const TypeArgument *argp,
-| int *err )
-|
-| Description : Create a copy of an argument structure for the specified
-| type.
-|
-| 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)
-{
- TypeArgument *res = (TypeArgument *)0;
- TypeArgument *p;
-
- if ( typ && (typ->status & _HAS_ARGS) )
- {
- assert(err && argp);
- if (typ->status & _LINKED_TYPE)
- {
- p = (TypeArgument *)malloc(sizeof(TypeArgument));
- if (p)
- {
- p->left = _nc_Copy_Argument(typ,argp->left ,err);
- p->right = _nc_Copy_Argument(typ,argp->right,err);
- return p;
- }
- *err += 1;
- }
- else
- {
- if (typ->copyarg)
- {
- if (!(res = (TypeArgument *)(typ->copyarg((const void *)argp))))
- *err += 1;
- }
- else
- res = (TypeArgument *)argp;
- }
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void _nc_Free_Argument(const FIELDTYPE *typ,
-| TypeArgument * argp )
-|
-| Description : Release memory associated with the argument structure
-| for the given fieldtype.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void
-_nc_Free_Argument(const FIELDTYPE * typ, TypeArgument * argp)
-{
- if (!typ || !(typ->status & _HAS_ARGS))
- return;
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- _nc_Free_Argument(typ->left ,argp->left );
- _nc_Free_Argument(typ->right,argp->right);
- free(argp);
- }
- else
- {
- if (typ->freearg)
- typ->freearg((void *)argp);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool _nc_Copy_Type( FIELD *dst, FIELD const *src )
-|
-| Description : Copy argument structure of field src to field dst
-|
-| Return Values : TRUE - copy worked
-| FALSE - error occured
-+--------------------------------------------------------------------------*/
-bool
-_nc_Copy_Type(FIELD *dst, FIELD const *src)
-{
- int err = 0;
-
- assert(dst && src);
-
- dst->type = src->type;
- dst->arg = (void *)_nc_Copy_Argument(src->type,(TypeArgument *)(src->arg),&err);
-
- if (err)
- {
- _nc_Free_Argument(dst->type,(TypeArgument *)(dst->arg));
- dst->type = (FIELDTYPE *)0;
- dst->arg = (void *)0;
- return FALSE;
- }
- else
- {
- if (dst->type)
- dst->type->ref++;
- return TRUE;
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void _nc_Free_Type( FIELD *field )
-|
-| Description : Release Argument structure for this field
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void
-_nc_Free_Type(FIELD *field)
-{
- assert(field);
- if (field->type)
- field->type->ref--;
- _nc_Free_Argument(field->type,(TypeArgument *)(field->arg));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *new_field( int rows, int cols,
-| int frow, int fcol,
-| int nrow, int nbuf )
-|
-| Description : Create a new field with this many 'rows' and 'cols',
-| starting at 'frow/fcol' in the subwindow of the form.
-| Allocate 'nrow' off-screen rows and 'nbuf' additional
-| buffers. If an error occurs, errno is set to
-|
-| E_BAD_ARGUMENT - invalid argument
-| E_SYSTEM_ERROR - system error
-|
-| Return Values : Pointer to the new field or NULL if failure.
-+--------------------------------------------------------------------------*/
-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;
-
- if (rows>0 &&
- cols>0 &&
- frow>=0 &&
- fcol>=0 &&
- nrow>=0 &&
- nbuf>=0 &&
- ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field=(FIELD *)malloc(sizeof(FIELD))) )
- {
- *New_Field = default_field;
- New_Field->rows = rows;
- New_Field->cols = cols;
- New_Field->drows = rows + nrow;
- New_Field->dcols = cols;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->nrow = nrow;
- New_Field->nbuf = nbuf;
- New_Field->link = New_Field;
-
- if (_nc_Copy_Type(New_Field,&default_field))
- {
- size_t len;
-
- len = Total_Buffer_Size(New_Field);
- if ((New_Field->buf = (char *)malloc(len)))
- {
- /* Prefill buffers with blanks and insert terminating zeroes
- between buffers */
- int i;
-
- memset(New_Field->buf,' ',len);
- for(i=0;i<=New_Field->nbuf;i++)
- {
- New_Field->buf[(New_Field->drows*New_Field->cols+1)*(i+1)-1]
- = '\0';
- }
- return New_Field;
- }
- }
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR( err );
- return (FIELD *)0;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int free_field( FIELD *field )
-|
-| Description : Frees the storage allocated for the field.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_CONNECTED - field is connected
-+--------------------------------------------------------------------------*/
-int free_field(FIELD * field)
-{
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (field->form)
- RETURN(E_CONNECTED);
-
- if (field == field->link)
- {
- if (field->buf)
- free(field->buf);
- }
- else
- {
- FIELD *f;
-
- for(f=field;f->link != field;f = f->link)
- {}
- f->link = field->link;
- }
- _nc_Free_Type(field);
- free(field);
- RETURN(E_OK);
-}
-
-/* fld_def.c ends here */
diff --git a/ncurses-5.2/form/fld_dup.c b/ncurses-5.2/form/fld_dup.c
deleted file mode 100644
index 1c5301d..0000000
--- a/ncurses-5.2/form/fld_dup.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *dup_field(FIELD *field, int frow, int fcol)
-|
-| Description : Duplicates the field at the specified position. All
-| field attributes and the buffers are copied.
-| If an error occurs, errno is set to
-|
-| E_BAD_ARGUMENT - invalid argument
-| E_SYSTEM_ERROR - system error
-|
-| Return Values : Pointer to the new field or NULL if failure
-+--------------------------------------------------------------------------*/
-FIELD *dup_field(FIELD * field, int frow, int fcol)
-{
- FIELD *New_Field = (FIELD *)0;
- int err = E_BAD_ARGUMENT;
-
- if (field && (frow>=0) && (fcol>=0) &&
- ((err=E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */
- (New_Field=(FIELD *)malloc(sizeof(FIELD))) )
- {
- *New_Field = *_nc_Default_Field;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->link = New_Field;
- New_Field->rows = field->rows;
- New_Field->cols = field->cols;
- New_Field->nrow = field->nrow;
- New_Field->drows = field->drows;
- New_Field->dcols = field->dcols;
- New_Field->maxgrow = field->maxgrow;
- New_Field->nbuf = field->nbuf;
- New_Field->just = field->just;
- New_Field->fore = field->fore;
- New_Field->back = field->back;
- New_Field->pad = field->pad;
- New_Field->opts = field->opts;
- New_Field->usrptr = field->usrptr;
-
- if (_nc_Copy_Type(New_Field,field))
- {
- size_t len;
-
- len = Total_Buffer_Size(New_Field);
- if ( (New_Field->buf=(char *)malloc(len)) )
- {
- memcpy(New_Field->buf,field->buf,len);
- return New_Field;
- }
- }
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR(err);
- return (FIELD *)0;
-}
-
-/* fld_dup.c ends here */
diff --git a/ncurses-5.2/form/fld_ftchoice.c b/ncurses-5.2/form/fld_ftchoice.c
deleted file mode 100644
index bb37073..0000000
--- a/ncurses-5.2/form/fld_ftchoice.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_fieldtype_choice(
-| FIELDTYPE *typ,
-| bool (* const next_choice)(FIELD *,const void *),
-| bool (* const prev_choice)(FIELD *,const void *))
-|
-| Description : Define implementation of enumeration requests.
-|
-| 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 *))
-{
- if ( !typ || !next_choice || !prev_choice )
- RETURN(E_BAD_ARGUMENT);
-
- typ->status |= _HAS_CHOICE;
- typ->next = next_choice;
- typ->prev = prev_choice;
- RETURN(E_OK);
-}
-
-/* fld_ftchoice.c ends here */
diff --git a/ncurses-5.2/form/fld_ftlink.c b/ncurses-5.2/form/fld_ftlink.c
deleted file mode 100644
index 1cb80d1..0000000
--- a/ncurses-5.2/form/fld_ftlink.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELDTYPE *link_fieldtype(
-| FIELDTYPE *type1,
-| FIELDTYPE *type2)
-|
-| Description : Create a new fieldtype built from the two given types.
-| They are connected by an logical 'OR'.
-| If an error occurs, errno is set to
-| E_BAD_ARGUMENT - invalid arguments
-| E_SYSTEM_ERROR - system error (no memory)
-|
-| Return Values : Fieldtype pointer or NULL if error occured.
-+--------------------------------------------------------------------------*/
-FIELDTYPE *link_fieldtype(FIELDTYPE * type1, FIELDTYPE * type2)
-{
- FIELDTYPE *nftyp = (FIELDTYPE *)0;
-
- if ( type1 && type2 )
- {
- nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
- if (nftyp)
- {
- *nftyp = *_nc_Default_FieldType;
- nftyp->status |= _LINKED_TYPE;
- if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS) )
- nftyp->status |= _HAS_ARGS;
- if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE) )
- nftyp->status |= _HAS_CHOICE;
- nftyp->left = type1;
- nftyp->right = type2;
- type1->ref++;
- type2->ref++;
- }
- else
- {
- SET_ERROR( E_SYSTEM_ERROR );
- }
- }
- else
- {
- SET_ERROR( E_BAD_ARGUMENT );
- }
- return nftyp;
-}
-
-/* fld_ftlink.c ends here */
diff --git a/ncurses-5.2/form/fld_info.c b/ncurses-5.2/form/fld_info.c
deleted file mode 100644
index 7c50b1d..0000000
--- a/ncurses-5.2/form/fld_info.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_info(const FIELD *field,
-| int *rows, int *cols,
-| int *frow, int *fcol,
-| int *nrow, int *nbuf)
-|
-| Description : Retrieve infos about the fields creation parameters.
-|
-| 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)
-{
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (rows) *rows = field->rows;
- if (cols) *cols = field->cols;
- if (frow) *frow = field->frow;
- if (fcol) *fcol = field->fcol;
- if (nrow) *nrow = field->nrow;
- if (nbuf) *nbuf = field->nbuf;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int dynamic_field_info(const FIELD *field,
-| int *drows, int *dcols,
-| int *maxgrow)
-|
-| Description : Retrieve informations about a dynamic fields current
-| dynamic parameters.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument
-+--------------------------------------------------------------------------*/
-int dynamic_field_info(const FIELD *field,
- int *drows, int *dcols, int *maxgrow)
-{
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (drows) *drows = field->drows;
- if (dcols) *dcols = field->dcols;
- if (maxgrow) *maxgrow = field->maxgrow;
-
- RETURN(E_OK);
-}
-
-/* fld_info.c ends here */
diff --git a/ncurses-5.2/form/fld_just.c b/ncurses-5.2/form/fld_just.c
deleted file mode 100644
index 7015654..0000000
--- a/ncurses-5.2/form/fld_just.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_just(FIELD *field, int just)
-|
-| Description : Set the fields type of justification.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - one of the arguments was incorrect
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int set_field_just(FIELD * field, int just)
-{
- int res = E_BAD_ARGUMENT;
-
- if ((just==NO_JUSTIFICATION) ||
- (just==JUSTIFY_LEFT) ||
- (just==JUSTIFY_CENTER) ||
- (just==JUSTIFY_RIGHT) )
- {
- Normalize_Field( field );
- if (field->just != just)
- {
- field->just = just;
- res = _nc_Synchronize_Attributes( field );
- }
- else
- res = E_OK;
- }
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_just( const FIELD *field )
-|
-| Description : Retrieve the fields type of justification
-|
-| Return Values : The justification type.
-+--------------------------------------------------------------------------*/
-int field_just(const FIELD * field)
-{
- return Normalize_Field( field )->just;
-}
-
-/* fld_just.c ends here */
diff --git a/ncurses-5.2/form/fld_link.c b/ncurses-5.2/form/fld_link.c
deleted file mode 100644
index 164f51b..0000000
--- a/ncurses-5.2/form/fld_link.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *link_field(FIELD *field, int frow, int fcol)
-|
-| Description : Duplicates the field at the specified position. The
-| new field shares its buffers with the original one,
-| the attributes are independent.
-| If an error occurs, errno is set to
-|
-| E_BAD_ARGUMENT - invalid argument
-| E_SYSTEM_ERROR - system error
-|
-| Return Values : Pointer to the new field or NULL if failure
-+--------------------------------------------------------------------------*/
-FIELD *link_field(FIELD * field, int frow, int fcol)
-{
- FIELD *New_Field = (FIELD *)0;
- int err = E_BAD_ARGUMENT;
-
- if (field && (frow>=0) && (fcol>=0) &&
- ((err=E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field = (FIELD *)malloc(sizeof(FIELD))) )
- {
- *New_Field = *_nc_Default_Field;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->link = field->link;
- field->link = New_Field;
- New_Field->buf = field->buf;
- New_Field->rows = field->rows;
- New_Field->cols = field->cols;
- New_Field->nrow = field->nrow;
- New_Field->nbuf = field->nbuf;
- New_Field->drows = field->drows;
- New_Field->dcols = field->dcols;
- New_Field->maxgrow= field->maxgrow;
- New_Field->just = field->just;
- New_Field->fore = field->fore;
- New_Field->back = field->back;
- New_Field->pad = field->pad;
- New_Field->opts = field->opts;
- New_Field->usrptr = field->usrptr;
- if (_nc_Copy_Type(New_Field,field))
- return New_Field;
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR( err );
- return (FIELD *)0;
-}
-
-/* fld_link.c ends here */
diff --git a/ncurses-5.2/form/fld_max.c b/ncurses-5.2/form/fld_max.c
deleted file mode 100644
index cca8dc5..0000000
--- a/ncurses-5.2/form/fld_max.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_max_field(FIELD *field, int maxgrow)
-|
-| Description : Set the maximum growth for a dynamic field. If maxgrow=0
-| the field may grow to any possible size.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument
-+--------------------------------------------------------------------------*/
-int set_max_field(FIELD *field, int maxgrow)
-{
- if (!field || (maxgrow<0))
- RETURN(E_BAD_ARGUMENT);
- else
- {
- bool single_line_field = Single_Line_Field(field);
-
- if (maxgrow>0)
- {
- if (( single_line_field && (maxgrow < field->dcols)) ||
- (!single_line_field && (maxgrow < field->drows)))
- RETURN(E_BAD_ARGUMENT);
- }
- field->maxgrow = maxgrow;
- field->status &= ~_MAY_GROW;
- if (!(field->opts & O_STATIC))
- {
- if ((maxgrow==0) ||
- ( single_line_field && (field->dcols < maxgrow)) ||
- (!single_line_field && (field->drows < maxgrow)))
- field->status |= _MAY_GROW;
- }
- }
- RETURN(E_OK);
-}
-
-/* fld_max.c ends here */
diff --git a/ncurses-5.2/form/fld_move.c b/ncurses-5.2/form/fld_move.c
deleted file mode 100644
index 2293477..0000000
--- a/ncurses-5.2/form/fld_move.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int move_field(FIELD *field,int frow, int fcol)
-|
-| Description : Moves the disconnected field to the new location in
-| the forms subwindow.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument passed
-| E_CONNECTED - field is connected
-+--------------------------------------------------------------------------*/
-int move_field(FIELD *field, int frow, int fcol)
-{
- if ( !field || (frow<0) || (fcol<0) )
- RETURN(E_BAD_ARGUMENT);
-
- if (field->form)
- RETURN(E_CONNECTED);
-
- field->frow = frow;
- field->fcol = fcol;
- RETURN(E_OK);
-}
-
-/* fld_move.c ends here */
-
diff --git a/ncurses-5.2/form/fld_newftyp.c b/ncurses-5.2/form/fld_newftyp.c
deleted file mode 100644
index b45ebd8..0000000
--- a/ncurses-5.2/form/fld_newftyp.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-static FIELDTYPE const default_fieldtype = {
- 0, /* status */
- 0L, /* reference count */
- (FIELDTYPE *)0, /* pointer to left operand */
- (FIELDTYPE *)0, /* pointer to right operand */
- NULL, /* makearg function */
- NULL, /* copyarg function */
- NULL, /* freearg function */
- NULL, /* field validation function */
- NULL, /* Character check function */
- NULL, /* enumerate next function */
- NULL /* enumerate previous function */
-};
-
-const FIELDTYPE* _nc_Default_FieldType = &default_fieldtype;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELDTYPE *new_fieldtype(
-| bool (* const field_check)(FIELD *,const void *),
-| bool (* const char_check) (int, const void *) )
-|
-| Description : Create a new fieldtype. The application programmer must
-| write a field_check and a char_check function and give
-| them as input to this call.
-| If an error occurs, errno is set to
-| E_BAD_ARGUMENT - invalid arguments
-| E_SYSTEM_ERROR - system error (no memory)
-|
-| Return Values : Fieldtype pointer or NULL if error occured
-+--------------------------------------------------------------------------*/
-FIELDTYPE *new_fieldtype(
- bool (* const field_check)(FIELD *,const void *),
- bool (* const char_check) (int,const void *) )
-{
- FIELDTYPE *nftyp = (FIELDTYPE *)0;
-
- if ( (field_check) || (char_check) )
- {
- nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
- if (nftyp)
- {
- *nftyp = default_fieldtype;
- nftyp->fcheck = field_check;
- nftyp->ccheck = char_check;
- }
- else
- {
- SET_ERROR( E_SYSTEM_ERROR );
- }
- }
- else
- {
- SET_ERROR( E_BAD_ARGUMENT );
- }
- return nftyp;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int free_fieldtype(FIELDTYPE *typ)
-|
-| Description : Release the memory associated with this fieldtype.
-|
-| Return Values : E_OK - success
-| E_CONNECTED - there are fields referencing the type
-| E_BAD_ARGUMENT - invalid fieldtype pointer
-+--------------------------------------------------------------------------*/
-int free_fieldtype(FIELDTYPE *typ)
-{
- if (!typ)
- RETURN(E_BAD_ARGUMENT);
-
- if (typ->ref!=0)
- RETURN(E_CONNECTED);
-
- if (typ->status & _RESIDENT)
- RETURN(E_CONNECTED);
-
- if (typ->status & _LINKED_TYPE)
- {
- if (typ->left ) typ->left->ref--;
- if (typ->right) typ->right->ref--;
- }
- free(typ);
- RETURN(E_OK);
-}
-
-/* fld_newftyp.c ends here */
diff --git a/ncurses-5.2/form/fld_opts.c b/ncurses-5.2/form/fld_opts.c
deleted file mode 100644
index 234634b..0000000
--- a/ncurses-5.2/form/fld_opts.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*----------------------------------------------------------------------------
- Field-Options manipulation routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_opts(FIELD *field, Field_Options opts)
-|
-| Description : Turns on the named options for this field and turns
-| off all the remaining options.
-|
-| Return Values : E_OK - success
-| E_CURRENT - the field is the current field
-| E_BAD_ARGUMENT - invalid options
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int set_field_opts(FIELD * field, Field_Options opts)
-{
- int res = E_BAD_ARGUMENT;
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- res = _nc_Synchronize_Options( Normalize_Field(field), opts );
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Field_Options field_opts(const FIELD *field)
-|
-| Description : Retrieve the fields options.
-|
-| Return Values : The options.
-+--------------------------------------------------------------------------*/
-Field_Options field_opts(const FIELD * field)
-{
- return ALL_FIELD_OPTS & Normalize_Field( field )->opts;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_opts_on(FIELD *field, Field_Options opts)
-|
-| Description : Turns on the named options for this field and all the
-| remaining options are unchanged.
-|
-| Return Values : E_OK - success
-| E_CURRENT - the field is the current field
-| E_BAD_ARGUMENT - invalid options
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int field_opts_on(FIELD * field, Field_Options opts)
-{
- int res = E_BAD_ARGUMENT;
-
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- {
- Normalize_Field( field );
- res = _nc_Synchronize_Options( field, field->opts | opts );
- }
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_opts_off(FIELD *field, Field_Options opts)
-|
-| Description : Turns off the named options for this field and all the
-| remaining options are unchanged.
-|
-| Return Values : E_OK - success
-| E_CURRENT - the field is the current field
-| E_BAD_ARGUMENT - invalid options
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int field_opts_off(FIELD * field, Field_Options opts)
-{
- int res = E_BAD_ARGUMENT;
-
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- {
- Normalize_Field( field );
- res = _nc_Synchronize_Options( field, field->opts & ~opts );
- }
- RETURN(res);
-}
-
-/* fld_opts.c ends here */
diff --git a/ncurses-5.2/form/fld_pad.c b/ncurses-5.2/form/fld_pad.c
deleted file mode 100644
index 4598340..0000000
--- a/ncurses-5.2/form/fld_pad.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_pad(FIELD *field, int ch)
-|
-| Description : Set the pad character used to fill the field. This must
-| be a printable character.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer or pad character
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int set_field_pad(FIELD * field, int ch)
-{
- int res = E_BAD_ARGUMENT;
-
- Normalize_Field( field );
- if (isprint((unsigned char)ch))
- {
- if (field->pad != ch)
- {
- field->pad = ch;
- res = _nc_Synchronize_Attributes( field );
- }
- else
- res = E_OK;
- }
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_pad(const FIELD *field)
-|
-| Description : Retrieve the fields pad character.
-|
-| Return Values : The pad character.
-+--------------------------------------------------------------------------*/
-int field_pad(const FIELD * field)
-{
- return Normalize_Field( field )->pad;
-}
-
-/* fld_pad.c ends here */
diff --git a/ncurses-5.2/form/fld_page.c b/ncurses-5.2/form/fld_page.c
deleted file mode 100644
index 408e712..0000000
--- a/ncurses-5.2/form/fld_page.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_new_page(FIELD *field, bool new_page_flag)
-|
-| Description : Marks the field as the beginning of a new page of
-| the form.
-|
-| Return Values : E_OK - success
-| E_CONNECTED - field is connected
-+--------------------------------------------------------------------------*/
-int set_new_page(FIELD * field, bool new_page_flag)
-{
- Normalize_Field(field);
- if (field->form)
- RETURN(E_CONNECTED);
-
- if (new_page_flag)
- field->status |= _NEWPAGE;
- else
- field->status &= ~_NEWPAGE;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool new_page(const FIELD *field)
-|
-| Description : Retrieve the info whether or not the field starts a
-| new page on the form.
-|
-| Return Values : TRUE - field starts a new page
-| FALSE - field doesn't start a new page
-+--------------------------------------------------------------------------*/
-bool new_page(const FIELD * field)
-{
- return (Normalize_Field(field)->status & _NEWPAGE) ? TRUE : FALSE;
-}
-
-/* fld_page.c ends here */
diff --git a/ncurses-5.2/form/fld_stat.c b/ncurses-5.2/form/fld_stat.c
deleted file mode 100644
index ee6831b..0000000
--- a/ncurses-5.2/form/fld_stat.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_status(FIELD *field, bool status)
-|
-| Description : Set or clear the 'changed' indication flag for that
-| fields primary buffer.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-int set_field_status(FIELD * field, bool status)
-{
- Normalize_Field( field );
-
- if (status)
- field->status |= _CHANGED;
- else
- field->status &= ~_CHANGED;
-
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool field_status(const FIELD *field)
-|
-| Description : Retrieve the value of the 'changed' indication flag
-| for that fields primary buffer.
-|
-| Return Values : TRUE - buffer has been changed
-| FALSE - buffer has not been changed
-+--------------------------------------------------------------------------*/
-bool field_status(const FIELD * field)
-{
- return ((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
-}
-
-/* fld_stat.c ends here */
diff --git a/ncurses-5.2/form/fld_type.c b/ncurses-5.2/form/fld_type.c
deleted file mode 100644
index 1e0657c..0000000
--- a/ncurses-5.2/form/fld_type.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_type(FIELD *field, FIELDTYPE *type,...)
-|
-| Description : Associate the specified fieldtype with the field.
-| Certain field types take additional arguments. Look
-| at the spec of the field types !
-|
-| Return Values : E_OK - success
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int set_field_type(FIELD *field,FIELDTYPE *type, ...)
-{
- va_list ap;
- int res = E_SYSTEM_ERROR;
- int err = 0;
-
- va_start(ap,type);
-
- Normalize_Field(field);
- _nc_Free_Type(field);
-
- field->type = type;
- field->arg = (void *)_nc_Make_Argument(field->type,&ap,&err);
-
- if (err)
- {
- _nc_Free_Argument(field->type,(TypeArgument *)(field->arg));
- field->type = (FIELDTYPE *)0;
- field->arg = (void *)0;
- }
- else
- {
- res = E_OK;
- if (field->type)
- field->type->ref++;
- }
-
- va_end(ap);
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELDTYPE *field_type(const FIELD *field)
-|
-| Description : Retrieve the associated fieldtype for this field.
-|
-| Return Values : Pointer to fieldtype of NULL if none is defined.
-+--------------------------------------------------------------------------*/
-FIELDTYPE *field_type(const FIELD * field)
-{
- return Normalize_Field(field)->type;
-}
-
-/* fld_type.c ends here */
diff --git a/ncurses-5.2/form/fld_user.c b/ncurses-5.2/form/fld_user.c
deleted file mode 100644
index 7ffca9c..0000000
--- a/ncurses-5.2/form/fld_user.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_userptr(FIELD *field, void *usrptr)
-|
-| Description : Set the pointer that is reserved in any field to store
-| application relevant informations
-|
-| Return Values : E_OK - on success
-+--------------------------------------------------------------------------*/
-int set_field_userptr(FIELD * field, void *usrptr)
-{
- Normalize_Field( field )->usrptr = usrptr;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void *field_userptr(const FIELD *field)
-|
-| Description : Return the pointer that is reserved in any field to
-| store application relevant informations.
-|
-| Return Values : Value of pointer. If no such pointer has been set,
-| NULL is returned
-+--------------------------------------------------------------------------*/
-void *field_userptr(const FIELD *field)
-{
- return Normalize_Field( field )->usrptr;
-}
-
-/* fld_user.c ends here */
diff --git a/ncurses-5.2/form/form.h b/ncurses-5.2/form/form.h
deleted file mode 100644
index 40ae0a3..0000000
--- a/ncurses-5.2/form/form.h
+++ /dev/null
@@ -1,388 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#ifndef FORM_H
-#define FORM_H
-
-#include <curses.h>
-#include <eti.h>
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-typedef int Form_Options;
-typedef int Field_Options;
-
- /**********
- * _PAGE *
- **********/
-
-typedef struct {
- short pmin; /* index of first field on page */
- short pmax; /* index of last field on page */
- short smin; /* index of top leftmost field on page */
- short smax; /* index of bottom rightmost field on page */
-} _PAGE;
-
- /**********
- * FIELD *
- **********/
-
-typedef struct fieldnode {
- unsigned short status; /* flags */
- short rows; /* size in rows */
- short cols; /* size in cols */
- short frow; /* first row */
- short fcol; /* first col */
- int drows; /* dynamic rows */
- int dcols; /* dynamic cols */
- int maxgrow; /* maximum field growth */
- int nrow; /* offscreen rows */
- short nbuf; /* additional buffers */
- short just; /* justification */
- short page; /* page on form */
- short index; /* into form -> field */
- int pad; /* pad character */
- chtype fore; /* foreground attribute */
- chtype back; /* background attribute */
- Field_Options opts; /* options */
- struct fieldnode * snext; /* sorted order pointer */
- struct fieldnode * sprev; /* sorted order pointer */
- struct fieldnode * link; /* linked field chain */
- struct formnode * form; /* containing form */
- struct typenode * type; /* field type */
- void * arg; /* argument for type */
- char * buf; /* field buffers */
- void * usrptr; /* user pointer */
-} FIELD;
-
- /**************
- * FIELDTYPE *
- **************/
-
-typedef struct typenode {
- unsigned short status; /* flags */
- long ref; /* reference count */
- struct typenode * left; /* ptr to operand for | */
- struct typenode * right; /* ptr to operand for | */
-
- void* (*makearg)(va_list *); /* make fieldtype arg */
- void* (*copyarg)(const void *); /* copy fieldtype arg */
- void (*freearg)(void *); /* free fieldtype arg */
-
- bool (*fcheck)(FIELD *,const void *); /* field validation */
- bool (*ccheck)(int,const void *); /* character validation */
-
- bool (*next)(FIELD *,const void *); /* enumerate next value */
- bool (*prev)(FIELD *,const void *); /* enumerate prev value */
-
-} FIELDTYPE;
-
- /*********
- * FORM *
- *********/
-
-typedef struct formnode {
- unsigned short status; /* flags */
- short rows; /* size in rows */
- short cols; /* size in cols */
- int currow; /* current row in field window*/
- int curcol; /* current col in field window*/
- int toprow; /* in scrollable field window */
- int begincol; /* in horiz. scrollable field */
- short maxfield; /* number of fields */
- short maxpage; /* number of pages */
- short curpage; /* index into page */
- Form_Options opts; /* options */
- WINDOW * win; /* window */
- WINDOW * sub; /* subwindow */
- WINDOW * w; /* window for current field */
- FIELD ** field; /* field [maxfield] */
- FIELD * current; /* current field */
- _PAGE * page; /* page [maxpage] */
- void * usrptr; /* user pointer */
-
- void (*forminit)(struct formnode *);
- void (*formterm)(struct formnode *);
- void (*fieldinit)(struct formnode *);
- void (*fieldterm)(struct formnode *);
-
-} FORM;
-
-typedef void (*Form_Hook)(FORM *);
-
- /***************************
- * miscellaneous #defines *
- ***************************/
-
-/* field justification */
-#define NO_JUSTIFICATION (0)
-#define JUSTIFY_LEFT (1)
-#define JUSTIFY_CENTER (2)
-#define JUSTIFY_RIGHT (3)
-
-/* field options */
-#define O_VISIBLE (0x0001)
-#define O_ACTIVE (0x0002)
-#define O_PUBLIC (0x0004)
-#define O_EDIT (0x0008)
-#define O_WRAP (0x0010)
-#define O_BLANK (0x0020)
-#define O_AUTOSKIP (0x0040)
-#define O_NULLOK (0x0080)
-#define O_PASSOK (0x0100)
-#define O_STATIC (0x0200)
-
-/* form options */
-#define O_NL_OVERLOAD (0x0001)
-#define O_BS_OVERLOAD (0x0002)
-
-/* form driver commands */
-#define REQ_NEXT_PAGE (KEY_MAX + 1) /* move to next page */
-#define REQ_PREV_PAGE (KEY_MAX + 2) /* move to previous page */
-#define REQ_FIRST_PAGE (KEY_MAX + 3) /* move to first page */
-#define REQ_LAST_PAGE (KEY_MAX + 4) /* move to last page */
-
-#define REQ_NEXT_FIELD (KEY_MAX + 5) /* move to next field */
-#define REQ_PREV_FIELD (KEY_MAX + 6) /* move to previous field */
-#define REQ_FIRST_FIELD (KEY_MAX + 7) /* move to first field */
-#define REQ_LAST_FIELD (KEY_MAX + 8) /* move to last field */
-#define REQ_SNEXT_FIELD (KEY_MAX + 9) /* move to sorted next field */
-#define REQ_SPREV_FIELD (KEY_MAX + 10) /* move to sorted prev field */
-#define REQ_SFIRST_FIELD (KEY_MAX + 11) /* move to sorted first field */
-#define REQ_SLAST_FIELD (KEY_MAX + 12) /* move to sorted last field */
-#define REQ_LEFT_FIELD (KEY_MAX + 13) /* move to left to field */
-#define REQ_RIGHT_FIELD (KEY_MAX + 14) /* move to right to field */
-#define REQ_UP_FIELD (KEY_MAX + 15) /* move to up to field */
-#define REQ_DOWN_FIELD (KEY_MAX + 16) /* move to down to field */
-
-#define REQ_NEXT_CHAR (KEY_MAX + 17) /* move to next char in field */
-#define REQ_PREV_CHAR (KEY_MAX + 18) /* move to prev char in field */
-#define REQ_NEXT_LINE (KEY_MAX + 19) /* move to next line in field */
-#define REQ_PREV_LINE (KEY_MAX + 20) /* move to prev line in field */
-#define REQ_NEXT_WORD (KEY_MAX + 21) /* move to next word in field */
-#define REQ_PREV_WORD (KEY_MAX + 22) /* move to prev word in field */
-#define REQ_BEG_FIELD (KEY_MAX + 23) /* move to first char in field */
-#define REQ_END_FIELD (KEY_MAX + 24) /* move after last char in fld */
-#define REQ_BEG_LINE (KEY_MAX + 25) /* move to beginning of line */
-#define REQ_END_LINE (KEY_MAX + 26) /* move after last char in line */
-#define REQ_LEFT_CHAR (KEY_MAX + 27) /* move left in field */
-#define REQ_RIGHT_CHAR (KEY_MAX + 28) /* move right in field */
-#define REQ_UP_CHAR (KEY_MAX + 29) /* move up in field */
-#define REQ_DOWN_CHAR (KEY_MAX + 30) /* move down in field */
-
-#define REQ_NEW_LINE (KEY_MAX + 31) /* insert/overlay new line */
-#define REQ_INS_CHAR (KEY_MAX + 32) /* insert blank char at cursor */
-#define REQ_INS_LINE (KEY_MAX + 33) /* insert blank line at cursor */
-#define REQ_DEL_CHAR (KEY_MAX + 34) /* delete char at cursor */
-#define REQ_DEL_PREV (KEY_MAX + 35) /* delete char before cursor */
-#define REQ_DEL_LINE (KEY_MAX + 36) /* delete line at cursor */
-#define REQ_DEL_WORD (KEY_MAX + 37) /* delete line at cursor */
-#define REQ_CLR_EOL (KEY_MAX + 38) /* clear to end of line */
-#define REQ_CLR_EOF (KEY_MAX + 39) /* clear to end of field */
-#define REQ_CLR_FIELD (KEY_MAX + 40) /* clear entire field */
-#define REQ_OVL_MODE (KEY_MAX + 41) /* begin overlay mode */
-#define REQ_INS_MODE (KEY_MAX + 42) /* begin insert mode */
-#define REQ_SCR_FLINE (KEY_MAX + 43) /* scroll field forward a line */
-#define REQ_SCR_BLINE (KEY_MAX + 44) /* scroll field backward a line */
-#define REQ_SCR_FPAGE (KEY_MAX + 45) /* scroll field forward a page */
-#define REQ_SCR_BPAGE (KEY_MAX + 46) /* scroll field backward a page */
-#define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */
-#define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */
-#define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */
-#define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */
-#define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */
-#define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */
-#define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */
-#define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */
-
-#define REQ_VALIDATION (KEY_MAX + 55) /* validate field */
-#define REQ_NEXT_CHOICE (KEY_MAX + 56) /* display next field choice */
-#define REQ_PREV_CHOICE (KEY_MAX + 57) /* display prev field choice */
-
-#define MIN_FORM_COMMAND (KEY_MAX + 1) /* used by form_driver */
-#define MAX_FORM_COMMAND (KEY_MAX + 57) /* used by form_driver */
-
-#if defined(MAX_COMMAND)
-# if (MAX_FORM_COMMAND > MAX_COMMAND)
-# error Something is wrong -- MAX_FORM_COMMAND is greater than MAX_COMMAND
-# elif (MAX_COMMAND != (KEY_MAX + 128))
-# error Something is wrong -- MAX_COMMAND is already inconsistently defined.
-# endif
-#else
-# define MAX_COMMAND (KEY_MAX + 128)
-#endif
-
- /*************************
- * standard field types *
- *************************/
-extern FIELDTYPE *TYPE_ALPHA,
- *TYPE_ALNUM,
- *TYPE_ENUM,
- *TYPE_INTEGER,
- *TYPE_NUMERIC,
- *TYPE_REGEXP;
-
- /************************************
- * built-in additional field types *
- * They are not defined in SVr4 *
- ************************************/
-extern FIELDTYPE *TYPE_IPV4; /* Internet IP Version 4 address */
-
- /***********************
- * Default objects *
- ***********************/
-extern FORM *_nc_Default_Form;
-extern FIELD *_nc_Default_Field;
-
-
- /***********************
- * FIELDTYPE routines *
- ***********************/
-extern FIELDTYPE
- *new_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 *,
- void * (* const make_arg)(va_list *),
- void * (* const copy_arg)(const void *),
- void (* const free_arg)(void *)),
- set_fieldtype_choice (FIELDTYPE *,
- 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 *);
-
- /******************
- * 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 *);
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* FORM_H */
diff --git a/ncurses-5.2/form/form.priv.h b/ncurses-5.2/form/form.priv.h
deleted file mode 100644
index 886121c..0000000
--- a/ncurses-5.2/form/form.priv.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "mf_common.h"
-#include "form.h"
-
-/* form status values */
-#define _OVLMODE (0x04) /* Form is in overlay mode */
-#define _WINDOW_MODIFIED (0x10) /* Current field window has been modified */
-#define _FCHECK_REQUIRED (0x20) /* Current field needs validation */
-
-/* field status values */
-#define _CHANGED (0x01) /* Field has been changed */
-#define _NEWTOP (0x02) /* Vertical scrolling occured */
-#define _NEWPAGE (0x04) /* field begins new page of form */
-#define _MAY_GROW (0x08) /* dynamic field may still grow */
-
-/* fieldtype status values */
-#define _LINKED_TYPE (0x01) /* Type is a linked type */
-#define _HAS_ARGS (0x02) /* Type has arguments */
-#define _HAS_CHOICE (0x04) /* Type has choice methods */
-#define _RESIDENT (0x08) /* Type is builtin */
-
-/* This are the field options required to be a selectable field in field
- navigation requests */
-#define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
-
-/* If form is NULL replace form argument by default-form */
-#define Normalize_Form(form) ((form)=(form)?(form):_nc_Default_Form)
-
-/* If field is NULL replace field argument by default-field */
-#define Normalize_Field(field) ((field)=(field)?(field):_nc_Default_Field)
-
-/* Retrieve forms window */
-#define Get_Form_Window(form) \
- ((form)->sub?(form)->sub:((form)->win?(form)->win:stdscr))
-
-/* Calculate the size for a single buffer for this field */
-#define Buffer_Length(field) ((field)->drows * (field)->dcols)
-
-/* Calculate the total size of all buffers for this field */
-#define Total_Buffer_Size(field) \
- ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) )
-
-/* Logic to determine whether or not a field is single lined */
-#define Single_Line_Field(field) \
- (((field)->rows + (field)->nrow) == 1)
-
-/* Logic to determine whether or not a field is selectable */
-#define Field_Is_Selectable(f) (((f)->opts & O_SELECTABLE)==O_SELECTABLE)
-#define Field_Is_Not_Selectable(f) (((f)->opts & O_SELECTABLE)!=O_SELECTABLE)
-
-typedef struct typearg {
- struct typearg *left;
- struct typearg *right;
-} TypeArgument;
-
-/* This is a dummy request code (normally invalid) to be used internally
- with the form_driver() routine to position to the first active field
- on the form
-*/
-#define FIRST_ACTIVE_MAGIC (-291056)
-
-#define ALL_FORM_OPTS ( \
- O_NL_OVERLOAD |\
- O_BS_OVERLOAD )
-
-#define ALL_FIELD_OPTS ( \
- O_VISIBLE |\
- O_ACTIVE |\
- O_PUBLIC |\
- O_EDIT |\
- O_WRAP |\
- O_BLANK |\
- O_AUTOSKIP|\
- O_NULLOK |\
- O_PASSOK |\
- O_STATIC )
-
-
-#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*);
diff --git a/ncurses-5.2/form/frm_cursor.c b/ncurses-5.2/form/frm_cursor.c
deleted file mode 100644
index 6c311fe..0000000
--- a/ncurses-5.2/form/frm_cursor.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int pos_form_cursor(FORM * form)
-|
-| Description : Moves the form window cursor to the location required
-| by the form driver to resume form processing. This may
-| be needed after the application calls a curses library
-| I/O routine that modifies the cursor position.
-|
-| Return Values : E_OK - Success
-| E_SYSTEM_ERROR - System error.
-| E_BAD_ARGUMENT - Invalid form pointer
-| E_NOT_POSTED - Form is not posted
-+--------------------------------------------------------------------------*/
-int pos_form_cursor(FORM * form)
-{
- int res;
-
- if (!form)
- res = E_BAD_ARGUMENT;
- else
- {
- if (!(form->status & _POSTED))
- res = E_NOT_POSTED;
- else
- res = _nc_Position_Form_Cursor(form);
- }
- RETURN(res);
-}
-
-/* frm_cursor.c ends here */
diff --git a/ncurses-5.2/form/frm_data.c b/ncurses-5.2/form/frm_data.c
deleted file mode 100644
index a96b4f1..0000000
--- a/ncurses-5.2/form/frm_data.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool data_behind(const FORM *form)
-|
-| Description : Check for off-screen data behind. This is nearly trivial
-| becose the begin of a field is fixed.
-|
-| Return Values : TRUE - there are off-screen data behind
-| FALSE - there are no off-screen data behind
-+--------------------------------------------------------------------------*/
-bool data_behind(const FORM *form)
-{
- bool result = FALSE;
-
- if (form && (form->status & _POSTED) && form->current)
- {
- FIELD *field;
-
- field = form->current;
- if (!Single_Line_Field(field))
- {
- result = (form->toprow==0) ? FALSE : TRUE;
- }
- else
- {
- result = (form->begincol==0) ? FALSE : TRUE;
- }
- }
- return(result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char * After_Last_Non_Pad_Position(
-| char *buffer,
-| int len,
-| int pad)
-|
-| Description : Find the last position in the buffer that doesn't
-| contain a padding character.
-|
-| Return Values : The pointer to this position
-+--------------------------------------------------------------------------*/
-INLINE
-static char * After_Last_Non_Pad_Position(char *buffer, int len, int pad)
-{
- char *end = buffer + len;
-
- assert(buffer && len>=0);
- while ( (buffer < end) && (*(end-1)==pad) )
- end--;
-
- return end;
-}
-
-#define SMALL_BUFFER_SIZE (80)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool data_ahead(const FORM *form)
-|
-| Description : Check for off-screen data ahead. This is more difficult
-| because a dynamic field has a variable end.
-|
-| Return Values : TRUE - there are off-screen data ahead
-| FALSE - there are no off-screen data ahead
-+--------------------------------------------------------------------------*/
-bool data_ahead(const FORM *form)
-{
- bool result = FALSE;
-
- if (form && (form->status & _POSTED) && form->current)
- {
- static char buffer[SMALL_BUFFER_SIZE + 1];
- FIELD *field;
- bool large_buffer;
- bool cursor_moved = FALSE;
- char *bp;
- char *found_content;
- int pos;
-
- field = form->current;
- assert(form->w);
-
- large_buffer = (field->cols > SMALL_BUFFER_SIZE);
- if (large_buffer)
- bp = (char *)malloc((size_t)(field->cols) + 1);
- else
- bp = buffer;
-
- assert(bp);
-
- if (Single_Line_Field(field))
- {
- int check_len;
-
- pos = form->begincol + field->cols;
- while (pos < field->dcols)
- {
- check_len = field->dcols - pos;
- if ( check_len >= field->cols )
- check_len = field->cols;
- cursor_moved = TRUE;
- wmove(form->w,0,pos);
- winnstr(form->w,bp,check_len);
- found_content =
- After_Last_Non_Pad_Position(bp,check_len,field->pad);
- if (found_content==bp)
- pos += field->cols;
- else
- {
- result = TRUE;
- break;
- }
- }
- }
- else
- {
- pos = form->toprow + field->rows;
- while (pos < field->drows)
- {
- cursor_moved = TRUE;
- wmove(form->w,pos,0);
- pos++;
- winnstr(form->w,bp,field->cols);
- found_content =
- After_Last_Non_Pad_Position(bp,field->cols,field->pad);
- if (found_content!=bp)
- {
- result = TRUE;
- break;
- }
- }
- }
-
- if (large_buffer)
- free(bp);
-
- if (cursor_moved)
- wmove(form->w,form->currow,form->curcol);
- }
- return(result);
-}
-
-/* frm_data.c ends here */
diff --git a/ncurses-5.2/form/frm_def.c b/ncurses-5.2/form/frm_def.c
deleted file mode 100644
index 489dae3..0000000
--- a/ncurses-5.2/form/frm_def.c
+++ /dev/null
@@ -1,376 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/* this can't be readonly */
-static FORM default_form = {
- 0, /* status */
- 0, /* rows */
- 0, /* cols */
- 0, /* currow */
- 0, /* curcol */
- 0, /* toprow */
- 0, /* begincol */
- -1, /* maxfield */
- -1, /* maxpage */
- -1, /* curpage */
- ALL_FORM_OPTS, /* opts */
- (WINDOW *)0, /* win */
- (WINDOW *)0, /* sub */
- (WINDOW *)0, /* w */
- (FIELD **)0, /* field */
- (FIELD *)0, /* current */
- (_PAGE *)0, /* page */
- (char *)0, /* usrptr */
- NULL, /* forminit */
- NULL, /* formterm */
- NULL, /* fieldinit */
- NULL /* fieldterm */
-};
-
-FORM *_nc_Default_Form = &default_form;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Insert_Field_By_Position(
-| FIELD *new_field,
-| FIELD *head )
-|
-| Description : Insert new_field into sorted fieldlist with head "head"
-| and return new head of sorted fieldlist. Sorting
-| criteria is (row,column). This is a circular list.
-|
-| Return Values : New head of sorted fieldlist
-+--------------------------------------------------------------------------*/
-static FIELD *Insert_Field_By_Position(FIELD *newfield, FIELD *head)
-{
- FIELD *current, *newhead;
-
- assert(newfield);
-
- if (!head)
- { /* empty list is trivial */
- newhead = newfield->snext = newfield->sprev = newfield;
- }
- else
- {
- newhead = current = head;
- while((current->frow < newfield->frow) ||
- ((current->frow==newfield->frow) &&
- (current->fcol < newfield->fcol)) )
- {
- current = current->snext;
- if (current==head)
- { /* We cycled through. Reset head to indicate that */
- head = (FIELD *)0;
- break;
- }
- }
- /* we leave the loop with current pointing to the field after newfield*/
- newfield->snext = current;
- newfield->sprev = current->sprev;
- newfield->snext->sprev = newfield;
- newfield->sprev->snext = newfield;
- if (current==head)
- newhead = newfield;
- }
- return(newhead);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Disconnect_Fields(FORM *form)
-|
-| Description : Break association between form and array of fields.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Disconnect_Fields( FORM * form )
-{
- if (form->field)
- {
- FIELD **fields;
-
- for(fields=form->field;*fields;fields++)
- {
- if (form == (*fields)->form)
- (*fields)->form = (FORM *)0;
- }
-
- form->rows = form->cols = 0;
- form->maxfield = form->maxpage = -1;
- form->field = (FIELD **)0;
- if (form->page)
- free(form->page);
- form->page = (_PAGE *)0;
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Connect_Fields(FORM *form, FIELD **fields)
-|
-| Description : Set association between form and array of fields.
-|
-| Return Values : E_OK - no error
-| E_CONNECTED - a field is already connected
-| E_BAD_ARGUMENT - Invalid form pointer or field array
-| E_SYSTEM_ERROR - not enough memory
-+--------------------------------------------------------------------------*/
-static int Connect_Fields(FORM * form, FIELD ** fields)
-{
- int field_cnt, j;
- int page_nr;
- int maximum_row_in_field, maximum_col_in_field;
- _PAGE *pg;
-
- assert(form);
-
- form->field = fields;
- form->maxfield = 0;
- form->maxpage = 0;
-
- if (!fields)
- RETURN(E_OK);
-
- page_nr = 0;
- /* store formpointer in fields and count pages */
- for(field_cnt=0;fields[field_cnt];field_cnt++)
- {
- if (fields[field_cnt]->form)
- RETURN(E_CONNECTED);
- if ( field_cnt==0 ||
- (fields[field_cnt]->status & _NEWPAGE))
- page_nr++;
- fields[field_cnt]->form = form;
- }
- if (field_cnt==0)
- RETURN(E_BAD_ARGUMENT);
-
- /* allocate page structures */
- if ( (pg = (_PAGE *)malloc(page_nr * sizeof(_PAGE))) != (_PAGE *)0 )
- {
- form->page = pg;
- }
- else
- RETURN(E_SYSTEM_ERROR);
-
- /* Cycle through fields and calculate page boundaries as well as
- size of the form */
- for(j=0;j<field_cnt;j++)
- {
- if (j==0)
- pg->pmin = j;
- else
- {
- if (fields[j]->status & _NEWPAGE)
- {
- pg->pmax = j-1;
- pg++;
- pg->pmin = j;
- }
- }
-
- maximum_row_in_field = fields[j]->frow + fields[j]->rows;
- maximum_col_in_field = fields[j]->fcol + fields[j]->cols;
-
- if (form->rows < maximum_row_in_field)
- form->rows = maximum_row_in_field;
- if (form->cols < maximum_col_in_field)
- form->cols = maximum_col_in_field;
- }
-
- pg->pmax = field_cnt-1;
- form->maxfield = field_cnt;
- form->maxpage = page_nr;
-
- /* Sort fields on form pages */
- for(page_nr = 0;page_nr < form->maxpage; page_nr++)
- {
- FIELD *fld = (FIELD *)0;
- for(j = form->page[page_nr].pmin;j <= form->page[page_nr].pmax;j++)
- {
- fields[j]->index = j;
- fields[j]->page = page_nr;
- fld = Insert_Field_By_Position(fields[j],fld);
- }
- form->page[page_nr].smin = fld->index;
- form->page[page_nr].smax = fld->sprev->index;
- }
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Associate_Fields(FORM *form, FIELD **fields)
-|
-| Description : Set association between form and array of fields.
-| If there are fields, position to first active field.
-|
-| Return Values : E_OK - success
-| any other - error occured
-+--------------------------------------------------------------------------*/
-INLINE static int Associate_Fields(FORM *form, FIELD **fields)
-{
- int res = Connect_Fields(form,fields);
- if (res == E_OK)
- {
- if (form->maxpage>0)
- {
- form->curpage = 0;
- form_driver(form,FIRST_ACTIVE_MAGIC);
- }
- else
- {
- form->curpage = -1;
- form->current = (FIELD *)0;
- }
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FORM *new_form( FIELD **fields )
-|
-| Description : Create new form with given array of fields.
-|
-| Return Values : Pointer to form. NULL if error occured.
-+--------------------------------------------------------------------------*/
-FORM *new_form(FIELD ** fields)
-{
- int err = E_SYSTEM_ERROR;
-
- FORM *form = (FORM *)malloc(sizeof(FORM));
-
- if (form)
- {
- *form = *_nc_Default_Form;
- if ((err=Associate_Fields(form,fields))!=E_OK)
- {
- free_form(form);
- form = (FORM *)0;
- }
- }
-
- if (!form)
- SET_ERROR(err);
-
- return(form);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int free_form( FORM *form )
-|
-| Description : Release internal memory associated with form.
-|
-| Return Values : E_OK - no error
-| E_BAD_ARGUMENT - invalid form pointer
-| E_POSTED - form is posted
-+--------------------------------------------------------------------------*/
-int free_form(FORM * form)
-{
- if ( !form )
- RETURN(E_BAD_ARGUMENT);
-
- if ( form->status & _POSTED)
- RETURN(E_POSTED);
-
- Disconnect_Fields( form );
- if (form->page)
- free(form->page);
- free(form);
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_fields( FORM *form, FIELD **fields )
-|
-| Description : Set a new association of an array of fields to a form
-|
-| Return Values : E_OK - no error
-| E_BAD_ARGUMENT - invalid form pointer
-| E_POSTED - form is posted
-+--------------------------------------------------------------------------*/
-int set_form_fields(FORM * form, FIELD ** fields)
-{
- FIELD **old;
- int res;
-
- if ( !form )
- RETURN(E_BAD_ARGUMENT);
-
- if ( form->status & _POSTED )
- RETURN(E_POSTED);
-
- old = form->field;
- Disconnect_Fields( form );
-
- if( (res = Associate_Fields( form, fields )) != E_OK )
- Connect_Fields( form, old );
-
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD **form_fields( const FORM *form )
-|
-| Description : Retrieve array of fields
-|
-| Return Values : Pointer to field array
-+--------------------------------------------------------------------------*/
-FIELD **form_fields(const FORM * form)
-{
- return (Normalize_Form( form )->field);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_count( const FORM *form )
-|
-| Description : Retrieve number of fields
-|
-| Return Values : Number of fields, -1 if none are defined
-+--------------------------------------------------------------------------*/
-int field_count(const FORM * form)
-{
- return (Normalize_Form( form )->maxfield);
-}
-
-/* frm_def.c ends here */
diff --git a/ncurses-5.2/form/frm_driver.c b/ncurses-5.2/form/frm_driver.c
deleted file mode 100644
index 6ea5dab..0000000
--- a/ncurses-5.2/form/frm_driver.c
+++ /dev/null
@@ -1,3843 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*----------------------------------------------------------------------------
- This is the core module of the form library. It contains the majority
- of the driver routines as well as the form_driver function.
-
- Essentially this module is nearly the whole library. This is because
- all the functions in this module depends on some others in the module,
- so it makes no sense to split them into separate files because they
- will always be linked together. The only acceptable concern is turnaround
- time for this module, but now we have all Pentiums or Riscs, so what!
-
- The driver routines are grouped into nine generic categories:
-
- a) Page Navigation ( all functions prefixed by PN_ )
- The current page of the form is left and some new page is
- entered.
- b) Inter-Field Navigation ( all functions prefixed by FN_ )
- The current field of the form is left and some new field is
- entered.
- c) Intra-Field Navigation ( all functions prefixed by IFN_ )
- The current position in the current field is changed.
- d) Vertical Scrolling ( all functions prefixed by VSC_ )
- Esseantially this is a specialization of Intra-Field navigation.
- It has to check for a multi-line field.
- e) Horizontal Scrolling ( all functions prefixed by HSC_ )
- Esseantially this is a specialization of Intra-Field navigation.
- It has to check for a single-line field.
- f) Field Editing ( all functions prefixed by FE_ )
- The content of the current field is changed
- g) Edit Mode requests ( all functions prefixed by EM_ )
- Switching between insert and overlay mode
- h) Field-Validation requests ( all functions prefixed by FV_ )
- Perform verifications of the field.
- i) Choice requests ( all functions prefixed by CR_ )
- Requests to enumerate possible field values
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Some remarks on the placements of assert() macros :
- I use them only on "strategic" places, i.e. top level entries where
- I want to make sure that things are set correctly. Throughout subordinate
- routines I omit them mostly.
- --------------------------------------------------------------------------*/
-
-/*
-Some options that may effect compatibility in behavior to SVr4 forms,
-but they are here to allow a more intuitive and user friendly behaviour of
-our form implementation. This doesn't affect the API, so we feel it is
-uncritical.
-
-The initial implementation tries to stay very close with the behaviour
-of the original SVr4 implementation, although in some areas it is quite
-clear that this isn't the most appropriate way. As far as possible this
-sources will allow you to build a forms lib that behaves quite similar
-to SVr4, but now and in the future we will give you better options.
-Perhaps at some time we will make this configurable at runtime.
-*/
-
-/* Implement a more user-friendly previous/next word behaviour */
-#define FRIENDLY_PREV_NEXT_WORD (1)
-/* Fix the wrong behaviour for forms with all fields inactive */
-#define FIX_FORM_INACTIVE_BUG (1)
-/* Allow dynamic field growth also when navigating past the end */
-#define GROW_IF_NAVIGATE (1)
-
-/*----------------------------------------------------------------------------
- Forward references to some internally used static functions
- --------------------------------------------------------------------------*/
-static int Inter_Field_Navigation ( int (* const fct) (FORM *), FORM * form );
-static int FN_Next_Field (FORM * form);
-static int FN_Previous_Field (FORM * form);
-static int FE_New_Line(FORM *);
-static int FE_Delete_Previous(FORM *);
-
-/*----------------------------------------------------------------------------
- Macro Definitions.
-
- Some Remarks on that: I use the convention to use UPPERCASE for constants
- defined by Macros. If I provide a macro as a kind of inline routine to
- provide some logic, I use my Upper_Lower case style.
- --------------------------------------------------------------------------*/
-
-/* Calculate the position of a single row in a field buffer */
-#define Position_Of_Row_In_Buffer(field,row) ((row)*(field)->dcols)
-
-/* Calculate start address for the fields buffer# N */
-#define Address_Of_Nth_Buffer(field,N) \
- ((field)->buf + (N)*(1+Buffer_Length(field)))
-
-/* Calculate the start address of the row in the fields specified buffer# N */
-#define Address_Of_Row_In_Nth_Buffer(field,N,row) \
- (Address_Of_Nth_Buffer(field,N) + Position_Of_Row_In_Buffer(field,row))
-
-/* Calculate the start address of the row in the fields primary buffer */
-#define Address_Of_Row_In_Buffer(field,row) \
- Address_Of_Row_In_Nth_Buffer(field,0,row)
-
-/* Calculate the start address of the row in the forms current field
- buffer# N */
-#define Address_Of_Current_Row_In_Nth_Buffer(form,N) \
- Address_Of_Row_In_Nth_Buffer((form)->current,N,(form)->currow)
-
-/* Calculate the start address of the row in the forms current field
- primary buffer */
-#define Address_Of_Current_Row_In_Buffer(form) \
- Address_Of_Current_Row_In_Nth_Buffer(form,0)
-
-/* Calculate the address of the cursor in the forms current field
- primary buffer */
-#define Address_Of_Current_Position_In_Nth_Buffer(form,N) \
- (Address_Of_Current_Row_In_Nth_Buffer(form,N) + (form)->curcol)
-
-/* Calculate the address of the cursor in the forms current field
- buffer# N */
-#define Address_Of_Current_Position_In_Buffer(form) \
- Address_Of_Current_Position_In_Nth_Buffer(form,0)
-
-/* Logic to decide wether or not a field is actually a field with
- vertical or horizontal scrolling */
-#define Is_Scroll_Field(field) \
- (((field)->drows > (field)->rows) || \
- ((field)->dcols > (field)->cols))
-
-/* Logic to decide whether or not a field needs to have an individual window
- instead of a derived window because it contains invisible parts.
- This is true for non-public fields and for scrollable fields. */
-#define Has_Invisible_Parts(field) \
- (!((field)->opts & O_PUBLIC) || \
- Is_Scroll_Field(field))
-
-/* Logic to decide whether or not a field needs justification */
-#define Justification_Allowed(field) \
- (((field)->just != NO_JUSTIFICATION) && \
- (Single_Line_Field(field)) && \
- (((field)->dcols == (field)->cols) && \
- ((field)->opts & O_STATIC)) )
-
-/* Logic to determine whether or not a dynamic field may still grow */
-#define Growable(field) ((field)->status & _MAY_GROW)
-
-/* Macro to set the attributes for a fields window */
-#define Set_Field_Window_Attributes(field,win) \
-( wbkgdset((win),(chtype)((field)->pad | (field)->back)), \
- wattrset((win),(field)->fore) )
-
-/* Logic to decide whether or not a field really appears on the form */
-#define Field_Really_Appears(field) \
- ((field->form) &&\
- (field->form->status & _POSTED) &&\
- (field->opts & O_VISIBLE) &&\
- (field->page == field->form->curpage))
-
-/* Logic to determine whether or not we are on the first position in the
- current field */
-#define First_Position_In_Current_Field(form) \
- (((form)->currow==0) && ((form)->curcol==0))
-
-
-#define Minimum(a,b) (((a)<=(b)) ? (a) : (b))
-#define Maximum(a,b) (((a)>=(b)) ? (a) : (b))
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char *Get_Start_Of_Data(char * buf, int blen)
-|
-| Description : Return pointer to first non-blank position in buffer.
-| If buffer is empty return pointer to buffer itself.
-|
-| Return Values : Pointer to first non-blank position in buffer
-+--------------------------------------------------------------------------*/
-INLINE static char *Get_Start_Of_Data(char * buf, int blen)
-{
- char *p = buf;
- char *end = &buf[blen];
-
- assert(buf && blen>=0);
- while( (p < end) && is_blank(*p) )
- p++;
- return( (p==end) ? buf : p );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char *After_End_Of_Data(char * buf, int blen)
-|
-| Description : Return pointer after last non-blank position in buffer.
-| If buffer is empty, return pointer to buffer itself.
-|
-| Return Values : Pointer to position after last non-blank position in
-| buffer.
-+--------------------------------------------------------------------------*/
-INLINE static char *After_End_Of_Data(char * buf,int blen)
-{
- char *p = &buf[blen];
-
- assert(buf && blen>=0);
- while( (p>buf) && is_blank(p[-1]) )
- p--;
- return( p );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char *Get_First_Whitespace_Character(
-| char * buf, int blen)
-|
-| Description : Position to the first whitespace character.
-|
-| Return Values : Pointer to first whitespace character in buffer.
-+--------------------------------------------------------------------------*/
-INLINE static char *Get_First_Whitespace_Character(char * buf, int blen)
-{
- char *p = buf;
- char *end = &p[blen];
-
- assert(buf && blen>=0);
- while( (p < end) && !is_blank(*p))
- p++;
- return( (p==end) ? buf : p );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char *After_Last_Whitespace_Character(
-| char * buf, int blen)
-|
-| Description : Get the position after the last whitespace character.
-|
-| Return Values : Pointer to position after last whitespace character in
-| buffer.
-+--------------------------------------------------------------------------*/
-INLINE static char *After_Last_Whitespace_Character(char * buf, int blen)
-{
- char *p = &buf[blen];
-
- assert(buf && blen>=0);
- while( (p>buf) && !is_blank(p[-1]) )
- p--;
- return( p );
-}
-
-/* Set this to 1 to use the div_t version. This is a good idea if your
- compiler has an intrinsic div() support. Unfortunately GNU-C has it
- not yet.
- N.B.: This only works if form->curcol follows immediately form->currow
- and both are of type int.
-*/
-#define USE_DIV_T (0)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Adjust_Cursor_Position(
-| FORM * form, const char * pos)
-|
-| Description : Set current row and column of the form to values
-| corresponding to the buffer position.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-INLINE static void Adjust_Cursor_Position(FORM * form, const char * pos)
-{
- FIELD *field;
- int idx;
-
- field = form->current;
- assert( pos >= field->buf && field->dcols > 0);
- idx = (int)( pos - field->buf );
-#if USE_DIV_T
- *((div_t *)&(form->currow)) = div(idx,field->dcols);
-#else
- form->currow = idx / field->dcols;
- form->curcol = idx - field->cols * form->currow;
-#endif
- if ( field->drows < form->currow )
- form->currow = 0;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Buffer_To_Window(
-| const FIELD * field,
-| WINDOW * win)
-|
-| Description : Copy the buffer to the window. If its a multiline
-| field, the buffer is split to the lines of the
-| window without any editing.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Buffer_To_Window(const FIELD * field, WINDOW * win)
-{
- int width, height;
- int len;
- int row;
- char *pBuffer;
-
- assert(win && field);
-
- width = getmaxx(win);
- height = getmaxy(win);
-
- for(row=0, pBuffer=field->buf;
- row < height;
- row++, pBuffer += width )
- {
- if ((len = (int)( After_End_Of_Data( pBuffer, width ) - pBuffer )) > 0)
- {
- wmove( win, row, 0 );
- waddnstr( win, pBuffer, len );
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Window_To_Buffer(
-| WINDOW * win,
-| FIELD * field)
-|
-| Description : Copy the content of the window into the buffer.
-| The multiple lines of a window are simply
-| concatenated into the buffer. Pad characters in
-| the window will be replaced by blanks in the buffer.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Window_To_Buffer(WINDOW * win, FIELD * field)
-{
- int pad;
- int len = 0;
- char *p;
- int row, height;
-
- assert(win && field && field->buf );
-
- pad = field->pad;
- p = field->buf;
- height = getmaxy(win);
-
- for(row=0; (row < height) && (row < field->drows); row++ )
- {
- wmove( win, row, 0 );
- len += winnstr( win, p+len, field->dcols );
- }
- p[len] = '\0';
-
- /* replace visual padding character by blanks in buffer */
- if (pad != C_BLANK)
- {
- int i;
- for(i=0; i<len; i++, p++)
- {
- if (*p==pad)
- *p = C_BLANK;
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Synchronize_Buffer(FORM * form)
-|
-| Description : If there was a change, copy the content of the
-| window into the buffer, so the buffer is synchronized
-| with the windows content. We have to indicate that the
-| buffer needs validation due to the change.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-INLINE static void Synchronize_Buffer(FORM * form)
-{
- if (form->status & _WINDOW_MODIFIED)
- {
- form->status &= ~_WINDOW_MODIFIED;
- form->status |= _FCHECK_REQUIRED;
- Window_To_Buffer(form->w,form->current);
- wmove(form->w,form->currow,form->curcol);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Field_Grown( FIELD *field, int amount)
-|
-| Description : This function is called for growable dynamic fields
-| only. It has to increase the buffers and to allocate
-| a new window for this field.
-| This function has the side effect to set a new
-| field-buffer pointer, the dcols and drows values
-| as well as a new current Window for the field.
-|
-| Return Values : TRUE - field successfully increased
-| FALSE - there was some error
-+--------------------------------------------------------------------------*/
-static bool Field_Grown(FIELD * field, int amount)
-{
- bool result = FALSE;
-
- if (field && Growable(field))
- {
- bool single_line_field = Single_Line_Field(field);
- int old_buflen = Buffer_Length(field);
- int new_buflen;
- int old_dcols = field->dcols;
- int old_drows = field->drows;
- char *oldbuf = field->buf;
- char *newbuf;
-
- int growth;
- FORM *form = field->form;
- bool need_visual_update = ((form != (FORM *)0) &&
- (form->status & _POSTED) &&
- (form->current==field));
-
- if (need_visual_update)
- Synchronize_Buffer(form);
-
- if (single_line_field)
- {
- growth = field->cols * amount;
- if (field->maxgrow)
- growth = Minimum(field->maxgrow - field->dcols,growth);
- field->dcols += growth;
- if (field->dcols == field->maxgrow)
- field->status &= ~_MAY_GROW;
- }
- else
- {
- growth = (field->rows + field->nrow) * amount;
- if (field->maxgrow)
- growth = Minimum(field->maxgrow - field->drows,growth);
- field->drows += growth;
- if (field->drows == field->maxgrow)
- field->status &= ~_MAY_GROW;
- }
- /* drows, dcols changed, so we get really the new buffer length */
- new_buflen = Buffer_Length(field);
- newbuf=(char *)malloc((size_t)Total_Buffer_Size(field));
- if (!newbuf)
- { /* restore to previous state */
- field->dcols = old_dcols;
- field->drows = old_drows;
- if (( single_line_field && (field->dcols!=field->maxgrow)) ||
- (!single_line_field && (field->drows!=field->maxgrow)))
- field->status |= _MAY_GROW;
- return FALSE;
- }
- else
- { /* Copy all the buffers. This is the reason why we can't
- just use realloc().
- */
- int i;
- char *old_bp;
- char *new_bp;
-
- field->buf = newbuf;
- for(i=0;i<=field->nbuf;i++)
- {
- new_bp = Address_Of_Nth_Buffer(field,i);
- old_bp = oldbuf + i*(1+old_buflen);
- memcpy(new_bp,old_bp,(size_t)old_buflen);
- if (new_buflen > old_buflen)
- memset(new_bp + old_buflen,C_BLANK,
- (size_t)(new_buflen - old_buflen));
- *(new_bp + new_buflen) = '\0';
- }
-
- if (need_visual_update)
- {
- WINDOW *new_window = newpad(field->drows,field->dcols);
- if (!new_window)
- { /* restore old state */
- field->dcols = old_dcols;
- field->drows = old_drows;
- field->buf = oldbuf;
- if (( single_line_field &&
- (field->dcols!=field->maxgrow)) ||
- (!single_line_field &&
- (field->drows!=field->maxgrow)))
- field->status |= _MAY_GROW;
- free( newbuf );
- return FALSE;
- }
- assert(form!=(FORM *)0);
- delwin(form->w);
- form->w = new_window;
- Set_Field_Window_Attributes(field,form->w);
- werase(form->w);
- Buffer_To_Window(field,form->w);
- untouchwin(form->w);
- wmove(form->w,form->currow,form->curcol);
- }
-
- free(oldbuf);
- /* reflect changes in linked fields */
- if (field != field->link)
- {
- FIELD *linked_field;
- for(linked_field = field->link;
- linked_field!= field;
- linked_field = linked_field->link)
- {
- linked_field->buf = field->buf;
- linked_field->drows = field->drows;
- linked_field->dcols = field->dcols;
- }
- }
- result = TRUE;
- }
- }
- return(result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Position_Form_Cursor(FORM * form)
-|
-| Description : Position the cursor in the window for the current
-| field to be in sync. with the currow and curcol
-| values.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_SYSTEM_ERROR - form has no current field or
-| field-window
-+--------------------------------------------------------------------------*/
-int
-_nc_Position_Form_Cursor(FORM * form)
-{
- FIELD *field;
- WINDOW *formwin;
-
- if (!form)
- return(E_BAD_ARGUMENT);
-
- if (!form->w || !form->current)
- return(E_SYSTEM_ERROR);
-
- field = form->current;
- formwin = Get_Form_Window(form);
-
- wmove( form->w, form->currow, form->curcol );
- if ( Has_Invisible_Parts(field) )
- {
- /* in this case fieldwin isn't derived from formwin, so we have
- to move the cursor in formwin by hand... */
- wmove(formwin,
- field->frow + form->currow - form->toprow,
- field->fcol + form->curcol - form->begincol);
- wcursyncup(formwin);
- }
- else
- wcursyncup(form->w);
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Refresh_Current_Field(FORM * form)
-|
-| Description : Propagate the changes in the fields window to the
-| window of the form.
-|
-| Return Values : E_OK - on success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_SYSTEM_ERROR - general error
-+--------------------------------------------------------------------------*/
-int
-_nc_Refresh_Current_Field(FORM * form)
-{
- WINDOW *formwin;
- FIELD *field;
-
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (!form->w || !form->current)
- RETURN(E_SYSTEM_ERROR);
-
- field = form->current;
- formwin = Get_Form_Window(form);
-
- if (field->opts & O_PUBLIC)
- {
- if (Is_Scroll_Field(field))
- {
- /* Again, in this case the fieldwin isn't derived from formwin,
- so we have to perform a copy operation. */
- if (Single_Line_Field(field))
- { /* horizontal scrolling */
- if (form->curcol < form->begincol)
- form->begincol = form->curcol;
- else
- {
- if (form->curcol >= (form->begincol + field->cols))
- form->begincol = form->curcol - field->cols + 1;
- }
- copywin(form->w,
- formwin,
- 0,
- form->begincol,
- field->frow,
- field->fcol,
- field->frow,
- field->cols + field->fcol - 1,
- 0);
- }
- else
- { /* A multiline, i.e. vertical scrolling field */
- int row_after_bottom,first_modified_row,first_unmodified_row;
-
- if (field->drows > field->rows)
- {
- row_after_bottom = form->toprow + field->rows;
- if (form->currow < form->toprow)
- {
- form->toprow = form->currow;
- field->status |= _NEWTOP;
- }
- if (form->currow >= row_after_bottom)
- {
- form->toprow = form->currow - field->rows + 1;
- field->status |= _NEWTOP;
- }
- if (field->status & _NEWTOP)
- { /* means we have to copy whole range */
- first_modified_row = form->toprow;
- first_unmodified_row = first_modified_row + field->rows;
- field->status &= ~_NEWTOP;
- }
- else
- { /* we try to optimize : finding the range of touched
- lines */
- first_modified_row = form->toprow;
- while(first_modified_row < row_after_bottom)
- {
- if (is_linetouched(form->w,first_modified_row))
- break;
- first_modified_row++;
- }
- first_unmodified_row = first_modified_row;
- while(first_unmodified_row < row_after_bottom)
- {
- if (!is_linetouched(form->w,first_unmodified_row))
- break;
- first_unmodified_row++;
- }
- }
- }
- else
- {
- first_modified_row = form->toprow;
- first_unmodified_row = first_modified_row + field->rows;
- }
- if (first_unmodified_row != first_modified_row)
- copywin(form->w,
- formwin,
- first_modified_row,
- 0,
- field->frow + first_modified_row - form->toprow,
- field->fcol,
- field->frow + first_unmodified_row - form->toprow - 1,
- field->cols + field->fcol - 1,
- 0);
- }
- wsyncup(formwin);
- }
- else
- { /* if the field-window is simply a derived window, i.e. contains
- no invisible parts, the whole thing is trivial
- */
- wsyncup(form->w);
- }
- }
- untouchwin(form->w);
- return _nc_Position_Form_Cursor(form);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Perform_Justification(
-| FIELD * field,
-| WINDOW * win)
-|
-| Description : Output field with requested justification
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Perform_Justification(FIELD * field, WINDOW * win)
-{
- char *bp;
- int len;
- int col = 0;
-
- bp = Get_Start_Of_Data(field->buf,Buffer_Length(field));
- len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field)) - bp);
-
- if (len>0)
- {
- assert(win && (field->drows == 1) && (field->dcols == field->cols));
-
- switch(field->just)
- {
- case JUSTIFY_LEFT:
- break;
- case JUSTIFY_CENTER:
- col = (field->cols - len)/2;
- break;
- case JUSTIFY_RIGHT:
- col = field->cols - len;
- break;
- default:
- break;
- }
-
- wmove(win,0,col);
- waddnstr(win,bp,len);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Undo_Justification(
-| FIELD * field,
-| WINDOW * win)
-|
-| Description : Display field without any justification, i.e.
-| left justified
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Undo_Justification(FIELD * field, WINDOW * win)
-{
- char *bp;
- int len;
-
- bp = Get_Start_Of_Data(field->buf,Buffer_Length(field));
- len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field))-bp);
-
- if (len>0)
- {
- assert(win);
- wmove(win,0,0);
- waddnstr(win,bp,len);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Char(
-| FIELDTYPE * typ,
-| int ch,
-| TypeArgument *argp)
-|
-| Description : Perform a single character check for character ch
-| according to the fieldtype instance.
-|
-| Return Values : TRUE - Character is valid
-| FALSE - Character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Char(FIELDTYPE * typ, int ch, TypeArgument *argp)
-{
- if (typ)
- {
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return(
- Check_Char(typ->left ,ch,argp->left ) ||
- Check_Char(typ->right,ch,argp->right) );
- }
- else
- {
- if (typ->ccheck)
- return typ->ccheck(ch,(void *)argp);
- }
- }
- return (isprint((unsigned char)ch) ? TRUE : FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Display_Or_Erase_Field(
-| FIELD * field,
-| bool bEraseFlag)
-|
-| Description : Create a subwindow for the field and display the
-| buffer contents (apply justification if required)
-| or simply erase the field.
-|
-| Return Values : E_OK - on success
-| E_SYSTEM_ERROR - some error (typical no memory)
-+--------------------------------------------------------------------------*/
-static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag)
-{
- WINDOW *win;
- WINDOW *fwin;
-
- if (!field)
- return E_SYSTEM_ERROR;
-
- fwin = Get_Form_Window(field->form);
- win = derwin(fwin,
- field->rows,field->cols,field->frow,field->fcol);
-
- if (!win)
- return E_SYSTEM_ERROR;
- else
- {
- if (field->opts & O_VISIBLE)
- Set_Field_Window_Attributes(field,win);
- else
- wattrset(win,getattrs(fwin));
- werase(win);
- }
-
- if (!bEraseFlag)
- {
- if (field->opts & O_PUBLIC)
- {
- if (Justification_Allowed(field))
- Perform_Justification(field,win);
- else
- Buffer_To_Window(field,win);
- }
- field->status &= ~_NEWTOP;
- }
- wsyncup(win);
- delwin(win);
- return E_OK;
-}
-
-/* Macros to preset the bEraseFlag */
-#define Display_Field(field) Display_Or_Erase_Field(field,FALSE)
-#define Erase_Field(field) Display_Or_Erase_Field(field,TRUE)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Synchronize_Field(FIELD * field)
-|
-| Description : Synchronize the windows content with the value in
-| the buffer.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-static int Synchronize_Field(FIELD * field)
-{
- FORM *form;
- int res = E_OK;
-
- if (!field)
- return(E_BAD_ARGUMENT);
-
- if (((form=field->form) != (FORM *)0)
- && Field_Really_Appears(field))
- {
- if (field == form->current)
- {
- form->currow = form->curcol = form->toprow = form->begincol = 0;
- werase(form->w);
-
- if ( (field->opts & O_PUBLIC) && Justification_Allowed(field) )
- Undo_Justification( field, form->w );
- else
- Buffer_To_Window( field, form->w );
-
- field->status |= _NEWTOP;
- res = _nc_Refresh_Current_Field( form );
- }
- else
- res = Display_Field( field );
- }
- field->status |= _CHANGED;
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Synchronize_Linked_Fields(FIELD * field)
-|
-| Description : Propagate the Synchronize_Field function to all linked
-| fields. The first error that occurs in the sequence
-| of updates is the returnvalue.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-static int Synchronize_Linked_Fields(FIELD * field)
-{
- FIELD *linked_field;
- int res = E_OK;
- int syncres;
-
- if (!field)
- return(E_BAD_ARGUMENT);
-
- if (!field->link)
- return(E_SYSTEM_ERROR);
-
- for(linked_field = field->link;
- linked_field!= field;
- linked_field = linked_field->link )
- {
- if (((syncres=Synchronize_Field(linked_field)) != E_OK) &&
- (res==E_OK))
- res = syncres;
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Synchronize_Attributes(FIELD * field)
-|
-| Description : If a fields visual attributes have changed, this
-| routine is called to propagate those changes to the
-| screen.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-int _nc_Synchronize_Attributes(FIELD * field)
-{
- FORM *form;
- int res = E_OK;
- WINDOW *formwin;
-
- if (!field)
- return(E_BAD_ARGUMENT);
-
- if (((form=field->form) != (FORM *)0)
- && Field_Really_Appears(field))
- {
- if (form->current==field)
- {
- Synchronize_Buffer(form);
- Set_Field_Window_Attributes(field,form->w);
- werase(form->w);
- if (field->opts & O_PUBLIC)
- {
- if (Justification_Allowed(field))
- Undo_Justification(field,form->w);
- else
- Buffer_To_Window(field,form->w);
- }
- else
- {
- formwin = Get_Form_Window(form);
- copywin(form->w,formwin,
- 0,0,
- field->frow,field->fcol,
- field->rows-1,field->cols-1,0);
- wsyncup(formwin);
- Buffer_To_Window(field,form->w);
- field->status |= _NEWTOP; /* fake refresh to paint all */
- _nc_Refresh_Current_Field(form);
- }
- }
- else
- {
- res = Display_Field(field);
- }
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Synchronize_Options(FIELD * field,
-| Field_Options newopts)
-|
-| Description : If a fields options have changed, this routine is
-| called to propagate these changes to the screen and
-| to really change the behaviour of the field.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-int
-_nc_Synchronize_Options(FIELD *field, Field_Options newopts)
-{
- Field_Options oldopts;
- Field_Options changed_opts;
- FORM *form;
- int res = E_OK;
-
- if (!field)
- return(E_BAD_ARGUMENT);
-
- oldopts = field->opts;
- changed_opts = oldopts ^ newopts;
- field->opts = newopts;
- form = field->form;
-
- if (form)
- {
- if (form->current == field)
- {
- field->opts = oldopts;
- return(E_CURRENT);
- }
-
- if (form->status & _POSTED)
- {
- if ((form->curpage == field->page))
- {
- if (changed_opts & O_VISIBLE)
- {
- if (newopts & O_VISIBLE)
- res = Display_Field(field);
- else
- res = Erase_Field(field);
- }
- else
- {
- if ((changed_opts & O_PUBLIC) &&
- (newopts & O_VISIBLE))
- res = Display_Field(field);
- }
- }
- }
- }
-
- if (changed_opts & O_STATIC)
- {
- bool single_line_field = Single_Line_Field(field);
- int res2 = E_OK;
-
- if (newopts & O_STATIC)
- { /* the field becomes now static */
- field->status &= ~_MAY_GROW;
- /* if actually we have no hidden columns, justification may
- occur again */
- if (single_line_field &&
- (field->cols == field->dcols) &&
- (field->just != NO_JUSTIFICATION) &&
- Field_Really_Appears(field))
- {
- res2 = Display_Field(field);
- }
- }
- else
- { /* field is no longer static */
- if ((field->maxgrow==0) ||
- ( single_line_field && (field->dcols < field->maxgrow)) ||
- (!single_line_field && (field->drows < field->maxgrow)))
- {
- field->status |= _MAY_GROW;
- /* a field with justification now changes its behaviour,
- so we must redisplay it */
- if (single_line_field &&
- (field->just != NO_JUSTIFICATION) &&
- Field_Really_Appears(field))
- {
- res2 = Display_Field(field);
- }
- }
- }
- if (res2 != E_OK)
- res = res2;
- }
-
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Set_Current_Field(FORM * form,
-| FIELD * newfield)
-|
-| Description : Make the newfield the new current field.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form or field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-int
-_nc_Set_Current_Field(FORM *form, FIELD *newfield)
-{
- FIELD *field;
- WINDOW *new_window;
-
- if (!form || !newfield || !form->current || (newfield->form!=form))
- return(E_BAD_ARGUMENT);
-
- if ( (form->status & _IN_DRIVER) )
- return(E_BAD_STATE);
-
- if (!(form->field))
- return(E_NOT_CONNECTED);
-
- field = form->current;
-
- if ((field!=newfield) ||
- !(form->status & _POSTED))
- {
- if ((form->w) &&
- (field->opts & O_VISIBLE) &&
- (field->form->curpage == field->page))
- {
- _nc_Refresh_Current_Field(form);
- if (field->opts & O_PUBLIC)
- {
- if (field->drows > field->rows)
- {
- if (form->toprow==0)
- field->status &= ~_NEWTOP;
- else
- field->status |= _NEWTOP;
- }
- else
- {
- if (Justification_Allowed(field))
- {
- Window_To_Buffer(form->w,field);
- werase(form->w);
- Perform_Justification(field,form->w);
- wsyncup(form->w);
- }
- }
- }
- delwin(form->w);
- }
-
- field = newfield;
-
- if (Has_Invisible_Parts(field))
- new_window = newpad(field->drows,field->dcols);
- else
- new_window = derwin(Get_Form_Window(form),
- field->rows,field->cols,field->frow,field->fcol);
-
- if (!new_window)
- return(E_SYSTEM_ERROR);
-
- form->current = field;
- form->w = new_window;
- form->status &= ~_WINDOW_MODIFIED;
- Set_Field_Window_Attributes(field,form->w);
-
- if (Has_Invisible_Parts(field))
- {
- werase(form->w);
- Buffer_To_Window(field,form->w);
- }
- else
- {
- if (Justification_Allowed(field))
- {
- werase(form->w);
- Undo_Justification(field,form->w);
- wsyncup(form->w);
- }
- }
-
- untouchwin(form->w);
- }
-
- form->currow = form->curcol = form->toprow = form->begincol = 0;
- return(E_OK);
-}
-
-/*----------------------------------------------------------------------------
- Intra-Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Next_Character(FORM * form)
-|
-| Description : Move to the next character in the field. In a multiline
-| field this wraps at the end of the line.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the rightmost position
-+--------------------------------------------------------------------------*/
-static int IFN_Next_Character(FORM * form)
-{
- FIELD *field = form->current;
-
- if ((++(form->curcol))==field->dcols)
- {
- if ((++(form->currow))==field->drows)
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1)) {
- form->curcol = 0;
- return(E_OK);
- }
-#endif
- form->currow--;
-#if GROW_IF_NAVIGATE
- if (Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
-#endif
- form->curcol--;
- return(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Previous_Character(FORM * form)
-|
-| Description : Move to the previous character in the field. In a
-| multiline field this wraps and the beginning of the
-| line.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the leftmost position
-+--------------------------------------------------------------------------*/
-static int IFN_Previous_Character(FORM * form)
-{
- if ((--(form->curcol))<0)
- {
- if ((--(form->currow))<0)
- {
- form->currow++;
- form->curcol++;
- return(E_REQUEST_DENIED);
- }
- form->curcol = form->current->dcols - 1;
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Next_Line(FORM * form)
-|
-| Description : Move to the beginning of the next line in the field
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the last line
-+--------------------------------------------------------------------------*/
-static int IFN_Next_Line(FORM * form)
-{
- FIELD *field = form->current;
-
- if ((++(form->currow))==field->drows)
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
-#endif
- form->currow--;
- return(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Previous_Line(FORM * form)
-|
-| Description : Move to the beginning of the previous line in the field
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the first line
-+--------------------------------------------------------------------------*/
-static int IFN_Previous_Line(FORM * form)
-{
- if ( (--(form->currow)) < 0 )
- {
- form->currow++;
- return(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Next_Word(FORM * form)
-|
-| Description : Move to the beginning of the next word in the field.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - there is no next word
-+--------------------------------------------------------------------------*/
-static int IFN_Next_Word(FORM * form)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Current_Position_In_Buffer(form);
- char *s;
- char *t;
-
- /* We really need access to the data, so we have to synchronize */
- Synchronize_Buffer(form);
-
- /* Go to the first whitespace after the current position (including
- current position). This is then the startpoint to look for the
- next non-blank data */
- s = Get_First_Whitespace_Character(bp,Buffer_Length(field) -
- (int)(bp - field->buf));
-
- /* Find the start of the next word */
- t = Get_Start_Of_Data(s,Buffer_Length(field) -
- (int)(s - field->buf));
-#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
- else
-#endif
- {
- Adjust_Cursor_Position(form,t);
- return(E_OK);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Previous_Word(FORM * form)
-|
-| Description : Move to the beginning of the previous word in the field.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - there is no previous word
-+--------------------------------------------------------------------------*/
-static int IFN_Previous_Word(FORM * form)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Current_Position_In_Buffer(form);
- char *s;
- char *t;
- bool again = FALSE;
-
- /* We really need access to the data, so we have to synchronize */
- Synchronize_Buffer(form);
-
- s = After_End_Of_Data(field->buf,(int)(bp-field->buf));
- /* s points now right after the last non-blank in the buffer before bp.
- If bp was in a word, s equals bp. In this case we must find the last
- whitespace in the buffer before bp and repeat the game to really find
- the previous word! */
- if (s==bp)
- again = TRUE;
-
- /* And next call now goes backward to look for the last whitespace
- before that, pointing right after this, so it points to the begin
- of the previous word.
- */
- t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf));
-#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
-#endif
- if (again)
- { /* and do it again, replacing bp by t */
- s = After_End_Of_Data(field->buf,(int)(t - field->buf));
- t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf));
-#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
-#endif
- }
- Adjust_Cursor_Position(form,t);
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Beginning_Of_Field(FORM * form)
-|
-| Description : Place the cursor at the first non-pad character in
-| the field.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int IFN_Beginning_Of_Field(FORM * form)
-{
- FIELD *field = form->current;
-
- Synchronize_Buffer(form);
- Adjust_Cursor_Position(form,
- Get_Start_Of_Data(field->buf,Buffer_Length(field)));
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_End_Of_Field(FORM * form)
-|
-| Description : Place the cursor after the last non-pad character in
-| the field. If the field occupies the last position in
-| the buffer, the cursos is positioned on the last
-| character.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int IFN_End_Of_Field(FORM * form)
-{
- FIELD *field = form->current;
- char *pos;
-
- Synchronize_Buffer(form);
- pos = After_End_Of_Data(field->buf,Buffer_Length(field));
- if (pos==(field->buf + Buffer_Length(field)))
- pos--;
- Adjust_Cursor_Position(form,pos);
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Beginning_Of_Line(FORM * form)
-|
-| Description : Place the cursor on the first non-pad character in
-| the current line of the field.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int IFN_Beginning_Of_Line(FORM * form)
-{
- FIELD *field = form->current;
-
- Synchronize_Buffer(form);
- Adjust_Cursor_Position(form,
- Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form),
- field->dcols));
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_End_Of_Line(FORM * form)
-|
-| Description : Place the cursor after the last non-pad character in the
-| current line of the field. If the field occupies the
-| last column in the line, the cursor is positioned on the
-| last character of the line.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int IFN_End_Of_Line(FORM * form)
-{
- FIELD *field = form->current;
- char *pos;
- char *bp;
-
- Synchronize_Buffer(form);
- bp = Address_Of_Current_Row_In_Buffer(form);
- pos = After_End_Of_Data(bp,field->dcols);
- if (pos == (bp + field->dcols))
- pos--;
- Adjust_Cursor_Position(form,pos);
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Left_Character(FORM * form)
-|
-| Description : Move one character to the left in the current line.
-| This doesn't cycle.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - already in first column
-+--------------------------------------------------------------------------*/
-static int IFN_Left_Character(FORM * form)
-{
- if ( (--(form->curcol)) < 0 )
- {
- form->curcol++;
- return(E_REQUEST_DENIED);
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Right_Character(FORM * form)
-|
-| Description : Move one character to the right in the current line.
-| This doesn't cycle.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - already in last column
-+--------------------------------------------------------------------------*/
-static int IFN_Right_Character(FORM * form)
-{
- if ( (++(form->curcol)) == form->current->dcols )
- {
-#if GROW_IF_NAVIGATE
- FIELD *field = form->current;
- if (Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
-#endif
- --(form->curcol);
- return(E_REQUEST_DENIED);
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Up_Character(FORM * form)
-|
-| Description : Move one line up. This doesn't cycle through the lines
-| of the field.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - already in last column
-+--------------------------------------------------------------------------*/
-static int IFN_Up_Character(FORM * form)
-{
- if ( (--(form->currow)) < 0 )
- {
- form->currow++;
- return(E_REQUEST_DENIED);
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Down_Character(FORM * form)
-|
-| Description : Move one line down. This doesn't cycle through the
-| lines of the field.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - already in last column
-+--------------------------------------------------------------------------*/
-static int IFN_Down_Character(FORM * form)
-{
- FIELD *field = form->current;
-
- if ( (++(form->currow)) == field->drows )
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
-#endif
- --(form->currow);
- return(E_REQUEST_DENIED);
- }
- return(E_OK);
-}
-/*----------------------------------------------------------------------------
- END of Intra-Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Vertical scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Generic(FORM *form, int lines)
-|
-| Description : Scroll multi-line field forward (lines>0) or
-| backward (lines<0) this many lines.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - can't scroll
-+--------------------------------------------------------------------------*/
-static int VSC_Generic(FORM *form, int lines)
-{
- FIELD *field = form->current;
- int res = E_REQUEST_DENIED;
- int rows_to_go = (lines > 0 ? lines : -lines);
-
- if (lines > 0)
- {
- if ( (rows_to_go + form->toprow) > (field->drows - field->rows) )
- rows_to_go = (field->drows - field->rows - form->toprow);
-
- if (rows_to_go > 0)
- {
- form->currow += rows_to_go;
- form->toprow += rows_to_go;
- res = E_OK;
- }
- }
- else
- {
- if (rows_to_go > form->toprow)
- rows_to_go = form->toprow;
-
- if (rows_to_go > 0)
- {
- form->currow -= rows_to_go;
- form->toprow -= rows_to_go;
- res = E_OK;
- }
- }
- return(res);
-}
-/*----------------------------------------------------------------------------
- End of Vertical scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Vertical scrolling routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Vertical_Scrolling(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Performs the generic vertical scrolling routines.
-| This has to check for a multi-line field and to set
-| the _NEWTOP flag if scrolling really occured.
-|
-| Return Values : Propagated error code from low-level driver calls
-+--------------------------------------------------------------------------*/
-static int Vertical_Scrolling(int (* const fct) (FORM *), FORM * form)
-{
- int res = E_REQUEST_DENIED;
-
- if (!Single_Line_Field(form->current))
- {
- res = fct(form);
- if (res == E_OK)
- form->current->status |= _NEWTOP;
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Line_Forward(FORM * form)
-|
-| Description : Scroll multi-line field forward a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Line_Forward(FORM * form)
-{
- return VSC_Generic(form,1);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Line_Backward(FORM * form)
-|
-| Description : Scroll multi-line field backward a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Line_Backward(FORM * form)
-{
- return VSC_Generic(form,-1);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Page_Forward(FORM * form)
-|
-| Description : Scroll a multi-line field forward a page
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Page_Forward(FORM * form)
-{
- return VSC_Generic(form,form->current->rows);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Half_Page_Forward(FORM * form)
-|
-| Description : Scroll a multi-line field forward half a page
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Half_Page_Forward(FORM * form)
-{
- return VSC_Generic(form,(form->current->rows + 1)/2);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Page_Backward(FORM * form)
-|
-| Description : Scroll a multi-line field backward a page
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Page_Backward(FORM * form)
-{
- return VSC_Generic(form, -(form->current->rows));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Half_Page_Backward(FORM * form)
-|
-| Description : Scroll a multi-line field backward half a page
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Half_Page_Backward(FORM * form)
-{
- return VSC_Generic(form, -((form->current->rows + 1)/2));
-}
-/*----------------------------------------------------------------------------
- End of Vertical scrolling routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Horizontal scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Generic(FORM *form, int columns)
-|
-| Description : Scroll single-line field forward (columns>0) or
-| backward (columns<0) this many columns.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - can't scroll
-+--------------------------------------------------------------------------*/
-static int HSC_Generic(FORM *form, int columns)
-{
- FIELD *field = form->current;
- int res = E_REQUEST_DENIED;
- int cols_to_go = (columns > 0 ? columns : -columns);
-
- if (columns > 0)
- {
- if ((cols_to_go + form->begincol) > (field->dcols - field->cols))
- cols_to_go = field->dcols - field->cols - form->begincol;
-
- if (cols_to_go > 0)
- {
- form->curcol += cols_to_go;
- form->begincol += cols_to_go;
- res = E_OK;
- }
- }
- else
- {
- if ( cols_to_go > form->begincol )
- cols_to_go = form->begincol;
-
- if (cols_to_go > 0)
- {
- form->curcol -= cols_to_go;
- form->begincol -= cols_to_go;
- res = E_OK;
- }
- }
- return(res);
-}
-/*----------------------------------------------------------------------------
- End of Horizontal scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Horizontal scrolling routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Horizontal_Scrolling(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Performs the generic horizontal scrolling routines.
-| This has to check for a single-line field.
-|
-| Return Values : Propagated error code from low-level driver calls
-+--------------------------------------------------------------------------*/
-static int Horizontal_Scrolling(int (* const fct) (FORM *), FORM * form)
-{
- if (Single_Line_Field(form->current))
- return fct(form);
- else
- return(E_REQUEST_DENIED);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Scroll_Char_Forward(FORM * form)
-|
-| Description : Scroll single-line field forward a character
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int HSC_Scroll_Char_Forward(FORM *form)
-{
- return HSC_Generic(form,1);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Scroll_Char_Backward(FORM * form)
-|
-| Description : Scroll single-line field backward a character
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int HSC_Scroll_Char_Backward(FORM *form)
-{
- return HSC_Generic(form,-1);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Horizontal_Line_Forward(FORM* form)
-|
-| Description : Scroll single-line field forward a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Line_Forward(FORM * form)
-{
- return HSC_Generic(form,form->current->cols);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Horizontal_Half_Line_Forward(FORM* form)
-|
-| Description : Scroll single-line field forward half a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Half_Line_Forward(FORM * form)
-{
- return HSC_Generic(form,(form->current->cols + 1)/2);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Horizontal_Line_Backward(FORM* form)
-|
-| Description : Scroll single-line field backward a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Line_Backward(FORM * form)
-{
- return HSC_Generic(form,-(form->current->cols));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Horizontal_Half_Line_Backward(FORM* form)
-|
-| Description : Scroll single-line field backward half a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Half_Line_Backward(FORM * form)
-{
- return HSC_Generic(form,-((form->current->cols + 1)/2));
-}
-
-/*----------------------------------------------------------------------------
- End of Horizontal scrolling routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Field Editing
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Is_There_Room_For_A_Line(FORM * form)
-|
-| Description : Check whether or not there is enough room in the
-| buffer to enter a whole line.
-|
-| Return Values : TRUE - there is enough space
-| FALSE - there is not enough space
-+--------------------------------------------------------------------------*/
-INLINE static bool Is_There_Room_For_A_Line(FORM * form)
-{
- FIELD *field = form->current;
- char *begin_of_last_line, *s;
-
- Synchronize_Buffer(form);
- begin_of_last_line = Address_Of_Row_In_Buffer(field,(field->drows-1));
- s = After_End_Of_Data(begin_of_last_line,field->dcols);
- return ((s==begin_of_last_line) ? TRUE : FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
-|
-| Description : Checks whether or not there is room for a new character
-| in the current line.
-|
-| Return Values : TRUE - there is room
-| FALSE - there is not enough room (line full)
-+--------------------------------------------------------------------------*/
-INLINE static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
-{
- int last_char_in_line;
-
- wmove(form->w,form->currow,form->current->dcols-1);
- last_char_in_line = (int)(winch(form->w) & A_CHARTEXT);
- wmove(form->w,form->currow,form->curcol);
- return (((last_char_in_line == form->current->pad) ||
- is_blank(last_char_in_line)) ? TRUE : FALSE);
-}
-
-#define There_Is_No_Room_For_A_Char_In_Line(f) \
- !Is_There_Room_For_A_Char_In_Line(f)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Insert_String(
-| FORM * form,
-| int row,
-| char *txt,
-| int len )
-|
-| Description : Insert the 'len' characters beginning at pointer 'txt'
-| into the 'row' of the 'form'. The insertion occurs
-| on the beginning of the row, all other characters are
-| moved to the right. After the text a pad character will
-| be inserted to separate the text from the rest. If
-| necessary the insertion moves characters on the next
-| line to make place for the requested insertion string.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED -
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-static int Insert_String(FORM *form, int row, char *txt, int len)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Row_In_Buffer(field,row);
- int datalen = (int)(After_End_Of_Data(bp,field->dcols) - bp);
- int freelen = field->dcols - datalen;
- int requiredlen = len+1;
- char *split;
- int result = E_REQUEST_DENIED;
- const char *Space = " ";
-
- if (freelen >= requiredlen)
- {
- wmove(form->w,row,0);
- winsnstr(form->w,txt,len);
- wmove(form->w,row,len);
- winsnstr(form->w,Space,1);
- return E_OK;
- }
- else
- { /* we have to move characters on the next line. If we are on the
- last line this may work, if the field is growable */
- if ((row == (field->drows - 1)) && Growable(field))
- {
- if (!Field_Grown(field,1))
- return(E_SYSTEM_ERROR);
- /* !!!Side-Effect : might be changed due to growth!!! */
- bp = Address_Of_Row_In_Buffer(field,row);
- }
-
- if (row < (field->drows - 1))
- {
- split = After_Last_Whitespace_Character(bp,
- (int)(Get_Start_Of_Data(bp + field->dcols - requiredlen ,
- requiredlen) - bp));
- /* split points now to the first character of the portion of the
- line that must be moved to the next line */
- datalen = (int)(split-bp); /* + freelen has to stay on this line */
- freelen = field->dcols - (datalen + freelen); /* for the next line */
-
- if ((result=Insert_String(form,row+1,split,freelen))==E_OK)
- {
- wmove(form->w,row,datalen);
- wclrtoeol(form->w);
- wmove(form->w,row,0);
- winsnstr(form->w,txt,len);
- wmove(form->w,row,len);
- winsnstr(form->w,Space,1);
- return E_OK;
- }
- }
- return(result);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Wrapping_Not_Necessary_Or_Wrapping_Ok(
-| FORM * form)
-|
-| Description : If a character has been entered into a field, it may
-| be that wrapping has to occur. This routine checks
-| whether or not wrapping is required and if so, performs
-| the wrapping.
-|
-| Return Values : E_OK - no wrapping required or wrapping
-| was successfull
-| E_REQUEST_DENIED -
-| E_SYSTEM_ERROR - some system error
-+--------------------------------------------------------------------------*/
-static int Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM * form)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
- bool Last_Row = ((field->drows - 1) == form->currow);
-
- if ( (field->opts & O_WRAP) && /* wrapping wanted */
- (!Single_Line_Field(field)) && /* must be multi-line */
- (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */
- (!Last_Row || Growable(field)) ) /* there are more lines*/
- {
- char *bp;
- char *split;
- int chars_to_be_wrapped;
- int chars_to_remain_on_line;
- if (Last_Row)
- { /* the above logic already ensures, that in this case the field
- is growable */
- if (!Field_Grown(field,1))
- return E_SYSTEM_ERROR;
- }
- bp = Address_Of_Current_Row_In_Buffer(form);
- Window_To_Buffer(form->w,field);
- split = After_Last_Whitespace_Character(bp,field->dcols);
- /* split points to the first character of the sequence to be brought
- on the next line */
- chars_to_remain_on_line = (int)(split - bp);
- chars_to_be_wrapped = field->dcols - chars_to_remain_on_line;
- if (chars_to_remain_on_line > 0)
- {
- if ((result=Insert_String(form,form->currow+1,split,
- chars_to_be_wrapped)) == E_OK)
- {
- wmove(form->w,form->currow,chars_to_remain_on_line);
- wclrtoeol(form->w);
- if (form->curcol >= chars_to_remain_on_line)
- {
- form->currow++;
- form->curcol -= chars_to_remain_on_line;
- }
- return E_OK;
- }
- }
- else
- return E_OK;
- if (result!=E_OK)
- {
- wmove(form->w,form->currow,form->curcol);
- wdelch(form->w);
- Window_To_Buffer(form->w,field);
- result = E_REQUEST_DENIED;
- }
- }
- else
- result = E_OK; /* wrapping was not necessary */
- return(result);
-}
-
-/*----------------------------------------------------------------------------
- Field Editing routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Field_Editing(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Generic routine for field editing requests. The driver
-| routines are only called for editable fields, the
-| _WINDOW_MODIFIED flag is set if editing occured.
-| This is somewhat special due to the overload semantics
-| of the NEW_LINE and DEL_PREV requests.
-|
-| Return Values : Error code from low level drivers.
-+--------------------------------------------------------------------------*/
-static int Field_Editing(int (* const fct) (FORM *), FORM * form)
-{
- int res = E_REQUEST_DENIED;
-
- /* We have to deal here with the specific case of the overloaded
- behaviour of New_Line and Delete_Previous requests.
- They may end up in navigational requests if we are on the first
- character in a field. But navigation is also allowed on non-
- editable fields.
- */
- if ((fct==FE_Delete_Previous) &&
- (form->opts & O_BS_OVERLOAD) &&
- First_Position_In_Current_Field(form) )
- {
- res = Inter_Field_Navigation(FN_Previous_Field,form);
- }
- else
- {
- if (fct==FE_New_Line)
- {
- if ((form->opts & O_NL_OVERLOAD) &&
- First_Position_In_Current_Field(form))
- {
- res = Inter_Field_Navigation(FN_Next_Field,form);
- }
- else
- /* FE_New_Line deals itself with the _WINDOW_MODIFIED flag */
- res = fct(form);
- }
- else
- {
- /* From now on, everything must be editable */
- if (form->current->opts & O_EDIT)
- {
- res = fct(form);
- if (res==E_OK)
- form->status |= _WINDOW_MODIFIED;
- }
- }
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_New_Line(FORM * form)
-|
-| Description : Perform a new line request. This is rather complex
-| compared to other routines in this code due to the
-| rather difficult to understand description in the
-| manuals.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - new line not allowed
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-static int FE_New_Line(FORM * form)
-{
- FIELD *field = form->current;
- char *bp, *t;
- bool Last_Row = ((field->drows - 1)==form->currow);
-
- if (form->status & _OVLMODE)
- {
- if (Last_Row &&
- (!(Growable(field) && !Single_Line_Field(field))))
- {
- if (!(form->opts & O_NL_OVERLOAD))
- return(E_REQUEST_DENIED);
- wclrtoeol(form->w);
- /* we have to set this here, although it is also
- handled in the generic routine. The reason is,
- that FN_Next_Field may fail, but the form is
- definitively changed */
- form->status |= _WINDOW_MODIFIED;
- return Inter_Field_Navigation(FN_Next_Field,form);
- }
- else
- {
- if (Last_Row && !Field_Grown(field,1))
- { /* N.B.: due to the logic in the 'if', LastRow==TRUE
- means here that the field is growable and not
- a single-line field */
- return(E_SYSTEM_ERROR);
- }
- wclrtoeol(form->w);
- form->currow++;
- form->curcol = 0;
- form->status |= _WINDOW_MODIFIED;
- return(E_OK);
- }
- }
- else
- { /* Insert Mode */
- if (Last_Row &&
- !(Growable(field) && !Single_Line_Field(field)))
- {
- if (!(form->opts & O_NL_OVERLOAD))
- return(E_REQUEST_DENIED);
- return Inter_Field_Navigation(FN_Next_Field,form);
- }
- else
- {
- bool May_Do_It = !Last_Row && Is_There_Room_For_A_Line(form);
-
- if (!(May_Do_It || Growable(field)))
- return(E_REQUEST_DENIED);
- if (!May_Do_It && !Field_Grown(field,1))
- return(E_SYSTEM_ERROR);
-
- bp= Address_Of_Current_Position_In_Buffer(form);
- t = After_End_Of_Data(bp,field->dcols - form->curcol);
- wclrtoeol(form->w);
- form->currow++;
- form->curcol=0;
- wmove(form->w,form->currow,form->curcol);
- winsertln(form->w);
- waddnstr(form->w,bp,(int)(t-bp));
- form->status |= _WINDOW_MODIFIED;
- return E_OK;
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Insert_Character(FORM * form)
-|
-| Description : Insert blank character at the cursor position
-|
-| Return Values : E_OK
-| E_REQUEST_DENIED
-+--------------------------------------------------------------------------*/
-static int FE_Insert_Character(FORM * form)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
-
- if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg)))
- {
- bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
-
- if (There_Is_Room ||
- ((Single_Line_Field(field) && Growable(field))))
- {
- if (!There_Is_Room && !Field_Grown(field,1))
- result = E_SYSTEM_ERROR;
- else
- {
- winsch(form->w,(chtype)C_BLANK);
- result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form);
- }
- }
- }
- return result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Insert_Line(FORM * form)
-|
-| Description : Insert a blank line at the cursor position
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - line can not be inserted
-+--------------------------------------------------------------------------*/
-static int FE_Insert_Line(FORM * form)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
-
- if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg)))
- {
- bool Maybe_Done = (form->currow!=(field->drows-1)) &&
- Is_There_Room_For_A_Line(form);
-
- if (!Single_Line_Field(field) &&
- (Maybe_Done || Growable(field)))
- {
- if (!Maybe_Done && !Field_Grown(field,1))
- result = E_SYSTEM_ERROR;
- else
- {
- form->curcol = 0;
- winsertln(form->w);
- result = E_OK;
- }
- }
- }
- return result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Delete_Character(FORM * form)
-|
-| Description : Delete character at the cursor position
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Delete_Character(FORM * form)
-{
- wdelch(form->w);
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Delete_Previous(FORM * form)
-|
-| Description : Delete character before cursor. Again this is a rather
-| difficult piece compared to others due to the overloading
-| semantics of backspace.
-| N.B.: The case of overloaded BS on first field position
-| is already handled in the generic routine.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - Character can't be deleted
-+--------------------------------------------------------------------------*/
-static int FE_Delete_Previous(FORM * form)
-{
- FIELD *field = form->current;
-
- if (First_Position_In_Current_Field(form))
- return E_REQUEST_DENIED;
-
- if ( (--(form->curcol))<0 )
- {
- char *this_line, *prev_line, *prev_end, *this_end;
-
- form->curcol++;
- if (form->status & _OVLMODE)
- return E_REQUEST_DENIED;
-
- prev_line = Address_Of_Row_In_Buffer(field,(form->currow-1));
- this_line = Address_Of_Row_In_Buffer(field,(form->currow));
- Synchronize_Buffer(form);
- prev_end = After_End_Of_Data(prev_line,field->dcols);
- this_end = After_End_Of_Data(this_line,field->dcols);
- if ((int)(this_end-this_line) >
- (field->cols-(int)(prev_end-prev_line)))
- return E_REQUEST_DENIED;
- wdeleteln(form->w);
- Adjust_Cursor_Position(form,prev_end);
- wmove(form->w,form->currow,form->curcol);
- waddnstr(form->w,this_line,(int)(this_end-this_line));
- }
- else
- {
- wmove(form->w,form->currow,form->curcol);
- wdelch(form->w);
- }
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Delete_Line(FORM * form)
-|
-| Description : Delete line at cursor position.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Delete_Line(FORM * form)
-{
- form->curcol = 0;
- wdeleteln(form->w);
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Delete_Word(FORM * form)
-|
-| Description : Delete word at cursor position
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - failure
-+--------------------------------------------------------------------------*/
-static int FE_Delete_Word(FORM * form)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Current_Row_In_Buffer(form);
- char *ep = bp + field->dcols;
- char *cp = bp + form->curcol;
- char *s;
-
- Synchronize_Buffer(form);
- if (is_blank(*cp))
- return E_REQUEST_DENIED; /* not in word */
-
- /* move cursor to begin of word and erase to end of screen-line */
- Adjust_Cursor_Position(form,
- After_Last_Whitespace_Character(bp,form->curcol));
- wmove(form->w,form->currow,form->curcol);
- wclrtoeol(form->w);
-
- /* skip over word in buffer */
- s = Get_First_Whitespace_Character(cp,(int)(ep-cp));
- /* to begin of next word */
- s = Get_Start_Of_Data(s,(int)(ep - s));
- if ( (s!=cp) && !is_blank(*s))
- {
- /* copy remaining line to window */
- waddnstr(form->w,s,(int)(s - After_End_Of_Data(s,(int)(ep - s))));
- }
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Clear_To_End_Of_Line(FORM * form)
-|
-| Description : Clear to end of current line.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Clear_To_End_Of_Line(FORM * form)
-{
- wclrtoeol(form->w);
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Clear_To_End_Of_Form(FORM * form)
-|
-| Description : Clear to end of form.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Clear_To_End_Of_Form(FORM * form)
-{
- wclrtobot(form->w);
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Clear_Field(FORM * form)
-|
-| Description : Clear entire field.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Clear_Field(FORM * form)
-{
- form->currow = form->curcol = 0;
- werase(form->w);
- return E_OK;
-}
-/*----------------------------------------------------------------------------
- END of Field Editing routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Edit Mode routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int EM_Overlay_Mode(FORM * form)
-|
-| Description : Switch to overlay mode.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int EM_Overlay_Mode(FORM * form)
-{
- form->status |= _OVLMODE;
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int EM_Insert_Mode(FORM * form)
-|
-| Description : Switch to insert mode
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int EM_Insert_Mode(FORM * form)
-{
- form->status &= ~_OVLMODE;
- return E_OK;
-}
-
-/*----------------------------------------------------------------------------
- END of Edit Mode routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Choice Requests
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Next_Choice(
-| FIELDTYPE * typ,
-| FIELD * field,
-| TypeArgument *argp)
-|
-| Description : Get the next field choice. For linked types this is
-| done recursively.
-|
-| Return Values : TRUE - next choice successfully retrieved
-| FALSE - couldn't retrieve next choice
-+--------------------------------------------------------------------------*/
-static bool Next_Choice(FIELDTYPE * typ, FIELD *field, TypeArgument *argp)
-{
- if (!typ || !(typ->status & _HAS_CHOICE))
- return FALSE;
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return(
- Next_Choice(typ->left ,field,argp->left) ||
- Next_Choice(typ->right,field,argp->right) );
- }
- else
- {
- assert(typ->next);
- return typ->next(field,(void *)argp);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Previous_Choice(
-| FIELDTYPE * typ,
-| FIELD * field,
-| TypeArgument *argp)
-|
-| Description : Get the previous field choice. For linked types this
-| is done recursively.
-|
-| Return Values : TRUE - previous choice successfully retrieved
-| FALSE - couldn't retrieve previous choice
-+--------------------------------------------------------------------------*/
-static bool Previous_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
-{
- if (!typ || !(typ->status & _HAS_CHOICE))
- return FALSE;
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return(
- Previous_Choice(typ->left ,field,argp->left) ||
- Previous_Choice(typ->right,field,argp->right));
- }
- else
- {
- assert(typ->prev);
- return typ->prev(field,(void *)argp);
- }
-}
-/*----------------------------------------------------------------------------
- End of Helper routines for Choice Requests
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Routines for Choice Requests
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int CR_Next_Choice(FORM * form)
-|
-| Description : Get the next field choice.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - next choice couldn't be retrieved
-+--------------------------------------------------------------------------*/
-static int CR_Next_Choice(FORM * form)
-{
- FIELD *field = form->current;
- Synchronize_Buffer(form);
- return ((Next_Choice(field->type,field,(TypeArgument *)(field->arg))) ?
- E_OK : E_REQUEST_DENIED);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int CR_Previous_Choice(FORM * form)
-|
-| Description : Get the previous field choice.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - prev. choice couldn't be retrieved
-+--------------------------------------------------------------------------*/
-static int CR_Previous_Choice(FORM * form)
-{
- FIELD *field = form->current;
- Synchronize_Buffer(form);
- return ((Previous_Choice(field->type,field,(TypeArgument *)(field->arg))) ?
- E_OK : E_REQUEST_DENIED);
-}
-/*----------------------------------------------------------------------------
- End of Routines for Choice Requests
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Field Validations.
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Field(
-| FIELDTYPE * typ,
-| FIELD * field,
-| TypeArgument * argp)
-|
-| Description : Check the field according to its fieldtype and its
-| actual arguments. For linked fieldtypes this is done
-| recursively.
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid.
-+--------------------------------------------------------------------------*/
-static bool Check_Field(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
-{
- if (typ)
- {
- if (field->opts & O_NULLOK)
- {
- char *bp = field->buf;
- assert(bp);
- while(is_blank(*bp))
- { bp++; }
- if (*bp == '\0')
- return TRUE;
- }
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return(
- Check_Field(typ->left ,field,argp->left ) ||
- Check_Field(typ->right,field,argp->right) );
- }
- else
- {
- if (typ->fcheck)
- return typ->fcheck(field,(void *)argp);
- }
- }
- return TRUE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool _nc_Internal_Validation(FORM * form )
-|
-| Description : Validate the current field of the form.
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-bool
-_nc_Internal_Validation(FORM *form)
-{
- FIELD *field;
-
- field = form->current;
-
- Synchronize_Buffer(form);
- if ((form->status & _FCHECK_REQUIRED) ||
- (!(field->opts & O_PASSOK)))
- {
- if (!Check_Field(field->type,field,(TypeArgument *)(field->arg)))
- return FALSE;
- form->status &= ~_FCHECK_REQUIRED;
- field->status |= _CHANGED;
- Synchronize_Linked_Fields(field);
- }
- return TRUE;
-}
-/*----------------------------------------------------------------------------
- End of Helper routines for Field Validations.
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Routines for Field Validation.
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FV_Validation(FORM * form)
-|
-| Description : Validate the current field of the form.
-|
-| Return Values : E_OK - field valid
-| E_INVALID_FIELD - field not valid
-+--------------------------------------------------------------------------*/
-static int FV_Validation(FORM * form)
-{
- if (_nc_Internal_Validation(form))
- return E_OK;
- else
- return E_INVALID_FIELD;
-}
-/*----------------------------------------------------------------------------
- End of routines for Field Validation.
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Inter-Field Navigation
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Next_Field_On_Page(FIELD * field)
-|
-| Description : Get the next field after the given field on the current
-| page. The order of fields is the one defined by the
-| fields array. Only visible and active fields are
-| counted.
-|
-| Return Values : Pointer to the next field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Next_Field_On_Page(FIELD * field)
-{
- FORM *form = field->form;
- FIELD **field_on_page = &form->field[field->index];
- FIELD **first_on_page = &form->field[form->page[form->curpage].pmin];
- FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
-
- do
- {
- field_on_page =
- (field_on_page==last_on_page) ? first_on_page : field_on_page + 1;
- if (Field_Is_Selectable(*field_on_page))
- break;
- } while(field!=(*field_on_page));
- return(*field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD* _nc_First_Active_Field(FORM * form)
-|
-| Description : Get the first active field on the current page,
-| if there are such. If there are none, get the first
-| visible field on the page. If there are also none,
-| we return the first field on page and hope the best.
-|
-| Return Values : Pointer to calculated field.
-+--------------------------------------------------------------------------*/
-FIELD*
-_nc_First_Active_Field(FORM * form)
-{
- FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
- FIELD *proposed = Next_Field_On_Page(*last_on_page);
-
- if (proposed == *last_on_page)
- { /* there might be the special situation, where there is no
- active and visible field on the current page. We then select
- the first visible field on this readonly page
- */
- if (Field_Is_Not_Selectable(proposed))
- {
- FIELD **field = &form->field[proposed->index];
- FIELD **first = &form->field[form->page[form->curpage].pmin];
-
- do
- {
- field = (field==last_on_page) ? first : field + 1;
- if (((*field)->opts & O_VISIBLE))
- break;
- } while(proposed!=(*field));
-
- proposed = *field;
-
- if ((proposed == *last_on_page) && !(proposed->opts&O_VISIBLE))
- { /* This means, there is also no visible field on the page.
- So we propose the first one and hope the very best...
- Some very clever user has designed a readonly and invisible
- page on this form.
- */
- proposed = *first;
- }
- }
- }
- return(proposed);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Previous_Field_On_Page(FIELD * field)
-|
-| Description : Get the previous field before the given field on the
-| current page. The order of fields is the one defined by
-| the fields array. Only visible and active fields are
-| counted.
-|
-| Return Values : Pointer to the previous field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Previous_Field_On_Page(FIELD * field)
-{
- FORM *form = field->form;
- FIELD **field_on_page = &form->field[field->index];
- FIELD **first_on_page = &form->field[form->page[form->curpage].pmin];
- FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
-
- do
- {
- field_on_page =
- (field_on_page==first_on_page) ? last_on_page : field_on_page - 1;
- if (Field_Is_Selectable(*field_on_page))
- break;
- } while(field!=(*field_on_page));
-
- return (*field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Sorted_Next_Field(FIELD * field)
-|
-| Description : Get the next field after the given field on the current
-| page. The order of fields is the one defined by the
-| (row,column) geometry, rows are major.
-|
-| Return Values : Pointer to the next field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Sorted_Next_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
-
- do
- {
- field_on_page = field_on_page->snext;
- if (Field_Is_Selectable(field_on_page))
- break;
- } while(field_on_page!=field);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Sorted_Previous_Field(FIELD * field)
-|
-| Description : Get the previous field before the given field on the
-| current page. The order of fields is the one defined
-| by the (row,column) geometry, rows are major.
-|
-| Return Values : Pointer to the previous field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Sorted_Previous_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
-
- do
- {
- field_on_page = field_on_page->sprev;
- if (Field_Is_Selectable(field_on_page))
- break;
- } while(field_on_page!=field);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Left_Neighbour_Field(FIELD * field)
-|
-| Description : Get the left neighbour of the field on the same line
-| and the same page. Cycles through the line.
-|
-| Return Values : Pointer to left neighbour field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Left_Neighbour_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
-
- /* For a field that has really a left neighbour, the while clause
- immediately fails and the loop is left, positioned at the right
- neighbour. Otherwise we cycle backwards through the sorted fieldlist
- until we enter the same line (from the right end).
- */
- do
- {
- field_on_page = Sorted_Previous_Field(field_on_page);
- } while(field_on_page->frow != field->frow);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Right_Neighbour_Field(FIELD * field)
-|
-| Description : Get the right neighbour of the field on the same line
-| and the same page.
-|
-| Return Values : Pointer to right neighbour field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Right_Neighbour_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
-
- /* See the comments on Left_Neighbour_Field to understand how it works */
- do
- {
- field_on_page = Sorted_Next_Field(field_on_page);
- } while(field_on_page->frow != field->frow);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Upper_Neighbour_Field(FIELD * field)
-|
-| Description : Because of the row-major nature of sorting the fields,
-| its more difficult to define whats the upper neighbour
-| field really means. We define that it must be on a
-| 'previous' line (cyclic order!) and is the rightmost
-| field laying on the left side of the given field. If
-| this set is empty, we take the first field on the line.
-|
-| Return Values : Pointer to the upper neighbour field.
-+--------------------------------------------------------------------------*/
-static FIELD *Upper_Neighbour_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
- int frow = field->frow;
- int fcol = field->fcol;
-
- /* Walk back to the 'previous' line. The second term in the while clause
- just guarantees that we stop if we cycled through the line because
- there might be no 'previous' line if the page has just one line.
- */
- do
- {
- field_on_page = Sorted_Previous_Field(field_on_page);
- } while(field_on_page->frow==frow && field_on_page->fcol!=fcol);
-
- if (field_on_page->frow!=frow)
- { /* We really found a 'previous' line. We are positioned at the
- rightmost field on this line */
- frow = field_on_page->frow;
-
- /* We walk to the left as long as we are really right of the
- field. */
- while(field_on_page->frow==frow && field_on_page->fcol>fcol)
- field_on_page = Sorted_Previous_Field(field_on_page);
-
- /* If we wrapped, just go to the right which is the first field on
- the row */
- if (field_on_page->frow!=frow)
- field_on_page = Sorted_Next_Field(field_on_page);
- }
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Down_Neighbour_Field(FIELD * field)
-|
-| Description : Because of the row-major nature of sorting the fields,
-| its more difficult to define whats the down neighbour
-| field really means. We define that it must be on a
-| 'next' line (cyclic order!) and is the leftmost
-| field laying on the right side of the given field. If
-| this set is empty, we take the last field on the line.
-|
-| Return Values : Pointer to the upper neighbour field.
-+--------------------------------------------------------------------------*/
-static FIELD *Down_Neighbour_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
- int frow = field->frow;
- int fcol = field->fcol;
-
- /* Walk forward to the 'next' line. The second term in the while clause
- just guarantees that we stop if we cycled through the line because
- there might be no 'next' line if the page has just one line.
- */
- do
- {
- field_on_page = Sorted_Next_Field(field_on_page);
- } while(field_on_page->frow==frow && field_on_page->fcol!=fcol);
-
- if (field_on_page->frow!=frow)
- { /* We really found a 'next' line. We are positioned at the rightmost
- field on this line */
- frow = field_on_page->frow;
-
- /* We walk to the right as long as we are really left of the
- field. */
- while(field_on_page->frow==frow && field_on_page->fcol<fcol)
- field_on_page = Sorted_Next_Field(field_on_page);
-
- /* If we wrapped, just go to the left which is the last field on
- the row */
- if (field_on_page->frow!=frow)
- field_on_page = Sorted_Previous_Field(field_on_page);
- }
-
- return(field_on_page);
-}
-
-/*----------------------------------------------------------------------------
- Inter-Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Inter_Field_Navigation(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Generic behaviour for changing the current field, the
-| field is left and a new field is entered. So the field
-| must be validated and the field init/term hooks must
-| be called.
-|
-| Return Values : E_OK - success
-| E_INVALID_FIELD - field is invalid
-| some other - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int Inter_Field_Navigation(int (* const fct) (FORM *),FORM *form)
-{
- int res;
-
- if (!_nc_Internal_Validation(form))
- res = E_INVALID_FIELD;
- else
- {
- Call_Hook(form,fieldterm);
- res = fct(form);
- Call_Hook(form,fieldinit);
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Next_Field(FORM * form)
-|
-| Description : Move to the next field on the current page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Next_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Next_Field_On_Page(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Previous_Field(FORM * form)
-|
-| Description : Move to the previous field on the current page of the
-| form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Previous_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Previous_Field_On_Page(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_First_Field(FORM * form)
-|
-| Description : Move to the first field on the current page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_First_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Next_Field_On_Page(form->field[form->page[form->curpage].pmax]));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Last_Field(FORM * form)
-|
-| Description : Move to the last field on the current page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Last_Field(FORM * form)
-{
- return
- _nc_Set_Current_Field(form,
- Previous_Field_On_Page(form->field[form->page[form->curpage].pmin]));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Sorted_Next_Field(FORM * form)
-|
-| Description : Move to the sorted next field on the current page
-| of the form.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Sorted_Next_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Sorted_Next_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Sorted_Previous_Field(FORM * form)
-|
-| Description : Move to the sorted previous field on the current page
-| of the form.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Sorted_Previous_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Sorted_Previous_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Sorted_First_Field(FORM * form)
-|
-| Description : Move to the sorted first field on the current page
-| of the form.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Sorted_First_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Sorted_Next_Field(form->field[form->page[form->curpage].smax]));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Sorted_Last_Field(FORM * form)
-|
-| Description : Move to the sorted last field on the current page
-| of the form.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Sorted_Last_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Sorted_Previous_Field(form->field[form->page[form->curpage].smin]));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Left_Field(FORM * form)
-|
-| Description : Get the field on the left of the current field on the
-| same line and the same page. Cycles through the line.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Left_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Left_Neighbour_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Right_Field(FORM * form)
-|
-| Description : Get the field on the right of the current field on the
-| same line and the same page. Cycles through the line.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Right_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Right_Neighbour_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Up_Field(FORM * form)
-|
-| Description : Get the upper neighbour of the current field. This
-| cycles through the page. See the comments of the
-| Upper_Neighbour_Field function to understand how
-| 'upper' is defined.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Up_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Upper_Neighbour_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Down_Field(FORM * form)
-|
-| Description : Get the down neighbour of the current field. This
-| cycles through the page. See the comments of the
-| Down_Neighbour_Field function to understand how
-| 'down' is defined.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Down_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Down_Neighbour_Field(form->current));
-}
-/*----------------------------------------------------------------------------
- END of Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Page Navigation
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Set_Form_Page(FORM * form,
-| int page,
-| FIELD * field)
-|
-| Description : Make the given page nr. the current page and make
-| the given field the current field on the page. If
-| for the field NULL is given, make the first field on
-| the page the current field. The routine acts only
-| if the requested page is not the current page.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-int
-_nc_Set_Form_Page(FORM * form, int page, FIELD * field)
-{
- int res = E_OK;
-
- if ((form->curpage!=page))
- {
- FIELD *last_field, *field_on_page;
-
- werase(Get_Form_Window(form));
- form->curpage = page;
- last_field = field_on_page = form->field[form->page[page].smin];
- do
- {
- if (field_on_page->opts & O_VISIBLE)
- if ((res=Display_Field(field_on_page))!=E_OK)
- return(res);
- field_on_page = field_on_page->snext;
- } while(field_on_page != last_field);
-
- if (field)
- res = _nc_Set_Current_Field(form,field);
- else
- /* N.B.: we don't encapsulate this by Inter_Field_Navigation(),
- because this is already executed in a page navigation
- context that contains field navigation
- */
- res = FN_First_Field(form);
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Next_Page_Number(const FORM * form)
-|
-| Description : Calculate the page number following the current page
-| number. This cycles if the highest page number is
-| reached.
-|
-| Return Values : The next page number
-+--------------------------------------------------------------------------*/
-INLINE static int Next_Page_Number(const FORM * form)
-{
- return (form->curpage + 1) % form->maxpage;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Previous_Page_Number(const FORM * form)
-|
-| Description : Calculate the page number before the current page
-| number. This cycles if the first page number is
-| reached.
-|
-| Return Values : The previous page number
-+--------------------------------------------------------------------------*/
-INLINE static int Previous_Page_Number(const FORM * form)
-{
- return (form->curpage!=0 ? form->curpage - 1 : form->maxpage - 1);
-}
-
-/*----------------------------------------------------------------------------
- Page Navigation routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Page_Navigation(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Generic behaviour for changing a page. This means
-| that the field is left and a new field is entered.
-| So the field must be validated and the field init/term
-| hooks must be called. Because also the page is changed,
-| the forms init/term hooks must be called also.
-|
-| Return Values : E_OK - success
-| E_INVALID_FIELD - field is invalid
-| some other - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int Page_Navigation(int (* const fct) (FORM *), FORM * form)
-{
- int res;
-
- if (!_nc_Internal_Validation(form))
- res = E_INVALID_FIELD;
- else
- {
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
- res = fct(form);
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int PN_Next_Page(FORM * form)
-|
-| Description : Move to the next page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int PN_Next_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,Next_Page_Number(form),(FIELD *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int PN_Previous_Page(FORM * form)
-|
-| Description : Move to the previous page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int PN_Previous_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,Previous_Page_Number(form),(FIELD *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int PN_First_Page(FORM * form)
-|
-| Description : Move to the first page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int PN_First_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,0,(FIELD *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int PN_Last_Page(FORM * form)
-|
-| Description : Move to the last page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int PN_Last_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,form->maxpage-1,(FIELD *)0);
-}
-/*----------------------------------------------------------------------------
- END of Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for the core form driver.
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Data_Entry(FORM * form,int c)
-|
-| Description : Enter character c into at the current position of the
-| current field of the form.
-|
-| Return Values : E_OK -
-| E_REQUEST_DENIED -
-| E_SYSTEM_ERROR -
-+--------------------------------------------------------------------------*/
-static int Data_Entry(FORM * form, int c)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
-
- if ( (field->opts & O_EDIT)
-#if FIX_FORM_INACTIVE_BUG
- && (field->opts & O_ACTIVE)
-#endif
- )
- {
- if ( (field->opts & O_BLANK) &&
- First_Position_In_Current_Field(form) &&
- !(form->status & _FCHECK_REQUIRED) &&
- !(form->status & _WINDOW_MODIFIED) )
- werase(form->w);
-
- if (form->status & _OVLMODE)
- {
- waddch(form->w,(chtype)c);
- }
- else /* no _OVLMODE */
- {
- bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
-
- if (!(There_Is_Room ||
- ((Single_Line_Field(field) && Growable(field)))))
- return E_REQUEST_DENIED;
-
- if (!There_Is_Room && !Field_Grown(field,1))
- return E_SYSTEM_ERROR;
-
- winsch(form->w,(chtype)c);
- }
-
- if ((result=Wrapping_Not_Necessary_Or_Wrapping_Ok(form))==E_OK)
- {
- bool End_Of_Field= (((field->drows-1)==form->currow) &&
- ((field->dcols-1)==form->curcol));
- form->status |= _WINDOW_MODIFIED;
- if (End_Of_Field && !Growable(field) && (field->opts & O_AUTOSKIP))
- result = Inter_Field_Navigation(FN_Next_Field,form);
- else
- {
- if (End_Of_Field && Growable(field) && !Field_Grown(field,1))
- result = E_SYSTEM_ERROR;
- else
- {
- IFN_Next_Character(form);
- result = E_OK;
- }
- }
- }
- }
- return result;
-}
-
-/* Structure to describe the binding of a request code to a function.
- The member keycode codes the request value as well as the generic
- routine to use for the request. The code for the generic routine
- is coded in the upper 16 Bits while the request code is coded in
- the lower 16 bits.
-
- In terms of C++ you might think of a request as a class with a
- virtual method "perform". The different types of request are
- derived from this base class and overload (or not) the base class
- implementation of perform.
-*/
-typedef struct {
- int keycode; /* must be at least 32 bit: hi:mode, lo: key */
- int (*cmd)(FORM *); /* low level driver routine for this key */
-} Binding_Info;
-
-/* You may see this is the class-id of the request type class */
-#define ID_PN (0x00000000) /* Page navigation */
-#define ID_FN (0x00010000) /* Inter-Field navigation */
-#define ID_IFN (0x00020000) /* Intra-Field navigation */
-#define ID_VSC (0x00030000) /* Vertical Scrolling */
-#define ID_HSC (0x00040000) /* Horizontal Scrolling */
-#define ID_FE (0x00050000) /* Field Editing */
-#define ID_EM (0x00060000) /* Edit Mode */
-#define ID_FV (0x00070000) /* Field Validation */
-#define ID_CH (0x00080000) /* Choice */
-#define ID_Mask (0xffff0000)
-#define Key_Mask (0x0000ffff)
-#define ID_Shft (16)
-
-/* This array holds all the Binding Infos */
-static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
-{
- { REQ_NEXT_PAGE |ID_PN ,PN_Next_Page},
- { REQ_PREV_PAGE |ID_PN ,PN_Previous_Page},
- { REQ_FIRST_PAGE |ID_PN ,PN_First_Page},
- { REQ_LAST_PAGE |ID_PN ,PN_Last_Page},
-
- { REQ_NEXT_FIELD |ID_FN ,FN_Next_Field},
- { REQ_PREV_FIELD |ID_FN ,FN_Previous_Field},
- { REQ_FIRST_FIELD |ID_FN ,FN_First_Field},
- { REQ_LAST_FIELD |ID_FN ,FN_Last_Field},
- { REQ_SNEXT_FIELD |ID_FN ,FN_Sorted_Next_Field},
- { REQ_SPREV_FIELD |ID_FN ,FN_Sorted_Previous_Field},
- { REQ_SFIRST_FIELD |ID_FN ,FN_Sorted_First_Field},
- { REQ_SLAST_FIELD |ID_FN ,FN_Sorted_Last_Field},
- { REQ_LEFT_FIELD |ID_FN ,FN_Left_Field},
- { REQ_RIGHT_FIELD |ID_FN ,FN_Right_Field},
- { REQ_UP_FIELD |ID_FN ,FN_Up_Field},
- { REQ_DOWN_FIELD |ID_FN ,FN_Down_Field},
-
- { REQ_NEXT_CHAR |ID_IFN ,IFN_Next_Character},
- { REQ_PREV_CHAR |ID_IFN ,IFN_Previous_Character},
- { REQ_NEXT_LINE |ID_IFN ,IFN_Next_Line},
- { REQ_PREV_LINE |ID_IFN ,IFN_Previous_Line},
- { REQ_NEXT_WORD |ID_IFN ,IFN_Next_Word},
- { REQ_PREV_WORD |ID_IFN ,IFN_Previous_Word},
- { REQ_BEG_FIELD |ID_IFN ,IFN_Beginning_Of_Field},
- { REQ_END_FIELD |ID_IFN ,IFN_End_Of_Field},
- { REQ_BEG_LINE |ID_IFN ,IFN_Beginning_Of_Line},
- { REQ_END_LINE |ID_IFN ,IFN_End_Of_Line},
- { REQ_LEFT_CHAR |ID_IFN ,IFN_Left_Character},
- { REQ_RIGHT_CHAR |ID_IFN ,IFN_Right_Character},
- { REQ_UP_CHAR |ID_IFN ,IFN_Up_Character},
- { REQ_DOWN_CHAR |ID_IFN ,IFN_Down_Character},
-
- { REQ_NEW_LINE |ID_FE ,FE_New_Line},
- { REQ_INS_CHAR |ID_FE ,FE_Insert_Character},
- { REQ_INS_LINE |ID_FE ,FE_Insert_Line},
- { REQ_DEL_CHAR |ID_FE ,FE_Delete_Character},
- { REQ_DEL_PREV |ID_FE ,FE_Delete_Previous},
- { REQ_DEL_LINE |ID_FE ,FE_Delete_Line},
- { REQ_DEL_WORD |ID_FE ,FE_Delete_Word},
- { REQ_CLR_EOL |ID_FE ,FE_Clear_To_End_Of_Line},
- { REQ_CLR_EOF |ID_FE ,FE_Clear_To_End_Of_Form},
- { REQ_CLR_FIELD |ID_FE ,FE_Clear_Field},
-
- { REQ_OVL_MODE |ID_EM ,EM_Overlay_Mode},
- { REQ_INS_MODE |ID_EM ,EM_Insert_Mode},
-
- { REQ_SCR_FLINE |ID_VSC ,VSC_Scroll_Line_Forward},
- { REQ_SCR_BLINE |ID_VSC ,VSC_Scroll_Line_Backward},
- { REQ_SCR_FPAGE |ID_VSC ,VSC_Scroll_Page_Forward},
- { REQ_SCR_BPAGE |ID_VSC ,VSC_Scroll_Page_Backward},
- { REQ_SCR_FHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Forward},
- { REQ_SCR_BHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Backward},
-
- { REQ_SCR_FCHAR |ID_HSC ,HSC_Scroll_Char_Forward},
- { REQ_SCR_BCHAR |ID_HSC ,HSC_Scroll_Char_Backward},
- { REQ_SCR_HFLINE |ID_HSC ,HSC_Horizontal_Line_Forward},
- { REQ_SCR_HBLINE |ID_HSC ,HSC_Horizontal_Line_Backward},
- { REQ_SCR_HFHALF |ID_HSC ,HSC_Horizontal_Half_Line_Forward},
- { REQ_SCR_HBHALF |ID_HSC ,HSC_Horizontal_Half_Line_Backward},
-
- { REQ_VALIDATION |ID_FV ,FV_Validation},
-
- { REQ_NEXT_CHOICE |ID_CH ,CR_Next_Choice},
- { REQ_PREV_CHOICE |ID_CH ,CR_Previous_Choice}
-};
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_driver(FORM * form,int c)
-|
-| Description : This is the workhorse of the forms system. It checks
-| to determine whether the character c is a request or
-| data. If it is a request, the form driver executes
-| the request and returns the result. If it is data
-| (printable character), it enters the data into the
-| current position in the current field. If it is not
-| recognized, the form driver assumes it is an application
-| defined command and returns E_UNKNOWN_COMMAND.
-| Application defined command should be defined relative
-| to MAX_FORM_COMMAND, the maximum value of a request.
-|
-| Return Values : E_OK - success
-| E_SYSTEM_ERROR - system error
-| E_BAD_ARGUMENT - an argument is incorrect
-| E_NOT_POSTED - form is not posted
-| E_INVALID_FIELD - field contents are invalid
-| E_BAD_STATE - called from inside a hook routine
-| E_REQUEST_DENIED - request failed
-| E_UNKNOWN_COMMAND - command not known
-+--------------------------------------------------------------------------*/
-int form_driver(FORM * form, int c)
-{
- const Binding_Info* BI = (Binding_Info *)0;
- int res = E_UNKNOWN_COMMAND;
-
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (!(form->field))
- RETURN(E_NOT_CONNECTED);
-
- assert(form->page);
-
- if (c==FIRST_ACTIVE_MAGIC)
- {
- form->current = _nc_First_Active_Field(form);
- return E_OK;
- }
-
- assert(form->current &&
- form->current->buf &&
- (form->current->form == form)
- );
-
- if ( form->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- if ( !( form->status & _POSTED ) )
- RETURN(E_NOT_POSTED);
-
- if ((c>=MIN_FORM_COMMAND && c<=MAX_FORM_COMMAND) &&
- ((bindings[c-MIN_FORM_COMMAND].keycode & Key_Mask) == c))
- BI = &(bindings[c-MIN_FORM_COMMAND]);
-
- if (BI)
- {
- typedef int (*Generic_Method)(int (* const)(FORM *),FORM *);
- static const Generic_Method Generic_Methods[] =
- {
- Page_Navigation, /* overloaded to call field&form hooks */
- Inter_Field_Navigation, /* overloaded to call field hooks */
- NULL, /* Intra-Field is generic */
- Vertical_Scrolling, /* Overloaded to check multi-line */
- Horizontal_Scrolling, /* Overloaded to check single-line */
- Field_Editing, /* Overloaded to mark modification */
- NULL, /* Edit Mode is generic */
- NULL, /* Field Validation is generic */
- NULL /* Choice Request is generic */
- };
- size_t nMethods = (sizeof(Generic_Methods)/sizeof(Generic_Methods[0]));
- size_t method = ((BI->keycode & ID_Mask) >> ID_Shft) & 0xffff;
-
- if ( (method >= nMethods) || !(BI->cmd) )
- res = E_SYSTEM_ERROR;
- else
- {
- Generic_Method fct = Generic_Methods[method];
- if (fct)
- res = fct(BI->cmd,form);
- else
- res = (BI->cmd)(form);
- }
- }
- else
- {
- if (!(c & (~(int)MAX_REGULAR_CHARACTER)) &&
- isprint((unsigned char)c) &&
- Check_Char(form->current->type,c,
- (TypeArgument *)(form->current->arg)))
- res = Data_Entry(form,c);
- }
- _nc_Refresh_Current_Field(form);
- RETURN(res);
-}
-
-/*----------------------------------------------------------------------------
- Field-Buffer manipulation routines.
- The effects of setting a buffer is tightly coupled to the core of the form
- driver logic. This is especially true in the case of growable fields.
- So I don't separate this into an own module.
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_buffer(FIELD *field,
-| int buffer, char *value)
-|
-| Description : Set the given buffer of the field to the given value.
-| Buffer 0 stores the displayed content of the field.
-| For dynamic fields this may grow the fieldbuffers if
-| the length of the value exceeds the current buffer
-| length. For buffer 0 only printable values are allowed.
-| For static fields, the value needs not to be zero ter-
-| minated. It is copied up to the length of the buffer.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int set_field_buffer(FIELD * field, int buffer, const char * value)
-{
- char *s, *p;
- int res = E_OK;
- unsigned int len;
-
- if ( !field || !value || ((buffer < 0)||(buffer > field->nbuf)) )
- RETURN(E_BAD_ARGUMENT);
-
- len = Buffer_Length(field);
-
- if (buffer==0)
- {
- const char *v;
- unsigned int i = 0;
-
- for(v=value; *v && (i<len); v++,i++)
- {
- if (!isprint((unsigned char)*v))
- RETURN(E_BAD_ARGUMENT);
- }
- }
-
- if (Growable(field))
- {
- /* for a growable field we must assume zero terminated strings, because
- somehow we have to detect the length of what should be copied.
- */
- unsigned int vlen = strlen(value);
- if (vlen > len)
- {
- if (!Field_Grown(field,
- (int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols))))
- RETURN(E_SYSTEM_ERROR);
-
- /* in this case we also have to check, wether or not the remaining
- characters in value are also printable for buffer 0. */
- if (buffer==0)
- {
- unsigned int i;
-
- for(i=len; i<vlen; i++)
- if (!isprint(value[i]))
- RETURN(E_BAD_ARGUMENT);
- }
- len = vlen;
- }
- }
-
- p = Address_Of_Nth_Buffer(field,buffer);
-
-#if HAVE_MEMCCPY
- s = memccpy(p,value,0,len);
-#else
- for(s=(char *)value; *s && (s < (value+len)); s++)
- p[s-value] = *s;
- if (s < (value+len))
- {
- p[s-value] = *s++;
- s = p + (s-value);
- }
- else
- s=(char *)0;
-#endif
-
- if (s)
- { /* this means, value was null terminated and not greater than the
- buffer. We have to pad with blanks. Please note that due to memccpy
- logic s points after the terminating null. */
- s--; /* now we point to the terminator. */
- assert(len >= (unsigned int)(s-p));
- if (len > (unsigned int)(s-p))
- memset(s,C_BLANK,len-(unsigned int)(s-p));
- }
-
- if (buffer==0)
- {
- int syncres;
- if (((syncres=Synchronize_Field( field ))!=E_OK) &&
- (res==E_OK))
- res = syncres;
- if (((syncres=Synchronize_Linked_Fields(field ))!=E_OK) &&
- (res==E_OK))
- res = syncres;
- }
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : char *field_buffer(const FIELD *field,int buffer)
-|
-| Description : Return the address of the buffer for the field.
-|
-| Return Values : Pointer to buffer or NULL if arguments were invalid.
-+--------------------------------------------------------------------------*/
-char *field_buffer(const FIELD * field, int buffer)
-{
- if (field && (buffer >= 0) && (buffer <= field->nbuf))
- return Address_Of_Nth_Buffer(field,buffer);
- else
- return (char *)0;
-}
-
-/* frm_driver.c ends here */
diff --git a/ncurses-5.2/form/frm_hook.c b/ncurses-5.2/form/frm_hook.c
deleted file mode 100644
index eb654c4..0000000
--- a/ncurses-5.2/form/frm_hook.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/* "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)\
-{\
- (Normalize_Form( form ) -> typ ## name) = func ;\
- RETURN(E_OK);\
-}
-
-/* "Template" macro to generate function to get application specific hook */
-#define GEN_HOOK_GET_FUNCTION( typ, name ) \
-Form_Hook typ ## _ ## name ( const FORM *form )\
-{\
- return ( Normalize_Form( form ) -> typ ## name );\
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_init(FORM *form, Form_Hook f)
-|
-| Description : Assigns an application defined initialization function
-| to be called when the form is posted and just after
-| the current field changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(field,init)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Hook field_init(const FORM *form)
-|
-| Description : Retrieve field initialization routine address.
-|
-| Return Values : The address or NULL if no hook defined.
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(field,init)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_term(FORM *form, Form_Hook f)
-|
-| Description : Assigns an application defined finalization function
-| to be called when the form is unposted and just before
-| the current field changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(field,term)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Hook field_term(const FORM *form)
-|
-| Description : Retrieve field finalization routine address.
-|
-| Return Values : The address or NULL if no hook defined.
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(field,term)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_init(FORM *form, Form_Hook f)
-|
-| Description : Assigns an application defined initialization function
-| to be called when the form is posted and just after
-| a page change.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(form,init)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Hook form_init(const FORM *form)
-|
-| Description : Retrieve form initialization routine address.
-|
-| Return Values : The address or NULL if no hook defined.
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(form,init)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_term(FORM *form, Form_Hook f)
-|
-| Description : Assigns an application defined finalization function
-| to be called when the form is unposted and just before
-| a page change.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(form,term)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Hook form_term(const FORM *form)
-|
-| Description : Retrieve form finalization routine address.
-|
-| Return Values : The address or NULL if no hook defined.
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(form,term)
-
-/* frm_hook.c ends here */
diff --git a/ncurses-5.2/form/frm_opts.c b/ncurses-5.2/form/frm_opts.c
deleted file mode 100644
index 7bbeaa1..0000000
--- a/ncurses-5.2/form/frm_opts.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_opts(FORM *form, Form_Options opts)
-|
-| Description : Turns on the named options and turns off all the
-| remaining options for that form.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-int set_form_opts(FORM * form, Form_Options opts)
-{
- opts &= ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Form( form )->opts = opts;
- RETURN(E_OK);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Options form_opts(const FORM *)
-|
-| Description : Retrieves the current form options.
-|
-| Return Values : The option flags.
-+--------------------------------------------------------------------------*/
-Form_Options form_opts(const FORM * form)
-{
- return (Normalize_Form(form)->opts & ALL_FORM_OPTS);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_opts_on(FORM *form, Form_Options opts)
-|
-| Description : Turns on the named options; no other options are
-| changed.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-int form_opts_on(FORM * form, Form_Options opts)
-{
- opts &= ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Form( form )->opts |= opts;
- RETURN(E_OK);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_opts_off(FORM *form, Form_Options opts)
-|
-| Description : Turns off the named options; no other options are
-| changed.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-int form_opts_off(FORM * form, Form_Options opts)
-{
- opts &= ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Form(form)->opts &= ~opts;
- RETURN(E_OK);
- }
-}
-
-/* frm_opts.c ends here */
diff --git a/ncurses-5.2/form/frm_page.c b/ncurses-5.2/form/frm_page.c
deleted file mode 100644
index 842cbce..0000000
--- a/ncurses-5.2/form/frm_page.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_page(FORM * form,int page)
-|
-| Description : Set the page number of the form.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer or page number
-| E_BAD_STATE - called from a hook routine
-| E_INVALID_FIELD - current field can't be left
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int set_form_page(FORM * form, int page)
-{
- int err = E_OK;
-
- if ( !form || (page<0) || (page>=form->maxpage) )
- RETURN(E_BAD_ARGUMENT);
-
- if (!(form->status & _POSTED))
- {
- form->curpage = page;
- form->current = _nc_First_Active_Field(form);
- }
- else
- {
- if (form->status & _IN_DRIVER)
- err = E_BAD_STATE;
- else
- {
- if (form->curpage != page)
- {
- if (!_nc_Internal_Validation(form))
- err = E_INVALID_FIELD;
- else
- {
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
- err = _nc_Set_Form_Page(form,page,(FIELD *)0);
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
- _nc_Refresh_Current_Field(form);
- }
- }
- }
- }
- RETURN(err);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_page(const FORM * form)
-|
-| Description : Return the current page of the form.
-|
-| Return Values : >= 0 : current page number
-| -1 : invalid form pointer
-+--------------------------------------------------------------------------*/
-int form_page(const FORM * form)
-{
- return Normalize_Form(form)->curpage;
-}
-
-/* frm_page.c ends here */
diff --git a/ncurses-5.2/form/frm_post.c b/ncurses-5.2/form/frm_post.c
deleted file mode 100644
index 5ead942..0000000
--- a/ncurses-5.2/form/frm_post.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int post_form(FORM * form)
-|
-| Description : Writes the form into its associated subwindow.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_POSTED - form already posted
-| E_NOT_CONNECTED - no fields connected to form
-| E_NO_ROOM - form doesn't fit into subwindow
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-int post_form(FORM * form)
-{
- WINDOW *formwin;
- int err;
- int page;
-
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (form->status & _POSTED)
- RETURN(E_POSTED);
-
- if (!(form->field))
- RETURN(E_NOT_CONNECTED);
-
- formwin = Get_Form_Window(form);
- if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin)))
- RETURN(E_NO_ROOM);
-
- /* reset form->curpage to an invald value. This forces Set_Form_Page
- to do the page initialization which is required by post_form.
- */
- page = form->curpage;
- form->curpage = -1;
- if ((err = _nc_Set_Form_Page(form,page,form->current))!=E_OK)
- RETURN(err);
-
- form->status |= _POSTED;
-
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
-
- _nc_Refresh_Current_Field(form);
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int unpost_form(FORM * form)
-|
-| Description : Erase form from its associated subwindow.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_NOT_POSTED - form isn't posted
-| E_BAD_STATE - called from a hook routine
-+--------------------------------------------------------------------------*/
-int unpost_form(FORM * form)
-{
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (!(form->status & _POSTED))
- RETURN(E_NOT_POSTED);
-
- if (form->status & _IN_DRIVER)
- RETURN(E_BAD_STATE);
-
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
-
- werase(Get_Form_Window(form));
- delwin(form->w);
- form->w = (WINDOW *)0;
- form->status &= ~_POSTED;
- RETURN(E_OK);
-}
-
-/* frm_post.c ends here */
diff --git a/ncurses-5.2/form/frm_req_name.c b/ncurses-5.2/form/frm_req_name.c
deleted file mode 100644
index e9cd426..0000000
--- a/ncurses-5.2/form/frm_req_name.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module form_request_name *
-* Routines to handle external names of menu requests *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = {
- "NEXT_PAGE" ,
- "PREV_PAGE" ,
- "FIRST_PAGE" ,
- "LAST_PAGE" ,
-
- "NEXT_FIELD" ,
- "PREV_FIELD" ,
- "FIRST_FIELD" ,
- "LAST_FIELD" ,
- "SNEXT_FIELD" ,
- "SPREV_FIELD" ,
- "SFIRST_FIELD" ,
- "SLAST_FIELD" ,
- "LEFT_FIELD" ,
- "RIGHT_FIELD" ,
- "UP_FIELD" ,
- "DOWN_FIELD" ,
-
- "NEXT_CHAR" ,
- "PREV_CHAR" ,
- "NEXT_LINE" ,
- "PREV_LINE" ,
- "NEXT_WORD" ,
- "PREV_WORD" ,
- "BEG_FIELD" ,
- "END_FIELD" ,
- "BEG_LINE" ,
- "END_LINE" ,
- "LEFT_CHAR" ,
- "RIGHT_CHAR" ,
- "UP_CHAR" ,
- "DOWN_CHAR" ,
-
- "NEW_LINE" ,
- "INS_CHAR" ,
- "INS_LINE" ,
- "DEL_CHAR" ,
- "DEL_PREV" ,
- "DEL_LINE" ,
- "DEL_WORD" ,
- "CLR_EOL" ,
- "CLR_EOF" ,
- "CLR_FIELD" ,
- "OVL_MODE" ,
- "INS_MODE" ,
- "SCR_FLINE" ,
- "SCR_BLINE" ,
- "SCR_FPAGE" ,
- "SCR_BPAGE" ,
- "SCR_FHPAGE" ,
- "SCR_BHPAGE" ,
- "SCR_FCHAR" ,
- "SCR_BCHAR" ,
- "SCR_HFLINE" ,
- "SCR_HBLINE" ,
- "SCR_HFHALF" ,
- "SCR_HBHALF" ,
-
- "VALIDATION" ,
- "NEXT_CHOICE" ,
- "PREV_CHOICE"
-};
-#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : const char * form_request_name (int request);
-|
-| Description : Get the external name of a form request.
-|
-| Return Values : Pointer to name - on success
-| NULL - on invalid request code
-+--------------------------------------------------------------------------*/
-const char *form_request_name( int request )
-{
- if ( (request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND) )
- {
- SET_ERROR (E_BAD_ARGUMENT);
- return (const char *)0;
- }
- else
- return request_names[ request - MIN_FORM_COMMAND ];
-}
-
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_request_by_name (const char *str);
-|
-| Description : Search for a request with this name.
-|
-| Return Values : Request Id - on success
-| E_NO_MATCH - request not found
-+--------------------------------------------------------------------------*/
-int form_request_by_name( const char *str )
-{
- /* because the table is so small, it doesn't really hurt
- to run sequentially through it.
- */
- unsigned int i = 0;
- char buf[16];
-
- if (str)
- {
- strncpy(buf,str,sizeof(buf));
- while( (i<sizeof(buf)) && (buf[i] != '\0') )
- {
- buf[i] = toupper(buf[i]);
- i++;
- }
-
- for (i=0; i < A_SIZE; i++)
- {
- if (strncmp(request_names[i],buf,sizeof(buf))==0)
- return MIN_FORM_COMMAND + i;
- }
- }
- RETURN(E_NO_MATCH);
-}
-
-/* frm_req_name.c ends here */
diff --git a/ncurses-5.2/form/frm_scale.c b/ncurses-5.2/form/frm_scale.c
deleted file mode 100644
index 028e9e2..0000000
--- a/ncurses-5.2/form/frm_scale.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int scale_form( const FORM *form, int *rows, int *cols )
-|
-| Description : Retrieve size of form
-|
-| Return Values : E_OK - no error
-| E_BAD_ARGUMENT - invalid form pointer
-| E_NOT_CONNECTED - no fields connected to form
-+--------------------------------------------------------------------------*/
-int scale_form(const FORM * form, int * rows, int * cols)
-{
- if ( !form )
- RETURN(E_BAD_ARGUMENT);
-
- if ( !(form->field) )
- RETURN(E_NOT_CONNECTED);
-
- if (rows)
- *rows = form->rows;
- if (cols)
- *cols = form->cols;
-
- RETURN(E_OK);
-}
-
-/* frm_scale.c ends here */
diff --git a/ncurses-5.2/form/frm_sub.c b/ncurses-5.2/form/frm_sub.c
deleted file mode 100644
index 62dc613..0000000
--- a/ncurses-5.2/form/frm_sub.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_sub(FORM *form, WINDOW *win)
-|
-| Description : Set the subwindow of the form to win.
-|
-| Return Values : E_OK - success
-| E_POSTED - form is posted
-+--------------------------------------------------------------------------*/
-int set_form_sub(FORM * form, WINDOW * win)
-{
- if (form && (form->status & _POSTED))
- RETURN(E_POSTED);
-
- Normalize_Form( form )->sub = win;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : WINDOW *form_sub(const FORM *)
-|
-| Description : Retrieve the window of the form.
-|
-| Return Values : The pointer to the Subwindow.
-+--------------------------------------------------------------------------*/
-WINDOW *form_sub(const FORM * form)
-{
- const FORM* f = Normalize_Form( form );
- return Get_Form_Window(f);
-}
-
-/* frm_sub.c ends here */
diff --git a/ncurses-5.2/form/frm_user.c b/ncurses-5.2/form/frm_user.c
deleted file mode 100644
index 8f0edbc..0000000
--- a/ncurses-5.2/form/frm_user.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_userptr(FORM *form, void *usrptr)
-|
-| Description : Set the pointer that is reserved in any form to store
-| application relevant informations
-|
-| Return Values : E_OK - on success
-+--------------------------------------------------------------------------*/
-int set_form_userptr(FORM * form, void *usrptr)
-{
- Normalize_Form(form)->usrptr = usrptr;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void *form_userptr(const FORM *form)
-|
-| Description : Return the pointer that is reserved in any form to
-| store application relevant informations.
-|
-| Return Values : Value of pointer. If no such pointer has been set,
-| NULL is returned
-+--------------------------------------------------------------------------*/
-void *form_userptr(const FORM * form)
-{
- return Normalize_Form(form)->usrptr;
-}
-
-/* frm_user.c ends here */
diff --git a/ncurses-5.2/form/frm_win.c b/ncurses-5.2/form/frm_win.c
deleted file mode 100644
index 82d716f..0000000
--- a/ncurses-5.2/form/frm_win.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_win(FORM *form,WINDOW *win)
-|
-| Description : Set the window of the form to win.
-|
-| Return Values : E_OK - success
-| E_POSTED - form is posted
-+--------------------------------------------------------------------------*/
-int set_form_win(FORM * form, WINDOW * win)
-{
- if (form && (form->status & _POSTED))
- RETURN(E_POSTED);
-
- Normalize_Form( form )->win = win;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : WINDOW *form_win(const FORM *)
-|
-| Description : Retrieve the window of the form.
-|
-| Return Values : The pointer to the Window or stdscr if there is none.
-+--------------------------------------------------------------------------*/
-WINDOW *form_win(const FORM * form)
-{
- const FORM* f = Normalize_Form( form );
- return (f->win ? f->win : stdscr);
-}
-
-/* frm_win.c ends here */
-
diff --git a/ncurses-5.2/form/fty_alnum.c b/ncurses-5.2/form/fty_alnum.c
deleted file mode 100644
index d95acfa..0000000
--- a/ncurses-5.2/form/fty_alnum.c
+++ /dev/null
@@ -1,137 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-typedef struct {
- int width;
-} alnumARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_AlphaNumeric_Type(va_list *ap)
-|
-| Description : Allocate structure for alphanumeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_AlphaNumeric_Type(va_list * ap)
-{
- alnumARG *argp = (alnumARG *)malloc(sizeof(alnumARG));
-
- if (argp)
- argp->width = va_arg(*ap,int);
-
- return ((void *)argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_AlphaNumericType(const void *argp)
-|
-| Description : Copy structure for alphanumeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_AlphaNumeric_Type(const void *argp)
-{
- const alnumARG *ap = (const alnumARG *)argp;
- alnumARG *result = (alnumARG *)malloc(sizeof(alnumARG));
-
- if (result)
- *result = *ap;
-
- return ((void *)result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_AlphaNumeric_Type(void *argp)
-|
-| Description : Free structure for alphanumeric type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_AlphaNumeric_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_AlphaNumeric_Field(
-| FIELD *field,
-| const void *argp)
-|
-| Description : Validate buffer content to be a valid alphanumeric value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_AlphaNumeric_Field(FIELD * field, const void * argp)
-{
- int width = ((const alnumARG *)argp)->width;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- int l = -1;
- unsigned char *s;
-
- while(*bp && *bp==' ')
- bp++;
- if (*bp)
- {
- s = bp;
- while(*bp && isalnum(*bp))
- bp++;
- l = (int)(bp-s);
- while(*bp && *bp==' ')
- bp++;
- }
- return ((*bp || (l < width)) ? FALSE : TRUE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_AlphaNumeric_Character(
-| int c,
-| const void *argp )
-|
-| Description : Check a character for the alphanumeric type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_AlphaNumeric_Character(int c, const void * argp GCC_UNUSED)
-{
- return (isalnum(c) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeALNUM = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_AlphaNumeric_Type,
- Copy_AlphaNumeric_Type,
- Free_AlphaNumeric_Type,
- Check_AlphaNumeric_Field,
- Check_AlphaNumeric_Character,
- NULL,
- NULL
-};
-
-FIELDTYPE* TYPE_ALNUM = &typeALNUM;
-
-/* fty_alnum.c ends here */
diff --git a/ncurses-5.2/form/fty_alpha.c b/ncurses-5.2/form/fty_alpha.c
deleted file mode 100644
index 37792fe..0000000
--- a/ncurses-5.2/form/fty_alpha.c
+++ /dev/null
@@ -1,138 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-typedef struct {
- int width;
-} alphaARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Alpha_Type(va_list *ap)
-|
-| Description : Allocate structure for alpha type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_Alpha_Type(va_list * ap)
-{
- alphaARG *argp = (alphaARG *)malloc(sizeof(alphaARG));
- if (argp)
- {
- argp->width = va_arg(*ap,int);
- }
- return ((void *)argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Alpha_Type(const void * argp)
-|
-| Description : Copy structure for alpha type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_Alpha_Type(const void * argp)
-{
- const alphaARG *ap = (const alphaARG *)argp;
- alphaARG *result = (alphaARG *)malloc(sizeof(alphaARG));
-
- if (result)
- {
- *result = *ap;
- }
- return ((void *)result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Alpha_Type( void * argp )
-|
-| Description : Free structure for alpha type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_Alpha_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Alpha_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid alpha value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Alpha_Field(FIELD * field, const void * argp)
-{
- int width = ((const alphaARG *)argp)->width;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- int l = -1;
- unsigned char *s;
-
- while(*bp && *bp==' ')
- bp++;
- if (*bp)
- {
- s = bp;
- while(*bp && isalpha(*bp))
- bp++;
- l = (int)(bp-s);
- while(*bp && *bp==' ')
- bp++;
- }
- return ((*bp || (l < width)) ? FALSE : TRUE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Alpha_Character(
-| int c,
-| const void * argp)
-|
-| Description : Check a character for the alpha type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Alpha_Character(int c, const void * argp GCC_UNUSED)
-{
- return (isalpha(c) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeALPHA = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_Alpha_Type,
- Copy_Alpha_Type,
- Free_Alpha_Type,
- Check_Alpha_Field,
- Check_Alpha_Character,
- NULL,
- NULL
-};
-
-FIELDTYPE* TYPE_ALPHA = &typeALPHA;
-
-/* fty_alpha.c ends here */
diff --git a/ncurses-5.2/form/fty_enum.c b/ncurses-5.2/form/fty_enum.c
deleted file mode 100644
index 8fc4cd7..0000000
--- a/ncurses-5.2/form/fty_enum.c
+++ /dev/null
@@ -1,295 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-typedef struct {
- char **kwds;
- int count;
- bool checkcase;
- bool checkunique;
-} enumARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Enum_Type( va_list * ap )
-|
-| Description : Allocate structure for enumeration type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_Enum_Type(va_list * ap)
-{
- enumARG *argp = (enumARG *)malloc(sizeof(enumARG));
-
- if (argp)
- {
- int cnt = 0;
- char **kp = (char **)0;
- int ccase, cunique;
-
- argp->kwds = va_arg(*ap,char **);
- ccase = va_arg(*ap,int);
- cunique = va_arg(*ap,int);
- argp->checkcase = ccase ? TRUE : FALSE;
- argp->checkunique = cunique ? TRUE : FALSE;
-
- kp = argp->kwds;
- while( kp && (*kp++) ) cnt++;
- argp->count = cnt;
- }
- return (void *)argp;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Enum_Type( const void * argp )
-|
-| Description : Copy structure for enumeration type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_Enum_Type(const void * argp)
-{
- enumARG *result = (enumARG *)0;
-
- if (argp)
- {
- const enumARG *ap = (const enumARG *)argp;
-
- result = (enumARG *)malloc(sizeof(enumARG));
- if (result)
- *result = *ap;
- }
- return (void *)result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Enum_Type( void * argp )
-|
-| Description : Free structure for enumeration type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_Enum_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-#define SKIP_SPACE(x) while(((*(x))!='\0') && (is_blank(*(x)))) (x)++
-#define NOMATCH 0
-#define PARTIAL 1
-#define EXACT 2
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Compare(const unsigned char * s,
-| const unsigned char * buf,
-| bool ccase )
-|
-| Description : Check wether or not the text in 'buf' matches the
-| text in 's', at least partial.
-|
-| Return Values : NOMATCH - buffer doesn't match
-| PARTIAL - buffer matches partially
-| EXACT - buffer matches exactly
-+--------------------------------------------------------------------------*/
-static int Compare(const unsigned char *s, const unsigned char *buf,
- bool ccase)
-{
- SKIP_SPACE(buf); /* Skip leading spaces in both texts */
- SKIP_SPACE(s);
-
- if (*buf=='\0')
- {
- return (((*s)!='\0') ? NOMATCH : EXACT);
- }
- else
- {
- if (ccase)
- {
- while(*s++ == *buf)
- {
- if (*buf++=='\0') return EXACT;
- }
- }
- else
- {
- while(toupper(*s++)==toupper(*buf))
- {
- if (*buf++=='\0') return EXACT;
- }
- }
- }
- /* At this location buf points to the first character where it no longer
- matches with s. So if only blanks are following, we have a partial
- match otherwise there is no match */
- SKIP_SPACE(buf);
- if (*buf)
- return NOMATCH;
-
- /* If it happens that the reference buffer is at its end, the partial
- match is actually an exact match. */
- return ((s[-1]!='\0') ? PARTIAL : EXACT);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Enum_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid enumeration value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Enum_Field(FIELD * field, const void * argp)
-{
- char **kwds = ((const enumARG *)argp)->kwds;
- bool ccase = ((const enumARG *)argp)->checkcase;
- bool unique = ((const enumARG *)argp)->checkunique;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- char *s, *t, *p;
- int res;
-
- while( kwds && (s=(*kwds++)) )
- {
- if ((res=Compare((unsigned char *)s,bp,ccase))!=NOMATCH)
- {
- p=t=s; /* t is at least a partial match */
- if ((unique && res!=EXACT))
- {
- while( kwds && (p = *kwds++) )
- {
- if ((res=Compare((unsigned char *)p,bp,ccase))!=NOMATCH)
- {
- if (res==EXACT)
- {
- t = p;
- break;
- }
- else
- t = (char *)0;
- }
- }
- }
- if (t)
- {
- set_field_buffer(field,0,t);
- return TRUE;
- }
- if (!p)
- break;
- }
- }
- return FALSE;
-}
-
-static const char *dummy[] = { (char *)0 };
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Next_Enum(FIELD * field,
-| const void * argp)
-|
-| Description : Check for the next enumeration value
-|
-| Return Values : TRUE - next value found and loaded
-| FALSE - no next value loaded
-+--------------------------------------------------------------------------*/
-static bool Next_Enum(FIELD * field, const void * argp)
-{
- const enumARG *args = (const enumARG *)argp;
- char **kwds = args->kwds;
- bool ccase = args->checkcase;
- int cnt = args->count;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
-
- if (kwds) {
- while(cnt--)
- {
- if (Compare((unsigned char *)(*kwds++),bp,ccase)==EXACT)
- break;
- }
- if (cnt<=0)
- kwds = args->kwds;
- if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT))
- {
- set_field_buffer(field,0,*kwds);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Previous_Enum(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Check for the previous enumeration value
-|
-| Return Values : TRUE - previous value found and loaded
-| FALSE - no previous value loaded
-+--------------------------------------------------------------------------*/
-static bool Previous_Enum(FIELD * field, const void * argp)
-{
- const enumARG *args = (const enumARG *)argp;
- int cnt = args->count;
- char **kwds = &args->kwds[cnt-1];
- bool ccase = args->checkcase;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
-
- if (kwds) {
- while(cnt--)
- {
- if (Compare((unsigned char *)(*kwds--),bp,ccase)==EXACT)
- break;
- }
-
- if (cnt<=0)
- kwds = &args->kwds[args->count-1];
-
- if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT))
- {
- set_field_buffer(field,0,*kwds);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-static FIELDTYPE typeENUM = {
- _HAS_ARGS | _HAS_CHOICE | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_Enum_Type,
- Copy_Enum_Type,
- Free_Enum_Type,
- Check_Enum_Field,
- NULL,
- Next_Enum,
- Previous_Enum
-};
-
-FIELDTYPE* TYPE_ENUM = &typeENUM;
-
-/* fty_enum.c ends here */
diff --git a/ncurses-5.2/form/fty_int.c b/ncurses-5.2/form/fty_int.c
deleted file mode 100644
index 304d9fd..0000000
--- a/ncurses-5.2/form/fty_int.c
+++ /dev/null
@@ -1,160 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-typedef struct {
- int precision;
- long low;
- long high;
-} integerARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Integer_Type( va_list * ap )
-|
-| Description : Allocate structure for integer type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_Integer_Type(va_list * ap)
-{
- integerARG *argp = (integerARG *)malloc(sizeof(integerARG));
-
- if (argp)
- {
- argp->precision = va_arg(*ap,int);
- argp->low = va_arg(*ap,long);
- argp->high = va_arg(*ap,long);
- }
- return (void *)argp;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Integer_Type(const void * argp)
-|
-| Description : Copy structure for integer type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_Integer_Type(const void * argp)
-{
- const integerARG *ap = (const integerARG *)argp;
- integerARG *result = (integerARG *)0;
-
- if (argp)
- {
- result = (integerARG *)malloc(sizeof(integerARG));
- if (result)
- *result = *ap;
- }
- return (void *)result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Integer_Type(void * argp)
-|
-| Description : Free structure for integer type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_Integer_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Integer_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid integer value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Integer_Field(FIELD * field, const void * argp)
-{
- const integerARG *argi = (const integerARG *)argp;
- long low = argi->low;
- long high = argi->high;
- int prec = argi->precision;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- char *s = (char *)bp;
- long val;
- char buf[100];
-
- while( *bp && *bp==' ') bp++;
- if (*bp)
- {
- if (*bp=='-') bp++;
- while (*bp)
- {
- if (!isdigit(*bp)) break;
- bp++;
- }
- while(*bp && *bp==' ') bp++;
- if (*bp=='\0')
- {
- val = atol(s);
- if (low<high)
- {
- if (val<low || val>high) return FALSE;
- }
- sprintf(buf,"%.*ld",(prec>0?prec:0),val);
- set_field_buffer(field,0,buf);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Integer_Character(
-| int c,
-| const void * argp)
-|
-| Description : Check a character for the integer type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Integer_Character(int c, const void * argp GCC_UNUSED)
-{
- return ((isdigit(c) || (c=='-')) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeINTEGER = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_Integer_Type,
- Copy_Integer_Type,
- Free_Integer_Type,
- Check_Integer_Field,
- Check_Integer_Character,
- NULL,
- NULL
-};
-
-FIELDTYPE* TYPE_INTEGER = &typeINTEGER;
-
-/* fty_int.c ends here */
diff --git a/ncurses-5.2/form/fty_ipv4.c b/ncurses-5.2/form/fty_ipv4.c
deleted file mode 100644
index 7e361a4..0000000
--- a/ncurses-5.2/form/fty_ipv4.c
+++ /dev/null
@@ -1,81 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Per Foreby, perf@efd.lth.se *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_IPV4_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid IP number (Ver. 4)
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_IPV4_Field(FIELD * field, const void * argp GCC_UNUSED)
-{
- char *bp = field_buffer(field,0);
- int num = 0, len;
- unsigned int d1, d2, d3, d4;
-
- if(isdigit(*bp)) /* Must start with digit */
- {
- num = sscanf(bp, "%u.%u.%u.%u%n", &d1, &d2, &d3, &d4, &len);
- if (num == 4)
- {
- bp += len; /* Make bp point to what sscanf() left */
- while (*bp && isspace(*bp))
- bp++; /* Allow trailing whitespace */
- }
- }
- return ((num != 4 || *bp || d1 > 255 || d2 > 255
- || d3 > 255 || d4 > 255) ? FALSE : TRUE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_IPV4_Character(
-| int c,
-| const void *argp )
-|
-| Description : Check a character for unsigned type or period.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_IPV4_Character(int c, const void * argp GCC_UNUSED)
-{
- return ((isdigit(c) || (c=='.')) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeIPV4 = {
- _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- NULL,
- NULL,
- NULL,
- Check_IPV4_Field,
- Check_IPV4_Character,
- NULL,
- NULL
-};
-
-FIELDTYPE* TYPE_IPV4 = &typeIPV4;
-
-/* fty_ipv4.c ends here */
diff --git a/ncurses-5.2/form/fty_num.c b/ncurses-5.2/form/fty_num.c
deleted file mode 100644
index ba15ab8..0000000
--- a/ncurses-5.2/form/fty_num.c
+++ /dev/null
@@ -1,195 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-#if HAVE_LOCALE_H
-#include <locale.h>
-#endif
-
-typedef struct {
- int precision;
- double low;
- double high;
- struct lconv* L;
-} numericARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Numeric_Type(va_list * ap)
-|
-| Description : Allocate structure for numeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_Numeric_Type(va_list * ap)
-{
- numericARG *argn = (numericARG *)malloc(sizeof(numericARG));
-
- if (argn)
- {
- argn->precision = va_arg(*ap,int);
- argn->low = va_arg(*ap,double);
- argn->high = va_arg(*ap,double);
-#if HAVE_LOCALE_H
- argn->L = localeconv();
-#else
- argn->L = NULL;
-#endif
- }
- return (void *)argn;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Numeric_Type(const void * argp)
-|
-| Description : Copy structure for numeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_Numeric_Type(const void * argp)
-{
- const numericARG *ap = (const numericARG *)argp;
- numericARG *result = (numericARG *)0;
-
- if (argp)
- {
- result = (numericARG *)malloc(sizeof(numericARG));
- if (result)
- *result = *ap;
- }
- return (void *)result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Numeric_Type(void * argp)
-|
-| Description : Free structure for numeric type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_Numeric_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Numeric_Field(FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid numeric value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Numeric_Field(FIELD * field, const void * argp)
-{
- const numericARG *argn = (const numericARG *)argp;
- double low = argn->low;
- double high = argn->high;
- int prec = argn->precision;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- char *s = (char *)bp;
- double val = 0.0;
- struct lconv* L = argn->L;
- char buf[64];
-
- while(*bp && *bp==' ') bp++;
- if (*bp)
- {
- if (*bp=='-' || *bp=='+')
- bp++;
- while(*bp)
- {
- if (!isdigit(*bp)) break;
- bp++;
- }
- if (*bp==(
-#if HAVE_LOCALE_H
- (L && L->decimal_point) ? *(L->decimal_point) :
-#endif
- '.'))
- {
- bp++;
- while(*bp)
- {
- if (!isdigit(*bp)) break;
- bp++;
- }
- }
- while(*bp && *bp==' ') bp++;
- if (*bp=='\0')
- {
- val = atof(s);
- if (low<high)
- {
- if (val<low || val>high) return FALSE;
- }
- sprintf(buf,"%.*f",(prec>0?prec:0),val);
- set_field_buffer(field,0,buf);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Numeric_Character(
-| int c,
-| const void * argp)
-|
-| Description : Check a character for the numeric type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Numeric_Character(int c, const void * argp)
-{
- const numericARG *argn = (const numericARG *)argp;
- struct lconv* L = argn->L;
-
- return (isdigit(c) ||
- c == '+' ||
- c == '-' ||
- c == (
-#if HAVE_LOCALE_H
- (L && L->decimal_point) ? *(L->decimal_point) :
-#endif
- '.')
- ) ? TRUE : FALSE;
-}
-
-static FIELDTYPE typeNUMERIC = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_Numeric_Type,
- Copy_Numeric_Type,
- Free_Numeric_Type,
- Check_Numeric_Field,
- Check_Numeric_Character,
- NULL,
- NULL
-};
-
-FIELDTYPE* TYPE_NUMERIC = &typeNUMERIC;
-
-/* fty_num.c ends here */
diff --git a/ncurses-5.2/form/fty_regex.c b/ncurses-5.2/form/fty_regex.c
deleted file mode 100644
index ec02157..0000000
--- a/ncurses-5.2/form/fty_regex.c
+++ /dev/null
@@ -1,257 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer, juergen.pfeifer@gmx.net *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-#if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
-#include <regex.h>
-
-typedef struct
-{
- regex_t *pRegExp;
- unsigned long *refCount;
-} RegExp_Arg;
-
-#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
-#undef RETURN
-static int reg_errno;
-
-static char *RegEx_Init(char *instring)
-{
- reg_errno = 0;
- return instring;
-}
-
-static char *RegEx_Error(int code)
-{
- reg_errno = code;
- return 0;
-}
-
-#define INIT register char *sp = RegEx_Init(instring);
-#define GETC() (*sp++)
-#define PEEKC() (*sp)
-#define UNGETC(c) (--sp)
-#define RETURN(c) return(c)
-#define ERROR(c) return RegEx_Error(c)
-
-#if HAVE_REGEXP_H_FUNCS
-#include <regexp.h>
-#else
-#include <regexpr.h>
-#endif
-
-typedef struct
-{
- char *compiled_expression;
- unsigned long *refCount;
-} RegExp_Arg;
-
-/* Maximum Length we allow for a compiled regular expression */
-#define MAX_RX_LEN (2048)
-#define RX_INCREMENT (256)
-
-#endif
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_RegularExpression_Type(va_list * ap)
-|
-| Description : Allocate structure for regex type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_RegularExpression_Type(va_list * ap)
-{
-#if HAVE_REGEX_H_FUNCS
- char *rx = va_arg(*ap,char *);
- RegExp_Arg *preg;
-
- preg = (RegExp_Arg*)malloc(sizeof(RegExp_Arg));
- if (preg)
- {
- if (((preg->pRegExp = (regex_t*)malloc(sizeof(regex_t))) != (regex_t*)0)
- && !regcomp(preg->pRegExp,rx,
- (REG_EXTENDED | REG_NOSUB | REG_NEWLINE) ))
- {
- preg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
- *(preg->refCount) = 1;
- }
- else
- {
- if (preg->pRegExp)
- free(preg->pRegExp);
- free(preg);
- preg = (RegExp_Arg*)0;
- }
- }
- return((void *)preg);
-#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- char *rx = va_arg(*ap,char *);
- RegExp_Arg *pArg;
-
- pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
-
- if (pArg)
- {
- int blen = RX_INCREMENT;
- pArg->compiled_expression = NULL;
- pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
- *(pArg->refCount) = 1;
-
- do {
- char *buf = (char *)malloc(blen);
- if (buf)
- {
-#if HAVE_REGEXP_H_FUNCS
- char *last_pos = compile (rx, buf, &buf[blen], '\0');
-#else /* HAVE_REGEXPR_H_FUNCS */
- char *last_pos = compile (rx, buf, &buf[blen]);
-#endif
- if (reg_errno)
- {
- free(buf);
- if (reg_errno==50)
- blen += RX_INCREMENT;
- else
- {
- free(pArg);
- pArg = NULL;
- break;
- }
- }
- else
- {
- pArg->compiled_expression = buf;
- break;
- }
- }
- } while( blen <= MAX_RX_LEN );
- }
- if (pArg && !pArg->compiled_expression)
- {
- free(pArg);
- pArg = NULL;
- }
- return (void *)pArg;
-#else
- return 0;
-#endif
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_RegularExpression_Type(
-| const void * argp)
-|
-| Description : Copy structure for regex type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_RegularExpression_Type(const void * argp)
-{
-#if (HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS)
- const RegExp_Arg *ap = (const RegExp_Arg *)argp;
- const RegExp_Arg *result = (const RegExp_Arg *)0;
-
- if (ap)
- {
- *(ap->refCount) += 1;
- result = ap;
- }
- return (void *)result;
-#else
- return 0;
-#endif
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_RegularExpression_Type(void * argp)
-|
-| Description : Free structure for regex type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_RegularExpression_Type(void * argp)
-{
-#if HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- RegExp_Arg *ap = (RegExp_Arg *)argp;
- if (ap)
- {
- if (--(*(ap->refCount)) == 0)
- {
-#if HAVE_REGEX_H_FUNCS
- if (ap->pRegExp)
- {
- free(ap->refCount);
- regfree(ap->pRegExp);
- }
-#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- if (ap->compiled_expression)
- {
- free(ap->refCount);
- free(ap->compiled_expression);
- }
-#endif
- free(ap);
- }
- }
-#endif
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_RegularExpression_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid regular expression
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_RegularExpression_Field(FIELD * field, const void * argp)
-{
- bool match = FALSE;
-#if HAVE_REGEX_H_FUNCS
- const RegExp_Arg *ap = (const RegExp_Arg*)argp;
- if (ap && ap->pRegExp)
- match = (regexec(ap->pRegExp,field_buffer(field,0),0,NULL,0) ? FALSE:TRUE);
-#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- RegExp_Arg *ap = (RegExp_Arg *)argp;
- if (ap && ap->compiled_expression)
- match = (step(field_buffer(field,0),ap->compiled_expression) ? TRUE:FALSE);
-#endif
- return match;
-}
-
-static FIELDTYPE typeREGEXP = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_RegularExpression_Type,
- Copy_RegularExpression_Type,
- Free_RegularExpression_Type,
- Check_RegularExpression_Field,
- NULL,
- NULL,
- NULL
-};
-
-FIELDTYPE* TYPE_REGEXP = &typeREGEXP;
-
-/* fty_regex.c ends here */
diff --git a/ncurses-5.2/form/headers b/ncurses-5.2/form/headers
deleted file mode 100644
index f2267c8..0000000
--- a/ncurses-5.2/form/headers
+++ /dev/null
@@ -1,31 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-$(srcdir)/form.h
diff --git a/ncurses-5.2/form/llib-lform b/ncurses-5.2/form/llib-lform
deleted file mode 100644
index ac2ba43..0000000
--- a/ncurses-5.2/form/llib-lform
+++ /dev/null
@@ -1,694 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
- ****************************************************************************/
-/* 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
-bool _nc_Copy_Type(
- FIELD *dst,
- FIELD const *src)
- { return(*(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,
- bool (*const next_choice)(
- FIELD *p1,
- const void *p2),
- 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(
- bool (*const field_check)(
- FIELD *p1,
- const void *p2),
- 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,
- bool new_page_flag)
- { return(*(int *)0); }
-
-#undef new_page
-bool new_page(
- const FIELD *field)
- { return(*(bool *)0); }
-
-/* ./fld_stat.c */
-
-#undef set_field_status
-int set_field_status(
- FIELD *field,
- bool status)
- { return(*(int *)0); }
-
-#undef field_status
-bool field_status(
- const FIELD *field)
- { return(*(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
-bool data_behind(
- const FORM *form)
- { return(*(bool *)0); }
-
-#undef data_ahead
-bool data_ahead(
- const FORM *form)
- { return(*(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
-bool _nc_Internal_Validation(
- FORM *form)
- { return(*(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;
- bool checkcase;
- 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 */
-
-#include <locale.h>
-
-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;
diff --git a/ncurses-5.2/form/modules b/ncurses-5.2/form/modules
deleted file mode 100644
index 0ad9666..0000000
--- a/ncurses-5.2/form/modules
+++ /dev/null
@@ -1,73 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-
-@ base
-# Library objects
-fld_arg lib $(srcdir) $(FORM_PRIV_H)
-fld_attr lib $(srcdir) $(FORM_PRIV_H)
-fld_current lib $(srcdir) $(FORM_PRIV_H)
-fld_def lib $(srcdir) $(FORM_PRIV_H)
-fld_dup lib $(srcdir) $(FORM_PRIV_H)
-fld_ftchoice lib $(srcdir) $(FORM_PRIV_H)
-fld_ftlink lib $(srcdir) $(FORM_PRIV_H)
-fld_info lib $(srcdir) $(FORM_PRIV_H)
-fld_just lib $(srcdir) $(FORM_PRIV_H)
-fld_link lib $(srcdir) $(FORM_PRIV_H)
-fld_max lib $(srcdir) $(FORM_PRIV_H)
-fld_move lib $(srcdir) $(FORM_PRIV_H)
-fld_newftyp lib $(srcdir) $(FORM_PRIV_H)
-fld_opts lib $(srcdir) $(FORM_PRIV_H)
-fld_pad lib $(srcdir) $(FORM_PRIV_H)
-fld_page lib $(srcdir) $(FORM_PRIV_H)
-fld_stat lib $(srcdir) $(FORM_PRIV_H)
-fld_type lib $(srcdir) $(FORM_PRIV_H)
-fld_user lib $(srcdir) $(FORM_PRIV_H)
-frm_cursor lib $(srcdir) $(FORM_PRIV_H)
-frm_data lib $(srcdir) $(FORM_PRIV_H)
-frm_def lib $(srcdir) $(FORM_PRIV_H)
-frm_driver lib $(srcdir) $(FORM_PRIV_H)
-frm_hook lib $(srcdir) $(FORM_PRIV_H)
-frm_opts lib $(srcdir) $(FORM_PRIV_H)
-frm_page lib $(srcdir) $(FORM_PRIV_H)
-frm_post lib $(srcdir) $(FORM_PRIV_H)
-frm_req_name lib $(srcdir) $(FORM_PRIV_H)
-frm_scale lib $(srcdir) $(FORM_PRIV_H)
-frm_sub lib $(srcdir) $(FORM_PRIV_H)
-frm_user lib $(srcdir) $(FORM_PRIV_H)
-frm_win lib $(srcdir) $(FORM_PRIV_H)
-fty_alnum lib $(srcdir) $(FORM_PRIV_H)
-fty_alpha lib $(srcdir) $(FORM_PRIV_H)
-fty_enum lib $(srcdir) $(FORM_PRIV_H)
-fty_int lib $(srcdir) $(FORM_PRIV_H)
-fty_ipv4 lib $(srcdir) $(FORM_PRIV_H)
-fty_num lib $(srcdir) $(FORM_PRIV_H)
-fty_regex lib $(srcdir) $(FORM_PRIV_H)
diff --git a/ncurses-5.2/include/Caps b/ncurses-5.2/include/Caps
deleted file mode 100644
index c07988f..0000000
--- a/ncurses-5.2/include/Caps
+++ /dev/null
@@ -1,1314 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
-# and: Eric S. Raymond <esr@snark.thyrsus.com>
-#
-# $Id$
-#
-# This is the master termcap/terminfo capability table.
-#
-# 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: Lead with `Y' if capability should be emitted in termcap
-# translations, `-' otherwise
-# Column 6: capability description
-#
-# The codes following [Y-] in column 5 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
-# a * or **.
-#
-# 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 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
-#
-# 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
-#
-# 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 ----- 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
-#
-# 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
-#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
-# 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/ncurses-5.2/include/MKhashsize.sh b/ncurses-5.2/include/MKhashsize.sh
deleted file mode 100755
index d11d7bf..0000000
--- a/ncurses-5.2/include/MKhashsize.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-#
-# MKhashsize.sh --- generate size include for hash functions
-#
-echo "/*"
-echo " * hashsize.h -- hash and token table constants"
-echo " */"
-
-CAPS="${1-Caps}"
-TABSIZE=`grep -v '^[ #]' $CAPS | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | wc -l`
-
-echo ""
-echo "#define CAPTABSIZE ${TABSIZE}"
-echo "#define HASHTABSIZE (${TABSIZE} * 2)"
diff --git a/ncurses-5.2/include/MKncurses_def.sh b/ncurses-5.2/include/MKncurses_def.sh
deleted file mode 100755
index 7e9d017..0000000
--- a/ncurses-5.2/include/MKncurses_def.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#! /bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# MKncurses_def.sh -- generate fallback definitions for ncurses_cfg.h
-#
-# Author: Thomas E. Dickey <dickey@herndon4.his.com> 2000
-#
-# Given the choice between constructs such as
-#
-# #if defined(foo) && foo
-# #if foo
-#
-# we chose the latter. It is guaranteed by the language standard, and there
-# appear to be no broken compilers that do not honor that detail. But some
-# people want to use gcc's -Wundef option (corresponding to one of the less
-# useful features in Watcom's compiler) to check for misspellings. So we
-# generate a set of fallback definitions to quiet the warnings without making
-# the code ugly.
-#
-DEFS="${1-ncurses_defs}"
-cat <<EOF
-/*
- * This file is generated by $0
- */
-
-#ifndef NC_DEFINE_H
-#define NC_DEFINE_H 1
-
-EOF
-
-${AWK-awk} <$DEFS '
-!/^[@#]/ {
- if ( NF == 1 )
- {
- print "#ifndef", $1
- print "#define", $1, "0"
- print "#endif"
- print ""
- } else if ( NF != 0 ) {
- print "#ifndef", $1
- printf "#define"
- for (n = 1; n <= NF; n++) {
- printf " %s", $n
- }
- print ""
- print "#endif"
- print ""
- }
-}
-END {
-print "#endif /* NC_DEFINE_H */"
- }
-'
diff --git a/ncurses-5.2/include/MKparametrized.sh b/ncurses-5.2/include/MKparametrized.sh
deleted file mode 100755
index 6a36cb7..0000000
--- a/ncurses-5.2/include/MKparametrized.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# MKparametrized.sh -- generate indirection vectors for various sort methods
-#
-# The output of this script is C source for an array specifying whether
-# termcap strings should undergo parameter and padding translation.
-#
-CAPS="${1-Caps}"
-cat <<EOF
-/*
- * parametrized.h --- is a termcap capability parametrized?
- *
- * Note: this file is generated using MKparametrized.sh, do not edit by hand.
- * A value of -1 in the table means suppress both pad and % translations.
- * A value of 0 in the table means do pad but not % translations.
- * A value of 1 in the table means do both pad and % translations.
- */
-
-static short const parametrized[] = {
-EOF
-
-# We detect whether % translations should be done by looking for #[0-9] in the
-# description field. We presently suppress padding translation only for the
-# XENIX acs_* capabilities. Maybe someday we'll dedicate a flag field for
-# this, that would be cleaner....
-
-${AWK-awk} <$CAPS '
-$3 != "str" {next;}
-$1 ~ /^acs_/ {print "-1,\t/* ", $2, " */"; count++; next;}
-$0 ~ /#[0-9]/ {print "1,\t/* ", $2, " */"; count++; next;}
- {print "0,\t/* ", $2, " */"; count++;}
-END {printf("} /* %d entries */;\n\n", count);}
-'
-
diff --git a/ncurses-5.2/include/MKterm.h.awk.in b/ncurses-5.2/include/MKterm.h.awk.in
deleted file mode 100644
index 5781188..0000000
--- a/ncurses-5.2/include/MKterm.h.awk.in
+++ /dev/null
@@ -1,315 +0,0 @@
-
-BEGIN {
- print "/****************************************************************************"
- print " * Copyright (c) 1998,1999,2000 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 " * \"Software\"), to deal in the Software without restriction, including *"
- print " * without limitation the rights to use, copy, modify, merge, publish, *"
- print " * distribute, distribute with modifications, sublicense, and/or sell *"
- print " * copies of the Software, and to permit persons to whom the Software is *"
- print " * furnished to do so, subject to the following conditions: *"
- print " * *"
- print " * The above copyright notice and this permission notice shall be included *"
- print " * in all copies or substantial portions of the Software. *"
- print " * *"
- print " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS *"
- print " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *"
- print " * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *"
- print " * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *"
- print " * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *"
- print " * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *"
- print " * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *"
- print " * *"
- print " * Except as contained in this notice, the name(s) of the above copyright *"
- print " * holders shall not be used in advertising or otherwise to promote the *"
- print " * sale, use or other dealings in this Software without prior written *"
- print " * authorization. *"
- print " ****************************************************************************/"
- print ""
- print "/****************************************************************************/"
- print "/* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 */"
- print "/* and: Eric S. Raymond <esr@snark.thyrsus.com> */"
- print "/****************************************************************************/"
- print ""
- print "/* $Id$ */"
- print ""
- print "/*"
- print "** term.h -- Definition of struct term"
- print "*/"
- print ""
- print "#ifndef _NCU_TERM_H"
- print "#define _NCU_TERM_H 1"
- print ""
- print "#undef NCURSES_VERSION"
- print "#define NCURSES_VERSION \"@NCURSES_MAJOR@.@NCURSES_MINOR@\""
- 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 " * and BROKEN_LINKER definition (based on the system for which this was"
- print " * configured)."
- 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 BROKEN_LINKER"
- print "#define BROKEN_LINKER 0/*default*/"
- print ""
- print "#undef NCURSES_CONST"
- print "#define NCURSES_CONST @NCURSES_CONST@"
- print ""
- print "#undef NCURSES_XNAMES"
- print "#define NCURSES_XNAMES @NCURSES_XNAMES@"
- print ""
- print "/* We will use these symbols to hide differences between"
- print " * termios/termio/sgttyb interfaces."
- print " */"
- print "#undef TTY"
- print "#undef SET_TTY"
- print "#undef GET_TTY"
- print ""
- print "/* Assume Posix termio if we have the header and function */"
- print "#if HAVE_TERMIOS_H && HAVE_TCGETATTR"
- print ""
- print "#undef TERMIOS"
- print "#define TERMIOS 1"
- print ""
- print "#include <termios.h>"
- print "#define TTY struct termios"
- print ""
- print "#else /* !HAVE_TERMIOS_H */"
- print ""
- print "#if HAVE_TERMIO_H"
- print ""
- print "#undef TERMIOS"
- print "#define TERMIOS 1"
- print ""
- print "#include <termio.h>"
- print "#define TTY struct termio"
- print ""
- print "/* Add definitions to make termio look like termios."
- print " * But ifdef it, since there are some implementations"
- print " * that try to do this for us in a fake <termio.h>."
- print " */"
- print "#ifndef TCSANOW"
- print "#define TCSANOW TCSETA"
- print "#endif"
- print "#ifndef TCSADRAIN"
- print "#define TCSADRAIN TCSETAW"
- print "#endif"
- print "#ifndef TCSAFLUSH"
- print "#define TCSAFLUSH TCSETAF"
- print "#endif"
- print "#ifndef tcsetattr"
- print "#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)"
- print "#endif"
- print "#ifndef tcgetattr"
- print "#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)"
- print "#endif"
- print "#ifndef cfgetospeed"
- print "#define cfgetospeed(t) ((t)->c_cflag & CBAUD)"
- print "#endif"
- print "#ifndef TCIFLUSH "
- print "#define TCIFLUSH 0"
- print "#endif"
- print "#ifndef TCOFLUSH "
- print "#define TCOFLUSH 1"
- print "#endif"
- print "#ifndef TCIOFLUSH "
- print "#define TCIOFLUSH 2"
- print "#endif"
- print "#ifndef tcflush"
- print "#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)"
- print "#endif"
- print ""
- print "#else /* !HAVE_TERMIO_H */"
- print ""
- print "#undef TERMIOS"
- print "#include <sgtty.h>"
- print "#include <sys/ioctl.h>"
- print "#define TTY struct sgttyb"
- print ""
- print "#endif /* HAVE_TERMIO_H */"
- print ""
- print "#endif /* HAVE_TERMIOS_H */"
- print ""
- print "#ifdef TERMIOS"
- print "#define GET_TTY(fd, buf) tcgetattr(fd, buf)"
- print "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)"
- print "#else"
- print "#define GET_TTY(fd, buf) gtty(fd, buf)"
- print "#define SET_TTY(fd, buf) stty(fd, buf)"
- print "#endif"
- print ""
- print "#define NAMESIZE 256"
- print ""
- print "#define CUR cur_term->type."
- print ""
- }
-
-$2 == "%%-STOP-HERE-%%" {
- print ""
- printf "#define BOOLWRITE %d\n", BoolCount
- printf "#define NUMWRITE %d\n", NumberCount
- printf "#define STRWRITE %d\n", StringCount
- print ""
- print "/* older synonyms for some capabilities */"
- print "#define beehive_glitch no_esc_ctlc"
- print "#define teleray_glitch dest_tabs_magic_smso"
- print "#define micro_char_size micro_col_size"
- print ""
- print "#ifdef __INTERNAL_CAPS_VISIBLE"
- }
-
-/^#/ {next;}
-
-$1 == "acs_chars" {acsindex = StringCount}
-
-$3 == "bool" {
- printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++
- }
-
-$3 == "num" {
- printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++
- }
-
-$3 == "str" {
- printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++
- }
-
-END {
- print "#endif /* __INTERNAL_CAPS_VISIBLE */"
- print ""
- print ""
- print "/*"
- print " * Predefined terminfo array sizes"
- print " */"
- printf "#define BOOLCOUNT %d\n", BoolCount
- printf "#define NUMCOUNT %d\n", NumberCount
- printf "#define STRCOUNT %d\n", StringCount
- print ""
- print "/* used by code for comparing entries */"
- print "#define acs_chars_index ", acsindex
- print ""
- print "typedef struct termtype { /* in-core form of terminfo data */"
- print " char *term_names; /* str_table offset of term names */"
- print " char *str_table; /* pointer to string table */"
- print " char *Booleans; /* array of boolean values */"
- print " short *Numbers; /* array of integer values */"
- print " char **Strings; /* array of string offsets */"
- print ""
- print "#if NCURSES_XNAMES"
- print " char *ext_str_table; /* pointer to extended string table */"
- print " char **ext_Names; /* corresponding names */"
- print ""
- print " unsigned short num_Booleans;/* count total Booleans */"
- print " unsigned short num_Numbers; /* count total Numbers */"
- print " unsigned short num_Strings; /* count total Strings */"
- print ""
- print " unsigned short ext_Booleans;/* count extensions to Booleans */"
- print " unsigned short ext_Numbers; /* count extensions to Numbers */"
- print " unsigned short ext_Strings; /* count extensions to Strings */"
- print "#endif /* NCURSES_XNAMES */"
- print ""
- print "} TERMTYPE;"
- print ""
- print "typedef struct term { /* describe an actual terminal */"
- print " TERMTYPE type; /* terminal type description */"
- 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 "extern TERMINAL *cur_term;"
- print ""
- print "#if BROKEN_LINKER"
- print "#define boolnames _nc_boolnames()"
- print "#define boolcodes _nc_boolcodes()"
- print "#define boolfnames _nc_boolfnames()"
- print "#define numnames _nc_numnames()"
- print "#define numcodes _nc_numcodes()"
- print "#define numfnames _nc_numfnames()"
- print "#define strnames _nc_strnames()"
- 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 ""
- 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 ""
- 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 ""
- print "/* entry points */"
- print "extern TERMINAL *set_curterm(TERMINAL *);"
- print "extern int del_curterm(TERMINAL *);"
- print ""
- print "/* miscellaneous entry points */"
- print "extern int restartterm(NCURSES_CONST char *, int, int *);"
- print "extern int setupterm(NCURSES_CONST char *,int,int *);"
- 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 "#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 ""
- print "#ifdef __cplusplus"
- print "}"
- print "#endif"
- print ""
- print "#endif /* _NCU_TERM_H */"
- }
diff --git a/ncurses-5.2/include/Makefile.in b/ncurses-5.2/include/Makefile.in
deleted file mode 100644
index 4c37f83..0000000
--- a/ncurses-5.2/include/Makefile.in
+++ /dev/null
@@ -1,111 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for ncurses source code.
-#
-# This makes/installs ncurses include-files
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-includedir = @includedir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-VERSION = @cf_cv_rel_version@
-
-# These files are generated by the configure script
-CONFIG_SRC = \
- MKterm.h.awk \
- curses.h \
- termcap.h \
- unctrl.h
-
-# These files are generated by this makefile
-AUTO_SRC = \
- hashsize.h \
- ncurses_def.h \
- parametrized.h \
- term.h
-
-################################################################################
-all \
-libs \
-sources \
-install :: $(AUTO_SRC)
-
-term.h: $(srcdir)/Caps MKterm.h.awk
- $(AWK) -f MKterm.h.awk $(srcdir)/Caps > $@
- sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
-
-hashsize.h: $(srcdir)/Caps $(srcdir)/MKhashsize.sh
- sh $(srcdir)/MKhashsize.sh $(srcdir)/Caps >$@
-
-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 >$@
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
-
-distclean :: clean
- -rm -f Makefile $(CONFIG_SRC)
-
-realclean :: distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/include/capdefaults.c b/ncurses-5.2/include/capdefaults.c
deleted file mode 100644
index 617cea8..0000000
--- a/ncurses-5.2/include/capdefaults.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* $Id$ */
-
- /*
- * Compute obsolete capabilities. The reason this is an include file is
- * that the two places where it's needed want the macros to generate
- * offsets to different structures. See the file Caps for explanations of
- * these conversions.
- *
- * Note: This code is the functional inverse of the first part of
- * postprocess_termcap().
- */
-{
- char *sp;
- int capval;
-
-#define EXTRACT_DELAY(str) (sp = strchr(str, '*'), sp ? atoi(sp+1) : 0)
-
- /* current (4.4BSD) capabilities marked obsolete */
- if (VALID_STRING(carriage_return)
- && (capval = EXTRACT_DELAY(carriage_return)))
- carriage_return_delay = capval;
- if (VALID_STRING(newline) && (capval = EXTRACT_DELAY(newline)))
- new_line_delay = capval;
-
- /* current (4.4BSD) capabilities not obsolete */
- if (!VALID_STRING(termcap_init2) && VALID_STRING(init_3string)) {
- termcap_init2 = init_3string;
- init_3string = ABSENT_STRING;
- }
- if (!VALID_STRING(termcap_reset)
- && VALID_STRING(reset_2string)
- && !VALID_STRING(reset_1string)
- && !VALID_STRING(reset_3string)) {
- termcap_reset = reset_2string;
- reset_2string = ABSENT_STRING;
- }
- if (magic_cookie_glitch_ul == ABSENT_NUMERIC
- && magic_cookie_glitch != ABSENT_NUMERIC
- && VALID_STRING(enter_underline_mode))
- magic_cookie_glitch_ul = magic_cookie_glitch;
-
- /* totally obsolete capabilities */
- linefeed_is_newline = VALID_STRING(newline)
- && (strcmp("\n", newline) == 0);
- if (VALID_STRING(cursor_left)
- && (capval = EXTRACT_DELAY(cursor_left)))
- backspace_delay = capval;
- if (VALID_STRING(tab) && (capval = EXTRACT_DELAY(tab)))
- horizontal_tab_delay = capval;
-#undef EXTRACT_DELAY
-}
diff --git a/ncurses-5.2/include/curses.h.in b/ncurses-5.2/include/curses.h.in
deleted file mode 100644
index 4ace141..0000000
--- a/ncurses-5.2/include/curses.h.in
+++ /dev/null
@@ -1,1370 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* $Id$ */
-
-#ifndef __NCURSES_H
-#define __NCURSES_H
-
-#define CURSES 1
-#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.
- * So we do not define it (yet).
-#define _XOPEN_CURSES 1
- */
-
-/* These are defined only in curses.h, and are used for conditional compiles */
-#define NCURSES_VERSION_MAJOR @NCURSES_MAJOR@
-#define NCURSES_VERSION_MINOR @NCURSES_MINOR@
-#define NCURSES_VERSION_PATCH @NCURSES_PATCH@
-
-/* This is defined in more than one ncurses header, for identification */
-#undef NCURSES_VERSION
-#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
-
-#ifdef NCURSES_NOMACROS
-#define NCURSES_ATTR_T attr_t
-#endif
-
-#ifndef NCURSES_ATTR_T
-#define NCURSES_ATTR_T int
-#endif
-
-#undef NCURSES_CONST
-#define NCURSES_CONST @NCURSES_CONST@
-
-#undef NCURSES_COLOR_T
-#define NCURSES_COLOR_T short
-
-#undef NCURSES_SIZE_T
-#define NCURSES_SIZE_T short
-
-typedef unsigned @cf_cv_typeof_chtype@ chtype;
-
-#include <stdio.h>
-#include <unctrl.h>
-#include <stdarg.h> /* we need va_list */
-#ifdef _XOPEN_SOURCE_EXTENDED
-#include <stddef.h> /* we want wchar_t */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-
-/* 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.
- */
-
-#undef TRUE
-#define TRUE 1
-
-#undef FALSE
-#define FALSE 0
-
-#if (!defined(__cplusplus) || !@cf_cv_builtin_bool@) && (!@cf_cv_cc_bool_type@)
-#undef bool
-typedef @cf_cv_type_of_bool@ bool;
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * XSI attributes. In the ncurses implementation, they are identical to the
- * A_ attributes.
- */
-#define WA_ATTRIBUTES A_ATTRIBUTES
-#define WA_NORMAL A_NORMAL
-#define WA_STANDOUT A_STANDOUT
-#define WA_UNDERLINE A_UNDERLINE
-#define WA_REVERSE A_REVERSE
-#define WA_BLINK A_BLINK
-#define WA_DIM A_DIM
-#define WA_BOLD A_BOLD
-#define WA_ALTCHARSET A_ALTCHARSET
-#define WA_INVIS A_INVIS
-#define WA_PROTECT A_PROTECT
-#define WA_HORIZONTAL A_HORIZONTAL
-#define WA_LEFT A_LEFT
-#define WA_LOW A_LOW
-#define WA_RIGHT A_RIGHT
-#define WA_TOP A_TOP
-#define WA_VERTICAL A_VERTICAL
-
-/* colors */
-extern int COLORS;
-extern int COLOR_PAIRS;
-
-#define COLOR_BLACK 0
-#define COLOR_RED 1
-#define COLOR_GREEN 2
-#define COLOR_YELLOW 3
-#define COLOR_BLUE 4
-#define COLOR_MAGENTA 5
-#define COLOR_CYAN 6
-#define COLOR_WHITE 7
-
-/* line graphics */
-
-extern chtype acs_map[];
-
-/* VT100 symbols begin here */
-#define ACS_ULCORNER (acs_map['l']) /* upper left corner */
-#define ACS_LLCORNER (acs_map['m']) /* lower left corner */
-#define ACS_URCORNER (acs_map['k']) /* upper right corner */
-#define ACS_LRCORNER (acs_map['j']) /* lower right corner */
-#define ACS_LTEE (acs_map['t']) /* tee pointing right */
-#define ACS_RTEE (acs_map['u']) /* tee pointing left */
-#define ACS_BTEE (acs_map['v']) /* tee pointing up */
-#define ACS_TTEE (acs_map['w']) /* tee pointing down */
-#define ACS_HLINE (acs_map['q']) /* horizontal line */
-#define ACS_VLINE (acs_map['x']) /* vertical line */
-#define ACS_PLUS (acs_map['n']) /* large plus or crossover */
-#define ACS_S1 (acs_map['o']) /* scan line 1 */
-#define ACS_S9 (acs_map['s']) /* scan line 9 */
-#define ACS_DIAMOND (acs_map['`']) /* diamond */
-#define ACS_CKBOARD (acs_map['a']) /* checker board (stipple) */
-#define ACS_DEGREE (acs_map['f']) /* degree symbol */
-#define ACS_PLMINUS (acs_map['g']) /* plus/minus */
-#define ACS_BULLET (acs_map['~']) /* bullet */
-/* Teletype 5410v1 symbols begin here */
-#define ACS_LARROW (acs_map[',']) /* arrow pointing left */
-#define ACS_RARROW (acs_map['+']) /* arrow pointing right */
-#define ACS_DARROW (acs_map['.']) /* arrow pointing down */
-#define ACS_UARROW (acs_map['-']) /* arrow pointing up */
-#define ACS_BOARD (acs_map['h']) /* board of squares */
-#define ACS_LANTERN (acs_map['i']) /* lantern symbol */
-#define ACS_BLOCK (acs_map['0']) /* solid square block */
-/*
- * These aren't documented, but a lot of System Vs have them anyway
- * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings).
- * The ACS_names may not match AT&T's, our source didn't know them.
- */
-#define ACS_S3 (acs_map['p']) /* scan line 3 */
-#define ACS_S7 (acs_map['r']) /* scan line 7 */
-#define ACS_LEQUAL (acs_map['y']) /* less/equal */
-#define ACS_GEQUAL (acs_map['z']) /* greater/equal */
-#define ACS_PI (acs_map['{']) /* Pi */
-#define ACS_NEQUAL (acs_map['|']) /* not equal */
-#define ACS_STERLING (acs_map['}']) /* UK pound sign */
-
-/*
- * Line drawing ACS names are of the form ACS_trbl, where t is the top, r
- * is the right, b is the bottom, and l is the left. t, r, b, and l might
- * be B (blank), S (single), D (double), or T (thick). The subset defined
- * here only uses B and S.
- */
-#define ACS_BSSB ACS_ULCORNER
-#define ACS_SSBB ACS_LLCORNER
-#define ACS_BBSS ACS_URCORNER
-#define ACS_SBBS ACS_LRCORNER
-#define ACS_SBSS ACS_RTEE
-#define ACS_SSSB ACS_LTEE
-#define ACS_SSBS ACS_BTEE
-#define ACS_BSSS ACS_TTEE
-#define ACS_BSBS ACS_HLINE
-#define ACS_SBSB ACS_VLINE
-#define ACS_SSSS ACS_PLUS
-
-#if !defined(ERR) || ((ERR) != -1)
-#define ERR (-1)
-#endif
-
-#if !defined(OK) || ((OK) != 0)
-#define OK (0)
-#endif
-
-/* values for the _flags member */
-#define _SUBWIN 0x01 /* is this a sub-window? */
-#define _ENDLINE 0x02 /* is the window flush right? */
-#define _FULLWIN 0x04 /* is the window full-screen? */
-#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */
-#define _ISPAD 0x10 /* is this window a pad? */
-#define _HASMOVED 0x20 /* has cursor moved since last refresh? */
-#define _WRAPPED 0x40 /* cursor was just wrappped */
-
-/*
- * this value is used in the firstchar and lastchar fields to mark
- * unchanged lines
- */
-#define _NOCHANGE -1
-
-/*
- * this value is used in the oldindex field to mark lines created by insertions
- * and scrolls.
- */
-#define _NEWINDEX -1
-
-typedef struct screen SCREEN;
-typedef struct _win_st WINDOW;
-
-typedef chtype attr_t; /* ...must be at least as wide as chtype */
-
-#ifdef _XOPEN_SOURCE_EXTENDED
-#ifndef _WCHAR_T
-typedef unsigned long wchar_t;
-#endif /* _WCHAR_T */
-#ifndef _WINT_T
-typedef long int wint_t;
-#endif /* _WINT_T */
-
-#define CCHARW_MAX 5
-typedef struct
-{
- attr_t attr;
- wchar_t chars[CCHARW_MAX];
-}
-cchar_t;
-#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 _win_st
-{
- NCURSES_SIZE_T _cury, _curx; /* current cursor position */
-
- /* window location and size */
- NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */
- NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */
-
- short _flags; /* window state flags */
-
- /* attribute tracking */
- attr_t _attrs; /* current attribute for non-space character */
- chtype _bkgd; /* current background char/attribute pair */
-
- /* 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 _immed; /* window in immed mode? (not yet used) */
- bool _sync; /* window in sync mode? */
- bool _use_keypad; /* process function keys into KEY_ symbols? */
- int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */
-
- struct ldat *_line; /* the actual line data */
-
- /* global screen state */
- NCURSES_SIZE_T _regtop; /* top line of scrolling region */
- NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */
-
- /* these are used only if this is a sub-window */
- int _parx; /* x coordinate of this window in parent */
- int _pary; /* y coordinate of this window in parent */
- WINDOW *_parent; /* pointer to parent if a sub-window */
-
- /* these are used only if this is a pad */
- struct pdat
- {
- NCURSES_SIZE_T _pad_y, _pad_x;
- NCURSES_SIZE_T _pad_top, _pad_left;
- NCURSES_SIZE_T _pad_bottom, _pad_right;
- } _pad;
-
- NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */
-};
-
-extern WINDOW *stdscr;
-extern WINDOW *curscr;
-extern WINDOW *newscr;
-
-extern int LINES;
-extern int COLS;
-extern int TABSIZE;
-
-/*
- * This global was an undocumented feature under AIX curses.
- */
-extern int ESCDELAY; /* ESC expire time in milliseconds */
-
-extern char ttytype[]; /* needed for backward compatibility */
-
-/*
- * 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);
-
-/*
- * GCC (and some other compilers) define '__attribute__'; we're using this
- * macro to alert the compiler to flag inconsistencies in printf/scanf-like
- * function calls. Just in case '__attribute__' isn't defined, make a dummy.
- * G++ doesn't accept it anyway.
- */
-#if !defined(__GNUC__) && !defined(__attribute__)
-#define __attribute__(p) /* nothing */
-#endif
-
-/*
- * For g++, turn off our macros that use __attribute__ (g++ recognizes some
- * of them, but not at the same version levels as gcc).
- */
-#ifdef __cplusplus
-#undef GCC_NORETURN
-#undef GCC_PRINTF
-#undef GCC_SCANF
-#undef GCC_UNUSED
-#endif
-
-/*
- * We cannot define these in ncurses_cfg.h, since they require parameters to be
- * passed (that's non-portable).
- */
-#ifdef GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-
-#ifdef GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-
-/*
- * Function prototypes. This is the complete XSI Curses list of required
- * functions. Those marked `generated' will have sources generated from the
- * macro definitions later in this file, in order to satisfy XPG4.2
- * 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 */
- GCC_PRINTFLIKE(3,4);
-extern int mvscanw(int,int, NCURSES_CONST char *,...) /* implemented */
- 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 */
- GCC_PRINTFLIKE(4,5);
-extern int mvwscanw(WINDOW *,int,int, NCURSES_CONST char *,...) /* implemented */
- 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 */
- 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 */
- 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 */
- GCC_PRINTFLIKE(2,3);
-extern int wredrawln(WINDOW *,int,int); /* implemented */
-extern int wrefresh(WINDOW *); /* implemented */
-extern int wscanw(WINDOW *, NCURSES_CONST char *,...) /* implemented */
- 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 bool mouse_trafo(int*, int*, bool); /* generated */
-
-/* attributes */
-
-#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + @cf_cv_widec_shift@))
-
-#define A_NORMAL 0L
-#define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
-#define A_CHARTEXT (NCURSES_BITS(@cf_cv_1UL@,0) - @cf_cv_1UL@)
-#define A_COLOR NCURSES_BITS(((@cf_cv_1UL@) << 8) - @cf_cv_1UL@,0)
-#define A_STANDOUT NCURSES_BITS(@cf_cv_1UL@,8)
-#define A_UNDERLINE NCURSES_BITS(@cf_cv_1UL@,9)
-#define A_REVERSE NCURSES_BITS(@cf_cv_1UL@,10)
-#define A_BLINK NCURSES_BITS(@cf_cv_1UL@,11)
-#define A_DIM NCURSES_BITS(@cf_cv_1UL@,12)
-#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_LOW NCURSES_BITS(@cf_cv_1UL@,19)
-#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 PAIR_NUMBER(a) (((a) & A_COLOR) >> @cf_cv_widec_shift@)
-
-/*
- * pseudo functions
- */
-#define wgetstr(w, s) wgetnstr(w, s, -1)
-#define getnstr(s, n) wgetnstr(stdscr, s, n)
-
-#define setterm(term) setupterm(term, 1, (int *)0)
-
-#define fixterm() reset_prog_mode()
-#define resetterm() reset_shell_mode()
-#define saveterm() def_prog_mode()
-#define crmode() cbreak()
-#define nocrmode() nocbreak()
-#define gettmode()
-
-#define getyx(win,y,x) (y = (win)?(win)->_cury:ERR, x = (win)?(win)->_curx:ERR)
-#define getbegyx(win,y,x) (y = (win)?(win)->_begy:ERR, x = (win)?(win)->_begx:ERR)
-#define getmaxyx(win,y,x) (y = (win)?((win)->_maxy + 1):ERR, x = (win)?((win)->_maxx + 1):ERR)
-#define getparyx(win,y,x) (y = (win)?(win)->_pary:ERR, x = (win)?(win)->_parx:ERR)
-#define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \
- else getyx(newscr,(y),(x)); \
- } while(0)
-#define setsyx(y,x) do { if((y)==-1 && (x)==-1) newscr->_leaveok=TRUE; \
- else {newscr->_leaveok=FALSE;wmove(newscr,(y),(x));} \
- } while(0)
-
-/* It seems older SYSV curses versions define these */
-#define getattrs(win) ((win)?(win)->_attrs:A_NORMAL)
-#define getcurx(win) ((win)?(win)->_curx:ERR)
-#define getcury(win) ((win)?(win)->_cury:ERR)
-#define getbegx(win) ((win)?(win)->_begx:ERR)
-#define getbegy(win) ((win)?(win)->_begy:ERR)
-#define getmaxx(win) ((win)?((win)->_maxx + 1):ERR)
-#define getmaxy(win) ((win)?((win)->_maxy + 1):ERR)
-#define getparx(win) ((win)?(win)->_parx:ERR)
-#define getpary(win) ((win)?(win)->_pary:ERR)
-
-#define wstandout(win) (wattrset(win,A_STANDOUT))
-#define wstandend(win) (wattrset(win,A_NORMAL))
-#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
-
-#define wattron(win,at) wattr_on(win, at, (void *)0)
-#define wattroff(win,at) wattr_off(win, at, (void *)0)
-#define wattrset(win,at) ((win)->_attrs = (at))
-
-#define scroll(win) wscrl(win,1)
-
-#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1)
-#define touchline(win, s, c) wtouchln((win), s, c, 1)
-#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0)
-
-#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0)
-#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br)
-#define hline(ch, n) whline(stdscr, ch, n)
-#define vline(ch, n) wvline(stdscr, ch, n)
-
-#define winstr(w, s) winnstr(w, s, -1)
-#define winchstr(w, s) winchnstr(w, s, -1)
-#define winsstr(w, s) winsnstr(w, s, -1)
-
-#define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1)
-#define waddstr(win,str) waddnstr(win,str,-1)
-#define waddchstr(win,str) waddchnstr(win,str,-1)
-
-/*
- * pseudo functions for standard screen
- */
-
-#define addch(ch) waddch(stdscr,ch)
-#define addchnstr(str,n) waddchnstr(stdscr,str,n)
-#define addchstr(str) waddchstr(stdscr,str)
-#define addnstr(str,n) waddnstr(stdscr,str,n)
-#define addstr(str) waddnstr(stdscr,str,-1)
-#define attroff(at) wattroff(stdscr,at)
-#define attron(at) wattron(stdscr,at)
-#define attrset(at) wattrset(stdscr,at)
-#define bkgd(ch) wbkgd(stdscr,ch)
-#define bkgdset(ch) wbkgdset(stdscr,ch)
-#define clear() wclear(stdscr)
-#define clrtobot() wclrtobot(stdscr)
-#define clrtoeol() wclrtoeol(stdscr)
-#define color_set(c,o) wcolor_set(stdscr,c,o)
-#define delch() wdelch(stdscr)
-#define deleteln() winsdelln(stdscr,-1)
-#define echochar(c) wechochar(stdscr,c)
-#define 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 insch(c) winsch(stdscr,c)
-#define insdelln(n) winsdelln(stdscr,n)
-#define insertln() winsdelln(stdscr,1)
-#define insnstr(s,n) winsnstr(stdscr,s,n)
-#define insstr(s) winsstr(stdscr,s)
-#define instr(s) winstr(stdscr,s)
-#define move(y,x) wmove(stdscr,y,x)
-#define refresh() wrefresh(stdscr)
-#define scrl(n) wscrl(stdscr,n)
-#define setscrreg(t,b) wsetscrreg(stdscr,t,b)
-#define standend() wstandend(stdscr)
-#define standout() wstandout(stdscr)
-#define timeout(delay) wtimeout(stdscr,delay)
-#define wdeleteln(win) winsdelln(win,-1)
-#define winsertln(win) winsdelln(win,1)
-
-/*
- * mv functions
- */
-
-#define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
-#define mvwaddchnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
-#define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
-#define mvwaddnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
-#define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
-#define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win))
-#define 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 mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
-#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
-#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
-#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
-#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
-
-#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
-#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n)
-#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str)
-#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n)
-#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
-#define mvdelch(y,x) mvwdelch(stdscr,y,x)
-#define mvgetch(y,x) mvwgetch(stdscr,y,x)
-#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n)
-#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
-#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n)
-#define mvinch(y,x) mvwinch(stdscr,y,x)
-#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n)
-#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s)
-#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n)
-#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
-#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n)
-#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s)
-#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s)
-#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n)
-
-/*
- * 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.
- */
-#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 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 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
- * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to
- * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already
- * use stdarg.h, so...
- */
-#define vw_printw vwprintw
-#define vw_scanw vwscanw
-
-/*
- * 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.
- */
-#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 */
diff --git a/ncurses-5.2/include/edit_cfg.sh b/ncurses-5.2/include/edit_cfg.sh
deleted file mode 100755
index fa3ba97..0000000
--- a/ncurses-5.2/include/edit_cfg.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,2000
-#
-# Edit the default value of the term.h file based on the autoconf-generated
-# values:
-#
-# $1 = ncurses_cfg.h
-# $2 = term.h
-#
-BAK=save$$
-TMP=edit$$
-trap "rm -f $BAK $TMP" 0 1 2 5 15
-for name in \
- HAVE_TCGETATTR \
- HAVE_TERMIOS_H \
- HAVE_TERMIO_H \
- BROKEN_LINKER
-do
- 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
- else
- sed -e 's/define '$name'.*$/define '$name' 0/' $BAK >$2
- fi
- if (cmp -s $2 $BAK)
- then
- echo '** same: '$name
- mv $BAK $2
- else
- echo '** edit: '$name
- rm -f $BAK
- fi
-done
diff --git a/ncurses-5.2/include/headers b/ncurses-5.2/include/headers
deleted file mode 100644
index 2a185c2..0000000
--- a/ncurses-5.2/include/headers
+++ /dev/null
@@ -1,34 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-term.h
-curses.h
-unctrl.h
-termcap.h
diff --git a/ncurses-5.2/include/nc_alloc.h b/ncurses-5.2/include/nc_alloc.h
deleted file mode 100644
index 80ce3f4..0000000
--- a/ncurses-5.2/include/nc_alloc.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
- ****************************************************************************/
-/* $Id$ */
-
-#ifndef NC_ALLOC_included
-#define NC_ALLOC_included 1
-
-#if HAVE_LIBDMALLOC
-#include <dmalloc.h> /* Gray Watson's library */
-#else
-#undef HAVE_LIBDMALLOC
-#define HAVE_LIBDMALLOC 0
-#endif
-
-#if HAVE_LIBDBMALLOC
-#include <dbmalloc.h> /* Conor Cahill's library */
-#else
-#undef HAVE_LIBDBMALLOC
-#define HAVE_LIBDBMALLOC 0
-#endif
-
-#ifndef NO_LEAKS
-#define NO_LEAKS 0
-#endif
-
-#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS
-#define HAVE_NC_FREEALL 1
-struct termtype;
-extern void _nc_free_and_exit(int) GCC_NORETURN;
-extern void _nc_free_tparm(void);
-extern void _nc_leaks_dump_entry(void);
-#define ExitProgram(code) _nc_free_and_exit(code)
-#endif
-
-#ifndef HAVE_NC_FREEALL
-#define HAVE_NC_FREEALL 0
-#endif
-
-#ifndef ExitProgram
-#define ExitProgram(code) return code
-#endif
-
-/* doalloc.c */
-extern void *_nc_doalloc(void *, size_t);
-#if !HAVE_STRDUP
-#define strdup _nc_strdup
-extern 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 /* NC_ALLOC_included */
diff --git a/ncurses-5.2/include/nc_panel.h b/ncurses-5.2/include/nc_panel.h
deleted file mode 100644
index 000cffd..0000000
--- a/ncurses-5.2/include/nc_panel.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * $Id$
- *
- * nc_panel.h
- *
- * Headerfile to provide an interface for the panel layer into
- * the SCREEN structure of the ncurses core.
- */
-
-#ifndef NC_PANEL_H
-#define NC_PANEL_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct panel; /* Forward Declaration */
-
-struct panelhook {
- struct panel* top_panel;
- struct panel* bottom_panel;
- struct panel* stdscr_pseudo_panel;
-};
-
-/* Retrieve the panelhook of the current screen */
-extern struct panelhook* _nc_panelhook(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NC_PANEL_H */
diff --git a/ncurses-5.2/include/ncurses_cfg.hin b/ncurses-5.2/include/ncurses_cfg.hin
deleted file mode 100644
index 947a6cb..0000000
--- a/ncurses-5.2/include/ncurses_cfg.hin
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-/*
- * $Id$
- *
- * This is a template-file used to generate the "ncurses_cfg.h" file.
- *
- * Rather than list every definition, the configuration script substitutes the
- * definitions that it finds using 'sed'. You need a patch (original date
- * 971222) to autoconf 2.12 or 2.13 to do this.
- *
- * See:
- * http://dickey.his.com/autoconf/
- * ftp://dickey.his.com/autoconf/
- */
-#ifndef NC_CONFIG_H
-#define NC_CONFIG_H
-@DEFS@
-
-#include <ncurses_def.h>
-
- /* The C compiler may not treat these properly but C++ has to */
-#ifdef __cplusplus
-#undef const
-#undef inline
-#else
-#if defined(lint) || defined(TRACE)
-#undef inline
-#define inline /* nothing */
-#endif
-#endif
-
-#endif /* NC_CONFIG_H */
diff --git a/ncurses-5.2/include/ncurses_defs b/ncurses-5.2/include/ncurses_defs
deleted file mode 100644
index 3850ac3..0000000
--- a/ncurses-5.2/include/ncurses_defs
+++ /dev/null
@@ -1,151 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# See "MKncurses_def.sh" for an explanation.
-#
-# (hint: don't try to define NDEBUG ;-)
-
-BROKEN_LINKER
-BSD_TPUTS
-CC_HAS_INLINE_FUNCS
-CC_HAS_PROTOS
-CPP_HAS_PARAM_INIT
-DECL_ERRNO
-ETIP_NEEDS_MATH_H
-GCC_NORETURN /* nothing */
-GCC_UNUSED /* nothing */
-HAVE_BIG_CORE
-HAVE_BSD_CGETENT
-HAVE_BUILTIN_H
-HAVE_DIRENT_H
-HAVE_ERRNO
-HAVE_FCNTL_H
-HAVE_FORM_H
-HAVE_GETCWD
-HAVE_GETEGID
-HAVE_GETEUID
-HAVE_GETOPT_H
-HAVE_GETTIMEOFDAY
-HAVE_GETTTYNAM
-HAVE_GPP_BUILTIN_H
-HAVE_GXX_BUILTIN_H
-HAVE_HAS_KEY
-HAVE_ISASCII
-HAVE_ISSETUGID
-HAVE_LIBDBMALLOC
-HAVE_LIBDMALLOC
-HAVE_LIBFORM
-HAVE_LIBGPM
-HAVE_LIBMENU
-HAVE_LIBPANEL
-HAVE_LIMITS_H
-HAVE_LINK
-HAVE_LOCALE_H
-HAVE_LONG_FILE_NAMES
-HAVE_MEMCCPY
-HAVE_MENU_H
-HAVE_MKSTEMP
-HAVE_NANOSLEEP
-HAVE_NC_ALLOC_H
-HAVE_PANEL_H
-HAVE_POLL
-HAVE_POLL_H
-HAVE_REGEXPR_H_FUNCS
-HAVE_REGEXP_H_FUNCS
-HAVE_REGEX_H_FUNCS
-HAVE_REMOVE
-HAVE_RESIZETERM
-HAVE_SELECT
-HAVE_SETBUF
-HAVE_SETBUFFER
-HAVE_SETVBUF
-HAVE_SIGACTION
-HAVE_SIGVEC
-HAVE_SIZECHANGE
-HAVE_STRDUP
-HAVE_STRSTR
-HAVE_SYMLINK
-HAVE_SYS_BSDTYPES_H
-HAVE_SYS_IOCTL_H
-HAVE_SYS_PARAM_H
-HAVE_SYS_POLL_H
-HAVE_SYS_SELECT_H
-HAVE_SYS_TERMIO_H
-HAVE_SYS_TIMES_H
-HAVE_SYS_TIME_H
-HAVE_SYS_TIME_SELECT
-HAVE_TCGETATTR
-HAVE_TCGETPGRP
-HAVE_TELL
-HAVE_TERMIOS_H
-HAVE_TERMIO_H
-HAVE_TIMES
-HAVE_TTYENT_H
-HAVE_TYPEINFO
-HAVE_TYPE_SIGACTION
-HAVE_UNISTD_H
-HAVE_UNLINK
-HAVE_USE_DEFAULT_COLORS
-HAVE_VFSCANF
-HAVE_VSNPRINTF
-HAVE_VSSCANF
-HAVE_WORKING_POLL
-HAVE_WRESIZE
-MIXEDCASE_FILENAMES
-NCURSES_EXPANDED
-NCURSES_EXT_FUNCS
-NCURSES_NOMACROS
-NCURSES_NO_PADDING
-NDEBUG
-NEED_PTEM_H
-NO_LEAKS
-PURE_TERMINFO
-RETSIGTYPE
-STDC_HEADERS
-SVR4_ACTION
-SVR4_TERMIO
-SYSTEM_NAME "unknown"
-TERMINFO "none"
-TYPEOF_CHTYPE
-USE_COLORFGBG
-USE_DATABASE
-USE_GETCAP
-USE_GETCAP_CACHE
-USE_HARD_TABS
-USE_HASHMAP
-USE_LINKS
-USE_MY_MEMMOVE
-USE_OK_BCOPY
-USE_RCS_IDS
-USE_SAFE_SPRINTF
-USE_SCROLL_HINTS
-USE_SIGWINCH
-USE_SYMLINKS
-USE_WIDEC_SUPPORT
-USE_XMC_SUPPORT
diff --git a/ncurses-5.2/include/term_entry.h b/ncurses-5.2/include/term_entry.h
deleted file mode 100644
index 8fe2c31..0000000
--- a/ncurses-5.2/include/term_entry.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* $Id$ */
-
-/*
- * term_entry.h -- interface to entry-manipulation code
- */
-
-#ifndef _TERM_ENTRY_H
-#define _TERM_ENTRY_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <term.h>
-
-#define MAX_USES 32
-#define MAX_CROSSLINKS 16
-
-typedef struct entry {
- TERMTYPE tterm;
- int nuses;
- struct
- {
- char *name;
- struct entry *link;
- long line;
- }
- uses[MAX_USES];
- int ncrosslinks;
- struct entry *crosslinks[MAX_CROSSLINKS];
- long cstart, cend;
- long startline;
- struct entry *next;
- struct entry *last;
-}
-ENTRY;
-
-#if NCURSES_XNAMES
-#define NUM_BOOLEANS(tp) (tp)->num_Booleans
-#define NUM_NUMBERS(tp) (tp)->num_Numbers
-#define NUM_STRINGS(tp) (tp)->num_Strings
-#define EXT_NAMES(tp,i,limit,index,table) (i >= limit) ? tp->ext_Names[index] : table[i]
-#else
-#define NUM_BOOLEANS(tp) BOOLCOUNT
-#define NUM_NUMBERS(tp) NUMCOUNT
-#define NUM_STRINGS(tp) STRCOUNT
-#define EXT_NAMES(tp,i,limit,index,table) table[i]
-#endif
-
-#define NUM_EXT_NAMES(tp) ((tp)->ext_Booleans + (tp)->ext_Numbers + (tp)->ext_Strings)
-
-#define for_each_boolean(n,tp) for(n = 0; n < NUM_BOOLEANS(tp); n++)
-#define for_each_number(n,tp) for(n = 0; n < NUM_NUMBERS(tp); n++)
-#define for_each_string(n,tp) for(n = 0; n < NUM_STRINGS(tp); n++)
-
-#define ExtBoolname(tp,i,names) EXT_NAMES(tp, i, BOOLCOUNT, (i - (tp->num_Booleans - 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;
-#define for_entry_list(qp) for (qp = _nc_head; qp; qp = qp->next)
-
-#define MAX_LINE 132
-
-#define NULLHOOK (bool(*)(ENTRY *))0
-
-/*
- * Note that WANTED and PRESENT are not simple inverses! If a capability
- * has been explicitly cancelled, it's not considered WANTED.
- */
-#define WANTED(s) ((s) == ABSENT_STRING)
-#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING))
-
-#define ANDMISSING(p,q) \
- {if (PRESENT(p) && !PRESENT(q)) _nc_warning(#p " but no " #q);}
-
-#define PAIRED(p,q) \
- { \
- if (PRESENT(q) && !PRESENT(p)) \
- _nc_warning(#q " but no " #p); \
- if (PRESENT(p) && !PRESENT(q)) \
- _nc_warning(#p " but no " #q); \
- }
-
-/* 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);
-
-/* alloc_ttype.c: elementary allocation code */
-extern void _nc_align_termtype(TERMTYPE *, TERMTYPE *);
-extern void _nc_copy_termtype(TERMTYPE *, TERMTYPE *);
-
-/* free_ttype.c: elementary allocation code */
-extern void _nc_free_termtype(TERMTYPE *);
-
-/* lib_acs.c */
-extern void _nc_init_acs(void); /* corresponds to traditional 'init_acs()' */
-
-/* parse_entry.c: entry-parsing code */
-#if NCURSES_XNAMES
-extern bool _nc_user_definable;
-extern bool _nc_disable_period;
-#endif
-extern int _nc_parse_entry(ENTRY *, int, bool);
-extern int _nc_capcmp(const char *, const char *);
-
-/* write_entry.c: writing an entry to the file system */
-extern void _nc_set_writedir(char *);
-extern void _nc_write_entry(TERMTYPE *const);
-
-/* 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 *);
-
-/* trace_xnames.c */
-extern void _nc_trace_xnames(TERMTYPE *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _TERM_ENTRY_H */
diff --git a/ncurses-5.2/include/termcap.h.in b/ncurses-5.2/include/termcap.h.in
deleted file mode 100644
index 17e90d1..0000000
--- a/ncurses-5.2/include/termcap.h.in
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* $Id$ */
-
-#ifndef _NCU_TERMCAP_H
-#define _NCU_TERMCAP_H 1
-
-#undef NCURSES_VERSION
-#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-#include <sys/types.h>
-
-#undef NCURSES_CONST
-#define NCURSES_CONST @NCURSES_CONST@
-
-extern char PC;
-extern char *UP;
-extern char *BC;
-extern short 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));
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NCU_TERMCAP_H */
diff --git a/ncurses-5.2/include/tic.h b/ncurses-5.2/include/tic.h
deleted file mode 100644
index 5658165..0000000
--- a/ncurses-5.2/include/tic.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * $Id$
- * tic.h - Global variables and structures for the terminfo
- * compiler.
- */
-
-#ifndef __TIC_H
-#define __TIC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <curses.h> /* for the _tracef() prototype, ERR/OK, bool defs */
-
-/*
-** The format of compiled terminfo files is as follows:
-**
-** Header (12 bytes), containing information given below
-** Names Section, containing the names of the terminal
-** Boolean Section, containing the values of all of the
-** boolean capabilities
-** A null byte may be inserted here to make
-** sure that the Number Section begins on an
-** even word boundary.
-** Number Section, containing the values of all of the numeric
-** capabilities, each as a short integer
-** String Section, containing short integer offsets into the
-** String Table, one per string capability
-** String Table, containing the actual characters of the string
-** capabilities.
-**
-** NOTE that all short integers in the file are stored using VAX/PDP-style
-** byte-order, i.e., least-significant byte first.
-**
-** There is no structure definition here because it would only confuse
-** matters. Terminfo format is a raw byte layout, not a structure
-** dump. If you happen to be on a little-endian machine with 16-bit
-** shorts that requires no padding between short members in a struct,
-** then there is a natural C structure that captures the header, but
-** not very helpfully.
-*/
-
-#define MAGIC 0432 /* first two bytes of a compiled entry */
-
-/*
- * The "maximum" here is misleading; XSI guarantees minimum values, which a
- * given implementation may exceed.
- */
-#define MAX_NAME_SIZE 512 /* maximum legal name field size (XSI:127) */
-#define MAX_ENTRY_SIZE 4096 /* maximum legal entry size */
-
-/* The maximum size of individual name or alias is guaranteed in XSI to
- * be 14, since that corresponds to the older filename lengths. Newer
- * systems allow longer aliases, though not many terminal descriptions
- * are written to use them.
- */
-#if HAVE_LONG_FILE_NAMES
-#define MAX_ALIAS 32 /* POSIX minimum for PATH_MAX */
-#else
-#define MAX_ALIAS 14 /* SVr3 filename length */
-#endif
-
-/* location of user's personal info directory */
-#define PRIVATE_INFO "%s/.terminfo" /* plug getenv("HOME") into %s */
-
-/*
- * Some traces are designed to be used via tic's verbose option (and similar in
- * infocmp and toe) rather than the 'trace()' function. So we use the bits
- * above the normal trace() parameter as a debug-level.
- */
-
-#define MAX_DEBUG_LEVEL 15
-#define DEBUG_LEVEL(n) ((n) << 12) /* see TRACE_MAXIMUM */
-
-#define set_trace_level(n) \
- _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
- _nc_tracing |= DEBUG_LEVEL(n)
-
-#ifdef TRACE
-#define DEBUG(n, a) if (_nc_tracing >= DEBUG_LEVEL(n)) _tracef a
-#else
-#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 *);
-
-/*
- * These are the types of tokens returned by the scanner. The first
- * three are also used in the hash table of capability names. The scanner
- * returns one of these values after loading the specifics into the global
- * structure curr_token.
- */
-
-#define BOOLEAN 0 /* Boolean capability */
-#define NUMBER 1 /* Numeric capability */
-#define STRING 2 /* String-valued capability */
-#define CANCEL 3 /* Capability to be cancelled in following tc's */
-#define NAMES 4 /* The names for a terminal type */
-#define UNDEF 5 /* Undefined */
-
-#define NO_PUSHBACK -1 /* used in pushtype to indicate no pushback */
-
- /*
- * The global structure in which the specific parts of a
- * scanned token are returned.
- *
- */
-
-struct token
-{
- char *tk_name; /* name of capability */
- int tk_valnumber; /* value of capability (if a number) */
- char *tk_valstring; /* value of capability (if a string) */
-};
-
-extern struct token _nc_curr_token;
-
- /*
- * List of keynames with their corresponding code.
- */
-struct kn {
- const char *name;
- int code;
-};
-
-extern const struct kn _nc_key_names[];
-
- /*
- * Offsets to string capabilities, with the corresponding functionkey
- * codes.
- */
-struct tinfo_fkeys {
- unsigned offset;
- chtype code;
- };
-
-#if BROKEN_LINKER
-
-#define _nc_tinfo_fkeys _nc_tinfo_fkeysf()
-extern struct tinfo_fkeys *_nc_tinfo_fkeysf(void);
-
-#else
-
-extern struct tinfo_fkeys _nc_tinfo_fkeys[];
-
-#endif
-
- /*
- * The file comp_captab.c contains an array of these structures, one
- * per possible capability. These are indexed by a hash table array of
- * pointers to the same structures for use by the parser.
- */
-
-struct name_table_entry
-{
- const char *nte_name; /* name to hash on */
- int nte_type; /* BOOLEAN, NUMBER or STRING */
- short nte_index; /* index of associated variable in its array */
- short nte_link; /* index in table of next hash, or -1 */
-};
-
-struct alias
-{
- const char *from;
- const char *to;
- 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 const struct alias _nc_capalias_table[];
-extern const struct alias _nc_infoalias_table[];
-
-extern const struct name_table_entry *_nc_get_table(bool);
-extern 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 ABSENT_BOOLEAN -1
-#define ABSENT_NUMERIC -1
-#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 VALID_BOOLEAN(s) ((s) >= 0)
-#define VALID_NUMERIC(s) ((s) >= 0)
-#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
-
-/* termcap entries longer than this may break old binaries */
-#define MAX_TERMCAP_LENGTH 1023
-
-/* this is a documented limitation of terminfo */
-#define MAX_TERMINFO_LENGTH 4096
-
-#ifndef TERMINFO
-#define TERMINFO "/usr/share/terminfo"
-#endif
-
-/* access.c */
-extern char *_nc_basename(char *);
-
-/* 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 *);
-
-/* 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;
-#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;
-
-/* comp_expand.c: expand string into readable form */
-extern char *_nc_tic_expand(const char *, bool, int);
-
-/* comp_scan.c: decode string from readable form */
-extern char _nc_trans_string(char *, char *);
-
-/* captoinfo.c: capability conversion */
-extern char *_nc_captoinfo(const char *, const char *, int const);
-extern char *_nc_infotocap(const char *, const char *, int const);
-
-/* lib_tputs.c */
-extern int _nc_nulls_sent; /* Add one for every null sent */
-
-/* comp_main.c: compiler main */
-extern const char *_nc_progname;
-
-/* read_entry.c */
-extern const char *_nc_tic_dir(const char *);
-
-/* write_entry.c */
-extern int _nc_tic_written(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TIC_H */
diff --git a/ncurses-5.2/include/unctrl.h.in b/ncurses-5.2/include/unctrl.h.in
deleted file mode 100644
index 38230cd..0000000
--- a/ncurses-5.2/include/unctrl.h.in
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * unctrl.h
- *
- * Display a printable version of a control character.
- * Control characters are displayed in caret notation (^x), DELETE is displayed
- * as ^?. Printable characters are displayed as is.
- */
-
-/* $Id$ */
-
-#ifndef _UNCTRL_H
-#define _UNCTRL_H 1
-
-#undef NCURSES_VERSION
-#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <curses.h>
-
-#undef unctrl
-extern NCURSES_CONST char *unctrl(chtype);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _UNCTRL_H */
diff --git a/ncurses-5.2/install-sh b/ncurses-5.2/install-sh
deleted file mode 100755
index ebc6691..0000000
--- a/ncurses-5.2/install-sh
+++ /dev/null
@@ -1,250 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/ncurses-5.2/man/MKterminfo.sh b/ncurses-5.2/man/MKterminfo.sh
deleted file mode 100755
index a1f7437..0000000
--- a/ncurses-5.2/man/MKterminfo.sh
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/bin/sh
-#***************************************************************************
-# 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$
-#
-# 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
-# commands for better formatting of the table.
-#
-# NOTE: The s in this script really are control characters. It translates
-#  to \n because I couldn't get used to inserting linefeeds directly. There
-# had better be no s in the table source text.
-#
-# keep the order independent of locale:
-LANGUAGE=C
-LC_ALL=C
-export LANGUAGE
-export LC_ALL
-#
-head=$1
-caps=$2
-tail=$3
-cat <<'EOF'
-'\" 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.
-EOF
-cat $head
-
-temp=temp$$
-sorted=sorted$$
-unsorted=unsorted$$
-trap "rm -f $sorted $temp $unsorted; exit 99" 1 2 5 15
-
-sed -n <$caps "\
-/%%-STOP-HERE-%%/q
-/^#%/s///p
-/^#/d
-s/$/T}/
-s/ [Y\-][B\-][C\-][G\-][E\-]\** / T{/
-s/ bool / /p
-s/ num / /p
-s/ str / /p
-" |sed -e 's/^$/../' | tr "\134" "\006" >$unsorted
-
-rm -f $sorted
-rm -f $temp
-saved=no
-while true
-do
- read data
- test -z "$data" && break
- case "$data" in #(vi
- **) #(vi
- echo "$data" >>$temp
- saved=yes
- ;;
- *)
- if test $saved = yes ; then
- saved=no
- sort $temp >>$sorted
- rm -f $temp
- fi
- echo "$data" >>$sorted
- ;;
- esac
-done <$unsorted
-test $saved = yes && sort $temp >>$sorted
-
-sed -e 's/^\.\.$//' $sorted | tr "\005\006" "\012\134"
-cat $tail
-
-rm -f $sorted $temp $unsorted
diff --git a/ncurses-5.2/man/Makefile.in b/ncurses-5.2/man/Makefile.in
deleted file mode 100644
index c32339c..0000000
--- a/ncurses-5.2/man/Makefile.in
+++ /dev/null
@@ -1,75 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for ncurses manual pages.
-#
-# NOTE: When you add or rename a man page, make sure you update both
-# the top-level MANIFEST and any man/*.renames files!
-
-SHELL = /bin/sh
-
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-mandir = @mandir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-all \
-sources: terminfo.5
-
-$(DESTDIR)$(mandir) :
- $(srcdir)/../mkinstalldirs $@
-
-EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
-
-install install.man : terminfo.5 $(DESTDIR)$(mandir)
- sh ./edit_man.sh installing $(EDITARGS)
-
-uninstall uninstall.man :
- -sh ./edit_man.sh removing $(EDITARGS)
-
-# We compose terminfo.5 from the real sources...
-CAPLIST=$(srcdir)/../include/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 :
- -rm -f core tags TAGS *~ *.ln *.atac trace
-
-clean: mostlyclean
- rm -f terminfo.5
-
-distclean realclean: clean
- rm -f Makefile edit_man.*
diff --git a/ncurses-5.2/man/captoinfo.1m b/ncurses-5.2/man/captoinfo.1m
deleted file mode 100644
index 81f506f..0000000
--- a/ncurses-5.2/man/captoinfo.1m
+++ /dev/null
@@ -1,189 +0,0 @@
-'\" 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$
-.TH captoinfo 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
-.SH SYNOPSIS
-\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
-.SH DESCRIPTION
-\fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions. For each
-one found, an equivalent \fBterminfo\fR description is written to standard
-output. Termcap \fBtc\fR capabilities are translated directly to terminfo
-\fBuse\fR capabilities.
-
-If no \fIfile\fR is given, then the environment variable \fBTERMCAP\fR is used
-for the filename or entry. If \fBTERMCAP\fR is a full pathname to a file, only
-the terminal whose name is specified in the environment variable \fBTERM\fR is
-extracted from that file. If the environment variable \fBTERMCAP\fR is not
-set, then the file \fB\*d\fR is read.
-.TP 5
-\fB-v\fR
-print out tracing information on standard error as the program runs.
-.TP 5
-\fB-V\fR
-print out the version of the program in use on standard error and exit.
-.TP 5
-\fB-1\fR
-cause the fields to print out one to a line. Otherwise, the fields
-will be printed several to a line to a maximum width of 60
-characters.
-.TP 5
-\fB-w\fR
-change the output to \fIwidth\fR characters.
-.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-.SH TRANSLATIONS FROM NONSTANDARD CAPABILITIES
-.PP
-Some obsolete nonstandard capabilities will automatically be translated
-into standard (SVr4/XSI Curses) terminfo capabilities by \fBcaptoinfo\fR.
-Whenever one of these automatic 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.
-.PP
-.TS H
-c c c c
-c c c c
-l l l l.
-Nonstd Std From Terminfo
-name name capability
-_
-BO mr AT&T enter_reverse_mode
-CI vi AT&T cursor_invisible
-CV ve AT&T cursor_normal
-DS mh AT&T enter_dim_mode
-EE me AT&T exit_attribute_mode
-FE LF AT&T label_on
-FL LO AT&T label_off
-XS mk AT&T enter_secure_mode
-EN @7 XENIX key_end
-GE ae XENIX exit_alt_charset_mode
-GS as XENIX enter_alt_charset_mode
-HM kh XENIX key_home
-LD kL XENIX key_dl
-PD kN XENIX key_npage
-PN po XENIX prtr_off
-PS pf XENIX prtr_on
-PU kP XENIX key_ppage
-RT @8 XENIX kent
-UP ku XENIX kcuu1
-KA k; Tek key_f10
-KB F1 Tek key_f11
-KC F2 Tek key_f12
-KD F3 Tek key_f13
-KE F4 Tek key_f14
-KF F5 Tek key_f15
-BC Sb Tek set_background
-FC Sf Tek set_foreground
-HS mh Iris enter_dim_mode
-.TE
-.PP
-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:
-.PP
-.TS H
-c c
-l l.
-Cap Graphic
-_
-G2 upper left
-G3 lower left
-G1 upper right
-G4 lower right
-GR pointing right
-GL pointing left
-GU pointing up
-GD pointing down
-GH horizontal line
-GV vertical line
-GC intersection
-G6 upper left
-G7 lower left
-G5 upper right
-G8 lower right
-Gr tee pointing right
-Gr tee pointing left
-Gu tee pointing up
-Gd tee pointing down
-Gh horizontal line
-Gv vertical line
-Gc intersection
-GG acs magic cookie count
-.TE
-.PP
-If the single-line capabilities occur in an entry, they will automatically
-be composed into an \fBacsc\fR string. The double-line capabilities and
-\fBGG\fR are discarded with a warning message.
-.PP
-IBM's AIX has a terminfo facility descended from SVr1 terminfo but incompatible
-with the SVr4 format. The following AIX extensions are automatically
-translated:
-.PP
-.TS
-c c
-l l.
-IBM XSI
-_
-ksel kslt
-kbtab kcbt
-font0 s0ds
-font1 s1ds
-font2 s2ds
-font3 s3ds
-.TE
-.PP
-Additionally, the AIX \fBbox1\fR capability will be automatically translated to
-an \fBacsc\fR string.
-.PP
-Hewlett-Packard's terminfo library supports two nonstandard terminfo
-capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
-These will be discarded with a warning message.
-.SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode.
-You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
-
-The trace option isn't identical to SVr4's. Under SVr4, instead of following
-the -v with a trace level n, you repeat it n times.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fB@INFOCMP@\fR(1M), \fBterminfo\fR(\*n)
-.SH AUTHOR
-Eric S. Raymond <esr@snark.thyrsus.com>
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/clear.1 b/ncurses-5.2/man/clear.1
deleted file mode 100644
index e6b60c2..0000000
--- a/ncurses-5.2/man/clear.1
+++ /dev/null
@@ -1,48 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH clear 1 ""
-.ds n 5
-.SH NAME
-\fBclear\fR - clear the terminal screen
-.SH SYNOPSIS
-\fBclear\fR
-.br
-.SH DESCRIPTION
-\fBclear\fR clears your screen if this is possible. It looks in the
-environment for the terminal type and then in the \fBterminfo\fR database to
-figure out how to clear the screen.
-.SH SEE ALSO
-\fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_addch.3x b/ncurses-5.2/man/curs_addch.3x
deleted file mode 100644
index f910508..0000000
--- a/ncurses-5.2/man/curs_addch.3x
+++ /dev/null
@@ -1,163 +0,0 @@
-'\" 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$
-.TH curs_addch 3X ""
-.SH NAME
-\fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR,
-\fBechochar\fR,
-\fBwechochar\fR - add a character (with attributes) to a \fBcurses\fR window, then advance the cursor
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint addch(chtype ch);\fR
-.br
-\fBint waddch(WINDOW *win, chtype ch);\fR
-.br
-\fBint mvaddch(int y, int x, chtype ch);\fR
-.br
-\fBint mvwaddch(WINDOW *win, int y, int x, chtype ch);\fR
-.br
-\fBint echochar(chtype ch);\fR
-.br
-\fBint wechochar(WINDOW *win, chtype ch);\fR
-.br
-.SH DESCRIPTION
-The \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR and \fBmvwaddch\fR routines put
-the character \fIch\fR into the given window at its current window position,
-which is then advanced. They are analogous to \fBputchar\fR in \fBstdio\fR(3).
-If the advance is at the right margin, the cursor automatically wraps to the
-beginning of the next line. At the bottom of the current scrolling region, if
-\fBscrollok\fR is enabled, the scrolling region is scrolled up one line.
-
-If \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 any control character other than tab, newline, or backspace, it
-is drawn in \fB^\fR\fIX\fR notation. Calling \fBwinch\fR after adding a
-control character does not return the character itself, but instead returns
-the ^-representation of the control character.
-
-Video attributes can be combined with a character argument passed to
-\fBaddch\fR or related functions by logical-ORing them into the character.
-(Thus, text, including attributes, can be copied from one place to another
-using \fBinch\fR and \fBaddch\fR.). See the \fBcurs_attr\fR(3X) page for
-values of predefined video attribute constants that can be usefully OR'ed
-into characters.
-
-The \fBechochar\fR and \fBwechochar\fR routines are equivalent to a call to
-\fBaddch\fR followed by a call to \fBrefresh\fR, or a call to \fBwaddch\fR
-followed by a call to \fBwrefresh\fR. 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.
-.SS Line Graphics
-The following variables may be used to add line drawing characters to the
-screen with routines of the \fBaddch\fR family. The default character listed
-below is used if the \fBacsc\fR capability doesn't define a terminal-specific
-replacement for it (but see the EXTENSIONS section below). The names are
-taken from VT100 nomenclature.
-
-.TS
-l l l
-_ _ _
-l l l.
-\fIName\fR \fIDefault\fR \fIDescription\fR
-ACS_BLOCK # solid square block
-ACS_BOARD # board of squares
-ACS_BTEE + bottom tee
-ACS_BULLET o bullet
-ACS_CKBOARD : checker board (stipple)
-ACS_DARROW v arrow pointing down
-ACS_DEGREE ' degree symbol
-ACS_DIAMOND + diamond
-ACS_GEQUAL > greater-than-or-equal-to
-ACS_HLINE - horizontal line
-ACS_LANTERN # lantern symbol
-ACS_LARROW < arrow pointing left
-ACS_LEQUAL < less-than-or-equal-to
-ACS_LLCORNER + lower left-hand corner
-ACS_LRCORNER + lower right-hand corner
-ACS_LTEE + left tee
-ACS_NEQUAL ! not-equal
-ACS_PI * greek pi
-ACS_PLMINUS # plus/minus
-ACS_PLUS + plus
-ACS_RARROW > arrow pointing right
-ACS_RTEE + right tee
-ACS_S1 - scan line 1
-ACS_S3 - scan line 3
-ACS_S7 - scan line 7
-ACS_S9 \&_ scan line 9
-ACS_STERLING f pound-sterling symbol
-ACS_TTEE + top tee
-ACS_UARROW ^ arrow pointing up
-ACS_ULCORNER + upper left-hand corner
-ACS_URCORNER + upper right-hand corner
-ACS_VLINE | vertical line
-.TE
-
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
-successful completion, unless otherwise noted in the preceding routine
-descriptions.
-.SH NOTES
-Note that \fBaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR, and
-\fBechochar\fR may be macros.
-.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.
-
-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 \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).
-.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),
-\fBputc\fR(3S).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_addchstr.3x b/ncurses-5.2/man/curs_addchstr.3x
deleted file mode 100644
index b12d51a..0000000
--- a/ncurses-5.2/man/curs_addchstr.3x
+++ /dev/null
@@ -1,83 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_addchstr 3X ""
-.SH NAME
-\fBaddchstr\fR, \fBaddchnstr\fR, \fBwaddchstr\fR,
-\fBwaddchnstr\fR, \fBmvaddchstr\fR, \fBmvaddchnstr\fR, \fBmvwaddchstr\fR,
-\fBmvwaddchnstr\fR - add a string of characters (and attributes) to a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint addchstr(const chtype *chstr);\fR
-.br
-\fBint addchnstr(const chtype *chstr, int n);\fR
-.br
-\fBint waddchstr(WINDOW *win, const chtype *chstr);\fR
-.br
-\fBint waddchnstr(WINDOW *win, const chtype *chstr, int n);\fR
-.br
-\fBint mvaddchstr(int y, int x, const chtype *chstr);\fR
-.br
-\fBint mvaddchnstr(int y, int x, const chtype *chstr, int n);\fR
-.br
-\fBint mvwaddchstr(WINDOW *win, int y, int x, const chtype *chstr);\fR
-.br
-\fBint mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n);\fR
-.SH DESCRIPTION
-These routines copy \fIchstr\fR into the window image structure at and after
-the current cursor position. The four routines with \fIn\fR as the last
-argument copy at most \fIn\fR elements, but no more than will fit on the line.
-If \fBn\fR=\fB-1\fR then the whole string is copied, to the maximum number of
-characters that will fit on the line.
-
-The window cursor is \fInot\fR advanced, and these routines work faster than
-\fBwaddnstr\fR. On the other hand, they don't perform any kind of checking
-(such as for the newline, backspace, or carriage return characters), they don't
-advance the current cursor position, they don't expand other control characters
-to ^-escapes, and they truncate the string if it crosses the right margin,
-rather then wrapping it around to the new line.
-
-.SH RETURN VALUES
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
-successful completion, unless otherwise noted in the preceding routine
-descriptions.
-.SH NOTES
-Note that all routines except \fBwaddchnstr\fR may be macros.
-.SH PORTABILITY
-All these entry points are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_addstr.3x b/ncurses-5.2/man/curs_addstr.3x
deleted file mode 100644
index 595eb1e..0000000
--- a/ncurses-5.2/man/curs_addstr.3x
+++ /dev/null
@@ -1,82 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_addstr 3X ""
-.SH NAME
-\fBaddstr\fR,
-\fBaddnstr\fR,
-\fBwaddstr\fR,
-\fBwaddnstr\fR,
-\fBmvaddstr\fR,
-\fBmvaddnstr\fR,
-\fBmvwaddstr\fR,
-\fBmvwaddnstr\fR - add a string of characters to a \fBcurses\fR window and advance cursor
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint addstr(const char *str);\fR
-.br
-\fBint addnstr(const char *str, int n);\fR
-.br
-\fBint waddstr(WINDOW *win, const char *str);\fR
-.br
-\fBint waddnstr(WINDOW *win, const char *str, int n);\fR
-.br
-\fBint mvaddstr(int y, int x, const char *str);\fR
-.br
-\fBint mvaddnstr(int y, int x, const char *str, int n);\fR
-.br
-\fBint mvwaddstr(WINDOW *win, int y, int x, const char *str);\fR
-.br
-\fBint mvwaddnstr(WINDOW *win, int y, int x, const char *str, int n);\fR
-.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.
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
-successful completion.
-.SH NOTES
-Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be
-macros.
-.SH PORTABILITY
-All these entry points are described in the XSI Curses standard, Issue 4. The
-XSI errors EILSEQ and EOVERFLOW, associated with extended-level conformance,
-are not yet detected.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_addch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_attr.3x b/ncurses-5.2/man/curs_attr.3x
deleted file mode 100644
index 7d13de1..0000000
--- a/ncurses-5.2/man/curs_attr.3x
+++ /dev/null
@@ -1,221 +0,0 @@
-'\" 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$
-.TH curs_attr 3X ""
-.SH NAME
-\fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
-\fBattrset\fR, \fBwattrset\fR, \fBcolor_set\fR, \fBwcolor_set\fR,
-\fBstandend\fR, \fBwstandend\fR, \fBstandout\fR, \fBwstandout\fR,
-\fBattr_get\fR, \fBwattr_get\fR,
-\fBattr_off\fR, \fBwattr_off\fR,
-\fBattr_on\fR, \fBwattr_on\fR,
-\fBattr_set\fR, \fBwattr_set\fR,
-\fBchgat\fR, \fBwchgat\fR,
-\fBmvchgat\fR, \fBmvwchgat\fR,
-\fBPAIR_NUMBER\fR - \fBcurses\fR character and window attribute control routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint attroff(int attrs);\fR
-.br
-\fBint wattroff(WINDOW *win, int attrs);\fR
-.br
-\fBint attron(int attrs);\fR
-.br
-\fBint wattron(WINDOW *win, int attrs);\fR
-.br
-\fBint attrset(int attrs);\fR
-.br
-\fBint wattrset(WINDOW *win, int attrs);\fR
-.br
-\fBint color_set(short color_pair_number, void* opts);\fR
-.br
-\fBint wcolor_set(WINDOW *win, short color_pair_number,\fR
- \fBvoid* opts);\fR
-.br
-\fBint standend(void);\fR
-.br
-\fBint wstandend(WINDOW *win);\fR
-.br
-\fBint standout(void);\fR
-.br
-\fBint wstandout(WINDOW *win);\fR
-.br
-\fBint attr_get(attr_t *attrs, short *pair, void *opts);\fR
-.br
-\fBint wattr_get(WINDOW *win, attr_t *attrs, short *pair,\fR
- \fBvoid *opts);\fR
-.br
-\fBint attr_off(attr_t attrs, void *opts);\fR
-.br
-\fBint wattr_off(WINDOW *win, attr_t attrs, void *opts);\fR
-.br
-\fBint attr_on(attr_t attrs, void *opts);\fR
-.br
-\fBint wattr_on(WINDOW *win, attr_t attrs, void *opts);\fR
-.br
-\fBint attr_set(attr_t attrs, short pair, void *opts);\fR
-.br
-\fBint wattr_set(WINDOW *win, attr_t attrs, short pair, void *opts);\fR
-.br
-\fBint chgat(int n, attr_t attr, short color,\fR
- \fBconst void *opts)\fR
-.br
-\fBint wchgat(WINDOW *win, int n, attr_t attr,\fR
- \fBshort color, const void *opts)\fR
-.br
-\fBint mvchgat(int y, int x, int n, attr_t attr,\fR
- \fBshort color, const void *opts)\fR
-.br
-\fBint mvwchgat(WINDOW *win, int y, int x, int n,\fR
- \fBattr_t attr, short color, const void *opts)\fR
-.br
-.SH DESCRIPTION
-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 \fBwaddch\fR, \fBwaddstr\fR and \fBwprintw\fR. 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 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
-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 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 \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 \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
-than the remaining window width means to change attributes all the way to the
-end of the current line. The \fBwchgat\fR function generalizes this to any
-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).
-.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
-characters passed to \fBaddch\fR.
-
-.TS
-center ;
-l l .
-\fBA_NORMAL\fR Normal display (no highlight)
-\fBA_STANDOUT\fR Best highlighting mode of the terminal.
-\fBA_UNDERLINE\fR Underlining
-\fBA_REVERSE\fR Reverse video
-\fBA_BLINK\fR Blinking
-\fBA_DIM\fR Half bright
-\fBA_BOLD\fR Extra bright or bold
-\fBA_PROTECT\fR Protected mode
-\fBA_INVIS\fR Invisible or blank mode
-\fBA_ALTCHARSET\fR Alternate character set
-\fBA_CHARTEXT\fR Bit-mask to extract a character
-\fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR Color-pair number \fIn\fR
-.TE
-
-The following macro is the reverse of \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR:
-
-.DS C
-\fBPAIR_NUMBER(\fR\fIattrs\fR) Returns the pair number associated
- with the \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR attribute.
-.DE
-
-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 PORTABILITY
-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.
-
-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).
-
-XSI Curses added the new entry points, \fBattr_get\fR, \fBattr_on\fR,
-\fBattr_off\fR, \fBattr_set\fR, \fBwattr_on\fR, \fBwattr_off\fR,
-\fBwattr_get\fR, \fBwattr_set\fR. These are intended to work with
-a new series of highlight macros prefixed with \fBWA_\fR.
-
-.TS
-center ;
-l l .
-\fBWA_NORMAL\fR Normal display (no highlight)
-\fBWA_STANDOUT\fR Best highlighting mode of the terminal.
-\fBWA_UNDERLINE\fR Underlining
-\fBWA_REVERSE\fR Reverse video
-\fBWA_BLINK\fR Blinking
-\fBWA_DIM\fR Half bright
-\fBWA_BOLD\fR Extra bright or bold
-\fBWA_ALTCHARSET\fR Alternate character set
-.TE
-
-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 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),
-\fBcurs_printw\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_beep.3x b/ncurses-5.2/man/curs_beep.3x
deleted file mode 100644
index 720317e..0000000
--- a/ncurses-5.2/man/curs_beep.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_beep 3X ""
-.SH NAME
-\fBbeep\fR, \fBflash\fR - \fBcurses\fR bell and screen flash routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint beep(void);\fR
-.br
-\fBint flash(void);\fR
-.br
-.SH DESCRIPTION
-The \fBbeep\fR and \fBflash\fR routines are used to alert the terminal user.
-The routine \fBbeep\fR sounds an audible alarm on the terminal, if possible;
-otherwise it flashes the screen (visible bell). The routine \fBflash\fR
-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 flash the screen.
-.SH RETURN VALUE
-These routines return \fBOK\fR if they succeed in beeping or flashing,
-\fBERR\fR otherwise.
-.SH EXTENSIONS
-SVr4's beep and flash routines always returned \fBOK\fR, so it was not
-possible to tell when the beep or flash failed.
-.SH PORTABILITY
-These functions are defined in the XSI Curses standard, Issue 4. Like SVr4, it
-specifies that they always return \fBOK\fR.
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_bkgd.3x b/ncurses-5.2/man/curs_bkgd.3x
deleted file mode 100644
index 068b817..0000000
--- a/ncurses-5.2/man/curs_bkgd.3x
+++ /dev/null
@@ -1,102 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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
-
-\fBvoid bkgdset(const chtype ch);\fR
-.br
-\fBvoid wbkgdset(WINDOW *win, const chtype ch);\fR
-.br
-\fBint bkgd(const chtype ch);\fR
-.br
-\fBint wbkgd(WINDOW *win, const chtype ch);\fR
-.br
-\fBchtype getbkgd(WINDOW *win);\fR
-.br
-..
-.SH DESCRIPTION
-The \fBbkgdset\fR and \fBwbkgdset\fR routines manipulate the
-background of the named window.
-The window background is a \fBchtype\fR 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
-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 \fBbkgd\fR and \fBwbkgd\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 \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 NOTES
-Note that \fBbkgdset\fR and \fBbkgd\fR may be macros.
-..
-.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.
-..
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_addch\fR(3X), \fBcurs_outopts\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_border.3x b/ncurses-5.2/man/curs_border.3x
deleted file mode 100644
index 8f1f9b9..0000000
--- a/ncurses-5.2/man/curs_border.3x
+++ /dev/null
@@ -1,110 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_border 3X ""
-.SH NAME
-\fBborder\fR, \fBwborder\fR, \fBbox\fR,
-\fBhline\fR, \fBwhline\fR,
-\fBvline\fR, \fBwvline\fR,
-\fBmvhline\fR, \fBmvwhline\fR,
-\fBmvvline\fR, \fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint border(chtype ls, chtype rs, chtype ts, chtype bs,\fR
- \fBchtype tl, chtype tr, chtype bl, chtype br);\fR
-.br
-\fBint wborder(WINDOW *win, chtype ls, chtype rs,\fR
- \fBchtype ts, chtype bs, chtype tl, chtype tr,\fR
- \fBchtype bl, chtype br);\fR
-.br
-\fBint box(WINDOW *win, chtype verch, chtype horch);\fR
-.br
-\fBint hline(chtype ch, int n);\fR
-.br
-\fBint whline(WINDOW *win, chtype ch, int n);\fR
-.br
-\fBint vline(chtype ch, int n);\fR
-.br
-\fBint wvline(WINDOW *win, chtype ch, int n);\fR
-.br
-\fBmvhline(int y, int x, chtype ch, int n);\fR
-.br
-\fBmvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
-.br
-\fBint mvvline(int y, int x, chtype ch, int n);\fR
-.br
-\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.
-
-\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
-\fIverch\fR\fB,\fR \fIhorch\fR\fB,\fR \fIhorch\fR\fB, 0, 0, 0, 0)\fR.
-
-The \fBhline\fR and \fBwhline\fR functions draw a horizontal (left to right)
-line using \fIch\fR starting at the current cursor position in the window. The
-current cursor position is not changed. The line is at most \fIn\fR characters
-long, or as many as fit into the window.
-
-The \fBvline\fR and \fBwvline\fR functions draw a vertical (top to bottom) line
-using \fIch\fR starting at the current cursor position in the window. The
-current cursor position is not changed. The line is at most \fIn\fR characters
-long, or as many as fit into the window.
-.SH RETURN VALUE
-All routines return the integer \fBOK\fR. The SVr4.0 manual says "or a
-non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
-.SH NOTES
-The borders generated by these functions are \fIinside\fR borders (this
-is also true of SVr4 curses, though the fact is not documented).
-
-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.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_clear.3x b/ncurses-5.2/man/curs_clear.3x
deleted file mode 100644
index 8aaa6ad..0000000
--- a/ncurses-5.2/man/curs_clear.3x
+++ /dev/null
@@ -1,94 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_clear 3X ""
-.SH NAME
-\fBerase\fR, \fBwerase\fR, \fBclear\fR,
-\fBwclear\fR, \fBclrtobot\fR, \fBwclrtobot\fR, \fBclrtoeol\fR,
-\fBwclrtoeol\fR - clear all or part of a \fBcurses\fR window
-.SH SYNOPSIS
-\fB# include <curses.h>\fR
-
-\fBint erase(void);\fR
-.br
-\fBint werase(WINDOW *win);\fR
-.br
-\fBint clear(void);\fR
-.br
-\fBint wclear(WINDOW *win);\fR
-.br
-\fBint clrtobot(void);\fR
-.br
-\fBint wclrtobot(WINDOW *win);\fR
-.br
-\fBint clrtoeol(void);\fR
-.br
-\fBint wclrtoeol(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-The \fBerase\fR and \fBwerase\fR routines copy blanks to every
-position in the window, clearing the screen.
-
-The \fBclear\fR and \fBwclear\fR routines are like \fBerase\fR and
-\fBwerase\fR, but they also call \fBclearok\fR, so that the screen is
-cleared completely on the next call to \fBwrefresh\fR for that window
-and repainted from scratch.
-
-The \fBclrtobot\fR and \fBwclrtobot\fR routines erase from the cursor to the
-end of screen. That is, they erase all lines below the cursor in the window.
-Also, the current line to the right of the cursor, inclusive, is erased.
-
-The \fBclrtoeol\fR and \fBwclrtoeol\fR routines erase the current line
-to the right of the cursor, inclusive, to the end of the current line.
-
-Blanks created by erasure have the current background rendition (as set
-by \fBwbkgdset\fR) merged into them.
-.SH RETURN VALUE
-All routines return the integer \fBOK\fR. The SVr4.0 manual says "or a
-non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
-.SH NOTES
-Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
-\fBclrtobot\fR, and \fBclrtoeol\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
-
-Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. This will not work under
-ncurses.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_color.3x b/ncurses-5.2/man/curs_color.3x
deleted file mode 100644
index fd97cac..0000000
--- a/ncurses-5.2/man/curs_color.3x
+++ /dev/null
@@ -1,216 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_color 3X ""
-.SH NAME
-\fBstart_color\fR,
-\fBinit_pair\fR,
-\fBinit_color\fR,
-\fBhas_colors\fR,
-\fBcan_change_color\fR,
-\fBcolor_content\fR,
-\fBpair_content\fR,
-\fBCOLOR_PAIR\fR - \fBcurses\fR color manipulation routines
-.SH SYNOPSIS
-\fB# include <curses.h>\fR
-.br
-\fBint start_color(void);\fR
-.br
-\fBint init_pair(short pair, short f, short b);\fR
-.br
-\fBint init_color(short color, short r, short g, short b);\fR
-.br
-\fBbool has_colors(void);\fR
-.br
-\fBbool can_change_color(void);\fR
-.br
-\fBint color_content(short color, short *r, short *g, short *b);\fR
-.br
-\fBint pair_content(short pair, short *f, short *b);\fR
-.br
-.SH DESCRIPTION
-.SS Overview
-\fBcurses\fR support color attributes on terminals with that capability. To
-use these routines \fBstart_color\fR must be called, usually right after
-\fBinitscr\fR. Colors are always used in pairs (referred to as color-pairs).
-A color-pair consists of a foreground color (for characters) and a background
-color (for the blank field on which the characters are displayed). A
-programmer initializes a color-pair with the routine \fBinit_pair\fR. After it
-has been initialized, \fBCOLOR_PAIR\fR(\fIn\fR), a macro defined in
-\fB<curses.h>\fR, can be used as a new video attribute.
-
-If a terminal is capable of redefining colors, the programmer can use the
-routine \fBinit_color\fR to change the definition of a color. The routines
-\fBhas_colors\fR and \fBcan_change_color\fR return \fBTRUE\fR or \fBFALSE\fR,
-depending on whether the terminal has color capabilities and whether the
-programmer can change the colors. The routine \fBcolor_content\fR allows a
-programmer to extract the amounts of red, green, and blue components in an
-initialized color. The routine \fBpair_content\fR allows a programmer to find
-out how a given color-pair is currently defined.
-.SS Routine Descriptions
-The \fBstart_color\fR routine requires no arguments. It must be
-called if the programmer wants to use colors, and before any other
-color manipulation routine is called. It is good practice to call
-this routine right after \fBinitscr\fR. \fBstart_color\fR initializes
-eight basic colors (black, red, green, yellow, blue, magenta, cyan,
-and white), and two global variables, \fBCOLORS\fR and
-\fBCOLOR_PAIRS\fR (respectively defining the maximum number of colors
-and color-pairs the terminal can support). It also restores the
-colors on the terminal to the values they had when the terminal was
-just turned on.
-
-The \fBinit_pair\fR routine changes the definition of a color-pair. It takes
-three arguments: the number of the color-pair to be changed, the foreground
-color number, and the background color number.
-For portable applications:
-.TP 5
--
-The value of the first argument
-must be between \fB1\fR and \fBCOLOR_PAIRS-1\fR.
-.TP 5
--
-The value of the second and
-third arguments must be between 0 and \fBCOLORS\fR (the 0 color pair is wired
-to white on black and cannot be changed).
-.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.
-
-As an extension, ncurses allows you to set color pair 0 via
-the \fBassume_default_colors\fR routine, or to specify the use of
-default colors (color number \fB-1\fR) if you first invoke the
-\fBuse_default_colors\fR routine.
-
-The \fBinit_color\fR routine changes the definition of a color. It takes four
-arguments: the number of the color to be changed followed by three RGB values
-(for the amounts of red, green, and blue components). The value of the first
-argument must be between \fB0\fR and \fBCOLORS\fR. (See the section
-\fBColors\fR for the default color index.) Each of the last three arguments
-must be a value between 0 and 1000. When \fBinit_color\fR is used, all
-occurrences of that color on the screen immediately change to the new
-definition.
-
-The \fBhas_colors\fR routine requires no arguments. It returns \fBTRUE\fR if
-the terminal can manipulate colors; otherwise, it returns \fBFALSE\fR. This
-routine facilitates writing terminal-independent programs. For example, a
-programmer can use it to decide whether to use color or some other video
-attribute.
-
-The \fBcan_change_color\fR routine requires no arguments. It returns
-\fBTRUE\fR if the terminal supports colors and can change their definitions;
-other, it returns \fBFALSE\fR. This routine facilitates writing
-terminal-independent programs.
-
-The \fBcolor_content\fR routine gives programmers a way to find the intensity
-of the red, green, and blue (RGB) components in a color. It requires four
-arguments: the color number, and three addresses of \fBshort\fRs for storing
-the information about the amounts of red, green, and blue components in the
-given color. The value of the first argument must be between 0 and
-\fBCOLORS\fR. The values that are stored at the addresses pointed to by the
-last three arguments are between 0 (no component) and 1000 (maximum amount of
-component).
-
-The \fBpair_content\fR routine allows programmers to find out what colors a
-given color-pair consists of. It requires three arguments: the color-pair
-number, and two addresses of \fBshort\fRs for storing the foreground and the
-background color numbers. The value of the first argument must be between 1
-and \fBCOLOR_PAIRS-1\fR. The values that are stored at the addresses pointed
-to by the second and third arguments are between 0 and \fBCOLORS\fR.
-.SS Colors
-In \fB<curses.h>\fR the following macros are defined. These are the default
-colors. \fBcurses\fR also assumes that \fBCOLOR_BLACK\fR is the default
-background color for all terminals.
-
-.nf
- \fBCOLOR_BLACK\fR
- \fBCOLOR_RED\fR
- \fBCOLOR_GREEN\fR
- \fBCOLOR_YELLOW\fR
- \fBCOLOR_BLUE\fR
- \fBCOLOR_MAGENTA\fR
- \fBCOLOR_CYAN\fR
- \fBCOLOR_WHITE\fR
-.fi
-.SH RETURN VALUE
-The routines \fBcan_change_color()\fR and \fBhas_colors()\fR return \fBTRUE\fR
-or \fBFALSE\fR.
-
-All other routines return the integer \fBERR\fR upon failure and an \fBOK\fR
-(SVr4 specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH NOTES
-In the \fIncurses\fR implementation, there is a separate color activation flag,
-color palette, color pairs table, and associated COLORS and COLOR_PAIRS counts
-for each screen; the \fBstart_color\fR function only affects the current
-screen. The SVr4/XSI interface is not really designed with this in mind, and
-historical implementations may use a single shared color palette.
-
-Note that setting an implicit background color via a color pair affects only
-character cells that a character write operation explicitly touches. To change
-the background color used when parts of a window are blanked by erasing or
-scrolling operations, see \fBcurs_bkgd\fR(3X).
-
-Several caveats apply on 386 and 486 machines with VGA-compatible graphics:
-.TP 5
--
-COLOR_YELLOW is actually brown. To get yellow, use COLOR_YELLOW combined with
-the \fBA_BOLD\fR attribute.
-.TP 5
--
-The A_BLINK attribute should in theory cause the background to go bright. This
-often fails to work, and even some cards for which it mostly works (such as the
-Paradise and compatibles) do the wrong thing when you try to set a bright
-"yellow" background (you get a blinking yellow foreground instead).
-.TP 5
--
-Color RGB values are not settable.
-.SH PORTABILITY
-This implementation satisfies XSI Curses's minimum maximums
-for \fBCOLORS\fR and \fBCOLOR_PAIRS\fR.
-.PP
-The \fBinit_pair\fP routine accepts negative values of foreground
-and background color to support the \fBuse_default_colors\fP extension,
-but only if that routine has been first invoked.
-.PP
-The assumption that \fBCOLOR_BLACK\fR is the default
-background color for all terminals can be modified using the
-\fBassume_default_colors\fP extension,
-..
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_attr\fR(3X),
-\fBdefault_colors\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_delch.3x b/ncurses-5.2/man/curs_delch.3x
deleted file mode 100644
index 4edc06a..0000000
--- a/ncurses-5.2/man/curs_delch.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_delch 3X ""
-.SH NAME
-\fBdelch\fR,
-\fBwdelch\fR,
-\fBmvdelch\fR,
-\fBmvwdelch\fR - delete character under the cursor in a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint delch(void);\fR
-.br
-\fBint wdelch(WINDOW *win);\fR
-.br
-\fBint mvdelch(int y, int x);\fR
-.br
-\fBint mvwdelch(WINDOW *win, int y, int x);\fR
-.br
-.SH DESCRIPTION
-These routines delete the character under the cursor; all 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 \fIy\fR, \fIx\fR, if specified). (This does not
-imply use of the hardware delete character feature.)
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH NOTES
-Note that \fBdelch\fR, \fBmvdelch\fR, and \fBmvwdelch\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_deleteln.3x b/ncurses-5.2/man/curs_deleteln.3x
deleted file mode 100644
index 4432a28..0000000
--- a/ncurses-5.2/man/curs_deleteln.3x
+++ /dev/null
@@ -1,87 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_deleteln 3X ""
-.SH NAME
-\fBdeleteln\fR,
-\fBwdeleteln\fR,
-\fBinsdelln\fR,
-\fBwinsdelln\fR,
-\fBinsertln\fR,
-\fBwinsertln\fR - delete and insert lines in a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint deleteln(void);\fR
-.br
-\fBint wdeleteln(WINDOW *win);\fR
-.br
-\fBint insdelln(int n);\fR
-.br
-\fBint winsdelln(WINDOW *win, int n);\fR
-.br
-\fBint insertln(void);\fR
-.br
-\fBint winsertln(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-The \fBdeleteln\fR and \fBwdeleteln\fR 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 \fBinsdelln\fR and \fBwinsdelln\fR routines, for positive \fIn\fR, insert
-\fIn\fR lines into the specified window above the current line. The \fIn\fR
-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.
-
-The \fBinsertln\fR and \fBinsertln\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
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
-.SH NOTES
-Note that all but \fBwinsdelln\fR may be macros.
-
-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
-\fBidlok(..., TRUE)\fR has been set on the current window.
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_extend.3x b/ncurses-5.2/man/curs_extend.3x
deleted file mode 100644
index 9445217..0000000
--- a/ncurses-5.2/man/curs_extend.3x
+++ /dev/null
@@ -1,89 +0,0 @@
-.\"***************************************************************************
-.\" 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. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey <dickey@clark.net> 1999
-.\"
-.\" $Id$
-.TH curs_extend 3X ""
-.SH NAME
-\fBcurs_extend\fR:
-\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 DESCRIPTION
-These functions are extensions to the curses library
-which do not fit easily into other categories.
-.PP
-Use
-.I curses_version()
-to get the version number, including patch level of the library, e.g.,
-.B 5.0.19991023
-.PP
-The
-.I use_extended_names()
-function controls whether the calling application
-is able to use user-defined or nonstandard names
-which may be compiled into the terminfo
-description, i.e., via the terminfo or termcap interfaces.
-Normally these names are available for use, since the essential descision
-is made by using the \fB-x\fP option of \fItic\fP to compile
-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 SEE ALSO
-\fBcurs_getch\fR(3X),
-\fBcurs_mouse\fR(3X),
-\fBcurs_print\fR(3X),
-\fBdefault_colors\fR(3X),
-\fBdefine_key\fR(3X),
-\fBkeybound\fR(3X),
-\fBkeyok\fR(3X),
-\fBresizeterm\fR(3X),
-\fBwresize\fR(3X).
-..
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_getch.3x b/ncurses-5.2/man/curs_getch.3x
deleted file mode 100644
index 8820139..0000000
--- a/ncurses-5.2/man/curs_getch.3x
+++ /dev/null
@@ -1,277 +0,0 @@
-'\" 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$
-.TH curs_getch 3X ""
-.SH NAME
-\fBgetch\fR,
-\fBwgetch\fR,
-\fBmvgetch\fR,
-\fBmvwgetch\fR,
-\fBungetch\fR,
-\fBhas_key\fR \- get (or push back) characters from \fBcurses\fR terminal keyboard
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint getch(void);\fR
-.br
-\fBint wgetch(WINDOW *win);\fR
-.br
-\fBint mvgetch(int y, int x);\fR
-.br
-\fBint mvwgetch(WINDOW *win, int y, int x);\fR
-.br
-\fBint ungetch(int ch);\fR
-.br
-\fBint has_key(int ch);\fR
-.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
-specified timeout has been reached.
-
-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
-as if \fBdelch\fR had been called.
-If the character value is any other \fBKEY_\fR define, the user is alerted
-with a \fBbeep\fR call.
-Otherwise the character is simply output to the screen.
-
-If the window is not a pad, and it 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 \fBTRUE\fR, 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 \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
-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.
-
-.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
-necessarily supported on any particular terminal.
-.sp
-.TS
-center tab(/) ;
-l l
-l l .
-\fIName\fR/\fIKey\fR \fIname\fR
-
-KEY_BREAK/Break key
-KEY_DOWN/The four arrow keys ...
-KEY_UP
-KEY_LEFT
-KEY_RIGHT
-KEY_HOME/Home key (upward+left arrow)
-KEY_BACKSPACE/Backspace
-KEY_F0/T{
-Function keys; space for 64 keys is reserved.
-T}
-KEY_F(\fIn\fR)/T{
-For 0 \(<= \fIn\fR \(<= 63
-T}
-KEY_DL/Delete line
-KEY_IL/Insert line
-KEY_DC/Delete character
-KEY_IC/Insert char or enter insert mode
-KEY_EIC/Exit insert char mode
-KEY_CLEAR/Clear screen
-KEY_EOS/Clear to end of screen
-KEY_EOL/Clear to end of line
-KEY_SF/Scroll 1 line forward
-KEY_SR/Scroll 1 line backward (reverse)
-KEY_NPAGE/Next page
-KEY_PPAGE/Previous page
-KEY_STAB/Set tab
-KEY_CTAB/Clear tab
-KEY_CATAB/Clear all tabs
-KEY_ENTER/Enter or send
-KEY_SRESET/Soft (partial) reset
-KEY_RESET/Reset or hard reset
-KEY_PRINT/Print or copy
-KEY_LL/Home down or bottom (lower left).
-KEY_A1/Upper left of keypad
-KEY_A3/Upper right of keypad
-KEY_B2/Center of keypad
-KEY_C1/Lower left of keypad
-KEY_C3/Lower right of keypad
-KEY_BTAB/Back tab key
-KEY_BEG/Beg(inning) key
-KEY_CANCEL/Cancel key
-KEY_CLOSE/Close key
-KEY_COMMAND/Cmd (command) key
-KEY_COPY/Copy key
-KEY_CREATE/Create key
-KEY_END/End key
-KEY_EXIT/Exit key
-KEY_FIND/Find key
-KEY_HELP/Help key
-KEY_MARK/Mark key
-KEY_MESSAGE/Message key
-KEY_MOUSE/Mouse event read
-KEY_MOVE/Move key
-KEY_NEXT/Next object key
-KEY_OPEN/Open key
-KEY_OPTIONS/Options key
-KEY_PREVIOUS/Previous object key
-KEY_REDO/Redo key
-KEY_REFERENCE/Ref(erence) key
-KEY_REFRESH/Refresh key
-KEY_REPLACE/Replace key
-KEY_RESIZE/Screen resized
-KEY_RESTART/Restart key
-KEY_RESUME/Resume key
-KEY_SAVE/Save key
-KEY_SBEG/Shifted beginning key
-KEY_SCANCEL/Shifted cancel key
-KEY_SCOMMAND/Shifted command key
-KEY_SCOPY/Shifted copy key
-KEY_SCREATE/Shifted create key
-KEY_SDC/Shifted delete char key
-KEY_SDL/Shifted delete line key
-KEY_SELECT/Select key
-KEY_SEND/Shifted end key
-KEY_SEOL/Shifted clear line key
-KEY_SEXIT/Shifted exit key
-KEY_SFIND/Shifted find key
-KEY_SHELP/Shifted help key
-KEY_SHOME/Shifted home key
-KEY_SIC/Shifted input key
-KEY_SLEFT/Shifted left arrow key
-KEY_SMESSAGE/Shifted message key
-KEY_SMOVE/Shifted move key
-KEY_SNEXT/Shifted next key
-KEY_SOPTIONS/Shifted options key
-KEY_SPREVIOUS/Shifted prev key
-KEY_SPRINT/Shifted print key
-KEY_SREDO/Shifted redo key
-KEY_SREPLACE/Shifted replace key
-KEY_SRIGHT/Shifted right arrow
-KEY_SRSUME/Shifted resume key
-KEY_SSAVE/Shifted save key
-KEY_SSUSPEND/Shifted suspend key
-KEY_SUNDO/Shifted undo key
-KEY_SUSPEND/Suspend key
-KEY_UNDO/Undo key
-.TE
-
-Keypad is arranged like this:
-.sp
-.TS
-center allbox tab(/) ;
-c c c .
-\fBA1\fR/\fBup\fR/\fBA3\fR
-\fBleft\fR/\fBB2\fR/\fBright\fR
-\fBC1\fR/\fBdown\fR/\fBC3\fR
-.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.
-
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful
-completion.
-.SH NOTES
-Use of the escape key by a programmer for a single character function is
-discouraged, as it will cause a delay of up to one second while the
-keypad code looks for a following function-key sequence.
-
-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
-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
-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
-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
-\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
-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
-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
-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
-\fBEINTR\fR. Under the \fBncurses\fR implementation, handled signals never
-interrupt \fBgetch\fR.
-
-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),
-\fBcurs_inopts\fR(3X),
-\fBcurs_mouse\fR(3X),
-\fBcurs_move\fR(3X),
-\fBcurs_refresh\fR(3X).
-\fBresizeterm\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_getstr.3x b/ncurses-5.2/man/curs_getstr.3x
deleted file mode 100644
index 77241a2..0000000
--- a/ncurses-5.2/man/curs_getstr.3x
+++ /dev/null
@@ -1,107 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_getstr 3X ""
-.SH NAME
-\fBgetstr\fR,
-\fBgetnstr\fR,
-\fBwgetstr\fR,
-\fBwgetnstr\fR,
-\fBmvgetstr\fR,
-\fBmvgetnstr\fR,
-\fBmvwgetstr\fR,
-\fBmvwgetnstr\fR - accept character strings from \fBcurses\fR terminal keyboard
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint getstr(char *str);\fR
-.br
-\fBint getnstr(char *str, int n);\fR
-.br
-\fBint wgetstr(WINDOW *win, char *str);\fR
-.br
-\fBint wgetnstr(WINDOW *win, char *str, int n);\fR
-.br
-\fBint mvgetstr(int y, int x, char *str);\fR
-.br
-\fBint mvwgetstr(WINDOW *win, int y, int x, char *str);\fR
-.br
-\fBint mvgetnstr(int y, int x, char *str, int n);\fR
-.br
-\fBint mvwgetnstr(WINDOW *, int y, int x, char *str, int n);\fR
-.br
-.SH DESCRIPTION
-The function \fBgetstr\fR is equivalent to a series of calls to \fBgetch\fR,
-until a newline or carriage return is received (the terminating character is
-not included in the returned string). The resulting value is placed in the
-area pointed to by the character pointer \fIstr\fR.
-
-\fBwgetnstr\fR reads at most \fIn\fR characters, thus preventing a possible
-overflow of the input buffer. Any attempt to enter more characters (other
-than the terminating newline or carriage return) causes a beep. Function
-keys also cause a beep and are ignored. The \fBgetnstr\fR function reads
-from the \fIstdscr\fR default window.
-
-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).
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.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).
-
-SVr3 and early SVr4 curses implementations did not reject function keys;
-the SVr4.0 documentation claimed that "special keys" (such as function
-keys, "home" key, "clear" key, \fIetc\fR.) are interpreted" without
-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).
-
-The functions \fBgetnstr\fR, \fBmvgetnstr\fR, and \fBmvwgetnstr\fR were
-present but not documented in SVr4.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_getch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_getyx.3x b/ncurses-5.2/man/curs_getyx.3x
deleted file mode 100644
index 7fc2854..0000000
--- a/ncurses-5.2/man/curs_getyx.3x
+++ /dev/null
@@ -1,72 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_getyx 3X ""
-.SH NAME
-\fBgetyx\fR, \fBgetparyx\fR, \fBgetbegyx\fR,
-\fBgetmaxyx\fR - get \fBcurses\fR cursor and window coordinates
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBvoid getyx(WINDOW *win, int y, int x);\fR
-.br
-\fBvoid getparyx(WINDOW *win, int y, int x);\fR
-.br
-\fBvoid getbegyx(WINDOW *win, int y, int x);\fR
-.br
-\fBvoid getmaxyx(WINDOW *win, int y, int x);\fR
-.br
-.SH DESCRIPTION
-The \fBgetyx\fR macro places the current cursor position of the given window in
-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
-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.,
-they should not be used as the right-hand side of assignment
-statements).
-.SH NOTES
-All of these interfaces are macros and that "\fB&\fR" is not
-necessary before the variables \fIy\fR and \fIx\fR.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_inch.3x b/ncurses-5.2/man/curs_inch.3x
deleted file mode 100644
index d86ea3a..0000000
--- a/ncurses-5.2/man/curs_inch.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH curs_inch 3X ""
-.SH NAME
-\fBinch\fR, \fBwinch\fR, \fBmvinch\fR, \fBmvwinch\fR
-- get a character and attributes from a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBchtype inch(void);\fR
-.br
-\fBchtype winch(WINDOW *win);\fR
-.br
-\fBchtype mvinch(int y, int x);\fR
-.br
-\fBchtype mvwinch(WINDOW *win, int y, int x);\fR
-.br
-.SH DESCRIPTION
-These routines return the character, of type \fBchtype\fR, 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
-\fB<curses.h>\fR can be used with the \fB&\fR (logical AND) operator to
-extract the character or attributes alone.
-
-.SS Attributes
-The following bit-masks may be AND-ed with characters returned by \fBwinch\fR.
-
-.TS
-l l .
-\fBA_CHARTEXT\fR Bit-mask to extract character
-\fBA_ATTRIBUTES\fR Bit-mask to extract attributes
-\fBA_COLOR\fR Bit-mask to extract color-pair field information
-.TE
-.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).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_inchstr.3x b/ncurses-5.2/man/curs_inchstr.3x
deleted file mode 100644
index 63d0ad4..0000000
--- a/ncurses-5.2/man/curs_inchstr.3x
+++ /dev/null
@@ -1,88 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_inchstr 3X ""
-.SH NAME
-\fBinchstr\fR,
-\fBinchnstr\fR,
-\fBwinchstr\fR,
-\fBwinchnstr\fR,
-\fBmvinchstr\fR,
-\fBmvinchnstr\fR,
-\fBmvwinchstr\fR,
-\fBmvwinchnstr\fR - get a string of characters (and attributes) from a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint inchstr(chtype *chstr);\fR
-.br
-\fBint inchnstr(chtype *chstr, int n);\fR
-.br
-\fBint winchstr(WINDOW *win, chtype *chstr);\fR
-.br
-\fBint winchnstr(WINDOW *win, chtype *chstr, int n);\fR
-.br
-\fBint mvinchstr(int y, int x, chtype *chstr);\fR
-.br
-\fBint mvinchnstr(int y, int x, chtype *chstr, int n);\fR
-.br
-\fBint mvwinchstr(WINDOW *win, int y, int x, chtype *chstr);\fR
-.br
-\fBint mvwinchnstr(WINDOW *win, int y, int x, chtype *chstr, int n);\fR
-.br
-.SH DESCRIPTION
-These routines return a NULL-terminated array of \fBchtype\fR quantities,
-starting at the current cursor position in the named window and ending at the
-right margin of the window. The four functions with \fIn\fR as
-the last argument, return a leading substring at most \fIn\fR characters long
-(exclusive of the trailing (chtype)0).
-Constants defined in \fB<curses.h>\fR can be used with the \fB&\fR (logical
-AND) operator to extract the character or the attribute alone from any position
-in the \fIchstr\fR [see \fBcurs_inch\fR(3X)].
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR upon successful completion (the number of characters
-retrieved, exclusive of the trailing 0).
-.SH NOTES
-Note that all routines except \fBwinchnstr\fR may be macros. SVr4 does not
-document whether the result string is 0-terminated; it does not document
-whether a length limit argument includes any trailing 0; and it does not
-document the meaning of the return value.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. It is no
-more specific than the SVr4 documentation on the trailing 0. It does specify
-that the successful return of the functions is \fBOK\fR.
-.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/ncurses-5.2/man/curs_initscr.3x b/ncurses-5.2/man/curs_initscr.3x
deleted file mode 100644
index 823d18d..0000000
--- a/ncurses-5.2/man/curs_initscr.3x
+++ /dev/null
@@ -1,124 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_initscr 3X ""
-.SH NAME
-\fBinitscr\fR,
-\fBnewterm\fR,
-\fBendwin\fR,
-\fBisendwin\fR,
-\fBset_term\fR,
-\fBdelscreen\fR - \fBcurses\fR screen initialization and manipulation routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBWINDOW *initscr(void);\fR
-.br
-\fBint endwin(void);\fR
-.br
-\fBbool isendwin(void);\fR
-.br
-\fBSCREEN *newterm(const char *type, FILE *outfd, FILE *infd);\fR
-.br
-\fBSCREEN *set_term(SCREEN *new);\fR
-.br
-\fBvoid delscreen(SCREEN* sp);\fR
-.br
-.SH DESCRIPTION
-\fBinitscr\fR is normally the first \fBcurses\fR routine to call when
-initializing a program. A few special routines sometimes need to be
-called before it; these are \fBslk_init\fR, \fBfilter\fR, \fBripoffline\fR,
-\fBuse_env\fR. For multiple-terminal applications, \fBnewterm\fR may be
-called before \fBinitscr\fR.
-
-The initscr code determines the terminal type and initializes all \fBcurses\fR
-data structures. \fBinitscr\fR also causes the first call to \fBrefresh\fR to
-clear the screen. If errors occur, \fBinitscr\fR writes an appropriate error
-message to standard error and exits; otherwise, a pointer is returned to
-\fBstdscr\fR.
-
-A program that outputs to more than one terminal should use the \fBnewterm\fR
-routine for each terminal instead of \fBinitscr\fR. A program that needs to
-inspect capabilities, so it can continue to run in a line-oriented mode if the
-terminal cannot support a screen-oriented program, would also use
-\fBnewterm\fR. The routine \fBnewterm\fR should be called once for each
-terminal. It returns a variable of type \fBSCREEN *\fR which should be saved
-as a reference to that terminal. The arguments are the \fItype\fR of the
-terminal to be used in place of \fB$TERM\fR, a file pointer for output to the
-terminal, and another file pointer for input from the terminal (if \fItype\fR
-is \fBNULL\fR, \fB$TERM\fR will be used). The program must also call
-\fBendwin\fR for each terminal being used before exiting from \fBcurses\fR.
-If \fBnewterm\fR is called more than once for the same terminal, the first
-terminal referred to must be the last one for which \fBendwin\fR is called.
-
-A program should always call \fBendwin\fR before exiting or escaping from
-\fBcurses\fR mode temporarily. This routine restores tty modes, moves the
-cursor to the lower left-hand corner of the screen and resets the terminal into
-the proper non-visual mode. Calling \fBrefresh\fR or \fBdoupdate\fR after a
-temporary escape causes the program to resume visual mode.
-
-The \fBisendwin\fR routine returns \fBTRUE\fR if \fBendwin\fR has been
-called without any subsequent calls to \fBwrefresh\fR, and \fBFALSE\fR
-otherwise.
-
-The \fBset_term\fR routine is used to switch between different
-terminals. The screen reference \fBnew\fR becomes the new current
-terminal. The previous terminal is returned by the routine. This is
-the only routine which manipulates \fBSCREEN\fR pointers; all other
-routines affect only the current terminal.
-
-The \fBdelscreen\fR routine frees storage associated with the
-\fBSCREEN\fR data structure. The \fBendwin\fR routine does not do
-this, so \fBdelscreen\fR should be called after \fBendwin\fR if a
-particular \fBSCREEN\fR is no longer needed.
-.SH RETURN VALUE
-\fBendwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
-upon successful completion.
-
-Routines that return pointers always return \fBNULL\fR on error.
-.SH NOTES
-Note that \fBinitscr\fR and \fBnewterm\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. It
-specifies that portable applications must not call \fBinitscr\fR more than
-once.
-
-Old versions of curses, e.g., BSD 4.4, may have returned a null pointer
-from \fBinitscr\fR when an error is detected, rather than exiting.
-It is safe but redundant to check the return value of \fBinitscr\fR
-in XSI Curses.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_refresh\fR(3X),
-\fBcurs_slk\fR(3X), \fBcurs_util\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_inopts.3x b/ncurses-5.2/man/curs_inopts.3x
deleted file mode 100644
index 8f84247..0000000
--- a/ncurses-5.2/man/curs_inopts.3x
+++ /dev/null
@@ -1,214 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_inopts 3X ""
-.SH NAME
-\fBcbreak\fR, \fBnocbreak\fR, \fBecho\fR,
-\fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR, \fBkeypad\fR,
-\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBraw\fR, \fBnoraw\fR,
-\fBnoqiflush\fR, \fBqiflush\fR, \fBtimeout\fR, \fBwtimeout\fR,
-\fBtypeahead\fR - \fBcurses\fR input options
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint cbreak(void);\fR
-.br
-\fBint nocbreak(void);\fR
-.br
-\fBint echo(void);\fR
-.br
-\fBint noecho(void);\fR
-.br
-\fBint halfdelay(int tenths);\fR
-.br
-\fBint intrflush(WINDOW *win, bool bf);\fR
-.br
-\fBint keypad(WINDOW *win, bool bf);\fR
-.br
-\fBint meta(WINDOW *win, bool bf);\fR
-.br
-\fBint nodelay(WINDOW *win, bool bf);\fR
-.br
-\fBint raw(void);\fR
-.br
-\fBint noraw(void);\fR
-.br
-\fBvoid noqiflush(void);\fR
-.br
-\fBvoid qiflush(void);\fR
-.br
-\fBint notimeout(WINDOW *win, bool bf);\fR
-.br
-\fBvoid timeout(int delay);\fR
-.br
-\fBvoid wtimeout(WINDOW *win, int delay);\fR
-.br
-\fBint typeahead(int fd);\fR
-.br
-.SH DESCRIPTION
-Normally, the tty driver buffers typed characters until a newline or carriage
-return is typed. The \fBcbreak\fR routine disables line buffering and
-erase/kill character-processing (interrupt and flow control characters are
-unaffected), making characters typed by the user immediately available to the
-program. The \fBnocbreak\fR routine returns the terminal to normal (cooked)
-mode.
-
-Initially the terminal may or may not be in \fBcbreak\fR mode, as the mode is
-inherited; therefore, a program should call \fBcbreak\fR or \fBnocbreak\fR
-explicitly. Most interactive programs using \fBcurses\fR set the \fBcbreak\fR
-mode. Note that \fBcbreak\fR overrides \fBraw\fR.
-[See \fBcurs_getch\fR(3X) for a
-discussion of how these routines interact with \fBecho\fR and \fBnoecho\fR.]
-
-The \fBecho\fR and \fBnoecho\fR routines control whether characters typed by
-the user are echoed by \fBgetch\fR as they are typed. Echoing by the tty
-driver is always disabled, but initially \fBgetch\fR 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 \fBnoecho\fR.
-[See \fBcurs_getch\fR(3X) for a
-discussion of how these routines interact with \fBcbreak\fR and
-\fBnocbreak\fR.]
-
-The \fBhalfdelay\fR routine is used for half-delay mode, which is similar to
-\fBcbreak\fR mode in that characters typed by the user are immediately
-available to the program. However, after blocking for \fItenths\fR tenths of
-seconds, ERR is returned if nothing has been typed. The value of \fBtenths\fR
-must be a number between 1 and 255. Use \fBnocbreak\fR to leave half-delay
-mode.
-
-If the \fBintrflush\fR option is enabled, (\fIbf\fR is \fBTRUE\fR), when an
-interrupt key is pressed on the keyboard (interrupt, break, quit) all output in
-the tty driver queue will be flushed, giving the effect of faster response to
-the interrupt, but causing \fBcurses\fR to have the wrong idea of what is on
-the screen. Disabling (\fIbf\fR is \fBFALSE\fR), the option prevents the
-flush. The default for the option is inherited from the tty driver settings.
-The window argument is ignored.
-
-The \fBkeypad\fR option enables the keypad of the user's terminal. If
-enabled (\fIbf\fR is \fBTRUE\fR), the user can press a function key
-(such as an arrow key) and \fBwgetch\fR returns a single value
-representing the function key, as in \fBKEY_LEFT\fR. If disabled
-(\fIbf\fR is \fBFALSE\fR), \fBcurses\fR 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 keypad to be turned on when \fBwgetch\fR is
-called. The default value for keypad is false.
-
-Initially, whether the terminal returns 7 or 8 significant bits on
-input depends on the control mode of the tty driver [see termio(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,
-to setting the CS8 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,
-\fBTRUE\fR) is called and \fBrmm\fR is sent when \fBmeta\fR(\fIwin\fR,
-\fBFALSE\fR) is called.
-
-The \fBnodelay\fR option causes \fBgetch\fR to be a non-blocking call.
-If no input is ready, \fBgetch\fR returns \fBERR\fR. If disabled
-(\fIbf\fR is \fBFALSE\fR), \fBgetch\fR waits until a key is pressed.
-
-While interpreting an input escape sequence, \fBwgetch\fR sets a timer
-while waiting for the next character. If \fBnotimeout(\fR\fIwin\fR,
-\fBTRUE\fR) is called, then \fBwgetch\fR 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.
-
-The \fBraw\fR and \fBnoraw\fR routines place the terminal into or out of raw
-mode. Raw mode is similar to \fBcbreak\fR 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 bits in the tty driver that are not set by
-\fBcurses\fR.
-
-When the \fBnoqiflush\fR routine is used, normal flush of input and
-output queues associated with the \fBINTR\fR, \fBQUIT\fR and
-\fBSUSP\fR characters will not be done [see termio(7)]. When
-\fBqiflush\fR is called, the queues will be flushed when these control
-characters are read. You may want to call \fBnoqiflush()\fR in a signal
-handler if you want output to continue as though the interrupt
-had not occurred, after the handler exits.
-
-The \fBtimeout\fR and \fBwtimeout\fR routines set blocking or
-non-blocking read for a given window. If \fIdelay\fR is negative,
-blocking read is used (\fIi\fR.\fIe\fR., waits indefinitely for
-input). If \fIdelay\fR is zero, then non-blocking read is used
-(\fIi\fR.\fIe\fR., read returns \fBERR\fR if no input is waiting). If
-\fIdelay\fR is positive, then read blocks for \fIdelay\fR
-milliseconds, and returns \fBERR\fR if there is still no input.
-Hence, these routines provide the same functionality as \fBnodelay\fR,
-plus the additional capability of being able to block for only
-\fIdelay\fR milliseconds (where \fIdelay\fR is positive).
-
-The \fBcurses\fR library does ``line-breakout optimization'' by looking for
-typeahead periodically while updating the screen. If input is found,
-and it is coming from a tty, the current update is postponed until
-\fBrefresh\fR or \fBdoupdate\fR is called again. This allows faster
-response to commands typed in advance. Normally, the input FILE
-pointer passed to \fBnewterm\fR, or \fBstdin\fR in the case that
-\fBinitscr\fR was used, will be used to do this typeahead checking.
-The \fBtypeahead\fR routine specifies that the file descriptor
-\fIfd\fR is to be used to check for typeahead instead. If \fIfd\fR is
--1, then no typeahead checking is done.
-.SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-
-The ncurses library obeys the XPG4 standard and the historical practice of the
-AT&T curses implementations, in that the echo bit is cleared when curses
-initializes the terminal state. BSD curses differed from this slightly; it
-left the echo bit on at initialization, but the BSD \fBraw\fR call turned it
-off as a side-effect. For best portability, set echo or noecho explicitly
-just after initialization, even if your program remains in cooked mode.
-.SH NOTES
-Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR,
-\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBnoqiflush\fR,
-\fBqiflush\fR, \fBtimeout\fR, and \fBwtimeout\fR may be macros.
-
-The \fBnoraw\fR and \fBnocbreak\fR calls follow historical practice in that
-they attempt to restore to normal (`cooked') mode from raw and cbreak modes
-respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver
-control states that are hard to predict or understand; it is not recommended.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_getch\fR(3X), \fBcurs_initscr\fR(3X), \fBtermio\fR(7)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_insch.3x b/ncurses-5.2/man/curs_insch.3x
deleted file mode 100644
index 35433c0..0000000
--- a/ncurses-5.2/man/curs_insch.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_insch 3X ""
-.SH NAME
-\fBinsch\fR,
-\fBwinsch\fR,
-\fBmvinsch\fR,
-\fBmvwinsch\fR - insert a character before cursor in a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint insch(chtype ch);\fR
-.br
-\fBint winsch(WINDOW *win, chtype ch);\fR
-.br
-\fBint mvinsch(int y, int x, chtype ch);\fR
-.br
-\fBint mvwinsch(WINDOW *win, int y, int x, chtype ch);\fR
-.br
-.SH DESCRIPTION
-These routines, insert the character \fIch\fR before the character under the
-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
-All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-.SH NOTES
-These routines do not necessarily imply use of a hardware insert character
-feature.
-
-Note that \fBinsch\fR, \fBmvinsch\fR, and \fBmvwinsch\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_insstr.3x b/ncurses-5.2/man/curs_insstr.3x
deleted file mode 100644
index 33fb855..0000000
--- a/ncurses-5.2/man/curs_insstr.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_insstr 3X ""
-.SH NAME
-\fBinsstr\fR,
-\fBinsnstr\fR,
-\fBwinsstr\fR,
-\fBwinsnstr\fR,
-\fBmvinsstr\fR,
-\fBmvinsnstr\fR,
-\fBmvwinsstr\fR,
-\fBmvwinsnstr\fR - insert string before cursor in a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint insstr(const char *str);\fR
-.br
-\fBint insnstr(const char *str, int n);\fR
-.br
-\fBint winsstr(WINDOW *win, const char *str);\fR
-.br
-\fBint winsnstr(WINDOW *win, const char *str, int n);\fR
-.br
-\fBint mvinsstr(int y, int x, const char *str);\fR
-.br
-\fBint mvinsnstr(int y, int x, const char *str, int n);\fR
-.br
-\fBint mvwinsstr(WINDOW *win, int y, int x, const char *str);\fR
-.br
-\fBint mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n);\fR
-.br
-.SH DESCRIPTION
-These routines insert a character string (as many characters as will fit on the
-line) before the character under the cursor. All characters to the right of
-the cursor are shifted right, with the possibility of the rightmost characters
-on the line being lost. The cursor position does not change (after moving to
-\fIy\fR, \fIx\fR, if specified). The four routines with \fIn\fR as the last
-argument insert a leading substring of at most \fIn\fR characters. If
-\fIn\fR<=0, then the entire string is inserted.
-
-If a character in \fIstr\fR is a tab, newline, carriage return or
-backspace, the cursor is moved appropriately within the window. A
-newline also does a \fBclrtoeol\fR before moving. Tabs are considered
-to be at every eighth column. If a character in \fIstr\fR is another
-control character, it is drawn in the \fB^\fR\fIX\fR notation.
-Calling \fBwinch\fR after adding a control character (and moving to
-it, if necessary) does not return the control character, but instead
-returns a character in the ^-representation of the control character.
-.SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-.SH NOTES
-Note that all but \fBwinsnstr\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4, which adds
-const qualifiers to the arguments. The XSI Curses error conditions
-\fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with extended-level conformance
-are not yet detected (this implementation does not yet support XPG4 multi-byte
-characters).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_clear\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/ncurses-5.2/man/curs_instr.3x b/ncurses-5.2/man/curs_instr.3x
deleted file mode 100644
index 5296db4..0000000
--- a/ncurses-5.2/man/curs_instr.3x
+++ /dev/null
@@ -1,89 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_instr 3X ""
-.SH NAME
-\fBinstr\fR,
-\fBinnstr\fR,
-\fBwinstr\fR,
-\fBwinnstr\fR,
-\fBmvinstr\fR,
-\fBmvinnstr\fR,
-\fBmvwinstr\fR,
-\fBmvwinnstr\fR - get a string of characters from a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint instr(char *str);\fR
-.br
-\fBint innstr(char *str, int n);\fR
-.br
-\fBint winstr(WINDOW *win, char *str);\fR
-.br
-\fBint winnstr(WINDOW *win, char *str, int n);\fR
-.br
-\fBint mvinstr(int y, int x, char *str);\fR
-.br
-\fBint mvinnstr(int y, int x, char *str, int n);\fR
-.br
-\fBint mvwinstr(WINDOW *win, int y, int x, char *str);\fR
-.br
-\fBint mvwinnstr(WINDOW *win, int y, int x, char *str, int n);\fR
-.br
-.SH DESCRIPTION
-These routines return a string of characters in \fIstr\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 characters long (exclusive of the trailing NUL).
-.SH RETURN VALUE
-All of the functions return \fBERR\fR upon failure,
-or the number of characters actually read into the string.
-.SH NOTES
-Note that all routines except \fBwinnstr\fR may be macros.
-.SH PORTABILITY
-The XSI Curses
-error conditions \fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with
-extended-level conformance are not yet detected (this implementation does not
-yet support XPG4 multi-byte characters).
-SVr4 does not
-document whether a length limit includes or excludes the trailing NUL.
-.PP
-The ncurses library extends the XSI description by allowing a negative
-value for \fIn\fR.
-In this case, the functions return the string ending at the right margin.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
-
diff --git a/ncurses-5.2/man/curs_kernel.3x b/ncurses-5.2/man/curs_kernel.3x
deleted file mode 100644
index 2da87b5..0000000
--- a/ncurses-5.2/man/curs_kernel.3x
+++ /dev/null
@@ -1,159 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_kernel 3X ""
-.SH NAME
-\fBdef_prog_mode\fR, \fBdef_shell_mode\fR,
-\fBreset_prog_mode\fR, \fBreset_shell_mode\fR, \fBresetty\fR,
-\fBsavetty\fR, \fBgetsyx\fR, \fBsetsyx\fR, \fBripoffline\fR,
-\fBcurs_set\fR, \fBnapms\fR - low-level \fBcurses\fR routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint def_prog_mode(void);\fR
-.br
-\fBint def_shell_mode(void);\fR
-.br
-\fBint reset_prog_mode(void);\fR
-.br
-\fBint reset_shell_mode(void);\fR
-.br
-\fBint resetty(void);\fR
-.br
-\fBint savetty(void);\fR
-.br
-\fBvoid getsyx(int y, int x);\fR
-.br
-\fBvoid setsyx(int y, int x);\fR
-.br
-\fBint ripoffline(int line, int (*init)(WINDOW *, int));\fR
-.br
-\fBint curs_set(int visibility);\fR
-.br
-\fBint napms(int ms);\fR
-.br
-.SH DESCRIPTION
-The following routines give low-level access to various \fBcurses\fR
-capabilities. Theses routines typically are used inside library
-routines.
-
-The \fBdef_prog_mode\fR and \fBdef_shell_mode\fR routines save the
-current terminal modes as the "program" (in \fBcurses\fR) or "shell"
-(not in \fBcurses\fR) state for use by the \fBreset_prog_mode\fR and
-\fBreset_shell_mode\fR routines. This is done automatically by
-\fBinitscr\fR. There is one such save area for each screen context
-allocated by \fBnewterm()\fR.
-
-The \fBreset_prog_mode\fR and \fBreset_shell_mode\fR routines restore
-the terminal to "program" (in \fBcurses\fR) or "shell" (out of
-\fBcurses\fR) state. These are done automatically by \fBendwin\fR
-and, after an \fBendwin\fR, by \fBdoupdate\fR, so they normally are
-not called.
-
-The \fBresetty\fR and \fBsavetty\fR routines save and restore the
-state of the terminal modes. \fBsavetty\fR saves the current state in
-a buffer and \fBresetty\fR restores the state to what it was at the
-last call to \fBsavetty\fR.
-
-The \fBgetsyx\fR routine returns the current coordinates of the virtual screen
-cursor in \fIy\fR and \fIx\fR. If \fBleaveok\fR is currently \fBTRUE\fR, then
-\fB-1\fR,\fB-1\fR is returned. If lines have been removed from the top of the
-screen, using \fBripoffline\fR, \fIy\fR and \fIx\fR include these lines;
-therefore, \fIy\fR and \fIx\fR should be used only as arguments for
-\fBsetsyx\fR.
-
-The \fBsetsyx\fR routine sets the virtual screen cursor to
-\fIy\fR, \fIx\fR. If \fIy\fR and \fIx\fR are both \fB-1\fR, then
-\fBleaveok\fR is set. The two routines \fBgetsyx\fR and \fBsetsyx\fR
-are designed to be used by a library routine, which manipulates
-\fBcurses\fR windows but does not want to change the current position
-of the program's cursor. The library routine would call \fBgetsyx\fR
-at the beginning, do its manipulation of its own windows, do a
-\fBwnoutrefresh\fR on its windows, call \fBsetsyx\fR, and then call
-\fBdoupdate\fR.
-
-The \fBripoffline\fR routine provides access to the same facility that
-\fBslk_init\fR [see \fBcurs_slk\fR(3X)] uses to reduce the size of the
-screen. \fBripoffline\fR must be called before \fBinitscr\fR or
-\fBnewterm\fR is called. If \fIline\fR is positive, a line is removed
-from the top of \fBstdscr\fR; if \fIline\fR is negative, a line is
-removed from the bottom. When this is done inside \fBinitscr\fR, the
-routine \fBinit\fR (supplied by the user) is called with two
-arguments: a window pointer to the one-line window that has been
-allocated and an integer with the number of columns in the window.
-Inside this initialization routine, the integer variables \fBLINES\fR
-and \fBCOLS\fR (defined in \fB<curses.h>\fR) are not guaranteed to be
-accurate and \fBwrefresh\fR or \fBdoupdate\fR must not be called. It
-is allowable to call \fBwnoutrefresh\fR during the initialization
-routine.
-
-\fBripoffline\fR can be called up to five times before calling \fBinitscr\fR or
-\fBnewterm\fR.
-
-The \fBcurs_set\fR routine sets the cursor state is set to invisible,
-normal, or very visible for \fBvisibility\fR equal to \fB0\fR,
-\fB1\fR, or \fB2\fR respectively. If the terminal supports the
-\fIvisibility\fR requested, the previous \fIcursor\fR state is
-returned; otherwise, \fBERR\fR is returned.
-
-The \fBnapms\fR routine is used to sleep for \fIms\fR milliseconds.
-.SH RETURN VALUE
-Except for \fBcurs_set\fR, these routines always return \fBOK\fR.
-\fBcurs_set\fR returns the previous cursor state, or \fBERR\fR if the
-requested \fIvisibility\fR is not supported.
-.SH NOTES
-Note that \fBgetsyx\fR is a macro, so \fB&\fR is not necessary before
-the variables \fIy\fR and \fIx\fR.
-
-Older SVr4 man pages warn that the return value of \fBcurs_set\fR "is currently
-incorrect". This implementation gets it right, but it may be unwise to count
-on the correctness of the return value anywhere else.
-
-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.
-There is no way for ncurses to determine the initial cursor state to
-restore that.
-.SH PORTABILITY
-The functions \fBsetsyx\fR and \fBgetsyx\fR are not described in the XSI
-Curses standard, Issue 4. All other functions are as described in XSI Curses.
-
-The SVr4 documentation describes \fBsetsyx\fR and \fBgetsyx\fR as having return
-type int. This is misleading, as they are macros with no documented semantics
-for the return value.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X),
-\fBcurs_scr_dump\fR(3X), \fBcurs_slk\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_mouse.3x b/ncurses-5.2/man/curs_mouse.3x
deleted file mode 100644
index 7ad4f65..0000000
--- a/ncurses-5.2/man/curs_mouse.3x
+++ /dev/null
@@ -1,217 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" 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 *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" 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$
-.TH curs_mouse 3X ""
-.SH NAME
-\fBgetmouse\fR, \fBungetmouse\fR,
-\fBmousemask\fR, \fBwenclose\fR,
-\fBmouse_trafo\fR, \fBwmouse_trafo\fR,
-\fBmouseinterval\fR - mouse interface through curses
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-
-\fBtypedef unsigned long mmask_t;
-
-typedef struct
-{
- short id; \fI/* ID to distinguish multiple devices */\fB
- int x, y, z; \fI/* event coordinates */\fB
- mmask_t bstate; \fI/* button state bits */\fB
-}
-MEVENT;\fR
-.fi
-.br
-\fBint getmouse(MEVENT *event);\fR
-.br
-\fBint ungetmouse(MEVENT *event);\fR
-.br
-\fBmmask_t mousemask(mmask_t newmask, mmask_t *oldmask);\fR
-.br
-\fBbool wenclose(WINDOW *win, int y, int x);\fR
-.br
-\fBbool mouse_trafo(int* pY, int* pX, bool to_screen);\fR
-.br
-\fBbool wmouse_trafo(const WINDOW* win, int* pY, int* pX,\fR
-.br
- \fBbool to_screen);\fR
-.br
-\fBint mouseinterval(int erval);\fR
-.br
-.SH DESCRIPTION
-These functions provide an interface to mouse events from
-\fBncurses\fR(3X). Mouse events are represented by \fBKEY_MOUSE\fR
-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.
-The function will return a mask to indicate which of the specified mouse events
-can be reported; on complete failure it returns 0. If oldmask is non-NULL,
-this function fills the indicated 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.
-
-Here are the mouse event type masks:
-
-.TS
-l l
-_ _
-l l.
-\fIName\fR \fIDescription\fR
-BUTTON1_PRESSED mouse button 1 down
-BUTTON1_RELEASED mouse button 1 up
-BUTTON1_CLICKED mouse button 1 clicked
-BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
-BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
-BUTTON2_PRESSED mouse button 2 down
-BUTTON2_RELEASED mouse button 2 up
-BUTTON2_CLICKED mouse button 2 clicked
-BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
-BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
-BUTTON3_PRESSED mouse button 3 down
-BUTTON3_RELEASED mouse button 3 up
-BUTTON3_CLICKED mouse button 3 clicked
-BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
-BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
-BUTTON4_PRESSED mouse button 4 down
-BUTTON4_RELEASED mouse button 4 up
-BUTTON4_CLICKED mouse button 4 clicked
-BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
-BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
-BUTTON_SHIFT shift was down during button state change
-BUTTON_CTRL control was down during button state change
-BUTTON_ALT alt was down during button state change
-ALL_MOUSE_EVENTS report all button state changes
-REPORT_MOUSE_POSITION report mouse movement
-.TE
-
-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
-\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
-coordinates. The returned state mask will have exactly one bit set to
-indicate the event type.
-
-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
-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
-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_...
-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
-\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
-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
-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.
-
-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 \fBgetstr\fR that expects a linefeed for input-loop
-termination.
-
-.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
-are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending
-on their test result.
-.SH PORTABILITY
-These calls were designed for \fBncurses\fR(3X), and are not found in SVr4
-curses, 4.4BSD curses, or any other previous version of curses.
-
-The feature macro \fBNCURSES_MOUSE_VERSION\fR is provided so the preprocessor
-can be used to test whether these features are present (its value is 1).
-If the interface is changed, the value of \fBNCURSES_MOUSE_VERSION\fR will be
-incremented.
-
-The order of the \fBMEVENT\fR structure members is not guaranteed.
-Additional fields may be added to the structure in the future.
-
-Under \fBncurses\fR(3X), 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 machine, mouse events will not be visible to
-\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
-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
-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 interpreted as a variety of function key.
-Your terminfo description must have \fBkmous\fR set to "\\E[M" (the beginning
-of the response from xterm for mouse clicks).
-
-Because there are no standard terminal responses that would serve to identify
-terminals which support the xterm mouse protocol, \fBncurses\fR assumes that
-if your $DISPLAY environment variable is set, and \fBkmous\fR is defined in
-the terminal description, then the terminal may send mouse events.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_move.3x b/ncurses-5.2/man/curs_move.3x
deleted file mode 100644
index 4191051..0000000
--- a/ncurses-5.2/man/curs_move.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_move 3X ""
-.SH NAME
-\fBmove\fR, \fBwmove\fR - move \fBcurses\fR window cursor
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint move(int y, int x);\fR
-.br
-\fBint wmove(WINDOW *win, int y, int x);\fR
-.br
-.SH DESCRIPTION
-These routines move the cursor associated with the window to line \fIy\fR and
-column \fIx\fR. This routine does not move the physical cursor of the terminal
-until \fBrefresh\fR is called. The position specified is relative to the upper
-left-hand corner of the window, which is (0,0).
-.SH RETURN VALUE
-These routines return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH NOTES
-Note that \fBmove\fR may be a macro.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that if (y,x) is within a multi-column character, the cursor
-is moved to the first column of that character; however, this implementation
-does not yet support the extended-level XSI multi-byte characters.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_outopts.3x b/ncurses-5.2/man/curs_outopts.3x
deleted file mode 100644
index 8ea4c75..0000000
--- a/ncurses-5.2/man/curs_outopts.3x
+++ /dev/null
@@ -1,169 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_outopts 3X ""
-.SH NAME
-\fBclearok\fR, \fBidlok\fR, \fBidcok immedok\fR,
-\fBleaveok\fR, \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBscrollok\fR,
-\fBnl\fR, \fBnonl\fR - \fBcurses\fR output options
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint clearok(WINDOW *win, bool bf);\fR
-.br
-\fBint idlok(WINDOW *win, bool bf);\fR
-.br
-\fBvoid idcok(WINDOW *win, bool bf);\fR
-.br
-\fBvoid immedok(WINDOW *win, bool bf);\fR
-.br
-\fBint leaveok(WINDOW *win, bool bf);\fR
-.br
-\fBint setscrreg(int top, int bot);\fR
-.br
-\fBint wsetscrreg(WINDOW *win, int top, int bot);\fR
-.br
-\fBint scrollok(WINDOW *win, bool bf);\fR
-.br
-\fBint nl(void);\fR
-.br
-\fBint nonl(void);\fR
-.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.
-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
-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
-disabled by default because insert/delete line tends to be visually annoying
-when used in applications where it isn't really needed. If insert/delete line
-cannot be used, \fBcurses\fR redraws the changed portions of all lines.
-
-If \fBidcok\fR is called with \fBFALSE\fR as second argument, \fBcurses\fR
-no longer considers using the hardware insert/delete character feature of
-terminals so equipped. Use of character insert/delete is enabled by default.
-Calling \fBidcok\fR with \fBTRUE\fR as second argument re-enables use
-of character insertion and deletion.
-
-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
-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.
-
-The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
-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
-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
-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 \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
-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
-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
-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
-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
-return \fBOK\fR.
-.SH PORTABILITY
-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
-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
-\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
-refresh. XSI Curses does not require this, and \fBncurses\fR avoids doing
-it in order to perform better vertical-motion optimization at \fBwrefresh\fR
-time.
-
-The XSI Curses standard does not mention that the cursor should be
-made invisible as a side-effect of \fBleaveok\fR.
-SVr4 curses documentation does this, but the code does not.
-Use \fBcurs_set\fR to make the cursor invisible.
-.SH NOTES
-Note that \fBclearok\fR, \fBleaveok\fR, \fBscrollok\fR, \fBidcok\fR, \fBnl\fR,
-\fBnonl\fR and \fBsetscrreg\fR may be macros.
-
-The \fBimmedok\fR routine is useful for windows that are used as terminal
-emulators.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_addch\fR(3X), \fBcurs_clear\fR(3X),
-\fBcurs_initscr\fR(3X), \fBcurs_scroll\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_overlay.3x b/ncurses-5.2/man/curs_overlay.3x
deleted file mode 100644
index 8517b8b..0000000
--- a/ncurses-5.2/man/curs_overlay.3x
+++ /dev/null
@@ -1,76 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_overlay 3X ""
-.SH NAME
-\fBoverlay\fR,
-\fBoverwrite\fR,
-\fBcopywin\fR - overlay and manipulate overlapped \fBcurses\fR windows
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint overlay(const WINDOW *srcwin, WINDOW *dstwin);\fR
-.br
-\fBint overwrite(const WINDOW *srcwin, WINDOW *dstwin);\fR
-.br
-\fBint copywin(WINDOW *srcwin, WINDOW *dstwin, int sminrow,\fR
- \fBint smincol, int dminrow, int dmincol, int dmaxrow,\fR
- \fBint dmaxcol, int overlay);\fR
-.SH DESCRIPTION
-The \fBoverlay\fR and \fBoverwrite\fR routines overlay \fIsrcwin\fR on
-top of \fIdstwin\fR. \fIscrwin\fR and \fIdstwin\fR are not required
-to be the same size; only text where the two windows overlap is
-copied. The difference is that \fBoverlay\fR is non-destructive
-(blanks are not copied) whereas \fBoverwrite\fR is destructive.
-
-The \fBcopywin\fR routine provides a finer granularity of control over the
-\fBoverlay\fR and \fBoverwrite\fR routines. Like in the \fBprefresh\fR
-routine, a rectangle is specified in the destination window, (\fIdminrow\fR,
-\fIdmincol\fR) and (\fIdmaxrow\fR, \fIdmaxcol\fR), and the upper-left-corner
-coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR). If the
-argument \fIoverlay\fR is \fBtrue\fR, then copying is non-destructive, as in
-\fBoverlay\fR.
-.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
-completion.
-.SH NOTES
-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
-with multi-byte renditions (not yet supported in this implementation).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_pad.3x b/ncurses-5.2/man/curs_pad.3x
deleted file mode 100644
index 74c7f52..0000000
--- a/ncurses-5.2/man/curs_pad.3x
+++ /dev/null
@@ -1,110 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_pad 3X ""
-.SH NAME
-\fBnewpad\fR, \fBsubpad\fR, \fBprefresh\fR,
-\fBpnoutrefresh\fR, \fBpechochar\fR - create and display \fBcurses\fR pads
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBWINDOW *newpad(int nlines, int ncols);\fR
-.br
-\fBWINDOW *subpad(WINDOW *orig, int nlines, int ncols,\fR
- \fBint begin_y, int begin_x);\fR
-.br
-\fBint prefresh(WINDOW *pad, int pminrow, int pmincol,\fR
- \fBint sminrow, int smincol, int smaxrow, int smaxcol);\fR
-.br
-\fBint pnoutrefresh(WINDOW *pad, int pminrow, int pmincol,\fR
- \fBint sminrow, int smincol, int smaxrow, int smaxcol);\fR
-.br
-\fBint pechochar(WINDOW *pad, chtype ch);\fR
-.SH DESCRIPTION
-The \fBnewpad\fR routine creates and returns a pointer to a new pad data
-structure with the given number of lines, \fInlines\fR, and columns,
-\fIncols\fR. A pad is like a window, except that it is not restricted by the
-screen size, and is not necessarily associated with a particular part of the
-screen. Pads can be used when a large window is needed, and only a part of the
-window will be on the screen at one time. Automatic refreshes of pads
-(\fIe\fR.\fIg\fR., from scrolling or echoing of input) do not occur. It is not
-legal to call \fBwrefresh\fR with a \fIpad\fR as an argument; the routines
-\fBprefresh\fR or \fBpnoutrefresh\fR should be called instead. Note that these
-routines require additional parameters to specify the part of the pad to be
-displayed and the location on the screen to be used for the display.
-
-The \fBsubpad\fR routine creates and returns a pointer to a subwindow within a
-pad with the given number of lines, \fInlines\fR, and columns, \fIncols\fR.
-Unlike \fBsubwin\fR, which uses screen coordinates, the window is at position
-(\fIbegin\fR_\fIx\fR\fB,\fR \fIbegin\fR_\fIy\fR) on the pad. The window is
-made in the middle of the window \fIorig\fR, so that changes made to one window
-affect both windows. During the use of this routine, it will often be
-necessary to call \fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before
-calling \fBprefresh\fR.
-
-The \fBprefresh\fR and \fBpnoutrefresh\fR routines are analogous to
-\fBwrefresh\fR and \fBwnoutrefresh\fR 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. \fIpminrow\fR and \fIpmincol\fR specify the upper
-left-hand corner of the rectangle to be displayed in the pad. \fIsminrow\fR,
-\fIsmincol\fR, \fIsmaxrow\fR, and \fIsmaxcol\fR specify the edges of the
-rectangle to be displayed on the screen. The lower right-hand corner of the
-rectangle to be displayed in the pad is calculated 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
-\fIpminrow\fR, \fIpmincol\fR, \fIsminrow\fR, or \fIsmincol\fR are treated as if
-they were zero.
-
-The \fBpechochar\fR routine is functionally equivalent to a call to \fBaddch\fR
-followed by a call to \fBrefresh\fR, a call to \fBwaddch\fR followed by a call
-to \fBwrefresh\fR, or a call to \fBwaddch\fR followed by a call to
-\fBprefresh.\fR The knowledge that only a single character is being output is
-taken into consideration and, for non-control characters, a considerable
-performance gain might be seen by using these routines instead of their
-equivalents. In the case of \fBpechochar\fR, the last location of the pad on
-the screen is reused for the arguments to \fBprefresh\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
-completion.
-
-Routines that return pointers return \fBNULL\fR on error, and set \fBerrno\fR
-to \fBENOMEM\fR.
-.SH NOTES
-Note that \fBpechochar\fR may be a macro.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X), \fBcurs_touch\fR(3X), \fBcurs_addch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_print.3x b/ncurses-5.2/man/curs_print.3x
deleted file mode 100644
index 06a7fc9..0000000
--- a/ncurses-5.2/man/curs_print.3x
+++ /dev/null
@@ -1,74 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_print 3X ""
-.SH NAME
-\fBmcprint\fR - ship binary data to printer
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint mcprint(char *data, int len);\fR
-.SH DESCRIPTION
-This function uses the \fBmc5p\fR or \fBmc4\fR and \fBmc5\fR capabilities,
-if they are present, to ship given data to a printer attached to the terminal.
-
-Note that the \fBmcprint\fR 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
-(typically about half of its nominal cps rating). Dot-matrix printers and
-6-page-per-minute lasers can typically handle 80cps, so a good conservative
-rule of thumb is to sleep for a second after shipping each 80-character line.
-
-.SH RETURN VALUE
-The \fBmcprint\fR function returns \fBERR\fR if the write operation aborted
-for some reason. In this case, errno will contain either an error associated
-with \fBwrite(2)\fR or one of the following:
-.TP 5
-ENODEV
-Capabilities for printer redirection don't exist.
-.TP 5
-ENOMEM
-Couldn't allocate sufficient memory to buffer the printer write.
-
-When \fBmcprint\fR succeeds, it returns the number of characters actually
-sent to the printer.
-.SH PORTABILITY
-The \fBmcprint\fR call was designed for \fBncurses\fR(3X), and is not found
-in SVr4 curses, 4.4BSD curses, or any other previous version of curses.
-.SH BUGS
-Padding in the \fBmc5p\fR, \fBmc4\fR and \fBmc5\fR capabilities will not be
-interpreted.
-.SH SEE ALSO
-\fBcurses\fR(3X)\fR
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_printw.3x b/ncurses-5.2/man/curs_printw.3x
deleted file mode 100644
index adcb725..0000000
--- a/ncurses-5.2/man/curs_printw.3x
+++ /dev/null
@@ -1,80 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_printw 3X ""
-.SH NAME
-\fBprintw\fR,
-\fBwprintw\fR,
-\fBmvprintw\fR,
-\fBmvwprintw\fR,
-\fBvwprintw\fR, \fBvw_printw\fR - print formatted output in \fBcurses\fR windows
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint printw(char *fmt\fR [\fB, arg\fR] \fB...);\fR
-.br
-\fBint wprintw(WINDOW *win, char *fmt\fR [\fB, arg\fR] \fB...);\fR
-.br
-\fBint mvprintw(int y, int x, char *fmt\fR [\fB, arg\fR] \fB...);\fR
-.br
-\fBint mvwprintw(WINDOW *win, int y, int x,\fR
- \fBchar *fmt\fR [\fB, arg]\fR ...);
-
-\fB#include <varargs.h>\fR
-.br
-\fBint vwprintw(WINDOW *win, char *fmt, varglist);\fR
-.br
-\fBint vw_printw(WINDOW *win, char *fmt, varglist);\fR
-.br
-.SH DESCRIPTION
-The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
-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.
-
-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.
-.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
-completion.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions. The function
-\fBvwprintw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
-\fBvw_printw\fR using the \fB<stdarg.h>\fR interface.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBprintf\fR(3S), \fBvprintf(3S)\fR
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_refresh.3x b/ncurses-5.2/man/curs_refresh.3x
deleted file mode 100644
index 8734d76..0000000
--- a/ncurses-5.2/man/curs_refresh.3x
+++ /dev/null
@@ -1,115 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_refresh 3X ""
-.SH NAME
-\fBrefresh\fR,
-\fBwrefresh\fR,
-\fBwnoutrefresh\fR,
-\fBdoupdate\fR,
-\fBredrawwin\fR,
-\fBwredrawln\fR - refresh \fBcurses\fR windows and lines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint refresh(void);\fR
-.br
-\fBint wrefresh(WINDOW *win);\fR
-.br
-\fBint wnoutrefresh(WINDOW *win);\fR
-.br
-\fBint doupdate(void);\fR
-.br
-\fBint redrawwin(WINDOW *win);\fR
-.br
-\fBint wredrawln(WINDOW *win, int beg_line, int num_lines);\fR
-.br
-.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
-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
-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
-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.
-
-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
-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
-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
-\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
-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
-exploiting this behavior.)
-
-The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines
-are corrupted and should be thrown away before anything is written over them.
-It touches the indicated lines (marking them changed).
-The routine \fBredrawwin\fR() touches the entire window.
-.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
-completion.
-.SH NOTES
-Note that \fBrefresh\fR and \fBredrawwin\fR may be macros.
-.SH PORTABILITY
-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
-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 \fBtouchwin()\fR before the
-\fBwnoutrefresh()\fR call to guarantee an entire-contents copy anywhere.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_scanw.3x b/ncurses-5.2/man/curs_scanw.3x
deleted file mode 100644
index f67558e..0000000
--- a/ncurses-5.2/man/curs_scanw.3x
+++ /dev/null
@@ -1,81 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_scanw 3X ""
-.SH NAME
-\fBscanw\fR,
-\fBwscanw\fR,
-\fBmvscanw\fR,
-\fBmvwscanw\fR,
-\fBvwscanw\fR, \fBvw_scanw\fR - convert formatted input from a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint scanw(char *fmt\fR [\fB, arg\fR] \fB...);\fR
-.br
-\fBint wscanw(WINDOW *win, char *fmt\fR [\fB, arg\fR] \fB...);\fR
-.br
-\fBint mvscanw(int y, int x, char *fmt\fR [\fB, arg\fR] \fB...);\fR
-.br
-\fBint mvwscanw(WINDOW *win, int y, int x,\fR
- \fBchar *fmt\fR [\fB, arg]\fR \fB...);\fR
-.br
-\fBint vw_scanw(WINDOW *win, char *fmt, va_list varglist);\fR
-.br
-\fBint vwscanw(WINDOW *win, char *fmt, va_list varglist);\fR
-.SH DESCRIPTION
-The \fBscanw\fR, \fBwscanw\fR and \fBmvscanw\fR routines are analogous to
-\fBscanf\fR [see \fBscanf\fR(3S)]. The effect of these routines is as though
-\fBwgetstr\fR were called on the window, and the resulting line used as input
-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.
-.SH RETURN VALUE
-\fBvwscanw\fR returns \fBERR\fR on failure and an integer equal to the
-number of fields scanned on success.
-
-Applications may use the return value from the \fBscanw\fR, \fBwscanw\fR,
-\fBmvscanw\fR and \fBmvwscanw\fR routines to determine the number of fields
-which were mapped in the call.
-.SH PORTABILITY
-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.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3S)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_scr_dump.3x b/ncurses-5.2/man/curs_scr_dump.3x
deleted file mode 100644
index 2775e7e..0000000
--- a/ncurses-5.2/man/curs_scr_dump.3x
+++ /dev/null
@@ -1,94 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_scr_dump 3X ""
-.SH NAME
-\fBscr_dump\fR,
-\fBscr_restore\fR,
-\fBscr_init\fR,
-\fBscr_set\fR - read (write) a \fBcurses\fR screen from (to) a file
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint scr_dump(const char *filename);\fR
-.br
-\fBint scr_restore(const char *filename);\fR
-.br
-\fBint scr_init(const char *filename);\fR
-.br
-\fBint scr_set(const char *filename);\fR
-.br
-.SH DESCRIPTION
-The \fBscr_dump\fR routine dumps the current contents of the virtual screen
-to the file \fIfilename\fR.
-
-The \fBscr_restore\fR routine sets the virtual screen to the contents
-of \fIfilename\fR, which must have been written using \fBscr_dump\fR. The next
-call to \fBdoupdate\fR restores the screen to the way it looked in the dump
-file.
-
-The \fBscr_init\fR routine reads in the contents of \fIfilename\fR and uses
-them to initialize the \fBcurses\fR data structures about what the terminal
-currently has on its screen. If the data is determined to be valid,
-\fBcurses\fR bases its next update of the screen on this information rather
-than clearing the screen and starting from scratch. \fBscr_init\fR is used
-after \fBinitscr\fR or a \fBsystem\fR [see \fBsystem\fR(BA_LIB)] call to share
-the screen with another process which has done a \fBscr_dump\fR after its
-\fBendwin\fR call. The data is declared invalid if the terminfo capabilities
-\fBrmcup\fR and \fBnrrmc\fR exist; also if the terminal has been written to
-since the preceding \fBscr_dump\fR call.
-
-The \fBscr_set\fR routine is a combination of \fBscr_restore\fR and
-\fBscr_init\fR. It tells the program that the information in \fIfilename\fR 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.
-
-To read (write) a window from (to) a file, use the \fBgetwin\fR and
-\fBputwin\fR routines [see \fBcurs_util\fR(3X)].
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR
-upon success.
-.SH NOTES
-Note that \fBscr_init\fR, \fBscr_set\fR, and \fBscr_restore\fR may be macros.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4, describes these functions (adding the const
-qualifiers).
-
-The SVr4 docs merely say under \fBscr_init\fR that the dump data is also
-considered invalid "if the time-stamp of the tty is old" but don't define
-"old".
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X),
-\fBcurs_util\fR(3X), \fBsystem\fR(3S)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_scroll.3x b/ncurses-5.2/man/curs_scroll.3x
deleted file mode 100644
index dda2f52..0000000
--- a/ncurses-5.2/man/curs_scroll.3x
+++ /dev/null
@@ -1,79 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_scroll 3X ""
-.SH NAME
-\fBscroll\fR, \fBscrl\fR, \fBwscrl\fR - scroll a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint scroll(WINDOW *win);\fR
-.br
-\fBint scrl(int n);\fR
-.br
-\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
-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.
-
-For these functions to work, scrolling must be enabled via \fBscrollok\fR.
-.SH RETURN VALUE
-These routines return \fBERR\fR upon failure, and \fBOK\fR (SVr4 only specifies
-"an integer value other than \fBERR\fR") upon successful completion.
-.SH NOTES
-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
-"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.
-
-Neither the SVr4 nor the XSI documentation specify whether the current
-attribute or
-current color-pair of blanks generated by the scroll function is zeroed.
-Under this implementation it is.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_slk.3x b/ncurses-5.2/man/curs_slk.3x
deleted file mode 100644
index f3565ca..0000000
--- a/ncurses-5.2/man/curs_slk.3x
+++ /dev/null
@@ -1,149 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_slk 3X ""
-.SH NAME
-\fBslk_init\fR, \fBslk_set\fR, \fBslk_refresh\fR,
-\fBslk_noutrefresh\fR, \fBslk_label\fR,
-\fBslk_clear\fR, \fBslk_restore\fR, \fBslk_touch\fR,
-\fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR,
-\fBslk_attr_on\fR, \fBslk_attr_set\fR, \fBslk_attr_off\fR,
-\fBslk_attr\fR \fBslk_color\fR - \fBcurses\fR soft label routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint slk_init(int fmt);\fR
-.br
-\fBint slk_set(int labnum, const char *label, int fmt);\fR
-.br
-\fBint slk_refresh(void);\fR
-.br
-\fBint slk_noutrefresh(void);\fR
-.br
-\fBchar *slk_label(int labnum);\fR
-.br
-\fBint slk_clear(void);\fR
-.br
-\fBint slk_restore(void);\fR
-.br
-\fBint slk_touch(void);\fR
-.br
-\fBint slk_attron(const chtype attrs);\fR
-.br
-\fBint slk_attroff(const chtype attrs);\fR
-.br
-\fBint slk_attrset(const chtype attrs);\fR
-.br
-\fBint slk_attr_on(attr_t attrs, void* opts);\fR
-.br
-\fBint slk_attr_off(const attr_t attrs, void * opts);\fR
-.br
-\fBint slk_attr_set(const attr_t attrs,\fR
-.br
- \fBshort color_pair_number, void* opts);\fR
-.br
-\fBattr_t slk_attr(void);\fR
-.br
-\fBint slk_color(short color_pair_number);\fR
-.br
-.SH DESCRIPTION
-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,
-\fBcurses\fR takes over the bottom line of \fBstdscr\fR, reducing the size of
-\fBstdscr\fR and the variable \fBLINES\fR. \fBcurses\fR standardizes on eight
-labels of up to eight characters each. In addition to this, the ncurses
-implementation supports a mode where it simulates 12 labels of up to five
-characters each. This is most common for todays PC like enduser devices.
-Please note that ncurses simulates this mode by taking over up to two lines at
-the bottom of the screen, it doesn't try to use any hardware support for this
-mode.
-
-The \fBslk_init\fR routine must be called before \fBinitscr\fR or \fBnewterm\fR
-is called. If \fBinitscr\fR eventually uses a line from \fBstdscr\fR to
-emulate the soft labels, then \fIfmt\fR determines how the labels are arranged
-on the screen. Setting \fIfmt\fR to \fB0\fR indicates a 3-2-3 arrangement of
-the labels, \fB1\fR indicates a 4-4 arrangement and \fB2\fR indicates the
-PC like 4-4-4 mode. If \fBfmt\fR is set to \fB3\fR, 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.
-
-The \fBslk_set\fR routine requires \fIlabnum\fR to be a label number,
-from \fB1\fR to \fB8\fR (resp. \fB12\fR); \fIlabel\fR must be the string
-to be put on the label, up to eight (resp. five) characters in length.
-A null string or a null pointer sets up a blank label. \fIfmt\fR is either
-\fB0\fR, \fB1\fR, or \fB2\fR, indicating whether the label is to be
-left-justified, centered, or right-justified, respectively, within the
-label.
-
-The \fBslk_refresh\fR and \fBslk_noutrefresh\fR routines correspond to
-the \fBwrefresh\fR and \fBwnoutrefresh\fR routines.
-
-The \fBslk_label\fR routine returns the current label for label number
-\fIlabnum\fR, with leading and trailing blanks stripped.
-
-The \fBslk_clear\fR routine clears the soft labels from the screen.
-
-The \fBslk_restore\fR routine, restores the soft labels to the screen
-after a \fBslk_clear\fR has been performed.
-
-The \fBslk_touch\fR routine forces all the soft labels to be output
-the next time a \fBslk_noutrefresh\fR is performed.
-
-The \fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR and \fBslk_attr\fR
-routines correspond to \fBattron\fR, \fBattrset\fR, \fBattroff\fR and \fBattr_get\fR.
-They have an effect only if soft labels are simulated on the bottom line of
-the screen. The default highlight for soft keys is A_STANDOUT (as in
-System V curses, which does not document this fact).
-
-The \fBslk_color\fR routine corresponds to \fBcolor_set\fR. It has an effect only
-if soft labels are simulated on the bottom line of the screen.
-
-.SH RETURN VALUE
-These routines return \fBERR\fR upon failure and OK (SVr4 specifies only "an
-integer value other than \fBERR\fR") upon successful completion. \fBslk_attr\fR
-returns the attribute used for the soft keys.
-
-\fBslk_label\fR returns \fBNULL\fR on error.
-.SH NOTES
-Most applications would use \fBslk_noutrefresh\fR because a
-\fBwrefresh\fR is likely to follow soon.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4, describes these functions. It changes the
-argument type of the attribute-manipulation functions \fBslk_attron\fR,
-\fBslk_attroff\fR, \fBslk_attrset\fR to be \fBattr_t\fR, and adds \fBconst\fR
-qualifiers. The format codes \fB2\fR and \fB3\fR for \fBslk_init()\fR and the
-function \fBslk_attr\fR are specific to ncurses.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_attr\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_termattrs.3x b/ncurses-5.2/man/curs_termattrs.3x
deleted file mode 100644
index 3ab3ef1..0000000
--- a/ncurses-5.2/man/curs_termattrs.3x
+++ /dev/null
@@ -1,107 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_termattrs 3X ""
-.SH NAME
-\fBbaudrate\fR, \fBerasechar\fR, \fBhas_ic\fR,
-\fBhas_il\fR, \fBkillchar\fR, \fBlongname\fR, \fBtermattrs\fR,
-\fBtermname\fR - \fBcurses\fR environment query routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint baudrate(void);\fR
-.br
-\fBchar erasechar(void);\fR
-.br
-\fBbool has_ic(void);\fR
-.br
-\fBbool has_il(void);\fR
-.br
-\fBchar killchar(void);\fR
-.br
-\fBchar *longname(void);\fR
-.br
-\fBattr_t termattrs(void);\fR
-.br
-\fBchar *termname(void);\fR
-.br
-.SH DESCRIPTION
-The \fBbaudrate\fR routine returns the output speed of the terminal. The
-number returned is in bits per second, for example \fB9600\fR, and is an
-integer.
-
-The \fBerasechar\fR routine returns the user's current erase character.
-
-The \fBhas_ic\fR routine is true if the terminal has insert- and delete-
-character capabilities.
-
-The \fBhas_il\fR 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 \fBscrollok\fR.
-
-The \fBkillchar\fR routine returns the user's current line kill character.
-
-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
-after the call to \fBinitscr\fR or \fBnewterm\fR. The area is
-overwritten by each call to \fBnewterm\fR and is not restored by
-\fBset_term\fR, so the value should be saved between calls to
-\fBnewterm\fR if \fBlongname\fR is going to be used with multiple
-terminals.
-
-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
-needs complete control over the appearance of the screen.
-
-The \fBtermname\fR routine returns the value of the environmental
-variable \fBTERM\fR (truncated to 14 characters).
-.SH RETURN VALUE
-\fBlongname\fR and \fBtermname\fR return \fBNULL\fR on error.
-
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH NOTES
-Note that \fBtermattrs\fR may be a macro.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions. It changes the
-return type of \fBtermattrs\fR to the new type \fBattr_t\fR.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_outopts\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_termcap.3x b/ncurses-5.2/man/curs_termcap.3x
deleted file mode 100644
index e35dbea..0000000
--- a/ncurses-5.2/man/curs_termcap.3x
+++ /dev/null
@@ -1,118 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_termcap 3X ""
-.ds n 5
-.SH NAME
-\fBtgetent\fR,
-\fBtgetflag\fR,
-\fBtgetnum\fR,
-\fBtgetstr\fR,
-\fBtgoto\fR,
-\fBtputs\fR - direct \fBcurses\fR interface to the terminfo capability database
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fB#include <term.h>\fR
-.br
-\fBint tgetent(const char *bp, char *name);\fR
-.br
-\fBint tgetflag(const char *id);\fR
-.br
-\fBint tgetnum(const char *id);\fR
-.br
-\fBchar *tgetstr(const char *id, char **area);\fR
-.br
-\fBchar *tgoto(const char *cap, int col, int row);\fR
-.br
-\fBint tputs(const char *str, int affcnt, int (*putc)(int));\fR
-.br
-.SH DESCRIPTION
-These routines are included as a conversion aid for programs that use
-the \fItermcap\fR library. Their parameters are the same and the
-routines are emulated using the \fIterminfo\fR database. Thus, they
-can only be used to query the capabilities of entries for which a
-terminfo entry has been compiled.
-
-The \fBtgetent\fR routine loads the entry for \fIname\fR.
-It returns 1 on success, 0 if there is no such entry, and -1 if the
-terminfo database could not be found.
-The emulation ignores the buffer pointer \fIbp\fR.
-
-The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR,
-or zero if it is not available.
-
-The \fBtgetnum\fR routine gets the numeric entry for \fIid\fR,
-or -1 if it is not available.
-
-The \fBtgetstr\fR routine returns the string entry for \fIid\fR,
-or zero if it is not available.
-Use \fBtputs\fR to output the returned string.
-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.
-
-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.
-
-.SH RETURN VALUE
-Except where explicitly noted,
-routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
-
-Routines that return pointers return \fBNULL\fR on error.
-.SH BUGS
-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
-terminfo-style.
-
-Because terminfo conventions for representing padding in string capabilities
-differ from termcap's, \fBtputs("50");\fR will put out a literal "50" rather
-than busy-waiting for 50 milliseconds. Cope with it.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions. However, they
-are marked TO BE WITHDRAWN and may be removed in future versions.
-
-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.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3S).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_terminfo.3x b/ncurses-5.2/man/curs_terminfo.3x
deleted file mode 100644
index e3e9c2b..0000000
--- a/ncurses-5.2/man/curs_terminfo.3x
+++ /dev/null
@@ -1,272 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_terminfo 3X ""
-.ds n 5
-.SH NAME
-\fBsetupterm\fR,
-\fBsetterm\fR,
-\fBset_curterm\fR,
-\fBdel_curterm\fR,
-\fBrestartterm\fR,
-\fBtparm\fR,
-\fBtputs\fR,
-\fBputp\fR,
-\fBvidputs\fR,
-\fBvidattr\fR,
-\fBmvcur\fR,
-\fBtigetflag\fR,
-\fBtigetnum\fR,
-\fBtigetstr\fR - \fBcurses\fR interfaces to terminfo database
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fB#include <term.h>\fR
-
-\fBint setupterm(const char *term, int fildes, int *errret);\fR
-.br
-\fBint setterm(const char *term);\fR
-.br
-\fBTERMINAL *set_curterm(TERMINAL *nterm);\fR
-.br
-\fBint del_curterm(TERMINAL *oterm);\fR
-.br
-\fBint restartterm(const char *term, int fildes, int *errret);\fR
-.br
-\fBchar *tparm(const char *str, ...);\fR
-.br
-\fBint tputs(const char *str, int affcnt, int (*putc)(int));\fR
-.br
-\fBint putp(const char *str);\fR
-.br
-\fBint vidputs(chtype attrs, int (*putc)(char));\fR
-.br
-\fBint vidattr(chtype attrs);\fR
-.br
-\fBint mvcur(int oldrow, int oldcol, int newrow, int newcol);\fR
-.br
-\fBint tigetflag(const char *capname);\fR
-.br
-\fBint tigetnum(const char *capname);\fR
-.br
-\fBchar *tigetstr(const char *capname);\fR
-.br
-.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
-capabilities, such as programming function keys. For all other
-functionality, \fBcurses\fR routines are more suitable and their use is
-recommended.
-
-Initially, \fBsetupterm\fR should be called. Note that
-\fBsetupterm\fR is automatically called by \fBinitscr\fR and
-\fBnewterm\fR. This defines the set of terminal-dependent variables
-[listed in \fBterminfo\fR(\*n)]. The \fBterminfo\fR variables
-\fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as
-follows: If \fBuse_env(FALSE)\fR has been called, values for
-\fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used.
-Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR
-exist, their values are used. If these environment variables do not
-exist and the program is running in a window, the current window size
-is used. Otherwise, if the environment variables do not exist, the
-values for \fBlines\fR and \fBcolumns\fR specified in the
-\fBterminfo\fR database are used.
-
-The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
-order) to get the definitions for these strings, numbers, and flags.
-Parameterized strings should be passed through \fBtparm\fR to instantiate them.
-All \fBterminfo\fR strings [including the output of \fBtparm\fR] should be printed
-with \fBtputs\fR or \fBputp\fR. Call the \fBreset_shell_mode\fR to restore the
-tty modes before exiting [see \fBcurs_kernel\fR(3X)]. Programs which use
-cursor addressing should output \fBenter_ca_mode\fR upon startup and should
-output \fBexit_ca_mode\fR before exiting. Programs desiring shell escapes
-should call
-
-\fBreset_shell_mode\fR and output \fBexit_ca_mode\fR before the shell
-is called and should output \fBenter_ca_mode\fR and call
-\fBreset_prog_mode\fR after returning from the shell.
-
-The \fBsetupterm\fR routine reads in the \fBterminfo\fR database,
-initializing the \fBterminfo\fR structures, but does not set up the
-output virtualization structures used by \fBcurses\fR. The terminal
-type is the character string \fIterm\fR; if \fIterm\fR is null, the
-environment variable \fBTERM\fR is used.
-All output is to file descriptor \fBfildes\fR which is initialized for output.
-If \fIerrret\fR is not null,
-then \fBsetupterm\fR returns \fBOK\fR or
-\fBERR\fR and stores a status value in the integer pointed to by
-\fIerrret\fR.
-A return value of \fBOK\fR combined with status of \fB1\fR in \fIerrret\fR
-is normal.
-If \fBERR\fR is returned, examine \fIerrret\fR:
-.RS
-.TP 5
-.B 1
-means that the terminal is hardcopy, cannot be used for curses applications.
-.TP 5
-.B 0
-means that the terminal could not be found,
-or that it is a generic type,
-having too little information for curses applications to run.
-.TP 5
-.B -1
-means that the \fBterminfo\fR database could not be found.
-.RE
-.PP
-If \fIerrret\fR is
-null, \fBsetupterm\fR prints an error message upon finding an error
-and exits. Thus, the simplest call is:
-
- \fBsetupterm((char *)0, 1, (int *)0);\fR,
-
-which uses all the defaults and sends the output to \fBstdout\fR.
-
-The \fBsetterm\fR routine is being replaced by \fBsetupterm\fR. The call:
-
- \fBsetupterm(\fR\fIterm\fR\fB, 1, (int *)0)\fR
-
-provides the same functionality as \fBsetterm(\fR\fIterm\fR\fB)\fR.
-The \fBsetterm\fR routine is included here for BSD compatibility, and
-is not recommended for new programs.
-
-The \fBset_curterm\fR routine sets the variable \fBcur_term\fR to
-\fInterm\fR, and makes all of the \fBterminfo\fR boolean, numeric, and
-string variables use the values from \fInterm\fR. It returns the old value
-of \fBcur_term\fR.
-
-The \fBdel_curterm\fR routine frees the space pointed to by
-\fIoterm\fR and makes it available for further use. If \fIoterm\fR is
-the same as \fBcur_term\fR, references to any of the \fBterminfo\fR
-boolean, numeric, and string variables thereafter may refer to invalid
-memory locations until another \fBsetupterm\fR has been called.
-
-The \fBrestartterm\fR routine is similar to \fBsetupterm\fR and \fBinitscr\fR,
-except that it is called after restoring memory to a previous state (for
-example, when reloading a game saved as a core image dump). It assumes that
-the windows and the input and output options are the same as when memory was
-saved, but the terminal type and baud rate may be different. Accordingly,
-it saves various tty state bits, does a setupterm, and then restores the bits.
-
-The \fBtparm\fR routine instantiates the string \fIstr\fR with
-parameters \fIpi\fR. A pointer is returned to the result of \fIstr\fR
-with the parameters applied.
-
-The \fBtputs\fR routine applies padding information to the string
-\fIstr\fR and outputs it. The \fIstr\fR must be a terminfo string
-variable or the return value from \fBtparm\fR, \fBtgetstr\fR, or
-\fBtgoto\fR. \fIaffcnt\fR is the number of lines affected, or 1 if
-not applicable. \fIputc\fR is a \fBputchar\fR-like routine to which
-the characters are passed, one at a time.
-
-The \fBputp\fR routine calls \fBtputs(\fR\fIstr\fR\fB, 1, putchar)\fR.
-Note that the output of \fBputp\fR always goes to \fBstdout\fR, not to
-the \fIfildes\fR specified in \fBsetupterm\fR.
-
-The \fBvidputs\fR routine displays the string on the terminal in the
-video attribute mode \fIattrs\fR, which is any combination of the
-attributes listed in \fBcurses\fR(3X). The characters are passed to
-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 \fBmvcur\fR routine provides low-level cursor motion. It takes
-effect immediately (rather than at the next refresh).
-
-The \fBtigetflag\fR, \fBtigetnum\fR and \fBtigetstr\fR routines return
-the value of the capability corresponding to the \fBterminfo\fR
-\fIcapname\fR passed to them, such as \fBxenl\fR.
-
-The \fBtigetflag\fR routine returns the value \fB-1\fR if
-\fIcapname\fR is not a boolean capability,
-or \fB0\fR if it is canceled or absent from the terminal description.
-
-The \fBtigetnum\fR routine returns the value \fB-2\fR if
-\fIcapname\fR is not a numeric capability,
-or \fB-1\fR if it is canceled or absent from the terminal description.
-
-The \fBtigetstr\fR routine returns the value \fB(char *)-1\fR
-if \fIcapname\fR is not a string capability,
-or \fB0\fR if it is canceled or absent from the terminal description.
-
-The \fIcapname\fR for each capability is given in the table column entitled
-\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n).
-
-\fBchar *boolnames\fR, \fB*boolcodes\fR, \fB*boolfnames\fR
-
-\fBchar *numnames\fR, \fB*numcodes\fR, \fB*numfnames\fR
-
-\fBchar *strnames\fR, \fB*strcodes\fR, \fB*strfnames\fR
-
-These null-terminated arrays contain the \fIcapnames\fR, the
-\fBtermcap\fR codes, and the full C names, for each of the
-\fBterminfo\fR variables.
-.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-
-Routines that return pointers always return \fBNULL\fR on error.
-.SH NOTES
-The \fBsetupterm\fR routine should be used in place of \fBsetterm\fR.
-It may be useful when you want to test for terminal capabilities without
-committing to the allocation of storage involved in \fBinitscr\fR.
-
-Note that \fBvidattr\fR and \fBvidputs\fR may be macros.
-.SH PORTABILITY
-The function \fBsetterm\fR 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.
-
-In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and
-returns \fBOK\fR or \fBERR\fR. We have chosen to implement the XSI Curses
-semantics.
-
-In System V Release 4, the third argument of \fBtputs\fR has the type
-\fBint (*putc)(char)\fR.
-
-The XSI Curses standard prototypes \fBtparm\fR with a fixed number of parameters,
-rather than a variable argument list.
-
-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
-the window before resuming normal curses calls.
-Both ncurses and System V Release 4 curses implement \fBmvcur\fR using
-the SCREEN data allocated in either \fBinitscr\fR or \fBnewterm\fR.
-So though it is documented as a terminfo function,
-\fBmvcur\fR is really a curses function which is not well specified.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_termcap\fR(3X),
-\fBputc\fR(3S), \fBterminfo\fR(\*n)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_touch.3x b/ncurses-5.2/man/curs_touch.3x
deleted file mode 100644
index d10f2aa..0000000
--- a/ncurses-5.2/man/curs_touch.3x
+++ /dev/null
@@ -1,96 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_touch 3X ""
-.SH NAME
-\fBtouchwin\fR,
-\fBtouchline\fR,
-\fBuntouchwin\fR,
-\fBwtouchln\fR,
-\fBis_linetouched\fR,
-\fBis_wintouched\fR - \fBcurses\fR refresh control routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint touchwin(WINDOW *win);\fR
-.br
-\fBint touchline(WINDOW *win, int start, int count);\fR
-.br
-\fBint untouchwin(WINDOW *win);\fR
-.br
-\fBint wtouchln(WINDOW *win, int y, int n, int changed);\fR
-.br
-\fBbool is_linetouched(WINDOW *win, int line);\fR
-.br
-\fBbool is_wintouched(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-The \fBtouchwin\fR and \fBtouchline\fR routines throw away all
-optimization 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 \fBtouchline\fR only pretends that \fIcount\fR lines have been
-changed, beginning with line \fIstart\fR.
-
-The \fBuntouchwin\fR routine marks all lines in the window as unchanged since
-the last call to \fBwrefresh\fR.
-
-The \fBwtouchln\fR routine makes \fIn\fR lines in the window, starting
-at line \fIy\fR, look as if they have (\fIchanged\fR\fB=1\fR) or have
-not (\fIchanged\fR\fB=0\fR) been changed since the last call to
-\fBwrefresh\fR.
-
-The \fBis_linetouched\fR and \fBis_wintouched\fR routines return
-\fBTRUE\fR if the specified line/window was modified since the last
-call to \fBwrefresh\fR; otherwise they return \fBFALSE\fR. In
-addition, \fBis_linetouched\fR returns \fBERR\fR if \fIline\fR is not
-valid for the given window.
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR upon successful completion, unless otherwise noted in the
-preceding routine descriptions.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-
-Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. This will not work under
-ncurses.
-.SH NOTES
-Note that all routines except \fBwtouchln\fR may be macros.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_trace.3x b/ncurses-5.2/man/curs_trace.3x
deleted file mode 100644
index cb049e1..0000000
--- a/ncurses-5.2/man/curs_trace.3x
+++ /dev/null
@@ -1,150 +0,0 @@
-.\"***************************************************************************
-.\" 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. *
-.\"***************************************************************************
-.\"
-.\" $Id$
-.TH curs_trace 3X ""
-.SH NAME
-\fB_tracef\fR,
-\fB_tracedump\fR,
-\fB_traceattr\fR,
-\fB_traceattr2\fR,
-\fB_nc_tracebits\fR,
-\fB_tracechar\fR,
-\fB_tracechtype\fR,
-\fB_tracechtype2\fR,
-\fB_tracemouse\fR,
-\fBtrace\fR - \fBcurses\fR debugging routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBvoid _tracef(const char *format, ...);\fR
-.br
-\fBvoid _tracedump(const char *label, WINDOW *win);\fR
-.br
-\fBchar *_traceattr(attr_t attr);\fR
-.br
-\fBchar *_traceattr2(int buffer, chtype ch);\fR
-.br
-\fBchar *_nc_tracebits(void);\fR
-.br
-\fBchar *_tracechar(const unsigned char ch);\fR
-.br
-\fBchar *_tracechtype(chtype ch);\fR
-.br
-\fBchar *_tracechtype2(int buffer, chtype ch);\fR
-.br
-\fBchar *_tracemouse(const MEVENT *event);\fR
-.br
-\fBvoid trace(const unsigned int param);\fR
-.SH DESCRIPTION
-The \fBtrace\fR routines are used for debugging the ncurses libraries,
-as well as applications which use the ncurses libraries.
-These functions are normally available only with the debugging library
-\fIlibncurses_g.a\fR, but may be compiled into any model (shared, static,
-profile) by defining the symbol \fBTRACE\fR.
-
-The principal parts of this interface are the \fBtrace\fR routine which
-selectively enables different tracing features, and the \fB_tracef\fR
-routine which writes formatted data to the \fItrace\fR file.
-
-Calling \fBtrace\fR with a nonzero parameter opens the file \fBtrace\fR
-in the current directory for output. The parameter is formed by OR'ing
-values from the list of \fBTRACE_\fP\fIxxx\fR definitions in \fB<curses.h>\fR.
-These include:
-.TP 5
-TRACE_DISABLE
-turn off tracing.
-.TP 5
-TRACE_TIMES
-trace user and system times of updates.
-.TP 5
-TRACE_TPUTS
-trace tputs calls.
-.TP 5
-TRACE_UPDATE
-trace update actions, old & new screens.
-.TP 5
-TRACE_MOVE
-trace cursor movement and scrolling.
-.TP 5
-TRACE_CHARPUT
-trace all character outputs.
-.TP 5
-TRACE_ORDINARY
-trace all update actions.
-The old and new screen contents are written to the trace file
-for each refresh.
-.TP 5
-TRACE_CALLS
-trace all curses calls.
-The parameters for each call are traced, as well as return values.
-.TP 5
-TRACE_VIRTPUT
-trace virtual character puts, i.e., calls to \fBaddch\fR.
-.TP 5
-TRACE_IEVENT
-trace low-level input processing, including timeouts.
-.TP 5
-TRACE_BITS
-trace state of TTY control bits.
-.TP 5
-TRACE_ICALLS
-trace internal/nested calls.
-.TP 5
-TRACE_CCALLS
-trace per-character calls.
-.TP 5
-TRACE_DATABASE
-trace read/write of terminfo/termcap data.
-.TP 5
-TRACE_ATTRS
-trace changes to video attributes and colors.
-.TP 5
-TRACE_MAXIMUM
-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.
-..
-.SH RETURN VALUE
-Routines which return a value are designed to be used as parameters
-to the \fB_tracef\fR routine.
-.SH PORTABILITY
-These functions are not part of the XSI interface.
-Some other curses implementations are known to
-have similar, undocumented features,
-but they are not compatible with ncurses.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_util.3x b/ncurses-5.2/man/curs_util.3x
deleted file mode 100644
index 11f7bf7..0000000
--- a/ncurses-5.2/man/curs_util.3x
+++ /dev/null
@@ -1,114 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBchar *unctrl(chtype c);\fR
-.br
-\fBchar *keyname(int c);\fR
-.br
-\fBvoid filter(void);\fR
-.br
-\fBvoid use_env(char bool);\fR
-.br
-\fBint putwin(WINDOW *win, FILE *filep);\fR
-.br
-\fBWINDOW *getwin(FILE *filep);\fR
-.br
-\fBint delay_output(int ms);\fR
-.br
-\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 \fBkeyname\fR routine returns a character string corresponding to
-the key \fIc\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
-is set to 1; the capabilities \fBclear\fR, \fBcup\fR, \fBcud\fR, \fBcud1\fR,
-\fBcuu1\fR, \fBcuu\fR, \fBvpa\fR are disabled; and the \fBhome\fR string is
-set to the value of \fBcr\fR.
-
-The \fBuse_env\fR routine, if used, is called before \fBinitscr\fR or
-\fBnewterm\fR are called. When called with \fBFALSE\fR as an
-argument, the values of \fBlines\fR and \fBcolumns\fR specified in the
-\fIterminfo\fR database will be used, even if environment variables
-\fBLINES\fR and \fBCOLUMNS\fR (used by default) are set, or if
-\fBcurses\fR is running in a window (in which case default behavior
-would be to use the window size if \fBLINES\fR and \fBCOLUMNS\fR are
-not set).
-
-The \fBputwin\fR routine writes all data associated with window \fIwin\fR into
-the file to which \fIfilep\fR points. This information can be later retrieved
-using the \fBgetwin\fR function.
-
-The \fBgetwin\fR routine reads window related data stored in the file by
-\fBputwin\fR. The routine then creates and initializes a new window using that
-data. It returns a pointer to the new window.
-
-The \fBdelay_output\fR routine inserts an \fIms\fR millisecond pause
-in output. This routine should not be used extensively because
-padding characters are used rather than a CPU pause.
-
-The \fBflushinp\fR routine throws away any typeahead that has been typed by the
-user and has not yet been read by the program.
-.SH RETURN VALUE
-Except for \fBflushinp\fR, routines that return an integer return \fBERR\fR
-upon failure and \fBOK\fR (SVr4 specifies only "an integer value other than
-\fBERR\fR") upon successful completion.
-
-\fBflushinp\fR always returns \fBOK\fR.
-
-Routines that return pointers return \fBNULL\fR on error.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-
-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).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/curs_window.3x b/ncurses-5.2/man/curs_window.3x
deleted file mode 100644
index 9935763..0000000
--- a/ncurses-5.2/man/curs_window.3x
+++ /dev/null
@@ -1,159 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_window 3X ""
-.SH NAME
-\fBnewwin\fR,
-\fBdelwin\fR,
-\fBmvwin\fR,
-\fBsubwin\fR,
-\fBderwin\fR,
-\fBmvderwin\fR,
-\fBdupwin\fR,
-\fBwsyncup\fR,
-\fBsyncok\fR,
-\fBwcursyncup\fR,
-\fBwsyncdown\fR - create \fBcurses\fR windows
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBWINDOW *newwin(int nlines, int ncols, int begin_y,\fR
- \fBint begin_x);\fR
-.br
-\fBint delwin(WINDOW *win);\fR
-.br
-\fBint mvwin(WINDOW *win, int y, int x);\fR
-.br
-\fBWINDOW *subwin(WINDOW *orig, int nlines, int ncols,\fR
- \fBint begin_y, int begin_x);\fR
-.br
-\fBWINDOW *derwin(WINDOW *orig, int nlines, int ncols,\fR
- \fBint begin_y, int begin_x);\fR
-.br
-\fBint mvderwin(WINDOW *win, int par_y, int par_x);\fR
-.br
-\fBWINDOW *dupwin(WINDOW *win);\fR
-.br
-\fBvoid wsyncup(WINDOW *win);\fR
-.br
-\fBint syncok(WINDOW *win, bool bf);\fR
-.br
-\fBvoid wcursyncup(WINDOW *win);\fR
-.br
-\fBvoid wsyncdown(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-Calling \fBnewwin\fR creates and returns a pointer to a new window with the
-given number of lines and columns. The upper left-hand corner of the window is
-at line \fIbegin\fR_\fIy\fR, column \fIbegin\fR_\fIx\fR. If either
-\fInlines\fR or \fIncols\fR is zero, they default to \fBLINES -\fR
-\fIbegin\fR_\fIy\fR and \fBCOLS -\fR \fIbegin\fR_\fIx\fR. A new full-screen
-window is created by calling \fBnewwin(0,0,0,0)\fR.
-
-Calling \fBdelwin\fR deletes the named window, freeing all memory
-associated with it (it does not actually erase the window's screen
-image). Subwindows must be deleted before the main window can be
-deleted.
-
-Calling \fBmvwin\fR moves the window so that the upper left-hand
-corner is at position (\fIx\fR, \fIy\fR). If the move would cause the
-window to be off the screen, it is an error and the window is not
-moved. Moving subwindows is allowed, but should be avoided.
-
-Calling \fBsubwin\fR creates and returns a pointer to a new window
-with the given number of lines, \fInlines\fR, and columns,
-\fIncols\fR. The window is at position (\fIbegin\fR_\fIy\fR,
-\fIbegin\fR_\fIx\fR) on the screen. (This position is relative to the
-screen, and not to the window \fIorig\fR.) The window is made in the
-middle of the window \fIorig\fR, so that changes made to one window
-will affect both windows. The subwindow shares memory with the window
-\fIorig\fR. When using this routine, it is necessary to call
-\fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before calling
-\fBwrefresh\fR on the subwindow.
-
-Calling \fBderwin\fR is the same as calling \fBsubwin,\fR except that
-\fIbegin\fR_\fIy\fR and \fIbegin\fR_\fIx\fR are relative to the origin
-of the window \fIorig\fR rather than the screen. There is no
-difference between the subwindows and the derived windows.
-
-Calling \fBmvderwin\fR moves a derived window (or subwindow)
-inside its parent window. The screen-relative parameters of the
-window are not changed. This routine is used to display different
-parts of the parent window at the same physical position on the
-screen.
-
-Calling \fBdupwin\fR creates an exact duplicate of the window \fIwin\fR.
-
-Calling \fBwsyncup\fR touches all locations in ancestors of \fIwin\fR that are
-changed in \fIwin\fR. If \fBsyncok\fR is called with second argument
-\fBTRUE\fR then \fBwsyncup\fR is called automatically whenever there is a
-change in the window.
-
-The \fBwsyncdown\fR routine touches each location in \fIwin\fR that has been
-touched in any of its ancestor windows. This routine is called by
-\fBwrefresh\fR, so it should almost never be necessary to call it manually.
-
-The routine \fBwcursyncup\fR updates the current cursor position of all the
-ancestors of the window to reflect the current cursor position of the
-window.
-.SH RETURN VALUE
-Routines that return an integer return the integer \fBERR\fR upon failure and
-\fBOK\fR (SVr4 only specifies "an integer value other than \fBERR\fR") upon
-successful completion.
-
-\fBdelwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
-upon successful completion.
-
-Routines that return pointers return \fBNULL\fR on error.
-.SH NOTES
-If many small changes are made to the window, the \fBwsyncup\fR option could
-degrade performance.
-
-Note that \fBsyncok\fR may be a macro.
-.SH BUGS
-The subwindow functions (\fIsubwin\fR, \fIderwin\fR, \fImvderwin\fR,
-\fBwsyncup\fR, \fBwsyncdown\fR, \fBwcursyncup\fR, \fBsyncok\fR) are flaky,
-incompletely implemented, and not well tested.
-
-The System V curses documentation is very unclear about what \fBwsyncup\fR
-and \fBwsyncdown\fR actually do. It seems to imply that they are only
-supposed to touch exactly those lines that are affected by ancestor changes.
-The language here, and the behavior of the \fBcurses\fR implementation,
-is patterned on the XPG4 curses standard. The weaker XPG4 spec may result
-in slower updates.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X), \fBcurs_touch\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/default_colors.3x b/ncurses-5.2/man/default_colors.3x
deleted file mode 100644
index 96fd2a0..0000000
--- a/ncurses-5.2/man/default_colors.3x
+++ /dev/null
@@ -1,133 +0,0 @@
-.\"***************************************************************************
-.\" 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 *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" 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> 1997,1999,2000
-.\"
-.\" $Id$
-.TH default_colors 3X ""
-.SH NAME
-\fBdefault_colors\fR:
-\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 DESCRIPTION
-The
-.I use_default_colors()
-and
-.I assume_default_colors()
-functions 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 unspecified
-default value (e.g., with SGR 39 or SGR 49).
-.PP
-Applications that paint a colored background over the 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 \fBls\fP program
-which use colors to denote different file types or permissions.
-These "color ls" programs do not necessarily modify the background color,
-typically using only the \fIsetaf\fP terminfo capability to set the
-foreground color.
-Full-screen applications that use default colors can achieve similar
-visual effects.
-.PP
-The first function,
-.I use_default_colors()
-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.
-.PP
-The other,
-.I assume_default_colors()
-is a refinement which tells which colors to paint for color pair 0.
-This function recognizes a special color number -1,
-which denotes the default terminal color.
-.PP
-The following are equivalent:
-.RS
-.br
-.I use_default_colors();
-.br
-.I assume_default_colors(-1,-1);
-.RE
-.PP
-These are ncurses extensions.
-For other curses implementations, color
-number -1 does not mean anything, just as for ncurses before a
-successful call of \fIuse_default_colors()\fP or \fIassume_default_colors()\fP.
-.PP
-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_default_colors()
-or
-.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 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 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).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/define_key.3x b/ncurses-5.2/man/define_key.3x
deleted file mode 100644
index cf46aeb..0000000
--- a/ncurses-5.2/man/define_key.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-.\"***************************************************************************
-.\" 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. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey <dickey@clark.net> 1997
-.\"
-.\" $Id$
-.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 DESCRIPTION
-This is an extension to the curses library.
-It permits an application to define keycodes with their corresponding control
-strings, so that the ncurses library will interpret them just as it would
-the predefined codes in the terminfo database.
-.PP
-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.
-..
-.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 SEE ALSO
-\fBkeyok\fR(3X).
-..
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form.3x b/ncurses-5.2/man/form.3x
deleted file mode 100644
index f08b912..0000000
--- a/ncurses-5.2/man/form.3x
+++ /dev/null
@@ -1,200 +0,0 @@
-'\" 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$
-.TH form 3X ""
-.SH NAME
-\fBform\fR - curses extension for programming forms
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-.SH DESCRIPTION
-The \fBform\fR 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 interaction with the
-user.
-
-The \fBform\fR library uses the \fBcurses\fR libraries, and a curses
-initialization routine such as \fBinitscr\fR must be called before using any of
-these functions. To use the \fBform\fR library, link with the options
-\fB-lform -lcurses\fR.
-
-.SS Current Default Values for Field Attributes
-
-The \fBform\fR library maintains a default value for field attributes. You
-can get or set this default by calling the appropriate \fBset_\fR
-or retrieval
-routine with a \fBNULL\fR field pointer. Changing this default with a
-\fBset_\fR function affects future field creations, but does not change the
-rendering of fields already created.
-
-.SS Routine Name Index
-
-The following table lists each \fBform\fR routine and the name of
-the manual page on which it is described.
-
-.TS
-l l
-l l .
-\fBcurses\fR Routine Name Manual Page Name
-=
-current_field \fBform_page\fR(3X)
-data_ahead \fBform_data\fR(3X)
-data_behind \fBform_data\fR(3X)
-dup_field \fBform_field_new\fR(3X)
-dynamic_fieldinfo \fBform_field_info\fR(3X)
-field_arg \fBform_field_validation\fR(3X)
-field_back \fBform_field_attributes\fR(3X)
-field_buffer \fBform_field_buffer\fR(3X)
-field_count \fBform_field\fR(3X)
-field_fore \fBform_field_attributes\fR(3X)
-field_index \fBform_page\fR(3X)
-field_info \fBform_field_info\fR(3X)
-field_init \fBform_hook\fR(3X)
-field_just \fBform_field_just\fR(3X)
-field_opts \fBform_field_opts\fR(3X)
-field_opts_off \fBform_field_opts\fR(3X)
-field_opts_on \fBform_field_opts\fR(3X)
-field_pad \fBform_field_attributes\fR(3X)
-field_status \fBform_field_buffer\fR(3X)
-field_term \fBform_hook\fR(3X)
-field_type \fBform_field_validation\fR(3X)
-field_userptr \fBform_field_userptr\fR(3X)
-form_driver \fBform_driver\fR(3X)
-form_fields \fBform_field\fR(3X)
-form_init \fBform_hook\fR(3X)
-form_opts \fBform_opts\fR(3X)
-form_opts_off \fBform_opts\fR(3X)
-form_opts_on \fBform_opts\fR(3X)
-form_page \fBform_page\fR(3X)
-form_request_by_name \fBform_requestname\fR(3X)
-form_request_name \fBform_requestname\fR(3X)
-form_sub \fBform_win\fR(3X)
-form_term \fBform_hook\fR(3X)
-form_userptr \fBform_userptr\fR(3X)
-form_win \fBform_win\fR(3X)
-free_field \fBform_field_new\fR(3X)
-free_form \fBform_new\fR(3X)
-link_field \fBform_field_new\fR(3X)
-link_fieldtype \fBform_fieldtype\fR(3X)
-move_field \fBform_field\fR(3X)
-new_field \fBform_field_new\fR(3X)
-new_form \fBform_new\fR(3X)
-new_page \fBform_new_page\fR(3X)
-pos_form_cursor \fBform_cursor\fR(3X)
-post_form \fBform_post\fR(3X)
-scale_form \fBform_win\fR(3X)
-set_current_field \fBform_page\fR(3X)
-set_field_back \fBform_field_attributes\fR(3X)
-set_field_buffer \fBform_field_buffer\fR(3X)
-set_field_fore \fBform_field_attributes\fR(3X)
-set_field_init \fBform_hook\fR(3X)
-set_field_just \fBform_field_just\fR(3X)
-set_field_opts \fBform_field_opts\fR(3X)
-set_field_pad \fBform_field_attributes\fR(3X)
-set_field_status \fBform_field_buffer\fR(3X)
-set_field_term \fBform_hook\fR(3X)
-set_field_type \fBform_field_validation\fR(3X)
-set_field_userptr \fBform_field_userptr\fR(3X)
-set_fieldtype_arg \fBform_fieldtype\fR(3X)
-set_fieldtype_choice \fBform_fieldtype\fR(3X)
-set_form_fields \fBform_field\fR(3X)
-set_form_init \fBform_hook\fR(3X)
-set_form_opts \fBform_field_opts\fR(3X)
-set_form_page \fBform_page\fR(3X)
-set_form_sub \fBform_win\fR(3X)
-set_form_term \fBform_hook\fR(3X)
-set_form_userptr \fBform_userptr\fR(3X)
-set_form_win \fBform_win\fR(3X)
-set_max_field \fBform_field_buffer\fR(3X)
-set_new_page \fBform_new_page\fR(3X)
-unpost_form \fBform_post\fR(3X)
-.TE
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Routines that return
-an integer return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_CONNECTED\fR
-The field is already connected to a form.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form is already posted.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NO_ROOM\fR
-Form is too large for its window.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The form driver code saw an unknown request code.
-.TP 5
-\fBE_INVALID_FIELD\fR
-Contents of a field are not valid.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No fields are connected to the form.
-.TP 5
-\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
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
-
-In your library list, libform.a should be before libncurses.a; that is,
-you want to say `-lform -lncurses', not the other way around (which would
-give you a link error using GNU \fBld\fR(1) and many other linkers).
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_cursor.3x b/ncurses-5.2/man/form_cursor.3x
deleted file mode 100644
index 4ee7c79..0000000
--- a/ncurses-5.2/man/form_cursor.3x
+++ /dev/null
@@ -1,74 +0,0 @@
-'\" 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$
-.TH form_cursor 3X ""
-.SH NAME
-\fBform_cursor\fR - position a form window cursor
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int pos_form_cursor(FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBpos_form_cursor\fR restores the cursor to the position required
-for the forms driver to continue processing requests. This is useful after
-\fBcurses\fR routines have been called to do screen-painting in response to a
-form operation.
-.SH RETURN VALUE
-This routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_data.3x b/ncurses-5.2/man/form_data.3x
deleted file mode 100644
index 623dbac..0000000
--- a/ncurses-5.2/man/form_data.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-'\" 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$
-.TH form_data 3X ""
-.SH NAME
-\fBform_data\fR - test for off-screen data in given forms
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-bool data_ahead(const FORM *form);
-.br
-bool data_behind(const FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBdata_ahead\fR tests whether there is off-screen data
-ahead in the given form. It returns TRUE (1) or FALSE (0).
-
-The function \fBdata_behind\fR tests whether there is off-screen data
-behind in the given form. It returns TRUE (1) or FALSE (0).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_driver.3x b/ncurses-5.2/man/form_driver.3x
deleted file mode 100644
index 92e0a9f..0000000
--- a/ncurses-5.2/man/form_driver.3x
+++ /dev/null
@@ -1,272 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH form_driver 3X ""
-.SH NAME
-\fBform_driver\fR - command-processing loop of the form system
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int form_driver(FORM *form, int c);
-.br
-.SH DESCRIPTION
-Once a form has been posted (displayed), you should funnel input events to it
-through \fBform_driver\fR. This routine has two major input cases; either
-the input is a form navigation request or it's a printable ASCII character.
-The form driver requests are as follows:
-.TP 5
-REQ_NEXT_PAGE
-Move to the next page.
-.TP 5
-REQ_PREV_PAGE
-Move to the previous page.
-.TP 5
-REQ_FIRST_PAGE
-Move to the first page.
-.TP 5
-REQ_LAST_PAGE
-Move to the last field.
-
-.TP 5
-REQ_NEXT_FIELD
-Move to the next field.
-.TP 5
-REQ_PREV_FIELD
-Move to the previous field.
-.TP 5
-REQ_FIRST_FIELD
-Move to the first field.
-.TP 5
-REQ_LAST_FIELD
-Move to the last field.
-.TP 5
-REQ_SNEXT_FIELD
-Move to the sorted next field.
-.TP 5
-REQ_SPREV_FIELD
-Move to the sorted previous field.
-.TP 5
-REQ_SFIRST_FIELD
-Move to the sorted first field.
-.TP 5
-REQ_SLAST_FIELD
-Move to the sorted last field.
-.TP 5
-REQ_LEFT_FIELD
-Move left to a field.
-.TP 5
-REQ_RIGHT_FIELD
-Move right to a field.
-.TP 5
-REQ_UP_FIELD
-Move up to a field.
-.TP 5
-REQ_DOWN_FIELD
-Move down to a field.
-
-.TP 5
-REQ_NEXT_CHAR
-Move to the next char.
-.TP 5
-REQ_PREV_CHAR
-Move to the previous char.
-.TP 5
-REQ_NEXT_LINE
-Move to the next line.
-.TP 5
-REQ_PREV_LINE
-Move to the previous line.
-.TP 5
-REQ_NEXT_WORD
-Move to the next word.
-.TP 5
-REQ_PREV_WORD
-Move to the previous word.
-.TP 5
-REQ_BEG_FIELD
-Move to the beginning of the field.
-.TP 5
-REQ_END_FIELD
-Move to the end of the field.
-.TP 5
-REQ_BEG_LINE
-Move to the beginning of the line.
-.TP 5
-REQ_END_LINE
-Move to the end of the line.
-.TP 5
-REQ_LEFT_CHAR
-Move left in the field.
-.TP 5
-REQ_RIGHT_CHAR
-Move right in the field.
-.TP 5
-REQ_UP_CHAR
-Move up in the field.
-.TP 5
-REQ_DOWN_CHAR
-Move down in the field.
-
-.TP 5
-REQ_NEW_LINE
-Insert or overlay a new line.
-.TP 5
-REQ_INS_CHAR
-Insert a blank at the cursor.
-.TP 5
-REQ_INS_LINE
-Insert a blank line at the cursor.
-.TP 5
-REQ_DEL_CHAR
-Delete character at the cursor.
-.TP 5
-REQ_DEL_PREV
-Delete character before the cursor.
-.TP 5
-REQ_DEL_LINE
-Delete line at the cursor.
-.TP 5
-REQ_DEL_WORD
-Delete blank-delimited word at the cursor.
-.TP 5
-REQ_CLR_EOL
-Clear to end of line from cursor.
-.TP 5
-REQ_CLR_EOF
-Clear to end of field from cursor.
-.TP 5
-REQ_CLR_FIELD
-Clear the entire field.
-.TP 5
-REQ_OVL_MODE
-Enter overlay mode.
-.TP 5
-REQ_INS_MODE
-Enter insert mode.
-
-.TP 5
-REQ_SCR_FLINE
-Scroll the field forward a line.
-.TP 5
-REQ_SCR_BLINE
-Scroll the field backward a line.
-.TP 5
-REQ_SCR_FPAGE
-Scroll the field forward a page.
-.TP 5
-REQ_SCR_BPAGE
-Scroll the field backward a page.
-.TP 5
-REQ_SCR_FHPAGE
-Scroll the field forward half a page.
-.TP 5
-REQ_SCR_BHPAGE
-Scroll the field backward half a page.
-
-.TP 5
-REQ_SCR_FCHAR
-Scroll the field forward a character.
-.TP 5
-REQ_SCR_BCHAR
-Scroll the field backward a character.
-.TP 5
-REQ_SCR_HFLINE
-Horizontal scroll the field forward a line.
-.TP 5
-REQ_SCR_HBLINE
-Horizontal scroll the field backward a line.
-.TP 5
-REQ_SCR_HFHALF
-Horizontal scroll the field forward half a line.
-.TP 5
-REQ_SCR_HBHALF
-Horizontal scroll the field backward half a line.
-
-.TP
-REQ_VALIDATION
-Validate field.
-.TP
-REQ_NEXT_CHOICE
-Display next field choice.
-.TP
-REQ_PREV_CHOICE
-Display previous field choice.
-.PP
-If the second argument is a printable ASCII character, the driver places it
-in the current position in the current field. If it is one of the forms
-requests listed above, that request is executed.
-.PP
-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 \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
-should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
-pre-defined requests.
-.SH RETURN VALUE
-\fBform_driver\fR return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The form driver code saw an unknown request code.
-.TP 5
-\fBE_INVALID_FIELD\fR
-Contents of field is invalid.
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The form driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header files
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field.3x b/ncurses-5.2/man/form_field.3x
deleted file mode 100644
index a774942..0000000
--- a/ncurses-5.2/man/form_field.3x
+++ /dev/null
@@ -1,97 +0,0 @@
-'\" 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$
-.TH form_field 3X ""
-.SH NAME
-\fBform_field\fR - make and break connections between fields and forms
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_form_fields(FORM *form, FIELD **fields);
-.br
-FIELD **form_fields(const FORM *form);
-.br
-int field_count(const FORM *form);
-.br
-int move_field(FIELD *field, int frow, int fcol);
-.br
-.SH DESCRIPTION
-The function \fBset_form_fields\fR changes the field pointer array of
-the given \fIform\fR. The array must be terminated by a \fBNULL\fR.
-
-The function \fBform_fields\fR returns the field array of the given form.
-
-The function \fBfield_count\fR returns the count of fields in \fIform\fR.
-
-The function \fBmove_field\fR move the given field (which must be disconnected)
-to a specified location on the screen.
-.SH RETURN VALUES
-The function \fBform_fields\fR returns \fBNULL\fR on error.
-
-The function \fBfield_count\fR returns \fBERR\fR (the general
-\fBcurses\fR error return value) on error.
-
-The functions \fBset_form_fields\fR and \fBmove_field\fR return one of
-the following codes on error:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form is already posted.
-.TP 5
-\fBE_CONNECTED\fR
-The field is already connected to a form.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-
-The SVr4 forms library documentation specifies the \fBfield_count\fR error value
-as -1 (which is the value of \fBERR\fR).
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field_attributes.3x b/ncurses-5.2/man/form_field_attributes.3x
deleted file mode 100644
index 1b4f61e..0000000
--- a/ncurses-5.2/man/form_field_attributes.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-'\" 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$
-.TH form_field_attributes 3X ""
-.SH NAME
-\fBform_field_attributes\fR - color and attribute control for form fields
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_fore(FIELD *field, chtype attr);
-.br
-chtype field_fore(const FIELD *field);
-.br
-int set_field_back(FIELD *field, chtype attr);
-.br
-chtype field_back(const FIELD *field);
-.br
-int set_field_pad(FIELD *field, int pad);
-.br
-chtype field_pad(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_field_fore\fR sets the foreground attribute of
-\fIfield\fR. This is the highlight used to display the field contents. The
-function \fBfield_fore\fR returns the foreground attribute. The default is
-\fBA_STANDOUT\fR.
-
-The function \fBset_field_back\fR sets the background attribute of
-\fIform\fR. This is the highlight used to display the extent fields in the
-form. The function \fBfield_back\fR returns the background attribute. The
-default is \fBA_NORMAL\fR.
-
-The function \fBset_field_pad\fR sets the character used to fill the field.
-The function \fBfield_pad\fR returns the given form's pad character. The
-default is a blank.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\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
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field_buffer.3x b/ncurses-5.2/man/form_field_buffer.3x
deleted file mode 100644
index 20aba57..0000000
--- a/ncurses-5.2/man/form_field_buffer.3x
+++ /dev/null
@@ -1,99 +0,0 @@
-'\" 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$
-.TH form_field_buffer 3X ""
-.SH NAME
-\fBform_field_buffer\fR - field buffer control
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_buffer(FIELD *field, int buf, const char *value);
-.br
-char *field_buffer(const FIELD *field, int buffer);
-.br
-int set_field_status(FIELD *field, bool status);
-.br
-bool field_status(const FIELD *field);
-.br
-int set_max_field(FIELD *field, int max);
-.br
-.SH DESCRIPTION
-The function \fBset_field_buffer\fR 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 may be allocated by applications through the \fBnbuf\fR
-argument of (see \fBform_field_new\fR(3X)) but are not manipulated by the forms
-library. The function \fBfield_buffer\fR returns the address of the buffer.
-Please note that this buffer has always the length of the buffer, that means
-that it may typically contain trailing spaces. If you entered leading spaces
-the buffer may also contain them. If you want the raw data, you must write your
-own routine that copies the value out of the buffer and removes the leading
-and trailing spaces. Please note also, that subsequent operations on the form
-will probably change the content of the buffer. So don't use it for long term
-storage of the entered form data.
-
-The function \fBset_field_status\fR sets the associated status flag of
-\fIfield\fR; \fBfield_status\fR gets the current value. The status flag
-is set to a nonzero value whenever the field changes.
-
-The function \fBset_max_field\fR sets the maximum size for a dynamic field.
-An argument of 0 turns off any maximum size threshold for that field.
-.SH RETURN VALUE
-The \fBfield_buffer\fR function returns NULL on error.
-
-The \fBfield_status\fR function returns \fBTRUE\fR or \fBFALSE\fR.
-
-The remaining routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\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
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field_info.3x b/ncurses-5.2/man/form_field_info.3x
deleted file mode 100644
index 636fa19..0000000
--- a/ncurses-5.2/man/form_field_info.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH form_field_info 3X ""
-.SH NAME
-\fBform_field_info\fR - retrieve field characteristics
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.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);
-.br
-.SH DESCRIPTION
-The function \fBfield_info\fR returns the sizes and other attributes passed in
-to the field at its creation time. The attributes are: height, width, row of
-upper-left corner, column of upper-left corner, number off-screen rows, and
-number of working buffers.
-
-The function \fBdynamic_field_info\fR returns the actual size of the field, and
-its maximum possible size. If the field has no size limit, the location
-addressed by the third argument will be set to 0. (A field can be made dynamic
-by turning off the \fBO_STATIC\fR).
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\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
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.PP
-A null (zero pointer) is accepted for any of the return values,
-to ignore that value.
-Not all implementations allow this, e.g., Solaris 2.7 does not.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field_just.3x b/ncurses-5.2/man/form_field_just.3x
deleted file mode 100644
index 2485b8d..0000000
--- a/ncurses-5.2/man/form_field_just.3x
+++ /dev/null
@@ -1,78 +0,0 @@
-'\" 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$
-.TH form_field_just 3X ""
-.SH NAME
-\fBform_field_just\fR - retrieve field characteristics
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_just(FIELD *field, int justification);
-.br
-int field_just(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_field_just\fR sets the justification attribute of
-a field; \fBfield_just\fR returns a field's justification attribute.
-The attribute may be one of NO_JUSTIFICATION, JUSTIFY_RIGHT,
-JUSTIFY_LEFT, or JUSTIFY_CENTER.
-
-.SH RETURN VALUE
-The function \fBfield_just\fR returns one of: NO_JUSTIFICATION,
-JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
-
-The function \fBset_field_just\fR return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\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
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field_new.3x b/ncurses-5.2/man/form_field_new.3x
deleted file mode 100644
index 5126fb0..0000000
--- a/ncurses-5.2/man/form_field_new.3x
+++ /dev/null
@@ -1,96 +0,0 @@
-'\" 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$
-.TH form_field_new 3X ""
-.SH NAME
-\fBform_field_new\fR - create and destroy form fields
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-FIELD *new_field(int height, int width,
- int toprow, int leftcol,
- int offscreen, int nbuffers);
-.br
-FIELD *dup_field(FIELD *field, int toprow, int leftcol);
-.br
-FIELD *link_field(FIELD *field, int toprow, int leftcol);
-.br
-int free_field(FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBnew_field\fR allocates a new field and initializes 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 \fBdup_field\fR duplicates a field at a new location. Most
-attributes (including current contents, size, validation type, buffer count,
-growth threshold, justification, foreground, background, pad character,
-options, and user pointer) are copied. Field status and the field page bit are
-not copied.
-
-The function \fBlink_field\fR acts like \fBdup_field\fR, but the new field
-shares buffers with its parent. Attribute data is separate.
-
-The function \fBfree_field\fR de-allocates storage associated with a field.
-.SH RETURN VALUE
-The function, \fBnew_field\fR, \fBdup_field\fR, \fBlink_field\fR return
-\fBNULL\fR on error.
-
-The function \fBfree_field\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-
-It may be unwise to count on the set of attributes copied by
-\fBdup_field\fR(3X) being portable; the System V forms library documents are
-not very explicit on what gets copied and was not.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field_opts.3x b/ncurses-5.2/man/form_field_opts.3x
deleted file mode 100644
index a8b064f..0000000
--- a/ncurses-5.2/man/form_field_opts.3x
+++ /dev/null
@@ -1,120 +0,0 @@
-'\" 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$
-.TH form_field_opts 3X ""
-.SH NAME
-\fBform_field_opts\fR - set and get field options
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_opts(FIELD *field, OPTIONS opts);
-.br
-int field_opts_on(FIELD *field, OPTIONS opts);
-.br
-int field_opts_off(FIELD *field, OPTIONS opts);
-.br
-OPTIONS field_opts(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_field_opts\fR sets all the given field's option bits (field
-option bits may be logically-OR'ed together).
-
-The function \fBfield_opts_on\fR turns on the given option bits, and leaves
-others alone.
-
-The function \fBfield_opts_off\fR turns off the given option bits, and leaves
-others alone.
-
-The function \fBfield_opts\fR returns the field's current option bits.
-
-The following options are defined (all are on by default):
-.TP 5
-O_VISIBLE
-The field is displayed. If this option is off, display of the field is
-suppressed,
-.TP 5
-O_ACTIVE
-The field is visited during processing. If this option is off, the field will
-not be reachable by navigation keys. Please notice that an invisible field
-appears to be inactive also.
-.TP 5
-O_PUBLIC
-The field contents are displayed as data is entered.
-.TP 5
-O_EDIT
-The field can be edited.
-.TP 5
-O_WRAP
-Words that don't fit on a line are wrapped to the next line. Words are
-blank-separated.
-.TP 5
-O_BLANK
-The field is cleared whenever a character is entered at the first position.
-.TP 5
-O_AUTOSKIP
-Skip to the next field when this one fills
-.TP 5
-O_NULLOK
-Allow a blank field.
-.TP 5
-O_STATIC
-Field buffers are fixed to field's original size.
-.TP 5
-O_PASSOK
-Validate field only if modified by user.
-.SH RETURN VALUE
-Except for \fBfield_opts\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_CURRENT\fR
-The field is the current field.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.TP 5
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field_userptr.3x b/ncurses-5.2/man/form_field_userptr.3x
deleted file mode 100644
index 195a12c..0000000
--- a/ncurses-5.2/man/form_field_userptr.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH form_field_userptr 3X ""
-.SH NAME
-\fBform_field_userptr\fR - associate application data with a form field
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_userptr(FIELD *field, void*userptr);
-.br
-void *field_userptr(const FIELD *field);
-.br
-.SH DESCRIPTION
-Every form field has a field that can be used to hold application-specific data
-(that is, the form-driver code leaves it alone). These functions get and set
-that field.
-.SH RETURN VALUE
-The function \fBfield_userptr\fR returns \fBNULL\fR on error. The function
-\fBset_field_userptr\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-
-The user pointer should be a void pointer. We leave it as a char pointer for
-SVr4 compatibility.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_field_validation.3x b/ncurses-5.2/man/form_field_validation.3x
deleted file mode 100644
index 5774990..0000000
--- a/ncurses-5.2/man/form_field_validation.3x
+++ /dev/null
@@ -1,127 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH form_field_validation 3X ""
-.SH NAME
-\fBform_field_validation\fR - data type validation for fields
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_type(FIELD *field, FIELDTYPE *type, ...);
-.br
-FIELDTYPE *field_type(const FIELD *field);
-.br
-void *field_arg(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_field_type\fR declares a data type for a given form field.
-This is the type checked by validation functions. The types are as follows:
-.TP 5
-TYPE_ALNUM
-Alphanumeric data. Requires a third \fBint\fR argument, a minimum field width.
-.TP 5
-TYPE_ALPHA
-Character data. Requires a third \fBint\fR argument, a minimum field width.
-.TP 5
-TYPE_ENUM
-Accept one of a specified set of strings. Requires a third \fB(char **)\fR
-argument pointing to a string list; a fourth \fBint\fR flag argument to enable
-case-sensitivity; and a fifth \fBint\fR 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 notice
-that the string list is not copied, only a reference to it is stored in the
-field. So you should avoid to use a list that lives in automatic variables
-on the stack.
-.TP 5
-TYPE_INTEGER
-Integer data, parsable to an integer by \fBatoi(3)\fR. Requires a third
-\fBint\fR argument controlling the precision, a fourth \fBlong\fR argument
-constraining minimum value, and a fifth \fBlong\fR constraining maximum value.
-If the maximum value is less or equal the minimum value, the range is simply
-ignored. On return the field buffer is formatted according to the \fBprintf\fR
-format specification ".*ld", where the '*' is replaced by the precision argument.
-For details of the precision handling see \fBprintf's\fR man-page.
-.TP 5
-TYPE_NUMERIC
-Numeric data (may have a decimal-point part). Requires a third
-\fBint\fR argument controlling the precision, a fourth \fBdouble\fR
-argument constraining minimum value, and a fifth \fBdouble\fR constraining
-maximum value. If your system supports locale's, the decimal point character
-to be used must be the one specified by your locale.
-If the maximum value is less or equal the minimum value, the range is simply
-ignored. On return the field buffer is formatted according to the \fBprintf\fR
-format specification ".*f", where the '*' is replaced by the precision argument.
-For details of the precision handling see \fBprintf's\fR man-page.
-.TP 5
-TYPE_REGEXP
-Regular expression data. Requires a regular expression \fB(char *)\fR third argument;
-the data is valid if the regular expression matches it. Regular expressions
-are in the format of \fBregcomp\fR(3X) and \fBregexec\fR(3X). Please notice
-that the regular expression must match the whole field. If you have for
-example an eight character wide field, a regular expression "^[0-9]*$" always
-means that you have to fill all eight positions with digits. If you want to
-allow fewer digits, you may use for example "^[0-9]* *$" which is good for
-trailing spaces (up to an empty field), or "^ *[0-9]* *$" which is good for
-leading and trailing spaces around the digits.
-.TP 5
-TYPE_IPV4
-An Internet Protocol Version 4 address. This requires no additional argument. It
-is checked whether or not the buffer has the form a.b.c.d, where a,b,c and d are
-numbers between 0 and 255. Trailing blanks in the buffer are ignored. The address
-itself is not validated. Please note that this is an ncurses extension. This
-field type may not be available in other curses implementations.
-
-It is possible to set up new programmer-defined field types. See the
-\fBform_fieldtype\fR(3X) manual page.
-.SH RETURN VALUE
-The functions \fBfield_type\fR and \fBfield_arg\fR return \fBNULL\fR on
-error. The function \fBset_field_type\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_fieldtype.3x b/ncurses-5.2/man/form_fieldtype.3x
deleted file mode 100644
index 4b287ef..0000000
--- a/ncurses-5.2/man/form_fieldtype.3x
+++ /dev/null
@@ -1,126 +0,0 @@
-'\" 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$
-.TH form_fieldtype 3X ""
-.SH NAME
-\fBform_fieldtype\fR - define validation-field types
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-FIELDTYPE *new_fieldtype(
- bool (* const field_check)(FIELD *, const void *),
- bool (* const char_check)(int, const void *));
-.br
-int free_fieldtype(FIELDTYPE *fieldtype);
-.br
-int set_fieldtype_arg(
- FIELDTYPE *fieldtype,
- void *(* const make_arg)(va_list *),
- void *(* const copy_arg)(const void *),
- void (* const free_arg)(void *));
-.br
-int set_fieldtype_choice(
- FIELDTYPE *fieldtype
- bool (* const next_choice)(FIELD *, const void *),
- bool (* const prev_choice)(FIELD *, const void *));
-.br
-FIELDTYPE *link_fieldtype(FIELDTYPE *type1,
- FIELDTYPE *type2);
-.br
-.SH DESCRIPTION
-The function \fBnew_fieldtype\fR creates a new field type usable for data
-validation. You supply it with \fIfield_check\fR, a predicate to check the
-validity of an entered data string whenever the user attempt to leave a field.
-The (FIELD *) argument is passed in so the validation predicate can see the
-field's buffer, sizes and other attributes; the second argument is an
-argument-block structure, about which more below.
-
-You also supply \fBnew_fieldtype\fR with \fIchar_check\fR,
-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.
-
-The function \fBfree_fieldtype\fR frees the space allocated for a given
-validation type.
-
-The function \fBset_fieldtype\fR associates three storage-management functions
-with a field type. The \fImak_arg\fR function is automatically applied to the
-list of arguments you give \fBset_field_type\fR when attaching validation
-to a field; its job is to bundle these into an allocated argument-block
-object which can later be passed to validation predicated. The other two
-hook arguments should copy and free argument-block structures. They will
-be used by the forms-driver code. You must supply the \fImak_arg\fR function,
-the other two are optional, you may supply NULL for them. In this case it
-is assumed, that \fImak_arg\fR doesn't allocate memory but simply loads the
-argument into a single scalar value.
-
-The form driver requests \fBREQ_NEXT_CHOICE\fR and \fBREQ_PREV_CHOICE\fR assume
-that the possible values of a field form an ordered set, and provide the forms
-user with a way to move through the set. The \fBset_fieldtype_choice\fR
-function allows forms programmers to define successor and predecessor functions
-for the field type. These functions take the field pointer and an
-argument-block structure as arguments.
-.SH RETURN VALUE
-The pointer-valued routines return NULL on error.
-
-The integer-valued routines return one of the following codes on
-error:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_CONNECTED\fR
-The field is already connected to a form.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-
-All of the \fB(char *)\fR arguments of these functions should actually be
-\fB(void *)\fR. The type has been left uncorrected for strict compatibility
-with System V.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_hook.3x b/ncurses-5.2/man/form_hook.3x
deleted file mode 100644
index 8833a44..0000000
--- a/ncurses-5.2/man/form_hook.3x
+++ /dev/null
@@ -1,100 +0,0 @@
-'\" 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$
-.TH form_hook 3X ""
-.SH NAME
-\fBform_hook\fR - set hooks for automatic invocation by applications
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_init(FORM *form, void (*func)(FORM *));
-.br
-void (*)(FORM *) field_init(const FORM *form);
-.br
-int set_field_term(FORM *form, void (*func)(FORM *));
-.br
-void (*)(FORM *) field_term(const FORM *form);
-.br
-int set_form_init(FORM *form, void (*func)(FORM *));
-.br
-void (*)(FORM *) form_init(const FORM *form);
-.br
-int set_form_term(FORM *form, void (*func)(FORM *));
-.br
-void (*)(FORM *) form_term(const FORM *form);
-.br
-.SH DESCRIPTION
-These functions make it possible to set hook functions to be called at various
-points in the automatic processing of input event codes by \fBform_driver\fR.
-
-The function \fBset_field_init\fR sets a hook to be called at form-post time
-and each time the selected field changes (after the change). \fBfield_init\fR
-returns the current field init hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_field_term\fR sets a hook to be called at form-unpost time
-and each time the selected field changes (before the change). \fBfield_term\fR
-returns the current field term hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_form_init\fR sets a hook to be called at form-post time and
-just after a page change once it is posted. \fBform_init\fR returns the
-current form init hook, if any (\fBNULL\fR if there is no such hook).
-
-The function \fBset_form_term\fR sets a hook to be called at form-unpost time
-and just before a page change once it is posted. \fBform_init\fR
-returns the current form term hook, if any (\fBNULL\fR if there is no such
-hook).
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Other routines
-return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_new.3x b/ncurses-5.2/man/form_new.3x
deleted file mode 100644
index 71cf003..0000000
--- a/ncurses-5.2/man/form_new.3x
+++ /dev/null
@@ -1,79 +0,0 @@
-'\" 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$
-.TH form_new 3X ""
-.SH NAME
-\fBform_new\fR - create and destroy forms
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-FORM *new_form(FIELD **fields);
-.br
-int free_form(FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBnew_form\fR creates a new form connected to a specified field
-pointer array (which must be \fBNULL\fR-terminated).
-
-The function \fBfree_form\fR disconnects \fIform\fR from its field array
-and frees the storage allocated for the form.
-.SH RETURN VALUE
-The function \fBnew_form\fR returns \fBNULL\fR on error.
-
-The function \fBfree_form\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form has already been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_new_page.3x b/ncurses-5.2/man/form_new_page.3x
deleted file mode 100644
index 8a4bd4e..0000000
--- a/ncurses-5.2/man/form_new_page.3x
+++ /dev/null
@@ -1,77 +0,0 @@
-'\" 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$
-.TH form_new_page 3X ""
-.SH NAME
-\fBform_new_page\fR - form pagination functions
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_new_page(FIELD *field, bool new_page_flag);
-.br
-bool new_page(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_new_page\fR sets or resets a flag marking the given field
-as the beginning of a new page on its form.
-
-The function \fBnew_page\fR is a predicate which tests if a given field marks
-a page beginning on its form.
-.SH RETURN VALUE
-The function \fBnew_page\fR returns \fBTRUE\fR or \fBFALSE\fR.
-
-The function \fBset_new_page\fR return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\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
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_opts.3x b/ncurses-5.2/man/form_opts.3x
deleted file mode 100644
index 3cf9f06..0000000
--- a/ncurses-5.2/man/form_opts.3x
+++ /dev/null
@@ -1,90 +0,0 @@
-'\" 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$
-.TH form_opts 3X ""
-.SH NAME
-\fBform_opts\fR - set and get form options
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_form_opts(FORM *form, OPTIONS opts);
-.br
-int form_opts_on(FORM *form, OPTIONS opts);
-.br
-int form_opts_off(FORM *form, OPTIONS opts);
-.br
-OPTIONS form_opts(const FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBset_form_opts\fR sets all the given form's option bits (form
-option bits may be logically-OR'ed together).
-
-The function \fBform_opts_on\fR turns on the given option bits, and leaves
-others alone.
-
-The function \fBform_opts_off\fR turns off the given option bits, and leaves
-others alone.
-
-The function \fBform_opts\fR returns the form's current option bits.
-
-The following options are defined (all are on by default):
-.TP 5
-O_NL_OVERLOAD
-Overload the \fBREQ_NEW_LINE\fR forms driver request so that calling it at the
-end of a field goes to the next field.
-.TP 5
-O_BS_OVERLOAD
-Overload the \fBREQ_DEL_PREV\fR forms driver request so that calling it at the
-beginning of a field goes to the previous field.
-.SH RETURN VALUE
-Except for \fBform_opts\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_page.3x b/ncurses-5.2/man/form_page.3x
deleted file mode 100644
index fce7775..0000000
--- a/ncurses-5.2/man/form_page.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-'\" 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$
-.TH form_page 3X ""
-.SH NAME
-\fBform_page\fR - set and get form page number
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_current_field(FORM *form, FIELD *field);
-.br
-FIELD *current_field(const FORM *);
-.br
-int set_form_page(FORM *form, int n);
-.br
-int form_page(const FORM *form);
-.br
-int field_index(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_current field\fR sets the current field of the given
-form; \fBcurrent_field\fR returns the current field of the given form.
-.PP
-The function \fBset_form_page\fR sets the form's page number (goes to page
-\fIn\fR of the form).
-.PP
-The function \fBform_page\fR returns the form's current page number.
-.PP
-The function \fBfield_index\fR returns the index of the field in the
-field array of the form it is connected to. It returns \fBERR\fR if
-the argument is the null pointer or the field is not connected.
-.SH RETURN VALUE
-Except for \fBform_page\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_INVALID_FIELD\fR
-Contents of a field are not valid.
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The form driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_post.3x b/ncurses-5.2/man/form_post.3x
deleted file mode 100644
index c8b119f..0000000
--- a/ncurses-5.2/man/form_post.3x
+++ /dev/null
@@ -1,90 +0,0 @@
-'\" 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$
-.TH form_post 3X ""
-.SH NAME
-\fBform_post\fR - write or erase forms from associated subwindows
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int post_form(FORM *form);
-.br
-int unpost_form(FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBpost_form\fR displays a form to its associated subwindow. To
-trigger physical display of the subwindow, use \fBrefresh\fR or some equivalent
-\fBcurses\fR routine (the implicit \fBdoupdate\fR triggered by an \fBcurses\fR
-input request will do).
-
-The function \fBunpost_form\fR erases form from its associated subwindow.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form has already been posted.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NO_ROOM\fR
-Form is too large for its window.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the form.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_requestname.3x b/ncurses-5.2/man/form_requestname.3x
deleted file mode 100644
index 8b3f13d..0000000
--- a/ncurses-5.2/man/form_requestname.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-'\" 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$
-.TH form_requestname 3X ""
-.SH NAME
-\fBform_requestname\fR - handle printable form request names
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-const char *form_request_name(int request);
-.br
-int form_request_by_name(const char *name);
-.br
-.SH DESCRIPTION
-The function \fBform_request_name\fR returns the printable name of a form
-request code.
-.br
-The function \fBform_request_by_name\fR searches in the name-table for a request
-with the given name and returns its request code. Otherwise E_NO_MATCH is returned.
-.SH RETURN VALUE
-\fBform_request_name\fR returns \fBNULL\fR on error and sets errno
-to \fBE_BAD_ARGUMENT\fR.
-.br
-\fBform_request_by_name\fR returns \fBE_NO_MATCH\fR on error.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.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 AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_userptr.3x b/ncurses-5.2/man/form_userptr.3x
deleted file mode 100644
index b11220b..0000000
--- a/ncurses-5.2/man/form_userptr.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH form_userptr 3X ""
-.SH NAME
-\fBform_userptr\fR - associate application data with a form item
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_form_userptr(FORM *form, void *userptr);
-.br
-void* form_userptr(const FORM *form);
-.br
-.SH DESCRIPTION
-Every form and every form item has a field that can be used to hold
-application-specific data (that is, the form-driver code leaves it alone).
-These functions get and set the form user pointer field.
-.SH RETURN VALUE
-The function \fBform_userptr\fR returns \fBNULL\fR on error.
-The function \fBset_form_userptr\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-
-The user pointer should be a void pointer. We leave it as a char pointer for
-SVr4 compatibility.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/form_win.3x b/ncurses-5.2/man/form_win.3x
deleted file mode 100644
index 951c814..0000000
--- a/ncurses-5.2/man/form_win.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-'\" 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$
-.TH form_win 3X ""
-.SH NAME
-\fBform_win\fR - make and break form window and subwindow associations
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_form_win(FORM *form, WINDOW *win);
-.br
-WINDOW *form_win(const FORM *form);
-.br
-int set_form_sub(FORM *form, WINDOW *sub);
-.br
-WINDOW *form_sub(const FORM *form);
-.br
-int scale_form(const FORM *form, int *rows, int *columns);
-.br
-.SH DESCRIPTION
-Every form has an associated pair of \fBcurses\fR 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 code uses \fBstdscr\fR for both.
-
-In the \fBset_\fR functions, window argument of \fBNULL\fR is treated as though
-it were \fBstsdcr\fR. A form argument of \fBNULL\fR is treated as a request
-to change the system default form window or subwindow.
-
-The function \fBscale_form\fR returns the minimum size required for the
-subwindow of \fIform\fR.
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Routines that return
-an integer return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form has already been posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the form.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/infocmp.1m b/ncurses-5.2/man/infocmp.1m
deleted file mode 100644
index 45f2632..0000000
--- a/ncurses-5.2/man/infocmp.1m
+++ /dev/null
@@ -1,378 +0,0 @@
-'\" 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$
-.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]
-.br
- [\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR]
-.br
- [\fItermname\fR...]
-.SH DESCRIPTION
-\fBinfocmp\fR can be used to compare a binary \fBterminfo\fR entry with other
-terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
-\fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
-binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean
-fields will be printed first, followed by the numeric fields, followed by the
-string fields.
-..
-.SS Default Options
-If no options are specified and zero or one \fItermnames\fR are specified, the
-\fB-I\fR option will be assumed. If more than one \fItermname\fR is specified,
-the \fB-d\fR option will be assumed.
-..
-.SS Comparison Options [-d] [-c] [-n]
-\fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal
-\fItermname\fR with each of the descriptions given by the entries for the other
-terminal's \fItermnames\fR. If a capability is defined for only one of the
-terminals, the value returned will depend on the type of the capability:
-\fBF\fR for boolean variables, \fB-1\fR for integer variables, and \fBNULL\fR
-for string variables.
-
-The \fB-d\fR option produces a list of each capability that is different
-between two entries. This option is useful to show the difference between two
-entries, created by different people, for the same or similar terminals.
-
-The \fB-c\fR option produces a list of each capability that is common between
-two entries. Capabilities that are not set are ignored. This option can be
-used as a quick check to see if the \fB-u\fR option is worth using.
-
-The \fB-n\fR option produces a list of each capability that is in neither
-entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR
-will be used for both of the \fItermnames\fR. This can be used as a quick
-check to see if anything was left out of a description.
-..
-.SS Source Listing Options [-I] [-L] [-C] [-r]
-The \fB-I\fR, \fB-L\fR, and \fB-C\fR options will produce a source listing for
-each terminal named.
-
-.TS
-center tab(/) ;
-l l .
-\fB-I\fR/use the \fBterminfo\fR names
-\fB-L\fR/use the long C variable name listed in <\fBterm.h\fR>
-\fB-C\fR/use the \fBtermcap\fR names
-\fB-r\fR/when using \fB-C\fR, put out all capabilities in \fBtermcap\fR form
-.TE
-
-If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
-used for the terminal name.
-
-The source produced by the \fB-C\fR option may be used directly as a
-\fBtermcap\fR entry, but not all parameterized strings can be changed to
-the \fBtermcap\fR format. \fBinfocmp\fR will attempt to convert most of the
-parameterized information, and anything not converted will be plainly marked in
-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 \fBtermcap\fR expects it. Mandatory
-padding (padding information with a trailing '/') will become optional.
-
-All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
-are derivable from other \fBterminfo\fR variables, will be output. Not all
-\fBterminfo\fR capabilities will be translated; only those variables which were
-part of \fBtermcap\fR will normally be output. Specifying the \fB-r\fR option
-will take off this restriction, allowing all capabilities to be output in
-\fItermcap\fR form.
-
-Note that because padding is collected to the beginning of the capability, not
-all capabilities are output. Mandatory padding is not supported. Because
-\fBtermcap\fR strings are not as flexible, it is not always possible to convert
-a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. A
-subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format
-will not necessarily reproduce the original \fBterminfo\fR
-source.
-
-Some common \fBterminfo\fR parameter sequences, their \fBtermcap\fR
-equivalents, and some terminal types which commonly have such sequences, are:
-
-.TS
-center tab(/) ;
-l c l
-l l l.
-\fBterminfo/termcap\fR/Representative Terminals
-=
-\fB%p1%c/%.\fR/adm
-\fB%p1%d/%d\fR/hp, ANSI standard, vt100
-\fB%p1%'x'%+%c/%+x\fR/concept
-\fB%i/%i\fRq/ANSI standard, vt100
-\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept
-\fB%p2\fR is printed before \fB%p1/%r\fR/hp
-.TE
-.SS Use= Option [-u]
-The \fB-u\fR option produces a \fBterminfo\fR source description of the first
-terminal \fItermname\fR which is relative to the sum of the descriptions given
-by the entries for the other terminals \fItermnames\fR. It does this by
-analyzing the differences between the first \fItermname\fR and the other
-\fItermnames\fR and producing a description with \fBuse=\fR fields for the
-other terminals. In this manner, it is possible to retrofit generic terminfo
-entries into a terminal's description. Or, if two similar terminals exist, but
-were coded at different times or by different people so that each description
-is a full description, using \fBinfocmp\fR will show what can be done to change
-one description to be relative to the other.
-
-A capability will get printed with an at-sign (@) if it no longer exists in the
-first \fItermname\fR, but one of the other \fItermname\fR entries contains a
-value for it. A capability's value gets printed if the value in the first
-\fItermname\fR is not found in any of the other \fItermname\fR entries, or if
-the first of the other \fItermname\fR entries that has this capability gives a
-different value for the capability than that in the first \fItermname\fR.
-
-The order of the other \fItermname\fR entries is significant. Since the
-terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
-specifying two \fBuse=\fR entries that contain differing entries for the same
-capabilities will produce different results depending on the order that the
-entries are given in. \fBinfocmp\fR will flag any such inconsistencies between
-the other \fItermname\fR entries as they are found.
-
-Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
-contains that capability will cause the second specification to be ignored.
-Using \fBinfocmp\fR to recreate a description can be a useful check to make
-sure that everything 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 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
-terminal is not found in that location, the system \fBterminfo\fR database,
-in \fB@TERMINFO@\fR, will be used. The options \fB-A\fR
-and \fB-B\fR may be used to override this location. The \fB-A\fR option will
-set \fBTERMINFO\fR for the first \fItermname\fR and the \fB-B\fR option will
-set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to
-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.
-.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
-\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
-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.
-The tables are all declared static, and are named according to the type
-and the name of the corresponding terminal entry.
-.sp
-Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP
-options was not needed; but support for extended names required making
-the arrays of terminal capabilities separate from the TERMTYPE structure.
-.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.
-.TP 5
-\fB-i\fR
-Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset
-(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. For each string, the
-code tries to analyze it into actions in terms of the other capabilities in the
-entry, certain X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC VT-series
-private modes (the set of recognized special sequences has been selected for
-completeness over the existing terminfo database). Each report line consists
-of the capability name, followed by a colon and space, followed by a printable
-expansion of the capability string with sections matching recognized actions
-translated into {}-bracketed descriptions. Here is a list of the DEC/ANSI
-special sequences recognized:
-
-.TS
-center tab(/) ;
-l l
-l l.
-Action/Meaning
-=
-RIS/full reset
-SC/save cursor
-RC/restore cursor
-LL/home-down
-RSR/reset scroll region
-
-ISO DEC G0/enable DEC graphics for G0
-ISO UK G0/enable UK chars for G0
-ISO US G0/enable US chars for G0
-ISO DEC G1/enable DEC graphics for G1
-ISO UK G1/enable UK chars for G1
-ISO US G1/enable US chars for G1
-
-DECPAM/application keypad mode
-DECPNM/normal keypad mode
-DECANSI/enter ANSI mode
-
-DEC[+-]CKM/application cursor keys
-DEC[+-]ANM/set VT52 mode
-DEC[+-]COLM/132-column mode
-DEC[+-]SCLM/smooth scroll
-DEC[+-]SCNM/reverse video mode
-DEC[+-]OM/origin mode
-DEC[+-]AWM/wraparound mode
-DEC[+-]ARM/auto-repeat mode
-.TE
-.sp
-It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
-Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
-REVERSE. All but NORMAL may be prefixed with `+' (turn on) or `-' (turn off).
-
-An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
-.TP 5
-\fB-p\fR
-Ignore padding specifications when comparing strings.
-.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.
-..
-.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-..
-.SH EXTENSIONS
-The
-\fB-E\fR,
-\fB-F\fR,
-\fB-G\fR,
-\fB-R\fR,
-\fB-T\fR,
-\fB-V\fR,
-\fB-a\fR,
-\fB-e\fR,
-\fB-f\fR,
-\fB-g\fR,
-\fB-i\fR,
-\fB-p\fR, and
-\fB-q\fR
-options are not supported in SVr4 curses.
-
-The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's.
-Actual BSD curses versions will have a more restricted set. To see only the
-4.4BSD set, use -r -RBSD.
-.SH BUGS
-The -F option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
-.SH SEE ALSO
-\fBinfocmp\fR(1M), \fBcaptoinfo\fR(1M), \fBinfotocap\fR(1M),
-\fBtic\fR(1M), \fBtoe\fR(1M),
-\fBcurses\fR(3X), \fBterminfo\fR(\*n).
-.SH AUTHOR
-Eric S. Raymond <esr@snark.thyrsus.com>
-and
-Thomas E. Dickey <dickey@herndon4.his.com>
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/infotocap.1m b/ncurses-5.2/man/infotocap.1m
deleted file mode 100644
index 840d9c0..0000000
--- a/ncurses-5.2/man/infotocap.1m
+++ /dev/null
@@ -1,74 +0,0 @@
-'\" 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$
-.TH infotocap 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
-.SH SYNOPSIS
-\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
-.SH DESCRIPTION
-\fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions. For each
-one found, an equivalent \fBtermcap\fR description is written to standard
-output. Terminfo \fBuse\fR capabilities are translated directly to termcap
-\fBtc\fR capabilities.
-.TP 5
-\fB-v\fR
-print out tracing information on standard error as the program runs.
-.TP 5
-\fB-V\fR
-print out the version of the program in use on standard error and exit.
-.TP 5
-\fB-1\fR
-cause the fields to print out one to a line. Otherwise, the fields
-will be printed several to a line to a maximum width of 60
-characters.
-.TP 5
-\fB-w\fR
-change the output to \fIwidth\fR characters.
-.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-.SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode.
-You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBtic\fR(1M),
-\fBinfocmp\fR(1M),
-\fBterminfo\fR(\*n)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/keybound.3x b/ncurses-5.2/man/keybound.3x
deleted file mode 100644
index 3cb269e..0000000
--- a/ncurses-5.2/man/keybound.3x
+++ /dev/null
@@ -1,67 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1999 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" 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> 1999
-.\"
-.\" $Id$
-.TH keyok 3X ""
-.SH NAME
-\fBkeybound\fP \- return definition of keycode
-..
-.SH SYNOPSIS
-\fB#include <curses.h>\fP
-
-\fBint 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 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 SEE ALSO
-\fBdefine_key\fR(3X),
-\fBkeyok\fR(3X).
-..
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/keyok.3x b/ncurses-5.2/man/keyok.3x
deleted file mode 100644
index 767ddf4..0000000
--- a/ncurses-5.2/man/keyok.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-.\"***************************************************************************
-.\" 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. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey <dickey@clark.net> 1997
-.\"
-.\" $Id$
-.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 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 PORTABILITY
-These routines are specific to ncurses. They were not supported on
-Version 7, BSD or System V implementations. It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
-..
-.SH SEE ALSO
-\fBdefine_key\fR(3X).
-..
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/make_sed.sh b/ncurses-5.2/man/make_sed.sh
deleted file mode 100755
index 5e383c3..0000000
--- a/ncurses-5.2/man/make_sed.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-# Construct a sed-script to perform renaming within man-pages. Originally
-# written in much simpler form, this one accounts for the common cases of
-# section-names in man-pages.
-
-if test $# != 1 ; then
- echo '? expected a single filename'
- exit 1
-fi
-
-COL=col$$
-INPUT=input$$
-UPPER=upper$$
-SCRIPT=script$$
-RESULT=result$$
-rm -f $UPPER $SCRIPT $RESULT
-trap "rm -f $COL.* $INPUT $UPPER $SCRIPT $RESULT" 0 1 2 5 15
-fgrep -v \# $1 | \
-sed -e 's/[ ]\+/ /g' >$INPUT
-
-for F in 1 2 3 4
-do
-sed -e 's/\./ /g' $INPUT | \
-cut -f $F > $COL.$F
-done
-for F in 2 4
-do
- tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ <$COL.$F >$UPPER
- mv $UPPER $COL.$F
-done
-paste $COL.* | \
-sed -e 's/^/s\/\\</' \
- -e 's/$/\//' >$UPPER
-
-# Do the TH lines
-sed -e 's/\//\/TH /' \
- -e 's/ / /' \
- -e 's/ / ""\/TH /' \
- -e 's/ / /' \
- -e 's/\/$/ ""\//' \
- $UPPER >>$RESULT
-
-# Do the embedded references
-sed -e 's/</<fB/' \
- -e 's/ /\\\\fR(/' \
- -e 's/ /)\/fB/' \
- -e 's/ /\\\\fR(/' \
- -e 's/\/$/)\//' \
- $UPPER >>$RESULT
-
-# Finally, send the result to standard output
-cat $RESULT
diff --git a/ncurses-5.2/man/man_db.renames b/ncurses-5.2/man/man_db.renames
deleted file mode 100644
index a21b1cf..0000000
--- a/ncurses-5.2/man/man_db.renames
+++ /dev/null
@@ -1,117 +0,0 @@
-# $Id$
-# Manual-page renamings for the man_db program
-#
-captoinfo.1m captoinfo.1
-clear.1 clear.1
-curs_addch.3x addch.3ncurses
-curs_addchstr.3x addchstr.3ncurses
-curs_addstr.3x addstr.3ncurses
-curs_attr.3x attr.3ncurses
-curs_beep.3x beep.3ncurses
-curs_bkgd.3x bkgd.3ncurses
-curs_border.3x border.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_getch.3x getch.3ncurses
-curs_getstr.3x getstr.3ncurses
-curs_getyx.3x getyx.3ncurses
-curs_inch.3x inch.3ncurses
-curs_inchstr.3x inchstr.3ncurses
-curs_initscr.3x initscr.3ncurses
-curs_inopts.3x inopts.3ncurses
-curs_insch.3x insch.3ncurses
-curs_insstr.3x insstr.3ncurses
-curs_instr.3x instr.3ncurses
-curs_kernel.3x kernel.3ncurses
-curs_mouse.3x mouse.3ncurses
-curs_move.3x move.3ncurses
-curs_outopts.3x outopts.3ncurses
-curs_overlay.3x overlay.3ncurses
-curs_pad.3x pad.3ncurses
-curs_print.3x print.3ncurses
-curs_printw.3x printw.3ncurses
-curs_refresh.3x refresh.3ncurses
-curs_scanw.3x scanw.3ncurses
-curs_scr_dump.3x scr_dump.3ncurses
-curs_scroll.3x scroll.3ncurses
-curs_slk.3x slk.3ncurses
-curs_termattrs.3x termattrs.3ncurses
-curs_termcap.3x termcap.3ncurses
-curs_terminfo.3x terminfo.3ncurses
-curs_touch.3x touch.3ncurses
-curs_trace.3x trace.3ncurses
-curs_util.3x util.3ncurses
-curs_window.3x window.3ncurses
-curses.3x ncurses.3ncurses
-default_colors.3x default_colors.3ncurses
-define_key.3x define_key.3ncurses
-form.3x form.3form
-form_cursor.3x cursor.3form
-form_data.3x data.3form
-form_driver.3x driver.3form
-form_field.3x field.3form
-form_field_attributes.3x field_attributes.3form
-form_field_buffer.3x field_buffer.3form
-form_field_info.3x field_info.3form
-form_field_just.3x field_just.3form
-form_field_new.3x field_new.3form
-form_field_opts.3x field_opts.3form
-form_field_userptr.3x field_userptr.3form
-form_field_validation.3x field_validation.3form
-form_fieldtype.3x fieldtype.3form
-form_hook.3x hook.3form
-form_new.3x new.3form
-form_new_page.3x new_page.3form
-form_opts.3x opts.3form
-form_page.3x page.3form
-form_post.3x post.3form
-form_requestname.3x requestname.3form
-form_userptr.3x userptr.3form
-form_win.3x win.3form
-infocmp.1m infocmp.1
-infotocap.1m infotocap.1
-keybound.3x keybound.3ncurses
-keyok.3x keyok.3ncurses
-menu.3x menu.3menu
-menu_attributes.3x attributes.3menu
-menu_cursor.3x cursor.3menu
-menu_driver.3x driver.3menu
-menu_format.3x format.3menu
-menu_hook.3x hook.3menu
-menu_items.3x items.3menu
-menu_mark.3x mark.3menu
-menu_new.3x new.3menu
-menu_opts.3x opts.3menu
-menu_pattern.3x pattern.3menu
-menu_post.3x post.3menu
-menu_requestname.3x requestname.3menu
-menu_spacing.3x spacing.3menu
-menu_userptr.3x userptr.3menu
-menu_win.3x win.3menu
-mitem_current.3x menu_current.3menu
-mitem_name.3x menu_name.3menu
-mitem_new.3x menu_new.3menu
-mitem_opts.3x menu_opts.3menu
-mitem_userptr.3x menu_userptr.3menu
-mitem_value.3x menu_value.3menu
-mitem_visible.3x menu_visible.3menu
-ncurses.3x ncurses.3ncurses
-panel.3x panel.3curses
-printf.3s printf.3
-putc.3s putc.3
-resizeterm.3x resizeterm.3ncurses
-scanf.3s scanf.3
-system.3s system.3
-term.5 term.5
-term.7 term.7
-terminfo.5 terminfo.5
-terminfo.\\\*n terminfo.5
-tic.1m tic.1
-toe.1m toe.1
-tput.1 tput.1
-tset.1 tset.1
-vprintf.3s vprintf.3
-wresize.3x wresize.3ncurses
diff --git a/ncurses-5.2/man/manlinks.sed b/ncurses-5.2/man/manlinks.sed
deleted file mode 100644
index 127ae86..0000000
--- a/ncurses-5.2/man/manlinks.sed
+++ /dev/null
@@ -1,68 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-# Given a manpage (nroff) as input, writes a list of the names that are
-# listed in the "NAME" section, i.e., the names that we would like to use
-# as aliases for the manpage -T.Dickey
-/^'\\"/d
-/\.\\"/d
-/^\.br/d
-/^\.sp/d
-s/\\f.//g
-s/[:,]/ /g
-s/^[ ][ ]*//
-s/[ ][ ]*$//
-s/[ ][ ]*/ /g
-s/\.SH[ ][ ]*/.SH_(/
-#
-/^\.SH_(NAME/,/^\.SH_(SYNOPSIS/{
-s/\\-.*/ -/
-/ -/{
- s/ -.*//
- s/ /\
-/g
-}
-/^-/{
- d
-}
-s/ /\
-/g
-}
-/^\.SH_(SYNOPSIS/,/^\.SH_(DESCRIPTION/{
- /^#/d
- /^[^(]*$/d
- s/^\([^ (]* [^ (]* [*]*\)//g
- s/^\([^ (]* [*]*\)//g
- s/\.SH_(/.SH_/
- s/(.*//
- s/\.SH_/.SH_(/
-}
-/^\.SH_(DESCRIPTION/,${
- d
-}
-/^\./d
diff --git a/ncurses-5.2/man/menu.3x b/ncurses-5.2/man/menu.3x
deleted file mode 100644
index 82d1e5a..0000000
--- a/ncurses-5.2/man/menu.3x
+++ /dev/null
@@ -1,190 +0,0 @@
-'\" 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$
-.TH menu 3X ""
-.SH NAME
-\fBmenu\fR - curses extension for programming menus
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-.SH DESCRIPTION
-The \fBmenu\fR library provides terminal-independent facilities for composing
-menu systems on character-cell terminals. The library includes: item routines,
-which create and modify menu items; and menu routines, which group items into
-menus, display menus on the screen, and handle interaction with the user.
-
-The \fBmenu\fR library uses the \fBcurses\fR libraries, and a curses
-initialization routine such as \fBinitscr\fR must be called before using any of
-these functions. To use the \fBmenu\fR library, link with the options
-\fB-lmenu -lcurses\fR.
-
-.SS Current Default Values for Item Attributes
-
-The \fBmenu\fR library maintains a default value for item attributes. You can
-get or set this default by calling the appropriate \fBget_\fR or \fBset_\fR
-routine with a \fBNULL\fR item pointer. Changing this default with a
-\fBset_\fR function affects future item creations, but does not change the
-rendering of items already created.
-
-.SS Routine Name Index
-
-The following table lists each \fBmenu\fR routine and the name of
-the manual page on which it is described.
-
-.TS
-l l .
-\fBcurses\fR Routine Name Manual Page Name
-=
-current_item \fBmitem_current\fR(3X)
-free_item \fBmitem_new\fR(3X)
-free_menu \fBmenu_new\fR(3X)
-item_count \fBmenu_items\fR(3X)
-item_description \fBmitem_name\fR(3X)
-item_index \fBmitem_current\fR(3X)
-item_init \fBmenu_hook\fR(3X)
-item_name \fBmitem_name\fR(3X)
-item_opts \fBmitem_opts\fR(3X)
-item_opts_off \fBmitem_opts\fR(3X)
-item_opts_on \fBmitem_opts\fR(3X)
-item_term \fBmenu_hook\fR(3X)
-item_userptr \fBmitem_userptr\fR(3X)
-item_value \fBmitem_value\fR(3X)
-item_visible \fBmitem_visible\fR(3X)
-menu_back \fBmenu_attributes\fR(3X)
-menu_driver \fBmenu_driver\fR(3X)
-menu_fore \fBmenu_attributes\fR(3X)
-menu_format \fBmenu_format\fR(3X)
-menu_grey \fBmenu_attributes\fR(3X)
-menu_init \fBmenu_hook\fR(3X)
-menu_items \fBmenu_items\fR(3X)
-menu_mark \fBmenu_mark\fR(3X)
-menu_opts \fBmenu_opts\fR(3X)
-menu_opts_off \fBmenu_opts\fR(3X)
-menu_opts_on \fBmenu_opts\fR(3X)
-menu_pad \fBmenu_attributes\fR(3X)
-menu_pattern \fBmenu_pattern\fR(3X)
-menu_request_by_name \fBmenu_requestname\fR(3X)
-menu_request_name \fBmenu_requestname\fR(3X)
-menu_spacing \fBmenu_spacing\fR(3X)
-menu_sub \fBmenu_win\fR(3X)
-menu_term \fBmenu_hook\fR(3X)
-menu_userptr \fBmenu_userptr\fR(3X)
-menu_win \fBmenu_win\fR(3X)
-new_item \fBmitem_new\fR(3X)
-new_menu \fBmenu_new\fR(3X)
-pos_menu_cursor \fBmenu_cursor\fR(3X)
-post_menu \fBmenu_post\fR(3X)
-scale_menu \fBmenu_win\fR(3X)
-set_current_item \fBmitem_current\fR(3X)
-set_item_init \fBmenu_hook\fR(3X)
-set_item_opts \fBmitem_opts\fR(3X)
-set_item_term \fBmenu_hook\fR(3X)
-set_item_userptr \fBmitem_userptr\fR(3X)
-set_item_value \fBmitem_value\fR(3X)
-set_menu_back \fBmenu_attributes\fR(3X)
-set_menu_fore \fBmenu_attributes\fR(3X)
-set_menu_format \fBmenu_format\fR(3X)
-set_menu_grey \fBmenu_attributes\fR(3X)
-set_menu_init \fBmenu_hook\fR(3X)
-set_menu_items \fBmenu_items\fR(3X)
-set_menu_mark \fBmenu_mark\fR(3X)
-set_menu_opts \fBmitem_opts\fR(3X)
-set_menu_pad \fBmenu_attributes\fR(3X)
-set_menu_pattern \fBmenu_pattern\fR(3X)
-set_menu_spacing \fBmenu_spacing\fR(3X)
-set_menu_sub \fBmenu_win\fR(3X)
-set_menu_term \fBmenu_hook\fR(3X)
-set_menu_userptr \fBmenu_userptr\fR(3X)
-set_menu_win \fBmenu_win\fR(3X)
-set_top_row \fBmitem_current\fR(3X)
-top_row \fBmitem_current\fR(3X)
-unpost_menu \fBmenu_post\fR(3X)
-.TE
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Routines that return
-an integer return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu is already posted.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NO_ROOM\fR
-Menu is too large for its window.
-.TP 5
-\fBE_NOT_POSTED\fR
-The menu has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The menu driver code saw an unknown request code.
-.TP 5
-\fBE_NO_MATCH\fR
-Character failed to match.
-.TP 5
-\fBE_NOT_SELECTABLE\fR
-The designated item cannot be selected.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.TP 5
-\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
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
-
-In your library list, libmenu.a should be before libncurses.a; that is,
-you want to say `-lmenu -lncurses', not the other way around (which would
-give you a link error using GNU \fBld\fR(1) and many other linkers).
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_attributes.3x b/ncurses-5.2/man/menu_attributes.3x
deleted file mode 100644
index 1f64e86..0000000
--- a/ncurses-5.2/man/menu_attributes.3x
+++ /dev/null
@@ -1,100 +0,0 @@
-'\" 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$
-.TH menu_attributes 3X ""
-.SH NAME
-\fBmenu_attributes\fR - color and attribute control for menus
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_fore(MENU *menu, chtype attr);
-.br
-chtype menu_fore(const MENU *menu);
-.br
-int set_menu_back(MENU *menu, chtype attr);
-.br
-chtype menu_back(const MENU *menu);
-.br
-int set_menu_grey(MENU *menu, chtype attr);
-.br
-chtype menu_grey(const MENU *menu);
-.br
-int set_menu_pad(MENU *menu, int pad);
-.br
-int menu_pad(const MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBset_menu_fore\fR sets the foreground attribute of
-\fImenu\fR. This is the highlight used for selected menu items.
-\fBmenu_fore\fR returns the foreground attribute. The default
-is \fBA_STANDOUT\fR.
-
-The function \fBset_menu_back\fR sets the background attribute of
-\fImenu\fR. This is the highlight used for selectable (but not currently
-selected) menu items. The function \fBmenu_back\fR returns the background
-attribute. The default is \fBA_NORMAL\fR.
-
-The function \fBset_menu_grey\fR sets the grey attribute of \fImenu\fR. This is
-the highlight used for un-selectable menu items in menus that permit more than
-one selection. The function \fBmenu_grey\fR returns the grey attribute.
-The default is \fBA_UNDERLINE\fR.
-
-The function \fBset_menu_pad\fR sets the character used to fill the space
-between the name and description parts of a menu item. \fBmenu_pad\fR returns
-the given menu's pad character. The default is a blank.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\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
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_cursor.3x b/ncurses-5.2/man/menu_cursor.3x
deleted file mode 100644
index d0e9da6..0000000
--- a/ncurses-5.2/man/menu_cursor.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH menu_cursor 3X ""
-.SH NAME
-\fBmenu_cursor\fR - position a menu's cursor
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int pos_menu_cursor(const MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBpos_menu_cursor\fR restores the cursor to the current position
-associated with the menu's selected item. This is useful after \fBcurses\fR
-routines have been called to do screen-painting in response to a menu select.
-.SH RETURN VALUE
-This routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_NOT_POSTED\fR
-The menu has not been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_driver.3x b/ncurses-5.2/man/menu_driver.3x
deleted file mode 100644
index f2b171b..0000000
--- a/ncurses-5.2/man/menu_driver.3x
+++ /dev/null
@@ -1,170 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH menu_driver 3X ""
-.SH NAME
-\fBmenu_driver\fR - command-processing loop of the menu system
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int menu_driver(MENU *menu, int c);
-.br
-.SH DESCRIPTION
-Once a menu has been posted (displayed), you should funnel input events to it
-through \fBmenu_driver\fR. This routine has three major input cases; either
-the input is a menu navigation request, it's a printable ASCII character or it
-is the KEY_MOUSE special key associated with an mouse event.
-The menu driver requests are as follows:
-.TP 5
-REQ_LEFT_ITEM
-Move left to an item.
-.TP 5
-REQ_RIGHT_ITEM
-Move right to an item.
-.TP 5
-REQ_UP_ITEM
-Move up to an item.
-.TP 5
-REQ_DOWN_ITEM
-Move down to an item.
-.TP 5
-REQ_SCR_ULINE
-Scroll up a line.
-.TP 5
-REQ_SCR_DLINE
-Scroll down a line.
-.TP 5
-REQ_SCR_DPAGE
-Scroll down a page.
-.TP 5
-REQ_SCR_UPAGE
-Scroll up a page.
-.TP 5
-REQ_FIRST_ITEM
-Move to the first item.
-.TP 5
-REQ_LAST_ITEM
-Move to the last item.
-.TP 5
-REQ_NEXT_ITEM
-Move to the next item.
-.TP 5
-REQ_PREV_ITEM
-Move to the previous item.
-.TP 5
-REQ_TOGGLE_ITEM
-Select/deselect an item.
-.TP 5
-REQ_CLEAR_PATTERN
-Clear the menu pattern buffer.
-.TP 5
-REQ_BACK_PATTERN
-Delete the previous character from the pattern buffer.
-.TP 5
-REQ_NEXT_MATCH
-Move to the next item matching the pattern match.
-.TP 5
-REQ_PREV_MATCH
-Move to the previous item matching the pattern match.
-.PP
-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, \fBmenu_driver\fR returns
-\fBE_NO_MATCH\fR and deletes the appended character from the buffer.
-.PP
-If the second argument is one of the above pre-defined requests, the
-corresponding action is performed.
-.PP
-If the second argument is the KEY_MOUSE special key, the associated
-mouse event is translated into one of the above pre-defined requests.
-Currently only clicks in the user window (e.g. inside the menu display
-area or the decoration window) are handled. If you click above the
-display region of the menu, a REQ_SCR_ULINE is generated, if you
-doubleclick a REQ_SCR_UPAGE is generated and if you tripleclick a
-REQ_FIRST_ITEM is generated. If you click below the display region of
-the menu, a REQ_SCR_DLINE is generated, if you doubleclick a REQ_SCR_DPAGE
-is generated and if you tripleclick a REQ_LAST_ITEM is generated. If you
-click at an item inside the display area of the menu, the menu cursor
-is positioned to that item. If you double-click at an item a REQ_TOGGLE_ITEM
-is generated and \fBE_UNKNOWN_COMMAND\fR is returned. This return value makes
-sense, because a double click usually means that an item-specific action should
-be returned. It's exactly the purpose of this return value to signal that an
-application specific command should be executed. If a translation
-into a request was done, \fBmenu_driver\fR returns the result of this request.
-If you clicked outside the user window or the mouse event couldn't be translated
-into a menu request an \fBE_REQUEST_DENIED\fR is returned.
-.PP
-If the second argument is neither printable ASCII nor one of the above
-pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific
-command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
-should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
-pre-defined requests.
-.SH RETURN VALUE
-\fBmenu_driver\fR return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NOT_POSTED\fR
-The menu has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The menu driver code saw an unknown request code.
-.TP 5
-\fBE_NO_MATCH\fR
-Character failed to match.
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The menu driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header files
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions. The support for mouse events is ncurses specific.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_format.3x b/ncurses-5.2/man/menu_format.3x
deleted file mode 100644
index fb3db93..0000000
--- a/ncurses-5.2/man/menu_format.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH menu_format 3X ""
-.SH NAME
-\fBmenu_format\fR - set and get menu sizes
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_format(MENU *menu, int rows, int cols);
-.br
-int 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
-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, \fBpost_menu()\fR will fail.
-
-The default format is 16 rows, 1 column. Calling \fBset_menu_format\fR with a
-null menu pointer will change this default. A zero row or column argument to
-\fBset_menu_format\fR is interpreted as a request not to change the current
-value.
-
-The function \fBmenu_format\fR returns the maximum-size constraints for the
-given menu into the storage addressed by \fBrows\fR and \fBcols\fR.
-.SH RETURN VALUE
-These routines returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu is already posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_hook.3x b/ncurses-5.2/man/menu_hook.3x
deleted file mode 100644
index 17561fd..0000000
--- a/ncurses-5.2/man/menu_hook.3x
+++ /dev/null
@@ -1,101 +0,0 @@
-'\" 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$
-.TH menu_hook 3X ""
-.SH NAME
-\fBmenu_hook\fR - set hooks for automatic invocation by applications
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_item_init(MENU *menu, void (*func)(MENU *));
-.br
-void (*)(MENU *) item_init(const MENU *menu);
-.br
-int set_item_term(MENU *menu, void (*func)(MENU *));
-.br
-void (*)(MENU *) item_term(const MENU *menu);
-.br
-int set_menu_init(MENU *menu, void (*func)(MENU *));
-.br
-void (*)(MENU *) menu_init(const MENU *menu);
-.br
-int set_menu_term(MENU *menu, void (*func)(MENU *));
-.br
-void (*)(MENU *) menu_term(const MENU *menu);
-.br
-.SH DESCRIPTION
-These functions make it possible to set hook functions to be called at various
-points in the automatic processing of input event codes by \fBmenu_driver\fR.
-
-The function \fBset_item_init\fR sets a hook to be called at menu-post time and
-each time the selected item changes (after the change). \fBitem_init\fR
-returns the current item init hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_item_term\fR sets a hook to be called at menu-unpost time
-and each time the selected item changes (before the change). \fBitem_term\fR
-returns the current item term hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_menu_init\fR sets a hook to be called at menu-post time and
-just after the top row on the menu changes once it is posted. \fBmenu_init\fR
-returns the current menu init hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_menu_term\fR sets a hook to be called at menu-unpost time
-and just before the top row on the menu changes once it is posted.
-\fBmenu_term\fR returns the current menu term hook, if any (\fBNULL\fR if there
-is no such hook).
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Other routines
-return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_items.3x b/ncurses-5.2/man/menu_items.3x
deleted file mode 100644
index 3c9b9a5..0000000
--- a/ncurses-5.2/man/menu_items.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-'\" 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$
-.TH menu_items 3X ""
-.SH NAME
-\fBmenu_items\fR - make and break connections between items and menus
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_items(MENU *menu, ITEM **items);
-.br
-ITEM **menu_items(const MENU *menu);
-.br
-int item_count(const MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBset_menu_items\fR changes the item pointer array of the given
-\fImenu\fR. The array must be terminated by a \fBNULL\fR.
-
-The function \fBmenu_items\fR returns the item array of the given menu.
-
-The function \fBitem_count\fR returns the count of items in \fImenu\fR.
-.SH RETURN VALUES
-The function \fBmenu_items\fR returns \fBNULL\fR on error.
-
-The function \fBitem_count\fR returns \fBERR\fR (the general \fBcurses\fR error
-return value) on error.
-
-The function \fBset_menu_items\fR returns one of the following codes on error:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu is already posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-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 \fBitem_count\fR error value
-as -1 (which is the value of \fBERR\fR).
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_mark.3x b/ncurses-5.2/man/menu_mark.3x
deleted file mode 100644
index bae3805..0000000
--- a/ncurses-5.2/man/menu_mark.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH menu_mark 3X ""
-.SH NAME
-\fBmenu_mark\fR - get and set the menu mark string
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_mark(MENU *menu, const char *mark);
-.br
-const char *menu_mark(const MENU *menu);
-.br
-.SH DESCRIPTION
-In order to make menu selections visible on older terminals without
-highlighting or color capability, the menu library marks selected items
-in a menu with a prefix string.
-
-The function \fBset_menu_mark\fR sets the mark string for the given menu.
-Calling \fBset_menu_mark\fR 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.
-
-The default string is "-" (a dash). Calling \fBset_menu_mark\fR with
-a \fBNULL\fR menu argument will change this default.
-
-The function \fBmenu_mark\fR returns the menu's mark string (or \fBNULL\fR if
-there is none).
-.SH RETURN VALUE
-The function \fBmenu_mark\fR returns \fBNULL\fR on error. The function
-\fBset_menu_mark\fR may return the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_new.3x b/ncurses-5.2/man/menu_new.3x
deleted file mode 100644
index 27e1a59..0000000
--- a/ncurses-5.2/man/menu_new.3x
+++ /dev/null
@@ -1,79 +0,0 @@
-'\" 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$
-.TH menu_new 3X ""
-.SH NAME
-\fBmenu_new\fR - create and destroy menus
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-MENU *new_menu(ITEM **items);
-.br
-int free_menu(MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBnew_menu\fR creates a new menu connected to a specified item
-pointer array (which must be \fBNULL\fR-terminated).
-
-The function \fBfree_menu\fR disconnects \fImenu\fR from its item array
-and frees the storage allocated for the menu.
-.SH RETURN VALUE
-The function \fBnew_menu\fR returns \fBNULL\fR on error.
-
-The function \fBfree_menu\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu has already been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_opts.3x b/ncurses-5.2/man/menu_opts.3x
deleted file mode 100644
index 0e6eee1..0000000
--- a/ncurses-5.2/man/menu_opts.3x
+++ /dev/null
@@ -1,104 +0,0 @@
-'\" 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$
-.TH menu_opts 3X ""
-.SH NAME
-\fBmenu_opts\fR - set and get menu options
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_opts(MENU *menu, OPTIONS opts);
-.br
-int menu_opts_on(MENU *menu, OPTIONS opts);
-.br
-int menu_opts_off(MENU *menu, OPTIONS opts);
-.br
-OPTIONS menu_opts(const MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBset_menu_opts\fR sets all the given menu's option bits (menu
-option bits may be logically-OR'ed together).
-
-The function \fBmenu_opts_on\fR turns on the given option bits, and leaves
-others alone.
-
-The function \fBmenu_opts_off\fR turns off the given option bits, and leaves
-others alone.
-
-The function \fBmenu_opts\fR returns the menu's current option bits.
-
-The following options are defined (all are on by default):
-.TP 5
-O_ONEVALUE
-Only one item can be selected for this menu.
-.TP 5
-O_SHOWDESC
-Display the item descriptions when the menu is posted.
-.TP 5
-O_ROWMAJOR
-Display the menu in row-major order.
-.TP 5
-O_IGNORECASE
-Ignore the case when pattern-matching.
-.TP 5
-O_SHOWMATCH
-Move the cursor to within the item name while pattern-matching.
-.TP 5
-O_NONCYCLIC
-Don't wrap around next-item and previous-item,
-requests to the other end of the menu.
-.SH RETURN VALUE
-Except for \fBmenu_opts\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_POSTED\fR
-The menu is already posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_pattern.3x b/ncurses-5.2/man/menu_pattern.3x
deleted file mode 100644
index 46c8ef1..0000000
--- a/ncurses-5.2/man/menu_pattern.3x
+++ /dev/null
@@ -1,82 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH menu_pattern 3X ""
-.SH NAME
-\fBmenu_pattern\fR - get and set a menu's pattern buffer
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_pattern(MENU *menu, const char *pattern);
-.br
-char *menu_pattern(const MENU *menu);
-.br
-.SH DESCRIPTION
-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 \fBmenu_driver\fR(3X).
-
-The function \fBset_menu_pattern\fR sets the pattern buffer for the given menu
-and tries to find the first matching item. If it succeeds, that item becomes
-current; if not, the current item does not change.
-
-The function \fBmenu_pattern\fR returns the pattern buffer of the given
-\fImenu\fR.
-.SH RETURN VALUE
-The function \fBmenu_pattern\fR returns \fBNULL\fR on error. The function
-\fBset_menu_pattern\fR may return the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_NO_MATCH\fR
-Character failed to match.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_post.3x b/ncurses-5.2/man/menu_post.3x
deleted file mode 100644
index f66161d..0000000
--- a/ncurses-5.2/man/menu_post.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-'\" 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$
-.TH menu_post 3X ""
-.SH NAME
-\fBmenu_post\fR - write or erase menus from associated subwindows
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int post_menu(MENU *menu);
-.br
-int unpost_menu(MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBpost_menu\fR displays a menu to its associated subwindow. To
-trigger physical display of the subwindow, use \fBrefresh\fR or some equivalent
-\fBcurses\fR routine (the implicit \fBdoupdate\fR triggered by an \fBcurses\fR
-input request will do). \fBpost_menu\fR resets the selection status of all items.
-
-The function \fBunpost_menu\fR erases menu from its associated subwindow.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu has already been posted.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NO_ROOM\fR
-Menu is too large for its window. You should consider to use
-\fBset_menu_format()\fR to solve the problem.
-.TP 5
-\fBE_NOT_POSTED\fR
-The menu has not been posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_requestname.3x b/ncurses-5.2/man/menu_requestname.3x
deleted file mode 100644
index 906d6bf..0000000
--- a/ncurses-5.2/man/menu_requestname.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-'\" 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$
-.TH menu_requestname 3X ""
-.SH NAME
-\fBmenu_requestname\fR - handle printable menu request names
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-const char *menu_request_name(int request);
-.br
-int menu_request_by_name(const char *name);
-.br
-.SH DESCRIPTION
-The function \fBmenu_request_name\fR returns the printable name of a menu
-request code.
-.br
-The function \fBmenu_request_by_name\fR searches in the name-table for a request
-with the given name and returns its request code. Otherwise E_NO_MATCH is returned.
-.SH RETURN VALUE
-\fBmenu_request_name\fR returns \fBNULL\fR on error and sets errno
-to \fBE_BAD_ARGUMENT\fR.
-.br
-\fBmenu_request_by_name\fR returns \fBE_NO_MATCH\fR on error.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.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 AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_spacing.3x b/ncurses-5.2/man/menu_spacing.3x
deleted file mode 100644
index 93135ef..0000000
--- a/ncurses-5.2/man/menu_spacing.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH menu_spacing 3X ""
-.SH NAME
-\fBmenu_spacing\fR - Control spacing between menu items.
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_spacing(MENU *menu,
- int spc_description
- int spc_rows,
- int spc_columns);
-.br
-int menu_spacing(const MENU *menu,
- int* spc_description
- int* spc_rows,
- int* spc_columns);
-.br
-.SH DESCRIPTION
-The function \fBset_menu_spacing\fR sets the spacing informations for the menu.
-\fBspc_description\fR controls the number of spaces between an item name and an item
-description. It must not be larger than \fBTABSIZE\fR. The menu system puts in the
-middle of this spacing area the pad character. The remaining parts are filled with
-spaces.
-\fBspc_rows\fR controls the number of rows that are used for an item. It must not be
-larger than 3. The menu system inserts then blank lines between item rows, these lines
-will contain the pad character in the appropriate positions.
-\fBspc_columns\fR controls the number of blanks between columns of items. It must not
-be larger than TABSIZE.
-A value of 0 for all the spacing values resets them to the default, which is 1 for all
-of them.
-.br
-The function \fBmenu_spacing\fR passes back the spacing info for the menu. If a
-pointer is NULL, this specific info is simply not returned.
-.SH RETURN VALUE
-Both routines return \fBE_OK\fR on success. \fBset_menu_spacing\fR may return
-\fBE_POSTED\fR if the menu is posted, or \fBE_BAD_ARGUMENT\fR if one of the
-spacing values is out of range.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.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 AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_userptr.3x b/ncurses-5.2/man/menu_userptr.3x
deleted file mode 100644
index 646f3f9..0000000
--- a/ncurses-5.2/man/menu_userptr.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH menu_userptr 3X ""
-.SH NAME
-\fBmenu_userptr\fR - associate application data with a menu item
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_userptr(MENU *menu, void *userptr);
-.br
-void *menu_userptr(const MENU *menu);
-.br
-.SH DESCRIPTION
-Every menu and every menu item has a field that can be used to hold
-application-specific data (that is, the menu-driver code leaves it alone).
-These functions get and set the menu user pointer field.
-.SH RETURN VALUE
-Except for \fBmenu_userptr\fR (which returns \fBNULL\fR on error), each
-function returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-
-The user pointer should be a void pointer. We leave it as a char pointer for
-SVr4 compatibility.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/menu_win.3x b/ncurses-5.2/man/menu_win.3x
deleted file mode 100644
index b4f2f32..0000000
--- a/ncurses-5.2/man/menu_win.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-'\" 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$
-.TH menu_win 3X ""
-.SH NAME
-\fBmenu_win\fR - make and break menu window and subwindow associations
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_win(MENU *menu, WINDOW *win);
-.br
-WINDOW *menu_win(const MENU *menu);
-.br
-int set_menu_sub(MENU *menu, WINDOW *sub);
-.br
-WINDOW *menu_sub(const MENU *menu);
-.br
-int scale_menu(const MENU *menu, int *rows, int *columns);
-.br
-.SH DESCRIPTION
-Every menu has an associated pair of \fBcurses\fR 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 code uses \fBstdscr\fR for both.
-
-In the \fBset_\fR functions, window argument of \fBNULL\fR is treated as though
-it were \fBstsdcr\fR. A menu argument of \fBNULL\fR is treated as a request
-to change the system default menu window or subwindow.
-
-The function \fBscale_menu\fR returns the minimum size required for the
-subwindow of \fImenu\fR.
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Routines that return
-an integer return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu has already been posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/mitem_current.3x b/ncurses-5.2/man/mitem_current.3x
deleted file mode 100644
index fa6ede6..0000000
--- a/ncurses-5.2/man/mitem_current.3x
+++ /dev/null
@@ -1,101 +0,0 @@
-'\" 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$
-.TH mitem_current 3X ""
-.SH NAME
-\fBmitem_current\fR - set and get current_menu_item
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_current_item(MENU *menu, const ITEM *item);
-.br
-ITEM *current_item(const MENU *menu);
-.br
-int set_top_row(MENU *menu, int row);
-.br
-int top_row(const MENU *menu);
-.br
-int item_index(const ITEM *item);
-.br
-.SH DESCRIPTION
-The function \fBset_current_item\fR sets the current item (the item on which
-the menu cursor is positioned). \fBcurrent_item\fR returns a pointer to the
-current item in the given menu.
-
-The function \fBset_top_row\fR sets the top row of the menu to show the given
-row (the top row is initially 0, and is reset to this value whenever the
-\fBO_ROWMAJOR\fR option is toggled). The item leftmost on the given row
-becomes current. The function \fBtop_row\fR returns the number of the top menu
-row being displayed.
-
-The function \fBitem_index\fR returns the (zero-origin) index of \fIitem\fR in
-the menu's item pointer list.
-.SH RETURN VALUE
-\fBcurrent_item\fR returns \fBNULL\fR on error.
-
-\fBtop_row\fR and \fBitem_index\fR return \fBERR\fR (the general \fBcurses\fR
-error value) on error.
-
-\fBset_current_item\fR and \fBset_top_row\fR return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-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 \fBtop_row\fR and
-\fBindex_item\fR error value as -1 (which is the value of \fBERR\fR).
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/mitem_name.3x b/ncurses-5.2/man/mitem_name.3x
deleted file mode 100644
index 76711e9..0000000
--- a/ncurses-5.2/man/mitem_name.3x
+++ /dev/null
@@ -1,64 +0,0 @@
-'\" 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$
-.TH mitem_name 3X ""
-.SH NAME
-\fBmitem_name\fR - get menu item name and description fields
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-const char *item_name(const ITEM *item);
-.br
-const char *item_description(const ITEM *item);
-.br
-.SH DESCRIPTION
-The function \fBitem_name\fR returns the name part of the given item.
-.br
-The function \fBitem_description\fR returns the description part of the given
-item.
-.SH RETURN VALUE
-These routines returns \fBNULL\fR on error.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/mitem_new.3x b/ncurses-5.2/man/mitem_new.3x
deleted file mode 100644
index 4fb8aab..0000000
--- a/ncurses-5.2/man/mitem_new.3x
+++ /dev/null
@@ -1,83 +0,0 @@
-'\" 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$
-.TH mitem_new 3X ""
-.SH NAME
-\fBmitem_new\fR - create and destroy menu items
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-ITEM *new_item(const char *name, const char *description);
-.br
-int free_item(ITEM *item);
-.br
-.SH DESCRIPTION
-The function \fBnew_item\fR allocates a new item and initializes it from the
-\fBname\fR and \fBdescription\fR pointers. Please notice that the item stores
-only the pointers to the name and description. Those pointers must be valid
-during the lifetime of the item. So you should be very carefull with names
-or descriptions allocated on the stack of some routines.
-.br
-The function \fBfree_item\fR 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.
-.SH RETURN VALUE
-The function \fBnew_item\fR returns \fBNULL\fR on error.
-
-The function \fBfree_item\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_CONNECTED\fR
-Item is connected to a menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/mitem_opts.3x b/ncurses-5.2/man/mitem_opts.3x
deleted file mode 100644
index 361187c..0000000
--- a/ncurses-5.2/man/mitem_opts.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH mitem_opts 3X ""
-.SH NAME
-\fBmitem_opts\fR - set and get menu item options
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_item_opts(ITEM *item, OPTIONS opts);
-.br
-int item_opts_on(ITEM *item, OPTIONS opts);
-.br
-int item_opts_off(ITEM *item, OPTIONS opts);
-.br
-OPTIONS item_opts(const ITEM *item);
-.br
-.SH DESCRIPTION
-The function \fBset_item_opts\fR sets all the given item's option bits (menu
-option bits may be logically-OR'ed together).
-
-The function \fBitem_opts_on\fR turns on the given option bits, and leaves
-others alone.
-
-The function \fBitem_opts_off\fR turns off the given option bits, and leaves
-others alone.
-
-The function \fBitem_opts\fR returns the item's current option bits.
-
-There is only one defined option bit mask, \fBO_SELECTABLE\fR. When this is
-on, the item may be selected during menu processing. This option defaults
-to on.
-.SH RETURN VALUE
-Except for \fBitem_opts\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/mitem_userptr.3x b/ncurses-5.2/man/mitem_userptr.3x
deleted file mode 100644
index 5fe61e1..0000000
--- a/ncurses-5.2/man/mitem_userptr.3x
+++ /dev/null
@@ -1,72 +0,0 @@
-'\" 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$
-.TH mitem_userptr 3X ""
-.SH NAME
-\fBmitem_userptr\fR - associate application data with a menu item
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_item_userptr(ITEM *item, void *userptr);
-.br
-void *item_userptr(const ITEM *item);
-.br
-.SH DESCRIPTION
-Every menu item has a field that can be used to hold application-specific data
-(that is, the menu-driver code leaves it alone). These functions get and set
-that field.
-.SH RETURN VALUE
-Except for \fBitem_userptr\fR (which returns \fBNULL\fR on error), each function returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-
-The user pointer should be a void pointer. We leave it as a char pointer for
-SVr4 compatibility.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/mitem_value.3x b/ncurses-5.2/man/mitem_value.3x
deleted file mode 100644
index 6df8d6b..0000000
--- a/ncurses-5.2/man/mitem_value.3x
+++ /dev/null
@@ -1,76 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH mitem_value 3X ""
-.SH NAME
-\fBmitem_value\fR - set and get menu item values
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_item_value(ITEM *item, bool value);
-.br
-bool item_value(const ITEM *item);
-.br
-.SH DESCRIPTION
-If you turn off the menu option \fBO_ONEVALUE\fR (e.g., with
-\fBset_menu_opts\fR or \fBmenu_opts_off\fR; see \fBmenu_opts\fR(3X)), the menu
-becomes multi-valued; that is, more than one item may simultaneously be
-selected.
-
-In a multi_valued menu, you can used \fBset_item_value\fR to select the
-given menu item (second argument \fBTRUE\fR) or deselect it (second argument
-\fBFALSE\fR).
-.SH RETURN VALUE
-The function \fBset_item_value\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The menu driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/mitem_visible.3x b/ncurses-5.2/man/mitem_visible.3x
deleted file mode 100644
index 5f5e228..0000000
--- a/ncurses-5.2/man/mitem_visible.3x
+++ /dev/null
@@ -1,59 +0,0 @@
-'\" 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$
-.TH mitem_visible 3X ""
-.SH NAME
-\fBmitem_visible\fR - check visibility of a menu item
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-bool item_visible(const ITEM *item);
-.br
-.SH DESCRIPTION
-A menu item is visible when it is in the portion of a posted menu that
-is mapped onto the screen (if the menu is scrollable, in particular, this
-portion will be smaller than the whole menu).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/ncurses.3x b/ncurses-5.2/man/ncurses.3x
deleted file mode 100644
index 4a88c45..0000000
--- a/ncurses-5.2/man/ncurses.3x
+++ /dev/null
@@ -1,927 +0,0 @@
-'\" t
-.\"***************************************************************************
-.\" Copyright (c) 1998,1999 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" 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$
-.hy 0
-.TH ncurses 3X ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBncurses\fR - CRT screen handling and optimization package
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-.SH DESCRIPTION
-The \fBncurses\fR library routines give the user a terminal-independent method
-of updating character screens with reasonable optimization. This
-implementation is ``new curses'' (ncurses) and is the approved replacement for
-4.4BSD classic curses, which has been discontinued.
-
-The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
-Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
-library is freely redistributable in source form. Differences from the SVr4
-curses are summarized under the EXTENSIONS and BUGS sections below and
-described in detail in the EXTENSIONS and BUGS sections of individual man
-pages.
-
-A program using these routines must be linked with the \fB-lncurses\fR option,
-or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
-(Your system integrator may also have installed these libraries under
-the names \fB-lcurses\fR and \fB-lcurses_g\fR.)
-The ncurses_g library generates trace logs (in a file called 'trace' in the
-current directory) that describe curses actions.
-
-The \fBncurses\fR package supports: overall screen, window and pad
-manipulation; output to windows and pads; reading terminal input; control over
-terminal and \fBcurses\fR input and 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 \fBinitscr\fR or \fBnewterm\fR
-must be called before any of the other routines that deal with windows
-and screens are used. The routine \fBendwin\fR 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:
-
- \fBinitscr(); cbreak(); noecho();\fR
-
-Most programs would additionally use the sequence:
-
- \fBnonl();\fR
- \fBintrflush(stdscr, FALSE);\fR
- \fBkeypad(stdscr, TRUE);\fR
-
-Before a \fBcurses\fR program is run, the tab stops of the terminal
-should be set and its initialization strings, if defined, must be
-output. This can be done by executing the \fBtput init\fR command
-after the shell environment variable \fBTERM\fR has been exported.
-\fBtset(1)\fR is usually responsible for doing this.
-[See \fBterminfo\fR(\*n) for further details.]
-
-The \fBncurses\fR library permits manipulation of data structures,
-called \fIwindows\fR, which can be thought of as two-dimensional
-arrays of characters representing all or part of a CRT screen. A
-default window called \fBstdscr\fR, which is the size of the terminal
-screen, is supplied. Others may be created with \fBnewwin\fR.
-
-Note that \fBcurses\fR does not handle overlapping windows, that's done by
-the \fBpanel\fR(3X) library. This means that you can either use
-\fBstdscr\fR or divide the screen into tiled windows and not using
-\fBstdscr\fR at all. Mixing the two will result in unpredictable, and
-undesired, effects.
-
-Windows are referred to by variables declared as \fBWINDOW *\fR.
-These data structures are manipulated with routines described here and
-elsewhere in the \fBncurses\fR manual pages. Among which the most basic
-routines are \fBmove\fR and \fBaddch\fR. More general versions of
-these routines are included with names beginning with \fBw\fR,
-allowing the user to specify a window. The routines not beginning
-with \fBw\fR affect \fBstdscr\fR.)
-
-After using routines to manipulate a window, \fBrefresh\fR is called,
-telling \fBcurses\fR to make the user's CRT screen look like
-\fBstdscr\fR. The characters in a window are actually of type
-\fBchtype\fR, (character and attribute data) so that other information
-about the character may also be stored with each character.
-
-Special windows called \fIpads\fR may also be manipulated. These are windows
-which are not constrained to the size of the screen and whose contents need not
-be completely displayed. See \fBcurs_pad\fR(3X) 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 specified to be output.
-On input, \fBcurses\fR 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 \fB<curses.h>\fR,
-such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
-
-If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
-program is executing in a window environment, line and column information in
-the environment will override information read by \fIterminfo\fR. This would
-effect a program running in an AT&T 630 layer, for example, where the size of a
-screen is changeable (see \fBENVIRONMENT\fR).
-
-If the environment variable \fBTERMINFO\fR is defined, any program using
-\fBcurses\fR checks for a local terminal definition before checking in the
-standard place. For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
-compiled terminal definition is found in
-
- \fB\*d/a/att4424\fR.
-
-(The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid
-creation of huge directories.) However, if \fBTERMINFO\fR is set to
-\fB$HOME/myterms\fR, \fBcurses\fR first checks
-
- \fB$HOME/myterms/a/att4424\fR,
-
-and if that fails, it then checks
-
- \fB\*d/a/att4424\fR.
-
-This is useful for developing experimental definitions or when write
-permission in \fB\*d\fR is not available.
-
-The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
-\fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
-screen. The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
-\fB0\fR, respectively.
-
-The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
-which is used for certain low-level operations like clearing and redrawing a
-screen containing garbage. The \fBcurscr\fR can be used in only a few
-routines.
-
-.SS Routine and Argument Names
-Many \fBcurses\fR routines have two or more versions. The routines prefixed
-with \fBw\fR require a window argument. The routines prefixed with \fBp\fR
-require a pad argument. Those without a prefix generally use \fBstdscr\fR.
-
-The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
-coordinate to move to before performing the appropriate action. The
-\fBmv\fR routines imply a call to \fBmove\fR before the call to the
-other routine. The coordinate \fIy\fR always refers to the row (of
-the window), and \fIx\fR always refers to the column. The upper
-left-hand corner is always (0,0), not (1,1).
-
-The routines prefixed with \fBmvw\fR take both a window argument and
-\fIx\fR and \fIy\fR coordinates. The window argument is always
-specified before the coordinates.
-
-In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
-pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
-\fBWINDOW\fR.
-
-Option setting routines require a Boolean flag \fIbf\fR with the value
-\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR. The
-variables \fIch\fR and \fIattrs\fR below are always of type
-\fBchtype\fR. The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and
-\fBchtype\fR are defined in \fB<curses.h>\fR. The type \fBTERMINAL\fR
-is defined in \fB<term.h>\fR. All other arguments are integers.
-
-.SS Routine Name Index
-The following table lists each \fBcurses\fR 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.
-
-.TS
-center tab(/);
-l l
-l l .
-\fBcurses\fR Routine Name/Manual Page Name
-=
-COLOR_PAIR/\fBcurs_color\fR(3X)
-PAIR_NUMBER/\fBcurs_attr\fR(3X)
-_nc_tracebits/\fBcurs_trace\fR(3X)*
-_traceattr/\fBcurs_trace\fR(3X)*
-_traceattr2/\fBcurs_trace\fR(3X)*
-_tracechar/\fBcurs_trace\fR(3X)*
-_tracechtype/\fBcurs_trace\fR(3X)*
-_tracechtype2/\fBcurs_trace\fR(3X)*
-_tracedump/\fBcurs_trace\fR(3X)*
-_tracef/\fBcurs_trace\fR(3X)*
-_tracemouse/\fBcurs_trace\fR(3X)*
-addch/\fBcurs_addch\fR(3X)
-addchnstr/\fBcurs_addchstr\fR(3X)
-addchstr/\fBcurs_addchstr\fR(3X)
-addnstr/\fBcurs_addstr\fR(3X)
-addstr/\fBcurs_addstr\fR(3X)
-assume_default_colors/\fBdefault_colors\fR(3X)*
-attr_get/\fBcurs_attr\fR(3X)
-attr_off/\fBcurs_attr\fR(3X)
-attr_on/\fBcurs_attr\fR(3X)
-attr_set/\fBcurs_attr\fR(3X)
-attroff/\fBcurs_attr\fR(3X)
-attron/\fBcurs_attr\fR(3X)
-attrset/\fBcurs_attr\fR(3X)
-baudrate/\fBcurs_termattrs\fR(3X)
-beep/\fBcurs_beep\fR(3X)
-bkgd/\fBcurs_bkgd\fR(3X)
-bkgdset/\fBcurs_bkgd\fR(3X)
-border/\fBcurs_border\fR(3X)
-box/\fBcurs_border\fR(3X)
-can_change_color/\fBcurs_color\fR(3X)
-cbreak/\fBcurs_inopts\fR(3X)
-chgat/\fBcurs_attr\fR(3X)
-clear/\fBcurs_clear\fR(3X)
-clearok/\fBcurs_outopts\fR(3X)
-clrtobot/\fBcurs_clear\fR(3X)
-clrtoeol/\fBcurs_clear\fR(3X)
-color_content/\fBcurs_color\fR(3X)
-color_set/\fBcurs_attr\fR(3X)
-copywin/\fBcurs_overlay\fR(3X)
-curs_set/\fBcurs_kernel\fR(3X)
-curses_version/\fBcurs_extend\fR(3X)*
-def_prog_mode/\fBcurs_kernel\fR(3X)
-def_shell_mode/\fBcurs_kernel\fR(3X)
-define_key/\fBdefine_key\fR(3X)*
-del_curterm/\fBcurs_terminfo\fR(3X)
-delay_output/\fBcurs_util\fR(3X)
-delch/\fBcurs_delch\fR(3X)
-deleteln/\fBcurs_deleteln\fR(3X)
-delscreen/\fBcurs_initscr\fR(3X)
-delwin/\fBcurs_window\fR(3X)
-derwin/\fBcurs_window\fR(3X)
-doupdate/\fBcurs_refresh\fR(3X)
-dupwin/\fBcurs_window\fR(3X)
-echo/\fBcurs_inopts\fR(3X)
-echochar/\fBcurs_addch\fR(3X)
-endwin/\fBcurs_initscr\fR(3X)
-erase/\fBcurs_clear\fR(3X)
-erasechar/\fBcurs_termattrs\fR(3X)
-filter/\fBcurs_util\fR(3X)
-flash/\fBcurs_beep\fR(3X)
-flushinp/\fBcurs_util\fR(3X)
-getbegyx/\fBcurs_getyx\fR(3X)
-getbkgd/\fBcurs_bkgd\fR(3X)
-getch/\fBcurs_getch\fR(3X)
-getmaxyx/\fBcurs_getyx\fR(3X)
-getmouse/\fBcurs_mouse\fR(3X)*
-getnstr/\fBcurs_getstr\fR(3X)
-getparyx/\fBcurs_getyx\fR(3X)
-getstr/\fBcurs_getstr\fR(3X)
-getsyx/\fBcurs_kernel\fR(3X)
-getwin/\fBcurs_util\fR(3X)
-getyx/\fBcurs_getyx\fR(3X)
-halfdelay/\fBcurs_inopts\fR(3X)
-has_colors/\fBcurs_color\fR(3X)
-has_ic/\fBcurs_termattrs\fR(3X)
-has_il/\fBcurs_termattrs\fR(3X)
-has_key/\fBcurs_getch\fR(3X)*
-hline/\fBcurs_border\fR(3X)
-idcok/\fBcurs_outopts\fR(3X)
-idlok/\fBcurs_outopts\fR(3X)
-immedok/\fBcurs_outopts\fR(3X)
-inch/\fBcurs_inch\fR(3X)
-inchnstr/\fBcurs_inchstr\fR(3X)
-inchstr/\fBcurs_inchstr\fR(3X)
-init_color/\fBcurs_color\fR(3X)
-init_pair/\fBcurs_color\fR(3X)
-initscr/\fBcurs_initscr\fR(3X)
-innstr/\fBcurs_instr\fR(3X)
-insch/\fBcurs_insch\fR(3X)
-insdelln/\fBcurs_deleteln\fR(3X)
-insertln/\fBcurs_deleteln\fR(3X)
-insnstr/\fBcurs_insstr\fR(3X)
-insstr/\fBcurs_insstr\fR(3X)
-instr/\fBcurs_instr\fR(3X)
-intrflush/\fBcurs_inopts\fR(3X)
-is_linetouched/\fBcurs_touch\fR(3X)
-is_wintouched/\fBcurs_touch\fR(3X)
-isendwin/\fBcurs_initscr\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)
-leaveok/\fBcurs_outopts\fR(3X)
-longname/\fBcurs_termattrs\fR(3X)
-mcprint/\fBcurs_print\fR(3X)*
-meta/\fBcurs_inopts\fR(3X)
-mouse_trafo/\fBcurs_mouse\fR(3X)*
-mouseinterval/\fBcurs_mouse\fR(3X)*
-mousemask/\fBcurs_mouse\fR(3X)*
-move/\fBcurs_move\fR(3X)
-mvaddch/\fBcurs_addch\fR(3X)
-mvaddchnstr/\fBcurs_addchstr\fR(3X)
-mvaddchstr/\fBcurs_addchstr\fR(3X)
-mvaddnstr/\fBcurs_addstr\fR(3X)
-mvaddstr/\fBcurs_addstr\fR(3X)
-mvchgat/\fBcurs_attr\fR(3X)
-mvcur/\fBcurs_terminfo\fR(3X)
-mvdelch/\fBcurs_delch\fR(3X)
-mvderwin/\fBcurs_window\fR(3X)
-mvgetch/\fBcurs_getch\fR(3X)
-mvgetnstr/\fBcurs_getstr\fR(3X)
-mvgetstr/\fBcurs_getstr\fR(3X)
-mvhline/\fBcurs_border\fR(3X)
-mvinch/\fBcurs_inch\fR(3X)
-mvinchnstr/\fBcurs_inchstr\fR(3X)
-mvinchstr/\fBcurs_inchstr\fR(3X)
-mvinnstr/\fBcurs_instr\fR(3X)
-mvinsch/\fBcurs_insch\fR(3X)
-mvinsnstr/\fBcurs_insstr\fR(3X)
-mvinsstr/\fBcurs_insstr\fR(3X)
-mvinstr/\fBcurs_instr\fR(3X)
-mvprintw/\fBcurs_printw\fR(3X)
-mvscanw/\fBcurs_scanw\fR(3X)
-mvvline/\fBcurs_border\fR(3X)
-mvwaddch/\fBcurs_addch\fR(3X)
-mvwaddchnstr/\fBcurs_addchstr\fR(3X)
-mvwaddchstr/\fBcurs_addchstr\fR(3X)
-mvwaddnstr/\fBcurs_addstr\fR(3X)
-mvwaddstr/\fBcurs_addstr\fR(3X)
-mvwchgat/\fBcurs_attr\fR(3X)
-mvwdelch/\fBcurs_delch\fR(3X)
-mvwgetch/\fBcurs_getch\fR(3X)
-mvwgetnstr/\fBcurs_getstr\fR(3X)
-mvwgetstr/\fBcurs_getstr\fR(3X)
-mvwhline/\fBcurs_border\fR(3X)
-mvwin/\fBcurs_window\fR(3X)
-mvwinch/\fBcurs_inch\fR(3X)
-mvwinchnstr/\fBcurs_inchstr\fR(3X)
-mvwinchstr/\fBcurs_inchstr\fR(3X)
-mvwinnstr/\fBcurs_instr\fR(3X)
-mvwinsch/\fBcurs_insch\fR(3X)
-mvwinsnstr/\fBcurs_insstr\fR(3X)
-mvwinsstr/\fBcurs_insstr\fR(3X)
-mvwinstr/\fBcurs_instr\fR(3X)
-mvwprintw/\fBcurs_printw\fR(3X)
-mvwscanw/\fBcurs_scanw\fR(3X)
-mvwvline/\fBcurs_border\fR(3X)
-napms/\fBcurs_kernel\fR(3X)
-newpad/\fBcurs_pad\fR(3X)
-newterm/\fBcurs_initscr\fR(3X)
-newwin/\fBcurs_window\fR(3X)
-nl/\fBcurs_outopts\fR(3X)
-nocbreak/\fBcurs_inopts\fR(3X)
-nodelay/\fBcurs_inopts\fR(3X)
-noecho/\fBcurs_inopts\fR(3X)
-nonl/\fBcurs_outopts\fR(3X)
-noqiflush/\fBcurs_inopts\fR(3X)
-noraw/\fBcurs_inopts\fR(3X)
-notimeout/\fBcurs_inopts\fR(3X)
-overlay/\fBcurs_overlay\fR(3X)
-overwrite/\fBcurs_overlay\fR(3X)
-pair_content/\fBcurs_color\fR(3X)
-pechochar/\fBcurs_pad\fR(3X)
-pnoutrefresh/\fBcurs_pad\fR(3X)
-prefresh/\fBcurs_pad\fR(3X)
-printw/\fBcurs_printw\fR(3X)
-putp/\fBcurs_terminfo\fR(3X)
-putwin/\fBcurs_util\fR(3X)
-qiflush/\fBcurs_inopts\fR(3X)
-raw/\fBcurs_inopts\fR(3X)
-redrawwin/\fBcurs_refresh\fR(3X)
-refresh/\fBcurs_refresh\fR(3X)
-reset_prog_mode/\fBcurs_kernel\fR(3X)
-reset_shell_mode/\fBcurs_kernel\fR(3X)
-resetty/\fBcurs_kernel\fR(3X)
-resizeterm/\fBresizeterm\fR(3X)*
-restartterm/\fBcurs_terminfo\fR(3X)
-ripoffline/\fBcurs_kernel\fR(3X)
-savetty/\fBcurs_kernel\fR(3X)
-scanw/\fBcurs_scanw\fR(3X)
-scr_dump/\fBcurs_scr_dump\fR(3X)
-scr_init/\fBcurs_scr_dump\fR(3X)
-scr_restore/\fBcurs_scr_dump\fR(3X)
-scr_set/\fBcurs_scr_dump\fR(3X)
-scrl/\fBcurs_scroll\fR(3X)
-scroll/\fBcurs_scroll\fR(3X)
-scrollok/\fBcurs_outopts\fR(3X)
-set_curterm/\fBcurs_terminfo\fR(3X)
-set_term/\fBcurs_initscr\fR(3X)
-setscrreg/\fBcurs_outopts\fR(3X)
-setsyx/\fBcurs_kernel\fR(3X)
-setterm/\fBcurs_terminfo\fR(3X)
-setupterm/\fBcurs_terminfo\fR(3X)
-slk_attr/\fBcurs_slk\fR(3X)*
-slk_attr_off/\fBcurs_slk\fR(3X)
-slk_attr_on/\fBcurs_slk\fR(3X)
-slk_attr_set/\fBcurs_slk\fR(3X)
-slk_attroff/\fBcurs_slk\fR(3X)
-slk_attron/\fBcurs_slk\fR(3X)
-slk_attrset/\fBcurs_slk\fR(3X)
-slk_clear/\fBcurs_slk\fR(3X)
-slk_color/\fBcurs_slk\fR(3X)
-slk_init/\fBcurs_slk\fR(3X)
-slk_label/\fBcurs_slk\fR(3X)
-slk_noutrefresh/\fBcurs_slk\fR(3X)
-slk_refresh/\fBcurs_slk\fR(3X)
-slk_restore/\fBcurs_slk\fR(3X)
-slk_set/\fBcurs_slk\fR(3X)
-slk_touch/\fBcurs_slk\fR(3X)
-standend/\fBcurs_attr\fR(3X)
-standout/\fBcurs_attr\fR(3X)
-start_color/\fBcurs_color\fR(3X)
-subpad/\fBcurs_pad\fR(3X)
-subwin/\fBcurs_window\fR(3X)
-syncok/\fBcurs_window\fR(3X)
-termattrs/\fBcurs_termattrs\fR(3X)
-termname/\fBcurs_termattrs\fR(3X)
-tgetent/\fBcurs_termcap\fR(3X)
-tgetflag/\fBcurs_termcap\fR(3X)
-tgetnum/\fBcurs_termcap\fR(3X)
-tgetstr/\fBcurs_termcap\fR(3X)
-tgoto/\fBcurs_termcap\fR(3X)
-tigetflag/\fBcurs_terminfo\fR(3X)
-tigetnum/\fBcurs_terminfo\fR(3X)
-tigetstr/\fBcurs_terminfo\fR(3X)
-timeout/\fBcurs_inopts\fR(3X)
-touchline/\fBcurs_touch\fR(3X)
-touchwin/\fBcurs_touch\fR(3X)
-tparm/\fBcurs_terminfo\fR(3X)
-tputs/\fBcurs_termcap\fR(3X)
-tputs/\fBcurs_terminfo\fR(3X)
-trace/\fBcurs_trace\fR(3X)*
-typeahead/\fBcurs_inopts\fR(3X)
-unctrl/\fBcurs_util\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)*
-vidattr/\fBcurs_terminfo\fR(3X)
-vidputs/\fBcurs_terminfo\fR(3X)
-vline/\fBcurs_border\fR(3X)
-vw_printw/\fBcurs_printw\fR(3X)
-vw_scanw/\fBcurs_scanw\fR(3X)
-vwprintw/\fBcurs_printw\fR(3X)
-vwscanw/\fBcurs_scanw\fR(3X)
-waddch/\fBcurs_addch\fR(3X)
-waddchnstr/\fBcurs_addchstr\fR(3X)
-waddchstr/\fBcurs_addchstr\fR(3X)
-waddnstr/\fBcurs_addstr\fR(3X)
-waddstr/\fBcurs_addstr\fR(3X)
-wattr_get/\fBcurs_attr\fR(3X)
-wattr_off/\fBcurs_attr\fR(3X)
-wattr_on/\fBcurs_attr\fR(3X)
-wattr_set/\fBcurs_attr\fR(3X)
-wattroff/\fBcurs_attr\fR(3X)
-wattron/\fBcurs_attr\fR(3X)
-wattrset/\fBcurs_attr\fR(3X)
-wbkgd/\fBcurs_bkgd\fR(3X)
-wbkgdset/\fBcurs_bkgd\fR(3X)
-wborder/\fBcurs_border\fR(3X)
-wchgat/\fBcurs_attr\fR(3X)
-wclear/\fBcurs_clear\fR(3X)
-wclrtobot/\fBcurs_clear\fR(3X)
-wclrtoeol/\fBcurs_clear\fR(3X)
-wcolor_set/\fBcurs_attr\fR(3X)
-wcursyncup/\fBcurs_window\fR(3X)
-wdelch/\fBcurs_delch\fR(3X)
-wdeleteln/\fBcurs_deleteln\fR(3X)
-wechochar/\fBcurs_addch\fR(3X)
-wenclose/\fBcurs_mouse\fR(3X)*
-werase/\fBcurs_clear\fR(3X)
-wgetch/\fBcurs_getch\fR(3X)
-wgetnstr/\fBcurs_getstr\fR(3X)
-wgetstr/\fBcurs_getstr\fR(3X)
-whline/\fBcurs_border\fR(3X)
-winch/\fBcurs_inch\fR(3X)
-winchnstr/\fBcurs_inchstr\fR(3X)
-winchstr/\fBcurs_inchstr\fR(3X)
-winnstr/\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)
-wmouse_trafo/\fBcurs_mouse\fR(3X)*
-wmove/\fBcurs_move\fR(3X)
-wnoutrefresh/\fBcurs_refresh\fR(3X)
-wprintw/\fBcurs_printw\fR(3X)
-wredrawln/\fBcurs_refresh\fR(3X)
-wrefresh/\fBcurs_refresh\fR(3X)
-wresize/\fBwresize\fR(3X)*
-wscanw/\fBcurs_scanw\fR(3X)
-wscrl/\fBcurs_scroll\fR(3X)
-wsetscrreg/\fBcurs_outopts\fR(3X)
-wstandend/\fBcurs_attr\fR(3X)
-wstandout/\fBcurs_attr\fR(3X)
-wsyncdown/\fBcurs_window\fR(3X)
-wsyncup/\fBcurs_window\fR(3X)
-wtimeout/\fBcurs_inopts\fR(3X)
-wtouchln/\fBcurs_touch\fR(3X)
-wvline/\fBcurs_border\fR(3X)
-.TE
-.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and an
-integer value other than \fBERR\fR upon successful completion, unless
-otherwise noted in the routine descriptions.
-
-All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
-\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, \fBgetmaxyx\fR. The return
-values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
-\fBgetmaxyx\fR are undefined (\fIi\fR.\fIe\fR., these should not be used as the
-right-hand side of assignment statements).
-
-Routines that return pointers return \fBNULL\fR on error.
-.SH ENVIRONMENT
-The following environment symbols are useful for customizing the
-runtime behavior of the \fBncurses\fR library. The most important
-ones have been already discussed in detail.
-.TP 5
-BAUDRATE
-The debugging library checks this environment symbol when the application
-has redirected output to a file.
-The symbol's numeric value is used for the baudrate.
-If no value is found \fBncurses\fR uses 9600.
-This allows testers to construct repeatable test-cases
-that take into account costs that depend on baudrate.
-.TP 5
-CC
-When set, change occurrences of the command_character
-(i.e., the \fBcmdch\fP capability)
-of the loaded terminfo entries to the value of this symbol.
-Very few terminfo entries provide this feature.
-.TP 5
-COLUMNS
-Specify the width of the screen in characters.
-Applications running in a windowing environment usually are able to
-obtain the width of the window in which they are executing.
-If neither the $COLUMNS value nor the terminal's screen size is available,
-\fBncurses\fR uses the size which may be specified in the terminfo database
-(i.e., the \fBcols\fR capability).
-
-It is important that your application use a correct size for the screen.
-However, this is not always possible because your application may be
-running on a host which does not honor NAWS (Negotiations About Window
-Size), or because you are temporarily running as another user.
-
-Either COLUMNS or LINES symbols may be specified independently.
-This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
-e.g., xterm which commonly specifies a 65 line screen.
-For best results, \fBlines\fR and \fBcols\fR should not be specified in
-a terminal description for terminals which are run as emulations.
-
-Use the \fBuse_env\fR function to disable this feature.
-.TP 5
-ESCDELAY
-Specifies the total time, in milliseconds, for which ncurses will
-await a character sequence, e.g., a function key.
-The default value, 1000 milliseconds, is enough for most uses.
-However, it is made a variable to accommodate unusual applications.
-
-The most common instance where you may wish to change this value
-is to work with slow hosts, e.g., running on a network.
-If the host cannot read characters rapidly enough, it will have the same
-effect as if the terminal did not send characters rapidly enough.
-The library will still see a timeout.
-
-Note that xterm mouse events are built up from character sequences
-received from the xterm.
-If your application makes heavy use of multiple-clicking, you may
-wish to lengthen this default value because the timeout applies
-to the composed multi-click event as well as the individual clicks.
-.TP 5
-HOME
-Tells \fBncurses\fR where your home directory is.
-That is where it may read and write auxiliary terminal descriptions:
-
-$HOME/.termcap
-.br
-$HOME/.terminfo
-.TP 5
-LINES
-Like COLUMNS, specify the height of the screen in characters.
-See COLUMNS for a detailed description.
-.TP 5
-MOUSE_BUTTONS_123
-This applies only to the OS/2 EMX port.
-It specifies the order of buttons on the mouse.
-OS/2 numbers a 3-button mouse inconsistently from other
-platforms:
-
-1 = left
-.br
-2 = right
-.br
-3 = middle.
-
-This symbol lets you customize the mouse.
-The symbol must be three numeric digits 1-3 in any order, e.g., 123 or 321.
-If it is not specified, \fBncurses\fR uses 132.
-.TP 5
-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 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 dataflow, preventing overruns.
-The cheapest solution (no hardware cost)
-is for your program to do this by pausing after
-operations that the terminal does slowly, such as clearing the display.
-
-As a result, many terminal descriptions (including the vt100)
-have delay times embedded. You may wish to use these descriptions,
-but not want to pay the performance penalty.
-
-Set the NCURSES_NO_PADDING symbol to disable all but mandatory
-padding. Mandatory padding is used as a part of special control
-sequences such as \fIflash\fR.
-.TP 5
-NCURSES_NO_SETBUF
-Normally \fBncurses\fR enables buffered output during terminal initialization.
-This is done (as in SVr4 curses) for performance reasons.
-For testing purposes, both of \fBncurses\fR and certain applications,
-this feature is made optional. Setting the NCURSES_NO_SETBUF variable
-disables output buffering, leaving the output in the original (usually
-line buffered) mode.
-.TP 5
-NCURSES_TRACE
-During initialization, the \fBncurses\fR debugging library
-checks the NCURSES_TRACE symbol.
-If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
-function, using that value as the argument.
-
-The argument values, which are defined in \fBcurses.h\fR, provide several
-types of information.
-When running with traces enabled, your application will write the
-file \fBtrace\fR to the current directory.
-.TP 5
-TERM
-Denotes your terminal type.
-Each terminal type is distinct, though many are similar.
-.TP 5
-TERMCAP
-If the \fBncurses\fR library has been configured with \fItermcap\fR
-support, \fBncurses\fR will check for a terminal's description in
-termcap form if it is not available in the terminfo database.
-
-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 \fBncurses\fR to ignore
-the usual place for this information, e.g., /etc/termcap.
-.TP 5
-TERMINFO
-Overrides the directory in which \fBncurses\fR searches for your terminal
-description.
-This is the simplest, but not the only way to change the list of directories.
-The complete list of directories in order follows:
-.RS
-.TP 3
--
-the last directory to which \fBncurses\fR wrote, if any, is searched first.
-.TP 3
--
-the directory specified by the TERMINFO symbol
-.TP 3
--
-$HOME/.terminfo
-.TP 3
--
-directories listed in the TERMINFO_DIRS symbol
-.TP 3
--
-one or more directories whose names are configured and compiled into the
-ncurses library, e.g.,
-@TERMINFO@
-.RE
-.TP 5
-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.
-.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., ":").
-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
-The library may be configured to disregard the following variables when the
-current user is the superuser (root), or if the application uses setuid or
-setgid permissions:
-$TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
-.SH FILES
-.TP 5
-@DATADIR@/tabset
-directory containing initialization files for the terminal capability database
-@TERMINFO@
-terminal capability database
-.SH SEE ALSO
-\fBterminfo\fR(\*n) and 3X 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)
-that falls back to the old-style /etc/termcap file if the terminal setup code
-cannot find a terminfo entry corresponding to \fBTERM\fR. Use of this feature
-is not recommended, as it essentially includes an entire termcap compiler in
-the \fBncurses\fR startup code, at significant cost in core and startup cycles.
-
-The \fBncurses\fR library includes facilities for capturing mouse events on
-certain terminals (including xterm). See the \fBcurs_mouse\fR(3X)
-manual page for details.
-
-The \fBncurses\fR library includes facilities for responding to window
-resizing events, e.g., when running in an xterm.
-See the \fBresizeterm\fR(3X)
-and \fBwresize\fR(3X) manual pages for details.
-In addition, the library may be configured with a SIGWINCH handler.
-
-The \fBncurses\fR library extends the fixed set of function key capabilities
-of terminals by allowing the application designer to define additional
-key sequences at runtime.
-See the \fBdefine_key\fR(3X)
-and \fBkeyok\fR(3X) manual pages for details.
-
-The \fBncurses\fR 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 contrasts.
-See the \fBuse_default_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)
-manual page for details.
-.SH PORTABILITY
-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:
-\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,
-\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,
-.PP
-A small number of local differences (that is, individual differences between
-the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR
-sections of the library man pages.
-.PP
-The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4. See
-the \fBcurs_getch\fR(3X) manual page for details.
-.PP
-The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4. See
-the \fBcurs_slk\fR(3X) manual page for details.
-.PP
-The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
-\fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
-part of XPG4, nor are they present in SVr4. See the \fBcurs_mouse\fR(3X)
-manual page for details.
-.PP
-The routine \fBmcprint\fR was not present in any previous curses
-implementation. See the \fBcurs_print\fR(3X) manual page for details.
-.PP
-The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4. See
-the \fBwresize\fR(3X) manual page for details.
-.PP
-In historic curses versions, delays embedded in the capabilities \fBcr\fR,
-\fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR 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.
-.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.
-
-If standard output from a \fBncurses\fR 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&T System V Release 3 curses.
-.SH AUTHORS
-Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
-Based on pcurses by Pavel Curtis.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/panel.3x b/ncurses-5.2/man/panel.3x
deleted file mode 100644
index bc24b7b..0000000
--- a/ncurses-5.2/man/panel.3x
+++ /dev/null
@@ -1,182 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH panel 3X ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-panel - panel stack extension for curses
-.SH SYNOPSIS
-\fB#include <panel.h>\fR
-.P
-\fBcc [flags] sourcefiles -lpanel -lncurses\fR
-.P
-\fBPANEL *new_panel(WINDOW *win)\fR
-.br
-\fBint bottom_panel(PANEL *pan)\fR
-.br
-\fBint top_panel(PANEL *pan)\fR
-.br
-\fBint show_panel(PANEL *pan)\fR
-.br
-\fBvoid update_panels();\fR
-.br
-\fBint hide_panel(PANEL *pan)\fR
-.br
-\fBWINDOW *panel_window(const PANEL *pan)\fR
-.br
-\fBint replace_panel(PANEL *pan, WINDOW *window)\fR
-.br
-\fBint move_panel(PANEL *pan, int starty, int startx)\fR
-.br
-\fBint panel_hidden(const PANEL *pan)\fR
-.br
-\fBPANEL *panel_above(const PANEL *pan)\fR
-.br
-\fBPANEL *panel_below(const PANEL *pan)\fR
-.br
-\fBint set_panel_userptr(PANEL *pan, const void *ptr)\fR
-.br
-\fBconst void *panel_userptr(const PANEL *pan)\fR
-.br
-\fBint del_panel(PANEL *pan)\fR
-.br
-.SH DESCRIPTION
-Panels are \fBcurses\fR(3X) 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 curses \fBstdscr\fR window are
-hidden or displayed when panels are added, moved, modified or removed.
-The set of currently visible panels is the stack of panels. The
-\fBstdscr\fR window is beneath all panels, and is not considered part
-of the stack.
-.P
-A window is associated with every panel. The panel routines enable
-you to create, move, hides, and show panels, as well as position a
-panel at any desired location in the stack.
-.P
-Panel routines are a functional layer added to \fBcurses\fR(3X), make only
-high-level curses calls, and work anywhere terminfo curses does.
-.SH FUNCTIONS
-.TP
-\fBnew_panel(win)\fR
-allocates a \fBPANEL\fR structure, associates it with
-\fBwin\fR, 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.
-.TP
-\fBvoid update_panels()\fR
-refreshes the virtual screen to reflect the relations between the
-panels in the stack, but does not call doupdate() to refresh the
-physical screen. Use this function and not wrefresh or wnoutrefresh.
-update_panels() may be called more than once before a call to
-doupdate(), but doupdate() is the function responsible for updating
-the physical screen.
-.TP
-\fBdel_panel(pan)\fR
-removes the given panel from the stack and deallocates the
-\fBPANEL\fR structure (but not its associated window).
-.TP
-\fBhide_panel(pan)\fR
-removes the given panel from the panel stack and thus hides it from
-view. The \fBPANEL\fR structure is not lost, merely removed from the stack.
-.TP
-\fBshow_panel(pan)\fR
-makes a hidden panel visible by placing it on top of the panels in the
-panel stack. See COMPATIBILITY below.
-.TP
-\fBtop_panel(pan)\fR
-puts the given visible panel on top of all panels in the stack. See
-COMPATIBILITY below.
-.TP
-\fBbottom_panel(pan)\fR
-puts panel at the bottom of all panels.
-.TP
-\fBmove_panel(pan,starty,startx)\fR
-moves the given panel window so that its upper-left corner is at
-\fBstarty\fR, \fBstartx\fR. It does not change the position of the
-panel in the stack. Be sure to use this function, not \fBmvwin()\fR,
-to move a panel window.
-.TP
-\fBreplace_panel(pan,window)\fR
-replaces the current window of panel with \fBwindow\fR (useful, for
-example if you want to resize a panel; if you're using \fBncurses\fR,
-you can call \fBreplace_panel\fR on the output of \fBwresize\fR(3X)).
-It does not change the position of the panel in the stack.
-.TP
-\fBpanel_above(pan)\fR
-returns a pointer to the panel above pan. If the panel argument is
-\fB(PANEL *)0\fR, it returns a pointer to the bottom panel in the stack.
-.TP
-\fBpanel_below(pan)\fR
-returns a pointer to the panel just below pan. If the panel argument
-is \fB(PANEL *)0\fR, it returns a pointer to the top panel in the stack.
-.TP
-\fBset_panel_userptr(pan,ptr)\fR
-sets the panel's user pointer.
-.TP
-\fBpanel_userptr(pan)\fR
-returns the user pointer for a given panel.
-.TP
-\fBpanel_window(pan)\fR
-returns a pointer to the window of the given panel.
-.SH DIAGNOSTICS
-Each routine that returns a pointer returns \fBNULL\fR if an error
-occurs. Each routine that returns an int value returns \fBOK\fR if it
-executes successfully and \fBERR\fR if not.
-.SH COMPATIBILITY
-Reasonable care has been taken to ensure compatibility
-with the native panel facility introduced in SVr3.2 (inspection of
-the SVr4 manual pages suggests the programming interface is unchanged).
-The \fBPANEL\fR data structures are merely similar. The programmer
-is cautioned not to directly use \fBPANEL\fR fields.
-.P
-The functions \fBshow_panel()\fR and \fBtop_panel()\fR are identical
-in this implementation, and work equally well with displayed or hidden
-panels. In the native System V implementation, \fBshow_panel()\fR is
-intended for making a hidden panel visible (at the top of the stack)
-and \fBtop_panel()\fR is intended for making an already-visible panel
-move to the top of the stack. You are cautioned to use the correct
-function to ensure compatibility with native panel libraries.
-.SH NOTE
-In your library list, libpanel.a should be before libncurses.a; that is,
-you want to say `-lpanel -lncurses', not the other way around (which would
-give you a link error using GNU \fBld\fR(1) and some other linkers).
-.SH FILES
-.P
-panel.h
-interface for the panels library
-.P
-libpanel.a
-the panels library itself
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.SH AUTHOR
-Originally written by Warren Tucker <wht@n4hgf.mt-park.ga.us>,
-primarily to assist in porting u386mon to systems without a native
-panels library. Repackaged for ncurses by Zeyd ben-Halim.
diff --git a/ncurses-5.2/man/resizeterm.3x b/ncurses-5.2/man/resizeterm.3x
deleted file mode 100644
index 6dda170..0000000
--- a/ncurses-5.2/man/resizeterm.3x
+++ /dev/null
@@ -1,87 +0,0 @@
-.\"***************************************************************************
-.\" 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. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-.\"
-.\" $Id$
-.TH resizeterm 3X ""
-.SH NAME
-\fBresizeterm\fR - change the curses terminal size
-..
-.SH SYNOPSIS
-\fB#include <curses.h>\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,
-primarily for use by programs running in an X Window terminal (e.g., xterm).
-The function \fBresizeterm\fR resizes the standard and current windows
-to the specified dimensions, and adjusts other bookkeeping data used by
-the \fBncurses\fR library that record the window dimensions.
-
-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.
-..
-.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.
-..
-.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
-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
-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.
-..
-.SH SEE ALSO
-\fBwresize\fR(3X).
-..
-.SH AUTHOR
-Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/term.5 b/ncurses-5.2/man/term.5
deleted file mode 100644
index cdf10d1..0000000
--- a/ncurses-5.2/man/term.5
+++ /dev/null
@@ -1,208 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH TERM 5
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-term \- format of compiled term file.
-.SH SYNOPSIS
-.B term
-.SH DESCRIPTION
-.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
-where
-.I name
-is the name of the terminal, and
-.I c
-is the first character of
-.IR name .
-Thus,
-.I act4
-can be found in the file \fB\*d/a/act4\fP.
-Synonyms for the same terminal are implemented by multiple
-links to the same compiled file.
-.PP
-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.
-.PP
-The compiled file is created with the
-.I tic
-program, and read by the routine
-.IR setupterm .
-The file is divided into six parts:
-the header,
-terminal names,
-boolean flags,
-numbers,
-strings,
-and
-string table.
-.PP
-The header section begins the file.
-This section contains six short integers in the format
-described below.
-These integers are
-(1) the magic number (octal 0432);
-(2) the size, in bytes, of the names section;
-(3) the number of bytes in the boolean section;
-(4) the number of short integers in the numbers section;
-(5) the number of offsets (short integers) in the strings section;
-(6) the size, in bytes, of the string table.
-.PP
-Short integers are stored in two 8-bit bytes.
-The first byte contains the least significant 8 bits of the value,
-and the second byte contains the most significant 8 bits.
-(Thus, the value represented is 256*second+first.)
-The value \-1 is represented by the two bytes 0377, 0377; other negative
-values are illegal. This value generally
-means that the corresponding capability is missing from this terminal.
-Note that this format corresponds to the hardware of the \s-1VAX\s+1
-and \s-1PDP\s+1-11 (that is, little-endian machines).
-Machines where this does not correspond to the hardware must read the
-integers as two bytes and compute the little-endian value.
-.PP
-The terminal names section comes next.
-It contains the first line of the terminfo description,
-listing the various names for the terminal,
-separated by the `|' character.
-The section is terminated with an \s-1ASCII NUL\s+1 character.
-.PP
-The boolean flags have one byte for each flag.
-This byte is either 0 or 1 as the flag is present or absent.
-The capabilities are in the same order as the file <term.h>.
-.PP
-Between the boolean section and the number section,
-a null byte will be inserted, if necessary,
-to ensure that the number section begins on an even byte (this is a
-relic of the PDP-11's word-addressed architecture, originally
-designed in to avoid IOT traps induced by addressing a word on an
-odd byte boundary).
-All short integers are aligned on a short word boundary.
-.PP
-The numbers section is similar to the flags section.
-Each capability takes up two bytes,
-and is stored as a little-endian short integer.
-If the value represented is \-1, the capability is taken to be missing.
-.PP
-The strings section is also similar.
-Each capability is stored as a short integer, in the format above.
-A value of \-1 means the capability is missing.
-Otherwise, the value is taken as an offset from the beginning
-of the string table.
-Special characters in ^X or \ec notation are stored in their
-interpreted form, not the printing representation.
-Padding information $<nn> and parameter information %x are
-stored intact in uninterpreted form.
-.PP
-The final section is the string table.
-It contains all the values of string capabilities referenced in
-the string section.
-Each string is null terminated.
-.PP
-Note that it is possible for
-.I setupterm
-to expect a different set of capabilities
-than are actually present in the file.
-Either the database may have been updated since
-.I setupterm
-has been recompiled
-(resulting in extra unrecognized 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
-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, number, and string capabilities.
-.PP
-Despite the consistent use of little-endian for numbers and the otherwise
-self-describing format, it is not wise to count on portability of binary
-terminfo entries between commercial UNIX versions. The problem is that there
-are at least three versions of terminfo (under HP-UX, AIX, and 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 \fBterminfo\fR(\*n) for detailed
-discussion of terminfo source compatibility issues.
-.PP
-As an example, here is a hex dump of the description for the Lear-Siegler
-ADM-3, a popular though rather stupid early terminal:
-.nf
-.sp
-adm3a|lsi adm3a,
- am,
- cols#80, lines#24,
- bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- home=^^, ind=^J,
-.sp
-.ft CW
-\s-20000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
-0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.
-0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........
-0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'...
-0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-.....
-0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$<1
-0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 >..=%p1% {32}%+%c
-0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....
-0150 00 08 00 0c 00 0b 00 0a 00 ........ .\s+2
-.ft R
-.fi
-.sp
-.PP
-Some limitations: total compiled entries cannot exceed 4096 bytes.
-The name field cannot exceed 128 bytes.
-.SH FILES
-\*d/*/* compiled terminal capability data base
-.SH "SEE ALSO"
-\fBcurses\fR(3X), \fBterminfo\fR(\*n).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/term.7 b/ncurses-5.2/man/term.7
deleted file mode 100644
index 385d544..0000000
--- a/ncurses-5.2/man/term.7
+++ /dev/null
@@ -1,204 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH TERM 7
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-term \- conventions for naming terminal types
-.SH DESCRIPTION
-.PP
-The environment variable \fBTERM\fR 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.
-.PP
-A default \fBTERM\fR value will be set on a per-line basis by either
-\fB/etc/inittab\fR (Linux and System-V-like UNIXes) or \fB/etc/ttys\fR (BSD
-UNIXes). This will nearly always suffice for workstation and microcomputer
-consoles.
-.PP
-If you use a dialup line, the type of device attached to it may vary. Older
-UNIX systems pre-set a very dumb terminal type like `dumb' or `dialup' on
-dialup lines. Newer ones may pre-set `vt100', reflecting the prevalence of DEC
-VT100-compatible terminals and personal-computer emulators.
-.PP
-Modern telnets pass your \fBTERM\fR 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
-can almost always be avoided by explicitly exporting `vt100' (assuming you
-are in fact using a VT100-superset console, terminal, or terminal emulator.)
-.PP
-In any case, you are free to override the system \fBTERM\fR setting to your
-taste in your shell profile. The \fBtset\fP(1) utility may be of assistance;
-you can give it a set of rules for deducing or requesting a terminal type based
-on the tty device and baud rate.
-.PP
-Setting your own \fBTERM\fR 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.
-.PP
-Terminal type descriptions are stored as files of capability data underneath
-\*d. To browse a list of all terminal names recognized by the system, do
-
- toe | more
-
-from your shell. These capability files are in a binary format optimized for
-retrieval speed (unlike the old text-based \fBtermcap\fR format they replace);
-to examine an entry, you must use the \fBinfocmp\fR(1) command. Invoke it as
-follows:
-
- infocmp \fIentry-name\fR
-
-where \fIentry-name\fR is the name of the type you wish to examine (and the
-name of its capability file the subdirectory of \*d named for its first
-letter). This command dumps a capability file in the text format described by
-\fBterminfo\fR(\*n).
-.PP
-The first line of a \fBterminfo\fR(\*n) description gives the 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
-\fIprimary name\fR, and is the one to use when setting \fBTERM\fR. 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 first and last (if present) are aliases for the terminal,
-usually historical names retained for compatibility.
-.PP
-There are some conventions for how to choose terminal primary names that help
-keep them informative and unique. Here is a step-by-step guide to naming
-terminals that also explains how to parse them:
-.PP
-First, choose a root name. The root will consist of a lower-case letter
-followed by up to seven lower-case letters or digits. You need to avoid using
-punctuation characters in root names, because they are used and interpreted as
-filenames and shell meta-characters (such as !, $, *, ? etc.) embedded in them
-may cause odd and unhelpful behavior. The slash (/), or any other character
-that may be interpreted by anyone's file system (\e, $, [, ]), is especially
-dangerous (terminfo is platform-independent, and choosing names with special
-characters could someday make life difficult for users of a future port). The
-dot (.) character is relatively safe as long as there is at most one per root
-name; some historical terminfo names use it.
-.PP
-The root name for a terminal or workstation console type should almost always
-begin with a vendor prefix (such as \fBhp\fR for Hewlett-Packard, \fBwy\fR for
-Wyse, or \fBatt\fR for AT&T terminals), or a common name of the terminal line
-(\fBvt\fR for the VT series of terminals from DEC, or \fBsun\fR for Sun
-Microsystems workstation consoles, or \fBregent\fR for the ADDS Regent series.
-You can list the terminfo tree to see what prefixes are already in common use.
-The root name prefix should be followed when appropriate by a model number;
-thus \fBvt100\fR, \fBhp2621\fR, \fBwy50\fR.
-.PP
-The root name for a PC-Unix console type should be the OS name,
-i.e. \fBlinux\fR, \fBbsdos\fR, \fBfreebsd\fR, \fBnetbsd\fR. It should
-\fInot\fR be \fBconsole\fR or any other generic that might cause confusion in a
-multi-platform environment! If a model number follows, it should indicate
-either the OS release level or the console driver release level.
-.PP
-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. \fBversaterm\fR, \fBctrm\fR).
-.PP
-Following the root name, you may add any reasonable number of hyphen-separated
-feature suffixes.
-.TP 5
-2p
-Has two pages of memory. Likewise 4p, 8p, etc.
-.TP 5
-mc
-Magic-cookie. Some terminals (notably older Wyses) can only support one
-attribute without magic-cookie lossage. Their base entry is usually paired
-with another that has this suffix and uses magic cookies to support multiple
-attributes.
-.TP 5
--am
-Enable auto-margin (right-margin wraparound)
-.TP 5
--m
-Mono mode - suppress color support
-.TP 5
--na
-No arrow keys - termcap ignores arrow keys which are actually there on the
-terminal, so the user can use the arrow keys locally.
-.TP 5
--nam
-No auto-margin - suppress am capability
-.TP 5
--nl
-No labels - suppress soft labels
-.TP 5
--nsl
-No status line - suppress status line
-.TP 5
--pp
-Has a printer port which is used.
-.TP 5
--rv
-Terminal in reverse video mode (black on white)
-.TP 5
--s
-Enable status line.
-.TP 5
--vb
-Use visible bell (flash) rather than beep.
-.TP 5
--w
-Wide; terminal is in 132 column mode.
-.PP
-Conventionally, if your terminal type is a variant 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
-\fBfubar-30-rv\fR (rather than, say, `fubar-rv-30').
-.PP
-Terminal types that are written not as standalone entries, but rather as
-components to be plugged into other entries via \fBuse\fP capabilities,
-are distinguished by using embedded plus signs rather than dashes.
-.PP
-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 \fBTERM\fR environment variable when no -T option is specified.
-.SH PORTABILITY
-For maximum compatibility with older System V UNIXes, names and aliases
-should be unique within the first 14 characters.
-.SH FILES
-.TP 5
-\*d/?/*
-compiled terminal capability data base
-.TP 5
-/etc/inittab
-tty line initialization (AT&T-like UNIXes).
-.TP 5
-/etc/ttys
-tty line initialization (BSD-like UNIXes).
-.SH "SEE ALSO"
-\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/terminfo.head b/ncurses-5.2/man/terminfo.head
deleted file mode 100644
index 09708a9..0000000
--- a/ncurses-5.2/man/terminfo.head
+++ /dev/null
@@ -1,95 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH TERMINFO 5 "" "" "File Formats"
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-terminfo \- terminal capability data base
-.SH SYNOPSIS
-\*d/*/*
-.SH DESCRIPTION
-.I Terminfo
-is a data base describing terminals, used by screen-oriented programs such as
-\fBnvi\fR(1),
-\fBrogue\fR(1)
-and libraries such as
-\fBcurses\fR(3X).
-.I Terminfo
-describes terminals by giving a set of capabilities which they
-have, by specifying how to perform screen operations, and by
-specifying padding requirements and initialization sequences.
-.PP
-Entries in
-.I terminfo
-consist of a sequence of `,' separated fields (embedded commas may be
-escaped with a backslash or notated as \e072).
-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 be a long name fully identifying the terminal,
-and all others are understood as synonyms for the terminal name.
-All names but the last should be in lower case and contain no blanks;
-the last name may well contain upper case and blanks for readability.
-.PP
-Terminal names (except for the last, verbose entry) should
-be chosen using the following conventions.
-The particular piece of hardware making up the terminal should
-have a root name, thus ``hp2621''.
-This name should not contain hyphens.
-Modes that the hardware can be in, or user preferences, should
-be indicated by appending a hyphen and a mode suffix.
-Thus, a vt100 in 132 column mode would be vt100-w.
-The following suffixes should be used where possible:
-.PP
-.TS
-center ;
-l c l
-l l l.
-\fBSuffix Meaning Example\fP
--\fInn\fP Number of lines on the screen aaa-60
--\fIn\fPp 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
--na No arrow keys (leave them in local) c100-na
--nam Without automatic margins vt100-nam
--nl No status line att4415-nl
--ns No status line hp2626-ns
--rv Reverse video c100-rv
--s Enable status line vt100-s
--vb Use visible bell instead of beep wy370-vb
--w Wide mode (> 80 columns, usually 132) vt100-w
-.TE
-.PP
-For more on terminal naming conventions, see the \fBterm(7)\fR manual page.
-.SS Capabilities
-.\" Head of terminfo man page ends here
-.ps -1
diff --git a/ncurses-5.2/man/terminfo.tail b/ncurses-5.2/man/terminfo.tail
deleted file mode 100644
index 7ea2546..0000000
--- a/ncurses-5.2/man/terminfo.tail
+++ /dev/null
@@ -1,1499 +0,0 @@
-.\" $Id$
-.\" Beginning of terminfo.tail file
-.ps +1
-.PP
-.SS A Sample Entry
-.PP
-The following entry, describing an ANSI-standard terminal, is representative
-of what a \fBterminfo\fR entry for a modern terminal typically looks like.
-.PP
-.nf
-.in -2
-.ta .3i
-.ft CW
-\s-2ansi|ansi/pc-term compatible with color,
- mc5i,
- colors#8, ncv#3, pairs#64,
- cub=\\E[%p1%dD, cud=\\E[%p1%dB, cuf=\\E[%p1%dC,
- cuu=\\E[%p1%dA, dch=\\E[%p1%dP, dl=\\E[%p1%dM,
- ech=\\E[%p1%dX, el1=\\E[1K, hpa=\\E[%p1%dG, ht=\\E[I,
- ich=\\E[%p1%d@, il=\\E[%p1%dL, indn=\\E[%p1%dS, .indn=\\E[%p1%dT,
- kbs=^H, kcbt=\\E[Z, kcub1=\\E[D, kcud1=\\E[B,
- kcuf1=\\E[C, kcuu1=\\E[A, kf1=\\E[M, kf10=\\E[V,
- kf11=\\E[W, kf12=\\E[X, kf2=\\E[N, kf3=\\E[O, kf4=\\E[P,
- kf5=\\E[Q, kf6=\\E[R, kf7=\\E[S, kf8=\\E[T, kf9=\\E[U,
- kich1=\\E[L, mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S,
- op=\\E[37;40m, rep=%p1%c\\E[%p2%{1}%-%db,
- rin=\\E[%p1%dT, s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B,
- s3ds=\\E+B, setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm,
- setb=\\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
- sgr0=\\E[0;10m, tbc=\\E[2g, u6=\\E[%d;%dR, u7=\\E[6n,
- u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%p1%dd,\s+2
-.in +2
-.fi
-.ft R
-.PP
-Entries may continue onto multiple lines by placing white space at
-the beginning of each line except the first.
-Comments may be included on lines beginning with ``#''.
-Capabilities in
-.I terminfo
-are of three types:
-Boolean capabilities which indicate that the terminal has
-some particular feature, numeric capabilities giving the size of the terminal
-or the size of particular delays, and string
-capabilities, which give a sequence which can be used to perform particular
-terminal operations.
-.PP
-.SS Types of Capabilities
-.PP
-All capabilities have names. For instance, the fact that
-ANSI-standard terminals have
-.I "automatic margins"
-(i.e., an automatic return and line-feed
-when the end of a line is reached) is indicated by the capability \fBam\fR.
-Hence the description of ansi includes \fBam\fR.
-Numeric capabilities are followed by the character `#' and then a positive value.
-Thus \fBcols\fR, which indicates the number of columns the terminal has,
-gives the value `80' for ansi.
-Values for numeric capabilities may be specified in decimal, octal or hexadecimal,
-using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF).
-.PP
-Finally, string valued capabilities, such as \fBel\fR (clear to end of line
-sequence) are given by the two-character code, an `=', and then a string
-ending at the next following `,'.
-.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
-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
-a newline, line-feed, return, tab, backspace, form-feed, and space.
-Other escapes include \fB\e^\fR for \fB^\fR,
-\fB\e\e\fR for \fB\e\fR,
-\fB\e\fR, for comma,
-\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).)
-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 `*'
-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
-.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 `/'
-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.
-.PP
-Sometimes individual capabilities must be commented out.
-To do this, put a period before the capability name.
-For example, see the second
-.B ind
-in the example above.
-.br
-.ne 5
-.PP
-.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
-that directory is searched.
-.PP
-If TERMINFO is not set, the \fBncurses\fR version of the terminfo reader code
-will instead look in the directory \fB$HOME/.terminfo\fR
-for a compiled description.
-If it fails to find one there, and the environment variable TERMINFO_DIRS is
-set, it will interpret the contents of that variable as a list of colon-
-separated directories to be searched (an empty entry is interpreted as a
-command to search \fI\*d\fR). If no description is found in any of the
-TERMINFO_DIRS directories, the fetch fails.
-.PP
-If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be the
-system terminfo directory, \fI\*d\fR.
-.PP
-(Neither the \fB$HOME/.terminfo\fR lookups nor TERMINFO_DIRS extensions are
-supported under stock System V terminfo/curses.)
-.PP
-.SS Preparing Descriptions
-.PP
-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
-and to build up a description gradually, using partial descriptions
-with
-.I vi
-or some other screen-oriented program to check that they are correct.
-Be aware that a very unusual terminal may expose deficiencies in
-the ability of the
-.I terminfo
-file to describe it
-or bugs in the screen-handling code of the test program.
-.PP
-To get the padding for insert line right (if the terminal manufacturer
-did not document it) a severe test is to edit a large file at 9600 baud,
-delete 16 or so lines from the middle of the screen, then hit the `u'
-key several times quickly.
-If the terminal messes up, more padding is usually needed.
-A similar test can be used for insert character.
-.PP
-.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
-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.
-If the terminal can clear its screen, leaving the cursor in the home
-position, then this is given by the \fBclear\fR string capability.
-If the terminal overstrikes
-(rather than clearing a position when a character is struck over)
-then it should have the \fBos\fR capability.
-If the terminal is a printing terminal, with no soft copy unit,
-give it both
-.B hc
-and
-.BR os .
-.RB ( os
-applies to storage scope terminals, such as \s-1TEKTRONIX\s+1 4010
-series, as well as hard copy and APL terminals.)
-If there is a code to move the cursor to the left edge of the current
-row, give this as
-.BR cr .
-(Normally this will be carriage return, control M.)
-If there is a code to produce an audible signal (bell, beep, etc)
-give this as
-.BR bel .
-.PP
-If there is a code to move the cursor one position to the left
-(such as backspace) that capability should be given as
-.BR cub1 .
-Similarly, codes to move to the right, up, and down should be
-given as
-.BR cuf1 ,
-.BR cuu1 ,
-and
-.BR cud1 .
-These local cursor motions should not alter the text they pass over,
-for example, you would not normally use `\fBcuf1\fP=\ ' because the
-space would erase the character moved over.
-.PP
-A very important point here is that the local cursor motions encoded
-in
-.I terminfo
-are undefined at the left and top edges of a \s-1CRT\s0 terminal.
-Programs should never attempt to backspace around the left edge,
-unless
-.B bw
-is 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
-(index) string.
-.PP
-To scroll text down, a program goes to the top left corner
-of the screen and sends the
-.B ri
-(reverse index) string.
-The strings
-.B ind
-and
-.B ri
-are undefined when not on their respective corners of the screen.
-.PP
-Parameterized versions of the scrolling sequences are
-.B indn
-and
-.B rin
-which have the same semantics as
-.B ind
-and
-.B ri
-except that they take one parameter, and scroll that many lines.
-They are also undefined except at the appropriate edge of the screen.
-.PP
-The \fBam\fR 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
-from the last column.
-The only local motion which is defined from the left edge is if
-.B bw
-is given, then a
-.B cub1
-from the left edge will move to the right edge of the previous row.
-If
-.B bw
-is not given, the effect is undefined.
-This is useful for drawing a box around the edge of the screen, for example.
-If the terminal has switch selectable automatic margins,
-the
-.I terminfo
-file usually assumes that this is on; i.e., \fBam\fR.
-If the terminal has a command which moves to the first column of the next
-line, that command can be given as
-.B nel
-(newline).
-It does not matter if the command clears the remainder of the current line,
-so if the terminal has no
-.B cr
-and
-.B lf
-it may still be possible to craft a working
-.B nel
-out of one or both of them.
-.PP
-These capabilities suffice to describe hard-copy and \*(lqglass-tty\*(rq terminals.
-Thus the model 33 teletype is described as
-.PP
-.DT
-.nf
-.ft CW
-.in -7
- \s-133\||\|tty33\||\|tty\||\|model 33 teletype,
- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
-.in +7
-.ft R
-.PP
-while the Lear Siegler \s-1ADM\-3\s0 is described as
-.PP
-.DT
-.nf
-.ft CW
-.in -7
- \s-1adm3\||\|3\||\|lsi adm3,
- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
- ind=^J, lines#24,\s+1
-.in +7
-.ft R
-.fi
-.PP
-.SS Parameterized Strings
-.PP
-Cursor addressing and other strings requiring parameters
-in the terminal are described by a
-parameterized string capability, with
-.IR printf (3S)
-like escapes \fB%x\fR in it.
-For example, to address the cursor, the
-.B cup
-capability is given, using two parameters:
-the row and column to address to.
-(Rows and columns are numbered from zero and refer to the
-physical screen visible to the user, not to any unseen memory.)
-If the terminal has memory relative cursor addressing,
-that can be indicated by
-.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
-parameters onto the stack and then print it in some format.
-Often more complex operations are necessary.
-.PP
-The \fB%\fR encodings have the following meanings:
-.PP
-.DT
-.nf
-.ta .5i 1.5i
- \s-1%% outputs `%'
- %\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP
- as in \fBprintf\fP, flags are [-+#] and space
- %c print pop() like %c in printf()
- %s print pop() like %s in printf()
-
- %p[1-9] push \fIi\fP'th parm
- %P[a-z] set dynamic variable [a-z] to pop()
- %g[a-z] get dynamic variable [a-z] and push it
- %P[A-Z] set static variable [a-z] to pop()
- %g[A-Z] get static variable [a-z] and push it
- %'\fIc\fP' char constant \fIc\fP
- %{\fInn\fP} integer constant \fInn\fP
- %l push strlen(pop)
-
- %+ %- %* %/ %m
- arithmetic (%m is mod): push(pop() op pop())
- %& %| %^ bit operations: push(pop() op pop())
- %= %> %< logical operations: push(pop() op pop())
- %A, %O logical and & or operations (for conditionals)
- %! %~ unary operations push(op pop())
- %i add 1 to first two parameters (for ANSI terminals)
-
- %? expr %t thenpart %e elsepart %;
- if-then-else, %e elsepart is optional.
- else-if's are possible a la Algol 68:
- %? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %;
-\s+1 c\di\u are conditions, b\di\u are bodies.
-.fi
-.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
-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
-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.
-.PP
-The Microterm \s-1ACT-IV\s0 needs the current row and column sent
-preceded by a \fB^T\fR, with the row and column simply encoded in binary,
-\*(lqcup=^T%p1%c%p2%c\*(rq.
-Terminals which use \*(lq%c\*(rq need to be able to
-backspace the cursor (\fBcub1\fR),
-and to move the cursor up one line on the screen (\fBcuu1\fR).
-This is necessary because it is not always safe to transmit \fB\en\fR
-\fB^D\fR and \fB\er\fR, as the system may change or discard them.
-(The library routines dealing with terminfo set tty modes so that
-tabs are never expanded, so \et is safe to send.
-This turns out to be essential for the Ann Arbor 4080.)
-.PP
-A final example is the \s-1LSI ADM\s0-3a, which uses row and column
-offset by a blank character, thus \*(lqcup=\eE=%p1%' '%+%c%p2%' '%+%c\*(rq.
-After sending `\eE=', this pushes the first parameter, pushes the
-ASCII value for a space (32), adds them (pushing the sum on the stack
-in place of the two previous values) and outputs that value as a character.
-Then the same is done for the second parameter.
-More complex arithmetic is possible using the stack.
-.PP
-.SS Cursor Motions
-.PP
-If the terminal has a fast way to home the cursor
-(to very upper left corner of screen) then this can be given as
-\fBhome\fR; similarly a fast way of getting to the lower left-hand corner
-can be given as \fBll\fR; this may involve going up with \fBcuu1\fR
-from the home position,
-but a program should never do this itself (unless \fBll\fR does) because it
-can make no assumption about the effect of moving up from the home position.
-Note that the home position is the same as addressing to (0,0):
-to the top left corner of the screen, not of memory.
-(Thus, the \eEH sequence on HP terminals cannot be used for
-.BR home .)
-.PP
-If the terminal has row or column absolute cursor addressing,
-these can be given as single parameter capabilities
-.B hpa
-(horizontal position absolute)
-and
-.B vpa
-(vertical position absolute).
-Sometimes these are shorter than the more general two parameter
-sequence (as with the hp2645) and can be used in preference to
-.BR cup .
-If there are parameterized local motions (e.g., move
-.I n
-spaces to the right) these can be given as
-.BR cud ,
-.BR cub ,
-.BR cuf ,
-and
-.BR cuu
-with a single parameter indicating how many spaces to move.
-These are primarily useful if the terminal does not have
-.BR cup ,
-such as the \s-1TEKTRONIX\s+1 4025.
-.PP
-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 \fBsmcup\fR and \fBrmcup\fR.
-This arises, for example, from terminals like the Concept with more than
-one page of memory.
-If the terminal has only memory relative cursor addressing and not screen
-relative cursor addressing, a one screen-sized window must be fixed into
-the terminal for cursor addressing to work properly.
-This is also used for the \s-1TEKTRONIX\s+1 4025,
-where
-.B smcup
-sets the command character to be the one used by terminfo.
-If the \fBsmcup\fP sequence will not restore the screen after an
-\fBrmcup\fP sequence is output (to the state prior to outputting
-\fBrmcup\fP), specify \fBnrrmc\fP.
-.PP
-.SS Area Clears
-.PP
-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 \fBel\fR.
-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 \fBel1\fP.
-If the terminal can clear from the current position to the end of the
-display, then this should be given as \fBed\fR.
-\fBEd\fR 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
-is not available.)
-.PP
-.SS Insert/delete line and vertical motions
-.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.
-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.
-Versions of
-.B il1
-and
-.B dl1
-which take a single parameter and insert or delete that many lines can
-be given as
-.B il
-and
-.BR dl .
-.PP
-If the terminal has a settable scrolling region (like the vt100)
-the command to set this can be described with the
-.B csr
-capability, which takes two parameters:
-the top and bottom lines of the scrolling region.
-The cursor position is, alas, undefined after using this command.
-.PP
-It is possible to get the effect of insert or delete line using
-.B csr
-on a properly chosen region; the
-.B sc
-and
-.B rc
-(save and restore cursor) commands may be useful for ensuring that
-your synthesized insert/delete string does not move the cursor.
-(Note that the \fBncurses\fR(3X) library does this synthesis
-automatically, so you need not compose insert/delete strings for
-an entry with \fBcsr\fR).
-.PP
-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 however also has insert/delete).
-.PP
-Inserting lines at the top or bottom of the screen can also be
-done using
-.B ri
-or
-.B ind
-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
-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,
-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
-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
-after scrolling if \fBndstr\fR is defined.
-.PP
-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
-.BR wind .
-The four parameters are the starting and ending lines in memory
-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
-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
-.SS Insert/Delete Character
-.PP
-There are two basic kinds of intelligent terminals with respect to
-insert/delete character which can be described using
-.I terminfo.
-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 \*(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
-mode. If typing characters causes the rest of the line to shift
-rigidly and characters to fall off the end, then your terminal does
-not distinguish between blanks and untyped positions. If the \*(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.
-While these are two logically separate attributes (one line vs. 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
-Terminfo can describe both terminals which have an insert mode, and terminals
-which send a simple sequence to open a blank position on the current line.
-Give as \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
-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
-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
-require previous smir, and most smir insert modes do not require \fBich1\fR
-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
-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
-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
-.BR smir / rmir
-and
-.B ich1
-can be given, and both will be used.
-The
-.B ich
-capability, with one parameter,
-.IR n ,
-will repeat the effects of
-.B ich1
-.I n
-times.
-.PP
-If padding is necessary between characters typed while not
-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
-the insertion position). If your terminal allows motion while in
-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
-(notably Datamedia's) must not have \fBmir\fR because of the way their
-insert mode works.
-.PP
-Finally, you can specify
-.B dch1
-to delete a single character,
-.B dch
-with one parameter,
-.IR n ,
-to delete
-.I n characters,
-and delete mode by giving \fBsmdc\fR and \fBrmdc\fR
-to enter and exit delete mode (any mode the terminal needs to be placed
-in for
-.B dch1
-to work).
-.PP
-A command to erase
-.I n
-characters (equivalent to outputting
-.I n
-blanks without moving the cursor)
-can be given as
-.B ech
-with one parameter.
-.PP
-.SS "Highlighting, Underlining, and Visible Bells"
-.PP
-If your terminal has one or more kinds of display attributes,
-these can be represented in a number of different ways.
-You should choose one display form as
-\f2standout mode\fR,
-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 \fBsmso\fR and \fBrmso\fR, 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 \fBxmc\fR should be given to tell how many spaces are left.
-.PP
-Codes to begin underlining and end underlining can be given as \fBsmul\fR
-and \fBrmul\fR respectively.
-If the terminal has a code to underline the current character and move
-the cursor one space to the right,
-such as the Microterm Mime,
-this can be given as \fBuc\fR.
-.PP
-Other capabilities to enter various highlighting modes include
-.B blink
-(blinking)
-.B bold
-(bold or extra bright)
-.B dim
-(dim or half-bright)
-.B invis
-(blanking or invisible text)
-.B prot
-(protected)
-.B rev
-(reverse video)
-.B sgr0
-(turn off
-.I all
-attribute modes)
-.B smacs
-(enter alternate character set mode)
-and
-.B rmacs
-(exit alternate character set mode).
-Turning on any of these modes singly may or may not turn off other modes.
-.PP
-If there is a sequence to set arbitrary combinations of modes,
-this should be given as
-.B sgr
-(set attributes),
-taking 9 parameters.
-Each parameter is either 0 or nonzero, as the corresponding attribute is on or off.
-The 9 parameters are, in order:
-standout, underline, reverse, blink, dim, bold, blank, protect, alternate
-character set.
-Not all modes need be supported by
-.BR sgr ,
-only those for which corresponding separate attribute commands exist.
-.PP
-For example, the DEC vt220 supports most of the modes:
-.PP
-.TS
-center;
-l c c
-l c c
-lw28 lw6 lw2 lw20.
-\fBtparm parameter attribute escape sequence\fP
-
-none none \\E[0m
-p1 standout \\E[0;1;7m
-p2 underline \\E[0;4m
-p3 reverse \\E[0;7m
-p4 blink \\E[0;5m
-p5 dim not available
-p6 bold \\E[0;1m
-p7 invis \\E[0;8m
-p8 protect not used
-p9 altcharset ^O (off) ^N (on)
-.TE
-.PP
-We begin each escape sequence by turning off any existing modes, since
-there is no quick way to determine whether they are active.
-Standout is set up to be the combination of reverse and bold.
-The vt220 terminal has a protect mode,
-though it is not commonly used in sgr
-because it protects characters on the screen from the host's erasures.
-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.
-.PP
-Some sequences are common to different modes.
-For example, ;7 is output when either p1 or p3 is true, that is, if
-either standout or reverse modes are turned on.
-.PP
-Writing out the above sequences, along with their dependencies yields
-.PP
-.TS
-center;
-l c c
-l c c
-lw28 lw6 lw2 lw20.
-\fBsequence when to output terminfo translation\fP
-
-\\E[0 always \\E[0
-;1 if p1 or p6 %?%p1%p6%|%t;1%;
-;4 if p2 %?%p2%|%t;4%;
-;5 if p4 %?%p4%|%t;5%;
-;7 if p1 or p3 %?%p1%p3%|%t;7%;
-;8 if p7 %?%p7%|%t;8%;
-m always m
-^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
-.TE
-.PP
-Putting this all together into the sgr sequence gives:
-.PP
-.nf
- sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
- %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;,
-.fi
-.PP
-Remember that if you specify sgr, you must also specify sgr0.
-.PP
-Terminals with the ``magic cookie'' glitch
-.RB ( xmc )
-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
-capability, asserting that it is safe to move in standout mode, is present.
-.PP
-If the terminal has
-a way of flashing the screen to indicate an error quietly (a bell replacement)
-then this can be given as \fBflash\fR; it must not move the cursor.
-.PP
-If the cursor needs to be made more visible than normal when it is
-not on the bottom line (to make, for example, a non-blinking underline into an
-easier to find block or blinking underline)
-give this sequence as
-.BR cvvis .
-If there is a way to make the cursor completely invisible, give that as
-.BR civis .
-The capability
-.BR cnorm
-should be given which undoes the effects of both of these modes.
-.PP
-If your terminal correctly generates underlined characters
-(with no special codes needed)
-even though it does not overstrike,
-then you should give the capability \fBul\fR.
-If a character overstriking another leaves both characters on the screen,
-specify the capability \fBos\fP.
-If overstrikes are erasable with a blank,
-then this should be indicated by giving \fBeo\fR.
-.PP
-.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
-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 \fBsmkx\fR and \fBrmkx\fR.
-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
-\fBkcub1, kcuf1, kcuu1, kcud1, \fRand\fB khome\fR respectively.
-If there are function keys such as f0, f1, ..., f10, the codes they send
-can be given as \fBkf0, kf1, ..., kf10\fR.
-If these keys have labels other than the default f0 through f10, the labels
-can be given as \fBlf0, lf1, ..., lf10\fR.
-The codes transmitted by certain other special keys can be given:
-.B kll
-(home down),
-.B kbs
-(backspace),
-.B ktbc
-(clear all tabs),
-.B kctab
-(clear the tab stop in this column),
-.B kclr
-(clear screen or erase key),
-.B kdch1
-(delete character),
-.B kdl1
-(delete line),
-.B krmir
-(exit insert mode),
-.B kel
-(clear to end of line),
-.B ked
-(clear to end of screen),
-.B kich1
-(insert character or enter insert mode),
-.B kil1
-(insert line),
-.B knp
-(next page),
-.B kpp
-(previous page),
-.B kind
-(scroll forward/down),
-.B kri
-(scroll backward/up),
-.B khts
-(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
-.BR ka1 ,
-.BR ka3 ,
-.BR kb2 ,
-.BR kc1 ,
-and
-.BR kc3 .
-These keys are useful when the effects of a 3 by 3 directional pad are needed.
-.PP
-Strings to program function keys can be given as
-.BR pfkey ,
-.BR pfloc ,
-and
-.BR pfx .
-A string to program screen labels should be specified as \fBpln\fP.
-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 numbers out of this range may program undefined keys in
-a terminal dependent manner.
-The difference between the capabilities is that
-.B pfkey
-causes pressing the given key to be the same as the user typing the
-given string;
-.B pfloc
-causes the string to be executed by the terminal in local; and
-.B pfx
-causes the string to be transmitted to the computer.
-.PP
-The capabilities \fBnlab\fP, \fBlw\fP and \fBlh\fP
-define the number of programmable
-screen labels and their width and height.
-If there are commands to turn the labels on and off,
-give them in \fBsmln\fP and \fBrmln\fP.
-\fBsmln\fP is normally output after one or more pln
-sequences to make sure that the change becomes visible.
-.PP
-.SS Tabs and Initialization
-.PP
-If the terminal has hardware tabs, the command to advance to the next
-tab stop can be given as
-.B ht
-(usually control I).
-A ``back-tab'' command which moves leftward to the preceding tab stop can
-be given as
-.BR cbt .
-By convention, if the teletype modes indicate that tabs are being
-expanded by the computer rather than being sent to the terminal,
-programs should not use
-.B ht
-or
-.B cbt
-even if they are present, since the user may not have the tab stops
-properly set.
-If the terminal has hardware tabs which are initially set every
-.I n
-spaces when the terminal is powered up,
-the numeric parameter
-.B it
-is given, showing the number of spaces the tabs are set to.
-This is normally used by the
-.IR tset
-command to determine whether to set the mode for hardware tab expansion,
-and whether to set the tab stops.
-If the terminal has tab stops that can be saved in non-volatile memory,
-the terminfo description can assume that they are properly set.
-.PP
-Other capabilities
-include
-.BR is1 ,
-.BR is2 ,
-and
-.BR is3 ,
-initialization strings for the terminal,
-.BR iprog ,
-the path name of a program to be run to initialize the terminal,
-and \fBif\fR, the name of a file containing long initialization strings.
-These strings are expected to set the terminal into modes consistent
-with the rest of the terminfo description.
-They are normally sent to the terminal, by the
-.I init
-option of the
-.IR tput
-program, each time the user logs in.
-They will be printed in the following order:
-run the program
-.BR iprog ;
-output
-.BR is1 ;
-.BR is2 ;
-set the margins using
-.BR mgc ,
-.BR smgl
-and
-.BR smgr ;
-set tabs using
-.B tbc
-and
-.BR hts ;
-print the file
-.BR if ;
-and finally
-output
-.BR is3 .
-.PP
-Most initialization is done with
-.BR is2 .
-Special terminal modes can be set up without duplicating strings
-by putting the common sequences in
-.B is2
-and special cases in
-.B is1
-and
-.BR is3 .
-A pair of sequences that does a harder reset from a totally unknown state
-can be analogously given as
-.BR rs1 ,
-.BR rs2 ,
-.BR rf ,
-and
-.BR rs3 ,
-analogous to
-.B is2
-and
-.BR if .
-These strings are output by the
-.IR reset
-program, which is used when the terminal gets into a wedged state.
-Commands are normally placed in
-.BR rs1 ,
-.BR rs2
-.B rs3
-and
-.B rf
-only if they produce annoying effects on the screen and are not
-necessary when logging in.
-For example, the command to set the vt100 into 80-column mode would
-normally be part of
-.BR is2 ,
-but it causes an annoying glitch of the screen and is not normally
-needed since the terminal is usually already in 80 column mode.
-.PP
-If there are commands to set and clear tab stops, they can be given as
-.B tbc
-(clear all tab stops)
-and
-.B hts
-(set a tab stop in the current column of every row).
-If a more complex sequence is needed to set the tabs than can be
-described by this, the sequence can be placed in
-.B is2
-or
-.BR if .
-.SS Delays and Padding
-.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
-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
-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
-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,
-then this can be given as \fBpad\fR.
-Only the first character of the
-.B pad
-string is used.
-.PP
-.SS Status Lines
-Some terminals have an extra `status line' which is not normally used by
-software (and thus not counted in the terminal's \fBlines\fR capability).
-.PP
-The simplest case is a status line which is cursor-addressable but not
-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
-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
-\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
-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
-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.
-.PP
-The \fBncurses\fR implementation does not yet use any of these capabilities.
-They are documented here in case they ever become important.
-.PP
-.SS Line Graphics
-.PP
-Many terminals have alternate character sets useful for forms-drawing.
-Terminfo and \fBcurses\fR build in support for the drawing characters
-supported by the VT100, with some characters from the AT&T 4410v1 added.
-This alternate character set may be specified by the \fBacsc\fR capability.
-.PP
-.TS H
-center expand;
-c l l c
-c l l c
-lw28 lw6 lw2 lw20.
-.\".TH
-\fBGlyph ACS Ascii VT100\fR
-\fBName Name Default Name\fR
-UK pound sign ACS_STERLING f }
-arrow pointing down ACS_DARROW v .
-arrow pointing left ACS_LARROW < ,
-arrow pointing right ACS_RARROW > +
-arrow pointing up ACS_UARROW ^ -
-board of squares ACS_BOARD # h
-bullet ACS_BULLET o ~
-checker board (stipple) ACS_CKBOARD : a
-degree symbol ACS_DEGREE \e f
-diamond ACS_DIAMOND + `
-greater-than-or-equal-to ACS_GEQUAL > z
-greek pi ACS_PI * {
-horizontal line ACS_HLINE - q
-lantern symbol ACS_LANTERN # i
-large plus or crossover ACS_PLUS + n
-less-than-or-equal-to ACS_LEQUAL < y
-lower left corner ACS_LLCORNER + m
-lower right corner ACS_LRCORNER + j
-not-equal ACS_NEQUAL ! |
-plus/minus ACS_PLMINUS # g
-scan line 1 ACS_S1 ~ o
-scan line 3 ACS_S3 - p
-scan line 7 ACS_S7 - r
-scan line 9 ACS_S9 \&_ s
-solid square block ACS_BLOCK # 0
-tee pointing down ACS_TTEE + w
-tee pointing left ACS_RTEE + u
-tee pointing right ACS_LTEE + t
-tee pointing up ACS_BTEE + v
-upper left corner ACS_ULCORNER + l
-upper right corner ACS_URCORNER + k
-vertical line ACS_VLINE | x
-.TE
-.PP
-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
-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
-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
-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
-terminals are Tektronix-like.
-.PP
-Some basic color capabilities are independent of the color method. The numeric
-capabilities \fBcolors\fR and \fBpairs\fR specify the maximum numbers of colors
-and color-pairs that can be displayed simultaneously. The \fBop\fR (original
-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
-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.
-.PP
-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
-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
-supports other escape sequences to set background and foreground, they should
-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
-single numeric argument each. Argument values 0-7 are portably defined as
-follows (the middle column is the symbolic #define available in the header for
-the \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
-.TS H
-center;
-l c c c
-l l n l.
-\fBColor #define Value RGB\fR
-black \fBCOLOR_BLACK\fR 0 0, 0, 0
-red \fBCOLOR_RED\ \fR 1 max,0,0
-green \fBCOLOR_GREEN\fR 2 0,max,0
-yellow \fBCOLOR_YELLOW\fR 3 max,max,0
-blue \fBCOLOR_BLUE\fR 4 0,0,max
-magenta \fBCOLOR_MAGENTA\fR 5 max,0,max
-cyan \fBCOLOR_CYAN\fR 6 0,max,max
-white \fBCOLOR_WHITE\fR 7 max,max,max
-.TE
-.PP
-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
-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
-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
-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
-foreground colors. These parameters must be (Red, Green, Blue) or
-(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
-attributes understood by \fBcurses\fR is as follows:
-.PP
-.TS
-center;
-l c c
-lw25 lw2 lw10.
-\fBAttribute Bit Decimal\fR
-A_STANDOUT 0 1
-A_UNDERLINE 1 2
-A_REVERSE 2 4
-A_BLINK 3 8
-A_DIM 4 16
-A_BOLD 5 32
-A_INVIS 6 64
-A_PROTECT 7 128
-A_ALTCHARSET 8 256
-.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
-an \fBncv\fR capability of 2.
-.PP
-SVr4 curses does nothing with \fBncv\fR, ncurses recognizes it and optimizes
-the output in favor of colors.
-.PP
-.SS Miscellaneous
-If the terminal requires other than a null (zero) character as a pad, then this
-can be given as pad.
-Only the first character of the pad string is used.
-If the terminal does not have a pad character, specify npc.
-Note that ncurses implements the termcap-compatible \fBPC\fR variable;
-though the application may set this value to something other than
-a null, ncurses will test \fBnpc\fR first and use napms if the terminal
-has no pad character.
-.PP
-If the terminal can move up or down half a line,
-this can be indicated with
-.B hu
-(half-line up)
-and
-.B hd
-(half-line down).
-This is primarily useful for superscripts and subscripts on hard-copy terminals.
-If a hard-copy terminal can eject to the next page (form feed), give this as
-.B ff
-(usually control L).
-.PP
-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
-.BR rep .
-The first parameter is the character to be repeated and the second
-is the number of times to repeat it.
-Thus, tparm(repeat_char, 'x', 10) is the same as `xxxxxxxxxx'.
-.PP
-If the terminal has a settable command character, such as the \s-1TEKTRONIX\s+1 4025,
-this can be indicated with
-.BR cmdch .
-A prototype command character is chosen which is used in all capabilities.
-This character is given in the
-.B cmdch
-capability to identify it.
-The following convention is supported on some UNIX systems:
-The environment is to be searched for a
-.B CC
-variable, and if found, all
-occurrences of the prototype character are replaced with the character
-in the environment variable.
-.PP
-Terminal descriptions that do not represent a specific kind of known
-terminal, such as
-.IR switch ,
-.IR dialup ,
-.IR patch ,
-and
-.IR network ,
-should include the
-.B gn
-(generic) capability so that programs can complain that they do not know
-how to talk to the terminal.
-(This capability does not apply to
-.I virtual
-terminal descriptions for which the escape sequences are known.)
-.PP
-If the terminal has a ``meta key'' which acts as a shift key,
-setting the 8th bit of any character transmitted, this fact can
-be indicated with
-.BR km .
-Otherwise, software will assume that the 8th bit is parity and it
-will usually be cleared.
-If strings exist to turn this ``meta mode'' on and off, they
-can be given as
-.B smm
-and
-.BR rmm .
-.PP
-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
-.BR lm .
-A value of
-.BR lm #0
-indicates that the number of lines is not fixed,
-but that there is still more memory than fits on the screen.
-.PP
-If the terminal is one of those supported by the \s-1UNIX\s+1 virtual
-terminal protocol, the terminal number can be given as
-.BR vt .
-.PP
-Media copy
-strings which control an auxiliary printer connected to the terminal
-can be given as
-.BR mc0 :
-print the contents of the screen,
-.BR mc4 :
-turn off the printer, and
-.BR mc5 :
-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 terminal screen
-when the printer is on.
-A variation
-.B mc5p
-takes one parameter, and leaves the printer on for as many characters
-as the value of the parameter, then turns the printer off.
-The parameter should not exceed 255.
-All text, including
-.BR mc4 ,
-is transparently passed to the printer while an
-.B mc5p
-is in effect.
-.PP
-.SS Glitches and Braindamage
-.PP
-Hazeltine terminals, which do not allow `~' characters to be displayed should
-indicate \fBhz\fR.
-.PP
-Terminals which ignore a line-feed immediately after an \fBam\fR wrap,
-such as the Concept and vt100,
-should indicate \fBxenl\fR.
-.PP
-If
-.B el
-is required to get rid of standout
-(instead of merely writing normal text on top of it),
-\fBxhp\fP should be given.
-.PP
-Teleray terminals, where tabs turn all characters moved over to blanks,
-should indicate \fBxt\fR (destructive tabs).
-Note: the variable indicating this is now `dest_tabs_magic_smso'; in
-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
-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
-.BR xsb ,
-indicating that the f1 key is used for escape and f2 for control C.
-(Only certain Superbees have this problem, depending on the ROM.)
-Note that in older terminfo versions, this capability was called
-`beehive_glitch'; it is now `no_esc_ctl_c'.
-.PP
-Other specific terminal problems may be corrected by adding more
-capabilities of the form \fBx\fR\fIx\fR.
-.PP
-.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
-definition of the variant, the string capability \fBuse\fR can be given with
-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
-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
-use reference that imports it, where \fIxx\fP is the capability.
-For example, the entry
-.PP
- 2621-nl, smkx@, rmkx@, use=2621,
-.PP
-defines a 2621-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities,
-and hence does not turn on the function key labels when in visual mode.
-This is useful for different modes for a terminal, or for different
-user preferences.
-.PP
-.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
-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
-the termcap library, so that makes the maximum safe length for a termcap entry
-1k-1 (1023) bytes. Depending on what the application and the termcap library
-being used does, and where in the termcap file the terminal type that tgetent()
-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
-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
-tacks on another termcap entry to the end of the current one, to add
-on its capabilities. If a termcap entry doesn't use the "tc"
-capability, then of course the two lengths are the same.
-.PP
-The "before tc expansion" length is the most important one, because it
-affects more than just users of that particular terminal. This is the
-length of the entry as it exists in /etc/termcap, minus the
-backslash-newline pairs, which tgetent() strips out while reading it.
-Some termcap libraries strip off the final newline, too (GNU termcap does not).
-Now suppose:
-.TP 5
-*
-a termcap entry before expansion is more than 1023 bytes long,
-.TP 5
-*
-and the application has only allocated a 1k buffer,
-.TP 5
-*
-and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
-the whole entry into the buffer, no matter what its length, to see
-if it's the entry it wants,
-.TP 5
-*
-and tgetent() is searching for a terminal type that either is the
-long entry, appears in the termcap file after the long entry, or
-doesn't appear in the file at all (so that tgetent() has to search
-the whole 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
-as undesirable with a termcap library, like SunOS 4.1.3 and Ultrix 4.4, that
-prints warning messages when it reads an overly long termcap entry. If a
-termcap library truncates long entries, like OSF/1 3.0, it is immune to dying
-here but will return incorrect data for the terminal.
-.PP
-The "after tc expansion" length will have a similar effect to the
-above, but only for people who actually set TERM to that terminal
-type, since tgetent() only does "tc" expansion once it's found the
-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
-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
-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
-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.
-.SH EXTENSIONS
-Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, don't
-interpret the %A and %O operators in parameter strings.
-.PP
-SVr4/XPG4 do not specify whether \fBmsgr\fR licenses movement while in
-an alternate-character-set mode (such modes may, among other things, map
-CR and NL to characters that don't trigger local motions).
-The \fBncurses\fR implementation ignores \fBmsgr\fR in \fBALTCHARSET\fR
-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
-in a slightly non-standard way in order 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
-not documented in SVr4 or the XSI Curses standard. They are deduced from the
-documentation for the AT&T 505 terminal.
-.PP
-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
-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 --
-These support all SVr4 capabilities.
-.PP
-\fBSGI\fR --
-Supports the SVr4 set, adds one undocumented extended string
-capability (\fBset_pglen\fR).
-.PP
-\fBSVr1, Ultrix\fR --
-These support a restricted subset of terminfo capabilities. The booleans
-end with \fBxon_xoff\fR; the numerics with \fBwidth_status_line\fR; and the
-strings with \fBprtr_non\fR.
-.PP
-\fBHP/UX\fR --
-Supports the SVr1 subset, plus the SVr[234] numerics \fBnum_labels\fR,
-\fBlabel_height\fR, \fBlabel_width\fR, plus function keys 11 through 63, plus
-\fBplab_norm\fR, \fBlabel_on\fR, and \fBlabel_off\fR, plus some incompatible
-extensions in the string table.
-.PP
-\fBAIX\fR --
-Supports the SVr1 subset, plus function keys 11 through 63, plus a number
-of incompatible string table extensions.
-.PP
-\fBOSF\fR --
-Supports both the SVr4 set and the AIX extensions.
-.SH FILES
-.TP 25
-\*d/?/*
-files containing terminal descriptions
-.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.
-Based on pcurses by Pavel Curtis.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/tic.1m b/ncurses-5.2/man/tic.1m
deleted file mode 100644
index 1bfdac7..0000000
--- a/ncurses-5.2/man/tic.1m
+++ /dev/null
@@ -1,301 +0,0 @@
-.\"***************************************************************************
-.\" 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 *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" 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$
-.TH tic 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBtic\fR - the \fIterminfo\fR entry-description compiler
-.SH SYNOPSIS
-\fBtic\fR
-[\fB\-\
-1\
-C\
-I\
-N\
-R\
-T\
-V\
-a\
-c\
-f\
-r\
-s\
-x\
-\fR]
-[\fB-e\fR \fInames\fR]
-[\fB-o\fR \fIdir\fR]
-[\fB-v\fR[\fIn\fR]]
-[\fB-w\fR[\fIn\fR]]
-\fIfile\fR
-.br
-.SH DESCRIPTION
-The command \fBtic\fR translates a \fBterminfo\fR file from source
-format into compiled format. The compiled format is necessary for use with
-the library routines in \fBncurses\fR(3X).
-.PP
-The results are normally placed in the system terminfo
-directory \fB\*d\fR. There are two ways to change this behavior.
-.PP
-First, you may override the system default by setting the variable
-\fBTERMINFO\fR in your shell environment to a valid (existing) directory name.
-.PP
-Secondly, if \fBtic\fR cannot get access to \fI\*d\fR or your TERMINFO
-directory, it looks for the directory \fI$HOME/.terminfo\fR; if that directory
-exists, the entry is placed there.
-.PP
-Libraries that read terminfo entries are expected to check for a TERMINFO
-directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and
-finally look in \fI\*d\fR.
-.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
-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
-will print warnings about entries which, after use resolution, are more than
-1023 (4096) bytes long. Due to a fixed buffer length in older termcap
-libraries (and a documented limit in terminfo), these entries may cause core
-dumps.
-.TP
-\fB-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
-.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-G\fR
-Display constant literals in decimal form
-rather than their character equivalents.
-.TP
-\fB-I\fR
-Force source translation to terminfo format.
-.TP
-\fB-L\fR
-Force source translation to terminfo format
-using the long C variable names listed in <\fBterm.h\fR>
-.TP
-\fB-N\fR
-Disable smart defaults.
-Normally, when translating from termcap to terminfo, the compiler makes
-a number of assumptions about the defaults of string capabilities
-\fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR,
-\fBcursor_down\fR, \fBscroll_forward\fR, \fBtab\fR, \fBnewline\fR,
-\fBkey_backspace\fR, \fBkey_left\fR, and \fBkey_down\fR, then attempts
-to use obsolete termcap capabilities to deduce correct values. It also
-normally suppresses output of obsolete termcap capabilities such as \fBbs\fR.
-This option forces a more literal translation that also preserves the
-obsolete capabilities.
-.TP
-\fB-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
-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-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-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.
-.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-x\fR
-Treat unknown capabilities as user-defined.
-That is, if you supply a capability name which \fBtic\fP does not recognize,
-it will infer its type (boolean, number or string) from the syntax and
-make an extended table entry for that.
-.TP
-\fIfile\fR
-contains one or more \fBterminfo\fR terminal descriptions in source
-format [see \fBterminfo\fR(\*n)]. Each description in the file
-describes the capabilities of a particular terminal.
-.PP
-The debug flag levels are as follows:
-.TP
-1
-Names of files created and linked
-.TP
-2
-Information related to the ``use'' facility
-.TP
-3
-Statistics from the hashing algorithm
-.TP
-5
-String-table memory allocations
-.TP
-7
-Entries into the string-table
-.TP
-8
-List of tokens encountered by scanner
-.TP
-9
-All values computed in construction of the hash table
-.LP
-If n 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.
-
-When a \fBuse\fR=\fIentry\fR-\fIname\fR field is discovered in a
-terminal entry currently being compiled, \fBtic\fR reads in the binary
-from \fB\*d\fR to complete the entry. (Entries created from
-\fIfile\fR will be used first. If the environment variable
-\fBTERMINFO\fR is set, that directory is searched instead of
-\fB\*d\fR.) \fBtic\fR duplicates the capabilities in
-\fIentry\fR-\fIname\fR for the current entry, with the exception of
-those capabilities that explicitly are defined in the current entry.
-
-When an entry, e.g., \fBentry_name_1\fR, contains a
-\fBuse=\fR\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled
-capabilities in \fIentry\fR_\fIname\fR_\fI2\fR must also appear in
-\fBentry_name_1\fR before \fBuse=\fR for these capabilities to be
-canceled in \fBentry_name_1\fR.
-
-If the environment variable \fBTERMINFO\fR is set, the compiled
-results are placed there instead of \fB\*d\fR.
-
-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 long filenames, 14 characters otherwise)
-will be truncated to the maximum alias length and a warning message will be printed.
-.SH COMPATIBILITY
-There is some evidence that historic \fBtic\fR implementations treated
-description fields with no whitespace in them as additional aliases or
-short names. This \fBtic\fR does not do that, but it does warn when
-description fields may be treated that way and check them for dangerous
-characters.
-.SH EXTENSIONS
-Unlike the stock SVr4 \fBtic\fR command, this implementation can actually
-compile termcap sources. In fact, entries in terminfo and termcap syntax can
-be mixed in a single source file. See \fBterminfo\fR(\*n) for the list of
-termcap names taken to be equivalent to terminfo names.
-
-The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR
-capabilities.
-This implementation of \fBtic\fR will find \fBuse\fR targets anywhere
-in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if
-\fBTERMINFO\fR is defined), or in the user's \fI$HOME/.terminfo\fR directory
-(if it exists), or (finally) anywhere in the system's file tree of
-compiled entries.
-
-The error messages from this \fBtic\fR have the same format as GNU C
-error messages, and can be parsed by GNU Emacs's compile facility.
-
-The
-\fB-C\fR,
-\fB-G\fR,
-\fB-I\fR,
-\fB-N\fR,
-\fB-R\fR,
-\fB-T\fR,
-\fB-V\fR,
-\fB-a\fR,
-\fB-e\fR,
-\fB-f\fR,
-\fB-g\fR,
-\fB-o\fR,
-\fB-r\fR,
-\fB-s\fR and
-\fB-x\fR
-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
-\fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
-.SH FILES
-.TP 5
-\fB\*d/?/*\fR
-Compiled terminal description database.
-.SH SEE ALSO
-\fB@INFOCMP@\fR(1M), \fB@CAPTOINFO@\fR(1M), \fB@INFOTOCAP@\fR(1M),
-\fB@TOE@\fR(1M), \fBcurses\fR(3X), \fBterminfo\fR(\*n).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/toe.1m b/ncurses-5.2/man/toe.1m
deleted file mode 100644
index 8b6e546..0000000
--- a/ncurses-5.2/man/toe.1m
+++ /dev/null
@@ -1,81 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH toe 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBtoe\fR - table of (terminfo) entries
-.SH SYNOPSIS
-\fBtoe\fR [\fB-v\fR[\fIn\fR]] [\fB-huUV\fR] \fIfile...\fR
-.br
-.SH DESCRIPTION
-.PP
-With no options, \fBtoe\fR lists all available terminal types by primary name
-with descriptions. File arguments specify the directories to be scanned; if no
-such arguments are given, your default terminfo directory is scanned. If you
-also specify the -h option, a directory header will be issued as each
-directory is entered.
-.PP
-There are other options intended for use by terminfo file maintainers:
-.TP
-\fB-u\fR \fIfile\fR
-says to issue a report on dependencies in the given file. This report condenses
-the `use' relation: each line consists of the primary name of a terminal that
-has use capabilities, followed by a colon, followed by the
-whitespace-separated primary names of all terminals which occur in those use
-capabilities, followed by a newline
-.TP
-\fB-U\fR \fIfile\fR
-says to issue a report on reverse dependencies in the given file. This report
-reverses the `use' relation: each line consists of the primary name of a
-terminal that occurs in use capabilities, followed by a colon, followed by the
-whitespace-separated primary names of all terminals which depend on it,
-followed by a newline.
-.TP
-\fB-v\fR\fIn\fR
-specifies that (verbose) output be written to standard error trace
-information showing \fBtoe\fR's progress. The optional integer
-\fIn\fR is a number from 1 to 10, interpreted as for \fBtic\fR(1).
-.TP 5
-\fB-V\fR
-reports the version of ncurses which was used in this program, and exits.
-.SH FILES
-.TP 5
-\fB\*d/?/*\fR
-Compiled terminal description database.
-.SH SEE ALSO
-\fB@TIC@\fR(1M), \fB@INFOCMP@\fR(1M), \fB@CAPTOINFO@\fR(1M),
-\fB@INFOTOCAP@\fR(1M), \fBcurses\fR(3X), \fBterminfo\fR(\*n).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/tput.1 b/ncurses-5.2/man/tput.1
deleted file mode 100644
index 44c2442..0000000
--- a/ncurses-5.2/man/tput.1
+++ /dev/null
@@ -1,256 +0,0 @@
-'\" 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$
-.TH tput 1 ""
-.ds d @TERMINFO@
-.ds n 5
-.SH NAME
-\fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
-.SH SYNOPSIS
-\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
-.br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR
-.br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR
-.br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
-.br
-\fBtput -S\fR \fB<<\fR
-.br
-\fBtput -V\fR
-.br
-.SH DESCRIPTION
-The \fBtput\fR utility uses the \fBterminfo\fR database to make the
-values of terminal-dependent capabilities and information available to
-the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
-return the long name of the requested terminal type. \fBtput\fR
-outputs a string if the attribute (\fIcap\fRability \fIname\fR) is of
-type string, or an integer if the attribute is of type integer. If
-the attribute is of type boolean, \fBtput\fR simply sets the exit code
-(\fB0\fR for TRUE if the terminal has the capability, \fB1\fR for
-FALSE if it does not), and produces no output. Before using a value
-returned on standard output, the user should test the exit code
-[\fB$?\fR, see \fBsh\fR(1)] to be sure it is \fB0\fR.
-(See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
-For a complete list of capabilities
-and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n).
-.TP
-\fB-T\fR\fItype\fR
-indicates the \fItype\fR of terminal. Normally this option is
-unnecessary, because the default is taken from the environment
-variable \fBTERM\fR. If \fB-T\fR is specified, then the shell
-variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the
-operating system will not be queried for the actual screen size.
-.TP
-\fIcapname\fR
-indicates the attribute from the \fBterminfo\fR database. When
-\fBtermcap\fR support is compiled in, the \fBtermcap\fR name for
-the attribute is also accepted.
-.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.
-.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
-meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
-EXIT CODES section).
-.TP
-\fB-V\fR
-reports the version of ncurses which was used in this program, and exits.
-.TP
-\fBinit\fR
-If the \fBterminfo\fR database is present and an entry for the user's
-terminal exists (see \fB-T\fR\fItype\fR, above), the following will
-occur: (1) if present, the terminal's initialization strings will be
-output (\fBis1\fR, \fBis2\fR, \fBis3\fR, \fBif\fR, \fBiprog\fR), (2)
-any delays (e.g., newline) specified in the entry will be set in the
-tty driver, (3) tabs expansion will be turned on or off 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 the information needed for any of the four above activities,
-that activity will silently be skipped.
-.TP
-\fBreset\fR
-Instead of putting out initialization strings, the terminal's
-reset strings will be output if present (\fBrs1\fR, \fBrs2\fR, \fBrs3\fR, \fBrf\fR).
-If the reset strings are not present, but initialization
-strings are, the initialization strings will be output.
-Otherwise, \fBreset\fR acts identically to \fBinit\fR.
-.TP
-\fBlongname\fR
-If the \fBterminfo\fR database is present and an entry for the
-user's terminal exists (see \fB-T\fR\fItype\fR above), then the long name
-of the terminal will be put out. The long name is the last
-name in the first line of the terminal's description in the
-\fBterminfo\fR database [see \fBterm\fR(5)].
-.PP
-If \fBtput\fR is invoked by a link named \fBreset\fR, this has the
-same effect as \fBtput reset\fR.
-See \fBtset\fR for comparison, which has similar behavior.
-.SH EXAMPLES
-.TP 5
-\fBtput init\fR
-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
-illustrated on the \fBprofile\fR(4) manual page.
-.TP 5
-\fBtput -T5620 reset\fR
-Reset an AT&T 5620 terminal, overriding the type of
-terminal in the environmental variable \fBTERM\fR.
-.TP 5
-\fBtput cup 0 0\fR
-Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR
-(the upper left corner of the screen, usually known as the "home"
-cursor position).
-.TP 5
-\fBtput clear\fR
-Echo the clear-screen sequence for the current terminal.
-.TP 5
-\fBtput cols\fR
-Print the number of columns for the current terminal.
-.TP 5
-\fBtput -T450 cols\fR
-Print the number of columns for the 450 terminal.
-.TP 5
-\fBbold=`tput smso` offbold=`tput rmso`\fR
-Set the shell variables \fBbold\fR, to begin stand-out mode
-sequence, and \fBoffbold\fR, to end standout mode sequence,
-for the current terminal. This might be followed by a
-prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR
-.TP 5
-\fBtput hc\fR
-Set exit code to indicate if the current terminal is a hard copy terminal.
-.TP 5
-\fBtput cup 23 4\fR
-Send the sequence to move the cursor to row 23, column 4.
-.TP 5
-\fBtput longname\fR
-Print the long name from the \fBterminfo\fR database for the
-type of terminal specified in the environmental
-variable \fBTERM\fR.
-.PP
-.RS 5
-\fBtput -S <<!\fR
-.br
-\fB> clear\fR
-.br
-\fB> cup 10 10\fR
-.br
-\fB> bold\fR
-.br
-\fB> !\fR
-.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.
-.SH FILES
-.TP
-\fB\*d\fR
-compiled terminal description database
-.TP
-\fB/usr/include/curses.h\fR
-\fBcurses\fR(3X) header file
-.TP
-\fB/usr/include/term.h\fR
-\fBterminfo\fR header file
-.TP
-\fB@DATADIR@/tabset/*\fR
-tab settings for some terminals, in a format
-appropriate to be output to the terminal (escape
-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.
-.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
-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,
-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
-means that \fIcapname\fR is not defined for this terminal \fItype\fR.
-.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
-.TS
-l l.
-exit code error message
-=
-\fB0\fR T{
-(\fIcapname\fR is a numeric variable that is not specified in the
-\fBterminfo\fR(\*n) database for this terminal type, e.g.
-\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR)
-T}
-\fB1\fR no error message is printed, see the \fBEXIT CODES\fR section.
-\fB2\fR usage error
-\fB3\fR unknown terminal \fItype\fR or no \fBterminfo\fR database
-\fB4\fR unknown \fBterminfo\fR capability \fIcapname\fR
-=
-.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.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/man/tset.1 b/ncurses-5.2/man/tset.1
deleted file mode 100644
index ddc04a7..0000000
--- a/ncurses-5.2/man/tset.1
+++ /dev/null
@@ -1,250 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH tset 1 ""
-.SH NAME
-\fBtset\fR, \fBreset\fR - terminal initialization
-.SH SYNOPSIS
-tset [-IQVqrs] [-] [-e \fIch\fR] [-i \fIch\fR] [-k \fIch\fR] [-m \fImapping\fR] [\fIterminal\fR]
-.br
-reset [-IQVqrs] [-] [-e \fIch\fR] [-i \fIch\fR] [-k \fIch\fR] [-m \fImapping\fR] [\fIterminal\fR]
-.SH DESCRIPTION
-\&\fBTset\fR initializes terminals.
-\fBTset\fR first determines the type of terminal that you are using.
-This determination is done as follows, using the first terminal type found.
-.PP
-1. The \fBterminal\fR argument specified on the command line.
-.PP
-2. The value of the \fBTERM\fR environmental variable.
-.PP
-3. (BSD systems only.) The terminal type associated with the standard
-error output device in the \fI/etc/ttys\fR file. (On Linux and
-System-V-like UNIXes, \fIgetty\fR does this job by setting
-\fBTERM\fR according to the type passed to it by \fI/etc/inittab\fR.)
-.PP
-4. The default terminal type, ``unknown''.
-.PP
-If the terminal type was not specified on the command-line, the -m
-option mappings are then applied (see below for more information).
-Then, if the terminal type begins with a question mark (``?''), the
-user is prompted for confirmation of the terminal type. An empty
-response confirms the type, or, another type can be entered to specify
-a new type. Once the terminal type has been determined, the terminfo
-entry for the terminal is retrieved. If no terminfo entry is found
-for the type, the user is prompted for another terminal type.
-.PP
-Once the terminfo entry is retrieved, the window size, backspace, interrupt
-and line kill characters (among many other things) are set and the terminal
-and tab initialization strings are sent to the standard error output.
-Finally, if the erase, interrupt and line kill characters have changed,
-or are not set to their default values, their values are displayed to the
-standard error output.
-.PP
-When invoked as \fBreset\fR, \fBtset\fR sets cooked and echo modes,
-turns off cbreak and raw modes, turns on newline translation and
-resets any unset special characters to their default values before
-doing the terminal initialization described above. This is useful
-after a program dies leaving a terminal in an abnormal state. Note,
-you may have to type
-
- \fB<LF>reset<LF>\fR
-
-(the line-feed character is normally control-J) to get the terminal
-to work, as carriage-return may no longer work in the abnormal state.
-Also, the terminal will often not echo the command.
-.PP
-The options are as follows:
-.TP 5
--q
-The terminal type is displayed to the standard output, and the terminal is
-not initialized in any way. The option `-' by itself is equivalent but
-archaic.
-.TP 5
--e
-Set the erase character to \fIch\fR.
-.TP 5
--I
-Do not send the terminal or tab initialization strings to the terminal.
-.TP 5
--Q
-Don't display any values for the erase, interrupt and line kill characters.
-.TP
-\fB-V\fR
-reports the version of ncurses which was used in this program, and exits.
-.TP 5
--i
-Set the interrupt character to \fIch\fR.
-.TP 5
--k
-Set the line kill character to \fIch\fR.
-.TP 5
--m
-Specify a mapping from a port type to a terminal.
-See below for more information.
-.TP 5
--r
-Print the terminal type to the standard error output.
-.TP 5
--s
-Print the sequence of shell commands to initialize the environment variable
-\fBTERM\fR to the standard output.
-See the section below on setting the environment for details.
-.PP
-The arguments for the -e, -i, and -k
-options may either be entered as actual characters or by using the `hat'
-notation, i.e. control-h may be specified as ``^H'' or ``^h''.
-.SH SETTING THE ENVIRONMENT
-It is often desirable to enter the terminal type and information about
-the terminal's capabilities into the shell's environment.
-This is done using the -s option.
-.PP
-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 \fBSHELL\fR environmental variable ends in ``csh'', the commands
-are for \fBcsh\fR, otherwise, they are for \fBsh\fR.
-Note, the \fBcsh\fR commands set and unset the shell variable
-\fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR
-or \fB.profile\fR files will initialize the environment correctly:
-
- eval \`tset -s options ... \`
-
-.SH TERMINAL TYPE MAPPING
-When the terminal is not hardwired into the system (or the current
-system information is incorrect) the terminal type derived from the
-\fI/etc/ttys\fR file or the \fBTERM\fR environmental variable is often
-something generic like \fBnetwork\fR, \fBdialup\fR, or \fBunknown\fR.
-When \fBtset\fR is used in a startup script it is often desirable to
-provide information about the type of terminal used on such ports.
-.PP
-The purpose of the -m option is to map
-from some set of conditions to a terminal type, that is, to
-tell \fBtset\fR
-``If I'm on this port at a particular speed, guess that I'm on that
-kind of terminal''.
-.PP
-The argument to the -m option consists of an optional port type, an
-optional operator, an optional baud rate specification, an optional
-colon (``:'') character and a terminal type. The port type is a
-string (delimited by either the operator or the colon character). The
-operator may be any combination of ``>'', ``<'', ``@'', and ``!''; ``>''
-means greater than, ``<'' means less than, ``@'' means equal to
-and ``!'' inverts the sense of the test.
-The baud rate is specified as a number and is compared with the speed
-of the standard error output (which should be the control terminal).
-The terminal type is a string.
-.PP
-If the terminal type is not specified on the command line, the -m
-mappings are applied to the terminal type. If the port type and baud
-rate match the mapping, the terminal type specified in the mapping
-replaces the current type. If more than one mapping is specified, the
-first applicable mapping is used.
-.PP
-For example, consider the following mapping: \fBdialup>9600:vt100\fR.
-The port type is dialup , the operator is >, the baud rate
-specification is 9600, and the terminal type is vt100. The result of
-this mapping is to specify that if the terminal type is \fBdialup\fR,
-and the baud rate is greater than 9600 baud, a terminal type of
-\fBvt100\fR will be used.
-.PP
-If no baud rate is specified, the terminal type will match any baud rate.
-If no port type is specified, the terminal type will match any port type.
-For example, \fB-m dialup:vt100 -m :?xterm\fR
-will cause any dialup port, regardless of baud rate, to match the terminal
-type vt100, and any non-dialup port type to match the terminal type ?xterm.
-Note, because of the leading question mark, the user will be
-queried on a default port as to whether they are actually using an xterm
-terminal.
-.PP
-No whitespace characters are permitted in the -m option argument.
-Also, to avoid problems with meta-characters, it is suggested that the
-entire -m option argument be placed within single quote characters,
-and that \fBcsh\fR users insert a backslash character (``\e'') before
-any exclamation marks (``!'').
-.SH HISTORY
-The \fBtset\fR command appeared in BSD 3.0. The \fBncurses\fR implementation
-was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric
-S. Raymond <esr@snark.thyrsus.com>.
-.SH COMPATIBILITY
-The \fBtset\fR utility has been provided for backward-compatibility with BSD
-environments (under most modern UNIXes, \fB/etc/inittab\fR and \fIgetty\fR(1)
-can set \fBTERM\fR appropriately for each dial-up line; this obviates what was
-\fBtset\fR's most important use). This implementation behaves like 4.4BSD
-tset, with a few exceptions specified here.
-.PP
-The -S option of BSD tset no longer works; it prints an error message to stderr
-and dies. The -s option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these
-changes are because the \fBTERMCAP\fR variable is no longer supported under
-terminfo-based \fBncurses\fR, which makes \fBtset -S\fR useless (we made it die
-noisily rather than silently induce lossage).
-.PP
-There was an undocumented 4.4BSD feature that invoking tset via a link named
-`TSET` (or via any other name beginning with an upper-case letter) set the
-terminal to use upper-case only. This feature has been omitted.
-.PP
-The -A, -E, -h, -u and -v options were deleted from the \fBtset\fR
-utility in 4.4BSD. None of them were documented in 4.3BSD and all are
-of limited utility at best. The -a, -d, and -p options are similarly
-not documented or useful, but were retained as they appear to be in
-widespread use. It is strongly recommended that any usage of these
-three options be changed to use the -m option instead. The
--n option remains, but has no effect. The -adnp options are therefore
-omitted from the usage summary above.
-.PP
-It is still permissible to specify the -e, -i, and -k options without
-arguments, although it is strongly recommended that such usage be fixed to
-explicitly specify the character.
-.PP
-As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the -Q
-option. Also, the interaction between the - option and the \fIterminal\fR
-argument in some historic implementations of \fBtset\fR has been removed.
-.SH ENVIRONMENT
-The \fBtset\fR command uses the \fBSHELL\fR and \fBTERM\fR
-environment variables.
-.SH FILES
-.TP 5
-/etc/ttys
-system port name to terminal type mapping database (BSD versions only).
-.TP 5
-@TERMINFO@
-terminal capability database
-.SH SEE ALSO
-csh(1),
-sh(1),
-stty(1),
-tty(4),
-termcap(5),
-ttys(5),
-environ(7)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
-
diff --git a/ncurses-5.2/man/wresize.3x b/ncurses-5.2/man/wresize.3x
deleted file mode 100644
index 7d1f37d..0000000
--- a/ncurses-5.2/man/wresize.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-.\"***************************************************************************
-.\" 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. *
-.\"***************************************************************************
-.\"
-.\" Author: Thomas E. Dickey <dickey@clark.net> 1996
-.\"
-.\" $Id$
-.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 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 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 AUTHOR
-Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/menu/Makefile.in b/ncurses-5.2/menu/Makefile.in
deleted file mode 100644
index 50f0d32..0000000
--- a/ncurses-5.2/menu/Makefile.in
+++ /dev/null
@@ -1,157 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for menu source code.
-#
-# This makes the following:
-# libraries (normal/debug/profile/shared)
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LD = @LD@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @CPPFLAGS@ \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(LIBTOOL) $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib -L$(libdir)
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-MK_SHARED_LIB = @MK_SHARED_LIB@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-RANLIB = @RANLIB@
-
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lmenu -lncurses @LIBS@
-
-AUTO_SRC = \
- ../include/menu.h \
- ../include/eti.h \
- ../include/mf_common.h
-
-################################################################################
-all \
-libs \
-install :: $(AUTO_SRC) $(LIBRARIES)
-
-sources : $(AUTO_SRC)
-
-$(DESTDIR)$(libdir) :
- $(srcdir)/../mkinstalldirs $@
-
-# make copies to simplify include-paths while still keeping menu's include
-# file in this directory.
-../include/menu.h : $(srcdir)/menu.h
- -rm -f $@
- cp $(srcdir)/menu.h $@
-../include/eti.h : $(srcdir)/eti.h
- -rm -f $@
- cp $(srcdir)/eti.h $@
-../include/mf_common.h : $(srcdir)/mf_common.h
- -rm -f $@
- cp $(srcdir)/mf_common.h $@
-
-MENU_PRIV_H = \
- $(srcdir)/menu.priv.h \
- $(AUTO_SRC) \
- ../include/curses.h
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/menu/READ.ME b/ncurses-5.2/menu/READ.ME
deleted file mode 100644
index 3fd5627..0000000
--- a/ncurses-5.2/menu/READ.ME
+++ /dev/null
@@ -1,14 +0,0 @@
-This is a clone of the menu library that is available with typical
-System V curses implementations (ETI).
-
-It is modelled after the documentation that comes for this library with
-a 386 based SVR4 implementation (ESIX).
-
-The development environment was and is an ELF based Linux system.
-
-For things that still need doing, see the TO-DO file in the top-level
-directory.
-
-Juergen Pfeifer
-
-eMail: juergen.pfeifer@gmx.net
diff --git a/ncurses-5.2/menu/eti.h b/ncurses-5.2/menu/eti.h
deleted file mode 100644
index cc1c830..0000000
--- a/ncurses-5.2/menu/eti.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#ifndef _ETI_ERRNO_H_
-#define _ETI_ERRNO_H_
-
-#define E_OK (0)
-#define E_SYSTEM_ERROR (-1)
-#define E_BAD_ARGUMENT (-2)
-#define E_POSTED (-3)
-#define E_CONNECTED (-4)
-#define E_BAD_STATE (-5)
-#define E_NO_ROOM (-6)
-#define E_NOT_POSTED (-7)
-#define E_UNKNOWN_COMMAND (-8)
-#define E_NO_MATCH (-9)
-#define E_NOT_SELECTABLE (-10)
-#define E_NOT_CONNECTED (-11)
-#define E_REQUEST_DENIED (-12)
-#define E_INVALID_FIELD (-13)
-#define E_CURRENT (-14)
-
-#endif
diff --git a/ncurses-5.2/menu/headers b/ncurses-5.2/menu/headers
deleted file mode 100644
index 3fe0be0..0000000
--- a/ncurses-5.2/menu/headers
+++ /dev/null
@@ -1,32 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-$(srcdir)/eti.h
-$(srcdir)/menu.h
diff --git a/ncurses-5.2/menu/llib-lmenu b/ncurses-5.2/menu/llib-lmenu
deleted file mode 100644
index 3f421c1..0000000
--- a/ncurses-5.2/menu/llib-lmenu
+++ /dev/null
@@ -1,508 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1996,1997,1999 *
- ****************************************************************************/
-/* 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
-bool _nc_Connect_Items(
- MENU *menu,
- ITEM **items)
- { return(*(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,
- bool value)
- { return(*(int *)0); }
-
-#undef item_value
-bool item_value(
- const ITEM *item)
- { return(*(bool *)0); }
-
-/* ./m_item_vis.c */
-
-#undef item_visible
-bool item_visible(
- const ITEM *item)
- { return(*(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); }
diff --git a/ncurses-5.2/menu/m_attribs.c b/ncurses-5.2/menu/m_attribs.c
deleted file mode 100644
index 3b1b01e..0000000
--- a/ncurses-5.2/menu/m_attribs.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_attribs *
-* Control menus display attributes *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/* Macro to redraw menu if it is posted and changed */
-#define Refresh_Menu(menu) \
- if ( (menu) && ((menu)->status & _POSTED) )\
- {\
- _nc_Draw_Menu( menu );\
- _nc_Show_Menu( menu );\
- }
-
-/* "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)\
-{\
- if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
- RETURN(E_BAD_ARGUMENT);\
- if (menu && ( menu -> name != attr))\
- {\
- (menu -> name) = attr;\
- Refresh_Menu(menu);\
- }\
- Normalize_Menu( menu ) -> name = attr;\
- RETURN(E_OK);\
-}
-
-/* "Template" macro to generate a function to get a menus attribute */
-#define GEN_MENU_ATTR_GET_FCT( name ) \
-chtype menu_ ## name (const MENU * menu)\
-{\
- return (Normalize_Menu( menu ) -> name);\
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_fore(MENU *menu, chtype attr)
-|
-| Description : Set the attribute for selectable items. In single-
-| valued menus thiis is used to highlight the current
-| item ((i.e. where the cursor is), in multi-valued
-| menus this is used to highlight the selected items.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( fore )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : chtype menu_fore(const MENU* menu)
-|
-| Description : Return the attribute used for selectable items that
-| are current (single-valued menu) or selected (multi-
-| valued menu).
-|
-| Return Values : Attribute value
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( fore )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_back(MENU *menu, chtype attr)
-|
-| Description : Set the attribute for selectable but not yet selected
-| items.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( back )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : chtype menu_back(const MENU *menu)
-|
-| Description : Return the attribute used for selectable but not yet
-| selected items.
-|
-| Return Values : Attribute value
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( back )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_grey(MENU *menu, chtype attr)
-|
-| Description : Set the attribute for unselectable items.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( grey )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : chtype menu_grey(const MENU *menu)
-|
-| Description : Return the attribute used for non-selectable items
-|
-| Return Values : Attribute value
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( grey )
-/* m_attribs.c ends here */
diff --git a/ncurses-5.2/menu/m_cursor.c b/ncurses-5.2/menu/m_cursor.c
deleted file mode 100644
index fa6080e..0000000
--- a/ncurses-5.2/menu/m_cursor.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_cursor *
-* Correctly position a menus cursor *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : _nc_menu_cursor_pos
-|
-| Description : Return position of logical cursor to current item
-|
-| Return Values : E_OK - success
-| 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)
-{
- if (!menu || !pX || !pY)
- return(E_BAD_ARGUMENT);
- else
- {
- if ((ITEM*)0 == item)
- item = menu->curitem;
- assert(item!=(ITEM*)0);
-
- if ( !( menu->status & _POSTED ) )
- return(E_NOT_POSTED);
-
- *pX = item->x * (menu->spc_cols + menu->itemlen);
- *pY = (item->y - menu->toprow) * menu->spc_rows;
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : pos_menu_cursor
-|
-| Description : Position logical cursor to current item in menu
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu
-| E_NOT_POSTED - Menu is not posted
-+--------------------------------------------------------------------------*/
-int pos_menu_cursor(const MENU * menu)
-{
- WINDOW *win, *sub;
- int x, y;
- int err = _nc_menu_cursor_pos(menu,(ITEM*)0,&y,&x);
-
- if (E_OK==err)
- {
- win = menu->userwin ? menu->userwin : stdscr;
- sub = menu->usersub ? menu->usersub : win;
- assert(win && sub);
-
- if ((menu->opt & O_SHOWMATCH) && (menu->pindex > 0))
- x += ( menu->pindex + menu->marklen - 1);
-
- wmove(sub,y,x);
-
- if ( win != sub )
- {
- wcursyncup(sub);
- wsyncup(sub);
- untouchwin(sub);
- }
- }
- RETURN(err);
-}
-
-/* m_cursor.c ends here */
diff --git a/ncurses-5.2/menu/m_driver.c b/ncurses-5.2/menu/m_driver.c
deleted file mode 100644
index e796728..0000000
--- a/ncurses-5.2/menu/m_driver.c
+++ /dev/null
@@ -1,540 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_driver *
-* Central dispatching routine *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/* Macros */
-
-/* Remove the last character from the match pattern buffer */
-#define Remove_Character_From_Pattern(menu) \
- (menu)->pattern[--((menu)->pindex)] = '\0'
-
-/* Add a new character to the match pattern buffer */
-#define Add_Character_To_Pattern(menu,ch) \
- { (menu)->pattern[((menu)->pindex)++] = (ch);\
- (menu)->pattern[(menu)->pindex] = '\0'; }
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : static bool Is_Sub_String(
-| bool IgnoreCaseFlag,
-| const char *part,
-| const char *string)
-|
-| Description : Checks whether or not part is a substring of string.
-|
-| Return Values : TRUE - if it is a substring
-| FALSE - if it is not a substring
-+--------------------------------------------------------------------------*/
-static bool Is_Sub_String(
- bool IgnoreCaseFlag,
- const char *part,
- const char *string
- )
-{
- assert( part && string );
- if ( IgnoreCaseFlag )
- {
- while(*string && *part)
- {
- if (toupper(*string++)!=toupper(*part)) break;
- part++;
- }
- }
- else
- {
- while( *string && *part )
- if (*part != *string++) break;
- part++;
- }
- return ( (*part) ? FALSE : TRUE );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int _nc_Match_Next_Character_In_Item_Name(
-| MENU *menu,
-| int ch,
-| ITEM **item)
-|
-| Description : This internal routine is called for a menu positioned
-| at an item with three different classes of characters:
-| - a printable character; the character is added to
-| the current pattern and the next item matching
-| this pattern is searched.
-| - NUL; the pattern stays as it is and the next item
-| matching the pattern is searched
-| - BS; the pattern stays as it is and the previous
-| item matching the pattern is searched
-|
-| The item parameter contains on call a pointer to
-| the item where the search starts. On return - if
-| a match was found - it contains a pointer to the
-| matching item.
-|
-| 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)
-{
- bool found = FALSE, passed = FALSE;
- int idx, last;
-
- assert( menu && item && *item);
- idx = (*item)->index;
-
- if (ch && ch!=BS)
- {
- /* if we become to long, we need no further checking : there can't be
- a match ! */
- if ((menu->pindex+1) > menu->namelen)
- RETURN(E_NO_MATCH);
-
- Add_Character_To_Pattern(menu,ch);
- /* we artificially position one item back, because in the do...while
- loop we start with the next item. This means, that with a new
- pattern search we always start the scan with the actual item. If
- we do a NEXT_PATTERN oder PREV_PATTERN search, we start with the
- one after or before the actual item. */
- if (--idx < 0)
- idx = menu->nitems-1;
- }
-
- last = idx; /* this closes the cycle */
-
- do{
- if (ch==BS)
- { /* we have to go backward */
- if (--idx < 0)
- idx = menu->nitems-1;
- }
- else
- { /* otherwise we always go forward */
- if (++idx >= menu->nitems)
- idx = 0;
- }
- if (Is_Sub_String((menu->opt & O_IGNORECASE) != 0,
- menu->pattern,
- menu->items[idx]->name.str)
- )
- found = TRUE;
- else
- passed = TRUE;
- } while (!found && (idx != last));
-
- if (found)
- {
- if (!((idx==(*item)->index) && passed))
- {
- *item = menu->items[idx];
- RETURN(E_OK);
- }
- /* This point is reached, if we fully cycled through the item list
- and the only match we found is the starting item. With a NEXT_PATTERN
- or PREV_PATTERN scan this means, that there was no additional match.
- If we searched with an expanded new pattern, we should never reach
- this point, because if the expanded pattern matches also the actual
- item we will find it in the first attempt (passed==FALSE) and we
- will never cycle through the whole item array.
- */
- assert( ch==0 || ch==BS );
- }
- else
- {
- if (ch && ch!=BS && menu->pindex>0)
- {
- /* if we had no match with a new pattern, we have to restore it */
- Remove_Character_From_Pattern(menu);
- }
- }
- RETURN(E_NO_MATCH);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_driver(MENU *menu, int c)
-|
-| Description : Central dispatcher for the menu. Translates the logical
-| request 'c' into a menu action.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu pointer
-| E_BAD_STATE - menu is in user hook routine
-| E_NOT_POSTED - menu is not posted
-+--------------------------------------------------------------------------*/
-int menu_driver(MENU * menu, int c)
-{
-#define NAVIGATE(dir) \
- if (!item->dir)\
- result = E_REQUEST_DENIED;\
- else\
- item = item->dir
-
- int result = E_OK;
- ITEM *item;
- int my_top_row, rdiff;
-
- if (!menu)
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
- if ( !( menu->status & _POSTED ) )
- RETURN(E_NOT_POSTED);
-
- item = menu->curitem;
-
- my_top_row = menu->toprow;
- assert(item);
-
- if ((c > KEY_MAX) && (c<=MAX_MENU_COMMAND))
- {
- if (!((c==REQ_BACK_PATTERN)
- || (c==REQ_NEXT_MATCH) || (c==REQ_PREV_MATCH)))
- {
- assert( menu->pattern );
- Reset_Pattern(menu);
- }
-
- switch(c)
- {
- case REQ_LEFT_ITEM:
- /*=================*/
- NAVIGATE(left);
- break;
-
- case REQ_RIGHT_ITEM:
- /*==================*/
- NAVIGATE(right);
- break;
-
- case REQ_UP_ITEM:
- /*===============*/
- NAVIGATE(up);
- break;
-
- case REQ_DOWN_ITEM:
- /*=================*/
- NAVIGATE(down);
- break;
-
- case REQ_SCR_ULINE:
- /*=================*/
- if (my_top_row == 0 || !(item->up))
- result = E_REQUEST_DENIED;
- else
- {
- --my_top_row;
- item = item->up;
- }
- break;
-
- case REQ_SCR_DLINE:
- /*=================*/
- if ((my_top_row + menu->arows >= menu->rows) || !(item->down))
- {
- /* only if the menu has less items than rows, we can deny the
- request. Otherwise the epilogue of this routine adjusts the
- top row if necessary */
- result = E_REQUEST_DENIED;
- }
- else {
- my_top_row++;
- item = item->down;
- }
- break;
-
- case REQ_SCR_DPAGE:
- /*=================*/
- rdiff = menu->rows - (menu->arows + my_top_row);
- if (rdiff > menu->arows)
- rdiff = menu->arows;
- if (rdiff<=0)
- result = E_REQUEST_DENIED;
- else
- {
- my_top_row += rdiff;
- while(rdiff-- > 0 && item!=(ITEM*)0)
- item = item->down;
- }
- break;
-
- case REQ_SCR_UPAGE:
- /*=================*/
- rdiff = (menu->arows < my_top_row) ? menu->arows : my_top_row;
- if (rdiff<=0)
- result = E_REQUEST_DENIED;
- else
- {
- my_top_row -= rdiff;
- while(rdiff-- && item!=(ITEM*)0)
- item = item->up;
- }
- break;
-
- case REQ_FIRST_ITEM:
- /*==================*/
- item = menu->items[0];
- break;
-
- case REQ_LAST_ITEM:
- /*=================*/
- item = menu->items[menu->nitems-1];
- break;
-
- case REQ_NEXT_ITEM:
- /*=================*/
- if ((item->index+1)>=menu->nitems)
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[0];
- }
- else
- item = menu->items[item->index + 1];
- break;
-
- case REQ_PREV_ITEM:
- /*=================*/
- if (item->index<=0)
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[menu->nitems-1];
- }
- else
- item = menu->items[item->index - 1];
- break;
-
- case REQ_TOGGLE_ITEM:
- /*===================*/
- if (menu->opt & O_ONEVALUE)
- {
- result = E_REQUEST_DENIED;
- }
- else
- {
- if (menu->curitem->opt & O_SELECTABLE)
- {
- menu->curitem->value = !menu->curitem->value;
- Move_And_Post_Item(menu,menu->curitem);
- _nc_Show_Menu(menu);
- }
- else
- result = E_NOT_SELECTABLE;
- }
- break;
-
- case REQ_CLEAR_PATTERN:
- /*=====================*/
- /* already cleared in prologue */
- break;
-
- case REQ_BACK_PATTERN:
- /*====================*/
- if (menu->pindex>0)
- {
- assert(menu->pattern);
- Remove_Character_From_Pattern(menu);
- pos_menu_cursor( menu );
- }
- else
- result = E_REQUEST_DENIED;
- break;
-
- case REQ_NEXT_MATCH:
- /*==================*/
- assert(menu->pattern);
- if (menu->pattern[0])
- result = _nc_Match_Next_Character_In_Item_Name(menu,0,&item);
- else
- {
- if ((item->index+1)<menu->nitems)
- item=menu->items[item->index+1];
- else
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[0];
- }
- }
- break;
-
- case REQ_PREV_MATCH:
- /*==================*/
- assert(menu->pattern);
- if (menu->pattern[0])
- result = _nc_Match_Next_Character_In_Item_Name(menu,BS,&item);
- else
- {
- if (item->index)
- item = menu->items[item->index-1];
- else
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[menu->nitems-1];
- }
- }
- break;
-
- default:
- /*======*/
- result = E_UNKNOWN_COMMAND;
- break;
- }
- }
- else
- { /* not a command */
- if ( !(c & ~((int)MAX_REGULAR_CHARACTER)) && isprint(c) )
- result = _nc_Match_Next_Character_In_Item_Name( menu, c, &item );
-#ifdef NCURSES_MOUSE_VERSION
- else if (KEY_MOUSE == c)
- {
- MEVENT event;
- WINDOW* uwin = Get_Menu_UserWin(menu);
-
- getmouse(&event);
- if ((event.bstate & (BUTTON1_CLICKED |
- BUTTON1_DOUBLE_CLICKED |
- BUTTON1_TRIPLE_CLICKED ))
- && wenclose(uwin,event.y, event.x))
- { /* we react only if the click was in the userwin, that means
- * inside the menu display area or at the decoration window.
- */
- WINDOW* sub = Get_Menu_Window(menu);
- int ry = event.y, rx = event.x; /* screen coordinates */
-
- result = E_REQUEST_DENIED;
- if (mouse_trafo(&ry,&rx,FALSE))
- { /* rx, ry are now "curses" coordinates */
- if (ry < sub->_begy)
- { /* we clicked above the display region; this is
- * interpreted as "scroll up" request
- */
- if (event.bstate & BUTTON1_CLICKED)
- result = menu_driver(menu,REQ_SCR_ULINE);
- else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- result = menu_driver(menu,REQ_SCR_UPAGE);
- else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
- result = menu_driver(menu,REQ_FIRST_ITEM);
- RETURN(result);
- }
- else if (ry >= sub->_begy + sub->_maxy)
- { /* we clicked below the display region; this is
- * interpreted as "scroll down" request
- */
- if (event.bstate & BUTTON1_CLICKED)
- result = menu_driver(menu,REQ_SCR_DLINE);
- else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- result = menu_driver(menu,REQ_SCR_DPAGE);
- else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
- result = menu_driver(menu,REQ_LAST_ITEM);
- RETURN(result);
- }
- else if (wenclose(sub,event.y,event.x))
- { /* Inside the area we try to find the hit item */
- int i,x,y,err;
- ry = event.y; rx = event.x;
- if (wmouse_trafo(sub,&ry,&rx,FALSE))
- {
- for(i=0;i<menu->nitems;i++)
- {
- err = _nc_menu_cursor_pos(menu,menu->items[i],
- &y, &x);
- if (E_OK==err)
- {
- if ((ry==y) &&
- (rx>=x) &&
- (rx < x + menu->itemlen))
- {
- item = menu->items[i];
- result = E_OK;
- break;
- }
- }
- }
- if (E_OK==result)
- { /* We found an item, now we can handle the click.
- * A single click just positions the menu cursor
- * to the clicked item. A double click toggles
- * the item.
- */
- if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- {
- _nc_New_TopRow_and_CurrentItem(menu,
- my_top_row,
- item);
- menu_driver(menu,REQ_TOGGLE_ITEM);
- result = E_UNKNOWN_COMMAND;
- }
- }
- }
- }
- }
- }
- else
- result = E_REQUEST_DENIED;
- }
-#endif /* NCURSES_MOUSE_VERSION */
- else
- result = E_UNKNOWN_COMMAND;
- }
-
- if (E_OK==result)
- {
- /* Adjust the top row if it turns out that the current item unfortunately
- doesn't appear in the menu window */
- if ( item->y < my_top_row )
- my_top_row = item->y;
- else if ( item->y >= (my_top_row + menu->arows) )
- my_top_row = item->y - menu->arows + 1;
-
- _nc_New_TopRow_and_CurrentItem( menu, my_top_row, item );
-
- }
-
- RETURN(result);
-}
-
-/* m_driver.c ends here */
diff --git a/ncurses-5.2/menu/m_format.c b/ncurses-5.2/menu/m_format.c
deleted file mode 100644
index 55e2ba4..0000000
--- a/ncurses-5.2/menu/m_format.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_format *
-* Set and get maximum numbers of rows and columns in menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-#define minimum(a,b) ((a)<(b) ? (a): (b))
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_format(MENU *menu, int rows, int cols)
-|
-| Description : Sets the maximum number of rows and columns of items
-| that may be displayed at one time on a menu. If the
-| menu contains more items than can be displayed at
-| once, the menu will be scrollable.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid values passed
-| 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)
-{
- int total_rows, total_cols;
-
- if (rows<0 || cols<0)
- RETURN(E_BAD_ARGUMENT);
-
- if (menu)
- {
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if (!(menu->items))
- RETURN(E_NOT_CONNECTED);
-
- if (rows==0)
- rows = menu->frows;
- if (cols==0)
- cols = menu->fcols;
-
- if (menu->pattern)
- Reset_Pattern(menu);
-
- menu->frows = rows;
- menu->fcols = cols;
-
- assert(rows>0 && cols>0);
- total_rows = (menu->nitems - 1)/cols + 1;
- total_cols = (menu->status & O_ROWMAJOR) ?
- minimum(menu->nitems,cols) :
- (menu->nitems-1)/total_rows + 1;
-
- menu->rows = total_rows;
- menu->cols = total_cols;
- menu->arows = minimum(total_rows,rows);
- menu->toprow = 0;
- menu->curitem = *(menu->items);
- assert(menu->curitem);
- menu->status |= _LINK_NEEDED;
- _nc_Calculate_Item_Length_and_Width(menu);
- }
- else
- {
- if (rows>0) _nc_Default_Menu.frows = rows;
- if (cols>0) _nc_Default_Menu.fcols = cols;
- }
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void menu_format(const MENU *menu, int *rows, int *cols)
-|
-| Description : Returns the maximum number of rows and columns that may
-| be displayed at one time on menu.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void menu_format(const MENU *menu, int *rows, int *cols)
-{
- if (rows)
- *rows = Normalize_Menu(menu)->frows;
- if (cols)
- *cols = Normalize_Menu(menu)->fcols;
-}
-
-/* m_format.c ends here */
diff --git a/ncurses-5.2/menu/m_global.c b/ncurses-5.2/menu/m_global.c
deleted file mode 100644
index 8287207..0000000
--- a/ncurses-5.2/menu/m_global.c
+++ /dev/null
@@ -1,483 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_global *
-* Globally used internal routines and the default menu and item structures *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-MENU _nc_Default_Menu = {
- 16, /* Nr. of chars high */
- 1, /* Nr. of chars wide */
- 16, /* Nr. of items high */
- 1, /* Nr. of items wide */
- 16, /* Nr. of formatted items high */
- 1, /* Nr. of formatted items wide */
- 16, /* Nr. of items high (actual) */
- 0, /* length of widest name */
- 0, /* length of widest description */
- 1, /* length of mark */
- 1, /* length of one item */
- 1, /* Spacing for descriptor */
- 1, /* Spacing for columns */
- 1, /* Spacing for rows */
- (char *)0, /* buffer used to store match chars */
- 0, /* Index into pattern buffer */
- (WINDOW *)0, /* Window containing entire menu */
- (WINDOW *)0, /* Portion of menu displayed */
- (WINDOW *)0, /* User's window */
- (WINDOW *)0, /* User's subwindow */
- (ITEM **)0, /* List of items */
- 0, /* Total Nr. of items in menu */
- (ITEM *)0, /* Current item */
- 0, /* Top row of menu */
- (chtype)A_REVERSE, /* Attribute for selection */
- (chtype)A_NORMAL, /* Attribute for nonselection */
- (chtype)A_UNDERLINE, /* Attribute for inactive */
- ' ', /* Pad character */
- (Menu_Hook)0, /* Menu init */
- (Menu_Hook)0, /* Menu term */
- (Menu_Hook)0, /* Item init */
- (Menu_Hook)0, /* Item term */
- (void *)0, /* userptr */
- "-", /* mark */
- ALL_MENU_OPTS, /* options */
- 0 /* status */
-};
-
-ITEM _nc_Default_Item = {
- { (char *)0, 0 }, /* name */
- { (char *)0, 0 }, /* description */
- (MENU *)0, /* Pointer to parent menu */
- (char *)0, /* Userpointer */
- ALL_ITEM_OPTS, /* options */
- 0, /* Item Nr. */
- 0, /* y */
- 0, /* x */
- FALSE, /* value */
- (ITEM *)0, /* left */
- (ITEM *)0, /* right */
- (ITEM *)0, /* up */
- (ITEM *)0 /* down */
- };
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : static void ComputeMaximum_NameDesc_Lenths(MENU *menu)
-|
-| Description : Calculates the maximum name and description lengths
-| of the items connected to the menu
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-INLINE static void ComputeMaximum_NameDesc_Lengths(MENU * menu)
-{
- unsigned MaximumNameLength = 0;
- unsigned MaximumDescriptionLength = 0;
- ITEM **items;
-
- assert(menu && menu->items);
- for( items = menu->items; *items ; items++ )
- {
- if (items[0]->name.length > MaximumNameLength )
- MaximumNameLength = items[0]->name.length;
-
- if (items[0]->description.length > MaximumDescriptionLength)
- MaximumDescriptionLength = items[0]->description.length;
- }
-
- menu->namelen = MaximumNameLength;
- menu->desclen = MaximumDescriptionLength;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : static void ResetConnectionInfo(MENU *, ITEM **)
-|
-| Description : Reset all informations in the menu and the items in
-| the item array that indicates a connection
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-INLINE static void ResetConnectionInfo(MENU *menu, ITEM **items)
-{
- ITEM **item;
-
- assert(menu && items);
- for(item=items; *item; item++)
- {
- (*item)->index = 0;
- (*item)->imenu = (MENU *)0;
- }
- if (menu->pattern)
- free(menu->pattern);
- menu->pattern = (char *)0;
- menu->pindex = 0;
- menu->items = (ITEM **)0;
- menu->nitems = 0;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : bool _nc_Connect_Items(MENU *menu, ITEM **items)
-|
-| Description : Connect the items in the item array to the menu.
-| Decorate all the items with a number and a backward
-| pointer to the menu.
-|
-| Return Values : TRUE - successfull connection
-| FALSE - connection failed
-+--------------------------------------------------------------------------*/
-bool _nc_Connect_Items(MENU *menu, ITEM **items)
-{
- ITEM **item;
- unsigned int ItemCount = 0;
-
- if ( menu && items )
- {
- for(item=items; *item ; item++)
- {
- if ( (*item)->imenu )
- {
- /* if a item is already connected, reject connection */
- break;
- }
- }
- if (! (*item) )
- /* we reached the end, so there was no connected item */
- {
- for(item=items; *item ; item++)
- {
- if (menu->opt & O_ONEVALUE)
- {
- (*item)->value = FALSE;
- }
- (*item)->index = ItemCount++;
- (*item)->imenu = menu;
- }
- }
- }
- else
- return(FALSE);
-
- if (ItemCount != 0)
- {
- menu->items = items;
- menu->nitems = ItemCount;
- ComputeMaximum_NameDesc_Lengths(menu);
- if ( (menu->pattern = (char *)malloc( (unsigned)(1 + menu->namelen))) )
- {
- Reset_Pattern(menu);
- set_menu_format(menu,menu->frows,menu->fcols);
- menu->curitem = *items;
- menu->toprow = 0;
- return(TRUE);
- }
- }
-
- /* If we fall through to this point, we have to reset all items connection
- and inform about a reject connection */
- ResetConnectionInfo( menu, items );
- return(FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Disconnect_Items(MENU *menu)
-|
-| Description : Disconnect the menus item array from the menu
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void _nc_Disconnect_Items(MENU * menu)
-{
- if (menu && menu->items)
- ResetConnectionInfo( menu, menu->items );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Calculate_Item_Length_and_Width(MENU *menu)
-|
-| Description : Calculate the length of an item and the width of the
-| whole menu.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void _nc_Calculate_Item_Length_and_Width(MENU * menu)
-{
- int l;
-
- assert(menu);
-
- menu->height = 1 + menu->spc_rows * (menu->arows - 1);
-
- l = menu->namelen + menu->marklen;
- if ( (menu->opt & O_SHOWDESC) && (menu->desclen > 0) )
- l += (menu->desclen + menu->spc_desc);
-
- menu->itemlen = l;
- l *= menu->cols;
- l += (menu->cols-1)*menu->spc_cols; /* for the padding between the columns */
- menu->width = l;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Link_Item(MENU *menu)
-|
-| Description : Statically calculate for every item its four neighbours.
-| This depends on the orientation of the menu. This
-| static aproach simplifies navigation in the menu a lot.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void _nc_Link_Items(MENU * menu)
-{
- if (menu && menu->items && *(menu->items))
- {
- int i,j;
- ITEM *item;
- int Number_Of_Items = menu->nitems;
- int col = 0, row = 0;
- int Last_in_Row;
- int Last_in_Column;
- bool cycle = (menu->opt & O_NONCYCLIC) ? FALSE : TRUE;
-
- menu->status &= ~_LINK_NEEDED;
-
- if (menu->opt & O_ROWMAJOR)
- {
- int Number_Of_Columns = menu->cols;
-
- for(i=0; i < Number_Of_Items; i++)
- {
- item = menu->items[i];
-
- Last_in_Row = row * Number_Of_Columns + (Number_Of_Columns-1);
-
- item->left = (col) ?
- /* if we are not in the leftmost column, we can use the
- predecessor in the items array */
- menu->items[i-1] :
- (cycle ? menu->items[(Last_in_Row>=Number_Of_Items) ?
- Number_Of_Items-1:
- Last_in_Row] :
- (ITEM *)0 );
-
- item->right = ( (col < (Number_Of_Columns-1)) &&
- ((i+1) < Number_Of_Items)
- ) ?
- menu->items[i+1] :
- ( cycle ? menu->items[row * Number_Of_Columns] :
- (ITEM *)0
- );
-
- Last_in_Column = (menu->rows-1) * Number_Of_Columns + col;
-
- item->up = (row) ? menu->items[i-Number_Of_Columns] :
- (cycle ? menu->items[(Last_in_Column>=Number_Of_Items) ?
- Number_Of_Items-1 :
- Last_in_Column] :
- (ITEM *)0);
-
- item->down = ( (i+Number_Of_Columns) < Number_Of_Items )
- ?
- menu->items[i + Number_Of_Columns] :
- (cycle ? menu->items[(row+1)<menu->rows ?
- Number_Of_Items-1:col] :
- (ITEM *)0);
- item->x = col;
- item->y = row;
- if ( ++col == Number_Of_Columns )
- {
- row++;
- col = 0;
- }
- }
- }
- else
- {
- int Number_Of_Rows = menu->rows;
-
- for(j=0; j<Number_Of_Items; j++)
- {
- item = menu->items[i=(col * Number_Of_Rows + row)];
-
- Last_in_Column = (menu->cols-1) * Number_Of_Rows + row;
-
- item->left = (col) ?
- menu->items[i - Number_Of_Rows] :
- (cycle ? (Last_in_Column >= Number_Of_Items ) ?
- menu->items[Last_in_Column-Number_Of_Rows] :
- menu->items[Last_in_Column] :
- (ITEM *)0 );
-
- item->right = ((i + Number_Of_Rows) <Number_Of_Items)
- ?
- menu->items[i + Number_Of_Rows] :
- (cycle ? menu->items[row] : (ITEM *)0);
-
- Last_in_Row = col * Number_Of_Rows + (Number_Of_Rows - 1);
-
- item->up = (row) ?
- menu->items[i-1] :
- (cycle ?
- menu->items[(Last_in_Row>=Number_Of_Items) ?
- Number_Of_Items-1:
- Last_in_Row] :
- (ITEM *)0);
-
- item->down = (row < (Number_Of_Rows-1))
- ?
- (menu->items[((i+1)<Number_Of_Items) ?
- i+1 :
- (col-1)*Number_Of_Rows + row + 1]) :
- (cycle ?
- menu->items[col * Number_Of_Rows] :
- (ITEM *)0
- );
-
- item->x = col;
- item->y = row;
- if ( (++row) == Number_Of_Rows )
- {
- col++;
- row = 0;
- }
- }
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Show_Menu(const MENU *menu)
-|
-| Description : Update the window that is associated with the menu
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void _nc_Show_Menu(const MENU *menu)
-{
- WINDOW *win;
- int maxy, maxx;
-
- assert(menu);
- if ( (menu->status & _POSTED) && !(menu->status & _IN_DRIVER) )
- {
- /* adjust the internal subwindow to start on the current top */
- assert(menu->sub);
- mvderwin(menu->sub,menu->spc_rows * menu->toprow,0);
- win = Get_Menu_Window(menu);
-
- maxy = getmaxy(win);
- maxx = getmaxx(win);
-
- if (menu->height < maxy)
- maxy = menu->height;
- if (menu->width < maxx)
- maxx = menu->width;
-
- copywin(menu->sub,win,0,0,0,0,maxy-1,maxx-1,0);
- pos_menu_cursor(menu);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_New_TopRow_and_CurrentItem(
-| MENU *menu,
-| int new_toprow,
-| ITEM *new_current_item)
-|
-| Description : Redisplay the menu so that the given row becomes the
-| top row and the given item becomes the new current
-| item.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void _nc_New_TopRow_and_CurrentItem(MENU *menu, int new_toprow,
- ITEM *new_current_item)
-{
- ITEM *cur_item;
- bool mterm_called = FALSE;
- bool iterm_called = FALSE;
-
- assert(menu);
- if (menu->status & _POSTED)
- {
- if (new_current_item != menu->curitem)
- {
- Call_Hook(menu,itemterm);
- iterm_called = TRUE;
- }
- if (new_toprow != menu->toprow)
- {
- Call_Hook(menu,menuterm);
- mterm_called = TRUE;
- }
-
- cur_item = menu->curitem;
- assert(cur_item);
- menu->toprow = new_toprow;
- menu->curitem = new_current_item;
-
- if (mterm_called)
- {
- Call_Hook(menu,menuinit);
- }
- if (iterm_called)
- {
- /* this means, move from the old current_item to the new one... */
- Move_To_Current_Item( menu, cur_item );
- Call_Hook(menu,iteminit);
- }
- if (mterm_called || iterm_called)
- {
- _nc_Show_Menu(menu);
- }
- else
- pos_menu_cursor(menu);
- }
- else
- { /* if we are not posted, this is quite simple */
- menu->toprow = new_toprow;
- menu->curitem = new_current_item;
- }
-}
-
-/* m_global.c ends here */
diff --git a/ncurses-5.2/menu/m_hook.c b/ncurses-5.2/menu/m_hook.c
deleted file mode 100644
index 181292a..0000000
--- a/ncurses-5.2/menu/m_hook.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_hook *
-* Assign application specific routines for automatic invocation by menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/* "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 )\
-{\
- (Normalize_Menu(menu) -> typ ## name = func );\
- RETURN(E_OK);\
-}
-
-/* "Template" macro to generate function to get application specific hook */
-#define GEN_HOOK_GET_FUNCTION( typ, name ) \
-Menu_Hook typ ## _ ## name ( const MENU *menu )\
-{\
- return (Normalize_Menu(menu) -> typ ## name);\
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_init(MENU *menu, void (*f)(MENU *))
-|
-| Description : Set user-exit which is called when menu is posted
-| or just after the top row changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( menu, init )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void (*)(MENU *) menu_init(const MENU *menu)
-|
-| Description : Return address of user-exit function which is called
-| when a menu is posted or just after the top row
-| changes.
-|
-| Return Values : Menu init function address or NULL
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( menu, init )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_term (MENU *menu, void (*f)(MENU *))
-|
-| Description : Set user-exit which is called when menu is unposted
-| or just before the top row changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( menu, term )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void (*)(MENU *) menu_term(const MENU *menu)
-|
-| Description : Return address of user-exit function which is called
-| when a menu is unposted or just before the top row
-| changes.
-|
-| Return Values : Menu finalization function address or NULL
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( menu, term )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_init (MENU *menu, void (*f)(MENU *))
-|
-| Description : Set user-exit which is called when menu is posted
-| or just after the current item changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( item, init )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void (*)(MENU *) item_init (const MENU *menu)
-|
-| Description : Return address of user-exit function which is called
-| when a menu is posted or just after the current item
-| changes.
-|
-| Return Values : Item init function address or NULL
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( item, init )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_term (MENU *menu, void (*f)(MENU *))
-|
-| Description : Set user-exit which is called when menu is unposted
-| or just before the current item changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( item, term )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void (*)(MENU *) item_init (const MENU *menu)
-|
-| Description : Return address of user-exit function which is called
-| when a menu is unposted or just before the current item
-| changes.
-|
-| Return Values : Item finalization function address or NULL
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( item, term )
-
-/* m_hook.c ends here */
diff --git a/ncurses-5.2/menu/m_item_cur.c b/ncurses-5.2/menu/m_item_cur.c
deleted file mode 100644
index 7cad87d..0000000
--- a/ncurses-5.2/menu/m_item_cur.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_cur *
-* Set and get current menus item *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_current_item(MENU *menu, const ITEM *item)
-|
-| Description : Make the item the current item
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-int set_current_item(MENU * menu, ITEM * item)
-{
- if (menu && item && (item->imenu==menu))
- {
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- assert( menu->curitem );
- if (item != menu->curitem)
- {
- if (menu->status & _LINK_NEEDED)
- {
- /*
- * Items are available, but they are not linked together.
- * So we have to link here.
- */
- _nc_Link_Items(menu);
- }
- assert(menu->pattern);
- Reset_Pattern(menu);
- /* adjust the window to make item visible and update the menu */
- Adjust_Current_Item(menu,menu->toprow,item);
- }
- }
- else
- RETURN(E_BAD_ARGUMENT);
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : ITEM *current_item(const MENU *menu)
-|
-| Description : Return the menus current item
-|
-| Return Values : Item pointer or NULL if failure
-+--------------------------------------------------------------------------*/
-ITEM *current_item(const MENU * menu)
-{
- return (menu && menu->items) ? menu->curitem : (ITEM *)0;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_index(const ITEM *)
-|
-| Description : Return the logical index of this item.
-|
-| Return Values : The index or ERR if this is an invalid item pointer
-+--------------------------------------------------------------------------*/
-int item_index(const ITEM *item)
-{
- return (item && item->imenu) ? item->index : ERR;
-}
-
-/* m_item_cur.c ends here */
diff --git a/ncurses-5.2/menu/m_item_nam.c b/ncurses-5.2/menu/m_item_nam.c
deleted file mode 100644
index be653ee..0000000
--- a/ncurses-5.2/menu/m_item_nam.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_nam *
-* Get menus item name and description *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : char *item_name(const ITEM *item)
-|
-| Description : Return name of menu item
-|
-| Return Values : See above; returns NULL if item is invalid
-+--------------------------------------------------------------------------*/
-const char *item_name(const ITEM * item)
-{
- return ((item) ? item->name.str : (char *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : char *item_description(const ITEM *item)
-|
-| Description : Returns description of item
-|
-| Return Values : See above; Returns NULL if item is invalid
-+--------------------------------------------------------------------------*/
-const char *item_description(const ITEM * item)
-{
- return ((item) ? item->description.str : (char *)0);
-}
-
-/* m_item_nam.c ends here */
diff --git a/ncurses-5.2/menu/m_item_new.c b/ncurses-5.2/menu/m_item_new.c
deleted file mode 100644
index e4a852c..0000000
--- a/ncurses-5.2/menu/m_item_new.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_new *
-* Create and destroy menu items *
-* Set and get marker string for menu *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : bool Is_Printable_String(const char *s)
-|
-| Description : Checks whether or not the string contains only printable
-| characters.
-|
-| Return Values : TRUE - if string is printable
-| FALSE - if string contains non-printable characters
-+--------------------------------------------------------------------------*/
-static bool Is_Printable_String(const char *s)
-{
- assert(s);
- while(*s)
- {
- if (!isprint((unsigned char)*s))
- return FALSE;
- s++;
- }
- return TRUE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : ITEM *new_item(char *name, char *description)
-|
-| Description : Create a new item with name and description. Return
-| a pointer to this new item.
-| N.B.: an item must(!) have a name.
-|
-| Return Values : The item pointer or NULL if creation failed.
-+--------------------------------------------------------------------------*/
-ITEM *new_item(const char *name, const char *description)
-{
- ITEM *item;
-
- if ( !name || (*name == '\0') || !Is_Printable_String(name) )
- {
- item = (ITEM *)0;
- SET_ERROR( E_BAD_ARGUMENT );
- }
- else
- {
- item = (ITEM *)calloc(1,sizeof(ITEM));
- if (item)
- {
- *item = _nc_Default_Item; /* hope we have struct assignment */
-
- item->name.length = strlen(name);
- item->name.str = name;
-
- if (description && (*description != '\0') &&
- Is_Printable_String(description))
- {
- item->description.length = strlen(description);
- item->description.str = description;
- }
- else
- {
- item->description.length = 0;
- item->description.str = (char *)0;
- }
- }
- else
- SET_ERROR( E_SYSTEM_ERROR );
- }
- return(item);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int free_item(ITEM *item)
-|
-| Description : Free the allocated storage for this item.
-| N.B.: a connected item can't be freed.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid value has been passed
-| E_CONNECTED - item is still connected to a menu
-+--------------------------------------------------------------------------*/
-int free_item(ITEM * item)
-{
- if (!item)
- RETURN( E_BAD_ARGUMENT );
-
- if (item->imenu)
- RETURN( E_CONNECTED );
-
- free(item);
-
- RETURN( E_OK );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_mark( MENU *menu, const char *mark )
-|
-| Description : Set the mark string used to indicate the current
-| item (single-valued menu) or the selected items
-| (multi-valued menu).
-| The mark argument may be NULL, in which case no
-| marker is used.
-| This might be a little bit tricky, because this may
-| affect the geometry of the menu, which we don't allow
-| if it is already posted.
-|
-| Return Values : E_OK - success
-| 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)
-{
- int l;
-
- if ( mark && (*mark != '\0') && Is_Printable_String(mark) )
- l = strlen(mark);
- else
- l = 0;
-
- if ( menu )
- {
- char *old_mark = menu->mark;
- unsigned short old_status = menu->status;
-
- if (menu->status & _POSTED)
- {
- /* If the menu is already posted, the geometry is fixed. Then
- we can only accept a mark with exactly the same length */
- if (menu->marklen != l)
- RETURN(E_BAD_ARGUMENT);
- }
- menu->marklen = l;
- if (l)
- {
- menu->mark = (char *)malloc(l+1);
- if (menu->mark)
- {
- strcpy(menu->mark, mark);
- if (menu != &_nc_Default_Menu)
- menu->status |= _MARK_ALLOCATED;
- }
- else
- {
- menu->mark = old_mark;
- RETURN(E_SYSTEM_ERROR);
- }
- }
- else
- menu->mark = (char *)0;
-
- if ((old_status & _MARK_ALLOCATED) && old_mark)
- free(old_mark);
-
- if (menu->status & _POSTED)
- {
- _nc_Draw_Menu( menu );
- _nc_Show_Menu( menu );
- }
- else
- {
- /* Recalculate the geometry */
- _nc_Calculate_Item_Length_and_Width( menu );
- }
- }
- else
- {
- return set_menu_mark(&_nc_Default_Menu, mark);
- }
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : char *menu_mark(const MENU *menu)
-|
-| Description : Return a pointer to the marker string
-|
-| Return Values : The marker string pointer or NULL if no marker defined
-+--------------------------------------------------------------------------*/
-const char *menu_mark(const MENU * menu)
-{
- return Normalize_Menu( menu )->mark;
-}
-
-/* m_item_new.c */
diff --git a/ncurses-5.2/menu/m_item_opt.c b/ncurses-5.2/menu/m_item_opt.c
deleted file mode 100644
index aabd79a..0000000
--- a/ncurses-5.2/menu/m_item_opt.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_opt *
-* Menus item option routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_opts(ITEM *item, Item_Options opts)
-|
-| Description : Set the options of the item. If there are relevant
-| changes, the item is connected and the menu is posted,
-| the menu will be redisplayed.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid item options
-+--------------------------------------------------------------------------*/
-int set_item_opts(ITEM *item, Item_Options opts)
-{
- opts &= ALL_ITEM_OPTS;
-
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
-
- if (item)
- {
- if (item->opt != opts)
- {
- MENU *menu = item->imenu;
-
- item->opt = opts;
-
- if ((!(opts & O_SELECTABLE)) && item->value)
- item->value = FALSE;
-
- if (menu && (menu->status & _POSTED))
- {
- Move_And_Post_Item( menu, item );
- _nc_Show_Menu(menu);
- }
- }
- }
- else
- _nc_Default_Item.opt = opts;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_opts_off(ITEM *item, Item_Options opts)
-|
-| Description : Switch of the options for this item.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-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 */
-
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Item(citem);
- opts = citem->opt & ~(opts & ALL_ITEM_OPTS);
- return set_item_opts( item, opts );
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_opts_on(ITEM *item, Item_Options opts)
-|
-| Description : Switch on the options for this item.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-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 */
-
- opts &= ALL_ITEM_OPTS;
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Item(citem);
- opts = citem->opt | opts;
- return set_item_opts( item, opts );
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : Item_Options item_opts(const ITEM *item)
-|
-| Description : Switch of the options for this item.
-|
-| Return Values : Items options
-+--------------------------------------------------------------------------*/
-Item_Options item_opts(const ITEM * item)
-{
- return (ALL_ITEM_OPTS & Normalize_Item(item)->opt);
-}
-
-/* m_item_opt.c ends here */
diff --git a/ncurses-5.2/menu/m_item_top.c b/ncurses-5.2/menu/m_item_top.c
deleted file mode 100644
index 8f888aa..0000000
--- a/ncurses-5.2/menu/m_item_top.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_top *
-* Set and get top menus item *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_top_row(MENU *menu, int row)
-|
-| Description : Makes the speified row the top row in the menu
-|
-| Return Values : E_OK - success
-| 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)
-{
- ITEM *item;
-
- if (menu)
- {
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
- if (menu->items == (ITEM **)0)
- RETURN(E_NOT_CONNECTED);
-
- if ((row<0) || (row > (menu->rows - menu->arows)))
- RETURN(E_BAD_ARGUMENT);
- }
- else
- RETURN(E_BAD_ARGUMENT);
-
- if (row != menu->toprow)
- {
- if (menu->status & _LINK_NEEDED)
- _nc_Link_Items(menu);
-
- item = menu->items[ (menu->opt&O_ROWMAJOR) ? (row*menu->cols) : row ];
- assert(menu->pattern);
- Reset_Pattern(menu);
- _nc_New_TopRow_and_CurrentItem(menu, row, item);
- }
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int top_row(const MENU *)
-|
-| Description : Return the top row of the menu
-|
-| Return Values : The row number or ERR if there is no row
-+--------------------------------------------------------------------------*/
-int top_row(const MENU * menu)
-{
- if (menu && menu->items && *(menu->items))
- {
- assert( (menu->toprow>=0) && (menu->toprow < menu->rows) );
- return menu->toprow;
- }
- else
- return(ERR);
-}
-
-/* m_item_top.c ends here */
diff --git a/ncurses-5.2/menu/m_item_use.c b/ncurses-5.2/menu/m_item_use.c
deleted file mode 100644
index b42318f..0000000
--- a/ncurses-5.2/menu/m_item_use.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_use *
-* Associate application data with menu items *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_userptr(ITEM *item, void *userptr)
-|
-| Description : Set the pointer that is reserved in any item to store
-| application relevant informations.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-int set_item_userptr(ITEM * item, void * userptr)
-{
- Normalize_Item(item)->userptr = userptr;
- RETURN( E_OK );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void *item_userptr(const ITEM *item)
-|
-| Description : Return the pointer that is reserved in any item to store
-| application relevant informations.
-|
-| Return Values : Value of the pointer. If no such pointer has been set,
-| NULL is returned.
-+--------------------------------------------------------------------------*/
-void *item_userptr(const ITEM * item)
-{
- return Normalize_Item(item)->userptr;
-}
-
-/* m_item_use.c */
diff --git a/ncurses-5.2/menu/m_item_val.c b/ncurses-5.2/menu/m_item_val.c
deleted file mode 100644
index 2690f34..0000000
--- a/ncurses-5.2/menu/m_item_val.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_val *
-* Set and get menus item values *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_value(ITEM *item, int value)
-|
-| Description : Programmatically set the items selection value. This is
-| only allowed if the item is selectable at all and if
-| it is not connected to a single-valued menu.
-| If the item is connected to a posted menu, the menu
-| will be redisplayed.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - not selectable or single valued menu
-+--------------------------------------------------------------------------*/
-int set_item_value(ITEM *item, bool value)
-{
- MENU *menu;
-
- if (item)
- {
- menu = item->imenu;
-
- if ((!(item->opt & O_SELECTABLE)) ||
- (menu && (menu->opt & O_ONEVALUE)))
- RETURN(E_REQUEST_DENIED);
-
- if (item->value ^ value)
- {
- item->value = value ? TRUE : FALSE;
- if (menu)
- {
- if (menu->status & _POSTED)
- {
- Move_And_Post_Item(menu,item);
- _nc_Show_Menu(menu);
- }
- }
- }
- }
- else
- _nc_Default_Item.value = value;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : bool item_value(const ITEM *item)
-|
-| Description : Return the selection value of the item
-|
-| Return Values : TRUE - if item is selected
-| FALSE - if item is not selected
-+--------------------------------------------------------------------------*/
-bool item_value(const ITEM *item)
-{
- return ((Normalize_Item(item)->value) ? TRUE : FALSE);
-}
-
-/* m_item_val.c ends here */
diff --git a/ncurses-5.2/menu/m_item_vis.c b/ncurses-5.2/menu/m_item_vis.c
deleted file mode 100644
index b06066c..0000000
--- a/ncurses-5.2/menu/m_item_vis.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_vis *
-* Tell if menu item is visible *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : bool item_visible(const ITEM *item)
-|
-| Description : A item is visible if it currently appears in the
-| subwindow of a posted menu.
-|
-| Return Values : TRUE if visible
-| FALSE if invisible
-+--------------------------------------------------------------------------*/
-bool item_visible(const ITEM * item)
-{
- MENU *menu;
-
- if ( item &&
- (menu=item->imenu) &&
- (menu->status & _POSTED) &&
- ( (menu->toprow + menu->arows) > (item->y) ) &&
- ( item->y >= menu->toprow) )
- return TRUE;
- else
- return FALSE;
-}
-
-/* m_item_vis.c ends here */
diff --git a/ncurses-5.2/menu/m_items.c b/ncurses-5.2/menu/m_items.c
deleted file mode 100644
index cbbbf70..0000000
--- a/ncurses-5.2/menu/m_items.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_items *
-* Connect and disconnect items to and from menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_items(MENU *menu, ITEM **items)
-|
-| Description : Sets the item pointer array connected to menu.
-|
-| Return Values : E_OK - success
-| E_POSTED - menu is already posted
-| E_CONNECTED - one or more items are already connected
-| to another menu.
-| E_BAD_ARGUMENT - An incorrect menu or item array was
-| passed to the function
-+--------------------------------------------------------------------------*/
-int set_menu_items(MENU * menu, ITEM ** items)
-{
- if (!menu || (items && !(*items)))
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if (menu->items)
- _nc_Disconnect_Items(menu);
-
- if (items)
- {
- if(!_nc_Connect_Items( menu, items ))
- RETURN(E_CONNECTED);
- }
-
- menu->items = items;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : ITEM **menu_items(const MENU *menu)
-|
-| Description : Returns a pointer to the item pointer arry of the menu
-|
-| Return Values : NULL on error
-+--------------------------------------------------------------------------*/
-ITEM **menu_items(const MENU *menu)
-{
- return(menu ? menu->items : (ITEM **)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_count(const MENU *menu)
-|
-| Description : Get the number of items connected to the menu. If the
-| menu pointer is NULL we return -1.
-|
-| Return Values : Number of items or -1 to indicate error.
-+--------------------------------------------------------------------------*/
-int item_count(const MENU *menu)
-{
- return(menu ? menu->nitems : -1);
-}
-
-/* m_items.c ends here */
diff --git a/ncurses-5.2/menu/m_new.c b/ncurses-5.2/menu/m_new.c
deleted file mode 100644
index eaa397f..0000000
--- a/ncurses-5.2/menu/m_new.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_new *
-* Creation and destruction of new menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : MENU *new_menu(ITEM **items)
-|
-| Description : Creates a new menu connected to the item pointer
-| array items and returns a pointer to the new menu.
-| The new menu is initialized with the values from the
-| default menu.
-|
-| Return Values : NULL on error
-+--------------------------------------------------------------------------*/
-MENU *new_menu(ITEM ** items)
-{
- MENU *menu = (MENU *)calloc(1,sizeof(MENU));
-
- if (menu)
- {
- *menu = _nc_Default_Menu;
- menu->status = 0;
- menu->rows = menu->frows;
- menu->cols = menu->fcols;
- if (items && *items)
- {
- if (!_nc_Connect_Items(menu,items))
- {
- free(menu);
- menu = (MENU *)0;
- }
- }
- }
-
- if (!menu)
- SET_ERROR(E_SYSTEM_ERROR);
-
- return(menu);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int free_menu(MENU *menu)
-|
-| Description : Disconnects menu from its associated item pointer
-| array and frees the storage allocated for the menu.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - Invalid menu pointer passed
-| E_POSTED - Menu is already posted
-+--------------------------------------------------------------------------*/
-int free_menu(MENU * menu)
-{
- if (!menu)
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if (menu->items)
- _nc_Disconnect_Items(menu);
-
- if ((menu->status & _MARK_ALLOCATED) && menu->mark)
- free(menu->mark);
-
- free(menu);
- RETURN(E_OK);
-}
-
-/* m_new.c ends here */
diff --git a/ncurses-5.2/menu/m_opts.c b/ncurses-5.2/menu/m_opts.c
deleted file mode 100644
index 4060825..0000000
--- a/ncurses-5.2/menu/m_opts.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_opts *
-* Menus option routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_opts(MENU *menu, Menu_Options opts)
-|
-| Description : Set the options for this menu. If the new settings
-| end up in a change of the geometry of the menu, it
-| will be recalculated. This operation is forbidden if
-| the menu is already posted.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu options
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-int set_menu_opts(MENU * menu, Menu_Options opts)
-{
- opts &= ALL_MENU_OPTS;
-
- if (opts & ~ALL_MENU_OPTS)
- RETURN(E_BAD_ARGUMENT);
-
- if (menu)
- {
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if ( (opts&O_ROWMAJOR) != (menu->opt&O_ROWMAJOR))
- {
- /* we need this only if the layout really changed ... */
- if (menu->items && menu->items[0])
- {
- menu->toprow = 0;
- menu->curitem = menu->items[0];
- assert(menu->curitem);
- set_menu_format( menu, menu->frows, menu->fcols );
- }
- }
-
- menu->opt = opts;
-
- if (opts & O_ONEVALUE)
- {
- ITEM **item;
-
- if ( ((item=menu->items) != (ITEM**)0) )
- for(;*item;item++)
- (*item)->value = FALSE;
- }
-
- if (opts & O_SHOWDESC) /* this also changes the geometry */
- _nc_Calculate_Item_Length_and_Width( menu );
- }
- else
- _nc_Default_Menu.opt = opts;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_opts_off(MENU *menu, Menu_Options opts)
-|
-| Description : Switch off the options for this menu. If the new settings
-| end up in a change of the geometry of the menu, it
-| will be recalculated. This operation is forbidden if
-| the menu is already posted.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-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 */
-
- opts &= ALL_MENU_OPTS;
- if (opts & ~ALL_MENU_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Menu(cmenu);
- opts = cmenu->opt & ~opts;
- return set_menu_opts( menu, opts );
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_opts_on(MENU *menu, Menu_Options opts)
-|
-| Description : Switch on the options for this menu. If the new settings
-| end up in a change of the geometry of the menu, it
-| will be recalculated. This operation is forbidden if
-| the menu is already posted.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu options
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-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 */
-
- opts &= ALL_MENU_OPTS;
- if (opts & ~ALL_MENU_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Menu(cmenu);
- opts = cmenu->opt | opts;
- return set_menu_opts(menu, opts);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : Menu_Options menu_opts(const MENU *menu)
-|
-| Description : Return the options for this menu.
-|
-| Return Values : Menu options
-+--------------------------------------------------------------------------*/
-Menu_Options menu_opts(const MENU *menu)
-{
- return (ALL_MENU_OPTS & Normalize_Menu( menu )->opt);
-}
-
-/* m_opts.c ends here */
diff --git a/ncurses-5.2/menu/m_pad.c b/ncurses-5.2/menu/m_pad.c
deleted file mode 100644
index db85b65..0000000
--- a/ncurses-5.2/menu/m_pad.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_pad *
-* Control menus padding character *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/* Macro to redraw menu if it is posted and changed */
-#define Refresh_Menu(menu) \
- if ( (menu) && ((menu)->status & _POSTED) )\
- {\
- _nc_Draw_Menu( menu );\
- _nc_Show_Menu( menu );\
- }
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_pad(MENU *menu, int pad)
-|
-| Description : Set the character to be used to separate the item name
-| from its description. This must be a printable
-| character.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-+--------------------------------------------------------------------------*/
-int set_menu_pad(MENU *menu, int pad)
-{
- bool do_refresh = (menu != (MENU*)0);
-
- if (!isprint((unsigned char)pad))
- RETURN(E_BAD_ARGUMENT);
-
- Normalize_Menu( menu );
- menu->pad = pad;
-
- if (do_refresh)
- Refresh_Menu( menu );
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_pad(const MENU *menu)
-|
-| Description : Return the value of the padding character
-|
-| Return Values : The pad character
-+--------------------------------------------------------------------------*/
-int menu_pad(const MENU * menu)
-{
- return (Normalize_Menu( menu ) -> pad);
-}
-
-/* m_pad.c ends here */
diff --git a/ncurses-5.2/menu/m_pattern.c b/ncurses-5.2/menu/m_pattern.c
deleted file mode 100644
index 2e3f414..0000000
--- a/ncurses-5.2/menu/m_pattern.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_pattern *
-* Pattern matching handling *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : char *menu_pattern(const MENU *menu)
-|
-| Description : Return the value of the pattern buffer.
-|
-| Return Values : NULL - if there is no pattern buffer allocated
-| EmptyString - if there is a pattern buffer but no
-| pattern is stored
-| PatternString - as expected
-+--------------------------------------------------------------------------*/
-char *menu_pattern(const MENU * menu)
-{
- return (menu ? (menu->pattern ? menu->pattern : "") : (char *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_pattern(MENU *menu, const char *p)
-|
-| Description : Set the match pattern for a menu and position to the
-| first item that matches.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu or pattern pointer
-| E_NOT_CONNECTED - no items connected to menu
-| E_BAD_STATE - menu in user hook routine
-| E_NO_MATCH - no item matches pattern
-+--------------------------------------------------------------------------*/
-int set_menu_pattern(MENU *menu, const char *p)
-{
- ITEM *matchitem;
- int matchpos;
-
- if (!menu || !p)
- RETURN(E_BAD_ARGUMENT);
-
- if (!(menu->items))
- RETURN(E_NOT_CONNECTED);
-
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- Reset_Pattern(menu);
-
- if (!(*p))
- {
- pos_menu_cursor(menu);
- RETURN(E_OK);
- }
-
- if (menu->status & _LINK_NEEDED)
- _nc_Link_Items(menu);
-
- matchpos = menu->toprow;
- matchitem = menu->curitem;
- assert(matchitem);
-
- while(*p)
- {
- if ( !isprint(*p) ||
- (_nc_Match_Next_Character_In_Item_Name(menu,*p,&matchitem) != E_OK) )
- {
- Reset_Pattern(menu);
- pos_menu_cursor(menu);
- RETURN(E_NO_MATCH);
- }
- p++;
- }
-
- /* This is reached if there was a match. So we position to the new item */
- Adjust_Current_Item(menu,matchpos,matchitem);
- RETURN(E_OK);
-}
-
-/* m_pattern.c ends here */
diff --git a/ncurses-5.2/menu/m_post.c b/ncurses-5.2/menu/m_post.c
deleted file mode 100644
index 90c80b7..0000000
--- a/ncurses-5.2/menu/m_post.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_post *
-* Write or erase menus from associated subwindows *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Post_Item(MENU *menu, ITEM *item)
-|
-| Description : Draw the item in the menus window at the current
-| window position
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void _nc_Post_Item(const MENU * menu, const ITEM * item)
-{
- int i;
- chtype ch;
- int item_x, item_y;
- int count = 0;
- bool isfore = FALSE, isback=FALSE, isgrey = FALSE;
-
- assert(menu->win);
-
- getyx(menu->win,item_y,item_x);
-
- /* We need a marker iff
- - it is a onevalued menu and it is the current item
- - or it has a selection value
- */
- wattron(menu->win,menu->back);
- if (item->value || (item==menu->curitem))
- {
- if (menu->marklen)
- {
- /* In a multi selection menu we use the fore attribute
- for a selected marker that is not the current one.
- This improves visualization of the menu, because now
- always the 'normal' marker denotes the current
- item. */
- if (!(menu->opt & O_ONEVALUE) && item->value && item!=menu->curitem)
- {
- wattron(menu->win,menu->fore);
- isfore = TRUE;
- }
- waddstr(menu->win,menu->mark);
- if (isfore)
- {
- wattron(menu->win,menu->fore);
- isfore = FALSE;
- }
- }
- }
- else /* otherwise we have to wipe out the marker area */
- for(ch=' ',i=menu->marklen;i>0;i--)
- waddch(menu->win,ch);
- wattroff(menu->win,menu->back);
- count += menu->marklen;
-
- /* First we have to calculate the attribute depending on selectability
- and selection status
- */
- if (!(item->opt & O_SELECTABLE))
- {
- wattron(menu->win,menu->grey);
- isgrey = TRUE;
- }
- else
- {
- if (item->value || item==menu->curitem)
- {
- wattron(menu->win,menu->fore);
- isfore = TRUE;
- }
- else
- {
- wattron(menu->win,menu->back);
- isback = TRUE;
- }
- }
-
- waddnstr(menu->win,item->name.str,item->name.length);
- for(ch=' ',i=menu->namelen-item->name.length;i>0;i--)
- {
- waddch(menu->win,ch);
- }
- count += menu->namelen;
-
- /* Show description if required and available */
- if ( (menu->opt & O_SHOWDESC) && menu->desclen>0 )
- {
- int m = menu->spc_desc/2;
- int cy = -1, cx = -1;
-
- for(ch=' ',i=0; i < menu->spc_desc; i++)
- {
- if (i==m)
- {
- waddch(menu->win,menu->pad);
- getyx(menu->win,cy,cx);
- }
- else
- waddch(menu->win,ch);
- }
- if (item->description.length)
- waddnstr(menu->win,item->description.str,item->description.length);
- for(ch=' ',i=menu->desclen-item->description.length; i>0; i--)
- {
- waddch(menu->win,ch);
- }
- count += menu->desclen + menu->spc_desc;
-
- if (menu->spc_rows > 1)
- {
- int j, k, ncy, ncx;
-
- assert(cx>=0 && cy>=0);
- getyx(menu->win,ncy,ncx);
- if (isgrey) wattroff(menu->win,menu->grey);
- else if (isfore) wattroff(menu->win,menu->fore);
- wattron(menu->win,menu->back);
- for(j=1; j < menu->spc_rows;j++)
- {
- if ((item_y+j) < getmaxy(menu->win))
- {
- wmove (menu->win,item_y+j,item_x);
- for(k=0;k<count;k++)
- waddch(menu->win,' ');
- }
- if ((cy+j) < getmaxy(menu->win))
- mvwaddch(menu->win,cy+j,cx-1,menu->pad);
- }
- wmove(menu->win,ncy,ncx);
- if (!isback)
- wattroff(menu->win,menu->back);
- }
- }
-
- /* Remove attributes */
- if (isfore)
- wattroff(menu->win,menu->fore);
- if (isback)
- wattroff(menu->win,menu->back);
- if (isgrey)
- wattroff(menu->win,menu->grey);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Draw_Menu(const MENU *)
-|
-| Description : Display the menu in its windows
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-void _nc_Draw_Menu(const MENU * menu)
-{
- ITEM *item = menu->items[0];
- ITEM *lasthor, *lastvert;
- ITEM *hitem;
- int y = 0;
- chtype s_bkgd;
-
- assert(item && menu->win);
-
- s_bkgd = getbkgd(menu->win);
- wbkgdset(menu->win,menu->back);
- werase(menu->win);
- wbkgdset(menu->win,s_bkgd);
-
- lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : item;
-
- do
- {
- wmove(menu->win,y,0);
-
- hitem = item;
- lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem;
-
- do
- {
- _nc_Post_Item( menu, hitem);
-
- wattron(menu->win,menu->back);
- if ( ((hitem = hitem->right) != lasthor) && hitem )
- {
- int i,j, cy, cx;
- chtype ch = ' ';
-
- getyx(menu->win,cy,cx);
- for(j=0;j<menu->spc_rows;j++)
- {
- wmove(menu->win,cy+j,cx);
- for(i=0; i < menu->spc_cols; i++)
- {
- waddch( menu->win,ch);
- }
- }
- wmove(menu->win,cy,cx+menu->spc_cols);
- }
- } while (hitem && (hitem != lasthor));
- wattroff(menu->win,menu->back);
-
- item = item->down;
- y += menu->spc_rows;
-
- } while( item && (item != lastvert) );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int post_menu(MENU *)
-|
-| Description : Post a menu to the screen. This makes it visible.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - not a valid menu pointer
-| E_SYSTEM_ERROR - error in lower layers
-| E_NO_ROOM - Menu to large for screen
-| E_NOT_CONNECTED - No items connected to menu
-| E_BAD_STATE - Menu in userexit routine
-| E_POSTED - Menu already posted
-+--------------------------------------------------------------------------*/
-int post_menu(MENU * menu)
-{
- if (!menu)
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if (menu->items && *(menu->items))
- {
- int y;
- int h = 1 + menu->spc_rows * (menu->rows - 1);
-
- WINDOW *win = Get_Menu_Window(menu);
- int maxy = getmaxy(win);
- int maxx = getmaxx(win);
-
- if (maxx < menu->width || maxy < menu->height)
- RETURN(E_NO_ROOM);
-
- if ( (menu->win = newpad(h,menu->width)) )
- {
- y = (maxy >= h) ? h : maxy;
- if (y>=menu->height)
- y = menu->height;
- if(!(menu->sub = subpad(menu->win,y,menu->width,0,0)))
- RETURN(E_SYSTEM_ERROR);
- }
- else
- RETURN(E_SYSTEM_ERROR);
-
- if (menu->status & _LINK_NEEDED)
- _nc_Link_Items(menu);
- }
- else
- RETURN(E_NOT_CONNECTED);
-
- menu->status |= _POSTED;
-
- if (!(menu->opt&O_ONEVALUE))
- {
- ITEM **items;
-
- for(items=menu->items;*items;items++)
- {
- (*items)->value = FALSE;
- }
- }
-
- _nc_Draw_Menu(menu);
-
- Call_Hook(menu,menuinit);
- Call_Hook(menu,iteminit);
-
- _nc_Show_Menu(menu);
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int unpost_menu(MENU *)
-|
-| Description : Detach menu from screen
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - not a valid menu pointer
-| E_BAD_STATE - menu in userexit routine
-| E_NOT_POSTED - menu is not posted
-+--------------------------------------------------------------------------*/
-int unpost_menu(MENU * menu)
-{
- WINDOW *win;
-
- if (!menu)
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- if ( !( menu->status & _POSTED ) )
- RETURN(E_NOT_POSTED);
-
- Call_Hook(menu,itemterm);
- Call_Hook(menu,menuterm);
-
- win = Get_Menu_Window(menu);
- werase(win);
- wsyncup(win);
-
- assert(menu->sub);
- delwin(menu->sub);
- menu->sub = (WINDOW *)0;
-
- assert(menu->win);
- delwin(menu->win);
- menu->win = (WINDOW *)0;
-
- menu->status &= ~_POSTED;
-
- RETURN(E_OK);
-}
-
-/* m_post.c ends here */
diff --git a/ncurses-5.2/menu/m_req_name.c b/ncurses-5.2/menu/m_req_name.c
deleted file mode 100644
index 0689c14..0000000
--- a/ncurses-5.2/menu/m_req_name.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_request_name *
-* Routines to handle external names of menu requests *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-static const char *request_names[ MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1 ] = {
- "LEFT_ITEM" ,
- "RIGHT_ITEM" ,
- "UP_ITEM" ,
- "DOWN_ITEM" ,
- "SCR_ULINE" ,
- "SCR_DLINE" ,
- "SCR_DPAGE" ,
- "SCR_UPAGE" ,
- "FIRST_ITEM" ,
- "LAST_ITEM" ,
- "NEXT_ITEM" ,
- "PREV_ITEM" ,
- "TOGGLE_ITEM" ,
- "CLEAR_PATTERN",
- "BACK_PATTERN" ,
- "NEXT_MATCH" ,
- "PREV_MATCH"
-};
-#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : const char * menu_request_name (int request);
-|
-| Description : Get the external name of a menu request.
-|
-| Return Values : Pointer to name - on success
-| NULL - on invalid request code
-+--------------------------------------------------------------------------*/
-const char *menu_request_name( int request )
-{
- if ( (request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND) )
- {
- SET_ERROR(E_BAD_ARGUMENT);
- return (const char *)0;
- }
- else
- return request_names[ request - MIN_MENU_COMMAND ];
-}
-
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_request_by_name (const char *str);
-|
-| Description : Search for a request with this name.
-|
-| Return Values : Request Id - on success
-| E_NO_MATCH - request not found
-+--------------------------------------------------------------------------*/
-int menu_request_by_name( const char *str )
-{
- /* because the table is so small, it doesn't really hurt
- to run sequentially through it.
- */
- unsigned int i = 0;
- char buf[16];
-
- if (str)
- {
- strncpy(buf,str,sizeof(buf));
- while( (i<sizeof(buf)) && (buf[i] != '\0') )
- {
- buf[i] = toupper(buf[i]);
- i++;
- }
-
- for (i=0; i < A_SIZE; i++)
- {
- if (strncmp(request_names[i],buf,sizeof(buf))==0)
- return MIN_MENU_COMMAND + i;
- }
- }
- RETURN(E_NO_MATCH);
-}
-
-/* m_req_name.c ends here */
diff --git a/ncurses-5.2/menu/m_scale.c b/ncurses-5.2/menu/m_scale.c
deleted file mode 100644
index 2be90db..0000000
--- a/ncurses-5.2/menu/m_scale.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_scale *
-* Menu scaling routine *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int scale_menu(const MENU *menu)
-|
-| Description : Returns the minimum window size necessary for the
-| subwindow of menu.
-|
-| Return Values : E_OK - success
-| 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)
-{
- if (!menu)
- RETURN( E_BAD_ARGUMENT );
-
- if (menu->items && *(menu->items))
- {
- if (rows)
- *rows = menu->height;
- if (cols)
- *cols = menu->width;
- RETURN(E_OK);
- }
- else
- RETURN( E_NOT_CONNECTED );
-}
-
-/* m_scale.c ends here */
-
diff --git a/ncurses-5.2/menu/m_spacing.c b/ncurses-5.2/menu/m_spacing.c
deleted file mode 100644
index 2a3284d..0000000
--- a/ncurses-5.2/menu/m_spacing.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_spacing *
-* Routines to handle spacing between entries *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-#define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
-#define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
-#define MAX_SPC_ROWS (3)
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_spacing(MENU *menu,int desc, int r, int c);
-|
-| Description : Set the spacing between entried
-|
-| Return Values : E_OK - on success
-+--------------------------------------------------------------------------*/
-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);
-
- assert(m);
- if (m->status & _POSTED)
- RETURN(E_POSTED);
-
- if (((s_desc < 0) || (s_desc > MAX_SPC_DESC)) ||
- ((s_row < 0) || (s_row > MAX_SPC_ROWS)) ||
- ((s_col < 0) || (s_col > MAX_SPC_COLS)))
- RETURN(E_BAD_ARGUMENT);
-
- m->spc_desc = s_desc ? s_desc : 1;
- m->spc_rows = s_row ? s_row : 1;
- m->spc_cols = s_col ? s_col : 1;
- _nc_Calculate_Item_Length_and_Width(m);
-
- RETURN(E_OK);
-}
-
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_spacing (const MENU *,int *,int *,int *);
-|
-| Description : Retrieve info about spacing between the entries
-|
-| Return Values : E_OK - on success
-+--------------------------------------------------------------------------*/
-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);
-
- assert(m);
- if (s_desc) *s_desc = m->spc_desc;
- if (s_row) *s_row = m->spc_rows;
- if (s_col) *s_col = m->spc_cols;
-
- RETURN(E_OK);
-}
-
-/* m_spacing.c ends here */
diff --git a/ncurses-5.2/menu/m_sub.c b/ncurses-5.2/menu/m_sub.c
deleted file mode 100644
index c7a249b..0000000
--- a/ncurses-5.2/menu/m_sub.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_sub *
-* Menus subwindow association routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_sub(MENU *menu, WINDOW *win)
-|
-| Description : Sets the subwindow of the menu.
-|
-| Return Values : E_OK - success
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-int set_menu_sub(MENU *menu, WINDOW *win)
-{
- if (menu)
- {
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
- menu->usersub = win;
- _nc_Calculate_Item_Length_and_Width(menu);
- }
- else
- _nc_Default_Menu.usersub = win;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : WINDOW *menu_sub(const MENU *menu)
-|
-| Description : Returns a pointer to the subwindow of the menu
-|
-| Return Values : NULL on error, otherwise a pointer to the window
-+--------------------------------------------------------------------------*/
-WINDOW *menu_sub(const MENU * menu)
-{
- const MENU* m = Normalize_Menu(menu);
- return Get_Menu_Window(m);
-}
-
-/* m_sub.c ends here */
diff --git a/ncurses-5.2/menu/m_userptr.c b/ncurses-5.2/menu/m_userptr.c
deleted file mode 100644
index ca16d90..0000000
--- a/ncurses-5.2/menu/m_userptr.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_userptr *
-* Associate application data with menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_userptr(MENU *menu, void *userptr)
-|
-| Description : Set the pointer that is reserved in any menu to store
-| application relevant informations.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-int set_menu_userptr(MENU * menu, void * userptr)
-{
- Normalize_Menu(menu)->userptr = userptr;
- RETURN( E_OK );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void *menu_userptr(const MENU *menu)
-|
-| Description : Return the pointer that is reserved in any menu to
-| store application relevant informations.
-|
-| Return Values : Value of the pointer. If no such pointer has been set,
-| NULL is returned
-+--------------------------------------------------------------------------*/
-void *menu_userptr(const MENU * menu)
-{
- return( Normalize_Menu(menu)->userptr);
-}
-
-/* m_userptr.c ends here */
diff --git a/ncurses-5.2/menu/m_win.c b/ncurses-5.2/menu/m_win.c
deleted file mode 100644
index 0639f69..0000000
--- a/ncurses-5.2/menu/m_win.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_win *
-* Menus window association routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_win(MENU *menu, WINDOW *win)
-|
-| Description : Sets the window of the menu.
-|
-| Return Values : E_OK - success
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-int set_menu_win(MENU *menu, WINDOW *win)
-{
- if (menu)
- {
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
- menu->userwin = win;
- _nc_Calculate_Item_Length_and_Width(menu);
- }
- else
- _nc_Default_Menu.userwin = win;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : WINDOW *menu_win(const MENU *)
-|
-| Description : Returns pointer to the window of the menu
-|
-| Return Values : NULL on error, otherwise pointer to window
-+--------------------------------------------------------------------------*/
-WINDOW *menu_win(const MENU *menu)
-{
- const MENU* m = Normalize_Menu(menu);
- return (m->userwin ? m->userwin : stdscr);
-}
-
-/* m_win.c ends here */
diff --git a/ncurses-5.2/menu/menu.h b/ncurses-5.2/menu/menu.h
deleted file mode 100644
index 5be728b..0000000
--- a/ncurses-5.2/menu/menu.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-#ifndef ETI_MENU
-#define ETI_MENU
-
-#ifdef AMIGA
-#define TEXT TEXT_ncurses
-#endif
-
-#include <curses.h>
-#include <eti.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef int Menu_Options;
-typedef int Item_Options;
-
-/* Menu options: */
-#define O_ONEVALUE (0x01)
-#define O_SHOWDESC (0x02)
-#define O_ROWMAJOR (0x04)
-#define O_IGNORECASE (0x08)
-#define O_SHOWMATCH (0x10)
-#define O_NONCYCLIC (0x20)
-
-/* Item options: */
-#define O_SELECTABLE (0x01)
-
-typedef struct
-{
- const char* str;
- unsigned short length;
-} TEXT;
-
-typedef struct tagITEM
-{
- TEXT name; /* name of menu item */
- TEXT description; /* description of item, optional in display */
- struct tagMENU *imenu; /* Pointer to parent menu */
- void *userptr; /* Pointer to user defined per item data */
- Item_Options opt; /* Item options */
- short index; /* Item number if connected to a menu */
- short y; /* y and x location of item in menu */
- short x;
- bool value; /* Selection value */
-
- struct tagITEM *left; /* neighbour items */
- struct tagITEM *right;
- struct tagITEM *up;
- struct tagITEM *down;
-
-} ITEM;
-
-typedef void (*Menu_Hook)(struct tagMENU *);
-
-typedef struct tagMENU
-{
- short height; /* Nr. of chars high */
- short width; /* Nr. of chars wide */
- short rows; /* Nr. of items high */
- short cols; /* Nr. of items wide */
- short frows; /* Nr. of formatted items high */
- short fcols; /* Nr. of formatted items wide */
- short arows; /* Nr. of items high (actual) */
- short namelen; /* Max. name length */
- short desclen; /* Max. description length */
- short marklen; /* Length of mark, if any */
- short itemlen; /* Length of one item */
- short spc_desc; /* Spacing for descriptor */
- short spc_cols; /* Spacing for columns */
- short spc_rows; /* Spacing for rows */
- char *pattern; /* Buffer to store match chars */
- short pindex; /* Index into pattern buffer */
- WINDOW *win; /* Window containing menu */
- WINDOW *sub; /* Subwindow for menu display */
- WINDOW *userwin; /* User's window */
- WINDOW *usersub; /* User's subwindow */
- ITEM **items; /* array of items */
- short nitems; /* Nr. of items in menu */
- ITEM *curitem; /* Current item */
- short toprow; /* Top row of menu */
- chtype fore; /* Selection attribute */
- chtype back; /* Nonselection attribute */
- chtype grey; /* Inactive attribute */
- unsigned char pad; /* Pad character */
-
- Menu_Hook menuinit; /* User hooks */
- Menu_Hook menuterm;
- Menu_Hook iteminit;
- Menu_Hook itemterm;
-
- void *userptr; /* Pointer to menus user data */
- char *mark; /* Pointer to marker string */
-
- Menu_Options opt; /* Menu options */
- unsigned short status; /* Internal state of menu */
-
-} MENU;
-
-
-/* Define keys */
-
-#define REQ_LEFT_ITEM (KEY_MAX + 1)
-#define REQ_RIGHT_ITEM (KEY_MAX + 2)
-#define REQ_UP_ITEM (KEY_MAX + 3)
-#define REQ_DOWN_ITEM (KEY_MAX + 4)
-#define REQ_SCR_ULINE (KEY_MAX + 5)
-#define REQ_SCR_DLINE (KEY_MAX + 6)
-#define REQ_SCR_DPAGE (KEY_MAX + 7)
-#define REQ_SCR_UPAGE (KEY_MAX + 8)
-#define REQ_FIRST_ITEM (KEY_MAX + 9)
-#define REQ_LAST_ITEM (KEY_MAX + 10)
-#define REQ_NEXT_ITEM (KEY_MAX + 11)
-#define REQ_PREV_ITEM (KEY_MAX + 12)
-#define REQ_TOGGLE_ITEM (KEY_MAX + 13)
-#define REQ_CLEAR_PATTERN (KEY_MAX + 14)
-#define REQ_BACK_PATTERN (KEY_MAX + 15)
-#define REQ_NEXT_MATCH (KEY_MAX + 16)
-#define REQ_PREV_MATCH (KEY_MAX + 17)
-
-#define MIN_MENU_COMMAND (KEY_MAX + 1)
-#define MAX_MENU_COMMAND (KEY_MAX + 17)
-
-/*
- * Some AT&T code expects MAX_COMMAND to be out-of-band not
- * just for menu commands but for forms ones as well.
- */
-#if defined(MAX_COMMAND)
-# if (MAX_MENU_COMMAND > MAX_COMMAND)
-# error Something is wrong -- MAX_MENU_COMMAND is greater than MAX_COMMAND
-# elif (MAX_COMMAND != (KEY_MAX + 128))
-# error Something is wrong -- MAX_COMMAND is already inconsistently defined.
-# endif
-#else
-# define MAX_COMMAND (KEY_MAX + 128)
-#endif
-
-
-/* --------- 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 *);
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* ETI_MENU */
diff --git a/ncurses-5.2/menu/menu.priv.h b/ncurses-5.2/menu/menu.priv.h
deleted file mode 100644
index 4c2a22d..0000000
--- a/ncurses-5.2/menu/menu.priv.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/***************************************************************************
-* Module menu.priv.h *
-* Top level private header file for all libnmenu modules *
-***************************************************************************/
-
-#include "mf_common.h"
-#include "menu.h"
-
-/* Backspace code */
-#define BS (8)
-
-extern ITEM _nc_Default_Item;
-extern MENU _nc_Default_Menu;
-
-/* Normalize item to default if none was given */
-#define Normalize_Item( item ) ((item)=(item)?(item):&_nc_Default_Item)
-
-/* Normalize menu to default if none was given */
-#define Normalize_Menu( menu ) ((menu)=(menu)?(menu):&_nc_Default_Menu)
-
-/* Get the user defined (framing) window of the menu */
-#define Get_Menu_UserWin(menu) ((menu)->userwin ? (menu)->userwin : stdscr)
-
-/* Normalize menu window */
-#define Get_Menu_Window( menu ) \
- ((menu)->usersub ? (menu)->usersub : Get_Menu_UserWin(menu))
-
-/* menu specific status flags */
-#define _LINK_NEEDED (0x04)
-#define _MARK_ALLOCATED (0x08)
-
-#define ALL_MENU_OPTS ( \
- O_ONEVALUE | \
- O_SHOWDESC | \
- O_ROWMAJOR | \
- O_IGNORECASE | \
- O_SHOWMATCH | \
- O_NONCYCLIC )
-
-#define ALL_ITEM_OPTS (O_SELECTABLE)
-
-/* Move to the window position of an item and draw it */
-#define Move_And_Post_Item(menu,item) \
- {wmove((menu)->win,(menu)->spc_rows*(item)->y,((menu)->itemlen+(menu)->spc_cols)*(item)->x);\
- _nc_Post_Item((menu),(item));}
-
-#define Move_To_Current_Item(menu,item) \
- if ( (item) != (menu)->curitem)\
- {\
- Move_And_Post_Item(menu,item);\
- Move_And_Post_Item(menu,(menu)->curitem);\
- }
-
-/* This macro ensures, that the item becomes visible, if possible with the
- specified row as the top row of the window. If this is not possible,
- the top row will be adjusted and the value is stored in the row argument.
-*/
-#define Adjust_Current_Item(menu,row,item) \
- { if ((item)->y < row) \
- row = (item)->y;\
- if ( (item)->y >= (row + (menu)->arows) )\
- row = ( (item)->y < ((menu)->rows - row) ) ? \
- (item)->y : (menu)->rows - (menu)->arows;\
- _nc_New_TopRow_and_CurrentItem(menu,row,item); }
-
-/* Reset the match pattern buffer */
-#define Reset_Pattern(menu) \
- { (menu)->pindex = 0; \
- (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,
- int* pY, int* pX);
diff --git a/ncurses-5.2/menu/mf_common.h b/ncurses-5.2/menu/mf_common.h
deleted file mode 100644
index 6b1e8fe..0000000
--- a/ncurses-5.2/menu/mf_common.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
- ****************************************************************************/
-
-/* Common internal header for menu and form library */
-
-#if HAVE_CONFIG_H
-# include <ncurses_cfg.h>
-#endif
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-/* in case of debug version we ignore the suppression of assertions */
-#ifdef TRACE
-# ifdef NDEBUG
-# undef NDEBUG
-# endif
-#endif
-
-#include <nc_alloc.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-
-/* Maximum regular 8-bit character code */
-#define MAX_REGULAR_CHARACTER (0xff)
-
-#define SET_ERROR(code) (errno=(code))
-#define GET_ERROR() (errno)
-#define RETURN(code) return( SET_ERROR(code) )
-
-/* The few common values in the status fields for menus and forms */
-#define _POSTED (0x01) /* menu or form is posted */
-#define _IN_DRIVER (0x02) /* menu or form is processing hook routine */
-
-/* Call object hook */
-#define Call_Hook( object, handler ) \
- if ( (object) && ((object)->handler) )\
- {\
- (object)->status |= _IN_DRIVER;\
- (object)->handler(object);\
- (object)->status &= ~_IN_DRIVER;\
- }
-
-#define INLINE
-
-#ifndef TRACE
-# if CC_HAS_INLINE_FUNCS
-# undef INLINE
-# define INLINE inline
-# endif
-#endif
diff --git a/ncurses-5.2/menu/modules b/ncurses-5.2/menu/modules
deleted file mode 100644
index eb1f9e8..0000000
--- a/ncurses-5.2/menu/modules
+++ /dev/null
@@ -1,60 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-
-@ base
-# Library objects
-m_attribs lib $(srcdir) $(MENU_PRIV_H)
-m_cursor lib $(srcdir) $(MENU_PRIV_H)
-m_driver lib $(srcdir) $(MENU_PRIV_H)
-m_format lib $(srcdir) $(MENU_PRIV_H)
-m_global lib $(srcdir) $(MENU_PRIV_H)
-m_hook lib $(srcdir) $(MENU_PRIV_H)
-m_item_cur lib $(srcdir) $(MENU_PRIV_H)
-m_item_nam lib $(srcdir) $(MENU_PRIV_H)
-m_item_new lib $(srcdir) $(MENU_PRIV_H)
-m_item_opt lib $(srcdir) $(MENU_PRIV_H)
-m_item_top lib $(srcdir) $(MENU_PRIV_H)
-m_item_use lib $(srcdir) $(MENU_PRIV_H)
-m_item_val lib $(srcdir) $(MENU_PRIV_H)
-m_item_vis lib $(srcdir) $(MENU_PRIV_H)
-m_items lib $(srcdir) $(MENU_PRIV_H)
-m_new lib $(srcdir) $(MENU_PRIV_H)
-m_opts lib $(srcdir) $(MENU_PRIV_H)
-m_pad lib $(srcdir) $(MENU_PRIV_H)
-m_pattern lib $(srcdir) $(MENU_PRIV_H)
-m_post lib $(srcdir) $(MENU_PRIV_H)
-m_req_name lib $(srcdir) $(MENU_PRIV_H)
-m_scale lib $(srcdir) $(MENU_PRIV_H)
-m_spacing lib $(srcdir) $(MENU_PRIV_H)
-m_sub lib $(srcdir) $(MENU_PRIV_H)
-m_userptr lib $(srcdir) $(MENU_PRIV_H)
-m_win lib $(srcdir) $(MENU_PRIV_H)
diff --git a/ncurses-5.2/misc/Makefile.in b/ncurses-5.2/misc/Makefile.in
deleted file mode 100644
index 7e084a4..0000000
--- a/ncurses-5.2/misc/Makefile.in
+++ /dev/null
@@ -1,121 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for ncurses miscellany directory
-#
-# This makes/installs the terminfo database
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-
-DESTDIR = @DESTDIR@
-top_srcdir = @top_srcdir@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-datadir = @datadir@
-
-tabsetdir = $(datadir)/tabset
-ticdir = @TERMINFO@
-source = @TERMINFO_SRC@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-################################################################################
-all:
-
-sources:
-
-install: install.data
-
-install.data : $(DESTDIR)$(libdir) \
- $(DESTDIR)$(ticdir) \
- $(DESTDIR)$(tabsetdir)
- DESTDIR=${DESTDIR} \
- prefix=${prefix} \
- exec_prefix=${exec_prefix} \
- bindir=${bindir} \
- top_srcdir=${top_srcdir} \
- srcdir=${srcdir} \
- datadir=${datadir} \
- ticdir=${ticdir} \
- source=${source} \
- $(SHELL) ./run_tic.sh
- @cd $(srcdir)/tabset && \
- $(SHELL) -c 'for i in * ; do \
- if test -f $$i ; then \
- echo installing $$i; \
- $(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
- fi; done'
-
-$(DESTDIR)$(libdir) \
-$(DESTDIR)$(tabsetdir) \
-$(DESTDIR)$(ticdir) :
- $(srcdir)/../mkinstalldirs $@
-
-uninstall: uninstall.data
-
-uninstall.data:
- -cd $(DESTDIR)$(ticdir) && rm -rf *
- -cd $(DESTDIR)$(tabsetdir) && rm -rf *
-
-tags:
-
-@MAKE_UPPER_TAGS@TAGS:
-
-mostlyclean:
- -rm -f core tags TAGS *~ *.ln *.atac trace
-
-clean :: mostlyclean
-
-distclean: clean
- -rm -f Makefile run_tic.sh
-
-realclean: distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/misc/chkdef.cmd b/ncurses-5.2/misc/chkdef.cmd
deleted file mode 100644
index ee5dc5b..0000000
--- a/ncurses-5.2/misc/chkdef.cmd
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * $Id$
- *
- * Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
- * Webpage: http://www.arrakis.es/~worm/
- *
- * chkdef.cmd - checks that a .def file has no conflicts and is properly
- * formatted.
- *
- * returns nonzero if two symbols have the same code or a line has a wrong
- * format.
- *
- * returns 0 otherwise
- *
- * the standard output shows conflicts.
- */
-parse arg def_file
-
-def_file = translate(def_file,'\','/')
-
-call CleanQueue
-
-/*
- * `cmp' is zero when the file is valid
- * `codes' associates a name to a code
- * `names' associates a code to a name
- */
-cmp = 0
-codes. = 0
-names. = ''
-
-/*
- * This sed expression cleans empty lines, comments and special .DEF
- * commands, such as LIBRARY..., EXPORTS..., etc
- */
-tidy_up = '"s/[ ][ ]*/ /g;s/;.*//g;/^[ ]*$/d;/^[a-zA-Z]/d;"'
-
-/*
- * First we find all public symbols from the original DLL. All this
- * information is pushed into a REXX private list with the RXQUEUE
- * utility program.
- */
-'@echo off'
-'type' def_file '| sed' tidy_up '| sort | rxqueue'
-
-do while queued() > 0
- /*
- * We retrieve the symbol name (NEW_NAME) and its code (NEW_CODE)
- */
- parse pull '"' new_name '"' '@'new_code rest
- select
- when (new_code = '') | (new_name = '') then
- /* The input was not properly formatted */
- do
- say 'Error: symbol "'new_name'" has no export code or is empty'
- cmp = 1
- end
- when codes.new_name \= 0 then
- /* This symbol was already defined */
- if codes.new_name \= new_code then
- do
- cmp = 2
- say 'Symbol "'new_name'" multiply defined'
- end
- when names.new_code \= '' then
- /* This code was already assigned to a symbol */
- if names.new_code \= new_name then
- do
- cmp = 3
- say 'Conflict with "'names.new_code'" & "'new_name'" being @'new_code
- end
- otherwise
- do
- codes.new_name = new_code
- names.new_code = new_name
- end
- end /* select */
-end
-
-exit cmp
-
-CleanQueue: procedure
- do while queued() > 0
- parse pull foo
- end
-return
diff --git a/ncurses-5.2/misc/cleantic.cmd b/ncurses-5.2/misc/cleantic.cmd
deleted file mode 100644
index 129c904..0000000
--- a/ncurses-5.2/misc/cleantic.cmd
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * $Id$
- *
- * Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
- * Webpage: http://www.arrakis.es/~worm/
- */
-parse arg dir
-
-pause
-dir = translate(dir,'\','/');
-letters = '0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z'
-
-if dir = '' then
- dir = '.'
-'echo Cleaning 'dir
-'for %%1 in ('letters') do @if not exist 'dir'\%%1\* (echo Cleaning ...\%%1 & rd %%1 2>NUL)'
diff --git a/ncurses-5.2/misc/cmpdef.cmd b/ncurses-5.2/misc/cmpdef.cmd
deleted file mode 100644
index 0aa4bdb..0000000
--- a/ncurses-5.2/misc/cmpdef.cmd
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * $Id$
- *
- * Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
- * Webpage: http://www.arrakis.es/~worm/
- *
- * cmpdef.cmd - compares two .def files, checking whether they have
- * the same entries with the same export codes.
- *
- * returns 0 if there are no conflicts between the files -- that is,
- * the newer one can replace the older one.
- *
- * returns 1 when either of the files is not properly formatted and
- * when there are conflicts: two symbols having the same export code.
- *
- * the standard output shows a list with newly added symbols, plus
- * replaced symbols and conflicts.
- */
-parse arg def_file1 def_file2
-
-def_file1 = translate(def_file1,'\','/')
-def_file2 = translate(def_file2,'\','/')
-
-call CleanQueue
-
-/*
- * `cmp' is zero when the last file is valid and upward compatible
- * `numbers' is the stem where symbols are stored
- */
-cmp = 0
-names. = ''
-numbers. = 0
-
-/*
- * This sed expression cleans empty lines, comments and special .DEF
- * commands, such as LIBRARY..., EXPORTS..., etc
- */
-tidy_up = '"s/[ ][ ]*/ /g;s/;.*//g;/^[ ]*$/d;/^[a-zA-Z]/d;"'
-
-/*
- * First we find all public symbols from the original DLL. All this
- * information is pushed into a REXX private list with the RXQUEUE
- * utility program.
- */
-'@echo off'
-'type' def_file1 '| sed' tidy_up '| sort | rxqueue'
-
-do while queued() > 0
- /*
- * We retrieve the symbol name (NAME) and its number (NUMBER)
- */
- parse pull '"' name '"' '@'number rest
- if number = '' || name = '' then
- do
- say 'Corrupted file' def_file1
- say 'Symbol' name 'has no number'
- exit 1
- end
- else
- do
- numbers.name = number
- names.number = name
- end
-end
-
-/*
- * Now we find all public symbols from the new DLL, and compare.
- */
-'type' def_file2 '| sed' tidy_up '| sort | rxqueue'
-
-do while queued() > 0
- parse pull '"' name '"' '@'number rest
- if name = '' | number = '' then
- do
- say 'Corrupted file' def_file2
- say 'Symbol' name 'has no number'
- exit 1
- end
- if numbers.name = 0 then
- do
- cmp = 1
- if names.number = '' then
- say 'New symbol' name 'with code @'number
- else
- say 'Conflict old =' names.number ', new =' name 'at @'number
- end
- else if numbers.name \= number then
- do
- cmp = 1
- say name 'Symbol' name 'changed from @'numbers.name 'to @'number
- end
-end /* do */
-
-exit cmp
-
-/*
- * Cleans the REXX queue by pulling and forgetting every line.
- * This is needed, at least, when `cmpdef.cmd' starts, because an aborted
- * REXX program might have left some rubbish in.
- */
-CleanQueue: procedure
- do while queued() > 0
- parse pull foo
- end
-return
-
diff --git a/ncurses-5.2/misc/emx.src b/ncurses-5.2/misc/emx.src
deleted file mode 100644
index b95e641..0000000
--- a/ncurses-5.2/misc/emx.src
+++ /dev/null
@@ -1,825 +0,0 @@
-# $Id$
-# This is a reformatted copy of the terminfo source for OS/2 EMX from
-# Juan Jose Garcia Ripoll <worm@arrakis.es>.
-# http://www.arrakis.es/~worm/
-#----------------------------------------------------------------------------
-#
-# This section describes terminal classes and maker brands that are still
-# quite common.
-#
-
-#### Specials
-#
-# Special "terminals". These are used to label tty lines when you don't
-# know what kind of terminal is on it. The characteristics of an unknown
-# terminal are the lowest common denominator - they look about like a ti 700.
-#
-
-dumb|80-column dumb tty,
- am,
- cols#80,
- bel=^G,
- cr=^M,
- cud1=^J,
- ind=^J,
-unknown|unknown terminal type,
- gn,
- use=dumb,
-lpr|printer|line printer,
- hc,
- os,
- cols#132,
- lines#66,
- bel=^G,
- cr=^M,
- cub1=^H,
- cud1=^J,
- ff=^L,
- ind=^J,
-glasstty|classic glass tty interpreting ASCII control characters,
- am,
- cols#80,
- bel=^G,
- clear=^L,
- cr=^M,
- cub1=^H,
- cud1=^J,
- ht=^I,
- kbs=^H,
- kcub1=^H,
- kcud1=^J,
- nel=^M^J,
-
-#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
-#
-# See the end-of-file comment for more on these.
-#
-
-# The IBM PC alternate character set. Plug this into any Intel console entry.
-# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
-# ROM graphics for control characters such as the diamond, up- and down-arrow.
-# This works with the System V, Linux, and BSDI consoles. It's a safe bet this
-# will work with any Intel console, they all seem to have inherited \E[11m
-# from the ANSI.SYS de-facto standard.
-klone+acs|alternate character set for ansi.sys displays,
- 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,
- rmacs=\E[10m,
- smacs=\E[11m,
-
-# Highlight controls corresponding to the ANSI.SYS standard. Most
-# console drivers for Intel boxes obey these. Makes the same assumption
-# about \E[11m as klone+acs. True ANSI/ECMA-48 would have <rmso=\E[27m>,
-# <rmul=\E[24m>, but this isn't a documented feature of ANSI.SYS.
-klone+sgr|attribute control for ansi.sys displays,
- blink=\E[5m,
- bold=\E[1m,
- invis=\E[8m,
- rev=\E[7m,
- rmacs=\E[10m,
- rmpch=\E[10m,
- rmso=\E[m,
- rmul=\E[m,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- sgr0=\E[0;10m,
- smacs=\E[11m,
- smpch=\E[11m,
- smso=\E[7m,
- smul=\E[4m,
-
-# Highlight controls corresponding to the ANSI.SYS standard. *All*
-# console drivers for Intel boxes obey these. Does not assume \E[11m will
-# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
-# diamond and arrow characters under curses.
-klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m),
- blink=\E[5m,
- bold=\E[1m,
- invis=\E[8m,
- rev=\E[7m,
- rmacs=\E[10m,
- rmso=\E[m,
- rmul=\E[m,
- 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,
-
-# ANSI.SYS color control.
-# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
-klone+color|color control for ansi.sys and ISO6429-compatible displays,
- colors#8,
- ncv#3,
- pairs#64,
- op=\E[37;40m,
- setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-
-#### ANSI/ECMA-48 terminals and terminal emulators
-#
-# See near the end of this file for details on ANSI conformance.
-# Don't mess with these entries! Lots of other entries depend on them!
-#
-# This section lists entries in a least-capable to most-capable order.
-# if you're in doubt about what `ANSI' matches yours, try them in that
-# order and back off from the first that breaks.
-
-ansi-mini|any ansi terminal with pessimistic assumptions,
- am,
- cols#80,
- it#8,
- lines#24,
- clear=\E[H\E[2J$<50>,
- cub1=\E[D,
- cud1=\E[B,
- cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A,
- el=\E[K,
- home=\E[H,
- ht=^I,
-
-#
-# ANSI.SYS entries
-#
-# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
-# documentation (except for the keyboard key reassignment feature, which
-# doen't fit the <pfkey> model well). The klone+acs sequences were valid
-# though undocumented. The <pfkey> capability is untested but should work for
-# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
-ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
- am,
- mir,
- msgr,
- xon,
- cols#80,
- lines#25,
- clear=\E[2J,
- cub1=^H,
- cud1=\E[B,
- cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A,
- el=\E[k,
- home=\E[H,
- is2=\E[m\E[?7h,
- kcub1=^H,
- kcud1=^J,
- kcuf1=^L,
- kcuu1=^K,
- khome=^^,
- pfkey=\E[0;%p1%{58}%+%d;%p2"%s",
- rc=\E[u,
- rmam=\E[?7l,
- sc=\E[s,
- smam=\E[?7h,
- u6=\E[%i%d;%dR,
- u7=\E[6n,
- use=klone+color,
- use=klone+acs,
- use=klone+sgr,
-ansi.sys|ANSI.SYS 3.1 and later versions,
- el=\E[K,
- use=ansi.sys-old,
-
-### EMX termcap.dat compatibility modes
-#
-# Keypad: Home=\0G Up=\0H PrPag=\0I
-# ka1,kh kcuu1 kpp,ka3
-#
-# Left=\0K 5=\0L Right=\0M
-# kcub1 kb2 kcuf1
-#
-# End=\0O Down=\0P NxPag=\0Q
-# kc1,kend kcud1 kc3,knp
-#
-# Ins=\0R Del=\0S
-# kich1 kdch1
-#
-# On keyboard with 12 function keys,
-# shifted f-keys: F13-F24
-# control f-keys: F25-F36
-# alt f-keys: F37-F48
-# The shift/control/alt keys do not modify each other, but alt overrides both,
-# and control overrides shift.
-#
-# Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
-# no_color_video to inform the application that standout(1), underline(2)
-# reverse(4) and invisible(64) don't work with color.
-emx-base|DOS special keys,
- bw,
- ncv#71,
- bel=^G,
- ka1=\0G,
- ka3=\0I,
- kb2=\0L,
- kbs=^H,
- kc1=\0O,
- kc3=\0Q,
- kcbt=\0^O,
- kcub1=\0K,
- kcud1=\0P,
- kcuf1=\0M,
- kcuu1=\0H,
- kdch1=\0S,
- kend=\0O,
- kf1=\0;,
- kf10=\0D,
- kf11=\0\205,
- kf12=\0\206,
- kf13=\0T,
- kf14=\0U,
- kf15=\0V,
- kf16=\0W,
- kf17=\0X,
- kf18=\0Y,
- kf19=\0Z,
- kf2=\0<,
- kf20=\0[,
- kf21=\0\\,
- kf22=\0],
- kf23=\0\207,
- kf24=\0\210,
- kf25=\0\^,
- kf26=\0_,
- kf27=\0`,
- kf28=\0a,
- kf29=\0b,
- kf3=\0=,
- kf30=\0c,
- kf31=\0d,
- kf32=\0e,
- kf33=\0f,
- kf34=\0g,
- kf35=\0\211,
- kf36=\0\212,
- kf37=\0h,
- kf38=\0i,
- kf39=\0j,
- kf4=\0>,
- kf40=\0k,
- kf41=\0l,
- kf42=\0m,
- kf43=\0n,
- kf44=\0o,
- kf45=\0p,
- kf46=\0q,
- kf47=\0\213,
- kf48=\0\214,
- kf5=\0?,
- kf6=\0@,
- kf7=\0A,
- kf8=\0B,
- kf9=\0C,
- khome=\0G,
- kich1=\0R,
- knp=\0Q,
- kpp=\0I,
- use=ansi.sys,
-#
-# To properly translate termcap.dat -> terminfo.src remember these
-# equivalences:
-# ti <-> smcup string to start programs using cup(termcap)
-# te <-> rmcup string to end programs using cup
-# so <-> smso begin standout mode
-# se <-> rmso exit standout mode
-# us <-> smul begin underline mode
-# ue <-> rmul exit underline mode
-# mb <-> blink turn on blinking
-# md <-> bold turn on extra bright (bold) mode
-# mr <-> rev turn on reverse video mode
-# me <-> sgr0 turn off all atributes
-#
-# On my terminal, \E[4m looks dim.
-ansi|ANSI.SYS color,
- blink=\E[5m,
- bold=\E[1m,
- kmous=\E[M,
- rev=\E[7m,
- rmcup=\E[0m,
- rmso=\E[0m,
- rmul@,
- sgr0=\E[0m,
- smcup=\E[0;37;40m,
- smso=\E[7m,
- smul@,
- use=emx-base,
-window|ANSI.SYS window,
- blink=\E[5m,
- bold=\E[1;37;47m,
- rev=\E[1;37;47m,
- rmcup=\E[0m,
- rmso=\E[0;37;40m,
- rmul=\E[0;37;40m,
- sgr0=\E[0;37;40m,
- smcup=\E[0;37;40m,
- smso=\E[1;37;47m,
- smul=\E[1;31;47m,
- use=emx-base,
-os2|OS/2-emx ANSI.SYS,
- cuu=\E[%p1%dA,
- cuu1=\E[A,
- cud=\E[%p1%dB,
- cud1=\E[B,
- cuf=\E[%p1%dC,
- cuf1=\E[C,
- cub=\E[%p1%dD,
- cub1=\E[D,
- sc=\E[s,
- rc=\E[u,
- use=ansi,
- use=mono,
-mono|ANSI.SYS mono,
- blink=\E[5m,
- bold=\E[1m,
- rev=\E[7m,
- rmcup=\E[0m,
- rmso=\E[m,
- rmul=\E[m,
- sgr0=\E[m,
- smcup=\E[0m,
- smso=\E[1m,
- smul=\E[4m,
- use=emx-base,
-# same as mono, but use reverse video for standout (nice for Emacs)
-rmono|ANSI.SYS reverse mono,
- smso=\E[7m,
- use=mono,
-# same as mono, but use a readable color for underlining
-mono2|ANSI.SYS mono2,
- rmul=\E[0m,
- smul=\E[1;31;40m,
- use=mono,
-# nice colors for Emacs (white on blue, mode line white on cyan)
-ansi-color-2|ANSI.SYS color 2,
- rmcup=\E[0m,
- rmso=\E[0;37;44m,
- rmul=\E[0m,
- sgr0=\E[0;37;44m,
- smcup=\E[0;37;44m,
- smso=\E[1;37;46m,
- smul=\E[1;31;40m,
- use=ansi,
-# nice colors for Emacs (white on black, mode line black on cyan)
-ansi-color-3|ANSI.SYS color 3,
- rmcup=\E[0m,
- rmso=\E[0m,
- rmul=\E[0m,
- sgr0=\E[0m,
- smcup=\E[0m,
- smso=\E[30;46m,
- smul=\E[1;31;40m,
- use=ansi,
-
-#### X terminal emulators
-#
-# X10/6.6 11/7/86, minus alternate screen, plus (csr)
-# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
-# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
-# as these seem not to work -- esr)
-x10term|vs100-x10|xterm terminal emulator (X10 window system),
- am,
- km,
- mir,
- msgr,
- xenl,
- xon,
- cols#80,
- it#8,
- lines#65,
- bold=\E[1m,
- clear=\E[H\E[2J,
- csr=\E[%i%p1%d;%p2%dr,
- cub1=^H,
- cud1=^J,
- cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A,
- dch=\E[%p1%dP,
- dch1=\E[P,
- dl=\E[%p1%dM,
- dl1=\E[M,
- ed=\E[J,
- el=\E[K,
- home=\E[H,
- ht=^I,
- il=\E[%p1%dL,
- il1=\E[L,
- ind=^J,
- is2=\E\E[m\E[?7h\E[?1;4l,
- kbs=^H,
- kcub1=\EOD,
- kcud1=\EOB,
- kcuf1=\EOC,
- kcuu1=\EOA,
- kf1=\EOP,
- kf2=\EOQ,
- kf3=\EOR,
- kf4=\EOS,
- rev=\E[7m,
- ri=\EM,
- rmam=\E[?7l,
- rmir=\E[4l,
- rmkx=\E[?1l\E>,
- rmso=\E[m,
- rmul=\E[m,
- sgr0=\E[m,
- smam=\E[?7h,
- smir=\E[4h,
- smkx=\E[?1h\E=,
- smso=\E[7m,
- smul=\E[4m,
-# X11R6 xterm. This is known good for the XFree86 version under Linux.
-# It is *way* more featureful than the stock X consortium entry (has acsc,
-# for starters). The <kmous> key is actually the \E[M prefix returned by
-# xterm's internal mouse-tracking facility; ncurses will interpret the
-# following three bytes of mouse status information.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 14 Dec 1995
-xterm|vs100|xterm terminal emulator (X11R6 Window System),
- am,
- km,
- mir,
- msgr,
- xenl,
- xon,
- cols#80,
- it#8,
- lines#65,
- acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G,
- bold=\E[1m,
- clear=\E[H\E[2J,
- cr=^M,
- csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD,
- cub1=^H,
- cud=\E[%p1%dB,
- cud1=^J,
- cuf=\E[%p1%dC,
- cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA,
- cuu1=\E[A,
- dch=\E[%p1%dP,
- dch1=\E[P,
- dl=\E[%p1%dM,
- dl1=\E[M,
- ed=\E[J,
- el=\E[K,
- enacs=\E(B\E)0,
- home=\E[H,
- ht=^I,
- ich=\E[%p1%d@,
- ich1=\E[@,
- il=\E[%p1%dL,
- il1=\E[L,
- ind=^J,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
- kbs=^H,
- kcub1=\EOD,
- kcud1=\EOB,
- kcuf1=\EOC,
- kcuu1=\EOA,
- kend=\EOe,
- kent=\EOM,
- kf1=\E[11~,
- kf10=\E[21~,
- kf11=\E[23~,
- kf12=\E[24~,
- kf2=\E[12~,
- kf3=\E[13~,
- kf4=\E[14~,
- kf5=\E[15~,
- kf6=\E[17~,
- kf7=\E[18~,
- kf8=\E[19~,
- kf9=\E[20~,
- khome=\EO\0,
- kich1=\E[2~,
- kmous=\E[M,
- knp=\E[6~,
- kpp=\E[5~,
- rc=\E8,
- rev=\E[7m,
- ri=\EM,
- rmacs=^O,
- rmam=\E[?7l,
- rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l,
- rmkx=\E[?1l\E>,
- rmso=\E[m,
- rmul=\E[m,
- rs1=^O,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
- sc=\E7,
- 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[3k,
- u6=\E[%i%d;%dR,
- u7=\E[6n,
- u8=\E[?1;2c,
- u9=\E[c,
-xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
- smso=\E[1m,
- use=xterm,
-xterms|vs100s|xterm terminal emulator (small screen 24x80),
- cols#80,
- lines#24,
- use=xterm,
-# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
-kterm|kterm kanji terminal emulator (X window system),
- eslok,
- hs,
- csr=\E[%i%p1%d;%p2%dr,
- dsl=\E[?H,
- fsl=\E[?F,
- rc=\E8,
- sc=\E7,
- tsl=\E[?E\E[?%i%dT,
- use=xterm,
-
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
- ich@,
- ich1@,
- use=xterm,
-
-# Should work with the color xterm on the X11R6 contrib tape.
-# Assumes the xterm attribute default is black on white.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> March 4 1996
-xterm-color|xterm with color support,
- op=\E[30;47m,
- use=xterm,
- use=klone+color,
-
-# From: Thomas Dickey <dickey@clark.net> 13 Dec 1995
-rxvt|rxvt terminal emulator,
- kend=\EOw,
- khome=\E[H,
- kmous@,
- use=xterm,
- use=klone+color,
-
-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
-# Here's a termcap entry I've been using for xterm_color, which comes
-# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
-# color stuff, I also have a status line defined as the window manager
-# title bar. [I have translated it to terminfo -- ESR]
-xterm-pcolor|xterm with color used for highlights and status line,
- hs,
- wsl#40,
- bold=\E[1m\E[43m,
- dsl=\E]0;\007,
- fsl=^G,
- rev=\E[7m\E[34m,
- smso=\E[7m\E[31m,
- smul=\E[4m\E[42m,
- tsl=\E]0;,
- use=xterm,
-
-# HP ships this, except for the pb#9600 which was merged in from BSD termcap.
-hpterm|X-hpterm|hp X11 terminal emulator,
- am,
- da,
- db,
- mir,
- xhp,
- cols#80,
- lh#2,
- lines#24,
- lm#0,
- lw#8,
- nlab#8,
- pb#9600,
- xmc#0,
- bel=^G,
- bold=\E&dB,
- cbt=\Ei,
- clear=\E&a0y0C\EJ,
- cr=^M,
- cub1=^H,
- cud1=\EB,
- cuf1=\EC,
- cup=\E&a%p1%dy%p2%dC,
- cuu1=\EA,
- dch1=\EP,
- dim=\E&dH,
- dl1=\EM,
- ed=\EJ$<1>,
- el=\EK,
- hpa=\E&a%p1%dC,
- ht=^I,
- hts=\E1,
- il1=\EL,
- ind=^J,
- kbs=^H,
- kclr=\EJ,
- kctab=\E2,
- kcub1=\ED,
- kcud1=\EB,
- kcuf1=\EC,
- kcuu1=\EA,
- kdch1=\EP,
- kdl1=\EM,
- ked=\EJ,
- kel=\EK,
- kf1=\Ep,
- kf2=\Eq,
- kf3=\Er,
- kf4=\Es,
- kf5=\Et,
- kf6=\Eu,
- kf7=\Ev,
- kf8=\Ew,
- khome=\Eh,
- khts=\E1,
- kich1=\EQ,
- kil1=\EL,
- kind=\ES,
- kll=\EF,
- knp=\EU,
- kpp=\EV,
- kri=\ET,
- krmir=\ER,
- ktbc=\E3,
- meml=\El,
- memu=\Em,
- pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
- pln=\E&f%p1%dk%p2%l%dd0L%p2%s,
- rev=\E&dB,
- ri=\ET,
- rmacs=^O,
- rmir=\ER,
- rmkx=\E&s0A,
- rmln=\E&j@,
- rmso=\E&d@,
- rmul=\E&d@,
- sgr=\E&d%?%p7%t%'s'%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%'@'%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@,
- smacs=^N,
- smir=\EQ,
- smkx=\E&s1A,
- smln=\E&jB,
- smso=\E&dJ,
- smul=\E&dD,
- tbc=\E3,
- vpa=\E&a%p1%dY,
-
-# This entry describes an xterm with Sun-style function keys enabled
-# via the X resource setting "xterm*sunFunctionKeys:true"
-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
-# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
-# because we want it to be seen as <kcpy>.
-# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
-# with their Sun keyboard labels instead.
-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
-xterm-sun|xterm with sunFunctionKeys true,
- kb2=\E[218z,
- kcpy=\E[197z,
- kend=\E[220z,
- kf1=\E[224z,
- kf10=\E[233z,
- kf11=\E[192z,
- kf12=\E[193z,
- kf13=\E[194z,
- kf14=\E[195z,
- kf15=\E[196z,
- kf17=\E[198z,
- kf18=\E[199z,
- kf19=\E[200z,
- kf2=\E[225z,
- kf20=\E[201z,
- kf3=\E[226z,
- kf31=\E[208z,
- kf32=\E[209z,
- kf33=\E[210z,
- kf34=\E[211z,
- kf35=\E[212z,
- kf36=\E[213z,
- kf38=\E[215z,
- kf4=\E[227z,
- kf40=\E[217z,
- kf42=\E[219z,
- kf44=\E[221z,
- kf5=\E[228z,
- kf6=\E[229z,
- kf7=\E[230z,
- kf8=\E[231z,
- kf9=\E[232z,
- kfnd=\E[200z,
- khlp=\E[196z,
- khome=\E[214z,
- kich1=\E[2z,
- knp=\E[222z,
- kpp=\E[216z,
- kund=\E[195z,
- use=xterm,
-xterms-sun|small (80x24) xterm with sunFunctionKeys true,
- cols#80,
- lines#24,
- use=xterm-sun,
-
-# This is for the extensible terminal emulator on the X11R6 contrib tape.
-emu|emu native mode,
- mir,
- msgr,
- xon,
- colors#15,
- cols#80,
- it#8,
- lines#24,
- pairs#64,
- vt#200,
- acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
- bel=^G,
- blink=\ES\EW,
- bold=\ES\EU,
- civis=\EZ,
- clear=\EP\EE0;0;,
- cnorm=\Ea,
- cr=^M,
- csr=\Ek%p1%d;%p2%d;,
- cub=\Eq-%p1%d;,
- cub1=^H,
- cud=\Ep%p1%d;,
- cud1=\EB,
- cuf=\Eq%p1%d;,
- cuf1=\ED,
- cup=\EE%p1%d;%p2%d;,
- cuu=\Ep-%p1%d;,
- cuu1=\EA,
- cvvis=\Ea,
- dch=\EI%p1%d;,
- dch1=\EI1;,
- dl=\ER%p1%d;,
- dl1=\ER1;,
- ech=\Ej%p1%d;,
- ed=\EN,
- el=\EK,
- el1=\EL,
- enacs=\0,
- home=\EE0;0;,
- ht=^I,
- hts=\Eh,
- il=\EQ%p1%d;,
- il1=\EQ1;,
- ind=\EG,
- is2=\ES\Er0;\Es0;,
- kbs=^H,
- kcub1=\EC,
- kcud1=\EB,
- kcuf1=\ED,
- kcuu1=\EA,
- kdch1=\177,
- kent=^M,
- kf0=\EF00,
- kf1=\EF01,
- kf10=\EF10,
- kf11=\EF11,
- kf12=\EF12,
- kf13=\EF13,
- kf14=\EF14,
- kf15=\EF15,
- kf16=\EF16,
- kf17=\EF17,
- kf18=\EF18,
- kf19=\EF19,
- kf2=\EF02,
- kf20=\EF20,
- kf3=\EF03,
- kf4=\EF04,
- kf5=\EF05,
- kf6=\EF06,
- kf7=\EF07,
- kf8=\EF08,
- kf9=\EF09,
- kfnd=\Efind,
- kich1=\Eins,
- knp=\Enext,
- kpp=\Eprior,
- kslt=\Esel,
- oc=\Es0;\Er0;,
- rev=\ES\ET,
- ri=\EF,
- rmacs=\0,
- rmir=\EX,
- rmso=\ES,
- rmul=\ES,
- rs2=\ES\Es0;\Er0;,
- setab=\Es%i%p1%d; setaf=\Er%i%p1%d;,
- sgr0=\ES,
- smacs=\0,
- smir=\EY,
- smso=\ES\ET,
- smul=\ES\EV,
- tbc=\Ej,
diff --git a/ncurses-5.2/misc/form.def b/ncurses-5.2/misc/form.def
deleted file mode 100644
index ea43b59..0000000
--- a/ncurses-5.2/misc/form.def
+++ /dev/null
@@ -1,101 +0,0 @@
-LIBRARY form5 INITINSTANCE TERMINSTANCE
-DESCRIPTION "NCurses-5-1-20000704, module form"
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
- "TYPE_ALNUM" @2 NONAME
- "TYPE_ALPHA" @1 NONAME
- "TYPE_ENUM" @3 NONAME
- "TYPE_INTEGER" @4 NONAME
- "TYPE_IPV4" @7 NONAME
- "TYPE_NUMERIC" @5 NONAME
- "TYPE_REGEXP" @6 NONAME
- "_nc_Copy_Argument" @8 NONAME
- "_nc_Copy_Type" @9 NONAME
- "_nc_Default_Field" @11 NONAME
- "_nc_Default_FieldType" @12 NONAME
- "_nc_Default_Form" @10 NONAME
- "_nc_First_Active_Field" @13 NONAME
- "_nc_Free_Argument" @14 NONAME
- "_nc_Free_Type" @15 NONAME
- "_nc_Internal_Validation" @16 NONAME
- "_nc_Make_Argument" @17 NONAME
- "_nc_Position_Form_Cursor" @18 NONAME
- "_nc_Refresh_Current_Field" @19 NONAME
- "_nc_Set_Current_Field" @25 NONAME
- "_nc_Set_Form_Page" @26 NONAME
- "_nc_Synchronize_Attributes" @27 NONAME
- "_nc_Synchronize_Options" @28 NONAME
- "current_field" @102 NONAME
- "data_ahead" @133 NONAME
- "data_behind" @134 NONAME
- "dup_field" @31 NONAME
- "dynamic_field_info" @35 NONAME
- "field_arg" @56 NONAME
- "field_back" @53 NONAME
- "field_buffer" @59 NONAME
- "field_count" @111 NONAME
- "field_fore" @52 NONAME
- "field_index" @115 NONAME
- "field_info" @34 NONAME
- "field_init" @107 NONAME
- "field_just" @41 NONAME
- "field_opts" @60 NONAME
- "field_opts_off" @51 NONAME
- "field_opts_on" @50 NONAME
- "field_pad" @45 NONAME
- "field_status" @55 NONAME
- "field_term" @108 NONAME
- "field_type" @58 NONAME
- "field_userptr" @57 NONAME
- "form_driver" @126 NONAME
- "form_fields" @101 NONAME
- "form_init" @105 NONAME
- "form_opts" @132 NONAME
- "form_opts_off" @130 NONAME
- "form_opts_on" @129 NONAME
- "form_page" @117 NONAME
- "form_request_by_name" @29 NONAME
- "form_request_name" @61 NONAME
- "form_sub" @104 NONAME
- "form_term" @106 NONAME
- "form_userptr" @131 NONAME
- "form_win" @103 NONAME
- "free_field" @33 NONAME
- "free_fieldtype" @22 NONAME
- "free_form" @109 NONAME
- "link_field" @32 NONAME
- "link_fieldtype" @21 NONAME
- "move_field" @37 NONAME
- "new_field" @30 NONAME
- "new_fieldtype" @20 NONAME
- "new_form" @100 NONAME
- "new_page" @54 NONAME
- "pos_form_cursor" @125 NONAME
- "post_form" @123 NONAME
- "scale_form" @118 NONAME
- "set_current_field" @114 NONAME
- "set_field_back" @43 NONAME
- "set_field_buffer" @46 NONAME
- "set_field_fore" @42 NONAME
- "set_field_init" @121 NONAME
- "set_field_just" @40 NONAME
- "set_field_opts" @49 NONAME
- "set_field_pad" @44 NONAME
- "set_field_status" @47 NONAME
- "set_field_term" @122 NONAME
- "set_field_type" @38 NONAME
- "set_field_userptr" @48 NONAME
- "set_fieldtype_arg" @23 NONAME
- "set_fieldtype_choice" @24 NONAME
- "set_form_fields" @110 NONAME
- "set_form_init" @119 NONAME
- "set_form_opts" @128 NONAME
- "set_form_page" @116 NONAME
- "set_form_sub" @113 NONAME
- "set_form_term" @120 NONAME
- "set_form_userptr" @127 NONAME
- "set_form_win" @112 NONAME
- "set_max_field" @36 NONAME
- "set_new_page" @39 NONAME
- "unpost_form" @124 NONAME
diff --git a/ncurses-5.2/misc/form.ref b/ncurses-5.2/misc/form.ref
deleted file mode 100644
index 18e65a6..0000000
--- a/ncurses-5.2/misc/form.ref
+++ /dev/null
@@ -1,106 +0,0 @@
-LIBRARY FORM2 INITINSTANCE
-DESCRIPTION 'NCurses 1.9.9e-1 for OS/2 - forms library'
-EXPORTS
-;
-; SHARED VARIABLES
-;
- "TYPE_ALPHA" @1 ;NONAME
- "TYPE_ALNUM" @2 ;NONAME
- "TYPE_ENUM" @3 ;NONAME
- "TYPE_INTEGER" @4 ;NONAME
- "TYPE_NUMERIC" @5 ;NONAME
- "TYPE_REGEXP" @6 ;NONAME
-
- "_nc_Default_Form" @10 ;NONAME
- "_nc_Default_Field" @11 ;NONAME
-
-;
-; FIELD FUNCTIONS
-;
- "new_fieldtype" @20 ;NONAME
- "link_fieldtype" @21 ;NONAME
-
- "free_fieldtype" @22 ;NONAME
- "set_fieldtype_arg" @23 ;NONAME
- "set_fieldtype_choice" @24 ;NONAME
-
- "new_field" @30 ;NONAME
- "dup_field" @31 ;NONAME
- "link_field" @32 ;NONAME
-
- "free_field" @33 ;NONAME
- "field_info" @34 ;NONAME
- "dynamic_field_info" @35 ;NONAME
- "set_max_field" @36 ;NONAME
- "move_field" @37 ;NONAME
- "set_field_type" @38 ;NONAME
- "set_new_page" @39 ;NONAME
- "set_field_just" @40 ;NONAME
- "field_just" @41 ;NONAME
- "set_field_fore" @42 ;NONAME
- "set_field_back" @43 ;NONAME
- "set_field_pad" @44 ;NONAME
- "field_pad" @45 ;NONAME
- "set_field_buffer" @46 ;NONAME
- "set_field_status" @47 ;NONAME
- "set_field_userptr" @48 ;NONAME
- "set_field_opts" @49 ;NONAME
- "field_opts_on" @50 ;NONAME
- "field_opts_off" @51 ;NONAME
-
- "field_fore" @52 ;NONAME
- "field_back" @53 ;NONAME
-
- "new_page" @54 ;NONAME
- "field_status" @55 ;NONAME
- "field_arg" @56 ;NONAME
- "field_userptr" @57 ;NONAME
- "field_type" @58 ;NONAME
- "field_buffer" @59 ;NONAME
- "field_opts" @60 ;NONAME
-
-;
-; FORM FUNCTIONS
-;
- "new_form" @100 ;NONAME
-
- "form_fields" @101 ;NONAME
- "current_field" @102 ;NONAME
-
- "form_win" @103 ;NONAME
- "form_sub" @104 ;NONAME
-
- "form_init" @105 ;NONAME
- "form_term" @106 ;NONAME
- "field_init" @107 ;NONAME
- "field_term" @108 ;NONAME
-
- "free_form" @109 ;NONAME
- "set_form_fields" @110 ;NONAME
- "field_count" @111 ;NONAME
- "set_form_win" @112 ;NONAME
- "set_form_sub" @113 ;NONAME
- "set_current_field" @114 ;NONAME
- "field_index" @115 ;NONAME
- "set_form_page" @116 ;NONAME
- "form_page" @117 ;NONAME
- "scale_form" @118 ;NONAME
- "set_form_init" @119 ;NONAME
- "set_form_term" @120 ;NONAME
- "set_field_init" @121 ;NONAME
- "set_field_term" @122 ;NONAME
- "post_form" @123 ;NONAME
- "unpost_form" @124 ;NONAME
- "pos_form_cursor" @125 ;NONAME
- "form_driver" @126 ;NONAME
- "set_form_userptr" @127 ;NONAME
- "set_form_opts" @128 ;NONAME
- "form_opts_on" @129 ;NONAME
- "form_opts_off" @130 ;NONAME
-
- "form_userptr" @131 ;NONAME
-
- "form_opts" @132 ;NONAME
-
- "data_ahead" @133 ;NONAME
- "data_behind" @134 ;NONAME
diff --git a/ncurses-5.2/misc/indent.pro b/ncurses-5.2/misc/indent.pro
deleted file mode 100644
index 14cf385..0000000
--- a/ncurses-5.2/misc/indent.pro
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Use this with indent 2.0 (2.1 is not acceptable, since it has more bugs) */
-/* indent 4 columns */
--i4
-/* tab stops every 8 columns */
--ts8
-/* cuddle 'else' */
--ce
-/* force blank lines after procedure body */
--bap
-/* do not force newline after comma in declaration */
--nbc
-/* do not force blank line after declarations */
--nbad
-/* format braces inline */
--br
-/* do not line up parentheses */
--lp
-/* put the type of a procedure on the line before its name */
--psl
-/* do not insert a space between procedure name and '(' */
--npcs
-/* leave preprocessor space */
--lps
-/* swallow optional blank lines */
--sob
-/* continuation indent of 0 spaces */
--ci0
-/* force space before semicolon on same line */
--ss
-
-/* for vile */
--T size_t
--T LINE
--T BUFFER
--T WINDOW
diff --git a/ncurses-5.2/misc/makedef.cmd b/ncurses-5.2/misc/makedef.cmd
deleted file mode 100644
index b592dfa..0000000
--- a/ncurses-5.2/misc/makedef.cmd
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * $Id$
- *
- * Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
- * Webpage: http://www.arrakis.es/~worm/
- *
- * makedef.cmd - update a DLL export list using a newly created library file
- * in a.out format, plus an old .DEF file.
- *
- * standard output gets a sorted list with all entrypoints with entrycodes.
- * This list, plus a few .def sentences (LIBRARY, DESCRIPTION and EXPORT)
- * is used to build a new .def file.
- *
- * `_nc_*' symbols are ignored.
- *
- * returns 1 when the old def_file is corrupted -- that is, export items are
- * not properly formatted.
- *
- * returns 0 if everything went OK.
- */
-
-parse arg lib_file def_file
-
-lib_file = translate(lib_file,'\','/')
-def_file = translate(def_file,'\','/')
-
-call CleanQueue
-
-/*
- * `codes' is the stem that links a code to every symbol
- * `names' is the stem where symbols are stored sequentially
- * `last' is the index of the last symbol defined
- */
-last = 0
-used. = 0
-codes. = 0
-names. = ''
-
-tmp_name = 'foo.tmp'
-
-/*
- * This sed expression cleans empty lines, comments and special .DEF
- * commands, such as LIBRARY..., EXPORTS..., etc
- */
-tidy_up = '"/^[A-Z]/d;s/[ ][ ]*/ /g;s/;.*$//g;s/^[ ]*//g;/^[ ]*$/d"'
-
-/*
- * First we find all public symbols (functions and variables). Next we
- * concatenate this list with the old one, sorting it and wiping out
- * all unused data (comments, DLL directives, blanks, etc). All this
- * information is pushed into a REXX private list with the RXQUEUE
- * utility program.
- */
-'@echo off'
-'emxexp -u' lib_file '>' tmp_name
-'cat' tmp_name def_file '| sed' tidy_up '| sort > foo2.tmp'
-'type foo2.tmp | rxqueue'
-'del' tmp_name '1>NUL'
-
-/*
- * This loop runs over the queue items
- */
-do while queued() > 0
- /*
- * We retrieve the symbol name (NEW_NAME) and its number (NEW_NUMBER)
- * When the line comes from `emximp's output, there's no number, so
- * we assign it the special value 0.
- */
- parse pull new_symbol '@'new_code rest
- if Left(new_symbol,1) = '"' then
- parse var new_symbol '"' new_name '"' rest
- else
- do
- echo 'Symbol 'new_symbol' was not quoted'
- new_name = new_symbol
- end
-
- if new_code = '' then
- new_code = 0
- /*
- * Here, one would place all smart checks that would kill unused symbols.
- * However, export tables are not that big, so why bothering?
- if Left(new_name,4) = '_nc_' then
- iterate
- */
- /*
- * The algorithm:
- * IF (this is the 2nd time the symbol appears) THEN
- * (this symbol comes from a .DEF file)
- * it has a valid code that we store
- * we mark that code as used
- * ELIF (it has no number) THEN
- * (it's a new symbol)
- * we increase the counter of defined symbols
- * we assign it the special number 0
- * (later on it'll be assigned an unused export code)
- * ELSE
- * this symbol was in the old DLL and it's no longer
- * here, so we skip it.
- */
- select
- when new_name = '' then
- 'echo Warning: empty symbol found 1>&2'
- when names.last = new_name then
- do
- codes.last = new_code
- used.new_code = 1
- end
- when new_code = 0 then
- do
- last = last + 1
- names.last = new_name
- codes.last = 0
- end
- otherwise
- 'echo Warning: symbol "'new_name'" has disappeared 1>&2'
- end /* select */
-end /* do while queued() */
-
-/*
- * Finally we scan the stem, writing out all symbols with export codes.
- * Those that did not have a valid one (just 0) are assigned a new one.
- */
-new_code = 1
-inx = 1
-do while inx <= last
- if codes.inx = 0 then
- do
- do while used.new_code \= 0
- new_code = new_code + 1
- end
- codes.inx = new_code
- used.new_code = 1
- end
- say ' "'names.inx'" @'codes.inx' NONAME'
- inx = inx + 1
-end
-'del foo2.tmp 1>NUL'
-exit 0
-
-/*
- * Cleans the REXX queue by pulling and forgetting every line.
- * This is needed, at least, when `makedef.cmd' starts, because an aborted
- * REXX program might have left some rubbish in.
- */
-CleanQueue: procedure
- do while queued() > 0
- parse pull foo
- end
-return
-
diff --git a/ncurses-5.2/misc/makellib b/ncurses-5.2/misc/makellib
deleted file mode 100755
index ce0b0d7..0000000
--- a/ncurses-5.2/misc/makellib
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# $Id$
-# 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
-# b. Process llib-lXXX with the system's lint utility, making
-# llib-lXXX.ln
-# c. Install llib-lXXX.ln in the lib directory.
-#
-# Using the intermediate file llib-lXXX bypasses a weakness of lint (passing
-# through warning messages from the original source-files).
-#
-# There are two drawbacks to this approach:
-# a. On a few systems, you'll have to manually-edit the llib-lXXX file
-# to get a usable lint-library (not all C-preprocessors work well).
-# b. The system's lint utility won't recognize -lXXX as a lint-library
-# (Use tdlint as a wrapper; it's designed for this).
-#
-# Parameters:
-# $1 = library name
-# $* = C-preprocessor options
-#
-ARCH=`uname -s`
-if test "x$ARCH" = "xSunOS" ; then
- case `uname -r` in
- 5.*) ARCH=Solaris
- ;;
- esac
-fi
-#
-DST="$HOME/lib/$ARCH/lint"
-OPT=""
-LLIB=""
-llib=""
-#
-while test $# != 0
-do
- case $1 in
- -L*)
- DST="$DST `echo $1|sed -e 's/^-L//'`"
- ;;
- -*)
- OPT="$OPT $1"
- ;;
- *)
- if test -z "$LLIB"
- then
- LLIB=$1
- else
- llib=llib-l$1
- fi
- ;;
- esac
- shift
-done
-
-if test -z "$LLIB"
-then
- echo '? no library name specified'
- exit 1
-elif test -z "$llib"
-then
- llib="llib-l$LLIB"
-fi
-
-if test ! -f $llib ; then
- if ( make $llib )
- then
- :
- else
- exit 1
- fi
-fi
-
-rm -f $llib.ln $llib.c
-TARGET=$LLIB
-
-case "$ARCH" in
-AIX)
- CREATE="-uvxo$LLIB -Nn4000"
- TARGET=$llib.c
- ln $llib $TARGET
- ;;
-Solaris)
- CREATE="-C$llib"
- TARGET=$llib.c
- ln $llib $TARGET
- ;;
-CLIX)
- CREATE="-DLINTLIBRARY -vxo$LLIB"
- TARGET=$llib.c
- ln $llib $TARGET
- ;;
-IRIX*)
- CREATE="-DLINTLIBRARY -vxyo$LLIB"
- TARGET=$llib.c
- ln $llib $TARGET
- ;;
-UNIX_SV)
- CREATE="-DLINTLIBRARY -vxyo$LLIB"
- TARGET=$llib.c
- ln $llib $TARGET
- ;;
-*)
- echo "Sorry. I do not know how to build a lint-library for $ARCH"
- exit 1
-esac
-
-echo OPT "$OPT"
-echo TARGET "$TARGET"
-echo LIBNAME "$llib"
-if ( lint $CREATE $OPT $TARGET )
-then
- if test -f $llib.ln
- then
- for p in $HOME/lib $HOME/lib/$ARCH $HOME/lib/$ARCH/lint
- do
- if test ! -d $p
- then
- mkdir $p
- fi
- done
- for p in $DST
- do
- cp $llib.ln $p/
- done
- rm -f $llib.ln
- fi
-fi
-if test "x$TARGET" = "x$llib.c" ; then
- rm -f $TARGET
-fi
diff --git a/ncurses-5.2/misc/menu.def b/ncurses-5.2/misc/menu.def
deleted file mode 100644
index 01f973c..0000000
--- a/ncurses-5.2/misc/menu.def
+++ /dev/null
@@ -1,81 +0,0 @@
-LIBRARY menu5 INITINSTANCE TERMINSTANCE
-DESCRIPTION "NCurses-5-1-20000704, module menu"
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
- "_nc_Calculate_Item_Length_and_Width" @11 NONAME
- "_nc_Connect_Items" @38 NONAME
- "_nc_Default_Item" @63 NONAME
- "_nc_Default_Menu" @64 NONAME
- "_nc_Disconnect_Items" @65 NONAME
- "_nc_Draw_Menu" @66 NONAME
- "_nc_Link_Items" @67 NONAME
- "_nc_Match_Next_Character_In_Item_Name" @68 NONAME
- "_nc_New_TopRow_and_CurrentItem" @69 NONAME
- "_nc_Post_Item" @70 NONAME
- "_nc_Show_Menu" @71 NONAME
- "_nc_menu_cursor_pos" @72 NONAME
- "current_item" @2 NONAME
- "free_item" @23 NONAME
- "free_menu" @24 NONAME
- "item_count" @25 NONAME
- "item_description" @14 NONAME
- "item_index" @26 NONAME
- "item_init" @7 NONAME
- "item_name" @15 NONAME
- "item_opts" @5 NONAME
- "item_opts_off" @27 NONAME
- "item_opts_on" @28 NONAME
- "item_term" @8 NONAME
- "item_userptr" @18 NONAME
- "item_value" @60 NONAME
- "item_visible" @61 NONAME
- "menu_back" @20 NONAME
- "menu_driver" @29 NONAME
- "menu_fore" @21 NONAME
- "menu_format" @62 NONAME
- "menu_grey" @22 NONAME
- "menu_init" @9 NONAME
- "menu_items" @1 NONAME
- "menu_mark" @16 NONAME
- "menu_opts" @6 NONAME
- "menu_opts_off" @30 NONAME
- "menu_opts_on" @31 NONAME
- "menu_pad" @32 NONAME
- "menu_pattern" @17 NONAME
- "menu_request_by_name" @73 NONAME
- "menu_request_name" @74 NONAME
- "menu_spacing" @75 NONAME
- "menu_sub" @12 NONAME
- "menu_term" @10 NONAME
- "menu_userptr" @19 NONAME
- "menu_win" @13 NONAME
- "new_item" @3 NONAME
- "new_menu" @4 NONAME
- "pos_menu_cursor" @33 NONAME
- "post_menu" @34 NONAME
- "scale_menu" @35 NONAME
- "set_current_item" @36 NONAME
- "set_item_init" @37 NONAME
- "set_item_opts" @39 NONAME
- "set_item_term" @40 NONAME
- "set_item_userptr" @41 NONAME
- "set_item_value" @42 NONAME
- "set_menu_back" @43 NONAME
- "set_menu_fore" @44 NONAME
- "set_menu_format" @45 NONAME
- "set_menu_grey" @46 NONAME
- "set_menu_init" @47 NONAME
- "set_menu_items" @48 NONAME
- "set_menu_mark" @49 NONAME
- "set_menu_opts" @50 NONAME
- "set_menu_pad" @51 NONAME
- "set_menu_pattern" @52 NONAME
- "set_menu_spacing" @76 NONAME
- "set_menu_sub" @53 NONAME
- "set_menu_term" @54 NONAME
- "set_menu_userptr" @55 NONAME
- "set_menu_win" @56 NONAME
- "set_top_row" @57 NONAME
- "top_row" @58 NONAME
- "unpost_menu" @59 NONAME
diff --git a/ncurses-5.2/misc/menu.ref b/ncurses-5.2/misc/menu.ref
deleted file mode 100644
index cee964f..0000000
--- a/ncurses-5.2/misc/menu.ref
+++ /dev/null
@@ -1,73 +0,0 @@
-LIBRARY MENU2 INITINSTANCE
-DESCRIPTION 'NCurses 1.9.9e-1 for OS/2 - menu library'
-EXPORTS
- "menu_items" @1 ;NONAME
- "current_item" @2 ;NONAME
- "new_item" @3 ;NONAME
-
- "new_menu" @4 ;NONAME
-
- "item_opts" @5 ;NONAME
- "menu_opts" @6 ;NONAME
-
- "item_init" @7 ;NONAME
- "item_term" @8 ;NONAME
- "menu_init" @9 ;NONAME
- "menu_term" @10 ;NONAME
-
- "menu_sub" @12 ;NONAME
- "menu_win" @13 ;NONAME
-
- "item_description" @14 ;NONAME
- "item_name" @15 ;NONAME
- "menu_mark" @16 ;NONAME
- "menu_pattern" @17 ;NONAME
-
- "item_userptr" @18 ;NONAME
- "menu_userptr" @19 ;NONAME
-
- "menu_back" @20 ;NONAME
- "menu_fore" @21 ;NONAME
- "menu_grey" @22 ;NONAME
-
- "free_item" @23 ;NONAME
- "free_menu" @24 ;NONAME
- "item_count" @25 ;NONAME
- "item_index" @26 ;NONAME
- "item_opts_off" @27 ;NONAME
- "item_opts_on" @28 ;NONAME
- "menu_driver" @29 ;NONAME
- "menu_opts_off" @30 ;NONAME
- "menu_opts_on" @31 ;NONAME
- "menu_pad" @32 ;NONAME
- "pos_menu_cursor" @33 ;NONAME
- "post_menu" @34 ;NONAME
- "scale_menu" @35 ;NONAME
- "set_current_item" @36 ;NONAME
- "set_item_init" @37 ;NONAME
- "set_item_opts" @39 ;NONAME
- "set_item_term" @40 ;NONAME
- "set_item_userptr" @41 ;NONAME
- "set_item_value" @42 ;NONAME
- "set_menu_back" @43 ;NONAME
- "set_menu_fore" @44 ;NONAME
- "set_menu_format" @45 ;NONAME
- "set_menu_grey" @46 ;NONAME
- "set_menu_init" @47 ;NONAME
- "set_menu_items" @48 ;NONAME
- "set_menu_mark" @49 ;NONAME
- "set_menu_opts" @50 ;NONAME
- "set_menu_pad" @51 ;NONAME
- "set_menu_pattern" @52 ;NONAME
- "set_menu_sub" @53 ;NONAME
- "set_menu_term" @54 ;NONAME
- "set_menu_userptr" @55 ;NONAME
- "set_menu_win" @56 ;NONAME
- "set_top_row" @57 ;NONAME
- "top_row" @58 ;NONAME
- "unpost_menu" @59 ;NONAME
-
- "item_value" @60 ;NONAME
- "item_visible" @61 ;NONAME
-
- "menu_format" @62 ;NONAME
diff --git a/ncurses-5.2/misc/ncurses.def b/ncurses-5.2/misc/ncurses.def
deleted file mode 100644
index fa50456..0000000
--- a/ncurses-5.2/misc/ncurses.def
+++ /dev/null
@@ -1,447 +0,0 @@
-LIBRARY ncurses5 INITINSTANCE TERMINSTANCE
-DESCRIPTION "NCurses-5-1-20000704, module ncurses"
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
- "BC" @662 NONAME
- "COLORS" @503 NONAME
- "COLOR_PAIR" @36 NONAME
- "COLOR_PAIRS" @504 NONAME
- "COLS" @511 NONAME
- "ESCDELAY" @513 NONAME
- "LINES" @510 NONAME
- "PAIR_NUMBER" @209 NONAME
- "PC" @660 NONAME
- "SP" @1003 NONAME
- "TABSIZE" @512 NONAME
- "UP" @661 NONAME
- "_nc_access" @6 NONAME
- "_nc_add_to_try" @7 NONAME
- "_nc_align_termtype" @8 NONAME
- "_nc_background" @9 NONAME
- "_nc_baudrate" @10 NONAME
- "_nc_cap_hash_table" @805 NONAME
- "_nc_capalias_table" @806 NONAME
- "_nc_capcmp" @707 NONAME
- "_nc_captoinfo" @829 NONAME
- "_nc_check_termtype" @15 NONAME
- "_nc_comment_end" @819 NONAME
- "_nc_comment_start" @818 NONAME
- "_nc_copy_entry" @16 NONAME
- "_nc_copy_termtype" @22 NONAME
- "_nc_curr_col" @816 NONAME
- "_nc_curr_file_pos" @817 NONAME
- "_nc_curr_line" @815 NONAME
- "_nc_curr_token" @803 NONAME
- "_nc_disable_period" @23 NONAME
- "_nc_do_color" @1037 NONAME
- "_nc_doalloc" @25 NONAME
- "_nc_entry_match" @710 NONAME
- "_nc_err_abort" @826 NONAME
- "_nc_expand_try" @27 NONAME
- "_nc_expanded" @51 NONAME
- "_nc_fallback" @625 NONAME
- "_nc_find_entry" @809 NONAME
- "_nc_find_type_entry" @810 NONAME
- "_nc_first_name" @622 NONAME
- "_nc_flush" @54 NONAME
- "_nc_free_entries" @712 NONAME
- "_nc_free_termtype" @58 NONAME
- "_nc_freeall" @59 NONAME
- "_nc_freewin" @60 NONAME
- "_nc_get_hash_table" @63 NONAME
- "_nc_get_table" @808 NONAME
- "_nc_get_token" @811 NONAME
- "_nc_get_tty_mode" @65 NONAME
- "_nc_get_type" @823 NONAME
- "_nc_getenv_num" @67 NONAME
- "_nc_has_mouse" @73 NONAME
- "_nc_hash_map" @84 NONAME
- "_nc_head" @700 NONAME
- "_nc_home_terminfo" @91 NONAME
- "_nc_info_hash_table" @804 NONAME
- "_nc_infoalias_table" @807 NONAME
- "_nc_infotocap" @830 NONAME
- "_nc_init_acs" @92 NONAME
- "_nc_init_entry" @702 NONAME
- "_nc_init_keytry" @93 NONAME
- "_nc_keep_tic_dir" @95 NONAME
- "_nc_key_names" @96 NONAME
- "_nc_keypad" @1024 NONAME
- "_nc_make_oldhash" @97 NONAME
- "_nc_makenew" @1025 NONAME
- "_nc_memmove" @98 NONAME
- "_nc_merge_entry" @704 NONAME
- "_nc_msec_cost" @103 NONAME
- "_nc_mvcur_init" @1014 NONAME
- "_nc_mvcur_resume" @106 NONAME
- "_nc_mvcur_wrap" @1015 NONAME
- "_nc_name_match" @623 NONAME
- "_nc_nulls_sent" @116 NONAME
- "_nc_oldnums" @117 NONAME
- "_nc_ospeed" @118 NONAME
- "_nc_outch" @1026 NONAME
- "_nc_outstr" @1033 NONAME
- "_nc_panelhook" @119 NONAME
- "_nc_panic_mode" @814 NONAME
- "_nc_parse_entry" @706 NONAME
- "_nc_printf_string" @120 NONAME
- "_nc_push_token" @812 NONAME
- "_nc_read_entry" @620 NONAME
- "_nc_read_entry_source" @709 NONAME
- "_nc_read_file_entry" @621 NONAME
- "_nc_read_termcap" @127 NONAME
- "_nc_remove_key" @129 NONAME
- "_nc_remove_string" @130 NONAME
- "_nc_render" @1027 NONAME
- "_nc_reset_input" @813 NONAME
- "_nc_resolve_uses" @711 NONAME
- "_nc_ripoffline" @132 NONAME
- "_nc_save_str" @703 NONAME
- "_nc_screen_chain" @137 NONAME
- "_nc_screen_init" @142 NONAME
- "_nc_screen_resume" @143 NONAME
- "_nc_screen_wrap" @144 NONAME
- "_nc_scroll_oldhash" @145 NONAME
- "_nc_scroll_optimize" @1029 NONAME
- "_nc_scroll_window" @1030 NONAME
- "_nc_scrolln" @146 NONAME
- "_nc_set_buffer" @147 NONAME
- "_nc_set_source" @822 NONAME
- "_nc_set_tty_mode" @148 NONAME
- "_nc_set_type" @824 NONAME
- "_nc_set_writedir" @152 NONAME
- "_nc_setupscreen" @1031 NONAME
- "_nc_sigaction" @158 NONAME
- "_nc_signal_handler" @1034 NONAME
- "_nc_slk_format" @159 NONAME
- "_nc_slk_initialize" @160 NONAME
- "_nc_start_line" @821 NONAME
- "_nc_suppress_warnings" @828 NONAME
- "_nc_synchook" @1035 NONAME
- "_nc_syntax" @820 NONAME
- "_nc_syserr_abort" @825 NONAME
- "_nc_tail" @701 NONAME
- "_nc_tic_dir" @161 NONAME
- "_nc_tic_expand" @162 NONAME
- "_nc_tic_written" @167 NONAME
- "_nc_timed_wait" @1036 NONAME
- "_nc_tinfo_fkeys" @169 NONAME
- "_nc_tracing" @1010 NONAME
- "_nc_trans_string" @170 NONAME
- "_nc_user_definable" @172 NONAME
- "_nc_visbuf" @1012 NONAME
- "_nc_visbuf2" @178 NONAME
- "_nc_vsscanf" @183 NONAME
- "_nc_waddch_nosync" @1028 NONAME
- "_nc_warning" @827 NONAME
- "_nc_wrap_entry" @705 NONAME
- "_nc_write_entry" @708 NONAME
- "acs_map" @506 NONAME
- "addch" @1 NONAME
- "addchnstr" @2 NONAME
- "addchstr" @3 NONAME
- "addnstr" @4 NONAME
- "addstr" @5 NONAME
- "assume_default_colors" @184 NONAME
- "attr_get" @14 NONAME
- "attr_off" @185 NONAME
- "attr_on" @186 NONAME
- "attr_set" @17 NONAME
- "attroff" @11 NONAME
- "attron" @12 NONAME
- "attrset" @13 NONAME
- "baudrate" @18 NONAME
- "beep" @19 NONAME
- "bkgd" @20 NONAME
- "bkgdset" @21 NONAME
- "boolcodes" @601 NONAME
- "boolfnames" @602 NONAME
- "boolnames" @600 NONAME
- "border" @24 NONAME
- "box" @26 NONAME
- "can_change_color" @28 NONAME
- "cbreak" @29 NONAME
- "chgat" @30 NONAME
- "clear" @31 NONAME
- "clearok" @32 NONAME
- "clrtobot" @33 NONAME
- "clrtoeol" @34 NONAME
- "color_content" @35 NONAME
- "color_set" @187 NONAME
- "copywin" @37 NONAME
- "cur_term" @515 NONAME
- "curs_set" @38 NONAME
- "curscr" @501 NONAME
- "curses_version" @188 NONAME
- "def_prog_mode" @39 NONAME
- "def_shell_mode" @40 NONAME
- "define_key" @189 NONAME
- "del_curterm" @641 NONAME
- "delay_output" @41 NONAME
- "delch" @42 NONAME
- "deleteln" @45 NONAME
- "delscreen" @43 NONAME
- "delwin" @44 NONAME
- "derwin" @46 NONAME
- "doupdate" @47 NONAME
- "dupwin" @48 NONAME
- "echo" @49 NONAME
- "echochar" @50 NONAME
- "endwin" @52 NONAME
- "erase" @193 NONAME
- "erasechar" @53 NONAME
- "filter" @55 NONAME
- "flash" @56 NONAME
- "flushinp" @57 NONAME
- "getbkgd" @211 NONAME
- "getch" @61 NONAME
- "getmouse" @356 NONAME
- "getnstr" @62 NONAME
- "getstr" @64 NONAME
- "getwin" @66 NONAME
- "halfdelay" @68 NONAME
- "has_colors" @69 NONAME
- "has_ic" @70 NONAME
- "has_il" @71 NONAME
- "has_key" @234 NONAME
- "hline" @72 NONAME
- "idcok" @74 NONAME
- "idlok" @75 NONAME
- "immedok" @76 NONAME
- "inch" @77 NONAME
- "inchnstr" @78 NONAME
- "inchstr" @79 NONAME
- "init_color" @81 NONAME
- "init_pair" @82 NONAME
- "initscr" @80 NONAME
- "innstr" @83 NONAME
- "insch" @85 NONAME
- "insdelln" @86 NONAME
- "insertln" @87 NONAME
- "insnstr" @88 NONAME
- "insstr" @89 NONAME
- "instr" @90 NONAME
- "intrflush" @94 NONAME
- "is_linetouched" @100 NONAME
- "is_wintouched" @101 NONAME
- "isendwin" @99 NONAME
- "keybound" @238 NONAME
- "keyname" @102 NONAME
- "keyok" @240 NONAME
- "keypad" @104 NONAME
- "killchar" @105 NONAME
- "leaveok" @107 NONAME
- "longname" @108 NONAME
- "mcprint" @242 NONAME
- "meta" @109 NONAME
- "mouse_trafo" @251 NONAME
- "mouseinterval" @360 NONAME
- "mousemask" @358 NONAME
- "move" @110 NONAME
- "mvaddch" @111 NONAME
- "mvaddchnstr" @112 NONAME
- "mvaddchstr" @113 NONAME
- "mvaddnstr" @114 NONAME
- "mvaddstr" @115 NONAME
- "mvchgat" @121 NONAME
- "mvcur" @122 NONAME
- "mvdelch" @123 NONAME
- "mvderwin" @124 NONAME
- "mvgetch" @125 NONAME
- "mvgetnstr" @126 NONAME
- "mvgetstr" @128 NONAME
- "mvhline" @131 NONAME
- "mvinch" @133 NONAME
- "mvinchnstr" @134 NONAME
- "mvinchstr" @135 NONAME
- "mvinnstr" @136 NONAME
- "mvinsch" @138 NONAME
- "mvinsnstr" @139 NONAME
- "mvinsstr" @140 NONAME
- "mvinstr" @141 NONAME
- "mvprintw" @149 NONAME
- "mvscanw" @150 NONAME
- "mvvline" @151 NONAME
- "mvwaddch" @153 NONAME
- "mvwaddchnstr" @154 NONAME
- "mvwaddchstr" @155 NONAME
- "mvwaddnstr" @156 NONAME
- "mvwaddstr" @157 NONAME
- "mvwchgat" @163 NONAME
- "mvwdelch" @164 NONAME
- "mvwgetch" @165 NONAME
- "mvwgetnstr" @166 NONAME
- "mvwgetstr" @168 NONAME
- "mvwhline" @171 NONAME
- "mvwin" @173 NONAME
- "mvwinch" @174 NONAME
- "mvwinchnstr" @175 NONAME
- "mvwinchstr" @176 NONAME
- "mvwinnstr" @177 NONAME
- "mvwinsch" @179 NONAME
- "mvwinsnstr" @180 NONAME
- "mvwinsstr" @181 NONAME
- "mvwinstr" @182 NONAME
- "mvwprintw" @190 NONAME
- "mvwscanw" @191 NONAME
- "mvwvline" @192 NONAME
- "napms" @194 NONAME
- "newpad" @195 NONAME
- "newscr" @502 NONAME
- "newterm" @196 NONAME
- "newwin" @197 NONAME
- "nl" @198 NONAME
- "nocbreak" @199 NONAME
- "nodelay" @200 NONAME
- "noecho" @201 NONAME
- "nonl" @202 NONAME
- "noqiflush" @203 NONAME
- "noraw" @204 NONAME
- "notimeout" @205 NONAME
- "numcodes" @604 NONAME
- "numfnames" @605 NONAME
- "numnames" @603 NONAME
- "ospeed" @663 NONAME
- "overlay" @206 NONAME
- "overwrite" @207 NONAME
- "pair_content" @208 NONAME
- "pechochar" @210 NONAME
- "pnoutrefresh" @212 NONAME
- "prefresh" @213 NONAME
- "printw" @214 NONAME
- "putp" @215 NONAME
- "putwin" @216 NONAME
- "qiflush" @217 NONAME
- "raw" @218 NONAME
- "redrawwin" @219 NONAME
- "refresh" @220 NONAME
- "reset_prog_mode" @222 NONAME
- "reset_shell_mode" @223 NONAME
- "resetty" @221 NONAME
- "resizeterm" @263 NONAME
- "restartterm" @643 NONAME
- "ripoffline" @224 NONAME
- "savetty" @225 NONAME
- "scanw" @226 NONAME
- "scr_dump" @227 NONAME
- "scr_init" @228 NONAME
- "scr_restore" @232 NONAME
- "scr_set" @233 NONAME
- "scrl" @229 NONAME
- "scroll" @230 NONAME
- "scrollok" @231 NONAME
- "set_curterm" @640 NONAME
- "set_term" @236 NONAME
- "setscrreg" @235 NONAME
- "setupterm" @644 NONAME
- "slk_attr" @266 NONAME
- "slk_attr_set" @270 NONAME
- "slk_attroff" @237 NONAME
- "slk_attron" @239 NONAME
- "slk_attrset" @241 NONAME
- "slk_clear" @243 NONAME
- "slk_color" @272 NONAME
- "slk_init" @244 NONAME
- "slk_label" @245 NONAME
- "slk_noutrefresh" @246 NONAME
- "slk_refresh" @247 NONAME
- "slk_restore" @248 NONAME
- "slk_set" @249 NONAME
- "slk_touch" @250 NONAME
- "standend" @253 NONAME
- "standout" @252 NONAME
- "start_color" @254 NONAME
- "stdscr" @500 NONAME
- "strcodes" @608 NONAME
- "strfnames" @609 NONAME
- "strnames" @606 NONAME
- "subpad" @255 NONAME
- "subwin" @256 NONAME
- "syncok" @257 NONAME
- "termattrs" @258 NONAME
- "termname" @259 NONAME
- "tgetent" @645 NONAME
- "tgetflag" @646 NONAME
- "tgetnum" @647 NONAME
- "tgetstr" @648 NONAME
- "tgoto" @649 NONAME
- "tigetflag" @260 NONAME
- "tigetnum" @261 NONAME
- "tigetstr" @262 NONAME
- "timeout" @274 NONAME
- "tparm" @653 NONAME
- "tputs" @655 NONAME
- "ttytype" @514 NONAME
- "typeahead" @264 NONAME
- "unctrl" @361 NONAME
- "ungetch" @265 NONAME
- "ungetmouse" @357 NONAME
- "untouchwin" @267 NONAME
- "use_default_colors" @276 NONAME
- "use_env" @268 NONAME
- "use_extended_names" @278 NONAME
- "vidattr" @269 NONAME
- "vidputs" @271 NONAME
- "vline" @273 NONAME
- "vw_printw" @284 NONAME
- "vw_scanw" @285 NONAME
- "vwprintw" @275 NONAME
- "vwscanw" @277 NONAME
- "waddch" @279 NONAME
- "waddchnstr" @280 NONAME
- "waddchstr" @281 NONAME
- "waddnstr" @282 NONAME
- "waddstr" @283 NONAME
- "wattr_get" @291 NONAME
- "wattr_off" @293 NONAME
- "wattr_on" @292 NONAME
- "wattr_set" @286 NONAME
- "wattroff" @289 NONAME
- "wattron" @288 NONAME
- "wattrset" @290 NONAME
- "wbkgd" @295 NONAME
- "wbkgdset" @296 NONAME
- "wborder" @299 NONAME
- "wchgat" @301 NONAME
- "wclear" @302 NONAME
- "wclrtobot" @303 NONAME
- "wclrtoeol" @304 NONAME
- "wcolor_set" @287 NONAME
- "wcursyncup" @305 NONAME
- "wdelch" @306 NONAME
- "wdeleteln" @307 NONAME
- "wechochar" @308 NONAME
- "wenclose" @359 NONAME
- "werase" @310 NONAME
- "wgetch" @312 NONAME
- "wgetnstr" @313 NONAME
- "wgetstr" @315 NONAME
- "whline" @318 NONAME
- "winch" @320 NONAME
- "winchnstr" @321 NONAME
- "winchstr" @322 NONAME
- "winnstr" @323 NONAME
- "winsch" @325 NONAME
- "winsdelln" @326 NONAME
- "winsertln" @327 NONAME
- "winsnstr" @328 NONAME
- "winsstr" @329 NONAME
- "winstr" @330 NONAME
- "wmouse_trafo" @294 NONAME
- "wmove" @338 NONAME
- "wnoutrefresh" @339 NONAME
- "wprintw" @340 NONAME
- "wredrawln" @341 NONAME
- "wrefresh" @342 NONAME
- "wresize" @343 NONAME
- "wscanw" @344 NONAME
- "wscrl" @345 NONAME
- "wsetscrreg" @346 NONAME
- "wstandend" @348 NONAME
- "wstandout" @347 NONAME
- "wsyncdown" @349 NONAME
- "wsyncup" @350 NONAME
- "wtimeout" @351 NONAME
- "wtouchln" @352 NONAME
- "wvline" @354 NONAME
diff --git a/ncurses-5.2/misc/ncurses.ref b/ncurses-5.2/misc/ncurses.ref
deleted file mode 100644
index cf4de7d..0000000
--- a/ncurses-5.2/misc/ncurses.ref
+++ /dev/null
@@ -1,572 +0,0 @@
-LIBRARY ncurses2 INITINSTANCE
-DESCRIPTION 'NCurses 1.9.9e-1 for OS/2 - base library'
-EXPORTS
-;************
-;* curses.h *
-;************
-
- "stdscr" @500 NONAME ; variable
- "curscr" @501 NONAME ; variable
- "newscr" @502 NONAME ; variable
- "COLORS" @503 NONAME ; variable
- "COLOR_PAIRS" @504 NONAME ; variable
- "color_pairs" @505 NONAME ; variable
- "acs_map" @506 NONAME ; variable
- "LINES" @510 NONAME ; variable
- "COLS" @511 NONAME ; variable
- "TABSIZE" @512 NONAME ; variable
- "ESCDELAY" @513 NONAME ; variable
- "ttytype" @514 NONAME ; variable
- "cur_term" @515 NONAME ; variable
-
- "addch" @1 NONAME ; generated
- "addchnstr" @2 NONAME ; generated
- "addchstr" @3 NONAME ; generated
- "addnstr" @4 NONAME ; generated
- "addstr" @5 NONAME ; generated
-; "addnwstr" @6 NONAME ; missing
-; "addwstr" @7 NONAME ; missing
-; "add_wch" @8 NONAME ; missing
-; "add_wchnstr" @9 NONAME ; missing
-; "add_wchstr" @10 NONAME ; missing
- "attroff" @11 NONAME ; generated
- "attron" @12 NONAME ; generated
- "attrset" @13 NONAME ; generated
- "attr_get" @14 NONAME ; generated
-; "attr_off" @15 NONAME ; implemented << NO!!
-; "attr_on" @16 NONAME ; implemented << NO!!
- "attr_set" @17 NONAME ; generated
- "baudrate" @18 NONAME ; implemented
- "beep" @19 NONAME ; implemented
- "bkgd" @20 NONAME ; generated
- "bkgdset" @21 NONAME ; generated
-; "bkgrndset" @22 NONAME ; missing
-; "bkgrnd" @23 NONAME ; missing
- "border" @24 NONAME ; generated
-; "border_set" @25 NONAME ; missing
- "box" @26 NONAME ; generated
-; "box_set" @27 NONAME ; missing
- "can_change_color" @28 NONAME ; implemented
- "cbreak" @29 NONAME ; implemented
- "chgat" @30 NONAME ; generated
- "clear" @31 NONAME ; generated
- "clearok" @32 NONAME ; implemented
- "clrtobot" @33 NONAME ; generated
- "clrtoeol" @34 NONAME ; generated
- "color_content" @35 NONAME ; implemented
- "COLOR_PAIR" @36 NONAME ; generated
- "copywin" @37 NONAME ; implemented
- "curs_set" @38 NONAME ; implemented
- "def_prog_mode" @39 NONAME ; implemented
- "def_shell_mode" @40 NONAME ; implemented
- "delay_output" @41 NONAME ; implemented
- "delch" @42 NONAME ; generated
- "delscreen" @43 NONAME ; implemented
- "delwin" @44 NONAME ; implemented
- "deleteln" @45 NONAME ; generated
- "derwin" @46 NONAME ; implemented
- "doupdate" @47 NONAME ; implemented
- "dupwin" @48 NONAME ; implemented
- "echo" @49 NONAME ; implemented
- "echochar" @50 NONAME ; generated
-; "echo_wchar" @51 NONAME ; missing
- "endwin" @52 NONAME ; implemented
- "erasechar" @53 NONAME ; implemented
-; "erase_wchar" @54 NONAME ; missing
- "filter" @55 NONAME ; implemented
- "flash" @56 NONAME ; implemented
- "flushinp" @57 NONAME ; implemented
-; "getbkgd" @58 NONAME ; missing
-; "getbkgrnd" @59 NONAME ; missing
-; "getcchar" @60 NONAME ; missing
- "getch" @61 NONAME ; generated
- "getnstr" @62 NONAME ; generated
-; "getn_wstr" @63 NONAME ; missing
- "getstr" @64 NONAME ; generated
-; "get_wch" @65 NONAME ; missing
- "getwin" @66 NONAME ; not in XPG4
-; "get_wstr" @67 NONAME ; missing
- "halfdelay" @68 NONAME ; implemented
- "has_colors" @69 NONAME ; implemented
- "has_ic" @70 NONAME ; implemented
- "has_il" @71 NONAME ; implemented
- "hline" @72 NONAME ; generated
-; "hline_set" @73 NONAME ; missing
- "idcok" @74 NONAME ; implemented
- "idlok" @75 NONAME ; implemented
- "immedok" @76 NONAME ; implemented
- "inch" @77 NONAME ; generated
- "inchnstr" @78 NONAME ; generated
- "inchstr" @79 NONAME ; generated
- "initscr" @80 NONAME ; implemented
- "init_color" @81 NONAME ; implemented
- "init_pair" @82 NONAME ; implemented
- "innstr" @83 NONAME ; generated
-; "innwstr" @84 NONAME ; missing
- "insch" @85 NONAME ; generated
- "insdelln" @86 NONAME ; generated
- "insertln" @87 NONAME ; generated
- "insnstr" @88 NONAME ; generated
- "insstr" @89 NONAME ; generated
- "instr" @90 NONAME ; generated
-; "ins_nwstr" @91 NONAME ; missing
-; "ins_wch" @92 NONAME ; missing
-; "ins_wstr" @93 NONAME ; missing
- "intrflush" @94 NONAME ; implemented
-; "inwstr" @95 NONAME ; missing
-; "in_wch" @96 NONAME ; missing
-; "in_wchstr" @97 NONAME ; missing
-; "in_wchntr" @98 NONAME ; missing
- "isendwin" @99 NONAME ; implemented
- "is_linetouched" @100 NONAME ; implemented
- "is_wintouched" @101 NONAME ; implemented
- "keyname" @102 NONAME ; implemented
-; "key_name" @103 NONAME ; missing
- "keypad" @104 NONAME ; implemented
- "killchar" @105 NONAME ; implemented
-; "killwchar" @106 NONAME ; missing
- "leaveok" @107 NONAME ; implemented
- "longname" @108 NONAME ; implemented
- "meta" @109 NONAME ; implemented
- "move" @110 NONAME ; generated
- "mvaddch" @111 NONAME ; generated
- "mvaddchnstr" @112 NONAME ; generated
- "mvaddchstr" @113 NONAME ; generated
- "mvaddnstr" @114 NONAME ; generated
- "mvaddstr" @115 NONAME ; generated
-; "mvaddnwstr" @116 NONAME ; missing
-; "mvaddwstr" @117 NONAME ; missing
-; "mvadd_wch" @118 NONAME ; missing
-; "mvadd_wchnstr" @119 NONAME ; missing
-; "mvadd_wchstr" @120 NONAME ; missing
- "mvchgat" @121 NONAME ; generated
- "mvcur" @122 NONAME ; implemented
- "mvdelch" @123 NONAME ; generated
- "mvderwin" @124 NONAME ; implemented
- "mvgetch" @125 NONAME ; generated
- "mvgetnstr" @126 NONAME ; generated
-; "mvgetn_wstr" @127 NONAME ; missing
- "mvgetstr" @128 NONAME ; generated
-; "mvget_wch" @129 NONAME ; missing
-; "mvget_wstr" @130 NONAME ; missing
- "mvhline" @131 NONAME ; generated
-; "mvhline_set" @132 NONAME ; missing
- "mvinch" @133 NONAME ; generated
- "mvinchnstr" @134 NONAME ; generated
- "mvinchstr" @135 NONAME ; generated
- "mvinnstr" @136 NONAME ; generated
-; "mvinnwstr" @137 NONAME ; missing
- "mvinsch" @138 NONAME ; generated
- "mvinsnstr" @139 NONAME ; generated
- "mvinsstr" @140 NONAME ; generated
- "mvinstr" @141 NONAME ; generated
-; "mvins_nwstr" @142 NONAME ; missing
-; "mvins_wch" @143 NONAME ; missing
-; "mvins_wstr" @144 NONAME ; missing
-; "mvinwstr" @145 NONAME ; missing
-; "mvin_wch" @146 NONAME ; missing
-; "mvin_wchstr" @147 NONAME ; missing
-; "mvin_wchntr" @148 NONAME ; missing
- "mvprintw" @149 NONAME ; implemented
- "mvscanw" @150 NONAME ; implemented
- "mvvline" @151 NONAME ; generated
-; "mvvline_set" @152 NONAME ; missing
- "mvwaddch" @153 NONAME ; generated
- "mvwaddchnstr" @154 NONAME ; generated
- "mvwaddchstr" @155 NONAME ; generated
- "mvwaddnstr" @156 NONAME ; generated
- "mvwaddstr" @157 NONAME ; generated
-; "mvwaddnwstr" @158 NONAME ; missing
-; "mvwaddwstr" @159 NONAME ; missing
-; "mvwadd_wch" @160 NONAME ; missing
-; "mvwadd_wchnstr" @161 NONAME ; missing
-; "mvwadd_wchstr" @162 NONAME ; missing
- "mvwchgat" @163 NONAME ; generated
- "mvwdelch" @164 NONAME ; generated
- "mvwgetch" @165 NONAME ; generated
- "mvwgetnstr" @166 NONAME ; generated
-; "mvwgetn_wstr" @167 NONAME ; missing
- "mvwgetstr" @168 NONAME ; generated
-; "mvwget_wch" @169 NONAME ; missing
-; "mvwget_wstr" @170 NONAME ; missing
- "mvwhline" @171 NONAME ; generated
-; "mvwhline_set" @172 NONAME ; missing
- "mvwin" @173 NONAME ; implemented
- "mvwinch" @174 NONAME ; generated
- "mvwinchnstr" @175 NONAME ; generated
- "mvwinchstr" @176 NONAME ; generated
- "mvwinnstr" @177 NONAME ; generated
-; "mvwinnwstr" @178 NONAME ; missing
- "mvwinsch" @179 NONAME ; generated
- "mvwinsnstr" @180 NONAME ; generated
- "mvwinsstr" @181 NONAME ; generated
- "mvwinstr" @182 NONAME ; generated
-; "mvwins_nwstr" @183 NONAME ; missing
-; "mvwins_wch" @184 NONAME ; missing
-; "mvwins_wstr" @185 NONAME ; missing
-; "mvwinwstr" @186 NONAME ; missing
-; "mvwin_wch" @187 NONAME ; missing
-; "mvwin_wchnstr" @188 NONAME ; missing
-; "mvwin_wchstr" @189 NONAME ; missing
- "mvwprintw" @190 NONAME ; implemented
- "mvwscanw" @191 NONAME ; implemented
- "mvwvline" @192 NONAME ; generated
-; "mvwvline_set" @193 NONAME ; missing
- "napms" @194 NONAME ; implemented
- "newpad" @195 NONAME ; implemented
- "newterm" @196 NONAME ; implemented
- "newwin" @197 NONAME ; implemented
- "nl" @198 NONAME ; implemented
- "nocbreak" @199 NONAME ; implemented
- "nodelay" @200 NONAME ; implemented
- "noecho" @201 NONAME ; implemented
- "nonl" @202 NONAME ; implemented
- "noqiflush" @203 NONAME ; implemented
- "noraw" @204 NONAME ; implemented
- "notimeout" @205 NONAME ; implemented
- "overlay" @206 NONAME ; implemented
- "overwrite" @207 NONAME ; implemented
- "pair_content" @208 NONAME ; implemented
- "PAIR_NUMBER" @209 NONAME ; generated
- "pechochar" @210 NONAME ; implemented
-; "pecho_wchar" @211 NONAME ; missing
- "pnoutrefresh" @212 NONAME ; implemented
- "prefresh" @213 NONAME ; implemented
- "printw" @214 NONAME ; implemented
- "putp" @215 NONAME ; implemented
- "putwin" @216 NONAME ; implemented
- "qiflush" @217 NONAME ; implemented
- "raw" @218 NONAME ; implemented
- "redrawwin" @219 NONAME ; generated
- "refresh" @220 NONAME ; generated
- "resetty" @221 NONAME ; implemented
- "reset_prog_mode" @222 NONAME ; implemented
- "reset_shell_mode" @223 NONAME ; implemented
- "ripoffline" @224 NONAME ; implemented
- "savetty" @225 NONAME ; implemented
- "scanw" @226 NONAME ; implemented
- "scr_dump" @227 NONAME ; implemented
- "scr_init" @228 NONAME ; implemented
- "scrl" @229 NONAME ; generated
- "scroll" @230 NONAME ; generated
- "scrollok" @231 NONAME ; implemented
- "scr_restore" @232 NONAME ; implemented
- "scr_set" @233 NONAME ; implemented
-; "setcchar" @234 NONAME ; missing
- "setscrreg" @235 NONAME ; generated
- "set_term" @236 NONAME ; implemented
- "slk_attroff" @237 NONAME ; implemented
-; "slk_attr_off" @238 NONAME ; missing
- "slk_attron" @239 NONAME ; implemented
-; "slk_attr_on" @240 NONAME ; missing
- "slk_attrset" @241 NONAME ; implemented
-; "slk_attr_set" @242 NONAME ; missing
- "slk_clear" @243 NONAME ; implemented
- "slk_init" @244 NONAME ; implemented
- "slk_label" @245 NONAME ; implemented
- "slk_noutrefresh" @246 NONAME ; implemented
- "slk_refresh" @247 NONAME ; implemented
- "slk_restore" @248 NONAME ; implemented
- "slk_set" @249 NONAME ; implemented
- "slk_touch" @250 NONAME ; implemented
-; "slk_wset" @251 NONAME ; missing
- "standout" @252 NONAME ; generated
- "standend" @253 NONAME ; generated
- "start_color" @254 NONAME ; implemented
- "subpad" @255 NONAME ; implemented
- "subwin" @256 NONAME ; implemented
- "syncok" @257 NONAME ; implemented
- "termattrs" @258 NONAME ; implemented
- "termname" @259 NONAME ; implemented
- "tigetflag" @260 NONAME ; implemented
- "tigetnum" @261 NONAME ; implemented
- "tigetstr" @262 NONAME ; implemented
-; "timeout" @263 NONAME ; implemented << NO!!
- "typeahead" @264 NONAME ; implemented
- "ungetch" @265 NONAME ; implemented
-; "unget_wch" @266 NONAME ; missing
- "untouchwin" @267 NONAME ; generated
- "use_env" @268 NONAME ; implemented
- "vidattr" @269 NONAME ; implemented
-; "vid_attr" @270 NONAME ; missing
- "vidputs" @271 NONAME ; implemented
-; "vid_puts" @272 NONAME ; missing
- "vline" @273 NONAME ; generated
-; "vline_set" @274 NONAME ; missing
- "vwprintw" @275 NONAME ; implemented
-; "vw_printw" @276 NONAME ; implemented << NO!!
- "vwscanw" @277 NONAME ; implemented
-; "vw_scanw" @278 NONAME ; implemented << NO!!
- "waddch" @279 NONAME ; implemented
- "waddchnstr" @280 NONAME ; implemented
- "waddchstr" @281 NONAME ; generated
- "waddnstr" @282 NONAME ; implemented
- "waddstr" @283 NONAME ; generated
-; "waddwstr" @284 NONAME ; missing
-; "wadd_wch" @285 NONAME ; missing
-; "wadd_wchnstr" @286 NONAME ; missing
-; "wadd_wchstr" @287 NONAME ; missing
- "wattron" @288 NONAME ; generated
- "wattroff" @289 NONAME ; generated
- "wattrset" @290 NONAME ; generated
- "wattr_get" @291 NONAME ; generated
- "wattr_on" @292 NONAME ; implemented
- "wattr_off" @293 NONAME ; implemented
-; "wattr_set" @294 NONAME ; implemented << NO!!
- "wbkgd" @295 NONAME ; implemented
- "wbkgdset" @296 NONAME ; generated
-; "wbkgrndset" @297 NONAME ; missing
-; "wbkgrnd" @298 NONAME ; missing
- "wborder" @299 NONAME ; implemented
-; "wborder_set" @300 NONAME ; missing
- "wchgat" @301 NONAME ; implemented
- "wclear" @302 NONAME ; implemented
- "wclrtobot" @303 NONAME ; implemented
- "wclrtoeol" @304 NONAME ; implemented
- "wcursyncup" @305 NONAME ; implemented
- "wdelch" @306 NONAME ; implemented
- "wdeleteln" @307 NONAME ; generated
- "wechochar" @308 NONAME ; implemented
-; "wecho_wchar" @309 NONAME ; missing
- "werase" @310 NONAME ; implemented
-; "wgetbkgrnd" @311 NONAME ; missing
- "wgetch" @312 NONAME ; implemented
- "wgetnstr" @313 NONAME ; implemented
-; "wgetn_wstr" @314 NONAME ; missing
- "wgetstr" @315 NONAME ; generated
-; "wget_wch" @316 NONAME ; missing
-; "wget_wstr" @317 NONAME ; missing
- "whline" @318 NONAME ; implemented
-; "whline_set" @319 NONAME ; missing
- "winch" @320 NONAME ; generated
- "winchnstr" @321 NONAME ; implemented
- "winchstr" @322 NONAME ; generated
- "winnstr" @323 NONAME ; implemented
-; "winnwstr" @324 NONAME ; missing
- "winsch" @325 NONAME ; implemented
- "winsdelln" @326 NONAME ; implemented
- "winsertln" @327 NONAME ; generated
- "winsnstr" @328 NONAME ; implemented
- "winsstr" @329 NONAME ; generated
- "winstr" @330 NONAME ; generated
-; "wins_nwstr" @331 NONAME ; missing
-; "wins_wch" @332 NONAME ; missing
-; "wins_wstr" @333 NONAME ; missing
-; "winwstr" @334 NONAME ; missing
-; "win_wch" @335 NONAME ; missing
-; "win_wchnstr" @336 NONAME ; missing
-; "win_wchstr" @337 NONAME ; missing
- "wmove" @338 NONAME ; implemented
- "wnoutrefresh" @339 NONAME ; implemented
- "wprintw" @340 NONAME ; implemented
- "wredrawln" @341 NONAME ; implemented
- "wrefresh" @342 NONAME ; implemented
- "wresize" @343 NONAME ; implemented
- "wscanw" @344 NONAME ; implemented
- "wscrl" @345 NONAME ; implemented
- "wsetscrreg" @346 NONAME ; implemented
- "wstandout" @347 NONAME ; generated
- "wstandend" @348 NONAME ; generated
- "wsyncdown" @349 NONAME ; implemented
- "wsyncup" @350 NONAME ; implemented
- "wtimeout" @351 NONAME ; implemented
- "wtouchln" @352 NONAME ; implemented
-; "wunctrl" @353 NONAME ; missing
- "wvline" @354 NONAME ; implemented
-; "wvline_set" @355 NONAME ; missing
-
- "getmouse" @356 NONAME
- "ungetmouse" @357 NONAME
- "mousemask" @358 NONAME
- "wenclose" @359 NONAME
- "mouseinterval" @360 NONAME
-
-; from unctrl.h
- "unctrl" @361 NONAME
-
-; publics for tracing
- "_tracef" @400 NONAME
- "_tracedump" @401 NONAME
- "_traceattr" @402 NONAME
- "_tracechar" @403 NONAME
- "_tracemouse" @404 NONAME
- "trace" @405 NONAME
-
-;**********
-;* term.h *
-;**********
- "boolnames" @600 NONAME ; variable
- "boolcodes" @601 NONAME ; variable
- "boolfnames" @602 NONAME ; variable
- "numnames" @603 NONAME ; variable
- "numcodes" @604 NONAME ; variable
- "numfnames" @605 NONAME ; variable
- "strnames" @606 NONAME ; variable
- "strcodes" @608 NONAME ; variable
- "strfnames" @609 NONAME ; variable
-
-; internals
- "_nc_read_entry" @620 NONAME
- "_nc_read_file_entry" @621 NONAME
- "_nc_first_name" @622 NONAME
- "_nc_name_match" @623 NONAME
- "_nc_read_termcap_entry" @624 NONAME
- "_nc_fallback" @625 NONAME
-
-; entry points
- "set_curterm" @640 NONAME
- "del_curterm" @641 NONAME
-
-; entry points
-; "putp" @642 NONAME ; already defined
- "restartterm" @643 NONAME
- "setupterm" @644 NONAME
- "tgetent" @645 NONAME
- "tgetflag" @646 NONAME
- "tgetnum" @647 NONAME
- "tgetstr" @648 NONAME
- "tgoto" @649 NONAME
-; "tigetflag" @650 NONAME ; already defined
-; "tigetnum" @651 NONAME ; already defined
-; "tigetstr" @652 NONAME ; already defined
- "tparm" @653 NONAME
- "tparam" @654 NONAME
- "tputs" @655 NONAME
-
-;*************
-;* termcap.h *
-;*************
-; the functions are already defined in term.h
- "PC" @660 NONAME
- "UP" @661 NONAME
- "BC" @662 NONAME
- "ospeed" @663 NONAME
-
-;****************
-;* term_entry.h *
-;****************
- "_nc_head" @700 NONAME
- "_nc_tail" @701 NONAME
-
-; alloc_entry.c: elementary allocation code
- "_nc_init_entry" @702 NONAME
- "_nc_save_str" @703 NONAME
- "_nc_merge_entry" @704 NONAME
- "_nc_wrap_entry" @705 NONAME
-
-; parse_entry.c: entry-parsing code
- "_nc_parse_entry" @706 NONAME
- "_nc_capcmp" @707 NONAME
-
-; write_entry.c: writing an entry to the file system
- "_nc_write_entry" @708 NONAME
-
-; comp_parse.c: entry list handling
- "_nc_read_entry_source" @709 NONAME
- "_nc_entry_match" @710 NONAME
- "_nc_resolve_uses" @711 NONAME
- "_nc_free_entries" @712 NONAME
-
-;*********
-;* tic.h *
-;*********
-; "_nc_tracing" @800 NONAME ; defined below
-; "_nc_tracef" @801 NONAME ; missing
-; "_nc_visbuf" @802 NONAME ; defined below
-
- "_nc_curr_token" @803 NONAME
-
- "_nc_info_hash_table" @804 NONAME
- "_nc_cap_hash_table" @805 NONAME
-
- "_nc_capalias_table" @806 NONAME
- "_nc_infoalias_table" @807 NONAME
- "_nc_get_table" @808 NONAME
-
-; comp_hash.c: name lookup
- "_nc_find_entry" @809 NONAME
- "_nc_find_type_entry" @810 NONAME
-
-; comp_scan.c: lexical analysis
- "_nc_get_token" @811 NONAME
- "_nc_push_token" @812 NONAME
- "_nc_reset_input" @813 NONAME
- "_nc_panic_mode" @814 NONAME
- "_nc_curr_line" @815 NONAME
- "_nc_curr_col" @816 NONAME
- "_nc_curr_file_pos" @817 NONAME
- "_nc_comment_start" @818 NONAME
- "_nc_comment_end" @819 NONAME
- "_nc_syntax" @820 NONAME
- "_nc_start_line" @821 NONAME
-
-; comp_error.c: warning & abort messages
- "_nc_set_source" @822 NONAME
- "_nc_get_type" @823 NONAME
- "_nc_set_type" @824 NONAME
- "_nc_syserr_abort" @825 NONAME
- "_nc_err_abort" @826 NONAME
- "_nc_warning" @827 NONAME
- "_nc_suppress_warnings" @828 NONAME
-
-; captoinfo.c: capability conversion
- "_nc_captoinfo" @829 NONAME
- "_nc_infotocap" @830 NONAME
-
-; comp_main.c: compiler main
-; "_nc_progname" @831 NONAME ; no need to export it
-
-
-; *****************
-; NCurses internals -- just for progs/*.exe and the library itself.
-; *****************
-
-; For broken linkers
-; "_nc_screen" @1000 NONAME
-; "_nc_alloc_screen" @1001 NONAME
-; "_nc_set_screen" @1002 NONAME
-
-; For not so broken linkers
- "SP" @1003 NONAME
-
-; Who knows what this is for
- "_slk_init" @1004 NONAME
- "slk_initialize" @1005 NONAME
-
-; Tracing -- all functions used internally
- "_nc_tracing" @1010 NONAME
- "_nc_tputs_trace" @1011 NONAME
- "_nc_visbuf" @1012 NONAME
-
-; lib_acs.c
- "init_acs" @1013 NONAME
-
-; lib_mvcur.c
- "_nc_mvcur_init" @1014 NONAME
- "_nc_mvcur_wrap" @1015 NONAME
- "_nc_mvcur_scrolln" @1016 NONAME
-
-; lib_mouse.c
- "_nc_mouse_init" @1017 NONAME
- "_nc_mouse_event" @1018 NONAME
- "_nc_mouse_inline" @1019 NONAME
- "_nc_mouse_parse" @1020 NONAME
- "_nc_mouse_wrap" @1021 NONAME
- "_nc_mouse_resume" @1022 NONAME
- "_nc_max_click_interval" @1023 NONAME
-
-; elsewhere ...
- "_nc_keypad" @1024 NONAME
- "_nc_makenew" @1025 NONAME
- "_nc_outch" @1026 NONAME
- "_nc_render" @1027 NONAME
- "_nc_waddch_nosync" @1028 NONAME
- "_nc_scroll_optimize" @1029 NONAME
- "_nc_scroll_window" @1030 NONAME
- "_nc_setupscreen" @1031 NONAME
- "_nc_backspace" @1032 NONAME
- "_nc_outstr" @1033 NONAME
- "_nc_signal_handler" @1034 NONAME
- "_nc_synchook" @1035 NONAME
- "_nc_timed_wait" @1036 NONAME
- "_nc_do_color" @1037 NONAME
diff --git a/ncurses-5.2/misc/panel.def b/ncurses-5.2/misc/panel.def
deleted file mode 100644
index 30ce1d6..0000000
--- a/ncurses-5.2/misc/panel.def
+++ /dev/null
@@ -1,20 +0,0 @@
-LIBRARY panel5 INITINSTANCE TERMINSTANCE
-DESCRIPTION "NCurses-5-1-20000704, module panel"
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
- "bottom_panel" @7 NONAME
- "del_panel" @5 NONAME
- "hide_panel" @3 NONAME
- "move_panel" @13 NONAME
- "new_panel" @8 NONAME
- "panel_above" @9 NONAME
- "panel_below" @10 NONAME
- "panel_hidden" @15 NONAME
- "panel_userptr" @12 NONAME
- "panel_window" @1 NONAME
- "replace_panel" @14 NONAME
- "set_panel_userptr" @11 NONAME
- "show_panel" @4 NONAME
- "top_panel" @6 NONAME
- "update_panels" @2 NONAME
diff --git a/ncurses-5.2/misc/panel.ref b/ncurses-5.2/misc/panel.ref
deleted file mode 100644
index e84045a..0000000
--- a/ncurses-5.2/misc/panel.ref
+++ /dev/null
@@ -1,18 +0,0 @@
-LIBRARY panel2 INITINSTANCE
-DESCRIPTION 'NCurses 1.9.9e-1 for OS/2 - panel library'
-EXPORTS
- "panel_window" @1
- "update_panels" @2
- "hide_panel" @3
- "show_panel" @4
- "del_panel" @5
- "top_panel" @6
- "bottom_panel" @7
- "new_panel" @8
- "panel_above" @9
- "panel_below" @10
- "set_panel_userptr" @11
- "panel_userptr" @12
- "move_panel" @13
- "replace_panel" @14
- "panel_hidden" @15
diff --git a/ncurses-5.2/misc/run_tic.in b/ncurses-5.2/misc/run_tic.in
deleted file mode 100644
index 08f81d7..0000000
--- a/ncurses-5.2/misc/run_tic.in
+++ /dev/null
@@ -1,146 +0,0 @@
-#!@SHELL@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1996,2000
-#
-# $Id$
-# 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.
-#
-# Assumes:
-# The leaf directory names (lib, tabset, terminfo)
-#
-echo '** Building terminfo database, please wait...'
-#
-# The script is designed to be run from the misc/Makefile as
-# make install.data
-
-: ${suffix=@PROG_EXT@}
-: ${DESTDIR=@DESTDIR@}
-: ${prefix=@prefix@}
-: ${exec_prefix=@exec_prefix@}
-: ${bindir=@bindir@}
-: ${top_srcdir=@top_srcdir@}
-: ${srcdir=@srcdir@}
-: ${datadir=@datadir@}
-: ${ticdir=@TERMINFO@}
-: ${source=@TERMINFO_SRC@}
-: ${LN_S="@LN_S@"}
-
-test -z "${DESTDIR}" && DESTDIR=
-
-# Allow tic to run either from the install-path, or from the build-directory
-case "$PATH" in
-:*) PATH=../progs:${DESTDIR}$bindir$PATH ;;
-*) PATH=../progs:${DESTDIR}$bindir:$PATH ;;
-esac
-export PATH
-
-#
-# set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
-# the PATH we just set.
-#
-NEWPATH=$PATH
-export NEWPATH
-PROG_BIN_DIR=${DESTDIR}$bindir
-export PROG_BIN_DIR
-
-TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
-umask 022
-
-# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's@/share/@/lib/@'`
-
-# Remove the old terminfo stuff; we don't care if it existed before, and it
-# would generate a lot of confusing error messages if we tried to overwrite it.
-# We explicitly remove its contents rather than the directory itself, in case
-# the directory is actually a symbolic link.
-( cd $TERMINFO && rm -fr ? 2>/dev/null )
-
-# If we're not installing into /usr/share/, we'll have to adjust the location
-# of the tabset files in terminfo.src (which are in a parallel directory).
-TABSET=`echo $ticdir | sed -e 's@/terminfo$@/tabset@'`
-if test "x$TABSET" != "x/usr/share/tabset" ; then
- echo '** adjusting tabset paths'
- TMP=${TMPDIR-/tmp}/$$
- sed -e s:/usr/share/tabset:$TABSET:g $source >$TMP
- trap "rm -f $TMP" 0 1 2 5 15
- source=$TMP
-fi
-
-cat <<EOF
-Running tic to install $TERMINFO ...
-
- You may see messages regarding unknown capabilities, e.g., AX.
- These are extended terminal capabilities which can be compiled
- using
- tic -x
- Read the INSTALL document before doing this - it can cause
- problems for older ncurses applications.
-
-EOF
-if ( $srcdir/shlib tic$suffix -s -o $TERMINFO $source )
-then
- echo '** built new '$TERMINFO
-else
- echo '? tic could not build '$TERMINFO
- exit 1
-fi
-
-# Make a symbolic link to provide compatibility with applications that expect
-# to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not
-# all systems support symbolic links, and those that do provide a variety
-# of options for 'test'.
-if test "$TICDIR" != "$TERMINFO" ; then
- ( rm -f $TICDIR 2>/dev/null )
- if ( cd $TICDIR 2>/dev/null )
- then
- cd $TICDIR
- TICDIR=`pwd`
- if test $TICDIR != $TERMINFO ; then
- # Well, we tried. Some systems lie to us, so the
- # installer will have to double-check.
- echo "Verify if $TICDIR and $TERMINFO are the same."
- echo "The new terminfo is in $TERMINFO; the other should be a link to it."
- echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
- fi
- else
- cd ${DESTDIR}$prefix
- # Construct a symbolic link that only assumes $ticdir has the
- # same $prefix as the other installed directories.
- RELATIVE=`echo $ticdir|sed -e 's:^'$prefix'/::'`
- if test "$RELATIVE" != "$ticdir" ; then
- RELATIVE=../`echo $ticdir|sed -e 's:^'$prefix'/::' -e 's:^/::'`
- fi
- if ( @LN_S@ $RELATIVE $TICDIR )
- then
- echo '** linked '$TICDIR' for compatibility'
- fi
- fi
-fi
diff --git a/ncurses-5.2/misc/shlib b/ncurses-5.2/misc/shlib
deleted file mode 100755
index a9879e6..0000000
--- a/ncurses-5.2/misc/shlib
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-# $Id$
-# Use this script as a wrapper when running executables linked to shared
-# libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
-# the soname's path within the linked executable (such as IRIX), e.g,
-#
-# shlib knight
-#
-# Setting LD_LIBRARY_PATH, overrides/supplements the loader's normal search
-# path, and works on most systems. The drawback is that then the environment
-# variable has to be set to run the programs within this directory tree.
-#
-# For Linux (and other systems using the GNU loader), we can use the rpath
-# directive, which embeds the pathname of the library within the executable.
-# Using the Linux loader's rpath directive introduces a constraint, since
-# it's embedded into the binary, and means that the binary cannot be moved
-# around (though it'll work if the $exec_prefix convention that puts the bin
-# and lib directories under the same parent is followed).
-#
-# Using the actual soname (e.g., ../lib/libncurses.so) alone, is a more
-# flexible solution; you can link without having to set the environment
-# variable, and on some systems (IRIX) you can even run the resulting binaries
-# without setting LD_LIBRARY_PATH.
-#
-# Using a conventional link, with -L and -l options on Linux results in a
-# statically linked executable, which we don't want at all.
-#
-# Special cases:
-#
-# BeOS R4.5 uses $LIBRARY_PATH rather than $LD_LIBRARY_PATH.
-
-#
-# Make sure that we use the PATH that was set in run_tic.sh
-#
-if test X$NEWPATH != X ; then
- PATH=$NEWPATH
- export PATH
-fi
-
-q=""
-for p in lib ../lib
-do
- if test -d $p; then
- q="$p"
- fi
-done
-if test -n "$q" ; then
- if test -n "$LD_LIBRARY_PATH"; then
- LD_LIBRARY_PATH="$q:$LD_LIBRARY_PATH"
- elif test -n "$LIBRARY_PATH" ; then
- LIBRARY_PATH="$q:$LIBRARY_PATH"
- else
- LD_LIBRARY_PATH="$q"
- fi
- export LD_LIBRARY_PATH
-fi
-eval "$*"
diff --git a/ncurses-5.2/misc/tabset/std b/ncurses-5.2/misc/tabset/std
deleted file mode 100644
index e93f737..0000000
--- a/ncurses-5.2/misc/tabset/std
+++ /dev/null
@@ -1 +0,0 @@
- 3 1 1 1 1 1 1 1 1 1 1 1 1 1
diff --git a/ncurses-5.2/misc/tabset/stdcrt b/ncurses-5.2/misc/tabset/stdcrt
deleted file mode 100644
index 66ba12f..0000000
--- a/ncurses-5.2/misc/tabset/stdcrt
+++ /dev/null
@@ -1 +0,0 @@
- 3 1 1 1 1 1 1 1 1 1 \ No newline at end of file
diff --git a/ncurses-5.2/misc/tabset/vt100 b/ncurses-5.2/misc/tabset/vt100
deleted file mode 100644
index 8828d19..0000000
--- a/ncurses-5.2/misc/tabset/vt100
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-H H H H H H H H H H H H H H H H
diff --git a/ncurses-5.2/misc/tabset/vt300 b/ncurses-5.2/misc/tabset/vt300
deleted file mode 100644
index b1f9ce1..0000000
--- a/ncurses-5.2/misc/tabset/vt300
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-P2$t9/17/25/33/41/49/57/65/73/81/89/97/105/113/121/129\
diff --git a/ncurses-5.2/misc/tdlint b/ncurses-5.2/misc/tdlint
deleted file mode 100755
index a047ae9..0000000
--- a/ncurses-5.2/misc/tdlint
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-# $Id$
-#
-# Lint-script that allows user's own lint libraries, in addition to the ones
-# installed in the system.
-#
-OPT=""
-DIRS=""
-LIBS=""
-FILES=""
-ARCH=`uname -s`
-if test -z "$ARCH" ; then
- echo '? uname not found'
- exit 1
-else
- case $ARCH in
- AIX) set - $* -Nn4000
- ;;
- IRIX) set - $* -n -lc
- ;;
- SunOS)
- case `uname -r` in
- 5.*) ARCH=Solaris
- set - $* -n -lc
- ;;
- esac
- ;;
- esac
-fi
-# LIBDIR=$HOME/lib/$ARCH/lint ;export LIBDIR
-for p in $HOME/lib/$ARCH/lint /usr/lib/lint /usr/lib
-do
- if [ -d $p ]
- then
- DIRS="$DIRS $p"
- fi
-done
-#
-while [ $# != 0 ]
-do
- case $1 in
- -D*\"*) ;;
- -L*)
- DIRS="`echo $1|sed -e 's/^-L//'` $DIRS"
- ;;
- -l*)
- lib="llib-l`echo $1 | sed -e 's/^-l//'`.ln"
- found=no
- for p in $DIRS
- do
- echo -n testing $p/$lib
- if [ -f $p/$lib ]
- then
- LIBS="$LIBS $p/$lib"
- echo " (ok)"
- found=yes
- break
- fi
- echo
- done
- if [ $found = no ]
- then
- echo "ignored library $1"
- fi
- ;;
- -n) if [ -z "$OPT" ]
- then
- OPT="-I."
- fi
- OPT="$OPT $1"
- ;;
- -*) OPT="$OPT $1"
- ;;
- *)
- FILES="$FILES $1"
- ;;
- esac
- shift
-done
-#
-eval lint $OPT $FILES $LIBS
diff --git a/ncurses-5.2/misc/terminfo.src b/ncurses-5.2/misc/terminfo.src
deleted file mode 100644
index 12591f0..0000000
--- a/ncurses-5.2/misc/terminfo.src
+++ /dev/null
@@ -1,18609 +0,0 @@
-######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
-#
-# This version of terminfo.src is distributed with ncurses.
-# Report bugs to
-# bug-ncurses@gnu.org
-#
-# Version 10.2.1
-# $Date$
-# terminfo syntax
-#
-# Eric S. Raymond (current maintainer)
-# John Kunze, Berkeley
-# Craig Leres, Berkeley
-#
-# Please e-mail changes to terminfo@thyrsus.com; the old termcap@berkeley.edu
-# address is no longer valid. The latest version can always be found at
-# <http://www.tuxedo.org/terminfo>.
-#
-# PURPOSE OF THIS FILE:
-#
-# This file describes the capabilities of various character-cell terminals,
-# as needed by software such as screen-oriented editors.
-#
-# Other terminfo and termcap files exist, supported by various OS vendors
-# or as relics of various older versions of UNIX. This one is the longest
-# and most comprehensive one in existence. It subsumes not only the entirety
-# of the historical 4.4BSD, GNU, System V and SCO termcap files and the BRL
-# termcap file, but also large numbers of vendor-maintained termcap and
-# terminfo entries more complete and carefully tested than those in historical
-# termcap/terminfo versions.
-#
-# Pointers to related resources (including the ncurses distribution) may
-# be found at <http://www.tuxedo.org/terminfo>.
-#
-# INTERNATIONALIZATION:
-#
-# This file uses only the US-ASCII character set (no ISO8859 characters).
-#
-# This file assumes a US-ASCII character set. If you need to fix this, start
-# by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers
-# for your character set. \E(A and \E)A enables the British character set
-# with the pound sign at position 2/3.
-#
-# In a Japanese-processing environment using EUC/Japanese or Shift-JIS,
-# C1 characters are considered the first-byte set of the Japanese encodings,
-# so \E)0 should be avoided in <enacs> and initialization strings.
-#
-# FILE FORMAT:
-#
-# The version you are looking at may be in any of three formats: master
-# (terminfo with OT capabilities), stock terminfo, or termcap. You can tell
-# which by the format given in the header above.
-#
-# The master format is accepted and generated by the terminfo tools in the
-# ncurses suite; it differs from stock (System V-compatible) terminfo only
-# in that it admits a group of capabilities (prefixed `OT') equivalent to
-# various obsolete termcap capabilities. You can, thus, convert from master
-# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if
-# you have ncurses `tic -I' is nicer (among other things, it automatically
-# outputs entries in a canonical form).
-#
-# The termcap version is generated automatically from the master version
-# using tic -C. This filtering leaves in the OT capabilities under their
-# original termcap names. All translated entries fit within the 1023-byte
-# string-table limit of archaic termcap libraries except where explicitly
-# noted below. Note that the termcap translation assumes that your termcap
-# library can handle multiple tc capabilities in an entry. 4.4BSD has this
-# capability. Older versions of GNU termcap, through 1.3, do not.
-#
-# For details on these formats, see terminfo(5) in the ncurses distribution,
-# and termcap(5) in the 4.4BSD Unix Programmer's Manual. Be aware that 4.4BSD
-# curses has been declared obsolete by the caretakers of the 4.4BSD sources
-# as of June 1995; they are encouraging everyone to migrate to ncurses.
-#
-# Note: unlike some other distributed terminfo files (Novell Unix & SCO's),
-# no entry in this file has embedded comments. This is so source translation
-# to termcap only has to carry over leading comments. Also, no name field
-# contains embedded whitespace (such whitespace confuses rdist).
-#
-# Further note: older versions of this file were often installed with an editor
-# script (reorder) that moved the most common terminal types to the front of
-# the file. This should no longer be necessary, as the file is now ordered
-# roughly by type frequency with ANSI/VT100 and other common types up front.
-#
-# Some information has been merged in from terminfo files distributed by
-# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below). Much information
-# comes from vendors who maintain official terminfos for their hardware
-# (notably DEC and Wyse).
-#
-# A detailed change history is included at the end of this file.
-#
-# FILE ORGANIZATION:
-#
-# Comments in this file begin with # - they cannot appear in the middle
-# of a terminfo/termcap entry (this feature had to be sacrificed in order
-# to allow standard terminfo and termcap syntax to be generated cleanly from
-# the master format). Individual capabilities are commented out by
-# placing a period between the colon and the capability name.
-#
-# The file is divided up into major sections (headed by lines beginning with
-# the string "########") and minor sections (beginning with "####"); do
-#
-# grep "^####" <file> | more
-#
-# to see a listing of section headings. The intent of the divisions is
-# (a) to make it easier to find things, and (b) to order the database so
-# that important and frequently-encountered terminal types are near the
-# front (so that you'll get reasonable search efficiency from a linear
-# search of the termcap form even if you don't use reorder). Minor sections
-# usually correspond to manufacturers or standard terminal classes.
-# Parenthesized words following manufacturer names are type prefixes or
-# product line names used by that manufacturers.
-#
-# HOW TO READ THE ENTRIES:
-#
-# The first name in an entry is the canonical name for the model or
-# type, last entry is a verbose description. Others are mnemonic synonyms for
-# the terminal.
-#
-# Terminal names look like <manufacturer> <model> - <modes/options>
-# The part to the left of the dash, if a dash is present, describes the
-# particular hardware of the terminal. The part to the right may be used
-# for flags indicating special ROMs, extra memory, particular terminal modes,
-# or user preferences.
-#
-# All names should be in lower case, for consistency in typing.
-#
-# The following are conventionally used suffixes:
-# -2p Has two pages of memory. Likewise 4p, 8p, etc.
-# -am Enable auto-margin.
-# -m Monochrome. Suppress color support
-# -mc Magic-cookie. Some terminals (notably older Wyses) can
-# only support one attribute without magic-cookie lossage.
-# Their base entry is usually paired with another that
-# uses magic cookies to support multiple attributes.
-# -nam No auto-margin - suppress <am> capability
-# -nl No labels - suppress soft labels
-# -ns No status line - suppress status line
-# -rv Terminal in reverse video mode (black on white)
-# -s Enable status line.
-# -vb Use visible bell (<flash>) rather than <bel>.
-# -w Wide - in 132 column mode.
-# If a name has multiple suffixes and one is a line height, that one should
-# go first. Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'.
-#
-# Entries with embedded plus signs are designed to be included through use/tc
-# capabilities, not used as standalone entries.
-#
-# To avoid search clashes, some older all-numeric names for terminals have
-# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621).
-# All primary names of terminals now have alphanumeric prefixes.
-#
-# Comments marked "esr" are mostly results of applying the termcap-compiler
-# code packaged with ncurses and contemplating the resulting error messages.
-# In many cases, these indicated obvious fixes to syntax garbled by the
-# composers. In a few cases, I was able to deduce corrected forms for garbled
-# capabilities by looking at context. All the information in the original
-# entries is preserved in the comments.
-#
-# In the comments, terminfo capability names are bracketed with <> (angle
-# brackets). Termcap capability names are bracketed with :: (colons).
-#
-# INTERPRETATION OF USER CAPABILITIES
-#
-# The System V Release 4 and XPG4 terminfo format defines ten string
-# capabilities for use by applications, <u0>...<u9>. In this file, we use
-# certain of these capabilities to describe functions which are not covered
-# by terminfo. The mapping is as follows:
-#
-# u9 terminal enquire string (equiv. to ANSI/ECMA-48 DA)
-# u8 terminal answerback description
-# u7 cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6)
-# u6 cursor position report (equiv. to ANSI/ECMA-48 CPR)
-#
-# The terminal enquire string <u9> should elicit an answerback response
-# from the terminal. Common values for <u9> will be ^E (on older ASCII
-# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals).
-#
-# The cursor position request (<u7>) string should elicit a cursor position
-# report. A typical value (for VT100 terminals) is \E[6n.
-#
-# The terminal answerback description (u8) must consist of an expected
-# answerback string. The string may contain the following scanf(3)-like
-# escapes:
-#
-# %c Accept any character
-# %[...] Accept any number of characters in the given set
-#
-# The cursor position report (<u6>) string must contain two scanf(3)-style
-# %d format elements. The first of these must correspond to the Y coordinate
-# and the second to the %d. If the string contains the sequence %i, it is
-# taken as an instruction to decrement each value after reading it (this is
-# the inverse sense from the cup string). The typical CPR value is
-# \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals).
-#
-# These capabilities are used by tack(1m), the terminfo action checker
-# (distributed with ncurses 5.0).
-#
-# TABSET FILES
-#
-# All the entries in this file have been edited to assume that the tabset
-# files directory is /usr/share/tabset, in conformance with the File Hierarchy
-# Standard for Linux and open-source BSD systems. Some vendors (notably Sun)
-# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset.
-#
-# No curses package we know of actually uses these files. If their location
-# is an issue, you will have to hand-patch the file locations before compiling
-# this file.
-#
-# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL
-#
-# As the ANSI/ECMA-48 standard and variants take firmer hold, and as
-# character-cell terminals are increasingly replaced by X displays, much of
-# this file is becoming a historical document (this is part of the reason for
-# the new organization, which puts ANSI types, xterm, Unix consoles,
-# and vt100 up front in confidence that this will catch 95% of new hardware).
-#
-# For the terminal types still alive, I'd like to have manufacturer's
-# contact data (Internet address and/or snail-mail + phone).
-#
-# I'm also interested in enriching the comments so that the latter portions of
-# the file do in fact become a potted history of VDT technology as seen by
-# UNIX hackers. Ideally, I'd like the headers for each manufacturer to
-# include its live/dead/out-of-the-business status, and for as many
-# terminal types as possible to be tagged with information like years
-# of heaviest use, popularity, and interesting features.
-#
-# I'm especially interested in identifying the obscure entries listed under
-# `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal
-# wisdom about them gets lost. If you know a lot about obscure old terminals,
-# please go to the terminfo resource page, grab the UFO file (ufo.ti), and
-# eyeball it for things you can identify and describe.
-#
-# If you have been around long enough to contribute, please read the file
-# with this in mind and send me your annotations.
-#
-# COPYRIGHTS AND OTHER DELUSIONS
-#
-# The BSD ancestor of this file had a standard Regents of the University of
-# California copyright with dates from 1980 to 1993.
-#
-# Some information has been merged in from a terminfo file SCO distributes.
-# It has an obnoxious boilerplate copyright which I'm ignoring because they
-# took so much of the content from the ancestral BSD versions of this file
-# and didn't attribute it, thereby violating the BSD Regents' copyright.
-#
-# Not that anyone should care. However many valid functions copyrights may
-# serve, putting one on a termcap/terminfo file with hundreds of anonymous
-# contributors makes about as much sense as copyrighting a wall-full of
-# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous.
-#
-# This file deliberately has no copyright. It belongs to no one and everyone.
-# If you claim you own it, you will merely succeed in looking like a fool.
-# Use it as you like. Use it at your own risk. Copy and redistribute freely.
-# There are no guarantees anywhere. Svaha!
-#
-
-######## ANSI, UNIX CONSOLE, AND SPECIAL TYPES
-#
-# This section describes terminal classes and brands that are still
-# quite common.
-#
-
-#### Specials
-#
-# Special "terminals". These are used to label tty lines when you don't
-# know what kind of terminal is on it. The characteristics of an unknown
-# terminal are the lowest common denominator - they look about like a ti 700.
-#
-
-dumb|80-column dumb tty,
- am,
- cols#80,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-unknown|unknown terminal type,
- gn, use=dumb,
-lpr|printer|line printer,
- OTbs, hc, os,
- cols#132, lines#66,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ff=^L, ind=^J,
-glasstty|classic glass tty interpreting ASCII control characters,
- OTbs, am,
- cols#80,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ht=^I, kcub1=^H,
- kcud1=^J, nel=^M^J, .kbs=^H,
-
-vanilla,
- OTbs,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-
-#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
-#
-# See the end-of-file comment for more on these.
-#
-
-# ANSI capabilities are broken up into pieces, so that a terminal
-# implementing some ANSI subset can use many of them.
-ansi+local1,
- cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
-ansi+local,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, use=ansi+local1,
-ansi+tabs,
- cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[2g,
-ansi+inittabs,
- it#8, use=ansi+tabs,
-ansi+erase,
- clear=\E[H\E[J, ed=\E[J, el=\E[K,
-ansi+rca,
- hpa=\E[%p1%{1}%+%dG, vpa=\E[%p1%{1}%+%dd,
-ansi+cup,
- cup=\E[%i%p1%d;%p2%dH, home=\E[H,
-ansi+rep,
- rep=%p1%c\E[%p2%{1}%-%db,
-ansi+idl1,
- dl1=\E[M, il1=\E[L,
-ansi+idl,
- dl=\E[%p1%dM, il=\E[%p1%dL, use=ansi+idl1,
-ansi+idc,
- dch1=\E[P, ich=\E[%p1%d@, ich1=\E[@, rmir=\E6, smir=\E6,
-ansi+arrows,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- khome=\E[H,
-ansi+sgr|ansi graphic renditions,
- blink=\E[5m, invis=\E[8m, rev=\E[7m, sgr0=\E[0m,
-ansi+sgrso|ansi standout only,
- rmso=\E[m, smso=\E[7m,
-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,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- 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,
- use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
-ansi+pp|ansi printer port,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-ansi+csr|ansi scroll-region plus cursor save & restore,
- csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
-
-# The IBM PC alternate character set. Plug this into any Intel console entry.
-# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
-# ROM graphics for control characters such as the diamond, up- and down-arrow.
-# This works with the System V, Linux, and BSDI consoles. It's a safe bet this
-# will work with any Intel console, they all seem to have inherited \E[11m
-# from the ANSI.SYS de-facto standard.
-klone+acs|alternate character set for ansi.sys displays,
- 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,
- rmacs=\E[10m, smacs=\E[11m,
-
-# Highlight controls corresponding to the ANSI.SYS standard. Most
-# console drivers for Intel boxes obey these. Makes the same assumption
-# about \E[11m as klone+acs. True ANSI/ECMA-48 would have <rmso=\E[27m>,
-# <rmul=\E[24m>, but this isn't a documented feature of ANSI.SYS.
-klone+sgr|attribute control for ansi.sys displays,
- blink=\E[5m, bold=\E[1m, invis=\E[8m, rev=\E[7m,
- rmpch=\E[10m, rmso=\E[m, rmul=\E[m,
- 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, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
- use=klone+acs,
-
-# Highlight controls corresponding to the ANSI.SYS standard. *All*
-# console drivers for Intel boxes obey these. Does not assume \E[11m will
-# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
-# diamond and arrow characters under curses.
-klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m),
- blink=\E[5m, bold=\E[1m, invis=\E[8m, rev=\E[7m, rmso=\E[m,
- rmul=\E[m,
- 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,
- use=klone+acs,
-
-# KOI8-R (RFC1489) acs (alternate character set)
-# From: Qing Long <qinglong@Bolizm.ihep.su>, 24 Feb 1996.
-klone+koi8acs|alternate character set for ansi.sys displays with KOI8 charset,
- acsc=+\020\,\021-\036.^_0\215`\004a\237f\234g\232h\222i\220j\205k\203l\202m\204n\212o\213p\216q\0r\217s\214t\206u\207v\210w\211x\201y\230z\231{\267|\274}L~\225,
- rmacs=\E[10m, smacs=\E[11m,
-
-# ANSI.SYS color control. The setab/setaf caps depend on the coincidence
-# between SVr4/XPG4's color numbers and ANSI.SYS attributes. Here are longer
-# but equivalent strings that don't rely on that coincidence:
-# 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,
-# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
-# They match a subset of ECMA-48.
-klone+color|color control for ansi.sys and ISO6429-compatible displays,
- colors#8, ncv#3, pairs#64,
- op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-# This is better than klone+color, it doesn't assume white-on-black as the
-# default color pair, but many `ANSI' terminals don't grok the <op> cap.
-ecma+color|color control for ECMA-48-compatible terminals,
- AX,
- colors#8, ncv#3, pairs#64,
- op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-# Attribute control for ECMA-48-compatible terminals
-ecma+sgr|attribute capabilities for true ECMA-48 terminals,
- rmso=\E[27m, rmul=\E[24m, use=klone+sgr,
-
-# For comparison, here are all the capabilities implied by the Intel
-# Binary Compatibility Standard (level 2) that fit within terminfo.
-# For more detail on this rather pathetic standard, see the comments
-# near the end of this file.
-ibcs2|Intel Binary Compatibility Standard prescriptions,
- cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cud=\E[%p1%dB,
- cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
- hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
- indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7,
- smam=\E[?7h, tbc=\E[g, vpa=\E[%i%p1%dd,
-
-#### ANSI/ECMA-48 terminals and terminal emulators
-#
-# See near the end of this file for details on ANSI conformance.
-# Don't mess with these entries! Lots of other entries depend on them!
-#
-# This section lists entries in a least-capable to most-capable order.
-# if you're in doubt about what `ANSI' matches yours, try them in that
-# order and back off from the first that breaks.
-
-# ansi-mr is for ANSI terminals with ONLY relative cursor addressing
-# and more than one page of memory. It uses local motions instead of
-# direct cursor addressing, and makes almost no assumptions. It does
-# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen.
-ansi-mr|mem rel cup ansi,
- am, xon,
- cols#80, lines#24, use=vanilla, use=ansi+erase,
- use=ansi+local1,
-
-# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but
-# beware of screen size problems and memory relative cursor addressing.
-ansi-mini|any ansi terminal with pessimistic assumptions,
- am, xon,
- cols#80, lines#24, use=vanilla, use=ansi+cup,
- use=ansi+erase,
-
-# ansi-mtabs adds relative addressing and minimal tab support
-ansi-mtabs|any ansi terminal with pessimistic assumptions,
- it#8,
- ht=^I, use=ansi+local1, use=ansi-mini,
-
-# ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
-#
-# The following is an entry for the full ANSI 3.64 (1977). It lacks
-# padding, but most terminals using the standard are "fast" enough
-# not to require any -- even at 9600 bps. If you encounter problems,
-# try including the padding specifications.
-#
-# Note: the :as: and :ae: specifications are not implemented here, for
-# the available termcap documentation does not make clear WHICH alternate
-# character set to specify. ANSI 3.64 seems to make allowances for several.
-# Please make the appropriate adjustments to fit your needs -- that is
-# if you will be using alternate character sets.
-#
-# There are very few terminals running the full ANSI 3.64 standard,
-# so I could only test this entry on one verified terminal (Visual 102).
-# I would appreciate the results on other terminals sent to me.
-#
-# Please report comments, changes, and problems to:
-#
-# U.S. MAIL: Hugh Hansard
-# Box: 22830
-# Emory University
-# Atlanta, GA. 30322.
-#
-# USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh.
-#
-# (Added vt100 <rc>,<sc> to quiet a tic warning --esr)
-ansi77|ansi 3.64 standard 1977 version,
- OTbs, am, mir,
- cols#80, it#8, lines#24,
- bel=^G, clear=\E[;H\E[2J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch1=\E[P, dl1=\E[M$<5*/>, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, il1=\E[L$<5*/>, ind=\ED, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOR, kf4=\EOS, khome=\E[H, nel=^M\ED, rc=\E8, ri=\EM,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-# Procomm and some other ANSI emulations don't recognize all of the ANSI-
-# standard capabilities. This entry deletes <cuu>, <cuf>, <cud>, <cub>, and
-# <vpa>/<hpa> capabilities, forcing curses to use repetitions of <cuu1>,
-# <cuf1>, <cud1> and <cub1>. Also deleted <ich> and <ich1>, as QModem up to
-# 5.03 doesn't recognize these. Finally, we delete <rep> and <ri>, which seem
-# to confuse many emulators. On the other hand, we can count on these programs
-# doing <rmacs>/<smacs>/<sgr>. Older versions of this entry featured
-# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under
-# ANSI.SYS influence.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995
-pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode),
- OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=\E[D,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- hts=\EH, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[2g,
- use=klone+sgr-dumb,
-pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode),
- lines#25, use=pcansi-m,
-pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode),
- lines#33, use=pcansi-m,
-pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode),
- lines#43, use=pcansi-m,
-# The color versions. All PC emulators do color...
-pcansi|ibm-pc terminal programs claiming to be ansi,
- use=klone+color, use=pcansi-m,
-pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines,
- lines#25, use=pcansi,
-pcansi-33|pcansi33|ibm-pc terminal programs with 33 lines,
- lines#33, use=pcansi,
-pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines,
- lines#43, use=pcansi,
-
-# ansi-m -- full ANSI X3.64 with ANSI.SYS-compatible attributes, no color.
-# If you want pound signs rather than dollars, replace `B' with `A'
-# in the <s0ds>, <s1ds>, <s2ds>, and <s3ds> capabilities.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
-ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes,
- mc5i,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
- ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%i%p1%dG, ht=\E[I,
- ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, kbs=^H,
- kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
- rep=%p1%c\E[%p2%{1}%-%db, rin=\E[%p1%dT, s0ds=\E(B,
- s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[2g,
- vpa=\E[%i%p1%dd, use=pcansi-m,
-
-# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in
-# standard terminfo. Assumes ANSI.SYS-compatible attributes and color.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
-ansi|ansi/pc-term compatible with color,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
- u9=\E[c, use=ecma+color, use=klone+sgr, use=ansi-m,
-
-# ansi-generic is a vanilla ANSI terminal. This is assumed to implement
-# all the normal ANSI stuff with no extensions. It assumes
-# insert/delete line/char is there, so it won't work with
-# vt100 clones. It assumes video attributes for bold, blink,
-# underline, and reverse, which won't matter much if the terminal
-# can't do some of those. Padding is assumed to be zero, which
-# shouldn't hurt since xon/xoff is assumed.
-ansi-generic|generic ansi standard terminal,
- am, xon,
- cols#80, lines#24, use=vanilla, use=ansi+csr, use=ansi+cup,
- use=ansi+rca, use=ansi+erase, use=ansi+tabs,
- use=ansi+local, use=ansi+idc, use=ansi+idl, use=ansi+rep,
- use=ansi+sgrbold, use=ansi+arrows,
-
-#### DOS ANSI.SYS variants
-#
-# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
-# documentation (except for the keyboard key reassignment feature, which
-# doen't fit the <pfkey> model well). The klone+acs sequences were valid
-# though undocumented. The <pfkey> capability is untested but should work for
-# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
-ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
- OTbs, am, mir, msgr, xon,
- cols#80, lines#25,
- clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[k, home=\E[H,
- is2=\E[m\E[?7h, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s", rc=\E[u,
- rmam=\E[?7l, sc=\E[s, smam=\E[?7h, u6=\E[%i%d;%dR,
- u7=\E[6n, use=klone+color, use=klone+sgr,
-ansi.sys|ANSI.SYS 3.1 and later versions,
- el=\E[K, use=ansi.sys-old,
-
-#
-# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
-# This should only be used when the terminal emulator cannot redefine the keys.
-# Since redefining keys with ansi.sys also affects PC-DOS programs, the key
-# definitions must be restored. If the terminal emulator is quit while in vi
-# or others using <smkx>/<rmkx>, the keypad will not be defined as per PC-DOS.
-# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix
-# (^U and ^D are already defined for tn3270). The ESC is safe for vi but it
-# does "beep". ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab.
-# Note that <kcub1> is always BS, because PC-dos can tolerate this change.
-# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi.
-# Consequently the End keypad key could not be set (it is relatively safe and
-# actually useful because it sends ^@ O, which beeps and opens a line above).
-ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi,
- is2=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
- rmkx=\E[;71;0;71p\E[;72;0;72p\E[;73;0;73p\E[;77;0;77p\E[;80;0;80p\E[;81;0;81p\E[;82;0;82p\E[;83;0;83p,
- smkx=\E[;71;30p\E[;72;11p\E[;73;27;21p\E[;77;12p\E[;80;10p\E[;81;27;4p\E[;82;27;27;105p\E[;83;127p,
- use=ansi.sys,
-#
-# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer.
-nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS,
- dch1=\E[1P, dl1=\E[1M, ich1=\E[1@, il1=\E[1L,
- is2=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n,
- use=ansi.sys,
-#
-# See ansi.sysk and nansi.sys above.
-nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi,
- dch1=\E[1P, dl1=\E[1M, ich1=\E[1@, il1=\E[1L,
- is2=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
- use=ansi.sysk,
-
-#### ANSI console types
-#
-
-#### BeOS
-#
-# BeOS entry for Terminal program Seems to be almost ANSI
-beterm|BeOS Terminal,
- am, eo, mir, msgr, xenl, xon,
- colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
- kend=\E[4~, kf1=\E[11~, kf10=\E[20~, kf11=\E[21~,
- kf12=\E[22~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[16~, kf7=\E[17~, kf8=\E[18~, kf9=\E[19~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
- nel=^M^J, op=\E[m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
- rmkx=\E[?4l, rmso=\E[m, rmul=\E[24m, rs1=\Ec, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[%p1%{40}%+%cm, setf=\E[%p1%{30}%+%cm,
- sgr0=\E[0;10m, smir=\E[4h, smkx=\E[?4h, smso=\E[7m,
- smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
- vpa=\E[%i%p1%dd,
-
-#### Linux consoles
-#
-
-# This entry is good for the 1.2.13 or later version of the Linux console.
-#
-# ***************************************************************************
-# * *
-# * WARNING: *
-# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
-# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
-# * character. Here are the keymap replacement lines that will set this up: *
-# * *
-# keycode 15 = Tab Tab
-# alt keycode 15 = Meta_Tab
-# shift keycode 15 = F26
-# string F26 ="\033[Z"
-# * *
-# * This has to use a key slot which is unfortunate (any unused one will *
-# * do, F26 is the higher-numbered one). The change ought to be built *
-# * into the kernel tables. *
-# * *
-# ***************************************************************************
-#
-# The 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.
-#
-# ***************************************************************************
-# * *
-# * WARNING: *
-# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
-# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
-# * character. Here are the keymap replacement lines that will set this up: *
-# * *
-# keycode 15 = Tab Tab
-# alt keycode 15 = Meta_Tab
-# shift keycode 15 = F26
-# string F26 ="\033[Z"
-# * *
-# * This has to use a key slot which is unfortunate (any unused one will *
-# * do, F26 is the higher-numbered one). The change ought to be built *
-# * into the kernel tables. *
-# * *
-# ***************************************************************************
-#
-# The 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.
-#
-# 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,
- 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,
- 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,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177,
- kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- smir=\E[4h, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR,
- u7=\E[6n, u8=\E[?6c, u9=\E[c, vpa=\E[%i%p1%dd,
- use=klone+sgr, use=ecma+color,
-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,
- ccc,
- initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
- oc=\E]R, use=linux,
-# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
-linux-c|linux console 1.3.6+ with private palette for each virtual console,
- 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,
-
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-linux-nic|linux with ich/ich1 suppressed for non-curses programs,
- ich@, ich1@, use=linux,
-
-# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
-# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
-linux-koi8|linux with koi8 alternate character set,
- acsc=+\020\,\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224,
- use=linux, use=klone+koi8acs,
-
-# Another entry for KOI8-r with Qing Long's acsc.
-# (which one better complies with the standard?)
-linux-koi8r|linux with koi8-r alternate character set,
- use=linux, use=klone+koi8acs,
-
-# Entry for the latin1 and latin2 fonts
-linux-lat|linux with latin1 or latin2 alternate character set,
- acsc=+\020\,\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376,
- use=linux,
-
-#### Mach
-#
-
-# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
-mach|Mach Console,
- am, km,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U,
- kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m,
- smso=\E[7m, smul=\E[4m,
-mach-bold|Mach Console with bold instead of underline,
- rmul=\E[0m, smul=\E[1m, use=mach,
-mach-color|Mach Console with ANSI color,
- colors#8, pairs#64,
- dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
-
-#### OSF Unix
-#
-
-# OSF/1 1.1 Snapshot 2
-pmcons|pmconsole|PMAX console,
- am,
- cols#128, lines#57,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I,
- ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-
-# SCO console and SOS-Syscons console for 386bsd
-# (scoansi: had unknown capabilities
-# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
-# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
-# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
-# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
-# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
-# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
-# on the <smacs>=\E[12m -- esr)
-#
-# 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:
-# 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,
- 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,
- kf12=\E[X, kf13=\E[Y, kf15=\E[a, kf16=\E[b, kf17=\E[c,
- kf18=\E[d, kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g,
- kf22=\E[h, kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l,
- kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
- kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
- kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
- kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
- kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
- kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
- kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[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,
-
-# This actually describes the generic SVr4 display driver for Intel boxes.
-# The <dim=\E[2m> isn't documented and therefore may not be reliable.
-# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
-att6386|at386|386at|AT&T WGS 6386 console,
- am, bw, eo, xon,
- cols#80, it#8, lines#25,
- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
- clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,
- indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H,
- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
- kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@,
- knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m,
- ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
- sc=\E7,
- sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
- sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
- tbc=\E[2g, vpa=\E[%i%p1%dd, use=klone+color,
-# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
-pc6300plus|AT&T 6300 plus,
- OTbs, am, xon,
- cols#80, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
- clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
- dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
- home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J,
- invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
- nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
-#
-# I have a UNIX PC which I use as a terminal attached to my Linux PC.
-# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
-# is broken. All the special key sequences are broken, making it unusable
-# with Emacs. The problem stems from the following:
-#
-# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
-# keypad!), loadable fonts, and strange highlighting modes ("dithered"
-# half-intensity, "smeared" bold, and real strike-out, for example.) It also
-# uses resizable terminal windows, but the bundled terminal program always
-# uses an 80x24 window (and doesn't support seem to support a 132-column
-# mode.)
-#
-# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
-# library which was a superset of SVr3.5 curses (called tam, for "terminal
-# access method".) tam includes support for real, overlapping windows,
-# onscreen function key labels, and bitmap graphics. But since the primary
-# user interface on the UNIX PC was a GUI program (ua, for "user
-# assistant",) and remote administration was considered important for the
-# machine, tam also supported VT100-compatible terminals attached to the
-# serial port or used across the StarLan network. To simulate the extra keys
-# not present on a VT100, users could press ESC and a two-letter sequence,
-# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
-# however, were not the same as those sent by the actual Undo key. The
-# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
-# (If you're interested in adding some of the tam calls to ncurses, btw, I
-# have the full documentation and several programs which use tam. It also
-# used an extended terminfo format to describe key sequences, special
-# highlighting modes, etc.)
-#
-# KEYS: This means that ncurses would quite painful on the UNIX PC, since
-# there are two sequences for every key-modifier combination (local keyboard
-# sequence and remote "VT100" sequence.) But I doubt many people are trying
-# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
-# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
-# seem to have been built from the manual describing the VT100 sequences.
-# This means it doesn't work for a real live UNIX PC.
-#
-# FONTS: The UNIX PC also has a strange interpretation of "alternate
-# character set". Rather than the VT100 graphics you might expect, it allows
-# up to 8 custom fonts to be loaded at any given time. This means that
-# programs expecting VT100 graphics will usually be disappointed. For this
-# reason I have disabled the smacs/rmacs sequences, but they could easily be
-# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
-# manpage), should you wish to do so:
-#
-# SGR10 - Select font 0 - ESC [ 10 m or SO
-# SGR11 - Select font 1 - ESC [ 11 m or SI
-# SGR12 - Select font 2 - ESC [ 12 m
-# ... (etc.)
-# SGR17 - Select font 7 - ESC [ 17 m
-#
-# Graphics for line drawing are not reliably found at *any* character
-# location because the UNIX PC has dynamically reloadable fonts. I use font
-# 0 for regular text and font 1 for italics, but this is by no means
-# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
-#
-# MISC: The cursor visible/cursor invisible sequences were swapped in the
-# distributed terminfo.
-#
-# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
-# the UNIX PC terminfo entry. The modified version works great with Lynx,
-# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
-# attached by serial cable. In Emacs, even the Undo key works, and many
-# applications can now use the F1-F8 keys.
-#
-# esr's notes:
-# Terminfo entry for the AT&T Unix PC 7300
-# from escape(7) in Unix PC 7300 Manual.
-# Somewhat similar to a vt100-am (but different enough
-# to redo this from scratch.)
-#
-# /***************************************************************
-# *
-# * FONT LOADING PROGRAM FOR THE UNIX PC
-# *
-# * This routine loads a font defined in the file ALTFONT
-# * into font memory slot #1. Once the font has been loaded,
-# * it can be used as an alternative character set.
-# *
-# * The call to ioctl with the argument WIOCLFONT is the key
-# * to this routine. For more information, see window(7) in
-# * the PC 7300 documentation.
-# ***************************************************************/
-# #include <string.h> /* needed for strcpy call */
-# #include <sys/window.h> /* needed for ioctl call */
-# #define FNSIZE 60 /* font name size */
-# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */
-# /*
-# * The file /usr/lib/wfont/special.8.ft comes with the
-# * standard PC software. It defines a graphics character set
-# * similar to that of the Teletype 5425 terminal. To view
-# * this or other fonts in /usr/lib/wfont, use the command
-# * cfont <filename>. For further information on fonts see
-# * cfont(1) in the PC 7300 documentation.
-# */
-#
-# struct altfdata /* structure for alt font data */
-# {
-# short altf_slot; /* memory slot number */
-# char altf_name[FNSIZE]; /* font name (file name) */
-# };
-# ldfont()
-# {
-# int wd; /* window in which altfont will be */
-# struct altfdata altf;
-# altf.altf_slot=1;
-# strcpy(altf.altf_name,ALTFONT);
-# for (wd =1; wd < 12; wd++) {
-# ioctl(wd, WIOCLFONT,&altf);
-# }
-# }
-#
-# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry,
-# they're confirmed by the man page for the System V display---esr)
-#
-att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
- am, xon,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
- clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
- ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
- kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
- kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
- kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
- kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
- kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
- kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
- ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
- kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
- kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
- kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
- kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
- ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
- rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
- smul=\E[4m,
-
-# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
-# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes
-# for the application keypad mode. We have added iris-ansi-ap rather than
-# change the original to keypad mode.
-#
-# (iris-ansi: added rmam/smam based on init string -- esr)
-#
-# This entry, and those derived from it, is used in xwsh (also known as
-# winterm). Some capabilities that do not fit into the terminfo model
-# include the shift- and control-functionkeys:
-#
-# F1-F12 generate different codes when shift or control modifiers are used.
-# For example:
-# F1 \E[001q
-# shift F1 \E[013q
-# control-F1 \E[025q
-#
-# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
-# \EOP to \EOS. The shifted and control modifiers still do the same thing.
-#
-# The cursor keys also have different codes:
-# control-up \E[162q
-# control-down \E[165q
-# control-left \E[159q
-# control-right \E[168q
-#
-# shift-up \E[161q
-# shift-down \E[164q
-# shift-left \E[158q
-# shift-right \E[167q
-#
-# control-tab \[072q
-#
-iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
- am,
- cols#80, it#8, lines#40,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J,
- cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
- kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
- kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
- kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q,
- kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
- kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
- knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q,
- kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\,
- rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
- tbc=\E[3g,
-iris-ansi-ap|IRIS ANSI in application-keypad mode,
- is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
- kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
-
-# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
-# (T.Dickey 98/1/24)
-iris-color|xwsh|IRIX ANSI with color,
- ncv#33,
- csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
- ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m,
- rmul=\E[24m, rs1=\Ec,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sitm=\E[3m, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- use=klone+color, use=iris-ansi-ap,
-
-# The following is a version of the ibm-pc entry distributed with PC/IX,
-# (Interactive Systems' System 3 for the Big Blue), modified by Richard
-# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original,
-# (the former is untrue, and the latter failed under UCB/man); standout and
-# underline modes have been added. Note: this entry describes the "native"
-# capabilities of the PC monochrome display, without ANY emulation; most
-# communications packages (but NOT PC/IX connect) do some kind of emulation.
-pcix|PC/IX console,
- am, bw, eo,
- cols#80, lines#24,
- clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m,
-
-# (ibmpcx: this entry used to be known as ibmx.
-# It formerly included the following extension capabilities:
-# :GC=b:GL=v:GR=t:RT=^J:\
-# :GH=\E[196g:GV=\E[179g:\
-# :GU=\E[193g:GD=\E[194g:\
-# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
-# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
-# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
-# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
-# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match
-# what was there before. -- esr)
-ibmpcx|xenix|ibmx|IBM PC xenix console display,
- OTbs, am, msgr,
- cols#80, lines#25,
- clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
- kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
- kpp=\E[Z, use=klone+acs, use=klone+sgr,
-
-#### QNX
-#
-
-# QNX 4.0 Console
-# Michael's original version of this entry had <am@>, <smcup=\Ei>,
-# <rmcup=\Eh\ER>; this was so terminfo applications could write the lower
-# right corner without triggering a scroll. The ncurses terminfo library can
-# handle this case with the <ich1> capability, and prefers <am> for better
-# optimization. Bug: The <op> capability resets attributes.
-# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
-# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>)
-qnx|qnx4|qnx console,
- daisy, km, mir, msgr, xhpa, xt,
- colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8,
- acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t\303u\264v\301w\302x\263,
- bel=^G, blink=\E{, bold=\E<, civis=\Ey0, clear=\EH\EJ,
- cnorm=\Ey1, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ey2,
- dch1=\Ef, dl1=\EF, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\Ee,
- il1=\EE, ind=^J, kBEG=\377\356, kCAN=\377\263,
- kCMD=\377\267, kCPY=\377\363, kCRT=\377\364,
- kDL=\377\366, kEND=\377\301, kEOL=\377\311,
- kEXT=\377\367, kFND=\377\370, kHLP=\377\371,
- kHOM=\377\260, kIC=\377\340, kLFT=\377\264,
- kMOV=\377\306, kMSG=\377\304, kNXT=\377\272,
- kOPT=\377\372, kPRT=\377\275, kPRV=\377\262,
- kRDO=\377\315, kRES=\377\374, kRIT=\377\266,
- kRPL=\377\373, kSAV=\377\307, kSPD=\377\303,
- kUND=\377\337, kbeg=\377\300, kcan=\377\243, kcbt=\377\0,
- kclo=\377\343, kclr=\377\341, kcmd=\377\245,
- kcpy=\377\265, kcrt=\377\305, kctab=\377\237,
- kcub1=\377\244, kcud1=\377\251, kcuf1=\377\246,
- kcuu1=\377\241, kdch1=\377\254, kdl1=\377\274,
- ked=\377\314, kel=\377\310, kend=\377\250, kent=\377\320,
- kext=\377\270, kf1=\377\201, kf10=\377\212,
- kf11=\377\256, kf12=\377\257, kf13=\377\213,
- kf14=\377\214, kf15=\377\215, kf16=\377\216,
- kf17=\377\217, kf18=\377\220, kf19=\377\221,
- kf2=\377\202, kf20=\377\222, kf21=\377\223,
- kf22=\377\224, kf23=\377\333, kf24=\377\334,
- kf25=\377\225, kf26=\377\226, kf27=\377\227,
- kf28=\377\230, kf29=\377\231, kf3=\377\203,
- kf30=\377\232, kf31=\377\233, kf32=\377\234,
- kf33=\377\235, kf34=\377\236, kf35=\377\276,
- kf36=\377\277, kf37=\377\321, kf38=\377\322,
- kf39=\377\323, kf4=\377\204, kf40=\377\324,
- kf41=\377\325, kf42=\377\326, kf43=\377\327,
- kf44=\377\330, kf45=\377\331, kf46=\377\332,
- kf47=\377\316, kf48=\377\317, kf5=\377\205, kf6=\377\206,
- kf7=\377\207, kf8=\377\210, kf9=\377\211, kfnd=\377\346,
- khlp=\377\350, khome=\377\240, khts=\377\342,
- kich1=\377\253, kil1=\377\273, kind=\377\261,
- kmov=\377\351, kmrk=\377\355, kmsg=\377\345,
- knp=\377\252, knxt=\377\312, kopn=\377\357,
- kopt=\377\353, kpp=\377\242, kprt=\377\255,
- kprv=\377\302, krdo=\377\336, kref=\377\354,
- kres=\377\360, krfr=\377\347, kri=\377\271,
- krmir=\377\313, krpl=\377\362, krst=\377\352,
- ksav=\377\361, kslt=\377\247, kspd=\377\335,
- ktbc=\377\344, kund=\377\365, mvpa=\E!%p1%02d, op=\ER,
- rep=\Eg%p2%{32}%+%c%p1%c, rev=\E(, ri=\EI, rmcup=\Eh\ER,
- rmso=\E), rmul=\E], rs1=\ER, setb=\E@%p1%Pb%gb%gf%d%d,
- setf=\E@%p1%Pf%gb%gf%d%d, sgr0=\E}\E]\E>\E), smcup=\Ei,
- smso=\E(, smul=\E[,
-#
-#
-qnxt|qnxt4|QNX4 terminal,
- crxm, use=qnx4,
-#
-qnxm|QNX4 with mouse events,
- maddr#1,
- chr=\E/, cvr=\E", is1=\E/0t, mcub=\E/>1h, mcub1=\E/>7h,
- mcud=\E/>1h, mcud1=\E/>1l\E/>9h, mcuf=\E/>1h\E/>9l,
- mcuf1=\E/>7l, mcuu=\E/>6h, mcuu1=\E/>6l, rmicm=\E/>2l,
- smicm=\E/>2h, use=qnx4,
-#
-qnxw|QNX4 windows,
- xvpa, use=qnxm,
-#
-# Monochrome QNX4 terminal or console. Setting this terminal type will
-# allow an application running on a color console to behave as if it
-# were a monochrome terminal. Output will be through stdout instead of
-# console writes because the term routines will recognize that the
-# terminal name starts with 'qnxt'.
-#
-qnxtmono|Monochrome QNX4 terminal or console,
- colors@, pairs@,
- scp@, use=qnx4,
-
-# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
-# (esr: commented out <scp> and <rmcup> to avoid warnings.)
-# (TD: derive from original qnx4 entry)
-qnxt2|qnx 2.15 serial terminal,
- am,
- civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@,
- rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4,
-
-# QNX ANSI terminal definition
-qansi-g|QNX ANSI,
- am, eslok, hs, xon,
- colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~Oa,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l,
- fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
- ind=\E[S, indn=\E[%p1%dS, invis=\E[9m,
- is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0,
- kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt,
- kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h,
- kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c,
- kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa,
- kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y,
- kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA,
- kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt,
- kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx,
- kf22=\EOy, kf23=\EOz, kf24=\EOa, kf25=\E[1~, kf26=\E[2~,
- kf27=\E[3~, kf28=\E[4~, kf29=\E[5~, kf3=\EOR, kf30=\E[6~,
- kf31=\E[7~, kf32=\E[8~, kf33=\E[9~, kf34=\E[10~,
- kf35=\E[11~, kf36=\E[12~, kf37=\E[17~, kf38=\E[18~,
- kf39=\E[19~, kf4=\EOS, kf40=\E[20~, kf41=\E[21~,
- kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~,
- kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh,
- khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a,
- kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo,
- kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg,
- kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T,
- ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\E[T,
- rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmso=\E[27m,
- rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;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,
-#
-qansi|QNX ansi with console writes,
- daisy, xhpa, use=qansi-g,
-#
-qansi-t|QNX ansi without console writes,
- crxm, use=qansi,
-#
-qansi-m|QNX ansi with mouse,
- maddr#1,
- chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h,
- mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l,
- mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l,
- smicm=\E[>2h, use=qansi,
-#
-qansi-w|QNX ansi for windows,
- xvpa, use=qansi-m,
-
-#### NetBSD consoles
-#
-# pcvt termcap database entries (corresponding to release 3.31)
-# Author's last edit-date: [Fri Sep 15 20:29:10 1995]
-#
-# (For the terminfo master file, I translated these into terminfo syntax.
-# Then I dropped all the pseudo-HP entries. we don't want and can't use
-# the :Xs: flag. Then I split :is: into a size-independent <is1> and a
-# size-dependent <is2>. Finally, I added <rmam>/<smam> -- esr)
-
-# NOTE: <ich1> has been taken out of this entry. for reference, it should
-# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
-# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583)
-pcvtXX|pcvt vt200 emulator (DEC VT220),
- am, km, mir, msgr, xenl,
- it#8, vt#3,
- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS,
- is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=\177,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
- khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~,
- nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100,
- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
-# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
-# 50 lines entries; 80 columns
-pcvt25|dec vt220 emulation with 25 lines,
- cols#80, lines#25,
- is2=\E[1;25r\E[25;1H, use=pcvtXX,
-pcvt28|dec vt220 emulation with 28 lines,
- cols#80, lines#28,
- is2=\E[1;28r\E[28;1H, use=pcvtXX,
-pcvt35|dec vt220 emulation with 35 lines,
- cols#80, lines#35,
- is2=\E[1;35r\E[35;1H, use=pcvtXX,
-pcvt40|dec vt220 emulation with 40 lines,
- cols#80, lines#40,
- is2=\E[1;40r\E[40;1H, use=pcvtXX,
-pcvt43|dec vt220 emulation with 43 lines,
- cols#80, lines#43,
- is2=\E[1;43r\E[43;1H, use=pcvtXX,
-pcvt50|dec vt220 emulation with 50 lines,
- cols#80, lines#50,
- is2=\E[1;50r\E[50;1H, use=pcvtXX,
-
-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
-# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
-# 50 lines entries; 132 columns
-pcvt25w|dec vt220 emulation with 25 lines and 132 cols,
- cols#132, lines#25,
- is2=\E[1;25r\E[25;1H, use=pcvtXX,
-pcvt28w|dec vt220 emulation with 28 lines and 132 cols,
- cols#132, lines#28,
- is2=\E[1;28r\E[28;1H, use=pcvtXX,
-pcvt35w|dec vt220 emulation with 35 lines and 132 cols,
- cols#132, lines#35,
- is2=\E[1;35r\E[35;1H, use=pcvtXX,
-pcvt40w|dec vt220 emulation with 40 lines and 132 cols,
- cols#132, lines#40,
- is2=\E[1;40r\E[40;1H, use=pcvtXX,
-pcvt43w|dec vt220 emulation with 43 lines and 132 cols,
- cols#132, lines#43,
- is2=\E[1;43r\E[43;1H, use=pcvtXX,
-pcvt50w|dec vt220 emulation with 50 lines and 132 cols,
- cols#132, lines#50,
- is2=\E[1;50r\E[50;1H, use=pcvtXX,
-
-# Terminfo entries to enable the use of the ncurses library in colour on a
-# NetBSD-arm32 console (only tested on a RiscPC).
-# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
-# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
-# typo in invis - TD
-arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480),
- am, bce, msgr, xenl, xon,
- cols#80, it#8, lines#30,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J,
- invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H,
- kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x,
- kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v,
- kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[6m$<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%;,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr,
- use=klone+color,
-
-arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768),
- cols#132, lines#50, use=arm100,
-
-# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
-# manufactured by Sharp for the Japenese market.
-# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
-x68k|x68k-ite|NetBSD/x68k ITE,
- cols#96, lines#32,
- kclr=\E[9~, khlp=\E[28~, use=vt220,
-
-# <tv@pobox.com>:
-# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
-#
-# (still unfinished, but good enough so far.)
-ofcons,
- bw,
- cols#80, lines#30,
- bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
- cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
- cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
- dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K,
- flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL,
- il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D,
- kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P,
- kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W,
- kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
- kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
- rmso=\2330m, rmul=\2330m, sgr0=\2330m,
-
-# NetBSD "wscons" emulator in vt220 mode
-# These are micro-minimal and probably need to be redone for real
-# after the manner of the pcvt entries.
-wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
- cols#80, lines#25, use=vt220,
-
-wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
- km,
- cols#80, lines#25, use=vt220,
-
-# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
-# DECstation/pmax.
-rcons|BSD rasterconsole,
- use=sun-il,
-# Color version of above. Color currenly only provided by NetBSD.
-rcons-color|BSD rasterconsole with ANSI color,
- bce,
- colors#8, pairs#64,
- op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons,
-
-# mgterm -- MGL/MGL2, MobileGear Graphic Library
-# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
-# -- the setf/setb are probably incorrect, more likely setaf/setab -TD
-# -- compare with cons25w
-mgterm,
- OTbs, OTpt, am, bce, bw, eo, km, msgr, npc,
- colors#8, cols#80, it#8, lines#18, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N,
- kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
- kf9=\E[U, khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I,
- nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
- rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, setb=\E[4%p1%dm,
- setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
-
-#### FreeBSD console entries
-#
-# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
-# Andrey Chernov maintains the FreeBSD termcap distributions.
-#
-# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade
-# or comment out the :cb: capability in the console entry.
-#
-# Alexander Lukyanov reports:
-# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
-# Now el1 clears not only to the line beginning, but also a large chunk
-# of previous line. But there is another bug - ech does not work at all.
-#
-
-# for syscons
-# common entry without semigraphics
-# Bug: The <op> capability resets attributes.
-# Bug? The ech and el1 attributes appear to move the cursor in some cases; for
-# instance el1 does if the cursor is moved to the right margin first. Removed
-# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K)
-#
-# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
-# Note that this disables standout with color.
-cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
- am, bce, bw, eo, msgr, npc,
- colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
- cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, kb2=\E[E,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V,
- kf11=\E[W, kf12=\E[X, 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,
-cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
- acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
- use=cons25w,
-cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
- colors@, pairs@,
- bold@, dim@, op@, rmul=\E[m, setab@, setaf@, smul=\E[4m,
- use=cons25,
-cons30|ansi80x30|freebsd console (30-line ansi mode),
- lines#30, use=cons25,
-cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
- lines#30, use=cons25-m,
-cons43|ansi80x43|freebsd console (43-line ansi mode),
- lines#43, use=cons25,
-cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
- lines#43, use=cons25-m,
-cons50|ansil|ansi80x50|freebsd console (50-line ansi mode),
- lines#50, use=cons25,
-cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode),
- lines#50, use=cons25-m,
-cons60|ansi80x60|freebsd console (60-line ansi mode),
- lines#60, use=cons25,
-cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
- lines#60, use=cons25-m,
-cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
- acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225,
- use=cons25w,
-cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
- colors@, pairs@,
- op@, rmul=\E[m, setab@, setaf@, smul=\E[4m, use=cons25r,
-cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
- lines#50, use=cons25r,
-cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
- lines#50, use=cons25r-m,
-cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines),
- lines#60, use=cons25r,
-cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono),
- lines#60, use=cons25r-m,
-# ISO 8859-1 FreeBSD console
-cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
- acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237,
- use=cons25w,
-cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
- colors@, pairs@,
- bold@, dim@, op@, rmul=\E[m, setab@, setaf@, smul=\E[4m,
- use=cons25l1,
-cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
- lines#50, use=cons25l1,
-cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
- lines#50, use=cons25l1-m,
-cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines),
- lines#60, use=cons25l1,
-cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
- lines#60, use=cons25l1-m,
-
-#### 386BSD and BSD/OS Consoles
-#
-
-# This was the original 386BSD console entry (I think).
-# Some places it's named oldpc3|oldibmpc3.
-# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
-origpc3|origibmpc3|IBM PC 386BSD Console,
- OTbs, am, bw, eo, xon,
- cols#80, lines#25,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x,
- rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x,
- smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x,
-
-# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
-oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
- OTbs, km,
- lines#25,
- bel=^G, bold=\E[=15F, cr=^M, cud1=^J, dim=\E[=8F, dl1=\E[M,
- ht=^I, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F,
- knp=\E[G, kpp=\E[I, nel=^M^J, sgr0=\E[=R,
-
-# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
-# Note, the emulator supports many of the additional console features
-# listed in the iBCS2 (e.g. character-set selection) though not all
-# are described here. This entry really ought to be upgraded.
-# Also note, the console will also work with fewer lines after doing
-# "stty rows NN", e.g. to use 24 lines.
-# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
-# Bug: The <op> capability resets attributes.
-bsdos-pc|IBM PC BSD/OS Console,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- use=bsdos-pc-nobold,
-
-bsdos-pc-nobold|BSD/OS PC console w/o bold,
- use=klone+color, use=bsdos-pc-m,
-
-bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono,
- OTbs, am, eo, km, xon,
- cols#80, it#8, lines#25,
- bel=^G, clear=\Ec, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
- kll=\E[F, knp=\E[G, kpp=\E[I, nel=^M^J, rc=\E8, sc=\E7,
- sgr=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;,
- use=klone+sgr,
-
-# Old names for BSD/OS PC console used in releases before 4.1.
-pc3|BSD/OS on the PC Console,
- use=bsdos-pc-nobold,
-ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline,
- use=bsdos-pc,
-
-# BSD/OS on the SPARC
-bsdos-sparc|Sun SPARC BSD/OS Console,
- use=sun,
-
-# BSD/OS on the PowerPC
-bsdos-ppc|PowerPC BSD/OS Console,
- use=bsdos-pc,
-
-#### DEC VT52
-# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
-vt52|dec vt52,
- OTbs,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-
-#### DEC VT100 and compatibles
-#
-# DEC terminals from the vt100 forward are collected here. Older DEC terminals
-# and micro consoles can be found in the `obsolete' section. More details on
-# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
-# found near the end of this file.
-#
-# Except where noted, these entries are DEC's official terminfos.
-# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
-# Engineering for more information. Updated terminfos and termcaps
-# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
-#
-# In October 1995 DEC sold its terminals business, including the VT and Dorio
-# line and trademark, to SunRiver Data Systems. SunRiver has since changed
-# its name to Boundless Technologies; see http://www.boundless.com.
-#
-
-# NOTE: Any VT100 emulation, whether in hardware or software, almost
-# certainly includes what DEC called the `Level 1 editing extension' codes;
-# only the very oldest VT100s lacked these and there probably aren't any of
-# those left alive. To capture these, use one of the VT102 entries.
-#
-# Note that the <xenl> glitch in vt100 is not quite the same as on the Concept,
-# since the cursor is left in a different position while in the
-# weird state (concept at beginning of next line, vt100 at end
-# of this line) so all versions of vi before 3.7 don't handle
-# <xenl> right on vt100. The correct way to handle <xenl> is when
-# you output the char in column 80, immediately output CR LF
-# and then assume you are in column 1 of the next line. If <xenl>
-# is on, am should be on too.
-#
-# I assume you have smooth scroll off or are at a slow enough baud
-# rate that it doesn't matter (1200? or less). Also this assumes
-# that you set auto-nl to "on", if you set it off use vt100-nam
-# below.
-#
-# The padding requirements listed here are guesses. It is strongly
-# recommended that xon/xoff be enabled, as this is assumed here.
-#
-# The vt100 uses <rs2> and <rf> rather than <is2>/<tbc>/<hts> because the
-# tab settings are in non-volatile memory and don't need to be
-# reset upon login. Also setting the number of columns glitches
-# the screen annoyingly. You can type "reset" to get them set.
-#
-# The VT100 series terminals have cursor ("arrows") keys which can operate
-# in two different modes: Cursor Mode and Application Mode. Cursor Mode
-# is the reset state, and is assumed to be the normal state. Application
-# Mode is the "set" state. In Cursor Mode, the cursor keys transmit
-# "Esc [ {code}" sequences, conforming to ANSI standards. In Application
-# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode
-# was provided primarily as an aid to the porting of VT52 applications. It is
-# assumed that the cursor keys are normally in Cursor Mode, and expected that
-# applications such as vi will always transmit the <smkx> string. Therefore,
-# the definitions for the cursor keys are made to match what the terminal
-# transmits after the <smkx> string is transmitted. If the <smkx> string
-# is a null string or is not defined, then cursor keys are assumed to be in
-# "Cursor Mode", and the cursor keys definitions should match that assumption,
-# else the application may fail. It is also expected that applications will
-# always transmit the <rmkx> string to the terminal before they exit.
-#
-# The VT100 series terminals have an auxiliary keypad, commonly referred to as
-# the "Numeric Keypad", because it is a cluster of numeric and function keys.
-# The Numeric Keypad which can operate in two different modes: Numeric Mode and
-# Application Mode. Numeric Mode is the reset state, and is assumed to be
-# the normal state. Application Mode is the "set" state. In Numeric Mode,
-# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
-# Enter key transmits the same as the Return key (Note: the Return key
-# can be configured to send either LF (\015) or CR LF). In Application Mode,
-# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys
-# always send the same "Esc O {code}" sequences. It is assumed that the keypad
-# is normally in Numeric Mode. If an application requires that the keypad be
-# in Application Mode then it is expected that the user, or the application,
-# will set the TERM environment variable to point to a terminfo entry which has
-# defined the <smkx> string to include the codes that switch the keypad into
-# Application Mode, and the terminfo entry will also define function key
-# fields to match the Application Mode control codes. If the <smkx> string
-# is a null string or is not defined, then the keypad is assumed to be in
-# Numeric Mode. If the <smkx> string switches the keypad into Application
-# Mode, it is expected that the <rmkx> string will contain the control codes
-# necessary to reset the keypad to "Normal" mode, and it is also expected that
-# applications which transmit the <smkx> string will also always transmit the
-# <rmkx> string to the terminal before they exit.
-#
-# Here's a diagram of the VT100 keypad keys with their bindings.
-# The top line is the name of the key (some DEC keyboards have the keys
-# labelled somewhat differently, like GOLD instead of PF1, but this is
-# the most "official" name). The second line is the escape sequence it
-# generates in Application Keypad mode (where "$" means the ESC
-# character). The third line contains two items, first the mapping of
-# the key in terminfo, and then in termcap.
-# _______________________________________
-# | PF1 | PF2 | PF3 | PF4 |
-# | $OP | $OQ | $OR | $OS |
-# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
-# | 7 8 9 - |
-# | $Ow | $Ox | $Oy | $Om |
-# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________|
-# | 4 | 5 | 6 | , |
-# | $Ot | $Ou | $Ov | $Ol |
-# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_|
-# | 1 | 2 | 3 | |
-# | $Oq | $Or | $Os | enter |
-# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM |
-# | 0 | . | |
-# | $Op | $On | |
-# |___kc1_______K4____|_kc3__K5_|_kent_@8_|
-#
-# And here, for those of you with orphaned VT100s lacking documentation, is
-# a description of the soft switches invoked when you do `Set Up'.
-#
-# Scroll 0-Jump Shifted 3 0-#
-# | 1-Smooth | 1-British pound sign
-# | Autorepeat 0-Off | Wrap Around 0-Off
-# | | 1-On | | 1-On
-# | | Screen 0-Dark Bkg | | New Line 0-Off
-# | | | 1-Light Bkg | | | 1-On
-# | | | Cursor 0-Underline | | | Interlace 0-Off
-# | | | | 1-Block | | | | 1-On
-# | | | | | | | |
-# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings
-# | | | | | | | |
-# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz
-# | | | 1-On | | | 1-50 Hz
-# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits
-# | | 1-ANSI | | 1-8 Bits
-# | Keyclick 0-Off | Parity 0-Off
-# | 1-On | 1-On
-# Margin Bell 0-Off Parity Sense 0-Odd
-# 1-On 1-Even
-#
-# The following SET-UP modes are assumed for normal operation:
-# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS
-# WRAP_AROUND_ON JUMP_SCROLL_OFF
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements; I recommend
-# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_#
-# Unless you have a graphics add-on such as Digital Engineering's VT640
-# (and even then, whenever it can be arranged!) you should set
-# INTERLACE_OFF
-#
-# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
-vt100|vt100-am|dec vt100 (w/advanced video),
- OTbs, am, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, ka1=\EOq,
- ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy,
- kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
- kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, 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%;,
- 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,
- am@, xenl@, use=vt100-am,
-vt100-vb|dec vt100 (w/advanced video) & no beep,
- bel@, flash=\E[?5h\E[?5l, use=vt100,
-
-# Ordinary vt100 in 132 column ("wide") mode.
-vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video),
- cols#132, lines#24,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am,
-vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin),
- cols#132, lines#14, vt@,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam,
-
-# vt100 with no advanced video.
-vt100-nav|vt100 without advanced video option,
- xmc#1,
- blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m,
- smul@, use=vt100,
-vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option),
- cols#132, lines#14, use=vt100-nav,
-
-# vt100 with one of the 24 lines used as a status line.
-# We put the status line on the top.
-vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline,
- eslok, hs,
- lines#23,
- clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr,
- cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, dsl=\E7\E[1;24r\E8,
- fsl=\E8, home=\E[2;1H, is2=\E7\E[2;24r\E8,
- tsl=\E7\E[1;%p1%dH\E[1K, use=vt100-am,
-
-# Status line at bottom.
-# Clearing the screen will clobber status line.
-vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
- eslok, hs,
- lines#23,
- dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H,
- tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am,
-
-# Most of the `vt100' emulators out there actually emulate a vt102
-# This entry (or vt102-nsgr) is probably the right thing to use for
-# these.
-vt102|dec vt102,
- mir,
- dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
- use=vt100,
-vt102-w|dec vt102 in wide mode,
- cols#132,
- rs3=\E[?3h, use=vt102,
-
-# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
-# fail to interpret the ^O and ^N escapes properly. Symptom: the <sgr0>
-# string in the canonical vt100 entry above leaves the screen littered
-# with little snowflake or star characters (IBM PC ROM character \017 = ^O)
-# after highlight turnoffs. This entry should fix that, and even leave
-# ACS support working, at the cost of making multiple-highlight changes
-# slightly more expensive.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
-vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes),
- sgr@, sgr0=\E[m, use=vt102,
-
-# VT125 Graphics CRT. Clear screen also erases graphics
-vt125|vt125 graphics terminal,
- clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
-
-# This isn't a DEC entry, it came from University of Wisconsin.
-# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr)
-vt131|dec vt131,
- OTbs, am, xenl,
- cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>,
- rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>,
- rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-
-# vt132 - like vt100 but slower and has ins/del line and such.
-# I'm told that <smir>/<rmir> are backwards in the terminal from the
-# manual and from the ANSI standard, this describes the actual
-# terminal. I've never actually used a vt132 myself, so this
-# is untested.
-#
-vt132|DEC vt132,
- xenl,
- dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
- ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100,
-
-# This vt220 description maps F5--F9 to the second block of function keys
-# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict
-# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping.
-# PF1--PF4 are used as F1--F4.
-#
-vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
- OTbs, OTpt, am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- OTnl=^J,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
- clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\EOP,
- kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rc=\E8,
- rev=\E[7m$<2>, rf=/usr/share/tabset/vt100,
- ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-# A much better description of the VT200/220; used to be vt220-8
-# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
-# designation to accommodate bug in pcvt -TD
-vt220|vt200|dec vt220,
- OTbs, am, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~,
- kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i,
- mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=\E(0$<2>,
- smam=\E[?7h, smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-vt220-w|vt200-w|DEC vt220 in wide mode,
- cols#132,
- rs3=\E[?3h, use=vt220,
-vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
- OTbs, am, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M,
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
- cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0,
- flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
- ich=\233%p1%d@, if=/usr/share/tabset/vt100,
- il=\233%p1%dL, il1=\233L, ind=\ED,
- is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
- kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~,
- kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS,
- kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~,
- kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
- knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
- nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l,
- rmir=\2334l, rmso=\23327m, rmul=\23324m, rs1=\233?3l,
- sc=\E7, sgr0=\233m, smacs=^N, smam=\233?7h, smir=\2334h,
- smso=\2337m, smul=\2334m, tbc=\2333g,
-
-#
-# vt220d:
-# This vt220 description regards F6--F10 as the second block of function keys
-# at the top of the keyboard. This mapping follows the description given
-# in the VT220 Programmer Reference Manual and agrees with the labeling
-# on some terminals that emulate the vt220. There is no support for an F5.
-# See vt220 for an alternate mapping.
-#
-vt220d|DEC VT220 in vt100 mode with DEC function key labeling,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old,
-
-vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins,
- am@,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
-
-# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
-# (not an official DEC entry!)
-# The problem with real vt220 terminals is they don't send escapes when in
-# in vt220 mode. This can be gotten around two ways. 1> don't send
-# escapes or 2> put the vt220 into vt100 mode and use all the nifty
-# features of vt100 advanced video which it then has.
-#
-# This entry takes the view of putting a vt220 into vt100 mode so
-# you can use the escape key in emacs and everything else which needs it.
-#
-# You probably don't want to use this on a VMS machine since VMS will think
-# it has a vt220 and will get fouled up coming out of emacs
-#
-# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
-# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
-vt200-js|vt220-js|dec vt200 series with jump scroll,
- am,
- cols#80,
- bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il1=\E[L, ind=\ED,
- is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
- rf=/usr/lib/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m,
-
-# This was DEC's vt320. Use the purpose-built one below instead
-#vt320|DEC VT320 in vt100 emulation mode,
-# use=vt220,
-
-#
-# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam.
-#
-vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
- am@,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
-
-# These entries are not DEC's official ones, they were purpose-built for the
-# VT320. Here are the designer's notes:
-# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to
-# 'Erase to End of Field'... since nothing seems to use 'end' anyways...
-# khome is Home on a PC kbd. Actually 'FIND' on a VT.
-# Things that use <knxt> usually use tab anyways... and things that don't use
-# tab usually use <knxt> instead...
-# kprv is same as tab - Backtab is useless...
-# I left out <sgr> because of its RIDICULOUS complexity,
-# and the resulting fact that it causes the termcap translation of the entry
-# to SMASH the 1k-barrier...
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-# (vt320: uncommented <fsl> --esr)
-vt320|vt300|dec vt320 7 bit terminal,
- am, eslok, hs, mir, msgr, xenl,
- cols#80, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=\177, kc1=\EOq, kc3=\EOs,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kel=\E[4~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I, kpp=\E[5~,
- kprv=\E[Z, kslt=\E[4~, mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i,
- nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt300,
- ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[1$}\E[H\E[K,
-vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
- am@,
- is2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- use=vt320,
-# We have to init 132-col mode, not 80-col mode.
-vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
- cols#132, wsl#132,
- is2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- use=vt320,
-vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
- am@,
- is2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- use=vt320-w,
-
-# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
-# which are pretty much a superset of the VT320. They have the
-# host writable status line, yet another different DRCS matrix size,
-# and such, but they add the DEC Technical character set, Multiple text
-# pages, selectable length pages, and the like. The difference between
-# the vt330 and vt340 is that the latter has only 2 planes and a monochrome
-# monitor, the former has 4 planes and a color monitor. These terminals
-# support VT131 and ANSI block mode, but as with much of these things,
-# termcap/terminfo doesn't deal with these features.
-#
-# Note that this entry is are set up in what was the standard way for GNU
-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
-# keys were switched into application mode at the same time the numeric pad
-# is switched into application mode. This changes the definitions of the
-# arrow keys. Emacs v19 is smarter and mines its keys directly out of
-# your termcap or terminfo entry,
-#
-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
-# (vt340: string capability "sb=\E[M" corrected to "sr";
-# also, added <rmam>/<smam> based on the init string -- esr)
-vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
- cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[?25h, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[?5l$<200/>, fsl=\E[$}, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
- smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
-
-# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
-# (originally written with vt420 as its primary name, and usable for it).
-#
-# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple
-# text pages and long text pages with selectable length of the vt340, along
-# with left and right margins, rectangular area text copy, fill, and erase
-# operations, selected region character attribute change operations,
-# page memory and rectangle checksums, insert/delete column, reception
-# macros, and other features too numerous to remember right now. TERMCAP
-# can only take advantage of a few of these added features.
-#
-# Note that this entry is are set up in what was the standard way for GNU
-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
-# keys were switched into application mode at the same time the numeric pad
-# is switched into application mode. This changes the definitions of the
-# arrow keys. Emacs v19 is smarter and mines its keys directly out of
-# your termcap entry,
-#
-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
-# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
-# also, added <rmam>/<smam> based on the init string -- esr)
-vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J$<10/>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
- el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7, sgr0=\E[m,
- smacs=^N, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}\E[1;%dH,
-
-# (vt420: I removed <kf0>, it collided with <kf10>. I also restored
-# a missing <sc> -- esr)
-vt420|DEC VT420,
- am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, rc=\E8, rev=\E[7m$<2>,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smkx=\E=, smso=\E[7m, smul=\E[4m,
-
-#
-# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
-# takes two parameters, the key and the string. Translating the key is
-# straightforward (keys 1-5 are not defined on real terminals, though some
-# emulators define these):
-#
-# if (key < 16) then value = key;
-# else if (key < 21) then value = key + 1;
-# else if (key < 25) then value = key + 2;
-# else if (key < 27) then value = key + 3;
-# else if (key < 30) then value = key + 4;
-# else value = key + 5;
-#
-# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
-# There's no provision in terminfo for emitting a string in this format, so the
-# application has to know it.
-#
-vt420pc|DEC VT420 w/PC keyboard,
- kdch1=\177, kend=\E[4~, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[11;2~, kf14=\E[12;2~,
- kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~,
- kf18=\E[17;2~, kf19=\E[18;2~, kf2=\E[12~, kf20=\E[19;2~,
- kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
- kf24=\E[24;2~, kf25=\E[23~, kf26=\E[24~, kf27=\E[25~,
- kf28=\E[26~, kf29=\E[28~, kf3=\E[13~, kf30=\E[29~,
- kf31=\E[31~, kf32=\E[32~, kf33=\E[33~, kf34=\E[34~,
- kf35=\E[35~, kf36=\E[36~, kf37=\E[23;2~, kf38=\E[24;2~,
- kf39=\E[25;2~, kf4=\E[14~, kf40=\E[26;2~, kf41=\E[28;2~,
- kf42=\E[29;2~, kf43=\E[31;2~, kf44=\E[32;2~,
- kf45=\E[33;2~, kf46=\E[34;2~, kf47=\E[35;2~,
- kf48=\E[36;2~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[H,
- pctrm=USR_TERM\:vt420pcdos\:,
- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
- use=vt420,
-
-vt420pcdos|DEC VT420 w/PC for DOS Merge,
- lines#25,
- dispc=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;,
- pctrm@,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr@,
- sgr0=\E[m, smsc=\E[?1;2r\E[34h, use=vt420pc,
-
-vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys,
- kdch1=\177, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, lf1=\EOP, lf2=\EOQ, lf3=\EOR, lf4=\EOS,
- use=vt420,
-
-vt510|DEC VT510,
- use=vt420,
-vt510pc|DEC VT510 w/PC keyboard,
- use=vt420pc,
-vt510pcdos|DEC VT510 w/PC for DOS Merge,
- use=vt420pcdos,
-
-# VT520/VT525
-#
-# The VT520 is a monochrome text terminal capable of managing up to
-# four independent sessions in the terminal. It has multiple ANSI
-# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console)
-# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950,
-# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only.
-#
-# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or
-# [Alt]/[Print Screen] depending upon which keyboard and which
-# terminal mode is being used. If Set-Up has been disabled or
-# assigned to an unknown key, Set-Up may be entered by pressing
-# [F3] as the first key after power up, regardless of keyboard type.
-# (vt520: I added <rmam>/<smam> based on the init string, also <sc> -- esr)
-vt520|DEC VT520,
- am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~,
- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-# (vt525: I added <rmam>/<smam> based on the init string;
-# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr)
-vt525|DEC VT525,
- am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~,
- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-#### VT100 emulations
-#
-
-# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows
-# (the best Windows telnet as of September 1995) presents the name `dec-vt100'
-# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us
-# that this works best with a stock vt100 entry.
-dec-vt100|EWAN telnet's vt100 emulation,
- use=vt100,
-
-# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996
-dec-vt220|DOS tnvt200 terminal emulator,
- am@, use=vt220,
-
-# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to
-# anyone who needs PC VT340 emulation. (or anything below that level, for
-# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
-# RDBM systems, it includes ReGIS and SiXel support! I'm impressed...
-# I can send the address if requested.
-# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-z340|zstem vt340 terminal emulator 132col 42line,
- lines#42,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
- use=vt320-w,
-z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins),
- am@,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
- use=z340,
-
-# CRT is shareware. It implements some xterm features, including mouse.
-crt|crt-vt220|CRT 2.3 emulating VT220,
- bce, msgr,
- ncv@,
- hts=\EH, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- use=vt220, use=ecma+color,
-
-# 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:
-#
-# - Serial port connections.
-# - TCP/IP (telnet) connections.
-# - VT100 emulation, and selected VT200/300 emulation.
-# - TEK4010 emulation.
-# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and
-# Quick-VAN).
-# - Scripts using the "Tera Term Language".
-# - Japanese and Russian character sets.
-#
-# The program does not come with terminfo or termcap entries. However, the
-# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
-# vt52 or doublesize character support; blinking is done with color). Besides
-# the HPA, VPA extensions it also implements CPL and CNL.
-#
-# All of the function keys can be remapped. This description shows the default
-# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
-# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad
-# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
-# kfnd Insert
-# kslt Delete
-# kich1 Home
-# kdch1 PageUp
-# kpp End
-# knp PageDown
-#
-# ANSI colors are implemented, but cannot be combined with video attributes
-# except for reverse.
-#
-# No fonts are supplied with the program, so the acsc string is chosen to
-# correspond with the default Microsoft terminal font.
-#
-# Tera Term recognizes some xterm sequences, including those for setting and
-# retrieving the window title, and for setting the window size (i.e., using
-# "resize -s"), though it does not pass SIGWINCH to the application if the
-# user resizes the window with the mouse.
-teraterm|Tera Term Pro,
- km, xon@,
- ncv#43, vt@,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
- cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG,
- il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM,
- rmso=\E[27m, rmul=\E[24m, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd, use=klone+color, use=vt100,
-
-# Tested with WinNT 4.0, the telnet application assumes the screensize is
-# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters.
-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,
-
-#### X terminal emulators
-#
-# You can add the following line to your .Xdefaults to change the terminal type
-# set by the xterms you start up to my-xterm:
-#
-# *termName: my-xterm
-#
-# System administrators can change the default entry for xterm instances
-# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either
-# case, xterm will detect and reject an invalid terminal type, falling back
-# to the default of xterm.
-#
-
-# X10/6.6 11/7/86, minus alternate screen, plus (csr)
-# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
-# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
-# as these seem not to work -- esr)
-x10term|vs100-x10|xterm terminal emulator (X10 window system),
- OTbs, am, km, mir, msgr, xenl, xon,
- cols#80, it#8, lines#65,
- bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
- il1=\E[L, ind=^J, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m,
-# Compatible with the R5 xterm
-# (from the XFree86 3.2 distribution, <blink=@> removed)
-# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
-# corrected typos in rs2 string - TD
-# added u6-u9 -TD
-xterm-r5|xterm R5 version,
- OTbs, am, km, msgr, xenl,
- cols#80, it#8, lines#24,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
- kdl1=\E[31~, kel=\E[8~, kend=\E[4~, kf0=\EOq, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
- kil1=\E[30~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8,
- rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m,
- rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H,
- sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
- u8=\E[?1;2c, u9=\E[c,
-# Compatible with the R6 xterm
-# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed)
-# added khome/kend, hts based on the R6 xterm code - TD
-# (khome/kend do not actually work in X11R5 or X11R6, but many people use this
-# for compatibility with other emulators).
-xterm-r6|xterm-old|xterm X11R6 version,
- OTbs, am, km, mir, msgr, xenl,
- cols#80, it#8, lines#24,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=^J,
- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
- sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
-# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
-# The name has been changed and some aliases have been removed.
-xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
- OTbs, am, bce, km, mir, msgr, xenl,
- cols#80, it#8, lines#24, ncv@,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J,
- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbeg=\EOE, kbs=^H, kc1=\EOq,
- kc3=\EOs, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\177, kend=\EOF, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El,
- memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=^O,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd, use=ecma+color,
-
-# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
-# codes for F1-F4 except while in VT220 mode.
-xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System),
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32,
-
-# This version was released in XFree86 3.3.3 (November 1998).
-# Besides providing printer support, it exploits a new feature that allows
-# xterm to use terminfo-based descriptions with the titeInhibit resource.
-# -- the distribution contained incorrect khome/kend values -TD
-xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
- mc5i,
- blink=\E[5m, ich1@, invis=\E[8m,
- is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l,
- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33,
-
-# This version was released in XFree86 4.0.
-xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
- npc,
- kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~,
- kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@,
- ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF,
- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~,
- kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
- kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P,
- kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~,
- kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
- kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
- kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l,
- sgr=\E[0%?%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- smcup=\E[?1049h, use=xterm-xf86-v333,
-
-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,
- kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\EO2P, kf14=\EO2Q,
- kf15=\EO2R, kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~,
- kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
- kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P,
- kf26=\EO5Q, kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~,
- kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
- kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
- kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf5=\E[15~,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\EOH,
- kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- use=xterm-basic,
-#
-# This chunk is used for building the VT220/Sun/PC keyboard variants.
-xterm-basic|xterm terminal emulator - common (XFree86),
- am, bce, km, mc5i, mir, msgr, xenl,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
- kdch1=\E[3~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
- memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
- rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?1049h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd,
-
-# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
-xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
- rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
-
-# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
-xterm-16color|xterm with 16 colors like aixterm,
- 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,
-
-# These variants of XFree86 3.9.16 xterm are built as a configure option.
-xterm-256color|xterm with 256 colors,
- ccc,
- colors#256, ncv#32, pairs#256,
- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
- setab=\E[48;5;%p1%dm, setaf=\E[38;5;%p1%dm,
- setb=\E[48;5;%p1%dm, setf=\E[38;5;%p1%dm,
- use=xterm-xfree86,
-xterm-88color|xterm with 88 colors,
- colors#88, pairs#88, use=xterm-256color,
-
-# This is another variant, for XFree86 4.0 xterm (T.Dickey)
-# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
-# To use it, your decTerminalID resource must be set to 200 or above.
-#
-# HTS \E H \210
-# RI \E M \215
-# SS3 \E O \217
-# CSI \E [ \233
-#
-xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
- OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
- civis=\233?25l, clear=\233H\2332J, cnorm=\233?25h, cr=^M,
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
- cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
- enacs=\E(B\E)0, flash=\233?5h$<100/>\233?5l,
- home=\233H, hpa=\233%i%p1%dG, ht=^I, hts=\210,
- ich=\233%p1%d@, il=\233%p1%dL, il1=\233L, ind=^J,
- invis=\2338m,
- is2=\E7\E G\233r\233m\233?7h\233?1;3;4;6l\2334l\E8\E>,
- ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
- kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
- kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
- kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
- kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
- kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~,
- kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~,
- kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
- knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
- meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
- ri=\215, rmacs=^O, rmam=\233?7l, rmcup=\233?1049l,
- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
- rs1=\Ec,
- rs2=\E[62"p\E G\E7\233r\E8\233m\233?7h\233?1;3;4;6l\2334l\E>,
- sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
- setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\2330%?%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\233m^O, smacs=^N, smam=\233?7h, smcup=\233?1049h,
- smir=\2334h, smkx=\233?1h\E=, smso=\2337m, smul=\2334m,
- tbc=\2333g, u6=\233[%i%d;%dR, u7=\E[6n, u8=\233[?1;2c,
- u9=\E[c, vpa=\233%i%p1%dd,
-
-xterm-hp|XFree86 xterm with hpterm function keys,
- kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es,
- kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ,
- knp=\ES, kpp=\ET, use=xterm-basic,
-
-xterm-sco|XFree86 xterm with SCO function keys,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y,
- kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d, kf19=\E[e,
- kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h, kf23=\E[i,
- kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m, kf28=\E[n,
- kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q, kf32=\E[r,
- kf33=\E[s, kf34=\E[t, kf35=\E[u, 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, use=xterm-basic,
-
-# The xterm-xfree86 description has all of the features, but is not completely
-# compatible with vt220. If you are using a Sun or PC keyboard, set the
-# sunKeyboard resource to true:
-# + maps the editing keypad
-# + interprets control-function-key as a second array of keys, so a
-# 12-fkey keyboard can support vt220's 20-fkeys.
-# + maps numeric keypad "+" to ",".
-# + uses DEC-style control sequences for the application keypad.
-#
-xterm-vt220|XFree86 xterm emulating vt220,
- ka1=\EOw, ka3=\EOy, kbeg=\EOu, kc1=\EOq, kc3=\EOs, kcbt=\E[Z,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[4~,
- kent=\EOM, kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~,
- kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- use=xterm-basic,
-
-xterm-vt52|XFree86 xterm emulating dec vt52,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
- home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-
-xterm-noapp|xterm with cursor keys in normal mode,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rmcup@,
- rmkx=\E>, smcup@, smkx=\E=, use=xterm,
-
-xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
- lines#24, use=xterm-r6,
-
-# This is xterm for ncurses.
-xterm|xterm terminal emulator (X Window System),
- use=xterm-r6,
-# use=xterm-xfree86,
-
-# These entries allow access to the X titlebar and icon name as a status line.
-# Note that twm (and possibly window managers descended from it such as tvtwm,
-# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
-# with it.
-xterm+sl|access X title line and icon name,
- hs,
- wsl#40,
- dsl=\E]0;\007, fsl=^G, tsl=\E]0;, use=xterm,
-xterm+sl-twm|access X title line (pacify twm-descended window managers),
- hs,
- wsl#40,
- dsl=\E]2;\007, fsl=^G, tsl=\E]2;, use=xterm,
-
-#
-# The following xterm variants don't depend on your base version
-#
-# xterm with bold instead of underline
-xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
- smso=\E[7m, smul=\E[1m, use=xterm,
-# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
-# (kterm should not invoke DEC Graphics as the alternate character set
-# -- Kenji Rikitake)
-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@,
- 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,
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
- ich@, ich1@, use=xterm,
-# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
-xterm1|xterm terminal emulator ignoring the alternate screen buffer,
- rmcup@, smcup@, use=xterm,
-
-# This describes the capabilities of color_xterm, an xterm variant from
-# before ECMA-64 color support was folded into the main-line xterm release.
-# This entry is straight from color_xterm's maintainer.
-# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
-# The README's with the distribution also say that it supports SGR 21, 24, 25
-# and 27, but they are not present in the terminfo or termcap.
-color_xterm|cx|cx100|color_xterm color terminal emulator for X,
- OTbs, am, km, mir, msgr, xenl,
- cols#80, it#8, lines#65, ncv@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, ka1=\EOw, ka3=\EOy,
- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kent=\EOM, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smam=\E[?7h,
- smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, use=ecma+color,
-
-# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
-# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
-# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This
-# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
-# that each of those implements the home, end, delete keys differently.
-#
-# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
-# colors; note that this is not compatible with the 5.2 version.
-nxterm|xterm-color|generic color xterm,
- ncv@,
- op=\E[m, use=xterm-r6, use=klone+color,
-
-# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
-gnome|Gnome terminal,
- bce,
- kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- 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,
-
-# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
-# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
-# Notes:
-# rxvt 2.21b uses
-# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O,
-# but some applications don't work with that.
-# It also has an AIX extension
-# box2=lqkxjmwuvtn,
-# and
-# ech=\E[%p1%dX,
-# but the latter does not work correctly.
-#
-# The distributed terminfo says it implements hpa and vpa, but they are not
-# implemented correctly, using relative rather than absolute positioning.
-#
-# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
-# Since rxvt is not really compatible with xterm, it should be configured as
-# "rxvt" (monochrome) and "rxvt-color".
-rxvt-basic|rxvt terminal base (X Window System),
- OTbs, am, bce, eo, km, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E[?47l\E=\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
- kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$,
- kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H,
- kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
- kend=\E[8~, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kfnd=\E[1~, khome=\E[7~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l, rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
- s0ds=\E(B, s1ds=\E(0, sc=\E7, sgr0=\E[0m\017, smacs=^N,
- smcup=\E7\E[?47h, smir=\E[4h, smkx=\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-rxvt|rxvt terminal emulator (X Window System),
- ncv@,
- sgr0=\E[m\017, use=rxvt-basic, use=ecma+color,
-
-# 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@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h\E[?5l, home=\E[H, hpa=\E[%i%p1%dG, ht=^I,
- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
- ind=^J, is1=\E[?47l\E>\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
- kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$,
- kPRV=\E[5$, kRIT=\E[c, ka1=\E[7~, ka3=\E[5~, kb2=\EOu,
- kbeg=\EOu, kbs=^H, kc1=\E[8~, kc3=\E[6~, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kel=\E[8\^, kend=\E[8~, kent=\EOM, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- khome=\E[7~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
- rmkx=, rmso=\E[27m, rmul=\E[24m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- 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
-# because they illustrate SVr4 curses mouse controls - T.Dickey
-xtermm|xterm terminal emulator (monocrome),
- OTbs, am, km, mir, msgr, xenl,
- btns#3, cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[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,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, ka1=\EOq, ka3=\EOs, kb2=\EOr,
- kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kent=\EOM, kf0=\EOy,
- kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- kf9=\EOX, khome=\E[H, kmous=\E[^_, knp=\E[U, kpp=\E[V,
- rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM, rmacs=^O,
- rmcup=\E@0\E[?4r, rmso=\E[m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
- smso=\E[7m, tbc=\E[3g,
-
-xtermc|xterm terminal emulator (color),
- colors#8, ncv#7, pairs#64,
- op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- use=xtermm,
-
-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
-# Here's a termcap entry I've been using for xterm_color, which comes
-# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
-# color stuff, I also have a status line defined as the window manager
-# title bar. [I have translated it to terminfo -- ESR]
-xterm-pcolor|xterm with color used for highlights and status line,
- bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m,
- smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6,
-
-# HP ships this, except for the pb#9600 which was merged in from BSD termcap.
-# (hpterm: added empty <acsc>, we have no idea what ACS chars look like --esr)
-hpterm|X-hpterm|hp X11 terminal emulator,
- am, da, db, mir, xhp,
- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
- acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M,
- cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
- cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
- hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H,
- kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El,
- memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@,
- rmul=\E&d@,
- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-# This entry describes an xterm with Sun-style function keys enabled
-# via the X resource setting "xterm*sunFunctionKeys:true"
-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
-# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
-# because we want it to be seen as <kcpy>.
-# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
-# with their Sun keyboard labels instead.
-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
-xterm-sun|xterm with sunFunctionKeys true,
- kb2=\E[218z, kcpy=\E[197z, kend=\E[220z, kf1=\E[224z,
- kf10=\E[233z, kf11=\E[192z, kf12=\E[193z, kf13=\E[194z,
- kf14=\E[195z, kf15=\E[196z, kf17=\E[198z, kf18=\E[199z,
- kf19=\E[200z, kf2=\E[225z, kf20=\E[201z, kf3=\E[226z,
- kf31=\E[208z, kf32=\E[209z, kf33=\E[210z, kf34=\E[211z,
- kf35=\E[212z, kf36=\E[213z, kf38=\E[215z, kf4=\E[227z,
- kf40=\E[217z, kf42=\E[219z, kf44=\E[221z, kf5=\E[228z,
- kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z,
- kfnd=\E[200z, khlp=\E[196z, khome=\E[214z, kich1=\E[2z,
- knp=\E[222z, kpp=\E[216z, kund=\E[195z, use=xterm,
-xterms-sun|small (80x24) xterm with sunFunctionKeys true,
- cols#80, lines#24, use=xterm-sun,
-
-# This is for the extensible terminal emulator on the X11R6 contrib tape.
-emu|emu native mode,
- mir, msgr, xon,
- colors#15, cols#80, it#8, lines#24, pairs#64, vt#200,
- acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
- bel=^G, blink=\ES\EW, bold=\ES\EU, civis=\EZ,
- clear=\EP\EE0;0;, cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;,
- cub=\Eq-%p1%d;, cub1=^H, cud=\Ep%p1%d;, cud1=\EB,
- cuf=\Eq%p1%d;, cuf1=\ED, cup=\EE%p1%d;%p2%d;,
- cuu=\Ep-%p1%d;, cuu1=\EA, dch=\EI%p1%d;, dch1=\EI1;,
- dl=\ER%p1%d;, dl1=\ER1;, ech=\Ej%p1%d;, ed=\EN, el=\EK,
- el1=\EL, enacs=\0, home=\EE0;0;, ht=^I, hts=\Eh,
- il=\EQ%p1%d;, il1=\EQ1;, ind=\EG, is2=\ES\Er0;\Es0;,
- kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED, kcuu1=\EA,
- kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01, kf10=\EF10,
- kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14, kf15=\EF15,
- kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19, kf2=\EF02,
- kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05, kf6=\EF06,
- kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind, kich1=\Eins,
- knp=\Enext, kpp=\Eprior, kslt=\Esel, oc=\Es0;\Er0;,
- rev=\ES\ET, ri=\EF, rmacs=\0, rmir=\EX, rmso=\ES, rmul=\ES,
- rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;,
- setaf=\Er%i%p1%d;, sgr0=\ES, smacs=\0, smir=\EY,
- smso=\ES\ET, smul=\ES\EV, tbc=\Ej,
-
-#### MGR
-#
-# MGR is a Bell Labs window system lighter-weight than X.
-# These entries describe MGR's xterm-equivalent.
-# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
-#
-
-mgr|Bellcore MGR (non X) window system terminal emulation,
- am, km,
- bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M,
- csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er,
- cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h,
- dch=\E%p1%dE$<5>, dch1=\EE, dl=\E%p1%dd$<3*>,
- dl1=\Ed$<3>, ed=\EC, el=\Ec, hd=\E1;2f, ht=^I, hu=\E1;2u,
- ich=\E%p1%dA$<5>, ich1=\EA, il=\E%p1%da$<3*>,
- il1=\Ea$<3>, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rev=\E1n, rmam=\E5S,
- rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n,
- smul=\E4n,
-mgr-sun|Mgr window with Sun keyboard,
- ka1=\E[214z, ka3=\E[216z, kb2=\E[218z, kc1=\E[220z,
- kc3=\E[222z, kcpy=\E[197z, kend=\E[220z, kent=\E[250z,
- kf1=\E[224z, kf10=\E[233z, kf11=\E[234z, kf12=\E[235z,
- kf2=\E[225z, kf3=\E[226z, kf4=\E[227z, kf5=\E[228z,
- kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z,
- kfnd=\E[200z, khlp=\E[207z, khome=\E[214z, knp=\E[222z,
- kopn=\E[198z, kpp=\E[216z, kund=\E[195z, use=mgr,
-mgr-linux|Mgr window with Linux keyboard,
- ka1=\E[H, ka3=\E[5~, kb2=\E[G, kc1=\E[Y, kc3=\E[6~,
- kdch1=\E[3~, kend=\E[4~, kf0=\E[[J, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, knp=\E[6~, kpp=\E[5~, use=mgr,
-
-######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
-#
-
-# Columbus UNIX virtual terminal. This terminal also appears in
-# UNIX 4.0 and successors as line discipline 1 (?), but is
-# undocumented and does not really work quite right.
-cbunix|cb unix virtual terminal,
- OTbs, am, da, db,
- cols#80, lines#24, lm#0,
- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL,
- el=\EK, ich1=\EO, il1=\EP, ind=^J, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A,
- smso=\Ea^D, smul=\Ea^A,
-# (vremote: removed obsolete ":nl@:" -- esr)
-vremote|virtual remote terminal,
- am@,
- cols#79, use=cbunix,
-
-pty|4bsd pseudo teletype,
- cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!,
- smso=\Ea$, smul=\Ea!, use=cbunix,
-
-# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
-eterm|gnu emacs term.el terminal emulation,
- am, mir, xenl,
- cols#80, lines#24,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, rev=\E[7m,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
- smul=\E[4m,
-
-# Entries for use by the `screen' program by Juergen Weigert,
-# Michael Schroeder, Oliver Laumann. The screen and
-# screen-w entries came with version 3.7.1. The screen2 and screen3 entries
-# come from University of Wisconsin and may be older.
-# (screen: added <cnorm> on ANSI model -- esr)
-#
-# 'screen' defines extensions to termcap. Some are used in its terminal
-# description:
-# G0 (bool) Terminal can deal with ISO 2022 font selection sequences.
-# AX (bool) Does understand ANSI set default fg/bg color
-# (\E[39m / \E[49m).
-# S0 (str) Switch charset 'G0' to the specified charset.
-# E0 (str) Switch charset 'G0' back to standard charset.
-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,
- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, 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,
-
-screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
- cols#132, use=screen,
-
-screen2|old VT 100/ANSI X3.64 virtual terminal,
- cols#80, it#8, lines#24,
- cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
- il1=\E[L, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
- nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
- rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h,
- smso=\E[3m, smul=\E[4m, tbc=\E[3g,
-# (screen3: removed unknown ":xv:LP:G0:" -- esr)
-screen3|older VT 100/ANSI X3.64 virtual terminal,
- km, mir, msgr,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec,
- sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
- smul=\E[4m, tbc=\E[3g,
-
-# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
-# NCSA telnet is one of the most used telnet clients for the Macintosh. It has
-# been maintained until recently by the National Center for Supercomputer
-# Applications, and it is feature rich, stable and free. It can be downloaded
-# from www.ncsa.edu. This terminfo description file is based on xterm-vt220,
-# xterm+sl, and the docs at NCSA. It works well.
-#
-# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
-# The terminal options should be set as follows:
-# Xterm sequences ON
-# use VT wrap mode ON
-# use Emacs arrow keys OFF
-# CTRL-COMND is Emacs meta ON
-# 8 bit mode ON
-# answerback string: "ncsa-vt220-8"
-# setup keys: all disabled
-#
-# Application mode is not used.
-#
-# Other special mappings:
-# Apple VT220
-# HELP Find
-# HOME Insert here
-# PAGEUP Remove
-# DEL Select
-# END Prev Screen
-# PAGEDOWN Next Screen
-#
-# Though it supports ANSI color, NCSA Telnet uses color to represent blinking
-# text.
-#
-# The status-line manipulation is a mapping of the xterm-compatible control
-# sequences for setting the window-title. So you must use tsl and fsl in
-# pairs, since the latter ends the string that is loaded to the window-title.
-ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
- am, hs, km, mir, msgr, xenl,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
- il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
- kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~,
- kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~,
- kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~,
- khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i,
- rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7,
- smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?62;1;6c, u9=\E[c,
-ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
- use=ncsa-m, use=klone+color,
-ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
- hs@,
- dsl@, fsl@, tsl@, use=ncsa,
-ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
- hs@,
- dsl@, fsl@, tsl@, use=ncsa-m,
-# alternate -TD:
-# The documented function-key mapping refers to the Apple Extended Keyboard
-# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style
-# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
-# some keyboards and many applications require these as F1-F4.
-#
-ncsa-vt220|NCSA Telnet using vt220-compatible function keys,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, use=ncsa,
-
-#### Pilot Pro Palm-Top
-#
-# Termcap for Top Gun Telnet and SSH on the Palm Pilot.
-# http://www.isaac.cs.berkeley.edu/pilot/tgtelnet.html
-pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
- OTbs, am, xenl,
- cols#39, lines#16,
- bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J,
- cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I,
- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s,
- rmso=\EB, smso=\Eb,
-
-######## COMMERCIAL WORKSTATION CONSOLES
-#
-
-#### Alpha consoles
-#
-
-# This is from the OSF/1 Release 1.0 termcap file
-pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation,
- am, xon,
- cols#80, lines#25,
- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- nel=^M^J, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
-
-#### Sun consoles
-#
-
-# :is1: resets scrolling region in case a previous user had used "tset vt100"
-oldsun|Sun Microsystems Workstation console,
- OTbs, am, km, mir, msgr,
- cols#80, it#8, lines#34,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
- rmso=\E[m, sgr0=\E[m, smso=\E[7m,
-# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
-# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com>
-# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
-sun-il|Sun Microsystems console with working insert-line,
- am, km, msgr,
- cols#80, lines#34,
- bel=^G, bold@, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z,
- kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
- kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
- kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
- knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
- kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
- sgr0=\E[m, smso=\E[7m, smul@, u8=\E[1t, u9=\E[11t,
-# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
-# flake out on the last line. Unfortunately, without them the terminal has no
-# way to scroll.
-sun-cgsix|sun-ss5|Sun SparcStation 5 console,
- il@, il1@, use=sun-il,
-# If you are using an SS5, change the sun definition to use sun-ss5.
-sun|sun1|sun2|Sun Microsystems Inc. workstation console,
- use=sun-il,
-
-# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
-sun-s|Sun Microsystems Workstation window with status line,
- hs,
- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun,
-sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs,
- hs,
- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e,
-sun-48|Sun 48-line window,
- cols#80, lines#48, use=sun,
-sun-34|Sun 34-line window,
- cols#80, lines#34, use=sun,
-sun-24|Sun 24-line window,
- cols#80, lines#24, use=sun,
-sun-17|Sun 17-line window,
- cols#80, lines#17, use=sun,
-sun-12|Sun 12-line window,
- cols#80, lines#12, use=sun,
-sun-1|Sun 1-line window for sysline,
- eslok, hs,
- cols#80, lines#1,
- dsl=^L, fsl=\E[K, tsl=^M, use=sun,
-sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character,
- ich1@, rmir@, smir@, use=sun,
-sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history,
- lines#35,
- rmcup=\E[>4h, smcup=\E[>4l, use=sun,
-
-#### Iris consoles
-#
-
-# (wsiris: this had extension capabilities
-# :HS=\E7F2:HE=\E7F7:\
-# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
-# See the note on Iris extensions near the end of this file.
-# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> &
-# <flash> from BRL -- esr)
-wsiris|iris40|iris emulating a 40 line visual 50 (approximately),
- OTbs, OTnc, OTpt, am,
- OTkn#3, cols#80, it#8, lines#40,
- OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK,
- flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL,
- ind=^J, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3,
- kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI,
- rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P,
- smul=\E7R2\E9P,
-
-#### NeWS consoles
-#
-# Console terminal windows under the NeWS (Sun's Display Postscript windowing
-# environment). Note: these have nothing to do with Sony's News workstation
-# line.
-#
-
-# Entry for NeWS's psterm from Eric Messick & Hugh Daniel
-# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr)
-psterm|psterm-basic|NeWS psterm-80x34,
- OTbs, am, hs, km, ul,
- cols#80, it#8, lines#34,
- blink=\EOb, bold=\EOd, clear=^L, csr=\EE%p1%d;%p2%d;,
- cub1=\ET, cud1=\EP, cuf1=\EV, cup=\E%p1%d;%p2%d;, cuu1=\EY,
- dch1=\EF, dl1=\EK, ed=\EB, el=\EC, flash=\EZ, fsl=\ENl,
- home=\ER, ht=^I, il1=\EA, ind=\EW, is1=\EN*, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ll=\EU, rc=^\, rev=\EOr,
- ri=\EX, rmcup=\ENt, rmir=\ENi, rmso=\ENo, rmul=\ENu, sc=^],
- sgr0=\EN*, smcup=\EOt, smir=\EOi, smso=\EOo, smul=\EOu,
- tsl=\EOl,
-psterm-96x48|NeWS psterm 96x48,
- cols#96, lines#48, use=psterm,
-psterm-90x28|NeWS psterm 90x28,
- cols#90, lines#28, use=psterm,
-psterm-80x24|NeWS psterm 80x24,
- cols#80, lines#24, use=psterm,
-# This is a faster termcap for psterm. Warning: if you use this termcap,
-# some control characters you type will do strange things to the screen.
-# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr)
-psterm-fast|NeWS psterm fast version (flaky ctrl chars),
- OTbs, am, hs, km, ul,
- cols#80, it#8, lines#34,
- blink=^Ob, bold=^Od, clear=^L, csr=\005%p1%d;%p2%d;,
- cub1=^T, cud1=^P, cuf1=^V, cup=\004%p1%d;%p2%d;, cuu1=^Y,
- dch1=^F, dl1=^K, ed=^B, el=^C, flash=^Z, fsl=^Nl, home=^R, ht=^I,
- il1=^A, ind=^W, is1=^N*, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, ll=^U, rc=^\, rev=^Or, ri=^X, rmcup=^Nt, rmir=^Ni,
- rmso=^No, rmul=^Nu, sc=^], sgr0=^N*, smcup=^Ot, smir=^Oi,
- smso=^Oo, smul=^Ou, tsl=^Ol,
-
-#### NeXT consoles
-#
-# Use `glasstty' for the Workspace application
-#
-
-# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995
-next|NeXT console,
- am, xt,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
- rmso=\E[4;1m, sgr0=\E[m, smso=\E[4;2m,
-nextshell|NeXT Shell application,
- am,
- cols#80,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, kbs=^H, kcub1=^H,
- kcud1=^J, nel=^M^J,
-
-#### Sony NEWS workstations
-#
-
-# (news-unk: this had :KB=news: -- esr)
-news-unk|SONY NEWS vt100 emulator common entry,
- OTbs, OTpt, am, xenl,
- cols#80,
- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- if=/usr/lib/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
- is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
- kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7,
- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-#
-# (news-29: this had :TY=ascii: --esr)
-news-29,
- lines#29, use=news-unk,
-# (news-29-euc: this had :TY=euc: --esr)
-news-29-euc,
- use=news-29,
-# (news-29-sjis: this had :TY=sjis: --esr)
-news-29-sjis,
- use=news-29,
-#
-# (news-33: this had :TY=ascii: --esr)
-news-33,
- lines#33, use=news-unk,
-# (news-33-euc: this had :TY=euc: --esr)
-news-33-euc,
- use=news-33,
-# (news-33-sjis: this had :TY=sjis: --esr)
-news-33-sjis,
- use=news-33,
-#
-# (news-42: this had :TY=ascii: --esr)
-news-42,
- lines#42, use=news-unk,
-# (news-42-euc: this had :TY=euc: --esr)
-news-42-euc,
- use=news-42,
-# (news-42-sjis: this had :TY=sjis: --esr)
-news-42-sjis,
- use=news-42,
-#
-# NEWS-OS old termcap entry
-#
-# (news-old-unk: this had :KB=news:TY=sjis: --esr)
-news-old-unk|SONY NEWS vt100 emulator common entry,
- OTbs, OTpt, am, xenl,
- cols#80, vt#3,
- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, if=/usr/lib/tabset/vt100, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-#
-# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr)
-nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
- OTbs,
- lines#40,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
- use=news-old-unk,
-#
-# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
-nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line,
- lines#42,
- is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8,
- use=news-old-unk,
-#
-# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as <OTbs>. --esr)
-nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines,
- OTbs,
- lines#40,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
- use=news-old-unk,
-#
-# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
-nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines,
- OTbs,
- lines#31,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
- use=news-old-unk,
-#
-# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr)
-# also the alias vt100-bm.
-nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines,
- OTbs,
- lines#33,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8,
- use=news-old-unk,
-#
-# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr)
-nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines,
- OTbs,
- lines#31,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
- use=news-old-unk,
-#
-# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr)
-news28|sony vt100 emulator 28 lines,
- OTbs,
- lines#28,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8,
- use=news-old-unk,
-#
-# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
-news29|news28-a|sony vt100 emulator 29 lines,
- lines#29,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8,
- use=news-old-unk,
-#
-# (news511: this had :TY=sjis: --esr)
-nwp511|nwp-511|nwp-511 vt100,
- OTbs, OTpt, am, xenl,
- cols#80, lines#24,
- clear=\E[;H\E[2J$<20/>, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
- ed=\E[J$<30/>, el=\E[K$<3/>,
- flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
- il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H,
- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
- rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h,
- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-# (news517: this had :TY=sjis:. --esr)
-nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows,
- eslok, hs,
- cols#80, lines#30,
- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
- is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- tsl=\E[1$}\E[;%df, use=vt200,
-# (news517-w: this had :TY=sjis:. --esr)
-nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows,
- eslok, hs,
- cols#132, lines#50,
- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
- is2=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
- tsl=\E[1$}\E[;%df, use=vt200,
-
-#### Common Desktop Environment
-#
-
-# This ships with Sun's CDE in Solaris 2.5
-# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net>
-dtterm|CDE desktop terminal,
- am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, lm#0, ncv@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
- sc=\E7,
- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color,
-
-#### Non-Unix Consoles
-#
-
-# Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
-# a Unix-style environment used on OS/2. (Note that the suffix makes some
-# names longer than 14 characters, the nominal maximum).
-#
-# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
-ansi-emx|ANSI.SYS color,
- am, bce, eo, mir, msgr, xenl, xon,
- colors#16, cols#80, it#8, lines#25, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
- kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
- kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>, kf5=\0?, kf6=\0@,
- kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G, kich1=\0R, kll=\0O,
- knp=\0Q, kpp=\0I, kspd=^Z, nel=^M^J, rev=\E[5;37;41m,
- rmir=\E[4l, rmpch=\E[10m, rmso=\E[0;44m\E[1;33m,
- rmul=\E[0;44m\E[1;33m, rs1=\Ec, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[0m\E[1;33;44m, smir=\E[4h,
- smpch=\E[11m, smso=\E[0;31;47m, smul=\E[1;31;44m,
- tbc=\E[3g, u8=\E[?6c, u9=\E[c,
-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,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[0;37;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
- kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
- kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>, kf5=\0?, kf6=\0@,
- kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G, kich1=\0R, kll=\0O,
- knp=\0Q, kpp=\0I, kspd=^Z, nel=^M^J, rev=\E[1;37;46m,
- rmir=\E[4l, rmpch=\E[10m, rmso=\E[0;37;44m,
- rmul=\E[0;37;44m, rs1=\Ec, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smir=\E[4h,
- smpch=\E[11m, smso=\E[1;37;46m, smul=\E[1;36;44m,
- tbc=\E[3g, u8=\E[?6c, u9=\E[c,
-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,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[0;37;40m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
- kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
- kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>, kf5=\0?, kf6=\0@,
- kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G, kich1=\0R, kll=\0O,
- knp=\0Q, kpp=\0I, kspd=^Z, nel=^M^J, rev=\E[1;37;46m,
- rmir=\E[4l, rmpch=\E[10m, rmso=\E[0;37;40m,
- rmul=\E[0;37;40m, rs1=\Ec, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[0;10m, smir=\E[4h,
- smpch=\E[11m, smso=\E[1;37;46m, smul=\E[0;36;40m,
- tbc=\E[3g, u8=\E[?6c, u9=\E[c,
-mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
- am,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M,
- kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>,
- kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G,
- kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m,
- sgr0=\E[0m,
-
-# 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,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@,
- use=ansi.sys,
-
-# This entry fits the Windows NT console when the _POSIX_TERM environment
-# variable is set to 'on'. While the Windows NT POSIX console is seldom used,
-# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
-# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating
-# systems is not, and (surprise!) they match very well.
-#
-# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up
-# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only
-# are the installation instructions a pile of mind-numbing bureaucratese,
-# but the termcap entry is actually broken and unusable as given; the :do:
-# capability is misspelled "d".
-#
-# To use this, you need to a bunch of environment variables:
-#
-# SET _POSIX_TERM=on
-# SET TERM=ansi
-# SET TERMCAP=location of termcap file in POSIX file format
-# which is case-sensitive.
-# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap
-# SET TMP=//C/TEMP
-#
-# Important note: setting the TMP environment variable in POSIX style renders
-# it incompatible with a lot of other applications, including Visual C++. So
-# you should have a separate command window just for vi. All the other
-# variables may be permanently set in the Control Panel\System applet.
-#
-# You can find out more about the restrictions of this facility at
-# <http://www.nentug.org/unix-to-nt/ntposix.htm>.
-#
-# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997
-ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode,
- am, bw, msgr,
- cols#80, it#8, lines#25,
- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[V,
- kcuf1=\E[C, kcuu1=\E[A, nel=\r\E[S, rc=\E[u, rev=\E[7m,
- ri=\E[T, rmso=\E[m, sc=\E[s, sgr0=\E[0m, smso=\E[7m,
-# From: jew@venus.sunquest.com
-# Date: 19 Feb 93 23:41:07 GMT
-# Here's a combination of ansi and vt100 termcap
-# entries that works nearly perfectly for me
-# (Gateway 2000 Handbook and Microsoft Works 3.0):
-pcmw|PC running Microsoft Works,
- am, xenl,
- cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J,
- cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
- cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
- ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>,
- rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/lib/tabset/vt100,
- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>,
- tbc=\E[3g$<2/>,
-
-######## COMMON TERMINAL TYPES
-#
-# This section describes terminal classes and maker brands that are still
-# quite common, but have proprietary command sets not blessed by ANSI.
-#
-
-#### Altos
-#
-# Altos made a moderately successful line of UNIX boxes. In 1990 they were
-# bought out by Acer, a major Taiwanese manufacturer of PC-clones.
-# Acer has a web site at http://www.acer.com.
-#
-# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993
-# His comments suggest they were shipped with the system.
-#
-
-# (altos2: had extension capabilities
-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
-# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\
-# :HL=^AP\r:SP=\E[i:\
-# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
-# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\
-# Comparison with the k* capabilities makes it obvious that the c* things are
-# shift keys. I have renamed them to keys 32 and up accordingly. Also,
-# :sr: was given as a boolean-- esr)
-altos2|alt2|altos-2|altos II,
- cols#80, it#8, lines#24, xmc#0,
- clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[1B, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
- if=/usr/share/tabset/vt100, il1=\E[L, ind=^J,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r,
- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r,
- kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
- kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
- kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
- kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r,
- nel=^M^J, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smam=\E[?7h, smso=\E[7m, smul=\E[4m,
-# (altos3: had extension capabilities
-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
-# :HL=^AP\r:SP=\E[i:\
-# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
-altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
- blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
-altos4|alt4|altos-4|altos IV,
- use=wy50,
-# (altos7: had extension capabilities:
-# :GG#0:GI=\EH8:GF=\EH7:\
-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-# Comparison with the k* capabilities makes it obvious that the c* things are
-# shift keys. I have renamed them to keys 32 and up accordingly. I have
-# also made this entry relative to adm12 in order to give it an <sgr>. The
-# <invis> imported by use=adm+sgr may work, let me know. -- esr)
-altos7|alt7|altos VII,
- am, mir,
- cols#80, lines#24, xmc#0,
- acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt,
- clear=\E+^^, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE,
- ind=^J, invis=\EG1,
- is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r,
- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r,
- kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
- kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
- kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
- kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r,
- knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=^M^J, ri=\Ej,
- rmir=\Er, smir=\Eq, use=adm+sgr,
-altos7pc|alt7pc|altos PC VII,
- kend=\ET, use=altos7,
-
-#### Hewlett-Packard (hp)
-#
-# Hewlett-Packard
-# 8000 Foothills Blvd
-# Roseville, CA 95747
-# Vox: 1-(916)-785-4363 (Technical response line for VDTs)
-# 1-(800)-633-3600 (General customer support)
-#
-#
-# As of March 1998, HP no longer has any terminals in production.
-# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
-# supported (they still have parts). So are the 2392a and 2394a.
-# See the WORKSTATION CONSOLES section for the 700s.
-#
-
-# Generic HP terminal - this should (hopefully) work on any HP terminal.
-hpgeneric|hp|hewlett-packard generic terminal,
- OTbs, OTpt, am, da, db, mir, xhp,
- cols#80, lines#24, lm#0, vt#6,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E&a%p2%dc%p1%dY$<6>, cuu1=\EA, dch1=\EP, dl1=\EM,
- ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL,
- ind=^J, kbs=^H, kcbt=\Ei, rmir=\ER, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3,
- vpa=\E&a%p1%dY,
-
-hp110|hewlett-packard model 110 portable,
- lines#16, use=hpgeneric,
-
-hp+pfk+cr|hp function keys with CR,
- kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r,
- kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r,
-
-hp+pfk-cr|hp function keys w/o CR,
- kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev,
- kf8=\Ew,
-
-# The hp2621s use the same keys for the arrows and function keys,
-# but not separate escape sequences. These definitions allow the
-# user to use those keys as arrow keys rather than as function
-# keys.
-hp+pfk+arrows|hp alternate arrow definitions,
- kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@,
- kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r,
- kll=\Eq\r, kri=\Es\r,
-
-hp+arrows|hp arrow definitions,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- kind=\ES, kll=\EF, kri=\ET,
-
-# Generic stuff from the HP 262x series
-#
-hp262x|HP 262x terminals,
- xhp,
- blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES,
- invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
- kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
- sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c,
- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
-
-# Note: no <home> on HPs since that homes to top of memory, not screen.
-# Due to severe 2621 braindamage, the only way to get the arrow keys to
-# transmit anything at all is to turn on the function key labels
-# with <smkx>, and even then the user has to hold down shift!
-# The default 2621 turns off the labels except when it has to to
-# enable the function keys. If your installation prefers labels
-# on all the time, or off all the time (at the "expense" of the
-# function keys), use 2621-nl or 2621-wl.
-#
-# Note: there are newer ROMs for 2621's that allow you to set
-# strap A so the regular arrow keys xmit \EA, etc, as with the
-# 2645. However, even with this strap set, the terminal stops
-# xmitting if you reset it, until you unset and reset the strap!
-# Since there is no way to set/unset the strap with an escape
-# sequence, we don't use it in the default.
-# If you like, you can use 2621-ba (brain-damaged arrow keys).
-hp2621-ba|2621 w/new rom and strap A set,
- rmkx@, smkx@, use=hp+arrows, use=hp2621,
-
-# hp2621 with function labels. Most of the time they are off,
-# but inside vi, the function key labels appear. You have to
-# hold down shift to get them to xmit.
-hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels,
- is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl,
-hp2621-fl|hp 2621,
- xhp@, xon,
- pb#19200,
- cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>,
- ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD,
- use=hp+pfk+cr, use=hpgeneric,
-
-# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
-hp2621p|hp 2621 with printer,
- mc4=\E&p13C, mc5=\E&p11C, use=hp2621,
-
-hp2621p-a|hp2621p with fn as arrows,
- use=hp+pfk+arrows, use=hp2621p,
-
-# hp2621 with k45 keyboard
-hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
-
-# 2621 using all 48 lines of memory, only 24 visible at any time.
-hp2621-48|48 line 2621,
- lines#48,
- cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR,
- use=hp2621,
-
-# 2621 with no labels ever. Also prevents vi delays on escape.
-hp2621-nl|hp 2621 with no labels,
- kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@,
- use=hp2621-fl,
-
-# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
-# (wrong).
-#
-hp2621-nt|hp 2621 w/no tabs,
- ht@, use=hp2621,
-
-# Hp 2624 B with 4 or 10 pages of memory.
-#
-# Some assumptions are made with this entry. These settings are
-# NOT set up by the initialization strings.
-#
-# Port Configuration
-# RecvPace=Xon/Xoff
-# XmitPace=Xon/Xoff
-# StripNulDel=Yes
-#
-# Terminal Configuration
-# InhHndShk=Yes
-# InhDC2=Yes
-# XmitFnctn(A)=No
-# InhEolWrp=No
-#
-# Note: the 2624 DOES have a true <home>, believe it or not!
-#
-# The 2624 has an "error line" to which messages can be sent.
-# This is CLOSE to what is expected for a "status line". However,
-# after a message is sent to the "error line", the next carriage
-# return is EATEN and the "error line" is turned back off again!
-# So I guess we can't define <hs>, <eslok>, <wsl>, <dsl>, <fsl>, <tsl>.
-#
-# This entry supports emacs (and any other program that uses raw
-# mode) at 4800 baud and less. I couldn't get the padding right
-# for 9600.
-#
-# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
-hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B,
- da, db,
- lm#96,
- flash=\E&w13F$<66/>\E&w12F$<66/>\E&w13F$<66/>\E&w12F,
- use=hp+labels, use=scrhp,
-
-# This hp2626 entry does not use any of the fancy windowing stuff
-# of the 2626.
-#
-# Indeed, terminfo does not yet handle such stuff. Since changing
-# any window clears memory, it is probably not possible to use
-# this for screen opt.
-#
-# ed is incredibly slow most of the time - I am guessing at the
-# exact padding. Since the terminal uses xoff/xon this is intended
-# only for cost computation, so that the terminal will prefer el
-# or even dl1 which is probably faster!
-#
-# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
-# extra slow on the last line of the window.
-#
-# The padding probably should be changed.
-#
-hp2626|hp2626a|hp2626p|hp 2626,
- da, db,
- lm#0, pb#19200,
- ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
- is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk+cr,
- use=hp+labels, use=scrhp,
-
-# This entry is for sysline. It allocates a 23 line window with
-# a 115 line workspace for regular use, and a 1 line window for
-# the status line.
-#
-# This assumes port 2 is being used.
-# Turn off horizontal line, Create ws #1 with 115 lines,
-# Create ws #2 with 1 line, Create window #1 lines 1-23,
-# Create window #2 lines 24-24, Attach cursor to workspace #1.
-# Note that this clears the tabs so it must be done by tset before
-# it sets the tabs.
-#
-hp2626-s|hp 2626 using only 23 lines,
- eslok, hs,
- lines#23,
- fsl=\E&d@\E&w7f2p1I\E&w4f1I,
- is1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r,
- tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626,
-# Force terminal back to 24 lines after being 23.
-hp2626-ns|hp 2626 using all 24 lines,
- is1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r,
- use=hp2626,
-# Various entries useful for small windows on 2626.
-hp2626-12|hewlett-packard 2626 12 lines,
- lines#12, use=hp2626,
-hp2626-12x40|hewlett-packard 2626 12 lines 40 columns,
- cols#40, lines#12, use=hp2626,
-hp2626-x40|hewlett-packard 2626 40 columns,
- cols#40, use=hp2626,
-hp2626-12-s|hewlett-packard 2626 11 lines plus status,
- lines#11, use=hp2626-s,
-
-#
-# hp2627 color tubes from University of Wisconsin
-#
-hp2627a-rev|hp 2627 with reverse video colors,
- cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r,
- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmul=\E&v0S\E&d@,
- smul=\E&dD\E&v1S, use=hp2621-nl,
-hp2627a|hp 2627 color terminal with no labels,
- cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r,
- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S,
- rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S,
- use=hp2621-nl,
-hp2627c|hp 2627 color (cyan) terminal with no labels,
- cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r,
- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a,
-
-# hp2640a doesn't have the Y cursor addressing feature, and C is
-# memory relative instead of screen relative, as we need.
-#
-hp2640a|hp 2640a,
- cup@, rmkx@, smkx@, use=hp2645,
-
-hp2640b|hp2644a|hp 264x series,
- rmkx@, smkx@, use=hp2645,
-
-# (hp2641a: removed unknown :gu: -- esr)
-hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry,
- am, da, db, mir, xhp,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
- ed=\EJ, el=\EK, hpa=\E&a%p1%2dC, ht=^I,
- if=/usr/share/tabset/std, il1=\EL, ind=^J,
- is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
- rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
- vpa=\E&a%p1%2dY,
-
-# This terminal should be used at 4800 baud or less. It needs padding for
-# plain characters at 9600, I guessed at an appropriate cr delay. It really
-# wants ^E/^F handshaking, but that doesn't work well even if you write
-# software to support it.
-hp2645|hp45|HP 2645 series,
- pb#9600,
- blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL,
- kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB,
- rmkx=\E&s0A,
- sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c,
- sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric,
-# You should use this terminal at 4800 baud or less.
-hp2648|hp2648a|HP 2648a graphics terminal,
- clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>,
- dch1=\EP$<7>, ip=$<5>, use=hp2645,
-
-# The HP 150 terminal is a fairly vanilla HP terminal, with the
-# clreol standout problem. It also has graphics capabilities and
-# a touch screen, which we don't describe here.
-hp150|hewlett packard Model 150,
- OTbs, use=hp2622,
-
-# HP 2382a terminals, "the little ones." They don't have any
-# alternate character set support and sending out ^N/^O will
-# leave the screen blank.
-hp2382a|hp2382|hewlett packard 2382a,
- da, db,
- lh#1, lm#48,
- acsc@,
- pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
- rmacs@,
- sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c,
- sgr0=\E&d@, smacs@, use=hp+labels, use=scrhp,
-
-hp2621-a|hp2621a-a|hp2621 with fn as arrows,
- use=hp+pfk+arrows, use=hp2621-fl,
-
-# newer hewlett packard terminals
-
-newhpkeyboard|generic entry for HP extended keyboard,
- kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
- kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV,
- kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A,
- use=hp+pfk-cr,
-
-newhp|generic entry for new hewlett packard terminals,
- am, bw, mir, xhp, xon,
- cols#80, lines#24, pb#4800,
- acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q\,t5u6v8w7x.,
- bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=^M, cub1=^H,
- cud1=^J, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH,
- dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=^J,
- invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=^M^J,
- pfkey=\E&f0a%p1%dk0d%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk0d%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk0d%p2%l%dL%p2%s, rev=\E&dB, ri=\ET,
- rmacs=^O, rmir=\ER, rmso=\E&d@, rmul=\E&d@, rs1=\Eg,
- sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;,
- sgr0=\E&d@\017, smacs=^N, smir=\EQ, smso=\E&dJ, smul=\E&dD,
- tbc=\E3, use=newhpkeyboard,
-
-memhp|memory relative addressing for new HP ttys,
- vt#6,
- clear=\EH\EJ$<40>, cub=\E&a-%p1%dC, cud=\E&a+%p1%dR,
- cuf=\E&a+%p1%dC, cup=\E&a%p1%dr%p2%dC, cuu=\E&a-%p1%dR,
- home=\EH, hpa=\E&a%p1%dC, ll=\E&a23R\r,
- mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dR, use=newhp,
-
-scrhp|screen relative addressing for new HP ttys,
- clear=\E&a0c0Y\EJ$<40>, cub=\E&a-%p1%dC,
- cud=\E&a+%p1%dR, cuf=\E&a+%p1%dC,
- cup=\E&a%p1%dy%p2%dC$<10>, cuu=\E&a-%p1%dR,
- home=\E&a0y0C, hpa=\E&a%p1%dC, ll=\E&a0y0C\EA,
- mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dY, use=newhp,
-
-# (hp+labels: added label values from a BRL termcap -- esr)
-hp+labels|"standard" label info for new HP ttys,
- lh#2, lw#8, nlab#8,
- lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8,
- pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
- rmln=\E&j@, smln=\E&jB,
-
-hp+printer|"standard" printer info for HP ttys,
- ff=\E&p4u0C, mc0=\EH\E&p4dF, mc4=\E&p13C, mc5=\E&p11C,
-
-
-# The new hp2621b is kind of a cross between the old 2621 and the
-# new 262x series of machines. It has dip-switched options.
-# The firmware has a bug in it such that if you give it a null
-# length label, the following character is eaten!
-hp2621b|hp 2621b with old style keyboard,
- lh#1, lm#48, lw#8, nlab#8,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- kind=\ET, kll=\EF, kri=\ES,
- pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r,
- smln=\E&jB, use=hp2621,
-
-hp2621b-p|hp 2621b with printer,
- use=hp+printer, use=hp2621b,
-
-# hp2621b - new 2621b with new extended keyboard
-# these are closer to the new 26xx series than the other 2621b
-hp2621b-kx|hp 2621b with extended keyboard,
- use=newhpkeyboard, use=hp2621b,
-
-hp2621b-kx-p|hp 2621b with new keyboard & printer,
- use=hp+printer, use=hp2621b-kx,
-
-# Some assumptions are made in the following entries.
-# These settings are NOT set up by the initialization strings.
-#
-# Port Configuration
-# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes
-#
-# Terminal Configuration
-# InhHndShk(G)=Yes InhDC2(H)=Yes
-# XmitFnctn(A)=No InhEolWrp=No
-#
-#
-# Hp 2622a & hp2623a display and graphics terminals
-#
-hp2622|hp2622a|hp 2622,
- da, db,
- lm#0, pb#19200,
- is2=\E&dj@\r, use=hp+pfk+cr, use=hp+labels, use=scrhp,
-
-# The 2623 is a 2622 with extra graphics hardware.
-hp2623|hp2623a|hp 2623,
- use=hp2622,
-
-hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer,
- use=hp+printer, use=hp2624,
-
-# The hewlett packard B can have an optional extra 6 pages of memory.
-hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory,
- lm#240, use=hp2624,
-
-hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer,
- lm#240, use=hp2624b-p,
-
-# Color manipulations for HP terminals
-hp+color|hp with colors,
- ccc,
- colors#16, ncv#17, pairs#7,
- initp=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI,
- oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I,
- op=\E&v0S, scp=\E&v%p1%dS,
-
-# <is2> sets the screen to be 80 columns wide
-hp2397a|hp2397|hewlett packard 2397A color terminal,
- is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color,
-
-# HP 700/44 Setup parameters:
-# Terminal Mode HP-PCterm
-# Inhibit Auto Wrap NO
-# Status Line Host Writable
-# PC Character Set YES
-# Twenty-Five Line Mode YES
-# XON/XOFF @128 or 64 (sc)
-# Keycode Mode NO or YES (sc)
-# Backspace Key BS or BS/DEL
-#
-# <is2> sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
-# \E\\? does not turn off keycode mode
-# <smsc> sets alternate start/stop; keycode on
-hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode,
- am, eo, xenl, xon,
- cols#80, lines#25,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[2J\E[H,
- cnorm=\E[?25h, cr=^M, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
- ind=^J,
- is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
- kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~,
- kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~,
- kpp=\E[5~, rmam=\E[?7l,
- rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
- smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m,
- smul=\E[4m, xoffc=g, xonc=e,
-#
-# (hp2392: copied <rmir> here from hpex -- esr)
-hp2392|239x series,
- cols#80,
- cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r,
- kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r,
- kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV,
- rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY,
- use=hpsub,
-
-hpsub|hp terminals -- capability subset,
- am, da, db, mir, xhp, xon,
- lines#24,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC,
- ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J,
- is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@,
- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
-
-# hpex:
-# May be used for most 24 x 80 hp terminals,
-# but has no padding added, so may allow runover in some terminals at high
-# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and
-# hp98x5 terminal emulators or hp98x6 consoles.
-# Adds xy-cursor addressing, vertical cursor addressing, home,
-# last line, and underline capabilities.
-#
-# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
-# moved <rmir> here from hpsub -- esr)
-hpex|hp extended capabilites,
- cr=^M, cud1=^J, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=^J, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, rmir=\ER, rmul=\E&d@, smir=\EQ,
- smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub,
-
-# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
-hp2|hpex2|hewlett-packard extended capabilities newer version,
- am, da, db, mir, xhp,
- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0,
- bel=^G, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
- il1=\EL, ind=^J, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
- pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rmir=\ER, rmkx=\E&s0A,
- rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB,
- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-# HP 236 console
-# From: <ddavis@ic.berkeley.edu>
-hp236|hp236 internal terminal emulator,
- OTbs, am,
- cols#80, lines#24,
- clear=\EF, cnorm=\EDE, cub1=^H,
- cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\EDB,
- dch1=\EJ, dl1=\EH, el=\EK, ich1=\EI, il1=\EG, rmso=\ECI,
- sgr0=\ECI, smso=\EBI,
-
-# This works on a hp300 console running Utah 4.3 BSD
-# From: Craig Leres <leres@okeeffe.berkeley.edu>
-hp300h|HP Catseye console,
- OTbs, am, da, db, mir, xhp,
- cols#128, lines#51, lm#0, xmc#0,
- bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I,
- if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@,
- smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3,
- vpa=\E&a%p1%dY,
-# From: Greg Couch <gregc@ernie.berkeley.edu>
-hp9837|hp98720|hp98721|HP 9000/300 workstations,
- OTbs, am, da, db, mir, xhp,
- cols#128, it#8, lines#46, lm#0,
- bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
- il1=\EL, ind=^J, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU,
- kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@,
- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD,
- tbc=\E3, vpa=\E&a%p1%dY,
-# HP 9845 desktop computer from BRL
-# (hp9845: removed unknown capability :gu: -- esr)
-hp9845|HP 9845,
- OTbs, am, da, db, eo, mir, xhp,
- cols#80, lines#21,
- OTbc=\ED, clear=\EH\EJ, cuf1=\EC, cup=\E&a%p2%2dc%p1%2dY,
- cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK,
- if=/usr/share/tabset/std, il1=\EL, rmir=\ER, rmso=\E&d@,
- smir=\EQ, smso=\E&dB,
-# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
-# (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>;
-# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
-hp98550|hp98550a|HP 9000 Series 300 color console,
- OTbs, am, da, db, mir, xhp,
- cols#128, it#8, lines#49, lm#0,
- acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR,
- clear=\EH\EJ, cnorm=\E*dQ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
- if=/usr/share/tabset/std, il1=\EL, ind=^J, invis=\E&ds,
- kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ,
- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ,
- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-# From: Victor Duchovni <vic@fine.princeton.edu>
-# (hp700-wy: removed obsolete ":nl=^J:";
-# replaced /usr/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr)
-hp700-wy|HP700/41 emulating wyse30,
- OTbs, am, bw, mir, msgr,
- cols#80, it#8, lines#24, xmc#1,
- cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET$<10/>, home=^^, ht=^I, hts=\E1,
- if=/usr/share/tabset/stdcrt, il1=\EE$<0.7*/>,
- is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=\177, kcbt=\EI,
- kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ked=\EY,
- kel=\ET, khome=^^, khts=\EI, kich1=\Eq, krmir=\Er, ll=^^^K,
- ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>,
- sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>,
- smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c,
-hp70092|hp70092a|hp70092A|HP 700/92,
- am, da, db, xhp,
- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8,
- acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA,
- bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H,
- cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
- dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I,
- hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER,
- rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-bobcat|sbobcat|HP 9000 model 300 console,
- am, da, db, mir, xhp,
- cols#128, it#8, lines#47, xmc#0,
- cbt=\Ei, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP,
- dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I,
- il1=\EL$<10*/>, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=^M^J, rmir=\ER,
- rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ,
- smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>,
-gator-t|HP 9000 model 237 emulating extra-tall AAA,
- lines#94, use=gator,
-gator|HP 9000 model 237 emulating AAA,
- bw, km, mir, ul,
- cols#128, it#8, lines#47,
- bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
- dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`,
- ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>,
- il1=\E[L, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
- rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-gator-52|HP 9000 model 237 emulating VT52,
- cols#128, lines#47, use=vt52,
-gator-52t|HP 9000 model 237 emulating extra-tall VT52,
- lines#94, use=gator-52,
-
-#### Honeywell-Bull
-#
-# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93
-#
-
-# Honeywell Bull terminal. Its cursor and function keys send single
-# control characters and it has standout/underline glitch. Most programs
-# do not like these features/bugs. Visual bell is realized by flashing the
-# "keyboard locked" LED.
-dku7003-dumb|Honeywell Bull DKU 7003 dumb mode,
- cols#80, lines#25,
- clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X,
- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, ed=^_, el=\E[K,
- flash=\E[2h\E[2l, home=^], ht=^I, ind=^J, kbs=^H, kcub1=^Y,
- kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=^M^J,
-dku7003|Honeywell Bull DKU 7003 all features described,
- msgr,
- xmc#1,
- blink=\E[5m, bold=\E[7m, dim=\E[2m, rev=\E[7m, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
- use=dku7003-dumb,
-
-#### Lear-Siegler (adm)
-#
-# These guys are long since out of the terminals business, but
-# in 1995 many current terminals still have an adm type as one of their
-# emulations (usually their stupidest, and usually labeled adm3, though
-# these `adm3' emulations normally have adm3a+ capabilities).
-#
-# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
-# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
-# was being held to ground would trigger a send of the top line on the screen.
-# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
-# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
-# for clearing up this point.)
-
-adm1a|adm1|lsi adm1a,
- am,
- cols#80, lines#24,
- bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^,
- ind=^J,
-adm2|lsi adm2,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=^J,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-# (adm3: removed obsolete ":ma=^K^P:" -- esr)
-adm3|lsi adm3,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J,
-# The following ADM-3A switch settings are assumed for normal operation:
-# SPACE U/L_DISP CLR_SCRN 24_LINE
-# CUR_CTL LC_EN AUTO_NL FDX
-# Other switches may be set for operator convenience or communication
-# requirements. I recommend
-# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF
-# ETX_OFF EOT_OFF
-# Most of these terminals required an option ROM to support lower case display.
-# Open the case and look at the motherboard; if you see an open 24-pin DIP
-# socket, you may be out of luck.
-#
-# (adm3a: some capabilities merged in from BRl entry -- esr)
-adm3a|lsi adm3a,
- OTbs, am,
- cols#80, lines#24,
- OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, rs2=^N,
-adm3a+|adm3a plus,
- kbs=^H, use=adm3a,
-# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
-adm5|lsi adm5,
- xmc#1,
- bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^,
- rmso=\EG, smso=\EG, use=adm3a+,
-# A lot of terminals other than adm11s use these. Wherever you see
-# use=adm+sgr with some of its capabilities disabled, try the
-# disabled ones. They may well work but not have been documented or
-# expressed in the using entry. We'd like to cook up an <sgr> but the
-# <rmacs>/<smacs> sequences of the using entries vary too much.
-adm+sgr|adm style highlight capabilities,
- invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, sgr0=\EG0,
- smso=\EG4, smul=\EG8,
-# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL
-# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs>
-# <khome> from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. <clear> could also
-# be ^Z, according to his entry.
-# (adm11: <smul>=\EG4 was obviously erroneous because it also said
-# <rev>=\EG4. Looking at other ADMs confirms this -- esr)
-adm11|LSI ADM-11,
- OTbs, am, hs,
- OTkn#8, cols#80, lines#24,
- OTnl=^J, bel=^G, blink=\EG2, clear=\E*, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dsl=\Eh, ed=\EY, el=\ET, fsl=\E(\r, home=^^, ht=^I,
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, khome=^^, nel=^M^J, tsl=\EF\E),
- use=adm+sgr,
-# From: Andrew Scott Beals <bandy@lll-crg.ARPA>
-# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995
-# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
-# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had
-# <is2>=\Eq but that looked wrong; this <is2> is from Dave Yost <esquire!yost>
-# via BRL. That entry asserted <xmc#1>, but I've left that out because
-# neither earlier nor later ADMSs have it -- esr)
-#
-# You will need to get into the supervisor setup before you can set
-# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
-# see a lot more setup options.
-#
-# While in supervisor setup you can also use following codes:
-#
-# Ctrl-P Personality character selections (configure for example what
-# arrow keys send, if I recall correctly)
-# Ctrl-T tabs 1-80 use left&right to move and up to set and
-# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor
-# Ctrl-B Binary setup (probably not needed. I think that everything can
-# be set using normal setup)
-# Ctrl-A Answerback mode (enter answerback message)
-# Ctrl-U User friendly mode (normal setup)
-# Ctrl-D Defaults entire setup and function keys from EPROM tables
-# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
-# Ctrl-R Reads both setup and functions keys from NVM.
-# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
-#
-# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
-# RTS/CTS used nowadays with virtually every modem and computer. 19200
-# bps works fine with hardware flow control.
-#
-# The following null-modem cable should fix this and enable you to use
-# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
-# set ADM-12+ for DTR handshaking from supervisor setup.
-#
-# PC Serial ADM-12+
-# -------- -------
-# 2 - 3
-# 3 - 2
-# 4 - 5
-# 5 - 20
-# 6,8 - 4
-# 7 - 7
-# 20 - 6,8
-#
-adm12|lsi adm12,
- OTbs, OTpt, am, mir,
- OTug#1, cols#80, it#8, lines#24,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
- is2=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0,
- use=adm+sgr,
-# (adm20: removed obsolete ":kn#7:" -- esr)
-adm20|lear siegler adm20,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L,
- cup=\E=%i%p2%{31}%+%c%p1%{31}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE,
- kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(,
- sgr0=\E(, smso=\E),
-adm21|lear siegler adm21,
- xmc#1,
- bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=30*\ER, ed=\EY, el=\ET,
- ich1=\EQ, il1=30*\EE, ind=^J, invis@, kbs=^H, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, use=adm+sgr,
- use=adm3a,
-# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
-# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
-# removed bogus-looking \200 from before <cup>. -- esr)
-adm22|lsi adm22,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\Ey, el=\Et, home=^^, ht=\Ei, ich1=\EQ, il1=\EE,
- is2=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0,
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, khome=^^, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
- lf6=F6, lf7=F7, rmso=\E(, sgr0=\E(, smso=\E),
-# ADM 31 DIP Switches
-#
-# This information comes from two versions of the manual for the
-# Lear-Siegler ADM 31.
-#
-# Main board:
-# rear of case
-# +-||||-------------------------------------+
-# + S1S2 ||S +
-# + ||3 +
-# + +
-# + ||S +
-# + ||4 +
-# + +
-# + +
-# + +
-# + +
-# + +
-# +-+ +-+
-# + +
-# + S5 S6 S7 +
-# + == == == +
-# +----------------------------------------------+
-# front of case (keyboard)
-#
-# S1 - Data Rate - Modem
-# S2 - Data Rate - Printer
-# ------------------------
-# Data Rate Setting
-# -------------------
-# 50 0 0 0 0
-# 75 1 0 0 0
-# 110 0 1 0 0
-# 134.5 1 1 0 0
-# 150 0 0 1 0
-# 300 1 0 1 0
-# 600 0 1 1 0
-# 1200 1 1 1 0
-# 1800 0 0 0 1
-# 2000 1 0 0 1
-# 2400 0 1 0 1
-# 3600 1 1 0 1
-# 4800 0 0 1 1
-# 7200 1 0 1 1
-# 9600 0 1 1 1
-# x 1 1 1 1
-#
-# S3 - Interface/Printer/Attributes
-# ---------------------------------
-# Printer Busy Control
-# sw1 sw2 sw3
-# ---------------
-# off off off Busy not active, CD disabled
-# off off on Busy not active, CD enabled
-# off on off Busy active on J5-20, CD disabled
-# on off off Busy active on J5-19, CD disabled - Factory Set.
-# on off on Busy active on J5-19, CD enabled
-#
-# sw4 Used in conjuction with S4 for comm interface control - Fact 0
-#
-# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0
-#
-# sw6 ON enables printer BUSY active LOW - Factory Setting
-# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses
-#
-# sw7 ON - steady cursor - Factory Setting
-# OFF - blinking cursor
-#
-# sw8 ON causes selected attribute character to be displayed
-# OFF causes SPACE to be displayed instead - Factory Setting
-#
-# S4 - Interface
-# --------------
-# Modem Interface
-# S3 S4 S4 S4 S4
-# sw4 sw1 sw2 sw3 sw4
-# ---------------------------
-# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and
-# Current Loop disabled - Factory Setting
-# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect
-# disabled
-# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and
-# Current Loop Disabled
-#
-# sw5 ON disables dot stretching mode - Factory Setting
-# OFF enables dot stretching mode
-# sw6 ON enables blanking function
-# OFF enables underline function - Factory Setting
-# sw7 ON causes NULLS to be displayed as NULLS
-# OFF causes NULLS to be displayed as SPACES - Factory Setting
-#
-# S5 - Word Structure
-# -------------------
-# sw1 ON enables BREAK key - Factory Setting
-# OFF disables BREAK key
-# sw2 ON selects 50Hz monitor refresh rate
-# OFF selects 60Hz monitor refresh rate - Factory Setting
-#
-# Modem Port Selection
-# sw3 sw4 sw5
-# ---------------
-# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits
-# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits
-# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set.
-# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit
-# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits
-# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit
-# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit
-# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit
-#
-# sw6 ON sends bit 8 a 1 (mark)
-# OFF sends bit 8 as 0 (space) - Factory Setting
-# sw7 ON selects Block Mode
-# OFF selects Conversation Mode - Factory Setting
-# sw8 ON selects Full Duplex operation
-# OFF selects Half Duplex operation - Factory Setting
-#
-# S6 - Printer
-# ------------
-# sw1, sw2, sw6, sw7 Reserved - Factory 0
-#
-# Printer Port Selection
-# same as Modem above, bit 8 (when 8 DATA bits) is always = 0
-#
-# sw8 ON enables Printer Port
-# OFF disables Printer Port - Factory Setting
-#
-# S7 - Polling Address
-# --------------------
-# sw1-7 Establish ASCII character which designates terminal polling address
-# ON = logic 0
-# OFF = logic 1 - Factory Setting
-# sw8 ON enables Polling Option
-# OFF disables Polling Option - Factory Setting
-#
-#
-# On some older adm31s, S4 does not exist, and S5-sw6 is not defined.
-#
-# This adm31 entry uses underline as the standout mode.
-# If the adm31 gives you trouble with standout mode, check the DIP switch in
-# position 6, bank @c11, 25% from back end of the circuit board. Should be
-# OFF. If there is no such switch, you have an old adm31 and must use oadm31.
-# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
-adm31|lsi adm31 with sw6 set for underline mode,
- OTbs, am, mir,
- cols#80, lines#24,
- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=^J, is2=\Eu\E0,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, rmso=\EG0,
- rmul=\EG0, sgr0=\EG0, smir=\Eq, smso=\EG1, smul=\EG1,
-adm31-old|o31|old adm31,
- rmul@, smso=\EG4, smul@, use=adm31,
-# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL
-adm36|LSI ADM36,
- OTbs, OTpt,
- OTkn#4,
- if=/usr/lib/tabset/vt100,
- is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l,
- use=vt100,
-# (adm42: removed obsolete ":ma=^K^P:" -- esr)
-adm42|lsi adm42,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ht=^I,
- il1=\EE$<270>, ind=^J, invis@, ip=$<6*>, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, khome=^^, pad=\177, rmir=\Er, rmul@,
- smir=\Eq, smul@, use=adm+sgr,
-# The following termcap for the Lear Siegler ADM-42 leaves the
-# "system line" at the bottom of the screen blank (for those who
-# find it distracting otherwise)
-adm42-ns|lsi adm-42 with no system line,
- cbt=\EI\EF \011, clear=\E;\EF \011,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011,
- dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011,
- el=\ET\EF \011, il1=\EE\EF \011, rmir=\Er\EF \011,
- smir=\Eq\EF \011, use=adm42,
-# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985.
-# The insert mode of this terminal is commented out because it's broken for our
-# purposes in that it will shift the position of every character on the page,
-# not just the cursor line!
-# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
-adm1178|1178|lsi adm1178,
- am,
- cols#80, lines#24, xmc#1,
- bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET,
- home=^^, ht=^I, il1=\EE, ind=^J, ip=$<6*/>, kbs=^H, kcub1=^H,
- kcud1=^J, nel=^M^J, pad=\177, rev=\EG4, rmso=\EG0, rmul=\EG0,
- sgr0=\E), smso=\EG4, smul=\EG1,
-
-#### Prime
-#
-# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings
-# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr.
-# Prime merged with ComputerVision in the late 1980s; you can reach them at:
-#
-# ComputerVision Services
-# 500 Old Connecticut Path
-# Framingham, Mass.
-#
-
-# Standout mode is dim reverse-video.
-pt100|pt200|wren|fenix|prime pt100/pt200,
- am, bw, mir, msgr,
- cols#80, it#8, lines#24,
- cbt=\E[Z, clear=\E?, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA,
- cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M,
- ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P,
- home=\E$B, ht=^I, il1=\E[L\E[t, ind=^J, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=^M^J,
- rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m,
- smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q,
- smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m,
-pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH, use=pt100,
-pt250|Prime PT250,
- rmso@, smso@, use=pt100,
-pt250w|Prime PT250 in 132-column mode,
- rmso@, smso@, use=pt100w,
-
-#### Qume (qvt)
-#
-# Qume, Inc.
-# 3475-A North 1st Street
-# San Jose CA 95134
-# Vox: (800)-457-4447
-# Fax: (408)-473-1510
-# Net: josed@techsupp.wyse.com (Jose D'Oliveira)
-#
-# Qume was bought by Wyse, but still (as of early 1995) has its own support
-# group and production division.
-#
-# Discontinued Qume models:
-#
-# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
-# built to replace them, and a qvt119+ which was a 101+ with available wide
-# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations
-# and an ANSI-compatible qvt203 that replaced it. Qume started producing
-# ANSI-compatible terminals with the qvt323 and qvt61.
-#
-# Current Qume models (as of February 1995):
-#
-# All current Qume terminals have ANSI-compatible operation modes.
-# Qume is still producing the qvt62, which features emulations for other
-# popular lines such as ADDS, and dual-host capabilities. The qvt82 is
-# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal
-# with many emulations including Wyse370, Wyse 325, etc. Their newest
-# model is the qvt520, which is vt420-compatible.
-#
-# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
-#
-# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
-# setup mode. Shift-s should be a configuration save to NVRAM.
-
-qvt101|qvt108|qume qvt 101 and QVT 108,
- xmc#1, use=qvt101+,
-
-# This used to have <cvvis=\E.2> but no <cnorm> or <civis>. The BSD termcap
-# file had <cvvis=\EM4 \200\200\200>. I've done the safe thing and yanked
-# both. The <rev> is from BSD, which also claimed bold=\E( and dim=\E).
-# What seems to be going on here is that this entry was designed so that
-# the normal highlight is bold and standout is dim plus something else
-# (reverse-video maybe? But then, are there two <rev> sequences?)
-qvt101+|qvt101p|qume qvt 101 PLUS product,
- am, bw, hs, ul,
- cols#80, lines#24, xmc#0,
- bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
- flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdl1=\ER, ked=\EY, kel=\ET,
- kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, rmso=\E(,
- smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
-qvt102|qume qvt 102,
- cnorm=\E., use=qvt101,
-# (qvt103: added <rmam>/<smam> based on init string -- esr)
-qvt103|qume qvt 103,
- am, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>,
- rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-qvt103-w|qume qvt103 132 cols,
- cols#132, lines#24,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103,
-qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals,
- am, hs, mir, msgr,
- cols#80, lines#24, xmc#0,
- bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey,
- el=\Et, flash=\En0$<200>\En1, fsl=^M, home=^^, ht=^I,
- hts=\E1, il1=\EE, ind=^J, is2=\EDF\EC\EG0\Er\E(\E%EX,
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- mc4=\EA, mc5=\E@, ri=\EJ, rmir=\Er, smir=\Eq, smul=\EG8,
- tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
-qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines,
- lines#25, use=qvt119+,
-qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode,
- cols#132,
- is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+,
-qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25,
- lines#25, use=qvt119+,
-qvt203|qvt203+|qume qvt 203 Plus,
- dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
- ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
- kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103,
-qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video),
- cols#132, lines#24,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203,
-#
-# Since a command is present for enabling 25 data lines,
-# a specific terminfo entry may be generated for the 203.
-# If one is desired for the QVT 119 PLUS then 25 lines must
-# be selected in the status line (setup line 9).
-#
-qvt203-25|QVT 203 PLUS with 25 by 80 column mode,
- cols#80, lines#25,
- is2=\E[=40h\E[?3l, use=qvt203,
-qvt203-25-w|QVT 203 PLUS with 25 by 132 columns,
- cols#132, lines#25,
- rs2=\E[?3h\E[=40h, use=qvt203,
-
-#### Televideo (tvi)
-#
-# TeleVideo
-# 550 East Brokaw Road
-# PO Box 49048 95161
-# San Jose CA 95112
-# Vox: (408)-954-8333
-# Fax: (408)-954-0623
-#
-#
-# There are some tvi terminals that require incredible amounts of padding and
-# some that don't. I'm assuming tvi912 and tvi920 are the old slow ones, and
-# tvi912b, tvi912c, tvi920b, tvi920c are the new ones that don't need padding.
-#
-# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer
-# Televideo terminals are ANSI and PC-ANSI compatible.
-
-tvi803|televideo 803,
- clear=\E*$<10>, use=tvi950,
-
-# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
-# Switch settings are:
-#
-# S1 1 2 3 4
-# D D D D 9600
-# D D D U 50
-# D D U D 75
-# D D U U 110
-# D U D D 135
-# D U D U 150
-# D U U D 300
-# D U U U 600
-# U D D D 1200
-# U D D U 1800
-# U D U D 2400
-# U D U U 3600
-# U U D D 4800
-# U U D U 7200
-# U U U D 9600
-# U U U U 19200
-#
-# S1 5 6 7 8
-# U D X D 7N1 (data bits, parity, stop bits) (X means ignored)
-# U D X U 7N2
-# U U D D 7O1
-# U U D U 7O2
-# U U U D 7E1
-# U U U U 7E2
-# D D X D 8N1
-# D D X U 8N2
-# D U D D 8O1
-# D U U U 8E2
-#
-# S1 9 Autowrap
-# U on
-# D off
-#
-# S1 10 CR/LF
-# U do CR/LF when CR received
-# D do CR when CR received
-#
-# S2 1 Mode
-# U block
-# D conversational
-#
-# S2 2 Duplex
-# U half
-# D full
-#
-# S2 3 Hertz
-# U 50
-# D 60
-#
-# S2 4 Edit mode
-# U local
-# D duplex
-#
-# S2 5 Cursor type
-# U underline
-# D block
-#
-# S2 6 Cursor down key
-# U send ^J
-# D send ^V
-#
-# S2 7 Screen colour
-# U green on black
-# D black on green
-#
-# S2 8 DSR status (pin 6)
-# U disconnected
-# D connected
-#
-# S2 9 DCD status (pin 8)
-# U disconnected
-# D duplex
-#
-# S2 10 DTR status (pin 20)
-# U disconnected
-# D duplex
-# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>,
-# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr)
-tvi910|televideo model 910,
- OTbs, am, msgr,
- cols#80, it#8, lines#24, xmc#1,
- bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
- home=\E=\001\001, hpa=\E]%p1%{32}%+%c, ht=^I,
- if=/usr/share/tabset/stdcrt, ind=^J, invis@, kbs=^H,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, kf1=^A@\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-# From: Alan R. Rogers <rogers%albany@csnet-relay>
-# as subsequently hacked over by someone at SCO
-# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr)
-#
-# Here are the 910+'s DIP switches (U = up, D = down, X = don't care):
-#
-# S1 1 2 3 4:
-# D D D D 9600 D D D U 50 D D U D 75 D D U U 110
-# D U D D 135 D U D U 150 D U U D 300 D U U U 600
-# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600
-# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200
-#
-# S1 5 6 7 8:
-# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2
-# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2
-# D U D D 8O1 D U U U 8E2
-#
-# S1 9 Autowrap (U = on, D = off)
-# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received)
-# S2 1 Mode (U = block, D = conversational)
-# S2 2 Duplex (U = half, D = full)
-# S2 3 Hertz (U = 50, D = 60)
-# S2 4 Edit mode (U = local, D = duplex)
-# S2 5 Cursor type (U = underline, D = block)
-# S2 6 Cursor down key (U = send ^J, D = send ^V)
-# S2 7 Screen colour (U = green on black, D = black on green)
-# S2 8 DSR status (pin 6) (U = disconnected, D = connected)
-# S2 9 DCD status (pin 8) (U = disconnected, D = connected)
-# S2 10 DTR status (pin 20) (U = disconnected, D = connected)
-#
-tvi910+|televideo 910+,
- dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>,
- kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r,
- kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r,
- ll=\E=7\s, use=tvi910,
-
-# (tvi912: removed obsolete ":ma=^K^P^L :", added <flash> and
-# <khome> from BRL entry -- esr)
-tvi912|tvi914|tvi920|old televideo 912/914/920,
- OTbs, OTpt, am, msgr,
- cols#80, it#8, lines#24, xmc#1,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER$<33*>, ed=\Ey, el=\ET, flash=\Eb$<50/>\Ed, home=^^,
- ht=^I, hts=\E1, ich1=\EQ, if=/usr/share/tabset/stdcrt,
- il1=\EE$<33*>, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
- kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
- kf9=^AH\r, khome=^^, rmso=\Ek, rmul=\Em, smso=\Ej, smul=\El,
- tbc=\E3,
-# the 912 has a <funct> key that's like shift: <funct>8 xmits "^A8\r".
-# The 920 has this plus real function keys that xmit different things.
-# Terminfo makes you use the funct key on the 912 but the real keys on the 920.
-tvi912c|tvi912b|new televideo 912,
- dl1=\ER$<5*>, il1=\EE$<5*>, use=tvi912,
-# set to page 1 when entering curses application (\E-17 )
-# reset to page 0 when exiting curses application (\E-07 )
-tvi912-2p|tvi920-2p|tvi-2p|televideo w/2 pages,
- rmcup=\E-07\s, smcup=\E-17\s, use=tvi912,
-# We got some new tvi912c terminals that act really weird on the regular
-# termcap, so one of our gurus worked this up. Seems that cursor
-# addressing is broken.
-tvi912cc|tvi912 at cowell college,
- cup@, use=tvi912c,
-
-# Here are the switch settings for the tvi920c:
-#
-# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down:
-# 2: 9600 3: 4800 4: 2400 5: 1200
-# 6: 600 7: 300 8: 150 9: 75
-# 10: 110
-#
-# S2 UART/Terminal options:
-# Up Down
-# 1: Not used Not allowed
-# 2: Alternate character set Standard character set
-# 3: Full duplex Half duplex
-# 4: 50 Hz refresh 60 Hz refresh
-# 5: No parity Send parity
-# 6: 2 stop bits 1 stop bit
-# 7: 8 data bits 7 data bits
-# 8: Not used Not allowed on Rev E or lower
-# 9: Even parity Odd parity
-# 10: Steady cursor Blinking cursor
-# (On Rev E or lower, use W25 instead of switch 10.)
-#
-# S5 UART/Terminal options:
-# Open Closed
-# 1: P3-6 Not connected DSR received on P3-6
-# 2: P3-8 Not connected DCD received on P3-8
-#
-# 3 Open, 4 Open: P3-20 Not connected
-# 3 Open, 4 Closed: DTR on when terminal is on
-# 3 Closed, 4 Open: DTR is connected to RTS
-# 3 Closed, 4 Closed: Not allowed
-#
-# 5 Closed: HDX printer (hardware control) Rev. K with extension port off,
-# all data transmitted out of the modem port (P3) will also be
-# transmitted out of the printer port (P4).
-#
-# 6 Open, 7 Open: Not allowed
-# 6 Open, 7 Closed: 20ma current loop input
-# 6 Closed, 7 Open: RS232 input
-# 6 Closed, 7 Closed: Not allowed
-#
-# Jumper options:
-# If the jumper is installed, the effect will occur (the next time the terminal
-# is switched on).
-#
-# S4/W31: Enables automatic LF upon receipt of CR from
-# remote or keyboard.
-# S4/W32: Enables transmission of EOT at the end of Send. If not
-# installed, a carriage return is sent.
-# S4/W33: Disables automatic carriage return in column 80.
-# S4/W34: Selects Page Print Mode as initial condition. If not
-# installed, Extension Mode is selected.
-#
-tvi920b|tvi920c|new televideo 920,
- dl1=\ER$<5*>, il1=\EE$<5*>, kf0=^AI\r, kf1=^A@\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, use=tvi912,
-
-# Televideo 921 and variants
-# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
-# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
-# also added empty <acsc> to suppress tic warning -- esr)
-tvi921|televideo model 921 with sysline same as page & real vi function,
- OTbs, OTpt, am, hs, xenl, xhp,
- cols#80, lines#24, xmc#0,
- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
- el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
- if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, invis@,
- is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H,
- kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>,
- ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%,
- rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr,
-# without the beeper
-# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
-# also added empty <acsc> to suppress tic warning -- esr)
-tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper,
- am, hs, xenl, xhp,
- cols#80, lines#24, xmc#0,
- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
- el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I,
- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
- invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z,
- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
- kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE,
- nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr,
-# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
-tvi92D|tvi92B with DTR instead of XON/XOFF & better padding,
- dl1=\ER$<2*/>, il1=\EE$<2*/>,
- is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>,
- kil1=\EE$<2*/>, use=tvi92B,
-
-# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>. I put the new strings
-# in from a BSD termcap file because it looks like they do something the
-# old ones skip -- esr)
-tvi924|televideo tvi924,
- am, bw, hs, in, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80, xmc#0,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0,
- cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c,
- cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1,
- dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et,
- flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
- invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0,
- kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r,
- kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r,
- kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r,
- kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^,
- kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4,
- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10,
- pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef,
- use=adm+sgr,
-
-# TVI925 DIP switches. In each of these, D = Down and U = Up,
-#
-# Here are the settings for the external (baud) switches (S1):
-#
-# Position Baud
-# 7 8 9 10 [Printer]
-# 1 2 3 4 [Main RS232]
-# -----------------------------------------------------
-# D D D D 9600
-# D D D U 50
-# D D U D 75
-# D D U U 110
-# D U D D 135
-# D U D U 150
-# D U U D 300
-# D U U U 600
-# U D D D 1200
-# U D D U 1800
-# U D U D 2400
-# U D U U 3600
-# U U D D 4800
-# U U D U 7200
-# U U U D 9600
-# U U U U 19200
-#
-#
-# Settings for word length and stop-bits (S1)
-#
-# Position Description
-# 5 6
-# ---------------------------
-# U - 7-bit word
-# D - 8-bit word
-# - U 2 stop bits
-# - D 1 stop bit
-#
-#
-# S2 (external) settings
-#
-# Position Up Dn Description
-# --------------------------------------------
-# 1 X Local edit
-# X Duplex edit (transmit editing keys)
-# --------------------------------------------
-# 2 X 912/920 emulation
-# X 925
-# --------------------------------------------
-# 3 X
-# 4 X No parity
-# 5 X
-# --------------------------------------------
-# 3 X
-# 4 X Odd parity
-# 5 X
-# --------------------------------------------
-# 3 X
-# 4 X Even parity
-# 5 X
-# --------------------------------------------
-# 3 X
-# 4 X Mark parity
-# 5 X
-# --------------------------------------------
-# 3 X
-# 4 X Space parity
-# 5 X
-# --------------------------------------------
-# 6 X White on black display
-# X Black on white display
-# --------------------------------------------
-# 7 X Half Duplex
-# 8 X
-# --------------------------------------------
-# 7 X Full Duplex
-# 8 X
-# --------------------------------------------
-# 7 X Block mode
-# 8 X
-# --------------------------------------------
-# 9 X 50 Hz
-# X 60 Hz
-# --------------------------------------------
-# 10 X CR/LF (Auto LF)
-# X CR only
-#
-# S3 (internal switch) settings:
-#
-# Position Up Dn Description
-# --------------------------------------------
-# 1 X Keyclick off
-# X Keyclick on
-# --------------------------------------------
-# 2 X English
-# 3 X
-# --------------------------------------------
-# 2 X German
-# 3 X
-# --------------------------------------------
-# 2 X French
-# 3 X
-# --------------------------------------------
-# 2 X Spanish
-# 3 X
-# --------------------------------------------
-# 4 X Blinking block cursor
-# 5 X
-# --------------------------------------------
-# 4 X Blinking underline cursor
-# 5 X
-# --------------------------------------------
-# 4 X Steady block cursor
-# 5 X
-# --------------------------------------------
-# 4 X Steady underline cursor
-# 5 X
-# --------------------------------------------
-# 6 X Screen blanking timer (ON)
-# X Screen blanking timer (OFF)
-# --------------------------------------------
-# 7 X Page attributes
-# X Line attributes
-# --------------------------------------------
-# 8 X DCD disconnected
-# X DCD connected
-# --------------------------------------------
-# 9 X DSR disconnected
-# X DSR connected
-# --------------------------------------------
-# 10 X DTR Disconnected
-# X DTR connected
-# --------------------------------------------
-#
-# (tvi925: BSD has <clear=\E*>. I got <is2> and <ri> from there -- esr)
-tvi925|televideo 925,
- OTbs, am, bw, hs, ul,
- cols#80, lines#24, xmc#1,
- bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^V,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
- flash=\Eb$<200>\Ed, fsl=^M\Eg, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, il1=\EE, ind=^J, invis@, is2=\El\E", kbs=^H, kclr=^Z,
- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
- ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
- kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
- kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, ri=\Ej, tbc=\E3,
- tsl=\Eh\Ef, use=adm+sgr,
-# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL
-# to avoid "magic cookie" standout glitch:
-tvi925-hi|TeleVideo Model 925 with half intensity standout mode,
- xmc@,
- kbs=^H, kcub1=^H, kcud1=^J, rmso=\E(, smso=\E), use=tvi925,
-
-# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
-# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
-# for additional capabilities,
-# The following tvi descriptions from B:pjphar and virus!mike
-# is for all 950s. It sets the following attributes:
-# full duplex (\EDF) write protect off (\E()
-# conversation mode (\EC) graphics mode off (\E%)
-# white on black (\Ed) auto page flip off (\Ew)
-# turn off status line (\Eg) clear status line (\Ef\r)
-# normal video (\E0) monitor mode off (\EX or \Eu)
-# edit mode (\Er) load blank char to space (\Ee\040)
-# line edit mode (\EO) enable buffer control (^O)
-# protect mode off (\E\047) duplex edit keys (\El)
-# program unshifted send key to send line all (\E016)
-# program shifted send key to send line unprotected (\E004)
-# set the following to nulls:
-# field delimiter (\Ex0\200\200)
-# line delimiter (\Ex1\200\200)
-# start-protected field delimiter (\Ex2\200\200)
-# end-protected field delimiter (\Ex3\200\200)
-# set end of text delimiter to carriage return/null (\Ex4\r\200)
-#
-# TVI 950 Switch Setting Reference Charts
-#
-# TABLE 1:
-#
-# S1 1 2 3 4 5 6 7 8 9 10
-# +-----------------------+-----+-----+-----------------------+
-# | Computer Baud Rate |Data |Stop | Printer Baud Rate |
-# | |Bits |Bits | |
-# +------+-----------------------+-----+-----+-----------------------+
-# | Up | See | 7 | 2 | See |
-# +------+-----------------------+-----+-----+-----------------------+
-# | Down | TABLE 2 | 8 | 1 | TABLE 2 |
-# +------+-----------------------+-----+-----+-----------------------+
-#
-#
-# S2 1 2 3 4 5 6 7 8 9 10
-# +-----+-----+-----------------+-----+-----------+-----+-----+
-# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click|
-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
-# | Up | Dplx|Blink| See |GonBk| See | 60 | Off |
-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
-# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On |
-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
-#
-# TABLE 2:
-#
-# +-----------+-----+-----+-----+-----+-----------+
-# | Display | 1 | 2 | 3 | 4 | Baud |
-# +-----------+-----+-----+-----+-----+ |
-# | Printer | 7 | 8 | 9 | 10 | Rate |
-# +-----------+-----+-----+-----+-----+-----------+
-# | D | D | D | D | 9600 |
-# | U | D | D | D | 50 |
-# | D | U | D | D | 75 |
-# | U | U | D | D | 110 |
-# | D | D | U | D | 135 |
-# | U | D | U | D | 150 |
-# | D | U | U | D | 300 |
-# | U | U | U | D | 600 |
-# | D | D | D | U | 1200 |
-# | U | D | D | U | 1800 |
-# | D | U | D | U | 2400 |
-# | U | U | D | U | 3600 |
-# | D | D | U | U | 4800 |
-# | U | D | U | U | 7200 |
-# | D | U | U | U | 9600 |
-# | U | U | U | U | 19200 |
-# +-----+-----+-----+-----+-----------+
-#
-# TABLE 3:
-# +-----+-----+-----+-----------+
-# | 3 | 4 | 5 | Parity |
-# +-----+-----+-----+-----------+
-# | X | X | D | None |
-# | D | D | U | Odd |
-# | D | U | U | Even |
-# | U | D | U | Mark |
-# | U | U | U | Space |
-# +-----+-----+-----+-----------+
-# X = don't care
-#
-# CHART:
-# +-----+-----+-----------------+
-# | 7 | 8 | Communication |
-# +-----+-----+-----------------+
-# | D | D | Half Duplex |
-# | D | U | Full Duplex |
-# | U | D | Block |
-# | U | U | Local |
-# +-----+-----+-----------------+
-#
-# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
-# I also inserted <ich1> and <kich1>; the :ko: string indicated that <ich>
-# should be present and all tvi native modes use the same string for this.
-# Finally, note that BSD has cud1=^V. -- esr)
-tvi950|televideo 950,
- OTbs, am, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, xmc#1,
- acsc=b\011c\014d\re\ni\013, bel=^G, cbt=\EI, clear=\E*,
- cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, el=\Et, flash=\Eb$<200/>\Ed,
- fsl=^M, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=^J,
- invis@,
- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r,
- kbs=^H, kcbt=\EI, kclr=\E*, kcub1=^H, kcud1=^V, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A0\r,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ri=\Ej, rmacs=^X,
- rmir=\Er, smacs=^U, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
- use=adm+sgr,
-#
-# is for 950 with two pages adds the following:
-# set 48 line page (\E\\2)
-# place cursor at page 0, line 24, column 1 (\E-07 )
-# set local (no send) edit keys (\Ek)
-#
-# two page 950 adds the following:
-# when entering ex, set 24 line page (\E\\1)
-# when exiting ex, reset 48 line page (\E\\2)
-# place cursor at 0,24,1 (\E-07 )
-# set duplex (send) edit keys (\El) when entering vi
-# set local (no send) edit keys (\Ek) when exiting vi
-#
-tvi950-2p|televideo950 w/2 pages,
- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07 \011,
- rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
- smkx=\El, use=tvi950,
-#
-# is for 950 with four pages adds the following:
-# set 96 line page (\E\\3)
-# place cursor at page 0, line 24, column 1 (\E-07 )
-#
-# four page 950 adds the following:
-# when entering ex, set 24 line page (\E\\1)
-# when exiting ex, reset 96 line page (\E\\3)
-# place cursor at 0,24,1 (\E-07 )
-#
-tvi950-4p|televideo950 w/4 pages,
- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07 \011,
- rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
- smkx=\El, use=tvi950,
-#
-# <is2> for reverse video 950 changes the following:
-# set reverse video (\Ed)
-#
-# set vb accordingly (\Ed ...delay... \Eb)
-#
-tvi950-rv|televideo950 rev video,
- flash=\Ed$<200/>\Eb,
- is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0,
- use=tvi950,
-
-# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
-tvi950-rv-2p|televideo950 rev video w/2 pages,
- flash=\Ed$<200/>\Eb,
- is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07\s,
- rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
- smkx=\El, use=tvi950,
-
-# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
-tvi950-rv-4p|televideo950 rev video w/4 pages,
- flash=\Ed$<200/>\Eb,
- is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07\s,
- rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
- smkx=\El, use=tvi950,
-# From: Andreas Stolcke <stolcke@icsi.berkeley.edu>
-# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H";
-# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in
-# the :rs: string, inserted the <ich> implied by the termcap :ko: string. Note
-# the :ko: string had :cl: in it, which means that one of the original
-# <clear=\E*>, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what
-# the 950 has. Finally, corrected the <kel> string to match the 950 and what
-# ko implies -- esr)
-# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would
-# also work.
-tvi955|televideo 955,
- OTbs, mc5i, msgr@,
- it#8, xmc@,
- acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2,
- civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH,
- cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1,
- is2=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El, kctab=\E2, khts=\E1,
- knp=\EK, kpp=\EJ, krmir=\EQ, ktbc=\E3, mc0=\EP, rmacs=\E%%,
- rmam=\E[=7l, rmxon=^N,
- rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r,
- sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O,
- use=tvi950,
-tvi955-w|955-w|televideo955 w/132 cols,
- cols#132,
- is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955,
-# use half-intensity as normal mode, full intensity as <bold>
-tvi955-hb|955-hb|televideo955 half-bright,
- bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El,
- sgr0=\EG0\E[=5h, use=tvi955,
-# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
-# (tvi970: removed ":sg#0:"; removed <rmso>=\E[m, <rmul>=\E[m;
-# added <am>/<csr>/<home>/<hpa>/<vpa>/<smcup>/<rmcup> from BRL.
-# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what
-# it does to the function keys. I deduced <rmam>/<smam>.
-# also added empty <acsc> to suppress tic warning, -- esr)
-tvi970|televideo 970,
- OTbs, OTpt, am, da, db, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\ED, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
- cuu1=\EM, cvvis=\E[1Q, dch1=\E[P, dl1=\E[M, dsl=\Eg\Ef\r,
- ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, il1=\E[L,
- is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f,
- kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B,
- rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smacs=\E(B, smam=\E[?7l,
- smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd,
-tvi970-vb|televideo 970 with visual bell,
- flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
- use=tvi970,
-tvi970-2p|televideo 970 with using 2 pages of memory,
- rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q,
- use=tvi970,
-# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars
-# per line (rather than 40), Esc K chooses the normal character set. Not sure
-# padding is needed, but adapted from the tvi920c termcap. The <smso> and
-# <smul> strings are klutzy, but at least use no screen space.
-# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>,
-# its absence means <smam>=\Ev isn't safe to use. -- esr)
-# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
-# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says:
-# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
-tvipt|televideo personal terminal,
- OTbs, am,
- cols#80, lines#24,
- cbt=\EI, clear=^Z, cub1=^H, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER$<5*>,
- ed=\EY, el=\ET, home=^^, if=/usr/share/tabset/stdcrt,
- il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R,
- rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH,
-# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
-tvi9065|televideo 9065,
- am, bw, chts, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0,
- wnum#0, wsl#30,
- acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G,
- blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z,
- cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA,
- cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
- dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY,
- el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
- ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt,
- il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1,
- ip=$<3>,
- is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er,
- is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s,
- kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ll=\E[25;1H,
- mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=^M^J,
- pfkey=\E|%p1%{48}%+%c3%p2%s\031,
- pfloc=\E|%p1%{48}%+%c2%p2%s\031,
- pfx=\E|%p1%{48}%+%c1%p2%s\031,
- pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&,
- rep=\E[%p2%db%p1%c, rev=\EG4,
- rf=/usr/share/tabset/stdcrt, ri=\Ej, rin=\E[%p1%dT,
- rmacs=\E%%, rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H,
- rmdc=\0, rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0,
- rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
- rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1,
- rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0,
- sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p9%t\E$%e\E%%%;,
- sgr0=\EG0, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
- smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
- tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0,
-
-#### Visual (vi)
-#
-# In September 1993, Visual Technology of Westboro, Massachusetts,
-# merged with White Pine Software of Nashua, New Hampshire.
-#
-# White Pine Software may be contacted at +1 603/886-9050.
-# Or visit White Pine on the World Wide Web at URL http://www.wpine.com.
-#
-
-# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
-# Recently I hacked together the following termcap for Visual
-# Technology's Visual 50 terminal. It's a slight modification of
-# the vt52 termcap.
-# It's intended to run when the Visual 50 is in vt52 emulation mode
-# (I know what you're thinking; if it's emulating a vt52, then why
-# another termcap? Well, it turns out that the Visual 50 can handle
-# <dl1> and db(?) among other things, which the vt52 can't)
-# The termcap works OK for the most part. The only problem is on
-# character inserts. The whole line gets painfully redrawn for each
-# character typed. Any suggestions?
-# Beau's entry is combined with the vi50 entry from University of Wisconsin.
-# Note especially the <il1> function. <kf4>-<kf6> are really l4-l6 in
-# disguise; <kf7>-<kf9> are really l1-l3.
-vi50|visual 50,
- OTbs, OTpt, am, da, db, msgr,
- cols#80, it#8, lines#24,
- OTnl=^J, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=^M, cub1=^H,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH,
- ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV,
- kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH,
- nel=^M^J, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES,
-# this one was BSD & SCO's vi50
-vi50adm|visual 50 in adm3a mode,
- am, msgr,
- cols#80, it#8, lines#24,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM,
- ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=^J, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH,
- rmso=\ET, smso=\EU,
-# From: Jeff Siegal <jbs@quiotix.com>
-vi55|Visual 55,
- OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H,
- cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I,
- il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET,
- smir=\Ea, smso=\EU,
-
-# Visual 200 from BRL
-# The following switch settings are assumed for normal operation:
-# FULL_DUPLEX SCROLL CR
-# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE
-# Other switches may be set for operator convenience or communication
-# requirements.
-# Character insertion is kludged in order to get around the "beep" misfeature.
-# (This cap is commented out because <smir>/<rmir> is more efficient -- esr)
-# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>,
-# and <dl1> strings, but we seem to get along fine without them.
-vi200|visual 200,
- OTbs, OTpt, am, mir, msgr,
- OTkn#10, cols#80, it#8, lines#24,
- acsc=, bel=^G, cbt=\Ez, clear=\Ev, cnorm=\Ec, cr=^M, cub1=^H,
- cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, cvvis=\Ed, dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey,
- el=\Ex, home=\EH, ht=^I, hts=\E1, il1=\EL, ind=^J, invis=\Ea,
- kbs=^H, kclr=\Ev, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p,
- kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v,
- kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei,
- kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI,
- rmacs=\EG, rmkx=\E>, rmso=\E3,
- rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF,
- smkx=\E=, smso=\E4, tbc=\Eg,
-# The older Visuals didn't come with function keys. This entry uses
-# <smkx> and <rmkx> so that the keypad keys can be used as function keys.
-# If your version of vi doesn't support function keys you may want
-# to use vi200-f.
-vi200-f|visual 200 no function keys,
- is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q,
- kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w,
- kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@,
- use=vi200,
-vi200-rv|visual 200 reverse video,
- cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200,
-
-# the function keys are programmable but we don't reprogram them to their
-# default values with <is2> because programming them is very verbose. maybe
-# an initialization file should be made for the 300 and they could be stuck
-# in it.
-# (vi300: added <rmam>/<smam> based on init string -- esr)
-vi300|visual 300 ansi x3.64,
- am, bw, mir, xenl,
- cols#80, lines#24,
- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il1=\E[L, ind=^J,
- is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\,
- kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\,
- kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l,
- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
- smso=\E[1m, smul=\E[4m,
-# some of the vi300s have older firmware that has the command
-# sequence for setting editing extent reversed.
-vi300-old|visual 300 with old firmware (set edit extent reversed),
- is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s,
- use=vi300,
-
-# Visual 500 prototype entry from University of Wisconsin.
-# The best place to look for the escape sequences is page A1-1 of the
-# Visual 500 manual. The initialization sequence given here may be
-# overkill, but it does leave out some of the initializations which can
-# be done with the menus in set-up mode.
-# The :xp: line below is so that emacs can understand the padding requirements
-# of this slow terminal. :xp: is 10 time the padding factor.
-# (vi500: removed unknown :xp#4: termcap;
-# also added empty <acsc> to suppress tic warning -- esr)
-vi500|visual 500,
- am, mir, msgr,
- cols#80, it#8, lines#33,
- acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M,
- csr=\E(%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- dch1=\EO$<3*/>, dl1=\EM$<3*/>, ed=\Ey$<3*/>,
- el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>,
- ind=^J,
- is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- khome=\EH, nel=^M^J, rmacs=^O, rmir=\Ej, rmso=\E^G,
- rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D,
-
-# The visual 550 is a visual 300 with tektronix graphics,
-# and with 33 lines. clear screen is modified here to
-# also clear the graphics.
-vi550|visual 550 ansi x3.64,
- lines#33,
- clear=\030\E[H\E[2J, use=vi300,
-
-vi603|visual603|visual 603,
- hs, mir,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
- csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L,
- ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r,
- rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~,
- use=vt100,
-
-#### Wyse (wy)
-#
-# Wyse Technology
-# 3471 North First Street
-# San Jose, CA 95134
-# Vox: (408)-473-1200
-# Fax: (408) 473-1222
-# Web: http://www.wyse.com
-#
-# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at
-# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the
-# obvious address, <http://www.wyse.com>. They keep terminfo entries at
-# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>.
-#
-# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995.
-# They now own the Qume and Amdek brands, too. So these are the people to
-# talk with about all Link, Qume, and Amdek terminals.
-#
-# These entries include a few small fixes.
-# I canceled the bel capacities in the vb entries.
-# I made two trivial syntax fixes in the wyse30 entry.
-# I made some entries relative to adm+sgr.
-#
-#
-# Note: The wyse75, wyse85, and wyse99 have been discontinued.
-
-# Although the Wyse 30 can support more than one attribute
-# it requires magic cookies to do so. Many applications do not
-# function well with magic cookies. The following terminfo uses
-# the protect mode to support one attribute (dim) without cookies.
-# If more than one attribute is needed then the wy30-mc terminfo
-# should be used.
-#
-wy30|wyse30|Wyse 30,
- am, bw, hs, mc5i, mir, msgr, xon,
- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
- civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>,
- dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9,
- fsl=^M, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>,
- ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024,
- kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T,
- mc5=^X, nel=^M^J, pfx=\Ez%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>,
- rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
- sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
- smso=\E`7\E), tbc=\E0, tsl=\EF,
-#
-# This terminal description uses the non-hidden attribute mode
-# (with magic cookie).
-#
-# (wy30-mc: added <smcup> to suppress tic warning --esr)
-wy30-mc|wyse30-mc|wyse 30 with magic cookies,
- msgr@,
- ma@, xmc#1,
- blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003,
- rmcup=\EG0, rmso=\EG0,
- sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
- smso=\EG4, use=wy30, use=adm+sgr,
-# The mandatory pause used by <flash> does not work with
-# older versions of terminfo. If you see this effect then
-# unset xon and delete the / from the delay.
-# i.e. change $<100/> to $<100>
-wy30-vb|wyse30-vb|wyse 30 visible bell,
- bel@, use=wy30,
-#
-# The Wyse 50 can support one attribute (e.g. Dim, Inverse,
-# Normal) without magic cookies by using the protect mode.
-# The following description uses this feature, but when more
-# than one attribute is put on the screen at once, all attributes
-# will be changed to be the same as the last attribute given.
-# The Wyse 50 can support more attributes when used with magic
-# cookies. The wy50-mc terminal description uses magic cookies
-# to correctly handle multiple attributes on a screen.
-#
-wy50|wyse50|Wyse 50,
- am, bw, hs, mc5i, mir, msgr, xon,
- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
- civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r,
- ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
- home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>,
- is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H,
- kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW,
- kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J,
- pfx=\Ez%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E),
- ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
- sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
- smso=\E`6\E), tbc=\E0, tsl=\EF,
-#
-# This terminal description uses the non-hidden attribute mode
-# (with magic cookie).
-#
-# The mandatory pause used by flash does not work with some
-# older versions of terminfo. If you see this effect then
-# unset <xon> and delete the / from the delay.
-# i.e. change $<100/> to $<100>
-# (wy50-mc: added <smcup> to suppress tic warning --esr)
-wy50-mc|wyse50-mc|wyse 50 with magic cookies,
- msgr@,
- ma@, xmc#1,
- blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4,
- rmacs=\EG0\EH\003, rmcup=\EG0, rmso=\EG0,
- sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
- smso=\EGt, use=wy50, use=adm+sgr,
-wy50-vb|wyse50-vb|wyse 50 visible bell,
- bel@, use=wy50,
-wy50-w|wyse50-w|wyse 50 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
- use=wy50,
-wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell,
- bel@, use=wy50-w,
-
-#
-# The Wyse 350 is a Wyse 50 with color.
-# Unfortunately this means that it has magic cookies.
-# The color attributes are designed to overlap the reverse, dim and
-# underline attributes. This is nice for monochrome applications
-# because you can make underline stuff green (or any other color)
-# but for true color applications it's not so hot because you cannot
-# mix color with reverse, dim or underline.
-# To further complicate things one of the attributes must be
-# black (either the foreground or the background). In reverse video
-# the background changes color with black letters. In normal video
-# the foreground changes colors on a black background.
-# This terminfo uses some of the more advanced features of curses
-# to display both color and blink. In the final analysis I am not
-# sure that the wy350 runs better with this terminfo than it does
-# with the wy50 terminfo (with user adjusted colors).
-#
-# The mandatory pause used by flash does not work with
-# older versions of terminfo. If you see this effect then
-# unset xon and delete the / from the delay.
-# i.e. change $<100/> to $<100>
-#
-# Bug: The <op> capability resets attributes.
-wy350|wyse350|Wyse 350,
- am, bw, hs, mc5i, mir, xon,
- colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8,
- wsl#45, xmc#1,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
- cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>,
- dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET,
- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
- il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>,
- is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
- ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, oc=\E%?, op=\EG0,
- pfx=\Ez%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\EG0\E), ri=\Ej,
- rmacs=\EG0\EH\003, rmir=\Er, rmln=\EA11, setb=,
- setf=%?%p1%{0}%=%t%{76}%e%p1%{1}%=%t%{64}%e%p1%{2}%=%t%{8}%e%p1%{3}%=%t%{72}%e%p1%{4}%=%t%{4}%e%p1%{5}%=%t%{68}%e%p1%{6}%=%t%{12}%e%p1%{7}%=%t%{0}%;%PC\EG%gC%gA%+%{48}%+%c,
- sgr=%{0}%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;%PA\EG%?%gC%t%gC%e%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p5%t%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002,
- smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr,
-wy350-vb|wyse350-vb|wyse 350 visible bell,
- bel@, use=wy350,
-wy350-w|wyse350-w|wyse 350 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
- use=wy350,
-wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell,
- bel@, use=wy350-w,
-#
-# This terminfo description is untested.
-# The wyse100 emulates an adm31, so the adm31 entry should work.
-#
-wy100|wyse 100,
- hs, mir,
- cols#80, lines#24, xmc#1,
- bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=^M, il1=\EE, ind=^J,
- invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=\E{,
- rmir=\Er, smir=\Eq, tsl=\EF, use=adm+sgr,
-#
-# The Wyse 120/150 has most of the features of the Wyse 60.
-# This terminal does not need padding up to 9600 baud!
-# <msgr> should be set but the clear screen fails when in
-# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
-# then set <msgr>.
-#
-wy120|wyse120|wy150|wyse150|Wyse 120/150,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=\011$<1>,
- hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
- is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
- rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11,
- rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
- rs3=\EwG\Ee($<100>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
- smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
- rs2=\E`;$<70>, use=wy120,
-#
-wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy120,
-#
-wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy120-w,
-#
-wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell,
- bel@, use=wy120,
-#
-wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell,
- bel@, use=wy120-w,
-#
-# The Wyse 60 is like the Wyse 50 but with more padding.
-# The reset strings are slow and the pad times very depending
-# on other parameters such as font loading. I have tried
-# to follow the following outline:
-#
-# <rs1> -> set personality
-# <rs2> -> set number of columns
-# <rs3> -> set number of lines
-# <is1> -> select the proper font
-# <is2> -> do the initialization
-# <is3> -> set up display memory (2 pages)
-#
-# The Wyse 60's that have vt100 emulation are slower than the
-# older Wyse 60's. This change happened mid-1987.
-# The capabilities effected are <dch1> <dl1> <il1> <ind> <ri>
-#
-# The meta key is only half right. This terminal will return the
-# high order bit set when you hit CTRL-function_key
-#
-# It may be useful to assign two function keys with the
-# values \E=(\s look at old data in page 1
-# \E=W, look at bottom of page 1
-# where \s is a space ( ).
-#
-# Note:
-# The Wyse 60 runs faster when the XON/XOFF
-# handshake is turned off.
-#
-# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
-wy60|wyse60|Wyse 60,
- am, bw, hs, km, mc5i, mir, msgr,
- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r,
- ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
- home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>,
- ip=$<3>, is1=\EcB0\EcC1,
- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
- is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
- rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew1, rmir=\Er,
- rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<150>,
- rs2=\EeG$<150>, rs3=\EwG\Ee($<200>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
- smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy60-w|wyse60-w|wyse 60 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>,
- rs2=\EeF$<150>\E`;$<150>, use=wy60,
-#
-wy60-25|wyse60-25|wyse 60 80-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<200>, use=wy60,
-wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<200>, use=wy60-w,
-#
-wy60-42|wyse60-42|wyse 60 80-column 42-lines,
- lines#42,
- clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>,
- dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>,
- ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>,
- ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60,
-wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines,
- cols#132, lw#7, nlab#16, wsl#97,
- clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>,
- dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>,
- nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42,
-#
-wy60-43|wyse60-43|wyse 60 80-column 43-lines,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\Ee+$<150>, use=wy60-42,
-wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\Ee+$<150>, use=wy60-42-w,
-#
-wy60-vb|wyse60-vb|Wyse 60 visible bell,
- bel@, use=wy60,
-wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell,
- bel@, use=wy60-w,
-
-# The Wyse-99GT looks at lot like the Wyse 60 except that it
-# does not have the 42/43 line mode. In the Wyse-60 the "lines"
-# setup parameter controls the number of lines on the screen.
-# For the Wyse 99GT the "lines" setup parameter controls the
-# number of lines in a page. The screen can display 25 lines max.
-# The Wyse-99GT also has personalities for the VT220 and
-# Tektronix 4014. But this has no bearing on the native mode.
-#
-# (msgr) should be set but the clear screen fails when in
-# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
-# then set msgr, else use msgr@.
-#
-# u0 -> enter Tektronix mode
-# u1 -> exit Tektronix mode
-#
-wy99gt|wyse99gt|Wyse 99gt,
- msgr@,
- clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>,
- el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>,
- il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@,
- ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1,
- u0=\E~>\E8, u1=\E[42h, use=wy60,
-#
-wy99gt-w|wyse99gt-w|wyse 99gt 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>,
- dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>,
- use=wy99gt,
-#
-wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt,
-#
-wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs2=\E`;$<150>, use=wy99gt-w,
-#
-wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell,
- bel@, use=wy99gt,
-#
-wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell,
- bel@, use=wy99gt-w,
-
-# Can't set tabs! Other bugs (ANSI mode only):
-# - can't redefine function keys (anyway, key redefinition in ANSI mode
-# is too much complex to be described);
-# - meta key can't be described (the terminal forgets it when reset);
-# The xon-xoff handshaking can't be disabled while in ansi personality, so
-# emacs can't work at speed greater than 9600 baud. No padding is needed at
-# this speed.
-# dch1 has been commented out because it causes annoying glittering when
-# vi deletes one character at the beginning of a line with tabs in it.
-# dch makes sysgen(1M) have a horrible behaviour when deleting
-# a screen and makes screen(1) behave badly, so it is disabled too. The nice
-# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
-# not, so smir and rmir are commented out as well.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard),
- am, km, mc5i, mir, msgr, xenl,
- cols#80, it#8, lines#25, vt#3,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>,
- cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED,
- cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>,
- enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\n$<1>, invis=\E[8m,
- is2=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i,
- kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf17=\E[K, kf18=\E[31~, kf19=\E[32~, kf2=\EOQ,
- kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~,
- kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h,
- mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E\E[4i,
- sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;,
- sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
-
-# This is the american terminal. Here tabs work fine.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
- hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi,
-
-# This terminal (firmware version 02) has a lot of bugs:
-# - can't set tabs;
-# - other bugs in ANSI modes (see above).
-# This description disables handshaking when using cup. This is because
-# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal
-# cannot be used at speeds greater than 9600 baud, because at greater
-# speeds handshaking is needed even for character sending. If you use
-# DTR handshaking, you can use even greater speeds.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, it#8, lines#25, wsl#46,
- acsc='x+y.wI~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
- blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
- cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r,
- ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>,
- flash=\E\^1$<30/>\E\^0, fsl=^M, home=^^, ht=^I, il1=\EE,
- ind=^J, invis=\EG3,
- is2=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024,
- ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r,
- kf16=^Ac\r, kf17=^Ad\r, kf18=^Ae\r, kf19=^Af\r, kf2=^AA\r,
- kf20=^Ag\r, kf21=^Ah\r, kf22=^Ai\r, kf23=^Aj\r, kf24=^Ak\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, kprt=\EP, mc0=\EP, mc4=^T, mc5=\Ed#,
- nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed.,
- rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30,
- rs2=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024,
- sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?%p9%t\EcE%e\EcD%;,
- sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30,
- smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF,
-
-# This is the american terminal. Here tabs work.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
- hts=\E1, tbc=\E0, use=wy99f,
-
-#
-# The Wyse 160 is combination of the WY-60 and the WY-99gt.
-# The reset strings are slow and the pad times very depending
-# on other parameters such as font loading. I have tried
-# to follow the following outline:
-#
-# <rs1> -> set personality
-# <rs2> -> set number of columns
-# <rs3> -> set number of lines
-# <is1> -> select the proper font
-# <is2> -> do the initialization
-# <is3> -> set up display memory (2 pages)
-#
-# The display memory may be used for either text or graphics.
-# When "Display Memory = Shared" the terminal will have more pages
-# but garbage may be left on the screen when you switch from
-# graphics to text. If "Display Memory = Unshared" then the
-# text area will be only one page long.
-#
-# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
-wy160|wyse160|Wyse 160,
- am, bw, hs, km, mc5i, mir, msgr,
- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
- dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>,
- el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=^M, home=\E{, ht=^I,
- hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1,
- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
- is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<1>,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>,
- rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er,
- rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>,
- rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
- smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy160-w|wyse160-w|wyse 160 132-column,
- cols#132, lw#7, nlab#16, wsl#90,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>,
- rs2=\EeF$<150>\E`;$<150>, use=wy160,
-#
-wy160-25|wyse160-25|wyse 160 80-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<200>, use=wy160,
-wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<200>, use=wy160-w,
-#
-wy160-42|wyse160-42|wyse 160 80-column 42-lines,
- lines#42,
- clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>,
- ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>,
- rs3=\Ee*$<150>, use=wy160,
-wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines,
- cols#132, lw#7, nlab#16, wsl#90,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>,
- rs2=\EeF$<150>\E`;$<150>, use=wy160-42,
-#
-wy160-43|wyse160-43|wyse 160 80-column 43-lines,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\Ee+$<150>, use=wy160-42,
-wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\Ee+$<150>, use=wy160-42-w,
-#
-wy160-vb|wyse160-vb|Wyse 160 visible bell,
- bel@, use=wy160,
-wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell,
- bel@, use=wy160-w,
-#
-# The Wyse 75 is a vt100 lookalike without advanced video.
-#
-# The Wyse 75 can support one attribute (e.g. Dim, Inverse,
-# Underline) without magic cookies. The following description
-# uses this capability, but when more than one attribute is
-# put on the screen at once, all attributes will be changed
-# to be the same as the last attribute given.
-# The Wyse 75 can support more attributes when used with magic
-# cookies. The wy75-mc terminal description uses magic cookies
-# to correctly handle multiple attributes on a screen.
-#
-wy75|wyse75|wyse 75,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, lines#24, ma#1, pb#1201, wsl#78,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<30>,
- cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr$<2>,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP$<3*>,
- dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>,
- dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001,
- ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E)0, flash=\E[30h\E\,\E[30l$<250>, fsl=^A,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
- ind=\n$<2>, ip=$<1>,
- is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h,
- is2=\E>\E(B\E)0\017, is3=\E[m, ka1=\EOw, ka3=\EOy,
- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K, kent=\EOM,
- kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i,
- kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~,
- kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i,
- mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
- rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l,
- sc=\E7,
- sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
- tbc=\E[3g, tsl=\E[>\,\001,
-#
-# This terminal description uses the non-hidden attribute mode
-# (with magic cookie).
-#
-wy75-mc|wyse75-mc|wyse 75 with magic cookies,
- msgr@,
- ma@, xmc#1,
- blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p,
- rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p,
- sgr=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;,
- sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p,
- use=wy75,
-wy75-vb|wyse75-vb|wyse 75 with visible bell,
- pb@,
- bel@, use=wy75,
-wy75-w|wyse75-w|wyse 75 in 132 column mode,
- cols#132, wsl#130,
- rs2=\E[35h\E[?3h$<80>, use=wy75,
-wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
- pb@,
- bel@, use=wy75-w,
-#
-# Wyse 85 emulating a vt220 7 bit mode.
-# 24 line screen with status line.
-#
-# The vt220 mode permits more function keys but it wipes out
-# the escape key. I strongly recommend that <f11> be set to
-# escape (esc).
-# The terminal may have to be set for 8 data bits and 2 stop
-# bits for the arrow keys to work.
-# The Wyse 85 runs faster with XON/XOFF enabled. Also the
-# <dch> and <ich> work best when XON/XOFF is set. <ich> and
-# <dch> leave trash on the screen when used without XON/XOFF.
-#
-wy85|wyse85|wyse 85,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf1=\EOP,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
- kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~,
- knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3,
- lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
- ri=\EM$<3>, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
- rmso=\E[m, rmul=\E[m, rs1=\E[13l\E[3l\E!p,
- rs2=\E[35h\E[?3l$<70>, rs3=\E[?5l, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[40h\E7\E[25;%i%p1%dH,
-#
-# Wyse 85 with visual bell.
-wy85-vb|wyse85-vb|wyse 85 with visible bell,
- bel@, flash=\E[30h\E\,\E[30l$<300>, use=wy85,
-#
-# Wyse 85 in 132-column mode.
-wy85-w|wyse85-w|wyse 85 in 132-column mode,
- cols#132, wsl#132,
- rs2=\E[35h\E[?3h$<70>, use=wy85,
-#
-# Wyse 85 in 132-column mode with visual bell.
-wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
- bel@, use=wy85-w,
-
-# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
-# This copes with an apparent firmware bug in the wy85. He writes:
-# "What I did was change leave the terminal cursor keys set to Normal
-# (instead of application), and change \E[ to \233 for all the keys in
-# terminfo. At one point, I found some reference indicating that this
-# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
-# me), but I can't find that and the server under my bookmark to "Wyse
-# Technical" isn't responding. So there's the question of wether the wy85
-# terminfo should reflect the manufactuer's intended behaviour of the terminal
-# or the actual."
-wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B,
- kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM,
- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
- kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~,
- kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ,
- kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~,
- kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~,
- khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~,
- kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
- rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
- rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
- rs3=\E[?5l, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[40h\E7\E[25;%i%p1%dH,
-#
-# Wyse 185 emulating a vt320 7 bit mode.
-#
-# This terminal always displays 25 lines. These lines may be used
-# as 24 data lines and a terminal status line (top or bottom) or
-# 25 data lines. The 48 and 50 line modes change the page size
-# and not the number of lines on the screen.
-#
-# The Compose Character key can be used as a meta key if changed
-# by set-up.
-#
-wy185|wyse185|wyse 185,
- am, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>,
- dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
- dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>,
- el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[30h\E\,\E[30l$<100>, fsl=\E[1;24r\E8,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
- ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h,
- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kent=\EOM,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<2>,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l, rmkx=\E>,
- rmso=\E[27m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
-#
-# Wyse 185 with 24 data lines and top status (terminal status)
-wy185-24|wyse185-24|wyse 185 with 24 data lines,
- hs@,
- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
- use=wy185,
-#
-# Wyse 185 with visual bell.
-wy185-vb|wyse185-vb|wyse 185+flash,
- bel@, use=wy185,
-#
-# Wyse 185 in 132-column mode.
-wy185-w|wyse185-w|wyse 185 in 132-column mode,
- cols#132, wsl#132,
- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
- ip=$<7>, rs2=\E[35h\E[?3h, use=wy185,
-#
-# Wyse 185 in 132-column mode with visual bell.
-wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
- bel@, use=wy185-w,
-
-# wy325 terminfo entries
-# Done by Joe H. Davis 3-9-92
-
-# lines 25 columns 80
-#
-wy325|wyse325|Wyse epc,
- am, bw, hs, mc5i, mir,
- cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
- il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
- is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
- is3=\Ew0$<16>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq,
- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
- mc0=\EP, mc4=^T, mc5=\Ed#,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
- rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11,
- rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
- rs3=\EwG\Ee($<100>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
- smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0,
- tsl=\EF, use=adm+sgr,
-
-#
-# lines 24 columns 80 vb
-#
-wy325-vb|wyse325-vb|wyse-325 with visual bell,
- bel@, use=wy325,
-
-#
-# lines 24 columns 132
-#
-wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
- rs2=\E`;$<70>, use=wy325,
-#
-# lines 25 columns 80
-#
-wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325,
-#
-# lines 25 columns 132
-#
-wy325-25w|wyse325-25w|wy325 132 columns,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 25 columns 132 vb
-#
-wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video,
- bel@, use=wy325-w,
-
-#
-# lines 42 columns 80
-#
-wy325-42|wyse325-42|wyse-325 42 lines,
- lh@, lines#42, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325,
-#
-# lines 42 columns 132
-#
-wy325-42w|wyse325-42w|wyse-325 42 lines wide mode,
- lh@, lines#42, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 42 columns 132 vb
-#
-wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell,
- bel@, use=wy325-w,
-#
-# lines 43 columns 80
-#
-wy325-43|wyse325-43|wyse-325 43 lines,
- lh@, lines#43, lw@, nlab@,
- pln@, use=wy325,
-#
-# lines 43 columns 132
-#
-wy325-43w|wyse325-43w|wyse-325 43 lines wide mode,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 43 columns 132 vb
-#
-wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell,
- bel@, use=wy325-w,
-
-# Wyse 370 -- 24 line screen with status line.
-#
-# The terminal may have to be set for 8 data bits and 2 stop
-# bits for the arrow keys to work.
-#
-# If you change keyboards the terminal will send different
-# escape sequences.
-# The following definition is for the basic terminal without
-# function keys.
-#
-# <u0> -> enter Tektronix 4010/4014 mode
-# <u1> -> exit Tektronix 4010/4014 mode
-# <u2> -> enter ASCII mode (from any ANSI mode)
-# <u3> -> exit ASCII mode (goto native ANSI mode)
-# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode)
-# <u5> -> exit Tek 4207 mode (goto native ANSI mode)
-#
-# Bug: The <op> capability resets attributes.
-wy370-nk|wyse 370 without function keys,
- am, ccc, hs, mc5i, mir, msgr, xenl, xon,
- colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>,
- dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
- dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>,
- el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0,
- flash=\E[30h\E\,\E[30l$<300>, fsl=\E[1;24r\E8,
- home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH,
- ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
- ind=\n$<2>,
- initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e%p2%{750}%<%t%{32}%e%{48}%;%?%p3%{250}%<%t%{0}%e%p3%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;%{1}%+%+%+%dw,
- invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>,
- is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h,
- is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i,
- mc5=\E[5i,
- oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w\E[66;5;51w\E[66;6;61w\E[66;7;64w,
- op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O,
- rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l,
- rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>,
- rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH,
- u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B,
- u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd,
-#
-# Function key set for the ASCII (wy-50 compatible) keyboard
-# This is the default 370.
-#
-wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i,
- kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP,
- knp=\E[U, kpp=\E[V, use=wy370-nk,
-#
-# Function key set for the VT-320 (and wy85) compatible keyboard
-#
-wy370-105k|Wyse 370 with 105 key keyboard,
- ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kent=\EOM, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
- use=wy370-nk,
-#
-# Function key set for the PC compatible keyboard
-#
-wy370-EPC|Wyse 370 with 102 key keyboard,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk,
-#
-# Wyse 370 with visual bell.
-wy370-vb|Wyse 370 with visible bell,
- bel@, use=wy370,
-#
-# Wyse 370 in 132-column mode.
-wy370-w|Wyse 370 in 132-column mode,
- cols#132, wsl#132,
- rs2=\E[35h\E[?3h$<70>, use=wy370,
-#
-# Wyse 370 in 132-column mode with visual bell.
-wy370-wvb|Wyse 370 with visible bell 132-columns,
- flash=\E[30h\E\,\E[30l$<300>, use=wy370-w,
-wy370-rv|Wyse 370 reverse video,
- rs3=\E[32h\E[?5h, use=wy370,
-#
-# Wyse 99gt Tektronix 4010/4014 emulator,
-#
-wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator,
- am, os,
- cols#74, lines#35,
- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
- cup=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
- cuu1=^K, ff=^L,
- hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
- home=^]7`x @\037,
- hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
- is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h,
-#
-# Wyse 160 Tektronix 4010/4014 emulator,
-#
-wy160-tek|Wyse 160 Tektronix 4010/4014 emulator,
- cup=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
- home=^]8`g @\037, use=wy99gt-tek,
-#
-# Wyse 370 Tektronix 4010/4014 emulator,
-#
-wy370-tek|Wyse 370 Tektronix 4010/4014 emulator,
- am, os,
- cols#80, lines#36,
- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
- cup=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037,
- cuu1=^K, ff=^L,
- hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
- home=^]8g @\037,
- hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
- is2=\E8, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^I, kcuu1=^K,
- nel=^M^J, u0=\E[?38h\E8, u1=\E[?38l\E)0,
-
-# Vendor-supplied Wyse entries end here.
-
-#
-#TITLE: TERMINFO ENTRY WY520
-#DATE: 8/5/93
-# The WY520 terminfo is based on the WY285 entry published on the WYSE
-# BBS with the addition of more function keys and special keys.
-#
-# rs1 -> set personality
-# rs2 -> set number of columns
-# rs3 -> set number of lines
-# is1 -> select the proper font
-# is2 -> do the initialization
-# is3 -> If this string is empty then rs3 gets sent.
-#
-# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
-# - The BS key is programmed to generate BS in smcup since
-# is2 doesn't seem to work.
-# - Remove and shift/Remove: delete a character
-# - Insert : enter insert mode
-# - Find : delete to end of file
-# - Select : clear a line
-# - F11, F12, F13: send default sequences (not ESC, BS, LF)
-# - F14 : Home key
-# - Bottom status line (host writable line) is used.
-# - smkx,rmkx are removed because this would put the numeric
-# keypad in Dec application mode which doesn't seem to work
-# with SCO applications.
-#
-wy520|wyse520|wyse 520,
- am, hs, km, mc5i, mir, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>,
- dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~,
- ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K,
- enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
- il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h,
- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOu, kb2=\EOy,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~,
- kel=\E[4~, kent=\EOM, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
- ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
- rmso=\E[m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
- smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
- vpa=\E[%i%p1%dd,
-#
-# Wyse 520 with 24 data lines and status (terminal status)
-wy520-24|wyse520-24|wyse 520 with 24 data lines,
- hs@,
- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
- use=wy520,
-#
-# Wyse 520 with visual bell.
-wy520-vb|wyse520-vb|wyse 520 with visible bell,
- flash=\E[30h\E\,\E[30l$<100>, use=wy520,
-#
-# Wyse 520 in 132-column mode.
-wy520-w|wyse520-w|wyse 520 in 132-column mode,
- cols#132, wsl#132,
- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
- ip=$<7>, rs2=\E[35h\E[?3h, use=wy520,
-#
-# Wyse 520 in 132-column mode with visual bell.
-wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns,
- flash=\E[30h\E\,\E[30l$<100>, use=wy520-w,
-#
-#
-# Wyse 520 emulating a vt420 7 bit mode.
-# The DEL key is programmed to generate BS in is2.
-# With EPC keyboard.
-# - 'End' key will clear till end of line on EPC keyboard
-# - Shift/End : ignored.
-# - Insert : enter insert mode.
-# - Delete : delete a character (have to change interrupt character
-# to CTRL-C: stty intr '^c') for it to work since the
-# Delete key sends 7FH.
-wy520-epc|wyse520-epc|wyse 520 with EPC keyboard,
- kdch1=\177, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~,
- kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H,
- use=wy520,
-#
-# Wyse 520 with 24 data lines and status (terminal status)
-# with EPC keyboard.
-wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard,
- hs@,
- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
- use=wy520-epc,
-#
-# Wyse 520 with visual bell.
-wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard,
- flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc,
-#
-# Wyse 520 in 132-column mode.
-wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard,
- cols#132, wsl#132,
- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
- ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc,
-#
-# Wyse 520 in 132-column mode with visual bell.
-wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard,
- flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc-w,
-#
-# Wyse 520 in 80-column, 36 lines
-wy520-36|wyse520-36|wyse 520 with 36 data lines,
- hs@,
- lines#36,
- dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
- use=wy520,
-#
-# Wyse 520 in 80-column, 48 lines
-wy520-48|wyse520-48|wyse 520 with 48 data lines,
- hs@,
- lines#48,
- dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
- use=wy520,
-#
-# Wyse 520 in 132-column, 36 lines
-wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines,
- cols#132, wsl#132,
- rs2=\E[?3h,
- rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
- use=wy520-36,
-#
-# Wyse 520 in 132-column, 48 lines
-wy520-48w|wyse520-48w|wyse 520 with 48 data lines,
- cols#132, wsl#132,
- rs2=\E[?3h,
- rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
- use=wy520-48,
-#
-#
-# Wyse 520 in 80-column, 36 lines with EPC keyboard
-wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard,
- hs@,
- lines#36,
- dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
- use=wy520-epc,
-#
-# Wyse 520 in 80-column, 48 lines with EPC keyboard
-wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard,
- hs@,
- lines#48,
- dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
- use=wy520-epc,
-#
-# Wyse 520 in 132-column, 36 lines with EPC keyboard
-wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard,
- cols#132, wsl#132,
- rs2=\E[?3h,
- rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
- use=wy520-36pc,
-#
-# Wyse 520 in 132-column, 48 lines with EPC keyboard
-wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard,
- cols#132, wsl#132,
- rs2=\E[?3h,
- rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
- use=wy520-48pc,
-
-# From: John Gilmore <hoptoad!gnu@lll-crg.arpa>
-# (wyse-vp: removed <if=/usr/share/tabset/wyse-adds>, there's no such
-# file and we don't know what <hts> is -- esr)
-wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW,
- dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=^J,
- is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=^J, kcuf1=^F,
- kcuu1=^Z, khome=^A, ll=^A^Z, nel=^M^J, rmir=\Er, rmso=^O,
- rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N,
- smul=^N,
-
-wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad,
- is2=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- khome=\EOH, rmkx=\E[?1l\E>$<10/>, smkx=\E[?1h\E=$<10/>,
- use=wy75,
-
-# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu>
-wy100q|Wyse 100 for Quotron,
- OTbs,
- cols#80, lines#24, xmc#1,
- cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@,
- is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr,
-
-#### Kermit terminal emulations
-#
-# Obsolete Kermit versions may be listed in the section describing obsolete
-# non-ANSI terminal emulators later in the file.
-#
-
-# KERMIT standard all versions.
-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
-# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 9-25-84
-kermit|standard kermit,
- OTbs,
- cols#80, lines#24,
- clear=\EE, cub1=^H, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH, is2=K0 Standard Kermit 9-25-84\n,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-kermit-am|standard kermit plus auto-margin,
- am,
- is2=K1 Standard Kermit plus Automatic Margins\n,
- use=kermit,
-# IBMPC Kermit 1.2.
-# Bugs: <ed>, <el>: do not work except at beginning of line! <clear> does
-# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of
-# line).
-# From: greg small <gts@populi.berkeley.edu> 8-30-84
-pckermit|pckermit12|UCB IBMPC Kermit 1.2,
- am,
- lines#25,
- clear=\EH\EJ, ed@, el@,
- is2=K2 UCB IBMPC Kermit 1.2 8-30-84\n, use=kermit,
-# IBMPC Kermit 1.20
-# Cannot use line 25, now acts funny like ansi special scrolling region.
-# Initialization must escape from that region by cursor position to line 24.
-# Cannot use character insert because 1.20 goes crazy if insert at col 80.
-# Does not use :am: because autowrap is lost when kermit dropped and restarted.
-# From: greg small <gts@populi.berkeley.edu> 12-19-84
-pckermit120|UCB IBMPC Kermit 1.20,
- it#8, lines#24,
- cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I,
- il1=\EL,
- is2=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n,
- rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit,
-# MS-DOS Kermit 2.27 for the IBMPC
-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
-# Cannot use line 25, now acts funny like ansi special scrolling region.
-# Initialization must escape from that region by cursor position to line 24.
-# Does not use am: because autowrap is lost when kermit dropped and restarted.
-# Reverse video for standout like H19.
-# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 3-17-85
-msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC,
- OTbs, am@,
- cols#80, it#8, lines#24,
- clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- cvvis=\EO\Eq\EG\EwK4, dch1=\EN, dl1=\EM, ed=\EJ, el=\EK,
- home=\EH, ht=^I, il1=\EL,
- is2=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rc=\Ek,
- rmir=\EO, rmso=\Eq, sc=\Ej, smir=\E@, smso=\Ep,
-# MS-DOS Kermit 2.27 with automatic margins
-# From: greg small <gts@populi.berkeley.edu> 3-17-85
-msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins,
- am,
- cvvis=\EO\Eq\EG\EvK5,
- is2=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n,
- use=msk227,
-# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC
-# Automatic margins now default. Use ansi <sgr> for highlights.
-# Define function keys.
-# (msk22714: removed obsolete ":kn#10:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 3-17-85
-msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC,
- am,
- bold=\E[1m, cvvis=\EO\Eq\EG\EvK6,
- is2=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n,
- kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6,
- kf7=\E7, kf8=\E8, kf9=\E9, rev=\E[7m, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smso=\E[1m, smul=\E[4m, use=mskermit227,
-# This was designed for a VT320 emulator, but it is probably a good start
-# at support for the VT320 itself.
-# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
-# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
-vt320-k3|MS-Kermit 3.00's vt320 emulation,
- am, eslok, hs, km, mir, msgr, xenl,
- cols#80, it#8, lines#49, pb#9600, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cmdch=\E, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
- fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is2=\E>\E F\E[?1l\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E[4i\E[?4i\E[m\E[r\E[2$~,
- sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd,
-# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
-# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996
-# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr)
-vt320-k311|dec vt320 series as defined by kermit 3.11,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[;H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt100, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
- smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
-
-######## NON-ANSI TERMINAL EMULATIONS
-#
-
-#### Avatar
-#
-# These entries attempt to describe Avatar, a terminal emulation used with
-# MS-DOS bulletin-board systems. It was designed to give ANSI-like
-# capabilities, but with cheaper (shorter) control sequences. Messy design,
-# excessively dependent on PC idiosyncracies, but apparently rather popular
-# in the BBS world.
-#
-# No color support. Avatar doesn't fit either of the Tektronix or HP color
-# models that terminfo knows about. An Avatar color attribute is the
-# low 7 bits of the IBM-PC display-memory attribute. Bletch.
-#
-# I wrote these entries while looking at the Avatar spec. I don't have
-# the facilities to test them. Let me know if they work, or don't.
-#
-# Avatar escapes not used by these entries (because maybe you're smarter
-# and more motivated than I am and can figure out how to wrap terminfo
-# around some of them, and because they are weird enough to be funny):
-# level 0:
-# ^L -- clear window/reset current attribute to default
-# ^V^A%p1%c -- set current color attribute, parameter decodes as follows:
-#
-# bit: 6 5 4 3 2 1 0
-# | | | | |
-# +---+---+ | +---+---+
-# | | |
-# | | foreground color
-# | foreground intensity
-# background color
-# level 0+:
-# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines
-# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines
-# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1
-# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1
-# (^V^L and ^V^M set the current attribute as a side-effect.)
-# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes
-# in the pattern, <c> the number of times the pattern
-# should be repeated. If either value is 0, no-op.
-# The pattern can contain Avatar console codes,
-# including other ^V ^Y patterns.
-# level 1:
-# ^V^O -- clockwise mode on; turn print direction right each time you
-# hit a window edge (yes, really). Turned off by CR
-# ^V^P -- no-op
-# ^V^Q%c -- query the driver
-# ^V^R -- driver reset
-# ^V^S -- Sound tone (PC-specific)
-# ^V^T -- change highlight at current cursor poition to %c
-# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b>
-# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
-# -- define window
-#
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to
-# tell ncurses that the corresponding highlights exist; it should use <sgr>,
-# which is the only method that will actually work for multiple highlights.)
-avatar0|avatar terminal emulator level 0,
- am, bce, msgr,
- cols#80, it#8, lines#25,
- blink=^A^V\177, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
- cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G,
- ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%d, rev=^A^Vp,
- rs2=^L,
- sgr=\026\001%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p4%t{128}%|%;%?%p6%t%{16}%|%;,
- sgr0=^V^A^G, smacs=, smso=^A^Vp, smul=^V^A, use=klone+acs,
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-avatar0+|avatar terminal emulator level 0+,
- dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0,
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-avatar|avatar1|avatar terminal emulator level 1,
- civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+,
- rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+,
-
-#### RBcomm
-#
-# RBComm is a lean and mean terminal emulator written by the Interrupt List
-# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
-# '90s), especially in the BBS world, and still has some loyal users due to
-# its very small memory footprint and to a cute macro language.
-rbcomm|IBM PC with RBcomm and EMACS keybindings,
- am, bw, mir, msgr, xenl,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^C, cuf1=^B,
- cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^,
- cvvis=\E[?25h, dch1=^W, dl=\E[%p1%dM, dl1=^Z,
- ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I, il=\E[%p1%dL, il1=^K,
- ind=\ED, invis=\E[8m,
- is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
- kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED,
- rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
- rmir=^], rmkx=\E>, rmso=^U, rmul=^U,
- rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m,
- smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T,
-rbcomm-nam|IBM PC with RBcomm without autowrap,
- am@,
- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
-rbcomm-w|IBM PC with RBcomm in 132 column mode,
- cols#132,
- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
-
-######## LCD DISPLAYS
-#
-
-#### Matrix Orbital
-# from: Eric Z. Ayers (eric@ale.org)
-#
-# Matrix Orbital 20x4 LCD display
-# Command Character is 0xFE (decimal 254, octal 376)
-#
-# On this device, cursor addressability isn't possible. The LCD expects:
-# 0xfe G <col> <row>
-# for cup: %p1 == row and %p2 is column
-#
-# This line:
-# cup=\376G%p2%c%p1%c
-# LOOKS like it will work, but sometimes only one of the two numbers is sent.
-# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'.
-#
-# Alas, there is no cursor upline capability on this display.
-#
-# These entries add some 'sanity stuff' to the clear function. That is, it
-# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping,
-# and turns off the cursor blinking and stuff like that.
-#
-# NOTE: calling 'beep' turns on the backlight (bell)
-# NOTE: calling 'flash' turns it on and back off (visual bell)
-#
-MtxOrb| Generic Matrix Orbital LCD display,
- bel=\376B^A, clear=\376X\376C\376R\376K\376T,
- cnorm=\376K\376T, cub1=\376L, cuf1=\376M,
- flash=\376B\001$<200>\376F, home=\376H,
-MtxOrb204| 20x4 Matrix Orbital LCD display,
- cols#20, lines#4, use=MtxOrb,
-MtxOrb162| 16x2 Matrix Orbital LCD display,
- cols#16, lines#2, use=MtxOrb,
-# The end
-
-######## OLDER TERMINAL TYPES
-#
-# This section is devoted to older commercial terminal brands that are now
-# discontinued, but known to be still in use or represented by emulations.
-#
-
-#### AT&T (att, tty)
-#
-# This section also includes Teletype-branded VDTs.
-#
-# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now
-# Boundless Technologies); for details, see the header comment on the ADDS
-# section.
-#
-# These are AT&T's official terminfo entries. All-caps aliases have been
-# removed.
-#
-att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode,
- am, eo, mir, msgr, xon,
- cols#80, it#8, lines#24,
- bel=^G, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcbt=\E[Z, kclr=\E[J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r,
- kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r,
- kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r,
- kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H,
- kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h,
- smso=\E[7m,
-att2350|AT&T 2350 Video Information Terminal 80 column mode,
- mc0@, mc4@, mc5@, use=att2300,
-
-# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
-# Seems upward compatible with vt100, plus ins/del line/char.
-# On sgr, the protection parameter is ignored.
-# No check is made to make sure that only 3 parameters are output.
-# standout= reverse + half-intensity = 3 | 5.
-# bold= reverse + underline = 2 | 3.
-# note that half-bright blinking doesn't look different from normal blinking.
-# NOTE:you must program the function keys first, label second!
-# (att4410: a BSD entry has been seen with the following capabilities:
-# <is2=\E[?6l>, <kf1=\EOc>, <kf2=\EOd>, <kf3=\EOe>, <kf4=\EOg>,
-# <kf6=\EOh>, <kf7=\EOi>, <kf8=\EOj>, -- esr)
-att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1,
- am, hs, mir, msgr, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
- acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m,
- dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I,
- ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, is1=\E[?3l\E)0,
- is3=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW,
- kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
- kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H,
- ll=\E[24H, nel=^M^J,
- pfx=\E[%p1%1d;%p2%l%2.2dq f%p1%1d %p2%s,
- pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
- sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%p1%{1}%+%dH,
-
-att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1,
- cols#132, wsl#132,
- is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att5410v1,
-
-att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2,
- OTbs,
- pfx=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s,
- use=att5410v1,
-
-att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode,
- cols#132, wsl#132,
- is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410,
-
-# 5410 in terms of a vt100
-# (v5410: added <rmam>/<smam> based on init string -- esr)
-v5410|att5410 in terms of a vt100,
- am, mir, msgr, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@,
- il1=\E[L, ind=^J, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H,
- kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\EOx,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt, kf6=\EOu, kf7=\EOv,
- kf8=\EOl, kf9=\EOw, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
- rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
- 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%;,
- 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,
-
-#
-# Teletype Model 5420 -- A souped up 5410, with multiple windows,
-# even! the 5420 has three modes: scroll, window or page mode
-# this terminfo should work in scroll or window mode, but doesn't
-# take advantage of any of the differences between them.
-#
-# Has memory below (2 lines!)
-# 3 pages of memory (plus some spare)
-# The 5410 sequences for <cup>, <cvvis>, <dch>, <dl>, <ech>, <flash>, <home>,
-# <hpa>, <hts> would work for these, but these work in both scroll and window
-# mode... Unset insert character so insert mode works
-# <is1> sets 80 column mode,
-# <is2> escape sequence:
-# 1) turn off all fonts
-# 2) function keys off, keyboard lock off, control display off,
-# insert mode off, erasure mode off,
-# 3) full duplex, monitor mode off, send graphics off, nl on lf off
-# 4) reset origin mode
-# 5) set line wraparound
-# 6) exit erasure mode, positional attribute mode, and erasure extent mode
-# 7) clear margins
-# 8) program ENTER to transmit ^J,
-# We use \212 to program the ^J because a bare ^J will get translated by
-# UNIX into a CR/LF. The enter key is needed for AT&T uOMS.
-# 1 2 3 4 5 6 7 8
-# <is3> set screen color to black,
-# No representation in terminfo for the delete word key: kdw1=\Ed
-# Key capabilities assume the power-up send sequence...
-# This <rmcup> is not strictly necessary, but it helps maximize
-# memory usefulness: <rmcup=\Ez>,
-# Alternate sgr0: <sgr0=\E[m\EW^O>,
-# Alternate sgr: <sgr=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;>,
-# smkx programs the SYS PF keys to send a set sequence.
-# It also sets up labels f1, f2, ..., f8, and sends edit keys.
-# This string causes them to send the strings <kf1>-<kf8>
-# when pressed in SYS PF mode.
-# (att4415: I added <rmam>/<smam> based on the init string -- esr)
-att4415|tty5420|att5420|AT&T 4415/5420 80 cols,
- OTbs, db, mir, xon,
- lh#2, lm#78, lw#8, nlab#8, wsl#55,
- cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD,
- cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx,
- cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP,
- dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD,
- flash=\E[?5h$<200>\E[?5l, home=\E[x,
- hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@,
- il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>,
- is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212,
- is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M,
- kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, kf2=\EOd,
- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
- kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
- kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
- lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?2i, mc4=\E[?9i,
- mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
- rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
- smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
- use=att4410,
-
-att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols,
- cols#132, lm#54, wsl#97,
- is1=\E[?3h$<100>, use=att4415,
-
-att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv,
- flash=\E[?5l$<200>\E[?5h, is3=\E[?5h, use=att4415,
-
-att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv,
- cols#132, lm#54, wsl#97,
- flash=\E[?5l$<200>\E[?5h, is1=\E[?3h$<100>, is3=\E[?5h,
- use=att4415,
-
-# Note that this mode permits programming USER PF KEYS and labels
-# However, when you program user pf labels you have to reselect
-# user pf keys to make them appear!
-att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
- pfx=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s,
- pln=\E[%p1%d;0;0;1q%p2%:-16.16s,
-
-att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
- use=att4415,
-
-att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
- use=att4415-rv,
-
-att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
- use=att4415-w,
-
-att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
- use=att4415-w-rv,
-
-att5420_2|AT&T 5420 model 2 80 cols,
- am, db, hs, mir, msgr, xon,
- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
- cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cvvis=\E[11;1j,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, el=\E[0K,
- el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
- invis=\E[8m,
- is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
- kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
- kel=\E[2K, kend=\Ez, kent=^J, kf1=\EOc, kf2=\EOd, kf3=\EOe,
- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H,
- kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
- kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
- lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i,
- mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=^M^J,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s\E~,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j,
- rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
- sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
-att5420_2-w|AT&T 5420 model 2 in 132 column mode,
- cols#132,
- is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
- use=att5420_2,
-
-att4418|att5418|AT&T 5418 80 cols,
- am, xon,
- cols#80, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H,
- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=^J,
- is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@,
- kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h,
- kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I,
- kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E,
- kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j,
- kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8,
- rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7,
- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
-att4418-w|att5418-w|AT&T 5418 132 cols,
- cols#132,
- is1=\E[?3h, use=att5418,
-
-att4420|tty4420|teletype 4420,
- OTbs, da, db, eo, msgr, ul, xon,
- cols#80, lines#24, lm#72,
- bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s,
- kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH,
- kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET,
- lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~,
- rmul=\EZ, smdc@, smso=\E}, smul=\E\\,
-
-# The following is a terminfo entry for the Teletype 4424
-# asynchronous keyboard-display terminal. It supports
-# the vi editor. The terminal must be set up as follows,
-#
-# HIGHLIGHT DEFINITION 3-TONE
-# DISPLAY FUNCTION GROUP III
-#
-# The second entry below provides limited (a la adm3a)
-# operation under GROUP II.
-#
-# This must be used with DISPLAY FUNCTION GROUP I or III
-# and HIGHLIGHT DEFINITION 3-TONE
-# The terminal has either bold or blink, depending on options
-#
-# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr)
-att4424|tty4424|teletype 4424,
- OTbs, am, xon,
- cols#80, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA,
- dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM,
- ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=^J, is2=\E[20l\E[?7h,
- kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~,
- rmul=\EZ,
- sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m,
- sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
- tbc=\EF,
-
-att4424-1|tty4424-1|teletype 4424 in display function group I,
- kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@,
- use=att4424,
-
-# This entry is not one of AT&T's official ones, it was translated from the
-# 4.4BSD termcap file. The highlight strings are different from att4424.
-# I have no idea why this is -- older firmware version, maybe?
-# The following two lines are the comment originally attached to the entry:
-# This entry appears to avoid the top line - I have no idea why.
-# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
-att4424m|tty4424m|teletype 4424M,
- am, da, db, mir,
- cols#80, it#8, lines#23,
- bel=^G, clear=\E[2;H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP,
- dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=^J, ip=$<2/>,
- is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, nel=^M^J, ri=\ET, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
-# The Teletype 5425 is really version 2 of the Teletype 5420. It
-# is quite similar, except for some minor differences. No page
-# mode, for example, so all of the <cup> sequences used above have
-# to change back to what's being used for the 5410. Many of the
-# option settings have changed their numbering as well.
-#
-# This has been tested on a preliminary model.
-#
-# (att5425: added <rmam>/<smam> based on the init string -- esr)
-att5425|tty5425|att4425|AT&T 4425/5425,
- am, da, db, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[12;0j, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
- invis=\E[8m, is1=\E<\E[?3l$<100>,
- is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212,
- is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc,
- kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
- kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T,
- kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i,
- nel=^M^J,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
- rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
- vpa=\E[%p1%{1}%+%dd,
-
-att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels,
- smkx=\E[21;1j\E[25;4j\Eent, use=att4425,
-
-att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode,
- cols#132, lm#54, wsl#97,
- is1=\E[?3h$<100>, use=tty5425,
-
-# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
-# I also added <rmam>/<smam> -- esr)
-att4426|tty4426|teletype 4426S,
- am, da, db, xon,
- cols#80, lines#24, lm#48,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
- cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EA, dch=\E[%p1%dP, dch1=\EP,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
- hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
- il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS,
- is1=\Ec\E[?7h, is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO,
- kclr=\E[2J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H,
- nel=^M^J, rc=\E8, rev=\E[7m, ri=\ET, rin=\E[%p1%dT,
- rmacs=\E(B, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
- rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B, smacs=\E(0,
- smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%p1%dd,
-
-# Terminfo entry for the AT&T 510 A Personal Terminal
-# Function keys 9 - 16 are available only after the
-# screen labeled (soft keys/action blocks) are labeled. Function key
-# 9 corresponds to the leftmost touch target on the screen,
-# function key 16 corresponds to the rightmost.
-#
-# This entry is based on one done by Ernie Rice at Summit, NJ and
-# changed by Anne Gallup, Skokie, IL, ttrdc!anne
-att510a|bct510a|AT&T 510A Personal Terminal,
- am, mir, msgr, xenl, xon,
- cols#80, lh#2, lines#24, lw#7, nlab#8,
- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[1B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
- el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I,
- hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E(B\E)1\E[2l,
- is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm,
- kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh,
- kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe,
- kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T,
- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7,
- sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-
-# Terminfo entry for the AT&T 510 D Personal Terminal
-# Function keys 9 through 16 are accessed by bringing up the
-# system blocks.
-# Function key 9 corresponds to the leftmost touch target on the screen,
-# function key 16 corresponds to the rightmost.
-#
-# There are problems with soft key labeling. These are due to
-# strangenesses in the native terminal that are impossible to
-# describe in a terminfo.
-att510d|bct510d|AT&T 510D Personal Terminal,
- am, da, db, mir, msgr, xenl, xon,
- cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8,
- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
- el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
- invis=\E[8m, is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212,
- kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd,
- kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi,
- kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf,
- kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2,
- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|,
- rmln=\E<, rmso=\E[m, rmul=\E[m, rmxon=\E[29;1|,
- rs2=\E[5;0|, sc=\E7,
- sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h,
- smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m,
- smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
-
-# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
-att500|att513|AT&T 513 using page mode,
- am, chts, mir, msgr, xenl, xon,
- cols#80, lh#2, lines#24, lw#8, nlab#8,
- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[11;0|, cr=^M,
- csr=%i\E[%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- indn=\E[%p1%dE, invis=\E[8m,
- is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l,
- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
- kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK,
- kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ,
- kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY,
- kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw,
- kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
- kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent,
- kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm,
- khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi,
- kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
- kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
- kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB,
- ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, ll=\E#2,
- mc0=\E[?98l\E[0i, mc4=\E[?98l\E[?8i, mc5=\E[?98l\E[?4i,
- nel=\EE,
- pfkey=\E[%p1%d;%p2%l%d;3;0p F%p1%d %p2%s,
- pfloc=\E[%p1%d;%p2%l%d;2;0p F%p1%d %p2%s,
- pfx=\E[%p1%d;%p2%l%d;1;0p F%p1%d %p2%s,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l,
- rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m,
- rmul=\E[m,
- rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l,
- rs2=\E[5;0|, sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h,
- smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
-
-# 01-07-88
-# printer must be set to EMUL ANSI to accept ESC codes
-# <cuu1> stops at top margin
-# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
-# and alt font ascii,wrap on,tabs cleared
-# <is2> disables newline on LF,Emphasized off
-# The <u0> capability sets form length
-att5310|att5320|AT&T Model 53210 or 5320 matrix printer,
- xhpa, xvpa,
- bufsz#8192, cols#132, cps#120, it#8, lines#66, orc#10,
- orhi#100, orl#12, orvi#72,
- cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;,
- cr=^M,
- csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;,
- cud=\E[%p1%de, cud1=^J, cuf=\E[%p1%da, cuf1=\s, cuu1=\EM,
- ff=^L, hpa=\E[%p1%d`, ht=^I, is1=\Ec, is2=\E[20l\r,
- lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;,
- rshm=\E[m,
- scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;,
- smgbp=\E[;%p1%dr, smglp=\E[%{1}%p1%+%ds,
- smgrp=\E[;%{1}%p1%+%ds, smgtp=\E[%p1%dr, sshm=\E[5m,
- u0=\E[%p1%dt, vpa=\E[%p1%dd,
-
-# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL
-# The following SET-UP modes are assumed for normal operation:
-# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements. This termcap description is for the Resident Terminal Mode.
-# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# The BRL entry also said: UNSAFE :ll=\E[70H:
-att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs,
- am, xon,
- cols#88, it#8, lines#70, vt#3,
- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=^H, kclr=\E[2J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- kll=\E[70;1H, nel=^M^J, rc=\E8, ri=\E[T, rin=\E[%p1%dT,
- rs1=\Ec, sc=\E7,
-
-# 5620 terminfo (2.0 or later ROMS with char attributes)
-# The following SET-UP modes are assumed for normal operation:
-# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements. This termcap description is for Resident Terminal Mode. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# assumptions: <ind> (scroll forward one line) is only done at screen bottom
-# Be aware that older versions of the dmd have a firmware bug that affects
-# parameter defaulting; for this terminal, the 0 in \E[0m is not optional.
-# <msgr> is from an otherwise inferior BRL for this terminal. That entry
-# also has <ll>=\E[70H commented out and marked unsafe.
-# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
-att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns,
- OTbs, am, msgr, npc, xon,
- cols#88, it#8, lines#70,
- bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=^M, cub1=^H,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=^J,
- pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T,
- rin=\E[%p1%dT, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7,
- sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer,
- lines#24, use=att5620,
-att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer,
- lines#34, use=att5620,
-# 5620 layer running the "S" system's downloaded graphics handler:
-att5620-s|tty5620-s|layer|vitty|5620 S layer,
- OTbs, OTpt, am,
- cols#80, it#8, lines#72,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED,
- el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=^J, kbs=^H, kclr=\E[2J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- kll=\E[70;1H,
-
-# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
-#
-# Entries for <kf29> thru <kf46> refer to the alternate keypad mode
-# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER
-att605|AT&T 605 80 column 102key keyboard,
- am, eo, xon,
- cols#80, lines#24, lw#8, nlab#8, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il1=\E[L, ind=^J, invis=\E[8m,
- is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017,
- kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq,
- kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD,
- kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH,
- kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ,
- kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe,
- kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx,
- kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv,
- kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs,
- kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh,
- kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@,
- kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H,
- mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
- rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016,
- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%i%p1%dx,
-att605-pc|ATT 605 in pc term mode,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
- kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
- kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I,
- rmsc=400\E[50;0|, smsc=250\E[?11l\E[50;1|, xoffc=g,
- xonc=e, use=att605,
-att605-w|AT&T 605-w 132 column 102 key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0,
- use=att605,
-# (att610: I added <rmam>/<smam> based on the init string. I also
-# added <indn> and <rin> because the BSD file says the att615s have them,
-# and the 615 is like a 610 with a big keyboard, and most of their other
-# smart terminals support the same sequence -- esr)
-att610|AT&T 610; 80 column; 98key keyboard,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- indn=\E[%p1%dS, invis=\E[8m,
- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
- kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i,
- nel=\EE,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
- rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
-att610-w|AT&T 610; 132 column; 98key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
- use=att610,
-
-att610-103k|AT&T 610; 80 column; 103key keyboard,
- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
- kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
- kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
- kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
- kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
- kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf9@, kfnd=\EOx,
- khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, kmsg=\EOl,
- knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V,
- kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, kres=\EOq,
- krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ksav=\EOo,
- kslt=\ENI, kspd=\EOp, kund=\EOs, use=att610,
-att610-103k-w|AT&T 610; 132 column; 103key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
- use=att610-103k,
-att615|AT&T 615; 80 column; 98key keyboard,
- kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
- kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
- kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
- kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
- kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
- kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610,
-att615-w|AT&T 615; 132 column; 98key keyboard,
- kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
- kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
- kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
- kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
- kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
- kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610-w,
-att615-103k|AT&T 615; 80 column; 103key keyboard,
- kLFT=\E[ A, kRIT=\E[ @, use=att610-103k,
-att615-103k-w|AT&T 615; 132 column; 103key keyboard,
- kLFT=\E[ A, kRIT=\E[ @, use=att610-103k-w,
-# (att620: I added <rmam>/<smam> based on the init string and
-# <rin>/<indn> from a BSD termcap -- esr)
-att620|AT&T 620; 80 column; 98key keyboard,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- indn=\E[%p1%dS, invis=\E[8m,
- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE,
- kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI,
- kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR,
- kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ,
- kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy,
- kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf,
- kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp,
- kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
- kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H,
- mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l,
- rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
- rs2=\Ec\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%i%p1%dx,
-att620-w|AT&T 620; 132 column; 98key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
- use=att620,
-att620-103k|AT&T 620; 80 column; 103key keyboard,
- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
- kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
- kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
- kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
- kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
- kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, kf17@,
- kf18@, kf19@, kf20@, kf21@, kf22@, kf23@, kf24@, kf25@, kf26@, kf27@,
- kf28@, kf29@, kf30@, kf31@, kf32@, kf33@, kf34@, kf35@, kf36@, kf37@,
- kf38@, kf39@, kf40@, kf41@, kf42@, kf43@, kf44@, kf45@, kf46@, kf9@,
- kfnd=\EOx, khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi,
- kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
- kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
- kres=\EOq, krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB,
- ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, use=att620,
-
-att620-103k-w|AT&T 620; 132 column; 103key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
- use=att620-103k,
-
-# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal
-# The following SETUP modes are assumed for normal operation:
-# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF
-# Font_Size=Large Non-Layers_Window_Cols=80
-# Non-Layers_Window_Rows=60
-# Other SETUP modes may be set for operator convenience or communication
-# requirements. Some capabilities assume a printer attached to the Aux EIA
-# port. This termcap description is for the Fixed Non-Layers Window. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (att630: added <ich1>, <blink> and <dim> from a BSD termcap file -- esr)
-att630|AT&T 630 windowing terminal,
- OTbs, am, da, db, mir, msgr, npc, xon,
- cols#80, it#8, lines#60, lm#0,
- bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, is2=\E[m,
- kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kent=^M,
- kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt,
- kf15=\ENu, kf16=\ENv, kf17=\ENw, kf18=\ENx, kf19=\ENy,
- kf20=\ENz, kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~,
- kf9=\ENo, khome=\E[H, kich1=\E[@, kil1=\E[L, mc4=\E[?4i,
- mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, rs2=\Ec, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m,
- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
- lines#24, use=att630,
-
-# This is the att700 entry for 700 native emulation of the AT&T 700
-# terminal. Comments are relative to changes from the 605V2 entry and
-# att730 on which the entry is based. Comments show the terminfo
-# capability name, termcap name, and description.
-#
-# Here is what's going onm in the init string:
-# ESC [ 50;4| set 700 native mode (really is 605)
-# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line)
-# ESC [ 53;0| set GenFlow to Xon/Xoff
-# ESC [ 8 ;0| set CR on NL
-# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h)
-# ESC [ ? 4 l jump scroll
-# ESC [ ? 5 l/h video: normal (l); reverse (h)
-# ESC [ ?13 l Labels on
-# ESC [ ?15 l parity check = no
-# ESC [ 13 l monitor mode off
-# ESC [ 20 l LF on NL (not CRLF on NL)
-# ESC [ ? 7 h autowrap on
-# ESC [ 12 h local echo off
-# ESC ( B GO = ASCII
-# ESC ) 0 G1 = Special Char & Line Drawing
-# ESC [ ? 31 l Set 7 bit controls
-#
-# Note: Most terminals, especially the 600 family use Reverse Video for
-# standout mode. DEC also uses reverse video. The VT100 uses bold in addition
-# Assume we should stay with reverse video for 70.. However, the 605V2 exits
-# standout mode with \E[m (all normal attributes). The 730 entry simply
-# exits reverse video which would leave other current attributes intact. It
-# was assumed the 730 entry to be more correct so rmso has changed. The
-# 605V2 has no sequences to turn individual attributes off, thus its setting
-# and the rmso/smso settings from the 730.
-#
-# Note: For the same reason as above in rmso I changed exit under-score mode
-# to specifically turn off underscore, rather than return to all normal
-# attributes
-#
-# Note: The following pkey_xmit is taken from the 605V2 which contained the
-# capability as pfxl. It was changed here to pfx since pfxl
-# will only compile successfully with Unix 4.0 tic. Also note that pfx only
-# allows strings to be parameters and label values must be programmed as
-# constant strings. Supposedly the pfxl of Version 4.0 allows both labels
-# and strings to be parameters. The 605V2 pfx entry should be examined later
-# in this regard. For reference the 730 pfxl entry is shown here for comparison
-# 730 pfx entry:
-# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s
-# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
-#
-# (for 4.0 tic)
-# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
-#
-# (for <4.0 tic)
-# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
-#
-# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9
-#
-# Port1 Interface
-#
-# modular 10 pin Connector
-# Left side Right side
-# Pin 1 2 3 4 5 6 7 8 9 10
-#
-# Key (notch) at bottom
-#
-# Pin 1 DSR
-# 3 DCD
-# 4 DTR
-# 5 Sig Ground
-# 6 RD
-# 7 SD
-# 8 CTS
-# 9 RTS
-# 10 Frame Ground
-#
-# The manual is 189 pages and is loaded with details about the escape codes,
-# etc..... Available from AT&T CIC 800-432-6600...
-# ask for Document number 999-300-660..
-#
-att700|AT&T 700 24x80 column display w/102key keyboard,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4,
- fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m,
- is2=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017,
- is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z,
- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp,
- kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC,
- kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd,
- kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP,
- kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq,
- kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu,
- kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu,
- kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr,
- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
- kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H,
- mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
- pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
- rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m,
- rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m,
- smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g,
- tsl=\E7\E[99;%i%p1%dx,
-
-# This entry was modified 3/13/90 by JWE.
-# fixes include additions of <enacs>, correcting <rep>, and modification
-# of <kHOM>. (See comments below)
-# att730 has status line of 80 chars
-# These were commented out: <indn=\E[%p1%dS>, <rin=\E[%p1%dT>,
-# the <kf25> and up keys are used for shifted system Fkeys
-# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
-# currently the same as <khome> (unshifted HOME or \E[H). On the 102, 102+1
-# and 122 key keyboards, the 730's translation is \E[2J. For consistency
-# <kHOM> has been commented out. The user can uncomment <kHOM> if using the
-# 102, 102+1, or 122 key keyboards
-# kHOM=\E[2J,
-# (att730: I added <rmam>/<smam> based on the init string -- esr)
-att730|AT&T 730 windowing terminal,
- am, da, db, eslok, hs, mir, msgr, npc, xenl, xon,
- cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
- home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\ED, invis=\E[8m,
- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw,
- kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{,
- kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD,
- kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH,
- kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ,
- kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf,
- kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ,
- kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
- kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T,
- mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
- pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq SYS F%p1%:-2d %e;0;3q%;%p2%s,
- pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m,
- rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h,
- swidm=\E#6, tsl=\E7\E[;%i%p1%dx,
-att730-41|730MTG-41|AT&T 730-41 windowing terminal Version,
- lines#41, use=att730,
-att730-24|730MTG-24|AT&T 730-24 windowing terminal Version,
- lines#24, use=att730,
-att730r|730MTGr|AT&T 730 rev video windowing terminal Version,
- flash=\E[?5l$<200>\E[?5h,
- is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B,
- use=att730,
-att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version,
- lines#41, use=att730r,
-att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version,
- lines#24, use=att730r,
-
-# The following represents the screen layout along with the associated
-# bezel buttons for the 5430/pt505 terminal. The "kf" designations do
-# not appear on the screen but are shown to reference the bezel buttons.
-# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate
-# position relative to the screen.
-#
-#
-#
-# +----------------------------------------------------------------+
-# | |
-# XXXX | kf0 kf24 | XXXX
-# | |
-# | |
-# XXXX | kf1 kf23 | XXXX
-# | |
-# | |
-# XXXX | kf2 kf22 | XXXX
-# | |
-# | |
-# XXXX | kf3 kf21 | XXXX
-# | |
-# | |
-# XXXX | kf4 kf20 | XXXX
-# | |
-# | |
-# XXXX | kf5 kf19 | XXXX
-# | |
-# | |
-# XXXX | kf6 kf18 | XXXX
-# | |
-# | |
-# XXXX | | XXXX
-# | |
-# | |
-# +----------------------------------------------------------------+
-#
-# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
-#
-# Note: XXXX represents the screen buttons
-# CMD REDRAW
-#
-# MAIL
-#
-# version 1 note:
-# The character string sent by key 'kf26' may be user programmable
-# to send either \E[16s, or \E[26s.
-# The character string sent by key 'krfr' may be user programmable
-# to send either \E[17s, or \E[27s.
-#
-# Depression of the "CMD" key sends \E! (kcmd)
-# Depression of the "MAIL" key sends \E[26s (kf26)
-# "REDRAW" same as "REFRESH" (krfr)
-#
-# "kf" functions adds carriage return to output string if terminal is in
-# 'new line' mode.
-#
-# The following are functions not covered in the table above:
-#
-# Set keyboard character (SKC): \EPn1;Pn2w
-# Pn1= 0 Back Space key
-# Pn1= 1 Break key
-# Pn2= Program char (hex)
-#
-# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t
-# Pn1= Window number (1-39)
-# Pn2-Pn5= Y;X;Y;X coordinates
-#
-# Screen Selection (SSL): \E[Pnu
-# Pn= Window number
-#
-# Set Terminal Modes (SM): \E[Pnh
-# Pn= 3 Graphics mode
-# Pn= > Cursor blink
-# Pn= < Enter new line mode
-# Pn= = Enter reverse insert/replace mode
-# Pn= ? Enter no scroll mode
-#
-# Reset Terminal Mode (RM): \E[Pnl
-# Pn= 3 Exit graphics mode
-# Pn= > Exit cursor blink
-# Pn= < Exit new line mode
-# Pn= = Exit reverse insert/replace mode
-# Pn= ? Exit no scroll mode
-#
-# Screen Status Report (SSR): \E[Pnp
-# Pn= 0 Request current window number
-# Pn= 1 Request current window dimensions
-#
-# Device Status Report (DSR): \E[6n Request cursor position
-#
-# Call Status Report (CSR): \E[Pnv
-# Pn= 0 Call failed
-# Pn= 1 Call successful
-#
-# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string
-# Pn1= Button number to be loaded
-# Pn2= Character count of "string"
-# Pn3= Key mode being loaded:
-# 0= Unshifted
-# 1= Shifted
-# 2= Control
-# String= Text string (15 chars max)
-#
-# Screen Number Report (SNR): \E[Pnp
-# Pn= Screen number
-#
-# Screen Dimension Report (SDR): \E[Pn1;Pn2r
-# Pn1= Number of rows available in window
-# Pn2= Number of columns available in window
-#
-# Cursor Position Report (CPR): \E[Pn1;Pn2R
-# Pn1= "Y" Position of cursor
-# Pn2= "X" Position of cursor
-#
-# Request Answer Back (RAB): \E[c
-#
-# Answer Back Response (ABR): \E[?;*;30;VSV
-# *= 0 No printer available
-# *= 2 Printer available
-# V= Software version number
-# SV= Software sub version number
-# (printer-available field not documented in v1)
-#
-# Screen Alignment Aid: \En
-#
-# Bell (lower pitch): \E[x
-#
-# Dial Phone Number: \EPdstring\
-# string= Phone number to be dialed
-#
-# Set Phone Labels: \EPpstring\
-# string= Label for phone buttons
-#
-# Set Clock: \EPchour;minute;second\
-#
-# Position Clock: \EPsY;X\
-# Y= "Y" coordinate
-# X= "X" coordinate
-#
-# Delete Clock: \Epr\
-#
-# Programming The Function Buttons: \EPfPn;string\
-# Pn= Button number (00-06, 18-24)
-# (kf00-kf06, kf18-kf24)
-# string= Text to sent on button depression
-#
-# The following in version 2 only:
-#
-# Request For Local Directory Data: \EPp12;\
-#
-# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\
-#
-# Request for Local Directory Data in print format: \EPp13;\
-#
-# Enable 'Prt on Line' mode: \022 (DC2)
-#
-# Disable 'Prt on Line' mode: \024 (DC4)
-#
-
-# 05-Aug-86:
-# The following Terminfo entry describes functions which are supported by
-# the AT&T 5430/pt505 terminal software version 2 and later.
-att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal,
- am, xon,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
- cnorm=\E[>l, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I,
- il=\E[%p1%dL, il1=\E[L, ind=^J,
- is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l,
- kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s,
- kf19=\E[19s, kf2=\E[02s, kf20=\E[20s, kf21=\E[21s,
- kf22=\E[22s, kf23=\E[23s, kf24=\E[24s, kf26=\E[26s,
- kf3=\E[03s, kf4=\E[04s, kf5=\E[05s, kf6=\E[06s,
- krfr=\E[27s, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
- rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m,
- smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m,
-
-# The following Terminfo entry describes functions which are supported by
-# the AT&T 5430/pt505 terminal software version 1.
-att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines,
- lines#24,
- mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505,
-tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
- lines#22, use=att505,
-#
-#### ------------------ TERMINFO FILE CAN BE SPLIT HERE ---------------------
-# This cut mark helps make life less painful for people running ncurses tic
-# on machines with relatively little RAM. The file can be broken in half here
-# cleanly and compiled in sections -- no `use' references cross this cut
-# going forward.
-#
-
-#### Ampex (Dialogue)
-#
-# Yes, these are the same people who are better-known for making audio- and
-# videotape. I'm told they are located in Redwood City, CA.
-#
-
-# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
-# (ampex80: some capabilities merged in from SCO's entry -- esr)
-ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80,
- OTbs, am, bw, ul,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\EI, clear=\E*$<75>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dl1=\ER$<5*>, ed=\Ey, el=\Et, ht=^I, hts=\E1,
- ich1=\EQ, il1=\EE$<5*>, ind=^J, is2=\EA, rmso=\Ek, rmul=\Em,
- smso=\Ej, smul=\El, tbc=\E3,
-# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote:
-ampex175|ampex d175,
- am,
- cols#80, lines#24,
- bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=^J,
- is2=\EX\EA\EF, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kdl1=\ER, khome=^^, kich1=\EQ, kil1=\EE, ll=^^^K,
- rmcup=\EF, rmso=\Ek, rmul=\Em, smcup=\EN, smso=\Ej, smul=\El,
-# No backspace key in the main QWERTY cluster. Fortunately, it has a
-# NEWLINE/PAGE key just above RETURN that sends a strange single-character
-# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS
-# mode), this key can be used as the erase key; I find I like this. Because
-# some people and some systems may not, there is another termcap ("ampex175")
-# that suppresses this little eccentricity by omitting the relevant capability.
-ampex175-b|ampex d175 using left arrow for erase,
- kbs=^_, use=ampex175,
-# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
-# (ampex210: removed obsolete ":kn#10:" -- esr)
-ampex210|a210|ampex a210,
- OTbs, am, hs, xenl,
- cols#80, it#8, lines#24, xmc#1,
- cbt=\EI, clear=\E*, cub1=^H, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\Ey, el=\Et, flash=\EU\EX\EU\EX\EU\EX\EU\EX,
- fsl=\E.2, home=^^, ht=^I, ich1=\EQ,
- if=/usr/share/tabset/std, il1=\EE, invis@,
- is2=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En, kcub1=^H,
- kcud1=^V, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, khome=^^,
- tsl=\E.0\Eg\E}\Ef, use=adm+sgr,
-# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis>
-# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>,
-# and moved the padding to be *after* the caps -- esr)
-ampex219|ampex-219|amp219|Ampex with Automargins,
- hs, xenl,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z,
- clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=^M,
- csr=%i\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B,
- cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
- cuu1=\E[A$<2>, cvvis=\E[?3h, dim=\E[1m, ed=\E[J$<50>,
- el=\E[K$<3>, home=\E[H, ht=^I, ind=^J,
- is2=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~,
- kf1=\E[7~, kf2=\E[8~, kf3=\E[9~, kf4=\E[10~, kf5=\E[11~,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
- rev=\E[7m, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E>,
- rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h,
- smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>,
-ampex219w|ampex-219w|amp219w|Ampex 132 cols,
- cols#132, lines#24,
- bel=^G, cr=^M, cud1=^J, ind=^J,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219,
-# (ampex232: removed <if=/usr/share/tabset/ampex>, no file and no <hts> --esr)
-ampex232|ampex-232|Ampex Model 232,
- am,
- cols#80, lines#24, xmc#1,
- cbt=\EI, civis=\E.0, clear=\E+, cnorm=\E.4, cub1=^H, cud1=^V,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dl1=\ER$<5*/>, ed=\EY, el=\ET,
- flash=\Eb$<200/>\Ed, ht=^I, ich1=\EQ, il1=\EE$<5*/>,
- invis@, is2=\Eg\El, kbs=^H, kcub1=^H, kcud1=^V, kcuf1=^L,
- kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
- kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
- kf9=^AI\r, khome=^^, use=adm+sgr,
-# (ampex: removed <if=/usr/share/tabset/amp-132>, no file and no <hts> -- esr)
-ampex232w|Ampex Model 232 / 132 columns,
- cols#132, lines#24,
- is2=\E\034Eg\El, use=ampex232,
-
-#### Ann Arbor (aa)
-#
-# Ann Arbor made dream terminals for hackers -- large screen sizes and huge
-# numbers of function keys. At least some used monitors in portrait mode,
-# allowing up to 76-character screen heights! They were reachable at:
-#
-# Ann Arbor Terminals
-# 6175 Jackson Road
-# Ann Arbor, MI 48103
-# (313)-663-8000
-#
-# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor
-# can't be found on the Web; I fear they're long dead. R.I.P.
-#
-
-
-# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs.
-# Highly modified 6/22 by Mike O'Brien.
-# split out into several for the various screen sizes by dave-yost@rand
-# Modifications made 3/82 by Mark Horton
-# Modified by Tom Quarles at UCB for greater efficiency and more diversity
-# status line moved to top of screen, <flash> removed 5/82
-# Some unknown person at SCO then hacked the init strings to make them more
-# efficient.
-#
-# assumes the following setup:
-# A menu: 0000 1010 0001 0000
-# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
-# C menu: 56 66 0 0 9600 0110 1100
-# D menu: 0110 1001 1 0
-#
-# Briefly, the settings are for the following modes:
-# (values are for bit set/clear with * indicating our preference
-# and the value used to test these termcaps)
-# Note that many of these settings are irrelevent to the terminfo
-# and are just set to the default mode of the terminal as shipped
-# by the factory.
-#
-# A menu: 0000 1010 0001 0000
-# Block/underline cursor*
-# blinking/nonblinking cursor*
-# key click/no key click*
-# bell/no bell at column 72*
-#
-# key pad is cursor control*/key pad is numeric
-# return and line feed/return for <cr> key *
-# repeat after .5 sec*/no repeat
-# repeat at 25/15 chars per sec. *
-#
-# hold data until pause pressed/process data unless pause pressed*
-# slow scroll/no slow scroll*
-# Hold in area/don't hold in area*
-# functions keys have default*/function keys disabled on powerup
-#
-# show/don't show position of cursor during page transmit*
-# unused
-# unused
-# unused
-#
-# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
-# Baud rate (9600*)
-#
-# 2 bits of parity - 00=odd,01=even*,10=space,11=mark
-# 1 stop bit*/2 stop bits
-# parity error detection off*/on
-#
-# keyboard local/on line*
-# half/full duplex*
-# disable/do not disable keyboard after data transmission*
-#
-# transmit entire page/stop transmission at cursor*
-# transfer/do not transfer protected characters*
-# transmit all characters/transmit only selected characters*
-# transmit all selected areas/transmit only 1 selected area*
-#
-# transmit/do not transmit line separators to host*
-# transmit/do not transmit page tab stops tabs to host*
-# transmit/do not transmit column tab stop tabs to host*
-# transmit/do not transmit graphics control (underline,inverse..)*
-#
-# enable*/disable auto XON/XOFF control
-# require/do not require receipt of a DC1 from host after each LF*
-# pause key acts as a meta key/pause key is pause*
-# unused
-#
-# unused
-# unused
-# unused
-# unused
-#
-# XON character (17*)
-# XOFF character (19*)
-#
-# C menu: 56 66 0 0 9600 0110 1100
-# number of lines to print data on (printer) (56*)
-#
-# number of lines on a sheet of paper (printer) (66*)
-#
-# left margin (printer) (0*)
-#
-# number of pad chars on new line to printer (0*)
-#
-# printer baud rate (9600*)
-#
-# printer parity: 00=odd,01=even*,10=space,11=mark
-# printer stop bits: 2*/1
-# print/do not print guarded areas*
-#
-# new line is: 01=LF,10=CR,11=CRLF*
-# unused
-# unused
-#
-# D menu: 0110 1001 1 0
-# LF is newline/LF is down one line, same column*
-# wrap to preceding line if move left from col 1*/don't wrap
-# wrap to next line if move right from col 80*/don't wrap
-# backspace is/is not destructive*
-#
-# display*/ignore DEL character
-# display will not/will scroll*
-# page/column tab stops*
-# erase everything*/erase unprotected only
-#
-# editing extent: 0=display,1=line*,2=field,3=area
-#
-# unused
-#
-
-annarbor4080|aa4080|ann arbor 4080,
- OTbs, am,
- cols#80, lines#40,
- bel=^G, clear=\014$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=^_,
- cup=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c,
- cuu1=^N, home=^K, ht=^I, hts=^]^P1, ind=^J, kbs=^^, kcub1=^H,
- kcud1=^J, kcuf1=^_, kcuu1=^N, khome=^K, tbc=^\^P^P,
-
-# Strange Ann Arbor terminal from BRL
-aas1901|Ann Arbor K4080 w/S1901 mod,
- am,
- cols#80, lines#40,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^N,
- home=^K, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ll=^O\0c,
- nel=^M^J,
-
-# If you're using the GNU termcap library, add
-# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
-# to these capabilities. This is the nonstandard GNU termcap scrolling
-# capability, arguments are:
-# 1. Total number of lines on the screen.
-# 2. Number of lines above desired scroll region.
-# 3. Number of lines below (outside of) desired scroll region.
-# 4. Total number of lines on the screen, the same as the first parameter.
-# The generic Ann Arbor entry is the only one that uses this.
-aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly),
- OTbs, am, km, mc5i, mir, xon,
- cols#80, it#8,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J$<156>, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL,
- il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8,
- is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z,
- kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK,
- kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP,
- kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT,
- kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC,
- kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI,
- khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i,
- mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
- rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\,
- rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- sgr0=\E[m,
- smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
- smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
- vpa=\E[%p1%{1}%+%dd,
-
-aaa+rv|ann arbor ambassador in reverse video,
- blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
- rs1=\E[H\E[7m\E[J$<156>,
- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
- sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
-# Ambassador with the DEC option, for partial vt100 compatibility.
-aaa+dec|ann arbor ambassador in dec vt100 mode,
- acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
- csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
- smacs=^O,
-aaa-18|ann arbor ambassador/18 lines,
- lines#18,
- is2=\E7\E[60;0;0;18p\E8,
- rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p,
- use=aaa+unk,
-aaa-18-rv|ann arbor ambassador/18 lines+reverse video,
- use=aaa+rv, use=aaa-18,
-aaa-20|ann arbor ambassador/20 lines,
- lines#20,
- is2=\E7\E[60;0;0;20p\E8,
- rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p,
- use=aaa+unk,
-aaa-22|ann arbor ambassador/22 lines,
- lines#22,
- is2=\E7\E[60;0;0;22p\E8,
- rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p,
- use=aaa+unk,
-aaa-24|ann arbor ambassador/24 lines,
- lines#24,
- is2=\E7\E[60;0;0;24p\E8,
- rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p,
- use=aaa+unk,
-aaa-24-rv|ann arbor ambassador/24 lines+reverse video,
- use=aaa+rv, use=aaa-24,
-aaa-26|ann arbor ambassador/26 lines,
- lines#26,
- is2=\E7\E[60;0;0;26p\E8,
- rmcup=\E[60;0;0;26p\E[26;1H\E[K,
- smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk,
-aaa-28|ann arbor ambassador/28 lines,
- lines#28,
- is2=\E7\E[60;0;0;28p\E8,
- rmcup=\E[60;0;0;28p\E[28;1H\E[K,
- smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk,
-aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status,
- eslok, hs,
- lines#29,
- dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K,
- fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;30p\E8,
- rmcup=\E[60;1;0;30p\E[29;1H\E[K,
- smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K,
- tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
-aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video,
- use=aaa+rv, use=aaa-30-s,
-aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context,
- rmcup=\E[60;1;0;30p\E[59;1H\E[K,
- smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s,
-aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video,
- rmcup=\E[60;1;0;30p\E[59;1H\E[K,
- smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv,
-aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines,
- lines#30,
- is2=\E7\E[60;0;0;30p\E8,
- rmcup=\E[60;0;0;30p\E[30;1H\E[K,
- smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk,
-aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video,
- use=aaa+rv, use=aaa-30,
-aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context,
- rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
- use=aaa-30,
-aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context,
- rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
- use=aaa+rv, use=aaa-30,
-aaa-36|ann arbor ambassador/36 lines,
- lines#36,
- is2=\E7\E[60;0;0;36p\E8,
- rmcup=\E[60;0;0;36p\E[36;1H\E[K,
- smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk,
-aaa-36-rv|ann arbor ambassador/36 lines+reverse video,
- use=aaa+rv, use=aaa-36,
-aaa-40|ann arbor ambassador/40 lines,
- lines#40,
- is2=\E7\E[60;0;0;40p\E8,
- rmcup=\E[60;0;0;40p\E[40;1H\E[K,
- smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk,
-aaa-40-rv|ann arbor ambassador/40 lines+reverse video,
- use=aaa+rv, use=aaa-40,
-aaa-48|ann arbor ambassador/48 lines,
- lines#48,
- is2=\E7\E[60;0;0;48p\E8,
- rmcup=\E[60;0;0;48p\E[48;1H\E[K,
- smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk,
-aaa-48-rv|ann arbor ambassador/48 lines+reverse video,
- use=aaa+rv, use=aaa-48,
-aaa-60-s|ann arbor ambassador/59 lines+status,
- eslok, hs,
- lines#59,
- dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K,
- fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8,
- tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
-aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video,
- use=aaa+rv, use=aaa-60-s,
-aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video,
- use=aaa+dec, use=aaa+rv, use=aaa-60-s,
-aaa-60|ann arbor ambassador/60 lines,
- lines#60,
- is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8,
- use=aaa+unk,
-aaa-60-rv|ann arbor ambassador/60 lines+reverse video,
- use=aaa+rv, use=aaa-60,
-aaa-db|ann arbor ambassador 30/destructive backspace,
- OTbs@,
- cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30,
-
-guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols,
- lines#33,
- flash=\E[>59h$<100>\E[>59l,
- is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l,
- rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk,
-guru+rv|guru changes for reverse video,
- flash=\E[>59l$<100>\E[>59h, is3=\E[>59h,
-guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video,
- use=guru+rv, use=guru-33,
-guru+s|guru status line,
- eslok, hs,
- dsl=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K, fsl=\E[>51l,
- rmcup=\E[255;1p\E[255;1H\E[K, smcup=,
- tsl=\E[>51h\E[1;%p1%dH\E[2K,
-guru-nctxt|guru with no saved context,
- smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru,
-guru-s|guru-33-s|ann arbor guru/33 lines+status,
- lines#32,
- is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J,
- smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-24|ann arbor guru 24 lines,
- cols#80, lines#24,
- is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p,
- use=guru+unk,
-guru-44|ann arbor guru 44 lines,
- cols#97, lines#44,
- is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p,
- use=guru+unk,
-guru-44-s|ann arbor guru/44 lines+status,
- lines#43,
- is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J,
- smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76|guru with 76 lines by 89 cols,
- cols#89, lines#76,
- is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p,
- use=guru+unk,
-guru-76-s|ann arbor guru/76 lines+status,
- cols#89, lines#75,
- is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J,
- smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76-lp|guru-lp|guru with page bigger than line printer,
- cols#134, lines#76,
- is2=\E7\E[255;0;0;76;134;134p\E8\E[J, smcup=\E[76p,
- use=guru+unk,
-guru-76-w|guru 76 lines by 178 cols,
- cols#178, lines#76,
- is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p,
- use=guru+unk,
-guru-76-w-s|ann arbor guru/76 lines+status+wide,
- cols#178, lines#75,
- is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J,
- smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76-wm|guru 76 lines by 178 cols with 255 cols memory,
- cols#178, lines#76,
- is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p,
- use=guru+unk,
-aaa-rv-unk|ann arbor unknown type,
- lh#0, lw#0, nlab#0,
- blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
- rs1=\E[H\E[7m\E[J,
- sgr=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
- sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
-
-#### Applied Digital Data Systems (adds)
-#
-# ADDS itself is long gone. ADDS was bought by NCR, and the same group made
-# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for
-# terminals was merged again. Then AT&T sold the terminal business to
-# SunRiver, which later changed its name to Boundless Technologies. The
-# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there
-# as of early 1995) are at:
-#
-# Boundless Technologies
-# 100 Marcus Boulevard
-# Hauppauge, NY 11788-3762
-# Vox: (800)-231-5445
-# Fax: (516)-342-7378
-# Web: http://boundless.com
-#
-# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
-# In 1995 Boundless acquired DEC's terminals business.
-#
-
-# Regent: lowest common denominator, works on all regents.
-# (regent: renamed ":bc:" to ":le:" -- esr)
-regent|Adds Regent Series,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, cuu1=^Z,
- home=\EY\s\s, ind=^J, ll=^A,
-# Regent 100 has a bug where if computer sends escape when user is holding
-# down shift key it gets confused, so we avoid escape.
-regent100|Adds Regent 100,
- xmc#1,
- bel=^G,
- cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
- kf0=^B1\r, kf1=^B2\r, kf2=^B3\r, kf3=^B4\r, kf4=^B5\r,
- kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3,
- lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@,
- sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent,
-regent20|Adds Regent 20,
- bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK,
- use=regent,
-regent25|Adds Regent 25,
- bel=^G, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, khome=^A,
- use=regent20,
-regent40|Adds Regent 40,
- xmc#1,
- bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf0=^B1\r, kf1=^B2\r,
- kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
- kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6,
- lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P,
- smul=\E0`, use=regent25,
-regent40+|Adds Regent 40+,
- is2=\EB, use=regent40,
-regent60|regent200|Adds Regent 60,
- dch1=\EE, is2=\EV\EB, kdch1=\EE, kich1=\EF, krmir=\EF,
- rmir=\EF, rmso=\ER\E0@\EV, smir=\EF, smso=\ER\E0P\EV,
- use=regent40+,
-# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981
-# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr)
-viewpoint|addsviewpoint|adds viewpoint,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J,
- cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
- cvvis=\017\E0P, dl1=\El, ed=\Ek$<16.1*>, el=\EK$<16>,
- ind=^J, is2=\017\E0`, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
- kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A,
- rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N,
-# Some viewpoints have bad ROMs that foo up on ^O
-screwpoint|adds viewpoint with ^O bug,
- cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint,
-
-# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
-# The <civis>/<cnorm>/<sgr>/<sgr0> strings were added by ESR from specs.
-# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
-# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
-# invis=01000100 and %c is the logical or of desired attributes.
-# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
-vp3a+|viewpoint3a+|adds viewpoint 3a+,
- am, bw,
- cols#80, it#8, lines#24,
- civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, kbs=^H, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, nel=^M^J, rmso=\E(,
- sgr=\E0%{64}%?%p1%tQ%|%;%?%p2%t%{96}%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E),
- sgr0=\E(, smso=\E0Q\E),
-vp60|viewpoint60|addsvp60|adds viewpoint60,
- use=regent40,
-#
-# adds viewpoint 90 - from cornell
-# Note: emacs sends ei occasionally to insure the terminal is out of
-# insert mode. This unfortunately puts the viewpoint90 IN insert
-# mode. A hack to get around this is <ich1=\EF\s\EF^U>. (Also,
-# - :ei=:im=: must be present in the termcap translation.)
-# - <xhp> indicates glitch that attributes stick to location
-# - <msgr> means it's safe to move in standout mode
-# - <clear=\EG\Ek>: clears screen and visual attributes without affecting
-# the status line
-# Function key and label capabilities merged in from SCO.
-vp90|viewpoint90|adds viewpoint 90,
- OTbs, bw, msgr, xhp,
- cols#80, lines#24,
- clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EE,
- dl1=\El, ed=\Ek, el=\EK, home=\EY\s\s, ht=^I,
- ich1=\EF \EF\025, ind=^J, kbs=^H, kcub1=^U, kcud1=^J,
- kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r,
- kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
- kf7=^B8\r, kf8=^B9\r, kf9=^B\:\r, khome=^A, lf0=F1, lf1=F2,
- lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9,
- lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV,
- sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV,
-# Note: if return acts weird on a980, check internal switch #2
-# on the top chip on the CONTROL pc board.
-adds980|a980|adds consul 980,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J,
- cuf1=\E^E01, cup=\013%p1%{64}%+%c\E\005%p2%2d,
- dl1=\E\017$<13>, il1=\E\016$<13>, ind=^J, kf0=\E0, kf1=\E1,
- kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8,
- kf9=\E9, rmso=^O, sgr0=^O, smso=^Y^^^N,
-
-#### C. Itoh Electronics
-#
-# As of 1995 these people no longer make terminals (they're still in the
-# printer business). Their terminals were all clones of the DEC VT series.
-# They're located in Orange County, CA.
-#
-
-# CIT 80 - vt-52 emulator, the termcap has been modified to remove
-# the delay times and do an auto tab set rather than the indirect
-# file used in vt100.
-cit80|cit-80|citoh 80,
- OTbs, am,
- cols#80, lines#24,
- clear=\E[H\EJ, cr=^M, cub1=^H, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
- ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
-# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
-# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
-cit101|citc|C.itoh fast vt100,
- OTbs, am, xenl,
- cols#80, lines#24,
- bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E7\E[U,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
- flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m,
-# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
-# The following termcap entry was created from the Callan cd100 entry. The
-# last two lines (with the capabilities in caps) are used by RM-cobol to allow
-# full selection of combinations of reverse video, underline, and blink.
-# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\
-# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\
-# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr)
-cit101e|C. Itoh CIT-101e,
- OTbs, OTpt, am, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
- cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M, ed=\E[J,
- el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
- kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
- rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h,
- smkx=\E=, smso=\E[7m, smul=\E[4m,
-# From: David S. Lawyer, June 1997:
-# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
-# Terminals in Irvine, CA. It was part of CITOH Electronics. In the
-# late 1980's CIT Terminals went out of business.
-# There is no need to use the initialization string is=... (by invoking
-# tset or setterm etc.) provided that the terminal has been manually set
-# up (and the setup saved with ^S) to be compatible with this termcap. To be
-# compatible it should be in ANSI mode (not VT52). A set-up that
-# works is to set all the manually setable stuff to factory defaults
-# by pressing ^D in set-up mode. Then increse the brighness with the
-# up-arrow key since the factory default will likely be dim on an old
-# terminal. Then change any options you want (provided that they are
-# compatible with the termcap). For my terminal I set: Screen
-# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
-# on. I also set up mine for parity (but you may not need it). Then
-# save the setup with ^S.
-# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr)
-cit101e-rv|Citoh CIT-101e (sets reverse video),
- am, eo, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24,
- OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
- is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H,
- kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=, rmir=\E[4l,
- rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g, sc=\E7,
- sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR,
- u7=\E[6n, u8=\E[?6c, u9=\E[c,
-cit101e-n|CIT-101e w/o am,
- am@,
- cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
- use=cit101e,
-cit101e-132|CIT-101e with 132 cols,
- cols#132,
- kbs=^H, kcub1=^H, kcud1=^J, use=cit101e,
-cit101e-n132|CIT-101e with 132 cols w/o am,
- am@,
- cols#132,
- cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
- use=cit101e,
-# CIE Terminals CIT-500 from BRL
-# The following SET-UP modes are assumed for normal operation:
-# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF
-# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES
-# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements.
-# Hardware tabs are assumed to be set every 8 columns; they can be set up
-# by the "reset", "tset", or "tabs" utilities. No delays are specified; use
-# "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (cit500: I added <rmam>/<smam> based on the init string -- esr)
-cit500|CIE Terminals CIT-500,
- OTbs, OTpt, mir, msgr, xon,
- OTkn#10, cols#80, it#8, lines#64, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=^J, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M,
- ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
- kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ,
- khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1,
- lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18,
- lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[m, rmul=\E[m,
- rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# C. Itoh printers begin here
-citoh|ci8510|8510|c.itoh 8510a,
- cols#80, it#8,
- bold=\E!, cub1@,
- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073.,
- rep=\ER%p2%03d%p1%c, ri=\Er, rmul=\EY, sgr0=\E"\EY,
- smul=\EX, use=lpr,
-citoh-pica|citoh in pica,
- is1=\EN, use=citoh,
-citoh-elite|citoh in elite,
- cols#96,
- is1=\EE,
- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089.,
- use=citoh,
-citoh-comp|citoh in compressed,
- cols#136,
- is1=\EQ,
- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089\,097\,105\,113\,121\,129.,
- use=citoh,
-# citoh has infinite cols because we don't want lp ever inserting \n\t**.
-citoh-prop|citoh-ps|ips|citoh in proportional spacing mode,
- cols#32767,
- is1=\EP, use=citoh,
-citoh-6lpi|citoh in 6 lines per inch mode,
- is3=\EA, use=citoh,
-citoh-8lpi|citoh in 8 lines per inch mode,
- lines#88,
- is3=\EB, use=citoh,
-
-#### Control Data (cdc)
-#
-
-cdc456|cdc 456 terminal,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X,
- el=^V, home=^Y, il1=\EL, ind=^J,
-
-# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick)
-cdc721|CDC Viking,
- OTbs, am,
- cols#80, lines#24,
- clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
- cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
- kcuu1=^W, khome=^Y,
-cdc721ll|CDC Vikingll,
- OTbs, am,
- cols#132, lines#24,
- clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
- cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
- kcuu1=^W, khome=^Y,
-# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out
-cdc752|CDC 752,
- OTbs, am, bw, xhp,
- cols#80, lines#24,
- bel=^G, clear=\030\E1\s\s, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, el=^V,
- home=\E1\s\s, ind=^J, ll=^Y, rs1=\E1 \030\002\003\017,
-# CDC 756
-# The following switch/key settings are assumed for normal operation:
-# 96 chars SCROLL FULL duplex not BLOCK
-# Other switches may be set according to communication requirements.
-# Insert/delete-character cannot be used, as the whole display is affected.
-# "so" & "se" are commented out until jove handles "sg" correctly.
-cdc756|CDC 756,
- OTbs, am, bw,
- OTkn#10, cols#80, lines#24,
- bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z,
- dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=^J,
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, kdch1=\EI,
- kdl1=\EL, ked=^X, kel=^V, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED,
- kf4=\EE, kf5=\EF, kf6=\EG, kf7=\EH, kf8=\Ea, kf9=\Eb, khome=^Y,
- khts=^O, kich1=\EK, kil1=\EL, lf0=F1, lf1=F2, lf2=F3, lf3=F4,
- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ll=^Y^Z,
- rs1=\031\030\002\003\017,
-#
-# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
-#
-# Part of the long initialization string defines the "DOWN" key to the left
-# of the tab key to send an ESC. The real ESC key is positioned way out
-# in right field.
-#
-# The termcap won't work in 132 column mode due to the way it it moves the
-# cursor. Termcap doesn't have the capability (as far as I could tell) to
-# handle the 721 in 132 column mode.
-#
-# (cdc721: changed :ri: to :sr: -- esr)
-cdc721-esc|Control Data 721,
- OTbs, OTpt, am, bw, msgr, xon,
- OTkn#10, cols#80, it#8, lines#30,
- bel=^G, blink=^N, cbt=^^^K, clear=^L, cub1=^H, cud1=^Z,
- cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, cuu1=^W,
- dch1=^^N, dim=^\, dl1=^^Q, ed=^^P, el=^K, home=^Y, hts=^^^RW,
- ich1=^^O, il1=^^R, ind=\036W =\036U, invis=^^^R[,
- is2=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\^\036\022b\036\022i\036W =\036\022Z\036\011C1-` `!k/o,
- kbs=^H, kcub1=^H, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^q,
- kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, kf6=^^w, kf7=^^x,
- kf8=^^y, kf9=^^z, khome=^Y, ll=^B =, rev=^^D,
- ri=\036W =\036V, rmir=, rmkx=^^^Rl, rmso=^^E, rmul=^],
- sgr0=\017\025\035\036E\036\022\\, smir=, smkx=^^^Rk,
- smso=^^D, smul=^\, tbc=^^^RY,
-
-#### Getronics
-#
-# Getronics is a Dutch electronics company that at one time was called
-# `Geveke' and made async terminals; but (according to the company itself!)
-# they've lost all their documentation on the command set. The hardware
-# documentation suggests the terminals were actually manufactured by a
-# Taiwanese electronics company named Cal-Comp. There are known
-# to have been at least two models, the 33 and the 50.
-#
-
-# The 50 seems to be a top end vt220 clone, with the addition of a higher
-# screen resolution, a larger screen, at least 1 page of memory above and
-# below the screen, apparently pages of memory right and left of the screen
-# which can be panned, and about 75 function keys (15 function keys x normal,
-# shift, control, func A, func B). It also has more setup possibilities than
-# the vt220. The monitor case is dated November 1978 and the keyboard case is
-# May 1982.
-#
-# The vt100 emulation works as is. The entry below describes the rather
-# non-conformant (but more featureful) ANSI mode.
-#
-# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
-visa50|geveke visa 50 terminal in ansi 80 character mode,
- bw, mir, msgr,
- cols#80, lines#25,
- acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G,
- blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
- is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h,
- ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS,
- kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
- kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002,
- kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007,
- kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char,
- lf3=A insert line, lf4=A delete line, lf5=A clear,
- lf6=A ce of/cf gn, lf7=A print, lf8=A on-line,
- lf9=A funcl0=A send, nel=^M^J, rev=\E[7m, rmacs=\E[3l,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m,
- rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h,
- smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd,
-
-#### Human Designed Systems (Concept)
-#
-# Human Designed Systems
-# 400 Fehley Drive
-# King of Prussia, PA 19406
-# Vox: (610)-277-8300
-# Fax: (610)-275-5739
-# Net: support@hds.com
-#
-# John Martin <john@hds.com> is their termcap expert. They're mostly out of
-# the character-terminal business now (1995) and making X terminals. In
-# particular, the whole `Concept' line described here was discontinued long
-# ago.
-#
-
-# From: <vax135!hpk> Sat Jun 27 07:41:20 1981
-# Extensive changes to c108 by arpavax:eric Feb 1982
-# Some unknown person at SCO then translated it to terminfo.
-#
-# There seem to be a number of different versions of the C108 PROMS
-# (with bug fixes in its Z-80 program).
-#
-# The first one that we had would lock out the keyboard of you
-# sent lots of short lines (like /usr/dict/words) at 9600 baud.
-# Try that on your C108 and see if it sends a ^S when you type it.
-# If so, you have an old version of the PROMs.
-#
-# You should configure the C108 to send ^S/^Q before running this.
-# It is much faster (at 9600 baud) than the c100 because the delays
-# are not fixed.
-# new status line display entries for c108-8p:
-# <is3> - init str #3 - setup term for status display -
-# set programmer mode, select window 2, define window at last
-# line of memory, set bkgnd stat mesg there, select window 0.
-#
-# <tsl> - to status line - select window 2, home cursor, erase to
-# end-of-window, 1/2 bright on, goto(line#0, col#?)
-#
-# <fsl> - from status line - 1/2 bright off, select window 0
-#
-# <dsl> - disable status display - set bkgnd status mesg with
-# illegal window #
-#
-# There are probably more function keys that should be added but
-# I don't know what they are.
-#
-# No delays needed on c108 because of ^S/^Q handshaking
-#
-c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages,
- is3=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev \001\177p\Ep\n,
- rmcup=\Ev \001\177p\Ep\r\n, use=c108-4p,
-c108-4p|concept108-4p|concept 108 w/4 pages,
- OTbs, eslok, hs, xon,
- pb@,
- acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=^M,
- cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c,
- cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s,
- ind=^J, is1=\EK\E!\E F,
- is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n,
- rmacs=\Ej\s, rmcup=\Ev \001 p\Ep\r\n, smacs=\Ej!,
- smcup=\EU\Ev 8p\Ep\r\E\025,
- tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100,
-c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video,
- rmcup=\Ev \002 p\Ep\r\n, smcup=\EU\Ev 8p\Ep\r,
- use=c108-rv-4p,
-c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video,
- flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE,
- use=c108-4p,
-c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode,
- cols#132,
- is1=\E F\E", rmcup=\Ev ^A0\001D\Ep\r\n,
- smcup=\EU\Ev 8\001D\Ep\r, use=c108-8p,
-
-# Concept 100:
-# These have only window relative cursor addressing, not screen
-# relative. To get it to work right here, smcup/rmcup (which
-# were invented for the concept) lock you into a one page
-# window for screen style programs.
-#
-# To get out of the one page window, we use a clever trick:
-# we set the window size to zero ("\Ev " in rmcup) which the
-# terminal recognizes as an error and resets the window to all
-# of memory.
-#
-# This trick works on c100 but does not on c108, sigh.
-#
-# Some tty drivers use cr3 for concept, others use nl3, hence
-# the delays on cr and ind below. This padding is only needed at
-# 9600 baud and up. One or the other is commented out depending on
-# local conventions.
-#
-# 2 ms padding on <rmcup> isn't always enough. 6 works fine. Maybe
-# less than 6 but more than 2 will work.
-#
-# Note: can't use function keys f7-f10 because they are
-# indistinguishable from arrow keys (!), also, del char and
-# clear eol use xon/xoff so they probably won't work very well.
-#
-# Also note that we don't define insrt/del char/delline/eop/send
-# because they don't transmit unless we reset them - I figured
-# it was a bad idea to clobber their definitions.
-#
-# The <mc5> sequence changes the escape character to ^^ so that
-# escapes will be passed through to the printer. Only trouble
-# is that ^^ won't be - ^^ was chosen to be unlikely.
-# Unfortunately, if you're sending raster bits through to be
-# plotted, any character you choose will be likely, so we lose.
-#
-# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
-# cannot be # in is2 because it will hang a c100 with no printer
-# if sent twice.
-c100|concept100|concept|c104|c100-4p|hds concept 100,
- OTbs, am, eo, mir, ul, xenl,
- cols#80, lines#24, pb#9600, vt#8,
- bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r,
- cub1=^H, cud1=^J, cuf1=\E=,
- cup=\Ea%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E;,
- dch1=\E\021$<16*>, dim=\EE, dl1=\E\002$<3*>,
- ed=\E\005$<16*>, el=\E\025$<16>, flash=\Ek$<200>\EK,
- ht=\011$<8>, il1=\E\022$<3*>, ind=^J, invis=\EH, ip=$<16*>,
- is1=\EK,
- is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E\010A@ \E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c,
- is3=\Ev $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_,
- kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q,
- kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7,
- kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?,
- khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E.,
- kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027,
- mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI,
- rep=\Er%p1%c%p2%{32}%+%c$<.2*>, rev=\ED,
- rmcup=\Ev $<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex,
- rmso=\Ed, rmul=\Eg, sgr0=\EN@,
- smcup=\EU\Ev 8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX,
- smso=\ED, smul=\EG,
-c100-rv|c100-rv-4p|concept100-rv|c100 rev video,
- cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee,
- smso=\EE, use=c100,
-oc100|oconcept|c100-1p|old 1 page concept 100,
- in,
- is3@, use=c100,
-
-# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996.
-# Lots of notes, originally inline, but ncurses doesn't grok that.
-#
-# am: not available in power on mode, but turned on with \E[=107;207h in
-# is2=. Also, \E=124l in is2= could have been used to prevent needing
-# to specify xenl:, but that would have rendered the last space on the
-# last line useless.
-# bw: Not available in power on mode, but turned on with \E[=107;207h in
-# is2=.
-# clear: Could be done with \E[2J alone, except that vi (and probably most
-# other programs) assume that this also homes the cursor.
-# dsl: Go to window 2, go to the beginning of the line, use a line feed to
-# scroll the window, and go back to window 1.
-# is2: the string may cause a warning to be issued by tic that it
-# found a very long line and that it suspects that a comma is missing
-# somewhere. This warning can be ignored (unless it comes up more than
-# once). The initialization string contains the following commands:
-#
-# [Setup mode items changed from factory defaults:]
-# \E)0 set alternate character set to
-# graphics
-# ^O set character set to default
-# [In case it wasn't]
-# \E[m turn off all attributes
-# [In case they weren't off]
-# \E[=107; cursor wrap and
-# 207h character wrap on
-# \E[90;3u set Fkey definitions to "transmit"
-# defaults
-# \E[92;3u set cursor key definitions to
-# "transmit" defaults
-# \E[43;1u set shift F13 to transmit...
-# \177\E$P\177
-# \E[44;1u set shift F14 to transmit...
-# \177\E$Q\177
-# \E[45;1u set shift F15 to transmit...
-# \177\E$R\177
-# \E[46;1u set shift F16 to transmit...
-# \177\E$S\177
-# \E[200;1u set shift up to transmit...
-# \177\E$A\177
-# \E[201;1u set shift down to transmit...
-# \177\E$B\177
-# \E[202;1u set shift right to transmit...
-# \177\E$C\177
-# \E[203;1u set shift left to transmit...
-# \177\E$D\177
-# \E[204;1u set shift home to transmit...
-# \177\E$H\177
-# \E[212;1u set backtab to transmit...
-# \177\E$I\177
-# \E[213;1u set shift backspace to transmit...
-# \177\E$^H\177
-# \E[214;1u set shift del to transmit...
-# "\E$\177"
-# [Necessary items not mentioned in setup mode:]
-# \E[2!w move to window 2
-# \E[25;25w define window as line 25 of memory
-# \E[!w move to window 1
-# \E[2*w show current line of window 2 as
-# status line
-# \E[2+x set meta key to use high bit
-# \E[;3+} move underline to bottom of character
-#
-# All Fkeys are set to their default transmit definitions with \E[90;3u
-# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty
-# setting MUST be redefined or deactivated, because the default is
-# contained in almost all of this terminal's Fkey strings! If for some
-# reason "quit" cannot be altered, the Fkeys can, but it would be
-# necessary to change ^| to ^] in all of these definitions, and add
-# \E[2;029!t to is2.
-# lines: is set to 24 because this terminal refuses to treat the 25th
-# line normally.
-# ll: Not available in power on mode, but turned on with \E[=107;207h in
-# is2=.
-# lm: Pointless, given that this definition locks a single screen of
-# memory into view, but what the hey...
-# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any
-# other attributes alone), but some programs expect this to turn off
-# everything.
-# rmul: Could use \E[4!{ to turn off only underline (leaving any other
-# attributes alone), but some programs expect this to turn off
-# everything.
-# sgr: Attributes are set on this terminal with the string \E[ followed by
-# a list of attribute code numbers (in decimal, separated by
-# semicolons), followed by the character m. The attribute code
-# numbers are:
-# 1 for bold;
-# 2 for dim (which is ignored in power on mode);
-# 4 for underline;
-# 5 for blinking;
-# 7 for inverse;
-# 8 for not displayable; and
-# =99 for protected (except that there are strange side
-# effects to protected characters which make them inadvisable).
-# The mapping of terminfo parameters to attributes is as follows:
-# %p1 (standout) = bold and inverse together;
-# %p2 (underline) = underline;
-# %p3 (reverse) = inverse;
-# %p4 (blink) = blinking;
-# %p5 (dim) is ignored;
-# %p6 (bold) = bold;
-# %p7 (invisible) = not displayable;
-# %p8 (protected) is ignored; and
-# %p9 (alt char set) = alt char set.
-# The code to do this is:
-# \E[0 OUTPUT \E[0
-# %?%p1%p6%O IF (standout; bold) OR
-# %t;1 THEN OUTPUT ;1
-# %; ENDIF
-# %?%p2 IF underline
-# %t;4 THEN OUTPUT ;4
-# %; ENDIF
-# %?%p4 IF blink
-# %t;5 THEN OUTPUT ;5
-# %; ENDIF
-# %?%p1%p3%O IF (standout; reverse) OR
-# %t;7 THEN OUTPUT ;7
-# %; ENDIF
-# %?%p7 IF invisible
-# %t;8 THEN OUTPUT ;8
-# %; ENDIF
-# m OUTPUT m
-# %?%p9 IF altcharset
-# %t^N THEN OUTPUT ^N
-# %e^O ELSE OUTPUT ^O
-# %; ENDIF
-# sgr0: Everything is turned off (including alternate character set), since
-# there is no way of knowing what it is that the program wants turned
-# off.
-# smul: The "underline" attribute is reconfigurable to an overline or
-# strikethru, or (as done with \E[;3+} in is2=), to a line at the true
-# bottom of the character cell. This was done to allow for more readable
-# underlined characters, and to be able to distinguish between an
-# underlined space, an underscore, and an underlined underscore.
-# xenl: Terminal can be configured to not need this, but this "glitch"
-# behavior is actually preferable with autowrap terminals.
-#
-# Parameters kf31= thru kf53= actually contain the strings sent by the shifted
-# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2
-# string modifies the 'O' in kf43 to kf46 to a '$'.
-#
-# kcbt was originally ^I but redefined in is2=.
-# kHOM was \E[H originally but redefined in is2=, as were a number of
-# other keys.
-# kDC was originally \177 but redefined in is2=.
-#
-# kbs: Shift was also ^H originally but redefined as \E$^H in is2=.
-# tsl: Go to window 2, then do an hpa=.
-#
-#------- flash=\E[8;3!}^G\E[3;3!}
-#------- flash=\E[?5h$<100>\E[?5l
-# There are two ways to flash the screen, both of which have their drawbacks.
-# The first is to set the bell mode to video, transmit a bell character, and
-# set the bell mode back - but to what? There is no way of knowing what the
-# user's old bell setting was before we messed with it. Worse, the command to
-# set the bell mode also sets the key click volume, and there is no way to say
-# "leave that alone", or to know what it's set to, either.
-# The second way to do a flash is to set the screen to inverse video, pad for a
-# tenth of a second, and set it back - but like before, there's no way to know
-# that the screen wasn't ALREADY in inverse video, or that the user may prefer
-# it that way. The point is moot anyway, since vi (and probably other
-# programs) assume that by defining flash=, you want the computer to use it
-# INSTEAD of bel=, rather than as a secondary type of signal.
-#
-#------- cvvis=\E[+{
-# The is the power on setting, which is also as visible as the cursor
-# gets.
-#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw
-# Windowing is possible, but not defined here because it is also used to
-# emulate status line functions. Allowing a program to set a window could
-# clobber the status line or render it unusable. There is additional memory,
-# but screen scroll functions are destructive and do not make use of it.
-#
-#------- dim= Not available in power on mode.
-# You have a choice of defining low intensity characters as "half bright" and
-# high intensity as "normal", or defining low as "normal" and high as "bold".
-# No matter which you choose, only one of either "half bright" or "bold" is
-# available at any time, so taking the time to override the default is
-# pointless.
-#
-#------- prot=\E[=0;99m
-# Not defined, because it appears to have some strange side effects.
-#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
-#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
-#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%;
-# Available, but making them available to programs is inadvisable.
-# The code to do this is:
-# %?%p1%{24}%< IF ((key; 24) <;
-# %p1%{30}%> ((key; 30) >;
-# %p1%{54}%< (key; 54) <
-# %A ) AND
-# %O ) OR
-# [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
-# %t\E[ THEN OUTPUT \E[
-# %p1%d OUTPUT (key) as decimal
-# [next line applies to pfx only]
-# ;1 OUTPUT ;1
-# u OUTPUT u
-# \177 OUTPUT \177
-# %p2%s OUTPUT (string) as string
-# \177 OUTPUT \177
-# [DEL chosen as delimiter, but could be any character]
-# [implied: ELSE do nothing]
-# %; ENDIF
-#
-#------- rs2=
-# Not defined since anything it might do could be done faster and easier with
-# either Meta-Shift-Reset or the main power switch.
-#
-#------- smkx=\E[1!z
-#------- rmkx=\E[!z
-# These sequences apply to the cursor and setup keys only, not to the
-# numeric keypad. But it doesn't matter anyway, since making these
-# available to programs is inadvisable.
-# For the key definitions below, all sequences beginning with \E$ are
-# custom and programmed into the terminal via is2. \E$ also has no
-# meaning to any other terminal.
-#
-#------- cmdch=\E[;%p1%d!t
-# Available, but making it available to programs is inadvisable.
-#------- smxon=\E[1*q
-# Available, but making it available to programs is inadvisable.
-# Terminal will send XON/XOFF on buffer overflow.
-#------- rmxon=\E[*q
-# Available, but making it available to programs is inadvisable.
-# Terminal will not notify on buffer overflow.
-#------- smm=\E[2+x
-#------- rmm=\E[+x
-# Available, but making them available to programs is inadvisable.
-#
-# Printing:
-# It's not made clear in the manuals, but based on other ansi/vt type
-# terminals, it's a good guess that this terminal is capable of both
-# "transparent print" (which doesn't copy data to the screen, and
-# therefore needs mc5i: specified to say so) and "auxilliary print"
-# (which does duplicate printed data on the screen, in which case mc4=
-# and mc5= should use the \E[?4i and \E[?5i strings instead).
-
-hds200|Human Designed Systems HDS200,
- am, bw, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, lm#0,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
- clear=\E[H\E[J, cnorm=\E[+{, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K,
- fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- invis=\E[0;8m,
- is2=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+},
- kDC=\E$\177, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H,
- kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\177, kent=^M, kf1=^\001\r, kf10=^\010\r,
- kf11=^\011\r, kf12=^\012\r, kf13=\EOP, kf14=\EOQ,
- kf15=\EOR, kf16=\EOS, kf17=^\017\r, kf18=^\018\r,
- kf19=^\019\r, kf2=^\002\r, kf20=^\020\r, kf21=^\021\r,
- kf22=^\022\r, kf23=^\023\r, kf3=^\003\r, kf31=^\031\r,
- kf32=^\032\r, kf33=^\033\r, kf34=^\034\r, kf35=^\035\r,
- kf36=^\036\r, kf37=^\037\r, kf38=^\038\r, kf39=^\039\r,
- kf4=^\004\r, kf40=^\040\r, kf41=^\041\r, kf42=^\042\r,
- kf43=\E$P, kf44=\E$Q, kf45=\E$R, kf46=\E$S, kf47=^\047\r,
- kf48=^\048\r, kf49=^\049\r, kf5=^\005\r, kf50=^\050\r,
- kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r,
- kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H,
- kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\E[E, rc=\E8,
- rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017,
- rmul=\E[m\017, sc=\E7,
- sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
- smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
- vpa=\E[%i%p1%dd,
-
-# <ht> through <el> included to specify padding needed in raw mode.
-# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
-avt-ns|concept avt no status line,
- OTbs, am, eo, mir, ul, xenl, xon,
- cols#80, it#8, lines#24, lm#192,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>,
- dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>,
- invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l,
- is2=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;27!t,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E^B\r, ked=\E^D\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, kich1=\E^A\r, kil1=\E^C\r, ll=\E[24H,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#,
- prot=\E[99m, rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
- ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n,
- rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{,
- sc=\E7,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
- smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
- tbc=\E[2g, vpa=\E[%p1%{1}%+%dd,
-avt-rv-ns|concept avt in reverse video mode/no status line,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
- use=avt-ns,
-avt-w-ns|concept avt in 132 column mode/no status line,
- is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
- use=avt-ns,
-avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
- smcup=\E[H\E[1;24;1;132w, use=avt-ns,
-
-# Concept AVT with status line. We get the status line using the
-# "Background status line" feature of the terminal. We swipe the
-# first line of memory in window 2 for the status line, keeping
-# 191 lines of memory and 24 screen lines for regular use.
-# The first line is used instead of the last so that this works
-# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
-# assumes an 8 page AVT but lm isn't currently used anywhere.)
-#
-avt+s|concept avt status line changes,
- eslok, hs,
- lm#191,
- dsl=\E[0*w, fsl=\E[1;1!w,
- is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n,
- rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r,
- tsl=\E[2;1!w\E[;%p1%dH\E[2K,
-avt|avt-s|concept-avt|avt w/80 columns,
- use=avt+s, use=avt-ns,
-avt-rv|avt-rv-s|avt reverse video w/sl,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
- use=avt+s, use=avt-ns,
-avt-w|avt-w-s|concept avt 132 cols+status,
- is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
- use=avt+s, use=avt-ns,
-avt-w-rv|avt-w-rv-s|avt wide+status+rv,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
- smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns,
-
-#### Contel Business Systems.
-#
-
-# Contel c300 and c320 terminals.
-contel300|contel320|c300|Contel Business Systems C-300 or C-320,
- am, in, xon,
- cols#80, lines#24, xmc#1,
- bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
- el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
- hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
- kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
- kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
- rmso=\E!\0, sgr0=\E!\0, smso=\E!\r, tbc=\E3,
-# Contel c301 and c321 terminals.
-contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321,
- flash@, ich1@, ip@, rmso=\E!\0$<20>, smso=\E!\r$<20>,
- use=contel300,
-
-#### Data General (dg)
-#
-# According to James Carlson <carlson@xylogics.com> writing in January 1995,
-# the terminals group at Data General was shut down in 1991; all these
-# terminals have thus been discontinued.
-#
-# DG terminals have function keys that respond to the SHIFT and CTRL keys,
-# e.g., SHIFT-F1 generates a different code from F1. To number the keys
-# sequentially, first the unmodified key codes are listed as F1 through F15.
-# Then their SHIFT versions are listed as F16 through F30, their CTRL versions
-# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
-# F46 through F60. This is done in the private "includes" below whose names
-# start with "dgkeys+".
-#
-# DG terminals generally support 8 bit characters. For each of these terminals
-# two descriptions are supplied:
-# 1) A default description for 8 bits/character communications, which
-# uses the default DG international character set and keyboard codes.
-# 2) A description with suffix "-7b" for 7 bits/character communications.
-# This description must use the NON-DEFAULT native keyboard language.
-
-# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33),
-# Ctrl/Shift fdkeys (kf34-kf44).
-
-dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys,
- ka1=\233020z, ka3=\233021z, kc1=\233022z, kc3=\233023z,
- kclr=\2332J, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
- kcuu1=\233A, kel=\233K, kf1=\233001z, kf10=\233010z,
- kf11=\233011z, kf12=\233012z, kf13=\233013z,
- kf14=\233014z, kf15=\233000z, kf16=\233101z,
- kf17=\233102z, kf18=\233103z, kf19=\233104z,
- kf2=\233002z, kf20=\233105z, kf21=\233106z,
- kf22=\233107z, kf23=\233108z, kf24=\233109z,
- kf25=\233110z, kf26=\233111z, kf27=\233112z,
- kf28=\233113z, kf29=\233114z, kf3=\233003z,
- kf30=\233100z, kf31=\233201z, kf32=\233202z,
- kf33=\233203z, kf34=\233204z, kf35=\233205z,
- kf36=\233206z, kf37=\233207z, kf38=\233208z,
- kf39=\233209z, kf4=\233004z, kf40=\233210z,
- kf41=\233211z, kf42=\233212z, kf43=\233213z,
- kf44=\233214z, kf45=\233200z, kf46=\233301z,
- kf47=\233302z, kf48=\233303z, kf49=\233304z,
- kf5=\233005z, kf50=\233305z, kf51=\233306z,
- kf52=\233307z, kf53=\233308z, kf54=\233309z,
- kf55=\233310z, kf56=\233311z, kf57=\233312z,
- kf58=\233313z, kf59=\233314z, kf6=\233006z,
- kf60=\233300z, kf7=\233007z, kf8=\233008z, kf9=\233009z,
- khome=\233H, kprt=\233i,
-
-dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys,
- ka1=\E[020z, ka3=\E[021z, kc1=\E[022z, kc3=\E[023z,
- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kel=\E[K, kf1=\E[001z, kf10=\E[010z, kf11=\E[011z,
- kf12=\E[012z, kf13=\E[013z, kf14=\E[014z, kf15=\E[000z,
- kf16=\E[101z, kf17=\E[102z, kf18=\E[103z, kf19=\E[104z,
- kf2=\E[002z, kf20=\E[105z, kf21=\E[106z, kf22=\E[107z,
- kf23=\E[108z, kf24=\E[109z, kf25=\E[110z, kf26=\E[111z,
- kf27=\E[112z, kf28=\E[113z, kf29=\E[114z, kf3=\E[003z,
- kf30=\E[100z, kf31=\E[201z, kf32=\E[202z, kf33=\E[203z,
- kf34=\E[204z, kf35=\E[205z, kf36=\E[206z, kf37=\E[207z,
- kf38=\E[208z, kf39=\E[209z, kf4=\E[004z, kf40=\E[210z,
- kf41=\E[211z, kf42=\E[212z, kf43=\E[213z, kf44=\E[214z,
- kf45=\E[200z, kf46=\E[301z, kf47=\E[302z, kf48=\E[303z,
- kf49=\E[304z, kf5=\E[005z, kf50=\E[305z, kf51=\E[306z,
- kf52=\E[307z, kf53=\E[308z, kf54=\E[309z, kf55=\E[310z,
- kf56=\E[311z, kf57=\E[312z, kf58=\E[313z, kf59=\E[314z,
- kf6=\E[006z, kf60=\E[300z, kf7=\E[007z, kf8=\E[008z,
- kf9=\E[009z, khome=\E[H, kprt=\E[i,
-
-dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys,
- kclr=^L, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kel=^K,
- kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^a, kf13=^^b, kf14=^^c,
- kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r,
- kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3,
- kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8,
- kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#,
- kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(,
- kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w,
- kf8=^^x, kf9=^^y, khome=^H,
-
-dgkeys+15|Private entry describing 15 DG mode special keys,
- kHOM=^^^H, kLFT=^^^Y, kRIT=^^^X, ka1=^^\\, ka3=^^], kc1=^^\^,
- kc3=^^_, kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^|, kf13=^^},
- kf14=^^~, kf15=^^p, kf16=^^a, kf17=^^b, kf18=^^c, kf19=^^d,
- kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i,
- kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s,
- kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5,
- kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:,
- kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!,
- kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&,
- kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,,
- kf58=^^-, kf59=^^., kf6=^^v, kf60=^^\s, kf7=^^w, kf8=^^x,
- kf9=^^y,
-
-# Data General color terminals use the "Tektronix" color model. The total
-# number of colors varies with the terminal model, as does support for
-# attributes used in conjunction with color.
-
-# Removed u7, u8 definitions since they conflict with tack:
-# Preserve user-defined colors in at least some cases.
-# u7=^^Fh,
-# Default is ACM mode.
-# u8=^^F}20^^Fi^^F}21,
-#
-dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode,
- bce,
- colors#16, ncv#53, pairs#256,
- op=\036Ad\036Bd,
- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
-
-dg+fixed|Fixed color info for DG D430C terminals in DG mode,
- use=dgunix+fixed,
-
-# Video attributes are coordinated using static variables set by "sgr", then
-# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
-# (D=dim, U=underline, B=blink, R=reverse.)
-dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode,
- bce,
- colors#8, ncv#16, pairs#64,
- op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m,
- setab=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setaf=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-
-dg+color|Color info for Data General D470C terminals in ANSI mode,
- colors#16, ncv#53, pairs#256,
- setab=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setaf=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- use=dg+color8,
-
-dgmode+color8|Color info for Data General D220/D230C terminals in DG mode,
- bce,
- colors#8, ncv#16, pairs#64,
- op=\036Ad\036Bd,
- setab=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
- setaf=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
-
-dgmode+color|Color info for Data General D470C terminals in DG mode,
- colors#16, pairs#256,
- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
- use=dgmode+color8,
-
-dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
- bce, ccc,
- colors#52, ncv#53, pairs#26,
- initp=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X,
- oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
- op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
- scp=\036RG2%p1%02X,
-
-# Colors are in the order: normal, reverse, dim, dim + reverse.
-dg+ccc|Configurable color info for DG D430C terminals in DG mode,
- bce, ccc,
- colors#52, ncv#53, pairs#26,
- initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
- oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00,
- op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
- scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
-
-# The generic DG terminal type (an 8-bit-clean subset of the 6053)
-# Initialization string 1 sets:
-# ^R - vertical scrolling enabled
-# ^C - blinking enabled
-dg-generic|Generic Data General terminal in DG mode,
- am, bw, msgr, xon,
- cols#80, lines#24,
- bel=^G, blink=^N, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
- cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=^J, is1=^R^C,
- mc0=^Q, nel=^J, rmso=^], rmul=^U, sgr0=^O^U^], smso=^\,
- smul=^T, use=dgkeys+11,
-
-# According to the 4.4BSD termcap file, the dg200 <cup> should be the
-# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap
-# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious,
-# maybe they were originally nuls (which would fit).
-
-dg200|data general dasher 200,
- OTbs, am, bw,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
- cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=^J,
- kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q,
- kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x,
- kf9=^^y, khome=^H, lf0=f10, nel=^J, rmso=^^E, rmul=^U,
- smso=^^D, smul=^T,
-
-# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL
-dg210|dg-ansi|Data General 210/211,
- am,
- cols#80, lines#24,
- OTnl=\E[B, clear=\E[2J, cud1=\E[B, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, ed=\E[J, el=\E[K, home=\E[H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m, smso=\E[7;m,
- smul=\E[4;m,
-# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
-# courtesy of Carlos Rucalde of Vantage Software, Inc.
-# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
-# I suspect the d200 function keys actually work on the dg211, check it out.)
-dg211|Data General d211,
- cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@,
- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L,
- rmso=\036E$<\0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
-
-# dg450 from Cornell (not official)
-dg450|dg6134|data general 6134,
- cub1@, cuf1=^X, use=dg200,
-
-# Not official...
-# Note: lesser Dasher terminals will not work with vi because vi insists upon
-# having a command to move straight down from any position on the bottom line
-# and scroll the screen up, or a direct vertical scroll command. The 460 and
-# above have both, the D210/211, for instance, has neither. We must use ANSI
-# mode rather than DG mode because standard UNIX tty drivers assume that ^H is
-# backspace on all terminals. This is not so in DG mode.
-# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
-# grounds that there is no matching ":ml:"
-# fixed garbled ":k9=\E[00\:z:" capability -- esr)
-dg460-ansi|Data General Dasher 460 in ANSI-mode,
- OTbs, am, msgr, ul,
- cols#80, it#8, lines#24,
- OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P,
- dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
- kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
- kf8=\E[009z, kf9=\E[010z, khome=\E[H, lf0=f1, lf1=f2, lf2=f3,
- lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, rev=\E[7m,
- ri=\E[T, rmso=\E[m, rmul=\E[05, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m,
-# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
-# Data General 605x
-# Ought to work for a Model 6242, Type D210 as well as a 605x.
-# Note that the cursor-down key transmits ^Z. Job control users, beware!
-# This also matches a posted description of something called a `Dasher 100'
-# so there's a dg100 alias here.
-# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr)
-dg6053-old|dg100|data general 6053,
- OTbs, am, bw, ul,
- cols#80, lines#24,
- OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=^M, cub1=^Y, cud1=^Z,
- cuf1=^X, cup=\020%p2%c%p1%c, cuu1=^W, cvvis=^L^R, el=^K,
- home=^H, ht=^I, is2=^R, kbs=^Y, kcub1=^Y, kcud1=^Z, kcuf1=^X,
- kcuu1=^W, kf0=^^q, kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v,
- kf6=^^w, kf7=^^x, kf8=^^y, kf9=^^z, khome=^H, rmcup=^L,
- rmso=\0^^E, rmul=^U, smcup=^L^R, smso=\0\0\0\0\0\036D,
- smul=^T,
-
-# (Some performance can be gained over the generic DG terminal type)
-dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053,
- xon@,
- home=^P\0\0, ll=^P\0^W, use=dg-generic,
-
-# Like 6053, but adds reverse video and more keypad and function keys.
-d200|d200-dg|Data General DASHER D200,
- bold=^^D^T, home@, ll@, rev=^^D, rmso=^^E^],
- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;,
- sgr0=\017\025\035\036E, smso=^^D^\, use=dgkeys+15,
- use=dg6053,
-
-# DASHER D210 series terminals in ANSI mode.
-# Reverse video, no insert/delete character/line, 7 bits/character only.
-#
-# Initialization string 1 sets:
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <4 - print characters regardless of attributes
-d210|d214|Data General DASHER D210 series,
- am, bw, msgr, xon,
- cols#80, lines#24,
- bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l,
- ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m,
- sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
-
-# DASHER D210 series terminals in DG mode.
-# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
-d210-dg|d214-dg|Data General DASHER D210 series in DG mode,
- xon,
- ed=^^FF, use=d200-dg,
-
-# DASHER D211 series terminals in ANSI mode.
-# Like the D210, but with 8-bit characters and local printer support.
-#
-# Initialization string 2 sets:
-# \E[2;1;1;1v
-# 2;1 - 8 bit operations
-# 1;1 - 8 bit (international) keyboard language
-# \E(B - default primary character set (U.S. ASCII)
-# \E)4 - default secondary character set (international)
-# ^O - primary character set
-#
-d211|d215|Data General DASHER D211 series,
- km,
- is2=\E[2;1;1;1v\E(B\E)4\017, mc0=\E[i, use=dgkeys+8b,
- use=d210,
-
-# Initialization string 2 sets:
-# \E[2;0;1;0v
-# 2;0 - 7 bit operations
-# 1;0 - 7 bit (native) keyboard language
-# \E(0 - default character set (the keyboard native language)
-# ^O - primary character set
-d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode,
- km@,
- is2=\E[2;0;1;0v\E(0\017, use=dgkeys+7b, use=d211,
-
-# Like the D210 series, but adds support for 8-bit characters.
-#
-# Reset string 2 sets:
-# ^^N - secondary character set
-# ^^FS0> - 8 bit international character set
-# ^^O - primary character set
-# ^^FS00 - default character set (matching the native keyboard language)
-#
-d211-dg|d215-dg|Data General DASHER D211 series in DG mode,
- km,
- rs2=\036N\036FS0>\036O\036FS00, use=d210-dg,
-
-d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode,
- use=d211-dg,
-
-# Enhanced DG mode with changes to be more UNIX compatible.
-d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode,
- mc5i,
- it#8,
- acsc=a\177j$k"l!m#n)q+t'u&v(w%x*, blink=^^PI,
- clear=^^PH, cub1=^^PD, cud1=^^PB, cuf1=^^PC, cuu1=^^PA,
- el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=^J,
- is1=\022\003\036P@1, is3=\036Fz0, kHOM=^^Pf, kLFT=^^Pd,
- kPRT=^^P1, kRIT=^^Pc, kclr=^^PH, kcub1=^^PD, kcud1=^^PB,
- kcuf1=^^PC, kcuu1=^^PA, kel=^^PE, khome=^^PF, kprt=^^P0,
- mc0=\036F?9, mc4=^^Fa, mc5=^^F`, rmacs=\036FS00,
- rs2=\036N\036FS0E\036O\036FS00,
- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
- sgr0=\036PJ\025\035\036E\036FS00, smacs=\036FS11,
- vpa=\020\177%p1%c, use=dgkeys+15, use=d216-dg,
-d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines,
- lines#25,
- is3=\036Fz2, use=d216+,
-
-d217-unix|Data General DASHER D217 in DG-UNIX mode,
- use=d216-unix,
-d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines,
- use=d216-unix-25,
-
-# DASHER D220 color terminal in ANSI mode.
-# Like the D470C but with fewer colors and screen editing features.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <4 - print characters regardless of attributes
-# \E[m - all attributes off
-# Reset string 1 sets:
-# \Ec - initial mode defaults (RIS)
-#
-d220|Data General DASHER D220,
- mc5i@,
- dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
- use=dg+color8, use=d470c,
-
-d220-7b|Data General DASHER D220 in 7 bit mode,
- mc5i@,
- dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
- use=dg+color8, use=d470c-7b,
-
-# Initialization string 3 sets:
-# - default cursor (solid rectangle)
-# Reset string 2 sets:
-# ^^N - secondary character set
-# ^^FS0> - 8 bit international character set
-# ^^O - primary character set
-# ^^FS00 - default character set (matching the native keyboard language)
-#
-d220-dg|Data General DASHER D220 color terminal in DG mode,
- mc5i@,
- dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@,
- rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8,
- use=d470c-dg,
-
-# DASHER D230C color terminal in ANSI mode.
-# Like the D220 but with minor ANSI compatibility improvements.
-#
-d230c|d230|Data General DASHER D230C,
- blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=^M^J,
- rev=\E[7;50m, rmkx=\E[2;1v, rmso=\E[50m, rmul=\E[50m,
- sgr=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
- sgr0=\E[50m\E)4\017, smkx=\E[2;0v, smso=\E[2;7;50m,
- smul=\E[4;50m, use=dgkeys+7b, use=d220,
-
-d230c-dg|d230-dg|Data General DASHER D230C in DG mode,
- use=d220-dg,
-
-# DASHER D400/D450 series terminals.
-# These add intelligent features like insert/delete to the D200 series.
-#
-# Initialization string 2 sets:
-# ^^FQ2 - default cursor (solid rectangle)
-# ^^FW - character protection disabled
-# ^^FJ - normal (80 column) mode
-# ^^F\^ - horizontal scrolling enabled (for alignment)
-# ^^FX004? - margins at columns 0 and 79
-# ^^F] - horizontal scrolling disabled
-# ^^O - primary character set
-# ^^FS00 - default character set (the keyboard native language)
-# - (should reset scrolling regions, but that glitches the screen)
-# Reset string 1 sets:
-# ^^FA - all terminal defaults except scroll rate
-# Reset string 2 sets:
-# ^^F] - horizontal scrolling disabled
-# ^^FT0 - jump scrolling
-#
-d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series,
- mc5i,
- acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\036FQ0,
- cnorm=\036FQ2, dch1=^^K, dl1=^^FI,
- enacs=\036N\036FS11\036O, home=^^FG, hpa=\020%p1%c\177,
- ich1=^^J, il1=^^FH,
- is2=\036FQ2\036FW\036FJ\036F\^\036FX004?\036F]\036O\036FS00,
- ll=\036FG\027, mc4=^^Fa, mc5=^^F`, ri=^^I, rmacs=^^O,
- rs1=^^FA, rs2=\036F]\036FT0,
- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;,
- sgr0=\017\025\035\036E\036O, smacs=^^N,
- vpa=\020\177%p1%c, use=d210-dg,
-
-# DASHER D410/D460 series terminals in ANSI mode.
-# These add a large number of intelligent terminal features.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<2;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <2 - horizontal scrolling enabled (for alignment)
-# <4 - print characters regardless of attributes
-# \E[5;0v - normal (80 column) mode
-# \E[1;1;80w - margins at columns 1 and 80
-# \E[1;6;<2h
-# 1 - print all characters even if protected
-# 6 - character protection disabled
-# <2 - horizontal scrolling disabled
-# - (should reset scrolling regions, but that glitches the screen)
-#
-# Initialization string 2 sets:
-# \E[3;2;2;1;1;1v
-# 3;2 - default cursor (solid rectangle)
-# 2;1 - 8 bit operations
-# 1;1 - international keyboard language
-# \E(B - default primary character set (U.S. ASCII)
-# \E)4 - default secondary character set (international)
-# ^O - primary character set
-#
-# Reset string 1 sets:
-# \Ec - initial mode defaults (RIS)
-# \E[<2h - horizontal scrolling disabled
-#
-# Reset string 2 sets:
-# \E[4;0;2;1;1;1v
-# 4;0 - jump scrolling
-# 2;1 - 8 bit operations
-# 1;1 - 8 bit (international) keyboard language
-# \E(B - default primary character set (U.S. ASCII)
-# \E)4 - default secondary character set (international)
-#
-d410|d411|d460|d461|Data General DASHER D410/D460 series,
- mc5i,
- acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v,
- cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
- is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h,
- is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
- ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
- rs2=\E[4;0;2;1;1;1v\E(B\E)4,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;,
- sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
-
-# Initialization string 2 sets:
-# \E[3;2;2;0;1;0v
-# 3;2 - default cursor (solid rectangle)
-# 2;0 - 7 bit operations
-# 1;0 - 7 bit (native) keyboard language
-# \E(0 - default character set (the keyboard native language)
-# ^O - primary character set
-#
-# Reset string 2 sets:
-# \E[4;0;2;0;1;0v
-# 4;0 - jump scrolling
-# 2;0 - 7 bit operations
-# 1;0 - 7 bit (native) keyboard language
-# \E(0 - default character set (the keyboard native language)
-#
-d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode,
- km@,
- enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O,
- rs2=\E[4;0;2;0;1;0v\E(0,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410,
-
-d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode,
- km,
- enacs@, rmacs=\036FS00,
- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
- sgr0=\017\025\035\036E\036FS00, smacs=\036FS11,
- use=d400-dg,
-
-# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<2;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <2 - horizontal scrolling enabled (for alignment)
-# <4 - print characters regardless of attributes
-# \E[5;1v - compressed (135 column) mode
-# \E[1;1;126 - margins at columns 1 and 126
-# \E[1;6;<2h
-# 1 - print all characters even if protected
-# 6 - character protection disabled
-# <2 - horizontal scrolling disabled
-# - (should reset scrolling regions, but that glitches the screen)
-#
-# Reset string 1 sets:
-# \Ec - initial mode defaults (RIS)
-# \E[5;1v - compressed (135 column) mode
-# \E[1;1;126w - margins at columns 1 and 126
-# \E[<2h - horizontal scrolling disabled
-#
-d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode,
- cols#126,
- is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
- rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410,
-
-d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode,
- cols#126,
- is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
- rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410-7b,
-
-d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode,
- use=d410-dg,
-
-# These add intelligent features like scrolling regions.
-d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode,
- civis=\036FQ0, clear=^^FE, cnorm=\036FQ5,
- cup=\036FP%p2%2.2X%p1%2.2X, dch1=^^K, dl1=^^FI,
- home=^^FG, hpa=\036FP%p1%2.2XFF, ich1=^^J, il1=^^FH,
- is2=\036FQ5\036FW\036FJ\036F\^\036FX004F\036O\036FS00,
- ll=\036FG\036PA, mc0=^A, rc=\036F}11, ri=^^I,
- rs1=\036FA\036FT0, rs2=\036P@1, sc=\036F}10,
- vpa=\036FPFF%p1%2.2X,
- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
- use=d216+,
-d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode,
- cols#132,
- is2=\036FQ5\036FW\036FK\036F\^\036FX0083\036O\036FS00,
- rs2=\036P@1\036FK\036FX0083,
- wind=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X,
- use=d412-unix,
-d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines,
- lines#25,
- is3=\036Fz2,
- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
- use=d462+,
-d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line,
- eslok, hs,
- clear=\036FG\036PH, fsl=\036F}01\022,
- is3=\036Fz2\036F}00\036FB180000\036F}01, ll@,
- tsl=\036F}00\036FP%p1%2.2X18\036PG,
- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X,
- use=d462+,
-
-# Relative cursor motions are confined to the current window,
-# which is not what the scrolling region specification expects.
-# Thus, relative vertical cursor positioning must be deleted.
-d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region,
- csr=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;,
- cud1@, cuu1@, ll@, use=d462+,
-
-d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode,
- use=d412-unix,
-d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode,
- use=d412-unix-w,
-d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines,
- use=d412-unix-25,
-d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line,
- use=d412-unix-s,
-d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region,
- use=d412-unix-sr,
-
-d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode,
- use=d413-unix,
-d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode,
- use=d413-unix-w,
-d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines,
- use=d413-unix-25,
-d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line,
- use=d413-unix-s,
-d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region,
- use=d413-unix-sr,
-
-d430c-dg|d430-dg|Data General D430C in DG mode,
- use=d413-dg, use=dg+fixed,
-d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors,
- use=d413-dg, use=dg+ccc,
-
-d430c-unix|d430-unix|Data General D430C in DG-UNIX mode,
- use=d413-unix, use=dgunix+fixed,
-d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode,
- use=d413-unix-w, use=dgunix+fixed,
-d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines,
- use=d413-unix-25, use=dgunix+fixed,
-d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line,
- use=d413-unix-s, use=dgunix+fixed,
-d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region,
- use=d413-unix-sr, use=dgunix+fixed,
-d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors,
- use=d413-unix, use=dgunix+ccc,
-d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors,
- use=d413-unix-w, use=dgunix+ccc,
-d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors,
- use=d413-unix-25, use=dgunix+ccc,
-d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors,
- use=d413-unix-s, use=dgunix+ccc,
-d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors,
- use=d413-unix-sr, use=dgunix+ccc,
-
-# DASHER D470C color terminal in ANSI mode.
-# Like the D460 but with 16 colors and without a compressed mode.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<2;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <2 - horizontal scrolling enabled (for alignment)
-# <4 - print characters regardless of attributes
-# \E[1;1;80w - margins at columns 1 and 80
-# \E[1;6;<2h
-# 1 - print all characters even if protected
-# 6 - character protection disabled
-# <2 - horizontal scrolling disabled
-# - (should reset scrolling regions, but that glitches the screen)
-#
-d470c|d470|Data General DASHER D470C,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
- use=dg+color, use=d460,
-
-d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;,
- use=dg+color, use=d460-7b,
-
-# Initialization string 2 sets:
-# ^^FQ2 - default cursor (solid rectangle)
-# ^^FW - character protection disabled
-# ^^F\^ - horizontal scrolling enabled (for alignment)
-# ^^FX004? - margins at columns 0 and 79
-# ^^F] - horizontal scrolling disabled
-# ^^O - primary character set
-# ^^FS00 - default character set (the keyboard native language)
-# - (should reset scrolling regions, but that glitches the screen)
-#
-d470c-dg|d470-dg|Data General DASHER D470C in DG mode,
- is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O\036FS00,
- use=dgmode+color, use=d460-dg,
-
-# DASHER D555 terminal in ANSI mode.
-# Like a D411, but has an integrated phone.
-d555|Data General DASHER D555,
- use=d411,
-d555-7b|Data General DASHER D555 in 7-bit mode,
- use=d411-7b,
-d555-w|Data General DASHER D555 in wide mode,
- use=d411-w,
-d555-7b-w|Data General DASHER D555 in wide 7-bit mode,
- use=d411-7b-w,
-d555-dg|Data General DASHER D555 series in DG mode,
- use=d411-dg,
-
-# DASHER D577 terminal in ANSI mode.
-# Like a D411, but acts as a keyboard for serial printers ("KSR" modes).
-d577|Data General DASHER D577,
- use=d411,
-d577-7b|Data General DASHER D577 in 7-bit mode,
- use=d411-7b,
-d577-w|Data General DASHER D577 in wide mode,
- use=d411-w,
-d577-7b-w|Data General DASHER D577 in wide 7-bit mode,
- use=d411-7b-w,
-
-d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode,
- use=d411-dg,
-
-# DASHER D578 terminal.
-# Like a D577, but without compressed mode; like a D470C in this respect.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<2;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <2 - horizontal scrolling enabled (for alignment)
-# <4 - print characters regardless of attributes
-# \E[1;1;80w - margins at columns 1 and 80
-# \E[1;6;<2h
-# 1 - print all characters even if protected
-# 6 - character protection disabled
-# <2 - horizontal scrolling disabled
-# - (should reset scrolling regions, but that glitches the screen)
-#
-d578|Data General DASHER D578,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577,
-d578-7b|Data General DASHER D578 in 7-bit mode,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577-7b,
-
-#### Datamedia (dm)
-#
-# Datamedia was headquartered in Nashua, New Hampshire until it went
-# out of business in 1993, but the ID plates on the terminals referred
-# to the factory in Pennsauken, NJ. The factory was sold to a PCB board
-# manufacturer which threw out all information about the terminals.
-#
-
-cs10|colorscan|Datamedia Color Scan 10,
- msgr,
- cols#80, lines#24,
- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-cs10-w|Datamedia Color Scan 10 with 132 columns,
- cols#132,
- cup=\E[%i%p1%02d;%p2%03dH, use=cs10,
-
-# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
-dm1520|dm1521|datamedia 1520,
- OTbs, am, xenl,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, ht=^I, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
- khome=^Y,
-# dm2500: this terminal has both <ich> and <smir>. Applications using
-# termcap/terminfo directly (rather than through ncurses) might be confused.
-dm2500|datamedia2500|datamedia 2500,
- OTbs, OTnc,
- cols#80, lines#24,
- bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\,
- cup=\014%p2%{96}%^%c%p1%{96}%^%c, cuu1=^Z,
- dch1=\020\010\030\035$<10*>,
- dl1=\020\032\030\035$<10*>, el=^W, home=^B,
- ich1=\020\034\030\035$<10*>,
- il1=\020\n\030\035\030\035$<15>, ind=^J, pad=\377,
- rmdc=^X^], rmir=\377\377\030\035$<10>, rmso=^X^],
- smdc=^P, smir=^P, smso=^N,
-# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82)
-# also, has a meta-key.
-# From: <goldberger@su-csli.arpa>
-# (dmchat: ":MT:" changed to ":km:" -- esr)
-dmchat|dmchat version of datamedia 2500,
- km,
- dl1=\020\032\030\035$<2/>,
- il1=\020\n\030\035\030\035$<1*/>, use=dm2500,
-# (dm3025: ":MT:" changed to ":km:" -- esr)
-dm3025|datamedia 3025a,
- OTbs, km,
- cols#80, it#8, lines#24,
- bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
- dch1=\010$<6>, dl1=\EP\EA\EQ$<130>, ed=\EJ$<2>, el=\EK,
- home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=^J, ip=$<6>,
- is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP,
- smir=\EP, smso=\EO1,
-dm3045|datamedia 3045a,
- OTbs, am, eo, km@, ul, xenl,
- dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA,
- kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r,
- kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r,
- khome=\EH, pad=\177, rmdc@, rmir=\EP, rmso@, smdc@, smso@,
- use=dm3025,
-# Datamedia DT80 soft switches:
-# 1 0=Jump 1=Smooth
-# Autorepeat 0=off 1=on
-# Screen 0=Dark 1=light
-# Cursor 0=u/l 1=block
-#
-# 2 Margin Bell 0=off 1=on
-# Keyclick 0=off 1=on
-# Ansi/VT52 0=VT52 1=Ansi
-# Xon/Xoff 0=Off 1=On
-#
-# 3 Shift3 0=Hash 1=UK Pound
-# Wrap 0=Off 1=On
-# Newline 0=Off 1=On
-# Interlace 0=Off 1=On
-#
-# 4 Parity 0=Odd 1=Even
-# Parity 0=Off 1=On
-# Bits/Char 0=7 1=8
-# Power 0=60Hz 1=50Hz
-#
-# 5 Line Interface 0=EIA 1=Loop
-# Aux Interface 0=EIA 1=Loop
-# Local Copy 0=Off 1=On
-# Spare
-#
-# 6 Aux Parity 0=Odd 1=Even
-# Aux Parity 0=Off 1=On
-# Aux Bits/Char 0=7 1=8
-# CRT Saver 0=Off 1=On
-# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
-dm80|dmdt80|dt80|datamedia dt80/1,
- clear=\E[2J\E[H, cud1=^J, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM,
- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
- use=vt100,
-# except in 132 column mode, where it needs a little padding.
-# This is still less padding than the vt100, and you can always turn on
-# the ^S/^Q handshaking, so you can use vt100 flavors for things like
-# reverse video.
-dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode,
- cols#132,
- clear=\E[H\E[2J$<50/>, cud1=^J,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>,
- ed=\E[0J$<20/>, el=\E[0K$<20/>, use=dm80,
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-dt80-sas|Datamedia DT803/DTX for SAS usage,
- am, bw,
- cols#80, lines#24,
- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
- bel=^G, clear=^L, cr=^M,
- csr=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2,
- cub1=^H, cud1=\EB, cuf1=^\,
- cup=\E=%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, dl1=\EM, ed=^K,
- el=^], ff=^L, home=^Y, ht=^I, hts=\E'1, il1=\EL, ind=\EB,
- is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=^J,
- kcuf1=^\, kcuu1=^_, ked=^K, kel=^], khome=^Y, mc4=^O, mc5=^N,
- rev=\E$2\004, ri=\EI, rmacs=\EG, rmso=^X, sgr0=^X, smacs=\EF,
- smso=\E$2\004, tbc=\E'0,
-
-# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL
-# These aren't end-all Excel termcaps; but do insert/delete char/line
-# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman)
-# The naming convention has been bent somewhat, with the use of E? (where
-# E is for 'Excel') as # a name. This was done to distinguish the entries
-# from the other Datamedias in use here, and yet to associate a model of
-# the Excel terminals with the regular datamedia terminals that share
-# major characteristics.
-excel62|excel64|datamedia Excel 62,
- dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
- kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
- use=dt80,
-excel62-w|excel64-w|datamedia Excel 62 in 132 char mode,
- dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
- kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
- use=dt80w,
-excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode,
- dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=^J,
- kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l,
- smir=\E[4h, use=dt80,
-
-#### Falco
-#
-# Falco Data Products
-# 440 Potrero Avenue
-# Sunnyvale, CA 940864-196
-# Vox: (800)-325-2648
-# Fax: (408)-745-7860
-# Net: techsup@charm.sys.falco.com
-#
-# Current Falco models as of 1995 are generally ANSI-compatible and support
-# emulations of DEC VT-series, Wyse, and Televideo types.
-#
-
-# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
-# This terminal was released around 1983 and was discontinued long ago.
-# The standout and underline highlights are the same.
-falco|ts1|ts-1|falco ts-1,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET\EG0\010, home=^^, ht=^I, il1=\EE,
- ind=^J, is2=\Eu\E3, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0,
- smir=\Eq, smso=\Eg1, smul=\Eg1,
-falco-p|ts1p|ts-1p|falco ts-1 with paging option,
- OTbs, am, da, db, mir, msgr, ul,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\EI, clear=\E*, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A,
- dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I,
- il1=\EE, ind=^J, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er,
- rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq,
- smso=\Eg4, smul=\Eg1,
-# (ts100: I added <rmam>/<smam> based on the init string -- esr)
-ts100|ts100-sp|falco ts100-sp,
- am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>,
- el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H,
- ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=^J, is1=\E~)\E~ea,
- ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM,
- kf0=\EOy, kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, 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%;,
- 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,
- rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
-
-#### Florida Computer Graphics
-#
-
-# Florida Computer Graphics Beacon System, using terminal emulator program
-# "host.com", as provided by FCG. This description is for an early release
-# of the "host" program. Known bug: <ed> clears the whole screen, so it's
-# commented out.
-
-# From: David Bryant <cbosg!djb> 1/7/83
-beacon|FCG Beacon System,
- am, da, db,
- cols#80, lines#32,
- bel=\ESTART\r\E37\r\EEND\r$<1>,
- blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=^M,
- cub1=^H, cud1=^J, cuf1=\EV,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=\EU,
- dch1=\EW, dl1=\ER, el=\ET, home=\EH$<10>, ich1=\EQ, il1=\EE,
- ind=^J, rev=\ESTART\r\E59\,1\r\EEND\r, rmcup=,
- rmso=\ESTART\r\E70\,0\r\EEND\r$<20>,
- rmul=\ESTART\r\E60\,0\r\EEND\r,
- sgr0=\ESTART\r\E78\r\E70\,0\r\EEND\r$<20>,
- smcup=\ESTART\r\E2\,0\r\E12\r\EEND\r$<10>,
- smso=\ESTART\r\E70\,6\r\EEND\r$<20>,
- smul=\ESTART\r\E60\,1\r\EEND\r,
-
-#### Fluke
-#
-
-# The f1720a differences from ANSI: no auto margin, destructive
-# tabs, # of lines, funny highlighting and underlining
-f1720|f1720a|fluke 1720A,
- xt,
- cols#80, lines#16, xmc#1,
- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J,
- el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^],
- kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m,
-
-#### Liberty Electronics (Freedom)
-#
-# Liberty Electronics
-# 48089 Fremont Blvd
-# Fremont CA 94538
-# Vox: (510)-623-6000
-# Fax: (510)-623-7021
-
-# From: <faletti@berkeley.edu>
-# (f100: added empty <acsc> to suppress a tic warning;
-# made this relative to adm+sgr -- note that <invis> isn't
-# known to work for f100 but does on the f110. --esr)
-f100|freedom|freedom100|freedom model 100,
- OTbs, am, bw, hs, mir, msgr, xon,
- cols#80, lines#24,
- acsc=, bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dl1=\ER$<11.5*>, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
- flash=\Eb$<200>\Ed, fsl=^M, home=^^, hpa=\E]%p1%{32}%+%c,
- ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=^J, ip=$<6>,
- is2=\Eg\Ef\r\Ed, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V,
- kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er,
- smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
- vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-f100-rv|freedom-rv|freedom 100 in reverse video,
- flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100,
-# The f110 and f200 have problems with vi(1). They use the ^V
-# code for the down cursor key. When kcud1 is defined in terminfo
-# as ^V, the Control Character Quoting capability (^V in insert mode)
-# is lost! It cannot be remapped in vi because it is necessary to enter
-# a ^V to to quote the ^V that is being remapped!!!
-#
-# f110/f200 users will have to decide whether
-# to lose the down cursor key or the quoting capability. We will opt
-# initially for leaving the quoting capability out, since use of VI
-# is not generally applicable to most interactive applications
-# (f110: added <ht>, <khome> & <kcbt> from f100 -- esr)
-f110|freedom110|Liberty Freedom 110,
- bw@, eslok,
- it#8, wsl#80,
- blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V,
- cvvis=\E.2, dim=\EG@, dl1=\ER, dsl=\Ef\r,
- flash=\Eb$<200/>\Ed, il1=\EE, ip@, is2@, kclr=^^, kdch1=\EW,
- kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf10@, kich1=\EQ,
- kil1=\EE, mc4=\Ea, mc5=\E`, ri=\EJ, rmacs=\E%%, rmir=\Er\EO,
- smacs=\E$, smir=\EO\Eq, smso=\EG<, tsl=\Ef, use=f100,
-f110-14|Liberty Freedom 110 14inch,
- dch1@, use=f110,
-f110-w|Liberty Freedom 110 - 132 cols,
- cols#132, use=f110,
-f110-14w|Liberty Freedom 110 14in/132 cols,
- cols#132,
- dch1@, use=f110,
-# (f200: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-f200|freedom200|Liberty Freedom 200,
- OTbs, am, eslok, hs, mir, msgr, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=, bel=^G, blink=\EG2, bold=\EG0, cbt=\EI, civis=\E.0,
- clear=^Z, cnorm=\E.1, cr=^M,
- csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\E.1, dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY,
- el=\ET, flash=\Eo$<200/>\En, fsl=^M, home=^^,
- hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H,
- kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
- kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
- ri=\EJ, rmacs=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, smso=\EG<,
- tbc=\E3, tsl=\Ef, vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-f200-w|Liberty Freedom 200 - 132 cols,
- cols#132, use=f200,
-# The f200 has the ability to reprogram the down cursor key. The key is
-# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM,
-# so powering the terminal off and on will not cause the change to be lost.
-f200vi|Liberty Freedom 200 for vi,
- flash=\Eb$<200/>\Ed, kcud1=^J, use=f200,
-f200vi-w|Liberty Freedom 200 - 132 cols for vi,
- cols#132, use=f200vi,
-
-#### GraphOn (go)
-#
-# Graphon Corporation
-# 544 Division Street
-# Campbell, CA 95008
-# Vox: (408)-370-4080
-# Fax: (408)-370-5047
-# Net: troy@graphon.com (Troy Morrison)
-#
-#
-# The go140 and go225 have been discontinued. GraphOn now makes X terminals,
-# including one odd hybrid that starts out life on power-up as a character
-# terminal, than can be switched to X graphics mode (driven over the serial
-# line) by an escape sequence. No info on this beast yet.
-# (go140: I added <rmam>/<smam> based on the init string -- esr)
-go140|graphon go-140,
- OTbs,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J$<10/>, cub1=^H, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J$<10/>, el=\E[K, ht=^I,
- if=/usr/share/tabset/vt100, il1=\E[L,
- is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-go140w|graphon go-140 in 132 column mode,
- am,
- cols#132,
- is2=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q,
- use=go140,
-# Hacked up vt200 termcap to handle GO-225/VT220
-# From: <edm@nwnexus.WA.COM>
-# (go225: I added <rmam>/<smam> based on the init string -- esr)
-go225|go-225|Graphon 225,
- OTbs, am, mir, xenl,
- cols#80, it#8, lines#25, vt#3,
- blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l,
- rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w,
- sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r,
- smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
-
-#### Harris (Beehive)
-#
-# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine.
-# Their terminal group is ancient history now (1995) though the parent
-# company is still in business.
-#
-
-# Beehive documentation is undated and marked Preliminary and has no figures
-# so we must have early Superbee2 (Model 600, according to phone conversation
-# with mfr.). It has proved reliable except for some missing padding
-# (notably after \EK and <nl> at bottom of screen).
-#
-# The key idea is that AEP mode is poison for <cup> & that US's in
-# the local memory should be avoided like the plague. That means
-# that the 2048 character local buffer is used as 25 lines of 80
-# characters, period. No scrolling local memory, folks. It also
-# appears that we cannot use naked INS LINE feature since it uses
-# US. The sbi fakes <il1> with an 80-space insert that may be too
-# slow at low speeds; also spaces get converted to \040 which is
-# too long for some programs (not vi). DEL LINE is ok but slow.
-#
-# The <nl> string is designed for last line of screen ONLY; cup to
-# 25th line corrects the motion inherent in scrolling to Page 1.
-#
-# There is one understood bug. It is that the screen appears to
-# pop to a new (blank) page after a <nel>, or leave a half-line
-# ellipsis to a quad that is the extra 48 memory locations. The
-# data received is dumped into memory but not displayed. Not to
-# worry if <cup> is being used; the lines not displayed will be,
-# whenever the cursor is moved up there. Since <cup> is addressed
-# relative to MEMORY of window, nothing is lost; but beware of
-# relative cursor motion (<cuu1>,<cud1>,<cuf1>,<cub1>). Recommended,
-# therefore, is setenv MORE -c .
-#
-# WARNING: Not all features tested.
-#
-# Timings are assembled from 3 sources. Some timings may reflect
-# SB2/Model 300 that were used if more conservative.
-# Tested on a Model 600 at 1200 and 9600 bd.
-#
-# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
-# placed on the keyboard and useless because of AEP, is made
-# into a backspace key. In use ESC must be pressed twice (to send)
-# and sending ^C must be prefixed by ESC to avoid that weird
-# transmit mode associated with ENTER key.
-#
-# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
-# the screen, then it has dropped into ENTER mode; hit
-# RESET--ONLINE--!tset.
-#
-# As delivered this machine has a FATAL feature that will throw
-# it into that strange transmit state (SPOW) if the space bar is
-# hit after a CR is received, but before receiving a LF (or a
-# few others).
-#
-# The circuits MUST be modified to eliminate the SPOW latch.
-# This is done by strapping on chip A46 of the I/O board; cut
-# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
-# chip. This mod has been checked out on a Mod 600 of Superbee II.
-# With this modification absurdly high timings on cr are
-# unnecessary.
-#
-# NOTE WELL that the rear panel switch should be set to CR/LF,
-# not AEP!
-#
-sb1|beehive superbee,
- OTbs, am, bw, da, db, mir, ul, xsb,
- cols#80, lines#25, xmc#1,
- bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r,
- cub1=^H, cud1=^J, cuf1=\EC$<3>, cup=\EF%p2%03d%p1%03d,
- cuu1=\EA$<3>, dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>,
- el=\EK$<3>, home=\EH$<1>, ht=^I, hts=\E1,
- il1=\EN\EL$<3>\EQ \EP$<3> \EO\ER\EA$<3>,
- ind=^J, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK,
- kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu,
- kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO,
- krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER,
- rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO,
- smso=\E_1, smul=\E_0, tbc=\E3,
-sbi|superbee|beehive superbee at Indiana U.,
- xsb,
- cr=\r$<1>, il1=1\EN\EL$<9>\EQ \EP$<9> \EO\ER\EA,
- use=sb1,
-# Alternate (older) description of Superbee - f1=escape, f2=^C.
-# Note: there are at least 3 kinds of superbees in the world. The sb1
-# holds onto escapes and botches ^C's. The sb2 is the best of the 3.
-# The sb3 puts garbage on the bottom of the screen when you scroll with
-# the switch in the back set to CRLF instead of AEP. This description
-# is tested on the sb2 but should work on all with either switch setting.
-# The f1/f2 business is for the sb1 and the <xsb> can be taken out for
-# the other two if you want to try to hit that tiny escape key.
-# This description is tricky: being able to use cup depends on there being
-# 2048 bytes of memory and the hairy <nl> string.
-superbee-xsb|beehive super bee,
- am, da, db, xsb,
- cols#80, it#8, lines#25,
- clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J,
- cuf1=\EC, cup=\EF%p2%3d%p1%3d, cuu1=\EA$<3>,
- dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>,
- home=\EH, ht=^I, hts=\E1,
- ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq,
- kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3,
-# This loses on lines > 80 chars long, use at your own risk
-superbeeic|super bee with insert char,
- ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb,
-sb2|sb3|fixed superbee,
- xsb@, use=superbee,
-
-#### Beehive Medical Electronics
-#
-# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
-# Regarding your question though; Beehive terminals weren't made by Harris.
-# They were made by Beehive Medical Electronics in Utah. They went out of
-# business in the early '80s.
-#
-# (OK, then, I don't know why a couple of these say "harris beehive".)
-#
-
-# Reports are that most of these Beehive entries (except superbee) have not
-# been tested and do not work right. <rmso> is a trouble spot. Be warned.
-
-# (bee: <ich1> was empty, which is obviously bogus -- esr)
-beehive|bee|harris beehive,
- OTbs, am, mir,
- cols#80, lines#24,
- cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>,
- kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL,
- krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@,
- smir=\EQ, smso=\EdP, smul=\Ed`,
-# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
-# good grief - does this entry make :sg:/:ug: when it doesn't have to?
-# look at those spaces in <rmso>/<smso>. Seems strange to me...
-# (beehive: <if=/usr/share/tabset/beehive> removed, no such file. If you
-# really care, cook up one using ^F -- esr)
-beehive3|bh3m|beehiveIIIm|harris beehive 3m,
- OTbs, am,
- cols#80, it#8, lines#20,
- bel=^G, clear=^E^R, cr=^M, cub1=^H, cud1=^J, cuf1=^L, cuu1=^K,
- dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F,
- il1=\023$<160>, ind=^J, ll=^E^K, rmso=\s^_, smso=^]\s,
-beehive4|bh4|beehive 4,
- am,
- cols#80, lines#24,
- bel=^G, clear=\EE, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
- cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=^J,
-# There was an early Australian kit-built computer called a "Microbee".
-# It's not clear whether this is for one of those or for a relative
-# of the Beehive.
-microb|microbee|micro bee series,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@,
- rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`,
-
-# 8675, 8686, and bee from Cyrus Rahman
-# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
-ha8675|harris 8675,
- is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F,
- kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei,
- kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=^J, kf6=^T, kf7=^H,
- kf8=\177, kf9=\Ee, use=bee,
-# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
-# in :is: -- esr)
-ha8686|harris 8686,
- is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#,
- kf1=\002\Ep\003, kf10=\Ej, kf11=\EW, kf12=\002\E{\003,
- kf13=\002\E|\003, kf14=\002\E}\003, kf15=\002\E~\003,
- kf16=\002\E\177\003, kf2=\002\Eq\003, kf3=\002\Er\003,
- kf4=\002\Es\003, kf5=\E3, kf6=\EI, kf7=\ER, kf8=\EJ, kf9=\E(,
- use=bee,
-
-#### Hazeltine
-#
-# Hazeltine appears to be out of the terminal business as of 1995. These
-# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with
-# Harris. They have a hazeltine.com domain (but no web page there ) and can
-# be reached at:
-#
-# Hazeltine
-# 450 East Pulaski Road
-# Greenlawn, New York 11740
-#
-# As late as 1993, manuals for the terminal product line could still be
-# purchased from:
-#
-# TRW Customer Service Division
-# 15 Law Drive
-# P.O. Box 2076
-# Fairfield, NJ 07007-2078
-#
-# They're now (1998) a subsidiary of General Electric, operating under the
-# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page
-# at <http://www.gec.com/cpd/1ncpd.htm#1.55>.
-#
-
-# Since <cuf1> is blank, when you want to erase something you
-# are out of luck. You will have to do ^L's a lot to
-# redraw the screen. h1000 is untested. It doesn't work in
-# vi - this terminal is too dumb for even vi. (The code is
-# there but it isn't debugged for this case.)
-hz1000|hazeltine 1000,
- OTbs,
- cols#80, lines#12,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K,
- ind=^J,
-# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
-hz1420|hazeltine 1420,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P,
- cup=\E\021%p2%c%p1%{32}%+%c, cuu1=\E^L, dl1=\E^S,
- ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=^J, rmso=\E^Y,
- smso=\E^_,
-# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents
-# freakout with out-of-range args and tn3270. No hz since it needs to
-# receive tildes.
-hz1500|hazeltine 1500,
- OTbs, am, hz,
- cols#80, lines#24,
- bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
- cup=~\021%p2%p2%?%{30}%>%t%{32}%+%;%{96}%+%c%p1%{96}%+%c,
- cuu1=~^L, dl1=~\023$<40>, ed=~\030$<10>, el=~^O, home=~^R,
- il1=~\032$<40>, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^P,
- kcuu1=~^L, khome=~^R, rmso=~^Y, smso=~^_,
-# h1510 assumed to be in sane escape mode. Else use h1500.
-# (h1510: early versions of this entry apparently had "<rmso=\E^_>,
-# <smso=\E^Y>, but these caps were commented out in 8.3; also,
-# removed incorrect and overridden ":do=^J:" -- esr)
-hz1510|hazeltine 1510,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P,
- cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ed=\E^X,
- el=\E^O, il1=\E^Z, ind=^J,
-# Hazeltine 1520
-# The following switch settings are assumed for normal operation:
-# FULL CR U/L_CASE ESCAPE
-# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON
-# Other switches may be set for operator convenience or communication
-# requirements.
-hz1520|Hazeltine 1520,
- OTbs, am, bw, msgr,
- cols#80, lines#24,
- bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J,
- cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
- ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, kbs=^H,
- kclr=\E^\, kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L,
- kdl1=\E^S, ked=\E^X, kel=\E^O, khome=\E^R, kil1=\E^Z,
- rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_,
-# This version works with the escape switch off
-# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
-hz1520-noesc|hazeltine 1520,
- am, hz,
- cols#80, lines#24,
- bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
- cup=~\021%p2%c%p1%c$<1>, cuu1=~^L, dl1=~^S, ed=~^X, el=~^O,
- home=~^R, il1=~^Z, ind=^J, rmso=~^Y, smso=~^_,
-# Note: the h1552 appears to be the first Hazeltine terminal which
-# is not braindamaged. It has tildes and backprimes and everything!
-# Be sure the auto lf/cr switch is set to cr.
-hz1552|hazeltine 1552,
- OTbs,
- cud1=^J, dl1=\EO, il1=\EE, kf1=\EP, kf2=\EQ, kf3=\ER, lf1=blue,
- lf2=red, lf3=green, use=vt52,
-hz1552-rv|hazeltine 1552 reverse video,
- cud1=^J, rmso=\ET, smso=\ES, use=hz1552,
-# Note: h2000 won't work well because of a clash between upper case and ~'s.
-hz2000|hazeltine 2000,
- OTbs, OTnc, am,
- cols#74, lines#27,
- bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J,
- cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R,
- il1=~\032$<6>, ind=^J, pad=\177,
-# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote:
-# I tested this termcap entry for the Hazeltine Esprit with vi. It seems
-# to work ok. There is one problem though if one types a lot of garbage
-# characters very fast vi seems not able to keep up and hangs while trying
-# to insert. That's in insert mode while trying to insert in the middle of
-# a line. It might be because the Esprit doesn't have insert char and delete
-# char as a built in function. Vi has to delete to end of line and then
-# redraw the rest of the line.
-esprit|Hazeltine Esprit I,
- OTbs, am, bw,
- cols#80, lines#24,
- bel=^G, cbt=\E^T, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K,
- cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
- ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, is2=\E?, kbs=^H,
- kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0^J,
- kf1=^B1^J, kf2=^B2^J, kf3=^B3^J, kf4=^B4^J, kf5=^B5^J,
- kf6=^B6^J, kf7=^B7^J, kf8=^B8^J, kf9=^B9^J, khome=\E^R,
- lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9,
- rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_,
-esprit-am|hazeltine esprit auto-margin,
- am, use=esprit,
-# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
-# Vi it seems always wants to send a control J for "do" and it turned out
-# that the terminal would work somewhat if the auto LF/CR was turned off.
-# (hmod1: removed :dn=~^K: -- esr)
-hmod1|Hazeltine Modular 1,
- OTbs, am, hz,
- cols#80, lines#24,
- bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
- cup=~\021%p2%c%p1%c, cuu1=~^L, dl1=~^S, home=~^R, il1=~^Z,
- ind=^J, kcub1=^H, kcud1=~^K, kcuf1=^P, kcuu1=~^L, khome=~^R,
- rc=~^Q, rmso=~^Y, sc=~^E, sgr0=~^Y, smso=~^_,
-#
-# Hazeltine Executive 80 Model 30 (1554?)
-# from Will Martin <control@ALMSA-1.ARPA> via BRL
-# Like VT100, except for different "am" behavior.
-hazel|exec80|h80|he80|Hazeltine Executive 80,
- OTbs, OTpt, am,
- cols#80, it#8, lines#24, vt#3,
- OTnl=^J, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
- rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
- rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>,
- smul=\E[4m$<2/>,
-
-#### IBM
-#
-
-ibm327x|line mode IBM 3270 style,
- gn,
- clear=^M^J, el=^M, home=^M,
-
-ibm3101|i3101|IBM 3101-10,
- OTbs, am, xon,
- cols#80, lines#24,
- bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH,
-ibm3151|IBM 3151 display,
- is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
- sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;,
- sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
-# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
-# removed kend, knp, kpp -TD
-ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
- OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370,
- bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J,
- invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ,
- kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r,
- kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r,
- kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r,
- kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r,
- kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r,
- kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r,
- kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN,
- ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A,
- rmso=\E4@, rmul=\E4@,
- sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;,
- sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B,
-
-ibm3161-C|IBM 3161-C NLS terminal using cartridge,
- rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
-ibm3162|IBM 3162 display,
- blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a,
- rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a,
- use=ibm3161-C,
-
-# This really should not use setab/setaf, but it is clear that the
-# original terminfo does not toggle red/blue colors as in setb/setf.
-ibm3164|i3164|IBM 3164,
- msgr,
- colors#8, pairs#64,
- op=\E4 "@, rmcup=\E!9(N\E>B, s0ds=\E>B, s1ds=\E>A,
- setab=\E4 %p1%{64}%+%c,
- setaf=\E4%?%p1%t %p1%{32}%+%c%e!'%;@,
- smcup=\E!9/N\E>B, use=ibm3161,
-
-ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display,
- am, bw, msgr, xon,
- cols#80, it#8, lines#25,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H,
- hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z,
- kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q,
- kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q,
- kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q,
- kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q,
- kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q,
- kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q,
- kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q,
- kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q,
- kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q,
- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
- kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q,
- kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q,
- krmir=\E[4l, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmir=\E[4l,
- rmso=\E[m, rmul=\E[m, rs2=\Ec,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
- sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-
-ibmaed|IBM Experimental display,
- OTbs, am, eo, msgr,
- cols#80, it#8, lines#52,
- clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
- dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP,
- il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- rmso=\E0, sgr0=\E0, smso=\E0,
-ibm-apl|apl|IBM apl terminal simulator,
- lines#25, use=dm1520,
-# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
-# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
-ibmmono|IBM workstation monochrome,
- eslok, hs,
- bold=\EZ, dl1=\EM, dsl=\Ej\EY8 \EI\Ek, fsl=\Ek, il1=\EL,
- invis=\EF\Ef0;\Eb0;, kbs=^H, kf0=\E<, kf1=\ES, kf2=\ET,
- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EY,
- khome=\EH, kich1=\0, kind=\EE, knp=\EE, kpp=\Eg, kri=\EG,
- lf0=f10, rev=\Ep, ri=\EA, rmso=\Ez, rmul=\Ew,
- sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo,
- use=ibm3101,
-ibmega|IBM Enhanced Color Display,
- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
- nel=^M^J, use=ibmmono,
-# This color scheme is assumed in some recent IBM terminal descriptions
-# (green on black, emulated on a 16-color terminal).
-ibm+color|IBM color definitions,
- colors#8, ncv#3, pairs#64,
- op=\E[32m\E[40m,
- setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;,
- setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;,
-ibm5154|IBM 5154 Color display,
- colors#8, ncv@, pairs#64,
- bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
- use=ibm+color,
-ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline,
- rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;,
- use=ibmmono,
-ibmvga-c|IBM VGA display color termcap,
- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
- nel=^M^J, use=ibmega-c,
-ibmvga|IBM VGA display,
- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
- nel=^M^J, use=ibmega,
-# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
-rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display,
- lines#32,
- dsl=\Ej\EY@ \EI\Ek, tsl=\Ej\EY@%+ \Eo, use=ibmmono,
-ibm6155|IBM 6155 Black & White display,
- blink@, bold@, use=ibm5151,
-# Advanced Monochrome (6153) and Color (6154) Graphics Display:
-ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display,
- lines#31,
- dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, use=ibmmono,
-ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display,
- lines#31,
- dim=\EF\Ef7;, dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo,
- use=ibmega-c,
-ibm6154|IBM 6154 Color displays,
- blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
- sgr0=\E[0;10m, use=ibm5154,
-ibm6153|IBM 6153 Black & White display,
- blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
- sgr0=\E[0;10m, use=ibm5151,
-ibm6153-90|IBM 6153 Black & White display,
- cols#90, lines#36,
- blink@, bold@, use=ibm5151,
-ibm6153-40|IBM 6153 Black & White display,
- cols#40, lines#12, use=ibm6153-90,
-ibm8512|ibm8513|IBM color VGA Terminal,
- am, mir, msgr,
- cols#80, it#8, lines#25,
- acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m,
- clear=\E[H\E[J, cub1=\E[D, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL,
- il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A,
- kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q,
- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
- kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m,
- smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb,
- smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- use=ibm8503,
-hft-c|HFT with Color,
- colors#8, pairs#64,
- acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B,
- use=ibm5151, use=ibm+color,
-hft-c-old|HFT with Color PC850,
- colors#8, pairs#64,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
- use=ibm+color,
-hft-old|AIWS High Function Terminal,
- am, xon,
- cols#80, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- ht=^I, ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
- kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q,
- ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color,
-ibm-system1|system1|ibm system/1 computer,
- am, xt,
- cols#80, lines#24,
- bel=^G, clear=^Z, cub1=^H, cuf1=^\,
- cup=\005%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, home=^K,
- ind=^J,
-# lft-pc850 : IBM Low Function Terminal Device
-# lft "supports" underline, bold, and blink in the sense that the lft code
-# sets all the right bits. HOWEVER, depending upon the adapter, these
-# attributes may or may not be supported by the device driver.
-lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device,
- am, bw, msgr, xon,
- cols#80, it#8, lines#25,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K,
- home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\ED, indn=\E[%p1%dS, invis=\E[8m, is2=\Ec,
- kbs=^H, kcbt=\E[Z, kclr=\E[144q, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ked=\E[148q,
- kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q,
- kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q,
- kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q,
- kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q,
- kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q,
- kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q,
- kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q,
- kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q,
- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
- kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
- kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q,
- kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\EL, rin=\E[%p1%dT,
- rmacs=\E(B, rmir=\E[4l, rmso=\E[0m, rmul=\E[0m, rs2=\Ec,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g,
-ibm5081|hft|IBM Megapel Color display,
- acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
- s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
-ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
- eslok, hs,
- lines#33,
- dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo,
- use=ibmega-c,
-ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display,
- use=hft-c,
-ibm8514|IBM 8514/a color VGA display,
- eslok, hs,
- dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft,
-ibm8514-c|IBM 8514 color display with standout and underline,
- eslok, hs,
- lines#41,
- cr=^M, cud1=^J, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=^J,
- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, tsl=\Ej\EYI%+ \Eo,
- use=ibmega-c,
-
-#
-# AIX entries. IBM ships these with AIX 3.2.5.
-# -- added rc, sc based on manpage -TD
-aixterm|IBM Aixterm Terminal Emulator,
- eslok, hs,
- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
- fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154,
-aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
- eslok, hs,
- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
- fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153,
-aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator,
- eslok, hs,
- bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- tsl=\E[?%p1%dT, use=ibm6153,
-jaixterm|IBM Kanji Aixterm Terminal Eemulator,
- acsc@, use=aixterm,
-jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
- acsc@, use=aixterm-m,
-
-#### Infoton/General Terminal Corp.
-#
-
-# gt100 sounds like something DEC would come out with. Let's hope they don't.
-i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100),
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM,
- ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL,
- ind=^J, rmso=\Ea, smso=\Eb,
-i400|infoton 400,
- OTbs, am,
- cols#80, lines#25,
- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=%i\E[%p1%3d;%p2%3dH, cuu1=\E[A,
- dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
- il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
-# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
-addrinfo,
- am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y,
- cup=\037%p1%{1}%-%c%p2%{1}%-%c, cuu1=^\, ed=^K, home=^H,
- ind=^J, ll=^H^\,
-# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
-infoton,
- am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\,
- ed=^K, ind=^J, ll=^H^\,
-
-# The ICL6402 was actually the Kokusai Display System 6402.
-# The 6404 was the KDS7372 (color version of the 6402).
-#
-# ICL6404 control codes follow:
-#
-#code function
-#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#ctrl-A set SOM position at cursor position
-#ctrl-G Bell
-#ctrl-H Backspace
-#ctrl-I Horiz tab
-#ctrl-J Linefeed
-#ctrl-K Cursor up
-#ctrl-L Cursor right
-#ctrl-M Carriage return
-#ctrl-N Disable xon/xoff to host
-#ctrl-O Enable xon/xoff to host
-#ctrl-R Enable bidirectional mode
-#ctrl-T Disable bidirectional mode
-#ctrl-V Cursor down
-#ctrl-Z Clear unprotected data to insert char
-#ctrl-^ Cursor home
-#ctrl-_ Newline
-#
-#ESC lead-in char for multiple character command
-#
-#ESC space R execute power on sequence
-#ESC ! p1 p2 define scroll region:
-# p1 = scroll top line: 20h - 37h
-# p1 = scroll bottom line: 20h - 37h
-#ESC " unlock keyboard
-#ESC # lock keyboard
-#ESC $ Semi-graphics mode on
-#ESC % Semi-graphics mode off
-#ESC & protect mode on
-#ESC ' protect mode off
-#ESC ( write protect mode off (full intensity)
-#ESC ) write protect mode on (half intensity)
-#
-#ESC * clear screen
-#ESC + clear unprotected data to insert char
-#ESC , clear unprotected data to half intensity spaces
-#ESC - p1 p2 p3 p4 address cursor to page, row, column:
-# p1 = page number 0 - 3
-# p2 = row 20h - 7fh
-# p3 = column (lo) 20h - 7fh
-# p4 = column (hi) 20h - 21h (only 132 col)
-#ESC . p1 set cursor style:
-# p1 = 0 invisible cursor
-# p1 = 1 block blinking cursor
-# p1 = 2 block steady cursor
-# p1 = 3 underline blinking cursor
-# p1 = 4 underline steady cursor
-#ESC / transmit cursor location (page, row, column)
-#ESC 0 p1 p2 p3 p4 program edit key:
-# p1 = edit key code: '@'-'S', '`'-'s'
-# p2 p3 p4 = program data (3 bytes)
-#
-#ESC 1 set tab
-#ESC 2 clear tab at cursor
-#ESC 3 clear all tabs
-#ESC 4 send unprotect line to cursor
-#ESC 5 send unprotect page to cursor
-#ESC 6 send line to cursor
-#ESC 7 send page to cursor
-#ESC 8 n set scroll mode:
-# n = 0 set jump scroll
-# n = 1 set smooth scroll
-#ESC 9 n control display:
-# n = 0 display off
-# n = 1 display on
-#ESC : clear unprotected data to null
-#ESC ; clear unprotected data to insert char
-#
-#ESC < keyclick on
-#ESC = p1 p2 address cursor to row, column
-# p1 = row 20h - 7fh
-# p2 = column (lo) 20h - 7fh
-# p3 = column (hi) 20h - 21h (only 132 col)
-#ESC > keyclick off
-#ESC ? transmit cursor location (row, column)
-#
-#ESC @ copy print mode on
-#ESC A copy print mode off
-#ESC B block mode on
-#ESC C block mode off (conversation mode)
-#ESC D F set full duplex
-#ESC D H set half duplex
-#ESC E line insert
-#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd)
-# 0 = black, 1 = red, 2 = green, 3 = yellow
-# 4 = blue, 5 = magenta, 6 = cyan, 7 = white
-#ESC G n set serial field attribute (n = 30h - 3Fh)
-#ESC H n full graphics mode:
-# n = 0 exit full graphics mode
-# n = 1 enter full graphics mode
-#ESC I back tab
-#ESC J back page
-#ESC K forward page
-#
-#ESC L unformatted page print
-#ESC M L move window left (132 col mode only)
-#ESC M R move window right (132 col mode only)
-#ESC N set page edit (clear line edit)
-#ESC O set line edit (clear page edit)
-#ESC P formatted page print
-#ESC Q character insert
-#ESC R line delete
-#ESC S send message unprotected only
-#ESC T erase line to insert char
-#ESC U set monitor mode (see ESC X, ESC u)
-#
-#ESC V n select video attribute mode:
-# n = 0 serial field attribute mode
-# n = 1 parallel character attribute mode
-#ESC V 2 n define line attribute:
-# n = 0 single width single height
-# n = 1 single width double height
-# n = 2 double width single height
-# n = 3 double width double height
-#ESC V 3 n select character font:
-# n = 0 system font
-# n = 1 user defined font
-#ESC V 4 n select screen mode:
-# n = 0 page screen mode
-# n = 1 virtual screen mode
-#ESC V 5 n control mouse mode:
-# n = 0 disable mouse
-# n = 1 enable sample mode
-# n = 2 send mouse information
-# n = 3 enable request mode
-#ESC W character delete
-#ESC X clear monitor mode (see ESC U, ESC u)
-#ESC Y erase page to insert char
-#
-#ESC Z n send user/status line:
-# n = 0 send user line
-# n = 1 send status line
-# n = 2 send terminal ID
-#ESC [ p1 p2 p3 set character attribute (parallel char mode):
-# p1: 0 = normal
-# 1 = blank
-# 2 = blink
-# 3 = blink blank (= blank)
-# 4 = reverse
-# 5 = reverse blank
-# 6 = reverse blink
-# 7 = reverse blink blank (= reverse blank)
-# 8 = underline
-# 9 = underline blank
-# : = underline blink
-# ; = underline blink blank
-# < = reverse underline
-# = = reverse underline blank
-# > = reverse underline blink
-# ? = reverse underline blink blank
-# p2, p3: f/grnd, b/grnd colour
-# (see ESC F for colours)
-# use ZZ for mono, eg.
-# ESC [ 0 Z Z for normal
-# ESC [ 4 Z Z for inverse etc.
-#
-#ESC \ n set page size:
-# n = 1 24 lines/page
-# n = 2 48 lines/page
-# n = 3 72 lines/page
-# n = 4 96 lines/page
-#ESC ] n set Wordstar mode:
-# n = 0 normal (KDS7372) mode
-# n = 1 Wordstar mode
-#
-#ESC b set foreground colour screen
-#
-#ESC c n enter self-test mode:
-# n = 0 exit self test mode
-# n = 1 ROM test
-# n = 2 RAM test
-# n = 3 NVRAM test
-# n = 4 screen display test
-# n = 5 main/printer port test
-# n = 6 mouse port test
-# n = 7 graphics board test
-# n = 8 graphics memory test
-# n = 9 display all 'E'
-# n = : display all 'H'
-#ESC d set background colour screen
-#
-#ESC e n program insert char (n = insert char)
-#ESC f text CR load user status line with 'text'
-#
-#ESC g display user status line on 25th line
-#ESC h display system status line on 25th line
-#ESC i tab
-#ESC j reverse linefeed
-#ESC k n duplex/local edit mode:
-# n = 0 duplex edit mode
-# n = 1 local edit mode
-#ESC l n select virtual screen:
-# n = 0 screen 1
-# n = 1 screen 2
-#ESC m save current config to NVRAM
-#ESC n p1 select display screen:
-# p1 = 0 screen 1
-# p1 = 1 screen 2
-# p1 = 2 screen 3
-# p1 = 3 screen 4
-#ESC o p1 p2 set characters/line and attribute:
-# p1 = 0 80 chars/line
-#
-#ESC o p1 p2 set characters/line and attribute:
-# p1 = 0 80 chars/line
-# p1 = 1 132 chars/line
-# p2 = 0 single width single height
-# p2 = 1 single width double height
-# p2 = 2 double width single height
-# p2 = 3 double width double height
-#
-#ESC q insert mode on
-#ESC r edit mode on
-#ESC s send message all
-#ESC t erase line to null
-#ESC u clear monitor mode (see ESC U, ESC X)
-#ESC v autopage mode on
-#ESC w autopage mode off
-#ESC x p1 p2 p3 define delimiter code...
-#ESC y erase page to null
-#
-#ESC z 2 p1 p2 p3 p4 draw quadrangle:
-# p1 = starting row
-# p2 = starting column
-# p3 = end row
-# p4 = end column
-#
-#ESC { p1 p2 p3 p4 configure main port
-# (baud, stop bits, parity, word length)
-#
-#ESC | p1 p2 text Ctrl-Y program function key with 'text':
-# p1 = function key code:
-# '1' - ';' normal f1- f11
-# '<' - 'F' shifted f1 - f11
-# p2 = program mode:
-# 1 = FDX
-# 2 = LOC
-# 3 = HDX
-# Ctrl-Y = terminator
-# (use Ctrl-P to escape ^P, ^Y )
-#
-#ESC } p1 p2 p3 p4 configure printer port
-# (baud, stop bits, parity, word length)
-#ESC ~ send system status
-#
-# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
-#
-# Entry is by esr going solely on above information and is UNTESTED.
-# This actually looks a lot like a Televideo 9xx.
-# This entry uses page 0 and is monochrome; I'm not brave enough to try
-# to make color work without a test terminal. The <am> capability is a guess.
-# The initialization string sets conversation mode, blinking underline cursor,
-# full duplex, parallel attribute mode, display user status line, white
-# foreground, black background, normal highlight.
-#
-icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372,
- OTbs, am, hs,
- cols#80, lines#24,
- bel=^G, blink=\E[2ZZ, cbt=\EI, civis=\E.0, clear=\E*,
- cnorm=\E.3, cr=^M,
- csr=\E!%+%p1%{32}%+%p2%{32} cud1=\026, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{80}%m%{32}%+%c%p2%{80}%>%{32}%+%c,
- cuu1=^K, cvvis=\E.1, dch1=\EW, dl1=\ER, home=^^, ht=^I,
- hts=\E1, il1=\EE, invis=\E[1ZZ,
- is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ,
- rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ,
- rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1,
- sgr=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ,
- sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3,
-icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols,
- rs2=\Eo1, use=icl6404,
-
-#### Interactive Systems Corp
-#
-# ISC used to sell OEMed and customized hardware to support ISC UNIX.
-# ISC UNIX still exists in 1995, but ISC itself is no more; they got
-# bought out by Sun.
-#
-
-# From: <cithep!eric> Wed Sep 16 08:06:44 1981
-# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the
-# ":le=^_:" later overridden -- esr)
-intext|Interactive Systems Corporation modified owl 1200,
- OTbs, am,
- cols#80, it#8, lines#24, xmc#1,
- bel=^G, cbt=^Y, clear=\014$<132>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^^, cup=\017%p1%{32}%+%c%p2%{32}%+%c, cuu1=^\,
- dch1=\022$<5.5*>, dl1=\021$<5.5*>, ed=\026J$<5.5*>,
- el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=^J, ip=$<5.5*>, kbs=^H,
- kcub1=^_, kcud1=^J, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r,
- kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r,
- kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<,
- rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%,
- smso=^V$\,,
-intext2|intextii|INTERACTIVE modified owl 1251,
- am, bw, ul,
- cols#80, lines#24, xmc#0,
- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J, el=\E[K,
- flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
- hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
- kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
- kf0=\E@\r, kf1=\EP\r, kf2=\EQ\r, kf3=\ES\r, kf4=\ET\r,
- kf5=\EU\r, kf6=\EV\r, kf7=\EW\r, kf8=\EX\r, kf9=\EY\r,
- khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO,
- lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT,
- lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D,
- smul=\E[18 D,
-
-#### Kimtron (abm, kt)
-#
-# Kimtron seems to be history, but as March 1998 these people are still
-# offering repair services for Kimtron equipment:
-#
-# Com/Pair Monitor Service
-# 1105 N. Cliff Ave.
-# Sioux Falls, South Dakota 57103
-#
-# WATS voice: 1-800/398-4946
-# POTS fax: +1 605/338-8709
-# POTS voice: +1 605/338-9650
-# Email: <compair@sd.cybernex.net>
-# Internet/Web: <http://www.com-pair.com>
-#
-# Kimtron entries include (undocumented) codes for: enter dim mode,
-# enter bold mode, enter reverse mode, turn off all attributes.
-#
-
-# Kimtron ABM 85 added by Dual Systems
-# (abm85: removed duplicated ":kd=^J:" -- esr)
-abm85|Kimtron ABM 85,
- OTbs, am, bw, msgr,
- cols#80, it#8, lines#24, xmc#1,
- cbt=\EI, clear=\E*, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\Ey, el=\Et, ht=^I,
- if=/usr/share/tabset/stdcrt, il1=\EE,
- is2=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq, kbs=^H, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rmir=\Er, rmso=\Ek,
- rmul=\Em, smir=\EQ, smso=\Ej, smul=\El,
-# Kimtron ABM 85H added by Dual Systems.
-# Some notes about the abm85h entries:
-# 1) there are several firmware revs of 85H in the world. Use abm85h-old for
-# firmware revs prior to SP51
-# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the
-# abm85e entry if it is in tvi920 emulation mode. They are incompatible
-# in some places and NOT software settable i.e., <is2> can't fix it)
-# 3) In 85h mode, the arrow keys and special functions transmit when
-# the terminal is in dup-edit, and work only locally in local-edit.
-# Vi won't swallow `del char' for instance, but <smcup> turns on
-# dup-edit anyway so that the arrow keys will work right. If the
-# arrow keys don't work the way you like, change <smcup>, <rmcup>, and
-# <is2>. Note that 920E mode does not have software commands to toggle
-# between dup and local edit, so you get whatever was set last on the
-# terminal.
-# 4) <flash> attribute is nice, but seems too slow to work correctly
-# (\Eb<pad>\Ed)
-# 5) Make sure `hidden' attributes are selected. If `embedded' attributes
-# are selected, the <xmc@> entry should be removed.
-# 6) auto new-line should be on (selectable from setup mode only)
-#
-# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985
-abm85h|Kimtron ABM 85H native mode,
- hs,
- xmc@,
- bel=^G, cnorm=\E.4, cvvis=\E.2, dim=\E), dsl=\Ee, flash@,
- fsl=^M, invis@,
- is2=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El,
- kcud1=^V, sgr0=\E(\EG0, smir=\EZ, tsl=\Eg\Ef, use=adm+sgr,
- use=abm85,
-abm85e|Kimtron ABM 85H in 920E mode,
- xmc@,
- bel=^G, dim=\E), flash@,
- is2=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em,
- rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
-abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.,
- xmc@,
- bel=^G, dim=\E),
- is2=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF,
- rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
-# From: <malman@bbn-vax.arpa>
-# (kt7: removed obsolete :ma=^V^J^L :" -- esr)
-kt7|kimtron model kt-7,
- OTbs, am,
- cols#80, it#8, lines#24,
- cbt=\EI, clear=^Z, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
- if=/usr/share/tabset/stdcrt, il1=\EE, invis@, is2=\El\E",
- kbs=^H, kcbt=\EI, kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, tsl=\Ef, use=adm+sgr,
-# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the
-# other kt7 entry and the adjacent key capabilities). Removed EE which is
-# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight
-# but we can't figure out what.
-kt7ix|kimtron model kt-7 or 70 in IX mode,
- am, bw,
- cols#80, it#8, lines#25,
- acsc=jYk?lZm@nEqDt4uCvAwBx3, bel=^G, blink=\EG2, cbt=\EI,
- civis=\E.0, clear=\E*, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=^M,
- home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=^J,
- is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER,
- ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ,
- nel=^M^J, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0,
- sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef,
-
-#### Microdata/MDIS
-#
-# This was a line of terminals made by McDonnell-Douglas Information Systems.
-# These entries come direct from MDIS documentation. I have edited them only
-# to move primary names of the form p[0-9] * to aliases, and to comment out
-# <rmacs>/<smacs> in a couple of entries without <acsc> strings. I have
-# also removed the change history; the last version indicates this is
-# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
-#
-
-# McDonnell Information Systems Terminal Family History
-# =========================================
-#
-# Prism-1, Prism-2 and P99:
-# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
-#
-# Prism-4 and Prism-5:
-# Slightly less ancient range of Microdata terminals. Follow-on from
-# Prism-2, but with many enhancements. P5 has eight display pages.
-#
-# Prism-6:
-# A special terminal for use with library systems, primarily in Germany.
-# Limited numbers. Similar functionality to P5 (except attributes?).
-#
-# Prism-7, Prism-8 and Prism-9:
-# More recent range of MDIS terminals, in which P7 and P8
-# replace the P4 & P5, with added functionality, and P9 is the flagship.
-# The P9 has two emulation modes - P8 and ANSI - and includes a
-# large number of the DEC VT220 control sequences. Both
-# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats.
-#
-# Prism-12 and Prism-14:
-# Latest range, functionally very similar to the P9. The P14 has a
-# black-on-white overscanning screen.
-#
-# The terminfo definitions given here are:
-#
-# p2 - Prism-2 (or Prism-1 or P99).
-#
-# p4 - Prism-4 (and older P7s & P8s).
-# p5 - Prism-5 (or Prism-6).
-#
-# p7 - Prism-7.
-# p8 - Prism-8 (in national or multinational mode).
-# p8-w - 132 column version of p8.
-# p9 - Prism-9 in ANSI mode.
-# p9-w - 132 column version of p9.
-# p9-8 - Prism-9 in Prism-8 emulation mode.
-# p9-8-w - As p9-8, but with 132 columns.
-#
-# p12 - Prism-12 in ANSI mode.
-# p12-w - 132 column version of p12.
-# p12-m - Prism-12 in MDC emulation mode.
-# p12-m-w - As p12-m, but with 132 columns.
-# p14 - Prism-14 in ANSI mode.
-# p14-w - 132 column version of p14.
-# p14-m - Prism-14 in MDC emulation mode.
-# p14-m-w - As p14-m, but with 132 columns.
-#
-# p2: Prism-2
-# -----------
-#
-# Includes Prism-1 and basic P99 without SP or MP loaded.
-# The simplest form of Prism-type terminal.
-# Basic cursor movement and clearing operations only.
-# No video attributes.
-# Notes:
-# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
-# value up, followed by backspace.
-#
-prism2|MDC Prism-2,
- am, bw, msgr,
- cols#80, lines#24,
- bel=^G, clear=\014$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
- cuu1=^Z, ed=\EJ, el=\EK, home=^A,
- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
- ind=^J, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c,
-
-# p4: Prism-4
-# -----------
-#
-# Includes early versions of P7 & P8.
-# Basic family definition for most Prisms (except P2 and P9 ANSI).
-# Notes:
-# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
-# value up, followed by backspace.
-# Cursor key definitions removed because they interfere with vi and csh keys.
-#
-prism4|p4|P4|MDC Prism-4,
- am, bw, hs, mc5i, msgr,
- cols#80, lines#24, wsl#72, xmc#1,
- bel=^G, blink=^CB, civis=^]\344, clear=\014$<20>,
- cnorm=^]\342, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
- cuu1=^Z, dim=^CA, dsl=\035\343\035\345, ed=\EJ, el=\EK,
- fsl=^]\345, home=^A,
- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
- ind=^J, invis=^CH, kbs=^H, khome=^A, mc0=\EU, mc4=\ET, mc5=\ER,
- rev=^CD, rmso=^C\s, rmul=^C\s,
- sgr=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;,
- sgr0=^C\s, smso=^CD, smul=^CP, tsl=^]\343,
- vpa=\013%p1%{32}%+%c,
-
-# p5: Prism-5
-# -----------
-#
-# Same definition as p4. Includes Prism-6 (not tested!).
-# Does not use any multi-page features.
-#
-prism5|p5|P5|MDC Prism-5,
- use=p4,
-
-# p7: Prism-7
-# -----------
-#
-# Similar definition to p4. Uses ANSI cursor motion to avoid network problems.
-# Notes:
-# Use p4 for very early models of P7.
-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
-#
-prism7|p7|P7|MDC Prism-7,
- cup=\E[%i%p1%d;%p2%dH, hpa@, vpa@, use=p4,
-
-# p8: Prism-8
-# -----------
-#
-# Similar definition to p7. Uses ANSI cursor motion to avoid network problems.
-# Supports national and multinational character sets.
-# Notes:
-# Alternate char set operations only work in multinational mode.
-# Use p4 for very early models of P8.
-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
-#
-prism8|p8|P8|MDC Prism-8,
- cup=\E[%i%p1%d;%p2%dH, hpa=\E[%i%p1%d`, is2=\E[<12h,
- vpa=\E[%i%p1%dd, use=p4,
-
-# p8-w: Prism-8 in 132 column mode
-# --------------------------------
-#
-# 'Wide' version of p8.
-# Notes:
-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
-#
-prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode,
- cols#132,
- is2=\E[<12h\E[<14h, use=p8,
-
-# p9: Prism-9 in ANSI mode
-# -------------------------
-#
-# The "flagship" model of this generation of terminals.
-# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones.
-# Notes:
-# Tabs only reset by "reset". Otherwise assumes default (8 cols).
-# Fixes to deal with terminal firmware bugs:
-# . 'ri' uses insert-line since rev index doesn't always
-# . 'sgr0' has extra '0' since esc[m fails
-# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25
-# Not covered in the current definition:
-# . Labels
-# . Programming Fn keys
-# . Graphic characters (defaults correctly to vt100)
-# . Padding values (sets xon)
-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
-#
-prism9|p9|P9|MDC Prism-9 in ANSII mode,
- am, bw, hs, mc5i, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#72,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
- clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, dsl=\E[%}\024, ech=\E[%p1%dX,
- ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`,
- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=^M^J,
- prot=\E[32%{, rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m,
- ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
- sc=\E[%y,
- sgr=\E[%{0}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{2}%+%;%?%p4%t%{1}%+%;%?%p6%t%{8}%+%;%?%p8%t%{32}%+%;%d%%{%?%p9%t\016%e\017%;,
- sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
- tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
-
-# p9-w: Prism-9 in 132 column mode
-# --------------------------------
-#
-# 'Wide' version of p9.
-#
-prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode,
- cols#132,
- is2=\E[&p\E[<12l\E F\E[<14h,
- rs2=\E[&p\E[<12l\E F\E[<14h, use=p9,
-
-# p9-8: Prism-9 in P8 mode
-# ------------------------
-#
-# P9 terminal in P8 emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8,
-
-# p9-8-w: Prism-9 in P8 and 132 column modes
-# ------------------------------------------
-#
-# P9 terminal in P8 emulation mode and 132 column mode.
-#
-prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w,
-
-# p12: Prism-12 in ANSI mode
-# ---------------------------
-#
-# See p9 definition.
-#
-prism12|p12|P12|MDC Prism-12 in ANSI mode,
- use=p9,
-
-# p12-w: Prism-12 in 132 column mode
-# ----------------------------------
-#
-# 'Wide' version of p12.
-#
-prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode,
- use=p9-w,
-
-# p12-m: Prism-12 in MDC emulation mode
-# -------------------------------------
-#
-# P12 terminal in MDC emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode,
- use=p9-8,
-
-# p12-m-w: Prism-12 in MDC emulation and 132 column modes
-# -------------------------------------------------------
-#
-# P12 terminal in MDC emulation mode and 132 column mode.
-#
-prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode,
- use=p9-8-w,
-
-# p14: Prism-14 in ANSII mode
-# ---------------------------
-#
-# See p9 definition.
-#
-prism14|p14|P14|MDC Prism-14 in ANSII mode,
- use=p9,
-
-# p14-w: Prism-14 in 132 column mode
-# ----------------------------------
-#
-# 'Wide' version of p14.
-#
-prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode,
- use=p9-w,
-
-# p14-m: Prism-14 in MDC emulation mode
-# -------------------------------------
-#
-# P14 terminal in MDC emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode,
- use=p9-8,
-
-# p14-m-w: Prism-14 in MDC emulation and 132 column modes
-# -------------------------------------------------------
-#
-# P14 terminal in MDC emulation mode and 132 column mode.
-#
-prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode,
- use=p9-8-w,
-
-# End of McDonnell Information Systems Prism definitions
-
-# These things were popular in the Pick database community at one time
-# From: George Land <georgeland@aol.com> 24 Sep 1996
-p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition,
- am, bw, hs, mir,
- cols#80, lines#24, ma#1, wsl#78, xmc#1,
- bel=^G, blink=^CB, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F,
- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, dch1=\s^H, dim=^CA, dl1=^P,
- ed=\EJ, el=\EK, home=^A, ind=^J, invis=^CH, kbs=^H, kcub1=^U,
- kcud1=^J, kcuf1=^F, kcuu1=^Z, kdch1=\s^H, kdl1=^P, ked=\EJ,
- kel=\EK, kf1=^A@\r, kf10=^AI\r, kf12=^AJ\r, kf13=^AK\r,
- kf14=^AL\r, kf15=^AM\r, kf16=^AN\r, kf17=^AO\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^A, lf1=F1, lf10=F10, lf2=F2,
- lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=^J^M,
- pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE,
- smul=^C0,
-
-#### Microterm (act, mime)
-#
-# The mime1 entries refer to the Microterm Mime I or Mime II.
-# The default mime is assumed to be in enhanced act iv mode.
-#
-
-# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents
-# freakout with out-of-range args on Sytek multiplexors. No <smso=^N> and
-# <rmso=^N> since it gets confused and it's too dim anyway. No <ich1>
-# since Sytek insists ^S means xoff.
-# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr)
-act4|microterm|microterm act iv,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X,
- cup=\024%p1%{24}%+%c%p2%p2%?%{47}%>%t%{48}%+%;%{80}%+%c,
- cuu1=^Z, dch1=\004$<.1*/>, dl1=\027$<2.3*/>,
- ed=\037$<2.2*/>, el=\036$<.1*/>, home=^],
- il1=\001<2.3*/>, ind=^J, kcub1=^H, kcud1=^K, kcuf1=^X,
- kcuu1=^Z,
-# The padding on :sr: and :ta: for act5 and mime is a guess and not final.
-# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
-# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
-act5|microterm5|microterm act v,
- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA,
- use=act4,
-# Mimes using brightness for standout. Half bright is really dim unless
-# you turn up the brightness so far that lines show up on the screen.
-mime-fb|full bright mime1,
- is2=^S\E, rmso=^S, smso=^Y, use=mime,
-mime-hb|half bright mime1,
- is2=^Y\E, rmso=^Y, smso=^S, use=mime,
-# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode
-# the more plausible ":do=^J:" -- esr)
-# uc was at one time disabled to get around a curses bug, be wary of it
-mime|mime1|mime2|mimei|mimeii|microterm mime1,
- OTbs, am,
- cols#80, it#8, lines#24, vt#9,
- bel=^G, clear=^]^C, cr=^M, cub1=^H, cud1=^J, cuf1=^X,
- cup=\024%p1%{24}%+%c%p2%p2%?%{32}%>%t%{48}%+%;%{80}%+%c,
- cuu1=^Z, dl1=\027$<80>, ed=^_, el=^^, home=^], ht=\011$<2>,
- il1=\001$<80>, ind=^J, is2=^S\E^Q, kcub1=^H, kcud1=^K,
- kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U,
-# These termcaps (for mime2a) put the terminal in low intensity mode
-# since high intensity mode is so obnoxious.
-mime2a-s|microterm mime2a (emulating an enhanced soroc iq120),
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EI, dch1=\ED,
- dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^,
- il1=\001$<20*>, ind=^J, ip=$<2>, is2=\E), kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7,
- smir=\EE, smso=\E\:, smul=\E6,
-# This is the preferred mode (but ^X can't be used as a kill character)
-mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52),
- OTbs,
- cols#80, it#8, lines#24,
- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N,
- dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I,
- il1=\001$<20*>, ind=^J, ip=$<2>, is2=^Y, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9,
- rmul=\E5, smir=^O, smso=\E8, smul=\E4,
-# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
-mime3a|mime1 emulating 3a,
- am@,
- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a,
-mime3ax|mime-3ax|mime1 emulating enhanced 3a,
- it#8,
- dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>,
- use=mime3a,
-# Wed Mar 9 18:53:21 1983
-# We run our terminals at 2400 baud, so there might be some timing problems at
-# higher speeds. The major improvements in this model are the terminal now
-# scrolls down and insert mode works without redrawing the rest of the line
-# to the right of the cursor. This is done with a bit of a kludge using the
-# exit graphics mode to get out of insert, but it does not appear to hurt
-# anything when using vi at least. If you have some users using act4s with
-# programs that use curses and graphics mode this could be a problem.
-mime314|mm314|mime 314,
- am,
- cols#80, lines#24,
- clear=^L, cub1=^H, cuf1=^X, cup=\024%p1%c%p2%c, cuu1=^Z,
- dch1=^D, dl1=^W, ed=^_, el=^^, home=^], ht=^I, il1=^A, kcub1=^H,
- kcud1=^K, kcuf1=^X, kcuu1=^Z, rmir=^V, smir=^S,
-# Microterm mime 340 from University of Wisconsin
-mm340|mime340|mime 340,
- cols#80, lines#24,
- clear=\032$<12/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\E#$<2.1*/>, dl1=\EV$<49.6/>, ed=\037$<2*/>,
- el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=^J, is2=\E\,,
- kbs=^H, kcub1=^H, kcud1=^J, kcuu1=^K, nel=^M^J,
-# This came from University of Wisconsin marked "astro termcap for jooss".
-# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:";
-# also added <rmam>/<smam> based on the init string -- esr)
-mt4520-rv|micro-term 4520 reverse video,
- am, hs, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
- fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
- ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/share/tabset/vt100,
- ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m,
- rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J,
- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
- tbc=\E[g, tsl=\E[25;1H,
-
-# Fri Aug 5 08:11:57 1983
-# This entry works for the ergo 4000 with the following setups:
-# ansi,wraparound,newline disabled, xon/xoff disabled in both
-# setup a & c.
-#
-# WARNING!!! There are multiple versions of ERGO 4000 microcode
-# Be advised that very early versions DO NOT WORK RIGHT !!
-# Microterm does have a ROM exchange program- use it or lose big
-# (ergo400: added <rmam>/<smam> based on the init string -- esr)
-ergo4000|microterm ergo 4000,
- da, db, msgr,
- cols#80, lines#66,
- bel=^G, clear=\E[H\E[2J$<80>, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>,
- el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>,
- is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3,
- lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>,
- smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>,
- smso=\E[7m$<20>,
-
-#### NCR
-#
-# NCR's terminal group was merged with AT&T's when AT&T bought the company.
-# For what happened to that group, see the ADDS section.
-#
-# There is an NCR4103 terminal that's just a re-badged Wyse-50.
-#
-
-# The following vendor-supplied termcaps were captured from the Boundless
-# Technologies site, 8 March 1998. I removed all-upper-case names that were
-# identical, except for case, to lower-case ones. I also uncommented the acsc
-# capabilities.X
-#
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
- colors#8, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300an,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
- colors#8, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300wan,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard,
- colors#8, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300pp,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a
-# DEC vt200/300 with color capabilities added.
-ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode,
- colors#8, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300wpp,
-# This definition for ViewPoint supports several attributes. This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies. The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-ncr260vppp|NCR 2900_260 viewpoint,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, lines#24, nlab#32, xmc#1,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5,
- cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
- cvvis=\E`5, dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c,
- ed=\Ek$<2>, el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I,
- hts=\E1, il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
- is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
- kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F,
- kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r,
- kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r,
- kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r,
- kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r,
- kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r,
- kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r,
- kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
- kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ,
- kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
- nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
- smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF,
-ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- use=ncr260vppp,
-ncr260vt100an|NCR 2900_260 vt100 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>,
- fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>,
- il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>,
- invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>, rc=\E8,
- rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt100an,
-ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- smkx=\E=, use=ncr260vt100an,
-ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt100pp,
-ncr260vt200an|NCR 2900_260 vt200 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf21=\E[31~,
- kf22=\E[32~, kf23=\E[33~, kf24=\E[34~, kf25=\E[35~,
- kf26=\E[1~, kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR,
- kf30=\E[5~, kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
- kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
- use=ncr260vt200an,
-ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd,
- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
- use=ncr260vt200an,
-ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt200pp,
-ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf21=\E[31~,
- kf22=\E[32~, kf23=\E[33~, kf24=\E[34~, kf25=\E[35~,
- kf26=\E[1~, kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR,
- kf30=\E[5~, kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
- kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
- use=ncr260vt300an,
-ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd,
- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
- use=ncr260vt300an,
-NCR260VT300WPP|NCR 2900_260 vt300 wide mode pc+ kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt300pp,
-# This terminfo file contains color capabilities for the Wyse325 emulation of
-# the NCR 2900/260C color terminal. Because of the structure of the command
-# (escape sequence) used to set color attributes, one of the fore/background
-# colors must be preset to a given value. I have set the background color to
-# black. The user can change this setup by altering the last section of the
-# 'setf' definition. The escape sequence to set color attributes is
-# ESC d y <foreground_color> <background_color> 1
-# In addition, the background color can be changed through the desk accessories.
-# The capablitiy 'op' sets colors to green on black (default combination).
-#
-# NOTE: The NCR Unix System Administrator's Shell will not function properly
-# if the 'pairs' capability is defined. Un-Comment the 'pairs'
-# capability and recompile if you wish to have it included.
-#
-ncr260wy325pp|NCR 2900_260 wyse 325,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- colors#16, cols#80, lines#24, ncv#33, nlab#32,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=^M,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<5>, ht=^I,
- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET,
- kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r,
- kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r,
- kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r,
- kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r,
- kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r,
- kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ,
- kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- setb=\s,
- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{64}%e%p1%{8}%=%t%{57}%e%p1%{9}%=%t%{58}%e%p1%{10}%=%t%{59}%e%p1%{11}%=%t%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>,
- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
- tsl=\EF,
-ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- use=ncr260wy325pp,
-# This definition for Wyse 350 supports several attributes. This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies. The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-# In addition, color capabilities have been added to this file. The drawback,
-# however, is that the background color has to be black. The foreground colors
-# are numbered 0 through 15.
-#
-# NOTE: The NCR Unix System Administrator's Shell does not function properly
-# with the 'pairs' capability defined as below. If you wish to
-# have it included, Un-comment it and recompile (using 'tic').
-#
-ncr260wy350pp|NCR 2900_260 wyse 350,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- colors#16, cols#80, lines#24, ncv#33, nlab#32, xmc#1,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I,
- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
- mc0=\EP$<10>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- setb=\s,
- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>,
- sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
- tsl=\EF,
-ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- use=ncr260wy350pp,
-# This definition for Wyse 50+ supports several attributes. This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies. The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-# (ncr260wy50+pp: originally contained commented-out
-# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
-ncr260wy50+pp|NCR 2900_260 wyse 50+,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, lines#24, nlab#32, xmc#1,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
- cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
- ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>,
- ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
- invis=\EG1,
- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
- mc0=\EP$<10>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
- smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF,
-ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- use=ncr260wy50+pp,
-ncr260wy60pp|NCR 2900_260 wyse 60,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, lines#24, nlab#32,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1,
- cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>,
- ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>,
- invis=\EG1,
- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK,
- kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r,
- kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r,
- kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r,
- kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
- tsl=\EF,
-ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- use=ncr260wy60pp,
-ncr160vppp|NCR 2900_160 viewpoint,
- use=ncr260vppp,
-ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
- use=ncr260vpwpp,
-ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
- use=ncr260vt100an,
-ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
- use=ncr260vt100pp,
-ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
- use=ncr260vt100wan,
-ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd,
- use=ncr260vt100wpp,
-ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
- use=ncr260vt200an,
-ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
- use=ncr260vt200pp,
-ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
- use=ncr260vt200wan,
-ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd,
- use=ncr260vt200wpp,
-ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
- use=ncr260vt300an,
-ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
- use=ncr260vt300pp,
-ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
- use=ncr260vt300wan,
-ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd,
- use=ncr260vt300wpp,
-ncr160wy50+pp|NCR 2900_160 wyse 50+,
- use=ncr260wy50+pp,
-ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
- use=ncr260wy50+wpp,
-ncr160wy60pp|NCR 2900_160 wyse 60,
- use=ncr260wy60pp,
-ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
- use=ncr260wy60wpp,
-ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
- am, hs, mc5i, mir, msgr, xon,
- cols#80, it#8, lines#24, nlab#32,
- acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
- bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
- clear=\E[2J\E[1;1H$<300>, cr=^M,
- csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>,
- cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>,
- cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>,
- cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>,
- dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>,
- ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>,
- enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>,
- ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>,
- ind=\ED,
- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>,
- kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE,
- rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
- rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>,
- rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>,
- sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
- smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
- tsl=\E[>+1$<70>,
-ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
- cols#132,
- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>,
- rs2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
- use=ncrvt100an,
-#
-# Vendor-supplied NCR termcaps end here
-
-# NCR7900 DIP switches:
-#
-# Switch A:
-# 1-4 - Baud Rate
-# 5 - Parity (Odd/Even)
-# 6 - Don't Send or Do Send Spaces
-# 7 - Parity Enable
-# 8 - Stop Bits (One/Two)
-#
-# Switch B:
-# 1 - Upper/Lower Shift
-# 2 - Typewriter Shift
-# 3 - Half Duplex / Full Duplex
-# 4 - Light/Dark Background
-# 5-6 - Carriage Return Without / With Line Feed
-# 7 - Extended Mode
-# 8 - Suppress Keyboard Display
-#
-# Switch C:
-# 1 - End of line entry disabled/enabled
-# 2 - Conversational mode / (Local?) Mode
-# 3 - Control characters displayed / not displayed
-# 4 - (2-wire?) / 4-wire communications
-# 5 - RTS on and off for each character
-# 6 - (50Hz?) / 60 Hz
-# 7 - Exit after level zero diagnostics
-# 8 - RS-232 interface
-#
-# Switch D:
-# 1 - Reverse Channel (yes / no)
-# 2 - Manual answer (no / yes)
-# 3-4 - Cursor appearance
-# 5 - Communication Rate
-# 6 - Enable / Disable EXT turnoff
-# 7 - Enable / Disable CR turnoff
-# 8 - Enable / Disable backspace
-#
-# Since each attribute parameter is 0 or 1, we shift each attribute (standout,
-# reverse, blink, dim, and underline) the appropriate number of bits (by
-# multiplying the 0 or 1 by a correct factor to shift) so the bias character,
-# '@' is (effectively) "or"ed with each attribute to generate the proper third
-# character in the <ESC>0 sequence. The <sgr> string implements the following
-# equation:
-#
-# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) =>
-# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17))
-#
-# Where: P1 <==> Standout attribute parameter
-# P2 <==> Underline attribute parameter
-# P3 <==> Reverse attribute parameter
-# P4 <==> Blink attribute parameter
-# P5 <==> Dim attribute parameter
-# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
-ncr7900i|ncr7900|ncr 7900 model 1,
- am, bw, ul,
- cols#80, lines#24, xmc#1,
- bel=^G, blink=\E0B, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=^J,
- is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=^J, kcuf1=^F,
- kcuu1=^Z, khome=^A, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=\E0@,
- rmul=\E0@,
- sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c,
- sgr0=\E0@, smso=\E0Q, smul=\E0`,
-ncr7900iv|ncr 7900 model 4,
- am, bw, eslok, hs,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
- cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1,
- fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=^J, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET,
- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
- khome=\EH, lf6=blue, lf7=red, lf8=white, nel=^M^J,
- tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo,
-# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
-# The user can enter a CTRL-B to get out of this locked state.
-# In <hpa>, we want to output the character given by the formula:
-# ((col / 10) * 16) + (col % 10) where "col" is "p1"
-ncr7901|ncr 7901 model,
- am, bw, ul,
- cols#80, lines#24,
- bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=^M,
- cub1=^H, cud1=^J, cuf1=^F,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dim=\E0A,
- ed=\Ek, el=\EK,
- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=^J,
- is2=\E4^O, kclr=^L, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
- khome=^H, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=^O, rmul=^O,
- sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016,
- sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
- vpa=\013%p1%{64}%+%c,
-
-#### Perkin-Elmer (Owl)
-#
-# These are official terminfo entries from within Perkin-Elmer.
-#
-
-bantam|pe550|pe6100|perkin elmer 550,
- OTbs,
- cols#80, lines#24,
- bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- el=\EI$<20>, home=\EH, ind=^J, ll=\EH\EA,
-fox|pe1100|perkin elmer 1100,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
- cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003,
- home=\EH, hts=\E1, ind=^J, ll=\EH\EA, tbc=\E3,
-owl|pe1200|perkin elmer 1200,
- OTbs, am, in,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
- cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
- el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
- hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
- kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
- kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
- rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3,
-pe1251|pe6300|pe6312|perkin elmer 1251,
- am,
- cols#80, it#8, lines#24, pb#300, vt#8, xmc#1,
- bel=^G, clear=\EK$<332>, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=^J,
- kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE,
- kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3,
-# (pe7000m: this had
-# rmul=\E!\0, smul=\E!\040,
-# which is probably wrong, it collides with kf0
-pe7000m|perkin elmer 7000 series monochrome monitor,
- am,
- cols#80, lines#24,
- bel=^G, cbt=\E!Y, clear=\EK, cr=^M, cub1=\ED, cud1=\EB,
- cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- ed=\EJ, el=\EI, home=\EH, ind=^J,
- is1=\E!\0\EW 7o\Egf\ES7\s, kbs=^H, kcub1=\E!V,
- kcud1=\E!U, kcuf1=\E!W, kcuu1=\E!T, kf0=\E!\0, kf1=\E!^A,
- kf10=\E!^J, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E,
- kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S,
- ll=\ES7\s, ri=\ER,
-pe7000c|perkin elmer 7000 series colour monitor,
- is1=\E!\0\EW 7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0,
- rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m,
-
-#### Sperry Univac
-#
-# Sperry Univac has merged with Burroughs to form Unisys.
-#
-
-# This entry is for the Sperry UTS30 terminal running the TTY
-# utility under control of CP/M Plus 1R1. The functionality
-# provided is comparable to the DEC vt100.
-# (uts30: I added <rmam>/<smam> based on the init string -- esr)
-uts30|sperry uts30 with cp/m@1R1,
- am, bw, hs,
- cols#80, lines#24, wsl#40,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
- cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
- cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
- dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H,
- ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
- ind=^J, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H,
- rc=\EX, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EI,
- rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m,
- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m,
- smul=\E[4m, tsl=\E], uc=\EPB,
-
-#### Tandem
-#
-# Tandem builds these things for use with its line of fault-tolerant
-# transaction-processing computers. They aren't generally available
-# on the merchant market, and so are fairly uncommon.
-#
-
-tandem6510|adm3a repackaged by Tandem,
- use=adm3a,
-
-# A funny series of terminal that TANDEM uses. The actual model numbers
-# have a fourth digit after 653 that designates minor variants. These are
-# natively block-mode and rather ugly, but they have a character mode which
-# this doubtless(?) exploits. There is a 6520 that is slightly dumber.
-# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also,
-# removed <if=/usr/share/tabset/tandem653>, no such file -- esr)
-tandem653|t653x|Tandem 653x multipage terminal,
- OTbs, am, da, db, hs,
- cols#80, lines#24, wsl#64, xmc#1,
- clear=\EI, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\023%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dsl=\Eo\r,
- ed=\EJ, el=\EK, fsl=^M, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s,
- rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo,
-
-#### Tandy/Radio Shack
-#
-# Tandy has a line of VDTs distinct from its microcomputers.
-#
-
-dmterm|deskmate terminal,
- am, bw,
- cols#80, lines#24,
- bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I,
- ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4,
- kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0,
- khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6,
- lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@,
- use=adm+sgr,
-dt100|dt-100|Tandy DT-100 terminal,
- xon,
- cols#80, lines#24, xmc#1,
- acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
- il1=\E[L, ind=^J, is2=\E[?3l\E)0\E(B, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i,
- kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~,
- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H,
- knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5,
- lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
-dt100w|dt-100w|Tandy DT-100 terminal (wide mode),
- cols#132, use=dt100,
-dt110|Tandy DT-110 emulating ansi,
- xon,
- cols#80, lines#24,
- acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[0B, cuf1=\E[C,
- cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[0A, dch1=\E[0P,
- dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H,
- ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
- kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~,
- kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~,
- khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1,
- lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9,
- lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smacs=^N, smso=\E[7m, smul=\E[4m,
-pt210|TRS-80 PT-210 printing terminal,
- hc, os,
- cols#80,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-
-#### Tektronix (tek)
-#
-# Tektronix tubes are graphics terminals. Most of them use modified
-# oscilloscope technology incorporating a long-persistence green phosphor,
-# and support vector graphics on a main screen with an attached "dialogue
-# area" for interactive text.
-#
-
-tek|tek4012|tektronix 4012,
- OTbs, os,
- cols#75, lines#35,
- bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J,
- ff=\014$<1000>, is2=\E^O,
-# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4013|tektronix 4013,
- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012,
-tek4014|tektronix 4014,
- cols#81, lines#38,
- is2=\E\017\E9, use=tek4012,
-# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4015|tektronix 4015,
- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014,
-tek4014-sm|tektronix 4014 in small font,
- cols#121, lines#58,
- is2=\E\017\E\:, use=tek4014,
-# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4015-sm|tektronix 4015 in small font,
- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm,
-# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
-#
-# You need to have "stty nl2" in effect. Some versions of tset(1) know
-# how to set it for you.
-#
-# It's got the Magic Cookie problem around stand-out mode. If you can't
-# live with Magic Cookie, remove the :so: and :se: fields and do without
-# reverse video. If you like reverse video stand-out mode but don't want
-# it to flash, change the letter 'H' to 'P' in the :so: field.
-tek4023|tektronix 4023,
- OTbs, am,
- OTdN#4, cols#80, lines#24, vt#4, xmc#1,
- OTnl=^J, bel=^G, clear=\E\014$<4/>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^I, cup=\034%p2%{32}%+%c%p1%{32}%+%c, kbs=^H,
- rmso=^_@, smso=^_P,
-# It is recommended that you run the 4025 at 4800 baud or less;
-# various bugs in the terminal appear at 9600. It wedges at the
-# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
-# on keyboard don't work. You have to hit BREAK twice to get
-# one break at any speed - this is a documented feature.
-# Can't use cursor motion because it's memory relative, and
-# because it only works in the workspace, not the monitor.
-# Same for home. Likewise, standout only works in the workspace.
-#
-# <el> was commented out since vi and rogue seem to work better
-# simulating it with lots of spaces!
-#
-# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U
-# and didn't seem necessary.
-#
-tek4024|tek4025|tek4027|tektronix 4024/4025/4027,
- OTbs, am, da, db,
- cols#80, it#8, lines#34, lm#0,
- bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=^M,
- cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r,
- cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r,
- cuu=\037up %p1%d\r, cuu1=^K, dch1=\037dch\r,
- dl=\037dli %p1%d\r\006, dl1=\037dli\r\006,
- ed=\037dli 50\r, ht=^I, ich1=\037ich\r \010,
- il=\037up\r\037ili %p1%d\r, il1=\037up\r\037ili\r,
- ind=^F^J,
- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
- rmkx=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r,
- smkx=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r,
-tek4025-17|tek 4025 17 line window,
- lines#17, use=tek4025,
-tek4025-17-ws|tek 4025 17 line window in workspace,
- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r,
- rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r,
- smso=\037att e\r, use=tek4025-17,
-tek4025-ex|tek4027-ex|tek 4025/4027 w/!,
- is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r,
- rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
-# Tektronix 4025a
-# From: Doug Gwyn <gwyn@brl-smoke.ARPA>
-# The following status modes are assumed for normal operation (replace the
-# initial "!" by whatever the current command character is):
-# !COM 29 # NOTE: changes command character to GS (^])
-# ^]DUP
-# ^]ECH R
-# ^]EOL
-# ^]RSS T
-# ^]SNO N
-# ^]STO 9 17 25 33 41 49 57 65 73
-# Other modes may be set according to communication requirements.
-# If the command character is inadvertently changed, termcap can't restore it.
-# Insert-character cannot be made to work on both top and bottom rows.
-# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas.
-# There also seems to be a problem with vertical motion, perhaps involving
-# delete/insert-line, following a typed carriage return. This terminal sucks.
-# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't
-# work any more. -- esr)
-tek4025a|Tektronix 4025A,
- OTbs, OTpt, am, bw, da, db, xon,
- cols#80, it#8, lines#34,
- bel=^G, cbt=\035bac;, clear=\035era;\n\035rup;, cmdch=^],
- cr=^M, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;,
- cud1=^J, cuf=\035rig %p1%d;, cuf1=\035rig;,
- cuu=\035up %p1%d;, cuu1=^K, dch=\035dch %p1%d;,
- dch1=\035dch;, dl=\035dli %p1%d;, dl1=\035dli;,
- el=\035dch 80;, hpa=\r\035rig %p1%d;, ht=^I,
- il1=\013\035ili;, ind=^J, indn=\035dow %p1%d;,
- rs2=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;,
- tbc=\035sto;,
-# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981
-# Here's the command file that I use to get rogue to work on the 4025.
-# It should work with any program using the old curses (e.g. it better
-# not try to scroll, or cursor addressing won't work. Also, you can't
-# see the cursor.)
-# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
-tek4025-cr|tek 4025 for curses and rogue,
- OTbs, am,
- cols#80, it#8, lines#33,
- clear=\037era;, cub1=^H, cud1=^F^J, cuf1=\037rig;,
- cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F^J,
- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
- rmcup=\037wor 0, smcup=\037wor 33h,
-# next two lines commented out since curses only allows 128 chars, sigh.
-# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\
-# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0:
-tek4025ex|4025ex|4027ex|tek 4025 w/!,
- is2=\037com 33\r\n!sto 9\,17\,25\,33\,41\,49\,57\,65\,73\r,
- rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
-tek4105|tektronix 4105,
- OTbs, am, mir, msgr, ul, xenl, xt,
- cols#79, it#8, lines#29,
- acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
- clear=\E[2J\E[H, cr=^M, cud1=\E[1B, cuf1=\E[1C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P,
- dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m,
- is2=\E%!1\E[?6141\E[m, kbs=^H, kcub1=\E[1D, kcud1=\E[1B,
- kcuf1=\E[1C, kcuu1=\E[1A, rev=\E[=1;<3m, ri=\E[T,
- rmacs=\E[m, rmcup=, rmir=\E[4l, rmso=\E[=0;<1m,
- rmul=\E[=0;<1m, sgr0=\E[=0;<1m, smacs=\E[1m,
- smcup=\E%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
- smul=\E[=5;<2m, tbc=\E[1g,
-
-# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
-tek4105-30|4015 emulating 30 line vt100,
- am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#30, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, ka1=\EOq,
- ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy,
- kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
- kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, 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%;,
- 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,
-
-# Tektronix 4105 from BRL
-# The following setup modes are assumed for normal operation:
-# CODE ansi CRLF no DABUFFER 141
-# DAENABLE yes DALINES 30 DAMODE replace
-# DAVISIBILITY yes ECHO no EDITMARGINS 1 30
-# FLAGGING input INSERTREPLACE replace LFCR no
-# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B
-# SELECTCHARSET G1 0 TABS -2
-# Other setup modes may be set for operator convenience or communication
-# requirements; I recommend
-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1
-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
-# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132
-# XMTDELAY 0
-# and factory color maps. After setting these modes, save them with NVSAVE. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# "IC" cannot be used in combination with "im" & "ei".
-# "tek4105a" is just a guess:
-tek4105a|Tektronix 4105,
- OTbs, OTpt, msgr, xon,
- OTkn#8, cols#80, it#8, lines#30, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
- cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
- lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-#
-# Tektronix 4106/4107/4109 from BRL
-# The following setup modes are assumed for normal operation:
-# CODE ansi COLUMNMODE 80 CRLF no
-# DABUFFER 141 DAENABLE yes DALINES 32
-# DAMODE replace DAVISIBILITY yes ECHO no
-# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace
-# LFCR no LOCKKEYBOARD no ORIGINMODE relative
-# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0
-# TABS -2
-# Other setup modes may be set for operator convenience or communication
-# requirements; I recommend
-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3
-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
-# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132
-# XMTDELAY 0
-# and factory color maps. After setting these modes, save them with NVSAVE. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# "IC" cannot be used in combination with "im" & "ei".
-tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
- msgr, xon,
- cols#80, it#8, lines#32, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
- cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
- lf5=F6, lf6=F8, ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
-
-tek4107|tek4109|tektronix terminals 4107 4109,
- OTbs, am, mir, msgr, ul, xenl, xt,
- cols#79, it#8, lines#29,
- bel=^G, blink=\E%!1\E[5m$<2>\E%!0,
- bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=^M,
- cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
- dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- rev=\E%!1\E[7m$<2>\E%0, ri=\EI,
- rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
- sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m\E%%!0,
- sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
- smul=\E%!1\E[4m$<2>\E%!0,
-# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s;
-# see the note attached to tek4207.
-tek4207-s|Tektronix 4207 with sysline but no memory,
- eslok, hs,
- dsl=\E7\E[?6l\E[2K\E[?6h\E8, fsl=\E[?6h\E8,
- is1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
- is2=\E7\E[?6l\E[2K\E[?6h\E8,
- tsl=\E7\E[?6l\E[2K\E[;%i%df, use=tek4107,
-
-# The 4110 series may be a wonderful graphics series, but they make the 4025
-# look good for screen editing. In the dialog area, you can't move the cursor
-# off the bottom line. Out of the dialog area, ^K moves it up, but there
-# is no way to scroll.
-#
-# Note that there is a floppy for free from Tek that makes the
-# 4112 emulate the vt52 (use the vt52 termcap). There is also
-# an expected enhancement that will use ANSI standard sequences.
-#
-# 4112 in non-dialog area pretending to scroll. It really wraps
-# but vi is said to work (more or less) in this mode.
-#
-# 'vi' works reasonably well with this entry.
-#
-otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
- am,
- cols#80, lines#34,
- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J,
- rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0,
-# The 4112 with the ANSI compatibility enhancement
-tek4112|tek4114|tektronix 4110 series,
- OTbs, am, db,
- cols#80, lines#34,
- cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P, dl1=\E[M,
- ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
- ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-tek4112-nd|4112 not in dialog area,
- OTns,
- cuu1=^K, use=tek4112,
-tek4112-5|4112 in 5 line dialog area,
- lines#5, use=tek4112,
-# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake;
-# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3.
-# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were
-# previously \0410 and \0411 sequences...I don't *think* they were supposed
-# to be 4-digit octal -- esr)
-tek4113|tektronix 4113 color graphics with 5 line dialog area,
- OTbs, am, da, eo,
- cols#80, lines#5,
- clear=\ELZ, cub1=^H, cud1=^J, cuf1=\ELM1 \ELM0,
- flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
- is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0,
-tek4113-34|tektronix 4113 color graphics with 34 line dialog area,
- lines#34,
- is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113,
-# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
-# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
-# :vb: needs enough delay to let you see the background color being toggled.
-tek4113-nd|tektronix 4113 color graphics with no dialog area,
- OTbs, am, eo,
- cols#80, it#8, lines#34,
- clear=\E^L, cub1=^H, cud1=^J, cuf1=^I, cuu1=^K,
- cvvis=\ELZ\EKA0,
- flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
- home=\ELF7l\177 @, ht=^I, is2=\ELZ\EKA0\ELF7l\177 @,
- ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0,
-# This entry is from Tek. Inc. (Brian Biehl)
-# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
-otek4115|Tektronix 4115,
- OTbs, am, da, db, eo,
- cols#80, it#8, lines#34,
- cbt=\E[Z, clear=\E[H\E[2J,
- cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, if=/usr/share/tabset/vt100,
- il1=\E[L,
- is2=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m,
- kbs=^H, ri=\EM, rmam=\E[?7l,
- rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l,
- rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
- smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m,
- smul=\E[4m,
-tek4115|newer tektronix 4115 entry with more ANSI capabilities,
- am, xon,
- cols#80, lines#34,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
- rmso=\E[m, rmul=\E[m,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
- vpa=\E[%p1%{1}%+%dd,
-# The tek4125 emulates a vt100 incorrectly - the scrolling region
-# command is ignored. The following entry replaces <csr> with the needed
-# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125
-# chokes on; and adds a lot of initialization for the tek dialog area.
-# Note that this entry uses all 34 lines and sets the cursor color to green.
-# Steve Jacobson 8/85
-# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
-# commented out, <smir>=\E1 because there's no <rmir> -- esr)
-tek4125|tektronix 4125,
- lines#34,
- csr@, dl1=\E[1M, il1=\E[1L,
- is2=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rc@, sc@, smkx=\E=, use=vt100,
-
-# From: <jcoker@ucbic>
-# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
-# supplied another, less capable 4107 entry. So we'll use that for 4107 and
-# note that if jcoker wasn't confused you may be able to use this one.
-# I merged in <msgr>,<ind>,<ri>,<invis>,<tbc> from a BRL entry -- esr)
-tek4207|Tektronix 4207 graphics terminal with memory,
- am, bw, mir, msgr, ul, xenl,
- cols#80, it#8, lines#32,
- blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J$<156/>,
- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\EM, dch1=\E[P$<4/>, dl1=\E[M$<3/>, ed=\E[J,
- el=\E[K$<5/>, home=\E[H, ht=^I, ich1=\E[@$<4/>,
- il1=\E[L$<3/>, ind=\E[S, invis=\E[=6;<5,
- is2=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
- kcub1=\E[D, kcud1=\ED, kcuf1=\E[C, kcuu1=\EM, khome=\E[H,
- rev=\E[7m, ri=\E[T,
- rmcup=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smcup=\E[?6l\E[H\E[J, smso=\E[7m,
- smul=\E[4m, tbc=\E[1g,
-
-# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985
-# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!".
-# Tab had been given as \E2I,that must be the tab-set capability -- esr)
-tek4404|tektronix 4404,
- OTbs,
- cols#80, it#8, lines#32,
- blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8,
- rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l,
- rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m,
- smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h,
- smkx=\E[?1l, smso=\E[7m, smul=\E[4m,
-# Some unknown person wrote:
-# I added the is string - straight Unix has ESC ; in the login
-# string which sets a ct8500 into monitor mode (aka 4025 snoopy
-# mode). The is string here cleans up a few things (but not
-# everything).
-ct8500|tektronix ct8500,
- am, bw, da, db,
- cols#80, lines#25,
- bel=^G, cbt=\E^I, clear=\E^E, cr=^M, cub1=^H, cud1=^J,
- cuf1=\ES, cup=\E|%p1%{32}%+%c%p2%{32}%+%c, cuu1=\ER,
- dch1=\E^], dl1=\E^M, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\,
- il1=\E^L, ind=^J, is2=\037\EZ\Ek, ri=\E^A, rmso=\E\s,
- rmul=\E\s, sgr0=\E\s, smso=\E$, smul=\E!,
-
-# Tektronix 4205 terminal.
-#
-# am is not defined because the wrap around occurs not when the char.
-# is placed in the 80'th column, but when we are attempting to type
-# the 81'st character on the line. (esr: hmm, this is like the vt100
-# version of xenl, perhaps am + xenl would work!)
-#
-# Bold, dim, and standout are simulated by colors and thus not allowed
-# with colors. The tektronix color table is mapped into the RGB color
-# table by setf/setb. All colors are reset to factory specifications by oc.
-# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the
-# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub-
-# interval then maps into pre-defined value.
-tek4205|tektronix 4205,
- ccc, mir, msgr,
- colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z,
- clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch1=\E[1P, dim=\E[=1;<6m, dl1=\E[1M, ech=\E%p1%dX,
- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
- initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1,
- invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
- kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER,
- kf7=\ES,
- oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1,
- op=\E[39;40m, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=,
- rmir=\E[4l, rmso=\E[=0;<1m, rmul=\E[24m,
- setb=\E[=%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
- setf=\E[<%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
- sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N,
- smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
- smul=\E[4m, tbc=\E[1g,
-
-#### Teletype (tty)
-#
-# These are the hardcopy Teletypes from before AT&T bought the company,
-# clattering electromechanical dinosaurs in Bakelite cases that printed on
-# pulpy yellow roll paper. If you remember these you go back a ways.
-# Teletype-branded VDTs are listed in the AT&T section.
-#
-# The earliest UNIXes were designed to use these clunkers; nroff and a few
-# other programs still default to emitting codes for the Model 37.
-#
-
-tty33|tty35|model 33 or 35 teletype,
- hc, os, xon,
- cols#72,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-tty37|model 37 teletype,
- OTbs, hc, os, xon,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
- ind=^J,
-
-# There are known to be at least three flavors of the tty40, all seem more
-# like IBM half duplex forms fillers than ASCII terminals. They have lots of
-# awful braindamage, such as printing a visible newline indicator after each
-# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is
-# braindamaged but has hope and is described here. The 40-4 is a 3270
-# lookalike and beyond hope. The terminal has visible bell but I don't know
-# it - it's null here to prevent it from showing the BL character.
-# There is an \EG in <nl> because of a bug in old vi (if stty says you have
-# a "newline" style terminal (-crmode) vi figures all it needs is nl
-# to get crlf, even if <cr> is not ^M.)
-# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
-tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2,
- OTbs, xon,
- cols#80, lines#24,
- clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB,
- cuf1=\EC, cuu1=\E7, dch1=\EP$<50>, dl1=\EM$<50>,
- ed=\EJ$<75>, home=\EH$<10>, ht=\E@$<10>, hts=\E1,
- ich1=\E\^$<50>, il1=\EL$<50>, ind=\ES$<20>, kbs=^],
- kcub1=^H, mc4=^T, mc5=\022$<2000>, ri=\ET$<10>, rmso=\E4,
- rs2=\023\ER$<60>, smso=\E3, tbc=\EH\E2$<80>,
-tty43|model 43 teletype,
- OTbs, am, hc, os, xon,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
-
-#### Tymshare
-#
-
-# You can add <is2=\E<> to put this 40-column mode, though I can't
-# for the life of me think why anyone would want to.
-scanset|sc410|sc415|Tymshare Scan Set,
- am, bw, msgr,
- cols#80, lines#24,
- acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=^M, cub1=^H,
- cud1=^J, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=^J, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0,
- mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N,
-
-#### Volker-Craig (vc)
-#
-# If you saw a Byte Magazine cover with a terminal on it during the early
-# 1980s, it was probably one of these. Carl Helmers liked them because
-# they could crank 19.2 and were cheap (that is, he liked them until he tried
-# to program one...)
-#
-
-# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time
-# every other linefeed.
-vc303|vc103|vc203|volker-craig 303,
- OTbs, OTns, am,
- cols#80, lines#24,
- bel=^G, clear=\014$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
- cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=^J, kcuf1=^I,
- kcuu1=^N, ll=\017$<1>W,
-vc303a|vc403a|volker-craig 303a,
- clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>,
- home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303,
-# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
-vc404|volker-craig 404,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
- ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=^J,
- kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z,
-vc404-s|volker-craig 404 w/standout mode,
- cud1=^J, rmso=^O, smso=^N, use=vc404,
-# From: <wolfgang@cs.sfu.ca>
-# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
-vc414|vc414h|Volker-Craig 414H in sane escape mode.,
- OTbs, am,
- cols#80, lines#24,
- clear=\E\034$<40>, cud1=\E^K, cuf1=^P,
- cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3,
- dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R,
- ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P,
- kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE,
- kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2,
- lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8,
- rmso=\E^_, smso=\E^Y,
-vc415|volker-craig 415,
- clear=^L, use=vc404,
-
-######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
-#
-
-#### IBM PC and clones
-#
-
-# The pcplot IBM-PC terminal emulation program is really messed up. It is
-# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly,
-# doesn't support scrolling regions, ignores add line commands, and ignores
-# delete line commands. Consequently, the resulting behavior looks like a
-# crude adm3a-type terminal.
-# Steve Jacobson 8/85
-pcplot|pc-plot terminal emulation program,
- xenl@,
- csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100,
-# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA>
-# I've found that my KayPro II, running MDM730, continues to emulate an
-# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX
-# system the following termcap entry works well:
-# I have noticed a couple of minor glitches, but nothing I can't work
-# around. (I added two capabilities from the BRL entry -- esr)
-kaypro|kaypro2|kaypro II,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER, ed=^W,
- el=^X, home=^^, il1=\EE, ind=^J, kcud1=^J, kcuf1=^L, kcuu1=^K,
-
-# From IBM, Thu May 5 19:35:27 1983
-# (ibmpc: commented out <smir>=\200R because we don't know <rmir> -- esr)
-ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS),
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L^K, cr=^M^^, cub1=^], cud1=^J, cuf1=^\,
- cuu1=^^, home=^K, ind=\n$<10>, kcud1=^_,
-
-ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX,
- OTbs, am, bw, eo, hs, km, msgr, ul,
- cols#80, it#8, lines#24,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B,
- indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H,
- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\177, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241,
- kf3=\242, kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247,
- kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V,
- ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A,
- rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
-#### Apple II
-#
-# Apple II firmware console first, then various 80-column cards and
-# terminal emulators. For two cents I'd toss all these in the UFO file
-# along with the 40-column apple entries.
-#
-
-# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
-# 'it#8' tells UNIX that you have tabs every 8 columns. This is a
-# function of TIC, not the firmware.
-# The clear key on a IIgs will do something like clear-screen,
-# depending on what you're in.
-appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface,
- OTbs, am, bw, eo, msgr,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=^J,
- kcuf1=^U, kcuu1=^K, kdch1=\177, nel=^M^W, ri=^V, rmso=^N,
- smso=^O,
-# Apple //e with 80-column card, entry from BRL
-# The modem interface is permitted to discard LF (maybe DC1), otherwise
-# passing characters to the 80-column firmware via COUT (PR#3 assumed).
-# Auto-wrap does not work right due to newline scrolling delay, which also
-# requires that you set "stty cr2".
-# Note: Cursor addressing is only available via the Pascal V1.1 entry,
-# not via the BASIC PR#3 hook. All this nonsense can be avoided only by
-# using a terminal emulation program instead of the built-in firmware.
-apple2e|Apple //e,
- bw, msgr,
- cols#80, lines#24,
- bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_,
- ed=\013$<4*/>, el=\035$<4/>, home=^Y, ht=^I, ind=^W,
- is2=^R^N, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^K,
- nel=\r$<100/>, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
- smso=^O,
-# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
-# 4.20, with incoming and outgoing terminals both on 0, emulation On.
-apple2e-p|Apple //e via Pascal,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H,
- kcud1=^J, use=apple2e,
-# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
-# Enable DC3/DC1 flow control with "stty ixon -ixany".
-apple-ae|ASCII Express,
- OTbs, am, bw, msgr, nxon, xon,
- cols#80, it#8, lines#24,
- bel=\007$<500/>, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=^J,
- kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
- smso=^O,
-appleII|apple ii plus,
- OTbs, am,
- cols#80, it#8, lines#24,
- clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, cvvis=^TC6,
- ed=^K, el=^], flash=\024G1$<200/>\024T1, home=\E^Y, ht=^I,
- is2=\024T1\016, kcud1=^J, kcuf1=^U, rmso=^N, sgr0=^N,
- smso=^O,
-# Originally by Gary Ford 21NOV83
-# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985
-apple-80|apple II with smarterm 80 col,
- OTbs, am, bw,
- cols#80, lines#24,
- cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=^J,
- cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_,
- ed=\013$<10*/>, el=\035$<10/>, home=^Y,
-apple-soroc|apple emulating soroc 120,
- am,
- cols#80, lines#24,
- bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
- home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-# From Peter Harrison, Computer Graphics Lab, San Francisco
-# ucbvax!ucsfmis!harrison .....uucp
-# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA
-# "These two work. If you don't have the inverse video chip for the
-# Apple with videx then remove the :so: and :se: fields."
-# (apple-videx: this used to be called DaleApple -- esr)
-apple-videx|Apple with videx videoterm 80 column board with inverse video,
- OTbs, am, xenl,
- cols#80, it#8, lines#24,
- clear=\014$<300/>, cub1=^H, cud1=^J, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, ht=^I, kcub1=^H, kcud1=^J, kcuf1=^U, khome=^Y,
- rmso=^Z2, sgr0=^Z2, smso=^Z3,
-# My system [for reference] : Apple ][+, 64K, Ultraterm display card,
-# Apple Cat ][ 212 modem, + more all
-# controlled by ASCII Express: Pro.
-# From Dave Shaver <isucs1!shaver>
-apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell,
- OTbs, am, eo, xt,
- cols#80, lines#24,
- acsc=, clear=^L, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- flash=^W35^W06, home=^Y,
- is2=^V4^W06\017\rVisible Bell Installed.\016\r\n,
- rmso=^N, smso=^O,
-apple-uterm|Ultraterm for Apple micros,
- OTbs, am, eo, xt,
- cols#80, lines#24,
- acsc=, clear=^L, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, is2=^V4^W06\016, rmso=^N, smso=^O,
-# from trwrba!bwong (Bradley W. Wong):
-#
-# This entry assumes that you are using an apple with the UCSD Pascal
-# language card. SYSTEM.MISCINFO is assumed to be the same as that
-# supplied with the standard apple except that screenwidth should be set
-# using SETUP to 80 columns. Note that the right arrow in not mapped in
-# this termcap entry. This is because that key, on the Apple, transmits
-# a ^U and would thus preempt the more useful "up" function of vi.
-#
-# HMH 2/23/81
-apple80p|80-column apple with Pascal card,
- am, bw,
- cols#80, lines#24,
- clear=^Y^L, cuf1=^\\:,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, kcub1=^H,
-#
-# Apple II+ equipped with Videx 80 column card
-#
-# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL;
-# manually converted by D A Gwyn
-#
-# DO NOT use any terminal emulation with this data base, it works directly
-# with the Videx card. This has been tested with vi 1200 baud and works fine.
-#
-# This works great for vi, except I've noticed in pre-R2, ^U will scroll back
-# 1 screen, while in R2 ^U doesn't.
-# For inverse alternate character set add:
-# <smacs>=^O:<rmacs>=^N:
-# (apple-v: added it#8 -- esr)
-apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520),
- am, xenl,
- cols#80, it#8, lines#24,
- bel=\007$<100/>, clear=\014$<16*/>, cr=^M, cub1=^H,
- cud1=^J, cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c,
- cuu1=^_, ed=\013$<16*/>, el=^], home=^Y, ht=\011$<8/>,
- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
- khome=^Y, rmso=^Z2, smso=^Z3,
-apple-videx3|vapple|Apple II with 80 col card,
- OTbs, am,
- cols#80, lines#24,
- clear=\Ev, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, el=\Ex, home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!,
- kf5=\E", kf6=\E#, kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
-#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
-aepro|Apple II+ running ASCII Express Pro--vt52,
- OTbs,
- cols#80, lines#24,
- clear=\014$<300/>, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH,
-# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
-apple-vm80|ap-vm80|apple with viewmax-80,
- OTbs,
- cols#80, lines#24,
- clear=\014$<300/>, cuf1=^\\:,
- cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_,
- ed=\013$<300/>, el=^], home=\031$<200/>,
-
-#### Apple Lisa & Macintosh
-#
-
-# (lisa: changed <cvvis> to <cnorm> -- esr)
-lisa|apple lisa console display (black on white),
- OTbs, am, eo, msgr,
- cols#88, it#8, lines#32,
- acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L,
- cnorm=\E[5l, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
- is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m,
-liswb|apple lisa console display (white on black),
- is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m,
- smso=\E[m, smul=\E[4m, use=lisa,
-
-# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL;
-# <is2> revised by Ferd Brundick <fsbrn@BRL.ARPA>
-#
-# These entries assume that the 'Auto Wraparound' is enabled.
-# Xon-Xoff flow control should also be enabled.
-#
-# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
-# settings are in non-volatile memory and don't need to be reset upon login.
-# Also setting the number of columns glitches the screen annoyingly.
-# You can type "reset" to get them set.
-#
-lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation,
- OTbs, OTpt, am, xenl, xon,
- OTkn#4, cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ,
- kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8,
- rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r,
- sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g,
-# Lisaterm in 132 column ("wide") mode.
-lisaterm-w|Apple Lisa with Lisaterm in 132 column mode,
- cols#132,
- kbs=^H, kcub1=^H, kcud1=^J, use=lisaterm,
-# Although MacTerminal has insert/delete line, it is commented out here
-# since it is much faster and cleaner to use the "lock scrolling region"
-# method of inserting and deleting lines due to the MacTerminal implementation.
-# Also, the "Insert/delete ch" strings have an extra character appended to them
-# due to a bug in MacTerminal V1.1. Blink is disabled since it is not
-# supported by MacTerminal.
-mac|macintosh|Macintosh with MacTerminal,
- xenl,
- OTdN#30,
- blink@, dch1=\E[P$<7/>, ich1=\E[@$<9/>, ip=$<7/>, use=lisa,
-# Lisaterm in 132 column ("wide") mode.
-mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
- cols#132, use=mac,
-
-#### Radio Shack/Tandy
-#
-
-# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7".
-# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr)
-# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90
-coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, blink=^_", bold=\E\:^A, civis=^E\s,
- clear=\014$<5*/>, cnorm=^E!, cub1=^H, cud1=^J, cuf1=^F,
- cup=\002%p2%{32}%+%c%p1%{32}%+%c$<2/>, cuu1=^I,
- dl1=^_1, ed=^K, el=^D, home=^A, il1=^_0, kcub1=^H, kcud1=^J,
- kcuf1=^I, kcuu1=^L, rev=^_\s, rmso=^_!, rmul=^_#,
- sgr0=\037!\E\:\0, smso=^_\s, smul=^_",
-# (trs2: removed obsolete ":nl=^_:" -- esr)
-trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M,
- OTbs, am, msgr,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^_, cuf1=^],
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, dl1=^K, ed=^B,
- el=^A, home=^F, ht=^I, il1=^D, ind=^J, kbs=^H, kcub1=^\,
- kcud1=^_, kcuf1=^], kcuu1=^^, rmso=^O, sgr0=^O, smso=^N,
-# From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu>
-# (This had extension capabilities
-# :BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\
-# :CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@:
-# I also deleted the unnecessary ":kn#2:", ":sg#0:" -- esr)
-trs16|trs-80 model 16 console,
- OTbs, am,
- cols#80, it#8, lines#24,
- acsc=jak`l_mbquvewcxs, bel=^G, civis=\ERc, clear=^L,
- cnorm=\ERC, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
- dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
- ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kf0=^A, kf1=^B, kf2=^D, kf3=^L, kf4=^U, kf5=^P, kf6=^N, kf7=^S,
- khome=^W, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7,
- lf7=f8, mc4=\E]+, mc5=\E]=, rmacs=\ERg, rmso=\ER@, sgr0=\ER@,
- smacs=\ERG, smso=\ERD,
-
-#### Atari ST
-#
-
-# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
-atari|atari st,
- OTbs, am,
- cols#80, it#8, lines#25,
- clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
- ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
-# UniTerm terminal program for the Atari ST: 49-line VT220 emulation mode
-# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
-uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
- lines#49,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H,
- use=vt220,
-# MiNT VT52 emulation. 80 columns, 25 rows.
-# MiNT is Now TOS, the operating system which comes with all Ataris now
-# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
-# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
-# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
-st52|Atari ST with VT52 emulation,
- am, km,
- cols#80, lines#25,
- bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
- ind=^J, ka1=\E#7, ka3=\E#5, kb2=\E#9, kbs=^H, kc1=\E#1,
- kc3=\E#3, kclr=\E#7, kcub1=\E#K, kcud1=\E#P, kcuf1=\E#M,
- kcuu1=\E#H, kf0=\E#D, kf1=\E#;, kf2=\E#<, kf3=\E#=, kf4=\E#>,
- kf5=\E#?, kf6=\E#@, kf7=\E#A, kf8=\E#B, kf9=\E#C, khome=\E#G,
- kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=^M^J, rc=\Ek,
- ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
- smcup=\Ee, smso=\Ep,
-
-#### Commodore Business Machines
-#
-# Formerly located in West Chester, PA; went spectacularly bust in 1994
-# after years of shaky engineering and egregious mismanagement. Made one
-# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64,
-# C-128, VIC-20). The C-64 is said to have been the most popular machine
-# ever (most units sold); they can still be found gathering dust in closets
-# everywhere.
-#
-
-# From: Kent Polk <kent@swrinde.nde.swri.edu>, 30 May 90
-# Added a few more entries, converted caret-type control sequence (^x) entries
-# to '\0xx' entries since a couple of people mentioned losing '^x' sequences.
-# Corrections by Ty Sarna <tsarna@endicor.com>, Sat Feb 28 18:55:15 1998
-#
-# :as:, :ae: Support for alternate character sets.
-# :ve=\E[\040p:vi=\E[\060\040p: cursor visible/invisible.
-# :xn: vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept)
-# This one appears to fix a problem I always had with a line ending
-# at 'width+1' (I think) followed by a blank line in vi. The blank
-# line tended to disappear and reappear depending on how the screen
-# was refreshed. Note that this is probably needed only if you use
-# something like a Dnet Fterm with the window sized to some peculiar
-# dimension larger than 80 columns.
-# :k0=\E9~: map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;'
-# (amiga: removed obsolete :kn#10:,
-# also added empty <acsc> to suppress a warning --esr)
-amiga|Amiga ANSI,
- OTbs, am, bw, xenl,
- cols#80, lines#24,
- acsc=, bel=^G, blink=\E[7;2m, bold=\E[1m, cbt=\E[Z,
- civis=\E[0 p, clear=\E[H\E[J, cnorm=\E[ p, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, invis=\E[8m, is2=\E[20l, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[9~,
- kf1=\E[0~, kf2=\E[1~, kf3=\E[2~, kf4=\E[3~, kf5=\E[4~,
- kf6=\E[5~, kf7=\E[6~, kf8=\E[7~, kf9=\E[8~, rev=\E[7m,
- ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmso=\E[m, rmul=\E[m,
- rs1=\Ec, sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
-
-# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995
-# (amiga: added empty <acsc> to suppress a warning.
-# I'm told this entry screws up badly with AS225, the Amiga
-# TCP/IP package once from Commodore, and now sold by InterWorks.--esr)
-amiga-h|Hans Verkuil's Amiga ANSI,
- OTbs, bw, msgr,
- cols#80, lines#24,
- acsc=, bel=^G, blink=\2337;2m, bold=\2331m, cbt=\233Z,
- civis=\2330 p, clear=\233H\233J, cnorm=\233 p, cr=^M,
- cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
- cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
- dim=\2332m, ech=\233%p1%dP, ed=\233J, el=\233K, flash=^G,
- home=\233H, ht=^I, ich=\233%p1%d@, ich1=\233@, ind=\233S,
- indn=\233%p1%dS, invis=\2338m, is2=\23320l, kbs=^H,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
- kdch1=\177, kf0=\2339~, kf1=\2330~, kf2=\2331~, kf3=\2332~,
- kf4=\2333~, kf5=\2334~, kf6=\2335~, kf7=\2336~, kf8=\2337~,
- kf9=\2338~, nel=\233B\r, rev=\2337m, ri=\233T,
- rin=\233%p1%dT, rmacs=^O, rmcup=\233?7h, rmso=\2330m,
- rmul=\2330m, rs1=\Ec, sgr0=\2330m, smacs=^N, smcup=\233?7l,
- smso=\2337m, smul=\2334m,
-
-# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999
-amiga-8bit|Amiga ANSI using 8-bit controls,
- acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
- ind=\204, indn@, ri=\215, rin@, use=amiga-h,
-
-# From: Ruediger Kuhlmann <terminfo@ruediger-kuhlmann.de>, 18 Jul 2000
-# requires use of appropriate preferences settings.
-amiga-vnc|Amiga using VNC console (black on light gray),
- am, da, db, msgr, ndscr,
- btns#1, colors#16, cols#80, lines#24, lm#0, ncv#0, pairs#256,
- bel=^G, blink=\E[7;2m, bold=\E[1m, civis=\E[0p,
- clear=\E[H\E[J, cnorm=\E[p\E[>?6l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[>?6h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, ed=\E[J, el=\E[K, flash=^G,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
- indn=\E[%p1%dS, invis=\E8m,
- is2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
- kbs=^H, kcbt=\233Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\177, kf0=\E[9~, kf1=\E[0~, kf2=\E[1~,
- kf3=\E[2~, kf4=\E[3~, kf5=\E[4~, kf6=\E[5~, kf7=\E[6~,
- kf8=\E[7~, kf9=\E[8~, khlp=\E[?~, khome=\E[44~, kll=\E[45~,
- kmous=\E[M, knp=\E[42~, kpp=\E[41~, nel=\EE, oc=\E[0m,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=\E[?7h\E[r\E[J,
- rmkx=\E[?1l, rmso=\E[21m, rmul=\E[24m, rs1=\Ec,
- rs2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
- setab=\E[%?%p1%{8}%>%t%'F'%p1%+%d%e4%p1%d%;m,
- setaf=\E[%?%p1%{8}%>%t%'2'%p1%+%d%e3%p1%d%;m,
- sgr0=\E[0m\017\E[30;85;>15m, smcup=\E[?7h, smkx=\E[?1h,
- smso=\E[1m, smul=\E[4m,
-
-# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
-# I'm trying to write a termcap for a commodore b-128, and I'm
-# having a little trouble. I've had to map most of my control characters
-# to something that unix will accept (my delete-char is a ctrl-t, etc),
-# and create some functions (like cm), but thats life.
-# The problem is with the arrow keys - right, and up work fine, but
-# left deletes the previous character and down I just can't figure out.
-# Jove knows what I want, but I don't know what it's sending to me (it
-# isn't thats bound to next-line in jove).
-# Anybody got any ideas? Here's my termcap.
-# DAG -- I changed his "^n" entries to "\n"; see if that works.
-#
-commodore|b-128|Commodore B-128 micro,
- am, bw,
- OTdN#20, cols#80, lines#24, pb#150,
- OTbc=^H, OTnl=^M, clear=\E\006$<10/>, cr=^M, cud1=^J,
- cuf1=^F, cup=\E\013%p1%2d\,%p2%2d\,$<20/>, cuu1=^P,
- dch1=\177$<10*/>, dl1=\Ed$<10*/>, el=\Eq$<10/>,
- home=\E^E, ht=\011$<5/>, ich1=\E\n$<5/>, il1=\Ei$<10/>,
- kcub1=^B, kcud1=^J, kcuf1=^F, kcuu1=^P, khome=\E^E, rmir=,
- smir=,
-
-#### North Star
-#
-# North Star Advantage from Lt. Fickie <brl-ibd!fickie> via BRL
-northstar|North Star Advantage,
- OTbs,
- cols#80, lines#24,
- clear=\004$<200/>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<1/>, ed=\017$<200/>,
- el=\016$<200/>, home=\034\032$<200/>,
-
-#### Osborne
-#
-# Thu Jul 7 03:55:16 1983
-#
-# As an aside, be careful; it may sound like an anomaly on the
-# Osborne, but with the 80-column upgrade, it's too easy to
-# enter lines >80 columns!
-#
-# I've already had several comments...
-# The Osborne-1 with the 80-col option is capable of being
-# 52, 80, or 104 characters wide; default to 80 for compatibility
-# with most systems.
-#
-# The tab is destructive on the Ozzie; make sure to 'stty -tabs'.
-osborne-w|osborne1-w|osborne I in 104-column mode,
- msgr, ul, xt,
- cols#104, lines#24,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, el=\ET, ich1=\EQ, il1=\EE, ind=^J, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, rmso=\E(, rmul=\Em, smso=\E), smul=\El,
-# Osborne I from ptsfa!rhc (Robert Cohen) via BRL
-osborne|osborne1|osborne I in 80-column mode,
- OTbs, am, mir, msgr, ul, xhp,
- OTdB#4, cols#80, lines#24,
- clear=^Z, cub1=\010$<4>, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW$<4/>, dl1=\ER, el=\ET, il1=\EE, is2=^Z, kbs=^H,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, rmir=, rmso=\E),
- rmul=\Em, smir=\EQ, smso=\E(, smul=\El,
-#
-# Osborne Executive definition from BRL
-# Similar to tvi920
-# Added by David Milligan and Tom Smith (SMU)
-osexec|Osborne executive,
- OTbs, am,
- OTug#1, cols#80, lines#24, xmc#1,
- OTnl=^J, bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
- is2=\Eq\Ek\Em\EA\Ex0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
- kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
- kf9=^AI\r, rmir=, rmso=\Ek, rmul=\Em, smir=, smso=\Ej,
- smul=\El, tbc=\E3,
-
-#### Console types for obsolete UNIX clones
-#
-# Coherent, Minix, Venix, and several lesser-known kin were OSs for 8088
-# machines that tried to emulate the UNIX look'n'feel. Coherent and Venix
-# were commercial, Minix an educational tool sold in conjunction with a book.
-# Memory-segmentation limits and a strong tendency to look like V7 long after
-# it was obsolete made all three pretty lame. Venix croaked early. Coherent
-# and Minix were ported to 32-bit Intel boxes, only to be run over by a
-# steamroller named `Linux' (which, to be fair, traces some lineage to Minix).
-# Coherent's vendor, the Mark Williams Company, went belly-up in 1994. There
-# are also, I'm told, Minix ports that ran on Amiga and Atari machines and
-# even as single processes under SunOS and the Macintosh OS.
-#
-
-# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
-minix|minix console (v1.7),
- am, xenl,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S,
- kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp, lf2=PgDn, lf3=Num +,
- lf4=Num -, lf5=Num 5, nel=^M^J, rev=\E[7m, ri=\EM,
- rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
-minix-old|minix console (v1.5),
- xon,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S, kf5=\E[G,
- khome=\E[H, nel=^M^J, rev=\E[7m, ri=\EM, rmso=\E[0m,
- rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-# The linewrap option can be specified by editing /usr/include/minix/config.h
-# before recompiling the minix 1.5 kernel.
-minix-old-am|minix console with linewrap,
- am, use=minix-old,
-
-pc-minix|minix console on an Intel box,
- use=klone+acs, use=minix,
-
-# According to the Coherent 2.3 manual, the PC console is similar
-# to a z19. The differences seem to be (1) 25 lines, (2) no status
-# line, (3) standout is broken, (4) ins/del line is broken, (5)
-# has blinking and bold.
-pc-coherent|pcz19|coherent|IBM PC console running Coherent,
- am, mir,
- cols#80, it#8, lines#25,
- bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EN,
- ed=\EJ, el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, ri=\EI, rmir=\EO,
- rmso=\Eq, sgr0=\Eq, smir=\E@, smso=\Ep,
-
-# According to the Venix 1.1 manual, the PC console is similar
-# to a DEC vt52. Differences seem to be (1) arrow keys send
-# different strings, (2) enhanced standout, (3) added insert/delete line.
-# Note in particular that it doesn't have automatic margins.
-# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they
-# not described here because this derives from an old termcap entry.
-pc-venix|venix|IBM PC console running Venix,
- cols#80, it#8, lines#25,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
- ed=\EJ, el=\EK, ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\EK,
- kcud1=\EP, kcuf1=\EM, kcuu1=\EH, khome=\EG, ri=\EI,
-
-#### Miscellaneous microcomputer consoles
-#
-# If you know anything more about any of these, please tell me.
-#
-
-# The MAI Basic Four computer was obsolete at the end of the 1980s.
-# It may be used as a terminal by putting it in "line" mode as seen on
-# one of the status lines.
-# Initialization is similar to CIT80. <is2> will set ANSI mode for you.
-# Hardware tabs set by <if> at 8-spacing. Auto line wrap causes glitches so
-# wrap mode is reset by <cvvis>. Using <ind>=\E[S caused errors so I
-# used \ED instead.
-# From: bf347@lafn.org (David Lawyer), 28 Jun 1997
-mai|basic4|MAI Basic Four in ansi mode,
- am, da, db, mir, msgr,
- cols#82, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=^]^_, cnorm=\E[?7h,
- 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,
- 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,
- kf7=\EOV, kf8=\EOW, nel=^M\ED, rc=\E8, rev=\E[7m, ri=\E[T,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m,
- smir=\E[4h, smso=\E[7m, smul=\E[4m,
-# basis from Peter Harrison, Computer Graphics Lab, San Francisco
-# ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA
-#
-# On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote:
-# The Basis 108 was a Apple II clone, manufactured by the "Basis
-# Mikrocomputer GmbH" in Munster, Germany (the company still exists today,
-# about 1,5 km from where I live, but doesn't build own computers any
-# more). A Basis 108 featured a really heavy (cast aluminium?) case, was
-# equipped with one or two 5.25" disk drives, had a monochrome and colour
-# video output for a TV set or a dedicated monitor and several slots for
-# Apple II cards. Basis 108 were quite popular at german schools before
-# the advent of the IBM PC. They run, for example, the UCSD Pascal
-# development system (which I used even in 1993 to program the steering
-# and data recording for our school's experimental solar panel :), Apple DOS
-# or CP/M.
-# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr)
-basis|BASIS108 computer with terminal translation table active,
- clear=\E*$<300/>, cud1=\n$<5000/>, ed=\EY, el=\ET, kbs=^H,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, rmso=\E), sgr0=\E),
- smso=\E(, use=adm3a,
-# luna's BMC terminal emulator
-luna|luna68k|LUNA68K Bitmap console,
- cols#88, lines#46, use=ansi-mini,
-megatek|pegasus workstation terminal emulator,
- am, os,
- cols#83, lines#60,
-# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived
-# interface (pre-Macintosh by several years) that went nowhere.
-xerox820|x820|Xerox 820,
- am,
- cols#80, lines#24,
- bel=^G, clear=1^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^Q, el=^X,
- home=^^, ind=^J,
-
-#### Videotex and teletext
-#
-
-# \E\:1} switch to te'le'informatique mode (ascii terminal/ISO 6429)
-# \E[?3l 80 columns
-# \E[?4l scrolling on
-# \E[12h local echo off
-# \Ec reset: G0 U.S. charset (to get #,@,{,},...), 80 cols, clear screen
-# \E)0 G1 DEC set (line graphics)
-#
-# From: Igor Tamitegama <igor@ppp1493-ft.teaser.fr>, 18 Jan 1997
-m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'informatique,
- OTbs, eslok, hs, xenl,
- cols#80, it#8, lines#24, wsl#72, xmc#0,
- acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[<1h, clear=\E[H\E[J,
- cnorm=\E[<1l, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, flash=^G, fsl=^J,
- home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J, ip=$<7/>,
- is1=\E\:1}\Ec\E[?4l\E[12h, is2=\Ec\E[12h\E)0,
- is3=\E[?3l kbs=\010, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kf0=\EOp,
- kf1=\EOq, kf10=\EOp, kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu,
- kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, khome=\E[H,
- kich1=\E[4h, kil1=\E[4l, knp=\EOn, kpp=\EOR, ll=\E[24;80H,
- mc0=\E[i, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec\E[?4l\E[12h, rs2=\Ec\E)0, sc=\E7, sgr0=\E[m,
- smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=^_@A,
- u6=\E[%i%d;%dR, u7=\E[6n,
-
-# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998
-#
-minitel1|minitel 1,
- am, bw, eslok, hs, hz, msgr,
- colors#8, cols#40, lines#24, pairs#8,
- acsc=+.\,\,./f0g1, bel=^G, blink=\EH, civis=^T, clear=^L,
- cnorm=^Q, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
- cup=\037%p1%{65}%+%c%p2%{65}%+%c, cuu1=^K, el=^X,
- enacs=^Y, fsl=^J, home=^^, ind=^J,
- is2=\E;`ZQ\E\:iC\E\:iE\021, nel=^M^J, op=\EG,
- rep=%p1%c\022%p2%{63}%+%c, rev=\E], ri=^K, rmso=\E\\,
- setf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=%tC%e%p1%{64}%+%c%;,
- sgr=%?%p1%t\E]%;%?%p3%t\E]%;%?%p4%t\EH%;,
- sgr0=\EI\E\\, smso=\E], tsl=\037@%p1%{65}%+%c,
-# is2=Fnct TE, Fnct MR, Fnct CM et pour finir: curseur ON.
-minitel1b|minitel 1-bistandard (in 40cols mode),
- mir,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el1=\E[1K, il=\E[%p1%dL, il1=\E[L,
- is1=\E;iYA\E;jYC, kclr=\E[2J, kctab=^I, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
- kel=^X, khome=\E[H, kich1=\E[4h, kil1=\E[L, rmir=\E[4l,
- smir=\E[4h, smkx=\E;iYA\E;jYC, use=minitel1,
-# <rmkx> posait des problemes (logout en sortant de vi).
-minitel1b-80|minitel 1-bistandard (standard teleinformatique),
- am@, bw@, hz@,
- colors@, cols#80, it#8, pairs@,
- blink=\E[5m, bold=\E[1m, civis=\037@A\024\n,
- clear=\E[H\E[2J, cnorm=\037@A\021\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, ind=\ED, is1@, is2@, kent=\EOM, kf0=\EOp, kf1=\EOq,
- kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu, kf6=\EOv, kf7=\EOw,
- kf8=\EOx, kf9=\EOy, nel=\EE, op@, rc=\E8, rep@, rev=\E[7m,
- ri=\EM, rmkx@, rmso=\E[27m, rmul=\E[24m, sc=\E7, setf@,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- sgr0=\E[m, smkx@, smso=\E[7m, smul=\E[4m, use=minitel1b,
-
-######## OBSOLETE VDT TYPES
-#
-# These terminals are *long* dead -- these entries are retained for
-# historical interest only.
-
-#### Amtek Business Machines
-#
-
-# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y",
-# but these caps were commented out in 8.3; also, removed overridden
-# ":do=^J:" -- esr)
-abm80|amtek business machines 80,
- OTbs, am, bw,
- cols#80, lines#24,
- cbt=^T, clear=\E^\, cub1=^H, cud1=\E^K, cuf1=^P,
- cup=\E\021%p2%{32}%+%c%p1%{32}%+%c, cuu1=\E^L,
- dl1=\E^S, ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z,
-
-#### Bell Labs blit terminals
-#
-# These were AT&T's official entries. The 5620 FAQ maintained by
-# David Breneman <daveb@dgtl.com> has this to say:
-#
-# Actually, in the beginning was the Jerq, and the Jerq was white with a
-# green face, and Locanthi and Pike looked upon the Jerq and said the Jerq
-# was good. But lo, upon the horizon loomed a mighty management-type person
-# (known now only by the initials VP) who said, the mighty Jerq must stay
-# alone, and could not go forth into the world. So Locanthi and Pike put the
-# Jerq to sleep, cloned its parts, and the Blit was brought forth unto the
-# world. And the Jerq lived the rest of its days in research, but never
-# strayed from those paths.
-#
-# In all seriousness, the Blit was originally known as the Jerq, but when
-# it started to be shown outside of the halls of the Bell Labs Research
-# organization, the management powers that be decided that the name could
-# not remain. So it was renamed to be Blit. This was in late 1981.
-#
-# (The AT&T 5620 was the commercialized Blit. Its successors were the 630,
-# 730, and 730+.)
-#
-
-blit|jerq|blit running teletype rom,
- am, eo, ul, xon,
- cols#87, it#8, lines#72,
- bel=^G, clear=^L, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
- dch=\Ee%p1%{32}%+%c, dch1=\Ee!, dl=\EE%p1%{32}%+%c,
- dl1=\EE!, el=\EK, ht=^I, ich=\Ef%p1%{32}%+%c, ich1=\Ef!,
- il=\EF%p1%{32}%+%c, il1=\EF!, ind=^J, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ex, kf2=\Ey, kf3=\Ez,
-
-# (cbblit: here's a BSD termcap that says <cud1=\EG> -- esr)
-cbblit|fixterm|blit running columbus code,
- cols#88,
- ed=\EJ, flash=\E^G, ich1@, mc4=^T, mc5=^R, mc5p=\EP%p1%03d,
- rmir=\ER, rmso=\EV!, rmul=\EV", smir=\EQ, smso=\EU!,
- smul=\EU", use=blit,
-
-oblit|ojerq|first version of blit rom,
- am, da, db, eo, mir, ul, xon,
- cols#88, it#8, lines#72,
- bel=^G, clear=^L, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dch1=\EO,
- dl=\Ee%p1%{32}%+%c, dl1=\EE, ed=\EJ, el=\EK, flash=\E^G,
- ht=^I, il=\Ef%p1%{32}%+%c, il1=\EF, ind=^J, kbs=^H, rmir=\ER,
- smir=\EQ,
-
-#### Bolt, Beranek & Newman (bbn)
-#
-# The BitGraph was a product of the now-defunct BBN Computer Corporation.
-# The parent company, best known as the architects of the Internet, is
-# still around.
-#
-# Jeff DelPapa <dp@world.std.com> writes:
-# The bitgraph was a large white box that contained a monochrome bitmap
-# display, and a 68000 to run it. You could download code and run it on
-# the cpu, it had 128kb (I think) of memory. I used one in the late
-# 70's, sure beat a vt100. It had one strange feature tho -- it used
-# the cpu to bitblt pixels to scroll, it took longer than the refresh
-# rate, and looked like a rubber sheet stretching, then snapping
-# upwards. It had everything the early mac had, except a floppy drive a
-# small screen (it had a 17" crisp beauty) and a real OS. They (Bolt
-# Beranek and Neuman) sold at most a few hundred of them to the real
-# world. DOD may have bought more...
-#
-
-# Entries for the BitGraph terminals. The problem
-# with scrolling in vi can only be fixed by getting BBN to put
-# smarter scroll logic in the terminal or changing vi or padding
-# scrolls with about 500 ms delay.
-#
-# I always thought the problem was related to the terminal
-# counting newlines in its input buffer before scrolling and
-# then moving the screen that much. Then vi comes along and
-# paints lines in on the bottom line of the screen, so you get
-# this big white gap.
-
-bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video),
- flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
- use=bg2.0,
-bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video),
- flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
- use=bg2.0,
-bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init),
- OTbs, xenl,
- cols#85, lines#64,
- bel=^G, clear=\E[H\E[J$<150>, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, dl1=\E[M$<2*>,
- ed=\E[J$<150>, el=\E[K$<2>, ht=^I, il1=\E[L$<2*>,
- ind=\n$<280>, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=PF1,
- lf2=PF2, lf3=PF3, lf4=PF4, rc=\E8, rmkx=\E>, rmso=\E[m, sc=\E7,
- sgr0=\E[m, smkx=\E=, smso=\E[7m,
-
-bg1.25rv|bbn bitgraph 1.25 (reverse video),
- flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
- use=bg1.25,
-bg1.25nv|bbn bitgraph 1.25 (normal video),
- flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
- use=bg1.25,
-# (bg1.25: I added <rmam>/<smam> based on the init string -- esr)
-bg1.25|bbn bitgraph 1.25,
- cols#85, lines#64,
- bel=^G, clear=\E[H\E[J$<150>, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A,
- dl1=\E[M$<2*>, ed=\E[J$<150>, el=\E[K$<2>, ht=^I,
- il1=\E[L$<2*>, ind=\n$<280>, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\ES,
- lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, ll=\E[64;1H, rmam=\E[?7l,
- rmkx=\E>, rmso=\E[m, sgr0=\E[m, smam=\E[?7h, smkx=\E=,
- smso=\E[7m,
-
-#### Bull (bq, dku, vip)
-#
-# (Adapted for terminfo; AIX extension capabilities translated -- esr)
-
-#============================================#
-# BULL QUESTAR 210 `SDP' terminals emulation #
-#============================================#
-#
-# Description written by R.K.Saunders (Bull Transac)
-#
-# Modifications written by F. Girard (Bull MTS)
-# 19-05-87 V02.00.01
-# 17-12-87 V02.00.02
-# 15-09-89 V02.00.05
-#
-# Typical technical selections F1 (modes SDP/ROLL):
-# -------------------------------------------------------
-# | 01 02 03 04 05 06 07 08 09 10 |
-# | 1010 0011 1010 0110 0110 0001 0100 0000 0000 0000 |
-# | |
-# | 11 12 13 14 15 16 17 18 19 20 |
-# | 0000 0110 100? 0000 0000 0000 0001 0000 0000 0001 |
-# | |
-# | 21 22 23 24 25 26 27 28 29 30 |
-# | 0011 0000 0001 1000 0000 0000 0000 0000 0000 0000 |
-# | |
-# | 31 32 33 34 35 36 37 38 39 40 |
-# | 1010 0011 0000 0000 0000 0000 0000 0000 0000 0000 |
-# -------------------------------------------------------
-# Typical firmware identification F5 "etat 6":
-# P287.02.04b (AZERTY)
-# P297.11.04 (24-pin: 2732) or P798.11.04 (28-pin: 2764)
-# P298.03.03 (monochrome) or P374.03.02 (colour)
-#
-# SM SDP mode (VIP command): ^[[?=h
-# RIS (erases screen): ^[c
-# DMI disable keyboard: ^[`
-# SM double rendition mode: ^[[?>h
-# RM solicited status mode: ^[[5l
-# RM character mode: ^[[>l
-# RM echoplex mode: ^[[12l
-# RM column tab mode: ^[[18l
-# RM forbid SS2 keyboard mode: ^[[?<l
-# SM scroll mode: ^[[=h
-# FCF enable XON/XOFF: ^[P1s^[\
-# MTL select end msg character: ^[[^Wp
-# EMI enable keyboard: ^[b
-# RIS retour etat initial: ^[c
-# enable FC keypad: ^[[?<h,
-# MPW map status line window: ^[PY99:98^[\
-# SCP select status line: ^[[0;98v
-# ED erase entire partition: ^[[2J
-# SCP select main partition: ^[[v
-# SM character insertion mode: ^[[4h
-# RM character replacement mode: ^[[4l
-# COO cursor on: ^[[r
-# COO cursor off: ^[[1r
-# SGR dim (turquoise) rev attr: ^[[2;7m
-# SGR Data normal attr: ^[[m
-# SO Line-graphic mode ON: ^N
-# SI Line-graphic mode OFF: ^O
-# MC start routing to printer: ^[[5i
-# MC stop routing to printer: ^M^[[4i
-#
-
-# This entry covers the following terminals:
-# dku7102, tws2102, and tws models 2105 to 2112
-tws-generic|dku7102|Bull Questar tws terminals,
- am, eslok, hs, mir, msgr, xenl, xhp@, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggj)k\,l&m#n/ooppq*rrsst'u-v+w.x%yyzz{{||}}~~,
- bel=^G, blink=\E[0;5m, cbt=\E[Z, civis=\E[1r, clear=\E[2J,
- cnorm=\E[r, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
- cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[0;2m, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[v, ed=\E[J, el=\E[K,
- fsl=\E[v, home=\E[H, ht=\E[I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=^J, invis=\E[0;8m,
- is1=\E[?=h\Ec\E`\E[?>h\EPY99\:98\E\\,
- is2=\E[5;>;12;18;?<l\E[=h\EP1s\E\\\E[\027p,
- is3=\Eb\E[?<h, kbs=^H, kcbt=\E[Z, kctab=\E[g, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
- ked=\E[J, kel=\E[K, kf1=\E[1u\027, kf2=\E[2u\027,
- kf3=\E[3u\027, kf4=\E[4u\027, kf5=\E[5u\027,
- kf6=\E[6u\027, kf7=\E[7u\027, kf8=\E[8u\027, khome=\E[H,
- khts=\EH, kil1=\E[L, krmir=\E[4l, ll=\E[H\E[A, mc0=\E[0i,
- mc4=\r\E[4i, mc5=\E[5i, rev=\E[0;7m, rmacs=^O,
- rmcup=\E[0;98v\E[2J\E[v, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
- sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99\:98\E\\,
- smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[2g,
- tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
-tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
- dsl=\E[0;98v\E[2J\E[v, fsl=\E[v, is3=\Eb, tsl=\E[0;98v,
- use=tws-generic,
-tws2103|xdku|BULL Questar tws2103,
- ht=^I, use=tws-generic,
-tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA,
- ht=^I, use=tws2102-sna,
-dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6),
- clear=\E[2J\E[H, cup@, dl@, dl1@,
- dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[H\E[v, el=\E[K\E[m,
- il@, il1@, tsl=\EPY99\:98\E\\\E[0;98v\E[H\E[2;7m,
- use=tws-generic,
-dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
- blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
- smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic,
-
-#=========================================================#
-# BULL QUESTAR 303 & 310 `DEC VT 320' terminals emulation #
-#=========================================================#
-#
-# Description written by J. Staerck (BULL SA)
-# Copyright (c) 1989 BULL SA
-#---------------------------------------------------------------------------
-# This entry is used for terminals with vt320 emulation mode
-# and following set-up :
-# 8 bit ISO Latin Character Set (ISO 8859-1),
-# 7 bit Control Characters,
-# 80 columns screen.
-# Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300)
-# They are used in string capabilities with vt220-320 emulation mode.
-# In the following DEC definitions, two kinds of terminfo databases are
-# provided :
-# 1. the first with Command Sequence Introducer starting with escape
-# sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode.
-# 2. the second with Command Sequence Introducer starting with escape
-# sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B.
-# Soft Terminal Reset esc [ ! p
-# RIS (erases screen): esc c
-# DECKPNM numeric keypad mode: esc >
-# DECKPAM applic. keypad mode: esc =
-# DECSTBM Scrolling region: esc [ r
-# SCS select G0 = US: esc ( B
-# SCS select G1 = line-graphic: esc ) 0
-# Select 7-bit C1 controls: esc sp F
-# Select 8-bit C1 controls: esc sp G
-# Select cursor home: esc [ H
-# Select erase screen: esc [ J
-# SM KAM lock keyboard: esc [ 2 h
-# RM KAM unlock keyboard: esc [ 2 l
-# SM SRM local echo off: esc [ 1 2 h
-# RM SRM local echo on: esc [ 1 2 l
-# SM LNM New line : esc [ 2 0 h
-# RM LNM return = CR only: esc [ 2 0 l
-# SM DECCKM cursor keys mode: esc [ ? 1 h
-# RM DECCKM appli. keys mode: esc [ ? 1 l
-# SM DECANM ANSI mode on: esc [ ? 2 h
-# RM DECANM ANSI mode off: esc [ ? 2 l
-# SM DECCOLM 132-column screen: esc [ ? 3 h
-# RM DECCOLM 80-column screen: esc [ ? 3 l
-# SM DECSCLM Smooth scroll: esc [ ? 4 h
-# RM DECSCLM Jump scroll: esc [ ? 4 l
-# SM DECSCNM screen light backgr. esc [ ? 5 h
-# RM DECSCNM screen dark backgr. esc [ ? 5 l
-# SM DECOM move within margins: esc [ ? 6 h
-# RM DECOM move outside margins: esc [ ? 6 l
-# SM DECAWM auto right margin: esc [ ? 7 h
-# RM DECAWM auto right margin: esc [ ? 7 l
-# SM DECARM auto repeat: esc [ ? 8 h
-# RM DECARM auto repeat: esc [ ? 8 l
-# DECSASD Select active main: esc [ 0 $ }
-# DECSASD Select active status: esc [ 1 $ }
-# DECSSDT Select status none: esc [ 0 $ ~
-# DECSSDT Select status indic.: esc [ 1 $ ~
-# DECSSDT Select status host-wr: esc [ 2 $ ~
-# SM DECTCEM Visible cursor: esc [ ? 2 5 h
-# RM DECTCEM Invisible cursor: esc [ ? 2 5 l
-# SM DECNCRM 7 bits NCR set: esc [ ? 4 2 h
-# RM DECNCRM Multi or ISO latin: esc [ ? 4 2 l
-# SM DECNKM numeric keypad mode: esc [ ? 6 6 h
-# RM DECNKM numeric keypad appl.: esc [ ? 6 6 l
-# SM DECKBUM clavier informatique esc [ ? 6 8 h
-# RM DECKBUM clavier bureautique: esc [ ? 6 8 l
-# DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 " p
-# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 0 " p
-# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 2 " p
-# DECSCL vt300 mode 7-bit ctrl: esc [ 6 3 ; 1 " p
-# Char. and Line attributes: esc [ Ps ... Ps m
-# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
-# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
-#
-
-# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
-bq300|Bull vt320 ISO Latin 1 80 columns terminal,
- am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX,
- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<50>\E[?5l, fsl=\E[0$}, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is1=\E[63;1"p\E[2h,
- is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- is3=\E[0$}\E[?25h\E[2l\E[H\E[J, ka1=\EOw, ka3=\EOy,
- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
- rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m\E(B, smacs=^N, smam=\E[?7h,
- smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
-bq300-rv|Bull vt320 reverse 80 columns,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- use=bq300,
-bq300-w|Bull vt320 132 columns,
- cols#132, wsl#132,
- is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300,
-bq300-w-rv|Bull vt320 reverse mode 132 columns,
- cols#132, wsl#132,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300,
-
-# This entry is used for terminals with vt320 emulation mode
-# and following set-up :
-# 8 bit ISO Latin Character Set (ISO 8859-1),
-# 8 bit Control Characters, (CSI coded as x9B for ESC [)
-# 80 columns screen.
-# Soft Terminal Reset csi ! p
-# RIS (erases screen): esc c
-# DECKPNM numeric keypad mode: esc >
-# DECKPAM applic. keypad mode: esc =
-# DECSTBM Scrolling region: esc [ r
-# SCS select G0 = US: esc ( B
-# SCS select G1 = line-graphic: esc ) 0
-# Select 7-bit C1 controls: esc sp F
-# Select 8-bit C1 controls: esc sp G
-# Select cursor home: csi H
-# Select erase screen: csi J
-# SM KAM lock keyboard: csi 2 h
-# RM KAM unlock keyboard: csi 2 l
-# SM SRM local echo off: csi 1 2 h
-# RM SRM local echo on: csi 1 2 l
-# SM LNM New line : csi 2 0 h
-# RM LNM return = CR only: csi 2 0 l
-# SM DECCKM cursor keys mode: csi ? 1 h
-# RM DECCKM appli. keys mode: csi ? 1 l
-# SM DECANM ANSI mode on: csi ? 2 h
-# RM DECANM ANSI mode off: csi ? 2 l
-# SM DECCOLM 132-column screen: csi ? 3 h
-# RM DECCOLM 80-column screen: csi ? 3 l
-# SM DECSCLM Smooth scroll: csi ? 4 h
-# RM DECSCLM Jump scroll: csi ? 4 l
-# SM DECSCNM screen light backgr. csi ? 5 h
-# RM DECSCNM screen dark backgr. csi ? 5 l
-# SM DECOM move within margins: csi ? 6 h
-# RM DECOM move outside margins: csi ? 6 l
-# SM DECAWM auto right margin: csi ? 7 h
-# RM DECAWM auto right margin: csi ? 7 l
-# SM DECARM auto repeat: csi ? 8 h
-# RM DECARM auto repeat: csi ? 8 l
-# DECSASD Select active main: csi 0 $ }
-# DECSASD Select active status: csi 1 $ }
-# DECSSDT Select status none: csi 0 $ ~
-# DECSSDT Select status indic.: csi 1 $ ~
-# DECSSDT Select status host-wr: csi 2 $ ~
-# SM DECTCEM Visible cursor: csi ? 2 5 h
-# RM DECTCEM Invisible cursor: csi ? 2 5 l
-# SM DECNCRM 7 bits NCR set: csi ? 4 2 h
-# RM DECNCRM Multi or ISO latin: csi ? 4 2 l
-# DECSCL vt300 mode 8-bit ctrl: csi 6 3 " p
-# or DECSCL vt300 mode 8-bit ctrl: csi 6 3 ; 0 " p
-# DECSCL vt300 mode 7-bit ctrl: csi 6 3 ; 1 " p
-# Char. and Line attributes: csi Ps ... Ps m
-# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
-# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
-# (bq300-8: <cub1>,<cuf1>,<cuu1>,<cud1>,<dl1>,<il1> to get under 1024 --esr)
-bq300-8|Bull vt320 full 8 bits 80 columns,
- am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, civis=\233?25l,
- clear=\233H\233J, cnorm=\233?25h, cr=^M,
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cud=\233%p1%dB,
- cuf=\233%p1%dC, cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA,
- cvvis=\233?25h, dch=\233%p1%dP, dch1=\233P,
- dl=\233%p1%dM, dsl=\2331$}\2332$~\n\2330$},
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
- enacs=\E(B\E)0, flash=\233?5h$<50>\233?5l, fsl=\2330$},
- home=\233H, ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL,
- ind=\ED, is1=\E[63;2"p\E[2h,
- is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
- ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
- kdch1=\2333~, kf1=\217P, kf10=\23321~, kf11=\23323~,
- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
- kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
- kf2=\217Q, kf20=\23334~, kf3=\217R, kf4=\217S, kf6=\23317~,
- kf7=\23318~, kf8=\23319~, kf9=\23320~, kfnd=\2331~,
- khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~,
- krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3,
- lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8,
- rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l, rmcup=\233?7h,
- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
- rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\233%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\2330m\E(B, smacs=^N, smam=\233?7h,
- smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m,
- smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~,
-bq300-8rv|Bull vt320 8-bit reverse mode 80 columns,
- flash=\233?5l$<50>\233?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- use=bq300-8,
-bq300-8w|Bull vt320 8-bit 132 columns,
- cols#132, wsl#132,
- is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- rs2=\233?3h, use=bq300-8,
-bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns,
- cols#132, wsl#132,
- flash=\233?5l$<50>\233?5h,
- is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- rs2=\233?3h, use=bq300-8,
-
-# This entry is used for terminals with vt320 emulation mode
-# a 102 keys keyboard (PC scancode !) and following set-up :
-# 8 bit ISO Latin Character Set (ISO 8859-1),
-# 7 bit Control Characters,
-# 80 columns screen.
-bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns,
- kbs=^H, kdch1=\E[3~, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
- kf11=\E[29~, kf12=\E[31~, kf13@, kf14@, kf15@, kf16@, kf17@,
- kf18@, kf19@, kf2=\E[18~, kf20@, kf3=\E[19~, kf4=\E[20~,
- kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~,
- kfnd@, khlp@, khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- krdo@, kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300,
-bq300-pc-rv|Questar 303 with PC keyboard reverse mode 80 columns,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- use=bq300-pc,
-bq300-pc-w|Questar 303 with PC keyboard 132 columns terminal,
- cols#132, wsl#132,
- is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300-pc,
-bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns,
- cols#132, wsl#132,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300-pc,
-# 8 bit ISO Latin Character Set (ISO 8859-1),
-# 8 bit Control Characters,
-# 80 columns screen.
-bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns,
- kbs=^H, kdch1=\2333~, kend=\2334~, kf1=\23317~,
- kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13@, kf14@,
- kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\23318~, kf20@,
- kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
- kf7=\23324~, kf8=\23325~, kf9=\23326~, kfnd@, khlp@,
- khome=\2331~, kich1=\2332~, knp=\2336~, kpp=\2335~, krdo@,
- kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300-8,
-bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- use=bq300-8-pc,
-bq300-8-pc-w|Questar 303 with PC keyboard full 8 bits 132 columns,
- cols#132, wsl#132,
- is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300-8-pc,
-bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns,
- cols#132, wsl#132,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300-8-pc,
-
-#======================================================#
-# BULL QUESTAR 310 `VIP 7800/8800' terminals emulation #
-#======================================================#
-
-# normal mode, 8 bits, 80 columns terminal.
-# RES reset : ^[e
-# RIS reset initial state: ^[c
-# BLE bell enable ^[h
-# BLD bell disable ^[g
-# CAMS char. attr. mode set ^[[D
-# CAMR char. attr. mode reset ^[[G
-# CLR clear ^[`
-# KBU keyboard unlock (set) ^[[W
-# KBL keyboard lock (reset) ^[[X
-# CM character mode (async.) ^[k
-# NEP non echoplex mode (by host) ^[l
-# EP echoplex mode (by host) ^[m
-# IM insert mode set ^[[I
-# IM insert mode reset ^[[J
-# RMS roll mode set ^[r
-# RMR roll mode reset ^[q
-# SM78 set mode vip7800 ^[[1q
-# SD scroll up (72 lines) ^[[0s
-# SD scroll down (72 lines) ^[[1s
-# RBM block mode reset ^[[E
-# SLS status line set ^[w
-# SLR status line reset ^[v
-# SLL status line lock ^[O
-# LGS Line-graphic mode set ^[G
-# LGR Line-graphic mode reset ^[F
-# TBC tab clear (at cursor pos.) ^[[g
-# TBI tab initialize ^[[N
-# TBS tab set (at cursor pos.) ^[p
-# PDS print data space ^[[0p
-# PHD print host data ^[[3p
-# PDT print data terminator ^[[<p
-# PRES print adapter reset ^[[2p
-# SSPR multi-part. reset ^[[<>u
-# SSP0 partition 0 set ^[[00u
-# SSP1 partition n format 1 ^[[PnPnSTRINGu
-# SSP2 partition n format 2 ^[[PnPnSTRINGu
-# SSP3 partition n format 3 ^[[PnPnu
-# ATR attribute (visual)
-# blink : ^[sB
-# dim : ^[sL
-# hide (blank) : ^[sH
-# restore : ^[sR
-# inverse video : ^[sI
-# prot. : ^[sP
-# underline : ^[s_
-# reset : ^{
-#
-# This covers the vip7800 and BQ3155-vip7800
-vip|Bull Questar 3155-7800,
- am, eslok, hs, km, mc5i, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=0pjdkblamcnkqitgufvhwexj, bel=^G, blink=\EsB,
- cbt=\E[Z, clear=\E`, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E[%i%p1%03d%p2%03df, cuu1=\EA, dch1=\E[P, dim=\EsL,
- dl1=\E[M, dsl=\Ev, ed=\EJ, el=\EK,
- flash=\007$<80>\007$<80>\007, fsl=\EO, home=\EH, ht=^I,
- hts=\Ep, ich1=\E[I, ind=^J, invis=\EsH,
- is2=\E[00u\E[<>001001024080024080u\E[01u,
- is3=\Er\E[W\E`, kHOM=\EH, kLFT=\Eo, kRIT=\Eu, kbs=^H,
- kcbt=\E[Z, kclr=\E`, kctab=\E[g, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kdch1=\E[P, kdl1=\E[M, ked=\EJ,
- kel=\EK, kf1=\E0, kf10=\ET, kf11=\E\\, kf12=\E\^, kf13@, kf14@,
- kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E2, kf20@, kf21=\E1,
- kf22=\E5, kf23=\E7, kf24=\E9, kf25=\E;, kf26=\E=, kf27=\E?,
- kf28=\EQ, kf29=\ES, kf3=\E6, kf30=\EV, kf31=\E], kf32=\E_,
- kf4=\E8, kf5=\E\:, kf6=\E<, kf7=\E>, kf8=\EP, kf9=\ER,
- khome=\EH, khts=\Ep, kich1=\E[I, kil1=\E[L, kind=\E[0s,
- kll=\EH\EA, kri=\E[1s, krmir=\E[J, ktbc=\E[N, lf1=pf1,
- lf2=pf2, lf3=pf3, lf4=pf4, ll=\EH\EA, mc0=\E[0p, mc4=\E[<p,
- mc5=\E[3p, nel=^M, prot=\EsP, rev=\EsI,
- ri=\EA\EJ\EH\E[L$<10>, rmacs=\EF, rmir=\E[J, rmso=\EsR,
- rmul=\EsR, rs1=\Ec, rs2=\E[G, s0ds=\EF, s1ds=\EG,
- sgr0=\EsR\EsU\EF, smacs=\EG, smir=\E[I, smso=\EsI,
- smul=\Es_, tbc=\E[N, tsl=\Ew,
-# normal screen, 8 bits, 132 columns terminal.
-vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide,
- cols#132, wsl#132,
- is2=\E[00u\E[<>001001024132024132u\E[01u, use=vip,
-vip-H|vip7800-H|Q310-vip-H|Q310-vip-H-am|Questar 3155-vip7800 72 lines,
- lines#72,
- is2=\E[00u\E[<>001001024080072080u\E[01u, use=vip,
-vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines,
- cols#132, lines#72, wsl#132,
- is2=\E[00u\E[<>001001024132072132u\E[01u, use=vip,
-
-#### Chromatics
-#
-
-# I have put the long strings in <smcup>/<rmcup>. Ti sets up a window
-# that is smaller than the screen, and puts up a warning message
-# outside the window. Te erases the warning message, puts the
-# window back to be the whole screen, and puts the cursor at just
-# below the small window. I defined <cnorm> and <civis> to really turn
-# the cursor on and off, but I have taken this out since I don't
-# like the cursor being turned off when vi exits.
-cg7900|chromatics|chromatics 7900,
- am,
- cols#80, lines#40,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^],
- cup=\001M%p2%d\,%p1%d\,, cuu1=^K, dch1=^A<1, dl1=^A<2,
- ed=^Al, el=^A`, home=^\, ich1=^A>1, il1=^A>2, ind=^J, ll=^A|,
- rmcup=\001W0\,40\,85\,48\,\014\001W0\,0\,85\,48\,\001M0\,40\,,
- rmso=\001C1\,\001c2\,,
- smcup=\001P0\001O1\001R1\001C4\,\001c0\,\014\001M0\,42\,WARNING DOUBLE ENTER ESCAPE and \025\001C1\,\001c2\,\001W0\,0\,79\,39\,,
- smso=\001C4\,\001c7\,, uc=\001\001_\001\0,
-
-#### Computer Automation
-#
-
-ca22851|computer automation 22851,
- am,
- cols#80, lines#24,
- bel=^G, clear=\014$<8>, cr=^M, cub1=^U, cud1=^J, cuf1=^I,
- cup=\002%i%p1%c%p2%c, cuu1=^V, ed=^\, el=^], home=^^, ind=^J,
- kcub1=^U, kcud1=^W, kcuu1=^V, khome=^^,
-
-#### Cybernex
-#
-
-# This entry has correct padding and the undocumented "ri" capability
-cyb83|xl83|cybernex xl-83,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\014$<62>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
- cup=\027%p1%{32}%+%c%p2%{32}%+%c, cuu1=^N,
- ed=\020$<62>, el=\017$<3>, home=^K, ind=^J, kcub1=^H,
- kcud1=^J, kcuf1=^I, kcuu1=^N, ri=^N,
-# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr)
-cyb110|mdl110|cybernex mdl-110,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\030$<70>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
- dch1=\016A\036$<3.5>, dl1=\016A\016\036$<40>,
- ed=\016@\026$<6>, el=\016@\026$<145>, home=^Y,
- ht=\011$<43>, ich1=\016A\035$<3.5>,
- il1=\016A\016\035$<65>, ind=^J, rmso=^NG, smso=^NF,
-
-#### Datapoint
-#
-# Datapoint is gone. They used to be headquartered in Texas.
-# They created ARCnet, an Ethernet competitor that flourished for a while
-# in the early 1980s before 3COM got wise and cut its prices. The service
-# side of Datapoint still lives (1995) in the form of Intelogic Trace.
-#
-
-dp3360|datapoint|datapoint 3360,
- OTbs, am,
- cols#82, lines#25,
- bel=^G, clear=^]^_, cr=^M, cub1=^H, cud1=^J, cuf1=^X, cuu1=^Z,
- ed=^_, el=^^, home=^], ind=^J,
-
-# From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997
-# The Datapoint 8242 Workstation was sold at least between 1985
-# and 1989. To make the terminal work with this entry, press
-# CONTROL-INT-INT to take the terminal off-line, and type (opt).
-# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO
-# CR/LF off. Use control-shift-[] as escape key, control-I as tab,
-# shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in
-# fact unusable because the strings sent by the terminal conflict
-# with other keys).
-# The terminal is capable of displaying "box draw" characters.
-# For each graphic character you must send 2 ESC's (\E\E) followed
-# by a control character as follows:
-# character meaning
-# ========= =======
-# ctrl-E top tee
-# ctrl-F right tee
-# ctrl-G bottom tee
-# ctrl-H left tee
-# ctrl-I cross
-# ctrl-J top left corner
-# ctrl-K top right corner
-# ctrl-L bottom left corner
-# ctrl-M bottom right corner
-# ctrl-N horizontal line
-# ctrl-O vertical line
-# Unfortunately this cannot be fitted into the termcap/terminfo
-# description scheme.
-dp8242|datapoint 8242,
- msgr,
- cols#80, lines#25,
- bel=^G, civis=^Y, clear=\025\E\004\027\030, cnorm=^X,
- cr=^M, cub1=^H, cud1=^J,
- cup=\011%p2%'\0'%+%c%p1%'\0'%+%c, dl1=\E^Z, ed=^W, el=^V,
- home=^U, ht=^I, il1=\E^T, ind=^C,
- is1=\E\014\E\016\0\230\0\317\025\027\030\E\004,
- kbs=^H, kcub1=^D, kcud1=^B, kcuf1=^F, kcuu1=^E, kf1=^G\Ee,
- kf10=\EK\Ea, kf2=^I\Ed, kf3=^J\Ec, kf4=^J\Eb, kf5=^S\Ea,
- kf6=\EO\Ee, kf7=\EN\Ed, kf8=\EM\Ec, kf9=\EL\Eb, nel=^M^J,
- rep=\E\023%p1%c%p2%c, ri=^K, rmso=\E^D, rmul=\E^D,
- rs1=\E\014\E\016\0\230\0\317\025\027\030\E\004,
- smso=\E^E, smul=\E^F,
- wind=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'\0'%+%c\025,
-
-#### DEC terminals (Obsolete types: DECwriter and vt40/42/50)
-#
-# These entries are DEC's official terminfos for its older terminals.
-# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
-# Engineering for more information. Updated terminfos and termcaps
-# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
-#
-
-gt40|dec gt40,
- OTbs, os,
- cols#72, lines#30,
- bel=^G, cr=^M, cub1=^H, cud1=^J,
-gt42|dec gt42,
- OTbs, os,
- cols#72, lines#40,
- bel=^G, cr=^M, cub1=^H, cud1=^J,
-vt50|dec vt50,
- OTbs,
- cols#80, lines#12,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cuu1=\EA, ed=\EJ, el=\EK, ht=^I, ind=^J,
-vt50h|dec vt50h,
- OTbs,
- cols#80, lines#12,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, ht=^I, ind=^J, ri=\EI,
-# (vt61: there's a BSD termcap that claims <dl1=\EPd>, <il1=\EPf.> <kbs=^H>)
-vt61|vt-61|vt61.5|dec vt61,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ$<120>, cr=\r$<20>, cub1=^H, cud1=^J,
- cuf1=\EC$<20>, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>,
- cuu1=\EA$<20>, ed=\EJ$<120>, el=\EK$<70>, ht=^I,
- ind=\n$<20>, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- ri=\E$<20>I,
-
-# The gigi does standout with red!
-# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr)
-gigi|vk100|dec gigi graphics terminal,
- OTbs, am, xenl,
- cols#84, lines#24,
- bel=^G, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
- el=\E[K, ht=^I, ind=^J,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7;31m,
- smul=\E[4m,
-
-# DEC PRO-350 console (VT220-style). The 350 was DEC's attempt to produce
-# a PC differentiated from the IBM clones. It was a total, ludicrous,
-# grossly-overpriced failure (among other things, DEC's OS didn't include
-# a format program, so you had to buy pre-formatted floppies from DEC at
-# a hefty premium!).
-pro350|decpro|dec pro console,
- OTbs,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- clear=\EH\EJ, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH, ht=^I, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\EE, kf1=\EF, kf2=\EG, kf3=\EH, kf4=\EI,
- kf5=\EJ, kf6=\Ei, kf7=\Ej, khome=\EH, ri=\EI, rmacs=\EG,
- rmso=\E^N, rmul=\E^C, smacs=\EF, smso=\E^H, smul=\E^D,
-
-dw1|decwriter I,
- OTbs, hc, os,
- cols#72,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J,
-dw2|decwriter|dw|decwriter II,
- OTbs, hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
-# \E(B Use U.S. character set (otherwise # => british pound !)
-# \E[20l Disable "linefeed newline" mode (else puts \r after \n,\f,\v)
-# \E[w 10 char/in pitch
-# \E[1;132 full width horizontal margins
-# \E[2g clear all tab stops
-# \E[z 6 lines/in
-# \E[66t 66 lines/page (for \f)
-# \E[1;66r full vertical page can be printed
-# \E[4g clear vertical tab stops
-# \E> disable alternate keypad mode (so it transmits numbers!)
-# \E[%i%p1%du set tab stop at column %d (origin == 1)
-# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is
-# a tab stop)
-#
-# The dw3 does standout with wide characters.
-#
-dw3|la120|decwriter III,
- OTbs, hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J,
- is1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>,
- is2=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r,
- kbs=^H, rmso=\E[w, sgr0=\E[w, smso=\E[6w,
-dw4|decwriter IV,
- OTbs, am, hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, is2=\Ec, kbs=^H,
- kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
-
-# These aren't official
-ln03|dec ln03 laser printer,
- hc,
- cols#80, lines#66,
- bel=^G, cr=^M, cud1=^J, hd=\EK, ht=^I, hu=\EL, ind=^J, nel=^M^J,
- rmso=\E[22m, rmul=\E[24m, sgr0=\E[m, smso=\E[1m,
- smul=\E[4m,
-ln03-w|dec ln03 laser printer 132 cols,
- cols#132,
- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
- kcud1=^J, nel=^M^J, use=ln03,
-
-#### Delta Data (dd)
-#
-
-# Untested. The cup sequence is hairy enough that it probably needs work.
-# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'.
-# There are BSD-derived termcap entries floating around for this puppy
-# that are *certainly* wrong.
-delta|dd5000|delta data 5000,
- OTbs, am,
- cols#80, lines#27,
- bel=^G, clear=^NR, cub1=^H, cud1=^J, cuf1=^Y,
- cup=\017%p1%p1%{16}%m%{2}%*%-%{57}%+%c%p2%p2%{16}%m%{2}%*%-%{57}%+%c,
- cuu1=^Z, dch1=^NV, el=^NU, home=^NQ, ind=^J,
-
-#### Digital Data Research (ddr)
-#
-
-# (ddr: I added <rmam>/<smam> based on the init string -- esr)
-ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator,
- OTbs, am, xenl,
- cols#80, it#8, lines#24, vt#3,
- blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[H\E[2J$<50/>, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
- cud1=^J, cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
- cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
- ht=^I, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
- rf=/usr/share/tabset/vt100, ri=\EM$<5/>, rmam=\E[7l,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smam=\E[7l, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m$<2/>,
-
-#### Evans & Sutherland
-#
-
-# Jon Leech <leech@cs.unc.edu> tells us:
-# The ps300 was the Evans & Sutherland Picture System 300, a high
-# performance 3D vector graphics system with a bunch of specialized hardware.
-# Approximate date of release was 1982 (early 80s, anyway), and it had several
-# evolutions including (limited) color versions such as the PS330C. PS300s
-# were effectively obsolete by the late 80s, replaced by raster graphics
-# systems, although specialized applications like molecular modelling
-# hung onto them for a while longer. AFAIK all E&S vector graphics systems
-# are out of production, though of course E&S is very much alive (in 1996).
-# (ps300: changed ":pt@:" to "it@" -- esr)
-#
-ps300|Picture System 300,
- xt,
- it@,
- rmso@, rmul@, smso@, smul@, use=vt100,
-
-#### General Electric (ge)
-#
-
-terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200,
- OTbs, hc, os,
- cols#120,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-
-#### Heathkit/Zenith
-#
-
-# Here is a description of the H19 DIP switches:
-#
-# S401
-# 0-3 = baud rate as follows:
-#
-# 3 2 1 0
-# --- --- --- ---
-# 0 0 1 1 300 baud
-# 0 1 0 1 1200 baud
-# 1 0 0 0 2400 baud
-# 1 0 1 0 4800 baud
-# 1 1 0 0 9600 baud
-# 1 1 0 1 19.2K baud
-#
-# 4 = parity (0 = no parity)
-# 5 = even parity (0 = odd parity)
-# 6 = stick parity (0 = normal parity)
-# 7 = full duplex (0 = half duplex)
-#
-# S402
-# 0 = block cursor (0 = underscore cursor)
-# 1 = no key click (0 = keyclick)
-# 2 = wrap at end of line (0 = no wrap)
-# 3 = auto LF on CR (0 = no LF on CR)
-# 4 = auto CR on LF (0 = no CR on LF)
-# 5 = ANSI mode (0 = VT52 mode)
-# 6 = keypad shifted (0 = keypad unshifted)
-# 7 = 50Hz refresh (1 = 60Hz refresh)
-#
-# Factory Default settings are as follows:
-# 7 6 5 4 3 2 1 0
-# S401 1 0 0 0 1 1 0 0
-# S402 0 0 0 0 0 0 0 0
-# (h19: I added <rmam>/<smam> based on the init string;
-# also added empty <acsc> to suppress a tic warning -- esr)
-h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode,
- OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=, bel=^G, clear=\E[2J, cnorm=\E[>4l, cr=^M, cub1=^H,
- cud1=\E[1B, cuf1=\E[1C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[1A, cvvis=\E[>4h, dch1=\E[1P, dl1=\E[1M$<1*>,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[1L$<1*>, ind=^J,
- is2=\E<\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m\E[?7h,
- kbs=^H, kcub1=\E[1D, kcud1=\E[1B, kcuf1=\E[1C, kcuu1=\E[1A,
- kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP,
- kf7=\EOQ, kf8=\EOR, khome=\E[H, lf6=blue, lf7=red, lf8=white,
- ri=\EM, rmacs=\E[11m, rmam=\E[?7l, rmir=\E[4l, rmso=\E[m,
- smacs=\E[10m, smam=\E[?7h, smir=\E[4h, smso=\E[7m,
-h19-bs|heathkit w/keypad shifted,
- rmkx=\Eu, smkx=\Et, use=h19-b,
-h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
- rmkx=\Eu, smkx=\Et, use=h19-u,
-# (h19: merged in <ip> from BSDI hp19-e entry>;
-# also added empty <acsc> to suppress a tic warning --esr)
-# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998
-# Tim tells us that:
-# I have an old Zenith-19 terminal at home that still gets a lot of use.
-# This terminal suffers from the same famous insert-mode padding lossage
-# that has been acknowledged for the Z29 terminal. Emacs is nearly
-# unusable on this box, since even a half-scroll up or down the window
-# causes flaming terminal death.
-#
-# On the Z19, the only way I have found around this problem is to remove
-# the :al: and :dl: entries entirely. No amount of extra padding will
-# help (I have tried up to 20000). Removing <il1=\EL$> and <dl1=\EM$>
-# makes Emacs a little slower, but it remains in the land of the living.
-# Big win.
-h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
- OTbs, am, eslok, hs, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=, bel=^G, clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- cvvis=\Ex4, dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH,
- ht=^I, ind=^J, ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue,
- lf7=red, lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
- smacs=\EF, smir=\E@, smso=\Ep,
- tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
-h19-u|heathkit with underscore cursor,
- cnorm@, cvvis@, use=h19-b,
-h19-g|h19g|heathkit w/block cursor,
- cnorm=\Ex4, use=h19-b,
-alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
- lines#60,
- dl1=\EM, il1=\EL, use=h19,
-
-# The major problem with the Z29 is that it requires more padding than the Z19.
-#
-# The problem with declaring an H19 to be synonymous with a Z29 is that
-# it needs more padding. It especially loses if a program attempts
-# to put the Z29 into insert mode and insert text at 9600 baud. It
-# even loses worse if the program attempts to insert tabs at 9600
-# baud. Adding padding to text that is inserted loses because in
-# order to make the Z29 not die, one must add so much padding that
-# whenever the program tries to use insert mode, the effective
-# rate is about 110 baud.
-#
-# What program would want to put the terminal into insert mode
-# and shove stuff at it at 9600 baud you ask?
-#
-# Emacs. Emacs seems to want to do the mathematically optimal
-# thing in doing a redisplay rather than the practical thing.
-# When it is about to output a line on top of a line that is
-# already on the screen, instead of just killing to the end of
-# the line and outputting the new line, it compares the old line
-# and the new line and if there are any similarities, it
-# constructs the new line by deleting the text on the old line
-# on the terminal that is already there and then inserting new
-# text into the line to transform it into the new line that is
-# to be displayed. The Z29 does not react kindly to this.
-#
-# But don't cry for too long.... There is a solution. You can make
-# a termcap entry for the Z29 that says the Z29 has no insert mode.
-# Then Emacs cannot use it. "Oh, no, but now inserting into a
-# line will be really slow", you say. Well there is a sort of a
-# solution to that too. There is an insert character option on
-# the Z29 that will insert one character. Unfortunately, it
-# involves putting the terminal into ansi mode, inserting the
-# character, and changing it back to H19 mode. All this takes 12
-# characters. Pretty expensive to insert one character, but it
-# works. Either Emacs doesn't try to use its inserting hack when
-# it's only given an insert character ability or the Z29 doesn't
-# require padding with this (the former is probably more likely,
-# but I haven't checked it out).
-# (z29: added empty <acsc> to suppress a tic warning, merged in
-# status line capabilities from BRL entry --esr)
-z29|zenith29|z29b|zenith z29b,
- OTbs, OTpt, am, eslok, hs, mir, msgr,
- OTkn#10, cols#80, lines#24,
- OTbc=\ED, acsc=, bel=^G, cbt=\E-, clear=\EE$<14>, cnorm=\Ey4,
- cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E$<1>A,
- cvvis=\Ex4, dch1=\EN$<0.1*>, dl1=\EM$<1/>, dsl=\Ey1,
- ed=\EJ$<14>, el=\EK$<1>, fsl=\Ek\Ey5, home=\EH, ht=^I,
- ich1=\E<\E[1@\E[?2h$<1>, il1=\EL$<1/>, ind=\n$<2>,
- is2=\E<\E[?2h\Ev, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
- lf0=home, ri=\EI$<2/>, rmacs=\EF, rmir=\EO, rmso=\Eq,
- rmul=\Es0, smacs=\EG, smir=\E@, smso=\Ep, smul=\Es8,
- tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
-# z29 in ansi mode. Assumes that the cursor is in the correct state, and that
-# the world is stable. <rs1> causes the terminal to be reset to the state
-# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore
-# cursor, bc -> block cursor.
-# From: Mike Meyers
-# (z29a: replaced nonexistent <if=/usr/share/tabset/zenith29> befause <hts>
-# looks vt100-compatible -- esr)
-z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode,
- OTbs, OTpt, am, eslok, hs, mir, msgr,
- OTkn#10, cols#80, it#8, lines#24,
- OTbc=\ED, bel=^G, blink=\E[5m, bold=\E[2m, clear=\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[1P, dim=\E[2m, dl=\E[%p1%dM,
- dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, home=\E[H,
- ht=^I, hts=\EH, if=/usr/share/tabset/vt100, il=\E[%p1%dL,
- ind=\ED, kbs=^H, kclr=\E[J, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, kf0=\E[~, kf1=\EOS,
- kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
- kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7,
- nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, rmcup=\E[?7h,
- rmso=\E[m, rmul=\E[m,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m,
- sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K,
-z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyckick and underscore cursor,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m,
- use=z29a,
-z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m\E[11m,
- use=z29a,
-z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m\E[11m,
- use=z29a,
-# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995
-z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode,
- am, eslok, hs, mc5i, mir, msgr, xon,
- cols#80, lines#24,
- acsc=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, cbt=\E[1Z, civis=\E[>5h,
- clear=\E[2J\E[H, cnorm=\E[>5l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[1M, dsl=\E[>1l, ed=\E[0J, el=\E[0K, el1=\E[1K,
- fsl=\E[u, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[1L,
- ind=^J, is2=\E<\E[>1;3;5;6;7l\E[0m\E[2J, ka1=\EOw,
- ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ked=\E[J, kf1=\EOS,
- kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
- kf8=\EOR, kf9=\EOX, khlp=\E[~, khome=\E[H, ll=\E[24;1H,
- mc0=\E[?19h\E[i, mc4=\E[4i, mc5=\E[5i, rc=\E[u, rev=\E[7m,
- rmacs=\E(B, rmir=\E[4l, rmkx=\E[>7l, rmso=\E[0m,
- rmul=\E[0m, rs2=\E<\Ec\0, sc=\E[s, sgr0=\E[0m, smacs=\E(0,
- smir=\E[4h, smkx=\E[>7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[s\E[>1h\E[25;%i%p1%dH,
-
-# From: Brad Brahms <Brahms@USC-ECLC>
-z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor,
- cnorm=\Ey4\Em70, cvvis=\Ex4\Em71, use=z100bw,
-# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr)
-z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
- OTbs, OTpt, mir, msgr,
- OTkn#10, cols#80, it#8, lines#24,
- acsc=, clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>,
- cuu1=\EA, cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>,
- ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES,
- kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
- kf9=\EOI, khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
- smacs=\EF, smir=\E@, smso=\Ep,
-p19|h19-b with il1/dl1,
- dl1=\EM$<2*/>, il1=\EL$<2*/>, use=h19-b,
-# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
-# (ztx: removed duplicate :sr: -- esr)
-ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11,
- OTbs, am, eslok, hs,
- cols#80, it#8, lines#24,
- clear=\EE, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
- dsl=\Ey1, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I,
- il1=\EL, is2=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\ES,
- kf1=\EB, kf2=\EU, kf3=\EV, kf4=\EW, kf5=\EP, kf6=\EQ, kf7=\ER,
- ri=\EI, rmso=\Eq, rmul=\Eq, smso=\Es5, smul=\Es2,
- tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
-
-#### IMS International (ims)
-#
-# There was a company called IMS International located in Carson City,
-# Nevada, that flourished from the mid-70s to mid-80s. They made S-100
-# bus/Z80 hardware and a line of terminals called Ultimas.
-#
-
-# From: Erik Fair <fair@ucbarpa.berkeley.edu> Sun Oct 27 07:21:05 1985
-ims950-b|bare ims950 no init string,
- is2@, use=ims950,
-# (ims950: removed obsolete ":ko@:" -- esr)
-ims950|ims televideo 950 emulation,
- xenl@,
- flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950,
-# (ims950-rv: removed obsolete ":ko@:" -- esr)
-ims950-rv|ims tvi950 rev video,
- xenl@,
- flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950-rv,
-ims-ansi|ultima2|ultimaII|IMS Ultima II,
- OTbs, am,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J, cub1=^H, cud1=\ED,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\EM, ed=\E[0J, el=\E[0K,
- ht=^I, if=/usr/share/tabset/vt100,
- is2=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, ri=\EM,
- rmso=\E[m\E[1m, rmul=\E[m\E[1m, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m,
-
-#### Intertec Data Systems
-#
-# I think this company is long dead as of 1995. They made an early CP/M
-# micro called the "Intertec Superbrain" that was moderately popular,
-# then sank out of sight.
-#
-
-superbrain|intertec superbrain,
- OTbs, am, bw,
- cols#80, lines#24,
- OTbc=^U, bel=^G, clear=\014$<5*>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=^K,
- ed=\E~k<10*>, el=\E~K$<15>, ht=^I, ind=^J, kcub1=^U,
- kcud1=^J, kcuf1=^F, kcuu1=^K, rmcup=^L, smcup=^L,
-# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>,
-# rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM,
-# and the reverse is actually true. Try it. -- esr)
-intertube|intertec|Intertec InterTube,
- OTbs, am,
- cols#80, lines#25,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<50>, cuu1=^Z, home=^A,
- ind=^J, rmso=\E0@, smso=\E0P,
-# The intertube 2 has the "full duplex" problem like the tek 4025: if you
-# are typing and a command comes in, the keystrokes you type get interspersed
-# with the command and it messes up
-intertube2|intertec data systems intertube 2,
- OTbs,
- cup=\016%p1%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
- el=\EK, hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c,
- ll=^K^X\r, vpa=\013%p1%c, use=intertube,
-
-#### Ithaca Intersystems
-#
-# This company made S100-bus personal computers long ago in the pre-IBM-PC
-# past. They used to be reachable at:
-#
-# Ithaca Intersystems
-# 1650 Hanshaw Road
-# Ithaca, New York 14850
-#
-# However, the outfit went bankrupt years ago.
-#
-
-# The Graphos III was a color graphics terminal from Ithaca Intersystems.
-# These entries were written (originally in termcap syntax) by Brian Yandell
-# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the
-# University of Wisconsin.
-
-# (graphos: removed obsolete and syntactically incorrect :kn=4:,
-# removed <if=/usr/share/tabset/init.graphos> and
-# <rf=/usr/share/tabset/init.graphos> no such file & no <hts> -- esr)
-graphos|graphos III,
- am, mir,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J, cnorm=\Ez56;2;0;0z\Ez73z\Ez4;1;1z,
- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\Ez4;2;1z\Ez56;2;80;24z, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, nel=^M\ED, rc=\E8, ri=\EM, rmdc=\E[4l,
- rmir=\E[4l, rmso=\E[m, sc=\E7, sgr0=\E[m, smdc=\E[4h,
- smir=\E[4h, smso=\E[7m,
-graphos-30|graphos III with 30 lines,
- lines#30,
- cvvis=\Ez4;2;1z\Ez56;2;80;30z, use=graphos,
-
-#### Modgraph
-#
-# These people used to be reachable at:
-#
-# Modgraph, Inc
-# 1393 Main Street,
-# Waltham, MA 02154
-# Vox: (617)-890-5796.
-#
-# However, if you call that number today you'll get an insurance company.
-# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated
-# 26 Feb 1997 that says:
-#
-# Modgraph GX-1000, replaced by GX-2000. Both are out of production, have been
-# for ~7 years. Modgraph still in business. Products are rugged laptop and
-# portable PC's and specialized CRT and LCD monitors (rugged, rack-mount
-# panel-mount etc). I can be emailed at sonfour@aol.com
-#
-# Peter D. Smith <pdsmith@nbbn.com> notes that his modgraph manual was
-# dated 1984. According to the manual, it featured Tek 4010/4014
-# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard.
-#
-
-modgraph|mod24|modgraph terminal emulating vt100,
- xenl@,
- cols#80, lines#24,
- cvvis=\E\^9;0s\E\^7;1s,
- is2=\E\^9;0s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s\E\^11;81s\E\^11;89s,
- rf@, ri=\EM\E[K$<5/>, use=vt100,
-# The GX-1000 manual is dated 1984. This looks rather like a VT-52.
-modgraph2|modgraph gx-1000 80x24 with keypad not enabled,
- am, da, db,
- cols#80, it#8, lines#24,
- clear=\EH\EJ$<50/>, cub1=^H, cuf1=\EC$<2/>,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5/>, cuu1=\EA$<2/>,
- ed=\EJ$<50/>, el=\EK$<3/>, ht=^I,
- is2=\E<\E\^5;2s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s\E\^11;81s\E\^11;89s\E\^12;0s\E\^14;2s\E\^15;9s\E\^25;1s\E\^9;1s\E\^27;1,
- ri=\EI$<5/>,
-#
-# Modgraph from Nancy L. Cider <nancyc@brl-tbd>
-# BUG NOTE from Barbara E. Ringers <barb@brl-tbd>:
-# If we set TERM=vt100, and set the Modgraph screen to 24 lines, setting a
-# mark and using delete-to-killbuffer work correctly. However, we would
-# like normal mode of operation to be using a Modgraph with 48 line setting.
-# If we set TERM=mod (which is a valid entry in termcap with 48 lines)
-# the setting mark and delete-to-killbuffer results in the deletion of only
-# the line the mark is set on.
-# We've discovered that the delete-to-killbuffer works correctly
-# with TERM=mod and screen set to 80x48 but it's not obvious. Only
-# the first line disappears but a ctrl-l shows that it did work
-# correctly.
-modgraph48|mod|Modgraph w/48 lines,
- OTbs, OTpt, am, xenl,
- cols#80, it#8, lines#48, vt#3,
- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q,
- home=\E[H, ht=^I, is2=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h,
- 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,
- rs1=\E=\E[0q\E>, sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m,
-
-#### Morrow Designs
-#
-# This was George Morrow's company. They started in the late 1970s making
-# S100-bus machines. They used to be reachable at:
-#
-# Morrow
-# 600 McCormick St.
-# San Leandro, CA 94577
-#
-# but they're long gone now (1995).
-#
-
-# The mt70 terminal was shipped with the Morrow MD-3 microcomputer.
-# Jeff's specimen was dated June 1984.
-# From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995
-mt70|mt-70|Morrow MD-70; native Morrow mode,
- am, mir, msgr, xon,
- cols#80, it#8, lines#24,
- acsc=+z\,{-x.yOi`|jGkFlEmDnHqJtLuKvNwMxI, bel=^G,
- cbt=\EI, civis=\E"0, clear=^Z, cnorm=\E"2, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<1>,
- cuu1=^K, dch1=\EW, dim=\EG2, dl1=\ER, ed=\EY, el=\ET$<10>,
- flash=\EK1$<200>\EK0, home=^^, ht=^I, ich1=\EQ, il1=\EE,
- ind=^J, invis@, is1=\E"2\EG0\E], kbs=^H, kcbt=^A^Z\r,
- kclr=^An\r, kcub1=^AL\r, kcud1=^AK\r, kcuf1=^AM\r,
- kcuu1=^AJ\r, kdch1=\177, kf1=^A@\r, kf10=^AI\r, kf11=^A`\r,
- kf12=^Aa\r, kf13=^Ab\r, kf14=^Ac\r, kf15=^Ad\r, kf16=^Ae\r,
- kf17=^Af\r, kf18=^Ag\r, kf19=^Ah\r, kf2=^AA\r, kf20=^Ai\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khlp=^AO\r, khome=^AN\r, nel=^_,
- rmacs=\E%%, rmcup=, smacs=\E$, smcup=\E"2\EG0\E],
- smul=\EG1, tbc=\E0, use=adm+sgr,
-
-#### Motorola
-#
-
-# Motorola EXORterm 155 from {decvax, ihnp4}!philabs!sbcs!megad!seth via BRL
-# (Seth H Zirin)
-ex155|Motorola Exorterm 155,
- OTbs, am, bw,
- OTkn#5, OTug#1, cols#80, lines#24,
- cbt=\E[, clear=\EX, cud1=\EB, cuf1=\ED,
- cup=\EE%p1%{32}%+%c%p2%{32}%+%c, ed=\ET, el=\EU,
- home=\E@, ht=\EZ, kbs=^H, kcbt=\E[, kclr=\EX, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, ked=\ET, kel=\EU, khome=\E@,
- rmso=\Ec\ED, rmul=\Eg\ED, smso=\Eb\ED, smul=\Ef\ED,
-
-#### Omron
-#
-# This company is still around in 1995, manufacturing point-of-sale systems.
-
-omron|Omron 8025AG,
- OTbs, am, da, db,
- cols#80, lines#24,
- bel=^G, clear=\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, cuu1=\EA,
- cvvis=\EN, dch1=\EP, dl1=\EM, ed=\ER, el=\EK, home=\EH,
- il1=\EL, ind=\ES, ri=\ET, rmso=\E4, smso=\Ef,
-
-#### Ramtek
-#
-# Ramtek was a vendor of high-end graphics terminals around 1979-1983; they
-# were competition for things like the Tektronics 4025.
-#
-
-# Ramtek 6221 from BRL, probably by Doug Gwyn
-# The following SET-UP modes are assumed for normal operation:
-# UNDERLINE_CURSOR ANSI_MODE AUTO_XON/XOFF_ON
-# NEWLINE_OFF 80_COLUMNS
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements; I recommend
-# SMOOTH_SCROLL AUTO_REPEAT_ON 3_#_SHIFTED WRAP_AROUND_ON
-# Hardware tabs are assumed to be every 8 columns; they can be set up by the
-# "reset", "tset", or "tabs" utilities (use rt6221-w, 160 columns, for this).
-# Note that the Control-E key is useless on this brain-damaged terminal. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-rt6221|Ramtek 6221 80x24,
- OTbs, OTpt, msgr, xon,
- OTkn#4, cols#80, it#8, lines#24, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[>5l,
- clear=\E[1;1H\E[J, cnorm=\E[>5h\E[>9h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[>7h\E[>9l, ed=\E[J, el=\E[K, home=\E[1;1H, ht=^I,
- hts=\EH, ind=^J, is2=\E)0, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf0=\EOP, kf1=\EOQ, kf2=\EOR,
- kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3, lf3=PF4, ll=\E[24;1H,
- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmkx=\E>,
- rmso=\E[m, rmul=\E[m,
- rs1=\E[1w\E[>37m\E[>39m\E[1v\E[20l\E[?3l\E[?6l\E[>5h\E[>6h\E[>7h\E[>8l\E[>9h\E[>10l\E[1;24r\E[m\E[q\E(B\017\E)0\E#5\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)].
-rt6221-w|Ramtek 6221 160x48,
- cols#160, lines#48,
- ll=\E[48;1H, use=rt6221,
-
-#### RCA
-#
-
-# RCA VP3301 or VP3501
-rca|rca vp3301/vp3501,
- OTbs,
- cols#40, lines#24,
- clear=^L, cuf1=^U, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, home=^Z, rmso=\E\ES0, smso=\E\ES1,
-
-
-#### Selanar
-#
-
-# Selanar HiREZ-100 from BRL, probably by Doug Gwyn
-# The following SET-UP modes are assumed for normal operation:
-# SET_DEFAULT_TABS 48_LINES 80_COLUMNS
-# ONLINE ANSI CURSOR_VISIBLE
-# VT102_AUTO_WRAP_ON VT102_NEWLINE_OFF VT102_MONITOR_MODE_OFF
-# LOCAL_ECHO_OFF US_CHAR_SET WPS_TERMINAL_DISABLED
-# CPU_AUTO_XON/XOFF_ENABLED PRINT_FULL_SCREEN
-# For use with graphics software, all graphics modes should be set to factory
-# default. Other SET-UP modes may be set for operator convenience or
-# communication requirements. No delays are specified; use "stty ixon -ixany"
-# to enable DC3/DC1 flow control!
-# I commented out the scrolling capabilities since they are too slow.
-hirez100|Selanar HiREZ-100,
- OTbs, OTpt, mir, msgr, xon,
- OTkn#4, cols#80, it#8, lines#48, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- hts=\EH, il=\E[%p1%dL, il1=\E[L, is2=\E<\E)0, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP,
- kf1=\EOQ, kf2=\EOR, kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3,
- lf3=PF4, ll=\E[48H, mc0=\E[i, mc4=\E[4i\E[?4i,
- mc5=\E[?5i\E[5i, nel=\EE, rc=\E8, rev=\E[7m, rmacs=^O,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;19l\E[r\E[m\E(B\017\E)0\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-hirez100-w|Selanar HiREZ-100 in 132-column mode,
- cols#132, use=hirez100,
-
-#### Signetics
-#
-
-# From University of Wisconsin
-vsc|Signetics Vsc Video driver by RMC,
- am, msgr,
- cols#80, it#8, lines#26,
- clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rev=^_\s,
- rmso=^_!, rmul=^_#, sgr0=^_!, smso=^_\s, smul=^_",
-
-#### Soroc
-#
-# Alan Frisbie <frisbie@flying-disk.com> writes:
-#
-# As you may recall, the Soroc logo consisted of their name,
-# with the letter "S" superimposed over an odd design. This
-# consisted of a circle with a slightly smaller 15 degree (approx.)
-# wedge with rounded corners inside it. The color was sort of
-# a metallic gold/yellow.
-#
-# If I had been more of a beer drinker it might have been obvious
-# to me, but it took a clue from their service department to make
-# me exclaim, "Of course!" The circular object was the top of
-# a beer can (the old removable pop-top style) and "Soroc" was an
-# anagram for "Coors".
-#
-# I can just imagine the founders of the company sitting around
-# one evening, tossing back a few and trying to decide what to
-# call their new company and what to use for a logo.
-#
-
-# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr)
-soroc120|iq120|soroc|soroc iq120,
- clear=\E*$<2>, cud1=^J, ed=\EY, el=\ET, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, use=adm3a,
-soroc140|iq140|soroc iq140,
- OTbs, am, mir,
- cols#80, lines#24,
- bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\Ew,
- dl1=\Er$<.7*>, ed=\Ey, el=\Et, home=^^, il1=\Ee$<1*>, ind=^J,
- kbs=^H, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A@\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, ll=^^^K, rmir=\E8,
- rmso=\E\177, rmul=\E^A, smir=\E9, smso=\E\177, smul=\E^A,
-
-#### Southwest Technical Products
-#
-# These guys made an early personal micro called the M6800.
-# The ct82 was probably its console terminal.
-#
-
-# (swtp: removed obsolete ":bc=^D:" -- esr)
-swtp|ct82|southwest technical products ct82,
- am,
- cols#82, lines#20,
- bel=^G, clear=^L, cr=^M, cub1=^D, cud1=^J, cuf1=^S,
- cup=\013%p2%c%p1%c, cuu1=^A, dch1=^\^H, dl1=^Z, ed=^V, el=^F,
- home=^P, ich1=^\^X, il1=^\^Y, ind=^N,
- is2=\034\022\036\023\036\004\035\027\011\023\036\035\036\017\035\027\022\011,
- ll=^C, ri=^O, rmso=^^^F, smso=^^^V,
-
-#### Synertek
-#
-# Bob Manson <manson@pattyr.acs.ohio-state.edu> writes (28 Apr 1995):
-#
-# Synertek used to make ICs, various 6502-based single-board process
-# control and hobbyist computers, and assorted peripherals including a
-# series of small inexpensive terminals (I think they were one of the
-# first to have a "terminal-on-a-keyboard", where the terminal itself
-# was only slightly larger than the keyboard).
-#
-# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40
-# was a 40x24 terminal that could connect to a standard TV through a
-# video modulator. The KTM-2/80 was the 80-column version (the 2/40
-# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM).
-# I have a KTM-2/80 still in working order. The KTM-2s had fully
-# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program
-# ROM and 2 ROMs as character generators. They were incredibly simple,
-# and I've never had any problems with mine (witness the fact that mine
-# was made in 1981 and is still working great... I've blown the video
-# output transistor a couple of times, but it's a 2N2222 :-)
-#
-# The KTM-3 (which is what is listed in the terminfo file) was their
-# attempt at putting a KTM-2 in a box (and some models came with a
-# CRT). It wasn't much different from the KTM-2 hardware-wise, but the
-# control and escape sequences are very different. The KTM-3 was always
-# real broken, at least according to the folks I've talked to about it.
-#
-# The padding in the entry is probably off--these terminals were very
-# slow (it takes like 100ms for the KTM-2 to clear the screen...) And
-# anyone with any sanity replaced the ROMs with something that provided
-# a reasonable subset of VT100 functionality, since the usual ROMs were
-# obviously very primitive... oh, you could get an upgraded ROM from
-# Synertek for some incredible amount of money, but what hacker with an
-# EPROM burner would do that? :)
-#
-# Sorry I don't have any contact info; I believe they were located in
-# Sunnyvale, and I'm fairly sure they are still manufacturing ICs
-# (they've gone to ASICs and FPGAs), but I doubt they're in the computer
-# business these days.
-#
-
-# Tested, seems to work fine with vi.
-synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal,
- am,
- cols#80, lines#24,
- clear=^Z, cub1=^H, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
-
-#### Tab Office Products
-#
-# TAB Products Co. - Palo Alto, California
-# Electronic Office Products,
-# 1451 California Avenue 94304
-#
-# I think they're out of business.
-#
-
-# The tab 132 uses xon/xoff, so no padding needed.
-# <smkx>/<rmkx> have nothing to do with arrow keys.
-# <is2> sets 80 col mode, normal video, autowrap on (for <am>).
-# Seems to be no way to get rid of status line.
-# The manual for this puppy was dated June 1981. It claims to be VT52-
-# compatible but looks more vt100-like.
-tab132|tab|tab132-15|tab 132/15,
- da, db,
- OTdN@, cols#80, lines#24, lm#96,
- cud1=^J, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M,
- il1=\E[L, is2=\E[?7h\E[?3l\E[?5l, kcub1=\E[D, kcud1=\E[B,
- kcuu1=\E[A, rmir=\E[4l, rmkx@, smir=\E[4h, smkx@, use=vt100,
-tab132-w|tab132 in wide mode,
- cols#132,
- is2=\E[?7h\E[?3h\E[?5l, use=tab132,
-tab132-rv|tab132 in reverse-video mode,
- is2=\E[?7h\E[?3l\E[?5h, use=tab132,
-tab132-w-rv|tab132 in reverse-video/wide mode,
- is2=\E[?7h\E[?3h\E[?5h, use=tab132-w,
-
-
-#### Teleray
-#
-# Research Incorporated
-# 6425 Flying Cloud Drive
-# Eden Prairie, MN 55344
-# Vox: (612)-941-3300
-#
-# The Teleray terminals were all discontinued in 1992-93. RI still services
-# and repairs these beasts, but no longer manufactures them. The Teleray
-# people believe that all the types listed below are very rare now (1995).
-# There was a newer line of Telerays (Model 7, Model 20, Model 30, and
-# Model 100) that were ANSI-compatible.
-#
-# Note two things called "teleray". Reorder should move the common one
-# to the front if you have either. A dumb teleray with the cursor stuck
-# on the bottom and no obvious model number is probably a 3700.
-#
-
-t3700|dumb teleray 3700,
- OTbs,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ind=^J,
-t3800|teleray 3800 series,
- OTbs,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
- home=\EH, ht=^I, ind=^J, ll=\EY7\s,
-t1061|teleray|teleray 1061,
- OTbs, am, km, xhp, xt,
- cols#80, it#8, lines#24, xmc#1,
- bel=^G, clear=\014$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
- dl1=\EM$<2*>, ed=\EJ$<1>, el=\EK, home=\EH, ht=^I, hts=\EF,
- ich1=\EP, il1=\EL$<2*>, ind=^J, ip=$<0.4*>,
- is2=\Ee\EU01^Z1\EV\EU02^Z2\EV\EU03^Z3\EV\EU04^Z4\EV\EU05^Z5\EV\EU06^Z6\EV\EU07^Z7\EV\EU08^Z8\EV\Ef,
- kf1=^Z1, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5, kf6=^Z6, kf7=^Z7,
- kf8=^Z8, rmso=\ER@, rmul=\ER@, smso=\s\ERD, smul=\ERH,
- tbc=\EG,
-t1061f|teleray 1061 with fast PROMs,
- dl1=\EM, il1=\EL, ip@, use=t1061,
-# "Teleray Arpa Special", officially designated as
-# "Teleray Arpa network model 10" with "Special feature 720".
-# This is the new (1981) fast microcode updating the older "arpa" proms
-# (which gave meta-key and programmable-fxn keys). 720 is much much faster,
-# converts the keypad to programmable function keys, and has other goodies.
-# Standout mode is still broken (magic cookie, etc) so is suppressed as no
-# programs handle such lossage properly.
-# Note: this is NOT the old termcap's "t1061f with fast proms."
-# From: J. Lepreau <lepreau@utah-cs> Tue Feb 1 06:39:37 1983, Univ of Utah
-# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr)
-t10|teleray 10 special,
- OTbs, km, xhp, xt,
- cols#80, it#8, lines#24, xmc#2,
- clear=\Ej$<30/>, cub1=^H, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
- dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
- ind=\Eq, pad=\0, ri=\Ep, rmso=\ER@, rmul=\ER@, smso=\ERD,
- smul=\ERH,
-# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and
-# back/forth words. Put the function keys (f1-f10) where they can be
-# found, and turn off the other magic keys along the top row, except
-# for line/local. Do the magic appropriate to make the page shifts work.
-# Also toggle ^S/^Q for those of us who use Emacs.
-t16|teleray 16,
- am, da, db, mir, xhp, xt,
- cols#80, lines#24,
- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=%i\E[%p1%d;%p2%df, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H, ht=^I, il1=\E[L,
- ind=^J, kf1=^Z1, kf10=^Z0, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5,
- kf6=^Z6, kf7=^Z7, kf8=^Z8, kf9=^Z9, ri=\E[T,
- rmcup=\E[V\E[24;1f\E[?38h, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smcup=\E[U\E[?38l, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-#### Texas Instruments (ti)
-#
-
-# The Silent 700 was so called because it was built around a quiet thermal
-# printer. It was portable, equipped with an acoustic coupler, and pretty
-# neat for its day.
-ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800,
- OTbs, hc, os,
- cols#80,
- bel=^G, cr=\r$<162>, cub1=^H, cud1=^J, ind=^J,
-
-#
-# Texas Instruments 916 VDT 7 bit control mode
-#
-ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL,
- da, db, in, msgr,
- cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[2J$<6>,
- cnorm=\E[?25h, cub=\E[%p1%dD, cud=\E[%p1%dB,
- cuf=\E[%p1%dC, cup=\E[%p1%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cvvis=\E[?25h, dch=\E[%p1%dP$<250>, dch1=\E[P,
- dl=\E[%p1%dM, ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K,
- el1=\E[1K, enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>,
- hpa=\E[%p1%{1}%+%dG, hts=\E[0W, ich=\E[%p1%d@$<250>,
- il=\E[%p1%dL$<36>, ip=$<10>, is2=\E[1;24r\E[24;1H,
- kcmd=\E[29~, kdch1=\E[P, kent=^J, kf1=\E[17~, kf10=\E[28~,
- kf11=\E[29~, kf12=\E[31~, kf2=\E[18~, kf3=\E[19~,
- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
- kf9=\E[26~, khome=\E[H, kich1=\E[@, knp=\E[S, kpp=\E[T,
- kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p,
- smacs=\016$<2>, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
- use=vt220,
-#
-# Texas Instruments 916 VDT 8 bit control mode
-#
-ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL,
- kcmd=\23329~, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
- kcuu1=\233A, kdch1=\233P, kent=^J, kf1=\23317~,
- kf10=\23328~, kf11=\23329~, kf12=\23331~, kf2=\23318~,
- kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
- kf7=\23324~, kf8=\23325~, kf9=\23326~, khome=\233H,
- kich1=\233@, knp=\233S, kpp=\233T, kprt=^X, use=ti916,
-#
-# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode
-#
-ti916-132|Texas Instruments 916 VDT vt220 132 column,
- cols#132, use=ti916,
-#
-# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode
-#
-ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column,
- cols#132, use=ti916-8,
-ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL,
- OTbs, am, xon,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
- csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\E[16~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kich1=\E[@, rc=\E8, rev=\E[7m,
- ri=\EM, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL,
- am, xon,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
- csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=P$<\233>, kf1=P$<\217>,
- kf2=Q$<\217>, kf3=R$<\217>, kf4=S$<\217>, kf5=~$<\23316>,
- kf6=~$<\23317>, kf7=~$<\23318>, kf8=~$<\23319>,
- kf9=~$<\23320>, kich1=@$<\233>, rc=\E8, rev=\E[7m, ri=\EM,
- rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode,
- cols#132, use=ti924,
-ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode,
- cols#132, use=ti924-8,
-ti931|Texas Instruments 931 VDT,
- OTbs, am, xon,
- cols#80, lines#24,
- bel=^G, blink=\E4P, clear=\EL, cnorm=\E4@, cr=^M, cub1=\ED,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH,
- ich1=\ER\EP\EM, il1=\EN, ind=\Ea, invis=\E4H,
- is2=\EGB\E(@B@@\E), kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EQ, kdl1=\EO, kf1=\Ei1, kf2=\Ei2, kf3=\Ei3,
- kf4=\Ei4, kf5=\Ei5, kf6=\Ei6, kf7=\Ei7, kf8=\Ei8, kf9=\Ei9,
- kich1=\EP, kil1=\EN, rev=\E4B, ri=\Eb, rmso=\E4@, rmul=\E4@,
- sgr0=\E4@, smso=\E4A, smul=\E4D,
-ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL,
- csr@, ind=\E[1S, ri=\E[1T, use=ti924,
-# (ti926-8: I corrected this from the broken SCO entry -- esr)
-ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL,
- csr@, ind=\2331S, ri=\2331T, use=ti924-8,
-ti_ansi|basic entry for ti928,
- am, bce, eo, xenl, xon,
- colors#8, cols#80, it#8, lines#25, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[2J\E[H,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
- il1=\E[L, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kend=\E[F, kf0=\E[V, kf1=\E[M,
- 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, knp=\E[G, kpp=\E[I,
- op=\E[37;40m, ri=\E[T, rmso=\E[m, rmul=\E[m,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m,
-#
-# 928 VDT 7 bit control mode
-#
-ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL,
- kdch1=\E[P, kend=\E_1\E\\, kent=\E[8~, kf1=\E[17~,
- kf10=\E[28~, kf11=\E[29~, kf12=\E[31~, kf13=\E[32~,
- kf15=\E[34~, kf2=\E[18~, kf3=\E[19~, kf4=\E[20~,
- kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~,
- kich1=\E[@, knp=\E[S, kpp=\E[T, kprt=\E[35~, use=ti_ansi,
-#
-# 928 VDT 8 bit control mode
-#
-ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL,
- kdch1=\233P, kend=\2371\234, kent=\2338~, kf1=\23317~,
- kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13=\23332~,
- kf15=\23334~, kf2=\23318~, kf3=\23319~, kf4=\23320~,
- kf5=\23321~, kf6=\23323~, kf7=\23324~, kf8=\23325~,
- kf9=\23326~, khome=\233H, kich1=\233@, knp=\233S,
- kpp=\233T, kprt=\23335~, use=ti_ansi,
-
-#### Zentec (zen)
-#
-
-# (zen30: removed obsolete :ma=^L ^R^L^K^P:. This entry originally
-# had just <smso>=\EG6 which I think means standout was supposed to be
-# dim-reverse using ADM12-style attributes. ADM12 <smul>/<rmul> and
-# <invis> might work-- esr)
-zen30|z30|zentec 30,
- OTbs, am, mir, ul,
- cols#80, lines#24,
- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dim=\EG2, dl1=\ER$<1.5*>, ed=\EY, el=\ET$<1.0*>, home=^^,
- il1=\EE$<1.5*>, ind=^J, rmir=\Er, rmul@, smir=\Eq, smso=\EG6,
- smul@, use=adm+sgr,
-# (zen50: this had extension capabilities
-# :BS=^U:CL=^V:CR=^B:
-# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh,
-# which were also in the original entry -- esr)
-# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr)
-zen50|z50|zentec zephyr,
- OTbs, am,
- cols#80, lines#24, xmc#1,
- clear=\E+, cub1=^H, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ich1=\EQ, il1=\EE,
- invis@, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
- rmul@, smul@, use=adm+sgr,
-
-# CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL
-cci|cci1|z8001|zen8001|CCI Custom Zentec 8001,
- OTbs, am, bw,
- cols#80, lines#24,
- blink=\EM", clear=\EH\EJ, cnorm=\EP,
- csr=\ER%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^J,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- cvvis=\EF\EQ\EM \ER 7, dim=\EM!, ed=\EJ, el=\EK, home=\EH,
- invis=\EM(, is2=\EM \EF\ET\EP\ER 7, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, mc4=^T, mc5=^R,
- rev=\EM$, ri=\EI, rmso=\EM\s, rmul=\EM\s, sgr0=\EM\s,
- smso=\EM$, smul=\EM0,
-
-######## OBSOLETE UNIX CONSOLES
-#
-
-#### Apollo consoles
-#
-# Apollo got bought by Hewlett-Packard. The Apollo workstations are
-# labeled HP700s now.
-#
-
-# From: Gary Darland <goodmanc@garnet.berkeley.edu>
-apollo|apollo console,
- OTbs, am, mir,
- cols#88, lines#53,
- clear=^L, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EM%p1%{32}%+%c%p2%d), cuu1=\EA, dch1=\EP, dl1=\EL,
- ed=\EJ, el=\EK, hpa=\EN%p1%d, il1=\EI, ind=\EE, ri=\ED,
- rmcup=\EX, rmir=\ER, rmso=\ET, rmul=\EV, smcup=\EW, smir=\EQ,
- smso=\ES, smul=\EU, vpa=\EO+\s,
-
-# We don't know whether or not the apollo guys replicated DEC's firmware bug
-# in the VT132 that reversed <rmir>/<smir>. To be on the safe side, disable
-# both these capabilities.
-apollo_15P|apollo 15 inch display,
- rmir@, smir@, use=vt132,
-apollo_19L|apollo 19 inch display,
- rmir@, smir@, use=vt132,
-apollo_color|apollo color display,
- rmir@, smir@, use=vt132,
-
-#### Convergent Technology
-#
-# Burroughs bought Convergent shortly before it merged with Univac.
-# CTOS is (I believe) dead. Probably the aws is too (this entry dates
-# from 1991 or earlier).
-#
-
-# Convergent AWS workstation from Gould/SEL UTX/32 via BRL
-# (aws: removed unknown :dn=^K: -- esr)
-aws|Convergent Technologies AWS workstation under UTX and Xenix,
- am,
- OTug#0, cols#80, lines#28, xmc#0,
- OTbc=^H, OTma=\016h\013j\001k\022l\002m, OTnl=^J, acsc=,
- clear=^L, cud1=^K, cuf1=^R, cup=\EC%p2%c%p1%c, cuu1=^A,
- dch1=\EDC, dl1=\EDL, ed=\EEF, el=\EEL, hpa=\EH%p1%c,
- ich1=\EIC, il1=\EIL, ind=\ESU, kbs=^H, kcub1=^N, kcud1=^K,
- kcuf1=^R, kcuu1=^A, ri=\ESD, rmacs=\EAAF, rmso=\EARF,
- rmul=\EAUF, smacs=\EAAN, smso=\EARN, smul=\EAUN,
- vpa=\EV%p1%c,
-awsc|Convergent Technologies AWS workstation under CTOS,
- am,
- OTug#0, cols#80, lines#24, xmc#0,
- OTbc=^N, OTma=\016h\013j\001k\022l\002m, acsc=, clear=^L,
- cud1=^K, cuf1=^R, cup=\EC%p2%c%p1%c, cuu1=^A, ed=\EEF,
- el=\EEL, kbs=^H, kcub1=^N, kcud1=^K, kcuf1=^R, kcuu1=^A,
- rmacs=\EAAF, rmso=\EAA, rmul=\EAA, smacs=\EAAN, smso=\EAE,
- smul=\EAC,
-
-#### DEC consoles
-#
-
-# The MicroVax console. Tim Theisen <tim@cs.wisc.edu> writes:
-# The digital uVax II's had a graphic display called a qdss. It was
-# supposed to be a high performance graphic accelerator, but it was
-# late to market and barely appeared before faster dumb frame buffers
-# appeared. I have only used this display while running X11. However,
-# during bootup, it was in text mode, and probably had a terminal emulator
-# within it. And that is what your termcap entry is for. In graphics
-# mode the screen size is 1024x864 pixels.
-qdss|qdcons|qdss glass tty,
- OTbs, am,
- cols#128, lines#57,
- clear=\032$<1/>, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%c%p2%c, cuu1=^K,
-
-#### Fortune Systems consoles
-#
-# Fortune made a line of 68K-based UNIX boxes that were pretty nifty
-# in their day; I (esr) used one myself for a year or so around 1984.
-# They had no graphics, though, and couldn't compete against Suns and
-# the like. R.I.P.
-#
-
-# From: Robert Nathanson <c160-3bp@Coral> via tut Wed Oct 5, 1983
-# (This had extension capabilities
-# :rv=\EH:re=\EI:rg=0:GG=0:\
-# :CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\
-# :RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\
-# :PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F:
-# It had both ":bs:" and ":bs=^H:"; I removed the latter. Also, it had
-# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily)
-# to force both magic cookie glitches off. Once upon a time, I
-# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are
-# function keys; thus the "Al" value for HM was certainly an error. I renamed
-# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC.
-# I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent
-# "reverse-video-glitch" capability; I have put :rv: and :re: in with standard
-# names below. I've removed obsolete ":nl=5^J:" as there is a :do: -- esr)
-fos|fortune|Fortune system,
- OTbs, am, bw,
- cols#80, lines#25,
- acsc=j*k(l m"q&v%w#x-, bel=^G, blink=\EN, civis=\E],
- clear=\014$<20>, cnorm=\E\\, cr=^M, cub1=^H, cud1=\n$<3>,
- cup=\034C%p1%{32}%+%c%p2%{32}%+%c, cuu1=\013$<3>,
- cvvis=\E\:, dch1=\034W$<5>, dl1=\034R$<15>,
- ed=\034Y$<3*>, el=^\Z, home=\036$<10>, ht=^Z,
- ich1=\034Q$<5>, il1=\034E$<15>, ind=^J, is2=^_.., kbs=^H,
- kcub1=^Aw\r, kcud1=^Ay\r, kcuf1=^Az\r, kcuu1=^Ax\r,
- kend=^Ak\r, kent=^Aq, kf1=^Aa\r, kf2=^Ab\r, kf3=^Ac\r,
- kf4=^Ad\r, kf5=^Ae\r, kf6=^Af\r, kf7=^Ag\r, kf8=^Ah\r,
- khome=^A?\r, knp=^Ao\r, kpp=^An\r, nel=^M^J, rev=\EH,
- rmacs=^O, rmso=^\I`, rmul=^\IP, sgr0=\EI, smacs=\Eo,
- smso=^\H`, smul=^\HP,
-
-#### Masscomp consoles
-#
-# Masscomp has gone out of business. Their product line was purchased by
-# comany in Georgia (US) called "XS International", parts and service may
-# still be available through them.
-#
-
-# (masscomp: ":MT:" changed to ":km:"; -- esr)
-masscomp|masscomp workstation console,
- OTbs, km, mir,
- cols#80, it#8, lines#24,
- clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, ht=^I, il1=\E[L, is2=\EGc\EGb\EGw, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmir=\E[4l,
- rmso=\E[m, rmul=\EGau, smir=\E[4h, smso=\E[7m, smul=\EGu,
-masscomp1|masscomp large screen version 1,
- cols#104, lines#36, use=masscomp,
-masscomp2|masscomp large screen version 2,
- cols#64, lines#21, use=masscomp,
-
-######## OTHER OBSOLETE TYPES
-#
-# These terminals are *long* dead -- these entries are retained for
-# historical interest only.
-#
-
-#### Obsolete non-ANSI software emulations
-#
-
-# CTRM terminal emulator
-# 1. underlining is not allowed with colors: first, is is simulated by
-# black on white, second, it disables background color manipulations.
-# 2. BLINKING, REVERSE and BOLD are allowed with colors,
-# so we have to save their status in the static registers A, B and H
-# respectively, to be able to restore them when color changes
-# (because any color change turns off ALL attributes)
-# 3. <bold> and <rev> sequences alternate modes,
-# rather then simply entering them. Thus we have to check the
-# static register B and H to determine the status, before sending the
-# escape sequence.
-# 4. <sgr0> now must set the status of all 3 register (A,B,H) to zero
-# and then reset colors
-# 5. implementation of the protect mode would badly penalize the performance.
-# we would have to use \E&bn sequence to turn off colors (as well as all
-# other attributes), and keep the status of protect mode in yet another
-# static variable. If someone really needs this mode, they would have to
-# create another terminfo entry.
-# 6. original color-pair is white on black.
-# store the information about colors into static registers
-# 7. set foreground color. it performs the following steps.
-# 1) turn off all attributes
-# 2) turn on the background and video attributes that have been turned
-# on before (this information is stored in static registers X,Y,Z,A,B,H,D).
-# 3) turn on foreground attributes
-# 4) store information about foreground into U,V,W static registers
-# 8. turn on background: similar to turn on foreground above
-ctrm|C terminal emulator,
- am, bce, xon,
- colors#8, cols#80, lh#0, lines#24, lm#0, lw#0, ncv#2, nlab#0,
- pairs#63, pb#19200, vt#6,
- bel=^G, blink=\E&dA%{1}%PA,
- bold=%?%gH%{0}%=%t\E&dH%{1}%PH%;, cbt=\Ei,
- clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E&a%p2%dc%p1%dY, cuu1=\EA, dch1=\EP$<2>, dl1=\EM,
- ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=\011$<2>, hts=\E1,
- il1=\EL, ind=^J, ip=$<2>, is2=\E&jA\r, kbs=^H, kcub1=\Eu\r,
- kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1=\Ep\r,
- kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r,
- kf7=\Ev\r, kf8=\Ew\r, khome=\Ep\r,
- op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV%{1}%PU,
- rev=%?%gB%{0}%=%t\E&dB%{1}%PB%;, rmir=\ER, rmkx=\E&jA,
- setb=\E&bn%?%gA%t\E&dA%;%?%gB%t\E&dB%;%?%gH%t\E&dH%;%?%gU%t\E&bR%;%?%gV%t\E&bG%;%?%gW%t\E&bB%;%?%p1%{1}%&%t\E&bb%{1}%e%{0}%;%PZ%?%p1%{2}%&%t\E&bg%{1}%e%{0}%;%PY%?%p1%{4}%&%t\E&br%{1}%e%{0}%;%PX,
- setf=\E&bn%?%gA%t\E&dA%;%?%gB%t\E&dB%;%?%gH%t\E&dH%;%?%gX%t\E&br%;%?%gY%t\E&bg%;%?%gZ%t\E&bb%;%?%p1%{1}%&%t\E&bB%{1}%e%{0}%;%PW%?%p1%{2}%&%t\E&bG%{1}%e%{0}%;%PV%?%p1%{4}%&%t\E&bR%{1}%e%{0}%;%PU,
- sgr=\E&d@%{0}%PA%{0}%PB%{0}%PD%{0}%PH%?%p1%p3%p5%|%|%t\E&dB%{1}%PB%;%?%p4%t\E&dA%{1}%PA%;%?%p6%t\E&dH%{1}%PH%;%?%p2%t\E&dD%;,
- sgr0=\E&d@%{0}%PA%{0}%PB%{0}%PH, smir=\EQ, smkx=\E&jB,
- smso=\E&dD, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-# gs6300 - can't use blue foreground, it clashes with underline;
-# it's simulated with cyan
-# Bug: The <op> capability probably resets attributes.
-# (gs6300: commented out <rmln> (no <smln>) --esr)
-gs6300|emots|AT&T PC6300 with EMOTS terminal emulator,
- am, bce, msgr, xon,
- colors#8, cols#80, it#8, lines#24, pairs#63,
- acsc=++\,\,--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is2=\E[m, kbs=^H, kcbt=^R^I, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\E[0s, kf2=\E[24s, kf3=\E[1s,
- kf4=\E[23s, kf5=\E[2s, kf6=\E[22s, kf7=\E[3s, kf8=\E[21s,
- khome=\E[H, mc4=\E[4i, mc5=\E[5i, op=\E[?;m, rev=\E[7m,
- ri=\E[L, rmacs=\E[10m, rs1=\Ec, setb=\E[?;%p1%dm,
- setf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m,
- sgr0=\E[m\E[10m, smacs=\E[11m, smso=\E[1m, smul=\E[4m,
-
-# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT
-# MS-Kermit with Heath-19 emulation mode enabled
-# (h19k: changed ":pt@:" to ":it@"
-h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin),
- am@, da, db, xt,
- it@,
- ht@, use=h19-u,
-
-# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy
-# Software (formerly Peripherals Computers & Supplies, Inc) of
-# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376. They can
-# also be reached at support@synergy.com.
-versaterm|versaterm vt100 emulator for the macintosh,
- am, xenl,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- dch1=\E[1P$<7/>, dl1=\E[1M$<9/>, ed=\E[J$<50/>,
- el=\E[K$<3/>, home=\E[H, ht=^I, ich1=\E[1@$<7/>,
- il1=\E[1L$<9/>, is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>,
- rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
- rmkx=\E>\E[?1l, rmso=\E[m$<2/>, rmul=\E[m$<2/>, rs1=\E>,
- sc=\E7, sgr0=\E[m$<2/>, smkx=\E=\E[?1h, smso=\E[7m$<2/>,
- smul=\E[4m$<2/>,
-
-# From: Rick Thomas <ihnp4!btlunix!rbt>
-# (xtalk: I added <rmam>/<smam> based on the init string.
-xtalk|IBM PC with xtalk communication program (versions up to 3.4),
- am, mir, msgr, xon,
- cols#80, it#8, lines#24, vt#3, xmc#1,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\E[H\E[J$<50>, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, dl1=\E[M$<99>, ed=\E[J$<50>, el=\E[K$<3>,
- el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH,
- il1=\E[L$<99>, ind=^J, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H,
- kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\EOx,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt, kf6=\EOu, kf7=\EOv,
- kf8=\EOl, kf9=\EOw, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m\s,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
- smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m\s,
- tbc=\E[3g,
-
-# The official PC terminal emulator program of the AT&T Product Centers.
-# Note - insert mode commented out - doesn't seem to work on AT&T PC.
-simterm|attpc running simterm,
- am,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\ER,
- dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, ind=^J, rmcup=\EVE,
- rmso=\E&d@, sgr0=\E&d@, smcup=\EVS, smso=\E&dB,
-
-#### Daisy wheel printers
-#
-# This section collects Diablo, DTC, Xerox, Qume, and other daisy
-# wheel terminals. These are now largely obsolete.
-#
-
-# (diablo1620: removed <if=/usr/share/tabset/xerox1720>, no such file -- esr)
-diablo1620|diablo1720|diablo450|ipsi|diablo 1620,
- hc, os,
- cols#132, it#8,
- cub1=^H, cud1=^J, cuu1=\E^J, hd=\ED, hpa=\E\011%i%p1%c,
- ht=^I, hts=\E1, hu=\EU, kbs=^H, tbc=\E2,
-diablo1620-m8|diablo1640-m8|diablo 1620 w/8 column left margin,
- cols#124,
- is2=\r \E9, use=diablo1620,
-# (diablo1640: removed <if=/usr/share/tabset/xerox1730>, no such file -- esr)
-diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640,
- bel=^G, rmso=\E&, rmul=\ER, smso=\EW, smul=\EE,
- use=diablo1620,
-# (diablo1640-lm: removed <if=/usr/share/tabset/xerox1730-lm>, no such
-# file -- esr)
-diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin,
- cols#124,
- rmso=\E&, rmul=\ER, smso=\EW, smul=\EE, use=diablo1620,
-diablo1740-lm|630-lm|1730-lm|x1700-lm|diablo 1740 printer,
- use=diablo1640-lm,
-# DTC 382 with VDU. Has no <ed> so we fake it with <el>. Standout
-# <smso=^P\s\002^PF> works but won't go away without dynamite <rmso=^P\s\0>.
-# The terminal has tabs, but I'm getting tired of fighting the braindamage.
-# If no tab is set or the terminal's in a bad mood, it glitches the screen
-# around all of memory. Note that return puts a blank ("a return character")
-# in the space the cursor was at, so we use ^P return (and thus ^P newline for
-# newline). Note also that if you turn off :pt: and let Unix expand tabs,
-# curses won't work (some old BSD versions) because it doesn't clear this bit,
-# and cursor addressing sends a tab for row/column 9. What a losing terminal!
-# I have been unable to get tabs set in all 96 lines - it always leaves at
-# least one line with no tabs in it, and once you tab through that line,
-# it completely weirds out.
-# (dtc382: change <rmcup> to <smcup> -- it just does a clear --esr)
-dtc382|DTC 382,
- am, da, db, xhp,
- cols#80, lines#24, lm#96,
- bel=^G, clear=\020\035$<20>, cnorm=^Pb, cr=^P^M, cub1=^H,
- cuf1=^PR, cup=\020\021%p2%c%p1%c, cuu1=^P^L, cvvis=^PB,
- dch1=^X, dl1=^P^S, ed=\020\025\020\023\020\023, el=^P^U,
- home=^P^R, il1=^P^Z, ind=^J, pad=\177, rmcup=, rmir=^Pi,
- rmul=^P \0, smcup=\020\035$<20>, smir=^PI, smul=^P ^P,
-dtc300s|DTC 300s,
- hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
- hts=\E1, hu=\EH, ind=^J, kbs=^H, tbc=\E3,
-gsi|mystery gsi terminal,
- hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, hd=\Eh, ht=^I, hu=\EH,
- ind=^J,
-aj830|aj832|aj|anderson jacobson,
- hc, os,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
- ind=^J,
-# From: Chris Torek <chris@gyre.umd.edu> Thu, 7 Nov 85 18:21:58 EST
-aj510|Anderson-Jacobson model 510,
- am, mir,
- cols#80, lines#24,
- clear=^L, cub1=^H, cuf1=\EX,
- cup=\E#%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EY,
- dch1=.1*\E'D, dl1=\E&D$<2*/>, ed=\E'P, el=\E'L, ich1=,
- il1=\E&I$<2*/>, ip=$<.1*/>, kcub1=\EW, kcud1=\EZ,
- kcuf1=\EX, kcuu1=\EY, pad=\177, rmcup=\E"N, rmir=\E'J,
- rmso=\E"I, rmul=\E"U, smcup=\E"N, smir=\E'I, smso=\E"I,
- smul=\E"U,
-# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
-# This is incomplete, but it's a start.
-nec5520|nec|spinwriter|nec 5520,
- hc, os,
- cols#132, it#8,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E9, ff=^L,
- hd=\E]s\n\E]W, ht=^I, hts=\E1, hu=\E]s\E9\E]W, ind=^J,
- kbs=^H, tbc=\E3,
-qume5|qume|Qume Sprint 5,
- hc, os,
- cols#80, it#8,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
- hts=\E1, hu=\EH, ind=^J, kbs=^H, tbc=\E3,
-# I suspect the xerox 1720 is the same as the diablo 1620.
-xerox1720|x1720|x1750|xerox 1720,
- hc, os,
- cols#132, it#8,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ff=^L, ht=^I, hts=\E1, ind=^J,
- tbc=\E2,
-
-#### Miscellaneous obsolete terminals, manufacturers unknown
-#
-# If you have any information about these (like, a manufacturer's name,
-# and a date on the serial-number plate) please send it!
-
-cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars,
- OTbs, am,
- cols#73, lines#36,
- clear=^Z, cub1=^H, cuf1=^L, cuu1=^K, home=^^,
-cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars,
- OTbs, am,
- cols#85, lines#39,
- clear=^Z, cub1=^H, cuf1=^L, cuu1=^K, home=^^, kcub1=\E3,
- kcud1=\E2, kcuf1=\E4, kcuu1=\E1, kf1=\E5, kf2=\E6, kf3=\E7,
- kf4=\E8, rmso=\Em^C, smso=\Em^L,
-cops10|cops|cops-10|cops 10,
- am, bw,
- cols#80, lines#24,
- bel=^G, clear=\030$<30/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^W, el=^V,
- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- khome=^Y,
-# (d132: removed duplicate :ic=\E5:,
-# merged in capabilities from a BRL entry -- esr)
-d132|datagraphix|datagraphix 132a,
- da, db, in,
- cols#80, lines#30,
- bel=^G, clear=^L, cnorm=\Em\En, cr=^M, cub1=^H, cud1=^J,
- cuf1=\EL, cup=\E8%i%p1%3d%p2%3d, cuu1=\EK, cvvis=\Ex,
- dch1=\E6, home=\ET, ht=^I, ich1=\E5, il1=\E3, ind=^J, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, ri=\Ew,
-# The d800 was an early portable terminal from c.1984-85 that looked a lot
-# like the original Compaq `lunchbox' portable (but no handle). It had a vt220
-# mode (which is what this entry looks like) and several other lesser-known
-# emulations.
-d800|Direct 800/A,
- OTbs, am, da, db, msgr, xhp,
- cols#80, it#8, lines#24,
- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
- bel=^G, clear=\E[1;1H\E[2J, cnorm=\E[>12h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- cvvis=\E[>12l, ed=\E[J, el=\E[K, ht=^I, ind=\ED, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- ri=\EM, rmacs=\E[m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smacs=\E[1m, smso=\E[7m, smul=\E[4m,
-digilog|digilog 333,
- OTbs,
- cols#80, lines#16,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuf1=^I, cuu1=^O, el=^X,
- home=^N, ind=^J,
-# The DWK was a terminal manufactured in the Soviet Union c.1986
-dwk|dwk-vt|dwk terminal,
- am,
- cols#80, it#8, lines#24,
- acsc=+\^\,Q-S.M0\177`+a\:f'g#h#i#jXkClJmFnNo~qUs_tEuPv\\wKxW~_,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
- ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EQ, ind=^J, kbs=\177,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\Ee,
- kf1=\Ef1, kf10=\Ef0, kf2=\Ef2, kf3=\Ef3, kf4=\Ef4, kf5=\Ef5,
- kf6=\Ef6, kf7=\Ef7, kf8=\Ef8, kf9=\Ef9, kich1=\Ed, knp=\Eh,
- kpp=\Eg, nel=^M^J, rev=\ET, ri=\ES, rmacs=\EG, rmso=\EX,
- sgr0=\EX, smacs=\EF, smso=\ET,
-env230|envision230|envision 230 graphics terminal,
- xenl@,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- use=vt100,
-# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
-# coupler attached, the whole rig fitting in a suitcase and more or less
-# portable. Hot stuff for c.1977 :-) -- esr
-ep48|ep4080|execuport 4080,
- OTbs, am, os,
- cols#80,
- bel=^G, cr=^M, cub1=^H, cud1=^J, hd=^\, hu=^^, ind=^J,
-ep40|ep4000|execuport 4000,
- cols#136, use=ep4080,
-# Adam Thompson <athompso@pangea.ca> tells us:
-# Informer series - these are all portable units, resembling older
-# automatic bread-baking machines. The terminal looks like a `clamshell'
-# design, but isn't. The structure is similar to the Direct terminals,
-# but only half the width. The entire unit is only about 10" wide.
-# It features an 8" screen (6" or 7" if you have color!), and an 9"x6"
-# keyboard. All the keys are crammed together, much like some laptop
-# PCs today, but perhaps less well organized...all these units have a
-# bewildering array of plugs on the back, including a built-in modem.
-# The 305 was a color version of the 304; the 306 and 307 were mono and
-# color terminals built for IBM bisync protocols.
-# From: Paul Leondis <unllab@amber.berkeley.edu>
-ifmr|Informer D304,
- OTbs, am,
- cols#80, lines#24,
- clear=\EZ, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dch1=\E\\,
- ed=\E/, el=\EQ, home=\EH, ich1=\E[, ri=\En, rmso=\EK, sgr0=\EK,
- smso=\EJ,
-# Entry largely based on wy60 and has the features of wy60ak.
-opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys,
- am, bw, hs, km, mir, msgr, ul, xon,
- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#80,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E*$<100>, cnorm=\E`1, cr=^M,
- cub1=^H, cud1=^J, cuf1=^L, cup=\Ea%i%p1%dR%p2%dC, cuu1=^K,
- dch1=\EW$<11>, dim=\EGp, dl1=\ER$<5>, dsl=\Ez(\r,
- ed=\EY$<100>, el=\ET, fsl=^M, home=\036$<2>, ht=\011$<5>,
- hts=\E1, if=/usr/share/tabset/std, il1=\EE$<4>, ind=^J,
- ip=$<3>,
- is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177\Ezz`\E[F\177\EA1*\EZH12,
- kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kend=\E[F, kent=\E7, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
- mc0=\EP, mc4=^T, mc5=^R, nel=\r\n$<3>,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
- rmacs=\EH^C, rmam=\Ed., rmcup=, rmir=\Er, rmln=\EA11,
- rmxon=\Ec20, rs1=\E~!\E~4$<150>, rs2=\EeF$<150>,
- rs3=\EwG\Ee($<150>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EH^B, smam=\Ed/,
- smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177,
- smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(,
- uc=\EG8\EG0, use=adm+sgr,
-teletec|Teletec Datascreen,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^K,
- home=^^, ind=^J,
-# From: Mark Dornfeld <romwa@ucbvax.berkeley.edu>
-# This description is for the LANPAR Technologies VISION 3220
-# terminal from 1984/85. The function key definitions k0-k5 represent the
-# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN,
-# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to PF4 keys.
-#
-# Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998:
-# I had a couple of scopes (3221) like this once where I used to work, around
-# the 1987 time frame if memory serves me correctly. These scopes were made
-# by an outfit called LANPAR Technologies, and were meant to me DEC VT 220
-# compatible. The 3220 was a plain text terminal like the VT-220, the 3221
-# was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222
-# was like the VT-241 (color with Regis + Sixel Graphics). These terminals
-# (3221) cost about $1500 each, and one was always broken -- had to be sent
-# back to the shop for repairs.
-# The only real advantage these scopes had over the VT-240's were:
-# 1) They were faster in the Regis display, or at least the ones I did
-# 2) They had a handy debugging feature where you could split-screen the
-# scope, the graphics would appear on the top, and the REGIS commands would
-# appear on the bottom. I don't remember the VT-240s being able to do that.
-# I would swear that LANPAR Technologies was in MA someplace, but since I
-# don't work at the same place anymore, and those terminals and manuals were
-# long since junked, I cannot be any more sure than that.
-#
-# (v3220: removed obsolete ":kn#10:",
-# I added <rmam>/<smam> based on the init string -- esr)
-v3220|LANPAR Vision II model 3220/3221/3222,
- OTbs, am, mir, xenl,
- cols#80, it#8, lines#24,
- clear=\E[H\E[J, cub1=^H, 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, ht=^I, il1=\E[L,
- is2=\E>\E[?3l\E[?7h\E[?8h\E[p, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf0=\E[1~, kf1=\E[2~, kf2=\E[3~,
- kf3=\E[4~, kf4=\E[5~, kf5=\E[6~, kf6=\E[OP, kf7=\E[OQ,
- kf8=\E[OR, kf9=\E[OS, khome=\E[H, ri=\EM, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smam=\E[?7h, smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
-######## ICH/ICH1 VERSUS RMIR/SMIR
-#
-# Some non-curses applications get confused if both ich/ich1 and rmir/smir
-# are present; the symptom is doubled characters in an update using insert.
-# These applications are technically correct; in both 4.3BSD termcap and
-# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir
-# unless the terminal needs both. To my knowledge, no terminal still in this
-# file requires both other than the very obsolete dm2500.
-#
-# For ncurses-based applications this is not a problem, as ncurses uses
-# one or the other as appropriate but never mixes the two. Therefore we
-# have not corrected entries like `linux' and `xterm' that specify both.
-# If you see doubled characters from these, use the linux-nic and xterm-nic
-# entries that suppress ich/ich1. And upgrade to ncurses!
-#
-
-######## VT100/ANSI/ISO 6429/ECMA-48/PC-TERM TERMINAL STANDARDS
-#
-# ANSI X3.64 has been withdrawn and replaced by ECMA-48. The ISO 6429 and
-# ECMA-48 standards are said to be almost identical, but are not the same
-# as X3.64 (though for practical purposes they are close supersets of it).
-#
-# You can obtain ECMA-48 for free by sending email to helpdesk@ecma.ch
-# requesting the standard(s) you want (i.e. ECMA-48, "Control Functions for
-# Coded Character Sets"), include your snail-mail address, and you should
-# receive the document in due course. Don't expect an email acknowledgement.
-#
-# Related standards include "X3.4-1977: American National Standard Code for
-# Information Interchange" (the ASCII standard) and "X3.41.1974:
-# Code-Extension Techniques for Use with the 7-Bit Coded Character Set of
-# American National Standard for Information Interchange." I believe (but
-# am not certain) that these are effectively identical to ECMA-6 and ECMA-35
-# respectively.
-#
-
-#### VT100/ANSI/ECMA-48
-#
-# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals
-# and ECMA-48 Control Functions for Coded Character Sets.
-#
-# Much of the content of this comment is adapted from a table prepared by
-# Richard Shuford, based on a 1984 Byte article. Terminfo correspondences,
-# discussion of some terminfo-related issues, and updates to capture ECMA-48
-# have been added. Control functions described in ECMA-48 only are tagged
-# with * after their names.
-#
-# The table is a complete list of the defined ANSI X3.64/ECMA-48 control
-# sequences. In the main table, \E stands for an escape (\033) character,
-# SPC for space. Pn stands for a single numeric parameter to be inserted
-# in decimal ASCII. Ps stands for a list of such parameters separated by
-# semicolons. Parameter meanings for most parametrized sequences are
-# decribed in the notes.
-#
-# Sequence Sequence Parameter or
-# Mnemonic Name Sequence Value Mode terminfo
-# -----------------------------------------------------------------------------
-# APC Applicatn Program Command \E _ - Delim -
-# BEL Bell * ^G - - bel
-# BPH Break Permitted Here * \E B - * -
-# BS Backpace * ^H - EF -
-# CAN Cancel * ^X - - - (A)
-# CBT Cursor Backward Tab \E [ Pn Z 1 eF cbt
-# CCH Cancel Previous Character \E T - - -
-# CHA Cursor Horizntal Absolute \E [ Pn G 1 eF hpa (B)
-# CHT Cursor Horizontal Tab \E [ Pn I 1 eF tab (C)
-# CMD Coding Method Delimiter * \E
-# CNL Cursor Next Line \E [ Pn E 1 eF nel (D)
-# CPL Cursor Preceding Line \E [ Pn F 1 eF -
-# CPR Cursor Position Report \E [ Pn ; Pn R 1, 1 - - (E)
-# CSI Control Sequence Intro \E [ - Intro -
-# CTC Cursor Tabulation Control \E [ Ps W 0 eF - (F)
-# CUB Cursor Backward \E [ Pn D 1 eF cub
-# CUD Cursor Down \E [ Pn B 1 eF cud
-# CUF Cursor Forward \E [ Pn C 1 eF cuf
-# CUP Cursor Position \E [ Pn ; Pn H 1, 1 eF cup (G)
-# CUU Cursor Up \E [ Pn A 1 eF cuu
-# CVT Cursor Vertical Tab \E [ Pn Y - eF - (H)
-# DA Device Attributes \E [ Pn c 0 - -
-# DAQ Define Area Qualification \E [ Ps o 0 - -
-# DCH Delete Character \E [ Pn P 1 eF dch
-# DCS Device Control String \E P - Delim -
-# DL Delete Line \E [ Pn M 1 eF dl
-# DLE Data Link Escape * ^P - - -
-# DMI Disable Manual Input \E \ - Fs -
-# DSR Device Status Report \E [ Ps n 0 - - (I)
-# DTA Dimension Text Area * \E [ Pn ; Pn SPC T - PC -
-# EA Erase in Area \E [ Ps O 0 eF - (J)
-# ECH Erase Character \E [ Pn X 1 eF ech
-# ED Erase in Display \E [ Ps J 0 eF ed (J)
-# EF Erase in Field \E [ Ps N 0 eF -
-# EL Erase in Line \E [ Ps K 0 eF el (J)
-# EM End of Medium * ^Y - - -
-# EMI Enable Manual Input \E b Fs -
-# ENQ Enquire ^E - - -
-# EOT End Of Transmission ^D - * -
-# EPA End of Protected Area \E W - - - (K)
-# ESA End of Selected Area \E G - - -
-# ESC Escape ^[ - - -
-# ETB End Transmission Block ^W - - -
-# ETX End of Text ^C - - -
-# FF Form Feed ^L - - -
-# FNK Function Key * \E [ Pn SPC W - - -
-# GCC Graphic Char Combination* \E [ Pn ; Pn SPC B - - -
-# FNT Font Selection \E [ Pn ; Pn SPC D 0, 0 FE -
-# GSM Graphic Size Modify \E [ Pn ; Pn SPC B 100, 100 FE - (L)
-# GSS Graphic Size Selection \E [ Pn SPC C none FE -
-# HPA Horz Position Absolute \E [ Pn ` 1 FE - (B)
-# HPB Char Position Backward \E [ j 1 FE -
-# HPR Horz Position Relative \E [ Pn a 1 FE - (M)
-# HT Horizontal Tab * ^I - FE - (N)
-# HTJ Horz Tab w/Justification \E I - FE -
-# HTS Horizontal Tab Set \E H - FE hts
-# HVP Horz & Vertical Position \E [ Pn ; Pn f 1, 1 FE - (G)
-# ICH Insert Character \E [ Pn @ 1 eF ich
-# IDCS ID Device Control String \E [ SPC O - * -
-# IGS ID Graphic Subrepertoire \E [ SPC M - * -
-# IL Insert Line \E [ Pn L 1 eF il
-# IND Index \E D - FE -
-# INT Interrupt \E a - Fs -
-# JFY Justify \E [ Ps SPC F 0 FE -
-# IS1 Info Separator #1 * ^_ - * -
-# IS2 Info Separator #1 * ^^ - * -
-# IS3 Info Separator #1 * ^] - * -
-# IS4 Info Separator #1 * ^\ - * -
-# LF Line Feed ^J - - -
-# LS1R Locking Shift Right 1 * \E ~ - - -
-# LS2 Locking Shift 2 * \E n - - -
-# LS2R Locking Shift Right 2 * \E } - - -
-# LS3 Locking Shift 3 * \E o - - -
-# LS3R Locking Shift Right 3 * \E | - - -
-# MC Media Copy \E [ Ps i 0 - - (S)
-# MW Message Waiting \E U - - -
-# NAK Negative Acknowledge * ^U - * -
-# NBH No Break Here * \E C - - -
-# NEL Next Line \E E - FE nel (D)
-# NP Next Page \E [ Pn U 1 eF -
-# NUL Null * ^@ - - -
-# OSC Operating System Command \E ] - Delim -
-# PEC Pres. Expand/Contract * \E Pn SPC Z 0 - -
-# PFS Page Format Selection * \E Pn SPC J 0 - -
-# PLD Partial Line Down \E K - FE - (T)
-# PLU Partial Line Up \E L - FE - (U)
-# PM Privacy Message \E ^ - Delim -
-# PP Preceding Page \E [ Pn V 1 eF -
-# PPA Page Position Absolute * \E [ Pn SPC P 1 FE -
-# PPB Page Position Backward * \E [ Pn SPC R 1 FE -
-# PPR Page Position Forward * \E [ Pn SPC Q 1 FE -
-# PTX Parallel Texts * \E [ \ - - -
-# PU1 Private Use 1 \E Q - - -
-# PU2 Private Use 2 \E R - - -
-# QUAD Typographic Quadding \E [ Ps SPC H 0 FE -
-# REP Repeat Char or Control \E [ Pn b 1 - rep
-# RI Reverse Index \E M - FE - (V)
-# RIS Reset to Initial State \E c - Fs -
-# RM Reset Mode * \E [ Ps l - - - (W)
-# SACS Set Add. Char. Sep. * \E [ Pn SPC / 0 - -
-# SAPV Sel. Alt. Present. Var. * \E [ Ps SPC ] 0 - - (X)
-# SCI Single-Char Introducer \E Z - - -
-# SCO Sel. Char. Orientation * \E [ Pn ; Pn SPC k - - -
-# SCS Set Char. Spacing * \E [ Pn SPC g - - -
-# SD Scroll Down \E [ Pn T 1 eF rin
-# SDS Start Directed String * \E [ Pn ] 1 - -
-# SEE Select Editing Extent \E [ Ps Q 0 - - (Y)
-# SEF Sheet Eject & Feed * \E [ Ps ; Ps SPC Y 0,0 - -
-# SGR Select Graphic Rendition \E [ Ps m 0 FE sgr (O)
-# SHS Select Char. Spacing * \E [ Ps SPC K 0 - -
-# SI Shift In ^O - - - (P)
-# SIMD Sel. Imp. Move Direct. * \E [ Ps ^ - - -
-# SL Scroll Left \E [ Pn SPC @ 1 eF -
-# SLH Set Line Home * \E [ Pn SPC U - - -
-# SLL Set Line Limit * \E [ Pn SPC V - - -
-# SLS Set Line Spacing * \E [ Pn SPC h - - -
-# SM Select Mode \E [ Ps h none - - (W)
-# SO Shift Out ^N - - - (Q)
-# SOH Start Of Heading * ^A - - -
-# SOS Start of String * \E X - - -
-# SPA Start of Protected Area \E V - - - (Z)
-# SPD Select Pres. Direction * \E [ Ps ; Ps SPC S 0,0 - -
-# SPH Set Page Home * \E [ Ps SPC G - - -
-# SPI Spacing Increment \E [ Pn ; Pn SPC G none FE -
-# SPL Set Page Limit * \E [ Ps SPC j - - -
-# SPQR Set Pr. Qual. & Rapid. * \E [ Ps SPC X 0 - -
-# SR Scroll Right \E [ Pn SPC A 1 eF -
-# SRCS Set Reduced Char. Sep. * \E [ Pn SPC f 0 - -
-# SRS Start Reversed String * \E [ Ps [ 0 - -
-# SSA Start of Selected Area \E F - - -
-# SSU Select Size Unit * \E [ Pn SPC I 0 - -
-# SSW Set Space Width * \E [ Pn SPC [ none - -
-# SS2 Single Shift 2 (G2 set) \E N - Intro -
-# SS3 Single Shift 3 (G3 set) \E O - Intro -
-# ST String Terminator \E \ - Delim -
-# STAB Selective Tabulation * \E [ Pn SPC ^ - - -
-# STS Set Transmit State \E S - - -
-# STX Start pf Text * ^B - - -
-# SU Scroll Up \E [ Pn S 1 eF indn
-# SUB Substitute * ^Z - - -
-# SVS Select Line Spacing * \E [ Pn SPC \ 1 - -
-# SYN Synchronous Idle * ^F - - -
-# TAC Tabul. Aligned Centered * \E [ Pn SPC b - - -
-# TALE Tabul. Al. Leading Edge * \E [ Pn SPC a - - -
-# TATE Tabul. Al. Trailing Edge* \E [ Pn SPC ` - - -
-# TBC Tab Clear \E [ Ps g 0 FE tbc
-# TCC Tabul. Centered on Char * \E [ Pn SPC c - - -
-# TSR Tabulation Stop Remove * \E [ Pn SPC d - FE -
-# TSS Thin Space Specification \E [ Pn SC E none FE -
-# VPA Vert. Position Absolute \E [ Pn d 1 FE vpa
-# VPB Line Position Backward * \E [ Pn k 1 FE -
-# VPR Vert. Position Relative \E [ Pn e 1 FE - (R)
-# VT Vertical Tabulation * ^K - FE -
-# VTS Vertical Tabulation Set \E J - FE -
-#
-# ---------------------------------------------------------------------------
-#
-# Notes:
-#
-# Some control characters are listed in the ECMA-48 standard without
-# being assigned functions relevant to terminal control there (they
-# referred to other standards such as ISO 1745 or ECMA-35). They are listed
-# here anyway for completeness.
-#
-# (A) ECMA-48 calls this "CancelCharacter" but retains the CCH abbreviation.
-#
-# (B) There seems to be some confusion abroad between CHA and HPA. Most
-# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls
-# the capability (hpa). ECMA-48 calls this "Cursor Character Absolute" but
-# preserved the CHA abbreviation.
-#
-# (C) CHT corresponds to terminfo (tab). Usually it has the value ^I.
-# Occasionally (as on, for example, certain HP terminals) this has the HTJ
-# value. ECMA-48 calls this "Cursor Forward Tabulation" but preserved the
-# CHT abbreviation.
-#
-# (D) terminfo (nel) is usually \r\n rather than ANSI \EE.
-#
-# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR
-# abbreviation.
-#
-# (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear
-# char tab, 3 = clear line tab, 4 = clear all char tabs on current line,
-# 5 = clear all char tabs, 6 = clear all line tabs.
-#
-# (G) CUP and HVP are identical in effect. Some ANSI.SYS versions accept
-# HVP, but always allow CUP as an alternate. ECMA-48 calls HVP "Character
-# Position Absolute" but retains the HVP abbreviation.
-#
-# (H) ECMA calls this "Cursor Line Tabulation" but preserves the CVT
-# abbreviation.
-#
-# (I) DSR parameter values: 0 = ready, 1 = busy, 2 = busy, will send DSR
-# later, 3 = malfunction, 4 = malfunction, will send DSR later, 5 = request
-# DSR, 6 = request CPR response.
-#
-# (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end,
-# 1 = clear from beginning, 2 = clear.
-#
-# (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation.
-#
-# (L) The GSM parameters are vertical and horizontal parameters to scale by.
-#
-# (M) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals
-# use CUF for this function and ignore HPR. ECMA-48 calls this "Character
-# Position Relative" but retains the HPR abbreviation.
-#
-# (N) ECMA-48 calls this "Character Tabulation" but retains the HT
-# abbreviation.
-#
-# (O) SGR parameter values: 0 = default mode (attributes off), 1 = bold,
-# 2 = dim, 3 = italicized, 4 = underlined, 5 = slow blink, 6 = fast blink,
-# 7 = reverse video, 8 = invisible, 9 = crossed-out (marked for deletion),
-# 10 = primary font, 10 + n (n in 1..9) = nth alternative font, 20 = Fraktur,
-# 21 = double underline, 22 = turn off 2, 23 = turn off 3, 24 = turn off 4,
-# 25 = turn off 5, 26 = proportional spacing, 27 = turn off 7, 28 = turn off
-# 8, 29 = turn off 9, 30 = black fg, 31 = red fg, 32 = green fg, 33 = yellow
-# fg, 34 = blue fg, 35 = magenta fg, 36 = cyan fg, 37 = white fg, 38 = set
-# fg color as in CCIT T.416, 39 = set default fg color, 40 = black bg
-# 41 = red bg, 42 = green bg, 43 = yellow bg, 44 = blue bg, 45 = magenta bg,
-# 46 = cyan bg, 47 = white bg, 48 = set bg color as in CCIT T.416, 39 = set
-# default bg color, 50 = turn off 26, 51 = framed, 52 = encircled, 53 =
-# overlined, 54 = turn off 51 & 52, 55 = not overlined, 56-59 = reserved,
-# 61-65 = variable highlights for ideograms.
-#
-# (P) SI is also called LSO, Locking Shift Zero.
-#
-# (Q) SI is also called LS1, Locking Shift One.
-#
-# (R) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals
-# use CUD for this function and ignore VPR. ECMA calls it `Line Position
-# Absolute' but retains the VPA abbreviation.
-#
-# (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from
-# primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer
-# from secondary aux device, 4 = stop relay to primary aux device, 5 =
-# start relay to primary aux device, 6 = stop relay to secondary aux device,
-# 7 = start relay to secondary aux device.
-#
-# (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD
-# abbreviation.
-#
-# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLD
-# abbreviation.
-#
-# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
-#
-# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM),
-# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM),
-# 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM),
-# 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional
-# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM),
-# 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM),
-# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM),
-# 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer
-# Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer
-# Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed
-# New Line Mode (LF/NL), Graphic Rendition Combination Mode (GRCM), 22 =
-# Zero Default Mode (ZDM). The EBM and LF/NL modes have actually been removed
-# from ECMA-48's 5th edition but are listed here for reference.
-#
-# (X) Select Alternate Presentation Variants is used only for non-Latin
-# alphabets.
-#
-# (Y) "Select Editing Extent" (SEE) was ANSI "Select Edit Extent Mode" (SEM).
-#
-# (Z) ECMA-48 calls this "Start of Guarded Area" but retains the SPA
-# abbreviation.
-#
-# ---------------------------------------------------------------------------
-#
-# Abbreviations:
-#
-# Intro an Introducer of some kind of defined sequence; the normal 7-bit
-# X3.64 Control Sequence Introducer is the two characters "Escape ["
-#
-# Delim a Delimiter
-#
-# x/y identifies a character by position in the ASCII table (column/row)
-#
-# eF editor function (see explanation)
-#
-# FE format effector (see explanation)
-#
-# F is a Final character in
-# an Escape sequence (F from 3/0 to 7/14 in the ASCII table)
-# a control sequence (F from 4/0 to 7/14)
-#
-# Gs is a graphic character appearing in strings (Gs ranges from
-# 2/0 to 7/14) in the ASCII table
-#
-# Ce is a control represented as a single bit combination in the C1 set
-# of controls in an 8-bit character set
-#
-# C0 the familiar set of 7-bit ASCII control characters
-#
-# C1 roughly, the set of control chars available only in 8-bit systems.
-# This is too complicated to explain fully here, so read Jim Fleming's
-# article in the February 1983 BYTE, especially pages 214 through 224.
-#
-# Fe is a Final character of a 2-character Escape sequence that has an
-# equivalent representation in an 8-bit environment as a Ce-type
-# (Fe ranges from 4/0 to 5/15)
-#
-# Fs is a Final character of a 2-character Escape sequence that is
-# standardized internationally with identical representation in 7-bit
-# and 8-bit environments and is independent of the currently
-# designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14)
-#
-# I is an Intermediate character from 2/0 to 2/15 (inclusive) in the
-# ASCII table
-#
-# P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII
-# table
-#
-# Pn is a numeric parameter in a control sequence, a string of zero or
-# more characters ranging from 3/0 to 3/9 in the ASCII table
-#
-# Ps is a variable number of selective parameters in a control sequence
-# with each selective parameter separated from the other by the code
-# 3/11 (which usually represents a semicolon); Ps ranges from
-# 3/0 to 3/9 and includes 3/11
-#
-# * Not relevant to terminal control, listed for completeness only.
-#
-# Format Effectors versus Editor Functions
-#
-# A format effector specifies how following output is to be displayed.
-# An editor function allows you to modify the display. Informally
-# format effectors may be destructive; format effectors should not be.
-#
-# For instance, a format effector that moves the "active position" (the
-# cursor or equivalent) one space to the left would be useful when you want to
-# create an overstrike, a compound character made of two standard characters
-# overlaid. Control-H, the Backspace character, is actually supposed to be a
-# format effector, so you can do this. But many systems use it in a
-# nonstandard fashion, as an editor function, deleting the character to the
-# left of the cursor and moving the cursor left. When Control-H is assumed to
-# be an editor function, you cannot predict whether its use will create an
-# overstrike unless you also know whether the output device is in an "insert
-# mode" or an "overwrite mode". When Control-H is used as a format effector,
-# its effect can always be predicted. The familiar characters carriage
-# return, linefeed, formfeed, etc., are defined as format effectors.
-#
-# NOTES ON THE DEC VT100 IMPLEMENTATION
-#
-# Control sequences implemented in the VT100 are as follows:
-#
-# CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND,
-# LNM, NEL, RI, RIS, RM, SGR, SM, TBC
-#
-# plus several private DEC commands.
-#
-# Erasing parts of the display (EL and ED) in the VT100 is performed thus:
-#
-# Erase from cursor to end of line Esc [ 0 K or Esc [ K
-# Erase from beginning of line to cursor Esc [ 1 K
-# Erase line containing cursor Esc [ 2 K
-# Erase from cursor to end of screen Esc [ 0 J or Esc [ J
-# Erase from beginning of screen to cursor Esc [ 1 J
-# Erase entire screen Esc [ 2 J
-#
-# Some brain-damaged terminal/emulators respond to Esc [ J as if it were
-# Esc [ 2 J, but this is wrong; the default is 0.
-#
-# The VT100 responds to receiving the DA (Device Attributes) control
-#
-# Esc [ c (or Esc [ 0 c)
-#
-# by transmitting the sequence
-#
-# Esc [ ? l ; Ps c
-#
-# where Ps is a character that describes installed options.
-#
-# The VT100's cursor location can be read with the DSR (Device Status
-# Report) control
-#
-# Esc [ 6 n
-#
-# The VT100 reports by transmitting the CPR sequence
-#
-# Esc [ Pl ; Pc R
-#
-# where Pl is the line number and Pc is the column number (in decimal).
-#
-# The specification for the DEC VT100 is document EK-VT100-UG-003.
-
-#### ANSI.SYS
-#
-# Here is a description of the color and attribute controls supported in the
-# the ANSI.SYS driver under MS-DOS. Most console drivers and ANSI
-# terminal emulators for Intel boxes obey these. They are a proper subset
-# of the ECMA-48 escapes.
-#
-# 0 all attributes off
-# 1 foreground bright
-# 4 underscore on
-# 5 blink on/background bright (not reliable with brown)
-# 7 reverse-video
-# 8 set blank (non-display)
-# 10 set primary font
-# 11 set first alternate font (on PCs, display ROM characters 1-31)
-# 12 set second alternate font (on PCs, display IBM high-half chars)
-#
-# Color attribute sets
-# 3n set foreground color / 0=black, 1=red, 2=green, 3=brown,
-# 4n set background color \ 4=blue, 5=magenta, 6=cyan, 7=white
-# Bright black becomes gray. Bright brown becomes yellow,
-# These coincide with the prescriptions of the ISO 6429/ECMA-48 standard.
-#
-# * If the 5 attribute is on and you set a background color (40-47) it is
-# supposed to enable bright background.
-#
-# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing
-# when you try to set a "bright brown" (yellow) background with attribute
-# 5 (you get a blinking yellow foreground instead). A few displays
-# (including the System V console) support an attribute 6 that undoes this
-# braindamage (this is required by iBCS2).
-#
-# * Some older versions of ANSI.SYS have a bug that causes thems to require
-# ESC [ Pn k as EL rather than the ANSI ESC [ Pn K. (This is not ECMA-48
-# compatible.)
-
-#### Intel Binary Compatibility Standard
-#
-# For comparison, here are the capabilities implied by the Intel Binary
-# Compatibility Standard for UNIX systems (Intel order number 468366-001).
-# These recommendations are optional. IBCS2 allows the leading escape to
-# be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with
-# the ANSI X.364/ISO 6429/ECMA-48 standard. Here are the iBCS2 capabilities
-# (as described in figure 9-3 of the standard). Those expressed in the ibcs2
-# terminfo entry are followed with the corresponding capability in parens:
-#
-# CSI <n>k disable (n=0) or enable (n=1) keyclick
-# CSI 2h lock keyboard
-# CSI 2i send screen as input
-# CSI 2l unlock keyboard
-# CSI 6m enable background color intensity
-# CSI <0-2>c reserved
-# CSI <0-59>m select graphic rendition
-# CSI <n>;<m>H (cup) cursor to line n and column m
-# CSI <n>;<m>f cursor to line n and column m
-# CSI <n>@ (ich) insert characters
-# CSI <n>A (cuu) cursor up n lines
-# CSI <n>B (cud) cursor down n lines
-# CSI <n>C (cuu) cursor right n characters
-# CSI <n>D (cud) cursor left n characters
-# CSI <n>E cursor down n lines and in first column
-# CSI <n>F cursor up n lines and in first column
-# CSI <n>G (hpa) position cursor at column n-1
-# CSI <n>J (ed) erase in display
-# CSI <n>K (el) erase in line
-# CSI <n>L (il) insert line(s)
-# CSI <n>P (dch) delete characters
-# CSI <n>S (indn) scroll up n lines
-# CSI <n>T (rin) scroll down n lines
-# CSI <n>X (ech) erase characters
-# CSI <n>Z (cbt) back up n tab stops
-# CSI <n>` cursor to column n on line
-# CSI <n>a (cuu) cursor right n characters
-# CSI <n>d (vpa) cursor to line n
-# CSI <n>e cursor down n lines and in first column
-# CSI <n>g (cbt) clear all tabs
-# CSI <n>z make virtual terminal n active
-# CSI ?7h (smam) turn automargin on
-# CSI ?7l (rmam) turn automargin off
-# CSI s save cursor position
-# CSI u restore cursor position to saved value
-# CSI =<c>A set overscan color
-# CSI =<c>F set normal foreground color
-# CSI =<c>G set normal background color
-# CSI =<c>H set reverse foreground color
-# CSI =<c>I set reverse foreground color
-# CSI =<c>J set graphic foreground color
-# CSI =<c>K set graphic foreground color
-# CSI =<n>g (dispc) display n from alternate graphics character set
-# CSI =<p>;<d>B set bell parameters
-# CSI =<s>;<e>C set cursor parameters
-# CSI =<x>D enable/disable intensity of background color
-# CSI =<x>E set/clear blink vs. bold background
-# CSI 7 (sc) (sc) save cursor position
-# CSI 8 (rc) (rc) restore cursor position to saved value
-# CSI H (hts) (hts) set tab stop
-# CSI Q<n><string> define function key string
-# (string must begin and end with delimiter char)
-# CSI c (clear) clear screen
-#
-# The lack of any specification for attributes in SGR (among other things)
-# makes this a wretchedly weak standard. The table above is literally
-# everything iBSC2 has to say about terminal escape sequences; there is
-# no further discussion of their meaning or how to set the parameters
-# in these sequences at all.
-#
-
-######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE
-#
-# The historical termcap file entries were written primarily in 4.4BSD termcap.
-# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set,
-# with the extension names chosen for compatibility with the termcap names
-# assigned in System V terminfo. There are some variant extension sets out
-# there. We try to describe them here.
-#
-# XENIX extensions:
-#
-# The XENIX extensions include a set of function-key capabilities as follows:
-#
-# code XENIX variable name terminfo name name clashes?
-# ---- ------------------- ------------- -----------------------
-# CL key_char_left
-# CR key_char_right
-# CW key_change_window create_window
-# EN key_end kend
-# HM key_home khome
-# HP ??
-# LD key_delete_line kdl1
-# LF key_linefeed label_off
-# NU key_next_unlocked_cell
-# PD key_page_down knp
-# PL ??
-# PN start_print mc5
-# PR ??
-# PS stop_print mc4
-# PU key_page_up kpp pulse
-# RC key_recalc remove_clock
-# RF key_toggle_ref req_for_input
-# RT key_return kent
-# UP key_up_arrow kcuu1 parm_up_cursor
-# WL key_word_left
-# WR key_word_right
-#
-# The XENIX extensions also include the following character-set and highlight
-# capabilities:
-#
-# XENIX terminfo function
-# ----- -------- ------------------------------
-# GS smacs start alternate character set
-# GE rmacs end alternate character set
-# GG :as:/:ae: glitch (analogous to :sg:/:ug:)
-# bo blink begin blink (not used in /etc/termcap)
-# be end blink (not used in /etc/termcap)
-# bb blink glitch (not used in /etc/termcap)
-# it dim begin dim (not used in /etc/termcap)
-# ie end dim (not used in /etc/termcap)
-# ig dim glitch (not used in /etc/termcap)
-#
-# Finally, XENIX also used the following forms-drawing capabilities:
-#
-# single double type ASCII approximation
-# ------ ------ ------------- -------------------
-# GV Gv vertical line |
-# GH Gv horizontal line - _
-# G1 G5 top right corner _ |
-# G2 G6 top left corner |
-# G3 G7 bottom left corner |_
-# G4 G8 bottom right corner _|
-# GD Gd down-tick character T
-# GL Gl left-tick character -|
-# GR Gr right-tick character |-
-# GC Gc middle intersection -|-
-# GU Gu up-tick character _|_
-#
-# These were invented to take advantage of the IBM PC ROM character set. One
-# can compose an acsc string from the single-width characters as follows
-# "j{G4}k{G1}l{G2}m{G3}q{GH}x{GV}t{GR}u{GL}v{GU}w{GD}n{GC}"
-# When translating a termcap file, ncurses tic will do this automatically.
-# The double forms characters don't fit the SVr4 terminfo model.
-#
-# AT&T Extensions:
-#
-# 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 that BO=:mr: (start reverse video), DS=:mh:
-# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights),
-# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
-# cursor invisible), and CV=:ve: (make cursor normal).
-#
-# HP Extensions
-#
-# The HP library (as of mid-1995, their term.h file version 70.1) appears to
-# have the System V capabilities up to SVr1 level. After that, it supports
-# two nonstandard caps meml and memu corresponding to the old termcap :ml:,
-# :mu: capabilities. After that, it supports caps plab_norm, label_on,
-# label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the
-# HP binary format incompatible with SVr4's.
-#
-# IBM Extensions
-#
-# There is a set of nonstandard terminfos used by IBM's AIX operating system.
-# The AIX terminfo library diverged from SVr1 terminfo, and replaces all
-# capabilities following prtr_non with the following special capabilties:
-# box[12], batt[12], colb[0123456789], colf[0123456789], f[01234567], kbtab,
-# kdo, kcmd, kcpn, kend, khlp, knl, knpn, kppn, kppn, kquit, ksel, kscl, kscr,
-# ktab, kmpf[123456789], apstr, ksf1..ksf10, kf11...kf63, kact, topl, btml,
-# rvert, lvert. Some of these are identical to XPG4/SVr4 equivalents:
-# kcmd, kend, khlp, and kf11...kf63. Two others (kbtab and ksel) can be
-# renamed (to kcbt and kslt). The places in the box[12] capabilities
-# correspond to acsc chars, 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.
-# The AIX binary terminfo format is incompatible with SVr4's.
-#
-# Iris console extensions:
-#
-# HS is half-intensity start; HE is half-intensity end
-# CT is color terminal type (for Curses & rogue)
-# CP is color change escape sequence
-# CZ are color names (for Curses & rogue)
-#
-# The ncurses tic utility recognizes HS as an alias for mh <dim>.
-#
-# TC Extensions:
-#
-# There is a set of extended termcaps associated with something
-# called the "Terminal Control" or TC package created by MainStream Systems,
-# Winfield Kansas. This one also uses GS/GE for as/ae, and also uses
-# CF for civis and CO for cvvis. Finally, they define a boolean :ct:
-# that flags color terminals.
-#
-######## CHANGE HISTORY
-#
-# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
-# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
-# project.
-#
-# This file contains all the capability information present in John Kunze's
-# last version of the termcap master file, except as noted in the change
-# comments at end of file. Some information about very ancient obsolete
-# capabilities has been moved to comments. Some all-numeric names of older
-# terminals have been retired.
-#
-# I changed :MT: to :km: (the 4.4BSD name) everywhere. I commented out some
-# capabilities (EP, dF, dT, dV, kn, ma, ml, mu, xr, xx) that are no longer
-# used by BSD curses.
-#
-# The 9.1.0 version of this file was translated from my lightly-edited copy of
-# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for
-# the purpose. Unless the ncurses tic implementation and the Lisp code were
-# making perfectly synchronized mistakes which I then failed to catch by
-# eyeball, the translation was correct and perfectly information-preserving.
-#
-# Major version number bumps correspond to major version changes in ncurses.
-#
-# Here is a log of the changes since then:
-#
-# 9.1.0 (Wed Feb 1 04:50:32 EST 1995):
-# * First terminfo master translated from 8.3.
-# 9.2.0 (Wed Feb 1 12:21:45 EST 1995):
-# * Replaced Wyse entries with updated entries supplied by vendor.
-#
-# 9.3.0 (Mon Feb 6 19:14:40 EST 1995):
-# * Added contact & status info from G. Clark Brown <clark@sssi.com>.
-# 9.3.1 (Tue Feb 7 12:00:24 EST 1995):
-# * Better XENIX keycap translation. Describe TC termcaps.
-# * Contact and history info supplied by Qume.
-# 9.3.2 (Sat Feb 11 23:40:02 EST 1995):
-# * Raided the Shuford FTP site for recent termcaps/terminfos.
-# * Added information on X3.64 and VT100 standard escape sequences.
-# 9.3.3 (Mon Feb 13 12:26:15 EST 1995):
-# * Added a correct X11R6 xterm entry.
-# * Fixed terminfo translations of padding.
-# 9.3.4 (Wed Feb 22 19:27:34 EST 1995):
-# * Added correct acsc/smacs/rmacs strings for vt100 and xterm.
-# * Added u6/u7/u8/u9 capabilities.
-# * Added PCVT entry.
-# 9.3.5 (Thu Feb 23 09:37:12 EST 1995):
-# * Emacs uses :so:, not :mr:, for its mode line. Fix linux entry
-# to use reverse-video standout so Emacs will look right.
-# * Added el1 capability to ansi.
-# * Added smacs/rmacs to ansi.sys.
-#
-# 9.4.0 (Sat Feb 25 16:43:25 EST 1995):
-# * New mt70 entry.
-# * Added COPYRIGHTS AND OTHER DELUSIONS.
-# * Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics
-# smartvid & smarterm, ampex 175 & 219 & 232,
-# env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20,
-# ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2,
-# screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan,
-# adm36, mime314, ergo4000, ca22851. Replaced att7300, esprit, dd5500.
-# * Replaced the Perkin-Elmer entries with vendor's official ones.
-# * Restored the old minimal-ansi entry, luna needs it.
-# * Fixed some incorrect ip and proportional-padding translations.
-# 9.4.1 (Mon Feb 27 14:18:33 EST 1995):
-# * Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly.
-# * Make the xterm entry 65 lines again; create xterm25 and xterm24
-# to force a particular height.
-# * Added beehive4 and reorganized other Harris entries.
-# 9.4.2 (Thu Mar 9 01:45:44 EST 1995):
-# * Merged in DEC's official entries for its terminals. The only old
-# entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo).
-# * Replaced the translated BBN Bitgraph entries with purpose-built
-# ones from AT&T's SVr3.
-# * Replaced the AT&T entries with AT&T's official terminfos.
-# * Added teleray 16, vc415, cops10.
-# * Merged in many individual capabilities from SCO terminfo files.
-# 9.4.3 (Mon Mar 13 02:37:53 EST 1995):
-# * Typo fixes.
-# * Change linux entry so A_PROTECT enables IBM-PC ROM characters.
-# 9.4.4 (Mon Mar 27 12:32:35 EST 1995):
-# * Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803,
-# pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21,
-# simterm, citoh and variants.
-# * Replaced sol entry with sol1 and sol2.
-# * Replaced Qume QVT and Freedom-series entries with purpose-built
-# terminfo entries.
-# * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek
-# and dg200 entries using caps from from SCO.
-# * Added the usual set of function-key mappings to ANSI entry.
-# * Corrected xterm's function-key capabilities.
-# 9.4.5 (Tue Mar 28 14:27:49 EST 1995):
-# * Fix in xterm entry, cub and cud are not reliable under X11R6.
-# 9.4.6 (Thu Mar 30 14:52:15 EST 1995):
-# * Fix in xterm entry, get the arrow keys right.
-# * Change some \0 escapes to \200.
-# 9.4.7 (Tue Apr 4 11:27:11 EDT 1995)
-# * Added apple (Videx card), adm1a, oadm31.
-# * Fixed malformed ampex csr.
-# * Fixed act4, cyb110; they had old-style prefix padding left in.
-# * Changed mandatory to advisory padding in many entries.
-# * Replaced HP entries up to hpsub with purpose-built ones.
-# * Blank rmir/smir/rmdc/smdc capabilities removed.
-# * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
-# 9.4.8 (Fri Apr 7 09:36:34 EDT 199):
-# * Replaced the Ann Arbor entries with SCO's, the init strings are
-# more efficient (but the entries otherwise identical).
-# * Added dg211 from Shuford archive.
-# * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk,
-# adm42-nl, pc52, gs6300, xerox820, uts30.
-# * Pull SCO's padding into vi200 entry.
-# * Improved capabilities for tvi4107 and other Televideo and Viewpoint
-# entries merged in from SCO's descriptions.
-# * Fixed old-style prefix padding on zen50, h1500.
-# * Moved old superbee entry to superbee-xsb, pulled in new superbee
-# entry from SCO's description.
-# * Reorganized the special entries.
-# * Added lm#0 to cbunix and virtual entries.
-#
-# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995):
-# * Restored cdc456tst.
-# * Fixed sb1 entry, SCO erroneously left out the xsb glitch.
-# * Added megatek, beacon, microkit.
-# * Freeze for ncurses-1.9 release.
-# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995):
-# * Added historical data for TAB.
-# * Comment fixes from David MacKenzie.
-# * Added the new BSDI pc3 entry.
-# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995)
-# * A change in the tic -C logic now ensures that all entries in
-# the termcap translation will fit in < 1024 bytes.
-# * Added `bobcat' and `gator' HP consoles and the Nu machine entries
-# from GNU termcap file. This merges in all their local information.
-# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995)
-# * Changed tic -C logic to dump all capabilities used by GNU termcap.
-# * Added warnings about entries with long translations (restoring
-# all the GNU termcaps pushes a few over the edge).
-# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995)
-# * Yet another tic change, and a couple of entry tweaks, to reduce the
-# number of long (> 1024) termcap translations back to 0.
-#
-# 9.6.0 (Mon May 1 10:35:54 EDT 1995)
-# * Added kf13-kf20 to Linux entry.
-# * Regularize Prime terminal names.
-# * Historical data on Synertek.
-# * Freeze for ncurses-1.9.1.
-# 9.6.1 (Sat May 6 02:00:52 EDT 1995):
-# * Added true xterm-color entry, renamed djm's pseudo-color entry.
-# * Eliminate whitespace in short name fields, this tanks some scripts.
-# * Name field changes to shorten some long entries.
-# * Termcap translation now automatically generates empty rmir/smir
-# when ich1/ich is present (copes with an ancient vi bug).
-# * Added `screen' entries from FSF's screen-3.6.2.
-# * Added linux-nic and xterm-nic entries.
-# 9.6.2 (Sat May 6 17:00:55 EDT 1995):
-# * Change linux entry to use smacs=\E[11m and have an explicit acsc,
-# eliminating some special-case code in ncurses.
-#
-# 9.7.0 (Tue May 9 18:03:12 EDT 1995):
-# * Added vt320-k3, rsvidtx from the Emacs termcap.dat file. I think
-# that captures everything unique from it.
-# * Added reorder script generator.
-# * Freeze for ncurses 1.9.2 release.
-# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995):
-# * Added Sean Farley's kspd, flash, rs1 capabilities for linux.
-# * Added Olaf Siebert's corrections for adm12.
-# * ansi-pc-color now includes the colors and pairs caps, so that
-# entries which use it will inherit them automatically.
-# * The linux entry can now recognize the center (keypad 5) key.
-# * Removed some junk that found its way into Linux acsc.
-#
-# 9.8.0 (Fri Jul 7 04:46:57 EDT 1995):
-# * Add 50% cut mark as a desperate hack to reduce tic's core usage.
-# * xterm doesn't try to use application keypad mode any more.
-# * Freeze for ncurses-1.9.3 release.
-# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995):
-# * Added corrected sun entry from vendor.
-# * Added csr capability to linux entry.
-# * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG.
-# * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators.
-# * Some commented-out caps in long entries come back in, my code
-# for computing string-table lengths had a bug in it.
-# * pcansi series modified to fit comm-program reality better.
-# 9.8.2 (Sat Sep 9 23:35:00 EDT 1995):
-# * BSD/OS actually ships the ibmpc3 bold entry as its console.
-# * Correct some bad aliases in the pcansi series
-# * Added entry for QNX console.
-# * Clean up duplicate long names for use with 4.4 library.
-# * Change vt100 standout to be normal reverse vide, not bright reverse;
-# this makes the Emacs status line look better.
-# 9.8.3 (Sun Sep 10 13:07:34 EDT 1995):
-# * Added Adam Thompson's VT320 entries, also his dtx-sas and z340.
-# * Minor surgery, mostly on name strings, to shorten termcap version.
-#
-# 9.9.0 (Sat Sep 16 23:03:48 EDT 1995):
-# * Added dec-vt100 for use with the EWAN emulator.
-# * Added kmous to xterm for use with xterm's mouse-tracking facility.
-# * Freeze for 1.9.5 alpha release.
-# 9.9.1 (Wed Sep 20 13:46:09 EDT 1995):
-# * Changed xterm lines to 24, the X11R6 default.
-# 9.9.2 (Sat Sep 23 21:29:21 EDT 1995):
-# * Added 7 newly discovered, undocumented acsc characters to linux
-# entry (the pryz{|} characters).
-# * ncurses no longer steals A_PROTECT. Simplify linux sgr accordingly.
-# * Correct two typos in the xterm entries introduced in 9.9.1.
-# * I finally figured out how to translate ko capabilities. Done.
-# * Added tvi921 entries from Tim Theisen.
-# * Cleanup: dgd211 -> dg211, adm42-nl -> adm42-nsl.
-# * Removed mystery tec entry, it was neither interesting nor useful.
-# * shortened altos3, qvt203, tvi910+, tvi92D, tvi921-g, tvi955, vi200-f,
-# vi300-ss, att505-24, contel301, dm3045, f200vi, pe7000c, vc303a,
-# trs200, wind26, wind40, wind50, cdc456tst, dku7003, f110, dg211,
-# by making them relative to use capabilities
-# * Added cuf1=^L to tvi925 from deleted variant tvi925a.
-# * fixed cup in adm22 entry and parametrized strings in vt320-k3.
-# * added it#8 to entries that used to have :pt: -- tvi912, vi200,
-# ampex80,
-# * Translate all home=\E[;H capabilities to home=\E[H, they're
-# equivalent.
-# * Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of
-# vt100 and ANSI-like terminals.
-# 9.9.3 (Tue Sep 26 20:11:15 EDT 1995):
-# * Added it#8 and ht=\t to *all* entries with :pt:; the ncurses tic
-# does this now, too.
-# * fviewpoint is gone, it duplicated screwpoint.
-# * Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c,
-# ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3,
-# versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW.
-# The UW vi50 replaces the old one, which becomes vi50adm,
-# * No more embedded commas in name fields.
-#
-# 9.10.0 (Wed Oct 4 15:39:37 EDT 1995):
-# * XENIX forms characters in fos, trs16, scoansi become acsc strings,
-# * Introduced klone+* entries for describing Intel-console behavior.
-# * Linux kbs is default-mapped to delete for some brain-dead reason.
-# * -nsl -> -ns. The -pp syntax is obsolete.
-# * Eliminate [A-Z]* primaries in accordance with SVr4 terminfo docs.
-# * Make xterm entry do application-keypad mode again. I got complaints
-# that it was messing up someone's 3270 emulator.
-# * Added some longname fields in order to avoid warning messages from
-# older tic implementations.
-# * According to ctlseqs.ms, xterm has a full vt100 graphics set. Use
-# it! (This gives us pi, greater than, less than, and a few more.)
-# * Freeze for ncurses-1.9.6 release.
-# 9.10.1 (Sat Oct 21 22:18:09 EDT 1995):
-# * Add xon to a number of console entries, they're memory-mapped and
-# don't need padding.
-# * Correct the use dependencies in the ansi series.
-# * Hand-translate more XENIX capabilities.
-# * Added hpterm entry for HP's X terminal emulator.
-# * Added aixterm entries.
-# * Shortened four names so everything fits in 14 chars.
-#
-# 9.11.0 (Thu Nov 2 17:29:35 EST 1995):
-# * Added ibcs2 entry and info on iBCS2 standard.
-# * Corrected hpa/vpa in linux entry. They still fail the worm test.
-# * We can handle the HP meml/memu capability now.
-# * Added smacs to klone entries, just as documentation.
-# * Carrected ansi.sys and cit-500 entries.
-# * Added z39, vt320-k311, v220c, and avatar entries.
-# * Make pcansi use the ansi.sys invis capability.
-# * Added DIP switch descriptions for vt100, adm31, tvi910, tvi920c,
-# tvi925, tvi950, dt80, ncr7900i, h19.
-# * X3.64 has been withdrawn, change some references.
-# * Removed function keys from ansi-m entry.
-# * Corrected ansi.sys entry.
-# * Freeze for ncurses-1.9.7 release.
-# 9.11.1 (Tue Nov 6 18:18:38 EST 1995):
-# * Added rmam/smam capabilities to many entries based on init strings.
-# * Added correct hpa/vpa to linux.
-# * Reduced several entries relative to vt52.
-# 9.11.2 (Tue Nov 7 00:21:06 EST 1995):
-# * Exiled some utterly unidentifiable custom and homebrew types to the
-# UFO file; also, obsolete small-screen hardware; also, entries which
-# look flat-out incorrect, garbled, or redundant. These include the
-# following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec,
-# tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile,
-# apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu,
-# fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55,
-# yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2,
-# vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200,
-# trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40,
-# att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w,
-# tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na,
-# c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na,
-# regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb,
-# vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam,
-# vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms.
-# * Corrected pcvt25h as suggested by Brian C. Grayson
-# <bgrayson@pine.ece.utexas.edu>.
-# 9.11.3 (Thu Nov 9 12:14:40 EST 1995):
-# * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H.
-# * Added kent=\EOM to xterm entry.
-#
-# 9.11.4 (Fri Nov 10 08:31:35 EST 1995):
-# * Corrected gigi entry.
-# * Restored cuf/cud1 to xterm, their apparent bugginess was due to
-# bad hpa/vpa capabilities.
-# * Corrected flash strings to have a uniform delay of .2 sec. No
-# more speed-dependent NUL-padding!
-# * terminfo capabilities in comments bracketed with <>.
-# 9.11.5 (Fri Nov 10 15:35:02 EST 1995):
-# * Replaced pcvt with the 3.31 pcvt entries.
-# * Freeze for 1.9.7a.
-# 9.11.6 (Mon Nov 13 10:20:24 EST 1995):
-# * Added emu entry from the X11R6 contrib tape sources.
-#
-# 9.12.0 (Wed Nov 29 04:22:25 EST 1995):
-# * Improved iris-ansi and sun entries.
-# * More flash string improvements.
-# * Corrected wy160 & wy160 as suggested by Robert Dunn
-# * Added dim to at386.
-# * Reconciled pc3 and ibmpc3 with the BSDI termcap file. Keith says
-# he's ready to start using the termcap generated from this one.
-# * Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m,
-# ln03, lno3-w, h19-g, z29a*, qdss. Made vt200 an alias of vt220.
-# * Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925,
-# att610, att620, att630,
-# * Changed hazeltine name prefix from h to hz.
-# * Sent t500 to the UFI file.
-# * I think we've sucked all the juice out of BSDI's termcap file now.
-# * Freeze for ncurses 1.9.8 release
-# 9.12.1 (Thu Nov 30 03:14:06 EST 1995)
-# * Unfreeze, linux kbs needed to be fixed.
-# * Tim Theisen pinned down a bug in the DMD firmware.
-# 9.12.2 (Thu Nov 30 19:08:55 EST 1995):
-# * Fixes to ansi and klone capabilities (thank you, Aaron Ucko).
-# (The broken ones had been shadowed by sgr.)
-# 9.12.3 (Thu Dec 7 17:47:22 EST 1995):
-# * Added documentation on ECMA-48 standard.
-# * New Amiga entry.
-# 9.12.4 (Thu Dec 14 04:16:39 EST 1995):
-# * More ECMA-48 stuff
-# * Corrected typo in minix entry, added pc-minix.
-# * Corrected khome/kend in xterm (thank you again, Aaron Ucko).
-# * Added rxvt entry.
-# * Added 1.3.x color-change capabilities to linux entry.
-# 9.12.5 (Tue Dec 19 00:22:10 EST 1995):
-# * Corrected rxvt entry khome/kend.
-# * Corrected linux color change capabilities.
-# * NeXT entries from Dave Wetzel.
-# * Cleaned up if and rf file names (all in /usr/share now).
-# * Changed linux op capability to avoid screwing up a background color
-# pair set by setterm.
-# 9.12.6 (Wed Feb 7 16:14:35 EST 1996):
-# * Added xterm-sun.
-# 9.12.7 (Fri Feb 9 13:27:35 EST 1996):
-# * Added visa50.
-#
-# 9.13.0 (Sun Mar 10 00:13:08 EST 1996):
-# * Another sweep through the Shuford archive looking for new info.
-# * Added dg100 alias to dg6053 based on a comp.terminals posting.
-# * Added st52 from Per Persson.
-# * Added eterm from the GNU Emacs 19.30 distribution.
-# * Freeze for 1.9.9.
-# 9.13.1 (Fri Mar 29 14:06:46 EST 1996):
-# * FreeBSD console entries from Andrew Chernov.
-# * Removed duplicate Atari st52 name.
-# 9.13.2 (Tue May 7 16:10:06 EDT 1996)
-# * xterm doesn't actually have ACS_BLOCK.
-# * Change klone+color setf/setb to simpler forms that can be
-# translated into termcap.
-# * Added xterm1.
-# * Removed mechanically-generated junk capabilities from cons* entries.
-# * Added color support to bsdos.
-# 9.13.3 (Thu May 9 10:35:51 EDT 1996):
-# * Added Wyse 520 entries from Wm. Randolph Franklin <wrf@ecse.rpi.edu>.
-# * Created ecma+color, linux can use it. Also added ech to linux.
-# * Teach xterm about more keys. Add Thomas Dickey's 3.1.2E updates.
-# * Add descriptions to FreeBSD console entries. Also shorten
-# some aliases to <= 14 chars for portability.
-# * Added x68k console
-# * Added OTbs to several VT-series entries.
-# 9.13.4 (Wed May 22 10:54:09 EDT 1996):
-# * screen entry update for 3.7.1 from Michael Alan Dorfman.
-# 9.13.5 (Wed Jun 5 11:22:41 EDT 1996):
-# * kterm correction due to Kenji Rikitake.
-# * ACS correction in vt320-kll due to Phillippe De Muyter.
-# 9.13.6 (Sun Jun 16 15:01:07 EDT 1996):
-# * Sun console entry correction from J.T. Conklin.
-# * Changed all DEC VT300 and up terminals to use VT300 tab set
-# 9.13.7 (Mon Jul 8 20:14:32 EDT 1996):
-# * Added smul to linux entry (we never noticed it was missing
-# because of sgr!).
-# * Added rmln to hp+labels (deduced from other HP entries).
-# * Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas,
-# pro350, att7300, 5420_2, att4418, att4424, att4426, att505, vt320-k3.
-# * Corrected vt220 acsc.
-# * The klone+sgr and klone+sgr-dumb entries now use klone+acs;
-# this corresponds to reality and helps prevent some tic warnings.
-# * Added sgr0 to c101, pcix, vt100-nav, screen2, oldsun, next, altos2,
-# hpgeneric, hpansi, hpsub, hp236, hp700-wy, bobcat, dku7003, adm11,
-# adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200,
-# qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc,
-# wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90,
-# adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p,
-# f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000,
-# owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx,
-# lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25,
-# dw3, ln03, ims-ansi, graphos, t16, zen30, xtalk, simterm, d800,
-# ifmr, v3220, wy100q, tandem653, ibmaed.
-# * Added DWK terminal description.
-# 9.13.8 (Wed Jul 10 11:45:21 EDT 1996):
-# * Many entries now have highlights inherited from adm+sgr.
-# * xterm entry now corresponds to XFree86 3.1.2E, with color.
-# * xtitle and xtitle-twm enable access to the X status line.
-# * Added linux-1.3.6 color palette caps in conventional format.
-# * Added adm1178 terminal.
-# * Move fos and apollo terminals to obsolete category.
-# * Aha! The BRL terminals file told us what the Iris extensions mean.
-# * Added, from the BRL termcap file: rt6221, rt6221-w, northstar,
-# commodore, cdc721-esc, excel62, osexec. Replaced from the BRL file:
-# cit500, adm11.
-# 9.13.9 (Mon Jul 15 00:32:51 EDT 1996):
-# * Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756,
-# aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155.
-# * Corrected, from BRL termcap file: vi50.
-# * Better rxvt entry & corrected xterm entries from Thomas Dickey.
-# 9.13.10 (Mon Jul 15 12:20:13 EDT 1996):
-# * Added from BRL: cit101e & variants, hmod1, vi200, ansi77, att5620-1,
-# att5620-s, att5620-s, dg210, aas1901, hz1520, hp9845, osborne
-# (old osborne moved to osborne-w), tvi970-vb, tvi970-2p, tvi925-hi,
-# tek4105brl, tek4106brl, tek4107brl,tek4109brl, hazel, aepro,
-# apple40p, apple80p, appleIIgs, apple2e, apple2e-p, apple-ae.
-# * Paired-attribute fixes to various terminals.
-# * Sun entry corrections from A. Lukyanov & Gert-Jan Vons.
-# * xterm entry corrections from Thomas Dickey.
-# 9.13.11 (Tue Jul 30 16:42:58 EDT 1996):
-# * Added t916 entry, translated from a termcap in SCO's support area.
-# * New qnx entry from Michael Hunter.
-# 9.13.12 (Mon Aug 5 14:31:11 EDT 1996):
-# * Added hpex2 from Ville Sulko.
-# * Fixed a bug that ran the qnx and pcvtXX together.
-# 9.13.13 (Fri Aug 9 01:16:17 EDT 1996):
-# * Added dtterm entry from Solaris CDE.
-# 9.13.14 (Tue Sep 10 15:31:56 EDT 1996):
-# * corrected pairs#8 typo in dtterm entry.
-# * added tvi9065.
-# 9.13.15 (Sun Sep 15 02:47:05 EDT 1996):
-# * updated xterm entry to cover 3.1.2E's new features.
-# 9.13.16 (Tue Sep 24 12:47:43 EDT 1996):
-# * Added new minix entry
-# * Removed aliases of the form ^[0-9]* for obsolete terminals.
-# * Commented out linux-old, nobody's using pre-1.2 kernels now.
-# 9.13.17 (Fri Sep 27 13:25:38 EDT 1996):
-# * Added Prism entries and kt7ix.
-# * Caution notes about EWAN and tabset files.
-# * Changed /usr/lib/tabset -> /usr/share/tabset.
-# * Added acsc/rmacs/smacs to vt52.
-# 9.13.18 (Mon Oct 28 13:24:59 EST 1996):
-# * Merged in Thomas Dickey's reorganization of the xterm entries;
-# added technical corrections to avoid warning messages.
-# 9.13.19 (Sat Nov 16 16:05:49 EST 1996):
-# * Added rmso=\E[27m in Linux entry.
-# * Added koi8-r support for Linux console.
-# * Replace xterm entries with canonical ones from XFree86 3.2.
-# 9.13.20 (Sun Nov 17 23:02:51 EST 1996):
-# * Added color_xterm from Jacob Mandelson
-# 9.13.21 (Mon Nov 18 12:43:42 EST 1996):
-# * Back off the xterm entry to use r6 as a base.
-# 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
-# * Added dec-vt220 at Adrian Garside's request.
-# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
-# * Replaced minitel-2 entry.
-# * Added MGR, ansi-nt.
-# * Minor corrections to xterm entries.
-# * Replaced EWAN telnet entry.
-# * Dropped the reorder script generator. It was a fossil.
-# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
-# * Thorsten Lockert added termcap `bs' to a lot of types, working from
-# the 4.4BSD Lite2 file.
-# 9.13.25 (Fri Jun 20 12:33:36 EDT 1997):
-# * Added Datapoint 8242, pilot, ansi_psx, rbcomm, vt220js.
-# * Updated iris-ansi; corrected vt102-w.
-# * Switch base xterm entry to 3.3 level.
-# 9.13.26 (Mon Jun 30 22:45:45 EDT 1997)
-# * Added basic4.
-# * Removed rmir/smir from tv92B.
-#
-# 10.2.0 (Sat Feb 28 12:47:36 EST 1998):
-# * add hds200 description (Walter Skorski)
-# * add beterm entry (Fred Fish)
-# * add Thomas Dickey's xterm-xf86-v40, xterm-8bit, xterm-16color,
-# iris-color entries.
-# * add emx entries.
-# * Replaced unixpc entry with Benjamin Sittler's corrected version.
-# * Replaced xterm/rxvt/emu/syscons entries with Thomas Dickey's
-# versions.
-# * remove sgr string from qnx based on report by Xiaodan Tang
-# * Added u8/u9, removed rmul/smul from sun-il.
-# * 4.2 tic displays \0 rather than \200.
-# * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
-# apparently based on cp-866).
-# * Merged in Pavel Roskin's acsc for linux-koi8
-# * Corrected some erroneous \\'s to \.
-# * 4.2 ncurses has been changed to use setaf/setab, consistent w/SysV.
-# * II -> ii in pcvtXX, screen, xterm.
-# * Removed \n chars following ANSI escapes in sgr & friends.
-# * Updated Wyse entries.
-# * h19 corrections from Tim Pierce.
-# * Noted that the dm2500 has both ich and smir.
-# * added pccons for the Alpha under OSF/1.
-# * Added Sony NEWS workstation entries and cit101e-rv.
-# * Reverted `amiga'; to Kent Polk's version, as I'm told
-# the Verkuil entry messes up with Amiga Telnet.
-# 10.2.1 (Sun Mar 8 18:32:04 EST 1998):
-# * Corrected attributions in 10.2.0 release notes.
-# * Scanned the Shuford archive for new terminfos and information.
-# * Removed sgr from qnx entry (Thomas Dickey).
-# * Added entries for ICL and Kokusai Data Systems terminals.
-# * Incorporated NCR terminfos from the Boundless Technology FTP site.
-# * Incorporated att700 from the Boundless Technology FTP site.
-# * Miscellaneous contact-address and Web-page updates.
-#
-# 1998/5/9
-# * add nxterm and xterm-color terminfo description (request by Cristian
-# Gafton <gafton@redhat.com>).
-# * modify rxvt terminfo description to clear alternate screen before
-# switching back to normal screen, for compatibility with applications
-# which use xterm (reported by Manoj Kasichainula <manojk@io.com>).
-# * modify linux terminfo description to reset color palette (reported
-# by Telford Tendys <telford@eng.uts.edu.au>).
-#
-# 1998/7/4
-# * merge changes from current XFree86 xterm terminfo descriptions.
-#
-# 1998/7/25
-# * Added minitel1 entries from Alexander Montaron.
-# * Added qnxt2 from Federico Bianchi.
-# * Added arm100 terminfo entries from Dave Millen.
-#
-# 1998/8/6
-# * Added ncsa telnet entries from Francesco Potorti
-#
-# 1998/8/15
-# * modify ncsa telnet entry to reflect color, other capabilities based on
-# examination of the source code - T.Dickey.
-#
-# 1998/8/22
-# * Corrected some erroneous \\'s to \ (eterm, osborne) - TD.
-#
-# 1998/8/29
-# * Added Francesco Potorti's tuned Wyse 99 entries.
-# * dtterm enacs correction from Alexander V. Lukyanov.
-# * Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version.
-# * correct a typo in icl6404 entry.
-# * add xtermm and xtermc
-#
-# 1998/9/26
-# * format most %'char' sequences to %{number}
-# * adapt IBM AIX 3.2.5 terminfo - T.Dickey
-# * merge Data General terminfo from Hasufin <hasufin@vidnet.net> - TD
-#
-# 1998/10/10
-# * update xterm-xfree86 to current (patch 84), for is2/rs2 changes - TD
-# * correct initialization string in xterm-r5, add misc other features
-# to correspond with xterm patch 84 - TD
-#
-# 1998/12/19
-# * update xterm-xfree86 to current (patch 90), smcur/rmcur changes - TD
-# * add Mathew Vernon's mach console entries
-# * corrections for ncsa function-keys (report by Larry Virden)
-#
-# 1998/12/19
-# * change linux to use ncv#2, since underline does not work with color - TD
-#
-# 1999/1/9
-# * add kbt to iris-ansi, document other shift/control functionkeys - TD
-# * correct iris-ansi and iris-ansi-ap with respect to normal vs keypad
-# application modes, change kent to use the correct keypad code - TD
-#
-# 1999/1/10
-# * add entry for Tera Term - TD
-#
-# 1999/1/23
-# * minor improvements for teraterm entry - TD
-# * rename several entries used by BSDI: bsdos to bsdos-pc-nobold,
-# and bsdos-bold to bsdos-pc (Jeffrey C Honig)
-#
-# 1999/2/20
-# * resolve ambiguity of kend/kll/kslt and khome/kfnd/kich1 strings in
-# xterm and ncsa entries by removing the unneeded ones. Note that
-# some entries will return kend & khome versus kslt and kfnd, for
-# PC-style keyboards versus strict vt220 compatiblity - TD
-#
-# 1999/3/13
-# * adjust xterm-xfree86 khome/kend to match default PC-style keyboard
-# tables - TD
-# * add 'crt' entry - TD
-# * correct typos in 'linux-c' entry - TD
-#
-# 1999/3/14
-# * update entries for BSD/OS console to use klone+sgr and klone+color
-# (Jeffrey C Honig)
-#
-# 1999/3/27
-# * adjust xterm-xfree86 miscellaneous keypad keys, as per patch #94 - TD.
-#
-# 1999/4/10
-# * add linux-lat, from RedHat patches to ncurses 4.2
-#
-# 1999/4/17
-# * add complete set of default function-key definitions for scoansi - TD.
-#
-# 1999/7/3
-# * add cnorm, cvvis for Linux 2.2 kernels
-#
-# 1999/7/24
-# * add kmous to xterm-r5 -TD
-# * correct entries xterm+sl and xterm+sl-twm, which were missing the
-# parent "use" clause -TD
-#
-# 1999/7/31
-# * corrected cnorm, added el1 in 'screen' description -TD
-#
-# 1999/8/14
-# * add ms-vt100 -TD
-#
-# 1999/8/21
-# * corrections to beterm entry -TD
-#
-# 1999/8/28
-# * add cygwin entry -TD
-#
-# 1999/9/4
-# * minor corrections for beterm entry -TD
-#
-# 1999/9/18
-# * add acsc string to HP 70092 terminfo entry -Joerg Wunsch
-#
-# 1999/9/25
-# * add amiga-8bit entry
-# * add console entries from NetBSD: ofcons, wsvt25, wsvt25m, rcons,
-# rcons-color, based on
-# ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/termcap/termcap.src
-# * add alias for iris-ansi-net
-#
-# 1999/10/2
-# * corrected scoansi entry's acsc, some function keys, add color -TD
-#
-# 1999/10/23
-# * add cnorm, cvvis to cons25w, and modify ncv to add 'dim' -TD
-# * reorder ncsa entries to make ncsa-vt220 use the alternate function
-# key mapping, leaving Potorti's entries more like he named them -TD
-# * remove enter/exit am-mode from cygwin -TD
-#
-# 1999/10/30
-# * correct typos in several entries (missing '[' from CSI):
-# mgr-sun, ncsa-m, vt320-k3, att505, avt-ns, as well as smir/rmir
-# strings for avt-ns -TD
-# * add 'dim' to ncv mask for linux (report by Klaus Weide).
-#
-# 1999/11/27
-# * correct kf1-kf4 in xterm-r6 which were vt100-style PF1-PF4 -TD
-# * add hts to xterm-r6, and u6-u9 to xterm-r5 -TD
-# * add xterm-88color and xterm-256color -TD
-#
-# 1999/12/4
-# * add "obsolete" termcap strings -TD
-# * add kvt and gnome entries -TD
-#
-# 1999/12/11
-# * correct cup string for regent100 -TD
-#
-# 2000/1/1
-# * update mach, add mach-color based on Debian diffs for ncurses 5.0 -TD
-# * add entries for xterm-hp, xterm-vt220, xterm-vt52 and xterm-noapp -TD
-# * change OTrs capabilities to rs2 -TD
-# * add obsolete and extended capabilities to 'screen' -TD
-#
-# 2000/1/5
-# * remove kf0 from rxvt, vt520, vt525 and ibm5151 since it conflicts
-# with kf10 -TD
-# * updated xterm-xf86-v40, making kdch1 correspond to vt220 'Remove',
-# and adding kcbt -TD
-#
-# 2000/1/12
-# * remove incorrect khome/kend from xterm-xf86-v333, which was based on
-# nonstandard resource settings -TD
-#
-# 2000/2/26
-# * minor fixes for xterm-*, based on Debian #58530 -TD
-#
-# 2000/3/4
-# * add several terminal types from esr's "11.0", as well as comments.
-# bq300*, dku7102-old, dku7202, hft, lft, pcmw, pmcons, tws*, vip*,
-# vt220-8bit, vt220-old, wy85-8bit
-#
-# 2000/3/18
-# * add several terminal types from esr's "11.0.1" (ansi-*).
-# * update OTxx capabilities for changes on 2000/3/4.
-# * revert part of vt220 change (request by Todd C Miller for OpenBSD)
-#
-# 2000/3/26
-# * move screen's AX extension to ecma+color, modify several entries to
-# use that, adjusting ncv as needed -TD
-#
-# 2000/4/8
-# * add bsdos-pc-m, bsdos-pc-mono (Jeffrey C Honig)
-# * correct spelling error in entry name: bq300-rv was given as bg300-rv
-# in esr's version.
-#
-# 2000/4/15
-# * add cud, ech, etc., to beterm based on feedback from Rico Tudor -TD
-# * correct color definition for ibm3164, make minor changes to other
-# IBM terminal definitions based on recent terminfo descriptions -TD
-#
-# 2000/4/22
-# * add mgterm, from NetBSD -TD
-# * add alias sun-cgsix for sun-ss5 as per NetBSD
-# * change cons25w to use rs2 for reset rather than rs1 -TD
-# * add rc/sc to aixterm based on manpage -TD
-#
-# 2000/5/13
-# * remove ncv from xterm-16color, xterm-256 color
-#
-# 2000/6/10
-# * add kmous capability to linux to use Joerg Schoen's gpm patch.
-#
-# 2000/7/1
-# * add Eterm (Michael Jennings)
-#
-# 2000-07-18
-# * add amiga-vnc entry.
-#
-# 2000-08-12
-# * correct description of Top Gun Telnet.
-# * add kterm-color
-#
-# 2000-08-26
-# * add qansi* entries from QNX ftp site.
-#
-# 2000-09-16
-# * add Matrix Orbital entries by Eric Z. Ayers).
-# * add xterm-basic, xterm-sco entries, update related entries to XFree86
-# 4.0.1c -TD
-#
-# 2000-09-17
-# * add S0, E0 extensions to screen's entry -TD
-#
-# 2000-09-23
-# * several corrections based on tic's new parameter-checking code -TD
-# * modify xterm-r6 and similar rs2 sequences which had \E7...\E8
-# bracketing sequences that reset video attributes (\E8 would restore
-# them) -TD
-#
-# The following sets edit modes for GNU EMACS.
-# Local Variables:
-# fill-prefix:"\t"
-# fill-column:75
-# comment-column:0
-# comment-start-skip:"^#+"
-# comment-start:"# "
-# compile-command:"tic -c terminfo.master"
-# End:
-######## SHANTIH! SHANTIH! SHANTIH!
diff --git a/ncurses-5.2/mk-0th.awk b/ncurses-5.2/mk-0th.awk
deleted file mode 100644
index 19c0038..0000000
--- a/ncurses-5.2/mk-0th.awk
+++ /dev/null
@@ -1,91 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Generate list of sources for a library, together with lint/lintlib rules
-#
-# Variables:
-# name (library name, e.g., "ncurses", "panel", "forms", "menus")
-#
-BEGIN {
- print ""
- print "# generated by mk-0th.awk"
- print ""
- print ".SUFFIXES: .c .h .i"
- print ".c.i :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ".h.i :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ""
- found = 0;
- }
- !/^[@#]/ {
- if ( $0 != "" )
- {
- if ( found == 0 )
- {
- printf "C_SRC ="
- if ( $2 == "lib" )
- found = 1
- else
- found = 2
- }
- printf " \\\n\t%s/%s.c", $3, $1
- }
- }
-END {
- print ""
- if ( found == 1 )
- {
- print ""
- printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", name
- print "# it in the lintlib rule. We'll only remove in the cleanest setup."
- print "clean ::"
- printf "\trm -f llib-l%s.*\n", name
- print ""
- print "realclean ::"
- printf "\trm -f llib-l%s\n", name
- print ""
- printf "llib-l%s : $(C_SRC)\n", name
- printf "\tcproto -a -l -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
- print ""
- print "lintlib :"
- printf "\t$(srcdir)/../misc/makellib %s $(CPPFLAGS)", name
- print ""
- print "lint :"
- print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)"
- }
- else
- {
- print ""
- print "lintlib :"
- print "\t@echo no action needed"
- }
- }
diff --git a/ncurses-5.2/mk-1st.awk b/ncurses-5.2/mk-1st.awk
deleted file mode 100644
index 18d1146..0000000
--- a/ncurses-5.2/mk-1st.awk
+++ /dev/null
@@ -1,311 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,2000
-#
-# Generate list of objects for a given model library
-# Variables:
-# name (library name, e.g., "ncurses", "panel", "forms", "menus")
-# model (directory into which we compile, e.g., "obj")
-# prefix (e.g., "lib", for Unix-style libraries)
-# suffix (e.g., "_g.a", for debug libraries)
-# MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
-# depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
-# subset ("none", "base", "base+ext_funcs" or "termlib")
-# target (cross-compile target, if any)
-# ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
-# 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
-#
-# Notes:
-# CLIXs nawk does not like underscores in command-line variable names.
-# Mixed-case is ok.
-# HP/UX requires shared libraries to have executable permissions.
-#
-function symlink(src,dst) {
- if ( src != dst ) {
- printf "rm -f %s; ", dst
- printf "$(LN_S) %s %s; ", src, dst
- }
- }
-function rmlink(directory, dst) {
- printf "\t-rm -f %s/%s\n", directory, dst
-}
-function removelinks(directory) {
- rmlink(directory, end_name);
- if ( DoLinks == "reverse" ) {
- if ( ShlibVer == "rel" ) {
- rmlink(directory, abi_name);
- rmlink(directory, rel_name);
- } else if ( ShlibVer == "abi" ) {
- rmlink(directory, abi_name);
- }
- } else {
- if ( ShlibVer == "rel" ) {
- rmlink(directory, abi_name);
- rmlink(directory, lib_name);
- } else if ( ShlibVer == "abi" ) {
- rmlink(directory, lib_name);
- }
- }
- }
-function sharedlinks(directory) {
- if ( ShlibVer != "auto" ) {
- printf "\tcd %s && (", directory
- if ( DoLinks == "reverse" ) {
- if ( ShlibVer == "rel" ) {
- symlink(lib_name, abi_name);
- symlink(abi_name, rel_name);
- } else if ( ShlibVer == "abi" ) {
- symlink(lib_name, abi_name);
- }
- } else {
- if ( ShlibVer == "rel" ) {
- symlink(rel_name, abi_name);
- symlink(abi_name, lib_name);
- } else if ( ShlibVer == "abi" ) {
- symlink(abi_name, lib_name);
- }
- }
- printf ")\n"
- }
- }
-BEGIN {
- found = 0
- using = 0
- }
- /^@/ {
- using = 0
- if (subset == "none") {
- using = 1
- } else if (index(subset,$2) > 0) {
- if (using == 0) {
- if (found == 0) {
- print ""
- print "# generated by mk-1st.awk"
- print ""
- }
- using = 1
- }
- if ( subset == "termlib") {
- name = "tinfo"
- OBJS = MODEL "_T"
- } else {
- OBJS = MODEL
- }
- }
- }
- /^[@#]/ {
- next
- }
- $1 ~ /trace/ {
- if (traces != "all" && traces != MODEL && $1 != "lib_trace")
- next
- }
- {
- if (using \
- && ( $2 == "lib" \
- || $2 == "progs" \
- || $2 == "c++" \
- || $2 == "tack" ))
- {
- if ( found == 0 )
- {
- printf "%s_OBJS =", OBJS
- if ( $2 == "lib" )
- found = 1
- else
- found = 2
- }
- printf " \\\n\t../%s/%s.o", model, $1
- }
- }
-END {
- print ""
- if ( found != 0 )
- {
- printf "\n$(%s_OBJS) : %s\n", OBJS, depend
- }
- if ( found == 1 )
- {
- print ""
- 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 ( DoLinks == "reverse") {
- end_name = lib_name;
- } else {
- if ( ShlibVer == "rel" ) {
- end_name = rel_name;
- } else if ( ShlibVer == "abi" ) {
- end_name = abi_name;
- } else {
- end_name = lib_name;
- }
- }
- 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 {
- printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(SHLIB_LIST)\n", OBJS
- }
- sharedlinks("../lib")
- 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)")
- if ( overwrite == "yes" && name == "ncurses" )
- {
- ovr_name = sprintf("libcurses%s", suffix)
- printf "\t@echo linking %s to %s\n", end_name, ovr_name
- printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, end_name, ovr_name
- }
- if ( ldconfig != "" ) {
- printf "\t- test -z \"$(DESTDIR)\" && %s\n", ldconfig
- }
- print ""
- 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 ( rmSoLocs == "yes" ) {
- print ""
- print "mostlyclean \\"
- print "clean ::"
- printf "\t-@rm -f so_locations\n"
- }
- }
- else if ( MODEL == "LIBTOOL" )
- {
- if ( $2 == "c++" ) {
- compile="CXX"
- } else {
- compile="CC"
- }
- end_name = lib_name;
- printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
- printf "\tcd ../lib && $(LIBTOOL) $(%s) -o %s $(%s_OBJS:.o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR)\n", compile, lib_name, OBJS
- print ""
- print "install \\"
- print "install.libs \\"
- printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name
- printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
- printf "\tcd ../lib; $(LIBTOOL) $(INSTALL_DATA) %s $(DESTDIR)$(libdir)\n", lib_name
- print ""
- print "uninstall \\"
- print "uninstall.libs \\"
- printf "uninstall.%s ::\n", name
- printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
- printf "\t-@$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
- }
- else
- {
- end_name = lib_name;
- printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
- printf "\t$(AR) $(AR_OPTS) $@ $?\n"
- printf "\t$(RANLIB) $@\n"
- if ( target == "vxworks" )
- {
- printf "\t$(LD) $(LD_OPTS) $? -o $(@:.a=.o)\n"
- }
- print ""
- print "install \\"
- print "install.libs \\"
- printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name
- printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
- printf "\t$(INSTALL_DATA) ../lib/%s $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
- if ( overwrite == "yes" && lib_name == "libncurses.a" )
- {
- printf "\t@echo linking libcurses.a to libncurses.a\n"
- printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n"
- printf "\t(cd $(DESTDIR)$(libdir) && $(LN_S) libncurses.a libcurses.a)\n"
- }
- printf "\t$(RANLIB) $(DESTDIR)$(libdir)/%s\n", lib_name
- if ( target == "vxworks" )
- {
- printf "\t@echo installing ../lib/lib%s.o as $(DESTDIR)$(libdir)/lib%s.o\n", name, name
- printf "\t$(INSTALL_DATA) ../lib/lib%s.o $(DESTDIR)$(libdir)/lib%s.o\n", name, name
- }
- print ""
- print "uninstall \\"
- print "uninstall.libs \\"
- printf "uninstall.%s ::\n", name
- printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
- printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
- if ( overwrite == "yes" && lib_name == "libncurses.a" )
- {
- printf "\t@echo linking libcurses.a to libncurses.a\n"
- printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n"
- }
- if ( target == "vxworks" )
- {
- printf "\t@echo uninstalling $(DESTDIR)$(libdir)/lib%s.o\n", name
- printf "\t-@rm -f $(DESTDIR)$(libdir)/lib%s.o\n", name
- }
- }
- print ""
- print "clean ::"
- removelinks("../lib");
- print ""
- print "mostlyclean::"
- printf "\t-rm -f $(%s_OBJS)\n", OBJS
- if ( MODEL == "LIBTOOL" ) {
- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
- }
- }
- else if ( found == 2 )
- {
- print ""
- print "mostlyclean::"
- printf "\t-rm -f $(%s_OBJS)\n", OBJS
- if ( MODEL == "LIBTOOL" ) {
- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
- }
- print ""
- print "clean ::"
- printf "\t-rm -f $(%s_OBJS)\n", OBJS
- if ( MODEL == "LIBTOOL" ) {
- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
- }
- }
- }
diff --git a/ncurses-5.2/mk-2nd.awk b/ncurses-5.2/mk-2nd.awk
deleted file mode 100644
index d1ddb3e..0000000
--- a/ncurses-5.2/mk-2nd.awk
+++ /dev/null
@@ -1,115 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Generate compile-rules for the modules that we are using in libraries or
-# programs. We are listing them explicitly because we have turned off the
-# suffix rules (to force compilation with the appropriate flags). We could use
-# make-recursion but that would result in makefiles that are useless for
-# development.
-#
-# Variables:
-# model
-# MODEL (uppercase version of "model"; toupper is not portable)
-# echo (yes iff we will show the $(CC) lines)
-# subset ("none", "base", "base+ext_funcs" or "termlib")
-#
-# Fields in src/modules:
-# $1 = module name
-# $2 = progs|lib|c++
-# $3 = source-directory
-#
-# Fields in src/modules past $3 are dependencies
-#
-BEGIN {
- found = 0
- using = 0
- }
- /^@/ {
- using = 0
- if (subset == "none") {
- using = 1
- } else if (index(subset,$2) > 0) {
- if (using == 0) {
- if (found == 0) {
- print ""
- print "# generated by mk-2nd.awk"
- print ""
- }
- using = 1
- }
- }
- }
- /^[@#]/ {
- next
- }
- $1 ~ /trace/ {
- if (traces != "all" && traces != MODEL && $1 != "lib_trace")
- next
- }
- {
- if ($0 != "" \
- && using != 0) {
- found = 1
- if ( $1 != "" ) {
- print ""
- if ( $2 == "c++" ) {
- compile="CXX"
- suffix=".cc"
- } else {
- compile="CC"
- suffix=".c"
- }
- printf "../%s/%s.o :\t%s/%s%s", model, $1, $3, $1, suffix
- for (n = 4; n <= NF; n++) printf " \\\n\t\t\t%s", $n
- print ""
- if ( echo == "yes" )
- atsign=""
- else {
- atsign="@"
- printf "\t@echo 'compiling %s (%s)'\n", $1, model
- }
- if ( $3 == "." || srcdir == "." ) {
- dir = $3 "/"
- sub("^\\$\\(srcdir\\)/","",dir);
- sub("^\\./","",dir);
- printf "\t%scd ../%s; $(LIBTOOL) $(%s) $(CFLAGS_%s) -c ../%s/%s%s%s", atsign, model, compile, MODEL, name, dir, $1, suffix
- } else
- printf "\t%scd ../%s; $(LIBTOOL) $(%s) $(CFLAGS_%s) -c %s/%s%s", atsign, model, compile, MODEL, $3, $1, suffix
- } else {
- printf "%s", $1
- for (n = 2; n <= NF; n++) printf " %s", $n
- }
- print ""
- }
- }
-END {
- print ""
- }
diff --git a/ncurses-5.2/mkinstalldirs b/ncurses-5.2/mkinstalldirs
deleted file mode 100755
index 8f0503e..0000000
--- a/ncurses-5.2/mkinstalldirs
+++ /dev/null
@@ -1,37 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Last modified: 1994-03-25
-# Public domain
-#
-
-errstatus=0
-umask 022
-
-for file in ${1+"$@"} ; do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d in ${1+"$@"} ; do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
- case "$pathcomp" in
- [a-zA-Z]: ) ;; # DOSISH systems
- * ) mkdir "$pathcomp" || errstatus=$? ;;
- esac
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/ncurses-5.2/ncurses/Makefile.in b/ncurses-5.2/ncurses/Makefile.in
deleted file mode 100644
index f84c790..0000000
--- a/ncurses-5.2/ncurses/Makefile.in
+++ /dev/null
@@ -1,253 +0,0 @@
-# $Id$
-##############################################################################
-# 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 "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1996,1997
-#
-# Makefile for ncurses source code.
-#
-# This makes the following:
-# programs
-# includes
-# libraries (normal/debug/profile/shared)
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-x = @PROG_EXT@
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LD = @LD@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-INCDIR = $(srcdir)/../include
-CPPFLAGS = -I../ncurses -I$(srcdir) @CPPFLAGS@ \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-HOSTCC = @BUILD_CC@
-HOSTCCFLAGS = @CFLAGS@ $(CPPFLAGS)
-HOSTLDFLAGS = @LDFLAGS@ @LIBS@
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(LIBTOOL) $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib -L$(libdir)
-SHLIB_LIST = $(SHLIB_DIRS) @SHLIB_LIST@
-TINFO_LIST = $(SHLIB_DIRS) @TINFO_LIST@
-
-MK_SHARED_LIB = @MK_SHARED_LIB@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-RANLIB = @RANLIB@
-
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lncurses @LIBS@
-
-FALLBACK_LIST = @FALLBACK_LIST@
-
-AUTO_SRC = \
- ../include/nomacros.h \
- ./comp_captab.c \
- ./expanded.c \
- ./fallback.c \
- init_keytry.h \
- ./lib_keyname.c \
- ./lib_gen.c \
- ./codes.c \
- ./names.c \
- ./unctrl.c
-
-TEST_DEPS = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-TEST_ARGS = -L../lib -lncurses@DFT_ARG_SUFFIX@
-TEST_LDFLAGS = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
-
-TEST_PROGS = \
- captoinfo$x \
- hardscroll$x \
- hashmap$x \
- lib_mvcur$x
-
-base = $(srcdir)/base
-serial = $(srcdir)/tty
-tinfo = $(srcdir)/tinfo
-trace = $(srcdir)/trace
-
-################################################################################
-all \
-libs :: $(AUTO_SRC) ../lib $(LIBRARIES)
-
-sources: $(AUTO_SRC)
-
-$(DESTDIR)$(libdir) :
- $(srcdir)/../mkinstalldirs $@
-
-../lib : ; mkdir $@
-
-./fallback.c : $(tinfo)/MKfallback.sh
- sh $(tinfo)/MKfallback.sh $(FALLBACK_LIST) >$@
-
-./lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h
- sh $(base)/MKlib_gen.sh "$(CPP)" "$(AWK)" <../include/curses.h >$@
-
-../include/nomacros.h : $(base)/MKlib_gen.sh ../include/curses.h
- sh $(base)/MKlib_gen.sh "$(CPP)" "$(AWK)" <../include/curses.h | \
- fgrep undef >$@
-
-init_keytry.h: make_keys$x $(tinfo)/keys.list
- ./make_keys $(tinfo)/keys.list > $@
-
-make_keys$x : \
- $(tinfo)/make_keys.c \
- ./names.c
- $(HOSTCC) -o $@ $(HOSTCCFLAGS) $(tinfo)/make_keys.c $(HOSTLDFLAGS)
-
-make_hash$x : \
- $(tinfo)/comp_hash.c \
- ../include/hashsize.h
- $(HOSTCC) -o $@ $(HOSTCCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(HOSTLDFLAGS)
-
-./expanded.c : $(serial)/MKexpanded.sh
- sh $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
-
-./comp_captab.c: \
- make_hash$x \
- ../include/hashsize.h \
- $(tinfo)/MKcaptab.awk
- sh $(tinfo)/MKcaptab.awk $(AWK) $(srcdir)/../include/Caps > $@
-
-./lib_keyname.c: $(tinfo)/keys.list $(base)/MKkeyname.awk
- $(AWK) -f $(base)/MKkeyname.awk $(tinfo)/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
- -rm -f namehdr nameftr codeftr boolnames boolfnames boolcodes numnames numfnames numcodes strnames strfnames strcodes
-
-./unctrl.c: $(base)/MKunctrl.awk
- echo | $(AWK) -f $(base)/MKunctrl.awk >$@
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.ln *.atac trace
- -rm -f $(TEST_PROGS)
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
- -rm -f make_keys$x
- -rm -f make_hash$x
- -rm -rf .libs
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-# These rules are used to allow "make -n" to work on a clean directory-tree
-../include/hashsize.h \
-../include/parametrized.h \
-../include/term.h :
- cd ../include; $(MAKE) $(CF_MFLAGS)
-
-# These rules build test-programs for the modules that have test-drivers
-test_progs : $(TEST_PROGS)
-
-captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS)
- @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS)
-
-hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
- @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
-
-hashmap$x : $(serial)/hashmap.c $(TEST_DEPS)
- @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(TEST_LDFLAGS)
-
-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:
- cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry.o
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/ncurses/README b/ncurses-5.2/ncurses/README
deleted file mode 100644
index aade721..0000000
--- a/ncurses-5.2/ncurses/README
+++ /dev/null
@@ -1,2 +0,0 @@
-For discussion of the package internals, see hackguide.html in the misc
-directory.
diff --git a/ncurses-5.2/ncurses/SigAction.h b/ncurses-5.2/ncurses/SigAction.h
deleted file mode 100644
index 564b318..0000000
--- a/ncurses-5.2/ncurses/SigAction.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * $Id$
- *
- * This file exists to handle non-POSIX systems which don't have <unistd.h>,
- * and usually no sigaction() nor <termios.h>
- */
-
-#ifndef _SIGACTION_H
-#define _SIGACTION_H
-
-#ifndef HAVE_SIGACTION
-#define HAVE_SIGACTION 0
-#endif
-
-#ifndef HAVE_SIGVEC
-#define HAVE_SIGVEC 0
-#endif
-
-#if HAVE_SIGACTION
-
-#if !HAVE_TYPE_SIGACTION
-typedef struct sigaction sigaction_t;
-#endif
-
-#else /* !HAVE_SIGACTION */
-
-#if HAVE_SIGVEC
-
-#if HAVE_LIBC_H
-#include <libc.h>
-#endif
-
-#undef SIG_BLOCK
-#define SIG_BLOCK 00
-
-#undef SIG_UNBLOCK
-#define SIG_UNBLOCK 01
-
-#undef SIG_SETMASK
-#define SIG_SETMASK 02
-
- /*
- * <bsd/signal.h> is in the Linux 1.2.8 + gcc 2.7.0 configuration,
- * and is useful for testing this header file.
- */
-#if HAVE_BSD_SIGNAL_H
-#include <bsd/signal.h>
-#endif
-
-typedef struct sigvec sigaction_t;
-
-#define sigset_t _nc_sigset_t
-typedef unsigned long sigset_t;
-
-#undef sa_mask
-#define sa_mask sv_mask
-#undef sa_handler
-#define sa_handler sv_handler
-#undef sa_flags
-#define sa_flags sv_flags
-
-#undef sigaction
-#define sigaction _nc_sigaction
-#undef sigprocmask
-#define sigprocmask _nc_sigprocmask
-#undef sigemptyset
-#define sigemptyset _nc_sigemptyset
-#undef sigsuspend
-#define sigsuspend _nc_sigsuspend
-#undef sigdelset
-#define sigdelset _nc_sigdelset
-#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);
-
-#endif /* HAVE_SIGVEC */
-#endif /* HAVE_SIGACTION */
-#endif /* !defined(_SIGACTION_H) */
diff --git a/ncurses-5.2/ncurses/base/MKkeyname.awk b/ncurses-5.2/ncurses/base/MKkeyname.awk
deleted file mode 100644
index da9d152..0000000
--- a/ncurses-5.2/ncurses/base/MKkeyname.awk
+++ /dev/null
@@ -1,74 +0,0 @@
-# $Id$
-##############################################################################
-# Copyright (c) 1999 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-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 <tic.h>"
- print ""
- print "const struct kn _nc_key_names[] = {"
-}
-
-/^[^#]/ {
- printf "\t{ \"%s\", %s },\n", $1, $1;
- }
-
-END {
- printf "\t{ 0, 0 }};\n"
- print ""
- print "NCURSES_CONST char *keyname(int c)"
- print "{"
- print "int i;"
- print "static char name[20];"
- print "char *p;"
- print ""
- print "\tfor (i = 0; _nc_key_names[i].name != 0; i++)"
- print "\t\tif (_nc_key_names[i].code == c)"
- print "\t\t\treturn (NCURSES_CONST char *)_nc_key_names[i].name;"
- print "\tif (c >= 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 "\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 "}"
-}
diff --git a/ncurses-5.2/ncurses/base/MKlib_gen.sh b/ncurses-5.2/ncurses/base/MKlib_gen.sh
deleted file mode 100755
index b56ebf0..0000000
--- a/ncurses-5.2/ncurses/base/MKlib_gen.sh
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/bin/sh
-#
-# MKlib_gen.sh -- generate sources from curses.h macro definitions
-#
-# ($Id$)
-#
-# The XSI Curses standard requires all curses entry points to exist as
-# functions, even though many definitions would normally be shadowed
-# by macros. Rather than hand-hack all that code, we actually
-# generate functions from the macros.
-#
-# This script accepts a file of prototypes on standard input. It discards
-# any that don't have a `generated' comment attached. It then parses each
-# prototype (relying on the fact that none of the macros take function
-# pointer or array arguments) and generates C source from it.
-#
-# Here is what the pipeline stages are doing:
-#
-# 1. sed: extract prototypes of generated functions
-# 2. sed: decorate prototypes with generated arguments a1. a2,...z
-# 3. awk: generate the calls with args matching the formals
-# 4. sed: prefix function names in prototypes so the preprocessor won't expand
-# them.
-# 5. cpp: macro-expand the file so the macro calls turn into C calls
-# 6. awk: strip the expansion junk off the front and add the new header
-# 7. sed: squeeze spaces, strip off gen_ prefix, create needed #undef
-#
-
-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>
-
-DECLARATIONS
-
-EOF
-cat >$ED1 <<EOF1
-/^extern.*generated/{
- h
- s/^.*generated:\([^ *]*\).*/P_#if_USE_\1_SUPPORT/p
- g
- s/^extern \([^;]*\);.*/\1/p
- g
- s/^.*generated:\([^ *]*\).*/P_#endif/p
-}
-EOF1
-
-cat >$ED2 <<EOF2
-/^P_/b nc
-/(void)/b nc
- s/,/ a1% /
- s/,/ a2% /
- s/,/ a3% /
- s/,/ a4% /
- s/,/ a5% /
- s/,/ a6% /
- s/,/ a7% /
- s/,/ a8% /
- s/,/ a9% /
- s/,/ a10% /
- s/,/ a11% /
- s/,/ a12% /
- s/,/ a13% /
- s/,/ a14% /
- s/,/ a15% /
- s/*/ * /g
- s/%/ , /g
- s/)/ z)/
-:nc
- /(/s// ( /
- s/)/ )/
-EOF2
-
-cat >$ED3 <<EOF3
-/^P_/{
- s/^P_#if_/#if /
- s/^P_//
- b done
-}
- s/ */ /g
- s/ */ /g
- s/ ,/,/g
- s/ )/)/g
- s/ gen_/ /
- s/^M_/#undef /
- /^%%/s// /
-:done
-EOF3
-
-cat >$AW1 <<\EOF1
-BEGIN {
- skip=0;
- }
- /^P_#if/ {
- print "\n"
- print $0
- skip=0;
- }
- /^P_#endif/ {
- print $0
- skip=1;
- }
- $0 !~ /^P_/ {
- if (skip)
- print "\n"
- skip=1;
-
- if ( $1 == "chtype" ) {
- returnType = "Char";
- } else {
- returnType = "Code";
- }
- print "M_" $2
- print $0;
- print "{";
- argcount = 1;
- if (NF == 5 && $4 == "void")
- argcount = 0;
- if (argcount != 0) {
- for (i = 1; i <= NF; i++)
- if ($i == ",")
- argcount++;
- }
-
- # suppress trace-code for functions that we cannot do properly here,
- # since they return data.
- dotrace = 1;
- if ($2 == "innstr")
- dotrace = 0;
-
- call = "%%T((T_CALLED(\""
- args = ""
- comma = ""
- num = 0;
- pointer = 0;
- argtype = ""
- for (i = 1; i <= NF; i++) {
- ch = $i;
- if ( ch == "*" )
- pointer = 1;
- else if ( ch == "va_list" )
- pointer = 1;
- else if ( ch == "char" )
- argtype = "char";
- else if ( ch == "int" )
- argtype = "int";
- else if ( ch == "short" )
- argtype = "short";
- else if ( ch == "chtype" )
- argtype = "chtype";
- else if ( ch == "attr_t" || ch == "NCURSES_ATTR_T" )
- argtype = "attr";
-
- if ( ch == "," || ch == ")" ) {
- if (pointer) {
- if ( argtype == "char" ) {
- call = call "%s"
- comma = comma "_nc_visbuf2(" num ","
- pointer = 0;
- } else
- call = call "%p"
- } else if (argcount != 0) {
- if ( argtype == "int" || argtype == "short" ) {
- call = call "%d"
- argtype = ""
- } else if ( argtype != "" ) {
- call = call "%s"
- comma = comma "_trace" argtype "2(" num ","
- } else {
- call = call "%#lx"
- comma = comma "(long)"
- }
- }
- if (ch == ",")
- args = args comma "a" ++num;
- else if (argcount != 0)
- args = args comma "z"
- call = call ch
- if (pointer == 0 && argcount != 0 && argtype != "" )
- args = args ")"
- if (args != "")
- comma = ", "
- pointer = 0;
- argtype = ""
- }
- if ( i == 2 || ch == "(" )
- call = call ch
- }
- call = call "\")"
- if (args != "")
- call = call ", " args
- call = call ")); "
-
- if (dotrace)
- printf "%s", call
-
- if (match($0, "^void"))
- call = ""
- else if (dotrace)
- call = sprintf("return%s( ", returnType);
- else
- call = "%%return ";
-
- call = call $2 "(";
- for (i = 1; i < argcount; i++)
- call = call "a" i ", ";
- if (argcount != 0)
- call = call "z";
- if (!match($0, "^void"))
- call = call ") ";
- if (dotrace)
- call = call ")";
- print call ";"
-
- if (match($0, "^void"))
- print "%%returnVoid;"
- print "}";
-}
-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 '
-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 ""
- }
-/^DECLARATIONS/ {start = 1; next;}
- {if (start) print $0;}
-' \
-| sed -f $ED3 \
-| sed \
- -e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/ return \1;/' \
- -e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/ return \1;/'
-
diff --git a/ncurses-5.2/ncurses/base/MKunctrl.awk b/ncurses-5.2/ncurses/base/MKunctrl.awk
deleted file mode 100644
index cacb354..0000000
--- a/ncurses-5.2/ncurses/base/MKunctrl.awk
+++ /dev/null
@@ -1,69 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-
-BEGIN {
- print "/* generated by MKunctrl.awk */"
- print ""
- print "#include <curses.priv.h>"
- print ""
- print "#undef unctrl"
- print ""
- }
-END {
- print "NCURSES_CONST char *unctrl(register chtype ch)"
- print "{"
- printf "static const char* const table[] = {"
- for ( ch = 0; ch < 256; ch++ ) {
- gap = ","
- if ((ch % 8) == 0)
- printf "\n "
- if (ch < 32) {
- printf "\"^\\%03o\"", ch + 64
- } else if (ch == 127) {
- printf "\"^?\""
- } else if (ch >= 128 && ch < 160) {
- printf "\"~\\%03o\"", ch - 64
- } else {
- printf "\"\\%03o\"", ch
- gap = gap " "
- }
- if (ch == 255)
- gap = "\n"
- else if (((ch + 1) % 8) != 0)
- gap = gap " "
- printf "%s", gap
- }
- print "};"
- print ""
- print "\treturn (NCURSES_CONST char *)table[TextOf(ch)];"
- print "}"
- }
diff --git a/ncurses-5.2/ncurses/base/README b/ncurses-5.2/ncurses/base/README
deleted file mode 100644
index 114c11f..0000000
--- a/ncurses-5.2/ncurses/base/README
+++ /dev/null
@@ -1,7 +0,0 @@
--- $Id$
-
-The functions in this directory are the generic (not device-specific) modules
-of ncurses.
-
-As a rule, these modules should not depend directly on term.h references and
-associated terminfo function and variables.
diff --git a/ncurses-5.2/ncurses/base/define_key.c b/ncurses-5.2/ncurses/base/define_key.c
deleted file mode 100644
index 8f88f53..0000000
--- a/ncurses-5.2/ncurses/base/define_key.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-define_key(char *str, int keycode)
-{
- 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;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/keybound.c b/ncurses-5.2/ncurses/base/keybound.c
deleted file mode 100644
index 0be30b9..0000000
--- a/ncurses-5.2/ncurses/base/keybound.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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)
-{
- return _nc_expand_try(SP->_key_ok, code, &count, 0);
-}
diff --git a/ncurses-5.2/ncurses/base/keyok.c b/ncurses-5.2/ncurses/base/keyok.c
deleted file mode 100644
index 017b88b..0000000
--- a/ncurses-5.2/ncurses/base/keyok.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Enable (or disable) ncurses' interpretation of a keycode by adding (or
- * removing) the corresponding 'tries' entry.
- *
- * Do this by storing a second tree of tries, which records the disabled keys.
- * The simplest way to copy is to make a function that returns the string (with
- * nulls set to 0200), then use that to reinsert the string into the
- * corresponding tree.
- */
-
-int keyok(int c, bool flag)
-{
- 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;
- }
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_addch.c b/ncurses-5.2/ncurses/base/lib_addch.c
deleted file mode 100644
index 1256b18..0000000
--- a/ncurses-5.2/ncurses/base/lib_addch.c
+++ /dev/null
@@ -1,298 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_addch.c
-**
-** The routine waddch().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Ugly microtweaking alert. Everything from here to end of module is
- * likely to be speed-critical -- profiling data sure says it is!
- * Most of the important screen-painting functions are shells around
- * waddch(). So we make every effort to reduce function-call overhead
- * by inlining stuff, even at the cost of making wrapped copies for
- * export. Also we supply some internal versions that don't call the
- * window sync hook, for use by string-put functions.
- */
-
-/* Return bit mask for clearing color pair number if given ch has color */
-#define COLOR_MASK(ch) (~(chtype)((ch)&A_COLOR?A_COLOR:0))
-
-static inline chtype
-render_char(WINDOW *win, chtype ch)
-/* compute a rendition of the given char correct for the current context */
-{
- chtype a = win->_attrs;
-
- if (ch == ' ') {
- /* color in attrs has precedence over bkgd */
- ch = a | (win->_bkgd & COLOR_MASK(a));
- } else {
- /* color in attrs has precedence over bkgd */
- a |= (win->_bkgd & A_ATTRIBUTES) & COLOR_MASK(a);
- /* color in ch has precedence */
- ch |= (a & COLOR_MASK(ch));
- }
-
- TR(TRACE_VIRTPUT, ("bkg = %lx, attrs = %lx -> ch = %lx", win->_bkgd,
- win->_attrs, 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)
-/* make render_char() visible while still allowing us to inline it below */
-{
- return render_char(win, ch);
-}
-
-/* check if position is legal; if not, return error */
-#ifndef NDEBUG /* treat this like an assertion */
-#define CHECK_POSITION(win, x, y) \
- if (y > win->_maxy \
- || x > win->_maxx \
- || y < 0 \
- || x < 0) { \
- TR(TRACE_VIRTPUT, ("Alert! Win=%p _curx = %d, _cury = %d " \
- "(_maxx = %d, _maxy = %d)", win, x, y, \
- win->_maxx, win->_maxy)); \
- return(ERR); \
- }
-#else
-#define CHECK_POSITION(win, x, y) /* nothing */
-#endif
-
-static inline int
-waddch_literal(WINDOW *win, chtype ch)
-{
- int x;
- struct ldat *line;
-
- x = win->_curx;
-
- CHECK_POSITION(win, x, win->_cury);
-
- /*
- * If we're trying to add a character at the lower-right corner more
- * than once, fail. (Moving the cursor will clear the flag).
- */
-#if 0 /* Solaris 2.6 allows updating the corner more than once */
- if (win->_flags & _WRAPPED) {
- if (x >= win->_maxx)
- return (ERR);
- win->_flags &= ~_WRAPPED;
- }
-#endif
-
- ch = render_char(win, ch);
- TR(TRACE_VIRTPUT, ("win attr = %s", _traceattr(win->_attrs)));
-
- line = win->_line + win->_cury;
-
- CHANGED_CELL(line, x);
-
- line->text[x++] = ch;
-
- TR(TRACE_VIRTPUT, ("(%d, %d) = %s", win->_cury, x, _tracechtype(ch)));
- if (x > win->_maxx) {
- /*
- * The _WRAPPED flag is useful only for telling an application that
- * we've just wrapped the cursor. We don't do anything with this flag
- * except set it when wrapping, and clear it whenever we move the
- * cursor. If we try to wrap at the lower-right corner of a window, we
- * cannot move the cursor (since that wouldn't be legal). So we return
- * an error (which is what SVr4 does). Unlike SVr4, we can
- * successfully add a character to the lower-right corner (Solaris 2.6
- * does this also, however).
- */
- win->_flags |= _WRAPPED;
- if (++win->_cury > win->_regbottom) {
- win->_cury = win->_regbottom;
- win->_curx = win->_maxx;
- if (!win->_scroll)
- return (ERR);
- scroll(win);
- }
- win->_curx = 0;
- return (OK);
- }
- win->_curx = x;
- return OK;
-}
-
-static inline int
-waddch_nosync(WINDOW *win, const chtype ch)
-/* the workhorse function -- add a character to the given window */
-{
- int x, y;
- int t = 0;
- const char *s = 0;
-
- if ((ch & A_ALTCHARSET)
- || ((t = TextOf(ch)) > 127)
- || ((s = unctrl(t))[1] == 0))
- return waddch_literal(win, ch);
-
- x = win->_curx;
- y = win->_cury;
-
- switch (t) {
- case '\t':
- x += (TABSIZE - (x % TABSIZE));
-
- /*
- * Space-fill the tab on the bottom line so that we'll get the
- * "correct" cursor position.
- */
- if ((!win->_scroll && (y == win->_regbottom))
- || (x <= win->_maxx)) {
- chtype blank = (' ' | AttrOf(ch));
- while (win->_curx < x) {
- if (waddch_literal(win, blank) == ERR)
- return (ERR);
- }
- break;
- } else {
- wclrtoeol(win);
- win->_flags |= _WRAPPED;
- if (++y > win->_regbottom) {
- x = win->_maxx;
- y--;
- if (win->_scroll) {
- scroll(win);
- x = 0;
- }
- } else {
- x = 0;
- }
- }
- break;
- case '\n':
- wclrtoeol(win);
- if (++y > win->_regbottom) {
- y--;
- if (win->_scroll)
- scroll(win);
- else
- return (ERR);
- }
- /* FALLTHRU */
- case '\r':
- x = 0;
- win->_flags &= ~_WRAPPED;
- break;
- case '\b':
- if (x == 0)
- return (OK);
- x--;
- win->_flags &= ~_WRAPPED;
- break;
- default:
- while (*s)
- if (waddch_literal(win, (*s++) | AttrOf(ch)) == ERR)
- return ERR;
- return (OK);
- }
-
- win->_curx = x;
- win->_cury = y;
-
- return (OK);
-}
-
-int
-_nc_waddch_nosync(WINDOW *win, const chtype c)
-/* export copy of waddch_nosync() so the string-put functions can use it */
-{
- return (waddch_nosync(win, c));
-}
-
-/*
- * The versions below call _nc_synhook(). We wanted to avoid this in the
- * version exported for string puts; they'll call _nc_synchook once at end
- * of run.
- */
-
-/* These are actual entry points */
-
-int
-waddch(WINDOW *win, const chtype ch)
-{
- int code = ERR;
-
- TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("waddch(%p, %s)"), win,
- _tracechtype(ch)));
-
- if (win && (waddch_nosync(win, ch) != ERR)) {
- _nc_synchook(win);
- code = OK;
- }
-
- TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code));
- return (code);
-}
-
-int
-wechochar(WINDOW *win, const chtype ch)
-{
- int code = ERR;
-
- TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), win,
- _tracechtype(ch)));
-
- if (win && (waddch_nosync(win, ch) != 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_addstr.c b/ncurses-5.2/ncurses/base/lib_addstr.c
deleted file mode 100644
index 8298db6..0000000
--- a/ncurses-5.2/ncurses/base/lib_addstr.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_addstr.c
-*
-** The routines waddnstr(), waddchnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-waddnstr(WINDOW *win, const char *const astr, int n)
-{
- unsigned const char *str = (unsigned const char *) astr;
- int code = ERR;
-
- T((T_CALLED("waddnstr(%p,%s,%d)"), win, _nc_visbuf(astr), n));
-
- 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);
-
- while ((n-- > 0) && (*str != '\0')) {
- TR(TRACE_VIRTPUT, ("*str = %#x", *str));
- if (_nc_waddch_nosync(win, (chtype) * str++) == ERR) {
- code = ERR;
- break;
- }
- }
- _nc_synchook(win);
- }
- TR(TRACE_VIRTPUT, ("waddnstr returns %d", code));
- returnCode(code);
-}
-
-int
-waddchnstr(WINDOW *win, const chtype * const astr, int n)
-{
- NCURSES_SIZE_T y = win->_cury;
- NCURSES_SIZE_T x = win->_curx;
- int code = OK;
- struct ldat *line;
-
- T((T_CALLED("waddchnstr(%p,%p,%d)"), win, astr, n));
-
- if (!win)
- returnCode(ERR);
-
- if (n < 0) {
- const chtype *str;
- n = 0;
- for (str = (const chtype *) astr; *str != 0; str++)
- n++;
- }
- if (n > win->_maxx - x + 1)
- n = win->_maxx - x + 1;
- if (n == 0)
- returnCode(code);
-
- line = &(win->_line[y]);
- memcpy(line->text + x, astr, n * sizeof(*astr));
- CHANGED_RANGE(line, x, x + n - 1);
-
- _nc_synchook(win);
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_beep.c b/ncurses-5.2/ncurses/base/lib_beep.c
deleted file mode 100644
index 2b8a0b6..0000000
--- a/ncurses-5.2/ncurses/base/lib_beep.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * beep.c
- *
- * The routine beep().
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* beep, flash */
-
-MODULE_ID("$Id$")
-
-/*
- * beep()
- *
- * Sound the current terminal's audible bell if it has one. If not,
- * flash the screen if possible.
- *
- */
-
-int beep(void)
-{
- int res = ERR;
-
- 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();
- }
-
- returnCode(res);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_bkgd.c b/ncurses-5.2/ncurses/base/lib_bkgd.c
deleted file mode 100644
index f5ee853..0000000
--- a/ncurses-5.2/ncurses/base/lib_bkgd.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-void wbkgdset(WINDOW *win, chtype 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;
-}
-
-int wbkgd(WINDOW *win, const chtype 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]));
- }
- }
- touchwin(win);
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_box.c b/ncurses-5.2/ncurses/base/lib_box.c
deleted file mode 100644
index ef0ca94..0000000
--- a/ncurses-5.2/ncurses/base/lib_box.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_box.c
-**
-** The routine wborder().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-wborder(WINDOW *win,
- 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;
-
- 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)));
-
- 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);
-
- T(("using %#lx, %#lx, %#lx, %#lx, %#lx, %#lx, %#lx, %#lx",
- ls, rs, ts, bs, tl, tr, bl, br));
-
- endx = win->_maxx;
- endy = win->_maxy;
-
- for (i = 0; i <= endx; i++) {
- win->_line[0].text[i] = ts;
- win->_line[endy].text[i] = bs;
- }
- 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;
- 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;
-
- _nc_synchook(win);
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_chgat.c b/ncurses-5.2/ncurses/base/lib_chgat.c
deleted file mode 100644
index 909ea60..0000000
--- a/ncurses-5.2/ncurses/base/lib_chgat.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_chgat.c
-**
-** The routine wchgat().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int wchgat(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED)
-{
- int i;
-
- T((T_CALLED("wchgat(%p,%d,%s,%d)"), win, n, _traceattr(attr), color));
-
- if (win) {
- 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;
-
- returnCode(OK);
- }
- else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_clear.c b/ncurses-5.2/ncurses/base/lib_clear.c
deleted file mode 100644
index 72d61b5..0000000
--- a/ncurses-5.2/ncurses/base/lib_clear.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_clear.c
-**
-** The routine wclear().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int wclear(WINDOW *win)
-{
-int code = ERR;
-
- T((T_CALLED("wclear(%p)"), win));
-
- if ((code = werase(win))!=ERR)
- win->_clear = TRUE;
-
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_clearok.c b/ncurses-5.2/ncurses/base/lib_clearok.c
deleted file mode 100644
index 5a6dc21..0000000
--- a/ncurses-5.2/ncurses/base/lib_clearok.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_clearok.c
-**
-** The routine clearok.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int clearok(WINDOW *win, bool flag)
-{
- T((T_CALLED("clearok(%p,%d)"), win, flag));
-
- if (win) {
- win->_clear = flag;
- returnCode(OK);
- }
- else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_clrbot.c b/ncurses-5.2/ncurses/base/lib_clrbot.c
deleted file mode 100644
index 54e332d..0000000
--- a/ncurses-5.2/ncurses/base/lib_clrbot.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_clrbot.c
-**
-** The routine wclrtobot().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-wclrtobot(WINDOW *win)
-{
- int code = ERR;
-
- T((T_CALLED("wclrtobot(%p)"), win));
-
- if (win) {
- NCURSES_SIZE_T y;
- NCURSES_SIZE_T startx = win->_curx;
- chtype blank = _nc_background(win);
-
- T(("clearing from y = %d to y = %d with maxx = %d",
- win->_cury, win->_maxy, win->_maxx));
-
- 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]);
-
- CHANGED_TO_EOL(line, startx, win->_maxx);
-
- while (ptr <= end)
- *ptr++ = blank;
-
- startx = 0;
- }
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_clreol.c b/ncurses-5.2/ncurses/base/lib_clreol.c
deleted file mode 100644
index 6b42f5f..0000000
--- a/ncurses-5.2/ncurses/base/lib_clreol.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_clreol.c
-**
-** The routine wclrtoeol().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-wclrtoeol(WINDOW *win)
-{
- int code = ERR;
-
- T((T_CALLED("wclrtoeol(%p)"), win));
-
- if (win) {
- chtype blank;
- chtype *ptr, *end;
- struct ldat *line;
- NCURSES_SIZE_T y = win->_cury;
- NCURSES_SIZE_T x = win->_curx;
-
- /*
- * 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
- && y < win->_maxy) {
- win->_flags &= ~_WRAPPED;
- }
-
- /*
- * There's no point in clearing if we're not on a legal
- * position, either.
- */
- if (win->_flags & _WRAPPED
- || y > win->_maxy
- || x > win->_maxx)
- returnCode(ERR);
-
- blank = _nc_background(win);
- line = &win->_line[y];
- CHANGED_TO_EOL(line, x, win->_maxx);
-
- ptr = &(line->text[x]);
- end = &(line->text[win->_maxx]);
-
- while (ptr <= end)
- *ptr++ = blank;
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_color.c b/ncurses-5.2/ncurses/base/lib_color.c
deleted file mode 100644
index 514d546..0000000
--- a/ncurses-5.2/ncurses/base/lib_color.c
+++ /dev/null
@@ -1,482 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* lib_color.c
- *
- * Handles color emulation of SYS V curses
- */
-
-#include <curses.priv.h>
-
-#include <term.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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;
-
-/*
- * Given a RGB range of 0..1000, we'll normally set the individual values
- * to about 2/3 of the maximum, leaving full-range for bold/bright colors.
- */
-#define RGB_ON 680
-#define RGB_OFF 0
-/* *INDENT-OFF* */
-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 */
-};
-
-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 */
-};
-/* *INDENT-ON* */
-
-#if NCURSES_EXT_FUNCS
-/*
- * These are called from _nc_do_color(), which in turn is called from
- * vidattr - so we have to assume that SP may be null.
- */
-static int
-default_fg(void)
-{
- return (SP != 0) ? SP->_default_fg : COLOR_WHITE;
-}
-
-static int
-default_bg(void)
-{
- return SP != 0 ? SP->_default_bg : COLOR_BLACK;
-}
-#else
-#define default_fg() COLOR_WHITE
-#define default_bg() COLOR_BLACK
-#endif
-
-/*
- * SVr4 curses is known to interchange color codes (1,4) and (3,6), possibly
- * to maintain compatibility with a pre-ANSI scheme. The same scheme is
- * also used in the FreeBSD syscons.
- */
-static int
-toggled_colors(int c)
-{
- if (c < 16) {
- static const int table[] =
- {0, 4, 2, 6, 1, 5, 3, 7,
- 8, 12, 10, 14, 9, 13, 11, 15};
- c = table[c];
- }
- return c;
-}
-
-static void
-set_background_color(int bg, int (*outc) (int))
-{
- if (set_a_background) {
- TPUTS_TRACE("set_a_background");
- tputs(tparm(set_a_background, bg), 1, outc);
- } else {
- TPUTS_TRACE("set_background");
- tputs(tparm(set_background, toggled_colors(bg)), 1, outc);
- }
-}
-
-static void
-set_foreground_color(int fg, int (*outc) (int))
-{
- if (set_a_foreground) {
- TPUTS_TRACE("set_a_foreground");
- tputs(tparm(set_a_foreground, fg), 1, outc);
- } else {
- TPUTS_TRACE("set_foreground");
- tputs(tparm(set_foreground, toggled_colors(fg)), 1, outc);
- }
-}
-
-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)
-{
- int n;
- const color_t *tp;
-
- 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) {
- SP->_color_table[n] = tp[n];
- } else {
- SP->_color_table[n] = tp[n % 8];
- if (hue_lightness_saturation) {
- SP->_color_table[n].green = 100;
- } else {
- if (SP->_color_table[n].red)
- SP->_color_table[n].red = 1000;
- if (SP->_color_table[n].green)
- SP->_color_table[n].green = 1000;
- if (SP->_color_table[n].blue)
- SP->_color_table[n].blue = 1000;
- }
- }
- }
-
- T(("started color: COLORS = %d, COLOR_PAIRS = %d", COLORS, COLOR_PAIRS));
-
- returnCode(OK);
-}
-
-/* This function was originally written by Daniel Weaver <danw@znyx.com> */
-static void
-rgb2hls(short r, short g, short b, short *h, short *l, short *s)
-/* convert RGB to HLS system */
-{
- short min, max, t;
-
- if ((min = g < r ? g : r) > b)
- min = b;
- if ((max = g > r ? g : r) < b)
- max = b;
-
- /* calculate lightness */
- *l = (min + max) / 20;
-
- if (min == max) { /* black, white and all shades of gray */
- *h = 0;
- *s = 0;
- return;
- }
-
- /* calculate saturation */
- if (*l < 50)
- *s = ((max - min) * 100) / (max + min);
- else
- *s = ((max - min) * 100) / (2000 - max - min);
-
- /* calculate hue */
- if (r == max)
- t = 120 + ((g - b) * 60) / (max - min);
- else if (g == max)
- t = 240 + ((b - r) * 60) / (max - min);
- else
- t = 360 + ((r - g) * 60) / (max - min);
-
- *h = t % 360;
-}
-
-/*
- * Extension (1997/1/18) - Allow negative f/b values to set default color
- * values.
- */
-int
-init_pair(short pair, short f, short b)
-{
- unsigned result;
-
- T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b));
-
- if ((pair < 0) || (pair >= COLOR_PAIRS))
- returnCode(ERR);
-#if NCURSES_EXT_FUNCS
- if (SP->_default_color) {
- if (f < 0)
- f = C_MASK;
- if (b < 0)
- b = C_MASK;
- if (f >= COLORS && f != C_MASK)
- returnCode(ERR);
- if (b >= COLORS && b != C_MASK)
- returnCode(ERR);
- } else
-#endif
- {
- if ((f < 0) || (f >= COLORS)
- || (b < 0) || (b >= COLORS)
- || (pair < 1))
- returnCode(ERR);
- }
-
- /*
- * When a pair's content is changed, replace its colors (if pair was
- * initialized before a screen update is performed replacing original
- * pair colors with the new ones).
- */
- result = PAIR_OF(f, b);
- if (SP->_color_pairs[pair] != 0
- && SP->_color_pairs[pair] != result) {
- int y, x;
- attr_t z = COLOR_PAIR(pair);
-
- for (y = 0; y <= curscr->_maxy; y++) {
- struct ldat *ptr = &(curscr->_line[y]);
- bool changed = FALSE;
- for (x = 0; x <= curscr->_maxx; x++) {
- if ((ptr->text[x] & A_COLOR) == z) {
- /* Set the old cell to zero to ensure it will be
- updated on the next doupdate() */
- ptr->text[x] = 0;
- CHANGED_CELL(ptr, x);
- changed = TRUE;
- }
- }
- if (changed)
- _nc_make_oldhash(y);
- }
- }
- SP->_color_pairs[pair] = result;
- if ((int) (SP->_current_attr & A_COLOR) == COLOR_PAIR(pair))
- SP->_current_attr |= A_COLOR; /* force attribute update */
-
- if (initialize_pair) {
- 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));
-
- 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));
- }
- }
-
- returnCode(OK);
-}
-
-int
-init_color(short color, short r, short g, short b)
-{
- T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b));
-
- if (initialize_color == NULL)
- returnCode(ERR);
-
- if (color < 0 || color >= COLORS)
- returnCode(ERR);
- if (r < 0 || r > 1000 || g < 0 || g > 1000 || b < 0 || b > 1000)
- returnCode(ERR);
-
- 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));
- }
- returnCode(OK);
-}
-
-bool
-can_change_color(void)
-{
- T((T_CALLED("can_change_color()")));
- returnCode((can_change != 0) ? TRUE : FALSE);
-}
-
-bool
-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);
-}
-
-int
-color_content(short color, short *r, short *g, short *b)
-{
- T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
- if (color < 0 || color >= COLORS)
- returnCode(ERR);
-
- if (r)
- *r = SP->_color_table[color].red;
- if (g)
- *g = SP->_color_table[color].green;
- if (b)
- *b = SP->_color_table[color].blue;
- returnCode(OK);
-}
-
-int
-pair_content(short pair, short *f, short *b)
-{
- T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b));
-
- if ((pair < 0) || (pair >= COLOR_PAIRS))
- returnCode(ERR);
- if (f)
- *f = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK);
- if (b)
- *b = (SP->_color_pairs[pair] & C_MASK);
-
- returnCode(OK);
-}
-
-void
-_nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
-{
- NCURSES_COLOR_T fg = C_MASK, bg = C_MASK;
- NCURSES_COLOR_T old_fg, old_bg;
-
- if (pair < 0 || pair >= COLOR_PAIRS) {
- return;
- } else if (pair != 0) {
- if (set_color_pair) {
- TPUTS_TRACE("set_color_pair");
- tputs(tparm(set_color_pair, pair), 1, outc);
- return;
- } else if (SP != 0) {
- pair_content(pair, &fg, &bg);
- }
- }
-
- if (old_pair >= 0 && SP != 0) {
- pair_content(old_pair, &old_fg, &old_bg);
- if ((fg == C_MASK && old_fg != C_MASK)
- || (bg == C_MASK && old_bg != C_MASK)) {
-#if NCURSES_EXT_FUNCS
- /*
- * A minor optimization - but extension. If "AX" is specified in
- * the terminal description, treat it as screen's indicator of ECMA
- * SGR 39 and SGR 49, and assume the two sequences are independent.
- */
- if (SP->_has_sgr_39_49 && old_bg == C_MASK && old_fg != C_MASK) {
- tputs("\033[39m", 1, outc);
- } else if (SP->_has_sgr_39_49 && old_fg == C_MASK && old_bg != C_MASK) {
- tputs("\033[49m", 1, outc);
- } else
-#endif
- set_original_colors();
- }
- } else {
- set_original_colors();
- if (old_pair < 0)
- return;
- }
-
-#if NCURSES_EXT_FUNCS
- if (fg == C_MASK)
- fg = default_fg();
- if (bg == C_MASK)
- bg = default_bg();
-#endif
-
- if (reverse) {
- NCURSES_COLOR_T xx = fg;
- fg = bg;
- bg = xx;
- }
-
- TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair, fg, bg));
-
- if (fg != C_MASK) {
- set_foreground_color(fg, outc);
- }
- if (bg != C_MASK) {
- set_background_color(bg, outc);
- }
-}
diff --git a/ncurses-5.2/ncurses/base/lib_colorset.c b/ncurses-5.2/ncurses/base/lib_colorset.c
deleted file mode 100644
index f19ca8b..0000000
--- a/ncurses-5.2/ncurses/base/lib_colorset.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1998 *
- ****************************************************************************/
-
-/*
-** lib_colorset.c
-**
-** The routine wcolor_set().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-int
-wcolor_set(WINDOW *win, short color_pair_number, void *opts)
-{
- T((T_CALLED("wcolor_set(%p,%d)"), win, color_pair_number));
- if (win
- && !opts
- && (color_pair_number >= 0)
- && (color_pair_number < COLOR_PAIRS)) {
- TR(TRACE_ATTRS, ("... current %ld", (long) PAIR_NUMBER(win->_attrs)));
- toggle_attr_on(win->_attrs, COLOR_PAIR(color_pair_number));
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_delch.c b/ncurses-5.2/ncurses/base/lib_delch.c
deleted file mode 100644
index c4ecfe2..0000000
--- a/ncurses-5.2/ncurses/base/lib_delch.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_delch.c
-**
-** The routine wdelch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int wdelch(WINDOW *win)
-{
-int code = ERR;
-
- 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;
-
- CHANGED_TO_EOL(line, win->_curx, win->_maxx);
- while (temp1 < end)
- *temp1++ = *temp2++;
-
- *temp1 = blank;
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_delwin.c b/ncurses-5.2/ncurses/base/lib_delwin.c
deleted file mode 100644
index 597cb00..0000000
--- a/ncurses-5.2/ncurses/base/lib_delwin.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_delwin.c
-**
-** The routine delwin().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-static bool have_children(WINDOW *win)
-{
- WINDOWLIST *p;
- for (p = _nc_windows; p != 0; p = p->next) {
- if (p->win->_flags & _SUBWIN
- && p->win->_parent == win)
- return TRUE;
- }
- return FALSE;
-}
-
-int delwin(WINDOW *win)
-{
- T((T_CALLED("delwin(%p)"), win));
-
- if (win == 0
- || have_children(win))
- returnCode(ERR);
-
- if (win->_flags & _SUBWIN)
- touchwin(win->_parent);
- else if (curscr != 0)
- touchwin(curscr);
-
- _nc_freewin(win);
-
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_dft_fgbg.c b/ncurses-5.2/ncurses/base/lib_dft_fgbg.c
deleted file mode 100644
index 1a96a69..0000000
--- a/ncurses-5.2/ncurses/base/lib_dft_fgbg.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1997,1999 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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
-use_default_colors(void)
-{
- T((T_CALLED("use_default_colors()")));
- returnCode(assume_default_colors(C_MASK, C_MASK));
-}
-
-/*
- * Modify the behavior of color-pair 0 so that the library assumes that it
- * is something specific, possibly not white on black.
- */
-int
-assume_default_colors(int fg, int bg)
-{
- T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg));
-
- if (!orig_pair && !orig_colors)
- returnCode(ERR);
-
- if (initialize_pair) /* don't know how to handle this */
- returnCode(ERR);
-
- SP->_default_color = (fg < 0 || fg == C_MASK) || (bg < 0 || bg == C_MASK);
- SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
- SP->_default_fg = (fg >= 0) ? (fg & C_MASK) : C_MASK;
- SP->_default_bg = (bg >= 0) ? (bg & C_MASK) : C_MASK;
- if (SP->_color_pairs != 0)
- init_pair(0, fg, bg);
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_echo.c b/ncurses-5.2/ncurses/base/lib_echo.c
deleted file mode 100644
index a3d27e9..0000000
--- a/ncurses-5.2/ncurses/base/lib_echo.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * echo.c
- *
- * Routines:
- * echo()
- * noecho()
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int echo(void)
-{
- T((T_CALLED("echo()")));
- SP->_echo = TRUE;
- returnCode(OK);
-}
-
-int noecho(void)
-{
- T((T_CALLED("noecho()")));
- SP->_echo = FALSE;
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_endwin.c b/ncurses-5.2/ncurses/base/lib_endwin.c
deleted file mode 100644
index 454fafa..0000000
--- a/ncurses-5.2/ncurses/base/lib_endwin.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_endwin.c
-**
-** The routine endwin().
-**
-*/
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-int
-endwin(void)
-{
- 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());
- }
-
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_erase.c b/ncurses-5.2/ncurses/base/lib_erase.c
deleted file mode 100644
index d75deb6..0000000
--- a/ncurses-5.2/ncurses/base/lib_erase.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_erase.c
-**
-** The routine werase().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int werase(WINDOW *win)
-{
-int code = ERR;
-int y;
-chtype blank;
-chtype *sp, *end, *start;
-
- T((T_CALLED("werase(%p)"), win));
-
- if (win) {
- blank = _nc_background(win);
- for (y = 0; y <= win->_maxy; y++) {
- start = win->_line[y].text;
- end = &start[win->_maxx];
-
- for (sp = start; sp <= end; sp++)
- *sp = blank;
-
- 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_flash.c b/ncurses-5.2/ncurses/base/lib_flash.c
deleted file mode 100644
index 36bc9e6..0000000
--- a/ncurses-5.2/ncurses/base/lib_flash.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * flash.c
- *
- * The routine flash().
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* beep, flash */
-
-MODULE_ID("$Id$")
-
-/*
- * flash()
- *
- * Flash the current terminal's screen if possible. If not,
- * sound the audible bell if one exists.
- *
- */
-
-int flash(void)
-{
- int res = ERR;
-
- 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();
- }
-
- returnCode(res);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_freeall.c b/ncurses-5.2/ncurses/base/lib_freeall.c
deleted file mode 100644
index 1088b2f..0000000
--- a/ncurses-5.2/ncurses/base/lib_freeall.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1996,1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term_entry.h>
-
-#if HAVE_NC_FREEALL
-
-#if HAVE_LIBDBMALLOC
-extern int malloc_errfd; /* FIXME */
-#endif
-
-MODULE_ID("$Id$")
-
-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;
- }
-}
-
-/*
- * Free all ncurses data. This is used for testing only (there's no practical
- * use for it as an extension).
- */
-void
-_nc_freeall(void)
-{
- WINDOWLIST *p, *q;
-
-#if NO_LEAKS
- _nc_free_tparm();
-#endif
- if (SP != 0) {
- while (_nc_windows != 0) {
- /* Delete only windows that're not a parent */
- for (p = _nc_windows; p != 0; p = p->next) {
- bool found = FALSE;
-
- for (q = _nc_windows; q != 0; q = q->next) {
- if ((p != q)
- && (q->win->_flags & _SUBWIN)
- && (p->win == q->win->_parent)) {
- found = TRUE;
- break;
- }
- }
-
- if (!found) {
- delwin(p->win);
- 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
- }
-
- if (cur_term != 0) {
- _nc_free_termtype(&(cur_term->type));
- free(cur_term);
- }
-#ifdef TRACE
- (void) _nc_trace_buf(-1, 0);
-#endif
-#if HAVE_LIBDBMALLOC
- malloc_dump(malloc_errfd);
-#elif HAVE_LIBDMALLOC
-#elif HAVE_PURIFY
- purify_all_inuse();
-#endif
-}
-
-void
-_nc_free_and_exit(int code)
-{
- _nc_freeall();
- exit(code);
-}
-
-#else
-void
-_nc_freeall(void)
-{
-}
-#endif
diff --git a/ncurses-5.2/ncurses/base/lib_getch.c b/ncurses-5.2/ncurses/base/lib_getch.c
deleted file mode 100644
index 41c9460..0000000
--- a/ncurses-5.2/ncurses/base/lib_getch.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_getch.c
-**
-** The routine getch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#include <fifo_defs.h>
-
-int ESCDELAY = 1000; /* max interval betw. chars in funkeys, in millisecs */
-
-static inline int
-fifo_peek(void)
-{
- int ch = SP->_fifo[peek];
- TR(TRACE_IEVENT, ("peeking at %d", peek));
-
- p_inc();
- return ch;
-}
-
-static inline int
-fifo_pull(void)
-{
- int ch;
- ch = SP->_fifo[head];
- TR(TRACE_IEVENT, ("pulling %d from %d", ch, head));
-
- if (peek == head) {
- h_inc();
- peek = head;
- } else
- h_inc();
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT)
- _nc_fifo_dump();
-#endif
- return ch;
-}
-
-static inline int
-fifo_push(void)
-{
- int n;
- unsigned int ch;
-
- if (tail == -1)
- return ERR;
-
-#ifdef HIDE_EINTR
- again:
- errno = 0;
-#endif
-
-#if USE_GPM_SUPPORT || defined(USE_EMX_MOUSE)
- if ((SP->_mouse_fd >= 0)
- && (_nc_timed_wait(3, -1, (int *) 0) & 2)) {
- SP->_mouse_event(SP);
- ch = KEY_MOUSE;
- n = 1;
- } else
-#endif
- {
- unsigned char c2 = 0;
- n = read(SP->_ifd, &c2, 1);
- ch = c2 & 0xff;
- }
-
-#ifdef HIDE_EINTR
- /*
- * Under System V curses with non-restarting signals, getch() returns
- * with value ERR when a handled signal keeps it from completing.
- * If signals restart system calls, OTOH, the signal is invisible
- * except to its handler.
- *
- * We don't want this difference to show. This piece of code
- * tries to make it look like we always have restarting signals.
- */
- if (n <= 0 && errno == EINTR)
- goto again;
-#endif
-
- if ((n == -1) || (n == 0)) {
- TR(TRACE_IEVENT, ("read(%d,&ch,1)=%d, errno=%d", SP->_ifd, n, errno));
- ch = ERR;
- }
- TR(TRACE_IEVENT, ("read %d characters", n));
-
- SP->_fifo[tail] = ch;
- SP->_fifohold = 0;
- if (head == -1)
- head = peek = tail;
- t_inc();
- TR(TRACE_IEVENT, ("pushed %#x at %d", ch, tail));
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT)
- _nc_fifo_dump();
-#endif
- return ch;
-}
-
-static inline void
-fifo_clear(void)
-{
- int i;
- for (i = 0; i < FIFO_SIZE; i++)
- SP->_fifo[i] = 0;
- head = -1;
- tail = peek = 0;
-}
-
-static int kgetch(WINDOW *);
-
-#define wgetch_should_refresh(win) (\
- (is_wintouched(win) || (win->_flags & _HASMOVED)) \
- && !(win->_flags & _ISPAD))
-
-int
-wgetch(WINDOW *win)
-{
- int ch;
-
- T((T_CALLED("wgetch(%p)"), win));
-
- if (!win)
- returnCode(ERR);
-
- if (cooked_key_in_fifo()) {
- if (wgetch_should_refresh(win))
- wrefresh(win);
-
- ch = fifo_pull();
- T(("wgetch returning (pre-cooked): %#x = %s", ch, _trace_key(ch)));
- returnCode(ch);
- }
-
- /*
- * Handle cooked mode. Grab a string from the screen,
- * stuff its contents in the FIFO queue, and pop off
- * the first character to return it.
- */
- if (head == -1 && !SP->_raw && !SP->_cbreak) {
- char buf[MAXCOLUMNS], *sp;
-
- TR(TRACE_IEVENT, ("filling queue in cooked mode"));
-
- wgetnstr(win, buf, MAXCOLUMNS);
-
- /* ungetch in reverse order */
- ungetch('\n');
- for (sp = buf + strlen(buf); sp > buf; sp--)
- ungetch(sp[-1]);
-
- returnCode(fifo_pull());
- }
-
- if (wgetch_should_refresh(win))
- wrefresh(win);
-
- if (!win->_notimeout && (win->_delay >= 0 || SP->_cbreak > 1)) {
- int delay;
-
- TR(TRACE_IEVENT, ("timed delay in wgetch()"));
- if (SP->_cbreak > 1)
- delay = (SP->_cbreak - 1) * 100;
- else
- delay = win->_delay;
-
- TR(TRACE_IEVENT, ("delay is %d milliseconds", delay));
-
- if (head == -1) /* fifo is empty */
- if (!_nc_timed_wait(3, delay, (int *) 0))
- returnCode(ERR);
- /* else go on to read data available */
- }
-
- if (win->_use_keypad) {
- /*
- * This is tricky. We only want to get special-key
- * events one at a time. But we want to accumulate
- * mouse events until either (a) the mouse logic tells
- * us it's picked up a complete gesture, or (b)
- * there's a detectable time lapse after one.
- *
- * Note: if the mouse code starts failing to compose
- * press/release events into clicks, you should probably
- * increase the wait with mouseinterval().
- */
- int runcount = 0;
-
- do {
- ch = kgetch(win);
- if (ch == KEY_MOUSE) {
- ++runcount;
- if (SP->_mouse_inline(SP))
- break;
- }
- } 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 */
- ungetch(ch);
- ch = KEY_MOUSE;
- }
- } else {
- if (head == -1)
- fifo_push();
- ch = fifo_pull();
- }
-
- if (ch == ERR) {
-#if USE_SIZECHANGE
- if (SP->_sig_winch) {
- _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);
- }
- }
-#endif
- T(("wgetch returning ERR"));
- returnCode(ERR);
- }
-
- /*
- * If echo() is in effect, display the printable version of the
- * key on the screen. Carriage return and backspace are treated
- * specially by Solaris curses:
- *
- * If carriage return is defined as a function key in the
- * terminfo, e.g., kent, then Solaris may return either ^J (or ^M
- * if nonl() is set) or KEY_ENTER depending on the echo() mode.
- * We echo before translating carriage return based on nonl(),
- * since the visual result simply moves the cursor to column 0.
- *
- * Backspace is a different matter. Solaris curses does not
- * translate it to KEY_BACKSPACE if kbs=^H. This does not depend
- * on the stty modes, but appears to be a hardcoded special case.
- * This is a difference from ncurses, which uses the terminfo entry.
- * However, we provide the same visual result as Solaris, moving the
- * cursor to the left.
- */
- if (SP->_echo && !(win->_flags & _ISPAD)) {
- chtype backup = (ch == KEY_BACKSPACE) ? '\b' : ch;
- if (backup < KEY_MIN)
- wechochar(win, backup);
- }
-
- /*
- * Simulate ICRNL mode
- */
- if ((ch == '\r') && SP->_nl)
- ch = '\n';
-
- /* Strip 8th-bit if so desired. We do this only for characters that
- * are in the range 128-255, to provide compatibility with terminals
- * 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)
- ch &= 0x7f;
-
- T(("wgetch returning : %#x = %s", ch, _trace_key(ch)));
-
- returnCode(ch);
-}
-
-/*
-** int
-** kgetch()
-**
-** Get an input character, but take care of keypad sequences, returning
-** an appropriate code when one matches the input. After each character
-** is received, set an alarm call based on ESCDELAY. If no more of the
-** 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.
-** (that is head==-1 || peek==head)
-**
-*/
-
-static int
-kgetch(WINDOW *win GCC_UNUSED)
-{
- struct tries *ptr;
- int ch = 0;
- int timeleft = ESCDELAY;
-
- TR(TRACE_IEVENT, ("kgetch(%p) called", win));
-
- ptr = SP->_keytry;
-
- for (;;) {
- if (!raw_key_in_fifo()) {
- if (fifo_push() == ERR) {
- peek = head; /* the keys stay uninterpreted */
- return ERR;
- }
- }
- ch = fifo_peek();
- if (ch >= KEY_MIN) {
- 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)));
- while ((ptr != NULL) && (ptr->ch != (unsigned char) ch))
- ptr = ptr->sibling;
-#ifdef TRACE
- 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;
-
- if (ptr->value != 0) { /* sequence terminated */
- TR(TRACE_IEVENT, ("end of sequence"));
- if (peek == tail)
- fifo_clear();
- else
- head = peek;
- return (ptr->value);
- }
-
- ptr = ptr->child;
-
- if (!raw_key_in_fifo()) {
- TR(TRACE_IEVENT, ("waiting for rest of sequence"));
- if (!_nc_timed_wait(3, timeleft, &timeleft)) {
- TR(TRACE_IEVENT, ("ran out of time"));
- break;
- }
- }
- }
- ch = fifo_pull();
- peek = head;
- return ch;
-}
diff --git a/ncurses-5.2/ncurses/base/lib_getstr.c b/ncurses-5.2/ncurses/base/lib_getstr.c
deleted file mode 100644
index 52c76d8..0000000
--- a/ncurses-5.2/ncurses/base/lib_getstr.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_getstr.c
-**
-** The routine wgetstr().
-**
-*/
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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)
-{
- 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);
- }
- }
- return last;
-}
-
-int wgetnstr(WINDOW *win, char *str, int maxlen)
-{
-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));
-
- 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();
-
- oldstr = str;
- getyx(win, y, x);
-
- 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);
- }
- }
- }
-
- 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_hline.c b/ncurses-5.2/ncurses/base/lib_hline.c
deleted file mode 100644
index 3903e10..0000000
--- a/ncurses-5.2/ncurses/base/lib_hline.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_hline.c
-**
-** The routine whline().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-whline(WINDOW *win, chtype ch, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T start;
- NCURSES_SIZE_T end;
-
- T((T_CALLED("whline(%p,%s,%d)"), win, _tracechtype(ch), n));
-
- if (win) {
- struct ldat *line = &(win->_line[win->_cury]);
-
- start = win->_curx;
- end = start + n - 1;
- if (end > win->_maxx)
- end = win->_maxx;
-
- CHANGED_RANGE(line, start, end);
-
- if (ch == 0)
- ch = ACS_HLINE;
- ch = _nc_render(win, ch);
-
- while (end >= start) {
- line->text[end] = ch;
- end--;
- }
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_immedok.c b/ncurses-5.2/ncurses/base/lib_immedok.c
deleted file mode 100644
index 5ca02b4..0000000
--- a/ncurses-5.2/ncurses/base/lib_immedok.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_immedok.c
-**
-** The routine immedok.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-void immedok(WINDOW *win, bool flag)
-{
- T((T_CALLED("immedok(%p,%d)"), win, flag));
-
- if (win)
- win->_immed = flag;
-
- returnVoid;
-}
diff --git a/ncurses-5.2/ncurses/base/lib_inchstr.c b/ncurses-5.2/ncurses/base/lib_inchstr.c
deleted file mode 100644
index 1a190b0..0000000
--- a/ncurses-5.2/ncurses/base/lib_inchstr.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_inchstr.c
-**
-** The routine winchnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int winchnstr(WINDOW *win, chtype *str, int n)
-{
- int i = 0;
-
- T((T_CALLED("winchnstr(%p,%p,%d)"), win, str, n));
-
- 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;
-
- returnCode(i);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_initscr.c b/ncurses-5.2/ncurses/base/lib_initscr.c
deleted file mode 100644
index 8184210..0000000
--- a/ncurses-5.2/ncurses/base/lib_initscr.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_initscr.c
-**
-** The routines initscr(), and termname().
-**
-*/
-
-#include <curses.priv.h>
-#include <tic.h> /* for MAX_ALIAS */
-
-#if HAVE_SYS_TERMIO_H
-#include <sys/termio.h> /* needed for ISC */
-#endif
-
-MODULE_ID("$Id$")
-
-WINDOW *initscr(void)
-{
-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;
-
- 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;
- }
-
- /* def_shell_mode - done in newterm/_nc_setupscreen */
- def_prog_mode();
- }
- returnWin(stdscr);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_insch.c b/ncurses-5.2/ncurses/base/lib_insch.c
deleted file mode 100644
index 2d5ee5b..0000000
--- a/ncurses-5.2/ncurses/base/lib_insch.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-
-/*
-** lib_insch.c
-**
-** The routine winsch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int winsch(WINDOW *win, chtype c)
-{
-int code = ERR;
-
- 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;
-
- CHANGED_TO_EOL(line, win->_curx, win->_maxx);
- while (temp1 > end)
- *temp1-- = *temp2--;
-
- *temp1 = _nc_render(win, c);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_insdel.c b/ncurses-5.2/ncurses/base/lib_insdel.c
deleted file mode 100644
index a9193ef..0000000
--- a/ncurses-5.2/ncurses/base/lib_insdel.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_insdel.c
-**
-** The routine winsdelln(win, n).
-** positive n insert n lines above current line
-** negative n delete n lines starting from current line
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-winsdelln(WINDOW *win, int n)
-{
-int code = ERR;
-
- 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));
- _nc_synchook(win);
- }
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_insstr.c b/ncurses-5.2/ncurses/base/lib_insstr.c
deleted file mode 100644
index 2ead9e7..0000000
--- a/ncurses-5.2/ncurses/base/lib_insstr.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_insstr.c
-**
-** The routine winsnstr().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-int
-winsnstr(WINDOW *win, const char *s, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T oy;
- NCURSES_SIZE_T ox;
- const unsigned char *str = (const unsigned char *) s;
- const unsigned char *cp;
-
- T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbuf(s), n));
-
- 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)) {
- winsch(win, ' ' + (chtype) (*cp));
- winsch(win, '^');
- win->_curx += 2;
- } else {
- winsch(win, (chtype) (*cp));
- win->_curx++;
- }
- if (win->_curx > win->_maxx)
- win->_curx = win->_maxx;
- }
-
- win->_curx = ox;
- win->_cury = oy;
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_instr.c b/ncurses-5.2/ncurses/base/lib_instr.c
deleted file mode 100644
index 726fc6c..0000000
--- a/ncurses-5.2/ncurses/base/lib_instr.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_instr.c
-**
-** The routine winnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int winnstr(WINDOW *win, char *str, int n)
-{
- int i=0, row, col;
-
- T((T_CALLED("winnstr(%p,%p,%d)"), win, str, n));
-
- if (!str)
- returnCode(0);
-
- if (win) {
- getyx(win, row, col);
-
- if (n < 0)
- n = win->_maxx - win->_curx + 1;
-
- for (; i < n;) {
- str[i++] = TextOf(win->_line[row].text[col]);
- if (++col > win->_maxx) {
- col = 0;
- if (++row > win->_maxy)
- break;
- }
- }
- }
- str[i] = '\0'; /* SVr4 does not seem to count the null */
- returnCode(i);
-}
-
diff --git a/ncurses-5.2/ncurses/base/lib_isendwin.c b/ncurses-5.2/ncurses/base/lib_isendwin.c
deleted file mode 100644
index 5f723b1..0000000
--- a/ncurses-5.2/ncurses/base/lib_isendwin.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_endwin.c
-**
-** The routine endwin().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-bool isendwin(void)
-{
- if (SP == NULL)
- return FALSE;
- return SP->_endwin;
-}
diff --git a/ncurses-5.2/ncurses/base/lib_leaveok.c b/ncurses-5.2/ncurses/base/lib_leaveok.c
deleted file mode 100644
index e0043c9..0000000
--- a/ncurses-5.2/ncurses/base/lib_leaveok.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_leaveok.c
-**
-** The routine leaveok.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int leaveok(WINDOW *win, bool flag)
-{
- T((T_CALLED("leaveok(%p,%d)"), win, flag));
-
- if (win) {
- win->_leaveok = flag;
- returnCode(OK);
- }
- else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_mouse.c b/ncurses-5.2/ncurses/base/lib_mouse.c
deleted file mode 100644
index 33ab235..0000000
--- a/ncurses-5.2/ncurses/base/lib_mouse.c
+++ /dev/null
@@ -1,1004 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * This module is intended to encapsulate ncurses's interface to pointing
- * devices.
- *
- * The first method used is xterm's internal mouse-tracking facility.
- * The second is Alessandro Rubini's GPM server.
- *
- * Notes for implementors of new mouse-interface methods:
- *
- * The code is logically split into a lower level that accepts event reports
- * in a device-dependent format and an upper level that parses mouse gestures
- * and filters events. The mediating data structure is a circular queue of
- * MEVENT structures.
- *
- * Functionally, the lower level's job is to pick up primitive events and
- * put them on the circular queue. This can happen in one of two ways:
- * either (a) _nc_mouse_event() detects a series of incoming mouse reports
- * and queues them, or (b) code in lib_getch.c detects the kmous prefix in
- * the keyboard input stream and calls _nc_mouse_inline to queue up a series
- * of adjacent mouse reports.
- *
- * In either case, _nc_mouse_parse() should be called after the series is
- * accepted to parse the digested mouse reports (low-level MEVENTs) into
- * a gesture (a high-level or composite MEVENT).
- *
- * Don't be too shy about adding new event types or modifiers, if you can find
- * room for them in the 32-bit mask. The API is written so that users get
- * feedback on which theoretical event types they won't see when they call
- * mousemask. There's one bit per button (the RESERVED_EVENT bit) not being
- * used yet, and a couple of bits open at the high end.
- */
-
-#ifdef __EMX__
-# include <io.h>
-# define INCL_DOS
-# define INCL_VIO
-# define INCL_KBD
-# define INCL_MOU
-# define INCL_DOSPROCESS
-# include <os2.h> /* Need to include before the others */
-#endif
-
-#include <curses.priv.h>
-#include <term.h>
-
-#if USE_GPM_SUPPORT
-#ifndef LINT /* don't need this for llib-lncurses */
-#undef buttons /* term.h defines this, and gpm uses it! */
-#include <gpm.h>
-#include <linux/keyboard.h> /* defines KG_* macros */
-#endif
-#endif
-
-MODULE_ID("$Id$")
-
-#define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
-
-#define INVALID_EVENT -1
-
-static int mousetype;
-#define M_XTERM -1 /* use xterm's mouse tracking? */
-#define M_NONE 0 /* no mouse device */
-#define M_GPM 1 /* use GPM */
-#define M_QNX 2 /* QNX mouse on console */
-#define M_QNX_TERM 3 /* QNX mouse on pterm/xterm (using qansi-m) */
-
-#if USE_GPM_SUPPORT
-#ifndef LINT
-static Gpm_Connect gpm_connect;
-#endif
-#endif
-
-static mmask_t eventmask; /* current event mask */
-
-static bool _nc_mouse_parse(int);
-static void _nc_mouse_resume(SCREEN *);
-static void _nc_mouse_wrap(SCREEN *);
-
-/* maintain a circular list of mouse events */
-
-/* The definition of the circular list size (EV_MAX), is in curses.priv.h, so
- * wgetch() may refer to the size and call _nc_mouse_parse() before circular
- * list overflow.
- */
-static MEVENT events[EV_MAX]; /* hold the last mouse event seen */
-static MEVENT *eventp = events; /* next free slot in event queue */
-#define NEXT(ep) ((ep == events + EV_MAX - 1) ? events : ep + 1)
-#define PREV(ep) ((ep == events) ? events + EV_MAX - 1 : ep - 1)
-
-#ifdef TRACE
-static void
-_trace_slot(const char *tag)
-{
- MEVENT *ep;
-
- _tracef(tag);
-
- for (ep = events; ep < events + EV_MAX; ep++)
- _tracef("mouse event queue slot %ld = %s",
- (long) (ep - events),
- _tracemouse(ep));
-}
-#endif
-
-#ifdef USE_EMX_MOUSE
-
-# define TOP_ROW 0
-# define LEFT_COL 0
-
-static int mouse_wfd;
-static int mouse_thread;
-static int mouse_activated;
-static char mouse_buttons[] =
-{0, 1, 3, 2};
-
-# define M_FD(sp) sp->_mouse_fd
-
-static void
-write_event(int down, int button, int x, int y)
-{
- char buf[6];
- unsigned long ignore;
-
- strncpy(buf, key_mouse, 3); /* should be "\033[M" */
- buf[3] = ' ' + (button - 1) + (down ? 0 : 0x40);
- buf[4] = ' ' + x - LEFT_COL + 1;
- buf[5] = ' ' + y - TOP_ROW + 1;
- DosWrite(mouse_wfd, buf, 6, &ignore);
-}
-
-static void
-mouse_server(unsigned long ignored GCC_UNUSED)
-{
- unsigned short fWait = MOU_WAIT;
- /* NOPTRRECT mourt = { 0,0,24,79 }; */
- MOUEVENTINFO mouev;
- HMOU hmou;
- unsigned short mask = MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN;
- int nbuttons = 3;
- int oldstate = 0;
- char err[80];
- unsigned long rc;
-
- /* open the handle for the mouse */
- if (MouOpen(NULL, &hmou) == 0) {
- rc = MouSetEventMask(&mask, hmou);
- if (rc) { /* retry with 2 buttons */
- mask = MOUSE_BN1_DOWN | MOUSE_BN2_DOWN;
- rc = MouSetEventMask(&mask, hmou);
- nbuttons = 2;
- }
- if (rc == 0 && MouDrawPtr(hmou) == 0) {
- for (;;) {
- /* sit and wait on the event queue */
- rc = MouReadEventQue(&mouev, &fWait, hmou);
- if (rc) {
- sprintf(err, "Error reading mouse queue, rc=%lu.\r\n", rc);
- break;
- }
- if (!mouse_activated)
- goto finish;
-
- /*
- * OS/2 numbers a 3-button mouse inconsistently from other
- * platforms:
- * 1 = left
- * 2 = right
- * 3 = middle.
- */
- if ((mouev.fs ^ oldstate) & MOUSE_BN1_DOWN)
- write_event(mouev.fs & MOUSE_BN1_DOWN,
- mouse_buttons[1], mouev.col, mouev.row);
- if ((mouev.fs ^ oldstate) & MOUSE_BN2_DOWN)
- write_event(mouev.fs & MOUSE_BN2_DOWN,
- mouse_buttons[3], mouev.col, mouev.row);
- if ((mouev.fs ^ oldstate) & MOUSE_BN3_DOWN)
- write_event(mouev.fs & MOUSE_BN3_DOWN,
- mouse_buttons[2], mouev.col, mouev.row);
-
- finish:
- oldstate = mouev.fs;
- }
- } else
- sprintf(err, "Error setting event mask, buttons=%d, rc=%lu.\r\n",
- nbuttons, rc);
-
- DosWrite(2, err, strlen(err), &rc);
- MouClose(hmou);
- }
- DosExit(EXIT_THREAD, 0L);
-}
-
-static void
-server_state(const int state)
-{ /* It would be nice to implement pointer-off and stop looping... */
- mouse_activated = state;
-}
-
-#endif
-
-static int initialized;
-
-static void
-initialize_mousetype(void)
-{
- static const char *xterm_kmous = "\033[M";
-
- /* Try gpm first, because gpm may be configured to run in xterm */
-#if USE_GPM_SUPPORT
- /* GPM: initialize connection to gpm server */
- gpm_connect.eventMask = GPM_DOWN | GPM_UP;
- gpm_connect.defaultMask = ~(gpm_connect.eventMask | GPM_HARD);
- gpm_connect.minMod = 0;
- gpm_connect.maxMod = ~((1 << KG_SHIFT) | (1 << KG_SHIFTL) | (1 << KG_SHIFTR));
- if (Gpm_Open(&gpm_connect, 0) >= 0) { /* returns the file-descriptor */
- mousetype = M_GPM;
- SP->_mouse_fd = gpm_fd;
- return;
- }
-#endif
-
- /* OS/2 VIO */
-#ifdef USE_EMX_MOUSE
- if (!mouse_thread
- && strstr(cur_term->type.term_names, "xterm") == 0
- && key_mouse) {
- int handles[2];
-
- if (pipe(handles) < 0) {
- perror("mouse pipe error");
- return;
- } else {
- int rc;
-
- if (!mouse_buttons[0]) {
- char *s = getenv("MOUSE_BUTTONS_123");
-
- mouse_buttons[0] = 1;
- if (s && strlen(s) >= 3) {
- mouse_buttons[1] = s[0] - '0';
- mouse_buttons[2] = s[1] - '0';
- mouse_buttons[3] = s[2] - '0';
- }
- }
- mouse_wfd = handles[1];
- M_FD(SP) = handles[0];
- /* Needed? */
- setmode(handles[0], O_BINARY);
- setmode(handles[1], O_BINARY);
- /* Do not use CRT functions, we may single-threaded. */
- rc = DosCreateThread((unsigned long *) &mouse_thread,
- mouse_server, 0, 0, 8192);
- if (rc) {
- printf("mouse thread error %d=%#x", rc, rc);
- return;
- } else {
- mousetype = M_XTERM;
- return;
- }
- }
- }
-#endif
-
- /* we know how to recognize mouse events under "xterm" */
- if (key_mouse != 0) {
- if (!strcmp(key_mouse, xterm_kmous)) {
- mousetype = M_XTERM;
- return;
- }
- } else if (strstr(cur_term->type.term_names, "xterm") != 0) {
- (void) _nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE);
- mousetype = M_XTERM;
- return;
- }
-}
-
-static void
-_nc_mouse_init(void)
-/* initialize the mouse */
-{
- int i;
-
- if (!initialized) {
- initialized = TRUE;
-
- TR(MY_TRACE, ("_nc_mouse_init() called"));
-
- for (i = 0; i < EV_MAX; i++)
- events[i].id = INVALID_EVENT;
-
- initialize_mousetype();
-
- T(("_nc_mouse_init() set mousetype to %d", mousetype));
- }
-}
-
-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 (gpm_fd >= 0
- && (_nc_timed_wait(3, 0, (int *) 0) & 2) != 0
- && Gpm_GetEvent(&ev) == 1) {
- eventp->id = 0; /* there's only one mouse... */
-
- eventp->bstate = 0;
- switch (ev.type & 0x0f) {
- case (GPM_DOWN):
- if (ev.buttons & GPM_B_LEFT)
- eventp->bstate |= BUTTON1_PRESSED;
- if (ev.buttons & GPM_B_MIDDLE)
- eventp->bstate |= BUTTON2_PRESSED;
- if (ev.buttons & GPM_B_RIGHT)
- eventp->bstate |= BUTTON3_PRESSED;
- break;
- case (GPM_UP):
- if (ev.buttons & GPM_B_LEFT)
- eventp->bstate |= BUTTON1_RELEASED;
- if (ev.buttons & GPM_B_MIDDLE)
- eventp->bstate |= BUTTON2_RELEASED;
- if (ev.buttons & GPM_B_RIGHT)
- eventp->bstate |= BUTTON3_RELEASED;
- break;
- default:
- break;
- }
-
- eventp->x = ev.x - 1;
- eventp->y = ev.y - 1;
- eventp->z = 0;
-
- /* bump the next-free pointer into the circular list */
- eventp = NEXT(eventp);
- return (TRUE);
- }
-#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 */
- if (res != 3)
- printf("Got %d chars instead of 3 for prefix.\n", res);
- for (i = 0; i < res; i++) {
- if (kbuf[i] != key_mouse[i])
- printf("Got char %d instead of %d for prefix.\n",
- (int) kbuf[i], (int) key_mouse[i]);
- }
- return TRUE;
- }
-#endif /* USE_EMX_MOUSE */
-
- /* xterm: never have to query, mouse events are in the keyboard stream */
- return (FALSE); /* no event waiting */
-}
-
-static bool
-_nc_mouse_inline(SCREEN * sp)
-/* mouse report received in the keyboard stream -- parse its info */
-{
- TR(MY_TRACE, ("_nc_mouse_inline() called"));
-
- if (mousetype == M_XTERM) {
- unsigned char kbuf[4];
- MEVENT *prev;
- size_t grabbed;
- int res;
-
- /* This code requires that your xterm entry contain the kmous
- * capability and that it be set to the \E[M documented in the
- * Xterm Control Sequences reference. This is how we
- * arrange for mouse events to be reported via a KEY_MOUSE
- * return value from wgetch(). After this value is received,
- * _nc_mouse_inline() gets called and is immediately
- * responsible for parsing the mouse status information
- * following the prefix.
- *
- * The following quotes from the ctrlseqs.ms document in the
- * X distribution, describing the X mouse tracking feature:
- *
- * Parameters for all mouse tracking escape sequences
- * generated by xterm encode numeric parameters in a single
- * character as value+040. For example, ! is 1.
- *
- * On button press or release, xterm sends ESC [ M CbCxCy.
- * The low two bits of Cb encode button information: 0=MB1
- * pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release. The
- * upper bits encode what modifiers were down when the
- * button was pressed and are added together. 4=Shift,
- * 8=Meta, 16=Control. Cx and Cy are the x and y coordinates
- * of the mouse event. The upper left corner is (1,1).
- *
- * (End quote) By the time we get here, we've eaten the
- * key prefix. FYI, the loop below is necessary because
- * mouse click info isn't guaranteed to present as a
- * single clist item. It always does under Linux but often
- * fails to under Solaris.
- */
- for (grabbed = 0; grabbed < 3; grabbed += res) {
-
- /* For VIO mouse we add extra bit 64 to disambiguate button-up. */
-#ifdef USE_EMX_MOUSE
- res = read(M_FD(sp) >= 0 ? M_FD(sp) : sp->_ifd, &kbuf, 3);
-#else
- res = read(sp->_ifd, kbuf + grabbed, 3 - grabbed);
-#endif
- if (res == -1)
- break;
- }
- kbuf[3] = '\0';
-
- TR(TRACE_IEVENT,
- ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf));
-
- eventp->id = 0; /* there's only one mouse... */
-
- /* processing code goes here */
- eventp->bstate = 0;
- switch (kbuf[0] & 0x3) {
- case 0x0:
- eventp->bstate = BUTTON1_PRESSED;
-#ifdef USE_EMX_MOUSE
- if (kbuf[0] & 0x40)
- eventp->bstate = BUTTON1_RELEASED;
-#endif
- break;
-
- case 0x1:
- eventp->bstate = BUTTON2_PRESSED;
-#ifdef USE_EMX_MOUSE
- if (kbuf[0] & 0x40)
- eventp->bstate = BUTTON2_RELEASED;
-#endif
- break;
-
- case 0x2:
- eventp->bstate = BUTTON3_PRESSED;
-#ifdef USE_EMX_MOUSE
- if (kbuf[0] & 0x40)
- eventp->bstate = BUTTON3_RELEASED;
-#endif
- break;
-
- case 0x3:
- /*
- * Release events aren't reported for individual buttons,
- * just for the button set as a whole...
- */
- eventp->bstate =
- (BUTTON1_RELEASED |
- BUTTON2_RELEASED |
- BUTTON3_RELEASED);
- /*
- * ...however, because there are no kinds of mouse events under
- * xterm that can intervene between press and release, we can
- * deduce which buttons were actually released by looking at the
- * previous event.
- */
- prev = PREV(eventp);
- if (!(prev->bstate & BUTTON1_PRESSED))
- eventp->bstate &= ~BUTTON1_RELEASED;
- if (!(prev->bstate & BUTTON2_PRESSED))
- eventp->bstate &= ~BUTTON2_RELEASED;
- if (!(prev->bstate & BUTTON3_PRESSED))
- eventp->bstate &= ~BUTTON3_RELEASED;
- break;
- }
-
- if (kbuf[0] & 4) {
- eventp->bstate |= BUTTON_SHIFT;
- }
- if (kbuf[0] & 8) {
- eventp->bstate |= BUTTON_ALT;
- }
- if (kbuf[0] & 16) {
- eventp->bstate |= BUTTON_CTRL;
- }
-
- eventp->x = (kbuf[1] - ' ') - 1;
- eventp->y = (kbuf[2] - ' ') - 1;
- TR(MY_TRACE,
- ("_nc_mouse_inline: primitive mouse-event %s has slot %ld",
- _tracemouse(eventp),
- (long) (eventp - events)));
-
- /* bump the next-free pointer into the circular list */
- eventp = NEXT(eventp);
-#if 0 /* this return would be needed for QNX's mods to lib_getch.c */
- return (TRUE);
-#endif
- }
-
- return (FALSE);
-}
-
-static void
-mouse_activate(bool on)
-{
- if (!on && !initialized)
- return;
-
- _nc_mouse_init();
-
- if (on) {
-
- switch (mousetype) {
- case M_XTERM:
-#if NCURSES_EXT_FUNCS
- keyok(KEY_MOUSE, on);
-#endif
- TPUTS_TRACE("xterm mouse initialization");
-#ifdef USE_EMX_MOUSE
- server_state(1);
-#else
- putp("\033[?1000h");
-#endif
- break;
-#if USE_GPM_SUPPORT
- case M_GPM:
- SP->_mouse_fd = gpm_fd;
- break;
-#endif
- }
- /* Make runtime binding to cut down on object size of applications that
- * do not use the mouse (e.g., 'clear').
- */
- SP->_mouse_event = _nc_mouse_event;
- SP->_mouse_inline = _nc_mouse_inline;
- SP->_mouse_parse = _nc_mouse_parse;
- SP->_mouse_resume = _nc_mouse_resume;
- SP->_mouse_wrap = _nc_mouse_wrap;
-
- } else {
-
- switch (mousetype) {
- case M_XTERM:
- TPUTS_TRACE("xterm mouse deinitialization");
-#ifdef USE_EMX_MOUSE
- server_state(0);
-#else
- putp("\033[?1000l");
-#endif
- break;
-#if USE_GPM_SUPPORT
- case M_GPM:
- break;
-#endif
- }
- }
- _nc_flush();
-}
-
-/**************************************************************************
- *
- * Device-independent code
- *
- **************************************************************************/
-
-static bool
-_nc_mouse_parse(int runcount)
-/* parse a run of atomic mouse events into a gesture */
-{
- MEVENT *ep, *runp, *next, *prev = PREV(eventp);
- int n;
- bool merge;
-
- TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount));
-
- /*
- * When we enter this routine, the event list next-free pointer
- * points just past a run of mouse events that we know were separated
- * in time by less than the critical click interval. The job of this
- * routine is to collaps this run into a single higher-level event
- * or gesture.
- *
- * We accomplish this in two passes. The first pass merges press/release
- * pairs into click events. The second merges runs of click events into
- * double or triple-click events.
- *
- * It's possible that the run may not resolve to a single event (for
- * example, if the user quadruple-clicks). If so, leading events
- * in the run are ignored.
- *
- * Note that this routine is independent of the format of the specific
- * format of the pointing-device's reports. We can use it to parse
- * gestures on anything that reports press/release events on a per-
- * button basis, as long as the device-dependent mouse code puts stuff
- * on the queue in MEVENT format.
- */
- if (runcount == 1) {
- TR(MY_TRACE,
- ("_nc_mouse_parse: returning simple mouse event %s at slot %ld",
- _tracemouse(prev),
- (long) (prev - events)));
- return (prev->id >= 0)
- ? ((prev->bstate & eventmask) ? TRUE : FALSE)
- : FALSE;
- }
-
- /* find the start of the run */
- runp = eventp;
- for (n = runcount; n > 0; n--) {
- runp = PREV(runp);
- }
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) {
- _trace_slot("before mouse press/release merge:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - events),
- (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- }
-#endif /* TRACE */
-
- /* first pass; merge press/release pairs */
- do {
- merge = FALSE;
- for (ep = runp; next = NEXT(ep), next != eventp; ep = next) {
- if (ep->x == next->x && ep->y == next->y
- && (ep->bstate & (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED))
- && (!(ep->bstate & BUTTON1_PRESSED)
- == !(next->bstate & BUTTON1_RELEASED))
- && (!(ep->bstate & BUTTON2_PRESSED)
- == !(next->bstate & BUTTON2_RELEASED))
- && (!(ep->bstate & BUTTON3_PRESSED)
- == !(next->bstate & BUTTON3_RELEASED))
- ) {
- if ((eventmask & BUTTON1_CLICKED)
- && (ep->bstate & BUTTON1_PRESSED)) {
- ep->bstate &= ~BUTTON1_PRESSED;
- ep->bstate |= BUTTON1_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_CLICKED)
- && (ep->bstate & BUTTON2_PRESSED)) {
- ep->bstate &= ~BUTTON2_PRESSED;
- ep->bstate |= BUTTON2_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_CLICKED)
- && (ep->bstate & BUTTON3_PRESSED)) {
- ep->bstate &= ~BUTTON3_PRESSED;
- ep->bstate |= BUTTON3_CLICKED;
- merge = TRUE;
- }
- if (merge)
- next->id = INVALID_EVENT;
- }
- }
- } while
- (merge);
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) {
- _trace_slot("before mouse click merge:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - events),
- (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- }
-#endif /* TRACE */
-
- /*
- * Second pass; merge click runs. At this point, click events are
- * each followed by one invalid event. We merge click events
- * forward in the queue.
- *
- * NOTE: There is a problem with this design! If the application
- * allows enough click events to pile up in the circular queue so
- * they wrap around, it will cheerfully merge the newest forward
- * into the oldest, creating a bogus doubleclick and confusing
- * the queue-traversal logic rather badly. Generally this won't
- * happen, because calling getmouse() marks old events invalid and
- * ineligible for merges. The true solution to this problem would
- * be to timestamp each MEVENT and perform the obvious sanity check,
- * but the timer element would have to have sub-second resolution,
- * which would get us into portability trouble.
- */
- do {
- MEVENT *follower;
-
- merge = FALSE;
- for (ep = runp; next = NEXT(ep), next != eventp; ep = next)
- if (ep->id != INVALID_EVENT) {
- if (next->id != INVALID_EVENT)
- continue;
- follower = NEXT(next);
- if (follower->id == INVALID_EVENT)
- continue;
-
- /* merge click events forward */
- if ((ep->bstate &
- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))
- && (follower->bstate &
- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))) {
- if ((eventmask & BUTTON1_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON1_CLICKED)) {
- follower->bstate &= ~BUTTON1_CLICKED;
- follower->bstate |= BUTTON1_DOUBLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON2_CLICKED)) {
- follower->bstate &= ~BUTTON2_CLICKED;
- follower->bstate |= BUTTON2_DOUBLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON3_CLICKED)) {
- follower->bstate &= ~BUTTON3_CLICKED;
- follower->bstate |= BUTTON3_DOUBLE_CLICKED;
- merge = TRUE;
- }
- if (merge)
- ep->id = INVALID_EVENT;
- }
-
- /* merge double-click events forward */
- if ((ep->bstate &
- (BUTTON1_DOUBLE_CLICKED
- | BUTTON2_DOUBLE_CLICKED
- | BUTTON3_DOUBLE_CLICKED))
- && (follower->bstate &
- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))) {
- if ((eventmask & BUTTON1_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON1_CLICKED)) {
- follower->bstate &= ~BUTTON1_CLICKED;
- follower->bstate |= BUTTON1_TRIPLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON2_CLICKED)) {
- follower->bstate &= ~BUTTON2_CLICKED;
- follower->bstate |= BUTTON2_TRIPLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON3_CLICKED)) {
- follower->bstate &= ~BUTTON3_CLICKED;
- follower->bstate |= BUTTON3_TRIPLE_CLICKED;
- merge = TRUE;
- }
- if (merge)
- ep->id = INVALID_EVENT;
- }
- }
- } while
- (merge);
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) {
- _trace_slot("before mouse event queue compaction:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - events),
- (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- }
-#endif /* TRACE */
-
- /*
- * Now try to throw away trailing events flagged invalid, or that
- * don't match the current event mask.
- */
- for (; runcount; prev = PREV(eventp), runcount--)
- if (prev->id == INVALID_EVENT || !(prev->bstate & eventmask)) {
- eventp = prev;
- }
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) {
- _trace_slot("after mouse event queue compaction:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - events),
- (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- }
- for (ep = runp; ep != eventp; ep = NEXT(ep))
- if (ep->id != INVALID_EVENT)
- TR(MY_TRACE,
- ("_nc_mouse_parse: returning composite mouse event %s at slot %ld",
- _tracemouse(ep),
- (long) (ep - events)));
-#endif /* TRACE */
-
- /* after all this, do we have a valid event? */
- return (PREV(eventp)->id != INVALID_EVENT);
-}
-
-static void
-_nc_mouse_wrap(SCREEN * sp GCC_UNUSED)
-/* release mouse -- called by endwin() before shellout/exit */
-{
- TR(MY_TRACE, ("_nc_mouse_wrap() called"));
-
- switch (mousetype) {
- case M_XTERM:
- if (eventmask)
- mouse_activate(FALSE);
- break;
-#if USE_GPM_SUPPORT
- /* GPM: pass all mouse events to next client */
- case M_GPM:
- break;
-#endif
- }
-}
-
-static void
-_nc_mouse_resume(SCREEN * sp GCC_UNUSED)
-/* re-connect to mouse -- called by doupdate() after shellout */
-{
- TR(MY_TRACE, ("_nc_mouse_resume() called"));
-
- /* xterm: re-enable reporting */
- if (mousetype == M_XTERM && eventmask)
- mouse_activate(TRUE);
-
- /* GPM: reclaim our event set */
-}
-
-/**************************************************************************
- *
- * Mouse interface entry points for the API
- *
- **************************************************************************/
-
-int
-getmouse(MEVENT * aevent)
-/* grab a copy of the current mouse event */
-{
- T((T_CALLED("getmouse(%p)"), aevent));
-
- if (aevent && (mousetype != M_NONE)) {
- /* compute the current-event pointer */
- MEVENT *prev = PREV(eventp);
-
- /* copy the event we find there */
- *aevent = *prev;
-
- TR(TRACE_IEVENT, ("getmouse: returning event %s from slot %ld",
- _tracemouse(prev),
- (long) (prev - events)));
-
- prev->id = INVALID_EVENT; /* so the queue slot becomes free */
- returnCode(OK);
- }
- returnCode(ERR);
-}
-
-int
-ungetmouse(MEVENT * aevent)
-/* enqueue a synthesized mouse event to be seen by the next wgetch() */
-{
- /* stick the given event in the next-free slot */
- *eventp = *aevent;
-
- /* bump the next-free pointer into the circular list */
- eventp = NEXT(eventp);
-
- /* push back the notification event on the keyboard queue */
- return ungetch(KEY_MOUSE);
-}
-
-mmask_t
-mousemask(mmask_t newmask, mmask_t * oldmask)
-/* set the mouse event mask */
-{
- mmask_t result = 0;
-
- T((T_CALLED("mousemask(%#lx,%p)"), newmask, oldmask));
-
- if (oldmask)
- *oldmask = eventmask;
-
- if (!newmask && !initialized)
- returnCode(0);
-
- _nc_mouse_init();
- if (mousetype != M_NONE) {
- eventmask = newmask &
- (BUTTON_ALT | BUTTON_CTRL | BUTTON_SHIFT
- | BUTTON1_PRESSED | BUTTON1_RELEASED | BUTTON1_CLICKED
- | BUTTON1_DOUBLE_CLICKED | BUTTON1_TRIPLE_CLICKED
- | BUTTON2_PRESSED | BUTTON2_RELEASED | BUTTON2_CLICKED
- | BUTTON2_DOUBLE_CLICKED | BUTTON2_TRIPLE_CLICKED
- | BUTTON3_PRESSED | BUTTON3_RELEASED | BUTTON3_CLICKED
- | BUTTON3_DOUBLE_CLICKED | BUTTON3_TRIPLE_CLICKED);
-
- mouse_activate(eventmask != 0);
-
- result = eventmask;
- }
-
- returnCode(result);
-}
-
-bool
-wenclose(const WINDOW *win, int y, int x)
-/* check to see if given window encloses given screen location */
-{
- if (win) {
- y -= win->_yoffset;
- return ((win->_begy <= y &&
- win->_begx <= x &&
- (win->_begx + win->_maxx) >= x &&
- (win->_begy + win->_maxy) >= y) ? TRUE : FALSE);
- }
- return FALSE;
-}
-
-int
-mouseinterval(int maxclick)
-/* set the maximum mouse interval within which to recognize a click */
-{
- int oldval;
-
- if (SP != 0) {
- oldval = SP->_maxclick;
- if (maxclick >= 0)
- SP->_maxclick = maxclick;
- } else {
- oldval = DEFAULT_MAXCLICK;
- }
-
- return (oldval);
-}
-
-/* This may be used by other routines to ask for the existence of mouse
- support */
-int
-_nc_has_mouse(void)
-{
- return (mousetype == M_NONE ? 0 : 1);
-}
-
-bool
-wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen)
-{
- bool result = FALSE;
-
- if (win && pY && pX) {
- int y = *pY;
- int x = *pX;
-
- if (to_screen) {
- y += win->_begy + win->_yoffset;
- x += win->_begx;
- if (wenclose(win, y, x))
- result = TRUE;
- } else {
- if (wenclose(win, y, x)) {
- y -= (win->_begy + win->_yoffset);
- x -= win->_begx;
- result = TRUE;
- }
- }
- if (result) {
- *pX = x;
- *pY = y;
- }
- }
- return (result);
-}
-
-/* lib_mouse.c ends here */
diff --git a/ncurses-5.2/ncurses/base/lib_move.c b/ncurses-5.2/ncurses/base/lib_move.c
deleted file mode 100644
index e414852..0000000
--- a/ncurses-5.2/ncurses/base/lib_move.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_move.c
-**
-** The routine wmove().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-wmove(WINDOW *win, int y, int x)
-{
- T((T_CALLED("wmove(%p,%d,%d)"), win, y, x));
-
- if (win &&
- x >= 0 && x <= win->_maxx &&
- y >= 0 && y <= win->_maxy) {
- win->_curx = (NCURSES_SIZE_T) x;
- win->_cury = (NCURSES_SIZE_T) y;
-
- win->_flags &= ~_WRAPPED;
- win->_flags |= _HASMOVED;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_mvwin.c b/ncurses-5.2/ncurses/base/lib_mvwin.c
deleted file mode 100644
index 61bfecf..0000000
--- a/ncurses-5.2/ncurses/base/lib_mvwin.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-
-/*
-** lib_mvwin.c
-**
-** The routine mvwin().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int mvwin(WINDOW *win, int by, int bx)
-{
- T((T_CALLED("mvwin(%p,%d,%d)"), win, by, bx));
-
- 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);
- 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;
- }
- }
- }
- 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));
-}
diff --git a/ncurses-5.2/ncurses/base/lib_newterm.c b/ncurses-5.2/ncurses/base/lib_newterm.c
deleted file mode 100644
index 248a6c6..0000000
--- a/ncurses-5.2/ncurses/base/lib_newterm.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_newterm.c
-**
-** The newterm() function.
-**
-*/
-
-#include <curses.priv.h>
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#include <term.h> /* clear_screen, cup & friends, cur_term */
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-#ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */
-#define ONLCR 0
-#endif
-
-/*
- * SVr4/XSI Curses specify that hardware echo is turned off in initscr, and not
- * restored during the curses session. The library simulates echo in software.
- * (The behavior is unspecified if the application enables hardware echo).
- *
- * The newterm function also initializes terminal settings, and since initscr
- * is supposed to behave as if it calls newterm, we do it here.
- */
-static inline int
-_nc_initscr(void)
-{
- /* for extended XPG4 conformance requires cbreak() at this point */
- /* (SVr4 curses does this anyway) */
- cbreak();
-
-#ifdef TERMIOS
- cur_term->Nttyb.c_lflag &= ~(ECHO | ECHONL);
- cur_term->Nttyb.c_iflag &= ~(ICRNL | INLCR | IGNCR);
- cur_term->Nttyb.c_oflag &= ~(ONLCR);
-#else
- cur_term->Nttyb.sg_flags &= ~(ECHO | CRMOD);
-#endif
- return _nc_set_tty_mode(&cur_term->Nttyb);
-}
-
-/*
- * filter() has to be called before either initscr() or newterm(), so there is
- * apparently no way to make this flag apply to some terminals and not others,
- * aside from possibly delaying a filter() call until some terminals have been
- * initialized.
- */
-static int filter_mode = FALSE;
-
-void
-filter(void)
-{
- filter_mode = TRUE;
-}
-
-SCREEN *
-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
-
- 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;
-
- /* implement filter mode */
- if (filter_mode) {
- LINES = 1;
-
- if (VALID_NUMERIC(init_tabs))
- TABSIZE = init_tabs;
- else
- TABSIZE = 8;
-
- T(("TABSIZE = %d", TABSIZE));
-
- clear_screen = 0;
- cursor_down = parm_down_cursor = 0;
- cursor_address = 0;
- cursor_up = parm_up_cursor = 0;
- row_address = 0;
-
- cursor_home = carriage_return;
- }
-
- /* If we must simulate soft labels, grab off the line to be used.
- We assume that we must simulate, if it is none of the standard
- formats (4-4 or 3-2-3) for which there may be some hardware
- support. */
- if (num_labels <= 0 || !SLK_STDFMT(slk_format))
- if (slk_format) {
- if (ERR == _nc_ripoffline(-SLK_LINES(slk_format),
- _nc_slk_initialize))
- return 0;
- }
- /* this actually allocates the screen structure, and saves the
- * original terminal settings.
- */
- current = SP;
- _nc_set_screen(0);
- if (_nc_setupscreen(LINES, COLS, ofp) == ERR) {
- _nc_set_screen(current);
- return 0;
- }
-
- /* if the terminal type has real soft labels, set those up */
- if (slk_format && num_labels > 0 && SLK_STDFMT(slk_format))
- _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 &&
- !(cur_term->Ottyb.c_iflag & ISTRIP));
-#else
- SP->_use_meta = FALSE;
-#endif
- SP->_endwin = FALSE;
-
- /* Check whether we can optimize scrolling under dumb terminals in case
- * we do not have any of these capabilities, scrolling optimization
- * will be useless.
- */
- SP->_scrolling = ((scroll_forward && scroll_reverse) ||
- ((parm_rindex || parm_insert_line || insert_line) &&
- (parm_index || parm_delete_line || delete_line)));
-
- baudrate(); /* sets a field in the SP structure */
-
- SP->_keytry = 0;
-
- /*
- * Check for mismatched graphic-rendition capabilities. Most SVr4
- * terminfo trees contain entries that have rmul or rmso equated to
- * sgr0 (Solaris curses copes with those entries). We do this only for
- * curses, since many termcap applications assume that smso/rmso and
- * smul/rmul are paired, and will not function properly if we remove
- * rmso or rmul. Curses applications shouldn't be looking at this
- * detail.
- */
-#define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_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();
-
- /* initialize terminal to a sane state */
- _nc_screen_init();
-
- /* Initialize the terminal line settings. */
- _nc_initscr();
-
- _nc_signal_handler(TRUE);
-
- T((T_RETURN("%p"), SP));
- return (SP);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_newwin.c b/ncurses-5.2/ncurses/base/lib_newwin.c
deleted file mode 100644
index 99fb111..0000000
--- a/ncurses-5.2/ncurses/base/lib_newwin.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_newwin.c
-**
-** The routines newwin(), subwin() and their dependent
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-void
-_nc_freewin(WINDOW *win)
-{
- WINDOWLIST *p, *q;
- int i;
-
- if (win != 0) {
- for (p = _nc_windows, q = 0; p != 0; q = p, p = p->next) {
- if (p->win == win) {
- 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);
- free(win);
-
- if (win == curscr)
- curscr = 0;
- if (win == stdscr)
- stdscr = 0;
- if (win == newscr)
- newscr = 0;
-
- T(("...deleted win=%p", win));
- break;
- }
- }
- }
-}
-
-WINDOW *
-newwin(int num_lines, int num_columns, int begy, int begx)
-{
- WINDOW *win;
- chtype *ptr;
- int i;
-
- T((T_CALLED("newwin(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
-
- if (begy < 0 || begx < 0 || num_lines < 0 || num_columns < 0)
- returnWin(0);
-
- if (num_lines == 0)
- num_lines = SP->_lines_avail - begy;
- if (num_columns == 0)
- num_columns = screen_columns - begx;
-
- if (num_columns + begx > SP->_columns || num_lines + begy > SP->_lines_avail)
- returnWin(0);
-
- if ((win = _nc_makenew(num_lines, num_columns, begy, begx, 0)) == 0)
- returnWin(0);
-
- for (i = 0; i < num_lines; i++) {
- win->_line[i].text = typeCalloc(chtype, (unsigned) num_columns);
- if (win->_line[i].text == 0) {
- _nc_freewin(win);
- returnWin(0);
- }
- for (ptr = win->_line[i].text; ptr < win->_line[i].text +
- num_columns;)
- *ptr++ = ' ';
- }
-
- T(("newwin: returned window is %p", win));
-
- returnWin(win);
-}
-
-WINDOW *
-derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx)
-{
- WINDOW *win;
- int i;
- int flags = _SUBWIN;
-
- T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), orig, num_lines, num_columns,
- begy, begx));
-
- /*
- ** 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 + num_lines > orig->_maxy + 1
- || begx + num_columns > orig->_maxx + 1)
- returnWin(0);
-
- if (num_lines == 0)
- num_lines = orig->_maxy + 1 - begy;
-
- if (num_columns == 0)
- num_columns = orig->_maxx + 1 - begx;
-
- if (orig->_flags & _ISPAD)
- flags |= _ISPAD;
-
- if ((win = _nc_makenew(num_lines, num_columns, orig->_begy + begy,
- orig->_begx + begx, flags)) == 0)
- returnWin(0);
-
- win->_pary = begy;
- win->_parx = begx;
- win->_attrs = orig->_attrs;
- win->_bkgd = orig->_bkgd;
-
- 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);
-}
-
-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));
- T(("parent has begy = %d, begx = %d", w->_begy, w->_begx));
-
- returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx));
-}
-
-static bool
-dimension_limit(int value)
-{
- NCURSES_SIZE_T test = value;
- return (test == value && value > 0);
-}
-
-WINDOW *
-_nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
-{
- int i;
- WINDOWLIST *wp;
- WINDOW *win;
- bool is_pad = (flags & _ISPAD);
-
- T(("_nc_makenew(%d,%d,%d,%d)", num_lines, num_columns, begy, begx));
-
- if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
- return 0;
-
- if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
- return 0;
-
- if ((win = typeCalloc(WINDOW, 1)) == 0)
- return 0;
-
- if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
- free(win);
- return 0;
- }
-
- win->_curx = 0;
- win->_cury = 0;
- win->_maxy = num_lines - 1;
- win->_maxx = num_columns - 1;
- win->_begy = begy;
- win->_begx = begx;
- win->_yoffset = SP->_topstolen;
-
- win->_flags = flags;
- win->_attrs = A_NORMAL;
- win->_bkgd = BLANK;
-
- win->_clear = is_pad ? FALSE : (num_lines == screen_lines && num_columns
- == screen_columns);
- win->_idlok = FALSE;
- win->_idcok = TRUE;
- win->_scroll = FALSE;
- win->_leaveok = FALSE;
- win->_use_keypad = FALSE;
- win->_delay = -1;
- win->_immed = FALSE;
- win->_sync = 0;
- win->_parx = -1;
- win->_pary = -1;
- win->_parent = 0;
-
- win->_regtop = 0;
- win->_regbottom = num_lines - 1;
-
- win->_pad._pad_y = -1;
- win->_pad._pad_x = -1;
- win->_pad._pad_top = -1;
- win->_pad._pad_bottom = -1;
- win->_pad._pad_left = -1;
- win->_pad._pad_right = -1;
-
- for (i = 0; i < num_lines; i++) {
- /*
- * This used to do
- *
- * win->_line[i].firstchar = win->_line[i].lastchar = _NOCHANGE;
- *
- * which marks the whole window unchanged. That's how
- * SVr1 curses did it, but SVr4 curses marks the whole new
- * window changed.
- *
- * With the old SVr1-like code, say you have stdscr full of
- * characters, then create a new window with newwin(),
- * then do a printw(win, "foo ");, the trailing spaces are
- * completely ignored by the following refreshes. So, you
- * get "foojunkjunk" on the screen instead of "foo " as
- * you actually intended.
- *
- * SVr4 doesn't do this. Instead the spaces are actually written.
- * So that's how we want ncurses to behave.
- */
- win->_line[i].firstchar = 0;
- win->_line[i].lastchar = num_columns - 1;
-
- if_USE_SCROLL_HINTS(win->_line[i].oldindex = i);
- }
-
- if (!is_pad && (begx + num_columns == screen_columns)) {
- win->_flags |= _ENDLINE;
-
- if (begx == 0 && num_lines == screen_lines && begy == 0)
- win->_flags |= _FULLWIN;
-
- if (begy + num_lines == screen_lines)
- win->_flags |= _SCROLLWIN;
- }
-
- wp->next = _nc_windows;
- wp->win = win;
- _nc_windows = wp;
-
- T((T_CREATE("window %p"), win));
-
- return (win);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_nl.c b/ncurses-5.2/ncurses/base/lib_nl.c
deleted file mode 100644
index c526b9e..0000000
--- a/ncurses-5.2/ncurses/base/lib_nl.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * nl.c
- *
- * Routines:
- * nl()
- * nonl()
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef __EMX__
-#include <io.h>
-#endif
-
-int
-nl(void)
-{
- T((T_CALLED("nl()")));
-
- SP->_nl = TRUE;
-
-#ifdef __EMX__
- _nc_flush();
- _fsetmode(NC_OUTPUT, "t");
-#endif
-
- returnCode(OK);
-}
-
-int
-nonl(void)
-{
- T((T_CALLED("nonl()")));
-
- SP->_nl = FALSE;
-
-#ifdef __EMX__
- _nc_flush();
- _fsetmode(NC_OUTPUT, "b");
-#endif
-
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_overlay.c b/ncurses-5.2/ncurses/base/lib_overlay.c
deleted file mode 100644
index e57f6f0..0000000
--- a/ncurses-5.2/ncurses/base/lib_overlay.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_overlay.c
-**
-** The routines overlay(), copywin(), and overwrite().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-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));
-}
-
-/*
-**
-** overlay(win1, win2)
-**
-**
-** overlay() writes the overlapping area of win1 behind win2
-** on win2 non-destructively.
-**
-**/
-
-int overlay(const WINDOW *win1, WINDOW *win2)
-{
- T((T_CALLED("overlay(%p,%p)"), win1, win2));
- returnCode(overlap(win1, win2, TRUE));
-}
-
-/*
-**
-** overwrite(win1, win2)
-**
-**
-** overwrite() writes the overlapping area of win1 behind win2
-** on win2 destructively.
-**
-**/
-
-int overwrite(const WINDOW *win1, WINDOW *win2)
-{
- T((T_CALLED("overwrite(%p,%p)"), win1, win2));
- returnCode(overlap(win1, win2, FALSE));
-}
-
-int copywin(const WINDOW *src, WINDOW *dst,
- int sminrow, int smincol,
- int dminrow, int dmincol, int dmaxrow, int dmaxcol,
- 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);
- }
-
- 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));
- }
- }
- T(("finished copywin"));
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_pad.c b/ncurses-5.2/ncurses/base/lib_pad.c
deleted file mode 100644
index e85ec5a..0000000
--- a/ncurses-5.2/ncurses/base/lib_pad.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_pad.c
- * newpad -- create a new pad
- * pnoutrefresh -- refresh a pad, no update
- * pechochar -- add a char to a pad and refresh
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-WINDOW *
-newpad(int l, int c)
-{
- WINDOW *win;
- chtype *ptr;
- int i;
-
- T((T_CALLED("newpad(%d, %d)"), l, c));
-
- if (l <= 0 || c <= 0)
- returnWin(0);
-
- if ((win = _nc_makenew(l, c, 0, 0, _ISPAD)) == NULL)
- returnWin(0);
-
- 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);
- returnWin(0);
- }
- for (ptr = win->_line[i].text; ptr < win->_line[i].text + c;)
- *ptr++ = ' ';
- }
-
- returnWin(win);
-}
-
-WINDOW *
-subpad(WINDOW *orig, int l, int c, int begy, int begx)
-{
- WINDOW *win = (WINDOW *) 0;
-
- T((T_CALLED("subpad(%d, %d)"), l, c));
-
- if (orig) {
- if (!(orig->_flags & _ISPAD)
- || ((win = derwin(orig, l, c, begy, begx)) == NULL))
- returnWin(0);
- }
- returnWin(win);
-}
-
-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,
- smaxcol) != ERR
- && doupdate() != ERR) {
- returnCode(OK);
- }
- returnCode(ERR);
-}
-
-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 displaced;
- bool wide;
-
- T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"),
- win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol));
-
- if (win == 0)
- returnCode(ERR);
-
- if (!(win->_flags & _ISPAD))
- returnCode(ERR);
-
- /* negative values are interpreted as zero */
- if (pminrow < 0)
- pminrow = 0;
- if (pmincol < 0)
- pmincol = 0;
- if (sminrow < 0)
- sminrow = 0;
- if (smincol < 0)
- smincol = 0;
-
- pmaxrow = pminrow + smaxrow - sminrow;
- pmaxcol = pmincol + smaxcol - smincol;
-
- T((" pminrow + smaxrow - sminrow %d, win->_maxy %d", pmaxrow, win->_maxy));
- T((" pmincol + smaxcol - smincol %d, win->_maxx %d", pmaxcol, win->_maxx));
-
- /*
- * Trim the caller's screen size back to the actual limits.
- */
- if (pmaxrow > win->_maxy) {
- smaxrow -= (pmaxrow - win->_maxy);
- pmaxrow = pminrow + smaxrow - sminrow;
- }
- if (pmaxcol > win->_maxx) {
- smaxcol -= (pmaxcol - win->_maxx);
- pmaxcol = pmincol + smaxcol - smincol;
- }
-
- if (smaxrow > screen_lines
- || smaxcol > screen_columns
- || sminrow > smaxrow
- || smincol > smaxcol)
- returnCode(ERR);
-
- T(("pad being refreshed"));
-
- 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;
-
- /*
- * For pure efficiency, we'd want to transfer scrolling information
- * from the pad to newscr whenever the window is wide enough that
- * its update will dominate the cost of the update for the horizontal
- * band of newscr that it occupies. Unfortunately, this threshold
- * tends to be complex to estimate, and in any case scrolling the
- * whole band and rewriting the parts outside win's image would look
- * really ugly. So. What we do is consider the pad "wide" if it
- * either (a) occupies the whole width of newscr, or (b) occupies
- * all but at most one column on either vertical edge of the screen
- * (this caters to fussy people who put boxes around full-screen
- * windows). Note that changing this formula will not break any code,
- * merely change the costs of various update cases.
- */
- wide = (smincol < my_len && smaxcol > (newscr->_maxx - my_len));
-
- for (i = pminrow, m = sminrow + win->_yoffset;
- i <= pmaxrow && m <= newscr->_maxy;
- i++, m++) {
- register struct ldat *nline = &newscr->_line[m];
- register struct ldat *oline = &win->_line[i];
-
- for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) {
- if (oline->text[j] != nline->text[n]) {
- nline->text[n] = oline->text[j];
- CHANGED_CELL(nline, n);
- }
- }
-
-#if USE_SCROLL_HINTS
- if (wide) {
- int nind = m + displaced;
- if (oline->oldindex < 0
- || nind < sminrow
- || nind > smaxrow) {
- nind = _NEWINDEX;
- } else if (displaced) {
- register struct ldat *pline = &curscr->_line[nind];
- for (j = 0; j <= my_len; j++) {
- int k = newscr->_maxx - j;
- if (pline->text[j] != nline->text[j]
- || pline->text[k] != nline->text[k]) {
- nind = _NEWINDEX;
- break;
- }
- }
- }
-
- nline->oldindex = nind;
- }
-#endif /* USE_SCROLL_HINTS */
- oline->firstchar = oline->lastchar = _NOCHANGE;
- if_USE_SCROLL_HINTS(oline->oldindex = i);
- }
-
- /*
- * Clean up debris from scrolling or resizing the pad, so we do not
- * accidentally pick up the index value during the next call to this
- * procedure. The only rows that should have an index value are those
- * that are displayed during this cycle.
- */
-#if USE_SCROLL_HINTS
- 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 = _NEWINDEX;
-#endif
-
- win->_begx = smincol;
- win->_begy = sminrow;
-
- if (win->_clear) {
- win->_clear = FALSE;
- newscr->_clear = TRUE;
- }
-
- /*
- * Use the pad's current position, if it will be visible.
- * If not, don't do anything; it's not an error.
- */
- if (win->_leaveok == FALSE
- && win->_cury >= pminrow
- && win->_curx >= pmincol
- && win->_cury <= pmaxrow
- && win->_curx <= pmaxcol) {
- newscr->_cury = win->_cury - pminrow + win->_begy + win->_yoffset;
- newscr->_curx = win->_curx - pmincol + win->_begx;
- }
- newscr->_leaveok = win->_leaveok;
- win->_flags &= ~_HASMOVED;
-
- /*
- * Update our cache of the line-numbers that we displayed from the pad.
- * We will use this on subsequent calls to this function to derive
- * values to stuff into 'oldindex[]' -- for scrolling optimization.
- */
- win->_pad._pad_y = pminrow;
- win->_pad._pad_x = pmincol;
- win->_pad._pad_top = sminrow;
- win->_pad._pad_left = smincol;
- win->_pad._pad_bottom = smaxrow;
- win->_pad._pad_right = smaxcol;
-
- returnCode(OK);
-}
-
-int
-pechochar(WINDOW *pad, const chtype ch)
-{
- T((T_CALLED("pechochar(%p, %s)"), pad, _tracechtype(ch)));
-
- if (pad == 0)
- returnCode(ERR);
-
- if (!(pad->_flags & _ISPAD))
- returnCode(wechochar(pad, ch));
-
- 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);
-
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_printw.c b/ncurses-5.2/ncurses/base/lib_printw.c
deleted file mode 100644
index 29c04b3..0000000
--- a/ncurses-5.2/ncurses/base/lib_printw.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-/*
-** lib_printw.c
-**
-** The routines printw(), wprintw() and friends.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int printw(NCURSES_CONST char *fmt, ...)
-{
- va_list argp;
- int code;
-
- T(("printw(%s,...) called", _nc_visbuf(fmt)));
-
- va_start(argp, fmt);
- code = vwprintw(stdscr, fmt, argp);
- va_end(argp);
-
- return code;
-}
-
-int wprintw(WINDOW *win, NCURSES_CONST char *fmt, ...)
-{
- va_list argp;
- int code;
-
- T(("wprintw(%p,%s,...) called", win, _nc_visbuf(fmt)));
-
- va_start(argp, fmt);
- code = vwprintw(win, fmt, argp);
- va_end(argp);
-
- return code;
-}
-
-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;
-}
-
-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;
-}
-
-int vwprintw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
-{
- char *buf = _nc_printf_string(fmt, argp);
- int code = ERR;
-
- if (buf != 0) {
- code = waddstr(win, buf);
-#if USE_SAFE_SPRINTF
- free(buf);
-#endif
- }
- return code;
-}
diff --git a/ncurses-5.2/ncurses/base/lib_redrawln.c b/ncurses-5.2/ncurses/base/lib_redrawln.c
deleted file mode 100644
index 8cc03a1..0000000
--- a/ncurses-5.2/ncurses/base/lib_redrawln.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-/*
- * lib_redrawln.c
- *
- * The routine wredrawln().
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int wredrawln(WINDOW *win, int beg, int num)
-{
- int i;
- int end;
- size_t len = (win->_maxx + 1) * sizeof(chtype);
-
- T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
-
- if (beg < 0)
- beg = 0;
-
- if (touchline (win, beg, num) == ERR)
- returnCode(ERR);
-
- end = beg + num;
- 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);
- }
-
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_refresh.c b/ncurses-5.2/ncurses/base/lib_refresh.c
deleted file mode 100644
index 5929823..0000000
--- a/ncurses-5.2/ncurses/base/lib_refresh.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_refresh.c
- *
- * The routines wrefresh() and wnoutrefresh().
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-wrefresh(WINDOW *win)
-{
- int code;
-
- T((T_CALLED("wrefresh(%p)"), win));
-
- if (win == curscr) {
- curscr->_clear = TRUE;
- code = doupdate();
- } else if ((code = wnoutrefresh(win)) == OK) {
- if (win->_clear)
- newscr->_clear = TRUE;
- code = doupdate();
- /*
- * Reset the clearok() flag in case it was set for the special
- * case in hardscroll.c (if we don't reset it here, we'll get 2
- * refreshes because the flag is copied from stdscr to newscr).
- * Resetting the flag shouldn't do any harm, anyway.
- */
- win->_clear = FALSE;
- }
- returnCode(code);
-}
-
-int
-wnoutrefresh(WINDOW *win)
-{
- NCURSES_SIZE_T limit_x;
- NCURSES_SIZE_T i, j;
- NCURSES_SIZE_T begx;
- NCURSES_SIZE_T begy;
- NCURSES_SIZE_T m, n;
- bool wide;
-
- T((T_CALLED("wnoutrefresh(%p)"), win));
-#ifdef TRACE
- if (_nc_tracing & TRACE_UPDATE)
- _tracedump("...win", win);
-#endif /* TRACE */
-
- /*
- * This function will break badly if we try to refresh a pad.
- */
- if ((win == 0)
- || (win->_flags & _ISPAD))
- returnCode(ERR);
-
- /* put them here so "win == 0" won't break our code */
- begx = win->_begx;
- begy = win->_begy;
-
- newscr->_bkgd = win->_bkgd;
- newscr->_attrs = win->_attrs;
-
- /* merge in change information from all subwindows of this window */
- wsyncdown(win);
-
- /*
- * For pure efficiency, we'd want to transfer scrolling information
- * from the window to newscr whenever the window is wide enough that
- * its update will dominate the cost of the update for the horizontal
- * band of newscr that it occupies. Unfortunately, this threshold
- * tends to be complex to estimate, and in any case scrolling the
- * whole band and rewriting the parts outside win's image would look
- * really ugly. So. What we do is consider the window "wide" if it
- * either (a) occupies the whole width of newscr, or (b) occupies
- * all but at most one column on either vertical edge of the screen
- * (this caters to fussy people who put boxes around full-screen
- * windows). Note that changing this formula will not break any code,
- * merely change the costs of various update cases.
- */
- wide = (begx <= 1 && win->_maxx >= (newscr->_maxx - 1));
-
- win->_flags &= ~_HASMOVED;
-
- /*
- * Microtweaking alert! This double loop is one of the genuine
- * hot spots in the code. Even gcc doesn't seem to do enough
- * common-subexpression chunking to make it really tense,
- * so we'll force the issue.
- */
-
- /* limit(n) */
- limit_x = win->_maxx;
- /* limit(j) */
- if (limit_x > win->_maxx)
- limit_x = win->_maxx;
-
- for (i = 0, m = begy + win->_yoffset;
- i <= win->_maxy && m <= newscr->_maxy;
- i++, m++) {
- register struct ldat *nline = &newscr->_line[m];
- register struct ldat *oline = &win->_line[i];
-
- if (oline->firstchar != _NOCHANGE) {
- int last = oline->lastchar;
-
- if (last > limit_x)
- last = limit_x;
-
- for (j = oline->firstchar, n = j + begx; j <= last; j++, n++) {
- if (oline->text[j] != nline->text[n]) {
- nline->text[n] = oline->text[j];
- CHANGED_CELL(nline, n);
- }
- }
-
- }
-#if USE_SCROLL_HINTS
- if (wide) {
- int oind = oline->oldindex;
-
- nline->oldindex = (oind == _NEWINDEX) ? _NEWINDEX : begy + oind
- + win->_yoffset;
- }
-#endif /* USE_SCROLL_HINTS */
-
- oline->firstchar = oline->lastchar = _NOCHANGE;
- if_USE_SCROLL_HINTS(oline->oldindex = i);
- }
-
- if (win->_clear) {
- win->_clear = FALSE;
- newscr->_clear = TRUE;
- }
-
- if (!win->_leaveok) {
- newscr->_cury = win->_cury + win->_begy + win->_yoffset;
- newscr->_curx = win->_curx + win->_begx;
- }
- newscr->_leaveok = win->_leaveok;
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_UPDATE)
- _tracedump("newscr", newscr);
-#endif /* TRACE */
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_restart.c b/ncurses-5.2/ncurses/base/lib_restart.c
deleted file mode 100644
index 4d80a92..0000000
--- a/ncurses-5.2/ncurses/base/lib_restart.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * Terminfo-only terminal setup routines:
- *
- * int restartterm(const char *, int, int *)
- * TERMINAL *set_curterm(TERMINAL *)
- * int del_curterm(TERMINAL *)
- */
-
-#include <curses.priv.h>
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#include <term.h> /* lines, columns, cur_term */
-
-MODULE_ID("$Id$")
-
-int
-restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
-{
- int saveecho = SP->_echo;
- int savecbreak = SP->_cbreak;
- int saveraw = SP->_raw;
- int savenl = SP->_nl;
-
- T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
-
- setupterm(termp, filenum, errret);
-
- if (saveecho)
- echo();
- else
- noecho();
-
- if (savecbreak) {
- cbreak();
- noraw();
- } else if (saveraw) {
- nocbreak();
- raw();
- } else {
- nocbreak();
- noraw();
- }
- if (savenl)
- nl();
- else
- nonl();
-
- reset_prog_mode();
-
-#if USE_SIZECHANGE
- _nc_update_screensize();
-#endif
-
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_scanw.c b/ncurses-5.2/ncurses/base/lib_scanw.c
deleted file mode 100644
index e230337..0000000
--- a/ncurses-5.2/ncurses/base/lib_scanw.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-
-/*
-** lib_scanw.c
-**
-** The routines scanw(), wscanw() and friends.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#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
-
-int vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
-{
-char buf[BUFSIZ];
-
- if (wgetnstr(win, buf, sizeof(buf)-1) == ERR)
- return(ERR);
-
- return(vsscanf(buf, fmt, argp));
-}
-
-int scanw(NCURSES_CONST char *fmt, ...)
-{
-int code;
-va_list ap;
-
- T(("scanw(\"%s\",...) called", fmt));
-
- va_start(ap, fmt);
- code = vwscanw(stdscr, fmt, ap);
- va_end(ap);
- return (code);
-}
-
-int wscanw(WINDOW *win, NCURSES_CONST char *fmt, ...)
-{
-int code;
-va_list ap;
-
- T(("wscanw(%p,\"%s\",...) called", win, fmt));
-
- va_start(ap, fmt);
- code = vwscanw(win, fmt, ap);
- va_end(ap);
- return (code);
-}
-
-int mvscanw(int y, int x, NCURSES_CONST char *fmt, ...)
-{
-int code;
-va_list ap;
-
- 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, ...)
-{
-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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_screen.c b/ncurses-5.2/ncurses/base/lib_screen.c
deleted file mode 100644
index d346d63..0000000
--- a/ncurses-5.2/ncurses/base/lib_screen.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-#include <curses.priv.h>
-
-#include <sys/stat.h>
-#include <time.h>
-#include <term.h> /* exit_ca_mode, non_rev_rmcup */
-
-MODULE_ID("$Id$")
-
-static time_t dumptime;
-
-WINDOW *getwin(FILE *filep)
-{
- WINDOW tmp, *nwin;
- int n;
-
- T((T_CALLED("getwin(%p)"), 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);
-
- /*
- * 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;
- 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);
- }
- }
- touchwin(nwin);
-
- returnWin(nwin);
-}
-
-int putwin(WINDOW *win, FILE *filep)
-{
- int code = ERR;
- int n;
-
- T((T_CALLED("putwin(%p,%p)"), win, filep));
-
- if (win) {
- (void) fwrite(win, sizeof(WINDOW), 1, filep);
- if (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))
- returnCode(code);
- }
- code = OK;
- }
- returnCode(code);
-}
-
-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);
- }
-}
-
-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);
- }
-}
-
-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);
- }
-}
-
-int scr_set(const char *file)
-{
- T((T_CALLED("scr_set(%s)"), _nc_visbuf(file)));
-
- if (scr_init(file) == ERR)
- returnCode(ERR);
- else
- {
- delwin(newscr);
- newscr = dupwin(curscr);
- returnCode(OK);
- }
-}
diff --git a/ncurses-5.2/ncurses/base/lib_scroll.c b/ncurses-5.2/ncurses/base/lib_scroll.c
deleted file mode 100644
index 7f65442..0000000
--- a/ncurses-5.2/ncurses/base/lib_scroll.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_scroll.c
-**
-** The routine wscrl(win, n).
-** positive n scroll the window up (ie. move lines down)
-** negative n scroll the window down (ie. move lines up)
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-void
-_nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
- NCURSES_SIZE_T const bottom, chtype blank)
-{
- int line, j;
- size_t to_copy = (size_t) (sizeof(chtype) * (win->_maxx + 1));
-
- TR(TRACE_MOVE, ("_nc_scroll_window(%p, %d, %d, %d)", win, n, top, bottom));
-
- /*
- * 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
- * its own storage, (b) doesn't save you a lot on modern machines
- * anyway. Your typical memcpy implementations are coded in
- * assembler using a tight BLT loop; for the size of copies we're
- * talking here, the total execution time is dominated by the one-time
- * setup cost. So there is no point in trying to be excessively
- * clever -- esr.
- */
-
- /* 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);
- }
- for (line = top; line < top - n; line++) {
- for (j = 0; j <= win->_maxx; j++)
- win->_line[line].text[j] = blank;
- if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
- }
- }
-
- /* 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);
- }
- for (line = bottom; line > bottom - n; line--) {
- for (j = 0; j <= win->_maxx; j++)
- win->_line[line].text[j] = blank;
- if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
- }
- }
- touchline(win, top, bottom - top + 1);
-}
-
-int
-wscrl(WINDOW *win, int n)
-{
- T((T_CALLED("wscrl(%p,%d)"), win, n));
-
- if (!win || !win->_scroll)
- returnCode(ERR);
-
- 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_synchook(win);
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_scrollok.c b/ncurses-5.2/ncurses/base/lib_scrollok.c
deleted file mode 100644
index 03a4131..0000000
--- a/ncurses-5.2/ncurses/base/lib_scrollok.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_scrollok.c
-**
-** The routine scrollok.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int scrollok(WINDOW *win, bool flag)
-{
- T((T_CALLED("scrollok(%p,%d)"), win, flag));
-
- if (win) {
- win->_scroll = flag;
- returnCode(OK);
- }
- else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_scrreg.c b/ncurses-5.2/ncurses/base/lib_scrreg.c
deleted file mode 100644
index 4d129a3..0000000
--- a/ncurses-5.2/ncurses/base/lib_scrreg.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_scrreg.c
-**
-** The routine wsetscrreg().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-wsetscrreg(WINDOW *win, int top, int bottom)
-{
- T((T_CALLED("wsetscrreg(%p,%d,%d)"), win, top, bottom));
-
- if (win &&
- top >= 0 && top <= win->_maxy &&
- bottom >= 0 && bottom <= win->_maxy &&
- bottom > top) {
- win->_regtop = (NCURSES_SIZE_T) top;
- win->_regbottom = (NCURSES_SIZE_T) bottom;
-
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_set_term.c b/ncurses-5.2/ncurses/base/lib_set_term.c
deleted file mode 100644
index 0c6ab4c..0000000
--- a/ncurses-5.2/ncurses/base/lib_set_term.c
+++ /dev/null
@@ -1,419 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_set_term.c
-**
-** The routine set_term().
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h> /* cur_term */
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-SCREEN *
-set_term(SCREEN * screenp)
-{
- SCREEN *oldSP;
-
- T((T_CALLED("set_term(%p)"), screenp));
-
- oldSP = SP;
- _nc_set_screen(screenp);
-
- set_curterm(SP->_term);
- curscr = SP->_curscr;
- newscr = SP->_newscr;
- stdscr = SP->_stdscr;
- COLORS = SP->_color_count;
- COLOR_PAIRS = SP->_pair_count;
- memcpy(acs_map, SP->_acs_map, sizeof(chtype) * ACS_LEN);
-
- T((T_RETURN("%p"), oldSP));
- return (oldSP);
-}
-
-static void
-_nc_free_keytry(struct tries *kt)
-{
- if (kt != 0) {
- _nc_free_keytry(kt->child);
- _nc_free_keytry(kt->sibling);
- free(kt);
- }
-}
-
-/*
- * Free the storage associated with the given SCREEN sp.
- */
-void
-delscreen(SCREEN * sp)
-{
- SCREEN **scan = &_nc_screen_chain;
-
- T((T_CALLED("delscreen(%p)"), sp));
-
- while (*scan) {
- if (*scan == sp) {
- *scan = sp->_next_screen;
- break;
- }
- scan = &(*scan)->_next_screen;
- }
-
- _nc_freewin(sp->_curscr);
- _nc_freewin(sp->_newscr);
- _nc_freewin(sp->_stdscr);
- _nc_free_keytry(sp->_keytry);
- _nc_free_keytry(sp->_key_ok);
-
- FreeIfNeeded(sp->_color_table);
- FreeIfNeeded(sp->_color_pairs);
-
- FreeIfNeeded(sp->oldhash);
- FreeIfNeeded(sp->newhash);
-
- del_curterm(sp->_term);
-
- /*
- * If the associated output stream has been closed, we can discard the
- * set-buffer. Limit the error check to EBADF, since fflush may fail
- * for other reasons than trying to operate upon a closed stream.
- */
- if (sp->_ofp != 0
- && sp->_setbuf != 0
- && fflush(sp->_ofp) != 0
- && errno == EBADF) {
- free(sp->_setbuf);
- }
-
- free(sp);
-
- /*
- * If this was the current screen, reset everything that the
- * application might try to use (except cur_term, which may have
- * multiple references in different screens).
- */
- if (sp == SP) {
- curscr = 0;
- newscr = 0;
- stdscr = 0;
- COLORS = 0;
- COLOR_PAIRS = 0;
- _nc_set_screen(0);
- }
- returnVoid;
-}
-
-static ripoff_t rippedoff[5];
-static ripoff_t *rsp = rippedoff;
-#define N_RIPS SIZEOF(rippedoff)
-
-static bool
-no_mouse_event(SCREEN * sp GCC_UNUSED)
-{
- return FALSE;
-}
-
-static bool
-no_mouse_inline(SCREEN * sp GCC_UNUSED)
-{
- return FALSE;
-}
-
-static bool
-no_mouse_parse(int code GCC_UNUSED)
-{
- return TRUE;
-}
-
-static void
-no_mouse_resume(SCREEN * sp GCC_UNUSED)
-{
-}
-
-static void
-no_mouse_wrap(SCREEN * sp GCC_UNUSED)
-{
-}
-
-#if NCURSES_EXT_FUNCS && USE_COLORFGBG
-static char *
-extract_fgbg(char *src, int *result)
-{
- char *dst = 0;
- long value = strtol(src, &dst, 0);
-
- if (dst == 0) {
- dst = src;
- } else if (value >= 0) {
- *result = value % max_colors;
- }
- while (*dst != 0 && *dst != ';')
- dst++;
- if (*dst == ';')
- dst++;
- return dst;
-}
-#endif
-
-int
-_nc_setupscreen(short slines, short const scolumns, FILE * output)
-/* OS-independent screen initializations */
-{
- int bottom_stolen = 0;
- size_t i;
-
- assert(SP == 0); /* has been reset in newterm() ! */
- if (!_nc_alloc_screen())
- return ERR;
-
- SP->_next_screen = _nc_screen_chain;
- _nc_screen_chain = SP;
-
- _nc_set_buffer(output, TRUE);
- SP->_term = cur_term;
- SP->_lines = slines;
- SP->_lines_avail = slines;
- SP->_columns = scolumns;
- SP->_cursrow = -1;
- SP->_curscol = -1;
- SP->_nl = TRUE;
- SP->_raw = FALSE;
- SP->_cbreak = 0;
- SP->_echo = TRUE;
- SP->_fifohead = -1;
- SP->_endwin = TRUE;
- SP->_ofp = output;
- SP->_cursor = -1; /* cannot know real cursor shape */
-
-#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" : ""));
-#endif
-
-#if NCURSES_EXT_FUNCS
- SP->_default_color = FALSE;
- SP->_has_sgr_39_49 = FALSE;
-
- /*
- * Set our assumption of the terminal's default foreground and background
- * colors. The curs_color man-page states that we can assume that the
- * background is black. The origin of this assumption appears to be
- * terminals that displayed colored text, but no colored backgrounds, e.g.,
- * the first colored terminals around 1980. More recent ones with better
- * technology can display not only colored backgrounds, but all
- * combinations. So a terminal might be something other than "white" on
- * black (green/black looks monochrome too), but black on white or even
- * on ivory.
- *
- * White-on-black is the simplest thing to use for monochrome. Almost
- * all applications that use color paint both text and background, so
- * the distinction is moot. But a few do not - which is why we leave this
- * configurable (a better solution is to use assume_default_colors() for
- * the rare applications that do require that sort of appearance, since
- * is appears that more users expect to be able to make a white-on-black
- * or black-on-white display under control of the application than not).
- */
-#ifdef USE_ASSUMED_COLOR
- SP->_default_fg = COLOR_WHITE;
- SP->_default_bg = COLOR_BLACK;
-#else
- SP->_default_fg = C_MASK;
- SP->_default_bg = C_MASK;
-#endif
-
-#if USE_COLORFGBG
- /*
- * If rxvt's $COLORFGBG variable is set, use it to specify the assumed
- * default colors. Note that rxvt (mis)uses bold colors, equating a bold
- * color to that value plus 8. We'll only use the non-bold color for now -
- * decide later if it is worth having default attributes as well.
- */
- if (getenv("COLORFGBG") != 0) {
- char *p = getenv("COLORFGBG");
- p = extract_fgbg(p, &(SP->_default_fg));
- p = extract_fgbg(p, &(SP->_default_bg));
- }
-#endif
-#endif /* NCURSES_EXT_FUNCS */
-
- SP->_maxclick = DEFAULT_MAXCLICK;
- SP->_mouse_event = no_mouse_event;
- SP->_mouse_inline = no_mouse_inline;
- SP->_mouse_parse = no_mouse_parse;
- SP->_mouse_resume = no_mouse_resume;
- SP->_mouse_wrap = no_mouse_wrap;
- SP->_mouse_fd = -1;
-
- /* initialize the panel hooks */
- SP->_panelHook.top_panel = (struct panel *) 0;
- SP->_panelHook.bottom_panel = (struct panel *) 0;
- SP->_panelHook.stdscr_pseudo_panel = (struct panel *) 0;
-
- /*
- * If we've no magic cookie support, we suppress attributes that xmc
- * would affect, i.e., the attributes that affect the rendition of a
- * space. Note that this impacts the alternate character set mapping
- * as well.
- */
- if (magic_cookie_glitch > 0) {
-
- SP->_xmc_triggers = termattrs() & (
- A_ALTCHARSET |
- A_BLINK |
- A_BOLD |
- A_REVERSE |
- A_STANDOUT |
- A_UNDERLINE
- );
- SP->_xmc_suppress = SP->_xmc_triggers & (chtype) ~ (A_BOLD);
-
- T(("magic cookie attributes %s", _traceattr(SP->_xmc_suppress)));
-#if USE_XMC_SUPPORT
- /*
- * To keep this simple, suppress all of the optimization hooks
- * except for clear_screen and the cursor addressing.
- */
- clr_eol = 0;
- clr_eos = 0;
- set_attributes = 0;
-#else
- magic_cookie_glitch = ABSENT_NUMERIC;
- acs_chars = 0;
-#endif
- }
- _nc_init_acs();
- memcpy(SP->_acs_map, acs_map, sizeof(chtype) * ACS_LEN);
-
- _nc_idcok = TRUE;
- _nc_idlok = FALSE;
-
- _nc_windows = 0; /* no windows yet */
-
- SP->oldhash = 0;
- SP->newhash = 0;
-
- T(("creating newscr"));
- if ((newscr = newwin(slines, scolumns, 0, 0)) == 0)
- return ERR;
-
- T(("creating curscr"));
- if ((curscr = newwin(slines, scolumns, 0, 0)) == 0)
- return ERR;
-
- SP->_newscr = newscr;
- SP->_curscr = curscr;
-#if USE_SIZECHANGE
- SP->_resize = resizeterm;
-#endif
-
- newscr->_clear = TRUE;
- curscr->_clear = FALSE;
-
- for (i = 0, rsp = rippedoff; rsp->line && (i < N_RIPS); rsp++, i++) {
- if (rsp->hook) {
- WINDOW *w;
- 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->_lines_avail -= count;
- }
- rsp->line = 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;
- SP->_stdscr = stdscr;
-
- def_shell_mode();
- def_prog_mode();
-
- return OK;
-}
-
-/* The internal implementation interprets line as the number of
- lines to rip off from the top or bottom.
- */
-int
-_nc_ripoffline(int line, int (*init) (WINDOW *, int))
-{
- if (line == 0)
- return (OK);
-
- if (rsp >= rippedoff + N_RIPS)
- return (ERR);
-
- rsp->line = line;
- rsp->hook = init;
- rsp->w = 0;
- rsp++;
-
- return (OK);
-}
-
-int
-ripoffline(int line, int (*init) (WINDOW *, int))
-{
- T((T_CALLED("ripoffline(%d,%p)"), line, init));
-
- if (line == 0)
- returnCode(OK);
-
- returnCode(_nc_ripoffline((line < 0) ? -1 : 1, init));
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slk.c b/ncurses-5.2/ncurses/base/lib_slk.c
deleted file mode 100644
index 8786c41..0000000
--- a/ncurses-5.2/ncurses/base/lib_slk.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slk.c
- * Soft key routines.
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <term.h> /* num_labels, label_*, plab_norm */
-
-MODULE_ID("$Id$")
-
-/*
- * 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() */
-
-/*
- * Paint the info line for the PC style SLK emulation.
- *
- */
-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));
- }
- }
- }
- }
-}
-
-/*
- * Initialize soft labels.
- * Called from newterm()
- */
-int
-_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;
-
- 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;
-
- 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) ? gap : 1;
- }
- }
- else
- {
- if (_nc_slk_format == 1) { /* 1 -> 3-2-3 */
- int gap = (cols - (SP->_slk->maxlab * SP->_slk->maxlen) - 5) / 2;
-
- 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 == 2 || i == 4) ? gap : 1;
- }
- }
- else
- 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);
- }
- }
-
- /* 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.
- */
-int
-slk_restore(void)
-{
- 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);
-
- returnCode(slk_refresh());
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkatr_set.c b/ncurses-5.2/ncurses/base/lib_slkatr_set.c
deleted file mode 100644
index 3b4bf91..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkatr_set.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1998 *
- ****************************************************************************/
-
-/*
- * lib_slkatr_set.c
- * Soft key routines.
- * Set the labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-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));
-
- 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkatrof.c b/ncurses-5.2/ncurses/base/lib_slkatrof.c
deleted file mode 100644
index 58f8bd1..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkatrof.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkatrof.c
- * Soft key routines.
- * Switch off labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-slk_attroff(const chtype attr)
-{
- T((T_CALLED("slk_attroff(%s)"), _traceattr(attr)));
-
- if (SP!=0 && SP->_slk!=0)
- {
- toggle_attr_off(SP->_slk->attr,attr);
- returnCode(OK);
- }
- else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkatron.c b/ncurses-5.2/ncurses/base/lib_slkatron.c
deleted file mode 100644
index 6a71419..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkatron.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkatron.c
- * Soft key routines.
- * Switch on labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-slk_attron(const chtype attr)
-{
- T((T_CALLED("slk_attron(%s)"), _traceattr(attr)));
-
- if (SP!=0 && SP->_slk!=0)
- {
- toggle_attr_on(SP->_slk->attr,attr);
- returnCode(OK);
- }
- else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkatrset.c b/ncurses-5.2/ncurses/base/lib_slkatrset.c
deleted file mode 100644
index bfe9dd8..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkatrset.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkatrset.c
- * Soft key routines.
- * Set the labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-slk_attrset(const chtype attr)
-{
- T((T_CALLED("slk_attrset(%s)"), _traceattr(attr)));
-
- if (SP!=0 && SP->_slk!=0)
- {
- SP->_slk->attr = attr;
- returnCode(OK);
- }
- else
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkattr.c b/ncurses-5.2/ncurses/base/lib_slkattr.c
deleted file mode 100644
index 9b55644..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkattr.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkattr.c
- * Soft key routines.
- * Fetch the labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-attr_t
-slk_attr(void)
-{
- T((T_CALLED("slk_attr()")));
-
- if (SP!=0 && SP->_slk!=0)
- {
- returnAttr(SP->_slk->attr);
- }
- else
- returnAttr(0);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkclear.c b/ncurses-5.2/ncurses/base/lib_slkclear.c
deleted file mode 100644
index f928d7c..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkclear.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkclear.c
- * Soft key routines.
- * Remove soft labels from the screen.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-slk_clear(void)
-{
- 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));
- }
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkcolor.c b/ncurses-5.2/ncurses/base/lib_slkcolor.c
deleted file mode 100644
index e0c3724..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkcolor.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1998 *
- ****************************************************************************/
-
-/*
- * lib_slkcolor.c
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-slk_color(short 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkinit.c b/ncurses-5.2/ncurses/base/lib_slkinit.c
deleted file mode 100644
index 23cad04..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkinit.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkinit.c
- * Soft key routines.
- * Initialize soft labels. Called by the user before initscr().
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slklab.c b/ncurses-5.2/ncurses/base/lib_slklab.c
deleted file mode 100644
index a5b5bac..0000000
--- a/ncurses-5.2/ncurses/base/lib_slklab.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slklab.c
- * Soft key routines.
- * Fetch the label text.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-char*
-slk_label(int 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkrefr.c b/ncurses-5.2/ncurses/base/lib_slkrefr.c
deleted file mode 100644
index 51580fc..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkrefr.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkrefr.c
- * Write SLK window to the (virtual) screen.
- */
-#include <curses.priv.h>
-#include <term.h> /* num_labels, label_*, plab_norm */
-
-MODULE_ID("$Id$")
-
-/*
- * Write the soft labels to the soft-key window.
- */
-static void
-slk_intern_refresh(SLK *slk)
-{
-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;
- }
- }
- 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);
- }
- }
-}
-
-/*
- * Refresh the soft labels.
- */
-int
-slk_noutrefresh(void)
-{
- T((T_CALLED("slk_noutrefresh()")));
-
- if (SP == NULL || SP->_slk == NULL)
- returnCode(ERR);
- if (SP->_slk->hidden)
- returnCode(OK);
- slk_intern_refresh(SP->_slk);
-
- returnCode(wnoutrefresh(SP->_slk->win));
-}
-
-/*
- * Refresh the soft labels.
- */
-int
-slk_refresh(void)
-{
- T((T_CALLED("slk_refresh()")));
-
- if (SP == NULL || SP->_slk == NULL)
- returnCode(ERR);
- if (SP->_slk->hidden)
- returnCode(OK);
- slk_intern_refresh(SP->_slk);
-
- returnCode(wrefresh(SP->_slk->win));
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slkset.c b/ncurses-5.2/ncurses/base/lib_slkset.c
deleted file mode 100644
index 00f95a6..0000000
--- a/ncurses-5.2/ncurses/base/lib_slkset.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkset.c
- * Set soft label text.
- */
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-int
-slk_set(int i, const char *astr, int format)
-{
-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));
-
- 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 */
-
- --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); */
-
- 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_slktouch.c b/ncurses-5.2/ncurses/base/lib_slktouch.c
deleted file mode 100644
index 3b898bd..0000000
--- a/ncurses-5.2/ncurses/base/lib_slktouch.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slktouch.c
- * Soft key routines.
- * Force the code to believe that the soft keys have been changed.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-slk_touch(void)
-{
- T((T_CALLED("slk_touch()")));
-
- if (SP == NULL || SP->_slk == NULL)
- returnCode(ERR);
- SP->_slk->dirty = TRUE;
-
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_touch.c b/ncurses-5.2/ncurses/base/lib_touch.c
deleted file mode 100644
index c0b8763..0000000
--- a/ncurses-5.2/ncurses/base/lib_touch.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_touch.c
-**
-** The routines untouchwin(),
-** wtouchln(),
-** is_linetouched()
-** is_wintouched().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-bool is_linetouched(WINDOW *win, int 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);
-
- returnCode(win->_line[line].firstchar != _NOCHANGE ? TRUE : FALSE);
-}
-
-bool is_wintouched(WINDOW *win)
-{
-int i;
-
- 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);
-}
-
-int wtouchln(WINDOW *win, int y, int n, int changed)
-{
-int i;
-
- T((T_CALLED("wtouchln(%p,%d,%d,%d)"), win, y, n, changed));
-
- 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_ungetch.c b/ncurses-5.2/ncurses/base/lib_ungetch.c
deleted file mode 100644
index 0f295b6..0000000
--- a/ncurses-5.2/ncurses/base/lib_ungetch.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_ungetch.c
-**
-** The routine ungetch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#include <fifo_defs.h>
-
-#ifdef TRACE
-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])));
-}
-#endif /* TRACE */
-
-int ungetch(int ch)
-{
- if (tail == -1)
- return ERR;
- if (head == -1) {
- head = 0;
- t_inc()
- peek = tail; /* no raw keys */
- } else
- h_dec();
-
- SP->_fifo[head] = ch;
- T(("ungetch %#x ok", ch));
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) _nc_fifo_dump();
-#endif
- return OK;
-}
diff --git a/ncurses-5.2/ncurses/base/lib_vline.c b/ncurses-5.2/ncurses/base/lib_vline.c
deleted file mode 100644
index 7ccbc78..0000000
--- a/ncurses-5.2/ncurses/base/lib_vline.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_vline.c
-**
-** The routine wvline().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-wvline(WINDOW *win, chtype ch, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T row, col;
- NCURSES_SIZE_T end;
-
- T((T_CALLED("wvline(%p,%s,%d)"), win, _tracechtype(ch), n));
-
- if (win) {
- row = win->_cury;
- col = win->_curx;
- end = row + n - 1;
- if (end > win->_maxy)
- end = win->_maxy;
-
- if (ch == 0)
- ch = ACS_VLINE;
- ch = _nc_render(win, ch);
-
- while (end >= row) {
- struct ldat *line = &(win->_line[end]);
- line->text[col] = ch;
- CHANGED_CELL(line, col);
- end--;
- }
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_wattroff.c b/ncurses-5.2/ncurses/base/lib_wattroff.c
deleted file mode 100644
index 5d7470b..0000000
--- a/ncurses-5.2/ncurses/base/lib_wattroff.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_wattroff.c
-**
-** The routine wattr_off().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-int wattr_off(WINDOW *win, NCURSES_CONST 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_wattron.c b/ncurses-5.2/ncurses/base/lib_wattron.c
deleted file mode 100644
index 883387c..0000000
--- a/ncurses-5.2/ncurses/base/lib_wattron.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_wattron.c
-**
-** The routines wattr_on().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-int wattr_on(WINDOW *win, NCURSES_CONST 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);
-}
diff --git a/ncurses-5.2/ncurses/base/lib_winch.c b/ncurses-5.2/ncurses/base/lib_winch.c
deleted file mode 100644
index 45b1caf..0000000
--- a/ncurses-5.2/ncurses/base/lib_winch.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-/*
-** lib_winch.c
-**
-** The routine winch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-chtype
-winch(WINDOW *win)
-{
- T((T_CALLED("winch(%p)"), win));
- if (win != 0) {
- returnChar(win->_line[win->_cury].text[win->_curx]);
- } else {
- returnChar(0);
- }
-}
diff --git a/ncurses-5.2/ncurses/base/lib_window.c b/ncurses-5.2/ncurses/base/lib_window.c
deleted file mode 100644
index a7a1ccd..0000000
--- a/ncurses-5.2/ncurses/base/lib_window.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_window.c
-**
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-void _nc_synchook(WINDOW *win)
-/* hook to be called after each window change */
-{
- if (win->_immed) wrefresh(win);
- if (win->_sync) wsyncup(win);
-}
-
-int mvderwin(WINDOW *win, int y, int x)
-/* 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)
- 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);
-}
-
-int syncok(WINDOW *win, bool bf)
-/* enable/disable automatic wsyncup() on each change to window */
-{
- T((T_CALLED("syncok(%p,%d)"), win, bf));
-
- if (win) {
- win->_sync = bf;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
-
-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...) */
-{
- 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);
- }
- }
- }
-}
-
-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...) */
-{
- 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);
- }
- }
- }
-}
-
-void wcursyncup(WINDOW *win)
-/* 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 *dupwin(WINDOW *win)
-/* 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++) {
- memcpy(nwin->_line[i].text, win->_line[i].text, linesize);
- nwin->_line[i].firstchar = win->_line[i].firstchar;
- nwin->_line[i].lastchar = win->_line[i].lastchar;
- }
-
- returnWin(nwin);
-}
diff --git a/ncurses-5.2/ncurses/base/memmove.c b/ncurses-5.2/ncurses/base/memmove.c
deleted file mode 100644
index 56415fa..0000000
--- a/ncurses-5.2/ncurses/base/memmove.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-#if USE_MY_MEMMOVE
-#define DST ((char *)s1)
-#define SRC ((const char *)s2)
-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];
- }
- return s1;
-}
-#else
-extern void _nc_memmove(void); /* quiet's gcc warning */
-void _nc_memmove(void) { } /* nonempty for strict ANSI compilers */
-#endif /* USE_MY_MEMMOVE */
diff --git a/ncurses-5.2/ncurses/base/nc_panel.c b/ncurses-5.2/ncurses/base/nc_panel.c
deleted file mode 100644
index 3283889..0000000
--- a/ncurses-5.2/ncurses/base/nc_panel.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-struct panelhook*
-_nc_panelhook(void)
-{
- return (SP ? &(SP->_panelHook) : NULL);
-}
diff --git a/ncurses-5.2/ncurses/base/resizeterm.c b/ncurses-5.2/ncurses/base/resizeterm.c
deleted file mode 100644
index ecc8cf7..0000000
--- a/ncurses-5.2/ncurses/base/resizeterm.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
- ****************************************************************************/
-
-/*
- * This is an extension to the curses library. It provides callers with a hook
- * into the NCURSES data to resize windows, primarily for use by programs
- * running in an X Window terminal (e.g., xterm). I abstracted this module
- * from my application library for NCURSES because it must be compiled with
- * the private data structures -- T.Dickey 1995/7/4.
- */
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-/*
- * This function reallocates NCURSES window structures. It is invoked in
- * response to a SIGWINCH interrupt. Other user-defined windows may also need
- * to be reallocated.
- *
- * Because this performs memory allocation, it should not (in general) be
- * invoked directly from the signal handler.
- */
-int
-resizeterm(int ToLines, int ToCols)
-{
- int stolen = screen_lines - SP->_lines_avail;
- int bottom = screen_lines + SP->_topstolen - stolen;
-
- T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"),
- ToLines, ToCols,
- screen_lines, screen_columns));
-
- SP->_sig_winch = FALSE;
-
- if (ToLines != screen_lines
- || ToCols != screen_columns) {
- WINDOWLIST *wp;
-
-#if USE_SIGWINCH
- ungetch(KEY_RESIZE); /* so application can know this */
- clearok(curscr, TRUE); /* screen contents are unknown */
-#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;
-
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/base/safe_sprintf.c b/ncurses-5.2/ncurses/base/safe_sprintf.c
deleted file mode 100644
index ebee3ee..0000000
--- a/ncurses-5.2/ncurses/base/safe_sprintf.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-#if USE_SAFE_SPRINTF
-
-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_POINT(type) pval = (void *)va_arg(ap, type)
-
-/*
- * Scan a variable-argument list for printf to determine the number of
- * characters that would be emitted.
- */
-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;
- }
- len += (int)strlen(buffer);
- } else {
- fmt++;
- len++;
- }
- }
-
- free(buffer);
- free(format);
- return len;
-}
-#endif
-
-/*
- * Wrapper for vsprintf that allocates a buffer big enough to hold the result.
- */
-char *
-_nc_printf_string(const char *fmt, va_list ap)
-{
-#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);
- }
-#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);
- }
- }
-
- if (buf != 0) {
-# if HAVE_VSNPRINTF
- vsnprintf(buf, len, fmt, ap); /* GNU extension */
-# else
- vsprintf(buf, fmt, ap); /* ANSI */
-# endif
- }
-#endif
- return buf;
-}
diff --git a/ncurses-5.2/ncurses/base/sigaction.c b/ncurses-5.2/ncurses/base/sigaction.c
deleted file mode 100644
index a1c0bae..0000000
--- a/ncurses-5.2/ncurses/base/sigaction.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <signal.h>
-#include <SigAction.h>
-
-/* This file provides sigaction() emulation using sigvec() */
-/* Use only if this is non POSIX system */
-
-#if !HAVE_SIGACTION && HAVE_SIGVEC
-
-MODULE_ID("$Id$")
-
-int
-sigaction (int sig, sigaction_t * sigact, sigaction_t * osigact)
-{
- return sigvec(sig, sigact, osigact);
-}
-
-int
-sigemptyset (sigset_t * mask)
-{
- *mask = 0;
- return 0;
-}
-
-int
-sigprocmask (int mode, sigset_t * mask, sigset_t * omask)
-{
- sigset_t current = sigsetmask(0);
-
- if (omask) *omask = current;
-
- if (mode==SIG_BLOCK)
- current |= *mask;
- else if (mode==SIG_UNBLOCK)
- current &= ~*mask;
- else if (mode==SIG_SETMASK)
- current = *mask;
-
- sigsetmask(current);
- return 0;
-}
-
-int
-sigsuspend (sigset_t * mask)
-{
- return sigpause (*mask);
-}
-
-int
-sigdelset (sigset_t * mask, int sig)
-{
- *mask &= ~sigmask (sig);
- return 0;
-}
-
-int
-sigaddset (sigset_t * mask, int sig)
-{
- *mask |= sigmask (sig);
- return 0;
-}
-
-int
-sigismember (sigset_t * mask, int sig)
-{
- return (*mask & sigmask (sig)) != 0;
-}
-
-#else
-extern void _nc_sigaction(void); /* quiet's gcc warning */
-void _nc_sigaction(void) { } /* nonempty for strict ANSI compilers */
-#endif
diff --git a/ncurses-5.2/ncurses/base/tries.c b/ncurses-5.2/ncurses/base/tries.c
deleted file mode 100644
index bf34928..0000000
--- a/ncurses-5.2/ncurses/base/tries.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-/*
-** tries.c
-**
-** Functions to manage the tree of partial-completions for keycodes.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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)
-{
- 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 (result != 0) {
- if ((result[len] = ptr->ch) == 0)
- *((unsigned char *)(result+len)) = 128;
-#ifdef TRACE
- if (len == 0)
- _tracef("expand_key %s %s", _trace_key(code), _nc_visbuf(result));
-#endif
- }
- return result;
-}
-
-/*
- * 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)
-{
- 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;
- }
- returnCode(FALSE);
-}
-
-/*
- * 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)
-{
- 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;
- }
- returnCode(FALSE);
-}
diff --git a/ncurses-5.2/ncurses/base/version.c b/ncurses-5.2/ncurses/base/version.c
deleted file mode 100644
index d65056b..0000000
--- a/ncurses-5.2/ncurses/base/version.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-const char *
-curses_version(void)
-{
- static char my_version[80];
-
- T((T_CALLED("curses_version()")));
- sprintf(my_version, "ncurses %s.%d",
- NCURSES_VERSION,
- NCURSES_VERSION_PATCH);
- returnPtr(my_version);
-}
diff --git a/ncurses-5.2/ncurses/base/vsscanf.c b/ncurses-5.2/ncurses/base/vsscanf.c
deleted file mode 100644
index 3d6d159..0000000
--- a/ncurses-5.2/ncurses/base/vsscanf.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * This function is needed to support vwscanw
- */
-
-#include <curses.priv.h>
-
-#if !HAVE_VSSCANF
-
-MODULE_ID("$Id$")
-
-#if defined(_IOREAD) && defined(_NFILE)
-/*VARARGS2*/
-int vsscanf(const char *str, const char *format, va_list ap)
-{
- /*
- * 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;
-
-#if HAVE_VFSCANF
- return(vfscanf(&strbuf, format, ap));
-#else
- return(_doscan(&strbuf, format, ap));
-#endif
-}
-#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 */
-}
-#endif
-#else
-extern void _nc_vsscanf(void); /* quiet's gcc warning */
-void _nc_vsscanf(void) { } /* nonempty for strict ANSI compilers */
-#endif /* !HAVE_VSSCANF */
diff --git a/ncurses-5.2/ncurses/base/wresize.c b/ncurses-5.2/ncurses/base/wresize.c
deleted file mode 100644
index c99d52f..0000000
--- a/ncurses-5.2/ncurses/base/wresize.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1996,1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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
-wresize(WINDOW *win, int ToLines, int ToCols)
-{
- register int row;
- int size_x, size_y;
- struct ldat *pline;
- chtype blank;
-
-#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));
- if (_nc_tracing & TRACE_UPDATE)
- _tracedump("...before", win);
- }
-#endif
-
- if (!win || --ToLines < 0 || --ToCols < 0)
- returnCode(ERR);
-
- size_x = win->_maxx;
- size_y = win->_maxy;
-
- if (ToLines == size_y
- && ToCols == size_x)
- returnCode(OK);
-
- if ((win->_flags & _SUBWIN)) {
- /*
- * Check if the new limits will fit into the parent window's size. If
- * not, do not resize. We could adjust the location of the subwindow,
- * but the application may not like that.
- */
- if (win->_pary + ToLines > win->_parent->_maxy
- || win->_parx + ToCols > win->_parent->_maxx) {
- returnCode(ERR);
- }
- pline = win->_parent->_line;
- } else {
- pline = 0;
- }
-
- /*
- * If the number of lines has changed, adjust the size of the overall
- * vector:
- */
- if (ToLines != size_y) {
- if (!(win->_flags & _SUBWIN)) {
- for (row = ToLines + 1; row <= size_y; row++)
- free((char *) (win->_line[row].text));
- }
-
- 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];
- }
- }
- }
-
- /*
- * Adjust the width of the columns:
- */
- 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 (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;
- }
- }
- }
-
- /*
- * Finally, adjust the parameters showing screen size and cursor
- * position:
- */
- win->_maxx = ToCols;
- win->_maxy = ToLines;
-
- if (win->_regtop > win->_maxy)
- win->_regtop = win->_maxy;
- if (win->_regbottom > win->_maxy
- || win->_regbottom == size_y)
- win->_regbottom = win->_maxy;
-
- if (win->_curx > win->_maxx)
- win->_curx = win->_maxx;
- if (win->_cury > win->_maxy)
- win->_cury = win->_maxy;
-
-#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));
- if (_nc_tracing & TRACE_UPDATE)
- _tracedump("...after:", win);
-#endif
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/curses.priv.h b/ncurses-5.2/ncurses/curses.priv.h
deleted file mode 100644
index 4e1ac95..0000000
--- a/ncurses-5.2/ncurses/curses.priv.h
+++ /dev/null
@@ -1,838 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * $Id$
- *
- * curses.priv.h
- *
- * Header file for curses library objects which are private to
- * the library.
- *
- */
-
-#ifndef CURSES_PRIV_H
-#define CURSES_PRIV_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <ncurses_cfg.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#if HAVE_SYS_BSDTYPES_H
-#include <sys/bsdtypes.h> /* needed for ISC */
-#endif
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-#ifndef PATH_MAX
-# if defined(_POSIX_PATH_MAX)
-# define PATH_MAX _POSIX_PATH_MAX
-# elif defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 255 /* the Posix minimum path-size */
-# endif
-#endif
-
-#include <assert.h>
-#include <stdio.h>
-
-#include <errno.h>
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-#include <nc_panel.h>
-
-/* Some systems have a broken 'select()', but workable 'poll()'. Use that */
-#if HAVE_WORKING_POLL
-#define USE_FUNC_POLL 1
-#if HAVE_POLL_H
-#include <poll.h>
-#else
-#include <sys/poll.h>
-#endif
-#else
-#define USE_FUNC_POLL 0
-#endif
-
-/* Alessandro Rubini's GPM (general-purpose mouse) */
-#if HAVE_LIBGPM && HAVE_GPM_H
-#define USE_GPM_SUPPORT 1
-#else
-#define USE_GPM_SUPPORT 0
-#endif
-
-/* QNX mouse support */
-#if defined(__QNX__) && !defined(__QNXNTO__)
-#define USE_QNX_MOUSE 1
-#else
-#define USE_QNX_MOUSE 0
-#endif
-
-/* EMX mouse support */
-#ifdef __EMX__
-#define USE_EMX_MOUSE
-#endif
-
-#define DEFAULT_MAXCLICK 166
-#define EV_MAX 8 /* size of mouse circular event queue */
-
-/*
- * If we don't have signals to support it, don't add a sigwinch handler.
- * In any case, resizing is an extended feature. Use it if we've got it.
- */
-#if !NCURSES_EXT_FUNCS
-#undef HAVE_SIZECHANGE
-#endif
-
-#if HAVE_SIZECHANGE
-#define USE_SIZECHANGE 1
-#else
-#undef USE_SIGWINCH
-#endif
-
-/*
- * If desired, one can configure this, disabling environment variables that
- * point to custom terminfo/termcap locations.
- */
-#ifdef USE_ROOT_ENVIRON
-#define use_terminfo_vars() 1
-#else
-#define use_terminfo_vars() _nc_env_access()
-extern int _nc_env_access(void);
-#endif
-
-/*
- * Not all platforms have memmove; some have an equivalent bcopy. (Some may
- * have neither).
- */
-#if USE_OK_BCOPY
-#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);
-#endif
-
-/*
- * Scroll hints are useless when hashmap is used
- */
-#if !USE_SCROLL_HINTS
-#if !USE_HASHMAP
-#define USE_SCROLL_HINTS 1
-#else
-#define USE_SCROLL_HINTS 0
-#endif
-#endif
-
-#if USE_SCROLL_HINTS
-#define if_USE_SCROLL_HINTS(stmt) stmt
-#else
-#define if_USE_SCROLL_HINTS(stmt) /*nothing*/
-#endif
-
-/*
- * Note: ht/cbt expansion flakes out randomly under Linux 1.1.47, but only
- * when we're throwing control codes at the screen at high volume. To see
- * this, re-enable USE_HARD_TABS and run worm for a while. Other systems
- * probably don't want to define this either due to uncertainties about tab
- * delays and expansion in raw mode.
- */
-
-struct tries {
- struct tries *child; /* ptr to child. NULL if none */
- struct tries *sibling; /* ptr to sibling. NULL if none */
- unsigned char ch; /* character at this node */
- unsigned short value; /* code of string so far. 0 if none. */
-};
-
-/*
- * Definitions for color pairs
- */
-#define C_SHIFT 8 /* we need more bits than there are colors */
-#define C_MASK ((1 << C_SHIFT) - 1)
-
-#define PAIR_OF(fg, bg) ((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK))
-
-/*
- * Common/troublesome character definitions
- */
-#define L_BRACE '{'
-#define R_BRACE '}'
-#define S_QUOTE '\''
-
-/*
- * Structure for palette tables
- */
-
-typedef struct
-{
- short red, green, blue;
-}
-color_t;
-
-#define MAXCOLUMNS 135
-#define MAXLINES 66
-#define FIFO_SIZE MAXCOLUMNS+2 /* for nocbreak mode input */
-
-#define ACS_LEN 128
-
-#define WINDOWLIST struct _win_list
-
-#include <curses.h> /* we'll use -Ipath directive to get the right one! */
-
-/*
- * Structure for soft labels.
- */
-
-typedef struct
-{
- char *text; /* text for the label */
- char *form_text; /* formatted text (left/center/...) */
- int x; /* x coordinate of this field */
- char dirty; /* this label has changed */
- char visible; /* field is visible */
-} slk_ent;
-
-typedef struct {
- char dirty; /* all labels have changed */
- char hidden; /* soft labels are hidden */
- struct _win_st *win;
- slk_ent *ent;
- char* buffer; /* buffer for labels */
- short maxlab; /* number of available labels */
- short labcnt; /* number of allocated labels */
- short maxlen; /* length of labels */
- chtype attr; /* soft label attribute */
-} SLK;
-
-struct screen {
- int _ifd; /* input file ptr for screen */
- FILE *_ofp; /* output file ptr for screen */
- char *_setbuf; /* buffered I/O for output */
- int _buffered; /* setvbuf uses _setbuf data */
- int _checkfd; /* filedesc for typeahead check */
- struct term *_term; /* terminal type information */
- short _lines; /* screen lines */
- short _columns; /* screen columns */
- short _lines_avail; /* lines available for stdscr */
- short _topstolen; /* lines stolen from top */
-
- WINDOW *_curscr; /* current screen */
- WINDOW *_newscr; /* virtual screen to be updated to */
- WINDOW *_stdscr; /* screen's full-window context */
-
- struct tries *_keytry; /* "Try" for use with keypad mode */
- struct tries *_key_ok; /* Disabled keys via keyok(,FALSE) */
- int _tried; /* keypad mode was initialized */
-
- unsigned 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? */
- unsigned long _current_attr; /* terminal attribute current set */
- int _coloron; /* is color enabled? */
- int _cursor; /* visibility of the cursor */
- int _cursrow; /* physical cursor row */
- int _curscol; /* physical cursor column */
- int _nl; /* True if NL -> CR/NL is on */
- int _raw; /* True if in raw mode */
- int _cbreak; /* 1 if in cbreak mode */
- /* > 1 if in halfdelay mode */
- int _echo; /* True if echo on */
- int _use_meta; /* use the meta key? */
- SLK *_slk; /* ptr to soft key struct / NULL */
- int slk_format; /* selected format for this screen */
- /* cursor movement costs; units are 10ths of milliseconds */
-#if NCURSES_NO_PADDING
- int _no_padding; /* flag to set if padding disabled */
-#endif
- int _char_padding; /* cost of character put */
- int _cr_cost; /* cost of (carriage_return) */
- int _cup_cost; /* cost of (cursor_address) */
- int _home_cost; /* cost of (cursor_home) */
- int _ll_cost; /* cost of (cursor_to_ll) */
-#if USE_HARD_TABS
- int _ht_cost; /* cost of (tab) */
- int _cbt_cost; /* cost of (backtab) */
-#endif /* USE_HARD_TABS */
- int _cub1_cost; /* cost of (cursor_left) */
- int _cuf1_cost; /* cost of (cursor_right) */
- int _cud1_cost; /* cost of (cursor_down) */
- int _cuu1_cost; /* cost of (cursor_up) */
- int _cub_cost; /* cost of (parm_cursor_left) */
- int _cuf_cost; /* cost of (parm_cursor_right) */
- int _cud_cost; /* cost of (parm_cursor_down) */
- int _cuu_cost; /* cost of (parm_cursor_up) */
- int _hpa_cost; /* cost of (column_address) */
- int _vpa_cost; /* cost of (row_address) */
- /* used in tty_update.c, must be chars */
- int _ed_cost; /* cost of (clr_eos) */
- int _el_cost; /* cost of (clr_eol) */
- int _el1_cost; /* cost of (clr_bol) */
- int _dch1_cost; /* cost of (delete_character) */
- int _ich1_cost; /* cost of (insert_character) */
- int _dch_cost; /* cost of (parm_dch) */
- int _ich_cost; /* cost of (parm_ich) */
- int _ech_cost; /* cost of (erase_chars) */
- int _rep_cost; /* cost of (repeat_char) */
- int _hpa_ch_cost; /* cost of (column_address) */
- int _cup_ch_cost; /* cost of (cursor_address) */
- int _cuf_ch_cost; /* cost of (parm_cursor_right) */
- int _inline_cost; /* cost of inline-move */
- int _smir_cost; /* cost of (enter_insert_mode) */
- int _rmir_cost; /* cost of (exit_insert_mode) */
- int _ip_cost; /* cost of (insert_padding) */
- /* used in lib_mvcur.c */
- char * _address_cursor;
- /* used in tty_update.c */
- int _scrolling; /* 1 if terminal's smart enough to */
-
- /* used in lib_color.c */
- color_t *_color_table; /* screen's color palette */
- int _color_count; /* count of colors in palette */
- unsigned short *_color_pairs; /* screen's color pair list */
- int _pair_count; /* count of color pairs */
-#if NCURSES_EXT_FUNCS
- bool _default_color; /* use default colors */
- bool _has_sgr_39_49; /* has ECMA default color support */
- int _default_fg; /* assumed default foreground */
- int _default_bg; /* assumed default background */
-#endif
- chtype _xmc_suppress; /* attributes to suppress if xmc */
- chtype _xmc_triggers; /* attributes to process if xmc */
- chtype _acs_map[ACS_LEN];
-
- /* used in lib_vidattr.c */
- bool _use_rmso; /* true if we may use 'rmso' */
- bool _use_rmul; /* true if we may use 'rmul' */
-
- /*
- * These data correspond to the state of the idcok() and idlok()
- * functions. A caveat is in order here: the XSI and SVr4
- * documentation specify that these functions apply to the window which
- * is given as an argument. However, ncurses implements this logic
- * only for the newscr/curscr update process, _not_ per-window.
- */
- bool _nc_sp_idlok;
- bool _nc_sp_idcok;
-#define _nc_idlok SP->_nc_sp_idlok
-#define _nc_idcok SP->_nc_sp_idcok
-
- /*
- * These are the data that support the mouse interface.
- */
- int _maxclick;
- bool (*_mouse_event) (SCREEN *);
- bool (*_mouse_inline)(SCREEN *);
- bool (*_mouse_parse) (int);
- void (*_mouse_resume)(SCREEN *);
- void (*_mouse_wrap) (SCREEN *);
- int _mouse_fd; /* file-descriptor, if any */
-
- /*
- * This supports automatic resizing
- */
-#if USE_SIZECHANGE
- int (*_resize)(int,int);
-#endif
-
- /*
- * These are data that support the proper handling of the panel stack on an
- * per screen basis.
- */
- struct panelhook _panelHook;
- /*
- * Linked-list of all windows, to support '_nc_resizeall()' and
- * '_nc_freeall()'
- */
- WINDOWLIST *_nc_sp_windows;
-#define _nc_windows SP->_nc_sp_windows
-
- bool _sig_winch;
- SCREEN *_next_screen;
-
- /* hashes for old and new lines */
- unsigned long *oldhash, *newhash;
-
- bool _cleanup; /* cleanup after int/quit signal */
- int (*_outch)(int); /* output handler if not putc */
-};
-
-extern SCREEN *_nc_screen_chain;
-
-#if NCURSES_NOMACROS
-#include <nomacros.h>
-#endif
-
- WINDOWLIST {
- WINDOWLIST *next;
- 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)
-
-#ifndef min
-#define min(a,b) ((a) > (b) ? (b) : (a))
-#endif
-
-#ifndef max
-#define max(a,b) ((a) < (b) ? (b) : (a))
-#endif
-
-/* usually in <unistd.h> */
-#ifndef STDIN_FILENO
-#define STDIN_FILENO 0
-#endif
-
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-#ifndef R_OK
-#define R_OK 4 /* Test for read permission. */
-#endif
-#ifndef W_OK
-#define W_OK 2 /* Test for write permission. */
-#endif
-#ifndef X_OK
-#define X_OK 1 /* Test for execute permission. */
-#endif
-#ifndef F_OK
-#define F_OK 0 /* Test for existence. */
-#endif
-
-#if HAVE_FCNTL_H
-#include <fcntl.h> /* may define O_BINARY */
-#endif
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-#define TextOf(c) ((c) & (chtype)A_CHARTEXT)
-#define AttrOf(c) ((c) & (chtype)A_ATTRIBUTES)
-
-#define BLANK (' '|A_NORMAL)
-
-#define CHANGED -1
-
-#define CHANGED_CELL(line,col) \
- if (line->firstchar == _NOCHANGE) \
- line->firstchar = line->lastchar = col; \
- else if ((col) < line->firstchar) \
- line->firstchar = col; \
- else if ((col) > line->lastchar) \
- line->lastchar = col
-
-#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
-
-#define CHANGED_TO_EOL(line,start,end) \
- if (line->firstchar == _NOCHANGE \
- || line->firstchar > (start)) \
- line->firstchar = start; \
- line->lastchar = end
-
-#define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
-
-#define FreeIfNeeded(p) if ((p) != 0) free(p)
-
-/* FreeAndNull() is not a comma-separated expression because some compilers
- * do not accept a mixture of void with values.
- */
-#define FreeAndNull(p) free(p); p = 0
-
-#include <nc_alloc.h>
-
-/*
- * Prefixes for call/return points of library function traces. We use these to
- * 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
-
-#ifdef TRACE
-#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 returnCode(code) TRACE_RETURN(code,int)
-#define returnPtr(code) TRACE_RETURN(code,ptr)
-#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
-#define T(a)
-#define TR(n, a)
-#define TPUTS_TRACE(s)
-#define returnAttr(code) return code
-#define returnChar(code) return code
-#define returnCode(code) return code
-#define returnPtr(code) return code
-#define returnVoid return
-#define returnWin(code) return code
-#endif
-
-extern unsigned _nc_tracing;
-extern const char *_nc_visbuf2(int, const char *);
-
-#define _trace_key(ch) ((ch > KEY_MIN) ? keyname(ch) : _tracechar((unsigned char)ch))
-
-#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);\
- else\
- (S) |= (at);\
- TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
-
-
-#define toggle_attr_off(S,at) {\
- if (IGNORE_COLOR_OFF == TRUE) {\
- if (PAIR_NUMBER(at) == 0xff) /* turn off color */\
- (S) &= ~(at);\
- else /* leave color alone */\
- (S) &= ~((at)&ALL_BUT_COLOR);\
- } else {\
- if (PAIR_NUMBER(at) > 0x00) /* turn off color */\
- (S) &= ~(at|A_COLOR);\
- else /* leave color alone */\
- (S) &= ~(at);\
- }\
- TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
-
-#define DelCharCost(count) \
- ((parm_dch != 0) \
- ? SP->_dch_cost \
- : ((delete_character != 0) \
- ? (SP->_dch1_cost * count) \
- : INFINITY))
-
-#define InsCharCost(count) \
- ((parm_ich != 0) \
- ? SP->_ich_cost \
- : ((enter_insert_mode && exit_insert_mode) \
- ? SP->_smir_cost + SP->_rmir_cost + (SP->_ip_cost * count) \
- : ((insert_character != 0) \
- ? (SP->_ich1_cost * count) \
- : INFINITY)))
-
-#if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (SP->_current_attr != AttrOf(c)) { \
- attr_t chg = SP->_current_attr; \
- vidattr(AttrOf(c)); \
- if (magic_cookie_glitch > 0 \
- && XMC_CHANGES((chg ^ SP->_current_attr))) { \
- TR(TRACE_ATTRS, \
- ("%s @%d before glitch %d,%d", \
- __FILE__, __LINE__, \
- SP->_cursrow, \
- SP->_curscol)); \
- _nc_do_xmc_glitch(chg); \
- } \
- }
-#else
-#define UpdateAttrs(c) if (SP->_current_attr != AttrOf(c)) \
- vidattr(AttrOf(c))
-#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);
-
-#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);
-
-#undef DelCharCost
-#define DelCharCost(count) _nc_DelCharCost(count)
-extern int _nc_DelCharCost(int);
-
-#undef InsCharCost
-#define InsCharCost(count) _nc_InsCharCost(count)
-extern int _nc_InsCharCost(int);
-
-#undef UpdateAttrs
-#define UpdateAttrs(c) _nc_UpdateAttrs(c)
-extern void _nc_UpdateAttrs(chtype);
-
-#else
-
-extern void _nc_expanded(void);
-
-#endif
-
-#if !HAVE_GETCWD
-#define getcwd(buf,len) getwd(buf)
-#endif
-
-/* doupdate.c */
-#if USE_XMC_SUPPORT
-extern void _nc_do_xmc_glitch(attr_t);
-#endif
-
-/* hardscroll.c */
-#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
-extern void _nc_linedump(void);
-#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 */
-
-/* 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 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);
-
-/* lib_mouse.c */
-extern int _nc_has_mouse(void);
-
-/* lib_mvcur.c */
-#define INFINITY 1000000 /* cost: too high to use */
-
-typedef struct {
- char *s_head;
- char *s_tail;
- size_t s_size;
-} 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 void _nc_mvcur_init(void);
-extern void _nc_mvcur_resume(void);
-extern void _nc_mvcur_wrap(void);
-
-extern 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);
-
-#if !HAVE_STRSTR
-#define strstr _nc_strstr
-extern char *_nc_strstr(const char *, const char *);
-#endif
-
-/* safe_sprintf.c */
-extern char * _nc_printf_string(const char *fmt, va_list ap);
-
-/* 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);
-
-/* 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);
-
-#if USE_SIZECHANGE
-extern void _nc_update_screensize(void);
-#endif
-
-#if USE_WIDEC_SUPPORT
-extern int _nc_utf8_outch(int);
-#endif
-
-/* scroll indices */
-extern int *_nc_oldnums;
-
-#define USE_SETBUF_0 0
-
-#define NC_BUFFERED(flag) \
- if ((SP->_buffered != 0) != flag) \
- _nc_set_buffer(SP->_ofp, flag)
-
-#define NC_OUTPUT ((SP != 0) ? SP->_ofp : stdout)
-
-/*
- * On systems with a broken linker, define 'SP' as a function to force the
- * linker to pull in the data-only module with 'SP'.
- */
-#if BROKEN_LINKER
-#define SP _nc_screen()
-extern SCREEN *_nc_screen(void);
-extern int _nc_alloc_screen(void);
-extern void _nc_set_screen(SCREEN *);
-#else
-/* current screen is private data; avoid possible linking conflicts too */
-extern SCREEN *SP;
-#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...
- */
-#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);
-
-/*
- * Some constants related to SLK's
- */
-#define MAX_SKEY_OLD 8 /* count of soft keys */
-#define MAX_SKEY_LEN_OLD 8 /* max length of soft key text */
-#define MAX_SKEY_PC 12 /* This is what most PC's have */
-#define MAX_SKEY_LEN_PC 5
-
-/* Macro to check whether or not we use a standard format */
-#define SLK_STDFMT(fmt) (fmt < 3)
-/* Macro to determine height of label window */
-#define SLK_LINES(fmt) (SLK_STDFMT(fmt) ? 1 : ((fmt) - 2))
-
-#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));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CURSES_PRIV_H */
diff --git a/ncurses-5.2/ncurses/fifo_defs.h b/ncurses-5.2/ncurses/fifo_defs.h
deleted file mode 100644
index 6b8aae2..0000000
--- a/ncurses-5.2/ncurses/fifo_defs.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * Common macros for lib_getch.c, lib_ungetch.c
- *
- * $Id$
- */
-
-#ifndef FIFO_DEFS_H
-#define FIFO_DEFS_H 1
-
-#define head SP->_fifohead
-#define tail SP->_fifotail
-/* peek points to next uninterpreted character */
-#define peek SP->_fifopeek
-
-#define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;}
-#define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;}
-#define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;}
-#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear();}
-#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)
-
-#undef HIDE_EINTR
-
-#endif /* FIFO_DEFS_H */
diff --git a/ncurses-5.2/ncurses/llib-lncurses b/ncurses-5.2/ncurses/llib-lncurses
deleted file mode 100644
index 280325a..0000000
--- a/ncurses-5.2/ncurses/llib-lncurses
+++ /dev/null
@@ -1,3021 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1996-2000 *
- ****************************************************************************/
-/* 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 */
-
-#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_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_background
-chtype _nc_background(
- WINDOW *win)
- { return(*(chtype *)0); }
-
-#undef _nc_render
-chtype _nc_render(
- WINDOW *win,
- chtype ch)
- { return(*(chtype *)0); }
-
-#undef _nc_waddch_nosync
-int _nc_waddch_nosync(
- WINDOW *win,
- const chtype 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); }
-
-/* ./base/lib_addstr.c */
-
-#undef waddnstr
-int waddnstr(
- WINDOW *win,
- const char *const astr,
- int n)
- { return(*(int *)0); }
-
-#undef waddchnstr
-int waddchnstr(
- WINDOW *win,
- const chtype *const astr,
- int n)
- { return(*(int *)0); }
-
-/* ./base/lib_beep.c */
-
-#undef beep
-int beep(void)
- { return(*(int *)0); }
-
-/* ./base/lib_bkgd.c */
-
-#undef wbkgdset
-void wbkgdset(
- WINDOW *win,
- chtype ch)
- { /* void */ }
-
-#undef wbkgd
-int wbkgd(
- WINDOW *win,
- const 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,
- 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
-bool can_change_color(void)
- { return(*(bool *)0); }
-
-#undef has_colors
-bool has_colors(void)
- { return(*(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,
- 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 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 mouse_trafo
-bool mouse_trafo(
- int *a1,
- int *a2,
- bool z)
- { return(*(bool *)0); }
-
-/* ./base/lib_getch.c */
-
-#include <fifo_defs.h>
-
-#undef ESCDELAY
-int ESCDELAY;
-
-#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,
- 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
-bool isendwin(void)
- { return(*(bool *)0); }
-
-/* ./base/lib_leaveok.c */
-
-#undef leaveok
-int leaveok(
- WINDOW *win,
- 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
-bool wenclose(
- const WINDOW *win,
- int y,
- int x)
- { return(*(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
-bool wmouse_trafo(
- const WINDOW *win,
- int *pY,
- int *pX,
- bool to_screen)
- { return(*(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
-void _nc_freewin(
- WINDOW *win)
- { /* void */ }
-
-#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 */
-
-#include <sys/stat.h>
-#include <time.h>
-
-#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,
- chtype blank)
- { /* void */ }
-
-#undef wscrl
-int wscrl(
- WINDOW *win,
- int n)
- { return(*(int *)0); }
-
-/* ./base/lib_scrollok.c */
-
-#undef scrollok
-int scrollok(
- WINDOW *win,
- 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
-bool is_linetouched(
- WINDOW *win,
- int line)
- { return(*(bool *)0); }
-
-#undef is_wintouched
-bool is_wintouched(
- WINDOW *win)
- { return(*(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 _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); }
-
-/* ./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 <signal.h>
-#include <SigAction.h>
-
-#undef _nc_signal_handler
-void _nc_signal_handler(
- 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(
- attr_t newmode,
- int (*outc)(
- int p1))
- { return(*(int *)0); }
-
-#undef vidattr
-int vidattr(
- attr_t 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,
- 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 */ }
-
-/* ./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 */ }
-
-/* ./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,
- 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 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_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)
- { /* 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(
- bool termcap)
- { return(*(const struct name_table_entry **)0); }
-
-#undef _nc_get_hash_table
-const struct name_table_entry *const *_nc_get_hash_table(
- bool termcap)
- { return(*(const struct name_table_entry **)0); }
-
-/* ./tinfo/comp_error.c */
-
-#undef _nc_suppress_warnings
-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,
- 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
-bool _nc_entry_match(
- char *n1,
- char *n2)
- { return(*(bool *)0); }
-
-#undef _nc_read_entry_source
-void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- bool silent,
- bool (*hook)(
- ENTRY *p1))
- { /* void */ }
-
-#undef _nc_resolve_uses
-int _nc_resolve_uses(
- 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
-bool _nc_disable_period;
-
-#undef _nc_get_token
-int _nc_get_token(void)
- { 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
-bool _nc_user_definable;
-
-#undef use_extended_names
-int use_extended_names(
- 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
-bool has_ic(void)
- { return(*(bool *)0); }
-
-#undef has_il
-bool has_il(void)
- { return(*(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 */
-
-#include <stdlib.h>
-#include <string.h>
-#include <curses.h>
-
-#undef _nc_key_names
-const struct kn _nc_key_names[] = {0};
-
-#undef keyname
-char *keyname(
- int c)
- { return(*(char **)0); }
-
-/* ./tinfo/lib_longname.c */
-
-#undef longname
-char *longname(void)
- { return(*(char **)0); }
-
-/* ./tinfo/lib_napms.c */
-
-#undef napms
-int napms(
- int ms)
- { return(*(int *)0); }
-
-/* ./tinfo/lib_options.c */
-
-#undef idlok
-int idlok(
- WINDOW *win,
- bool flag)
- { return(*(int *)0); }
-
-#undef idcok
-void idcok(
- WINDOW *win,
- bool flag)
- { /* void */ }
-
-#undef halfdelay
-int halfdelay(
- int t)
- { return(*(int *)0); }
-
-#undef nodelay
-int nodelay(
- WINDOW *win,
- bool flag)
- { return(*(int *)0); }
-
-#undef notimeout
-int notimeout(
- WINDOW *win,
- bool f)
- { return(*(int *)0); }
-
-#undef wtimeout
-void wtimeout(
- WINDOW *win,
- int delay)
- { /* void */ }
-
-#undef keypad
-int keypad(
- WINDOW *win,
- bool flag)
- { return(*(int *)0); }
-
-#undef meta
-int meta(
- WINDOW *win,
- 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(
- 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,
- bool flag)
- { return(*(int *)0); }
-
-/* ./tinfo/lib_setup.c */
-
-#include <sys/ioctl.h>
-
-#undef use_env
-void use_env(
- 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 {
- unsigned int num;
- char *str;
- } data;
- bool num_type;
-} stack_frame;
-
-#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 _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,
- ...)
- { /* 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_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_tracebits
-char *_nc_tracebits(void)
- { return(*(char **)0); }
-
-/* ./trace/lib_tracechr.c */
-
-#undef _tracechar
-char *_tracechar(
- const unsigned char 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,
- 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
-void _nc_read_termcap(void)
- { /* void */ }
-
-/* ./tinfo/setbuf.c */
-
-#undef _nc_set_buffer
-void _nc_set_buffer(
- FILE *ofp,
- 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
-bool _nc_safe_strcat(
- string_desc *dst,
- const char *src)
- { return(*(bool *)0); }
-
-#undef _nc_safe_strcpy
-bool _nc_safe_strcpy(
- string_desc *dst,
- const char *src)
- { return(*(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); }
-
-/* ./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); }
diff --git a/ncurses-5.2/ncurses/modules b/ncurses-5.2/ncurses/modules
deleted file mode 100644
index dbc243d..0000000
--- a/ncurses-5.2/ncurses/modules
+++ /dev/null
@@ -1,189 +0,0 @@
-# $Id$
-##############################################################################
-# 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 "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1996-1998
-#
-
-@ base
-# Library objects
-hardscroll lib $(serial)
-hashmap lib $(serial) ../include/term.h
-lib_addch lib $(base)
-lib_addstr lib $(base)
-lib_beep lib $(base) ../include/term.h
-lib_bkgd lib $(base)
-lib_box lib $(base)
-lib_chgat lib $(base)
-lib_clear lib $(base)
-lib_clearok lib $(base)
-lib_clrbot lib $(base)
-lib_clreol lib $(base)
-lib_color lib $(base) ../include/term.h
-lib_colorset lib $(base)
-lib_delch lib $(base)
-lib_delwin lib $(base)
-lib_echo lib $(base)
-lib_endwin lib $(base) ../include/term.h
-lib_erase lib $(base)
-lib_flash lib $(base) ../include/term.h
-lib_gen lib . ../include/curses.h
-lib_getch lib $(base)
-lib_getstr lib $(base) ../include/term.h
-lib_hline lib $(base)
-lib_immedok lib $(base)
-lib_inchstr lib $(base)
-lib_initscr lib $(base) $(INCDIR)/tic.h
-lib_insch lib $(base)
-lib_insdel lib $(base)
-lib_insstr lib $(base)
-lib_instr lib $(base)
-lib_isendwin lib $(base)
-lib_leaveok lib $(base)
-lib_mouse lib $(base) ../include/term.h
-lib_move lib $(base)
-lib_mvcur lib $(serial) ../include/term.h $(INCDIR)/tic.h
-lib_mvwin lib $(base)
-lib_newterm lib $(base) ../include/term.h
-lib_newwin lib $(base)
-lib_nl lib $(base)
-lib_overlay lib $(base)
-lib_pad lib $(base)
-lib_printw lib $(base)
-lib_redrawln lib $(base)
-lib_refresh lib $(base)
-lib_restart lib $(base) ../include/term.h
-lib_scanw lib $(base)
-lib_screen lib $(base) ../include/term.h
-lib_scroll lib $(base)
-lib_scrollok lib $(base)
-lib_scrreg lib $(base)
-lib_set_term lib $(base) ../include/term.h
-lib_slk lib $(base) ../include/term.h
-lib_slkatr_set lib $(base)
-lib_slkatrof lib $(base)
-lib_slkatron lib $(base)
-lib_slkatrset lib $(base)
-lib_slkattr lib $(base)
-lib_slkclear lib $(base)
-lib_slkcolor lib $(base)
-lib_slkinit lib $(base)
-lib_slklab lib $(base)
-lib_slkrefr lib $(base) ../include/term.h
-lib_slkset lib $(base)
-lib_slktouch lib $(base)
-lib_touch lib $(base)
-lib_traceatr lib $(trace) ../include/term.h
-lib_tracedmp lib $(trace)
-lib_tracemse lib $(trace)
-lib_tstp lib $(serial)
-lib_ungetch lib $(base)
-lib_vidattr lib $(serial) ../include/term.h
-lib_vline lib $(base)
-lib_wattroff lib $(base)
-lib_wattron lib $(base)
-lib_winch lib $(base)
-lib_window lib $(base)
-nc_panel lib $(base)
-safe_sprintf lib $(base)
-tty_update lib $(serial) ../include/term.h
-
-# Modules for porting
-memmove lib $(base)
-sigaction lib $(base)
-vsscanf lib $(base)
-
-# Extensions to the base library
-@ ext_funcs
-define_key lib $(base)
-expanded lib .
-keybound lib $(base)
-keyok lib $(base)
-lib_dft_fgbg lib $(base) ../include/term.h
-lib_freeall lib $(base)
-lib_print lib $(tinfo) ../include/term.h
-resizeterm lib $(base) ../include/term.h
-trace_xnames lib $(trace) ../include/term.h $(INCDIR)/term_entry.h
-tries lib $(base)
-version lib $(base)
-wresize lib $(base) ../include/term.h
-
-# Support for termcap (and tic, etc.), which can be a separate library
-@ termlib
-access lib $(tinfo)
-add_tries lib $(tinfo)
-alloc_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-alloc_ttype lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-captoinfo lib $(tinfo) $(INCDIR)/tic.h
-codes lib .
-comp_captab lib . $(INCDIR)/tic.h ../include/term.h ../include/hashsize.h
-comp_error lib $(tinfo) $(INCDIR)/tic.h
-comp_expand lib $(tinfo) $(INCDIR)/tic.h
-comp_hash lib $(tinfo) ../include/term.h $(INCDIR)/tic.h ../include/hashsize.h
-comp_parse lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-comp_scan lib $(tinfo) $(INCDIR)/tic.h
-doalloc lib $(tinfo)
-fallback lib . ../include/term.h $(INCDIR)/tic.h
-free_ttype lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-getenv_num lib $(tinfo)
-home_terminfo lib $(tinfo)
-init_keytry lib $(tinfo) ../include/term.h $(INCDIR)/tic.h init_keytry.h
-lib_acs lib $(tinfo) ../include/term.h
-lib_baudrate lib $(tinfo) ../include/term.h
-lib_cur_term lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h
-lib_data lib $(tinfo)
-lib_has_cap lib $(tinfo) ../include/term.h
-lib_kernel lib $(tinfo) ../include/term.h
-lib_keyname lib . ../include/term.h
-lib_longname lib $(tinfo)
-lib_napms lib $(tinfo)
-lib_options lib $(tinfo) ../include/term.h
-lib_raw lib $(tinfo) ../include/term.h
-lib_setup lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h
-lib_termcap lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h $(INCDIR)/capdefaults.c
-lib_termname lib $(tinfo) $(INCDIR)/tic.h
-lib_tgoto lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-lib_ti lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-lib_tparm lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-lib_tputs lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-lib_trace lib $(trace) $(INCDIR)/tic.h
-lib_tracebits lib $(trace) ../include/term.h
-lib_tracechr lib $(trace)
-lib_ttyflags lib $(tinfo) ../include/term.h
-lib_twait lib $(serial)
-name_match lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-names lib .
-parse_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c
-read_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-read_termcap lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-setbuf lib $(tinfo)
-strings lib $(tinfo)
-trace_buf lib $(trace)
-trace_tries lib $(trace)
-unctrl lib .
-write_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
diff --git a/ncurses-5.2/ncurses/tinfo/MKcaptab.awk b/ncurses-5.2/ncurses/tinfo/MKcaptab.awk
deleted file mode 100644
index b96143d..0000000
--- a/ncurses-5.2/ncurses/tinfo/MKcaptab.awk
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/sh
-# $Id$
-AWK=${1-awk}
-DATA=${2-../include/Caps}
-
-cat <<'EOF'
-/*
- * comp_captab.c -- The names of the capabilities indexed via a hash
- * table for the compiler.
- *
- */
-
-#include <ncurses_cfg.h>
-#include <tic.h>
-#include <term.h>
-
-EOF
-
-./make_hash 1 info <$DATA
-./make_hash 3 cap <$DATA
-
-cat <<'EOF'
-const struct alias _nc_capalias_table[] =
-{
-EOF
-
-$AWK <$DATA '
-$1 == "capalias" {
- if ($3 == "IGNORE")
- to = "(char *)NULL";
- else
- to = "\"" $3 "\"";
- printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n",
- $2, to, $4, $5
- }
-'
-
-cat <<'EOF'
- {(char *)NULL, (char *)NULL, (char *)NULL}
-};
-
-const struct alias _nc_infoalias_table[] =
-{
-EOF
-
-$AWK <$DATA '
-$1 == "infoalias" {
- if ($3 == "IGNORE")
- to = "(char *)NULL";
- else
- to = "\"" $3 "\"";
- printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n",
- $2, to, $4, $5
- }
-'
-
-cat <<'EOF'
- {(char *)NULL, (char *)NULL, (char *)NULL}
-};
-
-const struct name_table_entry *_nc_get_table(bool termcap)
-{
- return termcap ? _nc_cap_table: _nc_info_table ;
-}
-
-const struct name_table_entry * const * _nc_get_hash_table(bool termcap)
-{
- return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
-}
-EOF
diff --git a/ncurses-5.2/ncurses/tinfo/MKfallback.sh b/ncurses-5.2/ncurses/tinfo/MKfallback.sh
deleted file mode 100755
index 17e95ac..0000000
--- a/ncurses-5.2/ncurses/tinfo/MKfallback.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# MKfallback.sh -- create fallback table for entry reads
-#
-# This script generates source code for a custom version of read_entry.c
-# that (instead of reading capabilities for an argument terminal type
-# from an on-disk terminfo tree) tries to match the type with one of a
-# specified list of types generated in.
-#
-cat <<EOF
-/*
- * DO NOT EDIT THIS FILE BY HAND! It is generated by MKfallback.sh.
- */
-
-#include <curses.priv.h>
-#include <term.h>
-
-EOF
-
-if [ "$*" ]
-then
- cat <<EOF
-#include <tic.h>
-
-/* fallback entries for: $* */
-EOF
- for x in $*
- do
- echo "/* $x */"
- infocmp -E $x
- done
-
- cat <<EOF
-static const TERMTYPE fallbacks[$#] =
-{
-EOF
- comma=""
- for x in $*
- do
- echo "$comma /* $x */"
- infocmp -e $x
- comma=","
- done
-
- cat <<EOF
-};
-
-EOF
-fi
-
-cat <<EOF
-const TERMTYPE *_nc_fallback(const char *name GCC_UNUSED)
-{
-EOF
-
-if [ "$*" ]
-then
- cat <<EOF
- const TERMTYPE *tp;
-
- for (tp = fallbacks;
- tp < fallbacks + sizeof(fallbacks)/sizeof(TERMTYPE);
- tp++)
- if (_nc_name_match(tp->term_names, name, "|"))
- return(tp);
-EOF
-else
- echo " /* the fallback list is empty */";
-fi
-
-cat <<EOF
- return((TERMTYPE *)0);
-}
-EOF
diff --git a/ncurses-5.2/ncurses/tinfo/MKnames.awk b/ncurses-5.2/ncurses/tinfo/MKnames.awk
deleted file mode 100644
index 075fafa..0000000
--- a/ncurses-5.2/ncurses/tinfo/MKnames.awk
+++ /dev/null
@@ -1,98 +0,0 @@
-# $Id$
-BEGIN {
- print "/* This file was generated by MKnames.awk */" > "namehdr"
- print "" > "namehdr"
- print "#include <curses.priv.h>" > "namehdr"
- print "" > "namehdr"
- print "#define IT NCURSES_CONST char * const" > "namehdr"
- print "" > "namehdr"
- print "#if BROKEN_LINKER" > "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 "#endif" > "namehdr"
- print "" > "namehdr"
- print "/*" > "boolnames"
- print " * names.c - Arrays of capability names and codes" > "boolnames"
- print " *" > "boolnames"
- print " */" > "boolnames"
- print "" > "boolnames"
- print "DCL(boolnames) = {" > "boolnames"
- print "DCL(boolfnames) = {" > "boolfnames"
- print "DCL(boolcodes) = {" > "boolcodes"
- print "DCL(numnames) = {" > "numnames"
- print "DCL(numfnames) = {" > "numfnames"
- print "DCL(numcodes) = {" > "numcodes"
- print "DCL(strnames) = {" > "strnames"
- print "DCL(strfnames) = {" > "strfnames"
- print "DCL(strcodes) = {" > "strcodes"
- }
-
-$1 ~ /^#/ {next;}
-
-$1 == "SKIPWARN" {next;}
-
-$3 == "bool" {
- printf "\t\t\"%s\",\n", $2 > "boolnames"
- printf "\t\t\"%s\",\n", $1 > "boolfnames"
- printf "\t\t\"%s\",\n", $4 > "boolcodes"
- }
-
-$3 == "num" {
- printf "\t\t\"%s\",\n", $2 > "numnames"
- printf "\t\t\"%s\",\n", $1 > "numfnames"
- printf "\t\t\"%s\",\n", $4 > "numcodes"
- }
-
-$3 == "str" {
- printf "\t\t\"%s\",\n", $2 > "strnames"
- printf "\t\t\"%s\",\n", $1 > "strfnames"
- printf "\t\t\"%s\",\n", $4 > "strcodes"
- }
-
-END {
- print "\t\t(NCURSES_CONST char *)0," > "boolnames"
- print "};" > "boolnames"
- print "" > "boolnames"
- print "\t\t(NCURSES_CONST char *)0," > "boolfnames"
- print "};" > "boolfnames"
- print "" > "boolfnames"
- print "\t\t(NCURSES_CONST char *)0," > "boolcodes"
- print "};" > "boolcodes"
- print "" > "boolcodes"
- print "\t\t(NCURSES_CONST char *)0," > "numnames"
- print "};" > "numnames"
- print "" > "numnames"
- print "\t\t(NCURSES_CONST char *)0," > "numfnames"
- print "};" > "numfnames"
- print "" > "numfnames"
- print "\t\t(NCURSES_CONST char *)0," > "numcodes"
- print "};" > "numcodes"
- print "" > "numcodes"
- print "\t\t(NCURSES_CONST char *)0," > "strnames"
- print "};" > "strnames"
- print "" > "strnames"
- print "\t\t(NCURSES_CONST char *)0," > "strfnames"
- print "};" > "strfnames"
- print "" > "strfnames"
- print "\t\t(NCURSES_CONST char *)0," > "strcodes"
- print "};" > "strcodes"
- print "" > "strcodes"
- print "#if BROKEN_LINKER" > "nameftr"
- print "#define FIX(it) IT *_nc_##it(void) { return data##it; }" > "nameftr"
- print "FIX(boolnames)" > "nameftr"
- print "FIX(boolfnames)" > "nameftr"
- print "FIX(numnames)" > "nameftr"
- print "FIX(numfnames)" > "nameftr"
- print "FIX(strnames)" > "nameftr"
- print "FIX(strfnames)" > "nameftr"
- 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 "FIX(boolcodes)" > "codeftr"
- print "FIX(numcodes)" > "codeftr"
- print "FIX(strcodes)" > "codeftr"
- print "#endif /* BROKEN_LINKER */" > "codeftr"
- }
diff --git a/ncurses-5.2/ncurses/tinfo/README b/ncurses-5.2/ncurses/tinfo/README
deleted file mode 100644
index 02de383..0000000
--- a/ncurses-5.2/ncurses/tinfo/README
+++ /dev/null
@@ -1,8 +0,0 @@
--- $Id$
-
-The files in this directory (tinfo) are those that support the terminfo
-database and interfaces for ncurses. The terminfo library can be built
-separately, as a lower-level library for ncurses, but usually is bundled.
-
-In addition to the standard documented interfaces, ncurses uses internal
-functions which reside in tinfo to satisfy linkage requirements.
diff --git a/ncurses-5.2/ncurses/tinfo/access.c b/ncurses-5.2/ncurses/tinfo/access.c
deleted file mode 100644
index 7d5e526..0000000
--- a/ncurses-5.2/ncurses/tinfo/access.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998,2000 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-char *
-_nc_basename(char *path)
-{
- char *result = strrchr(path, '/');
-#ifdef __EMX__
- if (result == 0)
- result = strrchr(path, '\\');
-#endif
- if (result == 0)
- result = path;
- else
- result++;
- return result;
-}
-
-int
-_nc_access(const char *path, int mode)
-{
- if (access(path, mode) < 0) {
- if ((mode & W_OK) != 0
- && errno == ENOENT
- && strlen(path) < PATH_MAX) {
- char head[PATH_MAX];
- char *leaf = _nc_basename(strcpy(head, path));
-
- if (leaf == 0)
- leaf = head;
- *leaf = '\0';
- if (head == leaf)
- (void) strcpy(head, ".");
-
- return access(head, R_OK | W_OK | X_OK);
- }
- return -1;
- }
- return 0;
-}
-
-#ifndef USE_ROOT_ENVIRON
-/*
- * Returns true if we allow application to use environment variables that are
- * used for searching lists of directories, etc.
- */
-int
-_nc_env_access(void)
-{
-#if HAVE_ISSETUGID
- if (issetugid())
- return FALSE;
-#elif HAVE_GETEUID && HAVE_GETEGID
- if (getuid() != geteuid()
- || getgid() != getegid())
- return FALSE;
-#endif
- return getuid() != 0; /* ...finally, disallow root */
-}
-#endif
diff --git a/ncurses-5.2/ncurses/tinfo/add_tries.c b/ncurses-5.2/ncurses/tinfo/add_tries.c
deleted file mode 100644
index ad2838a..0000000
--- a/ncurses-5.2/ncurses/tinfo/add_tries.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-/*
-** add_tries.c
-**
-** Add keycode/string to tries-tree.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
-#define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
-
-void
-_nc_add_to_try(struct tries **tree, const char *str, unsigned short code)
-{
- static bool out_of_memory = FALSE;
- struct tries *ptr, *savedptr;
- unsigned const char *txt = (unsigned const char *) str;
-
- if (txt == 0 || *txt == '\0' || out_of_memory || code == 0)
- return;
-
- if ((*tree) != 0) {
- ptr = savedptr = (*tree);
-
- for (;;) {
- unsigned char cmp = *txt;
-
- while (!CMP_TRY(ptr->ch, cmp)
- && ptr->sibling != 0)
- ptr = ptr->sibling;
-
- if (CMP_TRY(ptr->ch, cmp)) {
- if (*(++txt) == '\0') {
- ptr->value = code;
- return;
- }
- if (ptr->child != 0)
- ptr = ptr->child;
- else
- break;
- } else {
- if ((ptr->sibling = typeCalloc(struct tries, 1)) == 0) {
- out_of_memory = TRUE;
- return;
- }
-
- savedptr = ptr = ptr->sibling;
- SET_TRY(ptr, txt);
- ptr->value = 0;
-
- break;
- }
- } /* end for (;;) */
- } else { /* (*tree) == 0 :: First sequence to be added */
- savedptr = ptr = (*tree) = typeCalloc(struct tries, 1);
-
- if (ptr == 0) {
- out_of_memory = TRUE;
- return;
- }
-
- SET_TRY(ptr, txt);
- ptr->value = 0;
- }
-
- /* at this point, we are adding to the try. ptr->child == 0 */
-
- while (*txt) {
- ptr->child = typeCalloc(struct tries, 1);
-
- ptr = ptr->child;
-
- if (ptr == 0) {
- out_of_memory = TRUE;
-
- while ((ptr = savedptr) != 0) {
- savedptr = ptr->child;
- free(ptr);
- }
-
- return;
- }
-
- SET_TRY(ptr, txt);
- ptr->value = 0;
- }
-
- ptr->value = code;
- return;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/alloc_entry.c b/ncurses-5.2/ncurses/tinfo/alloc_entry.c
deleted file mode 100644
index 4a79125..0000000
--- a/ncurses-5.2/ncurses/tinfo/alloc_entry.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * alloc_entry.c -- allocation functions for terminfo entries
- *
- * _nc_copy_entry()
- * _nc_init_entry()
- * _nc_merge_entry()
- * _nc_save_str()
- * _nc_wrap_entry()
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#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 size_t next_free; /* next free character in stringbuf */
-
-void
-_nc_init_entry(TERMTYPE * const tp)
-/* initialize a terminal type data block */
-{
- int i;
-
-#if NCURSES_XNAMES
- tp->num_Booleans = BOOLCOUNT;
- tp->num_Numbers = NUMCOUNT;
- tp->num_Strings = STRCOUNT;
- tp->ext_Booleans = 0;
- tp->ext_Numbers = 0;
- tp->ext_Strings = 0;
-#endif
- if (tp->Booleans == 0)
- tp->Booleans = typeMalloc(char, BOOLCOUNT);
- if (tp->Numbers == 0)
- tp->Numbers = typeMalloc(short, NUMCOUNT);
- if (tp->Strings == 0)
- tp->Strings = typeMalloc(char *, STRCOUNT);
-
- for_each_boolean(i, tp)
- tp->Booleans[i] = FALSE;
-
- for_each_number(i, tp)
- tp->Numbers[i] = ABSENT_NUMERIC;
-
- for_each_string(i, tp)
- tp->Strings[i] = ABSENT_STRING;
-
- next_free = 0;
-}
-
-ENTRY *
-_nc_copy_entry(ENTRY * oldp)
-{
- ENTRY *newp = typeCalloc(ENTRY, 1);
-
- if (newp != 0) {
- *newp = *oldp;
- _nc_copy_termtype(&(newp->tterm), &(oldp->tterm));
- }
- return newp;
-}
-
-char *
-_nc_save_str(const char *const string)
-/* save a copy of string in the string buffer */
-{
- size_t old_next_free = next_free;
- size_t len = strlen(string) + 1;
-
- if (next_free + len < MAX_STRTAB) {
- strcpy(&stringbuf[next_free], string);
- DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
- DEBUG(7, ("at location %d", (int) next_free));
- next_free += len;
- }
- return (stringbuf + old_next_free);
-}
-
-void
-_nc_wrap_entry(ENTRY * const ep)
-/* 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);
-
- n = tp->term_names - stringbuf;
- for_each_string(i, &(ep->tterm)) {
- if (tp->Strings[i] == ABSENT_STRING)
- offsets[i] = ABSENT_OFFSET;
- else if (tp->Strings[i] == CANCELLED_STRING)
- offsets[i] = CANCELLED_OFFSET;
- else
- offsets[i] = tp->Strings[i] - stringbuf;
- }
-
- for (i = 0; i < ep->nuses; i++) {
- if (ep->uses[i].name == 0)
- useoffsets[i] = ABSENT_OFFSET;
- else
- useoffsets[i] = ep->uses[i].name - stringbuf;
- }
-
- if ((tp->str_table = typeMalloc(char, next_free)) == (char *) 0)
- _nc_err_abort("Out of memory");
- (void) memcpy(tp->str_table, stringbuf, next_free);
-
- tp->term_names = tp->str_table + n;
- for_each_string(i, &(ep->tterm)) {
- if (offsets[i] == ABSENT_OFFSET)
- tp->Strings[i] = ABSENT_STRING;
- else if (offsets[i] == CANCELLED_OFFSET)
- tp->Strings[i] = CANCELLED_STRING;
- else
- tp->Strings[i] = tp->str_table + offsets[i];
- }
-
-#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;
- }
- }
-#endif
-
- for (i = 0; i < ep->nuses; i++) {
- if (useoffsets[i] == ABSENT_OFFSET)
- ep->uses[i].name = 0;
- else
- ep->uses[i].name = (tp->str_table + useoffsets[i]);
- }
-}
-
-void
-_nc_merge_entry(TERMTYPE * const to, TERMTYPE * const from)
-/* merge capabilities from `from' entry into `to' entry */
-{
- int i;
-
-#if NCURSES_XNAMES
- _nc_align_termtype(to, from);
-#endif
- for_each_boolean(i, from) {
- int mergebool = from->Booleans[i];
-
- if (mergebool == CANCELLED_BOOLEAN)
- to->Booleans[i] = FALSE;
- else if (mergebool == TRUE)
- to->Booleans[i] = mergebool;
- }
-
- for_each_number(i, from) {
- int mergenum = from->Numbers[i];
-
- if (mergenum == CANCELLED_NUMERIC)
- to->Numbers[i] = ABSENT_NUMERIC;
- else if (mergenum != ABSENT_NUMERIC)
- to->Numbers[i] = mergenum;
- }
-
- /*
- * Note: the copies of strings this makes don't have their own
- * storage. This is OK right now, but will be a problem if we
- * we ever want to deallocate entries.
- */
- for_each_string(i, from) {
- char *mergestring = from->Strings[i];
-
- if (mergestring == CANCELLED_STRING)
- to->Strings[i] = ABSENT_STRING;
- else if (mergestring != ABSENT_STRING)
- to->Strings[i] = mergestring;
- }
-}
diff --git a/ncurses-5.2/ncurses/tinfo/alloc_ttype.c b/ncurses-5.2/ncurses/tinfo/alloc_ttype.c
deleted file mode 100644
index 5f8d650..0000000
--- a/ncurses-5.2/ncurses/tinfo/alloc_ttype.c
+++ /dev/null
@@ -1,489 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1999 *
- ****************************************************************************/
-
-/*
- * align_ttype.c -- functions for TERMTYPE
- *
- * _nc_align_termtype()
- * _nc_copy_termtype()
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#if NCURSES_XNAMES
-/*
- * Merge the a/b lists into dst. Both a/b are sorted (see _nc_extend_names()),
- * so we do not have to worry about order dependencies.
- */
-static int
-merge_names(char **dst, char **a, int na, char **b, int nb)
-{
- int n = 0;
- while (na > 0 && nb > 0) {
- int cmp = strcmp(*a, *b);
- if (cmp < 0) {
- dst[n++] = *a++;
- na--;
- } else if (cmp > 0) {
- dst[n++] = *b++;
- nb--;
- } else if (cmp == 0) {
- dst[n++] = *a;
- a++, b++;
- na--, nb--;
- }
- }
- while (na-- > 0) {
- dst[n++] = *a++;
- }
- while (nb-- > 0) {
- dst[n++] = *b++;
- }
- DEBUG(4, ("merge_names -> %d", n));
- return n;
-}
-
-static bool
-find_name(char **table, int length, char *name)
-{
- while (length-- > 0) {
- if (!strcmp(*table++, name)) {
- DEBUG(4, ("found name '%s'", name));
- return TRUE;
- }
- }
- DEBUG(4, ("did not find name '%s'", name));
- return FALSE;
-}
-
-static void
-realign_data(TERMTYPE * to, char **ext_Names, int ext_Booleans, int
- ext_Numbers, int ext_Strings)
-{
- int n, m, base;
- int limit = (to->ext_Booleans + to->ext_Numbers + to->ext_Strings);
-
- if (to->ext_Booleans != ext_Booleans) {
- to->num_Booleans += (ext_Booleans - to->ext_Booleans);
- to->Booleans = typeRealloc(char, to->num_Booleans, to->Booleans);
- for (n = to->ext_Booleans - 1,
- m = ext_Booleans - 1,
- base = to->num_Booleans - (m + 1); m >= 0; m--) {
- if (find_name(to->ext_Names, limit, ext_Names[m])) {
- to->Booleans[base + m] = to->Booleans[base + n--];
- } else {
- to->Booleans[base + m] = FALSE;
- }
- }
- to->ext_Booleans = ext_Booleans;
- }
- if (to->ext_Numbers != ext_Numbers) {
- to->num_Numbers += (ext_Numbers - to->ext_Numbers);
- to->Numbers = typeRealloc(short, to->num_Numbers, to->Numbers);
- for (n = to->ext_Numbers - 1,
- m = ext_Numbers - 1,
- base = to->num_Numbers - (m + 1); m >= 0; m--) {
- if (find_name(to->ext_Names, limit, ext_Names[m + ext_Booleans])) {
- to->Numbers[base + m] = to->Numbers[base + n--];
- } else {
- to->Numbers[base + m] = ABSENT_NUMERIC;
- }
- }
- to->ext_Numbers = ext_Numbers;
- }
- if (to->ext_Strings != ext_Strings) {
- to->num_Strings += (ext_Strings - to->ext_Strings);
- to->Strings = typeRealloc(char *, to->num_Strings, to->Strings);
- for (n = to->ext_Strings - 1,
- m = ext_Strings - 1,
- base = to->num_Strings - (m + 1); m >= 0; m--) {
- if (find_name(to->ext_Names, limit, ext_Names[m + ext_Booleans + ext_Numbers])) {
- to->Strings[base + m] = to->Strings[base + n--];
- } else {
- to->Strings[base + m] = ABSENT_STRING;
- }
- }
- to->ext_Strings = ext_Strings;
- }
-}
-
-/*
- * Returns the first index in ext_Names[] for the given token-type
- */
-static int
-_nc_first_ext_name(TERMTYPE * tp, int token_type)
-{
- int first;
-
- switch (token_type) {
- case BOOLEAN:
- first = 0;
- break;
- case NUMBER:
- first = tp->ext_Booleans;
- break;
- case STRING:
- first = tp->ext_Booleans + tp->ext_Numbers;
- break;
- default:
- first = 0;
- break;
- }
- return first;
-}
-
-/*
- * Returns the last index in ext_Names[] for the given token-type
- */
-static int
-_nc_last_ext_name(TERMTYPE * tp, int token_type)
-{
- int last;
-
- switch (token_type) {
- case BOOLEAN:
- last = tp->ext_Booleans;
- break;
- case NUMBER:
- last = tp->ext_Booleans + tp->ext_Numbers;
- break;
- default:
- case STRING:
- last = NUM_EXT_NAMES(tp);
- break;
- }
- return last;
-}
-
-/*
- * Lookup an entry from extended-names, returning -1 if not found
- */
-static int
-_nc_find_ext_name(TERMTYPE * tp, char *name, int token_type)
-{
- unsigned j;
- unsigned first = _nc_first_ext_name(tp, token_type);
- unsigned last = _nc_last_ext_name(tp, token_type);
-
- for (j = first; j < last; j++) {
- if (!strcmp(name, tp->ext_Names[j])) {
- return j;
- }
- }
- return -1;
-}
-
-/*
- * Translate an index into ext_Names[] into the corresponding index into data
- * (e.g., Booleans[]).
- */
-static int
-_nc_ext_data_index(TERMTYPE * tp, int n, int token_type)
-{
- switch (token_type) {
- case BOOLEAN:
- n += (tp->num_Booleans - tp->ext_Booleans);
- break;
- case NUMBER:
- n += (tp->num_Numbers - tp->ext_Numbers)
- - (tp->ext_Booleans);
- break;
- default:
- case STRING:
- n += (tp->num_Strings - tp->ext_Strings)
- - (tp->ext_Booleans + tp->ext_Numbers);
- }
- return n;
-}
-
-/*
- * Adjust tables to remove (not free) an extended name and its corresponding
- * data.
- */
-static bool
-_nc_del_ext_name(TERMTYPE * tp, char *name, int token_type)
-{
- int j;
- int first, last;
-
- if ((first = _nc_find_ext_name(tp, name, token_type)) >= 0) {
- last = NUM_EXT_NAMES(tp) - 1;
- for (j = first; j < last; j++) {
- tp->ext_Names[j] = tp->ext_Names[j + 1];
- }
- first = _nc_ext_data_index(tp, first, token_type);
- switch (token_type) {
- case BOOLEAN:
- last = tp->num_Booleans - 1;
- for (j = first; j < last; j++)
- tp->Booleans[j] = tp->Booleans[j + 1];
- tp->ext_Booleans -= 1;
- tp->num_Booleans -= 1;
- break;
- case NUMBER:
- last = tp->num_Numbers - 1;
- for (j = first; j < last; j++)
- tp->Numbers[j] = tp->Numbers[j + 1];
- tp->ext_Numbers -= 1;
- tp->num_Numbers -= 1;
- break;
- case STRING:
- last = tp->num_Strings - 1;
- for (j = first; j < last; j++)
- tp->Strings[j] = tp->Strings[j + 1];
- tp->ext_Strings -= 1;
- tp->num_Strings -= 1;
- break;
- }
- return TRUE;
- }
- return FALSE;
-}
-
-/*
- * Adjust tables to insert an extended name, making room for new data. The
- * index into the corresponding data array is returned.
- */
-static int
-_nc_ins_ext_name(TERMTYPE * tp, char *name, int token_type)
-{
- unsigned first = _nc_first_ext_name(tp, token_type);
- unsigned last = _nc_last_ext_name(tp, token_type);
- unsigned total = NUM_EXT_NAMES(tp) + 1;
- unsigned j, k;
-
- for (j = first; j < last; j++) {
- int cmp = strcmp(name, tp->ext_Names[j]);
- if (cmp == 0)
- /* already present */
- return _nc_ext_data_index(tp, j, token_type);
- if (cmp < 0) {
- break;
- }
- }
-
- tp->ext_Names = typeRealloc(char *, total, tp->ext_Names);
- for (k = total - 1; k > j; k--)
- tp->ext_Names[k] = tp->ext_Names[k - 1];
- tp->ext_Names[j] = name;
- j = _nc_ext_data_index(tp, j, token_type);
-
- switch (token_type) {
- case BOOLEAN:
- tp->ext_Booleans += 1;
- tp->num_Booleans += 1;
- tp->Booleans = typeRealloc(char, tp->num_Booleans, tp->Booleans);
- for (k = tp->num_Booleans - 1; k > j; k--)
- tp->Booleans[k] = tp->Booleans[k - 1];
- break;
- case NUMBER:
- tp->ext_Numbers += 1;
- tp->num_Numbers += 1;
- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
- for (k = tp->num_Numbers - 1; k > j; k--)
- tp->Numbers[k] = tp->Numbers[k - 1];
- break;
- case STRING:
- tp->ext_Strings += 1;
- tp->num_Strings += 1;
- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
- for (k = tp->num_Strings - 1; k > j; k--)
- tp->Strings[k] = tp->Strings[k - 1];
- break;
- }
- return j;
-}
-
-/*
- * Look for strings that are marked cancelled, which happen to be the same name
- * as a boolean or number. We'll get this as a special case when we get a
- * cancellation of a name that is inherited from another entry.
- */
-static void
-adjust_cancels(TERMTYPE * to, TERMTYPE * from)
-{
- int first = to->ext_Booleans + to->ext_Numbers;
- int last = first + to->ext_Strings;
- int j, k;
-
- for (j = first; j < last;) {
- char *name = to->ext_Names[j];
- unsigned j_str = to->num_Strings - first - to->ext_Strings;
-
- if (to->Strings[j + j_str] == CANCELLED_STRING) {
- if ((k = _nc_find_ext_name(from, to->ext_Names[j], BOOLEAN)) >= 0) {
- if (_nc_del_ext_name(to, name, STRING)
- || _nc_del_ext_name(to, name, NUMBER)) {
- k = _nc_ins_ext_name(to, name, BOOLEAN);
- to->Booleans[k] = FALSE;
- } else {
- j++;
- }
- } else if ((k = _nc_find_ext_name(from, to->ext_Names[j],
- NUMBER)) >= 0) {
- if (_nc_del_ext_name(to, name, STRING)
- || _nc_del_ext_name(to, name, BOOLEAN)) {
- k = _nc_ins_ext_name(to, name, NUMBER);
- to->Numbers[k] = CANCELLED_NUMERIC;
- } else {
- j++;
- }
- }
- } else {
- j++;
- }
- }
-}
-
-void
-_nc_align_termtype(TERMTYPE * to, TERMTYPE * from)
-{
- int na = NUM_EXT_NAMES(to);
- int nb = NUM_EXT_NAMES(from);
- int n;
- bool same;
- char **ext_Names;
- int ext_Booleans, ext_Numbers, ext_Strings;
-
- DEBUG(2, ("align_termtype to(%d:%s), from(%d:%s)", na, to->term_names,
- nb, from->term_names));
-
- if (na != 0 || nb != 0) {
- if ((na == nb) /* check if the arrays are equivalent */
- &&(to->ext_Booleans == from->ext_Booleans)
- && (to->ext_Numbers == from->ext_Numbers)
- && (to->ext_Strings == from->ext_Strings)) {
- for (n = 0, same = TRUE; n < na; n++) {
- if (strcmp(to->ext_Names[n], from->ext_Names[n])) {
- same = FALSE;
- break;
- }
- }
- if (same)
- return;
- }
- /*
- * This is where we pay for having a simple extension representation.
- * Allocate a new ext_Names array and merge the two ext_Names arrays
- * into it, updating to's counts for booleans, etc. Fortunately we do
- * this only for the terminfo compiler (tic) and comparer (infocmp).
- */
- ext_Names = typeMalloc(char *, na + nb);
-
- if (to->ext_Strings && (from->ext_Booleans + from->ext_Numbers))
- adjust_cancels(to, from);
-
- if (from->ext_Strings && (to->ext_Booleans + to->ext_Numbers))
- adjust_cancels(from, to);
-
- ext_Booleans = merge_names(ext_Names,
- to->ext_Names,
- to->ext_Booleans,
- from->ext_Names,
- from->ext_Booleans);
- ext_Numbers = merge_names(ext_Names + ext_Booleans,
- to->ext_Names
- + to->ext_Booleans,
- to->ext_Numbers,
- from->ext_Names
- + from->ext_Booleans,
- from->ext_Numbers);
- ext_Strings = merge_names(ext_Names + ext_Numbers + ext_Booleans,
- to->ext_Names
- + to->ext_Booleans
- + to->ext_Numbers,
- to->ext_Strings,
- from->ext_Names
- + from->ext_Booleans
- + from->ext_Numbers,
- from->ext_Strings);
- /*
- * Now we must reallocate the Booleans, etc., to allow the data to be
- * overlaid.
- */
- if (na != (ext_Booleans + ext_Numbers + ext_Strings)) {
- realign_data(to, ext_Names, ext_Booleans, ext_Numbers, ext_Strings);
- FreeIfNeeded(to->ext_Names);
- to->ext_Names = ext_Names;
- DEBUG(2, ("realigned %d extended names for '%s' (to)",
- NUM_EXT_NAMES(to), to->term_names));
- }
- if (nb != (ext_Booleans + ext_Numbers + ext_Strings)) {
- nb = (ext_Booleans + ext_Numbers + ext_Strings);
- realign_data(from, ext_Names, ext_Booleans, ext_Numbers, ext_Strings);
- from->ext_Names = typeRealloc(char *, nb, from->ext_Names);
- memcpy(from->ext_Names, ext_Names, sizeof(char *) * nb);
- DEBUG(2, ("realigned %d extended names for '%s' (from)",
- NUM_EXT_NAMES(from), from->term_names));
- }
- }
-}
-#endif
-
-void
-_nc_copy_termtype(TERMTYPE * dst, TERMTYPE * src)
-{
- int i;
-
- *dst = *src; /* ...to copy the sizes and string-tables */
- dst->Booleans = typeMalloc(char, NUM_BOOLEANS(dst));
- dst->Numbers = typeMalloc(short, NUM_NUMBERS(dst));
- dst->Strings = typeMalloc(char *, NUM_STRINGS(dst));
-
- /* FIXME: use memcpy for these and similar loops */
- for_each_boolean(i, dst)
- dst->Booleans[i] = src->Booleans[i];
- for_each_number(i, dst)
- dst->Numbers[i] = src->Numbers[i];
- for_each_string(i, dst)
- dst->Strings[i] = src->Strings[i];
-
- /* FIXME: we probably should also copy str_table and ext_str_table,
- * but tic and infocmp are not written to exploit that (yet).
- */
-
-#if NCURSES_XNAMES
- if ((i = NUM_EXT_NAMES(src)) != 0) {
- dst->ext_Names = typeMalloc(char *, i);
- memcpy(dst->ext_Names, src->ext_Names, i * sizeof(char *));
- } else {
- dst->ext_Names = 0;
- }
-#endif
-
-}
diff --git a/ncurses-5.2/ncurses/tinfo/captoinfo.c b/ncurses-5.2/ncurses/tinfo/captoinfo.c
deleted file mode 100644
index 5a0d2c5..0000000
--- a/ncurses-5.2/ncurses/tinfo/captoinfo.c
+++ /dev/null
@@ -1,831 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * captoinfo.c --- conversion between termcap and terminfo formats
- *
- * The captoinfo() code was swiped from Ross Ridge's mytinfo package,
- * adapted to fit ncurses by Eric S. Raymond <esr@snark.thyrsus.com>.
- *
- * There is just one entry point:
- *
- * char *captoinfo(n, s, parametrized)
- *
- * Convert value s for termcap string capability named n into terminfo
- * format.
- *
- * This code recognizes all the standard 4.4BSD %-escapes:
- *
- * %% output `%'
- * %d output value as in printf %d
- * %2 output value as in printf %2d
- * %3 output value as in printf %3d
- * %. output value as in printf %c
- * %+x add x to value, then do %.
- * %>xy if value > x then add y, no output
- * %r reverse order of two parameters, no output
- * %i increment by one, no output
- * %n exclusive-or all parameters with 0140 (Datamedia 2500)
- * %B BCD (16*(value/10)) + (value%10), no output
- * %D Reverse coding (value - 2*(value%16)), no output (Delta Data).
- *
- * Also, %02 and %03 are accepted as synonyms for %2 and %3.
- *
- * Besides all the standard termcap escapes, this translator understands
- * the following extended escapes:
- *
- * used by GNU Emacs termcap libraries
- * %a[+*-/=][cp]x GNU arithmetic.
- * %m xor the first two parameters by 0177
- * %b backup to previous parameter
- * %f skip this parameter
- *
- * used by the University of Waterloo (MFCF) termcap libraries
- * %-x subtract parameter FROM char x and output it as a char
- * %ax add the character x to parameter
- *
- * If #define WATERLOO is on, also enable these translations:
- *
- * %sx subtract parameter FROM the character x
- *
- * By default, this Waterloo translations are not compiled in, because
- * the Waterloo %s conflicts with the way terminfo uses %s in strings for
- * function programming.
- *
- * Note the two definitions of %a: the GNU definition is translated if the
- * characters after the 'a' are valid for it, otherwise the UW definition
- * is translated.
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-#define MAX_PUSHED 16 /* max # args we can push onto the stack */
-
-static int stack[MAX_PUSHED]; /* the stack */
-static int stackptr; /* the next empty place on the stack */
-static int onstack; /* the top of stack */
-static int seenm; /* seen a %m */
-static int seenn; /* seen a %n */
-static int seenr; /* seen a %r */
-static int param; /* current parameter */
-static char *dp; /* pointer to end of the converted string */
-
-static char *my_string;
-static size_t my_length;
-
-static char *
-init_string(void)
-/* initialize 'my_string', 'my_length' */
-{
- if (my_string == 0)
- my_string = typeMalloc(char, my_length = 256);
- if (my_string == 0)
- _nc_err_abort("Out of memory");
-
- *my_string = '\0';
- return my_string;
-}
-
-static char *
-save_string(char *d, const char *const s)
-{
- size_t have = (d - my_string);
- size_t need = have + strlen(s) + 2;
- if (need > my_length) {
- my_string = (char *) realloc(my_string, my_length = (need + need));
- if (my_string == 0)
- _nc_err_abort("Out of memory");
- d = my_string + have;
- }
- (void) strcpy(d, s);
- return d + strlen(d);
-}
-
-static inline char *
-save_char(char *s, char c)
-{
- static char temp[2];
- temp[0] = c;
- return save_string(s, temp);
-}
-
-static void
-push(void)
-/* push onstack on to the stack */
-{
- if (stackptr > MAX_PUSHED)
- _nc_warning("string too complex to convert");
- else
- stack[stackptr++] = onstack;
-}
-
-static void
-pop(void)
-/* pop the top of the stack into onstack */
-{
- if (stackptr == 0) {
- if (onstack == 0)
- _nc_warning("I'm confused");
- else
- onstack = 0;
- } else
- onstack = stack[--stackptr];
- param++;
-}
-
-static int
-cvtchar(register const char *sp)
-/* convert a character to a terminfo push */
-{
- unsigned char c = 0;
- int len;
-
- switch (*sp) {
- case '\\':
- switch (*++sp) {
- case '\'':
- case '$':
- case '\\':
- case '%':
- c = *sp;
- len = 2;
- break;
- case '\0':
- c = '\\';
- len = 1;
- break;
- case '0':
- case '1':
- case '2':
- case '3':
- len = 1;
- while (isdigit(*sp)) {
- c = 8 * c + (*sp++ - '0');
- len++;
- }
- break;
- default:
- c = *sp;
- len = 2;
- break;
- }
- break;
- case '^':
- c = (*++sp & 0x1f);
- len = 2;
- break;
- default:
- c = *sp;
- len = 1;
- }
- if (isgraph(c) && c != ',' && c != '\'' && c != '\\' && c != ':') {
- dp = save_string(dp, "%\'");
- dp = save_char(dp, c);
- dp = save_char(dp, '\'');
- } else {
- dp = save_string(dp, "%{");
- if (c > 99)
- dp = save_char(dp, c / 100 + '0');
- if (c > 9)
- dp = save_char(dp, ((int) (c / 10)) % 10 + '0');
- dp = save_char(dp, c % 10 + '0');
- dp = save_char(dp, '}');
- }
- return len;
-}
-
-static void
-getparm(int parm, int n)
-/* push n copies of param on the terminfo stack if not already there */
-{
- if (seenr) {
- if (parm == 1)
- parm = 2;
- else if (parm == 2)
- parm = 1;
- }
- if (onstack == parm) {
- if (n > 1) {
- _nc_warning("string may not be optimal");
- dp = save_string(dp, "%Pa");
- while (n--) {
- dp = save_string(dp, "%ga");
- }
- }
- return;
- }
- if (onstack != 0)
- push();
-
- onstack = parm;
-
- while (n--) {
- dp = save_string(dp, "%p");
- dp = save_char(dp, '0' + parm);
- }
-
- if (seenn && parm < 3) {
- dp = save_string(dp, "%{96}%^");
- }
-
- if (seenm && parm < 3) {
- dp = save_string(dp, "%{127}%^");
- }
-}
-
-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 */
-)
-{
- const char *capstart;
-
- stackptr = 0;
- onstack = 0;
- seenm = 0;
- seenn = 0;
- seenr = 0;
- param = 1;
-
- dp = init_string();
-
- /* skip the initial padding (if we haven't been told not to) */
- capstart = 0;
- if (s == 0)
- s = "";
- if (parametrized >= 0 && isdigit(*s))
- for (capstart = s;; s++)
- if (!(isdigit(*s) || *s == '*' || *s == '.'))
- break;
-
- while (*s != '\0') {
- switch (*s) {
- case '%':
- s++;
- if (parametrized < 1) {
- dp = save_char(dp, '%');
- break;
- }
- switch (*s++) {
- case '%':
- dp = save_char(dp, '%');
- break;
- case 'r':
- if (seenr++ == 1) {
- _nc_warning("saw %%r twice in %s", cap);
- }
- break;
- case 'm':
- if (seenm++ == 1) {
- _nc_warning("saw %%m twice in %s", cap);
- }
- break;
- case 'n':
- if (seenn++ == 1) {
- _nc_warning("saw %%n twice in %s", cap);
- }
- break;
- case 'i':
- dp = save_string(dp, "%i");
- break;
- case '6':
- case 'B':
- getparm(param, 1);
- dp = save_string(dp, "%{10}%/%{16}%*");
- getparm(param, 1);
- dp = save_string(dp, "%{10}%m%+");
- break;
- case '8':
- case 'D':
- getparm(param, 2);
- dp = save_string(dp, "%{2}%*%-");
- break;
- case '>':
- getparm(param, 2);
- /* %?%{x}%>%t%{y}%+%; */
- dp = save_string(dp, "%?");
- s += cvtchar(s);
- dp = save_string(dp, "%>%t");
- s += cvtchar(s);
- dp = save_string(dp, "%+%;");
- break;
- case 'a':
- if ((*s == '=' || *s == '+' || *s == '-'
- || *s == '*' || *s == '/')
- && (s[1] == 'p' || s[1] == 'c')
- && s[2] != '\0') {
- int l;
- l = 2;
- if (*s != '=')
- getparm(param, 1);
- if (s[1] == 'p') {
- getparm(param + s[2] - '@', 1);
- if (param != onstack) {
- pop();
- param--;
- }
- l++;
- } else
- l += cvtchar(s + 2);
- switch (*s) {
- case '+':
- dp = save_string(dp, "%+");
- break;
- case '-':
- dp = save_string(dp, "%-");
- break;
- case '*':
- dp = save_string(dp, "%*");
- break;
- case '/':
- dp = save_string(dp, "%/");
- break;
- case '=':
- if (seenr) {
- if (param == 1)
- onstack = 2;
- else if (param == 2)
- onstack = 1;
- else
- onstack = param;
- } else
- onstack = param;
- break;
- }
- s += l;
- break;
- }
- getparm(param, 1);
- s += cvtchar(s);
- dp = save_string(dp, "%+");
- break;
- case '+':
- getparm(param, 1);
- s += cvtchar(s);
- dp = save_string(dp, "%+%c");
- pop();
- break;
- case 's':
-#ifdef WATERLOO
- s += cvtchar(s);
- getparm(param, 1);
- dp = save_string(dp, "%-");
-#else
- getparm(param, 1);
- dp = save_string(dp, "%s");
- pop();
-#endif /* WATERLOO */
- break;
- case '-':
- s += cvtchar(s);
- getparm(param, 1);
- dp = save_string(dp, "%-%c");
- pop();
- break;
- case '.':
- getparm(param, 1);
- dp = save_string(dp, "%c");
- pop();
- break;
- case '0': /* not clear any of the historical termcaps did this */
- if (*s == '3')
- goto see03;
- else if (*s != '2')
- goto invalid;
- /* FALLTHRU */
- case '2':
- getparm(param, 1);
- dp = save_string(dp, "%2d");
- pop();
- break;
- case '3':
- see03:
- getparm(param, 1);
- dp = save_string(dp, "%3d");
- pop();
- break;
- case 'd':
- getparm(param, 1);
- dp = save_string(dp, "%d");
- pop();
- break;
- case 'f':
- param++;
- break;
- case 'b':
- param--;
- break;
- case '\\':
- dp = save_string(dp, "%\\");
- break;
- default:
- invalid:
- dp = save_char(dp, '%');
- s--;
- _nc_warning("unknown %% code %s (%#x) in %s",
- unctrl(*s), (*s) & 0xff, cap);
- break;
- }
- break;
-#ifdef REVISIBILIZE
- case '\\':
- dp = save_char(dp, *s++);
- dp = save_char(dp, *s++);
- break;
- case '\n':
- dp = save_string(dp, "\\n");
- s++;
- break;
- case '\t':
- dp = save_string(dp, "\\t");
- s++;
- break;
- case '\r':
- dp = save_string(dp, "\\r");
- s++;
- break;
- case '\200':
- dp = save_string(dp, "\\0");
- s++;
- break;
- case '\f':
- dp = save_string(dp, "\\f");
- s++;
- break;
- case '\b':
- dp = save_string(dp, "\\b");
- s++;
- break;
- case ' ':
- dp = save_string(dp, "\\s");
- s++;
- break;
- case '^':
- dp = save_string(dp, "\\^");
- s++;
- break;
- case ':':
- dp = save_string(dp, "\\:");
- s++;
- break;
- case ',':
- dp = save_string(dp, "\\,");
- s++;
- break;
- default:
- if (*s == '\033') {
- dp = save_string(dp, "\\E");
- s++;
- } else if (*s > 0 && *s < 32) {
- dp = save_char(dp, '^');
- dp = save_char(dp, *s + '@');
- s++;
- } else if (*s <= 0 || *s >= 127) {
- dp = save_char(dp, '\\');
- dp = save_char(dp, ((*s & 0300) >> 6) + '0');
- dp = save_char(dp, ((*s & 0070) >> 3) + '0');
- dp = save_char(dp, (*s & 0007) + '0');
- s++;
- } else
- dp = save_char(dp, *s++);
- break;
-#else
- default:
- dp = save_char(dp, *s++);
- break;
-#endif
- }
- }
-
- /*
- * Now, if we stripped off some leading padding, add it at the end
- * of the string as mandatory padding.
- */
- if (capstart) {
- dp = save_string(dp, "$<");
- for (s = capstart;; s++)
- if (isdigit(*s) || *s == '*' || *s == '.')
- dp = save_char(dp, *s);
- else
- break;
- dp = save_string(dp, "/>");
- }
-
- (void) save_char(dp, '\0');
- return (my_string);
-}
-
-/*
- * Check for an expression that corresponds to "%B" (BCD):
- * (parameter / 10) * 16 + (parameter % 10)
- */
-static int
-bcd_expression(const char *str)
-{
- /* leave this non-const for HPUX */
- static char fmt[] = "%%p%c%%{10}%%/%%{16}%%*%%p%c%%{10}%%m%%+";
- int len = 0;
- char ch1, ch2;
-
- if (sscanf(str, fmt, &ch1, &ch2) == 2
- && isdigit(ch1)
- && isdigit(ch2)
- && (ch1 == ch2)) {
- len = 28;
-#ifndef NDEBUG
- {
- char buffer[80];
- int tst;
- sprintf(buffer, fmt, ch1, ch2);
- tst = strlen(buffer) - 1;
- assert(len == tst);
- }
-#endif
- }
- return len;
-}
-
-static char *
-save_tc_char(char *bufptr, int c1)
-{
- char temp[80];
-
- if (is7bits(c1) && isprint(c1)) {
- if (c1 == ':' || c1 == '\\')
- bufptr = save_char(bufptr, '\\');
- bufptr = save_char(bufptr, c1);
- } else {
- if (c1 == (c1 & 0x1f)) /* iscntrl() returns T on 255 */
- (void) strcpy(temp, unctrl(c1));
- else
- (void) sprintf(temp, "\\%03o", c1);
- bufptr = save_string(bufptr, temp);
- }
- return bufptr;
-}
-
-static char *
-save_tc_inequality(char *bufptr, int c1, int c2)
-{
- bufptr = save_string(bufptr, "%>");
- bufptr = save_tc_char(bufptr, c1);
- bufptr = save_tc_char(bufptr, c2);
- return bufptr;
-}
-
-/*
- * Here are the capabilities infotocap assumes it can translate to:
- *
- * %% output `%'
- * %d output value as in printf %d
- * %2 output value as in printf %2d
- * %3 output value as in printf %3d
- * %. output value as in printf %c
- * %+c add character c to value, then do %.
- * %>xy if value > x then add y, no output
- * %r reverse order of two parameters, no output
- * %i increment by one, no output
- * %n exclusive-or all parameters with 0140 (Datamedia 2500)
- * %B BCD (16*(value/10)) + (value%10), no output
- * %D Reverse coding (value - 2*(value%16)), no output (Delta Data).
- * %m exclusive-or all parameters with 0177 (not in 4.4BSD)
- */
-
-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 */
-)
-{
- int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0;
- const char *padding;
- const char *trimmed = 0;
- char ch1 = 0, ch2 = 0;
- char *bufptr = init_string();
- int len;
- bool syntax_error = FALSE;
-
- /* we may have to move some trailing mandatory padding up front */
- padding = str + strlen(str) - 1;
- if (*padding == '>' && *--padding == '/') {
- --padding;
- while (isdigit(*padding) || *padding == '.' || *padding == '*')
- padding--;
- if (*padding == '<' && *--padding == '$')
- trimmed = padding;
- padding += 2;
-
- while (isdigit(*padding) || *padding == '.' || *padding == '*')
- bufptr = save_char(bufptr, *padding++);
- }
-
- for (; *str && str != trimmed; str++) {
- int c1, c2;
- char *cp = 0;
-
- if (str[0] == '\\' && (str[1] == '^' || str[1] == ',')) {
- bufptr = save_char(bufptr, *++str);
- } else if (str[0] == '$' && str[1] == '<') { /* discard padding */
- str += 2;
- while (isdigit(*str) || *str == '.' || *str == '*' || *str ==
- '/' || *str == '>')
- str++;
- --str;
- } else if (str[0] == '%' && str[1] == '%') { /* escaped '%' */
- bufptr = save_string(bufptr, "%%");
- } else if (*str != '%' || (parametrized < 1)) {
- bufptr = save_char(bufptr, *str);
- } else if (sscanf(str, "%%?%%{%d}%%>%%t%%{%d}%%+%%;", &c1, &c2) == 2) {
- str = strchr(str, ';');
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if (sscanf(str, "%%?%%{%d}%%>%%t%%'%c'%%+%%;", &c1, &ch2) == 2) {
- str = strchr(str, ';');
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if (sscanf(str, "%%?%%'%c'%%>%%t%%{%d}%%+%%;", &ch1, &c2) == 2) {
- str = strchr(str, ';');
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if (sscanf(str, "%%?%%'%c'%%>%%t%%'%c'%%+%%;", &ch1, &ch2) == 2) {
- str = strchr(str, ';');
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if ((len = bcd_expression(str)) != 0) {
- str += len;
- bufptr = save_string(bufptr, "%B");
- } else if ((sscanf(str, "%%{%d}%%+%%c", &c1) == 1
- || sscanf(str, "%%'%c'%%+%%c", &ch1) == 1)
- && (cp = strchr(str, '+'))) {
- str = cp + 2;
- bufptr = save_string(bufptr, "%+");
-
- if (ch1)
- c1 = ch1;
- bufptr = save_tc_char(bufptr, c1);
- }
- /* FIXME: this "works" for 'delta' */
- else if (strncmp(str, "%{2}%*%-", 8) == 0) {
- str += 7;
- bufptr = save_string(bufptr, "%D");
- } else if (strncmp(str, "%{96}%^", 7) == 0) {
- str += 6;
- if (saw_m++ == 0) {
- bufptr = save_string(bufptr, "%n");
- }
- } else if (strncmp(str, "%{127}%^", 8) == 0) {
- str += 7;
- if (saw_n++ == 0) {
- bufptr = save_string(bufptr, "%m");
- }
- } else { /* cm-style format element */
- str++;
- switch (*str) {
- case '%':
- bufptr = save_char(bufptr, '%');
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- bufptr = save_char(bufptr, '%');
- while (isdigit(*str))
- bufptr = save_char(bufptr, *str++);
- if (strchr("doxX.", *str)) {
- if (*str != 'd') /* termcap doesn't have octal, hex */
- return 0;
- }
- break;
-
- case 'd':
- bufptr = save_string(bufptr, "%d");
- break;
-
- case 'c':
- bufptr = save_string(bufptr, "%.");
- break;
-
- /*
- * %s isn't in termcap, but it's convenient to pass it through
- * so we can represent things like terminfo pfkey strings in
- * termcap notation.
- */
- case 's':
- bufptr = save_string(bufptr, "%s");
- break;
-
- case 'p':
- str++;
- if (*str == '1')
- seenone = 1;
- else if (*str == '2') {
- if (!seenone && !seentwo) {
- bufptr = save_string(bufptr, "%r");
- seentwo++;
- }
- } else if (*str >= '3')
- return (0);
- break;
-
- case 'i':
- bufptr = save_string(bufptr, "%i");
- break;
-
- default:
- bufptr = save_char(bufptr, *str);
- syntax_error = TRUE;
- break;
- } /* endswitch (*str) */
- } /* endelse (*str == '%') */
-
- if (*str == '\0')
- break;
-
- } /* endwhile (*str) */
-
- return (syntax_error ? NULL : my_string);
-}
-
-#ifdef MAIN
-
-int curr_line;
-
-int
-main(int argc, char *argv[])
-{
- int c, tc = FALSE;
-
- while ((c = getopt(argc, argv, "c")) != EOF)
- switch (c) {
- case 'c':
- tc = TRUE;
- break;
- }
-
- curr_line = 0;
- for (;;) {
- char buf[BUFSIZ];
-
- ++curr_line;
- if (fgets(buf, sizeof(buf), stdin) == 0)
- break;
- buf[strlen(buf) - 1] = '\0';
- _nc_set_source(buf);
-
- if (tc) {
- char *cp = _nc_infotocap("to termcap", buf, 1);
-
- if (cp)
- (void) fputs(cp, stdout);
- } else
- (void) fputs(_nc_captoinfo("to terminfo", buf, 1), stdout);
- (void) putchar('\n');
- }
- return (0);
-}
-#endif /* MAIN */
-
-/* captoinfo.c ends here */
diff --git a/ncurses-5.2/ncurses/tinfo/comp_error.c b/ncurses-5.2/ncurses/tinfo/comp_error.c
deleted file mode 100644
index b457ee4..0000000
--- a/ncurses-5.2/ncurses/tinfo/comp_error.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * comp_error.c -- Error message routines
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-bool _nc_suppress_warnings = FALSE;
-int _nc_curr_line = 0; /* current line # in input */
-int _nc_curr_col = 0; /* current column # in input */
-
-static const char *sourcename;
-static char termtype[MAX_NAME_SIZE+1];
-
-void _nc_set_source(const char *const name)
-{
- sourcename = name;
-}
-
-void _nc_set_type(const char *const name)
-{
- if (name)
- strncpy( termtype, name, MAX_NAME_SIZE );
- else
- termtype[0] = '\0';
-}
-
-void _nc_get_type(char *name)
-{
- strcpy( name, termtype );
-}
-
-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);
-}
-
-void _nc_warning(const char *const fmt, ...)
-{
-va_list argp;
-
- if (_nc_suppress_warnings)
- return;
-
- 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, ...)
-{
-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, ...)
-{
-va_list 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 defined(TRACE) || !defined(NDEBUG)
- abort();
-#else
- /* Dumping core in production code is not a good idea.
- */
- exit(EXIT_FAILURE);
-#endif
-}
diff --git a/ncurses-5.2/ncurses/tinfo/comp_expand.c b/ncurses-5.2/ncurses/tinfo/comp_expand.c
deleted file mode 100644
index 2abe0a7..0000000
--- a/ncurses-5.2/ncurses/tinfo/comp_expand.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-static int trailing_spaces(const char *src)
-{
- while (*src == ' ')
- src++;
- return *src == 0;
-}
-
-/* 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)))
-
-char *_nc_tic_expand(const char *srcp, bool tic_format, int numbers)
-{
-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;
-
- 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';
- }
- 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
- 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) + '@')
- 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++;
- }
-
- buffer[bufp] = '\0';
- return(buffer);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/comp_hash.c b/ncurses-5.2/ncurses/tinfo/comp_hash.c
deleted file mode 100644
index f21b262..0000000
--- a/ncurses-5.2/ncurses/tinfo/comp_hash.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * comp_hash.c --- Routines to deal with the hashtable of capability
- * names.
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <hashsize.h>
-
-#ifdef MAIN_PROGRAM
-#include <ctype.h>
-#undef DEBUG
-#define DEBUG(level, params) /*nothing*/
-#endif
-
-MODULE_ID("$Id$")
-
-static int hash_function(const char *);
-
-/*
- * _nc_make_hash_table()
- *
- * Takes the entries in table[] and hashes them into hash_table[]
- * by name. There are CAPTABSIZE entries in table[] and HASHTABSIZE
- * slots in hash_table[].
- *
- */
-
-#ifdef MAIN_PROGRAM
-
-#undef MODULE_ID
-#define MODULE_ID(id) /*nothing*/
-#include <tinfo/doalloc.c>
-
-static void _nc_make_hash_table(struct name_table_entry *table,
- struct name_table_entry **hash_table)
-{
-int i;
-int hashvalue;
-int collisions = 0;
-
- 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] != 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));
-}
-#endif
-
-
-/*
- * int hash_function(string)
- *
- * Computes the hashing function on the given string.
- *
- * The current hash function is the sum of each consectutive pair
- * of characters, taken as two-byte integers, mod Hashtabsize.
- *
- */
-
-static
-int
-hash_function(const char *string)
-{
-long sum = 0;
-
- DEBUG(9, ("hashing %s", string));
- while (*string) {
- sum += (long)(*string + (*(string + 1) << 8));
- string++;
- }
-
- DEBUG(9, ("sum is %ld", sum));
- return (int)(sum % HASHTABSIZE);
-}
-
-
-/*
- * struct name_table_entry *
- * find_entry(string)
- *
- * Finds the entry for the given string in the hash table if present.
- * Returns a pointer to the entry in the table or 0 if not found.
- *
- */
-
-#ifndef MAIN_PROGRAM
-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;
-
- 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];
- }
- }
-
- return (ptr);
-}
-
-/*
- * struct name_table_entry *
- * find_type_entry(string, type, table)
- *
- * Finds the first entry for the given name with the given type in the
- * given table if present (as distinct from find_entry, which finds the
- * the last entry regardless of type). You can use this if you detect
- * a name clash. It's slower, though. Returns a pointer to the entry
- * 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)
-{
-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);
- }
-
- return ((struct name_table_entry *)NULL);
-}
-#endif
-
-#ifdef MAIN_PROGRAM
-/*
- * This filter reads from standard input a list of tab-delimited columns,
- * (e.g., from Caps.filtered) computes the hash-value of a specified column and
- * writes the hashed tables to standard output.
- *
- * By compiling the hash table at build time, we're able to make the entire
- * set of terminfo and termcap tables readonly (and also provide some runtime
- * performance enhancement).
- */
-
-#define MAX_COLUMNS BUFSIZ /* this _has_ to be worst-case */
-
-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;
- }
- }
- return col ? list : 0;
-}
-
-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);
- }
-
- /*
- * 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++;
- }
- _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;
-}
-#endif
diff --git a/ncurses-5.2/ncurses/tinfo/comp_parse.c b/ncurses-5.2/ncurses/tinfo/comp_parse.c
deleted file mode 100644
index d659f3a..0000000
--- a/ncurses-5.2/ncurses/tinfo/comp_parse.c
+++ /dev/null
@@ -1,484 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * comp_parse.c -- parser driver loop and use handling.
- *
- * _nc_read_entry_source(FILE *, literal, bool, bool (*hook)())
- * _nc_resolve_uses(void)
- * _nc_free_entries(void)
- *
- * Use this code by calling _nc_read_entry_source() on as many source
- * files as you like (either terminfo or termcap syntax). If you
- * want use-resolution, call _nc_resolve_uses(). To free the list
- * storage, do _nc_free_entries().
- *
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-static void sanity_check(TERMTYPE *);
-void (*_nc_check_termtype) (TERMTYPE *) = sanity_check;
-
-/****************************************************************************
- *
- * Entry queue handling
- *
- ****************************************************************************/
-/*
- * The entry list is a doubly linked list with NULLs terminating the lists:
- *
- * --------- --------- ---------
- * | | | | | | offset
- * |-------| |-------| |-------|
- * | ----+-->| ----+-->| NULL | next
- * |-------| |-------| |-------|
- * | NULL |<--+---- |<--+---- | last
- * --------- --------- ---------
- * ^ ^
- * | |
- * | |
- * _nc_head _nc_tail
- */
-
-ENTRY *_nc_head = 0, *_nc_tail = 0;
-
-static void
-enqueue(ENTRY * ep)
-/* add an entry to the in-core list */
-{
- ENTRY *newp = _nc_copy_entry(ep);
-
- if (newp == 0)
- _nc_err_abort("Out of memory");
-
- newp->last = _nc_tail;
- _nc_tail = newp;
-
- newp->next = 0;
- if (newp->last)
- newp->last->next = newp;
-}
-
-void
-_nc_free_entries(ENTRY * headp)
-/* free the allocated storage consumed by list entries */
-{
- ENTRY *ep, *next;
-
- for (ep = headp; ep; ep = next) {
- /*
- * This conditional lets us disconnect storage from the list.
- * To do this, copy an entry out of the list, then null out
- * the string-table member in the original and any use entries
- * it references.
- */
- FreeIfNeeded(ep->tterm.str_table);
-
- next = ep->next;
-
- free(ep);
- if (ep == _nc_head)
- _nc_head = 0;
- if (ep == _nc_tail)
- _nc_tail = 0;
- }
-}
-
-static char *
-force_bar(char *dst, char *src)
-{
- if (strchr(src, '|') == 0) {
- size_t len = strlen(src);
- if (len > MAX_NAME_SIZE)
- len = MAX_NAME_SIZE;
- (void) strncpy(dst, src, len);
- (void) strcpy(dst + len, "|");
- src = dst;
- }
- return src;
-}
-
-bool
-_nc_entry_match(char *n1, char *n2)
-/* do any of the aliases in a pair of terminal names match? */
-{
- char *pstart, *qstart, *pend, *qend;
- char nc1[MAX_NAME_SIZE + 2], nc2[MAX_NAME_SIZE + 2];
-
- n1 = force_bar(nc1, n1);
- n2 = force_bar(nc2, n2);
-
- for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1)
- for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1)
- if ((pend - pstart == qend - qstart)
- && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0)
- return (TRUE);
-
- return (FALSE);
-}
-
-/****************************************************************************
- *
- * Entry compiler and resolution logic
- *
- ****************************************************************************/
-
-void
-_nc_read_entry_source(FILE * fp, char *buf,
- int literal, bool silent,
- bool(*hook) (ENTRY *))
-/* slurp all entries in the given file into core */
-{
- ENTRY thisentry;
- bool oldsuppress = _nc_suppress_warnings;
- int immediate = 0;
-
- if (silent)
- _nc_suppress_warnings = TRUE; /* shut the lexer up, too */
-
- _nc_reset_input(fp, buf);
- for (;;) {
- memset(&thisentry, 0, sizeof(thisentry));
- if (_nc_parse_entry(&thisentry, literal, silent) == ERR)
- break;
- if (!isalnum(thisentry.tterm.term_names[0]))
- _nc_err_abort("terminal names must start with letter or digit");
-
- /*
- * This can be used for immediate compilation of entries with no
- * use references to disk, so as to avoid chewing up a lot of
- * core when the resolution code could fetch entries off disk.
- */
- if (hook != NULLHOOK && (*hook) (&thisentry))
- immediate++;
- else
- enqueue(&thisentry);
- }
-
- if (_nc_tail) {
- /* set up the head pointer */
- for (_nc_head = _nc_tail; _nc_head->last; _nc_head = _nc_head->last)
- continue;
-
- DEBUG(1, ("head = %s", _nc_head->tterm.term_names));
- DEBUG(1, ("tail = %s", _nc_tail->tterm.term_names));
- }
-#ifdef TRACE
- else if (!immediate)
- DEBUG(1, ("no entries parsed"));
-#endif
-
- _nc_suppress_warnings = oldsuppress;
-}
-
-int
-_nc_resolve_uses(bool fullresolve)
-/* try to resolve all use capabilities */
-{
- ENTRY *qp, *rp, *lastread = 0;
- bool keepgoing;
- int i, j, unresolved, total_unresolved, multiples;
-
- DEBUG(2, ("RESOLUTION BEGINNING"));
-
- /*
- * Check for multiple occurrences of the same name.
- */
- multiples = 0;
- for_entry_list(qp) {
- int matchcount = 0;
-
- for_entry_list(rp)
- if (qp > rp
- && _nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) {
- matchcount++;
- if (matchcount == 1) {
- (void) fprintf(stderr, "Name collision between %s",
- _nc_first_name(qp->tterm.term_names));
- multiples++;
- }
- if (matchcount >= 1)
- (void) fprintf(stderr, " %s", _nc_first_name(rp->tterm.term_names));
- }
- if (matchcount >= 1)
- (void) putc('\n', stderr);
- }
- if (multiples > 0)
- return (FALSE);
-
- DEBUG(2, ("NO MULTIPLE NAME OCCURRENCES"));
-
- /*
- * First resolution stage: compute link pointers corresponding to names.
- */
- total_unresolved = 0;
- _nc_curr_col = -1;
- for_entry_list(qp) {
- unresolved = 0;
- for (i = 0; i < qp->nuses; i++) {
- bool foundit;
- char *child = _nc_first_name(qp->tterm.term_names);
- char *lookfor = qp->uses[i].name;
- long lookline = qp->uses[i].line;
-
- foundit = FALSE;
-
- _nc_set_type(child);
-
- /* first, try to resolve from in-core records */
- for_entry_list(rp)
- if (rp != qp
- && _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;
- }
-
- /* if that didn't work, try to merge in a compiled entry */
- if (!foundit) {
- TERMTYPE thisterm;
- char filename[PATH_MAX];
-
- memset(&thisterm, 0, sizeof(thisterm));
- if (_nc_read_entry(lookfor, filename, &thisterm) == 1) {
- DEBUG(2, ("%s: resolving use=%s (compiled)",
- child, lookfor));
-
- rp = typeMalloc(ENTRY, 1);
- if (rp == 0)
- _nc_err_abort("Out of memory");
- rp->tterm = thisterm;
- rp->nuses = 0;
- rp->next = lastread;
- lastread = rp;
-
- qp->uses[i].link = rp;
- foundit = TRUE;
- }
- }
-
- /* no good, mark this one unresolvable and complain */
- if (!foundit) {
- unresolved++;
- total_unresolved++;
-
- _nc_curr_line = lookline;
- _nc_warning("resolution of use=%s failed", lookfor);
- qp->uses[i].link = 0;
- }
- }
- }
- if (total_unresolved) {
- /* free entries read in off disk */
- _nc_free_entries(lastread);
- return (FALSE);
- }
-
- DEBUG(2, ("NAME RESOLUTION COMPLETED OK"));
-
- /*
- * OK, at this point all (char *) references in `name' mwmbers
- * have been successfully converred to (ENTRY *) pointers in
- * `link' members. Time to do the actual merges.
- */
- if (fullresolve) {
- do {
- TERMTYPE merged;
-
- keepgoing = FALSE;
-
- for_entry_list(qp) {
- if (qp->nuses > 0) {
- DEBUG(2, ("%s: attempting merge",
- _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
- * subsequent pass.
- */
- 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));
- goto incomplete;
- }
-
- /*
- * First, make sure there's no garbage in the
- * merge block. as a side effect, copy into
- * the merged entry the name field and string
- * table pointer.
- */
- _nc_copy_termtype(&merged, &(qp->tterm));
-
- /*
- * Now merge in each use entry in the proper
- * (reverse) order.
- */
- for (; qp->nuses; qp->nuses--)
- _nc_merge_entry(&merged,
- &qp->uses[qp->nuses - 1].link->tterm);
-
- /*
- * Now merge in the original entry.
- */
- _nc_merge_entry(&merged, &qp->tterm);
-
- /*
- * Replace the original entry with the merged one.
- */
- FreeIfNeeded(qp->tterm.Booleans);
- FreeIfNeeded(qp->tterm.Numbers);
- FreeIfNeeded(qp->tterm.Strings);
- qp->tterm = merged;
-
- /*
- * We know every entry is resolvable because name resolution
- * didn't bomb. So go back for another pass.
- */
- /* FALLTHRU */
- incomplete:
- keepgoing = TRUE;
- }
- }
- } while
- (keepgoing);
-
- DEBUG(2, ("MERGES COMPLETED OK"));
-
- /*
- * The exit condition of the loop above is such that all entries
- * must now be resolved. Now handle cancellations. In a resolved
- * 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))
- if (qp->tterm.Numbers[j] == CANCELLED_NUMERIC)
- qp->tterm.Numbers[j] = ABSENT_NUMERIC;
- for_each_string(j, &(qp->tterm))
- if (qp->tterm.Strings[j] == CANCELLED_STRING)
- qp->tterm.Strings[j] = ABSENT_STRING;
- }
- }
-
- /*
- * We'd like to free entries read in off disk at this point, but can't.
- * The merge_entry() code doesn't copy the strings in the use entries,
- * it just aliases them. If this ever changes, do a
- * free_entries(lastread) here.
- */
-
- DEBUG(2, ("RESOLUTION FINISHED"));
-
- if (fullresolve)
- if (_nc_check_termtype != 0) {
- _nc_curr_col = -1;
- for_entry_list(qp) {
- _nc_curr_line = qp->startline;
- _nc_set_type(_nc_first_name(qp->tterm.term_names));
- _nc_check_termtype(&qp->tterm);
- }
- DEBUG(2, ("SANITY CHECK FINISHED"));
- }
-
- return (TRUE);
-}
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed.
- */
-
-#undef CUR
-#define CUR tp->
-
-static void
-sanity_check(TERMTYPE * tp)
-{
- if (!PRESENT(exit_attribute_mode)) {
-#ifdef __UNUSED__ /* this casts too wide a net */
- 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)))
- _nc_warning("no exit_attribute_mode");
-#endif /* __UNUSED__ */
- PAIRED(enter_standout_mode, exit_standout_mode)
- PAIRED(enter_underline_mode, exit_underline_mode)
- }
-
- /* listed in structure-member order of first argument */
- PAIRED(enter_alt_charset_mode, exit_alt_charset_mode);
- ANDMISSING(enter_alt_charset_mode, acs_chars);
- ANDMISSING(exit_alt_charset_mode, acs_chars);
- ANDMISSING(enter_blink_mode, exit_attribute_mode);
- ANDMISSING(enter_bold_mode, exit_attribute_mode);
- PAIRED(exit_ca_mode, enter_ca_mode);
- PAIRED(enter_delete_mode, exit_delete_mode);
- ANDMISSING(enter_dim_mode, exit_attribute_mode);
- PAIRED(enter_insert_mode, exit_insert_mode);
- ANDMISSING(enter_secure_mode, exit_attribute_mode);
- ANDMISSING(enter_protected_mode, exit_attribute_mode);
- ANDMISSING(enter_reverse_mode, exit_attribute_mode);
- PAIRED(from_status_line, to_status_line);
- PAIRED(meta_off, meta_on);
-
- PAIRED(prtr_on, prtr_off);
- PAIRED(save_cursor, restore_cursor);
- PAIRED(enter_xon_mode, exit_xon_mode);
- PAIRED(enter_am_mode, exit_am_mode);
- ANDMISSING(label_off, label_on);
- PAIRED(display_clock, remove_clock);
- ANDMISSING(set_color_pair, initialize_pair);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/comp_scan.c b/ncurses-5.2/ncurses/tinfo/comp_scan.c
deleted file mode 100644
index dc0dd8f..0000000
--- a/ncurses-5.2/ncurses/tinfo/comp_scan.c
+++ /dev/null
@@ -1,797 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * comp_scan.c --- Lexical scanner for terminfo compiler.
- *
- * _nc_reset_input()
- * _nc_get_token()
- * _nc_panic_mode()
- * int _nc_syntax;
- * int _nc_curr_line;
- * long _nc_curr_file_pos;
- * long _nc_comment_start;
- * long _nc_comment_end;
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <term_entry.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Maximum length of string capability we'll accept before raising an error.
- * Yes, there is a real capability in /etc/termcap this long, an "is".
- */
-#define MAXCAPLEN 600
-
-#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};
-
-/*****************************************************************************
- *
- * Token-grabbing machinery
- *
- *****************************************************************************/
-
-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];
-
-#if NCURSES_EXT_FUNCS
-bool _nc_disable_period = FALSE; /* used by tic -a option */
-#endif
-
-static int last_char(void);
-static int next_char(void);
-static long stream_pos(void);
-static bool end_of_stream(void);
-static void push_back(char c);
-
-/* Assume we may be looking at a termcap-style continuation */
-static inline int
-eat_escaped_newline(int ch)
-{
- if (ch == '\\')
- while ((ch = next_char()) == '\n' || iswhite(ch))
- continue;
- return ch;
-}
-
-/*
- * int
- * get_token()
- *
- * Scans the input for the next token, storing the specifics in the
- * global structure 'curr_token' and returning one of the following:
- *
- * NAMES A line beginning in column 1. 'name'
- * will be set to point to everything up to but
- * not including the first separator on the line.
- * BOOLEAN An entry consisting of a name followed by
- * a separator. 'name' will be set to point to
- * the name of the capability.
- * NUMBER An entry of the form
- * name#digits,
- * 'name' will be set to point to the capability
- * name and 'valnumber' to the number given.
- * STRING An entry of the form
- * name=characters,
- * 'name' is set to the capability name and
- * 'valstring' to the string of characters, with
- * input translations done.
- * CANCEL An entry of the form
- * name@,
- * 'name' is set to the capability name and
- * 'valnumber' to -1.
- * EOF The end of the file has been reached.
- *
- * A `separator' is either a comma or a semicolon, depending on whether
- * we are in termcap or terminfo mode.
- *
- */
-
-int
-_nc_get_token(void)
-{
- static const char terminfo_punct[] = "@%&*!#";
- long number;
- int type;
- int ch;
- char *numchk;
- char numbuf[80];
- unsigned found;
- static char buffer[MAX_ENTRY_SIZE];
- char *ptr;
- int dot_flag = FALSE;
- long token_start;
-
- if (pushtype != NO_PUSHBACK) {
- int retval = pushtype;
-
- _nc_set_type(pushname);
- DEBUG(3, ("pushed-back token: `%s', class %d",
- _nc_curr_token.tk_name, pushtype));
-
- pushtype = NO_PUSHBACK;
- pushname[0] = '\0';
-
- /* currtok wasn't altered by _nc_push_token() */
- return (retval);
- }
-
- if (end_of_stream())
- return (EOF);
-
- start_token:
- token_start = stream_pos();
- while ((ch = next_char()) == '\n' || iswhite(ch))
- continue;
-
- ch = eat_escaped_newline(ch);
-
- if (ch == EOF)
- type = EOF;
- else {
- /* if this is a termcap entry, skip a leading separator */
- if (separator == ':' && ch == ':')
- ch = next_char();
-
- if (ch == '.'
-#if NCURSES_EXT_FUNCS
- && !_nc_disable_period
-#endif
- ) {
- dot_flag = TRUE;
- DEBUG(8, ("dot-flag set"));
-
- while ((ch = next_char()) == '.' || iswhite(ch))
- continue;
- }
-
- if (ch == EOF) {
- type = EOF;
- goto end_of_token;
- }
-
- /* have to make some punctuation chars legal for terminfo */
- if (!isalnum(ch)
-#if NCURSES_EXT_FUNCS
- && !(ch == '.' && _nc_disable_period)
-#endif
- && !strchr(terminfo_punct, (char) ch)) {
- _nc_warning("Illegal character (expected alphanumeric or %s) - %s",
- terminfo_punct, unctrl(ch));
- _nc_panic_mode(separator);
- goto start_token;
- }
-
- ptr = buffer;
- *(ptr++) = ch;
-
- if (first_column) {
- char *desc;
-
- _nc_comment_start = token_start;
- _nc_comment_end = _nc_curr_file_pos;
- _nc_start_line = _nc_curr_line;
-
- _nc_syntax = ERR;
- while ((ch = next_char()) != '\n') {
- if (ch == EOF)
- _nc_err_abort("premature EOF");
- else if (ch == ':' && last_char() != ',') {
- _nc_syntax = SYN_TERMCAP;
- separator = ':';
- break;
- } else if (ch == ',') {
- _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
- * either syntax.
- */
- /* FALLTHRU */
- } else
- ch = eat_escaped_newline(ch);
-
- *ptr++ = ch;
- }
- 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.
- */
- _nc_syntax = SYN_TERMCAP;
- separator = ':';
- } else if (_nc_syntax == SYN_TERMINFO) {
- /* throw away trailing /, *$/ */
- for (--ptr; iswhite(*ptr) || *ptr == ','; ptr--)
- continue;
- ptr[1] = '\0';
- }
-
- /*
- * This is the soonest we have the terminal name
- * fetched. Set up for following warning messages.
- */
- ptr = strchr(buffer, '|');
- if (ptr == (char *) NULL)
- ptr = buffer + strlen(buffer);
- ch = *ptr;
- *ptr = '\0';
- _nc_set_type(buffer);
- *ptr = ch;
-
- /*
- * Compute the boundary between the aliases and the
- * description field for syntax-checking purposes.
- */
- desc = strrchr(buffer, '|');
- if (desc) {
- if (*desc == '\0')
- _nc_warning("empty longname field");
- else if (strchr(desc, ' ') == (char *) NULL)
- _nc_warning("older tic versions may treat the description field as an alias");
- }
- if (!desc)
- desc = buffer + strlen(buffer);
-
- /*
- * Whitespace in a name field other than the long name
- * can confuse rdist and some termcap tools. Slashes
- * are a no-no. Other special characters can be
- * dangerous due to shell expansion.
- */
- for (ptr = buffer; ptr < desc; ptr++) {
- if (isspace(*ptr)) {
- _nc_warning("whitespace in name or alias field");
- break;
- } else if (*ptr == '/') {
- _nc_warning("slashes aren't allowed in names or aliases");
- break;
- } else if (strchr("$[]!*?", *ptr)) {
- _nc_warning("dubious character `%c' in name or alias field", *ptr);
- break;
- }
- }
-
- ptr = buffer;
-
- _nc_curr_token.tk_name = buffer;
- type = NAMES;
- } else {
- while ((ch = next_char()) != EOF) {
- if (!isalnum(ch)) {
- if (_nc_syntax == SYN_TERMINFO) {
- if (ch != '_')
- break;
- } else { /* allow ';' for "k;" */
- if (ch != ';')
- break;
- }
- }
- *(ptr++) = ch;
- }
-
- *ptr++ = '\0';
- switch (ch) {
- case ',':
- case ':':
- if (ch != separator)
- _nc_err_abort("Separator inconsistent with syntax");
- _nc_curr_token.tk_name = buffer;
- type = BOOLEAN;
- break;
- case '@':
- if ((ch = next_char()) != separator)
- _nc_warning("Missing separator after `%s', have %s",
- buffer, unctrl(ch));
- _nc_curr_token.tk_name = buffer;
- type = CANCEL;
- break;
-
- case '#':
- found = 0;
- while (isalnum(ch = next_char())) {
- numbuf[found++] = ch;
- if (found >= sizeof(numbuf) - 1)
- break;
- }
- 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");
- _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)
- _nc_warning("Missing separator");
- _nc_curr_token.tk_name = buffer;
- _nc_curr_token.tk_valstring = ptr;
- type = STRING;
- break;
-
- case EOF:
- type = EOF;
- break;
- default:
- /* just to get rid of the compiler warning */
- type = UNDEF;
- _nc_warning("Illegal character - %s", unctrl(ch));
- }
- } /* end else (first_column == FALSE) */
- } /* end else (ch != EOF) */
-
- end_of_token:
-
-#ifdef TRACE
- if (dot_flag == TRUE)
- DEBUG(8, ("Commented out "));
-
- if (_nc_tracing >= DEBUG_LEVEL(7)) {
- switch (type) {
- case BOOLEAN:
- _tracef("Token: Boolean; name='%s'",
- _nc_curr_token.tk_name);
- break;
-
- case NUMBER:
- _tracef("Token: Number; name='%s', value=%d",
- _nc_curr_token.tk_name,
- _nc_curr_token.tk_valnumber);
- break;
-
- case STRING:
- _tracef("Token: String; name='%s', value=%s",
- _nc_curr_token.tk_name,
- _nc_visbuf(_nc_curr_token.tk_valstring));
- break;
-
- case CANCEL:
- _tracef("Token: Cancel; name='%s'",
- _nc_curr_token.tk_name);
- break;
-
- case NAMES:
-
- _tracef("Token: Names; value='%s'",
- _nc_curr_token.tk_name);
- break;
-
- case EOF:
- _tracef("Token: End of file");
- break;
-
- default:
- _nc_warning("Bad token type");
- }
- }
-#endif
-
- if (dot_flag == TRUE) /* if commented out, use the next one */
- type = _nc_get_token();
-
- DEBUG(3, ("token: `%s', class %d", _nc_curr_token.tk_name, type));
-
- return (type);
-}
-
-/*
- * char
- * trans_string(ptr)
- *
- * Reads characters using next_char() until encountering a separator, nl,
- * or end-of-file. The returned value is the character which caused
- * reading to stop. The following translations are done on the input:
- *
- * ^X goes to ctrl-X (i.e. X & 037)
- * {\E,\n,\r,\b,\t,\f} go to
- * {ESCAPE,newline,carriage-return,backspace,tab,formfeed}
- * {\^,\\} go to {carat,backslash}
- * \ddd (for ddd = up to three octal digits) goes to the character ddd
- *
- * \e == \E
- * \0 == \200
- *
- */
-
-char
-_nc_trans_string(char *ptr, char *last)
-{
- int count = 0;
- int number;
- int i, c;
- chtype ch, last_ch = '\0';
- bool ignored = FALSE;
- bool long_warning = FALSE;
-
- while ((ch = c = next_char()) != (chtype) separator && c != EOF) {
- if (ptr == (last - 1))
- break;
- if ((_nc_syntax == SYN_TERMCAP) && c == '\n')
- break;
- if (ch == '^' && last_ch != '%') {
- ch = c = next_char();
- if (c == EOF)
- _nc_err_abort("Premature EOF");
-
- if (!(is7bits(ch) && isprint(ch))) {
- _nc_warning("Illegal ^ character - %s", unctrl(ch));
- }
- if (ch == '?') {
- *(ptr++) = '\177';
- if (_nc_tracing)
- _nc_warning("Allow ^? as synonym for \\177");
- } else {
- if ((ch &= 037) == 0)
- ch = 128;
- *(ptr++) = (char) (ch);
- }
- } else if (ch == '\\') {
- ch = c = next_char();
- if (c == EOF)
- _nc_err_abort("Premature 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");
-
- if (c < '0' || c > '7') {
- if (isdigit(c)) {
- _nc_warning("Non-octal digit `%c' in \\ sequence", c);
- /* allow the digit; it'll do less harm */
- } else {
- push_back((char) c);
- break;
- }
- }
-
- number = number * 8 + c - '0';
- }
-
- if (number == 0)
- number = 0200;
- *(ptr++) = (char) number;
- } else {
- switch (c) {
- case 'E':
- case 'e':
- *(ptr++) = '\033';
- break;
-
- case 'a':
- *(ptr++) = '\007';
- break;
-
- case 'l':
- case 'n':
- *(ptr++) = '\n';
- break;
-
- case 'r':
- *(ptr++) = '\r';
- break;
-
- case 'b':
- *(ptr++) = '\010';
- break;
-
- case 's':
- *(ptr++) = ' ';
- break;
-
- case 'f':
- *(ptr++) = '\014';
- break;
-
- case 't':
- *(ptr++) = '\t';
- break;
-
- case '\\':
- *(ptr++) = '\\';
- break;
-
- case '^':
- *(ptr++) = '^';
- break;
-
- case ',':
- *(ptr++) = ',';
- break;
-
- case ':':
- *(ptr++) = ':';
- break;
-
- case '\n':
- continue;
-
- default:
- _nc_warning("Illegal character %s in \\ sequence",
- unctrl(ch));
- *(ptr++) = (char) ch;
- } /* endswitch (ch) */
- } /* endelse (ch < '0' || ch > '7') */
- }
- /* end else if (ch == '\\') */
- else if (ch == '\n' && (_nc_syntax == SYN_TERMINFO)) {
- /* newlines embedded in a terminfo string are ignored */
- ignored = TRUE;
- } else {
- *(ptr++) = (char) ch;
- }
-
- if (!ignored) {
- last_ch = ch;
- count++;
- }
- ignored = FALSE;
-
- if (count > MAXCAPLEN && !long_warning) {
- _nc_warning("Very long string found. Missing separator?");
- long_warning = TRUE;
- }
- } /* end while */
-
- *ptr = '\0';
-
- return (ch);
-}
-
-/*
- * _nc_push_token()
- *
- * Push a token of given type so that it will be reread by the next
- * get_token() call.
- */
-
-void
-_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.
- */
- pushtype = tokclass;
- _nc_get_type(pushname);
-
- DEBUG(3, ("pushing token: `%s', class %d",
- _nc_curr_token.tk_name, pushtype));
-}
-
-/*
- * Panic mode error recovery - skip everything until a "ch" is found.
- */
-void
-_nc_panic_mode(char ch)
-{
- int c;
-
- for (;;) {
- c = next_char();
- if (c == ch)
- return;
- if (c == EOF)
- return;
- }
-}
-
-/*****************************************************************************
- *
- * Character-stream handling
- *
- *****************************************************************************/
-
-#define LEXBUFSIZ 1024
-
-static char *bufptr; /* otherwise, the input buffer pointer */
-static char *bufstart; /* start of buffer so we can compute offsets */
-static FILE *yyin; /* scanner's input file descriptor */
-
-/*
- * _nc_reset_input()
- *
- * Resets the input-reading routines. Used on initialization,
- * or after a seek has been done. Exactly one argument must be
- * non-null.
- */
-
-void
-_nc_reset_input(FILE * fp, char *buf)
-{
- pushtype = NO_PUSHBACK;
- pushname[0] = '\0';
- yyin = fp;
- bufstart = bufptr = buf;
- _nc_curr_file_pos = 0L;
- if (fp != 0)
- _nc_curr_line = 0;
- _nc_curr_col = 0;
-}
-
-/*
- * int last_char()
- *
- * Returns the final nonblank character on the current input buffer
- */
-static int
-last_char(void)
-{
- size_t len = strlen(bufptr);
- while (len--) {
- if (!isspace(bufptr[len]))
- return bufptr[len];
- }
- return 0;
-}
-
-/*
- * int next_char()
- *
- * Returns the next character in the input stream. Comments and leading
- * white space are stripped.
- *
- * The global state variable 'firstcolumn' is set TRUE if the character
- * returned is from the first column of the input line.
- *
- * The global variable _nc_curr_line is incremented for each new line.
- * The global variable _nc_curr_file_pos is set to the file offset of the
- * beginning of each line.
- */
-
-static int
-next_char(void)
-{
- if (!yyin) {
- if (*bufptr == '\0')
- return (EOF);
- if (*bufptr == '\n') {
- _nc_curr_line++;
- _nc_curr_col = 0;
- }
- } else if (!bufptr || !*bufptr) {
- /*
- * In theory this could be recoded to do its I/O one
- * character at a time, saving the buffer space. In
- * practice, this turns out to be quite hard to get
- * completely right. Try it and see. If you succeed,
- * don't forget to hack push_back() correspondingly.
- */
- static char line[LEXBUFSIZ];
- 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';
- }
- }
-
- /*
- * 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);
- }
-
- first_column = (bufptr == bufstart);
-
- _nc_curr_col++;
- return (*bufptr++);
-}
-
-static void
-push_back(char c)
-/* push a character back onto the input stream */
-{
- if (bufptr == bufstart)
- _nc_syserr_abort("Can't backspace off beginning of line");
- *--bufptr = c;
-}
-
-static long
-stream_pos(void)
-/* return our current character position in the input stream */
-{
- return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0));
-}
-
-static bool
-end_of_stream(void)
-/* are we at end of input? */
-{
- return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
- ? TRUE : FALSE);
-}
-
-/* comp_scan.c ends here */
diff --git a/ncurses-5.2/ncurses/tinfo/doalloc.c b/ncurses-5.2/ncurses/tinfo/doalloc.c
deleted file mode 100644
index 77668a4..0000000
--- a/ncurses-5.2/ncurses/tinfo/doalloc.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * 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).
- *
- * Also if realloc fails, we discard the old memory to avoid leaks.
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-void *_nc_doalloc(void *oldp, size_t amount)
-{
- 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);
- }
- return newp;
-}
-
-#if !HAVE_STRDUP
-char *_nc_strdup(const char *src)
-{
- char *dst;
- if (src != 0) {
- dst = typeMalloc(char, strlen(src) + 1);
- if (dst != 0) {
- (void)strcpy(dst, src);
- }
- } else {
- dst = 0;
- }
- return dst;
-}
-#endif
diff --git a/ncurses-5.2/ncurses/tinfo/free_ttype.c b/ncurses-5.2/ncurses/tinfo/free_ttype.c
deleted file mode 100644
index ea7585c..0000000
--- a/ncurses-5.2/ncurses/tinfo/free_ttype.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1999 *
- ****************************************************************************/
-
-
-/*
- * free_ttype.c -- allocation functions for TERMTYPE
- *
- * _nc_free_termtype()
- * use_extended_names()
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-void _nc_free_termtype(TERMTYPE *ptr)
-{
- FreeIfNeeded(ptr->str_table);
- FreeIfNeeded(ptr->term_names);
- FreeIfNeeded(ptr->Booleans);
- FreeIfNeeded(ptr->Numbers);
- FreeIfNeeded(ptr->Strings);
-#if NCURSES_XNAMES
- FreeIfNeeded(ptr->ext_str_table);
- FreeIfNeeded(ptr->ext_Names);
-#endif
- memset(ptr, 0, sizeof(TERMTYPE));
-}
-
-#if NCURSES_XNAMES
-bool _nc_user_definable = TRUE;
-
-int use_extended_names(bool flag)
-{
- int oldflag = _nc_user_definable;
- _nc_user_definable = flag;
- return oldflag;
-}
-#endif
diff --git a/ncurses-5.2/ncurses/tinfo/getenv_num.c b/ncurses-5.2/ncurses/tinfo/getenv_num.c
deleted file mode 100644
index 5fd8561..0000000
--- a/ncurses-5.2/ncurses/tinfo/getenv_num.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-/*
- * getenv_num.c -- obtain a number from the environment
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-int
-_nc_getenv_num(const char *name)
-{
- 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;
-
- return (int) value;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/home_terminfo.c b/ncurses-5.2/ncurses/tinfo/home_terminfo.c
deleted file mode 100644
index ca8be5f..0000000
--- a/ncurses-5.2/ncurses/tinfo/home_terminfo.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998,2000 *
- ****************************************************************************/
-
-/*
- * home_terminfo.c -- return the $HOME/.terminfo string, expanded
- */
-
-#include <curses.priv.h>
-#include <tic.h>
-
-MODULE_ID("$Id$");
-
-#define my_length (strlen(home) + sizeof(PRIVATE_INFO))
-
-/* ncurses extension...fall back on user's private directory */
-
-char *
-_nc_home_terminfo(void)
-{
- char *home;
- static char *temp = 0;
-
- if (use_terminfo_vars()) {
- if (temp == 0) {
- if ((home = getenv("HOME")) != 0
- && my_length <= PATH_MAX) {
- temp = typeMalloc(char, my_length);
- if (temp == 0)
- _nc_err_abort("Out of memory");
- (void) sprintf(temp, PRIVATE_INFO, home);
- }
- }
- return temp;
- }
- return 0;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/init_keytry.c b/ncurses-5.2/ncurses/tinfo/init_keytry.c
deleted file mode 100644
index e34115d..0000000
--- a/ncurses-5.2/ncurses/tinfo/init_keytry.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <term.h> /* keypad_xmit, keypad_local, meta_on, meta_off */
- /* cursor_visible,cursor_normal,cursor_invisible */
-#include <tic.h> /* struct tinfo_fkeys */
-
-MODULE_ID("$Id$")
-
-/*
-** _nc_init_keytry()
-**
-** Construct the try for the current terminal's keypad keys.
-**
-*/
-
-#if BROKEN_LINKER
-#undef _nc_tinfo_fkeys
-#endif
-
-/* LINT_PREPRO
-#if 0*/
-#include <init_keytry.h>
-/* LINT_PREPRO
-#endif*/
-
-#if BROKEN_LINKER
-struct tinfo_fkeys *_nc_tinfo_fkeysf(void)
-{
- return _nc_tinfo_fkeys;
-}
-#endif
-
-void _nc_init_keytry(void)
-{
- 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.
- */
-
- 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
- _nc_trace_tries(SP->_keytry);
-#endif
-}
diff --git a/ncurses-5.2/ncurses/tinfo/keys.list b/ncurses-5.2/ncurses/tinfo/keys.list
deleted file mode 100644
index 3ad8918..0000000
--- a/ncurses-5.2/ncurses/tinfo/keys.list
+++ /dev/null
@@ -1,158 +0,0 @@
-# $Id$
-# 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
diff --git a/ncurses-5.2/ncurses/tinfo/lib_acs.c b/ncurses-5.2/ncurses/tinfo/lib_acs.c
deleted file mode 100644
index a24d338..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_acs.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-
-#include <curses.priv.h>
-#include <term.h> /* ena_acs, acs_chars */
-
-MODULE_ID("$Id$")
-
-chtype acs_map[ACS_LEN] = { 0 };
-
-void _nc_init_acs(void)
-{
- T(("initializing ACS map"));
-
- /*
- * 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))
-
- 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;
- }
- }
-#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));
- }
-#endif /* TRACE */
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_baudrate.c b/ncurses-5.2/ncurses/tinfo/lib_baudrate.c
deleted file mode 100644
index cb0c53c..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_baudrate.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_baudrate.c
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term, pad_char */
-#include <termcap.h> /* ospeed */
-
-MODULE_ID("$Id$")
-
-/*
- * int
- * baudrate()
- *
- * Returns the current terminal's baud rate.
- *
- */
-
-struct speed {
- int s; /* value for 'ospeed' is an index */
- int sp; /* the actual speed */
-};
-
-static struct speed const speeds[] =
-{
- {B0, 0},
- {B50, 50},
- {B75, 75},
- {B110, 110},
- {B134, 134},
- {B150, 150},
- {B200, 200},
- {B300, 300},
- {B600, 600},
- {B1200, 1200},
- {B1800, 1800},
- {B2400, 2400},
- {B4800, 4800},
- {B9600, 9600},
-#ifdef B19200
- {B19200, 19200},
-#else
-#ifdef EXTA
- {EXTA, 19200},
-#endif
-#endif
-#ifdef B38400
- {B38400, 38400},
-#else
-#ifdef EXTB
- {EXTB, 38400},
-#endif
-#endif
-#ifdef B57600
- {B57600, 57600},
-#endif
-#ifdef B115200
- {B115200, 115200},
-#endif
-#ifdef B230400
- {B230400, 230400},
-#endif
-#ifdef B460800
- {B460800, 460800},
-#endif
-};
-
-int
-_nc_baudrate(int OSpeed)
-{
- static int last_OSpeed;
- static int last_baudrate;
-
- int result;
- unsigned i;
-
- if (OSpeed == last_OSpeed) {
- result = last_baudrate;
- } else {
- result = ERR;
- if (OSpeed >= 0) {
- for (i = 0; i < SIZEOF(speeds); i++) {
- if (speeds[i].s == OSpeed) {
- result = speeds[i].sp;
- break;
- }
- }
- }
- last_baudrate = result;
- }
- return (result);
-}
-
-int
-_nc_ospeed(int BaudRate)
-{
- int result = 1;
- unsigned i;
-
- if (BaudRate >= 0) {
- for (i = 0; i < SIZEOF(speeds); i++) {
- if (speeds[i].sp == BaudRate) {
- result = speeds[i].s;
- break;
- }
- }
- }
- return (result);
-}
-
-int
-baudrate(void)
-{
- int result;
-
- T((T_CALLED("baudrate()")));
-
- /*
- * In debugging, allow the environment symbol to override when we're
- * redirecting to a file, so we can construct repeatable test-cases
- * that take into account costs that depend on baudrate.
- */
-#ifdef TRACE
- if (SP && !isatty(fileno(SP->_ofp))
- && getenv("BAUDRATE") != 0) {
- int ret;
- if ((ret = _nc_getenv_num("BAUDRATE")) <= 0)
- ret = 9600;
- ospeed = _nc_ospeed(ret);
- returnCode(ret);
- } else
-#endif
-
-#ifdef TERMIOS
- ospeed = cfgetospeed(&cur_term->Nttyb);
-#else
- ospeed = cur_term->Nttyb.sg_ospeed;
-#endif
- result = _nc_baudrate(ospeed);
- if (cur_term != 0)
- cur_term->_baudrate = result;
-
- returnCode(result);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_cur_term.c b/ncurses-5.2/ncurses/tinfo/lib_cur_term.c
deleted file mode 100644
index e67e64e..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_cur_term.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1997 *
- ****************************************************************************/
-/*
- * Module that "owns" the 'cur_term' variable:
- *
- * TERMINAL *set_curterm(TERMINAL *)
- * int del_curterm(TERMINAL *)
- */
-
-#include <curses.priv.h>
-#include <term_entry.h> /* TTY, cur_term */
-#include <termcap.h> /* ospeed */
-
-MODULE_ID("$Id$")
-
-TERMINAL *cur_term = 0;
-
-TERMINAL *set_curterm(TERMINAL *termp)
-{
- 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;
-}
-
-int del_curterm(TERMINAL *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);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_data.c b/ncurses-5.2/ncurses/tinfo/lib_data.c
deleted file mode 100644
index ccd5a75..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_data.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_data.c
-**
-** Common data that may/may not be allocated, but is referenced globally
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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;
-
-SCREEN *_nc_screen_chain = 0;
-
-/*
- * The variable 'SP' will be defined as a function on systems that cannot link
- * data-only modules, since it is used in a lot of places within ncurses and we
- * cannot guarantee that any application will use any particular function. We
- * put the WINDOW variables in this module, because it appears that any
- * application that uses them will also use 'SP'.
- *
- * This module intentionally does not reference other ncurses modules, to avoid
- * module coupling that increases the size of the executable.
- */
-#if BROKEN_LINKER
-static SCREEN *my_screen;
-
-SCREEN *_nc_screen(void)
-{
- return my_screen;
-}
-
-int _nc_alloc_screen(void)
-{
- return ((my_screen = typeCalloc(SCREEN, 1)) != 0);
-}
-
-void _nc_set_screen(SCREEN *sp)
-{
- my_screen = sp;
-}
-#else
-SCREEN *SP = NULL; /* Some linkers require initialized data... */
-#endif
diff --git a/ncurses-5.2/ncurses/tinfo/lib_has_cap.c b/ncurses-5.2/ncurses/tinfo/lib_has_cap.c
deleted file mode 100644
index 42d8e10..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_has_cap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_has_cap.c
-**
-** The routines to query terminal capabilities
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-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));
-}
-
-bool has_il(void)
-{
- T((T_CALLED("has_il()")));
- returnCode(cur_term
- && (insert_line || parm_insert_line)
- && (delete_line || parm_delete_line));
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_kernel.c b/ncurses-5.2/ncurses/tinfo/lib_kernel.c
deleted file mode 100644
index 06bc183..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_kernel.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * lib_kernel.c
- *
- * Misc. low-level routines:
- * erasechar()
- * killchar()
- * flushinp()
- *
- * The baudrate() and delay_output() functions could logically live here,
- * but are in other modules to reduce the static-link size of programs
- * that use only these facilities.
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id$")
-
-/*
- * erasechar()
- *
- * Return erase character as given in cur_term->Ottyb.
- *
- */
-
-char
-erasechar(void)
-{
- T((T_CALLED("erasechar()")));
-
- if (cur_term != 0) {
-#ifdef TERMIOS
- returnCode(cur_term->Ottyb.c_cc[VERASE]);
-#else
- returnCode(cur_term->Ottyb.sg_erase);
-#endif
- }
- returnCode(ERR);
-}
-
-
-
-/*
- * killchar()
- *
- * Return kill character as given in cur_term->Ottyb.
- *
- */
-
-char
-killchar(void)
-{
- T((T_CALLED("killchar()")));
-
- if (cur_term != 0) {
-#ifdef TERMIOS
- returnCode(cur_term->Ottyb.c_cc[VKILL]);
-#else
- returnCode(cur_term->Ottyb.sg_kill);
-#endif
- }
- returnCode(ERR);
-}
-
-
-
-/*
- * flushinp()
- *
- * Flush any input on cur_term->Filedes
- *
- */
-
-int flushinp(void)
-{
- T((T_CALLED("flushinp()")));
-
- if (cur_term != 0) {
-#ifdef TERMIOS
- tcflush(cur_term->Filedes, TCIFLUSH);
-#else
- errno = 0;
- do {
- ioctl(cur_term->Filedes, TIOCFLUSH, 0);
- } while
- (errno == EINTR);
-#endif
- if (SP) {
- SP->_fifohead = -1;
- SP->_fifotail = 0;
- SP->_fifopeek = 0;
- }
- returnCode(OK);
- }
- returnCode(ERR);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_longname.c b/ncurses-5.2/ncurses/tinfo/lib_longname.c
deleted file mode 100644
index e965942..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_longname.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
-** lib_longname.c
-**
-** The routine longname().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-char *
-longname(void)
-{
-char *ptr;
-
- T((T_CALLED("longname()")));
-
- for (ptr = ttytype + strlen(ttytype); ptr > ttytype; ptr--)
- if (*ptr == '|')
- returnPtr(ptr + 1);
-
- returnPtr(ttytype);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_napms.c b/ncurses-5.2/ncurses/tinfo/lib_napms.c
deleted file mode 100644
index e2119a4..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_napms.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_napms.c
- *
- * The routine napms.
- *
- */
-
-#include <curses.priv.h>
-
-#if HAVE_NANOSLEEP
-#include <time.h>
-#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
-
-MODULE_ID("$Id$")
-
-int
-napms(int ms)
-{
- T((T_CALLED("napms(%d)"), ms));
-
-#if HAVE_NANOSLEEP
- {
- struct timespec ts;
- ts.tv_sec = ms / 1000;
- 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);
- }
-#endif
- returnCode(OK);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_options.c b/ncurses-5.2/ncurses/tinfo/lib_options.c
deleted file mode 100644
index 9c38552..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_options.c
+++ /dev/null
@@ -1,255 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_options.c
-**
-** The routines to handle option setting.
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-int
-idlok(WINDOW *win, bool flag)
-{
- T((T_CALLED("idlok(%p,%d)"), win, flag));
-
- if (win) {
- _nc_idlok = win->_idlok = (flag && (has_il() || change_scroll_region));
- returnCode(OK);
- } else
- returnCode(ERR);
-}
-
-void
-idcok(WINDOW *win, bool flag)
-{
- T((T_CALLED("idcok(%p,%d)"), win, flag));
-
- if (win)
- _nc_idcok = win->_idcok = (flag && has_ic());
-
- returnVoid;
-}
-
-int
-halfdelay(int t)
-{
- T((T_CALLED("halfdelay(%d)"), t));
-
- if (t < 1 || t > 255)
- returnCode(ERR);
-
- cbreak();
- SP->_cbreak = t + 1;
- returnCode(OK);
-}
-
-int
-nodelay(WINDOW *win, bool flag)
-{
- T((T_CALLED("nodelay(%p,%d)"), win, flag));
-
- if (win) {
- if (flag == TRUE)
- win->_delay = 0;
- else
- win->_delay = -1;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
-
-int
-notimeout(WINDOW *win, bool f)
-{
- T((T_CALLED("notimout(%p,%d)"), win, f));
-
- if (win) {
- win->_notimeout = f;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
-
-void
-wtimeout(WINDOW *win, int delay)
-{
- T((T_CALLED("wtimeout(%p,%d)"), win, delay));
-
- if (win) {
- win->_delay = delay;
- }
-}
-
-int
-keypad(WINDOW *win, bool flag)
-{
- T((T_CALLED("keypad(%p,%d)"), win, flag));
-
- if (win) {
- win->_use_keypad = flag;
- returnCode(_nc_keypad(flag));
- } else
- returnCode(ERR);
-}
-
-int
-meta(WINDOW *win GCC_UNUSED, bool flag)
-{
- /* Ok, we stay relaxed and don't signal an error if win is NULL */
- T((T_CALLED("meta(%p,%d)"), win, flag));
-
- SP->_use_meta = flag;
-
- if (flag && meta_on) {
- TPUTS_TRACE("meta_on");
- putp(meta_on);
- } else if (!flag && meta_off) {
- TPUTS_TRACE("meta_off");
- putp(meta_off);
- }
- returnCode(OK);
-}
-
-/* curs_set() moved here to narrow the kernel interface */
-
-int
-curs_set(int vis)
-{
- int cursor = SP->_cursor;
-
- T((T_CALLED("curs_set(%d)"), vis));
-
- if (vis < 0 || vis > 2)
- returnCode(ERR);
-
- if (vis == cursor)
- returnCode(cursor);
-
- switch (vis) {
- case 2:
- if (cursor_visible) {
- TPUTS_TRACE("cursor_visible");
- putp(cursor_visible);
- } else
- returnCode(ERR);
- break;
- case 1:
- if (cursor_normal) {
- TPUTS_TRACE("cursor_normal");
- putp(cursor_normal);
- } else
- returnCode(ERR);
- break;
- case 0:
- if (cursor_invisible) {
- TPUTS_TRACE("cursor_invisible");
- putp(cursor_invisible);
- } else
- returnCode(ERR);
- break;
- }
- SP->_cursor = vis;
- _nc_flush();
-
- returnCode(cursor == -1 ? 1 : cursor);
-}
-
-int
-typeahead(int fd)
-{
- T((T_CALLED("typeahead(%d)"), fd));
- SP->_checkfd = fd;
- returnCode(OK);
-}
-
-/*
-** has_key()
-**
-** Return TRUE if the current terminal has the given key
-**
-*/
-
-#if NCURSES_EXT_FUNCS
-static int
-has_key_internal(int keycode, struct tries *tp)
-{
- if (tp == 0)
- return (FALSE);
- else if (tp->value == keycode)
- return (TRUE);
- else
- return (has_key_internal(keycode, tp->child)
- || has_key_internal(keycode, tp->sibling));
-}
-
-int
-has_key(int keycode)
-{
- T((T_CALLED("has_key(%d)"), keycode));
- returnCode(has_key_internal(keycode, SP->_keytry));
-}
-#endif /* NCURSES_EXT_FUNCS */
-
-/* Turn the keypad on/off
- *
- * Note: we flush the output because changing this mode causes some terminals
- * to emit different escape sequences for cursor and keypad keys. If we don't
- * flush, then the next wgetch may get the escape sequence that corresponds to
- * the terminal state _before_ switching modes.
- */
-int
-_nc_keypad(bool flag)
-{
- if (flag && keypad_xmit) {
- TPUTS_TRACE("keypad_xmit");
- putp(keypad_xmit);
- _nc_flush();
- } else if (!flag && keypad_local) {
- TPUTS_TRACE("keypad_local");
- putp(keypad_local);
- _nc_flush();
- }
-
- if (flag && !SP->_tried) {
- _nc_init_keytry();
- SP->_tried = TRUE;
- }
- return (OK);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_print.c b/ncurses-5.2/ncurses/tinfo/lib_print.c
deleted file mode 100644
index b32d858..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_print.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-#include <curses.priv.h>
-
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-int mcprint(char *data, int len)
-/* ship binary character data to the printer via mc4/mc5/mc5p */
-{
- char *mybuf, *switchon;
- size_t onsize, offsize, res;
-
- errno = 0;
- if (!cur_term || (!prtr_non && (!prtr_on || !prtr_off)))
- {
- errno = ENODEV;
- return(ERR);
- }
-
- if (prtr_non)
- {
- switchon = tparm(prtr_non, len);
- onsize = strlen(switchon);
- offsize = 0;
- }
- else
- {
- switchon = prtr_on;
- onsize = strlen(prtr_on);
- offsize = strlen(prtr_off);
- }
-
- if ((mybuf = typeMalloc(char, onsize + len + offsize + 1)) == (char *)0)
- {
- errno = ENOMEM;
- return(ERR);
- }
-
- (void) strcpy(mybuf, switchon);
- memcpy(mybuf + onsize, data, len);
- if (offsize)
- (void) strcpy(mybuf + onsize + len, prtr_off);
-
- /*
- * We're relying on the atomicity of UNIX writes here. The
- * danger is that output from a refresh() might get interspersed
- * with the printer data after the write call returns but before the
- * data has actually been shipped to the terminal. If the write(2)
- * operation is truly atomic we're protected from this.
- */
- res = write(cur_term->Filedes, mybuf, onsize + len + offsize);
-
- /*
- * By giving up our scheduler slot here we increase the odds that the
- * kernel will ship the contiguous clist items from the last write
- * immediately.
- */
- (void) sleep(0);
-
- free(mybuf);
- return(res);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_raw.c b/ncurses-5.2/ncurses/tinfo/lib_raw.c
deleted file mode 100644
index 2f60540..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_raw.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * raw.c
- *
- * Routines:
- * raw()
- * cbreak()
- * noraw()
- * nocbreak()
- * qiflush()
- * noqiflush()
- * intrflush()
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id$")
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#if HAVE_SYS_TERMIO_H
-#include <sys/termio.h> /* needed for ISC */
-#endif
-
-#ifdef __EMX__
-#include <io.h>
-#endif
-
-#define COOKED_INPUT (IXON|BRKINT|PARMRK)
-
-#ifdef TRACE
-#define BEFORE(N) if (_nc_tracing&TRACE_BITS) _tracef("%s before bits: %s", N, _nc_tracebits())
-#define AFTER(N) if (_nc_tracing&TRACE_BITS) _tracef("%s after bits: %s", N, _nc_tracebits())
-#else
-#define BEFORE(s)
-#define AFTER(s)
-#endif /* TRACE */
-
-int
-raw(void)
-{
- T((T_CALLED("raw()")));
- if (SP != 0 && cur_term != 0) {
-
- SP->_raw = TRUE;
- SP->_cbreak = 1;
-
-#ifdef __EMX__
- setmode(SP->_ifd, O_BINARY);
-#endif
-
-#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");
-#else
- cur_term->Nttyb.sg_flags |= RAW;
-#endif
- returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
- }
- returnCode(ERR);
-}
-
-int
-cbreak(void)
-{
- T((T_CALLED("cbreak()")));
-
- SP->_cbreak = 1;
-
-#ifdef __EMX__
- setmode(SP->_ifd, O_BINARY);
-#endif
-
-#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");
-#else
- cur_term->Nttyb.sg_flags |= CBREAK;
-#endif
- returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
-}
-
-void
-qiflush(void)
-{
- T((T_CALLED("qiflush()")));
-
- /*
- * Note: this implementation may be wrong. See the comment under
- * intrflush().
- */
-
-#ifdef TERMIOS
- BEFORE("qiflush");
- cur_term->Nttyb.c_lflag &= ~(NOFLSH);
- AFTER("qiflush");
- (void) _nc_set_tty_mode(&cur_term->Nttyb);
- returnVoid;
-#endif
-}
-
-int
-noraw(void)
-{
- T((T_CALLED("noraw()")));
-
- SP->_raw = FALSE;
- SP->_cbreak = 0;
-
-#ifdef __EMX__
- setmode(SP->_ifd, O_TEXT);
-#endif
-
-#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");
-#else
- cur_term->Nttyb.sg_flags &= ~(RAW | CBREAK);
-#endif
- returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
-}
-
-int
-nocbreak(void)
-{
- T((T_CALLED("nocbreak()")));
-
- SP->_cbreak = 0;
-
-#ifdef __EMX__
- setmode(SP->_ifd, O_TEXT);
-#endif
-
-#ifdef TERMIOS
- BEFORE("nocbreak");
- cur_term->Nttyb.c_lflag |= ICANON;
- cur_term->Nttyb.c_iflag |= ICRNL;
- AFTER("nocbreak");
-#else
- cur_term->Nttyb.sg_flags &= ~CBREAK;
-#endif
- returnCode(_nc_set_tty_mode(&cur_term->Nttyb));
-}
-
-void
-noqiflush(void)
-{
- T((T_CALLED("noqiflush()")));
-
- /*
- * Note: this implementation may be wrong. See the comment under
- * intrflush().
- */
-
-#ifdef TERMIOS
- BEFORE("noqiflush");
- cur_term->Nttyb.c_lflag |= NOFLSH;
- AFTER("noqiflush");
- (void) _nc_set_tty_mode(&cur_term->Nttyb);
- returnVoid;
-#endif
-}
-
-int
-intrflush(WINDOW *win GCC_UNUSED, bool 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.
- */
-
-#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));
-#else
- returnCode(ERR);
-#endif
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_setup.c b/ncurses-5.2/ncurses/tinfo/lib_setup.c
deleted file mode 100644
index 64c7afb..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_setup.c
+++ /dev/null
@@ -1,414 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * Terminal setup routines common to termcap and terminfo:
- *
- * use_env(bool)
- * setupterm(char *, int, int *)
- */
-
-#include <curses.priv.h>
-#include <tic.h> /* for MAX_NAME_SIZE */
-#include <term_entry.h>
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#include <term.h> /* lines, columns, cur_term */
-
-MODULE_ID("$Id$")
-
-/****************************************************************************
- *
- * Terminal size computation
- *
- ****************************************************************************/
-
-#if HAVE_SIZECHANGE
-# if !defined(sun) || !TERMIOS
-# if HAVE_SYS_IOCTL_H
-# include <sys/ioctl.h>
-# endif
-# endif
-#endif
-
-#if NEED_PTEM_H
- /* On SCO, they neglected to define struct winsize in termios.h -- it's only
- * in termio.h and ptem.h (the former conflicts with other definitions).
- */
-# include <sys/stream.h>
-# include <sys/ptem.h>
-#endif
-
-/*
- * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
- * Solaris, IRIX) define TIOCGWINSZ and struct winsize.
- */
-#ifdef TIOCGSIZE
-# define IOCTL_WINSIZE TIOCGSIZE
-# define STRUCT_WINSIZE struct ttysize
-# define WINSIZE_ROWS(n) (int)n.ts_lines
-# define WINSIZE_COLS(n) (int)n.ts_cols
-#else
-# ifdef TIOCGWINSZ
-# define IOCTL_WINSIZE TIOCGWINSZ
-# define STRUCT_WINSIZE struct winsize
-# define WINSIZE_ROWS(n) (int)n.ws_row
-# define WINSIZE_COLS(n) (int)n.ws_col
-# endif
-#endif
-
-static int _use_env = TRUE;
-
-static void do_prototype(void);
-
-void
-use_env(bool f)
-{
- _use_env = f;
-}
-
-int LINES = 0, COLS = 0, TABSIZE = 0;
-
-static void
-_nc_get_screensize(int *linep, int *colp)
-/* Obtain lines/columns values from the environment and/or terminfo entry */
-{
- /* figure out the size of the screen */
- T(("screen size: terminfo lines = %d columns = %d", lines, columns));
-
- if (!_use_env) {
- *linep = (int) lines;
- *colp = (int) columns;
- } else { /* usually want to query LINES and COLUMNS from environment */
- int value;
-
- *linep = *colp = 0;
-
- /* first, look for environment variables */
- if ((value = _nc_getenv_num("LINES")) > 0) {
- *linep = value;
- }
- if ((value = _nc_getenv_num("COLUMNS")) > 0) {
- *colp = value;
- }
- T(("screen size: environment LINES = %d COLUMNS = %d", *linep, *colp));
-
-#ifdef __EMX__
- if (*linep <= 0 || *colp <= 0) {
- int screendata[2];
- _scrsize(screendata);
- *colp = screendata[0];
- *linep = screendata[1];
- T(("EMX screen size: environment LINES = %d COLUMNS = %d",
- *linep, *colp));
- }
-#endif
-#if HAVE_SIZECHANGE
- /* if that didn't work, maybe we can try asking the OS */
- if (*linep <= 0 || *colp <= 0) {
- if (isatty(cur_term->Filedes)) {
- STRUCT_WINSIZE size;
-
- errno = 0;
- do {
- if (ioctl(cur_term->Filedes, IOCTL_WINSIZE, &size) < 0
- && errno != EINTR)
- goto failure;
- } while
- (errno == EINTR);
-
- /*
- * Solaris lets users override either dimension with an
- * environment variable.
- */
- if (*linep <= 0)
- *linep = WINSIZE_ROWS(size);
- if (*colp <= 0)
- *colp = WINSIZE_COLS(size);
- }
- /* FALLTHRU */
- failure:;
- }
-#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;
- }
-
- /* the ultimate fallback, assume fixed 24x80 size */
- if (*linep <= 0 || *colp <= 0) {
- *linep = 24;
- *colp = 80;
- }
-
- /*
- * Put the derived values back in the screen-size caps, so
- * tigetnum() and tgetnum() will do the right thing.
- */
- lines = (short) (*linep);
- columns = (short) (*colp);
- }
-
- T(("screen size is %dx%d", *linep, *colp));
-
- if (VALID_NUMERIC(init_tabs))
- TABSIZE = (int) init_tabs;
- else
- TABSIZE = 8;
- T(("TABSIZE = %d", TABSIZE));
-
-}
-
-#if USE_SIZECHANGE
-void
-_nc_update_screensize(void)
-{
- int my_lines, my_cols;
-
- _nc_get_screensize(&my_lines, &my_cols);
- if (SP != 0 && SP->_resize != 0)
- SP->_resize(my_lines, my_cols);
-}
-#endif
-
-/****************************************************************************
- *
- * Terminal setup
- *
- ****************************************************************************/
-
-#define ret_error(code, fmt, arg) if (errret) {\
- *errret = code;\
- returnCode(ERR);\
- } else {\
- fprintf(stderr, fmt, arg);\
- exit(EXIT_FAILURE);\
- }
-
-#define ret_error0(code, msg) if (errret) {\
- *errret = code;\
- returnCode(ERR);\
- } else {\
- fprintf(stderr, msg);\
- exit(EXIT_FAILURE);\
- }
-
-#if USE_DATABASE
-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 */
-{
- char filename[PATH_MAX];
- int status;
-
- /*
- * $TERM shouldn't contain pathname delimiters.
- */
- if (strchr(tn, '/'))
- return 0;
-
- if ((status = _nc_read_entry(tn, filename, tp)) != 1) {
-
-#if !PURE_TERMINFO
- /*
- * Try falling back on the termcap file.
- * Note: allowing this call links the entire terminfo/termcap
- * compiler into the startup code. It's preferable to build a
- * real terminfo database and use that.
- */
- status = _nc_read_termcap_entry(tn, tp);
-#endif /* PURE_TERMINFO */
-
- }
-
- /*
- * If we have an entry, force all of the cancelled strings to null
- * pointers so we don't have to test them in the rest of the library.
- * (The terminfo compiler bypasses this logic, since it must know if
- * a string is cancelled, for merging entries).
- */
- if (status == 1) {
- int n;
- for_each_boolean(n, tp)
- if (!VALID_BOOLEAN(tp->Booleans[n]))
- tp->Booleans[n] = FALSE;
- for_each_string(n, tp)
- if (tp->Strings[n] == CANCELLED_STRING)
- tp->Strings[n] = ABSENT_STRING;
- }
- return (status);
-}
-#endif
-
-char ttytype[NAMESIZE] = "";
-
-/*
- * setupterm(termname, Filedes, errret)
- *
- * Find and read the appropriate object file for the terminal
- * Make cur_term point to the structure.
- *
- */
-
-int
-setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
-{
- struct term *term_ptr;
- int status;
-
- T((T_CALLED("setupterm(%s,%d,%p)"), _nc_visbuf(tname), Filedes, errret));
-
- if (tname == 0) {
- tname = getenv("TERM");
- if (tname == 0 || *tname == '\0') {
- ret_error0(-1, "TERM environment variable not set.\n");
- }
- }
- if (strlen(tname) > MAX_NAME_SIZE) {
- ret_error(-1, "TERM environment must be <= %d characters.\n",
- MAX_NAME_SIZE);
- }
-
- T(("your terminal name is %s", tname));
-
- term_ptr = typeCalloc(TERMINAL, 1);
-
- if (term_ptr == 0) {
- ret_error0(-1, "Not enough memory to create terminal structure.\n");
- }
-#if USE_DATABASE
- status = grab_entry(tname, &term_ptr->type);
-#else
- status = 0;
-#endif
-
- /* try fallback list if entry on disk */
- if (status != 1) {
- const TERMTYPE *fallback = _nc_fallback(tname);
-
- if (fallback) {
- term_ptr->type = *fallback;
- status = 1;
- }
- }
-
- if (status == -1) {
- ret_error0(-1, "terminals database is inaccessible\n");
- } else if (status == 0) {
- ret_error(0, "'%s': unknown terminal type.\n", tname);
- }
-
- /*
- * Improve on SVr4 curses. If an application mixes curses and termcap
- * calls, it may call both initscr and tgetent. This is not really a
- * good thing to do, but can happen if someone tries using ncurses with
- * the readline library. The problem we are fixing is that when
- * tgetent calls setupterm, the resulting Ottyb struct in cur_term is
- * zeroed. A subsequent call to endwin uses the zeroed terminal
- * settings rather than the ones saved in initscr. So we check if
- * cur_term appears to contain terminal settings for the same output
- * file as our current call - and copy those terminal settings. (SVr4
- * curses does not do this, however applications that are working
- * around the problem will still work properly with this feature).
- */
- if (cur_term != 0) {
- if (cur_term->Filedes == Filedes)
- term_ptr->Ottyb = cur_term->Ottyb;
- }
-
- set_curterm(term_ptr);
-
- if (command_character && getenv("CC"))
- do_prototype();
-
- strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
- 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.
- */
- if (Filedes == STDOUT_FILENO && !isatty(Filedes))
- Filedes = STDERR_FILENO;
- cur_term->Filedes = Filedes;
-
- _nc_get_screensize(&LINES, &COLS);
-
- if (errret)
- *errret = 1;
-
- T((T_CREATE("screen %s %dx%d"), tname, LINES, COLS));
-
- if (generic_type) {
- ret_error(0, "'%s': I need something more specific.\n", tname);
- }
- if (hard_copy) {
- ret_error(1, "'%s': I can't handle hardcopy terminals.\n", tname);
- }
- returnCode(OK);
-}
-
-/*
-** do_prototype()
-**
-** Take the real command character out of the CC environment variable
-** and substitute it in for the prototype given in 'command_character'.
-**
-*/
-
-static void
-do_prototype(void)
-{
- int i;
- char CC;
- char proto;
- char *tmp;
-
- tmp = getenv("CC");
- CC = *tmp;
- proto = *command_character;
-
- for_each_string(i, &(cur_term->type)) {
- for (tmp = cur_term->type.Strings[i]; *tmp; tmp++) {
- if (*tmp == proto)
- *tmp = CC;
- }
- }
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_termcap.c b/ncurses-5.2/ncurses/tinfo/lib_termcap.c
deleted file mode 100644
index 73f30e9..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_termcap.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <termcap.h>
-#include <tic.h>
-
-#define __INTERNAL_CAPS_VISIBLE
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-/*
- some of the code in here was contributed by:
- Magnus Bengtsson, d6mbeng@dtek.chalmers.se
-*/
-
-char *UP = 0;
-char *BC = 0;
-
-/***************************************************************************
- *
- * tgetent(bufp, term)
- *
- * In termcap, this function reads in the entry for terminal `term' into the
- * buffer pointed to by bufp. It must be called before any of the functions
- * below are called.
- * In this terminfo emulation, tgetent() simply calls setupterm() (which
- * does a bit more than tgetent() in termcap does), and returns its return
- * value (1 if successful, 0 if no terminal with the given name could be
- * found, or -1 if no terminal descriptions have been installed on the
- * system). The bufp argument is ignored.
- *
- ***************************************************************************/
-
-int
-tgetent(char *bufp GCC_UNUSED, const char *name)
-{
- int errcode;
-
- T((T_CALLED("tgetent()")));
-
- setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode);
-
- if (errcode == 1) {
-
- if (cursor_left)
- if ((backspaces_with_bs = !strcmp(cursor_left, "\b")) == 0)
- backspace_if_not_bs = cursor_left;
-
- /* we're required to export these */
- if (pad_char != NULL)
- PC = pad_char[0];
- if (cursor_up != NULL)
- UP = cursor_up;
- if (backspace_if_not_bs != NULL)
- BC = backspace_if_not_bs;
-
- (void) baudrate(); /* sets ospeed as a side-effect */
-
-/* LINT_PREPRO
-#if 0*/
-#include <capdefaults.c>
-/* LINT_PREPRO
-#endif*/
-
- }
- returnCode(errcode);
-}
-
-/***************************************************************************
- *
- * tgetflag(str)
- *
- * Look up boolean termcap capability str and return its value (TRUE=1 if
- * present, FALSE=0 if not).
- *
- ***************************************************************************/
-
-int
-tgetflag(NCURSES_CONST char *id)
-{
- int i;
-
- T((T_CALLED("tgetflag(%s)"), id));
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_boolean(i, tp) {
- const char *capname = ExtBoolname(tp, i, boolcodes);
- if (!strncmp(id, capname, 2)) {
- /* setupterm forces invalid booleans to false */
- returnCode(tp->Booleans[i]);
- }
- }
- }
- returnCode(0); /* Solaris does this */
-}
-
-/***************************************************************************
- *
- * tgetnum(str)
- *
- * Look up numeric termcap capability str and return its value, or -1 if
- * not given.
- *
- ***************************************************************************/
-
-int
-tgetnum(NCURSES_CONST char *id)
-{
- int i;
-
- T((T_CALLED("tgetnum(%s)"), id));
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_number(i, tp) {
- const char *capname = ExtNumname(tp, i, numcodes);
- if (!strncmp(id, capname, 2)) {
- if (!VALID_NUMERIC(tp->Numbers[i]))
- returnCode(ABSENT_NUMERIC);
- returnCode(tp->Numbers[i]);
- }
- }
- }
- returnCode(ABSENT_NUMERIC);
-}
-
-/***************************************************************************
- *
- * tgetstr(str, area)
- *
- * Look up string termcap capability str and return a pointer to its value,
- * or NULL if not given.
- *
- ***************************************************************************/
-
-char *
-tgetstr(NCURSES_CONST char *id, char **area)
-{
- int i;
-
- T((T_CALLED("tgetstr(%s,%p)"), id, area));
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- 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])));
- /* 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;
- }
- returnPtr(tp->Strings[i]);
- }
- }
- }
- returnPtr(NULL);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_termname.c b/ncurses-5.2/ncurses/tinfo/lib_termname.c
deleted file mode 100644
index 6f32df1..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_termname.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <tic.h> /* for MAX_ALIAS */
-
-MODULE_ID("$Id$")
-
-char *termname(void)
-{
-char *name = getenv("TERM");
-static char ret[MAX_ALIAS+1];
-
- T(("termname() called"));
-
- if (name != 0) {
- (void) strncpy(ret, name, sizeof(ret) - 1);
- name = ret;
- }
- return name;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_tgoto.c b/ncurses-5.2/ncurses/tinfo/lib_tgoto.c
deleted file mode 100644
index 4e0bc5f..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_tgoto.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/****************************************************************************
- * 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: Thomas E. Dickey *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <termcap.h>
-
-MODULE_ID("$Id$")
-
-#if !PURE_TERMINFO
-static bool
-is_termcap(const char *string)
-{
- bool result = TRUE;
-
- 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;
- }
- string++;
- }
- return result;
-}
-
-static char *
-tgoto_internal(const char *string, int x, int y)
-{
- static char *result;
- static size_t length;
-
- int swap_arg;
- int param[3];
- size_t used = 0;
- size_t need = 10;
- int *value = param;
- bool need_BC = FALSE;
-
- if (BC)
- need += strlen(BC);
-
- param[0] = y;
- param[1] = x;
- param[2] = 0;
-
- while (*string != 0) {
- if ((used + need) > length) {
- length += (used + need);
- if ((result = _nc_doalloc(result, length)) == 0) {
- length = 0;
- break;
- }
- }
- if (*string == '%') {
- char *fmt = 0;
-
- switch (*++string) {
- case '\0':
- string--;
- break;
- case 'd':
- fmt = "%d";
- break;
- case '2':
- fmt = "%02d";
- *value %= 100;
- break;
- case '3':
- fmt = "%03d";
- *value %= 1000;
- break;
- case '+':
- *value += (*++string & 0xff);
- /* FALLTHRU */
- case '.':
- /*
- * Guard against tputs() seeing a truncated string. The
- * termcap documentation refers to a similar fixup for \n
- * and \r, but I don't see that it could work -TD
- */
- if (*value == 0) {
- if (BC != 0) {
- *value += 1;
- need_BC = TRUE;
- } else {
- *value = 0200; /* tputs will treat this as \0 */
- }
- }
- result[used++] = *value++;
- break;
- case '%':
- result[used++] = *string;
- break;
- case 'r':
- swap_arg = param[0];
- param[0] = param[1];
- param[1] = swap_arg;
- break;
- case 'i':
- param[0] += 1;
- param[1] += 1;
- break;
- case '>':
- if (*value > string[1])
- *value += string[2];
- string += 2;
- break;
- case 'n': /* Datamedia 2500 */
- param[0] ^= 0140;
- param[1] ^= 0140;
- break;
- case 'B': /* BCD */
- *value = 16 * (*value / 10) + (*value % 10);
- break;
- case 'D': /* Reverse coding (Delta Data) */
- *value -= 2 * (*value / 16);
- break;
- }
- if (fmt != 0) {
- sprintf(result + used, fmt, *value++);
- used += strlen(result + used);
- fmt = 0;
- }
- if (value - param > 2) {
- value = param + 2;
- *value = 0;
- }
- } else {
- result[used++] = *string;
- }
- string++;
- }
- if (need_BC) {
- strcpy(result + used, BC);
- used += strlen(BC);
- }
- result[used] = '\0';
- return result;
-}
-#endif
-
-/*
- * Retained solely for upward compatibility. Note the intentional reversing of
- * the last two arguments when invoking tparm().
- */
-char *
-tgoto(const char *string, int x, int y)
-{
- char *result;
-
- T((T_CALLED("tgoto(%s, %d, %d)"), _nc_visbuf(string), x, y));
-#if !PURE_TERMINFO
- if (is_termcap(string))
- result = tgoto_internal(string, x, y);
- else
-#endif
- result = tparm((NCURSES_CONST char *) string, y, x);
- returnPtr(result);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_ti.c b/ncurses-5.2/ncurses/tinfo/lib_ti.c
deleted file mode 100644
index 74900ce..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_ti.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <term_entry.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-int
-tigetflag(NCURSES_CONST char *str)
-{
- int i;
-
- T((T_CALLED("tigetflag(%s)"), str));
-
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_boolean(i, tp) {
- const char *capname = ExtBoolname(tp, i, boolnames);
- if (!strcmp(str, capname)) {
- /* setupterm forces invalid booleans to false */
- returnCode(tp->Booleans[i]);
- }
- }
- }
-
- returnCode(ABSENT_BOOLEAN);
-}
-
-int
-tigetnum(NCURSES_CONST char *str)
-{
- int i;
-
- T((T_CALLED("tigetnum(%s)"), str));
-
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_number(i, tp) {
- const char *capname = ExtNumname(tp, i, numnames);
- if (!strcmp(str, capname)) {
- if (!VALID_NUMERIC(tp->Numbers[i]))
- returnCode(ABSENT_NUMERIC);
- returnCode(tp->Numbers[i]);
- }
- }
- }
-
- returnCode(CANCELLED_NUMERIC); /* Solaris returns a -1 instead */
-}
-
-char *
-tigetstr(NCURSES_CONST char *str)
-{
- int i;
-
- T((T_CALLED("tigetstr(%s)"), str));
-
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_string(i, tp) {
- const char *capname = ExtStrname(tp, i, strnames);
- if (!strcmp(str, capname)) {
- /* setupterm forces cancelled strings to null */
- returnPtr(tp->Strings[i]);
- }
- }
- }
-
- returnPtr(CANCELLED_STRING);
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_tparm.c b/ncurses-5.2/ncurses/tinfo/lib_tparm.c
deleted file mode 100644
index d6b454d..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_tparm.c
+++ /dev/null
@@ -1,740 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * tparm.c
- *
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <term.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * char *
- * tparm(string, ...)
- *
- * Substitute the given parameters into the given string by the following
- * rules (taken from terminfo(5)):
- *
- * Cursor addressing and other strings requiring parame-
- * ters in the terminal are described by a parameterized string
- * capability, with like escapes %x in it. For example, to
- * address the cursor, the cup capability is given, using two
- * parameters: the row and column to address to. (Rows and
- * columns are numbered from zero and refer to the physical
- * screen visible to the user, not to any unseen memory.) If
- * the terminal has memory relative cursor addressing, that can
- * be indicated by
- *
- * The parameter mechanism uses a stack and special %
- * 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.
- *
- * The % encodings have the following meanings:
- *
- * %% outputs `%'
- * %c print pop() like %c in printf()
- * %s print pop() like %s in printf()
- * %[[:]flags][width[.precision]][doxXs]
- * as in printf, flags are [-+#] and space
- * The ':' is used to avoid making %+ or %-
- * patterns (see below).
- *
- * %p[1-9] push ith 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
- * %l push strlen(pop)
- * %'c' push char constant c
- * %{nn} push integer constant nn
- *
- * %+ %- %* %/ %m
- * arithmetic (%m is mod): push(pop() op pop())
- * %& %| %^ bit operations: push(pop() op pop())
- * %= %> %< logical operations: push(pop() op pop())
- * %A %O logical and & or operations for conditionals
- * %! %~ unary operations push(op pop())
- * %i add 1 to first two parms (for ANSI terminals)
- *
- * %? expr %t thenpart %e elsepart %;
- * if-then-else, %e elsepart is optional.
- * else-if's are possible ala Algol 68:
- * %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e b5 %;
- *
- * For those of the above operators which are binary and not commutative,
- * the stack works in the usual way, with
- * %gx %gy %m
- * resulting in x mod y, not the reverse.
- */
-
-#define STACKSIZE 20
-
-typedef struct {
- union {
- unsigned int num;
- char *str;
- } data;
- bool num_type;
-} stack_frame;
-
-static stack_frame stack[STACKSIZE];
-static int stack_ptr;
-
-#ifdef TRACE
-static const char *tname;
-#endif /* TRACE */
-
-static char *out_buff;
-static size_t out_size;
-static size_t out_used;
-
-#if NO_LEAKS
-void
-_nc_free_tparm(void)
-{
- if (out_buff != 0) {
- FreeAndNull(out_buff);
- out_size = 0;
- out_used = 0;
- }
-}
-#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;
- if (need > out_size)
- really_get_space(need);
-}
-
-static inline void
-save_text(const char *fmt, const char *s, int len)
-{
- size_t s_len = strlen(s);
- if (len > (int) s_len)
- s_len = len;
-
- get_space(s_len + 1);
-
- (void) sprintf(out_buff + out_used, fmt, s);
- out_used += strlen(out_buff + out_used);
-}
-
-static inline void
-save_number(const char *fmt, int number, int len)
-{
- if (len < 30)
- len = 30; /* actually log10(MAX_INT)+1 */
-
- get_space(len + 1);
-
- (void) sprintf(out_buff + out_used, fmt, number);
- out_used += strlen(out_buff + out_used);
-}
-
-static inline void
-save_char(int c)
-{
- if (c == 0)
- c = 0200;
- get_space(1);
- out_buff[out_used++] = c;
-}
-
-static inline void
-npush(int x)
-{
- if (stack_ptr < STACKSIZE) {
- stack[stack_ptr].num_type = TRUE;
- stack[stack_ptr].data.num = x;
- stack_ptr++;
- }
-}
-
-static inline int
-npop(void)
-{
- int result = 0;
- if (stack_ptr > 0) {
- stack_ptr--;
- if (stack[stack_ptr].num_type)
- result = stack[stack_ptr].data.num;
- }
- return result;
-}
-
-static inline void
-spush(char *x)
-{
- if (stack_ptr < STACKSIZE) {
- stack[stack_ptr].num_type = FALSE;
- stack[stack_ptr].data.str = x;
- stack_ptr++;
- }
-}
-
-static inline char *
-spop(void)
-{
- static char dummy[] = ""; /* avoid const-cast */
- char *result = dummy;
- if (stack_ptr > 0) {
- stack_ptr--;
- if (!stack[stack_ptr].num_type && stack[stack_ptr].data.str != 0)
- result = stack[stack_ptr].data.str;
- }
- return result;
-}
-
-static inline const char *
-parse_format(const char *s, char *format, int *len)
-{
- bool done = FALSE;
- bool allowminus = FALSE;
- bool dot = FALSE;
- bool err = FALSE;
- char *fmt = format;
- int prec = 0;
- int width = 0;
- int value = 0;
-
- *len = 0;
- *format++ = '%';
- while (*s != '\0' && !done) {
- switch (*s) {
- case 'c': /* FALLTHRU */
- case 'd': /* FALLTHRU */
- case 'o': /* FALLTHRU */
- case 'x': /* FALLTHRU */
- case 'X': /* FALLTHRU */
- case 's':
- *format++ = *s;
- done = TRUE;
- break;
- case '.':
- *format++ = *s++;
- if (dot) {
- err = TRUE;
- } else {
- dot = TRUE;
- prec = value;
- }
- value = 0;
- break;
- case '#':
- *format++ = *s++;
- break;
- case ' ':
- *format++ = *s++;
- break;
- case ':':
- s++;
- allowminus = TRUE;
- break;
- case '-':
- if (allowminus) {
- *format++ = *s++;
- } else {
- done = TRUE;
- }
- break;
- default:
- if (isdigit(*s)) {
- value = (value * 10) + (*s - '0');
- if (value > 10000)
- err = TRUE;
- *format++ = *s++;
- } else {
- done = TRUE;
- }
- }
- }
-
- /*
- * If we found an error, ignore (and remove) the flags.
- */
- if (err) {
- prec = width = value = 0;
- format = fmt;
- *format++ = '%';
- *format++ = *s;
- }
-
- if (dot)
- width = value;
- else
- prec = value;
-
- *format = '\0';
- /* return maximum string length in print */
- *len = (prec > width) ? prec : width;
- return s;
-}
-
-#define isUPPER(c) ((c) >= 'A' && (c) <= 'Z')
-#define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
-
-static inline char *
-tparam_internal(const char *string, va_list ap)
-{
-#define NUM_VARS 26
- char *p_is_s[9];
- int param[9];
- int lastpop;
- int popcount;
- int number;
- int len;
- int level;
- int x, y;
- int i;
- size_t len2;
- register const char *cp;
- static size_t len_fmt;
- static char dummy[] = "";
- static char *format;
- static int dynamic_var[NUM_VARS];
- static int static_vars[NUM_VARS];
-
- out_used = 0;
- if (string == NULL)
- return NULL;
-
- if ((len2 = strlen(string)) > len_fmt) {
- len_fmt = len2 + len_fmt + 2;
- if ((format = typeRealloc(char, len_fmt, format)) == 0)
- return 0;
- }
-
- /*
- * Find the highest parameter-number referred to in the format string.
- * Use this value to limit the number of arguments copied from the
- * variable-length argument list.
- */
-
- number = 0;
- lastpop = -1;
- popcount = 0;
- memset(p_is_s, 0, sizeof(p_is_s));
-
- /*
- * Analyze the string to see how many parameters we need from the varargs
- * list, and what their types are. We will only accept string parameters
- * if they appear as a %l or %s format following an explicit parameter
- * reference (e.g., %p2%s). All other parameters are numbers.
- *
- * 'number' counts coarsely the number of pop's we see in the string, and
- * 'popcount' shows the highest parameter number in the string. We would
- * like to simply use the latter count, but if we are reading termcap
- * strings, there may be cases that we cannot see the explicit parameter
- * numbers.
- */
- for (cp = string; (cp - string) < (int) len2;) {
- if (*cp == '%') {
- cp++;
- cp = parse_format(cp, format, &len);
- switch (*cp) {
- default:
- break;
-
- case 'd': /* FALLTHRU */
- case 'o': /* FALLTHRU */
- case 'x': /* FALLTHRU */
- case 'X': /* FALLTHRU */
- case 'c': /* FALLTHRU */
- number++;
- lastpop = -1;
- break;
-
- case 'l':
- case 's':
- if (lastpop > 0)
- p_is_s[lastpop - 1] = dummy;
- ++number;
- break;
-
- case 'p':
- cp++;
- i = (*cp - '0');
- if (i >= 0 && i <= 9) {
- lastpop = i;
- if (lastpop > popcount)
- popcount = lastpop;
- }
- break;
-
- case 'P':
- case 'g':
- cp++;
- break;
-
- case S_QUOTE:
- cp += 2;
- lastpop = -1;
- break;
-
- case L_BRACE:
- cp++;
- while (*cp >= '0' && *cp <= '9') {
- cp++;
- }
- break;
-
- case '+':
- case '-':
- case '*':
- case '/':
- case 'm':
- case 'A':
- case 'O':
- case '&':
- case '|':
- case '^':
- case '=':
- case '<':
- case '>':
- case '!':
- case '~':
- lastpop = -1;
- number += 2;
- break;
-
- case 'i':
- lastpop = -1;
- if (popcount < 2)
- popcount = 2;
- break;
- }
- }
- if (*cp != '\0')
- cp++;
- }
-
- if (number > 9)
- number = 9;
- for (i = 0; i < max(popcount, number); i++) {
- /*
- * 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.
- */
- if (p_is_s[i] != 0) {
- p_is_s[i] = va_arg(ap, char *);
- } else {
- param[i] = va_arg(ap, int);
- }
- }
-
- /*
- * This is a termcap compatibility hack. If there are no explicit pop
- * operations in the string, load the stack in such a way that
- * successive pops will grab successive parameters. That will make
- * the expansion of (for example) \E[%d;%dH work correctly in termcap
- * style, which means tparam() will expand termcap strings OK.
- */
- stack_ptr = 0;
- if (popcount == 0) {
- popcount = number;
- for (i = number - 1; i >= 0; i--)
- npush(param[i]);
- }
-#ifdef TRACE
- if (_nc_tracing & TRACE_CALLS) {
- for (i = 0; i < popcount; i++) {
- if (p_is_s[i] != 0)
- save_text(", %s", _nc_visbuf(p_is_s[i]), 0);
- else
- save_number(", %d", param[i], 0);
- }
- _tracef(T_CALLED("%s(%s%s)"), tname, _nc_visbuf(string), out_buff);
- out_used = 0;
- }
-#endif /* TRACE */
-
- while (*string) {
- if (*string != '%') {
- save_char(*string);
- } else {
- string++;
- string = parse_format(string, format, &len);
- switch (*string) {
- default:
- break;
- case '%':
- save_char('%');
- break;
-
- case 'd': /* FALLTHRU */
- case 'o': /* FALLTHRU */
- case 'x': /* FALLTHRU */
- case 'X': /* FALLTHRU */
- case 'c': /* FALLTHRU */
- save_number(format, npop(), len);
- break;
-
- case 'l':
- save_number("%d", strlen(spop()), 0);
- break;
-
- case 's':
- save_text(format, spop(), len);
- break;
-
- case 'p':
- string++;
- i = (*string - '1');
- if (i >= 0 && i < 9) {
- if (p_is_s[i])
- spush(p_is_s[i]);
- else
- npush(param[i]);
- }
- break;
-
- case 'P':
- string++;
- if (isUPPER(*string)) {
- i = (*string - 'A');
- static_vars[i] = npop();
- } else if (isLOWER(*string)) {
- i = (*string - 'a');
- dynamic_var[i] = npop();
- }
- break;
-
- case 'g':
- string++;
- if (isUPPER(*string)) {
- i = (*string - 'A');
- npush(static_vars[i]);
- } else if (isLOWER(*string)) {
- i = (*string - 'a');
- npush(dynamic_var[i]);
- }
- break;
-
- case S_QUOTE:
- string++;
- npush(*string);
- string++;
- break;
-
- case L_BRACE:
- number = 0;
- string++;
- while (*string >= '0' && *string <= '9') {
- number = number * 10 + *string - '0';
- string++;
- }
- npush(number);
- break;
-
- case '+':
- npush(npop() + npop());
- break;
-
- case '-':
- y = npop();
- x = npop();
- npush(x - y);
- break;
-
- case '*':
- npush(npop() * npop());
- break;
-
- case '/':
- y = npop();
- x = npop();
- npush(y ? (x / y) : 0);
- break;
-
- case 'm':
- y = npop();
- x = npop();
- npush(y ? (x % y) : 0);
- break;
-
- case 'A':
- npush(npop() && npop());
- break;
-
- case 'O':
- npush(npop() || npop());
- break;
-
- case '&':
- npush(npop() & npop());
- break;
-
- case '|':
- npush(npop() | npop());
- break;
-
- case '^':
- npush(npop() ^ npop());
- break;
-
- case '=':
- y = npop();
- x = npop();
- npush(x == y);
- break;
-
- case '<':
- y = npop();
- x = npop();
- npush(x < y);
- break;
-
- case '>':
- y = npop();
- x = npop();
- npush(x > y);
- break;
-
- case '!':
- npush(!npop());
- break;
-
- case '~':
- npush(~npop());
- break;
-
- case 'i':
- if (p_is_s[0] == 0)
- param[0]++;
- if (p_is_s[1] == 0)
- param[1]++;
- break;
-
- case '?':
- break;
-
- case 't':
- x = npop();
- if (!x) {
- /* scan forward for %e or %; at level zero */
- string++;
- level = 0;
- while (*string) {
- if (*string == '%') {
- string++;
- if (*string == '?')
- level++;
- else if (*string == ';') {
- if (level > 0)
- level--;
- else
- break;
- } else if (*string == 'e' && level == 0)
- break;
- }
-
- if (*string)
- string++;
- }
- }
- break;
-
- case 'e':
- /* scan forward for a %; at level zero */
- string++;
- level = 0;
- while (*string) {
- if (*string == '%') {
- string++;
- if (*string == '?')
- level++;
- else if (*string == ';') {
- if (level > 0)
- level--;
- else
- break;
- }
- }
-
- if (*string)
- string++;
- }
- break;
-
- case ';':
- break;
-
- } /* endswitch (*string) */
- } /* endelse (*string == '%') */
-
- if (*string == '\0')
- break;
-
- string++;
- } /* endwhile (*string) */
-
- get_space(1);
- out_buff[out_used] = '\0';
-
- T((T_RETURN("%s"), _nc_visbuf(out_buff)));
- return (out_buff);
-}
-
-char *
-tparm(NCURSES_CONST char *string,...)
-{
- va_list ap;
- char *result;
-
- va_start(ap, string);
-#ifdef TRACE
- tname = "tparm";
-#endif /* TRACE */
- result = tparam_internal(string, ap);
- va_end(ap);
- return result;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_tputs.c b/ncurses-5.2/ncurses/tinfo/lib_tputs.c
deleted file mode 100644
index 8cadc6a..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_tputs.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * tputs.c
- * delay_output()
- * _nc_outch()
- * tputs()
- *
- */
-
-#include <curses.priv.h>
-#include <ctype.h>
-#include <term.h> /* padding_baud_rate, xon_xoff */
-#include <termcap.h> /* ospeed */
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-char PC = 0; /* used by termcap library */
-short ospeed = 0; /* used by termcap library */
-
-int _nc_nulls_sent = 0; /* used by 'tack' program */
-
-static int (*my_outch) (int c) = _nc_outch;
-
-int
-delay_output(int ms)
-{
- T((T_CALLED("delay_output(%d)"), ms));
-
- if (no_pad_char) {
- _nc_flush();
- napms(ms);
- } else {
- register int nullcount;
-
- nullcount = (ms * _nc_baudrate(ospeed)) / 10000;
- for (_nc_nulls_sent += nullcount; nullcount > 0; nullcount--)
- my_outch(PC);
- if (my_outch == _nc_outch)
- _nc_flush();
- }
-
- returnCode(OK);
-}
-
-void
-_nc_flush(void)
-{
- (void) fflush(NC_OUTPUT);
-}
-
-int
-_nc_outch(int ch)
-{
-#ifdef TRACE
- _nc_outchars++;
-#endif /* TRACE */
-
- if (SP != 0
- && SP->_cleanup) {
- char tmp = ch;
- /*
- * POSIX says write() is safe in a signal handler, but the
- * buffered I/O is not.
- */
- write(fileno(NC_OUTPUT), &tmp, 1);
- } else {
- putc(ch, NC_OUTPUT);
- }
- 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
-putp(const char *string)
-{
- return tputs(string, 1, _nc_outch);
-}
-
-int
-tputs(const char *string, int affcnt, int (*outc) (int))
-{
- bool always_delay;
- bool normal_delay;
- int number;
-#if BSD_TPUTS
- int trailpad;
-#endif /* BSD_TPUTS */
-
-#ifdef TRACE
- char addrbuf[32];
-
- if (_nc_tracing & TRACE_TPUTS) {
- if (outc == _nc_outch)
- (void) strcpy(addrbuf, "_nc_outch");
- else
- (void) sprintf(addrbuf, "%p", outc);
- if (_nc_tputs_trace) {
- _tracef("tputs(%s = %s, %d, %s) called", _nc_tputs_trace,
- _nc_visbuf(string), affcnt, addrbuf);
- } else {
- _tracef("tputs(%s, %d, %s) called", _nc_visbuf(string), affcnt, addrbuf);
- }
- _nc_tputs_trace = (char *) NULL;
- }
-#endif /* TRACE */
-
- if (!VALID_STRING(string))
- return ERR;
-
- if (cur_term == 0) {
- always_delay = FALSE;
- normal_delay = TRUE;
- } else {
- always_delay = (string == bell) || (string == flash_screen);
- normal_delay =
- !xon_xoff
- && padding_baud_rate
-#if NCURSES_NO_PADDING
- && (SP == 0 || !(SP->_no_padding))
-#endif
- && (_nc_baudrate(ospeed) >= padding_baud_rate);
- }
-
-#if BSD_TPUTS
- /*
- * This ugly kluge deals with the fact that some ancient BSD programs
- * (like nethack) actually do the likes of tputs("50") to get delays.
- */
- trailpad = 0;
- if (isdigit(*string)) {
- while (isdigit(*string)) {
- trailpad = trailpad * 10 + (*string - '0');
- string++;
- }
- trailpad *= 10;
- if (*string == '.') {
- string++;
- if (isdigit(*string)) {
- trailpad += (*string - '0');
- string++;
- }
- while (isdigit(*string))
- string++;
- }
-
- if (*string == '*') {
- trailpad *= affcnt;
- string++;
- }
- }
-#endif /* BSD_TPUTS */
-
- my_outch = outc; /* redirect delay_output() */
- while (*string) {
- if (*string != '$')
- (*outc) (*string);
- else {
- string++;
- if (*string != '<') {
- (*outc) ('$');
- if (*string)
- (*outc) (*string);
- } else {
- bool mandatory;
-
- string++;
- if ((!isdigit(*string) && *string != '.') || !strchr(string, '>')) {
- (*outc) ('$');
- (*outc) ('<');
- continue;
- }
-
- number = 0;
- while (isdigit(*string)) {
- number = number * 10 + (*string - '0');
- string++;
- }
- number *= 10;
- if (*string == '.') {
- string++;
- if (isdigit(*string)) {
- number += (*string - '0');
- string++;
- }
- while (isdigit(*string))
- string++;
- }
-
- mandatory = FALSE;
- while (*string == '*' || *string == '/') {
- if (*string == '*') {
- number *= affcnt;
- string++;
- } else { /* if (*string == '/') */
- mandatory = TRUE;
- string++;
- }
- }
-
- if (number > 0
- && (always_delay
- || normal_delay
- || mandatory))
- delay_output(number / 10);
-
- } /* endelse (*string == '<') */
- } /* endelse (*string == '$') */
-
- if (*string == '\0')
- break;
-
- string++;
- }
-
-#if BSD_TPUTS
- /*
- * Emit any BSD-style prefix padding that we've accumulated now.
- */
- if (trailpad > 0
- && (always_delay || normal_delay))
- delay_output(trailpad / 10);
-#endif /* BSD_TPUTS */
-
- my_outch = _nc_outch;
- return OK;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/lib_ttyflags.c b/ncurses-5.2/ncurses/tinfo/lib_ttyflags.c
deleted file mode 100644
index 3af19a2..0000000
--- a/ncurses-5.2/ncurses/tinfo/lib_ttyflags.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
- * def_prog_mode()
- * def_shell_mode()
- * reset_prog_mode()
- * reset_shell_mode()
- * savetty()
- * resetty()
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id$")
-
-#undef tabs
-
-#ifdef TAB3
-# define tabs TAB3
-#else
-# ifdef XTABS
-# define tabs XTABS
-# else
-# ifdef OXTABS
-# define tabs OXTABS
-# else
-# define tabs 0
-# endif
-# endif
-#endif
-
-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);
-}
-
-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);
-}
-
-int def_shell_mode(void)
-{
- 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.
- */
-
- if (_nc_get_tty_mode(&cur_term->Ottyb) != OK)
- returnCode(ERR);
-#ifdef TERMIOS
- if (cur_term->Ottyb.c_oflag & tabs)
- tab = back_tab = NULL;
-#else
- if (cur_term->Ottyb.sg_flags & XTABS)
- tab = back_tab = NULL;
-#endif
- returnCode(OK);
-}
-
-int def_prog_mode(void)
-{
- T((T_CALLED("def_prog_mode()")));
-
- if (_nc_get_tty_mode(&cur_term->Nttyb) != OK)
- returnCode(ERR);
-#ifdef TERMIOS
- cur_term->Nttyb.c_oflag &= ~tabs;
-#else
- cur_term->Nttyb.sg_flags &= ~XTABS;
-#endif
- returnCode(OK);
-}
-
-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);
- }
- returnCode(ERR);
-}
-
-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));
- }
- returnCode(ERR);
-}
-
-/*
-** savetty() and resetty()
-**
-*/
-
-static TTY buf;
-
-int savetty(void)
-{
- T((T_CALLED("savetty()")));
-
- returnCode(_nc_get_tty_mode(&buf));
-}
-
-int resetty(void)
-{
- T((T_CALLED("resetty()")));
-
- returnCode(_nc_set_tty_mode(&buf));
-}
diff --git a/ncurses-5.2/ncurses/tinfo/make_keys.c b/ncurses-5.2/ncurses/tinfo/make_keys.c
deleted file mode 100644
index 9903957..0000000
--- a/ncurses-5.2/ncurses/tinfo/make_keys.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-/*
- * This replaces an awk script which translated keys.list into keys.tries by
- * making the output show the indices into the TERMTYPE Strings array. Doing
- * it that way lets us cut down on the size of the init_keytry() function.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#include <names.c>
-
-#define UNKNOWN (SIZEOF(strnames) + SIZEOF(strfnames))
-
-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;
- }
- }
- if (!found) {
- for (n = 0; strfnames[n] != 0; n++) {
- if (!strcmp(name, strfnames[n])) {
- found = TRUE;
- break;
- }
- }
- }
- return found ? n : UNKNOWN;
-}
-
-static void make_keys(FILE *ifp, FILE *ofp)
-{
- 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);
- }
- }
-}
-
-static void write_list(FILE *ofp, const char **list)
-{
- while (*list != 0)
- fprintf(ofp, "%s\n", *list++);
-}
-
-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
- };
-
- 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, suffix);
- return EXIT_SUCCESS;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/name_match.c b/ncurses-5.2/ncurses/tinfo/name_match.c
deleted file mode 100644
index 8785ac4..0000000
--- a/ncurses-5.2/ncurses/tinfo/name_match.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * _nc_first_name(char *names)
- *
- * Extract the primary name from a compiled entry.
- */
-
-char *_nc_first_name(const char *const sp)
-/* get the first name from the given name list */
-{
- static char buf[MAX_NAME_SIZE+1];
- 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);
-}
-
-/*
- * int _nc_name_match(namelist, name, delim)
- *
- * Is the given name matched in namelist?
- */
-
-int _nc_name_match(const char *const namelst, const char *const name, const char *const delim)
-{
- 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;
- }
- }
- return FALSE;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/parse_entry.c b/ncurses-5.2/ncurses/tinfo/parse_entry.c
deleted file mode 100644
index 2ec4455..0000000
--- a/ncurses-5.2/ncurses/tinfo/parse_entry.c
+++ /dev/null
@@ -1,952 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * parse_entry.c -- compile one terminfo or termcap entry
- *
- * Get an exact in-core representation of an entry. Don't
- * try to resolve use or tc capabilities, that is someone
- * else's job. Depends on the lexical analyzer to get tokens
- * from the input stream.
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <tic.h>
-#define __INTERNAL_CAPS_VISIBLE
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#ifdef LINT
-static short const parametrized[] =
-{0};
-#else
-#include <parametrized.h>
-#endif
-
-static void postprocess_termcap(TERMTYPE *, bool);
-static void postprocess_terminfo(TERMTYPE *);
-static struct name_table_entry const *lookup_fullname(const char *name);
-
-#if NCURSES_XNAMES
-
-static struct name_table_entry const *
-_nc_extend_names(ENTRY * entryp, char *name, int token_type)
-{
- static struct name_table_entry temp;
- TERMTYPE *tp = &(entryp->tterm);
- unsigned offset = 0;
- unsigned actual;
- unsigned tindex;
- unsigned first, last, n;
- bool found;
-
- switch (token_type) {
- case BOOLEAN:
- first = 0;
- last = tp->ext_Booleans;
- offset = tp->ext_Booleans;
- tindex = tp->num_Booleans;
- break;
- case NUMBER:
- first = tp->ext_Booleans;
- last = tp->ext_Numbers + first;
- offset = tp->ext_Booleans + tp->ext_Numbers;
- tindex = tp->num_Numbers;
- break;
- case STRING:
- first = tp->ext_Booleans + tp->ext_Numbers;
- last = tp->ext_Strings + first;
- offset = tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings;
- tindex = tp->num_Strings;
- break;
- case CANCEL:
- actual = NUM_EXT_NAMES(tp);
- for (n = 0; n < actual; n++) {
- if (!strcmp(name, tp->ext_Names[n])) {
- if (n > (unsigned) (tp->ext_Booleans + tp->ext_Numbers)) {
- token_type = STRING;
- } else if (n > tp->ext_Booleans) {
- token_type = NUMBER;
- } else {
- token_type = BOOLEAN;
- }
- return _nc_extend_names(entryp, name, token_type);
- }
- }
- /* Well, we are given a cancel for a name that we don't recognize */
- return _nc_extend_names(entryp, name, STRING);
- default:
- return 0;
- }
-
- /* Adjust the 'offset' (insertion-point) to keep the lists of extended
- * names sorted.
- */
- for (n = first, found = FALSE; n < last; n++) {
- int cmp = strcmp(tp->ext_Names[n], name);
- if (cmp == 0)
- found = TRUE;
- if (cmp >= 0) {
- offset = n;
- tindex = n - first;
- switch (token_type) {
- case BOOLEAN:
- tindex += BOOLCOUNT;
- break;
- case NUMBER:
- tindex += NUMCOUNT;
- break;
- case STRING:
- tindex += STRCOUNT;
- break;
- }
- break;
- }
- }
- if (!found) {
- switch (token_type) {
- case BOOLEAN:
- tp->ext_Booleans += 1;
- tp->num_Booleans += 1;
- tp->Booleans = typeRealloc(char, tp->num_Booleans, tp->Booleans);
- for (last = tp->num_Booleans - 1; last > tindex; last--)
- tp->Booleans[last] = tp->Booleans[last - 1];
- break;
- case NUMBER:
- tp->ext_Numbers += 1;
- tp->num_Numbers += 1;
- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
- for (last = tp->num_Numbers - 1; last > tindex; last--)
- tp->Numbers[last] = tp->Numbers[last - 1];
- break;
- case STRING:
- tp->ext_Strings += 1;
- tp->num_Strings += 1;
- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
- for (last = tp->num_Strings - 1; last > tindex; last--)
- tp->Strings[last] = tp->Strings[last - 1];
- break;
- }
- actual = NUM_EXT_NAMES(tp);
- tp->ext_Names = typeRealloc(char *, actual, tp->ext_Names);
- while (--actual > offset)
- tp->ext_Names[actual] = tp->ext_Names[actual - 1];
- tp->ext_Names[offset] = _nc_save_str(name);
- }
-
- temp.nte_name = tp->ext_Names[offset];
- temp.nte_type = token_type;
- temp.nte_index = tindex;
- temp.nte_link = -1;
-
- return &temp;
-}
-#endif /* NCURSES_XNAMES */
-
-/*
- * int
- * _nc_parse_entry(entry, literal, silent)
- *
- * Compile one entry. Doesn't try to resolve use or tc capabilities.
- *
- * found-forward-use = FALSE
- * re-initialise internal arrays
- * get_token();
- * if the token was not a name in column 1, complain and die
- * save names in entry's string table
- * while (get_token() is not EOF and not NAMES)
- * check for existance and type-correctness
- * enter cap into structure
- * if STRING
- * save string in entry's string table
- * push back token
- */
-
-int
-_nc_parse_entry(struct entry *entryp, int literal, bool silent)
-{
- int token_type;
- struct name_table_entry const *entry_ptr;
- char *ptr, *base;
-
- token_type = _nc_get_token();
-
- if (token_type == EOF)
- return (EOF);
- if (token_type != NAMES)
- _nc_err_abort("Entry does not start with terminal names in column one");
-
- _nc_init_entry(&entryp->tterm);
-
- entryp->cstart = _nc_comment_start;
- entryp->cend = _nc_comment_end;
- entryp->startline = _nc_start_line;
- DEBUG(2, ("Comment range is %ld to %ld", entryp->cstart, entryp->cend));
-
- /* junk the 2-character termcap name, if present */
- ptr = _nc_curr_token.tk_name;
- if (ptr[2] == '|') {
- ptr = _nc_curr_token.tk_name + 3;
- _nc_curr_token.tk_name[2] = '\0';
- }
-
- entryp->tterm.str_table = entryp->tterm.term_names = _nc_save_str(ptr);
-
- DEBUG(1, ("Starting '%s'", ptr));
-
- /*
- * We do this because the one-token lookahead in the parse loop
- * results in the terminal type getting prematurely set to correspond
- * to that of the next entry.
- */
- _nc_set_type(_nc_first_name(entryp->tterm.term_names));
-
- /* check for overly-long names and aliases */
- for (base = entryp->tterm.term_names; (ptr = strchr(base, '|')) != 0;
- base = ptr + 1) {
- if (ptr - base > MAX_ALIAS) {
- _nc_warning("%s `%.*s' may be too long",
- (base == entryp->tterm.term_names)
- ? "primary name"
- : "alias",
- ptr - base, base);
- }
- }
-
- entryp->nuses = 0;
-
- for (token_type = _nc_get_token();
- token_type != EOF && token_type != NAMES;
- token_type = _nc_get_token()) {
- 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);
- entryp->uses[entryp->nuses].line = _nc_curr_line;
- entryp->nuses++;
- } else {
- /* normal token lookup */
- entry_ptr = _nc_find_entry(_nc_curr_token.tk_name,
- _nc_syntax ? _nc_cap_hash_table : _nc_info_hash_table);
-
- /*
- * Our kluge to handle aliasing. The reason it's done
- * this ugly way, with a linear search, is so the hashing
- * machinery doesn't have to be made really complicated
- * (also we get better warnings this way). No point in
- * making this case fast, aliased caps aren't common now
- * and will get rarer.
- */
- if (entry_ptr == NOTFOUND) {
- const struct alias *ap;
-
- if (_nc_syntax == SYN_TERMCAP) {
- for (ap = _nc_capalias_table; ap->from; ap++)
- if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) {
- if (ap->to == (char *) 0) {
- _nc_warning("%s (%s termcap extension) ignored",
- ap->from, ap->source);
- goto nexttok;
- }
-
- entry_ptr = _nc_find_entry(ap->to, _nc_cap_hash_table);
- if (entry_ptr && !silent)
- _nc_warning("%s (%s termcap extension) aliased to %s",
- ap->from, ap->source, ap->to);
- break;
- }
- } else { /* if (_nc_syntax == SYN_TERMINFO) */
- for (ap = _nc_infoalias_table; ap->from; ap++)
- if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) {
- if (ap->to == (char *) 0) {
- _nc_warning("%s (%s terminfo extension) ignored",
- ap->from, ap->source);
- goto nexttok;
- }
-
- entry_ptr = _nc_find_entry(ap->to, _nc_info_hash_table);
- if (entry_ptr && !silent)
- _nc_warning("%s (%s terminfo extension) aliased to %s",
- ap->from, ap->source, ap->to);
- break;
- }
-
- if (entry_ptr == NOTFOUND) {
- entry_ptr = lookup_fullname(_nc_curr_token.tk_name);
- }
- }
- }
-#if NCURSES_XNAMES
- /*
- * If we have extended-names active, we will automatically
- * define a name based on its context.
- */
- if (entry_ptr == NOTFOUND
- && _nc_user_definable
- && (entry_ptr = _nc_extend_names(entryp,
- _nc_curr_token.tk_name,
- token_type)) != 0) {
- if (_nc_tracing >= DEBUG_LEVEL(1))
- _nc_warning("extended capability '%s'", _nc_curr_token.tk_name);
- }
-#endif /* NCURSES_XNAMES */
-
- /* can't find this cap name, not even as an alias */
- if (entry_ptr == NOTFOUND) {
- if (!silent)
- _nc_warning("unknown capability '%s'",
- _nc_curr_token.tk_name);
- continue;
- }
-
- /* deal with bad type/value combinations. */
- if (token_type != CANCEL && entry_ptr->nte_type != token_type) {
- /*
- * Nasty special cases here handle situations in which type
- * information can resolve name clashes. Normal lookup
- * finds the last instance in the capability table of a
- * given name, regardless of type. find_type_entry looks
- * for a first matching instance with given type. So as
- * long as all ambiguous names occur in pairs of distinct
- * type, this will do the job.
- */
-
- /* tell max_attributes from arrow_key_map */
- if (token_type == NUMBER && !strcmp("ma", _nc_curr_token.tk_name))
- entry_ptr = _nc_find_type_entry("ma", NUMBER,
- _nc_get_table(_nc_syntax
- != 0));
-
- /* map terminfo's string MT to MT */
- else if (token_type == STRING && !strcmp("MT", _nc_curr_token.tk_name))
- entry_ptr = _nc_find_type_entry("MT", STRING,
- _nc_get_table(_nc_syntax
- != 0));
-
- /* treat strings without following "=" as empty strings */
- else if (token_type == BOOLEAN && entry_ptr->nte_type == STRING)
- token_type = STRING;
- /* we couldn't recover; skip this token */
- else {
- if (!silent) {
- const char *type_name;
- switch (entry_ptr->nte_type) {
- case BOOLEAN:
- type_name = "boolean";
- break;
- case STRING:
- type_name = "string";
- break;
- case NUMBER:
- type_name = "numeric";
- break;
- default:
- type_name = "unknown";
- break;
- }
- _nc_warning("wrong type used for %s capability '%s'",
- type_name, _nc_curr_token.tk_name);
- }
- continue;
- }
- }
-
- /* now we know that the type/value combination is OK */
- switch (token_type) {
- case CANCEL:
- switch (entry_ptr->nte_type) {
- case BOOLEAN:
- entryp->tterm.Booleans[entry_ptr->nte_index] = CANCELLED_BOOLEAN;
- break;
-
- case NUMBER:
- entryp->tterm.Numbers[entry_ptr->nte_index] = CANCELLED_NUMERIC;
- break;
-
- case STRING:
- entryp->tterm.Strings[entry_ptr->nte_index] = CANCELLED_STRING;
- break;
- }
- break;
-
- case BOOLEAN:
- entryp->tterm.Booleans[entry_ptr->nte_index] = TRUE;
- break;
-
- case NUMBER:
- entryp->tterm.Numbers[entry_ptr->nte_index] =
- _nc_curr_token.tk_valnumber;
- break;
-
- case STRING:
- ptr = _nc_curr_token.tk_valstring;
- if (_nc_syntax == SYN_TERMCAP)
- ptr = _nc_captoinfo(_nc_curr_token.tk_name,
- ptr,
- parametrized[entry_ptr->nte_index]);
- entryp->tterm.Strings[entry_ptr->nte_index] = _nc_save_str(ptr);
- break;
-
- default:
- if (!silent)
- _nc_warning("unknown token type");
- _nc_panic_mode((_nc_syntax == SYN_TERMCAP) ? ':' : ',');
- continue;
- }
- } /* end else cur_token.name != "use" */
- nexttok:
- continue; /* cannot have a label w/o statement */
- } /* endwhile (not EOF and not NAMES) */
-
- _nc_push_token(token_type);
- _nc_set_type(_nc_first_name(entryp->tterm.term_names));
-
- /*
- * Try to deduce as much as possible from extension capabilities
- * (this includes obsolete BSD capabilities). Sigh...it would be more
- * space-efficient to call this after use resolution, but it has
- * to be done before entry allocation is wrapped up.
- */
- if (!literal) {
- if (_nc_syntax == SYN_TERMCAP) {
- bool has_base_entry = FALSE;
- int i;
-
- /*
- * Don't insert defaults if this is a `+' entry meant only
- * for inclusion in other entries (not sure termcap ever
- * had these, actually).
- */
- if (strchr(entryp->tterm.term_names, '+'))
- has_base_entry = TRUE;
- else
- /*
- * Otherwise, look for a base entry that will already
- * have picked up defaults via translation.
- */
- for (i = 0; i < entryp->nuses; i++)
- if (!strchr((char *) entryp->uses[i].name, '+'))
- has_base_entry = TRUE;
-
- postprocess_termcap(&entryp->tterm, has_base_entry);
- } else
- postprocess_terminfo(&entryp->tterm);
- }
- _nc_wrap_entry(entryp);
-
- return (OK);
-}
-
-int
-_nc_capcmp(const char *s, const char *t)
-/* compare two string capabilities, stripping out padding */
-{
- if (!s && !t)
- return (0);
- else if (!s || !t)
- return (1);
-
- for (;;) {
- if (s[0] == '$' && s[1] == '<') {
- for (s += 2;; s++)
- if (!(isdigit(*s) || *s == '.' || *s == '*' || *s == '/' ||
- *s == '>'))
- break;
- }
-
- if (t[0] == '$' && t[1] == '<') {
- for (t += 2;; t++)
- if (!(isdigit(*t) || *t == '.' || *t == '*' || *t == '/' ||
- *t == '>'))
- break;
- }
-
- /* we've now pushed s and t past any padding they were pointing at */
-
- if (*s == '\0' && *t == '\0')
- return (0);
-
- if (*s != *t)
- return (*t - *s);
-
- /* else *s == *t but one is not NUL, so continue */
- s++, t++;
- }
-}
-
-static void
-append_acs0(string_desc *dst, int code, int src)
-{
- if (src != 0) {
- char temp[3];
- temp[0] = code;
- temp[1] = src;
- temp[2] = 0;
- _nc_safe_strcat(dst, temp);
- }
-}
-
-static void
-append_acs(string_desc *dst, int code, char *src)
-{
- if (src != 0 && strlen(src) == 1) {
- append_acs0(dst, code, *src);
- }
-}
-
-/*
- * The ko capability, if present, consists of a comma-separated capability
- * list. For each capability, we may assume there is a keycap that sends the
- * string which is the value of that capability.
- */
-typedef struct {
- const char *from;
- const char *to;
-} assoc;
-static assoc const ko_xlate[] =
-{
- {"al", "kil1"}, /* insert line key -> KEY_IL */
- {"bt", "kcbt"}, /* back tab -> KEY_BTAB */
- {"cd", "ked"}, /* clear-to-eos key -> KEY_EOL */
- {"ce", "kel"}, /* clear-to-eol key -> KEY_EOS */
- {"cl", "kclr"}, /* clear key -> KEY_CLEAR */
- {"ct", "tbc"}, /* clear all tabs -> KEY_CATAB */
- {"dc", "kdch1"}, /* delete char -> KEY_DC */
- {"dl", "kdl1"}, /* delete line -> KEY_DL */
- {"do", "kcud1"}, /* down key -> KEY_DOWN */
- {"ei", "krmir"}, /* exit insert key -> KEY_EIC */
- {"ho", "khome"}, /* home key -> KEY_HOME */
- {"ic", "kich1"}, /* insert char key -> KEY_IC */
- {"im", "kIC"}, /* insert-mode key -> KEY_SIC */
- {"le", "kcub1"}, /* le key -> KEY_LEFT */
- {"nd", "kcuf1"}, /* nd key -> KEY_RIGHT */
- {"nl", "kent"}, /* new line key -> KEY_ENTER */
- {"st", "khts"}, /* set-tab key -> KEY_STAB */
- {"ta", CANCELLED_STRING},
- {"up", "kcuu1"}, /* up-arrow key -> KEY_UP */
- {(char *) 0, (char *) 0},
-};
-
-/*
- * This routine fills in string caps that either had defaults under
- * termcap or can be manufactured from obsolete termcap capabilities.
- * It was lifted from Ross Ridge's mytinfo package.
- */
-
-static const char C_CR[] = "\r";
-static const char C_LF[] = "\n";
-static const char C_BS[] = "\b";
-static const char C_HT[] = "\t";
-
-/*
- * Note that WANTED and PRESENT are not simple inverses! If a capability
- * has been explicitly cancelled, it's not considered WANTED.
- */
-#define WANTED(s) ((s) == ABSENT_STRING)
-#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING))
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed.
- */
-
-#undef CUR
-#define CUR tp->
-
-static void
-postprocess_termcap(TERMTYPE * tp, bool has_base)
-{
- char buf[MAX_LINE * 2 + 2];
- string_desc result;
-
- /*
- * TERMCAP DEFAULTS AND OBSOLETE-CAPABILITY TRANSLATIONS
- *
- * This first part of the code is the functional inverse of the
- * fragment in capdefaults.c.
- * ----------------------------------------------------------------------
- */
-
- /* if there was a tc entry, assume we picked up defaults via that */
- if (!has_base) {
- if (WANTED(init_3string) && termcap_init2)
- init_3string = _nc_save_str(termcap_init2);
-
- if (WANTED(reset_2string) && termcap_reset)
- reset_2string = _nc_save_str(termcap_reset);
-
- if (WANTED(carriage_return)) {
- if (carriage_return_delay > 0) {
- sprintf(buf, "%s$<%d>", C_CR, carriage_return_delay);
- carriage_return = _nc_save_str(buf);
- } else
- carriage_return = _nc_save_str(C_CR);
- }
- if (WANTED(cursor_left)) {
- if (backspace_delay > 0) {
- sprintf(buf, "%s$<%d>", C_BS, backspace_delay);
- cursor_left = _nc_save_str(buf);
- } else if (backspaces_with_bs == 1)
- cursor_left = _nc_save_str(C_BS);
- else if (PRESENT(backspace_if_not_bs))
- cursor_left = backspace_if_not_bs;
- }
- /* vi doesn't use "do", but it does seems to use nl (or '\n') instead */
- if (WANTED(cursor_down)) {
- if (PRESENT(linefeed_if_not_lf))
- cursor_down = linefeed_if_not_lf;
- else if (linefeed_is_newline != 1) {
- if (new_line_delay > 0) {
- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
- cursor_down = _nc_save_str(buf);
- } else
- cursor_down = _nc_save_str(C_LF);
- }
- }
- if (WANTED(scroll_forward) && crt_no_scrolling != 1) {
- if (PRESENT(linefeed_if_not_lf))
- cursor_down = linefeed_if_not_lf;
- else if (linefeed_is_newline != 1) {
- if (new_line_delay > 0) {
- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
- scroll_forward = _nc_save_str(buf);
- } else
- scroll_forward = _nc_save_str(C_LF);
- }
- }
- if (WANTED(newline)) {
- if (linefeed_is_newline == 1) {
- if (new_line_delay > 0) {
- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
- newline = _nc_save_str(buf);
- } else
- newline = _nc_save_str(C_LF);
- } 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))
- 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))
- newline = _nc_save_str(buf);
- }
- }
- }
-
- /*
- * Inverse of capdefaults.c code ends here.
- * ----------------------------------------------------------------------
- *
- * TERMCAP-TO TERMINFO MAPPINGS FOR SOURCE TRANSLATION
- *
- * These translations will *not* be inverted by tgetent().
- */
-
- if (!has_base) {
- /*
- * We wait until now to decide if we've got a working cr because even
- * one that doesn't work can be used for newline. Unfortunately the
- * space allocated for it is wasted.
- */
- if (return_does_clr_eol == 1 || no_correctly_working_cr == 1)
- carriage_return = ABSENT_STRING;
-
- /*
- * Supposedly most termcap entries have ta now and '\t' is no longer a
- * default, but it doesn't seem to be true...
- */
- if (WANTED(tab)) {
- if (horizontal_tab_delay > 0) {
- sprintf(buf, "%s$<%d>", C_HT, horizontal_tab_delay);
- tab = _nc_save_str(buf);
- } else
- tab = _nc_save_str(C_HT);
- }
- if (init_tabs == ABSENT_NUMERIC && has_hardware_tabs == TRUE)
- init_tabs = 8;
-
- /*
- * Assume we can beep with ^G unless we're given bl@.
- */
- if (WANTED(bell))
- bell = _nc_save_str("\007");
- }
-
- /*
- * Translate the old termcap :pt: capability to it#8 + ht=\t
- */
- if (has_hardware_tabs == TRUE) {
- if (init_tabs != 8 && init_tabs != ABSENT_NUMERIC)
- _nc_warning("hardware tabs with a width other than 8: %d", init_tabs);
- else {
- if (tab && _nc_capcmp(tab, C_HT))
- _nc_warning("hardware tabs with a non-^I tab string %s",
- _nc_visbuf(tab));
- else {
- if (WANTED(tab))
- tab = _nc_save_str(C_HT);
- init_tabs = 8;
- }
- }
- }
- /*
- * Now translate the ko capability, if there is one. This
- * isn't from mytinfo...
- */
- if (PRESENT(other_non_function_keys)) {
- char *base = other_non_function_keys;
- char *bp, *cp, *dp;
- struct name_table_entry const *from_ptr;
- struct name_table_entry const *to_ptr;
- assoc const *ap;
- char buf2[MAX_TERMINFO_LENGTH];
- bool foundim;
-
- /* we're going to use this for a special case later */
- dp = strchr(other_non_function_keys, 'i');
- foundim = (dp != 0) && (dp[1] == 'm');
-
- /* look at each comma-separated capability in the ko string... */
- for (base = other_non_function_keys;
- (cp = strchr(base, ',')) != 0;
- base = cp + 1) {
- size_t len = cp - base;
-
- for (ap = ko_xlate; ap->from; ap++)
- if (len == strlen(ap->from)
- && strncmp(ap->from, base, len) == 0)
- break;
- if (!ap->to) {
- _nc_warning("unknown capability `%.*s' in ko string",
- (int) len, base);
- continue;
- } else if (ap->to == CANCELLED_STRING) /* ignore it */
- continue;
-
- /* now we know we found a match in ko_table, so... */
-
- from_ptr = _nc_find_entry(ap->from, _nc_cap_hash_table);
- to_ptr = _nc_find_entry(ap->to, _nc_info_hash_table);
-
- if (!from_ptr || !to_ptr) /* should never happen! */
- _nc_err_abort("ko translation table is invalid, I give up");
-
- if (WANTED(tp->Strings[from_ptr->nte_index])) {
- _nc_warning("no value for ko capability %s", ap->from);
- continue;
- }
-
- if (tp->Strings[to_ptr->nte_index]) {
- /* There's no point in warning about it if it's the same
- * string; that's just an inefficiency.
- */
- if (strcmp(
- tp->Strings[from_ptr->nte_index],
- tp->Strings[to_ptr->nte_index]) != 0)
- _nc_warning("%s (%s) already has an explicit value %s, ignoring ko",
- ap->to, ap->from,
- _nc_visbuf(tp->Strings[to_ptr->nte_index]));
- continue;
- }
-
- /*
- * The magic moment -- copy the mapped key string over,
- * stripping out padding.
- */
- for (dp = buf2, bp = tp->Strings[from_ptr->nte_index]; *bp; bp++) {
- if (bp[0] == '$' && bp[1] == '<') {
- while (*bp && *bp != '>') {
- ++bp;
- }
- } else
- *dp++ = *bp;
- }
- *dp++ = '\0';
-
- tp->Strings[to_ptr->nte_index] = _nc_save_str(buf2);
- }
-
- /*
- * Note: ko=im and ko=ic both want to grab the `Insert'
- * keycap. There's a kich1 but no ksmir, so the ic capability
- * got mapped to kich1 and im to kIC to avoid a collision.
- * If the description has im but not ic, hack kIC back to kich1.
- */
- if (foundim && WANTED(key_ic) && key_sic) {
- key_ic = key_sic;
- key_sic = ABSENT_STRING;
- }
- }
-
- 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);
- }
-
- /*
- * Translate XENIX forms characters.
- */
- if (PRESENT(acs_ulcorner) ||
- PRESENT(acs_llcorner) ||
- PRESENT(acs_urcorner) ||
- PRESENT(acs_lrcorner) ||
- PRESENT(acs_ltee) ||
- PRESENT(acs_rtee) ||
- PRESENT(acs_btee) ||
- PRESENT(acs_ttee) ||
- PRESENT(acs_hline) ||
- PRESENT(acs_vline) ||
- PRESENT(acs_plus)) {
- char buf2[MAX_TERMCAP_LENGTH];
-
- _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);
-
- if (buf2[0]) {
- acs_chars = _nc_save_str(buf2);
- _nc_warning("acsc string synthesized from XENIX capabilities");
- }
- } else if (acs_chars == 0
- && enter_alt_charset_mode != 0
- && exit_alt_charset_mode != 0) {
- acs_chars =
- _nc_save_str("``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~");
- }
-}
-
-static void
-postprocess_terminfo(TERMTYPE * tp)
-{
- /*
- * TERMINFO-TO-TERMINFO MAPPINGS FOR SOURCE TRANSLATION
- * ----------------------------------------------------------------------
- */
-
- /*
- * Translate AIX forms characters.
- */
- if (PRESENT(box_chars_1)) {
- char buf2[MAX_TERMCAP_LENGTH];
- string_desc result;
-
- _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 */
-
- if (buf2[0]) {
- acs_chars = _nc_save_str(buf2);
- _nc_warning("acsc string synthesized from AIX capabilities");
- box_chars_1 = ABSENT_STRING;
- }
- }
- /*
- * ----------------------------------------------------------------------
- */
-}
-
-/*
- * Do a linear search through the terminfo tables to find a given full-name.
- * We don't expect to do this often, so there's no hashing function.
- *
- * In effect, this scans through the 3 lists of full-names, and looks them
- * up in _nc_info_table, which is organized so that the nte_index fields are
- * sorted, but the nte_type fields are not necessarily grouped together.
- */
-static struct name_table_entry const *
-lookup_fullname(const char *find)
-{
- int state = -1;
-
- for (;;) {
- int count = 0;
- NCURSES_CONST char *const *names;
-
- switch (++state) {
- case BOOLEAN:
- names = boolfnames;
- break;
- case STRING:
- names = strfnames;
- break;
- case NUMBER:
- names = numfnames;
- break;
- default:
- return NOTFOUND;
- }
-
- for (count = 0; names[count] != 0; count++) {
- if (!strcmp(names[count], find)) {
- struct name_table_entry const *entry_ptr = _nc_get_table(FALSE);
- while (entry_ptr->nte_type != state
- || entry_ptr->nte_index != count)
- entry_ptr++;
- return entry_ptr;
- }
- }
- }
-}
-
-/* parse_entry.c ends here */
diff --git a/ncurses-5.2/ncurses/tinfo/read_entry.c b/ncurses-5.2/ncurses/tinfo/read_entry.c
deleted file mode 100644
index 75d52e2..0000000
--- a/ncurses-5.2/ncurses/tinfo/read_entry.c
+++ /dev/null
@@ -1,501 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * read_entry.c -- Routine for reading in a compiled terminfo file
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#if !HAVE_TELL
-#define tell(fd) 0 /* lseek() is POSIX, but not tell() - odd... */
-#endif
-
-/*
- * int
- * _nc_read_file_entry(filename, ptr)
- *
- * Read the compiled terminfo entry in the given file into the
- * structure pointed to by ptr, allocating space for the string
- * table.
- */
-
-#undef BYTE
-#define BYTE(p,n) (unsigned char)((p)[n])
-
-#define IS_NEG1(p) ((BYTE(p,0) == 0377) && (BYTE(p,1) == 0377))
-#define IS_NEG2(p) ((BYTE(p,0) == 0376) && (BYTE(p,1) == 0377))
-#define LOW_MSB(p) (BYTE(p,0) + 256*BYTE(p,1))
-
-static bool have_tic_directory = FALSE;
-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.
- */
-const char *
-_nc_tic_dir(const char *path)
-{
- static const char *result = TERMINFO;
-
- if (!keep_tic_directory) {
- if (path != 0) {
- result = path;
- have_tic_directory = TRUE;
- } else if (!have_tic_directory && use_terminfo_vars()) {
- char *envp;
- if ((envp = getenv("TERMINFO")) != 0)
- return _nc_tic_dir(envp);
- }
- }
- return result;
-}
-
-/*
- * Special fix to prevent the terminfo directory from being moved after tic
- * 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
-_nc_keep_tic_dir(const char *path)
-{
- _nc_tic_dir(path);
- keep_tic_directory = TRUE;
-}
-
-static void
-convert_shorts(char *buf, short *Numbers, int count)
-{
- int i;
- for (i = 0; i < count; i++) {
- if (IS_NEG1(buf + 2 * i))
- Numbers[i] = ABSENT_NUMERIC;
- else if (IS_NEG2(buf + 2 * i))
- Numbers[i] = CANCELLED_NUMERIC;
- else
- Numbers[i] = LOW_MSB(buf + 2 * i);
- TR(TRACE_DATABASE, ("get Numbers[%d]=%d", i, Numbers[i]));
- }
-}
-
-static void
-convert_strings(char *buf, char **Strings, int count, int size, char *table)
-{
- int i;
- char *p;
-
- for (i = 0; i < count; i++) {
- if (IS_NEG1(buf + 2 * i)) {
- Strings[i] = ABSENT_STRING;
- } else if (IS_NEG2(buf + 2 * i)) {
- Strings[i] = CANCELLED_STRING;
- } else if (LOW_MSB(buf + 2 * i) > size) {
- Strings[i] = ABSENT_STRING;
- } else {
- Strings[i] = (LOW_MSB(buf + 2 * i) + table);
- TR(TRACE_DATABASE, ("Strings[%d] = %s", i, _nc_visbuf(Strings[i])));
- }
-
- /* make sure all strings are NUL terminated */
- if (VALID_STRING(Strings[i])) {
- for (p = Strings[i]; p <= table + size; p++)
- if (*p == '\0')
- break;
- /* if there is no NUL, ignore the string */
- if (p > table + size)
- Strings[i] = ABSENT_STRING;
- }
- }
-}
-
-#define read_shorts(fd, buf, count) (read(fd, buf, (count)*2) == (count)*2)
-
-#define even_boundary(value) \
- if ((value) % 2 != 0) read(fd, buf, 1)
-
-static int
-read_termtype(int fd, TERMTYPE * ptr)
-/* return 1 if read, 0 if not found or garbled */
-{
- int name_size, bool_count, num_count, str_count, str_size;
- int i;
- char buf[MAX_ENTRY_SIZE];
-
- TR(TRACE_DATABASE, ("READ termtype header @%d", tell(fd)));
-
- memset(ptr, 0, sizeof(*ptr));
-
- /* grab the header */
- if (!read_shorts(fd, buf, 6)
- || LOW_MSB(buf) != MAGIC) {
- return (0);
- }
-
- _nc_free_termtype(ptr);
- name_size = LOW_MSB(buf + 2);
- bool_count = LOW_MSB(buf + 4);
- num_count = LOW_MSB(buf + 6);
- str_count = LOW_MSB(buf + 8);
- str_size = LOW_MSB(buf + 10);
-
- TR(TRACE_DATABASE,
- ("TERMTYPE name_size=%d, bool=%d/%d, num=%d/%d str=%d/%d(%d)",
- name_size, bool_count, BOOLCOUNT, num_count, NUMCOUNT,
- str_count, STRCOUNT, str_size));
- if (name_size < 0
- || bool_count < 0
- || num_count < 0
- || str_count < 0
- || str_size < 0) {
- return (0);
- }
-
- if (str_size) {
- /* try to allocate space for the string table */
- if (str_count * 2 >= (int) sizeof(buf)
- || (ptr->str_table = typeMalloc(char, (unsigned) str_size)) == 0) {
- return (0);
- }
- } else {
- str_count = 0;
- }
-
- /* grab the name (a null-terminate string) */
- read(fd, buf, min(MAX_NAME_SIZE, (unsigned) name_size));
- buf[MAX_NAME_SIZE] = '\0';
- ptr->term_names = typeCalloc(char, strlen(buf) + 1);
- if (ptr->term_names == NULL) {
- return (0);
- }
- (void) strcpy(ptr->term_names, buf);
- if (name_size > MAX_NAME_SIZE)
- lseek(fd, (off_t) (name_size - MAX_NAME_SIZE), 1);
-
- /* grab the booleans */
- if ((ptr->Booleans = typeCalloc(char, max(BOOLCOUNT, bool_count))) == 0
- || read(fd, ptr->Booleans, (unsigned) bool_count) < bool_count) {
- return (0);
- }
-
- /*
- * If booleans end on an odd byte, skip it. The machine they
- * originally wrote terminfo on must have been a 16-bit
- * word-oriented machine that would trap out if you tried a
- * word access off a 2-byte boundary.
- */
- even_boundary(name_size + bool_count);
-
- /* grab the numbers */
- if ((ptr->Numbers = typeCalloc(short, max(NUMCOUNT, num_count))) == 0
- || !read_shorts(fd, buf, num_count)) {
- return (0);
- }
- convert_shorts(buf, ptr->Numbers, num_count);
-
- if ((ptr->Strings = typeCalloc(char *, max(STRCOUNT, str_count))) == 0)
- return (0);
-
- if (str_count) {
- /* grab the string offsets */
- if (!read_shorts(fd, buf, str_count)) {
- return (0);
- }
- /* finally, grab the string table itself */
- if (read(fd, ptr->str_table, (unsigned) str_size) != str_size)
- return (0);
- convert_strings(buf, ptr->Strings, str_count, str_size, ptr->str_table);
- }
-#if NCURSES_XNAMES
-
- ptr->num_Booleans = BOOLCOUNT;
- ptr->num_Numbers = NUMCOUNT;
- ptr->num_Strings = STRCOUNT;
-
- /*
- * Read extended entries, if any, after the normal end of terminfo data.
- */
- even_boundary(str_size);
- TR(TRACE_DATABASE, ("READ extended_header @%d", tell(fd)));
- if (_nc_user_definable && read_shorts(fd, buf, 5)) {
- int ext_bool_count = LOW_MSB(buf + 0);
- int ext_num_count = LOW_MSB(buf + 2);
- int ext_str_count = LOW_MSB(buf + 4);
- int ext_str_size = LOW_MSB(buf + 6);
- int ext_str_limit = LOW_MSB(buf + 8);
- int need = (ext_bool_count + ext_num_count + ext_str_count);
- int base = 0;
-
- if (need >= (int) sizeof(buf)
- || ext_str_size >= (int) sizeof(buf)
- || ext_str_limit >= (int) sizeof(buf)
- || ext_bool_count < 0
- || ext_num_count < 0
- || ext_str_count < 0
- || ext_str_size < 0
- || ext_str_limit < 0)
- return (0);
-
- ptr->num_Booleans = BOOLCOUNT + ext_bool_count;
- ptr->num_Numbers = NUMCOUNT + ext_num_count;
- ptr->num_Strings = STRCOUNT + ext_str_count;
-
- ptr->Booleans = typeRealloc(char, ptr->num_Booleans, ptr->Booleans);
- ptr->Numbers = typeRealloc(short, ptr->num_Numbers, ptr->Numbers);
- ptr->Strings = typeRealloc(char *, ptr->num_Strings, ptr->Strings);
-
- TR(TRACE_DATABASE, ("extended header is %d/%d/%d(%d:%d)",
- ext_bool_count, ext_num_count, ext_str_count,
- ext_str_size, ext_str_limit));
-
- TR(TRACE_DATABASE, ("READ %d extended-booleans @%d",
- ext_bool_count, tell(fd)));
- if ((ptr->ext_Booleans = ext_bool_count) != 0) {
- if (read(fd, ptr->Booleans + BOOLCOUNT, (unsigned)
- ext_bool_count) != ext_bool_count)
- return (0);
- }
- even_boundary(ext_bool_count);
-
- TR(TRACE_DATABASE, ("READ %d extended-numbers @%d",
- ext_num_count, tell(fd)));
- if ((ptr->ext_Numbers = ext_num_count) != 0) {
- if (!read_shorts(fd, buf, ext_num_count))
- return (0);
- TR(TRACE_DATABASE, ("Before converting extended-numbers"));
- convert_shorts(buf, ptr->Numbers + NUMCOUNT, ext_num_count);
- }
-
- TR(TRACE_DATABASE, ("READ extended-offsets @%d", tell(fd)));
- if ((ext_str_count || need)
- && !read_shorts(fd, buf, ext_str_count + need))
- return (0);
-
- TR(TRACE_DATABASE, ("READ %d bytes of extended-strings @%d",
- ext_str_limit, tell(fd)));
-
- if (ext_str_limit) {
- if ((ptr->ext_str_table = typeMalloc(char, ext_str_limit)) == 0)
- return (0);
- if (read(fd, ptr->ext_str_table, ext_str_limit) != ext_str_limit)
- return (0);
- TR(TRACE_DATABASE, ("first extended-string is %s", _nc_visbuf(ptr->ext_str_table)));
- }
-
- if ((ptr->ext_Strings = ext_str_count) != 0) {
- TR(TRACE_DATABASE,
- ("Before computing extended-string capabilities str_count=%d, ext_str_count=%d",
- str_count, ext_str_count));
- convert_strings(buf, ptr->Strings + str_count, ext_str_count,
- ext_str_limit, ptr->ext_str_table);
- for (i = ext_str_count - 1; i >= 0; i--) {
- TR(TRACE_DATABASE, ("MOVE from [%d:%d] %s",
- i, i + str_count,
- _nc_visbuf(ptr->Strings[i + str_count])));
- ptr->Strings[i + STRCOUNT] = ptr->Strings[i + str_count];
- if (VALID_STRING(ptr->Strings[i + STRCOUNT]))
- base += (strlen(ptr->Strings[i + STRCOUNT]) + 1);
- TR(TRACE_DATABASE, ("... to [%d] %s",
- i + STRCOUNT,
- _nc_visbuf(ptr->Strings[i + STRCOUNT])));
- }
- }
-
- if (need) {
- if ((ptr->ext_Names = typeCalloc(char *, need)) == 0)
- return (0);
- TR(TRACE_DATABASE,
- ("ext_NAMES starting @%d in extended_strings, first = %s",
- base, _nc_visbuf(ptr->ext_str_table + base)));
- convert_strings(buf + (2 * ext_str_count), ptr->ext_Names, need,
- ext_str_limit, ptr->ext_str_table + base);
- }
-
- T(("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)",
- ptr->num_Booleans, ptr->ext_Booleans,
- ptr->num_Numbers, ptr->ext_Numbers,
- ptr->num_Strings, ptr->ext_Strings));
-
- TR(TRACE_DATABASE, ("extend: num_Booleans:%d", ptr->num_Booleans));
- } else
-#endif /* NCURSES_XNAMES */
- {
- T(("...done reading terminfo bool %d num %d str %d",
- bool_count, num_count, str_count));
-#if NCURSES_XNAMES
- TR(TRACE_DATABASE, ("normal: num_Booleans:%d", ptr->num_Booleans));
-#endif
- }
-
- for (i = bool_count; i < BOOLCOUNT; i++)
- ptr->Booleans[i] = FALSE;
- for (i = num_count; i < NUMCOUNT; i++)
- ptr->Numbers[i] = ABSENT_NUMERIC;
- for (i = str_count; i < STRCOUNT; i++)
- ptr->Strings[i] = ABSENT_STRING;
-
- return (1);
-}
-
-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;
-
- if (_nc_access(filename, R_OK) < 0
- || (fd = open(filename, O_RDONLY | O_BINARY)) < 0) {
- T(("cannot open terminfo %s (errno=%d)", filename, errno));
- return (0);
- }
-
- T(("read terminfo %s", filename));
- if ((code = read_termtype(fd, ptr)) == 0)
- _nc_free_termtype(ptr);
- close(fd);
-
- return (code);
-}
-
-/*
- * Build a terminfo pathname and try to read the data. Returns 1 on success,
- * 0 on failure.
- */
-static int
-_nc_read_tic_entry(char *const filename,
- const char *const dir, const char *ttn, TERMTYPE * const tp)
-{
-/* maximum safe length of terminfo root directory name */
-#define MAX_TPATH (PATH_MAX - MAX_ALIAS - 6)
-
- if (strlen(dir) > MAX_TPATH)
- return 0;
- (void) sprintf(filename, "%s/%s", dir, ttn);
- return _nc_read_file_entry(filename, tp);
-}
-
-/*
- * Process the list of :-separated directories, looking for the terminal type.
- * We don't use strtok because it does not show us empty tokens.
- */
-static int
-_nc_read_terminfo_dirs(const char *dirs, char *const filename, const char *const
- ttn, TERMTYPE * const tp)
-{
- char *list, *a;
- const char *b;
- int code = 0;
-
- /* we'll modify the argument, so we must copy */
- if ((b = a = list = strdup(dirs)) == NULL)
- return (0);
-
- for (;;) {
- int c = *a;
- if (c == 0 || c == ':') {
- *a = 0;
- if ((b + 1) >= a)
- b = TERMINFO;
- if (_nc_read_tic_entry(filename, b, ttn, tp) == 1) {
- code = 1;
- break;
- }
- b = a + 1;
- if (c == 0)
- break;
- }
- a++;
- }
-
- free(list);
- return (code);
-}
-
-/*
- * _nc_read_entry(char *tn, char *filename, TERMTYPE *tp)
- *
- * Find and read the compiled entry for a given terminal type,
- * if it exists. We take pains here to make sure no combination
- * of environment variables and terminal type name can be used to
- * overrun the file buffer.
- */
-
-int
-_nc_read_entry(const char *const tn, char *const filename, TERMTYPE * const tp)
-{
- char *envp;
- char ttn[MAX_ALIAS + 3];
-
- /* truncate the terminal name to prevent dangerous buffer airline */
- (void) sprintf(ttn, "%c/%.*s", *tn, MAX_ALIAS, tn);
-
- /* This is System V behavior, in conjunction with our requirements for
- * writing terminfo entries.
- */
- if (have_tic_directory
- && _nc_read_tic_entry(filename, _nc_tic_dir(0), ttn, tp) == 1)
- return 1;
-
- if (use_terminfo_vars()) {
- if ((envp = getenv("TERMINFO")) != 0
- && _nc_read_tic_entry(filename, _nc_tic_dir(envp), ttn, tp) == 1)
- return 1;
-
- /* this is an ncurses extension */
- if ((envp = _nc_home_terminfo()) != 0) {
- if (_nc_read_tic_entry(filename, envp, ttn, tp) == 1) {
- return (1);
- }
- }
-
- /* this is an ncurses extension */
- if ((envp = getenv("TERMINFO_DIRS")) != 0)
- return _nc_read_terminfo_dirs(envp, filename, ttn, tp);
- }
-
- /* Try the system directory. Note that the TERMINFO_DIRS value, if
- * defined by the configure script, begins with a ":", which will be
- * interpreted as TERMINFO.
- */
-#ifdef TERMINFO_DIRS
- return _nc_read_terminfo_dirs(TERMINFO_DIRS, filename, ttn, tp);
-#else
- return _nc_read_tic_entry(filename, TERMINFO, ttn, tp);
-#endif
-}
diff --git a/ncurses-5.2/ncurses/tinfo/read_termcap.c b/ncurses-5.2/ncurses/tinfo/read_termcap.c
deleted file mode 100644
index 55029d2..0000000
--- a/ncurses-5.2/ncurses/tinfo/read_termcap.c
+++ /dev/null
@@ -1,1111 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * Termcap compatibility support
- *
- * If your OS integrator didn't install a terminfo database, you can call
- * _nc_read_termcap_entry() to support reading and translating capabilities
- * from the system termcap file. This is a kludge; it will bulk up and slow
- * down every program that uses ncurses, and translated termcap entries cannot
- * use full terminfo capabilities. Don't use it unless you absolutely have to;
- * instead, get your system people to run tic(1) from root on the terminfo
- * master included with ncurses to translate it into a terminfo database.
- *
- * If USE_GETCAP is enabled, we use what is effectively a copy of the 4.4BSD
- * getcap code to fetch entries. There are disadvantages to this; mainly that
- * getcap(3) does its own resolution, meaning that entries read in in this way
- * can't reference the terminfo tree. The only thing it buys is faster startup
- * time, getcap(3) is much faster than our tic parser.
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#if !PURE_TERMINFO
-
-#ifdef __EMX__
-#define is_pathname(s) ((((s) != 0) && ((s)[0] == '/')) \
- || (((s)[0] != 0) && ((s)[1] == ':')))
-#else
-#define is_pathname(s) ((s) != 0 && (s)[0] == '/')
-#endif
-
-#define TC_SUCCESS 0
-#define TC_UNRESOLVED -1
-#define TC_NOT_FOUND -2
-#define TC_SYS_ERR -3
-#define TC_REF_LOOP -4
-
-#if USE_GETCAP
-
-#if HAVE_BSD_CGETENT
-#define _nc_cgetcap cgetcap
-#define _nc_cgetent(buf, oline, db_array, name) cgetent(buf, db_array, name)
-#define _nc_cgetmatch cgetmatch
-#define _nc_cgetset cgetset
-#else
-static int _nc_cgetmatch(char *, const char *);
-static int _nc_getent(char **, unsigned *, int *, int, char **, int, const char
- *, int, char *);
-static int _nc_nfcmp(const char *, char *);
-
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Casey Leedom of Lawrence Livermore National Laboratory.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgment:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* static char sccsid[] = "@(#)getcap.c 8.3 (Berkeley) 3/25/94"; */
-
-#define BFRAG 1024
-#define BSIZE 1024
-#define ESC ('[' & 037) /* ASCII ESC */
-#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 int gottoprec; /* Flag indicating retrieval of toprecord */
-
-/*
- * Cgetset() allows the addition of a user specified buffer to be added to the
- * database array, in effect "pushing" the buffer on top of the virtual
- * database. 0 is returned on success, -1 on failure.
- */
-static int
-_nc_cgetset(const char *ent)
-{
- if (ent == 0) {
- FreeIfNeeded(toprec);
- toprec = 0;
- topreclen = 0;
- return (0);
- }
- topreclen = strlen(ent);
- if ((toprec = typeMalloc(char, topreclen + 1)) == 0) {
- errno = ENOMEM;
- return (-1);
- }
- gottoprec = 0;
- (void) strcpy(toprec, ent);
- return (0);
-}
-
-/*
- * Cgetcap searches the capability record buf for the capability cap with type
- * `type'. A pointer to the value of cap is returned on success, 0 if the
- * requested capability couldn't be found.
- *
- * Specifying a type of ':' means that nothing should follow cap (:cap:). In
- * this case a pointer to the terminating ':' or NUL will be returned if cap is
- * found.
- *
- * If (cap, '@') or (cap, terminator, '@') is found before (cap, terminator)
- * return 0.
- */
-static char *
-_nc_cgetcap(char *buf, const char *cap, int type)
-{
- register const char *cp;
- register char *bp;
-
- bp = buf;
- for (;;) {
- /*
- * Skip past the current capability field - it's either the
- * name field if this is the first time through the loop, or
- * the remainder of a field whose name failed to match cap.
- */
- for (;;) {
- if (*bp == '\0')
- return (0);
- else if (*bp++ == ':')
- break;
- }
-
- /*
- * Try to match (cap, type) in buf.
- */
- for (cp = cap; *cp == *bp && *bp != '\0'; cp++, bp++)
- continue;
- if (*cp != '\0')
- continue;
- if (*bp == '@')
- return (0);
- if (type == ':') {
- if (*bp != '\0' && *bp != ':')
- continue;
- return (bp);
- }
- if (*bp != type)
- continue;
- bp++;
- return (*bp == '@' ? 0 : bp);
- }
- /* NOTREACHED */
-}
-
-/*
- * Cgetent extracts the capability record name from the NULL terminated file
- * array db_array and returns a pointer to a malloc'd copy of it in buf. Buf
- * must be retained through all subsequent calls to cgetcap, cgetnum, cgetflag,
- * and cgetstr, but may then be freed.
- *
- * Returns:
- *
- * positive # on success (i.e., the index in db_array)
- * TC_UNRESOLVED if we had too many recurrences to resolve
- * TC_NOT_FOUND if the requested record couldn't be found
- * TC_SYS_ERR if a system error was encountered (e.g.,couldn't open a file)
- * TC_REF_LOOP if a potential reference loop is detected
- */
-static int
-_nc_cgetent(char **buf, int *oline, char **db_array, const char *name)
-{
- unsigned dummy;
-
- return (_nc_getent(buf, &dummy, oline, 0, db_array, -1, name, 0, 0));
-}
-
-/*
- * Getent implements the functions of cgetent. If fd is non-negative,
- * *db_array has already been opened and fd is the open file descriptor. We
- * do this to save time and avoid using up file descriptors for tc=
- * recursions.
- *
- * Getent returns the same success/failure codes as cgetent. On success, a
- * pointer to a malloc'd capability record with all tc= capabilities fully
- * expanded and its length (not including trailing ASCII NUL) are left in
- * *cap and *len.
- *
- * Basic algorithm:
- * + Allocate memory incrementally as needed in chunks of size BFRAG
- * for capability buffer.
- * + Recurse for each tc=name and interpolate result. Stop when all
- * names interpolated, a name can't be found, or depth exceeds
- * MAX_RECURSION.
- */
-#define DOALLOC(size) typeRealloc(char, size, record)
-static int
-_nc_getent(
- char **cap, /* termcap-content */
- unsigned *len, /* length, needed for recursion */
- int *beginning, /* line-number at match */
- int in_array, /* index in 'db_array[] */
- char **db_array, /* list of files to search */
- int fd,
- const char *name,
- int depth,
- char *nfield)
-{
- register char *r_end, *rp;
- int myfd = FALSE;
- char *record = 0;
- int tc_not_resolved;
- int current;
- int lineno;
-
- /*
- * Return with ``loop detected'' error if we've recurred more than
- * MAX_RECURSION times.
- */
- if (depth > MAX_RECURSION)
- return (TC_REF_LOOP);
-
- /*
- * Check if we have a top record from cgetset().
- */
- if (depth == 0 && toprec != 0 && _nc_cgetmatch(toprec, name) == 0) {
- if ((record = DOALLOC(topreclen + BFRAG)) == 0) {
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- (void) strcpy(record, toprec);
- rp = record + topreclen + 1;
- r_end = rp + BFRAG;
- current = in_array;
- } else {
- int foundit;
-
- /*
- * Allocate first chunk of memory.
- */
- if ((record = DOALLOC(BFRAG)) == 0) {
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- rp = r_end = record + BFRAG;
- foundit = FALSE;
-
- /*
- * Loop through database array until finding the record.
- */
- for (current = in_array; db_array[current] != 0; current++) {
- int eof = FALSE;
-
- /*
- * Open database if not already open.
- */
- if (fd >= 0) {
- (void) lseek(fd, (off_t) 0, SEEK_SET);
- } else if ((_nc_access(db_array[current], R_OK) < 0)
- || (fd = open(db_array[current], O_RDONLY, 0)) < 0) {
- /* No error on unfound file. */
- if (errno == ENOENT)
- continue;
- free(record);
- return (TC_SYS_ERR);
- } else {
- myfd = TRUE;
- }
- lineno = 0;
-
- /*
- * Find the requested capability record ...
- */
- {
- char buf[2048];
- register char *b_end = buf;
- register char *bp = buf;
- register int c;
-
- /*
- * Loop invariants:
- * There is always room for one more character in record.
- * R_end always points just past end of record.
- * Rp always points just past last character in record.
- * B_end always points just past last character in buf.
- * Bp always points at next character in buf.
- */
-
- for (;;) {
- int first = lineno + 1;
-
- /*
- * Read in a line implementing (\, newline)
- * line continuation.
- */
- rp = record;
- for (;;) {
- if (bp >= b_end) {
- int n;
-
- n = read(fd, buf, sizeof(buf));
- if (n <= 0) {
- if (myfd)
- (void) close(fd);
- if (n < 0) {
- free(record);
- return (TC_SYS_ERR);
- }
- fd = -1;
- eof = TRUE;
- break;
- }
- b_end = buf + n;
- bp = buf;
- }
-
- c = *bp++;
- if (c == '\n') {
- lineno++;
- if (rp == record || *(rp - 1) != '\\')
- break;
- }
- *rp++ = c;
-
- /*
- * Enforce loop invariant: if no room
- * left in record buffer, try to get
- * some more.
- */
- if (rp >= r_end) {
- unsigned pos;
- size_t newsize;
-
- pos = rp - record;
- newsize = r_end - record + BFRAG;
- record = DOALLOC(newsize);
- if (record == 0) {
- if (myfd)
- (void) close(fd);
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- r_end = record + newsize;
- rp = record + pos;
- }
- }
- /* loop invariant lets us do this */
- *rp++ = '\0';
-
- /*
- * If encountered eof check next file.
- */
- if (eof)
- break;
-
- /*
- * Toss blank lines and comments.
- */
- if (*record == '\0' || *record == '#')
- continue;
-
- /*
- * See if this is the record we want ...
- */
- if (_nc_cgetmatch(record, name) == 0
- && (nfield == 0
- || !_nc_nfcmp(nfield, record))) {
- foundit = TRUE;
- *beginning = first;
- break; /* found it! */
- }
- }
- }
- if (foundit)
- break;
- }
-
- if (!foundit)
- return (TC_NOT_FOUND);
- }
-
- /*
- * Got the capability record, but now we have to expand all tc=name
- * references in it ...
- */
- {
- register char *newicap, *s;
- register int newilen;
- unsigned ilen;
- int diff, iret, tclen, oline;
- char *icap, *scan, *tc, *tcstart, *tcend;
-
- /*
- * Loop invariants:
- * There is room for one more character in record.
- * R_end points just past end of record.
- * Rp points just past last character in record.
- * Scan points at remainder of record that needs to be
- * scanned for tc=name constructs.
- */
- scan = record;
- tc_not_resolved = FALSE;
- for (;;) {
- if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0)
- break;
-
- /*
- * Find end of tc=name and stomp on the trailing `:'
- * (if present) so we can use it to call ourselves.
- */
- s = tc;
- while (*s != '\0') {
- if (*s++ == ':') {
- *(s - 1) = '\0';
- break;
- }
- }
- tcstart = tc - 3;
- tclen = s - tcstart;
- tcend = s;
-
- iret = _nc_getent(&icap, &ilen, &oline, current, db_array, fd,
- tc, depth + 1, 0);
- newicap = icap; /* Put into a register. */
- newilen = ilen;
- if (iret != TC_SUCCESS) {
- /* an error */
- if (iret < TC_NOT_FOUND) {
- if (myfd)
- (void) close(fd);
- free(record);
- return (iret);
- }
- if (iret == TC_UNRESOLVED)
- tc_not_resolved = TRUE;
- /* couldn't resolve tc */
- if (iret == TC_NOT_FOUND) {
- *(s - 1) = ':';
- scan = s - 1;
- tc_not_resolved = TRUE;
- continue;
- }
- }
-
- /* not interested in name field of tc'ed record */
- s = newicap;
- while (*s != '\0' && *s++ != ':') ;
- newilen -= s - newicap;
- newicap = s;
-
- /* make sure interpolated record is `:'-terminated */
- s += newilen;
- if (*(s - 1) != ':') {
- *s = ':'; /* overwrite NUL with : */
- newilen++;
- }
-
- /*
- * Make sure there's enough room to insert the
- * new record.
- */
- diff = newilen - tclen;
- if (diff >= r_end - rp) {
- unsigned pos, tcpos, tcposend;
- size_t newsize;
-
- pos = rp - record;
- newsize = r_end - record + diff + BFRAG;
- tcpos = tcstart - record;
- tcposend = tcend - record;
- record = DOALLOC(newsize);
- if (record == 0) {
- if (myfd)
- (void) close(fd);
- free(icap);
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- r_end = record + newsize;
- rp = record + pos;
- tcstart = record + tcpos;
- tcend = record + tcposend;
- }
-
- /*
- * Insert tc'ed record into our record.
- */
- s = tcstart + newilen;
- memmove(s, tcend, (size_t) (rp - tcend));
- memmove(tcstart, newicap, (size_t) newilen);
- rp += diff;
- free(icap);
-
- /*
- * Start scan on `:' so next cgetcap works properly
- * (cgetcap always skips first field).
- */
- scan = s - 1;
- }
- }
-
- /*
- * Close file (if we opened it), give back any extra memory, and
- * return capability, length and success.
- */
- if (myfd)
- (void) close(fd);
- *len = rp - record - 1; /* don't count NUL */
- if (r_end > rp) {
- if ((record = DOALLOC((size_t) (rp - record))) == 0) {
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- }
-
- *cap = record;
- if (tc_not_resolved)
- return (TC_UNRESOLVED);
- return (current);
-}
-
-/*
- * Cgetmatch will return 0 if name is one of the names of the capability
- * record buf, -1 if not.
- */
-static int
-_nc_cgetmatch(char *buf, const char *name)
-{
- register const char *np;
- register char *bp;
-
- /*
- * Start search at beginning of record.
- */
- bp = buf;
- for (;;) {
- /*
- * Try to match a record name.
- */
- np = name;
- for (;;) {
- if (*np == '\0') {
- if (*bp == '|' || *bp == ':' || *bp == '\0')
- return (0);
- else
- break;
- } else if (*bp++ != *np++) {
- break;
- }
- }
-
- /*
- * Match failed, skip to next name in record.
- */
- bp--; /* a '|' or ':' may have stopped the match */
- for (;;) {
- if (*bp == '\0' || *bp == ':')
- return (-1); /* match failed totally */
- else if (*bp++ == '|')
- break; /* found next name */
- }
- }
-}
-
-/*
- * Compare name field of record.
- */
-static int
-_nc_nfcmp(const char *nf, char *rec)
-{
- char *cp, tmp;
- int ret;
-
- for (cp = rec; *cp != ':'; cp++) ;
-
- tmp = *(cp + 1);
- *(cp + 1) = '\0';
- ret = strcmp(nf, rec);
- *(cp + 1) = tmp;
-
- return (ret);
-}
-#endif /* HAVE_BSD_CGETENT */
-
-/*
- * Since ncurses provides its own 'tgetent()', we cannot use the native one.
- * So we reproduce the logic to get down to cgetent() -- or our cut-down
- * version of that -- to circumvent the problem of configuring against the
- * termcap library.
- */
-#define USE_BSD_TGETENT 1
-
-#if USE_BSD_TGETENT
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgment:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* static char sccsid[] = "@(#)termcap.c 8.1 (Berkeley) 6/4/93" */
-
-#define PBUFSIZ 512 /* max length of filename path */
-#define PVECSIZ 32 /* max number of names in path */
-#define TBUFSIZ (2048*2)
-
-static char *tbuf;
-
-/*
- * On entry, srcp points to a non ':' character which is the beginning of the
- * token, if any. We'll try to return a string that doesn't end with a ':'.
- */
-static char *
-get_tc_token(char **srcp, int *endp)
-{
- int ch;
- bool found = FALSE;
- char *s, *base;
- char *tok = 0;
-
- *endp = TRUE;
- for (s = base = *srcp; *s != '\0';) {
- ch = *s++;
- if (ch == '\\') {
- if (*s == '\0') {
- break;
- } else if (*s++ == '\n') {
- while (isspace(*s))
- s++;
- } else {
- found = TRUE;
- }
- } else if (ch == ':') {
- if (found) {
- tok = base;
- s[-1] = '\0';
- *srcp = s;
- *endp = FALSE;
- break;
- }
- base = s;
- } else if (isgraph(ch)) {
- found = TRUE;
- }
- }
-
- /* malformed entry may end without a ':' */
- if (tok == 0 && found) {
- tok = base;
- }
-
- return tok;
-}
-
-static char *
-copy_tc_token(char *dst, const char *src, size_t len)
-{
- int ch;
-
- while ((ch = *src++) != '\0') {
- if (ch == '\\' && *src == '\n') {
- while (isspace(*src))
- src++;
- continue;
- }
- if (--len == 0) {
- dst = 0;
- break;
- }
- *dst++ = ch;
- }
- return dst;
-}
-
-/*
- * Get an entry for terminal name in buffer bp from the termcap file.
- */
-static int
-_nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
-{
- static char *the_source;
-
- register char *p;
- register char *cp;
- char *dummy = NULL;
- char **fname;
- char *home;
- int i;
- char pathbuf[PBUFSIZ]; /* holds raw path of filenames */
- char *pathvec[PVECSIZ]; /* to point to names in pathbuf */
- char **pvec; /* holds usable tail of path vector */
- char *termpath;
- string_desc desc;
-
- fname = pathvec;
- pvec = pathvec;
- tbuf = bp;
- p = pathbuf;
- cp = use_terminfo_vars() ? getenv("TERMCAP") : NULL;
-
- /*
- * TERMCAP can have one of two things in it. It can be the name of a file
- * to use instead of /etc/termcap. In this case it better start with a
- * "/". Or it can be an entry to use so we don't have to read the file.
- * In this case it has to already have the newlines crunched out. If
- * TERMCAP does not hold a file name then a path of names is searched
- * instead. The path is found in the TERMPATH variable, or becomes
- * "$HOME/.termcap /etc/termcap" if no TERMPATH exists.
- */
- _nc_str_init(&desc, pathbuf, sizeof(pathbuf));
- if (cp == NULL) {
- _nc_safe_strcpy(&desc, "/etc/termcap /usr/share/misc/termcap");
- } else if (!is_pathname(cp)) { /* TERMCAP holds an entry */
- if ((termpath = getenv("TERMPATH")) != 0) {
- _nc_safe_strcat(&desc, termpath);
- } else {
- char temp[PBUFSIZ];
- temp[0] = 0;
- if ((home = getenv("HOME")) != 0 && *home != '\0'
- && strchr(home, ' ') == 0
- && strlen(home) < sizeof(temp) - 10) { /* setup path */
- sprintf(temp, "%s/", home); /* $HOME first */
- }
- /* 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");
- }
- } else { /* user-defined name in TERMCAP */
- _nc_safe_strcat(&desc, cp); /* still can be tokenized */
- }
-
- *fname++ = pathbuf; /* tokenize path into vector of names */
- while (*++p) {
- if (*p == ' ' || *p == ':') {
- *p = '\0';
- while (*++p)
- if (*p != ' ' && *p != ':')
- break;
- if (*p == '\0')
- break;
- *fname++ = p;
- if (fname >= pathvec + PVECSIZ) {
- fname--;
- break;
- }
- }
- }
- *fname = 0; /* mark end of vector */
- if (is_pathname(cp)) {
- if (_nc_cgetset(cp) < 0) {
- return (TC_SYS_ERR);
- }
- }
-
- i = _nc_cgetent(&dummy, lineno, pathvec, name);
-
- /* ncurses' termcap-parsing routines cannot handle multiple adjacent
- * empty fields, and mistakenly use the last valid cap entry instead of
- * the first (breaks tc= includes)
- */
- if (i >= 0) {
- char *pd, *ps, *tok;
- int endflag = FALSE;
- char *list[1023];
- size_t n, count = 0;
-
- pd = bp;
- ps = dummy;
- while (!endflag && (tok = get_tc_token(&ps, &endflag)) != 0) {
- bool ignore = FALSE;
-
- for (n = 1; n < count; n++) {
- char *s = list[n];
- if (s[0] == tok[0]
- && s[1] == tok[1]) {
- ignore = TRUE;
- break;
- }
- }
- if (ignore != TRUE) {
- list[count++] = tok;
- pd = copy_tc_token(pd, tok, TBUFSIZ - (2 + pd - bp));
- if (pd == 0) {
- i = -1;
- break;
- }
- *pd++ = ':';
- *pd = '\0';
- }
- }
- }
-
- FreeIfNeeded(dummy);
- FreeIfNeeded(the_source);
- the_source = 0;
-
- /* This is not related to the BSD cgetent(), but to fake up a suitable
- * filename for ncurses' error reporting. (If we are not using BSD
- * cgetent, then it is the actual filename).
- */
- if (i >= 0) {
- if ((the_source = strdup(pathvec[i])) != 0)
- *sourcename = the_source;
- }
-
- return (i);
-}
-#endif /* USE_BSD_TGETENT */
-#endif /* USE_GETCAP */
-
-#define MAXPATHS 32
-
-/*
- * Add a filename to the list in 'termpaths[]', checking that we really have
- * a right to open the file.
- */
-#if !USE_GETCAP
-static int
-add_tc(char *termpaths[], char *path, int count)
-{
- if (count < MAXPATHS
- && _nc_access(path, R_OK) == 0)
- termpaths[count++] = path;
- termpaths[count] = 0;
- return count;
-}
-#define ADD_TC(path, count) filecount = add_tc(termpaths, path, count)
-#endif /* !USE_GETCAP */
-
-int
-_nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
-{
- int found = FALSE;
- ENTRY *ep;
-#if USE_GETCAP_CACHE
- char cwd_buf[PATH_MAX];
-#endif
-#if USE_GETCAP
- char *p, tc[TBUFSIZ];
- static char *source;
- static int lineno;
-
- if (use_terminfo_vars() && (p = getenv("TERMCAP")) != 0
- && !is_pathname(p) && _nc_name_match(p, tn, "|:")) {
- /* TERMCAP holds a termcap entry */
- strncpy(tc, p, sizeof(tc) - 1);
- tc[sizeof(tc) - 1] = '\0';
- _nc_set_source("TERMCAP");
- } else {
- /* we're using getcap(3) */
- if (_nc_tgetent(tc, &source, &lineno, tn) < 0)
- return (ERR);
-
- _nc_curr_line = lineno;
- _nc_set_source(source);
- }
- _nc_read_entry_source((FILE *) 0, tc, FALSE, FALSE, NULLHOOK);
-#else
- /*
- * Here is what the 4.4BSD termcap(3) page prescribes:
- *
- * It will look in the environment for a TERMCAP variable. If found, and
- * the value does not begin with a slash, and the terminal type name is the
- * same as the environment string TERM, the TERMCAP string is used instead
- * of reading a termcap file. If it does begin with a slash, the string is
- * used as a path name of the termcap file to search. If TERMCAP does not
- * begin with a slash and name is different from TERM, tgetent() searches
- * the files $HOME/.termcap and /usr/share/misc/termcap, in that order,
- * unless the environment variable TERMPATH exists, in which case it
- * specifies a list of file pathnames (separated by spaces or colons) to be
- * searched instead.
- *
- * It goes on to state:
- *
- * Whenever multiple files are searched and a tc field occurs in the
- * requested entry, the entry it names must be found in the same file or
- * one of the succeeding files.
- *
- * However, this restriction is relaxed in ncurses; tc references to
- * previous files are permitted.
- *
- * This routine returns 1 if an entry is found, 0 if not found, and -1 if
- * the database is not accessible.
- */
- FILE *fp;
- char *tc, *termpaths[MAXPATHS];
- int filecount = 0;
- bool use_buffer = FALSE;
- char tc_buf[1024];
- char pathbuf[PATH_MAX];
-
- termpaths[filecount] = 0;
- if (use_terminfo_vars() && (tc = getenv("TERMCAP")) != 0) {
- if (is_pathname(tc)) { /* interpret as a filename */
- ADD_TC(tc, 0);
- } 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);
- }
- }
- }
- } else { /* normal case */
- char envhome[PATH_MAX], *h;
-
- filecount = 0;
-
- /*
- * 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);
-
-#define PRIVATE_CAP "%s/.termcap"
-
- if ((h = getenv("HOME")) != NULL && *h != '\0'
- && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) {
- /* user's .termcap, if any, should override it */
- (void) strcpy(envhome, h);
- (void) sprintf(pathbuf, PRIVATE_CAP, envhome);
- ADD_TC(pathbuf, filecount);
- }
- }
-
- /* parse the sources */
- if (use_buffer) {
- _nc_set_source("TERMCAP");
-
- /*
- * We don't suppress warning messages here. The presumption is
- * that since it's just a single entry, they won't be a pain.
- */
- _nc_read_entry_source((FILE *) 0, tc_buf, FALSE, FALSE, NULLHOOK);
- } else {
- int i;
-
- for (i = 0; i < filecount; i++) {
-
- T(("Looking for %s in %s", tn, termpaths[i]));
- if ((fp = fopen(termpaths[i], "r")) != (FILE *) 0) {
- _nc_set_source(termpaths[i]);
-
- /*
- * Suppress warning messages. Otherwise you get 400 lines of
- * crap from archaic termcap files as ncurses complains about
- * all the obsolete capabilities.
- */
- _nc_read_entry_source(fp, (char *) 0, FALSE, TRUE, NULLHOOK);
-
- (void) fclose(fp);
- }
- }
- }
-#endif /* USE_GETCAP */
-
- if (_nc_head == 0)
- return (ERR);
-
- /* resolve all use references */
- _nc_resolve_uses(TRUE);
-
- /* find a terminal matching tn, if we can */
-#if USE_GETCAP_CACHE
- if (getcwd(cwd_buf, sizeof(cwd_buf)) != 0) {
- _nc_set_writedir((char *) 0); /* note: this does a chdir */
-#endif
- for_entry_list(ep) {
- if (_nc_name_match(ep->tterm.term_names, tn, "|:")) {
- /*
- * Make a local copy of the terminal capabilities. Free all
- * entry storage except the string table for the loaded type
- * (which we disconnected from the list by NULLing out
- * ep->tterm.str_table above).
- */
- *tp = ep->tterm;
- ep->tterm.str_table = (char *) 0;
-
- /*
- * OK, now try to write the type to user's terminfo directory.
- * Next time he loads this, it will come through terminfo.
- *
- * Advantage: Second and subsequent fetches of this entry will
- * be very fast.
- *
- * Disadvantage: After the first time a termcap type is loaded
- * by its user, editing it in the /etc/termcap file, or in
- * TERMCAP, or in a local ~/.termcap, will be ineffective
- * unless the terminfo entry is explicitly removed.
- */
-#if USE_GETCAP_CACHE
- (void) _nc_write_entry(tp);
-#endif
- found = TRUE;
- break;
- }
- }
-#if USE_GETCAP_CACHE
- chdir(cwd_buf);
- }
-#endif
-
- _nc_free_entries(_nc_head);
- return (found);
-}
-#else
-extern void _nc_read_termcap(void);
-void
-_nc_read_termcap(void)
-{
-}
-#endif /* PURE_TERMINFO */
diff --git a/ncurses-5.2/ncurses/tinfo/setbuf.c b/ncurses-5.2/ncurses/tinfo/setbuf.c
deleted file mode 100644
index 5d70d78..0000000
--- a/ncurses-5.2/ncurses/tinfo/setbuf.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-
-/*
-** setbuf.c
-**
-** Support for set_term(), reset_shell_mode(), reset_prog_mode().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * If the output file descriptor is connected to a tty (the typical case) it
- * will probably be line-buffered. Keith Bostic pointed out that we don't want
- * this; it hoses people running over networks by forcing out a bunch of small
- * packets instead of one big one, so screen updates on ptys look jerky.
- * Restore block buffering to prevent this minor lossage.
- *
- * The buffer size is a compromise. Ideally we'd like a buffer that can hold
- * the maximum possible update size (the whole screen plus cup commands to
- * change lines as it's painted). On a 66-line xterm this can become
- * excessive. So we min it with the amount of data we think we can get through
- * two Ethernet packets (maximum packet size - 100 for TCP/IP overhead).
- *
- * Why two ethernet packets? It used to be one, on the theory that said
- * packets define the maximum size of atomic update. But that's less than the
- * 2000 chars on a 25 x 80 screen, and we don't want local updates to flicker
- * either. Two packet lengths will handle up to a 35 x 80 screen.
- *
- * The magic '6' is the estimated length of the end-of-line cup sequence to go
- * to the next line. It's generous. We used to mess with the buffering in
- * init_mvcur() after cost computation, but that lost the sequences emitted by
- * init_acs() in setupscreen().
- *
- * "The setvbuf function may be used only after the stream pointed to by stream
- * has been associated with an open file and before any other operation is
- * performed on the stream." (ISO 7.9.5.6.)
- *
- * Grrrr...
- *
- * On a lighter note, many implementations do in fact allow an application to
- * reset the buffering after it has been written to. We try to do this because
- * otherwise we leave stdout in buffered mode after endwin() is called. (This
- * also happens with SVr4 curses).
- *
- * There are pros/cons:
- *
- * con:
- * There is no guarantee that we can reestablish buffering once we've
- * dropped it.
- *
- * We _may_ lose data if the implementation does not coordinate this with
- * fflush.
- *
- * pro:
- * An implementation is more likely to refuse to change the buffering than
- * to do it in one of the ways mentioned above.
- *
- * The alternative is to have the application try to change buffering
- * itself, which is certainly no improvement.
- *
- * Just in case it does not work well on a particular system, the calls to
- * change buffering are all via the macro NC_BUFFERED. Some implementations
- * 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)
-{
- /* optional optimization hack -- do before any output to ofp */
-#if HAVE_SETVBUF || HAVE_SETBUFFER
- unsigned buf_len;
- char *buf_ptr;
-
- 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! */
- }
-#if !USE_SETBUF_0
- else return;
-#endif
- } else {
-#if !USE_SETBUF_0
- return;
-#else
- buf_len = 0;
- buf_ptr = 0;
-#endif
- }
-
-#if HAVE_SETVBUF
-#ifdef SETVBUF_REVERSED /* pre-svr3? */
- (void) setvbuf(ofp, buf_ptr, buf_len, buf_len ? _IOFBF : _IOLBF);
-#else
- (void) setvbuf(ofp, buf_ptr, buf_len ? _IOFBF : _IOLBF, buf_len);
-#endif
-#elif HAVE_SETBUFFER
- (void) setbuffer(ofp, buf_ptr, (int)buf_len);
-#endif
-
-#endif /* HAVE_SETVBUF || HAVE_SETBUFFER */
-}
diff --git a/ncurses-5.2/ncurses/tinfo/strings.c b/ncurses-5.2/ncurses/tinfo/strings.c
deleted file mode 100644
index 8198ec4..0000000
--- a/ncurses-5.2/ncurses/tinfo/strings.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/****************************************************************************
- * 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: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
-** lib_mvcur.c
-**/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id")
-
-/****************************************************************************
- * Useful string functions (especially for mvcur)
- ****************************************************************************/
-
-#if !HAVE_STRSTR
-char *
-_nc_strstr(const char *haystack, const char *needle)
-{
- size_t len1 = strlen(haystack);
- size_t len2 = strlen(needle);
- char *result = 0;
-
- while ((len1 != 0) && (len1-- >= len2)) {
- if (!strncmp(haystack, needle, len2)) {
- result = haystack;
- break;
- }
- haystack++;
- }
- return result;
-}
-#endif
-
-/*
- * Initialize the descriptor so we can append to it.
- */
-string_desc *
-_nc_str_init(string_desc * dst, char *src, size_t len)
-{
- if (dst != 0) {
- dst->s_head = src;
- dst->s_tail = src;
- dst->s_size = len - 1;
- if (src != 0)
- *src = 0;
- }
- return dst;
-}
-
-/*
- * Initialize the descriptor for only tracking the amount of memory used.
- */
-string_desc *
-_nc_str_null(string_desc * dst, size_t len)
-{
- return _nc_str_init(dst, 0, len);
-}
-
-/*
- * Copy a descriptor
- */
-string_desc *
-_nc_str_copy(string_desc * dst, string_desc * src)
-{
- *dst = *src;
- return dst;
-}
-
-/*
- * Replaces strcat into a fixed buffer, returning false on failure.
- */
-bool
-_nc_safe_strcat(string_desc * dst, const char *src)
-{
- if (src != 0) {
- size_t len = strlen(src);
-
- if (len < dst->s_size) {
- if (dst->s_tail != 0) {
- strcpy(dst->s_tail, src);
- dst->s_tail += len;
- }
- dst->s_size -= len;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*
- * Replaces strcpy into a fixed buffer, returning false on failure.
- */
-bool
-_nc_safe_strcpy(string_desc * dst, const char *src)
-{
- if (src != 0) {
- size_t len = strlen(src);
-
- if (len < dst->s_size) {
- if (dst->s_head != 0) {
- strcpy(dst->s_head, src);
- dst->s_tail = dst->s_head + len;
- }
- dst->s_size -= len;
- return TRUE;
- }
- }
- return FALSE;
-}
diff --git a/ncurses-5.2/ncurses/tinfo/write_entry.c b/ncurses-5.2/ncurses/tinfo/write_entry.c
deleted file mode 100644
index 3bd9781..0000000
--- a/ncurses-5.2/ncurses/tinfo/write_entry.c
+++ /dev/null
@@ -1,581 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * write_entry.c -- write a terminfo structure onto the file system
- */
-
-#include <curses.priv.h>
-
-#include <sys/stat.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-#ifndef S_ISDIR
-#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR)
-#endif
-
-#if 0
-#define TRACE_OUT(p) DEBUG(2, p)
-#else
-#define TRACE_OUT(p) /*nothing */
-#endif
-
-MODULE_ID("$Id$")
-
-static int total_written;
-
-static int write_object(FILE *, TERMTYPE *);
-
-static void
-write_file(char *filename, TERMTYPE * tp)
-{
- FILE *fp = (_nc_access(filename, W_OK) == 0) ? fopen(filename, "wb") : 0;
- if (fp == 0) {
- perror(filename);
- _nc_syserr_abort("can't open %s/%s", _nc_tic_dir(0), filename);
- }
- DEBUG(1, ("Created %s", filename));
-
- if (write_object(fp, tp) == ERR) {
- _nc_syserr_abort("error writing %s/%s", _nc_tic_dir(0), filename);
- }
- fclose(fp);
-}
-
-/*
- * make_directory(char *path)
- *
- * Make a directory if it doesn't exist.
- */
-static int
-make_directory(const char *path)
-{
- int rc;
- struct stat statbuf;
- char fullpath[PATH_MAX];
- const char *destination = _nc_tic_dir(0);
-
- if (path == destination || *path == '/') {
- if (strlen(path) + 1 > sizeof(fullpath))
- return (-1);
- (void) strcpy(fullpath, path);
- } else {
- if (strlen(destination) + strlen(path) + 2 > sizeof(fullpath))
- return (-1);
- (void) sprintf(fullpath, "%s/%s", destination, path);
- }
-
- if ((rc = stat(path, &statbuf)) < 0) {
- rc = mkdir(path, 0777);
- } else {
- if (_nc_access(path, R_OK | W_OK | X_OK) < 0) {
- rc = -1; /* permission denied */
- } else if (!(S_ISDIR(statbuf.st_mode))) {
- rc = -1; /* not a directory */
- }
- }
- return rc;
-}
-
-void
-_nc_set_writedir(char *dir)
-/* set the write directory for compiled entries */
-{
- const char *destination;
- char actual[PATH_MAX];
-
- if (dir == 0
- && use_terminfo_vars())
- dir = getenv("TERMINFO");
-
- if (dir != 0)
- (void) _nc_tic_dir(dir);
-
- destination = _nc_tic_dir(0);
- if (make_directory(destination) < 0) {
- char *home = _nc_home_terminfo();
-
- if (home != 0) {
- destination = home;
- if (make_directory(destination) < 0)
- _nc_err_abort("%s: permission denied (errno %d)",
- destination, errno);
- }
- }
-
- /*
- * Note: because of this code, this logic should be exercised
- * *once only* per run.
- */
- if (chdir(_nc_tic_dir(destination)) < 0
- || getcwd(actual, sizeof(actual)) == 0)
- _nc_err_abort("%s: not a directory", destination);
- _nc_keep_tic_dir(strdup(actual));
-}
-
-/*
- * check_writeable(char code)
- *
- * Miscellaneous initialisations
- *
- * Check for access rights to destination directories
- * Create any directories which don't exist.
- * Note: there's no reason to return the result of make_directory(), since
- * this function is called only in instances where that has to succeed.
- *
- */
-
-static void
-check_writeable(int code)
-{
- static const char dirnames[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- static bool verified[sizeof(dirnames)];
-
- char dir[2];
- char *s;
-
- if (code == 0 || (s = strchr(dirnames, code)) == 0)
- _nc_err_abort("Illegal terminfo subdirectory \"%c\"", code);
-
- if (verified[s - dirnames])
- return;
-
- dir[0] = code;
- dir[1] = '\0';
- if (make_directory(dir) < 0) {
- _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
- }
-
- verified[s - dirnames] = TRUE;
-}
-
-/*
- * _nc_write_entry()
- *
- * Save the compiled version of a description in the filesystem.
- *
- * make a copy of the name-list
- * break it up into first-name and all-but-last-name
- * creat(first-name)
- * write object information to first-name
- * close(first-name)
- * for each name in all-but-last-name
- * link to first-name
- *
- * Using 'time()' to obtain a reference for file timestamps is unreliable,
- * e.g., with NFS, because the filesystem may have a different time
- * reference. We check for pre-existence of links by latching the first
- * timestamp from a file that we create.
- *
- * The _nc_warning() calls will report a correct line number only if
- * _nc_curr_line is properly set before the write_entry() call.
- */
-
-void
-_nc_write_entry(TERMTYPE * const tp)
-{
- struct stat statbuf;
- char name_list[MAX_TERMINFO_LENGTH];
- char *first_name, *other_names;
- char *ptr;
- char filename[PATH_MAX];
- char linkname[PATH_MAX];
-#if USE_SYMLINKS
- char symlinkname[PATH_MAX];
-#endif /* USE_SYMLINKS */
- static int call_count;
- static time_t start_time; /* time at start of writes */
-
- if (call_count++ == 0) {
- start_time = 0;
- }
-
- (void) strcpy(name_list, tp->term_names);
- DEBUG(7, ("Name list = '%s'", name_list));
-
- first_name = name_list;
-
- ptr = &name_list[strlen(name_list) - 1];
- other_names = ptr + 1;
-
- while (ptr > name_list && *ptr != '|')
- ptr--;
-
- if (ptr != name_list) {
- *ptr = '\0';
-
- for (ptr = name_list; *ptr != '\0' && *ptr != '|'; ptr++)
- continue;
-
- if (*ptr == '\0')
- other_names = ptr;
- else {
- *ptr = '\0';
- other_names = ptr + 1;
- }
- }
-
- DEBUG(7, ("First name = '%s'", first_name));
- DEBUG(7, ("Other names = '%s'", other_names));
-
- _nc_set_type(first_name);
-
- if (strlen(first_name) > sizeof(filename) - 3)
- _nc_warning("terminal name too long.");
-
- sprintf(filename, "%c/%s", first_name[0], first_name);
-
- /*
- * Has this primary name been written since the first call to
- * write_entry()? If so, the newer write will step on the older,
- * so warn the user.
- */
- if (start_time > 0 &&
- stat(filename, &statbuf) >= 0
- && statbuf.st_mtime >= start_time) {
- _nc_warning("name multiply defined.");
- }
-
- check_writeable(first_name[0]);
- write_file(filename, tp);
-
- if (start_time == 0) {
- 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);
- }
- }
- while (*other_names != '\0') {
- ptr = other_names++;
- while (*other_names != '|' && *other_names != '\0')
- other_names++;
-
- if (*other_names != '\0')
- *(other_names++) = '\0';
-
- if (strlen(ptr) > sizeof(linkname) - 3) {
- _nc_warning("terminal alias %s too long.", ptr);
- continue;
- }
- if (strchr(ptr, '/') != 0) {
- _nc_warning("cannot link alias %s.", ptr);
- continue;
- }
-
- check_writeable(ptr[0]);
- sprintf(linkname, "%c/%s", ptr[0], ptr);
-
- if (strcmp(filename, linkname) == 0) {
- _nc_warning("self-synonym ignored");
- } else if (stat(linkname, &statbuf) >= 0 &&
- statbuf.st_mtime < start_time) {
- _nc_warning("alias %s multiply defined.", ptr);
- } else if (_nc_access(linkname, W_OK) == 0)
-#if HAVE_LINK
- {
- int code;
-#if USE_SYMLINKS
- strcpy(symlinkname, "../");
- strncat(symlinkname, filename, sizeof(symlinkname) - 4);
- symlinkname[sizeof(symlinkname) - 1] = '\0';
-#endif /* USE_SYMLINKS */
-#if HAVE_REMOVE
- code = remove(linkname);
-#else
- code = unlink(linkname);
-#endif
- if (code != 0 && errno == ENOENT)
- code = 0;
-#if USE_SYMLINKS
- if (symlink(symlinkname, linkname) < 0)
-#else
- if (link(filename, linkname) < 0)
-#endif /* USE_SYMLINKS */
- {
- /*
- * If there wasn't anything there, and we cannot
- * link to the target because it is the same as the
- * target, then the source must be on a filesystem
- * that uses caseless filenames, such as Win32, etc.
- */
- if (code == 0 && errno == EEXIST)
- _nc_warning("can't link %s to %s", filename, linkname);
- else if (code == 0 && errno == EPERM)
- write_file(linkname, tp);
- else
- _nc_syserr_abort("can't link %s to %s", filename, linkname);
- } else {
- DEBUG(1, ("Linked %s", linkname));
- }
- }
-#else /* just make copies */
- write_file(linkname, tp);
-#endif /* HAVE_LINK */
- }
-}
-
-#undef LITTLE_ENDIAN /* BSD/OS defines this as a feature macro */
-#define HI(x) ((x) / 256)
-#define LO(x) ((x) % 256)
-#define LITTLE_ENDIAN(p, x) (p)[0] = LO(x), (p)[1] = HI(x)
-
-#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)
-{
- size_t nextfree = 0;
- int i;
-
- for (i = 0; i < strmax; i++) {
- if (Strings[i] == ABSENT_STRING) {
- offsets[i] = -1;
- } else if (Strings[i] == CANCELLED_STRING) {
- offsets[i] = -2;
- } else {
- offsets[i] = nextfree;
- nextfree += strlen(Strings[i]) + 1;
- TRACE_OUT(("put Strings[%d]=%s(%d)", i, _nc_visbuf(Strings[i]), nextfree));
- }
- }
- return nextfree;
-}
-
-static void
-convert_shorts(unsigned char *buf, short *Numbers, int count)
-{
- int 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;
- } else if (Numbers[i] == CANCELLED_NUMERIC) { /* HI/LO won't work */
- buf[2 * i] = 0376;
- buf[2 * i + 1] = 0377;
- } else {
- LITTLE_ENDIAN(buf + 2 * i, Numbers[i]);
- TRACE_OUT(("put Numbers[%d]=%d", i, Numbers[i]));
- }
- }
-}
-
-#define even_boundary(value) \
- ((value) % 2 != 0 && fwrite(&zero, sizeof(char), 1, fp) != 1)
-
-static int
-write_object(FILE * fp, TERMTYPE * tp)
-{
- char *namelist;
- size_t namelen, boolmax, nummax, strmax;
- char zero = '\0';
- size_t i;
- short nextfree;
- short offsets[MAX_ENTRY_SIZE / 2];
- unsigned char buf[MAX_ENTRY_SIZE];
- unsigned last_bool = BOOLWRITE;
- unsigned last_num = NUMWRITE;
- unsigned last_str = STRWRITE;
-
-#if NCURSES_XNAMES
- /*
- * Normally we limit the list of values to exclude the "obsolete"
- * capabilities. However, if we are accepting extended names, add
- * these as well, since they are used for supporting translation
- * to/from termcap.
- */
- if (_nc_user_definable) {
- last_bool = BOOLCOUNT;
- last_num = NUMCOUNT;
- last_str = STRCOUNT;
- }
-#endif
-
- namelist = tp->term_names;
- namelen = strlen(namelist) + 1;
-
- boolmax = 0;
- for (i = 0; i < last_bool; i++) {
- if (tp->Booleans[i] == TRUE)
- boolmax = i + 1;
- }
-
- nummax = 0;
- for (i = 0; i < last_num; i++) {
- if (tp->Numbers[i] != ABSENT_NUMERIC)
- nummax = i + 1;
- }
-
- strmax = 0;
- for (i = 0; i < last_str; i++) {
- if (tp->Strings[i] != ABSENT_STRING)
- strmax = i + 1;
- }
-
- nextfree = compute_offsets(tp->Strings, strmax, offsets);
-
- /* fill in the header */
- LITTLE_ENDIAN(buf, MAGIC);
- LITTLE_ENDIAN(buf + 2, min(namelen, MAX_NAME_SIZE + 1));
- LITTLE_ENDIAN(buf + 4, boolmax);
- LITTLE_ENDIAN(buf + 6, nummax);
- LITTLE_ENDIAN(buf + 8, strmax);
- LITTLE_ENDIAN(buf + 10, nextfree);
-
- /* write out the header */
- TRACE_OUT(("Header of %s @%ld", namelist, ftell(fp)));
- if (fwrite(buf, 12, 1, fp) != 1
- || fwrite(namelist, sizeof(char), namelen, fp) != namelen)
- return (ERR);
-
- for (i = 0; i < boolmax; i++)
- if (tp->Booleans[i] == TRUE)
- buf[i] = TRUE;
- else
- buf[i] = FALSE;
- if (fwrite(buf, sizeof(char), boolmax, fp) != boolmax)
- return (ERR);
-
- if (even_boundary(namelen + boolmax))
- return (ERR);
-
- TRACE_OUT(("Numerics begin at %04lx", ftell(fp)));
-
- /* the numerics */
- convert_shorts(buf, tp->Numbers, nummax);
- if (fwrite(buf, 2, nummax, fp) != nummax)
- return (ERR);
-
- TRACE_OUT(("String offsets begin at %04lx", ftell(fp)));
-
- /* the string offsets */
- convert_shorts(buf, offsets, strmax);
- if (fwrite(buf, 2, strmax, fp) != strmax)
- return (ERR);
-
- TRACE_OUT(("String table begins at %04lx", ftell(fp)));
-
- /* the strings */
- for (i = 0; i < strmax; i++)
- if (VALID_STRING(tp->Strings[i]))
- if (!WRITE_STRING(tp->Strings[i]))
- return (ERR);
-
-#if NCURSES_XNAMES
- if (NUM_EXT_NAMES(tp)) {
- unsigned extcnt = NUM_EXT_NAMES(tp);
-
- if (even_boundary(nextfree))
- return (ERR);
-
- nextfree = compute_offsets(tp->Strings + STRCOUNT, tp->ext_Strings, offsets);
- TRACE_OUT(("after extended string capabilities, nextfree=%d", nextfree));
- nextfree += compute_offsets(tp->ext_Names, extcnt, offsets + tp->ext_Strings);
- TRACE_OUT(("after extended capnames, nextfree=%d", nextfree));
- strmax = tp->ext_Strings + extcnt;
-
- /*
- * Write the extended header
- */
- LITTLE_ENDIAN(buf + 0, tp->ext_Booleans);
- LITTLE_ENDIAN(buf + 2, tp->ext_Numbers);
- LITTLE_ENDIAN(buf + 4, tp->ext_Strings);
- LITTLE_ENDIAN(buf + 6, strmax);
- LITTLE_ENDIAN(buf + 8, nextfree);
- TRACE_OUT(("WRITE extended-header @%ld", ftell(fp)));
- if (fwrite(buf, 10, 1, fp) != 1)
- return (ERR);
-
- 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)
- return (ERR);
-
- if (even_boundary(tp->ext_Booleans))
- return (ERR);
-
- TRACE_OUT(("WRITE %d numbers @%ld", tp->ext_Numbers, ftell(fp)));
- if (tp->ext_Numbers) {
- convert_shorts(buf, tp->Numbers + NUMCOUNT, tp->ext_Numbers);
- if (fwrite(buf, 2, tp->ext_Numbers, fp) != tp->ext_Numbers)
- return (ERR);
- }
-
- /*
- * Convert the offsets for the ext_Strings and ext_Names tables,
- * in that order.
- */
- convert_shorts(buf, offsets, strmax);
- TRACE_OUT(("WRITE offsets @%ld", ftell(fp)));
- if (fwrite(buf, 2, strmax, fp) != strmax)
- return (ERR);
-
- /*
- * Write the string table after the offset tables so we do not
- * have to do anything about alignment.
- */
- 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])));
- if (!WRITE_STRING(tp->Strings[i + STRCOUNT]))
- return (ERR);
- }
- }
-
- /*
- * Write the extended names
- */
- for (i = 0; i < extcnt; i++) {
- TRACE_OUT(("WRITE ext_Names[%d]=%s", i, tp->ext_Names[i]));
- if (!WRITE_STRING(tp->ext_Names[i]))
- return (ERR);
- }
-
- }
-#endif /* NCURSES_XNAMES */
-
- total_written++;
- return (OK);
-}
-
-/*
- * Returns the total number of entries written by this process
- */
-int
-_nc_tic_written(void)
-{
- return total_written;
-}
diff --git a/ncurses-5.2/ncurses/trace/README b/ncurses-5.2/ncurses/trace/README
deleted file mode 100644
index 8d26f1f..0000000
--- a/ncurses-5.2/ncurses/trace/README
+++ /dev/null
@@ -1,5 +0,0 @@
--- $Id$
-
-The files in this directory (trace) support both the terminfo and ncurses
-libraries. Most of the functions are linked in only when the libraries
-are compiled with TRACE defined.
diff --git a/ncurses-5.2/ncurses/trace/lib_trace.c b/ncurses-5.2/ncurses/trace/lib_trace.c
deleted file mode 100644
index 83c4717..0000000
--- a/ncurses-5.2/ncurses/trace/lib_trace.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_trace.c - Tracing/Debugging routines
- */
-
-#include <curses.priv.h>
-#include <tic.h>
-
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-unsigned _nc_tracing = 0; /* always define this */
-
-#ifdef TRACE
-const char *_nc_tputs_trace = "";
-long _nc_outchars = 0;
-
-static FILE *tracefp; /* default to writing to stderr */
-
-void
-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 (_nc_access(my_name, W_OK) < 0
- || (tracefp = fopen(my_name, "w")) == 0) {
- perror("curses: Can't open 'trace' file: ");
- exit(EXIT_FAILURE);
- }
- /* Try to set line-buffered mode, or (failing that) unbuffered,
- * so that the trace-output gets flushed automatically at the
- * end of each line. This is useful in case the program dies.
- */
-#if HAVE_SETVBUF /* ANSI */
- (void) setvbuf(tracefp, (char *) 0, _IOLBF, 0);
-#elif HAVE_SETBUF /* POSIX */
- (void) setbuffer(tracefp, (char *) 0);
-#endif
- _tracef("TRACING NCURSES version %s (%d)",
- NCURSES_VERSION, NCURSES_VERSION_PATCH);
- }
-}
-#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
-_tracef(const char *fmt,...)
-{
- static const char Called[] = T_CALLED("");
- static const char Return[] = T_RETURN("");
- static int level;
- va_list ap;
- bool before = FALSE;
- bool after = FALSE;
- int doit = _nc_tracing;
- int save_err = errno;
-
- if (strlen(fmt) >= sizeof(Called) - 1) {
- if (!strncmp(fmt, Called, sizeof(Called) - 1)) {
- before = TRUE;
- level++;
- } else if (!strncmp(fmt, Return, sizeof(Return) - 1)) {
- after = TRUE;
- }
- if (before || after) {
- if ((level <= 1)
- || (doit & TRACE_ICALLS) != 0)
- doit &= (TRACE_CALLS | TRACE_CCALLS);
- else
- doit = 0;
- }
- }
-
- if (doit != 0) {
- if (tracefp == 0)
- tracefp = stderr;
- if (before || after) {
- int n;
- for (n = 1; n < level; n++)
- fputs("+ ", tracefp);
- }
- va_start(ap, fmt);
- vfprintf(tracefp, fmt, ap);
- fputc('\n', tracefp);
- va_end(ap);
- fflush(tracefp);
- }
-
- if (after && level)
- level--;
- errno = save_err;
-}
-
-/* Trace 'int' return-values */
-int
-_nc_retrace_int(int code)
-{
- T((T_RETURN("%d"), code));
- return code;
-}
-
-/* Trace 'char*' return-values */
-char *
-_nc_retrace_ptr(char *code)
-{
- T((T_RETURN("%s"), _nc_visbuf(code)));
- return code;
-}
-
-/* Trace 'WINDOW *' return-values */
-WINDOW *
-_nc_retrace_win(WINDOW *code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-#endif /* TRACE */
diff --git a/ncurses-5.2/ncurses/trace/lib_traceatr.c b/ncurses-5.2/ncurses/trace/lib_traceatr.c
deleted file mode 100644
index aceafe8..0000000
--- a/ncurses-5.2/ncurses/trace/lib_traceatr.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_traceatr.c - Tracing/Debugging routines (attributes)
- */
-
-#include <curses.priv.h>
-#include <term.h> /* acs_chars */
-
-MODULE_ID("$Id$")
-
-#define COLOR_OF(c) (c < 0 || c > 7 ? "default" : colors[c].name)
-
-#ifdef TRACE
-char *
-_traceattr2(int bufnum, attr_t newmode)
-{
- char *buf = _nc_trace_buf(bufnum, BUFSIZ);
- char *tmp = buf;
- static const struct {
- unsigned int val;
- const char *name;
- } names[] =
- {
- /* *INDENT-OFF* */
- { A_STANDOUT, "A_STANDOUT" },
- { A_UNDERLINE, "A_UNDERLINE" },
- { A_REVERSE, "A_REVERSE" },
- { A_BLINK, "A_BLINK" },
- { A_DIM, "A_DIM" },
- { A_BOLD, "A_BOLD" },
- { A_ALTCHARSET, "A_ALTCHARSET" },
- { A_INVIS, "A_INVIS" },
- { A_PROTECT, "A_PROTECT" },
- { A_CHARTEXT, "A_CHARTEXT" },
- { A_NORMAL, "A_NORMAL" },
- { A_COLOR, "A_COLOR" },
- /* *INDENT-ON* */
-
- },
- colors[] =
- {
- /* *INDENT-OFF* */
- { COLOR_BLACK, "COLOR_BLACK" },
- { COLOR_RED, "COLOR_RED" },
- { COLOR_GREEN, "COLOR_GREEN" },
- { COLOR_YELLOW, "COLOR_YELLOW" },
- { COLOR_BLUE, "COLOR_BLUE" },
- { COLOR_MAGENTA, "COLOR_MAGENTA" },
- { COLOR_CYAN, "COLOR_CYAN" },
- { COLOR_WHITE, "COLOR_WHITE" },
- /* *INDENT-ON* */
-
- };
- size_t n;
- unsigned save_nc_tracing = _nc_tracing;
- _nc_tracing = 0;
-
- strcpy(tmp++, "{");
-
- for (n = 0; n < SIZEOF(names); n++) {
- if ((newmode & names[n].val) != 0) {
- if (buf[1] != '\0')
- strcat(tmp, "|");
- strcat(tmp, names[n].name);
- tmp += strlen(tmp);
-
- if (names[n].val == A_COLOR) {
- short pairnum = PAIR_NUMBER(newmode);
- short fg, bg;
-
- if (pair_content(pairnum, &fg, &bg) == OK)
- (void) sprintf(tmp,
- "{%d = {%s, %s}}",
- pairnum,
- COLOR_OF(fg),
- COLOR_OF(bg)
- );
- else
- (void) sprintf(tmp, "{%d}", pairnum);
- }
- }
- }
- if (AttrOf(newmode) == A_NORMAL) {
- if (buf[1] != '\0')
- strcat(tmp, "|");
- strcat(tmp, "A_NORMAL");
- }
-
- _nc_tracing = save_nc_tracing;
- return (strcat(buf, "}"));
-}
-
-char *
-_traceattr(attr_t newmode)
-{
- return _traceattr2(0, newmode);
-}
-
-/* Trace 'int' return-values */
-attr_t
-_nc_retrace_attr_t(attr_t code)
-{
- T((T_RETURN("%s"), _traceattr(code)));
- return code;
-}
-
-char *
-_tracechtype2(int bufnum, chtype ch)
-{
- char *buf = _nc_trace_buf(bufnum, BUFSIZ);
- char *found = 0;
-
- strcpy(buf, "{");
- if (ch & A_ALTCHARSET) {
- char *cp;
- static const struct {
- unsigned int val;
- const char *name;
- } names[] =
- {
- /* *INDENT-OFF* */
- { 'l', "ACS_ULCORNER" }, /* upper left corner */
- { 'm', "ACS_LLCORNER" }, /* lower left corner */
- { 'k', "ACS_URCORNER" }, /* upper right corner */
- { 'j', "ACS_LRCORNER" }, /* lower right corner */
- { 't', "ACS_LTEE" }, /* tee pointing right */
- { 'u', "ACS_RTEE" }, /* tee pointing left */
- { 'v', "ACS_BTEE" }, /* tee pointing up */
- { 'w', "ACS_TTEE" }, /* tee pointing down */
- { 'q', "ACS_HLINE" }, /* horizontal line */
- { 'x', "ACS_VLINE" }, /* vertical line */
- { 'n', "ACS_PLUS" }, /* large plus or crossover */
- { 'o', "ACS_S1" }, /* scan line 1 */
- { 's', "ACS_S9" }, /* scan line 9 */
- { '`', "ACS_DIAMOND" }, /* diamond */
- { 'a', "ACS_CKBOARD" }, /* checker board (stipple) */
- { 'f', "ACS_DEGREE" }, /* degree symbol */
- { 'g', "ACS_PLMINUS" }, /* plus/minus */
- { '~', "ACS_BULLET" }, /* bullet */
- { ',', "ACS_LARROW" }, /* arrow pointing left */
- { '+', "ACS_RARROW" }, /* arrow pointing right */
- { '.', "ACS_DARROW" }, /* arrow pointing down */
- { '-', "ACS_UARROW" }, /* arrow pointing up */
- { 'h', "ACS_BOARD" }, /* board of squares */
- { 'i', "ACS_LANTERN" }, /* lantern symbol */
- { '0', "ACS_BLOCK" }, /* solid square block */
- { 'p', "ACS_S3" }, /* scan line 3 */
- { 'r', "ACS_S7" }, /* scan line 7 */
- { 'y', "ACS_LEQUAL" }, /* less/equal */
- { 'z', "ACS_GEQUAL" }, /* greater/equal */
- { '{', "ACS_PI" }, /* Pi */
- { '|', "ACS_NEQUAL" }, /* not equal */
- { '}', "ACS_STERLING" }, /* UK pound sign */
- { '\0', (char *) 0 }
- /* *INDENT-OFF* */
- },
- *sp;
-
- for (cp = acs_chars; cp[0] && cp[1]; cp += 2) {
- if (TextOf(cp[1]) == TextOf(ch)) {
- found = cp;
- /* don't exit from loop - there may be redefinitions */
- }
- }
-
- if (found != 0) {
- ch = TextOf(*found);
- for (sp = names; sp->val; sp++)
- if (sp->val == ch) {
- (void) strcat(buf, sp->name);
- ch &= ~A_ALTCHARSET;
- break;
- }
- }
- }
-
- if (found == 0)
- (void) strcat(buf, _tracechar(TextOf(ch)));
-
- if (AttrOf(ch) != A_NORMAL)
- (void) sprintf(buf + strlen(buf), " | %s",
- _traceattr2(bufnum + 20, AttrOf(ch)));
-
- strcat(buf, "}");
- return (buf);
-}
-
-char *
-_tracechtype(chtype ch)
-{
- return _tracechtype2(0, ch);
-}
-
-/* Trace 'chtype' return-values */
-attr_t
-_nc_retrace_chtype(attr_t code)
-{
- T((T_RETURN("%s"), _tracechtype(code)));
- return code;
-}
-
-#else
-extern void _nc_lib_traceatr(void);
-void
-_nc_lib_traceatr(void)
-{
-}
-#endif /* TRACE */
diff --git a/ncurses-5.2/ncurses/trace/lib_tracebits.c b/ncurses-5.2/ncurses/trace/lib_tracebits.c
deleted file mode 100644
index ed1ee94..0000000
--- a/ncurses-5.2/ncurses/trace/lib_tracebits.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id$")
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#if HAVE_SYS_TERMIO_H
-#include <sys/termio.h> /* needed for ISC */
-#endif
-
-#ifdef __EMX__
-#include <io.h>
-#endif
-
-/* may be undefined if we're using termio.h */
-#ifndef TOSTOP
-#define TOSTOP 0
-#endif
-#ifndef IEXTEN
-#define IEXTEN 0
-#endif
-
-#ifdef TRACE
-
-typedef struct {
- unsigned int val;
- const char *name;
-} BITNAMES;
-
-static void
-lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int val)
-{
- const BITNAMES *sp;
-
- (void) strcat(buf, label);
- (void) strcat(buf, ": {");
- for (sp = table; sp->name; sp++)
- if (sp->val != 0
- && (val & sp->val) == sp->val) {
- (void) strcat(buf, sp->name);
- (void) strcat(buf, ", ");
- }
- if (buf[strlen(buf) - 2] == ',')
- buf[strlen(buf) - 2] = '\0';
- (void) strcat(buf, "} ");
-}
-
-char *
-_nc_tracebits(void)
-/* describe the state of the terminal control bits exactly */
-{
- char *buf;
-
-#ifdef TERMIOS
- static const BITNAMES iflags[] =
- {
- {BRKINT, "BRKINT"},
- {IGNBRK, "IGNBRK"},
- {IGNPAR, "IGNPAR"},
- {PARMRK, "PARMRK"},
- {INPCK, "INPCK"},
- {ISTRIP, "ISTRIP"},
- {INLCR, "INLCR"},
- {IGNCR, "IGNC"},
- {ICRNL, "ICRNL"},
- {IXON, "IXON"},
- {IXOFF, "IXOFF"},
- {0, NULL}
-#define ALLIN (BRKINT|IGNBRK|IGNPAR|PARMRK|INPCK|ISTRIP|INLCR|IGNCR|ICRNL|IXON|IXOFF)
- }, oflags[] =
- {
- {OPOST, "OPOST"},
- {0, NULL}
-#define ALLOUT (OPOST)
- }, cflags[] =
- {
- {CLOCAL, "CLOCAL"},
- {CREAD, "CREAD"},
- {CSTOPB, "CSTOPB"},
-#if !defined(CS5) || !defined(CS8)
- {CSIZE, "CSIZE"},
-#endif
- {HUPCL, "HUPCL"},
- {PARENB, "PARENB"},
- {PARODD | PARENB, "PARODD"}, /* concession to readability */
- {0, NULL}
-#define ALLCTRL (CLOCAL|CREAD|CSIZE|CSTOPB|HUPCL|PARENB|PARODD)
- }, lflags[] =
- {
- {ECHO, "ECHO"},
- {ECHOE | ECHO, "ECHOE"}, /* concession to readability */
- {ECHOK | ECHO, "ECHOK"}, /* concession to readability */
- {ECHONL, "ECHONL"},
- {ICANON, "ICANON"},
- {ISIG, "ISIG"},
- {NOFLSH, "NOFLSH"},
- {TOSTOP, "TOSTOP"},
- {IEXTEN, "IEXTEN"},
- {0, NULL}
-#define ALLLOCAL (ECHO|ECHONL|ICANON|ISIG|NOFLSH|TOSTOP|IEXTEN)
- };
-
- buf = _nc_trace_buf(0,
- 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 (cur_term->Nttyb.c_oflag & ALLOUT)
- lookup_bits(buf, oflags, "oflags", cur_term->Nttyb.c_oflag);
-
- if (cur_term->Nttyb.c_cflag & ALLCTRL)
- lookup_bits(buf, cflags, "cflags", cur_term->Nttyb.c_cflag);
-
-#if defined(CS5) && defined(CS8)
- {
- static struct {
- char *name;
- int value;
- } csizes[] = {
- {
- "CS5 ", CS5
- },
-#ifdef CS6
- {
- "CS6 ", CS6
- },
-#endif
-#ifdef CS7
- {
- "CS7 ", CS7
- },
-#endif
- {
- "CS8 ", CS8
- },
- };
- char *result = "CSIZE? ";
- int value = (cur_term->Nttyb.c_cflag & CSIZE);
- unsigned n;
-
- if (value != 0) {
- for (n = 0; n < SIZEOF(csizes); n++) {
- if (csizes[n].value == value) {
- result = csizes[n].name;
- break;
- }
- }
- }
- strcat(buf, result);
- }
-#endif
-
- if (cur_term->Nttyb.c_lflag & ALLLOCAL)
- lookup_bits(buf, lflags, "lflags", cur_term->Nttyb.c_lflag);
-
-#else
- /* reference: ttcompat(4M) on SunOS 4.1 */
-#ifndef EVENP
-#define EVENP 0
-#endif
-#ifndef LCASE
-#define LCASE 0
-#endif
-#ifndef LLITOUT
-#define LLITOUT 0
-#endif
-#ifndef ODDP
-#define ODDP 0
-#endif
-#ifndef TANDEM
-#define TANDEM 0
-#endif
-
- static const BITNAMES cflags[] =
- {
- {CBREAK, "CBREAK"},
- {CRMOD, "CRMOD"},
- {ECHO, "ECHO"},
- {EVENP, "EVENP"},
- {LCASE, "LCASE"},
- {LLITOUT, "LLITOUT"},
- {ODDP, "ODDP"},
- {RAW, "RAW"},
- {TANDEM, "TANDEM"},
- {XTABS, "XTABS"},
- {0, NULL}
-#define ALLCTRL (CBREAK|CRMOD|ECHO|EVENP|LCASE|LLITOUT|ODDP|RAW|TANDEM|XTABS)
- };
-
- buf = _nc_trace_buf(0,
- 8 + sizeof(cflags));
-
- if (cur_term->Nttyb.sg_flags & ALLCTRL) {
- lookup_bits(buf, cflags, "cflags", cur_term->Nttyb.sg_flags);
- }
-#endif
- return (buf);
-}
-#else
-char *
-_nc_tracebits(void)
-{
- static char tmp[] = "";
- return tmp;
-}
-#endif /* TRACE */
diff --git a/ncurses-5.2/ncurses/trace/lib_tracechr.c b/ncurses-5.2/ncurses/trace/lib_tracechr.c
deleted file mode 100644
index 1687d44..0000000
--- a/ncurses-5.2/ncurses/trace/lib_tracechr.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_tracechr.c - Tracing/Debugging routines
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-char *_tracechar(const unsigned char ch)
-{
- static char crep[20];
- (void) sprintf(crep, "'%s' = 0x%02x", unctrl(ch), (unsigned)ch);
- return(crep);
-}
-#else
-extern void _nc_lib_tracechr(void);
- void _nc_lib_tracechr(void) { }
-#endif
diff --git a/ncurses-5.2/ncurses/trace/lib_tracedmp.c b/ncurses-5.2/ncurses/trace/lib_tracedmp.c
deleted file mode 100644
index 42b1481..0000000
--- a/ncurses-5.2/ncurses/trace/lib_tracedmp.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_tracedmp.c - Tracing/Debugging routines
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-void _tracedump(const char *name, WINDOW *win)
-{
- int i, j, n, width;
-
- /* compute narrowest possible display width */
- for (width = i = 0; i <= win->_maxy; i++)
- {
- n = 0;
- for (j = 0; j <= win->_maxx; j++)
- if (win->_line[i].text[j] != ' ')
- n = j;
-
- if (n > width)
- width = n;
- }
- if (width < win->_maxx)
- ++width;
-
- for (n = 0; n <= win->_maxy; n++)
- {
- char buf[BUFSIZ], *ep;
- bool haveattrs, havecolors;
-
- /* dump A_CHARTEXT part */
- (void) sprintf(buf, "%s[%2d] %3d%3d ='",
- 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);
-
- /* 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)
- {
- 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);
- }
-
- for (i = 0; i < 4; i++)
- {
- const char *hex = " 123456789ABCDEF";
- chtype mask = (0xf << ((i + 4) * 4));
-
- haveattrs = FALSE;
- for (j = 0; j <= width; j++)
- if (win->_line[n].text[j] & mask)
- {
- 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);
- }
- }
- }
-}
-#else
-extern void _nc_lib_tracedmp(void);
- void _nc_lib_tracedmp(void) { }
-#endif /* TRACE */
diff --git a/ncurses-5.2/ncurses/trace/lib_tracemse.c b/ncurses-5.2/ncurses/trace/lib_tracemse.c
deleted file mode 100644
index 9896e07..0000000
--- a/ncurses-5.2/ncurses/trace/lib_tracemse.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-
-/*
- * lib_tracemse.c - Tracing/Debugging routines (mouse events)
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-
-char *_tracemouse(MEVENT const *ep)
-{
- 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);
-
-#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")
-#undef SHOW
-
- if (buf[strlen(buf)-1] == ' ')
- buf[strlen(buf)-2] = '\0';
- (void) strcat(buf, "}");
- return(buf);
-}
-
-#else /* !TRACE */
-/* don't make empty module */
-void _nc_lib_tracemouse(void);
-void _nc_lib_tracemouse(void) {}
-#endif
diff --git a/ncurses-5.2/ncurses/trace/trace_buf.c b/ncurses-5.2/ncurses/trace/trace_buf.c
deleted file mode 100644
index dbbc755..0000000
--- a/ncurses-5.2/ncurses/trace/trace_buf.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-/*
- * trace_buf.c - Tracing/Debugging buffers (attributes)
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-typedef struct {
- char *text;
- size_t size;
-} LIST;
-
-char * _nc_trace_buf(int bufnum, size_t want)
-{
- 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 (list[bufnum].text == 0
- || want > list[bufnum].size)
- {
- if ((list[bufnum].text = typeRealloc(char, want, list[bufnum].text)) != 0)
- list[bufnum].size = want;
- }
-
- if (list[bufnum].text != 0)
- *(list[bufnum].text) = '\0';
- return list[bufnum].text;
-}
diff --git a/ncurses-5.2/ncurses/trace/trace_tries.c b/ncurses-5.2/ncurses/trace/trace_tries.c
deleted file mode 100644
index 7f51464..0000000
--- a/ncurses-5.2/ncurses/trace/trace_tries.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999 *
- ****************************************************************************/
-/*
- * trace_tries.c - Tracing/Debugging buffers (keycode tries-trees)
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-static unsigned char *buffer;
-static unsigned len;
-
-static void recur_tries(struct tries *tree, unsigned level)
-{
- 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;
- }
-}
-
-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);
-}
-#else
-void _nc_trace_tries(struct tries *tree GCC_UNUSED)
-{
-}
-#endif
diff --git a/ncurses-5.2/ncurses/trace/trace_xnames.c b/ncurses-5.2/ncurses/trace/trace_xnames.c
deleted file mode 100644
index 8f72cba..0000000
--- a/ncurses-5.2/ncurses/trace/trace_xnames.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999 *
- ****************************************************************************/
-/*
- * trace_xnames.c - Tracing/Debugging buffers (TERMTYPE extended names)
- */
-
-#include <curses.priv.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-void _nc_trace_xnames(TERMTYPE *tp GCC_UNUSED)
-{
-#ifdef TRACE
-#if NCURSES_XNAMES
- int limit = tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings;
- int n, m;
- if (limit) {
- int begin_num = tp->ext_Booleans;
- int begin_str = tp->ext_Booleans + tp->ext_Numbers;
-
- _tracef("extended names (%s) %d = %d+%d+%d of %d+%d+%d",
- tp->term_names,
- limit,
- tp->ext_Booleans, tp->ext_Numbers, tp->ext_Strings,
- tp->num_Booleans, tp->num_Numbers, tp->num_Strings);
- 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]));
- } 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]);
- } else {
- _tracef("[%d] %s = %d (bool)", n,
- tp->ext_Names[n],
- tp->Booleans[tp->num_Booleans + n - tp->ext_Booleans]);
- }
- }
- }
-#endif
-#endif
-}
diff --git a/ncurses-5.2/ncurses/tty/MKexpanded.sh b/ncurses-5.2/ncurses/tty/MKexpanded.sh
deleted file mode 100755
index c57d2be..0000000
--- a/ncurses-5.2/ncurses/tty/MKexpanded.sh
+++ /dev/null
@@ -1,99 +0,0 @@
-#! /bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-# $Id$
-#
-# Script to generate 'expanded.c', a dummy source that contains functions
-# corresponding to complex macros used in this library. By making functions,
-# we simplify analysis and debugging.
-
-if test $# != 0; then
-preprocessor="$1"
-else
-preprocessor="cc -E"
-fi
-shift
-if test $# != 0 ; then
- preprocessor="$preprocessor $*"
-else
- preprocessor="$preprocessor -DHAVE_CONFIG_H -I. -I../include"
-fi
-
-TMP=gen$$.c
-trap "rm -f $TMP" 0 1 2 5 15
-
-cat <<EOF
-/* generated by MKexpanded.sh */
-#include <curses.priv.h>
-#include <term.h>
-#if NCURSES_EXPANDED
-EOF
-
-cat >$TMP <<EOF
-#include <ncurses_cfg.h>
-#undef NCURSES_EXPANDED /* this probably is set in ncurses_cfg.h */
-#include <curses.priv.h>
-/* these are names we'd like to see */
-#undef ALL_BUT_COLOR
-#undef PAIR_NUMBER
-#undef TRUE
-#undef FALSE
-/* this is a marker */
-IGNORE
-void _nc_toggle_attr_on(attr_t *S, attr_t at)
-{
- toggle_attr_on(*S,at);
-}
-void _nc_toggle_attr_off(attr_t *S, attr_t at)
-{
- toggle_attr_off(*S,at);
-}
-int _nc_DelCharCost(int count)
-{
- return DelCharCost(count);
-}
-int _nc_InsCharCost(int count)
-{
- return InsCharCost(count);
-}
-void _nc_UpdateAttrs(chtype c)
-{
- UpdateAttrs(c);
-}
-EOF
-
-$preprocessor $TMP 2>/dev/null | sed -e '1,/^IGNORE$/d'
-
-cat <<EOF
-#else /* ! NCURSES_EXPANDED */
-void _nc_expanded(void) { }
-#endif /* NCURSES_EXPANDED */
-EOF
diff --git a/ncurses-5.2/ncurses/tty/hardscroll.c b/ncurses-5.2/ncurses/tty/hardscroll.c
deleted file mode 100644
index 06bf760..0000000
--- a/ncurses-5.2/ncurses/tty/hardscroll.c
+++ /dev/null
@@ -1,328 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/******************************************************************************
-
-NAME
- hardscroll.c -- hardware-scrolling optimization for ncurses
-
-SYNOPSIS
- void _nc_scroll_optimize(void)
-
-DESCRIPTION
- OVERVIEW
-
-This algorithm for computes optimum hardware scrolling to transform an
-old screen (curscr) into a new screen (newscr) via vertical line moves.
-
-Because the screen has a `grain' (there are insert/delete/scroll line
-operations but no insert/delete/scroll column operations), it is efficient
-break the update algorithm into two pieces: a first stage that does only line
-moves, optimizing the end product of user-invoked insertions, deletions, and
-scrolls; and a second phase (corresponding to the present doupdate code in
-ncurses) that does only line transformations.
-
-The common case we want hardware scrolling for is to handle line insertions
-and deletions in screen-oriented text-editors. This two-stage approach will
-accomplish that at a low computation and code-size cost.
-
- LINE-MOVE COMPUTATION
-
-Now, to a discussion of the line-move computation.
-
-For expository purposes, consider the screen lines to be represented by
-integers 0..23 (with the understanding that the value of 23 may vary).
-Let a new line introduced by insertion, scrolling, or at the bottom of
-the screen following a line delete be given the index -1.
-
-Assume that the real screen starts with lines 0..23. Now, we have
-the following possible line-oriented operations on the screen:
-
-Insertion: inserts a line at a given screen row, forcing all lines below
-to scroll forward. The last screen line is lost. For example, an insertion
-at line 5 would produce: 0..4 -1 5..23.
-
-Deletion: deletes a line at a given screen row, forcing all lines below
-to scroll forward. The last screen line is made new. For example, a deletion
-at line 7 would produce: 0..6 8..23 -1.
-
-Scroll up: move a range of lines up 1. The bottom line of the range
-becomes new. For example, scrolling up the region from 9 to 14 will
-produce 0..8 10..14 -1 15..23.
-
-Scroll down: move a range of lines down 1. The top line of the range
-becomes new. For example, scrolling down the region from 12 to 16 will produce
-0..11 -1 12..15 17..23.
-
-Now, an obvious property of all these operations is that they preserve the
-order of old lines, though not their position in the sequence.
-
-The key trick of this algorithm is that the original line indices described
-above are actually maintained as _line[].oldindex fields in the window
-structure, and stick to each line through scroll and insert/delete operations.
-
-Thus, it is possible at update time to look at the oldnum fields and compute
-an optimal set of il/dl/scroll operations that will take the real screen
-lines to the virtual screen lines. Once these vertical moves have been done,
-we can hand off to the second stage of the update algorithm, which does line
-transformations.
-
-Note that the move computation does not need to have the full generality
-of a diff algorithm (which it superficially resembles) because lines cannot
-be moved out of order.
-
- THE ALGORITHM
-
-The scrolling is done in two passes. The first pass is from top to bottom
-scroling hunks UP. The second one is from bottom to top scrolling hunks DOWN.
-Obviously enough, no lines to be scrolled will be destroyed. (lav)
-
-HOW TO TEST THIS:
-
-Use the following production:
-
-hardscroll: hardscroll.c
- $(CC) -g -DSCROLLDEBUG hardscroll.c -o hardscroll
-
-Then just type scramble vectors and watch. The following test loads are
-a representative sample of cases:
-
------------------------------ CUT HERE ------------------------------------
-# No lines moved
- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
-#
-# A scroll up
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 -1
-#
-# A scroll down
--1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
-#
-# An insertion (after line 12)
- 0 1 2 3 4 5 6 7 8 9 10 11 12 -1 13 14 15 16 17 18 19 20 21 22
-#
-# A simple deletion (line 10)
- 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 -1
-#
-# A more complex case
--1 -1 -1 -1 -1 3 4 5 6 7 -1 -1 8 9 10 11 12 13 14 15 16 17 -1 -1
------------------------------ CUT HERE ------------------------------------
-
-AUTHOR
- Eric S. Raymond <esr@snark.thyrsus.com>, November 1994
- New algorithm by Alexander V. Lukyanov <lav@yars.free.net>, Aug 1997
-
-*****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#if defined(SCROLLDEBUG) || defined(HASHDEBUG)
-
-# undef screen_lines
-# define screen_lines MAXLINES
-int oldnums[MAXLINES];
-# define OLDNUM(n) oldnums[n]
-# define _tracef printf
-# undef TR
-# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
-
-#else /* no debug */
-
-/* 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. */
-# if USE_HASHMAP
-int *_nc_oldnums = 0;
-static int oldnums_allocated = 0;
-# define oldnums _nc_oldnums
-# define OLDNUM(n) oldnums[n]
-# else /* !USE_HASHMAP */
-# define OLDNUM(n) newscr->_line[n].oldindex
-# endif /* !USE_HASHMAP */
-
-#endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */
-
-
-void _nc_scroll_optimize(void)
-/* scroll optimization to transform curscr to newscr */
-{
- int i;
- int start, end, shift;
-
- TR(TRACE_ICALLS, ("_nc_scroll_optimize() begins"));
-
-#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
-#if USE_HASHMAP
- /* get enough storage */
- if (oldnums_allocated < screen_lines)
- {
- int *new_oldnums = typeRealloc(int, screen_lines, oldnums);
- if (!new_oldnums)
- return;
- oldnums = new_oldnums;
- oldnums_allocated = screen_lines;
- }
- /* calculate the indices */
- _nc_hash_map();
-#endif
-#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
-
-#ifdef TRACE
- if (_nc_tracing & (TRACE_UPDATE | TRACE_MOVE))
- _nc_linedump();
-#endif /* TRACE */
-
- /* pass 1 - from top to bottom scrolling up */
- for (i = 0; i < screen_lines; )
- {
- while (i < screen_lines && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) <= i))
- i++;
- if (i >= screen_lines)
- break;
-
- shift = OLDNUM(i) - i; /* shift > 0 */
- start = i;
-
- i++;
- while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
- i++;
- end = i-1 + shift;
-
- 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)
- {
- TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
- continue;
- }
-#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
- }
-
- /* pass 2 - from bottom to top scrolling down */
- for (i = screen_lines-1; i >= 0; )
- {
- while (i >= 0 && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) >= i))
- i--;
- if (i < 0)
- break;
-
- shift = OLDNUM(i) - i; /* shift < 0 */
- end = i;
-
- i--;
- while (i >= 0 && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
- i--;
- start = i+1 - (-shift);
-
- 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)
- {
- TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
- continue;
- }
-#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
- }
-}
-
-#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
-void _nc_linedump(void)
-/* 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;
-
- if (have < want)
- buf = typeMalloc(char, have = want);
-
- (void) strcpy(buf, "virt");
- for (n = 0; n < screen_lines; n++)
- (void) sprintf(buf + strlen(buf), " %02d", OLDNUM(n));
- TR(TRACE_UPDATE | TRACE_MOVE, (buf));
-#if NO_LEAKS
- free(buf);
- have = 0;
-#endif
-}
-#endif /* defined(TRACE) || defined(SCROLLDEBUG) */
-
-#ifdef SCROLLDEBUG
-
-int
-main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
-{
- char line[BUFSIZ], *st;
-
-#ifdef TRACE
- _nc_tracing = TRACE_MOVE;
-#endif
- for (;;)
- {
- int n;
-
- for (n = 0; n < screen_lines; n++)
- oldnums[n] = _NEWINDEX;
-
- /* grab the test vector */
- if (fgets(line, sizeof(line), stdin) == (char *)NULL)
- exit(EXIT_SUCCESS);
-
- /* parse it */
- n = 0;
- if (line[0] == '#')
- {
- (void) fputs(line, stderr);
- continue;
- }
- st = strtok(line, " ");
- do {
- oldnums[n++] = atoi(st);
- } while
- ((st = strtok((char *)NULL, " ")) != 0);
-
- /* display it */
- (void) fputs("Initial input:\n", stderr);
- _nc_linedump();
-
- _nc_scroll_optimize();
- }
-}
-
-#endif /* SCROLLDEBUG */
-
-/* hardscroll.c ends here */
diff --git a/ncurses-5.2/ncurses/tty/hashmap.c b/ncurses-5.2/ncurses/tty/hashmap.c
deleted file mode 100644
index e8de492..0000000
--- a/ncurses-5.2/ncurses/tty/hashmap.c
+++ /dev/null
@@ -1,569 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/******************************************************************************
-
-NAME
- hashmap.c -- fill in scramble vector based on text hashes
-
-SYNOPSIS
- void _nc_hash_map(void)
-
-DESCRIPTION:
- This code attempts to recognize pairs of old and new lines in the physical
-and virtual screens. When a line pair is recognized, the old line index is
-placed in the oldindex member of the virtual screen line, to be used by the
-vertical-motion optimizer portion of the update logic (see hardscroll.c).
-
- Line pairs are recognized by applying a modified Heckel's algorithm,
-sped up by hashing. If a line hash is unique in both screens, those
-lines must be a pair. Then if the lines just before or after the pair
-are the same or similar, they are a pair too.
-
- We don't worry about false pairs produced by hash collisions, on the
-assumption that such cases are rare and will only make the latter stages
-of update less efficient, not introduce errors.
-
-HOW TO TEST THIS:
-
-Use the following production:
-
-hashmap: hashmap.c
- $(CC) -g -DHASHDEBUG hashmap.c hardscroll.c ../objects/lib_trace.o -o hashmap
-
-AUTHOR
- Eric S. Raymond <esr@snark.thyrsus.com>, May 1996
- Bug fixes and improvements by Alexander V. Lukyanov <lav@yars.free.net>, 1997
-
-*****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h> /* for back_color_erase */
-
-MODULE_ID("$Id$")
-
-#ifdef HASHDEBUG
-
-# define _tracef printf
-# undef TR
-# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
-# undef screen_lines
-# define screen_lines MAXLINES
-# define TEXTWIDTH 1
-int oldnums[MAXLINES], reallines[MAXLINES];
-static chtype oldtext[MAXLINES][TEXTWIDTH], newtext[MAXLINES][TEXTWIDTH];
-# define OLDNUM(n) oldnums[n]
-# define OLDTEXT(n) oldtext[n]
-# define NEWTEXT(m) newtext[m]
-# define PENDING(n) 1
-
-#else /* !HASHDEBUG */
-
-# define OLDNUM(n) _nc_oldnums[n]
-# define OLDTEXT(n) curscr->_line[n].text
-# define NEWTEXT(m) newscr->_line[m].text
-# define TEXTWIDTH (curscr->_maxx+1)
-# define PENDING(n) (newscr->_line[n].firstchar != _NOCHANGE)
-
-#endif /* !HASHDEBUG */
-
-#define oldhash (SP->oldhash)
-#define newhash (SP->newhash)
-
-static inline unsigned long hash(chtype *text)
-{
- int i;
- chtype ch;
- unsigned long result = 0;
- for (i = TEXTWIDTH; i>0; i--)
- {
- ch = *text++;
- result += (result<<5) + ch;
- }
- return result;
-}
-
-/* approximate update cost */
-static int update_cost(chtype *from,chtype *to)
-{
- int cost=0;
- int i;
-
- for (i=TEXTWIDTH; i>0; i--)
- if (*from++ != *to++)
- cost++;
-
- return cost;
-}
-static int update_cost_from_blank(chtype *to)
-{
- int cost=0;
- int i;
- chtype blank = BLANK;
-
- if (back_color_erase)
- blank |= (stdscr->_bkgd & A_COLOR);
-
- for (i=TEXTWIDTH; i>0; i--)
- if (blank != *to++)
- cost++;
-
- return cost;
-}
-
-/*
- * 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)
-{
- int new_from;
-
- if (from == to)
- return FALSE;
-
- new_from = OLDNUM(from);
- if (new_from == _NEWINDEX)
- new_from = from;
-
- /*
- * On the left side of >= is the cost before moving;
- * 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;
-}
- sym;
-
-static sym *hashtab=0;
-static int lines_alloc=0;
-
-static void grow_hunks(void)
-{
- 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 i;
- int next_hunk;
-
- /*
- * This is tricky part. We have unique pairs to use as anchors.
- * Use these to deduce the presence of spans of identical lines.
- */
- back_limit = 0;
- back_ref_limit = 0;
-
- i = 0;
- while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
- i++;
- for ( ; i < screen_lines; i=next_hunk)
- {
- start = i;
- shift = OLDNUM(i) - i;
-
- /* get forward limit */
- 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++;
- next_hunk = i;
- forward_limit = i;
- if (i >= screen_lines || OLDNUM(i) >= i)
- forward_ref_limit = i;
- else
- forward_ref_limit = OLDNUM(i);
-
- i = start-1;
- /* 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;
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("connected new line %d to old line %d (backward continuation)",
- i, i+shift));
- }
- else
- {
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("not connecting new line %d to old line %d (backward continuation)",
- i, i+shift));
- break;
- }
- i--;
- }
-
- i = end;
- /* 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;
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("connected new line %d to old line %d (forward continuation)",
- i, i+shift));
- }
- else
- {
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("not connecting new line %d to old line %d (forward continuation)",
- i, i+shift));
- break;
- }
- i++;
- }
-
- back_ref_limit = back_limit = i;
- if (shift > 0)
- back_ref_limit += shift;
- }
-}
-
-void _nc_hash_map(void)
-{
- sym *sp;
- register int i;
- int start, shift, size;
-
-
- if (screen_lines > lines_alloc)
- {
- if (hashtab)
- free (hashtab);
- hashtab = typeMalloc(sym, (screen_lines+1)*2);
- if (!hashtab)
- {
- if (oldhash)
- {
- FreeAndNull(oldhash);
- }
- lines_alloc = 0;
- return;
- }
- lines_alloc = screen_lines;
- }
-
- if (oldhash && newhash)
- {
- /* re-hash only changed lines */
- for (i = 0; i < screen_lines; i++)
- {
- if (PENDING(i))
- newhash[i] = hash(NEWTEXT(i));
- }
- }
- else
- {
- /* re-hash all */
- if (oldhash == 0)
- oldhash = typeCalloc (unsigned long, screen_lines);
- if (newhash == 0)
- newhash = typeCalloc (unsigned long, screen_lines);
- if (!oldhash || !newhash)
- return; /* malloc failure */
- for (i = 0; i < screen_lines; i++)
- {
- 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);
- }
-#endif
-
- /*
- * Set up and count line-hash values.
- */
- 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++)
- if (sp->hashval == hashval)
- break;
- sp->hashval = hashval; /* in case this is a new entry */
- sp->oldcount++;
- sp->oldindex = i;
- }
- for (i = 0; i < screen_lines; i++)
- {
- unsigned long hashval = newhash[i];
-
- for (sp = hashtab; sp->hashval; sp++)
- if (sp->hashval == hashval)
- break;
- sp->hashval = hashval; /* in case this is a new entry */
- sp->newcount++;
- sp->newindex = i;
-
- OLDNUM(i) = _NEWINDEX; /* initialize old indices array */
- }
-
- /*
- * Mark line pairs corresponding to unique hash pairs.
- *
- * We don't mark lines with offset 0, because it can make fail
- * extending hunks by cost_effective. Otherwise, it does not
- * have any side effects.
- */
- for (sp = hashtab; sp->hashval; sp++)
- if (sp->oldcount == 1 && sp->newcount == 1
- && sp->oldindex != sp->newindex)
- {
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("new line %d is hash-identical to old line %d (unique)",
- sp->newindex, sp->oldindex));
- OLDNUM(sp->newindex) = sp->oldindex;
- }
-
- grow_hunks();
-
- /*
- * Eliminate bad or impossible shifts -- this includes removing
- * those hunks which could not grow because of conflicts, as well
- * those which are to be moved too far, they are likely to destroy
- * more than carry.
- */
- for (i = 0; i < screen_lines; )
- {
- while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
- i++;
- if (i >= screen_lines)
- break;
- start = i;
- shift = OLDNUM(i) - i;
- i++;
- while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
- i++;
- size = i - start;
- if (size < 3 || size+min(size/8,2) < abs(shift))
- {
- while (start < i)
- {
- OLDNUM(start) = _NEWINDEX;
- start++;
- }
- }
- }
-
- /* 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)
-{
- if (oldhash)
- oldhash[i] = hash(OLDTEXT(i));
-}
-
-void _nc_scroll_oldhash(int n, int top, int bot)
-{
- int size;
- 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--)
- oldhash[i] = hash(OLDTEXT(i));
- }
- else
- {
- memmove (oldhash+top-n, oldhash+top, size);
- for (i = top; i < top-n; i++)
- oldhash[i] = hash(OLDTEXT(i));
- }
-}
-
-
-#ifdef HASHDEBUG
-static void
-usage(void)
-{
- static const char *table[] = {
- "hashmap test-driver",
- "",
- "# comment",
- "l get initial line number vector",
- "n use following letters as text of new lines",
- "o use following letters as text of old lines",
- "d dump state of test arrays",
- "h apply hash mapper and see scroll optimization",
- "? this message"
- };
- size_t n;
- for (n = 0; n < sizeof(table)/sizeof(table[0]); n++)
- fprintf(stderr, "%s\n", table[n]);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED)
-{
- char line[BUFSIZ], *st;
- int n;
-
- SP = typeCalloc(SCREEN,1);
- for (n = 0; n < screen_lines; n++)
- {
- reallines[n] = n;
- oldnums[n] = _NEWINDEX;
- oldtext[n][0] = newtext[n][0] = '.';
- }
-
- if (isatty(fileno(stdin)))
- usage();
-
-#ifdef TRACE
- _nc_tracing = TRACE_MOVE;
-#endif
- for (;;)
- {
- /* grab a test command */
- if (fgets(line, sizeof(line), stdin) == (char *)NULL)
- exit(EXIT_SUCCESS);
-
- switch(line[0])
- {
- case '#': /* comment */
- (void) fputs(line, stderr);
- break;
-
- case 'l': /* get initial line number vector */
- for (n = 0; n < screen_lines; n++)
- {
- reallines[n] = n;
- oldnums[n] = _NEWINDEX;
- }
- n = 0;
- st = strtok(line, " ");
- do {
- oldnums[n++] = atoi(st);
- } while
- ((st = strtok((char *)NULL, " ")) != 0);
- break;
-
- 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++)
- if (line[n+1] == '\n')
- break;
- else
- newtext[n][0] = line[n+1];
- break;
-
- 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++)
- if (line[n+1] == '\n')
- break;
- else
- oldtext[n][0] = line[n+1];
- break;
-
- case 'd': /* dump state of test arrays */
-#ifdef TRACE
- _nc_linedump();
-#endif
- (void) fputs("Old lines: [", stdout);
- for (n = 0; n < screen_lines; n++)
- putchar(oldtext[n][0]);
- putchar(']');
- putchar('\n');
- (void) fputs("New lines: [", stdout);
- for (n = 0; n < screen_lines; n++)
- putchar(newtext[n][0]);
- putchar(']');
- putchar('\n');
- break;
-
- case 'h': /* apply hash mapper and see scroll optimization */
- _nc_hash_map();
- (void) fputs("Result:\n", stderr);
-#ifdef TRACE
- _nc_linedump();
-#endif
- _nc_scroll_optimize();
- (void) fputs("Done.\n", stderr);
- break;
- case '?':
- usage();
- break;
- }
- }
- return EXIT_SUCCESS;
-}
-
-#endif /* HASHDEBUG */
-
-/* hashmap.c ends here */
diff --git a/ncurses-5.2/ncurses/tty/lib_mvcur.c b/ncurses-5.2/ncurses/tty/lib_mvcur.c
deleted file mode 100644
index c931aa2..0000000
--- a/ncurses-5.2/ncurses/tty/lib_mvcur.c
+++ /dev/null
@@ -1,1182 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_mvcur.c
-**
-** The routines for moving the physical cursor and scrolling:
-**
-** void _nc_mvcur_init(void)
-**
-** void _nc_mvcur_resume(void)
-**
-** int mvcur(int old_y, int old_x, int new_y, int new_x)
-**
-** void _nc_mvcur_wrap(void)
-**
-** Comparisons with older movement optimizers:
-** SVr3 curses mvcur() can't use cursor_to_ll or auto_left_margin.
-** 4.4BSD curses can't use cuu/cud/cuf/cub/hpa/vpa/tab/cbt for local
-** motions. It doesn't use tactics based on auto_left_margin. Weirdly
-** enough, it doesn't use its own hardware-scrolling routine to scroll up
-** destination lines for out-of-bounds addresses!
-** old ncurses optimizer: less accurate cost computations (in fact,
-** it was broken and had to be commented out!).
-**
-** Compile with -DMAIN to build an interactive tester/timer for the movement
-** optimizer. You can use it to investigate the optimizer's behavior.
-** You can also use it for tuning the formulas used to determine whether
-** or not full optimization is attempted.
-**
-** This code has a nasty tendency to find bugs in terminfo entries, because it
-** exercises the non-cup movement capabilities heavily. If you think you've
-** found a bug, try deleting subsets of the following capabilities (arranged
-** in decreasing order of suspiciousness): it, tab, cbt, hpa, vpa, cuu, cud,
-** cuf, cub, cuu1, cud1, cuf1, cub1. It may be that one or more are wrong.
-**
-** Note: you should expect this code to look like a resource hog in a profile.
-** That's because it does a lot of I/O, through the tputs() calls. The I/O
-** cost swamps the computation overhead (and as machines get faster, this
-** will become even more true). Comments in the test exerciser at the end
-** go into detail about tuning and how you can gauge the optimizer's
-** effectiveness.
-**/
-
-/****************************************************************************
- *
- * Constants and macros for optimizer tuning.
- *
- ****************************************************************************/
-
-/*
- * The average overhead of a full optimization computation in character
- * transmission times. If it's too high, the algorithm will be a bit
- * over-biased toward using cup rather than local motions; if it's too
- * low, the algorithm may spend more time than is strictly optimal
- * looking for non-cup motions. Profile the optimizer using the `t'
- * command of the exerciser (see below), and round to the nearest integer.
- *
- * Yes, I (esr) thought about computing expected overhead dynamically, say
- * by derivation from a running average of optimizer times. But the
- * whole point of this optimization is to *decrease* the frequency of
- * system calls. :-)
- */
-#define COMPUTE_OVERHEAD 1 /* I use a 90MHz Pentium @ 9.6Kbps */
-
-/*
- * LONG_DIST is the distance we consider to be just as costly to move over as a
- * cup sequence is to emit. In other words, it's the length of a cup sequence
- * adjusted for average computation overhead. The magic number is the length
- * of "\033[yy;xxH", the typical cup sequence these days.
- */
-#define LONG_DIST (8 - COMPUTE_OVERHEAD)
-
-/*
- * Tell whether a motion is optimizable by local motions. Needs to be cheap to
- * compute. In general, all the fast moves go to either the right or left edge
- * of the screen. So any motion to a location that is (a) further away than
- * LONG_DIST and (b) further inward from the right or left edge than LONG_DIST,
- * we'll consider nonlocal.
- */
-#define NOT_LOCAL(fy, fx, ty, tx) ((tx > LONG_DIST) && (tx < screen_lines - 1 - LONG_DIST) && (abs(ty-fy) + abs(tx-fx) > LONG_DIST))
-
-/****************************************************************************
- *
- * External interfaces
- *
- ****************************************************************************/
-
-/*
- * For this code to work OK, the following components must live in the
- * screen structure:
- *
- * int _char_padding; // cost of character put
- * int _cr_cost; // cost of (carriage_return)
- * int _cup_cost; // cost of (cursor_address)
- * int _home_cost; // cost of (cursor_home)
- * int _ll_cost; // cost of (cursor_to_ll)
- *#if USE_HARD_TABS
- * int _ht_cost; // cost of (tab)
- * int _cbt_cost; // cost of (back_tab)
- *#endif USE_HARD_TABS
- * int _cub1_cost; // cost of (cursor_left)
- * int _cuf1_cost; // cost of (cursor_right)
- * int _cud1_cost; // cost of (cursor_down)
- * int _cuu1_cost; // cost of (cursor_up)
- * int _cub_cost; // cost of (parm_cursor_left)
- * int _cuf_cost; // cost of (parm_cursor_right)
- * int _cud_cost; // cost of (parm_cursor_down)
- * int _cuu_cost; // cost of (parm_cursor_up)
- * int _hpa_cost; // cost of (column_address)
- * int _vpa_cost; // cost of (row_address)
- * int _ech_cost; // cost of (erase_chars)
- * int _rep_cost; // cost of (repeat_char)
- *
- * The USE_HARD_TABS switch controls whether it is reliable to use tab/backtabs
- * for local motions. On many systems, it's not, due to uncertainties about
- * tab delays and whether or not tabs will be expanded in raw mode. If you
- * have parm_right_cursor, tab motions don't win you a lot anyhow.
- */
-
-#include <curses.priv.h>
-#include <term.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-#define CURRENT_ROW SP->_cursrow /* phys cursor row */
-#define CURRENT_COLUMN SP->_curscol /* phys cursor column */
-#define CURRENT_ATTR SP->_current_attr /* current phys attribute */
-#define REAL_ATTR SP->_current_attr /* phys current attribute */
-#define WANT_CHAR(y, x) SP->_newscr->_line[y].text[x] /* desired state */
-#define BAUDRATE cur_term->_baudrate /* bits per second */
-
-#if defined(MAIN) || defined(NCURSES_TEST)
-#include <sys/time.h>
-
-static bool profiling = FALSE;
-static float diff;
-#endif /* MAIN */
-
-#define OPT_SIZE 512
-
-static int normalized_cost(const char *const cap, int affcnt);
-
-/****************************************************************************
- *
- * Initialization/wrapup (including cost pre-computation)
- *
- ****************************************************************************/
-
-#ifdef TRACE
-static int
-trace_cost_of(const char *capname, const char *cap, int affcnt)
-{
- int result = _nc_msec_cost(cap, affcnt);
- TR(TRACE_CHARPUT | TRACE_MOVE,
- ("CostOf %s %d %s", capname, result, _nc_visbuf(cap)));
- return result;
-}
-#define CostOf(cap,affcnt) trace_cost_of(#cap,cap,affcnt);
-
-static int
-trace_normalized_cost(const char *capname, const char *cap, int affcnt)
-{
- int result = normalized_cost(cap, affcnt);
- TR(TRACE_CHARPUT | TRACE_MOVE,
- ("NormalizedCost %s %d %s", capname, result, _nc_visbuf(cap)));
- return result;
-}
-#define NormalizedCost(cap,affcnt) trace_normalized_cost(#cap,cap,affcnt);
-
-#else
-
-#define CostOf(cap,affcnt) _nc_msec_cost(cap,affcnt);
-#define NormalizedCost(cap,affcnt) normalized_cost(cap,affcnt);
-
-#endif
-
-int
-_nc_msec_cost(const char *const cap, int affcnt)
-/* compute the cost of a given operation */
-{
- if (cap == 0)
- return (INFINITY);
- else {
- const char *cp;
- float cum_cost = 0.0;
-
- for (cp = cap; *cp; cp++) {
- /* extract padding, either mandatory or required */
- if (cp[0] == '$' && cp[1] == '<' && strchr(cp, '>')) {
- float number = 0.0;
-
- for (cp += 2; *cp != '>'; cp++) {
- if (isdigit(*cp))
- number = number * 10 + (*cp - '0');
- else if (*cp == '*')
- number *= affcnt;
- else if (*cp == '.' && (*++cp != '>') && isdigit(*cp))
- number += (*cp - '0') / 10.0;
- }
-
-#if NCURSES_NO_PADDING
- if (!(SP->_no_padding))
-#endif
- cum_cost += number * 10;
- } else
- cum_cost += SP->_char_padding;
- }
-
- return ((int) cum_cost);
- }
-}
-
-static int
-normalized_cost(const char *const cap, int affcnt)
-/* compute the effective character-count for an operation (round up) */
-{
- int cost = _nc_msec_cost(cap, affcnt);
- if (cost != INFINITY)
- cost = (cost + SP->_char_padding - 1) / SP->_char_padding;
- return cost;
-}
-
-static void
-reset_scroll_region(void)
-/* Set the scroll-region to a known state (the default) */
-{
- if (change_scroll_region) {
- TPUTS_TRACE("change_scroll_region");
- putp(tparm(change_scroll_region, 0, screen_lines - 1));
- }
-}
-
-void
-_nc_mvcur_resume(void)
-/* what to do at initialization time and after each shellout */
-{
- /* initialize screen for cursor access */
- if (enter_ca_mode) {
- TPUTS_TRACE("enter_ca_mode");
- putp(enter_ca_mode);
- }
-
- /*
- * Doing this here rather than in _nc_mvcur_wrap() ensures that
- * ncurses programs will see a reset scroll region even if a
- * program that messed with it died ungracefully.
- *
- * This also undoes the effects of terminal init strings that assume
- * they know the screen size. This is useful when you're running
- * a vt100 emulation through xterm.
- */
- reset_scroll_region();
- SP->_cursrow = SP->_curscol = -1;
-
- /* restore cursor shape */
- if (SP->_cursor != -1) {
- int cursor = SP->_cursor;
- SP->_cursor = -1;
- curs_set(cursor);
- }
-}
-
-void
-_nc_mvcur_init(void)
-/* initialize the cost structure */
-{
- /*
- * 9 = 7 bits + 1 parity + 1 stop.
- */
- SP->_char_padding = (9 * 1000 * 10) / (BAUDRATE > 0 ? BAUDRATE : 9600);
- if (SP->_char_padding <= 0)
- SP->_char_padding = 1; /* must be nonzero */
- TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP->_char_padding));
-
- /* non-parameterized local-motion strings */
- SP->_cr_cost = CostOf(carriage_return, 0);
- SP->_home_cost = CostOf(cursor_home, 0);
- SP->_ll_cost = CostOf(cursor_to_ll, 0);
-#if USE_HARD_TABS
- SP->_ht_cost = CostOf(tab, 0);
- SP->_cbt_cost = CostOf(back_tab, 0);
-#endif /* USE_HARD_TABS */
- SP->_cub1_cost = CostOf(cursor_left, 0);
- SP->_cuf1_cost = CostOf(cursor_right, 0);
- SP->_cud1_cost = CostOf(cursor_down, 0);
- SP->_cuu1_cost = CostOf(cursor_up, 0);
-
- SP->_smir_cost = CostOf(enter_insert_mode, 0);
- SP->_rmir_cost = CostOf(exit_insert_mode, 0);
- SP->_ip_cost = 0;
- if (insert_padding) {
- SP->_ip_cost = CostOf(insert_padding, 0);
- }
-
- /*
- * Assumption: if the terminal has memory_relative addressing, the
- * initialization strings or smcup will set single-page mode so we
- * can treat it like absolute screen addressing. This seems to be true
- * for all cursor_mem_address terminal types in the terminfo database.
- */
- SP->_address_cursor = cursor_address ? cursor_address : cursor_mem_address;
-
- /*
- * Parametrized local-motion strings. This static cost computation
- * depends on the following assumptions:
- *
- * (1) They never have * padding. In the entire master terminfo database
- * as of March 1995, only the obsolete Zenith Z-100 pc violates this.
- * (Proportional padding is found mainly in insert, delete and scroll
- * capabilities).
- *
- * (2) The average case of cup has two two-digit parameters. Strictly,
- * the average case for a 24 * 80 screen has ((10*10*(1 + 1)) +
- * (14*10*(1 + 2)) + (10*70*(2 + 1)) + (14*70*4)) / (24*80) = 3.458
- * digits of parameters. On a 25x80 screen the average is 3.6197.
- * On larger screens the value gets much closer to 4.
- *
- * (3) The average case of cub/cuf/hpa/ech/rep has 2 digits of parameters
- * (strictly, (((10 * 1) + (70 * 2)) / 80) = 1.8750).
- *
- * (4) The average case of cud/cuu/vpa has 2 digits of parameters
- * (strictly, (((10 * 1) + (14 * 2)) / 24) = 1.5833).
- *
- * All these averages depend on the assumption that all parameter values
- * are equally probable.
- */
- SP->_cup_cost = CostOf(tparm(SP->_address_cursor, 23, 23), 1);
- SP->_cub_cost = CostOf(tparm(parm_left_cursor, 23), 1);
- SP->_cuf_cost = CostOf(tparm(parm_right_cursor, 23), 1);
- SP->_cud_cost = CostOf(tparm(parm_down_cursor, 23), 1);
- SP->_cuu_cost = CostOf(tparm(parm_up_cursor, 23), 1);
- SP->_hpa_cost = CostOf(tparm(column_address, 23), 1);
- SP->_vpa_cost = CostOf(tparm(row_address, 23), 1);
-
- /* non-parameterized screen-update strings */
- SP->_ed_cost = NormalizedCost(clr_eos, 1);
- SP->_el_cost = NormalizedCost(clr_eol, 1);
- SP->_el1_cost = NormalizedCost(clr_bol, 1);
- SP->_dch1_cost = NormalizedCost(delete_character, 1);
- SP->_ich1_cost = NormalizedCost(insert_character, 1);
-
- /* parameterized screen-update strings */
- SP->_dch_cost = NormalizedCost(tparm(parm_dch, 23), 1);
- SP->_ich_cost = NormalizedCost(tparm(parm_ich, 23), 1);
- SP->_ech_cost = NormalizedCost(tparm(erase_chars, 23), 1);
- SP->_rep_cost = NormalizedCost(tparm(repeat_char, ' ', 23), 1);
-
- SP->_cup_ch_cost = NormalizedCost(tparm(SP->_address_cursor, 23, 23), 1);
- SP->_hpa_ch_cost = NormalizedCost(tparm(column_address, 23), 1);
- SP->_cuf_ch_cost = NormalizedCost(tparm(parm_right_cursor, 23), 1);
- SP->_inline_cost = min(SP->_cup_ch_cost,
- min(SP->_hpa_ch_cost,
- SP->_cuf_ch_cost));
-
- /*
- * If save_cursor is used within enter_ca_mode, we should not use it for
- * scrolling optimization, since the corresponding restore_cursor is not
- * nested on the various terminals (vt100, xterm, etc.) which use this
- * feature.
- */
- if (save_cursor != 0
- && enter_ca_mode != 0
- && strstr(enter_ca_mode, save_cursor) != 0) {
- T(("...suppressed sc/rc capability due to conflict with smcup/rmcup"));
- save_cursor = 0;
- restore_cursor = 0;
- }
-
- /*
- * A different, possibly better way to arrange this would be to set
- * SP->_endwin = TRUE at window initialization time and let this be
- * called by doupdate's return-from-shellout code.
- */
- _nc_mvcur_resume();
-}
-
-void
-_nc_mvcur_wrap(void)
-/* wrap up cursor-addressing mode */
-{
- /* leave cursor at screen bottom */
- mvcur(-1, -1, screen_lines - 1, 0);
-
- /* set cursor to normal mode */
- if (SP->_cursor != -1)
- curs_set(1);
-
- if (exit_ca_mode) {
- TPUTS_TRACE("exit_ca_mode");
- putp(exit_ca_mode);
- }
- /*
- * Reset terminal's tab counter. There's a long-time bug that
- * if you exit a "curses" program such as vi or more, tab
- * forward, and then backspace, the cursor doesn't go to the
- * right place. The problem is that the kernel counts the
- * escape sequences that reset things as column positions.
- * Utter a \r to reset this invisibly.
- */
- _nc_outch('\r');
-}
-
-/****************************************************************************
- *
- * Optimized cursor movement
- *
- ****************************************************************************/
-
-/*
- * Perform repeated-append, returning cost
- */
-static inline int
-repeated_append(string_desc * target, int total, int num, int repeat, const char *src)
-{
- size_t need = repeat * strlen(src);
-
- if (need < target->s_size) {
- while (repeat-- > 0) {
- if (_nc_safe_strcat(target, src)) {
- total += num;
- } else {
- total = INFINITY;
- break;
- }
- }
- } else {
- total = INFINITY;
- }
- return total;
-}
-
-#ifndef NO_OPTIMIZE
-#define NEXTTAB(fr) (fr + init_tabs - (fr % init_tabs))
-
-/*
- * Assume back_tab (CBT) does not wrap backwards at the left margin, return
- * a negative value at that point to simplify the loop.
- */
-#define LASTTAB(fr) ((fr > 0) ? ((fr - 1) / init_tabs) * init_tabs : -1)
-
-static int
-relative_move(string_desc * target, int from_y, int from_x, int to_y, int
- to_x, bool ovw)
-/* move via local motions (cuu/cuu1/cud/cud1/cub1/cub/cuf1/cuf/vpa/hpa) */
-{
- string_desc save;
- int n, vcost = 0, hcost = 0;
-
- (void) _nc_str_copy(&save, target);
-
- if (to_y != from_y) {
- vcost = INFINITY;
-
- if (row_address != 0
- && _nc_safe_strcat(target, tparm(row_address, to_y))) {
- vcost = SP->_vpa_cost;
- }
-
- if (to_y > from_y) {
- n = (to_y - from_y);
-
- if (parm_down_cursor
- && SP->_cud_cost < vcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(parm_down_cursor, n))) {
- vcost = SP->_cud_cost;
- }
-
- if (cursor_down && (n * SP->_cud1_cost < vcost)) {
- vcost = repeated_append(_nc_str_copy(target, &save), 0,
- SP->_cud1_cost, n, cursor_down);
- }
- } else { /* (to_y < from_y) */
- n = (from_y - to_y);
-
- if (parm_up_cursor
- && SP->_cup_cost < vcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(parm_up_cursor, n))) {
- vcost = SP->_cup_cost;
- }
-
- if (cursor_up && (n * SP->_cuu1_cost < vcost)) {
- vcost = repeated_append(_nc_str_copy(target, &save), 0,
- SP->_cuu1_cost, n, cursor_up);
- }
- }
-
- if (vcost == INFINITY)
- return (INFINITY);
- }
-
- save = *target;
-
- if (to_x != from_x) {
- char str[OPT_SIZE];
- string_desc check;
-
- hcost = INFINITY;
-
- if (column_address
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(column_address, to_x))) {
- hcost = SP->_hpa_cost;
- }
-
- if (to_x > from_x) {
- n = to_x - from_x;
-
- if (parm_right_cursor
- && SP->_cuf_cost < hcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(parm_right_cursor, n))) {
- hcost = SP->_cuf_cost;
- }
-
- if (cursor_right) {
- int lhcost = 0;
-
- (void) _nc_str_init(&check, str, sizeof(str));
-
-#if USE_HARD_TABS
- /* use hard tabs, if we have them, to do as much as possible */
- if (init_tabs > 0 && tab) {
- int nxt, fr;
-
- for (fr = from_x; (nxt = NEXTTAB(fr)) <= to_x; fr = nxt) {
- lhcost = repeated_append(&check, lhcost,
- SP->_ht_cost, 1, tab);
- if (lhcost == INFINITY)
- break;
- }
-
- n = to_x - fr;
- from_x = fr;
- }
-#endif /* USE_HARD_TABS */
-
-#if defined(REAL_ATTR) && defined(WANT_CHAR)
-#if BSD_TPUTS
- /*
- * If we're allowing BSD-style padding in tputs, don't generate
- * a string with a leading digit. Otherwise, that will be
- * interpreted as a padding value rather than sent to the
- * screen.
- */
- if (ovw
- && n > 0
- && n < (int) check.s_size
- && vcost == 0
- && str[0] == '\0'
- && isdigit(TextOf(WANT_CHAR(to_y, from_x))))
- ovw = FALSE;
-#endif
- /*
- * If we have no attribute changes, overwrite is cheaper.
- * Note: must suppress this by passing in ovw = FALSE whenever
- * WANT_CHAR would return invalid data. In particular, this
- * is true between the time a hardware scroll has been done
- * and the time the structure WANT_CHAR would access has been
- * updated.
- */
- if (ovw) {
- int i;
-
- for (i = 0; i < n; i++)
- if ((WANT_CHAR(to_y, from_x + i) & A_ATTRIBUTES) != CURRENT_ATTR) {
- ovw = FALSE;
- break;
- }
- }
- if (ovw) {
- int i;
-
- for (i = 0; i < n; i++)
- *check.s_tail++ = WANT_CHAR(to_y, from_x + i);
- *check.s_tail = '\0';
- check.s_size -= n;
- lhcost += n * SP->_char_padding;
- } else
-#endif /* defined(REAL_ATTR) && defined(WANT_CHAR) */
- {
- lhcost = repeated_append(&check, lhcost, SP->_cuf1_cost,
- n, cursor_right);
- }
-
- if (lhcost < hcost
- && _nc_safe_strcat(_nc_str_copy(target, &save), str)) {
- hcost = lhcost;
- }
- }
- } else { /* (to_x < from_x) */
- n = from_x - to_x;
-
- if (parm_left_cursor
- && SP->_cub_cost < hcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(parm_left_cursor, n))) {
- hcost = SP->_cub_cost;
- }
-
- if (cursor_left) {
- int lhcost = 0;
-
- (void) _nc_str_init(&check, str, sizeof(str));
-
-#if USE_HARD_TABS
- if (init_tabs > 0 && back_tab) {
- int nxt, fr;
-
- for (fr = from_x; (nxt = LASTTAB(fr)) >= to_x; fr = nxt) {
- lhcost = repeated_append(&check, lhcost,
- SP->_cbt_cost, 1, back_tab);
- if (lhcost == INFINITY)
- break;
- }
-
- n = fr - to_x;
- }
-#endif /* USE_HARD_TABS */
-
- lhcost = repeated_append(&check, lhcost, SP->_cub1_cost, n, cursor_left);
-
- if (lhcost < hcost
- && _nc_safe_strcat(_nc_str_copy(target, &save), str)) {
- hcost = lhcost;
- }
- }
- }
-
- if (hcost == INFINITY)
- return (INFINITY);
- }
-
- return (vcost + hcost);
-}
-#endif /* !NO_OPTIMIZE */
-
-/*
- * With the machinery set up above, it's conceivable that
- * onscreen_mvcur could be modified into a recursive function that does
- * an alpha-beta search of motion space, as though it were a chess
- * move tree, with the weight function being boolean and the search
- * depth equated to length of string. However, this would jack up the
- * computation cost a lot, especially on terminals without a cup
- * capability constraining the search tree depth. So we settle for
- * the simpler method below.
- */
-
-static inline int
-onscreen_mvcur(int yold, int xold, int ynew, int xnew, bool ovw)
-/* onscreen move from (yold, xold) to (ynew, xnew) */
-{
- string_desc result;
- char buffer[OPT_SIZE];
- int tactic = 0, newcost, usecost = INFINITY;
- int t5_cr_cost;
-
-#if defined(MAIN) || defined(NCURSES_TEST)
- struct timeval before, after;
-
- gettimeofday(&before, NULL);
-#endif /* MAIN */
-
-#define NullResult _nc_str_null(&result, sizeof(buffer))
-#define InitResult _nc_str_init(&result, buffer, sizeof(buffer))
-
- /* tactic #0: use direct cursor addressing */
- if (_nc_safe_strcpy(InitResult, tparm(SP->_address_cursor, ynew, xnew))) {
- tactic = 0;
- usecost = SP->_cup_cost;
-
-#if defined(TRACE) || defined(NCURSES_TEST)
- if (!(_nc_optimize_enable & OPTIMIZE_MVCUR))
- goto nonlocal;
-#endif /* TRACE */
-
- /*
- * We may be able to tell in advance that the full optimization
- * will probably not be worth its overhead. Also, don't try to
- * use local movement if the current attribute is anything but
- * A_NORMAL...there are just too many ways this can screw up
- * (like, say, local-movement \n getting mapped to some obscure
- * character because A_ALTCHARSET is on).
- */
- if (yold == -1 || xold == -1 || NOT_LOCAL(yold, xold, ynew, xnew)) {
-#if defined(MAIN) || defined(NCURSES_TEST)
- if (!profiling) {
- (void) fputs("nonlocal\n", stderr);
- goto nonlocal; /* always run the optimizer if profiling */
- }
-#else
- goto nonlocal;
-#endif /* MAIN */
- }
- }
-#ifndef NO_OPTIMIZE
- /* tactic #1: use local movement */
- if (yold != -1 && xold != -1
- && ((newcost = relative_move(NullResult, yold, xold, ynew, xnew,
- ovw)) != INFINITY)
- && newcost < usecost) {
- tactic = 1;
- usecost = newcost;
- }
-
- /* tactic #2: use carriage-return + local movement */
- if (yold != -1 && carriage_return
- && ((newcost = relative_move(NullResult, yold, 0, ynew, xnew, ovw))
- != INFINITY)
- && SP->_cr_cost + newcost < usecost) {
- tactic = 2;
- usecost = SP->_cr_cost + newcost;
- }
-
- /* tactic #3: use home-cursor + local movement */
- if (cursor_home
- && ((newcost = relative_move(NullResult, 0, 0, ynew, xnew, ovw)) != INFINITY)
- && SP->_home_cost + newcost < usecost) {
- tactic = 3;
- usecost = SP->_home_cost + newcost;
- }
-
- /* tactic #4: use home-down + local movement */
- if (cursor_to_ll
- && ((newcost = relative_move(NullResult, screen_lines - 1, 0, ynew,
- xnew, ovw)) != INFINITY)
- && SP->_ll_cost + newcost < usecost) {
- tactic = 4;
- usecost = SP->_ll_cost + newcost;
- }
-
- /*
- * tactic #5: use left margin for wrap to right-hand side,
- * unless strange wrap behavior indicated by xenl might hose us.
- */
- t5_cr_cost = (xold > 0 ? SP->_cr_cost : 0);
- if (auto_left_margin && !eat_newline_glitch
- && yold > 0 && cursor_left
- && ((newcost = relative_move(NullResult, yold - 1, screen_columns -
- 1, ynew, xnew, ovw)) != INFINITY)
- && t5_cr_cost + SP->_cub1_cost + newcost < usecost) {
- tactic = 5;
- usecost = t5_cr_cost + SP->_cub1_cost + newcost;
- }
-
- /*
- * These cases are ordered by estimated relative frequency.
- */
- if (tactic)
- InitResult;
- switch (tactic) {
- case 1:
- (void) relative_move(&result, yold, xold, ynew, xnew, ovw);
- break;
- case 2:
- (void) _nc_safe_strcpy(&result, carriage_return);
- (void) relative_move(&result, yold, 0, ynew, xnew, ovw);
- break;
- case 3:
- (void) _nc_safe_strcpy(&result, cursor_home);
- (void) relative_move(&result, 0, 0, ynew, xnew, ovw);
- break;
- case 4:
- (void) _nc_safe_strcpy(&result, cursor_to_ll);
- (void) relative_move(&result, screen_lines - 1, 0, ynew, xnew, ovw);
- break;
- case 5:
- if (xold > 0)
- (void) _nc_safe_strcat(&result, carriage_return);
- (void) _nc_safe_strcat(&result, cursor_left);
- (void) relative_move(&result, yold - 1, screen_columns - 1, ynew,
- xnew, ovw);
- break;
- }
-#endif /* !NO_OPTIMIZE */
-
-#if defined(MAIN) || defined(NCURSES_TEST)
- gettimeofday(&after, NULL);
- diff = after.tv_usec - before.tv_usec
- + (after.tv_sec - before.tv_sec) * 1000000;
- if (!profiling)
- (void) fprintf(stderr,
- "onscreen: %d msec, %f 28.8Kbps char-equivalents\n",
- (int) diff, diff / 288);
-#endif /* MAIN */
-
- nonlocal:
- if (usecost != INFINITY) {
- TPUTS_TRACE("mvcur");
- tputs(buffer, 1, _nc_outch);
- return (OK);
- } else
- return (ERR);
-}
-
-int
-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));
-
- if (yold == ynew && xold == xnew)
- return (OK);
-
- /*
- * Most work here is rounding for terminal boundaries getting the
- * column position implied by wraparound or the lack thereof and
- * rolling up the screen to get ynew on the screen.
- */
-
- if (xnew >= screen_columns) {
- ynew += xnew / screen_columns;
- xnew %= screen_columns;
- }
- if (xold >= screen_columns) {
- int l;
-
- 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);
- } else
- putchar('\r');
- xold = 0;
- }
- }
- }
-
- if (yold > screen_lines - 1)
- yold = screen_lines - 1;
- if (ynew > screen_lines - 1)
- ynew = screen_lines - 1;
-
- /* destination location is on screen now */
- return (onscreen_mvcur(yold, xold, ynew, xnew, TRUE));
-}
-
-#if defined(TRACE) || defined(NCURSES_TEST)
-int _nc_optimize_enable = OPTIMIZE_ALL;
-#endif
-
-#if defined(MAIN) || defined(NCURSES_TEST)
-/****************************************************************************
- *
- * Movement optimizer test code
- *
- ****************************************************************************/
-
-#include <tic.h>
-#include <dump_entry.h>
-
-const char *_nc_progname = "mvcur";
-
-static unsigned long xmits;
-
-/* these override lib_tputs.c */
-int
-tputs(const char *string, int affcnt GCC_UNUSED, int (*outc) (int) GCC_UNUSED)
-/* stub tputs() that dumps sequences in a visible form */
-{
- if (profiling)
- xmits += strlen(string);
- else
- (void) fputs(_nc_visbuf(string), stdout);
- return (OK);
-}
-
-int
-putp(const char *string)
-{
- return (tputs(string, 1, _nc_outch));
-}
-
-int
-_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
-delay_output(int ms GCC_UNUSED)
-{
- return OK;
-}
-
-static char tname[MAX_ALIAS];
-
-static void
-load_term(void)
-{
- (void) setupterm(tname, STDOUT_FILENO, NULL);
-}
-
-static int
-roll(int n)
-{
- int i, j;
-
- i = (RAND_MAX / n) * n;
- while ((j = rand()) >= i)
- continue;
- return (j % n);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- (void) strcpy(tname, termname());
- load_term();
- _nc_setupscreen(lines, columns, stdout);
- baudrate();
-
- _nc_mvcur_init();
- NC_BUFFERED(FALSE);
-
- (void) puts("The mvcur tester. Type ? for help");
-
- fputs("smcup:", stdout);
- putchar('\n');
-
- for (;;) {
- int fy, fx, ty, tx, n, i;
- char buf[BUFSIZ], capname[BUFSIZ];
-
- (void) fputs("> ", stdout);
- (void) fgets(buf, sizeof(buf), stdin);
-
- if (buf[0] == '?') {
- (void) puts("? -- display this help message");
- (void)
- puts("fy fx ty tx -- (4 numbers) display (fy,fx)->(ty,tx) move");
- (void) puts("s[croll] n t b m -- display scrolling sequence");
- (void)
- printf("r[eload] -- reload terminal info for %s\n",
- termname());
- (void)
- puts("l[oad] <term> -- load terminal info for type <term>");
- (void) puts("d[elete] <cap> -- delete named capability");
- (void) puts("i[nspect] -- display terminal capabilities");
- (void)
- puts("c[ost] -- dump cursor-optimization cost table");
- (void) puts("o[optimize] -- toggle movement optimization");
- (void)
- puts("t[orture] <num> -- torture-test with <num> random moves");
- (void) puts("q[uit] -- quit the program");
- } else if (sscanf(buf, "%d %d %d %d", &fy, &fx, &ty, &tx) == 4) {
- struct timeval before, after;
-
- putchar('"');
-
- gettimeofday(&before, NULL);
- mvcur(fy, fx, ty, tx);
- gettimeofday(&after, NULL);
-
- printf("\" (%ld msec)\n",
- (long) (after.tv_usec - before.tv_usec
- + (after.tv_sec - before.tv_sec)
- * 1000000));
- } else if (sscanf(buf, "s %d %d %d %d", &fy, &fx, &ty, &tx) == 4) {
- struct timeval before, after;
-
- putchar('"');
-
- gettimeofday(&before, NULL);
- _nc_scrolln(fy, fx, ty, tx);
- gettimeofday(&after, NULL);
-
- printf("\" (%ld msec)\n",
- (long) (after.tv_usec - before.tv_usec + (after.tv_sec -
- before.tv_sec)
- * 1000000));
- } else if (buf[0] == 'r') {
- (void) strcpy(tname, termname());
- load_term();
- } else if (sscanf(buf, "l %s", tname) == 1) {
- load_term();
- } else if (sscanf(buf, "d %s", capname) == 1) {
- struct name_table_entry const *np = _nc_find_entry(capname,
- _nc_info_hash_table);
-
- if (np == NULL)
- (void) printf("No such capability as \"%s\"\n", capname);
- else {
- switch (np->nte_type) {
- case BOOLEAN:
- cur_term->type.Booleans[np->nte_index] = FALSE;
- (void)
- printf("Boolean capability `%s' (%d) turned off.\n",
- np->nte_name, np->nte_index);
- break;
-
- case NUMBER:
- cur_term->type.Numbers[np->nte_index] = ABSENT_NUMERIC;
- (void) printf("Number capability `%s' (%d) set to -1.\n",
- np->nte_name, np->nte_index);
- break;
-
- case STRING:
- cur_term->type.Strings[np->nte_index] = ABSENT_STRING;
- (void) printf("String capability `%s' (%d) deleted.\n",
- np->nte_name, np->nte_index);
- break;
- }
- }
- } else if (buf[0] == 'i') {
- dump_init((char *) NULL, F_TERMINFO, S_TERMINFO, 70, 0, FALSE);
- dump_entry(&cur_term->type, FALSE, TRUE, 0);
- putchar('\n');
- } else if (buf[0] == 'o') {
- if (_nc_optimize_enable & OPTIMIZE_MVCUR) {
- _nc_optimize_enable &= ~OPTIMIZE_MVCUR;
- (void) puts("Optimization is now off.");
- } else {
- _nc_optimize_enable |= OPTIMIZE_MVCUR;
- (void) puts("Optimization is now on.");
- }
- }
- /*
- * You can use the `t' test to profile and tune the movement
- * optimizer. Use iteration values in three digits or more.
- * At above 5000 iterations the profile timing averages are stable
- * to within a millisecond or three.
- *
- * The `overhead' field of the report will help you pick a
- * COMPUTE_OVERHEAD figure appropriate for your processor and
- * expected line speed. The `total estimated time' is
- * computation time plus a character-transmission time
- * estimate computed from the number of transmits and the baud
- * rate.
- *
- * Use this together with the `o' command to get a read on the
- * optimizer's effectiveness. Compare the total estimated times
- * for `t' runs of the same length in both optimized and un-optimized
- * modes. As long as the optimized times are less, the optimizer
- * is winning.
- */
- else if (sscanf(buf, "t %d", &n) == 1) {
- float cumtime = 0.0, perchar;
- int speeds[] =
- {2400, 9600, 14400, 19200, 28800, 38400, 0};
-
- srand((unsigned) (getpid() + time((time_t *) 0)));
- profiling = TRUE;
- xmits = 0;
- for (i = 0; i < n; i++) {
- /*
- * This does a move test between two random locations,
- * Random moves probably short-change the optimizer,
- * which will work better on the short moves probably
- * typical of doupdate()'s usage pattern. Still,
- * until we have better data...
- */
-#ifdef FIND_COREDUMP
- int from_y = roll(lines);
- int to_y = roll(lines);
- int from_x = roll(columns);
- int to_x = roll(columns);
-
- printf("(%d,%d) -> (%d,%d)\n", from_y, from_x, to_y, to_x);
- mvcur(from_y, from_x, to_y, to_x);
-#else
- mvcur(roll(lines), roll(columns), roll(lines), roll(columns));
-#endif /* FIND_COREDUMP */
- if (diff)
- cumtime += diff;
- }
- profiling = FALSE;
-
- /*
- * Average milliseconds per character optimization time.
- * This is the key figure to watch when tuning the optimizer.
- */
- perchar = cumtime / n;
-
- (void) printf("%d moves (%ld chars) in %d msec, %f msec each:\n",
- n, xmits, (int) cumtime, perchar);
-
- for (i = 0; speeds[i]; i++) {
- /*
- * Total estimated time for the moves, computation and
- * transmission both. Transmission time is an estimate
- * assuming 9 bits/char, 8 bits + 1 stop bit.
- */
- float totalest = cumtime + xmits * 9 * 1e6 / speeds[i];
-
- /*
- * Per-character optimization overhead in character transmits
- * at the current speed. Round this to the nearest integer
- * to figure COMPUTE_OVERHEAD for the speed.
- */
- float overhead = speeds[i] * perchar / 1e6;
-
- (void)
- printf("%6d bps: %3.2f char-xmits overhead; total estimated time %15.2f\n",
- speeds[i], overhead, totalest);
- }
- } else if (buf[0] == 'c') {
- (void) printf("char padding: %d\n", SP->_char_padding);
- (void) printf("cr cost: %d\n", SP->_cr_cost);
- (void) printf("cup cost: %d\n", SP->_cup_cost);
- (void) printf("home cost: %d\n", SP->_home_cost);
- (void) printf("ll cost: %d\n", SP->_ll_cost);
-#if USE_HARD_TABS
- (void) printf("ht cost: %d\n", SP->_ht_cost);
- (void) printf("cbt cost: %d\n", SP->_cbt_cost);
-#endif /* USE_HARD_TABS */
- (void) printf("cub1 cost: %d\n", SP->_cub1_cost);
- (void) printf("cuf1 cost: %d\n", SP->_cuf1_cost);
- (void) printf("cud1 cost: %d\n", SP->_cud1_cost);
- (void) printf("cuu1 cost: %d\n", SP->_cuu1_cost);
- (void) printf("cub cost: %d\n", SP->_cub_cost);
- (void) printf("cuf cost: %d\n", SP->_cuf_cost);
- (void) printf("cud cost: %d\n", SP->_cud_cost);
- (void) printf("cuu cost: %d\n", SP->_cuu_cost);
- (void) printf("hpa cost: %d\n", SP->_hpa_cost);
- (void) printf("vpa cost: %d\n", SP->_vpa_cost);
- } else if (buf[0] == 'x' || buf[0] == 'q')
- break;
- else
- (void) puts("Invalid command.");
- }
-
- (void) fputs("rmcup:", stdout);
- _nc_mvcur_wrap();
- putchar('\n');
-
- return (0);
-}
-
-#endif /* MAIN */
-
-/* lib_mvcur.c ends here */
diff --git a/ncurses-5.2/ncurses/tty/lib_tstp.c b/ncurses-5.2/ncurses/tty/lib_tstp.c
deleted file mode 100644
index e81915d..0000000
--- a/ncurses-5.2/ncurses/tty/lib_tstp.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_tstp.c
-**
-** The routine _nc_signal_handler().
-**
-*/
-
-#include <curses.priv.h>
-
-#include <signal.h>
-#include <SigAction.h>
-
-#if SVR4_ACTION && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-MODULE_ID("$Id$")
-
-#if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
-#define USE_SIGTSTP 1
-#else
-#define USE_SIGTSTP 0
-#endif
-
-/*
- * Note: This code is fragile! Its problem is that different OSs
- * handle restart of system calls interrupted by signals differently.
- * The ncurses code needs signal-call restart to happen -- otherwise,
- * interrupted wgetch() calls will return FAIL, probably making the
- * application think the input stream has ended and it should
- * terminate. In particular, you know you have this problem if, when
- * you suspend an ncurses-using lynx with ^Z and resume, it dies
- * immediately.
- *
- * Default behavior of POSIX sigaction(2) is not to restart
- * interrupted system calls, but Linux's sigaction does it anyway (at
- * least, on and after the 1.1.47 I (esr) use). Thus this code works
- * OK under Linux. The 4.4BSD sigaction(2) supports a (non-portable)
- * SA_RESTART flag that forces the right behavior. Thus, this code
- * should work OK under BSD/OS, NetBSD, and FreeBSD (let us know if it
- * does not).
- *
- * Stock System Vs (and anything else using a strict-POSIX
- * sigaction(2) without SA_RESTART) may have a problem. Possible
- * solutions:
- *
- * sigvec restarts by default (SV_INTERRUPT flag to not restart)
- * signal restarts by default in SVr4 (assuming you link with -lucb)
- * and BSD, but not SVr3.
- * sigset restarts, but is only available under SVr4/Solaris.
- *
- * The signal(3) call is mandated by the ANSI standard, and its
- * interaction with sigaction(2) is described in the POSIX standard
- * (3.3.4.2, page 72,line 934). According to section 8.1, page 191,
- * however, signal(3) itself is not required by POSIX.1. And POSIX is
- * silent on whether it is required to restart signals.
- *
- * So. The present situation is, we use sigaction(2) with no
- * guarantee of restart anywhere but on Linux and BSD. We could
- * switch to signal(3) and collar Linux, BSD, and SVr4. Any way
- * we slice it, System V UNIXes older than SVr4 will probably lose
- * (this may include XENIX).
- *
- * This implementation will probably be changed to use signal(3) in
- * the future. If nothing else, it's simpler...
- */
-
-#if USE_SIGTSTP
-static void
-tstp(int dummy GCC_UNUSED)
-{
- sigset_t mask, omask;
- sigaction_t act, oact;
-
-#ifdef SIGTTOU
- int sigttou_blocked;
-#endif
-
- T(("tstp() called"));
-
- /*
- * The user may have changed the prog_mode tty bits, so save them.
- *
- * But first try to detect whether we still are in the foreground
- * process group - if not, an interactive shell may already have
- * taken ownership of the tty and modified the settings when our
- * parent was stopped before us, and we would likely pick up the
- * settings already modified by the shell.
- */
- if (SP != 0 && !SP->_endwin) /* don't do this if we're not in curses */
-#if HAVE_TCGETPGRP
- if (tcgetpgrp(STDIN_FILENO) == getpgrp())
-#endif
- def_prog_mode();
-
- /*
- * Block window change and timer signals. The latter
- * is because applications use timers to decide when
- * to repaint the screen.
- */
- (void) sigemptyset(&mask);
- (void) sigaddset(&mask, SIGALRM);
-#if USE_SIGWINCH
- (void) sigaddset(&mask, SIGWINCH);
-#endif
- (void) sigprocmask(SIG_BLOCK, &mask, &omask);
-
-#ifdef SIGTTOU
- sigttou_blocked = sigismember(&omask, SIGTTOU);
- if (!sigttou_blocked) {
- (void) sigemptyset(&mask);
- (void) sigaddset(&mask, SIGTTOU);
- (void) sigprocmask(SIG_BLOCK, &mask, NULL);
- }
-#endif
-
- /*
- * End window mode, which also resets the terminal state to the
- * original (pre-curses) modes.
- */
- endwin();
-
- /* Unblock SIGTSTP. */
- (void) sigemptyset(&mask);
- (void) sigaddset(&mask, SIGTSTP);
-#ifdef SIGTTOU
- if (!sigttou_blocked) {
- /* Unblock this too if it wasn't blocked on entry */
- (void) sigaddset(&mask, SIGTTOU);
- }
-#endif
- (void) sigprocmask(SIG_UNBLOCK, &mask, NULL);
-
- /* Now we want to resend SIGSTP to this process and suspend it */
- act.sa_handler = SIG_DFL;
- sigemptyset(&act.sa_mask);
- act.sa_flags = 0;
-#ifdef SA_RESTART
- act.sa_flags |= SA_RESTART;
-#endif /* SA_RESTART */
- sigaction(SIGTSTP, &act, &oact);
- kill(getpid(), SIGTSTP);
-
- /* Process gets suspended...time passes...process resumes */
-
- T(("SIGCONT received"));
- sigaction(SIGTSTP, &oact, NULL);
- flushinp();
-
- /*
- * If the user modified the tty state while suspended, he wants
- * those changes to stick. So save the new "default" terminal state.
- */
- def_shell_mode();
-
- /*
- * This relies on the fact that doupdate() will restore the
- * program-mode tty state, and issue enter_ca_mode if need be.
- */
- doupdate();
-
- /* Reset the signals. */
- (void) sigprocmask(SIG_SETMASK, &omask, NULL);
-}
-#endif /* USE_SIGTSTP */
-
-static void
-cleanup(int sig)
-{
- static int nested;
-
- /*
- * Actually, doing any sort of I/O from within an signal handler is
- * "unsafe". But we'll _try_ to clean up the screen and terminal
- * settings on the way out.
- */
- if (!nested++
- && (sig == SIGINT
- || sig == SIGQUIT)) {
-#if HAVE_SIGACTION || HAVE_SIGVEC
- sigaction_t act;
- sigemptyset(&act.sa_mask);
- act.sa_flags = 0;
- act.sa_handler = SIG_IGN;
- if (sigaction(sig, &act, (sigaction_t *) 0) == 0)
-#else
- if (signal(sig, SIG_IGN) != SIG_ERR)
-#endif
- {
- SCREEN *scan = _nc_screen_chain;
- while (scan) {
- if (SP != 0
- && SP->_ofp != 0
- && isatty(fileno(SP->_ofp))) {
- SP->_cleanup = TRUE;
- SP->_outch = _nc_outch;
- }
- set_term(scan);
- endwin();
- if (SP)
- SP->_endwin = FALSE; /* in case we have an atexit! */
- scan = scan->_next_screen;
- }
- }
- }
- exit(EXIT_FAILURE);
-}
-
-#if USE_SIGWINCH
-static void
-sigwinch(int sig GCC_UNUSED)
-{
- SCREEN *scan = _nc_screen_chain;
- while (scan) {
- scan->_sig_winch = TRUE;
- scan = scan->_next_screen;
- }
-}
-#endif /* USE_SIGWINCH */
-
-/*
- * If the given signal is still in its default state, set it to the given
- * handler.
- */
-#if HAVE_SIGACTION || HAVE_SIGVEC
-static int
-CatchIfDefault(int sig, sigaction_t * act)
-{
- sigaction_t old_act;
-
- if (sigaction(sig, (sigaction_t *) 0, &old_act) == 0
- && (old_act.sa_handler == SIG_DFL
-#if USE_SIGWINCH
- || (sig == SIGWINCH && old_act.sa_handler == SIG_IGN)
-#endif
- )) {
- (void) sigaction(sig, act, (sigaction_t *) 0);
- return TRUE;
- }
- return FALSE;
-}
-#else
-static int
-CatchIfDefault(int sig, RETSIGTYPE(*handler) (int))
-{
- void (*ohandler) (int);
-
- ohandler = signal(sig, SIG_IGN);
- if (ohandler == SIG_DFL
-#if USE_SIGWINCH
- || (sig == SIGWINCH && ohandler == SIG_IGN)
-#endif
- ) {
- signal(sig, handler);
- return TRUE;
- } else {
- signal(sig, ohandler);
- return FALSE;
- }
-}
-#endif
-
-/*
- * This is invoked once at the beginning (e.g., from 'initscr()'), to
- * initialize the signal catchers, and thereafter when spawning a shell (and
- * returning) to disable/enable the SIGTSTP (i.e., ^Z) catcher.
- *
- * If the application has already set one of the signals, we'll not modify it
- * (during initialization).
- *
- * 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
-_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
-
-#ifdef SA_RESTART
- act.sa_flags |= 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;
- }
- }
-#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) */
-
- CatchIfDefault(SIGINT, cleanup);
- CatchIfDefault(SIGTERM, cleanup);
-#if USE_SIGWINCH
- CatchIfDefault(SIGWINCH, sigwinch);
-#endif
-#endif /* !(HAVE_SIGACTION || HAVE_SIGVEC) */
- }
-#endif /* !USE_SIGTSTP */
-}
diff --git a/ncurses-5.2/ncurses/tty/lib_twait.c b/ncurses-5.2/ncurses/tty/lib_twait.c
deleted file mode 100644
index 6c5f6a6..0000000
--- a/ncurses-5.2/ncurses/tty/lib_twait.c
+++ /dev/null
@@ -1,265 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_twait.c
-**
-** The routine _nc_timed_wait().
-**
-** (This file was originally written by Eric Raymond; however except for
-** comments, none of the original code remains - T.Dickey).
-*/
-
-#ifdef __BEOS__
-#include <OS.h>
-#endif
-
-#include <curses.priv.h>
-
-#if 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
-
-MODULE_ID("$Id$")
-
-static long
-_nc_gettime(bool first)
-{
- long res;
-
-#if HAVE_GETTIMEOFDAY
-# define PRECISE_GETTIME 1
- static struct timeval t0;
- struct timeval t1;
- gettimeofday(&t1, (struct timezone *) 0);
- if (first) {
- t0 = t1;
- }
- res = (t1.tv_sec - t0.tv_sec) * 1000
- + (t1.tv_usec - t0.tv_usec) / 1000;
-#else
-# define PRECISE_GETTIME 0
- static time_t t0;
- time_t t1 = time((time_t *) 0);
- if (first) {
- t0 = t1;
- }
- res = (t1 - t0) * 1000;
-#endif
- T(("%s time: %ld msec", first ? "get" : "elapsed", res));
- return res;
-}
-
-/*
- * Wait a specified number of milliseconds, returning nonzero if the timer
- * didn't expire before there is activity on the specified file descriptors.
- * The file-descriptors are specified by the mode:
- * 0 - none (absolute time)
- * 1 - ncurses' normal input-descriptor
- * 2 - mouse descriptor, if any
- * 3 - either input or mouse.
- * 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)
-{
- int fd;
- int count;
-
- int result;
-
-#if USE_FUNC_POLL
- struct pollfd fds[2];
-#elif defined(__BEOS__)
-#elif HAVE_SELECT
- static fd_set set;
-#endif
-
- long starttime, returntime;
-
- T(("start twait: %d milliseconds, mode: %d", milliseconds, mode));
-
-#if PRECISE_GETTIME
- retry:
-#endif
- starttime = _nc_gettime(TRUE);
-
- count = 0;
-
-#if USE_FUNC_POLL
- memset(fds, 0, sizeof(fds));
- if (mode & 1) {
- fds[count].fd = SP->_ifd;
- fds[count].events = POLLIN;
- count++;
- }
- if ((mode & 2)
- && (fd = SP->_mouse_fd) >= 0) {
- fds[count].fd = fd;
- fds[count].events = POLLIN;
- count++;
- }
- result = poll(fds, count, milliseconds);
-
-#elif defined(__BEOS__)
- /*
- * BeOS's select() is declared in socket.h, so the configure script does
- * not see it. That's just as well, since that function works only for
- * sockets. This (using snooze and ioctl) was distilled from Be's patch
- * for ncurses which uses a separate thread to simulate select().
- *
- * FIXME: the return values from the ioctl aren't very clear if we get
- * interrupted.
- */
- result = 0;
- if (mode & 1) {
- bigtime_t d;
- bigtime_t useconds = milliseconds * 1000;
- int n, howmany;
-
- if (useconds == 0) /* we're here to go _through_ the loop */
- useconds = 1;
-
- for (d = 0; d < useconds; d += 5000) {
- n = 0;
- howmany = ioctl(0, 'ichr', &n);
- if (howmany >= 0 && n > 0) {
- result = 1;
- break;
- }
- if (useconds > 1)
- snooze(5000);
- milliseconds -= 5;
- }
- } else if (milliseconds > 0) {
- snooze(milliseconds * 1000);
- milliseconds = 0;
- }
-#elif HAVE_SELECT
- /*
- * select() modifies the fd_set arguments; do this in the
- * loop.
- */
- FD_ZERO(&set);
-
- if (mode & 1) {
- FD_SET(SP->_ifd, &set);
- count = SP->_ifd + 1;
- }
- if ((mode & 2)
- && (fd = SP->_mouse_fd) >= 0) {
- FD_SET(fd, &set);
- count = max(fd, count) + 1;
- }
-
- if (milliseconds >= 0) {
- struct timeval ntimeout;
- ntimeout.tv_sec = milliseconds / 1000;
- ntimeout.tv_usec = (milliseconds % 1000) * 1000;
- result = select(count, &set, NULL, NULL, &ntimeout);
- } else {
- result = select(count, &set, NULL, NULL, NULL);
- }
-#endif
-
- returntime = _nc_gettime(FALSE);
-
- if (milliseconds >= 0)
- milliseconds -= (returntime - starttime);
-
-#if PRECISE_GETTIME
- /*
- * If the timeout hasn't expired, and we've gotten no data,
- * this is probably a system where 'select()' needs to be left
- * alone so that it can complete. Make this process sleep,
- * then come back for more.
- */
- if (result == 0 && milliseconds > 100) {
- napms(100);
- milliseconds -= 100;
- goto retry;
- }
-#endif
-
- /* return approximate time left in milliseconds */
- if (timeleft)
- *timeleft = milliseconds;
-
- T(("end twait: returned %d (%d), remaining time %d msec",
- result, errno, milliseconds));
-
- /*
- * Both 'poll()' and 'select()' return the number of file descriptors
- * that are active. Translate this back to the mask that denotes which
- * file-descriptors, so that we don't need all of this system-specific
- * code everywhere.
- */
- if (result != 0) {
- if (result > 0) {
- result = 0;
-#if USE_FUNC_POLL
- for (count = 0; count < 2; count++) {
- if ((mode & (1 << count))
- && (fds[count].revents & POLLIN)) {
- result |= (1 << count);
- }
- }
-#elif defined(__BEOS__)
- result = 1; /* redundant, but simple */
-#elif HAVE_SELECT
- if ((mode & 2)
- && (fd = SP->_mouse_fd) >= 0
- && FD_ISSET(fd, &set))
- result |= 2;
- if ((mode & 1)
- && FD_ISSET(SP->_ifd, &set))
- result |= 1;
-#endif
- } else
- result = 0;
- }
-
- return (result);
-}
diff --git a/ncurses-5.2/ncurses/tty/lib_vidattr.c b/ncurses-5.2/ncurses/tty/lib_vidattr.c
deleted file mode 100644
index 350a5dd..0000000
--- a/ncurses-5.2/ncurses/tty/lib_vidattr.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * vidputs(newmode, outc)
- *
- * newmode is taken to be the logical 'or' of the symbols in curses.h
- * representing graphic renditions. The terminal is set to be in all of
- * the given modes, if possible.
- *
- * if the new attribute is normal
- * if exit-alt-char-set exists
- * emit it
- * emit exit-attribute-mode
- * else if set-attributes exists
- * use it to set exactly what you want
- * else
- * if exit-attribute-mode exists
- * turn off everything
- * else
- * turn off those which can be turned off and aren't in
- * newmode.
- * turn on each mode which should be on and isn't, one by one
- *
- * NOTE that this algorithm won't achieve the desired mix of attributes
- * in some cases, but those are probably just those cases in which it is
- * actually impossible, anyway, so...
- *
- * NOTE that we cannot assume that there's no interaction between color
- * and other attribute resets. So each time we reset color (or other
- * attributes) we'll have to be prepared to restore the other.
- */
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
-
-#define TurnOn(mask,mode) \
- if ((turn_on & mask) && mode) { doPut(mode); }
-
-#define TurnOff(mask,mode) \
- if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; }
-
- /* if there is no current screen, assume we *can* do color */
-#define SetColorsIf(why,old_attr) \
- if (can_color && (why)) { \
- int old_pair = PAIR_NUMBER(old_attr); \
- TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, pair)); \
- if ((pair != old_pair) \
- || (fix_pair0 && (pair == 0)) \
- || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \
- _nc_do_color(old_pair, pair, reverse, outc); \
- } \
- }
-
-int
-vidputs(attr_t newmode, int (*outc) (int))
-{
- 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);
-#else
-#define fix_pair0 FALSE
-#endif
-
- T((T_CALLED("vidputs(%s)"), _traceattr(newmode)));
-
- /* this allows us to go on whether or not newterm() has been called */
- if (SP)
- previous_attr = SP->_current_attr;
-
- TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(previous_attr)));
-
-#if !USE_XMC_SUPPORT
- if ((SP != 0)
- && (magic_cookie_glitch > 0))
- newmode &= ~(SP->_xmc_suppress);
-#endif
-
- /*
- * If we have a terminal that cannot combine color with video
- * attributes, use the colors in preference.
- */
- if (((newmode & A_COLOR) != 0
- || fix_pair0)
- && (no_color_video > 0)) {
- /*
- * If we had chosen the A_xxx definitions to correspond to the
- * no_color_video mask, we could simply shift it up and mask off the
- * attributes. But we did not (actually copied Solaris' definitions).
- * However, this is still simpler/faster than a lookup table.
- *
- * The 63 corresponds to A_STANDOUT, A_UNDERLINE, A_REVERSE, A_BLINK,
- * A_DIM, A_BOLD which are 1:1 with no_color_video. The bits that
- * correspond to A_INVIS, A_PROTECT (192) must be shifted up 1 and
- * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS
- * macro so this will work properly for the wide-character layout.
- */
- attr_t mask = NCURSES_BITS((no_color_video & 63)
- | ((no_color_video & 192) << 1)
- | ((no_color_video & 256) >> 2), 8);
-
- if (mask & A_REVERSE && newmode & A_REVERSE) {
- reverse = TRUE;
- mask &= ~A_REVERSE;
- }
- newmode &= ~mask;
- }
-
- if (newmode == previous_attr)
- returnCode(OK);
-
- pair = PAIR_NUMBER(newmode);
-
- if (reverse) {
- newmode &= ~A_REVERSE;
- }
-
- turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR;
- turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR;
-
- SetColorsIf(((pair == 0) && !fix_pair0), previous_attr);
-
- if (newmode == A_NORMAL) {
- if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) {
- doPut(exit_alt_charset_mode);
- previous_attr &= ~A_ALTCHARSET;
- }
- if (previous_attr) {
- if (exit_attribute_mode) {
- doPut(exit_attribute_mode);
- } else {
- if (!SP || SP->_use_rmul) {
- TurnOff(A_UNDERLINE, exit_underline_mode);
- }
- if (!SP || SP->_use_rmso) {
- TurnOff(A_STANDOUT, exit_standout_mode);
- }
- }
- previous_attr &= ~A_COLOR;
- }
-
- SetColorsIf((pair != 0) || fix_pair0, previous_attr);
- } else if (set_attributes && !used_ncv) {
- if (turn_on || turn_off) {
- TPUTS_TRACE("set_attributes");
- tputs(tparm(set_attributes,
- (newmode & A_STANDOUT) != 0,
- (newmode & A_UNDERLINE) != 0,
- (newmode & A_REVERSE) != 0,
- (newmode & A_BLINK) != 0,
- (newmode & A_DIM) != 0,
- (newmode & A_BOLD) != 0,
- (newmode & A_INVIS) != 0,
- (newmode & A_PROTECT) != 0,
- (newmode & A_ALTCHARSET) != 0), 1, outc);
- previous_attr &= ~A_COLOR;
- }
- SetColorsIf((pair != 0) || fix_pair0, previous_attr);
- } else {
-
- TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off)));
-
- TurnOff(A_ALTCHARSET, exit_alt_charset_mode);
-
- if (!SP || SP->_use_rmul) {
- TurnOff(A_UNDERLINE, exit_underline_mode);
- }
-
- if (!SP || SP->_use_rmso) {
- TurnOff(A_STANDOUT, exit_standout_mode);
- }
-
- if (turn_off && exit_attribute_mode) {
- doPut(exit_attribute_mode);
- turn_on |= (newmode & (chtype) (~A_COLOR));
- previous_attr &= ~A_COLOR;
- }
- SetColorsIf((pair != 0) || fix_pair0, previous_attr);
-
- TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on)));
- /* *INDENT-OFF* */
- TurnOn(A_ALTCHARSET, enter_alt_charset_mode);
- TurnOn(A_BLINK, enter_blink_mode);
- TurnOn(A_BOLD, enter_bold_mode);
- TurnOn(A_DIM, enter_dim_mode);
- TurnOn(A_REVERSE, enter_reverse_mode);
- TurnOn(A_STANDOUT, enter_standout_mode);
- TurnOn(A_PROTECT, enter_protected_mode);
- TurnOn(A_INVIS, enter_secure_mode);
- TurnOn(A_UNDERLINE, enter_underline_mode);
- TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode);
- TurnOn(A_LEFT, enter_left_hl_mode);
- TurnOn(A_LOW, enter_low_hl_mode);
- TurnOn(A_RIGHT, enter_right_hl_mode);
- TurnOn(A_TOP, enter_top_hl_mode);
- TurnOn(A_VERTICAL, enter_vertical_hl_mode);
- /* *INDENT-ON* */
-
- }
-
- if (reverse)
- newmode |= A_REVERSE;
-
- if (SP)
- SP->_current_attr = newmode;
- else
- previous_attr = newmode;
-
- returnCode(OK);
-}
-
-int
-vidattr(attr_t newmode)
-{
- T((T_CALLED("vidattr(%s)"), _traceattr(newmode)));
-
- returnCode(vidputs(newmode, _nc_outch));
-}
-
-chtype
-termattrs(void)
-{
- chtype attrs = A_NORMAL;
-
- T((T_CALLED("termattrs()")));
- if (enter_alt_charset_mode)
- attrs |= A_ALTCHARSET;
-
- if (enter_blink_mode)
- attrs |= A_BLINK;
-
- if (enter_bold_mode)
- attrs |= A_BOLD;
-
- if (enter_dim_mode)
- attrs |= A_DIM;
-
- if (enter_reverse_mode)
- attrs |= A_REVERSE;
-
- if (enter_standout_mode)
- attrs |= A_STANDOUT;
-
- if (enter_protected_mode)
- attrs |= A_PROTECT;
-
- if (enter_secure_mode)
- attrs |= A_INVIS;
-
- if (enter_underline_mode)
- attrs |= A_UNDERLINE;
-
- if (SP->_coloron)
- attrs |= A_COLOR;
-
- returnChar(attrs);
-}
diff --git a/ncurses-5.2/ncurses/tty/tty_display.h b/ncurses-5.2/ncurses/tty/tty_display.h
deleted file mode 100644
index e7b447d..0000000
--- a/ncurses-5.2/ncurses/tty/tty_display.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
- * 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. *
- ************************************************************************** */
-
-#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);
-
-struct tty_display_data {
- int _fifohold; /* set if breakout marked */
- unsigned long _current_attr; /* terminal attribute current set */
- int _cursrow; /* physical cursor row (-1=unknown) */
- int _curscol; /* physical cursor column */
-
- /* cursor movement costs; units are 10ths of milliseconds */
- int _char_padding; /* cost of character put */
- int _cr_cost; /* cost of (carriage_return) */
- int _cup_cost; /* cost of (cursor_address) */
- int _home_cost; /* cost of (cursor_home) */
- int _ll_cost; /* cost of (cursor_to_ll) */
-#if USE_HARD_TABS
- int _ht_cost; /* cost of (tab) */
- int _cbt_cost; /* cost of (backtab) */
-#endif /* USE_HARD_TABS */
- int _cub1_cost; /* cost of (cursor_left) */
- int _cuf1_cost; /* cost of (cursor_right) */
- int _cud1_cost; /* cost of (cursor_down) */
- int _cuu1_cost; /* cost of (cursor_up) */
- int _cub_cost; /* cost of (parm_cursor_left) */
- int _cuf_cost; /* cost of (parm_cursor_right) */
- int _cud_cost; /* cost of (parm_cursor_down) */
- int _cuu_cost; /* cost of (parm_cursor_up) */
- int _hpa_cost; /* cost of (column_address) */
- int _vpa_cost; /* cost of (row_address) */
- /* used in lib_doupdate.c, must be chars */
- int _ed_cost; /* cost of (clr_eos) */
- int _el_cost; /* cost of (clr_eol) */
- int _el1_cost; /* cost of (clr_bol) */
- int _dch1_cost; /* cost of (delete_character) */
- int _ich1_cost; /* cost of (insert_character) */
- int _dch_cost; /* cost of (parm_dch) */
- int _ich_cost; /* cost of (parm_ich) */
- int _ech_cost; /* cost of (erase_chars) */
- int _rep_cost; /* cost of (repeat_char) */
- int _hpa_ch_cost; /* cost of (column_address) */
- int _cup_ch_cost; /* cost of (cursor_address) */
- int _smir_cost; /* cost of (enter_insert_mode) */
- int _rmir_cost; /* cost of (exit_insert_mode) */
- int _ip_cost; /* cost of (insert_padding) */
- /* used in lib_mvcur.c */
- char * _address_cursor;
- int _carriage_return_length;
- int _cursor_home_length;
- int _cursor_to_ll_length;
-
- chtype _xmc_suppress; /* attributes to suppress if xmc */
- chtype _xmc_triggers; /* attributes to process if xmc */
-
- bool _sig_winch;
-};
-
-
-#define DelCharCost(count) \
- ((parm_dch != 0) \
- ? D->_dch_cost \
- : ((delete_character != 0) \
- ? (D->_dch1_cost * count) \
- : INFINITY))
-
-#define InsCharCost(count) \
- ((parm_ich != 0) \
- ? D->_ich_cost \
- : ((enter_insert_mode && exit_insert_mode) \
- ? D->_smir_cost + D->_rmir_cost + (D->_ip_cost * count) \
- : ((insert_character != 0) \
- ? (D->_ich1_cost * count) \
- : INFINITY)))
-
-#if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) { \
- attr_t chg = D->_current_attr; \
- vidattr(AttrOf(c)); \
- if (magic_cookie_glitch > 0 \
- && XMC_CHANGES((chg ^ D->_current_attr))) { \
- T(("%s @%d before glitch %d,%d", \
- __FILE__, __LINE__, \
- D->_cursrow, \
- D->_curscol)); \
- _nc_do_xmc_glitch(chg); \
- } \
- }
-#else
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) \
- vidattr(AttrOf(c));
-#endif
-
-#define XMC_CHANGES(c) ((c) & D->_xmc_suppress)
-
-#endif /* TTY_DISPLAY_H */
diff --git a/ncurses-5.2/ncurses/tty/tty_input.h b/ncurses-5.2/ncurses/tty/tty_input.h
deleted file mode 100644
index 288015b..0000000
--- a/ncurses-5.2/ncurses/tty/tty_input.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * 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$
- */
-
-#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);
-
-struct tty_input_data {
- int _ifd; /* input file ptr for screen */
- int _keypad_xmit; /* current terminal state */
- int _meta_on; /* current terminal state */
-
- /*
- * These are the data that support the mouse interface.
- */
- bool (*_mouse_event) (SCREEN *);
- bool (*_mouse_inline)(SCREEN *);
- bool (*_mouse_parse) (int);
- void (*_mouse_resume)(SCREEN *);
- void (*_mouse_wrap) (SCREEN *);
- int _mouse_fd; /* file-descriptor, if any */
- int mousetype;
-};
-
-#endif /* TTY_INPUT_H */
diff --git a/ncurses-5.2/ncurses/tty/tty_update.c b/ncurses-5.2/ncurses/tty/tty_update.c
deleted file mode 100644
index 0c2051e..0000000
--- a/ncurses-5.2/ncurses/tty/tty_update.c
+++ /dev/null
@@ -1,1801 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*-----------------------------------------------------------------
- *
- * lib_doupdate.c
- *
- * The routine doupdate() and its dependents. Also _nc_outstr(),
- * so all physical output is concentrated here (except _nc_outch()
- * in lib_tputs.c).
- *
- *-----------------------------------------------------------------*/
-
-#ifdef __BEOS__
-#include <OS.h>
-#endif
-
-#include <curses.priv.h>
-
-#if defined(TRACE) && HAVE_SYS_TIMES_H && HAVE_TIMES
-#define USE_TRACE_TIMES 1
-#else
-#define USE_TRACE_TIMES 0
-#endif
-
-#if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
-#include <sys/time.h>
-#endif
-
-#if USE_TRACE_TIMES
-#include <sys/times.h>
-#endif
-
-#if USE_FUNC_POLL
-#elif HAVE_SELECT
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#endif
-
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-/*
- * This define controls the line-breakout optimization. Every once in a
- * while during screen refresh, we want to check for input and abort the
- * update if there's some waiting. CHECK_INTERVAL controls the number of
- * changed lines to be emitted between input checks.
- *
- * Note: Input-check-and-abort is no longer done if the screen is being
- * updated from scratch. This is a feature, not a bug.
- */
-#define CHECK_INTERVAL 5
-
-#define FILL_BCE() (SP->_coloron && !SP->_default_color && !back_color_erase)
-
-/*
- * Enable checking to see if doupdate and friends are tracking the true
- * cursor position correctly. NOTE: this is a debugging hack which will
- * work ONLY on ANSI-compatible terminals!
- */
-/* #define POSITION_DEBUG */
-
-static inline chtype ClrBlank(WINDOW *win);
-static int ClrBottom(int total);
-static void ClearScreen(chtype blank);
-static void ClrUpdate(void);
-static void DelChar(int count);
-static void InsStr(chtype * line, int count);
-static void TransformLine(int const lineno);
-
-#ifdef POSITION_DEBUG
-/****************************************************************************
- *
- * Debugging code. Only works on ANSI-standard terminals.
- *
- ****************************************************************************/
-
-static void
-position_check(int expected_y, int expected_x, char *legend)
-/* check to see if the real cursor position matches the virtual */
-{
- char buf[20];
- char *s;
- int y, x;
-
- if (!_nc_tracing || (expected_y < 0 && expected_x < 0))
- return;
-
- _nc_flush();
- memset(buf, '\0', sizeof(buf));
- putp("\033[6n"); /* only works on ANSI-compatibles */
- _nc_flush();
- *(s = buf) = 0;
- do {
- int ask = sizeof(buf) - 1 - (s - buf);
- int got = read(0, s, ask);
- if (got == 0)
- break;
- s += got;
- } while (strchr(buf, 'R') == 0);
- _tracef("probe returned %s", _nc_visbuf(buf));
-
- /* try to interpret as a position report */
- if (sscanf(buf, "\033[%d;%dR", &y, &x) != 2) {
- _tracef("position probe failed in %s", legend);
- } else {
- if (expected_x < 0)
- expected_x = x - 1;
- if (expected_y < 0)
- expected_y = y - 1;
- if (y - 1 != expected_y || x - 1 != expected_x) {
- beep();
- tputs(tparm("\033[%d;%dH", expected_y + 1, expected_x + 1), 1, _nc_outch);
- _tracef("position seen (%d, %d) doesn't match expected one (%d, %d) in %s",
- y - 1, x - 1, expected_y, expected_x, legend);
- } else {
- _tracef("position matches OK in %s", legend);
- }
- }
-}
-#else
-#define position_check(expected_y, expected_x, legend) /* nothing */
-#endif /* POSITION_DEBUG */
-
-/****************************************************************************
- *
- * Optimized update code
- *
- ****************************************************************************/
-
-static inline void
-GoTo(int const row, int const col)
-{
- chtype oldattr = SP->_current_attr;
-
- TR(TRACE_MOVE, ("GoTo(%d, %d) from (%d, %d)",
- row, col, SP->_cursrow, SP->_curscol));
-
- position_check(SP->_cursrow, SP->_curscol, "GoTo");
-
- /*
- * Force restore even if msgr is on when we're in an alternate
- * character set -- these have a strong tendency to screw up the
- * CR & LF used for local character motions!
- */
- if ((oldattr & A_ALTCHARSET)
- || (oldattr && !move_standout_mode)) {
- TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move",
- oldattr, _traceattr(oldattr)));
- vidattr(A_NORMAL);
- }
-
- mvcur(SP->_cursrow, SP->_curscol, row, col);
- SP->_cursrow = row;
- SP->_curscol = col;
- position_check(SP->_cursrow, SP->_curscol, "GoTo2");
-}
-
-static inline void
-PutAttrChar(chtype ch)
-{
- int data;
-
- if (tilde_glitch && (TextOf(ch) == '~'))
- ch = ('`' | AttrOf(ch));
-
- TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
- _tracechtype(ch),
- SP->_cursrow, SP->_curscol));
- UpdateAttrs(ch);
- data = TextOf(ch);
- if (SP->_outch != 0) {
- SP->_outch(data);
- } else {
- putc(data, SP->_ofp); /* macro's fastest... */
-#ifdef TRACE
- _nc_outchars++;
-#endif /* TRACE */
- }
- SP->_curscol++;
- if (char_padding) {
- TPUTS_TRACE("char_padding");
- putp(char_padding);
- }
-}
-
-static bool
-check_pending(void)
-/* check for pending input */
-{
- bool have_pending = FALSE;
-
- /*
- * Only carry out this check when the flag is zero, otherwise we'll
- * have the refreshing slow down drastically (or stop) if there's an
- * unread character available.
- */
- if (SP->_fifohold != 0)
- return FALSE;
-
- if (SP->_checkfd >= 0) {
-#if USE_FUNC_POLL
- struct pollfd fds[1];
- fds[0].fd = SP->_checkfd;
- fds[0].events = POLLIN;
- if (poll(fds, 1, 0) > 0) {
- have_pending = TRUE;
- }
-#elif defined(__BEOS__)
- /*
- * BeOS's select() is declared in socket.h, so the configure script does
- * not see it. That's just as well, since that function works only for
- * sockets. This (using snooze and ioctl) was distilled from Be's patch
- * for ncurses which uses a separate thread to simulate select().
- *
- * FIXME: the return values from the ioctl aren't very clear if we get
- * interrupted.
- */
- int n = 0;
- int howmany = ioctl(0, 'ichr', &n);
- if (howmany >= 0 && n > 0) {
- have_pending = TRUE;
- }
-#elif HAVE_SELECT
- fd_set fdset;
- struct timeval ktimeout;
-
- ktimeout.tv_sec =
- ktimeout.tv_usec = 0;
-
- FD_ZERO(&fdset);
- FD_SET(SP->_checkfd, &fdset);
- if (select(SP->_checkfd + 1, &fdset, NULL, NULL, &ktimeout) != 0) {
- have_pending = TRUE;
- }
-#endif
- }
- if (have_pending) {
- SP->_fifohold = 5;
- _nc_flush();
- }
- 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
-PutCharLR(chtype const ch)
-{
- if (!auto_right_margin) {
- /* we can put the char directly */
- PutAttrChar(ch);
- } else if (enter_am_mode && exit_am_mode) {
- /* we can suppress automargin */
- TPUTS_TRACE("exit_am_mode");
- putp(exit_am_mode);
-
- PutAttrChar(ch);
- SP->_curscol--;
- position_check(SP->_cursrow, SP->_curscol, "exit_am_mode");
-
- TPUTS_TRACE("enter_am_mode");
- putp(enter_am_mode);
- } else if ((enter_insert_mode && exit_insert_mode)
- || insert_character || parm_ich) {
- GoTo(screen_lines - 1, screen_columns - 2);
- callPutChar(ch);
- GoTo(screen_lines - 1, screen_columns - 2);
- InsStr(newscr->_line[screen_lines - 1].text + screen_columns - 2, 1);
- }
-}
-
-static void
-wrap_cursor(void)
-{
- if (eat_newline_glitch) {
- /*
- * xenl can manifest two different ways. The vt100
- * way is that, when you'd expect the cursor to wrap,
- * it stays hung at the right margin (on top of the
- * character just emitted) and doesn't wrap until the
- * *next* graphic char is emitted. The c100 way is
- * to ignore LF received just after an am wrap.
- *
- * An aggressive way to handle this would be to
- * emit CR/LF after the char and then assume the wrap
- * is done, you're on the first position of the next
- * line, and the terminal out of its weird state.
- * Here it's safe to just tell the code that the
- * cursor is in hyperspace and let the next mvcur()
- * call straighten things out.
- */
- SP->_curscol = -1;
- SP->_cursrow = -1;
- } else if (auto_right_margin) {
- SP->_curscol = 0;
- SP->_cursrow++;
- } else {
- SP->_curscol--;
- }
- position_check(SP->_cursrow, SP->_curscol, "wrap_cursor");
-}
-
-static inline void
-PutChar(chtype const ch)
-/* insert character, handling automargin stuff */
-{
- if (SP->_cursrow == screen_lines - 1 && SP->_curscol == screen_columns - 1)
- PutCharLR(ch);
- else
- PutAttrChar(ch);
-
- if (SP->_curscol >= screen_columns)
- wrap_cursor();
-
- position_check(SP->_cursrow, SP->_curscol, "PutChar");
-}
-
-/*
- * Check whether the given character can be output by clearing commands. This
- * includes test for being a space and not including any 'bad' attributes, such
- * as A_REVERSE. All attribute flags which don't affect appearance of a space
- * or can be output by clearing (A_COLOR in case of bce-terminal) are excluded.
- */
-static inline bool
-can_clear_with(chtype ch)
-{
- 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;
-#endif
- }
- return ((ch & ~(NONBLANK_ATTR | A_COLOR)) == BLANK);
-}
-
-/*
- * Issue a given span of characters from an array.
- * Must be functionally equivalent to:
- * for (i = 0; i < num; i++)
- * PutChar(ntext[i]);
- * but can leave the cursor positioned at the middle of the interval.
- *
- * Returns: 0 - cursor is at the end of interval
- * 1 - cursor is somewhere in the middle
- *
- * This code is optimized using ech and rep.
- */
-static int
-EmitRange(const chtype * ntext, int num)
-{
- int i;
-
- if (erase_chars || repeat_char) {
- while (num > 0) {
- int runcount;
- chtype ntext0;
-
- while (num > 1 && ntext[0] != ntext[1]) {
- PutChar(ntext[0]);
- ntext++;
- num--;
- }
- ntext0 = ntext[0];
- if (num == 1) {
- PutChar(ntext0);
- return 0;
- }
- runcount = 2;
-
- while (runcount < num && ntext[runcount] == ntext0)
- runcount++;
-
- /*
- * The cost expression in the middle isn't exactly right.
- * _cup_ch_cost is an upper bound on the cost for moving to the
- * end of the erased area, but not the cost itself (which we
- * can't compute without emitting the move). This may result
- * in erase_chars not getting used in some situations for
- * which it would be marginally advantageous.
- */
- if (erase_chars
- && runcount > SP->_ech_cost + SP->_cup_ch_cost
- && can_clear_with(ntext0)) {
- UpdateAttrs(ntext0);
- putp(tparm(erase_chars, runcount));
-
- /*
- * If this is the last part of the given interval,
- * don't bother moving cursor, since it can be the
- * last update on the line.
- */
- if (runcount < num) {
- GoTo(SP->_cursrow, SP->_curscol + runcount);
- } else {
- return 1; /* cursor stays in the middle */
- }
- } else if (repeat_char && runcount > SP->_rep_cost) {
- bool wrap_possible = (SP->_curscol + runcount >= screen_columns);
- int rep_count = runcount;
-
- if (wrap_possible)
- rep_count--;
-
- UpdateAttrs(ntext0);
- putp(tparm(repeat_char, TextOf(ntext0), rep_count));
- SP->_curscol += rep_count;
-
- if (wrap_possible)
- PutChar(ntext0);
- } else {
- for (i = 0; i < runcount; i++)
- PutChar(ntext[i]);
- }
- ntext += runcount;
- num -= runcount;
- }
- return 0;
- }
-
- for (i = 0; i < num; i++)
- PutChar(ntext[i]);
- return 0;
-}
-
-/*
- * Output the line in the given range [first .. last]
- *
- * If there's a run of identical characters that's long enough to justify
- * cursor movement, use that also.
- *
- * Returns: same as EmitRange
- */
-static int
-PutRange(
- const chtype * otext,
- const chtype * ntext,
- int row,
- int first, int last)
-{
- int j, run;
-
- TR(TRACE_CHARPUT, ("PutRange(%p, %p, %d, %d, %d)",
- otext, ntext, row, first, last));
-
- if (otext != ntext
- && (last - first + 1) > SP->_inline_cost) {
- for (j = first, run = 0; j <= last; j++) {
- if (otext[j] == ntext[j]) {
- run++;
- } else {
- if (run > SP->_inline_cost) {
- int before_run = (j - run);
- EmitRange(ntext + first, before_run - first);
- GoTo(row, first = j);
- }
- run = 0;
- }
- }
- }
- 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)
-
-int
-doupdate(void)
-{
- int i;
- int nonempty;
-#if USE_TRACE_TIMES
- struct tms before, after;
-#endif /* USE_TRACE_TIMES */
-
- T((T_CALLED("doupdate()")));
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_UPDATE) {
- if (curscr->_clear)
- _tracef("curscr is clear");
- else
- _tracedump("curscr", curscr);
- _tracedump("newscr", newscr);
- }
-#endif /* TRACE */
-
- _nc_signal_handler(FALSE);
-
- if (SP->_fifohold)
- SP->_fifohold--;
-
-#if USE_SIZECHANGE
- if (SP->_endwin || SP->_sig_winch) {
- /*
- * This is a transparent extension: XSI does not address it,
- * and applications need not know that ncurses can do it.
- *
- * Check if the terminal size has changed while curses was off
- * (this can happen in an xterm, for example), and resize the
- * ncurses data structures accordingly.
- */
- _nc_update_screensize();
- }
-#endif
-
- if (SP->_endwin) {
-
- T(("coming back from shell mode"));
- reset_prog_mode();
-
- _nc_mvcur_resume();
- _nc_screen_resume();
- SP->_mouse_resume(SP);
-
- SP->_endwin = FALSE;
- }
-#if USE_TRACE_TIMES
- /* zero the metering machinery */
- _nc_outchars = 0;
- (void) times(&before);
-#endif /* USE_TRACE_TIMES */
-
- /*
- * This is the support for magic-cookie terminals. The
- * theory: we scan the virtual screen looking for attribute
- * turnons. Where we find one, check to make sure it's
- * realizable by seeing if the required number of
- * un-attributed blanks are present before and after the
- * attributed range; try to shift the range boundaries over
- * blanks (not changing the screen display) so this becomes
- * true. If it is, shift the beginning attribute change
- * appropriately (the end one, if we've gotten this far, is
- * guaranteed room for its cookie). If not, nuke the added
- * attributes out of the span.
- */
-#if USE_XMC_SUPPORT
- if (magic_cookie_glitch > 0) {
- int j, k;
- attr_t rattr = A_NORMAL;
-
- 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;
-
- /* is an attribute turned on here? */
- if (turnon == 0) {
- rattr = AttrOf(newscr->_line[i].text[j]);
- continue;
- }
-
- TR(TRACE_ATTRS, ("At (%d, %d): from %s...", i, j, _traceattr(rattr)));
- TR(TRACE_ATTRS, ("...to %s", _traceattr(turnon)));
-
- /*
- * If the attribute change location is a blank with a
- * "safe" attribute, undo the attribute turnon. This may
- * 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;
- 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]) != ' '
- || !SAFE(AttrOf(newscr->_line[i].text[j - k])))
- failed = TRUE;
- }
- if (!failed) {
- bool end_onscreen = FALSE;
- int m, n = j;
-
- /* find end of span, if it's onscreen */
- for (m = i; m < screen_lines; m++) {
- for (; n < screen_columns; n++) {
- if (AttrOf(newscr->_line[m].text[n]) == rattr) {
- end_onscreen = TRUE;
- TR(TRACE_ATTRS,
- ("Range attributed with %s ends at (%d, %d)",
- _traceattr(turnon), m, n));
- goto foundit;
- }
- }
- n = 0;
- }
- TR(TRACE_ATTRS,
- ("Range attributed with %s ends offscreen",
- _traceattr(turnon)));
- foundit:;
-
- if (end_onscreen) {
- chtype *lastline = newscr->_line[m].text;
-
- /*
- * If there are safely-attributed blanks at the
- * end of the range, shorten the range. This will
- * help ensure that there is enough room at end
- * of span.
- */
- while (n >= 0
- && TextOf(lastline[n]) == ' '
- && SAFE(AttrOf(lastline[n])))
- 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
- || TextOf(lastline[n + k]) != ' '
- || !SAFE(AttrOf(lastline[n + k])))
- failed = TRUE;
- }
- }
-
- if (failed) {
- int p, q = j;
-
- TR(TRACE_ATTRS,
- ("Clearing %s beginning at (%d, %d)",
- _traceattr(turnon), i, j));
-
- /* turn off new attributes over span */
- for (p = i; p < screen_lines; p++) {
- for (; q < screen_columns; q++) {
- if (AttrOf(newscr->_line[p].text[q]) == rattr)
- goto foundend;
- newscr->_line[p].text[q] &= ~turnon;
- }
- q = 0;
- }
- foundend:;
- } else {
- TR(TRACE_ATTRS,
- ("Cookie space for %s found before (%d, %d)",
- _traceattr(turnon), i, j));
-
- /*
- * back up the start of range so there's room
- * for cookies before the first nonblank character
- */
- for (k = 1; k <= magic_cookie_glitch; k++)
- newscr->_line[i].text[j - k] |= turnon;
- }
-
- rattr = AttrOf(newscr->_line[i].text[j]);
- }
- }
-
-#ifdef TRACE
- /* show altered highlights after magic-cookie check */
- if (_nc_tracing & TRACE_UPDATE) {
- _tracef("After magic-cookie check...");
- _tracedump("newscr", newscr);
- }
-#endif /* TRACE */
- }
-#endif /* USE_XMC_SUPPORT */
-
- nonempty = 0;
- if (curscr->_clear || newscr->_clear) { /* force refresh ? */
- TR(TRACE_UPDATE, ("clearing and updating from scratch"));
- ClrUpdate();
- curscr->_clear = FALSE; /* reset flag */
- newscr->_clear = FALSE; /* reset flag */
- } else {
- int changedlines = CHECK_INTERVAL;
-
- if (check_pending())
- goto cleanup;
-
- nonempty = min(screen_lines, newscr->_maxy + 1);
-
- if (SP->_scrolling) {
- _nc_scroll_optimize();
- }
-
- nonempty = ClrBottom(nonempty);
-
- TR(TRACE_UPDATE, ("Transforming lines, nonempty %d", nonempty));
- for (i = 0; i < nonempty; i++) {
- /*
- * Here is our line-breakout optimization.
- */
- if (changedlines == CHECK_INTERVAL) {
- if (check_pending())
- goto cleanup;
- changedlines = 0;
- }
-
- /*
- * newscr->line[i].firstchar is normally set
- * by wnoutrefresh. curscr->line[i].firstchar
- * is normally set by _nc_scroll_window in the
- * vertical-movement optimization code,
- */
- if (newscr->_line[i].firstchar != _NOCHANGE
- || curscr->_line[i].firstchar != _NOCHANGE) {
- TransformLine(i);
- changedlines++;
- }
-
- /* mark line changed successfully */
- if (i <= newscr->_maxy) {
- MARK_NOCHANGE(newscr, i)
- }
- if (i <= curscr->_maxy) {
- MARK_NOCHANGE(curscr, i)
- }
- }
- }
-
- /* put everything back in sync */
- for (i = nonempty; i <= newscr->_maxy; i++) {
- MARK_NOCHANGE(newscr, i)
- }
- for (i = nonempty; i <= curscr->_maxy; i++) {
- MARK_NOCHANGE(curscr, i)
- }
-
- if (!newscr->_leaveok) {
- curscr->_curx = newscr->_curx;
- curscr->_cury = newscr->_cury;
-
- GoTo(curscr->_cury, curscr->_curx);
- }
-
- cleanup:
- /*
- * Keep the physical screen in normal mode in case we get other
- * processes writing to the screen.
- */
- UpdateAttrs(A_NORMAL);
-
- _nc_flush();
- curscr->_attrs = newscr->_attrs;
-
-#if USE_TRACE_TIMES
- (void) times(&after);
- 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));
-#endif /* USE_TRACE_TIMES */
-
- _nc_signal_handler(TRUE);
-
- returnCode(OK);
-}
-
-/*
- * ClrBlank(win)
- *
- * Returns the attributed character that corresponds to the "cleared"
- * screen. If the terminal has the back-color-erase feature, this will be
- * colored according to the wbkgd() call.
- *
- * We treat 'curscr' specially because it isn't supposed to be set directly
- * 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)
-
-static inline chtype
-ClrBlank(WINDOW *win)
-{
- chtype blank = BLANK;
- if (back_color_erase)
- blank |= (BCE_BKGD(win) & BCE_ATTRS);
- return blank;
-}
-
-/*
-** ClrUpdate()
-**
-** Update by clearing and redrawing the entire screen.
-**
-*/
-
-static void
-ClrUpdate(void)
-{
- int i;
- chtype blank = ClrBlank(stdscr);
- int nonempty = min(screen_lines, newscr->_maxy + 1);
-
- TR(TRACE_UPDATE, ("ClrUpdate() called"));
-
- ClearScreen(blank);
-
- TR(TRACE_UPDATE, ("updating screen from scratch"));
-
- nonempty = ClrBottom(nonempty);
-
- for (i = 0; i < nonempty; i++)
- TransformLine(i);
-}
-
-/*
-** ClrToEOL(blank)
-**
-** Clear to end of current line, starting at the cursor position
-*/
-
-static void
-ClrToEOL(chtype blank, bool needclear)
-{
- int j;
-
- if (curscr != 0
- && SP->_cursrow >= 0) {
- for (j = SP->_curscol; j < screen_columns; j++) {
- if (j >= 0) {
- chtype *cp = &(curscr->_line[SP->_cursrow].text[j]);
-
- if (*cp != blank) {
- *cp = blank;
- needclear = TRUE;
- }
- }
- }
- } else {
- needclear = TRUE;
- }
-
- if (needclear) {
- UpdateAttrs(blank);
- TPUTS_TRACE("clr_eol");
- if (SP->_el_cost > (screen_columns - SP->_curscol)) {
- int count = (screen_columns - SP->_curscol);
- while (count-- > 0)
- PutChar(blank);
- } else {
- putp(clr_eol);
- }
- }
-}
-
-/*
-** ClrToEOS(blank)
-**
-** Clear to end of screen, starting at the cursor position
-*/
-
-static void
-ClrToEOS(chtype blank)
-{
- int row, col;
-
- row = SP->_cursrow;
- col = SP->_curscol;
-
- UpdateAttrs(blank);
- TPUTS_TRACE("clr_eos");
- tputs(clr_eos, screen_lines - row, _nc_outch);
-
- while (col < screen_columns)
- curscr->_line[row].text[col++] = blank;
-
- for (row++; row < screen_lines; row++) {
- for (col = 0; col < screen_columns; col++)
- curscr->_line[row].text[col] = blank;
- }
-}
-
-/*
- * ClrBottom(total)
- *
- * Test if clearing the end of the screen would satisfy part of the
- * screen-update. Do this by scanning backwards through the lines in the
- * screen, checking if each is blank, and one or more are changed.
- */
-static int
-ClrBottom(int total)
-{
- int row;
- int col;
- int top = total;
- int last = min(screen_columns, newscr->_maxx + 1);
- chtype blank = ClrBlank(stdscr);
- bool ok;
-
- if (clr_eos && can_clear_with(blank)) {
-
- for (row = total - 1; row >= 0; row--) {
- for (col = 0, ok = TRUE; ok && col < last; col++) {
- ok = (newscr->_line[row].text[col] == blank);
- }
- if (!ok)
- break;
-
- for (col = 0; ok && col < last; col++) {
- ok = (curscr->_line[row].text[col] == blank);
- }
- if (!ok)
- top = row;
- }
-
- /* don't use clr_eos for just one line if clr_eol available */
- if (top < total - 1 || (top < total && !clr_eol && !clr_bol)) {
- GoTo(top, 0);
- ClrToEOS(blank);
- total = top;
- if (SP->oldhash && SP->newhash) {
- for (row = top; row < screen_lines; row++)
- SP->oldhash[row] = SP->newhash[row];
- }
- }
- }
- return total;
-}
-
-/*
-** TransformLine(lineno)
-**
-** Transform the given line in curscr to the one in newscr, using
-** Insert/Delete Character if _nc_idcok && has_ic().
-**
-** firstChar = position of first different character in line
-** oLastChar = position of last different character in old line
-** nLastChar = position of last different character in new line
-**
-** move to firstChar
-** overwrite chars up to min(oLastChar, nLastChar)
-** if oLastChar < nLastChar
-** insert newLine[oLastChar+1..nLastChar]
-** else
-** delete oLastChar - nLastChar spaces
-*/
-
-static void
-TransformLine(int const lineno)
-{
- int firstChar, oLastChar, nLastChar;
- chtype *newLine = newscr->_line[lineno].text;
- chtype *oldLine = curscr->_line[lineno].text;
- int n;
- bool attrchanged = FALSE;
-
- TR(TRACE_UPDATE, ("TransformLine(%d) called", lineno));
-
- /* copy new hash value to old one */
- if (SP->oldhash && SP->newhash)
- SP->oldhash[lineno] = SP->newhash[lineno];
-
-#define ColorOf(n) ((n) & A_COLOR)
-#define unColor(n) ((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
- * for this case, and update the old line with the new line's colors when
- * they are equivalent.
- */
- if (SP->_coloron) {
- chtype oldColor;
- chtype newColor;
- int oldPair;
- int newPair;
-
- for (n = 0; n < screen_columns; n++) {
- if (newLine[n] != oldLine[n]) {
- oldColor = ColorOf(oldLine[n]);
- newColor = ColorOf(newLine[n]);
- if (oldColor != newColor
- && unColor(oldLine[n]) == unColor(newLine[n])) {
- oldPair = PAIR_NUMBER(oldColor);
- newPair = PAIR_NUMBER(newColor);
- if (oldPair < COLOR_PAIRS
- && newPair < COLOR_PAIRS
- && SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) {
- oldLine[n] &= ~A_COLOR;
- oldLine[n] |= ColorOf(newLine[n]);
- }
- }
- }
- }
- }
-
- if (ceol_standout_glitch && clr_eol) {
- firstChar = 0;
- while (firstChar < screen_columns) {
- if (AttrOf(newLine[firstChar]) != AttrOf(oldLine[firstChar]))
- attrchanged = TRUE;
- firstChar++;
- }
- }
-
- firstChar = 0;
-
- if (attrchanged) { /* we may have to disregard the whole line */
- GoTo(lineno, firstChar);
- ClrToEOL(ClrBlank(curscr), FALSE);
- 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
- * attributes which are continued from one line to the next. It
- * assumes that we have filtered out requests for attribute changes
- * that do not get mapped to blank positions.
- *
- * FIXME: we are not keeping track of where we put the cookies, so this
- * will work properly only once, since we may overwrite a cookie in a
- * following operation.
- */
- } else if (magic_cookie_glitch > 0) {
- GoTo(lineno, firstChar);
- for (n = 0; n < screen_columns; n++) {
- int m = n + magic_cookie_glitch;
-
- /* check for turn-on:
- * If we are writing an attributed blank, where the
- * previous cell is not attributed.
- */
- if (TextOf(newLine[n]) == ' '
- && ((n > 0
- && xmc_turn_on(newLine[n - 1], newLine[n]))
- || (n == 0
- && lineno > 0
- && xmc_turn_on(NEW(lineno - 1, screen_columns - 1),
- newLine[n])))) {
- n = m;
- }
-
- PutChar(newLine[n]);
-
- /* 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]) != ' '
- && ((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))))) {
- n = m;
- }
-
- }
-#undef NEW
-#endif
- } else {
- chtype blank;
-
- /* find the first differing character */
- while (firstChar < screen_columns &&
- newLine[firstChar] == oldLine[firstChar])
- firstChar++;
-
- /* if there wasn't one, we're done */
- if (firstChar >= screen_columns)
- return;
-
- /* it may be cheap to clear leading whitespace with clr_bol */
- if (clr_bol && can_clear_with(blank = newLine[0])) {
- int oFirstChar, nFirstChar;
-
- for (oFirstChar = 0; oFirstChar < screen_columns; oFirstChar++)
- if (oldLine[oFirstChar] != blank)
- break;
- for (nFirstChar = 0; nFirstChar < screen_columns; nFirstChar++)
- if (newLine[nFirstChar] != blank)
- break;
-
- if (nFirstChar > oFirstChar + SP->_el1_cost) {
- if (nFirstChar >= screen_columns && SP->_el_cost <= SP->_el1_cost) {
- GoTo(lineno, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("clr_eol");
- putp(clr_eol);
- } else {
- GoTo(lineno, nFirstChar - 1);
- UpdateAttrs(blank);
- TPUTS_TRACE("clr_bol");
- putp(clr_bol);
- }
-
- while (firstChar < nFirstChar)
- oldLine[firstChar++] = blank;
-
- if (firstChar >= screen_columns)
- return;
- }
- }
-
- blank = newLine[screen_columns - 1];
-
- if (!can_clear_with(blank)) {
- /* find the last differing character */
- nLastChar = screen_columns - 1;
-
- while (nLastChar > firstChar
- && newLine[nLastChar] == oldLine[nLastChar])
- nLastChar--;
-
- if (nLastChar >= firstChar) {
- GoTo(lineno, firstChar);
- PutRange(oldLine, newLine, lineno, firstChar, nLastChar);
- memcpy(oldLine + firstChar,
- newLine + firstChar,
- (nLastChar - firstChar + 1) * sizeof(chtype));
- }
- return;
- }
-
- /* find last non-blank character on old line */
- oLastChar = screen_columns - 1;
- while (oLastChar > firstChar && oldLine[oLastChar] == blank)
- oLastChar--;
-
- /* find last non-blank character on new line */
- nLastChar = screen_columns - 1;
- while (nLastChar > firstChar && newLine[nLastChar] == blank)
- nLastChar--;
-
- if ((nLastChar == firstChar)
- && (SP->_el_cost < (oLastChar - nLastChar))) {
- GoTo(lineno, firstChar);
- if (newLine[firstChar] != blank)
- PutChar(newLine[firstChar]);
- ClrToEOL(blank, FALSE);
- } else if ((nLastChar != oLastChar)
- && (newLine[nLastChar] != oldLine[oLastChar]
- || !(_nc_idcok && has_ic()))) {
- GoTo(lineno, firstChar);
- if ((oLastChar - nLastChar) > SP->_el_cost) {
- if (PutRange(oldLine, newLine, lineno, firstChar, nLastChar))
- GoTo(lineno, nLastChar + 1);
- ClrToEOL(blank, FALSE);
- } else {
- n = max(nLastChar, oLastChar);
- PutRange(oldLine, newLine, lineno, firstChar, n);
- }
- } else {
- int nLastNonblank = nLastChar;
- int oLastNonblank = oLastChar;
-
- /* find the last characters that really differ */
- while (newLine[nLastChar] == oldLine[oLastChar]) {
- if (nLastChar != 0
- && oLastChar != 0) {
- nLastChar--;
- oLastChar--;
- } else {
- break;
- }
- }
-
- n = min(oLastChar, nLastChar);
- if (n >= firstChar) {
- GoTo(lineno, firstChar);
- PutRange(oldLine, newLine, lineno, firstChar, n);
- }
-
- if (oLastChar < nLastChar) {
- int m = max(nLastNonblank, oLastNonblank);
- GoTo(lineno, n + 1);
- if (InsCharCost(nLastChar - oLastChar)
- > (m - n)) {
- PutRange(oldLine, newLine, lineno, n + 1, m);
- } else {
- InsStr(&newLine[n + 1], nLastChar - oLastChar);
- }
- } else if (oLastChar > nLastChar) {
- GoTo(lineno, n + 1);
- if (DelCharCost(oLastChar - nLastChar)
- > SP->_el_cost + nLastNonblank - (n + 1)) {
- if (PutRange(oldLine, newLine, lineno,
- n + 1, nLastNonblank))
- GoTo(lineno, nLastNonblank + 1);
- ClrToEOL(blank, FALSE);
- } else {
- /*
- * The delete-char sequence will
- * effectively shift in blanks from the
- * right margin of the screen. Ensure
- * that they are the right color by
- * setting the video attributes from
- * the last character on the row.
- */
- UpdateAttrs(blank);
- DelChar(oLastChar - nLastChar);
- }
- }
- }
- }
-
- /* update the code's internal representation */
- if (screen_columns > firstChar)
- memcpy(oldLine + firstChar,
- newLine + firstChar,
- (screen_columns - firstChar) * sizeof(chtype));
-}
-
-/*
-** ClearScreen(blank)
-**
-** Clear the physical screen and put cursor at home
-**
-*/
-
-static void
-ClearScreen(chtype blank)
-{
- int i, j;
- bool fast_clear = (clear_screen || clr_eos || clr_eol);
-
- TR(TRACE_UPDATE, ("ClearScreen() called"));
-
-#if NCURSES_EXT_FUNCS
- if (SP->_coloron
- && !SP->_default_color) {
- _nc_do_color(COLOR_PAIR(SP->_current_attr), 0, FALSE, _nc_outch);
- if (!back_color_erase) {
- fast_clear = FALSE;
- }
- }
-#endif
-
- if (fast_clear) {
- if (clear_screen) {
- UpdateAttrs(blank);
- TPUTS_TRACE("clear_screen");
- putp(clear_screen);
- SP->_cursrow = SP->_curscol = 0;
- position_check(SP->_cursrow, SP->_curscol, "ClearScreen");
- } else if (clr_eos) {
- SP->_cursrow = SP->_curscol = -1;
- GoTo(0, 0);
-
- UpdateAttrs(blank);
- TPUTS_TRACE("clr_eos");
- putp(clr_eos);
- } else if (clr_eol) {
- SP->_cursrow = SP->_curscol = -1;
-
- UpdateAttrs(blank);
- for (i = 0; i < screen_lines; i++) {
- GoTo(i, 0);
- TPUTS_TRACE("clr_eol");
- putp(clr_eol);
- }
- GoTo(0, 0);
- }
- } else {
- UpdateAttrs(blank);
- for (i = 0; i < screen_lines; i++) {
- GoTo(i, 0);
- for (j = 0; j < screen_columns; j++)
- PutChar(blank);
- }
- GoTo(0, 0);
- }
-
- for (i = 0; i < screen_lines; i++) {
- for (j = 0; j < screen_columns; j++)
- curscr->_line[i].text[j] = blank;
- }
-
- TR(TRACE_UPDATE, ("screen cleared"));
-}
-
-/*
-** InsStr(line, count)
-**
-** Insert the count characters pointed to by line.
-**
-*/
-
-static void
-InsStr(chtype * line, int count)
-{
- TR(TRACE_UPDATE, ("InsStr(%p,%d) called", line, count));
-
- /* Prefer parm_ich as it has the smallest cost - no need to shift
- * the whole line on each character. */
- /* The order must match that of InsCharCost. */
- if (parm_ich) {
- TPUTS_TRACE("parm_ich");
- tputs(tparm(parm_ich, count), count, _nc_outch);
- while (count) {
- PutAttrChar(*line);
- line++;
- count--;
- }
- } else if (enter_insert_mode && exit_insert_mode) {
- TPUTS_TRACE("enter_insert_mode");
- putp(enter_insert_mode);
- while (count) {
- PutAttrChar(*line);
- if (insert_padding) {
- TPUTS_TRACE("insert_padding");
- putp(insert_padding);
- }
- line++;
- count--;
- }
- TPUTS_TRACE("exit_insert_mode");
- putp(exit_insert_mode);
- } else {
- while (count) {
- TPUTS_TRACE("insert_character");
- putp(insert_character);
- PutAttrChar(*line);
- if (insert_padding) {
- TPUTS_TRACE("insert_padding");
- putp(insert_padding);
- }
- line++;
- count--;
- }
- }
- position_check(SP->_cursrow, SP->_curscol, "InsStr");
-}
-
-/*
-** DelChar(count)
-**
-** Delete count characters at current position
-**
-*/
-
-static void
-DelChar(int count)
-{
- int n;
-
- TR(TRACE_UPDATE, ("DelChar(%d) called, position = (%d,%d)", count,
- newscr->_cury, newscr->_curx));
-
- if (parm_dch) {
- TPUTS_TRACE("parm_dch");
- tputs(tparm(parm_dch, count), count, _nc_outch);
- } else {
- for (n = 0; n < count; n++) {
- TPUTS_TRACE("delete_character");
- putp(delete_character);
- }
- }
-}
-
-/*
-** _nc_outstr(char *str)
-**
-** Emit a string without waiting for update.
-*/
-
-void
-_nc_outstr(const char *str)
-{
- (void) putp(str);
- _nc_flush();
-}
-
-/*
- * Physical-scrolling support
- *
- * This code was adapted from Keith Bostic's hardware scrolling
- * support for 4.4BSD curses. I (esr) translated it to use terminfo
- * capabilities, narrowed the call interface slightly, and cleaned
- * up some convoluted tests. I also added support for the memory_above
- * memory_below, and non_dest_scroll_region capabilities.
- *
- * For this code to work, we must have either
- * change_scroll_region and scroll forward/reverse commands, or
- * insert and delete line capabilities.
- * When the scrolling region has been set, the cursor has to
- * be at the last line of the region to make the scroll up
- * happen, or on the first line of region to scroll down.
- *
- * This code makes one aesthetic decision in the opposite way from
- * BSD curses. BSD curses preferred pairs of il/dl operations
- * over scrolls, allegedly because il/dl looked faster. We, on
- * the other hand, prefer scrolls because (a) they're just as fast
- * on many terminals and (b) using them avoids bouncing an
- * unchanged bottom section of the screen up and down, which is
- * visually nasty.
- *
- * (lav): added more cases, used dl/il when bot==maxy and in csr case.
- *
- * I used assumption that capabilities il/il1/dl/dl1 work inside
- * changed scroll region not shifting screen contents outside of it.
- * If there are any terminals behaving different way, it would be
- * necessary to add some conditions to scroll_csr_forward/backward.
- */
-
-/* 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)
-{
- int i, j;
-
- if (n == 1 && scroll_forward && top == miny && bot == maxy) {
- GoTo(bot, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("scroll_forward");
- tputs(scroll_forward, 0, _nc_outch);
- } else if (n == 1 && delete_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("delete_line");
- tputs(delete_line, 0, _nc_outch);
- } else if (parm_index && top == miny && bot == maxy) {
- GoTo(bot, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("parm_index");
- tputs(tparm(parm_index, n, 0), n, _nc_outch);
- } else if (parm_delete_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("parm_delete_line");
- tputs(tparm(parm_delete_line, n, 0), n, _nc_outch);
- } else if (scroll_forward && top == miny && bot == maxy) {
- GoTo(bot, 0);
- UpdateAttrs(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);
- UpdateAttrs(blank);
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("delete_line");
- tputs(delete_line, 0, _nc_outch);
- }
- } else
- return ERR;
-
-#if NCURSES_EXT_FUNCS
- if (FILL_BCE()) {
- for (i = 0; i < n; i++) {
- GoTo(bot - i, 0);
- for (j = 0; j < screen_columns; j++)
- PutChar(blank);
- }
- }
-#endif
- return OK;
-}
-
-/* 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)
-{
- int i, j;
-
- if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("scroll_reverse");
- tputs(scroll_reverse, 0, _nc_outch);
- } else if (n == 1 && insert_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("insert_line");
- tputs(insert_line, 0, _nc_outch);
- } else if (parm_rindex && top == miny && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("parm_rindex");
- tputs(tparm(parm_rindex, n, 0), n, _nc_outch);
- } else if (parm_insert_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(blank);
- TPUTS_TRACE("parm_insert_line");
- tputs(tparm(parm_insert_line, n, 0), n, _nc_outch);
- } else if (scroll_reverse && top == miny && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(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);
- UpdateAttrs(blank);
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("insert_line");
- tputs(insert_line, 0, _nc_outch);
- }
- } else
- return ERR;
-
-#if NCURSES_EXT_FUNCS
- if (FILL_BCE()) {
- for (i = 0; i < n; i++) {
- GoTo(top + i, 0);
- for (j = 0; j < screen_columns; j++)
- PutChar(blank);
- }
- }
-#endif
- return OK;
-}
-
-/* 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)
-{
- int i;
-
- if (!((parm_delete_line || delete_line) && (parm_insert_line || insert_line)))
- return ERR;
-
- GoTo(del, 0);
- UpdateAttrs(blank);
- if (n == 1 && delete_line) {
- TPUTS_TRACE("delete_line");
- tputs(delete_line, 0, _nc_outch);
- } else if (parm_delete_line) {
- TPUTS_TRACE("parm_delete_line");
- tputs(tparm(parm_delete_line, n, 0), n, _nc_outch);
- } else { /* if (delete_line) */
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("delete_line");
- tputs(delete_line, 0, _nc_outch);
- }
- }
-
- GoTo(ins, 0);
- UpdateAttrs(blank);
- if (n == 1 && insert_line) {
- TPUTS_TRACE("insert_line");
- tputs(insert_line, 0, _nc_outch);
- } else if (parm_insert_line) {
- TPUTS_TRACE("parm_insert_line");
- tputs(tparm(parm_insert_line, n, 0), n, _nc_outch);
- } else { /* if (insert_line) */
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("insert_line");
- tputs(insert_line, 0, _nc_outch);
- }
- }
-
- return OK;
-}
-
-int
-_nc_scrolln(int n, int top, int bot, int maxy)
-/* scroll region from top to bot by n lines */
-{
- chtype blank = ClrBlank(stdscr);
- int i;
- bool cursor_saved = FALSE;
- int res;
-
- TR(TRACE_MOVE, ("mvcur_scrolln(%d, %d, %d, %d)", n, top, bot, maxy));
-
-#if USE_XMC_SUPPORT
- /*
- * If we scroll, we might remove a cookie.
- */
- if (magic_cookie_glitch > 0) {
- return (ERR);
- }
-#endif
-
- if (n > 0) { /* scroll up (forward) */
- /*
- * Explicitly clear if stuff pushed off top of region might
- * be saved by the terminal.
- */
- res = scroll_csr_forward(n, top, bot, 0, maxy, blank);
-
- if (res == ERR && change_scroll_region) {
- if ((((n == 1 && scroll_forward) || parm_index)
- && (SP->_cursrow == bot || SP->_cursrow == bot - 1))
- && save_cursor && restore_cursor) {
- cursor_saved = TRUE;
- TPUTS_TRACE("save_cursor");
- tputs(save_cursor, 0, _nc_outch);
- }
- TPUTS_TRACE("change_scroll_region");
- tputs(tparm(change_scroll_region, top, bot), 0, _nc_outch);
- if (cursor_saved) {
- TPUTS_TRACE("restore_cursor");
- tputs(restore_cursor, 0, _nc_outch);
- } else {
- SP->_cursrow = SP->_curscol = -1;
- }
-
- res = scroll_csr_forward(n, top, bot, top, bot, blank);
-
- TPUTS_TRACE("change_scroll_region");
- tputs(tparm(change_scroll_region, 0, maxy), 0, _nc_outch);
- SP->_cursrow = SP->_curscol = -1;
- }
-
- if (res == ERR && _nc_idlok)
- res = scroll_idl(n, top, bot - n + 1, blank);
-
- /*
- * Clear the newly shifted-in text.
- */
- if (res != ERR
- && (non_dest_scroll_region || (memory_below && bot == maxy))) {
- if (bot == maxy && clr_eos) {
- GoTo(bot - n, 0);
- ClrToEOS(BLANK);
- } else {
- for (i = 0; i < n; i++) {
- GoTo(bot - i, 0);
- ClrToEOL(BLANK, FALSE);
- }
- }
- }
-
- } else { /* (n < 0) - scroll down (backward) */
- res = scroll_csr_backward(-n, top, bot, 0, maxy, blank);
-
- if (res == ERR && change_scroll_region) {
- if (top != 0 && (SP->_cursrow == top || SP->_cursrow == top - 1)
- && save_cursor && restore_cursor) {
- cursor_saved = TRUE;
- TPUTS_TRACE("save_cursor");
- tputs(save_cursor, 0, _nc_outch);
- }
- TPUTS_TRACE("change_scroll_region");
- tputs(tparm(change_scroll_region, top, bot), 0, _nc_outch);
- if (cursor_saved) {
- TPUTS_TRACE("restore_cursor");
- tputs(restore_cursor, 0, _nc_outch);
- } else {
- SP->_cursrow = SP->_curscol = -1;
- }
-
- res = scroll_csr_backward(-n, top, bot, top, bot, blank);
-
- TPUTS_TRACE("change_scroll_region");
- tputs(tparm(change_scroll_region, 0, maxy), 0, _nc_outch);
- SP->_cursrow = SP->_curscol = -1;
- }
-
- if (res == ERR && _nc_idlok)
- res = scroll_idl(-n, bot + n + 1, top, blank);
-
- /*
- * Clear the newly shifted-in text.
- */
- if (res != ERR
- && (non_dest_scroll_region || (memory_above && top == 0))) {
- for (i = 0; i < -n; i++) {
- GoTo(i + top, 0);
- ClrToEOL(BLANK, FALSE);
- }
- }
- }
-
- if (res == ERR)
- return (ERR);
-
- _nc_scroll_window(curscr, n, top, bot, blank);
-
- /* shift hash values too - they can be reused */
- _nc_scroll_oldhash(n, top, bot);
-
- return (OK);
-}
-
-void
-_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);
- if (exit_attribute_mode)
- putp(exit_attribute_mode);
- else {
- /* turn off attributes */
- if (exit_alt_charset_mode)
- putp(exit_alt_charset_mode);
- if (exit_standout_mode)
- putp(exit_standout_mode);
- if (exit_underline_mode)
- putp(exit_underline_mode);
- }
- if (exit_insert_mode)
- putp(exit_insert_mode);
- if (enter_am_mode && exit_am_mode)
- putp(auto_right_margin ? enter_am_mode : exit_am_mode);
-}
-
-void
-_nc_screen_init(void)
-{
- _nc_screen_resume();
-}
-
-/* wrap up screen handling */
-void
-_nc_screen_wrap(void)
-{
- UpdateAttrs(A_NORMAL);
-#if NCURSES_EXT_FUNCS
- if (SP->_coloron
- && !SP->_default_color) {
- SP->_default_color = TRUE;
- _nc_do_color(-1, 0, FALSE, _nc_outch);
- SP->_default_color = FALSE;
-
- mvcur(SP->_cursrow, SP->_curscol, screen_lines - 1, 0);
- SP->_cursrow = screen_lines - 1;
- SP->_curscol = 0;
-
- ClrToEOL(BLANK, TRUE);
- }
-#endif
-}
-
-#if USE_XMC_SUPPORT
-void
-_nc_do_xmc_glitch(attr_t previous)
-{
- attr_t chg = XMC_CHANGES(previous ^ SP->_current_attr);
-
- while (chg != 0) {
- if (chg & 1) {
- SP->_curscol += magic_cookie_glitch;
- if (SP->_curscol >= SP->_columns)
- wrap_cursor();
- TR(TRACE_UPDATE, ("bumped to %d,%d after cookie", SP->_cursrow, SP->_curscol));
- }
- chg >>= 1;
- }
-}
-#endif /* USE_XMC_SUPPORT */
diff --git a/ncurses-5.2/panel/Makefile.in b/ncurses-5.2/panel/Makefile.in
deleted file mode 100644
index 75b8d3e..0000000
--- a/ncurses-5.2/panel/Makefile.in
+++ /dev/null
@@ -1,149 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for panels source code.
-#
-# This makes the following:
-# libraries (normal/debug/profile/shared)
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LD = @LD@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @CPPFLAGS@ \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(LIBTOOL) $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib -L$(libdir)
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-MK_SHARED_LIB = @MK_SHARED_LIB@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-RANLIB = @RANLIB@
-
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lpanel -lncurses @LIBS@
-
-AUTO_SRC = \
- ../include/panel.h
-
-################################################################################
-all \
-libs \
-install :: $(AUTO_SRC) $(LIBRARIES)
-
-sources: $(AUTO_SRC)
-
-$(DESTDIR)$(libdir) :
- $(srcdir)/../mkinstalldirs $@
-
-# make a copy to simplify include-paths while still keeping panel's include
-# file in this directory.
-../include/panel.h : $(srcdir)/panel.h
- -rm -f $@
- cp $(srcdir)/panel.h $@
-
-PANEL_PRIV_H = \
- $(srcdir)/panel.priv.h \
- $(srcdir)/panel.h
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/panel/headers b/ncurses-5.2/panel/headers
deleted file mode 100644
index fa0164c..0000000
--- a/ncurses-5.2/panel/headers
+++ /dev/null
@@ -1,31 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-$(srcdir)/panel.h
diff --git a/ncurses-5.2/panel/llib-lpanel b/ncurses-5.2/panel/llib-lpanel
deleted file mode 100644
index 2ca1a3e..0000000
--- a/ncurses-5.2/panel/llib-lpanel
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-/* LINTLIBRARY */
-
-/* ./panel.c */
-
-#include "panel.priv.h"
-
-
-/* ./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); }
diff --git a/ncurses-5.2/panel/modules b/ncurses-5.2/panel/modules
deleted file mode 100644
index ed51d2c..0000000
--- a/ncurses-5.2/panel/modules
+++ /dev/null
@@ -1,49 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
-#
-
-@ base
-# Library objects
-panel lib $(srcdir) $(PANEL_PRIV_H)
-p_above lib $(srcdir) $(PANEL_PRIV_H)
-p_below lib $(srcdir) $(PANEL_PRIV_H)
-p_bottom lib $(srcdir) $(PANEL_PRIV_H)
-p_delete lib $(srcdir) $(PANEL_PRIV_H)
-p_hide lib $(srcdir) $(PANEL_PRIV_H)
-p_hidden lib $(srcdir) $(PANEL_PRIV_H)
-p_move lib $(srcdir) $(PANEL_PRIV_H)
-p_new lib $(srcdir) $(PANEL_PRIV_H)
-p_replace lib $(srcdir) $(PANEL_PRIV_H)
-p_show lib $(srcdir) $(PANEL_PRIV_H)
-p_top lib $(srcdir) $(PANEL_PRIV_H)
-p_update lib $(srcdir) $(PANEL_PRIV_H)
-p_user lib $(srcdir) $(PANEL_PRIV_H)
-p_win lib $(srcdir) $(PANEL_PRIV_H)
-
diff --git a/ncurses-5.2/panel/p_above.c b/ncurses-5.2/panel/p_above.c
deleted file mode 100644
index b1dc979..0000000
--- a/ncurses-5.2/panel/p_above.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_above.c
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-PANEL*
-panel_above(const PANEL *pan)
-{
- if(!pan)
- {
- /* if top and bottom are equal, we have no or only the pseudo panel;
- if not, we return the panel above the pseudo panel */
- return(EMPTY_STACK() ? (PANEL*)0 : _nc_bottom_panel->above);
- }
- else
- return(pan->above);
-}
diff --git a/ncurses-5.2/panel/p_below.c b/ncurses-5.2/panel/p_below.c
deleted file mode 100644
index e4758f7..0000000
--- a/ncurses-5.2/panel/p_below.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_below.c
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-PANEL*
-panel_below(const PANEL *pan)
-{
- if(!pan)
- {
- /* if top and bottom are equal, we have no or only the pseudo panel */
- return(EMPTY_STACK() ? (PANEL*)0 : _nc_top_panel);
- }
- else
- {
- /* we must not return the pseudo panel */
- return(Is_Pseudo(pan->below) ? (PANEL*) 0 : pan->below);
- }
-}
diff --git a/ncurses-5.2/panel/p_bottom.c b/ncurses-5.2/panel/p_bottom.c
deleted file mode 100644
index 13a719d..0000000
--- a/ncurses-5.2/panel/p_bottom.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_bottom.c
- * Place a panel on bottom of the stack; may already be in the stack
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-bottom_panel(PANEL *pan)
-{
- int err = OK;
-
- if (pan) {
-
- if(!Is_Bottom(pan)) {
-
- dBug(("--> bottom_panel %s", USER_PTR(pan->user)));
-
- HIDE_PANEL(pan,err,FALSE);
- assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
-
- dStack("<lb%d>",1,pan);
-
- pan->below = _nc_bottom_panel;
- pan->above = _nc_bottom_panel->above;
- if (pan->above)
- pan->above->below = pan;
- _nc_bottom_panel->above = pan;
-
- dStack("<lb%d>",9,pan);
- }
- }
- else
- err = ERR;
-
- return(err);
-}
diff --git a/ncurses-5.2/panel/p_delete.c b/ncurses-5.2/panel/p_delete.c
deleted file mode 100644
index bbb358d..0000000
--- a/ncurses-5.2/panel/p_delete.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_delete.c
- * Remove a panel from stack, if in it, and free struct
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-del_panel(PANEL *pan)
-{
- int err = OK;
- if(pan)
- {
- dBug(("--> del_panel %s", USER_PTR(pan->user)));
- HIDE_PANEL(pan,err,FALSE);
- free((void *)pan);
- }
- else
- err = ERR;
- return(err);
-}
diff --git a/ncurses-5.2/panel/p_hidden.c b/ncurses-5.2/panel/p_hidden.c
deleted file mode 100644
index a1710a0..0000000
--- a/ncurses-5.2/panel/p_hidden.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_hidden.c
- * Test whether or not panel is hidden
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-panel_hidden(const PANEL *pan)
-{
- if(!pan)
- return(ERR);
- return(IS_LINKED(pan) ? FALSE : TRUE);
-}
diff --git a/ncurses-5.2/panel/p_hide.c b/ncurses-5.2/panel/p_hide.c
deleted file mode 100644
index a056cdd..0000000
--- a/ncurses-5.2/panel/p_hide.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_hide.c
- * Remove a panel from the stack
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-hide_panel(register PANEL *pan)
-{
- int err = OK;
-
- if(!pan)
- return(ERR);
-
- dBug(("--> hide_panel %s", USER_PTR(pan->user)));
- dStack("<u%d>",1,pan);
-
- HIDE_PANEL(pan,err,TRUE);
-
- dStack("<u%d>",9,pan);
-
- return(err);
-}
diff --git a/ncurses-5.2/panel/p_move.c b/ncurses-5.2/panel/p_move.c
deleted file mode 100644
index 57b36f9..0000000
--- a/ncurses-5.2/panel/p_move.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_move.c
- * Move a panel to a new location
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-move_panel(PANEL *pan, int starty, int startx)
-{
- if(!pan)
- return(ERR);
-
- if (IS_LINKED(pan))
- PANEL_UPDATE(pan,(PANEL*)0, TRUE);
-
- if (mvwin(pan->win,starty,startx))
- return(ERR);
-
- return(OK);
-}
diff --git a/ncurses-5.2/panel/p_new.c b/ncurses-5.2/panel/p_new.c
deleted file mode 100644
index d849b2c..0000000
--- a/ncurses-5.2/panel/p_new.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_new.c
- * Creation of a new panel
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-static char* stdscr_id;
-static char* new_id;
-#endif
-
-/*+-------------------------------------------------------------------------
- Get root (i.e. stdscr's) panel.
- Establish the pseudo panel for stdscr if necessary.
---------------------------------------------------------------------------*/
-static PANEL*
-root_panel(void)
-{
- if(_nc_stdscr_pseudo_panel == (PANEL*)0)
- {
-
- assert(stdscr && !_nc_bottom_panel && !_nc_top_panel);
- _nc_stdscr_pseudo_panel = (PANEL*)malloc(sizeof(PANEL));
- if (_nc_stdscr_pseudo_panel != 0) {
- PANEL* pan = _nc_stdscr_pseudo_panel;
- WINDOW* win = stdscr;
- pan->win = win;
- pan->below = (PANEL*)0;
- pan->above = (PANEL*)0;
-#ifdef TRACE
- if (!stdscr_id)
- stdscr_id = strdup("stdscr");
- pan->user = stdscr_id;
-#else
- pan->user = (void*)0;
-#endif
- _nc_bottom_panel = _nc_top_panel = pan;
- }
- }
- return _nc_stdscr_pseudo_panel;
-}
-
-PANEL *
-new_panel(WINDOW *win)
-{
- PANEL *pan = (PANEL*)0;
-
- if (!win)
- return(pan);
-
- if (!_nc_stdscr_pseudo_panel)
- (void)root_panel();
- assert(_nc_stdscr_pseudo_panel);
-
- if (!(win->_flags & _ISPAD) && (pan = (PANEL*)malloc(sizeof(PANEL))))
- {
- pan->win = win;
- pan->above = (PANEL *)0;
- pan->below = (PANEL *)0;
-#ifdef TRACE
- if (!new_id)
- new_id = strdup("new");
- pan->user = new_id;
-#else
- pan->user = (char *)0;
-#endif
- (void)show_panel(pan);
- }
- return(pan);
-}
diff --git a/ncurses-5.2/panel/p_replace.c b/ncurses-5.2/panel/p_replace.c
deleted file mode 100644
index 433249b..0000000
--- a/ncurses-5.2/panel/p_replace.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_replace.c
- * Replace a panels window.
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-replace_panel(PANEL *pan, WINDOW *win)
-{
- if(!pan)
- return(ERR);
-
- if (IS_LINKED(pan))
- PANEL_UPDATE(pan,(PANEL*)0, TRUE);
-
- pan->win = win;
-
- return(OK);
-}
diff --git a/ncurses-5.2/panel/p_show.c b/ncurses-5.2/panel/p_show.c
deleted file mode 100644
index d3423fc..0000000
--- a/ncurses-5.2/panel/p_show.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_show.c
- * Place a panel on top of the stack; may already be in the stack
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-show_panel(PANEL *pan)
-{
- int err = OK;
-
- if(!pan)
- return(ERR);
-
- if (Is_Top(pan))
- return(OK);
-
- dBug(("--> show_panel %s", USER_PTR(pan->user)));
-
- HIDE_PANEL(pan,err,FALSE);
-
- dStack("<lt%d>",1,pan);
- assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
-
- _nc_top_panel->above = pan;
- pan->below = _nc_top_panel;
- pan->above = (PANEL *)0;
- _nc_top_panel = pan;
-
- dStack("<lt%d>",9,pan);
-
- return(OK);
-}
diff --git a/ncurses-5.2/panel/p_top.c b/ncurses-5.2/panel/p_top.c
deleted file mode 100644
index 077690c..0000000
--- a/ncurses-5.2/panel/p_top.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_top.c
- * Place a panel on top of the stack.
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-top_panel(PANEL *pan)
-{
- return(show_panel(pan));
-}
diff --git a/ncurses-5.2/panel/p_update.c b/ncurses-5.2/panel/p_update.c
deleted file mode 100644
index 874f6a9..0000000
--- a/ncurses-5.2/panel/p_update.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_update.c
- * wnoutrefresh windows in an orderly fashion
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-void
-update_panels(void)
-{
- PANEL *pan;
-
- dBug(("--> update_panels"));
- pan = _nc_bottom_panel;
- while(pan && pan->above)
- {
- PANEL_UPDATE(pan,pan->above, FALSE);
- pan = pan->above;
- }
-
- pan = _nc_bottom_panel;
- while (pan)
- {
- Wnoutrefresh(pan);
- pan = pan->above;
- }
-}
diff --git a/ncurses-5.2/panel/p_user.c b/ncurses-5.2/panel/p_user.c
deleted file mode 100644
index 1654549..0000000
--- a/ncurses-5.2/panel/p_user.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_user.c
- * Set/Get panels user pointer
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-int
-set_panel_userptr(PANEL *pan, NCURSES_CONST void *uptr)
-{
- if(!pan)
- return(ERR);
- pan->user = uptr;
- return(OK);
-}
-
-NCURSES_CONST void*
-panel_userptr(const PANEL *pan)
-{
- return(pan ? pan->user : (NCURSES_CONST void *)0);
-}
-
diff --git a/ncurses-5.2/panel/p_win.c b/ncurses-5.2/panel/p_win.c
deleted file mode 100644
index c96dbbb..0000000
--- a/ncurses-5.2/panel/p_win.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_win.c
- * Return a panels window.
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-WINDOW*
-panel_window(const PANEL *pan)
-{
- return(pan ? pan->win : (WINDOW *)0);
-}
-
-
-
-
diff --git a/ncurses-5.2/panel/panel.c b/ncurses-5.2/panel/panel.c
deleted file mode 100644
index 7bc2678..0000000
--- a/ncurses-5.2/panel/panel.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* panel.c -- implementation of panels library, some core routines */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-#ifndef TRACE_TXT
-const char *_nc_my_visbuf(const void *ptr)
-{
- char temp[32];
- if (ptr != 0)
- sprintf(temp, "ptr:%p", ptr);
- else
- strcpy(temp, "<null>");
- return _nc_visbuf(temp);
-}
-#endif
-#endif
-
-
-/*+-------------------------------------------------------------------------
- dPanel(text,pan)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-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),
- (pan->below) ? USER_PTR(pan->below->user) : "--",
- (pan->above) ? USER_PTR(pan->above->user) : "--",
- PSTARTY(pan), PSTARTX(pan));
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- dStack(fmt,num,pan)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-void
-_nc_dStack(const char *fmt, int num, const PANEL *pan)
-{
- char s80[80];
-
- sprintf(s80,fmt,num,pan);
- _tracef("%s b=%s t=%s",s80,
- (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--",
- (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--");
- if(pan)
- _tracef("pan id=%s", USER_PTR(pan->user));
- pan = _nc_bottom_panel;
- while(pan)
- {
- dPanel("stk",pan);
- pan = pan->above;
- }
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- Wnoutrefresh(pan) - debugging hook for wnoutrefresh
---------------------------------------------------------------------------*/
-#ifdef TRACE
-void
-_nc_Wnoutrefresh(const PANEL *pan)
-{
- dPanel("wnoutrefresh",pan);
- wnoutrefresh(pan->win);
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- Touchpan(pan)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-void
-_nc_Touchpan(const PANEL *pan)
-{
- dPanel("Touchpan",pan);
- touchwin(pan->win);
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- Touchline(pan,start,count)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-void
-_nc_Touchline(const PANEL *pan, int start, int count)
-{
- char s80[80];
- sprintf(s80,"Touchline s=%d c=%d",start,count);
- dPanel(s80,pan);
- touchline(pan->win,start,count);
-}
-#endif
-
-#ifndef TRACE
-# ifndef __GNUC__
- /* Some C compilers need something defined in a source file */
- static char GCC_UNUSED dummy;
-# endif
-#endif
diff --git a/ncurses-5.2/panel/panel.h b/ncurses-5.2/panel/panel.h
deleted file mode 100644
index dc33071..0000000
--- a/ncurses-5.2/panel/panel.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* panel.h -- interface file for panels library */
-
-#ifndef _PANEL_H
-#define _PANEL_H
-
-#include <curses.h>
-
-typedef struct panel
-{
- WINDOW *win;
- struct panel *below;
- struct panel *above;
- NCURSES_CONST void *user;
-} PANEL;
-
-#if defined(__cplusplus)
-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 *);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* _PANEL_H */
-
-/* end of panel.h */
diff --git a/ncurses-5.2/panel/panel.priv.h b/ncurses-5.2/panel/panel.priv.h
deleted file mode 100644
index 6b448e4..0000000
--- a/ncurses-5.2/panel/panel.priv.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/* $Id$ */
-
-#ifndef _PANEL_PRIV_H
-#define _PANEL_PRIV_H
-
-#if HAVE_CONFIG_H
-# include <ncurses_cfg.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#if HAVE_LIBDMALLOC
-# include <dmalloc.h> /* Gray Watson's library */
-#endif
-
-#if HAVE_LIBDBMALLOC
-# include <dbmalloc.h> /* Conor Cahill's library */
-#endif
-
-#include <nc_panel.h>
-#include "panel.h"
-
-#if ( CC_HAS_INLINE_FUNCS && !defined(TRACE) )
-# define INLINE inline
-#else
-# define INLINE
-#endif
-
-#if USE_RCS_IDS
-# define MODULE_ID(id) static const char Ident[] = id;
-#else
-# define MODULE_ID(id) /*nothing*/
-#endif
-
-
-#ifdef TRACE
- extern 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
-
- 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);
-
-# define dBug(x) _tracef x
-# define dPanel(text,pan) _nc_dPanel(text,pan)
-# define dStack(fmt,num,pan) _nc_dStack(fmt,num,pan)
-# define Wnoutrefresh(pan) _nc_Wnoutrefresh(pan)
-# define Touchpan(pan) _nc_Touchpan(pan)
-# define Touchline(pan,start,count) _nc_Touchline(pan,start,count)
-#else /* !TRACE */
-# define dBug(x)
-# define dPanel(text,pan)
-# define dStack(fmt,num,pan)
-# define Wnoutrefresh(pan) wnoutrefresh((pan)->win)
-# define Touchpan(pan) touchwin((pan)->win)
-# define Touchline(pan,start,count) touchline((pan)->win,start,count)
-#endif
-
-#define _nc_stdscr_pseudo_panel _nc_panelhook()->stdscr_pseudo_panel
-#define _nc_top_panel _nc_panelhook()->top_panel
-#define _nc_bottom_panel _nc_panelhook()->bottom_panel
-
-#define EMPTY_STACK() (_nc_top_panel==_nc_bottom_panel)
-#define Is_Bottom(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p)))
-#define Is_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
---------------------------------------------------------------------------*/
-/* This works! The only case where it would fail is, when the list has
- only one element. But this could only be the pseudo panel at the bottom */
-#define IS_LINKED(p) (((p)->above || (p)->below ||((p)==_nc_bottom_panel)) ? TRUE : FALSE)
-
-#define PSTARTX(pan) ((pan)->win->_begx)
-#define PENDX(pan) ((pan)->win->_begx + getmaxx((pan)->win) - 1)
-#define PSTARTY(pan) ((pan)->win->_begy)
-#define PENDY(pan) ((pan)->win->_begy + getmaxy((pan)->win) - 1)
-
-/*+-------------------------------------------------------------------------
- PANELS_OVERLAPPED(pan1,pan2) - check panel overlapped
----------------------------------------------------------------------------*/
-#define PANELS_OVERLAPPED(pan1,pan2) \
-(( !(pan1) || !(pan2) || \
- PSTARTY(pan1) > PENDY(pan2) || PENDY(pan1) < PSTARTY(pan2) ||\
- PSTARTX(pan1) > PENDX(pan2) || PENDX(pan1) < PSTARTX(pan2) ) \
- ? FALSE : TRUE)
-
-
-/*+-------------------------------------------------------------------------
- Compute the intersection rectangle of two overlapping rectangles
----------------------------------------------------------------------------*/
-#define COMPUTE_INTERSECTION(pan1,pan2,ix1,ix2,iy1,iy2)\
- ix1 = (PSTARTX(pan1) < PSTARTX(pan2)) ? PSTARTX(pan2) : PSTARTX(pan1);\
- ix2 = (PENDX(pan1) < PENDX(pan2)) ? PENDX(pan1) : PENDX(pan2);\
- iy1 = (PSTARTY(pan1) < PSTARTY(pan2)) ? PSTARTY(pan2) : PSTARTY(pan1);\
- iy2 = (PENDY(pan1) < PENDY(pan2)) ? PENDY(pan1) : PENDY(pan2);\
- assert((ix1<=ix2) && (iy1<=iy2));\
-
-
-/*+-------------------------------------------------------------------------
- Walk through the panel stack starting at the given location and
- check for intersections; overlapping panels are "touched", so they
- are incrementally overwriting cells that should be hidden.
- If the "touch" flag is set, the panel gets touched before it is
- updated.
----------------------------------------------------------------------------*/
-#define PANEL_UPDATE(pan,panstart,touch)\
-{ 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;\
- COMPUTE_INTERSECTION(pan,pan2,ix1,ix2,iy1,iy2);\
- for(y = iy1; y <= iy2; y++) {\
- if (is_linetouched(pan->win,y - PSTARTY(pan))) {\
- struct ldat* line = &(pan2->win->_line[y - PSTARTY(pan2)]);\
- CHANGED_RANGE(line,ix1-PSTARTX(pan2),ix2-PSTARTX(pan2));\
- }\
- }\
- }\
- pan2 = pan2->above;\
- }\
-}
-
-/*+-------------------------------------------------------------------------
- Remove panel from stack.
----------------------------------------------------------------------------*/
-#define PANEL_UNLINK(pan,err) \
-{ err = ERR;\
- if (pan) {\
- if (IS_LINKED(pan)) {\
- if ((pan)->below)\
- (pan)->below->above = (pan)->above;\
- if ((pan)->above)\
- (pan)->above->below = (pan)->below;\
- if ((pan) == _nc_bottom_panel) \
- _nc_bottom_panel = (pan)->above;\
- if ((pan) == _nc_top_panel) \
- _nc_top_panel = (pan)->below;\
- err = OK;\
- }\
- (pan)->above = (pan)->below = (PANEL*)0;\
- }\
-}
-
-#define HIDE_PANEL(pan,err,err_if_unlinked)\
- if (IS_LINKED(pan)) {\
- PANEL_UPDATE(pan,(PANEL*)0,TRUE);\
- PANEL_UNLINK(pan,err);\
- } \
- else {\
- if (err_if_unlinked)\
- err = ERR;\
- }
-
-#endif /* _PANEL_PRIV_H */
diff --git a/ncurses-5.2/progs/MKtermsort.sh b/ncurses-5.2/progs/MKtermsort.sh
deleted file mode 100755
index 1e4c678..0000000
--- a/ncurses-5.2/progs/MKtermsort.sh
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# MKtermsort.sh -- generate indirection vectors for the various sort methods
-#
-# 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
-#
-AWK=${1-awk}
-DATA=${2-../include/Caps}
-
-echo "/*";
-echo " * termsort.c --- sort order arrays for use by infocmp.";
-echo " *";
-echo " * Note: this file is generated using MKtermsort.sh, do not edit by hand.";
-echo " */";
-
-echo "static const int bool_terminfo_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "bool" {printf("%s\t%d\n", $2, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int num_terminfo_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "num" {printf("%s\t%d\n", $2, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int str_terminfo_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "str" {printf("%s\t%d\n", $2, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int bool_variable_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "bool" {printf("%s\t%d\n", $1, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int num_variable_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "num" {printf("%s\t%d\n", $1, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int str_variable_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "str" {printf("%s\t%d\n", $1, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int bool_termcap_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "bool" {printf("%s\t%d\n", $4, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int num_termcap_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "num" {printf("%s\t%d\n", $4, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int str_termcap_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "str" {printf("%s\t%d\n", $4, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-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, " */";}
-'
-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, " */";}
-'
-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, " */";}
-'
-echo "};";
-echo "";
diff --git a/ncurses-5.2/progs/Makefile.in b/ncurses-5.2/progs/Makefile.in
deleted file mode 100644
index 35a5add..0000000
--- a/ncurses-5.2/progs/Makefile.in
+++ /dev/null
@@ -1,269 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for ncurses source code.
-#
-# This makes the ncurses utility programs.
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-x = @PROG_EXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-transform = @program_transform_name@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-INCDIR = $(srcdir)/../include
-CPPFLAGS = -I../progs -I$(srcdir) @CPPFLAGS@ \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LD = @LD@
-LINK = @LINK_PROGS@ $(LIBTOOL) $(CC)
-LDFLAGS = @EXTRA_LDFLAGS@ \
- @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
-
-LDFLAGS_LIBTOOL = $(LDFLAGS)
-LDFLAGS_NORMAL = $(LDFLAGS)
-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
-LDFLAGS_PROFILE = $(LDFLAGS) -pg
-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lncurses @LIBS@
-
-AUTO_SRC = \
- termsort.c \
- transform.h
-
-PROGS = tic$x toe$x infocmp$x clear$x tput$x tset$x
-
-TESTPROGS = mvcur$x tctest$x hardscroll$x hashmap$x
-
-# Default library, for linking applications
-DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-
-################################################################################
-all: $(AUTO_SRC) $(PROGS)
-
-sources: $(AUTO_SRC)
-
-install: $(AUTO_SRC) install.progs
-uninstall: uninstall.progs
-
-# this line simplifies the configure-script
-libs \
-install.libs \
-uninstall.libs:
-
-TRANSFORM = sed 's/$x$$//'|sed '$(transform)'|sed 's/$$/$x/'
-
-actual_captoinfo = `echo captoinfo$x| $(TRANSFORM)`
-actual_clear = `echo clear$x| $(TRANSFORM)`
-actual_infocmp = `echo infocmp$x| $(TRANSFORM)`
-actual_infotocap = `echo infotocap$x| $(TRANSFORM)`
-actual_init = `echo init$x| $(TRANSFORM)`
-actual_reset = `echo reset$x| $(TRANSFORM)`
-actual_tic = `echo tic$x| $(TRANSFORM)`
-actual_toe = `echo toe$x| $(TRANSFORM)`
-actual_tput = `echo tput$x| $(TRANSFORM)`
-actual_tset = `echo tset$x| $(TRANSFORM)`
-
-transform.h :
- echo "#define PROG_CAPTOINFO \"$(actual_captoinfo)\"" >$@
- echo "#define PROG_INFOTOCAP \"$(actual_infotocap)\"" >>$@
- echo "#define PROG_RESET \"$(actual_reset)\"" >>$@
- 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)
- $(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:
- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tic)
- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_toe)
- -@$(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) :
- $(srcdir)/../mkinstalldirs $@
-
-#
-# Utilities normally built by make all start here
-#
-
-DEPS_TIC = \
- $(MODEL)/tic.o \
- $(MODEL)/dump_entry.o
-
-tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h
- @ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_TOE = \
- $(MODEL)/toe.o \
- $(MODEL)/dump_entry.o
-
-toe$x: $(DEPS_TOE) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_CLEAR = \
- $(MODEL)/clear.o
-
-clear$x: $(DEPS_CLEAR) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_TPUT = \
- $(MODEL)/tput.o
-
-tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h
- @ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_INFOCMP = \
- $(MODEL)/infocmp.o \
- $(MODEL)/dump_entry.o
-
-infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_TSET = \
- $(MODEL)/tset.o \
- $(MODEL)/dump_entry.o
-
-tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
- @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_DEFAULT) -o $@
-
-termsort.c: $(srcdir)/MKtermsort.sh
- sh -c "$(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/Caps" >$@
-
-#
-# Utility productions start here
-#
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.ln *.atac trace
- -rm -f $(TESTPROGS)
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
- -rm -f $(PROGS)
- -rm -rf .libs
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-# These rules are used to allow "make -n" to work on a clean directory-tree
-../include/hashsize.h \
-../include/parametrized.h \
-../include/term.h :
- cd ../include; $(MAKE) $(CF_MFLAGS)
-$(DEPS_CURSES) :
- cd ../ncurses; $(MAKE) $(CF_MFLAGS)
-
-lint:
- $(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)
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/progs/capconvert b/ncurses-5.2/progs/capconvert
deleted file mode 100755
index 791089d..0000000
--- a/ncurses-5.2/progs/capconvert
+++ /dev/null
@@ -1,229 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# capconvert -- automated conversion from termcap to terminfo
-#
-
-echo "This script tries to automatically set you up so that your applications"
-echo "that now use termcap can use terminfo and the ncurses library."
-echo ""
-
-# Note, except for telling if we're running under xterm we don't use TERM at
-# all. This is because BSD users not infrequently have multiple termtypes
-# selected by conditionals in tset -- unless they're xterm users, in which
-# case they're on a workstation and probably don't.
-
-# Check to make sure TERMINFO is not already defined
-if test -n "$TERMINFO"
-then
- echo "TERMINFO is already defined in your environment. This means"
- echo "you already have a local terminfo tree, so you do not need any"
- echo "conversion."
- if test ! -d $TERMINFO ; then
- echo "Caution: TERMINFO does not point to a directory!"
- fi
- exit;
-fi
-
-# Check to see if terminfo is present in one of the standard locations.
-terminfo=no
-for p in $TERMINFO \
- /usr/lib/terminfo \
- /usr/share/lib/terminfo \
- /usr/share/terminfo \
- /usr/local/lib/terminfo \
- /usr/local/share/terminfo
-do
- if test -d $p ; then
- terminfo=yes
- break
- fi
-done
-
-if test $terminfo = yes
-then
- echo "Your system already has a system-wide terminfo tree."
- echo ""
- if test -z "$TERMCAP"
- then
- echo "You have no TERMCAP variable set, so we are done."
- # Assumes the terminfo master covers all canned terminal types
- exit;
- fi
- if test "$TERM" = "xterm"
- then
- echo "You are running xterm, which usually sets TERMCAP itself."
- echo "We can ignore this, because terminfo knows about xterm."
- echo "So you will just use the system-wide terminfo tree."
- exit;
- else
- echo "We will have to make a local one for you anyway, to capture the effect"
- echo "of your TERMCAP variable."
- fi
-else
- echo "No system-wide terminfo tree. We will make you a local one."
-fi
-echo "";
-
-# Check if test -x works (it's not portable, but useful)
-OPT="-x"
-TMP=test$$; touch $TMP && chmod 755 $TMP
-if test $OPT $TMP ; then
- chmod 644 $TMP
- test $OPT $TMP && OPT="-f"
-else
- OPT="-f"
-fi
-rm -f $TMP
-
-# First step -- go find tic
-TIC=
-IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
-for x in $PATH .
-do
- if test $OPT $x/tic
- then
- TIC=$x/tic
- break
- fi
-done
-IFS="$ac_save_ifs"
-
-if test -n "$TIC"
-then
- echo "I see tic at $TIC."
- case $TIC in # (vi
- ./tic)
- if test $OPT ../misc/shlib ; then
- TIC="../misc/shlib $TIC"
- fi
- ;;
- esac
-else
- echo "You do not have tic installed anywhere I can see, please fix that."
- exit;
-fi
-echo "";
-
-# We have tic. Either there's no system terminfo tree or there is one but
-# the user has a TERMCAP variable that may modify a stock description.
-#
-
-# Make the user a terminfo directory
-if test -d $HOME/.terminfo
-then
- echo "It appears you already have a private terminfo directory"
- echo "at $HOME/.terminfo; this seems odd, because TERMINFO"
- echo "is not defined. I am not going to second-guess this -- if you"
- echo "really want me to try auto-configuring for you, remove or"
- echo "rename $HOME/terminfo and run me again."
- exit;
-else
- echo "I am creating your private terminfo directory at $HOME/.terminfo"
- mkdir $HOME/.terminfo
- # Ensure that that's where tic's compilation results.
- # This isn't strictly necessary with a 1.9.7 or later tic.
- TERMINFO="$HOME/.terminfo"; export TERMINFO
-fi
-echo "";
-
-# Find a terminfo source to work from
-if test -f ../misc/terminfo.src
-then
- echo "I see the terminfo master source is handy; I will use that."
- master=../misc/terminfo.src
-else
- # Ooops...looks like we're running from somewhere other than the
- # progs directory of an ncurses source tree.
- master=`find $HOME -name "*terminfo.src" -print`
- mcount=`echo $master | wc -l`
- case $mcount in
- 0)
- echo "I can not find a terminfo source file anywhere under your home directory."
- echo "There should be a file called terminfo.src somewhere in your"
- echo "ncurses distribution; please put it in your home directotry"
- echo "and run me again (it does not have to live there permanently)."
- exit;
- ;;
- 1)
- echo "I see a file called $master."
- echo "I am going to assume this is the terminfo source included with"
- echo "the ncurses distribution. If this assumption is wrong, please"
- echo "interrupt me now! OK to continue?"
- read ans;
- ;;
- 2)
- echo "I see more than one possible terminfo source. Here they are:"
- echo $master | sed "/^/s// /";
- while :
- do
- echo "Please tell me which one to use:"
- read master;
- if test -f $master
- then
- break
- else
- echo "That file does not exist. Try again?";
- fi
- done
- ;;
- esac
-fi
-echo "";
-
-# Now that we have a master, compile it into the local tree
-echo "OK, now I will make your private terminfo tree. This may take a bit..."
-#
-# Kluge alert: we compile terminfo.src in two pieces because a lot of machines
-# with < 16MB RAM choke on tic's core-hog habits.
-trap "rm -f tsplit$$.*" 0 1 2 5 15
-sed -n $master \
- -e '1,/SPLIT HERE/w 'tsplit$$.01 \
- -e '/SPLIT HERE/,$w 'tsplit$$.02 \
- 2>/dev/null
-for x in tsplit$$.*; do eval $TIC $x; done
-rm tsplit$$.*
-trap 0 1 2 5 15
-#
-echo "You now have a private tree under $HOME/.terminfo;"
-echo "the ncurses library will automatically read from it,"
-echo "and ncurses tic will automatically compile entries to it."
-
-# We're done unless user has a .termcap file or equivalent named by TERMCAP
-if test -z "$TERMCAP"
-then
- echo "You have no TERMCAP set, so we are done."
-fi
-
-# OK, here comes the nasty case...user has a TERMCAP. Instead of
-# trying to follow all the convolutions of the relationship between
-# TERM and TERMCAP (partly because it's too painful, and partly because
-# we don't actually know what TERM will be nor even if it always has
-# the same value for this user) we do the following three steps...
-
-if test -f $HOME/.termcap
-then
- echo 'I see you have a $HOME/.termcap file. I will compile that.'
- eval $TIC $HOME/.termcap
- echo "Done."
- echo "Note that editing $HOME/.termcap will no longer change the data curses sees."
-elif test -f "$TERMCAP"
-then
- echo "Your TERMCAP names the file $TERMCAP. I will compile that."
- eval $TIC $TERMCAP
- echo "Done."
- echo "Note that editing $TERMCAP will no longer change the data curses sees."
-else
- echo "Your TERMCAP value appears to be an entry in termcap format."
- echo "I will compile it."
- echo $TERMCAP >myterm$$
- eval $TIC myterm$$
- rm myterm$$
- echo "Done."
- echo "Note that editing TERMCAP will no longer change the data curses sees."
-fi
-echo "To do that, decompile the terminal decription you want with infocmp(1),"
-echo "edit to taste, and recompile using tic(1)."
-
-# capconvert ends here
-
diff --git a/ncurses-5.2/progs/clear.c b/ncurses-5.2/progs/clear.c
deleted file mode 100644
index 5f8e9d6..0000000
--- a/ncurses-5.2/progs/clear.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * clear.c -- clears the terminal's screen
- */
-
-#include <progs.priv.h>
-
-#include <curses.h>
-
-MODULE_ID("$Id$")
-
-static int putch(int c)
-{
- return putchar(c);
-}
-
-int main(
- int argc GCC_UNUSED,
- char *argv[] GCC_UNUSED)
-{
- setupterm((char *) 0, STDOUT_FILENO, (int *) 0);
- return (tputs(clear_screen, lines > 0 ? lines : 1, putch) == ERR)
- ? EXIT_FAILURE
- : EXIT_SUCCESS;
-}
diff --git a/ncurses-5.2/progs/clear.sh b/ncurses-5.2/progs/clear.sh
deleted file mode 100755
index 1b6b0bb..0000000
--- a/ncurses-5.2/progs/clear.sh
+++ /dev/null
@@ -1 +0,0 @@
-exec tput clear
diff --git a/ncurses-5.2/progs/dump_entry.c b/ncurses-5.2/progs/dump_entry.c
deleted file mode 100644
index 9888d82..0000000
--- a/ncurses-5.2/progs/dump_entry.c
+++ /dev/null
@@ -1,972 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#define __INTERNAL_CAPS_VISIBLE
-#include <progs.priv.h>
-
-#include "dump_entry.h"
-#include "termsort.c" /* this C file is generated */
-#include <parametrized.h> /* so is this */
-
-MODULE_ID("$Id$")
-
-#define INDENT 8
-#define DISCARD(string) string = ABSENT_STRING
-#define PRINTF (void) printf
-
-typedef struct {
- char *text;
- size_t used;
- size_t size;
-} DYNBUF;
-
-static int tversion; /* terminfo version */
-static int outform; /* output format to use */
-static int sortmode; /* sort mode to use */
-static int width = 60; /* max line width for listings */
-static int 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 DYNBUF tmpbuf;
-
-/* indirection pointers for implementing sort and display modes */
-static const int *bool_indirect, *num_indirect, *str_indirect;
-static NCURSES_CONST char *const *bool_names;
-static NCURSES_CONST char *const *num_names;
-static NCURSES_CONST char *const *str_names;
-
-static const char *separator, *trailer;
-
-/* cover various ports and variants of terminfo */
-#define V_ALLCAPS 0 /* all capabilities (SVr4, XSI, ncurses) */
-#define V_SVR1 1 /* SVR1, Ultrix */
-#define V_HPUX 2 /* HP/UX */
-#define V_AIX 3 /* AIX */
-#define V_BSD 4 /* BSD */
-
-#if NCURSES_XNAMES
-#define OBSOLETE(n) (!_nc_user_definable && (n[0] == 'O' && n[1] == 'T'))
-#else
-#define OBSOLETE(n) (n[0] == 'O' && n[1] == 'T')
-#endif
-
-#define isObsolete(f,n) ((f == F_TERMINFO || f == F_VARIABLE) && OBSOLETE(n))
-
-#if NCURSES_XNAMES
-#define BoolIndirect(j) ((j >= BOOLCOUNT) ? (j) : ((sortmode == S_NOSORT) ? j : bool_indirect[j]))
-#define NumIndirect(j) ((j >= NUMCOUNT) ? (j) : ((sortmode == S_NOSORT) ? j : num_indirect[j]))
-#define StrIndirect(j) ((j >= STRCOUNT) ? (j) : ((sortmode == S_NOSORT) ? j : str_indirect[j]))
-#else
-#define BoolIndirect(j) ((sortmode == S_NOSORT) ? (j) : bool_indirect[j])
-#define NumIndirect(j) ((sortmode == S_NOSORT) ? (j) : num_indirect[j])
-#define StrIndirect(j) ((sortmode == S_NOSORT) ? (j) : str_indirect[j])
-#endif
-
-static void
-strncpy_DYN(DYNBUF * dst, const char *src, size_t need)
-{
- size_t want = need + dst->used + 1;
- if (want > dst->size) {
- dst->size += (want + 1024); /* be generous */
- dst->text = typeRealloc(char, dst->size, dst->text);
- }
- (void) strncpy(dst->text + dst->used, src, need);
- dst->used += need;
- dst->text[dst->used] = 0;
-}
-
-static void
-strcpy_DYN(DYNBUF * dst, const char *src)
-{
- if (src == 0) {
- dst->used = 0;
- strcpy_DYN(dst, "");
- } else {
- strncpy_DYN(dst, src, strlen(src));
- }
-}
-
-#if NO_LEAKS
-static void
-free_DYN(DYNBUF * p)
-{
- if (p->text != 0)
- free(p->text);
- p->text = 0;
- p->size = 0;
- p->used = 0;
-}
-
-void
-_nc_leaks_dump_entry(void)
-{
- free_DYN(&outbuf);
- free_DYN(&tmpbuf);
-}
-#endif
-
-NCURSES_CONST char *
-nametrans(const char *name)
-/* translate a capability name from termcap to terminfo */
-{
- const struct name_table_entry *np;
-
- if ((np = _nc_find_entry(name, _nc_get_hash_table(0))) != 0)
- switch (np->nte_type) {
- case BOOLEAN:
- if (bool_from_termcap[np->nte_index])
- return (boolcodes[np->nte_index]);
- break;
-
- case NUMBER:
- if (num_from_termcap[np->nte_index])
- return (numcodes[np->nte_index]);
- break;
-
- case STRING:
- if (str_from_termcap[np->nte_index])
- return (strcodes[np->nte_index]);
- break;
- }
-
- return (0);
-}
-
-void
-dump_init(const char *version, int mode, int sort, int twidth, int traceval,
- bool 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")
- || !strcmp(version, "Ultrix"))
- tversion = V_SVR1;
- else if (!strcmp(version, "HP"))
- tversion = V_HPUX;
- else if (!strcmp(version, "AIX"))
- tversion = V_AIX;
- else if (!strcmp(version, "BSD"))
- tversion = V_BSD;
- else
- tversion = V_ALLCAPS;
-
- /* implement display modes */
- switch (outform = mode) {
- case F_LITERAL:
- case F_TERMINFO:
- bool_names = boolnames;
- num_names = numnames;
- str_names = strnames;
- separator = twidth ? ", " : ",";
- trailer = "\n\t";
- break;
-
- case F_VARIABLE:
- bool_names = boolfnames;
- num_names = numfnames;
- str_names = strfnames;
- separator = twidth ? ", " : ",";
- trailer = "\n\t";
- break;
-
- case F_TERMCAP:
- case F_TCONVERR:
- bool_names = boolcodes;
- num_names = numcodes;
- str_names = strcodes;
- separator = ":";
- trailer = "\\\n\t:";
- break;
- }
-
- /* implement sort modes */
- switch (sortmode = sort) {
- case S_NOSORT:
- if (traceval)
- (void) fprintf(stderr,
- "%s: sorting by term structure order\n", _nc_progname);
- break;
-
- case S_TERMINFO:
- if (traceval)
- (void) fprintf(stderr,
- "%s: sorting by terminfo name order\n", _nc_progname);
- bool_indirect = bool_terminfo_sort;
- num_indirect = num_terminfo_sort;
- str_indirect = str_terminfo_sort;
- break;
-
- case S_VARIABLE:
- if (traceval)
- (void) fprintf(stderr,
- "%s: sorting by C variable order\n", _nc_progname);
- bool_indirect = bool_variable_sort;
- num_indirect = num_variable_sort;
- str_indirect = str_variable_sort;
- break;
-
- case S_TERMCAP:
- if (traceval)
- (void) fprintf(stderr,
- "%s: sorting by termcap name order\n", _nc_progname);
- bool_indirect = bool_termcap_sort;
- num_indirect = num_termcap_sort;
- str_indirect = str_termcap_sort;
- break;
- }
-
- if (traceval)
- (void) fprintf(stderr,
- "%s: width = %d, tversion = %d, outform = %d\n",
- _nc_progname, width, tversion, outform);
-}
-
-static TERMTYPE *cur_type;
-
-static int
-dump_predicate(int type, int idx)
-/* predicate function to use for ordinary decompilation */
-{
- switch (type) {
- case BOOLEAN:
- return (cur_type->Booleans[idx] == FALSE)
- ? FAIL : cur_type->Booleans[idx];
-
- case NUMBER:
- return (cur_type->Numbers[idx] == ABSENT_NUMERIC)
- ? FAIL : cur_type->Numbers[idx];
-
- case STRING:
- return (cur_type->Strings[idx] != ABSENT_STRING)
- ? (int) TRUE : FAIL;
- }
-
- return (FALSE); /* pacify compiler */
-}
-
-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))
-
-static bool
-version_filter(int type, int idx)
-/* filter out capabilities we may want to suppress */
-{
- switch (tversion) {
- case V_ALLCAPS: /* SVr4, XSI Curses */
- return (TRUE);
-
- case V_SVR1: /* System V Release 1, Ultrix */
- switch (type) {
- case BOOLEAN:
- /* below and including xon_xoff */
- return ((idx <= 20) ? TRUE : FALSE);
- case NUMBER:
- /* below and including width_status_line */
- return ((idx <= 7) ? TRUE : FALSE);
- case STRING:
- /* below and including prtr_non */
- return ((idx <= 144) ? TRUE : FALSE);
- }
- break;
-
- case V_HPUX: /* Hewlett-Packard */
- switch (type) {
- case BOOLEAN:
- /* below and including xon_xoff */
- return ((idx <= 20) ? TRUE : FALSE);
- case NUMBER:
- /* below and including label_width */
- return ((idx <= 10) ? TRUE : FALSE);
- case STRING:
- if (idx <= 144) /* below and including prtr_non */
- return (TRUE);
- else if (FNKEY(idx)) /* function keys */
- return (TRUE);
- else if (idx == 147 || idx == 156 || idx == 157) /* plab_norm,label_on,label_off */
- return (TRUE);
- else
- return (FALSE);
- }
- break;
-
- case V_AIX: /* AIX */
- switch (type) {
- case BOOLEAN:
- /* below and including xon_xoff */
- return ((idx <= 20) ? TRUE : FALSE);
- case NUMBER:
- /* below and including width_status_line */
- return ((idx <= 7) ? TRUE : FALSE);
- case STRING:
- if (idx <= 144) /* below and including prtr_non */
- return (TRUE);
- else if (FNKEY(idx)) /* function keys */
- return (TRUE);
- else
- return (FALSE);
- }
- break;
-
- case V_BSD: /* BSD */
- switch (type) {
- case BOOLEAN:
- return bool_from_termcap[idx];
- case NUMBER:
- return num_from_termcap[idx];
- case STRING:
- return str_from_termcap[idx];
- }
- break;
- }
-
- return (FALSE); /* pacify the compiler */
-}
-
-static void
-force_wrap(void)
-{
- oldcol = column;
- strcpy_DYN(&outbuf, trailer);
- column = INDENT;
-}
-
-static void
-wrap_concat(const char *src)
-{
- int need = strlen(src);
- int want = strlen(separator) + need;
-
- if (column > INDENT
- && column + want > width) {
- force_wrap();
- }
- strcpy_DYN(&outbuf, src);
- strcpy_DYN(&outbuf, separator);
- column += need;
-}
-
-#define IGNORE_SEP_TRAIL(first,last,sep_trail) \
- if ((size_t)(last - first) > sizeof(sep_trail)-1 \
- && !strncmp(first, sep_trail, sizeof(sep_trail)-1)) \
- first += sizeof(sep_trail)-2
-
-/* Returns the nominal length of the buffer assuming it is termcap format,
- * i.e., the continuation sequence is treated as a single character ":".
- *
- * There are several implementations of termcap which read the text into a
- * fixed-size buffer. Generally they strip the newlines from the text, but may
- * not do it until after the buffer is read. Also, "tc=" resolution may be
- * expanded in the same buffer. This function is useful for measuring the size
- * of the best fixed-buffer implementation; the worst case may be much worse.
- */
-#ifdef TEST_TERMCAP_LENGTH
-static int
-termcap_length(const char *src)
-{
- static const char pattern[] = ":\\\n\t:";
-
- int len = 0;
- const char *const t = src + strlen(src);
-
- while (*src != '\0') {
- IGNORE_SEP_TRAIL(src, t, pattern);
- src++;
- len++;
- }
- return len;
-}
-#else
-#define termcap_length(src) strlen(src)
-#endif
-
-static char *
-fmt_complex(char *src, int level)
-{
- int percent = 0;
- int n;
- bool if_then = strstr(src, "%?") != 0;
- bool params = !if_then && (strlen(src) > 50) && (strstr(src, "%p") != 0);
-
- while (*src != '\0') {
- switch (*src) {
- case '\\':
- percent = 0;
- strncpy_DYN(&tmpbuf, src++, 1);
- break;
- case '%':
- percent = 1;
- break;
- case '?': /* "if" */
- case 't': /* "then" */
- case 'e': /* "else" */
- if (percent) {
- percent = 0;
- tmpbuf.text[tmpbuf.used - 1] = '\n';
- /* treat a "%e%?" as else-if, on the same level */
- if (!strncmp(src, "e%?", 3)) {
- for (n = 0; n < level; n++)
- strncpy_DYN(&tmpbuf, "\t", 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src, 3);
- src += 3;
- } else {
- for (n = 0; n <= level; n++)
- strncpy_DYN(&tmpbuf, "\t", 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src, 1);
- if (*src++ == '?') {
- src = fmt_complex(src, level + 1);
- } else if (level == 1) {
- _nc_warning("%%%c without %%?", *src);
- }
- }
- continue;
- }
- break;
- case ';': /* "endif" */
- if (percent) {
- percent = 0;
- if (level > 1) {
- tmpbuf.text[tmpbuf.used - 1] = '\n';
- for (n = 0; n < level; n++)
- strncpy_DYN(&tmpbuf, "\t", 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src++, 1);
- return src;
- }
- _nc_warning("%%; without %%?");
- }
- break;
- case 'p':
- if (percent && params) {
- tmpbuf.text[tmpbuf.used - 1] = '\n';
- for (n = 0; n <= level; n++)
- strncpy_DYN(&tmpbuf, "\t", 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- }
- percent = 0;
- break;
- default:
- percent = 0;
- break;
- }
- strncpy_DYN(&tmpbuf, src++, 1);
- }
- return src;
-}
-
-int
-fmt_entry(TERMTYPE * tterm,
- int (*pred) (int type, int idx),
- bool suppress_untranslatable,
- bool infodump,
- int numbers)
-{
- int i, j;
- char buffer[MAX_TERMINFO_LENGTH];
- NCURSES_CONST char *name;
- int predval, len;
- int num_bools = 0;
- int num_values = 0;
- int num_strings = 0;
- bool outcount = 0;
-
-#define WRAP_CONCAT \
- wrap_concat(buffer); \
- outcount = TRUE
-
- len = 12; /* terminfo file-header */
-
- if (pred == 0) {
- cur_type = tterm;
- pred = dump_predicate;
- }
-
- strcpy_DYN(&outbuf, 0);
- strcpy_DYN(&outbuf, tterm->term_names);
- strcpy_DYN(&outbuf, separator);
- column = outbuf.used;
- force_wrap();
-
- for_each_boolean(j, tterm) {
- i = BoolIndirect(j);
- name = ExtBoolname(tterm, i, bool_names);
-
- if (!version_filter(BOOLEAN, i))
- continue;
- else if (isObsolete(outform, name))
- continue;
-
- predval = pred(BOOLEAN, i);
- if (predval != FAIL) {
- (void) strcpy(buffer, name);
- if (predval <= 0)
- (void) strcat(buffer, "@");
- else if (i + 1 > num_bools)
- num_bools = i + 1;
- WRAP_CONCAT;
- }
- }
-
- if (column != INDENT)
- force_wrap();
-
- for_each_number(j, tterm) {
- i = NumIndirect(j);
- name = ExtNumname(tterm, i, num_names);
-
- if (!version_filter(NUMBER, i))
- continue;
- else if (isObsolete(outform, name))
- continue;
-
- predval = pred(NUMBER, i);
- if (predval != FAIL) {
- if (tterm->Numbers[i] < 0) {
- sprintf(buffer, "%s@", name);
- } else {
- sprintf(buffer, "%s#%d", name, tterm->Numbers[i]);
- if (i + 1 > num_values)
- num_values = i + 1;
- }
- WRAP_CONCAT;
- }
- }
-
- if (column != INDENT)
- force_wrap();
-
- len += num_bools
- + num_values * 2
- + strlen(tterm->term_names) + 1;
- if (len & 1)
- len++;
-
-#undef CUR
-#define CUR tterm->
- if (outform == F_TERMCAP) {
- if (termcap_reset != ABSENT_STRING) {
- if (init_3string != ABSENT_STRING
- && !strcmp(init_3string, termcap_reset))
- DISCARD(init_3string);
-
- if (reset_2string != ABSENT_STRING
- && !strcmp(reset_2string, termcap_reset))
- DISCARD(reset_2string);
- }
- }
-
- for_each_string(j, tterm) {
- i = StrIndirect(j);
- name = ExtStrname(tterm, i, str_names);
-
- if (!version_filter(STRING, i))
- continue;
- else if (isObsolete(outform, name))
- continue;
-
- /*
- * Some older versions of vi want rmir/smir to be defined
- * for ich/ich1 to work. If they're not defined, force
- * them to be output as defined and empty.
- */
- if (outform == F_TERMCAP) {
- if (insert_character || parm_ich) {
- if (&tterm->Strings[i] == &enter_insert_mode
- && enter_insert_mode == ABSENT_STRING) {
- (void) strcpy(buffer, "im=");
- WRAP_CONCAT;
- continue;
- }
-
- if (&tterm->Strings[i] == &exit_insert_mode
- && exit_insert_mode == ABSENT_STRING) {
- (void) strcpy(buffer, "ei=");
- WRAP_CONCAT;
- continue;
- }
- }
- }
-
- predval = pred(STRING, i);
- buffer[0] = '\0';
-
- if (predval != FAIL) {
- if (tterm->Strings[i] != ABSENT_STRING
- && i + 1 > num_strings)
- num_strings = i + 1;
-
- if (!VALID_STRING(tterm->Strings[i])) {
- sprintf(buffer, "%s@", name);
- WRAP_CONCAT;
- } else if (outform == F_TERMCAP || outform == F_TCONVERR) {
- int params = (i < (int) SIZEOF(parametrized)) ? parametrized[i] : 0;
- char *srccap = _nc_tic_expand(tterm->Strings[i], TRUE, numbers);
- char *cv = _nc_infotocap(name, srccap, params);
-
- if (cv == 0) {
- if (outform == F_TCONVERR) {
- sprintf(buffer, "%s=!!! %s WILL NOT CONVERT !!!",
- name, srccap);
- } else if (suppress_untranslatable) {
- continue;
- } else {
- char *s = srccap, *d = buffer;
- sprintf(d, "..%s=", name);
- d += strlen(d);
- while ((*d = *s++) != 0) {
- if (*d == ':') {
- *d++ = '\\';
- *d = ':';
- } else if (*d == '\\') {
- *++d = *s++;
- }
- d++;
- }
- }
- } else {
- sprintf(buffer, "%s=%s", name, cv);
- }
- len += strlen(tterm->Strings[i]) + 1;
- WRAP_CONCAT;
- } else {
- char *src = _nc_tic_expand(tterm->Strings[i],
- outform == F_TERMINFO, numbers);
-
- strcpy_DYN(&tmpbuf, 0);
- strcpy_DYN(&tmpbuf, name);
- strcpy_DYN(&tmpbuf, "=");
- if (pretty
- && (outform == F_TERMINFO
- || outform == F_VARIABLE)) {
- fmt_complex(src, 1);
- } else {
- strcpy_DYN(&tmpbuf, src);
- }
- len += strlen(tterm->Strings[i]) + 1;
- wrap_concat(tmpbuf.text);
- outcount = TRUE;
- }
- }
- }
- len += num_strings * 2;
-
- /*
- * This piece of code should be an effective inverse of the functions
- * postprocess_terminfo and postprocess_terminfo in parse_entry.c.
- * Much more work should be done on this to support dumping termcaps.
- */
- if (tversion == V_HPUX) {
- if (memory_lock) {
- (void) sprintf(buffer, "meml=%s", memory_lock);
- WRAP_CONCAT;
- }
- if (memory_unlock) {
- (void) sprintf(buffer, "memu=%s", memory_unlock);
- WRAP_CONCAT;
- }
- } else if (tversion == V_AIX) {
- if (VALID_STRING(acs_chars)) {
- bool box_ok = TRUE;
- const char *acstrans = "lqkxjmwuvtn";
- const char *cp;
- char *tp, *sp, boxchars[11];
-
- tp = boxchars;
- for (cp = acstrans; *cp; cp++) {
- sp = strchr(acs_chars, *cp);
- if (sp)
- *tp++ = sp[1];
- else {
- box_ok = FALSE;
- break;
- }
- }
- tp[0] = '\0';
-
- if (box_ok) {
- (void) strcpy(buffer, "box1=");
- (void) strcat(buffer, _nc_tic_expand(boxchars,
- outform == F_TERMINFO, numbers));
- WRAP_CONCAT;
- }
- }
- }
-
- /*
- * kludge: trim off trailer to avoid an extra blank line
- * in infocmp -u output when there are no string differences
- */
- if (outcount) {
- bool trimmed = FALSE;
- j = outbuf.used;
- if (j >= 2
- && outbuf.text[j - 1] == '\t'
- && outbuf.text[j - 2] == '\n') {
- 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.used -= 4;
- trimmed = TRUE;
- }
- if (trimmed) {
- outbuf.text[outbuf.used] = '\0';
- column = oldcol;
- }
- }
-#if 0
- fprintf(stderr, "num_bools = %d\n", num_bools);
- 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);
-#endif
- /*
- * Here's where we use infodump to trigger a more stringent length check
- * for termcap-translation purposes.
- * Return the length of the raw entry, without tc= expansions,
- * It gives an idea of which entries are deadly to even *scan past*,
- * as opposed to *use*.
- */
- return (infodump ? len : termcap_length(outbuf.text));
-}
-
-int
-dump_entry(TERMTYPE * tterm, bool limited, int numbers, int (*pred) (int
- type, int idx))
-/* dump a single entry */
-{
- int len, critlen;
- const char *legend;
- bool infodump;
-
- if (outform == F_TERMCAP || outform == F_TCONVERR) {
- critlen = MAX_TERMCAP_LENGTH;
- legend = "older termcap";
- infodump = FALSE;
- set_obsolete_termcaps(tterm);
- } else {
- critlen = MAX_TERMINFO_LENGTH;
- legend = "terminfo";
- infodump = TRUE;
- }
-
- if (((len = fmt_entry(tterm, pred, FALSE, infodump, numbers)) > critlen)
- && limited) {
- PRINTF("# (untranslatable capabilities removed to fit entry within %d bytes)\n",
- critlen);
- if ((len = fmt_entry(tterm, pred, TRUE, infodump, numbers)) > critlen) {
- /*
- * We pick on sgr because it's a nice long string capability that
- * is really just an optimization hack. Another good candidate is
- * acsc since it is both long and unused by BSD termcap.
- */
- char *oldsgr = set_attributes;
- char *oldacsc = acs_chars;
- 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) {
- acs_chars = ABSENT_STRING;
- PRINTF("# (acsc removed to fit entry within %d bytes)\n",
- critlen);
- }
- if ((len = fmt_entry(tterm, pred, TRUE, infodump, numbers)) > critlen) {
- 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) {
- (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);
- }
- tversion = oldversion;
- }
- set_attributes = oldsgr;
- acs_chars = oldacsc;
- }
- }
-
- (void) fputs(outbuf.text, stdout);
- return len;
-}
-
-int
-dump_uses(const char *name, bool infodump)
-/* dump "use=" clauses in the appropriate format */
-{
- char buffer[MAX_TERMINFO_LENGTH];
-
- strcpy_DYN(&outbuf, 0);
- (void) sprintf(buffer, "%s%s", infodump ? "use=" : "tc=", name);
- wrap_concat(buffer);
- (void) fputs(outbuf.text, stdout);
- return outbuf.used;
-}
-
-void
-compare_entry(void (*hook) (int t, int i, const char *name), TERMTYPE * tp
- GCC_UNUSED, bool quiet)
-/* compare two entries */
-{
- int i, j;
- NCURSES_CONST char *name;
-
- if (!quiet)
- fputs(" comparing booleans.\n", stdout);
- for_each_boolean(j, tp) {
- i = BoolIndirect(j);
- name = ExtBoolname(tp, i, bool_names);
-
- if (isObsolete(outform, name))
- continue;
-
- (*hook) (CMP_BOOLEAN, i, name);
- }
-
- if (!quiet)
- fputs(" comparing numbers.\n", stdout);
- for_each_number(j, tp) {
- i = NumIndirect(j);
- name = ExtNumname(tp, i, num_names);
-
- if (isObsolete(outform, name))
- continue;
-
- (*hook) (CMP_NUMBER, i, name);
- }
-
- if (!quiet)
- fputs(" comparing strings.\n", stdout);
- for_each_string(j, tp) {
- i = StrIndirect(j);
- name = ExtStrname(tp, i, str_names);
-
- if (isObsolete(outform, name))
- continue;
-
- (*hook) (CMP_STRING, i, name);
- }
-
- /* (void) fputs(" comparing use entries.\n", stdout); */
- (*hook) (CMP_USE, 0, "use");
-
-}
-
-#define NOTSET(s) ((s) == 0)
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed.
- */
-#undef CUR
-#define CUR tp->
-
-static void
-set_obsolete_termcaps(TERMTYPE * tp)
-{
-#include "capdefaults.c"
-}
-
-/*
- * Convert an alternate-character-set string to canonical form: sorted and
- * unique.
- */
-void
-repair_acsc(TERMTYPE * tp)
-{
- if (VALID_STRING(acs_chars)) {
- size_t n, m;
- char mapped[256];
- char extra = 0;
- unsigned source;
- unsigned target;
- bool fix_needed = FALSE;
-
- for (n = 0, source = 0; acs_chars[n] != 0; n++) {
- target = acs_chars[n];
- if (source >= target) {
- fix_needed = TRUE;
- break;
- }
- source = target;
- if (acs_chars[n + 1])
- n++;
- }
- if (fix_needed) {
- memset(mapped, 0, sizeof(mapped));
- for (n = 0; acs_chars[n] != 0; n++) {
- source = acs_chars[n];
- if ((target = (unsigned char) acs_chars[n + 1]) != 0) {
- mapped[source] = target;
- n++;
- } else {
- extra = source;
- }
- }
- for (n = m = 0; n < sizeof(mapped); n++) {
- if (mapped[n]) {
- acs_chars[m++] = n;
- acs_chars[m++] = mapped[n];
- }
- }
- if (extra)
- acs_chars[m++] = extra; /* garbage in, garbage out */
- acs_chars[m] = 0;
- }
- }
-}
diff --git a/ncurses-5.2/progs/dump_entry.h b/ncurses-5.2/progs/dump_entry.h
deleted file mode 100644
index 5735470..0000000
--- a/ncurses-5.2/progs/dump_entry.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * Dump control definitions and variables
- */
-
-/* capability output formats */
-#define F_TERMINFO 0 /* use terminfo names */
-#define F_VARIABLE 1 /* use C variable names */
-#define F_TERMCAP 2 /* termcap names with capability conversion */
-#define F_TCONVERR 3 /* as T_TERMCAP, no skip of untranslatables */
-#define F_LITERAL 4 /* like F_TERMINFO, but no smart defaults */
-
-/* capability sort modes */
-#define S_DEFAULT 0 /* sort by terminfo name (implicit) */
-#define S_NOSORT 1 /* don't sort */
-#define S_TERMINFO 2 /* sort by terminfo names (explicit) */
-#define S_VARIABLE 3 /* sort by C variable names */
-#define S_TERMCAP 4 /* sort by termcap names */
-
-/* capability types for the comparison hook */
-#define CMP_BOOLEAN 0 /* comparison on booleans */
-#define CMP_NUMBER 1 /* comparison on numerics */
-#define CMP_STRING 2 /* comparison on strings */
-#define CMP_USE 3 /* comparison on use capabilities */
-
-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 dump_uses(const char *, bool);
-extern void compare_entry(void (*)(int, int, const char *), TERMTYPE *, bool);
-extern void repair_acsc(TERMTYPE * tp);
-
-#define FAIL -1
diff --git a/ncurses-5.2/progs/infocmp.c b/ncurses-5.2/progs/infocmp.c
deleted file mode 100644
index b48255e..0000000
--- a/ncurses-5.2/progs/infocmp.c
+++ /dev/null
@@ -1,1441 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * infocmp.c -- decompile an entry, or compare two entries
- * written by Eric S. Raymond
- */
-
-#include <progs.priv.h>
-
-#include <term_entry.h>
-#include <dump_entry.h>
-
-MODULE_ID("$Id$")
-
-#define L_CURL "{"
-#define R_CURL "}"
-
-#define MAXTERMS 32 /* max # terminal arguments we can handle */
-#define MAX_STRING 1024 /* maximum formatted string */
-
-const char *_nc_progname = "infocmp";
-
-typedef char path[PATH_MAX];
-
-/***************************************************************************
- *
- * The following control variables, together with the contents of the
- * terminfo entries, completely determine the actions of the program.
- *
- ***************************************************************************/
-
-static char *tname[MAXTERMS]; /* terminal type names */
-static ENTRY entries[MAXTERMS]; /* terminfo entries */
-static int termcount; /* count of terminal entries */
-
-static bool limited = TRUE; /* "-r" option is not set */
-static bool quiet = FALSE;
-static const char *bool_sep = ":";
-static const char *s_absent = "NULL";
-static const char *s_cancel = "NULL";
-static const char *tversion; /* terminfo version selected */
-static int itrace; /* trace flag for debugging */
-static int mwidth = 60;
-static int numbers = 0; /* format "%'char'" to/from "%{number}" */
-static int outform = F_TERMINFO; /* output format */
-static int sortmode; /* sort_mode */
-
-/* main comparison mode */
-static int compare;
-#define C_DEFAULT 0 /* don't force comparison mode */
-#define C_DIFFERENCE 1 /* list differences between two terminals */
-#define C_COMMON 2 /* list common capabilities */
-#define C_NAND 3 /* list capabilities in neither terminal */
-#define C_USEALL 4 /* generate relative use-form entry */
-static bool ignorepads; /* ignore pad prefixes when diffing */
-
-#if NO_LEAKS
-#undef ExitProgram
-static void
-ExitProgram(int code) GCC_NORETURN;
-/* prototype is to get gcc to accept the noreturn attribute */
- static void
- ExitProgram(int code)
-{
- while (termcount-- > 0)
- _nc_free_termtype(&entries[termcount].tterm);
- _nc_leaks_dump_entry();
- _nc_free_and_exit(code);
-}
-#endif
-
-static char *
-canonical_name(char *ptr, char *buf)
-/* extract the terminal type's primary name */
-{
- char *bp;
-
- (void) strcpy(buf, ptr);
- if ((bp = strchr(buf, '|')) != 0)
- *bp = '\0';
-
- return (buf);
-}
-
-/***************************************************************************
- *
- * Predicates for dump function
- *
- ***************************************************************************/
-
-static int
-capcmp(int idx, const char *s, const char *t)
-/* capability comparison function */
-{
- if (!VALID_STRING(s) && !VALID_STRING(t))
- return (s != t);
- else if (!VALID_STRING(s) || !VALID_STRING(t))
- return (1);
-
- if ((idx == acs_chars_index) || !ignorepads)
- return (strcmp(s, t));
- else
- return (_nc_capcmp(s, t));
-}
-
-static int
-use_predicate(int type, int idx)
-/* predicate function to use for use decompilation */
-{
- ENTRY *ep;
-
- switch (type) {
- case BOOLEAN:
- {
- int is_set = FALSE;
-
- /*
- * This assumes that multiple use entries are supposed
- * to contribute the logical or of their boolean capabilities.
- * This is true if we take the semantics of multiple uses to
- * be 'each capability gets the first non-default value found
- * in the sequence of use entries'.
- *
- * Note that cancelled or absent booleans are stored as FALSE,
- * unlike numbers and strings, whose cancelled/absent state is
- * recorded in the terminfo database.
- */
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (ep->tterm.Booleans[idx] == TRUE) {
- is_set = entries[0].tterm.Booleans[idx];
- break;
- }
- if (is_set != entries[0].tterm.Booleans[idx])
- return (!is_set);
- else
- return (FAIL);
- }
-
- case NUMBER:
- {
- int value = ABSENT_NUMERIC;
-
- /*
- * We take the semantics of multiple uses to be 'each
- * capability gets the first non-default value found
- * in the sequence of use entries'.
- */
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (VALID_NUMERIC(ep->tterm.Numbers[idx])) {
- value = ep->tterm.Numbers[idx];
- break;
- }
-
- if (value != entries[0].tterm.Numbers[idx])
- return (value != ABSENT_NUMERIC);
- else
- return (FAIL);
- }
-
- case STRING:
- {
- char *termstr, *usestr = ABSENT_STRING;
-
- termstr = entries[0].tterm.Strings[idx];
-
- /*
- * We take the semantics of multiple uses to be 'each
- * capability gets the first non-default value found
- * in the sequence of use entries'.
- */
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (ep->tterm.Strings[idx]) {
- usestr = ep->tterm.Strings[idx];
- break;
- }
-
- if (usestr == ABSENT_STRING && termstr == ABSENT_STRING)
- return (FAIL);
- else if (!usestr || !termstr || capcmp(idx, usestr, termstr))
- return (TRUE);
- else
- return (FAIL);
- }
- }
-
- return (FALSE); /* pacify compiler */
-}
-
-static bool
-useeq(ENTRY * e1, ENTRY * e2)
-/* are the use references in two entries equivalent? */
-{
- int i, j;
-
- if (e1->nuses != e2->nuses)
- return (FALSE);
-
- /* Ugh...this is quadratic again */
- for (i = 0; i < e1->nuses; i++) {
- bool foundmatch = FALSE;
-
- /* search second entry for given use reference */
- for (j = 0; j < e2->nuses; j++)
- if (!strcmp(e1->uses[i].name, e2->uses[j].name)) {
- foundmatch = TRUE;
- break;
- }
-
- if (!foundmatch)
- return (FALSE);
- }
-
- return (TRUE);
-}
-
-static bool
-entryeq(TERMTYPE * t1, TERMTYPE * t2)
-/* are two entries equivalent? */
-{
- int i;
-
- for (i = 0; i < NUM_BOOLEANS(t1); i++)
- if (t1->Booleans[i] != t2->Booleans[i])
- return (FALSE);
-
- for (i = 0; i < NUM_NUMBERS(t1); i++)
- if (t1->Numbers[i] != t2->Numbers[i])
- return (FALSE);
-
- for (i = 0; i < NUM_STRINGS(t1); i++)
- if (capcmp(i, t1->Strings[i], t2->Strings[i]))
- return (FALSE);
-
- return (TRUE);
-}
-
-#define TIC_EXPAND(result) _nc_tic_expand(result, outform==F_TERMINFO, numbers)
-
-static void
-print_uses(ENTRY * ep, FILE * fp)
-/* print an entry's use references */
-{
- int i;
-
- if (!ep->nuses)
- fputs("NULL", fp);
- else
- for (i = 0; i < ep->nuses; i++) {
- fputs(ep->uses[i].name, fp);
- if (i < ep->nuses - 1)
- fputs(" ", fp);
- }
-}
-
-static const char *
-dump_boolean(int val)
-/* display the value of a boolean capability */
-{
- switch (val) {
- case ABSENT_BOOLEAN:
- return (s_absent);
- case CANCELLED_BOOLEAN:
- return (s_cancel);
- case FALSE:
- return ("F");
- case TRUE:
- return ("T");
- default:
- return ("?");
- }
-}
-
-static void
-dump_numeric(int val, char *buf)
-/* display the value of a boolean capability */
-{
- switch (val) {
- case ABSENT_NUMERIC:
- strcpy(buf, s_absent);
- break;
- case CANCELLED_NUMERIC:
- strcpy(buf, s_cancel);
- break;
- default:
- sprintf(buf, "%d", val);
- break;
- }
-}
-
-static void
-dump_string(char *val, char *buf)
-/* display the value of a string capability */
-{
- if (val == ABSENT_STRING)
- strcpy(buf, s_absent);
- else if (val == CANCELLED_STRING)
- strcpy(buf, s_cancel);
- else {
- sprintf(buf, "'%.*s'", MAX_STRING - 3, TIC_EXPAND(val));
- }
-}
-
-static void
-compare_predicate(int type, int idx, const char *name)
-/* predicate function to use for entry difference reports */
-{
- register ENTRY *e1 = &entries[0];
- register ENTRY *e2 = &entries[1];
- char buf1[MAX_STRING], buf2[MAX_STRING];
- int b1, b2;
- int n1, n2;
- char *s1, *s2;
-
- switch (type) {
- case CMP_BOOLEAN:
- b1 = e1->tterm.Booleans[idx];
- b2 = e2->tterm.Booleans[idx];
- switch (compare) {
- case C_DIFFERENCE:
- if (!(b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN) && b1 != b2)
- (void) printf("\t%s: %s%s%s.\n",
- name,
- dump_boolean(b1),
- bool_sep,
- dump_boolean(b2));
- break;
-
- case C_COMMON:
- if (b1 == b2 && b1 != ABSENT_BOOLEAN)
- (void) printf("\t%s= %s.\n", name, dump_boolean(b1));
- break;
-
- case C_NAND:
- if (b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN)
- (void) printf("\t!%s.\n", name);
- break;
- }
- break;
-
- case CMP_NUMBER:
- n1 = e1->tterm.Numbers[idx];
- n2 = e2->tterm.Numbers[idx];
- dump_numeric(n1, buf1);
- dump_numeric(n2, buf2);
- switch (compare) {
- case C_DIFFERENCE:
- if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2)
- (void) printf("\t%s: %s, %s.\n", name, buf1, buf2);
- break;
-
- case C_COMMON:
- if (n1 != ABSENT_NUMERIC && n2 != ABSENT_NUMERIC && n1 == n2)
- (void) printf("\t%s= %s.\n", name, buf1);
- break;
-
- case C_NAND:
- if (n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)
- (void) printf("\t!%s.\n", name);
- break;
- }
- break;
-
- case CMP_STRING:
- s1 = e1->tterm.Strings[idx];
- s2 = e2->tterm.Strings[idx];
- switch (compare) {
- case C_DIFFERENCE:
- if (capcmp(idx, s1, s2)) {
- dump_string(s1, buf1);
- dump_string(s2, buf2);
- if (strcmp(buf1, buf2))
- (void) printf("\t%s: %s, %s.\n", name, buf1, buf2);
- }
- break;
-
- case C_COMMON:
- if (s1 && s2 && !capcmp(idx, s1, s2))
- (void) printf("\t%s= '%s'.\n", name, TIC_EXPAND(s1));
- break;
-
- case C_NAND:
- if (!s1 && !s2)
- (void) printf("\t!%s.\n", name);
- break;
- }
- break;
-
- case CMP_USE:
- /* unlike the other modes, this compares *all* use entries */
- switch (compare) {
- case C_DIFFERENCE:
- if (!useeq(e1, e2)) {
- (void) fputs("\tuse: ", stdout);
- print_uses(e1, stdout);
- fputs(", ", stdout);
- print_uses(e2, stdout);
- fputs(".\n", stdout);
- }
- break;
-
- case C_COMMON:
- if (e1->nuses && e2->nuses && useeq(e1, e2)) {
- (void) fputs("\tuse: ", stdout);
- print_uses(e1, stdout);
- fputs(".\n", stdout);
- }
- break;
-
- case C_NAND:
- if (!e1->nuses && !e2->nuses)
- (void) printf("\t!use.\n");
- break;
- }
- }
-}
-
-/***************************************************************************
- *
- * Init string analysis
- *
- ***************************************************************************/
-
-typedef struct {
- const char *from;
- const char *to;
-} assoc;
-
-static const assoc std_caps[] =
-{
- /* these are specified by X.364 and iBCS2 */
- {"\033c", "RIS"}, /* full reset */
- {"\0337", "SC"}, /* save cursor */
- {"\0338", "RC"}, /* restore cursor */
- {"\033[r", "RSR"}, /* not an X.364 mnemonic */
- {"\033[m", "SGR0"}, /* not an X.364 mnemonic */
- {"\033[2J", "ED2"}, /* clear page */
-
- /* this group is specified by ISO 2022 */
- {"\033(0", "ISO DEC G0"}, /* enable DEC graphics for G0 */
- {"\033(A", "ISO UK G0"}, /* enable UK chars for G0 */
- {"\033(B", "ISO US G0"}, /* enable US chars for G0 */
- {"\033)0", "ISO DEC G1"}, /* enable DEC graphics for G1 */
- {"\033)A", "ISO UK G1"}, /* enable UK chars for G1 */
- {"\033)B", "ISO US G1"}, /* enable US chars for G1 */
-
- /* these are DEC private modes widely supported by emulators */
- {"\033=", "DECPAM"}, /* application keypad mode */
- {"\033>", "DECPNM"}, /* normal keypad mode */
- {"\033<", "DECANSI"}, /* enter ANSI mode */
-
- {(char *) 0, (char *) 0}
-};
-
-static const assoc private_modes[] =
-/* DEC \E[ ... [hl] modes recognized by many emulators */
-{
- {"1", "CKM"}, /* application cursor keys */
- {"2", "ANM"}, /* set VT52 mode */
- {"3", "COLM"}, /* 132-column mode */
- {"4", "SCLM"}, /* smooth scroll */
- {"5", "SCNM"}, /* reverse video mode */
- {"6", "OM"}, /* origin mode */
- {"7", "AWM"}, /* wraparound mode */
- {"8", "ARM"}, /* auto-repeat mode */
- {(char *) 0, (char *) 0}
-};
-
-static const assoc ecma_highlights[] =
-/* recognize ECMA attribute sequences */
-{
- {"0", "NORMAL"}, /* normal */
- {"1", "+BOLD"}, /* bold on */
- {"2", "+DIM"}, /* dim on */
- {"3", "+ITALIC"}, /* italic on */
- {"4", "+UNDERLINE"}, /* underline on */
- {"5", "+BLINK"}, /* blink on */
- {"6", "+FASTBLINK"}, /* fastblink on */
- {"7", "+REVERSE"}, /* reverse on */
- {"8", "+INVISIBLE"}, /* invisible on */
- {"9", "+DELETED"}, /* deleted on */
- {"10", "MAIN-FONT"}, /* select primary font */
- {"11", "ALT-FONT-1"}, /* select alternate font 1 */
- {"12", "ALT-FONT-2"}, /* select alternate font 2 */
- {"13", "ALT-FONT-3"}, /* select alternate font 3 */
- {"14", "ALT-FONT-4"}, /* select alternate font 4 */
- {"15", "ALT-FONT-5"}, /* select alternate font 5 */
- {"16", "ALT-FONT-6"}, /* select alternate font 6 */
- {"17", "ALT-FONT-7"}, /* select alternate font 7 */
- {"18", "ALT-FONT-1"}, /* select alternate font 1 */
- {"19", "ALT-FONT-1"}, /* select alternate font 1 */
- {"20", "FRAKTUR"}, /* Fraktur font */
- {"21", "DOUBLEUNDER"}, /* double underline */
- {"22", "-DIM"}, /* dim off */
- {"23", "-ITALIC"}, /* italic off */
- {"24", "-UNDERLINE"}, /* underline off */
- {"25", "-BLINK"}, /* blink off */
- {"26", "-FASTBLINK"}, /* fastblink off */
- {"27", "-REVERSE"}, /* reverse off */
- {"28", "-INVISIBLE"}, /* invisible off */
- {"29", "-DELETED"}, /* deleted off */
- {(char *) 0, (char *) 0}
-};
-
-static void
-analyze_string(const char *name, const char *cap, TERMTYPE * tp)
-{
- char buf[MAX_TERMINFO_LENGTH];
- char buf2[MAX_TERMINFO_LENGTH];
- const char *sp, *ep;
- const assoc *ap;
-
- if (cap == ABSENT_STRING || cap == CANCELLED_STRING)
- return;
- (void) printf("%s: ", name);
-
- buf[0] = '\0';
- for (sp = cap; *sp; sp++) {
- int i;
- size_t len = 0;
- const char *expansion = 0;
-
- /* first, check other capabilities in this entry */
- for (i = 0; i < STRCOUNT; i++) {
- char *cp = tp->Strings[i];
-
- /* don't use soft-key capabilities */
- if (strnames[i][0] == 'k' && strnames[i][0] == 'f')
- continue;
-
- if (cp != ABSENT_STRING && cp != CANCELLED_STRING && cp[0] && cp
- != cap) {
- len = strlen(cp);
- (void) strncpy(buf2, sp, len);
- buf2[len] = '\0';
-
- if (_nc_capcmp(cp, buf2))
- continue;
-
-#define ISRS(s) (!strncmp((s), "is", 2) || !strncmp((s), "rs", 2))
- /*
- * Theoretically we just passed the test for translation
- * (equality once the padding is stripped). However, there
- * are a few more hoops that need to be jumped so that
- * identical pairs of initialization and reset strings
- * don't just refer to each other.
- */
- if (ISRS(name) || ISRS(strnames[i]))
- if (cap < cp)
- continue;
-#undef ISRS
-
- expansion = strnames[i];
- break;
- }
- }
-
- /* now check the standard capabilities */
- if (!expansion)
- for (ap = std_caps; ap->from; ap++) {
- len = strlen(ap->from);
-
- if (strncmp(ap->from, sp, len) == 0) {
- expansion = ap->to;
- break;
- }
- }
-
- /* now check for private-mode sequences */
- if (!expansion
- && sp[0] == '\033' && sp[1] == '[' && sp[2] == '?'
- && (len = strspn(sp + 3, "0123456789;"))
- && ((sp[3 + len] == 'h') || (sp[3 + len] == 'l'))) {
- char buf3[MAX_TERMINFO_LENGTH];
-
- (void) strcpy(buf2, (sp[3 + len] == 'h') ? "DEC+" : "DEC-");
- (void) strncpy(buf3, sp + 3, len);
- len += 4;
- buf3[len] = '\0';
-
- ep = strtok(buf3, ";");
- do {
- bool found = FALSE;
-
- for (ap = private_modes; ap->from; ap++) {
- size_t tlen = strlen(ap->from);
-
- if (strncmp(ap->from, ep, tlen) == 0) {
- (void) strcat(buf2, ap->to);
- found = TRUE;
- break;
- }
- }
-
- if (!found)
- (void) strcat(buf2, ep);
- (void) strcat(buf2, ";");
- } while
- ((ep = strtok((char *) 0, ";")));
- buf2[strlen(buf2) - 1] = '\0';
- expansion = buf2;
- }
-
- /* now check for ECMA highlight sequences */
- if (!expansion
- && sp[0] == '\033' && sp[1] == '['
- && (len = strspn(sp + 2, "0123456789;"))
- && sp[2 + len] == 'm') {
- char buf3[MAX_TERMINFO_LENGTH];
-
- (void) strcpy(buf2, "SGR:");
- (void) strncpy(buf3, sp + 2, len);
- len += 3;
- buf3[len] = '\0';
-
- ep = strtok(buf3, ";");
- do {
- bool found = FALSE;
-
- for (ap = ecma_highlights; ap->from; ap++) {
- size_t tlen = strlen(ap->from);
-
- if (strncmp(ap->from, ep, tlen) == 0) {
- (void) strcat(buf2, ap->to);
- found = TRUE;
- break;
- }
- }
-
- if (!found)
- (void) strcat(buf2, ep);
- (void) strcat(buf2, ";");
- } while
- ((ep = strtok((char *) 0, ";")));
-
- buf2[strlen(buf2) - 1] = '\0';
- expansion = buf2;
- }
- /* now check for scroll region reset */
- if (!expansion) {
- (void) sprintf(buf2, "\033[1;%dr", tp->Numbers[2]);
- len = strlen(buf2);
- if (strncmp(buf2, sp, len) == 0)
- expansion = "RSR";
- }
-
- /* now check for home-down */
- if (!expansion) {
- (void) sprintf(buf2, "\033[%d;1H", tp->Numbers[2]);
- len = strlen(buf2);
- if (strncmp(buf2, sp, len) == 0)
- expansion = "LL";
- }
-
- /* now look at the expansion we got, if any */
- if (expansion) {
- (void) sprintf(buf + strlen(buf), "{%s}", expansion);
- sp += len - 1;
- continue;
- } else {
- /* couldn't match anything */
- buf2[0] = *sp;
- buf2[1] = '\0';
- (void) strcat(buf, TIC_EXPAND(buf2));
- }
- }
- (void) printf("%s\n", buf);
-}
-
-/***************************************************************************
- *
- * File comparison
- *
- ***************************************************************************/
-
-static void
-file_comparison(int argc, char *argv[])
-{
-#define MAXCOMPARE 2
- /* someday we may allow comparisons on more files */
- int filecount = 0;
- ENTRY *heads[MAXCOMPARE];
- ENTRY *tails[MAXCOMPARE];
- ENTRY *qp, *rp;
- int i, n;
-
- dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, itrace, FALSE);
-
- for (n = 0; n < argc && n < MAXCOMPARE; n++) {
- if (freopen(argv[n], "r", stdin) == 0)
- _nc_err_abort("Can't open %s", argv[n]);
-
- _nc_head = _nc_tail = 0;
-
- /* parse entries out of the source file */
- _nc_set_source(argv[n]);
- _nc_read_entry_source(stdin, NULL, TRUE, FALSE, NULLHOOK);
-
- if (itrace)
- (void) fprintf(stderr, "Resolving file %d...\n", n - 0);
-
- /* maybe do use resolution */
- if (!_nc_resolve_uses(!limited)) {
- (void) fprintf(stderr,
- "There are unresolved use entries in %s:\n",
- argv[n]);
- for_entry_list(qp) {
- if (qp->nuses) {
- (void) fputs(qp->tterm.term_names, stderr);
- (void) fputc('\n', stderr);
- }
- }
- exit(EXIT_FAILURE);
- }
-
- heads[filecount] = _nc_head;
- tails[filecount] = _nc_tail;
- filecount++;
- }
-
- /* OK, all entries are in core. Ready to do the comparison */
- if (itrace)
- (void) fprintf(stderr, "Entries are now in core...\n");
-
- /* The entry-matching loop. Sigh, this is intrinsically quadratic. */
- for (qp = heads[0]; qp; qp = qp->next) {
- for (rp = heads[1]; rp; rp = rp->next)
- if (_nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) {
- if (qp->ncrosslinks < MAX_CROSSLINKS)
- qp->crosslinks[qp->ncrosslinks] = rp;
- qp->ncrosslinks++;
-
- if (rp->ncrosslinks < MAX_CROSSLINKS)
- rp->crosslinks[rp->ncrosslinks] = qp;
- rp->ncrosslinks++;
- }
- }
-
- /* now we have two circular lists with crosslinks */
- if (itrace)
- (void) fprintf(stderr, "Name matches are done...\n");
-
- for (qp = heads[0]; qp; qp = qp->next) {
- if (qp->ncrosslinks > 1) {
- (void) fprintf(stderr,
- "%s in file 1 (%s) has %d matches in file 2 (%s):\n",
- _nc_first_name(qp->tterm.term_names),
- argv[0],
- qp->ncrosslinks,
- argv[1]);
- for (i = 0; i < qp->ncrosslinks; i++)
- (void) fprintf(stderr,
- "\t%s\n",
- _nc_first_name((qp->crosslinks[i])->tterm.term_names));
- }
- }
-
- for (rp = heads[1]; rp; rp = rp->next) {
- if (rp->ncrosslinks > 1) {
- (void) fprintf(stderr,
- "%s in file 2 (%s) has %d matches in file 1 (%s):\n",
- _nc_first_name(rp->tterm.term_names),
- argv[1],
- rp->ncrosslinks,
- argv[0]);
- for (i = 0; i < rp->ncrosslinks; i++)
- (void) fprintf(stderr,
- "\t%s\n",
- _nc_first_name((rp->crosslinks[i])->tterm.term_names));
- }
- }
-
- (void) printf("In file 1 (%s) only:\n", argv[0]);
- for (qp = heads[0]; qp; qp = qp->next)
- if (qp->ncrosslinks == 0)
- (void) printf("\t%s\n",
- _nc_first_name(qp->tterm.term_names));
-
- (void) printf("In file 2 (%s) only:\n", argv[1]);
- for (rp = heads[1]; rp; rp = rp->next)
- if (rp->ncrosslinks == 0)
- (void) printf("\t%s\n",
- _nc_first_name(rp->tterm.term_names));
-
- (void) printf("The following entries are equivalent:\n");
- for (qp = heads[0]; qp; qp = qp->next) {
- rp = qp->crosslinks[0];
-
- if (qp->ncrosslinks == 1) {
- rp = qp->crosslinks[0];
-
- repair_acsc(&qp->tterm);
- repair_acsc(&rp->tterm);
-#if NCURSES_XNAMES
- _nc_align_termtype(&qp->tterm, &rp->tterm);
-#endif
- if (entryeq(&qp->tterm, &rp->tterm) && useeq(qp, rp)) {
- char name1[NAMESIZE], name2[NAMESIZE];
-
- (void) canonical_name(qp->tterm.term_names, name1);
- (void) canonical_name(rp->tterm.term_names, name2);
-
- (void) printf("%s = %s\n", name1, name2);
- }
- }
- }
-
- (void) printf("Differing entries:\n");
- termcount = 2;
- for (qp = heads[0]; qp; qp = qp->next) {
-
- if (qp->ncrosslinks == 1) {
- rp = qp->crosslinks[0];
-#if NCURSES_XNAMES
- /* sorry - we have to do this on each pass */
- _nc_align_termtype(&qp->tterm, &rp->tterm);
-#endif
- if (!(entryeq(&qp->tterm, &rp->tterm) && useeq(qp, rp))) {
- char name1[NAMESIZE], name2[NAMESIZE];
-
- entries[0] = *qp;
- entries[1] = *rp;
-
- (void) canonical_name(qp->tterm.term_names, name1);
- (void) canonical_name(rp->tterm.term_names, name2);
-
- switch (compare) {
- case C_DIFFERENCE:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping differences\n");
- (void) printf("comparing %s to %s.\n", name1, name2);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_COMMON:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping common capabilities\n");
- (void) printf("comparing %s to %s.\n", name1, name2);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_NAND:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping differences\n");
- (void) printf("comparing %s to %s.\n", name1, name2);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- }
- }
- }
- }
-}
-
-static void
-usage(void)
-{
- static const char *tbl[] =
- {
- "Usage: infocmp [options] [-A directory] [-B directory] [termname...]"
- ,""
- ,"Options:"
- ," -1 print single-column"
- ," -C use termcap-names"
- ," -F compare terminfo-files"
- ," -I use terminfo-names"
- ," -L use long names"
- ," -R subset (see manpage)"
- ," -T eliminate size limits (test)"
- ," -V print version"
-#if NCURSES_XNAMES
- ," -a with -F, list commented-out caps"
-#endif
- ," -c list common capabilities"
- ," -d list different capabilities"
- ," -e format output for C initializer"
- ," -E format output as C tables"
- ," -f with -1, format complex strings"
- ," -G format %{number} to %'char'"
- ," -g format %'char' to %{number}"
- ," -i analyze initialization/reset"
- ," -l output terminfo names"
- ," -n list capabilities in neither"
- ," -p ignore padding specifiers"
- ," -q brief listing, removes headers"
- ," -r with -C, output in termcap form"
- ," -r with -F, resolve use-references"
- ," -s [d|i|l|c] sort fields"
- ," -u produce source with 'use='"
- ," -v number (verbose)"
- ," -w number (width)"
- };
- const size_t first = 3;
- const size_t last = SIZEOF(tbl);
- const size_t left = (last - first + 1) / 2 + first;
- size_t n;
-
- for (n = 0; n < left; n++) {
- size_t m = (n < first) ? last : n + left - first;
- if (m < last)
- fprintf(stderr, "%-40.40s%s\n", tbl[n], tbl[m]);
- else
- fprintf(stderr, "%s\n", tbl[n]);
- }
- exit(EXIT_FAILURE);
-}
-
-static char *
-name_initializer(const char *type)
-{
- static char *initializer;
- char *s;
-
- if (initializer == 0)
- initializer = (char *) malloc(strlen(entries->tterm.term_names) + 20);
-
- (void) sprintf(initializer, "%s_data_%s", type, entries->tterm.term_names);
- for (s = initializer; *s != 0 && *s != '|'; s++) {
- if (!isalnum(*s))
- *s = '_';
- }
- *s = 0;
- return initializer;
-}
-
-/* dump C initializers for the terminal type */
-static void
-dump_initializers(TERMTYPE * term)
-{
- int n;
- const char *str = 0;
- int size;
-
- (void) printf("static char %s[] = %s\n", name_initializer("bool"), L_CURL);
-
- for_each_boolean(n, term) {
- switch ((int) (term->Booleans[n])) {
- case TRUE:
- str = "TRUE";
- break;
-
- case FALSE:
- str = "FALSE";
- break;
-
- case ABSENT_BOOLEAN:
- str = "ABSENT_BOOLEAN";
- break;
-
- case CANCELLED_BOOLEAN:
- str = "CANCELLED_BOOLEAN";
- break;
- }
- (void) printf("\t/* %3d: %-8s */\t%s,\n",
- n, ExtBoolname(term, n, boolnames), str);
- }
- (void) printf("%s;\n", R_CURL);
-
- (void) printf("static short %s[] = %s\n", name_initializer("number"), L_CURL);
-
- for_each_number(n, term) {
- char buf[BUFSIZ];
- switch (term->Numbers[n]) {
- case ABSENT_NUMERIC:
- str = "ABSENT_NUMERIC";
- break;
- case CANCELLED_NUMERIC:
- str = "CANCELLED_NUMERIC";
- break;
- default:
- sprintf(buf, "%d", term->Numbers[n]);
- str = buf;
- break;
- }
- (void) printf("\t/* %3d: %-8s */\t%s,\n", n,
- ExtNumname(term, n, numnames), str);
- }
- (void) printf("%s;\n", R_CURL);
-
- size = sizeof(TERMTYPE)
- + (NUM_BOOLEANS(term) * sizeof(term->Booleans[0]))
- + (NUM_NUMBERS(term) * sizeof(term->Numbers[0]));
-
- (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 {
- 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;
- }
-#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);
-}
-
-/* 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\t(char *)0,\t/* pointer to string table */\n");
-
- (void) printf("\t\t%s,\n", name_initializer("bool"));
- (void) printf("\t\t%s,\n", name_initializer("number"));
-
- (void) printf("\t\t%s,\n", name_initializer("string"));
-
-#if NCURSES_XNAMES
- (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)
- ? name_initializer("string_ext")
- : "(char **)0");
-
- (void) printf("\t\t%d,\t\t/* count total Booleans */\n", NUM_BOOLEANS(term));
- (void) printf("\t\t%d,\t\t/* count total Numbers */\n", NUM_NUMBERS(term));
- (void) printf("\t\t%d,\t\t/* count total Strings */\n", NUM_STRINGS(term));
-
- (void) printf("\t\t%d,\t\t/* count extensions to Booleans */\n",
- NUM_BOOLEANS(term) - BOOLCOUNT);
- (void) printf("\t\t%d,\t\t/* count extensions to Numbers */\n",
- NUM_NUMBERS(term) - NUMCOUNT);
- (void) printf("\t\t%d,\t\t/* count extensions to Strings */\n",
- NUM_STRINGS(term) - STRCOUNT);
-
- (void) printf("#endif /* NCURSES_XNAMES */\n");
-#endif /* NCURSES_XNAMES */
- (void) printf("\t%s\n", R_CURL);
-}
-
-static int
-optarg_to_number(void)
-{
- char *temp = 0;
- long value = strtol(optarg, &temp, 0);
-
- if (temp == 0 || temp == optarg || *temp != 0) {
- fprintf(stderr, "Expected a number, not \"%s\"\n", optarg);
- exit(EXIT_FAILURE);
- }
- return (int) value;
-}
-
-/***************************************************************************
- *
- * Main sequence
- *
- ***************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
- char *terminal, *firstdir, *restdir;
- /* Avoid "local data >32k" error with mwcc */
- /* Also avoid overflowing smaller stacks on systems like AmigaOS */
- path *tfile = (path *) malloc(sizeof(path) * MAXTERMS);
- int c, i, len;
- bool formatted = FALSE;
- bool filecompare = FALSE;
- int initdump = 0;
- bool init_analyze = FALSE;
-
- if ((terminal = getenv("TERM")) == 0) {
- (void) fprintf(stderr,
- "infocmp: environment variable TERM not set\n");
- return EXIT_FAILURE;
- }
-
- /* 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)
- switch (c) {
-#if NCURSES_XNAMES
- case 'a':
- _nc_disable_period = TRUE;
- use_extended_names(TRUE);
- break;
-#endif
- case 'd':
- compare = C_DIFFERENCE;
- break;
-
- case 'e':
- initdump |= 1;
- break;
-
- case 'E':
- initdump |= 2;
- break;
-
- case 'c':
- compare = C_COMMON;
- break;
-
- case 'C':
- outform = F_TERMCAP;
- tversion = "BSD";
- if (sortmode == S_DEFAULT)
- sortmode = S_TERMCAP;
- break;
-
- case 'f':
- formatted = TRUE;
- break;
-
- case 'G':
- numbers = 1;
- break;
-
- case 'g':
- numbers = -1;
- break;
-
- case 'F':
- filecompare = TRUE;
- break;
-
- case 'I':
- outform = F_TERMINFO;
- if (sortmode == S_DEFAULT)
- sortmode = S_VARIABLE;
- tversion = 0;
- break;
-
- case 'i':
- init_analyze = TRUE;
- break;
-
- case 'l':
- outform = F_TERMINFO;
- break;
-
- case 'L':
- outform = F_VARIABLE;
- if (sortmode == S_DEFAULT)
- sortmode = S_VARIABLE;
- break;
-
- case 'n':
- compare = C_NAND;
- break;
-
- case 'p':
- ignorepads = TRUE;
- break;
-
- case 'q':
- quiet = TRUE;
- s_absent = "-";
- s_cancel = "@";
- bool_sep = ", ";
- break;
-
- case 'r':
- tversion = 0;
- limited = FALSE;
- break;
-
- case 'R':
- tversion = optarg;
- break;
-
- case 's':
- if (*optarg == 'd')
- sortmode = S_NOSORT;
- else if (*optarg == 'i')
- sortmode = S_TERMINFO;
- else if (*optarg == 'l')
- sortmode = S_VARIABLE;
- else if (*optarg == 'c')
- sortmode = S_TERMCAP;
- else {
- (void) fprintf(stderr,
- "infocmp: unknown sort mode\n");
- return EXIT_FAILURE;
- }
- break;
-
- case 'u':
- compare = C_USEALL;
- 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 'A':
- firstdir = optarg;
- break;
-
- case 'B':
- restdir = optarg;
- break;
-
- case '1':
- mwidth = 0;
- break;
-
- case 'T':
- limited = FALSE;
- break;
- default:
- usage();
- }
-
- /* by default, sort by terminfo name */
- if (sortmode == S_DEFAULT)
- sortmode = S_TERMINFO;
-
- /* set up for display */
- dump_init(tversion, outform, sortmode, mwidth, itrace, formatted);
-
- /* make sure we have at least one terminal name to work with */
- if (optind >= argc)
- argv[argc++] = terminal;
-
- /* if user is after a comparison, make sure we have two entries */
- if (compare != C_DEFAULT && optind >= argc - 1)
- argv[argc++] = terminal;
-
- /* exactly two terminal names with no options means do -d */
- if (argc - optind == 2 && compare == C_DEFAULT)
- compare = C_DIFFERENCE;
-
- if (!filecompare) {
- /* grab the entries */
- termcount = 0;
- for (; optind < argc; optind++) {
- if (termcount >= MAXTERMS) {
- (void) fprintf(stderr,
- "infocmp: too many terminal type arguments\n");
- return EXIT_FAILURE;
- } else {
- const char *directory = termcount ? restdir : firstdir;
- int status;
-
- tname[termcount] = argv[optind];
-
- if (directory) {
- (void) sprintf(tfile[termcount], "%s/%c/%s",
- directory,
- *argv[optind], argv[optind]);
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: reading entry %s from file %s\n",
- argv[optind], tfile[termcount]);
-
- status = _nc_read_file_entry(tfile[termcount],
- &entries[termcount].tterm);
- } else {
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: reading entry %s from system directories %s\n",
- argv[optind], tname[termcount]);
-
- status = _nc_read_entry(tname[termcount],
- tfile[termcount],
- &entries[termcount].tterm);
- directory = TERMINFO; /* for error message */
- }
-
- if (status <= 0) {
- (void) fprintf(stderr,
- "infocmp: couldn't open terminfo file %s.\n",
- tfile[termcount]);
- return EXIT_FAILURE;
- }
- repair_acsc(&entries[termcount].tterm);
- termcount++;
- }
- }
-
-#if NCURSES_XNAMES
- if (termcount > 1)
- _nc_align_termtype(&entries[0].tterm, &entries[1].tterm);
-#endif
-
- /* dump as C initializer for the terminal type */
- if (initdump) {
- if (initdump & 1)
- dump_termtype(&entries[0].tterm);
- if (initdump & 2)
- dump_initializers(&entries[0].tterm);
- ExitProgram(EXIT_SUCCESS);
- }
-
- /* analyze the init strings */
- if (init_analyze) {
-#undef CUR
-#define CUR entries[0].tterm.
- analyze_string("is1", init_1string, &entries[0].tterm);
- analyze_string("is2", init_2string, &entries[0].tterm);
- analyze_string("is3", init_3string, &entries[0].tterm);
- analyze_string("rs1", reset_1string, &entries[0].tterm);
- analyze_string("rs2", reset_2string, &entries[0].tterm);
- analyze_string("rs3", reset_3string, &entries[0].tterm);
- analyze_string("smcup", enter_ca_mode, &entries[0].tterm);
- analyze_string("rmcup", exit_ca_mode, &entries[0].tterm);
-#undef CUR
- ExitProgram(EXIT_SUCCESS);
- }
-
- /*
- * Here's where the real work gets done
- */
- switch (compare) {
- case C_DEFAULT:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: about to dump %s\n",
- tname[0]);
- (void) printf("#\tReconstructed via infocmp from file: %s\n",
- tfile[0]);
- len = dump_entry(&entries[0].tterm, limited, numbers, NULL);
- putchar('\n');
- if (itrace)
- (void) fprintf(stderr, "infocmp: length %d\n", len);
- break;
-
- case C_DIFFERENCE:
- if (itrace)
- (void) fprintf(stderr, "infocmp: dumping differences\n");
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_COMMON:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping common capabilities\n");
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_NAND:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping differences\n");
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_USEALL:
- if (itrace)
- (void) fprintf(stderr, "infocmp: dumping use entry\n");
- len = dump_entry(&entries[0].tterm, limited, numbers, use_predicate);
- for (i = 1; i < termcount; i++)
- len += dump_uses(tname[i], !(outform == F_TERMCAP || outform
- == F_TCONVERR));
- putchar('\n');
- if (itrace)
- (void) fprintf(stderr, "infocmp: length %d\n", len);
- break;
- }
- } else if (compare == C_USEALL)
- (void) fprintf(stderr, "Sorry, -u doesn't work with -F\n");
- else if (compare == C_DEFAULT)
- (void) fprintf(stderr, "Use `tic -[CI] <file>' for this.\n");
- else if (argc - optind != 2)
- (void) fprintf(stderr,
- "File comparison needs exactly two file arguments.\n");
- else
- file_comparison(argc - optind, argv + optind);
-
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* infocmp.c ends here */
diff --git a/ncurses-5.2/progs/modules b/ncurses-5.2/progs/modules
deleted file mode 100644
index 720c8b8..0000000
--- a/ncurses-5.2/progs/modules
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id$
-# Program modules (some are in ncurses lib!)
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
-#
-
-@ base
-clear progs $(srcdir) ../include/term.h
-tic progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-toe progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-dump_entry progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
-infocmp progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-tput progs $(srcdir) ../include/term.h
-tset progs $(srcdir) ../include/term.h
diff --git a/ncurses-5.2/progs/progs.priv.h b/ncurses-5.2/progs/progs.priv.h
deleted file mode 100644
index 30b9f76..0000000
--- a/ncurses-5.2/progs/progs.priv.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997,1998 *
- ****************************************************************************/
-/*
- * $Id$
- *
- * progs.priv.h
- *
- * Header file for curses utility programs
- */
-
-#include <ncurses_cfg.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#else
-# if HAVE_LIBC_H
-# include <libc.h>
-# endif
-#endif
-
-#if HAVE_SYS_BSDTYPES_H
-#include <sys/bsdtypes.h> /* needed for ISC */
-#endif
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-
-#include <errno.h>
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-#if HAVE_GETOPT_H
-#include <getopt.h>
-#else
-/* 'getopt()' may be prototyped in <stdlib.h>, but declaring its
- * variables doesn't hurt.
- */
-extern char *optarg;
-extern int optind;
-#endif /* HAVE_GETOPT_H */
-
-#include <curses.h>
-#include <term_entry.h>
-#include <tic.h>
-#include <nc_alloc.h>
-
-/* usually in <unistd.h> */
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-#ifndef R_OK
-#define R_OK 4 /* Test for readable. */
-#endif
-
-#ifndef W_OK
-#define W_OK 2 /* Test for writable. */
-#endif
-
-#ifndef X_OK
-#define X_OK 1 /* Test for executable. */
-#endif
-
-#ifndef F_OK
-#define F_OK 0 /* Test for existence. */
-#endif
-
-/* usually in <unistd.h> */
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-/* may be in limits.h, included from various places */
-#ifndef PATH_MAX
-# if defined(_POSIX_PATH_MAX)
-# define PATH_MAX _POSIX_PATH_MAX
-# elif defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 255 /* the Posix minimum pathsize */
-# endif
-#endif
-
-/* We use isascii only to guard against use of 7-bit ctype tables in the
- * isprint test in infocmp.
- */
-#if !HAVE_ISASCII
-# undef isascii
-# if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127)
-# define isascii(c) (((c) & 0xff) <= 127)
-# else
-# define isascii(c) 1 /* not really ascii anyway */
-# endif
-#endif
-
-#define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
diff --git a/ncurses-5.2/progs/tic.c b/ncurses-5.2/progs/tic.c
deleted file mode 100644
index 0ede8fc..0000000
--- a/ncurses-5.2/progs/tic.c
+++ /dev/null
@@ -1,1068 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * tic.c --- Main program for terminfo compiler
- * by Eric S. Raymond
- *
- */
-
-#include <progs.priv.h>
-#include <sys/stat.h>
-
-#include <dump_entry.h>
-#include <term_entry.h>
-#include <transform.h>
-
-MODULE_ID("$Id$")
-
-const char *_nc_progname = "tic";
-
-static FILE *log_fp;
-static FILE *tmp_fp;
-static bool showsummary = FALSE;
-static const char *to_remove;
-
-static void (*save_check_termtype) (TERMTYPE *);
-static void check_termtype(TERMTYPE * tt);
-
-static const char usage_string[] = "[-V] [-v[n]] [-e names] [-CILNRTcfrswx1] source-file\n";
-
-static void
-cleanup(void)
-{
- if (tmp_fp != 0)
- fclose(tmp_fp);
- if (to_remove != 0) {
-#if HAVE_REMOVE
- remove(to_remove);
-#else
- unlink(to_remove);
-#endif
- }
-}
-
-static void
-failed(const char *msg)
-{
- perror(msg);
- cleanup();
- exit(EXIT_FAILURE);
-}
-
-static void
-usage(void)
-{
- static const char *const tbl[] =
- {
- "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
- " -c check only, validate input without compiling or translating",
- " -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",
- " -o<dir> set output directory for compiled entry writes",
- " -r force resolution of all use entries in source translation",
- " -s print summary statistics",
- " -v[n] set verbosity level",
- " -w[n] set format width for translation output",
-#if NCURSES_XNAMES
- " -x treat unknown capabilities as user-defined",
-#endif
- "",
- "Parameters:",
- " <file> file to translate or compile"
- };
- size_t j;
-
- fprintf(stderr, "Usage: %s %s\n", _nc_progname, usage_string);
- for (j = 0; j < SIZEOF(tbl); j++) {
- fputs(tbl[j], stderr);
- putc('\n', stderr);
- }
- exit(EXIT_FAILURE);
-}
-
-#define L_BRACE '{'
-#define R_BRACE '}'
-#define S_QUOTE '\'';
-
-static void
-write_it(ENTRY * ep)
-{
- unsigned n;
- int ch;
- char *s, *d, *t;
- char result[MAX_ENTRY_SIZE];
-
- /*
- * Look for strings that contain %{number}, convert them to %'char',
- * which is shorter and runs a little faster.
- */
- for (n = 0; n < STRCOUNT; n++) {
- s = ep->tterm.Strings[n];
- if (VALID_STRING(s)
- && strchr(s, L_BRACE) != 0) {
- d = result;
- t = s;
- while ((ch = *t++) != 0) {
- *d++ = ch;
- if (ch == '\\') {
- *d++ = *t++;
- } else if ((ch == '%')
- && (*t == L_BRACE)) {
- char *v = 0;
- long value = strtol(t + 1, &v, 0);
- if (v != 0
- && *v == R_BRACE
- && value > 0
- && value != '\\' /* FIXME */
- && value < 127
- && isprint((int) value)) {
- *d++ = S_QUOTE;
- *d++ = (int) value;
- *d++ = S_QUOTE;
- t = (v + 1);
- }
- }
- }
- *d = 0;
- if (strlen(result) < strlen(s))
- strcpy(s, result);
- }
- }
-
- _nc_set_type(_nc_first_name(ep->tterm.term_names));
- _nc_curr_line = ep->startline;
- _nc_write_entry(&ep->tterm);
-}
-
-static bool
-immedhook(ENTRY * ep GCC_UNUSED)
-/* write out entries with no use capabilities immediately to save storage */
-{
-#if !HAVE_BIG_CORE
- /*
- * This is strictly a core-economy kluge. The really clean way to handle
- * compilation is to slurp the whole file into core and then do all the
- * name-collision checks and entry writes in one swell foop. But the
- * terminfo master file is large enough that some core-poor systems swap
- * like crazy when you compile it this way...there have been reports of
- * this process taking *three hours*, rather than the twenty seconds or
- * less typical on my development box.
- *
- * So. This hook *immediately* writes out the referenced entry if it
- * has no use capabilities. The compiler main loop refrains from
- * adding the entry to the in-core list when this hook fires. If some
- * other entry later needs to reference an entry that got written
- * immediately, that's OK; the resolution code will fetch it off disk
- * when it can't find it in core.
- *
- * Name collisions will still be detected, just not as cleanly. The
- * write_entry() code complains before overwriting an entry that
- * postdates the time of tic's first call to write_entry(). Thus
- * it will complain about overwriting entries newly made during the
- * tic run, but not about overwriting ones that predate it.
- *
- * The reason this is a hook, and not in line with the rest of the
- * compiler code, is that the support for termcap fallback cannot assume
- * it has anywhere to spool out these entries!
- *
- * The _nc_set_type() call here requires a compensating one in
- * _nc_parse_entry().
- *
- * If you define HAVE_BIG_CORE, you'll disable this kluge. This will
- * make tic a bit faster (because the resolution code won't have to do
- * disk I/O nearly as often).
- */
- if (ep->nuses == 0) {
- int oldline = _nc_curr_line;
-
- write_it(ep);
- _nc_curr_line = oldline;
- free(ep->tterm.str_table);
- return (TRUE);
- }
-#endif /* HAVE_BIG_CORE */
- return (FALSE);
-}
-
-static void
-put_translate(int c)
-/* emit a comment char, translating terminfo names to termcap names */
-{
- static bool in_name = FALSE;
- static size_t have, used;
- static char *namebuf, *suffix;
-
- if (in_name) {
- if (used + 1 >= have) {
- have += 132;
- namebuf = typeRealloc(char, have, namebuf);
- suffix = typeRealloc(char, have, suffix);
- }
- if (c == '\n' || c == '@') {
- namebuf[used++] = '\0';
- (void) putchar('<');
- (void) fputs(namebuf, stdout);
- putchar(c);
- in_name = FALSE;
- } else if (c != '>') {
- namebuf[used++] = c;
- } else { /* ah! candidate name! */
- char *up;
- NCURSES_CONST char *tp;
-
- namebuf[used++] = '\0';
- in_name = FALSE;
-
- suffix[0] = '\0';
- if ((up = strchr(namebuf, '#')) != 0
- || (up = strchr(namebuf, '=')) != 0
- || ((up = strchr(namebuf, '@')) != 0 && up[1] == '>')) {
- (void) strcpy(suffix, up);
- *up = '\0';
- }
-
- if ((tp = nametrans(namebuf)) != 0) {
- (void) putchar(':');
- (void) fputs(tp, stdout);
- (void) fputs(suffix, stdout);
- (void) putchar(':');
- } else {
- /* couldn't find a translation, just dump the name */
- (void) putchar('<');
- (void) fputs(namebuf, stdout);
- (void) fputs(suffix, stdout);
- (void) putchar('>');
- }
- }
- } else {
- used = 0;
- if (c == '<') {
- in_name = TRUE;
- } else {
- putchar(c);
- }
- }
-}
-
-/* Returns a string, stripped of leading/trailing whitespace */
-static char *
-stripped(char *src)
-{
- while (isspace(*src))
- src++;
- if (*src != '\0') {
- char *dst = strcpy(malloc(strlen(src) + 1), src);
- size_t len = strlen(dst);
- while (--len != 0 && isspace(dst[len]))
- dst[len] = '\0';
- return dst;
- }
- return 0;
-}
-
-static FILE *
-open_input(const char *filename)
-{
- FILE *fp = fopen(filename, "r");
- struct stat sb;
-
- if (fp == 0) {
- fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename);
- exit(EXIT_FAILURE);
- }
- if (fstat(fileno(fp), &sb) < 0
- || (sb.st_mode & S_IFMT) != S_IFREG) {
- fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
- exit(EXIT_FAILURE);
- }
- return fp;
-}
-
-/* Parse the "-e" option-value into a list of names */
-static const char **
-make_namelist(char *src)
-{
- const char **dst = 0;
-
- char *s, *base;
- unsigned pass, n, nn;
- char buffer[BUFSIZ];
-
- if (src == 0) {
- /* EMPTY */ ;
- } else if (strchr(src, '/') != 0) { /* a filename */
- FILE *fp = open_input(src);
-
- for (pass = 1; pass <= 2; pass++) {
- nn = 0;
- while (fgets(buffer, sizeof(buffer), fp) != 0) {
- if ((s = stripped(buffer)) != 0) {
- if (dst != 0)
- dst[nn] = s;
- nn++;
- }
- }
- if (pass == 1) {
- dst = typeCalloc(const char *, nn + 1);
- rewind(fp);
- }
- }
- fclose(fp);
- } else { /* literal list of names */
- for (pass = 1; pass <= 2; pass++) {
- for (n = nn = 0, base = src;; n++) {
- int mark = src[n];
- if (mark == ',' || mark == '\0') {
- if (pass == 1) {
- nn++;
- } else {
- src[n] = '\0';
- if ((s = stripped(base)) != 0)
- dst[nn++] = s;
- base = &src[n + 1];
- }
- }
- if (mark == '\0')
- break;
- }
- if (pass == 1)
- dst = typeCalloc(const char *, nn + 1);
- }
- }
- if (showsummary) {
- fprintf(log_fp, "Entries that will be compiled:\n");
- for (n = 0; dst[n] != 0; n++)
- fprintf(log_fp, "%d:%s\n", n + 1, dst[n]);
- }
- return dst;
-}
-
-static bool
-matches(const char **needle, const char *haystack)
-/* does entry in needle list match |-separated field in haystack? */
-{
- bool code = FALSE;
- size_t n;
-
- if (needle != 0) {
- for (n = 0; needle[n] != 0; n++) {
- if (_nc_name_match(haystack, needle[n], "|")) {
- code = TRUE;
- break;
- }
- }
- } else
- code = TRUE;
- return (code);
-}
-
-static FILE *
-open_tempfile(char *name)
-{
- FILE *result = 0;
-#if HAVE_MKSTEMP
- int fd = mkstemp(name);
- if (fd >= 0)
- result = fdopen(fd, "w");
-#else
- if (tmpnam(name) != 0)
- result = fopen(name, "w");
-#endif
- return result;
-}
-
-int
-main(int argc, char *argv[])
-{
- char my_tmpname[PATH_MAX];
- int v_opt = -1, debug_level;
- int smart_defaults = TRUE;
- char *termcap;
- ENTRY *qp;
-
- int this_opt, last_opt = '?';
-
- int outform = F_TERMINFO; /* output format */
- int sortmode = S_TERMINFO; /* sort_mode */
-
- int width = 60;
- bool formatted = FALSE; /* reformat complex strings? */
- int numbers = 0; /* format "%'char'" to/from "%{number}" */
- bool infodump = FALSE; /* running as captoinfo? */
- bool capdump = FALSE; /* running as infotocap? */
- bool forceresolve = FALSE; /* force resolution */
- bool limited = TRUE;
- char *tversion = (char *) NULL;
- const char *source_file = "terminfo";
- const char **namelst = 0;
- char *outdir = (char *) NULL;
- bool check_only = FALSE;
-
- log_fp = stderr;
-
- _nc_progname = _nc_basename(argv[0]);
-
- if ((infodump = (strcmp(_nc_progname, PROG_CAPTOINFO) == 0)) != FALSE) {
- outform = F_TERMINFO;
- sortmode = S_TERMINFO;
- }
- if ((capdump = (strcmp(_nc_progname, PROG_INFOTOCAP) == 0)) != FALSE) {
- outform = F_TERMCAP;
- sortmode = S_TERMCAP;
- }
-#if NCURSES_XNAMES
- use_extended_names(FALSE);
-#endif
-
- /*
- * Processing arguments is a little complicated, since someone made a
- * design decision to allow the numeric values for -w, -v options to
- * be optional.
- */
- while ((this_opt = getopt(argc, argv,
- "0123456789CILNR:TVace:fGgo:rsvwx")) != EOF) {
- if (isdigit(this_opt)) {
- switch (last_opt) {
- case 'v':
- v_opt = (v_opt * 10) + (this_opt - '0');
- break;
- case 'w':
- width = (width * 10) + (this_opt - '0');
- break;
- default:
- if (this_opt != '1')
- usage();
- last_opt = this_opt;
- width = 0;
- }
- continue;
- }
- switch (this_opt) {
- case 'C':
- capdump = TRUE;
- outform = F_TERMCAP;
- sortmode = S_TERMCAP;
- break;
- case 'I':
- infodump = TRUE;
- outform = F_TERMINFO;
- sortmode = S_TERMINFO;
- break;
- case 'L':
- infodump = TRUE;
- outform = F_VARIABLE;
- sortmode = S_VARIABLE;
- break;
- case 'N':
- smart_defaults = FALSE;
- break;
- case 'R':
- tversion = optarg;
- break;
- case 'T':
- limited = FALSE;
- break;
- case 'V':
- puts(curses_version());
- return EXIT_SUCCESS;
- case 'c':
- check_only = TRUE;
- break;
- case 'e':
- namelst = make_namelist(optarg);
- break;
- case 'f':
- formatted = TRUE;
- break;
- case 'G':
- numbers = 1;
- break;
- case 'g':
- numbers = -1;
- break;
- case 'o':
- outdir = optarg;
- break;
- case 'r':
- forceresolve = TRUE;
- break;
- case 's':
- showsummary = TRUE;
- break;
- case 'v':
- v_opt = 0;
- break;
- case 'w':
- width = 0;
- break;
-#if NCURSES_XNAMES
- case 'a':
- _nc_disable_period = TRUE;
- /* FALLTHRU */
- case 'x':
- use_extended_names(TRUE);
- break;
-#endif
- default:
- usage();
- }
- last_opt = this_opt;
- }
-
- debug_level = (v_opt > 0) ? v_opt : (v_opt == 0);
- set_trace_level(debug_level);
-
- if (_nc_tracing) {
- save_check_termtype = _nc_check_termtype;
- _nc_check_termtype = check_termtype;
- }
-#if !HAVE_BIG_CORE
- /*
- * Aaargh! immedhook seriously hoses us!
- *
- * One problem with immedhook is it means we can't do -e. Problem
- * is that we can't guarantee that for each terminal listed, all the
- * terminals it depends on will have been kept in core for reference
- * resolution -- in fact it's certain the primitive types at the end
- * of reference chains *won't* be in core unless they were explicitly
- * in the select list themselves.
- */
- if (namelst && (!infodump && !capdump)) {
- (void) fprintf(stderr,
- "Sorry, -e can't be used without -I or -C\n");
- cleanup();
- return EXIT_FAILURE;
- }
-#endif /* HAVE_BIG_CORE */
-
- if (optind < argc) {
- source_file = argv[optind++];
- if (optind < argc) {
- fprintf(stderr,
- "%s: Too many file names. Usage:\n\t%s %s",
- _nc_progname,
- _nc_progname,
- usage_string);
- return EXIT_FAILURE;
- }
- } else {
- if (infodump == TRUE) {
- /* captoinfo's no-argument case */
- source_file = "/etc/termcap";
- if ((termcap = getenv("TERMCAP")) != 0
- && (namelst = make_namelist(getenv("TERM"))) != 0) {
- if (access(termcap, F_OK) == 0) {
- /* file exists */
- source_file = termcap;
- } else if ((tmp_fp = open_tempfile(strcpy(my_tmpname,
- "/tmp/XXXXXX")))
- != 0) {
- source_file = my_tmpname;
- fprintf(tmp_fp, "%s\n", termcap);
- fclose(tmp_fp);
- tmp_fp = open_input(source_file);
- to_remove = source_file;
- } else {
- failed("tmpnam");
- }
- }
- } else {
- /* tic */
- fprintf(stderr,
- "%s: File name needed. Usage:\n\t%s %s",
- _nc_progname,
- _nc_progname,
- usage_string);
- cleanup();
- return EXIT_FAILURE;
- }
- }
-
- if (tmp_fp == 0)
- tmp_fp = open_input(source_file);
-
- if (infodump)
- dump_init(tversion,
- smart_defaults
- ? outform
- : F_LITERAL,
- sortmode, width, debug_level, formatted);
- else if (capdump)
- dump_init(tversion,
- outform,
- sortmode, width, debug_level, FALSE);
-
- /* parse entries out of the source file */
- _nc_set_source(source_file);
-#if !HAVE_BIG_CORE
- if (!(check_only || infodump || capdump))
- _nc_set_writedir(outdir);
-#endif /* HAVE_BIG_CORE */
- _nc_read_entry_source(tmp_fp, (char *) NULL,
- !smart_defaults, FALSE,
- (check_only || infodump || capdump) ? NULLHOOK : immedhook);
-
- /* do use resolution */
- if (check_only || (!infodump && !capdump) || forceresolve) {
- if (!_nc_resolve_uses(TRUE) && !check_only) {
- cleanup();
- return EXIT_FAILURE;
- }
- }
-
- /* length check */
- 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);
-
- if (len > (infodump ? MAX_TERMINFO_LENGTH : MAX_TERMCAP_LENGTH))
- (void) fprintf(stderr,
- "warning: resolved %s entry is %d bytes long\n",
- _nc_first_name(qp->tterm.term_names),
- len);
- }
- }
- }
-
- /* write or dump all entries */
- if (!check_only) {
- if (!infodump && !capdump) {
- _nc_set_writedir(outdir);
- for_entry_list(qp) {
- if (matches(namelst, qp->tterm.term_names))
- write_it(qp);
- }
- } else {
- /* this is in case infotocap() generates warnings */
- _nc_curr_col = _nc_curr_line = -1;
-
- for_entry_list(qp) {
- if (matches(namelst, qp->tterm.term_names)) {
- int j = qp->cend - qp->cstart;
- int len = 0;
-
- /* this is in case infotocap() generates warnings */
- _nc_set_type(_nc_first_name(qp->tterm.term_names));
-
- (void) fseek(tmp_fp, qp->cstart, SEEK_SET);
- while (j--) {
- if (infodump)
- (void) putchar(fgetc(tmp_fp));
- else
- put_translate(fgetc(tmp_fp));
- }
-
- len = dump_entry(&qp->tterm, limited, numbers, NULL);
- for (j = 0; j < qp->nuses; j++)
- len += dump_uses(qp->uses[j].name, !capdump);
- (void) putchar('\n');
- if (debug_level != 0 && !limited)
- printf("# length=%d\n", len);
- }
- }
- if (!namelst) {
- int c, oldc = '\0';
- bool in_comment = FALSE;
- bool trailing_comment = FALSE;
-
- (void) fseek(tmp_fp, _nc_tail->cend, SEEK_SET);
- while ((c = fgetc(tmp_fp)) != EOF) {
- if (oldc == '\n') {
- if (c == '#') {
- trailing_comment = TRUE;
- in_comment = TRUE;
- } else {
- in_comment = FALSE;
- }
- }
- if (trailing_comment
- && (in_comment || (oldc == '\n' && c == '\n')))
- putchar(c);
- oldc = c;
- }
- }
- }
- }
-
- /* Show the directory into which entries were written, and the total
- * number of entries
- */
- if (showsummary
- && (!(check_only || infodump || capdump))) {
- int total = _nc_tic_written();
- if (total != 0)
- fprintf(log_fp, "%d entries written to %s\n",
- total,
- _nc_tic_dir((char *) 0));
- else
- fprintf(log_fp, "No entries written\n");
- }
- cleanup();
- return (EXIT_SUCCESS);
-}
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed (see comp_parse.c).
- */
-
-TERMINAL *cur_term; /* tweak to avoid linking lib_cur_term.c */
-
-#undef CUR
-#define CUR tp->
-
-/*
- * Returns the expected number of parameters for the given capability.
- */
-static int
-expected_params(char *name)
-{
- /* *INDENT-OFF* */
- static const struct {
- const char *name;
- int count;
- } table[] = {
- { "birep", 2 },
- { "chr", 1 },
- { "colornm", 1 },
- { "cpi", 1 },
- { "csnm", 1 },
- { "csr", 2 },
- { "cub", 1 },
- { "cud", 1 },
- { "cuf", 1 },
- { "cup", 2 },
- { "cuu", 1 },
- { "cvr", 1 },
- { "cwin", 5 },
- { "dch", 1 },
- { "defc", 3 },
- { "dial", 1 },
- { "dispc", 1 },
- { "dl", 1 },
- { "ech", 1 },
- { "getm", 1 },
- { "hpa", 1 },
- { "ich", 1 },
- { "il", 1 },
- { "indn", 1 },
- { "initc", 4 },
- { "initp", 7 },
- { "lpi", 1 },
- { "mc5p", 1 },
- { "mrcup", 2 },
- { "mvpa", 1 },
- { "pfkey", 2 },
- { "pfloc", 2 },
- { "pfx", 2 },
- { "pfxl", 3 },
- { "pln", 2 },
- { "qdial", 1 },
- { "rcsd", 1 },
- { "rep", 2 },
- { "rin", 1 },
- { "sclk", 3 },
- { "scp", 1 },
- { "scs", 1 },
- { "scsd", 2 },
- { "setab", 1 },
- { "setaf", 1 },
- { "setb", 1 },
- { "setcolor", 1 },
- { "setf", 1 },
- { "sgr", 9 },
- { "sgr1", 6 },
- { "slength", 1 },
- { "slines", 1 },
- { "smgbp", 2 },
- { "smglp", 2 },
- { "smglr", 2 },
- { "smgrp", 1 },
- { "smgtb", 2 },
- { "smgtp", 1 },
- { "tsl", 1 },
- { "u6", -1 },
- { "vpa", 1 },
- { "wind", 4 },
- { "wingo", 1 },
- };
- /* *INDENT-ON* */
-
- unsigned n;
- int result = 0; /* function-keys, etc., use none */
-
- for (n = 0; n < SIZEOF(table); n++) {
- if (!strcmp(name, table[n].name)) {
- result = table[n].count;
- break;
- }
- }
-
- return result;
-}
-
-/*
- * Make a quick sanity check for the parameters which are used in the given
- * strings. If there are no "%p" tokens, then there should be no other "%"
- * markers.
- */
-static void
-check_params(TERMTYPE * tp, char *name, char *value)
-{
- int expected = expected_params(name);
- int actual = 0;
- int n;
- bool params[10];
- char *s = value;
-
- for (n = 0; n < 10; n++)
- params[n] = FALSE;
-
- while (*s != 0) {
- if (*s == '%') {
- if (*++s == '\0') {
- _nc_warning("expected character after %% in %s", name);
- break;
- } else if (*s == 'p') {
- if (*++s == '\0' || !isdigit((int) *s)) {
- _nc_warning("expected digit after %%p in %s", name);
- return;
- } else {
- n = (*s - '0');
- if (n > actual)
- actual = n;
- params[n] = TRUE;
- }
- }
- }
- s++;
- }
-
- if (params[0]) {
- _nc_warning("%s refers to parameter 0 (%%p0), which is not allowed", name);
- }
- if (value == set_attributes || expected < 0) {
- ;
- } else if (expected != actual) {
- _nc_warning("%s uses %d parameters, expected %d", name,
- actual, expected);
- for (n = 1; n < actual; n++) {
- if (!params[n])
- _nc_warning("%s omits parameter %d", name, n);
- }
- }
-}
-
-/*
- * An sgr string may contain several settings other than the one we're
- * interested in, essentially sgr0 + rmacs + whatever. As long as the
- * "whatever" is contained in the sgr string, that is close enough for our
- * sanity check.
- */
-static bool
-similar_sgr(char *a, char *b)
-{
- while (*b != 0) {
- while (*a != *b) {
- if (*a == 0)
- return FALSE;
- a++;
- }
- a++;
- b++;
- }
- return TRUE;
-}
-
-static void
-check_sgr(TERMTYPE * tp, char *zero, int num, char *cap, const char *name)
-{
- char *test = tparm(set_attributes,
- num == 1,
- num == 2,
- num == 3,
- num == 4,
- num == 5,
- num == 6,
- num == 7,
- num == 8,
- num == 9);
- if (test != 0) {
- if (PRESENT(cap)) {
- if (!similar_sgr(test, cap)) {
- _nc_warning("%s differs from sgr(%d): %s", name, num,
- _nc_visbuf(test));
- }
- } else if (strcmp(test, zero)) {
- _nc_warning("sgr(%d) present, but not %s", num, name);
- }
- } else if (PRESENT(cap)) {
- _nc_warning("sgr(%d) missing, but %s present", num, name);
- }
-}
-
-#define CHECK_SGR(num,name) check_sgr(tp, zero, num, name, #name)
-
-/* other sanity-checks (things that we don't want in the normal
- * logic that reads a terminfo entry)
- */
-static void
-check_termtype(TERMTYPE * tp)
-{
- bool conflict = FALSE;
- unsigned j, k;
- char fkeys[STRCOUNT];
-
- /*
- * A terminal entry may contain more than one keycode assigned to
- * a given string (e.g., KEY_END and KEY_LL). But curses will only
- * return one (the last one assigned).
- */
- memset(fkeys, 0, sizeof(fkeys));
- for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
- char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
- bool first = TRUE;
- if (!VALID_STRING(a))
- continue;
- for (k = j + 1; _nc_tinfo_fkeys[k].code; k++) {
- char *b = tp->Strings[_nc_tinfo_fkeys[k].offset];
- if (!VALID_STRING(b)
- || fkeys[k])
- continue;
- if (!strcmp(a, b)) {
- fkeys[j] = 1;
- fkeys[k] = 1;
- if (first) {
- if (!conflict) {
- _nc_warning("Conflicting key definitions (using the last)");
- conflict = TRUE;
- }
- fprintf(stderr, "... %s is the same as %s",
- keyname(_nc_tinfo_fkeys[j].code),
- keyname(_nc_tinfo_fkeys[k].code));
- first = FALSE;
- } else {
- fprintf(stderr, ", %s",
- keyname(_nc_tinfo_fkeys[k].code));
- }
- }
- }
- if (!first)
- fprintf(stderr, "\n");
- }
-
- for (j = 0; j < NUM_STRINGS(tp); j++) {
- char *a = tp->Strings[j];
- if (VALID_STRING(a))
- check_params(tp, ExtStrname(tp, j, strnames), a);
- }
-
- /*
- * Quick check for color. We could also check if the ANSI versus
- * non-ANSI strings are misused.
- */
- if ((max_colors > 0) != (max_pairs > 0)
- || (max_colors > max_pairs))
- _nc_warning("inconsistent values for max_colors and max_pairs");
-
- PAIRED(set_foreground, set_background);
- PAIRED(set_a_foreground, set_a_background);
-
- /*
- * These may be mismatched because the terminal description relies on
- * restoring the cursor visibility by resetting it.
- */
- ANDMISSING(cursor_invisible, cursor_normal);
- ANDMISSING(cursor_visible, cursor_normal);
-
- if (PRESENT(cursor_visible) && PRESENT(cursor_normal)
- && !strcmp(cursor_visible, cursor_normal))
- _nc_warning("cursor_visible is same as cursor_normal");
-
- /*
- * From XSI & O'Reilly, we gather that sc/rc are required if csr is
- * given, because the cursor position after the scrolling operation is
- * performed is undefined.
- */
- ANDMISSING(change_scroll_region, save_cursor);
- ANDMISSING(change_scroll_region, restore_cursor);
-
- if (PRESENT(set_attributes)) {
- char *zero = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-
- zero = strdup(zero);
- CHECK_SGR(1, enter_standout_mode);
- CHECK_SGR(2, enter_underline_mode);
- CHECK_SGR(3, enter_reverse_mode);
- CHECK_SGR(4, enter_blink_mode);
- CHECK_SGR(5, enter_dim_mode);
- CHECK_SGR(6, enter_bold_mode);
- CHECK_SGR(7, enter_secure_mode);
- CHECK_SGR(8, enter_protected_mode);
- CHECK_SGR(9, enter_alt_charset_mode);
- free(zero);
- }
-
- /*
- * Some standard applications (e.g., vi) and some non-curses
- * applications (e.g., jove) get confused if we have both ich/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))
- && (PRESENT(insert_character) || PRESENT(parm_ich))) {
- _nc_warning("non-curses applications may be confused by ich/ich1 with smir/rmir");
- }
-
- /*
- * Finally, do the non-verbose checks
- */
- if (save_check_termtype != 0)
- save_check_termtype(tp);
-}
diff --git a/ncurses-5.2/progs/toe.c b/ncurses-5.2/progs/toe.c
deleted file mode 100644
index 550954f..0000000
--- a/ncurses-5.2/progs/toe.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * toe.c --- table of entries report generator
- *
- */
-
-#include <progs.priv.h>
-
-#include <sys/stat.h>
-
-#include <dump_entry.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
-
-const char *_nc_progname;
-
-static int typelist(int eargc, char *eargv[], bool,
- void (*)(const char *, TERMTYPE *));
-static void deschook(const char *, TERMTYPE *);
-
-#if NO_LEAKS
-#undef ExitProgram
-static void
-ExitProgram(int code) GCC_NORETURN;
- static void ExitProgram(int code)
-{
- _nc_free_entries(_nc_head);
- _nc_leaks_dump_entry();
- _nc_free_and_exit(code);
-}
-#endif
-
-static char *
-get_directory(char *path)
-{
- if (path != 0) {
- struct stat sb;
- if (stat(path, &sb) != 0
- || (sb.st_mode & S_IFMT) != S_IFDIR
- || access(path, R_OK | X_OK) != 0)
- path = 0;
- }
- return path;
-}
-
-int
-main(int argc, char *argv[])
-{
- bool direct_dependencies = FALSE;
- bool invert_dependencies = FALSE;
- bool header = FALSE;
- int i, c;
- int code;
-
- _nc_progname = _nc_basename(argv[0]);
-
- while ((c = getopt(argc, argv, "huv:UV")) != EOF)
- switch (c) {
- case 'h':
- header = TRUE;
- break;
- case 'u':
- direct_dependencies = TRUE;
- break;
- case 'v':
- set_trace_level(atoi(optarg));
- break;
- case 'U':
- invert_dependencies = TRUE;
- break;
- case 'V':
- puts(curses_version());
- ExitProgram(EXIT_SUCCESS);
- default:
- (void) fprintf(stderr, "usage: toe [-huUV] [-v n] [file...]\n");
- ExitProgram(EXIT_FAILURE);
- }
-
- if (direct_dependencies || invert_dependencies) {
- if (freopen(argv[optind], "r", stdin) == 0) {
- (void) fflush(stdout);
- fprintf(stderr, "%s: can't open %s\n", _nc_progname, argv[optind]);
- ExitProgram(EXIT_FAILURE);
- }
-
- /* parse entries out of the source file */
- _nc_set_source(argv[optind]);
- _nc_read_entry_source(stdin, 0, FALSE, FALSE, NULLHOOK);
- }
-
- /* maybe we want a direct-dependency listing? */
- if (direct_dependencies) {
- ENTRY *qp;
-
- for_entry_list(qp)
- if (qp->nuses) {
- 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');
- }
-
- ExitProgram(EXIT_SUCCESS);
- }
-
- /* maybe we want a reverse-dependency listing? */
- if (invert_dependencies) {
- ENTRY *qp, *rp;
- int matchcount;
-
- for_entry_list(qp) {
- matchcount = 0;
- for_entry_list(rp) {
- if (rp->nuses == 0)
- continue;
-
- for (i = 0; i < rp->nuses; i++)
- if (_nc_name_match(qp->tterm.term_names,
- rp->uses[i].name, "|")) {
- if (matchcount++ == 0)
- (void) printf("%s:",
- _nc_first_name(qp->tterm.term_names));
- (void) printf(" %s",
- _nc_first_name(rp->tterm.term_names));
- }
- }
- if (matchcount)
- putchar('\n');
- }
-
- ExitProgram(EXIT_SUCCESS);
- }
-
- /*
- * If we get this far, user wants a simple terminal type listing.
- */
- if (optind < argc) {
- code = typelist(argc - optind, argv + optind, header, deschook);
- } else {
- char *home, *eargv[3];
- char personal[PATH_MAX];
- int j;
-
- j = 0;
- if ((eargv[j] = get_directory(getenv("TERMINFO"))) != 0) {
- j++;
- } else {
- if ((home = getenv("HOME")) != 0) {
- (void) sprintf(personal, PRIVATE_INFO, home);
- if ((eargv[j] = get_directory(personal)) != 0)
- j++;
- }
- if ((eargv[j] = get_directory(strcpy(personal, TERMINFO))) != 0)
- j++;
- }
- eargv[j] = 0;
-
- code = typelist(j, eargv, header, deschook);
- }
-
- ExitProgram(code);
-}
-
-static void
-deschook(const char *cn, TERMTYPE * tp)
-/* display a description for the type */
-{
- const char *desc;
-
- if ((desc = strrchr(tp->term_names, '|')) == 0)
- desc = "(No description)";
- else
- ++desc;
-
- (void) printf("%-10s\t%s\n", cn, desc);
-}
-
-static int
-typelist(int eargc, char *eargv[],
- bool verbosity,
- void (*hook) (const char *, TERMTYPE * tp))
-/* apply a function to each entry in given terminfo directories */
-{
- int i;
-
- for (i = 0; i < eargc; i++) {
- DIR *termdir;
- struct dirent *subdir;
-
- if ((termdir = opendir(eargv[i])) == 0) {
- (void) fflush(stdout);
- (void) fprintf(stderr,
- "%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]);
-
- while ((subdir = readdir(termdir)) != 0) {
- size_t len = NAMLEN(subdir);
- char buf[PATH_MAX];
- char name_1[PATH_MAX];
- DIR *entrydir;
- struct dirent *entry;
-
- strncpy(name_1, subdir->d_name, len)[len] = '\0';
- if (isDotname(name_1))
- continue;
-
- (void) sprintf(buf, "%s/%s/", eargv[i], name_1);
- chdir(buf);
- entrydir = opendir(".");
- while ((entry = readdir(entrydir)) != 0) {
- char name_2[PATH_MAX];
- TERMTYPE lterm;
- char *cn;
- int status;
-
- len = NAMLEN(entry);
- strncpy(name_2, entry->d_name, len)[len] = '\0';
- if (isDotname(name_2))
- 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);
- return (EXIT_FAILURE);
- }
-
- /* only visit things once, by primary name */
- cn = _nc_first_name(lterm.term_names);
- if (!strcmp(cn, name_2)) {
- /* apply the selected hook function */
- (*hook) (cn, &lterm);
- }
- if (lterm.term_names) {
- free(lterm.term_names);
- lterm.term_names = 0;
- }
- if (lterm.str_table) {
- free(lterm.str_table);
- lterm.str_table = 0;
- }
- }
- closedir(entrydir);
- }
- closedir(termdir);
- }
-
- return (EXIT_SUCCESS);
-}
diff --git a/ncurses-5.2/progs/tput.c b/ncurses-5.2/progs/tput.c
deleted file mode 100644
index 3467181..0000000
--- a/ncurses-5.2/progs/tput.c
+++ /dev/null
@@ -1,391 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * tput.c -- shellscript access to terminal capabilities
- *
- * by Eric S. Raymond <esr@snark.thyrsus.com>, portions based on code from
- * Ross Ridge's mytinfo package.
- */
-
-#include <progs.priv.h>
-
-#if !PURE_TERMINFO
-#include <termsort.c>
-#endif
-#include <transform.h>
-
-MODULE_ID("$Id$")
-
-#define PUTS(s) fputs(s, stdout)
-#define PUTCHAR(c) putchar(c)
-#define FLUSH fflush(stdout)
-
-typedef enum {
- Numbers = 0
- ,Num_Str
- ,Num_Str_Str
-} TParams;
-
-static char *prg_name;
-static bool is_init = FALSE;
-static bool is_reset = FALSE;
-
-static void
-quit(int status, const char *fmt,...)
-{
- va_list argp;
-
- va_start(argp, fmt);
- vfprintf(stderr, fmt, argp);
- fprintf(stderr, "\n");
- va_end(argp);
- exit(status);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr, "usage: %s [-V] [-S] [-T term] capname\n", prg_name);
- exit(EXIT_FAILURE);
-}
-
-static void
-check_aliases(const char *name)
-{
- is_init = (strcmp(name, PROG_INIT) == 0);
- is_reset = (strcmp(name, PROG_RESET) == 0);
-}
-
-/*
- * Lookup the type of call we should make to tparm(). This ignores the actual
- * terminfo capability (bad, because it is not extensible), but makes this
- * code portable to platforms where sizeof(int) != sizeof(char *).
- *
- * FIXME: If we want extensibility, analyze the capability string as we do
- * in tparm() to decide how to parse the varargs list.
- */
-static TParams
-tparm_type(char *name)
-{
-#define TD(code, longname, ti, tc) {code,longname},{code,ti},{code,tc}
- TParams result = Numbers;
- /* *INDENT-OFF* */
- static const struct {
- TParams code;
- const char *name;
- } table[] = {
- TD(Num_Str, "pkey_key", "pfkey", "pk"),
- TD(Num_Str, "pkey_local", "pfloc", "pl"),
- TD(Num_Str, "pkey_xmit", "pfx", "px"),
- TD(Num_Str, "plab_norm", "pln", "pn"),
- TD(Num_Str_Str, "pkey_plab", "pfxl", "xl"),
- };
- /* *INDENT-ON* */
-
- unsigned n;
- for (n = 0; n < SIZEOF(table); n++) {
- if (!strcmp(name, table[n].name)) {
- result = table[n].code;
- break;
- }
- }
- return result;
-}
-
-static int
-tput(int argc, char *argv[])
-{
- NCURSES_CONST char *name;
- char *s;
- int i, j, c;
- int status;
- FILE *f;
-
- check_aliases(name = argv[0]);
- if (is_reset || is_init) {
- if (init_prog != 0) {
- system(init_prog);
- }
- FLUSH;
-
- if (is_reset && reset_1string != 0) {
- PUTS(reset_1string);
- } else if (init_1string != 0) {
- PUTS(init_1string);
- }
- FLUSH;
-
- if (is_reset && reset_2string != 0) {
- PUTS(reset_2string);
- } else if (init_2string != 0) {
- PUTS(init_2string);
- }
- FLUSH;
-
- 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) {
- 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) {
- PUTS(clear_margins);
- if (carriage_return != 0) {
- PUTS(carriage_return);
- } else {
- PUTCHAR('\r');
- }
- PUTS(set_left_margin);
- if (parm_right_cursor) {
- PUTS(tparm(parm_right_cursor, columns - 1));
- } else {
- for (i = 0; i < columns - 1; i++) {
- PUTCHAR(' ');
- }
- }
- PUTS(set_right_margin);
- if (carriage_return != 0) {
- PUTS(carriage_return);
- } else {
- PUTCHAR('\r');
- }
- }
- FLUSH;
-
- if (init_tabs != 8) {
- if (clear_all_tabs != 0 && set_tab != 0) {
- for (i = 0; i < columns - 1; i += 8) {
- if (parm_right_cursor) {
- PUTS(tparm(parm_right_cursor, 8));
- } else {
- for (j = 0; j < 8; j++)
- PUTCHAR(' ');
- }
- PUTS(set_tab);
- }
- FLUSH;
- }
- }
-
- if (is_reset && reset_file != 0) {
- f = fopen(reset_file, "r");
- if (f == 0) {
- quit(errno, "Can't open reset_file: '%s'", reset_file);
- }
- while ((c = fgetc(f)) != EOF) {
- PUTCHAR(c);
- }
- fclose(f);
- } else if (init_file != 0) {
- f = fopen(init_file, "r");
- if (f == 0) {
- quit(errno, "Can't open init_file: '%s'", init_file);
- }
- while ((c = fgetc(f)) != EOF) {
- PUTCHAR(c);
- }
- fclose(f);
- }
- FLUSH;
-
- if (is_reset && reset_3string != 0) {
- PUTS(reset_3string);
- } else if (init_2string != 0) {
- PUTS(init_2string);
- }
- FLUSH;
- return 0;
- }
-
- if (strcmp(name, "longname") == 0) {
- PUTS(longname());
- return 0;
- }
-#if !PURE_TERMINFO
- {
- const struct name_table_entry *np;
-
- if ((np = _nc_find_entry(name, _nc_get_hash_table(1))) != 0)
- switch (np->nte_type) {
- case BOOLEAN:
- if (bool_from_termcap[np->nte_index])
- name = boolnames[np->nte_index];
- break;
-
- case NUMBER:
- if (num_from_termcap[np->nte_index])
- name = numnames[np->nte_index];
- break;
-
- case STRING:
- if (str_from_termcap[np->nte_index])
- name = strnames[np->nte_index];
- break;
- }
- }
-#endif
-
- if ((status = tigetflag(name)) != -1) {
- return (status != 0);
- } else if ((status = tigetnum(name)) != CANCELLED_NUMERIC) {
- (void) printf("%d\n", status);
- return (0);
- } else if ((s = tigetstr(name)) == CANCELLED_STRING) {
- quit(4, "%s: unknown terminfo capability '%s'", prg_name, name);
- } else if (s != ABSENT_STRING) {
- if (argc > 1) {
- int k;
- int numbers[10];
- char *strings[10];
-
- /* Nasty hack time. The tparm function needs to see numeric
- * parameters as numbers, not as pointers to their string
- * representations
- */
-
- for (k = 1; k < argc; k++) {
- char *tmp = 0;
- strings[k] = argv[k];
- numbers[k] = strtol(argv[k], &tmp, 0);
- if (tmp == 0 || *tmp != 0)
- numbers[k] = 0;
- }
- for (k = argc; k <= 9; k++) {
- numbers[k] = 0;
- strings[k] = 0;
- }
-
- switch (tparm_type(name)) {
- case Num_Str:
- s = tparm(s, numbers[1], strings[2]);
- break;
- case Num_Str_Str:
- s = tparm(s, numbers[1], strings[2], strings[3]);
- break;
- default:
- s = tparm(s,
- numbers[1], numbers[2], numbers[3],
- numbers[4], numbers[5], numbers[6],
- numbers[7], numbers[8], numbers[9]);
- break;
- }
- }
-
- /* use putp() in order to perform padding */
- putp(s);
- return (0);
- }
- return (0);
-}
-
-int
-main(int argc, char **argv)
-{
- char *term;
- int errret;
- bool cmdline = TRUE;
- int c;
- char buf[BUFSIZ];
- int errors = 0;
-
- check_aliases(prg_name = _nc_basename(argv[0]));
-
- term = getenv("TERM");
-
- while ((c = getopt(argc, argv, "ST:V")) != EOF) {
- switch (c) {
- case 'S':
- cmdline = FALSE;
- break;
- case 'T':
- use_env(FALSE);
- term = optarg;
- break;
- case 'V':
- puts(curses_version());
- return EXIT_SUCCESS;
- default:
- usage();
- /* NOTREACHED */
- }
- }
-
- /*
- * Modify the argument list to omit the options we processed.
- */
- if (is_reset || is_init) {
- if (optind-- < argc) {
- argc -= optind;
- argv += optind;
- }
- argv[0] = prg_name;
- } else {
- argc -= optind;
- argv += optind;
- }
-
- if (term == 0 || *term == '\0')
- quit(2, "No value for $TERM and no -T specified");
-
- if (setupterm(term, STDOUT_FILENO, &errret) != OK && errret <= 0)
- quit(3, "unknown terminal \"%s\"", term);
-
- if (cmdline) {
- if ((argc <= 0) && !is_reset && !is_init)
- usage();
- return tput(argc, argv);
- }
-
- while (fgets(buf, sizeof(buf), stdin) != 0) {
- char *argvec[16]; /* command, 9 parms, null, & slop */
- int argnum = 0;
- char *cp;
-
- /* crack the argument list into a dope vector */
- for (cp = buf; *cp; cp++) {
- if (isspace(*cp))
- *cp = '\0';
- else if (cp == buf || cp[-1] == 0)
- argvec[argnum++] = cp;
- }
- argvec[argnum] = 0;
-
- if (tput(argnum, argvec) != 0)
- errors++;
- }
-
- return errors > 0;
-}
diff --git a/ncurses-5.2/progs/tset.c b/ncurses-5.2/progs/tset.c
deleted file mode 100644
index f5e9a44..0000000
--- a/ncurses-5.2/progs/tset.c
+++ /dev/null
@@ -1,1205 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * tset.c - terminal initialization utility
- *
- * This code was mostly swiped from 4.4BSD tset, with some obsolescent
- * cruft removed and substantial portions rewritten. A Regents of the
- * University of California copyright applies to some portions of the
- * code, and is reproduced below:
- */
-/*-
- * Copyright (c) 1980, 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#define __INTERNAL_CAPS_VISIBLE /* we need to see has_hardware_tabs */
-#include <progs.priv.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <termcap.h>
-#include <fcntl.h>
-
-#if HAVE_GETTTYNAM && HAVE_TTYENT_H
-#include <ttyent.h>
-#endif
-#ifdef NeXT
-char *ttyname(int fd);
-#endif
-
-/* this is just to stifle a missing-prototype warning */
-#ifdef linux
-# include <sys/ioctl.h>
-#endif
-
-#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>
-#endif
-
-#include <curses.h> /* for bool typedef */
-#include <dump_entry.h>
-#include <transform.h>
-
-MODULE_ID("$Id$")
-
-extern char **environ;
-
-#undef CTRL
-#define CTRL(x) ((x) & 0x1f)
-
-const char *_nc_progname = "tset";
-
-static TTY mode, oldmode;
-
-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))
-
-static int
-CaselessCmp(const char *a, const char *b)
-{ /* strcasecmp isn't portable */
- while (*a && *b) {
- int cmp = LOWERCASE(*a) - LOWERCASE(*b);
- if (cmp != 0)
- break;
- a++, b++;
- }
- return LOWERCASE(*a) - LOWERCASE(*b);
-}
-
-static void
-err(const char *fmt,...)
-{
- va_list ap;
- va_start(ap, fmt);
- (void) fprintf(stderr, "tset: ");
- (void) vfprintf(stderr, fmt, ap);
- va_end(ap);
- (void) fprintf(stderr, "\n");
- exit(EXIT_FAILURE);
- /* NOTREACHED */
-}
-
-static void
-failed(const char *msg)
-{
- char temp[BUFSIZ];
- perror(strncat(strcpy(temp, "tset: "), msg, sizeof(temp) - 10));
- exit(EXIT_FAILURE);
- /* NOTREACHED */
-}
-
-static void
-cat(char *file)
-{
- register int fd, nr, nw;
- char buf[BUFSIZ];
-
- if ((fd = open(file, O_RDONLY, 0)) < 0)
- 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);
-}
-
-static int
-outc(int c)
-{
- return putc(c, stderr);
-}
-
-/* Prompt the user for a terminal type. */
-static const char *
-askuser(const char *dflt)
-{
- static char answer[256];
- char *p;
-
- /* We can get recalled; if so, don't continue uselessly. */
- if (feof(stdin) || ferror(stdin)) {
- (void) fprintf(stderr, "\n");
- exit(EXIT_FAILURE);
- }
- for (;;) {
- if (dflt)
- (void) fprintf(stderr, "Terminal type? [%s] ", dflt);
- else
- (void) fprintf(stderr, "Terminal type? ");
- (void) fflush(stderr);
-
- if (fgets(answer, sizeof(answer), stdin) == 0) {
- if (dflt == 0) {
- (void) fprintf(stderr, "\n");
- exit(EXIT_FAILURE);
- }
- return (dflt);
- }
-
- if ((p = strchr(answer, '\n')) != 0)
- *p = '\0';
- if (answer[0])
- return (answer);
- if (dflt != 0)
- return (dflt);
- }
-}
-
-/**************************************************************************
- *
- * Mapping logic begins here
- *
- **************************************************************************/
-
-/* Baud rate conditionals for mapping. */
-#define GT 0x01
-#define EQ 0x02
-#define LT 0x04
-#define NOT 0x08
-#define GE (GT | EQ)
-#define LE (LT | EQ)
-
-typedef struct map {
- struct map *next; /* Linked list of maps. */
- const char *porttype; /* Port type, or "" for any. */
- const char *type; /* Terminal type to select. */
- int conditional; /* Baud rate conditionals bitmask. */
- int speed; /* Baud rate to compare against. */
-} MAP;
-
-static MAP *cur, *maplist;
-
-typedef struct speeds {
- const char *string;
- int speed;
-} SPEEDS;
-
-static const SPEEDS speeds[] =
-{
- {"0", B0},
- {"50", B50},
- {"75", B75},
- {"110", B110},
- {"134", B134},
- {"134.5", B134},
- {"150", B150},
- {"200", B200},
- {"300", B300},
- {"600", B600},
- {"1200", B1200},
- {"1800", B1800},
- {"2400", B2400},
- {"4800", B4800},
- {"9600", B9600},
- /* sgttyb may define up to this point */
-#ifdef B19200
- {"19200", B19200},
-#endif
-#ifdef B38400
- {"38400", B38400},
-#endif
-#ifdef B19200
- {"19200", B19200},
-#endif
-#ifdef B38400
- {"38400", B38400},
-#endif
-#ifdef B19200
- {"19200", B19200},
-#else
-#ifdef EXTA
- {"19200", EXTA},
-#endif
-#endif
-#ifdef B38400
- {"38400", B38400},
-#else
-#ifdef EXTB
- {"38400", EXTB},
-#endif
-#endif
-#ifdef B57600
- {"57600", B57600},
-#endif
-#ifdef B115200
- {"115200", B115200},
-#endif
-#ifdef B230400
- {"230400", B230400},
-#endif
-#ifdef B460800
- {"460800", B460800},
-#endif
- {(char *) 0, 0}
-};
-
-static int
-tbaudrate(char *rate)
-{
- const SPEEDS *sp;
- int found = FALSE;
-
- /* The baudrate number can be preceded by a 'B', which is ignored. */
- if (*rate == 'B')
- ++rate;
-
- for (sp = speeds; sp->string; ++sp) {
- if (!CaselessCmp(rate, sp->string)) {
- found = TRUE;
- break;
- }
- }
- if (!found)
- err("unknown baud rate %s", rate);
- return (sp->speed);
-}
-
-/*
- * Syntax for -m:
- * [port-type][test baudrate]:terminal-type
- * The baud rate tests are: >, <, @, =, !
- */
-static void
-add_mapping(const char *port, char *arg)
-{
- MAP *mapp;
- char *copy, *p;
- const char *termp;
- char *base = 0;
-
- copy = strdup(arg);
- mapp = malloc(sizeof(MAP));
- if (copy == 0 || mapp == 0)
- failed("malloc");
- mapp->next = 0;
- if (maplist == 0)
- cur = maplist = mapp;
- else {
- cur->next = mapp;
- cur = mapp;
- }
-
- mapp->porttype = arg;
- mapp->conditional = 0;
-
- arg = strpbrk(arg, "><@=!:");
-
- if (arg == 0) { /* [?]term */
- mapp->type = mapp->porttype;
- mapp->porttype = 0;
- goto done;
- }
-
- if (arg == mapp->porttype) /* [><@=! baud]:term */
- termp = mapp->porttype = 0;
- else
- termp = base = arg;
-
- for (;; ++arg) { /* Optional conditionals. */
- switch (*arg) {
- case '<':
- if (mapp->conditional & GT)
- goto badmopt;
- mapp->conditional |= LT;
- break;
- case '>':
- if (mapp->conditional & LT)
- goto badmopt;
- mapp->conditional |= GT;
- break;
- case '@':
- case '=': /* Not documented. */
- mapp->conditional |= EQ;
- break;
- case '!':
- mapp->conditional |= NOT;
- break;
- default:
- goto next;
- }
- }
-
- next:
- if (*arg == ':') {
- if (mapp->conditional)
- goto badmopt;
- ++arg;
- } else { /* Optional baudrate. */
- arg = strchr(p = arg, ':');
- if (arg == 0)
- goto badmopt;
- *arg++ = '\0';
- mapp->speed = tbaudrate(p);
- }
-
- if (arg == (char *) 0) /* Non-optional type. */
- goto badmopt;
-
- mapp->type = arg;
-
- /* Terminate porttype, if specified. */
- if (termp != 0)
- *base = '\0';
-
- /* If a NOT conditional, reverse the test. */
- if (mapp->conditional & NOT)
- mapp->conditional = ~mapp->conditional & (EQ | GT | LT);
-
- /* If user specified a port with an option flag, set it. */
- done:if (port) {
- if (mapp->porttype)
- badmopt:err("illegal -m option format: %s", copy);
- mapp->porttype = port;
- }
-#ifdef MAPDEBUG
- (void) printf("port: %s\n", mapp->porttype ? mapp->porttype : "ANY");
- (void) printf("type: %s\n", mapp->type);
- (void) printf("conditional: ");
- p = "";
- if (mapp->conditional & GT) {
- (void) printf("GT");
- p = "/";
- }
- if (mapp->conditional & EQ) {
- (void) printf("%sEQ", p);
- p = "/";
- }
- if (mapp->conditional & LT)
- (void) printf("%sLT", p);
- (void) printf("\nspeed: %d\n", mapp->speed);
-#endif
-}
-
-/*
- * Return the type of terminal to use for a port of type 'type', as specified
- * by the first applicable mapping in 'map'. If no mappings apply, return
- * 'type'.
- */
-static const char *
-mapped(const char *type)
-{
- MAP *mapp;
- int match;
-
- for (mapp = maplist; mapp; mapp = mapp->next)
- if (mapp->porttype == 0 || !strcmp(mapp->porttype, type)) {
- switch (mapp->conditional) {
- case 0: /* No test specified. */
- match = TRUE;
- break;
- case EQ:
- match = (ospeed == mapp->speed);
- break;
- case GE:
- match = (ospeed >= mapp->speed);
- break;
- case GT:
- match = (ospeed > mapp->speed);
- break;
- case LE:
- match = (ospeed <= mapp->speed);
- break;
- case LT:
- match = (ospeed < mapp->speed);
- break;
- default:
- match = FALSE;
- }
- if (match)
- return (mapp->type);
- }
- /* No match found; return given type. */
- return (type);
-}
-
-/**************************************************************************
- *
- * Entry fetching
- *
- **************************************************************************/
-
-/*
- * Figure out what kind of terminal we're dealing with, and then read in
- * its termcap entry.
- */
-static const char *
-get_termcap_entry(char *userarg)
-{
- int rval, errret;
- char *p;
- const char *ttype;
-#if HAVE_GETTTYNAM
- struct ttyent *t;
-#else
- FILE *fp;
-#endif
- char *ttypath;
-
- if (userarg) {
- ttype = userarg;
- goto found;
- }
-
- /* Try the environment. */
- if ((ttype = getenv("TERM")) != 0)
- goto map;
-
- if ((ttypath = ttyname(STDERR_FILENO)) != 0) {
- p = _nc_basename(ttypath);
-#if HAVE_GETTTYNAM
- /*
- * We have the 4.3BSD library call getttynam(3); that means
- * there's an /etc/ttys to look up device-to-type mappings in.
- * Try ttyname(3); check for dialup or other mapping.
- */
- if ((t = getttynam(p))) {
- ttype = t->ty_type;
- goto map;
- }
-#else
- if ((fp = fopen("/etc/ttytype", "r")) != 0
- || (fp = fopen("/etc/ttys", "r")) != 0) {
- char buffer[BUFSIZ];
- char *s, *t, *d;
-
- while (fgets(buffer, sizeof(buffer) - 1, fp) != 0) {
- for (s = buffer, t = d = 0; *s; s++) {
- if (isspace(*s))
- *s = '\0';
- else if (t == 0)
- t = s;
- else if (d == 0 && s != buffer && s[-1] == '\0')
- d = s;
- }
- if (t != 0 && d != 0 && !strcmp(d, p)) {
- ttype = strdup(t);
- fclose(fp);
- goto map;
- }
- }
- fclose(fp);
- }
-#endif /* HAVE_GETTTYNAM */
- }
-
- /* If still undefined, use "unknown". */
- ttype = "unknown";
-
- map:ttype = mapped(ttype);
-
- /*
- * If not a path, remove TERMCAP from the environment so we get a
- * real entry from /etc/termcap. This prevents us from being fooled
- * by out of date stuff in the environment.
- */
- found:if ((p = getenv("TERMCAP")) != 0 && *p != '/') {
- /* 'unsetenv("TERMCAP")' is not portable.
- * The 'environ' array is better.
- */
- int n;
- for (n = 0; environ[n] != 0; n++) {
- if (!strncmp("TERMCAP=", environ[n], 8)) {
- while ((environ[n] = environ[n + 1]) != 0) {
- n++;
- }
- break;
- }
- }
- }
-
- /*
- * ttype now contains a pointer to the type of the terminal.
- * If the first character is '?', ask the user.
- */
- if (ttype[0] == '?') {
- if (ttype[1] != '\0')
- ttype = askuser(ttype + 1);
- else
- 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) {
- if (errret == 0) {
- (void) fprintf(stderr, "tset: unknown terminal type %s\n",
- ttype);
- ttype = 0;
- } else {
- (void) fprintf(stderr,
- "tset: can't initialize terminal type %s (error %d)\n",
- ttype, errret);
- ttype = 0;
- }
- ttype = askuser(ttype);
- }
-#if BROKEN_LINKER
- tgetflag("am"); /* force lib_termcap.o to be linked for 'ospeed' */
-#endif
- return (ttype);
-}
-
-/**************************************************************************
- *
- * Mode-setting logic
- *
- **************************************************************************/
-
-/* some BSD systems have these built in, some systems are missing
- * one or more definitions. The safest solution is to override.
- */
-#undef CEOF
-#undef CERASE
-#undef CINTR
-#undef CKILL
-#undef CLNEXT
-#undef CRPRNT
-#undef CQUIT
-#undef CSTART
-#undef CSTOP
-#undef CSUSP
-
-/* control-character defaults */
-#define CEOF CTRL('D')
-#define CERASE CTRL('H')
-#define CINTR 127 /* ^? */
-#define CKILL CTRL('U')
-#define CLNEXT CTRL('v')
-#define CRPRNT CTRL('r')
-#define CQUIT CTRL('\\')
-#define CSTART CTRL('Q')
-#define CSTOP CTRL('S')
-#define CSUSP CTRL('Z')
-
-#define CHK(val, dft) ((int)val <= 0 ? dft : val)
-
-static bool set_tabs(void);
-
-/*
- * Reset the terminal mode bits to a sensible state. Very useful after
- * a child program dies in raw mode.
- */
-static void
-reset_mode(void)
-{
-#ifdef TERMIOS
- tcgetattr(STDERR_FILENO, &mode);
-#else
- stty(STDERR_FILENO, &mode);
-#endif
-
-#ifdef TERMIOS
-#if defined(VDISCARD) && defined(CDISCARD)
- mode.c_cc[VDISCARD] = CHK(mode.c_cc[VDISCARD], CDISCARD);
-#endif
- mode.c_cc[VEOF] = CHK(mode.c_cc[VEOF], CEOF);
- mode.c_cc[VERASE] = CHK(mode.c_cc[VERASE], CERASE);
-#if defined(VFLUSH) && defined(CFLUSH)
- mode.c_cc[VFLUSH] = CHK(mode.c_cc[VFLUSH], CFLUSH);
-#endif
- mode.c_cc[VINTR] = CHK(mode.c_cc[VINTR], CINTR);
- mode.c_cc[VKILL] = CHK(mode.c_cc[VKILL], CKILL);
-#if defined(VLNEXT) && defined(CLNEXT)
- mode.c_cc[VLNEXT] = CHK(mode.c_cc[VLNEXT], CLNEXT);
-#endif
- mode.c_cc[VQUIT] = CHK(mode.c_cc[VQUIT], CQUIT);
-#if defined(VREPRINT) && defined(CRPRNT)
- mode.c_cc[VREPRINT] = CHK(mode.c_cc[VREPRINT], CRPRNT);
-#endif
-#if defined(VSTART) && defined(CSTART)
- mode.c_cc[VSTART] = CHK(mode.c_cc[VSTART], CSTART);
-#endif
-#if defined(VSTOP) && defined(CSTOP)
- mode.c_cc[VSTOP] = CHK(mode.c_cc[VSTOP], CSTOP);
-#endif
-#if defined(VSUSP) && defined(CSUSP)
- mode.c_cc[VSUSP] = CHK(mode.c_cc[VSUSP], CSUSP);
-#endif
-#if defined(VWERASE) && defined(CWERASE)
- mode.c_cc[VWERASE] = CHK(mode.c_cc[VWERASE], CWERASE);
-#endif
-
- mode.c_iflag &= ~(IGNBRK | PARMRK | INPCK | ISTRIP | INLCR | IGNCR
-#ifdef IUCLC
- | IUCLC
-#endif
-#ifdef IXANY
- | IXANY
-#endif
- | IXOFF);
-
- mode.c_iflag |= (BRKINT | IGNPAR | ICRNL | IXON
-#ifdef IMAXBEL
- | IMAXBEL
-#endif
- );
-
- mode.c_oflag &= ~(0
-#ifdef OLCUC
- | OLCUC
-#endif
-#ifdef OCRNL
- | OCRNL
-#endif
-#ifdef ONOCR
- | ONOCR
-#endif
-#ifdef ONLRET
- | ONLRET
-#endif
-#ifdef OFILL
- | OFILL
-#endif
-#ifdef OFDEL
- | OFDEL
-#endif
-#ifdef NLDLY
- | NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY
-#endif
- );
-
- mode.c_oflag |= (OPOST
-#ifdef ONLCR
- | ONLCR
-#endif
- );
-
- mode.c_cflag &= ~(CSIZE | CSTOPB | PARENB | PARODD | CLOCAL);
- mode.c_cflag |= (CS8 | CREAD);
- mode.c_lflag &= ~(ECHONL | NOFLSH
-#ifdef TOSTOP
- | TOSTOP
-#endif
-#ifdef ECHOPTR
- | ECHOPRT
-#endif
-#ifdef XCASE
- | XCASE
-#endif
- );
-
- mode.c_lflag |= (ISIG | ICANON | ECHO | ECHOE | ECHOK
-#ifdef ECHOCTL
- | ECHOCTL
-#endif
-#ifdef ECHOKE
- | ECHOKE
-#endif
- );
-#endif
-
-#ifdef TERMIOS
- tcsetattr(STDERR_FILENO, TCSADRAIN, &mode);
-#else
- stty(STDERR_FILENO, &mode);
-#endif
-}
-
-/*
- * Returns a "good" value for the erase character. This is loosely based on
- * the BSD4.4 logic.
- */
-#ifdef TERMIOS
-static int
-default_erase(void)
-{
- int result;
-
- if (over_strike
- && key_backspace != 0
- && strlen(key_backspace) == 1)
- result = key_backspace[0];
- else
- result = CERASE;
-
- return result;
-}
-#endif
-
-/*
- * Update the values of the erase, interrupt, and kill characters in 'mode'.
- *
- * SVr4 tset (e.g., Solaris 2.5) only modifies the intr, quit or erase
- * characters if they're unset, or if we specify them as options. This differs
- * from BSD 4.4 tset, which always sets erase.
- */
-static void
-set_control_chars(void)
-{
-#ifdef TERMIOS
- if (mode.c_cc[VERASE] == 0 || terasechar >= 0)
- mode.c_cc[VERASE] = terasechar >= 0 ? terasechar : default_erase();
-
- if (mode.c_cc[VINTR] == 0 || intrchar >= 0)
- mode.c_cc[VINTR] = intrchar >= 0 ? intrchar : CINTR;
-
- if (mode.c_cc[VKILL] == 0 || tkillchar >= 0)
- mode.c_cc[VKILL] = tkillchar >= 0 ? tkillchar : CKILL;
-#endif
-}
-
-/*
- * Set up various conversions in 'mode', including parity, tabs, returns,
- * echo, and case, according to the termcap entry. If the program we're
- * running was named with a leading upper-case character, map external
- * uppercase to internal lowercase.
- */
-static void
-set_conversions(void)
-{
-#ifdef __OBSOLETE__
- /*
- * Conversion logic for some *really* ancient terminal glitches,
- * not supported in terminfo. Left here for succeeding generations
- * to marvel at.
- */
- if (tgetflag("UC")) {
-#ifdef IUCLC
- mode.c_iflag |= IUCLC;
- mode.c_oflag |= OLCUC;
-#endif
- } else if (tgetflag("LC")) {
-#ifdef IUCLC
- mode.c_iflag &= ~IUCLC;
- mode.c_oflag &= ~OLCUC;
-#endif
- }
- mode.c_iflag &= ~(PARMRK | INPCK);
- mode.c_lflag |= ICANON;
- if (tgetflag("EP")) {
- mode.c_cflag |= PARENB;
- mode.c_cflag &= ~PARODD;
- }
- if (tgetflag("OP")) {
- mode.c_cflag |= PARENB;
- mode.c_cflag |= PARODD;
- }
-#endif /* __OBSOLETE__ */
-
-#ifdef TERMIOS
-#ifdef ONLCR
- mode.c_oflag |= ONLCR;
-#endif
- mode.c_iflag |= ICRNL;
- mode.c_lflag |= ECHO;
-#ifdef OXTABS
- mode.c_oflag |= OXTABS;
-#endif /* OXTABS */
-
- /* test used to be tgetflag("NL") */
- if (newline != (char *) 0 && newline[0] == '\n' && !newline[1]) {
- /* Newline, not linefeed. */
-#ifdef ONLCR
- mode.c_oflag &= ~ONLCR;
-#endif
- mode.c_iflag &= ~ICRNL;
- }
-#ifdef __OBSOLETE__
- if (tgetflag("HD")) /* Half duplex. */
- mode.c_lflag &= ~ECHO;
-#endif /* __OBSOLETE__ */
-#ifdef OXTABS
- /* test used to be tgetflag("pt") */
- if (has_hardware_tabs) /* Print tabs. */
- mode.c_oflag &= ~OXTABS;
-#endif /* OXTABS */
- mode.c_lflag |= (ECHOE | ECHOK);
-#endif
-}
-
-/* Output startup string. */
-static void
-set_init(void)
-{
- char *p;
- bool settle;
-
-#ifdef __OBSOLETE__
- if (pad_char != (char *) 0) /* Get/set pad character. */
- PC = pad_char[0];
-#endif /* OBSOLETE */
-
-#ifdef TAB3
- if (oldmode.c_oflag & (TAB3 | ONLCR | OCRNL | ONLRET)) {
- oldmode.c_oflag &= (TAB3 | ONLCR | OCRNL | ONLRET);
- tcsetattr(STDERR_FILENO, TCSADRAIN, &oldmode);
- }
-#endif
- settle = set_tabs();
-
- if (isreset) {
- if ((p = reset_1string) != 0) {
- tputs(p, 0, outc);
- settle = TRUE;
- }
- if ((p = reset_2string) != 0) {
- tputs(p, 0, outc);
- settle = TRUE;
- }
- /* What about rf, rs3, as per terminfo man page? */
- /* also might be nice to send rmacs, rmul, rmm */
- if ((p = reset_file) != 0
- || (p = init_file) != 0) {
- cat(p);
- settle = TRUE;
- }
- }
-
- if (settle) {
- (void) putc('\r', stderr);
- (void) fflush(stderr);
- (void) napms(1000); /* Settle the terminal. */
- }
-}
-
-/*
- * Set the hardware tabs on the terminal, using the ct (clear all tabs),
- * st (set one tab) and ch (horizontal cursor addressing) capabilities.
- * This is done before if and is, so they can patch in case we blow this.
- * Return TRUE if we set any tab stops, FALSE if not.
- */
-static bool
-set_tabs()
-{
- if (set_tab && clear_all_tabs) {
- int c;
-
- (void) putc('\r', stderr); /* Force to left margin. */
- tputs(clear_all_tabs, 0, outc);
-
- for (c = 8; c < tcolumns; c += 8) {
- /* Get to the right column. In BSD tset, this
- * used to try a bunch of half-clever things
- * with cup and hpa, for an average saving of
- * somewhat less than two character times per
- * tab stop, less that .01 sec at 2400cps. We
- * lost all this cruft because it seemed to be
- * introducing some odd bugs.
- * ----------12345678----------- */
- (void) fputs(" ", stderr);
- tputs(set_tab, 0, outc);
- }
- putc('\r', stderr);
- return (TRUE);
- }
- return (FALSE);
-}
-
-/**************************************************************************
- *
- * Main sequence
- *
- **************************************************************************/
-
-/*
- * Tell the user if a control key has been changed from the default value.
- */
-#ifdef TERMIOS
-static void
-report(const char *name, int which, unsigned def)
-{
- unsigned older, newer;
- char *p;
-
- newer = mode.c_cc[which];
- older = oldmode.c_cc[which];
-
- if (older == newer && older == def)
- return;
-
- (void) fprintf(stderr, "%s %s ", name, older == newer ? "is" : "set to");
-
- /*
- * Check 'delete' before 'backspace', since the key_backspace value
- * is ambiguous.
- */
- if (newer == 0177)
- (void) fprintf(stderr, "delete.\n");
- else if ((p = key_backspace) != 0
- && newer == (unsigned char) p[0]
- && p[1] == '\0')
- (void) fprintf(stderr, "backspace.\n");
- else if (newer < 040) {
- newer ^= 0100;
- (void) fprintf(stderr, "control-%c (^%c).\n", newer, newer);
- } else
- (void) fprintf(stderr, "%c.\n", newer);
-}
-#endif
-
-/*
- * Convert the obsolete argument forms into something that getopt can handle.
- * This means that -e, -i and -k get default arguments supplied for them.
- */
-static void
-obsolete(char **argv)
-{
- for (; *argv; ++argv) {
- char *parm = argv[0];
-
- if (parm[0] == '-' && parm[1] == '\0') {
- argv[0] = strdup("-q");
- continue;
- }
-
- if ((parm[0] != '-')
- || (argv[1] && argv[1][0] != '-')
- || (parm[1] != 'e' && parm[1] != 'i' && parm[1] != 'k')
- || (parm[2] != '\0'))
- continue;
- switch (argv[0][1]) {
- case 'e':
- argv[0] = strdup("-e^H");
- break;
- case 'i':
- argv[0] = strdup("-i^C");
- break;
- case 'k':
- argv[0] = strdup("-k^U");
- break;
- }
- }
-}
-
-static void
-usage(const char *pname)
-{
- (void) fprintf(stderr,
- "usage: %s [-IQVrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]\n", pname);
- exit(EXIT_FAILURE);
-}
-
-static char
-arg_to_char(void)
-{
- return (optarg[0] == '^' && optarg[1] != '\0')
- ? ((optarg[1] == '?') ? '\177' : CTRL(optarg[1]))
- : optarg[0];
-}
-
-int
-main(int argc, char **argv)
-{
-#if defined(TIOCGWINSZ) && defined(TIOCSWINSZ)
- struct winsize win;
-#endif
- int ch, noinit, noset, quiet, Sflag, sflag, showterm;
- const char *p;
- const char *ttype;
-
- if (GET_TTY(STDERR_FILENO, &mode) < 0)
- failed("standard error");
- oldmode = mode;
-#ifdef TERMIOS
- ospeed = cfgetospeed(&mode);
-#else
- ospeed = mode.sg_ospeed;
-#endif
-
- p = _nc_basename(*argv);
- if (!strcmp(p, PROG_RESET)) {
- isreset = TRUE;
- reset_mode();
- }
-
- obsolete(argv);
- noinit = noset = quiet = Sflag = sflag = showterm = 0;
- while ((ch = getopt(argc, argv, "a:d:e:Ii:k:m:np:qQSrsV")) != EOF) {
- switch (ch) {
- case 'q': /* display term only */
- noset = 1;
- break;
- case 'a': /* OBSOLETE: map identifier to type */
- add_mapping("arpanet", optarg);
- break;
- case 'd': /* OBSOLETE: map identifier to type */
- add_mapping("dialup", optarg);
- break;
- case 'e': /* erase character */
- terasechar = arg_to_char();
- break;
- case 'I': /* no initialization strings */
- noinit = 1;
- break;
- case 'i': /* interrupt character */
- intrchar = arg_to_char();
- break;
- case 'k': /* kill character */
- tkillchar = arg_to_char();
- break;
- case 'm': /* map identifier to type */
- add_mapping(0, optarg);
- break;
- case 'n': /* OBSOLETE: set new tty driver */
- break;
- case 'p': /* OBSOLETE: map identifier to type */
- add_mapping("plugboard", optarg);
- break;
- case 'Q': /* don't output control key settings */
- quiet = 1;
- break;
- case 'S': /* OBSOLETE: output TERM & TERMCAP */
- Sflag = 1;
- break;
- case 'r': /* display term on stderr */
- showterm = 1;
- break;
- case 's': /* output TERM set command */
- sflag = 1;
- break;
- case 'V':
- puts(curses_version());
- return EXIT_SUCCESS;
- case '?':
- default:
- usage(*argv);
- }
- }
- argc -= optind;
- argv += optind;
-
- if (argc > 1)
- usage(*argv);
-
- ttype = get_termcap_entry(*argv);
-
- if (!noset) {
- tcolumns = columns;
- tlines = lines;
-
-#if defined(TIOCGWINSZ) && defined(TIOCSWINSZ)
- /* Set window size */
- (void) ioctl(STDERR_FILENO, TIOCGWINSZ, &win);
- if (win.ws_row == 0 && win.ws_col == 0 &&
- tlines > 0 && tcolumns > 0) {
- win.ws_row = tlines;
- win.ws_col = tcolumns;
- (void) ioctl(STDERR_FILENO, TIOCSWINSZ, &win);
- }
-#endif
- set_control_chars();
- set_conversions();
-
- if (!noinit)
- set_init();
-
- /* 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
- }
- }
-
- /* Get the terminal name from the entry. */
- ttype = _nc_first_name(cur_term->type.term_names);
-
- if (noset)
- (void) printf("%s\n", ttype);
- else {
- if (showterm)
- (void) fprintf(stderr, "Terminal type is %s.\n", ttype);
- /*
- * If erase, kill and interrupt characters could have been
- * modified and not -Q, display the changes.
- */
-#ifdef TERMIOS
- if (!quiet) {
- report("Erase", VERASE, CERASE);
- report("Kill", VKILL, CINTR);
- report("Interrupt", VINTR, CKILL);
- }
-#endif
- }
-
- if (Sflag)
- err("The -S option is not supported under terminfo.");
-
- if (sflag) {
- /*
- * Figure out what shell we're using. A hack, we look for an
- * environmental variable SHELL ending in "csh".
- */
- if ((p = getenv("SHELL")) != 0
- && !strcmp(p + strlen(p) - 3, "csh"))
- p = "set noglob;\nsetenv TERM %s;\nunset noglob;\n";
- else
- p = "TERM=%s;\n";
- (void) printf(p, ttype);
- }
-
- return EXIT_SUCCESS;
-}
-
-/* tset.c ends here */
diff --git a/ncurses-5.2/sysdeps/unix/sysv/linux/Makefile b/ncurses-5.2/sysdeps/unix/sysv/linux/Makefile
deleted file mode 100644
index 9489c19..0000000
--- a/ncurses-5.2/sysdeps/unix/sysv/linux/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-ifeq ($(subdir),ncurses)
-
-CPPFLAGS += -DNDEBUG -DHAVE_CONFIG_H
-
-edit_man-sed = sysdeps/unix/sysv/linux/edit_man.sed
-edit_man-sh = sysdeps/unix/sysv/linux/edit_man.sh
-
-run_tic-sh = sysdeps/unix/sysv/linux/run_tic.sh
-
-endif
diff --git a/ncurses-5.2/sysdeps/unix/sysv/linux/alpha/configure b/ncurses-5.2/sysdeps/unix/sysv/linux/alpha/configure
deleted file mode 100755
index 6fa2519..0000000
--- a/ncurses-5.2/sysdeps/unix/sysv/linux/alpha/configure
+++ /dev/null
@@ -1,2 +0,0 @@
-# Alpha uses long as bool.
-nc_cv_type_of_bool=long
diff --git a/ncurses-5.2/sysdeps/unix/sysv/linux/configure b/ncurses-5.2/sysdeps/unix/sysv/linux/configure
deleted file mode 100755
index e83e080..0000000
--- a/ncurses-5.2/sysdeps/unix/sysv/linux/configure
+++ /dev/null
@@ -1,407 +0,0 @@
-# Local configure fragment for ncurses/sysdeps/unix/sysv/linux.
-
-nc_given_srcdir=${srcdir}/ncurses
-
-NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[ ]*=' $nc_given_srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-NCURSES_MINOR="`egrep '^NCURSES_MINOR[ ]*=' $nc_given_srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-NCURSES_PATCH="`egrep '^NCURSES_PATCH[ ]*=' $nc_given_srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-cf_cv_abi_version=${NCURSES_MAJOR}
-cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
-
-# Default to char
-if [ x${cf_cv_type_of_bool} = x ]
-then
- cf_cv_type_of_bool=char
-fi
-
-rm -f ncurses/MKterm.h.awk \
- ncurses/codes.c \
- ncurses/comp_captab.c \
- ncurses/confdefs.h \
- ncurses/config.log \
- ncurses/curses.h \
- ncurses/expanded.c \
- ncurses/fallback.c \
- ncurses/hashsize.h \
- ncurses/init_keytry.h \
- ncurses/lib_gen.c \
- ncurses/lib_keyname.c \
- ncurses/names.c \
- ncurses/ncurses_cfg.h \
- ncurses/nomacros.h \
- ncurses/parametrized.h \
- ncurses/term.h \
- ncurses/termcap.h \
- ncurses/terminfo.5 \
- ncurses/termsort.c \
- ncurses/unctrl.c \
- ncurses/unctrl.h
-
-# 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 <<EOF
-
-
-s%@DEFS@%-DHAVE_CONFIG_H%g
-s%@NCURSES_MAJOR@%$NCURSES_MAJOR%g
-s%@NCURSES_MINOR@%$NCURSES_MINOR%g
-s%@NCURSES_PATCH@%$NCURSES_PATCH%g
-s%@NCURSES_CONST@%%g
-s%@NCURSES_XNAMES@%1%g
-s%@OSPEED_TYPE@%speed_t%g
-s%@OSPEED_INCLUDES@%#include <termios.h>%g
-s%@cf_cv_rel_version@%$cf_cv_rel_version%g
-s%@cf_cv_abi_version@%$cf_cv_abi_version%g
-s%@cf_cv_builtin_bool@%1%g
-s%@cf_cv_type_of_bool@%$cf_cv_type_of_bool%g
-s%@cf_cv_shift_limit@%32%g
-s%@cf_cv_widec_shift@%8%g
-s%@cf_cv_typeof_chtype@%long%g
-s%@cf_cv_1UL@%1UL%g
-s%@cf_cv_cc_bool_type@%0%g
-
-EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-nc_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-nc_file=1 # Number of current file.
-nc_beg=1 # First line for current file.
-nc_end=$nc_max_sed_cmds # Line after last line for current file.
-nc_more_lines=:
-nc_sed_cmds=""
-while $nc_more_lines; do
- if test $nc_beg -gt 1; then
- sed "1,${nc_beg}d; ${nc_end}q" conftest.subs > conftest.s$nc_file
- else
- sed "${nc_end}q" conftest.subs > conftest.s$nc_file
- fi
- if test ! -s conftest.s$nc_file; then
- nc_more_lines=false
- rm -f conftest.s$nc_file
- else
- if test -z "$nc_sed_cmds"; then
- nc_sed_cmds="sed -f conftest.s$nc_file"
- else
- nc_sed_cmds="$nc_sed_cmds | sed -f conftest.s$nc_file"
- fi
- nc_file=`expr $nc_file + 1`
- nc_beg=$nc_end
- nc_end=`expr $nc_end + $nc_max_sed_cmds`
- fi
-done
-if test -z "$nc_sed_cmds"; then
- nc_sed_cmds=cat
-fi
-
-NC_CONFIG_FILES=${NC_CONFIG_FILES-"ncurses/MKterm.h.awk ncurses/curses.h ncurses/termcap.h ncurses/unctrl.h"}
-for nc_file in .. $NC_CONFIG_FILES; do if test "x$nc_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$nc_file" in
- *:*) nc_file_in=`echo "$nc_file"|sed 's%[^:]*:%%'`
- nc_file=`echo "$nc_file"|sed 's%:.*%%'` ;;
- *) nc_file_in=`echo "${nc_file}" | sed 's%ncurses%include%'`.in ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- nc_dir=`echo $nc_file|sed 's%/[^/][^/]*$%%'`
- if test "$nc_dir" != "$nc_file" && test "$nc_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$nc_dir" && mkdir "$nc_dir"
- nc_dir_suffix="/`echo $nc_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $nc_dir_suffix.
- nc_dots=`echo $nc_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- nc_dir_suffix= nc_dots=
- fi
-
- case "$nc_given_srcdir" in
- .) nc_srcdir=.
- if test -z "$nc_dots"; then nc_top_srcdir=.
- else nc_top_srcdir=`echo $nc_dots|sed 's%/$%%'`; fi ;;
- /*) nc_srcdir="$nc_given_srcdir$nc_dir_suffix"; nc_top_srcdir="$nc_given_srcdir" ;;
- *) # Relative path.
- nc_srcdir="$nc_dots$nc_given_srcdir$nc_dir_suffix"
- nc_top_srcdir="$nc_dots$nc_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) NC_INSTALL="$ac_given_INSTALL" ;;
- *) NC_INSTALL="$nc_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$nc_file"
- rm -f "$nc_file"
- configure_input="Generated automatically from `echo $nc_file_in|sed 's%.*/%%'` by configure."
- case "$nc_file" in
- *Makefile*) nc_comsub="1i\\
-# $configure_input" ;;
- *) nc_comsub= ;;
- esac
-
- nc_file_inputs=`echo $nc_file_in|sed -e "s%^%$nc_given_srcdir/%" -e "s%:% $nc_given_srcdir/%g"`
- sed -e "$nc_comsub
-s%@configure_input@%$configure_input%g
-s%@nc_srcdir@%$nc_srcdir%g
-s%@nc_top_srcdir@%$nc_top_srcdir%g
-s%@INSTALL@%$NC_INSTALL%g
-" $nc_file_inputs | (eval "$nc_sed_cmds") > $nc_file
-fi; done
-rm -f conftest.s*
-
-# 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.
-#
-# nc_d sets the value in "#define NAME VALUE" lines.
-nc_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-nc_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-nc_dC='\3'
-nc_dD='%g'
-# nc_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-nc_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-nc_uB='\([ ]\)%\1#\2define\3'
-nc_uC=' '
-nc_uD='\4%g'
-# nc_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-nc_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-nc_eB='$%\1#\2define\3'
-nc_eC=' '
-nc_eD='%g'
-
-NC_CONFIG_HEADERS="ncurses/ncurses_cfg.h:include/ncurses_cfg.hin"
-for nc_file in .. $NC_CONFIG_HEADERS; do if test "x$nc_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$nc_file" in
- *:*) nc_file_in=`echo "$nc_file"|sed 's%[^:]*:%%'`
- nc_file=`echo "$nc_file"|sed 's%:.*%%'` ;;
- *) nc_file_in="${nc_file}.in" ;;
- esac
-
- echo creating $nc_file
-
- rm -f conftest.frag conftest.in conftest.out
- nc_file_inputs=`echo $nc_file_in|sed -e "s%^%$nc_given_srcdir/%" -e "s%:% $nc_given_srcdir/%g"`
- cat $nc_file_inputs > conftest.in
-
- rm -f conftest.frag
- cat >> conftest.frag <<CEOF
-
-#define CC_HAS_INLINE_FUNCS 1
-#define GCC_NORETURN __attribute__((noreturn))
-#define GCC_PRINTF 1
-#define GCC_SCANF 1
-#define GCC_UNUSED __attribute__((unused))
-#define GOOD_SELECT 1
-#define HAVE_BUILTIN_H 1
-#define HAVE_DIRENT_H 1
-#define HAVE_ERRNO 1
-#define HAVE_FCNTL_H 1
-#define HAVE_FORM_H 1
-#define HAVE_GETOPT_H 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define HAVE_GETTIMEOFDAY 1
-#define HAVE_GETTTYNAM 1
-#define HAVE_ISASCII 1
-#define HAVE_LIBFORM 1
-#define HAVE_LIBMENU 1
-#define HAVE_LIBPANEL 1
-#define HAVE_LIMITS_H 1
-#define HAVE_LINK 1
-#define HAVE_LOCALE_H 1
-#define HAVE_LONG_FILE_NAMES 1
-#define HAVE_MEMCCPY 1
-#define HAVE_MENU_H 1
-#define HAVE_NANOSLEEP 1
-#define HAVE_NC_ALLOC_H 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define HAVE_PANEL_H 1
-#define HAVE_POLL 1
-#define HAVE_POLL_H 1
-#define HAVE_REGEX_H_FUNCS 1
-#define HAVE_REMOVE 1
-#define HAVE_SELECT 1
-#define HAVE_SETBUF 1
-#define HAVE_SETBUFFER 1
-#define HAVE_SETVBUF 1
-#define HAVE_SIGACTION 1
-#define HAVE_SIGVEC 1
-#define HAVE_SIZECHANGE 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define HAVE_STRDUP 1
-#define HAVE_SYMLINK 1
-#define HAVE_SYS_IOCTL_H 1
-#define HAVE_SYS_PARAM_H 1
-#define HAVE_SYS_SELECT_H 1
-#define HAVE_SYS_TIMES_H 1
-#define HAVE_SYS_TIME_H 1
-#define HAVE_SYS_TIME_SELECT 1
-#define HAVE_TCGETATTR 1
-#define HAVE_TERMIOS_H 1
-#define HAVE_TERMIO_H 1
-#define HAVE_TIMES 1
-#define HAVE_TTYENT_H 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define HAVE_TYPEINFO 1
-#define HAVE_UNISTD_H 1
-#define HAVE_VALUES_H 1
-#define HAVE_VFSCANF 1
-#define HAVE_VSNPRINTF 1
-#define HAVE_VSSCANF 1
-#define NCURSES_EXT_FUNCS 1
-#define NDEBUG 1
-#define PURE_TERMINFO 1
-#define RETSIGTYPE void
-#define STDC_HEADERS 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define SYSTEM_NAME "linux-gnu"
-#define TYPEOF_CHTYPE long
-#define USE_DATABASE 1
-#define USE_HASHMAP 1
-#define USE_LINKS 1
-#define NCURSES_NO_PADDING 1
-#define USE_SIGWINCH 1
-CEOF
- 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
-rm -f conftest.edit conftest.frag
-
- rm -f conftest.frag conftest.h
- echo "/* $nc_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $nc_file conftest.h 2>/dev/null; then
- echo "$nc_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- nc_dir=`echo $nc_file|sed 's%/[^/][^/]*$%%'`
- if test "$nc_dir" != "$nc_file" && test "$nc_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$nc_dir" && mkdir "$nc_dir"
- fi
- rm -f $nc_file
- mv conftest.h $nc_file
- fi
-fi; done
-
-
-SYS_NAME=`uname -a`
-if test -z "$SYS_NAME"; then SYS_NAME=unknown;fi
-
-NC_AWK=awk
-BUILD_CC=${BUILD_CC-gcc}
-NC_CC="${BUILD_CC} -I${nc_given_srcdir}/ncurses -Incurses -I${nc_given_srcdir}/include"
-NC_CPP="${NC_CC} -E"
-CF_LIST_MODELS="normal"
-#WITH_ECHO="yes"
-#WITH_OVERWRITE="yes"
-nc_cxx_library="yes"
-cf_cv_systype="Linux"
-cf_cv_rel_version="4.2"
-cf_cv_abi_version="4"
-cf_cv_do_symlinks="yes"
-cf_cv_rm_so_locs="no"
-
-
-rm -f headers.sed headers.sh
-
-echo creating headers.sh
-cat >headers.sh <<NC_EOF
-#!/bin/sh
-# This shell script is generated by the 'configure' script. It is invoked in a
-# subdirectory of the build tree. It generates a sed-script in the parent
-# directory that is used to adjust includes for header files that reside in a
-# subdirectory of /usr/include, etc.
-PRG=""
-while test \$# != 3
-do
-PRG="\$PRG \$1"; shift
-done
-DST=\$1
-REF=\$2
-SRC=\$3
-echo installing \$SRC in \$DST
-case \$DST in
-/*/include/*)
- TMP=\${TMPDIR-/tmp}/\`basename \$SRC\`
- if test ! -f ../headers.sed ; then
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> ../headers.sed
- done
- fi
- rm -f \$TMP
- sed -f ../headers.sed \$SRC > \$TMP
- eval \$PRG \$TMP \$DST
- rm -f \$TMP
- ;;
-*)
- eval \$PRG \$SRC \$DST
- ;;
-esac
-NC_EOF
-
-chmod 0755 headers.sh
-
-echo creating ncurses/term.h
-${NC_AWK} -f ncurses/MKterm.h.awk ${nc_given_srcdir}/include/Caps > ncurses/term.h
-sh ${nc_given_srcdir}/include/edit_cfg.sh ncurses/ncurses_cfg.h ncurses/term.h
-
-echo creating ncurses/hashsize.h
-sh ${nc_given_srcdir}/include/MKhashsize.sh ${nc_given_srcdir}/include/Caps > ncurses/hashsize.h
-
-echo creating ncurses/parametrized.h
-sh ${nc_given_srcdir}/include/MKparametrized.sh ${nc_given_srcdir}/include/Caps > ncurses/parametrized.h
-
-echo creating ncurses/termsort.c
-sh ${nc_given_srcdir}/progs/MKtermsort.sh "${NC_AWK}" ${nc_given_srcdir}/include/Caps > ncurses/termsort.c
-
-echo creating ncurses/fallback.c
-sh ${nc_given_srcdir}/ncurses/tinfo/MKfallback.sh > ncurses/fallback.c
-
-echo creating ncurses/lib_gen.c
-sh ${nc_given_srcdir}/ncurses/base/MKlib_gen.sh "${NC_CPP}" "${NC_AWK}" < ncurses/curses.h > ncurses/lib_gen.c
-
-echo creating ncurses/nomacros.h
-sh ${nc_given_srcdir}/ncurses/base/MKlib_gen.sh "${NC_CPP}" "${NC_AWK}" < ncurses/curses.h | fgrep undef > ncurses/nomacros.h
-
-echo creating ncurses/expanded.c
-sh ${nc_given_srcdir}/ncurses/tty/MKexpanded.sh "${NC_CPP}" >ncurses/expanded.c
-
-echo creating ncurses/comp_captab.c
-${NC_CC} -o make_hash -DMAIN_PROGRAM ${nc_given_srcdir}/ncurses/tinfo/comp_hash.c
-sh ${nc_given_srcdir}/ncurses/tinfo/MKcaptab.awk "${NC_AWK}" ${nc_given_srcdir}/include/Caps > ncurses/comp_captab.c
-rm -f make_hash
-
-echo creating ncurses/lib_keyname.c
-${NC_AWK} -f ${nc_given_srcdir}/ncurses/base/MKkeyname.awk ${nc_given_srcdir}/ncurses/tinfo/keys.list > ncurses/lib_keyname.c
-
-echo creating ncurses/names.c and ncurses/codes.c
-${NC_AWK} -f ${nc_given_srcdir}/ncurses/tinfo/MKnames.awk ${nc_given_srcdir}/include/Caps
-cat namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr >ncurses/names.c
-cat namehdr boolcodes numcodes strcodes codeftr > ncurses/codes.c
-rm -f namehdr nameftr codeftr boolnames boolfnames boolcodes numnames numfnames numcodes strnames strfnames strcodes
-
-echo creating ncurses/init_keytry.h
-${NC_CC} -o make_key ${nc_given_srcdir}/ncurses/tinfo/make_keys.c
-./make_key ${nc_given_srcdir}/ncurses/keys.list > ncurses/init_keytry.h
-rm -f make_key
-
-echo creating ncurses/unctrl.c
-echo | ${NC_AWK} -f ${nc_given_srcdir}/ncurses/base/MKunctrl.awk > ncurses/unctrl.c
-echo creating ncurses/terminfo.5
-sh ${nc_given_srcdir}/man/MKterminfo.sh ${nc_given_srcdir}/man/terminfo.head ${nc_given_srcdir}/include/Caps ${nc_given_srcdir}/man/terminfo.tail > ncurses/terminfo.5
diff --git a/ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sed b/ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sed
deleted file mode 100644
index 163eb7b..0000000
--- a/ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sed
+++ /dev/null
@@ -1,100 +0,0 @@
-s/captoinfo\.1m/captoinfo.1m/g
-s/clear\.1/clear.1m/g
-s/curs_addch\.3x/addch.3ncurses/g
-s/curs_addchstr\.3x/addchstr.3ncurses/g
-s/curs_addstr\.3x/addstr.3ncurses/g
-s/curs_attr\.3x/attr.3ncurses/g
-s/curs_beep\.3x/beep.3ncurses/g
-s/curs_bkgd\.3x/bkgd.3ncurses/g
-s/curs_border\.3x/border.3ncurses/g
-s/curs_clear\.3x/clear.3ncurses/g
-s/curs_color\.3x/color.3ncurses/g
-s/curs_delch\.3x/delch.3ncurses/g
-s/curs_deleteln\.3x/deleteln.3ncurses/g
-s/curs_getch\.3x/getch.3ncurses/g
-s/curs_getstr\.3x/getstr.3ncurses/g
-s/curs_getyx\.3x/getyx.3ncurses/g
-s/curs_inch\.3x/inch.3ncurses/g
-s/curs_inchstr\.3x/inchstr.3ncurses/g
-s/curs_initscr\.3x/initscr.3ncurses/g
-s/curs_inopts\.3x/inopts.3ncurses/g
-s/curs_insch\.3x/insch.3ncurses/g
-s/curs_insstr\.3x/insstr.3ncurses/g
-s/curs_instr\.3x/instr.3ncurses/g
-s/curs_kernel\.3x/kernel.3ncurses/g
-s/curs_mouse\.3x/mouse.3ncurses/g
-s/curs_move\.3x/move.3ncurses/g
-s/curs_outopts\.3x/outopts.3ncurses/g
-s/curs_overlay\.3x/overlay.3ncurses/g
-s/curs_pad\.3x/pad.3ncurses/g
-s/curs_print\.3x/print.3ncurses/g
-s/curs_printw\.3x/printw.3ncurses/g
-s/curs_refresh\.3x/refresh.3ncurses/g
-s/curs_scanw\.3x/scanw.3ncurses/g
-s/curs_scr_dmp\.3x/scr_dmp.3ncurses/g
-s/curs_scroll\.3x/scroll.3ncurses/g
-s/curs_slk\.3x/slk.3ncurses/g
-s/curs_termattrs\.3x/termattrs.3ncurses/g
-s/curs_termcap\.3x/termcap.3ncurses/g
-s/curs_terminfo\.3x/terminfo.3ncurses/g
-s/curs_touch\.3x/touch.3ncurses/g
-s/curs_util\.3x/util.3ncurses/g
-s/curs_window\.3x/window.3ncurses/g
-s/form\.3x/form.3form/g
-s/form_cursor\.3x/cursor.3form/g
-s/form_data\.3x/data.3form/g
-s/form_driver\.3x/driver.3form/g
-s/form_field\.3x/field.3form/g
-s/form_field_attributes\.3x/field_attributes.3form/g
-s/form_field_buffer\.3x/field_buffer.3form/g
-s/form_field_info\.3x/field_info.3form/g
-s/form_field_just\.3x/field_just.3form/g
-s/form_field_new\.3x/field_new.3form/g
-s/form_field_opts\.3x/field_opts.3form/g
-s/form_field_userptr\.3x/field_userptr.3form/g
-s/form_field_validation\.3x/field_validation.3form/g
-s/form_fieldtype\.3x/fieldtype.3form/g
-s/form_hook\.3x/hook.3form/g
-s/form_new\.3x/new.3form/g
-s/form_new_page\.3x/new_page.3form/g
-s/form_opts\.3x/opts.3form/g
-s/form_page\.3x/page.3form/g
-s/form_post\.3x/post.3form/g
-s/form_requestname\.3x/requestname.3form/g
-s/form_userptr\.3x/userptr.3form/g
-s/form_win\.3x/win.3form/g
-s/infocmp\.1m/infocmp.1m/g
-s/menu\.3x/menu.3menu/g
-s/menu_attribs\.3x/attribs.3menu/g
-s/menu_cursor\.3x/cursor.3menu/g
-s/menu_driver\.3x/driver.3menu/g
-s/menu_format\.3x/format.3menu/g
-s/menu_hook\.3x/hook.3menu/g
-s/menu_items\.3x/items.3menu/g
-s/menu_mark\.3x/mark.3menu/g
-s/menu_new\.3x/new.3menu/g
-s/menu_opts\.3x/opts.3menu/g
-s/menu_pattern\.3x/pattern.3menu/g
-s/menu_post\.3x/post.3menu/g
-s/menu_requestname\.3x/requestname.3menu/g
-s/menu_spacing\.3x/spacing.3menu/g
-s/menu_userptr\.3x/userptr.3menu/g
-s/menu_win\.3x/win.3menu/g
-s/mitem_current\.3x/menu_current.3menu/g
-s/mitem_name\.3x/menu_name.3menu/g
-s/mitem_new\.3x/menu_new.3menu/g
-s/mitem_opts\.3x/menu_opts.3menu/g
-s/mitem_userptr\.3x/menu_userptr.3menu/g
-s/mitem_value\.3x/menu_value.3menu/g
-s/mitem_visible\.3x/menu_visible.3menu/g
-s/ncurses\.3x/ncurses.3ncurses/g
-s/panel\.3x/panel.3curses/g
-s/resizeterm\.3x/resizeterm.3ncurses/g
-s/term\.5/term.5/g
-s/term\.7/term.7/g
-s/terminfo\.5/terminfo.5/g
-s/tic\.1m/tic.1m/g
-s/toe\.1m/toe.1m/g
-s/tput\.1/tput.1/g
-s/tset\.1/tset.1/g
-s/wresize\.3x/wresize.3ncurses/g
diff --git a/ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sh b/ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sh
deleted file mode 100755
index 558fff8..0000000
--- a/ncurses-5.2/sysdeps/unix/sysv/linux/edit_man.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-# this script is generated by the configure-script
-prefix=$1
-shift
-mandir=$1
-shift
-edit_man_sed=$1
-shift
-
-datadir="${prefix}/share"
-MKDIRS="mkinstalldirs"
-INSTALL="/usr/bin/install -c"
-INSTALL_DATA="${INSTALL} -m 644"
-TMP=${TMPDIR-/tmp}/man$$
-trap "rm -f $TMP" 0 1 2 5 15
-
-for i in $*
-do
-case $i in
-*.[0-9]*)
- section=`expr "$i" : '.*\.\([0-9]\)[xm]*'`;
- if [ ! -d $mandir/man${section} ]; then
- $MKDIRS $mandir/man$section
- fi
- source=`basename $i`
- target=`grep "^$source" man/man_db.renames | awk '{print $2}'`
- if test -z "$target" ; then
- echo '? missing rename for '$source
- target="$source"
- fi
- target="$mandir/man$section/$target"
- sed -e 's,@DATADIR@,$datadir,' < $i | sed -f ${edit_man_sed} >$TMP
- echo installing $target
- $INSTALL_DATA $TMP $target
- ;;
-esac
-done
diff --git a/ncurses-5.2/sysdeps/unix/sysv/linux/run_tic.sh b/ncurses-5.2/sysdeps/unix/sysv/linux/run_tic.sh
deleted file mode 100755
index aff8cc5..0000000
--- a/ncurses-5.2/sysdeps/unix/sysv/linux/run_tic.sh
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-# $Id$
-# 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.
-#
-# Parameters:
-# $1 = the common object directory.
-# $2 = source-directory, i.e., $(srcdir)
-# $3 = destination-directory path, i.e., $(ticdir)
-# $4 = install-prefix, if any
-#
-# Assumes:
-# The leaf directory names (bin, lib, shared, tabset, terminfo)
-#
-echo '** Building terminfo database, please wait...'
-#
-# Parameter parsing is primarily for debugging. The script is designed to
-# be run from the misc/Makefile as
-# make install.data
-
-prefix=/usr
-if test $# != 0 ; then
- common_objpfx=$1
- shift
-fi
-
-if test $# != 0 ; then
- srcdir=$1
- shift
-else
- srcdir=.
-fi
-
-if test $# != 0 ; then
- ticdir=$1
- shift
-else
- ticdir=$prefix/share/terminfo
-fi
-
-if test $# != 0 ; then
- IP=$1
- shift
-else
- IP=""
-fi
-
-TERMINFO=$IP$ticdir ; export TERMINFO
-umask 022
-
-# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's/\/share\//\/lib\//'`
-
-# Remove the old terminfo stuff; we don't care if it existed before, and it
-# would generate a lot of confusing error messages if we tried to overwrite it.
-# We explicitly remove its contents rather than the directory itself, in case
-# the directory is actually a symbolic link.
-( rm -fr $TERMINFO/[0-9A-Za-z] 2>/dev/null )
-
-# If we're not installing into /usr/share/, we'll have to adjust the location
-# of the tabset files in terminfo.src (which are in a parallel directory).
-TABSET=`echo $ticdir | sed -e 's/\/terminfo$/\/tabset/'`
-SRC=$srcdir/terminfo.src
-if test "x$TABSET" != "x/usr/share/tabset" ; then
- echo '** adjusting tabset paths'
- TMP=${TMPDIR-/tmp}/$$
- sed -e s:/usr/share/tabset:$TABSET:g $SRC >$TMP
- trap "rm -f $TMP" 0 1 2 5 15
- SRC=$TMP
-fi
-
-LD_LIBRARY_PATH=$common_objpfx:$common_objpfx/nss:$common_objpfx/ncurses \
- $common_objpfx/elf/ld.so \
- $common_objpfx/ncurses/tic -s $SRC
-if [ $? = 0 ]
-then
- echo '** built new '$TERMINFO
-else
- echo '? tic could not build '$TERMINFO
- exit 1
-fi
-
-# Make a symbolic link to provide compatibility with applications that expect
-# to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not
-# all systems support symbolic links, and those that do provide a variety
-# of options for 'test'.
-if test "$TICDIR" != "$TERMINFO" ; then
- ( rm -f $TICDIR 2>/dev/null )
- if ( cd $TICDIR 2>/dev/null )
- then
- cd $TICDIR
- TICDIR=`pwd`
- if test $TICDIR != $TERMINFO ; then
- # Well, we tried. Some systems lie to us, so the
- # installer will have to double-check.
- echo "Verify if $TICDIR and $TERMINFO are the same."
- echo "The new terminfo is in $TERMINFO; the other should be a link to it."
- echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
- fi
- else
- cd $IP$prefix
- # Construct a symbolic link that only assumes $ticdir has the
- # same $prefix as the other installed directories.
- RELATIVE=`echo $ticdir|sed -e 's:^'$prefix'/::'`
- if test "$RELATIVE" != "$ticdir" ; then
- RELATIVE=../`echo $ticdir|sed -e 's:^'$prefix'/::' -e 's:^/::'`
- fi
- if ( ln -s $RELATIVE $TICDIR )
- then
- echo '** linked '$TICDIR' for compatibility'
- fi
- fi
-fi
diff --git a/ncurses-5.2/tack/COPYING b/ncurses-5.2/tack/COPYING
deleted file mode 100644
index 60549be..0000000
--- a/ncurses-5.2/tack/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/ncurses-5.2/tack/HISTORY b/ncurses-5.2/tack/HISTORY
deleted file mode 100644
index 3fe2cab..0000000
--- a/ncurses-5.2/tack/HISTORY
+++ /dev/null
@@ -1,44 +0,0 @@
-
-Current history:
-
-2000/03/04 Fix a few spelling errors
-1999/09/04 Minor fix to build/link on BeOS
-1999/05/16 Minor fix to build/link on CLIX
-1999/05/09 Update to build/link on NeXT
-1999/04/17 Update to work with ncurses 5.0 beta1 (TERMTYPE struct)
-1999/02/07 Build with ncurses 4.2 981219 (renamed function)
-1998/01/09 1.00 First release under GPL
-1997/12/24 0.02 First version that requires ncurses
-1997/10/29 0.01 Second beta release to the ncurses mailing list.
-1997/10/06 0.00 First beta release to the ncurses mailing list.
-
-Ancient history: TACK -- the terminfo action checker
-
- The purpose of this program is to verify the correctness of
-terminfos and to calculate the pads needed for each capability.
-This program is not designed to test curses and therefore uses
-as little of curses as possible.
-
- This program was originally called TED. In 1991 it was
-released to USENET in comp.sources. TED was originally written to
-test both terminfos and termcaps. The original intent was to
-create a terminfo editor. This code fell quite short of its goal.
-Tests were controlled by command line switches and editing was done
-with pen and paper.
-
- In 1995 Eric S. Raymond got interested in the program and added
-a first cut at making the program menu driven. He also converted
-the code from K&R C to an ANSI/POSIX-conforming C. He re-christened
-the program TAC (Terminfo Action Checker). Eric also wrote a man
-page for TAC.
-
- In 1997 I decided to dust off the code and make it easier to
-use by the novice. I totally rewrote the menu system and added
-the editing features I originally planned for TED. I also did
-a total rewrite of the code that does the timings. In the process
-of rewriting the code I changed it to be more tightly coupled
-with ncurses. By this time someone had taken the name TAC so
-I re-christened the program TACK.
-
-Daniel Weaver
-<danw@znyx.com>
diff --git a/ncurses-5.2/tack/Makefile.in b/ncurses-5.2/tack/Makefile.in
deleted file mode 100644
index b2e0947..0000000
--- a/ncurses-5.2/tack/Makefile.in
+++ /dev/null
@@ -1,170 +0,0 @@
-# $Id$
-# Makefile for tack
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-x = @PROG_EXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-mandir = @mandir@/man1
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-INCDIR = $(srcdir)/../include
-CPPFLAGS = -DHAVE_CONFIG_H -I../tack -I$(srcdir) @CPPFLAGS@
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LD = @LD@
-LINK = @LINK_PROGS@ $(LIBTOOL) $(CC)
-LDFLAGS = @EXTRA_LDFLAGS@ \
- @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
-
-LDFLAGS_LIBTOOL = $(LDFLAGS)
-LDFLAGS_NORMAL = $(LDFLAGS)
-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
-LDFLAGS_PROFILE = $(LDFLAGS) -pg
-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lncurses@LIB_SUFFIX@ @LIBS@
-
-PROGS = tack$x
-
-# Default library, for linking applications
-DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-
-################################################################################
-all: $(PROGS)
-
-sources:
-
-install: install.tack
-uninstall: uninstall.tack
-
-# this line simplifies the configure-script
-libs \
-install.libs \
-uninstall.libs:
-
-install.tack: $(PROGS) \
- $(DESTDIR)$(bindir) \
- $(DESTDIR)$(mandir)
- $(LIBTOOL) $(INSTALL_PROGRAM) tack$x $(DESTDIR)$(bindir)/tack$x
- $(INSTALL_DATA) $(srcdir)/tack.1 $(DESTDIR)$(mandir)/tack.1
-
-uninstall.tack:
- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/tack$x
- -@rm -f $(DESTDIR)$(mandir)/tack.1
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(mandir) :
- $(srcdir)/../mkinstalldirs $@
-
-#
-# Rules for building tack
-#
-
-DEPS_TACK = \
- $(MODEL)/ansi.o \
- $(MODEL)/charset.o \
- $(MODEL)/color.o \
- $(MODEL)/control.o \
- $(MODEL)/crum.o \
- $(MODEL)/edit.o \
- $(MODEL)/fun.o \
- $(MODEL)/init.o \
- $(MODEL)/menu.o \
- $(MODEL)/modes.o \
- $(MODEL)/output.o \
- $(MODEL)/pad.o \
- $(MODEL)/scan.o \
- $(MODEL)/sync.o \
- $(MODEL)/sysdep.o \
- $(MODEL)/tack.o
-
-tack$x: $(DEPS_TACK) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_TACK) $(LDFLAGS_DEFAULT) -o $@
-
-#
-# Utility productions start here
-#
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-clean ::
- -rm -f tags TAGS do.tic *~
- -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
- tar -cvf tack.tar Makefile.in modules *.[ch] tack.1 HISTORY COPYING
-
-# These rules are used to allow "make -n" to work on a clean directory-tree
-../include/hashsize.h \
-../include/parametrized.h \
-../include/term.h :
- cd ../include; $(MAKE) $(CF_MFLAGS)
-
-$(DEPS_CURSES) :
- cd ../ncurses; $(MAKE) $(CF_MFLAGS)
-
-lint:
- $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/*.c $(LINT_LIBS)
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.2/tack/README b/ncurses-5.2/tack/README
deleted file mode 100644
index 231f8a4..0000000
--- a/ncurses-5.2/tack/README
+++ /dev/null
@@ -1,14 +0,0 @@
--- $Id$
-
-The 'tack' program is a diagnostic that is designed to create and
-verify the correctness of terminfo's. This program can be used to
-create new terminal descriptions that are not included in the standard
-release. Although 'tack' is distributed with ncurses, it is not an
-integral part of ncurses. It may be removed from the release without
-limiting the usefulness of ncurses on those terminals described in the
-terminfo data base. The best way to remove 'tack' from the build is
-to delete or rename the 'tack' directory before running the configure
-script.
-
-Unlike most of ncurses the 'tack' program is covered under the GNU
-Public License.
diff --git a/ncurses-5.2/tack/ansi.c b/ncurses-5.2/tack/ansi.c
deleted file mode 100644
index 437fe44..0000000
--- a/ncurses-5.2/tack/ansi.c
+++ /dev/null
@@ -1,853 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Standalone tests for ANSI terminals. Three entry points:
- * test_ansi_graphics(), test_ansi_reports() and test_ansi_sgr().
- */
-
-/*****************************************************************************
- *
- * Test ANSI status reports
- *
- *****************************************************************************/
-
-/* ASCII control characters */
-#define A_DC1 0x11 /* Control Q */
-#define A_DC3 0x13 /* Control S */
-#define A_ESC 0x1b
-#define A_DCS 0x90
-#define A_CSI 0x9b
-#define A_ST 0x9c
-
-#define MAX_MODES 256
-
-static char default_bank[] = "\033(B\017";
-static int private_use, ape, terminal_class;
-static short ansi_value[256];
-static unsigned char ansi_buf[512], pack_buf[512];
-
-struct ansi_reports {
- int lvl, final;
- const char *text;
- const char *request;
-};
-
-static struct ansi_reports report_list[] = {
- {0, 'c', "(DA) Primary device attributes", "\033[0c"},
- {1, 0, "(DSR) Terminal status", "\033[5n"},
- {1, 'R', "(DSR) Cursor position", "\033[6n"},
- {62, 0, "(DA) Secondary device attributes", "\033[>0c"},
- {62, 0, "(DSR) Printer status", "\033[?15n"},
- {62, 0, "(DSR) Function key definition", "\033[?25n"},
- {62, 0, "(DSR) Keyboard language", "\033[?26n"},
- {63, 0, "(DECRQSS) Data destination", "\033P$q$}\033\\"},
- {63, 0, "(DECRQSS) Status line type", "\033P$q$~\033\\"},
- {63, 0, "(DECRQSS) Erase attribute", "\033P$q\"q\033\\"},
- {63, 0, "(DECRQSS) Personality", "\033P$q\"p\033\\"},
- {63, 0, "(DECRQSS) Top and bottom margins", "\033P$qr\033\\"},
- {63, 0, "(DECRQSS) Character attributes", "\033P$qm\033\\"},
- {63, 0, "(DECRQSS) Illegal request", "\033P$q@\033\\"},
- {63, 0, "(DECRQUPSS) User pref supplemental set", "\033[&u"},
- {63, 0, "(DECRQPSR) Cursor information", "\033[1$w"},
- {63, 0, "(DECRQPSR) Tab stop information", "\033[2$w"},
- {64, 0, "(DA) Tertiary device attributes", "\033[=0c"},
- {64, 0, "(DSR) Extended cursor position", "\033[?6n"},
- {64, 0, "(DSR) Macro space", "\033[?62n"},
- {64, 0, "(DSR) Memory checksum", "\033[?63n"},
- {64, 0, "(DSR) Data integrity", "\033[?75n"},
- {64, 0, "(DSR) Multiple session status", "\033[?85n"},
- {64, 0, "(DECRQSS) Attribute change extent", "\033P$q*x\033\\"},
- {64, 0, "(DECRQSS) Columns per page", "\033P$q$|\033\\"},
- {64, 0, "(DECRQSS) Lines per page", "\033P$qt\033\\"},
- {64, 0, "(DECRQSS) Lines per screen", "\033P$q*|\033\\"},
- {64, 0, "(DECRQSS) Left and right margins", "\033P$qs\033\\"},
- {64, 0, "(DECRQSS) Local functions", "\033P$q+q\033\\"},
- {64, 0, "(DECRQSS) Local function key control", "\033P$q=}\033\\"},
- {64, 0, "(DECRQSS) Select modifier key reporting", "\033P$q+r\033\\"},
- {64, 0, "(DECRQDE) Window report", "\033[\"v"},
- {0, 0, 0, 0}
-};
-
-struct request_control {
- const char *text;
- const char *expect;
- const char *request;
- const char *set_mode;
- const char *reset_mode;
-};
-
-/* Request control function selection or setting */
-static const struct request_control rqss[] = {
- {"Data sent to screen", "0", "$}", "\033[0$}", 0},
- {"Data sent to disabled status line", "0", "$}", 0, 0},
- {"\033[0$~\033[1$}", "\033[0$}", 0, 0, 0},
- {"Data sent to enabled status line", "1", "$}", 0, 0},
- {"\033[2$~\033[1$}", "\033[0$}", 0, 0, 0},
- {"Disable status line", "0", "$~", "\033[0$~", 0},
- {"Top status line", "1", "$~", "\033[1$~", 0},
- {"Bottom status line", "2", "$~", "\033[2$~", 0},
- {"Erasable character", "0", "\"q", "\033[0\"q", 0},
- {"Nonerasable character", "1", "\"q", "\033[1\"q", "\033[0\"q"},
- {"Top and bottom margins", "3;10", "r", "\0337\033[3;10r", 0},
- {"\033[r\0338", 0, 0, 0, 0},
- {"Top and bottom margins", "default", "r", "\0337\033[r", "\0338"},
- {"Character attributes, dim, bold", "1", "m", "\033[2;1m", "\033[m"},
- {"Character attributes, bold, dim", "2", "m", "\033[1;2m", "\033[m"},
- {"Character attributes, under, rev", "4;7", "m", "\033[4;7m", "\033[m"},
- {"Character attributes, color", "35;42", "m", "\033[35;42m", "\033[m"},
- {"All character attributes", "", "m", "\033[1;2;3;4;5;6;7;8;9m", 0},
- {"\033[m", 0, 0, 0, 0},
- {0, 0, 0, 0, 0}
-};
-
-
-/*
-** read_ansi()
-**
-** read an ANSI status report from terminal
-*/
-static void
-read_ansi(void)
-{
- int ch, i, j, last_escape;
-
- fflush(stdout);
- read_key(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++) {
- if (ch == A_ESC) {
- if (last_escape == A_ESC) {
- pack_buf[j++] = A_ESC;
- }
- last_escape = A_ESC;
- } else
- if (last_escape == A_ESC && ch >= '@' && ch <= '_') {
- pack_buf[j++] = last_escape = ch + 0x40;
- } else
- if (last_escape != A_CSI || (ch > 0x20 && ch != 0x80)) {
- if (last_escape == A_ESC) {
- pack_buf[j++] = A_ESC;
- }
- if (ch > 0x80 && ch < 0xa0) {
- last_escape = ch;
- }
- pack_buf[j++] = ch;
- }
- }
- if (last_escape == A_ESC) {
- pack_buf[j++] = A_ESC;
- }
- pack_buf[j] = '\0';
- return;
-}
-
-/*
-** valid_mode(expected)
-**
-** read a terminal mode status report and parse the result
-** Return TRUE if we got the expected terminating character.
-*/
-static int
-valid_mode(int expected)
-{
- char *s;
- int ch, terminator;
-
- read_ansi();
-
- ape = 0;
- ch = pack_buf[0] & 0xff;
- ansi_value[0] = 0;
- if (ch != A_CSI && ch != A_DCS)
- return FALSE;
-
- s = pack_buf + 1;
- private_use = 0;
- if ((*s >= '<') & (*s <= '?')) {
- private_use = *s++;
- }
- terminator = 0;
- for (; (ch = *s); s++) {
- if (ch >= '0' && ch <= '9')
- ansi_value[ape] = ansi_value[ape] * 10 + ch - '0';
- else if (ch == ';' || ch == ':')
- ansi_value[++ape] = 0;
- else if (ch >= '<' && ch <= '?')
- private_use = ch;
- else if (ch >= ' ')
- terminator = (terminator << 8) | ch;
- else
- break;
- }
- return terminator == expected;
-}
-
-/*
-** read_reports()
-**
-** read all the reports in the ANSI report structure
-*/
-static int
-read_reports(void)
-{
- int i, j, k, tc, vcr, lc;
- char *s;
-
- lc = 5;
- terminal_class = tc = 0;
- for (i = 0; report_list[i].text; i++, lc++) {
- if (terminal_class < report_list[i].lvl &&
- tc < report_list[i].lvl) {
- put_crlf();
- menu_prompt();
- ptext("/status [q] > ");
- j = wait_here();
- if (j != 'n' && j != 'N')
- return 0;
- tc = report_list[i].lvl;
- lc = 1;
- } else if (lc + 2 >= lines) {
- put_crlf();
- ptext("Hit any key to continue ");
- (void) wait_here();
- lc = 1;
- }
- sprintf(temp, "%s (%s) ", report_list[i].text,
- expand_command(report_list[i].request));
- ptext(temp);
- for (j = strlen(temp); j < 49; j++)
- putchp(' ');
- tc_putp(report_list[i].request);
- vcr = 0;
- if (report_list[i].final == 0) {
- read_ansi();
- } else if (valid_mode(report_list[i].final))
- switch (report_list[i].final) {
- case 'c':
- terminal_class = ansi_value[0];
- break;
- case 'R':
- vcr = TRUE;
- break;
- }
- j = pack_buf[0] & 0xff;
- 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++)
- putchp(' ');
- }
- s = expand(ansi_buf);
- if (char_count + expand_chars >= columns) {
- put_str("\r\n ");
- lc++;
- }
- putln(s);
- if (vcr) { /* find out how big the screen is */
- tc_putp(report_list[i].request);
- if (!valid_mode('R'))
- continue;
- j = ansi_value[0];
- k = ansi_value[1];
- tc_putp("\033[255B\033[255C\033[6n");
- if (!valid_mode('R'))
- continue;
- sprintf(temp, "\033[%d;%dH", j, k);
- tc_putp(temp);
- ptext("(DSR) Screen size (CSI 6 n)");
- for (j = char_count; j < 50; j++)
- putchp(' ');
- sprintf(temp, "%d x %d", ansi_value[1], ansi_value[0]);
- ptextln(temp);
-
- }
- }
- menu_prompt();
- ptext("/status r->repeat test, <return> to continue > ");
- return wait_here();
-}
-
-/*
-** request_cfss()
-**
-** Request Control function selection or settings
-*/
-static int
-request_cfss(void)
-{
- int i, j, k, l, ch;
- char *s;
-
- put_clear();
- ptextln("Request Expected Received");
- put_crlf();
- for (i = 0; rqss[i].text; i++) {
- ptext(rqss[i].text);
- j = strlen(rqss[i].text) + strlen(rqss[i].expect);
- putchp(' ');
- for (j++; j < 40; j++)
- putchp(' ');
- ptext(rqss[i].expect);
- putchp(' ');
- tc_putp(rqss[i].set_mode);
- sprintf(temp, "\033P$q%s\033\\", rqss[i].request);
- tc_putp(temp);
- read_ansi();
- tc_putp(rqss[i].reset_mode);
- putchp(' ');
- for (j = 0; ansi_buf[j]; j++) {
- if (ansi_buf[j] == 'r') {
- for (k = j++; (ch = (ansi_buf[k] & 0xff)); k++)
- if (ch == A_ESC) {
- break;
- } else if (ch == A_ST) {
- break;
- }
- ansi_buf[k] = '\0';
- s = expand(&ansi_buf[j]);
- if (char_count + expand_chars >= columns)
- put_str("\r\n ");
- put_str(s);
- }
- }
- put_crlf();
- }
- /* calculate the valid attributes */
- ptext("Valid attributes: 0");
- j = 0;
- for (i = 1; i < 20; i++) {
- sprintf(temp, "\033[0;%dm\033P$qm\033\\", i);
- tc_putp(temp);
- (void) valid_mode('m');
- if (ape > 0) {
- j = i;
- sprintf(temp, "\033[0m; %d", i);
- tc_putp(temp);
- }
- }
- put_crlf();
- /* calculate how many parameters can be sent */
- ptext("Max number of parameters: ");
- sprintf(temp, "%dm\033P$qm\033\\", j);
- l = -1;
- if (j > 0)
- for (l = 1; l < 33; l++) {
- tc_putp("\033[0");
- for (ch = 1; ch <= l; ch++)
- put_this(';');
- tc_putp(temp);
- (void) valid_mode('m');
- if (ape == 0)
- break;
- }
- tc_putp("\033[m");
- if (l >= 0) {
- sprintf(temp, "%d", l);
- ptext(temp);
- } else
- ptext("unknown");
- put_crlf();
- return wait_here();
-}
-
-/*
-** mode_display(puc, mode, initial, set, reset)
-**
-** print the mode display entry
-*/
-static void
-mode_display(const char *p, int n, int c, char s, char r)
-{
- int k;
-
- sprintf(temp, "%s%d (%c, %c, %c)", p, n, c, s, r);
- k = strlen(temp);
- if (char_count + k >= columns)
- put_crlf();
- for (; k < 14; k++)
- putchp(' ');
- put_str(temp);
-}
-
-/*
-** terminal_state()
-**
-** test DECRQM status reports
-*/
-static void
-terminal_state(void)
-{
- static const char *puc[] = {"", "<", "=", ">", "?", 0};
-
- int i, j, k, l, modes_found;
- char *s;
- char buf[256], tms[256];
- int mode_puc[MAX_MODES], mode_number[MAX_MODES];
- char set_value[MAX_MODES], reset_value[MAX_MODES];
- char current_value[MAX_MODES];
-
- ptext("Testing terminal mode status. (CSI 0 $ p)");
- tc_putp("\033[0$p");
- modes_found = 0;
- tms[0] = '\0';
- if (valid_mode(('$' << 8) | 'y')) {
- for (i = 0; puc[i]; i++) {
- put_crlf();
- if (i) {
- sprintf(temp, "Private use: %c", puc[i][0]);
- } else {
- strcpy(temp, "Standard modes:");
- }
- k = strlen(temp);
- ptext(temp);
- for (j = 0; j < (int) sizeof(buf); buf[j++] = ' ')
- ;
- for (j = l = 0; j < 255 && j - l < 50; j++) {
- sprintf(temp, "\033[%s%d$p", puc[i], j);
- tc_putp(temp);
- if (!valid_mode(('$' << 8) | 'y')) {
- /* not valid, save terminating value */
- s = expand(ansi_buf);
- sprintf(tms, "%s%s%d %s ", tms,
- puc[i], j, s);
- break;
- }
- if (private_use != puc[i][0])
- break;
- if (ansi_value[0] != j)
- break;
- if (ansi_value[1]) {
- l = j;
- if (k > 70) {
- buf[k] = '\0';
- put_crlf();
- ptextln(buf);
- for (k = 0; k < (int) sizeof(buf);) {
- buf[k++] = ' ';
- }
- k = 0;
- }
- sprintf(temp, " %d", j);
- ptext(temp);
- k += strlen(temp);
- buf[k - 1] = ansi_value[1] + '0';
- if (modes_found >= MAX_MODES)
- continue;
- current_value[modes_found] =
- ansi_value[1] + '0';
- /* some modes never return */
- if ((i == 0 && j == 13) /* control execution */
- || (puc[i][0] == '?' && j == 2)) /* VT52 */
- set_value[modes_found] =
- reset_value[modes_found] = '-';
- else
- set_value[modes_found] =
- reset_value[modes_found] = ' ';
- mode_puc[modes_found] = i;
- mode_number[modes_found++] = j;
- }
- }
- buf[k] = '\0';
- if (buf[k - 1] != ' ') {
- put_crlf();
- ptext(buf);
- }
- }
-
- if ((i = modes_found) != 0) {
- put_crlf();
- put_crlf();
- if (tms[0]) {
- ptextln(tms);
- }
- ptext("Hit 'Y' to test mode set/reset states: ");
- i = wait_here();
- }
- if (i == 'y' || i == 'Y')
- while (1) {
-#ifdef STATUSFIX
- FILE *fp;
-
-#ifdef TEDANSI
- fp = fopen("ted.ansi", "w");
-#else
- fp = fopen("/dev/console", "w");
-#endif
-#endif
- for (i = j = 0; j < modes_found; j = ++i >> 1) {
- if (set_value[j] == '-')
- continue;
- k = (current_value[j] ^ i) & 1;
- sprintf(temp, "\033[%s%d%c\033[%s%d$p",
- puc[mode_puc[j]], mode_number[j],
- k ? 'l' : 'h',
- puc[mode_puc[j]], mode_number[j]);
-#ifdef STATUSFIX
- if (fp) {
- fprintf(fp, "%s\n", expand(temp));
- fflush(fp);
- }
-#endif
- tc_putp(temp);
- if (!valid_mode(('$' << 8) | 'y'))
- continue;
- if (k) {
- reset_value[j] = ansi_value[1] + '0';
- } else {
- set_value[j] = ansi_value[1] + '0';
- }
- }
- put_str("\033[30l"); /* added for GORT bug
- (WY-185) */
-#ifdef STATUSFIX
- if (fp)
- fclose(fp);
-#endif
- tty_set();
- /* print the results */
- put_clear();
- putln("mode (initial, set, reset)");
- for (j = 0; j < modes_found; j++) {
- mode_display(puc[mode_puc[j]], mode_number[j],
- current_value[j], set_value[j], reset_value[j]);
- }
- ptext("\n\nHit 'R' to repeat test. 'S' to sort results: ");
- i = wait_here();
- if (i == 's' || i == 'S') { /* print the same stuff,
- sorted by
- current_value */
- put_crlf();
- for (i = '1'; i <= '4'; i++) {
- for (j = 0; j < modes_found; j++) {
- if (current_value[j] == i)
- mode_display(puc[mode_puc[j]],
- mode_number[j], current_value[j],
- set_value[j], reset_value[j]);
- }
- }
- ptext("\n\nHit 'R' to repeat test: ");
- i = wait_here();
- }
- if (i != 'r' && i != 'R')
- break;
- tty_raw(1, char_mask);
- }
- } else {
- tty_set();
- }
-}
-
-
-/*
-** ansi_report_help()
-**
-** Display the informational data for the ANSI report test.
-*/
-static void
-ansi_report_help(void)
-{
- ptext("Begin ANSI status report testing. ");
- ptext(" Parity bit set will be displayed in reverse video. ");
- ptext(" If the terminal hangs, hit any alphabetic key. ");
- ptextln(" Use n to continue testing. Use q to quit.");
- put_crlf();
-}
-
-/*
-** test_ansi_reports()
-**
-** Test the ANSI status report functions
-*/
-void
-tools_status(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i;
-
- put_clear();
- ansi_report_help();
- tty_raw(1, char_mask);
-
- do {
- i = read_reports();
- if (i != 'r' && i != 'R') {
- *ch = i;
- return;
- }
- } while (i);
-
- if (terminal_class >= 63) {
- do {
- i = request_cfss();
- } while (i == 'r' || i == 'R');
- *ch = i;
- terminal_state();
- } else {
- tty_set();
- }
-}
-
-
-/*
-** display_sgr()
-**
-** Test a range of ANSI sgr attributes
-** puc -> Private Use Character
-*/
-static void
-display_sgr(int puc)
-{
- int k;
-
- temp[0] = puc;
- temp[1] = '\0';
- for (k = 0; k < 80; k++) {
- if (char_count + 8 > 80)
- put_crlf();
- else if (char_count + 8 > columns)
- put_crlf();
- else if (k > 0)
- printf(" ");
- printf("\033[%s%dmMode %2d\033[0m", temp, k, k);
- char_count += 8;
- if (puc == '\0') {
- if (k == 19)
- printf("\033[10m");
- if (k == 39)
- printf("\033[37m");
- if (k == 49)
- printf("\033[40m");
- }
- }
- put_crlf();
- if (puc == '<')
- printf("\033[<1m");
- else if (puc)
- printf("\033[%s0m", temp);
- set_attr(0);
-}
-
-/*
-** print_sgr20(on, off)
-**
-** print the sgr line for sgr20()
-*/
-static void
-print_sgr20(int on, int off)
-{
- if (char_count > columns - 13) {
- put_crlf();
- } else if (char_count) {
- put_str(" ");
- }
- char_count += 11;
- printf("%d/%d \033[%dmon\033[%dm off\033[0m", on, off, on, off);
-}
-
-/*
-** sgr20(void)
-**
-** display the enter/exit attributes 1-9 and 20-29
-*/
-static void
-sgr20(void)
-{
- int k;
-
- put_crlf();
- ptextln("Test enter/exit attributes 1-9 and 21-29.");
- for (k = 1; k < 10; k++) {
- print_sgr20(k, k + 20);
- }
- print_sgr20(1, 22); /* bold */
- print_sgr20(2, 22); /* dim */
- print_sgr20(8, 22); /* blank */
- printf("\033[0m");
- set_attr(0);
-}
-
-/*
-** tools_sgr(testlist, state, ch)
-**
-** Run the ANSI graphics rendition mode tool
-** Return the last character typed.
-*/
-void
-tools_sgr(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int k;
-
- put_clear();
- for (k = 0;;) {
- display_sgr(k);
- put_crlf();
- menu_prompt();
- ptext("/sgr Enter =><?r [<cr>] > ");
- k = wait_here();
- if ((k == 'r') || (k == 'R')) {
- k = 0;
- } else if ((k < '<') || (k > '?')) {
- break;
- }
- }
- sgr20();
-
- put_newlines(2);
- *ch = REQUEST_PROMPT;
-}
-
-/*****************************************************************************
- *
- * Test ANSI graphics
- *
- *****************************************************************************/
-/*
-** select_bank(bank)
-**
-** select a graphics character set for ANSI terminals
-*/
-static void
-select_bank(char *bank)
-{
- tc_putp(bank);
- switch (bank[1] & 3) {
- case 0:
- putchp('O' & 0x1f); /* control O */
- break;
- case 1:
- putchp('N' & 0x1f); /* control N */
- tc_putp("\033~");
- break;
- case 2:
- tc_putp("\033n\033}");
- break;
- case 3:
- tc_putp("\033o\033|");
- break;
- }
-}
-
-/*
-** show_characters(bank, bias)
-**
-** print the ANSI graphics characters
-*/
-static void
-show_characters(char *bank, int bias)
-{
- int i;
-
- sprintf(temp, "G%d GL ", bank[1] & 3);
- ptext(temp);
- select_bank(bank);
- for (i = ' '; i < 0x80; i++) {
- if (char_count >= columns ||
- (i != ' ' && (i & 31) == 0))
- put_str("\n ");
- putchp(i + bias);
- }
- select_bank(default_bank);
- put_str(" DEL <");
- select_bank(bank);
- putchp(0x7f + bias);
- select_bank(default_bank);
- putchp('>');
- put_crlf();
- put_crlf();
-}
-
-
-/* ANSI graphics test
- 94 96 character sets
- G0 ( ,
- G1 ) -
- G2 * .
- G3 + /
-
-Standard Definitions
- A UK
- B US ASCII
-
-Dec extended definitions
- 0 Special graphics
-
- */
-
-/*
-** tools_charset(testlist, state, ch)
-**
-** Run the ANSI alt-charset mode tool
-*/
-void
-tools_charset(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *chp GCC_UNUSED)
-{
- int j, ch;
- char bank[32];
-
- put_clear();
- ptext("Enter the bank ()*+,-./ followed by the character set");
- ptext(" 0123456789:;<=>? for private use, and");
- ptextln(" @A...Z[\\]^_`a...z{|}~ for standard sets.");
- strcpy(bank, "\033)0");
- for (; bank[0];) {
- put_crlf();
- show_characters(bank, 0);
-
- /* G0 will not print in GR */
- if (bank[1] & 3) {
- show_characters(bank, 0x80);
- }
- ptext("bank+set> ");
- for (j = 1; (ch = getchp(char_mask)); j++) {
- if (ch == EOF)
- break;
- putchp(ch);
- if (j == 1 && ch > '/')
- j++;
- bank[j] = ch;
- if (ch < ' ' || ch > '/')
- break;
- if (j + 1 >= (int) sizeof(bank))
- break;
- }
- if (j == 1)
- break;
- if (bank[j] < '0' || bank[j] > '~')
- break;
- bank[j + 1] = '\0';
- }
- put_crlf();
-}
diff --git a/ncurses-5.2/tack/charset.c b/ncurses-5.2/tack/charset.c
deleted file mode 100644
index deb5bb3..0000000
--- a/ncurses-5.2/tack/charset.c
+++ /dev/null
@@ -1,709 +0,0 @@
-/*
-** Copyright (C) 1991, 1997-2000 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- Menu definitions for alternate character set and SGR tests.
-*/
-
-static void charset_bel(struct test_list *t, int *state, int *ch);
-static void charset_flash(struct test_list *t, int *state, int *ch);
-static void charset_civis(struct test_list *t, int *state, int *ch);
-static void charset_cvvis(struct test_list *t, int *state, int *ch);
-static void charset_cnorm(struct test_list *t, int *state, int *ch);
-static void charset_hs(struct test_list *t, int *state, int *ch);
-static void charset_status(struct test_list *t, int *state, int *ch);
-static void charset_dsl(struct test_list *t, int *state, int *ch);
-static void charset_enacs(struct test_list *t, int *state, int *ch);
-static void charset_smacs(struct test_list *t, int *state, int *ch);
-static void charset_attributes(struct test_list *t, int *state, int *ch);
-static void charset_sgr(struct test_list *t, int *state, int *ch);
-
-struct test_list acs_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT, 3, "bel", 0, 0, charset_bel, 0},
- {MENU_NEXT, 3, "flash", 0, 0, charset_flash, 0},
- {MENU_NEXT, 3, "civis", 0, 0, charset_civis, 0},
- {MENU_NEXT, 3, "cvvis", 0, 0, charset_cvvis, 0},
- {MENU_NEXT, 3, "cnorm", 0, 0, charset_cnorm, 0},
- {MENU_NEXT, 3, "hs", 0, 0, charset_hs, 0},
- {MENU_NEXT, 3, "tsl) (fsl) (wsl", "hs", 0, charset_status, 0},
- {MENU_NEXT, 3, "dsl", "hs", 0, charset_dsl, 0},
- {MENU_NEXT, 0, "acsc) (enacs) (smacs) (rmacs", 0, 0, charset_enacs, 0},
- {MENU_NEXT, 0, "smacs) (rmacs", 0, 0, charset_smacs, 0},
- {MENU_NEXT, 11, 0, 0, 0, charset_attributes, 0},
- {MENU_NEXT, 11, "sgr) (sgr0", "ma", 0, charset_sgr, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-const struct mode_list alt_modes[] = {
- {"normal", "(sgr0)", "(sgr0)", 1},
- {"standout", "(smso)", "(rmso)", 2},
- {"underline", "(smul)", "(rmul)", 4},
- {"reverse", "(rev)", "(sgr0)", 8},
- {"blink", "(blink)", "(sgr0)", 16},
- {"dim", "(dim)", "(sgr0)", 32},
- {"bold", "(bold)", "(sgr0)", 64},
- {"invis", "(invis)", "(sgr0)", 128},
- {"protect", "(prot)", "(sgr0)", 256},
- {"altcharset", "(smacs)", "(rmacs)", 512}
-};
-
-/* On many terminals the underline attribute is the last scan line.
- This is OK unless the following line is reverse video.
- Then the underline attribute does not show up. The following map
- will reorder the display so that the underline attribute will
- show up. */
-const int mode_map[10] = {0, 1, 3, 4, 5, 6, 7, 8, 9, 2};
-
-struct graphics_pair {
- unsigned char c;
- const char *name;
-};
-
-static struct graphics_pair glyph[] = {
- {'+', "arrow pointing right"},
- {',', "arrow pointing left"},
- {'.', "arrow pointing down"},
- {'0', "solid square block"},
- {'i', "lantern symbol"},
- {'-', "arrow pointing up"},
- {'`', "diamond"},
- {'a', "checker board (stipple)"},
- {'f', "degree symbol"},
- {'g', "plus/minus"},
- {'h', "board of squares"},
- {'j', "lower right corner"},
- {'k', "upper right corner"},
- {'l', "upper left corner"},
- {'m', "lower left corner"},
- {'n', "plus"},
- {'o', "scan line 1"},
- {'p', "scan line 3"},
- {'q', "horizontal line"},
- {'r', "scan line 7"},
- {'s', "scan line 9"},
- {'t', "left tee (|-)"},
- {'u', "right tee (-|)"},
- {'v', "bottom tee(_|_)"},
- {'w', "top tee (T)"},
- {'x', "vertical line"},
- {'y', "less/equal"},
- {'z', "greater/equal"},
- {'{', "Pi"},
- {'|', "not equal"},
- {'}', "UK pound sign"},
- {'~', "bullet"},
- {'\0', "\0"}
-};
-
-/*
-** charset_hs(test_list, status, ch)
-**
-** (hs) test Has status line
-*/
-static void
-charset_hs(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (has_status_line != 1) {
- ptext("(hs) Has-status line is not defined. ");
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** charset_status(test_list, status, ch)
-**
-** (tsl) (fsl) (wsl) test Status line
-*/
-static void
-charset_status(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, max;
- char *s;
- static char m[] = "*** status line *** 123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.";
-
- if (has_status_line != 1) {
- return;
- }
- put_clear();
- max = width_status_line == -1 ? columns : width_status_line;
- sprintf(temp, "Terminal has status line of %d characters", max);
- ptextln(temp);
-
- put_str("This line s");
- s = tparm(to_status_line, 0);
- tc_putp(s);
- for (i = 0; i < max; i++)
- putchp(m[i]);
- tc_putp(from_status_line);
- putln("hould not be broken.");
- ptextln("If the previous line is not a complete sentence then (tsl) to-status-line, (fsl) from-status-line, or (wsl) width-of-status-line is incorrect." );
- generic_done_message(t, state, ch);
-}
-
-/*
-** charset_dsl(test_list, status, ch)
-**
-** (dsl) test Disable status line
-*/
-static void
-charset_dsl(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (has_status_line != 1) {
- return;
- }
- if (dis_status_line) {
- ptextln("Disable status line (dsl)");
- tc_putp(dis_status_line);
- ptext("If you can still see the status line then (dsl) disable-status-line has failed. ");
- } else {
- ptext("(dsl) Disable-status-line is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-
-void
-eat_cookie(void)
-{ /* put a blank if this is not a magic cookie
- terminal */
- if (magic_cookie_glitch < 1)
- putchp(' ');
-}
-
-
-void
-put_mode(char *s)
-{ /* send the attribute string (with or without
- % execution) */
- tc_putp(tparm(s)); /* allow % execution */
-}
-
-
-void
-set_attr(int a)
-{ /* set the attribute from the bits in a */
- int i, b[32];
-
- if (magic_cookie_glitch > 0) {
- char_count += magic_cookie_glitch;
- }
- if (a == 0 && exit_attribute_mode) {
- put_mode(exit_attribute_mode);
- return;
- }
- for (i = 0; i < 31; i++) {
- b[i] = (a >> i) & 1;
- }
- tc_putp(tparm(set_attributes, b[1], b[2], b[3], b[4], b[5],
- b[6], b[7], b[8], b[9]));
-}
-
-/*
-** charset_sgr(test_list, status, ch)
-**
-** (sgr) test Set Graphics Rendition
-*/
-static void
-charset_sgr(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!set_attributes) {
- ptext("(sgr) Set-graphics-rendition is not defined. ");
- generic_done_message(t, state, ch);
- return;
- }
- if (!exit_attribute_mode) {
- ptextln("(sgr0) Set-graphics-rendition-zero is not defined.");
- /* go ahead and test anyway */
- }
- ptext("Test video attributes (sgr)");
-
- for (i = 0; i < (int) (sizeof(alt_modes) / sizeof(struct mode_list));
- i++) {
- put_crlf();
- sprintf(temp, "%d %-20s", i, alt_modes[i].name);
- put_str(temp);
- set_attr(alt_modes[i].number);
- sprintf(temp, "%s", alt_modes[i].name);
- put_str(temp);
- set_attr(0);
- }
-
- putln("\n\nDouble mode test");
- for (i = 0; i <= 9; i++) {
- sprintf(temp, " %2d ", mode_map[i]);
- put_str(temp);
- }
- for (i = 0; i <= 9; i++) {
- put_crlf();
- sprintf(temp, "%d", mode_map[i]);
- put_str(temp);
- for (j = 0; j <= 9; j++) {
- eat_cookie();
- set_attr((1 << mode_map[i]) | (1 << mode_map[j]));
- put_str("Aa");
- set_attr(0);
- if (j < 9)
- eat_cookie();
- }
- }
- put_crlf();
-
- if (max_attributes >= 0) {
- sprintf(temp, "(ma) Maximum attributes %d ", max_attributes);
- ptext(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** test_one_attr(mode-number, begin-string, end-string)
-**
-** Display one attribute line.
-*/
-static void
-test_one_attr(
- int n,
- char *begin_mode,
- char *end_mode)
-{
- int i;
-
- sprintf(temp, "%-10s %s ", alt_modes[n].name, alt_modes[n].begin_mode);
- ptext(temp);
- for (; char_count < 19;) {
- putchp(' ');
- }
- if (begin_mode) {
- putchp('.');
- put_mode(begin_mode);
- put_str(alt_modes[n].name);
- for (i = strlen(alt_modes[n].name); i < 13; i++) {
- putchp(' ');
- }
- if (end_mode) {
- put_mode(end_mode);
- sprintf(temp, ". %s", alt_modes[n].end_mode);
- } else {
- set_attr(0);
- strcpy(temp, ". (sgr)");
- }
- ptextln(temp);
- } else {
- for (i = 0; i < magic_cookie_glitch; i++)
- putchp('*');
- put_str("*** missing ***");
- for (i = 0; i < magic_cookie_glitch; i++)
- putchp('*');
- put_crlf();
- }
-}
-
-/*
-** charset_attributes(test_list, status, ch)
-**
-** Test SGR
-*/
-static void
-charset_attributes(
- struct test_list *t,
- int *state,
- int *ch)
-{
- putln("Test video attributes");
- test_one_attr(1, enter_standout_mode, exit_standout_mode);
- test_one_attr(2, enter_underline_mode, exit_underline_mode);
- test_one_attr(9, enter_alt_charset_mode, exit_alt_charset_mode);
- if (!exit_attribute_mode && !set_attributes) {
- ptextln("(sgr0) exit attribute mode is not defined.");
- generic_done_message(t, state, ch);
- return;
- }
- test_one_attr(3, enter_reverse_mode, exit_attribute_mode);
- test_one_attr(4, enter_blink_mode, exit_attribute_mode);
- test_one_attr(5, enter_dim_mode, exit_attribute_mode);
- test_one_attr(6, enter_bold_mode, exit_attribute_mode);
- test_one_attr(7, enter_secure_mode, exit_attribute_mode);
- test_one_attr(8, enter_protected_mode, exit_attribute_mode);
- generic_done_message(t, state, ch);
-}
-
-#define GLYPHS 256
-
-/*
-** charset_smacs(test_list, status, ch)
-**
-** display all possible acs characters
-** (smacs) (rmacs)
-*/
-static void
-charset_smacs(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, c;
-
- if (enter_alt_charset_mode) {
- put_clear();
- ptextln("The following characters are available. (smacs) (rmacs)");
- for (i = ' '; i <= '`'; i += 32) {
- put_crlf();
- put_mode(exit_alt_charset_mode);
- for (c = 0; c < 32; c++) {
- putchp(c + i);
- }
- put_crlf();
- put_mode(enter_alt_charset_mode);
- for (c = 0; c < 32; c++) {
- putchp(c + i);
- }
- put_mode(exit_alt_charset_mode);
- put_crlf();
- }
- put_mode(exit_alt_charset_mode);
- put_crlf();
- generic_done_message(t, state, ch);
- }
-}
-
-
-static void
-test_acs(
- int attr)
-{ /* alternate character set */
- int i, j;
- char valid_glyph[GLYPHS];
- char acs_table[GLYPHS];
- static unsigned char vt100[] = "`afgjklmnopqrstuvwxyz{|}~";
-
- line_count = 0;
- for (i = 0; i < GLYPHS; i++) {
- valid_glyph[i] = FALSE;
- acs_table[i] = i;
- }
- if (acs_chars) {
- sprintf(temp, "Alternate character set map: %s",
- expand(acs_chars));
- putln(temp);
- for (i = 0; acs_chars[i]; i += 2) {
- if (acs_chars[i + 1] == 0) {
- break;
- }
- for (j = 0;; j++) {
- if (glyph[j].c == (unsigned char) acs_chars[i]) {
- acs_table[glyph[j].c] = acs_chars[i + 1];
- valid_glyph[glyph[j].c] = TRUE;
- break;
- }
- if (glyph[j].name[0] == '\0') {
- if (isgraph(acs_chars[i])) {
- sprintf(temp, " %c",
- acs_chars[i]);
- } else {
- sprintf(temp, " 0x%02x",
- (acs_chars[i] & 0xff));
- }
- strcpy(&temp[5], " *** has no mapping ***");
- putln(temp);
- break;
- }
- }
- }
- } else {
- ptextln("acs_chars not defined (acsc)");
- /* enable the VT-100 graphics characters (default) */
- for (i = 0; vt100[i]; i++) {
- valid_glyph[vt100[i]] = TRUE;
- }
- }
- if (attr) {
- set_attr(attr);
- }
- _nc_init_acs(); /* puts 'ena_acs' and incidentally links acs_map[] */
- for (i = 0; glyph[i].name[0]; i++) {
- if (valid_glyph[glyph[i].c]) {
- put_mode(enter_alt_charset_mode);
- put_this(acs_table[glyph[i].c]);
- char_count++;
- put_mode(exit_alt_charset_mode);
- if (magic_cookie_glitch >= 1) {
- sprintf(temp, " %-30.30s", glyph[i].name);
- put_str(temp);
- if (char_count + 33 >= columns)
- put_crlf();
- } else {
- sprintf(temp, " %-24.24s", glyph[i].name);
- put_str(temp);
- if (char_count + 26 >= columns)
- put_crlf();
- }
- if (line_count >= lines) {
- (void) wait_here();
- put_clear();
- }
- }
- }
- if (char_count > 1) {
- put_crlf();
- }
-#ifdef ACS_ULCORNER
- maybe_wait(5);
- put_mode(enter_alt_charset_mode);
- put_this(ACS_ULCORNER);
- put_this(ACS_TTEE);
- put_this(ACS_URCORNER);
- put_this(ACS_ULCORNER);
- put_this(ACS_HLINE);
- put_this(ACS_URCORNER);
- char_count += 6;
- put_mode(exit_alt_charset_mode);
- put_crlf();
- put_mode(enter_alt_charset_mode);
- put_this(ACS_LTEE);
- put_this(ACS_PLUS);
- put_this(ACS_RTEE);
- put_this(ACS_VLINE);
- if (magic_cookie_glitch >= 1)
- put_this(' ');
- else {
- put_mode(exit_alt_charset_mode);
- put_this(' ');
- put_mode(enter_alt_charset_mode);
- }
- put_this(ACS_VLINE);
- char_count += 6;
- put_mode(exit_alt_charset_mode);
- put_str(" Here are 2 boxes");
- put_crlf();
- put_mode(enter_alt_charset_mode);
- put_this(ACS_LLCORNER);
- put_this(ACS_BTEE);
- put_this(ACS_LRCORNER);
- put_this(ACS_LLCORNER);
- put_this(ACS_HLINE);
- put_this(ACS_LRCORNER);
- char_count += 6;
- put_mode(exit_alt_charset_mode);
- put_crlf();
-#endif
-}
-
-/*
-** charset_bel(test_list, status, ch)
-**
-** (bel) test Bell
-*/
-static void
-charset_bel(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (bell) {
- ptextln("Testing bell (bel)");
- tc_putp(bell);
- ptext("If you did not hear the Bell then (bel) has failed. ");
- } else {
- ptext("(bel) Bell is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** charset_flash(test_list, status, ch)
-**
-** (flash) test Visual bell
-*/
-static void
-charset_flash(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (flash_screen) {
- ptextln("Testing visual bell (flash)");
- tc_putp(flash_screen);
- ptext("If you did not see the screen flash then (flash) has failed. ");
- } else {
- ptext("(flash) Flash is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** charset_civis(test_list, status, ch)
-**
-** (civis) test Cursor invisible
-*/
-static void
-charset_civis(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (cursor_normal) {
- if (cursor_invisible) {
- ptext("(civis) Turn off the cursor. ");
- tc_putp(cursor_invisible);
- ptext("If you can still see the cursor then (civis) has failed. ");
- } else {
- ptext("(civis) Cursor-invisible is not defined. ");
- }
- generic_done_message(t, state, ch);
- tc_putp(cursor_normal);
- }
-}
-
-/*
-** charset_cvvis(test_list, status, ch)
-**
-** (cvvis) test Cursor very visible
-*/
-static void
-charset_cvvis(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (cursor_normal) {
- if (cursor_visible) {
- ptext("(cvvis) Make cursor very visible. ");
- tc_putp(cursor_visible);
- ptext("If the cursor is not very visible then (cvvis) has failed. ");
- } else {
- ptext("(cvvis) Cursor-very-visible is not defined. ");
- }
- generic_done_message(t, state, ch);
- tc_putp(cursor_normal);
- }
-}
-
-/*
-** charset_cnorm(test_list, status, ch)
-**
-** (cnorm) test Cursor normal
-*/
-static void
-charset_cnorm(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (cursor_normal) {
- ptext("(cnorm) Normal cursor. ");
- tc_putp(cursor_normal);
- ptext("If the cursor is not normal then (cnorm) has failed. ");
- } else {
- ptext("(cnorm) Cursor-normal is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** charset_enacs(test_list, status, ch)
-**
-** test Alternate character set mode and alternate characters
-** (acsc) (enacs) (smacs) (rmacs)
-*/
-static void
-charset_enacs(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int c, i;
-
- if (enter_alt_charset_mode || acs_chars) {
- c = 0;
- while (1) {
- put_clear();
- /*
- for terminals that use separate fonts for
- attributes (such as X windows) the line
- drawing characters must be checked for
- each font.
- */
- if (c >= '0' && c <= '9') {
- test_acs(alt_modes[c - '0'].number);
- set_attr(0);
- } else {
- test_acs(0);
- }
-
- while (1) {
- ptextln("[r] to repeat, [012345789] to test with attributes on, [?] for a list of attributes, anything else to go to next test. ");
- generic_done_message(t, state, ch);
- if (*ch != '?') {
- break;
- }
- for (i = 0; i <= 9; i++) {
- sprintf(temp, " %d %s %s", i, alt_modes[i].begin_mode,
- alt_modes[i].name);
- ptextln(temp);
- }
- }
- if (*ch >= '0' && *ch <= '9') {
- c = *ch;
- } else
- if (*ch != 'r') {
- break;
- }
- }
- } else {
- ptext("(smacs) Enter-alt-char-set-mode and (acsc) Alternate-char-set are not defined. ");
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** charset_can_test()
-**
-** Initialize the can_test data base
-*/
-void
-charset_can_test(void)
-{
- int i;
-
- for (i = 0; i < 9; i++) {
- can_test(alt_modes[i].begin_mode, FLAG_CAN_TEST);
- can_test(alt_modes[i].end_mode, FLAG_CAN_TEST);
- }
-}
diff --git a/ncurses-5.2/tack/color.c b/ncurses-5.2/tack/color.c
deleted file mode 100644
index 3dc1955..0000000
--- a/ncurses-5.2/tack/color.c
+++ /dev/null
@@ -1,767 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Color terminal tests. Has only one entry point: test_color().
- */
-
-static void color_check(struct test_list *, int *, int *);
-static void color_setf(struct test_list *, int *, int *);
-static void color_matrix(struct test_list *, int *, int *);
-static void color_ncv(struct test_list *, int *, int *);
-static void color_ccc(struct test_list *, int *, int *);
-static void color_bce(struct test_list *, int *, int *);
-
-struct test_list color_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT, 2, "colors) (pairs", 0, 0, color_check, 0},
- {MENU_NEXT, 12, "setf) (setb) (scp", 0, 0, color_setf, 0},
- {MENU_NEXT, 24, "op", 0, 0, color_matrix, 0},
- {MENU_NEXT, 16, "ncv", 0, 0, color_ncv, 0},
- {MENU_NEXT, 0, "bce", 0, 0, color_bce, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "ccc) (initc) (initp", "hls op oc", 0, color_ccc, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-#ifndef COLOR_BLACK
-#define COLOR_BLACK 0
-#define COLOR_BLUE 1
-#define COLOR_GREEN 2
-#define COLOR_CYAN 3
-#define COLOR_RED 4
-#define COLOR_MAGENTA 5
-#define COLOR_YELLOW 6
-#define COLOR_WHITE 7
-#endif
-
-struct color_table {
- const char *name;
- int index;
- int r, g, b;
- int h, l, s;
-};
-
-static struct color_table def_colors[8] = {
- {"black ", COLOR_BLACK, 0, 0, 0, 0, 0, 0},
- {"blue ", COLOR_BLUE, 0, 0, 1000, 330, 50, 100},
- {"green ", COLOR_GREEN, 0, 1000, 0, 240, 50, 100},
- {"cyan ", COLOR_CYAN, 0, 1000, 1000, 300, 50, 100},
- {"red ", COLOR_RED, 1000, 0, 0, 120, 50, 100},
- {"magenta", COLOR_MAGENTA, 1000, 0, 1000, 60, 50, 100},
- {"yellow ", COLOR_YELLOW, 1000, 1000, 0, 180, 50, 100},
- {"white ", COLOR_WHITE, 1000, 1000, 1000, 0, 100, 0}
-};
-
-#define MAX_PAIR 256
-static int fg_color[MAX_PAIR] = {COLOR_BLACK, COLOR_BLUE, COLOR_GREEN,
-COLOR_CYAN, COLOR_RED, COLOR_MAGENTA, COLOR_YELLOW, COLOR_WHITE};
-static int bg_color[MAX_PAIR] = {COLOR_BLACK, COLOR_BLACK, COLOR_BLACK,
-COLOR_BLACK, COLOR_BLACK, COLOR_BLACK, COLOR_BLACK, COLOR_BLACK};
-static int pairs_used = 8;
-static int a_bright_color, bright_value;
-static int cookie_monster, color_step, colors_per_line;
-static int R, G, B;
-
-static int
-color_trans(int c)
-{ /* translate or load the color */
- int i;
-
- for (i = 0; i < pairs_used; i++) {
- if (fg_color[i] == c) {
- return i;
- }
- }
- if (!can_change) {
- return 0;
- }
- if (pairs_used > max_colors || pairs_used >= MAX_PAIR) {
- pairs_used = 0;
- ptextln("Ran out of colors");
- }
- fg_color[pairs_used] = c;
- bg_color[pairs_used] = c;
- if (hue_lightness_saturation) {
- tc_putp(tparm(initialize_color, pairs_used,
- def_colors[c].h, def_colors[c].l, def_colors[c].s));
- } else {
- tc_putp(tparm(initialize_color, pairs_used,
- def_colors[c].r, def_colors[c].g, def_colors[c].b));
- }
- return pairs_used++;
-}
-
-static void
-new_color(
- int fg,
- int bg,
- int hungry)
-{ /* change the color to fg and bg. */
- int i;
-
- if (hungry) {
- eat_cookie();
- }
- if (set_a_foreground) {
- /* set ANSI color (setaf) (setab) */
- tc_putp(tparm(set_a_foreground, fg));
- tc_putp(tparm(set_a_background, bg));
- } else if (set_foreground) {
- /* make sure black is zero */
- (void) color_trans(COLOR_BLACK);
- tc_putp(tparm(set_foreground, color_trans(fg)));
- tc_putp(tparm(set_background, color_trans(bg)));
- } else { /* set color pair */
- for (i = 0; i < pairs_used; i++) {
- if (fg_color[i] == fg && bg_color[i] == bg) {
- tc_putp(tparm(set_color_pair, i));
- if (hungry) {
- eat_cookie();
- }
- return;
- }
- }
- if (!can_change) {
- /* try to set just the foreground */
- for (i = pairs_used - 1; i; i--) {
- if (fg_color[i] == fg)
- break;
- }
- tc_putp(tparm(set_color_pair, i));
- if (hungry) {
- eat_cookie();
- }
- return;
- }
- if (pairs_used > max_pairs || pairs_used >= MAX_PAIR) {
- pairs_used = 0;
- ptextln("Ran out of color pairs");
- }
- fg_color[pairs_used] = fg;
- bg_color[pairs_used] = bg;
- if (hue_lightness_saturation) {
- tc_putp(tparm(initialize_pair, pairs_used,
- def_colors[fg].h, def_colors[fg].l, def_colors[fg].s,
- def_colors[bg].h, def_colors[bg].l, def_colors[bg].s));
- } else {
- tc_putp(tparm(initialize_pair, pairs_used,
- def_colors[fg].r, def_colors[fg].g, def_colors[fg].b,
- def_colors[bg].r, def_colors[bg].g, def_colors[bg].b));
- }
- tc_putp(tparm(set_color_pair, pairs_used));
- pairs_used++;
- }
- if (hungry) {
- eat_cookie();
- }
-}
-
-
-static void
-set_color_step(void)
-{ /* set the color_step for the (ccc) display */
- int i;
-
- for (i = 2; i < 1000; i++) {
- if ((i * i * i) >= max_colors) {
- break;
- }
- }
- color_step = 1000 / (i - 1);
-}
-
-
-static void
-rgb_2_hls(int r, int g, int b, int *h, int *l, int *s)
-{ /* convert RGB to HLS system */
- int min, max, t;
-
- if ((min = g < r ? g : r) > b) {
- min = b;
- }
- if ((max = g > r ? g : r) < b) {
- max = b;
- }
-
- /* calculate lightness */
- *l = (min + max) / 20;
-
- if (min == max) { /* black, white and all shades of gray */
- *h = 0;
- *s = 0;
- return;
- }
- /* calculate saturation */
- if (*l < 50) {
- *s = ((max - min) * 100) / (max + min);
- } else {
- *s = ((max - min) * 100) / (2000 - max - min);
- }
-
- /* calculate hue */
- if (r == max) {
- t = 120 + ((g - b) * 60) / (max - min);
- } else if (g == max) {
- t = 240 + ((b - r) * 60) / (max - min);
- } else {
- t = 360 + ((r - g) * 60) / (max - min);
- }
- *h = t % 360;
-}
-
-
-static void
-send_color(int p, int r, int g, int b)
-{ /* send the initialize_color (initc) command */
- int h, l, s;
-
- if (hue_lightness_saturation) {
- rgb_2_hls(r, g, b, &h, &l, &s);
- tc_putp(tparm(initialize_color, p, h, l, s));
- } else {
- tc_putp(tparm(initialize_color, p, r, g, b));
- }
-}
-
-
-static void
-send_pair(int p, int fr, int fg, int fb, int br, int bg, int bb)
-{ /* send the initialize_pair (initp) command */
- int fh, fl, fs, bh, bl, bs;
-
- if (hue_lightness_saturation) {
- rgb_2_hls(fr, fg, fb, &fh, &fl, &fs);
- rgb_2_hls(br, bg, bb, &bh, &bl, &bs);
- tc_putp(tparm(initialize_pair, p, fh, fl, fs, bh, bl, bs));
- } else {
- tc_putp(tparm(initialize_pair, p, fr, fg, fb, bb, bg, bb));
- }
-}
-
-
-static int
-load_palette(int n)
-{ /* load the color palette */
- int rgb;
-
- for (;;) {
- if (pairs_used >= n) {
- return FALSE;
- }
- if (set_a_foreground || set_foreground) {
- if (pairs_used >= max_colors) {
- return FALSE;
- }
- send_color(pairs_used, R, G, B);
- rgb = R + G + B;
- if (rgb > bright_value) {
- bright_value = rgb;
- a_bright_color = pairs_used;
- }
- } else {
- if (pairs_used >= max_pairs) {
- return FALSE;
- }
- if (pairs_used == 0) {
- send_pair(pairs_used, 1000, 1000, 1000, R, G, B);
- } else {
- send_pair(pairs_used, R, G, B, R, G, B);
- }
- }
- pairs_used++;
- if ((B += color_step) > 1000) {
- B = 0;
- if ((G += color_step) > 1000) {
- G = 0;
- if ((R += color_step) > 1000) {
- return TRUE;
- }
- }
- }
- }
-}
-
-
-static int
-rainbow(int n)
-{ /* print the programmable color display */
- int i, c, d, palette_full, initial_pair;
- static const struct {
- const char *name;
- char ch;
- } splat[] = {
- {"Bg normal", ' '},
- {"Fg normal", ' '},
- {0, 0}
- };
-
- if ((set_a_foreground || set_foreground)
- ? pairs_used >= max_colors
- : pairs_used >= max_pairs) {
- ptext("New palette: ");
- (void) wait_here();
- initial_pair = pairs_used = 1;
- bright_value = 0;
- } else if (line_count + 3 >= lines) {
- ptext("Go: ");
- (void) wait_here();
- put_clear();
- initial_pair = pairs_used = 1;
- bright_value = 0;
- n++;
- } else {
- initial_pair = pairs_used;
- n += initial_pair;
- }
- palette_full = load_palette(n);
- for (d = 0; splat[d].name; d++) {
- c = splat[d].ch;
- if (d == 1) {
- put_mode(enter_reverse_mode);
- }
- for (i = initial_pair; i < n; i++) {
- if (i >= pairs_used) {
- break;
- }
- if (set_a_foreground) {
- if (i >= max_colors) {
- break;
- }
- tc_putp(tparm(set_a_foreground, i));
- tc_putp(tparm(set_a_background, i));
- } else if (set_foreground) {
- if (i >= max_colors) {
- break;
- }
- tc_putp(tparm(set_foreground, i));
- tc_putp(tparm(set_background, i));
- } else {
- if (i >= max_pairs) {
- break;
- }
- tc_putp(tparm(set_color_pair, i));
- }
- putchp(c);
- }
- if (d == 1) {
- put_mode(exit_attribute_mode);
- }
- if (set_a_foreground) {
- tc_putp(tparm(set_a_foreground, a_bright_color));
- tc_putp(tparm(set_a_background, 0));
- } else if (set_foreground) {
- tc_putp(tparm(set_foreground, a_bright_color));
- tc_putp(tparm(set_background, 0));
- } else {
- tc_putp(tparm(set_color_pair, 0));
- }
- put_str(" ");
- put_str(splat[d].name);
- put_crlf();
- }
- return palette_full;
-}
-
-
-static void
-ncv_display(int m)
-{ /* print the no_color_video (ncv) test line */
- putchp('0' + m);
- putchp(' ');
- eat_cookie();
- set_attr(1 << m);
- sprintf(temp, "%-11s", alt_modes[m].name);
- put_str(temp);
-
- new_color(COLOR_BLUE, COLOR_BLACK, TRUE);
- put_str("blue");
-
- new_color(COLOR_BLACK, COLOR_GREEN, TRUE);
- put_str("green");
-
- new_color(COLOR_WHITE, COLOR_BLACK, TRUE);
- put_str(alt_modes[m].name);
- eat_cookie();
- set_attr(0);
- put_crlf();
-}
-
-
-static void
-dump_colors(void)
-{ /* display the colors in some esthetic
- pattern */
- static int xmap[8] = {0, 3, 4, 7, 1, 2, 5, 6};
- int i, j, k, xi, xj, width, p, cs;
- int found_one;
-
- cs = color_step <= 125 ? 125 : color_step;
- width = (1000 / cs) + 1;
- for (xi = 0; xi < 16; xi++) {
- i = (xi & 8) ? xi ^ 15 : xi;
- R = i * cs;
- if (R <= 1000) {
- found_one = FALSE;
- for (xj = 0; xj < 32; xj++) {
- j = ((xj & 8) ? xj ^ 15 : xj) & 7;
- k = xmap[((xi >> 1) & 4) + (xj >> 3)];
- G = j * cs;
- B = k * cs;
- if (G <= 1000 && B <= 1000) {
- p = (k * width + j) * width + i;
- if (set_a_background) {
- if (p >= max_colors) {
- continue;
- }
- send_color(p, R, G, B);
- tc_putp(tparm(set_a_background, p));
- } else if (set_background) {
- if (p >= max_colors) {
- continue;
- }
- send_color(p, R, G, B);
- tc_putp(tparm(set_background, p));
- } else {
- if (p >= max_pairs) {
- continue;
- }
- send_pair(p, R, G, B, R, G, B);
- tc_putp(tparm(set_color_pair, p));
- }
- found_one = TRUE;
- putchp(' ');
- putchp(' ');
- }
- }
- if (found_one) {
- put_crlf();
- }
- }
- }
-}
-
-/*
-** color_check(test_list, status, ch)
-**
-** test (colors) and (pairs)
-*/
-static void
-color_check(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (max_colors <= 0 && max_pairs <= 0) {
- ptext("This is not a color terminal; (colors) and (pairs) are missing. ");
- *state |= MENU_STOP;
- } else {
- sprintf(temp, "This terminal can display %d colors and %d color pairs. (colors) (pairs)",
- max_colors, max_pairs);
- ptextln(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_setf(test_list, status, ch)
-**
-** test (setf) (setb) and (scp)
-*/
-static void
-color_setf(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (max_colors <= 0 && max_pairs <= 0) {
- ptext("This is not a color terminal; (colors) and (pairs) are missing. ");
- generic_done_message(t, state, ch);
- *state |= MENU_STOP;
- return;
- }
- if ((set_a_foreground == NULL || set_a_background == NULL)
- && (set_foreground == NULL || set_background == NULL)
- && set_color_pair == NULL) {
- ptextln("Both set foreground (setaf/setf) and set color pair (scp) are not present.");
- if (!set_a_background || !set_background) {
- ptextln("(setab/setb) set background not present");
- }
- ptext("These must be defined for color testing. ");
- generic_done_message(t, state, ch);
- *state |= MENU_STOP;
- return;
- }
- /* initialize the color palette */
- pairs_used = max_colors >= 8 ? 8 : max_colors;
- if (can_change) {
- tc_putp(orig_colors);
- }
- tc_putp(tparm(orig_pair));
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
-
- ptextln("(setf) (setb) (scp) The following colors are predefined:");
- ptextln("\n Foreground Background");
- put_crlf();
- j = max_colors > 8 ? 8 : max_colors;
- /*
- the black on white test is the same as the white on black test.
- */
- for (i = 1; i < j; i++) {
- putchp('0' + def_colors[i].index);
- putchp(' ');
- sprintf(temp, " %s ", def_colors[i].name);
-
- new_color(def_colors[i].index, COLOR_BLACK, TRUE);
- put_str(temp);
-
- new_color(COLOR_BLACK, COLOR_BLACK, TRUE);
- put_str(" ");
-
- new_color(COLOR_BLACK, def_colors[i].index, TRUE);
- put_str(temp);
-
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
- put_crlf();
- }
- put_crlf();
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_matrix(test_list, status, ch)
-**
-** test (pairs) (op)
-*/
-static void
-color_matrix(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, matrix_size, matrix_area, brightness;
-
- matrix_size = max_colors > 8 ? 8 : max_colors;
-
- sprintf(temp, "(pairs) There are %d color pairs.", max_pairs);
- ptextln(temp);
-
- for ( ; matrix_size; matrix_size--) {
- if (matrix_size * matrix_size <= max_pairs) {
- break;
- }
- }
- matrix_area = matrix_size * matrix_size;
- for (brightness = 0; brightness < 2; brightness++) {
- put_crlf();
- sprintf(temp,
- "%dx%d matrix of foreground/background colors, bright *o%s*",
- matrix_size, matrix_size, brightness ? "n" : "ff");
- put_str(temp);
-
- put_str("\n ");
- for (i = 0; i < matrix_size; i++) {
- (void) sprintf(temp, "%-8s", def_colors[i].name);
- put_str(temp);
- }
- for (j = 0; j < matrix_area; j++) {
- if (j % matrix_size == 0) {
- tc_putp(tparm(orig_pair));
- put_crlf();
- if (brightness) {
- tc_putp(exit_standout_mode);
- }
- (void) sprintf(temp, "%-8s", def_colors[j / matrix_size].name);
- put_str(temp);
- if (brightness) {
- put_mode(enter_bold_mode);
- }
- }
- new_color(def_colors[j % matrix_size].index,
- def_colors[j / matrix_size].index,
- FALSE);
- put_str(" Hello ");
- }
- tc_putp(tparm(orig_pair));
- if (brightness) {
- tc_putp(exit_standout_mode);
- }
- put_crlf();
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_ncv(test_list, status, ch)
-**
-** test (ncv)
-*/
-static void
-color_ncv(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (no_color_video == -1) {
- /* I have no idea what this means */
- return;
- }
- sprintf(temp, "According to no_color_video (ncv) which is %d, the following attributes should work correctly with color.", no_color_video);
- ptextln(temp);
- put_crlf();
- set_attr(0);
- ncv_display(0);
- for (i = 1; i <= 9; i++) {
- if (((no_color_video >> (mode_map[i] - 1)) & 1) == 0) {
- ncv_display(mode_map[i]);
- }
- }
- if (no_color_video & 0x3ff) {
- ptextln("\nThe following attributes should not work correctly with color. (ncv)\n");
- for (i = 1; i <= 9; i++) {
- if ((no_color_video >> (mode_map[i] - 1)) & 1) {
- ncv_display(mode_map[i]);
- }
- }
- }
- tc_putp(orig_pair);
- put_crlf();
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_bce(test_list, status, ch)
-**
-** test (bce) background color erase
-*/
-static void
-color_bce(
- struct test_list *t,
- int *state,
- int *ch)
-{
- new_color(COLOR_BLACK, COLOR_WHITE, FALSE);
- put_clear();
- put_newlines(2);
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
- ptextln("If the two lines above are black then back_color_erase (bce) should be false.");
- sprintf(temp, "(bce) is %s in the data base.", back_color_erase ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_ccc(test_list, status, ch)
-**
-** test (ccc) color palette test (oc) (op) (initc) (initp)
-*/
-static void
-color_ccc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!can_change) {
- ptextln("Terminal can not change colors (ccc)");
- generic_done_message(t, state, ch);
- return;
- }
- tc_putp(orig_colors);
- pairs_used = 0;
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
- sprintf(temp, "Reloading colors (init%c) using %s method",
- set_foreground ? 'c' : 'p',
- hue_lightness_saturation ? "HLS" : "RGB");
- ptextln(temp);
- put_crlf();
- j = max_colors > 7 ? 7 : max_colors;
- /* redisplay the above test with reinitialized colors */
- /* If these colors don't look right to you... */
- for (i = 0; i < j; i++) {
- sprintf(temp, " %s ", def_colors[i ^ 7].name);
-
- new_color(i ^ 7, COLOR_BLACK, TRUE);
- put_str(temp);
-
- new_color(COLOR_BLACK, COLOR_BLACK, TRUE);
- put_str(" ");
-
- new_color(COLOR_BLACK, i ^ 7, TRUE);
- put_str(temp);
-
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
- put_crlf();
- }
- generic_done_message(t, state, ch);
- if (*ch != 0 && *ch != 'n') {
- tc_putp(orig_colors);
- tc_putp(tparm(orig_pair));
- return;
- }
-
- pairs_used = 0;
- cookie_monster = 0;
- if (magic_cookie_glitch > 0) {
- cookie_monster =
- ((set_a_foreground || set_foreground)
- ? magic_cookie_glitch : 0) +
- ((set_a_background || set_background)
- ? magic_cookie_glitch : 0) +
- (set_color_pair ? magic_cookie_glitch : 0);
- }
- set_color_step();
- colors_per_line = max_colors > max_pairs
- ? max_pairs : max_colors;
- j = (columns - 14) / (cookie_monster + 1);
- if (colors_per_line > j) {
- colors_per_line = (j / i) * i;
- }
- sprintf(temp, "RGB color step %d, cookies %d", color_step,
- cookie_monster);
- ptextln(temp);
-
- R = G = B = 0;
- pairs_used = 0;
- for (;;) {
- if (rainbow(colors_per_line)) {
- break;
- }
- }
- generic_done_message(t, state, ch);
- if (*ch != 0 && *ch != 'n') {
- tc_putp(orig_colors);
- tc_putp(tparm(orig_pair));
- return;
- }
- dump_colors();
- tc_putp(orig_colors);
- tc_putp(tparm(orig_pair));
- generic_done_message(t, state, ch);
-}
diff --git a/ncurses-5.2/tack/control.c b/ncurses-5.2/tack/control.c
deleted file mode 100644
index 4ae7282..0000000
--- a/ncurses-5.2/tack/control.c
+++ /dev/null
@@ -1,657 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-MODULE_ID("$Id$")
-
-/* terminfo test program control subroutines */
-
-#if HAVE_GETTIMEOFDAY
-#define MY_TIMER struct timeval
-#else
-#define MY_TIMER time_t
-#endif
-
-/* globals */
-int test_complete; /* counts number of tests completed */
-
-char txt_longer_test_time[80]; /* +) use longer time */
-char txt_shorter_test_time[80]; /* -) use shorter time */
-int pad_test_duration = 1; /* number of seconds for a pad test */
-int auto_pad_mode; /* run the time tests */
-int no_alarm_event; /* TRUE if the alarm has not gone off yet */
-int usec_run_time; /* length of last test in microseconds */
-MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
-
-char txt_longer_augment[80]; /* >) use bigger augment */
-char txt_shorter_augment[80]; /* <) use smaller augment */
-
-/* caps under test data base */
-int tt_delay_max; /* max number of milliseconds we can delay */
-int tt_delay_used; /* number of milliseconds consumed in delay */
-const char *tt_cap[TT_MAX]; /* value of string */
-int tt_affected[TT_MAX]; /* lines or columns effected (repetition factor) */
-int tt_count[TT_MAX]; /* Number of times sent */
-int tt_delay[TT_MAX]; /* Number of milliseconds delay */
-int ttp; /* number of entries used */
-
-/* Saved value of the above data base */
-const char *tx_cap[TT_MAX]; /* value of string */
-int tx_affected[TT_MAX]; /* lines or columns effected (repetition factor) */
-int tx_count[TT_MAX]; /* Number of times sent */
-int tx_index[TT_MAX]; /* String index */
-int tx_delay[TT_MAX]; /* Number of milliseconds delay */
-int txp; /* number of entries used */
-int tx_characters; /* printing characters sent by test */
-int tx_cps; /* characters per second */
-struct test_list *tx_source; /* The test that generated this data */
-
-extern struct test_menu pad_menu; /* Pad menu structure */
-extern struct test_list pad_test_list[];
-
-#define RESULT_BLOCK 1024
-static int blocks; /* number of result blocks available */
-static struct test_results *results; /* pointer to next available */
-struct test_results *pads[STRCOUNT]; /* save pad results here */
-
-/*
-** event_start(number)
-**
-** Begin the stopwatch at the current time-of-day.
-*/
-void
-event_start(int n)
-{
-#if HAVE_GETTIMEOFDAY
- (void) gettimeofday(&stop_watch[n], (struct timezone *)0);
-#else
- stop_watch[n] = time((time_t *)0);
-#endif
-}
-
-/*
-** event_time(number)
-**
-** Return the number of milliseconds since this stop watch began.
-*/
-long
-event_time(int n)
-{
-#if HAVE_GETTIMEOFDAY
- MY_TIMER current_time;
-
- (void) gettimeofday(&current_time, (struct timezone *)0);
- return ((current_time.tv_sec - stop_watch[n].tv_sec) * 1000000)
- + current_time.tv_usec - stop_watch[n].tv_usec;
-#else
- return (time((time_t *)0) - stop_watch[n]) * 1000;
-#endif
-}
-
-/*****************************************************************************
- *
- * Execution control for string capability tests
- *
- *****************************************************************************/
-
-/*
-** get_next_block()
-**
-** Get a results block for pad test data.
-*/
-static struct test_results *
-get_next_block(void)
-{
- if (blocks <= 0) {
- results = (struct test_results *)
- malloc(sizeof(struct test_results) * RESULT_BLOCK);
- if (!results) {
- ptextln("Malloc failed");
- return (struct test_results *) 0;
- }
- blocks = RESULT_BLOCK;
- }
- blocks--;
- return results++;
-}
-
-/*
-** set_augment_txt()
-**
-** Initialize the augment menu selections
-*/
-void
-set_augment_txt(void)
-{
- sprintf(txt_longer_augment,
- ">) Change lines/characters effected to %d", augment << 1);
- sprintf(txt_shorter_augment,
- "<) Change lines/characters effected to %d", augment >> 1);
-}
-
-void
-control_init(void)
-{
- sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
- pad_test_duration + 1);
- sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
- pad_test_duration - 1);
- set_augment_txt();
-}
-
-/*
-** msec_cost(cap, affected-count)
-**
-** Return the number of milliseconds delay needed by the cap.
-*/
-int
-msec_cost(
- const char *const cap,
- int affcnt)
-{
- int dec, value, total, star, ch;
- const char *cp;
-
- if (!cap) {
- return 0;
- }
- total = 0;
- for (cp = cap; *cp; cp++) {
- if (*cp == '$' && cp[1] == '<') {
- star = 1;
- value = dec = 0;
- for (cp += 2; (ch = *cp); cp++) {
- if (ch >= '0' && ch <= '9') {
- value = value * 10 + (ch - '0');
- dec *= 10;
- } else
- if (ch == '.') {
- dec = 1;
- } else
- if (ch == '*') {
- star = affcnt;
- } else
- if (ch == '>') {
- break;
- }
- }
- if (dec > 1) {
- total += (value * star) / dec;
- } else {
- total += (value * star);
- }
- }
- }
- return total;
-}
-
-/*
-** liberated(cap)
-**
-** Return the cap without padding
-*/
-char *
-liberated(char *cap)
-{
- static char cb[1024];
- char *ts, *ls;
-
- cb[0] = '\0';
- ls = NULL;
- if (cap) {
- for (ts = cb; (*ts = *cap); ++cap) {
- if (*cap == '$' && cap[1] == '<') {
- ls = ts;
- }
- ++ts;
- if (*cap == '>') {
- if (ls) {
- ts = ls;
- ls = NULL;
- }
- }
- }
- }
- return cb;
-}
-
-/*
-** page_loop()
-**
-** send CR/LF or go home and bump letter
-*/
-void
-page_loop(void)
-{
- if (line_count + 2 >= lines) {
- NEXT_LETTER;
- go_home();
- } else {
- put_crlf();
- }
-}
-
-/*
-** skip_pad_test(test-list-entry, state, ch, text)
-**
-** Print the start test line. Handle start up commands.
-** Return TRUE if a return is requested.
-*/
-int
-skip_pad_test(
- struct test_list *test,
- int *state,
- int *ch,
- const char *text)
-{
- char rep_text[16];
-
- while(1) {
- if (text) {
- ptext(text);
- }
- if ((test->flags & MENU_LC_MASK)) {
- sprintf(rep_text, " *%d", augment);
- ptext(rep_text);
- }
- ptext(" [n] > ");
- *ch = wait_here();
- if (*ch == 's') {
- /* Skip is converted to next */
- *ch = 'n';
- return TRUE;
- }
- if (*ch == 'q') {
- /* Quit is converted to help */
- *ch = '?';
- return TRUE;
- }
- if (*ch == '\r' || *ch == '\n' || *ch == 'n' || *ch == 'r') {
- /* this is the only response that allows the test to run */
- *ch = 0;
- }
- if (subtest_menu(pad_test_list, state, ch)) {
- continue;
- }
- return (*ch != 0);
- }
-}
-
-/*
-** pad_done_message(test_list)
-**
-** Print the Done message and request input.
-*/
-void
-pad_done_message(
- struct test_list *test,
- int *state,
- int *ch)
-{
- int default_action = 0;
- char done_message[128];
- char rep_text[16];
-
- while (1) {
- if ((test->flags & MENU_LC_MASK)) {
- sprintf(rep_text, "*%d", augment);
- } else {
- rep_text[0] = '\0';
- }
- if (test->caps_done) {
- sprintf(done_message, "(%s)%s Done ", test->caps_done,
- rep_text);
- ptext(done_message);
- } else {
- if (rep_text[0]) {
- ptext(rep_text);
- ptext(" ");
- }
- ptext("Done ");
- }
- if (debug_level & 2) {
- dump_test_stats(test, state, ch);
- } else {
- *ch = wait_here();
- }
- if (*ch == '\r' || *ch == '\n') {
- *ch = default_action;
- return;
- }
- if (*ch == 's' || *ch == 'n') {
- *ch = 0;
- return;
- }
- if (strchr(pad_repeat_test, *ch)) {
- /* default action is now repeat */
- default_action = 'r';
- }
- if (subtest_menu(pad_test_list, state, ch)) {
- continue;
- }
- return;
- }
-}
-
-/*
-** sliding_scale(dividend, factor, divisor)
-**
-** Return (dividend * factor) / divisor
-*/
-int
-sliding_scale(
- int dividend,
- int factor,
- int divisor)
-{
- double d = dividend;
-
- if (divisor) {
- d = (d * (double) factor) / (double) divisor;
- return (int) (d + 0.5);
- }
- return 0;
-}
-
-/*
-** pad_test_startup()
-**
-** Do the stuff needed to begin a test.
-*/
-void
-pad_test_startup(
- int do_clear)
-{
- if (do_clear) {
- put_clear();
- }
- repeats = augment;
- raw_characters_sent = 0;
- test_complete = ttp = char_count = tt_delay_used = 0;
- letter = letters[letter_number = 0];
- if (pad_test_duration <= 0) {
- pad_test_duration = 1;
- }
- tt_delay_max = pad_test_duration * 1000;
- set_alarm_clock(pad_test_duration);
- event_start(TIME_TEST);
-}
-
-/*
-** still_testing()
-**
-** This function is called to see if the test loop should be terminated.
-*/
-int
-still_testing(void)
-{
- fflush(stdout);
- test_complete++;
- return EXIT_CONDITION;
-}
-
-/*
-** pad_test_shutdown()
-**
-** Do the stuff needed to end a test.
-*/
-void
-pad_test_shutdown(
- struct test_list *t,
- int crlf)
-{
- int i;
- int counts; /* total counts */
- int ss; /* Save string index */
- int cpo; /* characters per operation */
- int delta; /* difference in characters */
- int bogus; /* Time is inaccurate */
- struct test_results *r; /* Results of current test */
- int ss_index[TT_MAX]; /* String index */
-
- if (tty_can_sync == SYNC_TESTED) {
- bogus = tty_sync_error();
- } else {
- bogus = 1;
- }
- usec_run_time = event_time(TIME_TEST);
- tx_source = t;
- tx_characters = raw_characters_sent;
- tx_cps = sliding_scale(tx_characters, 1000000, usec_run_time);
-
- /* save the data base */
- for (txp = ss = counts = 0; txp < ttp; txp++) {
- tx_cap[txp] = tt_cap[txp];
- tx_count[txp] = tt_count[txp];
- tx_delay[txp] = tt_delay[txp];
- tx_affected[txp] = tt_affected[txp];
- tx_index[txp] = get_string_cap_byvalue(tt_cap[txp]);
- if (tx_index[txp] >= 0) {
- if (cap_match(t->caps_done, strnames[tx_index[txp]])) {
- ss_index[ss++] = txp;
- counts += tx_count[txp];
- }
- }
- }
-
- if (crlf) {
- put_crlf();
- }
- if (counts == 0 || tty_cps == 0 || bogus) {
- /* nothing to do */
- return;
- }
- /* calculate the suggested pad times */
- delta = usec_run_time - sliding_scale(tx_characters, 1000000, tty_cps);
- if (delta < 0) {
- /* probably should bump tx_characters */
- delta = 0;
- }
- cpo = delta / counts;
- for (i = 0; i < ss; i++) {
- if (!(r = get_next_block())) {
- return;
- }
- r->next = pads[tx_index[ss_index[i]]];
- pads[tx_index[ss_index[i]]] = r;
- r->test = t;
- r->reps = tx_affected[ss_index[i]];
- r->delay = cpo;
- }
-}
-
-/*
-** show_cap_results(index)
-**
-** Display the previous results
-*/
-static void
-show_cap_results(
- int x)
-{
- struct test_results *r; /* a result */
- int delay;
-
- if ((r = pads[x])) {
- sprintf(temp, "(%s)", strnames[x]);
- ptext(temp);
- while (r) {
- sprintf(temp, "$<%d>", r->delay / 1000);
- put_columns(temp, strlen(temp), 10);
- r = r->next;
- }
- r = pads[x];
- while (r) {
- if (r->reps > 1) {
- delay = r->delay / (r->reps * 100);
- sprintf(temp, "$<%d.%d*>", delay / 10, delay % 10);
- put_columns(temp, strlen(temp), 10);
- }
- r = r->next;
- }
- put_crlf();
- }
-}
-
-/*
-** dump_test_stats(test_list, status, ch)
-**
-** Dump the statistics about the last test
-*/
-void
-dump_test_stats(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
- char tbuf[32];
- int x[32];
-
- put_crlf();
- if (tx_source && tx_source->caps_done) {
- cap_index(tx_source->caps_done, x);
- if (x[0] >= 0) {
- sprintf(temp, "Caps summary for (%s)",
- tx_source->caps_done);
- ptextln(temp);
- for (i = 0; x[i] >= 0; i++) {
- show_cap_results(x[i]);
- }
- put_crlf();
- }
- }
- sprintf(tbuf, "%011u", usec_run_time);
- sprintf(temp, "Test time: %d.%s, characters per second %d, characters %d",
- usec_run_time / 1000000, &tbuf[5], tx_cps, tx_characters);
- ptextln(temp);
- for (i = 0; i < txp; i++) {
- if ((j = get_string_cap_byvalue(tx_cap[i])) >= 0) {
- sprintf(tbuf, "(%s)", strnames[j]);
- } else {
- strcpy(tbuf, "(?)");
- }
- sprintf(temp, "%8d %3d $<%3d> %8s %s",
- tx_count[i], tx_affected[i], tx_delay[i],
- tbuf, expand(tx_cap[i]));
- putln(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** longer_test_time(test_list, status, ch)
-**
-** Extend the number of seconds for each test.
-*/
-void
-longer_test_time(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- pad_test_duration += 1;
- sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
- pad_test_duration + 1);
- sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
- pad_test_duration - 1);
- sprintf(temp, "Tests will run for %d seconds", pad_test_duration);
- ptext(temp);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** shorter_test_time(test_list, status, ch)
-**
-** Shorten the number of seconds for each test.
-*/
-void
-shorter_test_time(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- if (pad_test_duration > 1) {
- pad_test_duration -= 1;
- sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
- pad_test_duration + 1);
- sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
- pad_test_duration - 1);
- }
- sprintf(temp, "Tests will run for %d second%s", pad_test_duration,
- pad_test_duration > 1 ? "s" : "");
- ptext(temp);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** longer_augment(test_list, status, ch)
-**
-** Lengthen the number of lines/characters effected
-*/
-void
-longer_augment(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- augment <<= 1;
- set_augment_txt();
- if (augment_test) {
- t = augment_test;
- }
- sprintf(temp, "The pad tests will effect %d %s.", augment,
- ((t->flags & MENU_LC_MASK) == MENU_lines) ?
- "lines" : "characters");
- ptextln(temp);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** shorter_augment(test_list, status, ch)
-**
-** Shorten the number of lines/characters effected
-*/
-void
-shorter_augment(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- if (augment > 1) {
- /* don't let the augment go to zero */
- augment >>= 1;
- }
- set_augment_txt();
- if (augment_test) {
- t = augment_test;
- }
- sprintf(temp, "The pad tests will effect %d %s.", augment,
- ((t->flags & MENU_LC_MASK) == MENU_lines) ?
- "lines" : "characters");
- ptextln(temp);
- *ch = REQUEST_PROMPT;
-}
diff --git a/ncurses-5.2/tack/crum.c b/ncurses-5.2/tack/crum.c
deleted file mode 100644
index f0eaf1f..0000000
--- a/ncurses-5.2/tack/crum.c
+++ /dev/null
@@ -1,426 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Test cursor movement.
- */
-
-static void crum_clear(struct test_list *t, int *state, int *ch);
-static void crum_home(struct test_list *t, int *state, int *ch);
-static void crum_ll(struct test_list *t, int *state, int *ch);
-static void crum_move(struct test_list *t, int *state, int *ch);
-static void crum_os(struct test_list *t, int *state, int *ch);
-
-static char crum_text[5][80];
-
-struct test_list crum_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT, 0, "clear", 0, 0, crum_clear, 0},
- {MENU_NEXT, 0, "home", 0, 0, crum_home, 0},
- {MENU_NEXT, 0, "ll", 0, 0, crum_ll, 0},
- {MENU_NEXT, 0, crum_text[0], "home cuu1", 0, crum_move, 0},
- {MENU_NEXT + 1, 0, crum_text[1], "cub1 cud1 cuf1 cuu1", 0, crum_move, 0},
- {MENU_NEXT + 2, 0, crum_text[2], "cub cud cuf cuu", 0, crum_move, 0},
- {MENU_NEXT + 3, 0, crum_text[3], "vpa hpa", 0, crum_move, 0},
- {MENU_NEXT + 4, 0, crum_text[4], "cup", 0, crum_move, 0},
- {MENU_NEXT, 0, "cup", "os", 0, crum_os, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*
-** move_to(from-row, from-column, to-row, to-column, selection)
-**
-** move the cursor from (rf, cf) to (rt, ct) using sel
-*/
-static void
-move_to(
- int rf,
- int cf,
- int rt,
- int ct,
- int sel)
-{
- char *s;
-
- if (sel & 16) { /* use (cup) */
- s = tparm(cursor_address, rt, ct);
- tputs(s, lines, tc_putch);
- return;
- }
- if (sel & 8) { /* use (hpa) (vpa) */
- if (column_address) {
- s = tparm(column_address, ct);
- tputs(s, 1, tc_putch);
- cf = ct;
- }
- if (row_address) {
- s = tparm(row_address, rt);
- tputs(s, 1, tc_putch);
- rf = rt;
- }
- }
- if (sel & 4) { /* parameterized relative cursor movement */
- if (parm_right_cursor)
- if (cf < ct) {
- s = tparm(parm_right_cursor, ct - cf);
- tputs(s, ct - cf, tc_putch);
- cf = ct;
- }
- if (parm_left_cursor)
- if (cf > ct) {
- s = tparm(parm_left_cursor, cf - ct);
- tputs(s, cf - ct, tc_putch);
- cf = ct;
- }
- if (parm_down_cursor)
- if (rf < rt) {
- s = tparm(parm_down_cursor, rt - rf);
- tputs(s, rt - rf, tc_putch);
- rf = rt;
- }
- if (parm_up_cursor)
- if (rf > rt) {
- s = tparm(parm_up_cursor, rf - rt);
- tputs(s, rf - rt, tc_putch);
- rf = rt;
- }
- }
- if (sel & 2) {
- if (cursor_left)
- while (cf > ct) {
- tc_putp(cursor_left);
- cf--;
- }
- /*
- do vertical motion next. Just in case cursor_down has a
- side effect of changing the column. This could happen if
- the tty handler translates NL to CRNL.
- */
- if (cursor_down)
- while (rf < rt) {
- tc_putp(cursor_down);
- rf++;
- }
- if (cursor_up)
- while (rf > rt) {
- tc_putp(cursor_up);
- rf--;
- }
- if (cursor_right)
- while (cf < ct) {
- tc_putp(cursor_right);
- cf++;
- }
- }
- /* last chance */
- if (rf > rt) {
- if (can_go_home) { /* a bit drastic but ... */
- go_home();
- cf = 0;
- rf = 0;
- } else if (cursor_up) {
- while (rf > rt) {
- tc_putp(cursor_up);
- rf--;
- }
- }
- }
- if (ct == 0 && rt > rf) {
- put_crlf();
- cf = 0;
- rf++;
- }
- if (ct == 0 && cf != 0) {
- put_cr();
- cf = 0;
- }
- while (rf < rt) {
- put_lf();
- rf++;
- }
- while (cf > ct) {
- put_str("\b");
- cf--;
- }
- if (cursor_right) {
- while (cf < ct) {
- tc_putp(cursor_right);
- cf++;
- }
- } else {
- /* go ahead and trash my display */
- while (cf < ct) {
- putchp(' ');
- cf++;
- }
- }
-}
-
-/*
-** display_it(selection, text)
-**
-** print the display using sel
-*/
-static void
-display_it(
- int sel,
- char *txt)
-{
- int i, done_line;
-
- put_clear();
- go_home();
- put_newlines(2);
- ptextln(" The top line should be alternating <'s and >'s");
- ptextln(" The left side should be alternating A's and V's");
- ptext(" Testing ");
- ptext(txt);
- put_cr();
-
- /* horizontal */
- move_to(done_line = line_count, 0, 0, 2, sel);
- for (i = 4; i < columns - 2; i += 2) {
- putchp('>');
- move_to(0, i - 1, 0, i, sel);
- }
- putchp('>');
- i -= 2;
- move_to(0, i + 1, 0, i - 1, sel);
- for (; i > 2; i -= 2) {
- putchp('<');
- move_to(0, i, 0, i - 3, sel);
- }
- putchp('<');
-
- /* vertical */
- move_to(0, 2, 0, 0, sel);
- for (i = 2; i < lines - 1; i += 2) {
- putchp('V');
- move_to(i - 2, 1, i, 0, sel);
- }
- putchp('V');
- i -= 2;
- move_to(i, 1, i + 1, 0, sel);
- for (; i > 0; i -= 2) {
- putchp('A');
- move_to(i + 1, 1, i - 1, 0, sel);
- }
- putchp('A');
- move_to(i + 1, 1, 0, 0, sel); /* go home first */
- move_to(0, 0, done_line + 1, 3, sel);
- put_str(txt);
- put_str(" Done. ");
-}
-
-/*
-** crum_clear(test_list, status, ch)
-**
-** (clear) test Clear screen
-*/
-static void
-crum_clear(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (clear_screen) {
- for (i = lines; i > 1; i--) {
- putln("garbage");
- }
- put_clear();
- ptextln("This line should start in the home position.");
- ptext("The rest of the screen should be clear. ");
- } else {
- ptextln("(clear) Clear screen is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** crum_home(test_list, status, ch)
-**
-** (home) test Home cursor
-*/
-static void
-crum_home(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (cursor_home) {
- put_clear();
- put_newlines(lines / 2);
- go_home();
- put_crlf();
- ptext("The bottom line should have text.");
- go_home();
- put_newlines(lines - 1);
- ptext("This line is on the bottom.");
- go_home();
- ptextln("This line starts in the home position.");
- put_crlf();
- } else {
- ptextln("(home) Home cursor is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** crum_ll(test_list, status, ch)
-**
-** (ll) test Last line
-*/
-static void
-crum_ll(
- struct test_list *t,
- int *state,
- int *ch)
-{
- /*
- (ll) may be simulated with (cup). Don't complain if (cup) is present.
- */
- if (cursor_to_ll) {
- put_clear();
- put_str("This line could be anywhere.");
- tc_putp(cursor_to_ll);
- ptext("This line should be on the bottom");
- go_home();
- put_crlf();
- } else
- if (cursor_address) {
- return;
- } else {
- ptextln("(ll) Move to last line is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** crum_move(test_list, status, ch)
-**
-** (*) test all cursor move commands
-*/
-static void
-crum_move(
- struct test_list *t,
- int *state,
- int *ch)
-{
- char buf[80];
- int n;
-
- switch (n = (t->flags & 15)) {
- case 0:
- sprintf(buf, " (cr) (nel) (cub1)%s",
- cursor_home ? " (home)" : (cursor_up ? " (cuu1)" : ""));
- break;
- case 1:
- sprintf(buf, "%s%s%s%s", cursor_left ? " (cub1)" : "",
- cursor_down ? " (cud1)" : "", cursor_right ? " (cuf1)" : "",
- cursor_up ? " (cuu1)" : "");
- if (buf[0] == '\0') {
- ptext(" (cub1) (cud1) (cuf1) (cuu1) not defined.");
- }
- break;
- case 2:
- sprintf(buf, "%s%s%s%s", parm_left_cursor ? " (cub)" : "",
- parm_down_cursor ? " (cud)" : "",
- parm_right_cursor ? " (cuf)" : "",
- parm_up_cursor ? " (cuu)" : "");
- if (buf[0] == '\0') {
- ptext(" (cub) (cud) (cuf) (cuu) not defined.");
- }
- break;
- case 3:
- sprintf(buf, "%s%s", row_address ? " (vpa)" : "",
- column_address ? " (hpa)" : "");
- if (buf[0] == '\0') {
- ptext(" (vpa) (hpa) not defined.");
- }
- break;
- case 4:
- if (!cursor_address) {
- ptext(" (cup) not defined. ");
- generic_done_message(t, state, ch);
- return;
- }
- strcpy(buf, " (cup)");
- break;
- }
- if (buf[0] == '\0') {
- put_str(" Done. ");
- } else {
- can_test(buf, FLAG_TESTED);
- strcpy(crum_text[n], &buf[2]);
- crum_text[n][strlen(buf) - 3] = '\0';
-
- display_it(1 << n, buf);
- }
- *ch = wait_here();
- if (*ch != 'r') {
- put_clear();
- }
-}
-
-/*
-** crum_os(test_list, status, ch)
-**
-** (cup) test Cursor position on overstrike terminals
-*/
-static void
-crum_os(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (cursor_address && over_strike) {
- put_clear();
- for (i = 0; i < columns - 2; i++) {
- tc_putch('|');
- }
- for (i = 1; i < lines - 2; i++) {
- put_crlf();
- tc_putch('_');
- }
- for (i = 0; i < columns - 2; i++) {
- tputs(tparm(cursor_address, 0, i), lines, tc_putch);
- tc_putch('+');
- }
- for (i = 0; i < lines - 2; i++) {
- tputs(tparm(cursor_address, i, 0), lines, tc_putch);
- tc_putch(']');
- tc_putch('_');
- }
- go_home();
- put_newlines(3);
- ptext(" All the characters should look the same. ");
- generic_done_message(t, state, ch);
- put_clear();
- }
-}
diff --git a/ncurses-5.2/tack/edit.c b/ncurses-5.2/tack/edit.c
deleted file mode 100644
index 3a17861..0000000
--- a/ncurses-5.2/tack/edit.c
+++ /dev/null
@@ -1,977 +0,0 @@
-/*
-** Copyright (C) 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-#include <time.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Terminfo edit features
- */
-static void show_info(struct test_list *, int *, int *);
-static void show_value(struct test_list *, int *, int *);
-static void show_untested(struct test_list *, int *, int *);
-static void show_changed(struct test_list *, int *, int *);
-
-#define SHOW_VALUE 1
-#define SHOW_EDIT 2
-#define SHOW_DELETE 3
-
-struct test_list edit_test_list[] = {
- {MENU_CLEAR, 0, 0, 0, "i) display current terminfo", show_info, 0},
- {0, 0, 0, 0, "w) write the current terminfo to a file", save_info, 0},
- {SHOW_VALUE, 3, 0, 0, "v) show value of a selected cap", show_value, 0},
- {SHOW_EDIT, 4, 0, 0, "e) edit value of a selected cap", show_value, 0},
- {SHOW_DELETE, 3, 0, 0, "d) delete string", show_value, 0},
- {0, 3, 0, 0, "m) show caps that have been modified", show_changed, 0},
- {MENU_CLEAR + FLAG_CAN_TEST, 0, 0, 0, "c) show caps that can be tested", show_report, 0},
- {MENU_CLEAR + FLAG_TESTED, 0, 0, 0, "t) show caps that have been tested", show_report, 0},
- {MENU_CLEAR + FLAG_FUNCTION_KEY, 0, 0, 0, "f) show a list of function keys", show_report, 0},
- {MENU_CLEAR, 0, 0, 0, "u) show caps defined that can not be tested", show_untested, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static char change_pad_text[MAX_CHANGES][80];
-struct test_list change_pad_list[MAX_CHANGES] = {
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static void build_change_menu(struct test_menu *);
-static void change_one_entry(struct test_list *, int *, int *);
-
-struct test_menu change_pad_menu = {
- 0, 'q', 0,
- "Select cap name", "change", 0,
- build_change_menu, change_pad_list, 0, 0, 0
-};
-
-extern struct test_results *pads[STRCOUNT]; /* save pad results here */
-
-static TERMTYPE original_term; /* terminal type description */
-
-static char flag_boolean[BOOLCOUNT]; /* flags for booleans */
-static char flag_numerics[NUMCOUNT]; /* flags for numerics */
-static char flag_strings[STRCOUNT]; /* flags for strings */
-static int xon_index; /* Subscript for (xon) */
-int xon_shadow;
-
-static int start_display; /* the display has just started */
-static int display_lines; /* number of lines displayed */
-
-/*
-** send_info_string(str)
-**
-** Return the terminfo string prefixed by the correct separator
-*/
-static void
-send_info_string(
- const char *str,
- int *ch)
-{
- int len;
-
- if (display_lines == -1) {
- return;
- }
- len = strlen(str);
- if (len + char_count + 3 >= columns) {
- if (start_display == 0) {
- put_str(",");
- }
- put_crlf();
- if (++display_lines > lines) {
- ptext("-- more -- ");
- *ch = wait_here();
- if (*ch == 'q') {
- display_lines = -1;
- return;
- }
- display_lines = 0;
- }
- if (len >= columns) {
- /* if the terminal does not (am) then this loses */
- if (columns) {
- display_lines += ((strlen(str) + 3) / columns) + 1;
- }
- put_str(" ");
- put_str(str);
- start_display = 0;
- return;
- }
- ptext(" ");
- } else
- if (start_display == 0) {
- ptext(", ");
- } else {
- ptext(" ");
- }
- ptext(str);
- start_display = 0;
-}
-
-/*
-** show_info(test_list, status, ch)
-**
-** Display the current terminfo
-*/
-static void
-show_info(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i;
- char buf[1024];
-
- display_lines = 1;
- start_display = 1;
- for (i = 0; i < BOOLCOUNT; i++) {
- if ((i == xon_index) ? xon_shadow : CUR Booleans[i]) {
- send_info_string(boolnames[i], ch);
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (CUR Numbers[i] >= 0) {
- sprintf(buf, "%s#%d", numnames[i], CUR Numbers[i]);
- send_info_string(buf, ch);
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- if (CUR Strings[i]) {
- sprintf(buf, "%s=%s", strnames[i],
- print_expand(CUR Strings[i]));
- send_info_string(buf, ch);
- }
- }
- put_newlines(2);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** save_info_string(str, fp)
-**
-** Write the terminfo string prefixed by the correct separator
-*/
-static void
-save_info_string(
- const char *str,
- FILE *fp)
-{
- int len;
-
- len = strlen(str);
- if (len + display_lines >= 77) {
- if (display_lines > 0) {
- (void) fprintf(fp, "\n\t");
- }
- display_lines = 8;
- } else
- if (display_lines > 0) {
- (void) fprintf(fp, " ");
- display_lines++;
- } else {
- (void) fprintf(fp, "\t");
- display_lines = 8;
- }
- (void) fprintf(fp, "%s,", str);
- display_lines += len + 1;
-}
-
-/*
-** save_info(test_list, status, ch)
-**
-** Write the current terminfo to a file
-*/
-void
-save_info(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- FILE *fp;
- time_t now;
- char buf[1024];
-
- if ((fp = fopen(tty_basename, "w")) == (FILE *) NULL) {
- (void) sprintf(temp, "can't open: %s", tty_basename);
- ptextln(temp);
- generic_done_message(t, state, ch);
- return;
- }
- time(&now);
- /* Note: ctime() returns a newline at the end of the string */
- (void) fprintf(fp, "# Terminfo created by TACK for TERM=%s on %s",
- tty_basename, ctime(&now));
- (void) fprintf(fp, "%s|%s,\n", tty_basename, longname());
-
- display_lines = 0;
- for (i = 0; i < BOOLCOUNT; i++) {
- if (i == xon_index ? xon_shadow : CUR Booleans[i]) {
- save_info_string(boolnames[i], fp);
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (CUR Numbers[i] >= 0) {
- sprintf(buf, "%s#%d", numnames[i], CUR Numbers[i]);
- save_info_string(buf, fp);
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- if (CUR Strings[i]) {
- sprintf(buf, "%s=%s", strnames[i],
- _nc_tic_expand(CUR Strings[i], TRUE, TRUE));
- save_info_string(buf, fp);
- }
- }
- (void) fprintf(fp, "\n");
- (void) fclose(fp);
- sprintf(temp, "Terminfo saved as file: %s", tty_basename);
- ptextln(temp);
-}
-
-/*
-** show_value(test_list, status, ch)
-**
-** Display the value of a selected cap
-*/
-static void
-show_value(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- struct name_table_entry const *nt;
- char *s;
- int n, op, b;
- char buf[1024];
- char tmp[1024];
-
- ptext("enter name: ");
- read_string(buf, 80);
- if (buf[0] == '\0' || buf[1] == '\0') {
- *ch = buf[0];
- return;
- }
- if (line_count + 2 >= lines) {
- put_clear();
- }
- op = t->flags & 255;
- if ((nt = _nc_find_entry(buf, _nc_info_hash_table))) {
- switch (nt->nte_type) {
- case BOOLEAN:
- if (op == SHOW_DELETE) {
- if (nt->nte_index == xon_index) {
- xon_shadow = 0;
- } else {
- CUR Booleans[nt->nte_index] = 0;
- }
- return;
- }
- b = nt->nte_index == xon_index ? xon_shadow :
- CUR Booleans[nt->nte_index];
- sprintf(temp, "boolean %s %s", buf,
- b ? "True" : "False");
- break;
- case STRING:
- if (op == SHOW_DELETE) {
- CUR Strings[nt->nte_index] = (char *) 0;
- return;
- }
- if (CUR Strings[nt->nte_index]) {
- sprintf(temp, "string %s %s", buf,
- expand(CUR Strings[nt->nte_index]));
- } else {
- sprintf(temp, "undefined string %s", buf);
- }
- break;
- case NUMBER:
- if (op == SHOW_DELETE) {
- CUR Numbers[nt->nte_index] = -1;
- return;
- }
- sprintf(temp, "numeric %s %d", buf,
- CUR Numbers[nt->nte_index]);
- break;
- default:
- sprintf(temp, "unknown");
- break;
- }
- ptextln(temp);
- } else {
- sprintf(temp, "Cap not found: %s", buf);
- ptextln(temp);
- return;
- }
- if (op != SHOW_EDIT) {
- return;
- }
- if (nt->nte_type == BOOLEAN) {
- ptextln("Value flipped");
- if (nt->nte_index == xon_index) {
- xon_shadow = !xon_shadow;
- } else {
- CUR Booleans[nt->nte_index] = !CUR Booleans[nt->nte_index];
- }
- return;
- }
- ptextln("Enter new value");
- read_string(buf, sizeof(buf));
-
- switch (nt->nte_type) {
- case STRING:
- _nc_reset_input((FILE *) 0, buf);
- _nc_trans_string(tmp, tmp + sizeof(tmp));
- s = (char *)malloc(strlen(tmp) + 1);
- strcpy(s, tmp);
- CUR Strings[nt->nte_index] = s;
- sprintf(temp, "new string value %s", nt->nte_name);
- ptextln(temp);
- ptextln(expand(CUR Strings[nt->nte_index]));
- break;
- case NUMBER:
- if (sscanf(buf, "%d", &n) == 1) {
- CUR Numbers[nt->nte_index] = n;
- sprintf(temp, "new numeric value %s %d",
- nt->nte_name, n);
- ptextln(temp);
- } else {
- sprintf(temp, "Illegal number: %s", buf);
- ptextln(temp);
- }
- break;
- default:
- break;
- }
-}
-
-/*
-** get_string_cap_byname(name, long_name)
-**
-** Given a cap name, find the value
-** Errors are quietly ignored.
-*/
-char *
-get_string_cap_byname(
- const char *name,
- const char **long_name)
-{
- struct name_table_entry const *nt;
-
- if ((nt = _nc_find_entry(name, _nc_info_hash_table))) {
- if (nt->nte_type == STRING) {
- *long_name = strfnames[nt->nte_index];
- return (CUR Strings[nt->nte_index]);
- }
- }
- *long_name = "??";
- return (char *) 0;
-}
-
-/*
-** get_string_cap_byvalue(value)
-**
-** Given a capability string, find its position in the data base.
-** Return the index or -1 if not found.
-*/
-int
-get_string_cap_byvalue(
- const char *value)
-{
- int i;
-
- if (value) {
- for (i = 0; i < STRCOUNT; i++) {
- if (CUR Strings[i] == value) {
- return i;
- }
- }
- /* search for translated strings */
- for (i = 0; i < TM_last; i++) {
- if (TM_string[i].value == value) {
- return TM_string[i].index;
- }
- }
- }
- return -1;
-}
-
-/*
-** show_changed(test_list, status, ch)
-**
-** Display a list of caps that have been changed.
-*/
-static void
-show_changed(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i, header = 1, v;
- const char *a;
- const char *b;
- static char title[] = " old value cap new value";
- char abuf[1024];
-
- for (i = 0; i < BOOLCOUNT; i++) {
- v = (i == xon_index) ? xon_shadow : CUR Booleans[i];
- if (original_term.Booleans[i] != v) {
- if (header) {
- ptextln(title);
- header = 0;
- }
- sprintf(temp, "%30d %6s %d",
- original_term.Booleans[i], boolnames[i], v);
- ptextln(temp);
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (original_term.Numbers[i] != CUR Numbers[i]) {
- if (header) {
- ptextln(title);
- header = 0;
- }
- sprintf(temp, "%30d %6s %d",
- original_term.Numbers[i], numnames[i],
- CUR Numbers[i]);
- ptextln(temp);
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- a = original_term.Strings[i] ? original_term.Strings[i] : "";
- b = CUR Strings[i] ? CUR Strings[i] : "";
- if (strcmp(a, b)) {
- if (header) {
- ptextln(title);
- header = 0;
- }
- strcpy(abuf, _nc_tic_expand(a, TRUE, TRUE));
- sprintf(temp, "%30s %6s %s", abuf, strnames[i],
- _nc_tic_expand(b, TRUE, TRUE));
- putln(temp);
- }
- }
- if (header) {
- ptextln("No changes");
- }
- put_crlf();
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** user_modified()
-**
-** Return TRUE if the user has modified the terminfo
-*/
-int
-user_modified(void)
-{
- const char *a, *b;
- int i, v;
-
- for (i = 0; i < BOOLCOUNT; i++) {
- v = (i == xon_index) ? xon_shadow : CUR Booleans[i];
- if (original_term.Booleans[i] != v) {
- return TRUE;
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (original_term.Numbers[i] != CUR Numbers[i]) {
- return TRUE;
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- a = original_term.Strings[i] ? original_term.Strings[i] : "";
- b = CUR Strings[i] ? CUR Strings[i] : "";
- if (strcmp(a, b)) {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*****************************************************************************
- *
- * Maintain the list of capabilities that can be tested
- *
- *****************************************************************************/
-
-/*
-** mark_cap(name, flag)
-**
-** Mark the cap data base with the flag provided.
-*/
-static void
-mark_cap(
- char *name,
- int flag)
-{
- struct name_table_entry const *nt;
-
- if ((nt = _nc_find_entry(name, _nc_info_hash_table))) {
- switch (nt->nte_type) {
- case BOOLEAN:
- flag_boolean[nt->nte_index] |= flag;
- break;
- case STRING:
- flag_strings[nt->nte_index] |= flag;
- break;
- case NUMBER:
- flag_numerics[nt->nte_index] |= flag;
- break;
- default:
- sprintf(temp, "unknown cap type (%s)", name);
- ptextln(temp);
- break;
- }
- } else {
- sprintf(temp, "Cap not found: %s", name);
- ptextln(temp);
- (void) wait_here();
- }
-}
-
-/*
-** can_test(name-list, flags)
-**
-** Scan the name list and get the names.
-** Enter each name into the can-test data base.
-** <space> ( and ) may be used as separators.
-*/
-void
-can_test(
- const char *s,
- int flags)
-{
- int ch, i, j;
- char name[32];
-
- if (s) {
- for (i = j = 0; (name[j] = ch = *s); s++) {
- if (ch == ' ' || ch == ')' || ch == '(') {
- if (j) {
- name[j] = '\0';
- mark_cap(name, flags);
- }
- j = 0;
- } else {
- j++;
- }
- }
- if (j) {
- mark_cap(name, flags);
- }
- }
-}
-
-/*
-** cap_index(name-list, index-list)
-**
-** Scan the name list and return a list of indexes.
-** <space> ( and ) may be used as separators.
-** This list is terminated with -1.
-*/
-void
-cap_index(
- const char *s,
- int *inx)
-{
- struct name_table_entry const *nt;
- int ch, i, j;
- char name[32];
-
- if (s) {
- for (i = j = 0; ; s++) {
- name[j] = ch = *s;
- if (ch == ' ' || ch == ')' || ch == '(' || ch == 0) {
- if (j) {
- name[j] = '\0';
- if ((nt = _nc_find_entry(name,
- _nc_info_hash_table)) &&
- (nt->nte_type == STRING)) {
- *inx++ = nt->nte_index;
- }
- }
- if (ch == 0) {
- break;
- }
- j = 0;
- } else {
- j++;
- }
- }
- }
- *inx = -1;
-}
-
-/*
-** cap_match(name-list, cap)
-**
-** Scan the name list and see if the cap is in the list.
-** Return TRUE if we find an exact match.
-** <space> ( and ) may be used as separators.
-*/
-int
-cap_match(
- const char *names,
- const char *cap)
-{
- char *s;
- int c, l, t;
-
- if (names) {
- l = strlen(cap);
- while ((s = strstr(names, cap))) {
- c = (names == s) ? 0 : *(s - 1);
- t = s[l];
- if ((c == 0 || c == ' ' || c == '(') &&
- (t == 0 || t == ' ' || t == ')')) {
- return TRUE;
- }
- if (t == 0) {
- break;
- }
- names = s + l;
- }
- }
- return FALSE;
-}
-
-/*
-** show_report(test_list, status, ch)
-**
-** Display a list of caps that can be tested
-*/
-void
-show_report(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i, j, nc, flag;
- const char *s;
- const char *nx[BOOLCOUNT + NUMCOUNT + STRCOUNT];
-
- flag = t->flags & 255;
- nc = 0;
- for (i = 0; i < BOOLCOUNT; i++) {
- if (flag_boolean[i] & flag) {
- nx[nc++] = boolnames[i];
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (flag_numerics[i] & flag) {
- nx[nc++] = numnames[i];
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- if (flag_strings[i] & flag) {
- nx[nc++] = strnames[i];
- }
- }
- /* sort */
- for (i = 0; i < nc - 1; i++) {
- for (j = i + 1; j < nc; j++) {
- if (strcmp(nx[i], nx[j]) > 0) {
- s = nx[i];
- nx[i] = nx[j];
- nx[j] = s;
- }
- }
- }
- if (flag & FLAG_FUNCTION_KEY) {
- ptextln("The following function keys can be tested:");
- } else
- if (flag & FLAG_CAN_TEST) {
- ptextln("The following capabilities can be tested:");
- } else
- if (flag & FLAG_TESTED) {
- ptextln("The following capabilities have been tested:");
- }
- put_crlf();
- for (i = 0; i < nc; i++) {
- sprintf(temp, "%s ", nx[i]);
- ptext(temp);
- }
- put_newlines(1);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** show_untested(test_list, status, ch)
-**
-** Display a list of caps that are defined but cannot be tested.
-** Don't bother to sort this list.
-*/
-static void
-show_untested(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i;
-
- ptextln("Caps that are defined but cannot be tested:");
- for (i = 0; i < BOOLCOUNT; i++) {
- if (flag_boolean[i] == 0 && CUR Booleans[i]) {
- sprintf(temp, "%s ", boolnames[i]);
- ptext(temp);
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (flag_numerics[i] == 0 && CUR Numbers[i] >= 0) {
- sprintf(temp, "%s ", numnames[i]);
- ptext(temp);
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- if (flag_strings[i] == 0 && CUR Strings[i]) {
- sprintf(temp, "%s ", strnames[i]);
- ptext(temp);
- }
- }
- put_newlines(1);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** edit_init()
-**
-** Initialize the function key data base
-*/
-void
-edit_init(void)
-{
- int i, j, lc;
- char *lab;
- struct name_table_entry const *nt;
- int label_strings[STRCOUNT];
-
- _nc_copy_termtype(&original_term, &cur_term->type);
- for (i = 0; i < BOOLCOUNT; i++) {
- original_term.Booleans[i] = CUR Booleans[i];
- }
- for (i = 0; i < NUMCOUNT; i++) {
- original_term.Numbers[i] = CUR Numbers[i];
- }
- /* scan for labels */
- for (i = lc = 0; i < STRCOUNT; i++) {
- original_term.Strings[i] = CUR Strings[i];
- if (strncmp(strnames[i], "lf", 2) == 0) {
- flag_strings[i] |= FLAG_LABEL;
- if (CUR Strings[i]) {
- label_strings[lc++] = i;
- }
- }
- }
- /* scan for function keys */
- for (i = 0; i < STRCOUNT; i++) {
- if ((strnames[i][0] == 'k') && strcmp(strnames[i], "kmous")) {
- flag_strings[i] |= FLAG_FUNCTION_KEY;
- lab = (char *) 0;
- for (j = 0; j < lc; j++) {
- if (!strcmp(&strnames[i][1],
- &strnames[label_strings[j]][1])) {
- lab = CUR Strings[label_strings[j]];
- break;
- }
- }
- enter_key(strnames[i], CUR Strings[i], lab);
- }
- }
- /* Lookup the translated strings */
- for (i = 0; i < TM_last; i++) {
- if ((nt = _nc_find_entry(TM_string[i].name,
- _nc_info_hash_table)) && (nt->nte_type == STRING)) {
- TM_string[i].index = nt->nte_index;
- } else {
- sprintf(temp, "TM_string lookup failed for: %s",
- TM_string[i].name);
- ptextln(temp);
- }
- }
- if ((nt = _nc_find_entry("xon", _nc_info_hash_table)) != 0) {
- xon_index = nt->nte_index;
- }
- xon_shadow = xon_xoff;
-}
-
-/*
-** change_one_entry(test_list, status, ch)
-**
-** Change the padding on the selected cap
-*/
-static void
-change_one_entry(
- struct test_list *test,
- int *state,
- int *chp)
-{
- struct name_table_entry const *nt;
- int i, j, x, star, slash, v, dot, ch;
- const char *s;
- char *t, *p;
- const char *current_string;
- char buf[1024];
- char pad[1024];
-
- i = test->flags & 255;
- if (i == 255) {
- /* read the cap name from the user */
- ptext("enter name: ");
- read_string(pad, 32);
- if (pad[0] == '\0' || pad[1] == '\0') {
- *chp = pad[0];
- return;
- }
- if ((nt = _nc_find_entry(pad, _nc_info_hash_table)) &&
- (nt->nte_type == STRING)) {
- x = nt->nte_index;
- current_string = CUR Strings[x];
- } else {
- sprintf(temp, "%s is not a string capability", pad);
- ptext(temp);
- generic_done_message(test, state, chp);
- return;
- }
- } else {
- x = tx_index[i];
- current_string = tx_cap[i];
- strcpy(pad, strnames[x]);
- }
- if (!current_string) {
- ptextln("That string is not currently defined. Please enter a new value, including the padding delay:");
- read_string(buf, sizeof(buf));
- _nc_reset_input((FILE *) 0, buf);
- _nc_trans_string(pad, pad + sizeof(pad));
- t = (char *)malloc(strlen(pad) + 1);
- strcpy(t, pad);
- CUR Strings[x] = t;
- sprintf(temp, "new string value %s", strnames[x]);
- ptextln(temp);
- ptextln(expand(t));
- return;
- }
- sprintf(buf, "Current value: (%s) %s", pad, _nc_tic_expand(current_string, TRUE, TRUE));
- 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]))) {
- *chp = buf[0];
- return;
- }
- star = slash = FALSE;
- for (j = v = dot = 0; (ch = buf[j]); j++) {
- if (ch >= '0' && ch <= '9') {
- v = ch - '0' + v * 10;
- if (dot) {
- dot++;
- }
- } else if (ch == '*') {
- star = TRUE;
- } else if (ch == '/') {
- slash = TRUE;
- } else if (ch == '.') {
- dot = 1;
- } else {
- sprintf(temp, "Illegal character: %c", ch);
- ptextln(temp);
- ptext("General format: 99.9*/ ");
- generic_done_message(test, state, chp);
- return;
- }
- }
- while (dot > 2) {
- v /= 10;
- dot--;
- }
- if (dot == 2) {
- sprintf(pad, "%d.%d%s%s", v / 10, v % 10,
- star ? "*" : "", slash ? "/" : "");
- } else {
- sprintf(pad, "%d%s%s",
- v, star ? "*" : "", slash ? "/" : "");
- }
- s = current_string;
- t = buf;
- for (v = 0; (ch = *t = *s++); t++) {
- if (v == '$' && ch == '<') {
- while ((ch = *s++) && (ch != '>'));
- for (p = pad; (*++t = *p++); );
- *t++ = '>';
- while ((*t++ = *s++));
- pad[0] = '\0';
- break;
- }
- v = ch;
- }
- if (pad[0]) {
- sprintf(t, "$<%s>", pad);
- }
- if ((t = (char *)malloc(strlen(buf) + 1))) {
- strcpy(t, buf);
- CUR Strings[x] = t;
- if (i != 255) {
- tx_cap[i] = t;
- }
- }
- generic_done_message(test, state, chp);
-}
-
-/*
-** build_change_menu(menu_list)
-**
-** Build the change pad menu list
-*/
-static void
-build_change_menu(
- struct test_menu *m)
-{
- int i, j, k;
- char *s;
-
- for (i = j = 0; i < txp; i++) {
- if ((k = tx_index[i]) >= 0) {
- s = _nc_tic_expand(tx_cap[i], TRUE, TRUE);
- s[40] = '\0';
- sprintf(change_pad_text[j], "%c) (%s) %s",
- 'a' + j, strnames[k], s);
- change_pad_list[j].flags = i;
- change_pad_list[j].lines_needed = 4;
- change_pad_list[j].menu_entry = change_pad_text[j];
- change_pad_list[j].test_procedure = change_one_entry;
- j++;
- }
- }
- strcpy(change_pad_text[j], "z) enter name");
- change_pad_list[j].flags = 255;
- change_pad_list[j].lines_needed = 4;
- change_pad_list[j].menu_entry = change_pad_text[j];
- change_pad_list[j].test_procedure = change_one_entry;
- j++;
- change_pad_list[j].flags = MENU_LAST;
- if (m->menu_title) {
- put_crlf();
- ptextln(m->menu_title);
- }
-}
diff --git a/ncurses-5.2/tack/fun.c b/ncurses-5.2/tack/fun.c
deleted file mode 100644
index 807c641..0000000
--- a/ncurses-5.2/tack/fun.c
+++ /dev/null
@@ -1,912 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Test the function keys on the terminal. The code for echo tests
- * lives here too.
- */
-
-static void funkey_keys(struct test_list *, int *, int *);
-static void funkey_meta(struct test_list *, int *, int *);
-static void funkey_label(struct test_list *, int *, int *);
-static void funkey_prog(struct test_list *, int *, int *);
-static void funkey_local(struct test_list *, int *, int *);
-
-struct test_list funkey_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_CLEAR + FLAG_FUNCTION_KEY, 0, 0, 0, "f) show a list of function keys", show_report, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "smkx) (rmkx", 0,
- "k) test function keys", funkey_keys, 0},
- {MENU_NEXT, 10, "km", "smm rmm", 0, funkey_meta, 0},
- {MENU_NEXT, 8, "nlab) (smln) (pln) (rmln", "lw lh", 0, funkey_label, 0},
- {MENU_NEXT, 2, "pfx", 0, 0, funkey_prog, 0},
- {MENU_NEXT, 2, "pfloc", 0, 0, funkey_local, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static void printer_on(struct test_list *, int *, int *);
-static void printer_mc0(struct test_list *, int *, int *);
-
-struct test_list printer_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT | MENU_CLEAR, 0, "mc4) (mc5) (mc5i", 0, 0, printer_on, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "mc0", 0, 0, printer_mc0, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-#define MAX_STRINGS STRCOUNT
-
-/* scan code externals */
-extern int scan_max; /* length of longest scan code */
-extern char **scan_up, **scan_down, **scan_name;
-extern int *scan_tested, *scan_length;
-
-/* local definitions */
-static const char *fk_name[MAX_STRINGS];
-static char *fkval[MAX_STRINGS];
-static char *fk_label[MAX_STRINGS]; /* function key labels (if any) */
-static int fk_tested[MAX_STRINGS];
-static int fkmax = 1; /* length of longest key */
-static int got_labels = 0; /* true if we have some labels */
-static int key_count = 0;
-static int end_state;
-
-/* unknown function keys */
-#define MAX_FK_UNK 50
-static char *fk_unknown[MAX_FK_UNK];
-static int fk_length[MAX_FK_UNK];
-static int funk;
-
-/*
-** keys_tested(first-time, show-help, hex-output)
-**
-** Display a list of the keys not tested.
-*/
-static void
-keys_tested(
- int first_time,
- int show_help,
- int hex_output)
-{
- int i, l;
- char outbuf[256];
-
- put_clear();
- tty_set();
- flush_input();
- if (got_labels) {
- putln("Function key labels:");
- for (i = 0; i < key_count; ++i) {
- if (fk_label[i]) {
- sprintf(outbuf, "%s %s",
- fk_name[i] ? fk_name[i] : "??", fk_label[i]);
- put_columns(outbuf, strlen(outbuf), 16);
- }
- }
- put_newlines(2);
- }
- if (funk) {
- putln("The following keys are not defined:");
- for (i = 0; i < funk; ++i) {
- put_columns(fk_unknown[i], fk_length[i], 16);
- }
- put_mode(exit_attribute_mode);
- put_newlines(2);
- }
- if (first_time) {
- putln("The following keys are defined:");
- } else {
- putln("The following keys have not been tested:");
- }
- if (scan_mode) {
- for (i = 0; scan_down[i]; i++) {
- if (!scan_tested[i]) {
- if (hex_output) {
- strcpy(outbuf, hex_expand_to(scan_down[i], 3));
- } else {
- strcpy(outbuf, expand(scan_down[i]));
- }
- l = expand_chars;
- if (hex_output) {
- strcat(outbuf, hex_expand_to(scan_up[i], 3));
- } else {
- strcat(outbuf, expand(scan_up[i]));
- }
- expand_chars += l;
- l = strlen(scan_name[i]);
- if (((char_count + 16) & ~15) +
- ((expand_chars + 7) & ~7) + l >= columns) {
- put_crlf();
- } else
- if (char_count + 24 > columns) {
- put_crlf();
- } else if (char_count) {
- putchp(' ');
- }
- put_columns(outbuf, expand_chars, 16);
- put_columns(scan_name[i], l, 8);
- }
- }
- } else {
- for (i = 0; i < key_count; i++) {
- if (!fk_tested[i]) {
- if (hex_output) {
- strcpy(outbuf, hex_expand_to(fkval[i], 3));
- } else {
- strcpy(outbuf, expand(fkval[i]));
- }
- l = strlen(fk_name[i]);
- if (((char_count + 16) & ~15) +
- ((expand_chars + 7) & ~7) + l >= columns) {
- put_crlf();
- } else
- if (char_count + 24 > columns) {
- put_crlf();
- } else
- if (char_count) {
- putchp(' ');
- }
- put_columns(outbuf, expand_chars, 16);
- put_columns(fk_name[i], l, 8);
- }
- }
- }
- put_newlines(2);
- if (show_help) {
- ptextln("Hit any function key. Type 'end' to quit. Type ? to update the display.");
- put_crlf();
- }
-}
-
-/*
-** enter_key(name, value, label)
-**
-** Enter a function key into the data base
-*/
-void
-enter_key(
- const char *name,
- char *value,
- char *lab)
-{
- int j;
-
- if (value) {
- j = strlen(value);
- fkmax = fkmax > j ? fkmax : j;
- /* do not permit duplicates */
- for (j = 0; j < key_count; j++) {
- if (!strcmp(fk_name[j], name)) {
- return;
- }
- }
- fkval[key_count] = value;
- fk_tested[key_count] = 0;
- fk_label[key_count] = lab;
- fk_name[key_count++] = name;
- if (lab) {
- got_labels = TRUE;
- }
- }
-}
-
-
-static void
-fresh_line(void)
-{ /* clear the line for a new function key line */
- if (over_strike) {
- put_crlf();
- } else {
- put_cr();
- if (clr_eol) {
- tc_putp(clr_eol);
- } else {
- put_str(" \r");
- }
- }
-}
-
-
-static int
-end_funky(int ch)
-{ /* return true if this is the end */
- switch (ch) {
- case 'e':
- case 'E':
- end_state = 'e';
- break;
- case 'n':
- case 'N':
- if (end_state == 'e') {
- end_state = 'n';
- } else {
- end_state = 0;
- }
- break;
- case 'd':
- case 'D':
- if (end_state == 'n') {
- end_state = 'd';
- } else {
- end_state = 0;
- }
- break;
- case 'l':
- case 'L':
- if (end_state == 'l') {
- end_state = '?';
- } else {
- end_state = 'l';
- }
- break;
- default:
- end_state = 0;
- break;
- }
- return end_state == 'd';
-}
-
-
-static int
-found_match(char *s, int hx, int cc)
-{ /* return true if this string is a match */
- int j, f;
- char outbuf[256];
-
- if (!*s) {
- return 0;
- }
- if (scan_mode) {
- for (j = f = 0; scan_down[j]; j++) {
- if (scan_length[j] == 0) {
- continue;
- }
- if (!strncmp(s, scan_down[j], scan_length[j])) {
- if (!f) { /* first match */
- put_cr();
- if (hx) {
- put_str(hex_expand_to(s, 10));
- } else {
- put_str(expand_to(s, 10));
- }
- f = 1;
- }
- (void) end_funky(scan_name[j][0]);
- put_str(" ");
- put_str(scan_name[j]);
- scan_tested[j] = 1;
- s += scan_length[j];
- if (strncmp(s, scan_up[j], scan_length[j])) {
- put_str(" scan down");
- } else {
- s += scan_length[j];
- }
- if (!*s) {
- break;
- }
- j = -1;
- }
- if (!strncmp(s, scan_up[j], scan_length[j])) {
- if (!f) { /* first match */
- put_cr();
- if (hx) {
- put_str(hex_expand_to(s, 10));
- } else {
- put_str(expand_to(s, 10));
- }
- f = 1;
- }
- put_str(" ");
- put_str(scan_name[j]);
- put_str(" scan up");
- s += scan_length[j];
- if (!*s) {
- break;
- }
- j = -1;
- }
- }
- } else {
- for (j = f = 0; j < key_count; j++) {
- if (!strcmp(s, fkval[j])) {
- if (!f) { /* first match */
- put_cr();
- if (hx) {
- put_str(hex_expand_to(s, 10));
- } else {
- put_str(expand_to(s, 10));
- }
- f = 1;
- }
- sprintf(outbuf, " (%s)", fk_name[j]);
- put_str(outbuf);
- if (fk_label[j]) {
- sprintf(outbuf, " <%s>", fk_label[j]);
- put_str(outbuf);
- }
- fk_tested[j] = 1;
- }
- }
- }
- if (end_state == '?') {
- keys_tested(0, 1, hx);
- tty_raw(cc, char_mask);
- end_state = 0;
- }
- return f;
-}
-
-
-static int
-found_exit(char *keybuf, int hx, int cc)
-{ /* return true if the user wants to exit */
- int j, k;
- char *s;
-
-
- if (scan_mode) {
- if (*keybuf == '\0') {
- return TRUE;
- }
- } else {
- /* break is a special case */
- if (*keybuf == '\0') {
- fresh_line();
- tty_set();
- ptext("Hit X to exit: ");
- if (wait_here() == 'X') {
- return TRUE;
- }
- keys_tested(0, 1, hx);
- tty_raw(cc, char_mask);
- return FALSE;
- }
- /* is this the end? */
- for (k = 0; (j = (keybuf[k] & STRIP_PARITY)); k++) {
- if (end_funky(j)) {
- return TRUE;
- }
- }
-
- j = TRUE; /* does he need an updated list? */
- for (k = 0; keybuf[k]; k++) {
- j &= (keybuf[k] & STRIP_PARITY) == '?';
- }
- if (j || end_state == '?') {
- keys_tested(0, 1, hx);
- tty_raw(cc, char_mask);
- end_state = 0;
- return FALSE;
- }
- }
-
- put_cr();
- if (hx) {
- s = hex_expand_to(keybuf, 10);
- } else {
- s = expand_to(keybuf, 10);
- }
- sprintf(temp, "%s Unknown", s);
- put_str(temp);
- for (j = 0; j < MAX_FK_UNK; j++) {
- if (j == funk) {
- fk_length[funk] = expand_chars;
- if ((fk_unknown[funk] = (char *)malloc(strlen(s) + 1))) {
- strcpy(fk_unknown[funk++], s);
- }
- break;
- }
- if (fk_length[j] == expand_chars) {
- if (!strcmp(fk_unknown[j], s)) {
- break;
- }
- }
- }
- return FALSE;
-}
-
-/*
-** funkey_keys(test_list, status, ch)
-**
-** Test function keys
-*/
-static void
-funkey_keys(
- struct test_list *t,
- int *state,
- int *ch)
-{
- char keybuf[256];
-
- if (keypad_xmit) {
- tc_putp(keypad_xmit);
- }
- keys_tested(1, 1, hex_out); /* also clears screen */
- keybuf[0] = '\0';
- end_state = 0;
- if (scan_mode) {
- fkmax = scan_max;
- }
- tty_raw(0, char_mask);
- while (end_state != 'd') {
- read_key(keybuf, sizeof(keybuf));
- fresh_line();
- if (found_match(keybuf, hex_out, 0)) {
- continue;
- }
- if (found_exit(keybuf, hex_out, 0)) {
- break;
- }
- }
- if (keypad_local) {
- tc_putp(keypad_local);
- }
- keys_tested(0, 0, hex_out);
- ptext("Function key test ");
- generic_done_message(t, state, ch);
-}
-
-int
-tty_meta_prep(void)
-{ /* print a warning before the meta key test */
- if (not_a_tty) {
- return 0;
- }
- if (initial_stty_query(TTY_8_BIT)) {
- return 0;
- }
- ptext("The meta key test must be run with the");
- ptext(" terminal set for 8 data bits. Two stop bits");
- ptext(" may also be needed for correct display. I will");
- ptext(" transmit 8 bit data but if the terminal is set for");
- ptextln(" 7 bit data, garbage may appear on the screen.");
- return 1;
-}
-
-/*
-** funkey_meta(test_list, status, ch)
-**
-** Test meta key (km) (smm) (rmm)
-*/
-static void
-funkey_meta(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, k, len;
- char outbuf[256];
-
- if (has_meta_key) {
- put_crlf();
- if (char_mask != ALLOW_PARITY) {
- if (tty_meta_prep()) {
- ptext("\nHit any key to continue > ");
- (void) wait_here();
- put_crlf();
- }
- }
- ptext("Begin meta key test. (km) (smm) (rmm) Hit any key");
- ptext(" with the meta key. The character will be");
- ptext(" displayed in hex. If the meta key is working");
- ptext(" then the most significant bit will be set. Type");
- ptextln(" 'end' to exit.");
- tty_raw(1, ALLOW_PARITY);
- tc_putp(meta_on);
-
- for (i = j = k = len = 0; i != 'e' || j != 'n' || k != 'd';) {
- i = j;
- j = k;
- k = getchp(ALLOW_PARITY);
- if (k == EOF) {
- break;
- }
- if ((len += 3) >= columns) {
- put_crlf();
- len = 3;
- }
- sprintf(outbuf, "%02X ", k);
- put_str(outbuf);
- k &= STRIP_PARITY;
- }
- tc_putp(meta_off);
- put_crlf();
- tty_set();
- put_crlf();
- } else {
- ptext("(km) Has-meta-key is not set. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** funkey_label(test_list, status, ch)
-**
-** Test labels (nlab) (smln) (pln) (rmln) (lw) (lh)
-*/
-static void
-funkey_label(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- char outbuf[256];
-
- if (num_labels == -1) {
- ptextln("Your terminal has no labels. (nlab)");
- } else {
- sprintf(temp, "Your terminal has %d labels (nlab) that are %d characters wide (lw) and %d lines high (lh)",
- num_labels, label_width, label_height);
- ptext(temp);
- ptextln(" Testing (smln) (pln) (rmln)");
- if (label_on) {
- tc_putp(label_on);
- }
- if (label_width <= 0) {
- label_width = sizeof(outbuf) - 1;
- }
- for (i = 1; i <= num_labels; i++) {
- sprintf(outbuf, "L%d..............................", i);
- outbuf[label_width] = '\0';
- tc_putp(tparm(plab_norm, i, outbuf));
- }
- if (label_off) {
- ptext("Hit any key to remove the labels: ");
- (void) wait_here();
- tc_putp(label_off);
- }
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** funkey_prog(test_list, status, ch)
-**
-** Test program function keys (pfx)
-*/
-static void
-funkey_prog(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, fk;
- char mm[256];
-
- fk = 1; /* use function key 1 for now */
- if (pkey_xmit) {
- /* test program function key */
- sprintf(temp,
- "(pfx) Set function key %d to transmit abc\\n", fk);
- ptextln(temp);
- tc_putp(tparm(pkey_xmit, fk, "abc\n"));
- sprintf(temp, "Hit function key %d\n", fk);
- ptextln(temp);
- for (i = 0; i < 4; ++i)
- mm[i] = getchp(STRIP_PARITY);
- mm[i] = '\0';
- put_crlf();
- if (mm[0] != 'a' || mm[1] != 'b' || mm[2] != 'c') {
- sprintf(temp, "Error string received was: %s", expand(mm));
- ptextln(temp);
- } else {
- putln("Thank you\n");
- }
- flush_input();
- if (key_f1) {
- tc_putp(tparm(pkey_xmit, fk, key_f1));
- }
- } else {
- ptextln("Function key transmit (pfx), not present.");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** funkey_local(test_list, status, ch)
-**
-** Test program local function keys (pfloc)
-*/
-static void
-funkey_local(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int fk;
-
- fk = 1;
- if (pkey_local) {
- /* test local function key */
- sprintf(temp,
- "(pfloc) Set function key %d to execute a clear and print \"Done!\"", fk);
- ptextln(temp);
- sprintf(temp, "%sDone!", liberated(clear_screen));
- tc_putp(tparm(pkey_local, fk, temp));
- sprintf(temp, "Hit function key %d. Then hit return.", fk);
- ptextln(temp);
- (void) wait_here();
- flush_input();
- if (key_f1 && pkey_xmit) {
- tc_putp(tparm(pkey_xmit, fk, key_f1));
- }
- } else {
- ptextln("Function key execute local (pfloc), not present.");
- }
-
- generic_done_message(t, state, ch);
-}
-
-/*
-** printer_on(test_list, status, ch)
-**
-** Test printer on/off (mc4) (mc5) (mc5i)
-*/
-static void
-printer_on(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (!prtr_on || !prtr_off) {
- ptextln("Printer on/off missing. (mc5) (mc4)");
- } else if (prtr_silent) {
- ptextln("Your printer is silent. (mc5i) is set.");
- tc_putp(prtr_on);
- ptextln("This line should be on the printer but not your screen. (mc5)");
- tc_putp(prtr_off);
- ptextln("This line should be only on the screen. (mc4)");
- } else {
- ptextln("Your printer is not silent. (mc5i) is reset.");
- tc_putp(prtr_on);
- ptextln("This line should be on the printer and the screen. (mc5)");
- tc_putp(prtr_off);
- ptextln("This line should only be on the screen. (mc4)");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** printer_mc0(test_list, status, ch)
-**
-** Test screen print (mc0)
-*/
-static void
-printer_mc0(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (print_screen) {
- ptext("I am going to send the contents of the screen to");
- ptext(" the printer, then wait for a keystroke from you.");
- ptext(" All of the text that appears on the screen");
- ptextln(" should be printed. (mc0)");
- tc_putp(print_screen);
- } else {
- ptext("(mc0) Print-screen is not present. ");
- }
- generic_done_message(t, state, ch);
-}
-
-
-static void
-line_pattern(void)
-{ /* put up a pattern that will help count the
- number of lines */
- int i, j;
-
- put_clear();
- if (over_strike) {
- for (i = 0; i < 100; i++) {
- if (i) {
- put_crlf();
- }
- for (j = i / 10; j; j--) {
- put_this(' ');
- }
- put_this('0' + ((i + 1) % 10));
- }
- } else /* I assume it will scroll */ {
- for (i = 100; i; i--) {
- sprintf(temp, "\r\n%d", i);
- put_str(temp);
- }
- }
-}
-
-
-static void
-column_pattern(void)
-{ /* put up a pattern that will help count the
- number of columns */
- int i, j;
-
- put_clear();
- for (i = 0; i < 20; i++) {
- for (j = 1; j < 10; j++) {
- put_this('0' + j);
- }
- put_this('.');
- }
-}
-
-/*
-** report_help()
-**
-** Print the help text for the echo tests
-*/
-static void
-report_help(int crx)
-{
- ptextln("The following commands may also be entered:");
- ptextln(" clear clear screen.");
- ptextln(" columns print a test pattern to help count screen width.");
- ptextln(" lines print a test pattern to help count screen length.");
- ptextln(" end exit.");
- ptextln(" echo redisplay last report.");
- if (crx) {
- ptextln(" hex redisplay last report in hex.");
- } else {
- ptextln(" hex toggle hex display mode.");
- }
- ptextln(" help display this list.");
- ptextln(" high toggle forced high bit (0x80).");
- ptextln(" scan toggle scan mode.");
- ptextln(" one echo one character after <cr> or <lf> as is. (report mode)");
- ptextln(" two echo two characters after <cr> or <lf> as is.");
- ptextln(" all echo all characters after <cr> or <lf> as is. (echo mode)");
-}
-
-/*
-** tools_report(testlist, state, ch)
-**
-** Run the echo tool and report tool
-*/
-void
-tools_report(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *pch GCC_UNUSED)
-{
- int i, j, ch, crp, crx, high_bit, save_scan_mode, hex_display;
- char buf[1024];
- char txt[8];
-
- hex_display = hex_out;
- put_clear();
- if ((crx = (t->flags & 255)) == 1) {
- ptext("Characters after a CR or LF will be echoed as");
- ptextln(" is. All other characters will be expanded.");
- report_help(crx);
- } else { /* echo test */
- ptextln("Begin echo test.");
- report_help(crx);
- }
- txt[sizeof(txt) - 1] = '\0';
- save_scan_mode = scan_mode;
- tty_raw(1, char_mask);
- for (i = crp = high_bit = 0;;) {
- ch = getchp(char_mask);
- if (ch == EOF) {
- break;
- }
- if (i >= (int) sizeof(buf) - 1) {
- i = 0;
- }
- buf[i++] = ch;
- buf[i] = '\0';
- for (j = 0; j < (int) sizeof(txt) - 1; j++) {
- txt[j] = txt[j + 1];
- }
- txt[sizeof(txt) - 1] = ch & STRIP_PARITY;
- if (crx == 0) { /* echo test */
- if (hex_display) {
- ptext(hex_expand_to(&buf[i - 1], 3));
- } else {
- tc_putch(ch | high_bit);
- }
- } else /* status report test */
- if (ch == '\n' || ch == '\r') {
- put_crlf();
- crp = 0;
- } else if (crp++ < crx) {
- tc_putch(ch | high_bit);
- } else {
- put_str(expand(&buf[i - 1]));
- }
- if (!strncmp(&txt[sizeof(txt) - 7], "columns", 7)) {
- column_pattern();
- buf[i = 0] = '\0';
- crp = 0;
- }
- if (!strncmp(&txt[sizeof(txt) - 5], "lines", 5)) {
- line_pattern();
- buf[i = 0] = '\0';
- crp = 0;
- }
- if (!strncmp(&txt[sizeof(txt) - 5], "clear", 5)) {
- put_clear();
- buf[i = 0] = '\0';
- crp = 0;
- }
- if (!strncmp(&txt[sizeof(txt) - 4], "high", 4)) {
- high_bit ^= 0x80;
- if (high_bit) {
- ptextln("\nParity bit set");
- } else {
- ptextln("\nParity bit reset");
- }
- }
- if (!strncmp(&txt[sizeof(txt) - 4], "help", 4)) {
- put_crlf();
- report_help(crx);
- }
- if (!strncmp(&txt[sizeof(txt) - 4], "echo", 4)) {
- /* display the last status report */
- /* clear bypass condition on Tek terminals */
- put_crlf();
- if (i >= 4) {
- buf[i -= 4] = '\0';
- }
- put_str(expand(buf));
- }
- if (save_scan_mode &&
- !strncmp(&txt[sizeof(txt) - 4], "scan", 4)) {
- /* toggle scan mode */
- scan_mode = !scan_mode;
- }
- if (!strncmp(&txt[sizeof(txt) - 3], "end", 3))
- break;
- if (!strncmp(&txt[sizeof(txt) - 3], "hex", 3)) {
- if (crx) {
- /* display the last status report in hex */
- /* clear bypass condition on Tek terminals */
- put_crlf();
- if (i >= 3) {
- buf[i -= 3] = '\0';
- }
- put_str(hex_expand_to(buf, 3));
- } else {
- hex_display = !hex_display;
- }
- }
- if (!strncmp(&txt[sizeof(txt) - 3], "two", 3))
- crx = 2;
- if (!strncmp(&txt[sizeof(txt) - 3], "one", 3))
- crx = 1;
- if (!strncmp(&txt[sizeof(txt) - 3], "all", 3))
- crx = 0;
- }
- scan_mode = save_scan_mode;
- put_crlf();
- tty_set();
- if (crx) {
- ptextln("End of status report test.");
- } else {
- ptextln("End of echo test.");
- }
-}
diff --git a/ncurses-5.2/tack/init.c b/ncurses-5.2/tack/init.c
deleted file mode 100644
index b07e784..0000000
--- a/ncurses-5.2/tack/init.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-/* initialization and wrapup code */
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-#if NCURSES_VERSION_MAJOR >= 5 || NCURSES_VERSION_PATCH >= 981219
-#define _nc_get_curterm(p) _nc_get_tty_mode(p)
-#endif
-
-FILE *debug_fp;
-char temp[1024];
-char tty_basename[64];
-
-void
-put_name(const char *cap, const char *name)
-{ /* send the cap name followed by the cap */
- if (cap) {
- ptext(name);
- tc_putp(cap);
- }
-}
-
-static void
-report_cap(const char *tag, const char *s)
-{ /* expand the cap or print *** missing *** */
- int i;
-
- ptext(tag);
- for (i = char_count; i < 13; i++) {
- putchp(' ');
- }
- put_str(" = ");
- if (s) {
- putln(expand(s));
- } else {
- putln("*** missing ***");
- }
-}
-
-
-void
-reset_init(void)
-{ /* send the reset and init strings */
- int i;
-
- ptext("Terminal reset");
- i = char_count;
- put_name(reset_1string, " (rs1)");
- put_name(reset_2string, " (rs2)");
- /* run the reset file */
- if (reset_file && reset_file[0]) {
- FILE *fp;
- int ch;
-
- can_test("rf", FLAG_TESTED);
- if ((fp = fopen(reset_file, "r"))) { /* send the reset file */
- sprintf(temp, " (rf) %s", reset_file);
- ptextln(temp);
- while (1) {
- ch = getc(fp);
- if (ch == EOF)
- break;
- put_this(ch);
- }
- fclose(fp);
- } else {
- sprintf(temp, "\nCannot open reset file (rf) %s", reset_file);
- ptextln(temp);
- }
- }
- put_name(reset_3string, " (rs3)");
- if (i != char_count) {
- put_crlf();
- }
- ptext(" init");
- put_name(init_1string, " (is1)");
- put_name(init_2string, " (is2)");
- if (set_tab && clear_all_tabs && init_tabs != 8) {
- put_crlf();
- tc_putp(clear_all_tabs);
- for (char_count = 0; char_count < columns; char_count++) {
- put_this(' ');
- if ((char_count & 7) == 7) {
- tc_putp(set_tab);
- }
- }
- put_cr();
- }
- /* run the initialization file */
- if (init_file && init_file[0]) {
- FILE *fp;
- int ch;
-
- can_test("if", FLAG_TESTED);
- if ((fp = fopen(init_file, "r"))) { /* send the init file */
- sprintf(temp, " (if) %s", init_file);
- ptextln(temp);
- while (1) {
- ch = getc(fp);
- if (ch == EOF)
- break;
- put_this(ch);
- }
- fclose(fp);
- } else {
- sprintf(temp, "\nCannot open init file (if) %s", init_file);
- ptextln(temp);
- }
- }
- if (init_prog) {
- can_test("iprog", FLAG_TESTED);
- (void) system(init_prog);
- }
- put_name(init_3string, " (is3)");
-
- fflush(stdout);
-}
-
-/*
-** display_basic()
-**
-** display the basic terminal definitions
-*/
-void
-display_basic(void)
-{
- put_str("Name: ");
- putln(ttytype);
-
- report_cap("\\r ^M (cr)", carriage_return);
- report_cap("\\n ^J (ind)", scroll_forward);
- report_cap("\\b ^H (cub1)", cursor_left);
- report_cap("\\t ^I (ht)", tab);
-/* report_cap("\\f ^L (ff)", form_feed); */
- if (newline) {
- /* OK if missing */
- report_cap(" (nel)", newline);
- }
- report_cap(" (clear)", clear_screen);
- if (!cursor_home && cursor_address) {
- report_cap("(cup) (home)", tparm(cursor_address, 0, 0));
- } else {
- report_cap(" (home)", cursor_home);
- }
- report_cap("ENQ (u9)", user9);
- report_cap("ACK (u8)", user8);
-
- 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);
-}
-
-/*
-** curses_setup(exec_name)
-**
-** Startup ncurses
-*/
-void
-curses_setup(
- char *exec_name)
-{
- int status;
- static TERMTYPE term;
- char tty_filename[2048];
-
- tty_init();
-
- /**
- See if the terminal is in the terminfo data base. This call has
- two useful benefits, 1) it returns the filename of the terminfo entry,
- and 2) it searches only terminfo's. This allows us to abort before
- ncurses starts scanning the termcap file.
- **/
- if ((status = _nc_read_entry(tty_basename, tty_filename, &term)) == 0) {
- fprintf(stderr, "Terminal not found: TERM=%s\n", tty_basename);
- show_usage(exec_name);
- exit(1);
- }
- if (status == -1) {
- fprintf(stderr, "Terminfo database is inaccessible\n");
- exit(1);
- }
-
- /**
- This call will load the terminfo data base and set the cur-term
- variable. Only terminals that actually exist will get here so its
- OK to ignore errors. This is a good thing since ncurses does not
- permit (os) or (gn) to be set.
- **/
- setupterm(tty_basename, 1, &status);
-
- /**
- Get the current terminal definitions. This must be done before
- getting the baudrate.
- **/
- _nc_get_curterm(&cur_term->Nttyb);
- tty_baud_rate = baudrate();
- tty_cps = (tty_baud_rate << 1) / tty_frame_size;
-
- /* set up the defaults */
- replace_mode = TRUE;
- scan_mode = 0;
- char_count = 0;
- select_delay_type = debug_level = 0;
- char_mask = (meta_on && meta_on[0] == '\0') ? ALLOW_PARITY : STRIP_PARITY;
- /* Don't change the XON/XOFF modes yet. */
- select_xon_xoff = initial_stty_query(TTY_XON_XOFF) ? 1 : needs_xon_xoff;
-
- fflush(stdout); /* flush any output */
- tty_set();
-
- go_home(); /* set can_go_home */
- put_clear(); /* set can_clear_screen */
-
- if (send_reset_init) {
- reset_init();
- }
-
- /*
- I assume that the reset and init strings may not have the correct
- pads. (Because that part of the test comes much later.) Because
- of this, I allow the terminal some time to catch up.
- */
- fflush(stdout); /* waste some time */
- sleep(1); /* waste more time */
- charset_can_test();
- can_test("lines cols cr nxon rf if iprog rmp smcup rmcup", FLAG_CAN_TEST);
- edit_init(); /* initialize the edit data base */
-
- if (send_reset_init && enter_ca_mode) {
- tc_putp(enter_ca_mode);
- put_clear(); /* just in case we switched pages */
- }
- put_crlf();
- ptext("Using terminfo from: ");
- ptextln(tty_filename);
- put_crlf();
-
- if (tty_can_sync == SYNC_NEEDED) {
- verify_time();
- }
-
- display_basic();
-}
-
-/*
-** bye_kids(exit-condition)
-**
-** Shutdown the terminal, clear the signals, and exit
-*/
-void
-bye_kids(int n)
-{ /* reset the tty and exit */
- ignoresig();
- if (send_reset_init) {
- if (exit_ca_mode) {
- tc_putp(exit_ca_mode);
- }
- if (initial_stty_query(TTY_XON_XOFF)) {
- if (enter_xon_mode) {
- tc_putp(enter_xon_mode);
- }
- } else if (exit_xon_mode) {
- tc_putp(exit_xon_mode);
- }
- }
- if (debug_fp) {
- fclose(debug_fp);
- }
- if (log_fp) {
- fclose(log_fp);
- }
- tty_reset();
- fclose(stdin);
- fclose(stdout);
- fclose(stderr);
- if (not_a_tty)
- sleep(1);
- exit(n);
-}
diff --git a/ncurses-5.2/tack/menu.c b/ncurses-5.2/tack/menu.c
deleted file mode 100644
index d5e0f68..0000000
--- a/ncurses-5.2/tack/menu.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- Menu control
- */
-
-static void test_byname(struct test_menu *, int *, int *);
-
-struct test_list *augment_test;
-char prompt_string[80]; /* menu prompt storage */
-
-/*
-** menu_prompt()
-**
-** Print the menu prompt string.
-*/
-void
-menu_prompt(void)
-{
- ptext(&prompt_string[1]);
-}
-
-/*
-** menu_test_loop(test-structure, state, control-character)
-**
-** This function implements the repeat test function.
-*/
-static void
-menu_test_loop(
- struct test_list *test,
- int *state,
- int *ch)
-{
- int nch, p;
-
- if ((test->flags & MENU_REP_MASK) && (augment_test != test)) {
- /* set the augment variable (first time only) */
- p = (test->flags >> 8) & 15;
- if ((test->flags & MENU_REP_MASK) == MENU_LM1) {
- augment = lines - 1;
- } else
- if ((test->flags & MENU_ONE_MASK) == MENU_ONE) {
- augment = 1;
- } else
- if ((test->flags & MENU_LC_MASK) == MENU_lines) {
- augment = lines * p / 10;
- } else
- if ((test->flags & MENU_LC_MASK) == MENU_columns) {
- augment = columns * p / 10;
- } else {
- augment = 1;
- }
- augment_test = test;
- set_augment_txt();
- }
- do {
- if ((test->flags | *state) & MENU_CLEAR) {
- put_clear();
- } else
- if (line_count + test->lines_needed >= lines) {
- put_clear();
- }
- nch = 0;
- if (test->test_procedure) {
- /* The procedure takes precedence so I can pass
- the menu entry as an argument.
- */
- can_test(test->caps_done, FLAG_TESTED);
- can_test(test->caps_tested, FLAG_TESTED);
- test->test_procedure(test, state, &nch);
- } else
- if (test->sub_menu) {
- /* nested menu's */
- menu_display(test->sub_menu, &nch);
- *state = 0;
- if (nch == 'q' || nch == 's') {
- /* Quit and skip are killed here */
- nch = '?';
- }
- } else {
- break; /* cya */
- }
- if (nch == '\r' || nch == '\n' || nch == 'n') {
- nch = 0;
- break;
- }
- } while (nch == 'r');
- *ch = nch;
-}
-
-/*
-** menu_display(menu-structure, flags)
-**
-** This function implements menu control.
-*/
-void
-menu_display(
- struct test_menu *menu,
- int *last_ch)
-{
- int test_state = 0, run_standard_tests;
- int hot_topic, ch = 0, nch = 0;
- struct test_list *mt;
- struct test_list *repeat_tests = 0;
- int repeat_state = 0;
- int prompt_length;
-
- prompt_length = strlen(prompt_string);
- if (menu->ident) {
- sprintf(&prompt_string[prompt_length], "/%s", menu->ident);
- }
- hot_topic = menu->default_action;
- run_standard_tests = menu->standard_tests ?
- menu->standard_tests[0] : -1;
- if (!last_ch) {
- last_ch = &ch;
- }
- while (1) {
- if (ch == 0) {
- /* Display the menu */
- put_crlf();
- if (menu->menu_function) {
- /*
- this function may be used to restrict menu
- entries. If used it must print the title.
- */
- menu->menu_function(menu);
- } else
- if (menu->menu_title) {
- ptextln(menu->menu_title);
- }
- for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
- if (mt->menu_entry) {
- ptext(" ");
- ptextln(mt->menu_entry);
- }
- }
- if (menu->standard_tests) {
- ptext(" ");
- ptextln(menu->standard_tests);
- ptextln(" r) repeat test");
- ptextln(" s) skip to next test");
- }
- ptextln(" q) quit");
- ptextln(" ?) help");
- }
- if (ch == 0 || ch == REQUEST_PROMPT) {
- put_crlf();
- ptext(&prompt_string[1]);
- if (hot_topic) {
- ptext(" [");
- putchp(hot_topic);
- ptext("]");
- }
- ptext(" > ");
- /* read a character */
- ch = wait_here();
- }
- if (ch == '\r' || ch == '\n') {
- ch = hot_topic;
- }
- if (ch == 'q') {
- break;
- }
- if (ch == '?') {
- ch = 0;
- continue;
- }
- nch = ch;
- ch = 0;
- /* Run one of the standard tests (by request) */
- for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
- if (mt->menu_entry && (nch == mt->menu_entry[0])) {
- if (mt->flags & MENU_MENU) {
- test_byname(menu, &test_state, &nch);
- } else {
- menu_test_loop(mt, &test_state, &nch);
- }
- ch = nch;
- if ((mt->flags & MENU_COMPLETE) && ch == 0) {
- /* top level */
- hot_topic = 'q';
- ch = '?';
- }
- }
- }
- if (menu->standard_tests && nch == 'r') {
- menu->resume_tests = repeat_tests;
- test_state = repeat_state;
- nch = run_standard_tests;
- }
- if (nch == run_standard_tests) {
- if (!(mt = menu->resume_tests)) {
- mt = menu->tests;
- }
- if (mt->flags & MENU_LAST) {
- mt = menu->tests;
- }
- /* Run the standard test suite */
- for ( ; (mt->flags & MENU_LAST) == 0; ) {
- if ((mt->flags & MENU_NEXT) == MENU_NEXT) {
- repeat_tests = mt;
- repeat_state = test_state;
- nch = run_standard_tests;
- menu_test_loop(mt, &test_state, &nch);
- if (nch != 0 && nch != 'n') {
- ch = nch;
- break;
- }
- if (test_state & MENU_STOP) {
- break;
- }
- }
- mt++;
- }
- if (ch == 0) {
- ch = hot_topic;
- }
- menu->resume_tests = mt;
- menu->resume_state = test_state;
- menu->resume_char = ch;
-
- if (ch == run_standard_tests) {
- /* pop up a level */
- break;
- }
- }
- }
- *last_ch = ch;
- prompt_string[prompt_length] = '\0';
-}
-
-/*
-** generic_done_message(test_list)
-**
-** Print the Done message and request input.
-*/
-void
-generic_done_message(
- struct test_list *test,
- int *state,
- int *ch)
-{
- char done_message[128];
-
- if (test->caps_done) {
- sprintf(done_message, "(%s) Done ", test->caps_done);
- ptext(done_message);
- } else {
- ptext("Done ");
- }
- *ch = wait_here();
- if (*ch == '\r' || *ch == '\n' || *ch == 'n') {
- *ch = 0;
- }
- if (*ch == 's') {
- *state |= MENU_STOP;
- *ch = 0;
- }
-}
-
-/*
-** menu_clear_screen(test, state, ch)
-**
-** Just clear the screen.
-*/
-void
-menu_clear_screen(
- struct test_list *test GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- put_clear();
-}
-
-/*
-** menu_reset_init(test, state, ch)
-**
-** Send the reset and init strings.
-*/
-void
-menu_reset_init(
- struct test_list *test GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- reset_init();
- put_crlf();
-}
-
-/*
-** subtest_menu(test, state, ch)
-**
-** Scan the menu looking for something to execute
-** Return TRUE if we found anything.
-*/
-int
-subtest_menu(
- struct test_list *test,
- int *state,
- int *ch)
-{
- struct test_list *mt;
-
- if (*ch) {
- for (mt = test; (mt->flags & MENU_LAST) == 0; mt++) {
- if (mt->menu_entry && (*ch == mt->menu_entry[0])) {
- *ch = 0;
- menu_test_loop(mt, state, ch);
- return TRUE;
- }
- }
- }
- return FALSE;
-}
-
-/*
-** menu_can_scan(menu-structure)
-**
-** Recursively scan the menu tree and find which cap names can be tested.
-*/
-void
-menu_can_scan(
- const struct test_menu *menu)
-{
- struct test_list *mt;
-
- for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
- can_test(mt->caps_done, FLAG_CAN_TEST);
- can_test(mt->caps_tested, FLAG_CAN_TEST);
- if (!(mt->test_procedure)) {
- if (mt->sub_menu) {
- menu_can_scan(mt->sub_menu);
- }
- }
- }
-}
-
-/*
-** menu_search(menu-structure, cap)
-**
-** Recursively search the menu tree and execute any tests that use cap.
-*/
-static void
-menu_search(
- struct test_menu *menu,
- int *state,
- int *ch,
- char *cap)
-{
- struct test_list *mt;
- int nch;
-
- for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
- nch = 0;
- if (cap_match(mt->caps_done, cap)
- || cap_match(mt->caps_tested, cap)) {
- menu_test_loop(mt, state, &nch);
- }
- if (!(mt->test_procedure)) {
- if (mt->sub_menu) {
- menu_search(mt->sub_menu, state, &nch, cap);
- }
- }
- if (*state & MENU_STOP) {
- break;
- }
- if (nch != 0 && nch != 'n') {
- *ch = nch;
- break;
- }
- }
-}
-
-/*
-** test_byname(menu, state, ch)
-**
-** Get a cap name then run all tests that use that cap.
-*/
-static void
-test_byname(
- struct test_menu *menu,
- int *state GCC_UNUSED,
- int *ch)
-{
- int test_state = 0;
- char cap[32];
-
- if (tty_can_sync == SYNC_NOT_TESTED) {
- verify_time();
- }
- ptext("enter name: ");
- read_string(cap, sizeof(cap));
- if (cap[0]) {
- menu_search(menu, &test_state, ch, cap);
- }
- *ch = '?';
-}
diff --git a/ncurses-5.2/tack/modes.c b/ncurses-5.2/tack/modes.c
deleted file mode 100644
index dbc1643..0000000
--- a/ncurses-5.2/tack/modes.c
+++ /dev/null
@@ -1,913 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Tests boolean flags and terminal modes.
- */
-static void subtest_os(struct test_list *, int *, int *);
-static void subtest_rmam(struct test_list *, int *, int *);
-static void subtest_smam(struct test_list *, int *, int *);
-static void subtest_am(struct test_list *, int *, int *);
-static void subtest_ul(struct test_list *, int *, int *);
-static void subtest_uc(struct test_list *, int *, int *);
-static void subtest_bw(struct test_list *, int *, int *);
-static void subtest_xenl(struct test_list *, int *, int *);
-static void subtest_eo(struct test_list *, int *, int *);
-static void subtest_xmc(struct test_list *, int *, int *);
-static void subtest_xhp(struct test_list *, int *, int *);
-static void subtest_mir(struct test_list *, int *, int *);
-static void subtest_msgr(struct test_list *, int *, int *);
-static void subtest_tbc(struct test_list *, int *, int *);
-static void subtest_xt(struct test_list *, int *, int *);
-static void subtest_hts(struct test_list *, int *, int *);
-static void subtest_cbt(struct test_list *, int *, int *);
-static void subtest_in(struct test_list *, int *, int *);
-static void subtest_dadb(struct test_list *, int *, int *);
-
-struct test_list mode_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT, 3, "os", 0, 0, subtest_os, 0},
- {MENU_NEXT, 1, "rmam", 0, 0, subtest_rmam, 0},
- {MENU_NEXT, 1, "smam", 0, 0, subtest_smam, 0},
- {MENU_NEXT, 1, "am", 0, 0, subtest_am, 0},
- {MENU_NEXT, 3, "ul", 0, 0, subtest_ul, 0},
- {MENU_NEXT, 3, "uc", 0, 0, subtest_uc, 0},
- {MENU_NEXT, 3, "bw", 0, 0, subtest_bw, 0},
- {MENU_NEXT, 4, "xenl", 0, 0, subtest_xenl, 0},
- {MENU_NEXT, 3, "eo", 0, 0, subtest_eo, 0},
- {MENU_NEXT, 3, "xmc", 0, 0, subtest_xmc, 0},
- {MENU_NEXT, 3, "xhp", 0, 0, subtest_xhp, 0},
- {MENU_NEXT, 6, "mir", 0, 0, subtest_mir, 0},
- {MENU_NEXT, 6, "msgr", 0, 0, subtest_msgr, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "tbc", "it", 0, subtest_tbc, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "hts", "it", 0, subtest_hts, 0},
- {MENU_NEXT, 4, "xt", "it", 0, subtest_xt, 0},
- {MENU_NEXT, 1, "cbt", "it", 0, subtest_cbt, 0},
- {MENU_NEXT, 6, "in", 0, 0, subtest_in, 0},
- {MENU_NEXT, 1, "da) (db", 0, 0, subtest_dadb, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*
-** subtest_os(test_list, status, ch)
-**
-** test over strike mode (os)
-*/
-static void
-subtest_os(
- struct test_list *t,
- int *state,
- int *ch)
-{
- ptext("(os) should be true, not false.");
- put_cr();
- ptextln("(os) should be false.");
- sprintf(temp, "(os) over-strike is %s in the data base. ",
- over_strike ? "true" : "false");
- ptext(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_rmam(test_list, status, ch)
-**
-** test exit automatic margins mode (rmam)
-*/
-static void
-subtest_rmam(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j;
-
- if (!exit_am_mode) {
- ptext("(rmam) not present. ");
- } else
- if (!can_go_home) {
- ptext("(rmam) not tested, no way to home cursor. ");
- } else
- if (over_strike) {
- put_clear();
- go_home();
- tc_putp(exit_am_mode);
- ptext("\n(rmam) will reset (am)");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- ptext("(rmam) will not reset (am)");
- go_home();
- put_newlines(2);
- } else {
- put_clear();
- go_home();
- tc_putp(exit_am_mode);
- ptext("\n(rmam) will reset (am)");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- ptext("(rmam) will not reset (am) ");
- go_home();
- put_str(" ");
- go_home();
- put_newlines(2);
- }
- ptext("Exit-automatic-margins ");
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_smam(test_list, status, ch)
-**
-** test enter automatic margins mode (smam)
-*/
-static void
-subtest_smam(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!enter_am_mode) {
- ptext("(smam) not present. ");
- } else
- if (!can_go_home) {
- ptext("(smam) not tested, no way to home cursor. ");
- } else
- if (over_strike) {
- put_clear();
- go_home();
- tc_putp(enter_am_mode);
- ptext("\n(smam) will ");
- i = char_count;
- ptext("not set (am)");
- go_home();
- for (j = -i; j < columns; j++)
- put_this(' ');
- put_str("@@@");
- put_newlines(2);
- } else {
- put_clear();
- go_home();
- tc_putp(enter_am_mode);
- ptext("\n(smam) will not set (am)");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- ptext("(smam) will set (am) ");
- go_home();
- put_str(" ");
- put_newlines(2);
- }
- ptext("Enter-automatic-margins ");
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_am(test_list, status, ch)
-**
-** test automatic margins (am)
-*/
-static void
-subtest_am(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!can_go_home) {
- ptextln("(am) not tested, no way to home cursor. ");
- } else
- if (over_strike) {
- put_clear();
- go_home();
- ptext("\n(am) should ");
- i = char_count;
- ptext("not be set");
- go_home();
- for (j = -i; j < columns; j++)
- put_this(' ');
- put_str("@@@");
- go_home();
- put_newlines(2);
- sprintf(temp, "(am) is %s in the data base",
- auto_right_margin ? "true" : "false");
- ptextln(temp);
- } else {
- put_clear();
- go_home();
- ptext("\n(am) should not be set");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- ptext("(am) should be set ");
- go_home();
- put_str(" \n\n");
- sprintf(temp, "(am) is %s in the data base",
- auto_right_margin ? "true" : "false");
- ptextln(temp);
- }
- ptext("Automatic-right-margin ");
- generic_done_message(t, state, ch);
-}
-
-/* Note: uprint() sends underscore back-space character, and
- ucprint() sends character back-space underscore. */
-
-/*
-** uprint(string)
-**
-** underline string for (ul) test
-*/
-static void
-uprint(const char *s)
-{
- if (s) {
- while (*s) {
- put_str("_\b");
- putchp(*s++);
- }
- }
-}
-
-/*
-** ucprint(string)
-**
-** underline string for (uc) test
-*/
-static void
-ucprint(const char *s)
-{
- if (s) {
- while (*s) {
- putchp(*s++);
- putchp('\b');
- tc_putp(underline_char);
- }
- }
-}
-
-/*
-** subtest_ul(test_list, status, ch)
-**
-** test transparent underline (ul)
-*/
-static void
-subtest_ul(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (!over_strike) {
- /* (ul) is used only if (os) is reset */
- put_crlf();
- sprintf(temp, "This text should %sbe underlined.",
- transparent_underline ? "" : "not ");
- uprint(temp);
- put_crlf();
- ptextln("If the above line is not underlined the (ul) should be false.");
- sprintf(temp, "(ul) Transparent-underline is %s in the data base",
- transparent_underline ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_uc(test_list, status, ch)
-**
-** test underline character (uc)
-*/
-static void
-subtest_uc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (!over_strike) {
- if (underline_char) {
- ucprint("This text should be underlined.");
- put_crlf();
- ptextln("If the above text is not underlined the (uc) has failed.");
- ptext("Underline-character ");
- } else {
- ptext("(uc) underline-character is not defined. ");
- }
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_bw(test_list, status, ch)
-**
-** test auto left margin (bw)
-*/
-static void
-subtest_bw(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (over_strike) {
- /* test (bw) */
- ptext("\n(bw) should ");
- i = char_count;
- ptextln("not be set.");
- for (j = i; j < columns; j++)
- put_str("\b");
- put_str("@@@");
- put_crlf();
- sprintf(temp, "(bw) Auto-left-margin is %s in the data base",
- auto_left_margin ? "true" : "false");
- ptextln(temp);
- } else {
- /* test (bw) */
- ptextln("(bw) should not be set.");
- for (i = 12; i < columns; i++)
- put_str("\b");
- if (delete_character) {
- for (i = 0; i < 4; i++)
- tc_putp(delete_character);
- } else {
- put_str(" ");
- }
- put_crlf();
- sprintf(temp, "(bw) Auto-left-margin is %s in the data base",
- auto_left_margin ? "true" : "false");
- ptextln(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_tbc(test_list, status, ch)
-**
-** test clear tabs (tbc)
-*/
-static void
-subtest_tbc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int tabat; /* the tab spacing we end up with */
- int i;
-
- if (clear_all_tabs && !set_tab) {
- ptext("(tbc) Clear-all-tabs is defined but (hts) set-tab is not. ");
- ptext("Once the tabs are cleared there is no way to set them. ");
- } else
- if (clear_all_tabs) {
- tabat = set_tab ? 8 : init_tabs;
- tc_putp(clear_all_tabs);
- ptext("Clear tabs (tbc)");
- go_home();
- put_crlf();
- putchp('\t');
- putchp('T');
- go_home();
- put_newlines(2);
- for (i = 0; i < columns; i++) {
- if (i == tabat) {
- putchp('T');
- } else {
- putchp('.');
- }
- }
- go_home();
- ptext("\n\n\nIf the above two lines have T's in the same column then (tbc) has failed. ");
- } else {
- ptext("(tbc) Clear-all-tabs is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_hts(test_list, status, ch)
-**
-** (ht) and set tabs with (hts)
-*/
-static void
-subtest_hts(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int tabat; /* the tab spacing we end up with */
- int i;
-
- tabat = init_tabs;
- if (set_tab) {
- ptext("Tabs set with (hts)");
- put_crlf();
- for (i = 1; i < columns; i++) {
- if (i % 8 == 1) {
- tc_putp(set_tab);
- }
- putchp(' ');
- }
- tabat = 8;
- } else {
- sprintf(temp, "(hts) Set-tabs not defined. (it) Initial-tabs at %d", init_tabs);
- ptext(temp);
- }
- go_home();
- put_newlines(2);
- if (tabat <= 0) {
- tabat = 8;
- }
- for (i = tabat; i < columns; i += tabat) {
- putchp('\t');
- putchp('T');
- }
- go_home();
- put_newlines(3);
- for (i = 1; i < columns; i++) {
- putchp('.');
- }
- go_home();
- put_newlines(3);
- for (i = tabat; i < columns; i += tabat) {
- putchp('\t');
- putchp('T');
- }
- go_home();
- put_newlines(4);
- putchp('.');
- for (i = 2; i < columns; i++) {
- if (i % tabat == 1) {
- putchp('T');
- } else {
- putchp('.');
- }
- }
- go_home();
- put_newlines(5);
- if (set_tab) {
- ptextln("If the last two lines are not the same then (hts) has failed.");
- } else
- if (init_tabs > 0) {
- ptextln("If the last two lines are not the same then (it) is wrong.");
- } else {
- ptextln("If the last two lines are the same then maybe you do have tabs and (it) should be changed.");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_xt(test_list, status, ch)
-**
-** (xt) glitch
-*/
-static void
-subtest_xt(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int tabat; /* the tab spacing we end up with */
- int cc;
-
- tabat = set_tab ? 8 : init_tabs;
- if (!over_strike && (tabat > 0)) {
- ptext("(xt) should not ");
- put_cr();
- ptext("(xt) should");
- cc = char_count;
- while (cc < 16) {
- putchp('\t');
- cc = ((cc / tabat) + 1) * tabat;
- }
- putln("be set.");
- sprintf(temp, "(xt) Destructive-tab is %s in the data base.",
- dest_tabs_magic_smso ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_cbt(test_list, status, ch)
-**
-** (cbt) back tab
-*/
-static void
-subtest_cbt(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (back_tab) {
- put_clear();
- ptext("Back-tab (cbt)");
- go_home();
- put_crlf();
- for (i = 1; i < columns; i++) {
- putchp(' ');
- }
- for (i = 0; i < columns; i += 8) {
- tc_putp(back_tab);
- putchp('T');
- tc_putp(back_tab);
- }
- go_home();
- put_newlines(2);
- for (i = 1; i < columns; i++) {
- if (i % 8 == 1) {
- putchp('T');
- } else {
- putchp(' ');
- }
- }
- go_home();
- put_newlines(3);
- ptextln("The preceding two lines should be the same.");
- } else {
- ptextln("(cbt) Back-tab not present");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_xenl(test_list, status, ch)
-**
-** (xenl) eat newline glitch
-*/
-static void
-subtest_xenl(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, k;
-
- if (over_strike) {
- /* test (xenl) on overstrike terminals */
- if (!can_go_home || !can_clear_screen) {
- ptextln("(xenl) Newline-glitch not tested, can't home cursor and clear.");
- generic_done_message(t, state, ch);
- return;
- }
- put_clear();
- /*
- this test must be done in raw mode. Otherwise UNIX will
- translate CR to CRLF.
- */
- if (stty_query(TTY_OUT_TRANS))
- tty_raw(1, char_mask);
- ptext("\nreset (xenl). Does ");
- i = char_count;
- put_str("not ignore CR, does ");
- k = char_count;
- put_str("not ignore LF");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_cr();
- for (j = 0; j < i; j++)
- putchp(' ');
- put_str("@@@\n@@");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_lf();
- for (j = 0; j < k; j++)
- putchp(' ');
- put_str("@@@\r@@");
- tty_set();
- go_home();
- put_newlines(4);
- sprintf(temp, "(xenl) Newline-glitch is %s in the data base",
- eat_newline_glitch ? "true" : "false");
- ptextln(temp);
- } else {
- /* test (xenl) when (os) is reset */
- if (!can_go_home) {
- ptextln("(xenl) Newline-glitch not tested, can't home cursor");
- generic_done_message(t, state, ch);
- return;
- }
- /* (xenl) test */
- put_clear();
- /*
- this test must be done in raw mode. Otherwise
- UNIX will translate CR to CRLF.
- */
- if (stty_query(TTY_OUT_TRANS))
- tty_raw(1, char_mask);
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_cr();
- ptext("(xenl) should be set. Does not ignore CR");
- go_home();
- put_crlf();
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_lf(); /* test (cud1) */
- ptext("(xenl) should be set. Ignores (cud1)");
- go_home();
- put_newlines(3);
- if (scroll_forward && cursor_down &&
- strcmp(scroll_forward, cursor_down)) {
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_ind(); /* test (ind) */
- ptext("(xenl) should be set. Ignores (ind)");
- go_home();
- put_newlines(5);
- }
- tty_set();
- ptextln("If you don't see text above telling you to set it, (xenl) should be false");
- sprintf(temp, "(xenl) Newline-glitch is %s in the data base",
- eat_newline_glitch ? "true" : "false");
- ptextln(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_eo(test_list, status, ch)
-**
-** (eo) erase overstrike
-*/
-static void
-subtest_eo(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (transparent_underline || over_strike || underline_char) {
- ptext("(eo) should ");
- if (underline_char) {
- ucprint("not");
- } else {
- uprint("not");
- }
- put_cr();
- ptextln("(eo) should be set");
- sprintf(temp, "\n(eo) Erase-overstrike is %s in the data base",
- erase_overstrike ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_xmc(test_list, status, ch)
-**
-** (xmc) magic cookie glitch
-*/
-static void
-subtest_xmc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (enter_standout_mode) {
- sprintf(temp, "\n(xmc) Magic-cookie-glitch is %d in the data base", magic_cookie_glitch);
- ptextln(temp);
- j = magic_cookie_glitch * 8;
- for (i = 0; i < j; i++) {
- put_str(" ");
- }
- ptextln(" These two lines should line up.");
- if (j > 0) {
- char_count += j;
- }
- for (i = 0; i < 4; i++) {
- put_mode(enter_standout_mode);
- putchp(' ');
- put_mode(exit_standout_mode);
- putchp(' ');
- }
- ptextln("These two lines should line up.");
- ptext("If they don't line up then (xmc) magic-cookie-glitch should be greater than zero. ");
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_xhp(test_list, status, ch)
-**
-** (xhp) erase does not clear standout mode
-*/
-static void
-subtest_xhp(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (enter_standout_mode) {
- put_crlf();
- put_mode(enter_standout_mode);
- put_str("Stand out");
- put_mode(exit_standout_mode);
- put_cr();
- ptextln("If any part of this line is standout then (xhp) should be set.");
- sprintf(temp, "(xhp) Erase-standout-glitch is %s in the data base",
- ceol_standout_glitch ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_mir(test_list, status, ch)
-**
-** (mir) move in insert mode
-*/
-static void
-subtest_mir(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- char *s;
-
- if (enter_insert_mode && exit_insert_mode && cursor_address) {
- put_clear();
- i = line_count;
- put_str("\nXXX\nXXX\nXXX\nXXX");
- tc_putp(enter_insert_mode);
- s = tparm(cursor_address, i + 1, 0);
- tputs(s, lines, tc_putch);
- putchp('X');
- s = tparm(cursor_address, i + 2, 1);
- tputs(s, lines, tc_putch);
- putchp('X');
- s = tparm(cursor_address, i + 3, 2);
- tputs(s, lines, tc_putch);
- putchp('X');
- s = tparm(cursor_address, i + 4, 3);
- tputs(s, lines, tc_putch);
- putchp('X');
- tc_putp(exit_insert_mode);
- put_newlines(2);
- ptextln("If you see a 4 by 4 block of X's then (mir) should be true.");
- sprintf(temp, "(mir) Move-in-insert-mode is %s in the data base",
- move_insert_mode ? "true" : "false");
- ptextln(temp);
- } else {
- ptext("(mir) Move-in-insert-mode not tested, ");
- if (!enter_insert_mode) {
- ptext("(smir) ");
- }
- if (!exit_insert_mode) {
- ptext("(rmir) ");
- }
- if (!cursor_address) {
- ptext("(cup) ");
- }
- ptext("not present. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_msgr(test_list, status, ch)
-**
-** (msgr) move in sgr mode
-*/
-static void
-subtest_msgr(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (cursor_address &&
- ((enter_standout_mode && exit_standout_mode) ||
- (enter_alt_charset_mode && exit_alt_charset_mode))) {
- put_crlf();
- i = line_count + 1;
- tputs(tparm(cursor_address, i, 0), lines, tc_putch);
- put_mode(enter_alt_charset_mode);
- put_crlf();
- /*
- some versions of the wy-120 can not clear lines or
- screen when in alt charset mode. If (el) and (ed)
- are defined then I can test them. If they are not
- defined then they can not break (msgr)
- */
- tc_putp(clr_eos);
- tc_putp(clr_eol);
- put_mode(exit_alt_charset_mode);
- put_mode(enter_standout_mode);
- putchp('X');
- tputs(tparm(cursor_address, i + 2, 1), lines, tc_putch);
- putchp('X');
- tputs(tparm(cursor_address, i + 3, 2), lines, tc_putch);
- putchp('X');
- tputs(tparm(cursor_address, i + 4, 3), lines, tc_putch);
- putchp('X');
- put_mode(exit_standout_mode);
- put_crlf();
- tc_putp(clr_eos); /* OK if missing */
- put_crlf();
- ptextln("If you see a diagonal line of standout X's then (msgr) should be true. If any of the blanks are standout then (msgr) should be false.");
- sprintf(temp, "(msgr) Move-in-SGR-mode is %s in the data base",
- move_standout_mode ? "true" : "false");
- ptextln(temp);
- } else {
- ptextln("(smso) (rmso) (smacs) (rmacs) missing; (msgr) Move-in-SGR-mode not tested.");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_in(test_list, status, ch)
-**
-** (in) insert null glitch
-*/
-static void
-subtest_in(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (enter_insert_mode && exit_insert_mode) {
- ptextln("\nTesting (in) with (smir) and (rmir)");
- putln("\tIf these two lines line up ...");
- put_str("\tIf these two lines line up ...");
- put_cr();
- tc_putp(enter_insert_mode);
- putchp(' ');
- tc_putp(exit_insert_mode);
- ptext("\nthen (in) should be set. ");
- sprintf(temp,
- "(in) Insert-null-glitch is %s in the data base.",
- insert_null_glitch ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_dadb(test_list, status, ch)
-**
-** (da) (db) data above, (db) data below
-*/
-static void
-subtest_dadb(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (can_clear_screen && scroll_reverse && scroll_forward) {
- put_clear();
- if (scroll_reverse)
- ptext("(da) Data-above should be set\r");
- home_down();
- if (scroll_forward)
- ptext("(db) Data-below should be set\r");
- tc_putp(scroll_forward);
- go_home();
- tc_putp(scroll_reverse);
- tc_putp(scroll_reverse);
- home_down();
- tc_putp(scroll_forward);
- go_home();
- ptextln("\n\n\n\n\nIf the top line is blank then (da) should be false.");
- ptextln("If the bottom line is blank then (db) should be false.");
- sprintf(temp, "\n(da) Data-above is %s, and (db) Data-below is %s, in the data base.",
- memory_above ? "true" : "false",
- memory_below ? "true" : "false");
- ptextln(temp);
- line_count = lines;
- } else {
- ptextln("(da) Data-above, (db) Data-below not tested, scrolls or (clear) is missing.");
- }
- generic_done_message(t, state, ch);
-}
diff --git a/ncurses-5.2/tack/modules b/ncurses-5.2/tack/modules
deleted file mode 100644
index b36ebf3..0000000
--- a/ncurses-5.2/tack/modules
+++ /dev/null
@@ -1,18 +0,0 @@
-# $Id$
-@ base
-ansi progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-charset progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-color progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-control progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-crum progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-edit progs $(srcdir) $(srcdir)/tack.h ../include/term.h $(INCDIR)/tic.h
-fun progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-init progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-menu progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-modes progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-output progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-pad progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-scan progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-sync progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-sysdep progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-tack progs $(srcdir) $(srcdir)/tack.h ../include/term.h
diff --git a/ncurses-5.2/tack/output.c b/ncurses-5.2/tack/output.c
deleted file mode 100644
index 6c9e1b1..0000000
--- a/ncurses-5.2/tack/output.c
+++ /dev/null
@@ -1,818 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-/* screen formatting and I/O utility functions */
-
-#include <tack.h>
-#include <time.h>
-
-MODULE_ID("$Id$")
-
-/* globals */
-long char_sent; /* number of characters sent */
-int char_count; /* counts characters */
-int line_count; /* counts line feeds */
-int expand_chars; /* length of expand() string */
-int replace_mode; /* used to output replace mode padding */
-int can_go_home; /* TRUE if we can fashion a home command */
-int can_clear_screen; /* TRUE if we can somehow clear the screen */
-int raw_characters_sent; /* Total output characters */
-int log_count; /* Number of characters on a log line */
-
-/* translate mode default strings */
-#define TM_carriage_return TM_string[0].value
-#define TM_cursor_down TM_string[1].value
-#define TM_scroll_forward TM_string[2].value
-#define TM_newline TM_string[3].value
-#define TM_cursor_left TM_string[4].value
-#define TM_bell TM_string[5].value
-#define TM_form_feed TM_string[6].value
-#define TM_tab TM_string[7].value
-
-struct default_string_list TM_string[TM_last] = {
- {"cr", "\r", 0},
- {"cud1", "\n", 0},
- {"ind", "\n", 0},
- {"nel", "\r\n", 0},
- {"cub1", "\b", 0},
- {"bel", "\007", 0},
- {"ff", "\f", 0},
- {"ht", "\t", 0}
-};
-
-static const char *c0[32] = {
- "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK",
- "BEL", "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI",
- "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
- "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US"
-};
-
-static const char *c1[32] = {
- "", "", "", "", "IND", "NEL", "SSA", "ESA",
- "HTS", "HTJ", "VTS", "PLD", "PLU", "RI", "SS2", "SS3",
- "DCS", "PU1", "PU2", "STS", "CCH", "MW", "SPA", "EPA",
- "", "", "", "CSI", "ST", "OSC", "PM", "APC"
-};
-
-int
-getnext(int mask)
-{ /* get the next character without scan mode
- conversion */
- int ch;
- unsigned char buf;
-
- tc_putp(req_for_input);
- fflush(stdout);
- if (nodelay_read)
- while (1) {
- ch = read(fileno(stdin), &buf, 1);
- if (ch == -1)
- return EOF;
- if (ch == 1)
- return buf;
- }
- ch = getchar();
- if (ch == EOF)
- return EOF;
- return ch & mask;
-}
-
-
-int
-getchp(int mask)
-{ /* read a character with scan mode conversion */
- if (scan_mode) {
- tc_putp(req_for_input);
- fflush(stdout);
- return scan_key();
- } else
- return getnext(mask);
-}
-
-/*
-** tc_putch(c)
-**
-** Output one character
-*/
-int
-tc_putch(int c)
-{
- char_sent++;
- raw_characters_sent++;
- putchar(c);
- if ((raw_characters_sent & 31) == 31) {
- fflush(stdout);
- }
- if (log_fp) {
- /* terminal output logging */
- c &= 0xff;
- if (c < 32) {
- fprintf(log_fp, "<%s>", c0[c]);
- log_count += 5;
- } else
- if (c < 127) {
- fprintf(log_fp, "%c", c);
- log_count += 1;
- } else {
- fprintf(log_fp, "<%02x>", c);
- log_count += 4;
- }
- if (c == '\n' || log_count >= 80) {
- fprintf(log_fp, "\n");
- log_count = 0;
- }
- }
- return (c);
-}
-
-/*
-** tt_tputs(string, reps)
-**
-** Output a string with tputs() translation.
-** Use this function inside timing tests.
-*/
-void
-tt_tputs(const char *string, int reps)
-{
- int i;
-
- if (string) {
- for (i = 0; i < TT_MAX; i++) {
- if (i >= ttp) {
- tt_cap[i] = string;
- tt_affected[i] = reps;
- tt_count[i] = 1;
- tt_delay[i] = msec_cost(string, reps);
- ttp++;
- break;
- }
- if (string == tt_cap[i] && reps == tt_affected[i]) {
- tt_count[i]++;
- tt_delay_used += tt_delay[i];
- break;
- }
- }
- (void) tputs(string, reps, tc_putch);
- }
-}
-
-/*
-** tt_putp(string)
-**
-** Output a string with tputs() translation.
-** Use this function inside timing tests.
-*/
-void
-tt_putp(const char *string)
-{
- tt_tputs(string, 1);
-}
-
-/*
-** tt_putparm(string, reps, arg1, arg2, ...)
-**
-** Send tt_tputs(tparm(string, args...), reps)
-** Use this function inside timing tests.
-*/
-void
-tt_putparm(
- NCURSES_CONST char *string,
- int reps,
- int arg1,
- int arg2)
-{
- int i;
-
- if (string) {
- for (i = 0; i < TT_MAX; i++) {
- if (i >= ttp) {
- tt_cap[i] = string;
- tt_affected[i] = reps;
- tt_count[i] = 1;
- tt_delay[i] = msec_cost(string, reps);
- ttp++;
- break;
- }
- if (string == tt_cap[i] && reps == tt_affected[i]) {
- tt_count[i]++;
- tt_delay_used += tt_delay[i];
- break;
- }
- }
- (void) tputs(tparm((NCURSES_CONST char *)string, arg1, arg2), reps, tc_putch);
- }
-}
-
-/*
-** tc_putp(string)
-**
-** Output a string with tputs() translation.
-** Use this function instead of putp() so we can track
-** the actual number of characters sent.
-*/
-int
-tc_putp(const char *string)
-{
- return tputs(string, 1, tc_putch);
-}
-
-
-void
-put_this(int c)
-{ /* output one character (with padding) */
- tc_putch(c);
- if (char_padding && replace_mode)
- tt_putp(char_padding);
-}
-
-
-void
-put_cr(void)
-{
- if (translate_mode && carriage_return) {
- tt_putp(carriage_return);
- } else {
- tt_putp(TM_carriage_return);
- }
- char_count = 0;
-}
-
-
-void
-put_lf(void)
-{ /* send a linefeed (only works in RAW or
- CBREAK mode) */
- if (translate_mode && cursor_down) {
- tt_putp(cursor_down);
- } else {
- tt_putp(TM_cursor_down);
- }
- line_count++;
-}
-
-
-void
-put_ind(void)
-{ /* scroll forward (only works in RAW or
- CBREAK mode) */
- if (translate_mode && scroll_forward) {
- tt_putp(scroll_forward);
- } else {
- tt_putp(TM_scroll_forward);
- }
- line_count++;
-}
-
-/*
-** put_crlf()
-**
-** Send (nel) or <cr> <lf>
-*/
-void
-put_crlf(void)
-{
- if (translate_mode && newline) {
- tt_putp(newline);
- } else {
- tt_putp(TM_newline);
- }
- char_count = 0;
- line_count++;
-}
-
-/*
-** put_new_lines(count)
-**
-** Send a number of newlines. (nel)
-*/
-void
-put_newlines(int n)
-{
- while (n-- > 0) {
- put_crlf();
- }
-}
-
-/*
-** putchp(character)
-**
-** Send one character to the terminal.
-** This function does translation of control characters.
-*/
-void
-putchp(int c)
-{
- switch (c) {
- case '\b':
- if (translate_mode && cursor_left) {
- tt_putp(cursor_left);
- } else {
- tt_putp(TM_cursor_left);
- }
- char_count--;
- break;
- case 7:
- if (translate_mode && bell) {
- tt_putp(bell);
- } else {
- tt_putp(TM_bell);
- }
- break;
- case '\f':
- if (translate_mode && form_feed) {
- tt_putp(form_feed);
- } else {
- tt_putp(TM_form_feed);
- }
- char_count = 0;
- line_count++;
- break;
- case '\n':
- put_crlf();
- break;
- case '\r':
- put_cr();
- break;
- case '\t':
- if (translate_mode && tab) {
- tt_putp(tab);
- } else {
- tt_putp(TM_tab);
- }
- char_count = ((char_count / 8) + 1) * 8;
- break;
- default:
- put_this(c);
- char_count++;
- break;
- }
-}
-
-
-void
-put_str(const char *s)
-{ /* send the string to the terminal */
- for (; *s; putchp(*s++));
-}
-
-
-void
-putln(const char *s)
-{ /* output a string followed by a CR LF */
- for (; *s; putchp(*s++));
- put_crlf();
-}
-
-
-void
-put_columns(const char *s, int len, int w)
-{ /* put out s in column format */
- int l;
-
- if (char_count + w > columns) {
- put_crlf();
- }
- l = char_count % w;
- if (l) {
- while (l < w) {
- putchp(' ');
- l++;
- }
- }
- if (char_count && char_count + len >= columns) {
- put_crlf();
- }
- l = char_count;
- put_str(s);
- char_count = l + len;
-}
-
-
-/*
-** ptext(string)
-**
-** Output a string but do not assume the terminal will wrap to a
-** new line. Break the line at a word boundary then send a CR LF.
-** This is more esthetic on 40 column terminals.
-*/
-void
-ptext(const char *s)
-{
- const char *t;
-
- while (*s) {
- for (t = s + 1; *t > ' '; t++);
- if ((char_count != 0) && ((t - s) + char_count >= columns)) {
- put_crlf();
- while (*s == ' ')
- s++;
- }
- while (s < t) {
- putchp(*s++);
- }
- }
-}
-
-
-void
-put_dec(char *f, int i)
-{ /* print a line with a decimal number in it */
- char tm[128];
-
- sprintf(tm, f, i / 10, i % 10);
- ptext(tm);
-}
-
-
-void
-three_digit(char *tx, int i)
-{ /* convert the decimal number to a string of
- at least 3 digits */
- if (i < 1000)
- sprintf(tx, "%d.%d", i / 10, i % 10);
- else
- sprintf(tx, "%d", i / 10);
-}
-
-
-void
-ptextln(const char *s)
-{ /* print the text using ptext() then add a CR
- LF */
- ptext(s);
- put_crlf();
-}
-
-
-static void
-expand_one(int ch, char **v)
-{ /* expand one character */
- char *t = *v;
-
- if (ch & 0x80) { /* dump it in octal (yuck) */
- *t++ = '\\';
- *t++ = '0' + ((ch >> 6) & 3);
- *t++ = '0' + ((ch >> 3) & 7);
- *t++ = '0' + (ch & 7);
- expand_chars += 4;
- } else if (ch == 127) { /* DEL */
- *t++ = '^';
- *t++ = '?';
- expand_chars += 2;
- } else if (ch >= ' ') {
- *t++ = ch;
- expand_chars++;
- } else { /* control characters */
- *t++ = '^';
- *t++ = ch + '@';
- expand_chars += 2;
- }
- *v = t;
-}
-
-
-char *
-expand(const char *s)
-{ /* convert the string to printable form */
- static char buf[4096];
- char *t, *v;
- int ch;
-
- if (magic_cookie_glitch <= 0 && exit_attribute_mode) {
- v = enter_reverse_mode;
- } else {
- v = NULL;
- }
- expand_chars = 0;
- t = buf;
- if (s) {
- for (; (ch = *s); s++) {
- if ((ch & 0x80) && v) { /* print it in reverse video
- mode */
- strcpy(t, liberated(tparm(v)));
- for (; *t; t++);
- expand_one(ch & 0x7f, &t);
- strcpy(t, liberated(tparm(exit_attribute_mode)));
- for (; *t; t++);
- } else {
- expand_one(ch, &t);
- }
- }
- }
- *t = '\0';
- return buf;
-}
-
-
-char *
-print_expand(char *s)
-{ /* convert the string to 7-bit printable form */
- static char buf[4096];
- char *t;
- int ch;
-
- expand_chars = 0;
- t = buf;
- if (s) {
- for (; (ch = *s); s++) {
- expand_one(ch, &t);
- }
- }
- *t = '\0';
- return buf;
-}
-
-
-char *
-expand_to(char *s, int l)
-{ /* expand s to length l */
- char *t;
-
- for (s = t = expand(s); *t; t++);
- for (; expand_chars < l; expand_chars++) {
- *t++ = ' ';
- }
- *t = '\0';
- return s;
-}
-
-
-char *
-hex_expand_to(char *s, int l)
-{ /* expand s to length l in hex */
- static char buf[4096];
- char *t;
-
- for (t = buf; *s; s++) {
- sprintf(t, "%02X ", *s & 0xff);
- t += 3;
- if (t - buf > (int) sizeof(buf) - 4) {
- break;
- }
- }
- for (; t - buf < l;) {
- *t++ = ' ';
- }
- *t = '\0';
- expand_chars = t - buf;
- return buf;
-}
-
-
-char *
-expand_command(const char *c)
-{ /* expand an ANSI escape sequence */
- static char buf[256];
- int i, j, ch;
- char *s;
-
- s = buf;
- for (i = FALSE; (ch = (*c & 0xff)); c++) {
- if (i) {
- *s++ = ' ';
- }
- i = TRUE;
- if (ch < 32) {
- j = c[1] & 0xff;
- if (ch == '\033' && j >= '@' && j <= '_') {
- ch = j - '@';
- c++;
- for (j = 0; (*s = c1[ch][j++]); s++);
- } else
- for (j = 0; (*s = c0[ch][j++]); s++);
- } else {
- *s++ = ch;
- j = c[1] & 0xff;
- if (ch >= '0' && ch <= '9' &&
- j >= '0' && j <= '9') {
- i = FALSE;
- }
- }
- }
- *s = '\0';
- return buf;
-}
-
-/*
-** go_home()
-**
-** Move the cursor to the home position
-*/
-void
-go_home(void)
-{
- int i;
-
- if (cursor_home)
- tt_putp(cursor_home);
- else if (cursor_address)
- tt_putparm(cursor_address, lines, 0, 0);
- else if (row_address) { /* use (vpa) */
- put_cr();
- tt_putparm(row_address, 1, 0, 0);
- } else if (cursor_up && cursor_to_ll) {
- tt_putp(cursor_to_ll);
- for (i = 1; i < lines; i++) {
- tt_putp(cursor_up);
- }
- } else {
- can_go_home = FALSE;
- return;
- }
- char_count = line_count = 0;
- can_go_home = TRUE;
-}
-
-
-void
-home_down(void)
-{ /* move the cursor to the lower left hand
- corner */
- int i;
-
- if (cursor_to_ll)
- tt_putp(cursor_to_ll);
- else if (cursor_address)
- tt_putparm(cursor_address, lines, lines - 1, 0);
- else if (row_address) { /* use (vpa) */
- put_cr();
- tt_putparm(row_address, 1, lines - 1, 0);
- } else if (cursor_down && cursor_home) {
- tt_putp(cursor_home);
- for (i = 1; i < lines; i++)
- tt_putp(cursor_down);
- } else
- return;
- char_count = 0;
- line_count = lines - 1;
-}
-
-
-void
-put_clear(void)
-{ /* clear the screen */
- int i;
-
- if (clear_screen)
- tt_tputs(clear_screen, lines);
- else if (clr_eos && can_go_home) {
- go_home();
- tt_tputs(clr_eos, lines);
- } else if (scroll_forward && !over_strike && (can_go_home || cursor_up)) {
- /* clear the screen by scrolling */
- put_cr();
- if (cursor_to_ll) {
- tt_putp(cursor_to_ll);
- } else if (cursor_address) {
- tt_putparm(cursor_address, lines, lines - 1, 0);
- } else if (row_address) {
- tt_putparm(row_address, 1, lines - 1, 0);
- } else {
- for (i = 1; i < lines; i++) {
- tt_putp(scroll_forward);
- }
- }
- for (i = 1; i < lines; i++) {
- tt_putp(scroll_forward);
- }
- if (can_go_home) {
- go_home();
- } else {
- for (i = 1; i < lines; i++) {
- tt_putp(cursor_up);
- }
- }
- } else {
- can_clear_screen = FALSE;
- return;
- }
- char_count = line_count = 0;
- can_clear_screen = TRUE;
-}
-
-/*
-** wait_here()
-**
-** read one character from the input stream
-** If the terminal is not in RAW mode then this function will
-** wait for a <cr> or <lf>.
-*/
-int
-wait_here(void)
-{
- char ch, cc[64];
- char message[16];
- int i, j;
-
- for (i = 0; i < (int) sizeof(cc); i++) {
- cc[i] = ch = getchp(STRIP_PARITY);
- if (ch == '\r' || ch == '\n') {
- put_crlf();
- char_sent = 0;
- return cc[i ? i - 1 : 0];
- }
- if (ch >= ' ') {
- if (stty_query(TTY_CHAR_MODE)) {
- put_crlf();
- char_sent = 0;
- return ch;
- }
- continue;
- }
- if (ch == 023) { /* Control S */
- /* ignore control S, but tell me about it */
- while (ch == 023 || ch == 021) {
- ch = getchp(STRIP_PARITY);
- if (i < (int) sizeof(cc))
- cc[++i] = ch;
- }
- put_str("\nThe terminal sent a ^S -");
- for (j = 0; j <= i; j++) {
- sprintf(message, " %02X", cc[j] & 0xFF);
- put_str(message);
- }
- put_crlf();
- i = -1;
- } else if (ch != 021) { /* Not Control Q */
- /* could be abort character */
- spin_flush();
- if (tty_can_sync == SYNC_TESTED) {
- (void) tty_sync_error();
- } else {
- put_str("\n? ");
- }
- }
- }
- return '?';
-}
-
-
-/*
-** read_string(buffer, length)
-**
-** Read a string of characters from the input stream.
-*/
-void
-read_string(
- char *buf,
- int length)
-{
- int ch, i;
-
- for (i = 0; i < length - 1; ) {
- ch = getchp(STRIP_PARITY);
- if (ch == '\r' || ch == '\n') {
- break;
- }
- if (ch == '\b' || ch == 127) {
- if (i) {
- putchp('\b');
- putchp(' ');
- putchp('\b');
- i--;
- }
- } else {
- buf[i++] = ch;
- putchp(ch);
- }
- }
- buf[i] = '\0';
- put_crlf();
- char_sent = 0;
-}
-
-/*
-** maybe_wait(lines)
-**
-** wait if near the end of the screen, then clear screen
-*/
-void
-maybe_wait(int n)
-{
- if (line_count + n >= lines) {
- if (char_sent != 0) {
- ptext("Go? ");
- (void) wait_here();
- }
- put_clear();
- } else {
- put_crlf();
- }
-}
diff --git a/ncurses-5.2/tack/pad.c b/ncurses-5.2/tack/pad.c
deleted file mode 100644
index 32357be..0000000
--- a/ncurses-5.2/tack/pad.c
+++ /dev/null
@@ -1,1957 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/* test the pad counts on the terminal */
-
-static void pad_standard(struct test_list *, int *, int *);
-static void init_xon_xoff(struct test_list *, int *, int *);
-static void init_cup(struct test_list *, int *, int *);
-static void pad_rmxon(struct test_list *, int *, int *);
-static void pad_home1(struct test_list *, int *, int *);
-static void pad_home2(struct test_list *, int *, int *);
-static void pad_clear(struct test_list *, int *, int *);
-static void pad_ech(struct test_list *, int *, int *);
-static void pad_el1(struct test_list *, int *, int *);
-static void pad_el(struct test_list *, int *, int *);
-static void pad_smdc(struct test_list *, int *, int *);
-static void pad_dch(struct test_list *, int *, int *);
-static void pad_dch1(struct test_list *, int *, int *);
-static void pad_smir(struct test_list *, int *, int *);
-static void pad_ich(struct test_list *, int *, int *);
-static void pad_ich1(struct test_list *, int *, int *);
-static void pad_xch1(struct test_list *, int *, int *);
-static void pad_rep(struct test_list *, int *, int *);
-static void pad_cup(struct test_list *, int *, int *);
-static void pad_hd(struct test_list *, int *, int *);
-static void pad_hu(struct test_list *, int *, int *);
-static void pad_rin(struct test_list *, int *, int *);
-static void pad_il(struct test_list *, int *, int *);
-static void pad_indn(struct test_list *, int *, int *);
-static void pad_dl(struct test_list *, int *, int *);
-static void pad_xl(struct test_list *, int *, int *);
-static void pad_scrc(struct test_list *, int *, int *);
-static void pad_csrind(struct test_list *, int *, int *);
-static void pad_sccsrrc(struct test_list *, int *, int *);
-static void pad_csr_nel(struct test_list *, int *, int *);
-static void pad_csr_cup(struct test_list *, int *, int *);
-static void pad_ht(struct test_list *, int *, int *);
-static void pad_smso(struct test_list *, int *, int *);
-static void pad_smacs(struct test_list *, int *, int *);
-static void pad_crash(struct test_list *, int *, int *);
-
-extern struct test_menu change_pad_menu;
-
-/*
- Any command found in this list, executed from a "Done" prompt
- will force the default action to repeat rather than next.
-*/
-const char *pad_repeat_test = {"ep-+<>"};
-
-struct test_list pad_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {0, 0, 0, 0, "p) change padding", 0, &change_pad_menu},
- {0, 0, 0, 0, "@) display statistics about the last test", dump_test_stats, 0},
- {0, 0, 0, 0, "c) clear screen", menu_clear_screen, 0},
- {0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
- {0, 0, 0, 0, txt_longer_test_time, longer_test_time, 0},
- {0, 0, 0, 0, txt_shorter_test_time, shorter_test_time, 0},
- {0, 0, 0, 0, txt_longer_augment, longer_augment, 0},
- {0, 0, 0, 0, txt_shorter_augment, shorter_augment, 0},
- /***
- Phase 1: Test initialization and reset strings.
-
- (rs1) (rs2) (rs3) (is1) (is2) (is3) are very difficult to test.
- They have no defined output. To make matters worse, the cap
- builder could partition (rs1) (rs2) (rs3) by length, leaving the
- terminal in some unknown state between (rs1) and (rs2) or between
- (r2) and (rs3). Some reset strings clear the screen when done.
-
- We have no control over this. The only thing we can do for
- certain is to test the pad times by checking for overruns.
- ***/
- {MENU_NEXT, 3, "rs1", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rs2", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rs3", 0, 0, pad_standard, 0},
- {MENU_NEXT | MENU_INIT, 0, 0, 0, 0, init_xon_xoff, 0},
- {MENU_NEXT, 3, "is1", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "is2", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "is3", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rmxon", "smxon", 0, pad_rmxon, 0},
- {MENU_NEXT | MENU_INIT, 0, 0, 0, 0, init_cup, 0},
- /*
- Phase 2: Test home, screen clears and erases.
- */
- {MENU_NEXT, 0, "home", 0, 0, pad_home1, 0},
- {MENU_NEXT, 0, "home) (nel", 0, 0, pad_home2, 0},
- {MENU_NEXT | 1, 0, "clear", 0, 0, pad_clear, 0},
- {MENU_NEXT | MENU_LM1, 0, "ed", 0, 0, pad_clear, 0},
- {MENU_NEXT | MENU_80c, 0, "ech", 0, 0, pad_ech, 0},
- {MENU_NEXT | MENU_80c, 0, "el1", "cub1 nel", 0, pad_el1, 0},
- {MENU_NEXT | MENU_10c, 0, "el", "nel", 0, pad_el, 0},
- /*
- Phase 3: Character deletions and insertions
- */
- {MENU_NEXT, 0, "smdc) (rmdc", 0, 0, pad_smdc, 0},
- {MENU_NEXT | MENU_80c, 0, "dch", "smdc rmdc", 0, pad_dch, 0},
- {MENU_NEXT | MENU_80c, 0, "dch1", "smdc rmdc", 0, pad_dch1, 0},
- {MENU_NEXT, 0, "smir) (rmir", 0, 0, pad_smir, 0},
- {MENU_NEXT | MENU_90c, 0, "ich) (ip", "smir rmir", 0, pad_ich, 0},
- {MENU_NEXT | MENU_90c, 0, "ich1) (ip", "smir rmir", 0, pad_ich1, 0},
- {MENU_NEXT, 4, "ich1) (dch1", "smir rmir", 0, pad_xch1, 0},
- {MENU_NEXT | MENU_90c, 0, "rep", 0, 0, pad_rep, 0},
- /*
- Phase 4: Test cursor addressing pads.
- */
- {MENU_NEXT, 0, "cup", 0, 0, pad_cup, 0},
- /*
- Phase 5: Test scrolling and cursor save/restore.
- */
- {MENU_NEXT, 0, "hd", 0, 0, pad_hd, 0},
- {MENU_NEXT, 0, "hu", 0, 0, pad_hu, 0},
- {MENU_NEXT | MENU_LM1 | 1, 0, "rin", 0, 0, pad_rin, 0},
- {MENU_NEXT, 0, "ri", 0, 0, pad_rin, 0},
- {MENU_NEXT | MENU_LM1 | 1, 0, "il", 0, 0, pad_il, 0},
- {MENU_NEXT, 0, "il1", 0, 0, pad_il, 0},
- {MENU_NEXT | MENU_LM1 | 1, 0, "indn", 0, 0, pad_indn, 0},
- {MENU_NEXT, 0, "ind", 0, 0, pad_indn, 0},
- {MENU_NEXT | MENU_LM1 | 1, 0, "dl", 0, 0, pad_dl, 0},
- {MENU_NEXT, 0, "dl1", 0, 0, pad_dl, 0},
- {MENU_NEXT, 0, "il1) (dl1", 0, 0, pad_xl, 0},
- {MENU_NEXT, 0, "sc) (rc", 0, 0, pad_scrc, 0},
- {MENU_NEXT | MENU_50l, 0, "csr) (ind", 0, 0, pad_csrind, 0},
- {MENU_NEXT, 0, "sc) (csr) (rc", 0, 0, pad_sccsrrc, 0},
- {MENU_NEXT, 0, "csr) (nel", "sc rc", 0, pad_csr_nel, 0},
- {MENU_NEXT, 0, "csr) (cup", 0, 0, pad_csr_cup, 0},
- /*
- Phase 6: Test tabs.
- */
- {MENU_NEXT, 0, "ht", 0, 0, pad_ht, 0},
- /*
- Phase 7: Test character-set-switch pads.
- */
- {MENU_NEXT, 0, "smso) (rmso", 0, 0, pad_smso, 0},
- {MENU_NEXT, 0, "smacs) (rmacs", 0, 0, pad_smacs, 0},
- /*
- Phase 8: Tests for miscellaneous mode-switch pads.
- */
- {MENU_NEXT, 3, "flash", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "smkx", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rmkx", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "smm", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rmm", 0, 0, pad_standard, 0},
- /*
- Phase 9: Test crash-and-burn properties of unpadded (clear).
- */
- {0, 0, "clear", "xon", "k) run clear test with no padding", pad_crash, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-extern int test_complete; /* counts number of tests completed */
-
-/* globals */
-int hzcc; /* horizontal character count */
-char letter; /* current character being displayed */
-int letter_number; /* points into letters[] */
-int augment, repeats; /* number of characters (or lines) effected */
-char letters[] = "AbCdefghiJklmNopQrStuVwXyZ";
-
-static char every_line[] = "This text should be on every line.";
-static char all_lines[] = "Each char on any line should be the same. ";
-static char above_line[] = "The above lines should be all Xs. ";
-static char no_visual[] = "This loop test has no visual failure indicator. ";
-
-/*
-** pad_standard(test_list, status, ch)
-**
-** Run a single cap pad test.
-*/
-static void
-pad_standard(
- struct test_list *t,
- int *state,
- int *ch)
-{
- const char *long_name;
- char *cap;
- int l = 2, i;
- char tbuf[128];
-
- if ((cap = get_string_cap_byname(t->caps_done, &long_name))) {
- sprintf(tbuf, "(%s) %s, start testing", t->caps_done,
- long_name);
- if (skip_pad_test(t, state, ch, tbuf)) {
- return;
- }
- i = 1;
- pad_test_startup(1);
- do {
- if (i >= columns) {
- page_loop();
- l++;
- i = 1;
- }
- tt_putp(cap);
- putchp(letter);
- i++;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- if (l >= lines) {
- home_down();
- } else {
- put_crlf();
- }
- ptextln(no_visual);
- } else {
- CAP_NOT_FOUND;
- /* Note: get_string_cap_byname() always sets long_name */
- sprintf(temp, "(%s) %s, not present. ", t->caps_done,
- long_name);
- ptext(temp);
- }
- pad_done_message(t, state, ch);
-}
-
-/*
-** init_xon_xoff(test_list, status, ch)
-**
-** Initialize the xon_xoff values
-*/
-static void
-init_xon_xoff(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- /* the reset strings may dink with the XON/XOFF modes */
- if (select_xon_xoff == 0 && exit_xon_mode) {
- tc_putp(exit_xon_mode);
- }
- if (select_xon_xoff == 1 && enter_xon_mode) {
- tc_putp(enter_xon_mode);
- }
-}
-
-/*
-** pad_rmxon(test_list, status, ch)
-**
-** Test (rmxon) exit XON/XOFF mode
-*/
-static void
-pad_rmxon(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (select_xon_xoff == 0 && exit_xon_mode) {
- pad_standard(t, state, ch);
- }
-}
-
-/*
-** init_cup(test_list, status, ch)
-**
-** Send the initialization strings for XON/XOFF and (smcup)
-** Stop pad testing if clear screen is missing.
-*/
-static void
-init_cup(
- struct test_list *t,
- int *state,
- int *ch)
-{
- init_xon_xoff(t, state, ch);
- if (enter_ca_mode) {
- tc_putp(enter_ca_mode);
- }
- if (!can_clear_screen) {
- ptext("(clear) clear screen not present,");
- ptext(" pad processing terminated. ");
- pad_done_message(t, state, ch);
- if (*ch == 0 || *ch == 'n' || *ch == 's' || *ch == 'r') {
- *ch = '?';
- }
- return;
- }
-}
-
-/*
-** pad_home1(test_list, status, ch)
-**
-** Test (home) when (am) is set.
-*/
-static void
-pad_home1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j, k;
-
- if (can_go_home && auto_right_margin) {
- /*
- truly brain damaged terminals will fail this test because
- they cannot accept data at full rate
- */
- if (skip_pad_test(t, state, ch, "(home) Home start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (j = 1; j < lines; j++) {
- for (k = 0; k < columns; k++) {
- if (k & 0xF) {
- put_this(letter);
- } else {
- put_this('.');
- }
- }
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext("All the dots should line up. ");
- pad_done_message(t, state, ch);
- put_clear();
- }
-}
-
-/*
-** pad_home2(test_list, status, ch)
-**
-** Test (home) and (nel). (am) is reset.
-*/
-static void
-pad_home2(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j, k;
-
- if (can_go_home) {
- if (skip_pad_test(t, state, ch,
- "(home) Home, (nel) newline start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (j = 1; j < lines; j++) {
- for (k = 2; k < columns; k++) {
- if (k & 0xF) {
- put_this(letter);
- } else {
- put_this('.');
- }
- }
- put_crlf(); /* this does the (nel) */
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext("All the dots should line up. ");
- pad_done_message(t, state, ch);
- put_clear();
- }
-}
-
-/*
-** pad_clear(test_list, status, ch)
-**
-** Test (clear) and (ed)
-** run the clear screen tests (also clear-to-end-of-screen)
-**
-** 0) full page
-** 1) sparse page
-** 2) short lines
-** 3) one full line
-** 4) one short line
-*/
-static void
-pad_clear(
- struct test_list *t,
- int *state,
- int *ch)
-{
- const char *end_message = 0;
- const char *txt;
- int j, k, is_clear;
- int clear_select; /* select the test number */
-
- is_clear = t->flags & 1;
- clear_select = auto_right_margin ? 0 : 1;
- if (is_clear) {
- txt = "(clear) clear-screen start testing";
- } else {
- if (!clr_eos) {
- CAP_NOT_FOUND;
- ptext("(ed) erase-to-end-of-display, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- txt = "(ed) erase-to-end-of-display start testing";
- }
- if (skip_pad_test(t, state, ch, txt)) {
- return;
- }
- if (enter_am_mode) {
- tc_putp(enter_am_mode);
- clear_select = 0;
- }
- for (; clear_select < 5; clear_select++) {
- if (augment > lines || is_clear || !cursor_address) {
- augment = lines;
- } else {
- if (augment <= 1) {
- augment = 2;
- }
- if (augment < lines) {
- put_clear();
- tt_putparm(cursor_address, 1,
- lines - augment - 1, 0);
- ptextln("This line should not be erased (ed)");
- }
- }
- repeats = augment;
- switch (clear_select) {
- case 0:
- end_message = "Clear full screen. ";
- break;
- case 1:
- end_message = "Clear sparse screen. ";
- if (cursor_down) {
- break;
- }
- clear_select++;
- /* FALLTHRU */
- case 2:
- end_message = "Clear one character per line. ";
- if (newline) {
- break;
- }
- clear_select++;
- /* FALLTHRU */
- case 3:
- end_message = "Clear one full line. ";
- break;
- case 4:
- end_message = "Clear single short line. ";
- break;
- }
- pad_test_startup(0);
- do {
- switch (clear_select) {
- case 0: /* full screen test */
- for (j = 1; j < repeats; j++) {
- for (k = 0; k < columns; k++) {
- if (k & 0xF) {
- put_this(letter);
- } else {
- put_this('.');
- }
- }
- SLOW_TERMINAL_EXIT;
- }
- break;
- case 1: /* sparse screen test */
- for (j = columns - repeats; j > 2; j--) {
- put_this(letter);
- }
- for (j = 2; j < repeats; j++) {
- tt_putp(cursor_down);
- put_this(letter);
- }
- break;
- case 2: /* short lines */
- for (j = 2; j < repeats; j++) {
- put_this(letter);
- tt_putp(newline);
- }
- put_this(letter);
- break;
- case 3: /* one full line */
- for (j = columns - 5; j > 1; j--) {
- put_this(letter);
- }
- break;
- case 4: /* one short line */
- put_str("Erase this!");
- break;
- }
- if (is_clear) {
- put_clear();
- } else {
- if (augment == lines) {
- go_home();
- } else {
- tt_putparm(cursor_address, 1,
- lines - repeats, 0);
- }
- tt_tputs(clr_eos, repeats);
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 1);
- ptext(end_message);
-
- pad_done_message(t, state, ch);
-
- if (*ch != 0 && *ch != 'n') {
- return;
- }
- }
-}
-
-/*
-** pad_ech(test_list, status, ch)
-**
-** Test (ech) erase characters
-*/
-static void
-pad_ech(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!erase_chars) {
- CAP_NOT_FOUND;
- ptext("(ech) Erase-characters, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(ech) Erase-characters start testing")) {
- return;
- }
- if (augment > columns - 2) {
- augment = columns - 2;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = 0; j <= repeats; j++) {
- putchp(letter);
- }
- put_cr();
- tt_putparm(erase_chars, repeats, repeats, 0);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- for (i = 1; i <= repeats; i++) {
- putchp(' ');
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_el1(test_list, status, ch)
-**
-** Test (el1) erase to start of line also (cub1) and (nel)
-*/
-static void
-pad_el1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!clr_bol) {
- CAP_NOT_FOUND;
- ptext("(el1) Erase-to-beginning-of-line, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(el1) Erase-to-beginning-of-line start testing")) {
- return;
- }
- if (augment > columns - 2) {
- augment = columns - 2;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = 0; j <= repeats; j++) {
- putchp(letter);
- }
- tt_putp(cursor_left);
- tt_putp(cursor_left);
- tt_tputs(clr_bol, repeats);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- for (i = 1; i <= repeats; i++) {
- putchp(' ');
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_el(test_list, status, ch)
-**
-** Test (el) clear to end of line also (nel)
-*/
-static void
-pad_el(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!clr_eol) {
- CAP_NOT_FOUND;
- ptext("(el) Clear-to-end-of-line, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(el) Clear-to-end-of-line start testing")) {
- return;
- }
- hzcc = columns * 8 / 10; /* horizontal character count */
- if (augment > hzcc) {
- augment = hzcc;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = -1; j < augment; j++) {
- putchp(letter);
- }
- put_cr();
- putchp(letter);
- tt_putp(clr_eol);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_smdc(test_list, status, ch)
-**
-** Test (smdc) (rmdc) Delete mode
-*/
-static void
-pad_smdc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!enter_delete_mode) {
- CAP_NOT_FOUND;
- ptext("(smdc) Enter-delete-mode");
- if (!exit_delete_mode) {
- ptext(", (rmdc) Exit-delete-mode");
- }
- ptext(", not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(smdc) (rmdc) Enter/Exit-delete-mode start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- for (i = 1; i < columns; i++) {
- tt_putp(enter_delete_mode);
- tt_putp(exit_delete_mode);
- putchp(letter);
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(no_visual);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_dch(test_list, status, ch)
-**
-** Test (smdc) (rmdc) Delete mode and (dch)
-*/
-static void
-pad_dch(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!parm_dch) {
- CAP_NOT_FOUND;
- ptext("(dch) Delete-characters, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(dch) Delete-characters start testing")) {
- return;
- }
- hzcc = columns * 8 / 10; /* horizontal character count */
- if (augment > hzcc) {
- augment = hzcc;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = 0; j <= repeats; j++) {
- putchp(letter);
- }
- put_cr();
- tt_putp(enter_delete_mode);
- tt_putparm(parm_dch, repeats, repeats, 0);
- tt_putp(exit_delete_mode);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_dch1(test_list, status, ch)
-**
-** Test (smdc) (rmdc) Delete mode and (dch1)
-*/
-static void
-pad_dch1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!delete_character) {
- if (parm_dch) {
- /* if the other one is defined then its OK */
- return;
- }
- CAP_NOT_FOUND;
- ptext("(dch1) Delete-character, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(dch1) Delete-character start testing")) {
- return;
- }
- hzcc = columns * 8 / 10; /* horizontal character count */
- if (augment > hzcc) {
- augment = hzcc;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = -1; j < augment; j++) {
- putchp(letter);
- }
- put_cr();
- tt_putp(enter_delete_mode);
- for (j = 0; j < augment; j++) {
- tt_putp(delete_character);
- }
- tt_putp(exit_delete_mode);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_smir(test_list, status, ch)
-**
-** Test (smir) (rmir) Insert mode
-*/
-static void
-pad_smir(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!enter_insert_mode) {
- CAP_NOT_FOUND;
- ptext("(smir) Enter-insert-mode");
- if (!exit_insert_mode) {
- ptext(", (rmir) Exit-insert-mode");
- }
- ptext(", not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(smir) (rmir) Enter/Exit-insert-mode start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- for (i = 1; i < columns; i++) {
- tt_putp(enter_insert_mode);
- tt_putp(exit_insert_mode);
- putchp(letter);
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(no_visual);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_ich(test_list, status, ch)
-**
-** Test (smir) (rmir) Insert mode and (ich) and (ip)
-*/
-static void
-pad_ich(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!parm_ich) {
- CAP_NOT_FOUND;
- ptext("(ich) Insert-characters, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(ich) Insert-characters, (ip) Insert-padding start testing")) {
- return;
- }
- j = columns * 9 / 10;
- if (augment > j) {
- augment = j;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- putchp(letter);
- put_cr();
- tt_putp(enter_insert_mode);
- replace_mode = 0;
- tt_putparm(parm_ich, repeats, repeats, 0);
- tt_putp(exit_insert_mode);
- replace_mode = 1;
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- for (i = 0; i < repeats; i++) {
- putchp(' ');
- }
- putchp(letter);
- NEXT_LETTER;
- put_crlf();
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- tc_putp(exit_insert_mode);
-}
-
-/*
-** pad_ich1(test_list, status, ch)
-**
-** Test (smir) (rmir) Insert mode and (ich1) and (ip)
-*/
-static void
-pad_ich1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!insert_character) {
- CAP_NOT_FOUND;
- ptext("(ich1) Insert-character, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(ich1) Insert-character, (ip) Insert-padding start testing")) {
- return;
- }
- if (augment > columns - 2) {
- augment = columns - 2;
- }
- pad_test_startup(1);
- do {
- put_clear();
- for (i = 2; i < lines; i++) {
- putchp(letter);
- put_cr();
- tt_putp(enter_insert_mode);
- replace_mode = 0;
- if (!insert_padding && !insert_character) {
- /* only enter/exit is needed */
- for (j = 0; j < augment; j++) {
- putchp('.');
- }
- } else {
- for (j = 0; j < augment; j++) {
- tt_putp(insert_character);
- putchp('.');
- tt_putp(insert_padding);
- }
- }
- tt_putp(exit_insert_mode);
- replace_mode = 1;
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- for (j = 0; j < augment; j++) {
- putchp('.');
- }
- putchp(letter);
- NEXT_LETTER;
- put_crlf();
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- tc_putp(exit_insert_mode);
-}
-
-/*
-** pad_xch1(test_list, status, ch)
-**
-** Test (ich1) (ip) (dch1)
-*/
-static void
-pad_xch1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- static char xch1[] =
- "This line should not be garbled. It should be left justified.";
-
- if (enter_insert_mode || exit_insert_mode ||
- enter_delete_mode || exit_delete_mode ||
- !insert_character || !delete_character) {
- /* this test is quietly ignored */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(ich1) Insert-character, (dch1) Delete-character start testing")) {
- return;
- }
- put_crlf();
- ptext(xch1);
- put_cr();
- pad_test_startup(0);
- do {
- tt_putp(insert_character);
- tt_putp(delete_character);
- } while(still_testing());
- pad_test_shutdown(t, 1);
- ptextln(xch1);
- ptext("The preceding two lines should be the same. ");
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_rep(test_list, status, ch)
-**
-** Test (rep) repeat character
-*/
-static void
-pad_rep(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!repeat_char) {
- CAP_NOT_FOUND;
- ptext("(rep) Repeat-character, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(rep) Repeat-character start testing")) {
- return;
- }
- if (augment > columns - 2) {
- augment = columns - 2;
- }
- if (augment < 2) {
- augment = 2;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- tt_putparm(repeat_char, repeats, letter, repeats);
- put_crlf();
- }
- for (j = 0; j < repeats; j++) {
- putchp(letter);
- }
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptextln(all_lines);
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_cup(test_list, status, ch)
-**
-** Test (cup) Cursor address
-*/
-static void
-pad_cup(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, l, r, c;
-
- if (!cursor_address) {
- CAP_NOT_FOUND;
- ptext("(cup) Cursor-address not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(cup) Cursor-address start testing")) {
- return;
- }
- put_clear();
- ptext("Each line should be filled with the same letter. There should");
- ptext(" be no gaps, or single letters scattered over the screen. ");
- if (char_count + 15 > columns) {
- put_crlf();
- }
- if (((lines - line_count) & 1) == 0) {
- /* this removes the gap in the middle of the test when the
- number of lines is odd. */
- put_crlf();
- }
- r = line_count;
- c = char_count;
- l = (columns - 4) >> 1;
- pad_test_startup(0);
- do {
- for (i = 1; i + i + r < lines; i++) {
- for (j = 0; j <= l; j++) {
- tt_putparm(cursor_address, 1, r + i, j);
- putchp(letter);
- tt_putparm(cursor_address, 1, r + i, l + l + 1 - j);
- putchp(letter);
- tt_putparm(cursor_address, 1, lines - i, j);
- putchp(letter);
- tt_putparm(cursor_address, 1, lines - i, l + l + 1 - j);
- putchp(letter);
- }
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- tt_putparm(cursor_address, 1, line_count = r, char_count = c);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_hd(test_list, status, ch)
-**
-** Test (hd) Half down
-*/
-static void
-pad_hd(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, k;
-
- if (!down_half_line) {
- CAP_NOT_FOUND;
- ptext("(hd) Half-line-down not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(hd) Half-line-down start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- for (i = 1; i < columns; i += 2) {
- for (j = 1; j < i; ++j) {
- putchp(' ');
- }
- tt_putp(down_half_line);
- for (k = lines + lines; k > 4; k--) {
- if (j++ >= columns) {
- break;
- }
- tt_putp(down_half_line);
- putchp(letter);
- }
- go_home();
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_hu(test_list, status, ch)
-**
-** Test (hu) Half line up
-*/
-static void
-pad_hu(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, k;
-
- if (!up_half_line) {
- CAP_NOT_FOUND;
- ptext("(hu) Half-line-up not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(hu) Half-line-up start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- for (i = 1; i < columns; i += 2) {
- home_down();
- for (j = 1; j < i; ++j) {
- putchp(' ');
- }
- tt_putp(up_half_line);
- for (k = lines + lines; k > 4; k--) {
- if (j++ >= columns) {
- break;
- }
- tt_putp(up_half_line);
- putchp(letter);
- }
- SLOW_TERMINAL_EXIT;
- }
- go_home();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_rin(test_list, status, ch)
-**
-** Test (rin) and (ri) Reverse index
-*/
-static void
-pad_rin(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- const char *start_message;
-
- if (t->flags & 1) {
- /* rin */
- if (!parm_rindex) {
- CAP_NOT_FOUND;
- ptext("(rin) Scroll-reverse-n-lines not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(rin) Scroll-reverse-n-lines start testing";
- } else {
- /* ri */
- if (!scroll_reverse) {
- CAP_NOT_FOUND;
- ptext("(ri) Scroll-reverse not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(ri) Scroll-reverse start testing";
- augment = 1;
- }
- if (skip_pad_test(t, state, ch, start_message)) {
- return;
- }
- pad_test_startup(1);
- do {
- sprintf(temp, "%d\r", test_complete);
- put_str(temp);
- if (scroll_reverse && augment == 1) {
- tt_putp(scroll_reverse);
- } else {
- tt_putparm(parm_rindex, repeats, repeats, 0);
- }
- } while(still_testing());
- put_str("This line should be on the bottom.\r");
- if (scroll_reverse && augment == 1) {
- for (i = 1; i < lines; i++) {
- tt_putp(scroll_reverse);
- }
- } else {
- tt_putparm(parm_rindex, lines - 1, lines - 1, 0);
- }
- putln("The screen should have text on the bottom line.");
- sprintf(temp, "Scroll reverse %d line%s. ", augment,
- augment == 1 ? "" : "s");
- put_str(temp);
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_il(test_list, status, ch)
-**
-** Test (il) and (il1) Insert line
-*/
-static void
-pad_il(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- const char *start_message;
-
- if (t->flags & 1) {
- /* il */
- if (!parm_insert_line) {
- CAP_NOT_FOUND;
- ptext("(il) Insert-lines not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(il) Insert-lines start testing";
- } else {
- /* il1 */
- if (!insert_line) {
- CAP_NOT_FOUND;
- ptext("(il1) Insert-line not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(il1) Insert-line start testing";
- augment = 1;
- }
- if (skip_pad_test(t, state, ch, start_message)) {
- return;
- }
- pad_test_startup(1);
- do {
- sprintf(temp, "%d\r", test_complete);
- put_str(temp);
- if (insert_line && repeats == 1) {
- tt_putp(insert_line);
- } else {
- tt_putparm(parm_insert_line, repeats, repeats, 0);
- }
- } while(still_testing());
- put_str("This line should be on the bottom.\r");
- if (scroll_reverse && augment == 1) {
- for (i = 1; i < lines; i++) {
- tt_putp(insert_line);
- }
- } else {
- tt_putparm(parm_insert_line, lines - 1, lines - 1, 0);
- }
- putln("The screen should have text on the bottom line.");
- sprintf(temp, "Insert %d line%s. ", augment,
- augment == 1 ? "" : "s");
- put_str(temp);
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_indn(test_list, status, ch)
-**
-** Test (indn) and (ind) Scroll forward
-*/
-static void
-pad_indn(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- const char *start_message;
-
- if (t->flags & 1) {
- /* indn */
- if (!parm_index) {
- CAP_NOT_FOUND;
- ptext("(indn) Scroll-forward-n-lines not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(indn) Scroll-forward-n-lines start testing";
- } else {
- /* ind */
- if (!scroll_forward && over_strike) {
- CAP_NOT_FOUND;
- ptext("(ind) Scroll-forward not tested on overstrike terminals. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(ind) Scroll-forward start testing";
- augment = 1;
- }
- if (skip_pad_test(t, state, ch, start_message)) {
- return;
- }
- pad_test_startup(1);
- /* go to the bottom of the screen */
- home_down();
- do {
- sprintf(temp, "%d\r", test_complete);
- put_str(temp);
- if (augment > 1) {
- tt_putparm(parm_index, repeats, repeats, 0);
- } else {
- put_ind();
- }
- } while(still_testing());
- put_str("This line should be on the top.\r");
- if (augment == 1) {
- for (i = 1; i < lines; i++) {
- put_ind();
- }
- } else {
- tt_putparm(parm_index, lines - 1, lines - 1, 0);
- }
- go_home();
- sprintf(temp, "\nScroll forward %d line%s. ", augment,
- augment == 1 ? "" : "s");
- put_str(temp);
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_dl(test_list, status, ch)
-**
-** Test (dl) and (dl1) Delete lines
-*/
-static void
-pad_dl(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i = 0;
- const char *start_message;
-
- if (t->flags & 1) {
- /* dl */
- if (!parm_delete_line) {
- CAP_NOT_FOUND;
- ptext("(dl) Delete-lines not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(dl) Delete-lines start testing";
- } else {
- /* dl1 */
- if (!delete_line) {
- CAP_NOT_FOUND;
- ptext("(dl1) Delete-line not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(dl1) Delete-line start testing";
- augment = 1;
- }
- if (skip_pad_test(t, state, ch, start_message)) {
- return;
- }
- pad_test_startup(1);
- do {
- sprintf(temp, "%d\r", test_complete);
- if ((i & 0x7f) == 0 && augment < lines - 1) {
- go_home();
- putln(temp);
- }
- put_str(temp);
- if (repeats || !delete_line) {
- tt_putparm(parm_delete_line, repeats, repeats, 0);
- } else {
- tt_putp(delete_line);
- }
- } while(still_testing());
- home_down();
- put_str("This line should be on the top.");
- go_home();
- if (repeats || !delete_line) {
- tt_putparm(parm_delete_line, lines - 1, lines - 1, 0);
- } else {
- for (i = 1; i < lines; i++) {
- tt_putp(delete_line);
- }
- }
- sprintf(temp, "\nDelete %d line%s. ", augment,
- augment == 1 ? "" : "s");
- put_str(temp);
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_xl(test_list, status, ch)
-**
-** Test (il1) Insert and (dl1) Delete lines
-*/
-static void
-pad_xl(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (!insert_line && !delete_line) {
- /* quietly skip this test */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(il1) Insert-line, (dl1) Delete-line start testing")) {
- return;
- }
- put_clear();
- putln("\rThis text is written on the first line.");
- ptext("This sentence begins on the second line. As this");
- ptext(" test runs the bottom part of this paragraph will");
- ptext(" jump up and down. Don't worry, that's normal. When");
- ptext(" the jumping stops, the entire paragraph should");
- ptext(" still be on the screen and in the same place as when");
- ptext(" the test started. If this paragraph has scrolled");
- ptext(" off the top or bottom of the screen then the test");
- ptext(" has failed. Scrolling off the top of the screen");
- ptext(" usually means that the delete line capability is");
- ptext(" working better than the insert line capability. If");
- ptext(" the text scrolls off the bottom then delete line may");
- ptext(" be broken. If parts of the text are missing then");
- ptext(" you should get professional help.");
- put_crlf();
- go_home();
- put_newlines(2);
- pad_test_startup(0);
- do {
- tt_putp(insert_line);
- put_cr();
- tt_putp(delete_line);
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext("The top of the screen should have a paragraph of text. ");
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_scrc(test_list, status, ch)
-**
-** Test (sc) (rc) Save/restore cursor
-*/
-static void
-pad_scrc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!save_cursor || !restore_cursor) {
- CAP_NOT_FOUND;
- if (save_cursor) {
- ptext("(rc) Restore-cursor");
- } else
- if (restore_cursor) {
- ptext("(sc) Save-cursor");
- } else {
- ptext("(sc) Save-cursor, (rc) Restore-cursor");
- }
- ptext(" not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(sc) (rc) Save/Restore-cursor start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- for (i = 1; i < columns; i++) {
- tt_putp(save_cursor);
- putchp(letter);
- tt_putp(restore_cursor);
- putchp('X');
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(above_line);
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_csrind(test_list, status, ch)
-**
-** Test (csr) and (ind) Change scroll region and index.
-*/
-static void
-pad_csrind(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!change_scroll_region) {
- CAP_NOT_FOUND;
- ptext("(csr) Change-scroll-region not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(csr) Save/Restore-cursor, (ind) index start testing")) {
- return;
- }
- if (augment < 2) {
- augment = 2;
- }
- if (augment > lines - 1) {
- augment = lines - 1;
- }
- put_clear();
- ptext("This text is on the top line.");
- tt_putparm(change_scroll_region, 1, lines - augment, lines - 1);
- /* go to the bottom of the screen */
- home_down();
- pad_test_startup(0);
- do {
- sprintf(temp, "%d\r", test_complete);
- put_str(temp);
- put_ind();
- } while(still_testing());
- ptextln("(csr) is broken.");
- for (i = augment; i > 1; i--) {
- put_ind();
- }
- pad_test_shutdown(t, 0);
- ptext("All but top and bottom lines should be blank. ");
- pad_done_message(t, state, ch);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
- put_clear();
-}
-
-/*
-** pad_sccsrrc(test_list, status, ch)
-**
-** Test (sc) (csr) and (rc) Save/Change/Restore scroll region
-*/
-static void
-pad_sccsrrc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!save_cursor || !change_scroll_region || !restore_cursor) {
- /* quietly ignore this test */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(sc) (csr) (rc) Save/Change/Restore-cursor, start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- for (i = 1; i < columns; i++) {
- tt_putp(save_cursor);
- putchp(letter);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
- tt_putp(restore_cursor);
- putchp('X');
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(above_line);
- pad_done_message(t, state, ch);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-** pad_csr_nel(test_list, status, ch)
-**
-** Test (sc) (csr) (nel) and (rc) Save/Change/Restore scroll region
-*/
-static void
-pad_csr_nel(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!save_cursor || !change_scroll_region || !restore_cursor) {
- /* quietly ignore this test */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(csr) Change-scroll-region, (nel) newline start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- for (i = 0; i < lines; i++) {
- for (j = lines - i; j > 0; j--) {
- put_crlf();
- }
- tt_putp(save_cursor);
- tt_putparm(change_scroll_region, 1, i, lines - 1);
- tt_putp(restore_cursor);
- put_str(every_line);
- }
- tt_putp(save_cursor);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
- tt_putp(restore_cursor);
- } while(still_testing());
- pad_test_shutdown(t, 0);
- put_str(" ");
- pad_done_message(t, state, ch);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-** pad_csr_cup(test_list, status, ch)
-**
-** Test (csr) (cup) Change scroll region and cursor address
-*/
-static void
-pad_csr_cup(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!change_scroll_region || !cursor_address) {
- /* quietly ignore this test */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(csr) Change-scroll-region, (cup) cursor-address start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- for (i = 0; i < lines; i++) {
- for (j = lines - i; j > 0; j--) {
- put_crlf();
- }
- tt_putparm(change_scroll_region, 1, i, lines - 1);
- tt_putparm(cursor_address, 1, lines - 1, 0);
- put_str(every_line);
- }
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
- tt_putparm(cursor_address, 1, lines - 1, strlen(every_line));
- } while(still_testing());
- pad_test_shutdown(t, 0);
- put_str(" ");
- pad_done_message(t, state, ch);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-** pad_ht(test_list, status, ch)
-**
-** Test (ht) Tabs
-*/
-static void
-pad_ht(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!set_tab && init_tabs <= 0) {
- CAP_NOT_FOUND;
- ptext("(ht) Tab not tested. (hts) Set-tabs and (it) initial-tabs not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch, "(ht) Tab start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- /*
- it is not always possible to test tabs with caps
- that do not already have padding. The following
- test uses a mixed bag of tests in order to avoid
- this problem. Note: I do not scroll
- */
- if (auto_right_margin && can_go_home)
- for (i = 1, go_home(); i < lines - 2; i++) {
- for (j = 8; j < columns; j += 8) {
- putchp('\t');
- }
- put_str("A ");
- }
- if (cursor_down && can_go_home)
- for (i = 1, go_home(); i < lines - 2; i++) {
- for (j = 8; j < columns; j += 8) {
- putchp('\t');
- }
- put_str("D\r");
- tt_putp(cursor_down);
- }
- if (cursor_address)
- for (i = 1; i < lines - 2; i++) {
- tt_putparm(cursor_address, 1, i - 1, 0);
- for (j = 8; j < columns; j += 8) {
- putchp('\t');
- }
- put_str("C");
- }
- go_home();
- for (i = 1; i < lines - 2; i++) {
- for (j = 8; j < columns; j += 8) {
- putchp('\t');
- }
- putln("N");
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptextln("Letters on the screen other than Ns at the right margin indicate failure.");
- ptext("A-(am) D-(cud1) C-(cup) N-(nel) ");
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_smso(test_list, status, ch)
-**
-** Test (smso) (rmso) Enter/exit mode
-*/
-static void
-pad_smso(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!enter_standout_mode || !exit_standout_mode) {
- CAP_NOT_FOUND;
- ptext("(smso) (rmso) Enter/Exit-standout-mode not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(smso) (rmso) Enter/Exit-standout-mode start testing")) {
- return;
- }
- /*
- In terminals that emulate non-hidden attributes with hidden
- attributes, the amount of time that it takes to fill the screen
- with an attribute is nontrivial. The following test is designed to
- catch those delays
- */
- pad_test_startup(1);
- do {
- page_loop();
- j = magic_cookie_glitch > 0 ? magic_cookie_glitch : 0;
- for (i = 2 + j + j; i < columns;) {
- put_mode(enter_standout_mode);
- i += j + j + 2;
- putchp('X');
- put_mode(exit_standout_mode);
- putchp('X');
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(above_line);
- pad_done_message(t, state, ch);
- put_mode(exit_standout_mode);
-}
-
-/*
-** pad_smacs(test_list, status, ch)
-**
-** Test (smacs) (rmacs) Enter/exit altcharset mode
-*/
-static void
-pad_smacs(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- /* test enter even if exit is missing */
- if (!enter_alt_charset_mode) {
- CAP_NOT_FOUND;
- ptext("(smacs) Enter-altcharset-mode not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(smacs) (rmacs) Enter/Exit-altcharset-mode start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- j = magic_cookie_glitch > 0 ? magic_cookie_glitch : 0;
- for (i = 2 + j + j; i < columns;) {
- put_mode(enter_alt_charset_mode);
- i += j + j + 2;
- putchp(letter);
- put_mode(exit_alt_charset_mode);
- putchp(letter);
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext("Every other character is from the alternate character set. ");
- pad_done_message(t, state, ch);
- put_mode(exit_alt_charset_mode);
-}
-
-/*
-** pad_crash(test_list, status, ch)
-**
-** Test (clear) without padding
-*/
-static void
-pad_crash(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int save_xon_xoff;
-
- if (!clear_screen) {
- ptext("(clear) Clear-screen not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- ptext("If you would like to see if the terminal will really lock up.");
- ptextln(" I will send the clear screen sequence without the pads.");
- if (skip_pad_test(t, state, ch,
- "(clear) Clear-screen start crash testing")) {
- return;
- }
- save_xon_xoff = xon_xoff;
- xon_xoff = 1;
- pad_test_startup(0);
- do {
- put_str("Erase this!");
- tt_putp(clear_screen);
- } while(still_testing());
- xon_xoff = save_xon_xoff;
- pad_test_shutdown(t, 1);
- pad_done_message(t, state, ch);
-}
diff --git a/ncurses-5.2/tack/scan.c b/ncurses-5.2/tack/scan.c
deleted file mode 100644
index 83b884f..0000000
--- a/ncurses-5.2/tack/scan.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-/* scan mode keyboard support */
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-int scan_max; /* length of longest scan code */
-char **scan_up, **scan_down, **scan_name;
-int *scan_tested, *scan_length, *scan_value;
-
-static int shift_state;
-static char *str;
-static int debug_char_count;
-
-#define SHIFT_KEY 0x100
-#define CONTROL_KEY 0x200
-#define META_KEY 0x400
-#define CAPS_LOCK 0x800
-
-static const struct {
- const char *name;
- int type;
-} scan_special[] = {
- {"<shift>", SHIFT_KEY},
- {"<left shift>", SHIFT_KEY},
- {"<right shift>", SHIFT_KEY},
- {"<control>", CONTROL_KEY},
- {"<left control>", CONTROL_KEY},
- {"<right control>", CONTROL_KEY},
- {"<meta>", META_KEY},
- {"<left meta>", META_KEY},
- {"<right meta>", META_KEY},
- {"<caps lock>", CAPS_LOCK},
- {"<tab>", '\t'},
- {"<space>", ' '},
- {"<return>", '\r'},
- {"<linefeed>", '\n'},
- {"<formfeed>", '\f'},
- {"<backspace>", '\b'},
- {0, 0}
-};
-
-static void
-scan_blanks(void)
-{ /* scan past the white space */
- while (*str == ' ' || *str == '\t')
- str++;
-}
-
-static char *
-smash(void)
-{ /* convert a string to hex */
- char *s, *t;
- int ch, i, j;
-
- t = s = str;
- for (i = 0; (ch = *str); str++) {
- if (ch >= '0' && ch <= '9')
- j = ch - '0';
- else if (ch >= 'a' && ch <= 'f')
- j = 10 - 'a' + ch;
- else if (ch >= 'A' && ch <= 'F')
- j = 10 - 'A' + ch;
- else if (ch == ' ' || ch == '\t')
- break;
- else
- continue;
- if (i) {
- *s |= j;
- s++;
- } else
- *s = j << 4;
- i ^= 1;
- }
- *s = '\0';
- return t;
-}
-
-void
-scan_init(char *fn)
-{ /* read the scan mode key definitions */
- char *s, *sl;
- FILE *fp;
- int ch, i, j;
- char home[512];
-
- if ((str = getenv("HOME")))
- strcpy(home, str);
- else
- home[0] = '\0';
- fp = NULL;
- if ((str = getenv("KEYBOARD"))) {
- if (!(fp = fopen(str, "r")) && home[0]) {
- sprintf(temp, "%s/.scan.%s", home, str);
- fp = fopen(temp, "r");
- }
- }
- if (!fp) {
- sprintf(temp, ".scan.%s", fn);
- fp = fopen(temp, "r");
- }
- if (!fp && home[0]) {
- sprintf(temp, "%s/.scan.%s", home, fn);
- fp = fopen(temp, "r");
- }
- if (!fp) {
- ptext("Unable to open scanfile: ");
- ptextln(temp);
- bye_kids(1);
- return;
- }
- /*
- scan file format:
-
- <down value> <up value> <name>
-
- values are in hex. <name> may be any string of characters
-
- */
- scan_up = (char **) malloc(sizeof(char *) * MAX_SCAN);
- scan_down = (char **) malloc(sizeof(char *) * MAX_SCAN);
- scan_name = (char **) malloc(sizeof(char *) * MAX_SCAN);
- scan_tested = (int *) malloc(sizeof(int *) * MAX_SCAN);
- scan_length = (int *) malloc(sizeof(int *) * MAX_SCAN);
- scan_value = (int *) malloc(sizeof(int *) * MAX_SCAN);
- scan_up[0] = scan_down[0] = scan_name[0] = (char *) 0;
- str = (char *) malloc(4096); /* buffer space */
- sl = str + 4000; /* an upper limit */
- scan_max = 1;
- for (i = 0;;) {
- for (s = str; (ch = getc(fp)) != EOF;) {
- if (ch == '\n' || ch == '\r')
- break;
- *s++ = ch;
- }
- *s++ = '\0';
- if (ch == EOF)
- break;
- if (*str == '#' || *str == '\0')
- continue;
- scan_down[i] = smash();
- scan_blanks();
- scan_up[i] = smash();
- scan_blanks();
- scan_name[i] = str;
-
- scan_length[i] = strlen(scan_down[i]);
- ch = strlen(scan_up[i]) + scan_length[i];
- if (ch > scan_max)
- scan_max = ch;
-
- scan_value[i] = scan_name[i][0];
- if (scan_name[i][1]) /* multi-character name */
- for (j = 0; scan_special[j].name; j++) {
- if (!strcmp(scan_name[i], scan_special[j].name)) {
- scan_value[i] = scan_special[j].type;
- break;
- }
- }
-
- i++;
- if (str > sl) {
- str = (char *) malloc(4096);
- sl = str + 4000;
- } else
- str = s;
- }
- fclose(fp);
-#ifdef notdef
- for (i = 0; scan_down[i]; i++) {
- put_str(hex_expand_to(scan_down[i], 3));
- put_str(hex_expand_to(scan_up[i], 3));
- put_str(" ");
- put_str(scan_name[i]);
- put_crlf();
- }
- (void) wait_here();
-#endif
-}
-
-int
-scan_key(void)
-{ /* read a key and translate scan mode to
- ASCII */
- int i, j, ch;
- char buf[64];
-
- for (i = 1;; i++) {
- ch = getchar();
- if (ch == EOF)
- return EOF;
- if (debug_fp) {
- fprintf(debug_fp, "%02X ", ch);
- debug_char_count += 3;
- if (debug_char_count > 72) {
- fprintf(debug_fp, "\n");
- debug_char_count = 0;
- }
- }
- buf[i - 1] = ch;
- buf[i] = '\0';
- if (buf[0] & 0x80) { /* scan up */
- for (j = 0; scan_up[j]; j++) {
- if (i == scan_length[j] &&
- !strcmp(buf, scan_up[j])) {
- i = 0;
- shift_state &= ~scan_value[j];
- break;
- }
- }
- continue;
- }
- for (j = 0; scan_down[j]; j++) {
- if (i == scan_length[j] && !strcmp(buf, scan_down[j])) {
- i = 0;
- shift_state |= scan_value[j];
- ch = scan_value[j];
- if (ch == CAPS_LOCK)
- shift_state ^= SHIFT_KEY;
- if (ch >= 256)
- break;
- if (shift_state & SHIFT_KEY) {
- if (ch >= 0x60)
- ch -= 0x20;
- else if (ch >= 0x30 && ch <= 0x3f)
- ch -= 0x10;
- }
- if (shift_state & CONTROL_KEY) {
- if ((ch | 0x20) >= 0x60 &&
- (ch | 0x20) <= 0x7f)
- ch = (ch | 0x20) - 0x60;
- }
- if (shift_state & META_KEY)
- ch |= 0x80;
- return ch;
- }
- }
- if (i > scan_max)
- i = 1;
- }
-}
diff --git a/ncurses-5.2/tack/sync.c b/ncurses-5.2/tack/sync.c
deleted file mode 100644
index 3973d5b..0000000
--- a/ncurses-5.2/tack/sync.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-#include <time.h>
-
-MODULE_ID("$Id$")
-
-/* terminal-synchronization and performance tests */
-
-static void sync_home(struct test_list *, int *, int *);
-static void sync_lines(struct test_list *, int *, int *);
-static void sync_clear(struct test_list *, int *, int *);
-static void sync_summary(struct test_list *, int *, int *);
-
-struct test_list sync_test_list[] = {
- {MENU_NEXT, 0, 0, 0, "b) baud rate test", sync_home, 0},
- {MENU_NEXT, 0, 0, 0, "l) scroll performance", sync_lines, 0},
- {MENU_NEXT, 0, 0, 0, "c) clear screen performance", sync_clear, 0},
- {MENU_NEXT, 0, 0, 0, "p) summary of results", sync_summary, 0},
- {0, 0, 0, 0, txt_longer_test_time, longer_test_time, 0},
- {0, 0, 0, 0, txt_shorter_test_time, shorter_test_time, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-struct test_menu sync_menu = {
- 0, 'n', 0,
- "Performance tests", "perf", "n) run standard tests",
- sync_test, sync_test_list, 0, 0, 0
-};
-
-int tty_can_sync; /* TRUE if tty_sync_error() returned FALSE */
-int tty_newline_rate; /* The number of newlines per second */
-int tty_clear_rate; /* The number of clear-screens per second */
-int tty_cps; /* The number of characters per second */
-
-#define TTY_ACK_SIZE 64
-
-int ACK_terminator; /* terminating ACK character */
-int ACK_length; /* length of ACK string */
-const char *tty_ENQ; /* enquire string */
-char tty_ACK[TTY_ACK_SIZE]; /* ACK response, set by tty_sync_error() */
-
-/*****************************************************************************
- *
- * Terminal synchronization.
- *
- * These functions handle the messy business of enq-ack handshaking
- * for timing purposes.
- *
- *****************************************************************************/
-
-int
-tty_sync_error(void)
-{
- int ch, trouble, ack;
-
- trouble = FALSE;
- for (;;) {
- tt_putp(tty_ENQ); /* send ENQ */
- ch = getnext(STRIP_PARITY);
- event_start(TIME_SYNC); /* start the timer */
-
- /*
- The timer doesn't start until we get the first character.
- After that I expect to get the remaining characters of
- the acknowledge string in a short period of time. If
- that is not true then these characters are coming from
- the user and we need to send the ENQ sequence out again.
- */
- for (ack = 0; ; ) {
- if (ack < TTY_ACK_SIZE - 2) {
- tty_ACK[ack] = ch;
- tty_ACK[ack + 1] = '\0';
- }
- if (ch == ACK_terminator) {
- return trouble;
- }
- if (++ack >= ACK_length) {
- return trouble;
- }
- ch = getnext(STRIP_PARITY);
- if (event_time(TIME_SYNC) > 400000) {
- break;
- }
- }
-
- set_attr(0); /* just in case */
- put_crlf();
- if (trouble) {
- /* The terminal won't sync. Life is not good. */
- return TRUE;
- }
- put_str(" -- sync -- ");
- trouble = TRUE;
- }
-}
-
-/*
-** flush_input()
-**
-** Throw away any output.
-*/
-void
-flush_input(void)
-{
- if (tty_can_sync == SYNC_TESTED && ACK_terminator >= 0) {
- (void) tty_sync_error();
- } else {
- spin_flush();
- }
-}
-
-/*
-** probe_enq_ok()
-**
-** does the terminal do enq/ack handshaking?
-*/
-static void
-probe_enq_ok(void)
-{
- int tc, len, ulen;
-
- put_str("Testing ENQ/ACK, standby...");
- fflush(stdout);
- can_test("u8 u9", FLAG_TESTED);
-
- tty_ENQ = user9 ? user9 : "\005";
- tc_putp(tty_ENQ);
- event_start(TIME_SYNC); /* start the timer */
- read_key(tty_ACK, TTY_ACK_SIZE - 1);
-
- if (event_time(TIME_SYNC) > 400000 || tty_ACK[0] == '\0') {
- /* These characters came from the user. Sigh. */
- tty_can_sync = SYNC_FAILED;
- ptext("\nThis program expects the ENQ sequence to be");
- ptext(" answered with the ACK character. This will help");
- ptext(" the program reestablish synchronization when");
- ptextln(" the terminal is overrun with data.");
- ptext("\nENQ sequence from (u9): ");
- putln(expand(tty_ENQ));
- ptext("ACK received: ");
- putln(expand(tty_ACK));
- len = user8 ? strlen(user8) : 0;
- sprintf(temp, "Length of ACK %d. Expected length of ACK %d.",
- (int) strlen(tty_ACK), len);
- ptextln(temp);
- if (len) {
- temp[0] = user8[len - 1];
- temp[1] = '\0';
- ptext("Terminating character found in (u8): ");
- putln(expand(temp));
- }
- return;
- }
-
- tty_can_sync = SYNC_TESTED;
- if ((len = strlen(tty_ACK)) == 1) {
- /* single character acknowledge string */
- ACK_terminator = tty_ACK[0];
- ACK_length = 4096;
- return;
- }
- tc = tty_ACK[len - 1];
- if (user8) {
- ulen = strlen(user8);
- if (tc == user8[ulen - 1]) {
- /* ANSI style acknowledge string */
- ACK_terminator = tc;
- ACK_length = 4096;
- return;
- }
- }
- /* fixed length acknowledge string */
- ACK_length = len;
- ACK_terminator = -2;
-}
-
-/*
-** verify_time()
-**
-** verify that the time tests are ready to run.
-** If the baud rate is not set then compute it.
-*/
-void
-verify_time(void)
-{
- int status, ch;
-
- if (tty_can_sync == SYNC_FAILED) {
- return;
- }
- probe_enq_ok();
- put_crlf();
- if (tty_can_sync == SYNC_TESTED) {
- put_crlf();
- if (ACK_terminator >= 0) {
- ptext("ACK terminating character: ");
- temp[0] = ACK_terminator;
- temp[1] = '\0';
- ptextln(expand(temp));
- } else {
- sprintf(temp, "Fixed length ACK, %d characters",
- ACK_length);
- ptextln(temp);
- }
- }
- if (tty_baud_rate == 0) {
- sync_home(&sync_test_list[0], &status, &ch);
- }
-}
-
-/*****************************************************************************
- *
- * Terminal performance tests
- *
- * Find out how fast the terminal can:
- * 1) accept characters
- * 2) scroll the screen
- * 3) clear the screen
- *
- *****************************************************************************/
-
-/*
-** sync_home(test_list, status, ch)
-**
-** Baudrate test
-*/
-void
-sync_home(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j, k;
- unsigned long rate;
-
- if (!cursor_home && !cursor_address && !row_address) {
- ptext("Terminal can not home cursor. ");
- generic_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(home) Start baudrate search")) {
- return;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (j = 1; j < lines; j++) {
- for (k = 0; k < columns; k++) {
- if (k & 0xF) {
- put_this(letter);
- } else {
- put_this('.');
- }
- }
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, auto_right_margin == 0);
- /* note: tty_frame_size is the real framesize times two.
- This takes care of half bits. */
- rate = (tx_cps * tty_frame_size) >> 1;
- if (rate > tty_baud_rate) {
- tty_baud_rate = rate;
- }
- if (tx_cps > tty_cps) {
- tty_cps = tx_cps;
- }
- sprintf(temp, "%d characters per second. Baudrate %d ", tx_cps, j);
- ptext(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** sync_lines(test_list, status, ch)
-**
-** How many newlines/second?
-*/
-static void
-sync_lines(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j;
-
- if (skip_pad_test(t, state, ch,
- "(nel) Start scroll performance test")) {
- return;
- }
- pad_test_startup(0);
- repeats = 100;
- do {
- sprintf(temp, "%d", test_complete);
- put_str(temp);
- put_newlines(repeats);
- } while(still_testing());
- pad_test_shutdown(t, 0);
- j = sliding_scale(tx_count[0], 1000000, usec_run_time);
- if (j > tty_newline_rate) {
- tty_newline_rate = j;
- }
- sprintf(temp, "%d linefeeds per second. ", j);
- ptext(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** sync_clear(test_list, status, ch)
-**
-** How many clear-screens/second?
-*/
-static void
-sync_clear(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j;
-
- if (!clear_screen) {
- ptext("Terminal can not clear-screen. ");
- generic_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(clear) Start clear-screen performance test")) {
- return;
- }
- pad_test_startup(0);
- repeats = 20;
- do {
- sprintf(temp, "%d", test_complete);
- put_str(temp);
- for (j = 0; j < repeats; j++) {
- put_clear();
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- j = sliding_scale(tx_count[0], 1000000, usec_run_time);
- if (j > tty_clear_rate) {
- tty_clear_rate = j;
- }
- sprintf(temp, "%d clear-screens per second. ", j);
- ptext(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** sync_summary(test_list, status, ch)
-**
-** Print out the test results.
-*/
-static void
-sync_summary(
- struct test_list *t,
- int *state,
- int *ch)
-{
- char size[32];
-
- put_crlf();
- ptextln("Terminal size characters/sec linefeeds/sec clears/sec");
- sprintf(size, "%dx%d", columns, lines);
- sprintf(temp, "%-10s%-11s%11d %11d %11d", tty_basename, size,
- tty_cps, tty_newline_rate, tty_clear_rate);
- ptextln(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** sync_test(menu)
-**
-** Run at the beginning of the pad tests and function key tests
-*/
-void
-sync_test(
- struct test_menu *menu)
-{
- control_init();
- if (tty_can_sync == SYNC_NOT_TESTED) {
- verify_time();
- }
- if (menu->menu_title) {
- put_crlf();
- ptextln(menu->menu_title);
- }
-}
-
-/*
-** sync_handshake(test_list, status, ch)
-**
-** Test or retest the ENQ/ACK handshake
-*/
-void
-sync_handshake(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- tty_can_sync = SYNC_NOT_TESTED;
- verify_time();
-}
diff --git a/ncurses-5.2/tack/sysdep.c b/ncurses-5.2/tack/sysdep.c
deleted file mode 100644
index 2a6657b..0000000
--- a/ncurses-5.2/tack/sysdep.c
+++ /dev/null
@@ -1,498 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-/*
- * Operating system dependent functions. We assume the POSIX API.
- * Note: on strict-POSIX systems (including BSD/OS) the select_delay_type
- * global has no effect.
- */
-
-#if defined(__BEOS__)
-#include <OS.h>
-#endif
-
-#include <tack.h>
-
-#include <signal.h>
-#include <term.h>
-#include <errno.h>
-
-#if 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
-
-MODULE_ID("$Id$")
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-#ifdef TERMIOS
-#define PUT_TTY(fd, buf) tcsetattr(fd, TCSAFLUSH, buf)
-#else
-#define PUT_TTY(fd, buf) stty(fd, buf)
-#endif
-
-/* globals */
-int tty_frame_size; /* asynch frame size times 2 */
-unsigned long tty_baud_rate; /* baud rate - bits per second */
-int not_a_tty; /* TRUE if output is not a tty (i.e. pipe) */
-int nodelay_read; /* TRUE if NDELAY is set */
-
-#ifdef TERMIOS
-#define TTY_IS_NOECHO !(new_modes.c_lflag & ECHO)
-#define TTY_IS_OUT_TRANS (new_modes.c_oflag & OPOST)
-#define TTY_IS_CHAR_MODE !(new_modes.c_lflag & ICANON)
-#define TTY_WAS_CS8 ((old_modes.c_cflag & CSIZE) == CS8)
-#define TTY_WAS_XON_XOFF (old_modes.c_iflag & (IXON|IXOFF))
-#else
-#define TTY_IS_NOECHO !(new_modes.sg_flags & (ECHO))
-#define TTY_IS_OUT_TRANS (new_modes.sg_flags & (CRMOD))
-#define TTY_IS_CHAR_MODE (new_modes.sg_flags & (RAW|CBREAK))
-#define TTY_WAS_CS8 (old_modes.sg_flags & (PASS8))
-#define TTY_WAS_XON_XOFF (old_modes.sg_flags & (TANDEM|MDMBUF|DECCTQ))
-#endif
-
-static TTY old_modes, new_modes;
-
-void catchsig(void);
-
-/*
- * These are a sneaky way of conditionalizing bit unsets so strict-POSIX
- * systems won't see them.
- */
-#ifndef XCASE
-#define XCASE 0
-#endif
-#ifndef OLCUC
-#define OLCUC 0
-#endif
-#ifndef IUCLC
-#define IUCLC 0
-#endif
-#ifndef TABDLY
-#define TABDLY 0
-#endif
-#ifndef IXANY
-#define IXANY 0
-#endif
-
-void
-tty_raw(int minch GCC_UNUSED, int mask)
-{ /* set tty to raw noecho */
- new_modes = old_modes;
-#ifdef TERMIOS
-#if HAVE_SELECT
- new_modes.c_cc[VMIN] = 1;
-#else
- new_modes.c_cc[VMIN] = minch;
-#endif
- new_modes.c_cc[VTIME] = 2;
- new_modes.c_lflag &=
- ~(ISIG | ICANON | XCASE | ECHO | ECHOE | ECHOK | ECHONL);
-#ifdef LOBLK
- new_modes.c_lflag &= ~LOBLK;
-#endif
- new_modes.c_oflag &= ~(OPOST | OLCUC | TABDLY);
- if (mask == ALLOW_PARITY) {
- new_modes.c_cflag &= ~(CSIZE | PARENB | HUPCL);
- new_modes.c_cflag |= CS8;
- }
- new_modes.c_iflag &=
- ~(IGNBRK | BRKINT | IGNPAR | PARMRK | INPCK | ISTRIP | INLCR | IGNCR | ICRNL |
- IUCLC | IXON | IXANY | IXOFF);
-#else
- new_modes.sg_flags |= RAW;
-#endif
- if (not_a_tty)
- return;
- PUT_TTY(fileno(stdin), &new_modes);
-}
-
-void
-tty_set(void)
-{ /* set tty to special modes */
- new_modes = old_modes;
-#ifdef TERMIOS
- new_modes.c_cc[VMIN] = 1;
- new_modes.c_cc[VTIME] = 1;
- new_modes.c_lflag &= ~(ISIG | ICANON | ECHO | ECHOE | ECHOK | ECHONL);
-#if defined(ONLCR) && defined(OCRNL) && defined(ONLRET) && defined(OFILL)
- new_modes.c_oflag &= ~(ONLCR | OCRNL | ONLRET | OFILL);
-#else
- new_modes.c_oflag &= ~(OPOST);
-#endif
- if (char_mask == ALLOW_PARITY)
- new_modes.c_iflag &= ~ISTRIP;
- switch (select_xon_xoff) {
- case 0:
- new_modes.c_iflag &= ~(IXON | IXOFF);
- break;
- case 1:
-#if defined(sequent) && sequent
- /* the sequent System V emulation is broken */
- new_modes = old_modes;
- new_modes.c_cc[VEOL] = 6; /* control F (ACK) */
-#endif
- new_modes.c_iflag |= IXON | IXOFF;
- break;
- }
- switch (select_delay_type) {
- case 0:
-#ifdef NLDLY
- new_modes.c_oflag &=
- ~(NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY);
-#endif /* NLDLY */
- break;
- case 1:
-#ifdef NLDLY
- new_modes.c_oflag &=
- ~(NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY);
-#endif /* NLDLY */
-#ifdef NL1
- new_modes.c_oflag |= NL1 | CR2;
-#endif /* NL1 */
- break;
- }
- if (!(new_modes.c_oflag & ~OPOST))
- new_modes.c_oflag &= ~OPOST;
-#else
- new_modes.sg_flags |= RAW;
- if (not_a_tty)
- return;
-#endif
- PUT_TTY(fileno(stdin), &new_modes);
-}
-
-
-void
-tty_reset(void)
-{ /* reset the tty to the original modes */
- fflush(stdout);
- if (not_a_tty)
- return;
- PUT_TTY(fileno(stdin), &old_modes);
-}
-
-
-void
-tty_init(void)
-{ /* ATT terminal init */
-#if defined(F_GETFL) && defined(O_NDELAY)
- int flags;
-
- flags = fcntl(fileno(stdin), F_GETFL, 0);
- nodelay_read = flags & O_NDELAY;
-#else
- nodelay_read = FALSE;
-#endif
- not_a_tty = FALSE;
- if (GET_TTY(fileno(stdin), &old_modes) == -1) {
- if (errno == ENOTTY) {
- tty_frame_size = 20;
- not_a_tty = TRUE;
- return;
- }
- printf("tcgetattr error: %d\n", errno);
- exit(1);
- }
- /* if TAB3 is set then setterm() wipes out tabs (ht) */
- new_modes = old_modes;
-#ifdef TERMIOS
-#ifdef TABDLY
- new_modes.c_oflag &= ~TABDLY;
-#endif /* TABDLY */
-#endif
- if (PUT_TTY(fileno(stdin), &new_modes) == -1) {
- printf("tcsetattr error: %d\n", errno);
- exit(1);
- }
-#ifdef sequent
- /* the sequent ATT emulation is broken soooo. */
- old_modes.c_cflag &= ~(CSIZE | CSTOPB);
- old_modes.c_cflag |= CS7 | PARENB;
-#endif
- catchsig();
-#ifdef TERMIOS
- switch (old_modes.c_cflag & CSIZE) {
-#if defined(CS5) && (CS5 != 0)
- case CS5:
- tty_frame_size = 10;
- break;
-#endif
-#if defined(CS6) && (CS6 != 0)
- case CS6:
- tty_frame_size = 12;
- break;
-#endif
-#if defined(CS7) && (CS7 != 0)
- case CS7:
- tty_frame_size = 14;
- break;
-#endif
-#if defined(CS8) && (CS8 != 0)
- case CS8:
- tty_frame_size = 16;
- break;
-#endif
- }
- tty_frame_size += 2 +
- ((old_modes.c_cflag & PARENB) ? 2 : 0) +
- ((old_modes.c_cflag & CSTOPB) ? 4 : 2);
-#else
- tty_frame_size = 6 +
- (old_modes.sg_flags & PASS8) ? 16 : 14;
-#endif
-}
-
-/*
-** stty_query(question)
-**
-** Does the current driver settings have this property?
-*/
-int
-stty_query(int q)
-{
- switch (q) {
- case TTY_NOECHO:
- return TTY_IS_NOECHO;
- case TTY_OUT_TRANS:
- return TTY_IS_OUT_TRANS;
- case TTY_CHAR_MODE:
- return TTY_IS_CHAR_MODE;
- }
- return (-1);
-}
-
-/*
-** initial_stty_query(question)
-**
-** Did the initial driver settings have this property?
-*/
-int
-initial_stty_query(int q)
-{
- switch (q) {
- case TTY_8_BIT:
- return TTY_WAS_CS8;
- case TTY_XON_XOFF:
- return TTY_WAS_XON_XOFF;
- }
- return (-1);
-}
-
-#if HAVE_SELECT && defined(FD_ZERO)
-static int
-char_ready(void)
-{
- int n;
- fd_set ifds;
- struct timeval tv;
-
- FD_ZERO(&ifds);
- FD_SET(fileno(stdin), &ifds);
- tv.tv_sec = 0;
- tv.tv_usec = 200000;
- n = select(fileno(stdin)+1, &ifds, NULL, NULL, &tv);
- return (n != 0);
-}
-
-#else
-#ifdef FIONREAD
-int
-char_ready(void)
-{
- int i, j;
-
- /* the following loop has to be tuned for each computer */
- for (j = 0; j < 1000; j++) {
- ioctl(fileno(stdin), FIONREAD, &i);
- if (i)
- return i;
- }
- return i;
-}
-
-#else
-#if defined(__BEOS__)
-int
-char_ready(void)
-{
- int n = 0;
- int howmany = ioctl(0, 'ichr', &n);
- return (howmany >= 0 && n > 0);
-}
-#else
-#define char_ready() 1
-#endif
-#endif
-#endif
-
-/*
-** spin_flush()
-**
-** Wait for the input stream to stop.
-** Throw away all input characters.
-*/
-void
-spin_flush(void)
-{
- unsigned char buf[64];
-
- fflush(stdout);
- event_start(TIME_FLUSH); /* start the timer */
- do {
- if (char_ready()) {
- (void) read(fileno(stdin), &buf, sizeof(buf));
- }
- } while (event_time(TIME_FLUSH) < 400000);
-}
-
-/*
-** read_key(input-buffer, length-of-buffer)
-**
-** read one function key from the input stream.
-** A null character is converted to 0x80.
-*/
-void
-read_key(char *buf, int max)
-{
- int got, ask, i, l;
- char *s;
-
- *buf = '\0';
- s = buf;
- fflush(stdout);
- /* ATT unix may return 0 or 1, Berkeley Unix should be 1 */
- while (read(fileno(stdin), s, 1) == 0);
- ++s;
- --max;
- while (max > 0 && (ask = char_ready())) {
- if (ask > max) {
- ask = max;
- }
- if ((got = read(fileno(stdin), s, ask))) {
- s += got;
- } else {
- break;
- }
- max -= got;
- }
- *s = '\0';
- l = s - buf;
- for (s = buf, i = 0; i < l; i++) {
- if ((*s & 0x7f) == 0) {
- /* convert nulls to 0x80 */
- *(unsigned char *)s = 128;
- } else {
- /* strip high order bits (if any) */
- *s &= char_mask;
- }
- }
-}
-
-
-void
-ignoresig(void)
-{
- /* ignore signals */
- signal(SIGINT, SIG_IGN);
- signal(SIGHUP, SIG_IGN);
- signal(SIGQUIT, SIG_IGN);
- signal(SIGTERM, SIG_IGN);
- signal(SIGALRM, SIG_IGN);
-}
-
- /*
- onintr( )
-
- is the interrupt handling routine onintr turns off interrupts while doing
- clean-up
-
- onintr always exits fatally
- */
-
-
-static RETSIGTYPE
-onintr(int sig GCC_UNUSED)
-{
- ignoresig();
- tty_reset();
- exit(1);
-}
-
-
- /*
- catchsig( )
-
- set up to field interrupts (via function onintr( )) so that if interrupted
- we can restore the correct terminal modes
-
- catchsig simply returns
- */
-
-
-void
-catchsig(void)
-{
- if ((signal(SIGINT, SIG_IGN)) == SIG_DFL)
- signal(SIGINT, onintr);
-
- if ((signal(SIGHUP, SIG_IGN)) == SIG_DFL)
- signal(SIGHUP, onintr);
-
- if ((signal(SIGQUIT, SIG_IGN)) == SIG_DFL)
- signal(SIGQUIT, onintr);
-
- if ((signal(SIGTERM, SIG_IGN)) == SIG_DFL)
- signal(SIGTERM, onintr);
-
-}
-
-/*
-** alarm_event(sig)
-**
-** Come here for an alarm event
-*/
-static void
-alarm_event(
- int sig GCC_UNUSED)
-{
- no_alarm_event = 0;
-}
-
-/*
-** set_alarm_clock(seconds)
-**
-** Set the alarm clock to fire in <seconds>
-*/
-void
-set_alarm_clock(
- int seconds)
-{
- signal(SIGALRM, alarm_event);
- no_alarm_event = 1;
- (void) alarm(seconds);
-}
diff --git a/ncurses-5.2/tack/tack.1 b/ncurses-5.2/tack/tack.1
deleted file mode 100644
index be74e58..0000000
--- a/ncurses-5.2/tack/tack.1
+++ /dev/null
@@ -1,311 +0,0 @@
-.TH tack 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBtack\fR - \fIterminfo\fR action checker
-.SH SYNOPSIS
-\fBtack\fR [-itV] [term]
-.br
-.SH DESCRIPTION
-The \fBtack\fR program has three purposes:
-(1) to help you build a new terminfo entry describing an unknown terminal,
-(2) to test the correctness of an existing entry, and
-(3) to develop the correct pad timings needed to ensure that screen updates
-don't fall behind the incoming data stream.
-.PP
-\fBTack\fR presents a series of screen-painting and interactive
-tests in ways which are intended to make any mismatches between the
-terminfo entry and reality visually obvious.
-\fBTack\fR also provides tools that can help in understanding how
-the terminal operates.
-.SS OPTIONS
-.TP
-.I "\-i"
-Usually \fBtack\fR will send the reset and init strings to the terminal
-when the program starts up. The \fI-i\fR option will inhibit the
-terminal initialization.
-.TP
-.I "\-t"
-Tell \fBtack\fR to override the terminfo settings for basic terminal
-functions. When this option is set \fBtack\fR will translate
-(cr) to \\r, (cud1) to \\n, (ind) to \\n, (nel) to \\r\\n,
-(cub1) to \\b, (bel) to \\007, (ff) to \\f and (ht) to \\t.
-.TP
-.I "\-V"
-Display the version information and exit.
-.TP
-.I "term"
-Terminfo terminal name to be tested. If not present then the $TERM
-environment variable will be used.
-.SH OVERVIEW
-Since \fBtack\fR is designed to test terminfo's it is not possible
-to rely on the correctness of the terminfo data base. Because of this
-the menuing system used with \fBtack\fR is vary primitive. When a
-menu is printed it will scroll the entire screen. To compensate
-for this verbose menu system \fBtack\fR permits menu selection
-type ahead.
-If you already know what action you would like \fBtack\fR to perform
-then you can enter that value immediately and avoid the menu display.
-When in doubt the question mark (?) is a good character to type.
-A carriage return will execute the default action. These default
-actions are designed to run all the standard tests.
-.PP
-When \fBtack\fR first comes up it will display some basic information
-about the terminal. Take some time to verify this information.
-If it is wrong many of the subsequent tests will fail. The most
-important item is the screen size. If the screen size is wrong there
-is no point in proceeding. (home) and (clear) are also critical
-to the success of subsequent tests. The values of (cr) (ind)
-(cub1) and (ht) may effect the tests if they are defined incorrectly.
-If they are undefined \fBtack\fR will set them to reasonable defaults.
-The last two entries on the display are the enquire and acknowledge strings.
-These strings are taken from the user strings (u9) and (u8).
-.PP
-By now you must be wondering why the terminfo names are enclosed
-in parenthesis. This has no profound meaning other than it makes
-them stand out. The \fBtack\fR program uses this convention any time
-it displays a terminfo name. Remember \fBtack\fR is designed to
-rely on as little of the terminfo entry as possible.
-.SH CREATING NEW ENTRIES
-\fBTack\fR has a number of tools that are designed to help gather
-information about the terminal. Although these functions are not
-dependent on terminal type, you may wish to execute \fBtack\fR
-with options \fI\-it\fR. This will turn off initialization
-and default the standard entries.
-.PP
-These tools may be reached from the main menu by selecting
-the 'tools' entry.
-.PP
-\fBEcho tool\fR: All data typed from the keyboard will be echoed back
-to the terminal. Control characters are not translated to the up arrow format
-but are sent as control characters. This allows you to test an escape
-sequence and see what it actually does. You may also elect to
-\fBenable hex output on echo tool\fR this will echo the characters in
-hexadecimal. Once the test is running you may enter the 'lines'
-or 'columns' keywords which will display a pattern that will help
-you determine your screen size. A complete list of keywords will
-be displayed when the test starts. Type 'help' to redisplay
-the list of available commands.
-.PP
-\fBReply tool\fR: This tool acts much like the echo tool, but
-control characters that are sent from the terminal more than one character
-after a carriage return will be expanded to the up arrow format. For example
-on a standard ANSI terminal you may type:
-
- CR ESC [ c
-
-and the response will be echoed as something like:
-
- ^[ [ ? 6 c
-.PP
-\fBANSI sgr display\fR: This test assumes you have an ANSI terminal. It
-goes through attribute numbers 0 to 79, displaying each in turn and using that
-SGR number to write the text. This shows you which of the SGR
-modes are actually implemented by the terminal. Note: some terminals (such as
-Tektronix color) use the private use characters to augment the functionality of
-the SGR command. These private use characters may be interjected into the
-escape sequence by typing the character ( <, =, >, ? ) after the original
-display has been shown.
-.PP
-\fBANSI status reports\fR: This test queries the terminal in standard
-ANSI/VT-100 fashion. The results of this test may help
-determine what options are supported by your terminal.
-.PP
-\fBANSI character sets\fR: This test displays the character sets
-available on a ANSI/VT-100 style terminal.
-Character sets on a real VT-100 terminal are usually defined
-with smacs=\\E(0 and rmacs=\\E(B. The first character after the
-escape defines the font bank. The second character defines the
-character set. This test allows you to view any of the possible
-combinations. Private use character sets are defined by the digits.
-Standard character sets are located in the alphabetic range.
-.SH VERIFYING AN EXISTING ENTRY
-.PP
-You can verify the correctness of an entry with the `begin testing'
-function. This entry is the default action and will be chosen
-if you hit carriage return (or enter). This will bring up a
-secondary menu that allows you to select more specific tests.
-.PP
-The general philosophy of the program is, for each capability, to send an
-appropriate test pattern to the terminal then send a description of
-what the user should expect. Occasionally (as when checking function-key
-capabilities) the program will ask you to enter input for it to check.
-.PP
-If the test fails then you have the option of dynamically changing
-the terminfo entry and re-running the test. This is done with
-the 'edit terminfo' menu item. The edit submenu allows you to change
-the offending terminfo entry and immediately retest the capability.
-The edit menu lets you do other things with the terminfo, such as;
-display the entire terminfo entry,
-display which caps have been tested and display which caps cannot
-be tested. This menu also allows you to write the newly modified
-terminfo to disc. If you have made any modifications to the
-terminfo \fBtack\fR will ask you if you want to save the file
-to disc before it exits. The filename will be the same as the terminal name.
-After the program exits you can run the tic(1M) compiler on the
-new terminfo to install it in the terminfo data base.
-.PP
-.SH CORRECTING PAD TIMINGS
-.SS Theory of Overruns and Padding
-.PP
-Some terminals require significant amounts of time (that is, more than one
-transmitted-character interval) to do screen updates that change large
-portions of the screen, such as screen clears, line insertions,
-line deletions, and scrolls (including scrolls triggered by line feeds
-or a write to the lowest, right-hand-most cell of the screen).
-.PP
-If the computer continues to send characters to the terminal while one
-of these time-consuming operations is going on, the screen may be garbled.
-Since the length of a character transmission time varies inversely with
-transmission speed in cps, entries which function at lower speeds may
-break at higher speeds.
-.PP
-Similar problems result if the host machine is simply sending characters at a
-sustained rate faster than the terminal can buffer and process them. In either
-case, when the terminal cannot process them and can't tell the host to stop
-soon enough, it will just drop them. The dropped characters could be text,
-escape sequences or the escape character itself, causing some really
-strange-looking displays. This kind of glitch is called an \fIoverrun\fR.
-.PP
-In terminfo entries, you can attach a \fBpad time\fR to each string capability
-that is a number of milliseconds to delay after sending it. This will give
-the terminal time to catch up and avoid overruns.
-.PP
-If you are running a software terminal emulator, or you are on an X pseudo-tty,
-or your terminal is on an RS-232C line which correctly handles RTS/CTS
-hardware flow control, then pads are not strictly necessary. However, some
-display packages (such as ncurses(3X)) use the pad counts to calculate
-the fastest way to implement certain functions.
-For example: scrolling the screen may be faster than deleting the top line.
-.PP
-One common way to avoid overruns is with XON/XOFF handshaking.
-But even this handshake may have problems at high baud rates.
-This is a result of the way XON/XOFF works. The terminal tells
-the host to stop with an XOFF. When the host gets this character, it stops
-sending. However, there is a small amount of time between the stop request and
-the actual stop. During this window, the terminal must continue to accept
-characters even though it has told the host to stop. If the terminal sends
-the stop request too late, then its internal buffer will overflow. If it sends
-the stop character too early, then the terminal is not getting the most
-efficient use out of its internal buffers. In a real application at high baud
-rates, a terminal could get a dozen or more characters before the host gets
-around to suspending transmission. Connecting the terminal over a network
-will make the problem much worse.
-.PP
-(RTS/CTS handshaking does not have this problem because the UARTs are
-signal-connected and the "stop flow" is done at the lowest level, without
-software intervention).
-.PP
-.SS Timing your terminal
-.PP
-In order to get accurate timings from your terminal \fBtack\fR
-needs to know when the terminal has finished processing all the
-characters that were sent. This requires a different type of handshaking
-than the XON/XOFF that is supported by most terminals. \fBTack\fR
-needs to send a request to the terminal and wait for its reply.
-Many terminals will respond with an ACK when they receive an ENQ.
-This is the preferred method since the sequence is short.
-ANSI/VT-100 style terminals can mimic this handshake with the
-escape sequence that requests 'primary device attributes'.
-
- ESC [ c
-
-The terminal will respond with a sequence like:
-
- ESC [ ? 1 ; 0 c
-
-\fBTack\fR assumes that (u9) is the enquire sequence and that (u8) is the
-acknowledge string. A VT-100 style terminal could set u9=\\E[c
-and u8=\\E[?1;0c.
-Acknowledge strings fall into two categories.
-1) Strings with a unique terminating character and,
-2) strings of fixed length.
-The acknowledge string for the VT-100 is of the first type since
-it always ends with the letter 'c'. Some Tektronics terminals
-have fixed length acknowledge strings. \fBTack\fR supports both
-types of strings by scanning for the terminating character until
-the length of the expected acknowledge string has arrived.
-(u8) should be set to some typical acknowledge that will be
-returned when (u9) is sent.
-.PP
-\fBTack\fR will test this sequence before running any of the pad
-tests or the function key tests. \fBTack\fR will ask you the following:
-
- Hit lower case g to start testing...
-
-After it sends this message it will send the enquire string.
-It will then read characters from the terminal until it sees the
-letter g.
-.PP
-.SS Testing and Repairing Pad Timings
-.PP
-The pad timings in distributed terminfo entries are often incorrect. One
-major motivation for this program is to make it relatively easy to tune these
-timings.
-.PP
-You can verify and edit the pad timings for a terminal with
-the `test string capabilities'
-function (this is also part of the `normal test sequence' function).
-.PP
-The key to determining pad times is to find out the effective baud rate of
-the terminal. The effective baud rate determines the number of characters
-per second that the terminal can accept without either handshaking or
-losing data. This rate is frequently less than the nominal cps rate on the
-RS-232 line.
-.PP
-\fBTack\fR uses the effective baud rate to judge the duration of the test and
-how much a particular escape sequence will perturb the terminal.
-.PP
-Each pad test has two associated variables that can be tweaked to help verify
-the correctness of the pad timings. One is the pad test length. The other is
-the pad multiplier, which is used if the pad prefix includes `*'. In curses
-use, it is often the first parameter of the capability (if there is one).
-For a capability like (dch) or (il) this will be the number of character
-positions or lines affected, respectively.
-.PP
-\fBTack\fR will run the pad tests and display the results to the terminal.
-On capabilities that have multipliers \fBtack\fR will not tell you
-if the pad needs the multiplier or not. You must make this decision
-yourself by rerunning the test with a different multiplier.
-If the padding changes in proportion to the multiplier than the
-multiplier is required. If the multiplier has little or no effect on
-the suggested padding then the multiplier is not needed.
-Some capabilities will take several runs to get a good feel for
-the correct values. You may wish to make the test longer
-to get more accurate results. System load will also effect the
-results (a heavily loaded system will not stress the
-terminal as much, possibly leading to pad timings that are too short).
-.PP
-.SH NOTE
-The tests done at the beginning of the program are assumed to be correct later
-in the code. In particular, \fBtack\fR displays the number of lines and
-columns indicated in the terminfo entry as part of its initial output.
-If these values are wrong a large number of tests will fail or give incorrect
-results.
-.SH FILES
-.TP 12
-tack.log
-If logging is enabled then all characters written to the terminal
-will also be written to the log file. This gives you the ability
-to see how the tests were performed. This feature is disabled by default.
-.TP 12
-.I "term"
-If you make changes to the terminfo entry \fBtack\fR will save
-the new terminfo to a file. The file will have the same name
-as the terminal name.
-.SH SEE ALSO
-\fBterminfo\fR(\*n), \fBncurses\fR(3X), \fBtic\fR(1m), \fBinfocmp\fR(1m).
-You should also have the documentation supplied by the terminal
-manufacturer.
-.SH BUGS
-If the screen size is incorrect, many of the tests will fail.
-.SH AUTHOR
-Concept, design, and original implementation by
-Daniel Weaver <danw@znyx.com>. Portions of the code and
-documentation are by Eric S. Raymond <esr@snark.thyrsus.com>.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.2/tack/tack.c b/ncurses-5.2/tack/tack.c
deleted file mode 100644
index 1dc6dd7..0000000
--- a/ncurses-5.2/tack/tack.c
+++ /dev/null
@@ -1,620 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- This program is designed to test terminfo, not curses. Therefore
- I have used as little of curses as possible.
-
- Pads associated with the following capabilities are used to set
- delay times in the handler: (cr), (ind), (cub1), (ff), (tab).
-
- I use the (nxon) capability to set the tty handler with/without
- xon/xoff. If (smxon)/(rmxon) is defined I will change the terminal
- too.
-
- (xon) inhibits the sending of delay characters in putp().
- If the terminal is defined with no padding then the (xon) boolean
- is a don't care. In this case I recommend that it be reset.
- */
-
-/*****************************************************************************
- *
- * Option processing
- *
- *****************************************************************************/
-
-/* options and modes */
-int debug_level; /* debugging level */
-int translate_mode; /* translate tab, bs, cr, lf, ff */
-int scan_mode; /* use scan codes */
-int char_mask; /* either 0xFF else 0x7F, eight bit data mask */
-int select_delay_type; /* set handler delays for <cr><lf> */
-int select_xon_xoff; /* TTY driver XON/XOFF mode select */
-int hex_out; /* Display output in hex */
-int send_reset_init; /* Send the reset and initialization strings */
-FILE *log_fp; /* Terminal logfile */
-
-/*****************************************************************************
- *
- * Menu definitions
- *
- *****************************************************************************/
-
-extern struct test_menu sync_menu;
-
-static void tools_hex_echo(struct test_list *, int *, int *);
-static void tools_debug(struct test_list *, int *, int *);
-
-static char hex_echo_menu_entry[80];
-
-struct test_list tools_test_list[] = {
- {0, 0, 0, 0, "s) ANSI status reports", tools_status, 0},
- {0, 0, 0, 0, "g) ANSI SGR modes (bold, underline, reverse)", tools_sgr, 0},
- {0, 0, 0, 0, "c) ANSI character sets", tools_charset, 0},
- {0, 0, 0, 0, hex_echo_menu_entry, tools_hex_echo, 0},
- {0, 0, 0, 0, "e) echo tool", tools_report, 0},
- {1, 0, 0, 0, "r) reply tool", tools_report, 0},
- {0, 0, 0, 0, "p) performance testing", 0, &sync_menu},
- {0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
- {0, 0, "u8) (u9", 0, "u) test ENQ/ACK handshake", sync_handshake, 0},
- {0, 0, 0, 0, "d) change debug level", tools_debug, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-struct test_menu tools_menu = {
- 0, 'q', 0, "Tools Menu", "tools",
- 0, 0, tools_test_list, 0, 0, 0
-};
-
-static void tty_width(struct test_list *, int *, int *);
-static void tty_delay(struct test_list *, int *, int *);
-static void tty_xon(struct test_list *, int *, int *);
-static void tty_trans(struct test_list *, int *, int *);
-static void tty_show_state(struct test_menu *);
-
-static char tty_width_menu[80];
-static char tty_delay_menu[80];
-static char tty_xon_menu[80];
-static char tty_trans_menu[80];
-static char enable_xon_xoff[] = {"x) enable xon/xoff"};
-static char disable_xon_xoff[] = {"x) disable xon/xoff"};
-
-static struct test_list tty_test_list[] = {
- {0, 0, 0, 0, tty_width_menu, tty_width, 0},
- {0, 0, 0, 0, tty_delay_menu, tty_delay, 0},
- {0, 0, 0, 0, tty_xon_menu, tty_xon, 0},
- {0, 0, 0, 0, tty_trans_menu, tty_trans, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static struct test_menu tty_menu = {
- 0, 'q', 0, "Terminal and driver configuration",
- "tty", 0,
- tty_show_state, tty_test_list, 0, 0, 0
-};
-
-extern struct test_list edit_test_list[];
-
-struct test_menu edit_menu = {
- 0, 'q', 0, "Edit terminfo menu",
- "edit", 0,
- 0, edit_test_list, 0, 0, 0
-};
-
-extern struct test_list mode_test_list[];
-
-struct test_menu mode_menu = {
- 0, 'n', 0, "Mode test menu",
- "mode", "n) run standard tests",
- 0, mode_test_list, 0, 0, 0
-};
-
-extern struct test_list acs_test_list[];
-
-static struct test_menu acs_menu = {
- 0, 'n', 0,
- "Alternate character set and graphics rendition test menu",
- "acs", "n) run standard tests",
- 0, acs_test_list, 0, 0, 0
-};
-
-extern struct test_list color_test_list[];
-
-struct test_menu color_menu = {
- 0, 'n', 0,
- "Color test menu",
- "color", "n) run standard tests",
- 0, color_test_list, 0, 0, 0
-};
-
-extern struct test_list crum_test_list[];
-
-static struct test_menu crum_menu = {
- 0, 'n', 0,
- "Cursor movement test menu",
- "move", "n) run standard tests",
- 0, crum_test_list, 0, 0, 0
-};
-
-extern struct test_list funkey_test_list[];
-
-static struct test_menu funkey_menu = {
- 0, 'n', 0,
- "Function key test menu",
- "fkey", "n) run standard tests",
- sync_test, funkey_test_list, 0, 0, 0
-};
-
-extern struct test_list printer_test_list[];
-
-static struct test_menu printer_menu = {
- 0, 'n', 0,
- "Printer test menu",
- "printer", "n) run standard tests",
- 0, printer_test_list, 0, 0, 0
-};
-
-static void pad_gen(struct test_list *, int *, int *);
-extern struct test_list pad_test_list[];
-
-static struct test_menu pad_menu = {
- 0, 'n', 0,
- "Pad test menu",
- "pad", "n) run standard tests",
- sync_test, pad_test_list, 0, 0, 0
-};
-
-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},
- {MENU_NEXT, 0, 0, 0, "a) test alternate character sets", 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, "p) test 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, "u8) (u9", 0, 0, sync_handshake, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-
-struct test_menu normal_menu = {
- 0, 'n', 0, "Main test menu",
- "test", "n) run standard tests",
- 0, normal_test_list, 0, 0, 0
-};
-
-static void start_tools(struct test_list *, int *, int *);
-static void start_modes(struct test_list *, int *, int *);
-static void start_basic(struct test_list *, int *, int *);
-static void start_log(struct test_list *, int *, int *);
-
-static char logging_menu_entry[80] = "l) start logging";
-
-struct test_list start_test_list[] = {
- {0, 0, 0, 0, "b) display basic information", start_basic, 0},
- {0, 0, 0, 0, "m) change modes", start_modes, 0},
- {0, 0, 0, 0, "t) tools", start_tools, 0},
- {MENU_COMPLETE, 0, 0, 0, "n) begin testing", 0, &normal_menu},
- {0, 0, 0, 0, logging_menu_entry, start_log, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-
-struct test_menu start_menu = {
- 0, 'n', 0, "Main Menu", "tack", 0,
- 0, start_test_list, 0, 0, 0
-};
-
-static struct test_list write_terminfo_list[] = {
- {0, 0, 0, 0, "w) write the current terminfo to a file", save_info, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*****************************************************************************
- *
- * Menu command interpretation.
- *
- *****************************************************************************/
-
-/*
-** tools_hex_echo(testlist, state, ch)
-**
-** Flip the hex echo flag.
-*/
-static void
-tools_hex_echo(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (hex_out) {
- hex_out = FALSE;
- strcpy(hex_echo_menu_entry,
- "h) enable hex output on echo tool");
- } else {
- hex_out = TRUE;
- strcpy(hex_echo_menu_entry,
- "h) disable hex output on echo tool");
- }
-}
-
-/*
-** tools_debug(testlist, state, ch)
-**
-** Change the debug level.
-*/
-static void
-tools_debug(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- char buf[32];
-
- ptext("Enter a new value: ");
- read_string(buf, sizeof(buf));
- if (buf[0]) {
- sscanf(buf, "%d", &debug_level);
- }
- sprintf(temp, "Debug level is now %d", debug_level);
- ptext(temp);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** start_tools(testlist, state, ch)
-**
-** Run the generic test tools
-*/
-static void
-start_tools(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (hex_out) {
- strcpy(hex_echo_menu_entry,
- "h) disable hex output on echo tool");
- } else {
- strcpy(hex_echo_menu_entry,
- "h) enable hex output on echo tool");
- }
- menu_display(&tools_menu, 0);
-}
-
-/*
-** tty_show_state()
-**
-** Display the current state on the tty driver settings
-*/
-static void
-tty_show_state(
- struct test_menu *menu GCC_UNUSED)
-{
- put_crlf();
- (void) sprintf(temp,
- "Accepting %d bits, UNIX delays %d, XON/XOFF %sabled, speed %ld, translate %s, scan-code mode %s.",
- (char_mask == ALLOW_PARITY) ? 8 : 7,
- select_delay_type,
- select_xon_xoff ? "en" : "dis",
- tty_baud_rate,
- translate_mode ? "on" : "off",
- scan_mode ? "on" : "off");
- ptextln(temp);
- put_crlf();
-}
-
-/*
-** tty_width(testlist, state, ch)
-**
-** Change the character width
-*/
-static void
-tty_width(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (char_mask == STRIP_PARITY) {
- char_mask = ALLOW_PARITY;
- strcpy(tty_width_menu, "7) treat terminal as 7-bit");
- } else {
- char_mask = STRIP_PARITY;
- strcpy(tty_width_menu, "8) treat terminal as 8-bit");
- }
-}
-
-/*
-** tty_delay(testlist, state, ch)
-**
-** Change the delay for <cr><lf> in the TTY driver
-*/
-static void
-tty_delay(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (select_delay_type) {
- select_delay_type = FALSE;
- strcpy(tty_delay_menu,
- "d) enable UNIX tty driver delays for <cr><lf>");
- } else {
- select_delay_type = TRUE;
- strcpy(tty_delay_menu,
- "d) disable UNIX tty driver delays for <cr><lf>");
- }
-}
-
-/*
-** tty_xon(testlist, state, ch)
-**
-** Change the XON/XOFF flags in the TTY driver
-*/
-static void
-tty_xon(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (select_xon_xoff) {
- if (needs_xon_xoff) {
- ptextln("This terminal is marked as needing XON/XOFF protocol with (nxon)");
- }
- if (exit_xon_mode) {
- tc_putp(exit_xon_mode);
- }
- xon_xoff = select_xon_xoff = FALSE;
- strcpy(tty_xon_menu, enable_xon_xoff);
- } else {
- if (enter_xon_mode) {
- tc_putp(enter_xon_mode);
- }
- xon_xoff = select_xon_xoff = TRUE;
- strcpy(tty_xon_menu, disable_xon_xoff);
- }
- tty_set();
-}
-
-/*
-** tty_trans(testlist, state, ch)
-**
-** Change the translation mode for special characters
-*/
-static void
-tty_trans(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (translate_mode) {
- translate_mode = FALSE;
- strcpy(tty_trans_menu,
- "t) use terminfo values for \\b\\f\\n\\r\\t");
- } else {
- translate_mode = TRUE;
- strcpy(tty_trans_menu,
- "t) override terminfo values for \\b\\f\\n\\r\\t");
- }
-}
-
-/*
-** pad_gen(testlist, state, ch)
-**
-** Menu function for automatic pad generation
-*/
-static void
-pad_gen(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- control_init();
- if (tty_can_sync == SYNC_NOT_TESTED) {
- verify_time();
- }
- auto_pad_mode = TRUE;
- menu_display(t->sub_menu, ch);
- auto_pad_mode = FALSE;
-}
-
-/*
-** start_modes(testlist, state, ch)
-**
-** Change the TTY modes
-*/
-static void
-start_modes(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
-
- if (select_delay_type) {
- strcpy(tty_delay_menu,
- "d) disable UNIX tty driver delays for <cr><lf>");
- } else {
- strcpy(tty_delay_menu,
- "d) enable UNIX tty driver delays for <cr><lf>");
- }
- if (char_mask == ALLOW_PARITY) {
- strcpy(tty_width_menu,
- "7) treat terminal as 7-bit");
- } else {
- strcpy(tty_width_menu,
- "8) treat terminal as 8-bit");
- }
- if (select_xon_xoff) {
- strcpy(tty_xon_menu, disable_xon_xoff);
- } else {
- strcpy(tty_xon_menu, enable_xon_xoff);
- }
- if (translate_mode) {
- strcpy(tty_trans_menu,
- "t) override terminfo values for \\b\\f\\n\\r\\t");
- } else {
- strcpy(tty_trans_menu,
- "t) use terminfo values for \\b\\f\\n\\r\\t");
- }
- menu_display(&tty_menu, 0);
- tty_set();
-}
-
-/*
-** start_basic(testlist, state, ch)
-**
-** Display basic terminal information
-*/
-static void
-start_basic(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- display_basic();
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** start_log(testlist, state, ch)
-**
-** Start/stop in logging function
-*/
-static void
-start_log(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (logging_menu_entry[5] == 'a') {
- ptextln("The log file will capture all characters sent to the terminal.");
- if ((log_fp = fopen("tack.log", "w"))) {
- ptextln("Start logging to file: tack.log");
- strcpy(logging_menu_entry, "l) stop logging");
- } else {
- ptextln("File open error: tack.log");
- }
- } else {
- if (log_fp) {
- fclose(log_fp);
- log_fp = 0;
- }
- ptextln("Terminal output logging stopped.");
- strcpy(logging_menu_entry, "l) start logging");
- }
-}
-
-/*
-** show_usage()
-**
-** Tell the user how its done.
-*/
-void
-show_usage(
- char *name)
-{
- (void) fprintf(stderr, "usage: %s [-itV] [term]\n", name);
-}
-
-/*
-** print_version()
-**
-** Print version and other useful information.
-*/
-void
-print_version(void)
-{
- printf("tack version %d.%02d\n", MAJOR_VERSION, MINOR_VERSION);
- printf("Copyright (C) 1997 Free Software Foundation, Inc.\n");
- printf("Tack comes with NO WARRANTY, to the extent permitted by law.\n");
- printf("You may redistribute copies of Tack under the terms of the\n");
- printf("GNU General Public License. For more information about\n");
- printf("these matters, see the file named COPYING.\n");
-}
-
-
-/*****************************************************************************
- *
- * Main sequence
- *
- *****************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
- int i, j;
- char *term_variable;
-
- /* scan the option flags */
- send_reset_init = TRUE;
- translate_mode = FALSE;
- term_variable = getenv("TERM");
- tty_can_sync = SYNC_NOT_TESTED;
- for (i = 1; i < argc; i++) {
- if (argv[i][0] == '-') {
- for (j = 1; argv[i][j]; j++) {
- switch (argv[i][j]) {
- case 'V':
- print_version();
- return (1);
- case 'i':
- send_reset_init = FALSE;
- break;
- case 't':
- translate_mode = FALSE;
- break;
- default:
- show_usage(argv[0]);
- return (0);
- }
- }
- } else {
- term_variable = argv[i];
- }
- }
- (void) strcpy(tty_basename, term_variable);
-
- curses_setup(argv[0]);
-
- menu_can_scan(&normal_menu); /* extract which caps can be tested */
- menu_display(&start_menu, 0);
-
- if (user_modified()) {
- sprintf(temp, "Hit y to save changes to file: %s ? ",
- tty_basename);
- ptext(temp);
- if (wait_here() == 'y') {
- save_info(write_terminfo_list, &i, &j);
- }
- }
-
- put_str("\nTerminal test complete\n");
- bye_kids(0);
- return (0);
-}
diff --git a/ncurses-5.2/tack/tack.h b/ncurses-5.2/tack/tack.h
deleted file mode 100644
index b14431a..0000000
--- a/ncurses-5.2/tack/tack.h
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-/* $Id$ */
-
-#ifndef _TACK_H
-#define _TACK_H 1
-
-/* terminfo action checker include file */
-
-#define MAJOR_VERSION 1
-#define MINOR_VERSION 0
-
-#ifdef HAVE_CONFIG_H
-#include <ncurses_cfg.h>
-#else
-#define RETSIGTYPE void
-#define GCC_UNUSED /*nothing*/
-#define HAVE_GETTIMEOFDAY 1
-#define HAVE_SELECT 1
-#define HAVE_SYS_TIME_H 1
-#define HAVE_SYS_TIME_SELECT 1
-#endif
-
-#include <sys/types.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <string.h>
-
-#include <curses.h>
-#include <term_entry.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#if !HAVE_STRSTR
-extern char *_nc_strstr(const char *, const char *);
-#define strstr(h,n) _nc_strstr(h,n)
-#endif
-
-extern FILE *log_fp;
-extern FILE *debug_fp;
-extern int debug_level;
-extern char temp[];
-extern char tty_basename[];
-extern char tty_shortname[];
-
-#define SYNC_FAILED 0
-#define SYNC_TESTED 1
-#define SYNC_NOT_TESTED 2
-#define SYNC_NEEDED 3
-
-extern int tty_can_sync;
-extern int total_pads_sent; /* count pad characters sent */
-extern int total_caps_sent; /* count caps sent */
-extern int total_printing_characters; /* count printing characters sent */
-extern int no_alarm_event; /* TRUE if the alarm has not gone off yet */
-extern int usec_run_time; /* length of last test in microseconds */
-extern int raw_characters_sent; /* Total output characters */
-
-/* Stopwatch event timers */
-#define TIME_TEST 0
-#define TIME_SYNC 1
-#define TIME_FLUSH 2
-#define MAX_TIMERS 3
-
-/* definitions for pad.c */
-
-#define EXIT_CONDITION (no_alarm_event && (tt_delay_used < tt_delay_max))
-#define SLOW_TERMINAL_EXIT if (!test_complete && !EXIT_CONDITION) { break; }
-#define CAP_NOT_FOUND if (auto_pad_mode) return
-
-extern char letters[26+1];
-#define NEXT_LETTER letter = letters[letter_number =\
- letters[letter_number + 1] ? letter_number + 1 : 0]
-
-extern int test_complete; /* counts number of tests completed */
-extern char letter;
-extern int letter_number;
-extern int augment, repeats;
-extern long char_sent;
-extern const char *pad_repeat_test; /* commands that force repeat */
-
-extern int replace_mode;
-extern int char_count, line_count, expand_chars;
-extern int can_go_home, can_clear_screen;
-
-extern int translate_mode, scan_mode;
-extern int auto_pad_mode; /* TRUE for auto time tests */
-extern int char_mask;
-extern int hex_out; /* Display output in hex */
-
-/* Parity bit macros */
-#define STRIP_PARITY 0x7f
-#define ALLOW_PARITY 0xff
-
-/* select_delay_type: 0 -> reset all delays
- 1 -> force long delays
- 2 -> do not change the delays */
-extern int select_delay_type;
-
-/* select_xon_xoff: 0 -> reset xon/xoff
- 1 -> set xon/xoff
- 2 -> do not change xon/xoff */
-extern int select_xon_xoff;
-
-extern int tty_frame_size;
-extern unsigned long tty_baud_rate;
-extern int tty_cps; /* The number of characters per second */
-extern int not_a_tty, nodelay_read;
-extern int send_reset_init;
-
-/* definitions for stty_query() and initial_stty_query() */
-#define TTY_CHAR_MODE 0
-#define TTY_NOECHO 1
-#define TTY_OUT_TRANS 2
-#define TTY_8_BIT 3
-#define TTY_XON_XOFF 4
-
-/* scan code definitions */
-#define MAX_SCAN 256
-
-/* translate mode default strings */
-struct default_string_list {
- const char *name; /* terminfo name */
- const char *value; /* value of default string */
- int index; /* index into the strfname[] array */
-};
-
-#define TM_last 8
-extern struct default_string_list TM_string[TM_last];
-
-/* attribute structure definition */
-struct mode_list {
- const char *name;
- const char *begin_mode;
- const char *end_mode;
- int number;
-};
-
-extern const struct mode_list alt_modes[];
-extern const int mode_map[];
-
-/* Test data base */
-
-#define FLAG_CAN_TEST 1
-#define FLAG_TESTED 2
-#define FLAG_LABEL 4
-#define FLAG_FUNCTION_KEY 8
-
-/* caps under test data base */
-
-#define TT_MAX 8
-#define MAX_CHANGES (TT_MAX+2)
-
-extern int tt_delay_max; /* max number of milliseconds we can delay */
-extern int tt_delay_used; /* number of milliseconds consumed in delay */
-extern const char *tt_cap[TT_MAX]; /* value of string */
-extern int tt_affected[TT_MAX]; /* lines or columns effected (repetition
- factor) */
-extern int tt_count[TT_MAX]; /* Number of times sent */
-extern int tt_delay[TT_MAX]; /* Number of milliseconds delay */
-extern int ttp; /* number of entries used */
-
-extern const char *tx_cap[TT_MAX]; /* value of string */
-extern int tx_affected[TT_MAX]; /* lines or columns effected (repetition
- factor) */
-extern int tx_count[TT_MAX]; /* Number of times sent */
-extern int tx_delay[TT_MAX]; /* Number of milliseconds delay */
-extern int tx_index[TT_MAX]; /* String index */
-extern int txp; /* number of entries used */
-extern int tx_characters; /* printing characters sent by test */
-extern int tx_cps; /* characters per second */
-
-/*
- Menu control for tack.
-*/
-
-struct test_results {
- struct test_results *next; /* point to next entry */
- struct test_list *test; /* Test which got these results */
- int reps; /* repeat count */
- int delay; /* delay times 10 */
-};
-
-struct test_list {
- int flags; /* Test description flags */
- int lines_needed; /* Lines needed for test (0->no action) */
- const char *caps_done; /* Caps shown in Done message */
- const char *caps_tested; /* Other caps also being tested */
- const char *menu_entry; /* Menu entry text (optional) */
- /* Function that does testing */
- void (*test_procedure)(struct test_list *, int *, int *);
- struct test_menu *sub_menu; /* Nested sub-menu */
-};
-
-struct test_menu {
- int flags; /* Menu feature flag */
- int default_action; /* Default command if <cr> <lf> entered */
- const char *menu_text; /* Describe this test_menu */
- const char *menu_title; /* Title for the menu */
- const char *ident; /* short menu name */
- const char *standard_tests; /* Standard test text */
- /* print current settings (optional) */
- void (*menu_function)(struct test_menu *);
- struct test_list *tests; /* Pointer to the menu/function pairs */
- struct test_list *resume_tests; /* Standard test resume point */
- int resume_state; /* resume state of test group */
- int resume_char; /* resume ch of test group */
-};
-
-
-/* menu flags */
-#define MENU_100c 0x00001a00 /* Augment 100% of columns */
-#define MENU_90c 0x00001900 /* Augment 90% of columns */
-#define MENU_80c 0x00001800 /* Augment 80% of columns */
-#define MENU_70c 0x00001700 /* Augment 70% of columns */
-#define MENU_60c 0x00001600 /* Augment 60% of columns */
-#define MENU_50c 0x00001500 /* Augment 50% of columns */
-#define MENU_40c 0x00001400 /* Augment 40% of columns */
-#define MENU_30c 0x00001300 /* Augment 30% of columns */
-#define MENU_20c 0x00001200 /* Augment 20% of columns */
-#define MENU_10c 0x00001100 /* Augment 10% of columns */
-#define MENU_LM1 0x00002e00 /* Augment lines - 1 */
-#define MENU_100l 0x00002a00 /* Augment 100% of lines */
-#define MENU_90l 0x00002900 /* Augment 90% of lines */
-#define MENU_50l 0x00002500 /* Augment 50% of lines */
-#define MENU_lines 0x00002000 /* Augment of lines */
-#define MENU_columns 0x00001000 /* Augment of columns */
-#define MENU_LC_MASK 0x00003000 /* Augment mask for lines and columns */
-#define MENU_1L 0x00002f00 /* Augment == one */
-#define MENU_1C 0x00001f00 /* Augment == one */
-#define MENU_ONE 0x00000f00 /* Augment == one */
-#define MENU_ONE_MASK 0x00000f00 /* Augment == one mask */
-#define MENU_REP_MASK 0x00003f00 /* Augment mask */
-
-#define MENU_CLEAR 0x00010000 /* clear screen */
-#define MENU_INIT 0x00020000 /* Initialization function */
-#define MENU_NEXT 0x00040000 /* Next test in sequence */
-#define MENU_LAST 0x00080000 /* End of menu list */
-#define MENU_STOP 0x00100000 /* Stop testing next-in-sequence */
-#define MENU_COMPLETE 0x00200000 /* Test complete after this */
-#define MENU_MENU 0x00400000 /* Pass the menu name not test name */
-
-#define REQUEST_PROMPT 256
-
-extern char prompt_string[80]; /* menu prompt storage */
-extern struct test_menu edit_menu;
-extern struct test_list *augment_test;
-
-/* tack.c */
-extern void show_usage(char *);
-extern void print_version(void);
-
-/* output.c */
-extern void tt_tputs(const char *, int);
-extern void tt_putp(const char *);
-extern void tt_putparm(NCURSES_CONST char *, int, int, int);
-extern int tc_putp(const char *);
-extern int tc_putch(int);
-extern void putchp(int);
-extern void put_cr(void);
-extern void put_crlf(void);
-extern void put_clear(void);
-extern void put_dec(char *, int);
-extern void put_str(const char *);
-extern void put_lf(void);
-extern void put_ind(void);
-extern void put_newlines(int);
-extern void put_columns(const char *, int, int);
-extern void put_this(int);
-extern void putln(const char *);
-extern void ptext(const char *);
-extern void ptextln(const char *);
-extern void home_down(void);
-extern void go_home(void);
-extern void three_digit(char *, int);
-extern int getchp(int);
-extern char *expand(const char *);
-extern char *expand_to(char *, int);
-extern char *expand_command(const char *);
-extern char *hex_expand_to(char *, int);
-extern char *print_expand(char *);
-extern void maybe_wait(int);
-extern int wait_here(void);
-extern void read_string(char *, int);
-extern int getnext(int);
-
-/* control.c */
-extern void event_start(int);
-extern long event_time(int);
-extern char *liberated(char *);
-extern void page_loop(void);
-extern void control_init(void);
-extern int msec_cost(const char *const, int);
-extern int skip_pad_test(struct test_list *, int *, int *, const char *);
-extern void pad_test_startup(int);
-extern int still_testing(void);
-extern void pad_test_shutdown(struct test_list *, int);
-extern void dump_test_stats(struct test_list *, int *, int *);
-extern void longer_test_time(struct test_list *, int *, int *);
-extern void shorter_test_time(struct test_list *, int *, int *);
-extern char txt_longer_test_time[80];
-extern char txt_shorter_test_time[80];
-extern void set_augment_txt(void);
-extern void longer_augment(struct test_list *, int *, int *);
-extern void shorter_augment(struct test_list *, int *, int *);
-extern char txt_longer_augment[80];
-extern char txt_shorter_augment[80];
-extern int sliding_scale(int, int, int);
-
-/* sync.c */
-extern void verify_time(void);
-extern int tty_sync_error(void);
-extern void flush_input(void);
-extern void sync_test(struct test_menu *);
-extern void sync_handshake(struct test_list *, int *, int *);
-
-/* charset.c */
-extern void set_attr(int);
-extern void eat_cookie(void);
-extern void put_mode(char *);
-
-/* init.c */
-extern void reset_init(void);
-extern void display_basic(void);
-extern void put_name(const char *, const char *);
-extern void charset_can_test(void);
-extern void curses_setup(char *);
-extern void bye_kids(int);
-
-/* scan.c */
-extern int scan_key(void);
-extern void scan_init(char *fn);
-
-/* ansi.c */
-extern void tools_status(struct test_list *, int *, int *);
-extern void tools_charset(struct test_list *, int *, int *);
-extern void tools_sgr(struct test_list *, int *, int *);
-
-/* pad.c */
-
-/* fun.c */
-extern void enter_key(const char *, char *, char *);
-extern int tty_meta_prep(void);
-extern void tools_report(struct test_list *, int *, int *);
-
-/* sysdep.c */
-extern void tty_set(void);
-extern void tty_raw(int, int);
-extern void tty_init(void);
-extern void tty_reset(void);
-extern void spin_flush(void);
-extern void read_key(char *, int);
-extern void set_alarm_clock(int);
-extern void ignoresig(void);
-extern int stty_query(int);
-extern int initial_stty_query(int);
-
-/* edit.c */
-extern int user_modified(void);
-extern void save_info(struct test_list *, int *, int *);
-extern void can_test(const char *, int);
-extern void cap_index(const char *, int *);
-extern int cap_match(const char *names, const char *cap);
-extern void edit_init(void);
-extern char *get_string_cap_byname(const char *, const char **);
-extern int get_string_cap_byvalue(const char *);
-extern void show_report(struct test_list *, int *, int *);
-
-/* menu.c */
-extern void menu_prompt(void);
-extern void menu_can_scan(const struct test_menu *);
-extern void menu_display(struct test_menu *, int *);
-extern void generic_done_message(struct test_list *, int *, int *);
-extern void pad_done_message(struct test_list *, int *, int *);
-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 *);
-
-#endif /* _TACK_H */
diff --git a/ncurses-5.2/tar-copy.sh b/ncurses-5.2/tar-copy.sh
deleted file mode 100755
index 3629825..0000000
--- a/ncurses-5.2/tar-copy.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997,1998
-#
-# Copy a collection of files using 'tar', so that their dates and links are
-# preserved
-#
-# Parameters:
-# $1 = files to copy
-# $2 = source directory
-# $3 = destination directory
-#
-#DOIT=echo
-DOIT=eval
-
-if test $# != 3 ; then
- echo "Usage: $0 files source target"
- exit 1
-elif test ! -d "$2" ; then
- echo "Source directory not found: $2"
- exit 1
-elif test ! -d "$3" ; then
- echo "Target directory not found: $3"
- exit 1
-fi
-
-WD=`pwd`
-
-TMP=$WD/copy$$
-trap "rm -f $TMP" 0 1 2 5 15
-
-cd $2
-if ( tar cf $TMP $1 )
-then
- cd $3
- LIST=`tar tf $TMP 2>&1`
- $DOIT rm -rf $LIST 2>/dev/null
- $DOIT tar xvf $TMP
-else
- echo "Cannot create tar of $1 files"
- exit 1
-fi
diff --git a/ncurses-5.2/test/Makefile.in b/ncurses-5.2/test/Makefile.in
deleted file mode 100644
index fc528f8..0000000
--- a/ncurses-5.2/test/Makefile.in
+++ /dev/null
@@ -1,221 +0,0 @@
-# $Id$
-##############################################################################
-# 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 "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1996,1997,1998
-#
-# Makefile for ncurses tests.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-
-x = @PROG_EXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-
-CC = @CC@
-CPP = @CPP@
-
-CFLAGS = @CFLAGS@
-CPPFLAGS = -I../test -I$(srcdir) @CPPFLAGS@ -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-LOCAL_LIBS = @TEST_DEPS@
-MATH_LIB = @MATH_LIB@
-
-LD = @LD@
-LINK = @LINK_TESTS@ $(LIBTOOL) $(CC)
-
-LDFLAGS = @LD_MODEL@ @TEST_ARGS@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
-
-LDFLAGS_LIBTOOL = $(LDFLAGS)
-LDFLAGS_NORMAL = $(LDFLAGS)
-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
-LDFLAGS_PROFILE = $(LDFLAGS) -pg
-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lform -lmenu -lpanel -lncurses @LIBS@
-
-TESTS = \
- blue$x \
- bs$x \
- cardfile$x \
- ditto$x \
- dots$x \
- filter$x \
- firework$x \
- firstlast$x \
- gdc$x \
- hanoi$x \
- hashtest$x \
- keynames$x \
- knight$x \
- lrtest$x \
- ncurses$x \
- newdemo$x \
- rain$x \
- railroad$x \
- tclock$x \
- testaddch$x \
- testcurs$x \
- testscanw$x \
- view$x \
- worm$x \
- xmas$x
-
-all: $(TESTS)
-
-sources:
-
-blue$x: $(MODEL)/blue.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/blue.o $(LDFLAGS_DEFAULT)
-
-bs$x: $(MODEL)/bs.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/bs.o $(LDFLAGS_DEFAULT)
-
-cardfile$x: $(MODEL)/cardfile.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/cardfile.o $(LDFLAGS_DEFAULT)
-
-ditto$x: $(MODEL)/ditto.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ditto.o $(LDFLAGS_DEFAULT)
-
-dots$x: $(MODEL)/dots.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/dots.o $(LDFLAGS_DEFAULT)
-
-filter$x: $(MODEL)/filter.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/filter.o $(LDFLAGS_DEFAULT)
-
-firework$x: $(MODEL)/firework.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firework.o $(LDFLAGS_DEFAULT)
-
-firstlast$x: $(MODEL)/firstlast.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firstlast.o $(LDFLAGS_DEFAULT)
-
-gdc$x: $(MODEL)/gdc.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/gdc.o $(LDFLAGS_DEFAULT)
-
-hanoi$x: $(MODEL)/hanoi.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hanoi.o $(LDFLAGS_DEFAULT)
-
-hashtest$x: $(MODEL)/hashtest.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hashtest.o $(LDFLAGS_DEFAULT)
-
-keynames$x: $(MODEL)/keynames.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/keynames.o $(LDFLAGS_DEFAULT)
-
-knight$x: $(MODEL)/knight.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/knight.o $(LDFLAGS_DEFAULT)
-
-lrtest$x: $(MODEL)/lrtest.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/lrtest.o $(LDFLAGS_DEFAULT)
-
-ncurses$x: $(MODEL)/ncurses.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ncurses.o $(LDFLAGS_DEFAULT)
-
-newdemo$x: $(MODEL)/newdemo.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/newdemo.o $(LDFLAGS_DEFAULT)
-
-rain$x: $(MODEL)/rain.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/rain.o $(LDFLAGS_DEFAULT)
-
-railroad$x: $(MODEL)/railroad.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/railroad.o $(LDFLAGS_DEFAULT)
-
-tclock$x: $(MODEL)/tclock.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/tclock.o $(LDFLAGS_DEFAULT) $(MATH_LIB)
-
-testaddch$x: $(MODEL)/testaddch.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testaddch.o $(LDFLAGS_DEFAULT)
-
-testcurs$x: $(MODEL)/testcurs.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testcurs.o $(LDFLAGS_DEFAULT)
-
-testscanw$x: $(MODEL)/testscanw.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testscanw.o $(LDFLAGS_DEFAULT)
-
-view$x: $(MODEL)/view.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/view.o $(LDFLAGS_DEFAULT)
-
-worm$x: $(MODEL)/worm.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/worm.o $(LDFLAGS_DEFAULT)
-
-xmas$x: $(MODEL)/xmas.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/xmas.o $(LDFLAGS_DEFAULT)
-
-libs \
-install \
-install.libs \
-install.test:
-
-uninstall:
-uninstall.libs:
-uninstall.test:
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -rf *.o screendump *.lis $(TESTS) .libs
-
-distclean :: clean
- -rm -f Makefile ncurses_cfg.h config.*
-
-realclean :: distclean
-
-lint:
- sh -c 'for N in $(TESTS); do echo LINT:$$N; $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/$$N.c $(LINT_LIBS); done'
-
-# Use this to get a list of test-programs for the standalone configure script.
-echo_tests :
- @echo "$(TESTS)"
-echo_suffix :
- @echo "$x"
diff --git a/ncurses-5.2/test/README b/ncurses-5.2/test/README
deleted file mode 100644
index cd1767a..0000000
--- a/ncurses-5.2/test/README
+++ /dev/null
@@ -1,22 +0,0 @@
-The programs in this directory are designed to test your newest toy :-)
-Check the sources for any further details.
-
-blue - Blue Moon, a nifty solitaire (uses color)
-bs.c - the game of Battleships (uses color)
-firework.c - multi-colored fireworks (uses color)
-gdc.c - Great Digital Clock (uses color)
-hanoi.c - the game of hanoi (uses color essentially)
-knight.c - the game of Knight's Tour (uses color)
-lrtest.c - test of access to the lower-right corner
-ncurses.c - multi-test program (uses color)
-newdemo.c - another test from PDCurses (uses color)
-rain.c - rain drops keep falling on my head...
-tclock.c - analog/digital clock
-testcurs.c - a test from the PDCurses people (uses color)
-worm.c - worms run all over your screen (uses color)
-xmas.c - Xmas greeting card
-
-The bs and knight games demonstrate processing of mouse events under xterm.
-This directory also contains:
-
-tracemunch - Perl script to crunch trace scripts to make them easier to read
diff --git a/ncurses-5.2/test/blue.c b/ncurses-5.2/test/blue.c
deleted file mode 100644
index 4d98be9..0000000
--- a/ncurses-5.2/test/blue.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/*****************************************************************************
- * *
- * B l u e M o o n *
- * ================= *
- * V2.2 *
- * A patience game by T.A.Lister *
- * Integral screen support by Eric S. Raymond *
- * *
- *****************************************************************************/
-
-/*
- * Compile this with the command `cc -O blue.c -lcurses -o blue'. For best
- * results, use the ncurses(3) library. On non-Intel machines, SVr4 curses is
- * just as good.
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-#include <string.h>
-#include <signal.h>
-#include <time.h>
-
-#include <term.h>
-
-#define NOCARD (-1)
-
-#define ACE 0
-#define KING 12
-#define SUIT_LENGTH 13
-
-#define HEARTS 0
-#define SPADES 1
-#define DIAMONDS 2
-#define CLUBS 3
-#define NSUITS 4
-
-#define GRID_WIDTH 14 /* 13+1 */
-#define GRID_LENGTH 56 /* 4*(13+1) */
-#define PACK_SIZE 52
-
-#define BASEROW 1
-#define PROMPTROW 11
-
-#define RED_ON_WHITE 1
-#define BLACK_ON_WHITE 2
-#define BLUE_ON_WHITE 3
-
-static RETSIGTYPE die(int onsig) GCC_NORETURN;
-
-static int deck_size = PACK_SIZE; /* initial deck */
-static int deck[PACK_SIZE];
-
-static int grid[GRID_LENGTH]; /* card layout grid */
-static int freeptr[4]; /* free card space pointers */
-
-static int deal_number=0;
-
-static chtype ranks[SUIT_LENGTH][2] =
-{
- {' ', 'A'},
- {' ', '2'},
- {' ', '3'},
- {' ', '4'},
- {' ', '5'},
- {' ', '6'},
- {' ', '7'},
- {' ', '8'},
- {' ', '9'},
- {'1', '0'},
- {' ', 'J'},
- {' ', 'Q'},
- {' ', 'K'}
-};
-
-/* Please note, that this is a bad example.
- Color values should not be or'ed in. This
- only works, because the characters used here
- are plain and have no color attribute themselves. */
-#ifdef COLOR_PAIR
-#define OR_COLORS(value,pair) ((value) | COLOR_PAIR(pair))
-#else
-#define OR_COLORS(value,pair) (value)
-#endif
-
-#define PC_COLORS(value,pair) (OR_COLORS(value,pair) | A_ALTCHARSET)
-
-static chtype letters[4] =
-{
- OR_COLORS('h', RED_ON_WHITE), /* hearts */
- OR_COLORS('s', BLACK_ON_WHITE), /* spades */
- OR_COLORS('d', RED_ON_WHITE), /* diamonds */
- OR_COLORS('c', BLACK_ON_WHITE), /* clubs */
-};
-
-#if defined(__i386__)
-static chtype glyphs[] =
-{
- PC_COLORS('\003', RED_ON_WHITE), /* hearts */
- PC_COLORS('\006', BLACK_ON_WHITE), /* spades */
- PC_COLORS('\004', RED_ON_WHITE), /* diamonds */
- PC_COLORS('\005', BLACK_ON_WHITE), /* clubs */
-};
-#endif /* __i386__ */
-
-static chtype *suits = letters; /* this may change to glyphs below */
-
-static RETSIGTYPE die(int onsig)
-{
- (void) signal(onsig, SIG_IGN);
- endwin();
- exit(EXIT_SUCCESS);
-}
-
-static void init_vars(void)
-{
- int i;
-
- deck_size = PACK_SIZE;
- for (i=0; i < PACK_SIZE; i++)
- deck[i]=i;
- for (i = 0; i < 4; i++)
- freeptr[i]=i * GRID_WIDTH;
-}
-
-static void shuffle(int size)
-{
- int i,j,numswaps,swapnum,temp;
-
- 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;
- }
-}
-
-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;
- }
- }
-
- 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[aces[suit]]=NOCARD;
- freeptr[suit]=aces[suit];
- }
-}
-
-static void printcard(int value)
-{
- (void) addch(' ');
- if (value == NOCARD)
- (void) addstr(" ");
- else
- {
- addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE));
- addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE));
- addch(suits[value / SUIT_LENGTH]);
- }
- (void) addch(' ');
-}
-
-static void display_cards(int deal)
-{
- 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++)
- {
- move(BASEROW + row + row + 2, 1);
- for(card=0;card<GRID_WIDTH;card++)
- printcard(grid[row * GRID_WIDTH + card]);
- }
-
- move(PROMPTROW + 2, 0); refresh();
-#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. ");
-#undef P
- refresh();
-}
-
-static int find(int card)
-{
- int i;
-
- if ((card<0) || (card>=PACK_SIZE))
- return(NOCARD);
- for(i = 0; i < GRID_LENGTH; i++)
- if (grid[i] == card)
- return i;
- return(NOCARD);
-}
-
-static void movecard(int src, int dst)
-{
- grid[dst]=grid[src];
- grid[src]=NOCARD;
-
- move( BASEROW + (dst / GRID_WIDTH)*2+2, (dst % GRID_WIDTH)*5 + 1);
- printcard(grid[dst]);
-
- move( BASEROW + (src / GRID_WIDTH)*2+2, (src % GRID_WIDTH)*5 + 1);
- printcard(grid[src]);
-
- refresh();
-}
-
-static void play_game(void)
-{
- int dead=0, i, j;
- char c;
- int selection[4], card;
-
- while (dead<4)
- {
- dead=0;
- for (i=0;i<4;i++)
- {
- card=grid[freeptr[i]-1];
-
- if ( ((card % SUIT_LENGTH)==KING)
- ||
- (card==NOCARD) )
- selection[i]=NOCARD;
- else
- selection[i]=find(card+1);
-
- if (selection[i]==NOCARD)
- 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);
- }
- };
- *lp = '\0';
-
- if (strlen(live) == 1)
- {
- move(PROMPTROW,0);
- (void)printw(
- "Making forced moves... ");
- refresh();
- (void) sleep(1);
- c = live[0];
- }
- else
- {
- char buf[BUFSIZ];
-
- (void)sprintf(buf,
- "Type [%s] to move, r to redraw, q or INTR to quit: ",
- live);
-
- do {
- move(PROMPTROW,0);
- (void) addstr(buf);
- move(PROMPTROW, (int)strlen(buf));
- clrtoeol();
- (void) addch(' ');
- } while
- (((c = getch())<'a' || c>'d') && (c!='r') && (c!='q'));
- }
-
- 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 (c == 'r')
- display_cards(deal_number);
- else if (c == 'q')
- die(SIGINT);
- else
- {
- i = c-'a';
- if (selection[i] == NOCARD)
- beep();
- else
- {
- movecard(selection[i], freeptr[i]);
- freeptr[i]=selection[i];
- }
- }
- }
- }
-
- move(PROMPTROW, 0);
- standout();
- (void)printw("Finished deal %d - type any character to continue...", deal_number);
- standend();
- (void) getch();
-}
-
-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;
- };
-
- if ((finish!=0)&&(grid[gridno]!=NOCARD))
- deck[cardno++]=grid[gridno];
- }
- }
- return cardno;
-}
-
-static void game_finished(int deal)
-{
- clear();
- (void)printw("You finished the game in %d deals. This is ",deal);
- standout();
- if (deal<2)
- (void)addstr("excellent");
- else if (deal<4)
- (void)addstr("good");
- else if (deal<8)
- (void)addstr("average");
- else
- (void)addstr("poor");
- standend();
- (void) addstr(". ");
- refresh();
-}
-
-int main(int argc, char *argv[])
-{
- (void) signal(SIGINT, die);
- 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);
-
-#ifndef COLOR_PAIR
- letters[0] = OR_COLORS('h', RED_ON_WHITE); /* hearts */
- letters[1] = OR_COLORS('s', BLACK_ON_WHITE); /* spades */
- letters[2] = OR_COLORS('d', RED_ON_WHITE); /* diamonds */
- 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 */
-#endif
-#endif
-
-#if defined(__i386__) && defined(A_ALTCHARSET)
- if (tigetstr("smpch"))
- suits = glyphs;
-#endif /* __i386__ && A_ALTCHARSET */
-
- cbreak();
-
- if (argc == 2)
- srand((unsigned)atoi(argv[1]));
- else
- srand((unsigned)time((time_t *)0));
-
- init_vars();
-
- do{
- deal_number++;
- shuffle(deck_size);
- deal_cards();
- display_cards(deal_number);
- play_game();
- }
- while
- ((deck_size=collect_discards()) != 0);
-
- game_finished(deal_number);
-
- die(SIGINT);
- /*NOTREACHED*/
-}
-
-/* blue.c ends here */
diff --git a/ncurses-5.2/test/bs.6 b/ncurses-5.2/test/bs.6
deleted file mode 100644
index 38cfe82..0000000
--- a/ncurses-5.2/test/bs.6
+++ /dev/null
@@ -1,42 +0,0 @@
-.TH BATTLESHIPS 6 "Aug 23, 1989"
-.SH NAME
-bs \- battleships game
-.SH SYNOPSIS
-battle [ -b | -s ] [ -c ]
-.SH DESCRIPTION
-This program allows you to play the familiar Battleships game against the
-computer on a 10x10 board. The interface is visual and largely
-self-explanatory; you place your ships and pick your shots by moving the
-cursor around the `sea' with the rogue/hack motion keys hjklyubn.
-.PP
-Note that when selecting a ship to place, you must type the capital letter
-(these are, after all, capital ships). During ship placement, the `r' command
-may be used to ignore the current position and randomly place your currently
-selected ship. The `R' command will place all remaining ships randomly. The ^L
-command (form feed, ASCII 12) will force a screen redraw).
-.PP
-The command-line arguments control game modes.
-
-.nf
- -b selects a `blitz' variant
- -s selects a `salvo' variant
- -c permits ships to be placed adjacently
-.fi
-
-The `blitz' variant allows a side to shoot for as long as it continues to
-score hits.
-.PP
-The `salvo' game allows a player one shot per turn for each of his/her ships
-still afloat. This puts a premium scoring hits early and knocking out some
-ships and also makes much harder the situation where you face a superior force
-with only your PT-boat.
-.PP
-Normally, ships must be separated by at least one square of open water. The
--c option disables this check and allows them to close-pack.
-.PP
-The algorithm the computer uses once it has found a ship to sink is provably
-optimal. The dispersion criterion for the random-fire algorithm may not be.
-.SH AUTHORS
-Originally written by one Bruce Holloway in 1986. Salvo mode added by Chuck A.
-DeGaul (cbosgd!cad). Visual user interface, `closepack' option, code rewrite
-and manual page by Eric S. Raymond <esr@snark.thyrsus.com> August 1989.
diff --git a/ncurses-5.2/test/bs.c b/ncurses-5.2/test/bs.c
deleted file mode 100644
index 979f3a7..0000000
--- a/ncurses-5.2/test/bs.c
+++ /dev/null
@@ -1,1268 +0,0 @@
-/*
- * bs.c - original author: Bruce Holloway
- * salvo option by: Chuck A DeGaul
- * with improved user interface, autoconfiguration and code cleanup
- * by Eric S. Raymond <esr@snark.thyrsus.com>
- * v1.2 with color support and minor portability fixes, November 1990
- * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
- * v2.1 with ncurses mouse support, September 1995
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-#include <signal.h>
-#include <ctype.h>
-#include <string.h>
-#include <assert.h>
-#include <time.h>
-
-#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);
-
-/*
- * Constants for tuning the random-fire algorithm. It prefers moves that
- * diagonal-stripe the board with a stripe separation of srchstep. If
- * no such preferred moves are found, srchstep is decremented.
- */
-#define BEGINSTEP 3 /* initial value of srchstep */
-
-/* miscellaneous constants */
-#define SHIPTYPES 5
-#define OTHER (1-turn)
-#define PLAYER 0
-#define COMPUTER 1
-#define MARK_HIT 'H'
-#define MARK_MISS 'o'
-#define CTRLC '\003' /* used as terminate command */
-#define FF '\014' /* used as redraw command */
-
-/* coordinate handling */
-#define BWIDTH 10
-#define BDEPTH 10
-
-/* display symbols */
-#define SHOWHIT '*'
-#define SHOWSPLASH ' '
-#define IS_SHIP(c) (isupper(c) ? TRUE : FALSE)
-
-/* how to position us on player board */
-#define PYBASE 3
-#define PXBASE 3
-#define PY(y) (PYBASE + (y))
-#define PX(x) (PXBASE + (x)*3)
-#define pgoto(y, x) (void)move(PY(y), PX(x))
-
-/* how to position us on cpu board */
-#define CYBASE 3
-#define CXBASE 48
-#define CY(y) (CYBASE + (y))
-#define CX(x) (CXBASE + (x)*3)
-#define CYINV(y) ((y) - CYBASE)
-#define CXINV(x) (((x) - CXBASE) / 3)
-#define cgoto(y, x) (void)move(CY(y), CX(x))
-
-#define ONBOARD(x, y) (x >= 0 && x < BWIDTH && y >= 0 && y < BDEPTH)
-
-/* other board locations */
-#define COLWIDTH 80
-#define PROMPTLINE 21 /* prompt line */
-#define SYBASE CYBASE + BDEPTH + 3 /* move key diagram */
-#define SXBASE 63
-#define MYBASE SYBASE - 1 /* diagram caption */
-#define MXBASE 64
-#define HYBASE SYBASE - 1 /* help area */
-#define HXBASE 0
-
-/* this will need to be changed if BWIDTH changes */
-static char numbers[] = " 0 1 2 3 4 5 6 7 8 9";
-
-static char carrier[] = "Aircraft Carrier";
-static char battle[] = "Battleship";
-static char sub[] = "Submarine";
-static char destroy[] = "Destroyer";
-static char ptboat[] = "PT Boat";
-
-static char name[40];
-static char dftname[] = "stranger";
-
-/* direction constants */
-#define E 0
-#define SE 1
-#define S 2
-#define SW 3
-#define W 4
-#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};
-
-/* current ship position and direction */
-static int curx = (BWIDTH / 2);
-static int cury = (BDEPTH / 2);
-
-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 x, y; /* coordinates of ship start point */
- unsigned char dir; /* direction of `bow' */
- bool placed; /* has it been placed on the board? */
-}
-ship_t;
-
-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] =
-{
- 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] =
-{
- 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];
-
-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 RETSIGTYPE uninitgame(int sig) GCC_NORETURN;
-
-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);
-}
-
-static void announceopts(void)
-/* announce which game options are enabled */
-{
- if (salvo || blitz || closepack)
- {
- (void) printw("Playing optional game (");
- if (salvo)
- (void) printw("salvo, ");
- else
- (void) printw("nosalvo, ");
- if (blitz)
- (void) printw("blitz ");
- else
- (void) printw("noblitz, ");
- if (closepack)
- (void) printw("closepack)");
- else
- (void) printw("noclosepack)");
- }
- else
- (void) printw(
- "Playing standard game (noblitz, nosalvo, noclosepack)");
-}
-
-static void intro(void)
-{
- char *tmpname;
-
- 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);
-
- if((tmpname = getlogin()) != 0)
- {
- (void)strcpy(name,tmpname);
- name[0] = toupper(name[0]);
- }
- else
- (void)strcpy(name,dftname);
-
- (void)initscr();
-#ifdef KEY_MIN
- keypad(stdscr, TRUE);
-#endif /* KEY_MIN */
- (void)saveterm();
- (void)nonl();
- (void)cbreak();
- (void)noecho();
-
-#ifdef PENGUIN
- (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");
- PR(" ________________/ |\n");
- PR(" \\ S.S. Penguin |\n");
- PR(" \\ /\n");
- PR(" \\___________________________________________________/\n");
-
- (void) mvaddstr(22,27,"Hit any key to continue..."); (void)refresh();
- (void) getch();
-#endif /* PENGUIN */
-
-#ifdef A_COLOR
- start_color();
-
- init_pair(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK);
- init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK);
- init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK);
- init_pair(COLOR_CYAN, COLOR_CYAN, COLOR_BLACK);
- init_pair(COLOR_WHITE, COLOR_WHITE, COLOR_BLACK);
- init_pair(COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
- init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK);
- init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK);
-#endif /* A_COLOR */
-
-#ifdef NCURSES_MOUSE_VERSION
- (void) mousemask(BUTTON1_CLICKED, (mmask_t *)NULL);
-#endif /* NCURSES_MOUSE_VERSION*/
-}
-
-/* VARARGS1 */
-static void prompt(int n, NCURSES_CONST char *f, const char *s)
-/* print a message at the prompt line */
-{
- (void) move(PROMPTLINE + n, 0);
- (void) clrtoeol();
- (void) printw(f, s);
- (void) refresh();
-}
-
-static void error(NCURSES_CONST char *s)
-{
- (void) move(PROMPTLINE + 2, 0);
- (void) clrtoeol();
- if (s)
- {
- (void) addstr(s);
- (void) beep();
- }
-}
-
-static void placeship(int b, ship_t *ss, int vis)
-{
- int 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;
- if (vis)
- {
- pgoto(newy, newx);
- (void) addch((chtype)ss->symbol);
- }
- }
- ss->hits = 0;
-}
-
-static int rnd(int n)
-{
- return(((rand() & 0x7FFF) % n));
-}
-
-static void randomplace(int b, ship_t *ss)
-/* generate a valid random ship placement into px,py */
-{
- register int bwidth = BWIDTH - ss->length;
- register int bdepth = BDEPTH - ss->length;
-
- do {
- ss->y = rnd(bdepth);
- ss->x = rnd(bwidth);
- ss->dir = rnd(2) ? E : S;
- } while
- (!checkplace(b, ss, FALSE));
-}
-
-static void initgame(void)
-{
- int i, j, unplaced;
- ship_t *ss;
-
- (void) clear();
- (void) mvaddstr(0,35,"BATTLESHIPS");
- (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++)
- {
- ss = cpuship + i;
-
- ss->x =
- ss->y =
- ss->dir =
- ss->hits = 0;
- ss->placed = FALSE;
-
- ss = plyship + i;
-
- ss->x =
- ss->y =
- ss->dir =
- ss->hits = 0;
- 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'));
-#ifdef A_COLOR
- if (has_colors())
- attron(COLOR_PAIR(COLOR_BLUE));
-#endif /* A_COLOR */
- (void) addch(' ');
- for (j = 0; j < BWIDTH; j++)
- (void) addstr(" . ");
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- (void) addch(' ');
- (void) addch((chtype)(i + 'A'));
- }
- (void) mvaddstr(PYBASE + BDEPTH, PXBASE - 3,numbers);
- (void) mvaddstr(CYBASE - 2, CXBASE + 7,"Hit/Miss Board");
- (void) mvaddstr(CYBASE - 1, CXBASE - 3, numbers);
- 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));
-#endif /* A_COLOR */
- (void) addch(' ');
- for (j = 0; j < BWIDTH; j++)
- (void) addstr(" . ");
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- (void) addch(' ');
- (void) addch((chtype)(i + 'A'));
- }
-
- (void) mvaddstr(CYBASE + BDEPTH,CXBASE - 3,numbers);
-
- (void) mvprintw(HYBASE, HXBASE,
- "To position your ships: move the cursor to a spot, then");
- (void) mvprintw(HYBASE+1,HXBASE,
- "type the first letter of a ship type to select it, then");
- (void) mvprintw(HYBASE+2,HXBASE,
- "type a direction ([hjkl] or [4862]), indicating how the");
- (void) mvprintw(HYBASE+3,HXBASE,
- "ship should be pointed. You may also type a ship letter");
- (void) mvprintw(HYBASE+4,HXBASE,
- "followed by `r' to position it randomly, or type `R' to");
- (void) mvprintw(HYBASE+5,HXBASE,
- "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");
-
- /* have the computer place ships */
- for(ss = cpuship; ss < cpuship + SHIPTYPES; ss++)
- {
- randomplace(COMPUTER, ss);
- placeship(COMPUTER, ss, FALSE);
- }
-
- ss = (ship_t *)NULL;
- do {
- char c, docked[SHIPTYPES + 2], *cp = docked;
-
- /* figure which ships still wait to be placed */
- *cp++ = 'R';
- for (i = 0; i < SHIPTYPES; i++)
- if (!plyship[i].placed)
- *cp++ = plyship[i].symbol;
- *cp = '\0';
-
- /* get a command letter */
- prompt(1, "Type one of [%s] to pick a ship.", docked+1);
- do {
- c = getcoord(PLAYER);
- } while
- (!strchr(docked, c));
-
- if (c == 'R')
- (void) ungetch('R');
- else
- {
- /* map that into the corresponding symbol */
- for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
- if (ss->symbol == c)
- break;
-
- prompt(1, "Type one of [hjklrR] to place your %s.", ss->name);
- pgoto(cury, curx);
- }
-
- do {
- c = getch();
- } while
- (!strchr("hjklrR", c) || c == FF);
-
- 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);
- error((char *)NULL);
- ss->placed = TRUE;
- }
- else if (c == 'R')
- {
- prompt(1, "Placing the rest of your fleet at random...", "");
- for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
- if (!ss->placed)
- {
- randomplace(PLAYER, ss);
- placeship(PLAYER, ss, TRUE);
- ss->placed = TRUE;
- }
- error((char *)NULL);
- }
- else if (strchr("hjkl8462", c))
- {
- 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;
- }
-
- if (checkplace(PLAYER, ss, TRUE))
- {
- placeship(PLAYER, ss, TRUE);
- error((char *)NULL);
- ss->placed = TRUE;
- }
- }
-
- for (unplaced = i = 0; i < SHIPTYPES; i++)
- unplaced += !plyship[i].placed;
- } while
- (unplaced);
-
- turn = rnd(2);
-
- (void) mvprintw(HYBASE, HXBASE,
- "To fire, move the cursor to your chosen aiming point ");
- (void) mvprintw(HYBASE+1, HXBASE,
- "and strike any key other than a motion key. ");
- (void) mvprintw(HYBASE+2, HXBASE,
- " ");
- (void) mvprintw(HYBASE+3, HXBASE,
- " ");
- (void) mvprintw(HYBASE+4, HXBASE,
- " ");
- (void) mvprintw(HYBASE+5, HXBASE,
- " ");
-
- (void) prompt(0, "Press any key to start...", "");
- (void) getch();
-}
-
-static int getcoord(int atcpu)
-{
- int ny, nx, c;
-
- if (atcpu)
- cgoto(cury,curx);
- else
- pgoto(cury, curx);
- (void)refresh();
- for (;;)
- {
- if (atcpu)
- {
- (void) mvprintw(CYBASE + BDEPTH+1, CXBASE+11, "(%d, %c)", curx, 'A'+cury);
- cgoto(cury, curx);
- }
- else
- {
- (void) mvprintw(PYBASE + BDEPTH+1, PXBASE+11, "(%d, %c)", curx, 'A'+cury);
- pgoto(cury, curx);
- }
-
- switch(c = getch())
- {
- case 'k': case '8':
-#ifdef KEY_MIN
- case KEY_UP:
-#endif /* KEY_MIN */
- ny = cury+BDEPTH-1; nx = curx;
- break;
- case 'j': case '2':
-#ifdef KEY_MIN
- case KEY_DOWN:
-#endif /* KEY_MIN */
- ny = cury+1; nx = curx;
- break;
- case 'h': case '4':
-#ifdef KEY_MIN
- case KEY_LEFT:
-#endif /* KEY_MIN */
- ny = cury; nx = curx+BWIDTH-1;
- break;
- case 'l': case '6':
-#ifdef KEY_MIN
- case KEY_RIGHT:
-#endif /* KEY_MIN */
- ny = cury; nx = curx+1;
- break;
- case 'y': case '7':
-#ifdef KEY_MIN
- case KEY_A1:
-#endif /* KEY_MIN */
- ny = cury+BDEPTH-1; nx = curx+BWIDTH-1;
- break;
- case 'b': case '1':
-#ifdef KEY_MIN
- case KEY_C1:
-#endif /* KEY_MIN */
- ny = cury+1; nx = curx+BWIDTH-1;
- break;
- case 'u': case '9':
-#ifdef KEY_MIN
- case KEY_A3:
-#endif /* KEY_MIN */
- ny = cury+BDEPTH-1; nx = curx+1;
- break;
- case 'n': case '3':
-#ifdef KEY_MIN
- case KEY_C3:
-#endif /* KEY_MIN */
- ny = cury+1; nx = curx+1;
- break;
- case FF:
- nx = curx; ny = cury;
- (void)clearok(stdscr, TRUE);
- (void)refresh();
- break;
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT myevent;
-
- getmouse(&myevent);
- if (atcpu
- && myevent.y >= CY(0) && myevent.y <= CY(BDEPTH)
- && myevent.x >= CX(0) && myevent.x <= CX(BDEPTH))
- {
- curx = CXINV(myevent.x);
- cury = CYINV(myevent.y);
- return(' ');
- }
- else
- {
- beep();
- continue;
- }
- }
- /* no fall through */
-#endif /* NCURSES_MOUSE_VERSION */
-
- default:
- if (atcpu)
- (void) mvaddstr(CYBASE + BDEPTH + 1, CXBASE + 11, " ");
- else
- (void) mvaddstr(PYBASE + BDEPTH + 1, PXBASE + 11, " ");
- return(c);
- }
-
- curx = nx % BWIDTH;
- cury = ny % BDEPTH;
- }
-}
-
-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)
- return(collide);
-
- /* anything on the neighbors */
- if (!closepack)
- {
- int i;
-
- for (i = 0; i < 8; i++)
- {
- int xend, yend;
-
- yend = y + yincr[i];
- xend = x + xincr[i];
- if (ONBOARD(xend, yend)
- && IS_SHIP(board[b][xend][yend])) {
- collide = TRUE;
- break;
- }
- }
- }
- return(collide);
-}
-
-static bool checkplace(int b, ship_t *ss, int vis)
-{
- 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))
- {
- if (vis)
- switch(rnd(3))
- {
- case 0:
- error("Ship is hanging from the edge of the world");
- break;
- case 1:
- error("Try fitting it on the board");
- break;
- case 2:
- error("Figure I won't find it if you put it there?");
- break;
- }
- return(FALSE);
- }
-
- for(l = 0; l < ss->length; ++l)
- {
- if(collidecheck(b, ss->y+l*yincr[ss->dir], ss->x+l*xincr[ss->dir]))
- {
- 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);
- }
- }
- return(TRUE);
-}
-
-static int awinna(void)
-{
- int i, j;
- ship_t *ss;
-
- for(i=0; i<2; ++i)
- {
- ss = (i) ? cpuship : plyship;
- for(j=0; j < SHIPTYPES; ++j, ++ss)
- if(ss->length > ss->hits)
- break;
- if (j == SHIPTYPES)
- return(OTHER);
- }
- return(-1);
-}
-
-static ship_t *hitship(int x, int y)
-/* register a hit on the targeted ship */
-{
- ship_t *sb, *ss;
- char sym;
- int oldx, oldy;
-
- 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 (++ss->hits < ss->length) /* still afloat? */
- return((ship_t *)NULL);
- else /* sunk! */
- {
- int i, j;
-
- if (!closepack)
- 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];
-
- for (i = -1; i <= ss->length; ++i)
- {
- int x1, y1;
-
- x1 = bx + i * xincr[ss->dir];
- y1 = by + i * yincr[ss->dir];
- if (ONBOARD(x1, y1))
- {
- hits[turn][x1][y1] = MARK_MISS;
- if (turn % 2 == PLAYER)
- {
- cgoto(y1, x1);
-#ifdef A_COLOR
- if (has_colors())
- attron(COLOR_PAIR(COLOR_GREEN));
-#endif /* A_COLOR */
- (void)addch(MARK_MISS);
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- }
- }
- }
- }
-
- 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;
- if (turn % 2 == PLAYER)
- {
- cgoto(y1, x1);
- (void) addch((chtype)(ss->symbol));
- }
- }
-
- (void) move(oldy, oldx);
- return(ss);
- }
- }
- (void) move(oldy, oldx);
- return((ship_t *)NULL);
-}
-
-static int plyturn(void)
-{
- ship_t *ss;
- bool hit;
- NCURSES_CONST char *m = NULL;
-
- prompt(1, "Where do you want to shoot? ", "");
- for (;;)
- {
- (void) getcoord(COMPUTER);
- if (hits[PLAYER][curx][cury])
- {
- prompt(1, "You shelled this spot already! Try again.", "");
- beep();
- }
- else
- break;
- }
- hit = IS_SHIP(board[COMPUTER][curx][cury]);
- hits[PLAYER][curx][cury] = (hit ? MARK_HIT : MARK_MISS);
- cgoto(cury, curx);
-#ifdef A_COLOR
- if (has_colors()) {
- if (hit)
- attron(COLOR_PAIR(COLOR_RED));
- else
- attron(COLOR_PAIR(COLOR_GREEN));
- }
-#endif /* A_COLOR */
- (void) addch((chtype)hits[PLAYER][curx][cury]);
-#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))
- {
- case 0:
- m = " You sank my %s!";
- break;
- case 1:
- m = " I have this sinking feeling about my %s....";
- break;
- case 2:
- m = " My %s has gone to Davy Jones's locker!";
- break;
- case 3:
- m = " Glub, glub -- my %s is headed for the bottom!";
- break;
- case 4:
- m = " You'll pick up survivors from my %s, I hope...!";
- break;
- }
- (void)printw(m, ss->name);
- (void)beep();
- return(awinna() == -1);
- }
- return (hit);
-}
-
-static int sgetc(const char *s)
-{
- const char *s1;
- int ch;
-
- (void)refresh();
- for(;;)
- {
- ch = getch();
- if (islower(ch))
- ch = toupper(ch);
- if (ch == CTRLC)
- uninitgame(0);
- for (s1=s; *s1 && ch != *s1; ++s1)
- continue;
- if (*s1)
- {
- (void) addch((chtype)ch);
- (void)refresh();
- return(ch);
- }
- }
-}
-
-
-static void randomfire(int *px, int *py)
-/* random-fire routine -- implements simple diagonal-striping strategy */
-{
- static int turncount = 0;
- static int srchstep = BEGINSTEP;
- 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;
-
- if (turncount++ == 0)
- huntoffs = rnd(srchstep);
-
- /* first, list all possible moves */
- nposs = npref = 0;
- for (x = 0; x < BWIDTH; x++)
- for (y = 0; y < BDEPTH; y++)
- if (!hits[COMPUTER][x][y])
- {
- xpossible[nposs] = x;
- ypossible[nposs] = y;
- nposs++;
- if (((x+huntoffs) % srchstep) != (y % srchstep))
- {
- xpreferred[npref] = x;
- ypreferred[npref] = y;
- npref++;
- }
- }
-
- if (npref)
- {
- i = rnd(npref);
-
- *px = xpreferred[i];
- *py = ypreferred[i];
- }
- else if (nposs)
- {
- i = rnd(nposs);
-
- *px = xpossible[i];
- *py = ypossible[i];
-
- if (srchstep > 1)
- --srchstep;
- }
- else
- {
- error("No moves possible?? Help!");
- exit(EXIT_FAILURE);
- /*NOTREACHED*/
- }
-}
-
-#define S_MISS 0
-#define S_HIT 1
-#define S_SUNK -1
-
-static int cpufire(int x, int y)
-/* fire away at given location */
-{
- bool hit, sunk;
- ship_t *ss = NULL;
-
- 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");
- if ((sunk = (hit && (ss = hitship(x, y)))) != 0)
- (void) printw(" I've sunk your %s", ss->name);
- (void)clrtoeol();
-
- pgoto(y, x);
-#ifdef A_COLOR
- if (has_colors()) {
- if (hit)
- attron(COLOR_PAIR(COLOR_RED));
- else
- attron(COLOR_PAIR(COLOR_GREEN));
- }
-#endif /* A_COLOR */
- (void)addch((chtype)(hit ? SHOWHIT : SHOWSPLASH));
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
-
- return ((hit ? (sunk ? S_SUNK : S_HIT) : S_MISS) ? TRUE : FALSE);
-}
-
-/*
- * This code implements a fairly irregular FSM, so please forgive the rampant
- * unstructuredness below. The five labels are states which need to be held
- * between computer turns.
- */
-static bool cputurn(void)
-{
-#define POSSIBLE(x, y) (ONBOARD(x, y) && !hits[COMPUTER][x][y])
-#define RANDOM_FIRE 0
-#define RANDOM_HIT 1
-#define HUNT_DIRECT 2
-#define FIRST_PASS 3
-#define REVERSE_JUMP 4
-#define SECOND_PASS 5
- static int next = RANDOM_FIRE;
- static bool used[4];
- static ship_t ts;
- int navail, x, y, d, n;
- int hit = S_MISS;
-
- switch(next)
- {
- case RANDOM_FIRE: /* last shot was random and missed */
- refire:
- randomfire(&x, &y);
- if (!(hit = cpufire(x, y)))
- next = RANDOM_FIRE;
- else
- {
- ts.x = x; ts.y = y;
- 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;
- /* 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];
- if (!used[d] && POSSIBLE(x, y))
- navail++;
- else
- used[d] = TRUE;
- }
- if (navail == 0) /* no valid places for shots adjacent... */
- goto refire; /* ...so we must random-fire */
- else
- {
- for (d = 0, n = rnd(navail) + 1; n; n--)
- while (used[d])
- d++;
-
- assert(d <= 4);
-
- used[d] = FALSE;
- x = ts.x + xincr[d*2];
- y = ts.y + yincr[d*2];
-
- 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++;
- next = (hit == S_SUNK) ? RANDOM_FIRE : FIRST_PASS;
- }
- }
- break;
-
- case FIRST_PASS: /* we have a start and a direction now */
- 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 : FIRST_PASS;
- }
- else
- next = REVERSE_JUMP;
- break;
-
- 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];
- 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;
- }
- else
- next = RANDOM_FIRE;
- break;
-
- case SECOND_PASS: /* kill squares not caught on first pass */
- 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;
- break;
- }
- else
- next = RANDOM_FIRE;
- break;
- }
-
- /* check for continuation and/or winner */
- if (salvo)
- {
- (void)refresh();
- (void)sleep(1);
- }
- if (awinna() != -1)
- return(FALSE);
-
-#ifdef DEBUG
- (void) mvprintw(PROMPTLINE + 2, 0,
- "New state %d, x=%d, y=%d, d=%d",
- next, x, y, d);
-#endif /* DEBUG */
- return ((hit) ? TRUE : FALSE);
-}
-
-static
-int playagain(void)
-{
- int j;
- ship_t *ss;
-
- for (ss = cpuship; ss < cpuship + SHIPTYPES; ss++)
- for(j = 0; j < ss->length; j++)
- {
- cgoto(ss->y + j * yincr[ss->dir], ss->x + j * xincr[ss->dir]);
- (void)addch((chtype)ss->symbol);
- }
-
- if(awinna())
- ++cpuwon;
- else
- ++plywon;
- j = 18 + strlen(name);
- if(plywon >= 10)
- ++j;
- if(cpuwon >= 10)
- ++j;
- (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');
-}
-
-static void do_options(int c, char *op[])
-{
- register int i;
-
- if (c > 1)
- {
- for (i=1; i<c; i++)
- {
- switch(op[i][0])
- {
- default:
- case '?':
- (void) fprintf(stderr, "Usage: battle [-s | -b] [-c]\n");
- (void) fprintf(stderr, "\tWhere the options are:\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);
- break;
- case '-':
- switch(op[i][1])
- {
- case 'b':
- blitz = 1;
- if (salvo == 1)
- {
- (void) fprintf(stderr,
- "Bad Arg: -b and -s are mutually exclusive\n");
- exit(EXIT_FAILURE);
- }
- break;
- case 's':
- salvo = 1;
- if (blitz == 1)
- {
- (void) fprintf(stderr,
- "Bad Arg: -s and -b are mutually exclusive\n");
- exit(EXIT_FAILURE);
- }
- break;
- case 'c':
- closepack = 1;
- break;
- default:
- (void) fprintf(stderr,
- "Bad arg: type \"%s ?\" for usage message\n", op[0]);
- exit(EXIT_FAILURE);
- }
- }
- }
- }
-}
-
-static int scount(int who)
-{
- register int i, shots;
- register ship_t *sp;
-
- if (who)
- sp = cpuship; /* count cpu shots */
- else
- sp = plyship; /* count player shots */
-
- for (i=0, shots = 0; i < SHIPTYPES; i++, sp++)
- {
- if (sp->hits >= sp->length)
- continue; /* dead ship */
- else
- shots++;
- }
- return(shots);
-}
-
-int main(int argc, char *argv[])
-{
- do_options(argc, argv);
-
- intro();
- do {
- initgame();
- while(awinna() == -1)
- {
- if (!blitz)
- {
- if (!salvo)
- {
- if(turn)
- (void) cputurn();
- else
- (void) plyturn();
- }
- else
- {
- register int i;
-
- i = scount(turn);
- while (i--)
- {
- if (turn)
- {
- if (cputurn() && awinna() != -1)
- i = 0;
- }
- else
- {
- if (plyturn() && awinna() != -1)
- i = 0;
- }
- }
- }
- }
- else
- while(turn ? cputurn() : plyturn())
- continue;
- turn = OTHER;
- }
- } while
- (playagain());
- uninitgame(0);
- /*NOTREACHED*/
-}
-
-/* bs.c ends here */
diff --git a/ncurses-5.2/test/cardfile.c b/ncurses-5.2/test/cardfile.c
deleted file mode 100644
index 7558cb9..0000000
--- a/ncurses-5.2/test/cardfile.c
+++ /dev/null
@@ -1,420 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1999
- *
- * $Id$
- *
- * File format: text beginning in column 1 is a title; other text forms the content.
- */
-
-#include <test.priv.h>
-
-#include <form.h>
-#include <panel.h>
-
-#include <string.h>
-#include <ctype.h>
-
-#define VISIBLE_CARDS 10
-#define OFFSET_CARD 2
-
-#ifndef CTRL
-#define CTRL(x) ((x) & 0x1f)
-#endif
-
-typedef struct _card {
- struct _card *link;
- PANEL *panel;
- FORM *form;
- char *title;
- char *content;
-} CARD;
-
-static CARD *all_cards;
-static char default_name[] = "cardfile.dat";
-
-#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 */
-
-static const char *
-skip(const char *buffer)
-{
- while (isspace(*buffer))
- buffer++;
- return buffer;
-}
-
-static void
-trim(char *buffer)
-{
- unsigned n = strlen(buffer);
- while (n-- && isspace(buffer[n]))
- buffer[n] = 0;
-}
-
-/*******************************************************************************/
-
-static CARD *
-add_title(const char *title)
-{
- CARD *card, *p, *q;
-
- for (p = all_cards, q = 0; p != 0; q = p, p = p->link) {
- int cmp = strcmp(p->title, title);
- if (cmp == 0)
- return p;
- if (cmp > 0)
- break;
- }
-
- card = (CARD *) calloc(1, sizeof(CARD));
- card->title = strdup(title);
- card->content = strdup("");
-
- if (q == 0) {
- card->link = all_cards;
- all_cards = card;
- } else {
- card->link = q->link;
- q->link = card;
- }
-
- return card;
-}
-
-static void
-add_content(CARD * card, const char *content)
-{
- unsigned total, offset;
-
- content = skip(content);
- if ((total = strlen(content)) != 0) {
- if ((offset = strlen(card->content)) != 0) {
- total += 1 + offset;
- card->content = (char *) realloc(card->content, total + 1);
- strcpy(card->content + offset++, " ");
- } else {
- card->content = (char *) malloc(total + 1);
- }
- strcpy(card->content + offset, content);
- }
-}
-
-static CARD *
-new_card(void)
-{
- CARD *card = add_title("");
- add_content(card, "");
- return card;
-}
-
-static CARD *
-find_card(char *title)
-{
- CARD *card;
-
- for (card = all_cards; card != 0; card = card->link)
- if (!strcmp(card->title, title))
- break;
-
- return card;
-}
-
-static void
-read_data(char *fname)
-{
- FILE *fp;
- CARD *card = 0;
- char buffer[BUFSIZ];
-
- if ((fp = fopen(fname, "r")) != 0) {
- while (fgets(buffer, sizeof(buffer), fp)) {
- trim(buffer);
- if (isspace(*buffer)) {
- if (card == 0)
- card = add_title("");
- add_content(card, buffer);
- } else if ((card = find_card(buffer)) == 0) {
- card = add_title(buffer);
- }
- }
- fclose(fp);
- }
-}
-
-/*******************************************************************************/
-
-static void
-write_data(const char *fname)
-{
- FILE *fp;
- CARD *p = 0;
- int n;
-
- if (!strcmp(fname, default_name))
- fname = "cardfile.out";
-
- if ((fp = fopen(fname, "w")) != 0) {
- for (p = all_cards; p != 0; p = p->link) {
- FIELD **f = form_fields(p->form);
- for (n = 0; f[n] != 0; n++) {
- char *s = field_buffer(f[n], 0);
- if (s != 0
- && (s = strdup(s)) != 0) {
- trim(s);
- fprintf(fp, "%s%s\n", n ? "\t" : "", s);
- free(s);
- }
- }
- }
- fclose(fp);
- }
-}
-
-/*******************************************************************************/
-
-/*
- * Count the cards
- */
-static int
-count_cards(void)
-{
- CARD *p;
- int count = 0;
-
- for (p = all_cards; p != 0; p = p->link)
- count++;
-
- return count;
-}
-
-/*
- * Shuffle the panels to keep them in a natural hierarchy.
- */
-static void
-order_cards(CARD * first, int depth)
-{
- if (first) {
- if (depth && first->link)
- order_cards(first->link, depth - 1);
- top_panel(first->panel);
- }
-}
-
-/*
- * Return the next card in the list
- */
-static CARD *
-next_card(CARD * now)
-{
- if (now->link)
- now = now->link;
- return now;
-}
-
-/*
- * Return the previous card in the list
- */
-static CARD *
-prev_card(CARD * now)
-{
- CARD *p;
- for (p = all_cards; p != 0; p = p->link)
- if (p->link == now)
- return p;
- return now;
-}
-
-/*******************************************************************************/
-
-static int
-form_virtualize(WINDOW *w)
-{
- int c = wgetch(w);
-
- switch (c) {
- case CTRL('W'):
- return (MAX_FORM_COMMAND + 4);
- case CTRL('N'):
- return (MAX_FORM_COMMAND + 3);
- case CTRL('P'):
- return (MAX_FORM_COMMAND + 2);
- case CTRL('Q'):
- case 033:
- return (MAX_FORM_COMMAND + 1);
-
- case KEY_BACKSPACE:
- return (REQ_DEL_PREV);
- case KEY_DC:
- return (REQ_DEL_CHAR);
- case KEY_LEFT:
- return (REQ_LEFT_CHAR);
- case KEY_RIGHT:
- return (REQ_RIGHT_CHAR);
-
- case KEY_DOWN:
- case KEY_NEXT:
- return (REQ_NEXT_FIELD);
- case KEY_UP:
- case KEY_PREVIOUS:
- return (REQ_PREV_FIELD);
-
- default:
- return (c);
- }
-}
-
-/*******************************************************************************/
-
-static void
-cardfile(char *fname)
-{
- WINDOW *win;
- CARD *p;
- CARD *top_card;
- int visible_cards = count_cards();
- int panel_wide = COLS - (visible_cards * OFFSET_CARD);
- int panel_high = LINES - (visible_cards * OFFSET_CARD) - 5;
- int form_wide = panel_wide - 2;
- int form_high = panel_high - 2;
- int x = (visible_cards - 1) * OFFSET_CARD;
- int y = 0;
- int ch;
- 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");
-
- /* 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);
- 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);
- 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;
- }
-
- order_cards(top_card = all_cards, visible_cards);
-
- while (!finished) {
- update_panels();
- doupdate();
-
- switch (form_driver(top_card->form, ch =
- form_virtualize(panel_window(top_card->panel)))) {
- case E_OK:
- break;
- case E_UNKNOWN_COMMAND:
- switch (ch) {
- case MAX_FORM_COMMAND + 1:
- finished = TRUE;
- break;
- case MAX_FORM_COMMAND + 2:
- top_card = prev_card(top_card);
- order_cards(top_card, visible_cards);
- break;
- case MAX_FORM_COMMAND + 3:
- top_card = next_card(top_card);
- order_cards(top_card, visible_cards);
- break;
- case MAX_FORM_COMMAND + 4:
- write_data(fname);
- break;
- default:
- beep();
- break;
- }
- break;
- default:
- flash();
- break;
- }
- }
-}
-
-/*******************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
- int n;
-
- initscr();
- cbreak();
- noecho();
-
- if (argc > 1) {
- for (n = 1; n < argc; n++)
- read_data(argv[n]);
- if (count_cards() == 0)
- new_card();
- cardfile(argv[1]);
- } else {
- read_data(default_name);
- if (count_cards() == 0)
- new_card();
- cardfile(default_name);
- }
-
- endwin();
-
- return EXIT_SUCCESS;
-}
diff --git a/ncurses-5.2/test/cardfile.dat b/ncurses-5.2/test/cardfile.dat
deleted file mode 100644
index deb4b76..0000000
--- a/ncurses-5.2/test/cardfile.dat
+++ /dev/null
@@ -1,13 +0,0 @@
-title 1
- Some text for title1
- and some more text
-title 2
- The quicker brown fox ran all over the lazy dog.
-put a card before the first two
- This is an example of a simple cardfile.
-show a fourth card
- The fourth card
- has a large amount of data,
- more than the other cards.
- At least, that is what I thought it should do, since I want to see how well
- the forms package handles justification.
diff --git a/ncurses-5.2/test/configure b/ncurses-5.2/test/configure
deleted file mode 100755
index de1cf77..0000000
--- a/ncurses-5.2/test/configure
+++ /dev/null
@@ -1,1998 +0,0 @@
-#! /bin/sh
-
-# 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.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# 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
-
-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"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$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="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # 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" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # 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
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -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-5lib use SunOS sysv-libraries
- --with-ncurses use ncurses-libraries (installed)
-EOF
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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="$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="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13.20000819"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # 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'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # 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" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -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-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" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- 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"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-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
-
-# 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
-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" ;;
- 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
-
-# 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
-
-# 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.c
-
-# 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%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-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; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-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
-
-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
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:532: 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 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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:562: 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 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_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"
-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
- # 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" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-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:613: 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 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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-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; }
-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
-
-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
-
-cat > conftest.$ac_ext << EOF
-
-#line 656 "configure"
-#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
- 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
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_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_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:687: 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:692: 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:701: \"$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
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-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:720: 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
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-
-CC_G_OPT="-g"
-CC_SHARED_OPTS=unknown
-CPPFLAGS="$CPPFLAGS"
-DFT_DEP_SUFFIX=""
-DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`
-DFT_UPR_MODEL="NORMAL"
-ECHO_LINK='@ echo linking $@ ... ;'
-EXTRA_LIBS=""
-LD="ld"
-LDFLAGS_SHARED=""
-LD_MODEL=""
-LD_SHARED_OPTS=""
-LIBTOOL=""
-LIB_NAME=curses
-LIB_PREFIX="-l"
-LINK_TESTS=""
-LINT=lint
-LINT_OPTS=""
-LOCAL_LDFLAGS=""
-MATH_LIB="-lm"
-PROG_EXT=""
-TEST_ARGS=""
-TEST_DEPS=""
-cf_cv_abi_version=""
-cf_cv_rel_version=""
-
-
-# Check whether --with-5lib or --without-5lib was given.
-if test "${with_5lib+set}" = set; then
- withval="$with_5lib"
- LIBS="-L/usr/5lib $LIBS"
- CPPFLAGS="$CPPFLAGS -I/usr/5include"
-fi
-
-
-
-# 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
-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"
-#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:820: \"$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:839: 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 847 "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:858: \"$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=ncurses
- for p in $HOME /usr/local /usr
- do
- if test -f $p/include/ncurses/curses.h
- then
- CPPFLAGS="$CPPFLAGS -I$p/include/ncurses"
- test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
- test $p != /usr && LIBS="-L$p/lib $LIBS"
- break
- elif test $p != /usr
- then
- if test -f $p/include/curses.h
- then
- CPPFLAGS="$CPPFLAGS -I$p/include"
- LIBS="-L$p/lib $LIBS"
- break
- fi
- fi
- done
-
-fi
-
-fi
-
-
-
-
-echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:913: 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 918 "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:941: \"$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 initscr in -l$LIB_NAME""... $ac_c" 1>&6
-echo "configure:960: checking for initscr in -l$LIB_NAME" >&5
-ac_lib_var=`echo $LIB_NAME'_'initscr | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-l$LIB_NAME $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 968 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:979: \"$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 $LIB_NAME | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-l$LIB_NAME $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-echo $ac_n "checking for form_driver in -lform""... $ac_c" 1>&6
-echo "configure:1009: 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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lform $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1017 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char form_driver();
-
-int main() {
-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
- 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 form | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lform $LIBS"
-
-else
- echo "$ac_t""no" 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
-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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lmenu $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1064 "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 menu_driver();
-
-int main() {
-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
- 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 menu | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lmenu $LIBS"
-
-else
- echo "$ac_t""no" 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
-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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lpanel $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1111 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char new_panel();
-
-int main() {
-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
- 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 panel | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lpanel $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:1151: checking return type of signal handlers" >&5
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1156 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() {
-int i;
-; return 0; }
-EOF
-if { (eval echo configure:1173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- 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
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-
-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
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1208 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1214: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1225 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 1242 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1248: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1273: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1278 "configure"
-#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:1286: \"$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_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1303 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-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*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1321 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-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*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 1342 "configure"
-#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); }
-
-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
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-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
-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"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:1391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-for ac_hdr in \
-form.h \
-getopt.h \
-menu.h \
-nc_alloc.h \
-panel.h \
-sys/ioctl.h \
-sys/select.h \
-sys/time.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:1426: 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 1431 "configure"
-#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; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-for ac_func in \
-gettimeofday \
-napms \
-resizeterm \
-strdup \
-use_default_colors \
-vsscanf \
-wresize \
-
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1474: 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 1479 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* 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() {
-
-/* 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();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1502: \"$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
-
-
-echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
-echo "configure:1528: 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 test "$cross_compiling" = yes; then
- cf_cv_func_curses_version=unknown
-else
- cat > conftest.$ac_ext <<EOF
-#line 1537 "configure"
-#include "confdefs.h"
-
-#include <curses.h>
-int main()
-{
- char temp[1024];
- sprintf(temp, "%s\n", curses_version());
- exit(0);
-}
-
-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
-then
- cf_cv_func_curses_version=yes
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- cf_cv_func_curses_version=no
-
-fi
-rm -fr conftest*
-fi
-
-rm -f core
-fi
-
-echo "$ac_t""$cf_cv_func_curses_version" 1>&6
-test "$cf_cv_func_curses_version" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_CURSES_VERSION 1
-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
-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"
-#include "confdefs.h"
-
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:1593: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_sys_time_select=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_sys_time_select=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_sys_time_select" 1>&6
-test $cf_cv_sys_time_select = yes && cat >> confdefs.h <<\EOF
-#define HAVE_SYS_TIME_SELECT 1
-EOF
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# 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.
-#
-# 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.
-#
-EOF
-# 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
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- 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}'
-
-# 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.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# 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
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -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 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "Makefile ncurses_cfg.h:ncurses_tst.hin" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# 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%@CC@%$CC%g
-s%@CC_G_OPT@%$CC_G_OPT%g
-s%@CC_SHARED_OPTS@%$CC_SHARED_OPTS%g
-s%@DFT_DEP_SUFFIX@%$DFT_DEP_SUFFIX%g
-s%@DFT_OBJ_SUBDIR@%$DFT_OBJ_SUBDIR%g
-s%@DFT_UPR_MODEL@%$DFT_UPR_MODEL%g
-s%@ECHO_LINK@%$ECHO_LINK%g
-s%@EXTRA_LIBS@%$EXTRA_LIBS%g
-s%@LD@%$LD%g
-s%@LDFLAGS_SHARED@%$LDFLAGS_SHARED%g
-s%@LD_MODEL@%$LD_MODEL%g
-s%@LD_SHARED_OPTS@%$LD_SHARED_OPTS%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@LIB_NAME@%$LIB_NAME%g
-s%@LIB_PREFIX@%$LIB_PREFIX%g
-s%@LINK_TESTS@%$LINK_TESTS%g
-s%@LINT@%$LINT%g
-s%@LINT_OPTS@%$LINT_OPTS%g
-s%@LOCAL_LDFLAGS@%$LOCAL_LDFLAGS%g
-s%@MATH_LIB@%$MATH_LIB%g
-s%@PROG_EXT@%$PROG_EXT%g
-s%@TEST_ARGS@%$TEST_ARGS%g
-s%@TEST_DEPS@%$TEST_DEPS%g
-s%@cf_cv_abi_version@%$cf_cv_abi_version%g
-s%@cf_cv_rel_version@%$cf_cv_rel_version%g
-s%@CPP@%$CPP%g
-
-CEOF
-EOF
-
-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_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
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # 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" ;;
- 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%/[^/][^/]*$%%'`
- 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%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- 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" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- 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
-
- 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
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# 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_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'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="ncurses_cfg.h:ncurses_tst.hin"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # 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" ;;
- 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
-
-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'.
-sort confdefs.h >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
-while :
-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
- echo 'CEOF' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-# Run sed to substitute the contents of conftest.frag into conftest.in at the
-# 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
-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
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-# Extra initialization commands, if any
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-# Extra commands, if any
-
- cat >>Makefile <<TEST_EOF
-
-# These rules are generated so we do not rely on suffix rules, which do not
-# work consistently for different make-programs (the '\$(MODEL)/' confuses
-# some, and the '\$x' confuses others).
-TEST_EOF
-LIST=`make echo_tests`
-LAST=`make echo_suffix`
-for n in $LIST
-do
- N=`echo $n | sed -e s/${LAST}\$//`
- cat >>Makefile <<TEST_EOF
-
-\$(MODEL)/$N.o : $N.c \\
- test.priv.h \\
- ncurses_cfg.h
- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
-TEST_EOF
-done
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/ncurses-5.2/test/configure.in b/ncurses-5.2/test/configure.in
deleted file mode 100644
index a82999c..0000000
--- a/ncurses-5.2/test/configure.in
+++ /dev/null
@@ -1,199 +0,0 @@
-dnl***************************************************************************
-dnl Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
-dnl *
-dnl Permission is hereby granted, free of charge, to any person obtaining a *
-dnl copy of this software and associated documentation files (the *
-dnl "Software"), to deal in the Software without restriction, including *
-dnl without limitation the rights to use, copy, modify, merge, publish, *
-dnl distribute, distribute with modifications, sublicense, and/or sell *
-dnl copies of the Software, and to permit persons to whom the Software is *
-dnl furnished to do so, subject to the following conditions: *
-dnl *
-dnl The above copyright notice and this permission notice shall be included *
-dnl in all copies or substantial portions of the Software. *
-dnl *
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-dnl *
-dnl Except as contained in this notice, the name(s) of the above copyright *
-dnl holders shall not be used in advertising or otherwise to promote the *
-dnl sale, use or other dealings in this Software without prior written *
-dnl authorization. *
-dnl***************************************************************************
-dnl
-dnl Author: Thomas E. Dickey 1996,1997,1998,2000
-dnl
-dnl $Id$
-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
-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 ---------------------------------------------------------------------------
-AC_PREREQ(2.13.20000819)
-AC_INIT(ncurses.c)
-AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
-
-AC_PROG_CC
-
-dnl Things that we don't need (or must override) if we're not building ncurses
-CC_G_OPT="-g" AC_SUBST(CC_G_OPT)
-CC_SHARED_OPTS=unknown AC_SUBST(CC_SHARED_OPTS)
-CPPFLAGS="$CPPFLAGS" AC_SUBST(CPPFLAGS)
-DFT_DEP_SUFFIX="" AC_SUBST(DFT_DEP_SUFFIX)
-DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'` AC_SUBST(DFT_OBJ_SUBDIR)
-DFT_UPR_MODEL="NORMAL" AC_SUBST(DFT_UPR_MODEL)
-ECHO_LINK='@ echo linking $@ ... ;' AC_SUBST(ECHO_LINK)
-EXTRA_LIBS="" AC_SUBST(EXTRA_LIBS)
-LD="ld" AC_SUBST(LD)
-LDFLAGS_SHARED="" AC_SUBST(LDFLAGS_SHARED)
-LD_MODEL="" AC_SUBST(LD_MODEL)
-LD_SHARED_OPTS="" AC_SUBST(LD_SHARED_OPTS)
-LIBTOOL="" AC_SUBST(LIBTOOL)
-LIB_NAME=curses AC_SUBST(LIB_NAME)
-LIB_PREFIX="-l" AC_SUBST(LIB_PREFIX)
-LINK_TESTS="" AC_SUBST(LINK_TESTS)
-LINT=lint AC_SUBST(LINT)
-LINT_OPTS="" AC_SUBST(LINT_OPTS)
-LOCAL_LDFLAGS="" AC_SUBST(LOCAL_LDFLAGS)
-MATH_LIB="-lm" AC_SUBST(MATH_LIB)
-PROG_EXT="" AC_SUBST(PROG_EXT)
-TEST_ARGS="" AC_SUBST(TEST_ARGS)
-TEST_DEPS="" AC_SUBST(TEST_DEPS)
-cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version)
-cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version)
-
-dnl SunOS 4.x
-AC_ARG_WITH(5lib,
- [ --with-5lib use SunOS sysv-libraries],
- [LIBS="-L/usr/5lib $LIBS"
- CPPFLAGS="$CPPFLAGS -I/usr/5include"])
-
-dnl Ncurses, installed in conventional location
-AC_ARG_WITH(ncurses,
- [ --with-ncurses use ncurses-libraries (installed)],
- [AC_CHECK_FUNC(initscr,,[
- AC_CHECK_LIB(gpm,Gpm_Open)
- LIB_NAME=ncurses
- for p in $HOME /usr/local /usr
- do
- if test -f $p/include/ncurses/curses.h
- then
- CPPFLAGS="$CPPFLAGS -I$p/include/ncurses"
- test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
- test $p != /usr && LIBS="-L$p/lib $LIBS"
- break
- elif test $p != /usr
- then
- if test -f $p/include/curses.h
- then
- CPPFLAGS="$CPPFLAGS -I$p/include"
- LIBS="-L$p/lib $LIBS"
- break
- fi
- fi
- done
- ],[test -d /usr/ccs/lib && LIBS="-L/usr/ccs/lib $LIBS"])])
-
-dnl If we've not specified a library, assume we're using sysvr4 libraries
-dnl installed conventionally (e.g., SunOS 5.x - solaris).
-
-dnl Autoconf builds up the $LIBS in reverse order
-
-AC_CHECK_FUNC(initscr,,[
-AC_CHECK_LIB($LIB_NAME,initscr)])
-AC_CHECK_LIB(form,form_driver)
-AC_CHECK_LIB(menu,menu_driver)
-AC_CHECK_LIB(panel,new_panel)
-
-AC_TYPE_SIGNAL
-
-AC_STDC_HEADERS
-AC_HEADER_TIME
-AC_CHECK_HEADERS( \
-form.h \
-getopt.h \
-menu.h \
-nc_alloc.h \
-panel.h \
-sys/ioctl.h \
-sys/select.h \
-sys/time.h \
-termios.h \
-unistd.h \
-)
-
-AC_CHECK_FUNCS( \
-gettimeofday \
-napms \
-resizeterm \
-strdup \
-use_default_colors \
-vsscanf \
-wresize \
-)
-
-dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
-dnl It's a character string "SVR4", not documented.
-AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
-AC_TRY_RUN([
-#include <curses.h>
-int main()
-{
- char temp[1024];
- sprintf(temp, "%s\n", curses_version());
- exit(0);
-}]
-,[cf_cv_func_curses_version=yes]
-,[cf_cv_func_curses_version=no]
-,[cf_cv_func_curses_version=unknown])
-rm -f core])
-test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
-
-dnl ---------------------------------------------------------------------------
-dnl [CF_SYS_TIME_SELECT]
-AC_MSG_CHECKING(if sys/time.h conflicts with sys/select.h)
-AC_CACHE_VAL(cf_cv_sys_time_select,[
-AC_TRY_COMPILE([
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-],[],[cf_cv_sys_time_select=yes],
- [cf_cv_sys_time_select=no])
- ])
-AC_MSG_RESULT($cf_cv_sys_time_select)
-test $cf_cv_sys_time_select = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
-dnl ---------------------------------------------------------------------------
-
-AC_OUTPUT(Makefile,[
- cat >>Makefile <<TEST_EOF
-
-# These rules are generated so we do not rely on suffix rules, which do not
-# work consistently for different make-programs (the '\$(MODEL)/' confuses
-# some, and the '\$x' confuses others).
-TEST_EOF
-LIST=`make echo_tests`
-LAST=`make echo_suffix`
-for n in $LIST
-do
- N=`echo $n | sed -e s/${LAST}\$//`
- cat >>Makefile <<TEST_EOF
-
-\$(MODEL)/$N.o : $N.c \\
- test.priv.h \\
- ncurses_cfg.h
- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
-TEST_EOF
-done
-],[],sort)
diff --git a/ncurses-5.2/test/ditto.c b/ncurses-5.2/test/ditto.c
deleted file mode 100644
index 2c7d93f..0000000
--- a/ncurses-5.2/test/ditto.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1998
- *
- * $Id$
- *
- * The program illustrates how to set up multiple screens from a single
- * program. Invoke the program by specifying another terminal on the same
- * machine by specifying its device, e.g.,
- * ditto /dev/ttyp1
- */
-#include <test.priv.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-typedef struct {
- FILE *input;
- FILE *output;
- SCREEN *screen;
-} DITTO;
-
-static void
-failed(const char *s)
-{
- perror(s);
- exit(EXIT_FAILURE);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr, "usage: ditto [terminal1 ...]\n");
- exit(EXIT_FAILURE);
-}
-
-static FILE *
-open_tty(char *path)
-{
- 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;
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[] GCC_UNUSED)
-{
- int j;
- int active_tty = 0;
- DITTO *data;
-
- if (argc <= 1)
- usage();
-
- 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]);
- }
-
- /*
- * 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();
- }
- }
-
- /*
- * Cleanup and exit
- */
- for (j = argc-1; j >= 0; j--) {
- set_term(data[j].screen);
- endwin();
- }
- return EXIT_SUCCESS;
-}
diff --git a/ncurses-5.2/test/dots.c b/ncurses-5.2/test/dots.c
deleted file mode 100644
index b02d7bb..0000000
--- a/ncurses-5.2/test/dots.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1999
- *
- * $Id$
- *
- * A simple demo of the terminfo interface.
- */
-#include <test.priv.h>
-
-#include <term.h> /* for tparm() */
-
-#include <time.h>
-#include <signal.h>
-
-#define valid(s) ((s != 0) && s != (char *)-1)
-
-static bool interrupted = FALSE;
-
-static int
-outc(int c)
-{
- if (interrupted) {
- char tmp = c;
- write(STDOUT_FILENO, &tmp, 1);
- } else {
- putc(c, stdout);
- }
- return 0;
-}
-
-static bool
-outs(char *s)
-{
- if (valid(s)) {
- tputs(s, 1, outc);
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-cleanup(void)
-{
- outs(exit_attribute_mode);
- if (!outs(orig_colors))
- outs(orig_pair);
- outs(clear_screen);
- outs(cursor_normal);
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
- cleanup();
- exit(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int x, y, z, j, p;
- float r;
- float c;
-
- for (j = SIGHUP; j <= SIGTERM; j++)
- if (signal(j, SIG_IGN) != SIG_IGN)
- signal(j, onsig);
-
- srand(time(0));
- setupterm((char *) 0, 1, (int *) 0);
- outs(clear_screen);
- outs(cursor_invisible);
- if (max_colors > 1) {
- if (!valid(set_a_foreground)
- || !valid(set_a_background)
- || (!valid(orig_colors) && !valid(orig_pair)))
- max_colors = -1;
- }
-
- r = (float) (lines - 4);
- c = (float) (columns - 4);
-
- for (;;) {
- x = (int) (c * ranf()) + 2;
- y = (int) (r * ranf()) + 2;
- p = (ranf() > 0.9) ? '*' : ' ';
-
- tputs(tparm(cursor_address, y, x), 1, outc);
- if (max_colors > 0) {
- z = (int)(ranf() * max_colors);
- if (ranf() > 0.01) {
- tputs(tparm(set_a_foreground, z), 1, outc);
- } else {
- tputs(tparm(set_a_background, z), 1, outc);
- }
- } else if (valid(exit_attribute_mode)
- && valid(enter_reverse_mode)) {
- if (ranf() <= 0.01)
- outs((ranf() > 0.6) ? enter_reverse_mode :
- exit_attribute_mode);
- }
- outc(p);
- fflush(stdout);
- }
-}
diff --git a/ncurses-5.2/test/filter.c b/ncurses-5.2/test/filter.c
deleted file mode 100644
index 64a8688..0000000
--- a/ncurses-5.2/test/filter.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1998
- *
- * $Id$
- */
-#include <test.priv.h>
-
-/*
- * An example of the 'filter()' function in ncurses, this program prompts
- * for commands and executes them (like a command shell). It illustrates
- * how ncurses can be used to implement programs that are not full-screen.
- *
- * Ncurses differs slightly from SVr4 curses. The latter does not flush its
- * state when exiting program mode, so the attributes on the command lines of
- * this program 'bleed' onto the executed commands. Rather than use the
- * reset_shell_mode() and reset_prog_mode() functions, we could invoke endwin()
- * 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)
-{
- int code;
-
- attron(A_BOLD);
- printw("Command: ");
- attron(underline);
- code = getnstr(buffer, length);
- attroff(underline);
- attroff(A_BOLD);
- printw("\n");
-
- return code;
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- SCREEN *sp;
- char buffer[80];
- attr_t underline;
-
- filter();
- sp = newterm((char *) 0, stdout, stdin);
- cbreak();
- keypad(stdscr, TRUE);
-
- if (has_colors()) {
- int background = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() != ERR)
- background = -1;
-#endif
- init_pair(1, COLOR_CYAN, background);
- underline = COLOR_PAIR(1);
- } else {
- underline = A_UNDERLINE;
- }
-
- while (new_command(buffer, sizeof(buffer) - 1, underline) != ERR
- && strlen(buffer) != 0) {
- reset_shell_mode();
- printf("\n");
- fflush(stdout);
- system(buffer);
- reset_prog_mode();
- touchwin(stdscr);
- erase();
- refresh();
- }
- printw("done");
- refresh();
- endwin();
- return 0;
-}
diff --git a/ncurses-5.2/test/firework.c b/ncurses-5.2/test/firework.c
deleted file mode 100644
index 5f6465b..0000000
--- a/ncurses-5.2/test/firework.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * $Id$
- */
-#include <test.priv.h>
-
-#include <signal.h>
-#include <time.h>
-
-static int my_bg = COLOR_BLACK;
-
-static void
-cleanup(void)
-{
- curs_set(1);
- endwin();
-}
-
-static RETSIGTYPE
-onsig(int n GCC_UNUSED)
-{
- cleanup();
- exit(EXIT_FAILURE);
-}
-
-static void
-showit(void)
-{
- int ch;
- napms(120);
- if ((ch = getch()) != ERR) {
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- erase();
- } else
-#endif
- if (ch == 'q') {
- cleanup();
- exit(EXIT_SUCCESS);
- } else if (ch == 's') {
- nodelay(stdscr, FALSE);
- } else if (ch == ' ') {
- nodelay(stdscr, TRUE);
- }
- }
-}
-
-static
-int
-get_colour(chtype * bold)
-{
- int attr;
- attr = (rand() % 16) + 1;
-
- *bold = A_NORMAL;
- if (attr > 8) {
- *bold = A_BOLD;
- attr &= 7;
- }
- return (attr);
-}
-
-static
-void
-explode(int row, int col)
-{
- chtype bold;
- erase();
- mvprintw(row, col, "-");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 1, col - 1, " - ");
- mvprintw(row + 0, col - 1, "-+-");
- mvprintw(row + 1, col - 1, " - ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " --- ");
- mvprintw(row - 1, col - 2, "-+++-");
- mvprintw(row + 0, col - 2, "-+#+-");
- mvprintw(row + 1, col - 2, "-+++-");
- mvprintw(row + 2, col - 2, " --- ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " +++ ");
- mvprintw(row - 1, col - 2, "++#++");
- mvprintw(row + 0, col - 2, "+# #+");
- mvprintw(row + 1, col - 2, "++#++");
- mvprintw(row + 2, col - 2, " +++ ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " # ");
- mvprintw(row - 1, col - 2, "## ##");
- mvprintw(row + 0, col - 2, "# #");
- mvprintw(row + 1, col - 2, "## ##");
- mvprintw(row + 2, col - 2, " # ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " # # ");
- mvprintw(row - 1, col - 2, "# #");
- mvprintw(row + 0, col - 2, " ");
- mvprintw(row + 1, col - 2, "# #");
- mvprintw(row + 2, col - 2, " # # ");
- showit();
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int j;
- int start, end, row, diff, flag = 0, direction;
- unsigned seed;
-
- for (j = SIGHUP; j <= SIGTERM; j++)
- if (signal(j, SIG_IGN) != SIG_IGN)
- signal(j, onsig);
-
- initscr();
- noecho();
- cbreak();
- keypad(stdscr, TRUE);
- nodelay(stdscr, TRUE);
-
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- }
- curs_set(0);
-
- seed = time((time_t *) 0);
- srand(seed);
- for (;;) {
- do {
- start = rand() % (COLS - 3);
- end = rand() % (COLS - 3);
- start = (start < 2) ? 2 : start;
- end = (end < 2) ? 2 : end;
- direction = (start > end) ? -1 : 1;
- diff = abs(start - end);
- } while (diff < 2 || diff >= LINES - 2);
- attrset(A_NORMAL);
- for (row = 0; row < diff; row++) {
- mvprintw(LINES - row, start + (row * direction),
- (direction < 0) ? "\\" : "/");
- if (flag++) {
- showit();
- erase();
- flag = 0;
- }
- }
- if (flag++) {
- showit();
- flag = 0;
- }
- seed = time((time_t *) 0);
- srand(seed);
- explode(LINES - row, start + (diff * direction));
- erase();
- showit();
- }
-}
diff --git a/ncurses-5.2/test/firstlast.c b/ncurses-5.2/test/firstlast.c
deleted file mode 100644
index 2a7908d..0000000
--- a/ncurses-5.2/test/firstlast.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * This test was written by Alexander V. Lukyanov to demonstrate difference
- * between ncurses 4.1 and SVR4 curses
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-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;
- }
- }
- }
-}
-
-int main(
- int argc 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;
-}
diff --git a/ncurses-5.2/test/gdc.6 b/ncurses-5.2/test/gdc.6
deleted file mode 100644
index 7fa60de..0000000
--- a/ncurses-5.2/test/gdc.6
+++ /dev/null
@@ -1,22 +0,0 @@
-.TH GDC 6
-.SH NAME
-gdc \- grand digital clock (curses)
-.SH SYNOPSIS
-.B gdc
-[-s] [
-.I n
-]
-.SH DESCRIPTION
-.I Gdc
-runs a digital clock made of reverse-video blanks on a curses
-compatible VDU screen. With an optional numeric argument
-.I n
-it stops after
-.I n
-seconds (default never).
-The optional
-.B -s
-flag makes digits scroll as they change. In this curses mode implementation,
-the scrolling option has trouble keeping up.
-.SH AUTHOR
-Amos Shapir, modified for curses by John Lupien.
diff --git a/ncurses-5.2/test/gdc.c b/ncurses-5.2/test/gdc.c
deleted file mode 100644
index 487b042..0000000
--- a/ncurses-5.2/test/gdc.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Grand digital clock for curses compatible terminals
- * Usage: gdc [-s] [n] -- run for n seconds (default infinity)
- * Flags: -s: scroll
- *
- * modified 10-18-89 for curses (jrl)
- * 10-18-89 added signal handling
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-#include <time.h>
-#include <signal.h>
-#include <string.h>
-
-#define YBASE 10
-#define XBASE 10
-#define XLENGTH 54
-#define YDEPTH 5
-
-static short disp[11] =
-{
- 075557, 011111, 071747, 071717, 055711,
- 074717, 074757, 071111, 075757, 075717, 002020
-};
-static long older[6], next[6], newer[6], mask;
-
-static int sigtermed = 0;
-static bool redirected = FALSE;
-static bool hascolor = FALSE;
-
-static RETSIGTYPE
-sighndl(int signo)
-{
- signal(signo, sighndl);
- sigtermed = signo;
- if (redirected) {
- endwin();
- exit(EXIT_FAILURE);
- }
-}
-
-static void
-drawbox(void)
-{
- chtype bottom[XLENGTH + 1];
- int n;
-
- if (hascolor)
- attrset(COLOR_PAIR(3));
-
- mvaddch(YBASE - 1, XBASE - 1, ACS_ULCORNER);
- hline(ACS_HLINE, XLENGTH);
- mvaddch(YBASE - 1, XBASE + XLENGTH, ACS_URCORNER);
-
- mvaddch(YBASE + YDEPTH, XBASE - 1, ACS_LLCORNER);
- mvinchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
- for (n = 0; n < XLENGTH; n++)
- bottom[n] = ACS_HLINE | (bottom[n] & (A_ATTRIBUTES | A_COLOR));
- mvaddchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
- mvaddch(YBASE + YDEPTH, XBASE + XLENGTH, ACS_LRCORNER);
-
- move(YBASE, XBASE - 1);
- vline(ACS_VLINE, YDEPTH);
-
- move(YBASE, XBASE + XLENGTH);
- vline(ACS_VLINE, YDEPTH);
-
- if (hascolor)
- attrset(COLOR_PAIR(2));
-}
-
-static void
-standt(int on)
-{
- if (on) {
- if (hascolor) {
- attron(COLOR_PAIR(1));
- } else {
- attron(A_STANDOUT);
- }
- } else {
- if (hascolor) {
- attron(COLOR_PAIR(2));
- } else {
- attroff(A_STANDOUT);
- }
- }
-}
-
-static void
-set(int t, int n)
-{
- int i, m;
-
- m = 7 << n;
- for (i = 0; i < 5; i++) {
- next[i] |= ((disp[t] >> (4 - i) * 3) & 07) << n;
- mask |= (next[i] ^ older[i]) & m;
- }
- if (mask & m)
- mask |= m;
-}
-
-static void
-usage(void)
-{
- static const char *msg[] =
- {
- "Usage: gdc [options] [count]"
- ,""
- ,"Options:"
- ," -n redirect input to /dev/null"
- ," -s scroll each number into place, rather than flipping"
- ,""
- ,"If you specify a count, gdc runs for that number of seconds"
- };
- unsigned j;
- for (j = 0; j < SIZEOF(msg); j++)
- fprintf(stderr, "%s\n", msg[j]);
- exit(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- time_t now;
- struct tm *tm;
- long t, a;
- int i, j, s, k;
- int count = 0;
- FILE *ofp = stdout;
- FILE *ifp = stdin;
- bool scrol = FALSE;
-
- signal(SIGINT, sighndl);
- signal(SIGTERM, sighndl);
- signal(SIGKILL, sighndl);
-
- while ((k = getopt(argc, argv, "sn")) != EOF) {
- switch (k) {
- case 's':
- scrol = TRUE;
- break;
- case 'n':
- ifp = fopen("/dev/null", "r");
- redirected = TRUE;
- break;
- default:
- usage();
- }
- }
- if (optind < argc) {
- count = atoi(argv[optind++]);
- }
- if (optind < argc)
- usage();
-
- if (redirected) {
- char *name = getenv("TERM");
- if (name == 0
- || newterm(name, ofp, ifp) == 0) {
- fprintf(stderr, "cannot open terminal\n");
- exit(EXIT_FAILURE);
- }
-
- } else {
- initscr();
- }
- cbreak();
- noecho();
- nodelay(stdscr, 1);
- curs_set(0);
-
- hascolor = has_colors();
-
- if (hascolor) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- init_pair(1, COLOR_BLACK, COLOR_RED);
- init_pair(2, COLOR_RED, bg);
- init_pair(3, COLOR_WHITE, bg);
- attrset(COLOR_PAIR(2));
- }
-
- restart:
- for (j = 0; j < 5; j++)
- older[j] = newer[j] = next[j] = 0;
-
- clear();
- drawbox();
-
- do {
- char buf[30];
-
- time(&now);
- tm = localtime(&now);
-
- mask = 0;
- set(tm->tm_sec % 10, 0);
- set(tm->tm_sec / 10, 4);
- set(tm->tm_min % 10, 10);
- set(tm->tm_min / 10, 14);
- set(tm->tm_hour % 10, 20);
- set(tm->tm_hour / 10, 24);
- set(10, 7);
- set(10, 17);
-
- for (k = 0; k < 6; k++) {
- if (scrol) {
- for (i = 0; i < 5; i++)
- newer[i] = (newer[i] & ~mask) | (newer[i + 1] & mask);
- newer[5] = (newer[5] & ~mask) | (next[k] & mask);
- } else
- newer[k] = (newer[k] & ~mask) | (next[k] & mask);
- next[k] = 0;
- for (s = 1; s >= 0; s--) {
- standt(s);
- for (i = 0; i < 6; i++) {
- if ((a = (newer[i] ^ older[i]) & (s ? newer : older)[i])
- != 0) {
- for (j = 0, t = 1 << 26; t; t >>= 1, j++) {
- if (a & t) {
- if (!(a & (t << 1))) {
- move(YBASE + i, XBASE + 2 * j);
- }
- addstr(" ");
- }
- }
- }
- if (!s) {
- older[i] = newer[i];
- }
- }
- if (!s) {
- if (scrol)
- drawbox();
- refresh();
- /*
- * If we're scrolling, space out the refreshes to fake
- * movement. That's 7 frames, or 6 intervals, which would
- * be 166 msec if we spread it out over a second. It looks
- * better (but will well on a slow terminal, e.g., less
- * than 9600bd) to squeeze that into a half-second, and use
- * half of 170 msec to ensure that the program doesn't eat
- * a lot of time when asking what time it is, at the top of
- * this loop -TD
- */
- if (scrol)
- napms(85);
- }
- }
- }
-
- /* this depends on the detailed format of ctime(3) */
- (void) strcpy(buf, ctime(&now));
- (void) strcpy(buf + 10, buf + 19);
- mvaddstr(16, 30, buf);
-
- move(6, 0);
- drawbox();
- refresh();
-
- /*
- * If we're not scrolling, wait 1000 msec (1 sec). Use napms() rather
- * than sleep() because the latter does odd things on some systems,
- * e.g., suspending output as well.
- */
- if (scrol)
- napms(500);
- else
- napms(1000);
-
- /*
- * This is a safe way to check if we're interrupted - making the signal
- * handler set a flag that we can check. Since we're running
- * nodelay(), the wgetch() call returns immediately, and in particular
- * will return an error if interrupted. This works only if we can
- * read from the input, of course.
- */
- switch (wgetch(stdscr)) {
- case 'q':
- count = 1;
- break;
- case 's':
- nodelay(stdscr, FALSE);
- break;
- case ' ':
- nodelay(stdscr, TRUE);
- break;
-#ifdef KEY_RESIZE
- case KEY_RESIZE:
-#endif
- case '?':
- goto restart;
- case ERR:
- if (sigtermed) {
- standend();
- endwin();
- fprintf(stderr, "gdc terminated by signal %d\n", sigtermed);
- return EXIT_FAILURE;
- }
- default:
- continue;
- }
- } while (--count);
- standend();
- endwin();
- return EXIT_SUCCESS;
-}
diff --git a/ncurses-5.2/test/hanoi.c b/ncurses-5.2/test/hanoi.c
deleted file mode 100644
index 4377732..0000000
--- a/ncurses-5.2/test/hanoi.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Name: Towers of Hanoi.
- *
- * Desc:
- * This is a playable copy of towers of hanoi.
- * Its sole purpose is to demonstrate my Amiga Curses package.
- * This program should compile on any system that has Curses.
- * 'hanoi' will give a manual game with 7 playing pieces.
- * 'hanoi n' will give a manual game with n playing pieces.
- * 'hanoi n a' will give an auto solved game with n playing pieces.
- *
- * Author: Simon J Raybould (sie@fulcrum.bt.co.uk).
- * (This version has been slightly modified by the ncurses maintainers.)
- *
- * Date: 05.Nov.90
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-#include <string.h>
-
-#define NPEGS 3 /* This is not configurable !! */
-#define MINTILES 3
-#define MAXTILES 9
-#define DEFAULTTILES 7
-#define TOPLINE 6
-#define BASELINE 16
-#define STATUSLINE (LINES-3)
-#define LEFTPEG 19
-#define MIDPEG 39
-#define RIGHTPEG 59
-
-#define LENTOIND(x) (((x)-1)/2)
-#define OTHER(a,b) (3-((a)+(b)))
-
-struct Peg {
- size_t Length[MAXTILES];
- int Count;
-};
-
-static struct Peg Pegs[NPEGS];
-static int PegPos[] =
-{LEFTPEG, MIDPEG, RIGHTPEG};
-static int TileColour[] =
-{
- COLOR_GREEN, /* Length 3 */
- COLOR_MAGENTA, /* Length 5 */
- COLOR_RED, /* Length 7 */
- COLOR_BLUE, /* Length 9 */
- COLOR_CYAN, /* Length 11 */
- COLOR_YELLOW, /* Length 13 */
- COLOR_GREEN, /* Length 15 */
- COLOR_MAGENTA, /* Length 17 */
- COLOR_RED, /* Length 19 */
-};
-static int NMoves = 0;
-
-static void InitTiles(int NTiles);
-static void DisplayTiles(void);
-static void MakeMove(int From, int To);
-static void AutoMove(int From, int To, int Num);
-static void Usage(void);
-static int Solved(int NumTiles);
-static int GetMove(int *From, int *To);
-static int InvalidMove(int From, int To);
-
-int
-main(int argc, char **argv)
-{
- int NTiles, FromCol, ToCol;
- unsigned char AutoFlag = 0;
-
- switch (argc) {
- case 1:
- NTiles = DEFAULTTILES;
- break;
- case 2:
- NTiles = atoi(argv[1]);
- if (NTiles > MAXTILES || NTiles < MINTILES) {
- fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
- return EXIT_FAILURE;
- }
- break;
- case 3:
- if (strcmp(argv[2], "a")) {
- Usage();
- return EXIT_FAILURE;
- }
- NTiles = atoi(argv[1]);
- if (NTiles > MAXTILES || NTiles < MINTILES) {
- fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
- return EXIT_FAILURE;
- }
- AutoFlag = TRUE;
- break;
- default:
- Usage();
- return EXIT_FAILURE;
- }
-#ifdef TRACE
- trace(TRACE_MAXIMUM);
-#endif
- initscr();
- if (has_colors()) {
- int i;
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- for (i = 0; i < 9; i++)
- init_pair(i + 1, bg, TileColour[i]);
- }
- cbreak();
- if (LINES < 24) {
- endwin();
- fprintf(stderr, "Min screen length 24 lines\n");
- return EXIT_FAILURE;
- }
- if (AutoFlag) {
- curs_set(0);
- leaveok(stdscr, TRUE); /* Attempt to remove cursor */
- }
- InitTiles(NTiles);
- DisplayTiles();
- if (AutoFlag) {
- do {
- noecho();
- AutoMove(0, 2, NTiles);
- } while (!Solved(NTiles));
- sleep(2);
- } else {
- echo();
- for (;;) {
- if (GetMove(&FromCol, &ToCol))
- break;
- if (InvalidMove(FromCol, ToCol)) {
- mvaddstr(STATUSLINE, 0, "Invalid Move !!");
- refresh();
- beep();
- continue;
- }
- MakeMove(FromCol, ToCol);
- if (Solved(NTiles)) {
- mvprintw(STATUSLINE, 0,
- "Well Done !! You did it in %d moves", NMoves);
- refresh();
- sleep(5);
- break;
- }
- }
- }
- endwin();
- return EXIT_SUCCESS;
-}
-
-static int
-InvalidMove(int From, int To)
-{
- if (From >= NPEGS)
- return TRUE;
- if (From < 0)
- return TRUE;
- if (To >= NPEGS)
- return TRUE;
- if (To < 0)
- return TRUE;
- if (From == To)
- return TRUE;
- if (!Pegs[From].Count)
- return TRUE;
- if (Pegs[To].Count &&
- Pegs[From].Length[Pegs[From].Count - 1] >
- Pegs[To].Length[Pegs[To].Count - 1])
- return TRUE;
- return FALSE;
-}
-
-static void
-InitTiles(int NTiles)
-{
- int Size, SlotNo;
-
- for (Size = NTiles * 2 + 1, SlotNo = 0; Size >= 3; Size -= 2)
- Pegs[0].Length[SlotNo++] = Size;
-
- Pegs[0].Count = NTiles;
- Pegs[1].Count = 0;
- Pegs[2].Count = 0;
-}
-
-static void
-DisplayTiles(void)
-{
- int Line, peg, SlotNo;
- char TileBuf[BUFSIZ];
-
- erase();
- mvaddstr(1, 24, "T O W E R S O F H A N O I");
- mvaddstr(3, 34, "SJR 1990");
- mvprintw(19, 5, "Moves : %d", NMoves);
- attrset(A_REVERSE);
- mvaddstr(BASELINE, 8,
- " ");
-
- for (Line = TOPLINE; Line < BASELINE; Line++) {
- mvaddch(Line, LEFTPEG, ' ');
- mvaddch(Line, MIDPEG, ' ');
- mvaddch(Line, RIGHTPEG, ' ');
- }
- mvaddch(BASELINE, LEFTPEG, '1');
- mvaddch(BASELINE, MIDPEG, '2');
- mvaddch(BASELINE, RIGHTPEG, '3');
- attrset(A_NORMAL);
-
- /* Draw tiles */
- for (peg = 0; peg < NPEGS; peg++) {
- for (SlotNo = 0; SlotNo < Pegs[peg].Count; SlotNo++) {
- memset(TileBuf, ' ', Pegs[peg].Length[SlotNo]);
- TileBuf[Pegs[peg].Length[SlotNo]] = '\0';
- if (has_colors())
- attrset(COLOR_PAIR(LENTOIND(Pegs[peg].Length[SlotNo])));
- else
- attrset(A_REVERSE);
- mvaddstr(BASELINE - (SlotNo + 1),
- (int) (PegPos[peg] - Pegs[peg].Length[SlotNo] / 2),
- TileBuf);
- }
- }
- attrset(A_NORMAL);
- refresh();
-}
-
-static int
-GetMove(int *From, int *To)
-{
- mvaddstr(STATUSLINE, 0, "Next move ('q' to quit) from ");
- clrtoeol();
- refresh();
- if ((*From = getch()) == 'q')
- return TRUE;
- *From -= ('0' + 1);
- addstr(" to ");
- clrtoeol();
- refresh();
-
- if ((*To = getch()) == 'q')
- return TRUE;
- *To -= ('0' + 1);
- refresh();
- napms(500);
-
- move(STATUSLINE, 0);
- clrtoeol();
- refresh();
- return FALSE;
-}
-
-static void
-MakeMove(int From, int To)
-{
- Pegs[From].Count--;
- Pegs[To].Length[Pegs[To].Count] = Pegs[From].Length[Pegs[From].Count];
- Pegs[To].Count++;
- NMoves++;
- DisplayTiles();
-}
-
-static void
-AutoMove(int From, int To, int Num)
-{
- if (Num == 1) {
- MakeMove(From, To);
- napms(500);
- return;
- }
- AutoMove(From, OTHER(From, To), Num - 1);
- MakeMove(From, To);
- napms(500);
- AutoMove(OTHER(From, To), To, Num - 1);
-}
-
-static int
-Solved(int NumTiles)
-{
- int i;
-
- for (i = 1; i < NPEGS; i++)
- if (Pegs[i].Count == NumTiles)
- return TRUE;
- return FALSE;
-}
-
-static void
-Usage()
-{
- fprintf(stderr, "Usage: hanoi [<No Of Tiles>] [a]\n");
- fprintf(stderr,
- "The 'a' option causes the tower to be solved automatically\n");
-}
diff --git a/ncurses-5.2/test/hashtest.c b/ncurses-5.2/test/hashtest.c
deleted file mode 100644
index 27e7685..0000000
--- a/ncurses-5.2/test/hashtest.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * hashtest.c -- test hash mapping
- *
- * Generate timing statistics for vertical-motion optimization.
- *
- * $Id$
- */
-
-#ifdef TRACE
-#define Trace(p) _tracef p
-#define USE_TRACE 1
-#else
-#define Trace(p) /* nothing */
-#define USE_TRACE 0
-#endif
-
-#include <test.priv.h>
-
-#include <string.h>
-#include <ctype.h>
-#include <signal.h>
-
-#define LO_CHAR ' '
-#define HI_CHAR '~'
-
-static bool continuous = FALSE;
-static bool reverse_loops = FALSE;
-static bool single_step = FALSE;
-static bool extend_corner = FALSE;
-static int foot_lines = 0;
-static int head_lines = 0;
-
-static void cleanup(void)
-{
- move(LINES-1,0);
- clrtoeol();
- refresh();
- endwin();
-}
-
-static RETSIGTYPE finish(int sig GCC_UNUSED)
-{
- cleanup();
- exit(EXIT_FAILURE);
-}
-
-static void genlines(int base)
-{
- int i, j;
-
-#if USE_TRACE
- if (base == 'a')
- Trace(("Resetting screen"));
- else
- Trace(("Painting `%c' screen", base));
-#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();
-}
-
-static void one_cycle(int ch)
-{
- if (continuous) {
- genlines(ch);
- } else if (ch != 'a') {
- genlines('a');
- genlines(ch);
- }
-}
-
-static void run_test(bool optimized)
-{
- 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 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;
- }
-#endif
-
- 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 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);
-}
-
-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;
- }
-#if USE_TRACE
- trace(TRACE_TIMES);
-#endif
-
- (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);
-
- while (test_loops-- > 0) {
- if (test_normal)
- run_test(FALSE);
- if (test_optimize)
- run_test(TRUE);
- }
-
- cleanup(); /* we're done */
- return(EXIT_SUCCESS);
-}
-/* hashtest.c ends here */
diff --git a/ncurses-5.2/test/keynames.c b/ncurses-5.2/test/keynames.c
deleted file mode 100644
index 0d15a88..0000000
--- a/ncurses-5.2/test/keynames.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * $Id$
- */
-
-#include <test.priv.h>
-
-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;
-}
diff --git a/ncurses-5.2/test/knight.c b/ncurses-5.2/test/knight.c
deleted file mode 100644
index d70c478..0000000
--- a/ncurses-5.2/test/knight.c
+++ /dev/null
@@ -1,591 +0,0 @@
-/*
- * Knight's Tour - a brain game
- *
- * The original of this game was anonymous. It had an unbelievably bogus
- * interface, you actually had to enter square coordinates! Redesign by
- * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995. Mouse support
- * added September 20th 1995.
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-#include <ctype.h>
-#include <signal.h>
-#include <string.h>
-
-/* board size */
-#define BDEPTH 8
-#define BWIDTH 8
-
-/* where to start the instructions */
-#define INSTRY 2
-#define INSTRX 35
-
-/* corner of board */
-#define BOARDY 2
-#define BOARDX 0
-
-/* notification line */
-#define NOTIFYY 21
-
-/* virtual color values */
-#define TRAIL_COLOR 1
-#define PLUS_COLOR 2
-#define MINUS_COLOR 3
-
-#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)
-
-typedef struct {
- 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 chtype trail = '#'; /* trail character */
-static chtype plus = '+'; /* cursor hot-spot character */
-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 void
-init(void)
-{
- srand((unsigned) getpid());
- initscr();
- cbreak(); /* immediate char return */
- noecho(); /* no immediate echo */
- boardwin = newwin(BDEPTH * 2 + 1, BWIDTH * 4 + 1, BOARDY, BOARDX);
- helpwin = newwin(0, 0, INSTRY, INSTRX);
- msgwin = newwin(1, INSTRX - 1, NOTIFYY, 0);
- scrollok(msgwin, TRUE);
- keypad(boardwin, TRUE);
-
- if (has_colors()) {
- int bg = COLOR_BLACK;
-
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
-
- (void) init_pair(TRAIL_COLOR, COLOR_CYAN, bg);
- (void) init_pair(PLUS_COLOR, COLOR_RED, bg);
- (void) init_pair(MINUS_COLOR, COLOR_GREEN, bg);
-
- trail |= COLOR_PAIR(TRAIL_COLOR);
- plus |= COLOR_PAIR(PLUS_COLOR);
- minus |= COLOR_PAIR(MINUS_COLOR);
- }
-#ifdef NCURSES_MOUSE_VERSION
- (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
-#endif /* NCURSES_MOUSE_VERSION */
-
- oldch = minus;
-}
-
-static void
-help1(void)
-/* game explanation -- initial help screen */
-{
- (void) waddstr(helpwin, "Knight's move is a solitaire puzzle. Your\n");
- (void) waddstr(helpwin, "objective is to visit each square of the \n");
- (void) waddstr(helpwin, "chessboard exactly once by making knight's\n");
- (void) waddstr(helpwin, "moves (one square right or left followed \n");
- (void) waddstr(helpwin, "by two squares up or down, or two squares \n");
- (void) waddstr(helpwin, "right or left followed by one square up or\n");
- (void) waddstr(helpwin, "down). You may start anywhere.\n\n");
-
- (void) waddstr(helpwin, "Use arrow keys to move the cursor around.\n");
- (void) waddstr(helpwin, "When you want to move your knight to the \n");
- (void) waddstr(helpwin, "cursor location, press <space> or Enter.\n");
- (void) waddstr(helpwin, "Illegal moves will be rejected with an \n");
- (void) waddstr(helpwin, "audible beep.\n\n");
- (void) waddstr(helpwin, "The program will detect if you solve the\n");
- (void) waddstr(helpwin, "puzzle; also inform you when you run out\n");
- (void) waddstr(helpwin, "of legal moves.\n\n");
-
- (void) mvwaddstr(helpwin, NOTIFYY - INSTRY, 0,
- "Press `?' to go to keystroke help.");
-}
-
-static void
-help2(void)
-/* keystroke help screen */
-{
- (void) waddstr(helpwin, "Possible moves are shown with `-'.\n\n");
-
- (void) waddstr(helpwin, "You can move around with the arrow keys or\n");
- (void) waddstr(helpwin, "with the rogue/hack movement keys. Other\n");
- (void) waddstr(helpwin, "commands allow you to undo moves or redraw.\n");
- (void) waddstr(helpwin, "Your mouse may work; try left-button to\n");
- (void) waddstr(helpwin, "move to the square under the pointer.\n\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, " 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) mvwaddstr(helpwin, NOTIFYY - INSTRY, 0,
- "Press `?' to go to game explanation");
-}
-
-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;
-
- do {
- /* clear screen and draw board */
- werase(boardwin);
- werase(helpwin);
- werase(msgwin);
- dosquares();
- help1();
- wnoutrefresh(stdscr);
- wnoutrefresh(helpwin);
- wnoutrefresh(msgwin);
- wnoutrefresh(boardwin);
- doupdate();
-
- for (i = 0; i < BDEPTH; i++)
- for (j = 0; j < BWIDTH; j++) {
- board[i][j] = FALSE;
- cellmove(i, j);
- waddch(boardwin, minus);
- }
- memset(history, '\0', sizeof(history));
- history[0].y = history[0].x = -1;
- lastrow = lastcol = -2;
- movecount = 1;
- keyhelp = FALSE;
-
- for (;;) {
- if (rw != lastrow || col != lastcol) {
- if (lastrow >= 0 && lastcol >= 0) {
- cellmove(lastrow, lastcol);
- if (board[lastrow][lastcol])
- waddch(boardwin, trail);
- else
- waddch(boardwin, oldch);
- }
-
- cellmove(rw, col);
- oldch = winch(boardwin);
-
- lastrow = rw;
- lastcol = col;
- }
- cellmove(rw, col);
- waddch(boardwin, plus);
- cellmove(rw, col);
-
- wrefresh(msgwin);
-
- c = wgetch(boardwin);
-
- werase(msgwin);
-
- switch (c) {
- case 'k':
- case '8':
- case KEY_UP:
- ny = rw + BDEPTH - 1;
- nx = col;
- break;
- case 'j':
- case '2':
- case KEY_DOWN:
- ny = rw + 1;
- nx = col;
- break;
- case 'h':
- case '4':
- case KEY_LEFT:
- ny = rw;
- nx = col + BWIDTH - 1;
- break;
- case 'l':
- case '6':
- case KEY_RIGHT:
- ny = rw;
- nx = col + 1;
- break;
- case 'y':
- case '7':
- case KEY_A1:
- ny = rw + BDEPTH - 1;
- nx = col + BWIDTH - 1;
- break;
- case 'b':
- case '1':
- case KEY_C1:
- ny = rw + 1;
- nx = col + BWIDTH - 1;
- break;
- case 'u':
- case '9':
- case KEY_A3:
- ny = rw + BDEPTH - 1;
- nx = col + 1;
- break;
- case 'n':
- case '3':
- case KEY_C3:
- ny = rw + 1;
- nx = col + 1;
- break;
-
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT myevent;
-
- getmouse(&myevent);
- if (myevent.y >= CY(0) && myevent.y <= CY(BDEPTH)
- && myevent.x >= CX(0) && myevent.x <= CX(BWIDTH)) {
- nx = CXINV(myevent.x);
- ny = CYINV(myevent.y);
- ungetch('\n');
- break;
- } else {
- beep();
- continue;
- }
- }
-#endif /* NCURSES_MOUSE_VERSION */
-
- case KEY_B2:
- case '\n':
- case ' ':
- if (evalmove(rw, col)) {
- drawmove(trail,
- history[movecount - 1].y,
- history[movecount - 1].x,
- rw, col);
- history[movecount].y = rw;
- history[movecount].x = col;
- movecount++;
-
- if (!chkmoves())
- goto dropout;
- } else
- 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':
- if (movecount == 1) {
- ny = lastrow;
- nx = lastcol;
- waddstr(msgwin, "\nNo previous move.");
- beep();
- } else {
- int oldy = history[movecount - 1].y;
- int oldx = history[movecount - 1].x;
-
- board[oldy][oldx] = FALSE;
- --movecount;
- ny = history[movecount - 1].y;
- nx = history[movecount - 1].x;
- drawmove(' ', oldy, oldx, ny, nx);
-
- /* avoid problems if we just changed the current cell */
- cellmove(lastrow, lastcol);
- oldch = winch(boardwin);
- }
- break;
-
- case 'q':
- case 'x':
- goto dropout;
-
- case '?':
- werase(helpwin);
- if (keyhelp) {
- help1();
- keyhelp = FALSE;
- } else {
- help2();
- keyhelp = TRUE;
- }
- wrefresh(helpwin);
- break;
-
- default:
- beep();
- break;
- }
-
- col = nx % BWIDTH;
- rw = ny % BDEPTH;
- }
-
- 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))
- wprintw(msgwin, "\nYou won. Care to try again? ");
- else
- wprintw(msgwin, "\n%d squares filled. Try again? ", count);
- } 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 */
-{
- 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);
-}
-
-static int
-iabs(int num)
-{
- if (num < 0)
- return (-num);
- else
- return (num);
-}
-
-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);
-}
-
-/* knight.c ends here */
diff --git a/ncurses-5.2/test/lrtest.c b/ncurses-5.2/test/lrtest.c
deleted file mode 100644
index 3337a77..0000000
--- a/ncurses-5.2/test/lrtest.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Test lower-right-hand corner access
- *
- * by Eric S. Raymond <esr@thyrsus.com>
- *
- * This can't be part of the ncurses test-program, because ncurses rips off the
- * bottom line to do labels.
- *
- * $Id$
- */
-
-#include <test.priv.h>
-#include <term.h>
-
-typedef struct {
- int y, x, mode, dir, inc;
- chtype value;
-} MARK;
-
-/*
- * Make a couple of markers go 'round the border to demonstrate that we can
- * really write to all positions properly.
- */
-static void
-show(MARK * m)
-{
- mvaddch(m->y, m->x, m->value);
- if (m->mode == 0) { /* along the x-direction */
- m->x += m->inc;
- if (m->x >= COLS) {
- m->x = COLS - 1;
- m->inc = -m->dir * m->inc;
- m->y += m->inc;
- m->mode = 1;
- } else if (m->x < 0) {
- m->x = 0;
- m->inc = -m->dir * m->inc;
- m->y += m->inc;
- m->mode = 1;
- }
- } else { /* along the y-direction */
- m->y += m->inc;
- if (m->y >= LINES) {
- m->y = LINES - 1;
- m->inc = m->dir * m->inc;
- m->x += m->inc;
- m->mode = 0;
- } else if (m->y < 0) {
- m->y = 0;
- m->inc = m->dir * m->inc;
- m->x += m->inc;
- m->mode = 0;
- }
- }
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- static MARK marks[] =
- {
- {0, 0, 0, -1, 1, '+' | A_BOLD},
- {0, 0, 1, 1, 2, 'X'},
- {0, 0, 1, -1, 3, 'Y'},
- {0, 8, 0, -1, 1, '+' | A_BOLD},
- {0, 9, 0, -1, 1, '+' | A_BOLD},
- {1, 0, 1, 1, 1, '*' | A_REVERSE},
- {2, 0, 1, 1, 1, '*' | A_REVERSE}
- };
-
- initscr();
- noecho();
- cbreak();
- nodelay(stdscr, TRUE);
- curs_set(0);
-
-#ifdef KEY_RESIZE
- keypad(stdscr, TRUE);
- restart:
-#endif
- move(LINES / 2 - 1, 4);
- if (!(has_ic()
- /* see PutCharLR() */
- || 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");
- } else {
- addstr("This is a test of access to the lower right corner.\n");
- move(LINES / 2, 4);
- addstr("If the top of the box is missing, the test failed.\n");
- move(LINES / 2 + 1, 4);
- addstr("Please report this (with a copy of your terminfo entry).\n");
- move(LINES / 2 + 2, 4);
- addstr("to the ncurses maintainers, at bug-ncurses@gnu.org.\n");
- }
-
- for (;;) {
- int ch;
- unsigned n;
-
- box(stdscr, 0, 0);
- for (n = 0; n < sizeof(marks) / sizeof(marks[0]); n++) {
- show(&marks[n]);
- }
-
- if ((ch = getch()) > 0) {
- if (ch == 'q')
- break;
- else if (ch == 's')
- nodelay(stdscr, FALSE);
- else if (ch == ' ')
- nodelay(stdscr, TRUE);
-#ifdef KEY_RESIZE
- else if (ch == KEY_RESIZE) {
- erase();
- goto restart;
- }
-#endif
- }
- napms(50);
- }
-
- curs_set(1);
- endwin();
- return 0;
-}
-
-/* lrtest.c ends here */
diff --git a/ncurses-5.2/test/modules b/ncurses-5.2/test/modules
deleted file mode 100644
index 8e61243..0000000
--- a/ncurses-5.2/test/modules
+++ /dev/null
@@ -1,59 +0,0 @@
-# Test-Program modules
-# $Id$
-##############################################################################
-# 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 "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1997
-#
-
-@ base
-blue progs $(srcdir) ../include/term.h
-bs progs $(srcdir)
-cardfile progs $(srcdir) ../include/panel.h ../include/menu.h ../include/form.h
-ditto progs $(srcdir)
-dots progs $(srcdir) ../include/term.h
-filter progs $(srcdir)
-firework progs $(srcdir) ../include/term.h
-firstlast progs $(srcdir)
-gdc progs $(srcdir)
-hanoi progs $(srcdir)
-hashtest progs $(srcdir)
-keynames progs $(srcdir)
-knight progs $(srcdir)
-lrtest progs $(srcdir)
-ncurses progs $(srcdir) ../include/panel.h ../include/menu.h ../include/form.h
-newdemo progs $(srcdir)
-rain progs $(srcdir) ../include/term.h
-railroad progs $(srcdir) ../include/termcap.h
-tclock progs $(srcdir)
-testaddch progs $(srcdir)
-testcurs progs $(srcdir)
-testscanw progs $(srcdir)
-view progs $(srcdir)
-worm progs $(srcdir)
-xmas progs $(srcdir)
diff --git a/ncurses-5.2/test/ncurses.c b/ncurses-5.2/test/ncurses.c
deleted file mode 100644
index 9010189..0000000
--- a/ncurses-5.2/test/ncurses.c
+++ /dev/null
@@ -1,3616 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/****************************************************************************
-
-NAME
- ncurses.c --- ncurses library exerciser
-
-SYNOPSIS
- ncurses
-
-DESCRIPTION
- An interactive test module for the ncurses library.
-
-AUTHOR
- Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
-
-$Id$
-
-***************************************************************************/
-
-#include <test.priv.h>
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <assert.h>
-#include <signal.h>
-
-#if HAVE_LOCALE_H
-#include <locale.h>
-#endif
-
-#if HAVE_GETTIMEOFDAY
-#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
-
-#if HAVE_PANEL_H
-#define USE_LIBPANEL 1
-#include <panel.h>
-#else
-#define USE_LIBPANEL 0
-#endif
-
-#if HAVE_MENU_H && HAVE_LIBMENU
-#define USE_LIBMENU 1
-#include <menu.h>
-#else
-#define USE_LIBMENU 0
-#endif
-
-#if HAVE_FORM_H && HAVE_LIBFORM
-#define USE_LIBFORM 1
-#include <form.h>
-#else
-#define USE_LIBFORM 0
-#endif
-
-#ifdef NCURSES_VERSION
-
-#ifdef TRACE
-static int save_trace = TRACE_ORDINARY | TRACE_CALLS;
-extern int _nc_tracing;
-#endif
-
-#if !defined(HAVE_NAPMS)
-#define HAVE_NAPMS 1
-#endif
-
-#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 */
-
-#endif
-
-#define P(string) printw("%s\n", string)
-#ifndef CTRL
-#define CTRL(x) ((x) & 0x1f)
-#endif
-
-#define QUIT CTRL('Q')
-#define ESCAPE CTRL('[')
-#define BLANK ' ' /* this is the background character */
-
-/* The behavior of mvhline, mvvline for negative/zero length is unspecified,
- * though we can rely on negative x/y values to stop the macro.
- */
-static void
-do_h_line(int y, int x, chtype c, int to)
-{
- if ((to) > (x))
- mvhline(y, x, c, (to) - (x));
-}
-
-static void
-do_v_line(int y, int x, chtype c, int to)
-{
- if ((to) > (y))
- mvvline(y, x, c, (to) - (y));
-}
-
-/* Common function to allow ^T to toggle trace-mode in the middle of a test
- * so that trace-files can be made smaller.
- */
-static int
-wGetchar(WINDOW *win)
-{
- int c;
-#ifdef TRACE
- while ((c = wgetch(win)) == CTRL('T')) {
- if (_nc_tracing) {
- save_trace = _nc_tracing;
- _tracef("TOGGLE-TRACING OFF");
- _nc_tracing = 0;
- } else {
- _nc_tracing = save_trace;
- }
- trace(_nc_tracing);
- if (_nc_tracing)
- _tracef("TOGGLE-TRACING ON");
- }
-#else
- c = wgetch(win);
-#endif
- return c;
-}
-#define Getchar() wGetchar(stdscr)
-
-static void
-Pause(void)
-{
- move(LINES - 1, 0);
- addstr("Press any key to continue... ");
- (void) Getchar();
-}
-
-static void
-Cannot(const char *what)
-{
- printw("\nThis %s terminal %s\n\n", getenv("TERM"), what);
- Pause();
-}
-
-static void
-ShellOut(bool message)
-{
- if (message)
- addstr("Shelling out...");
- def_prog_mode();
- endwin();
- system("sh");
- if (message)
- addstr("returned from shellout.\n");
- refresh();
-}
-
-#ifdef NCURSES_MOUSE_VERSION
-static const char *
-mouse_decode(MEVENT const *ep)
-{
- 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);
-
-#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");
-#undef SHOW
-
- if (buf[strlen(buf) - 1] == ' ')
- buf[strlen(buf) - 2] = '\0';
- (void) strcat(buf, "}");
- return (buf);
-}
-#endif /* NCURSES_MOUSE_VERSION */
-
-/****************************************************************************
- *
- * Character input test
- *
- ****************************************************************************/
-
-static void
-getch_test(void)
-/* test the keypad feature */
-{
- char buf[BUFSIZ];
- int c;
- int incount = 0, firsttime = 0;
- bool blocking = TRUE;
- int y, x;
-
- 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();
- getstr(buf);
- noecho();
- nonl();
-
- if (isdigit(buf[0])) {
- timeout(atoi(buf) * 100);
- blocking = FALSE;
- }
-
- c = '?';
- raw();
- for (;;) {
- if (firsttime++) {
- printw("Key pressed: %04o ", c);
-#ifdef NCURSES_MOUSE_VERSION
- if (c == KEY_MOUSE) {
- MEVENT event;
-
- getmouse(&event);
- printw("KEY_MOUSE, %s\n", mouse_decode(&event));
- } else
-#endif /* NCURSES_MOUSE_VERSION */
- if (c >= KEY_MIN) {
- (void) addstr(keyname(c));
- addch('\n');
- } else if (c > 0x80) {
- int c2 = (c & 0x7f);
- if (isprint(c2))
- (void) printw("M-%c", c2);
- else
- (void) printw("M-%s", unctrl(c2));
- addstr(" (high-half character)\n");
- } else {
- if (isprint(c))
- (void) printw("%c (ASCII printable character)\n", c);
- else
- (void) printw("%s (ASCII control character)\n", unctrl(c));
- }
- getyx(stdscr, y, x);
- if (y >= LINES - 1)
- move(0, 0);
- clrtoeol();
- }
-
- 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");
- }
-
- while ((c = Getchar()) == ERR)
- if (!blocking)
- (void) printw("%05d: input timed out\n", incount++);
- else {
- (void) printw("%05d: input error\n", incount++);
- break;
- }
- }
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
- timeout(-1);
- erase();
- noraw();
- nl();
- endwin();
-}
-
-static int
-show_attr(int row, int skip, chtype attr, const char *name)
-{
- static const char *string = "abcde fghij klmno pqrst uvwxy z";
- int ncv = tigetnum("ncv");
-
- mvprintw(row, 8, "%s mode:", name);
- mvprintw(row, 24, "|");
- if (skip)
- printw("%*s", skip, " ");
- attrset(attr);
- /*
- * If we're to write a string in the alternate character set, it is not
- * sufficient to just set A_ALTCHARSET. We have to perform the mapping
- * that corresponds. This is not needed for vt100-compatible devices
- * because the acs_map[] is 1:1, but for PC-style devices such as Linux
- * console, the acs_map[] is scattered about the range.
- *
- * The addch/addstr functions do not themselves do this mapping, since it
- * is possible to turn off the A_ALTCHARSET flag for the characters which
- * are added, and it would be an unexpected result to have the mapped
- * characters visible on the screen.
- *
- * This example works because the indices into acs_map[] are mostly from
- * the lowercase characters.
- */
- if (attr & A_ALTCHARSET) {
- const char *s = string;
- while (*s) {
- int ch = *s++;
- if ((ch = acs_map[ch]) == 0)
- ch = ' ';
- addch(ch);
- }
- } else {
- addstr(string);
- }
- attroff(attr);
- if (skip)
- printw("%*s", skip, " ");
- printw("|");
- if (attr != A_NORMAL) {
- if (!(termattrs() & attr)) {
- printw(" (N/A)");
- } else if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
- static const attr_t table[] =
- {
- A_STANDOUT,
- A_UNDERLINE,
- A_REVERSE,
- A_BLINK,
- A_DIM,
- A_BOLD,
- A_INVIS,
- A_PROTECT,
- A_ALTCHARSET
- };
- unsigned n;
- bool found = FALSE;
- for (n = 0; n < sizeof(table) / sizeof(table[0]); n++) {
- if ((table[n] & attr) != 0
- && ((1 << n) & ncv) != 0) {
- found = TRUE;
- break;
- }
- }
- if (found)
- printw(" (NCV)");
- }
- }
- return row + 2;
-}
-
-static bool
-attr_getc(int *skip, int *fg, int *bg, int *ac)
-{
- int ch = Getchar();
-
- if (isdigit(ch)) {
- *skip = (ch - '0');
- return TRUE;
- } else if (ch == CTRL('L')) {
- touchwin(stdscr);
- touchwin(curscr);
- return TRUE;
- } else if (has_colors()) {
- switch (ch) {
- case 'a':
- *ac = 0;
- break;
- case 'A':
- *ac = A_ALTCHARSET;
- break;
- case 'f':
- *fg = (*fg + 1);
- break;
- case 'F':
- *fg = (*fg - 1);
- break;
- case 'b':
- *bg = (*bg + 1);
- break;
- case 'B':
- *bg = (*bg - 1);
- break;
- default:
- return FALSE;
- }
- if (*fg >= COLORS)
- *fg = 0;
- if (*fg < 0)
- *fg = COLORS - 1;
- if (*bg >= COLORS)
- *bg = 0;
- if (*bg < 0)
- *bg = COLORS - 1;
- return TRUE;
- } else {
- switch (ch) {
- case 'a':
- *ac = 0;
- break;
- case 'A':
- *ac = A_ALTCHARSET;
- break;
- default:
- return FALSE;
- }
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-attr_test(void)
-/* test text attributes */
-{
- int n;
- int skip = tigetnum("xmc");
- int fg = COLOR_BLACK; /* color pair 0 is special */
- int bg = COLOR_BLACK;
- int ac = 0;
- bool *pairs = (bool *) calloc(COLOR_PAIRS, sizeof(bool));
- pairs[0] = TRUE;
-
- if (skip < 0)
- skip = 0;
-
- n = skip; /* make it easy */
-
- do {
- int row = 2;
- int normal = A_NORMAL | BLANK;
-
- if (has_colors()) {
- int pair = (fg * COLORS) + bg;
- if (!pairs[pair]) {
- init_pair(pair, fg, bg);
- pairs[pair] = TRUE;
- }
- normal |= COLOR_PAIR(pair);
- }
- bkgdset(normal);
- erase();
-
- mvaddstr(0, 20, "Character attribute test display");
-
- row = show_attr(row, n, ac | A_STANDOUT, "STANDOUT");
- row = show_attr(row, n, ac | A_REVERSE, "REVERSE");
- row = show_attr(row, n, ac | A_BOLD, "BOLD");
- row = show_attr(row, n, ac | A_UNDERLINE, "UNDERLINE");
- row = show_attr(row, n, ac | A_DIM, "DIM");
- row = show_attr(row, n, ac | A_BLINK, "BLINK");
- row = show_attr(row, n, ac | A_PROTECT, "PROTECT");
- row = show_attr(row, n, ac | A_INVIS, "INVISIBLE");
- row = show_attr(row, n, ac | A_NORMAL, "NORMAL");
-
- mvprintw(row, 8,
- "This terminal does %shave the magic-cookie glitch",
- tigetnum("xmc") > -1 ? "" : "not ");
- mvprintw(row + 1, 8,
- "Enter a digit to set gaps on each side of displayed attributes");
- mvprintw(row + 2, 8,
- "^L = repaint");
- if (has_colors())
- printw(". f/F/b/F toggle colors (now %d/%d), a/A altcharset (%d)",
- fg, bg, ac != 0);
- else
- printw(". a/A altcharset (%d)", ac != 0);
-
- refresh();
- } while (attr_getc(&n, &fg, &bg, &ac));
-
- free((char *) pairs);
- bkgdset(A_NORMAL | BLANK);
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Color support tests
- *
- ****************************************************************************/
-
-static NCURSES_CONST char *color_names[] =
-{
- "black",
- "red",
- "green",
- "yellow",
- "blue",
- "magenta",
- "cyan",
- "white",
- "BLACK",
- "RED",
- "GREEN",
- "YELLOW",
- "BLUE",
- "MAGENTA",
- "CYAN",
- "WHITE"
-};
-
-static void
-show_color_name(int y, int x, int color)
-{
- if (COLORS > 8)
- mvprintw(y, x, "%02d ", color);
- else
- mvaddstr(y, x, color_names[color]);
-}
-
-static void
-color_test(void)
-/* generate a color test pattern */
-{
- int i;
- int base, top, width;
- NCURSES_CONST char *hello;
-
- refresh();
- (void) printw("There are %d color pairs\n", COLOR_PAIRS);
-
- width = (COLORS > 8) ? 4 : 8;
- hello = (COLORS > 8) ? "Test" : "Hello";
-
- for (base = 0; base < 2; base++) {
- top = (COLORS > 8) ? 0 : base * (COLORS + 3);
- clrtobot();
- (void) mvprintw(top + 1, 0,
- "%dx%d matrix of foreground/background colors, bright *%s*\n",
- COLORS, COLORS,
- base ? "on" : "off");
- for (i = 0; i < COLORS; i++)
- show_color_name(top + 2, (i + 1) * width, i);
- for (i = 0; i < COLORS; i++)
- show_color_name(top + 3 + i, 0, i);
- for (i = 1; i < COLOR_PAIRS; i++) {
- init_pair(i, i % COLORS, i / COLORS);
- attron((attr_t) COLOR_PAIR(i));
- if (base)
- attron((attr_t) A_BOLD);
- mvaddstr(top + 3 + (i / COLORS), (i % COLORS + 1) * width, hello);
- attrset(A_NORMAL);
- }
- if ((COLORS > 8) || base)
- Pause();
- }
-
- erase();
- endwin();
-}
-
-static void
-change_color(int current, int field, int value, int usebase)
-{
- short red, green, blue;
-
- if (usebase)
- color_content(current, &red, &green, &blue);
- else
- red = green = blue = 0;
-
- switch (field) {
- case 0:
- red += value;
- break;
- case 1:
- green += value;
- break;
- case 2:
- blue += value;
- break;
- }
-
- if (init_color(current, red, green, blue) == ERR)
- beep();
-}
-
-static void
-color_edit(void)
-/* display the color test pattern, without trying to edit colors */
-{
- int i, this_c = 0, value = 0, current = 0, field = 0;
- int last_c;
- int max_colors = COLORS > 16 ? 16 : COLORS;
-
- refresh();
-
- for (i = 0; i < max_colors; i++)
- init_pair(i, COLOR_WHITE, i);
-
- mvprintw(LINES - 2, 0, "Number: %d", value);
-
- do {
- short red, green, blue;
-
- attron(A_BOLD);
- mvaddstr(0, 20, "Color RGB Value Editing");
- attroff(A_BOLD);
-
- for (i = 0; i < max_colors; i++) {
- mvprintw(2 + i, 0, "%c %-8s:",
- (i == current ? '>' : ' '),
- (i < (int) SIZEOF(color_names)
- ? color_names[i] : ""));
- attrset(COLOR_PAIR(i));
- addstr(" ");
- attrset(A_NORMAL);
-
- /*
- * Note: this refresh should *not* be necessary! It works around
- * a bug in attribute handling that apparently causes the A_NORMAL
- * attribute sets to interfere with the actual emission of the
- * color setting somehow. This needs to be fixed.
- */
- refresh();
-
- color_content(i, &red, &green, &blue);
- addstr(" R = ");
- if (current == i && field == 0)
- attron(A_STANDOUT);
- printw("%04d", red);
- if (current == i && field == 0)
- attrset(A_NORMAL);
- addstr(", G = ");
- if (current == i && field == 1)
- attron(A_STANDOUT);
- printw("%04d", green);
- if (current == i && field == 1)
- attrset(A_NORMAL);
- addstr(", B = ");
- if (current == i && field == 2)
- attron(A_STANDOUT);
- printw("%04d", blue);
- if (current == i && field == 2)
- attrset(A_NORMAL);
- attrset(A_NORMAL);
- addstr(")");
- }
-
- mvaddstr(max_colors + 3, 0,
- "Use up/down to select a color, left/right to change fields.");
- mvaddstr(max_colors + 4, 0,
- "Modify field by typing nnn=, nnn-, or nnn+. ? for help.");
-
- move(2 + current, 0);
-
- last_c = this_c;
- this_c = Getchar();
- if (isdigit(this_c) && !isdigit(last_c))
- value = 0;
-
- switch (this_c) {
- case KEY_UP:
- current = (current == 0 ? (max_colors - 1) : current - 1);
- break;
-
- case KEY_DOWN:
- current = (current == (max_colors - 1) ? 0 : current + 1);
- break;
-
- case KEY_RIGHT:
- field = (field == 2 ? 0 : field + 1);
- break;
-
- case KEY_LEFT:
- field = (field == 0 ? 2 : field - 1);
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- value = value * 10 + (this_c - '0');
- break;
-
- case '+':
- change_color(current, field, value, 1);
- break;
-
- case '-':
- change_color(current, field, -value, 1);
- break;
-
- case '=':
- change_color(current, field, value, 0);
- break;
-
- case '?':
- 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();
- break;
-
- case 'x':
- case 'q':
- break;
-
- default:
- beep();
- break;
- }
- mvprintw(LINES - 2, 0, "Number: %d", value);
- clrtoeol();
- } while
- (this_c != 'x' && this_c != 'q');
-
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Soft-key label test
- *
- ****************************************************************************/
-
-static void
-slk_test(void)
-/* exercise the soft keys */
-{
- int c, fmt = 1;
- char buf[9];
-
- c = CTRL('l');
- do {
- move(0, 0);
- switch (c) {
- case CTRL('l'):
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Soft Key Exerciser");
- attroff(A_BOLD);
-
- move(2, 0);
- P("Available commands are:");
- P("");
- P("^L -- refresh screen");
- P("a -- activate or restore soft keys");
- P("d -- disable soft keys");
- P("c -- set centered format for labels");
- P("l -- set left-justified format for labels");
- P("r -- set right-justified format for labels");
- P("[12345678] -- set label; labels are numbered 1 through 8");
- P("e -- erase stdscr (should not erase labels)");
- P("s -- test scrolling of shortened screen");
- P("x, q -- return to main menu");
- P("");
- P("Note: if activating the soft keys causes your terminal to");
- P("scroll up one line, your terminal auto-scrolls when anything");
- P("is written to the last screen position. The ncurses code");
- P("does not yet handle this gracefully.");
- refresh();
- /* fall through */
-
- case 'a':
- slk_restore();
- break;
-
- case 'e':
- wclear(stdscr);
- break;
-
- case 's':
- mvprintw(20, 0, "Press Q to stop the scrolling-test: ");
- while ((c = Getchar()) != 'Q' && (c != ERR))
- addch((chtype) c);
- break;
-
- case 'd':
- slk_clear();
- break;
-
- case 'l':
- fmt = 0;
- break;
-
- case 'c':
- fmt = 1;
- break;
-
- case 'r':
- fmt = 2;
- break;
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- (void) mvaddstr(20, 0, "Please enter the label value: ");
- echo();
- wgetnstr(stdscr, buf, 8);
- noecho();
- slk_set((c - '0'), buf, fmt);
- slk_refresh();
- move(20, 0);
- clrtoeol();
- break;
-
- case 'x':
- case 'q':
- goto done;
-
- default:
- beep();
- }
- } while
- ((c = Getchar()) != EOF);
-
- done:
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Alternate character-set stuff
- *
- ****************************************************************************/
-
-/* ISO 6429: codes 0x80 to 0x9f may be control characters that cause the
- * terminal to perform functions. The remaining codes can be graphic.
- */
-static void
-show_upper_chars(int first)
-{
- bool C1 = (first == 128);
- int code;
- int last = first + 31;
- int reply;
-
- erase();
- attron(A_BOLD);
- mvprintw(0, 20, "Display of %s Character Codes %d to %d",
- C1 ? "C1" : "GR", 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;
- char tmp[80];
- sprintf(tmp, "%3d (0x%x)", code, code);
- mvprintw(row, col, "%*s: ", COLS / 4, tmp);
- if (C1)
- nodelay(stdscr, TRUE);
- echochar(code);
- if (C1) {
- /* (yes, this _is_ crude) */
- while ((reply = Getchar()) != ERR) {
- addch(reply);
- napms(10);
- }
- nodelay(stdscr, FALSE);
- }
- }
-}
-
-static int
-show_1_acs(int n, const char *name, chtype code)
-{
- const int height = 16;
- int row = 4 + (n % height);
- int col = (n / height) * COLS / 2;
- mvprintw(row, col, "%*s : ", COLS / 4, name);
- addch(code);
- return n + 1;
-}
-
-static void
-show_acs_chars(void)
-/* display the ACS character set */
-{
- int n;
-
-#define BOTH(name) #name, name
-
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Display of the ACS Character Set");
- attroff(A_BOLD);
- 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_LRCORNER));
- n = show_1_acs(n, BOTH(ACS_RTEE));
- n = show_1_acs(n, BOTH(ACS_LTEE));
- n = show_1_acs(n, BOTH(ACS_BTEE));
- n = show_1_acs(n, BOTH(ACS_TTEE));
- 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_DARROW));
- n = show_1_acs(n, BOTH(ACS_UARROW));
- 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_GEQUAL));
- n = show_1_acs(n, BOTH(ACS_PI));
- n = show_1_acs(n, BOTH(ACS_NEQUAL));
- n = show_1_acs(n, BOTH(ACS_STERLING));
-}
-
-static void
-acs_display(void)
-{
- int c = 'a';
-
- do {
- switch (c) {
- case 'a':
- show_acs_chars();
- break;
- case '0':
- case '1':
- case '2':
- case '3':
- show_upper_chars((c - '0') * 32 + 128);
- break;
- }
- 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");
- refresh();
- } while ((c = Getchar()) != 'x' && c != 'q');
-
- Pause();
- erase();
- endwin();
-}
-
-/*
- * Graphic-rendition test (adapted from vttest)
- */
-static void
-test_sgr_attributes(void)
-{
- int pass;
-
- for (pass = 0; pass < 2; pass++) {
- int normal = ((pass == 0 ? A_NORMAL : A_REVERSE)) | BLANK;
-
- /* Use non-default colors if possible to exercise bce a little */
- if (has_colors()) {
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- normal |= COLOR_PAIR(1);
- }
- bkgdset(normal);
- erase();
- mvprintw(1, 20, "Graphic rendition test pattern:");
-
- mvprintw(4, 1, "vanilla");
-
-#define set_sgr(mask) bkgdset((normal^(mask)));
- set_sgr(A_BOLD);
- mvprintw(4, 40, "bold");
-
- set_sgr(A_UNDERLINE);
- mvprintw(6, 6, "underline");
-
- set_sgr(A_BOLD | A_UNDERLINE);
- mvprintw(6, 45, "bold underline");
-
- set_sgr(A_BLINK);
- mvprintw(8, 1, "blink");
-
- set_sgr(A_BLINK | A_BOLD);
- mvprintw(8, 40, "bold blink");
-
- set_sgr(A_UNDERLINE | A_BLINK);
- mvprintw(10, 6, "underline blink");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_BLINK);
- mvprintw(10, 45, "bold underline blink");
-
- set_sgr(A_REVERSE);
- mvprintw(12, 1, "negative");
-
- set_sgr(A_BOLD | A_REVERSE);
- mvprintw(12, 40, "bold negative");
-
- set_sgr(A_UNDERLINE | A_REVERSE);
- mvprintw(14, 6, "underline negative");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_REVERSE);
- mvprintw(14, 45, "bold underline negative");
-
- set_sgr(A_BLINK | A_REVERSE);
- mvprintw(16, 1, "blink negative");
-
- set_sgr(A_BOLD | A_BLINK | A_REVERSE);
- mvprintw(16, 40, "bold blink negative");
-
- set_sgr(A_UNDERLINE | A_BLINK | A_REVERSE);
- mvprintw(18, 6, "underline blink negative");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_BLINK | A_REVERSE);
- mvprintw(18, 45, "bold underline blink negative");
-
- bkgdset(normal);
- mvprintw(LINES - 2, 1, "%s background. ", pass == 0 ? "Dark" :
- "Light");
- clrtoeol();
- Pause();
- }
-
- bkgdset(A_NORMAL | BLANK);
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Windows and scrolling tester.
- *
- ****************************************************************************/
-
-#define BOTLINES 4 /* number of line stolen from screen bottom */
-
-typedef struct {
- int y, x;
-} pair;
-
-#define FRAME struct frame
-FRAME
-{
- FRAME *next, *last;
- bool do_scroll;
- bool do_keypad;
- WINDOW *wind;
-};
-
-/* 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.
- */
-static bool
-HaveKeypad(FRAME * curp)
-{
- WINDOW *win = (curp ? curp->wind : stdscr);
- return win->_use_keypad;
-}
-
-static bool
-HaveScroll(FRAME * curp)
-{
- WINDOW *win = (curp ? curp->wind : stdscr);
- return win->_scroll;
-}
-
-static void
-newwin_legend(FRAME * curp)
-{
- static const struct {
- const char *msg;
- int code;
- } legend[] = {
- {
- "^C = create window", 0
- },
- {
- "^N = next window", 0
- },
- {
- "^P = previous window", 0
- },
- {
- "^F = scroll forward", 0
- },
- {
- "^B = scroll backward", 0
- },
- {
- "^K = keypad(%s)", 1
- },
- {
- "^S = scrollok(%s)", 2
- },
- {
- "^W = save window to file", 0
- },
- {
- "^R = restore window", 0
- },
-#if HAVE_WRESIZE
- {
- "^X = resize", 0
- },
-#endif
- {
- "^Q%s = exit", 3
- }
- };
- size_t n;
- int y, x;
- bool do_keypad = HaveKeypad(curp);
- bool do_scroll = HaveScroll(curp);
- char buf[BUFSIZ];
-
- move(LINES - 4, 0);
- for (n = 0; n < SIZEOF(legend); n++) {
- switch (legend[n].code) {
- default:
- strcpy(buf, legend[n].msg);
- break;
- case 1:
- sprintf(buf, legend[n].msg, do_keypad ? "yes" : "no");
- break;
- case 2:
- sprintf(buf, legend[n].msg, do_scroll ? "yes" : "no");
- break;
- case 3:
- sprintf(buf, legend[n].msg, do_keypad ? "/ESC" : "");
- break;
- }
- getyx(stdscr, y, x);
- addstr((COLS < (x + 3 + (int) strlen(buf))) ? "\n" : (n ? ", " : ""));
- addstr(buf);
- }
- clrtoeol();
-}
-
-static void
-transient(FRAME * curp, NCURSES_CONST char *msg)
-{
- newwin_legend(curp);
- if (msg) {
- mvaddstr(LINES - 1, 0, msg);
- refresh();
- napms(1000);
- }
-
- move(LINES - 1, 0);
- printw("%s characters are echoed, window should %sscroll.",
- HaveKeypad(curp) ? "Non-arrow" : "All other",
- HaveScroll(curp) ? "" : "not ");
- clrtoeol();
-}
-
-static void
-newwin_report(FRAME * curp)
-/* report on the cursor's current position, then restore it */
-{
- WINDOW *win = (curp != 0) ? curp->wind : stdscr;
- int y, x;
-
- if (win != stdscr)
- transient(curp, (char *) 0);
- getyx(win, y, x);
- move(LINES - 1, COLS - 17);
- printw("Y = %2d X = %2d", y, x);
- if (win != stdscr)
- refresh();
- else
- wmove(win, y, x);
-}
-
-static pair *
-selectcell(int uli, int ulj, int lri, int lrj)
-/* arrows keys move cursor, return location at current on non-arrow key */
-{
- static pair res; /* result cell */
- int si = lri - uli + 1; /* depth of the select area */
- int sj = lrj - ulj + 1; /* width of the select area */
- int i = 0, j = 0; /* offsets into the select area */
-
- res.y = uli;
- res.x = ulj;
- for (;;) {
- move(uli + i, ulj + j);
- newwin_report((FRAME *) 0);
-
- switch (Getchar()) {
- case KEY_UP:
- i += si - 1;
- break;
- case KEY_DOWN:
- i++;
- break;
- case KEY_LEFT:
- j += sj - 1;
- break;
- case KEY_RIGHT:
- j++;
- break;
- case QUIT:
- case ESCAPE:
- return ((pair *) 0);
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT event;
-
- getmouse(&event);
- if (event.y > uli && event.x > ulj) {
- i = event.y - uli;
- j = event.x - ulj;
- } else {
- beep();
- break;
- }
- }
- /* FALLTHRU */
-#endif
- default:
- res.y = uli + i;
- res.x = ulj + j;
- return (&res);
- }
- i %= si;
- j %= sj;
- }
-}
-
-static void
-outerbox(pair ul, pair lr, bool onoff)
-/* draw or erase a box *outside* the given pair of corners */
-{
- mvaddch(ul.y - 1, lr.x - 1, onoff ? ACS_ULCORNER : ' ');
- mvaddch(ul.y - 1, lr.x + 1, onoff ? ACS_URCORNER : ' ');
- mvaddch(lr.y + 1, lr.x + 1, onoff ? ACS_LRCORNER : ' ');
- mvaddch(lr.y + 1, ul.x - 1, onoff ? ACS_LLCORNER : ' ');
- move(ul.y - 1, ul.x);
- hline(onoff ? ACS_HLINE : ' ', lr.x - ul.x + 1);
- move(ul.y, ul.x - 1);
- vline(onoff ? ACS_VLINE : ' ', lr.y - ul.y + 1);
- move(lr.y + 1, ul.x);
- hline(onoff ? ACS_HLINE : ' ', lr.x - ul.x + 1);
- move(ul.y, lr.x + 1);
- vline(onoff ? ACS_VLINE : ' ', lr.y - ul.y + 1);
-}
-
-static WINDOW *
-getwindow(void)
-/* Ask user for a window definition */
-{
- WINDOW *rwindow;
- pair ul, lr, *tmp;
-
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark corner 1");
- refresh();
- if ((tmp = selectcell(2, 1, LINES - BOTLINES - 2, COLS - 2)) == (pair *) 0)
- return ((WINDOW *) 0);
- memcpy(&ul, tmp, sizeof(pair));
- mvaddch(ul.y - 1, ul.x - 1, ACS_ULCORNER);
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark corner 2");
- refresh();
- if ((tmp = selectcell(ul.y, ul.x, LINES - BOTLINES - 2, COLS - 2)) ==
- (pair *) 0)
- return ((WINDOW *) 0);
- memcpy(&lr, tmp, sizeof(pair));
-
- rwindow = subwin(stdscr, lr.y - ul.y + 1, lr.x - ul.x + 1, ul.y, ul.x);
-
- outerbox(ul, lr, TRUE);
- refresh();
-
- wrefresh(rwindow);
-
- move(0, 0);
- clrtoeol();
- return (rwindow);
-}
-
-static void
-newwin_move(FRAME * curp, int dy, int dx)
-{
- WINDOW *win = (curp != 0) ? curp->wind : stdscr;
- int cur_y, cur_x;
- int max_y, max_x;
-
- getyx(win, cur_y, cur_x);
- getmaxyx(win, max_y, max_x);
- if ((cur_x += dx) < 0)
- cur_x = 0;
- else if (cur_x >= max_x)
- cur_x = max_x - 1;
- if ((cur_y += dy) < 0)
- cur_y = 0;
- else if (cur_y >= max_y)
- cur_y = max_y - 1;
- wmove(win, cur_y, cur_x);
-}
-
-static FRAME *
-delete_framed(FRAME * fp, bool showit)
-{
- FRAME *np;
-
- fp->last->next = fp->next;
- fp->next->last = fp->last;
-
- if (showit) {
- werase(fp->wind);
- wrefresh(fp->wind);
- }
- delwin(fp->wind);
-
- np = (fp == fp->next) ? 0 : fp->next;
- free(fp);
- return np;
-}
-
-static void
-acs_and_scroll(void)
-/* Demonstrate windows */
-{
- int c, i;
- FILE *fp;
- FRAME *current = (FRAME *) 0, *neww;
- WINDOW *usescr = stdscr;
-
-#define DUMPFILE "screendump"
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(BUTTON1_CLICKED, (mmask_t *) 0);
-#endif
- c = CTRL('C');
- raw();
- do {
- transient((FRAME *) 0, (char *) 0);
- switch (c) {
- case CTRL('C'):
- neww = (FRAME *) calloc(1, sizeof(FRAME));
- if ((neww->wind = getwindow()) == (WINDOW *) 0)
- goto breakout;
-
- if (current == 0) { /* First element, */
- neww->next = neww; /* so point it at itself */
- neww->last = neww;
- } else {
- neww->next = current->next;
- neww->last = current;
- neww->last->next = neww;
- neww->next->last = neww;
- }
- current = neww;
- /* SVr4 curses sets the keypad on all newly-created windows to
- * false. Someone reported that PDCurses makes new windows inherit
- * this flag. Remove the following 'keypad()' call to test this
- */
- keypad(current->wind, TRUE);
- current->do_keypad = HaveKeypad(current);
- current->do_scroll = HaveScroll(current);
- break;
-
- case CTRL('N'): /* go to next window */
- if (current)
- current = current->next;
- break;
-
- case CTRL('P'): /* go to previous window */
- if (current)
- current = current->last;
- break;
-
- case CTRL('F'): /* scroll current window forward */
- if (current)
- wscrl(current->wind, 1);
- break;
-
- case CTRL('B'): /* scroll current window backwards */
- if (current)
- wscrl(current->wind, -1);
- break;
-
- case CTRL('K'): /* toggle keypad mode for current */
- if (current) {
- current->do_keypad = !current->do_keypad;
- keypad(current->wind, current->do_keypad);
- }
- break;
-
- case CTRL('S'):
- if (current) {
- current->do_scroll = !current->do_scroll;
- scrollok(current->wind, current->do_scroll);
- }
- break;
-
- case CTRL('W'): /* save and delete window */
- if (current == current->next)
- break;
- if ((fp = fopen(DUMPFILE, "w")) == (FILE *) 0)
- transient(current, "Can't open screen dump file");
- else {
- (void) putwin(current->wind, fp);
- (void) fclose(fp);
-
- current = delete_framed(current, TRUE);
- }
- break;
-
- case CTRL('R'): /* restore window */
- if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0)
- transient(current, "Can't open screen dump file");
- else {
- neww = (FRAME *) calloc(1, sizeof(FRAME));
-
- neww->next = current->next;
- neww->last = current;
- neww->last->next = neww;
- neww->next->last = neww;
-
- neww->wind = getwin(fp);
- (void) fclose(fp);
-
- wrefresh(neww->wind);
- }
- break;
-
-#if HAVE_WRESIZE
- case CTRL('X'): /* resize window */
- if (current) {
- pair *tmp, ul, lr;
- int mx, my;
-
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark new corner");
- refresh();
-
- getbegyx(current->wind, ul.y, ul.x);
-
- tmp = selectcell(ul.y, ul.x, LINES - BOTLINES - 2, COLS - 2);
- if (tmp == (pair *) 0) {
- beep();
- break;
- }
-
- getmaxyx(current->wind, lr.y, lr.x);
- lr.y += (ul.y - 1);
- lr.x += (ul.x - 1);
- outerbox(ul, lr, FALSE);
- wnoutrefresh(stdscr);
-
- /* strictly cosmetic hack for the test */
- getmaxyx(current->wind, my, mx);
- if (my > tmp->y - ul.y) {
- getyx(current->wind, lr.y, lr.x);
- wmove(current->wind, tmp->y - ul.y + 1, 0);
- wclrtobot(current->wind);
- wmove(current->wind, lr.y, lr.x);
- }
- if (mx > tmp->x - ul.x)
- for (i = 0; i < my; i++) {
- wmove(current->wind, i, tmp->x - ul.x + 1);
- wclrtoeol(current->wind);
- }
- wnoutrefresh(current->wind);
-
- memcpy(&lr, tmp, sizeof(pair));
- (void) wresize(current->wind, lr.y - ul.y + 0, lr.x - ul.x + 0);
-
- getbegyx(current->wind, ul.y, ul.x);
- getmaxyx(current->wind, lr.y, lr.x);
- lr.y += (ul.y - 1);
- lr.x += (ul.x - 1);
- outerbox(ul, lr, TRUE);
- wnoutrefresh(stdscr);
-
- wnoutrefresh(current->wind);
- move(0, 0);
- clrtoeol();
- doupdate();
- }
- break;
-#endif /* HAVE_WRESIZE */
-
- case KEY_F(10): /* undocumented --- use this to test area clears */
- selectcell(0, 0, LINES - 1, COLS - 1);
- clrtobot();
- refresh();
- break;
-
- case KEY_UP:
- newwin_move(current, -1, 0);
- break;
- case KEY_DOWN:
- newwin_move(current, 1, 0);
- break;
- case KEY_LEFT:
- newwin_move(current, 0, -1);
- break;
- case KEY_RIGHT:
- newwin_move(current, 0, 1);
- break;
-
- case KEY_BACKSPACE:
- /* FALLTHROUGH */
- case KEY_DC:
- {
- int y, x;
- getyx(current->wind, y, x);
- if (--x < 0) {
- if (--y < 0)
- break;
- x = getmaxx(current->wind) - 1;
- }
- mvwdelch(current->wind, y, x);
- }
- break;
-
- case '\r':
- c = '\n';
- /* FALLTHROUGH */
-
- default:
- if (current)
- waddch(current->wind, (chtype) c);
- else
- beep();
- break;
- }
- newwin_report(current);
- usescr = (current ? current->wind : stdscr);
- wrefresh(usescr);
- } while
- ((c = wGetchar(usescr)) != QUIT
- && !((c == ESCAPE) && (usescr->_use_keypad))
- && (c != ERR));
-
- breakout:
- while (current != 0)
- current = delete_framed(current, FALSE);
-
- scrollok(stdscr, TRUE); /* reset to driver's default */
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
- noraw();
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Panels tester
- *
- ****************************************************************************/
-
-#if USE_LIBPANEL
-static unsigned long nap_msec = 1;
-
-static NCURSES_CONST char *mod[] =
-{
- "test ",
- "TEST ",
- "(**) ",
- "*()* ",
- "<--> ",
- "LAST "
-};
-
-/*+-------------------------------------------------------------------------
- wait_a_while(msec)
---------------------------------------------------------------------------*/
-static void
-wait_a_while(unsigned long msec GCC_UNUSED)
-{
-#if HAVE_NAPMS
- if (nap_msec == 1)
- wGetchar(stdscr);
- else
- napms(nap_msec);
-#else
- if (nap_msec == 1)
- wGetchar(stdscr);
- else if (msec > 1000L)
- sleep((int) msec / 1000L);
- else
- sleep(1);
-#endif
-} /* end of wait_a_while */
-
-/*+-------------------------------------------------------------------------
- saywhat(text)
---------------------------------------------------------------------------*/
-static void
-saywhat(NCURSES_CONST char *text)
-{
- wmove(stdscr, LINES - 1, 0);
- wclrtoeol(stdscr);
- waddstr(stdscr, text);
-} /* end of saywhat */
-
-/*+-------------------------------------------------------------------------
- mkpanel(rows,cols,tly,tlx) - alloc a win and panel and associate them
---------------------------------------------------------------------------*/
-static PANEL *
-mkpanel(int color, int rows, int cols, int tly, int tlx)
-{
- WINDOW *win;
- PANEL *pan = 0;
-
- if ((win = newwin(rows, cols, tly, tlx)) != 0) {
- if ((pan = new_panel(win)) == 0) {
- delwin(win);
- } else if (has_colors()) {
- int fg = (color == COLOR_BLUE) ? COLOR_WHITE : COLOR_BLACK;
- int bg = color;
- init_pair(color, fg, bg);
- wbkgdset(win, COLOR_PAIR(color) | ' ');
- } else {
- wbkgdset(win, A_BOLD | ' ');
- }
- }
- return pan;
-} /* end of mkpanel */
-
-/*+-------------------------------------------------------------------------
- rmpanel(pan)
---------------------------------------------------------------------------*/
-static void
-rmpanel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- del_panel(pan);
- delwin(win);
-} /* end of rmpanel */
-
-/*+-------------------------------------------------------------------------
- pflush()
---------------------------------------------------------------------------*/
-static void
-pflush(void)
-{
- update_panels();
- doupdate();
-} /* end of pflush */
-
-/*+-------------------------------------------------------------------------
- fill_panel(win)
---------------------------------------------------------------------------*/
-static void
-fill_panel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- int num = ((const char *) panel_userptr(pan))[1];
- int y, x;
-
- wmove(win, 1, 1);
- wprintw(win, "-pan%c-", num);
- wclrtoeol(win);
- box(win, 0, 0);
- for (y = 2; y < getmaxy(win) - 1; y++) {
- for (x = 1; x < getmaxx(win) - 1; x++) {
- wmove(win, y, x);
- waddch(win, num);
- }
- }
-} /* end of fill_panel */
-
-static void
-demo_panels(void)
-{
- int itmp;
- register int y, x;
-
- refresh();
-
- for (y = 0; y < LINES - 1; y++) {
- for (x = 0; x < COLS; x++)
- wprintw(stdscr, "%d", (y + x) % 10);
- }
- for (y = 0; y < 5; y++) {
- PANEL *p1;
- PANEL *p2;
- PANEL *p3;
- PANEL *p4;
- PANEL *p5;
-
- p1 = mkpanel(COLOR_RED,
- LINES / 2 - 2,
- COLS / 8 + 1,
- 0,
- 0);
- set_panel_userptr(p1, "p1");
-
- p2 = mkpanel(COLOR_GREEN,
- LINES / 2 + 1,
- COLS / 7,
- LINES / 4,
- COLS / 10);
- set_panel_userptr(p2, "p2");
-
- p3 = mkpanel(COLOR_YELLOW,
- LINES / 4,
- COLS / 10,
- LINES / 2,
- COLS / 9);
- set_panel_userptr(p3, "p3");
-
- p4 = mkpanel(COLOR_BLUE,
- LINES / 2 - 2,
- COLS / 8,
- LINES / 2 - 2,
- COLS / 3);
- set_panel_userptr(p4, "p4");
-
- p5 = mkpanel(COLOR_MAGENTA,
- LINES / 2 - 2,
- COLS / 8,
- LINES / 2,
- COLS / 2 - 2);
- set_panel_userptr(p5, "p5");
-
- fill_panel(p1);
- fill_panel(p2);
- fill_panel(p3);
- fill_panel(p4);
- fill_panel(p5);
- hide_panel(p4);
- hide_panel(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_panel(p1, 0, 0);
- hide_panel(p3);
- show_panel(p1);
- show_panel(p2);
- show_panel(p4);
- show_panel(p5);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s1; press any key to continue");
- show_panel(p1);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s2; press any key to continue");
- show_panel(p2);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("m2; press any key to continue");
- move_panel(p2, LINES / 3 + 1, COLS / 8);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s3;");
- show_panel(p3);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("m3; press any key to continue");
- move_panel(p3, LINES / 4 + 1, COLS / 15);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("b3; press any key to continue");
- bottom_panel(p3);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s4; press any key to continue");
- show_panel(p4);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s5; press any key to continue");
- show_panel(p5);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t3; press any key to continue");
- top_panel(p3);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t1; press any key to continue");
- top_panel(p1);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t2; press any key to continue");
- top_panel(p2);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t3; press any key to continue");
- top_panel(p3);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t4; press any key to continue");
- top_panel(p4);
- pflush();
- wait_a_while(nap_msec);
-
- for (itmp = 0; itmp < 6; itmp++) {
- WINDOW *w4 = panel_window(p4);
- WINDOW *w5 = panel_window(p5);
-
- saywhat("m4; press any key to continue");
- wmove(w4, LINES / 8, 1);
- waddstr(w4, mod[itmp]);
- move_panel(p4, LINES / 6, itmp * (COLS / 8));
- wmove(w5, LINES / 6, 1);
- waddstr(w5, mod[itmp]);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("m5; press any key to continue");
- wmove(w4, LINES / 6, 1);
- waddstr(w4, mod[itmp]);
- move_panel(p5, LINES / 3 - 1, (itmp * 10) + 6);
- wmove(w5, LINES / 8, 1);
- waddstr(w5, mod[itmp]);
- pflush();
- wait_a_while(nap_msec);
- }
-
- saywhat("m4; press any key to continue");
- move_panel(p4, LINES / 6, itmp * (COLS / 8));
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t5; press any key to continue");
- top_panel(p5);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t2; press any key to continue");
- top_panel(p2);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t1; press any key to continue");
- top_panel(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_panel(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)
- break;
- nap_msec = 100L;
- }
-
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Pad tester
- *
- ****************************************************************************/
-
-#define GRIDSIZE 3
-
-static bool pending_pan = FALSE;
-static bool show_panner_legend = TRUE;
-
-static int
-panner_legend(int line)
-{
- static const char *const legend[] =
- {
- "Use arrow keys (or U,D,L,R) to pan, q to quit, ! to shell-out.",
- "Use +,- (or j,k) to grow/shrink the panner vertically.",
- "Use <,> (or h,l) to grow/shrink the panner horizontally.",
- "Number repeats. Toggle legend:?, timer:t, scroll mark:s."
- };
- int n = (SIZEOF(legend) - (LINES - line));
- if (line < LINES && (n >= 0)) {
- move(line, 0);
- if (show_panner_legend)
- printw("%s", legend[n]);
- clrtoeol();
- return show_panner_legend;
- }
- return FALSE;
-}
-
-static void
-panner_h_cleanup(int from_y, int from_x, int to_x)
-{
- if (!panner_legend(from_y))
- do_h_line(from_y, from_x, ' ', to_x);
-}
-
-static void
-panner_v_cleanup(int from_y, int from_x, int to_y)
-{
- if (!panner_legend(from_y))
- do_v_line(from_y, from_x, ' ', to_y);
-}
-
-static void
-panner(WINDOW *pad,
- int top_x, int top_y, int porty, int portx,
- int (*pgetc) (WINDOW *))
-{
-#if HAVE_GETTIMEOFDAY
- struct timeval before, after;
- bool timing = TRUE;
-#endif
- bool scrollers = TRUE;
- int basex = 0;
- int basey = 0;
- int pxmax, pymax, lowend, highend, c;
-
- getmaxyx(pad, pymax, pxmax);
- scrollok(stdscr, FALSE); /* we don't want stdscr to scroll! */
-
- c = KEY_REFRESH;
- do {
-#ifdef NCURSES_VERSION
- /*
- * 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 > COLS)
- top_x = COLS;
- if (portx > COLS)
- portx = COLS;
- if (top_y > LINES)
- top_y = LINES;
- if (porty > LINES)
- porty = LINES;
-#endif
- switch (c) {
- case KEY_REFRESH:
- erase();
-
- /* FALLTHRU */
- case '?':
- if (c == '?')
- show_panner_legend = !show_panner_legend;
- panner_legend(LINES - 4);
- panner_legend(LINES - 3);
- panner_legend(LINES - 2);
- panner_legend(LINES - 1);
- break;
-#if HAVE_GETTIMEOFDAY
- case 't':
- timing = !timing;
- if (!timing)
- panner_legend(LINES - 1);
- break;
-#endif
- case 's':
- scrollers = !scrollers;
- break;
-
- /* Move the top-left corner of the pad, keeping the bottom-right
- * corner fixed.
- */
- case 'h': /* increase-columns: move left edge to left */
- if (top_x <= 0)
- beep();
- else {
- panner_v_cleanup(top_y, top_x, porty);
- top_x--;
- }
- break;
-
- case 'j': /* decrease-lines: move top-edge down */
- if (top_y >= porty)
- beep();
- else {
- panner_h_cleanup(top_y - 1, top_x - (top_x > 0), portx);
- top_y++;
- }
- break;
-
- case 'k': /* increase-lines: move top-edge up */
- if (top_y <= 0)
- beep();
- else {
- top_y--;
- panner_h_cleanup(top_y, top_x, portx);
- }
- break;
-
- case 'l': /* decrease-columns: move left-edge to right */
- if (top_x >= portx)
- beep();
- else {
- panner_v_cleanup(top_y - (top_y > 0), top_x - 1, porty);
- top_x++;
- }
- break;
-
- /* Move the bottom-right corner of the pad, keeping the top-left
- * corner fixed.
- */
- case KEY_IC: /* increase-columns: move right-edge to right */
- if (portx >= pxmax || portx >= COLS)
- beep();
- else {
- panner_v_cleanup(top_y - (top_y > 0), portx - 1, porty);
- ++portx;
- }
- break;
-
- case KEY_IL: /* increase-lines: move bottom-edge down */
- if (porty >= pymax || porty >= LINES)
- beep();
- else {
- panner_h_cleanup(porty - 1, top_x - (top_x > 0), portx);
- ++porty;
- }
- break;
-
- case KEY_DC: /* decrease-columns: move bottom edge up */
- if (portx <= top_x)
- beep();
- else {
- portx--;
- panner_v_cleanup(top_y - (top_y > 0), portx, porty);
- }
- break;
-
- case KEY_DL: /* decrease-lines */
- if (porty <= top_y)
- beep();
- else {
- porty--;
- panner_h_cleanup(porty, top_x - (top_x > 0), portx);
- }
- break;
-
- case KEY_LEFT: /* pan leftwards */
- if (basex > 0)
- basex--;
- else
- beep();
- break;
-
- case KEY_RIGHT: /* pan rightwards */
- if (basex + portx - (pymax > porty) < pxmax)
- basex++;
- else
- beep();
- break;
-
- case KEY_UP: /* pan upwards */
- if (basey > 0)
- basey--;
- else
- beep();
- break;
-
- case KEY_DOWN: /* pan downwards */
- if (basey + porty - (pxmax > portx) < pymax)
- basey++;
- else
- beep();
- break;
-
- case 'H':
- case KEY_HOME:
- case KEY_FIND:
- basey = 0;
- break;
-
- case 'E':
- case KEY_END:
- case KEY_SELECT:
- basey = pymax - porty;
- if (basey < 0)
- basey = 0;
- break;
-
- default:
- beep();
- break;
- }
-
- mvaddch(top_y - 1, top_x - 1, ACS_ULCORNER);
- do_v_line(top_y, top_x - 1, ACS_VLINE, porty);
- do_h_line(top_y - 1, top_x, ACS_HLINE, portx);
-
- if (scrollers && (pxmax > portx - 1)) {
- int length = (portx - top_x - 1);
- float ratio = ((float) length) / ((float) pxmax);
-
- lowend = (int) (top_x + (basex * ratio));
- highend = (int) (top_x + ((basex + length) * ratio));
-
- do_h_line(porty - 1, top_x, ACS_HLINE, lowend);
- if (highend < portx) {
- attron(A_REVERSE);
- do_h_line(porty - 1, lowend, ' ', highend + 1);
- attroff(A_REVERSE);
- do_h_line(porty - 1, highend + 1, ACS_HLINE, portx);
- }
- } else
- do_h_line(porty - 1, top_x, ACS_HLINE, portx);
-
- if (scrollers && (pymax > porty - 1)) {
- int length = (porty - top_y - 1);
- float ratio = ((float) length) / ((float) pymax);
-
- lowend = (int) (top_y + (basey * ratio));
- highend = (int) (top_y + ((basey + length) * ratio));
-
- do_v_line(top_y, portx - 1, ACS_VLINE, lowend);
- if (highend < porty) {
- attron(A_REVERSE);
- do_v_line(lowend, portx - 1, ' ', highend + 1);
- attroff(A_REVERSE);
- do_v_line(highend + 1, portx - 1, ACS_VLINE, porty);
- }
- } else
- do_v_line(top_y, portx - 1, ACS_VLINE, porty);
-
- mvaddch(top_y - 1, portx - 1, ACS_URCORNER);
- mvaddch(porty - 1, top_x - 1, ACS_LLCORNER);
- mvaddch(porty - 1, portx - 1, ACS_LRCORNER);
-
- if (!pending_pan) {
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&before, 0);
-#endif
- wnoutrefresh(stdscr);
-
- pnoutrefresh(pad,
- basey, basex,
- top_y, top_x,
- porty - (pxmax > portx) - 1,
- portx - (pymax > porty) - 1);
-
- doupdate();
-#if HAVE_GETTIMEOFDAY
- if (timing) {
- double elapsed;
- gettimeofday(&after, 0);
- elapsed = (after.tv_sec + after.tv_usec / 1.0e6)
- - (before.tv_sec + before.tv_usec / 1.0e6);
- move(LINES - 1, COLS - 20);
- printw("Secs: %2.03f", elapsed);
- refresh();
- }
-#endif
- }
-
- } while
- ((c = pgetc(pad)) != KEY_EXIT);
-
- scrollok(stdscr, TRUE); /* reset to driver's default */
-}
-
-static int
-padgetch(WINDOW *win)
-{
- static int count;
- static int last;
- int c;
-
- if ((pending_pan = (count > 0)) != FALSE) {
- count--;
- pending_pan = (count != 0);
- } else {
- for (;;) {
- switch (c = wGetchar(win)) {
- case '!':
- ShellOut(FALSE);
- c = KEY_REFRESH;
- case CTRL('r'):
- endwin();
- refresh();
- c = KEY_REFRESH;
- break;
- case CTRL('l'):
- c = KEY_REFRESH;
- break;
- case 'U':
- c = KEY_UP;
- break;
- case 'D':
- c = KEY_DOWN;
- break;
- case 'R':
- c = KEY_RIGHT;
- break;
- case 'L':
- c = KEY_LEFT;
- break;
- case '+':
- c = KEY_IL;
- break;
- case '-':
- c = KEY_DL;
- break;
- case '>':
- c = KEY_IC;
- break;
- case '<':
- c = KEY_DC;
- break;
- case ERR: /* FALLTHRU */
- case 'q':
- count = 0;
- c = KEY_EXIT;
- break;
- default:
- if (c >= '0' && c <= '9') {
- count = count * 10 + (c - '0');
- continue;
- }
- break;
- }
- last = c;
- break;
- }
- if (count > 0)
- count--;
- }
- return (last);
-}
-
-#define PAD_HIGH 200
-#define PAD_WIDE 200
-
-static void
-demo_pad(void)
-/* Demonstrate pads. */
-{
- int i, j;
- unsigned gridcount = 0;
- WINDOW *panpad = newpad(PAD_HIGH, PAD_WIDE);
-
- if (panpad == 0) {
- Cannot("cannot create requested pad");
- return;
- }
-
- for (i = 0; i < PAD_HIGH; i++) {
- for (j = 0; j < PAD_WIDE; j++)
- if (i % GRIDSIZE == 0 && j % GRIDSIZE == 0) {
- if (i == 0 || j == 0)
- waddch(panpad, '+');
- else
- waddch(panpad, (chtype) ('A' + (gridcount++ % 26)));
- } else if (i % GRIDSIZE == 0)
- waddch(panpad, '-');
- else if (j % GRIDSIZE == 0)
- waddch(panpad, '|');
- else
- waddch(panpad, ' ');
- }
- panner_legend(LINES - 4);
- panner_legend(LINES - 3);
- panner_legend(LINES - 2);
- panner_legend(LINES - 1);
-
- keypad(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, COLS - 15, padgetch);
-
- delwin(panpad);
- endwin();
- erase();
-}
-#endif /* USE_LIBPANEL */
-
-/****************************************************************************
- *
- * Tests from John Burnell's PDCurses tester
- *
- ****************************************************************************/
-
-static void
-Continue(WINDOW *win)
-{
- noecho();
- wmove(win, 10, 1);
- mvwaddstr(win, 10, 1, " Press any key to continue");
- wrefresh(win);
- wGetchar(win);
-}
-
-static void
-flushinp_test(WINDOW *win)
-/* Input test, adapted from John Burnell's PDCurses tester */
-{
- int w, h, bx, by, sw, sh, i;
-
- WINDOW *subWin;
- wclear(win);
-
- getmaxyx(win, h, w);
- getbegyx(win, by, bx);
- sw = w / 3;
- sh = h / 3;
- if ((subWin = subwin(win, sh, sw, by + h - sh - 2, bx + w - sw - 2)) == 0)
- return;
-
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(2, COLOR_CYAN, COLOR_BLUE);
- wbkgd(subWin, COLOR_PAIR(2) | ' ');
- }
-#endif
- wattrset(subWin, A_BOLD);
- box(subWin, ACS_VLINE, ACS_HLINE);
- mvwaddstr(subWin, 2, 1, "This is a subwindow");
- wrefresh(win);
-
- /*
- * This used to set 'nocbreak()'. However, Alexander Lukyanov says that
- * it only happened to "work" on SVr4 because that implementation does not
- * emulate nocbreak+noecho mode, whereas ncurses does. To get the desired
- * test behavior, we're using 'cbreak()', which will allow a single
- * character to return without needing a newline. - T.Dickey 1997/10/11.
- */
- cbreak();
- mvwaddstr(win, 0, 1, "This is a test of the flushinp() call.");
-
- mvwaddstr(win, 2, 1, "Type random keys for 5 seconds.");
- mvwaddstr(win, 3, 1,
- "These should be discarded (not echoed) after the subwindow goes away.");
- wrefresh(win);
-
- for (i = 0; i < 5; i++) {
- mvwprintw(subWin, 1, 1, "Time = %d", i);
- wrefresh(subWin);
- napms(1000);
- flushinp();
- }
-
- delwin(subWin);
- werase(win);
- flash();
- wrefresh(win);
- napms(1000);
-
- mvwaddstr(win, 2, 1,
- "If you were still typing when the window timer expired,");
- mvwaddstr(win, 3, 1,
- "or else you typed nothing at all while it was running,");
- mvwaddstr(win, 4, 1,
- "test was invalid. You'll see garbage or nothing at all. ");
- mvwaddstr(win, 6, 1, "Press a key");
- wmove(win, 9, 10);
- wrefresh(win);
- echo();
- wGetchar(win);
- flushinp();
- mvwaddstr(win, 12, 0,
- "If you see any key other than what you typed, flushinp() is broken.");
- Continue(win);
-
- wmove(win, 9, 10);
- wdelch(win);
- wrefresh(win);
- wmove(win, 12, 0);
- clrtoeol();
- waddstr(win,
- "What you typed should now have been deleted; if not, wdelch() failed.");
- Continue(win);
-
- cbreak();
-}
-
-/****************************************************************************
- *
- * Menu test
- *
- ****************************************************************************/
-
-#if USE_LIBMENU
-
-#define MENU_Y 8
-#define MENU_X 8
-
-static int
-menu_virtualize(int c)
-{
- if (c == '\n' || c == KEY_EXIT)
- return (MAX_COMMAND + 1);
- else if (c == 'u')
- return (REQ_SCR_ULINE);
- else if (c == 'd')
- return (REQ_SCR_DLINE);
- else if (c == 'b' || c == KEY_NPAGE)
- return (REQ_SCR_UPAGE);
- else if (c == 'f' || c == KEY_PPAGE)
- return (REQ_SCR_DPAGE);
- else if (c == 'n' || c == KEY_DOWN)
- return (REQ_NEXT_ITEM);
- else if (c == 'p' || c == KEY_UP)
- return (REQ_PREV_ITEM);
- else if (c == ' ')
- return (REQ_TOGGLE_ITEM);
- else {
- if (c != KEY_MOUSE)
- beep();
- return (c);
- }
-}
-
-static const char *animals[] =
-{
- "Lions", "Tigers", "Bears", "(Oh my!)", "Newts", "Platypi", "Lemurs",
- (char *) 0
-};
-
-static void
-menu_test(void)
-{
- MENU *m;
- ITEM *items[SIZEOF(animals)];
- ITEM **ip = items;
- const char **ap;
- int mrows, mcols, c;
- WINDOW *menuwin;
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
- mvaddstr(0, 0, "This is the menu test:");
- mvaddstr(2, 0, " Use up and down arrow to move the select bar.");
- mvaddstr(3, 0, " 'n' and 'p' act like arrows.");
- mvaddstr(4, 0,
- " 'b' and 'f' scroll up/down (page), 'u' and 'd' (line).");
- mvaddstr(5, 0, " Press return to exit.");
- refresh();
-
- for (ap = animals; *ap; ap++)
- *ip++ = new_item(*ap, "");
- *ip = (ITEM *) 0;
-
- m = new_menu(items);
-
- set_menu_format(m, (SIZEOF(animals) + 1) / 2, 1);
- scale_menu(m, &mrows, &mcols);
-
- menuwin = newwin(mrows + 2, mcols + 2, MENU_Y, MENU_X);
- set_menu_win(m, menuwin);
- keypad(menuwin, TRUE);
- box(menuwin, 0, 0);
-
- set_menu_sub(m, derwin(menuwin, mrows, mcols, 1, 1));
-
- post_menu(m);
-
- while ((c = menu_driver(m, menu_virtualize(wGetchar(menuwin)))) != E_UNKNOWN_COMMAND) {
- if (c == E_REQUEST_DENIED)
- beep();
- continue;
- }
-
- (void) mvprintw(LINES - 2, 0,
- "You chose: %s\n", item_name(current_item(m)));
- (void) addstr("Press any key to continue...");
- wGetchar(stdscr);
-
- unpost_menu(m);
- delwin(menuwin);
-
- free_menu(m);
- for (ip = items; *ip; ip++)
- free_item(*ip);
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
-}
-
-#ifdef TRACE
-#define T_TBL(name) { #name, name }
-static struct {
- const char *name;
- int mask;
-} t_tbl[] = {
-
- T_TBL(TRACE_DISABLE),
- T_TBL(TRACE_TIMES),
- T_TBL(TRACE_TPUTS),
- T_TBL(TRACE_UPDATE),
- T_TBL(TRACE_MOVE),
- T_TBL(TRACE_CHARPUT),
- T_TBL(TRACE_ORDINARY),
- T_TBL(TRACE_CALLS),
- T_TBL(TRACE_VIRTPUT),
- T_TBL(TRACE_IEVENT),
- T_TBL(TRACE_BITS),
- T_TBL(TRACE_ICALLS),
- T_TBL(TRACE_CCALLS),
- T_TBL(TRACE_DATABASE),
- T_TBL(TRACE_ATTRS),
- T_TBL(TRACE_MAXIMUM),
- {
- (char *) 0, 0
- }
-};
-
-static char *
-tracetrace(int tlevel)
-{
- static char *buf;
- int n;
-
- if (buf == 0) {
- size_t need = 12;
- for (n = 0; t_tbl[n].name != 0; n++)
- need += strlen(t_tbl[n].name) + 2;
- buf = (char *) malloc(need);
- }
- sprintf(buf, "0x%02x = {", tlevel);
- if (tlevel == 0) {
- sprintf(buf + strlen(buf), "%s, ", t_tbl[0].name);
- } else {
- for (n = 1; t_tbl[n].name != 0; n++)
- if ((tlevel & t_tbl[n].mask) == t_tbl[n].mask) {
- strcat(buf, t_tbl[n].name);
- strcat(buf, ", ");
- }
- }
- if (buf[strlen(buf) - 2] == ',')
- buf[strlen(buf) - 2] = '\0';
- return (strcat(buf, "}"));
-}
-
-/* fake a dynamically reconfigurable menu using the 0th entry to deselect
- * the others
- */
-static int
-run_trace_menu(MENU * m)
-{
- ITEM **items;
- ITEM *i, **p;
-
- for (;;) {
- bool changed = FALSE;
- switch (menu_driver(m, menu_virtualize(wGetchar(menu_win(m))))) {
- case E_UNKNOWN_COMMAND:
- return FALSE;
- default:
- items = menu_items(m);
- i = current_item(m);
- if (i == items[0]) {
- if (item_value(i)) {
- for (p = items + 1; *p != 0; p++)
- if (item_value(*p)) {
- set_item_value(*p, FALSE);
- changed = TRUE;
- }
- }
- } else {
- for (p = items + 1; *p != 0; p++)
- if (item_value(*p)) {
- set_item_value(items[0], FALSE);
- changed = TRUE;
- break;
- }
- }
- if (!changed)
- return TRUE;
- }
- }
-}
-
-static void
-trace_set(void)
-/* interactively set the trace level */
-{
- MENU *m;
- ITEM *items[SIZEOF(t_tbl)];
- ITEM **ip = items;
- int mrows, mcols, newtrace;
- int n;
- WINDOW *menuwin;
-
- mvaddstr(0, 0, "Interactively set trace level:");
- mvaddstr(2, 0, " Press space bar to toggle a selection.");
- mvaddstr(3, 0, " Use up and down arrow to move the select bar.");
- mvaddstr(4, 0, " Press return to set the trace level.");
- mvprintw(6, 0, "(Current trace level is %s)", tracetrace(_nc_tracing));
-
- refresh();
-
- for (n = 0; t_tbl[n].name != 0; n++)
- *ip++ = new_item(t_tbl[n].name, "");
- *ip = (ITEM *) 0;
-
- m = new_menu(items);
-
- set_menu_format(m, 0, 2);
- scale_menu(m, &mrows, &mcols);
-
- menu_opts_off(m, O_ONEVALUE);
- menuwin = newwin(mrows + 2, mcols + 2, MENU_Y, MENU_X);
- set_menu_win(m, menuwin);
- keypad(menuwin, TRUE);
- box(menuwin, 0, 0);
-
- set_menu_sub(m, derwin(menuwin, mrows, mcols, 1, 1));
-
- post_menu(m);
-
- for (ip = menu_items(m); *ip; ip++) {
- int mask = t_tbl[item_index(*ip)].mask;
- if (mask == 0)
- set_item_value(*ip, _nc_tracing == 0);
- else if ((mask & _nc_tracing) == mask)
- set_item_value(*ip, TRUE);
- }
-
- while (run_trace_menu(m))
- continue;
-
- newtrace = 0;
- for (ip = menu_items(m); *ip; ip++)
- if (item_value(*ip))
- newtrace |= t_tbl[item_index(*ip)].mask;
- trace(newtrace);
- _tracef("trace level interactively set to %s", tracetrace(_nc_tracing));
-
- (void) mvprintw(LINES - 2, 0,
- "Trace level is %s\n", tracetrace(_nc_tracing));
- (void) addstr("Press any key to continue...");
- wGetchar(stdscr);
-
- unpost_menu(m);
- delwin(menuwin);
-
- free_menu(m);
- for (ip = items; *ip; ip++)
- free_item(*ip);
-}
-#endif /* TRACE */
-#endif /* USE_LIBMENU */
-
-/****************************************************************************
- *
- * Forms test
- *
- ****************************************************************************/
-#if USE_LIBFORM
-static FIELD *
-make_label(int frow, int fcol, NCURSES_CONST char *label)
-{
- FIELD *f = new_field(1, strlen(label), frow, fcol, 0, 0);
-
- if (f) {
- set_field_buffer(f, 0, label);
- set_field_opts(f, field_opts(f) & ~O_ACTIVE);
- }
- return (f);
-}
-
-static FIELD *
-make_field(int frow, int fcol, int rows, int cols, bool secure)
-{
- FIELD *f = new_field(rows, cols, frow, fcol, 0, secure ? 1 : 0);
-
- if (f) {
- set_field_back(f, A_UNDERLINE);
- set_field_userptr(f, (void *) 0);
- }
- return (f);
-}
-
-static void
-display_form(FORM * f)
-{
- WINDOW *w;
- int rows, cols;
-
- scale_form(f, &rows, &cols);
-
- if ((w = newwin(rows + 2, cols + 4, 0, 0)) != (WINDOW *) 0) {
- set_form_win(f, w);
- set_form_sub(f, derwin(w, rows, cols, 1, 2));
- box(w, 0, 0);
- keypad(w, TRUE);
- }
-
- if (post_form(f) != E_OK)
- wrefresh(w);
-}
-
-static void
-erase_form(FORM * f)
-{
- WINDOW *w = form_win(f);
- WINDOW *s = form_sub(f);
-
- unpost_form(f);
- werase(w);
- wrefresh(w);
- delwin(s);
- delwin(w);
-}
-
-static int
-edit_secure(FIELD * me, int c)
-{
- int rows, cols, frow, fcol, nrow, nbuf;
-
- if (field_info(me, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK
- && nbuf > 0) {
- char temp[80];
- long len;
-
- strcpy(temp, field_buffer(me, 1));
- len = (long) (char *) field_userptr(me);
- if (c <= KEY_MAX) {
- if (isgraph(c)) {
- temp[len++] = c;
- temp[len] = 0;
- set_field_buffer(me, 1, temp);
- c = '*';
- } else {
- c = 0;
- }
- } else {
- switch (c) {
- case REQ_BEG_FIELD:
- case REQ_CLR_EOF:
- case REQ_CLR_EOL:
- case REQ_DEL_LINE:
- case REQ_DEL_WORD:
- case REQ_DOWN_CHAR:
- case REQ_END_FIELD:
- case REQ_INS_CHAR:
- case REQ_INS_LINE:
- case REQ_LEFT_CHAR:
- case REQ_NEW_LINE:
- case REQ_NEXT_WORD:
- case REQ_PREV_WORD:
- case REQ_RIGHT_CHAR:
- case REQ_UP_CHAR:
- c = 0; /* we don't want to do inline editing */
- break;
- case REQ_CLR_FIELD:
- if (len) {
- temp[0] = 0;
- set_field_buffer(me, 1, temp);
- }
- break;
- case REQ_DEL_CHAR:
- case REQ_DEL_PREV:
- if (len) {
- temp[--len] = 0;
- set_field_buffer(me, 1, temp);
- }
- break;
- }
- }
- set_field_userptr(me, (void *) len);
- }
- return c;
-}
-
-static int
-form_virtualize(FORM * f, WINDOW *w)
-{
- static const struct {
- int code;
- int result;
- } lookup[] = {
- {
- CTRL('A'), REQ_NEXT_CHOICE
- },
- {
- CTRL('B'), REQ_PREV_WORD
- },
- {
- CTRL('C'), REQ_CLR_EOL
- },
- {
- CTRL('D'), REQ_DOWN_FIELD
- },
- {
- CTRL('E'), REQ_END_FIELD
- },
- {
- CTRL('F'), REQ_NEXT_PAGE
- },
- {
- CTRL('G'), REQ_DEL_WORD
- },
- {
- CTRL('H'), REQ_DEL_PREV
- },
- {
- CTRL('I'), REQ_INS_CHAR
- },
- {
- CTRL('K'), REQ_CLR_EOF
- },
- {
- CTRL('L'), REQ_LEFT_FIELD
- },
- {
- CTRL('M'), REQ_NEW_LINE
- },
- {
- CTRL('N'), REQ_NEXT_FIELD
- },
- {
- CTRL('O'), REQ_INS_LINE
- },
- {
- CTRL('P'), REQ_PREV_FIELD
- },
- {
- CTRL('R'), REQ_RIGHT_FIELD
- },
- {
- CTRL('S'), REQ_BEG_FIELD
- },
- {
- CTRL('U'), REQ_UP_FIELD
- },
- {
- CTRL('V'), REQ_DEL_CHAR
- },
- {
- CTRL('W'), REQ_NEXT_WORD
- },
- {
- CTRL('X'), REQ_CLR_FIELD
- },
- {
- CTRL('Y'), REQ_DEL_LINE
- },
- {
- CTRL('Z'), REQ_PREV_CHOICE
- },
- {
- ESCAPE, MAX_FORM_COMMAND + 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
- },
- {
- QUIT, MAX_FORM_COMMAND + 1
- }
- };
-
- static int mode = REQ_INS_MODE;
- int c = wGetchar(w);
- unsigned n;
- FIELD *me = current_field(f);
-
- if (c == CTRL(']')) {
- if (mode == REQ_INS_MODE)
- mode = REQ_OVL_MODE;
- else
- mode = REQ_INS_MODE;
- c = mode;
- } else {
- for (n = 0; n < sizeof(lookup) / sizeof(lookup[0]); n++) {
- if (lookup[n].code == c) {
- c = lookup[n].result;
- break;
- }
- }
- }
-
- /*
- * 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) {
- c = edit_secure(me, c);
- set_field_back(me, A_REVERSE);
- } else if (c <= MAX_FORM_COMMAND) {
- c = edit_secure(me, c);
- set_field_back(me, A_UNDERLINE);
- }
- return c;
-}
-
-static int
-my_form_driver(FORM * form, int c)
-{
- if (c == (MAX_FORM_COMMAND + 1)
- && form_driver(form, REQ_VALIDATION) == E_OK)
- return (TRUE);
- else {
- beep();
- return (FALSE);
- }
-}
-
-static void
-demo_forms(void)
-{
- WINDOW *w;
- FORM *form;
- FIELD *f[12], *secure;
- int finished = 0, c;
- unsigned n = 0;
-
- move(18, 0);
- addstr("Defined form-traversal keys: ^Q/ESC- exit form\n");
- addstr("^N -- go to next field ^P -- go to previous field\n");
- addstr("Home -- go to first field End -- go to last field\n");
- addstr("^L -- go to field to left ^R -- go to field to right\n");
- addstr("^U -- move upward to field ^D -- move downward to field\n");
- addstr("^W -- go to next word ^B -- go to previous word\n");
- addstr("^S -- go to start of field ^E -- go to end of field\n");
- addstr("^H -- delete previous char ^Y -- delete line\n");
- addstr("^G -- delete current word ^C -- clear to end of line\n");
- addstr("^K -- clear to end of field ^X -- clear field\n");
- addstr("Arrow keys move within a field as you would expect.");
-
- mvaddstr(4, 57, "Forms Entry Test");
-
- refresh();
-
- /* describe the form */
- f[n++] = make_label(0, 15, "Sample Form");
- f[n++] = make_label(2, 0, "Last Name");
- f[n++] = make_field(3, 0, 1, 18, FALSE);
- f[n++] = make_label(2, 20, "First Name");
- f[n++] = make_field(3, 20, 1, 12, FALSE);
- f[n++] = make_label(2, 34, "Middle Name");
- f[n++] = make_field(3, 34, 1, 12, FALSE);
- f[n++] = make_label(5, 0, "Comments");
- f[n++] = make_field(6, 0, 4, 46, FALSE);
- f[n++] = make_label(5, 20, "Password:");
- secure =
- f[n++] = make_field(5, 30, 1, 9, TRUE);
- f[n++] = (FIELD *) 0;
-
- form = new_form(f);
-
- display_form(form);
-
- w = form_win(form);
- raw();
- nonl(); /* lets us read ^M's */
- while (!finished) {
- switch (form_driver(form, c = form_virtualize(form, w))) {
- case E_OK:
- mvaddstr(5, 57, field_buffer(secure, 1));
- clrtoeol();
- refresh();
- break;
- case E_UNKNOWN_COMMAND:
- finished = my_form_driver(form, c);
- break;
- default:
- beep();
- break;
- }
- }
-
- erase_form(form);
-
- free_form(form);
- for (c = 0; f[c] != 0; c++)
- free_field(f[c]);
- noraw();
- nl();
-}
-#endif /* USE_LIBFORM */
-
-/****************************************************************************
- *
- * Overlap test
- *
- ****************************************************************************/
-
-static void
-fillwin(WINDOW *win, char ch)
-{
- int y, x;
- int y1, x1;
-
- getmaxyx(win, y1, x1);
- for (y = 0; y < y1; y++) {
- wmove(win, y, 0);
- for (x = 0; x < x1; x++)
- waddch(win, ch);
- }
-}
-
-static void
-crosswin(WINDOW *win, char ch)
-{
- int y, x;
- int y1, x1;
-
- getmaxyx(win, y1, x1);
- for (y = 0; y < y1; y++) {
- for (x = 0; x < x1; x++)
- if (((x > (x1 - 1) / 3) && (x <= (2 * (x1 - 1)) / 3))
- || (((y > (y1 - 1) / 3) && (y <= (2 * (y1 - 1)) / 3)))) {
- wmove(win, y, x);
- waddch(win, ch);
- }
- }
-}
-
-static void
-overlap_test(void)
-/* test effects of overlapping windows */
-{
- int ch;
-
- WINDOW *win1 = newwin(9, 20, 3, 3);
- WINDOW *win2 = newwin(9, 20, 9, 16);
-
- raw();
- refresh();
- move(0, 0);
- printw("This test shows the behavior of wnoutrefresh() with respect to\n");
- printw("the shared region of two overlapping windows A and B. The cross\n");
- printw("pattern in each window does not overlap the other.\n");
-
- move(18, 0);
- printw("a = refresh A, then B, then doupdate. b = refresh B, then A, then doupdaute\n");
- printw("c = fill window A with letter A. d = fill window B with letter B.\n");
- printw("e = cross pattern in window A. f = cross pattern in window B.\n");
- printw("g = clear window A. h = clear window B.\n");
- printw("i = overwrite A onto B. j = overwrite B onto A.\n");
- printw("^Q/ESC = terminate test.");
-
- while ((ch = Getchar()) != QUIT && ch != ESCAPE)
- switch (ch) {
- case 'a': /* refresh window A first, then B */
- wnoutrefresh(win1);
- wnoutrefresh(win2);
- doupdate();
- break;
-
- case 'b': /* refresh window B first, then A */
- wnoutrefresh(win2);
- wnoutrefresh(win1);
- doupdate();
- break;
-
- case 'c': /* fill window A so it's visible */
- fillwin(win1, 'A');
- break;
-
- case 'd': /* fill window B so it's visible */
- fillwin(win2, 'B');
- break;
-
- case 'e': /* cross test pattern in window A */
- crosswin(win1, 'A');
- break;
-
- case 'f': /* cross test pattern in window A */
- crosswin(win2, 'B');
- break;
-
- case 'g': /* clear window A */
- wclear(win1);
- wmove(win1, 0, 0);
- break;
-
- case 'h': /* clear window B */
- wclear(win2);
- wmove(win2, 0, 0);
- break;
-
- case 'i': /* overwrite A onto B */
- overwrite(win1, win2);
- break;
-
- case 'j': /* overwrite B onto A */
- overwrite(win2, win1);
- break;
- }
-
- delwin(win2);
- delwin(win1);
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Main sequence
- *
- ****************************************************************************/
-
-static bool
-do_single_test(const char c)
-/* perform a single specified test */
-{
- switch (c) {
- case 'a':
- getch_test();
- break;
-
- case 'b':
- attr_test();
- break;
-
- case 'c':
- if (!has_colors())
- Cannot("does not support color.");
- else
- color_test();
- break;
-
- case 'd':
- if (!has_colors())
- Cannot("does not support color.");
- else if (!can_change_color())
- Cannot("has hardwired color values.");
- else
- color_edit();
- break;
-
- case 'e':
- slk_test();
- break;
-
- case 'f':
- acs_display();
- break;
-
-#if USE_LIBPANEL
- case 'o':
- demo_panels();
- break;
-#endif
-
- case 'g':
- acs_and_scroll();
- break;
-
- case 'i':
- flushinp_test(stdscr);
- break;
-
- case 'k':
- test_sgr_attributes();
- break;
-
-#if USE_LIBMENU
- case 'm':
- menu_test();
- break;
-#endif
-
-#if USE_LIBPANEL
- case 'p':
- demo_pad();
- break;
-#endif
-
-#if USE_LIBFORM
- case 'r':
- demo_forms();
- break;
-#endif
-
- case 's':
- overlap_test();
- break;
-
-#if USE_LIBMENU && defined(TRACE)
- case 't':
- trace_set();
- break;
-#endif
-
- case '?':
- break;
-
- default:
- return FALSE;
- }
-
- return TRUE;
-}
-
-static void
-usage(void)
-{
- static const char *const tbl[] =
- {
- "Usage: ncurses [options]"
- ,""
- ,"Options:"
-#ifdef NCURSES_VERSION
- ," -a f,b set default-colors (assumed white-on-black)"
- ," -d use default-colors if terminal supports them"
-#endif
- ," -e fmt specify format for soft-keys test (e)"
- ," -f rip-off footer line (can repeat)"
- ," -h rip-off header line (can repeat)"
- ," -s msec specify nominal time for panel-demo (default: 1, to hold)"
-#ifdef TRACE
- ," -t mask specify default trace-level (may toggle with ^T)"
-#endif
- };
- size_t n;
- for (n = 0; n < sizeof(tbl) / sizeof(tbl[0]); n++)
- fprintf(stderr, "%s\n", tbl[n]);
- exit(EXIT_FAILURE);
-}
-
-static void
-set_terminal_modes(void)
-{
- noraw();
- cbreak();
- noecho();
- scrollok(stdscr, TRUE);
- idlok(stdscr, TRUE);
- keypad(stdscr, TRUE);
-}
-
-#ifdef SIGUSR1
-static RETSIGTYPE
-announce_sig(int sig)
-{
- (void) fprintf(stderr, "Handled signal %d\r\n", sig);
-}
-#endif
-
-static int
-rip_footer(WINDOW *win, int columns)
-{
- wbkgd(win, A_REVERSE);
- werase(win);
- wmove(win, 0, 0);
- wprintw(win, "footer: %d columns", columns);
- wnoutrefresh(win);
- return OK;
-}
-
-static int
-rip_header(WINDOW *win, int columns)
-{
- wbkgd(win, A_REVERSE);
- werase(win);
- wmove(win, 0, 0);
- wprintw(win, "header: %d columns", columns);
- wnoutrefresh(win);
- return OK;
-}
-
-/*+-------------------------------------------------------------------------
- main(argc,argv)
---------------------------------------------------------------------------*/
-
-int
-main(int argc, char *argv[])
-{
- int command, c;
- int my_e_param = 1;
-#ifdef NCURSES_VERSION
- int default_fg = COLOR_WHITE;
- int default_bg = COLOR_BLACK;
- bool assumed_colors = FALSE;
- bool default_colors = FALSE;
-#endif
-
-#if HAVE_LOCALE_H
- setlocale(LC_CTYPE, "");
-#endif
-
- while ((c = getopt(argc, argv, "a:de:fhs:t:")) != EOF) {
- switch (c) {
-#ifdef NCURSES_VERSION
- case 'a':
- assumed_colors = TRUE;
- sscanf(optarg, "%d,%d", &default_fg, &default_bg);
- break;
- case 'd':
- default_colors = TRUE;
- break;
-#endif
- case 'e':
- my_e_param = atoi(optarg);
-#ifdef NCURSES_VERSION
- if (my_e_param > 3) /* allow extended layouts */
- usage();
-#else
- if (my_e_param > 1)
- usage();
-#endif
- break;
- case 'f':
- ripoffline(-1, rip_footer);
- break;
- case 'h':
- ripoffline(1, rip_header);
- break;
-#if USE_LIBPANEL
- case 's':
- nap_msec = atol(optarg);
- break;
-#endif
-#ifdef TRACE
- case 't':
- save_trace = atoi(optarg);
- break;
-#endif
- default:
- usage();
- }
- }
-
- /*
- * If there's no menus (unlikely for ncurses!), then we'll have to set
- * tracing on initially, just in case the user wants to test something that
- * doesn't involve wGetchar.
- */
-#ifdef TRACE
- /* enable debugging */
-#if !USE_LIBMENU
- trace(save_trace);
-#else
- if (!isatty(fileno(stdin)))
- trace(save_trace);
-#endif /* USE_LIBMENU */
-#endif /* TRACE */
-
- /* tell it we're going to play with soft keys */
- slk_init(my_e_param);
-
-#ifdef SIGUSR1
- /* set up null signal catcher so we can see what interrupts to getch do */
- signal(SIGUSR1, announce_sig);
-#endif
-
- /* we must initialize the curses data structure only once */
- initscr();
- bkgdset(BLANK);
-
- /* tests, in general, will want these modes */
- if (has_colors()) {
- start_color();
-#ifdef NCURSES_VERSION
- if (default_colors)
- use_default_colors();
- else if (assumed_colors)
- assume_default_colors(default_fg, default_bg);
-#endif
- }
- set_terminal_modes();
- def_prog_mode();
-
- /*
- * Return to terminal mode, so we're guaranteed of being able to
- * select terminal commands even if the capabilities are wrong.
- */
- endwin();
-
-#if HAVE_CURSES_VERSION
- (void) printf("Welcome to %s. Press ? for help.\n", curses_version());
-#elif defined(NCURSES_VERSION_MAJOR) && defined(NCURSES_VERSION_MINOR) && defined(NCURSES_VERSION_PATCH)
- (void) printf("Welcome to ncurses %d.%d.%d. Press ? for help.\n",
- NCURSES_VERSION_MAJOR,
- NCURSES_VERSION_MINOR,
- NCURSES_VERSION_PATCH);
-#else
- (void) puts("Welcome to ncurses. Press ? for help.");
-#endif
-
- do {
- (void) puts("This is the ncurses main menu");
- (void) puts("a = keyboard and mouse input test");
- (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("g = display windows and scrolling");
- (void) puts("i = test of flushinp()");
- (void) puts("k = display character attributes");
-#if USE_LIBMENU
- (void) puts("m = menu code test");
-#endif
-#if USE_LIBPANEL
- (void) puts("o = exercise panels library");
- (void) puts("p = exercise pad features");
- (void) puts("q = quit");
-#endif
-#if USE_LIBFORM
- (void) puts("r = exercise forms code");
-#endif
- (void) puts("s = overlapping-refresh test");
-#if USE_LIBMENU && defined(TRACE)
- (void) puts("t = set trace level");
-#endif
- (void) puts("? = repeat this command summary");
-
- (void) fputs("> ", stdout);
- (void) fflush(stdout); /* necessary under SVr4 curses */
-
- /*
- * This used to be an 'fgets()' call. However (on Linux, at least)
- * mixing stream I/O and 'read()' (used in the library) causes the
- * input stream to be flushed when switching between the two.
- */
- command = 0;
- for (;;) {
- char ch;
- if (read(fileno(stdin), &ch, 1) <= 0) {
- if (command == 0)
- command = 'q';
- break;
- } else if (command == 0 && !isspace(ch)) {
- command = ch;
- } else if (ch == '\n' || ch == '\r') {
- if (command != 0)
- break;
- (void) fputs("> ", stdout);
- (void) fflush(stdout);
- }
- }
-
- if (do_single_test(command)) {
- /*
- * This may be overkill; it's intended to reset everything back
- * to the initial terminal modes so that tests don't get in
- * each other's way.
- */
- flushinp();
- set_terminal_modes();
- reset_prog_mode();
- clear();
- refresh();
- endwin();
- if (command == '?') {
- (void) puts("This is the ncurses capability tester.");
- (void)
- puts("You may select a test from the main menu by typing the");
- (void)
- puts("key letter of the choice (the letter to left of the =)");
- (void)
- puts("at the > prompt. The commands `x' or `q' will exit.");
- }
- continue;
- }
- } while
- (command != 'q');
-
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* ncurses.c ends here */
diff --git a/ncurses-5.2/test/ncurses_tst.hin b/ncurses-5.2/test/ncurses_tst.hin
deleted file mode 100644
index 5444487..0000000
--- a/ncurses-5.2/test/ncurses_tst.hin
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-/*
- * $Id$
- *
- * This is a template-file used to generate the "ncurses_cfg.h" file.
- *
- * Rather than list every definition, the configuration script substitutes
- * the definitions that it finds using 'sed'. You need a patch (971222)
- * to autoconf 2.12 to do this.
- */
-#ifndef NC_CONFIG_H
-#define NC_CONFIG_H
-@DEFS@
-
- /* The C compiler may not treat these properly but C++ has to */
-#ifdef __cplusplus
-#undef const
-#undef inline
-#else
-#if defined(lint) || defined(TRACE)
-#undef inline
-#define inline /* nothing */
-#endif
-#endif
-
-#endif /* NC_CONFIG_H */
diff --git a/ncurses-5.2/test/newdemo.c b/ncurses-5.2/test/newdemo.c
deleted file mode 100644
index 22c1c8e..0000000
--- a/ncurses-5.2/test/newdemo.c
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * newdemo.c - A demo program using PDCurses. The program illustrate
- * the use of colours for text output.
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-#include <signal.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);
-
-#define delay_output(x) napms(x)
-
-/*
- * The Australian map
- */
-const char *AusMap[16] =
-{
- " A A ",
- " N.T. AAAAA AAAA ",
- " AAAAAAAAAAA AAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAA Qld.",
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAA N.S.W.",
- "W.A. AAAAAAAAA AAAAAA Vic.",
- " AAA S.A. AA",
- " A Tas.",
- ""
-};
-
-/*
- * Funny messages
- */
-#define NMESSAGES 6
-
-NCURSES_CONST char *messages[] =
-{
- "Hello from the Land Down Under",
- "The Land of crocs. and a big Red Rock",
- "Where the sunflower runs along the highways",
- "the dusty red roads lead one to loneliness",
- "Blue sky in the morning and",
- "freezing nights and twinkling stars",
- ""
-};
-
-/*
- * Main driver
- */
-int
-main(
- int argc GCC_UNUSED,
- char *argv[] 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;
-
- 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;
- }
-
- 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);
-
- 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;
- }
- endwin();
- return 0;
-}
-
-/*
- * Test sub windows
- */
-static int
-SubWinTest(WINDOW *win)
-{
-int w, h, sw, sh, bx, by;
-WINDOW *swin1, *swin2, *swin3;
-
- getmaxyx(win, h, w);
- 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));
- werase(swin1);
- mvwaddstr(swin1, 0, 3, "Sub-window 1");
- wrefresh(swin1);
-
- init_pair(8,COLOR_CYAN,COLOR_MAGENTA);
- wattrset(swin2, COLOR_PAIR(8));
- werase(swin2);
- mvwaddstr(swin2, 0, 3, "Sub-window 2");
- wrefresh(swin2);
-
- init_pair(8,COLOR_YELLOW,COLOR_GREEN);
- wattrset(swin3, COLOR_PAIR(8));
- werase(swin3);
- mvwaddstr(swin3, 0, 3, "Sub-window 3");
- wrefresh(swin3);
-
- delwin(swin1);
- delwin(swin2);
- delwin(swin3);
- WaitForUser(win);
- return 0;
-}
-
-/*
- * Bouncing balls
- */
-static int
-BouncingBalls(WINDOW *win)
-{
-int w, h;
-int x1, y1, xd1, yd1;
-int x2, y2, xd2, yd2;
-int x3, y3, xd3, yd3;
-
- 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));
- 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);
- delay_output(100);
- }
- return 0;
-}
-
-/*
- * 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;
- }
-}
-
-/*
- * Trap interrupt
- */
-static RETSIGTYPE trap(int sig GCC_UNUSED)
-{
- endwin();
- exit(EXIT_FAILURE);
-}
-
-/* End of DEMO.C */
diff --git a/ncurses-5.2/test/railroad.c b/ncurses-5.2/test/railroad.c
deleted file mode 100644
index db23894..0000000
--- a/ncurses-5.2/test/railroad.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/****************************************************************************
- * 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: Thomas E. Dickey <dickey@clark.net> 2000
- *
- * $Id$
- *
- * A simple demo of the termcap interface.
- */
-#include <test.priv.h>
-
-#include <termcap.h>
-#include <ctype.h>
-#include <signal.h>
-
-static char *wipeit;
-static char *moveit;
-static int length;
-static int height;
-
-static char *finisC;
-static char *finisS;
-static char *finisU;
-
-static char *startC;
-static char *startS;
-static char *startU;
-
-static char *backup;
-
-static bool interrupted = FALSE;
-
-static int
-outc(int c)
-{
- if (interrupted) {
- char tmp = c;
- write(STDOUT_FILENO, &tmp, 1);
- } else {
- putc(c, stdout);
- }
- return 0;
-}
-
-static void
-PutChar(int ch)
-{
- putchar(ch);
- fflush(stdout);
- napms(moveit ? 10 : 50); /* not really termcap... */
-}
-
-static void
-Backup(void)
-{
- tputs(backup != 0 ? backup : "\b", 1, outc);
-}
-
-static void
-ShowCursor(int flag)
-{
- if (startC != 0 && finisC != 0) {
- tputs(flag ? startC : finisC, 1, outc);
- }
-}
-
-static void
-StandOut(int flag)
-{
- if (startS != 0 && finisS != 0) {
- tputs(flag ? startS : finisS, 1, outc);
- }
-}
-
-static void
-Underline(int flag)
-{
- if (startU != 0 && finisU != 0) {
- tputs(flag ? startU : finisU, 1, outc);
- }
-}
-
-static void
-ShowSign(char *string)
-{
- char *base = string;
- int ch, first, last;
-
- if (moveit != 0) {
- tputs(tgoto(moveit, 0, height - 1), 1, outc);
- tputs(wipeit, 1, outc);
- }
-
- 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(' ');
- }
- 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 {
- first = ch;
- }
- if (first < last) {
- Underline(1);
- while (first < last) {
- PutChar(first);
- Backup();
- first++;
- }
- Underline(0);
- }
- }
- if (moveit != 0)
- Backup();
- StandOut(1);
- PutChar(ch);
- StandOut(0);
- fflush(stdout);
- string++;
- }
- if (moveit != 0)
- tputs(wipeit, 1, outc);
- putchar('\n');
-}
-
-static void
-cleanup(void)
-{
- Underline(0);
- StandOut(0);
- ShowCursor(1);
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
- cleanup();
- exit(EXIT_FAILURE);
-}
-
-static void
-railroad(char **args)
-{
- NCURSES_CONST char *name = getenv("TERM");
- char buffer[1024];
- char area[1024], *ap = area;
- int j;
-
- if (name == 0)
- name = "dumb";
- if (tgetent(buffer, name)) {
-
- wipeit = tgetstr("ce", &ap);
- height = tgetnum("li");
- length = tgetnum("co");
- moveit = tgetstr("cm", &ap);
-
- if (wipeit == 0
- || moveit == 0
- || height <= 0
- || length <= 0) {
- wipeit = 0;
- moveit = 0;
- height = 0;
- length = 0;
- }
-
- startS = tgetstr("so", &ap);
- finisS = tgetstr("se", &ap);
-
- startU = tgetstr("us", &ap);
- finisU = tgetstr("ue", &ap);
-
- backup = tgetstr("le", &ap);
-
- startC = tgetstr("ve", &ap);
- finisC = tgetstr("vi", &ap);
-
- ShowCursor(0);
-
- for (j = SIGHUP; j <= SIGTERM; j++)
- if (signal(j, SIG_IGN) != SIG_IGN)
- signal(j, onsig);
-
- while (*args) {
- ShowSign(*args++);
- }
- ShowCursor(1);
- }
-}
-
-int
-main(int argc, char *argv[])
-{
- if (argc > 1) {
- railroad(argv + 1);
- } else {
- static char *hello[] =
- {"Hello World", 0};
- railroad(hello);
- }
- return EXIT_SUCCESS;
-}
diff --git a/ncurses-5.2/test/rain.c b/ncurses-5.2/test/rain.c
deleted file mode 100644
index 4bf0e06..0000000
--- a/ncurses-5.2/test/rain.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * $Id$
- */
-#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);
-
-static int next_j(int j)
-{
- if (j==0) j=4; else --j;
- if (has_colors()) {
- int z = (int)(3*ranf());
- chtype color = COLOR_PAIR(z);
- if (z)
- color |= A_BOLD;
- attrset(color);
- }
- return j;
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[] GCC_UNUSED)
-{
-int x, y, j;
-static int xpos[5], ypos[5];
-float r;
-float c;
-
- for (j=SIGHUP;j<=SIGTERM;j++)
- if (signal(j,SIG_IGN)!=SIG_IGN) signal(j,onsig);
-
- initscr();
- if (has_colors()) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- init_pair(1, COLOR_BLUE, bg);
- init_pair(2, COLOR_CYAN, bg);
- }
- nl();
- noecho();
- 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;
- }
-
- for (j=0;;) {
- x=(int)(c*ranf())+2;
- y=(int)(r*ranf())+2;
-
- mvaddch(y,x, '.');
-
- 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], '-');
-
- 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], '-');
-
- 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'):
- curs_set(1);
- endwin();
- return(EXIT_SUCCESS);
- case 's':
- nodelay(stdscr, FALSE);
- break;
- case ' ':
- nodelay(stdscr, TRUE);
- break;
-#ifdef KEY_RESIZE
- case(KEY_RESIZE):
- r = (float)(LINES - 4);
- c = (float)(COLS - 4);
- break;
-#endif
- }
- napms(50);
- }
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- curs_set(1);
- endwin();
- exit(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
diff --git a/ncurses-5.2/test/tclock.c b/ncurses-5.2/test/tclock.c
deleted file mode 100644
index 9f84655..0000000
--- a/ncurses-5.2/test/tclock.c
+++ /dev/null
@@ -1,226 +0,0 @@
-#include "test.priv.h"
-
-#include <math.h>
-#include <time.h>
-
-/*
- tclock - analog/digital clock for curses.
- If it gives you joy, then
- (a) I'm glad
- (b) you need to get out more :-)
-
- This program is copyright Howard Jones, September 1994
- (ha.jones@ic.ac.uk). It may be freely distributed as
- long as this copyright message remains intact, and any
- modifications are clearly marked as such. [In fact, if
- you modify it, I wouldn't mind the modifications back,
- especially if they add any nice features. A good one
- would be a precalc table for the 60 hand positions, so
- that the floating point stuff can be ditched. As I said,
- it was a 20 hackup minute job.]
-
- COMING SOON: tfishtank. Be the envy of your mac-owning
- colleagues.
-*/
-
-/* To compile: cc -o tclock tclock.c -lcurses -lm */
-
-#ifndef PI
-#define PI 3.141592654
-#endif
-
-#define sign(_x) (_x<0?-1:1)
-
-#define ASPECT 2.2
-#define ROUND(value) ((int)((value) + 0.5))
-
-#define A2X(angle,radius) ROUND(ASPECT * radius * sin(angle))
-#define A2Y(angle,radius) ROUND(radius * cos(angle))
-
-/* Plot a point */
-static void
-plot(int x, int y, char col)
-{
- mvaddch(y, x, (chtype) col);
-}
-
-/* Draw a diagonal(arbitrary) line using Bresenham's alogrithm. */
-static void
-dline(int pair, int from_x, int from_y, int x2, int y2, char ch)
-{
- int dx, dy;
- int ax, ay;
- int sx, sy;
- int x, y;
- int d;
-
- if (has_colors())
- attrset(COLOR_PAIR(pair));
-
- dx = x2 - from_x;
- dy = y2 - from_y;
-
- ax = abs(dx * 2);
- ay = abs(dy * 2);
-
- sx = sign(dx);
- sy = sign(dy);
-
- x = from_x;
- y = from_y;
-
- if (ax > ay) {
- d = ay - (ax / 2);
-
- while (1) {
- plot(x, y, ch);
- if (x == x2)
- return;
-
- if (d >= 0) {
- y += sy;
- d -= ax;
- }
- x += sx;
- d += ay;
- }
- } else {
- d = ax - (ay / 2);
-
- while (1) {
- plot(x, y, ch);
- if (y == y2)
- return;
-
- if (d >= 0) {
- x += sx;
- d -= ay;
- }
- y += sy;
- d += ax;
- }
- }
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int i, cx, cy;
- double mradius, hradius, mangle, hangle;
- double sangle, sradius, hours;
- int hdx, hdy;
- int mdx, mdy;
- int sdx, sdy;
- int ch;
- int lastbeep = -1;
- time_t tim;
- struct tm *t;
- char szChar[10];
- int my_bg = COLOR_BLACK;
-
- initscr();
- noecho();
- cbreak();
- nodelay(stdscr, TRUE);
- curs_set(0);
-
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- init_pair(1, COLOR_RED, my_bg);
- init_pair(2, COLOR_MAGENTA, my_bg);
- init_pair(3, COLOR_GREEN, my_bg);
- }
-#ifdef KEY_RESIZE
- keypad(stdscr, TRUE);
- restart:
-#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 */
-
- 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);
-
- mvaddstr(cy - sdy, cx + sdx, szChar);
- }
-
- mvaddstr(0, 0, "ASCII Clock by Howard Jones (ha.jones@ic.ac.uk),1994");
-
- sradius = 8;
- for (;;) {
- napms(1000);
-
- tim = time(0);
- t = localtime(&tim);
-
- hours = (t->tm_hour + (t->tm_min / 60.0));
- if (hours > 12.0)
- hours -= 12.0;
-
- mangle = ((t->tm_min) * (2 * PI) / 60.0);
- mdx = A2X(mangle, mradius);
- mdy = A2Y(mangle, mradius);
-
- hangle = ((hours) * (2.0 * PI) / 12.0);
- hdx = A2X(hangle, hradius);
- hdy = A2Y(hangle, hradius);
-
- sangle = ((t->tm_sec) * (2.0 * PI) / 60.0);
- sdx = A2X(sangle, sradius);
- sdy = A2Y(sangle, sradius);
-
- dline(3, cx, cy, cx + mdx, cy - mdy, '#');
-
- attrset(A_REVERSE);
- dline(2, cx, cy, cx + hdx, cy - hdy, '.');
- attroff(A_REVERSE);
-
- if (has_colors())
- attrset(COLOR_PAIR(1));
-
- plot(cx + sdx, cy - sdy, 'O');
-
- if (has_colors())
- attrset(COLOR_PAIR(0));
-
- mvaddstr(LINES - 2, 0, ctime(&tim));
- refresh();
- if ((t->tm_sec % 5) == 0
- && t->tm_sec != lastbeep) {
- lastbeep = t->tm_sec;
- beep();
- }
-
- if ((ch = getch()) != ERR) {
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- erase();
- 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, ' ');
-
- }
-
- curs_set(1);
- endwin();
- return 0;
-}
diff --git a/ncurses-5.2/test/test.priv.h b/ncurses-5.2/test/test.priv.h
deleted file mode 100644
index c516f05..0000000
--- a/ncurses-5.2/test/test.priv.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996 *
- ****************************************************************************/
-/* $Id$ */
-
-#if HAVE_CONFIG_H
-#include <ncurses_cfg.h>
-#else
-#define HAVE_CURSES_VERSION 0
-#define HAVE_RESIZETERM 0
-#define HAVE_USE_DEFAULT_COLORS 0
-#define HAVE_WRESIZE 0
-#endif
-
-#ifndef HAVE_NC_ALLOC_H
-#define HAVE_NC_ALLOC_H 0
-#endif
-
-#ifndef HAVE_LOCALE_H
-#define HAVE_LOCALE_H 0
-#endif
-
-#ifndef NCURSES_NOMACROS
-#define NCURSES_NOMACROS 0
-#endif
-
-#ifndef NEED_PTEM_H
-#define NEED_PTEM_H 0
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <curses.h>
-
-#if NCURSES_NOMACROS
-#include <nomacros.h>
-#endif
-
-#if HAVE_GETOPT_H
-#include <getopt.h>
-#else
-/* 'getopt()' may be prototyped in <stdlib.h>, but declaring its variables
- * doesn't hurt.
- */
-extern char *optarg;
-extern int optind;
-#endif /* HAVE_GETOPT_H */
-
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-
-#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))
-#endif
-
-#ifndef ExitProgram
-#define ExitProgram(code) return code
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-/* Use this to quiet gcc's -Wwrite-strings warnings, but accommodate SVr4
- * curses which doesn't have const parameters declared (so far) in the places
- * that XSI shows.
- */
-#ifndef NCURSES_CONST
-#define NCURSES_CONST /* nothing */
-#endif
diff --git a/ncurses-5.2/test/testaddch.c b/ncurses-5.2/test/testaddch.c
deleted file mode 100644
index 48293e2..0000000
--- a/ncurses-5.2/test/testaddch.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
- * to demonstrate an inconsistency between ncurses and SVr4 curses.
- *
- * $Id$
- */
-#include <test.priv.h>
-
-static void attr_addstr(const char *s, chtype a)
-{
- while(*s)
- addch(((unsigned char)(*s++))|a);
-}
-
-int
-main(
- int argc 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;
-}
diff --git a/ncurses-5.2/test/testcurs.c b/ncurses-5.2/test/testcurs.c
deleted file mode 100644
index c4966a2..0000000
--- a/ncurses-5.2/test/testcurs.c
+++ /dev/null
@@ -1,657 +0,0 @@
-/*
- *
- * This is a test program for the PDCurses screen package for IBM PC type
- * machines.
- *
- * This program was written by John Burnell (johnb@kea.am.dsir.govt.nz)
- * wrs(5/28/93) -- modified to be consistent (perform identically) with either
- * PDCurses or under Unix System V, R4
- *
- * $Id$
- */
-
-#include <test.priv.h>
-#include <ctype.h>
-
-#if defined(XCURSES)
-char *XCursesProgramName = "testcurs";
-#endif
-
-static int initTest(WINDOW **);
-static void display_menu(int, int);
-static void inputTest(WINDOW *);
-static void introTest(WINDOW *);
-static void outputTest(WINDOW *);
-static void padTest(WINDOW *);
-static void scrollTest(WINDOW *);
-#if defined(PDCURSES) && !defined(XCURSES)
-static void resizeTest(WINDOW *);
-#endif
-
-struct commands {
- NCURSES_CONST char *text;
- void (*function) (WINDOW *);
-};
-typedef struct commands COMMAND;
-
-const COMMAND command[] =
-{
- {"Intro Test", introTest},
- {"Pad Test", padTest},
-#if defined(PDCURSES) && !defined(XCURSES)
- {"Resize Test", resizeTest},
-#endif
- {"Scroll Test", scrollTest},
- {"Input Test", inputTest},
- {"Output Test", outputTest}
-};
-#define MAX_OPTIONS ((sizeof(command)/sizeof(command[0])))
-
-int width, height;
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- WINDOW *win;
- int key, old_option = (-1), new_option = 0;
- bool quit = FALSE;
-
-#ifdef PDCDEBUG
- PDC_debug("testcurs started\n");
-#endif
- if (!initTest(&win))
- return EXIT_FAILURE;
-
- erase();
- display_menu(old_option, new_option);
- while (1) {
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- wbkgd(win, COLOR_PAIR(1));
- } else
- wbkgd(win, A_REVERSE);
-#else
- wbkgd(win, A_REVERSE);
-#endif
- werase(win);
-
- noecho();
- keypad(stdscr, TRUE);
- raw();
- key = getch();
- switch (key) {
- case 10:
- case 13:
- case KEY_ENTER:
- erase();
- refresh();
- (*command[new_option].function) (win);
- erase();
- display_menu(old_option, new_option);
- break;
- case KEY_UP:
- new_option = (new_option == 0) ? new_option : new_option - 1;
- display_menu(old_option, new_option);
- break;
- case KEY_DOWN:
- new_option = (new_option == MAX_OPTIONS - 1) ? new_option :
- new_option + 1;
- display_menu(old_option, new_option);
- break;
- case 'Q':
- case 'q':
- quit = TRUE;
- break;
- default:
- break;
- }
- if (quit == TRUE)
- break;
- }
-
- delwin(win);
-
- endwin();
-#ifdef XCURSES
- XCursesExit();
-#endif
- return EXIT_SUCCESS;
-}
-
-static void
-Continue(WINDOW *win)
-{
- int y1 = getmaxy(win);
- int x1 = getmaxx(win);
- int y0 = y1 < 10 ? y1 : 10;
- int x0 = 1;
- long save;
-
- save = mvwinch(win, y0, x1 - 1);
-
- mvwaddstr(win, y0, x0, " Press any key to continue");
- wclrtoeol(win);
- getyx(win, y0, x0);
-
- mvwaddch(win, y0, x1 - 1, save);
-
- wmove(win, y0, x0);
- raw();
- wgetch(win);
-}
-
-static int
-initTest(WINDOW **win)
-{
-#ifdef PDCDEBUG
- PDC_debug("initTest called\n");
-#endif
-#ifdef TRACE
- trace(TRACE_MAXIMUM);
-#endif
- initscr();
-#ifdef PDCDEBUG
- PDC_debug("after initscr()\n");
-#endif
-#ifdef A_COLOR
- if (has_colors())
- start_color();
-#endif
- width = 60;
- height = 13; /* Create a drawing window */
- *win = newwin(height, width, (LINES - height) / 2, (COLS - width) / 2);
- if (*win == NULL) {
- endwin();
- return 0;
- }
- return 1;
-}
-
-static void
-introTest(WINDOW *win)
-{
- wmove(win, height / 2 - 5, width / 2);
- wvline(win, ACS_VLINE, 10);
- wmove(win, height / 2, width / 2 - 10);
- whline(win, ACS_HLINE, 20);
- Continue(win);
-
- beep();
- werase(win);
-
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- cbreak();
- mvwaddstr(win, 1, 1,
- "You should have rectangle in the middle of the screen");
- mvwaddstr(win, 2, 1, "You should have heard a beep");
- Continue(win);
- return;
-}
-
-static void
-scrollTest(WINDOW *win)
-{
- int i;
- int half;
- int OldX, OldY;
- NCURSES_CONST char *Message = "The window will now scroll slowly";
-
- wclear(win);
- getmaxyx(win, OldY, OldX);
- half = OldY / 2;
- mvwprintw(win, OldY - 2, 1, Message);
- wrefresh(win);
- scrollok(win, TRUE);
- for (i = 1; i <= OldY; i++) {
- napms(600);
- scroll(win);
- wrefresh(win);
- }
-
- werase(win);
- for (i = 1; i < OldY; i++) {
- mvwprintw(win, i, 1, "Line %d", i);
- }
- mvwprintw(win, OldY - 2, 1, "The top of the window will scroll");
- wmove(win, 1, 1);
- wsetscrreg(win, 0, half - 1);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- for (i = 1; i <= half; i++) {
- napms(600);
- scroll(win);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- }
-
- werase(win);
- for (i = 1; i < OldY; i++) {
- mvwprintw(win, i, 1, "Line %d", i);
- }
- mvwprintw(win, 1, 1, "The bottom of the window will scroll");
- wmove(win, OldY - 2, 1);
- wsetscrreg(win, half, --OldY);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- for (i = half; i <= OldY; i++) {
- napms(600);
- wscrl(win, -1);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- }
- wsetscrreg(win, 0, OldY);
-}
-
-static void
-inputTest(WINDOW *win)
-{
- int w, h, bx, by, sw, sh, i, c, num;
- char buffer[80];
- WINDOW *subWin;
- wclear(win);
-
- getmaxyx(win, h, w);
- getbegyx(win, by, bx);
- sw = w / 3;
- sh = h / 3;
- if ((subWin = subwin(win, sh, sw, by + h - sh - 2, bx + w - sw - 2)) == NULL)
- return;
-
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(2, COLOR_WHITE, COLOR_RED);
- wbkgd(subWin, COLOR_PAIR(2) | A_BOLD);
- } else
- wbkgd(subWin, A_BOLD);
-#else
- wbkgd(subWin, A_BOLD);
-#endif
- box(subWin, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
-
- nocbreak();
- mvwaddstr(win, 2, 1, "Press some keys for 5 seconds");
- mvwaddstr(win, 1, 1, "Pressing ^C should do nothing");
- wrefresh(win);
-
- werase(subWin);
- box(subWin, ACS_VLINE, ACS_HLINE);
- for (i = 0; i < 5; i++) {
- mvwprintw(subWin, 1, 1, "Time = %d", i);
- wrefresh(subWin);
- napms(1000);
- flushinp();
- }
-
- delwin(subWin);
- werase(win);
- flash();
- wrefresh(win);
- napms(500);
-
- mvwaddstr(win, 2, 1, "Press a key, followed by ENTER");
- wmove(win, 9, 10);
- wrefresh(win);
- echo();
- noraw();
- wgetch(win);
- flushinp();
-
- wmove(win, 9, 10);
- wdelch(win);
- mvwaddstr(win, 4, 1, "The character should now have been deleted");
- Continue(win);
-
- wclear(win);
- mvwaddstr(win, 1, 1, "Press keys (or mouse buttons) to show their names");
- mvwaddstr(win, 2, 1, "Press spacebar to finish");
- wrefresh(win);
- keypad(win, TRUE);
- raw();
- noecho();
- typeahead(-1);
-#if defined(PDCURSES)
- mouse_set(ALL_MOUSE_EVENTS);
-#endif
- while (1) {
- wmove(win, 3, 5);
- c = wgetch(win);
- wclrtobot(win);
- if (c >= KEY_MIN)
- wprintw(win, "Key Pressed: %s", keyname(c));
- else if (isprint(c))
- wprintw(win, "Key Pressed: %c", c);
- else
- wprintw(win, "Key Pressed: %s", unctrl(c));
-#if defined(PDCURSES)
- if (c == KEY_MOUSE) {
- int button = 0;
- request_mouse_pos();
- if (BUTTON_CHANGED(1))
- button = 1;
- else if (BUTTON_CHANGED(2))
- button = 2;
- else if (BUTTON_CHANGED(3))
- button = 3;
- else
- button = 0;
- wmove(win, 4, 18);
- wprintw(win, "Button %d: ", button);
- if (MOUSE_MOVED)
- wprintw(win, "moved: ");
- else if ((BUTTON_STATUS(button) & BUTTON_ACTION_MASK) == BUTTON_PRESSED)
- wprintw(win, "pressed: ");
- else if ((BUTTON_STATUS(button) & BUTTON_ACTION_MASK) == BUTTON_DOUBLE_CLICKED)
- wprintw(win, "double: ");
- else
- wprintw(win, "released: ");
- wprintw(win, " Position: Y: %d X: %d", MOUSE_Y_POS, MOUSE_X_POS);
- }
-#endif
- wrefresh(win);
- if (c == ' ')
- break;
- }
-#if 0
- nodelay(win, TRUE);
- wgetch(win);
- nodelay(win, FALSE);
-#endif
-#if defined(PDCURSES)
- 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);
-}
-
-static void
-outputTest(WINDOW *win)
-{
- WINDOW *win1;
- char Buffer[80];
- chtype ch;
- int by, bx;
-
- nl();
- wclear(win);
- mvwaddstr(win, 1, 1,
- "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 ^");
- Continue(win);
-
- wclear(win);
- wattron(win, A_BOLD);
- mvwaddstr(win, 1, 1, "A new window will appear with this text in it");
- mvwaddstr(win, 8, 1, "Press any key to continue");
- wrefresh(win);
- wgetch(win);
-
- getbegyx(win, by, bx);
-
- if (LINES < 24 || COLS < 75) {
- mvwaddstr(win, 5, 1,
- "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 {
- win1 = newwin(10, 50, 14, 25);
- if (win1 == NULL) {
- endwin();
- return;
- }
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(3, COLOR_BLUE, COLOR_WHITE);
- wbkgd(win1, COLOR_PAIR(3));
- } else
- wbkgd(win1, A_NORMAL);
-#else
- wbkgd(win1, A_NORMAL);
-#endif
- wclear(win1);
- mvwaddstr(win1, 5, 1,
- "This text should appear; using overlay option");
- copywin(win, win1, 0, 0, 0, 0, 9, 49, TRUE);
-
-#if defined(PDCURSES) && !defined(XCURSES)
- box(win1, 0xb3, 0xc4);
-#else
- box(win1, ACS_VLINE, ACS_HLINE);
-#endif
- wmove(win1, 8, 26);
- wrefresh(win1);
- wgetch(win1);
-
- wclear(win1);
- wattron(win1, A_BLINK);
- mvwaddstr(win1, 4, 1,
- "This blinking text should appear in only the second window");
- wattroff(win1, A_BLINK);
- mvwin(win1, by, bx);
- overlay(win, win1);
- mvwin(win1, 14, 25);
- wmove(win1, 8, 26);
- wrefresh(win1);
- wgetch(win1);
- delwin(win1);
- }
-
- clear();
- wclear(win);
- wrefresh(win);
- mvwaddstr(win, 6, 2, "This line shouldn't appear");
- mvwaddstr(win, 4, 2, "Only half of the next line is visible");
- mvwaddstr(win, 5, 2, "Only half of the next line is visible");
- wmove(win, 6, 1);
- wclrtobot(win);
- wmove(win, 5, 20);
- wclrtoeol(win);
- mvwaddstr(win, 8, 2, "This line also shouldn't appear");
- wmove(win, 8, 1);
- wdeleteln(win);
- Continue(win);
-
- wmove(win, 5, 9);
- ch = winch(win);
-
- wclear(win);
- wmove(win, 6, 2);
- waddstr(win, "The next char should be l: ");
- winsch(win, ch);
- Continue(win);
-
- mvwinsstr(win, 6, 2, "A1B2C3D4E5");
- Continue(win);
-
- wmove(win, 5, 1);
- winsertln(win);
- mvwaddstr(win, 5, 2, "The lines below should have moved down");
- Continue(win);
-
- wclear(win);
- wmove(win, 2, 2);
- wprintw(win, "This is a formatted string in a window: %d %s\n", 42,
- "is it");
- mvwaddstr(win, 10, 1, "Enter a string: ");
- wrefresh(win);
- noraw();
- echo();
- *Buffer = 0;
- wscanw(win, "%s", Buffer);
-
- printw("This is a formatted string in stdscr: %d %s\n", 42, "is it");
- mvaddstr(10, 1, "Enter a string: ");
- *Buffer = 0;
- scanw("%s", Buffer);
-
- if (tigetstr("cvvis") != 0) {
- wclear(win);
- curs_set(2);
- mvwaddstr(win, 1, 1, "The cursor should appear as a block (visible)");
- Continue(win);
- }
-
- if (tigetstr("civis") != 0) {
- wclear(win);
- curs_set(0);
- mvwaddstr(win, 1, 1,
- "The cursor should have disappeared (invisible)");
- Continue(win);
- }
-
- if (tigetstr("cnorm") != 0) {
- wclear(win);
- curs_set(1);
- mvwaddstr(win, 1, 1, "The cursor should be an underline (normal)");
- Continue(win);
- }
-#ifdef A_COLOR
- if (has_colors()) {
- wclear(win);
- mvwaddstr(win, 1, 1, "Colors should change after you press a key");
- Continue(win);
- init_pair(1, COLOR_RED, COLOR_WHITE);
- wrefresh(win);
- }
-#endif
-
- werase(win);
- mvwaddstr(win, 1, 1, "Information About Your Terminal");
- mvwaddstr(win, 3, 1, termname());
- mvwaddstr(win, 4, 1, longname());
- if (termattrs() & A_BLINK)
- mvwaddstr(win, 5, 1, "This terminal supports blinking.");
- else
- mvwaddstr(win, 5, 1, "This terminal does NOT support blinking.");
-
- mvwaddnstr(win, 7, 5, "Have a nice day!ok", 16);
- wrefresh(win);
-
- mvwinnstr(win, 7, 5, Buffer, 18);
- mvaddstr(LINES - 2, 10, Buffer);
- refresh();
- Continue(win);
-}
-
-#if defined(PDCURSES) && !defined(XCURSES)
-static void
-resizeTest(WINDOW *dummy GCC_UNUSED)
-{
- WINDOW *win1;
-
- savetty();
-
- clear();
- refresh();
-# if defined(OS2)
- resize_term(50, 120);
-# else
- resize_term(50, 80);
-# endif
-
- win1 = newwin(10, 50, 14, 25);
- if (win1 == NULL) {
- endwin();
- return;
- }
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(3, COLOR_BLUE, COLOR_WHITE);
- wattrset(win1, COLOR_PAIR(3));
- }
-#endif
- wclear(win1);
-
- mvwaddstr(win1, 1, 1, "The screen may now have 50 lines");
- Continue(win1);
-
- wclear(win1);
- resetty();
-
- mvwaddstr(win1, 1, 1, "The screen should now be reset");
- Continue(win1);
-
- delwin(win1);
-
- clear();
- refresh();
-
-}
-#endif
-
-static void
-padTest(WINDOW *dummy GCC_UNUSED)
-{
- WINDOW *pad, *spad;
-
- pad = newpad(50, 100);
- wattron(pad, A_REVERSE);
- 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");
- mvwaddstr(pad, 11, 1, "This line should not appear.It will now");
- wmove(pad, 10, 1);
- wclrtoeol(pad);
- mvwaddstr(pad, 10, 1, " Press any key to continue");
- prefresh(pad, 0, 0, 0, 0, 10, 45);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- spad = subpad(pad, 12, 25, 6, 52);
- mvwaddstr(spad, 2, 2, "This is a new subpad");
- box(spad, 0, 0);
- prefresh(pad, 0, 0, 0, 0, 15, 75);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- mvwaddstr(pad, 35, 2, "This is displayed at line 35 in the pad");
- mvwaddstr(pad, 40, 1, " Press any key to continue");
- prefresh(pad, 30, 0, 0, 0, 10, 45);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- delwin(pad);
-}
-
-static void
-display_menu(int old_option, int new_option)
-{
- register size_t i;
-
- attrset(A_NORMAL);
- mvaddstr(3, 20, "PDCurses Test Program");
-
- for (i = 0; i < MAX_OPTIONS; i++)
- mvaddstr(5 + i, 25, command[i].text);
- if (old_option != (-1))
- mvaddstr(5 + old_option, 25, command[old_option].text);
- attrset(A_REVERSE);
- 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");
- refresh();
-}
diff --git a/ncurses-5.2/test/testscanw.c b/ncurses-5.2/test/testscanw.c
deleted file mode 100644
index 97e742e..0000000
--- a/ncurses-5.2/test/testscanw.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* gleaned from a web-search, shows a bug combining scanw and implicit scroll.
- * Date: 1997/03/17
- * From: bayern@morpheus.cis.yale.edu
- *
- * $Id$
- */
-#include <test.priv.h>
-#include <ctype.h>
-
-int main(int argc, char *argv[])
-{
- long badanswer = 1;
- long *response = &badanswer;
-
- initscr();
- scrollok(stdscr, TRUE);
- idlok(stdscr, TRUE);
- echo();
-
-#if 0
- trace(TRACE_UPDATE|TRACE_CALLS);
-#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 (badanswer) {
- printw("Enter a number (0 to quit):\n");
- printw("--> ");
- scanw("%20ld", response); /* yes, it's a pointer */
- }
- endwin();
- return EXIT_SUCCESS;
-}
diff --git a/ncurses-5.2/test/tracemunch b/ncurses-5.2/test/tracemunch
deleted file mode 100755
index 2bed549..0000000
--- a/ncurses-5.2/test/tracemunch
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/perl
-#
-# 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$)
-
-$putattr="PutAttrChar\\('(.)' = 0x.., {A_NORMAL}\\) at \\(([0-9]+), ([0-9]+)\\)";
-$waddnstr="waddnstr\\(0x([0-9a-f]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
-
-sub transaddr
-{
- $arg = $_[0];
-
- $arg =~ s/$curscr/curscr/ if ($curscr);
- $arg =~ s/$newscr/newscr/ if ($newscr);
- $arg =~ s/$stdscr/stdscr/ if ($stdscr);
-
- return $arg;
-}
-
-while (<STDIN>)
-{
-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 = "";
- }
-
- # Compactify runs of PutAttrChar calls (TR_CHARPUT)
- if ($_ =~ /$putattr/)
- {
- $putattr_chars = $1;
- $starty = $2;
- $startx = $3;
- while (<STDIN>)
- {
- if ($_ =~ /$putattr/) {
- $putattr_chars .= $1;
- } else {
- last;
- }
- }
- print "RUN of PutAttrChar()s: \"$putattr_chars\" from ${starty}, ${startx}\n";
- redo CLASSIFY;
- }
-
- # Compactify runs of waddnstr calls (TR_CALLS)
- if ($_ =~ /$waddnstr/)
- {
- $waddnstr_chars = $2;
- $winaddr = $1;
- while (<STDIN>)
- {
- if ($_ =~ /$waddnstr/ && $1 eq $winaddr) {
- $waddnstr_chars .= $2;
- } else {
- last;
- }
- }
- $winaddstr = &transaddr($winaddr);
- print "RUN of waddnstr()s: $winaddr, \"$waddnstr_chars\"\n";
- redo CLASSIFY;
- }
-
- # More transformations can go here
-
- # Repeated runs of anything
- $anyline = &transaddr($_);
- $repeatcount = 1;
- while (<STDIN>) {
- if (&transaddr($_) eq $anyline) {
- $repeatcount++;
- } else {
- last;
- }
- }
- if ($repeatcount > 1) {
- print "${repeatcount} REPEATS OF $anyline";
- } else {
- print $anyline
- }
- redo CLASSIFY if $_;
-
- } # :CLASSIFY
-}
-
-# tracemunch ends here
diff --git a/ncurses-5.2/test/view.c b/ncurses-5.2/test/view.c
deleted file mode 100644
index 0627948..0000000
--- a/ncurses-5.2/test/view.c
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * view.c -- a silly little viewer program
- *
- * written by Eric S. Raymond <esr@snark.thyrsus.com> December 1994
- * to test the scrolling code in ncurses.
- *
- * modified by Thomas Dickey <dickey@clark.net> July 1995 to demonstrate
- * the use of 'resizeterm()', and May 2000 to illustrate wide-character
- * handling.
- *
- * Takes a filename argument. It's a simple file-viewer with various
- * scroll-up and scroll-down commands.
- *
- * n -- scroll one line forward
- * p -- scroll one line back
- *
- * Either command accepts a numeric prefix interpreted as a repeat count.
- * Thus, typing `5n' should scroll forward 5 lines in the file.
- *
- * The way you can tell this is working OK is that, in the trace file,
- * there should be one scroll operation plus a small number of line
- * updates, as opposed to a whole-page update. This means the physical
- * scroll operation worked, and the refresh() code only had to do a
- * partial repaint.
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-#include <string.h>
-#include <ctype.h>
-#include <signal.h>
-
-#if HAVE_TERMIOS_H
-# include <termios.h>
-#else
-# include <sgtty.h>
-#endif
-
-#if !defined(sun) || !HAVE_TERMIOS_H
-# if HAVE_SYS_IOCTL_H
-# include <sys/ioctl.h>
-# endif
-#endif
-
-/* This is needed to compile 'struct winsize' */
-#if NEED_PTEM_H
-#include <sys/stream.h>
-#include <sys/ptem.h>
-#endif
-
-static RETSIGTYPE finish(int sig) GCC_NORETURN;
-static void show_all(void);
-
-#if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZETERM
-#define CAN_RESIZE 1
-#else
-#define CAN_RESIZE 0
-#endif
-
-#if CAN_RESIZE
-static RETSIGTYPE adjust(int sig);
-static int interrupted;
-#endif
-
-static int waiting;
-static int shift;
-static int utf8_mode = FALSE;
-
-static char *fname;
-static chtype **lines;
-static chtype **lptr;
-
-static void
-usage(void)
-{
- static const char *msg[] =
- {
- "Usage: view [options] file"
- ,""
- ,"Options:"
- ," -n NUM specify maximum number of lines (default 1000)"
-#if defined(KEY_RESIZE)
- ," -r use experimental KEY_RESIZE rather than our own handler"
-#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]);
- exit(EXIT_FAILURE);
-}
-
-static int
-ch_len(chtype * src)
-{
- int result = 0;
- while (*src++)
- result++;
- return result;
-}
-
-/*
- * Allocate a string into an array of chtype's. If UTF-8 mode is
- * active, translate the string accordingly.
- */
-static chtype *
-ch_dup(char *src)
-{
- unsigned len = strlen(src);
- chtype *dst = typeMalloc(chtype, len + 1);
- unsigned j, k;
- unsigned utf_count = 0;
- unsigned utf_char = 0;
-
-#define UCS_REPL 0xfffd
-
- 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];
- }
- }
- dst[k] = 0;
- return dst;
-}
-
-int
-main(int argc, char *argv[])
-{
- int MAXLINES = 1000;
- FILE *fp;
- char buf[BUFSIZ];
- int i;
- chtype **olptr;
- int done = FALSE;
- int length = 0;
-#if CAN_RESIZE
- bool use_resize = TRUE;
-#endif
-
- while ((i = getopt(argc, argv, "n:rtT:u")) != EOF) {
- switch (i) {
- case 'n':
- if ((MAXLINES = atoi(optarg)) < 1)
- usage();
- break;
-#if CAN_RESIZE
- case 'r':
- use_resize = FALSE;
- break;
-#endif
-#ifdef TRACE
- case 'T':
- trace(atoi(optarg));
- break;
- case 't':
- trace(TRACE_CALLS);
- break;
-#endif
- case 'u':
- utf8_mode = TRUE;
- break;
- default:
- usage();
- }
- }
- if (optind + 1 != argc)
- usage();
-
- if ((lines = typeMalloc(chtype *, MAXLINES + 2)) == 0)
- usage();
-
- fname = argv[optind];
- if ((fp = fopen(fname, "r")) == 0) {
- perror(fname);
- return EXIT_FAILURE;
- }
-
- (void) signal(SIGINT, finish); /* arrange interrupts to terminate */
-#if CAN_RESIZE
- if (use_resize)
- (void) signal(SIGWINCH, adjust); /* arrange interrupts to resize */
-#endif
-
- /* slurp the file */
- for (lptr = &lines[0]; (lptr - lines) < MAXLINES; lptr++) {
- char temp[BUFSIZ], *s, *d;
- int col;
-
- if (fgets(buf, sizeof(buf), fp) == 0)
- break;
-
- /* convert tabs so that shift will work properly */
- for (s = buf, d = temp, col = 0; (*d = *s) != '\0'; s++) {
- if (*d == '\n') {
- *d = '\0';
- break;
- } else if (*d == '\t') {
- col = (col | 7) + 1;
- while ((d - temp) != col)
- *d++ = ' ';
- } else if (isprint(*d) || utf8_mode) {
- col++;
- d++;
- } else {
- sprintf(d, "\\%03o", *s & 0xff);
- d += strlen(d);
- col = (d - temp);
- }
- }
- *lptr = ch_dup(temp);
- }
- (void) fclose(fp);
- length = lptr - 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 */
- idlok(stdscr, TRUE); /* allow use of insert/delete line */
-
- lptr = lines;
- while (!done) {
- int n, c;
- bool got_number;
-
- show_all();
-
- got_number = FALSE;
- n = 0;
- for (;;) {
-#if CAN_RESIZE
- if (interrupted)
- adjust(0);
-#endif
- waiting = TRUE;
- c = getch();
- waiting = FALSE;
- if ((c < 127) && isdigit(c)) {
- if (!got_number) {
- mvprintw(0, 0, "Count: ");
- clrtoeol();
- }
- addch(c);
- n = 10 * n + (c - '0');
- got_number = TRUE;
- } else
- break;
- }
- if (!got_number && n == 0)
- n = 1;
-
- switch (c) {
- case KEY_DOWN:
- case 'n':
- olptr = lptr;
- for (i = 0; i < n; i++)
- if ((lptr - lines) < (length - LINES + 1))
- lptr++;
- else
- break;
- wscrl(stdscr, lptr - olptr);
- break;
-
- case KEY_UP:
- case 'p':
- olptr = lptr;
- for (i = 0; i < n; i++)
- if (lptr > lines)
- lptr--;
- else
- break;
- wscrl(stdscr, lptr - olptr);
- break;
-
- case 'h':
- case KEY_HOME:
- lptr = lines;
- break;
-
- case 'e':
- case KEY_END:
- if (length > LINES)
- lptr = lines + length - LINES + 1;
- else
- lptr = lines;
- break;
-
- case 'r':
- case KEY_RIGHT:
- shift++;
- break;
-
- case 'l':
- case KEY_LEFT:
- if (shift)
- shift--;
- else
- beep();
- break;
-
- case 'q':
- done = TRUE;
- break;
-
-#ifdef KEY_RESIZE
- case KEY_RESIZE: /* ignore this; ncurses will repaint */
- break;
-#endif
-#if CAN_RESIZE
- case ERR:
- break;
-#endif
- default:
- beep();
- }
- }
-
- finish(0); /* we're done */
-}
-
-static RETSIGTYPE
-finish(int sig)
-{
- endwin();
- exit(sig != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
-}
-
-#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.
- */
-static RETSIGTYPE
-adjust(int sig)
-{
- if (waiting || sig == 0) {
- struct winsize size;
-
- if (ioctl(fileno(stdout), TIOCGWINSZ, &size) == 0) {
- resizeterm(size.ws_row, size.ws_col);
- wrefresh(curscr); /* Linux needs this */
- show_all();
- }
- interrupted = FALSE;
- } else {
- interrupted = TRUE;
- }
- (void) signal(SIGWINCH, adjust); /* some systems need this */
-}
-#endif /* CAN_RESIZE */
-
-static void
-show_all(void)
-{
- int i;
- char temp[BUFSIZ];
- chtype *s;
-
-#if CAN_RESIZE
- sprintf(temp, "(%3dx%3d) col %d ", LINES, COLS, shift);
- i = strlen(temp);
- sprintf(temp + i, "view %.*s", (int) (sizeof(temp) - 7 - i), fname);
-#else
- sprintf(temp, "view %.*s", (int) sizeof(temp) - 7, fname);
-#endif
- move(0, 0);
- printw("%.*s", COLS, temp);
- clrtoeol();
-
- scrollok(stdscr, FALSE); /* prevent screen from moving */
- for (i = 1; i < LINES; i++) {
- move(i, 0);
- printw("%3ld:", (long) (lptr + i - lines));
- clrtoeol();
- if ((s = lptr[i - 1]) != 0) {
- int len = ch_len(s);
- if (len > shift)
- addchstr(s + shift);
- }
- }
- setscrreg(1, LINES - 1);
- scrollok(stdscr, TRUE);
- refresh();
-}
diff --git a/ncurses-5.2/test/worm.c b/ncurses-5.2/test/worm.c
deleted file mode 100644
index 9ff1c48..0000000
--- a/ncurses-5.2/test/worm.c
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
-
- @@@ @@@ @@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@
- @@@ @@@ @@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@
- @@@ @@@ @@@@ @@@@ @@@@ @@@@ @@@ @@@@
- @@@ @@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@ @@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@@ @@@@ @@@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@@@@@@@@@@ @@@@ @@@@ @@@ @@@ @@@ @@@
- @@@@ @@@@ @@@@@@@@@@@@ @@@ @@@ @@@ @@@
- @@ @@ @@@@@@@@@@ @@@ @@@ @@@ @@@
-
- Eric P. Scott
- Caltech High Energy Physics
- October, 1980
-
- Hacks to turn this into a test frame for cursor movement:
- Eric S. Raymond <esr@snark.thyrsus.com>
- January, 1995
-
- July 1995 (esr): worms is now in living color! :-)
-
-Options:
- -f fill screen with copies of 'WORM' at start.
- -l <n> set worm length
- -n <n> set number of worms
- -t make worms leave droppings
- -T <start> <end> set trace interval
- -S set single-stepping during trace interval
- -N suppress cursor-movement optimization
-
- This program makes a good torture-test for the ncurses cursor-optimization
- code. You can use -T to set the worm move interval over which movement
- traces will be dumped. The program stops and waits for one character of
- input at the beginning and end of the interval.
-
- $Id$
-*/
-
-#include <test.priv.h>
-
-#include <signal.h>
-
-static chtype flavor[] =
-{
- 'O', '*', '#', '$', '%', '0', '@',
-};
-#define MAXWORMS (sizeof(flavor)/sizeof(chtype))
-static const short xinc[] =
-{
- 1, 1, 1, 0, -1, -1, -1, 0
-}, yinc[] =
-{
- -1, 0, 1, 1, 1, 0, -1, -1
-};
-static struct worm {
- int orientation, head;
- short *xpos, *ypos;
-} worm[40];
-
-static const char *field;
-static int length = 16, number = 3;
-static chtype trail = ' ';
-
-#ifdef TRACE
-int generation, trace_start, trace_end, singlestep;
-#endif /* TRACE */
-/* *INDENT-OFF* */
-static const struct options {
- int nopts;
- int opts[3];
-} normal[8]={
- { 3, { 7, 0, 1 } },
- { 3, { 0, 1, 2 } },
- { 3, { 1, 2, 3 } },
- { 3, { 2, 3, 4 } },
- { 3, { 3, 4, 5 } },
- { 3, { 4, 5, 6 } },
- { 3, { 5, 6, 7 } },
- { 3, { 6, 7, 0 } }
-}, upper[8]={
- { 1, { 1, 0, 0 } },
- { 2, { 1, 2, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 4, 5, 0 } },
- { 1, { 5, 0, 0 } },
- { 2, { 1, 5, 0 } }
-}, left[8]={
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 2, 3, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 3, 7, 0 } },
- { 1, { 7, 0, 0 } },
- { 2, { 7, 0, 0 } }
-}, right[8]={
- { 1, { 7, 0, 0 } },
- { 2, { 3, 7, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 3, 4, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 6, 7, 0 } }
-}, lower[8]={
- { 0, { 0, 0, 0 } },
- { 2, { 0, 1, 0 } },
- { 1, { 1, 0, 0 } },
- { 2, { 1, 5, 0 } },
- { 1, { 5, 0, 0 } },
- { 2, { 5, 6, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-}, upleft[8]={
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 1, 3, 0 } },
- { 1, { 1, 0, 0 } }
-}, upright[8]={
- { 2, { 3, 5, 0 } },
- { 1, { 3, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 5, 0, 0 } }
-}, lowleft[8]={
- { 3, { 7, 0, 1 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 1, 0, 0 } },
- { 2, { 1, 7, 0 } },
- { 1, { 7, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-}, lowright[8]={
- { 0, { 0, 0, 0 } },
- { 1, { 7, 0, 0 } },
- { 2, { 5, 7, 0 } },
- { 1, { 5, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-};
-/* *INDENT-ON* */
-
-static void
-cleanup(void)
-{
- standend();
- refresh();
- curs_set(1);
- endwin();
-}
-
-static RETSIGTYPE
-onsig(int sig GCC_UNUSED)
-{
- cleanup();
- exit(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-int
-main(int argc, char *argv[])
-{
- short **ref;
- int x, y;
- int n;
- struct worm *w;
- const struct options *op;
- int h;
- short *ip;
- int last, bottom;
-
- for (x = 1; x < argc; x++) {
- char *p;
- p = argv[x];
- if (*p == '-')
- p++;
- switch (*p) {
- case 'f':
- field = "WORM";
- break;
- case 'l':
- if (++x == argc)
- goto usage;
- if ((length = atoi(argv[x])) < 2 || length > 1024) {
- fprintf(stderr, "%s: Invalid length\n", *argv);
- return EXIT_FAILURE;
- }
- break;
- case 'n':
- if (++x == argc)
- goto usage;
- if ((number = atoi(argv[x])) < 1 || number > 40) {
- fprintf(stderr, "%s: Invalid number of worms\n", *argv);
- return EXIT_FAILURE;
- }
- break;
- case 't':
- trail = '.';
- break;
-#ifdef TRACE
- case 'S':
- singlestep = TRUE;
- break;
- case 'T':
- trace_start = atoi(argv[++x]);
- trace_end = atoi(argv[++x]);
- break;
- case 'N':
- _nc_optimize_enable ^= OPTIMIZE_ALL; /* declared by ncurses */
- break;
-#endif /* TRACE */
- default:
- usage:
- fprintf(stderr,
- "usage: %s [-field] [-length #] [-number #] [-trail]\n", *argv);
- return EXIT_FAILURE;
- }
- }
-
- signal(SIGINT, onsig);
- initscr();
- noecho();
- cbreak();
- nonl();
-
- curs_set(0);
-
- bottom = LINES - 1;
- last = COLS - 1;
-
-#ifdef A_COLOR
- if (has_colors()) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
-
-#define SET_COLOR(num, fg) \
- init_pair(num+1, fg, bg); \
- flavor[num] |= COLOR_PAIR(num+1) | A_BOLD
-
- SET_COLOR(0, COLOR_GREEN);
- SET_COLOR(1, COLOR_RED);
- SET_COLOR(2, COLOR_CYAN);
- SET_COLOR(3, COLOR_WHITE);
- SET_COLOR(4, COLOR_MAGENTA);
- SET_COLOR(5, COLOR_BLUE);
- SET_COLOR(6, COLOR_YELLOW);
- }
-#endif /* A_COLOR */
-
- ref = typeMalloc(short *, LINES);
- for (y = 0; y < LINES; y++) {
- ref[y] = typeMalloc(short, COLS);
- for (x = 0; x < COLS; x++) {
- ref[y][x] = 0;
- }
- }
-
-#ifdef BADCORNER
- /* if addressing the lower right corner doesn't work in your curses */
- ref[bottom][last] = 1;
-#endif /* BADCORNER */
-
- for (n = number, w = &worm[0]; --n >= 0; w++) {
- w->orientation = w->head = 0;
- if (!(ip = typeMalloc(short, (length + 1)))) {
- fprintf(stderr, "%s: out of memory\n", *argv);
- return 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);
- return EXIT_FAILURE;
- }
- w->ypos = ip;
- for (y = length; --y >= 0;)
- *ip++ = -1;
- }
- if (field) {
- const char *p;
- p = field;
- for (y = bottom; --y >= 0;) {
- for (x = COLS; --x >= 0;) {
- addch((chtype) (*p++));
- if (!*p)
- p = field;
- }
- }
- }
- napms(10);
- refresh();
-#ifndef TRACE
- nodelay(stdscr, TRUE);
-#endif
-
- for (;;) {
-#ifdef TRACE
- if (trace_start || trace_end) {
- if (generation == trace_start) {
- trace(TRACE_CALLS);
- getch();
- } else if (generation == trace_end) {
- trace(0);
- getch();
- }
-
- if (singlestep && generation > trace_start && generation < trace_end)
- getch();
-
- generation++;
- }
-#else
- int ch;
-
- if ((ch = getch()) > 0) {
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- if (last != COLS - 1) {
- for (y = 0; y <= bottom; y++) {
- ref[y] = typeRealloc(short, COLS, ref[y]);
- for (x = last + 1; x < COLS; x++)
- ref[y][x] = 0;
- }
- last = COLS - 1;
- }
- if (bottom != LINES - 1) {
- for (y = LINES; y <= bottom; y++)
- free(ref[y]);
- ref = typeRealloc(short *, LINES, ref);
- for (y = bottom + 1; y < LINES; y++) {
- ref[y] = typeMalloc(short, COLS);
- for (x = 0; x < COLS; x++)
- ref[y][x] = 0;
- }
- bottom = LINES - 1;
- }
- }
-#endif
- /*
- * Make it simple to put this into single-step mode, or resume
- * normal operation -TD
- */
- if (ch == 'q') {
- cleanup();
- return (EXIT_SUCCESS);
- } else if (ch == 's') {
- nodelay(stdscr, FALSE);
- } else if (ch == ' ') {
- nodelay(stdscr, TRUE);
- }
- }
-#endif /* TRACE */
-
- 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]);
- ref[y][x]++;
- } else {
- y = w->ypos[h];
- }
- if (x > last)
- x = last;
- if (y > bottom)
- y = bottom;
- if (++h == length)
- h = 0;
- if (w->xpos[w->head = h] >= 0) {
- int x1, y1;
- x1 = w->xpos[h];
- y1 = w->ypos[h];
- if (y1 < LINES
- && x1 < COLS
- && --ref[y1][x1] == 0) {
- move(y1, x1);
- addch(trail);
- }
- }
- op = &(x == 0 ? (y == 0 ? upleft : (y == bottom ? lowleft :
- 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();
- return EXIT_SUCCESS;
- case 1:
- w->orientation = op->opts[0];
- break;
- default:
- w->orientation = op->opts[(int) (ranf() * (float) op->nopts)];
- }
- move(y += yinc[w->orientation], x += xinc[w->orientation]);
-
- if (y < 0)
- y = 0;
- addch(flavor[n % MAXWORMS]);
- ref[w->ypos[h] = y][w->xpos[h] = x]++;
- }
- napms(10);
- refresh();
- }
-}
diff --git a/ncurses-5.2/test/xmas.c b/ncurses-5.2/test/xmas.c
deleted file mode 100644
index 170ad9e..0000000
--- a/ncurses-5.2/test/xmas.c
+++ /dev/null
@@ -1,1160 +0,0 @@
-/******************************************************************************/
-/* asciixmas */
-/* December 1989 Larry Bartz Indianapolis, IN */
-/* */
-/* */
-/* I'm dreaming of an ascii character-based monochrome Christmas, */
-/* Just like the one's I used to know! */
-/* Via a full duplex communications channel, */
-/* At 9600 bits per second, */
-/* Even though it's kinda slow. */
-/* */
-/* I'm dreaming of an ascii character-based monochrome Christmas, */
-/* With ev'ry C program I write! */
-/* May your screen be merry and bright! */
-/* And may all your Christmases be amber or green, */
-/* (for reduced eyestrain and improved visibility)! */
-/* */
-/* */
-/* */
-/* */
-/* */
-/* IMPLEMENTATION */
-/* */
-/* Feel free to modify the defined string FROMWHO to reflect you, your */
-/* organization, your site, whatever. */
-/* */
-/* This really looks a lot better if you can turn off your cursor before */
-/* execution. I wanted to do that here but very few termcap entries or */
-/* terminfo definitions have the appropriate string defined. If you know */
-/* the string(s) for the terminal(s) you use or which your site supports, */
-/* you could call asciixmas from within a shell in which you issue the */
-/* string to the terminal. The cursor is distracting but it doesn't really */
-/* ruin the show. */
-/* */
-/* At our site, we invoke this for our users just after login and the */
-/* determination of terminal type. */
-/* */
-/* */
-/* PORTABILITY */
-/* */
-/* I wrote this using only the very simplest curses functions so that it */
-/* might be the most portable. I was personally able to test on five */
-/* different cpu/UNIX combinations. */
-/* */
-/* */
-/* COMPILE */
-/* */
-/* usually this: */
-/* */
-/* cc -O asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* Zilog S8000 models 11, 21, 31, etc with ZEUS variant of SYSTEM III */
-/* maybe other SYSTEM III also: */
-/* */
-/* cc asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* as above with optional "peephole optimizer" installed: */
-/* */
-/* cc -O asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* */
-/* Zilog S8000 models 32, 130 with WE32100 chip and SYS V, REL2 */
-/* maybe 3B2 also? */
-/* */
-/* cc -f -O -K sd asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* Pyramid, Sequent, any other "dual universe" types compile and execute */
-/* under either universe. The compile line for the ucb universe (as you */
-/* might expect) is the same as for SYS III UNIX: */
-/* */
-/* cc -O asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* The above compile will also hold true for other BSD systems. (I hope) */
-/* */
-/* */
-/* */
-/* */
-/* For the Scrooges out there among you who don't want this thing to loop */
-/* forever (or until the user hits a key), insert this into your compile */
-/* line just after "cc" : */
-/* */
-/* -DNOLOOP */
-/* */
-/* like so: */
-/* */
-/* cc -DNOLOOP -O asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* */
-/******************************************************************************/
-
-/*
- * $Id$
- */
-#include <test.priv.h>
-
-#include <signal.h>
-
-#define FROMWHO "Mark Hessling - (M.Hessling@gu.edu.au)"
-
-static int my_bg = COLOR_BLACK;
-static int y_pos, x_pos;
-
-static WINDOW *treescrn;
-static WINDOW *treescrn2;
-static WINDOW *treescrn3;
-static WINDOW *treescrn4;
-static WINDOW *treescrn5;
-static WINDOW *treescrn6;
-static WINDOW *treescrn7;
-static WINDOW *treescrn8;
-static WINDOW *dotdeer0;
-static WINDOW *stardeer0;
-static WINDOW *lildeer0;
-static WINDOW *lildeer1;
-static WINDOW *lildeer2;
-static WINDOW *lildeer3;
-static WINDOW *middeer0;
-static WINDOW *middeer1;
-static WINDOW *middeer2;
-static WINDOW *middeer3;
-static WINDOW *bigdeer0;
-static WINDOW *bigdeer1;
-static WINDOW *bigdeer2;
-static WINDOW *bigdeer3;
-static WINDOW *bigdeer4;
-static WINDOW *lookdeer0;
-static WINDOW *lookdeer1;
-static WINDOW *lookdeer2;
-static WINDOW *lookdeer3;
-static WINDOW *lookdeer4;
-static WINDOW *w_holiday;
-static WINDOW *w_del_msg;
-
-static int boxit(void);
-static int seas(void);
-static int greet(void);
-static int fromwho(void);
-static int tree(void);
-static int balls(void);
-static int star(void);
-static int strng1(void);
-static int strng2(void);
-static int strng3(void);
-static int strng4(void);
-static int strng5(void);
-static int reindeer(void);
-static int blinkit(void);
-
-static RETSIGTYPE
-done(int sig) GCC_NORETURN;
-
- static void
- set_color(WINDOW *win, chtype color)
-{
- if (has_colors()) {
- static bool *pairs;
- int n = (color + 1);
- if (pairs == 0)
- pairs = (bool *) calloc(COLORS + 1, sizeof(bool));
- if (!pairs[n]) {
- init_pair(n, color, my_bg);
- pairs[n] = TRUE;
- }
- wattroff(win, A_COLOR);
- wattron(win, COLOR_PAIR(n));
- }
-}
-
-static void
-unset_color(WINDOW *win)
-{
- if (has_colors())
- wattrset(win, COLOR_PAIR(0));
-}
-
-static void
-look_out(int msecs)
-{
- napms(msecs);
- if (getch() != ERR) {
- beep();
- done(0);
- }
-}
-
-int
-main(int argc GCC_UNUSED, char **argv GCC_UNUSED)
-{
- int loopy;
-
- initscr();
- noecho();
- nonl();
- refresh();
- signal(SIGINT, done);
- signal(SIGTERM, done);
-#if !defined DOS && !defined OS2
- signal(SIGHUP, done);
- signal(SIGQUIT, done);
-#endif
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- }
- curs_set(0);
-
- treescrn = newwin(16, 27, 3, 53);
- treescrn2 = newwin(16, 27, 3, 53);
- treescrn3 = newwin(16, 27, 3, 53);
- treescrn4 = newwin(16, 27, 3, 53);
- treescrn5 = newwin(16, 27, 3, 53);
- treescrn6 = newwin(16, 27, 3, 53);
- treescrn7 = newwin(16, 27, 3, 53);
- treescrn8 = newwin(16, 27, 3, 53);
-
- dotdeer0 = newwin(3, 71, 0, 8);
-
- stardeer0 = newwin(4, 56, 0, 8);
-
- lildeer0 = newwin(7, 53, 0, 8);
- lildeer1 = newwin(2, 4, 0, 0);
- lildeer2 = newwin(2, 4, 0, 0);
- lildeer3 = newwin(2, 4, 0, 0);
-
- middeer0 = newwin(15, 42, 0, 8);
- middeer1 = newwin(3, 7, 0, 0);
- middeer2 = newwin(3, 7, 0, 0);
- middeer3 = newwin(3, 7, 0, 0);
-
- bigdeer0 = newwin(10, 23, 0, 0);
- bigdeer1 = newwin(10, 23, 0, 0);
- bigdeer2 = newwin(10, 23, 0, 0);
- bigdeer3 = newwin(10, 23, 0, 0);
- bigdeer4 = newwin(10, 23, 0, 0);
-
- lookdeer0 = newwin(10, 25, 0, 0);
- lookdeer1 = newwin(10, 25, 0, 0);
- lookdeer2 = newwin(10, 25, 0, 0);
- lookdeer3 = newwin(10, 25, 0, 0);
- lookdeer4 = newwin(10, 25, 0, 0);
-
- w_holiday = newwin(1, 26, 3, 27);
-
- w_del_msg = newwin(1, 19, 23, 60);
-
- mvwaddstr(w_del_msg, 0, 0, "Hit any key to quit");
-
- mvwaddstr(w_holiday, 0, 0, "H A P P Y H O L I D A Y S");
-
- /* set up the windows for our various reindeer */
-
- /* lildeer1 */
- mvwaddch(lildeer1, 0, 0, (chtype) 'V');
- mvwaddch(lildeer1, 1, 0, (chtype) '@');
- mvwaddch(lildeer1, 1, 1, (chtype) '<');
- mvwaddch(lildeer1, 1, 2, (chtype) '>');
- mvwaddch(lildeer1, 1, 3, (chtype) '~');
-
- /* lildeer2 */
- mvwaddch(lildeer2, 0, 0, (chtype) 'V');
- mvwaddch(lildeer2, 1, 0, (chtype) '@');
- mvwaddch(lildeer2, 1, 1, (chtype) '|');
- mvwaddch(lildeer2, 1, 2, (chtype) '|');
- mvwaddch(lildeer2, 1, 3, (chtype) '~');
-
- /* lildeer3 */
- mvwaddch(lildeer3, 0, 0, (chtype) 'V');
- mvwaddch(lildeer3, 1, 0, (chtype) '@');
- mvwaddch(lildeer3, 1, 1, (chtype) '>');
- mvwaddch(lildeer3, 1, 2, (chtype) '<');
- mvwaddch(lildeer2, 1, 3, (chtype) '~');
-
- /* middeer1 */
- mvwaddch(middeer1, 0, 2, (chtype) 'y');
- mvwaddch(middeer1, 0, 3, (chtype) 'y');
- mvwaddch(middeer1, 1, 2, (chtype) '0');
- mvwaddch(middeer1, 1, 3, (chtype) '(');
- mvwaddch(middeer1, 1, 4, (chtype) '=');
- mvwaddch(middeer1, 1, 5, (chtype) ')');
- mvwaddch(middeer1, 1, 6, (chtype) '~');
- mvwaddch(middeer1, 2, 3, (chtype) '\\');
- mvwaddch(middeer1, 2, 4, (chtype) '/');
-
- /* middeer2 */
- mvwaddch(middeer2, 0, 2, (chtype) 'y');
- mvwaddch(middeer2, 0, 3, (chtype) 'y');
- mvwaddch(middeer2, 1, 2, (chtype) '0');
- mvwaddch(middeer2, 1, 3, (chtype) '(');
- mvwaddch(middeer2, 1, 4, (chtype) '=');
- mvwaddch(middeer2, 1, 5, (chtype) ')');
- mvwaddch(middeer2, 1, 6, (chtype) '~');
- mvwaddch(middeer2, 2, 3, (chtype) '|');
- mvwaddch(middeer2, 2, 5, (chtype) '|');
-
- /* middeer3 */
- mvwaddch(middeer3, 0, 2, (chtype) 'y');
- mvwaddch(middeer3, 0, 3, (chtype) 'y');
- mvwaddch(middeer3, 1, 2, (chtype) '0');
- mvwaddch(middeer3, 1, 3, (chtype) '(');
- mvwaddch(middeer3, 1, 4, (chtype) '=');
- mvwaddch(middeer3, 1, 5, (chtype) ')');
- mvwaddch(middeer3, 1, 6, (chtype) '~');
- mvwaddch(middeer3, 2, 2, (chtype) '/');
- mvwaddch(middeer3, 2, 6, (chtype) '\\');
-
- /* bigdeer1 */
- mvwaddch(bigdeer1, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer1, 0, 18, (chtype) '/');
- mvwaddch(bigdeer1, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer1, 0, 21, (chtype) '/');
- mvwaddch(bigdeer1, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer1, 1, 20, (chtype) '/');
- mvwaddch(bigdeer1, 2, 19, (chtype) '|');
- mvwaddch(bigdeer1, 2, 20, (chtype) '_');
- mvwaddch(bigdeer1, 3, 18, (chtype) '/');
- mvwaddch(bigdeer1, 3, 19, (chtype) '^');
- mvwaddch(bigdeer1, 3, 20, (chtype) '0');
- mvwaddch(bigdeer1, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer1, 4, 17, (chtype) '/');
- mvwaddch(bigdeer1, 4, 18, (chtype) '/');
- mvwaddch(bigdeer1, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer1, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer1, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer1, 6, 7, "( \\_____( /");
- mvwaddstr(bigdeer1, 7, 8, "( ) /");
- mvwaddstr(bigdeer1, 8, 9, "\\\\ /");
- mvwaddstr(bigdeer1, 9, 11, "\\>/>");
-
- /* bigdeer2 */
- mvwaddch(bigdeer2, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer2, 0, 18, (chtype) '/');
- mvwaddch(bigdeer2, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer2, 0, 21, (chtype) '/');
- mvwaddch(bigdeer2, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer2, 1, 20, (chtype) '/');
- mvwaddch(bigdeer2, 2, 19, (chtype) '|');
- mvwaddch(bigdeer2, 2, 20, (chtype) '_');
- mvwaddch(bigdeer2, 3, 18, (chtype) '/');
- mvwaddch(bigdeer2, 3, 19, (chtype) '^');
- mvwaddch(bigdeer2, 3, 20, (chtype) '0');
- mvwaddch(bigdeer2, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer2, 4, 17, (chtype) '/');
- mvwaddch(bigdeer2, 4, 18, (chtype) '/');
- mvwaddch(bigdeer2, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer2, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer2, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer2, 6, 7, "(( )____( /");
- mvwaddstr(bigdeer2, 7, 7, "( / |");
- mvwaddstr(bigdeer2, 8, 8, "\\/ |");
- mvwaddstr(bigdeer2, 9, 9, "|> |>");
-
- /* bigdeer3 */
- mvwaddch(bigdeer3, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer3, 0, 18, (chtype) '/');
- mvwaddch(bigdeer3, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer3, 0, 21, (chtype) '/');
- mvwaddch(bigdeer3, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer3, 1, 20, (chtype) '/');
- mvwaddch(bigdeer3, 2, 19, (chtype) '|');
- mvwaddch(bigdeer3, 2, 20, (chtype) '_');
- mvwaddch(bigdeer3, 3, 18, (chtype) '/');
- mvwaddch(bigdeer3, 3, 19, (chtype) '^');
- mvwaddch(bigdeer3, 3, 20, (chtype) '0');
- mvwaddch(bigdeer3, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer3, 4, 17, (chtype) '/');
- mvwaddch(bigdeer3, 4, 18, (chtype) '/');
- mvwaddch(bigdeer3, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer3, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer3, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer3, 6, 6, "( ()_____( /");
- mvwaddstr(bigdeer3, 7, 6, "/ / /");
- mvwaddstr(bigdeer3, 8, 5, "|/ \\");
- mvwaddstr(bigdeer3, 9, 5, "/> \\>");
-
- /* bigdeer4 */
- mvwaddch(bigdeer4, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer4, 0, 18, (chtype) '/');
- mvwaddch(bigdeer4, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer4, 0, 21, (chtype) '/');
- mvwaddch(bigdeer4, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer4, 1, 20, (chtype) '/');
- mvwaddch(bigdeer4, 2, 19, (chtype) '|');
- mvwaddch(bigdeer4, 2, 20, (chtype) '_');
- mvwaddch(bigdeer4, 3, 18, (chtype) '/');
- mvwaddch(bigdeer4, 3, 19, (chtype) '^');
- mvwaddch(bigdeer4, 3, 20, (chtype) '0');
- mvwaddch(bigdeer4, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer4, 4, 17, (chtype) '/');
- mvwaddch(bigdeer4, 4, 18, (chtype) '/');
- mvwaddch(bigdeer4, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer4, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer4, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer4, 6, 6, "( )______( /");
- mvwaddstr(bigdeer4, 7, 5, "(/ \\");
- mvwaddstr(bigdeer4, 8, 0, "v___= ----^");
-
- /* lookdeer1 */
- mvwaddstr(lookdeer1, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer1, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer1, 2, 19, "\\=/");
- mvwaddstr(lookdeer1, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer1, 4, 17, "//( )");
- mvwaddstr(lookdeer1, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer1, 6, 7, "( \\_____( /");
- mvwaddstr(lookdeer1, 7, 8, "( ) /");
- mvwaddstr(lookdeer1, 8, 9, "\\\\ /");
- mvwaddstr(lookdeer1, 9, 11, "\\>/>");
-
- /* lookdeer2 */
- mvwaddstr(lookdeer2, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer2, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer2, 2, 19, "\\=/");
- mvwaddstr(lookdeer2, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer2, 4, 17, "//( )");
- mvwaddstr(lookdeer2, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer2, 6, 7, "(( )____( /");
- mvwaddstr(lookdeer2, 7, 7, "( / |");
- mvwaddstr(lookdeer2, 8, 8, "\\/ |");
- mvwaddstr(lookdeer2, 9, 9, "|> |>");
-
- /* lookdeer3 */
- mvwaddstr(lookdeer3, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer3, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer3, 2, 19, "\\=/");
- mvwaddstr(lookdeer3, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer3, 4, 17, "//( )");
- mvwaddstr(lookdeer3, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer3, 6, 6, "( ()_____( /");
- mvwaddstr(lookdeer3, 7, 6, "/ / /");
- mvwaddstr(lookdeer3, 8, 5, "|/ \\");
- mvwaddstr(lookdeer3, 9, 5, "/> \\>");
-
- /* lookdeer4 */
- mvwaddstr(lookdeer4, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer4, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer4, 2, 19, "\\=/");
- mvwaddstr(lookdeer4, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer4, 4, 17, "//( )");
- mvwaddstr(lookdeer4, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer4, 6, 6, "( )______( /");
- mvwaddstr(lookdeer4, 7, 5, "(/ \\");
- mvwaddstr(lookdeer4, 8, 0, "v___= ----^");
-
- /***********************************************/
- cbreak();
- nodelay(stdscr, TRUE);
- for (;;) {
- clear();
- werase(treescrn);
- touchwin(w_del_msg);
- touchwin(treescrn);
- werase(treescrn2);
- touchwin(treescrn2);
- werase(treescrn8);
- touchwin(treescrn8);
- refresh();
- look_out(150);
- boxit();
- refresh();
- look_out(150);
- seas();
- refresh();
- look_out(150);
- greet();
- refresh();
- look_out(150);
- fromwho();
- refresh();
- look_out(150);
- tree();
- look_out(150);
- balls();
- look_out(150);
- star();
- look_out(150);
- strng1();
- strng2();
- strng3();
- strng4();
- strng5();
-
- /* set up the windows for our blinking trees */
- /* **************************************** */
- /* treescrn3 */
-
- overlay(treescrn, treescrn3);
-
- /*balls */
- mvwaddch(treescrn3, 4, 18, ' ');
- mvwaddch(treescrn3, 7, 6, ' ');
- mvwaddch(treescrn3, 8, 19, ' ');
- mvwaddch(treescrn3, 11, 22, ' ');
-
- /*star */
- mvwaddch(treescrn3, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn3, 3, 11, ' ');
-
- /*strng2 */
- mvwaddch(treescrn3, 5, 13, ' ');
- mvwaddch(treescrn3, 6, 10, ' ');
-
- /*strng3 */
- mvwaddch(treescrn3, 7, 16, ' ');
- mvwaddch(treescrn3, 7, 14, ' ');
-
- /*strng4 */
- mvwaddch(treescrn3, 10, 13, ' ');
- mvwaddch(treescrn3, 10, 10, ' ');
- mvwaddch(treescrn3, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn3, 11, 18, ' ');
- mvwaddch(treescrn3, 12, 13, ' ');
-
- /* treescrn4 */
-
- overlay(treescrn, treescrn4);
-
- /*balls */
- mvwaddch(treescrn4, 3, 9, ' ');
- mvwaddch(treescrn4, 4, 16, ' ');
- mvwaddch(treescrn4, 7, 6, ' ');
- mvwaddch(treescrn4, 8, 19, ' ');
- mvwaddch(treescrn4, 11, 2, ' ');
- mvwaddch(treescrn4, 12, 23, ' ');
-
- /*star */
- wstandout(treescrn4);
- mvwaddch(treescrn4, 0, 12, '*');
- wstandend(treescrn4);
-
- /*strng1 */
- mvwaddch(treescrn4, 3, 13, ' ');
-
- /*strng2 */
-
- /*strng3 */
- mvwaddch(treescrn4, 7, 15, ' ');
- mvwaddch(treescrn4, 8, 11, ' ');
-
- /*strng4 */
- mvwaddch(treescrn4, 9, 16, ' ');
- mvwaddch(treescrn4, 10, 12, ' ');
- mvwaddch(treescrn4, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn4, 11, 18, ' ');
- mvwaddch(treescrn4, 12, 14, ' ');
-
- /* treescrn5 */
-
- overlay(treescrn, treescrn5);
-
- /*balls */
- mvwaddch(treescrn5, 3, 15, ' ');
- mvwaddch(treescrn5, 10, 20, ' ');
- mvwaddch(treescrn5, 12, 1, ' ');
-
- /*star */
- mvwaddch(treescrn5, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn5, 3, 11, ' ');
-
- /*strng2 */
- mvwaddch(treescrn5, 5, 12, ' ');
-
- /*strng3 */
- mvwaddch(treescrn5, 7, 14, ' ');
- mvwaddch(treescrn5, 8, 10, ' ');
-
- /*strng4 */
- mvwaddch(treescrn5, 9, 15, ' ');
- mvwaddch(treescrn5, 10, 11, ' ');
- mvwaddch(treescrn5, 11, 7, ' ');
-
- /*strng5 */
- mvwaddch(treescrn5, 11, 17, ' ');
- mvwaddch(treescrn5, 12, 13, ' ');
-
- /* treescrn6 */
-
- overlay(treescrn, treescrn6);
-
- /*balls */
- mvwaddch(treescrn6, 6, 7, ' ');
- mvwaddch(treescrn6, 7, 18, ' ');
- mvwaddch(treescrn6, 10, 4, ' ');
- mvwaddch(treescrn6, 11, 23, ' ');
-
- /*star */
- wstandout(treescrn6);
- mvwaddch(treescrn6, 0, 12, '*');
- wstandend(treescrn6);
-
- /*strng1 */
-
- /*strng2 */
- mvwaddch(treescrn6, 5, 11, ' ');
-
- /*strng3 */
- mvwaddch(treescrn6, 7, 13, ' ');
- mvwaddch(treescrn6, 8, 9, ' ');
-
- /*strng4 */
- mvwaddch(treescrn6, 9, 14, ' ');
- mvwaddch(treescrn6, 10, 10, ' ');
- mvwaddch(treescrn6, 11, 6, ' ');
-
- /*strng5 */
- mvwaddch(treescrn6, 11, 16, ' ');
- mvwaddch(treescrn6, 12, 12, ' ');
-
- /* treescrn7 */
-
- overlay(treescrn, treescrn7);
-
- /*balls */
- mvwaddch(treescrn7, 3, 15, ' ');
- mvwaddch(treescrn7, 6, 7, ' ');
- mvwaddch(treescrn7, 7, 18, ' ');
- mvwaddch(treescrn7, 10, 4, ' ');
- mvwaddch(treescrn7, 11, 22, ' ');
-
- /*star */
- mvwaddch(treescrn7, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn7, 3, 12, ' ');
-
- /*strng2 */
- mvwaddch(treescrn7, 5, 13, ' ');
- mvwaddch(treescrn7, 6, 9, ' ');
-
- /*strng3 */
- mvwaddch(treescrn7, 7, 15, ' ');
- mvwaddch(treescrn7, 8, 11, ' ');
-
- /*strng4 */
- mvwaddch(treescrn7, 9, 16, ' ');
- mvwaddch(treescrn7, 10, 12, ' ');
- mvwaddch(treescrn7, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn7, 11, 18, ' ');
- mvwaddch(treescrn7, 12, 14, ' ');
-
- look_out(150);
- reindeer();
-
- touchwin(w_holiday);
- wrefresh(w_holiday);
- wrefresh(w_del_msg);
-
- look_out(500);
- for (loopy = 0; loopy < 100; loopy++) {
- blinkit();
- }
-
-#ifdef NOLOOP
- done(0);
-#endif
- }
- /*NOTREACHED */
-}
-
-static int
-boxit(void)
-{
- int x = 0;
-
- while (x < 20) {
- mvaddch(x, 7, '|');
- ++x;
- }
-
- x = 8;
-
- while (x < 80) {
- mvaddch(19, x, '_');
- ++x;
- }
-
- x = 0;
-
- while (x < 80) {
- mvaddch(22, x, '_');
- ++x;
- }
-
- return (0);
-}
-
-static int
-seas(void)
-{
- mvaddch(4, 1, 'S');
- mvaddch(6, 1, 'E');
- mvaddch(8, 1, 'A');
- mvaddch(10, 1, 'S');
- mvaddch(12, 1, 'O');
- mvaddch(14, 1, 'N');
- mvaddch(16, 1, '`');
- mvaddch(18, 1, 'S');
-
- return (0);
-}
-
-static int
-greet(void)
-{
- mvaddch(3, 5, 'G');
- mvaddch(5, 5, 'R');
- mvaddch(7, 5, 'E');
- mvaddch(9, 5, 'E');
- mvaddch(11, 5, 'T');
- mvaddch(13, 5, 'I');
- mvaddch(15, 5, 'N');
- mvaddch(17, 5, 'G');
- mvaddch(19, 5, 'S');
-
- return (0);
-}
-
-static int
-fromwho(void)
-{
- mvaddstr(21, 13, FROMWHO);
- return (0);
-}
-
-static int
-tree(void)
-{
- set_color(treescrn, COLOR_GREEN);
- mvwaddch(treescrn, 1, 11, (chtype) '/');
- mvwaddch(treescrn, 2, 11, (chtype) '/');
- mvwaddch(treescrn, 3, 10, (chtype) '/');
- mvwaddch(treescrn, 4, 9, (chtype) '/');
- mvwaddch(treescrn, 5, 9, (chtype) '/');
- mvwaddch(treescrn, 6, 8, (chtype) '/');
- mvwaddch(treescrn, 7, 7, (chtype) '/');
- mvwaddch(treescrn, 8, 6, (chtype) '/');
- mvwaddch(treescrn, 9, 6, (chtype) '/');
- mvwaddch(treescrn, 10, 5, (chtype) '/');
- mvwaddch(treescrn, 11, 3, (chtype) '/');
- mvwaddch(treescrn, 12, 2, (chtype) '/');
-
- mvwaddch(treescrn, 1, 13, (chtype) '\\');
- mvwaddch(treescrn, 2, 13, (chtype) '\\');
- mvwaddch(treescrn, 3, 14, (chtype) '\\');
- mvwaddch(treescrn, 4, 15, (chtype) '\\');
- mvwaddch(treescrn, 5, 15, (chtype) '\\');
- mvwaddch(treescrn, 6, 16, (chtype) '\\');
- mvwaddch(treescrn, 7, 17, (chtype) '\\');
- mvwaddch(treescrn, 8, 18, (chtype) '\\');
- mvwaddch(treescrn, 9, 18, (chtype) '\\');
- mvwaddch(treescrn, 10, 19, (chtype) '\\');
- mvwaddch(treescrn, 11, 21, (chtype) '\\');
- mvwaddch(treescrn, 12, 22, (chtype) '\\');
-
- mvwaddch(treescrn, 4, 10, (chtype) '_');
- mvwaddch(treescrn, 4, 14, (chtype) '_');
- mvwaddch(treescrn, 8, 7, (chtype) '_');
- mvwaddch(treescrn, 8, 17, (chtype) '_');
-
- mvwaddstr(treescrn, 13, 0, "//////////// \\\\\\\\\\\\\\\\\\\\\\\\");
-
- mvwaddstr(treescrn, 14, 11, "| |");
- mvwaddstr(treescrn, 15, 11, "|_|");
-
- unset_color(treescrn);
- wrefresh(treescrn);
- wrefresh(w_del_msg);
-
- return (0);
-}
-
-static int
-balls(void)
-{
- overlay(treescrn, treescrn2);
-
- set_color(treescrn2, COLOR_BLUE);
- mvwaddch(treescrn2, 3, 9, (chtype) '@');
- mvwaddch(treescrn2, 3, 15, (chtype) '@');
- mvwaddch(treescrn2, 4, 8, (chtype) '@');
- mvwaddch(treescrn2, 4, 16, (chtype) '@');
- mvwaddch(treescrn2, 5, 7, (chtype) '@');
- mvwaddch(treescrn2, 5, 17, (chtype) '@');
- mvwaddch(treescrn2, 7, 6, (chtype) '@');
- mvwaddch(treescrn2, 7, 18, (chtype) '@');
- mvwaddch(treescrn2, 8, 5, (chtype) '@');
- mvwaddch(treescrn2, 8, 19, (chtype) '@');
- mvwaddch(treescrn2, 10, 4, (chtype) '@');
- mvwaddch(treescrn2, 10, 20, (chtype) '@');
- mvwaddch(treescrn2, 11, 2, (chtype) '@');
- mvwaddch(treescrn2, 11, 22, (chtype) '@');
- mvwaddch(treescrn2, 12, 1, (chtype) '@');
- mvwaddch(treescrn2, 12, 23, (chtype) '@');
-
- unset_color(treescrn2);
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-star(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_YELLOW);
-
- mvwaddch(treescrn2, 0, 12, (chtype) '*');
- wstandend(treescrn2);
-
- unset_color(treescrn2);
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng1(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 3, 13, (chtype) '\'');
- mvwaddch(treescrn2, 3, 12, (chtype) ':');
- mvwaddch(treescrn2, 3, 11, (chtype) '.');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng2(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 5, 14, (chtype) '\'');
- mvwaddch(treescrn2, 5, 13, (chtype) ':');
- mvwaddch(treescrn2, 5, 12, (chtype) '.');
- mvwaddch(treescrn2, 5, 11, (chtype) ',');
- mvwaddch(treescrn2, 6, 10, (chtype) '\'');
- mvwaddch(treescrn2, 6, 9, (chtype) ':');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng3(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 7, 16, (chtype) '\'');
- mvwaddch(treescrn2, 7, 15, (chtype) ':');
- mvwaddch(treescrn2, 7, 14, (chtype) '.');
- mvwaddch(treescrn2, 7, 13, (chtype) ',');
- mvwaddch(treescrn2, 8, 12, (chtype) '\'');
- mvwaddch(treescrn2, 8, 11, (chtype) ':');
- mvwaddch(treescrn2, 8, 10, (chtype) '.');
- mvwaddch(treescrn2, 8, 9, (chtype) ',');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng4(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 9, 17, (chtype) '\'');
- mvwaddch(treescrn2, 9, 16, (chtype) ':');
- mvwaddch(treescrn2, 9, 15, (chtype) '.');
- mvwaddch(treescrn2, 9, 14, (chtype) ',');
- mvwaddch(treescrn2, 10, 13, (chtype) '\'');
- mvwaddch(treescrn2, 10, 12, (chtype) ':');
- mvwaddch(treescrn2, 10, 11, (chtype) '.');
- mvwaddch(treescrn2, 10, 10, (chtype) ',');
- mvwaddch(treescrn2, 11, 9, (chtype) '\'');
- mvwaddch(treescrn2, 11, 8, (chtype) ':');
- mvwaddch(treescrn2, 11, 7, (chtype) '.');
- mvwaddch(treescrn2, 11, 6, (chtype) ',');
- mvwaddch(treescrn2, 12, 5, (chtype) '\'');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng5(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 11, 19, (chtype) '\'');
- mvwaddch(treescrn2, 11, 18, (chtype) ':');
- mvwaddch(treescrn2, 11, 17, (chtype) '.');
- mvwaddch(treescrn2, 11, 16, (chtype) ',');
- mvwaddch(treescrn2, 12, 15, (chtype) '\'');
- mvwaddch(treescrn2, 12, 14, (chtype) ':');
- mvwaddch(treescrn2, 12, 13, (chtype) '.');
- mvwaddch(treescrn2, 12, 12, (chtype) ',');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- /* save a fully lit tree */
- overlay(treescrn2, treescrn);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-blinkit(void)
-{
- static int cycle;
-
- if (cycle > 4) {
- cycle = 0;
- }
-
- touchwin(treescrn8);
-
- switch (cycle) {
- case 0:
- overlay(treescrn3, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 1:
- overlay(treescrn4, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 2:
- overlay(treescrn5, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 3:
- overlay(treescrn6, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 4:
- overlay(treescrn7, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- }
- touchwin(treescrn8);
-
- /*ALL ON************************************************** */
-
- overlay(treescrn, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
-
- ++cycle;
- return (0);
-}
-
-static void
-deer_step(WINDOW *win, int y, int x)
-{
- mvwin(win, y, x);
- wrefresh(win);
- wrefresh(w_del_msg);
- look_out(5);
-}
-
-static int
-reindeer(void)
-{
- int looper;
- y_pos = 0;
-
- for (x_pos = 70; x_pos > 62; x_pos--) {
- if (x_pos < 62) {
- y_pos = 1;
- }
- for (looper = 0; looper < 4; looper++) {
- mvwaddch(dotdeer0, y_pos, x_pos, (chtype) '.');
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- werase(dotdeer0);
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- look_out(50);
- }
- }
-
- y_pos = 2;
-
- for (; x_pos > 50; x_pos--) {
- for (looper = 0; looper < 4; looper++) {
-
- if (x_pos < 56) {
- y_pos = 3;
-
- mvwaddch(stardeer0, y_pos, x_pos, (chtype) '*');
- wrefresh(stardeer0);
- wrefresh(w_del_msg);
- werase(stardeer0);
- wrefresh(stardeer0);
- wrefresh(w_del_msg);
- } else {
- mvwaddch(dotdeer0, y_pos, x_pos, (chtype) '*');
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- werase(dotdeer0);
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- }
- }
- }
-
- x_pos = 58;
-
- for (y_pos = 2; y_pos < 5; y_pos++) {
-
- touchwin(lildeer0);
- wrefresh(lildeer0);
- wrefresh(w_del_msg);
-
- for (looper = 0; looper < 4; looper++) {
- deer_step(lildeer3, y_pos, x_pos);
- deer_step(lildeer2, y_pos, x_pos);
- deer_step(lildeer1, y_pos, x_pos);
- deer_step(lildeer2, y_pos, x_pos);
- deer_step(lildeer3, y_pos, x_pos);
-
- touchwin(lildeer0);
- wrefresh(lildeer0);
- wrefresh(w_del_msg);
-
- x_pos -= 2;
- }
- }
-
- x_pos = 35;
-
- for (y_pos = 5; y_pos < 10; y_pos++) {
-
- touchwin(middeer0);
- wrefresh(middeer0);
- wrefresh(w_del_msg);
-
- for (looper = 0; looper < 2; looper++) {
- deer_step(middeer3, y_pos, x_pos);
- deer_step(middeer2, y_pos, x_pos);
- deer_step(middeer1, y_pos, x_pos);
- deer_step(middeer2, y_pos, x_pos);
- deer_step(middeer3, y_pos, x_pos);
-
- touchwin(middeer0);
- wrefresh(middeer0);
- wrefresh(w_del_msg);
-
- x_pos -= 3;
- }
- }
-
- look_out(300);
-
- y_pos = 1;
-
- for (x_pos = 8; x_pos < 16; x_pos++) {
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer1, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer0, y_pos, x_pos);
- }
-
- --x_pos;
-
- for (looper = 0; looper < 6; looper++) {
- deer_step(lookdeer4, y_pos, x_pos);
- deer_step(lookdeer3, y_pos, x_pos);
- deer_step(lookdeer2, y_pos, x_pos);
- deer_step(lookdeer1, y_pos, x_pos);
- deer_step(lookdeer2, y_pos, x_pos);
- deer_step(lookdeer3, y_pos, x_pos);
- deer_step(lookdeer4, y_pos, x_pos);
- }
-
- deer_step(lookdeer0, y_pos, x_pos);
-
- for (; y_pos < 10; y_pos++) {
- for (looper = 0; looper < 2; looper++) {
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer1, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer4, y_pos, x_pos);
- }
- deer_step(bigdeer0, y_pos, x_pos);
- }
-
- --y_pos;
-
- deer_step(lookdeer3, y_pos, x_pos);
- return (0);
-}
-
-static RETSIGTYPE
-done(int sig GCC_UNUSED)
-{
- signal(SIGINT, done);
- signal(SIGTERM, done);
-#if !defined DOS && !defined OS2
- signal(SIGHUP, done);
- signal(SIGQUIT, done);
-#endif
- move(LINES - 1, 0);
- refresh();
- endwin();
- curs_set(1);
- exit(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/ANNOUNCE b/ncurses-5.3/ANNOUNCE
deleted file mode 100644
index e39a0be..0000000
--- a/ncurses-5.3/ANNOUNCE
+++ /dev/null
@@ -1,391 +0,0 @@
-
- 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
- enhancements over BSD curses.
-
- In mid-June 1995, the maintainer of 4.4BSD curses declared that he
- considered 4.4BSD curses obsolete, and is encouraging the keepers of
- Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
- ncurses.
-
- 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
- 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.
-
- The ncurses distribution is available via anonymous FTP at the GNU
- distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses.
- It is also available at [2]ftp://invisible-island.net/ncurses.
-
- Release Notes
-
- 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:
- * 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:
- * 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:
- * 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:
- + 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:
- + 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:
- + 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:
- * All 257 of the SVr4 calls have been implemented (and are
- documented).
- * Full support for SVr4 curses features including keyboard mapping,
- color, forms-drawing with ACS characters, and automatic
- recognition of keypad and function keys.
- * An emulation of the SVr4 panels library, supporting a stack of
- windows with backing store, is included.
- * An emulation of the SVr4 menus library, supporting a uniform but
- flexible interface for menu programming, is included.
- * An emulation of the SVr4 form library, supporting data collection
- 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
- 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
- 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
- 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
- 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
- capability.
- * Ada95 and C++ bindings.
- * Support for mouse event reporting with X Window xterm and OS/2
- console windows.
- * Extended mouse support via Alessandro Rubini's gpm package.
- * 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
- 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.
- * Better cursor-movement optimization. The package now features a
- 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
- 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
- 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
- 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
- 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
- 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
- V.)
- * 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
- compiled entries in either the system terminfo directory or the
- 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
- $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
- to, but it's there.
- * 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
- have a corresponding function which may be linked (and will be
- prototype-checked) if the macro definition is disabled with
- #undef.
- * 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
- 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.
-
- The ncurses code has been tested with a wide variety of applications
- including (versions starting with those noted):
-
- cdk
- Curses Development Kit
- [3]http://invisible-island.net/cdk.
- [4]http://www.vexus.ca/CDK.html
-
- ded
- directory-editor
- [5]http://invisible-island.net/ded.
-
- dialog
- the underlying application used in Slackware's setup, and the
- basis for similar applications on GNU/Linux.
- [6]http://invisible-island.net/dialog.
-
- lynx
- the character-screen WWW browser
- [7]http://lynx.isc.org/release.
-
- Midnight Commander
- file manager
- [8]www.gnome.org/mc/.
-
- mutt
- mail utility
- [9]http://www.mutt.org.
-
- ncftp
- file-transfer utility
- [10]http://www.ncftp.com.
-
- nvi
- New vi versions 1.50 are able to use ncurses versions 1.9.7 and
- later.
- [11]http://www.bostic.com/vi/.
-
- tin
- newsreader, supporting color, MIME
- [12]http://www.tin.org.
-
- taper
- tape archive utility
- [13]http://members.iinet.net.au/~yusuf/taper/.
-
- vh-1.6
- Volks-Hypertext browser for the Jargon File
- [14]http://www.bg.debian.org/Packages/unstable/text/vh.html.
-
- as well as some that use ncurses for the terminfo support alone:
-
- minicom
- terminal emulator
- [15]http://www.pp.clinet.fi/~walker/minicom.html.
-
- vile
- vi-like-emacs
- [16]http://invisible-island.net/vile.
-
- 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
- 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.
-
- 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.
-
- Beta versions of ncurses and patches to the current release are made
- available at [23]ftp://invisible-island.net/ncurses.
-
-Future Plans
-
- * Extended-level XPG4 conformance, with internationalization
- support.
- * Ports to more systems, including DOS and Windows.
-
- We need people to help with these projects. If you are interested in
- 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.
- [24]http://earthspace.net/~esr/terminfo.
-
- 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
- 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/
- 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/
- 12. http://www.tin.org/
- 13. http://members.iinet.net.au/~yusuf/taper/
- 14. http://www.bg.debian.org/Packages/unstable/text/vh.html
- 15. http://www.pp.clinet.fi/~walker/minicom.html
- 16. http://invisible-island.net/vile/vile.html
- 17. mailto:zmbenhal@netcom.com
- 18. http://www.ccil.org/~esr/home.html
- 19. mailto:dickey@herndon4.his.com
- 20. http://www.familiepfeifer.de/Contact.aspx?Lang=en
- 21. mailto:dickey@herndon4.his.com
- 22. mailto:bug-ncurses@gnu.org
- 23. ftp://invisible-island.net/ncurses
- 24. http://earthspace.net/~esr/terminfo
- 25. http://www.cs.utk.edu/~shuford/terminal_index.html
diff --git a/ncurses-5.3/Ada95/Makefile.in b/ncurses-5.3/Ada95/Makefile.in
deleted file mode 100644
index cfce26c..0000000
--- a/ncurses-5.3/Ada95/Makefile.in
+++ /dev/null
@@ -1,68 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Juergen Pfeifer, 1996
-# Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
-#
-# Version Control
-# $Revision$
-#
-SHELL = /bin/sh
-THIS = Makefile
-
-SUBDIRS = @ADA_SUBDIRS@
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-
-all \
-libs \
-sources \
-install \
-install.libs \
-uninstall \
-uninstall.libs ::
- for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
- done
-
-clean \
-mostlyclean ::
- for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
- done
-
-distclean \
-realclean ::
- for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
- done
- rm -f Makefile
-
-install.data :
- @
diff --git a/ncurses-5.3/Ada95/README b/ncurses-5.3/Ada95/README
deleted file mode 100644
index 21e9b4c..0000000
--- a/ncurses-5.3/Ada95/README
+++ /dev/null
@@ -1,34 +0,0 @@
--------------------------------------------------------------------------------
--- 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. --
--------------------------------------------------------------------------------
-
--- 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
-
diff --git a/ncurses-5.3/Ada95/TODO b/ncurses-5.3/Ada95/TODO
deleted file mode 100644
index ece4d96..0000000
--- a/ncurses-5.3/Ada95/TODO
+++ /dev/null
@@ -1,27 +0,0 @@
--- $Id$
-
--- Intensive testing
- Perhaps the delivery of the Beta will help a bit.
-
--- Documentation
- Like most WEB pages: under continuous construction
-
--- Style cleanup
-
--- Alternate functions for procedures with out params
- Comfort purpose
-
--- Sample program
- Under continuous construction (and it's not a WEB page!!!)
-
--- Make the binding objects a shared library
- They are rather large, so it would make sense, otherwise Ada95
- would look too large, although the generated code is as compact
- as C or C++. I'll wait a bit until the GNAT people provide some
- better support to construct shared libraries.
-
--- Think about more inlining
-
--- Check for memory leaks.
- Oh I would like it so much if the GNAT guys would put an optional
- GC into their system.
diff --git a/ncurses-5.3/Ada95/gen/Makefile.in b/ncurses-5.3/Ada95/gen/Makefile.in
deleted file mode 100644
index 4ebbd00..0000000
--- a/ncurses-5.3/Ada95/gen/Makefile.in
+++ /dev/null
@@ -1,442 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Juergen Pfeifer, 1996
-# Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
-#
-# Version Control
-# $Revision$
-#
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-x = @PROG_EXT@
-
-top_srcdir = @top_srcdir@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-ADA_INCLUDE = $(DESTDIR)@ADA_INCLUDE@
-ADA_OBJECTS = $(DESTDIR)@ADA_OBJECTS@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-HOST_CC = @BUILD_CC@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @ACPPFLAGS@ \
- -DHAVE_CONFIG_H -I$(srcdir)
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(HOST_CC)
-LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS)
-
-RANLIB = @RANLIB@
-
-LIB_CURSES = -L../../lib -lncurses@LIB_SUFFIX@
-
-M4 = m4
-M4FLAGS =
-
-GENERATE = ./gen$x '@DFT_ARG_SUFFIX@'
-DEL_ADAMODE = sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
-
-GNATHTML = `type -p gnathtml || type -p gnathtml.pl`
-GNATHP = www.gnat.com
-MAIL = www.familiepfeifer.de/Contact.aspx?Lang=en
-HOMEP = www.familiepfeifer.de/juergen
-
-################################################################################
-ALIB = @cf_ada_package@
-ABASE = $(ALIB)-curses
-
-ADA_SRCDIR = ../src
-
-GEN_FILES0 = Base_Defs
-
-GEN_FILES1 = Key_Definitions \
- Old_Keys \
- Character_Attribute_Set_Rep \
- AC_Rep \
- Color_Defs \
- ACS_Map \
- Linker_Options \
- Base_Defs \
- Window_Offsets \
- Version_Info \
- Trace_Defs
-
-GEN_FILES2 = Menu_Opt_Rep \
- Menu_Base_Defs \
- Menu_Linker_Options \
- Item_Rep
-
-GEN_FILES3 = Form_Opt_Rep \
- Form_Base_Defs \
- Form_Linker_Options \
- Field_Rep
-
-GEN_FILES4 = Mouse_Base_Defs \
- Mouse_Event_Rep \
- Mouse_Events \
- Panel_Linker_Options
-
-GEN_FILES5 = Chtype_Def \
- Eti_Defs
-
-GEN_TARGETS = $(ADA_SRCDIR)/$(ABASE).ads \
- $(ADA_SRCDIR)/$(ABASE)-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)-panels.ads \
- $(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads \
- $(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads \
- $(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads \
- $(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads \
- $(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads \
- $(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads
-
-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)-panels.ads.m4 \
- $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 \
- $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 \
- $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 \
- $(srcdir)/$(ABASE)-forms-field_types.ads.m4 \
- $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
- $(srcdir)/$(ABASE)-panels-user_data.ads.m4
-
-
-all \
-libs : $(GEN_TARGETS)
- @
-
-sources:
-
-$(ADA_INCLUDE) \
-$(ADA_OBJECTS) :
- $(top_srcdir)/mkinstalldirs $@
-
-install \
-install.libs :: $(ADA_INCLUDE)
- @echo installing package $(ALIB) in $(ADA_INCLUDE)
- @$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ad?' $(ADA_SRCDIR) $(ADA_INCLUDE)
- @test $(srcdir) != ./ && $(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ad?' $(srcdir)/../src $(ADA_INCLUDE)
-
-install \
-install.libs :: $(ADA_OBJECTS)
- @echo installing package $(ALIB) in $(ADA_OBJECTS)
- @chmod a-wx $(ADA_SRCDIR)/*.ali
- @$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ali' $(ADA_SRCDIR) $(ADA_OBJECTS)
- @chmod u+x $(ADA_SRCDIR)/*.ali
-
-uninstall \
-uninstall.libs ::
- @echo removing package $(ALIB) from $(ADA_INCLUDE)
- -@cd $(ADA_INCLUDE) && rm -f $(ALIB)[-.]*
-
-uninstall \
-uninstall.libs ::
- @echo removing package $(ALIB) from $(ADA_OBJECTS)
- -@cd $(ADA_OBJECTS) && rm -f $(ALIB)[-.]*
-
-gen$x: gen.o
- @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@ $(LIB_CURSES)
-
-gen.o: $(srcdir)/gen.c
- $(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
-
-Character_Attribute_Set_Rep: gen$x
- $(GENERATE) B A >$@
-
-Base_Defs: gen$x
- $(GENERATE) B B >$@
-
-Color_Defs: gen$x
- $(GENERATE) B C >$@
-
-Key_Definitions: gen$x
- $(GENERATE) B K >$@
-
-Old_Keys: gen$x
- $(GENERATE) B O >$@
-
-ACS_Map: gen$x
- $(GENERATE) B M >$@
-
-AC_Rep: gen$x
- $(GENERATE) B R >$@
-
-Linker_Options: gen$x
- $(GENERATE) B L >$@
-
-Version_Info: gen$x
- $(GENERATE) B V >$@
-
-Window_Offsets: gen$x
- $(GENERATE) B D >$@
-
-Trace_Defs: gen$x
- $(GENERATE) B T >$@
-
-Menu_Opt_Rep: gen$x
- $(GENERATE) M R >$@
-
-Menu_Base_Defs: gen$x
- $(GENERATE) M B >$@
-
-Menu_Linker_Options: gen$x
- $(GENERATE) M L >$@
-
-Item_Rep: gen$x
- $(GENERATE) M I >$@
-
-Form_Opt_Rep: gen$x
- $(GENERATE) F R >$@
-
-Form_Base_Defs: gen$x
- $(GENERATE) F B >$@
-
-Form_Linker_Options: gen$x
- $(GENERATE) F L >$@
-
-Field_Rep: gen$x
- $(GENERATE) F I >$@
-
-Mouse_Base_Defs: gen$x
- $(GENERATE) P B >$@
-
-Mouse_Event_Rep: gen$x
- $(GENERATE) P M >$@
-
-Mouse_Events: gen$x
- $(GENERATE) B E >$@
-
-Panel_Linker_Options: gen$x
- $(GENERATE) P L >$@
-
-Chtype_Def: gen$x
- $(GENERATE) E C >$@
-
-Eti_Defs: gen$x
- $(GENERATE) E E >$@
-
-$(ADA_SRCDIR)/$(ABASE).ads: $(srcdir)/$(ABASE).ads.m4 \
- $(GEN_FILES1) $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE).ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
- $(GEN_FILES5) $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-aux.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-trace.ads: $(srcdir)/$(ABASE)-trace.ads.m4 \
- $(GEN_FILES5) $(srcdir)/normal.m4
- $(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 \
- $(srcdir)/$(ABASE)-menus.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-forms.ads: $(srcdir)/$(ABASE)-forms.ads.m4 \
- $(GEN_FILES3) $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-forms.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-mouse.ads: $(srcdir)/$(ABASE)-mouse.ads.m4 \
- $(GEN_FILES4) $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-mouse.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-panels.ads: $(srcdir)/$(ABASE)-panels.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-panels.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-menus-menu_user_data.ads: \
- $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-menus-menu_user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-menus-item_user_data.ads: \
- $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-menus-item_user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-forms-form_user_data.ads: \
- $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-forms-form_user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-forms-field_types.ads: \
- $(srcdir)/$(ABASE)-forms-field_types.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-forms-field_types.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-forms-field_user_data.ads: \
- $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-forms-field_user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-$(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads: \
- $(srcdir)/$(ABASE)-panels-user_data.ads.m4 \
- $(srcdir)/normal.m4
- $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
- $(srcdir)/$(ABASE)-panels-user_data.ads.m4 |\
- $(DEL_ADAMODE) >$@
-
-install.progs ::
-
-tags:
- ctags *.[ch]
-
-TAGS:
- etags *.[ch]
-
-mostlyclean ::
- -rm -f a.out core gen$x *.o
- -rm -f $(GEN_FILES1)
- -rm -f $(GEN_FILES2)
- -rm -f $(GEN_FILES3)
- -rm -f $(GEN_FILES4)
- -rm -f $(GEN_FILES5)
-
-clean :: mostlyclean
- -rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
-
-distclean :: clean
- rm -f Makefile
-
-realclean :: distclean
-
-HTML_DIR = ../../doc/html/ada
-
-instab.tmp : table.m4 $(GEN_SRC)
- @rm -f $@
- @for f in $(GEN_SRC) ; do \
- $(M4) $(M4FLAGS) -DM4MACRO=table.m4 $$f | $(DEL_ADAMODE) >> $@ ;\
- done;
-
-$(HTML_DIR)/table.html : instab.tmp
- @-touch $@
- @-chmod +w $@
- @echo '<!DOCTYPE HTML' > $@
- @echo 'PUBLIC "-//IETF//DTD HTML 3.0//EN">' >> $@
- @echo '<HTML>' >> $@
- @echo '<HEAD>' >> $@
- @echo '<TITLE>Correspondence between ncurses C and Ada functions</TITLE>' >>$@
- @echo '</HEAD>' >> $@
- @echo '<BODY>' >> $@
- @echo '<H1>Correspondence between ncurses C and Ada functions</H1>' >>$@
- @echo '<H2>Sorted by C function name</H2>' >>$@
- @echo '<TABLE ALIGN=CENTER BORDER>' >>$@
- @echo '<TR ALIGN=LEFT>' >>$@
- @echo '<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></TR>' >>$@
- @sort < instab.tmp >> $@
- @echo '</TABLE></BODY></HTML>' >>$@
- @rm -f instab.tmp
-
-adahtml:
- @rm -rf $(HTML_DIR)/
- @mkdir -p $(HTML_DIR)
- cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
- ln -sf ../src/*.ali .
- for f in $(GEN_SRC); do \
- g=`basename $$f .ads.m4` ;\
- $(M4) $(M4FLAGS) -DM4MACRO=html.m4 $$f | $(DEL_ADAMODE) > $$g.ads ;\
- done
- @-rm -f $(HTML_DIR)/$(ALIB)*.htm*
- $(GNATHTML) -d -f $(ALIB)*.ads
- for f in html/$(ALIB)*.htm*; do \
- a=`basename $$f` ; \
- sed -e 's/You may also.*body.*//' <$$f |\
- sed -e 's%GNAT%<A HREF="http://$(GNATHP)">GNAT</A>%g' |\
- sed -e 's%&lt;A HREF%<A HREF%g' |\
- sed -e 's%"&gt;%">%g' |\
- sed -e 's/3X/3x/g' |\
- sed -e 's/$$\([ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxz0123456789_]*:.*\)\$$/@\1@/' |\
- sed -e 's%Juergen Pfeifer%<A HREF="http://$(HOMEP)">J\&uuml;rgen Pfeifer</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
- @rm -f *.ad[sb] *.ali *.tmp
- @for f in funcs.htm main.htm ; do \
- sed -e "\%<A HREF=funcs/ .htm>\[ \]</A>%d" < html/$$f > $$f ;\
- mv $$f html/$$f ;\
- done
- @rm -f "html/funcs/ .htm"
- @cp -pdrf html/* $(HTML_DIR)/
- @rm -rf html
-
-html : adahtml $(HTML_DIR)/table.html
- @
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/Ada95/gen/gen.c b/ncurses-5.3/Ada95/gen/gen.c
deleted file mode 100644
index 7fcc311..0000000
--- a/ncurses-5.3/Ada95/gen/gen.c
+++ /dev/null
@@ -1,1437 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1996 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/*
- Version Control
- $Revision$
- --------------------------------------------------------------------------*/
-/*
- This program generates various record structures and constants from the
- ncurses header file for the Ada95 packages. Essentially it produces
- Ada95 source on stdout, which is then merged using m4 into a template
- to produce the real source.
- */
-
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-#include <assert.h>
-#include <ctype.h>
-
-#include <menu.h>
-#include <form.h>
-
-#define RES_NAME "Reserved"
-
-static const char *model = "";
-static int little_endian = 0;
-
-typedef struct {
- const char *name;
- unsigned long attr;
-} name_attribute_pair;
-
-static int find_pos (char *s, unsigned len, int *low, int *high)
-{
- unsigned int i,j;
- int l = 0;
-
- *high = -1;
- *low = 8*len;
-
- for(i=0; i < len; i++,s++)
- {
- if (*s)
- {
- for(j=0;j<8*sizeof(char);j++)
- {
- if ((( little_endian && ((*s)&0x01)) ||
- (!little_endian && ((*s)&0x80))) )
- {
- if (l > *high)
- *high = l;
- if (l < *low)
- *low = l;
- }
- l++;
- if (little_endian)
- *s >>= 1;
- else
- *s <<= 1;
- }
- }
- else
- l += 8;
- }
- return (*high >= 0 && (*low <= *high)) ? *low : -1;
-}
-
-/*
- * This helper routine generates a representation clause for a
- * record type defined in the binding.
- * We are only dealing with record types which are of 32 or 16
- * bit size, i.e. they fit into an (u)int or a (u)short.
- */
-static void
-gen_reps
-(const name_attribute_pair *nap, /* array of name_attribute_pair records */
- const char *name, /* name of the represented record type */
- int len, /* size of the record in bytes */
- int bias)
-{
- int i,n,l,cnt = 0,low,high;
- int width = strlen(RES_NAME) + 3;
- unsigned long a;
- unsigned long mask = 0;
-
- assert (nap!=NULL);
-
- for (i=0; nap[i].name != (char *)0; i++)
- {
- cnt++;
- l = strlen(nap[i].name);
- if (l>width)
- width = l;
- }
- assert (width > 0);
-
- printf(" type %s is\n",name);
- printf(" record\n");
- for (i=0; nap[i].name != (char *)0; i++)
- {
- printf(" %-*s : Boolean;\n",width,nap[i].name);
- }
- printf(" end record;\n");
- printf(" pragma Pack (%s);\n",name);
- printf(" pragma Convention (C, %s);\n\n",name);
-
- printf(" for %s use\n",name);
- printf(" record\n");
-
- for (i=0; nap[i].name != (char *)0; i++)
- {
- a = nap[i].attr;
- mask |= a;
- l = find_pos( (char *)&a,sizeof(a),&low,&high );
- if (l>=0)
- printf(" %-*s at 0 range %2d .. %2d;\n",width,nap[i].name,
- low-bias,high-bias);
- }
- i = 1; n = cnt;
- printf(" end record;\n");
- printf(" for %s'Size use %d;\n", name, 8*len);
- printf(" -- Please note: this rep. clause is generated and may be\n");
- printf(" -- different on your system.");
-}
-
-
-static void chtype_rep (const char *name, attr_t mask)
-{
- attr_t x = -1;
- attr_t t = x & mask;
- int low, high;
- int l = find_pos ((char *)&t, sizeof(t), &low, &high);
- if (l>=0)
- printf(" %-5s at 0 range %2d .. %2d;\n",name,low,high);
-}
-
-static void gen_chtype_rep(const char *name)
-{
- printf(" for %s use\n record\n",name);
- chtype_rep("Ch",A_CHARTEXT);
- chtype_rep("Color",A_COLOR);
- chtype_rep("Attr",(A_ATTRIBUTES&~A_COLOR));
- printf(" end record;\n for %s'Size use %ld;\n", name, (long)(8*sizeof(chtype)));
- printf(" -- Please note: this rep. clause is generated and may be\n");
- printf(" -- different on your system.\n");
-}
-
-
-static void mrep_rep (const char *name, void *rec)
-{
- int low, high;
- int l = find_pos((char *)rec, sizeof(MEVENT), &low, &high);
- if (l>=0)
- printf(" %-7s at 0 range %3d .. %3d;\n",name,low,high);
-}
-
-
-static void gen_mrep_rep(const char *name)
-{
- MEVENT x;
-
- printf(" for %s use\n record\n",name);
-
- memset(&x,0,sizeof(x));
- x.id = -1;
- mrep_rep("Id",&x);
-
- memset(&x,0,sizeof(x));
- x.x = -1;
- mrep_rep("X",&x);
-
- memset(&x,0,sizeof(x));
- x.y = -1;
- mrep_rep("Y",&x);
-
- memset(&x,0,sizeof(x));
- x.z = -1;
- mrep_rep("Z",&x);
-
- memset(&x,0,sizeof(x));
- x.bstate = -1;
- mrep_rep("Bstate",&x);
-
- printf(" end record;\n");
- printf(" -- Please note: this rep. clause is generated and may be\n");
- printf(" -- different on your system.\n");
-}
-
-static void gen_attr_set( const char *name )
-{
- /* All of the A_xxx symbols are defined in ncurses, but not all are nonzero
- * if "configure --enable-widec" is specified.
- */
- static const name_attribute_pair nap[] = {
-#if A_STANDOUT
- {"Stand_Out", A_STANDOUT},
-#endif
-#if A_UNDERLINE
- {"Under_Line", A_UNDERLINE},
-#endif
-#if A_REVERSE
- {"Reverse_Video", A_REVERSE},
-#endif
-#if A_BLINK
- {"Blink", A_BLINK},
-#endif
-#if A_DIM
- {"Dim_Character", A_DIM},
-#endif
-#if A_BOLD
- {"Bold_Character", A_BOLD},
-#endif
-#if A_ALTCHARSET
- {"Alternate_Character_Set", A_ALTCHARSET},
-#endif
-#if A_INVIS
- {"Invisible_Character", A_INVIS},
-#endif
-#if A_PROTECT
- {"Protected_Character", A_PROTECT},
-#endif
-#if A_HORIZONTAL
- {"Horizontal", A_HORIZONTAL},
-#endif
-#if A_LEFT
- {"Left", A_LEFT},
-#endif
-#if A_LOW
- {"Low", A_LOW},
-#endif
-#if A_RIGHT
- {"Right", A_RIGHT},
-#endif
-#if A_TOP
- {"Top", A_TOP},
-#endif
-#if A_VERTICAL
- {"Vertical", A_VERTICAL},
-#endif
- {(char *)0, 0}
- };
- chtype attr = A_ATTRIBUTES & ~A_COLOR;
- int start=-1, len=0, i, set;
- for(i=0;i<(int)(8*sizeof(chtype));i++) {
- set = attr&1;
- if (set) {
- if (start<0)
- start = i;
- if (start>=0) {
- len++;
- }
- }
- attr = attr >> 1;
- }
- gen_reps (nap, name, (len+7)/8, little_endian?start:0);
-}
-
-static void gen_trace(const char *name)
-{
- static const name_attribute_pair nap[] = {
- {"Times", TRACE_TIMES},
- {"Tputs", TRACE_TPUTS},
- {"Update", TRACE_UPDATE},
- {"Cursor_Move", TRACE_MOVE},
- {"Character_Output", TRACE_CHARPUT},
- {"Calls", TRACE_CALLS},
- {"Virtual_Puts", TRACE_VIRTPUT},
- {"Input_Events", TRACE_IEVENT},
- {"TTY_State", TRACE_BITS},
- {"Internal_Calls", TRACE_ICALLS},
- {"Character_Calls", TRACE_CCALLS},
- {"Termcap_TermInfo", TRACE_DATABASE},
- {(char *)0, 0}
- };
- gen_reps(nap,name,sizeof(int),0);
-}
-
-static void gen_menu_opt_rep(const char *name)
-{
- static const name_attribute_pair nap[] = {
-#ifdef O_ONEVALUE
- {"One_Valued", O_ONEVALUE},
-#endif
-#ifdef O_SHOWDESC
- {"Show_Descriptions", O_SHOWDESC},
-#endif
-#ifdef O_ROWMAJOR
- {"Row_Major_Order", O_ROWMAJOR},
-#endif
-#ifdef O_IGNORECASE
- {"Ignore_Case", O_IGNORECASE},
-#endif
-#ifdef O_SHOWMATCH
- {"Show_Matches", O_SHOWMATCH},
-#endif
-#ifdef O_NONCYCLIC
- {"Non_Cyclic", O_NONCYCLIC},
-#endif
- {(char *)0, 0}
- };
- gen_reps (nap, name, sizeof(int),0);
-}
-
-static void gen_item_opt_rep(const char *name)
-{
- static const name_attribute_pair nap[] = {
-#ifdef O_SELECTABLE
- {"Selectable", O_SELECTABLE},
-#endif
- {(char *)0 , 0}
- };
- gen_reps (nap, name, sizeof(int),0);
-}
-
-static void gen_form_opt_rep(const char *name)
-{
- static const name_attribute_pair nap[] = {
-#ifdef O_NL_OVERLOAD
- {"NL_Overload", O_NL_OVERLOAD},
-#endif
-#ifdef O_BS_OVERLOAD
- {"BS_Overload", O_BS_OVERLOAD},
-#endif
- {(char *)0 , 0}
- };
- gen_reps (nap, name, sizeof(int),0);
-}
-
-/*
- * Generate the representation clause for the Field_Option_Set record
- */
-static void gen_field_opt_rep(const char *name)
-{
- static const name_attribute_pair nap[] = {
-#ifdef O_VISIBLE
- {"Visible",O_VISIBLE},
-#endif
-#ifdef O_ACTIVE
- {"Active",O_ACTIVE},
-#endif
-#ifdef O_PUBLIC
- {"Public",O_PUBLIC},
-#endif
-#ifdef O_EDIT
- {"Edit",O_EDIT},
-#endif
-#ifdef O_WRAP
- {"Wrap",O_WRAP},
-#endif
-#ifdef O_BLANK
- {"Blank",O_BLANK},
-#endif
-#ifdef O_AUTOSKIP
- {"Auto_Skip",O_AUTOSKIP},
-#endif
-#ifdef O_NULLOK
- {"Null_Ok",O_NULLOK},
-#endif
-#ifdef O_PASSOK
- {"Pass_Ok",O_PASSOK},
-#endif
-#ifdef O_STATIC
- {"Static",O_STATIC},
-#endif
- {(char *)0, 0}
- };
- gen_reps (nap, name, sizeof(int),0);
-}
-
-/*
- * Generate a single key code constant definition.
- */
-static void keydef(const char *name, const char *old_name, int value, int mode)
-{
- if (mode==0) /* Generate the new name */
- printf(" %-30s : constant Special_Key_Code := 8#%3o#;\n",name,value);
- else
- { /* generate the old name, but only if it doesn't conflict with the old
- * name (Ada95 isn't case sensitive!)
- */
- const char *s = old_name; const char *t = name;
- while ( *s && *t && (toupper(*s++) == toupper(*t++)));
- if (*s || *t)
- printf(" %-16s : Special_Key_Code renames %s;\n",old_name,name);
- }
-}
-
-/*
- * Generate constants for the key codes. When called with mode==0, a
- * complete list with nice constant names in proper casing style will
- * be generated. Otherwise a list of old (i.e. C-style) names will be
- * generated, given that the name wasn't already defined in the "nice"
- * list.
- */
-static void gen_keydefs (int mode)
-{
- char buf[16];
- char obuf[16];
- int i;
-
-#ifdef KEY_CODE_YES
- keydef("Key_Code_Yes","KEY_CODE_YES",KEY_CODE_YES,mode);
-#endif
-#ifdef KEY_MIN
- keydef("Key_Min","KEY_MIN",KEY_MIN,mode);
-#endif
-#ifdef KEY_BREAK
- keydef("Key_Break","KEY_BREAK",KEY_BREAK,mode);
-#endif
-#ifdef KEY_DOWN
- keydef("Key_Cursor_Down","KEY_DOWN",KEY_DOWN,mode);
-#endif
-#ifdef KEY_UP
- keydef("Key_Cursor_Up","KEY_UP",KEY_UP,mode);
-#endif
-#ifdef KEY_LEFT
- keydef("Key_Cursor_Left","KEY_LEFT",KEY_LEFT,mode);
-#endif
-#ifdef KEY_RIGHT
- keydef("Key_Cursor_Right","KEY_RIGHT",KEY_RIGHT,mode);
-#endif
-#ifdef KEY_HOME
- keydef("Key_Home","KEY_HOME",KEY_HOME,mode);
-#endif
-#ifdef KEY_BACKSPACE
- keydef("Key_Backspace","KEY_BACKSPACE",KEY_BACKSPACE,mode);
-#endif
-#ifdef KEY_F0
- keydef("Key_F0","KEY_F0",KEY_F0,mode);
-#endif
-#ifdef KEY_F
- for(i=1;i<=24;i++)
- {
- sprintf(buf ,"Key_F%d",i);
- sprintf(obuf,"KEY_F%d",i);
- keydef(buf,obuf,KEY_F(i),mode);
- }
-#endif
-#ifdef KEY_DL
- keydef("Key_Delete_Line","KEY_DL",KEY_DL,mode);
-#endif
-#ifdef KEY_IL
- keydef("Key_Insert_Line","KEY_IL",KEY_IL,mode);
-#endif
-#ifdef KEY_DC
- keydef("Key_Delete_Char","KEY_DC",KEY_DC,mode);
-#endif
-#ifdef KEY_IC
- keydef("Key_Insert_Char","KEY_IC",KEY_IC,mode);
-#endif
-#ifdef KEY_EIC
- keydef("Key_Exit_Insert_Mode","KEY_EIC",KEY_EIC,mode);
-#endif
-#ifdef KEY_CLEAR
- keydef("Key_Clear_Screen","KEY_CLEAR",KEY_CLEAR,mode);
-#endif
-#ifdef KEY_EOS
- keydef("Key_Clear_End_Of_Screen","KEY_EOS",KEY_EOS,mode);
-#endif
-#ifdef KEY_EOL
- keydef("Key_Clear_End_Of_Line","KEY_EOL",KEY_EOL,mode);
-#endif
-#ifdef KEY_SF
- keydef("Key_Scroll_1_Forward","KEY_SF",KEY_SF,mode);
-#endif
-#ifdef KEY_SR
- keydef("Key_Scroll_1_Backward","KEY_SR",KEY_SR,mode);
-#endif
-#ifdef KEY_NPAGE
- keydef("Key_Next_Page","KEY_NPAGE",KEY_NPAGE,mode);
-#endif
-#ifdef KEY_PPAGE
- keydef("Key_Previous_Page","KEY_PPAGE",KEY_PPAGE,mode);
-#endif
-#ifdef KEY_STAB
- keydef("Key_Set_Tab","KEY_STAB",KEY_STAB,mode);
-#endif
-#ifdef KEY_CTAB
- keydef("Key_Clear_Tab","KEY_CTAB",KEY_CTAB,mode);
-#endif
-#ifdef KEY_CATAB
- keydef("Key_Clear_All_Tabs","KEY_CATAB",KEY_CATAB,mode);
-#endif
-#ifdef KEY_ENTER
- keydef("Key_Enter_Or_Send","KEY_ENTER",KEY_ENTER,mode);
-#endif
-#ifdef KEY_SRESET
- keydef("Key_Soft_Reset","KEY_SRESET",KEY_SRESET,mode);
-#endif
-#ifdef KEY_RESET
- keydef("Key_Reset","KEY_RESET",KEY_RESET,mode);
-#endif
-#ifdef KEY_PRINT
- keydef("Key_Print","KEY_PRINT",KEY_PRINT,mode);
-#endif
-#ifdef KEY_LL
- keydef("Key_Bottom","KEY_LL",KEY_LL,mode);
-#endif
-#ifdef KEY_A1
- keydef("Key_Upper_Left_Of_Keypad","KEY_A1",KEY_A1,mode);
-#endif
-#ifdef KEY_A3
- keydef("Key_Upper_Right_Of_Keypad","KEY_A3",KEY_A3,mode);
-#endif
-#ifdef KEY_B2
- keydef("Key_Center_Of_Keypad","KEY_B2",KEY_B2,mode);
-#endif
-#ifdef KEY_C1
- keydef("Key_Lower_Left_Of_Keypad","KEY_C1",KEY_C1,mode);
-#endif
-#ifdef KEY_C3
- keydef("Key_Lower_Right_Of_Keypad","KEY_C3",KEY_C3,mode);
-#endif
-#ifdef KEY_BTAB
- keydef("Key_Back_Tab","KEY_BTAB",KEY_BTAB,mode);
-#endif
-#ifdef KEY_BEG
- keydef("Key_Beginning","KEY_BEG",KEY_BEG,mode);
-#endif
-#ifdef KEY_CANCEL
- keydef("Key_Cancel","KEY_CANCEL",KEY_CANCEL,mode);
-#endif
-#ifdef KEY_CLOSE
- keydef("Key_Close","KEY_CLOSE",KEY_CLOSE,mode);
-#endif
-#ifdef KEY_COMMAND
- keydef("Key_Command","KEY_COMMAND",KEY_COMMAND,mode);
-#endif
-#ifdef KEY_COPY
- keydef("Key_Copy","KEY_COPY",KEY_COPY,mode);
-#endif
-#ifdef KEY_CREATE
- keydef("Key_Create","KEY_CREATE",KEY_CREATE,mode);
-#endif
-#ifdef KEY_END
- keydef("Key_End","KEY_END",KEY_END,mode);
-#endif
-#ifdef KEY_EXIT
- keydef("Key_Exit","KEY_EXIT",KEY_EXIT,mode);
-#endif
-#ifdef KEY_FIND
- keydef("Key_Find","KEY_FIND",KEY_FIND,mode);
-#endif
-#ifdef KEY_HELP
- keydef("Key_Help","KEY_HELP",KEY_HELP,mode);
-#endif
-#ifdef KEY_MARK
- keydef("Key_Mark","KEY_MARK",KEY_MARK,mode);
-#endif
-#ifdef KEY_MESSAGE
- keydef("Key_Message","KEY_MESSAGE",KEY_MESSAGE,mode);
-#endif
-#ifdef KEY_MOVE
- keydef("Key_Move","KEY_MOVE",KEY_MOVE,mode);
-#endif
-#ifdef KEY_NEXT
- keydef("Key_Next","KEY_NEXT",KEY_NEXT,mode);
-#endif
-#ifdef KEY_OPEN
- keydef("Key_Open","KEY_OPEN",KEY_OPEN,mode);
-#endif
-#ifdef KEY_OPTIONS
- keydef("Key_Options","KEY_OPTIONS",KEY_OPTIONS,mode);
-#endif
-#ifdef KEY_PREVIOUS
- keydef("Key_Previous","KEY_PREVIOUS",KEY_PREVIOUS,mode);
-#endif
-#ifdef KEY_REDO
- keydef("Key_Redo","KEY_REDO",KEY_REDO,mode);
-#endif
-#ifdef KEY_REFERENCE
- keydef("Key_Reference","KEY_REFERENCE",KEY_REFERENCE,mode);
-#endif
-#ifdef KEY_REFRESH
- keydef("Key_Refresh","KEY_REFRESH",KEY_REFRESH,mode);
-#endif
-#ifdef KEY_REPLACE
- keydef("Key_Replace","KEY_REPLACE",KEY_REPLACE,mode);
-#endif
-#ifdef KEY_RESTART
- keydef("Key_Restart","KEY_RESTART",KEY_RESTART,mode);
-#endif
-#ifdef KEY_RESUME
- keydef("Key_Resume","KEY_RESUME",KEY_RESUME,mode);
-#endif
-#ifdef KEY_SAVE
- keydef("Key_Save","KEY_SAVE",KEY_SAVE,mode);
-#endif
-#ifdef KEY_SBEG
- keydef("Key_Shift_Begin","KEY_SBEG",KEY_SBEG,mode);
-#endif
-#ifdef KEY_SCANCEL
- keydef("Key_Shift_Cancel","KEY_SCANCEL",KEY_SCANCEL,mode);
-#endif
-#ifdef KEY_SCOMMAND
- keydef("Key_Shift_Command","KEY_SCOMMAND",KEY_SCOMMAND,mode);
-#endif
-#ifdef KEY_SCOPY
- keydef("Key_Shift_Copy","KEY_SCOPY",KEY_SCOPY,mode);
-#endif
-#ifdef KEY_SCREATE
- keydef("Key_Shift_Create","KEY_SCREATE",KEY_SCREATE,mode);
-#endif
-#ifdef KEY_SDC
- keydef("Key_Shift_Delete_Char","KEY_SDC",KEY_SDC,mode);
-#endif
-#ifdef KEY_SDL
- keydef("Key_Shift_Delete_Line","KEY_SDL",KEY_SDL,mode);
-#endif
-#ifdef KEY_SELECT
- keydef("Key_Select","KEY_SELECT",KEY_SELECT,mode);
-#endif
-#ifdef KEY_SEND
- keydef("Key_Shift_End","KEY_SEND",KEY_SEND,mode);
-#endif
-#ifdef KEY_SEOL
- keydef("Key_Shift_Clear_End_Of_Line","KEY_SEOL",KEY_SEOL,mode);
-#endif
-#ifdef KEY_SEXIT
- keydef("Key_Shift_Exit","KEY_SEXIT",KEY_SEXIT,mode);
-#endif
-#ifdef KEY_SFIND
- keydef("Key_Shift_Find","KEY_SFIND",KEY_SFIND,mode);
-#endif
-#ifdef KEY_SHELP
- keydef("Key_Shift_Help","KEY_SHELP",KEY_SHELP,mode);
-#endif
-#ifdef KEY_SHOME
- keydef("Key_Shift_Home","KEY_SHOME",KEY_SHOME,mode);
-#endif
-#ifdef KEY_SIC
- keydef("Key_Shift_Insert_Char","KEY_SIC",KEY_SIC,mode);
-#endif
-#ifdef KEY_SLEFT
- keydef("Key_Shift_Cursor_Left","KEY_SLEFT",KEY_SLEFT,mode);
-#endif
-#ifdef KEY_SMESSAGE
- keydef("Key_Shift_Message","KEY_SMESSAGE",KEY_SMESSAGE,mode);
-#endif
-#ifdef KEY_SMOVE
- keydef("Key_Shift_Move","KEY_SMOVE",KEY_SMOVE,mode);
-#endif
-#ifdef KEY_SNEXT
- keydef("Key_Shift_Next_Page","KEY_SNEXT",KEY_SNEXT,mode);
-#endif
-#ifdef KEY_SOPTIONS
- keydef("Key_Shift_Options","KEY_SOPTIONS",KEY_SOPTIONS,mode);
-#endif
-#ifdef KEY_SPREVIOUS
- keydef("Key_Shift_Previous_Page","KEY_SPREVIOUS",KEY_SPREVIOUS,mode);
-#endif
-#ifdef KEY_SPRINT
- keydef("Key_Shift_Print","KEY_SPRINT",KEY_SPRINT,mode);
-#endif
-#ifdef KEY_SREDO
- keydef("Key_Shift_Redo","KEY_SREDO",KEY_SREDO,mode);
-#endif
-#ifdef KEY_SREPLACE
- keydef("Key_Shift_Replace","KEY_SREPLACE",KEY_SREPLACE,mode);
-#endif
-#ifdef KEY_SRIGHT
- keydef("Key_Shift_Cursor_Right","KEY_SRIGHT",KEY_SRIGHT,mode);
-#endif
-#ifdef KEY_SRSUME
- keydef("Key_Shift_Resume","KEY_SRSUME",KEY_SRSUME,mode);
-#endif
-#ifdef KEY_SSAVE
- keydef("Key_Shift_Save","KEY_SSAVE",KEY_SSAVE,mode);
-#endif
-#ifdef KEY_SSUSPEND
- keydef("Key_Shift_Suspend","KEY_SSUSPEND",KEY_SSUSPEND,mode);
-#endif
-#ifdef KEY_SUNDO
- keydef("Key_Shift_Undo","KEY_SUNDO",KEY_SUNDO,mode);
-#endif
-#ifdef KEY_SUSPEND
- keydef("Key_Suspend","KEY_SUSPEND",KEY_SUSPEND,mode);
-#endif
-#ifdef KEY_UNDO
- keydef("Key_Undo","KEY_UNDO",KEY_UNDO,mode);
-#endif
-#ifdef KEY_MOUSE
- keydef("Key_Mouse","KEY_MOUSE",KEY_MOUSE,mode);
-#endif
-#ifdef KEY_RESIZE
- keydef("Key_Resize","KEY_RESIZE",KEY_RESIZE,mode);
-#endif
-}
-
-/*
- * Generate a constant with the given name. The second parameter
- * is a reference to the ACS character in the acs_map[] array and
- * will be translated into an index.
- */
-static void acs_def (const char *name, chtype *a)
-{
- int c = a - &acs_map[0];
- printf(" %-24s : constant Character := ",name);
- if (isprint(c) && (c!='`'))
- printf("'%c';\n",c);
- else
- printf("Character'Val (%d);\n",c);
-}
-
-/*
- * Generate the constants for the ACS characters
- */
-static void gen_acs (void)
-{
-#ifdef ACS_ULCORNER
- acs_def("ACS_Upper_Left_Corner",&ACS_ULCORNER);
-#endif
-#ifdef ACS_LLCORNER
- acs_def("ACS_Lower_Left_Corner",&ACS_LLCORNER);
-#endif
-#ifdef ACS_URCORNER
- acs_def("ACS_Upper_Right_Corner",&ACS_URCORNER);
-#endif
-#ifdef ACS_LRCORNER
- acs_def("ACS_Lower_Right_Corner",&ACS_LRCORNER);
-#endif
-#ifdef ACS_LTEE
- acs_def("ACS_Left_Tee",&ACS_LTEE);
-#endif
-#ifdef ACS_RTEE
- acs_def("ACS_Right_Tee",&ACS_RTEE);
-#endif
-#ifdef ACS_BTEE
- acs_def("ACS_Bottom_Tee",&ACS_BTEE);
-#endif
-#ifdef ACS_TTEE
- acs_def("ACS_Top_Tee",&ACS_TTEE);
-#endif
-#ifdef ACS_HLINE
- acs_def("ACS_Horizontal_Line",&ACS_HLINE);
-#endif
-#ifdef ACS_VLINE
- acs_def("ACS_Vertical_Line",&ACS_VLINE);
-#endif
-#ifdef ACS_PLUS
- acs_def("ACS_Plus_Symbol",&ACS_PLUS);
-#endif
-#ifdef ACS_S1
- acs_def("ACS_Scan_Line_1",&ACS_S1);
-#endif
-#ifdef ACS_S9
- acs_def("ACS_Scan_Line_9",&ACS_S9);
-#endif
-#ifdef ACS_DIAMOND
- acs_def("ACS_Diamond",&ACS_DIAMOND);
-#endif
-#ifdef ACS_CKBOARD
- acs_def("ACS_Checker_Board",&ACS_CKBOARD);
-#endif
-#ifdef ACS_DEGREE
- acs_def("ACS_Degree",&ACS_DEGREE);
-#endif
-#ifdef ACS_PLMINUS
- acs_def("ACS_Plus_Minus",&ACS_PLMINUS);
-#endif
-#ifdef ACS_BULLET
- acs_def("ACS_Bullet",&ACS_BULLET);
-#endif
-#ifdef ACS_LARROW
- acs_def("ACS_Left_Arrow",&ACS_LARROW);
-#endif
-#ifdef ACS_RARROW
- acs_def("ACS_Right_Arrow",&ACS_RARROW);
-#endif
-#ifdef ACS_DARROW
- acs_def("ACS_Down_Arrow",&ACS_DARROW);
-#endif
-#ifdef ACS_UARROW
- acs_def("ACS_Up_Arrow",&ACS_UARROW);
-#endif
-#ifdef ACS_BOARD
- acs_def("ACS_Board_Of_Squares",&ACS_BOARD);
-#endif
-#ifdef ACS_LANTERN
- acs_def("ACS_Lantern",&ACS_LANTERN);
-#endif
-#ifdef ACS_BLOCK
- acs_def("ACS_Solid_Block",&ACS_BLOCK);
-#endif
-#ifdef ACS_S3
- acs_def("ACS_Scan_Line_3",&ACS_S3);
-#endif
-#ifdef ACS_S7
- acs_def("ACS_Scan_Line_7",&ACS_S7);
-#endif
-#ifdef ACS_LEQUAL
- acs_def("ACS_Less_Or_Equal",&ACS_LEQUAL);
-#endif
-#ifdef ACS_GEQUAL
- acs_def("ACS_Greater_Or_Equal",&ACS_GEQUAL);
-#endif
-#ifdef ACS_PI
- acs_def("ACS_PI",&ACS_PI);
-#endif
-#ifdef ACS_NEQUAL
- acs_def("ACS_Not_Equal",&ACS_NEQUAL);
-#endif
-#ifdef ACS_STERLING
- acs_def("ACS_Sterling",&ACS_STERLING);
-#endif
-}
-
-
-#define GEN_EVENT(name,value) \
- printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
- #name, value)
-
-#define GEN_MEVENT(name) \
- printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
- #name, name)
-
-static
-void gen_mouse_events(void)
-{
- mmask_t all1 = 0;
- mmask_t all2 = 0;
- mmask_t all3 = 0;
- mmask_t all4 = 0;
-
-#ifdef BUTTON1_RELEASED
- GEN_MEVENT(BUTTON1_RELEASED);
- all1 |= BUTTON1_RELEASED;
-#endif
-#ifdef BUTTON1_PRESSED
- GEN_MEVENT(BUTTON1_PRESSED);
- all1 |= BUTTON1_PRESSED;
-#endif
-#ifdef BUTTON1_CLICKED
- GEN_MEVENT(BUTTON1_CLICKED);
- all1 |= BUTTON1_CLICKED;
-#endif
-#ifdef BUTTON1_DOUBLE_CLICKED
- GEN_MEVENT(BUTTON1_DOUBLE_CLICKED);
- all1 |= BUTTON1_DOUBLE_CLICKED;
-#endif
-#ifdef BUTTON1_TRIPLE_CLICKED
- GEN_MEVENT(BUTTON1_TRIPLE_CLICKED);
- all1 |= BUTTON1_TRIPLE_CLICKED;
-#endif
-#ifdef BUTTON1_RESERVED_EVENT
- GEN_MEVENT(BUTTON1_RESERVED_EVENT);
- all1 |= BUTTON1_RESERVED_EVENT;
-#endif
-#ifdef BUTTON2_RELEASED
- GEN_MEVENT(BUTTON2_RELEASED);
- all2 |= BUTTON2_RELEASED;
-#endif
-#ifdef BUTTON2_PRESSED
- GEN_MEVENT(BUTTON2_PRESSED);
- all2 |= BUTTON2_PRESSED;
-#endif
-#ifdef BUTTON2_CLICKED
- GEN_MEVENT(BUTTON2_CLICKED);
- all2 |= BUTTON2_CLICKED;
-#endif
-#ifdef BUTTON2_DOUBLE_CLICKED
- GEN_MEVENT(BUTTON2_DOUBLE_CLICKED);
- all2 |= BUTTON2_DOUBLE_CLICKED;
-#endif
-#ifdef BUTTON2_TRIPLE_CLICKED
- GEN_MEVENT(BUTTON2_TRIPLE_CLICKED);
- all2 |= BUTTON2_TRIPLE_CLICKED;
-#endif
-#ifdef BUTTON2_RESERVED_EVENT
- GEN_MEVENT(BUTTON2_RESERVED_EVENT);
- all2 |= BUTTON2_RESERVED_EVENT;
-#endif
-#ifdef BUTTON3_RELEASED
- GEN_MEVENT(BUTTON3_RELEASED);
- all3 |= BUTTON3_RELEASED;
-#endif
-#ifdef BUTTON3_PRESSED
- GEN_MEVENT(BUTTON3_PRESSED);
- all3 |= BUTTON3_PRESSED;
-#endif
-#ifdef BUTTON3_CLICKED
- GEN_MEVENT(BUTTON3_CLICKED);
- all3 |= BUTTON3_CLICKED;
-#endif
-#ifdef BUTTON3_DOUBLE_CLICKED
- GEN_MEVENT(BUTTON3_DOUBLE_CLICKED);
- all3 |= BUTTON3_DOUBLE_CLICKED;
-#endif
-#ifdef BUTTON3_TRIPLE_CLICKED
- GEN_MEVENT(BUTTON3_TRIPLE_CLICKED);
- all3 |= BUTTON3_TRIPLE_CLICKED;
-#endif
-#ifdef BUTTON3_RESERVED_EVENT
- GEN_MEVENT(BUTTON3_RESERVED_EVENT);
- all3 |= BUTTON3_RESERVED_EVENT;
-#endif
-#ifdef BUTTON4_RELEASED
- GEN_MEVENT(BUTTON4_RELEASED);
- all4 |= BUTTON4_RELEASED;
-#endif
-#ifdef BUTTON4_PRESSED
- GEN_MEVENT(BUTTON4_PRESSED);
- all4 |= BUTTON4_PRESSED;
-#endif
-#ifdef BUTTON4_CLICKED
- GEN_MEVENT(BUTTON4_CLICKED);
- all4 |= BUTTON4_CLICKED;
-#endif
-#ifdef BUTTON4_DOUBLE_CLICKED
- GEN_MEVENT(BUTTON4_DOUBLE_CLICKED);
- all4 |= BUTTON4_DOUBLE_CLICKED;
-#endif
-#ifdef BUTTON4_TRIPLE_CLICKED
- GEN_MEVENT(BUTTON4_TRIPLE_CLICKED);
- all4 |= BUTTON4_TRIPLE_CLICKED;
-#endif
-#ifdef BUTTON4_RESERVED_EVENT
- GEN_MEVENT(BUTTON4_RESERVED_EVENT);
- all4 |= BUTTON4_RESERVED_EVENT;
-#endif
-#ifdef BUTTON_CTRL
- GEN_MEVENT(BUTTON_CTRL);
-#endif
-#ifdef BUTTON_SHIFT
- GEN_MEVENT(BUTTON_SHIFT);
-#endif
-#ifdef BUTTON_ALT
- GEN_MEVENT(BUTTON_ALT);
-#endif
-#ifdef REPORT_MOUSE_POSITION
- GEN_MEVENT(REPORT_MOUSE_POSITION);
-#endif
-#ifdef ALL_MOUSE_EVENTS
- GEN_MEVENT(ALL_MOUSE_EVENTS);
-#endif
-
-GEN_EVENT(BUTTON1_EVENTS,all1);
-GEN_EVENT(BUTTON2_EVENTS,all2);
-GEN_EVENT(BUTTON3_EVENTS,all3);
-GEN_EVENT(BUTTON4_EVENTS,all4);
-}
-
-/*
- * Output some comment lines indicating that the file is generated.
- * The name parameter is the name of the facility to be used in
- * the comment.
- */
-static void prologue(const char *name)
-{
- printf("-- %s binding.\n",name);
- printf("-- This module is generated. Please don't change it manually!\n");
- printf("-- Run the generator instead.\n-- |");
-
- printf("define(`M4_BIT_ORDER',`%s_Order_First')",
- little_endian ? "Low":"High");
-}
-
-/*
- * Write the prologue for the curses facility and make sure that
- * KEY_MIN and KEY_MAX are defined for the rest of this source.
- */
-static void basedefs (void)
-{
- prologue("curses");
-#ifndef KEY_MAX
-# define KEY_MAX 0777
-#endif
- printf("define(`M4_KEY_MAX',`8#%o#')",KEY_MAX);
-#ifndef KEY_MIN
-# define KEY_MIN 0401
-#endif
- if (KEY_MIN == 256) {
- fprintf(stderr,"Unexpected value for KEY_MIN: %d\n",KEY_MIN);
- exit(1);
- }
- printf("define(`M4_SPECIAL_FIRST',`8#%o#')",KEY_MIN - 1);
-}
-
-/*
- * Write out the comment lines for the menu facility
- */
-static void menu_basedefs (void)
-{
- prologue("menu");
-}
-
-/*
- * Write out the comment lines for the form facility
- */
-static void form_basedefs (void)
-{
- prologue("form");
-}
-
-/*
- * Write out the comment lines for the mouse facility
- */
-static void mouse_basedefs(void)
-{
- prologue("mouse");
-}
-
-/*
- * Write the definition of a single color
- */
-static void color_def (const char *name, int value)
-{
- printf(" %-16s : constant Color_Number := %d;\n",name,value);
-}
-
-#define HAVE_USE_DEFAULT_COLORS 1
-
-/*
- * 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_RED
- color_def ("Red",COLOR_RED);
-#endif
-#ifdef COLOR_GREEN
- color_def ("Green",COLOR_GREEN);
-#endif
-#ifdef COLOR_YELLOW
- color_def ("Yellow",COLOR_YELLOW);
-#endif
-#ifdef COLOR_BLUE
- color_def ("Blue",COLOR_BLUE);
-#endif
-#ifdef COLOR_MAGENTA
- color_def ("Magenta",COLOR_MAGENTA);
-#endif
-#ifdef COLOR_CYAN
- color_def ("Cyan",COLOR_CYAN);
-#endif
-#ifdef COLOR_WHITE
- color_def ("White",COLOR_WHITE);
-#endif
-}
-
-/*
- * Generate the linker options for the base facility
- */
-static void gen_linkopts (void)
-{
- printf(" pragma Linker_Options (\"-lncurses%s\");\n", model);
-}
-
-/*
- * Generate the linker options for the menu facility
- */
-static void gen_menu_linkopts (void)
-{
- printf(" pragma Linker_Options (\"-lmenu%s\");\n", model);
-}
-
-/*
- * Generate the linker options for the form facility
- */
-static void gen_form_linkopts (void)
-{
- printf(" pragma Linker_Options (\"-lform%s\");\n", model);
-}
-
-/*
- * Generate the linker options for the panel facility
- */
-static void gen_panel_linkopts (void)
-{
- printf(" pragma Linker_Options (\"-lpanel%s\");\n", model);
-}
-
-static void gen_version_info (void)
-{
- static const char* v1 =
- " NC_Major_Version : constant := %d; -- Major version of the library\n";
- static const char* v2 =
- " NC_Minor_Version : constant := %d; -- Minor version of the library\n";
- static const char* v3 =
- " NC_Version : constant String := %c%d.%d%c; -- Version of library\n";
-
- printf(v1, NCURSES_VERSION_MAJOR);
- printf(v2, NCURSES_VERSION_MINOR);
- printf(v3, '"',NCURSES_VERSION_MAJOR,NCURSES_VERSION_MINOR,'"');
-}
-
-static int
-eti_gen(char*buf, int code, const char* name, int* etimin, int* etimax)
-{
- sprintf(buf," E_%-16s : constant Eti_Error := %d;\n",name,code);
- if (code < *etimin)
- *etimin = code;
- if (code > *etimax)
- *etimax = code;
- return strlen(buf);
-}
-
-#define GEN_OFFSET(member,itype) \
- if (sizeof(((WINDOW*)0)->member)==sizeof(itype)) { \
- o = offsetof(WINDOW, member); \
- if ((o%sizeof(itype) == 0)) { \
- printf(" Offset%-*s : constant Natural := %2ld; -- %s\n", \
- 12, #member, o/sizeof(itype),#itype); \
- } \
- }
-
-static void
-gen_offsets(void)
-{
- long o;
- const char* s_bool = "";
-
- GEN_OFFSET(_maxy,short);
- GEN_OFFSET(_maxx,short);
- GEN_OFFSET(_begy,short);
- GEN_OFFSET(_begx,short);
- GEN_OFFSET(_cury,short);
- GEN_OFFSET(_curx,short);
- GEN_OFFSET(_yoffset,short);
- GEN_OFFSET(_pary,int);
- GEN_OFFSET(_parx,int);
- if (sizeof(bool) == sizeof(char)) {
- GEN_OFFSET(_notimeout,char);
- GEN_OFFSET(_clear,char);
- GEN_OFFSET(_leaveok,char);
- GEN_OFFSET(_scroll,char);
- GEN_OFFSET(_idlok,char);
- GEN_OFFSET(_idcok,char);
- GEN_OFFSET(_immed,char);
- GEN_OFFSET(_sync,char);
- GEN_OFFSET(_use_keypad,char);
- s_bool = "char";
- } else if (sizeof(bool) == sizeof(short)) {
- GEN_OFFSET(_notimeout,short);
- GEN_OFFSET(_clear,short);
- GEN_OFFSET(_leaveok,short);
- GEN_OFFSET(_scroll,short);
- GEN_OFFSET(_idlok,short);
- GEN_OFFSET(_idcok,short);
- GEN_OFFSET(_immed,short);
- GEN_OFFSET(_sync,short);
- GEN_OFFSET(_use_keypad,short);
- s_bool = "short";
- } else if (sizeof(bool) == sizeof(int)) {
- GEN_OFFSET(_notimeout,int);
- GEN_OFFSET(_clear,int);
- GEN_OFFSET(_leaveok,int);
- GEN_OFFSET(_scroll,int);
- GEN_OFFSET(_idlok,int);
- GEN_OFFSET(_idcok,int);
- GEN_OFFSET(_immed,int);
- GEN_OFFSET(_sync,int);
- GEN_OFFSET(_use_keypad,int);
- s_bool = "int";
- }
- printf(" Sizeof%-*s : constant Natural := %2ld; -- %s\n",
- 12, "_bool", (long) sizeof(bool),"bool");
- /* In ncurses _maxy and _maxx needs an offset for the "public"
- * value
- */
- printf(" Offset%-*s : constant Natural := %2d; -- %s\n",
- 12, "_XY",1,"int");
- printf("\n");
- printf(" type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n",s_bool);
-}
-
-/*
- * main() expects two arguments on the commandline, both single characters.
- * The first character denotes the facility for which we generate output.
- * Possible values are
- * B - Base
- * M - Menus
- * F - Forms
- * P - Pointer Device (Mouse)
- * E - ETI base definitions
- *
- * The second character then denotes the specific output that should be
- * generated for the selected facility.
- */
-int main(int argc, char *argv[])
-{
- int x = 0x12345678;
- char *s = (char *)&x;
-
- if (*s == 0x78)
- little_endian = 1;
-
- if (argc!=4)
- exit(1);
- model = *++argv;
-
- switch(argv[1][0])
- {
- /* ---------------------------------------------------------------*/
- case 'B': /* The Base facility */
- switch(argv[2][0])
- {
- case 'A': /* chtype translation into Ada95 record type */
- gen_attr_set("Character_Attribute_Set");
- break;
- case 'K': /* translation of keycodes */
- gen_keydefs(0);
- break;
- case 'B': /* write some initial comment lines */
- basedefs();
- break;
- case 'C': /* generate color constants */
- gen_color();
- break;
- case 'D': /* generate displacements of fields in WINDOW struct. */
- gen_offsets();
- break;
- case 'E': /* generate Mouse Event codes */
- gen_mouse_events();
- break;
- case 'M': /* generate constants for the ACS characters */
- gen_acs();
- break;
- case 'L': /* generate the Linker_Options pragma */
- gen_linkopts();
- break;
- case 'O': /* generate definitions of the old key code names */
- gen_keydefs(1);
- break;
- case 'R': /* generate representation clause for Attributed character */
- gen_chtype_rep("Attributed_Character");
- break;
- case 'V': /* generate version info */
- gen_version_info();
- break;
- case 'T': /* generate the Trace info */
- gen_trace("Trace_Attribute_Set");
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'M': /* The Menu facility */
- switch(argv[2][0])
- {
- case 'R': /* generate representation clause for Menu_Option_Set */
- gen_menu_opt_rep("Menu_Option_Set");
- break;
- case 'B': /* write some initial comment lines */
- menu_basedefs();
- break;
- case 'L': /* generate the Linker_Options pragma */
- gen_menu_linkopts();
- break;
- case 'I': /* generate representation clause for Item_Option_Set */
- gen_item_opt_rep("Item_Option_Set");
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'F': /* The Form facility */
- switch(argv[2][0])
- {
- case 'R': /* generate representation clause for Form_Option_Set */
- gen_form_opt_rep("Form_Option_Set");
- break;
- case 'B': /* write some initial comment lines */
- form_basedefs();
- break;
- case 'L': /* generate the Linker_Options pragma */
- gen_form_linkopts();
- break;
- case 'I': /* generate representation clause for Field_Option_Set */
- gen_field_opt_rep("Field_Option_Set");
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'P': /* The Pointer(=Mouse) facility */
- switch(argv[2][0]) {
- case 'B': /* write some initial comment lines */
- mouse_basedefs();
- break;
- case 'M': /* generate representation clause for Mouse_Event */
- gen_mrep_rep("Mouse_Event");
- break;
- case 'L': /* generate the Linker_Options pragma */
- gen_panel_linkopts();
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'E' : /* chtype size detection */
- switch(argv[2][0]) {
- case 'C':
- {
- const char* fmt = " type C_Chtype is new %s;\n";
- const char* afmt = " type C_AttrType is new %s;\n";
-
- if (sizeof(chtype)==sizeof(int)) {
- if (sizeof(int)==sizeof(long))
- printf(fmt,"C_ULong");
- else
- printf(fmt,"C_UInt");
- }
- else if (sizeof(chtype)==sizeof(long)) {
- printf(fmt,"C_ULong");
- }
- else
- printf("Error\n");
-
- if (sizeof(attr_t)==sizeof(int)) {
- if (sizeof(int)==sizeof(long))
- printf(afmt,"C_ULong");
- else
- printf(afmt,"C_UInt");
- }
- else if (sizeof(attr_t)==sizeof(long)) {
- printf(afmt,"C_ULong");
- }
- else
- printf("Error\n");
-
- printf("define(`CF_CURSES_OK',`%d')",OK);
- printf("define(`CF_CURSES_ERR',`%d')",ERR);
- printf("define(`CF_CURSES_TRUE',`%d')",TRUE);
- printf("define(`CF_CURSES_FALSE',`%d')",FALSE);
- }
- break;
- case 'E':
- {
- char* buf = (char*)malloc(2048);
- char* p = buf;
- int etimin = E_OK;
- int etimax = E_OK;
- if (p) {
- p += eti_gen(p, E_OK, "Ok", &etimin, &etimax);
- p += eti_gen(p, E_SYSTEM_ERROR,"System_Error", &etimin, &etimax);
- p += eti_gen(p, E_BAD_ARGUMENT, "Bad_Argument", &etimin, &etimax);
- p += eti_gen(p, E_POSTED, "Posted", &etimin, &etimax);
- p += eti_gen(p, E_CONNECTED, "Connected", &etimin, &etimax);
- p += eti_gen(p, E_BAD_STATE, "Bad_State", &etimin, &etimax);
- p += eti_gen(p, E_NO_ROOM, "No_Room", &etimin, &etimax);
- p += eti_gen(p, E_NOT_POSTED, "Not_Posted", &etimin, &etimax);
- p += eti_gen(p, E_UNKNOWN_COMMAND,
- "Unknown_Command", &etimin, &etimax);
- p += eti_gen(p, E_NO_MATCH, "No_Match", &etimin, &etimax);
- p += eti_gen(p, E_NOT_SELECTABLE,
- "Not_Selectable", &etimin, &etimax);
- p += eti_gen(p, E_NOT_CONNECTED,
- "Not_Connected", &etimin, &etimax);
- p += eti_gen(p, E_REQUEST_DENIED,
- "Request_Denied", &etimin, &etimax);
- p += eti_gen(p, E_INVALID_FIELD,
- "Invalid_Field", &etimin, &etimax);
- p += eti_gen(p, E_CURRENT,
- "Current", &etimin, &etimax);
- }
- printf(" subtype Eti_Error is C_Int range %d .. %d;\n\n",
- etimin,etimax);
- printf(buf);
- }
- break;
- default:
- break;
- }
- break;
- /* ---------------------------------------------------------------*/
- case 'V' : /* plain version dump */
- {
- switch(argv[2][0]) {
- case '1': /* major version */
-#ifdef NCURSES_VERSION_MAJOR
- printf("%d",NCURSES_VERSION_MAJOR);
-#endif
- break;
- case '2': /* minor version */
-#ifdef NCURSES_VERSION_MINOR
- printf("%d",NCURSES_VERSION_MINOR);
-#endif
- break;
- case '3': /* patch level */
-#ifdef NCURSES_VERSION_PATCH
- printf("%d",NCURSES_VERSION_PATCH);
-#endif
- break;
- default:
- break;
- }
- }
- break;
- /* ---------------------------------------------------------------*/
- default:
- break;
- }
- return 0;
-}
-
diff --git a/ncurses-5.3/Ada95/gen/html.m4 b/ncurses-5.3/Ada95/gen/html.m4
deleted file mode 100644
index 0b4254d..0000000
--- a/ncurses-5.3/Ada95/gen/html.m4
+++ /dev/null
@@ -1,11 +0,0 @@
-define(`ANCHORIDX',`0')dnl
-define(`MANPAGE',`define(`MANPG',$1)dnl
-|=====================================================================
- -- | Man page <A HREF="../man/MANPG.html">MANPG</A>
- -- |=====================================================================')dnl
-define(`ANCHOR',`define(`ANCHORIDX',incr(ANCHORIDX))dnl
-`#'1A NAME="AFU`_'ANCHORIDX"`#'2dnl
-define(`CFUNAME',`$1')define(`AFUNAME',`$2')dnl
-|')
-define(`AKA',``AKA': <A HREF="../man/MANPG.html">CFUNAME</A>')dnl
-define(`ALIAS',``AKA': $1')dnl
diff --git a/ncurses-5.3/Ada95/gen/normal.m4 b/ncurses-5.3/Ada95/gen/normal.m4
deleted file mode 100644
index f884c46..0000000
--- a/ncurses-5.3/Ada95/gen/normal.m4
+++ /dev/null
@@ -1,8 +0,0 @@
-define(`MANPAGE',`define(`MANPG',$1)dnl
-|=====================================================================
- -- | Man page MANPG
- -- |=====================================================================')dnl
-define(`ANCHOR',`define(`CFUNAME',`$1')define(`AFUNAME',`$2')'dnl
-|)dnl
-define(`AKA',``AKA': CFUNAME')dnl
-define(`ALIAS',``AKA': $1')dnl
diff --git a/ncurses-5.3/Ada95/gen/table.m4 b/ncurses-5.3/Ada95/gen/table.m4
deleted file mode 100644
index 48ed6ce..0000000
--- a/ncurses-5.3/Ada95/gen/table.m4
+++ /dev/null
@@ -1,6 +0,0 @@
-define(`ANCHORIDX',`0')dnl
-define(`MANPAGE',`define(`MANPG',$1)')dnl
-divert(-1)dnl
-define(`ANCHOR',`divert(0)define(`ANCHORIDX',incr(ANCHORIDX))dnl
-<TR><TD>$1</TD><TD><A HREF="HTMLNAME`#'AFU`_'ANCHORIDX">$2</A></TD><TD><A HREF="../man/MANPG.html">MANPG</A></TD></TR>
-divert(-1)')
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-aux.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-aux.ads.m4
deleted file mode 100644
index 8f6337e..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-aux.ads.m4
+++ /dev/null
@@ -1,105 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-aux__ads.htm')dnl
-include(M4MACRO)------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Aux --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Base_Defs')
-with System;
-with Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Unchecked_Conversion;
-
-package Terminal_Interface.Curses.Aux is
- pragma Preelaborate (Terminal_Interface.Curses.Aux);
-
- use type Interfaces.C.int;
-
- subtype C_Int is Interfaces.C.int;
- subtype C_Short is Interfaces.C.short;
- subtype C_Long_Int is Interfaces.C.long;
- subtype C_Size_T is Interfaces.C.size_t;
- subtype C_UInt is Interfaces.C.unsigned;
- subtype C_ULong is Interfaces.C.unsigned_long;
- subtype C_Char_Ptr is Interfaces.C.Strings.chars_ptr;
- type C_Void_Ptr is new System.Address;
-include(`Chtype_Def')
- -- This is how those constants are defined in ncurses. I see them also
- -- exactly like this in all ETI implementations I ever tested. So it
- -- could be that this is quite general, but please check with your curses.
- -- This is critical, because curses sometime mixes boolean returns with
- -- returning an error status.
- Curses_Ok : constant C_Int := CF_CURSES_OK;
- Curses_Err : constant C_Int := CF_CURSES_ERR;
-
- Curses_True : constant C_Int := CF_CURSES_TRUE;
- Curses_False : constant C_Int := CF_CURSES_FALSE;
-
- -- Eti_Error: type for error codes returned by the menu and form subsystem
-include(`Eti_Defs')
- procedure Eti_Exception (Code : Eti_Error);
- -- Dispatch the error code and raise the appropriate exception
- --
- --
- -- Some helpers
- function Chtype_To_AttrChar is new
- Unchecked_Conversion (Source => C_Chtype,
- Target => Attributed_Character);
- function AttrChar_To_Chtype is new
- Unchecked_Conversion (Source => Attributed_Character,
- Target => C_Chtype);
-
- function AttrChar_To_AttrType is new
- Unchecked_Conversion (Source => Attributed_Character,
- Target => C_AttrType);
-
- function AttrType_To_AttrChar is new
- Unchecked_Conversion (Source => C_AttrType,
- Target => Attributed_Character);
-
- procedure Fill_String (Cp : in chars_ptr;
- Str : out String);
- -- Fill the Str parameter with the string denoted by the chars_ptr
- -- C-Style string.
-
- function Fill_String (Cp : chars_ptr) return String;
- -- Same but as function.
-
-end Terminal_Interface.Curses.Aux;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
deleted file mode 100644
index 9c9b88a..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4
+++ /dev/null
@@ -1,239 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-field_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-
-package Terminal_Interface.Curses.Forms.Field_Types is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
- use type Interfaces.C.int;
- subtype C_Int is Interfaces.C.int;
-
- -- MANPAGE(`form_fieldtype.3x')
-
- type Field_Type is abstract tagged null record;
- -- Abstract base type for all field types. A concrete field type
- -- is an extension that adds some data elements describing formats or
- -- boundary values for the type and validation routines.
- -- For the builtin low-level fieldtypes, the validation routines are
- -- already defined by the low-level C library.
- -- The builtin types like Alpha or AlphaNumeric etc. are defined in
- -- child packages of this package. You may use one of them as example
- -- how to create you own child packages for low-level field types that
- -- you may have already written in C.
-
- type Field_Type_Access is access all Field_Type'Class;
-
- -- ANCHOR(`set_field_type()',`Set_Type')
- procedure Set_Field_Type (Fld : in Field;
- Fld_Type : in Field_Type) is abstract;
- -- AKA
- -- But: we hide the vararg mechanism of the C interface. You always
- -- have to pass a single Field_Type parameter.
-
- -- ---------------------------------------------------------------------
-
- -- MANPAGE(`form_field_validation.3x')
-
- -- ANCHOR(`field_type()',`Get_Type')
- function Get_Type (Fld : in Field) return Field_Type_Access;
- -- AKA
- -- ALIAS(`field_arg()')
- -- In Ada95 we can combine these. If you try to retrieve the field type
- -- that is not defined as extension of the abstract tagged type above,
- -- you will raise a Form_Exception.
- -- This is not inlined
-
- -- +----------------------------------------------------------------------
- -- | Private Part.
- -- | Most of this is used by the implementations of the child packages.
- -- |
-private
- type Makearg_Function is access
- function (Args : System.Address) return System.Address;
- pragma Convention (C, Makearg_Function);
-
- type Copyarg_Function is access
- function (Usr : System.Address) return System.Address;
- pragma Convention (C, Copyarg_Function);
-
- type Freearg_Function is access
- procedure (Usr : System.Address);
- pragma Convention (C, Freearg_Function);
-
- type Field_Check_Function is access
- function (Fld : Field; Usr : System.Address) return C_Int;
- pragma Convention (C, Field_Check_Function);
-
- type Char_Check_Function is access
- function (Ch : C_Int; Usr : System.Address) return C_Int;
- pragma Convention (C, Char_Check_Function);
-
- type Choice_Function is access
- function (Fld : Field; Usr : System.Address) return C_Int;
- pragma Convention (C, Choice_Function);
-
- -- +----------------------------------------------------------------------
- -- | This must be in sync with the FIELDTYPE structure in form.h
- -- |
- type Low_Level_Field_Type is
- record
- Status : Interfaces.C.short;
- Ref_Count : Interfaces.C.long;
- Left, Right : System.Address;
- Makearg : Makearg_Function;
- Copyarg : Copyarg_Function;
- Freearg : Freearg_Function;
- Fcheck : Field_Check_Function;
- Ccheck : Char_Check_Function;
- Next, Prev : Choice_Function;
- end record;
- pragma Convention (C, Low_Level_Field_Type);
- type C_Field_Type is access all Low_Level_Field_Type;
-
- Null_Field_Type : constant C_Field_Type := null;
-
- -- +----------------------------------------------------------------------
- -- | This four low-level fieldtypes are the ones associated with
- -- | fieldtypes handled by this binding. Any other low-level fieldtype
- -- | will result in a Form_Exception is function Get_Type.
- -- |
- M_Generic_Type : C_Field_Type := null;
- M_Generic_Choice : C_Field_Type := null;
- M_Builtin_Router : C_Field_Type := null;
- M_Choice_Router : C_Field_Type := null;
-
- -- Two wrapper functions to access those low-level fieldtypes defined
- -- in this package.
- function C_Builtin_Router return C_Field_Type;
- function C_Choice_Router return C_Field_Type;
-
- procedure Wrap_Builtin (Fld : Field;
- Typ : Field_Type'Class;
- Cft : C_Field_Type := C_Builtin_Router);
- -- This procedure has to be called by the Set_Field_Type implementation
- -- for builtin low-level fieldtypes to replace it by an Ada95
- -- conformant Field_Type object.
- -- The parameter Cft must be C_Builtin_Router for regular low-level
- -- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for
- -- low-level fieldtypes witch choice functions (like TYP_ENUM).
- -- Any other value will raise a Form_Exception.
-
- function Make_Arg (Args : System.Address) return System.Address;
- pragma Convention (C, Make_Arg);
- -- This is the Makearg_Function for the internal low-level types
- -- introduced by this binding.
-
- function Copy_Arg (Usr : System.Address) return System.Address;
- pragma Convention (C, Copy_Arg);
- -- This is the Copyarg_Function for the internal low-level types
- -- introduced by this binding.
-
- procedure Free_Arg (Usr : System.Address);
- pragma Convention (C, Free_Arg);
- -- This is the Freearg_Function for the internal low-level types
- -- introduced by this binding.
-
- function Field_Check_Router (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Field_Check_Router);
- -- This is the Field_Check_Function for the internal low-level types
- -- introduced to wrap the low-level types by a Field_Type derived
- -- type. It routes the call to the corresponding low-level validation
- -- function.
-
- function Char_Check_Router (Ch : C_Int;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Char_Check_Router);
- -- This is the Char_Check_Function for the internal low-level types
- -- introduced to wrap the low-level types by a Field_Type derived
- -- type. It routes the call to the corresponding low-level validation
- -- function.
-
- function Next_Router (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Next_Router);
- -- This is the Choice_Function for the internal low-level types
- -- introduced to wrap the low-level types by a Field_Type derived
- -- type. It routes the call to the corresponding low-level next_choice
- -- function.
-
- function Prev_Router (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Prev_Router);
- -- This is the Choice_Function for the internal low-level types
- -- introduced to wrap the low-level types by a Field_Type derived
- -- type. It routes the call to the corresponding low-level prev_choice
- -- function.
-
- -- This is the Argument structure maintained by all low-level field types
- -- introduced by this binding.
- type Argument is record
- Typ : Field_Type_Access; -- the Field_Type creating this record
- Usr : System.Address; -- original arg for builtin low-level types
- Cft : C_Field_Type; -- the original low-level type
- end record;
- type Argument_Access is access all Argument;
-
- -- +----------------------------------------------------------------------
- -- |
- -- | Some Imports of libform routines to deal with low-level fieldtypes.
- -- |
- function New_Fieldtype (Fcheck : Field_Check_Function;
- Ccheck : Char_Check_Function)
- return C_Field_Type;
- pragma Import (C, New_Fieldtype, "new_fieldtype");
-
- function Set_Fieldtype_Arg (Cft : C_Field_Type;
- Mak : Makearg_Function := Make_Arg'Access;
- Cop : Copyarg_Function := Copy_Arg'Access;
- Fre : Freearg_Function := Free_Arg'Access)
- return C_Int;
- pragma Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
-
- function Set_Fieldtype_Choice (Cft : C_Field_Type;
- Next, Prev : Choice_Function)
- return C_Int;
- pragma Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
-
-end Terminal_Interface.Curses.Forms.Field_Types;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
deleted file mode 100644
index e4043a2..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4
+++ /dev/null
@@ -1,71 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-field_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access User;
-package Terminal_Interface.Curses.Forms.Field_User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_User_Data);
-
- -- MANPAGE(`form_field_userptr.3x')
-
- -- ANCHOR(`set_field_userptr',`Set_User_Data')
- procedure Set_User_Data (Fld : in Field;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`field_userptr',`Get_User_Data')
- procedure Get_User_Data (Fld : in Field;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`field_userptr',`Get_User_Data')
- function Get_User_Data (Fld : in Field) return User_Access;
- -- AKA
- -- Sama as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Forms.Field_User_Data;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
deleted file mode 100644
index 6895793..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4
+++ /dev/null
@@ -1,71 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-form_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Form_User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access User;
-package Terminal_Interface.Curses.Forms.Form_User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Form_User_Data);
-
- -- MANPAGE(`form_userptr.3x')
-
- -- ANCHOR(`set_form_userptr',`Set_User_Data')
- procedure Set_User_Data (Frm : in Form;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`form_userptr',`Get_User_Data')
- procedure Get_User_Data (Frm : in Form;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`form_userptr',`Get_User_Data')
- function Get_User_Data (Frm : in Form) return User_Access;
- -- AKA
- -- Same as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Forms.Form_User_Data;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms.ads.m4
deleted file mode 100644
index 7c95ca0..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-forms.ads.m4
+++ /dev/null
@@ -1,700 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Form --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Form_Base_Defs')
-with System;
-with Ada.Characters.Latin_1;
-
-package Terminal_Interface.Curses.Forms is
- pragma Preelaborate (Terminal_Interface.Curses.Forms);
-include(`Form_Linker_Options')dnl
-include(`Linker_Options')
- Space : Character renames Ada.Characters.Latin_1.Space;
-
- type Field is private;
- type Form is private;
-
- Null_Field : constant Field;
- Null_Form : constant Form;
-
- type Field_Justification is (None,
- Left,
- Center,
- Right);
-
- pragma Warnings (Off);
-include(`Field_Rep')Dnl
-
- pragma Warnings (On);
-
- function Default_Field_Options return Field_Option_Set;
- -- The initial defaults for the field options.
- pragma Inline (Default_Field_Options);
-
- pragma Warnings (Off);
-include(`Form_Opt_Rep')Dnl
-
- pragma Warnings (On);
-
- function Default_Form_Options return Form_Option_Set;
- -- The initial defaults for the form options.
- pragma Inline (Default_Form_Options);
-
- type Buffer_Number is new Natural;
-
- type Field_Array is array (Positive range <>) of aliased Field;
- pragma Convention (C, Field_Array);
-
- type Field_Array_Access is access Field_Array;
-
- procedure Free (FA : in out Field_Array_Access;
- Free_Fields : in Boolean := False);
- -- Release the memory for an allocated field array
- -- If Free_Fields is True, call Delete() for all the fields in
- -- the array.
-
- subtype Form_Request_Code is Key_Code range (Key_Max + 1) .. (Key_Max + 57);
-
- -- The prefix F_ stands for "Form Request"
- F_Next_Page : constant Form_Request_Code := Key_Max + 1;
- F_Previous_Page : constant Form_Request_Code := Key_Max + 2;
- F_First_Page : constant Form_Request_Code := Key_Max + 3;
- F_Last_Page : constant Form_Request_Code := Key_Max + 4;
-
- F_Next_Field : constant Form_Request_Code := Key_Max + 5;
- F_Previous_Field : constant Form_Request_Code := Key_Max + 6;
- F_First_Field : constant Form_Request_Code := Key_Max + 7;
- F_Last_Field : constant Form_Request_Code := Key_Max + 8;
- F_Sorted_Next_Field : constant Form_Request_Code := Key_Max + 9;
- F_Sorted_Previous_Field : constant Form_Request_Code := Key_Max + 10;
- F_Sorted_First_Field : constant Form_Request_Code := Key_Max + 11;
- F_Sorted_Last_Field : constant Form_Request_Code := Key_Max + 12;
- F_Left_Field : constant Form_Request_Code := Key_Max + 13;
- F_Right_Field : constant Form_Request_Code := Key_Max + 14;
- F_Up_Field : constant Form_Request_Code := Key_Max + 15;
- F_Down_Field : constant Form_Request_Code := Key_Max + 16;
-
- F_Next_Char : constant Form_Request_Code := Key_Max + 17;
- F_Previous_Char : constant Form_Request_Code := Key_Max + 18;
- F_Next_Line : constant Form_Request_Code := Key_Max + 19;
- F_Previous_Line : constant Form_Request_Code := Key_Max + 20;
- F_Next_Word : constant Form_Request_Code := Key_Max + 21;
- F_Previous_Word : constant Form_Request_Code := Key_Max + 22;
- F_Begin_Field : constant Form_Request_Code := Key_Max + 23;
- F_End_Field : constant Form_Request_Code := Key_Max + 24;
- F_Begin_Line : constant Form_Request_Code := Key_Max + 25;
- F_End_Line : constant Form_Request_Code := Key_Max + 26;
- F_Left_Char : constant Form_Request_Code := Key_Max + 27;
- F_Right_Char : constant Form_Request_Code := Key_Max + 28;
- F_Up_Char : constant Form_Request_Code := Key_Max + 29;
- F_Down_Char : constant Form_Request_Code := Key_Max + 30;
-
- F_New_Line : constant Form_Request_Code := Key_Max + 31;
- F_Insert_Char : constant Form_Request_Code := Key_Max + 32;
- F_Insert_Line : constant Form_Request_Code := Key_Max + 33;
- F_Delete_Char : constant Form_Request_Code := Key_Max + 34;
- F_Delete_Previous : constant Form_Request_Code := Key_Max + 35;
- F_Delete_Line : constant Form_Request_Code := Key_Max + 36;
- F_Delete_Word : constant Form_Request_Code := Key_Max + 37;
- F_Clear_EOL : constant Form_Request_Code := Key_Max + 38;
- F_Clear_EOF : constant Form_Request_Code := Key_Max + 39;
- F_Clear_Field : constant Form_Request_Code := Key_Max + 40;
- F_Overlay_Mode : constant Form_Request_Code := Key_Max + 41;
- F_Insert_Mode : constant Form_Request_Code := Key_Max + 42;
-
- -- Vertical Scrolling
- F_ScrollForward_Line : constant Form_Request_Code := Key_Max + 43;
- F_ScrollBackward_Line : constant Form_Request_Code := Key_Max + 44;
- F_ScrollForward_Page : constant Form_Request_Code := Key_Max + 45;
- F_ScrollBackward_Page : constant Form_Request_Code := Key_Max + 46;
- F_ScrollForward_HalfPage : constant Form_Request_Code := Key_Max + 47;
- F_ScrollBackward_HalfPage : constant Form_Request_Code := Key_Max + 48;
-
- -- Horizontal Scrolling
- F_HScrollForward_Char : constant Form_Request_Code := Key_Max + 49;
- F_HScrollBackward_Char : constant Form_Request_Code := Key_Max + 50;
- F_HScrollForward_Line : constant Form_Request_Code := Key_Max + 51;
- F_HScrollBackward_Line : constant Form_Request_Code := Key_Max + 52;
- F_HScrollForward_HalfLine : constant Form_Request_Code := Key_Max + 53;
- F_HScrollBackward_HalfLine : constant Form_Request_Code := Key_Max + 54;
-
- F_Validate_Field : constant Form_Request_Code := Key_Max + 55;
- F_Next_Choice : constant Form_Request_Code := Key_Max + 56;
- F_Previous_Choice : constant Form_Request_Code := Key_Max + 57;
-
- -- For those who like the old 'C' style request names
- REQ_NEXT_PAGE : Form_Request_Code renames F_Next_Page;
- REQ_PREV_PAGE : Form_Request_Code renames F_Previous_Page;
- REQ_FIRST_PAGE : Form_Request_Code renames F_First_Page;
- REQ_LAST_PAGE : Form_Request_Code renames F_Last_Page;
-
- REQ_NEXT_FIELD : Form_Request_Code renames F_Next_Field;
- REQ_PREV_FIELD : Form_Request_Code renames F_Previous_Field;
- REQ_FIRST_FIELD : Form_Request_Code renames F_First_Field;
- REQ_LAST_FIELD : Form_Request_Code renames F_Last_Field;
- REQ_SNEXT_FIELD : Form_Request_Code renames F_Sorted_Next_Field;
- REQ_SPREV_FIELD : Form_Request_Code renames F_Sorted_Previous_Field;
- REQ_SFIRST_FIELD : Form_Request_Code renames F_Sorted_First_Field;
- REQ_SLAST_FIELD : Form_Request_Code renames F_Sorted_Last_Field;
- REQ_LEFT_FIELD : Form_Request_Code renames F_Left_Field;
- REQ_RIGHT_FIELD : Form_Request_Code renames F_Right_Field;
- REQ_UP_FIELD : Form_Request_Code renames F_Up_Field;
- REQ_DOWN_FIELD : Form_Request_Code renames F_Down_Field;
-
- REQ_NEXT_CHAR : Form_Request_Code renames F_Next_Char;
- REQ_PREV_CHAR : Form_Request_Code renames F_Previous_Char;
- REQ_NEXT_LINE : Form_Request_Code renames F_Next_Line;
- REQ_PREV_LINE : Form_Request_Code renames F_Previous_Line;
- REQ_NEXT_WORD : Form_Request_Code renames F_Next_Word;
- REQ_PREV_WORD : Form_Request_Code renames F_Previous_Word;
- REQ_BEG_FIELD : Form_Request_Code renames F_Begin_Field;
- REQ_END_FIELD : Form_Request_Code renames F_End_Field;
- REQ_BEG_LINE : Form_Request_Code renames F_Begin_Line;
- REQ_END_LINE : Form_Request_Code renames F_End_Line;
- REQ_LEFT_CHAR : Form_Request_Code renames F_Left_Char;
- REQ_RIGHT_CHAR : Form_Request_Code renames F_Right_Char;
- REQ_UP_CHAR : Form_Request_Code renames F_Up_Char;
- REQ_DOWN_CHAR : Form_Request_Code renames F_Down_Char;
-
- REQ_NEW_LINE : Form_Request_Code renames F_New_Line;
- REQ_INS_CHAR : Form_Request_Code renames F_Insert_Char;
- REQ_INS_LINE : Form_Request_Code renames F_Insert_Line;
- REQ_DEL_CHAR : Form_Request_Code renames F_Delete_Char;
- REQ_DEL_PREV : Form_Request_Code renames F_Delete_Previous;
- REQ_DEL_LINE : Form_Request_Code renames F_Delete_Line;
- REQ_DEL_WORD : Form_Request_Code renames F_Delete_Word;
- REQ_CLR_EOL : Form_Request_Code renames F_Clear_EOL;
- REQ_CLR_EOF : Form_Request_Code renames F_Clear_EOF;
- REQ_CLR_FIELD : Form_Request_Code renames F_Clear_Field;
- REQ_OVL_MODE : Form_Request_Code renames F_Overlay_Mode;
- REQ_INS_MODE : Form_Request_Code renames F_Insert_Mode;
-
- REQ_SCR_FLINE : Form_Request_Code renames F_ScrollForward_Line;
- REQ_SCR_BLINE : Form_Request_Code renames F_ScrollBackward_Line;
- REQ_SCR_FPAGE : Form_Request_Code renames F_ScrollForward_Page;
- REQ_SCR_BPAGE : Form_Request_Code renames F_ScrollBackward_Page;
- REQ_SCR_FHPAGE : Form_Request_Code renames F_ScrollForward_HalfPage;
- REQ_SCR_BHPAGE : Form_Request_Code renames F_ScrollBackward_HalfPage;
-
- REQ_SCR_FCHAR : Form_Request_Code renames F_HScrollForward_Char;
- REQ_SCR_BCHAR : Form_Request_Code renames F_HScrollBackward_Char;
- REQ_SCR_HFLINE : Form_Request_Code renames F_HScrollForward_Line;
- REQ_SCR_HBLINE : Form_Request_Code renames F_HScrollBackward_Line;
- REQ_SCR_HFHALF : Form_Request_Code renames F_HScrollForward_HalfLine;
- REQ_SCR_HBHALF : Form_Request_Code renames F_HScrollBackward_HalfLine;
-
- REQ_VALIDATION : Form_Request_Code renames F_Validate_Field;
- REQ_NEXT_CHOICE : Form_Request_Code renames F_Next_Choice;
- REQ_PREV_CHOICE : Form_Request_Code renames F_Previous_Choice;
-
-
- procedure Request_Name (Key : in Form_Request_Code;
- Name : out String);
-
- function Request_Name (Key : Form_Request_Code) return String;
- -- Same as function
- pragma Inline (Request_Name);
-
- ------------------
- -- Exceptions --
- ------------------
- Form_Exception : exception;
-
- -- MANPAGE(`form_field_new.3x')
-
- -- ANCHOR(`new_field()',`Create')
- function Create (Height : Line_Count;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0;
- More_Buffers : Buffer_Number := Buffer_Number'First)
- return Field;
- -- AKA
- -- An overloaded Create is defined later. Pragma Inline appears there.
-
- -- ANCHOR(`new_field()',`New_Field')
- function New_Field (Height : Line_Count;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0;
- More_Buffers : Buffer_Number := Buffer_Number'First)
- return Field renames Create;
- -- AKA
- pragma Inline (New_Field);
-
- -- ANCHOR(`free_field()',`Delete')
- procedure Delete (Fld : in out Field);
- -- AKA
- -- Reset Fld to Null_Field
- -- An overloaded Delete is defined later. Pragma Inline appears there.
-
- -- ANCHOR(`dup_field()',`Duplicate')
- function Duplicate (Fld : Field;
- Top : Line_Position;
- Left : Column_Position) return Field;
- -- AKA
- pragma Inline (Duplicate);
-
- -- ANCHOR(`link_field()',`Link')
- function Link (Fld : Field;
- Top : Line_Position;
- Left : Column_Position) return Field;
- -- AKA
- pragma Inline (Link);
-
- -- MANPAGE(`form_field_just.3x')
-
- -- ANCHOR(`set_field_just()',`Set_Justification')
- procedure Set_Justification (Fld : in Field;
- Just : in Field_Justification := None);
- -- AKA
- pragma Inline (Set_Justification);
-
- -- ANCHOR(`field_just()',`Get_Justification')
- function Get_Justification (Fld : Field) return Field_Justification;
- -- AKA
- pragma Inline (Get_Justification);
-
- -- MANPAGE(`form_field_buffer.3x')
-
- -- ANCHOR(`set_field_buffer()',`Set_Buffer')
- procedure Set_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First;
- Str : in String);
- -- AKA
- -- Not inlined
-
- -- ANCHOR(`field_buffer()',`Get_Buffer')
- procedure Get_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First;
- Str : out String);
- -- AKA
-
- function Get_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First) return String;
- -- AKA
- -- Same but as function
- pragma Inline (Get_Buffer);
-
- -- ANCHOR(`set_field_status()',`Set_Status')
- procedure Set_Status (Fld : in Field;
- Status : in Boolean := True);
- -- AKA
- pragma Inline (Set_Status);
-
- -- ANCHOR(`field_status()',`Changed')
- function Changed (Fld : Field) return Boolean;
- -- AKA
- pragma Inline (Changed);
-
- -- ANCHOR(`set_field_max()',`Set_Maximum_Size')
- procedure Set_Maximum_Size (Fld : in Field;
- Max : in Natural := 0);
- -- AKA
- pragma Inline (Set_Maximum_Size);
-
- -- MANPAGE(`form_field_opts.3x')
-
- -- ANCHOR(`set_field_opts()',`Set_Options')
- procedure Set_Options (Fld : in Field;
- Options : in Field_Option_Set);
- -- AKA
- -- An overloaded version is defined later. Pragma Inline appears there
-
- -- ANCHOR(`field_opts_on()',`Switch_Options')
- procedure Switch_Options (Fld : in Field;
- Options : in Field_Option_Set;
- On : Boolean := True);
- -- AKA
- -- ALIAS(`field_opts_off()')
- -- An overloaded version is defined later. Pragma Inline appears there
-
- -- ANCHOR(`field_opts()',`Get_Options')
- procedure Get_Options (Fld : in Field;
- Options : out Field_Option_Set);
- -- AKA
-
- -- ANCHOR(`field_opts()',`Get_Options')
- function Get_Options (Fld : Field := Null_Field)
- return Field_Option_Set;
- -- AKA
- -- An overloaded version is defined later. Pragma Inline appears there
-
- -- MANPAGE(`form_field_attributes.3x')
-
- -- ANCHOR(`set_field_fore()',`Set_Foreground')
- procedure Set_Foreground
- (Fld : in Field;
- Fore : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Foreground);
-
- -- ANCHOR(`field_fore()',`Foreground')
- procedure Foreground (Fld : in Field;
- Fore : out Character_Attribute_Set);
- -- AKA
-
- -- ANCHOR(`field_fore()',`Foreground')
- procedure Foreground (Fld : in Field;
- Fore : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Foreground);
-
- -- ANCHOR(`set_field_back()',`Set_Background')
- procedure Set_Background
- (Fld : in Field;
- Back : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Background);
-
- -- ANCHOR(`field_back()',`Background')
- procedure Background (Fld : in Field;
- Back : out Character_Attribute_Set);
- -- AKA
-
- -- ANCHOR(`field_back()',`Background')
- procedure Background (Fld : in Field;
- Back : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Background);
-
- -- ANCHOR(`set_field_pad()',`Set_Pad_Character')
- procedure Set_Pad_Character (Fld : in Field;
- Pad : in Character := Space);
- -- AKA
- pragma Inline (Set_Pad_Character);
-
- -- ANCHOR(`field_pad()',`Pad_Character')
- procedure Pad_Character (Fld : in Field;
- Pad : out Character);
- -- AKA
- pragma Inline (Pad_Character);
-
- -- MANPAGE(`form_field_info.3x')
-
- -- ANCHOR(`field_info()',`Info')
- procedure Info (Fld : in Field;
- Lines : out Line_Count;
- Columns : out Column_Count;
- First_Row : out Line_Position;
- First_Column : out Column_Position;
- Off_Screen : out Natural;
- Additional_Buffers : out Buffer_Number);
- -- AKA
- pragma Inline (Info);
-
- -- ANCHOR(`dynamic_field_info()',`Dynamic_Info')
- procedure Dynamic_Info (Fld : in Field;
- Lines : out Line_Count;
- Columns : out Column_Count;
- Max : out Natural);
- -- AKA
- pragma Inline (Dynamic_Info);
-
- -- MANPAGE(`form_win.3x')
-
- -- ANCHOR(`set_form_win()',`Set_Window')
- procedure Set_Window (Frm : in Form;
- Win : in Window);
- -- AKA
- pragma Inline (Set_Window);
-
- -- ANCHOR(`form_win()',`Get_Window')
- function Get_Window (Frm : Form) return Window;
- -- AKA
- pragma Inline (Get_Window);
-
- -- ANCHOR(`set_form_sub()',`Set_Sub_Window')
- procedure Set_Sub_Window (Frm : in Form;
- Win : in Window);
- -- AKA
- pragma Inline (Set_Sub_Window);
-
- -- ANCHOR(`form_sub()',`Get_Sub_Window')
- function Get_Sub_Window (Frm : Form) return Window;
- -- AKA
- pragma Inline (Get_Sub_Window);
-
- -- ANCHOR(`scale_form()',`Scale')
- procedure Scale (Frm : in Form;
- Lines : out Line_Count;
- Columns : out Column_Count);
- -- AKA
- pragma Inline (Scale);
-
- -- MANPAGE(`form_hook.3x')
-
- type Form_Hook_Function is access procedure (Frm : in Form);
- pragma Convention (C, Form_Hook_Function);
-
- -- ANCHOR(`set_field_init()',`Set_Field_Init_Hook')
- procedure Set_Field_Init_Hook (Frm : in Form;
- Proc : in Form_Hook_Function);
- -- AKA
- pragma Inline (Set_Field_Init_Hook);
-
- -- ANCHOR(`set_field_term()',`Set_Field_Term_Hook')
- procedure Set_Field_Term_Hook (Frm : in Form;
- Proc : in Form_Hook_Function);
- -- AKA
- pragma Inline (Set_Field_Term_Hook);
-
- -- ANCHOR(`set_form_init()',`Set_Form_Init_Hook')
- procedure Set_Form_Init_Hook (Frm : in Form;
- Proc : in Form_Hook_Function);
- -- AKA
- pragma Inline (Set_Form_Init_Hook);
-
- -- ANCHOR(`set_form_term()',`Set_Form_Term_Hook')
- procedure Set_Form_Term_Hook (Frm : in Form;
- Proc : in Form_Hook_Function);
- -- AKA
- pragma Inline (Set_Form_Term_Hook);
-
- -- ANCHOR(`field_init()',`Get_Field_Init_Hook')
- function Get_Field_Init_Hook (Frm : Form) return Form_Hook_Function;
- -- AKA
- pragma Import (C, Get_Field_Init_Hook, "field_init");
-
- -- ANCHOR(`field_term()',`Get_Field_Term_Hook')
- function Get_Field_Term_Hook (Frm : Form) return Form_Hook_Function;
- -- AKA
- pragma Import (C, Get_Field_Term_Hook, "field_term");
-
- -- ANCHOR(`form_init()',`Get_Form_Init_Hook')
- function Get_Form_Init_Hook (Frm : Form) return Form_Hook_Function;
- -- AKA
- pragma Import (C, Get_Form_Init_Hook, "form_init");
-
- -- ANCHOR(`form_term()',`Get_Form_Term_Hook')
- function Get_Form_Term_Hook (Frm : Form) return Form_Hook_Function;
- -- AKA
- pragma Import (C, Get_Form_Term_Hook, "form_term");
-
- -- MANPAGE(`form_field.3x')
-
- -- ANCHOR(`set_form_fields()',`Redefine')
- procedure Redefine (Frm : in Form;
- Flds : in Field_Array_Access);
- -- AKA
- pragma Inline (Redefine);
-
- -- ANCHOR(`set_form_fields()',`Set_Fields')
- procedure Set_Fields (Frm : in Form;
- Flds : in Field_Array_Access) renames Redefine;
- -- AKA
- pragma Inline (Set_Fields);
-
- -- ANCHOR(`form_fields()',`Fields')
- function Fields (Frm : Form;
- Index : Positive) return Field;
- -- AKA
- pragma Inline (Fields);
-
- -- ANCHOR(`field_count()',`Field_Count')
- function Field_Count (Frm : Form) return Natural;
- -- AKA
- pragma Inline (Field_Count);
-
- -- ANCHOR(`move_field()',`Move')
- procedure Move (Fld : in Field;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move);
-
- -- MANPAGE(`form_new.3x')
-
- -- ANCHOR(`new_form()',`Create')
- function Create (Fields : Field_Array_Access) return Form;
- -- AKA
- pragma Inline (Create);
-
- -- ANCHOR(`new_form()',`New_Form')
- function New_Form (Fields : Field_Array_Access) return Form
- renames Create;
- -- AKA
- pragma Inline (New_Form);
-
- -- ANCHOR(`free_form()',`Delete')
- procedure Delete (Frm : in out Form);
- -- AKA
- -- Reset Frm to Null_Form
- pragma Inline (Delete);
-
- -- MANPAGE(`form_opts.3x')
-
- -- ANCHOR(`set_form_opts()',`Set_Options')
- procedure Set_Options (Frm : in Form;
- Options : in Form_Option_Set);
- -- AKA
- pragma Inline (Set_Options);
-
- -- ANCHOR(`form_opts_on()',`Switch_Options')
- procedure Switch_Options (Frm : in Form;
- Options : in Form_Option_Set;
- On : Boolean := True);
- -- AKA
- -- ALIAS(`form_opts_off()')
- pragma Inline (Switch_Options);
-
- -- ANCHOR(`form_opts()',`Get_Options')
- procedure Get_Options (Frm : in Form;
- Options : out Form_Option_Set);
- -- AKA
-
- -- ANCHOR(`form_opts()',`Get_Options')
- function Get_Options (Frm : Form := Null_Form) return Form_Option_Set;
- -- AKA
- pragma Inline (Get_Options);
-
- -- MANPAGE(`form_post.3x')
-
- -- ANCHOR(`post_form()',`Post')
- procedure Post (Frm : in Form;
- Post : in Boolean := True);
- -- AKA
- -- ALIAS(`unpost_form()')
- pragma Inline (Post);
-
- -- MANPAGE(`form_cursor.3x')
-
- -- ANCHOR(`pos_form_cursor()',`Position_Cursor')
- procedure Position_Cursor (Frm : Form);
- -- AKA
- pragma Inline (Position_Cursor);
-
- -- MANPAGE(`form_data.3x')
-
- -- ANCHOR(`data_ahead()',`Data_Ahead')
- function Data_Ahead (Frm : Form) return Boolean;
- -- AKA
- pragma Inline (Data_Ahead);
-
- -- ANCHOR(`data_behind()',`Data_Behind')
- function Data_Behind (Frm : Form) return Boolean;
- -- AKA
- pragma Inline (Data_Behind);
-
- -- MANPAGE(`form_driver.3x')
-
- type Driver_Result is (Form_Ok,
- Request_Denied,
- Unknown_Request,
- Invalid_Field);
-
- -- ANCHOR(`form_driver()',`Driver')
- function Driver (Frm : Form;
- Key : Key_Code) return Driver_Result;
- -- AKA
- -- Driver not inlined
-
- -- MANPAGE(`form_page.3x')
-
- type Page_Number is new Natural;
-
- -- ANCHOR(`set_current_field()',`Set_Current')
- procedure Set_Current (Frm : in Form;
- Fld : in Field);
- -- AKA
- pragma Inline (Set_Current);
-
- -- ANCHOR(`current_field()',`Current')
- function Current (Frm : in Form) return Field;
- -- AKA
- pragma Inline (Current);
-
- -- ANCHOR(`set_form_page()',`Set_Page')
- procedure Set_Page (Frm : in Form;
- Page : in Page_Number := Page_Number'First);
- -- AKA
- pragma Inline (Set_Page);
-
- -- ANCHOR(`form_page()',`Page')
- function Page (Frm : Form) return Page_Number;
- -- AKA
- pragma Inline (Page);
-
- -- ANCHOR(`field_index()',`Get_Index')
- function Get_Index (Fld : Field) return Positive;
- -- AKA
- -- Please note that in this binding we start the numbering of fields
- -- with 1. So this is number is one more than you get from the low
- -- level call.
- pragma Inline (Get_Index);
-
- -- MANPAGE(`form_new_page.3x')
-
- -- ANCHOR(`set_new_page()',`Set_New_Page')
- procedure Set_New_Page (Fld : in Field;
- New_Page : in Boolean := True);
- -- AKA
- pragma Inline (Set_New_Page);
-
- -- ANCHOR(`new_page()',`Is_New_Page')
- function Is_New_Page (Fld : Field) return Boolean;
- -- 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;
- type Form is new System.Storage_Elements.Integer_Address;
-
- Null_Field : constant Field := 0;
- Null_Form : constant Form := 0;
-
-end Terminal_Interface.Curses.Forms;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
deleted file mode 100644
index 111870d..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4
+++ /dev/null
@@ -1,76 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus-item_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus.Item_User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access User;
-package Terminal_Interface.Curses.Menus.Item_User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Menus.Item_User_Data);
-
- -- The binding uses the same user pointer for menu items
- -- as the low level C implementation. So you can safely
- -- read or write the user pointer also with the C routines
- --
- -- MANPAGE(`mitem_userptr.3x')
-
- -- ANCHOR(`set_item_userptr',`Set_User_Data')
- procedure Set_User_Data (Itm : in Item;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`item_userptr',`Get_User_Data')
- procedure Get_User_Data (Itm : in Item;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`item_userptr',`Get_User_Data')
- function Get_User_Data (Itm : in Item) return User_Access;
- -- AKA
- -- Same as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Menus.Item_User_Data;
-
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
deleted file mode 100644
index 713e81c..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4
+++ /dev/null
@@ -1,71 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus-menu_user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus.Menu_User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access User;
-package Terminal_Interface.Curses.Menus.Menu_User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Menus.Menu_User_Data);
-
- -- MANPAGE(`menu_userptr.3x')
-
- -- ANCHOR(`set_menu_userptr',`Set_User_Data')
- procedure Set_User_Data (Men : in Menu;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`menu_userptr',`Get_User_Data')
- procedure Get_User_Data (Men : in Menu;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`menu_userptr',`Get_User_Data')
- function Get_User_Data (Men : in Menu) return User_Access;
- -- AKA
- -- Same as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Menus.Menu_User_Data;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus.ads.m4
deleted file mode 100644
index 502e7f2..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-menus.ads.m4
+++ /dev/null
@@ -1,604 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menu --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Menu_Base_Defs')
-with System;
-with Ada.Characters.Latin_1;
-
-package Terminal_Interface.Curses.Menus is
- pragma Preelaborate (Terminal_Interface.Curses.Menus);
-include(`Menu_Linker_Options')dnl
-include(`Linker_Options')
- Space : Character renames Ada.Characters.Latin_1.Space;
-
- type Item is private;
- type Menu is private;
-
- ---------------------------
- -- Interface constants --
- ---------------------------
- Null_Item : constant Item;
- Null_Menu : constant Menu;
-
- subtype Menu_Request_Code is Key_Code
- range (Key_Max + 1) .. (Key_Max + 17);
-
- -- The prefix M_ stands for "Menu Request"
- M_Left_Item : constant Menu_Request_Code := Key_Max + 1;
- M_Right_Item : constant Menu_Request_Code := Key_Max + 2;
- M_Up_Item : constant Menu_Request_Code := Key_Max + 3;
- M_Down_Item : constant Menu_Request_Code := Key_Max + 4;
- M_ScrollUp_Line : constant Menu_Request_Code := Key_Max + 5;
- M_ScrollDown_Line : constant Menu_Request_Code := Key_Max + 6;
- M_ScrollDown_Page : constant Menu_Request_Code := Key_Max + 7;
- M_ScrollUp_Page : constant Menu_Request_Code := Key_Max + 8;
- M_First_Item : constant Menu_Request_Code := Key_Max + 9;
- M_Last_Item : constant Menu_Request_Code := Key_Max + 10;
- M_Next_Item : constant Menu_Request_Code := Key_Max + 11;
- M_Previous_Item : constant Menu_Request_Code := Key_Max + 12;
- M_Toggle_Item : constant Menu_Request_Code := Key_Max + 13;
- M_Clear_Pattern : constant Menu_Request_Code := Key_Max + 14;
- M_Back_Pattern : constant Menu_Request_Code := Key_Max + 15;
- M_Next_Match : constant Menu_Request_Code := Key_Max + 16;
- M_Previous_Match : constant Menu_Request_Code := Key_Max + 17;
-
- -- For those who like the old 'C' names for the request codes
- REQ_LEFT_ITEM : Menu_Request_Code renames M_Left_Item;
- REQ_RIGHT_ITEM : Menu_Request_Code renames M_Right_Item;
- REQ_UP_ITEM : Menu_Request_Code renames M_Up_Item;
- REQ_DOWN_ITEM : Menu_Request_Code renames M_Down_Item;
- REQ_SCR_ULINE : Menu_Request_Code renames M_ScrollUp_Line;
- REQ_SCR_DLINE : Menu_Request_Code renames M_ScrollDown_Line;
- REQ_SCR_DPAGE : Menu_Request_Code renames M_ScrollDown_Page;
- REQ_SCR_UPAGE : Menu_Request_Code renames M_ScrollUp_Page;
- REQ_FIRST_ITEM : Menu_Request_Code renames M_First_Item;
- REQ_LAST_ITEM : Menu_Request_Code renames M_Last_Item;
- REQ_NEXT_ITEM : Menu_Request_Code renames M_Next_Item;
- REQ_PREV_ITEM : Menu_Request_Code renames M_Previous_Item;
- REQ_TOGGLE_ITEM : Menu_Request_Code renames M_Toggle_Item;
- REQ_CLEAR_PATTERN : Menu_Request_Code renames M_Clear_Pattern;
- REQ_BACK_PATTERN : Menu_Request_Code renames M_Back_Pattern;
- REQ_NEXT_MATCH : Menu_Request_Code renames M_Next_Match;
- REQ_PREV_MATCH : Menu_Request_Code renames M_Previous_Match;
-
- procedure Request_Name (Key : in Menu_Request_Code;
- Name : out String);
-
- function Request_Name (Key : Menu_Request_Code) return String;
- -- Same as function
-
- ------------------
- -- Exceptions --
- ------------------
-
- Menu_Exception : exception;
- --
- -- Menu options
- --
- pragma Warnings (Off);
-include(`Menu_Opt_Rep')dnl
-
- pragma Warnings (On);
-
- function Default_Menu_Options return Menu_Option_Set;
- -- Initial default options for a menu.
- pragma Inline (Default_Menu_Options);
- --
- -- Item options
- --
- pragma Warnings (Off);
-include(`Item_Rep')dnl
-
- pragma Warnings (On);
-
- function Default_Item_Options return Item_Option_Set;
- -- Initial default options for an item.
- pragma Inline (Default_Item_Options);
-
- --
- -- Item Array
- --
- type Item_Array is array (Positive range <>) of aliased Item;
- pragma Convention (C, Item_Array);
-
- type Item_Array_Access is access Item_Array;
-
- procedure Free (IA : in out Item_Array_Access;
- Free_Items : Boolean := False);
- -- Release the memory for an allocated item array
- -- If Free_Items is True, call Delete() for all the items in
- -- the array.
-
- -- MANPAGE(`mitem_new.3x')
-
- -- ANCHOR(`new_item()',`Create')
- function Create (Name : String;
- Description : String := "") return Item;
- -- AKA
- -- Not inlined.
-
- -- ANCHOR(`new_item()',`New_Item')
- function New_Item (Name : String;
- Description : String := "") return Item
- renames Create;
- -- AKA
-
- -- ANCHOR(`free_item()',`Delete')
- procedure Delete (Itm : in out Item);
- -- AKA
- -- Resets Itm to Null_Item
-
- -- MANPAGE(`mitem_value.3x')
-
- -- ANCHOR(`set_item_value()',`Set_Value')
- procedure Set_Value (Itm : in Item;
- Value : in Boolean := True);
- -- AKA
- pragma Inline (Set_Value);
-
- -- ANCHOR(`item_value()',`Value')
- function Value (Itm : Item) return Boolean;
- -- AKA
- pragma Inline (Value);
-
- -- MANPAGE(`mitem_visible.3x')
-
- -- ANCHOR(`item_visible()',`Visible')
- function Visible (Itm : Item) return Boolean;
- -- AKA
- pragma Inline (Visible);
-
- -- MANPAGE(`mitem_opts.3x')
-
- -- ANCHOR(`set_item_opts()',`Set_Options')
- procedure Set_Options (Itm : in Item;
- Options : in Item_Option_Set);
- -- AKA
- -- An overloaded Set_Options is defined later. Pragma Inline appears there
-
- -- ANCHOR(`item_opts_on()',`Switch_Options')
- procedure Switch_Options (Itm : in Item;
- Options : in Item_Option_Set;
- On : Boolean := True);
- -- AKA
- -- ALIAS(`item_opts_off()')
- -- An overloaded Switch_Options is defined later.
- -- Pragma Inline appears there
-
- -- ANCHOR(`item_opts()',`Get_Options')
- procedure Get_Options (Itm : in Item;
- Options : out Item_Option_Set);
- -- AKA
-
- -- ANCHOR(`item_opts()',`Get_Options')
- function Get_Options (Itm : Item := Null_Item) return Item_Option_Set;
- -- AKA
- -- An overloaded Get_Options is defined later. Pragma Inline appears there
-
- -- MANPAGE(`mitem_name.3x')
-
- -- ANCHOR(`item_name()',`Name')
- procedure Name (Itm : in Item;
- Name : out String);
- -- AKA
- function Name (Itm : Item) return String;
- -- AKA
- -- Implemented as function
- pragma Inline (Name);
-
- -- ANCHOR(`item_description();',`Description')
- procedure Description (Itm : in Item;
- Description : out String);
- -- AKA
-
- function Description (Itm : Item) return String;
- -- AKA
- -- Implemented as function
- pragma Inline (Description);
-
- -- MANPAGE(`mitem_current.3x')
-
- -- ANCHOR(`set_current_item()',`Set_Current')
- procedure Set_Current (Men : in Menu;
- Itm : in Item);
- -- AKA
- pragma Inline (Set_Current);
-
- -- ANCHOR(`current_item()',`Current')
- function Current (Men : Menu) return Item;
- -- AKA
- pragma Inline (Current);
-
- -- ANCHOR(`set_top_row()',`Set_Top_Row')
- procedure Set_Top_Row (Men : in Menu;
- Line : in Line_Position);
- -- AKA
- pragma Inline (Set_Top_Row);
-
- -- ANCHOR(`top_row()',`Top_Row')
- function Top_Row (Men : Menu) return Line_Position;
- -- AKA
- pragma Inline (Top_Row);
-
- -- ANCHOR(`item_index()',`Get_Index')
- function Get_Index (Itm : Item) return Positive;
- -- AKA
- -- Please note that in this binding we start the numbering of items
- -- with 1. So this is number is one more than you get from the low
- -- level call.
- pragma Inline (Get_Index);
-
- -- MANPAGE(`menu_post.3x')
-
- -- ANCHOR(`post_menu()',`Post')
- procedure Post (Men : in Menu;
- Post : in Boolean := True);
- -- AKA
- -- ALIAS(`unpost_menu()')
- pragma Inline (Post);
-
- -- MANPAGE(`menu_opts.3x')
-
- -- ANCHOR(`set_menu_opts()',`Set_Options')
- procedure Set_Options (Men : in Menu;
- Options : in Menu_Option_Set);
- -- AKA
- pragma Inline (Set_Options);
-
- -- ANCHOR(`menu_opts_on()',`Switch_Options')
- procedure Switch_Options (Men : in Menu;
- Options : in Menu_Option_Set;
- On : Boolean := True);
- -- AKA
- -- ALIAS(`menu_opts_off()')
- pragma Inline (Switch_Options);
-
- -- ANCHOR(`menu_opts()',`Get_Options')
- procedure Get_Options (Men : in Menu;
- Options : out Menu_Option_Set);
- -- AKA
-
- -- ANCHOR(`menu_opts()',`Get_Options')
- function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set;
- -- AKA
- pragma Inline (Get_Options);
-
- -- MANPAGE(`menu_win.3x')
-
- -- ANCHOR(`set_menu_win()',`Set_Window')
- procedure Set_Window (Men : in Menu;
- Win : in Window);
- -- AKA
- pragma Inline (Set_Window);
-
- -- ANCHOR(`menu_win()',`Get_Window')
- function Get_Window (Men : Menu) return Window;
- -- AKA
- pragma Inline (Get_Window);
-
- -- ANCHOR(`set_menu_sub()',`Set_Sub_Window')
- procedure Set_Sub_Window (Men : in Menu;
- Win : in Window);
- -- AKA
- pragma Inline (Set_Sub_Window);
-
- -- ANCHOR(`menu_sub()',`Get_Sub_Window')
- function Get_Sub_Window (Men : Menu) return Window;
- -- AKA
- pragma Inline (Get_Sub_Window);
-
- -- ANCHOR(`scale_menu()',`Scale')
- procedure Scale (Men : in Menu;
- Lines : out Line_Count;
- Columns : out Column_Count);
- -- AKA
- pragma Inline (Scale);
-
- -- MANPAGE(`menu_cursor.3x')
-
- -- ANCHOR(`pos_menu_cursor()',`Position_Cursor')
- procedure Position_Cursor (Men : Menu);
- -- AKA
- pragma Inline (Position_Cursor);
-
- -- MANPAGE(`menu_mark.3x')
-
- -- ANCHOR(`set_menu_mark()',`Set_Mark')
- procedure Set_Mark (Men : in Menu;
- Mark : in String);
- -- AKA
- pragma Inline (Set_Mark);
-
- -- ANCHOR(`menu_mark()',`Mark')
- procedure Mark (Men : in Menu;
- Mark : out String);
- -- AKA
-
- function Mark (Men : Menu) return String;
- -- AKA
- -- Implemented as function
- pragma Inline (Mark);
-
- -- MANPAGE(`menu_attribs.3x')
-
- -- ANCHOR(`set_menu_fore()',`Set_Foreground')
- procedure Set_Foreground
- (Men : in Menu;
- Fore : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Foreground);
-
- -- ANCHOR(`menu_fore()',`Foreground')
- procedure Foreground (Men : in Menu;
- Fore : out Character_Attribute_Set);
- -- AKA
-
- -- ANCHOR(`menu_fore()',`Foreground')
- procedure Foreground (Men : in Menu;
- Fore : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Foreground);
-
- -- ANCHOR(`set_menu_back()',`Set_Background')
- procedure Set_Background
- (Men : in Menu;
- Back : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Background);
-
- -- ANCHOR(`menu_back()',`Background')
- procedure Background (Men : in Menu;
- Back : out Character_Attribute_Set);
- -- AKA
- -- ANCHOR(`menu_back()',`Background')
-
- procedure Background (Men : in Menu;
- Back : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Background);
-
- -- ANCHOR(`set_menu_grey()',`Set_Grey')
- procedure Set_Grey
- (Men : in Menu;
- Grey : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Grey);
-
- -- ANCHOR(`menu_grey()',`Grey')
- procedure Grey (Men : in Menu;
- Grey : out Character_Attribute_Set);
- -- AKA
-
- -- ANCHOR(`menu_grey()',`Grey')
- procedure Grey
- (Men : in Menu;
- Grey : out Character_Attribute_Set;
- Color : out Color_Pair);
- -- AKA
- pragma Inline (Grey);
-
- -- ANCHOR(`set_menu_pad()',`Set_Pad_Character')
- procedure Set_Pad_Character (Men : in Menu;
- Pad : in Character := Space);
- -- AKA
- pragma Inline (Set_Pad_Character);
-
- -- ANCHOR(`menu_pad()',`Pad_Character')
- procedure Pad_Character (Men : in Menu;
- Pad : out Character);
- -- AKA
- pragma Inline (Pad_Character);
-
- -- MANPAGE(`menu_spacing.3x')
-
- -- ANCHOR(`set_menu_spacing()',`Set_Spacing')
- procedure Set_Spacing (Men : in Menu;
- Descr : in Column_Position := 0;
- Row : in Line_Position := 0;
- Col : in Column_Position := 0);
- -- AKA
- pragma Inline (Set_Spacing);
-
- -- ANCHOR(`menu_spacing()',`Spacing')
- procedure Spacing (Men : in Menu;
- Descr : out Column_Position;
- Row : out Line_Position;
- Col : out Column_Position);
- -- AKA
- pragma Inline (Spacing);
-
- -- MANPAGE(`menu_pattern.3x')
-
- -- ANCHOR(`set_menu_pattern()',`Set_Pattern')
- function Set_Pattern (Men : Menu;
- Text : String) return Boolean;
- -- AKA
- -- Return TRUE if the pattern matches, FALSE otherwise
- pragma Inline (Set_Pattern);
-
- -- ANCHOR(`menu_pattern()',`Pattern')
- procedure Pattern (Men : in Menu;
- Text : out String);
- -- AKA
- pragma Inline (Pattern);
-
- -- MANPAGE(`menu_format.3x')
-
- -- ANCHOR(`set_menu_format()',`Set_Format')
- 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);
-
- -- ANCHOR(`menu_format()',`Format')
- procedure Format (Men : in Menu;
- Lines : out Line_Count;
- Columns : out Column_Count);
- -- AKA
- pragma Inline (Format);
-
- -- MANPAGE(`menu_hook.3x')
-
- type Menu_Hook_Function is access procedure (Men : in Menu);
- pragma Convention (C, Menu_Hook_Function);
-
- -- ANCHOR(`set_item_init()',`Set_Item_Init_Hook')
- procedure Set_Item_Init_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function);
- -- AKA
- pragma Inline (Set_Item_Init_Hook);
-
- -- ANCHOR(`set_item_term()',`Set_Item_Term_Hook')
- procedure Set_Item_Term_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function);
- -- AKA
- pragma Inline (Set_Item_Term_Hook);
-
- -- ANCHOR(`set_menu_init()',`Set_Menu_Init_Hook')
- procedure Set_Menu_Init_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function);
- -- AKA
- pragma Inline (Set_Menu_Init_Hook);
-
- -- ANCHOR(`set_menu_term()',`Set_Menu_Term_Hook')
- procedure Set_Menu_Term_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function);
- -- AKA
- pragma Inline (Set_Menu_Term_Hook);
-
- -- ANCHOR(`item_init()',`Get_Item_Init_Hook')
- function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function;
- -- AKA
- pragma Inline (Get_Item_Init_Hook);
-
- -- ANCHOR(`item_term()',`Get_Item_Term_Hook')
- function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function;
- -- AKA
- pragma Inline (Get_Item_Term_Hook);
-
- -- ANCHOR(`menu_init()',`Get_Menu_Init_Hook')
- function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function;
- -- AKA
- pragma Inline (Get_Menu_Init_Hook);
-
- -- ANCHOR(`menu_term()',`Get_Menu_Term_Hook')
- function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function;
- -- AKA
- pragma Inline (Get_Menu_Term_Hook);
-
- -- MANPAGE(`menu_items.3x')
-
- -- ANCHOR(`set_menu_items()',`Redefine')
- procedure Redefine (Men : in Menu;
- Items : in Item_Array_Access);
- -- AKA
- pragma Inline (Redefine);
-
- procedure Set_Items (Men : in Menu;
- Items : in Item_Array_Access) renames Redefine;
- pragma Inline (Set_Items);
-
- -- ANCHOR(`menu_items()',`Items')
- function Items (Men : Menu;
- Index : Positive) return Item;
- -- AKA
- pragma Inline (Items);
-
- -- ANCHOR(`item_count()',`Item_Count')
- function Item_Count (Men : Menu) return Natural;
- -- AKA
- pragma Inline (Item_Count);
-
- -- MANPAGE(`menu_new.3x')
-
- -- ANCHOR(`new_menu()',`Create')
- function Create (Items : Item_Array_Access) return Menu;
- -- AKA
- -- Not inlined
-
- function New_Menu (Items : Item_Array_Access) return Menu renames Create;
-
- -- ANCHOR(`free_menu()',`Delete')
- procedure Delete (Men : in out Menu);
- -- AKA
- -- Reset Men to Null_Menu
- -- Not inlined
-
- -- MANPAGE(`menu_driver.3x')
-
- type Driver_Result is (Menu_Ok,
- Request_Denied,
- Unknown_Request,
- No_Match);
-
- -- ANCHOR(`menu_driver()',`Driver')
- function Driver (Men : Menu;
- Key : Key_Code) return Driver_Result;
- -- 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;
- type Menu is new System.Storage_Elements.Integer_Address;
-
- Null_Item : constant Item := 0;
- Null_Menu : constant Menu := 0;
-
-end Terminal_Interface.Curses.Menus;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-mouse.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-mouse.ads.m4
deleted file mode 100644
index b1c574d..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-mouse.ads.m4
+++ /dev/null
@@ -1,184 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-mouse__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Mouse --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Mouse_Base_Defs')
-with System;
-
-package Terminal_Interface.Curses.Mouse is
- pragma Preelaborate (Terminal_Interface.Curses.Mouse);
-
- -- MANPAGE(`curs_mouse.3x')
- -- Please note, that in ncurses-1.9.9e documentation mouse support
- -- 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 Mouse_Button is (Left, -- aka: Button 1
- Middle, -- aka: Button 2
- Right, -- aka: Button 3
- Button4, -- aka: Button 4
- Control, -- Control Key
- Shift, -- Shift Key
- Alt); -- ALT Key
-
- subtype Real_Buttons is Mouse_Button range Left .. Button4;
- subtype Modifier_Keys is Mouse_Button range Control .. Alt;
-
- type Button_State is (Released,
- Pressed,
- Clicked,
- Double_Clicked,
- Triple_Clicked);
-
- type Button_States is array (Button_State) of Boolean;
- pragma Pack (Button_States);
-
- All_Clicks : constant Button_States := (Clicked .. Triple_Clicked => True,
- others => False);
- All_States : constant Button_States := (others => True);
-
- type Mouse_Event is private;
-
- -- MANPAGE(`curs_mouse.3x')
-
- function Has_Mouse return Boolean;
- -- Return true if a mouse device is supported, false otherwise.
-
- procedure Register_Reportable_Event
- (Button : in Mouse_Button;
- State : in Button_State;
- Mask : in out Event_Mask);
- -- Stores the event described by the button and the state in the mask.
- -- Before you call this the first time, you should init the mask
- -- with the Empty_Mask constant
- pragma Inline (Register_Reportable_Event);
-
- procedure Register_Reportable_Events
- (Button : in Mouse_Button;
- State : in Button_States;
- Mask : in out Event_Mask);
- -- Register all events described by the Button and the State bitmap.
- -- Before you call this the first time, you should init the mask
- -- with the Empty_Mask constant
-
- -- 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
- pragma Inline (Start_Mouse);
-
- procedure End_Mouse (Mask : in Event_Mask := No_Events);
- -- Terminates the mouse, restores the specified event mask
- pragma Inline (End_Mouse);
-
- -- ANCHOR(`getmouse()',`Get_Mouse')
- function Get_Mouse return Mouse_Event;
- -- AKA
- pragma Inline (Get_Mouse);
-
- procedure Get_Event (Event : in Mouse_Event;
- Y : out Line_Position;
- X : out Column_Position;
- Button : out Mouse_Button;
- 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')
- procedure Unget_Mouse (Event : in Mouse_Event);
- -- AKA
- pragma Inline (Unget_Mouse);
-
- -- ANCHOR(`wenclose()',`Enclosed_In_Window')
- function Enclosed_In_Window (Win : Window := Standard_Window;
- Event : Mouse_Event) return Boolean;
- -- AKA
- -- But : use event instead of screen coordinates.
- pragma Inline (Enclosed_In_Window);
-
- -- ANCHOR(`mouseinterval()',`Mouse_Interval')
- function Mouse_Interval (Msec : Natural := 200) return Natural;
- -- AKA
- pragma Inline (Mouse_Interval);
-
-private
- type Event_Mask is new Interfaces.C.unsigned_long;
-
- type Mouse_Event is
- record
- Id : Integer range Integer (Interfaces.C.short'First) ..
- Integer (Interfaces.C.short'Last);
- X, Y, Z : Integer range Integer (Interfaces.C.int'First) ..
- Integer (Interfaces.C.int'Last);
- Bstate : Event_Mask;
- end record;
- pragma Convention (C, Mouse_Event);
- pragma Pack (Mouse_Event);
-
-include(`Mouse_Event_Rep')
- Generation_Bit_Order : constant System.Bit_Order := System.M4_BIT_ORDER;
- -- This constant may be different on your system.
-
-include(`Mouse_Events')
-
- No_Events : constant Event_Mask := 0;
- All_Events : constant Event_Mask := ALL_MOUSE_EVENTS;
-
-end Terminal_Interface.Curses.Mouse;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
deleted file mode 100644
index 0af8ebc..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4
+++ /dev/null
@@ -1,71 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-panels-user_data__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Panels.User_Data --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-generic
- type User is limited private;
- type User_Access is access all User;
-package Terminal_Interface.Curses.Panels.User_Data is
- pragma Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
-
- -- MANPAGE(`panel.3x')
-
- -- ANCHOR(`set_panel_userptr',`Set_User_Data')
- procedure Set_User_Data (Pan : in Panel;
- Data : in User_Access);
- -- AKA
- pragma Inline (Set_User_Data);
-
- -- ANCHOR(`panel_userptr',`Get_User_Data')
- procedure Get_User_Data (Pan : in Panel;
- Data : out User_Access);
- -- AKA
-
- -- ANCHOR(`panel_userptr',`Get_User_Data')
- function Get_User_Data (Pan : in Panel) return User_Access;
- -- AKA
- -- Same as function
- pragma Inline (Get_User_Data);
-
-end Terminal_Interface.Curses.Panels.User_Data;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-panels.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-panels.ads.m4
deleted file mode 100644
index a7f6563..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-panels.ads.m4
+++ /dev/null
@@ -1,147 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-panels__ads.htm')dnl
-include(M4MACRO)dnl
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Panels --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with System;
-
-package Terminal_Interface.Curses.Panels is
- pragma Preelaborate (Terminal_Interface.Curses.Panels);
-include(`Panel_Linker_Options')dnl
-include(`Linker_Options')
- type Panel is private;
-
- ---------------------------
- -- Interface constants --
- ---------------------------
- Null_Panel : constant Panel;
-
- -------------------
- -- Exceptions --
- -------------------
-
- Panel_Exception : exception;
-
- -- MANPAGE(`panel.3x')
-
- -- ANCHOR(`new_panel()',`Create')
- function Create (Win : Window) return Panel;
- -- AKA
- pragma Inline (Create);
-
- -- ANCHOR(`new_panel()',`New_Panel')
- function New_Panel (Win : Window) return Panel renames Create;
- -- AKA
- pragma Inline (New_Panel);
-
- -- ANCHOR(`bottom_panel()',`Bottom')
- procedure Bottom (Pan : in Panel);
- -- AKA
- pragma Inline (Bottom);
-
- -- ANCHOR(`top_panel()',`Top')
- procedure Top (Pan : in Panel);
- -- AKA
- pragma Inline (Top);
-
- -- ANCHOR(`show_panel()',`Show')
- procedure Show (Pan : in Panel);
- -- AKA
- pragma Inline (Show);
-
- -- ANCHOR(`update_panels()',`Update_Panels')
- procedure Update_Panels;
- -- AKA
- pragma Import (C, Update_Panels, "update_panels");
-
- -- ANCHOR(`hide_panel()',`Hide')
- procedure Hide (Pan : in Panel);
- -- AKA
- pragma Inline (Hide);
-
- -- ANCHOR(`panel_window()',`Get_Window')
- function Get_Window (Pan : Panel) return Window;
- -- AKA
- pragma Inline (Get_Window);
-
- -- ANCHOR(`panel_window()',`Panel_Window')
- function Panel_Window (Pan : Panel) return Window renames Get_Window;
- pragma Inline (Panel_Window);
-
- -- ANCHOR(`replace_panel()',`Replace')
- procedure Replace (Pan : in Panel;
- Win : in Window);
- -- AKA
- pragma Inline (Replace);
-
- -- ANCHOR(`move_panel()',`Move')
- procedure Move (Pan : in Panel;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move);
-
- -- ANCHOR(`panel_hidden()',`Is_Hidden')
- function Is_Hidden (Pan : Panel) return Boolean;
- -- AKA
- pragma Inline (Is_Hidden);
-
- -- ANCHOR(`panel_above()',`Above')
- function Above (Pan : Panel) return Panel;
- -- AKA
- pragma Import (C, Above, "panel_above");
-
- -- ANCHOR(`panel_below()',`Below')
- function Below (Pan : Panel) return Panel;
- -- AKA
- pragma Import (C, Below, "panel_below");
-
- -- ANCHOR(`del_panel()',`Delete')
- procedure Delete (Pan : in out Panel);
- -- AKA
- pragma Inline (Delete);
-
-private
- type Panel is new System.Storage_Elements.Integer_Address;
- Null_Panel : constant Panel := 0;
-
-end Terminal_Interface.Curses.Panels;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses-trace.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses-trace.ads.m4
deleted file mode 100644
index 525e6fa..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses-trace.ads.m4
+++ /dev/null
@@ -1,78 +0,0 @@
--- -*- 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$
--- 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;
diff --git a/ncurses-5.3/Ada95/gen/terminal_interface-curses.ads.m4 b/ncurses-5.3/Ada95/gen/terminal_interface-curses.ads.m4
deleted file mode 100644
index e59de0a..0000000
--- a/ncurses-5.3/Ada95/gen/terminal_interface-curses.ads.m4
+++ /dev/null
@@ -1,1557 +0,0 @@
--- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses__ads.htm')dnl
-include(M4MACRO)------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-include(`Base_Defs')
-with System.Storage_Elements;
-with Interfaces.C; -- We need this for some assertions.
-
-package Terminal_Interface.Curses is
- pragma Preelaborate (Terminal_Interface.Curses);
-include(`Linker_Options')
-include(`Version_Info')
- type Window is private;
- Null_Window : constant Window;
-
- type Line_Position is new Natural; -- line coordinate
- type Column_Position is new Natural; -- column coordinate
-
- subtype Line_Count is Line_Position range 1 .. Line_Position'Last;
- -- Type to count lines. We do not allow null windows, so must be positive
- subtype Column_Count is Column_Position range 1 .. Column_Position'Last;
- -- Type to count columns. We do not allow null windows, so must be positive
-
- type Key_Code is new Natural;
- -- That is anything including real characters, special keys and logical
- -- request codes.
-
- subtype Real_Key_Code is Key_Code range 0 .. M4_KEY_MAX;
- -- This are the codes that potentially represent a real keystroke.
- -- Not all codes may be possible on a specific terminal. To check the
- -- availability of a special key, the Has_Key function is provided.
-
- subtype Special_Key_Code is Real_Key_Code
- range M4_SPECIAL_FIRST .. Real_Key_Code'Last;
- -- Type for a function- or special key number
-
- subtype Normal_Key_Code is Real_Key_Code range
- Character'Pos (Character'First) .. Character'Pos (Character'Last);
- -- This are the codes for regular (incl. non-graphical) characters.
-
- -- Constants for function- and special keys
- --
- Key_None : constant Special_Key_Code := M4_SPECIAL_FIRST;
-include(`Key_Definitions')
- Key_Max : constant Special_Key_Code
- := Special_Key_Code'Last;
-
- subtype User_Key_Code is Key_Code
- range (Key_Max + 129) .. Key_Code'Last;
- -- This is reserved for user defined key codes. The range between Key_Max
- -- and the first user code is reserved for subsystems like menu and forms.
-
- -- For those who like to use the original key names we produce them were
- -- they differ from the original. Please note that they may differ in
- -- lower/upper case.
-include(`Old_Keys')dnl
-
-------------------------------------------------------------------------------
-
- type Color_Number is range -1 .. Integer (Interfaces.C.short'Last);
- for Color_Number'Size use Interfaces.C.short'Size;
- -- (n)curses uses a short for the color index
- -- The model is, that a Color_Number is an index into an array of
- -- (potentially) definable colors. Some of those indices are
- -- predefined (see below), although they may not really exist.
-
-include(`Color_Defs')
- type RGB_Value is range 0 .. Integer (Interfaces.C.short'Last);
- for RGB_Value'Size use Interfaces.C.short'Size;
- -- Some system may allow to redefine a color by setting RGB values.
-
- type Color_Pair is range 0 .. 255;
- for Color_Pair'Size use 8;
- subtype Redefinable_Color_Pair is Color_Pair range 1 .. 255;
- -- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0
- -- is fixed (Black & White). A color pair is simply a combination of
- -- two colors described by Color_Numbers, one for the foreground and
- -- the other for the background
-
-include(`Character_Attribute_Set_Rep')
- -- (n)curses uses all but the lowest 16 Bits for Attributes.
-
- Normal_Video : constant Character_Attribute_Set := (others => False);
-
- type Attributed_Character is
- record
- Attr : Character_Attribute_Set;
- Color : Color_Pair;
- Ch : Character;
- end record;
- pragma Convention (C, Attributed_Character);
- -- This is the counterpart for the chtype in C.
-
-include(`AC_Rep')
- Default_Character : constant Attributed_Character
- := (Ch => Character'First,
- Color => Color_Pair'First,
- Attr => (others => False)); -- preelaboratable Normal_Video
-
- type Attributed_String is array (Positive range <>) of Attributed_Character;
- pragma Pack (Attributed_String);
- -- In this binding we allow strings of attributed characters.
-
- ------------------
- -- Exceptions --
- ------------------
- Curses_Exception : exception;
- Wrong_Curses_Version : exception;
-
- -- Those exceptions are raised by the ETI (Extended Terminal Interface)
- -- subpackets for Menu and Forms handling.
- --
- Eti_System_Error : exception;
- Eti_Bad_Argument : exception;
- Eti_Posted : exception;
- Eti_Connected : exception;
- Eti_Bad_State : exception;
- Eti_No_Room : exception;
- Eti_Not_Posted : exception;
- Eti_Unknown_Command : exception;
- Eti_No_Match : exception;
- Eti_Not_Selectable : exception;
- Eti_Not_Connected : exception;
- Eti_Request_Denied : exception;
- Eti_Invalid_Field : exception;
- Eti_Current : exception;
-
- --------------------------------------------------------------------------
- -- External C variables
- -- Conceptually even in C this are kind of constants, but they are
- -- initialized and sometimes changed by the library routines at runtime
- -- depending on the type of terminal. I believe the best way to model
- -- this is to use functions.
- --------------------------------------------------------------------------
-
- function Lines return Line_Count;
- pragma Inline (Lines);
-
- function Columns return Column_Count;
- pragma Inline (Columns);
-
- function Tab_Size return Natural;
- pragma Inline (Tab_Size);
-
- function Number_Of_Colors return Natural;
- pragma Inline (Number_Of_Colors);
-
- function Number_Of_Color_Pairs return Natural;
- pragma Inline (Number_Of_Color_Pairs);
-
- ACS_Map : array (Character'Val (0) .. Character'Val (127)) of
- Attributed_Character;
- pragma Import (C, ACS_Map, "acs_map");
- --
- --
- -- Constants for several characters from the Alternate Character Set
- -- You must use this constants as indices into the ACS_Map array
- -- to get the corresponding attributed character at runtime.
- --
-include(`ACS_Map')dnl
-
- -- MANPAGE(`curs_initscr.3x')
- -- | Not implemented: newterm, set_term, delscreen, curscr
-
- -- ANCHOR(`stdscr',`Standard_Window')
- function Standard_Window return Window;
- -- AKA
- pragma Inline (Standard_Window);
-
- -- ANCHOR(`initscr()',`Init_Screen')
- procedure Init_Screen;
-
- -- ANCHOR(`initscr()',`Init_Windows')
- procedure Init_Windows renames Init_Screen;
- -- AKA
- pragma Inline (Init_Screen);
- pragma Inline (Init_Windows);
-
- -- ANCHOR(`endwin()',`End_Windows')
- procedure End_Windows;
- -- AKA
- procedure End_Screen renames End_Windows;
- pragma Inline (End_Windows);
- pragma Inline (End_Screen);
-
- -- ANCHOR(`isendwin()',`Is_End_Window')
- function Is_End_Window return Boolean;
- -- AKA
- pragma Inline (Is_End_Window);
-
- -- MANPAGE(`curs_move.3x')
-
- -- ANCHOR(`wmove()',`Move_Cursor')
- procedure Move_Cursor (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- -- ALIAS(`move()')
- pragma Inline (Move_Cursor);
-
- -- MANPAGE(`curs_addch.3x')
-
- -- ANCHOR(`waddch()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Ch : in Attributed_Character);
- -- AKA
- -- ALIAS(`addch()')
-
- procedure Add (Win : in Window := Standard_Window;
- Ch : in Character);
- -- Add a single character at the current logical cursor position to
- -- the window. Use the current windows attributes.
-
- -- ANCHOR(`mvwaddch()',`Add')
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Attributed_Character);
- -- AKA
- -- ALIAS(`mvaddch()')
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Character);
- -- Move to the position and add a single character into the window
- -- There are more Add routines, so the Inline pragma follows later
-
- -- ANCHOR(`wechochar()',`Add_With_Immediate_Echo')
- procedure Add_With_Immediate_Echo
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character);
- -- AKA
- -- ALIAS(`echochar()')
-
- procedure Add_With_Immediate_Echo
- (Win : in Window := Standard_Window;
- Ch : in Character);
- -- Add a character and do an immediate refresh of the screen.
- pragma Inline (Add_With_Immediate_Echo);
-
- -- MANPAGE(`curs_window.3x')
- -- Not Implemented: wcursyncup
-
- -- ANCHOR(`newwin()',`Create')
- function Create
- (Number_Of_Lines : Line_Count;
- 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);
-
- function New_Window
- (Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- renames Create;
- pragma Inline (New_Window);
-
- -- ANCHOR(`delwin()',`Delete')
- procedure Delete (Win : in out Window);
- -- AKA
- -- Reset Win to Null_Window
- pragma Inline (Delete);
-
- -- ANCHOR(`subwin()',`Sub_Window')
- function Sub_Window
- (Win : Window := Standard_Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window;
- -- AKA
- pragma Inline (Sub_Window);
-
- -- ANCHOR(`derwin()',`Derived_Window')
- function Derived_Window
- (Win : Window := Standard_Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window;
- -- AKA
- pragma Inline (Derived_Window);
-
- -- ANCHOR(`dupwin()',`Duplicate')
- function Duplicate (Win : Window) return Window;
- -- AKA
- pragma Inline (Duplicate);
-
- -- ANCHOR(`mvwin()',`Move_Window')
- procedure Move_Window (Win : in Window;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move_Window);
-
- -- ANCHOR(`mvderwin()',`Move_Derived_Window')
- procedure Move_Derived_Window (Win : in Window;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- pragma Inline (Move_Derived_Window);
-
- -- ANCHOR(`wsyncup()',`Synchronize_Upwards')
- procedure Synchronize_Upwards (Win : in Window);
- -- AKA
- pragma Import (C, Synchronize_Upwards, "wsyncup");
-
- -- ANCHOR(`wsyncdown()',`Synchronize_Downwards')
- procedure Synchronize_Downwards (Win : in Window);
- -- AKA
- pragma Import (C, Synchronize_Downwards, "wsyncdown");
-
- -- ANCHOR(`syncok()',`Set_Synch_Mode')
- procedure Set_Synch_Mode (Win : in Window := Standard_Window;
- Mode : in Boolean := False);
- -- AKA
- pragma Inline (Set_Synch_Mode);
-
- -- MANPAGE(`curs_addstr.3x')
-
- -- ANCHOR(`waddnstr()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Str : in String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`waddstr()')
- -- ALIAS(`addnstr()')
- -- ALIAS(`addstr()')
-
- -- ANCHOR(`mvwaddnstr()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwaddstr()')
- -- ALIAS(`mvaddnstr()')
- -- ALIAS(`mvaddstr()')
-
- -- MANPAGE(`curs_addchstr.3x')
-
- -- ANCHOR(`waddchnstr()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Str : in Attributed_String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`waddchstr()')
- -- ALIAS(`addchnstr()')
- -- ALIAS(`addchstr()')
-
- -- ANCHOR(`mvwaddchnstr()',`Add')
- procedure Add (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in Attributed_String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwaddchstr()')
- -- ALIAS(`mvaddchnstr()')
- -- ALIAS(`mvaddchstr()')
- 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
- (Win : in Window := Standard_Window;
- Left_Side_Symbol : in Attributed_Character := Default_Character;
- Right_Side_Symbol : in Attributed_Character := Default_Character;
- Top_Side_Symbol : in Attributed_Character := Default_Character;
- Bottom_Side_Symbol : in Attributed_Character := Default_Character;
- Upper_Left_Corner_Symbol : in Attributed_Character := Default_Character;
- Upper_Right_Corner_Symbol : in Attributed_Character := Default_Character;
- Lower_Left_Corner_Symbol : in Attributed_Character := Default_Character;
- Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character
- );
- -- AKA
- -- ALIAS(`border()')
- pragma Inline (Border);
-
- -- ANCHOR(`box()',`Box')
- procedure Box
- (Win : in Window := Standard_Window;
- Vertical_Symbol : in Attributed_Character := Default_Character;
- Horizontal_Symbol : in Attributed_Character := Default_Character);
- -- AKA
- pragma Inline (Box);
-
- -- ANCHOR(`whline()',`Horizontal_Line')
- procedure Horizontal_Line
- (Win : in Window := Standard_Window;
- Line_Size : in Natural;
- Line_Symbol : in Attributed_Character := Default_Character);
- -- AKA
- -- ALIAS(`hline()')
- pragma Inline (Horizontal_Line);
-
- -- ANCHOR(`wvline()',`Vertical_Line')
- procedure Vertical_Line
- (Win : in Window := Standard_Window;
- Line_Size : in Natural;
- Line_Symbol : in Attributed_Character := Default_Character);
- -- AKA
- -- ALIAS(`vline()')
- 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
- -- 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
- -- returned keycode is Key_None.
- pragma Inline (Get_Keystroke);
-
- -- ANCHOR(`ungetch()',`Undo_Keystroke')
- procedure Undo_Keystroke (Key : in Real_Key_Code);
- -- AKA
- pragma Inline (Undo_Keystroke);
-
- -- ANCHOR(`has_key()',`Has_Key')
- function Has_Key (Key : Special_Key_Code) return Boolean;
- -- AKA
- pragma Inline (Has_Key);
-
- -- |
- -- | Some helper functions
- -- |
- function Is_Function_Key (Key : Special_Key_Code) return Boolean;
- -- Return True if the Key is a function key (i.e. one of F0 .. F63)
- pragma Inline (Is_Function_Key);
-
- subtype Function_Key_Number is Integer range 0 .. 63;
- -- (n)curses allows for 64 function keys.
-
- function Function_Key (Key : Real_Key_Code) return Function_Key_Number;
- -- Return the number of the function key. If the code is not a
- -- function key, a CONSTRAINT_ERROR will be raised.
- pragma Inline (Function_Key);
-
- function Function_Key_Code (Key : Function_Key_Number) return Real_Key_Code;
- -- Return the key code for a given function-key number.
- 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.
- -- Switches those Attributes set to true in the list.
- -- AKA
- -- ALIAS(`wattroff()')
- -- ALIAS(`attron()')
- -- ALIAS(`attroff()')
-
- -- ANCHOR(`wattrset()',`Set_Character_Attributes')
- procedure Set_Character_Attributes
- (Win : in Window := Standard_Window;
- 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
- -- ALIAS(`attr_get()')
-
- -- ANCHOR(`wattr_get()',`Get_Character_Attribute')
- function Get_Character_Attribute
- (Win : in Window := Standard_Window) return Color_Pair;
- -- AKA
- pragma Inline (Get_Character_Attribute);
-
- -- ANCHOR(`wcolor_set()',`Set_Color')
- procedure Set_Color (Win : in Window := Standard_Window;
- Pair : in Color_Pair);
- -- AKA
- -- ALIAS(`color_set()')
- pragma Inline (Set_Color);
-
- -- ANCHOR(`wchgat()',`Change_Attributes')
- procedure Change_Attributes
- (Win : in Window := Standard_Window;
- Count : in Integer := -1;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- -- ALIAS(`chgat()')
-
- -- ANCHOR(`mvwchgat()',`Change_Attributes')
- procedure Change_Attributes
- (Win : in Window := Standard_Window;
- Line : in Line_Position := Line_Position'First;
- Column : in Column_Position := Column_Position'First;
- Count : in Integer := -1;
- 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')
-
- -- ANCHOR(`beep()',`Beep')
- procedure Beep;
- -- AKA
- pragma Inline (Beep);
-
- -- ANCHOR(`flash()',`Flash_Screen')
- procedure Flash_Screen;
- -- AKA
- pragma Inline (Flash_Screen);
-
- -- MANPAGE(`curs_inopts.3x')
-
- -- | Not implemented : typeahead
- --
- -- ANCHOR(`cbreak()',`Set_Cbreak_Mode')
- procedure Set_Cbreak_Mode (SwitchOn : in Boolean := True);
- -- AKA
- -- ALIAS(`nocbreak()')
- pragma Inline (Set_Cbreak_Mode);
-
- -- ANCHOR(`raw()',`Set_Raw_Mode')
- procedure Set_Raw_Mode (SwitchOn : in Boolean := True);
- -- AKA
- -- ALIAS(`noraw()')
- pragma Inline (Set_Raw_Mode);
-
- -- ANCHOR(`echo()',`Set_Echo_Mode')
- procedure Set_Echo_Mode (SwitchOn : in Boolean := True);
- -- AKA
- -- ALIAS(`noecho()')
- pragma Inline (Set_Echo_Mode);
-
- -- ANCHOR(`meta()',`Set_Meta_Mode')
- procedure Set_Meta_Mode (Win : in Window := Standard_Window;
- SwitchOn : in Boolean := True);
- -- AKA
- pragma Inline (Set_Meta_Mode);
-
- -- ANCHOR(`keypad()',`Set_KeyPad_Mode')
- procedure Set_KeyPad_Mode (Win : in Window := Standard_Window;
- SwitchOn : in Boolean := True);
- -- 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')
- procedure Half_Delay (Amount : in Half_Delay_Amount);
- -- AKA
- pragma Inline (Half_Delay);
-
- -- ANCHOR(`intrflush()',`Set_Flush_On_Interrupt_Mode')
- procedure Set_Flush_On_Interrupt_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := True);
- -- AKA
- pragma Inline (Set_Flush_On_Interrupt_Mode);
-
- -- ANCHOR(`qiflush()',`Set_Queue_Interrupt_Mode')
- procedure Set_Queue_Interrupt_Mode
- (Win : in Window := Standard_Window;
- Flush : in Boolean := True);
- -- AKA
- -- ALIAS(`noqiflush()')
- pragma Inline (Set_Queue_Interrupt_Mode);
-
- -- ANCHOR(`nodelay()',`Set_NoDelay_Mode')
- procedure Set_NoDelay_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False);
- -- AKA
- pragma Inline (Set_NoDelay_Mode);
-
- type Timeout_Mode is (Blocking, Non_Blocking, Delayed);
-
- -- ANCHOR(`wtimeout()',`Set_Timeout_Mode')
- procedure Set_Timeout_Mode (Win : in Window := Standard_Window;
- 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
- -- evaluated.
- -- We don't inline this procedure.
-
- -- ANCHOR(`notimeout()',`Set_Escape_Time_Mode')
- procedure Set_Escape_Timer_Mode
- (Win : in Window := Standard_Window;
- Timer_Off : in Boolean := False);
- -- AKA
- pragma Inline (Set_Escape_Timer_Mode);
-
- -- MANPAGE(`curs_outopts.3x')
-
- -- ANCHOR(`nl()',`Set_NL_Mode')
- procedure Set_NL_Mode (SwitchOn : in Boolean := True);
- -- AKA
- -- ALIAS(`nonl()')
- pragma Inline (Set_NL_Mode);
-
- -- ANCHOR(`clearok()',`Clear_On_Next_Update')
- procedure Clear_On_Next_Update
- (Win : in Window := Standard_Window;
- Do_Clear : in Boolean := True);
- -- AKA
- pragma Inline (Clear_On_Next_Update);
-
- -- ANCHOR(`idlok()',`Use_Insert_Delete_Line')
- procedure Use_Insert_Delete_Line
- (Win : in Window := Standard_Window;
- Do_Idl : in Boolean := True);
- -- AKA
- pragma Inline (Use_Insert_Delete_Line);
-
- -- ANCHOR(`idcok()',`Use_Insert_Delete_Character')
- procedure Use_Insert_Delete_Character
- (Win : in Window := Standard_Window;
- Do_Idc : in Boolean := True);
- -- AKA
- pragma Inline (Use_Insert_Delete_Character);
-
- -- ANCHOR(`leaveok()',`Leave_Cursor_After_Update')
- procedure Leave_Cursor_After_Update
- (Win : in Window := Standard_Window;
- Do_Leave : in Boolean := True);
- -- AKA
- pragma Inline (Leave_Cursor_After_Update);
-
- -- ANCHOR(`immedok()',`Immediate_Update_Mode')
- procedure Immediate_Update_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False);
- -- AKA
- pragma Inline (Immediate_Update_Mode);
-
- -- ANCHOR(`scrollok()',`Allow_Scrolling')
- procedure Allow_Scrolling
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False);
- -- AKA
- pragma Inline (Allow_Scrolling);
-
- function Scrolling_Allowed (Win : Window := Standard_Window) return Boolean;
- -- There is no such function in the C interface.
- pragma Inline (Scrolling_Allowed);
-
- -- ANCHOR(`wsetscrreg()',`Set_Scroll_Region')
- procedure Set_Scroll_Region
- (Win : in Window := Standard_Window;
- Top_Line : in Line_Position;
- Bottom_Line : in Line_Position);
- -- AKA
- -- ALIAS(`setscrreg()')
- pragma Inline (Set_Scroll_Region);
-
- -- MANPAGE(`curs_refresh.3x')
-
- -- ANCHOR(`doupdate()',`Update_Screen')
- procedure Update_Screen;
- -- AKA
- pragma Inline (Update_Screen);
-
- -- ANCHOR(`wrefresh()',`Refresh')
- procedure Refresh (Win : in Window := Standard_Window);
- -- AKA
- -- There is an overloaded Refresh for Pads.
- -- The Inline pragma appears there
- -- ALIAS(`refresh()')
-
- -- ANCHOR(`wnoutrefresh()',`Refresh_Without_Update')
- procedure Refresh_Without_Update
- (Win : in Window := Standard_Window);
- -- AKA
- -- There is an overloaded Refresh_Without_Update for Pads.
- -- The Inline pragma appears there
-
- -- ANCHOR(`redrawwin()',`Redraw')
- procedure Redraw (Win : in Window := Standard_Window);
- -- AKA
-
- -- ANCHOR(`wredrawln()',`Redraw')
- procedure Redraw (Win : in Window := Standard_Window;
- Begin_Line : in Line_Position;
- Line_Count : in Positive);
- -- AKA
- pragma Inline (Redraw);
-
- -- MANPAGE(`curs_clear.3x')
-
- -- 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
- -- ALIAS(`clear()')
- 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
- -- ALIAS(`clrtoeol()')
- 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
- -- ALIAS(`bkgdset()')
- pragma Inline (Set_Background);
-
- -- ANCHOR(`wbkgd()',`Change_Background')
- procedure Change_Background
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character);
- -- AKA
- -- ALIAS(`bkgd()')
- 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
- -- ALIAS(`bkgdget()')
- pragma Inline (Get_Background);
-
- -- MANPAGE(`curs_touch.3x')
-
- -- ANCHOR(`untouchwin()',`Untouch')
- procedure Untouch (Win : in Window := Standard_Window);
- -- AKA
- pragma Inline (Untouch);
-
- -- ANCHOR(`touchwin()',`Touch')
- procedure Touch (Win : in Window := Standard_Window);
- -- AKA
-
- -- ANCHOR(`touchline()',`Touch')
- procedure Touch (Win : in Window := Standard_Window;
- Start : in Line_Position;
- Count : in Positive);
- -- AKA
- pragma Inline (Touch);
-
- -- ANCHOR(`wtouchln()',`Change_Line_Status')
- procedure Change_Lines_Status (Win : in Window := Standard_Window;
- Start : in Line_Position;
- Count : in Positive;
- State : in Boolean);
- -- AKA
- pragma Inline (Change_Lines_Status);
-
- -- ANCHOR(`is_linetouched()',`Is_Touched')
- function Is_Touched (Win : Window := Standard_Window;
- Line : Line_Position) return Boolean;
- -- AKA
-
- -- ANCHOR(`is_wintouched()',`Is_Touched')
- function Is_Touched (Win : Window := Standard_Window) return Boolean;
- -- AKA
- pragma Inline (Is_Touched);
-
- -- MANPAGE(`curs_overlay.3x')
-
- -- ANCHOR(`copywin()',`Copy')
- procedure Copy
- (Source_Window : in Window;
- Destination_Window : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position;
- Non_Destructive_Mode : in Boolean := True);
- -- AKA
- pragma Inline (Copy);
-
- -- ANCHOR(`overwrite()',`Overwrite')
- procedure Overwrite (Source_Window : in Window;
- Destination_Window : in Window);
- -- AKA
- pragma Inline (Overwrite);
-
- -- ANCHOR(`overlay()',`Overlay')
- procedure Overlay (Source_Window : in Window;
- Destination_Window : in Window);
- -- AKA
- pragma Inline (Overlay);
-
- -- MANPAGE(`curs_deleteln.3x')
-
- -- ANCHOR(`winsdelln()',`Insert_Delete_Lines')
- procedure Insert_Delete_Lines
- (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
- -- ALIAS(`deleteln()')
- 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')
-
- -- ANCHOR(`getmaxyx()',`Get_Size')
- procedure Get_Size
- (Win : in Window := Standard_Window;
- Number_Of_Lines : out Line_Count;
- Number_Of_Columns : out Column_Count);
- -- AKA
- pragma Inline (Get_Size);
-
- -- ANCHOR(`getbegyx()',`Get_Window_Position')
- procedure Get_Window_Position
- (Win : in Window := Standard_Window;
- Top_Left_Line : out Line_Position;
- Top_Left_Column : out Column_Position);
- -- AKA
- pragma Inline (Get_Window_Position);
-
- -- ANCHOR(`getyx()',`Get_Cursor_Position')
- procedure Get_Cursor_Position
- (Win : in Window := Standard_Window;
- Line : out Line_Position;
- Column : out Column_Position);
- -- AKA
- pragma Inline (Get_Cursor_Position);
-
- -- ANCHOR(`getparyx()',`Get_Origin_Relative_To_Parent')
- procedure Get_Origin_Relative_To_Parent
- (Win : in Window;
- Top_Left_Line : out Line_Position;
- Top_Left_Column : out Column_Position;
- Is_Not_A_Subwindow : out Boolean);
- -- AKA
- -- Instead of placing -1 in the coordinates as return, we use a boolean
- -- to return the info that the window has no parent.
- pragma Inline (Get_Origin_Relative_To_Parent);
-
- -- MANPAGE(`curs_pad.3x')
-
- -- ANCHOR(`newpad()',`New_Pad')
- function New_Pad (Lines : Line_Count;
- Columns : Column_Count) return Window;
- -- AKA
- pragma Inline (New_Pad);
-
- -- ANCHOR(`subpad()',`Sub_Pad')
- function Sub_Pad
- (Pad : Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window;
- -- AKA
- pragma Inline (Sub_Pad);
-
- -- ANCHOR(`prefresh()',`Refresh')
- procedure Refresh
- (Pad : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position);
- -- AKA
- pragma Inline (Refresh);
-
- -- ANCHOR(`pnoutrefresh()',`Refresh_Without_Update')
- procedure Refresh_Without_Update
- (Pad : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position);
- -- AKA
- pragma Inline (Refresh_Without_Update);
-
- -- ANCHOR(`pechochar()',`Add_Character_To_Pad_And_Echo_It')
- procedure Add_Character_To_Pad_And_Echo_It
- (Pad : in Window;
- Ch : in Attributed_Character);
- -- AKA
-
- procedure Add_Character_To_Pad_And_Echo_It
- (Pad : in Window;
- Ch : in Character);
- pragma Inline (Add_Character_To_Pad_And_Echo_It);
-
- -- MANPAGE(`curs_scroll.3x')
-
- -- ANCHOR(`wscrl()',`Scroll')
- procedure Scroll (Win : in Window := Standard_Window;
- Amount : in Integer := 1);
- -- AKA
- -- ALIAS(`scroll()')
- -- ALIAS(`scrl()')
- pragma Inline (Scroll);
-
- -- MANPAGE(`curs_delch.3x')
-
- -- ANCHOR(`wdelch()',`Delete_Character')
- procedure Delete_Character (Win : in Window := Standard_Window);
- -- AKA
- -- ALIAS(`delch()')
-
- -- ANCHOR(`mvwdelch()',`Delete_Character')
- procedure Delete_Character
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position);
- -- AKA
- -- ALIAS(`mvdelch()')
- pragma Inline (Delete_Character);
-
- -- MANPAGE(`curs_inch.3x')
-
- -- ANCHOR(`winch()',`Peek')
- function Peek (Win : Window := Standard_Window)
- return Attributed_Character;
- -- ALIAS(`inch()')
- -- AKA
-
- -- ANCHOR(`mvwinch()',`Peek')
- function Peek
- (Win : Window := Standard_Window;
- Line : Line_Position;
- Column : Column_Position) return Attributed_Character;
- -- AKA
- -- ALIAS(`mvinch()')
- -- More Peek's follow, pragma Inline appears later.
-
- -- MANPAGE(`curs_insch.3x')
-
- -- 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;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Attributed_Character);
- -- AKA
- -- ALIAS(`mvinsch()')
-
- -- MANPAGE(`curs_insstr.3x')
-
- -- ANCHOR(`winsnstr()',`Insert')
- procedure Insert (Win : in Window := Standard_Window;
- Str : in String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`winsstr()')
- -- ALIAS(`insnstr()')
- -- ALIAS(`insstr()')
-
- -- ANCHOR(`mvwinsnstr()',`Insert')
- procedure Insert (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwinsstr()')
- -- ALIAS(`mvinsnstr()')
- -- ALIAS(`mvinsstr()')
- pragma Inline (Insert);
-
- -- MANPAGE(`curs_instr.3x')
-
- -- ANCHOR(`winnstr()',`Peek')
- procedure Peek (Win : in Window := Standard_Window;
- Str : out String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`winstr()')
- -- ALIAS(`innstr()')
- -- ALIAS(`instr()')
-
- -- ANCHOR(`mvwinnstr()',`Peek')
- procedure Peek (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwinstr()')
- -- ALIAS(`mvinnstr()')
- -- ALIAS(`mvinstr()')
-
- -- MANPAGE(`curs_inchstr.3x')
-
- -- ANCHOR(`winchnstr()',`Peek')
- procedure Peek (Win : in Window := Standard_Window;
- Str : out Attributed_String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`winchstr()')
- -- ALIAS(`inchnstr()')
- -- ALIAS(`inchstr()')
-
- -- ANCHOR(`mvwinchnstr()',`Peek')
- procedure Peek (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out Attributed_String;
- Len : in Integer := -1);
- -- AKA
- -- ALIAS(`mvwinchstr()')
- -- ALIAS(`mvinchnstr()')
- -- ALIAS(`mvinchstr()')
- -- We don't inline the Peek procedures
-
- -- MANPAGE(`curs_getstr.3x')
-
- -- ANCHOR(`wgetnstr()',`Get')
- procedure Get (Win : in Window := Standard_Window;
- Str : out String;
- 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
- -- ALIAS(`mvwgetstr()')
- -- ALIAS(`mvgetnstr()')
- -- ALIAS(`mvgetstr()')
- -- 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
- PC_Style_With_Index); -- "
- type Label_Number is new Positive range 1 .. 12;
- type Label_Justification is (Left, Centered, Right);
-
- -- ANCHOR(`slk_init()',`Init_Soft_Label_Keys')
- procedure Init_Soft_Label_Keys
- (Format : in Soft_Label_Key_Format := Three_Two_Three);
- -- AKA
- pragma Inline (Init_Soft_Label_Keys);
-
- -- ANCHOR(`slk_set()',`Set_Soft_Label_Key')
- procedure Set_Soft_Label_Key (Label : in Label_Number;
- Text : in String;
- Fmt : in Label_Justification := Left);
- -- AKA
- -- We don't inline this procedure
-
- -- ANCHOR(`slk_refresh()',`Refresh_Soft_Label_Key')
- procedure Refresh_Soft_Label_Keys;
- -- AKA
- pragma Inline (Refresh_Soft_Label_Keys);
-
- -- ANCHOR(`slk_noutrefresh()',`Refresh_Soft_Label_Keys_Without_Update')
- procedure Refresh_Soft_Label_Keys_Without_Update;
- -- AKA
- pragma Inline (Refresh_Soft_Label_Keys_Without_Update);
-
- -- ANCHOR(`slk_label()',`Get_Soft_Label_Key')
- procedure Get_Soft_Label_Key (Label : in Label_Number;
- Text : out String);
- -- AKA
-
- -- ANCHOR(`slk_label()',`Get_Soft_Label_Key')
- function Get_Soft_Label_Key (Label : in Label_Number) return String;
- -- AKA
- -- Same as function
- pragma Inline (Get_Soft_Label_Key);
-
- -- ANCHOR(`slk_clear()',`Clear_Soft_Label_Keys')
- procedure Clear_Soft_Label_Keys;
- -- AKA
- pragma Inline (Clear_Soft_Label_Keys);
-
- -- ANCHOR(`slk_restore()',`Restore_Soft_Label_Keys')
- procedure Restore_Soft_Label_Keys;
- -- AKA
- pragma Inline (Restore_Soft_Label_Keys);
-
- -- ANCHOR(`slk_touch()',`Touch_Soft_Label_Keys')
- procedure Touch_Soft_Label_Keys;
- -- AKA
- pragma Inline (Touch_Soft_Label_Keys);
-
- -- ANCHOR(`slk_attron()',`Switch_Soft_Label_Key_Attributes')
- procedure Switch_Soft_Label_Key_Attributes
- (Attr : in Character_Attribute_Set;
- On : in Boolean := True);
- -- AKA
- -- ALIAS(`slk_attroff()')
- pragma Inline (Switch_Soft_Label_Key_Attributes);
-
- -- ANCHOR(`slk_attrset()',`Set_Soft_Label_Key_Attributes')
- procedure Set_Soft_Label_Key_Attributes
- (Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First);
- -- AKA
- pragma Inline (Set_Soft_Label_Key_Attributes);
-
- -- ANCHOR(`slk_attr()',`Get_Soft_Label_Key_Attributes')
- function Get_Soft_Label_Key_Attributes return Character_Attribute_Set;
- -- AKA
-
- -- ANCHOR(`slk_attr()',`Get_Soft_Label_Key_Attributes')
- function Get_Soft_Label_Key_Attributes return Color_Pair;
- -- AKA
- pragma Inline (Get_Soft_Label_Key_Attributes);
-
- -- ANCHOR(`slk_color()',`Set_Soft_Label_Key_Color')
- procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair);
- -- AKA
- pragma Inline (Set_Soft_Label_Key_Color);
-
- -- MANPAGE(`keybound.3x')
- -- Not Implemented: keybound
-
- -- MANPAGE(`keyok.3x')
-
- -- ANCHOR(`keyok()',`Enable_Key')
- procedure Enable_Key (Key : in Special_Key_Code;
- Enable : in Boolean := True);
- -- AKA
- pragma Inline (Enable_Key);
-
- -- MANPAGE(`define_key.3x')
-
- -- ANCHOR(`define_key()',`Define_Key')
- procedure Define_Key (Definition : in String;
- Key : in Special_Key_Code);
- -- AKA
- pragma Inline (Define_Key);
-
- -- MANPAGE(`curs_util.3x')
-
- -- | 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);
- -- AKA
- -- The external name for a real keystroke.
-
- -- ANCHOR(`keyname()',`Key_Name')
- function Key_Name (Key : in Real_Key_Code) return String;
- -- AKA
- -- Same as function
- -- We don't inline this routine
-
- -- ANCHOR(`unctrl()',`Un_Control')
- procedure Un_Control (Ch : in Attributed_Character;
- Str : out String);
- -- AKA
-
- -- ANCHOR(`unctrl()',`Un_Control')
- function Un_Control (Ch : in Attributed_Character) return String;
- -- AKA
- -- Same as function
- pragma Inline (Un_Control);
-
- -- ANCHOR(`delay_output()',`Delay_Output')
- procedure Delay_Output (Msecs : in Natural);
- -- AKA
- pragma Inline (Delay_Output);
-
- -- ANCHOR(`flushinp()',`Flush_Input')
- procedure Flush_Input;
- -- AKA
- pragma Inline (Flush_Input);
-
- -- MANPAGE(`curs_termattrs.3x')
-
- -- ANCHOR(`baudrate()',`Baudrate')
- function Baudrate return Natural;
- -- AKA
- pragma Inline (Baudrate);
-
- -- ANCHOR(`erasechar()',`Erase_Character')
- function Erase_Character return Character;
- -- AKA
- pragma Inline (Erase_Character);
-
- -- ANCHOR(`killchar()',`Kill_Character')
- function Kill_Character return Character;
- -- AKA
- pragma Inline (Kill_Character);
-
- -- ANCHOR(`has_ic()',`Has_Insert_Character')
- function Has_Insert_Character return Boolean;
- -- AKA
- pragma Inline (Has_Insert_Character);
-
- -- ANCHOR(`has_il()',`Has_Insert_Line')
- function Has_Insert_Line return Boolean;
- -- AKA
- pragma Inline (Has_Insert_Line);
-
- -- ANCHOR(`termattrs()',`Supported_Attributes')
- function Supported_Attributes return Character_Attribute_Set;
- -- AKA
- pragma Inline (Supported_Attributes);
-
- -- ANCHOR(`longname()',`Long_Name')
- procedure Long_Name (Name : out String);
- -- AKA
-
- -- ANCHOR(`longname()',`Long_Name')
- function Long_Name return String;
- -- AKA
- -- Same as function
- pragma Inline (Long_Name);
-
- -- ANCHOR(`termname()',`Terminal_Name')
- procedure Terminal_Name (Name : out String);
- -- AKA
-
- -- ANCHOR(`termname()',`Terminal_Name')
- function Terminal_Name return String;
- -- AKA
- -- Same as function
- pragma Inline (Terminal_Name);
-
- -- 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
- pragma Import (C, Start_Color, "start_color");
-
- -- ANCHOR(`init_pair()',`Init_Pair')
- procedure Init_Pair (Pair : in Redefinable_Color_Pair;
- Fore : in Color_Number;
- Back : in Color_Number);
- -- AKA
- pragma Inline (Init_Pair);
-
- -- ANCHOR(`pair_content()',`Pair_Content')
- procedure Pair_Content (Pair : in Color_Pair;
- Fore : out Color_Number;
- Back : out Color_Number);
- -- AKA
- pragma Inline (Pair_Content);
-
- -- ANCHOR(`has_colors()',`Has_Colors')
- function Has_Colors return Boolean;
- -- AKA
- pragma Inline (Has_Colors);
-
- -- ANCHOR(`init_color()',`Init_Color')
- procedure Init_Color (Color : in Color_Number;
- Red : in RGB_Value;
- Green : in RGB_Value;
- Blue : in RGB_Value);
- -- AKA
- pragma Inline (Init_Color);
-
- -- ANCHOR(`can_change_color()',`Can_Change_Color')
- function Can_Change_Color return Boolean;
- -- AKA
- pragma Inline (Can_Change_Color);
-
- -- ANCHOR(`color_content()',`Color_Content')
- procedure Color_Content (Color : in Color_Number;
- Red : out RGB_Value;
- Green : out RGB_Value;
- Blue : out RGB_Value);
- -- AKA
- pragma Inline (Color_Content);
-
- -- MANPAGE(`curs_kernel.3x')
- -- | Not implemented: getsyx, setsyx
- --
- type Curses_Mode is (Curses, Shell);
-
- -- ANCHOR(`def_prog_mode()',`Save_Curses_Mode')
- procedure Save_Curses_Mode (Mode : in Curses_Mode);
- -- AKA
- -- ALIAS(`def_shell_mode()')
- pragma Inline (Save_Curses_Mode);
-
- -- ANCHOR(`reset_prog_mode()',`Reset_Curses_Mode')
- procedure Reset_Curses_Mode (Mode : in Curses_Mode);
- -- AKA
- -- ALIAS(`reset_shell_mode()')
- pragma Inline (Reset_Curses_Mode);
-
- -- ANCHOR(`savetty()',`Save_Terminal_State')
- procedure Save_Terminal_State;
- -- AKA
- pragma Inline (Save_Terminal_State);
-
- -- ANCHOR(`resetty();',`Reset_Terminal_State')
- procedure Reset_Terminal_State;
- -- AKA
- pragma Inline (Reset_Terminal_State);
-
- type Stdscr_Init_Proc is access
- function (Win : Window;
- Columns : Column_Count) return Integer;
- pragma Convention (C, Stdscr_Init_Proc);
- -- N.B.: the return value is actually ignored, but it seems to be
- -- a good practice to return 0 if you think all went fine
- -- and -1 otherwise.
-
- -- ANCHOR(`ripoffline()',`Rip_Off_Lines')
- procedure Rip_Off_Lines (Lines : in Integer;
- Proc : in Stdscr_Init_Proc);
- -- AKA
- -- N.B.: to be more precise, this uses a ncurses specific enhancement of
- -- ripoffline(), in which the Lines argument absolute value is the
- -- number of lines to be ripped of. The official ripoffline() only
- -- uses the sign of Lines to rip of a single line from bottom or top.
- pragma Inline (Rip_Off_Lines);
-
- type Cursor_Visibility is (Invisible, Normal, Very_Visible);
-
- -- ANCHOR(`curs_set()',`Set_Cursor_Visibility')
- procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility);
- -- AKA
- pragma Inline (Set_Cursor_Visibility);
-
- -- ANCHOR(`napms()',`Nap_Milli_Seconds')
- procedure Nap_Milli_Seconds (Ms : in Natural);
- -- AKA
- pragma Inline (Nap_Milli_Seconds);
-
- -- |=====================================================================
- -- | Some useful helpers.
- -- |=====================================================================
- type Transform_Direction is (From_Screen, To_Screen);
- procedure Transform_Coordinates
- (W : in Window := Standard_Window;
- Line : in out Line_Position;
- Column : in out Column_Position;
- Dir : in Transform_Direction := From_Screen);
- -- This procedure transforms screen coordinates into coordinates relative
- -- to the window and vice versa, depending on the Dir parameter.
- -- Screen coordinates are the position informations on the physical device.
- -- An Curses_Exception will be raised if Line and Column are not in the
- -- 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;
-
- -- The next constants are generated and may be different on your
- -- architecture.
- --
-include(`Window_Offsets')dnl
- Curses_Bool_False : constant Curses_Bool := 0;
-
-end Terminal_Interface.Curses;
diff --git a/ncurses-5.3/Ada95/samples/Makefile.in b/ncurses-5.3/Ada95/samples/Makefile.in
deleted file mode 100644
index f751e89..0000000
--- a/ncurses-5.3/Ada95/samples/Makefile.in
+++ /dev/null
@@ -1,154 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Juergen Pfeifer, 1996
-# Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
-#
-# Version Control
-# $Revision$
-#
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-x = @PROG_EXT@
-
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @ACPPFLAGS@ \
- -DHAVE_CONFIG_H -I$(srcdir)
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-RANLIB = @RANLIB@
-################################################################################
-ada_srcdir=../src
-
-LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS)
-
-ADA = @cf_ada_compiler@
-ADAFLAGS = @ADAFLAGS@ -I$(srcdir)
-
-ADAMAKE = @cf_ada_make@
-ADAMAKEFLAGS = -a -A$(srcdir) -A$(ada_srcdir) -A$(srcdir)/$(ada_srcdir)
-
-ALIB = @cf_ada_package@
-ABASE = $(ALIB)-curses
-
-CARGS =-cargs $(ADAFLAGS)
-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 \
- sample-header_handler.o sample-helpers.o \
- sample-keyboard_handler.o sample-manifest.o sample-menu_demo.o \
- sample-menu_demo-aux.o sample-text_io_demo.o \
- sample-curses_demo-attributes.o sample-curses_demo-mouse.o \
- sample-form_demo-aux.o sample-my_field_type.o
-
-RAIN_OBJS = rain.o status.o
-
-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 :
- @
-
-libs \
-install \
-install.libs ::
- @
-
-uninstall \
-uninstall.libs ::
- @
-
-ncurses$x :
- $(ADAMAKE) $(ADAMAKEFLAGS) ncurses $(CARGS) $(LARGS)
-
-tour$x : explain.msg
- $(ADAMAKE) $(ADAMAKEFLAGS) tour $(CARGS) $(LARGS)
-
-explain.msg: $(srcdir)/explain.txt
- cp $(srcdir)/explain.txt $@
-
-rain$x :
- $(ADAMAKE) $(ADAMAKEFLAGS) rain $(CARGS) $(LARGS)
-
-mostlyclean:
- @
-
-clean :: mostlyclean
- 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
-
-realclean :: distclean
- @
-
-
diff --git a/ncurses-5.3/Ada95/samples/README b/ncurses-5.3/Ada95/samples/README
deleted file mode 100644
index 6ea8a18..0000000
--- a/ncurses-5.3/Ada95/samples/README
+++ /dev/null
@@ -1,6 +0,0 @@
-The intention of the demo at this point in time is not to demonstrate all
-the features of (n)curses and it's subsystems, but to give some sample
-sources how to use the binding at all.
-
-Ideally in the future we can combine both goals.
-
diff --git a/ncurses-5.3/Ada95/samples/explain.txt b/ncurses-5.3/Ada95/samples/explain.txt
deleted file mode 100644
index 570f617..0000000
--- a/ncurses-5.3/Ada95/samples/explain.txt
+++ /dev/null
@@ -1,186 +0,0 @@
-#VERSION
-This is Version 00.90.00 of the demo package.
-#MENUKEYS
-In a menu you can use the following Keys in the whole application:
-
- - CTRL-X eXit the menu
- - CTRL-N Go to next item
- - CTRL-P Go to previous item
- - CTRL-U Scroll up one line
- - CTRL-D Scroll down one line
- - CTRL-F Scroll down one page
- - PAGE DOWN Scroll down one page
- - PAGE UP Scroll back one page
- - CTRL-B Scroll back one page
- - CTRL-Y Clear pattern
- - CTRL-H Delete last character from pattern
- - Backspace Delete last character from pattern
- - CTRL-A Next pattern match
- - CTRL-E Previous pattern match
- - CTRL-T Toggle item in a multi-selection menu
- - CR or LF Select an item
- - HOME Key Go to the first item
- - F3 Quit the menu
- - Cursor Down Down one item
- - Cursor Up Up one item
- - Cursor Left Left one item
- - Cursor Right Right one item
- - END Key Go to last item
-#FORMKEYS
- - CTRL-X eXit the form
- - CTRL-F Go forward to the next field
- - CTRL-B Go backward to the previous field
- - CTRL-L Go to the field left of the current one
- - CTRL-R Go to the field right of the current one
- - CTRL-U Go to the field above the current one
- - CTRL-D Go to the field below the current one
-
- - CTRL-W Go to the next word in the field
- - CTRL-T Go to the previous word in the field
-
- - CTRL-A Go to the beginning of the field
- - CTRL-E Go to the end of the field
-
- - CTRL-I Insert a blank character at the current position
- - CTRL-O Insert a line
- - CTRL-V Delete a character
- - CTRL-H Delete previous character
- - CTRL-Y Delete a line
- - CTRL-G Delete a word
- - CTRL-K Clear to end of field
-
- - CTRL-N Next choice in a choice field (Enumerations etc.)
- - CTRL-P Previous choice in a choice field.
-#HELP
-#HELPKEYS
-You may scroll with the Cursor Up/Down Keys.
-You may leave the help with the Function Key labelled 'Quit'.
-#INHELP
-You are already in the help system.
-You may leave the help with the Function Key labelled 'Quit'.
-#MAIN
-This is the main menu of the sample program for the ncurses Ada95
-binding. The main intention of the demo is not to demonstate or
-test all the features of ncurses and it's subsystems, but to provide
-to you some sample code how to use the binding with Ada95.
-
-You may select this options:
-
- * Look at some ncurses core functions
- * Look at some features of the menu subsystem
- * Look at some features of the form subsystem
- * Look at the output of the Ada.Text_IO like functions
- for ncurses.
-
-#MAINPAD
-You may press at any place in this demo CTRL-C. This will give you a command
-window. You can just type in the Label-String of a function key, then this
-key will be simulated. This should help you to run the application even if
-you run it on a terminal with no or only a few function keys. With CTRL-N
-and CTRL-P you may browse through the possible values in the command window.
-#MENU00
-Here we give you a selection of various menu demonstrations.
-#MENU-PAD00
-This menu itself is a demo for a single valued, 1-column menu with
-descriptions for the items, a marker and a padding character between
-the item name and the description.
-#MENU01
-This is a demo of the some of the menu layout options. One of them
-is the spacing functionality. Just press the Key labelled "Flip" to
-flip between the non-spaced and a spaced version of the menu. Please
-note that this functionality is unique for ncurses and is not found
-in the SVr4 menu implementation.
-
-This is a menu that sometimes doesn't fit into it's window and
-therefore it becomes a scroll menu.
-
-You can also see here very nicely the pattern matching functionality
-of menus. Type for example a 'J' and you will be positioned to the
-next item after the current starting with a 'J'. Any more characters
-you type in make the pattern more specific. With CTRL-A and CTRL-Z
-(for more details press the Key labelled "Keys") you can browse
-through all the items matching the pattern.
-
-You may change the format of the menu. Just press one of the keys
-labelled "4x1", "4x2" or "4x3" to get a menu with that many rows
-and columns.
-
-With the Keys "O-Row" or "O-Col" (they occupy the same label and
-switch on selection) you can change the major order scheme for
-the menu. If "O-Col" is visible, the menu is currently major
-ordered by rows, you can switch to major column order by pressing
-the key. If "O-Row" is visible, it's just the reverse situation.
-This Key is not visible in "4x1" layout mode, because in this case
-the functionality makes no sense.
-
-With the Keys "Multi" or "Singl" (they occupy the same label and
-switch on selection) you can change whether or not the menu allows
-multiple or only single selection.
-
-With the Keys "+Desc" or "-Desc" (they occupy the same label and
-switch on selection) you can change whether or not the descriptions
-for each item should be displayed. Please not that this key is
-not visible in the "4x3" layout mode, because in this case the
-menu wouldn't fit on a typicall 80x24 screen.
-
-With the Keys "Disab" or "Enab" (they occupy the same label and
-switch on selection) you can dis- or enable the selectability of
-the month with 31 days.
-#MENU-PAD01
-You may press "Flip" to see the effect of ncurses unique menu-spacing.
-The Keys "4x1", "4x2" and "4x3" will change the format of the menu.
-Please note that this is a scrolling menu. You may also play with the
-pattern matching functionality or try to change the format of the menu.
-For more details press the Key labelled "Help".
-#FORM00
-This is a demo of the forms package.
-#FORM-PAD00
-Please note that this demo is far from being complete. It really shows
-only a small part of the functionality of the forms package. Let's hope
-the next version will have a richer demo (You wan't to contribute ?).
-#NOTIMPL
-Sorry this functionality of the demo is not implemented at the moment.
-Remember this is a freeware project, so I can use only my very rare
-free time to continue coding. If you would like to contribute, you
-are very welcome !
-#CURSES00
-This is a menu where you can select some different demos of the ncurses
-functionality.
-#CURSES-PAD00
-Please note that this demo is far from being complete. It really shows
-only a small part of the functionality of the curses package. Let's hope
-the next version will have a richer demo (You wan't to contribute ?).
-#MOUSEKEYS
-In this demo you may use this keys:
-
- - Key labelled "Help" to get a help
- - Key labelled "Keys" is what you are reading now
- - Key labelled "Quit" to leave the demo
-
-You may click the mouse buttons at any location at the screen and look
-at the protocol window !
-#MOUSE00
-A rather simple use of a mouse as demo. It's there just to test the
-code and to provide the sample source.
-
-It might be of interest, that the output into the protocol window is
-done by the (n)curses Text_IO subpackages. Especially the output of
-the button and state names is done by Ads's enumeration IO, which
-allows you to print the names of enumeration literals. That's really
-nice.
-#MOUSE-PAD00
-This is a very simple demo of the mouse features of ncurses. It's there
-just to test whether or not the generated code for the binding really
-works on the different architectures (seems so).
-#ATTRIBDEMO
-Again this is a more than simple demo and just here to give you the
-sourcecode.
-#ATTRIBKEYS
-You may press one of the three well known standard keys of this demo.
-#ATTRIB-PAD00
-Again this is a more than simple demo and just here to give you the
-sourcecode. Feel free to contribute more.
-#TEXTIO
-#TEXTIOKEYS
-#TEXTIO-PAD00
-#END
diff --git a/ncurses-5.3/Ada95/samples/ncurses.adb b/ncurses-5.3/Ada95/samples/ncurses.adb
deleted file mode 100644
index 4a9d20f..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses.adb
+++ /dev/null
@@ -1,47 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.adb b/ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.adb
deleted file mode 100644
index 7d6d198..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.adb
+++ /dev/null
@@ -1,722 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.ads b/ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.ads
deleted file mode 100644
index 45f3cdc..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-acs_and_scroll.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.acs_and_scroll;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-acs_display.adb b/ncurses-5.3/Ada95/samples/ncurses2-acs_display.adb
deleted file mode 100644
index 7e63b79..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-acs_display.adb
+++ /dev/null
@@ -1,231 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-acs_display.ads b/ncurses-5.3/Ada95/samples/ncurses2-acs_display.ads
deleted file mode 100644
index 39d9a0d..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-acs_display.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.acs_display;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-attr_test.adb b/ncurses-5.3/Ada95/samples/ncurses2-attr_test.adb
deleted file mode 100644
index d062572..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-attr_test.adb
+++ /dev/null
@@ -1,367 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-attr_test.ads b/ncurses-5.3/Ada95/samples/ncurses2-attr_test.ads
deleted file mode 100644
index ef50564..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-attr_test.ads
+++ /dev/null
@@ -1,42 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.attr_test;
-
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-color_edit.adb b/ncurses-5.3/Ada95/samples/ncurses2-color_edit.adb
deleted file mode 100644
index 567235c..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-color_edit.adb
+++ /dev/null
@@ -1,264 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-color_edit.ads b/ncurses-5.3/Ada95/samples/ncurses2-color_edit.ads
deleted file mode 100644
index 23c2b59..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-color_edit.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.color_edit;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-color_test.adb b/ncurses-5.3/Ada95/samples/ncurses2-color_test.adb
deleted file mode 100644
index 0b69d8d..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-color_test.adb
+++ /dev/null
@@ -1,164 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-color_test.ads b/ncurses-5.3/Ada95/samples/ncurses2-color_test.ads
deleted file mode 100644
index 85e1e59..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-color_test.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.color_test;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-demo_forms.adb b/ncurses-5.3/Ada95/samples/ncurses2-demo_forms.adb
deleted file mode 100644
index 20fa1f3..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-demo_forms.adb
+++ /dev/null
@@ -1,496 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-demo_forms.ads b/ncurses-5.3/Ada95/samples/ncurses2-demo_forms.ads
deleted file mode 100644
index 1148169..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-demo_forms.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.demo_forms;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-demo_pad.adb b/ncurses-5.3/Ada95/samples/ncurses2-demo_pad.adb
deleted file mode 100644
index 3e37a2a..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-demo_pad.adb
+++ /dev/null
@@ -1,671 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-demo_pad.ads b/ncurses-5.3/Ada95/samples/ncurses2-demo_pad.ads
deleted file mode 100644
index 09b8b8e..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-demo_pad.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.demo_pad;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-demo_panels.adb b/ncurses-5.3/Ada95/samples/ncurses2-demo_panels.adb
deleted file mode 100644
index f10d9a7..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-demo_panels.adb
+++ /dev/null
@@ -1,379 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-demo_panels.ads b/ncurses-5.3/Ada95/samples/ncurses2-demo_panels.ads
deleted file mode 100644
index 55ebdbd..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-demo_panels.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.demo_panels (nap_mseci : Integer);
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.adb b/ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.adb
deleted file mode 100644
index 7257bec..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.adb
+++ /dev/null
@@ -1,135 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.ads b/ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.ads
deleted file mode 100644
index 87efd47..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-flushinp_test.ads
+++ /dev/null
@@ -1,43 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses;
-
-procedure ncurses2.flushinp_test (win : Terminal_Interface.Curses.Window);
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-genericputs.adb b/ncurses-5.3/Ada95/samples/ncurses2-genericputs.adb
deleted file mode 100644
index 1921eed..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-genericputs.adb
+++ /dev/null
@@ -1,126 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-genericputs.ads b/ncurses-5.3/Ada95/samples/ncurses2-genericputs.ads
deleted file mode 100644
index 55e7d02..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-genericputs.ads
+++ /dev/null
@@ -1,73 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-getch.ads b/ncurses-5.3/Ada95/samples/ncurses2-getch.ads
deleted file mode 100644
index eb3ee66..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-getch.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure getch_test;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-getch_test.adb b/ncurses-5.3/Ada95/samples/ncurses2-getch_test.adb
deleted file mode 100644
index 5ed79a9..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-getch_test.adb
+++ /dev/null
@@ -1,251 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-getch_test.ads b/ncurses-5.3/Ada95/samples/ncurses2-getch_test.ads
deleted file mode 100644
index 29b8ff6..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-getch_test.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.getch_test;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-getopt.adb b/ncurses-5.3/Ada95/samples/ncurses2-getopt.adb
deleted file mode 100644
index 306c44d..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-getopt.adb
+++ /dev/null
@@ -1,168 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-getopt.ads b/ncurses-5.3/Ada95/samples/ncurses2-getopt.ads
deleted file mode 100644
index 64a997d..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-getopt.ads
+++ /dev/null
@@ -1,59 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-m.adb b/ncurses-5.3/Ada95/samples/ncurses2-m.adb
deleted file mode 100644
index 5506f91..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-m.adb
+++ /dev/null
@@ -1,460 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-m.ads b/ncurses-5.3/Ada95/samples/ncurses2-m.ads
deleted file mode 100644
index bf85383..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-m.ads
+++ /dev/null
@@ -1,43 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package ncurses2.m is
- function main return Integer;
-end ncurses2.m;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-menu_test.adb b/ncurses-5.3/Ada95/samples/ncurses2-menu_test.adb
deleted file mode 100644
index 18b38cc..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-menu_test.adb
+++ /dev/null
@@ -1,165 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-menu_test.ads b/ncurses-5.3/Ada95/samples/ncurses2-menu_test.ads
deleted file mode 100644
index 86a7e10..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-menu_test.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.menu_test;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-overlap_test.adb b/ncurses-5.3/Ada95/samples/ncurses2-overlap_test.adb
deleted file mode 100644
index 8ffeed6..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-overlap_test.adb
+++ /dev/null
@@ -1,156 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-overlap_test.ads b/ncurses-5.3/Ada95/samples/ncurses2-overlap_test.ads
deleted file mode 100644
index 499c98c..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-overlap_test.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.overlap_test;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-slk_test.adb b/ncurses-5.3/Ada95/samples/ncurses2-slk_test.adb
deleted file mode 100644
index 483ea5b..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-slk_test.adb
+++ /dev/null
@@ -1,171 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-slk_test.ads b/ncurses-5.3/Ada95/samples/ncurses2-slk_test.ads
deleted file mode 100644
index 76d099f..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-slk_test.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.slk_test;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.adb b/ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.adb
deleted file mode 100644
index 44c07a7..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.adb
+++ /dev/null
@@ -1,186 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.ads b/ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.ads
deleted file mode 100644
index 7e65327..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-test_sgr_attributes.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.test_sgr_attributes;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-trace_set.adb b/ncurses-5.3/Ada95/samples/ncurses2-trace_set.adb
deleted file mode 100644
index 339c140..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-trace_set.adb
+++ /dev/null
@@ -1,481 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-trace_set.ads b/ncurses-5.3/Ada95/samples/ncurses2-trace_set.ads
deleted file mode 100644
index fd2b0ad..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-trace_set.ads
+++ /dev/null
@@ -1,41 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure ncurses2.trace_set;
diff --git a/ncurses-5.3/Ada95/samples/ncurses2-util.adb b/ncurses-5.3/Ada95/samples/ncurses2-util.adb
deleted file mode 100644
index d771782..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-util.adb
+++ /dev/null
@@ -1,199 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2-util.ads b/ncurses-5.3/Ada95/samples/ncurses2-util.ads
deleted file mode 100644
index d9df609..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2-util.ads
+++ /dev/null
@@ -1,79 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/samples/ncurses2.ads b/ncurses-5.3/Ada95/samples/ncurses2.ads
deleted file mode 100644
index 8eb8aa4..0000000
--- a/ncurses-5.3/Ada95/samples/ncurses2.ads
+++ /dev/null
@@ -1,44 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-
-package ncurses2 is
- pragma Pure (ncurses2);
-end ncurses2;
diff --git a/ncurses-5.3/Ada95/samples/rain.adb b/ncurses-5.3/Ada95/samples/rain.adb
deleted file mode 100644
index 7e787e2..0000000
--- a/ncurses-5.3/Ada95/samples/rain.adb
+++ /dev/null
@@ -1,163 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Rain --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Laurent Pautet <pautet@gnat.com>
--- Modified by: Juergen Pfeifer, 1997
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- --
-with Ada.Numerics.Float_Random; use Ada.Numerics.Float_Random;
-with Status; use Status;
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
-procedure Rain is
-
- Visibility : Cursor_Visibility;
-
- subtype X_Position is Line_Position;
- subtype Y_Position is Column_Position;
-
- Xpos : array (1 .. 5) of X_Position;
- Ypos : array (1 .. 5) of Y_Position;
-
- N : Integer;
-
- G : Generator;
-
- Max_X, X : X_Position;
- Max_Y, Y : Y_Position;
-
- procedure Next (J : in out Integer);
- procedure Cursor (X : X_Position; Y : Y_Position);
-
- procedure Next (J : in out Integer) is
- begin
- if J = 5 then
- J := 1;
- else
- J := J + 1;
- end if;
- end Next;
-
- procedure Cursor (X : X_Position; Y : Y_Position) is
- begin
- Move_Cursor (Line => X, Column => Y);
- end Cursor;
- pragma Inline (Cursor);
-
-begin
-
- Init_Screen;
- Set_NL_Mode;
- Set_Echo_Mode (False);
-
- Visibility := Invisible;
- Set_Cursor_Visibility (Visibility);
-
- Max_X := Lines - 5;
- Max_Y := Columns - 5;
-
- for I in Xpos'Range loop
- Xpos (I) := X_Position (Float (Max_X) * Random (G)) + 2;
- Ypos (I) := Y_Position (Float (Max_Y) * Random (G)) + 2;
- end loop;
-
- N := 1;
- while Process.Continue loop
-
- X := X_Position (Float (Max_X) * Random (G)) + 2;
- Y := Y_Position (Float (Max_Y) * Random (G)) + 2;
-
- Cursor (X, Y);
- Add (Ch => '.');
-
- Cursor (Xpos (N), Ypos (N));
- Add (Ch => 'o');
-
- --
- Next (N);
- Cursor (Xpos (N), Ypos (N));
- Add (Ch => 'O');
-
- --
- Next (N);
- Cursor (Xpos (N) - 1, Ypos (N));
- Add (Ch => '-');
- Cursor (Xpos (N), Ypos (N) - 1);
- Add (Str => "|.|");
- Cursor (Xpos (N) + 1, Ypos (N));
- Add (Ch => '-');
-
- --
- Next (N);
- Cursor (Xpos (N) - 2, Ypos (N));
- Add (Ch => '-');
- Cursor (Xpos (N) - 1, Ypos (N) - 1);
- Add (Str => "/\\");
- Cursor (Xpos (N), Ypos (N) - 2);
- Add (Str => "| O |");
- Cursor (Xpos (N) + 1, Ypos (N) - 1);
- Add (Str => "\\/");
- Cursor (Xpos (N) + 2, Ypos (N));
- Add (Ch => '-');
-
- --
- Next (N);
- Cursor (Xpos (N) - 2, Ypos (N));
- Add (Ch => ' ');
- Cursor (Xpos (N) - 1, Ypos (N) - 1);
- Add (Str => " ");
- Cursor (Xpos (N), Ypos (N) - 2);
- Add (Str => " ");
- Cursor (Xpos (N) + 1, Ypos (N) - 1);
- Add (Str => " ");
- Cursor (Xpos (N) + 2, Ypos (N));
- Add (Ch => ' ');
-
- Xpos (N) := X;
- Ypos (N) := Y;
-
- Refresh;
- Nap_Milli_Seconds (50);
- end loop;
-
- Visibility := Normal;
- Set_Cursor_Visibility (Visibility);
- End_Windows;
-
-end Rain;
diff --git a/ncurses-5.3/Ada95/samples/rain.ads b/ncurses-5.3/Ada95/samples/rain.ads
deleted file mode 100644
index f8b5c38..0000000
--- a/ncurses-5.3/Ada95/samples/rain.ads
+++ /dev/null
@@ -1,44 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Rain --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Laurent Pautet <pautet@gnat.com>
--- Modified by: Juergen Pfeifer, 1997
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- --
-procedure Rain;
diff --git a/ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.adb b/ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.adb
deleted file mode 100644
index 7043973..0000000
--- a/ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.adb
+++ /dev/null
@@ -1,123 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo.Attributes --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Curses_Demo.Attributes is
-
- procedure Demo
- is
- P : Panel := Create (Standard_Window);
- K : Real_Key_Code;
- begin
- Set_Meta_Mode;
- Set_KeyPad_Mode;
-
- Top (P);
-
- Push_Environment ("ATTRIBDEMO");
- Default_Labels;
- Notepad ("ATTRIB-PAD00");
-
- Set_Character_Attributes (Attr => (others => False));
- Add (Line => 1, Column => Columns / 2 - 10,
- Str => "This is NORMAL");
-
- Set_Character_Attributes (Attr => (Stand_Out => True,
- others => False));
- Add (Line => 2, Column => Columns / 2 - 10,
- Str => "This is Stand_Out");
-
- Set_Character_Attributes (Attr => (Under_Line => True,
- others => False));
- Add (Line => 3, Column => Columns / 2 - 10,
- Str => "This is Under_Line");
-
- Set_Character_Attributes (Attr => (Reverse_Video => True,
- others => False));
- Add (Line => 4, Column => Columns / 2 - 10,
- Str => "This is Reverse_Video");
-
- Set_Character_Attributes (Attr => (Blink => True,
- others => False));
- Add (Line => 5, Column => Columns / 2 - 10,
- Str => "This is Blink");
-
- Set_Character_Attributes (Attr => (Dim_Character => True,
- others => False));
- Add (Line => 6, Column => Columns / 2 - 10,
- Str => "This is Dim_Character");
-
- Set_Character_Attributes (Attr => (Bold_Character => True,
- others => False));
- Add (Line => 7, Column => Columns / 2 - 10,
- Str => "This is Bold_Character");
-
- Refresh_Without_Update;
- Update_Panels; Update_Screen;
-
- loop
- K := Get_Key;
- if K in Special_Key_Code'Range then
- case K is
- when QUIT_CODE => exit;
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("ATTRIBKEYS");
- when others => null;
- end case;
- end if;
- end loop;
-
- Pop_Environment;
- Clear;
- Refresh_Without_Update;
- Delete (P);
- Update_Panels; Update_Screen;
-
- end Demo;
-
-end Sample.Curses_Demo.Attributes;
diff --git a/ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.ads b/ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.ads
deleted file mode 100644
index c0d1e15..0000000
--- a/ncurses-5.3/Ada95/samples/sample-curses_demo-attributes.ads
+++ /dev/null
@@ -1,46 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo.Attributes --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Curses_Demo.Attributes is
-
- procedure Demo;
-
-end Sample.Curses_Demo.Attributes;
diff --git a/ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.adb b/ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.adb
deleted file mode 100644
index a97c1ba..0000000
--- a/ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.adb
+++ /dev/null
@@ -1,221 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo.Mouse --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
-with Terminal_Interface.Curses.Text_IO; use Terminal_Interface.Curses.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Integer_IO;
-with Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Curses_Demo.Mouse is
-
- package Int_IO is new
- Terminal_Interface.Curses.Text_IO.Integer_IO (Integer);
- use Int_IO;
-
- package Button_IO is new
- Terminal_Interface.Curses.Text_IO.Enumeration_IO (Mouse_Button);
- use Button_IO;
-
- package State_IO is new
- Terminal_Interface.Curses.Text_IO.Enumeration_IO (Button_State);
- use State_IO;
-
- procedure Demo is
-
- type Controls is array (1 .. 3) of Panel;
-
- Frame : Window;
- Msg : Window;
- Ctl : Controls;
- Pan : Panel;
- K : Real_Key_Code;
- V : Cursor_Visibility := Invisible;
- W : Window;
- Note : Window;
- Msg_L : constant Line_Count := 8;
- Lins : Line_Position := Lines;
- Cols : Column_Position;
- Mask : Event_Mask;
- procedure Show_Mouse_Event;
-
- procedure Show_Mouse_Event
- is
- Evt : constant Mouse_Event := Get_Mouse;
- Y : Line_Position;
- X : Column_Position;
- Button : Mouse_Button;
- State : Button_State;
- W : Window;
- begin
- Get_Event (Evt, Y, X, Button, State);
- Put (Msg, "Event at");
- Put (Msg, " X="); Put (Msg, Integer (X), 3);
- Put (Msg, ", Y="); Put (Msg, Integer (Y), 3);
- Put (Msg, ", Btn="); Put (Msg, Button, 10);
- Put (Msg, ", Stat="); Put (Msg, State, 15);
- for I in Ctl'Range loop
- W := Get_Window (Ctl (I));
- if Enclosed_In_Window (W, Evt) then
- Transform_Coordinates (W, Y, X, From_Screen);
- Put (Msg, ",Box(");
- Put (Msg, Integer (I), 1); Put (Msg, ",");
- Put (Msg, Integer (Y), 1); Put (Msg, ",");
- Put (Msg, Integer (X), 1); Put (Msg, ")");
- end if;
- end loop;
- New_Line (Msg);
- Flush (Msg);
- Update_Panels; Update_Screen;
- end Show_Mouse_Event;
-
- begin
- Push_Environment ("MOUSE00");
- Notepad ("MOUSE-PAD00");
- Default_Labels;
- Set_Cursor_Visibility (V);
-
- Note := Notepad_Window;
- if Note /= Null_Window then
- Get_Window_Position (Note, Lins, Cols);
- end if;
- Frame := Create (Msg_L, Columns, Lins - Msg_L, 0);
- if Has_Colors then
- Set_Background (Win => Frame,
- Ch => (Color => Default_Colors,
- Attr => Normal_Video,
- Ch => ' '));
- Set_Character_Attributes (Win => Frame,
- Attr => Normal_Video,
- Color => Default_Colors);
- Erase (Frame);
- end if;
- Msg := Derived_Window (Frame, Msg_L - 2, Columns - 2, 1, 1);
- Pan := Create (Frame);
-
- Set_Meta_Mode;
- Set_KeyPad_Mode;
- Mask := Start_Mouse;
-
- Box (Frame);
- Window_Title (Frame, "Mouse Protocol");
- Refresh_Without_Update (Frame);
- Allow_Scrolling (Msg, True);
-
- declare
- Middle_Column : constant Integer := Integer (Columns) / 2;
- Middle_Index : constant Natural := Ctl'First + (Ctl'Length / 2);
- Width : constant Column_Count := 5;
- Height : constant Line_Count := 3;
- Half : constant Column_Count := Width / 2;
- Space : constant Column_Count := 3;
- Position : Integer;
- W : Window;
- begin
- for I in Ctl'Range loop
- Position := (Integer (I) - Integer (Middle_Index)) *
- Integer (Half + Space + Width) + Middle_Column;
- W := Create (Height,
- Width,
- 1,
- Column_Position (Position));
- if Has_Colors then
- Set_Background (Win => W,
- Ch => (Color => Menu_Back_Color,
- Attr => Normal_Video,
- Ch => ' '));
- Set_Character_Attributes (Win => W,
- Attr => Normal_Video,
- Color => Menu_Fore_Color);
- Erase (W);
- end if;
- Ctl (I) := Create (W);
- Box (W);
- Move_Cursor (W, 1, Half);
- Put (W, Integer (I), 1);
- Refresh_Without_Update (W);
- end loop;
- end;
-
- Update_Panels; Update_Screen;
-
- loop
- K := Get_Key;
- if K in Special_Key_Code'Range then
- case K is
- when QUIT_CODE => exit;
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("MOUSEKEYS");
- when Key_Mouse => Show_Mouse_Event;
- when others => null;
- end case;
- end if;
- end loop;
-
- for I in Ctl'Range loop
- W := Get_Window (Ctl (I));
- Clear (W);
- Delete (Ctl (I));
- Delete (W);
- end loop;
-
- Clear (Frame);
- Delete (Pan);
- Delete (Msg);
- Delete (Frame);
-
- Set_Cursor_Visibility (V);
- End_Mouse (Mask);
-
- Pop_Environment;
- Update_Panels; Update_Screen;
-
- end Demo;
-
-end Sample.Curses_Demo.Mouse;
-
diff --git a/ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.ads b/ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.ads
deleted file mode 100644
index 44f36b5..0000000
--- a/ncurses-5.3/Ada95/samples/sample-curses_demo-mouse.ads
+++ /dev/null
@@ -1,46 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo.Mouse --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Curses_Demo.Mouse is
-
- procedure Demo;
-
-end Sample.Curses_Demo.Mouse;
diff --git a/ncurses-5.3/Ada95/samples/sample-curses_demo.adb b/ncurses-5.3/Ada95/samples/sample-curses_demo.adb
deleted file mode 100644
index 483c8da..0000000
--- a/ncurses-5.3/Ada95/samples/sample-curses_demo.adb
+++ /dev/null
@@ -1,143 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-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;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Panels.User_Data;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-
-with Sample.Explanation; use Sample.Explanation;
-
-with Sample.Menu_Demo.Handler;
-with Sample.Curses_Demo.Mouse;
-with Sample.Curses_Demo.Attributes;
-
-package body Sample.Curses_Demo is
-
- type User_Data is new Integer;
- type User_Data_Access is access all User_Data;
- package PUD is new Panels.User_Data (User_Data, User_Data_Access);
- -- We use above instantiation of the generic User_Data package to
- -- demonstrate and test the use of the user data maechanism.
-
- procedure Demo
- is
- function My_Driver (M : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean;
- package Mh is new Sample.Menu_Demo.Handler (My_Driver);
-
- Itm : Item_Array_Access := new Item_Array'
- (New_Item ("Attributes Demo"),
- New_Item ("Mouse Demo"),
- Null_Item);
- M : Menu := New_Menu (Itm);
- U1 : User_Data_Access := new User_Data'(4711);
- U2 : User_Data_Access;
-
- function My_Driver (M : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean
- is
- Idx : constant Positive := Get_Index (Current (M));
- Result : Boolean := False;
- begin
- PUD.Set_User_Data (Pan, U1); -- set some user data, just for fun
- if K in User_Key_Code'Range then
- if K = QUIT then
- Result := True;
- elsif K = SELECT_ITEM then
- if Idx in Itm'Range then
- Hide (Pan);
- Update_Panels;
- end if;
- case Idx is
- when 1 => Sample.Curses_Demo.Attributes.Demo;
- when 2 => Sample.Curses_Demo.Mouse.Demo;
- when others => Not_Implemented;
- end case;
- if Idx in Itm'Range then
- Top (Pan);
- Show (Pan);
- Update_Panels;
- Update_Screen;
- end if;
- end if;
- end if;
- PUD.Get_User_Data (Pan, U2); -- get the user data
- pragma Assert (U1.all = U2.all and then U1 = U2);
- return Result;
- end My_Driver;
-
- begin
-
- if (1 + Item_Count (M)) /= Itm'Length then
- raise Constraint_Error;
- end if;
-
- if not Has_Mouse then
- declare
- O : Item_Option_Set;
- begin
- Get_Options (Itm (2), O);
- O.Selectable := False;
- Set_Options (Itm (2), O);
- end;
- end if;
-
- Push_Environment ("CURSES00");
- Notepad ("CURSES-PAD00");
- Default_Labels;
- Refresh_Soft_Label_Keys_Without_Update;
-
- Mh.Drive_Me (M, " Demo ");
- Pop_Environment;
-
- Delete (M);
- Free (Itm, True);
- end Demo;
-
-end Sample.Curses_Demo;
diff --git a/ncurses-5.3/Ada95/samples/sample-curses_demo.ads b/ncurses-5.3/Ada95/samples/sample-curses_demo.ads
deleted file mode 100644
index 4ca976b..0000000
--- a/ncurses-5.3/Ada95/samples/sample-curses_demo.ads
+++ /dev/null
@@ -1,46 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Curses_Demo --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Curses_Demo is
-
- procedure Demo;
-
-end Sample.Curses_Demo;
diff --git a/ncurses-5.3/Ada95/samples/sample-explanation.adb b/ncurses-5.3/Ada95/samples/sample-explanation.adb
deleted file mode 100644
index e24e8d5..0000000
--- a/ncurses-5.3/Ada95/samples/sample-explanation.adb
+++ /dev/null
@@ -1,409 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Explanation --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- Poor mans help system. This scans a sequential file for key lines and
--- then reads the lines up to the next key. Those lines are presented in
--- a window as help or explanation.
---
-with Ada.Text_IO; use Ada.Text_IO;
-with Ada.Unchecked_Deallocation;
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Helpers; use Sample.Helpers;
-
-package body Sample.Explanation is
-
- Help_Keys : constant String := "HELPKEYS";
- In_Help : constant String := "INHELP";
-
- File_Name : String := "explain.msg";
- F : File_Type;
-
- type Help_Line;
- type Help_Line_Access is access Help_Line;
- pragma Controlled (Help_Line_Access);
- type String_Access is access String;
- pragma Controlled (String_Access);
-
- type Help_Line is
- record
- Prev, Next : Help_Line_Access;
- Line : String_Access;
- end record;
-
- procedure Explain (Key : in String;
- Win : in Window);
-
- procedure Release_String is
- new Ada.Unchecked_Deallocation (String,
- String_Access);
- procedure Release_Help_Line is
- new Ada.Unchecked_Deallocation (Help_Line,
- Help_Line_Access);
-
- function Search (Key : String) return Help_Line_Access;
- procedure Release_Help (Root : in out Help_Line_Access);
-
- procedure Explain (Key : in String)
- is
- begin
- Explain (Key, Null_Window);
- end Explain;
-
- procedure Explain (Key : in String;
- Win : in Window)
- is
- -- Retrieve the text associated with this key and display it in this
- -- window. If no window argument is passed, the routine will create
- -- a temporary window and use it.
-
- function Filter_Key return Real_Key_Code;
- procedure Unknown_Key;
- procedure Redo;
- procedure To_Window (C : in out Help_Line_Access;
- More : in out Boolean);
-
- Frame : Window := Null_Window;
-
- W : Window := Win;
- K : Real_Key_Code;
- P : Panel;
-
- Height : Line_Count;
- Width : Column_Count;
- Help : Help_Line_Access := Search (Key);
- Current : Help_Line_Access;
- Top_Line : Help_Line_Access;
-
- Has_More : Boolean;
-
- procedure Unknown_Key
- is
- begin
- Add (W, "Help message with ID ");
- Add (W, Key);
- Add (W, " not found.");
- Add (W, Character'Val (10));
- Add (W, "Press the Function key labelled 'Quit' key to continue.");
- end Unknown_Key;
-
- procedure Redo
- is
- H : Help_Line_Access := Top_Line;
- begin
- if Top_Line /= null then
- for L in 0 .. (Height - 1) loop
- Add (W, L, 0, H.Line.all);
- exit when H.Next = null;
- H := H.Next;
- end loop;
- else
- Unknown_Key;
- end if;
- end Redo;
-
- function Filter_Key return Real_Key_Code
- is
- K : Real_Key_Code;
- begin
- loop
- K := Get_Key (W);
- if K in Special_Key_Code'Range then
- case K is
- when HELP_CODE =>
- if not Find_Context (In_Help) then
- Push_Environment (In_Help, False);
- Explain (In_Help, W);
- Pop_Environment;
- Redo;
- end if;
- when EXPLAIN_CODE =>
- if not Find_Context (Help_Keys) then
- Push_Environment (Help_Keys, False);
- Explain (Help_Keys, W);
- Pop_Environment;
- Redo;
- end if;
- when others => exit;
- end case;
- else
- exit;
- end if;
- end loop;
- return K;
- end Filter_Key;
-
- procedure To_Window (C : in out Help_Line_Access;
- More : in out Boolean)
- is
- L : Line_Position := 0;
- begin
- loop
- Add (W, L, 0, C.Line.all);
- L := L + 1;
- exit when C.Next = null or else L = Height;
- C := C.Next;
- end loop;
- if C.Next /= null then
- pragma Assert (L = Height);
- More := True;
- else
- More := False;
- end if;
- end To_Window;
-
- begin
- if W = Null_Window then
- Push_Environment ("HELP");
- Default_Labels;
- Frame := New_Window (Lines - 2, Columns, 0, 0);
- if Has_Colors then
- Set_Background (Win => Frame,
- Ch => (Ch => ' ',
- Color => Help_Color,
- Attr => Normal_Video));
- Set_Character_Attributes (Win => Frame,
- Attr => Normal_Video,
- Color => Help_Color);
- Erase (Frame);
- end if;
- Box (Frame);
- Set_Character_Attributes (Frame, (Reverse_Video => True,
- others => False));
- Add (Frame, Lines - 3, 2, "Cursor Up/Down scrolls");
- Set_Character_Attributes (Frame); -- Back to default.
- Window_Title (Frame, "Explanation");
- W := Derived_Window (Frame, Lines - 4, Columns - 2, 1, 1);
- Refresh_Without_Update (Frame);
- Get_Size (W, Height, Width);
- Set_Meta_Mode (W);
- Set_KeyPad_Mode (W);
- Allow_Scrolling (W, True);
- Set_Echo_Mode (False);
- P := Create (Frame);
- Top (P);
- Update_Panels;
- else
- Clear (W);
- Refresh_Without_Update (W);
- end if;
-
- Current := Help; Top_Line := Help;
-
- if null = Help then
- Unknown_Key;
- loop
- K := Filter_Key;
- exit when K = QUIT_CODE;
- end loop;
- else
- To_Window (Current, Has_More);
- if Has_More then
- -- This means there are more lines available, so we have to go
- -- into a scroll manager.
- loop
- K := Filter_Key;
- if K in Special_Key_Code'Range then
- case K is
- when Key_Cursor_Down =>
- if Current.Next /= null then
- Move_Cursor (W, Height - 1, 0);
- Scroll (W, 1);
- Current := Current.Next;
- Top_Line := Top_Line.Next;
- Add (W, Current.Line.all);
- end if;
- when Key_Cursor_Up =>
- if Top_Line.Prev /= null then
- Move_Cursor (W, 0, 0);
- Scroll (W, -1);
- Top_Line := Top_Line.Prev;
- Current := Current.Prev;
- Add (W, Top_Line.Line.all);
- end if;
- when QUIT_CODE => exit;
- when others => null;
- end case;
- end if;
- end loop;
- else
- loop
- K := Filter_Key;
- exit when K = QUIT_CODE;
- end loop;
- end if;
- end if;
-
- Clear (W);
-
- if Frame /= Null_Window then
- Clear (Frame);
- Delete (P);
- Delete (W);
- Delete (Frame);
- Pop_Environment;
- end if;
-
- Update_Panels;
- Update_Screen;
-
- Release_Help (Help);
-
- end Explain;
-
- function Search (Key : String) return Help_Line_Access
- is
- Last : Natural;
- Buffer : String (1 .. 256);
- Root : Help_Line_Access := null;
- Current : Help_Line_Access;
- Tail : Help_Line_Access := null;
-
- function Next_Line return Boolean;
-
- function Next_Line return Boolean
- is
- H_End : constant String := "#END";
- begin
- Get_Line (F, Buffer, Last);
- if Last = H_End'Length and then H_End = Buffer (1 .. Last) then
- return False;
- else
- return True;
- end if;
- end Next_Line;
- begin
- Reset (F);
- Outer :
- loop
- exit Outer when not Next_Line;
- if Last = (1 + Key'Length) and then Key = Buffer (2 .. Last)
- and then Buffer (1) = '#' then
- loop
- exit when not Next_Line;
- exit when Buffer (1) = '#';
- Current := new Help_Line'(null, null,
- new String'(Buffer (1 .. Last)));
- if Tail = null then
- Release_Help (Root);
- Root := Current;
- else
- Tail.Next := Current;
- Current.Prev := Tail;
- end if;
- Tail := Current;
- end loop;
- exit Outer;
- end if;
- end loop Outer;
- return Root;
- end Search;
-
- procedure Release_Help (Root : in out Help_Line_Access)
- is
- Next : Help_Line_Access;
- begin
- loop
- exit when Root = null;
- Next := Root.Next;
- Release_String (Root.Line);
- Release_Help_Line (Root);
- Root := Next;
- end loop;
- end Release_Help;
-
- procedure Explain_Context
- is
- begin
- Explain (Context);
- end Explain_Context;
-
- procedure Notepad (Key : in String)
- is
- H : constant Help_Line_Access := Search (Key);
- T : Help_Line_Access := H;
- N : Line_Count := 1;
- L : Line_Position := 0;
- W : Window;
- P : Panel;
- begin
- if H /= null then
- loop
- T := T.Next;
- exit when T = null;
- N := N + 1;
- end loop;
- W := New_Window (N + 2, Columns, Lines - N - 2, 0);
- if Has_Colors then
- Set_Background (Win => W,
- Ch => (Ch => ' ',
- Color => Notepad_Color,
- Attr => Normal_Video));
- Set_Character_Attributes (Win => W,
- Attr => Normal_Video,
- Color => Notepad_Color);
- Erase (W);
- end if;
- Box (W);
- Window_Title (W, "Notepad");
- P := New_Panel (W);
- T := H;
- loop
- Add (W, L + 1, 1, T.Line.all, Integer (Columns - 2));
- L := L + 1;
- T := T.Next;
- exit when T = null;
- end loop;
- T := H;
- Release_Help (T);
- Refresh_Without_Update (W);
- Notepad_To_Context (P);
- end if;
- end Notepad;
-
-begin
- Open (F, In_File, File_Name);
-end Sample.Explanation;
-
diff --git a/ncurses-5.3/Ada95/samples/sample-explanation.ads b/ncurses-5.3/Ada95/samples/sample-explanation.ads
deleted file mode 100644
index b7866e3..0000000
--- a/ncurses-5.3/Ada95/samples/sample-explanation.ads
+++ /dev/null
@@ -1,60 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Explanation --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- Poor mans help system. This scans a sequential file for key lines and
--- then reads the lines up to the next key. Those lines are presented in
--- a window as help or explanation.
---
-package Sample.Explanation is
-
- procedure Explain (Key : in String);
- -- Retrieve the text associated with this key and display it.
-
- procedure Explain_Context;
- -- Explain the current context.
-
- procedure Notepad (Key : in String);
- -- Put a note on the screen and maintain it with the context
-
- Explanation_Not_Found : exception;
- Explanation_Error : exception;
-
-end Sample.Explanation;
diff --git a/ncurses-5.3/Ada95/samples/sample-form_demo-aux.adb b/ncurses-5.3/Ada95/samples/sample-form_demo-aux.adb
deleted file mode 100644
index 5455478..0000000
--- a/ncurses-5.3/Ada95/samples/sample-form_demo-aux.adb
+++ /dev/null
@@ -1,260 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo.Aux --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Form_Demo.Aux is
-
- procedure Geometry (F : in Form;
- L : out Line_Count; -- Lines used for menu
- C : out Column_Count; -- Columns used for menu
- Y : out Line_Position; -- Proposed Line for menu
- X : out Column_Position) -- Proposed Column for menu
- is
- begin
- Scale (F, L, C);
-
- L := L + 2; -- count for frame at top and bottom
- C := C + 2; -- "
-
- -- Calculate horizontal coordinate at the screen center
- X := (Columns - C) / 2;
- Y := 1; -- start always in line 1
- end Geometry;
-
- function Create (F : Form;
- Title : String;
- Lin : Line_Position;
- Col : Column_Position) return Panel
- is
- W, S : Window;
- L : Line_Count;
- C : Column_Count;
- Y : Line_Position;
- X : Column_Position;
- Pan : Panel;
- begin
- Geometry (F, L, C, Y, X);
- W := New_Window (L, C, Lin, Col);
- Set_Meta_Mode (W);
- Set_KeyPad_Mode (W);
- if Has_Colors then
- Set_Background (Win => W,
- Ch => (Ch => ' ',
- Color => Default_Colors,
- Attr => Normal_Video));
- Set_Character_Attributes (Win => W,
- Color => Default_Colors,
- Attr => Normal_Video);
- Erase (W);
- end if;
- S := Derived_Window (W, L - 2, C - 2, 1, 1);
- Set_Meta_Mode (S);
- Set_KeyPad_Mode (S);
- Box (W);
- Set_Window (F, W);
- Set_Sub_Window (F, S);
- if Title'Length > 0 then
- Window_Title (W, Title);
- end if;
- Pan := New_Panel (W);
- Post (F);
- return Pan;
- end Create;
-
- procedure Destroy (F : in Form;
- P : in out Panel)
- is
- W, S : Window;
- begin
- W := Get_Window (F);
- S := Get_Sub_Window (F);
- Post (F, False);
- Erase (W);
- Delete (P);
- Set_Window (F, Null_Window);
- Set_Sub_Window (F, Null_Window);
- Delete (S);
- Delete (W);
- Update_Panels;
- end Destroy;
-
- function Get_Request (F : Form;
- P : Panel;
- Handle_CRLF : Boolean := True) return Key_Code
- is
- W : constant Window := Get_Window (F);
- K : Real_Key_Code;
- Ch : Character;
- begin
- Top (P);
- loop
- K := Get_Key (W);
- if K in Special_Key_Code'Range then
- case K is
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("FORMKEYS");
- when Key_Home => return F_First_Field;
- when Key_End => return F_Last_Field;
- when QUIT_CODE => return QUIT;
- when Key_Cursor_Down => return F_Down_Char;
- when Key_Cursor_Up => return F_Up_Char;
- when Key_Cursor_Left => return F_Previous_Char;
- when Key_Cursor_Right => return F_Next_Char;
- when Key_Next_Page => return F_Next_Page;
- when Key_Previous_Page => return F_Previous_Page;
- when Key_Backspace => return F_Delete_Previous;
- when Key_Clear_Screen => return F_Clear_Field;
- when Key_Clear_End_Of_Line => return F_Clear_EOF;
- when others => return K;
- end case;
- elsif K in Normal_Key_Code'Range then
- Ch := Character'Val (K);
- case Ch is
- when CAN => return QUIT; -- CTRL-X
-
- when ACK => return F_Next_Field; -- CTRL-F
- when STX => return F_Previous_Field; -- CTRL-B
- when FF => return F_Left_Field; -- CTRL-L
- when DC2 => return F_Right_Field; -- CTRL-R
- when NAK => return F_Up_Field; -- CTRL-U
- when EOT => return F_Down_Field; -- CTRL-D
-
- when ETB => return F_Next_Word; -- CTRL-W
- when DC4 => return F_Previous_Word; -- CTRL-T
-
- when SOH => return F_Begin_Field; -- CTRL-A
- when ENQ => return F_End_Field; -- CTRL-E
-
- when HT => return F_Insert_Char; -- CTRL-I
- when SI => return F_Insert_Line; -- CTRL-O
- when SYN => return F_Delete_Char; -- CTRL-V
- when BS => return F_Delete_Previous; -- CTRL-H
- when EM => return F_Delete_Line; -- CTRL-Y
- when BEL => return F_Delete_Word; -- CTRL-G
- when VT => return F_Clear_EOF; -- CTRL-K
-
- when SO => return F_Next_Choice; -- CTRL-N
- when DLE => return F_Previous_Choice; -- CTRL-P
-
- when CR | LF =>
- if Handle_CRLF then
- return F_New_Line;
- else
- return K;
- end if;
- when others => return K;
- end case;
- else
- return K;
- end if;
- end loop;
- end Get_Request;
-
- function Make (Top : Line_Position;
- Left : Column_Position;
- Text : String) return Field
- is
- Fld : Field;
- C : Column_Count := Column_Count (Text'Length);
- begin
- Fld := New_Field (1, C, Top, Left);
- Set_Buffer (Fld, 0, Text);
- Switch_Options (Fld, (Active => True, others => False), False);
- if Has_Colors then
- Set_Background (Fld => Fld, Color => Default_Colors);
- end if;
- return Fld;
- end Make;
-
- function Make (Height : Line_Count := 1;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0) return Field
- is
- Fld : Field := New_Field (Height, Width, Top, Left, Off_Screen);
- begin
- if Has_Colors then
- Set_Foreground (Fld => Fld, Color => Form_Fore_Color);
- Set_Background (Fld => Fld, Color => Form_Back_Color);
- else
- Set_Background (Fld, (Reverse_Video => True, others => False));
- end if;
- return Fld;
- end Make;
-
- function Default_Driver (F : Form;
- K : Key_Code;
- P : Panel) return Boolean
- is
- begin
- if K in User_Key_Code'Range and then K = QUIT then
- if Driver (F, F_Validate_Field) = Form_Ok then
- return True;
- end if;
- end if;
- return False;
- end Default_Driver;
-
- function Count_Active (F : Form) return Natural
- is
- N : Natural := 0;
- O : Field_Option_Set;
- H : constant Natural := Field_Count (F);
- begin
- if H > 0 then
- for I in 1 .. H loop
- Get_Options (Fields (F, I), O);
- if O.Active then
- N := N + 1;
- end if;
- end loop;
- end if;
- return N;
- end Count_Active;
-
-end Sample.Form_Demo.Aux;
diff --git a/ncurses-5.3/Ada95/samples/sample-form_demo-aux.ads b/ncurses-5.3/Ada95/samples/sample-form_demo-aux.ads
deleted file mode 100644
index 636da60..0000000
--- a/ncurses-5.3/Ada95/samples/sample-form_demo-aux.ads
+++ /dev/null
@@ -1,93 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo.Aux --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-
-package Sample.Form_Demo.Aux is
-
- procedure Geometry (F : in Form;
- L : out Line_Count;
- C : out Column_Count;
- Y : out Line_Position;
- X : out Column_Position);
- -- Calculate the geometry for a panel beeing able to be used to display
- -- the menu.
-
- function Create (F : Form;
- Title : String;
- Lin : Line_Position;
- Col : Column_Position) return Panel;
- -- Create a panel decorated with a frame and the title at the specified
- -- position. The dimension of the panel is derived from the menus layout.
-
- procedure Destroy (F : in Form;
- P : in out Panel);
- -- Destroy all the windowing structures associated with this menu and
- -- panel.
-
- function Get_Request (F : Form;
- P : Panel;
- Handle_CRLF : Boolean := True) return Key_Code;
- -- Centralized request driver for all menus in this sample. This
- -- gives us a common key binding for all menus.
-
- function Make (Top : Line_Position;
- Left : Column_Position;
- Text : String) return Field;
- -- create a label
-
- function Make (Height : Line_Count := 1;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0) return Field;
- -- create a editable field
-
- function Default_Driver (F : Form;
- K : Key_Code;
- P : Panel) return Boolean;
-
- function Count_Active (F : Form) return Natural;
- -- Count the number of active fields in the form
-
-end Sample.Form_Demo.Aux;
diff --git a/ncurses-5.3/Ada95/samples/sample-form_demo-handler.adb b/ncurses-5.3/Ada95/samples/sample-form_demo-handler.adb
deleted file mode 100644
index f2c27d6..0000000
--- a/ncurses-5.3/Ada95/samples/sample-form_demo-handler.adb
+++ /dev/null
@@ -1,98 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo.Handler --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Sample.Form_Demo.Aux;
-
-package body Sample.Form_Demo.Handler is
-
- package Aux renames Sample.Form_Demo.Aux;
-
- procedure Drive_Me (F : in Form;
- Title : in String := "")
- is
- L : Line_Count;
- C : Column_Count;
- Y : Line_Position;
- X : Column_Position;
- begin
- Aux.Geometry (F, L, C, Y, X);
- Drive_Me (F, Y, X, Title);
- end Drive_Me;
-
- procedure Drive_Me (F : in Form;
- Lin : in Line_Position;
- Col : in Column_Position;
- Title : in String := "")
- is
- Pan : Panel := Aux.Create (F, Title, Lin, Col);
- V : Cursor_Visibility := Normal;
- Handle_CRLF : Boolean := True;
-
- begin
- Set_Cursor_Visibility (V);
- if Aux.Count_Active (F) = 1 then
- Handle_CRLF := False;
- end if;
- loop
- declare
- K : Key_Code := Aux.Get_Request (F, Pan, Handle_CRLF);
- R : Driver_Result;
- begin
- if (K = 13 or else K = 10) and then not Handle_CRLF then
- R := Unknown_Request;
- else
- R := Driver (F, K);
- end if;
- case R is
- when Form_Ok => null;
- when Unknown_Request =>
- if My_Driver (F, K, Pan) then
- exit;
- end if;
- when others => Beep;
- end case;
- end;
- end loop;
- Set_Cursor_Visibility (V);
- Aux.Destroy (F, Pan);
- end Drive_Me;
-
-end Sample.Form_Demo.Handler;
diff --git a/ncurses-5.3/Ada95/samples/sample-form_demo-handler.ads b/ncurses-5.3/Ada95/samples/sample-form_demo-handler.ads
deleted file mode 100644
index 9b66686..0000000
--- a/ncurses-5.3/Ada95/samples/sample-form_demo-handler.ads
+++ /dev/null
@@ -1,65 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo.Handler --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses;
-use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels;
-use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Forms;
-use Terminal_Interface.Curses.Forms;
-
-generic
- with function My_Driver (Frm : Form;
- K : Key_Code;
- Pan : Panel) return Boolean;
-package Sample.Form_Demo.Handler is
-
- procedure Drive_Me (F : in Form;
- Lin : in Line_Position;
- Col : in Column_Position;
- Title : in String := "");
- -- Position the menu at the given point and drive it.
-
- procedure Drive_Me (F : in Form;
- Title : in String := "");
- -- Center menu and drive it.
-
-end Sample.Form_Demo.Handler;
diff --git a/ncurses-5.3/Ada95/samples/sample-form_demo.adb b/ncurses-5.3/Ada95/samples/sample-form_demo.adb
deleted file mode 100644
index 684ce6b..0000000
--- a/ncurses-5.3/Ada95/samples/sample-form_demo.adb
+++ /dev/null
@@ -1,135 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-with Terminal_Interface.Curses.Forms.Field_User_Data;
-with Terminal_Interface.Curses.Forms.Form_User_Data;
-with Sample.My_Field_Type; use Sample.My_Field_Type;
-with Sample.Explanation; use Sample.Explanation;
-with Sample.Form_Demo.Aux; use Sample.Form_Demo.Aux;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Form_Demo.Handler;
-
-with Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
-with Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-use Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-with Terminal_Interface.Curses.Forms.Field_Types.IntField;
-use Terminal_Interface.Curses.Forms.Field_Types.IntField;
-
-package body Sample.Form_Demo is
-
- type User_Data is
- record
- Data : Integer;
- end record;
- type User_Access is access User_Data;
-
- package Fld_U is new
- Terminal_Interface.Curses.Forms.Field_User_Data (User_Data,
- User_Access);
-
- package Frm_U is new
- Terminal_Interface.Curses.Forms.Form_User_Data (User_Data,
- User_Access);
-
- type Weekday is (Sunday, Monday, Tuesday, Wednesday, Thursday,
- Friday, Saturday);
-
- package Weekday_Enum is new
- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada (Weekday);
-
- Enum_Field : constant Enumeration_Field :=
- Weekday_Enum.Create;
-
- procedure Demo
- is
-
- Mft : My_Data := (Ch => 'X');
-
- FA : Field_Array_Access := new Field_Array'
- (Make (0, 14, "Sample Entry Form"),
- Make (2, 0, "WeekdayEnumeration"),
- Make (2, 20, "Numeric 1-10"),
- Make (2, 34, "Only 'X'"),
- Make (5, 0, "Multiple Lines offscreen(Scroll)"),
- Make (Width => 18, Top => 3, Left => 0),
- Make (Width => 12, Top => 3, Left => 20),
- Make (Width => 12, Top => 3, Left => 34),
- Make (Width => 46, Top => 6, Left => 0, Height => 4, Off_Screen => 2),
- Null_Field
- );
-
- Frm : Terminal_Interface.Curses.Forms.Form := Create (FA);
-
- I_F : constant Integer_Field := (Precision => 0,
- Lower_Limit => 1,
- Upper_Limit => 10);
-
- F1, F2 : User_Access;
-
- package Fh is new Sample.Form_Demo.Handler (Default_Driver);
-
- begin
- Push_Environment ("FORM00");
- Notepad ("FORM-PAD00");
- Default_Labels;
-
- Set_Field_Type (FA (6), Enum_Field);
- Set_Field_Type (FA (7), I_F);
- Set_Field_Type (FA (8), Mft);
-
- F1 := new User_Data'(Data => 4711);
- Fld_U.Set_User_Data (FA (1), F1);
-
- Fh.Drive_Me (Frm);
-
- Fld_U.Get_User_Data (FA (1), F2);
- pragma Assert (F1 = F2);
- pragma Assert (F1.Data = F2.Data);
-
- Pop_Environment;
- Delete (Frm);
-
- Free (FA, True);
- end Demo;
-
-end Sample.Form_Demo;
diff --git a/ncurses-5.3/Ada95/samples/sample-form_demo.ads b/ncurses-5.3/Ada95/samples/sample-form_demo.ads
deleted file mode 100644
index d9cc8bd..0000000
--- a/ncurses-5.3/Ada95/samples/sample-form_demo.ads
+++ /dev/null
@@ -1,46 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Form_Demo --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Form_Demo is
-
- procedure Demo;
-
-end Sample.Form_Demo;
diff --git a/ncurses-5.3/Ada95/samples/sample-function_key_setting.adb b/ncurses-5.3/Ada95/samples/sample-function_key_setting.adb
deleted file mode 100644
index 42f0fbf..0000000
--- a/ncurses-5.3/Ada95/samples/sample-function_key_setting.adb
+++ /dev/null
@@ -1,214 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Function_Key_Setting --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Deallocation;
-with Sample.Manifest; use Sample.Manifest;
-
--- This package implements a simple stack of function key label environments.
---
-package body Sample.Function_Key_Setting is
-
- Max_Label_Length : constant Positive := 8;
- Number_Of_Keys : Label_Number := Label_Number'Last;
- Justification : Label_Justification := Left;
-
- subtype Label is String (1 .. Max_Label_Length);
- type Label_Array is array (Label_Number range <>) of Label;
-
- type Key_Environment (N : Label_Number := Label_Number'Last);
- type Env_Ptr is access Key_Environment;
- pragma Controlled (Env_Ptr);
-
- type String_Access is access String;
- pragma Controlled (String_Access);
-
- Active_Context : String_Access := new String'("MAIN");
- Active_Notepad : Panel := Null_Panel;
-
- type Key_Environment (N : Label_Number := Label_Number'Last) is
- record
- Prev : Env_Ptr;
- Help : String_Access;
- Notepad : Panel;
- Labels : Label_Array (1 .. N);
- end record;
-
- procedure Release_String is
- new Ada.Unchecked_Deallocation (String,
- String_Access);
-
- procedure Release_Environment is
- new Ada.Unchecked_Deallocation (Key_Environment,
- Env_Ptr);
-
- Top_Of_Stack : Env_Ptr := null;
-
- procedure Push_Environment (Key : in String;
- Reset : in Boolean := True)
- is
- P : constant Env_Ptr := new Key_Environment (Number_Of_Keys);
- begin
- -- Store the current labels in the environment
- for I in 1 .. Number_Of_Keys loop
- Get_Soft_Label_Key (I, P.Labels (I));
- if Reset then
- Set_Soft_Label_Key (I, " ");
- end if;
- end loop;
- P.Prev := Top_Of_Stack;
- -- now store active help context and notepad
- P.Help := Active_Context;
- P.Notepad := Active_Notepad;
- -- The notepad must now vanish and the new notepad is empty.
- if (P.Notepad /= Null_Panel) then
- Hide (P.Notepad);
- Update_Panels;
- end if;
- Active_Notepad := Null_Panel;
- Active_Context := new String'(Key);
-
- Top_Of_Stack := P;
- if Reset then
- Refresh_Soft_Label_Keys_Without_Update;
- end if;
- end Push_Environment;
-
- procedure Pop_Environment
- is
- P : Env_Ptr := Top_Of_Stack;
- begin
- if Top_Of_Stack = null then
- raise Function_Key_Stack_Error;
- else
- for I in 1 .. Number_Of_Keys loop
- Set_Soft_Label_Key (I, P.Labels (I), Justification);
- end loop;
- pragma Assert (Active_Context /= null);
- Release_String (Active_Context);
- Active_Context := P.Help;
- Refresh_Soft_Label_Keys_Without_Update;
- Notepad_To_Context (P.Notepad);
- Top_Of_Stack := P.Prev;
- Release_Environment (P);
- end if;
- end Pop_Environment;
-
- function Context return String
- is
- begin
- if Active_Context /= null then
- return Active_Context.all;
- else
- return "";
- end if;
- end Context;
-
- function Find_Context (Key : String) return Boolean
- is
- P : Env_Ptr := Top_Of_Stack;
- begin
- if Active_Context.all = Key then
- return True;
- else
- loop
- exit when P = null;
- if P.Help.all = Key then
- return True;
- else
- P := P.Prev;
- end if;
- end loop;
- return False;
- end if;
- end Find_Context;
-
- procedure Notepad_To_Context (Pan : in Panel)
- is
- W : Window;
- begin
- if Active_Notepad /= Null_Panel then
- W := Get_Window (Active_Notepad);
- Clear (W);
- Delete (Active_Notepad);
- Delete (W);
- end if;
- Active_Notepad := Pan;
- if Pan /= Null_Panel then
- Top (Pan);
- end if;
- Update_Panels;
- Update_Screen;
- end Notepad_To_Context;
-
- procedure Initialize (Mode : Soft_Label_Key_Format := PC_Style;
- Just : Label_Justification := Left)
- is
- begin
- case Mode is
- when PC_Style .. PC_Style_With_Index
- => Number_Of_Keys := 12;
- when others
- => Number_Of_Keys := 8;
- end case;
- Init_Soft_Label_Keys (Mode);
- Justification := Just;
- end Initialize;
-
- procedure Default_Labels
- is
- begin
- Set_Soft_Label_Key (FKEY_QUIT, "Quit");
- Set_Soft_Label_Key (FKEY_HELP, "Help");
- Set_Soft_Label_Key (FKEY_EXPLAIN, "Keys");
- Refresh_Soft_Label_Keys_Without_Update;
- end Default_Labels;
-
- function Notepad_Window return Window
- is
- begin
- if Active_Notepad /= Null_Panel then
- return Get_Window (Active_Notepad);
- else
- return Null_Window;
- end if;
- end Notepad_Window;
-
-end Sample.Function_Key_Setting;
diff --git a/ncurses-5.3/Ada95/samples/sample-function_key_setting.ads b/ncurses-5.3/Ada95/samples/sample-function_key_setting.ads
deleted file mode 100644
index 4858c4c..0000000
--- a/ncurses-5.3/Ada95/samples/sample-function_key_setting.ads
+++ /dev/null
@@ -1,83 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Function_Key_Setting --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-
--- This package implements a simple stack of function key label environments.
---
-package Sample.Function_Key_Setting is
-
- procedure Push_Environment (Key : in String;
- Reset : in Boolean := True);
- -- Push the definition of the current function keys on an internal
- -- stack. If the reset flag is true, all labels are reset while
- -- pushed, so the new environment can assume a tabula rasa.
- -- The Key defines the new Help Context associated with the new
- -- Environment. This saves also the currently active Notepad.
-
- procedure Pop_Environment;
- -- Pop the Definitions from the stack and make them the current ones.
- -- This also restores the Help context and the previous Notepad.
-
- procedure Initialize (Mode : Soft_Label_Key_Format := PC_Style;
- Just : Label_Justification := Left);
- -- Initialize the environment
-
- function Context return String;
- -- Return the current context identitfier
-
- function Find_Context (Key : String) return Boolean;
- -- Look for a context, return true if it is in the stack,
- -- false otherwise.
-
- procedure Notepad_To_Context (Pan : in Panel);
- -- Add a panel representing a notepad to the current context.
-
- Function_Key_Stack_Error : exception;
-
- procedure Default_Labels;
- -- Set the default labels used in all environments
-
- function Notepad_Window return Window;
- -- Return the current notepad window or Null_Window if there is none.
-
-end Sample.Function_Key_Setting;
diff --git a/ncurses-5.3/Ada95/samples/sample-header_handler.adb b/ncurses-5.3/Ada95/samples/sample-header_handler.adb
deleted file mode 100644
index d65e88c..0000000
--- a/ncurses-5.3/Ada95/samples/sample-header_handler.adb
+++ /dev/null
@@ -1,181 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Header_Handler --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Calendar; use Ada.Calendar;
-with Terminal_Interface.Curses.Text_IO.Integer_IO;
-with Sample.Manifest; use Sample.Manifest;
-
--- This package handles the painting of the header line of the screen.
---
-package body Sample.Header_Handler is
-
- package Int_IO is new
- Terminal_Interface.Curses.Text_IO.Integer_IO (Integer);
- use Int_IO;
-
- Header_Window : Window := Null_Window;
-
- Display_Hour : Integer := -1; -- hour last displayed
- Display_Min : Integer := -1; -- minute last displayed
- Display_Day : Integer := -1; -- day last displayed
- Display_Month : Integer := -1; -- month last displayed
-
- -- This is the routine handed over to the curses library to be called
- -- as initialization routine when ripping of the header lines from
- -- the screen. This routine must follow C conventions.
- function Init_Header_Window (Win : Window;
- Columns : Column_Count) return Integer;
- pragma Convention (C, Init_Header_Window);
-
- procedure Internal_Update_Header_Window (Do_Update : in Boolean);
-
-
- -- The initialization must be called before Init_Screen. It steals two
- -- lines from the top of the screen.
- procedure Init_Header_Handler
- is
- begin
- Rip_Off_Lines (2, Init_Header_Window'Access);
- end Init_Header_Handler;
-
- procedure N_Out (N : in Integer);
-
- -- Emit a two digit number and ensure that a leading zero is generated if
- -- necessary.
- procedure N_Out (N : in Integer)
- is
- begin
- if N < 10 then
- Add (Header_Window, '0');
- Put (Header_Window, N, 1);
- else
- Put (Header_Window, N, 2);
- end if;
- end N_Out;
-
- -- Paint the header window. The input parameter is a flag indicating
- -- whether or not the screen should be updated physically after painting.
- procedure Internal_Update_Header_Window (Do_Update : in Boolean)
- is
- type Month_Name_Array is
- array (Month_Number'First .. Month_Number'Last) of String (1 .. 9);
-
- Month_Names : constant Month_Name_Array :=
- ("January ",
- "February ",
- "March ",
- "April ",
- "May ",
- "June ",
- "July ",
- "August ",
- "September",
- "October ",
- "November ",
- "December ");
-
- Now : Time := Clock;
- Sec : Integer := Integer (Seconds (Now));
- Hour : Integer := Sec / 3600;
- Minute : Integer := (Sec - Hour * 3600) / 60;
- Mon : Month_Number := Month (Now);
- D : Day_Number := Day (Now);
- begin
- if Header_Window /= Null_Window then
- if Minute /= Display_Min or else Hour /= Display_Hour
- or else Display_Day /= D or else Display_Month /= Mon then
- Move_Cursor (Header_Window, 0, 0);
- N_Out (D); Add (Header_Window, '.');
- Add (Header_Window, Month_Names (Mon));
- Move_Cursor (Header_Window, 1, 0);
- N_Out (Hour); Add (Header_Window, ':');
- N_Out (Minute);
- Display_Min := Minute;
- Display_Hour := Hour;
- Display_Month := Mon;
- Display_Day := D;
- Refresh_Without_Update (Header_Window);
- if Do_Update then
- Update_Screen;
- end if;
- end if;
- end if;
- end Internal_Update_Header_Window;
-
- -- This routine is called in the keyboard input timeout handler. So it will
- -- periodically update the header line of the screen.
- procedure Update_Header_Window
- is
- begin
- Internal_Update_Header_Window (True);
- end Update_Header_Window;
-
- function Init_Header_Window (Win : Window;
- Columns : Column_Count) return Integer
- is
- Title : constant String := "Ada 95 ncurses Binding Sample";
- Pos : Column_Position;
- begin
- Header_Window := Win;
- if Win /= Null_Window then
- if Has_Colors then
- Set_Background (Win => Win,
- Ch => (Ch => ' ',
- Color => Header_Color,
- Attr => Normal_Video));
- Set_Character_Attributes (Win => Win,
- Attr => Normal_Video,
- Color => Header_Color);
- Erase (Win);
- end if;
- Leave_Cursor_After_Update (Win, True);
- Pos := Columns - Column_Position (Title'Length);
- Add (Win, 0, Pos / 2, Title);
- -- In this phase we must not allow a physical update, because
- -- ncurses isn´t properly initialized at this point.
- Internal_Update_Header_Window (False);
- return 0;
- else
- return -1;
- end if;
- end Init_Header_Window;
-
-end Sample.Header_Handler;
diff --git a/ncurses-5.3/Ada95/samples/sample-header_handler.ads b/ncurses-5.3/Ada95/samples/sample-header_handler.ads
deleted file mode 100644
index ca2f2ab..0000000
--- a/ncurses-5.3/Ada95/samples/sample-header_handler.ads
+++ /dev/null
@@ -1,54 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Header_Handler --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
--- This package handles the painting of the header line of the screen.
---
-package Sample.Header_Handler is
-
- procedure Init_Header_Handler;
- -- Initialize the handler for the headerlines.
-
- procedure Update_Header_Window;
- -- Update the information in the header window
-
-end Sample.Header_Handler;
diff --git a/ncurses-5.3/Ada95/samples/sample-helpers.adb b/ncurses-5.3/Ada95/samples/sample-helpers.adb
deleted file mode 100644
index ee7b8bb..0000000
--- a/ncurses-5.3/Ada95/samples/sample-helpers.adb
+++ /dev/null
@@ -1,70 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Helpers --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
-with Sample.Explanation; use Sample.Explanation;
-
--- This package contains some conveniant helper routines used throughout
--- this example.
---
-package body Sample.Helpers is
-
- procedure Window_Title (Win : in Window;
- Title : in String)
- is
- Height : Line_Count;
- Width : Column_Count;
- Pos : Column_Position := 0;
- begin
- Get_Size (Win, Height, Width);
- if Title'Length < Width then
- Pos := (Width - Title'Length) / 2;
- end if;
- Add (Win, 0, Pos, Title);
- end Window_Title;
-
- procedure Not_Implemented is
- begin
- Explain ("NOTIMPL");
- end Not_Implemented;
-
-end Sample.Helpers;
diff --git a/ncurses-5.3/Ada95/samples/sample-helpers.ads b/ncurses-5.3/Ada95/samples/sample-helpers.ads
deleted file mode 100644
index 7b8a1e1..0000000
--- a/ncurses-5.3/Ada95/samples/sample-helpers.ads
+++ /dev/null
@@ -1,55 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Helpers --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
--- This package contains some conveniant helper routines used throughout
--- this example.
---
-package Sample.Helpers is
-
- procedure Window_Title (Win : in Window;
- Title : in String);
- -- Put a title string into the first line of the window
-
- procedure Not_Implemented;
-
-end Sample.Helpers;
diff --git a/ncurses-5.3/Ada95/samples/sample-keyboard_handler.adb b/ncurses-5.3/Ada95/samples/sample-keyboard_handler.adb
deleted file mode 100644
index 66dec91..0000000
--- a/ncurses-5.3/Ada95/samples/sample-keyboard_handler.adb
+++ /dev/null
@@ -1,192 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Keyboard_Handler --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Strings; use Ada.Strings;
-with Ada.Strings.Fixed; use Ada.Strings.Fixed;
-with Ada.Strings.Maps.Constants; use Ada.Strings.Maps.Constants;
-with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
-with Ada.Characters.Handling; use Ada.Characters.Handling;
-
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-with Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-use Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-
-with Sample.Header_Handler; use Sample.Header_Handler;
-with Sample.Form_Demo.Aux; use Sample.Form_Demo.Aux;
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Form_Demo.Handler;
-
--- This package contains a centralized keyboard handler used throughout
--- this example. The handler establishes a timeout mechanism that provides
--- periodical updates of the common header lines used in this example.
---
-
-package body Sample.Keyboard_Handler is
-
- In_Command : Boolean := False;
-
- function Get_Key (Win : Window := Standard_Window) return Real_Key_Code
- is
- K : Real_Key_Code;
-
- function Command return Real_Key_Code;
-
-
- function Command return Real_Key_Code
- is
- function My_Driver (F : Form;
- C : Key_Code;
- P : Panel) return Boolean;
- package Fh is new Sample.Form_Demo.Handler (My_Driver);
-
- type Label_Array is array (Label_Number) of String (1 .. 8);
-
- Labels : Label_Array;
-
- FA : Field_Array_Access := new Field_Array'
- (Make (0, 0, "Command:"),
- Make (Top => 0, Left => 9, Width => Columns - 11),
- Null_Field);
-
- K : Real_Key_Code := Key_None;
- N : Natural := 0;
-
- function My_Driver (F : Form;
- C : Key_Code;
- P : Panel) return Boolean
- is
- Ch : Character;
- begin
- if C in User_Key_Code'Range and then C = QUIT then
- if Driver (F, F_Validate_Field) = Form_Ok then
- K := Key_None;
- return True;
- end if;
- elsif C in Normal_Key_Code'Range then
- Ch := Character'Val (C);
- if (Ch = LF or else Ch = CR) then
- if Driver (F, F_Validate_Field) = Form_Ok then
- declare
- Buffer : String (1 .. Positive (Columns - 11));
- Cmdc : String (1 .. 8);
- begin
- Get_Buffer (Fld => FA (2), Str => Buffer);
- Trim (Buffer, Left);
- if Buffer (1) /= ' ' then
- Cmdc := To_Upper (Buffer (Cmdc'Range));
- for I in Labels'Range loop
- if Cmdc = Labels (I) then
- K := Function_Key_Code
- (Function_Key_Number (I));
- exit;
- end if;
- end loop;
- end if;
- return True;
- end;
- end if;
- end if;
- end if;
- return False;
- end My_Driver;
-
- begin
- In_Command := True;
- for I in Label_Number'Range loop
- Get_Soft_Label_Key (I, Labels (I));
- Trim (Labels (I), Left);
- Translate (Labels (I), Upper_Case_Map);
- if Labels (I) (1) /= ' ' then
- N := N + 1;
- end if;
- end loop;
- if N > 0 then -- some labels were really set
- declare
- Enum_Info : Enumeration_Info (N);
- Enum_Field : Enumeration_Field;
- J : Positive := Enum_Info.Names'First;
-
- Frm : Form := Create (FA);
-
- begin
- for I in Label_Number'Range loop
- if Labels (I) (1) /= ' ' then
- Enum_Info.Names (J) := new String'(Labels (I));
- J := J + 1;
- end if;
- end loop;
- Enum_Field := Create (Enum_Info, True);
- Set_Field_Type (FA (2), Enum_Field);
- Set_Background (FA (2), Normal_Video);
-
- Fh.Drive_Me (Frm, Lines - 3, 0);
- Delete (Frm);
- Update_Panels; Update_Screen;
- end;
- end if;
- Free (FA, True);
- In_Command := False;
- return K;
- end Command;
-
- begin
- Set_Timeout_Mode (Win, Delayed, 30000);
- loop
- K := Get_Keystroke (Win);
- if K = Key_None then -- a timeout occured
- Update_Header_Window;
- elsif K = 3 and then not In_Command then -- CTRL-C
- K := Command;
- exit when K /= Key_None;
- else
- exit;
- end if;
- end loop;
- return K;
- end Get_Key;
-
- procedure Init_Keyboard_Handler is
- begin
- null;
- end Init_Keyboard_Handler;
-
-end Sample.Keyboard_Handler;
diff --git a/ncurses-5.3/Ada95/samples/sample-keyboard_handler.ads b/ncurses-5.3/Ada95/samples/sample-keyboard_handler.ads
deleted file mode 100644
index 5021068..0000000
--- a/ncurses-5.3/Ada95/samples/sample-keyboard_handler.ads
+++ /dev/null
@@ -1,56 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Keyboard_Handler --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
--- This package contains a centralized keyboard handler used throughout
--- this example. The handler establishes a timeout mechanism that provides
--- periodical updates of the common header lines used in this example.
---
-package Sample.Keyboard_Handler is
-
- function Get_Key (Win : Window := Standard_Window) return Real_Key_Code;
- -- The central routine for handling keystrokes.
-
- procedure Init_Keyboard_Handler;
- -- Initialize the keyboard
-
-end Sample.Keyboard_Handler;
diff --git a/ncurses-5.3/Ada95/samples/sample-manifest.ads b/ncurses-5.3/Ada95/samples/sample-manifest.ads
deleted file mode 100644
index e50b2a8..0000000
--- a/ncurses-5.3/Ada95/samples/sample-manifest.ads
+++ /dev/null
@@ -1,68 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Manifest --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-
-package Sample.Manifest is
-
- QUIT : constant User_Key_Code := User_Key_Code'First;
- SELECT_ITEM : constant User_Key_Code := QUIT + 1;
-
- FKEY_HELP : constant Label_Number := 1;
- HELP_CODE : constant Special_Key_Code := Key_F1;
- FKEY_EXPLAIN : constant Label_Number := 2;
- EXPLAIN_CODE : constant Special_Key_Code := Key_F2;
- FKEY_QUIT : constant Label_Number := 3;
- QUIT_CODE : constant Special_Key_Code := Key_F3;
-
- Menu_Marker : constant String := "=> ";
-
- Default_Colors : constant Redefinable_Color_Pair := 1;
- Menu_Fore_Color : constant Redefinable_Color_Pair := 2;
- Menu_Back_Color : constant Redefinable_Color_Pair := 3;
- Menu_Grey_Color : constant Redefinable_Color_Pair := 4;
- Form_Fore_Color : constant Redefinable_Color_Pair := 5;
- Form_Back_Color : constant Redefinable_Color_Pair := 6;
- Notepad_Color : constant Redefinable_Color_Pair := 7;
- Help_Color : constant Redefinable_Color_Pair := 8;
- Header_Color : constant Redefinable_Color_Pair := 9;
-
-end Sample.Manifest;
diff --git a/ncurses-5.3/Ada95/samples/sample-menu_demo-aux.adb b/ncurses-5.3/Ada95/samples/sample-menu_demo-aux.adb
deleted file mode 100644
index 6bec082..0000000
--- a/ncurses-5.3/Ada95/samples/sample-menu_demo-aux.adb
+++ /dev/null
@@ -1,205 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo.Aux --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Menu_Demo.Aux is
-
- procedure Geometry (M : in Menu;
- L : out Line_Count;
- C : out Column_Count;
- Y : out Line_Position;
- X : out Column_Position;
- Fy : out Line_Position;
- Fx : out Column_Position);
-
- procedure Geometry (M : in Menu;
- L : out Line_Count; -- Lines used for menu
- C : out Column_Count; -- Columns used for menu
- Y : out Line_Position; -- Proposed Line for menu
- X : out Column_Position; -- Proposed Column for menu
- Fy : out Line_Position; -- Vertical inner frame
- Fx : out Column_Position) -- Horiz. inner frame
- is
- Spc_Desc : Column_Position; -- spaces between description and item
- begin
- Set_Mark (M, Menu_Marker);
-
- Spacing (M, Spc_Desc, Fy, Fx);
- Scale (M, L, C);
-
- Fx := Fx + Column_Position (Fy - 1); -- looks a bit nicer
-
- L := L + 2 * Fy; -- count for frame at top and bottom
- C := C + 2 * Fx; -- "
-
- -- Calculate horizontal coordinate at the screen center
- X := (Columns - C) / 2;
- Y := 1; -- always startin line 1
-
- end Geometry;
-
- procedure Geometry (M : in Menu;
- L : out Line_Count; -- Lines used for menu
- C : out Column_Count; -- Columns used for menu
- Y : out Line_Position; -- Proposed Line for menu
- X : out Column_Position) -- Proposed Column for menu
- is
- Fy : Line_Position;
- Fx : Column_Position;
- begin
- Geometry (M, L, C, Y, X, Fy, Fx);
- end Geometry;
-
- function Create (M : Menu;
- Title : String;
- Lin : Line_Position;
- Col : Column_Position) return Panel
- is
- W, S : Window;
- L : Line_Count;
- C : Column_Count;
- Y, Fy : Line_Position;
- X, Fx : Column_Position;
- Pan : Panel;
- begin
- Geometry (M, L, C, Y, X, Fy, Fx);
- W := New_Window (L, C, Lin, Col);
- Set_Meta_Mode (W);
- Set_KeyPad_Mode (W);
- if Has_Colors then
- Set_Background (Win => W,
- Ch => (Ch => ' ',
- Color => Menu_Back_Color,
- Attr => Normal_Video));
- Set_Foreground (Men => M, Color => Menu_Fore_Color);
- Set_Background (Men => M, Color => Menu_Back_Color);
- Set_Grey (Men => M, Color => Menu_Grey_Color);
- Erase (W);
- end if;
- S := Derived_Window (W, L - Fy, C - Fx, Fy, Fx);
- Set_Meta_Mode (S);
- Set_KeyPad_Mode (S);
- Box (W);
- Set_Window (M, W);
- Set_Sub_Window (M, S);
- if Title'Length > 0 then
- Window_Title (W, Title);
- end if;
- Pan := New_Panel (W);
- Post (M);
- return Pan;
- end Create;
-
- procedure Destroy (M : in Menu;
- P : in out Panel)
- is
- W, S : Window;
- begin
- W := Get_Window (M);
- S := Get_Sub_Window (M);
- Post (M, False);
- Erase (W);
- Delete (P);
- Set_Window (M, Null_Window);
- Set_Sub_Window (M, Null_Window);
- Delete (S);
- Delete (W);
- Update_Panels;
- end Destroy;
-
- function Get_Request (M : Menu; P : Panel) return Key_Code
- is
- W : constant Window := Get_Window (M);
- K : Real_Key_Code;
- Ch : Character;
- begin
- Top (P);
- loop
- K := Get_Key (W);
- if K in Special_Key_Code'Range then
- case K is
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("MENUKEYS");
- when Key_Home => return REQ_FIRST_ITEM;
- when QUIT_CODE => return QUIT;
- when Key_Cursor_Down => return REQ_DOWN_ITEM;
- when Key_Cursor_Up => return REQ_UP_ITEM;
- when Key_Cursor_Left => return REQ_LEFT_ITEM;
- when Key_Cursor_Right => return REQ_RIGHT_ITEM;
- when Key_End => return REQ_LAST_ITEM;
- when Key_Backspace => return REQ_BACK_PATTERN;
- when Key_Next_Page => return REQ_SCR_DPAGE;
- when Key_Previous_Page => return REQ_SCR_UPAGE;
- when others => return K;
- end case;
- elsif K in Normal_Key_Code'Range then
- Ch := Character'Val (K);
- case Ch is
- when CAN => return QUIT; -- CTRL-X
- when SO => return REQ_NEXT_ITEM; -- CTRL-N
- when DLE => return REQ_PREV_ITEM; -- CTRL-P
- when NAK => return REQ_SCR_ULINE; -- CTRL-U
- when EOT => return REQ_SCR_DLINE; -- CTRL-D
- when ACK => return REQ_SCR_DPAGE; -- CTRL-F
- when STX => return REQ_SCR_UPAGE; -- CTRL-B
- when EM => return REQ_CLEAR_PATTERN; -- CTRL-Y
- when BS => return REQ_BACK_PATTERN; -- CTRL-H
- when SOH => return REQ_NEXT_MATCH; -- CTRL-A
- when ENQ => return REQ_PREV_MATCH; -- CTRL-E
- when DC4 => return REQ_TOGGLE_ITEM; -- CTRL-T
-
- when CR | LF => return SELECT_ITEM;
- when others => return K;
- end case;
- else
- return K;
- end if;
- end loop;
- end Get_Request;
-
-end Sample.Menu_Demo.Aux;
-
diff --git a/ncurses-5.3/Ada95/samples/sample-menu_demo-aux.ads b/ncurses-5.3/Ada95/samples/sample-menu_demo-aux.ads
deleted file mode 100644
index 8c6f57f..0000000
--- a/ncurses-5.3/Ada95/samples/sample-menu_demo-aux.ads
+++ /dev/null
@@ -1,72 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo.Aux --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
-
-package Sample.Menu_Demo.Aux is
-
- procedure Geometry (M : in Menu;
- L : out Line_Count;
- C : out Column_Count;
- Y : out Line_Position;
- X : out Column_Position);
- -- Calculate the geometry for a panel beeing able to be used to display
- -- the menu.
-
- function Create (M : Menu;
- Title : String;
- Lin : Line_Position;
- Col : Column_Position) return Panel;
- -- Create a panel decorated with a frame and the title at the specified
- -- position. The dimension of the panel is derived from the menus layout.
-
- procedure Destroy (M : in Menu;
- P : in out Panel);
- -- Destroy all the windowing structures associated with this menu and
- -- panel.
-
- function Get_Request (M : Menu; P : Panel) return Key_Code;
- -- Centralized request driver for all menus in this sample. This
- -- gives us a common key binding for all menus.
-
-end Sample.Menu_Demo.Aux;
diff --git a/ncurses-5.3/Ada95/samples/sample-menu_demo-handler.adb b/ncurses-5.3/Ada95/samples/sample-menu_demo-handler.adb
deleted file mode 100644
index fd241a1..0000000
--- a/ncurses-5.3/Ada95/samples/sample-menu_demo-handler.adb
+++ /dev/null
@@ -1,108 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo.Handler --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Sample.Menu_Demo.Aux;
-with Sample.Manifest; use Sample.Manifest;
-with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
-
-package body Sample.Menu_Demo.Handler is
-
- package Aux renames Sample.Menu_Demo.Aux;
-
- procedure Drive_Me (M : in Menu;
- Title : in String := "")
- is
- L : Line_Count;
- C : Column_Count;
- Y : Line_Position;
- X : Column_Position;
- begin
- Aux.Geometry (M, L, C, Y, X);
- Drive_Me (M, Y, X, Title);
- end Drive_Me;
-
- procedure Drive_Me (M : in Menu;
- Lin : in Line_Position;
- Col : in Column_Position;
- Title : in String := "")
- is
- Mask : Event_Mask := No_Events;
- Old : Event_Mask;
- Pan : Panel := Aux.Create (M, Title, Lin, Col);
- V : Cursor_Visibility := Invisible;
- begin
- -- We are only interested in Clicks with the left button
- Register_Reportable_Events (Left, All_Clicks, Mask);
- Old := Start_Mouse (Mask);
- Set_Cursor_Visibility (V);
- loop
- declare
- K : Key_Code := Aux.Get_Request (M, Pan);
- R : Driver_Result := Driver (M, K);
- begin
- case R is
- when Menu_Ok => null;
- when Unknown_Request =>
- declare
- I : constant Item := Current (M);
- O : Item_Option_Set;
- begin
- if K = Key_Mouse then
- K := SELECT_ITEM;
- end if;
- Get_Options (I, O);
- if K = SELECT_ITEM and then not O.Selectable then
- Beep;
- else
- if My_Driver (M, K, Pan) then
- exit;
- end if;
- end if;
- end;
- when others => Beep;
- end case;
- end;
- end loop;
- End_Mouse (Old);
- Aux.Destroy (M, Pan);
- end Drive_Me;
-
-end Sample.Menu_Demo.Handler;
diff --git a/ncurses-5.3/Ada95/samples/sample-menu_demo-handler.ads b/ncurses-5.3/Ada95/samples/sample-menu_demo-handler.ads
deleted file mode 100644
index bfb4995..0000000
--- a/ncurses-5.3/Ada95/samples/sample-menu_demo-handler.ads
+++ /dev/null
@@ -1,65 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo.Handler --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses;
-use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels;
-use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Menus;
-use Terminal_Interface.Curses.Menus;
-
-generic
- with function My_Driver (Men : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean;
-package Sample.Menu_Demo.Handler is
-
- procedure Drive_Me (M : in Menu;
- Lin : in Line_Position;
- Col : in Column_Position;
- Title : in String := "");
- -- Position the menu at the given point and drive it.
-
- procedure Drive_Me (M : in Menu;
- Title : in String := "");
- -- Center menu and drive it.
-
-end Sample.Menu_Demo.Handler;
diff --git a/ncurses-5.3/Ada95/samples/sample-menu_demo.adb b/ncurses-5.3/Ada95/samples/sample-menu_demo.adb
deleted file mode 100644
index f70e9c7..0000000
--- a/ncurses-5.3/Ada95/samples/sample-menu_demo.adb
+++ /dev/null
@@ -1,391 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
-with Terminal_Interface.Curses.Menus.Menu_User_Data;
-with Terminal_Interface.Curses.Menus.Item_User_Data;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Menu_Demo.Handler;
-with Sample.Helpers; use Sample.Helpers;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Menu_Demo is
-
- package Spacing_Demo is
- procedure Spacing_Test;
- end Spacing_Demo;
-
- package body Spacing_Demo is
-
- procedure Spacing_Test
- is
- function My_Driver (M : Menu;
- K : Key_Code;
- P : Panel) return Boolean;
-
- procedure Set_Option_Key;
- procedure Set_Select_Key;
- procedure Set_Description_Key;
- procedure Set_Hide_Key;
-
- package Mh is new Sample.Menu_Demo.Handler (My_Driver);
-
- I : Item_Array_Access := new Item_Array'
- (New_Item ("January", "31 Days"),
- New_Item ("February", "28/29 Days"),
- New_Item ("March", "31 Days"),
- New_Item ("April", "30 Days"),
- New_Item ("May", "31 Days"),
- New_Item ("June", "30 Days"),
- New_Item ("July", "31 Days"),
- New_Item ("August", "31 Days"),
- New_Item ("September", "30 Days"),
- New_Item ("October", "31 Days"),
- New_Item ("November", "30 Days"),
- New_Item ("December", "31 Days"),
- Null_Item);
-
- M : Menu := New_Menu (I);
- Flip_State : Boolean := True;
- Hide_Long : Boolean := False;
-
- type Format_Code is (Four_By_1, Four_By_2, Four_By_3);
- type Operations is (Flip, Reorder, Reformat, Reselect, Describe);
-
- type Change is array (Operations) of Boolean;
- pragma Pack (Change);
- No_Change : constant Change := Change'(others => False);
-
- Current_Format : Format_Code := Four_By_1;
- To_Change : Change := No_Change;
-
- function My_Driver (M : Menu;
- K : Key_Code;
- P : Panel) return Boolean
- is
- begin
- To_Change := No_Change;
- if K in User_Key_Code'Range then
- if K = QUIT then
- return True;
- end if;
- end if;
- if K in Special_Key_Code'Range then
- case K is
- when Key_F4 =>
- To_Change (Flip) := True;
- return True;
- when Key_F5 =>
- To_Change (Reformat) := True;
- Current_Format := Four_By_1;
- return True;
- when Key_F6 =>
- To_Change (Reformat) := True;
- Current_Format := Four_By_2;
- return True;
- when Key_F7 =>
- To_Change (Reformat) := True;
- Current_Format := Four_By_3;
- return True;
- when Key_F8 =>
- To_Change (Reorder) := True;
- return True;
- when Key_F9 =>
- To_Change (Reselect) := True;
- return True;
- when Key_F10 =>
- if Current_Format /= Four_By_3 then
- To_Change (Describe) := True;
- return True;
- else
- return False;
- end if;
- when Key_F11 =>
- Hide_Long := not Hide_Long;
- declare
- O : Item_Option_Set;
- begin
- for J in I'Range loop
- Get_Options (I (J), O);
- O.Selectable := True;
- if Hide_Long then
- case J is
- when 1 | 3 | 5 | 7 | 8 | 10 | 12 =>
- O.Selectable := False;
- when others => null;
- end case;
- end if;
- Set_Options (I (J), O);
- end loop;
- end;
- return False;
- when others => null;
- end case;
- end if;
- return False;
- end My_Driver;
-
- procedure Set_Option_Key
- is
- O : Menu_Option_Set;
- begin
- if Current_Format = Four_By_1 then
- Set_Soft_Label_Key (8, "");
- else
- Get_Options (M, O);
- if O.Row_Major_Order then
- Set_Soft_Label_Key (8, "O-Col");
- else
- Set_Soft_Label_Key (8, "O-Row");
- end if;
- end if;
- Refresh_Soft_Label_Keys_Without_Update;
- end Set_Option_Key;
-
- procedure Set_Select_Key
- is
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- if O.One_Valued then
- Set_Soft_Label_Key (9, "Multi");
- else
- Set_Soft_Label_Key (9, "Singl");
- end if;
- Refresh_Soft_Label_Keys_Without_Update;
- end Set_Select_Key;
-
- procedure Set_Description_Key
- is
- O : Menu_Option_Set;
- begin
- if Current_Format = Four_By_3 then
- Set_Soft_Label_Key (10, "");
- else
- Get_Options (M, O);
- if O.Show_Descriptions then
- Set_Soft_Label_Key (10, "-Desc");
- else
- Set_Soft_Label_Key (10, "+Desc");
- end if;
- end if;
- Refresh_Soft_Label_Keys_Without_Update;
- end Set_Description_Key;
-
- procedure Set_Hide_Key
- is
- begin
- if Hide_Long then
- Set_Soft_Label_Key (11, "Enab");
- else
- Set_Soft_Label_Key (11, "Disab");
- end if;
- Refresh_Soft_Label_Keys_Without_Update;
- end Set_Hide_Key;
-
- begin
- Push_Environment ("MENU01");
- Notepad ("MENU-PAD01");
- Default_Labels;
- Set_Soft_Label_Key (4, "Flip");
- Set_Soft_Label_Key (5, "4x1");
- Set_Soft_Label_Key (6, "4x2");
- Set_Soft_Label_Key (7, "4x3");
- Set_Option_Key;
- Set_Select_Key;
- Set_Description_Key;
- Set_Hide_Key;
-
- Set_Format (M, 4, 1);
- loop
- Mh.Drive_Me (M);
- exit when To_Change = No_Change;
- if To_Change (Flip) then
- if Flip_State then
- Flip_State := False;
- Set_Spacing (M, 3, 2, 0);
- else
- Flip_State := True;
- Set_Spacing (M);
- end if;
- elsif To_Change (Reformat) then
- case Current_Format is
- when Four_By_1 => Set_Format (M, 4, 1);
- when Four_By_2 => Set_Format (M, 4, 2);
- when Four_By_3 =>
- declare
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- O.Show_Descriptions := False;
- Set_Options (M, O);
- Set_Format (M, 4, 3);
- end;
- end case;
- Set_Option_Key;
- Set_Description_Key;
- elsif To_Change (Reorder) then
- declare
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- O.Row_Major_Order := not O.Row_Major_Order;
- Set_Options (M, O);
- Set_Option_Key;
- end;
- elsif To_Change (Reselect) then
- declare
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- O.One_Valued := not O.One_Valued;
- Set_Options (M, O);
- Set_Select_Key;
- end;
- elsif To_Change (Describe) then
- declare
- O : Menu_Option_Set;
- begin
- Get_Options (M, O);
- O.Show_Descriptions := not O.Show_Descriptions;
- Set_Options (M, O);
- Set_Description_Key;
- end;
- else
- null;
- end if;
- end loop;
- Set_Spacing (M);
- Flip_State := True;
-
- Pop_Environment;
- pragma Assert (Get_Index (Items (M, 1)) = Get_Index (I (1)));
- Delete (M);
- Free (I, True);
- end Spacing_Test;
- end Spacing_Demo;
-
- procedure Demo
- is
- -- We use this datatype only to test the instantiation of
- -- the Menu_User_Data generic package. No functionality
- -- behind it.
- type User_Data is new Integer;
- type User_Data_Access is access User_Data;
-
- -- Those packages are only instantiated to test the usability.
- -- No real functionality is shown in the demo.
- package MUD is new Menu_User_Data (User_Data, User_Data_Access);
- package IUD is new Item_User_Data (User_Data, User_Data_Access);
-
- function My_Driver (M : Menu;
- K : Key_Code;
- P : Panel) return Boolean;
-
- package Mh is new Sample.Menu_Demo.Handler (My_Driver);
-
- Itm : Item_Array_Access := new Item_Array'
- (New_Item ("Menu Layout Options"),
- New_Item ("Demo of Hook functions"),
- Null_Item);
- M : Menu := New_Menu (Itm);
-
- U1 : User_Data_Access := new User_Data'(4711);
- U2 : User_Data_Access;
- U3 : User_Data_Access := new User_Data'(4712);
- U4 : User_Data_Access;
-
- function My_Driver (M : Menu;
- K : Key_Code;
- P : Panel) return Boolean
- is
- Idx : constant Positive := Get_Index (Current (M));
- begin
- if K in User_Key_Code'Range then
- if K = QUIT then
- return True;
- elsif K = SELECT_ITEM then
- if Idx in Itm'Range then
- Hide (P);
- Update_Panels;
- end if;
- case Idx is
- when 1 => Spacing_Demo.Spacing_Test;
- when others => Not_Implemented;
- end case;
- if Idx in Itm'Range then
- Top (P);
- Show (P);
- Update_Panels;
- Update_Screen;
- end if;
- end if;
- end if;
- return False;
- end My_Driver;
- begin
- Push_Environment ("MENU00");
- Notepad ("MENU-PAD00");
- Default_Labels;
- Refresh_Soft_Label_Keys_Without_Update;
- Set_Pad_Character (M, '|');
-
- MUD.Set_User_Data (M, U1);
- IUD.Set_User_Data (Itm (1), U3);
-
- Mh.Drive_Me (M);
-
- MUD.Get_User_Data (M, U2);
- pragma Assert (U1 = U2 and U1.all = 4711);
-
- IUD.Get_User_Data (Itm (1), U4);
- pragma Assert (U3 = U4 and U3.all = 4712);
-
- Pop_Environment;
- Delete (M);
- Free (Itm, True);
- end Demo;
-
-end Sample.Menu_Demo;
diff --git a/ncurses-5.3/Ada95/samples/sample-menu_demo.ads b/ncurses-5.3/Ada95/samples/sample-menu_demo.ads
deleted file mode 100644
index fa12e6f..0000000
--- a/ncurses-5.3/Ada95/samples/sample-menu_demo.ads
+++ /dev/null
@@ -1,46 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Menu_Demo --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Menu_Demo is
-
- procedure Demo;
-
-end Sample.Menu_Demo;
diff --git a/ncurses-5.3/Ada95/samples/sample-my_field_type.adb b/ncurses-5.3/Ada95/samples/sample-my_field_type.adb
deleted file mode 100644
index 0251f7f..0000000
--- a/ncurses-5.3/Ada95/samples/sample-my_field_type.adb
+++ /dev/null
@@ -1,66 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.My_Field_Type --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-
--- This is a very simple user defined field type. It accepts only a
--- defined character as input into the field.
---
-package body Sample.My_Field_Type is
-
- -- That's simple. There are no field validity checks.
- function Field_Check (Fld : Field;
- Typ : My_Data) return Boolean
- is
- begin
- return True;
- end Field_Check;
-
- -- Check exactly against the specified character.
- function Character_Check (Ch : Character;
- Typ : My_Data) return Boolean
- is
- C : constant Character := Typ.Ch;
- begin
- return Ch = C;
- end Character_Check;
-
-end Sample.My_Field_Type;
diff --git a/ncurses-5.3/Ada95/samples/sample-my_field_type.ads b/ncurses-5.3/Ada95/samples/sample-my_field_type.ads
deleted file mode 100644
index aca5442..0000000
--- a/ncurses-5.3/Ada95/samples/sample-my_field_type.ads
+++ /dev/null
@@ -1,63 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.My_Field_Type --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
-with Terminal_Interface.Curses.Forms.Field_Types.User;
-use Terminal_Interface.Curses.Forms.Field_Types.User;
-
--- This is a very simple user defined field type. It accepts only a
--- defined character as input into the field.
---
-package Sample.My_Field_Type is
-
- type My_Data is new User_Defined_Field_Type with
- record
- Ch : Character;
- end record;
-
- function Field_Check (Fld : Field;
- Typ : My_Data) return Boolean;
-
- function Character_Check (Ch : Character;
- Typ : My_Data) return Boolean;
-
-end Sample.My_Field_Type;
-
diff --git a/ncurses-5.3/Ada95/samples/sample-text_io_demo.adb b/ncurses-5.3/Ada95/samples/sample-text_io_demo.adb
deleted file mode 100644
index 5c6fbc7..0000000
--- a/ncurses-5.3/Ada95/samples/sample-text_io_demo.adb
+++ /dev/null
@@ -1,181 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Text_IO_Demo --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Numerics.Generic_Elementary_Functions;
-with Ada.Numerics.Complex_Types;
-use Ada.Numerics.Complex_Types;
-
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Text_IO;
-use Terminal_Interface.Curses.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Integer_IO;
-with Terminal_Interface.Curses.Text_IO.Float_IO;
-with Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-with Terminal_Interface.Curses.Text_IO.Complex_IO;
-with Terminal_Interface.Curses.Text_IO.Fixed_IO;
-with Terminal_Interface.Curses.Text_IO.Decimal_IO;
-with Terminal_Interface.Curses.Text_IO.Modular_IO;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-package body Sample.Text_IO_Demo is
-
- type Weekday is (Sunday,
- Monday,
- Tuesday,
- Wednesday,
- Thursday,
- Friday,
- Saturday);
-
- type Fix is delta 0.1 range 0.0 .. 4.0;
- type Dec is delta 0.01 digits 5 range 0.0 .. 4.0;
- type Md is mod 5;
-
- package Math is new
- Ada.Numerics.Generic_Elementary_Functions (Float);
-
- package Int_IO is new
- Terminal_Interface.Curses.Text_IO.Integer_IO (Integer);
- use Int_IO;
-
- package Real_IO is new
- Terminal_Interface.Curses.Text_IO.Float_IO (Float);
- use Real_IO;
-
- package Enum_IO is new
- Terminal_Interface.Curses.Text_IO.Enumeration_IO (Weekday);
- use Enum_IO;
-
- package C_IO is new
- Terminal_Interface.Curses.Text_IO.Complex_IO (Ada.Numerics.Complex_Types);
- use C_IO;
-
- package F_IO is new
- Terminal_Interface.Curses.Text_IO.Fixed_IO (Fix);
- use F_IO;
-
- package D_IO is new
- Terminal_Interface.Curses.Text_IO.Decimal_IO (Dec);
- use D_IO;
-
- package M_IO is new
- Terminal_Interface.Curses.Text_IO.Modular_IO (Md);
- use M_IO;
-
- procedure Demo
- is
- W : Window;
- P : Panel := Create (Standard_Window);
- K : Real_Key_Code;
- Im : Complex := (0.0, 1.0);
- Fx : Fix := 3.14;
- Dc : Dec := 2.72;
- L : Md;
-
- begin
- Push_Environment ("TEXTIO");
- Default_Labels;
- Notepad ("TEXTIO-PAD00");
-
- Set_Echo_Mode (False);
- Set_Meta_Mode;
- Set_KeyPad_Mode;
- W := Sub_Window (Standard_Window, Lines - 2, Columns - 2, 1, 1);
- Box;
- Refresh_Without_Update;
- Set_Meta_Mode (W);
- Set_KeyPad_Mode (W);
- Immediate_Update_Mode (W, True);
-
- Set_Window (W);
-
- for I in 1 .. 10 loop
- Put ("Square root of ");
- Put (Item => I, Width => 5);
- Put (" is ");
- Put (Item => Math.Sqrt (Float (I)), Exp => 0, Aft => 7);
- New_Line;
- end loop;
-
- for W in Weekday loop
- Put (Item => W); Put (' ');
- end loop;
- New_Line;
-
- L := Md'First;
- for I in 1 .. 2 loop
- for J in Md'Range loop
- Put (L); Put (' ');
- L := L + 1;
- end loop;
- end loop;
- New_Line;
-
- Put (Im); New_Line;
- Put (Fx); New_Line;
- Put (Dc); New_Line;
-
- loop
- K := Get_Key;
- if K in Special_Key_Code'Range then
- case K is
- when QUIT_CODE => exit;
- when HELP_CODE => Explain_Context;
- when EXPLAIN_CODE => Explain ("TEXTIOKEYS");
- when others => null;
- end case;
- end if;
- end loop;
-
- Set_Window (Null_Window);
- Erase; Refresh_Without_Update;
- Delete (P);
- Delete (W);
-
- Pop_Environment;
- end Demo;
-
-end Sample.Text_IO_Demo;
diff --git a/ncurses-5.3/Ada95/samples/sample-text_io_demo.ads b/ncurses-5.3/Ada95/samples/sample-text_io_demo.ads
deleted file mode 100644
index fa303cd..0000000
--- a/ncurses-5.3/Ada95/samples/sample-text_io_demo.ads
+++ /dev/null
@@ -1,46 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample.Text_IO_Demo --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample.Text_IO_Demo is
-
- procedure Demo;
-
-end Sample.Text_IO_Demo;
diff --git a/ncurses-5.3/Ada95/samples/sample.adb b/ncurses-5.3/Ada95/samples/sample.adb
deleted file mode 100644
index 1df4562..0000000
--- a/ncurses-5.3/Ada95/samples/sample.adb
+++ /dev/null
@@ -1,219 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Text_IO;
-
-with Ada.Exceptions; use Ada.Exceptions;
-
-with Terminal_Interface.Curses; use Terminal_Interface.Curses;
-with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
-with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
-with Terminal_Interface.Curses.Menus.Menu_User_Data;
-with Terminal_Interface.Curses.Menus.Item_User_Data;
-
-with Sample.Manifest; use Sample.Manifest;
-with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
-with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
-with Sample.Header_Handler; use Sample.Header_Handler;
-with Sample.Explanation; use Sample.Explanation;
-
-with Sample.Menu_Demo.Handler;
-with Sample.Curses_Demo;
-with Sample.Form_Demo;
-with Sample.Menu_Demo;
-with Sample.Text_IO_Demo;
-
-with GNAT.OS_Lib;
-
-package body Sample is
-
- type User_Data is
- record
- Data : Integer;
- end record;
- type User_Access is access User_Data;
-
- package Ud is new
- Terminal_Interface.Curses.Menus.Menu_User_Data
- (User_Data, User_Access);
-
- package Id is new
- Terminal_Interface.Curses.Menus.Item_User_Data
- (User_Data, User_Access);
-
- procedure Whow is
- procedure Main_Menu;
- procedure Main_Menu
- is
- function My_Driver (M : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean;
-
- package Mh is new Sample.Menu_Demo.Handler (My_Driver);
-
- I : Item_Array_Access := new Item_Array'
- (New_Item ("Curses Core Demo"),
- New_Item ("Menu Demo"),
- New_Item ("Form Demo"),
- New_Item ("Text IO Demo"),
- Null_Item);
-
- M : Menu := New_Menu (I);
-
- D1, D2 : User_Access;
- I1, I2 : User_Access;
-
- function My_Driver (M : Menu;
- K : Key_Code;
- Pan : Panel) return Boolean
- is
- Idx : constant Positive := Get_Index (Current (M));
- begin
- if K in User_Key_Code'Range then
- if K = QUIT then
- return True;
- elsif K = SELECT_ITEM then
- if Idx in 1 .. 4 then
- Hide (Pan);
- Update_Panels;
- end if;
- case Idx is
- when 1 => Sample.Curses_Demo.Demo;
- when 2 => Sample.Menu_Demo.Demo;
- when 3 => Sample.Form_Demo.Demo;
- when 4 => Sample.Text_IO_Demo.Demo;
- when others => null;
- end case;
- if Idx in 1 .. 4 then
- Top (Pan);
- Show (Pan);
- Update_Panels;
- Update_Screen;
- end if;
- end if;
- end if;
- return False;
- end My_Driver;
-
- begin
-
- if (1 + Item_Count (M)) /= I'Length then
- raise Constraint_Error;
- end if;
-
- D1 := new User_Data'(Data => 4711);
- Ud.Set_User_Data (M, D1);
-
- I1 := new User_Data'(Data => 1174);
- Id.Set_User_Data (I (1), I1);
-
- Set_Spacing (Men => M, Row => 2);
-
- Default_Labels;
- Notepad ("MAINPAD");
-
- Mh.Drive_Me (M, " Demo ");
-
- Ud.Get_User_Data (M, D2);
- pragma Assert (D1 = D2);
- pragma Assert (D1.Data = D2.Data);
-
- Id.Get_User_Data (I (1), I2);
- pragma Assert (I1 = I2);
- pragma Assert (I1.Data = I2.Data);
-
- Delete (M);
- Free (I, True);
- end Main_Menu;
-
- begin
- Initialize (PC_Style_With_Index);
- Init_Header_Handler;
- Init_Screen;
-
- if Has_Colors then
- Start_Color;
-
- Init_Pair (Pair => Default_Colors, Fore => Black, Back => White);
- Init_Pair (Pair => Menu_Back_Color, Fore => Black, Back => Cyan);
- Init_Pair (Pair => Menu_Fore_Color, Fore => Red, Back => Cyan);
- Init_Pair (Pair => Menu_Grey_Color, Fore => White, Back => Cyan);
- Init_Pair (Pair => Notepad_Color, Fore => Black, Back => Yellow);
- Init_Pair (Pair => Help_Color, Fore => Blue, Back => Cyan);
- Init_Pair (Pair => Form_Back_Color, Fore => Black, Back => Cyan);
- Init_Pair (Pair => Form_Fore_Color, Fore => Red, Back => Cyan);
- Init_Pair (Pair => Header_Color, Fore => Black, Back => Green);
-
- Set_Background (Ch => (Color => Default_Colors,
- Attr => Normal_Video,
- Ch => ' '));
- Set_Character_Attributes (Attr => Normal_Video,
- Color => Default_Colors);
- Erase;
-
- Set_Soft_Label_Key_Attributes (Color => Header_Color);
- -- This propagates the attributes to the label window
- Clear_Soft_Label_Keys; Restore_Soft_Label_Keys;
- end if;
-
- Init_Keyboard_Handler;
-
- Set_Echo_Mode (False);
- Set_Raw_Mode;
- Set_Meta_Mode;
- Set_KeyPad_Mode;
-
- -- Initialize the Function Key Environment
- -- We have some fixed key throughout this sample
- Main_Menu;
- End_Windows;
-
- exception
- when Event : others =>
- Terminal_Interface.Curses.End_Windows;
- Text_IO.Put ("Exception: ");
- Text_IO.Put (Exception_Name (Event));
- Text_IO.New_Line;
- GNAT.OS_Lib.OS_Exit (1);
-
- end Whow;
-
-end Sample;
diff --git a/ncurses-5.3/Ada95/samples/sample.ads b/ncurses-5.3/Ada95/samples/sample.ads
deleted file mode 100644
index 8789c19..0000000
--- a/ncurses-5.3/Ada95/samples/sample.ads
+++ /dev/null
@@ -1,44 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Sample --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Sample is
- procedure Whow;
-end Sample;
diff --git a/ncurses-5.3/Ada95/samples/status.adb b/ncurses-5.3/Ada95/samples/status.adb
deleted file mode 100644
index 0a45166..0000000
--- a/ncurses-5.3/Ada95/samples/status.adb
+++ /dev/null
@@ -1,58 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Status --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Laurent Pautet <pautet@gnat.com>
--- Modified by: Juergen Pfeifer, 1997
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- This package has been contributed by Laurent Pautet <pautet@gnat.com> --
--- --
-package body Status is
-
- protected body Process is
- procedure Stop is
- begin
- Done := True;
- end Stop;
- function Continue return Boolean is
- begin
- return not Done;
- end Continue;
- end Process;
-
-end Status;
diff --git a/ncurses-5.3/Ada95/samples/status.ads b/ncurses-5.3/Ada95/samples/status.ads
deleted file mode 100644
index 706e06d..0000000
--- a/ncurses-5.3/Ada95/samples/status.ads
+++ /dev/null
@@ -1,61 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Status --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Laurent Pautet <pautet@gnat.com>
--- Modified by: Juergen Pfeifer, 1997
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- This package has been contributed by Laurent Pautet <pautet@gnat.com> --
--- --
-with Ada.Interrupts.Names;
-
-package Status is
-
- pragma Warnings (Off); -- the next pragma exists since 3.11p
- pragma Unreserve_All_Interrupts;
- pragma Warnings (On);
-
- protected Process is
- procedure Stop;
- function Continue return Boolean;
- pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
- private
- Done : Boolean := False;
- end Process;
-
-end Status;
diff --git a/ncurses-5.3/Ada95/samples/tour.adb b/ncurses-5.3/Ada95/samples/tour.adb
deleted file mode 100644
index 4477ee5..0000000
--- a/ncurses-5.3/Ada95/samples/tour.adb
+++ /dev/null
@@ -1,47 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- tour --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Sample; use Sample;
-
-procedure Tour is
-begin
- Whow;
-end Tour;
diff --git a/ncurses-5.3/Ada95/samples/tour.ads b/ncurses-5.3/Ada95/samples/tour.ads
deleted file mode 100644
index 5e84c5f..0000000
--- a/ncurses-5.3/Ada95/samples/tour.ads
+++ /dev/null
@@ -1,42 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding Samples --
--- --
--- Tour --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-procedure Tour;
diff --git a/ncurses-5.3/Ada95/src/Makefile.in b/ncurses-5.3/Ada95/src/Makefile.in
deleted file mode 100644
index 4667808..0000000
--- a/ncurses-5.3/Ada95/src/Makefile.in
+++ /dev/null
@@ -1,390 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Juergen Pfeifer, 1996
-# Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
-#
-# Version Control
-# $Revision$
-#
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = ../../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-ADA_INCLUDE = @ADA_INCLUDE@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @ACPPFLAGS@ \
- -DHAVE_CONFIG_H -I$(srcdir)
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-RANLIB = @RANLIB@
-################################################################################
-ADA = @cf_ada_compiler@
-ADAPREP = gnatprep
-ADAFLAGS = @ADAFLAGS@ -I. -I$(srcdir)
-
-ADAMAKE = @cf_ada_make@
-ADAMAKEFLAGS =
-
-CARGS = -cargs $(ADAFLAGS)
-LARGS =
-
-ALIB = @cf_ada_package@
-ABASE = $(ALIB)-curses
-
-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)-forms.ali \
- $(ABASE)-forms-field_types.ali \
- $(ABASE)-forms-field_types-alpha.ali \
- $(ABASE)-forms-field_types-alphanumeric.ali \
- $(ABASE)-forms-field_types-intfield.ali \
- $(ABASE)-forms-field_types-numeric.ali \
- $(ABASE)-forms-field_types-regexp.ali \
- $(ABASE)-forms-field_types-enumeration.ali \
- $(ABASE)-forms-field_types-ipv4_address.ali \
- $(ABASE)-forms-field_types-user.ali \
- $(ABASE)-forms-field_types-user-choice.ali \
- $(ABASE)-text_io.ali \
- $(ABASE)-text_io-aux.ali
-
-# Ada Library files for generic packages. Since gnat 3.10 they are
-# also compiled
-GENALIS=$(ABASE)-menus-menu_user_data.ali \
- $(ABASE)-menus-item_user_data.ali \
- $(ABASE)-forms-form_user_data.ali \
- $(ABASE)-forms-field_user_data.ali \
- $(ABASE)-forms-field_types-enumeration-ada.ali \
- $(ABASE)-panels-user_data.ali \
- $(ABASE)-text_io-integer_io.ali \
- $(ABASE)-text_io-float_io.ali \
- $(ABASE)-text_io-fixed_io.ali \
- $(ABASE)-text_io-decimal_io.ali \
- $(ABASE)-text_io-enumeration_io.ali \
- $(ABASE)-text_io-modular_io.ali \
- $(ABASE)-text_io-complex_io.ali
-
-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)-forms.o \
- $(ABASE)-forms-field_types.o \
- $(ABASE)-forms-field_types-alpha.o \
- $(ABASE)-forms-field_types-alphanumeric.o \
- $(ABASE)-forms-field_types-intfield.o \
- $(ABASE)-forms-field_types-numeric.o \
- $(ABASE)-forms-field_types-regexp.o \
- $(ABASE)-forms-field_types-enumeration.o \
- $(ABASE)-forms-field_types-ipv4_address.o \
- $(ABASE)-forms-field_types-user.o \
- $(ABASE)-forms-field_types-user-choice.o \
- $(ABASE)-text_io.o \
- $(ABASE)-text_io-aux.o
-
-# Ada object files for generic packages. Since gnat 3.10 they are
-# also compiled
-GENOBJS=$(ABASE)-menus-menu_user_data.o \
- $(ABASE)-menus-item_user_data.o \
- $(ABASE)-forms-form_user_data.o \
- $(ABASE)-forms-field_user_data.o \
- $(ABASE)-forms-field_types-enumeration-ada.o \
- $(ABASE)-panels-user_data.o \
- $(ABASE)-text_io-integer_io.o \
- $(ABASE)-text_io-float_io.o \
- $(ABASE)-text_io-fixed_io.o \
- $(ABASE)-text_io-decimal_io.o \
- $(ABASE)-text_io-enumeration_io.o \
- $(ABASE)-text_io-modular_io.o \
- $(ABASE)-text_io-complex_io.o
-
-
-all :: libAdaCurses.a
- @echo done
-
-libAdaCurses.a :: dotouch $(LIBOBJS) @cf_generic_objects@
- $(AR) $(AR_OPTS) $@ $(LIBOBJS) @cf_generic_objects@
-
-dotouch :
- @sh -c 'for f in $(LIBALIS) $(GENALIS); do test -f $$f || touch $$f; done'
-
-sources :
- @
-
-libs \
-install \
-install.libs \
-uninstall \
-uninstall.libs ::
- @
-
-generics: $(GENALIS)
- @
-
-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) $(ABASE)-trace.adb
-
-distclean :: clean
- rm -f Makefile
-
-realclean :: distclean
-
-BASEDEPS=$(ABASE).ads $(ABASE)-aux.ads $(srcdir)/$(ABASE).adb
-
-$(ALIB).o: $(srcdir)/$(ALIB).ads
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ALIB).ads
-
-
-$(ABASE)-aux.o: $(srcdir)/$(ABASE)-aux.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-aux.adb
-
-
-$(ABASE).o: $(srcdir)/$(ABASE).adb $(BASEDEPS)
- $(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)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-mouse.adb
-
-
-$(ABASE)-panels.o: \
- $(ABASE)-panels.ads \
- $(srcdir)/$(ABASE)-panels.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-panels.adb
-
-
-$(ABASE)-menus.o: \
- $(ABASE)-menus.ads \
- $(srcdir)/$(ABASE)-menus.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus.adb
-
-
-$(ABASE)-forms.o: \
- $(ABASE)-forms.ads \
- $(srcdir)/$(ABASE)-forms.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms.adb
-
-$(ABASE)-forms-field_types.o: \
- $(ABASE)-forms-field_types.ads \
- $(srcdir)/$(ABASE)-forms-field_types.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types.adb
-
-$(ABASE)-forms-field_types-alpha.o: \
- $(srcdir)/$(ABASE)-forms-field_types-alpha.ads \
- $(srcdir)/$(ABASE)-forms-field_types-alpha.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-alpha.adb
-
-$(ABASE)-forms-field_types-alphanumeric.o: \
- $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.ads \
- $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.adb
-
-$(ABASE)-forms-field_types-intfield.o: \
- $(srcdir)/$(ABASE)-forms-field_types-intfield.ads \
- $(srcdir)/$(ABASE)-forms-field_types-intfield.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-intfield.adb
-
-$(ABASE)-forms-field_types-numeric.o: \
- $(srcdir)/$(ABASE)-forms-field_types-numeric.ads \
- $(srcdir)/$(ABASE)-forms-field_types-numeric.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-numeric.adb
-
-$(ABASE)-forms-field_types-regexp.o: \
- $(srcdir)/$(ABASE)-forms-field_types-regexp.ads \
- $(srcdir)/$(ABASE)-forms-field_types-regexp.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-regexp.adb
-
-$(ABASE)-forms-field_types-enumeration.o: \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration.ads \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-enumeration.adb
-
-$(ABASE)-forms-field_types-ipv4_address.o: \
- $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.ads \
- $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.adb
-
-$(ABASE)-forms-field_types-user.o: \
- $(srcdir)/$(ABASE)-forms-field_types-user.ads \
- $(srcdir)/$(ABASE)-forms-field_types-user.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-user.adb
-
-$(ABASE)-forms-field_types-user-choice.o: \
- $(srcdir)/$(ABASE)-forms-field_types-user-choice.ads \
- $(srcdir)/$(ABASE)-forms-field_types-user-choice.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-user-choice.adb
-
-$(ABASE)-text_io.o: \
- $(srcdir)/$(ABASE)-text_io.ads \
- $(srcdir)/$(ABASE)-text_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io.adb
-
-$(ABASE)-text_io-aux.o: \
- $(srcdir)/$(ABASE)-text_io-aux.ads \
- $(srcdir)/$(ABASE)-text_io-aux.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-aux.adb
-
-$(ABASE)-menus-menu_user_data.o: \
- $(ABASE)-menus-menu_user_data.ads \
- $(srcdir)/$(ABASE)-menus-menu_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus-menu_user_data.adb
-
-$(ABASE)-menus-item_user_data.o: \
- $(ABASE)-menus-item_user_data.ads \
- $(srcdir)/$(ABASE)-menus-item_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus-item_user_data.adb
-
-$(ABASE)-forms-form_user_data.o: \
- $(ABASE)-forms-form_user_data.ads \
- $(srcdir)/$(ABASE)-forms-form_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-form_user_data.adb
-
-$(ABASE)-forms-field_user_data.o: \
- $(ABASE)-forms-field_user_data.ads \
- $(srcdir)/$(ABASE)-forms-field_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_user_data.adb
-
-$(ABASE)-forms-field_types-enumeration-ada.o: \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.ads \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.adb
-
-$(ABASE)-panels-user_data.o: \
- $(ABASE)-panels-user_data.ads \
- $(srcdir)/$(ABASE)-panels-user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-panels-user_data.adb
-
-$(ABASE)-text_io-integer_io.o: \
- $(srcdir)/$(ABASE)-text_io-integer_io.ads \
- $(srcdir)/$(ABASE)-text_io-integer_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-integer_io.adb
-
-$(ABASE)-text_io-float_io.o: \
- $(srcdir)/$(ABASE)-text_io-float_io.ads \
- $(srcdir)/$(ABASE)-text_io-float_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-float_io.adb
-
-$(ABASE)-text_io-fixed_io.o: \
- $(srcdir)/$(ABASE)-text_io-fixed_io.ads \
- $(srcdir)/$(ABASE)-text_io-fixed_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-fixed_io.adb
-
-$(ABASE)-text_io-decimal_io.o: \
- $(srcdir)/$(ABASE)-text_io-decimal_io.ads \
- $(srcdir)/$(ABASE)-text_io-decimal_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-decimal_io.adb
-
-$(ABASE)-text_io-enumeration_io.o: \
- $(srcdir)/$(ABASE)-text_io-enumeration_io.ads \
- $(srcdir)/$(ABASE)-text_io-enumeration_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-enumeration_io.adb
-
-$(ABASE)-text_io-modular_io.o: \
- $(srcdir)/$(ABASE)-text_io-modular_io.ads \
- $(srcdir)/$(ABASE)-text_io-modular_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-modular_io.adb
-
-$(ABASE)-text_io-complex_io.o: \
- $(srcdir)/$(ABASE)-text_io-complex_io.ads \
- $(srcdir)/$(ABASE)-text_io-complex_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-complex_io.adb
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-aux.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-aux.adb
deleted file mode 100644
index e25e9b0..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-aux.adb
+++ /dev/null
@@ -1,117 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Aux --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Aux is
- --
- -- Some helpers
- procedure Fill_String (Cp : in chars_ptr;
- Str : out 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 Str'Length < Len then
- raise Constraint_Error;
- end if;
- declare
- S : String (1 .. Len);
- begin
- S := Value (Cp);
- Str (Str'First .. (Str'First + Len - 1)) := S (S'Range);
- end;
- else
- Len := 0;
- end if;
-
- if Len < Str'Length then
- Str ((Str'First + Len) .. Str'Last) := (others => ' ');
- end if;
-
- end Fill_String;
-
- function Fill_String (Cp : chars_ptr) return String
- is
- Len : Natural;
- begin
- if Cp /= Null_Ptr then
- Len := Natural (Strlen (Cp));
- if Len = 0 then
- return "";
- else
- declare
- S : String (1 .. Len);
- begin
- Fill_String (Cp, S);
- return S;
- end;
- end if;
- else
- return "";
- end if;
- end Fill_String;
-
- procedure Eti_Exception (Code : Eti_Error)
- is
- begin
- case Code is
- when E_Ok => null;
- when E_System_Error => raise Eti_System_Error;
- when E_Bad_Argument => raise Eti_Bad_Argument;
- when E_Posted => raise Eti_Posted;
- when E_Connected => raise Eti_Connected;
- when E_Bad_State => raise Eti_Bad_State;
- when E_No_Room => raise Eti_No_Room;
- when E_Not_Posted => raise Eti_Not_Posted;
- when E_Unknown_Command => raise Eti_Unknown_Command;
- when E_No_Match => raise Eti_No_Match;
- when E_Not_Selectable => raise Eti_Not_Selectable;
- when E_Not_Connected => raise Eti_Not_Connected;
- when E_Request_Denied => raise Eti_Request_Denied;
- when E_Invalid_Field => raise Eti_Invalid_Field;
- when E_Current => raise Eti_Current;
- end case;
- end Eti_Exception;
-
-end Terminal_Interface.Curses.Aux;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
deleted file mode 100644
index 6e6b335..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
+++ /dev/null
@@ -1,69 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Alpha --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.Alpha is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Alpha_Field)
- is
- C_Alpha_Field_Type : C_Field_Type;
- pragma Import (C, C_Alpha_Field_Type, "TYPE_ALPHA");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Alpha_Field_Type;
- Arg1 : C_Int) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Alpha;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads
deleted file mode 100644
index 73e73bd..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads
+++ /dev/null
@@ -1,54 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Alpha --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.Alpha is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Alpha);
-
- type Alpha_Field is new Field_Type
- with record
- Minimum_Field_Width : Natural := 0;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Alpha_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.Alpha;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
deleted file mode 100644
index f2e15ef..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
+++ /dev/null
@@ -1,69 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in AlphaNumeric_Field)
- is
- C_AlphaNumeric_Field_Type : C_Field_Type;
- pragma Import (C, C_AlphaNumeric_Field_Type, "TYPE_ALNUM");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_AlphaNumeric_Field_Type;
- Arg1 : C_Int) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads
deleted file mode 100644
index fb46701..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads
+++ /dev/null
@@ -1,55 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric);
-
- type AlphaNumeric_Field is new Field_Type
- with record
- Minimum_Field_Width : Natural := 0;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in AlphaNumeric_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
deleted file mode 100644
index 275c1dc..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
+++ /dev/null
@@ -1,81 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Characters.Handling; use Ada.Characters.Handling;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
-
- function Create (Set : Type_Set := Mixed_Case;
- Case_Sensitive : Boolean := False;
- Must_Be_Unique : Boolean := False)
- return Enumeration_Field
- is
- I : Enumeration_Info (T'Pos (T'Last) - T'Pos (T'First) + 1);
- J : Positive := 1;
- begin
- I.Case_Sensitive := Case_Sensitive;
- I.Match_Must_Be_Unique := Must_Be_Unique;
-
- for E in T'Range loop
- I.Names (J) := new String'(T'Image (T (E)));
- -- The Image attribute defaults to upper case, so we have to handle
- -- only the other ones...
- if Set /= Upper_Case then
- I.Names (J).all := To_Lower (I.Names (J).all);
- if Set = Mixed_Case then
- I.Names (J)(I.Names (J).all'First) :=
- To_Upper (I.Names (J)(I.Names (J).all'First));
- end if;
- end if;
- J := J + 1;
- end loop;
-
- return Create (I, True);
- end Create;
-
- function Value (Fld : Field;
- Buf : Buffer_Number := Buffer_Number'First) return T
- is
- begin
- return T'Value (Get_Buffer (Fld, Buf));
- end Value;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads
deleted file mode 100644
index 3a8b59a..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads
+++ /dev/null
@@ -1,60 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type T is (<>);
-
-package Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada);
-
- function Create (Set : Type_Set := Mixed_Case;
- Case_Sensitive : Boolean := False;
- Must_Be_Unique : Boolean := False)
- return Enumeration_Field;
-
- function Value (Fld : Field;
- Buf : Buffer_Number := Buffer_Number'First) return T;
- -- Translate the content of the fields buffer - indicated by the
- -- buffer number - into an enumeration value. If the buffer is empty
- -- or the content is invalid, a Constraint_Error is raises.
-
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
deleted file mode 100644
index a04a150..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
+++ /dev/null
@@ -1,120 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Deallocation;
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
-
- function Create (Info : Enumeration_Info;
- Auto_Release_Names : Boolean := False)
- return Enumeration_Field
- is
- procedure Release_String is
- new Ada.Unchecked_Deallocation (String,
- String_Access);
- E : Enumeration_Field;
- L : constant size_t := 1 + size_t (Info.C);
- S : String_Access;
- begin
- E.Case_Sensitive := Info.Case_Sensitive;
- E.Match_Must_Be_Unique := Info.Match_Must_Be_Unique;
- E.Arr := new chars_ptr_array (size_t (1) .. L);
- for I in 1 .. Positive (L - 1) loop
- if Info.Names (I) = null then
- raise Form_Exception;
- end if;
- E.Arr (size_t (I)) := New_String (Info.Names (I).all);
- if Auto_Release_Names then
- S := Info.Names (I);
- Release_String (S);
- end if;
- end loop;
- E.Arr (L) := Null_Ptr;
- return E;
- end Create;
-
- procedure Release (Enum : in out Enumeration_Field)
- is
- I : size_t := 0;
- P : chars_ptr;
- begin
- loop
- P := Enum.Arr (I);
- exit when P = Null_Ptr;
- Free (P);
- Enum.Arr (I) := Null_Ptr;
- I := I + 1;
- end loop;
- Enum.Arr := null;
- end Release;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Enumeration_Field)
- is
- C_Enum_Type : C_Field_Type;
- pragma Import (C, C_Enum_Type, "TYPE_ENUM");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Enum_Type;
- Arg1 : chars_ptr_array;
- Arg2 : C_Int;
- Arg3 : C_Int) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- if Typ.Arr = null then
- raise Form_Exception;
- end if;
- Res := Set_Fld_Type (Arg1 => Typ.Arr.all,
- Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
- Arg3 => C_Int (Boolean'Pos
- (Typ.Match_Must_Be_Unique)));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ, C_Choice_Router);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads
deleted file mode 100644
index 91955f5..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads
+++ /dev/null
@@ -1,99 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C.Strings;
-
-package Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.Enumeration);
-
- type String_Access is access String;
-
- -- Type_Set is used by the child package Ada
- type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
-
- type Enum_Array is array (Positive range <>)
- of String_Access;
-
- type Enumeration_Info (C : Positive) is
- record
- Names : Enum_Array (1 .. C);
- Case_Sensitive : Boolean := False;
- Match_Must_Be_Unique : Boolean := False;
- end record;
-
- type Enumeration_Field is new Field_Type with private;
-
- function Create (Info : Enumeration_Info;
- Auto_Release_Names : Boolean := False)
- return Enumeration_Field;
- -- Make an fieldtype from the info. Enumerations are special, because
- -- they normally don't copy the enum values into a private store, so
- -- we have to care for the lifetime of the info we provide.
- -- The Auto_Release_Names flag may be used to automatically releases
- -- the strings in the Names array of the Enumeration_Info.
-
- function Make_Enumeration_Type (Info : Enumeration_Info;
- Auto_Release_Names : Boolean := False)
- return Enumeration_Field renames Create;
-
- procedure Release (Enum : in out Enumeration_Field);
- -- But we may want to release the field to release the memory allocated
- -- by it internally. After that the Enumeration field is no longer usable.
-
- -- The next type defintions are all ncurses extensions. They are typically
- -- not available in other curses implementations.
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Enumeration_Field);
- pragma Inline (Set_Field_Type);
-
-private
- type CPA_Access is access Interfaces.C.Strings.chars_ptr_array;
-
- type Enumeration_Field is new Field_Type with
- record
- Case_Sensitive : Boolean := False;
- Match_Must_Be_Unique : Boolean := False;
- Arr : CPA_Access := null;
- end record;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
deleted file mode 100644
index 7a29821..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
+++ /dev/null
@@ -1,73 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.IntField --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.IntField is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Integer_Field)
- is
- C_Integer_Field_Type : C_Field_Type;
- pragma Import (C, C_Integer_Field_Type, "TYPE_INTEGER");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Integer_Field_Type;
- Arg1 : C_Int;
- Arg2 : C_Long_Int;
- Arg3 : C_Long_Int) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
- Arg2 => C_Long_Int (Typ.Lower_Limit),
- Arg3 => C_Long_Int (Typ.Upper_Limit));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.IntField;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads
deleted file mode 100644
index d473854..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads
+++ /dev/null
@@ -1,56 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.IntField --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.IntField is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.IntField);
-
- type Integer_Field is new Field_Type with
- record
- Precision : Natural;
- Lower_Limit : Integer;
- Upper_Limit : Integer;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Integer_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.IntField;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
deleted file mode 100644
index 889a08d..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
+++ /dev/null
@@ -1,69 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Internet_V4_Address_Field)
- is
- C_IPV4_Field_Type : C_Field_Type;
- pragma Import (C, C_IPV4_Field_Type, "TYPE_IPV4");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_IPV4_Field_Type)
- return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type;
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads
deleted file mode 100644
index d2db1a3..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads
+++ /dev/null
@@ -1,52 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address);
-
- type Internet_V4_Address_Field is new Field_Type with null record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Internet_V4_Address_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb
deleted file mode 100644
index 3ad26ab..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb
+++ /dev/null
@@ -1,75 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Numeric --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.Numeric is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Numeric_Field)
- is
- type Double is new Interfaces.C.double;
-
- C_Numeric_Field_Type : C_Field_Type;
- pragma Import (C, C_Numeric_Field_Type, "TYPE_NUMERIC");
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Numeric_Field_Type;
- Arg1 : C_Int;
- Arg2 : Double;
- Arg3 : Double) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
- begin
- Res := Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
- Arg2 => Double (Typ.Lower_Limit),
- Arg3 => Double (Typ.Upper_Limit));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.Numeric;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads
deleted file mode 100644
index 3385864..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads
+++ /dev/null
@@ -1,56 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.Numeric --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.Numeric is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Numeric);
-
- type Numeric_Field is new Field_Type with
- record
- Precision : Natural;
- Lower_Limit : Float;
- Upper_Limit : Float;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Numeric_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.Numeric;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
deleted file mode 100644
index 48725f5..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
+++ /dev/null
@@ -1,72 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.RegExp --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C; use Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.RegExp is
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Regular_Expression_Field)
- is
- type Char_Ptr is access all Interfaces.C.char;
-
- C_Regexp_Field_Type : C_Field_Type;
- pragma Import (C, C_Regexp_Field_Type, "TYPE_REGEXP");
-
- function Set_Ftyp (F : Field := Fld;
- Cft : C_Field_Type := C_Regexp_Field_Type;
- Arg1 : Char_Ptr) return C_Int;
- pragma Import (C, Set_Ftyp, "set_field_type");
-
- Txt : char_array (0 .. Typ.Regular_Expression.all'Length);
- Len : size_t;
- Res : Eti_Error;
- begin
- To_C (Typ.Regular_Expression.all, Txt, Len);
- Res := Set_Ftyp (Arg1 => Txt (Txt'First)'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Wrap_Builtin (Fld, Typ);
- end Set_Field_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.RegExp;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads
deleted file mode 100644
index 6201807..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads
+++ /dev/null
@@ -1,56 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.RegExp --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.RegExp is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.RegExp);
-
- type String_Access is access String;
-
- type Regular_Expression_Field is new Field_Type with
- record
- Regular_Expression : String_Access;
- end record;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in Regular_Expression_Field);
- pragma Inline (Set_Field_Type);
-
-end Terminal_Interface.Curses.Forms.Field_Types.RegExp;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
deleted file mode 100644
index 129ea2d..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
+++ /dev/null
@@ -1,111 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Conversion;
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
-
- use type Interfaces.C.int;
-
- function To_Argument_Access is new Ada.Unchecked_Conversion
- (System.Address, Argument_Access);
-
- function Generic_Next (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Result : Boolean;
- Udf : User_Defined_Field_Type_With_Choice_Access :=
- User_Defined_Field_Type_With_Choice_Access
- (To_Argument_Access (Usr).Typ);
- begin
- Result := Next (Fld, Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Next;
-
- function Generic_Prev (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Result : Boolean;
- Udf : User_Defined_Field_Type_With_Choice_Access :=
- User_Defined_Field_Type_With_Choice_Access
- (To_Argument_Access (Usr).Typ);
- begin
- Result := Previous (Fld, Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Prev;
-
- -- -----------------------------------------------------------------------
- --
- function C_Generic_Choice return C_Field_Type
- is
- Res : Eti_Error;
- T : C_Field_Type;
- begin
- if M_Generic_Choice = Null_Field_Type then
- T := New_Fieldtype (Generic_Field_Check'Access,
- Generic_Char_Check'Access);
- if T = Null_Field_Type then
- raise Form_Exception;
- else
- Res := Set_Fieldtype_Arg (T,
- Make_Arg'Access,
- Copy_Arg'Access,
- Free_Arg'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
-
- Res := Set_Fieldtype_Choice (T,
- Generic_Next'Access,
- Generic_Prev'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- M_Generic_Choice := T;
- end if;
- pragma Assert (M_Generic_Choice /= Null_Field_Type);
- return M_Generic_Choice;
- end C_Generic_Choice;
-
-end Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads
deleted file mode 100644
index 4df1954..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads
+++ /dev/null
@@ -1,97 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-
-package Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
- pragma Preelaborate
- (Terminal_Interface.Curses.Forms.Field_Types.User.Choice);
-
- use type Interfaces.C.int;
- subtype C_Int is Interfaces.C.int;
-
- type User_Defined_Field_Type_With_Choice is abstract new
- User_Defined_Field_Type with null record;
- -- This is the root of the mechanism we use to create field types in
- -- Ada95 that allow the prev/next mechanism. You should your own type
- -- derive from this one and implement the Field_Check, Character_Check
- -- Next and Previous functions for your own type.
-
- type User_Defined_Field_Type_With_Choice_Access is access all
- User_Defined_Field_Type_With_Choice'Class;
-
- function Next
- (Fld : Field;
- Typ : User_Defined_Field_Type_With_Choice) return Boolean
- is abstract;
- -- If True is returned, the function successfully generated a next
- -- value into the fields buffer.
-
- function Previous
- (Fld : Field;
- Typ : User_Defined_Field_Type_With_Choice) return Boolean
- is abstract;
- -- If True is returned, the function successfully generated a previous
- -- value into the fields buffer.
-
- -- +----------------------------------------------------------------------
- -- | Private Part.
- -- |
-private
- use type Interfaces.C.int;
-
- function C_Generic_Choice return C_Field_Type;
-
- function Generic_Next (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Generic_Next);
- -- This is the generic next Choice_Function for the low-level fieldtype
- -- representing all the User_Defined_Field_Type derivates. It routes
- -- the call to the Next implementation for the type.
-
- function Generic_Prev (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Generic_Prev);
- -- This is the generic prev Choice_Function for the low-level fieldtype
- -- representing all the User_Defined_Field_Type derivates. It routes
- -- the call to the Previous implementation for the type.
-
-end Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.adb
deleted file mode 100644
index 9d9285d..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.adb
+++ /dev/null
@@ -1,133 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.User --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Conversion;
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Field_Types.User is
-
- use type Interfaces.C.int;
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in User_Defined_Field_Type)
- is
- function Allocate_Arg (T : User_Defined_Field_Type'Class)
- return Argument_Access;
-
- function Set_Fld_Type (F : Field := Fld;
- Cft : C_Field_Type := C_Generic_Type;
- Arg1 : Argument_Access)
- return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- Res : Eti_Error;
-
- function Allocate_Arg (T : User_Defined_Field_Type'Class)
- return Argument_Access
- is
- Ptr : Field_Type_Access := new User_Defined_Field_Type'Class'(T);
- begin
- return new Argument'(Usr => System.Null_Address,
- Typ => Ptr,
- Cft => Null_Field_Type);
- end Allocate_Arg;
-
- begin
- Res := Set_Fld_Type (Arg1 => Allocate_Arg (Typ));
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Field_Type;
-
- function To_Argument_Access is new Ada.Unchecked_Conversion
- (System.Address, Argument_Access);
-
- function Generic_Field_Check (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Result : Boolean;
- Udf : User_Defined_Field_Type_Access :=
- User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
- begin
- Result := Field_Check (Fld, Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Field_Check;
-
- function Generic_Char_Check (Ch : C_Int;
- Usr : System.Address) return C_Int
- is
- Result : Boolean;
- Udf : User_Defined_Field_Type_Access :=
- User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
- begin
- Result := Character_Check (Character'Val (Ch), Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Char_Check;
-
- -- -----------------------------------------------------------------------
- --
- function C_Generic_Type return C_Field_Type
- is
- Res : Eti_Error;
- T : C_Field_Type;
- begin
- if M_Generic_Type = Null_Field_Type then
- T := New_Fieldtype (Generic_Field_Check'Access,
- Generic_Char_Check'Access);
- if T = Null_Field_Type then
- raise Form_Exception;
- else
- Res := Set_Fieldtype_Arg (T,
- Make_Arg'Access,
- Copy_Arg'Access,
- Free_Arg'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- M_Generic_Type := T;
- end if;
- pragma Assert (M_Generic_Type /= Null_Field_Type);
- return M_Generic_Type;
- end C_Generic_Type;
-
-end Terminal_Interface.Curses.Forms.Field_Types.User;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.ads
deleted file mode 100644
index 9e625fc..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types-user.ads
+++ /dev/null
@@ -1,98 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types.User --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-
-package Terminal_Interface.Curses.Forms.Field_Types.User is
- pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.User);
- use type Interfaces.C.int;
- subtype C_Int is Interfaces.C.int;
-
- type User_Defined_Field_Type is abstract new Field_Type with null record;
- -- This is the root of the mechanism we use to create field types in
- -- Ada95. You should your own type derive from this one and implement
- -- the Field_Check and Character_Check functions for your own type.
-
- type User_Defined_Field_Type_Access is access all
- User_Defined_Field_Type'Class;
-
- function Field_Check
- (Fld : Field;
- Typ : User_Defined_Field_Type) return Boolean
- is abstract;
- -- If True is returned, the field is considered valid, otherwise it is
- -- invalid.
-
- function Character_Check
- (Ch : Character;
- Typ : User_Defined_Field_Type) return Boolean
- is abstract;
- -- If True is returned, the character is considered as valid for the
- -- field, otherwise as invalid.
-
- procedure Set_Field_Type (Fld : in Field;
- Typ : in User_Defined_Field_Type);
- -- This should work for all types derived from User_Defined_Field_Type.
- -- No need to reimplement it for your derived type.
-
- -- +----------------------------------------------------------------------
- -- | Private Part.
- -- | Used by the Choice child package.
-private
- use type Interfaces.C.int;
-
- function C_Generic_Type return C_Field_Type;
-
- function Generic_Field_Check (Fld : Field;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Generic_Field_Check);
- -- This is the generic Field_Check_Function for the low-level fieldtype
- -- representing all the User_Defined_Field_Type derivates. It routes
- -- the call to the Field_Check implementation for the type.
-
- function Generic_Char_Check (Ch : C_Int;
- Usr : System.Address) return C_Int;
- pragma Convention (C, Generic_Char_Check);
- -- This is the generic Char_Check_Function for the low-level fieldtype
- -- representing all the User_Defined_Field_Type derivates. It routes
- -- the call to the Character_Check implementation for the type.
-
-end Terminal_Interface.Curses.Forms.Field_Types.User;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types.adb
deleted file mode 100644
index 69c9c98..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_types.adb
+++ /dev/null
@@ -1,297 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_Types --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Ada.Unchecked_Deallocation;
-with Ada.Unchecked_Conversion;
--- |
--- |=====================================================================
--- | man page form_fieldtype.3x
--- |=====================================================================
--- |
-package body Terminal_Interface.Curses.Forms.Field_Types is
-
- use type Interfaces.C.int;
- use type System.Address;
-
- function To_Argument_Access is new Ada.Unchecked_Conversion
- (System.Address, Argument_Access);
-
- function Get_Fieldtype (F : Field) return C_Field_Type;
- pragma Import (C, Get_Fieldtype, "field_type");
-
- function Get_Arg (F : Field) return System.Address;
- pragma Import (C, Get_Arg, "field_arg");
- -- |
- -- |=====================================================================
- -- | man page form_field_validation.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Get_Type (Fld : in Field) return Field_Type_Access
- is
- Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
- Arg : Argument_Access;
- begin
- if Low_Level = Null_Field_Type then
- return null;
- else
- if Low_Level = M_Builtin_Router or else
- Low_Level = M_Generic_Type or else
- Low_Level = M_Choice_Router or else
- Low_Level = M_Generic_Choice then
- Arg := To_Argument_Access (Get_Arg (Fld));
- if Arg = null then
- raise Form_Exception;
- else
- return Arg.Typ;
- end if;
- else
- raise Form_Exception;
- end if;
- end if;
- end Get_Type;
-
- function Make_Arg (Args : System.Address) return System.Address
- is
- -- Actually args is a double indirected pointer to the arguments
- -- of a C variable argument list. In theory it is now quite
- -- complicated to write portable routine that reads the arguments,
- -- because one has to know the growth direction of the stack and
- -- the sizes of the individual arguments.
- -- Fortunately we are only interested in the first argument (#0),
- -- we know its size and for the first arg we don't care about
- -- into which stack direction we have to proceed. We simply
- -- resolve the double indirection and thats it.
- type V is access all System.Address;
- function To_Access is new Ada.Unchecked_Conversion (System.Address,
- V);
- begin
- return To_Access (To_Access (Args).all).all;
- end Make_Arg;
-
- function Copy_Arg (Usr : System.Address) return System.Address
- is
- begin
- return Usr;
- end Copy_Arg;
-
- procedure Free_Arg (Usr : in System.Address)
- is
- procedure Free_Type is new Ada.Unchecked_Deallocation
- (Field_Type'Class, Field_Type_Access);
- procedure Freeargs is new Ada.Unchecked_Deallocation
- (Argument, Argument_Access);
-
- To_Be_Free : Argument_Access := To_Argument_Access (Usr);
- Low_Level : C_Field_Type;
- begin
- if To_Be_Free /= null then
- if To_Be_Free.Usr /= System.Null_Address then
- Low_Level := To_Be_Free.Cft;
- if Low_Level.Freearg /= null then
- Low_Level.Freearg (To_Be_Free.Usr);
- end if;
- end if;
- if To_Be_Free.Typ /= null then
- Free_Type (To_Be_Free.Typ);
- end if;
- Freeargs (To_Be_Free);
- end if;
- end Free_Arg;
-
-
- procedure Wrap_Builtin (Fld : Field;
- Typ : Field_Type'Class;
- Cft : C_Field_Type := C_Builtin_Router)
- is
- Usr_Arg : System.Address := Get_Arg (Fld);
- Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
- Arg : Argument_Access;
- Res : Eti_Error;
- function Set_Fld_Type (F : Field := Fld;
- Cf : C_Field_Type := Cft;
- Arg1 : Argument_Access) return C_Int;
- pragma Import (C, Set_Fld_Type, "set_field_type");
-
- begin
- pragma Assert (Low_Level /= Null_Field_Type);
- if Cft /= C_Builtin_Router and then Cft /= C_Choice_Router then
- raise Form_Exception;
- else
- Arg := new Argument'(Usr => System.Null_Address,
- Typ => new Field_Type'Class'(Typ),
- Cft => Get_Fieldtype (Fld));
- if Usr_Arg /= System.Null_Address then
- if Low_Level.Copyarg /= null then
- Arg.Usr := Low_Level.Copyarg (Usr_Arg);
- else
- Arg.Usr := Usr_Arg;
- end if;
- end if;
-
- Res := Set_Fld_Type (Arg1 => Arg);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- end Wrap_Builtin;
-
- function Field_Check_Router (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Arg : constant Argument_Access := To_Argument_Access (Usr);
- begin
- pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
- and then Arg.Typ /= null);
- if Arg.Cft.Fcheck /= null then
- return Arg.Cft.Fcheck (Fld, Arg.Usr);
- else
- return 1;
- end if;
- end Field_Check_Router;
-
- function Char_Check_Router (Ch : C_Int;
- Usr : System.Address) return C_Int
- is
- Arg : constant Argument_Access := To_Argument_Access (Usr);
- begin
- pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
- and then Arg.Typ /= null);
- if Arg.Cft.Ccheck /= null then
- return Arg.Cft.Ccheck (Ch, Arg.Usr);
- else
- return 1;
- end if;
- end Char_Check_Router;
-
- function Next_Router (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Arg : constant Argument_Access := To_Argument_Access (Usr);
- begin
- pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
- and then Arg.Typ /= null);
- if Arg.Cft.Next /= null then
- return Arg.Cft.Next (Fld, Arg.Usr);
- else
- return 1;
- end if;
- end Next_Router;
-
- function Prev_Router (Fld : Field;
- Usr : System.Address) return C_Int
- is
- Arg : constant Argument_Access := To_Argument_Access (Usr);
- begin
- pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
- and then Arg.Typ /= null);
- if Arg.Cft.Prev /= null then
- return Arg.Cft.Prev (Fld, Arg.Usr);
- else
- return 1;
- end if;
- end Prev_Router;
-
- -- -----------------------------------------------------------------------
- --
- function C_Builtin_Router return C_Field_Type
- is
- Res : Eti_Error;
- T : C_Field_Type;
- begin
- if M_Builtin_Router = Null_Field_Type then
- T := New_Fieldtype (Field_Check_Router'Access,
- Char_Check_Router'Access);
- if T = Null_Field_Type then
- raise Form_Exception;
- else
- Res := Set_Fieldtype_Arg (T,
- Make_Arg'Access,
- Copy_Arg'Access,
- Free_Arg'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- M_Builtin_Router := T;
- end if;
- pragma Assert (M_Builtin_Router /= Null_Field_Type);
- return M_Builtin_Router;
- end C_Builtin_Router;
-
- -- -----------------------------------------------------------------------
- --
- function C_Choice_Router return C_Field_Type
- is
- Res : Eti_Error;
- T : C_Field_Type;
- begin
- if M_Choice_Router = Null_Field_Type then
- T := New_Fieldtype (Field_Check_Router'Access,
- Char_Check_Router'Access);
- if T = Null_Field_Type then
- raise Form_Exception;
- else
- Res := Set_Fieldtype_Arg (T,
- Make_Arg'Access,
- Copy_Arg'Access,
- Free_Arg'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
-
- Res := Set_Fieldtype_Choice (T,
- Next_Router'Access,
- Prev_Router'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- M_Choice_Router := T;
- end if;
- pragma Assert (M_Choice_Router /= Null_Field_Type);
- return M_Choice_Router;
- end C_Choice_Router;
-
-end Terminal_Interface.Curses.Forms.Field_Types;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_user_data.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_user_data.adb
deleted file mode 100644
index 91046a7..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-field_user_data.adb
+++ /dev/null
@@ -1,86 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Field_User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
--- |
--- |=====================================================================
--- | man page form_field_userptr.3x
--- |=====================================================================
--- |
-package body Terminal_Interface.Curses.Forms.Field_User_Data is
- -- |
- -- |
- -- |
- use type Interfaces.C.int;
-
- procedure Set_User_Data (Fld : in Field;
- Data : in User_Access)
- is
- function Set_Field_Userptr (Fld : Field;
- Usr : User_Access) return C_Int;
- pragma Import (C, Set_Field_Userptr, "set_field_userptr");
-
- Res : constant Eti_Error := Set_Field_Userptr (Fld, Data);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_User_Data;
- -- |
- -- |
- -- |
- function Get_User_Data (Fld : in Field) return User_Access
- is
- function Field_Userptr (Fld : Field) return User_Access;
- pragma Import (C, Field_Userptr, "field_userptr");
- begin
- return Field_Userptr (Fld);
- end Get_User_Data;
-
- procedure Get_User_Data (Fld : in Field;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Fld);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Forms.Field_User_Data;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-form_user_data.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-form_user_data.adb
deleted file mode 100644
index 2910d24..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms-form_user_data.adb
+++ /dev/null
@@ -1,87 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms.Form_User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
--- |
--- |=====================================================================
--- | man page form__userptr.3x
--- |=====================================================================
--- |
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms.Form_User_Data is
-
- use type Interfaces.C.int;
-
- -- |
- -- |
- -- |
- procedure Set_User_Data (Frm : in Form;
- Data : in User_Access)
- is
- function Set_Form_Userptr (Frm : Form;
- Data : User_Access) return C_Int;
- pragma Import (C, Set_Form_Userptr, "set_form_userptr");
-
- Res : constant Eti_Error := Set_Form_Userptr (Frm, Data);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_User_Data;
- -- |
- -- |
- -- |
- function Get_User_Data (Frm : in Form) return User_Access
- is
- function Form_Userptr (Frm : Form) return User_Access;
- pragma Import (C, Form_Userptr, "form_userptr");
- begin
- return Form_Userptr (Frm);
- end Get_User_Data;
-
- procedure Get_User_Data (Frm : in Form;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Frm);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Forms.Form_User_Data;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-forms.adb
deleted file mode 100644
index f65984c..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-forms.adb
+++ /dev/null
@@ -1,1161 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Forms --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Deallocation;
-with Ada.Unchecked_Conversion;
-
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Interfaces.C.Pointers;
-
-with Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Forms is
-
- use Terminal_Interface.Curses.Aux;
-
- type C_Field_Array is array (Natural range <>) of aliased Field;
- package F_Array is new
- Interfaces.C.Pointers (Natural, Field, C_Field_Array, Null_Field);
-
-------------------------------------------------------------------------------
- -- |
- -- |
- -- |
- -- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
-
- function FOS_2_CInt is new
- Ada.Unchecked_Conversion (Field_Option_Set,
- C_Int);
-
- function CInt_2_FOS is new
- Ada.Unchecked_Conversion (C_Int,
- Field_Option_Set);
-
- function FrmOS_2_CInt is new
- Ada.Unchecked_Conversion (Form_Option_Set,
- C_Int);
-
- function CInt_2_FrmOS is new
- Ada.Unchecked_Conversion (C_Int,
- Form_Option_Set);
-
- procedure Request_Name (Key : in Form_Request_Code;
- Name : out String)
- is
- function Form_Request_Name (Key : C_Int) return chars_ptr;
- pragma Import (C, Form_Request_Name, "form_request_name");
- begin
- Fill_String (Form_Request_Name (C_Int (Key)), Name);
- end Request_Name;
-
- function Request_Name (Key : Form_Request_Code) return String
- is
- function Form_Request_Name (Key : C_Int) return chars_ptr;
- pragma Import (C, Form_Request_Name, "form_request_name");
- begin
- return Fill_String (Form_Request_Name (C_Int (Key)));
- end Request_Name;
-------------------------------------------------------------------------------
- -- |
- -- |
- -- |
- -- |
- -- |=====================================================================
- -- | man page form_field_new.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Create (Height : Line_Count;
- Width : Column_Count;
- Top : Line_Position;
- Left : Column_Position;
- Off_Screen : Natural := 0;
- More_Buffers : Buffer_Number := Buffer_Number'First)
- return Field
- is
- function Newfield (H, W, T, L, O, M : C_Int) return Field;
- pragma Import (C, Newfield, "new_field");
- Fld : constant Field := Newfield (C_Int (Height), C_Int (Width),
- C_Int (Top), C_Int (Left),
- C_Int (Off_Screen),
- C_Int (More_Buffers));
- begin
- if Fld = Null_Field then
- raise Form_Exception;
- end if;
- return Fld;
- end Create;
--- |
--- |
--- |
- procedure Delete (Fld : in out Field)
- is
- function Free_Field (Fld : Field) return C_Int;
- pragma Import (C, Free_Field, "free_field");
-
- Res : Eti_Error;
- begin
- Res := Free_Field (Fld);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Fld := Null_Field;
- end Delete;
- -- |
- -- |
- -- |
- function Duplicate (Fld : Field;
- Top : Line_Position;
- Left : Column_Position) return Field
- is
- function Dup_Field (Fld : Field;
- Top : C_Int;
- Left : C_Int) return Field;
- pragma Import (C, Dup_Field, "dup_field");
-
- F : constant Field := Dup_Field (Fld,
- C_Int (Top),
- C_Int (Left));
- begin
- if F = Null_Field then
- raise Form_Exception;
- end if;
- return F;
- end Duplicate;
- -- |
- -- |
- -- |
- function Link (Fld : Field;
- Top : Line_Position;
- Left : Column_Position) return Field
- is
- function Lnk_Field (Fld : Field;
- Top : C_Int;
- Left : C_Int) return Field;
- pragma Import (C, Lnk_Field, "link_field");
-
- F : constant Field := Lnk_Field (Fld,
- C_Int (Top),
- C_Int (Left));
- begin
- if F = Null_Field then
- raise Form_Exception;
- end if;
- return F;
- end Link;
- -- |
- -- |=====================================================================
- -- | man page form_field_just.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Justification (Fld : in Field;
- Just : in Field_Justification := None)
- is
- function Set_Field_Just (Fld : Field;
- Just : C_Int) return C_Int;
- pragma Import (C, Set_Field_Just, "set_field_just");
-
- Res : constant Eti_Error :=
- Set_Field_Just (Fld,
- C_Int (Field_Justification'Pos (Just)));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Justification;
- -- |
- -- |
- -- |
- function Get_Justification (Fld : Field) return Field_Justification
- is
- function Field_Just (Fld : Field) return C_Int;
- pragma Import (C, Field_Just, "field_just");
- begin
- return Field_Justification'Val (Field_Just (Fld));
- end Get_Justification;
- -- |
- -- |=====================================================================
- -- | man page form_field_buffer.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First;
- Str : in String)
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Set_Fld_Buffer (Fld : Field;
- Bufnum : C_Int;
- S : Char_Ptr)
- return C_Int;
- pragma Import (C, Set_Fld_Buffer, "set_field_buffer");
-
- Txt : char_array (0 .. Str'Length);
- Len : size_t;
- Res : Eti_Error;
- begin
- To_C (Str, Txt, Len);
- Res := Set_Fld_Buffer (Fld, C_Int (Buffer), Txt (Txt'First)'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Buffer;
- -- |
- -- |
- -- |
- procedure Get_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First;
- Str : out String)
- is
- function Field_Buffer (Fld : Field;
- B : C_Int) return chars_ptr;
- pragma Import (C, Field_Buffer, "field_buffer");
- begin
- Fill_String (Field_Buffer (Fld, C_Int (Buffer)), Str);
- end Get_Buffer;
-
- function Get_Buffer
- (Fld : in Field;
- Buffer : in Buffer_Number := Buffer_Number'First) return String
- is
- function Field_Buffer (Fld : Field;
- B : C_Int) return chars_ptr;
- pragma Import (C, Field_Buffer, "field_buffer");
- begin
- return Fill_String (Field_Buffer (Fld, C_Int (Buffer)));
- end Get_Buffer;
- -- |
- -- |
- -- |
- procedure Set_Status (Fld : in Field;
- Status : in Boolean := True)
- is
- function Set_Fld_Status (Fld : Field;
- St : C_Int) return C_Int;
- pragma Import (C, Set_Fld_Status, "set_field_status");
-
- Res : constant Eti_Error := Set_Fld_Status (Fld, Boolean'Pos (Status));
- begin
- if Res /= E_Ok then
- raise Form_Exception;
- end if;
- end Set_Status;
- -- |
- -- |
- -- |
- function Changed (Fld : Field) return Boolean
- is
- function Field_Status (Fld : Field) return C_Int;
- pragma Import (C, Field_Status, "field_status");
-
- Res : constant C_Int := Field_Status (Fld);
- begin
- if Res = Curses_False then
- return False;
- else
- return True;
- end if;
- end Changed;
- -- |
- -- |
- -- |
- procedure Set_Maximum_Size (Fld : in Field;
- Max : in Natural := 0)
- is
- function Set_Field_Max (Fld : Field;
- M : C_Int) return C_Int;
- pragma Import (C, Set_Field_Max, "set_max_field");
-
- Res : constant Eti_Error := Set_Field_Max (Fld, C_Int (Max));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Maximum_Size;
- -- |
- -- |=====================================================================
- -- | man page form_field_opts.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Options (Fld : in Field;
- Options : in Field_Option_Set)
- is
- function Set_Field_Opts (Fld : Field;
- Opt : C_Int) return C_Int;
- pragma Import (C, Set_Field_Opts, "set_field_opts");
-
- Opt : C_Int := FOS_2_CInt (Options);
- Res : Eti_Error;
- begin
- Res := Set_Field_Opts (Fld, Opt);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Options;
- -- |
- -- |
- -- |
- procedure Switch_Options (Fld : in Field;
- Options : in Field_Option_Set;
- On : Boolean := True)
- is
- function Field_Opts_On (Fld : Field;
- Opt : C_Int) return C_Int;
- pragma Import (C, Field_Opts_On, "field_opts_on");
- function Field_Opts_Off (Fld : Field;
- Opt : C_Int) return C_Int;
- pragma Import (C, Field_Opts_Off, "field_opts_off");
-
- Err : Eti_Error;
- Opt : C_Int := FOS_2_CInt (Options);
- begin
- if On then
- Err := Field_Opts_On (Fld, Opt);
- else
- Err := Field_Opts_Off (Fld, Opt);
- end if;
- if Err /= E_Ok then
- Eti_Exception (Err);
- end if;
- end Switch_Options;
- -- |
- -- |
- -- |
- procedure Get_Options (Fld : in Field;
- Options : out Field_Option_Set)
- is
- function Field_Opts (Fld : Field) return C_Int;
- pragma Import (C, Field_Opts, "field_opts");
-
- Res : C_Int := Field_Opts (Fld);
- begin
- Options := CInt_2_FOS (Res);
- end Get_Options;
- -- |
- -- |
- -- |
- function Get_Options (Fld : Field := Null_Field)
- return Field_Option_Set
- is
- Fos : Field_Option_Set;
- begin
- Get_Options (Fld, Fos);
- return Fos;
- end Get_Options;
- -- |
- -- |=====================================================================
- -- | man page form_field_attributes.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Foreground
- (Fld : in Field;
- Fore : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Field_Fore (Fld : Field;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Field_Fore, "set_field_fore");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Fore);
- Res : constant Eti_Error :=
- Set_Field_Fore (Fld, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Foreground;
- -- |
- -- |
- -- |
- procedure Foreground (Fld : in Field;
- Fore : out Character_Attribute_Set)
- is
- function Field_Fore (Fld : Field) return C_Chtype;
- pragma Import (C, Field_Fore, "field_fore");
- begin
- Fore := Chtype_To_AttrChar (Field_Fore (Fld)).Attr;
- end Foreground;
-
- procedure Foreground (Fld : in Field;
- Fore : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Field_Fore (Fld : Field) return C_Chtype;
- pragma Import (C, Field_Fore, "field_fore");
- begin
- Fore := Chtype_To_AttrChar (Field_Fore (Fld)).Attr;
- Color := Chtype_To_AttrChar (Field_Fore (Fld)).Color;
- end Foreground;
- -- |
- -- |
- -- |
- procedure Set_Background
- (Fld : in Field;
- Back : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Field_Back (Fld : Field;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Field_Back, "set_field_back");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Back);
- Res : constant Eti_Error :=
- Set_Field_Back (Fld, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Background;
- -- |
- -- |
- -- |
- procedure Background (Fld : in Field;
- Back : out Character_Attribute_Set)
- is
- function Field_Back (Fld : Field) return C_Chtype;
- pragma Import (C, Field_Back, "field_back");
- begin
- Back := Chtype_To_AttrChar (Field_Back (Fld)).Attr;
- end Background;
-
- procedure Background (Fld : in Field;
- Back : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Field_Back (Fld : Field) return C_Chtype;
- pragma Import (C, Field_Back, "field_back");
- begin
- Back := Chtype_To_AttrChar (Field_Back (Fld)).Attr;
- Color := Chtype_To_AttrChar (Field_Back (Fld)).Color;
- end Background;
- -- |
- -- |
- -- |
- procedure Set_Pad_Character (Fld : in Field;
- Pad : in Character := Space)
- is
- function Set_Field_Pad (Fld : Field;
- Ch : C_Int) return C_Int;
- pragma Import (C, Set_Field_Pad, "set_field_pad");
-
- Res : constant Eti_Error := Set_Field_Pad (Fld,
- C_Int (Character'Pos (Pad)));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Pad_Character;
- -- |
- -- |
- -- |
- procedure Pad_Character (Fld : in Field;
- Pad : out Character)
- is
- function Field_Pad (Fld : Field) return C_Int;
- pragma Import (C, Field_Pad, "field_pad");
- begin
- Pad := Character'Val (Field_Pad (Fld));
- end Pad_Character;
- -- |
- -- |=====================================================================
- -- | man page form_field_info.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Info (Fld : in Field;
- Lines : out Line_Count;
- Columns : out Column_Count;
- First_Row : out Line_Position;
- First_Column : out Column_Position;
- Off_Screen : out Natural;
- Additional_Buffers : out Buffer_Number)
- is
- type C_Int_Access is access all C_Int;
- function Fld_Info (Fld : Field;
- L, C, Fr, Fc, Os, Ab : C_Int_Access)
- return C_Int;
- pragma Import (C, Fld_Info, "field_info");
-
- L, C, Fr, Fc, Os, Ab : aliased C_Int;
- Res : constant Eti_Error := Fld_Info (Fld,
- L'Access, C'Access,
- Fr'Access, Fc'Access,
- Os'Access, Ab'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- else
- Lines := Line_Count (L);
- Columns := Column_Count (C);
- First_Row := Line_Position (Fr);
- First_Column := Column_Position (Fc);
- Off_Screen := Natural (Os);
- Additional_Buffers := Buffer_Number (Ab);
- end if;
- end Info;
--- |
--- |
--- |
- procedure Dynamic_Info (Fld : in Field;
- Lines : out Line_Count;
- Columns : out Column_Count;
- Max : out Natural)
- is
- type C_Int_Access is access all C_Int;
- function Dyn_Info (Fld : Field; L, C, M : C_Int_Access) return C_Int;
- pragma Import (C, Dyn_Info, "dynamic_field_info");
-
- L, C, M : aliased C_Int;
- Res : constant Eti_Error := Dyn_Info (Fld,
- L'Access, C'Access,
- M'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- else
- Lines := Line_Count (L);
- Columns := Column_Count (C);
- Max := Natural (M);
- end if;
- end Dynamic_Info;
- -- |
- -- |=====================================================================
- -- | man page form_win.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Window (Frm : in Form;
- Win : in Window)
- is
- function Set_Form_Win (Frm : Form;
- Win : Window) return C_Int;
- pragma Import (C, Set_Form_Win, "set_form_win");
-
- Res : constant Eti_Error := Set_Form_Win (Frm, Win);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Window;
- -- |
- -- |
- -- |
- function Get_Window (Frm : Form) return Window
- is
- function Form_Win (Frm : Form) return Window;
- pragma Import (C, Form_Win, "form_win");
-
- W : constant Window := Form_Win (Frm);
- begin
- return W;
- end Get_Window;
- -- |
- -- |
- -- |
- procedure Set_Sub_Window (Frm : in Form;
- Win : in Window)
- is
- function Set_Form_Sub (Frm : Form;
- Win : Window) return C_Int;
- pragma Import (C, Set_Form_Sub, "set_form_sub");
-
- Res : constant Eti_Error := Set_Form_Sub (Frm, Win);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Sub_Window;
- -- |
- -- |
- -- |
- function Get_Sub_Window (Frm : Form) return Window
- is
- function Form_Sub (Frm : Form) return Window;
- pragma Import (C, Form_Sub, "form_sub");
-
- W : constant Window := Form_Sub (Frm);
- begin
- return W;
- end Get_Sub_Window;
- -- |
- -- |
- -- |
- procedure Scale (Frm : in Form;
- Lines : out Line_Count;
- Columns : out Column_Count)
- is
- type C_Int_Access is access all C_Int;
- function M_Scale (Frm : Form; Yp, Xp : C_Int_Access) return C_Int;
- pragma Import (C, M_Scale, "scale_form");
-
- X, Y : aliased C_Int;
- Res : constant Eti_Error := M_Scale (Frm, Y'Access, X'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Lines := Line_Count (Y);
- Columns := Column_Count (X);
- end Scale;
- -- |
- -- |=====================================================================
- -- | man page menu_hook.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Field_Init_Hook (Frm : in Form;
- Proc : in Form_Hook_Function)
- is
- function Set_Field_Init (Frm : Form;
- Proc : Form_Hook_Function) return C_Int;
- pragma Import (C, Set_Field_Init, "set_field_init");
-
- Res : constant Eti_Error := Set_Field_Init (Frm, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Field_Init_Hook;
- -- |
- -- |
- -- |
- procedure Set_Field_Term_Hook (Frm : in Form;
- Proc : in Form_Hook_Function)
- is
- function Set_Field_Term (Frm : Form;
- Proc : Form_Hook_Function) return C_Int;
- pragma Import (C, Set_Field_Term, "set_field_term");
-
- Res : constant Eti_Error := Set_Field_Term (Frm, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Field_Term_Hook;
- -- |
- -- |
- -- |
- procedure Set_Form_Init_Hook (Frm : in Form;
- Proc : in Form_Hook_Function)
- is
- function Set_Form_Init (Frm : Form;
- Proc : Form_Hook_Function) return C_Int;
- pragma Import (C, Set_Form_Init, "set_form_init");
-
- Res : constant Eti_Error := Set_Form_Init (Frm, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Form_Init_Hook;
- -- |
- -- |
- -- |
- procedure Set_Form_Term_Hook (Frm : in Form;
- Proc : in Form_Hook_Function)
- is
- function Set_Form_Term (Frm : Form;
- Proc : Form_Hook_Function) return C_Int;
- pragma Import (C, Set_Form_Term, "set_form_term");
-
- Res : constant Eti_Error := Set_Form_Term (Frm, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Form_Term_Hook;
- -- |
- -- |=====================================================================
- -- | man page form_fields.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Redefine (Frm : in Form;
- Flds : in Field_Array_Access)
- is
- function Set_Frm_Fields (Frm : Form;
- Items : System.Address) return C_Int;
- pragma Import (C, Set_Frm_Fields, "set_form_fields");
-
- Res : Eti_Error;
- begin
- pragma Assert (Flds (Flds'Last) = Null_Field);
- if Flds (Flds'Last) /= Null_Field then
- raise Form_Exception;
- else
- Res := Set_Frm_Fields (Frm, Flds (Flds'First)'Address);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- end Redefine;
- -- |
- -- |
- -- |
- function Fields (Frm : Form;
- Index : Positive) return Field
- is
- use F_Array;
-
- function C_Fields (Frm : Form) return Pointer;
- pragma Import (C, C_Fields, "form_fields");
-
- P : Pointer := C_Fields (Frm);
- begin
- if P = null or else Index not in 1 .. Field_Count (Frm) then
- raise Form_Exception;
- else
- P := P + ptrdiff_t (C_Int (Index) - 1);
- return P.all;
- end if;
- end Fields;
- -- |
- -- |
- -- |
- function Field_Count (Frm : Form) return Natural
- is
- function Count (Frm : Form) return C_Int;
- pragma Import (C, Count, "field_count");
- begin
- return Natural (Count (Frm));
- end Field_Count;
- -- |
- -- |
- -- |
- procedure Move (Fld : in Field;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Move (Fld : Field; L, C : C_Int) return C_Int;
- pragma Import (C, Move, "move_field");
-
- Res : constant Eti_Error := Move (Fld, C_Int (Line), C_Int (Column));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Move;
- -- |
- -- |=====================================================================
- -- | man page form_new.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Create (Fields : Field_Array_Access) return Form
- is
- function NewForm (Fields : System.Address) return Form;
- pragma Import (C, NewForm, "new_form");
-
- M : Form;
- begin
- pragma Assert (Fields (Fields'Last) = Null_Field);
- if Fields (Fields'Last) /= Null_Field then
- raise Form_Exception;
- else
- M := NewForm (Fields (Fields'First)'Address);
- if M = Null_Form then
- raise Form_Exception;
- end if;
- return M;
- end if;
- end Create;
- -- |
- -- |
- -- |
- procedure Delete (Frm : in out Form)
- is
- function Free (Frm : Form) return C_Int;
- pragma Import (C, Free, "free_form");
-
- Res : constant Eti_Error := Free (Frm);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Frm := Null_Form;
- end Delete;
- -- |
- -- |=====================================================================
- -- | man page form_opts.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Options (Frm : in Form;
- Options : in Form_Option_Set)
- is
- function Set_Form_Opts (Frm : Form;
- Opt : C_Int) return C_Int;
- pragma Import (C, Set_Form_Opts, "set_form_opts");
-
- Opt : C_Int := FrmOS_2_CInt (Options);
- Res : Eti_Error;
- begin
- Res := Set_Form_Opts (Frm, Opt);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Options;
- -- |
- -- |
- -- |
- procedure Switch_Options (Frm : in Form;
- Options : in Form_Option_Set;
- On : Boolean := True)
- is
- function Form_Opts_On (Frm : Form;
- Opt : C_Int) return C_Int;
- pragma Import (C, Form_Opts_On, "form_opts_on");
- function Form_Opts_Off (Frm : Form;
- Opt : C_Int) return C_Int;
- pragma Import (C, Form_Opts_Off, "form_opts_off");
-
- Err : Eti_Error;
- Opt : C_Int := FrmOS_2_CInt (Options);
- begin
- if On then
- Err := Form_Opts_On (Frm, Opt);
- else
- Err := Form_Opts_Off (Frm, Opt);
- end if;
- if Err /= E_Ok then
- Eti_Exception (Err);
- end if;
- end Switch_Options;
- -- |
- -- |
- -- |
- procedure Get_Options (Frm : in Form;
- Options : out Form_Option_Set)
- is
- function Form_Opts (Frm : Form) return C_Int;
- pragma Import (C, Form_Opts, "form_opts");
-
- Res : C_Int := Form_Opts (Frm);
- begin
- Options := CInt_2_FrmOS (Res);
- end Get_Options;
- -- |
- -- |
- -- |
- function Get_Options (Frm : Form := Null_Form) return Form_Option_Set
- is
- Fos : Form_Option_Set;
- begin
- Get_Options (Frm, Fos);
- return Fos;
- end Get_Options;
- -- |
- -- |=====================================================================
- -- | man page form_post.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Post (Frm : in Form;
- Post : in Boolean := True)
- is
- function M_Post (Frm : Form) return C_Int;
- pragma Import (C, M_Post, "post_form");
- function M_Unpost (Frm : Form) return C_Int;
- pragma Import (C, M_Unpost, "unpost_form");
-
- Res : Eti_Error;
- begin
- if Post then
- Res := M_Post (Frm);
- else
- Res := M_Unpost (Frm);
- end if;
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Post;
- -- |
- -- |=====================================================================
- -- | man page form_cursor.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Position_Cursor (Frm : Form)
- is
- function Pos_Form_Cursor (Frm : Form) return C_Int;
- pragma Import (C, Pos_Form_Cursor, "pos_form_cursor");
-
- Res : constant Eti_Error := Pos_Form_Cursor (Frm);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Position_Cursor;
- -- |
- -- |=====================================================================
- -- | man page form_data.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Data_Ahead (Frm : Form) return Boolean
- is
- function Ahead (Frm : Form) return C_Int;
- pragma Import (C, Ahead, "data_ahead");
-
- Res : constant C_Int := Ahead (Frm);
- begin
- if Res = Curses_False then
- return False;
- else
- return True;
- end if;
- end Data_Ahead;
- -- |
- -- |
- -- |
- function Data_Behind (Frm : Form) return Boolean
- is
- function Behind (Frm : Form) return C_Int;
- pragma Import (C, Behind, "data_behind");
-
- Res : constant C_Int := Behind (Frm);
- begin
- if Res = Curses_False then
- return False;
- else
- return True;
- end if;
- end Data_Behind;
- -- |
- -- |=====================================================================
- -- | man page form_driver.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- function Driver (Frm : Form;
- Key : Key_Code) return Driver_Result
- is
- function Frm_Driver (Frm : Form; Key : C_Int) return C_Int;
- pragma Import (C, Frm_Driver, "form_driver");
-
- R : Eti_Error := Frm_Driver (Frm, C_Int (Key));
- begin
- if R /= E_Ok then
- if R = E_Unknown_Command then
- return Unknown_Request;
- elsif R = E_Invalid_Field then
- return Invalid_Field;
- elsif R = E_Request_Denied then
- return Request_Denied;
- else
- Eti_Exception (R);
- return Form_Ok;
- end if;
- else
- return Form_Ok;
- end if;
- end Driver;
- -- |
- -- |=====================================================================
- -- | man page form_page.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_Current (Frm : in Form;
- Fld : in Field)
- is
- function Set_Current_Fld (Frm : Form; Fld : Field) return C_Int;
- pragma Import (C, Set_Current_Fld, "set_current_field");
-
- Res : constant Eti_Error := Set_Current_Fld (Frm, Fld);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Current;
- -- |
- -- |
- -- |
- function Current (Frm : in Form) return Field
- is
- function Current_Fld (Frm : Form) return Field;
- pragma Import (C, Current_Fld, "current_field");
-
- Fld : constant Field := Current_Fld (Frm);
- begin
- if Fld = Null_Field then
- raise Form_Exception;
- end if;
- return Fld;
- end Current;
- -- |
- -- |
- -- |
- procedure Set_Page (Frm : in Form;
- Page : in Page_Number := Page_Number'First)
- is
- function Set_Frm_Page (Frm : Form; Pg : C_Int) return C_Int;
- pragma Import (C, Set_Frm_Page, "set_form_page");
-
- Res : constant Eti_Error := Set_Frm_Page (Frm, C_Int (Page));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Page;
- -- |
- -- |
- -- |
- function Page (Frm : Form) return Page_Number
- is
- function Get_Page (Frm : Form) return C_Int;
- pragma Import (C, Get_Page, "form_page");
-
- P : constant C_Int := Get_Page (Frm);
- begin
- if P < 0 then
- raise Form_Exception;
- else
- return Page_Number (P);
- end if;
- end Page;
-
- function Get_Index (Fld : Field) return Positive
- is
- function Get_Fieldindex (Fld : Field) return C_Int;
- pragma Import (C, Get_Fieldindex, "field_index");
-
- Res : constant C_Int := Get_Fieldindex (Fld);
- begin
- if Res = Curses_Err then
- raise Form_Exception;
- end if;
- return Positive (Natural (Res) + Positive'First);
- end Get_Index;
-
- -- |
- -- |=====================================================================
- -- | man page form_new_page.3x
- -- |=====================================================================
- -- |
- -- |
- -- |
- procedure Set_New_Page (Fld : in Field;
- New_Page : in Boolean := True)
- is
- function Set_Page (Fld : Field; Flg : C_Int) return C_Int;
- pragma Import (C, Set_Page, "set_new_page");
-
- Res : constant Eti_Error := Set_Page (Fld, Boolean'Pos (New_Page));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_New_Page;
- -- |
- -- |
- -- |
- function Is_New_Page (Fld : Field) return Boolean
- is
- function Is_New (Fld : Field) return C_Int;
- pragma Import (C, Is_New, "new_page");
-
- Res : constant C_Int := Is_New (Fld);
- begin
- if Res = Curses_False then
- return False;
- else
- return True;
- end if;
- end Is_New_Page;
-
- procedure Free (FA : in out Field_Array_Access;
- Free_Fields : in Boolean := False)
- is
- procedure Release is new Ada.Unchecked_Deallocation
- (Field_Array, Field_Array_Access);
- begin
- if FA /= null and then Free_Fields then
- for I in FA'First .. (FA'Last - 1) loop
- if (FA (I) /= Null_Field) then
- Delete (FA (I));
- end if;
- end loop;
- end if;
- Release (FA);
- end Free;
-
- -- |=====================================================================
-
- function Default_Field_Options return Field_Option_Set
- is
- begin
- return Get_Options (Null_Field);
- end Default_Field_Options;
-
- function Default_Form_Options return Form_Option_Set
- is
- begin
- return Get_Options (Null_Form);
- end Default_Form_Options;
-
-end Terminal_Interface.Curses.Forms;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-menus-item_user_data.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-menus-item_user_data.adb
deleted file mode 100644
index f5d0bc6..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-menus-item_user_data.adb
+++ /dev/null
@@ -1,78 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus.Item_User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Menus.Item_User_Data is
-
- use type Interfaces.C.int;
-
- procedure Set_User_Data (Itm : in Item;
- Data : in User_Access)
- is
- function Set_Item_Userptr (Itm : Item;
- Addr : User_Access) return C_Int;
- pragma Import (C, Set_Item_Userptr, "set_item_userptr");
-
- Res : constant Eti_Error := Set_Item_Userptr (Itm, Data);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_User_Data;
-
- function Get_User_Data (Itm : in Item) return User_Access
- is
- function Item_Userptr (Itm : Item) return User_Access;
- pragma Import (C, Item_Userptr, "item_userptr");
- begin
- return Item_Userptr (Itm);
- end Get_User_Data;
-
- procedure Get_User_Data (Itm : in Item;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Itm);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Menus.Item_User_Data;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
deleted file mode 100644
index 2405baa..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
+++ /dev/null
@@ -1,77 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus.Menu_User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-
-package body Terminal_Interface.Curses.Menus.Menu_User_Data is
-
- use type Interfaces.C.int;
-
- procedure Set_User_Data (Men : in Menu;
- Data : in User_Access)
- is
- function Set_Menu_Userptr (Men : Menu;
- Data : User_Access) return C_Int;
- pragma Import (C, Set_Menu_Userptr, "set_menu_userptr");
-
- Res : constant Eti_Error := Set_Menu_Userptr (Men, Data);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_User_Data;
-
- function Get_User_Data (Men : in Menu) return User_Access
- is
- function Menu_Userptr (Men : Menu) return User_Access;
- pragma Import (C, Menu_Userptr, "menu_userptr");
- begin
- return Menu_Userptr (Men);
- end Get_User_Data;
-
- procedure Get_User_Data (Men : in Menu;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Men);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Menus.Menu_User_Data;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-menus.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-menus.adb
deleted file mode 100644
index 8d854c1..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-menus.adb
+++ /dev/null
@@ -1,1022 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Menus --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Unchecked_Deallocation;
-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 Interfaces.C.Pointers;
-
-with Ada.Unchecked_Conversion;
-
-package body Terminal_Interface.Curses.Menus is
-
- type C_Item_Array is array (Natural range <>) of aliased Item;
- package I_Array is new
- Interfaces.C.Pointers (Natural, Item, C_Item_Array, Null_Item);
-
- use type System.Bit_Order;
- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
-
- function MOS_2_CInt is new
- Ada.Unchecked_Conversion (Menu_Option_Set,
- C_Int);
-
- function CInt_2_MOS is new
- Ada.Unchecked_Conversion (C_Int,
- Menu_Option_Set);
-
- function IOS_2_CInt is new
- Ada.Unchecked_Conversion (Item_Option_Set,
- C_Int);
-
- function CInt_2_IOS is new
- Ada.Unchecked_Conversion (C_Int,
- Item_Option_Set);
-
-------------------------------------------------------------------------------
- procedure Request_Name (Key : in Menu_Request_Code;
- Name : out String)
- is
- function Request_Name (Key : C_Int) return chars_ptr;
- pragma Import (C, Request_Name, "menu_request_name");
- begin
- Fill_String (Request_Name (C_Int (Key)), Name);
- end Request_Name;
-
- function Request_Name (Key : Menu_Request_Code) return String
- is
- function Request_Name (Key : C_Int) return chars_ptr;
- pragma Import (C, Request_Name, "menu_request_name");
- begin
- return Fill_String (Request_Name (C_Int (Key)));
- end Request_Name;
-
- function Create (Name : String;
- Description : String := "") return Item
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Newitem (Name, Desc : Char_Ptr) return Item;
- pragma Import (C, Newitem, "new_item");
-
- type Name_String is new char_array (0 .. Name'Length);
- type Name_String_Ptr is access Name_String;
- pragma Controlled (Name_String_Ptr);
-
- type Desc_String is new char_array (0 .. Description'Length);
- type Desc_String_Ptr is access Desc_String;
- pragma Controlled (Desc_String_Ptr);
-
- Name_Str : Name_String_Ptr := new Name_String;
- Desc_Str : Desc_String_Ptr := new Desc_String;
- Name_Len, Desc_Len : size_t;
- Result : Item;
- begin
- To_C (Name, Name_Str.all, Name_Len);
- To_C (Description, Desc_Str.all, Desc_Len);
- Result := Newitem (Name_Str.all (Name_Str.all'First)'Access,
- Desc_Str.all (Desc_Str.all'First)'Access);
- if Result = Null_Item then
- raise Eti_System_Error;
- end if;
- return Result;
- end Create;
-
- procedure Delete (Itm : in out Item)
- is
- function Descname (Itm : Item) return chars_ptr;
- pragma Import (C, Descname, "item_description");
- function Itemname (Itm : Item) return chars_ptr;
- pragma Import (C, Itemname, "item_name");
-
- function Freeitem (Itm : Item) return C_Int;
- pragma Import (C, Freeitem, "free_item");
-
- Res : Eti_Error;
- Ptr : chars_ptr;
- begin
- Ptr := Descname (Itm);
- if Ptr /= Null_Ptr then
- Interfaces.C.Strings.Free (Ptr);
- end if;
- Ptr := Itemname (Itm);
- if Ptr /= Null_Ptr then
- Interfaces.C.Strings.Free (Ptr);
- end if;
- Res := Freeitem (Itm);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Itm := Null_Item;
- end Delete;
--------------------------------------------------------------------------------
- procedure Set_Value (Itm : in Item;
- Value : in Boolean := True)
- is
- function Set_Item_Val (Itm : Item;
- Val : C_Int) return C_Int;
- pragma Import (C, Set_Item_Val, "set_item_value");
-
- Res : constant Eti_Error := Set_Item_Val (Itm, Boolean'Pos (Value));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Value;
-
- function Value (Itm : Item) return Boolean
- is
- function Item_Val (Itm : Item) return C_Int;
- pragma Import (C, Item_Val, "item_value");
- begin
- if Item_Val (Itm) = Curses_False then
- return False;
- else
- return True;
- end if;
- end Value;
-
--------------------------------------------------------------------------------
- function Visible (Itm : Item) return Boolean
- is
- function Item_Vis (Itm : Item) return C_Int;
- pragma Import (C, Item_Vis, "item_visible");
- begin
- if Item_Vis (Itm) = Curses_False then
- return False;
- else
- return True;
- end if;
- end Visible;
--------------------------------------------------------------------------------
- procedure Set_Options (Itm : in Item;
- Options : in Item_Option_Set)
- is
- function Set_Item_Opts (Itm : Item;
- Opt : C_Int) return C_Int;
- pragma Import (C, Set_Item_Opts, "set_item_opts");
-
- Opt : C_Int := IOS_2_CInt (Options);
- Res : Eti_Error;
- begin
- Res := Set_Item_Opts (Itm, Opt);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Options;
-
- procedure Switch_Options (Itm : in Item;
- Options : in Item_Option_Set;
- On : Boolean := True)
- is
- function Item_Opts_On (Itm : Item;
- Opt : C_Int) return C_Int;
- pragma Import (C, Item_Opts_On, "item_opts_on");
- function Item_Opts_Off (Itm : Item;
- Opt : C_Int) return C_Int;
- pragma Import (C, Item_Opts_Off, "item_opts_off");
-
- Opt : C_Int := IOS_2_CInt (Options);
- Err : Eti_Error;
- begin
- if On then
- Err := Item_Opts_On (Itm, Opt);
- else
- Err := Item_Opts_Off (Itm, Opt);
- end if;
- if Err /= E_Ok then
- Eti_Exception (Err);
- end if;
- end Switch_Options;
-
- procedure Get_Options (Itm : in Item;
- Options : out Item_Option_Set)
- is
- function Item_Opts (Itm : Item) return C_Int;
- pragma Import (C, Item_Opts, "item_opts");
-
- Res : C_Int := Item_Opts (Itm);
- begin
- Options := CInt_2_IOS (Res);
- end Get_Options;
-
- function Get_Options (Itm : Item := Null_Item) return Item_Option_Set
- is
- Ios : Item_Option_Set;
- begin
- Get_Options (Itm, Ios);
- return Ios;
- end Get_Options;
--------------------------------------------------------------------------------
- procedure Name (Itm : in Item;
- Name : out String)
- is
- function Itemname (Itm : Item) return chars_ptr;
- pragma Import (C, Itemname, "item_name");
- begin
- Fill_String (Itemname (Itm), Name);
- end Name;
-
- function Name (Itm : in Item) return String
- is
- function Itemname (Itm : Item) return chars_ptr;
- pragma Import (C, Itemname, "item_name");
- begin
- return Fill_String (Itemname (Itm));
- end Name;
-
- procedure Description (Itm : in Item;
- Description : out String)
- is
- function Descname (Itm : Item) return chars_ptr;
- pragma Import (C, Descname, "item_description");
- begin
- Fill_String (Descname (Itm), Description);
- end Description;
-
- function Description (Itm : in Item) return String
- is
- function Descname (Itm : Item) return chars_ptr;
- pragma Import (C, Descname, "item_description");
- begin
- return Fill_String (Descname (Itm));
- end Description;
--------------------------------------------------------------------------------
- procedure Set_Current (Men : in Menu;
- Itm : in Item)
- is
- function Set_Curr_Item (Men : Menu;
- Itm : Item) return C_Int;
- pragma Import (C, Set_Curr_Item, "set_current_item");
-
- Res : constant Eti_Error := Set_Curr_Item (Men, Itm);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Current;
-
- function Current (Men : Menu) return Item
- is
- function Curr_Item (Men : Menu) return Item;
- pragma Import (C, Curr_Item, "current_item");
-
- Res : constant Item := Curr_Item (Men);
- begin
- if Res = Null_Item then
- raise Menu_Exception;
- end if;
- return Res;
- end Current;
-
- procedure Set_Top_Row (Men : in Menu;
- Line : in Line_Position)
- is
- function Set_Toprow (Men : Menu;
- Line : C_Int) return C_Int;
- pragma Import (C, Set_Toprow, "set_top_row");
-
- Res : constant Eti_Error := Set_Toprow (Men, C_Int (Line));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Top_Row;
-
- function Top_Row (Men : Menu) return Line_Position
- is
- function Toprow (Men : Menu) return C_Int;
- pragma Import (C, Toprow, "top_row");
-
- Res : constant C_Int := Toprow (Men);
- begin
- if Res = Curses_Err then
- raise Menu_Exception;
- end if;
- return Line_Position (Res);
- end Top_Row;
-
- function Get_Index (Itm : Item) return Positive
- is
- function Get_Itemindex (Itm : Item) return C_Int;
- pragma Import (C, Get_Itemindex, "item_index");
-
- Res : constant C_Int := Get_Itemindex (Itm);
- begin
- if Res = Curses_Err then
- raise Menu_Exception;
- end if;
- return Positive (Natural (Res) + Positive'First);
- end Get_Index;
--------------------------------------------------------------------------------
- procedure Post (Men : in Menu;
- Post : in Boolean := True)
- is
- function M_Post (Men : Menu) return C_Int;
- pragma Import (C, M_Post, "post_menu");
- function M_Unpost (Men : Menu) return C_Int;
- pragma Import (C, M_Unpost, "unpost_menu");
-
- Res : Eti_Error;
- begin
- if Post then
- Res := M_Post (Men);
- else
- Res := M_Unpost (Men);
- end if;
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Post;
--------------------------------------------------------------------------------
- procedure Set_Options (Men : in Menu;
- Options : in Menu_Option_Set)
- is
- function Set_Menu_Opts (Men : Menu;
- Opt : C_Int) return C_Int;
- pragma Import (C, Set_Menu_Opts, "set_menu_opts");
-
- Opt : C_Int := MOS_2_CInt (Options);
- Res : Eti_Error;
- begin
- Res := Set_Menu_Opts (Men, Opt);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Options;
-
- procedure Switch_Options (Men : in Menu;
- Options : in Menu_Option_Set;
- On : in Boolean := True)
- is
- function Menu_Opts_On (Men : Menu;
- Opt : C_Int) return C_Int;
- pragma Import (C, Menu_Opts_On, "menu_opts_on");
- function Menu_Opts_Off (Men : Menu;
- Opt : C_Int) return C_Int;
- pragma Import (C, Menu_Opts_Off, "menu_opts_off");
-
- Opt : C_Int := MOS_2_CInt (Options);
- Err : Eti_Error;
- begin
- if On then
- Err := Menu_Opts_On (Men, Opt);
- else
- Err := Menu_Opts_Off (Men, Opt);
- end if;
- if Err /= E_Ok then
- Eti_Exception (Err);
- end if;
- end Switch_Options;
-
- procedure Get_Options (Men : in Menu;
- Options : out Menu_Option_Set)
- is
- function Menu_Opts (Men : Menu) return C_Int;
- pragma Import (C, Menu_Opts, "menu_opts");
-
- Res : C_Int := Menu_Opts (Men);
- begin
- Options := CInt_2_MOS (Res);
- end Get_Options;
-
- function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set
- is
- Mos : Menu_Option_Set;
- begin
- Get_Options (Men, Mos);
- return Mos;
- end Get_Options;
--------------------------------------------------------------------------------
- procedure Set_Window (Men : in Menu;
- Win : in Window)
- is
- function Set_Menu_Win (Men : Menu;
- Win : Window) return C_Int;
- pragma Import (C, Set_Menu_Win, "set_menu_win");
-
- Res : constant Eti_Error := Set_Menu_Win (Men, Win);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Window;
-
- function Get_Window (Men : Menu) return Window
- is
- function Menu_Win (Men : Menu) return Window;
- pragma Import (C, Menu_Win, "menu_win");
-
- W : constant Window := Menu_Win (Men);
- begin
- return W;
- end Get_Window;
-
- procedure Set_Sub_Window (Men : in Menu;
- Win : in Window)
- is
- function Set_Menu_Sub (Men : Menu;
- Win : Window) return C_Int;
- pragma Import (C, Set_Menu_Sub, "set_menu_sub");
-
- Res : constant Eti_Error := Set_Menu_Sub (Men, Win);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Sub_Window;
-
- function Get_Sub_Window (Men : Menu) return Window
- is
- function Menu_Sub (Men : Menu) return Window;
- pragma Import (C, Menu_Sub, "menu_sub");
-
- W : constant Window := Menu_Sub (Men);
- begin
- return W;
- end Get_Sub_Window;
-
- procedure Scale (Men : in Menu;
- Lines : out Line_Count;
- Columns : out Column_Count)
- is
- type C_Int_Access is access all C_Int;
- function M_Scale (Men : Menu;
- Yp, Xp : C_Int_Access) return C_Int;
- pragma Import (C, M_Scale, "scale_menu");
-
- X, Y : aliased C_Int;
- Res : constant Eti_Error := M_Scale (Men, Y'Access, X'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Lines := Line_Count (Y);
- Columns := Column_Count (X);
- end Scale;
--------------------------------------------------------------------------------
- procedure Position_Cursor (Men : Menu)
- is
- function Pos_Menu_Cursor (Men : Menu) return C_Int;
- pragma Import (C, Pos_Menu_Cursor, "pos_menu_cursor");
-
- Res : constant Eti_Error := Pos_Menu_Cursor (Men);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Position_Cursor;
-
--------------------------------------------------------------------------------
- procedure Set_Mark (Men : in Menu;
- Mark : in String)
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Set_Mark (Men : Menu;
- Mark : Char_Ptr) return C_Int;
- pragma Import (C, Set_Mark, "set_menu_mark");
-
- Txt : char_array (0 .. Mark'Length);
- Len : size_t;
- Res : Eti_Error;
- begin
- To_C (Mark, Txt, Len);
- Res := Set_Mark (Men, Txt (Txt'First)'Access);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Mark;
-
- procedure Mark (Men : in Menu;
- Mark : out String)
- is
- function Get_Menu_Mark (Men : Menu) return chars_ptr;
- pragma Import (C, Get_Menu_Mark, "menu_mark");
- begin
- Fill_String (Get_Menu_Mark (Men), Mark);
- end Mark;
-
- function Mark (Men : Menu) return String
- is
- function Get_Menu_Mark (Men : Menu) return chars_ptr;
- pragma Import (C, Get_Menu_Mark, "menu_mark");
- begin
- return Fill_String (Get_Menu_Mark (Men));
- end Mark;
-
--------------------------------------------------------------------------------
- procedure Set_Foreground
- (Men : in Menu;
- Fore : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Menu_Fore (Men : Menu;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Menu_Fore, "set_menu_fore");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Fore);
- Res : constant Eti_Error := Set_Menu_Fore (Men, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Foreground;
-
- procedure Foreground (Men : in Menu;
- Fore : out Character_Attribute_Set)
- is
- function Menu_Fore (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Fore, "menu_fore");
- begin
- Fore := Chtype_To_AttrChar (Menu_Fore (Men)).Attr;
- end Foreground;
-
- procedure Foreground (Men : in Menu;
- Fore : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Menu_Fore (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Fore, "menu_fore");
- begin
- Fore := Chtype_To_AttrChar (Menu_Fore (Men)).Attr;
- Color := Chtype_To_AttrChar (Menu_Fore (Men)).Color;
- end Foreground;
-
- procedure Set_Background
- (Men : in Menu;
- Back : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Menu_Back (Men : Menu;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Menu_Back, "set_menu_back");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Back);
- Res : constant Eti_Error := Set_Menu_Back (Men, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Background;
-
- procedure Background (Men : in Menu;
- Back : out Character_Attribute_Set)
- is
- function Menu_Back (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Back, "menu_back");
- begin
- Back := Chtype_To_AttrChar (Menu_Back (Men)).Attr;
- end Background;
-
- procedure Background (Men : in Menu;
- Back : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Menu_Back (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Back, "menu_back");
- begin
- Back := Chtype_To_AttrChar (Menu_Back (Men)).Attr;
- Color := Chtype_To_AttrChar (Menu_Back (Men)).Color;
- end Background;
-
- procedure Set_Grey (Men : in Menu;
- Grey : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Set_Menu_Grey (Men : Menu;
- Attr : C_Chtype) return C_Int;
- pragma Import (C, Set_Menu_Grey, "set_menu_grey");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Color => Color,
- Attr => Grey);
-
- Res : constant Eti_Error := Set_Menu_Grey (Men, AttrChar_To_Chtype (Ch));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Grey;
-
- procedure Grey (Men : in Menu;
- Grey : out Character_Attribute_Set)
- is
- function Menu_Grey (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Grey, "menu_grey");
- begin
- Grey := Chtype_To_AttrChar (Menu_Grey (Men)).Attr;
- end Grey;
-
- procedure Grey (Men : in Menu;
- Grey : out Character_Attribute_Set;
- Color : out Color_Pair)
- is
- function Menu_Grey (Men : Menu) return C_Chtype;
- pragma Import (C, Menu_Grey, "menu_grey");
- begin
- Grey := Chtype_To_AttrChar (Menu_Grey (Men)).Attr;
- Color := Chtype_To_AttrChar (Menu_Grey (Men)).Color;
- end Grey;
-
- procedure Set_Pad_Character (Men : in Menu;
- Pad : in Character := Space)
- is
- function Set_Menu_Pad (Men : Menu;
- Ch : C_Int) return C_Int;
- pragma Import (C, Set_Menu_Pad, "set_menu_pad");
-
- Res : constant Eti_Error := Set_Menu_Pad (Men,
- C_Int (Character'Pos (Pad)));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Pad_Character;
-
- procedure Pad_Character (Men : in Menu;
- Pad : out Character)
- is
- function Menu_Pad (Men : Menu) return C_Int;
- pragma Import (C, Menu_Pad, "menu_pad");
- begin
- Pad := Character'Val (Menu_Pad (Men));
- end Pad_Character;
--------------------------------------------------------------------------------
- procedure Set_Spacing (Men : in Menu;
- Descr : in Column_Position := 0;
- Row : in Line_Position := 0;
- Col : in Column_Position := 0)
- is
- function Set_Spacing (Men : Menu;
- D, R, C : C_Int) return C_Int;
- pragma Import (C, Set_Spacing, "set_menu_spacing");
-
- Res : constant Eti_Error := Set_Spacing (Men,
- C_Int (Descr),
- C_Int (Row),
- C_Int (Col));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Spacing;
-
- procedure Spacing (Men : in Menu;
- Descr : out Column_Position;
- Row : out Line_Position;
- Col : out Column_Position)
- is
- type C_Int_Access is access all C_Int;
- function Get_Spacing (Men : Menu;
- D, R, C : C_Int_Access) return C_Int;
- pragma Import (C, Get_Spacing, "menu_spacing");
-
- D, R, C : aliased C_Int;
- Res : constant Eti_Error := Get_Spacing (Men,
- D'Access,
- R'Access,
- C'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- else
- Descr := Column_Position (D);
- Row := Line_Position (R);
- Col := Column_Position (C);
- end if;
- end Spacing;
--------------------------------------------------------------------------------
- function Set_Pattern (Men : Menu;
- Text : String) return Boolean
- is
- type Char_Ptr is access all Interfaces.C.char;
- function Set_Pattern (Men : Menu;
- Pattern : Char_Ptr) return C_Int;
- pragma Import (C, Set_Pattern, "set_menu_pattern");
-
- S : char_array (0 .. Text'Length);
- L : size_t;
- Res : Eti_Error;
- begin
- To_C (Text, S, L);
- Res := Set_Pattern (Men, S (S'First)'Access);
- case Res is
- when E_No_Match => return False;
- when E_Ok => return True;
- when others =>
- Eti_Exception (Res);
- return False;
- end case;
- end Set_Pattern;
-
- procedure Pattern (Men : in Menu;
- Text : out String)
- is
- function Get_Pattern (Men : Menu) return chars_ptr;
- pragma Import (C, Get_Pattern, "menu_pattern");
- begin
- Fill_String (Get_Pattern (Men), Text);
- end Pattern;
--------------------------------------------------------------------------------
- procedure Set_Format (Men : in Menu;
- Lines : in Line_Count;
- Columns : in Column_Count)
- is
- function Set_Menu_Fmt (Men : Menu;
- Lin : C_Int;
- Col : C_Int) return C_Int;
- pragma Import (C, Set_Menu_Fmt, "set_menu_format");
-
- Res : constant Eti_Error := Set_Menu_Fmt (Men,
- C_Int (Lines),
- C_Int (Columns));
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Format;
-
- procedure Format (Men : in Menu;
- Lines : out Line_Count;
- Columns : out Column_Count)
- is
- type C_Int_Access is access all C_Int;
- function Menu_Fmt (Men : Menu;
- Y, X : C_Int_Access) return C_Int;
- pragma Import (C, Menu_Fmt, "menu_format");
-
- L, C : aliased C_Int;
- Res : constant Eti_Error := Menu_Fmt (Men, L'Access, C'Access);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- else
- Lines := Line_Count (L);
- Columns := Column_Count (C);
- end if;
- end Format;
--------------------------------------------------------------------------------
- procedure Set_Item_Init_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function)
- is
- function Set_Item_Init (Men : Menu;
- Proc : Menu_Hook_Function) return C_Int;
- pragma Import (C, Set_Item_Init, "set_item_init");
-
- Res : constant Eti_Error := Set_Item_Init (Men, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Item_Init_Hook;
-
- procedure Set_Item_Term_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function)
- is
- function Set_Item_Term (Men : Menu;
- Proc : Menu_Hook_Function) return C_Int;
- pragma Import (C, Set_Item_Term, "set_item_term");
-
- Res : constant Eti_Error := Set_Item_Term (Men, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Item_Term_Hook;
-
- procedure Set_Menu_Init_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function)
- is
- function Set_Menu_Init (Men : Menu;
- Proc : Menu_Hook_Function) return C_Int;
- pragma Import (C, Set_Menu_Init, "set_menu_init");
-
- Res : constant Eti_Error := Set_Menu_Init (Men, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Menu_Init_Hook;
-
- procedure Set_Menu_Term_Hook (Men : in Menu;
- Proc : in Menu_Hook_Function)
- is
- function Set_Menu_Term (Men : Menu;
- Proc : Menu_Hook_Function) return C_Int;
- pragma Import (C, Set_Menu_Term, "set_menu_term");
-
- Res : constant Eti_Error := Set_Menu_Term (Men, Proc);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end Set_Menu_Term_Hook;
-
- function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function
- is
- function Item_Init (Men : Menu) return Menu_Hook_Function;
- pragma Import (C, Item_Init, "item_init");
- begin
- return Item_Init (Men);
- end Get_Item_Init_Hook;
-
- function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function
- is
- function Item_Term (Men : Menu) return Menu_Hook_Function;
- pragma Import (C, Item_Term, "item_term");
- begin
- return Item_Term (Men);
- end Get_Item_Term_Hook;
-
- function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function
- is
- function Menu_Init (Men : Menu) return Menu_Hook_Function;
- pragma Import (C, Menu_Init, "menu_init");
- begin
- return Menu_Init (Men);
- end Get_Menu_Init_Hook;
-
- function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function
- is
- function Menu_Term (Men : Menu) return Menu_Hook_Function;
- pragma Import (C, Menu_Term, "menu_term");
- begin
- return Menu_Term (Men);
- end Get_Menu_Term_Hook;
--------------------------------------------------------------------------------
- procedure Redefine (Men : in Menu;
- Items : in Item_Array_Access)
- is
- function Set_Items (Men : Menu;
- Items : System.Address) return C_Int;
- pragma Import (C, Set_Items, "set_menu_items");
-
- Res : Eti_Error;
- begin
- pragma Assert (Items (Items'Last) = Null_Item);
- if Items (Items'Last) /= Null_Item then
- raise Menu_Exception;
- else
- Res := Set_Items (Men, Items.all'Address);
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- end if;
- end Redefine;
-
- function Item_Count (Men : Menu) return Natural
- is
- function Count (Men : Menu) return C_Int;
- pragma Import (C, Count, "item_count");
- begin
- return Natural (Count (Men));
- end Item_Count;
-
- function Items (Men : Menu;
- Index : Positive) return Item
- is
- use I_Array;
-
- function C_Mitems (Men : Menu) return Pointer;
- pragma Import (C, C_Mitems, "menu_items");
-
- P : Pointer := C_Mitems (Men);
- begin
- if P = null or else Index not in 1 .. Item_Count (Men) then
- raise Menu_Exception;
- else
- P := P + ptrdiff_t (C_Int (Index) - 1);
- return P.all;
- end if;
- end Items;
-
--------------------------------------------------------------------------------
- function Create (Items : Item_Array_Access) return Menu
- is
- function Newmenu (Items : System.Address) return Menu;
- pragma Import (C, Newmenu, "new_menu");
-
- M : Menu;
- begin
- pragma Assert (Items (Items'Last) = Null_Item);
- if Items (Items'Last) /= Null_Item then
- raise Menu_Exception;
- else
- M := Newmenu (Items.all'Address);
- if M = Null_Menu then
- raise Menu_Exception;
- end if;
- return M;
- end if;
- end Create;
-
- procedure Delete (Men : in out Menu)
- is
- function Free (Men : Menu) return C_Int;
- pragma Import (C, Free, "free_menu");
-
- Res : constant Eti_Error := Free (Men);
- begin
- if Res /= E_Ok then
- Eti_Exception (Res);
- end if;
- Men := Null_Menu;
- end Delete;
-
-------------------------------------------------------------------------------
- function Driver (Men : Menu;
- Key : Key_Code) return Driver_Result
- is
- function Driver (Men : Menu;
- Key : C_Int) return C_Int;
- pragma Import (C, Driver, "menu_driver");
-
- R : Eti_Error := Driver (Men, C_Int (Key));
- begin
- if R /= E_Ok then
- case R is
- when E_Unknown_Command => return Unknown_Request;
- when E_No_Match => return No_Match;
- when E_Request_Denied |
- E_Not_Selectable => return Request_Denied;
- when others =>
- Eti_Exception (R);
- end case;
- end if;
- return Menu_Ok;
- end Driver;
-
- procedure Free (IA : in out Item_Array_Access;
- Free_Items : in Boolean := False)
- is
- procedure Release is new Ada.Unchecked_Deallocation
- (Item_Array, Item_Array_Access);
- begin
- if IA /= null and then Free_Items then
- for I in IA'First .. (IA'Last - 1) loop
- if (IA (I) /= Null_Item) then
- Delete (IA (I));
- end if;
- end loop;
- end if;
- Release (IA);
- end Free;
-
--------------------------------------------------------------------------------
- function Default_Menu_Options return Menu_Option_Set
- is
- begin
- return Get_Options (Null_Menu);
- end Default_Menu_Options;
-
- function Default_Item_Options return Item_Option_Set
- is
- begin
- return Get_Options (Null_Item);
- end Default_Item_Options;
--------------------------------------------------------------------------------
-
-end Terminal_Interface.Curses.Menus;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-mouse.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-mouse.adb
deleted file mode 100644
index 29275cb..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-mouse.adb
+++ /dev/null
@@ -1,215 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Mouse --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with System;
-
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Interfaces.C; use Interfaces.C;
-use Interfaces;
-
-package body Terminal_Interface.Curses.Mouse is
-
- use type System.Bit_Order;
- use type Interfaces.C.int;
-
- function Has_Mouse return Boolean
- is
- function Mouse_Avail return C_Int;
- pragma Import (C, Mouse_Avail, "_nc_has_mouse");
- begin
- if Has_Key (Key_Mouse) or else Mouse_Avail /= 0 then
- return True;
- else
- return False;
- end if;
- end Has_Mouse;
-
- function Get_Mouse return Mouse_Event
- is
- type Event_Access is access all Mouse_Event;
-
- function Getmouse (Ev : Event_Access) return C_Int;
- pragma Import (C, Getmouse, "getmouse");
-
- Event : aliased Mouse_Event;
- begin
- if Getmouse (Event'Access) = Curses_Err then
- raise Curses_Exception;
- end if;
- return Event;
- end Get_Mouse;
-
- procedure Register_Reportable_Event (Button : in Mouse_Button;
- State : in Button_State;
- Mask : in out Event_Mask)
- is
- Button_Nr : constant Natural := Mouse_Button'Pos (Button);
- State_Nr : constant Natural := Button_State'Pos (State);
- begin
- if Button in Modifier_Keys and then State /= Pressed then
- raise Curses_Exception;
- else
- if Button in Real_Buttons then
- Mask := Mask or ((2 ** (6 * Button_Nr)) ** State_Nr);
- else
- Mask := Mask or (BUTTON_CTRL ** (Button_Nr - 4));
- end if;
- end if;
- end Register_Reportable_Event;
-
- procedure Register_Reportable_Events (Button : in Mouse_Button;
- State : in Button_States;
- Mask : in out Event_Mask)
- is
- begin
- for S in Button_States'Range loop
- if State (S) then
- Register_Reportable_Event (Button, S, Mask);
- end if;
- end loop;
- end Register_Reportable_Events;
-
- function Start_Mouse (Mask : Event_Mask := All_Events)
- return Event_Mask
- is
- function MMask (M : Event_Mask;
- O : access Event_Mask) return Event_Mask;
- pragma Import (C, MMask, "mousemask");
- R : Event_Mask;
- Old : aliased Event_Mask;
- begin
- R := MMask (Mask, Old'Access);
- return Old;
- end Start_Mouse;
-
- procedure End_Mouse (Mask : in Event_Mask := No_Events)
- is
- begin
- null;
- end End_Mouse;
-
- procedure Dispatch_Event (Mask : in Event_Mask;
- Button : out Mouse_Button;
- State : out Button_State);
-
- procedure Dispatch_Event (Mask : in Event_Mask;
- Button : out Mouse_Button;
- State : out Button_State) is
- L : Event_Mask;
- begin
- Button := Alt; -- preset to non real button;
- if (Mask and BUTTON1_EVENTS) /= 0 then
- Button := Left;
- elsif (Mask and BUTTON2_EVENTS) /= 0 then
- Button := Middle;
- elsif (Mask and BUTTON3_EVENTS) /= 0 then
- Button := Right;
- elsif (Mask and BUTTON4_EVENTS) /= 0 then
- Button := Button4;
- end if;
- if Button in Real_Buttons then
- L := 2 ** (6 * Mouse_Button'Pos (Button));
- for I in Button_State'Range loop
- if (Mask and L) /= 0 then
- State := I;
- exit;
- end if;
- L := 2 * L;
- end loop;
- else
- State := Pressed;
- if (Mask and BUTTON_CTRL) /= 0 then
- Button := Control;
- elsif (Mask and BUTTON_SHIFT) /= 0 then
- Button := Shift;
- elsif (Mask and BUTTON_ALT) /= 0 then
- Button := Alt;
- end if;
- end if;
- end Dispatch_Event;
-
- procedure Get_Event (Event : in Mouse_Event;
- Y : out Line_Position;
- X : out Column_Position;
- Button : out Mouse_Button;
- State : out Button_State)
- is
- Mask : constant Event_Mask := Event.Bstate;
- begin
- X := Column_Position (Event.X);
- Y := Line_Position (Event.Y);
- Dispatch_Event (Mask, Button, State);
- end Get_Event;
-
- procedure Unget_Mouse (Event : in Mouse_Event)
- is
- function Ungetmouse (Ev : Mouse_Event) return C_Int;
- pragma Import (C, Ungetmouse, "ungetmouse");
- begin
- if Ungetmouse (Event) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Unget_Mouse;
-
- function Enclosed_In_Window (Win : Window := Standard_Window;
- Event : Mouse_Event) return Boolean
- is
- function Wenclose (Win : Window; Y : C_Int; X : C_Int)
- return Curses_Bool;
- pragma Import (C, Wenclose, "wenclose");
- begin
- if Wenclose (Win, C_Int (Event.Y), C_Int (Event.X))
- = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Enclosed_In_Window;
-
- function Mouse_Interval (Msec : Natural := 200) return Natural
- is
- function Mouseinterval (Msec : C_Int) return C_Int;
- pragma Import (C, Mouseinterval, "mouseinterval");
- begin
- return Natural (Mouseinterval (C_Int (Msec)));
- end Mouse_Interval;
-
-end Terminal_Interface.Curses.Mouse;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-panels-user_data.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-panels-user_data.adb
deleted file mode 100644
index 14871c0..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-panels-user_data.adb
+++ /dev/null
@@ -1,79 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Panels.User_Data --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux;
-use Terminal_Interface.Curses.Aux;
-with Terminal_Interface.Curses.Panels;
-use Terminal_Interface.Curses.Panels;
-
-package body Terminal_Interface.Curses.Panels.User_Data is
-
- use type Interfaces.C.int;
-
- procedure Set_User_Data (Pan : in Panel;
- Data : in User_Access)
- is
- function Set_Panel_Userptr (Pan : Panel;
- Addr : User_Access) return C_Int;
- pragma Import (C, Set_Panel_Userptr, "set_panel_userptr");
- begin
- if Set_Panel_Userptr (Pan, Data) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Set_User_Data;
-
- function Get_User_Data (Pan : in Panel) return User_Access
- is
- function Panel_Userptr (Pan : Panel) return User_Access;
- pragma Import (C, Panel_Userptr, "panel_userptr");
- begin
- return Panel_Userptr (Pan);
- end Get_User_Data;
-
- procedure Get_User_Data (Pan : in Panel;
- Data : out User_Access)
- is
- begin
- Data := Get_User_Data (Pan);
- end Get_User_Data;
-
-end Terminal_Interface.Curses.Panels.User_Data;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-panels.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-panels.adb
deleted file mode 100644
index 03e298c..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-panels.adb
+++ /dev/null
@@ -1,165 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Panels --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Interfaces.C;
-
-package body Terminal_Interface.Curses.Panels is
-
- use type Interfaces.C.int;
-
- function Create (Win : Window) return Panel
- is
- function Newpanel (Win : Window) return Panel;
- pragma Import (C, Newpanel, "new_panel");
-
- Pan : Panel;
- begin
- Pan := Newpanel (Win);
- if Pan = Null_Panel then
- raise Panel_Exception;
- end if;
- return Pan;
- end Create;
-
- procedure Bottom (Pan : in Panel)
- is
- function Bottompanel (Pan : Panel) return C_Int;
- pragma Import (C, Bottompanel, "bottom_panel");
- begin
- if Bottompanel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Bottom;
-
- procedure Top (Pan : in Panel)
- is
- function Toppanel (Pan : Panel) return C_Int;
- pragma Import (C, Toppanel, "top_panel");
- begin
- if Toppanel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Top;
-
- procedure Show (Pan : in Panel)
- is
- function Showpanel (Pan : Panel) return C_Int;
- pragma Import (C, Showpanel, "show_panel");
- begin
- if Showpanel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Show;
-
- procedure Hide (Pan : in Panel)
- is
- function Hidepanel (Pan : Panel) return C_Int;
- pragma Import (C, Hidepanel, "hide_panel");
- begin
- if Hidepanel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Hide;
-
- function Get_Window (Pan : Panel) return Window
- is
- function Panel_Win (Pan : Panel) return Window;
- pragma Import (C, Panel_Win, "panel_window");
-
- Win : Window := Panel_Win (Pan);
- begin
- if Win = Null_Window then
- raise Panel_Exception;
- end if;
- return Win;
- end Get_Window;
-
- procedure Replace (Pan : in Panel;
- Win : in Window)
- is
- function Replace_Pan (Pan : Panel;
- Win : Window) return C_Int;
- pragma Import (C, Replace_Pan, "replace_panel");
- begin
- if Replace_Pan (Pan, Win) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Replace;
-
- procedure Move (Pan : in Panel;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Move (Pan : Panel;
- Line : C_Int;
- Column : C_Int) return C_Int;
- pragma Import (C, Move, "move_panel");
- begin
- if Move (Pan, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Panel_Exception;
- end if;
- end Move;
-
- function Is_Hidden (Pan : Panel) return Boolean
- is
- function Panel_Hidden (Pan : Panel) return C_Int;
- pragma Import (C, Panel_Hidden, "panel_hidden");
- begin
- if Panel_Hidden (Pan) = Curses_False then
- return False;
- else
- return True;
- end if;
- end Is_Hidden;
-
- procedure Delete (Pan : in out Panel)
- is
- function Del_Panel (Pan : Panel) return C_Int;
- pragma Import (C, Del_Panel, "del_panel");
- begin
- if Del_Panel (Pan) = Curses_Err then
- raise Panel_Exception;
- end if;
- Pan := Null_Panel;
- end Delete;
-
-end Terminal_Interface.Curses.Panels;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.adb
deleted file mode 100644
index 22e0ff4..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.adb
+++ /dev/null
@@ -1,78 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.ads
deleted file mode 100644
index 8ffee2d..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-putwin.ads
+++ /dev/null
@@ -1,51 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.adb
deleted file mode 100644
index be845d5..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.adb
+++ /dev/null
@@ -1,164 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.ads
deleted file mode 100644
index 341e581..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-termcap.ads
+++ /dev/null
@@ -1,81 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.adb
deleted file mode 100644
index 004e387..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.adb
+++ /dev/null
@@ -1,162 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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/ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.ads
deleted file mode 100644
index 3fe5a7a..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-terminfo.ads
+++ /dev/null
@@ -1,82 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.adb
deleted file mode 100644
index eddbc31..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.adb
+++ /dev/null
@@ -1,129 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Aux --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Text_IO.Aux is
-
- procedure Put_Buf
- (Win : in Window;
- Buf : in String;
- Width : in Field;
- Signal : in Boolean := True;
- Ljust : in Boolean := False)
- is
- L : Field;
- Len : Field;
- W : Field := Width;
- LC : Line_Count;
- CC : Column_Count;
- Y : Line_Position;
- X : Column_Position;
-
- procedure Output (From, To : Field);
-
- procedure Output (From, To : Field)
- is
- begin
- if Len > 0 then
- if W = 0 then
- W := Len;
- end if;
- if Len > W then
- -- LRM A10.6 (7) says this
- W := Len;
- end if;
-
- pragma Assert (Len <= W);
- Get_Size (Win, LC, CC);
- if Column_Count (Len) > CC then
- if Signal then
- raise Layout_Error;
- else
- return;
- end if;
- else
- if Len < W and then not Ljust then
- declare
- Filler : constant String (1 .. (W - Len))
- := (others => ' ');
- begin
- Put (Win, Filler);
- end;
- end if;
- Get_Cursor_Position (Win, Y, X);
- if (X + Column_Position (Len)) > CC then
- New_Line (Win);
- end if;
- Put (Win, Buf (From .. To));
- if Len < W and then Ljust then
- declare
- Filler : constant String (1 .. (W - Len))
- := (others => ' ');
- begin
- Put (Win, Filler);
- end;
- end if;
- end if;
- end if;
- end Output;
-
- begin
- pragma Assert (Win /= Null_Window);
- if Ljust then
- L := 1;
- for I in 1 .. Buf'Length loop
- exit when Buf (L) = ' ';
- L := L + 1;
- end loop;
- Len := L - 1;
- Output (1, Len);
- else -- input buffer is not left justified
- L := Buf'Length;
- for I in 1 .. Buf'Length loop
- exit when Buf (L) = ' ';
- L := L - 1;
- end loop;
- Len := Buf'Length - L;
- Output (L + 1, Buf'Length);
- end if;
- end Put_Buf;
-
-end Terminal_Interface.Curses.Text_IO.Aux;
-
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.ads
deleted file mode 100644
index eaf589e..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-aux.ads
+++ /dev/null
@@ -1,56 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Aux --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-private package Terminal_Interface.Curses.Text_IO.Aux is
- -- pragma Preelaborate (Aux);
-
- -- This routine is called from the Text_IO output routines for numeric
- -- and enumeration types.
- --
- procedure Put_Buf
- (Win : in Window; -- The output window
- Buf : in String; -- The buffer containing the text
- Width : in Field; -- The width of the output field
- Signal : in Boolean := True; -- If true, we raise Layout_Error
- Ljust : in Boolean := False); -- The Buf is left justified
-
-end Terminal_Interface.Curses.Text_IO.Aux;
-
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.adb
deleted file mode 100644
index f418c90..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.adb
+++ /dev/null
@@ -1,74 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Complex_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Text_IO.Float_IO;
-
-package body Terminal_Interface.Curses.Text_IO.Complex_IO is
-
- package FIO is new
- Terminal_Interface.Curses.Text_IO.Float_IO (Complex_Types.Real'Base);
-
- procedure Put
- (Win : in Window;
- Item : in Complex;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- begin
- Put (Win, '(');
- FIO.Put (Win, Item.Re, Fore, Aft, Exp);
- Put (Win, ',');
- FIO.Put (Win, Item.Im, Fore, Aft, Exp);
- Put (Win, ')');
- end Put;
-
- procedure Put
- (Item : in Complex;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- begin
- Put (Get_Window, Item, Fore, Aft, Exp);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Complex_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.ads
deleted file mode 100644
index 8ef99d5..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-complex_io.ads
+++ /dev/null
@@ -1,71 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Complex_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Numerics.Generic_Complex_Types;
-
-generic
- with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (<>);
-
-package Terminal_Interface.Curses.Text_IO.Complex_IO is
-
- use Complex_Types;
-
- Default_Fore : Field := 2;
- Default_Aft : Field := Real'Digits - 1;
- Default_Exp : Field := 3;
-
- procedure Put
- (Win : in Window;
- Item : in Complex;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
- procedure Put
- (Item : in Complex;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Complex_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb
deleted file mode 100644
index 6c3dee5..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb
+++ /dev/null
@@ -1,76 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Decimal_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Decimal_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package DIO is new Ada.Text_IO.Decimal_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- Buf : String (1 .. Field'Last);
- Len : Field := Fore + 1 + Aft;
- begin
- if Exp > 0 then
- Len := Len + 1 + Exp;
- end if;
- DIO.Put (Buf, Item, Aft, Exp);
- Aux.Put_Buf (Win, Buf, Len, False);
- end Put;
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp) is
- begin
- Put (Get_Window, Item, Fore, Aft, Exp);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Decimal_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads
deleted file mode 100644
index 469da7c..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads
+++ /dev/null
@@ -1,67 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Decimal_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is delta <> digits <>;
-
-package Terminal_Interface.Curses.Text_IO.Decimal_IO is
-
- Default_Fore : Field := Num'Fore;
- Default_Aft : Field := Num'Aft;
- Default_Exp : Field := 0;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Decimal_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb
deleted file mode 100644
index 026b288..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb
+++ /dev/null
@@ -1,81 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Enumeration_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Ada.Characters.Handling; use Ada.Characters.Handling;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Enumeration_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package EIO is new Ada.Text_IO.Enumeration_IO (Enum);
-
- procedure Put
- (Win : in Window;
- Item : in Enum;
- Width : in Field := Default_Width;
- Set : in Type_Set := Default_Setting)
- is
- Buf : String (1 .. Field'Last);
- Tset : Ada.Text_IO.Type_Set;
- begin
- if Set /= Mixed_Case then
- Tset := Ada.Text_IO.Type_Set'Val (Type_Set'Pos (Set));
- else
- Tset := Ada.Text_IO.Lower_Case;
- end if;
- EIO.Put (Buf, Item, Tset);
- if Set = Mixed_Case then
- Buf (Buf'First) := To_Upper (Buf (Buf'First));
- end if;
- Aux.Put_Buf (Win, Buf, Width, True, True);
- end Put;
-
- procedure Put
- (Item : in Enum;
- Width : in Field := Default_Width;
- Set : in Type_Set := Default_Setting)
- is
- begin
- Put (Get_Window, Item, Width, Set);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Enumeration_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads
deleted file mode 100644
index 31829d3..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads
+++ /dev/null
@@ -1,64 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Enumeration_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Enum is (<>);
-
-package Terminal_Interface.Curses.Text_IO.Enumeration_IO is
-
- Default_Width : Field := 0;
- Default_Setting : Type_Set := Mixed_Case;
-
- procedure Put
- (Win : in Window;
- Item : in Enum;
- Width : in Field := Default_Width;
- Set : in Type_Set := Default_Setting);
-
- procedure Put
- (Item : in Enum;
- Width : in Field := Default_Width;
- Set : in Type_Set := Default_Setting);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Enumeration_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb
deleted file mode 100644
index e9ed86d..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb
+++ /dev/null
@@ -1,76 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Fixed_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Fixed_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package FIXIO is new Ada.Text_IO.Fixed_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- Buf : String (1 .. Field'Last);
- Len : Field := Fore + 1 + Aft;
- begin
- if Exp > 0 then
- Len := Len + 1 + Exp;
- end if;
- FIXIO.Put (Buf, Item, Aft, Exp);
- Aux.Put_Buf (Win, Buf, Len, False);
- end Put;
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp) is
- begin
- Put (Get_Window, Item, Fore, Aft, Exp);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Fixed_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads
deleted file mode 100644
index b73b8e6..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads
+++ /dev/null
@@ -1,67 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Fixed_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is delta <>;
-
-package Terminal_Interface.Curses.Text_IO.Fixed_IO is
-
- Default_Fore : Field := Num'Fore;
- Default_Aft : Field := Num'Aft;
- Default_Exp : Field := 0;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Fixed_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.adb
deleted file mode 100644
index 67c1281..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.adb
+++ /dev/null
@@ -1,77 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Float_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Float_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package FIO is new Ada.Text_IO.Float_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- Buf : String (1 .. Field'Last);
- Len : Field := Fore + 1 + Aft;
- begin
- if Exp > 0 then
- Len := Len + 1 + Exp;
- end if;
- FIO.Put (Buf, Item, Aft, Exp);
- Aux.Put_Buf (Win, Buf, Len, False);
- end Put;
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp)
- is
- begin
- Put (Get_Window, Item, Fore, Aft, Exp);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Float_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.ads
deleted file mode 100644
index b98cf36..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-float_io.ads
+++ /dev/null
@@ -1,67 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Float_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is digits <>;
-
-package Terminal_Interface.Curses.Text_IO.Float_IO is
-
- Default_Fore : Field := 2;
- Default_Aft : Field := Num'Digits - 1;
- Default_Exp : Field := 3;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
- procedure Put
- (Item : in Num;
- Fore : in Field := Default_Fore;
- Aft : in Field := Default_Aft;
- Exp : in Field := Default_Exp);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Float_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.adb
deleted file mode 100644
index c9e7f27..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.adb
+++ /dev/null
@@ -1,71 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Integer_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Integer_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package IIO is new Ada.Text_IO.Integer_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base)
- is
- Buf : String (1 .. Field'Last);
- begin
- IIO.Put (Buf, Item, Base);
- Aux.Put_Buf (Win, Buf, Width);
- end Put;
-
- procedure Put
- (Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base)
- is
- begin
- Put (Get_Window, Item, Width, Base);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Integer_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.ads
deleted file mode 100644
index b7b1932..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-integer_io.ads
+++ /dev/null
@@ -1,64 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Integer_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is range <>;
-
-package Terminal_Interface.Curses.Text_IO.Integer_IO is
-
- Default_Width : Field := Num'Width;
- Default_Base : Number_Base := 10;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base);
-
- procedure Put
- (Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Integer_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.adb
deleted file mode 100644
index 48a83a8..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.adb
+++ /dev/null
@@ -1,71 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Modular_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
-
-package body Terminal_Interface.Curses.Text_IO.Modular_IO is
-
- package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
- package MIO is new Ada.Text_IO.Modular_IO (Num);
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base)
- is
- Buf : String (1 .. Field'Last);
- begin
- MIO.Put (Buf, Item, Base);
- Aux.Put_Buf (Win, Buf, Width);
- end Put;
-
- procedure Put
- (Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base)
- is
- begin
- Put (Get_Window, Item, Width, Base);
- end Put;
-
-end Terminal_Interface.Curses.Text_IO.Modular_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.ads
deleted file mode 100644
index a9264a8..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io-modular_io.ads
+++ /dev/null
@@ -1,64 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO.Modular_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-generic
- type Num is mod <>;
-
-package Terminal_Interface.Curses.Text_IO.Modular_IO is
-
- Default_Width : Field := Num'Width;
- Default_Base : Number_Base := 10;
-
- procedure Put
- (Win : in Window;
- Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base);
-
- procedure Put
- (Item : in Num;
- Width : in Field := Default_Width;
- Base : in Number_Base := Default_Base);
-
-private
- pragma Inline (Put);
-
-end Terminal_Interface.Curses.Text_IO.Modular_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.adb
deleted file mode 100644
index 64ac2b6..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.adb
+++ /dev/null
@@ -1,337 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Text_IO is
-
- Default_Window : Window := Null_Window;
-
- procedure Set_Window (Win : in Window)
- is
- begin
- Default_Window := Win;
- end Set_Window;
-
- function Get_Window return Window
- is
- begin
- if Default_Window = Null_Window then
- return Standard_Window;
- else
- return Default_Window;
- end if;
- end Get_Window;
- pragma Inline (Get_Window);
-
- procedure Flush (Win : in Window)
- is
- begin
- Refresh (Win);
- end Flush;
-
- procedure Flush
- is
- begin
- Flush (Get_Window);
- end Flush;
-
- --------------------------------------------
- -- Specification of line and page lengths --
- --------------------------------------------
-
- -- There are no set routines in this package. I assume, that you allocate
- -- the window with an appropriate size.
- -- A scroll-window is interpreted as an page with unbounded page length,
- -- i.e. it returns the conventional 0 as page length.
-
- function Line_Length (Win : in Window) return Count
- is
- N_Lines : Line_Count;
- N_Cols : Column_Count;
- begin
- Get_Size (Win, N_Lines, N_Cols);
- if Natural (N_Cols) > Natural (Count'Last) then
- raise Layout_Error;
- end if;
- return Count (N_Cols);
- end Line_Length;
-
- function Line_Length return Count
- is
- begin
- return Line_Length (Get_Window);
- end Line_Length;
-
- function Page_Length (Win : in Window) return Count
- is
- N_Lines : Line_Count;
- N_Cols : Column_Count;
- begin
- if Scrolling_Allowed (Win) then
- return 0;
- else
- Get_Size (Win, N_Lines, N_Cols);
- if Natural (N_Lines) > Natural (Count'Last) then
- raise Layout_Error;
- end if;
- return Count (N_Lines);
- end if;
- end Page_Length;
-
- function Page_Length return Count
- is
- begin
- return Page_Length (Get_Window);
- end Page_Length;
-
- ------------------------------------
- -- Column, Line, and Page Control --
- ------------------------------------
- procedure New_Line (Win : in Window; Spacing : in Positive_Count := 1)
- is
- P_Size : constant Count := Page_Length (Win);
- begin
- if Spacing not in Positive_Count then
- raise Constraint_Error;
- end if;
-
- for I in 1 .. Spacing loop
- if P_Size > 0 and then Line (Win) >= P_Size then
- New_Page (Win);
- else
- Add (Win, ASCII.LF);
- end if;
- end loop;
- end New_Line;
-
- procedure New_Line (Spacing : in Positive_Count := 1)
- is
- begin
- New_Line (Get_Window, Spacing);
- end New_Line;
-
- procedure New_Page (Win : in Window)
- is
- begin
- Clear (Win);
- end New_Page;
-
- procedure New_Page
- is
- begin
- New_Page (Get_Window);
- end New_Page;
-
- procedure Set_Col (Win : in Window; To : in Positive_Count)
- is
- Y : Line_Position;
- X1 : Column_Position;
- X2 : Column_Position;
- N : Natural;
- begin
- if To not in Positive_Count then
- raise Constraint_Error;
- end if;
-
- Get_Cursor_Position (Win, Y, X1);
- N := Natural (To); N := N - 1;
- X2 := Column_Position (N);
- if X1 > X2 then
- New_Line (Win, 1);
- X1 := 0;
- end if;
- if X1 < X2 then
- declare
- Filler : constant String (Integer (X1) .. (Integer (X2) - 1))
- := (others => ' ');
- begin
- Put (Win, Filler);
- end;
- end if;
- end Set_Col;
-
- procedure Set_Col (To : in Positive_Count)
- is
- begin
- Set_Col (Get_Window, To);
- end Set_Col;
-
- procedure Set_Line (Win : in Window; To : in Positive_Count)
- is
- Y1 : Line_Position;
- Y2 : Line_Position;
- X : Column_Position;
- N : Natural;
- begin
- if To not in Positive_Count then
- raise Constraint_Error;
- end if;
-
- Get_Cursor_Position (Win, Y1, X);
- N := Natural (To); N := N - 1;
- Y2 := Line_Position (N);
- if Y2 < Y1 then
- New_Page (Win);
- Y1 := 0;
- end if;
- if Y1 < Y2 then
- New_Line (Win, Positive_Count (Y2 - Y1));
- end if;
- end Set_Line;
-
- procedure Set_Line (To : in Positive_Count)
- is
- begin
- Set_Line (Get_Window, To);
- end Set_Line;
-
- function Col (Win : in Window) return Positive_Count
- is
- Y : Line_Position;
- X : Column_Position;
- N : Natural;
- begin
- Get_Cursor_Position (Win, Y, X);
- N := Natural (X); N := N + 1;
- if N > Natural (Count'Last) then
- raise Layout_Error;
- end if;
- return Positive_Count (N);
- end Col;
-
- function Col return Positive_Count
- is
- begin
- return Col (Get_Window);
- end Col;
-
- function Line (Win : in Window) return Positive_Count
- is
- Y : Line_Position;
- X : Column_Position;
- N : Natural;
- begin
- Get_Cursor_Position (Win, Y, X);
- N := Natural (Y); N := N + 1;
- if N > Natural (Count'Last) then
- raise Layout_Error;
- end if;
- return Positive_Count (N);
- end Line;
-
- function Line return Positive_Count
- is
- begin
- return Line (Get_Window);
- end Line;
-
- -----------------------
- -- Characters Output --
- -----------------------
-
- procedure Put (Win : in Window; Item : in Character)
- is
- P_Size : constant Count := Page_Length (Win);
- Y : Line_Position;
- X : Column_Position;
- L : Line_Count;
- C : Column_Count;
- begin
- if P_Size > 0 then
- Get_Cursor_Position (Win, Y, X);
- Get_Size (Win, L, C);
- if (Y + 1) = L and then (X + 1) = C then
- New_Page (Win);
- end if;
- end if;
- Add (Win, Item);
- end Put;
-
- procedure Put (Item : in Character)
- is
- begin
- Put (Get_Window, Item);
- end Put;
-
- --------------------
- -- Strings-Output --
- --------------------
-
- procedure Put (Win : in Window; Item : in String)
- is
- P_Size : constant Count := Page_Length (Win);
- Y : Line_Position;
- X : Column_Position;
- L : Line_Count;
- C : Column_Count;
- begin
- if P_Size > 0 then
- Get_Cursor_Position (Win, Y, X);
- Get_Size (Win, L, C);
- if (Y + 1) = L and then (X + 1 + Item'Length) >= C then
- New_Page (Win);
- end if;
- end if;
- Add (Win, Item);
- end Put;
-
- procedure Put (Item : in String)
- is
- begin
- Put (Get_Window, Item);
- end Put;
-
- procedure Put_Line
- (Win : in Window;
- Item : in String)
- is
- begin
- Put (Win, Item);
- New_Line (Win, 1);
- end Put_Line;
-
- procedure Put_Line
- (Item : in String)
- is
- begin
- Put_Line (Get_Window, Item);
- end Put_Line;
-
-end Terminal_Interface.Curses.Text_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.ads b/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.ads
deleted file mode 100644
index ef170b0..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-text_io.ads
+++ /dev/null
@@ -1,137 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses.Text_IO --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with Ada.Text_IO;
-with Ada.IO_Exceptions;
-
-package Terminal_Interface.Curses.Text_IO is
-
- use type Ada.Text_IO.Count;
- subtype Count is Ada.Text_IO.Count;
- subtype Positive_Count is Count range 1 .. Count'Last;
-
- subtype Field is Ada.Text_IO.Field;
- subtype Number_Base is Integer range 2 .. 16;
-
- type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
-
- -- For most of the routines you will see a version without a Window
- -- type parameter. They will operate on a default window, which can
- -- be set by the user. It is initially equal to Standard_Window.
-
- procedure Set_Window (Win : in Window);
- -- Set Win as the default window
-
- function Get_Window return Window;
- -- Get the current default window
-
- procedure Flush (Win : in Window);
- procedure Flush;
-
- --------------------------------------------
- -- Specification of line and page lengths --
- --------------------------------------------
-
- -- There are no set routines in this package. I assume, that you allocate
- -- the window with an appropriate size.
- -- A scroll-window is interpreted as an page with unbounded page length,
- -- i.e. it returns the conventional 0 as page length.
-
- function Line_Length (Win : in Window) return Count;
- function Line_Length return Count;
-
- function Page_Length (Win : in Window) return Count;
- function Page_Length return Count;
-
- ------------------------------------
- -- Column, Line, and Page Control --
- ------------------------------------
- procedure New_Line (Win : in Window; Spacing : in Positive_Count := 1);
- procedure New_Line (Spacing : in Positive_Count := 1);
-
- procedure New_Page (Win : in Window);
- procedure New_Page;
-
- procedure Set_Col (Win : in Window; To : in Positive_Count);
- procedure Set_Col (To : in Positive_Count);
-
- procedure Set_Line (Win : in Window; To : in Positive_Count);
- procedure Set_Line (To : in Positive_Count);
-
- function Col (Win : in Window) return Positive_Count;
- function Col return Positive_Count;
-
- function Line (Win : in Window) return Positive_Count;
- function Line return Positive_Count;
-
- -----------------------
- -- Characters-Output --
- -----------------------
-
- procedure Put (Win : in Window; Item : in Character);
- procedure Put (Item : in Character);
-
- --------------------
- -- Strings-Output --
- --------------------
-
- procedure Put (Win : in Window; Item : in String);
- procedure Put (Item : in String);
-
- procedure Put_Line
- (Win : in Window;
- Item : in String);
-
- procedure Put_Line
- (Item : in String);
-
- -- Exceptions
-
- Status_Error : exception renames Ada.IO_Exceptions.Status_Error;
- Mode_Error : exception renames Ada.IO_Exceptions.Mode_Error;
- Name_Error : exception renames Ada.IO_Exceptions.Name_Error;
- Use_Error : exception renames Ada.IO_Exceptions.Use_Error;
- Device_Error : exception renames Ada.IO_Exceptions.Device_Error;
- End_Error : exception renames Ada.IO_Exceptions.End_Error;
- Data_Error : exception renames Ada.IO_Exceptions.Data_Error;
- Layout_Error : exception renames Ada.IO_Exceptions.Layout_Error;
-
-end Terminal_Interface.Curses.Text_IO;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses-trace.adb_p b/ncurses-5.3/Ada95/src/terminal_interface-curses-trace.adb_p
deleted file mode 100644
index 9e8e810..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses-trace.adb_p
+++ /dev/null
@@ -1,92 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- 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$
--- 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;
diff --git a/ncurses-5.3/Ada95/src/terminal_interface-curses.adb b/ncurses-5.3/Ada95/src/terminal_interface-curses.adb
deleted file mode 100644
index 359cced..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface-curses.adb
+++ /dev/null
@@ -1,2561 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface.Curses --
--- --
--- B O D Y --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-with System;
-
-with Terminal_Interface.Curses.Aux;
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Interfaces.C.Pointers;
-with Ada.Characters.Handling; use Ada.Characters.Handling;
-with Ada.Strings.Fixed;
-with Ada.Unchecked_Conversion;
-
-package body Terminal_Interface.Curses is
-
- use Aux;
- use type System.Bit_Order;
-
- package ASF renames Ada.Strings.Fixed;
-
- type chtype_array is array (size_t range <>)
- of aliased Attributed_Character;
- pragma Convention (C, chtype_array);
-
-------------------------------------------------------------------------------
- generic
- type Element is (<>);
- function W_Get_Element (Win : in Window;
- Offset : in Natural) return Element;
-
- function W_Get_Element (Win : in Window;
- Offset : in Natural) return Element is
- type E_Array is array (Natural range <>) of aliased Element;
- package C_E_Array is new
- Interfaces.C.Pointers (Natural, Element, E_Array, Element'Val (0));
- use C_E_Array;
-
- function To_Pointer is new
- Ada.Unchecked_Conversion (Window, Pointer);
-
- P : Pointer := To_Pointer (Win);
- begin
- if Win = Null_Window then
- raise Curses_Exception;
- else
- P := P + ptrdiff_t (Offset);
- return P.all;
- end if;
- end W_Get_Element;
-
- function W_Get_Int is new W_Get_Element (C_Int);
- 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 Keyname (K : C_Int) return chars_ptr;
- pragma Import (C, Keyname, "keyname");
-
- Ch : Character;
- begin
- if Key <= Character'Pos (Character'Last) then
- Ch := Character'Val (Key);
- if Is_Control (Ch) then
- return Un_Control (Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- elsif Is_Graphic (Ch) then
- declare
- S : String (1 .. 1);
- begin
- S (1) := Ch;
- return S;
- end;
- else
- return "";
- end if;
- else
- return Fill_String (Keyname (C_Int (Key)));
- end if;
- end Key_Name;
-
- procedure Key_Name (Key : in Real_Key_Code;
- Name : out String)
- is
- begin
- ASF.Move (Key_Name (Key), Name);
- end Key_Name;
-
-------------------------------------------------------------------------------
- procedure Init_Screen
- is
- function Initscr return Window;
- pragma Import (C, Initscr, "initscr");
-
- W : Window;
- begin
- W := Initscr;
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- end Init_Screen;
-
- procedure End_Windows
- is
- function Endwin return C_Int;
- pragma Import (C, Endwin, "endwin");
- begin
- if Endwin = Curses_Err then
- raise Curses_Exception;
- end if;
- end End_Windows;
-
- function Is_End_Window return Boolean
- is
- function Isendwin return Curses_Bool;
- pragma Import (C, Isendwin, "isendwin");
- begin
- if Isendwin = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Is_End_Window;
-------------------------------------------------------------------------------
- procedure Move_Cursor (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Wmove (Win : Window;
- Line : C_Int;
- Column : C_Int
- ) return C_Int;
- pragma Import (C, Wmove, "wmove");
- begin
- if Wmove (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Move_Cursor;
-------------------------------------------------------------------------------
- procedure Add (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- function Waddch (W : Window;
- Ch : C_Chtype) return C_Int;
- pragma Import (C, Waddch, "waddch");
- begin
- if Waddch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add;
-
- procedure Add (Win : in Window := Standard_Window;
- Ch : in Character)
- is
- begin
- Add (Win,
- Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end Add;
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Attributed_Character)
- is
- function mvwaddch (W : Window;
- Y : C_Int;
- X : C_Int;
- Ch : C_Chtype) return C_Int;
- pragma Import (C, mvwaddch, "mvwaddch");
- begin
- if mvwaddch (Win, C_Int (Line),
- C_Int (Column),
- AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add;
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Character)
- is
- begin
- Add (Win,
- Line,
- Column,
- Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end Add;
-
- procedure Add_With_Immediate_Echo
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- function Wechochar (W : Window;
- Ch : C_Chtype) return C_Int;
- pragma Import (C, Wechochar, "wechochar");
- begin
- if Wechochar (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add_With_Immediate_Echo;
-
- procedure Add_With_Immediate_Echo
- (Win : in Window := Standard_Window;
- Ch : in Character)
- is
- begin
- Add_With_Immediate_Echo
- (Win,
- Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end Add_With_Immediate_Echo;
-------------------------------------------------------------------------------
- function Create (Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- is
- function Newwin (Number_Of_Lines : C_Int;
- Number_Of_Columns : C_Int;
- First_Line_Position : C_Int;
- First_Column_Position : C_Int) return Window;
- pragma Import (C, Newwin, "newwin");
-
- W : Window;
- begin
- W := Newwin (C_Int (Number_Of_Lines),
- C_Int (Number_Of_Columns),
- C_Int (First_Line_Position),
- C_Int (First_Column_Position));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Create;
-
- procedure Delete (Win : in out Window)
- is
- function Wdelwin (W : Window) return C_Int;
- pragma Import (C, Wdelwin, "delwin");
- begin
- if Wdelwin (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- Win := Null_Window;
- end Delete;
-
- function Sub_Window
- (Win : Window := Standard_Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- is
- function Subwin
- (Win : Window;
- Number_Of_Lines : C_Int;
- Number_Of_Columns : C_Int;
- First_Line_Position : C_Int;
- First_Column_Position : C_Int) return Window;
- pragma Import (C, Subwin, "subwin");
-
- W : Window;
- begin
- W := Subwin (Win,
- C_Int (Number_Of_Lines),
- C_Int (Number_Of_Columns),
- C_Int (First_Line_Position),
- C_Int (First_Column_Position));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Sub_Window;
-
- function Derived_Window
- (Win : Window := Standard_Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- is
- function Derwin
- (Win : Window;
- Number_Of_Lines : C_Int;
- Number_Of_Columns : C_Int;
- First_Line_Position : C_Int;
- First_Column_Position : C_Int) return Window;
- pragma Import (C, Derwin, "derwin");
-
- W : Window;
- begin
- W := Derwin (Win,
- C_Int (Number_Of_Lines),
- C_Int (Number_Of_Columns),
- C_Int (First_Line_Position),
- C_Int (First_Column_Position));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Derived_Window;
-
- function Duplicate (Win : Window) return Window
- is
- function Dupwin (Win : Window) return Window;
- pragma Import (C, Dupwin, "dupwin");
-
- W : Window := Dupwin (Win);
- begin
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Duplicate;
-
- procedure Move_Window (Win : in Window;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Mvwin (Win : Window;
- Line : C_Int;
- Column : C_Int) return C_Int;
- pragma Import (C, Mvwin, "mvwin");
- begin
- if Mvwin (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Move_Window;
-
- procedure Move_Derived_Window (Win : in Window;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Mvderwin (Win : Window;
- Line : C_Int;
- Column : C_Int) return C_Int;
- pragma Import (C, Mvderwin, "mvderwin");
- begin
- if Mvderwin (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Move_Derived_Window;
-
- procedure Set_Synch_Mode (Win : in Window := Standard_Window;
- Mode : in Boolean := False)
- is
- function Syncok (Win : Window;
- Mode : Curses_Bool) return C_Int;
- pragma Import (C, Syncok, "syncok");
- begin
- if Syncok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Synch_Mode;
-------------------------------------------------------------------------------
- procedure Add (Win : in Window := Standard_Window;
- Str : in String;
- Len : in Integer := -1)
- is
- function Waddnstr (Win : Window;
- Str : char_array;
- Len : C_Int := -1) return C_Int;
- pragma Import (C, Waddnstr, "waddnstr");
-
- Txt : char_array (0 .. Str'Length);
- Length : size_t;
- begin
- To_C (Str, Txt, Length);
- if Waddnstr (Win, Txt, C_Int (Len)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add;
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Add (Win, Str, Len);
- end Add;
-------------------------------------------------------------------------------
- procedure Add
- (Win : in Window := Standard_Window;
- Str : in Attributed_String;
- Len : in Integer := -1)
- is
- function Waddchnstr (Win : Window;
- Str : chtype_array;
- Len : C_Int := -1) return C_Int;
- pragma Import (C, Waddchnstr, "waddchnstr");
-
- Txt : chtype_array (0 .. Str'Length);
- begin
- for Length in 1 .. size_t (Str'Length) loop
- Txt (Length - 1) := Str (Natural (Length));
- end loop;
- Txt (Str'Length) := Default_Character;
- if Waddchnstr (Win,
- Txt,
- C_Int (Len)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add;
-
- procedure Add
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in Attributed_String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Add (Win, Str, Len);
- end Add;
-------------------------------------------------------------------------------
- procedure Border
- (Win : in Window := Standard_Window;
- Left_Side_Symbol : in Attributed_Character := Default_Character;
- Right_Side_Symbol : in Attributed_Character := Default_Character;
- Top_Side_Symbol : in Attributed_Character := Default_Character;
- Bottom_Side_Symbol : in Attributed_Character := Default_Character;
- Upper_Left_Corner_Symbol : in Attributed_Character := Default_Character;
- Upper_Right_Corner_Symbol : in Attributed_Character := Default_Character;
- Lower_Left_Corner_Symbol : in Attributed_Character := Default_Character;
- Lower_Right_Corner_Symbol : in Attributed_Character := Default_Character)
- is
- function Wborder (W : Window;
- LS : C_Chtype;
- RS : C_Chtype;
- TS : C_Chtype;
- BS : C_Chtype;
- ULC : C_Chtype;
- URC : C_Chtype;
- LLC : C_Chtype;
- LRC : C_Chtype) return C_Int;
- pragma Import (C, Wborder, "wborder");
- begin
- if Wborder (Win,
- AttrChar_To_Chtype (Left_Side_Symbol),
- AttrChar_To_Chtype (Right_Side_Symbol),
- AttrChar_To_Chtype (Top_Side_Symbol),
- AttrChar_To_Chtype (Bottom_Side_Symbol),
- AttrChar_To_Chtype (Upper_Left_Corner_Symbol),
- AttrChar_To_Chtype (Upper_Right_Corner_Symbol),
- AttrChar_To_Chtype (Lower_Left_Corner_Symbol),
- AttrChar_To_Chtype (Lower_Right_Corner_Symbol)
- ) = Curses_Err
- then
- raise Curses_Exception;
- end if;
- end Border;
-
- procedure Box
- (Win : in Window := Standard_Window;
- Vertical_Symbol : in Attributed_Character := Default_Character;
- Horizontal_Symbol : in Attributed_Character := Default_Character)
- is
- begin
- Border (Win,
- Vertical_Symbol, Vertical_Symbol,
- Horizontal_Symbol, Horizontal_Symbol);
- end Box;
-
- procedure Horizontal_Line
- (Win : in Window := Standard_Window;
- Line_Size : in Natural;
- Line_Symbol : in Attributed_Character := Default_Character)
- is
- function Whline (W : Window;
- Ch : C_Chtype;
- Len : C_Int) return C_Int;
- pragma Import (C, Whline, "whline");
- begin
- if Whline (Win,
- AttrChar_To_Chtype (Line_Symbol),
- C_Int (Line_Size)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Horizontal_Line;
-
- procedure Vertical_Line
- (Win : in Window := Standard_Window;
- Line_Size : in Natural;
- Line_Symbol : in Attributed_Character := Default_Character)
- is
- function Wvline (W : Window;
- Ch : C_Chtype;
- Len : C_Int) return C_Int;
- pragma Import (C, Wvline, "wvline");
- begin
- if Wvline (Win,
- AttrChar_To_Chtype (Line_Symbol),
- C_Int (Line_Size)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Vertical_Line;
-
-------------------------------------------------------------------------------
- function Get_Keystroke (Win : Window := Standard_Window)
- return Real_Key_Code
- is
- function Wgetch (W : Window) return C_Int;
- pragma Import (C, Wgetch, "wgetch");
-
- C : constant C_Int := Wgetch (Win);
- begin
- if C = Curses_Err then
- return Key_None;
- else
- return Real_Key_Code (C);
- end if;
- end Get_Keystroke;
-
- procedure Undo_Keystroke (Key : in Real_Key_Code)
- is
- function Ungetch (Ch : C_Int) return C_Int;
- pragma Import (C, Ungetch, "ungetch");
- begin
- if Ungetch (C_Int (Key)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Undo_Keystroke;
-
- function Has_Key (Key : Special_Key_Code) return Boolean
- is
- function Haskey (Key : C_Int) return C_Int;
- pragma Import (C, Haskey, "has_key");
- begin
- if Haskey (C_Int (Key)) = Curses_False then
- return False;
- else
- return True;
- end if;
- end Has_Key;
-
- function Is_Function_Key (Key : Special_Key_Code) return Boolean
- is
- L : constant Special_Key_Code := Special_Key_Code (Natural (Key_F0) +
- Natural (Function_Key_Number'Last));
- begin
- if (Key >= Key_F0) and then (Key <= L) then
- return True;
- else
- return False;
- end if;
- end Is_Function_Key;
-
- function Function_Key (Key : Real_Key_Code)
- return Function_Key_Number
- is
- begin
- if Is_Function_Key (Key) then
- return Function_Key_Number (Key - Key_F0);
- else
- raise Constraint_Error;
- end if;
- end Function_Key;
-
- function Function_Key_Code (Key : Function_Key_Number) return Real_Key_Code
- is
- begin
- 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;
- On : in Boolean := True)
- is
- function Wattron (Win : Window;
- C_Attr : C_AttrType) return C_Int;
- pragma Import (C, Wattron, "wattr_on");
- function Wattroff (Win : Window;
- C_Attr : C_AttrType) return C_Int;
- pragma Import (C, Wattroff, "wattr_off");
- -- In Ada we use the On Boolean to control whether or not we want to
- -- switch on or off the attributes in the set.
- Err : C_Int;
- AC : constant Attributed_Character := (Ch => Character'First,
- Color => Color_Pair'First,
- Attr => Attr);
- begin
- if On then
- Err := Wattron (Win, AttrChar_To_AttrType (AC));
- else
- Err := Wattroff (Win, AttrChar_To_AttrType (AC));
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Switch_Character_Attribute;
-
- procedure Set_Character_Attributes
- (Win : in Window := Standard_Window;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Wattrset (Win : Window;
- C_Attr : C_AttrType) return C_Int;
- pragma Import (C, Wattrset, "wattrset"); -- ??? wattr_set
- begin
- if Wattrset (Win,
- AttrChar_To_AttrType (Attributed_Character'
- (Ch => Character'First,
- Color => Color,
- Attr => Attr))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Character_Attributes;
-
- function Get_Character_Attribute (Win : Window := Standard_Window)
- return Character_Attribute_Set
- is
- function Wattrget (Win : Window;
- Atr : access C_AttrType;
- Col : access C_Short;
- Opt : System.Address) return C_Int;
- pragma Import (C, Wattrget, "wattr_get");
-
- Attr : aliased C_AttrType;
- Col : aliased C_Short;
- Res : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
- System.Null_Address);
- Ch : Attributed_Character;
- begin
- if Res = Curses_Ok then
- Ch := AttrType_To_AttrChar (Attr);
- return Ch.Attr;
- else
- raise Curses_Exception;
- end if;
- end Get_Character_Attribute;
-
- function Get_Character_Attribute (Win : Window := Standard_Window)
- return Color_Pair
- is
- function Wattrget (Win : Window;
- Atr : access C_AttrType;
- Col : access C_Short;
- Opt : System.Address) return C_Int;
- pragma Import (C, Wattrget, "wattr_get");
-
- Attr : aliased C_AttrType;
- Col : aliased C_Short;
- Res : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
- System.Null_Address);
- Ch : Attributed_Character;
- begin
- if Res = Curses_Ok then
- Ch := AttrType_To_AttrChar (Attr);
- return Ch.Color;
- else
- raise Curses_Exception;
- end if;
- end Get_Character_Attribute;
-
- procedure Set_Color (Win : in Window := Standard_Window;
- Pair : in Color_Pair)
- is
- function Wset_Color (Win : Window;
- Color : C_Short;
- Opts : C_Void_Ptr) return C_Int;
- pragma Import (C, Wset_Color, "wcolor_set");
- begin
- if Wset_Color (Win,
- C_Short (Pair),
- C_Void_Ptr (System.Null_Address)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Color;
-
- procedure Change_Attributes
- (Win : in Window := Standard_Window;
- Count : in Integer := -1;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Wchgat (Win : Window;
- Cnt : C_Int;
- Attr : C_AttrType;
- Color : C_Short;
- Opts : System.Address := System.Null_Address)
- return C_Int;
- pragma Import (C, Wchgat, "wchgat");
-
- Ch : constant Attributed_Character :=
- (Ch => Character'First, Color => Color_Pair'First, Attr => Attr);
- begin
- if Wchgat (Win, C_Int (Count), AttrChar_To_AttrType (Ch),
- C_Short (Color)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Change_Attributes;
-
- procedure Change_Attributes
- (Win : in Window := Standard_Window;
- Line : in Line_Position := Line_Position'First;
- Column : in Column_Position := Column_Position'First;
- Count : in Integer := -1;
- Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Change_Attributes (Win, Count, Attr, Color);
- end Change_Attributes;
-------------------------------------------------------------------------------
- procedure Beep
- is
- function Beeper return C_Int;
- pragma Import (C, Beeper, "beep");
- begin
- if Beeper = Curses_Err then
- raise Curses_Exception;
- end if;
- end Beep;
-
- procedure Flash_Screen
- is
- function Flash return C_Int;
- pragma Import (C, Flash, "flash");
- begin
- if Flash = Curses_Err then
- raise Curses_Exception;
- end if;
- end Flash_Screen;
-------------------------------------------------------------------------------
- procedure Set_Cbreak_Mode (SwitchOn : in Boolean := True)
- is
- function Cbreak return C_Int;
- pragma Import (C, Cbreak, "cbreak");
- function NoCbreak return C_Int;
- pragma Import (C, NoCbreak, "nocbreak");
-
- Err : C_Int;
- begin
- if SwitchOn then
- Err := Cbreak;
- else
- Err := NoCbreak;
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Cbreak_Mode;
-
- procedure Set_Raw_Mode (SwitchOn : in Boolean := True)
- is
- function Raw return C_Int;
- pragma Import (C, Raw, "raw");
- function NoRaw return C_Int;
- pragma Import (C, NoRaw, "noraw");
-
- Err : C_Int;
- begin
- if SwitchOn then
- Err := Raw;
- else
- Err := NoRaw;
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Raw_Mode;
-
- procedure Set_Echo_Mode (SwitchOn : in Boolean := True)
- is
- function Echo return C_Int;
- pragma Import (C, Echo, "echo");
- function NoEcho return C_Int;
- pragma Import (C, NoEcho, "noecho");
-
- Err : C_Int;
- begin
- if SwitchOn then
- Err := Echo;
- else
- Err := NoEcho;
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Echo_Mode;
-
- procedure Set_Meta_Mode (Win : in Window := Standard_Window;
- SwitchOn : in Boolean := True)
- is
- function Meta (W : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Meta, "meta");
- begin
- if Meta (Win, Curses_Bool (Boolean'Pos (SwitchOn))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Meta_Mode;
-
- procedure Set_KeyPad_Mode (Win : in Window := Standard_Window;
- SwitchOn : in Boolean := True)
- is
- function Keypad (W : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Keypad, "keypad");
- begin
- if Keypad (Win, Curses_Bool (Boolean'Pos (SwitchOn))) = Curses_Err then
- raise Curses_Exception;
- 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;
- pragma Import (C, Halfdelay, "halfdelay");
- begin
- if Halfdelay (C_Int (Amount)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Half_Delay;
-
- procedure Set_Flush_On_Interrupt_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := True)
- is
- function Intrflush (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Intrflush, "intrflush");
- begin
- if Intrflush (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Flush_On_Interrupt_Mode;
-
- procedure Set_Queue_Interrupt_Mode
- (Win : in Window := Standard_Window;
- Flush : in Boolean := True)
- is
- procedure Qiflush;
- pragma Import (C, Qiflush, "qiflush");
- procedure No_Qiflush;
- pragma Import (C, No_Qiflush, "noqiflush");
- begin
- if Flush then
- Qiflush;
- else
- No_Qiflush;
- end if;
- end Set_Queue_Interrupt_Mode;
-
- procedure Set_NoDelay_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False)
- is
- function Nodelay (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Nodelay, "nodelay");
- begin
- if Nodelay (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_NoDelay_Mode;
-
- procedure Set_Timeout_Mode (Win : in Window := Standard_Window;
- Mode : in Timeout_Mode;
- Amount : in Natural)
- is
- function Wtimeout (Win : Window; Amount : C_Int) return C_Int;
- pragma Import (C, Wtimeout, "wtimeout");
-
- Time : C_Int;
- begin
- case Mode is
- when Blocking => Time := -1;
- when Non_Blocking => Time := 0;
- when Delayed =>
- if Amount = 0 then
- raise Constraint_Error;
- end if;
- Time := C_Int (Amount);
- end case;
- if Wtimeout (Win, Time) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Timeout_Mode;
-
- procedure Set_Escape_Timer_Mode
- (Win : in Window := Standard_Window;
- Timer_Off : in Boolean := False)
- is
- function Notimeout (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Notimeout, "notimeout");
- begin
- if Notimeout (Win, Curses_Bool (Boolean'Pos (Timer_Off)))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Escape_Timer_Mode;
-
-------------------------------------------------------------------------------
- procedure Set_NL_Mode (SwitchOn : in Boolean := True)
- is
- function NL return C_Int;
- pragma Import (C, NL, "nl");
- function NoNL return C_Int;
- pragma Import (C, NoNL, "nonl");
-
- Err : C_Int;
- begin
- if SwitchOn then
- Err := NL;
- else
- Err := NoNL;
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_NL_Mode;
-
- procedure Clear_On_Next_Update
- (Win : in Window := Standard_Window;
- Do_Clear : in Boolean := True)
- is
- function Clear_Ok (W : Window; Flag : Curses_Bool) return C_Int;
- pragma Import (C, Clear_Ok, "clearok");
- begin
- if Clear_Ok (Win, Curses_Bool (Boolean'Pos (Do_Clear))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear_On_Next_Update;
-
- procedure Use_Insert_Delete_Line
- (Win : in Window := Standard_Window;
- Do_Idl : in Boolean := True)
- is
- function IDL_Ok (W : Window; Flag : Curses_Bool) return C_Int;
- pragma Import (C, IDL_Ok, "idlok");
- begin
- if IDL_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idl))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Use_Insert_Delete_Line;
-
- procedure Use_Insert_Delete_Character
- (Win : in Window := Standard_Window;
- Do_Idc : in Boolean := True)
- is
- function IDC_Ok (W : Window; Flag : Curses_Bool) return C_Int;
- pragma Import (C, IDC_Ok, "idcok");
- begin
- if IDC_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idc))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Use_Insert_Delete_Character;
-
- procedure Leave_Cursor_After_Update
- (Win : in Window := Standard_Window;
- Do_Leave : in Boolean := True)
- is
- function Leave_Ok (W : Window; Flag : Curses_Bool) return C_Int;
- pragma Import (C, Leave_Ok, "leaveok");
- begin
- if Leave_Ok (Win, Curses_Bool (Boolean'Pos (Do_Leave))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Leave_Cursor_After_Update;
-
- procedure Immediate_Update_Mode
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False)
- is
- function Immedok (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Immedok, "immedok");
- begin
- if Immedok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Immediate_Update_Mode;
-
- procedure Allow_Scrolling
- (Win : in Window := Standard_Window;
- Mode : in Boolean := False)
- is
- function Scrollok (Win : Window; Mode : Curses_Bool) return C_Int;
- pragma Import (C, Scrollok, "scrollok");
- begin
- if Scrollok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Allow_Scrolling;
-
- function Scrolling_Allowed (Win : Window := Standard_Window)
- return Boolean
- is
- begin
- return Get_Flag (Win, Offset_scroll);
- end Scrolling_Allowed;
-
- procedure Set_Scroll_Region
- (Win : in Window := Standard_Window;
- Top_Line : in Line_Position;
- Bottom_Line : in Line_Position)
- is
- function Wsetscrreg (Win : Window;
- Lin : C_Int;
- Col : C_Int) return C_Int;
- pragma Import (C, Wsetscrreg, "wsetscrreg");
- begin
- if Wsetscrreg (Win, C_Int (Top_Line), C_Int (Bottom_Line))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Scroll_Region;
-------------------------------------------------------------------------------
- procedure Update_Screen
- is
- function Do_Update return C_Int;
- pragma Import (C, Do_Update, "doupdate");
- begin
- if Do_Update = Curses_Err then
- raise Curses_Exception;
- end if;
- end Update_Screen;
-
- procedure Refresh (Win : in Window := Standard_Window)
- is
- function Wrefresh (W : Window) return C_Int;
- pragma Import (C, Wrefresh, "wrefresh");
- begin
- if Wrefresh (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh;
-
- procedure Refresh_Without_Update
- (Win : in Window := Standard_Window)
- is
- function Wnoutrefresh (W : Window) return C_Int;
- pragma Import (C, Wnoutrefresh, "wnoutrefresh");
- begin
- if Wnoutrefresh (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh_Without_Update;
-
- procedure Redraw (Win : in Window := Standard_Window)
- is
- function Redrawwin (Win : Window) return C_Int;
- pragma Import (C, Redrawwin, "redrawwin");
- begin
- if Redrawwin (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Redraw;
-
- procedure Redraw
- (Win : in Window := Standard_Window;
- Begin_Line : in Line_Position;
- Line_Count : in Positive)
- is
- function Wredrawln (Win : Window; First : C_Int; Cnt : C_Int)
- return C_Int;
- pragma Import (C, Wredrawln, "wredrawln");
- begin
- if Wredrawln (Win,
- C_Int (Begin_Line),
- C_Int (Line_Count)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Redraw;
-
-------------------------------------------------------------------------------
- procedure Erase (Win : in Window := Standard_Window)
- is
- function Werase (W : Window) return C_Int;
- pragma Import (C, Werase, "werase");
- begin
- if Werase (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Erase;
-
- procedure Clear (Win : in Window := Standard_Window)
- is
- function Wclear (W : Window) return C_Int;
- pragma Import (C, Wclear, "wclear");
- begin
- if Wclear (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear;
-
- procedure Clear_To_End_Of_Screen (Win : in Window := Standard_Window)
- is
- function Wclearbot (W : Window) return C_Int;
- pragma Import (C, Wclearbot, "wclrtobot");
- begin
- if Wclearbot (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear_To_End_Of_Screen;
-
- procedure Clear_To_End_Of_Line (Win : in Window := Standard_Window)
- is
- function Wcleareol (W : Window) return C_Int;
- pragma Import (C, Wcleareol, "wclrtoeol");
- begin
- if Wcleareol (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear_To_End_Of_Line;
-------------------------------------------------------------------------------
- procedure Set_Background
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- procedure WBackground (W : in Window; Ch : in C_Chtype);
- pragma Import (C, WBackground, "wbkgdset");
- begin
- WBackground (Win, AttrChar_To_Chtype (Ch));
- end Set_Background;
-
- procedure Change_Background
- (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- function WChangeBkgd (W : Window; Ch : C_Chtype) return C_Int;
- pragma Import (C, WChangeBkgd, "wbkgd");
- begin
- if WChangeBkgd (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Change_Background;
-
- function Get_Background (Win : Window := Standard_Window)
- return Attributed_Character
- is
- function Wgetbkgd (Win : Window) return C_Chtype;
- pragma Import (C, Wgetbkgd, "getbkgd");
- begin
- return Chtype_To_AttrChar (Wgetbkgd (Win));
- end Get_Background;
-------------------------------------------------------------------------------
- procedure Change_Lines_Status (Win : in Window := Standard_Window;
- Start : in Line_Position;
- Count : in Positive;
- State : in Boolean)
- is
- function Wtouchln (Win : Window;
- Sta : C_Int;
- Cnt : C_Int;
- Chg : C_Int) return C_Int;
- pragma Import (C, Wtouchln, "wtouchln");
- begin
- if Wtouchln (Win, C_Int (Start), C_Int (Count),
- C_Int (Boolean'Pos (State))) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Change_Lines_Status;
-
- procedure Touch (Win : in Window := Standard_Window)
- is
- Y : Line_Position;
- X : Column_Position;
- begin
- Get_Size (Win, Y, X);
- Change_Lines_Status (Win, 0, Positive (Y), True);
- end Touch;
-
- procedure Untouch (Win : in Window := Standard_Window)
- is
- Y : Line_Position;
- X : Column_Position;
- begin
- Get_Size (Win, Y, X);
- Change_Lines_Status (Win, 0, Positive (Y), False);
- end Untouch;
-
- procedure Touch (Win : in Window := Standard_Window;
- Start : in Line_Position;
- Count : in Positive)
- is
- begin
- Change_Lines_Status (Win, Start, Count, True);
- end Touch;
-
- function Is_Touched
- (Win : Window := Standard_Window;
- Line : Line_Position) return Boolean
- is
- function WLineTouched (W : Window; L : C_Int) return Curses_Bool;
- pragma Import (C, WLineTouched, "is_linetouched");
- begin
- if WLineTouched (Win, C_Int (Line)) = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Is_Touched;
-
- function Is_Touched
- (Win : Window := Standard_Window) return Boolean
- is
- function WWinTouched (W : Window) return Curses_Bool;
- pragma Import (C, WWinTouched, "is_wintouched");
- begin
- if WWinTouched (Win) = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Is_Touched;
-------------------------------------------------------------------------------
- procedure Copy
- (Source_Window : in Window;
- Destination_Window : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position;
- Non_Destructive_Mode : in Boolean := True)
- is
- function Copywin (Src : Window;
- Dst : Window;
- Str : C_Int;
- Slc : C_Int;
- Dtr : C_Int;
- Dlc : C_Int;
- Dbr : C_Int;
- Drc : C_Int;
- Ndm : C_Int) return C_Int;
- pragma Import (C, Copywin, "copywin");
- begin
- if Copywin (Source_Window,
- Destination_Window,
- C_Int (Source_Top_Row),
- C_Int (Source_Left_Column),
- C_Int (Destination_Top_Row),
- C_Int (Destination_Left_Column),
- C_Int (Destination_Bottom_Row),
- C_Int (Destination_Right_Column),
- Boolean'Pos (Non_Destructive_Mode)
- ) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Copy;
-
- procedure Overwrite
- (Source_Window : in Window;
- Destination_Window : in Window)
- is
- function Overwrite (Src : Window; Dst : Window) return C_Int;
- pragma Import (C, Overwrite, "overwrite");
- begin
- if Overwrite (Source_Window, Destination_Window) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Overwrite;
-
- procedure Overlay
- (Source_Window : in Window;
- Destination_Window : in Window)
- is
- function Overlay (Src : Window; Dst : Window) return C_Int;
- pragma Import (C, Overlay, "overlay");
- begin
- if Overlay (Source_Window, Destination_Window) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Overlay;
-
-------------------------------------------------------------------------------
- procedure Insert_Delete_Lines
- (Win : in Window := Standard_Window;
- Lines : in Integer := 1) -- default is to insert one line above
- is
- function Winsdelln (W : Window; N : C_Int) return C_Int;
- pragma Import (C, Winsdelln, "winsdelln");
- begin
- if Winsdelln (Win, C_Int (Lines)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert_Delete_Lines;
-
- procedure Delete_Line (Win : in Window := Standard_Window)
- is
- begin
- Insert_Delete_Lines (Win, -1);
- end Delete_Line;
-
- procedure Insert_Line (Win : in Window := Standard_Window)
- is
- begin
- Insert_Delete_Lines (Win, 1);
- end Insert_Line;
-------------------------------------------------------------------------------
-
-
- procedure Get_Size
- (Win : in Window := Standard_Window;
- Number_Of_Lines : out Line_Count;
- Number_Of_Columns : out Column_Count)
- is
- -- Please note: in ncurses they are one off.
- -- This might be different in other implementations of curses
- Y : C_Int := C_Int (W_Get_Short (Win, Offset_maxy)) + C_Int (Offset_XY);
- X : C_Int := C_Int (W_Get_Short (Win, Offset_maxx)) + C_Int (Offset_XY);
- begin
- Number_Of_Lines := Line_Count (Y);
- Number_Of_Columns := Column_Count (X);
- end Get_Size;
-
- procedure Get_Window_Position
- (Win : in Window := Standard_Window;
- Top_Left_Line : out Line_Position;
- Top_Left_Column : out Column_Position)
- is
- Y : C_Short := W_Get_Short (Win, Offset_begy);
- X : C_Short := W_Get_Short (Win, Offset_begx);
- begin
- Top_Left_Line := Line_Position (Y);
- Top_Left_Column := Column_Position (X);
- end Get_Window_Position;
-
- procedure Get_Cursor_Position
- (Win : in Window := Standard_Window;
- Line : out Line_Position;
- Column : out Column_Position)
- is
- Y : C_Short := W_Get_Short (Win, Offset_cury);
- X : C_Short := W_Get_Short (Win, Offset_curx);
- begin
- Line := Line_Position (Y);
- Column := Column_Position (X);
- end Get_Cursor_Position;
-
- procedure Get_Origin_Relative_To_Parent
- (Win : in Window;
- Top_Left_Line : out Line_Position;
- Top_Left_Column : out Column_Position;
- Is_Not_A_Subwindow : out Boolean)
- is
- Y : C_Int := W_Get_Int (Win, Offset_pary);
- X : C_Int := W_Get_Int (Win, Offset_parx);
- begin
- if Y = -1 then
- Top_Left_Line := Line_Position'Last;
- Top_Left_Column := Column_Position'Last;
- Is_Not_A_Subwindow := True;
- else
- Top_Left_Line := Line_Position (Y);
- Top_Left_Column := Column_Position (X);
- Is_Not_A_Subwindow := False;
- end if;
- end Get_Origin_Relative_To_Parent;
-------------------------------------------------------------------------------
- function New_Pad (Lines : Line_Count;
- Columns : Column_Count) return Window
- is
- function Newpad (Lines : C_Int; Columns : C_Int) return Window;
- pragma Import (C, Newpad, "newpad");
-
- W : Window;
- begin
- W := Newpad (C_Int (Lines), C_Int (Columns));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end New_Pad;
-
- function Sub_Pad
- (Pad : Window;
- Number_Of_Lines : Line_Count;
- Number_Of_Columns : Column_Count;
- First_Line_Position : Line_Position;
- First_Column_Position : Column_Position) return Window
- is
- function Subpad
- (Pad : Window;
- Number_Of_Lines : C_Int;
- Number_Of_Columns : C_Int;
- First_Line_Position : C_Int;
- First_Column_Position : C_Int) return Window;
- pragma Import (C, Subpad, "subpad");
-
- W : Window;
- begin
- W := Subpad (Pad,
- C_Int (Number_Of_Lines),
- C_Int (Number_Of_Columns),
- C_Int (First_Line_Position),
- C_Int (First_Column_Position));
- if W = Null_Window then
- raise Curses_Exception;
- end if;
- return W;
- end Sub_Pad;
-
- procedure Refresh
- (Pad : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position)
- is
- function Prefresh
- (Pad : Window;
- Source_Top_Row : C_Int;
- Source_Left_Column : C_Int;
- Destination_Top_Row : C_Int;
- Destination_Left_Column : C_Int;
- Destination_Bottom_Row : C_Int;
- Destination_Right_Column : C_Int) return C_Int;
- pragma Import (C, Prefresh, "prefresh");
- begin
- if Prefresh (Pad,
- C_Int (Source_Top_Row),
- C_Int (Source_Left_Column),
- C_Int (Destination_Top_Row),
- C_Int (Destination_Left_Column),
- C_Int (Destination_Bottom_Row),
- C_Int (Destination_Right_Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh;
-
- procedure Refresh_Without_Update
- (Pad : in Window;
- Source_Top_Row : in Line_Position;
- Source_Left_Column : in Column_Position;
- Destination_Top_Row : in Line_Position;
- Destination_Left_Column : in Column_Position;
- Destination_Bottom_Row : in Line_Position;
- Destination_Right_Column : in Column_Position)
- is
- function Pnoutrefresh
- (Pad : Window;
- Source_Top_Row : C_Int;
- Source_Left_Column : C_Int;
- Destination_Top_Row : C_Int;
- Destination_Left_Column : C_Int;
- Destination_Bottom_Row : C_Int;
- Destination_Right_Column : C_Int) return C_Int;
- pragma Import (C, Pnoutrefresh, "pnoutrefresh");
- begin
- if Pnoutrefresh (Pad,
- C_Int (Source_Top_Row),
- C_Int (Source_Left_Column),
- C_Int (Destination_Top_Row),
- C_Int (Destination_Left_Column),
- C_Int (Destination_Bottom_Row),
- C_Int (Destination_Right_Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh_Without_Update;
-
- procedure Add_Character_To_Pad_And_Echo_It
- (Pad : in Window;
- Ch : in Attributed_Character)
- is
- function Pechochar (Pad : Window; Ch : C_Chtype)
- return C_Int;
- pragma Import (C, Pechochar, "pechochar");
- begin
- if Pechochar (Pad, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Add_Character_To_Pad_And_Echo_It;
-
- procedure Add_Character_To_Pad_And_Echo_It
- (Pad : in Window;
- Ch : in Character)
- is
- begin
- Add_Character_To_Pad_And_Echo_It
- (Pad,
- Attributed_Character'(Ch => Ch,
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end Add_Character_To_Pad_And_Echo_It;
-------------------------------------------------------------------------------
- procedure Scroll (Win : in Window := Standard_Window;
- Amount : in Integer := 1)
- is
- function Wscrl (Win : Window; N : C_Int) return C_Int;
- pragma Import (C, Wscrl, "wscrl");
-
- begin
- if Wscrl (Win, C_Int (Amount)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Scroll;
-
-------------------------------------------------------------------------------
- procedure Delete_Character (Win : in Window := Standard_Window)
- is
- function Wdelch (Win : Window) return C_Int;
- pragma Import (C, Wdelch, "wdelch");
- begin
- if Wdelch (Win) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Delete_Character;
-
- procedure Delete_Character
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position)
- is
- function Mvwdelch (Win : Window;
- Lin : C_Int;
- Col : C_Int) return C_Int;
- pragma Import (C, Mvwdelch, "mvwdelch");
- begin
- if Mvwdelch (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Delete_Character;
-------------------------------------------------------------------------------
- function Peek (Win : Window := Standard_Window)
- return Attributed_Character
- is
- function Winch (Win : Window) return C_Chtype;
- pragma Import (C, Winch, "winch");
- begin
- return Chtype_To_AttrChar (Winch (Win));
- end Peek;
-
- function Peek
- (Win : Window := Standard_Window;
- Line : Line_Position;
- Column : Column_Position) return Attributed_Character
- is
- function Mvwinch (Win : Window;
- Lin : C_Int;
- Col : C_Int) return C_Chtype;
- pragma Import (C, Mvwinch, "mvwinch");
- begin
- return Chtype_To_AttrChar (Mvwinch (Win, C_Int (Line), C_Int (Column)));
- end Peek;
-------------------------------------------------------------------------------
- procedure Insert (Win : in Window := Standard_Window;
- Ch : in Attributed_Character)
- is
- function Winsch (Win : Window; Ch : C_Chtype) return C_Int;
- pragma Import (C, Winsch, "winsch");
- begin
- if Winsch (Win, AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert;
-
- procedure Insert
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Ch : in Attributed_Character)
- is
- function Mvwinsch (Win : Window;
- Lin : C_Int;
- Col : C_Int;
- Ch : C_Chtype) return C_Int;
- pragma Import (C, Mvwinsch, "mvwinsch");
- begin
- if Mvwinsch (Win,
- C_Int (Line),
- C_Int (Column),
- AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert;
-------------------------------------------------------------------------------
- procedure Insert (Win : in Window := Standard_Window;
- Str : in String;
- Len : in Integer := -1)
- is
- function Winsnstr (Win : Window;
- Str : char_array;
- Len : Integer := -1) return C_Int;
- pragma Import (C, Winsnstr, "winsnstr");
-
- Txt : char_array (0 .. Str'Length);
- Length : size_t;
- begin
- To_C (Str, Txt, Length);
- if Winsnstr (Win, Txt, Len) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert;
-
- procedure Insert
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : in String;
- Len : in Integer := -1)
- is
- function Mvwinsnstr (Win : Window;
- Line : C_Int;
- Column : C_Int;
- Str : char_array;
- Len : C_Int) return C_Int;
- pragma Import (C, Mvwinsnstr, "mvwinsnstr");
-
- Txt : char_array (0 .. Str'Length);
- Length : size_t;
- begin
- To_C (Str, Txt, Length);
- if Mvwinsnstr (Win, C_Int (Line), C_Int (Column), Txt, C_Int (Len))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Insert;
-------------------------------------------------------------------------------
- procedure Peek (Win : in Window := Standard_Window;
- Str : out String;
- Len : in Integer := -1)
- is
- function Winnstr (Win : Window;
- Str : char_array;
- Len : C_Int) return C_Int;
- pragma Import (C, Winnstr, "winnstr");
-
- N : Integer := Len;
- Txt : char_array (0 .. Str'Length);
- Cnt : Natural;
- begin
- if N < 0 then
- N := Str'Length;
- end if;
- if N > Str'Length then
- raise Constraint_Error;
- end if;
- Txt (0) := Interfaces.C.char'First;
- if Winnstr (Win, Txt, C_Int (N)) = Curses_Err then
- raise Curses_Exception;
- end if;
- To_Ada (Txt, Str, Cnt, True);
- if Cnt < Str'Length then
- Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
- end if;
- end Peek;
-
- procedure Peek
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Peek (Win, Str, Len);
- end Peek;
-------------------------------------------------------------------------------
- procedure Peek
- (Win : in Window := Standard_Window;
- Str : out Attributed_String;
- Len : in Integer := -1)
- is
- function Winchnstr (Win : Window;
- Str : chtype_array; -- out
- Len : C_Int) return C_Int;
- pragma Import (C, Winchnstr, "winchnstr");
-
- N : Integer := Len;
- Txt : chtype_array (0 .. Str'Length) := (0 => Default_Character);
- Cnt : Natural := 0;
- begin
- if N < 0 then
- N := Str'Length;
- end if;
- if N > Str'Length then
- raise Constraint_Error;
- end if;
- if Winchnstr (Win, Txt, C_Int (N)) = Curses_Err then
- raise Curses_Exception;
- end if;
- for To in Str'Range loop
- exit when Txt (size_t (Cnt)) = Default_Character;
- Str (To) := Txt (size_t (Cnt));
- Cnt := Cnt + 1;
- end loop;
- if Cnt < Str'Length then
- Str ((Str'First + Cnt) .. Str'Last) :=
- (others => (Ch => ' ',
- Color => Color_Pair'First,
- Attr => Normal_Video));
- end if;
- end Peek;
-
- procedure Peek
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out Attributed_String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Peek (Win, Str, Len);
- end Peek;
-------------------------------------------------------------------------------
- procedure Get (Win : in Window := Standard_Window;
- Str : out String;
- Len : in Integer := -1)
- is
- function Wgetnstr (Win : Window;
- Str : char_array;
- Len : C_Int) return C_Int;
- pragma Import (C, Wgetnstr, "wgetnstr");
-
- N : Integer := Len;
- Txt : char_array (0 .. Str'Length);
- Cnt : Natural;
- begin
- if N < 0 then
- N := Str'Length;
- end if;
- if N > Str'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, Str, Cnt, True);
- if Cnt < Str'Length then
- Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
- end if;
- end Get;
-
- procedure Get
- (Win : in Window := Standard_Window;
- Line : in Line_Position;
- Column : in Column_Position;
- Str : out String;
- Len : in Integer := -1)
- is
- begin
- Move_Cursor (Win, Line, Column);
- Get (Win, Str, Len);
- end Get;
-------------------------------------------------------------------------------
- procedure Init_Soft_Label_Keys
- (Format : in Soft_Label_Key_Format := Three_Two_Three)
- is
- function Slk_Init (Fmt : C_Int) return C_Int;
- pragma Import (C, Slk_Init, "slk_init");
- begin
- if Slk_Init (Soft_Label_Key_Format'Pos (Format)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Init_Soft_Label_Keys;
-
- procedure Set_Soft_Label_Key (Label : in Label_Number;
- Text : in String;
- Fmt : in Label_Justification := Left)
- is
- function Slk_Set (Label : C_Int;
- Txt : char_array;
- Fmt : C_Int) return C_Int;
- pragma Import (C, Slk_Set, "slk_set");
-
- Txt : char_array (0 .. Text'Length);
- Len : size_t;
- begin
- To_C (Text, Txt, Len);
- 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;
-
- procedure Refresh_Soft_Label_Keys
- is
- function Slk_Refresh return C_Int;
- pragma Import (C, Slk_Refresh, "slk_refresh");
- begin
- if Slk_Refresh = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh_Soft_Label_Keys;
-
- procedure Refresh_Soft_Label_Keys_Without_Update
- is
- function Slk_Noutrefresh return C_Int;
- pragma Import (C, Slk_Noutrefresh, "slk_noutrefresh");
- begin
- if Slk_Noutrefresh = Curses_Err then
- raise Curses_Exception;
- end if;
- end Refresh_Soft_Label_Keys_Without_Update;
-
- procedure Get_Soft_Label_Key (Label : in Label_Number;
- Text : out String)
- is
- function Slk_Label (Label : C_Int) return chars_ptr;
- pragma Import (C, Slk_Label, "slk_label");
- begin
- Fill_String (Slk_Label (C_Int (Label)), Text);
- end Get_Soft_Label_Key;
-
- function Get_Soft_Label_Key (Label : in Label_Number) return String
- is
- function Slk_Label (Label : C_Int) return chars_ptr;
- pragma Import (C, Slk_Label, "slk_label");
- begin
- return Fill_String (Slk_Label (C_Int (Label)));
- end Get_Soft_Label_Key;
-
- procedure Clear_Soft_Label_Keys
- is
- function Slk_Clear return C_Int;
- pragma Import (C, Slk_Clear, "slk_clear");
- begin
- if Slk_Clear = Curses_Err then
- raise Curses_Exception;
- end if;
- end Clear_Soft_Label_Keys;
-
- procedure Restore_Soft_Label_Keys
- is
- function Slk_Restore return C_Int;
- pragma Import (C, Slk_Restore, "slk_restore");
- begin
- if Slk_Restore = Curses_Err then
- raise Curses_Exception;
- end if;
- end Restore_Soft_Label_Keys;
-
- procedure Touch_Soft_Label_Keys
- is
- function Slk_Touch return C_Int;
- pragma Import (C, Slk_Touch, "slk_touch");
- begin
- if Slk_Touch = Curses_Err then
- raise Curses_Exception;
- end if;
- end Touch_Soft_Label_Keys;
-
- procedure Switch_Soft_Label_Key_Attributes
- (Attr : in Character_Attribute_Set;
- On : in Boolean := True)
- is
- function Slk_Attron (Ch : C_Chtype) return C_Int;
- pragma Import (C, Slk_Attron, "slk_attron");
- function Slk_Attroff (Ch : C_Chtype) return C_Int;
- pragma Import (C, Slk_Attroff, "slk_attroff");
-
- Err : C_Int;
- Ch : constant Attributed_Character := (Ch => Character'First,
- Attr => Attr,
- Color => Color_Pair'First);
- begin
- if On then
- Err := Slk_Attron (AttrChar_To_Chtype (Ch));
- else
- Err := Slk_Attroff (AttrChar_To_Chtype (Ch));
- end if;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Switch_Soft_Label_Key_Attributes;
-
- procedure Set_Soft_Label_Key_Attributes
- (Attr : in Character_Attribute_Set := Normal_Video;
- Color : in Color_Pair := Color_Pair'First)
- is
- function Slk_Attrset (Ch : C_Chtype) return C_Int;
- pragma Import (C, Slk_Attrset, "slk_attrset");
-
- Ch : constant Attributed_Character := (Ch => Character'First,
- Attr => Attr,
- Color => Color);
- begin
- if Slk_Attrset (AttrChar_To_Chtype (Ch)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Soft_Label_Key_Attributes;
-
- function Get_Soft_Label_Key_Attributes return Character_Attribute_Set
- is
- function Slk_Attr return C_Chtype;
- pragma Import (C, Slk_Attr, "slk_attr");
-
- Attr : constant C_Chtype := Slk_Attr;
- begin
- return Chtype_To_AttrChar (Attr).Attr;
- end Get_Soft_Label_Key_Attributes;
-
- function Get_Soft_Label_Key_Attributes return Color_Pair
- is
- function Slk_Attr return C_Chtype;
- pragma Import (C, Slk_Attr, "slk_attr");
-
- Attr : constant C_Chtype := Slk_Attr;
- begin
- return Chtype_To_AttrChar (Attr).Color;
- end Get_Soft_Label_Key_Attributes;
-
- procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair)
- is
- function Slk_Color (Color : in C_Short) return C_Int;
- pragma Import (C, Slk_Color, "slk_color");
- begin
- if Slk_Color (C_Short (Pair)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Set_Soft_Label_Key_Color;
-
-------------------------------------------------------------------------------
- procedure Enable_Key (Key : in Special_Key_Code;
- Enable : in Boolean := True)
- is
- function Keyok (Keycode : C_Int;
- On_Off : Curses_Bool) return C_Int;
- pragma Import (C, Keyok, "keyok");
- begin
- if Keyok (C_Int (Key), Curses_Bool (Boolean'Pos (Enable)))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Enable_Key;
-------------------------------------------------------------------------------
- procedure Define_Key (Definition : in String;
- Key : in Special_Key_Code)
- is
- function Defkey (Def : char_array;
- Key : C_Int) return C_Int;
- pragma Import (C, Defkey, "define_key");
-
- Txt : char_array (0 .. Definition'Length);
- Length : size_t;
- begin
- To_C (Definition, Txt, Length);
- if Defkey (Txt, C_Int (Key)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Define_Key;
-------------------------------------------------------------------------------
- procedure Un_Control (Ch : in Attributed_Character;
- Str : out String)
- is
- function Unctrl (Ch : C_Chtype) return chars_ptr;
- pragma Import (C, Unctrl, "unctrl");
- begin
- Fill_String (Unctrl (AttrChar_To_Chtype (Ch)), Str);
- end Un_Control;
-
- function Un_Control (Ch : in Attributed_Character) return String
- is
- function Unctrl (Ch : C_Chtype) return chars_ptr;
- pragma Import (C, Unctrl, "unctrl");
- begin
- return Fill_String (Unctrl (AttrChar_To_Chtype (Ch)));
- end Un_Control;
-
- procedure Delay_Output (Msecs : in Natural)
- is
- function Delayoutput (Msecs : C_Int) return C_Int;
- pragma Import (C, Delayoutput, "delay_output");
- begin
- if Delayoutput (C_Int (Msecs)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Delay_Output;
-
- procedure Flush_Input
- is
- function Flushinp return C_Int;
- pragma Import (C, Flushinp, "flushinp");
- begin
- if Flushinp = Curses_Err then -- docu says that never happens, but...
- raise Curses_Exception;
- end if;
- end Flush_Input;
-------------------------------------------------------------------------------
- function Baudrate return Natural
- is
- function Baud return C_Int;
- pragma Import (C, Baud, "baudrate");
- begin
- return Natural (Baud);
- end Baudrate;
-
- function Erase_Character return Character
- is
- function Erasechar return C_Int;
- pragma Import (C, Erasechar, "erasechar");
- begin
- return Character'Val (Erasechar);
- end Erase_Character;
-
- function Kill_Character return Character
- is
- function Killchar return C_Int;
- pragma Import (C, Killchar, "killchar");
- begin
- return Character'Val (Killchar);
- end Kill_Character;
-
- function Has_Insert_Character return Boolean
- is
- function Has_Ic return Curses_Bool;
- pragma Import (C, Has_Ic, "has_ic");
- begin
- if Has_Ic = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Has_Insert_Character;
-
- function Has_Insert_Line return Boolean
- is
- function Has_Il return Curses_Bool;
- pragma Import (C, Has_Il, "has_il");
- begin
- if Has_Il = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Has_Insert_Line;
-
- function Supported_Attributes return Character_Attribute_Set
- is
- function Termattrs return C_Chtype;
- pragma Import (C, Termattrs, "termattrs");
-
- Ch : constant Attributed_Character := Chtype_To_AttrChar (Termattrs);
- begin
- return Ch.Attr;
- end Supported_Attributes;
-
- procedure Long_Name (Name : out String)
- is
- function Longname return chars_ptr;
- pragma Import (C, Longname, "longname");
- begin
- Fill_String (Longname, Name);
- end Long_Name;
-
- function Long_Name return String
- is
- function Longname return chars_ptr;
- pragma Import (C, Longname, "longname");
- begin
- return Fill_String (Longname);
- end Long_Name;
-
- procedure Terminal_Name (Name : out String)
- is
- function Termname return chars_ptr;
- pragma Import (C, Termname, "termname");
- begin
- Fill_String (Termname, Name);
- end Terminal_Name;
-
- function Terminal_Name return String
- is
- function Termname return chars_ptr;
- pragma Import (C, Termname, "termname");
- begin
- return Fill_String (Termname);
- end Terminal_Name;
-------------------------------------------------------------------------------
- procedure Init_Pair (Pair : in Redefinable_Color_Pair;
- Fore : in Color_Number;
- Back : in Color_Number)
- is
- function Initpair (Pair : C_Short;
- Fore : C_Short;
- Back : C_Short) return C_Int;
- pragma Import (C, Initpair, "init_pair");
- begin
- if Integer (Pair) >= Number_Of_Color_Pairs then
- raise Constraint_Error;
- end if;
- if Integer (Fore) >= Number_Of_Colors or else
- Integer (Back) >= Number_Of_Colors then raise Constraint_Error;
- end if;
- if Initpair (C_Short (Pair), C_Short (Fore), C_Short (Back))
- = Curses_Err then
- raise Curses_Exception;
- end if;
- end Init_Pair;
-
- procedure Pair_Content (Pair : in Color_Pair;
- Fore : out Color_Number;
- Back : out Color_Number)
- is
- type C_Short_Access is access all C_Short;
- function Paircontent (Pair : C_Short;
- Fp : C_Short_Access;
- Bp : C_Short_Access) return C_Int;
- pragma Import (C, Paircontent, "pair_content");
-
- F, B : aliased C_Short;
- begin
- if Paircontent (C_Short (Pair), F'Access, B'Access) = Curses_Err then
- raise Curses_Exception;
- else
- Fore := Color_Number (F);
- Back := Color_Number (B);
- end if;
- end Pair_Content;
-
- function Has_Colors return Boolean
- is
- function Hascolors return Curses_Bool;
- pragma Import (C, Hascolors, "has_colors");
- begin
- if Hascolors = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Has_Colors;
-
- procedure Init_Color (Color : in Color_Number;
- Red : in RGB_Value;
- Green : in RGB_Value;
- Blue : in RGB_Value)
- is
- function Initcolor (Col : C_Short;
- Red : C_Short;
- Green : C_Short;
- Blue : C_Short) return C_Int;
- pragma Import (C, Initcolor, "init_color");
- begin
- if Initcolor (C_Short (Color), C_Short (Red), C_Short (Green),
- C_Short (Blue)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Init_Color;
-
- function Can_Change_Color return Boolean
- is
- function Canchangecolor return Curses_Bool;
- pragma Import (C, Canchangecolor, "can_change_color");
- begin
- if Canchangecolor = Curses_Bool_False then
- return False;
- else
- return True;
- end if;
- end Can_Change_Color;
-
- procedure Color_Content (Color : in Color_Number;
- Red : out RGB_Value;
- Green : out RGB_Value;
- Blue : out RGB_Value)
- is
- type C_Short_Access is access all C_Short;
-
- function Colorcontent (Color : C_Short; R, G, B : C_Short_Access)
- return C_Int;
- pragma Import (C, Colorcontent, "color_content");
-
- R, G, B : aliased C_Short;
- begin
- if Colorcontent (C_Short (Color), R'Access, G'Access, B'Access) =
- Curses_Err then
- raise Curses_Exception;
- else
- Red := RGB_Value (R);
- Green := RGB_Value (G);
- Blue := RGB_Value (B);
- end if;
- end Color_Content;
-
-------------------------------------------------------------------------------
- procedure Save_Curses_Mode (Mode : in Curses_Mode)
- is
- function Def_Prog_Mode return C_Int;
- pragma Import (C, Def_Prog_Mode, "def_prog_mode");
- function Def_Shell_Mode return C_Int;
- pragma Import (C, Def_Shell_Mode, "def_shell_mode");
-
- Err : C_Int;
- begin
- case Mode is
- when Curses => Err := Def_Prog_Mode;
- when Shell => Err := Def_Shell_Mode;
- end case;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Save_Curses_Mode;
-
- procedure Reset_Curses_Mode (Mode : in Curses_Mode)
- is
- function Reset_Prog_Mode return C_Int;
- pragma Import (C, Reset_Prog_Mode, "reset_prog_mode");
- function Reset_Shell_Mode return C_Int;
- pragma Import (C, Reset_Shell_Mode, "reset_shell_mode");
-
- Err : C_Int;
- begin
- case Mode is
- when Curses => Err := Reset_Prog_Mode;
- when Shell => Err := Reset_Shell_Mode;
- end case;
- if Err = Curses_Err then
- raise Curses_Exception;
- end if;
- end Reset_Curses_Mode;
-
- procedure Save_Terminal_State
- is
- function Savetty return C_Int;
- pragma Import (C, Savetty, "savetty");
- begin
- if Savetty = Curses_Err then
- raise Curses_Exception;
- end if;
- end Save_Terminal_State;
-
- procedure Reset_Terminal_State
- is
- function Resetty return C_Int;
- pragma Import (C, Resetty, "resetty");
- begin
- if Resetty = Curses_Err then
- raise Curses_Exception;
- end if;
- end Reset_Terminal_State;
-
- procedure Rip_Off_Lines (Lines : in Integer;
- Proc : in Stdscr_Init_Proc)
- is
- function Ripoffline (Lines : C_Int;
- Proc : Stdscr_Init_Proc) return C_Int;
- pragma Import (C, Ripoffline, "_nc_ripoffline");
- begin
- if Ripoffline (C_Int (Lines), Proc) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Rip_Off_Lines;
-
- procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility)
- is
- function Curs_Set (Curs : C_Int) return C_Int;
- pragma Import (C, Curs_Set, "curs_set");
-
- Res : C_Int;
- begin
- Res := Curs_Set (Cursor_Visibility'Pos (Visibility));
- if Res /= Curses_Err then
- Visibility := Cursor_Visibility'Val (Res);
- end if;
- end Set_Cursor_Visibility;
-
- procedure Nap_Milli_Seconds (Ms : in Natural)
- is
- function Napms (Ms : C_Int) return C_Int;
- pragma Import (C, Napms, "napms");
- begin
- if Napms (C_Int (Ms)) = Curses_Err then
- raise Curses_Exception;
- end if;
- end Nap_Milli_Seconds;
-------------------------------------------------------------------------------
-
- function Standard_Window return Window
- is
- Stdscr : Window;
- pragma Import (C, Stdscr, "stdscr");
- begin
- return Stdscr;
- end Standard_Window;
-
- function Lines return Line_Count
- is
- C_Lines : C_Int;
- pragma Import (C, C_Lines, "LINES");
- begin
- return Line_Count (C_Lines);
- end Lines;
-
- function Columns return Column_Count
- is
- C_Columns : C_Int;
- pragma Import (C, C_Columns, "COLS");
- begin
- return Column_Count (C_Columns);
- end Columns;
-
- function Tab_Size return Natural
- is
- C_Tab_Size : C_Int;
- pragma Import (C, C_Tab_Size, "TABSIZE");
- begin
- return Natural (C_Tab_Size);
- end Tab_Size;
-
- function Number_Of_Colors return Natural
- is
- C_Number_Of_Colors : C_Int;
- pragma Import (C, C_Number_Of_Colors, "COLORS");
- begin
- return Natural (C_Number_Of_Colors);
- end Number_Of_Colors;
-
- function Number_Of_Color_Pairs return Natural
- is
- C_Number_Of_Color_Pairs : C_Int;
- pragma Import (C, C_Number_Of_Color_Pairs, "COLOR_PAIRS");
- begin
- return Natural (C_Number_Of_Color_Pairs);
- end Number_Of_Color_Pairs;
-------------------------------------------------------------------------------
- procedure Transform_Coordinates
- (W : in Window := Standard_Window;
- Line : in out Line_Position;
- Column : in out Column_Position;
- Dir : in Transform_Direction := From_Screen)
- is
- type Int_Access is access all C_Int;
- function Transform (W : Window;
- Y, X : Int_Access;
- Dir : Curses_Bool) return C_Int;
- pragma Import (C, Transform, "wmouse_trafo");
-
- X : aliased C_Int := C_Int (Column);
- Y : aliased C_Int := C_Int (Line);
- D : Curses_Bool := Curses_Bool_False;
- R : C_Int;
- begin
- if Dir = To_Screen then
- D := 1;
- end if;
- R := Transform (W, Y'Access, X'Access, D);
- if R = Curses_False then
- raise Curses_Exception;
- else
- Line := Line_Position (Y);
- 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;
-
diff --git a/ncurses-5.3/Ada95/src/terminal_interface.ads b/ncurses-5.3/Ada95/src/terminal_interface.ads
deleted file mode 100644
index 6953421..0000000
--- a/ncurses-5.3/Ada95/src/terminal_interface.ads
+++ /dev/null
@@ -1,49 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT ncurses Binding --
--- --
--- Terminal_Interface --
--- --
--- S P E C --
--- --
-------------------------------------------------------------------------------
--- 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. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer, 1996
--- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
--- Version Control:
--- $Revision$
--- Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface is
- pragma Pure (Terminal_Interface);
---
--- Everything is in the child units
---
-end Terminal_Interface;
-
-
diff --git a/ncurses-5.3/INSTALL b/ncurses-5.3/INSTALL
deleted file mode 100644
index 1551842..0000000
--- a/ncurses-5.3/INSTALL
+++ /dev/null
@@ -1,1151 +0,0 @@
--- $Id$
----------------------------------------------------------------------
- How to install Ncurses/Terminfo on your system
----------------------------------------------------------------------
-
- ************************************************************
- * READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. *
- ************************************************************
-
-You should be reading the file INSTALL in a directory called ncurses-d.d, where
-d.d is the current version number. There should be several subdirectories,
-including `c++', `form', `man', `menu', 'misc', `ncurses', `panel', `progs',
-and `test'. See the README file for a roadmap to the package.
-
-If you are a Linux or FreeBSD or NetBSD distribution integrator or packager,
-please read and act on the section titled IF YOU ARE A SYSTEM INTEGRATOR
-below.
-
-If you are converting from BSD curses and do not have root access, be sure
-to read the BSD CONVERSION NOTES section below.
-
-If you are using a version of XFree86 xterm older than 3.1.2F, see the section
-on RECENT XTERM VERSIONS below.
-
-If you are trying to build GNU Emacs using ncurses for terminal support,
-read the USING NCURSES WITH EMACS section below.
-
-If you are trying to build applications using gpm with ncurses,
-read the USING NCURSES WITH GPM section below.
-
-If you are running over the Andrew File System see the note below on
-USING NCURSES WITH AFS.
-
-If you are cross-compiling, see the note below on BUILDING NCURSES WITH A
-CROSS-COMPILER.
-
-If you want to build the Ada95 binding, go to the Ada95 directory and
-follow the instructions there. The Ada95 binding is not covered below.
-
-If you are using anything but (a) Linux, or (b) one of the 4.4BSD-based
-i386 Unixes, go read the Portability section in the TO-DO file before you
-do anything else.
-
-
-REQUIREMENTS:
-------------
-
-You will need the following in order to build and install ncurses under UNIX:
-
- * ANSI C compiler (gcc, for instance)
- * sh (bash will do)
- * awk (mawk or gawk will do)
- * sed
- * BSD or System V style install (a script is enclosed)
-
-Ncurses has been also built in the OS/2 EMX environment.
-
-
-INSTALLATION PROCEDURE:
-----------------------
-
-1. First, decide whether you want ncurses to replace your existing library (in
- which case you'll need super-user privileges) or be installed in parallel
- with it.
-
- The --prefix option to configure changes the root directory for installing
- ncurses. The default is in subdirectories of /usr/local. Use
- --prefix=/usr to replace your default curses distribution. This is the
- default for Linux and BSD/OS users.
-
- The package gets installed beneath the --prefix directory as follows:
-
- In $(prefix)/bin: tic, infocmp, captoinfo, tset,
- reset, clear, tput, toe
- In $(prefix)/lib: libncurses*.* libcurses.a
- In $(prefix)/share/terminfo: compiled terminal descriptions
- In $(prefix)/include: C header files
- Under $(prefix)/man: the manual pages
-
- Note however that the configure script attempts to locate previous
- installation of ncurses, and will set the default prefix according to where
- it finds the ncurses headers.
-
-2. Type `./configure' in the top-level directory of the distribution to
- configure ncurses for your operating system and create the Makefiles.
- Besides --prefix, various configuration options are available to customize
- the installation; use `./configure --help' to list the available options.
-
- If your operating system is not supported, read the PORTABILITY section in
- the file ncurses/README for information on how to create a configuration
- file for your system.
-
- The `configure' script generates makefile rules for one or more object
- models and their associated libraries:
-
- libncurses.a (normal)
-
- libcurses.a (normal, a link to libncurses.a)
- This gets left out if you configure with --disable-overwrite.
-
- libncurses.so (shared)
-
- libncurses_g.a (debug)
-
- libncurses_p.a (profile)
-
- 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:
-
- ./configure --with-normal --with-debug --enable-overwrite
-
- Typing
-
- ./configure --with-shared
-
- makes the shared libraries the default, resulting in
-
- ./configure --with-shared --with-normal --with-debug --enable-overwrite
-
- If you want only shared libraries, type
-
- ./configure --with-shared --without-normal --without-debug
-
- Rules for generating shared libraries are highly dependent upon the choice
- of host system and compiler. We've been testing shared libraries on Linux
- and SunOS with gcc, but more work needs to be done to make shared libraries
- work on other systems.
-
- If you have libtool installed, you can type
-
- ./configure --with-libtool
-
- to generate the appropriate static and/or shared libraries for your
- platform using libtool.
-
- You can make curses and terminfo fall back to an existing file of termcap
- definitions by configuring with --enable-termcap. If you do this, the
- library will search /etc/termcap before the terminfo database, and will
- also interpret the contents of the TERM environment variable. See the
- section BSD CONVERSION NOTES below.
-
-3. Type `make'. Ignore any warnings, no error messages should be produced.
- This should compile the ncurses library, the terminfo compiler tic(1),
- captoinfo(1), infocmp(1), toe(1), clear(1) tset(1), reset(1), and tput(1)
- programs (see the manual pages for explanation of what they do), some test
- programs, and the panels, menus, and forms libraries.
-
-4. Run ncurses and several other test programs in the test directory to
- verify that ncurses functions correctly before doing an install that
- may overwrite system files. Read the file test/README for details on
- the test programs.
-
- NOTE: You must have installed the terminfo database, or set the
- environment variable $TERMINFO to point to a SVr4-compatible terminfo
- database before running the test programs. Not all vendors' terminfo
- 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.
-
-5. Once you've tested, you can type `make install' to install libraries,
- the programs, the terminfo database and the manual pages. Alternately, you
- can type `make install' in each directory you want to install. In the
- top-level directory, you can do a partial install using these commands:
-
- 'make install.progs' installs tic, infocmp, etc...
- 'make install.includes' installs the headers.
- 'make install.libs' installs the libraries (and the headers).
- 'make install.data' installs the terminfo data. (Note: `tic' must
- be installed before the terminfo data can be
- compiled).
- 'make install.man' installs the manual pages.
-
- ############################################################################
- # CAVEAT EMPTOR: `install.data' run as root will NUKE any existing #
- # terminfo database. If you have any custom or unusual entries SAVE them #
- # before you install ncurses. I have a file called terminfo.custom for #
- # this purpose. Don't forget to run tic on the file once you're done. #
- ############################################################################
-
- The terminfo(5) manual page must be preprocessed with tbl(1) before
- being formatted by nroff(1). Modern man(1) implementations tend to do
- this by default, but you may want to look at your version's manual page
- to be sure. You may also install the manual pages after preprocessing
- 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
- 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 another curses installed in your system and you accidentally
- compile using its curses.h you'll end up with a large number of
- 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
- about your environment and use them to build you a private terminfo tree,
- so you can use ncurses applications.
-
- If more than one user at your site does this, the space for the duplicate
- trees is wasted. Try to get your site administrators to install a system-
- wide terminfo tree instead.
-
- See the BSD CONVERSION NOTES section below for a few more details.
-
-6. The c++ directory has C++ classes that are built on top of ncurses and
- panels. You must have c++ (and its libraries) installed before you can
- compile and run the demo.
-
- Use --without-cxx-binding to tell configure to not build the C++ bindings
- and demo.
-
- If you do not have C++, you must use the --without-cxx option to tell
- the configure script to not attempt to determine the type of 'bool'
- 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++.
-
-
-SUMMARY OF CONFIGURE OPTIONS:
-----------------------------
-
- The configure script provides a short list of its options when you type
-
- ./configure --help
-
- The --help and several options are common to all configure scripts that are
- generated with autoconf. Those are all listed before the line
-
- --enable and --with options recognized:
-
- The other options are specific to this package. We list them in alphabetic
- order.
-
- --disable-assumed-color
- With ncurses 5.1, we introduced a new function, assume_default_colors()
- which allows applications to specify what the default foreground and
- background color are assumed to be. Most color applications use
- full-screen color; but a few do not color the background. While the
- assumed values can be overridden by invoking assume_default_colors(),
- you may find it useful to set the assumed values to the pre-5.1
- convention, using this configure option.
-
- --disable-big-core
- Assume machine has little memory. The configure script attempts to
- determine if your machine has enough memory (about 6Mb) to compile the
- terminfo database without writing portions to disk. Some allocators
- return deceptive results, so you may have to override the configure
- script. Or you may be building tic for a smaller machine.
-
- --disable-database
- 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. 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
- that are not specified by XSI. See ncurses/modules for the exact
- list of library modules that would be suppressed.
-
- --disable-hashmap
- Compile without hashmap scrolling-optimization code. This algorithm is
- the default.
-
- --disable-leaks
- For testing, compile-in code that frees memory that normally would not
- be freed, to simplify analysis of memory-leaks.
-
- --disable-macros
- For testing, use functions rather than macros. The program will run
- more slowly, but it is simpler to debug. This makes a header file
- "nomacros.h". See also the --enable-expanded option.
-
- --disable-overwrite
- If you are installing ncurses on a system which contains another
- development version of curses, or which could be confused by the loader
- for another version, we recommend that you leave out the link to
- -lcurses. The ncurses library is always available as -lncurses.
- Disabling overwrite also causes the ncurses header files to be
- installed into a subdirectory, e.g., /usr/local/include/ncurses,
- rather than the include directory. This makes it simpler to avoid
- compile-time conflicts with other versions of curses.h
-
- --disable-root-environ
- Compile with environment restriction, so certain environment variables
- are not available when running as root, or via a setuid/setgid
- application. These are (for example $TERMINFO) those that allow the
- search path for the terminfo or termcap entry to be customized.
-
- --disable-scroll-hints
- Compile without scroll-hints code. This option is ignored when
- hashmap scrolling is configured, which is the default.
-
- --enable-add-ons=DIR...
- This is used to check if this package is a glibc add-on. This is used
- only by the glibc makefiles.
-
- --enable-assertions
- For testing, compile-in assertion code. This is used only for a few
- places where ncurses cannot easily recover by returning an error code.
-
- --enable-broken_linker
- A few platforms have what we consider a broken linker: it cannot link
- objects from an archive solely by referring to data objects in those
- files, but requires a function reference. This configure option
- changes several data references to functions to work around this
- problem.
-
- NOTE: With ncurses 5.1, this may not be necessary, since we are
- told that some linkers interpret uninitialized global data as a
- different type of reference which behaves as described above. We have
- explicitly initialized all of the global data to work around the
- problem.
-
- --enable-bsdpad
- Recognize BSD-style prefix padding. Some ancient BSD programs (such as
- nethack) call tputs("50") to implement delays.
-
- --enable-colorfgbg
- Compile with experimental $COLORFGBG code. That environment variable
- is set by some terminal emulators as a hint to applications, by
- advertising the default foreground and background colors. During
- initialization, ncurses sets color pair 0 to match this.
-
- --enable-const
- The curses interface as documented in XSI is rather old, in fact
- including features that precede ANSI C. The prototypes generally do
- not make effective use of "const". When using stricter compilers (or
- gcc with appropriate warnings), you may see warnings about the mismatch
- between const and non-const data. We provide a configure option which
- changes the interfaces to use const - quieting these warnings and
- reflecting the actual use of the parameters more closely. The ncurses
- library uses the symbol NCURSES_CONST for these instances of const,
- and if you have asked for compiler warnings, will add gcc's const-qual
- warning. There will still be warnings due to subtle inconsistencies
- in the interface, but at a lower level.
-
- NOTE: configuring ncurses with this option may detract from the
- portability of your applications by encouraging you to use const in
- places where the XSI curses interface would not allow them. Similar
- issues arise when porting to SVr4 curses, which uses const in even
- fewer places.
-
- --enable-echo
- Use the option --disable-echo to make the build-log less verbose by
- suppressing the display of the compile and link commands. This makes
- it easier to see the compiler warnings. (You can always use "make -n"
- to see the options that are used).
-
- --enable-expanded
- For testing, generate functions for certain macros to make them visible
- as such to the debugger. See also the --disable-macros option.
-
- --enable-getcap
- Use the 4.4BSD getcap code if available, or a bundled version of it to
- fetch termcap entries. Entries read in this way cannot use (make
- cross-references to) the terminfo tree, but it is faster than reading
- /etc/termcap.
-
- --enable-getcap-cache
- Cache translated termcaps under the directory $HOME/.terminfo
-
- NOTE: this sounds good - it makes ncurses run faster the second time.
- But look where the data comes from - an /etc/termcap containing lots of
- entries that are not up to date. If you configure with this option and
- forget to install the terminfo database before running an ncurses
- application, you will end up with a hidden terminfo database that
- generally does not support color and will miss some function keys.
-
- --enable-hard-tabs
- Compile-in cursor-optimization code that uses hard-tabs. We would make
- this a standard feature except for the concern that the terminfo entry
- may not be accurate, or that your stty settings have disabled the use
- of tabs.
-
- --enable-no-padding
- Compile-in support for the $NCURSES_NO_PADDING environment variable,
- which allows you to suppress the effect of non-mandatory padding in
- terminfo entries. This is the default, unless you have disabled the
- extended functions.
-
- --enable-rpath
- Use rpath option when generating shared libraries, and with some
- restrictions when linking the corresponding programs. This applies
- mainly to systems using the GNU linker (read the manpage).
-
- --enable-safe-sprintf
- Compile with experimental safe-sprintf code. You may consider using
- this if you are building ncurses for a system that has neither
- vsnprintf() or vsprintf(). It is slow, however.
-
- --enable-sigwinch
- Compile support for ncurses' SIGWINCH handler. If your application has
- its own SIGWINCH handler, ncurses will not use its own. The ncurses
- handler causes wgetch() to return KEY_RESIZE when the screen-size
- changes. This option is the default, unless you have disabled the
- extended functions.
-
- --enable-symlinks
- If your system supports symbolic links, make tic use symbolic links
- rather than hard links to save diskspace when writing aliases in the
- terminfo database.
-
- --enable-tcap-names
- Compile-in support for user-definable terminal capabilities. Use the
- -x option of tic and infocmp to treat unrecognized terminal
- capabilities as user-defined strings. This option is the default,
- unless you have disabled the extended functions.
-
- --enable-termcap
- Compile in support for reading terminal descriptions from termcap if no
- match is found in the terminfo database. See also the --enable-getcap
- and --enable-getcap-cache options.
-
- --enable-warnings
- Turn on GCC compiler warnings. There should be only a few.
-
- --enable-widec
- Compile with experimental wide-character code. This makes a different
- version of the libraries (e.g., libncursesw.so), which stores
- characters as wide-characters,
-
- 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.
-
- --with-ada-compiler=CMD
- Specify the Ada95 compiler command (default "gnatmake")
-
- --with-ada-include=DIR
- Tell where to install the Ada includes (default:
- PREFIX/lib/ada/adainclude)
-
- --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
- have special requirements, e.g, OS/2 EMX has a customized terminfo
- source file.
-
- --with-dbmalloc
- For testing, compile and link with Conor Cahill's dbmalloc library.
-
- --with-debug
- Generate debug-libraries (default). These are named by adding "_g"
- to the root, e.g., libncurses_g.a
-
- --with-default-terminfo-dir=XXX
- Specify the default terminfo database directory. This is normally
- DATADIR/terminfo, e.g., /usr/share/terminfo.
-
- --with-develop
- Enable experimental/development options. This does not count those
- that change the interface, such as --enable-widec.
-
- --with-dmalloc
- For testing, compile and link with Gray Watson's dmalloc library.
-
- --with-fallbacks=XXX
- Specify a list of fallback terminal descriptions which will be
- compiled into the ncurses library. See CONFIGURING FALLBACK ENTRIES.
-
- --with-gpm
- use Alessandro Rubini's GPM library to provide mouse support on the
- Linux console.
-
- --with-install-prefix=XXX
- Allows you to specify an alternate location for installing ncurses
- after building it. The value you specify is prepended to the "real"
- install location. This simplifies making binary packages.
-
- NOTE: a few systems build shared libraries with fixed pathnames; this
- option probably will not work for those configurations.
-
- --with-libtool
- Generate libraries with libtool. If this option is selected, then
- it overrides all other library model specifications.
-
- --with-manpage-format=XXX
- Tell the configure script how you would like to install man-pages. The
- option value must be one of these: gzip, compress, BSDI, normal,
- formatted. If you do not give this option, the configure script
- attempts to determine which is the case.
-
- --with-manpage-renames=XXX
- Tell the configure script that you wish to rename the manpages while
- installing. Currently the only distribution which does this is
- the Linux Debian. The option value specifies the name of a file
- that lists the renamed files, e.g., $srcdir/man/man_db.renames
-
- --with-manpage-symlinks
- Tell the configure script that you wish to make symbolic links in the
- man-directory for aliases to the man-pages. This is the default, but
- can be disabled for systems that provide this automatically. Doing
- this on systems that do not support symbolic links will result in
- copying the man-page for each alias.
-
- --with-manpage-tbl
- Tell the configure script that you with to preprocess the manpages
- 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-profile
- Generate profile-libraries These are named by adding "_p" to the root,
- e.g., libncurses_p.a
-
- --with-rcs-ids
- Compile-in RCS identifiers. Most of the C files have an identifier.
-
- --with-shared
- Generate shared-libraries. The names given depend on the system for
- which you are building, typically using a ".so" suffix, along with
- symbolic links that refer to the release version.
-
- NOTE: Unless you override the configure script by setting the $CFLAGS
- environment variable, these will not be built with the -g debugging
- option.
-
- --with-shlib-version=XXX
- Specify whether to use the release or ABI version for shared libraries.
- This is normally chosen automatically based on the type of system
- which you are building on. We use it for testing the configure script.
-
- --with-system-type=XXX
- For testing, override the derived host system-type which is used to
- decide things such as the linker commands used to build shared
- libraries. This is normally chosen automatically based on the type of
- system which you are building on. We use it for testing the configure
- script.
-
- --with-terminfo-dirs=XXX
- Specify a search-list of terminfo directories which will be compiled
- into the ncurses library (default: DATADIR/terminfo)
-
- --with-termlib
- When building the ncurses library, organize this as two parts: the
- curses library (libncurses) and the low-level terminfo library
- (libtinfo). This is done to accommodate applications that use only
- the latter. The terminfo library is about half the size of the total.
-
- --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-curses-h
- Don't install the ncurses header with the name "curses.h". Rather,
- install as "ncurses.h" and modify the installed headers and manpages
- accordingly.
-
- --without-cxx
- XSI curses declares "bool" as part of the interface. C++ also declares
- "bool". Neither specifies the size and type of booleans, but both
- insist on the same name. We chose to accommodate this by making the
- configure script check for the size and type (e.g., unsigned or signed)
- that your C++ compiler uses for booleans. If you do not wish to use
- ncurses with C++, use this option to tell the configure script to not
- adjust ncurses bool to match C++.
-
- --without-cxx-binding
- Suppress the configure script's check for C++, do not build the
- C++ binding and related demo.
-
- --without-progs
- Tell the configure script to suppress the build of ncurses' application
- programs (e.g., tic). The test applications will still be built if you
- type "make", though not if you simply do "make install".
-
-
-COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
---------------------------------------------
-
- Because ncurses implements the X/Open Curses Specification, its interface
- is fairly stable. That does not mean the interface does not change.
- Changes are made to the documented interfaces when we find differences
- between ncurses and X/Open or implementations which they certify (such as
- Solaris). We add extensions to those interfaces to solve problems not
- addressed by the original curses design, but those must not conflict with
- the X/Open documentation.
-
- Here are some of the major interface changes, and related problems which
- 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:
-
- + made the extended terminal capabilities
- (configure --enable-tcap-names) a standard feature. This should
- be transparent to applications that do not require it.
-
- + removed the trace() function and related trace support from the
- production library.
-
- + modified curses.h.in, undef'ing some symbols to avoid conflict
- with C++ STL.
-
- Added extensions: assume_default_colors().
-
- 5.0 (October 23, 1999)
- Interface changes:
-
- + implemented the wcolor_set() and slk_color() functions.
-
- + move macro winch to a function, to hide details of struct ldat
-
- + corrected prototypes for slk_* functions, using chtype rather than
- attr_t.
-
- + the slk_attr_{set,off,on} functions need an additional void*
- parameter according to XSI.
-
- + modified several prototypes to correspond with 1997 version of X/Open
- Curses: [w]attr_get(), [w]attr_set(), border_set() have different
- parameters. Some functions were renamed or misspelled:
- erase_wchar(), in_wchntr(), mvin_wchntr(). Some developers have used
- attr_get().
-
- Added extensions: keybound(), curses_version().
-
- Terminfo database changes:
-
- + change translation for termcap 'rs' to terminfo 'rs2', which is
- the documented equivalent, rather than 'rs1'.
-
- The problems are subtler in recent releases.
-
- a) This release provides users with the ability to define their own
- terminal capability extensions, like termcap. To accomplish this,
- we redesigned the TERMTYPE struct (in term.h). Very few
- applications use this struct. They must be recompiled to work with
- the 5.0 library.
-
- a) If you use the extended terminfo names (i.e., you used configure
- --enable-tcap-names), the resulting terminfo database can have some
- entries which are not readable by older versions of ncurses. This
- is a bug in the older versions:
-
- + the terminfo database stores booleans, numbers and strings in
- arrays. The capabilities that are listed in the arrays are
- specified by X/Open. ncurses recognizes a number of obsolete and
- extended names which are stored past the end of the specified
- entries.
-
- + a change to read_entry.c in 951001 made the library do an lseek()
- call incorrectly skipping data which is already read from the
- string array. This happens when the number of strings in the
- terminfo data file is greater than STRCOUNT, the number of
- specified and obsolete or extended strings.
-
- + as part of alignment with the X/Open final specification, in the
- 990109 patch we added two new terminfo capabilities:
- set_a_attributes and set_pglen_inch). This makes the indices for
- the obsolete and extended capabilities shift up by 2.
-
- + the last two capabilities in the obsolete/extended list are memu
- and meml, which are found in most terminfo descriptions for xterm.
-
- When trying to read this terminfo entry, the spurious lseek()
- causes the library to attempt to read the final portion of the
- terminfo data (the text of the string capabilities) 4 characters
- past its starting point, and reads 4 characters too few. The
- library rejects the data, and applications are unable to
- initialize that terminal type.
-
- FIX: remove memu and meml from the xterm description. They are
- obsolete, not used by ncurses. (It appears that the feature was
- added to xterm to make it more like hpterm).
-
- This is not a problem if you do not use the -x option of tic to
- create a terminfo database with extended names. Note that the
- user-defined terminal capabilities are not affected by this bug,
- since they are stored in a table after the older terminfo data ends,
- and are invisible to the older libraries.
-
- c) Some developers did not wish to use the C++ binding, and used the
- configure --without-cxx option. This causes problems if someone
- uses the ncurses library from C++ because that configure test
- determines the type for C++'s bool and makes ncurses match it, since
- both C++ and curses are specified to declare bool. Calling ncurses
- functions with the incorrect type for bool will cause execution
- errors. In 5.0 we added a configure option "--without-cxx-binding"
- which controls whether the binding itself is built and installed.
-
- 4.2 (March 2, 1998)
- Interface changes:
-
- + correct prototype for termattrs() as per XPG4 version 2.
-
- + add placeholder prototypes for color_set(), erasewchar(),
- term_attrs(), wcolor_set() as per XPG4 version 2.
-
- + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in
- SVr4 headers.
-
- New extensions: keyok() and define_key().
-
- Terminfo database changes:
-
- + corrected definition in curses.h for ACS_LANTERN, which was 'I'
- rather than 'i'.
-
- 4.1 (May 15, 1997)
-
- We added these extensions: use_default_colors(). Also added
- configure option --enable-const, to support the use of const where
- X/Open should have, but did not, specify.
-
- The terminfo database content changed the representation of color for
- most entries that use ANSI colors. SVr4 curses treats the setaf/setab
- and setf/setb capabilities differently, interchanging the red/blue
- colors in the latter.
-
- 4.0 (December 24, 1996)
-
- We bumped to version 4.0 because the newly released dynamic loader
- (ld.so.1.8.5) on Linux did not load shared libraries whose ABI and REL
- versions were inconsistent. At that point, ncurses ABI was 3.4 and the
- REL was 1.9.9g, so we made them consistent.
-
- 1.9.9g (December 1, 1996)
-
- This fixed most of the problems with 1.9.9e, and made these interface
- changes:
-
- + remove tparam(), which had been provided for compatibility with
- some termcap. tparm() is standard, and does not conflict with
- application's fallback for missing tparam().
-
- + turn off hardware echo in initscr(). This changes the sense of the
- echo() function, which was initialized to echoing rather than
- nonechoing (the latter is specified). There were several other
- corrections to the terminal I/O settings which cause applications to
- behave differently.
-
- + implemented several functions (such as attr_on()) which were
- available only as macros.
-
- + corrected several typos in curses.h.in (i.e., the mvXXXX macros).
-
- + corrected prototypes for delay_output(),
- has_color, immedok() and idcok().
-
- + corrected misspelled getbkgd(). Some applications used the
- misspelled name.
-
- + added _yoffset to WINDOW. The size of WINDOW does not impact
- applications, since they use only pointers to WINDOW structs.
-
- These changes were made to the terminfo database:
-
- + removed boolean 'getm' which was available as an extended name.
-
- We added these extensions: wresize(), resizeterm(), has_key() and
- mcprint().
-
- 1.9.9e (March 24, 1996)
-
- not recommended (a last-minute/untested change left the forms and
- menus libraries unusable since they do not repaint the screen).
- Foreground/background colors are combined incorrectly, working properly
- only on a black background. When this was released, the X/Open
- specification was available only in draft form.
-
- Some applications (such as lxdialog) were "fixed" to work with the
- incorrect color scheme.
-
-
-IF YOU ARE A SYSTEM INTEGRATOR:
-------------------------------
-
- Beginning with 1.9.9, the ncurses distribution includes both a tset
- utility and /usr/share/tabset directory. If you are installing ncurses,
- it is no longer either necessary or desirable to install tset-jv.
-
- Configuration and Installation:
-
- Configure with --prefix=/usr to make the install productions put
- libraries and headers in the correct locations (overwriting any
- previous curses libraries and headers). This will put the terminfo
- hierarchy under /usr/share/terminfo; you may want to override this with
- --datadir=/usr/share/misc; terminfo and tabset are installed under the
- data directory.
-
- Please configure the ncurses library in a pure-terminfo mode; that
- is, with the --disable-termcap option. This will make the ncurses
- library smaller and faster. The ncurses library includes a termcap
- emulation that queries the terminfo database, so even applications
- that use raw termcap to query terminal characteristics will win
- (providing you recompile and relink them!).
-
- If you must configure with termcap fallback enabled, you may also
- wish to use the --enable-getcap option. This option speeds up
- termcap-based startups, at the expense of not allowing personal
- termcap entries to reference the terminfo tree. See the code in
- ncurses/tinfo/read_termcap.c for details.
-
- Note that if you have $TERMCAP set, ncurses will use that value
- to locate termcap data. In particular, running from xterm will
- set $TERMCAP to the contents of the xterm's termcap entry.
- If ncurses sees that, it will not examine /etc/termcap.
-
- Keyboard Mapping:
-
- The terminfo file assumes that Shift-Tab generates \E[Z (the ECMA-48
- reverse-tabulation sequence) rather than ^I. Here are the loadkeys -d
- mappings that will set this up:
-
- keycode 15 = Tab Tab
- alt keycode 15 = Meta_Tab
- shift keycode 15 = F26
- string F26 ="\033[Z"
-
- Naming the Console Terminal
-
- In various Linuxes (and possibly elsewhere) there has been a practice
- of designating the system console driver type as `console'. Please
- do not do this any more! It complicates peoples' lives, because it
- can mean that several different terminfo entries from different
- operating systems all logically want to be called `console'.
-
- Please pick a name unique to your console driver and set that up
- in the /etc/inittab table or local equivalent. Send the entry to the
- terminfo maintainer (listed in the misc/terminfo file) to be included
- in the terminfo file, if it's not already there. See the
- term(7) manual page included with this distribution for more on
- conventions for choosing type names.
-
- Here are some recommended primary console names:
-
- linux -- Linux console driver
- freebsd -- FreeBSD
- netbsd -- NetBSD
- bsdos -- BSD/OS
-
- If you are responsible for integrating ncurses for one of these
- distribution, please either use the recommended name or get back
- to us explaining why you don't want to, so we can work out nomenclature
- that will make users' lives easier rather than harder.
-
-
-RECENT XTERM VERSIONS:
----------------------
-
- The terminfo database file included with this distribution assumes you
- are running an XFree86 xterm based on X11R6 (i.e., xterm-r6). The
- earlier X11R5 entry (xterm-r5) is provided as well.
-
- If you are running XFree86 version 3.2 (actually 3.1.2F and up), you
- should consider using the xterm-xf86-v32 (or later, the most recent
- version is always named "xterm-xfree86") entry, which adds ANSI color
- and the VT220 capabilities which have been added in XFree86. If you
- are running a mixed network, however, where this terminal description
- may be used on an older xterm, you may have problems, since
- applications that assume these capabilities will produce incorrect
- output on the older xterm (e.g., highlighting is not cleared).
-
-
-CONFIGURING FALLBACK ENTRIES:
-----------------------------
-
- In order to support operation of ncurses programs before the terminfo
- tree is accessible (that is, in single-user mode or at OS installation
- time) the ncurses library can be compiled to include an array of
- pre-fetched fallback entries.
-
- These entries are checked by setupterm() only when the conventional
- fetches from the terminfo tree and the termcap fallback (if configured)
- have been tried and failed. Thus, the presence of a fallback will not
- shadow modifications to the on-disk entry for the same type, when that
- entry is accessible.
-
- By default, there are no entries on the fallback list. After you
- have built the ncurses suite for the first time, you can change
- the list (the process needs infocmp(1)). To do so, use the script
- MKfallback.sh. A configure script option --with-fallbacks does this
- (it accepts a comma-separated list of the names you wish, and does
- not require a rebuild).
-
- If you wanted (say) to have linux, vt100, and xterm fallbacks, you
- would use the commands
-
- cd ncurses;
- MKfallback.sh linux vt100 xterm >fallback.c
-
- Then just rebuild and reinstall the library as you would normally.
- You can restore the default empty fallback list with
-
- MKfallback.sh >fallback.c
-
- The overhead for an empty fallback list is one trivial stub function.
- Any non-empty fallback list is const-ed and therefore lives in sharable
- text space. You can look at the comment trailing each initializer in
- the generated ncurses/fallback.c file to see the core cost of the
- fallbacks. A good rule of thumb for modern vt100-like entries is that
- each one will cost about 2.5K of text space.
-
-
-BSD CONVERSION NOTES:
---------------------
-
- If you need to support really ancient BSD programs, you probably
- want to configure with the --enable-bsdpad option. What this does
- is enable code in tputs() that recognizes a numeric prefix on a
- capability as a request for that much trailing padding in milliseconds.
- There are old BSD programs that do things like tputs("50").
-
- (If you are distributing ncurses as a support-library component of
- an application you probably want to put the remainder of this section
- in the package README file.)
-
- The following note applies only if you have configured ncurses with
- --enable-termcap.
-
-------------------------------- CUT HERE --------------------------------
-
-If you are installing this application privately (either because you
-have no root access or want to experiment with it before doing a root
-installation), there are a couple of details you need to be aware of.
-They have to do with the ncurses library, which uses terminfo rather
-than termcap for describing terminal characteristics.
-
-Though the ncurses library is terminfo-based, it will interpret your
-TERMCAP variable (if present), any local termcap files you reference
-through it, and the system termcap file. However, in order to avoid
-slowing down your application startup, it will only do this once per
-terminal type!
-
-The first time you load a given terminal type from your termcap
-database, the library initialization code will automatically write it
-in terminfo format to a subdirectory under $HOME/.terminfo. After
-that, the initialization code will find it there and do a (much
-faster) terminfo fetch.
-
-Usually, all this means is that your home directory will silently grow
-an invisible .terminfo subdirectory which will get filled in with
-terminfo descriptions of terminal types as you invoke them. If anyone
-ever installs a global terminfo tree on your system, this will quietly
-stop happening and your $HOME/.terminfo will become redundant.
-
-The objective of all this logic is to make converting from BSD termcap
-as painless as possible without slowing down your application (termcap
-compilation is expensive).
-
-If you don't have a TERMCAP variable or custom personal termcap file,
-you can skip the rest of this dissertation.
-
-If you *do* have a TERMCAP variable and/or a custom personal termcap file
-that defines a terminal type, that definition will stop being visible
-to this application after the first time you run it, because it will
-instead see the terminfo entry that it wrote to $HOME/terminfo the
-first time around.
-
-Subsequently, editing the TERMCAP variable or personal TERMCAP file
-will have no effect unless you explicitly remove the terminfo entry
-under $HOME/terminfo. If you do that, the entry will be recompiled
-from your termcap resources the next time it is invoked.
-
-To avoid these complications, use infocmp(1) and tic(1) to edit the
-terminfo directory directly.
-
-------------------------------- CUT HERE --------------------------------
-
-USING NCURSES WITH AFS:
- AFS treats each directory as a separate logical filesystem, you
- can't hard-link across them. The --enable-symlinks option copes
- with this by making tic use symbolic links.
-
-USING NCURSES WITH EMACS:
- GNU Emacs has its own termcap support. By default, it uses a mixture
- of those functions and code linked from the host system's libraries.
- You need to foil this and shut out the GNU termcap library entirely.
-
- In order to do this, hack the Linux config file (s/linux.h) to contain
- a #define TERMINFO and set the symbol LIBS_TERMCAP to "-lncurses".
-
- We have submitted such a change for the 19.30 release, so it may
- already be applied in your sources -- check for the #define TERMINFO.
-
-USING NCURSES WITH GPM:
- Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse)
- which is used on Linux console. Be aware that GPM is commonly
- installed as a shared library which contains a wrapper for the curses
- wgetch() function (libcurses.o). Some integrators have simplified
- linking applications by combining all or part of libcurses.so (the BSD
- curses) into the libgpm.so file, producing symbol conflicts with
- ncurses (specifically the wgetch function). You may be able to work
- around this problem by linking as follows:
-
- cc -o foo foo.o -lncurses -lgpm -lncurses
-
- but the linker may not cooperate, producing mysterious errors.
- A patched version of gpm is available:
-
- dickey.his.com:/ncurses/gpm-1.10-970125.tar.gz
-
- This patch is incorporated in gpm 1.12; however some integrators
- are slow to update this library. Current distributions of gpm can
- be configured properly using the --without-curses option.
-
-BUILDING NCURSES WITH A CROSS-COMPILER
- Ncurses can be built with a cross-compiler. Some parts must be built
- with the host's compiler since they are used for building programs
- (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables
- that are compiled into the ncurses library. You should set the
- BUILD_CC environment variable to your host's compiler, and run the
- configure script configuring for the cross-compiler.
-
- Note that all of the generated source-files which are part of ncurses
- will be made if you use
-
- make sources
-
- This would be useful in porting to an environment which has little
- support for the tools used to generate the sources, e.g., sed, awk and
- Bourne-shell.
-
-BUGS:
- Send any feedback to the ncurses mailing list at
- bug-ncurses@gnu.org. To subscribe send mail to
- bug-ncurses-request@gnu.org with body that reads:
- subscribe ncurses <your-email-address-here>
-
- The Hacker's Guide in the doc directory includes some guidelines
- on how to report bugs in ways that will get them fixed most quickly.
diff --git a/ncurses-5.3/MANIFEST b/ncurses-5.3/MANIFEST
deleted file mode 100644
index 869e3bd..0000000
--- a/ncurses-5.3/MANIFEST
+++ /dev/null
@@ -1,981 +0,0 @@
-./ANNOUNCE
-./Ada95/Makefile.in
-./Ada95/README
-./Ada95/TODO
-./Ada95/gen/Makefile.in
-./Ada95/gen/gen.c
-./Ada95/gen/html.m4
-./Ada95/gen/normal.m4
-./Ada95/gen/table.m4
-./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
-./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/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
-./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-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
-./Ada95/src/terminal_interface-curses.adb
-./Ada95/src/terminal_interface.ads
-./INSTALL
-./MANIFEST
-./Makefile.glibc
-./Makefile.in
-./Makefile.os2
-./NEWS
-./README
-./README.emx
-./README.glibc
-./TO-DO
-./aclocal.m4
-./announce.html.in
-./c++/Makefile.in
-./c++/NEWS
-./c++/PROBLEMS
-./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++/headers
-./c++/internal.h
-./c++/modules
-./config.guess
-./config.sub
-./configure
-./configure.in
-./convert_configure.pl
-./dist.mk
-./doc/hackguide.doc
-./doc/html/Ada95.html
-./doc/html/ada/files.htm
-./doc/html/ada/files/T.htm
-./doc/html/ada/funcs.htm
-./doc/html/ada/funcs/A.htm
-./doc/html/ada/funcs/B.htm
-./doc/html/ada/funcs/C.htm
-./doc/html/ada/funcs/D.htm
-./doc/html/ada/funcs/E.htm
-./doc/html/ada/funcs/F.htm
-./doc/html/ada/funcs/G.htm
-./doc/html/ada/funcs/H.htm
-./doc/html/ada/funcs/I.htm
-./doc/html/ada/funcs/K.htm
-./doc/html/ada/funcs/L.htm
-./doc/html/ada/funcs/M.htm
-./doc/html/ada/funcs/N.htm
-./doc/html/ada/funcs/O.htm
-./doc/html/ada/funcs/P.htm
-./doc/html/ada/funcs/Q.htm
-./doc/html/ada/funcs/R.htm
-./doc/html/ada/funcs/S.htm
-./doc/html/ada/funcs/T.htm
-./doc/html/ada/funcs/U.htm
-./doc/html/ada/funcs/V.htm
-./doc/html/ada/funcs/W.htm
-./doc/html/ada/index.htm
-./doc/html/ada/main.htm
-./doc/html/ada/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
-./doc/html/ada/terminal_interface-curses-putwin__ads.htm
-./doc/html/ada/terminal_interface-curses-termcap__adb.htm
-./doc/html/ada/terminal_interface-curses-termcap__ads.htm
-./doc/html/ada/terminal_interface-curses-terminfo__adb.htm
-./doc/html/ada/terminal_interface-curses-terminfo__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
-./doc/html/ada/terminal_interface-curses-text_io__adb.htm
-./doc/html/ada/terminal_interface-curses-text_io__ads.htm
-./doc/html/ada/terminal_interface-curses-trace__adb.htm
-./doc/html/ada/terminal_interface-curses-trace__ads.htm
-./doc/html/ada/terminal_interface-curses__adb.htm
-./doc/html/ada/terminal_interface-curses__ads.htm
-./doc/html/ada/terminal_interface__ads.htm
-./doc/html/announce.html
-./doc/html/hackguide.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_addwstr.3x.html
-./doc/html/man/curs_attr.3x.html
-./doc/html/man/curs_beep.3x.html
-./doc/html/man/curs_bkgd.3x.html
-./doc/html/man/curs_bkgrnd.3x.html
-./doc/html/man/curs_border.3x.html
-./doc/html/man/curs_border_set.3x.html
-./doc/html/man/curs_clear.3x.html
-./doc/html/man/curs_color.3x.html
-./doc/html/man/curs_delch.3x.html
-./doc/html/man/curs_deleteln.3x.html
-./doc/html/man/curs_extend.3x.html
-./doc/html/man/curs_get_wch.3x.html
-./doc/html/man/curs_get_wstr.3x.html
-./doc/html/man/curs_getcchar.3x.html
-./doc/html/man/curs_getch.3x.html
-./doc/html/man/curs_getstr.3x.html
-./doc/html/man/curs_getyx.3x.html
-./doc/html/man/curs_in_wch.3x.html
-./doc/html/man/curs_in_wchstr.3x.html
-./doc/html/man/curs_inch.3x.html
-./doc/html/man/curs_inchstr.3x.html
-./doc/html/man/curs_initscr.3x.html
-./doc/html/man/curs_inopts.3x.html
-./doc/html/man/curs_ins_wch.3x.html
-./doc/html/man/curs_ins_wstr.3x.html
-./doc/html/man/curs_insch.3x.html
-./doc/html/man/curs_insstr.3x.html
-./doc/html/man/curs_instr.3x.html
-./doc/html/man/curs_inwstr.3x.html
-./doc/html/man/curs_kernel.3x.html
-./doc/html/man/curs_mouse.3x.html
-./doc/html/man/curs_move.3x.html
-./doc/html/man/curs_outopts.3x.html
-./doc/html/man/curs_overlay.3x.html
-./doc/html/man/curs_pad.3x.html
-./doc/html/man/curs_print.3x.html
-./doc/html/man/curs_printw.3x.html
-./doc/html/man/curs_refresh.3x.html
-./doc/html/man/curs_scanw.3x.html
-./doc/html/man/curs_scr_dump.3x.html
-./doc/html/man/curs_scroll.3x.html
-./doc/html/man/curs_slk.3x.html
-./doc/html/man/curs_termattrs.3x.html
-./doc/html/man/curs_termcap.3x.html
-./doc/html/man/curs_terminfo.3x.html
-./doc/html/man/curs_touch.3x.html
-./doc/html/man/curs_trace.3x.html
-./doc/html/man/curs_util.3x.html
-./doc/html/man/curs_window.3x.html
-./doc/html/man/default_colors.3x.html
-./doc/html/man/define_key.3x.html
-./doc/html/man/form.3x.html
-./doc/html/man/form_cursor.3x.html
-./doc/html/man/form_data.3x.html
-./doc/html/man/form_driver.3x.html
-./doc/html/man/form_field.3x.html
-./doc/html/man/form_field_attributes.3x.html
-./doc/html/man/form_field_buffer.3x.html
-./doc/html/man/form_field_info.3x.html
-./doc/html/man/form_field_just.3x.html
-./doc/html/man/form_field_new.3x.html
-./doc/html/man/form_field_opts.3x.html
-./doc/html/man/form_field_userptr.3x.html
-./doc/html/man/form_field_validation.3x.html
-./doc/html/man/form_fieldtype.3x.html
-./doc/html/man/form_hook.3x.html
-./doc/html/man/form_new.3x.html
-./doc/html/man/form_new_page.3x.html
-./doc/html/man/form_opts.3x.html
-./doc/html/man/form_page.3x.html
-./doc/html/man/form_post.3x.html
-./doc/html/man/form_requestname.3x.html
-./doc/html/man/form_userptr.3x.html
-./doc/html/man/form_win.3x.html
-./doc/html/man/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/headers
-./form/llib-lform
-./form/llib-lformw
-./form/modules
-./include/Caps
-./include/Caps.aix4
-./include/Caps.hpux11
-./include/Caps.keys
-./include/Caps.osf1r5
-./include/Caps.uwin
-./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/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/ncurses_dll.h
-./include/term_entry.h
-./include/termcap.h.in
-./include/tic.h
-./include/unctrl.h.in
-./install-sh
-./man/MKterminfo.sh
-./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_addwstr.3x
-./man/curs_attr.3x
-./man/curs_beep.3x
-./man/curs_bkgd.3x
-./man/curs_bkgrnd.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_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_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_ins_wch.3x
-./man/curs_ins_wstr.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_outopts.3x
-./man/curs_overlay.3x
-./man/curs_pad.3x
-./man/curs_print.3x
-./man/curs_printw.3x
-./man/curs_refresh.3x
-./man/curs_scanw.3x
-./man/curs_scr_dump.3x
-./man/curs_scroll.3x
-./man/curs_slk.3x
-./man/curs_termattrs.3x
-./man/curs_termcap.3x
-./man/curs_terminfo.3x
-./man/curs_touch.3x
-./man/curs_trace.3x
-./man/curs_util.3x
-./man/curs_window.3x
-./man/default_colors.3x
-./man/define_key.3x
-./man/form.3x
-./man/form_cursor.3x
-./man/form_data.3x
-./man/form_driver.3x
-./man/form_field.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_opts.3x
-./man/form_field_userptr.3x
-./man/form_field_validation.3x
-./man/form_fieldtype.3x
-./man/form_hook.3x
-./man/form_new.3x
-./man/form_new_page.3x
-./man/form_opts.3x
-./man/form_page.3x
-./man/form_post.3x
-./man/form_requestname.3x
-./man/form_userptr.3x
-./man/form_win.3x
-./man/infocmp.1m
-./man/infotocap.1m
-./man/keybound.3x
-./man/keyok.3x
-./man/make_sed.sh
-./man/man_db.renames
-./man/manlinks.sed
-./man/menu.3x
-./man/menu_attributes.3x
-./man/menu_cursor.3x
-./man/menu_driver.3x
-./man/menu_format.3x
-./man/menu_hook.3x
-./man/menu_items.3x
-./man/menu_mark.3x
-./man/menu_new.3x
-./man/menu_opts.3x
-./man/menu_pattern.3x
-./man/menu_post.3x
-./man/menu_requestname.3x
-./man/menu_spacing.3x
-./man/menu_userptr.3x
-./man/menu_win.3x
-./man/mitem_current.3x
-./man/mitem_name.3x
-./man/mitem_new.3x
-./man/mitem_opts.3x
-./man/mitem_userptr.3x
-./man/mitem_value.3x
-./man/mitem_visible.3x
-./man/ncurses.3x
-./man/panel.3x
-./man/resizeterm.3x
-./man/term.5
-./man/term.7
-./man/terminfo.head
-./man/terminfo.tail
-./man/tic.1m
-./man/toe.1m
-./man/tput.1
-./man/tset.1
-./man/wresize.3x
-./menu/Makefile.in
-./menu/READ.ME
-./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_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
-./menu/modules
-./misc/Makefile.in
-./misc/chkdef.cmd
-./misc/cleantic.cmd
-./misc/cmpdef.cmd
-./misc/emx.src
-./misc/form.def
-./misc/form.ref
-./misc/indent.pro
-./misc/makedef.cmd
-./misc/makellib
-./misc/menu.def
-./misc/menu.ref
-./misc/ncurses.def
-./misc/ncurses.ref
-./misc/panel.def
-./misc/panel.ref
-./misc/run_tic.in
-./misc/shlib
-./misc/tabset/std
-./misc/tabset/stdcrt
-./misc/tabset/vt100
-./misc/tabset/vt300
-./misc/tdlint
-./misc/terminfo.src
-./mk-0th.awk
-./mk-1st.awk
-./mk-2nd.awk
-./mkinstalldirs
-./ncurses/Makefile.in
-./ncurses/README
-./ncurses/README.IZ
-./ncurses/SigAction.h
-./ncurses/base/MKkeyname.awk
-./ncurses/base/MKlib_gen.sh
-./ncurses/base/MKunctrl.awk
-./ncurses/base/README
-./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
-./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/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/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/README
-./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
-./ncurses/trace/visbuf.c
-./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
-./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/llib-lpanelw
-./panel/modules
-./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/capconvert
-./progs/clear.c
-./progs/clear.sh
-./progs/dump_entry.c
-./progs/dump_entry.h
-./progs/infocmp.c
-./progs/modules
-./progs/progs.priv.h
-./progs/tic.c
-./progs/toe.c
-./progs/tput.c
-./progs/tset.c
-./sysdeps/unix/sysv/linux/Makefile
-./sysdeps/unix/sysv/linux/alpha/configure
-./sysdeps/unix/sysv/linux/configure
-./sysdeps/unix/sysv/linux/edit_man.sed
-./sysdeps/unix/sysv/linux/edit_man.sh
-./sysdeps/unix/sysv/linux/run_tic.sh
-./tack/COPYING
-./tack/HISTORY
-./tack/Makefile.in
-./tack/README
-./tack/ansi.c
-./tack/charset.c
-./tack/color.c
-./tack/control.c
-./tack/crum.c
-./tack/edit.c
-./tack/fun.c
-./tack/init.c
-./tack/menu.c
-./tack/modes.c
-./tack/modules
-./tack/output.c
-./tack/pad.c
-./tack/scan.c
-./tack/sync.c
-./tack/sysdep.c
-./tack/tack.1
-./tack/tack.c
-./tack/tack.h
-./tar-copy.sh
-./test/Makefile.in
-./test/README
-./test/blue.c
-./test/bs.6
-./test/bs.c
-./test/cardfile.c
-./test/cardfile.dat
-./test/configure
-./test/configure.in
-./test/ditto.c
-./test/dots.c
-./test/filter.c
-./test/firework.c
-./test/firstlast.c
-./test/gdc.6
-./test/gdc.c
-./test/hanoi.c
-./test/hashtest.c
-./test/keynames.c
-./test/knight.c
-./test/lrtest.c
-./test/modules
-./test/ncurses.c
-./test/ncurses_tst.hin
-./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
diff --git a/ncurses-5.3/Makefile.glibc b/ncurses-5.3/Makefile.glibc
deleted file mode 100644
index 2535e9f..0000000
--- a/ncurses-5.3/Makefile.glibc
+++ /dev/null
@@ -1,405 +0,0 @@
-# Copyright (C) 1997,1998 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-
-# You should have received a copy of the GNU Library General Public
-# License along with the GNU C Library; see the file COPYING.LIB. If not,
-# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-#
-# Makefile for ncurses part.
-#
-subdir := ncurses
-
-ncurses-version = 4.2
-form-version = $(ncurses-version)
-menu-version = $(ncurses-version)
-panel-version = $(ncurses-version)
-
-extras := form menu ncurses panel
-
-extra-libs = $(extras:%=lib%)
-# These libraries will be built in the `others' pass rather than
-# the `lib' pass, because they depend on libc.so being built already.
-extra-libs-others = $(extra-libs)
-
-# The sources are found in the appropriate subdir.
-subdir-dirs = $(extras) progs test
-vpath %.c $(subdir-dirs)
-vpath %.h $(subdir-dirs)
-
-libform-routines = \
- fld_arg \
- fld_attr \
- fld_current \
- fld_def \
- fld_dup \
- fld_ftchoice \
- fld_ftlink \
- fld_info \
- fld_just \
- fld_link \
- fld_max \
- fld_move \
- fld_newftyp \
- fld_opts \
- fld_pad \
- fld_page \
- fld_stat \
- fld_type \
- fld_user \
- frm_cursor \
- frm_data \
- frm_def \
- frm_driver \
- frm_hook \
- frm_opts \
- frm_page \
- frm_post \
- frm_req_name \
- frm_scale \
- frm_sub \
- frm_user \
- frm_win \
- fty_alnum \
- fty_alpha \
- fty_enum \
- fty_int \
- fty_ipv4 \
- fty_num \
- fty_regex
-
-libncurses-routines = \
- base/define_key \
- base/keybound \
- base/keyok \
- base/lib_addch \
- base/lib_addstr \
- base/lib_beep \
- base/lib_bkgd \
- base/lib_box \
- base/lib_chgat \
- base/lib_clear \
- base/lib_clearok \
- base/lib_clrbot \
- base/lib_clreol \
- base/lib_color \
- base/lib_colorset \
- base/lib_delch \
- base/lib_delwin \
- base/lib_dft_fgbg \
- base/lib_echo \
- base/lib_endwin \
- base/lib_erase \
- base/lib_flash \
- base/lib_freeall \
- base/lib_getch \
- base/lib_getstr \
- base/lib_hline \
- base/lib_immedok \
- base/lib_inchstr \
- base/lib_initscr \
- base/lib_insch \
- base/lib_insdel \
- base/lib_insstr \
- base/lib_instr \
- base/lib_isendwin \
- base/lib_leaveok \
- base/lib_mouse \
- base/lib_move \
- base/lib_mvwin \
- base/lib_newterm \
- base/lib_newwin \
- base/lib_nl \
- base/lib_overlay \
- base/lib_pad \
- base/lib_printw \
- base/lib_redrawln \
- base/lib_refresh \
- base/lib_restart \
- base/lib_scanw \
- base/lib_screen \
- base/lib_scroll \
- base/lib_scrollok \
- base/lib_scrreg \
- base/lib_set_term \
- base/lib_slk \
- base/lib_slkatr_set \
- base/lib_slkatrof \
- base/lib_slkatron \
- base/lib_slkatrset \
- base/lib_slkattr \
- base/lib_slkclear \
- base/lib_slkcolor \
- base/lib_slkinit \
- base/lib_slklab \
- base/lib_slkrefr \
- base/lib_slkset \
- base/lib_slktouch \
- base/lib_touch \
- base/lib_ungetch \
- base/lib_vline \
- base/lib_wattroff \
- base/lib_wattron \
- base/lib_winch \
- base/lib_window \
- base/memmove \
- base/nc_panel \
- base/resizeterm \
- base/safe_sprintf \
- base/sigaction \
- base/tries \
- base/version \
- base/vsscanf \
- base/wresize \
- codes \
- comp_captab \
- expanded \
- fallback \
- lib_gen \
- lib_keyname \
- names \
- tinfo/access \
- tinfo/add_tries \
- tinfo/alloc_entry \
- tinfo/alloc_ttype \
- tinfo/captoinfo \
- tinfo/comp_error \
- tinfo/comp_expand \
- tinfo/comp_hash \
- tinfo/comp_parse \
- tinfo/comp_scan \
- tinfo/doalloc \
- tinfo/free_ttype \
- tinfo/getenv_num \
- tinfo/home_terminfo \
- tinfo/init_keytry \
- tinfo/lib_acs \
- tinfo/lib_baudrate \
- tinfo/lib_cur_term \
- tinfo/lib_data \
- tinfo/lib_has_cap \
- tinfo/lib_kernel \
- tinfo/lib_longname \
- tinfo/lib_napms \
- tinfo/lib_options \
- tinfo/lib_print \
- tinfo/lib_raw \
- tinfo/lib_setup \
- tinfo/lib_termcap \
- tinfo/lib_termname \
- tinfo/lib_tgoto \
- tinfo/lib_ti \
- tinfo/lib_tparm \
- tinfo/lib_tputs \
- tinfo/lib_ttyflags \
- tinfo/name_match \
- tinfo/parse_entry \
- tinfo/read_entry \
- tinfo/read_termcap \
- tinfo/setbuf \
- tinfo/strings \
- tinfo/write_entry \
- trace/lib_trace \
- trace/lib_traceatr \
- trace/lib_tracebits \
- trace/lib_tracechr \
- trace/lib_tracedmp \
- trace/lib_tracemse \
- trace/trace_buf \
- trace/trace_tries \
- trace/trace_xnames \
- trace/varargs \
- trace/visbuf \
- tty/hardscroll \
- tty/hashmap \
- tty/lib_mvcur \
- tty/lib_tstp \
- tty/lib_twait \
- tty/lib_vidattr \
- tty/tty_update \
- unctrl
-
-libmenu-routines = \
- m_attribs \
- m_cursor \
- m_driver \
- m_format \
- m_global \
- m_hook \
- m_item_cur \
- m_item_nam \
- m_item_new \
- m_item_opt \
- m_item_top \
- m_item_use \
- m_item_val \
- m_item_vis \
- m_items \
- m_new \
- m_opts \
- m_pad \
- m_pattern \
- m_post \
- m_req_name \
- m_scale \
- m_spacing \
- m_sub \
- m_userptr \
- m_win
-
-libpanel-routines = \
- panel \
- p_above \
- p_below \
- p_bottom \
- p_delete \
- p_hide \
- p_hidden \
- p_move \
- p_new \
- p_replace \
- p_show \
- p_top \
- p_update \
- p_user \
- p_win
-
-headers = curses.h eti.h form.h menu.h panel.h term.h termcap.h \
- unctrl.h
-others = clear infocmp tic toe tput tset
-install-bin = $(others)
-
-clear-objs = clear.o
-infocmp-objs = infocmp.o dump_entry.o
-tic-objs = tic.o dump_entry.o
-toe-objs = toe.o dump_entry.o
-tput-objs = tput.o
-tset-objs = tset.o dump_entry.o
-extra-objs = $(tic-objs) $(toe-objs) $(infocmp-objs) $(clear-objs) \
- $(tput-objs) $(tset-objs)
-
-test-srcs = blue bs cardfile ditto firework firstlast gdc hanoi hashtest knight \
- lrtest ncurses newdemo rain tclock testaddch testcurs \
- testscanw view worm xmas
-
-include ../Rules
-
-ifndef tabsetdir
-tabsetdir = $(datadir)/tabset
-endif
-ifndef inst_tabsetdir
-inst_tabsetdir = $(install_root)/$(tabsetdir)
-endif
-
-ifndef terminfodir
-terminfodir = $(datadir)/terminfo
-endif
-ifndef inst_terminfodir
-inst_terminfodir = $(install_root)/$(terminfodir)
-endif
-
-ifndef mandir
-mandir = $(prefix)/man
-endif
-
-ifndef inst_mandir
-inst_mandir = $(install_root)/$(mandir)
-endif
-
-CPPFLAGS += -DTERMINFO='"$(terminfodir)"' -Iinclude -Iform -Incurses \
- -Imenu -Ipanel -Iprogs -Itest
-
-ifneq ($(strip $(objpfx)),)
-CPPFLAGS += -I$(objpfx)
-endif
-
-LDLIBS-tclock = math/libm
-
-tests: $(test-srcs:%=$(objpfx)%)
-
-$(objpfx)clear: $(addprefix $(objpfx),$(clear-objs))
-$(objpfx)infocmp: $(addprefix $(objpfx),$(infocmp-objs))
-$(objpfx)tic: $(addprefix $(objpfx),$(tic-objs))
-$(objpfx)toe: $(addprefix $(objpfx),$(toe-objs))
-$(objpfx)tput: $(addprefix $(objpfx),$(tput-objs))
-$(objpfx)tset: $(addprefix $(objpfx),$(tset-objs))
-
-ifeq ($(build-shared),yes)
-$(others:%=$(objpfx)%): $(objpfx)libncurses.so
-else
-$(others:%=$(objpfx)%): $(objpfx)libncurses.a
-endif
-
-$(test-srcs:%=$(objpfx)%): $(objpfx)libform.a $(objpfx)libmenu.a \
- $(objpfx)libpanel.a $(objpfx)libncurses.a
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(extras:%=$(objpfx)lib%.so): $(common-objpfx)libc.so
-
-subdir_install: $(inst_libdir)/libtermcap.a $(inst_libdir)/libcurses.a \
- $(inst_bindir)/reset $(inst_bindir)/captoinfo
-
-$(inst_libdir)/libtermcap.a $(inst_libdir)/libcurses.a: \
- $(inst_libdir)/libncurses.a
- $(make-link)
-
-$(inst_bindir)/reset: $(inst_bindir)/tset
- $(make-link)
-
-$(inst_bindir)/captoinfo: $(inst_bindir)/tic
- $(make-link)
-
-ifeq (yes,$(build-shared))
-subdir_install: $(inst_libdir)/libtermcap.so $(inst_libdir)/libcurses.so
-
-$(inst_libdir)/libtermcap.so $(inst_libdir)/libcurses.so: \
- $(inst_libdir)/libncurses.so
- $(make-link)
-endif
-
-subdir_install: $(inst_mandir)/man5/terminfo.5
-
-$(inst_mandir)/man5/terminfo.5: $(objpfx)terminfo.5 $(wildcard man/*.[0-9]*)
- $(make-target-directory)
- sh $(edit_man-sh) $(prefix) $(inst_mandir) $(edit_man-sed) $^
-
-subdir_install: $(inst_tabsetdir)/std
-
-$(inst_tabsetdir)/std: \
- $(filter-out misc/tabset/CVS, $(wildcard misc/tabset/*))
- $(make-target-directory)
- for f in $^; do \
- echo installing $$f; \
- $(INSTALL_DATA) $$f $(inst_tabsetdir); \
- done
-
-
-ifeq (no,$(cross-compiling))
-subdir_install: $(inst_terminfodir)/v/vt100
-
-$(inst_terminfodir)/v/vt100: misc/terminfo.src $(objpfx)tic
- $(make-target-directory)
- sh $(run_tic-sh) $(common-objpfx) misc $(terminfodir) \
- $(install_root)
-endif
-
-subdir_distclean subdir_realclean:
- -rm -f $(addprefix $(objpfx), MKterm.h.awk codes.c \
- comp_captab.c confdefs.h config.log curses.h \
- expanded.c fallback.c hashsize.h keys.tries \
- lib_gen.c lib_keyname.c names.c ncurses_cfg.h \
- nomacros.h parametrized.h term.h termcap.h \
- terminfo.5 termsort.c unctrl.c unctrl.h)
diff --git a/ncurses-5.3/Makefile.in b/ncurses-5.3/Makefile.in
deleted file mode 100644
index bde27bf..0000000
--- a/ncurses-5.3/Makefile.in
+++ /dev/null
@@ -1,93 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Master Makefile for ncurses library.
-
-SHELL = /bin/sh
-
-DESTDIR=@DESTDIR@
-CF_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)"
-
-@SET_MAKE@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-NCURSES_PATCH = @NCURSES_PATCH@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-ticdir = @TERMINFO@
-includedir = @includedir@
-libdir = @libdir@
-mandir = @mandir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-DIRS_TO_MAKE = @DIRS_TO_MAKE@
-
-all :: $(DIRS_TO_MAKE)
-
-$(DIRS_TO_MAKE) :
- mkdir $@
-
-preinstall :
- @ echo ''
- @ echo '** Configuration summary for NCURSES $(NCURSES_MAJOR).$(NCURSES_MINOR) $(NCURSES_PATCH):'
- @ echo ''
- @ echo ' bin directory: '$(bindir)
- @ echo ' lib directory: '$(libdir)
- @ echo ' include directory: '$(includedir)
- @ echo ' man directory: '$(mandir)
-@MAKE_TERMINFO@ @ echo ' terminfo directory: '$(ticdir)
- @ echo ''
- @ test "$(includedir)" = "$(prefix)/include" || \
- echo '** Include-directory is not in a standard location'
- @ test ! -f $(includedir)/termcap.h || \
- fgrep NCURSES_VERSION $(includedir)/termcap.h >/dev/null || \
- echo '** Will overwrite non-ncurses termcap.h'
- @ test ! -f $(includedir)/curses.h || \
- fgrep NCURSES_VERSION $(includedir)/curses.h >/dev/null || \
- echo '** Will overwrite non-ncurses curses.h'
-
-# Put the common rules here so that we can easily construct the list of
-# directories to visit.
-all \
-clean \
-distclean \
-mostlyclean \
-realclean \
-depend \
-sources \
-uninstall \
-install ::
diff --git a/ncurses-5.3/Makefile.os2 b/ncurses-5.3/Makefile.os2
deleted file mode 100644
index ed0f68a..0000000
--- a/ncurses-5.3/Makefile.os2
+++ /dev/null
@@ -1,234 +0,0 @@
-################################################################################
-# Wrapper Makefile for ncurses library under OS/2.
-################################################################################
-# $Id$
-#
-# Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
-# Webpage: http://www.arrakis.es/~worm/
-################################################################################
-#
-# Notes (from I Zakharevich)
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~
-# I could build the library with the following sequence of commands:
-#
-# touch Makefile
-# make -f Makefile.os2 config
-# make -f Makefile.os2 CC=gcc HOSTCC=gcc CXX=gcc
-#
-# Ignoring the following errors:
-# Invalid configuration `os2'...
-# ... ac_maketemp="make": not found
-# ... syntax error: `done' unexpected
-# No rule to make target `lib/ncurses4.dll'
-#
-# You may need to run
-#
-# rm make.defs
-# make -f Makefile.os2 make.defs
-#
-# if the build of misc/panel.def fails.
-#
-# If you do not have perl, the configuration will fail. Use autoconf to
-# generate the EMX-specific configure script (see README.emx), and run the
-# configure script to generate the makefiles. Then, run
-#
-# make -f Makefile.os2 make.dlls
-#
-# Notes (from J J G Ripoll)
-# ~~~~~~~~~~~~~~~~~~~~~~~~~
-# The `make.defs' rule creates the new '.def' files and outputs a diagnostic
-# about symbols that disappear from one release to the other, as well as
-# checks about the new '.def' consistency. If there were no problems, the
-# maintainer is free to replace the `.ref' files with the newer ones using the
-# `save.defs' rule. So, the only tough work is ensuring that the symbols that
-# disappear are not essential.
-#
-# I first thought about killing '_nc_*' symbols, but it seems that some of
-# them --_nc_panel_hook, _nc_ada*, etc-- are needed outside ncurses.dll.
-# However, the whole size of the export table will not be larger than 1k or
-# so.
-#
-# [installation]
-#
-# The way things are handled in misc/Makefile is not well suited for OS/2,
-# where only emx.src is needed. Thus, I've written a few wrapper rules in
-# Makefile.os2 that handle installation/deinstallation.
-#
-# [distribution]
-#
-# There's also a new rule that configures and builds a sort of binary
-# distribution, much like the one I prepared for 1.9.9e. It's `os2dist'.
-#
-################################################################################
-
-all :: config
-
-# This is for configuring
-
-# What is a useful value for this?
-CONFIG_OPTS = --enable-termcap
-WWWGET = lynx -source
-MV_F = mv -f
-DLL_LN_OPTS = -Zcrtdll -Zdll -Zomf -Zmt
-
-config: config.cache
-
-config.cache: configure.cmd configure
- -$(MV_F) $@ $@.ref
- configure.cmd $(CONFIG_OPTS)
-
-configure.cmd: configure convert_configure.pl
- perl convert_configure.pl configure > $@
-
-convert_configure.pl:
- $(WWWGET) ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/$@ > $@
-
-install ::
- echo ***
- echo *** Do not use this command. Use install.os2 instead.
- echo ***
- exit 2
-
-install.os2 : install.emxdata install.libs install.progs
-
-include ./Makefile
-
-all :: make.dlls
-
-#
-# DLLs and that stuff
-#
-
-LIBRARIES = ncurses form menu panel
-
-DLL_TAG = $(NCURSES_MAJOR)
-LIB_TAG = _s
-
-DLL_ROOTS = $(addsuffix $(DLL_TAG), $(LIBRARIES))
-DLLS = $(addsuffix .dll, $(addprefix ./lib/, $(DLL_ROOTS)))
-
-LIB_ROOTS = $(addsuffix $(LIB_TAG), $(LIBRARIES))
-LIBS = $(addsuffix .lib, $(addprefix ./lib/, $(LIB_ROOTS)))
-
-LIBS_AOUT = $(addsuffix .a, $(addprefix ./lib/, $(LIB_ROOTS)))
-
-DEFS = $(addsuffix .def, $(addprefix ./misc/, $(LIBRARIES)))
-
-DLL_SIGNATURE = NCurses-$(NCURSES_MAJOR)-$(NCURSES_MINOR)-$(NCURSES_PATCH)
-
-./lib/%$(LIB_TAG).lib : ./misc/%.def
- emximp -o $@ $<
-
-./lib/%$(LIB_TAG).a : ./misc/%.def
- emximp -o $@ $<
-
-./lib/%$(DLL_TAG).dll : ./lib/%.a
- emxomf -o ./lib/$*$(DLL_TAG).lib $<
- if [ "$*" = "ncurses" ]; then \
- gcc $(LDFLAGS) $(DLL_LN_OPTS) ./lib/$*$(DLL_TAG).lib \
- ./misc/$*.def -o $@; \
- else \
- gcc $(LDFLAGS) $(DLL_LN_OPTS) ./lib/$*$(DLL_TAG).lib \
- ./lib/ncurses$(LIB_TAG).lib ./misc/$*.def -o $@; \
- fi
- -rm -f ./lib/$*$(DLL_TAG).lib
-
-make.dlls : $(DEFS) $(LIBS) $(DLLS) $(LIBS_AOUT)
-
-$(DEFS) : make.defs
-
-LIBDIR = $(DESTDIR)$(libdir)
-$(LIBDIR) :
- mkdir -p $@
-
-install.libs :: $(LIBS) $(DLLS) $(LIBDIR)
- @for i in $(DLL_ROOTS); do \
- echo installing ./lib/$$i.dll as $(LIBDIR)/$$i.dll; \
- $(INSTALL_DATA) ./lib/$$i.dll $(LIBDIR)/$$i.dll; done
- @for i in $(LIB_ROOTS); do \
- echo installing ./lib/$$i.lib as $(LIBDIR)/$$i.lib; \
- $(INSTALL_DATA) ./lib/$$i.lib $(LIBDIR)/$$i.lib; done
-
-uninstall.libs ::
- -@for i in $(DLL_ROOTS); do \
- echo uninstalling $(LIBDIR)/$$i.dll; \
- rm -f $(LIBDIR)/$$i.dll; done
- -@for i in $(LIB_ROOTS); do \
- echo uninstalling $(LIBDIR)/$$i.lib; \
- rm -f $(LIBDIR)/$$i.lib; done
-
-make.defs :
- for i in $(LIBRARIES); do \
- echo LIBRARY $${i}$(DLL_TAG) INITINSTANCE TERMINSTANCE > ./misc/$$i.def; \
- echo DESCRIPTION \"$(DLL_SIGNATURE), module $$i\" >> ./misc/$$i.def; \
- echo CODE LOADONCALL >> ./misc/$$i.def; \
- echo DATA LOADONCALL NONSHARED MULTIPLE >> ./misc/$$i.def; \
- echo EXPORTS >> ./misc/$$i.def; \
- echo Creating $$i.def; \
- (cmd /C ".\\misc\\makedef.cmd ./lib/$$i.a ./misc/$$i.ref >> ./misc/$$i.def" \
- && cmd /C ".\\misc\\chkdef.cmd ./misc/$$i.def") \
- || exit 1; \
- done
- touch make.defs
-
-save.defs :
- for i in $(LIBRARIES); do \
- test -f ./misc/$$i.def && cp ./misc/$$i.def ./misc/$$i.ref; \
- done
-
-clean \
-os2clean ::
- -rm -f $(DLLS) $(LIBS)
-
-realclean ::
- -rm -f $(addprefix ./misc/, $(addsuffix .def, $(LIBRARIES)))
-
-#
-# This is a simplified version of misc/Makefile
-#
-
-TICDIR = $(DESTDIR)$(datadir)/terminfo
-TABSETDIR = $(DESTDIR)$(datadir)/tabset
-
-$(TICDIR) :
- mkdir -p $@
-
-install \
-install.emxdata :: $(TICDIR)
- -@rm -fr $(TICDIR)/*
- echo Building terminfo database, please wait...
- set TERMINFO=$(TICDIR); ./progs/tic ./misc/emx.src
- echo Installing the terminfo cleaner and the sources...
- cp ./misc/emx.src ./misc/cleantic.cmd $(TICDIR)
- ./misc/cleantic.cmd $(TICDIR)
-
-uninstall \
-uninstall.emxdata ::
- -cd $(TICDIR) && rm -rf *
- -cd $(TABSETDIR) && rm -rf *
-
-#
-# This is for preparing binary distributions
-#
-
-OS2NAME=ncurses-$(NCURSES_MAJOR).$(NCURSES_MINOR)-emx
-
-#
-# FIXME: this assumes that we can rerun the configure script, changing only
-# the install-prefix. That means we cannot provide "interesting" options
-# when building.
-#
-os2dist :
- $(MAKE) -f Makefile.os2 os2clean
- ./configure --without-debug --with-install-prefix=`pwd|sed -e 's@^.:@@'`/$(OS2NAME)
- $(MAKE) -f Makefile.os2 $(CF_MFLAGS) install.os2
- -rm -f $(OS2NAME).zip
- echo NCurses-$(NCURSES_MAJOR).$(NCURSES_MINOR)-$(NCURSES_PATCH) for emx > $(OS2NAME)/FILE_ID.DIZ
- echo Binary release. >> $(OS2NAME)/FILE_ID.DIZ
- zip -r $(OS2NAME).zip ./$(OS2NAME)
-
-clean \
-os2clean ::
- -rm -rf $(OS2NAME)
- -rm -f $(OS2NAME).zip
-
diff --git a/ncurses-5.3/NEWS b/ncurses-5.3/NEWS
deleted file mode 100644
index 7908bf6..0000000
--- a/ncurses-5.3/NEWS
+++ /dev/null
@@ -1,5802 +0,0 @@
--- $Id$
-
-This is a log of changes that ncurses has gone through since Zeyd started
-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.
-
-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
- in html manpages.
- + fix an uninitialized pointer in read_termcap.c (report by Todd C
- Miller, from report/patch by Philip Guenther <guenther@gac.edu>).
- + correct help-message and array limit in knight.c (patch by Brian
- Raiter <breadbox@muppetlabs.com>).
- > patch by Juergen Pfeifer:
- + fix to avoid warning by GNAT-3.13p about use of inconsistent casing
- for some identifiers defined in the standard package.
- + cosmetic change to forms/fty_enum.c
-
-20001014
- + correct an off-by-one position in test/railroad.c which could cause
- wrapping at the right margin.
- + test/repair some issues with libtool configuration. Make
- --disable-echo force libtool --silent. (Libtool does not work for
- OS/2 EMX, works partly for SCO - libtool is still very specific to
- gcc).
- + change default of --with-manpage-tbl to "no", since for most of the
- platforms which do have tbl installed, the system "man" program
- understands how to run tbl automatically.
- + minor improvement to force_bar() in comp_parse.c (Bernhard
- Rosenkraenzer <bero@redhat.de>).
- + modify lib_tparm.c to use get_space() before writing terminating
- null character, both for consistency as well as to ensure that if
- save_char() was called immediately before, that the allocated memory
- is enough (patch by Sergei Ivanov).
- + add note about termcap ML capability which is duplicated between two
- different capabilities: smgl and smglr (reported by Sergei Ivanov
- <svivanov@pdmi.ras.ru>).
- + correct parameter counts in include/Caps for dclk as well as some
- printer-specific capabilities: csnm, defc, scs, scsd, smgtp, smglp.
- > patch by Johnny C Lam <lamj@stat.cmu.edu>:
- + add support for building with libtool (apparently version 1.3.5,
- since old versions do not handle -L../lib), using new configure
- option --with-libtool.
- + add configure option --with-manpage-tbl, which causes the manpages to
- be preprocessed by tbl(1) prior to installation,
- + add configure option --without-curses-h, which causes the
- installation process to install curses.h as ncurses.h and make
- appropriate changes to headers and manpages.
-
-20001009
- + correct order of options/parameters in run_tic.in invocation of tic,
- which did not work with standard getopt() (reported by Ethan
- Butterfield <primus@veris.org>).
- + correct logic for 'reverse' variable in lib_vidattr.c, which was
- setting it true without checking if newmode had A_REVERSE set, e.g.,
- using $TERM=ansi on OS/2 EMX (see 20000917).
- > patch by Todd Miller:
- + add a few missing use_terminfo_vars() and fixes up _nc_tgetent().
- Previously, _nc_cgetset() would still get called on cp so the
- simplest thing is to set cp to NULL if !use_terminfo_vars().
- + added checks for an empty $HOME environment variable.
- > patches by Ilya Zakharevich for OS/2 EMX:
- + modify convert_configure.pl to support INSTALL. Change compiler
- options in that script to use multithreading, needed for the mouse.
- + modify OS/2 mouse support, retrying as a 2-button mouse if code fails
- to set up a 3-button mouse.
- + improve code for OS/2 mouse support, using _nc_timed_wait() to
- replace select() call.
-
-20001007
- + change type of ospeed variable back to short to match its use in
- legacy applications (reported by Andrey A Chernov).
- + add case to configure script for --enable-rpath on IRIX (patch by
- Albert Chin-A-Young).
- + minor fix to position_check() function, to ensure it gets the whole
- cursor report before decoding.
- + add configure option --disable-assumed-color, to allow pre-5.1
- convention of default colors used for color-pair 0 to be configured
- (see assume_default_colors()).
- + rename configure option --enable-hashmap --disable-hashmap, and
- reorder the configure options, splitting the experimental and
- 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
- several people).
- + modified misc/run_tic.in to use tic -o, to eliminate dependency on
- $TERMINFO variable for installs.
- + add table entry for plab_norm to tput, so it passes in strings
- for that capability.
- + modify parse_format() in lib_tparm.c to ignore precision if it is
- 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>).
-
-20000930
- + modify several descriptions, including those 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. Fixes a problem where the generated termcap
- would contain a spurious "%p1" for the terminfo "%p1%d".
- + modify ld -rpath options (e.g., Linux, and Solaris) to use an
- absolute pathname for the build tree's lib directory (prompted by
- discussion with Albert Chin-A-Young).
- + modify "make install.man" and "make uninstall.man" to include tack's
- man-page.
- + various fixes for install scripts used to support configure --srcdir
- and --with-install-prefix (reported by Matthew Clarke
- <Matthew_Clarke@mindlink.bc.ca>).
- + 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
- (report/patch by Albert Chin-A-Young).
-
-20000923
- + modify rs2 capability in xterm-r6 and similar where cursor
- 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
- terminfo.src -TD
- + modify tic to verify that its inputs are really files, in case
- someone tries to read a directory (or /dev/zero).
- + 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 reported by Aaron Campbell <aaron@cs.dal.ca>).
- + add to railroad.c some code exercising tgoto(), providing an
- alternate form of display if the terminal supports cursor addressing.
- + split-out tgoto() again, this time into new file lib_tgoto.c, and
- implement a conventional BSD-style tgoto() which is used if the
- capability string does not contain terminfo-style padding or
- parameters (requested by Andrey A Chernov).
- + add check to tic which reports capabilities that do not reference
- 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
- way to solve the misconfiguration issue -TD
- + completed special case for tgoto from 20000916
-
-20000916
- + update xterm terminfo entries to match XFree86 xterm patch #146 -TD
- + add Matrix Orbital terminfo entries (from Eric Z Ayers
- <eric@ale.org>).
- + add special case to lib_tparm.c to allow 'screen' program to use a
- termcap-style parameter "%." to tgoto() for switching character sets.
- + use LN_S substitution in run_tic.in, to work on OS/2 EMX which has
- no symbolic links.
- + updated notes in README.emx regarding autoconf patches.
- + replace a lookup table in lib_vidattr.c used to decode no_color_video
- with a logic expression (suggested by Philippe Blain).
- + add a/A toggle to ncurses.c 'b' test, which clears/sets alternate
- character set attribute from the displayed text.
- + correct inequality in parameter analysis of rewritten lib_tparm.c
- 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:
- 20000902, reported by Albert Chin-A-Young).
-
-20000909
- + correct an uninitialized parameter to open_tempfile() in tic.c which
- made "tic -I" give an ambiguous error message about tmpnam.
- + add special case in lib_vidattr.c to reset underline and standout for
- devices that have no sgr0 defined (patch by Don Lewis
- <Don.Lewis@tsc.tdk.com>). Note that this will not work for bold
- mode, since there is no exit-bold-mode capability.
- + improved patch for Make_Enum_Type (patch by Juergen Pfeifer).
- + 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 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 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).
- + regen'd configure to pick up "hpux*" change from 20000902.
-
-20000902
- + modify tset.c to check for transformed "reset" program name, if any.
- + add a check for null pointer in Make_Enum_Type() (reported by Steven
- W Orr <steveo@world.std.com>).
- + change functions _nc_parse_entry() and postprocess_termcap() to avoid
- using strtok(), because it is non-reentrant (reported by Andrey A
- Chernov <ache@nagual.pp.ru>).
- + 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 (reported by Albert Chin-A-Young).
- + correct a dependency in Ada95/src/Makefile.in which prevented
- building with configure --srcdir (patch by H Nanosecond
- <aldomel@ix.netcom.com>).
- + modify ifdef's in curses.h.in to avoid warning if GCC_PRINTF or
- GCC_SCANF was not previously defined (reported by Pavel Roskin
- <proski@gnu.org>).
- + 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".
-
-20000826
- + add QNX qansi entries to terminfo -TD
- + add os2 entry to misc/emx.src (<jmcoopr@webmail.bmi.net>).
- + add configure option --with-database to allow specifying a different
- terminfo source-file to install. On OS/2 EMX, this defaults to
- misc/emx.src
- + change misc/run_tic.sh to derive it from misc/run_tic.in, to simplify
- setting .exe extension on OS/2 EMX.
- + add .exe extension in Ada95/gen/Makefile.in,
- Ada95/samples/Makefile.in, for OS/2 EMX (reported by
- <jmcoopr@webmail.bmi.net>).
- + 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.
- + 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 (report by Glenn Cooper
- <gcooper@qantas.com.au>, using Purify on Solaris 5.6).
- + change configure script to use AC_CANONICAL_SYSTEM rather than
- AC_CANONICAL_HOST, which means that configure --target will set
- a default program-prefix.
- + add note on cross-compiling to INSTALL (which does not rely on the
- AC_CANONICAL_* macros).
-
-20000819
- + add cases for EMX OS/2 to config.guess, config.sub
- + new version of config.guess, config.sub from lynx 2.8.4dev.7
- + add definitions via transform.h to allow tic and tput to check for
- the transformed aliases rather than the original infotocap, etc.
- + simplify transform-expressions in progs/Makefile.in, make the
- uninstall rule work for transformed program names.
- + change symbol used by --install-prefix configure option from
- INSTALL_PREFIX to DESTDIR (the latter has become common usage
- although the name is misleading).
- + 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.
-
-20000812
- + modify CF_MAN_PAGES configure macro to make transformed program names
- a parameter to that macro rather than embedding them in the macro.
- + newer config.guess, config.sub (reference version used in lynx
- 2.8.4dev.7).
- + add configure option --with-default-terminfo-dir=DIR to allow
- specifying the default terminfo database directory (request by Albert
- Chin-A-Young).
- + minor updates for terminfo.src from FreeBSD termcap change-history.
- + correct notes in README and INSTALL regarding documentation files
- that were moved from misc directory to doc (report by Rich Kulawiec
- <rsk@gsp.org>).
- + change most remaining unquoted parameters of 'test' in configure
- script to use quotes, for instance fixing a problem in the
- --disable-database option (reported by Christian Mondrup
- <scancm@biobase.dk>).
- + minor adjustments to work around some of the incompatibilities/bugs
- in autoconf 2.29a alpha.
- + add -I/usr/local/include when --with-ncurses option is used in
- test/configure script.
- + 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.
-
-20000730
- + correct a missing backslash in curses.priv.h
-
-20000729
- + 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 (reported by Ruediger Kuhlmann
- <uck4@rz.uni-karlsruhe.de>).
- + add/use new trace function to display chtype values from winch() and
- getbkgd().
- + add trace mask TRACE_ATTRS, alter several existing _tracef calls that
- trace attribute changes under TRACE_CALLS to use this.
- + modify MKlib_gen.sh so that functions returning chtype will call
- returnChar().
- + add returnChar() trace, for functions returning chtype.
- + change indent.pro to line up parenthesis.
-
-20000722
- + fix a heap problem with the c++ binding (report by
- <alexander_liberson@ninewest.com>, patch by Juergen Pfeifer).
- + minor adjustment to ClrToEOL() to handle an out-of-bounds parameter.
- + 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).
- > fixes based on diff's for Amiga and BeOS found at
- http://www.mathematik.uni-karlsruhe.de/~kuhlmann/cross/ncurses/
- + alter definition of NCURSES_CONST to make it non-empty.
- + add amiga-vnc terminfo entry.
- + redefine 'TEXT' in menu.h for AMIGA, since it is reported to have
- an (unspecified) symbol conflict.
- + 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.
- + modify configure test for tcgetattr() to allow for old
- implementations, e.g., on BeOS, which only defined it as a macro.
- > patches by Bruno Haible:
- + when checking LC_ALL/LC_CTYPE/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.
-
-20000715
- + correct manlinks.sed script to avoid using ERE "\+", which is not
- understood by older versions of sed (patch by Albert Chin-A-Young).
- + implement configure script options that transform installed program
- names, e.g., --program-prefix, including the manpage names and cross
- references (patch by Albert Chin-A-Young <china@thewrittenword.com>).
- + 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 (report by Todd C Miller).
- + 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 (reported by Igor Schein <igor@txc.com>).
- + 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).
-
-20000708 5.1 release for upload to ftp.gnu.org
- + document configure options in INSTALL.
- + add man-page for ncurses trace functions.
- + correct return value shown in curs_touch.3x for is_linetouched() and
- is_wintouched(), in curs_initscr.3x for isendwin(), and in
- curs_termattr.3x for has_ic() and has_il().
- + add prototypes for touchline() and touchwin(), adding them to the
- list of generated functions.
- + modify fifo_push() to put ERR into the fifo just like other values to
- return from wgetch(). It was returning without doing that, making
- end-of-file condition incorrectly return a 0 (reported by Todd C
- Miller).
- + uncomment CC_SHARED_OPTS for progs and tack (see 971115), since they
- are needed for SCO OpenServer.
- + move _nc_disable_period from free_ttype.c to comp_scan.c to appease
- dynamic loaders on SCO and IRIX64.
- + add "-a" option to test/ncurses.c to invoke assume_default_colors()
- for testing.
- + correct assignment in assume_default_colors() which tells ncurses
- whether to use default colors, or the assumed ones (reported by Gary
- Funck <gary@Intrepid.Com>).
- + review/correct logic in mk-1st.awk for making symbolic links for
- shared libraries, in particular for FreeBSD, etc.
- + regenerate misc/*.def files for OS/2 EMX dll's.
- + correct quoting of values for CC_SHARED_OPTS in aclocal.m4 for
- cases openbsd2*, openbsd*, freebsd* and netbsd* (patch by Peter
- Wemm) (err in 20000610).
- + minor updates to release notes, as well as adding/updating URLs for
- examples cited in announce.html
- > several fixes from Philippe Blain <philippe.blain2@freesbee.fr>:
- + correct placement of ifdef for NCURSES_XNAMES in function
- _nc_free_termtype(), fixes a memory leak.
- + add a call to _nc_synchook() to the end of function whline() like
- that in wvline() (difference was in 1.9.4).
- + make ClearScreen() a little faster by moving two instances of
- UpdateAttr() out of for-loops.
- + simplify ClrBottom() by eliminating the tstLine data, using for-loops
- (cf: 960428).
-
-20000701 pre-release
- + change minor version to 1, i.e., ncurses 5.1
- + add experimental configure option --enable-colorfgbg to check for
- $COLORTERM variable as set by rxvt/aterm/Eterm.
- + add Eterm terminfo entry (Michael Jennings <mej@valinux.com>).
- + modify manlinks.sed to pick aliases from the SYNOPSIS section, and
- several manpages so manlinks.sed can find aliases for creating
- symbolic links.
- + add explanation to run_tic.sh regarding extended terminal
- capabilities.
- + change message format for edit_cfg.sh, since some people interpret
- it as a warning.
- + correct unescaped '$' in sysv5uw7*|unix_sv* rule for CF_SHARED_OPTS
- configure macro (report by Thanh Ma <Thanh.Ma@casi-rusco.com>).
- + correct logic in lib_twait.c as used by lib_mouse.c for GPM mouse
- support when poll() is used rather than select() (prompted by
- discussion with David Allen <DAllen24@aol.com>).
-
-20000624 pre-release
- + modify TransformLine() to check for cells with different color pairs
- that happen to render the same display colors.
- + apply $NCURSES_NO_PADDING to cost-computation in mvcur().
- + improve cost computation in PutRange() by accounting for the use
- of parm_right_cursor in mvcur().
- + correct cost computation in EmitRange(), which was not using the
- normalized value for cursor_address.
- + newer config.guess, config.sub (reference version used in TIN 1.5.6).
-
-20000617
- + update config.guess, config.sub (reference version used in PCRE 3.2).
- + resync changes to gnathtml against version 1.22, regenerated html
- files under doc/html/ada using this (1.22.1.1).
- + regenerated html files under doc/html/man after correcting top and
- bottom margin options for man2html in dist.mk
- + minor fixes to test programs ncurses 'i' and testcurs program to make
- the subwindow's background color cover the subwindow.
- + modify configure script so AC_MSG_ERROR is temporarily defined to a
- warning in AC_PROG_CXX to make it recover from a missing C++ compiler
- without requiring user to add --without-cxx option (from comment by
- Akim Demaille <akim@epita.fr> to autoconf mailing list).
- + modify headers.sh to avoid creating temporary files in the build
- directory when installing headers (reported by Sergei Pokrovsky
- <pok@nbsp.nsk.su>)
-
-20000610
- + regenerated the html files under doc/html/ada/files and
- doc/html/ada/funcs with a slightly-improved gnathtml.
- + add kmous capability to linux terminfo entry to allow it to use
- xterm-style events provided by gpm patch by Joerg Schoen.
- + make the configure macro CF_SHARED_OPTS a little smarter by testing
- if -fPIC is supported by gcc rather than -fpic. The former option
- allows larger symbol tables.
- + update config.guess and config.sub (patches by
- Kevin Buettner <kev@primenet.com> for elf64_ia64
- Bernd Kuemmerlen <bkuemmer@mevis.de> and MacOS X).
- + add warning for 'tic -cv' about use of '^?' in terminfo source, which
- is an extension.
-
-20000527
- + modify echo() behavior of getch() to match Solaris curses for
- carriage return and backspace (reported by Neil Zanella).
- + change _nc_flush() to a function.
- + modify delscreen() to check if the output stream has been closed, and
- if so, free the buffer allocated for setbuf (this provides an
- ncurses-specific way to avoid a memory leak when repeatedly calling
- newterm reported by Chipp C <at_1@zdnetonebox.com>).
- + correct typo in curs_getch.3x manpage regarding noecho (reported by
- David Malone <dwmalone@maths.tcd.ie>).
- + add a "make libs" rule.
- + make the Ada95 interface build with configure --enable-widec.
- + if the configure --enable-widec option is given, append 'w' to names
- of the generated libraries (e.g., libncursesw.so) to avoid conflict
- with existing ncurses libraries.
-
-20000520
- + modify view.c to make a rudimentary viewer of UTF-8 text if ncurses
- is configured with the experimental wide-character support.
- + add a simple UTF-8 output driver to the experimental wide-character
- support. If any of the environment variables LC_ALL, LC_CTYPE or
- LANG contain the string "UTF-8", this driver will be used to
- translate the output to UTF-8. This works with XFree86 xterm.
- + modify configure script to allow building shared libraries on BeOS
- (from a patch by by Valeriy E Ushakov).
- + modify lib_addch.c to allow repeated update to the lower-right
- corner, rather than displaying only the first character written until
- the cursor is moved. Recent versions of SVr4 curses can update the
- lower-right corner, and behave this way (reported by Neil Zanella).
- + add a limit-check in _nc_do_color(), to avoid using invalid color
- pair value (from bug report by Brendan O'Dea <bod@compusol.com.au>).
-
-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).
- + xterm-16color does allow bold+colors, removed ncv#32 from that
- terminfo entry.
-
-20000506
- + 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 web- and ftp-site to dickey.his.com
-
-20000429
- + move _nc_curr_token from parse_entry.c to comp_scan.c, to work around
- problem linking tack on MacOS X DP3.
- + include <sys/time.h> in lib_napms.c to compile on MacOS X DP3
- (reported by Gerben Wierda <wierda@holmes.nl>).
- + modify lib_vidattr.c to check for ncv fixes when pair-0 is not
- default colors.
- + add -d option to ncurses.c, to turn on default-colors for testing.
- + add a check to _nc_makenew() to ensure that newwin() and newpad()
- calls do not silently fail by passing too-large limits.
- + add symbol NCURSES_SIZE_T to use rather than explicit 'short' for
- internal window and pad sizes. Note that since this is visible in
- the WINDOW struct, it would be an ABI change to make this an 'int'
- (prompted by a question by Bastian Trompetter
- <btrompetter@firemail.de>, who attempted to create a 96000-line pad).
-
-20000422
- + add mgterm terminfo entry from NetBSD, minor adjustments to sun-ss5,
- aixterm entries -TD
- + modify tack/ansi.c to make it more tolerant of bad ANSI replies. An
- example of an illegal ANSI resonse can be found using Microsoft's
- Telnet client. A correct display can be found using a VT-4xx
- terminal or XFree86 xterm with:
- XTerm*VT100*decTerminalID: 450
- (patch by Daniel Weaver).
- + modify gdc.c to recognize 'q' for quit, 's' for single-step and ' '
- for resume. Add '-n' option to force gdc's standard input to
- /dev/null, to both illustrate the use of newterm() for specifying
- alternate inputs as well as for testing signal handling.
- + minor fix for configure option --with-manpage-symlinks, for target
- directories that contain a period ('.') (reported by Larry Virden).
-
-20000415
- + minor additions to beterm entry (feedback from Rico Tudor) -TD
- + corrections/updates for some IBM terminfo entries -TD
- + modify _nc_screen_wrap() so that when exiting curses mode with
- non-default colors, the last line on the screen will be cleared to
- the screen's default colors (request by Alexander Lukyanov).
- + modify ncurses.c 'r' example to set nonl(), allowing control/M to be
- read for demonstrating the REQ_NEW_LINE operation (prompted by a
- question by Tony L Keith" <tlkeith@keithconsulting.com>).
- + modify ncurses.c 'r' example of field_info() to work on Solaris 2.7,
- documented extension of ncurses which allows a zero pointer.
- + modify fmt_complex() to avoid buffer overflow in case of excess
- recursion, and to recognize "%e%?" as a synonym for else-if, which
- means that it will not recur for that special case.
- + add logic to support $TERMCAP variable in case the USE_GETCAP symbol
- is defined (patch by Todd C Miller).
- + modify one of the m4 files used to generate the Ada95 sources,
- to avoid using the token "symbols" (patch by Juergen Pfeifer).
-
-20000408
- + add terminfo entries bsdos-pc-m, bsdos-pc-mono (Jeffrey C Honig)
- + correct spelling error in terminfo entry name: bq300-rv was given as
- bg300-rv in esr's version.
- + modify redrawwin() macro so its parameter is fully parenthesized
- (fixes Debian bug report #61088).
- + correct formatting error in dump_entry() which set incorrect column
- value when no newline trimming was needed at the end of an entry,
- before appending "use=" clauses (cf: 960406).
-
-20000401
- + add configure option --with-manpage-symlinks
- + change unctrl() to render C1 characters (128-159) as ~@, ~A, etc.
- + change makefiles so trace() function is provided only if TRACE is
- defined, e.g., in the debug library. Modify related calls to
- _tracechar() to use unctrl() instead.
-
-20000325
- + add screen's AX capability (for ECMA SGR 39 and 49) to applicable
- terminfo entries, use presence of this as a check for a small
- improvement in setting default colors.
- + improve logic in _nc_do_color() implementing assume_default_colors()
- by passing in previous color pair info to eliminate redundant call to
- set_original_colors(). (Part of this is from a patch by Alexander
- Lukyanov).
- + modify warning in _nc_trans_string() about a possibly too-long string
- to do this once only rather than for each character past the
- threshold (600). Change interface of _nc_trans_string() to allow
- check for buffer overflow.
- + correct use of memset in _nc_read_entry_source() to initialize ENTRY
- struct each time before reading new data into it, rather than once
- per loop (cf: 990301). This affects multi-entry in-core operations
- such as "infocmp -Fa".
-
-20000319
- + remove a spurious pointer increment in _nc_infotocap() changes from
- 20000311. Add check for '.' in format of number, since that also
- is not permitted in termcap.
- + correct typo in rxvt-basic terminfo from temporary change made while
- integrating 20000318.
-
-20000318
- + revert part of the vt220 change (request by Todd C Miller).
- + add ansi-* terminfo entries from Eric's version.
- + add -a option to tic and infocmp, which retains commented-out
- capabilities during source translation/comparison, e.g., captoinfo
- and infotocap.
- + modify cardfile.c to display an empty card if no input data file is
- found, fixes a core dump in that case (reported by Bruno Haible).
- + correct bracketing in CF_MATH_LIB configure macro, which gave wrong
- result for OS/2 EMX.
- + supply required parameter for _nc_resolve_uses() call in
- read_termcap.c, overlooked in 20000311 (reported by Todd C Miller).
- > patches by Bruno Haible <haible@ilog.fr>:
- + fix a compiler warning in fty_enum.c
- + correct LIB_PREFIX expression for DEPS_CURSES in progs, tack
- makefiles, which resulted in redundant linking (cf: 20000122).
-
-20000311
- + make ifdef's for BROKEN_LINKER consistent (patch by Todd C Miller).
- + improved tack/README (patch by Daniel Weaver).
- + modify tput.c to ensure that unspecified parameters are passed to
- tparm() as 0's.
- + add a few checks in infocmp to guard against buffer overflow when
- displaying string capabilities.
- + add check for zero-uses in infocmp's file_comparison() function
- before calling _nc_align_termtype(). Otherwise one parameter is
- indexed past the end of the uses-array.
- + add an option -q to infocmp to specify the less verbose output,
- keeping the existing format as the default, though not retaining the
- previous behavior that made the -F option compare each entry to
- itself.
- + adapted patch by Eric Raymond to make infocmp -F less verbose
- (the submitted patch was unusable because it did not compile
- properly):
- + modify write_entry.c to ensure that absent or cancelled booleans
- are written as FALSE, for consistency with infocmp which now
- assumes this. Note that for the small-core configuration, tic
- may not produce the same result as before.
- + change some private library interfaces used by infocmp, e.g.,
- _nc_resolve_uses().
- + add a check in _nc_infotocap() to ensure that cm-style capabilities
- accept only %d codes when converting the format from terminfo to
- termcap.
- + modify ENTRY struct to separate the data in 'parent' into the name
- and link values (the original idea to merge both into 'parent' was
- not good).
- + discard repair_acsc(tterm);
- > patch by Juergen Pfeifer:
- + drop support for gnat 3.10
- + move generated documentation and html files under ./doc directory,
- adding makefile rules for this to dist.mk
-
-20000304
- + correct conflicting use of tparm() in 20000226 change to tic, which
- made it check only one entry at a time.
- + fix errors in ncurses-intro.html and hackguide.html shown by Dave
- Raggett's tidy.
- + make the example in ncurses-intro.html do something plausible, and
- corrected misleading comment (reported by Neil Zanella).
- + modify pnoutrefresh() to set newscr->_leaveok as wnoutrefresh() does,
- to fix a case where the cursor position was not updated as in
- Solaris (patch by David Mosberger <davidm@hpl.hp.com>).
- + add a limit-check for wresize() to ensure that a subwindow does not
- address out of bounds.
- + correct offsets used for subwindows in wresize() (patch by Michael
- Andres <ma@suse.de>).
- + regenerate html'ized manual pages with man2html 3.0.1 (patch by
- Juergen Pfeifer). This generated a file with a space in its name,
- which I removed.
- + fix a few spelling errors in tack.
- + modify tack/Makefile.in to match linker options of progs/Makefile.in;
- otherwise it does not build properly for older HPUX shared library
- configurations.
- + add several terminfo entries from esr's "11.0".
-
-20000226
- + make 'tput flash' work properly for xterm by flushing output in
- delay_output() when using napms(), and modifying xterm's terminfo to
- specify no padding character. Otherwise, xterm's reported baud rate
- can mislead ncurses into producing too few padding characters
- (Debian #58530).
- + add a check to tic for consistency between sgr and the separate
- capabilities such as smso, use this to check/correct several
- terminfo entries (Debian #58530).
- + add a check to tic if cvvis is the same as cnorm, adjusted several
- terminfo entries to remove the conflict (Debian #58530).
- + correct prototype shown in attr_set()/wattr_set() manpages (fixes
- Debian #53962).
- + minor clarification for curs_set() and leaveok() manpages.
- + use mkstemp() for creating temporary file for tic's processing of
- $TERMCAP contents (fixes Debian #56465).
- + correct two errors from integrating Alexander's changes: did not
- handle the non-bce case properly in can_erase_with() (noted by
- Alexander), and left fg/bg uninitialized in the pair-zero case of
- _nc_do_color() (reported by Dr Werner Fink <werner@suse.de> and
- Ismael Cordeiro <ismael@cordeiro.com>).
-
-20000219
- + store default-color code consistently as C_MASK, even if given as
- -1 for convenience (adapted from patches by Alexander Lukyanov).
- > patches by Alexander Lukyanov:
- + change can_clear_with() macro to accommodate logic for
- assume_default_colors(), making most of the FILL_BCE logic
- unnecessary. Made can_clear_with() an inline function to make it
- simpler to read.
-
-20000212
- + corrected form of recent copyright dates.
- + minor corrections to xterm-xf86-v333 terminfo entry -TD
- > patches by Alexander Lukyanov:
- + reworded dft_fgbg.3x to avoid assuming that the terminal's default
- colors are white on black.
- + fix initialization of tstLine so that it is filled with current blank
- character in any case. Previously it was possible to have it filled
- with old blank. The wrong over-optimization was introduced in 991002
- patch. (it is not very critical as the only bad effect is not using
- clr_eos for clearing if blank has changed).
-
-20000205
- + minor corrections/updates to several terminfo entries: rxvt-basic,
- vt520, vt525, ibm5151, xterm-xf86-v40 -TD
- + modify ifdef's for poll() to allow it to use <sys/poll.h>, thereby
- allowing poll() to be used on Linux.
- + add CF_FUNC_POLL macro to check if poll() is able to select from
- standard input. If not we will not use it, preferring select()
- (adapted from patch by Michael Pakovic <mpakovic@fdn.com>).
- + update CF_SHARED_OPTS macro for SCO Unixware 7.1 to allow building
- shared libraries (reported/tested by Thanh <thanhma@mediaone.net>).
- + override $LANGUAGE in build to avoid incorrect ordering of keynames.
- + correct CF_MATH_LIB parameter, must be sin(x), not sqrt(x).
-
-20000122
- + resync CF_CHECK_ERRNO and CF_LIB_PREFIX macros from tin and xterm.
- + modify CF_MATH_LIB configure macro to parameterize the test function
- used, for reuse in dialog and similar packages.
- + correct tests for file-descriptors in OS/2 EMX mouse support. A
- negative value could be used by FD_SET, causing the select() call
- to wait indefinitely.
-
-20000115
- + additional fixes for non-bce terminals (handling of delete_character)
- to work when assume_default_colors() is not specified.
- + modify warning message from _nc_parse_entry() regarding extended
- capability names to print only if tic/infocmp/toe have the -v flag
- set, and not at all in ordinary user applications. Otherwise, this
- warning would be shown for screen's extended capabilities in programs
- that use the termcap interface (reported by Todd C Miller).
- + modify use of _nc_tracing from programs such as tic so their debug
- level is not in the same range as values set by trace() function.
- + small panel header cleanup (patch by Juergen Pfeifer).
- + add 'railroad' demo for termcap interface.
- + modify 'tic' to write its usage message to stderr (patch by Todd C
- Miller).
-
-20000108
- + add prototype for erase() to curses.h.in, needed to make test
- programs build with c++/g++.
- + add .c.i and .c.h suffix rules to generated makefiles, for debugging.
- + correct install rule for tack.1; it assumed that file was in the
- current directory (reported by Mike Castle <dalgoda@ix.netcom.com>).
- + modify terminfo/termcap translation to suppress acsc before trying
- sgr if the entry would be too large (patch by Todd C Miller).
- + document a special case of incompatiblity between ncurses 4.2 and
- 5.0, add a section for this in INSTALL.
- + add TRACE_DATABASE flag for trace().
-
-20000101
- + update mach, add mach-color terminfo entries based on Debian diffs
- for ncurses 5.0 -TD
- + add entries for xterm-hp, xterm-vt220, xterm-vt52 and xterm-noapp
- terminfo entries -TD
- + change OTrs capabilities to rs2 in terminfo.src -TD
- + add obsolete and extended capabilities to 'screen' terminfo -TD
- + corrected conversion from terminfo rs2 to termcap rs (cf: 980704)
- + make conversion to termcap ug (underline glitch) more consistently
- applied.
- + fix out-of-scope use of 'personal[]' buffer in 'toe' (this error
- was in the original pre-1.9.7 version, when $HOME/.terminfo was
- introduced).
- + modify 'toe' to ignore terminfo directories to which it has no
- permissions.
- + modify read_termtype(), fixing 'toe', which could dump core when it
- found an incomplete entry such as "dumb" because it did not
- initialize its buffer for _nc_read_file_entry().
- + use -fPIC rather than -fpic for shared libraries on Linux, not
- needed for i386 but some ports (from Debian diffs for 5.0).
- + use explicit VALID_NUMERIC() checks in a few places that had been
- overlooked, and add a check to ensure that init_tabs is nonzero,
- to avoid divide-by-zero (reported by Todd C Miller).
- + minor fix for CF_ANSI_CC_CHECK configure macro, for HPUX 10.x (from
- tin).
-
-19991218
- + reorder tests during mouse initialization to allow for gpm to run in
- xterm, or for xterm to be used under OS/2 EMX. Also drop test for
- $DISPLAY in favor of kmous=\E[M or $TERM containing "xterm" (report
- by Christian Weisgerber <naddy@mips.rhein-neckar.de>).
- + modify raw() and noraw() to clear/restore IEXTEN flag which affects
- stty lnext on systems such as FreeBSD (report by Bruce Evans
- <bde@zeta.org.au>, via Jason Evans <jasone@canonware.com>).
- + fix a potential (but unlikely) buffer overflow in failed() function
- of tset.c (reported by Todd C Miller).
- + add manual-page for ncurses extensions, documented curses_version(),
- use_extended_names().
-
-19991211
- + treat as untranslatable to termcap those terminfo strings which
- contain non-decimal formatting, e.g., hexadecimal or octal.
- + correct commented-out capabilities that cannot be translated to
- termcap, which did not check if a colon must be escaped.
- + correct termcap translation for "%>" and "%+", which did not check
- if a colon must be escaped, for instance.
- + use save_string/save_char for _nc_captoinfo() to eliminate fixed
- buffer (originally for _nc_infotocap() in 960301 -TD).
- + correct expression used for terminfo equivalent of termcap %B,
- adjust regent100 entry which uses this.
- + some cleanup and commenting of ad hoc cases in _nc_infotocap().
- + eliminate a fixed-buffer in tic, used for translating comments.
- + add manpage for infotocap
-
-19991204
- + add kvt and gnome terminfo entries -TD
- + correct translation of "%%" by infotocap, which was emitted as "%".
- + add "obsolete" termcap strings to terminfo.src
- + modify infocmp to default to showing obsolete capabilities rather
- than terminfo only.
- + modify write_entry.c so that if extended names (i.e., configure
- --enable-tcap-names) are active, then tic will also write "obsolete"
- capabilities that are present in the terminfo source.
- + modify tic so that when running as captoinfo or infotocap, it
- initializes the output format as in -C and -I options, respectively.
- + improve infocmp and tic -f option by splitting long strings that do
- not have if-then-else construct, but do have parameters, e.g., the
- initc for xterm-88color.
- + refine MKtermsort.sh slightly by using bool for the *_from_termcap
- arrays.
-
-19991127
- + additional fixes for non-bce terminals (handling of clear_screen,
- clr_eol, clr_eos, scrolling) to work when assume_default_colors() is
- not specified.
- + several small changes to xterm terminfo entries -TD.
- + move logic for _nc_windows in lib_freeall.c inside check for nonnull
- SP, since it is part of that struct.
- + remove obsolete shlib-versions, which was unintentionally re-added
- in 970927.
- + modify infocmp -e, -E options to ensure that generated fallback.c
- type for Booleans agrees with term.h (reported by Eric Norum
- <eric@cls.usask.ca>).
- + correct configure script's use of $LIB_PREFIX, which did not work
- for installing the c++ directory if $libdir did not end with "/lib"
- (reported by Huy Le <huyle@ugcs.caltech.edu>).
- + modify infocmp so -L and -f options work together.
- + modify the initialization of SP->_color_table[] in start_color() so
- that color_content() will return usable values for COLORS greater
- than 8.
- + modify ncurses 'd' test in case COLORS is greater than 16, e.g., for
- xterm-88color, to limit the displayed/computed colors to 16.
- > patch by Juergen Pfeifer:
- + simplify coding of the panel library according to suggestions by
- Philippe Blain.
- + improve macro coding for a few macros in curses.priv.h
-
-19991113
- + modify treatment of color pair 0 so that if ncurses is configured
- to support default colors, and they are not active, then ncurses
- will set that explicitly, not relying on orig_colors or orig_pair.
- + add new extension, assume_default_colors() to provide better control
- over the use of default colors.
- + modify test programs to use more-specific ifdef's for existence of
- wresize(), resizeterm() and use_default_colors().
- + modify configure script to add specific ifdef's for some functions
- that are included when --enable-ext-funcs is in effect, so their
- existence can be ifdef'd in the test programs.
- + reorder some configure options, moving those extensions that have
- evolved from experimental status into a new section.
- + change configure --enable-tcap-names to enable this by default.
-
-19991106
- + install tack's manpage (reported by Robert Weiner
- <robert@progplus.com>)
- + correct worm.c's handling of KEY_RESIZE (patch by Frank Heckenbach).
- + modify curses.h.in, undef'ing some symbols to avoid conflict with C++
- STL (reported by Matt Gerassimoff <mgeras@ticon.net>)
-
-19991030
- + modify linux terminfo entry to indicate that dim does not mix with
- color (reported by Klaus Weide <kweide@enteract.com>).
- + correct several typos in terminfo entries related to missing '['
- in CSI's -TD
- + fix several compiler warnings in c++ binding (reported by Tim
- Mooney for alphaev56-dec-osf4.0f
- + rename parameter of _nc_free_entries() to accommodate lint.
- + correct lint rule for tack, used incorrect list of source files.
- + add case to config.guess, config.sub for Rhapsody.
- + improve configure tests for libg++ and libstdc++ by omitting the
- math library (which is missing on Rhapsody), and improved test for
- the math library itself (adapted from path by Nelson H. F. Beebe).
- + explicitly initialize to zero several data items which were
- implicitly initialized, e.g., cur_term. If not explicitly
- initialized, their storage type is C (common), and causes problems
- linking on Rhapsody 5.5 using gcc 2.7.2.1 (reported by Nelson H. F.
- Beebe).
- + modify Ada95 binding to not include the linker option for Ada
- bindings in the Ada headers, but in the Makefiles instead (patch by
- Juergen Pfeifer).
-
-19991023 5.0 release for upload to ftp.gnu.org
- + effective with release of 5.0, change NCURSES_VERSION_PATCH to
- 4-digit year.
- + add function curses_version(), to return ncurses library version
- (request by Bob van der Poel).
- + remove rmam, smam from cygwin terminfo entry.
- + modify FreeBSD cons25 terminfo entry to add cnorm and cvvis, as well
- as update ncv to indicate that 'dim' conflicts with colors.
- + modify configure script to use symbolic links for FreeBSD shared
- libraries by default.
- + correct ranf() function in rain and worm programs to ensure it does
- not return 1.0
- + hide the cursor in hanoi.c if it is running automatically.
- + amend lrtest.c to account for optimizations that exploit margin
- wrapping.
- + add a simple terminfo demo, dots.c
- + modify SIGINT/SIGQUIT handler to set a flag used in _nc_outch() to
- tell it to use write() rather than putc(), since the latter is not
- safe in a signal handler according to POSIX.
- + add/use internal macros _nc_flush() and NC_OUTPUT to hide details
- of output-file pointer in ncurses library.
- + uncomment CC_SHARED_OPTS (see 971115), since they are needed for SCO
- OpenServer.
- + correct CC_SHARED_OPTS for building shared libraries for SCO
- OpenServer.
- + remove usleep() from alternatives in napms(), since it may interact
- with alarm(), causing a process to be interrupted by SIGALRM (with
- advice from Bela Lubkin).
- + modify terminal_interface-curses-forms.ads.m4 to build/work with
- GNAT 3.10 (patch by Juergen Pfeifer).
- + remove part of CF_GPP_LIBRARY configure-script macro, which did not
- work with gcc 2.7.2.3
- + minor fix to test/tclock.c to avoid beeping more than once per second
- + add 's' and ' ' decoding to test/rain.c
-
-991016 pre-release
- + corrected BeOS code for lib_twait.c, making nodelay() function work.
-
-991009 pre-release
- + correct ncurses' value for cursor-column in PutCharLR(), which was
- off-by-one in one case (patch by Ilya Zakharevich).
- + fix some minor errors in position_check() debugging code, found while
- using this to validate the PutCharLR() patch.
- + modify firework, lrtest, worm examples to be resizable, and to
- recognize 'q' for quit, 's' for single-step and ' ' for resume.
- + restore reverted change to terminal_interface-curses-forms.ads.m4,
- add a note on building with gnat 3.10p to Ada95/TODO.
- + add a copy of the standalone configure script for the test-directory
- to simplify testing on SCO and Solaris.
-
-991002 pre-release
- + minor fixes for _nc_msec_cost(), color_content(), pair_content(),
- _nc_freewin(), ClrBottom() and onscreen_mvcur() (analysis by Philippe
- Blain, comments by Alexander Lukyanov).
- + simplify definition of PANEL and eliminate internal functions
- _nc_calculate_obscure(), _nc_free_obscure() and _nc_override(),
- (patch by Juergen Pfeifer, based on analysis by Philippe Blain
- <bledp@voila.fr>)).
- + change renaming of dft_fgbg.3x to use_default_colors.3ncurses in
- man_db.renames, since Debian is not concerned with 14-character
- filename limitation (from Debian bug report by Josip Rodin
- <joy@cibalia.gkvk.hr>).
- + corrected scoansi terminfo entry by testing with scoterm and console.
- + revert change from 990614 to terminal_interface-curses-forms.ads.m4,
- since this does not work for gnat 3.10p
- + modify tclock example to be resizable (if ncurses' sigwinch handler
- is used), and in color.
- + use $(CC) rather than 'gcc' in MK_SHARED_LIB symbols, used for Linux
- shared library rules.
-
-990925 pre-release
- + add newer NetBSD console terminfo entries
- + add amiga-8bit terminfo entry (from Henning 'Faroul' Peters
- <Faroul@beyond.kn-bremen.de>)
- + remove -lcurses -ltermcap from configure script's check for the gpm
- library, since they are not really necessary (a properly configured
- gpm library has no dependency on any curses library), and if the
- curses library is not installed, this would cause the test to fail.
- + modify tic's -C option so that terminfo "use=" clauses are translated
- to "tc=" clauses even when running it as captoinfo.
- + modify CF_STDCPP_LIBRARY configure macro to perform its check only
- for GNU C++, since that library conflicts with SGI's libC on IRIX-6.2
- + modify CF_SHARED_OPTS configure macro to support build on NetBSD with
- ELF libraries (patch by Bernd Ernesti <bernd@arresum.inka.de>).
- + correct a problem in libpanel, where the _nc_top_panel variable was
- not set properly when bottom_panel() is called to hide a panel which
- is the only one on the stack (report/analysis by Michael Andres
- <ma@suse.de>, patch by Juergen Pfeifer).
-
-990918 pre-release
- + add acsc string to HP 70092 terminfo entry (patch by Joerg Wunsch
- <j@interface-business.de>).
- + add top-level uninstall.data and uninstall.man makefile rules.
- + correct logic of CF_LINK_FUNCS configure script, from BeOS changes so
- that hard-links work on Unix again.
- + change default value of cf_cv_builtin_bool to 1 as suggested by
- Jeremy Buhler, making it less likely that a conflicting declaration
- of bool will be seen when compiling with C++.
-
-990911 pre-release
- + improved configure checks for builtin.h
- + minor changes to C++ binding (remove static initializations, and make
- configure-test for parameter initializations) for features not
- allowed by vendor's C++ compilers (reported by Martin Mokrejs, this
- applies to SGI, though I found SCO has the same characteristics).
- + corrected quoting of ETIP_xxx definitions which support old versions
- of g++, e.g., those using -lg++
- + remove 'L' code from safe_sprintf.c, since 'long double' is not
- widely portable. safe_sprintf.c is experimental, however, and
- exists mainly as a fallback for systems without snprintf (reported
- by Martin Mokrejs <mmokrejs@natur.cuni.cz>, for IRIX 6.2)
- + modify definition of _nc_tinfo_fkeys in broken-linker configuration
- so that it is not unnecessarily made extern (Jeffrey C Honig).
-
-990904 pre-release
- + move definition for builtin.h in configure tests to specific check
- for libg++, since qt uses the same filename incompatibly.
- + correct logic of lib_termcap.c tgetstr function, which did not copy
- the result to the buffer parameter. Testing shows Solaris does
- update this, though of course tgetent's buffer is untouched (from
- mpc.lists.freebsd.current newsgroup item by Peter Edwards
- <peter.edwards@ireland.com>).
- + corrected beterm terminfo entry, which lists some capabilities which
- are not actually provided by the BeOS Terminal.
- + add special logic to replace select() calls on BeOS, whose select()
- function works only for sockets.
- + correct missing escape in mkterm.h.awk.in, which caused part
- of the copyright noticed to be omitted (reported by Peter
- Wemm <peter@netplex.com.au>).
- > several small changes to make the c++ binding and demo work on OS/2
- EMX (related to a clean reinstall of EMX):
- + correct library-prefix for c++ binding; none is needed.
- + add $x suffix to make_hash and make_keys so 'make distclean' works.
- + correct missing $x suffix for tack, c++ demo executables.
- + split CF_CXX_LIBRARY into CF_GPP_LIBRARY (for -lg++) and
- CF_STDCPP_LIBRARY (for -lstdc++)
-
-990828 pre-release
- + add cygwin terminfo entry -TD
- + modify CF_PROG_EXT configure macro to set .exe extension for cygwin.
- + add configure option --without-cxx-binding, modifying the existing
- --without-cxx option to check only for the C++ compiler
- characteristics. Whether or not the C++ binding is needed, the
- configure script checks for the size/type of bool, to make ncurses
- match. Otherwise C++ applications cannot use ncurses.
-
-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.
- + 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
- nonfunctional link().
- + improved configure macros CF_BOOL_DECL and CF_BOOL_SIZE to detect
- BeOS's bool, which is declared as an unsigned char.
-
-990814 pre-release
- + add ms-vt100 terminfo entry -TD
- + minor fixes for misc/emx.src, based on testing with tack.
- + minor fix for test/ncurses.c, test 'a', in case ncv is not set.
-
-990731 pre-release
- + minor correction for 'screen' terminfo entry.
- + clarify description of errret values for setupterm in manpage.
- + modify tput to allow it to emit capabilities for hardcopy terminals
- (patch by Goran Uddeborg <goeran@uddeborg.pp.se>).
- + modify the 'o' (panel) test in ncurses.c to show the panels in color
- or at least in bold, to test Juergen's change to wrefresh().
- > patches by Juergen Pfeifer:
- + Fixes a problem using wbkgdset() with panels. It has actually
- nothing to with panels but is a problem in the implementation of
- 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>).
- + 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.
-
-990724 pre-release
- + suppress a call to def_prog_mode() in the SIGTSTP handler if the
- signal was received while not in curses mode, e.g., endwin() was
- called in preparation for spawning a shell command (reported by Frank
- Heckenbach <frank@g-n-u.de>)
- + corrected/enhanced xterm-r5, xterm+sl, xterm+sl-twm terminfo entries.
- + change test for xterm mouse capability: it now checks only if the
- user's $DISPLAY variable is set in conjunction with the kmous
- capability being present in the terminfo. Before, it checked if any
- of "xterm", "rxvt" or "kterm" were substrings of the terminal name.
- However, some emulators which are incompatible with xterm in other
- ways do support the xterm mouse capability.
- + reviewed and made minor changes in ncurses to quiet g++ warnings
- about shadowed or uninitialized variables. g++ incorrectly warns
- about uninitialized variables because it does not take into account
- short-circuit expression evaluation.
- + change ncurses 'b' test to start in color pair 0 and to show in the
- right margin those attributes which are suppressed by no_color_video,
- i.e., "(NCV)".
- + modify ifdef's in curses.h so that __attribute__ is not redefined
- when compiling with g++, but instead disabled the macros derived for
- __attribute__ since g++ does not consistently recognize the same
- keywords as gcc (reported by Stephan K Zitz <zitz@erf.net>).
- + update dependencies for term.h in ncurses/modules (reported by
- Ilya Zakharevich).
-
-990710 pre-release
- + modify the form demo in ncurses.c to illustrate how to manipulate the
- field appearance, e.g, for highlighting or translating the field
- contents.
- + correct logic in write_entry from split-out of home_terminfo in
- 980919, which prevented update of $HOME/.terminfo (reported by Philip
- Spencer <pspencer@fields.utoronto.ca>).
-
-990703 pre-release
- + modify linux terminfo description to make use of kernel 2.2.x mods
- that support cursor style, e.g., to implement cvvis (patch by Frank
- Heckenbach <frank@g-n-u.de>)
- + add special-case in setupterm to retain previously-saved terminal
- 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.
- + 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).
-
-990626 pre-release
- + use TTY definition in tack/sysdep.c rather than struct termios
- (reported by Philippe De Muyter).
- + add a fallback for strstr, used in lib_mvcur.c and tack/edit.c,
- not present on sysV68 (reported by Philippe De Muyter).
- + correct definition in comp_hash.c to build with configure
- --with-rcs-ids option.
-
-990619 pre-release
- + modified ifdef's for sigaction and sigvec to ensure we do not try to
- handle SIGTSTP if neither is available (from report by Philippe De
- Muyter).
- > patch by Philippe De Muyter:
- + in tic.c, use `unlink' if `remove' is not available.
- + use only `unsigned' as fallback value for `speed_t'. Some files used
- `short' instead.
-
-990616 pre-release
- + fix some compiler warnings in tack.
- + add a check for predefined bool type in CC, based on report that
- BeOS predefines a bool type.
- + correct logic for infocmp -e option (i.e., the configure
- --with-fallbacks option), which I'd not updated when implementing
- extended names (cf: 990301). The new implementation adds a -E
- option to infocmp.
- > patch by Juergen Pfeifer:
- + introduce the private type Curses_Bool in the Ada95 binding
- implementation. This is to clearly represent the use of "bool" also
- in the binding. It should have no effect on the generated code.
- + improve the man page for field_buffer() to tell the people, that the
- whole buffer including leading/trailing spaces is returned. This is
- a common source of confusion, so it's better to document it clearly.
-
-990614 pre-release
- > patch by Juergen Pfeifer:
- + use pragma PreElaborate in several places.
- + change a few System.Address uses to more specific types.
- + change interface version-number to 1.0
- + regenerate Ada95 HTML files.
-
-990612 pre-release
- + modify lib_endwin.c to avoid calling reset_shell_mode(), return ERR
- if it appears that curses was never initialized, e.g., by initscr().
- For instance, this guards against setting the terminal modes to
- strange values if endwin() is called after setupterm(). In the same
- context, Solaris curses will dump core.
- + modify logic that avoids a conflict in lib_vidattr.c between sgr0 and
- equivalent values in rmso or rmul by ensuring we do not modify the
- data which would be returned by the terminfo or termcap interfaces
- (reported by Brad Pepers <brad@linuxcanada.com>, cf: 960706).
- + 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).
-
-990605 pre-release
- + include time.h in lib_napms.c if nanosleep is used (patch by
- R Lindsay Todd <toddr@rpi.edu>).
- + add an "#undef bool" to curses.h, in case someone tries to define it,
- e.g., perl.
- + add check to tparm to guard against divide by zero (reported by Aaron
- Campbell <aaron@ug.cs.dal.ca>).
-
-990516 pre-release
- + minor fix to build tack on CLIX (mismatched const).
- > patch by Juergen Pfeifer:
- + change Juergen's old email address with new one in the files where it
- is referenced. The Ada95 HTML pages are regenerated.
- + update MANIFEST to list the tack files.
-
-990509 pre-release
- + minor fixes to make 'tack' build/link on NeXT (reported by Francisco
- A. Tomei Torres).
-
-990417 pre-release
- + add 'tack' program (which is GPL'd), updating it to work with the
- modified TERMTYPE struct and making a fix to support setaf/setab
- capabilities. Note that the tack program is not part of the
- ncurses libraries, but an application which can be distributed with
- ncurses. The configure script will ignore the directory if it is
- omitted, however.
- + modify gpm mouse support so that buttons 2 and 3 are used for
- select/paste only when shift key is pressed, making them available
- for use by an application (patch by Klaus Weide).
- + add complete list of function keys to scoansi terminfo entry - TD
-
-990410 pre-release
- + add a simple test program cardfile.c to illustrate how to read form
- fields, and showing forms within panels.
- + change shared-library versioning for the Hurd to be like Linux rather
- than *BSD (patch by Mark Kettenis <kettenis@wins.uva.nl>).
- + add linux-lat terminfo entry.
- + back-out _nc_access check in read_termcap.c (both incorrect and
- unnecessary, except to guard against a small window where the file's
- ownership may change).
-
-990403 pre-release
- + remove conflicting _nc_free_termtype() function from test module
- lib_freeall.c
- + use _nc_access check in read_termcap.c for termpaths[] array (noted
- by Jeremy Buhler, indicating that Alan Cox made a similar patch).
- > 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>)
-
-990327 pre-release (alpha.gnu.org:/gnu/ncurses-5.0-beta1.tar.gz)
- + minor fixes to xterm-xfree86 terminfo entry - TD.
- + split up an expression in configure script check for ldconfig to
- workaround limitation of BSD/OS sh (reported by Jeff Haas
- <jmh@mail.msen.com>).
- + correct a typo in man/form_hook.3x (Todd C Miller).
-
-990318 pre-release
- + parenthesize and undef 'index' symbol in c++ binding and demo, to
- accommodate its definition on NeXT (reported by Francisco A. Tomei
- Torres).
- + add sigismember() to base/sigaction.c compatibility to link on NeXT
- (reported by Francisco A. Tomei Torres).
- + further refinements to inequality in hashmap.c to cover a case with
- ^U in nvi (patch by Alexander Lukyanov).
-
-990316 pre-release
- + add fallback definition for getcwd, to link on NeXT.
- + add a copy of cur_term to tic.c to make it link properly on NeXT
- (reported by Francisco A. Tomei Torres).
- + change inequality in hashmap.c which checks the distance traveled by
- a chunk so that ^D command in nvi (scrolls 1/2 screen) will use
- scrolling logic (patch by Alexander Lukyanov, reported by Jeffrey
- C Honig).
-
-990314 pre-release
- + modify lib_color.c to handle a special case where the curscr
- attributes have been made obsolete (patch by Alexander Lukyanov).
- + update BSD/OS console terminfo entries to use klone+sgr and
- klone+color (patch by Jeffrey C Honig).
- + update glibc addon configure script for extended capabilities.
- + correct a couple of warnings in the --enable-const configuration.
- + make comp_hash build properly with _nc_strdup(), on NeXT (reported by
- Francisco A. Tomei Torres <francisco.tomei@cwix.com>).
-
-990313 pre-release
- + correct typos in linux-c initc string - TD
- + add 'crt' terminfo entry, update xterm-xfree86 entry - TD
- + remove a spurious argument to tparm() in lib_sklrefr.c (patch by
- Alexander Lukyanov).
-
-990307 pre-release
- + back-out change to wgetch because it causes a problem with ^Z
- handling in lynx (reported by Kim DeVaughn).
-
-990306 pre-release
- + add -G option to tic and infocmp, to reverse the -g option.
- + recode functions in name_match.c to avoid use of strncpy, which
- caused a 4-fold slowdown in tic (cf: 980530).
- + correct a few warnings about sign-extension in recent changes.
- > patch by Juergen Pfeifer:
- + fixes suggested by Jeff Bradbury <jibradbury@lucent.com>:
- + improved parameter checking in new_fieldtype().
- + fixed a typo in wgetch() timeout handling.
- + allow slk_init() to be called per newterm call. The internal SLK
- state is stored in the SCREEN struct after every newterm() and then
- reset for the next newterm.
- + fix the problem that a slk_refresh() refreshes stdscr if the
- terminal has true SLKs.
- + update HTML documentation for Ada binding.
-
-990301 pre-release
- + remove 'bool' casts from definitions of TRUE/FALSE so that statements
- such as "#if TRUE" work. This was originally done to allow for a C++
- compiler which would warn of implicit conversions between enum and
- int, but is not needed for g++ (reported by Kim DeVaughn).
- + add use_extended_names() function to allow applications to suppress
- read of the extended capabilities.
- + add configure option --enable-tcap-names to support logic which
- allows ncurses' tic to define new (i.e., extended) terminal
- capabilities. This is activated by the tic -x switch. The infocmp
- program automatically shows or compares extended capabilities.
- Note: This changes the Strings and similar arrays in the TERMTYPE
- struct so that applications which manipulate it must be recompiled.
- + use macros typeMalloc, typeCalloc and typeRealloc consistently
- throughout ncurses library.
- + add _nc_strdup() to doalloc.c.
- + modify define_key() to allow multiple strings to be bound to the
- same keycode.
- + correct logic error in _nc_remove_string, from 990220.
- > patch by Juergen Pfeifer, for Ada95 binding:
- + regenerate some of the html documentation
- + minor cleanup in terminal_interface-curses.adb
-
-990220 pre-release
- + resolve ambiguity of kend/kll/kslt and khome/kfnd/kich1 strings in
- xterm and ncsa terminfo entries by removing the unneeded ones. Note
- that some entries will return kend & khome versus kslt and kfnd, for
- PC-style keyboards versus strict vt220 compatiblity - TD
- + add function keybound(), which returns the definition associated with
- a given keycode.
- + modify define_key() to undefine the given string when no keycode is
- given.
- + modify keyok() so it works properly if there is more than one string
- defined for a keycode.
- + add check to tic to warn about terminfo descriptions that contain
- more than one key assigned to the same string. This is shown only if
- the verbose (-v) option is given. Moved related logic (tic -v) from
- comp_parse.c into the tic program.
- + add/use _nc_trace_tries() to show the function keys that will be
- recognized.
- + rename init_acs to _nc_init_acs (request by Alexander Lukyanov).
- > patch by Juergen Pfeifer, for Ada95 binding:
- + remove all the *_adabind.c from ncurses, menu and form projects.
- Those little helper routines have all been implemented in Ada and are
- no longer required.
- + The option handling routines in menu and form have been made more
- save. They now make sure that the unused bits in options are always
- zero.
- + modify configuration scripts to
- + use gnatmake as default compiler name. This is a safer choice than
- gcc, because some GNAT implementations use other names for the
- compilerdriver to avoid conflicts.
- + use new default installation locations for the Ada files according
- to the proposed GNU Ada filesystem standard (for Linux).
- + simplify the Makefiles for the Ada binding
- + rename ada_include directory to src.
-
-990213
- + enable sigwinch handler by default.
- + disable logic that allows setbuf to be turned off/on, because some
- implementations will overrun the buffer after it has been disabled
- once.
-
-990206
- + suppress sc/rc capabilities from terminal description if they appear
- in smcup/rmcup. This affects only scrolling optimization, to fix a
- problem reported by several people with xterm's alternate screen,
- though the problem is more general.
- > patch by Juergen Pfeifer, for Ada95 binding:
- + removed all pragma Preelaborate() stuff, because the just released
- gnat-3.11p complains on some constructs.
- + fixed some upper/lower case notations because gnat-3.11p found
- inconsistent use.
- + used a new method to generate the HTML documentation of the Ada95
- binding. This invalidates nearly the whole ./Ada95/html subtree.
- Nearly all current files in this subtree are removed
-
-990130
- + cache last result from _nc_baudrate, for performance (suggested by
- Alexander Lukyanov).
- + modify ClrUpdate() function to workaround a problem in nvi, which
- uses redrawwin in SIGTSTP handling. Jeffrey C Honig reported that
- ncurses repainted the screen with nulls before resuming normal
- operation (patch by Alexander Lukyanov).
- + generalize is_xterm() function a little by letting xterm/rxvt/kterm
- be any substring rather than the prefix.
- + modify lib_data.c to initialize SP. Some linkers, e.g., IBM's, will
- not link a module if the only symbols exported from the module are
- uninitialized ones (patch by Ilya Zakharevich, who says that he has
- seen messages claiming this behaviour conforms to the standard.)
- + move call on _nc_signal_handler past _nc_initscr, to avoid a small
- window where Nttyb hasn't yet been filled (reported by Klaus Weide).
- + modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a
- problem where ncurses applications which were run via a shell script
- would hang when given a ^Z. Also, check if the terminal's process
- group is consistent, i.e., a shell has not taken ownership of it,
- before deciding to save the current terminal settings in the SIGTSTP
- handler (patch by Klaus Weide).
- + correct spelling of ACS_ names in curs_border.3x (reported by Bob van
- der Poel <bvdpoel@kootenay.com>).
- + correct a couple of typos in the macros supporting the configure
- --with-shlib-version option.
-
-990123
- + modify fty_regex.c to compile on HAVE_REGEXPR_H_FUNCS machine (patch
- by Kimio Ishii <ishii@csl.sony.co.jp>).
- + rename BSDI console terminfo entries: bsdos to bsdos-pc-nobold, and
- bsdos-bold to bsdos-pc (patch by Jeffrey C Honig).
- + modify tput to accept termcap names as an alternative to terminfo
- names (patch by Jeffrey C Honig).
- + correct a typo in term.7 (Todd C Miller).
- + add configure --with-shlib-version option to allow installing shared
- libraries named according to release or ABI versions. This
- parameterizes some existing logic in the configure script, and is
- intended for compatiblity upgrades on Digital Unix, which used
- versioned libraries in ncurses 4.2, but no longer does (cf: 980425).
- + resync configure script against autoconf 2.13 + patches
- + minor improvements for teraterm terminfo entry based on the program's
- source distribution.
-
-990116
- + change default for configure --enable-big-core to assume machines do
- have enough memory to resolve terminfo.src in-memory.
- + correct name of ncurses library in TEST_ARGS when configuring with
- debug library.
- + minor fixes to compile ncurses library with broken-linker with g++.
- + add --enable-broken-linker configure option, default to environment
- variable $BROKEN_LINKER (request by Jeffrey C Honig).
- + change key_names[] array to static since it is not part of the curses
- interface (reported by Jeffrey C Honig <jch@bsdi.com>).
-
-990110
- + add Tera Term terminfo entry - TD
-
-990109
- + reviewed/corrected macros in curses.h as per XSI document.
- + provide support for termcap PC variable by copying it from terminfo
- data and using it as the padding character in tputs (reported by
- Alexander Lukyanov).
- + corrected iris-ansi and iris-ansi-ap terminfo entries for kent and
- kf9-kf12 capabilities, as well as adding kcbt.
- + document the mouse handling mechanism in menu_driver and make a small
- change in menu_driver's return codes to provide more consistency
- (patch by Juergen Pfeifer).
- + add fallback definition for NCURSES_CONST to termcap.h.in (reported
- by Uchiyama Yasushi <uch@nop.or.jp>).
- + move lib_restart.c to ncurses/base, since it uses curses functions
- directly, and therefore cannot be used in libtinfo.so
- + rename micro_char_size to micro_col_size, adding #define to retain
- old name.
- + add set_a_attributes and set_pglen_inch to terminfo structure, as per
- XSI and Solaris 2.5.
- + minor makefile files to build ncurses test_progs
- + update html files in misc directory to reflect changes since 4.2
-
-990102
- + disable scroll hints when hashmap is enabled (patch by Alexander
- Lukyanov).
- + move logic for tic's verify of -e option versus -I and -C so that the
- terminfo data is not processed if we cannot handle -e (reported by
- Steven Schwartz <steves@unitrends.com>.
- + add test-driver traces to terminfo and termcap functions.
- + provide support for termcap ospeed variable by copying it from the
- internal cur_term member, and using ospeed as the baudrate reference
- for the delay_output and tputs functions. If an application does not
- set ospeed, the library behaves as before, except that _nc_timed_wait
- is no longer used, or needed, since ospeed always has a value. But
- the application can modify ospeed to adjust the output of padding
- characters (from a bug report for screen 3.7.6 and email from Michael
- Schroeder <Michael.Schroeder@informatik.uni-erlangen.de>).
- + removed some unused ifdef's as part of Alexander's restructuring.
- + reviewed/updated curses.h, term.h against X/Open Curses Issue 4
- Version 2. This includes making some parameters NCURSES_CONST
- rather than const, e.g., in termcap.h.
- + change linux terminfo entry to use ncv#2, since underline does not
- work with color
-
-981226
- + miscellaneous corrections for curses.h to match XSI.
- + change --enable-no-padding configure option to be normally enabled.
- + add section to ncurses manpage for environment variables.
- + investigated Debian bug report that pertains to screen 3.7.4/3.7.6
- changes, found no sign of problems on Linux (or on SunOS, Solaris)
- running screen built with ncurses.
- + check if tmp_fp is opened in tic.c before closing it (patch by Pavel
- Roskin <pavel_roskin@geocities.com>).
- + correct several font specification typos in man-pages.
-
-981220
- + correct default value for BUILD_CC (reported by Larry Virden).
-
-981219
- + modify _nc_set_writedir() to set a flag in _nc_tic_dir() to prevent
- it from changing the terminfo directory after chdir'ing to it.
- 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
- + 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
- BUILD_CC variable for cross compiling (patch by Uchiyama Yasushi
- <uch@nop.or.jp>)
-
-981212
- + add environment variable NCURSES_NO_SETBUF to allow disabling the
- setbuf feature, for testing purposes.
- + correct ifdef's for termcap.h versus term.h that suppress redundant
- declarations of prototypes (reported by H.J.Lu).
- + modify Makefile.os2 to add linker flags which allow multiple copies
- of an application to coexist (reported by Ilya Zakharevich).
- + update Makefile.glibc and associated configure script so that ncurses
- builds as a glibc add-on with the new directory configuration
- (reported by H.J.Lu).
-
-981205
- + modify gen_reps() function in gen.c to work properly on SunOS
- (sparc), which is a left-to-right architecture.
- + modify relative_move and tputs to avoid an interaction with the
- BSD-style padding. The relative_move function could produce a string
- to replace on the screen which began with a numeric character, which
- was then interpreted by tputs as padding. Now relative_move will not
- generate a string with a leading digit in that case (overwrite).
- Also, tputs will only interpret padding if the string begins with a
- digit; as coded it permitted a string to begin with a decimal point
- or asterisk (reported by Larry Virden).
- > patches by Juergen Pfeifer:
- + fix a typo in m_driver.c mouse handling and improves the error
- handling.
- + fix broken mouse handling in the Ada95 binding
- + make the Ada95 sample application menus work with the new menu mouse
- support
- + improve the mouse handling introduced by Ilya; it now handles menus
- with spacing.
- + repair a minor bug in the menu_driver code discovered during this
- rework.
- + add new function wmouse_trafo() to hide implementation details of
- _yoffset member of WINDOW struct needed for mouse coordinate
- transformation.
-
-981128
- + modify Ada95/gen/gen.c to avoid using return-value of sprintf, since
- some older implementations (e.g., SunOS 4.x) return the buffer
- address rather than its length.
- > patch by Rick Ohnemus:
- + modify demo.cc to get it to compile with newer versions of egcs.
- + trim a space that appears at the end of the table preprocessor lines
- ('\" t). This space prevents some versions of man from displaying
- the pages - changed to remove all trailing whitespace (TD)
- + finally, 'make clean' does not remove panel objects.
- > patches by Ilya Zakharevich:
- + allow remapping of OS/2 mouse buttons using environment variable
- MOUSE_BUTTONS_123 with the default value 132.
- + add mouse support to ncurses menus.
-
-981121
- + modify misc/makedef.cmd to report old-style .def file symbols, and to
- generate the .def files sorted by increasing names rather than the
- reverse.
- + add misc/*.ref which are J.J.G.Ripoll's dll definition files (renamed
- from misc/*.old), and updated based on the entrypoint coding he used
- for an older version of ncurses.
- + add README.emx, to document how to build on OS/2 EMX.
- + updates for config.guess, config.sub from Lynx
- > patches by Ilya Zakharevich:
- + minor fixes for mouse handling mode:
- a) Do not initialize mouse if the request is to have no mouse;
- b) Allow switching of OS/2 VIO mouse on and off.
- + modify Makefile.os2 to support alternative means of generating
- configure script, by translating Unix script with Perl.
- > patches by Juergen Pfeifer:
- + Updates MANIFEST to reflect changes in source structure
- + Eliminates a problem introduced with my last patch for the C++
- binding in the panels code. It removes the update() call done in the
- panel destructor.
- + Changes in the Ada95 binding to better support systems where
- sizeof(chtype)!=sizeof(int) (e.g. DEC Alpha).
-
-981114
- + modify install-script for manpages to skip over .orig and .rej files
- (request by Larry Virden).
- > patches/discussion by Alexander Lukyanov:
- + move base-library sources into ncurses/base and tty (serial terminal)
- sources into ncurses/tty, as part of Alexander Lukyanov's proposed
- changes to ncurses library.
- + copy _tracemouse() into ncurses.c so that lib_tracemse.c need not
- be linked into the normal ncurses library.
- + move macro winch to a function, to hide details of struct ldat
- > patches by Juergen Pfeifer:
- + fix a potential compile problem in cursesw.cc
- + some Ada95 cosmetics
- + fix a gen.c problem when compiling on 64-Bit machines
- + fix Ada95/gen/Makefile.in "-L" linker switch
- + modify Ada95 makefiles to use the INSTALL_PREFIX setting.
-
-981107
- + ifdef'd out lib_freeall.c when not configured.
- + rename _tracebits() to _nc_tracebits().
- + move terminfo-library sources into ncurses/tinfo, and trace-support
- functions into ncurses/trace as part of Alexander Lukyanov's proposed
- changes to ncurses library.
- + modify generated term.h to always specify its own definitions for
- HAVE_TERMIOS_H, etc., to guard against inclusion by programs with
- broken configure scripts.
-
-981031
- + modify terminfo parsing to accept octal and hexadecimal constants,
- like Solaris.
- + remove an autoconf 2.10 artifact from the configure script's check
- for "-g" compiler options. (Though harmless, this confused someone
- at Debian, who recently issued a patch that results in the opposite
- effect).
- + add configure option --with-ada-compiler to accommodate installations
- that do not use gcc as the driver for GNAT (patch by Juergen
- Pfeifer).
-
-981017
- + ensure ./man exists in configure script, needed when configuring
- 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 mk-2nd.awk to handle subdirectories, e.g., ncurses/tty
- (patch by Alexander V Lukyanov).
-
-981010
- + modify --with-terminfo-dirs option so that the default value is the
- ${datadir} value, unless $TERMINFO_DIRS is already set. This gets
- rid of a hardcoded list of candidate directories in the configure
- script.
- + add some error-checking to _nc_read_file_entry() to ensure that
- strings are properly terminated (Todd C Miller).
- + rename manpage file curs_scr_dmp.3x to curs_scr_dump.3x, to
- correspond with contents (reported by Neil Zanella
- <nzanella@cs.mun.ca>).
- + remove redundant configure check for C++ which did not work when $CXX
- was specified with a full pathname (reported by Andreas Jaeger).
- + corrected bcopy/memmove check; the macro was not standalone.
-
-981003
- + remove unnecessary portion of OS/2 EMX mouse change from
- check_pending() (reported by Alexander V Lukyanov).
-
-980926
- + implement mouse support for OS/2 EMX (adapted from patch against
- 4.2(?) by Ilya Zakharevich).
- + add configure-check for bcopy/memmove, for 980919 changes to hashmap.
- + merge Data General terminfo from Hasufin <hasufin@vidnet.net> - TD
- + merge AIX 3.2.5 terminfo descriptions for IBM terminals, replaces
- some older entries - TD
- + modify tic to compile into %'char' form in preference to %{number},
- since that is a little more efficient.
- + minor correction to infocmp to avoid displaying "difference" between
- two capabilities that are rendered in equivalent forms.
- + add -g option to tic/infocmp to force character constants to be
- displayed in quoted form. Otherwise their decimal values are shown.
- + modify setupterm so that cancelled strings are treated the same as
- absent strings, cancelled and absent booleans false (does not affect
- tic, infocmp).
- + modify tic, infocmp to discard redundant i3, r3 strings when output
- to termcap format.
- > patch by Alexander V Lukyanov:
- + improve performance of tparm, now it takes 19% instead of 25% when
- profiling worm.
- + rename maxlen/minlen to prec/width for better readability.
- + use format string for printing strings.
- + use len argument correctly in save_text, and pass it to save_number.
-
-980919
- + make test_progs compile (but hashmap does not function).
- + correct NC_BUFFERED macro, used in lib_mvcur test-driver, modify
- associated logic to avoid freeing the SP->_setbuf data.
- + add modules home_terminfo and getenv_num to libtinfo.
- + move write_entry to libtinfo, to work with termcap caching.
- + minor fixes to blue.c to build with atac.
- + remove softscroll.c module; no longer needed for testing.
- > patches by Todd C Miller:
- + use strtol(3) instead of atoi(3) when parsing env variables so we can
- detect a bogus (non-numeric) value.
- + check for terminal names > MAX_NAME_SIZE in a few more places when
- dealing with env variables again.
- + fix a MAX_NAME_SIZE that should be MAX_NAME_SIZE+1
- + use sizeof instead of strlen(3) on PRIVATE_INFO since it is a fixed
- string #define (compile time vs runtime).
- + when setting errno to ENOMEM, set it right before the return, not
- before code that could, possibly, set errno to a different value.
- > patches by Alexander V Lukyanov:
- + use default background in update_cost_from_blank()
- + disable scroll-hints when hashmap is configured.
- + 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 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
- insert_padding in insert mode after each char. This adds new costs
- to the SP struct.
-
-980912
- + 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
- never were HTML 2.0-compliant, but are acceptable 3.0).
-
-980905
- + modify MKterminfo.sh to generate terminfo.5 with tables sorted by
- capability name, as in SVr4.
- + modified term.h, termcap.h headers to avoid redundant declarations.
- + change 'u_int' type in tset.c to unsigned, making this compile on
- Sequent PRX 4.1 (reported by Michael Sterrett <msterret@coat.com>).
-
-980829
- + corrections to mailing addresses, and moving the magic line that
- causes the man program to invoke tbl to the first line of each
- manpage (patch by Rick Ohnemus <rick@ecompcon.com>).
- + add Makefile.os2 and supporting scripts to generate dll's on OS/2 EMX
- (from J.J.G.Ripoll, with further integration by TD).
- + correct a typo in icl6404 terminfo entry.
- + add xtermm and xtermc terminfo entries.
- > from esr's terminfo version:
- + Added Francesco Potorti's tuned Wyse 99 entries.
- + dtterm enacs correction from Alexander V Lukyanov.
- + Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version.
-
-980822
- + document AT&T acs characters in terminfo.5 manpage.
- + use EMX _scrsize() function if terminfo and environment do not
- declare the screen size (reported by Ilya Zakharevich
- <ilya@math.ohio-state.edu>).
- + remove spurious '\' characters from eterm and osborne terminfo
- entries (prompted by an old Debian bug report).
- + correct reversed malloc/realloc calls in _nc_doalloc (reported by
- Hans-Joachim Widmaier <hjwidmai@foxboro.com>).
- + correct misplaced parenthesis which caused file-descriptor from
- opening termcap to be lost, from 980725 changes (reported by Andreas
- Jaeger).
-
-980815
- + 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.
-
-980809
- + correct missing braces around a trace statement in read_entry.c,
- from 980808 (reported by Kim DeVaughn <kimdv@best.com> and Liviu
- Daia).
-
-980808
- + fix missing include <errno.h> in ditto.c (reported by Bernhard
- Rosenkraenzer <bero@k5.sucks.eu.org>)
- + add NCSA telnet terminfo entries from Francesco Potorti
- <F.Potorti@cnuce.cnr.it>, from Debian bug reports.
- + make handling of $LINES and $COLUMNS variables more compatible with
- Solaris by allowing them to individually override the window size
- as obtained via ioctl.
-
-980801
- + modify lib_vidattr.c to allow for terminal types (e.g., xterm-color)
- which may reset all attributes in the 'op' capability, so that colors
- are set before turning on bold and other attributes, but still after
- turning attributes off.
- + add 'ditto.c' to test directory to illustrate use of newterm for
- initializing multiple screens.
- + modify _nc_write_entry() to recover from failed attempt to link alias
- for a terminfo on a filesystem which does not preserve character case
- (reported by Peter L Jordan <PJordan@chla.usc.edu>).
-
-980725
- + updated versions of config.guess and config.sub based on automake 1.3
- + change name-comparisons in lib_termcap to compare no more than 2
- characters (gleaned from Debian distribution of 1.9.9g-8.8, verified
- with Solaris curses).
- + fix typo in curs_insstr.3x (patch by Todd C Miller)
- + use 'access()' to check if ncurses library should be permitted to
- open or modify files with fopen/open/link/unlink/remove calls, in
- case the calling application is running in setuid mode (request by
- Cristian Gafton <gafton@redhat.com>, responding to Duncan Simpson
- <dps@io.stargate.co.uk>).
- + arm100 terminfo entries from Dave Millen <dmill@globalnet.co.uk>).
- + qnxt2 and minitel terminfo entries from esr's version.
-
-980718
- + use -R option with ldconfig on FreeBSD because otherwise it resets
- 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).
- + correct conversion of CANCELLED_NUMERIC in write_object(), which was
- omitting the high-order byte, producing a 254 in the compiled
- terminfo.
- + modify return-values of tgetflag, tgetnum, tgetstr, tigetflag,
- tigetnum and tigetstr to be compatible with Solaris (gleaned from
- Debian distribution of 1.9.9g-8.8).
- + modify _nc_syserr_abort to abort only when compiled for debugging,
- otherwise simply exit with an error.
-
-980711
- + modify Ada95 'gen' program to use appropriate library suffix (e.g.,
- "_g" for a debug build).
- + update Ada95 'make clean' rule to include generics .ali files
- + add a configure test to ensure that if GNAT is found, that it can
- compile/link working Ada95 program.
- + flush output in beep and flash functions, fixing a problem with
- getstr (patch by Alexander V Lukyanov)
- + fix egcs 1.0.2 warning for etip.h (patch by Chris Johns).
- + correct ifdef/brace nesting in lib_sprintf.c (patch by Bernhard
- Rosenkraenzer <bero@Pool.Informatik.RWTH-Aachen.DE>).
- + correct typo in wattr_get macro from 980509 fixes (patch by Dan
- Nelson).
-
-980704
- + merge changes from current XFree86 xterm terminfo descriptions.
- + add configure option '--without-ada'.
- + add a smart-default for termcap 'ac' to terminfo 'acs_chars' which
- corresponds to vt100.
- + change translation for termcap 'rs' to terminfo 'rs2', which is
- the documented equivalent, rather than 'rs1'.
-
-980627
- + slow 'worm' down a little, for very fast machines.
- + corrected firstchar/lastchar computation in lib_hline.c
- + simplify some expressions with CHANGED_CELL, CHANGED_RANGE and
- CHANGED_TO_EOL macros.
- + modify init_pair so that if a color-pair is reinitialized, we will
- repaint the areas of the screen whose color changes, like SVr4 curses
- (reported by Christian Maurer <maurer@inf.fu-berlin.de>).
- + modify getsyx/setsyx macros to comply with SVr4 man-page which
- says that leaveok() affects their behavior (report by Darryl Miles,
- patch by Alexander V Lukyanov).
-
-980620
- + review terminfo.5 against Solaris 2.6 curses version, corrected
- several minor errors/omissions.
- + implement tparm %l format.
- + implement tparm printf-style width and precision for %s, %d, %x, %o
- as per XSI.
- + implement tparm dynamic variables (reported by Xiaodan Tang).
-
-980613
- + update man-page for for wattr_set, wattr_get (cf: 980509)
- + correct limits in hashtest, which would cause nonprinting characters
- to be written to large screens.
- + correct configure script, when --without-cxx was specified: the
- wrong variable was used for cf_cv_type_of_bool. Compilers up to gcc
- 2.8 tolerated the missing 'int'.
- + remove the hardcoded name "gcc" for the GNU Ada compiler. The
- compiler's name might be something like "egcs" (patch by Juergen
- Pfeifer).
- + correct curs_addch.3x, which implied that echochar could directly
- display control characters (patch by Alexander V Lukyanov).
- + fix typos in ncurses-intro.html (patch by Sidik Isani
- <isani@cfht.hawaii.edu>)
-
-980606
- + add configure test for conflicting use of exception in math.h and
- other headers.
- + minor optimization to 'hash()' function in hashmap.c, reduces its
- time by 10%.
- + correct form of LD_SHARED_OPTS for HP-UX 10.x (patch by Tim Mooney).
- + fix missing quotes for 'print' in MKunctrl.awk script (reported by
- Mihai Budiu <mihaib@gs41.sp.cs.cmu.edu>).
- > patch by Alexander V Lukyanov:
- + correct problem on Solaris (with poll() function) where getch could
- hang indefinitely even if timeout(x) was called. This turned out to
- be because milliseconds was not updated before 'goto retry' in
- _nc_timed_wait.
- + simplified the function _nc_timed_wait and fixed another bug, which
- was the assumption of !GOOD_SELECT && HAVE_GETTIMEOFDAY in *timeleft
- assignment.
- + removed the cycle on EINTR, as it seems to be useless.
-
-980530
- + add makefile-rule for test/keynames
- + modify run_tic.sh and shlib to ensure that user's .profile does not
- override the $PATH used to run tic (patch by Tim Mooney).
- + restore LD_SHARED_OPTS to $(LD_SHARED_FLAGS) when linking programs,
- needed for HP-UX shared-library path (recommended by Tim Mooney).
- + remove special case of HP-UX -L options, use +b options to embed
- $(libdir) in the shared libraries (recommended by Tim Mooney).
- + add checks for some possible buffer overflows and unchecked
- malloc/realloc/calloc/strdup return values (patch by Todd C Miller
- <Todd.Miller@courtesan.com>)
-
-980523
- + correct maxx/maxy expression for num_columns/num_lines in derwin
- (patch by Alexander V Lukyanov).
- + add /usr/share/lib/terminfo and /usr/lib/terminfo as compatibilty
- fallbacks to _nc_read_entry(), along with --with-terminfo-dirs
- configure option (suggested by Mike Hopkirk).
- + modify config.guess to recognize Unixware 2.1 and 7 (patch by Mike
- Hopkirk <hops@sco.com>).
- + suppress definition of CC_SHARED_OPTS in LDFLAGS_SHARED in c++
- Makefile.in, since this conflicts when g++ is used with HP-UX
- compiler (reported by Tim Mooney).
- + parenthesize 'strcpy' calls in c++ binding to workaround redefinition
- in some C++ implementations (reported by several people running
- egcs with glibc 2.0.93, analysis by Andreas Jaeger.
-
-980516
- + modify write_entry.c so that it will not attempt to link aliases
- with embedded '/', but give only a warning.
- + put -L$(libdir) first when linking programs, except for HP-UX.
- + modify comp_scan.c to handle SVr4 terminfo description for att477,
- which contains a colon in the description field.
- + modify configure script to support SCO osr5.0.5 shared libraries
- (from comp.unix.sco.programmer newsgroup item by Mike Hopkirk
- <hops@sco.com>).
- + eliminate extra GoTo call in lib_doupdate.c (patch by Alexander V.
- Lukyanov).
- + minor adjustments of const/NCURSES_CONST from IRIX compile.
- + add updates based on esr's 980509 version of terminfo.src.
-
-980509
- + correct macros for wattr_set, wattr_get, separate wattrset macro from
- these to preserve behavior that allows attributes to be combined with
- color pair numbers.
- + add configure option --enable-no-padding, to allow environment
- variable $NCURSES_NO_PADDING to eliminate non-mandatory padding,
- thereby making terminal emulators (e.g., for vt100) a little more
- efficient (request by Daniel Eisenbud <eisenbud@cs.swarthmore.edu>).
- + modify configure script to embed ABI in shared libraries for HP-UX
- 10.x (detailed request by Tim Mooney).
- + add test/example of the 'filter()' function.
- + add nxterm and xterm-color terminfo description (request by Cristian
- Gafton <gafton@redhat.com>).
- + modify rxvt terminfo description to clear alternate screen before
- switching back to normal screen, for compatibility with applications
- which use xterm (reported by Manoj Kasichainula <manojk@io.com>).
- + modify linux terminfo description to reset color palette (reported
- by Telford Tendys <telford@eng.uts.edu.au>).
- + correction to doupdate, for case where terminal does not support
- insert/delete character. The logic did not check that there was a
- difference in alignment of changes to old/new screens before
- repainting the whole non-blank portion of the line. Modified to fall
- through into logic that reduces by the portion which does not differ
- (reported by Daniel Eisenbud <eisenbud@cs.swarthmore.edu>).
- + minor performance improvement to wnoutrefresh by moving some
- comparisons out of inner loop.
-
-980425
- + modify configure script to substitute NCURSES_CONST in curses.h
- + updated terminfo entries for xterm-xf86-v40, xterm-16color,
- xterm-8bit to correspond to XFree86 3.9Ag.
- + remove restriction that forces ncurses to use setaf/setab if the
- number of colors is greater than 8. (see 970524 for xterm-16color).
- + change order of -L options (so that $(libdir) is searched first) when
- linking tic and other programs, to workaround HP's linker.
- Otherwise, the -L../lib is embedded when linking against shared
- libraries and the installed program does not run (reported by Ralf
- Hildebrandt).
- + modify configuration of shared libraries on Digital Unix so that
- versioning is embedded in the library, rather than implied by
- links (patch by Tim Mooney).
-
-980418
- + modify etip.h to avoid conflict with math.h on HP-UX 9.03 with gcc
- 2.8.1 which redefines 'exception' (reported by Ralf Hildebrandt
- <R.Hildebrandt@tu-bs.de>).
- + correct configure tests in CF_SHARED_OPTS which used $CC value to
- check for gcc, rather than autoconf's $GCC value. This did not
- work properly if the full pathname of the compiler were given
- (reported by Michael Yount <yount@csf.Colorado.edu>).
- + revise check for compiler options to force ANSI mode since repeating
- an option such as -Aa causes HP's compiler to fail on its own headers
- (reported by Clint Olsen <olsenc@ichips.intel.com>).
-
-980411
- + ifdef'd has_key() and mcprint() as extended functions.
- + modified several prototypes to correspond with 1997 version of
- X/Open Curses (affects ABI since developers have used attr_get).
- + remove spurious trailing blanks in glibc addon-scripts (patch by
- H.J.Lu).
- + insert a few braces at locations where gcc-2.8.x asks to use them to
- avoid ambigous else's, use -fpic rather than -fPIC for Linux (patch
- by Juergen Pfeifer).
-
-980404
- + split SHLIB_LIST into SHLIB_DIRS/SHLIB_LIST to keep -L options
- before -l to accommodate Solaris' linker (reported by Larry Virden).
-
-980328
- + modify lib_color.c to eliminate dependency on orig_colors and
- orig_pair, since SVr4 curses does not require these either, but
- uses them when they are available.
- + add detailed usage-message to infocmp.
- + correct a typo in att6386 entry (a "%?" which was "?").
- + add -f option to infocmp and tic, which formats the terminfo
- if/then/else/endif so that they are readable (with newlines and
- tabs).
- + fixes for glibc addon scripts (patch by H.J.Lu).
-
-980321
- + revise configure macro CF_SPEED_TYPE so that termcap.h has speed_t
- declared (from Adam J. Richter <adam@yggdrasil.com>)
- + remove spurious curs_set() call from leaveok() (J.T.Conklin).
- + corrected handling leaveok() in doupdate() (patch by Alexander V.
- Lukyanov).
- + improved version of wredrawln (patch by Alexander V. Lukyanov).
- + correct c++/Makefile.in so install target do not have embedded ../lib
- to confuse it (patch by Thomas Graf <graf@essi.fr>).
- + add warning to preinstall rule which checks if the installer would
- overwrite a curses.h or termcap.h that is not derived from ncurses.
- (The recommended configuration for developers who need both is to
- use --disable-overwrite).
- + modify preinstall rule in top-level Makefile to avoid implicit
- use of 'sh', to accommodate Ultrix 4.4 (reported by Joao Palhoto
- Matos <jmatos@math.ist.utl.pt>, patch by Thomas Esser
- <te@informatik.uni-hannover.de>)
- + refine ifdef's for TRACE so that libncurses has fewer dependencies
- on libtinfo when TRACE is disabled.
- + modify configure script so that if the --with-termlib option is used
- to generate a separate terminfo library, we chain it to the ncurses
- library with a "-l" option (reported by Darryl Miles and Ian T.
- Zimmerman).
-
-980314
- + correct limits and window in wredrawln function (reported/analysis by
- Alexander V. Lukyanov).
- + correct sed expression in configure script for --with-fallback
- option (patch by Jesse Thilo).
- + correct some places in configure script where $enableval was used
- rather than $withval (patch by Darryl Miles <dlm@g7led.demon.co.uk>).
- + modify some man-pages so no '.' or '..' falls between TH and SH
- macros, to accommodate man_db program (reported by Ian T. Zimmerman
- <itz@rahul.net>).
- + terminfo.src 10.2.1 from Eric's webpage.
- > several changes by Juergen Pfeifer:
- + add copyright notices (and rcs id's) on remaining man-pages.
- + corrected prototypes for slk_* functions, using chtype rather than
- attr_t.
- + implemented the wcolor_set() and slk_color() functions
- + the slk_attr_{set,off,on} functions need an additional void*
- parameter according to XSI.
- + fix the C++ and Ada95 binding as well as the man pages to
- reflect above enhancements.
-
-980307
- + use 'stat()' rather than 'access()' in toe.c to check for the
- existence of $HOME/.terminfo, since it may be a file.
- + suppress configure CF_CXX_LIBRARY check if we are not using g++
- 2.7.x, since this is not needed with g++ 2.8 or egcs (patch by
- Juergen Pfeifer).
- + turn on hashmap scrolling code by default, intend to remedy defects
- by 4.3 release.
- + minor corrections to terminfo.src changelog.
-
-980302 4.2 release for upload to prep.ai.mit.edu
- + correct Florian's email address in ncurses-intro.html
- + terminfo.src 10.2.0 from Eric.
-
-980228 pre-release
- + add linux-koi8r replace linux-koi8, which is not KOI8 (patch by
- QingLong <qinglong@Bolizm.ihep.su>).
- + minor documentation fixes (patch by Juergen Pfeifer).
- + add setlocale() call to ncurses.c (reported by Claes G. Lindblad
- <claesg@algonet.se>).
- + correct sign-extension in lib_insstr.c (reported by Sotiris
- Vassilopoulos <svas@leon.nrcps.ariadne-t.gr>)
-
-980221 pre-release
- + regenerated some documentation overlooked in 980214 patch
- (ncurses-intro.doc, curs_outopts.3x.html)
- + minor ifdef change to C++ binding to work with gcc 2.8.0 (patch by
- Juergen Pfeifer).
- + change maintainer's mailing address to florian@gnu.org, change
- tentative mailing list address to bug-ncurses-request@gnu.org (patch
- by Florian La Roche).
- + add definition of $(REL_VERSION) to c++/Makefile.in (reported by Gran
- Hasse <gh@raditex.se>).
- + restore version numbers to Ada95 binding, accidentally deleted by
- copyright patch (patch by Juergen Pfeifer).
-
-980214 pre-release
- + remove ncurses.lsm from MANIFEST so that it won't be used in FSF
- distributions, though it is retained in development.
- + correct scaling of milliseconds to nanoseconds in lib_napms.c (patch
- by Jeremy Buhler).
- + update mailing-list information (bug-ncurses@gnu.org).
- + update announcement for upcoming 4.2 release.
- + modify -lm test to check for 'sin()' rather than 'floor()'
- + remove spurious commas from terminfo.src descriptions.
- + change copyright notices to Free Software Foundation
-
-980207
- + minor fixes for autoconf macros CF_ERRNO, CF_HELP_MESSAGE and
- CF_SIZECHANGE
- + modify Makefile.glibc so that $(objpfx) is defined (H.J.Lu).
- + ifdef-out true-return from _nc_mouse_inline() which depends on
- merge of QNX patch (pending 4.2 release).
- > patch by J.T.Conklin, to split off seldom-used modules in ncurses
- (reduces size by up to 2.6kb):
- + move functionality of _nc_usleep into napms, add configuration case
- for nanosleep().
- + moved wchgat() from lib_addch.c to lib_chgat.c
- + moved clearok(), immedok(), leaveok(), and scrollok() from
- lib_options.c to lib_clearok.c, lib_immedok.c, lib_leaveok.c and
- lib_scrollok.c.
- + moved napms() from lib_kernel.c to lib_napms.c
- + moved echo() and noecho() from lib_raw.c to lib_echo.c
- + moved nl() and nonl() from lib_raw.c to lib_nl.c
-
-980131
- + corrected conversion in tclock.c (cf: 971018).
- + updates to Makefile.glibc and associated Linux configure script
- (patch by H.J.Lu).
- + 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
- + add ncv capability to FreeBSD console (cons25w), making reverse
- work with color.
- + correct sense of configure-test for sys/time.h inclusion with
- sys/select.h
- + fixes for Ada95/ada_include/Makefile.in to work with --srcdir option.
- + remove unused/obsolete test-program rules from progs/Makefile.in
- (the rules in ncurses/Makefile.in work).
- + 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.
- > 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
- + add QNX-specific prototype for vsscanf()
- + move initialization of SP->_keytry from init_keytry() to newterm() to
- avoid resetting it via a keyok() call by mouse_activate().
- + reorganized some functions in lib_mouse() to use case-statements.
- + remove sgr string from qnx terminfo entry since it is reported to
- turn off attributes inconsistently.
-
-980124
- + add f/F/b/B commands to ncurses 'b' test to toggle colors, providing
- test for no_color_video.
- + adjusted emx.src to use no_color_video, now works with ncurses 'b'
- and 'k' tests.
- + implement no_color_video attribute, and as a special case, reverse
- colors when the reverse attribute cannot be combined with color.
- + check for empty string in $TERM variable (reported by Brett Michaels
- <brett@xylan.com>).
- > from reports by Fred Fish:
- + add configure-test for isascii
- + add configure-test for -lm library.
- + modify CF_BOOL_SIZE to check if C++ bool types are unsigned.
- > patches by J.J.G.Ripoll
- + add configure/makefile variables to support .exe extension on
- OS/2 EMX (requires additional autoconf patches).
- + explicitly initialize variables in lib_data.c to appease OS/2 linker
- > patches by Fred Fish <fnf@ninemoons.com>
- + misc/Makefile.in (install.data): Avoid trying to install the CVS
- directory.
- + aclocal.m4 (install.includes): Remove files in the include directory
- where we are going to install new ones, not the original source
- files.
- + misc/terminfo.src: Add entry for "beterm", derived from termcap
- distributed with BeOS PR2 using captoinfo.
- + aclocal.m4: Wrap $cf_cv_type_of_bool with quotes (contains space)
- + aclocal.m4: Assume bool types are unsigned.
- + progs/infocmp.c: workaround mwcc 32k function data limit
-
-980117
- + correct initialization of color-pair (from 970524) in xmas.c, which
- was using only one color-pair for all colors (reported by
- J.J.G.Ripoll).
- + add multithread options for objects build on EMX, for compatibility
- with XFree86.
- + split up an expression in MKlib_gen.sh to work around a problem on
- OS/2 EMX, with 'ash' (patch by J.J.G.Ripoll).
- + change terminfo entries xterm (xterm-xf86-v40), xterm-8bit rs1 to use
- hard reset.
- + rename terminfo entry xterm-xf86-v39t to xterm-xf86-v40
- + remove bold/underline from sun console entries since they're not
- implemented.
- + correct _tracef calls in _tracedump(), which did not separate format
- from parameters.
- + correct getopt string for tic "-o" option, and add it to man-page
- synopsis (reported by Darren Hiebert <darren@hmi.com>).
- + correct typo in panel/Makefile.in, reversed if-statement in scrolling
- optimization (Alexander V. Lukyanov).
- + test for 'remove()', use 'unlink() if not found (patch by Philippe De
- Muyter <phdm@macqel.be>).
- > patches by Juergen Pfeifer:
- + Improve a feature of the forms driver. For invisible fields
- (O_VISIBLE off) only the contents but not the attributes are cleared.
- We now clear both. (Reported by Javier Kohan
- <jkohan@adan.fceia.unr.edu.ar>)
- + The man page form_field_opts.3x makes now clear, that invisible
- fields are also always inactive.
- + adjust ifdef's to compile the C++ binding with the just released
- gcc-2.8.0 c++ and the corresponding new C++ libraries.
-
-980110
- + correct "?" command in ncurses.c; it was performing non-screen writes
- while the program was in screen mode. (It "worked" in 1.9.9e because
- that version sets OPOST and OCRNL incorrectly).
- + return error from functions in lib_kernel, lib_raw and lib_ti if
- cur_term is null, or if underlying I/O fails.
- + amend change to tputs() so that it does not return an error if
- cur_term is null, since some applications depend on being able to use
- tputs without initializing the terminal (reported by Christian J.
- Robinson <infynity@cyberhighway.net>).
-
-980103
- + add a copy of emx.src from J.J.G.Ripoll's OS/2 EMX version of ncurses
- 1.9.9e, together with fixes/additions for the "ansi" terminal type.
- + add tic check for save/restore cursor if change_scroll_region is
- defined (from O'Reilly book).
- + modify read_termcap.c to handle EMX-style pathnames (reported by
- J.J.G.Ripoll).
- + modify lib_raw.c to use EMX's setmode (from J.J.G.Ripoll, who says
- EMX's curses does this).
- + modify _nc_tic_expand() to generate \0 rather than \200.
- + move/revise 'expand()' from dump_entry.c to ncurses library as
- _nc_tic_expand(), for use by tack.
- + decode \a as \007 for terminfo, as per XSI.
- + correct translation of terminfo "^@", to \200, like \0.
- + modify next_char() to treat <cr><lf> the same as <newline>, for
- cross-platform compatibility.
- + use new version of autoconf (971230) to work around limited
- environment on CLIX, due to the way autoconf builds --help message.
- > patch by Juergen Pfeifer:
- + check that the Ada95 binding runs against the correct version of
- ncurses.
- + insert constants about the library version into the main spec-file of
- the Ada95 binding.
-
-971227
- + modify open/fopen calls to use binary mode, needed for EMX.
- + modify configure script to work with autoconf 2.10 mods for OS/2
- EMX from J.J.G.Ripoll.
- + generated ncurses_cfg.h with patch (971222) to autoconf 2.12 which
- bypasses limited sed buffer length.
- > several changes from Juan Jose Garcia Ripoll <worm@arrakis.es>
- (J.J.G.Ripoll) to support OS/2 EMX:
- + add a _scrolling flag to SP, to set when we encounter a terminal
- that simply cannot scroll.
- + corrected logic in _nc_add_to_try(), by ensuring that strings with
- embedded \200 characters are matched.
- + don't assume the host has 'link()' function, for linking terminfo
- entries.
-
-971220
- + if there's no ioctl's to support sigwinch handler, disable it.
- + add configure option --disable-ext-funcs to remove the extended
- functions from the build.
- + add configure option --with-termlib to generate the terminfo
- functions as a separate library.
- + add 'sources' rule to facilitate cross-compiling.
- + review/fix order of mostlyclean/clean/distclean rules.
- + modify install-rule for headers to first remove old header, in
- case there was a symbolic link that confuses the install script.
- + corrected substitution for NCURSES_CONST in term.h (cf: 971108)
- + add null pointer checks in wnoutrefresh(), overlap() (patch by
- Xiaodan Tang <xtang@qnx.com>)
- + correct tputs(), which could dereference a null cur_term if invoked
- before terminal is initialized (patch by Christopher Seawood
- <cls@seawood.org>)
- > patch by Juergen Pfeifer:
- + makes better use of "pragma Inline" in the Ada95 binding
- + resynchronizes the generated html manpages
-
-971213
- + additional fixes for man-pages section-references
- + add (for debugging) a check for ich/ich1 conflict with smir/rmir
- to tic, etc.
- + remove hpa/vpa from rxvt terminal description because they are not
- implemented correctly, added sgr0.
- + change ncurses 's' to use raw mode, so ^Q works (reported by Rudolf
- Leitgeb <leitgeb@leland.stanford.edu>)
-
-971206
- + modify protection when installing libraries to (normally) not
- executable. HP-UX shared libraries are an exception.
- + add configure check for 'tack'.
- + implement script for renaming section-references in man-page install,
- for Debian configuration.
- + add validity-check for SP in trace code in baudrate() (reported by
- Daniel Weaver).
- > patch by Alexander V. Lukyanov (fixes to match sol25 curses)
- + modify 'overlay()' so that copy applies target window background to
- characters.
- + correct 'mvwin()' so that it does not clear the previous locations.
- + correct lib_acs.c so that 8-bit character is not sign expanded in
- case of wide characters in chtype.
- + correct control-char test in lib_addch.c for use with wide chars
- + use attribute in the chtype when adding a control character in
- lib_addch.c control char was added with current attribute
-
-971129
- + save/restore errno in _tracef() function
- + change treatment of initialize_color to use a range of 0..1000
- (recommended by Daniel Weaver).
- + set umask in mkinstalldirs, fixing problems reported by users who
- have set root's umask to 077.
- + correct bug in tic that caused capabilities to be reprinted at the
- end of output when they had embedded comments.
- + rewrote wredrawln to correspond to XSI, and split-out since it is
- not often used (from report by Alexander V. Lukyanov, 970825)
- + rewrote Dan Nelson's change to make it portable, as well as to
- correct logic for handling backslashes.
- + add code to _nc_tgetent() to make it work more like a real tgetent().
- It removes all empty fields, and removes all but the first in a group
- of duplicate caps. The code was pulled from the BSD libtermcap code
- in termcap.c (patch by Dan Nelson <dnelson@emsphone.com>
- + don't include --enable-widec in the --with-develop configure option,
- since it is not binary-compatible with 4.1 (noted by Alexander V.
- Lukyanov)
- > patch by Juergen Pfeifer:
- + further improvements of the usage of elaboration pragmas in the Ada95
- binding
- + enhanced Ada95 sample to use the user_data mechanism for panels.
- + a fix for the configuration script to make gnat-3.10 the required
- version.
- + resync of the html version of the manpages
-
-971122
- > fixes/updates for terminfo.src:
- + add vt220-js, pilot, rbcomm, datapoint entries from esr's 27-jun-97
- version.
- + add hds200 description (Walter Skorski)
- + add EMX 0.9b descriptions
- + correct rmso/smso capabilities in wy30-mc and wy50-mc (Daniel Weaver)
- + rename xhpterm back to hpterm.
- > patch by Juergen Pfeifer:
- + Improves the usage of elaboration pragmas for the Ada95 binding.
- + Adds a translation of the test/rain.c into Ada95 to the samples.
- This has been contributed to the project by Laurent Pautet
- (pautet@gnat.com)
-
-971115
- + increase MAX_NAME_SIZE to 512 to handle extremely long alias list
- in HP-UX terminfo.
- + correction & simplification of delay computation in tputs, based on
- comments from Daniel Weaver.
- + replace test for SCO with more precise header tests.
- + add configure test for unsigned literals, use in NCURSES_BITS macro.
- + comment-out the -PIC, etc., flags from c++, progs and test makefiles
- since they probably are not needed, and are less efficient (noted by.
- Ju"rgen Fluk)
- + add -L$(libdir) to loader options, after -L../lib so that loaders
- that record this information will tend to do the right thing if
- the programs are moved around after installing them (suggested by.
- Ju"rgen Fluk).
- + add -R option to loader options for programs for Solaris if the
- --enable-rpath option is specified for the libraries.
-
-971112
- + correct installed filename for shared libraries on *BSD (reported by
- Ju"rgen Fluk).
-
-971108
- + cleanup logic for deciding when tputs() should call delay_output(),
- based on comments from Daniel Weaver.
- + modified tputs() to avoid use of float.
- + correct use of trailpad in tputs(), which used the wrong variable
- in call to delay_output().
- + correct inverted expression for null-count in delay_output()
- (analysis by Daniel Weaver).
- + apply --enable-rpath option to Solaris (requested by Larry Virden).
- + correct substitution of EXTRA_CFLAGS for gcc 2.6.3
- + correct check for error-return by _nc_tgetent(), which returns 0
- for success.
- + add configure test for BSD 4.4 cgetent() function, modify
- read_termcap.c to use the host's version of that if found, using the
- terminal database on FreeBSD (reported by Peter Wemm).
- + add u8, u9 strings to sun-il description for Daniel Weaver.
- + use NCURSES_CONST in panel's user-pointer.
- + modify edit_cfg.sh and MKterm.h.awk.in to substitute NCURSES_CONST
- so that will work on NeXT.
- + use _nc_set_screen() rather than assignments to SP to fix port to
- NeXT (reported by Francisco A. Tomei Torres).
-
-971101
- + 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
- defined, or if the cur_term pointer is not initialized. XSI treats
- this as unspecified. (requested by Daniel Weaver).
- + change getcap-cache ifdef's to eliminate unnecessary chdir/mkdir
- when that feature is not configured.
- + remove _nc_err_abort() calls when write_entry.c finds a directory but
- cannot write to it, e.g., when translating part/all of /etc/termcap
- (reported by Andreas Jaeger <aj@arthur.rhein-neckar.de>).
- (this dates back to 951102, in 1.9.7a).
- + minor ifdef fixes to compile with atac and glibc 2.0.5c
- + add check for -lgen when configuring regexpr.h
- + modify Solaris shared-library option "-d y" to "-dy" to workaround
- incompatibility of gcc 2.7.2 vs vendor's tools.
-
-971026
- + correct ifdef's for struct winsize vs struct ttysize in lib_setup.c
- to compile on SCO.
- + remove dangling backslash in panel/Makefile.in
- + modify MKkeyname.awk to work with SCO's nawk, which dumps core in the
- length() function.
- + correct length of allocation in _nc_add_to_try(), to allow for
- trailing null.
- + correct logic in _nc_remove_key(), which was discarding too many
- nodes (patch by Alexander V. Lukyanov)
-
-971025
- + add definition for $(REL_VERSION) to test/Makefile.in, so *BSD
- shared libraries link properly (see 970524).
- + modify Linux shared-library generation to include library
- dependencies (e.g., -lncurses and -lgpm) in the forms, menu and
- panel libraries (suggested by Juergen Pfeifer).
- + modify configure script to use config.guess and config.sub rather
- than uname, which is unreliable on some systems.
- + updated Makefile.glibc, test-built with glibc 2.0.5c
- + modify keyname() to return values consistent with SVr4 curses (patch
- by Ju"rgen Fluk).
- > changes requested by Daniel Weaver:
- + modify delay_output() so that it uses the same output function as
- tputs() if called from that function.
- + move _baudrate from SCREEN to TERMINAL so that low-level use of
- tputs works when SP is not set.
- > patch by Juergen Pfeifer:
- + factor lib_menu and lib_form into smaller modules
- + clean up the interface between panel and SCREEN
- + minor changes to the Ada95 mouse support implemenation
- + minor bugfix in C++ binding to ripoff windows
- + fix a few Ada95 html documentation pages
-
-971018
- + split-out lib_ungetch.c, make runtime link to resizeterm() to
- decouple those modules from lib_restart.c
- + add xterm-xf86-v39t description to terminfo.src
- + reset SP->_endwin in lib_tstp.c cleanup() function after calling
- endwin() to avoid unnecessary repainting if the application has
- established an atexit function, etc. Encountered this problem in
- the c++ demo, whose destructors repaint the screen.
- + combine _nc_get_screensize() and resizeterm() calls as new function
- _nc_update_screensize().
- + minor fixes to allow compile with g++ (suggested by Nelson H. F.
- Beebe).
- + implement install-rules for Ada95 makefiles.
- + use screen_lines or MAXLINES as needed where LINES was coded,
- as well as screen_columns for COLS, in the ncurses library.
- > patch by Alexander V. Lukyanov:
- + modify logic for ripped-off lines to handle several SCREENs.
- > patch by Juergen Pfeifer:
- + factors lib_slk.c into some smaller modules
- + factors panel.c into some smaller modules
- + puts the static information about the current panel stack into the
- SCREEN structure to allow different panel stacks on different
- screens.
- + preliminary fix for an error adjusting LINES to account for
- ripped-off lines.
-
-971011
- + move _nc_max_click_interval and other mouse interface items to SCREEN
- struct so that they are associated with a single terminal, and also
- save memory when the application does not need a mouse (roughly 3k vs
- 0.5k on Linux).
- + modify mouseinterval() so that a negative parameter queries the
- click-interval without modifying it.
- + modify ncurses 'i' test to work with ncurses' apparent extension from
- SVr4, i.e., allows nocbreak+noecho (analysis by Alexander V.
- Lukyanov).
- + add configure options --with-ada-includes and --with-ada-objects,
- to drive Ada95 binding install (not yet implemented).
- + install C++ binding as -lncurses++ and associated headers with the
- other ncurses headers.
- + fix header uninstall if configure --srcdir is used.
- > minor interface changes (request by Daniel Weaver <danw@znyx.com>,
- to support 'tack' program):
- + export functions _nc_trans_string() and _nc_msec_cost().
- + add variable _nc_nulls_sent, to record the number of padding
- characters output in delay_output().
- + move tests for generic_type and hard_copy terminals in setupterm()
- to the end of that function so that the library will still be
- initialized, though not generally useful for curses programs.
- > patches by Alexander V. Lukyanov:
- + modify ClrBottom() to avoid using clr_eos if there is only one line
- to erase.
- + typo in configure --help.
- > patch by J.T.Conklin (with minor resync against Juergen's changes)
- + split-out lib_flash.c from lib_beep.c
- + split-out lib_hline.c and lib_vline.c from lib_box.c
- + split-out lib_wattron.c, lib_wattroff.c from lib_addch.c
-
-971005
- > patch by Juergen Pfeifer:
- + correct source/target of c++/edit_cfg.sh
-
-971004
- + add color, mouse support to kterm terminfo entry.
- + modify lib_mouse.c to recognize rxvt, kterm, color_xterm also as
- providing "xterm"-style mouse.
- + updated rxvt's terminfo description to correspond to 2.21b, with
- fixes for the acsc (the box1 capability is incorrect, ech1 does not
- work).
- + fix logic in parse_entry.c that discarded acsc when 'synthesizing'
- an entry from equivalents in XENIX or AIX. This lets ncurses handle
- the distribution copy of rxvt's terminfo.
- + modify acsc capability for linux and linux-koi8 terminfo descriptions
- (from Pavel Roskin <pavel@absolute.spb.su>).
- + corrected definition in curses.h for ACS_LANTERN, which was 'I'
- rather than 'i' (see 970802).
- + updated terminfo.src with reformatted acsc entries, and repaired the
- trashed entries with spurious '\' characters that this exposed.
- + add logic to dump_entry.c to reformat acsc entries into canonical
- form (sorted, unique mapping).
- + 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).
- > 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.
- + remove clause from PutCharLR() that would try to use
- eat_newline_glitch since that apparently does not work on some
- terminals (e.g., M$ telnet).
- + correct a limit check in scroll_csr_backward()
- > patches by Juergen Pfeifer:
- + adds dummy implementations of methods above() and below() to the
- NCursesPanel class.
- + fixes missing returncode in NCursesWindow::ripoffline()
- + fixes missing returncode in TestApplication::run() in demo.cc
- + We should at least give a comment in etip.h why it is currently a
- problem to install the C++ binding somewhere
- + makes the WINDOW* argument of wenclose() a const.
- + modifies several of the routines in lib_adabind.c to use a const
- WINDOW* argument.
-
-970927
- + add 'deinstall' rules.
- + use explicit assignments in configure --without-progs option to
- work around autoconf bug which doesn't always set $withval.
- + check for ldconfig, don't try to run it if not found.
- + implement simple/unoptimized case in lib_doupdate.c to handle
- display with magic cookie glitch, tested with ncurses.c program.
- + correct missing _tracef in getmouse(), to balance the returnCode
- macro.
- + simplify show_attr() in ncurses.c using termattrs().
- > patches by Juergen Pfeifer:
- + provides missing inlines for mvw[hv]line in cursesw.h of the C++
- binding
- + fixes a typo in a comment of frm_driver.c
- + Enhances Ada95 Makefiles to fulfill the requirement of GNAT-3.10 that
- generics should be compiled. Proper fixes to the configuration
- scripts are also provided.
-
-970920
- + several modifications to the configure script (requested by Ward
- Horner):
- + add configure options --without-progs, to suppress the build of the
- utility programs, e.g., for cross-compiling.
- + add $(HOSTCCFLAGS) and $(HOSTLDFLAGS) symbols to ncurses
- Makefile.in, to simplify setup for cross compiling.
- + add logic in configure script to recognize "--target=vxworks", and
- generate load/install actions for VxWorks objects.
- + move typedef for sigaction_t into SigAction.h to work around problem
- generating lint library.
- + modify fty_regex.c to reflect renaming of ifdef's for regular
- expressions.
- + simplify ifdef in lib_setup.c for TIOCGWINSZ since that symbol may
- reside in <sys/ioctl.h>.
- + merge testcurs.c with version from PDCurses 2.3, clarifying some of
- the more obscure tests, which rely upon color.
- + use macros getbegyx() and getmaxyx() in newdemo.c and testcurs.c
- + modify ncurses.c to use getbegyx() and getmaxyx() macros to cover up
- implementation difference wrt SVr4 curses, allow 's' test to work.
- + add missing endwin() to testscanw.c program (reported by Fausto
- Saporito <fausap@itb.it>).
- + fixes/updates for Makefile.glibc and related files under sysdeps
- (patch by H.J.Lu).
- > patches by Juergen Pfeifer:
- + add checks for null pointers, especially WINDOW's throughout the
- ncurses library.
- + solve a problem with wrong calculation of panel overlapping (reported
- by Ward Horner):
- + make sure that a panel's window isn't a pad.
- + do more error checking in module lib_touch.c
- + missing files for Ada95 binding from the last patch
- + synch. of generated html pages (RCS-Id's were wrong in html files)
- + support for Key_Resize in Ada binding
- + changed documentation style in ./c++/cursesm.h
- > patches by Alexander V. Lukyanov:
- + undo attempt to do recursive inlining for PutChar(), noting that it
- did not improve timing measurably, but inflated the size of
- lib_doupdate.o
-
-970913
- + modify rain.c to use color.
- + correct scroll_csr_backward() to match scroll_csr_forward().
- + minor adjustment to llib-lncurses, to work with Solaris 2.5.1
- + minor fixes to sysdeps/unix/sysv/linux/configure to reflect renaming
- of configure cache variables in 970906.
- + correct logic involving changes to O_VISIBLE option in
- Synchronize_Options function in frm_driver.c (Tony Hoffmann
- <Tony.Hoffmann@hia.nrc.ca>)
- + add $(HOSTCC) symbol to ncurses Makefile.in, to simplify setup for
- cross compiling (suggested by Chris Johns).
- + modify ifdef in lib_setup.c to only include <sys/ioctl.h> if we can
- use it to support screen-size calculation (reported by Chris Johns).
- + #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.
- + The C++ binding has been enhanced:
- + Improve NCursesWindow class: added additional methods to cover
- more ncurses functionality. Make refresh() and noutrefresh()
- virtual members to allow different implementation in the
- NCursesPanel class.
- + CAUTION: changed order of parameters in vline() and hline() of
- NCursesWindow class.
- + Make refresh() in NCursesPanel non-static, it is now a
- reimplementation of refresh() in the base class. Added
- noutrefresh() to NCursesPanel.
- + Added NCursesForm and related classes to support libform
- functionality.
- + Moved most of configuration related stuff from cursesw.h to etip.h
- + Added NCursesApplication class to support easy configuration of
- menu and forms related attributes as well as ripped of title lines
- and Soft-Label-Keys for an application.
- + Support of Auto-Cleanup for a menu's fieldlist.
- + Change of return type for current_item() and operator[] for menus.
- + Enhanced demo.
- + Fixed a bug in form/fld_def.c: take into account that copyarg and
- freearg for a fieldtype may be NULL, makearg must not be NULL
- + Fixed a bug in form/fld_type.c: in set_fieldtype_arg() makearg must
- not be NULL, copyarg and freearg may be NULL.
- + Fixed a bug in form/frm_def.c: Allow Disconnect_Fields() if it is
- already disconnected.
- + Enhance form/frm_driver.c: Allow growth of dynamic fields also on
- navigation requests.
- + Fixed a bug in form/fty_enum.c: wrong position of postincrement in
- case-insensitiva comparision routine.
- + Enhanced form/lib_adabind.c with function _nc_get_field() to get a
- forms field by index.
- + Enhanced menu/m_adabind.c with function _nc_get_item() to get a menus
- item by index.
- + Fixed in curses.h.in: make chtype argument for pechochar() constant.
- Mark wbkgdset() as implemented, remove wbkgdset macro, because it was
- broken (didn't handle colors correctly).
- + Enhanced lib_mouse.c: added _nc_has_mouse() function
- + Added _nc_has_mouse() prototype to curses.priv.h
- + Modified lib_bkgd.c: hopefully correct implementation of wbkgdset();
- streamlined implementation of wbkgd()
- + Modified lib_mvwin.c: Disable move of a pad. Implement (costly)
- move of subwindows. Fixed update behaviour of movements of regular
- windows.
- + Fixed lib_pad.c: make chtype argument of pechochar() const.
- + Fixed lib_window.c: dupwin() is not(!) in every bit a really clone
- of the original. Subwindows become regular windows by doing a
- dupwin().
- + Improved manpage form_fieldtype.3x
- > patches by Alexander V. Lukyanov:
- + simplify the PutChar() handling of exit_am_mode, because we already
- know that auto_right_margin is true.
- + add a check in PutChar() for ability to insert to the case of
- shifting character to LR corner.
- + in terminal initialization by _nc_screen_resume(), make sure that
- terminal right margin mode is known.
- + move logic that invokes touchline(), or does the equivalent, into
- _nc_scroll_window().
- + modify scrolling logic use of insert/delete line capability, assuming
- that they affect the screen contents only within the current
- scrolling region.
- + modify rain.c to demonstrate SIGWINCH handler.
- + remove logic from getch() that would return an ERR if the application
- called getch() when the cursor was at the lower-right corner of the
- physical screen, and the terminal does not have insert-character
- ability.
- + change view.c so that it breaks out of getch() loop if a KEY_RESIZE
- is read, and modify logic in getch() so this fix will yield the
- desired behavior, i.e., the screen is repainted automatically when
- the terminal window is resized.
-
-970906
- + add configure option --enable-sigwinch
- + modify view.c to test KEY_RESIZE logic, with "-r" option.
- + modify testcurs.c to eliminate misleading display wrt cursor type
- by testing if the terminal supports cnorm, civis, cvvis.
- + several fixes for m68k/NeXT 4.0, to bring cur_term, _nc_curr_line and
- _nc_curr_col variables into linked programs: move these variables,
- making new modules lib_cur_term and trace_buf (reported by Francisco
- Alberto Tomei Torres <fatomei@sandburg.unm.edu>).
- > patches by Alexander V. Lukyanov:
- + add pseudo-functionkey KEY_RESIZE which is returned by getch() when
- the SIGWINCH handler has been called since the last call to
- doupdate().
- + modify lib_twait.c to hide EINTR only if HIDE_EINTR is defined.
- + add SIGWINCH handler to ncurses library which is used if there is no
- application SIGWINCH handler in effect when the screen is
- initialized.
- + make linked list of all SCREEN structures.
- + move curses.h include before definition of SCREEN to use types in
- that structure.
- + correction to ensure that wgetstr uses only a newline to force a
- scroll (970831).
-
-970831
- + add experimental configure option --enable-safe-sprintf; the normal
- mode now allocates a buffer as large as the screen for the
- lib_printw.c functions.
- + modify wgetch to refresh screen when reading ungetch'd characters,
- since the application may require this - SVr4 does this.
- + refine treatment of newline in wgetstr to echo only when this would
- force the screen to scroll.
-
-970830
- + remove override in wgetstr() that forces keypad(), since SVr4 does
- not do this.
- + correct y-reference for erasure in wgetstr() when a wrap forces a
- scroll.
- + correct x-position in waddch() after a wrap forces a scroll.
- + echo newline in wgetstr(), making testscanw.c scroll properly when
- scanw is done.
- + modify vwscanw() to avoid potential buffer overflow.
- + rewrote lib_printw.c to eliminate fixed-buffer limits.
- > patches by Alexander V. Lukyanov:
- + correct an error in handling cooked mode in wgetch(); processing
- was in the wrong order.
- + simplified logic in wgetch() that handles backspace, etc., by using
- wechochar().
- + correct wechochar() so that it interprets the output character as
- in waddch().
- + modify pechochar() to use prefresh() rather than doupdate(), since
- the latter does not guarantee immediate refresh of the pad.
- + modify pechochar() so that if called with a non-pad WINDOW, will
- invoke wechochar() instead.
- + modify fifo indices to allow fifo to be longer than 127 bytes.
-
-970823
- + add xterm-8bit to terminfo.src
- + moved logic for SP->_fifohold inside check_pending() to make it
- work properly when we add calls to that function.
- + ensure that bool functions return only TRUE or FALSE, and TRUE/FALSE
- are assigned to bool values (patch by H.J.Lu).
- > patches by Alexander V. Lukyanov:
- + several fixes to getch:
- 1. Separate cooked and raw keys in fifo
- 2. Fix the case of ungetch'ed KEY_MOUSE
- 3. wrap the code for hiding EINTR with ifdef HIDE_EINTR
- 4. correctly handle input errors (i.e., EINTR) without loss of raw
- keys
- 5. recognize ESC KEY_LEFT and similar
- 6. correctly handle the case of receiption of KEY_MOUSE from gpm
- + correct off-by-one indexing error in _nc_mouse_parse(), that caused
- single mouse events (press/release) to be ignored in favor of
- composed events (click). Improves on a fix from integrating gpm
- support in 961229.
- + add another call to check_pending, before scrolling, for
- line-breakout optimization
- + improve hashmap.c by
- 1. fixed loop condition in grow_hunks()
- 2. not marking lines with offset 0
- 3. fixed condition of 'too far' criteria, thus one-line hunks are
- ignored and two lines interchanged won't pass.
- + rewrote/simplified _nc_scroll_optimize() by separating into two
- passes, forward/backward, looking for chunks moving only in the given
- direction.
- + move logic that emits sgr0 when initializing the screen to
- _nc_screen_init(), now invoked from newterm.
- + move cursor-movement cleanup from endwin() into _nc_mvcur_wrap()
- function and screen cleanup (i.e., color) into _nc_screen_wrap()
- function.
- + add new functions _nc_screen_init(), _nc_screen_resume() and
- _nc_screen_wrap().
- + rename _nc_mvcur_scrolln() to _nc_scrolln().
- + add a copy of acs_map[] to the SCREEN structure, where it can be
- stored/retrieved via set_term().
- + move variables _nc_idcok, _nc_idlok, _nc_windows into the SCREEN
- structure.
-
-970816
- + implement experimental _nc_perform_scroll().
- + modify newterm (actually _nc_setupscreen()) to emit an sgr0 when
- initializing the screen, as does SVr4 (reported by Alexander V.
- Lukyanov).
- + added test_progs rule to ncurses/Makefile.
- + modify test/configure.in to check if initscr is already in $LIBS
- before looking for (n)curses library.
- + correct version-number in configure script for OSF1 shared-library
- options (patch by Tim Mooney).
- + add -DNDEBUG to CPPFLAGS for --enable-assertions (as Juergen
- originally patched) since the c++ demo files do not necessarily
- include ncurses_cfg.h
- + supply default value for --enable-assertions option in configure
- script (reported by Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>).
- > patches by Alexander V. Lukyanov:
- + correct/simplify logic of werase(), wclrtoeol() and wclrbot(). See
- example firstlast.c
- + optimize waddch_literal() and waddch_nosync() by factoring out
- common subexpressions.
- + correct sense of NDEBUG ifdef for CHECK_POSITION macro.
- + corrections to render_char(), to make handling of colored blanks
- match SVr4 curses, as well as to correct a bug that xor'd space
- against the background character.
- + replaced hash function with a faster one (timed it)
- + rewrote the hashmap algorithm to be one-pass, this avoids multiple
- cost_effective() calls on the same lines.
- + modified cost_effective() so it is now slightly more precise.
- > patches by H.J.Lu for glibc integration:
- + add modules define_key, keyok, name_match, tries
- + add makefile rules for some of the unit tests in ncurses (mvcur,
- captoinfo, hardscroll, hashmap).
- + update Linux configure-script for wide-character definitions.
-
-970809
- + modify _tracebits() to show the character size (e.g., CS8).
- + modify tparm() to emit '\200' where the generated string would have a
- null (reported by From: Ian Dall <Ian.Dall@dsto.defence.gov.au> for
- terminal type ncr7900).
- + modify install process so that ldconfig is not invoked if the
- package is built with an install-prefix.
- + correct test program for chtype size (reported by Tim Mooney).
- + add configure option --disable-scroll-hints, using this to ifdef the
- logic that computes indices for _nc_scroll_optimize().
- + add module ncurses/softscroll.c, to perform single-stage computation
- of scroll indices used in _nc_scroll_optimize(). This is faster than
- the existing scrolling algorithm, but tends to make too-small hunks.
- + eliminate fixed buffer size in _nc_linedump().
- + minor fixes to lib_doupdate.c to add tradeoff between clr_eol (el)
- and clr_bol (el1), refine logic in ClrUpdate() and ClrBottom() (patch
- by Alexander V. Lukyanov).
- + add test/testaddch.c, from a pending patch by Alexander V. Lukyanov.
- + correct processing of "configure --enable-assertions" option (patch
- by Juergen Pfeifer).
-
-970802
- + add '-s' (single-step) option too test/hashtest.c, correct an error
- in loop limit for '-f' (footer option), toggle scrollok() when
- writing footer to avoid wrap at lower-right corner.
- + correct behavior of clrtoeol() immediately after wrapping cursor,
- which was not clearing the line at the cursor position (reported by
- Liviu Daia <daia@stoilow.imar.ro>).
- + corrected mapping for ACS_LANTERN, which was 'I' rather than 'i'
- (reported by Klaus Weide <kweide@tezcat.com>).
- + many corrections to make progs/capconvert work, as well as make it
- reasonably portable and integrated with ncurses 4.1 (reported by Dave
- Furstenau <df@ravine.binary.net>).
-
-970726
- + add flag SP->_fifohold, corresponding logic to modify the behavior of
- the line breakout logic so that if the application does not read
- input, refreshes will not be stopped, but only slowed.
- + generate slk_attr_off(), slk_attr_on(), slk_attr_set(), vid_attr(),
- ifdef'd for wide-character support, since ncurses' WA_xxx attribute
- masks are identical with the A_xxx masks.
- + modify MKlib_gen.sh to generate ifdef'd functions to support optional
- configuration of wide-characters.
- + modify tset to behave more like SVr4's tset, which does not modify
- the settings of intr, quit or erase unless they are given as command
- options (reported by Nelson H. F. Beebe <beebe@math.utah.edu>).
- + modify tset to look in /etc/ttys or /etc/ttytype if the configuration
- does not have getttynam().
- + extend baudrate table in tset.c to match baudrate() function.
- + add table entries for 230400 and 460800 bd to baudrate() function.
- + improve breakout logic by allowing it before the first line updated,
- which is what SVr4 curses does (patch by Alexander V. Lukyanov).
- + correct initialization of vcost in relative_move(), for cursor-down
- case (patch by Alexander V. Lukyanov).
- > nits gleaned from Debian distribution of 1.9.9g-3:
- + install symbolic link for intotocap.
- + reference libc directly when making shared libraries.
- + correct renaming of curs_scr_dmp.3x in man_db.renames.
- + guard tgetflag() and other termcap functions against null cur_term
- pointer.
-
-970719
- + corrected initial state of software echo (error in 970405, reported
- by Alexander V. Lukyanov).
- + reviewed/added messages to configure script, so that all non-test
- options should be accompanied by a message.
- + add configure check for long filenames, using this to determine if
- it is safe to allow long aliases for terminal descriptions as does
- SVr4.
- + add configure options for widec (wide character), hashmap (both
- experimental).
- > patch by Alexander V. Lukyanov:
- + hashmap.c - improved by heuristic, so that scroll test works much
- better when csr is not available.
- + hardscroll.c - patched so that it continues to scroll other chunks
- after failure to scroll one.
- + lib_doupdate.c - _nc_mvcur_scrolln extended to handle more cases; csr
- is avoided as it is relative costly. Fixed wrong coordinates in one
- case and wrong string in TRACE.
- > patch by Juergen Pfeifer:
- + modify C++ binding to compile on AIX 4.x with the IBM C-SET++
- compiler.
-
-970712
- + remove alternate character set from kterm terminfo entry; it uses the
- shift-out control for a purpose incompatible with curses, i.e., font
- switching.
- + disentangle 'xterm' terminfo entry from some derived entries that
- should be based on xterm-r6 instead.
- + add cbt to xterm-xf86-xv32 terminfo entry; I added the emulation for
- XFree86 3.1.2F, but overlooked its use in terminfo then - T.Dickey.
- + correct logic in lib_mvcur.c that uses back_tab.
-
-970706
- + correct change from 970628 to ClrUpdate() in lib_doupdate.c so that
- contents of curscr are saved in newscr before clearing the screen.
- This is needed to make repainting work with the present logic of
- TransformLine().
- + use napms() rather than sleep() in tset.c to avoid interrupting I/O.
-
-970705
- + add limit checks to _nc_read_file_entry() to guard against overflow
- of buffer when reading incompatible terminfo format, e.g, from OSF/1.
- + correct some loop-variable errors in xmc support in lib_doupdate.c
- + modify ncurses 'b' test to add gaps, specified by user, to allow
- investigation of interaction with xmc (magic cookie) code.
- + correct typo in 970524 mods to xmas.c, had omitted empty parameter
- list from has_colors(), which gcc ignores, but SVr4 does not
- (reported by Larry Virden).
- + correct rmso capability in wy50-mc description.
- + add configure option "--enable-hard-tabs", renamed TABS_OK ifdef to
- USE_HARD_TABS.
- > patch by Juergen Pfeifer:
- + Add bindings for keyok() and define_key() to the Ada95 packages.
- + Improve man pages menu_post.3x and menu_format.3x
- + Fix the HTML pages in the Ada95/html directory to reflect the above
- changes.
-
-970628
- + modify change from 970101 to ClrUpdate() in lib_doupdate.c so that
- pending changes to both curscr and newscr are flushed properly.
- This fixes a case where the first scrolling operation in nvi would
- cause the screen to be cleared unnecessarily and repainted before
- doing the indexing, i.e., by repeatedly pressing 'j' (reported by
- Juergen Pfeifer).
- + correct error in trans_string() which added embedded newlines in a
- terminfo description to the stored strings.
- + remove spurious newlines from sgr in wyse50 (and several other)
- terminfo descriptions.
- + add configure option for experimental xmc (magic cookie) code,
- "--enable-xmc-glitch". When disabled (the default), attributes that
- would store a magic cookie are suppressed in vidputs(). The magic
- cookie code is far from workable at this stage; the configuration
- option is a stopgap.
- + move _nc_initscr() from lib_initscr.c to lib_newterm.c
- + correct path for invoking make_keys (a missing "./").
-
-970621
- + correct sign-extension problem with "infocmp -e", which corrupted
- acsc values computed for linux fallback data.
- + correct dependency on ncurses/names.c (a missing "./").
- + modify configure script to use '&&' even for cd'ing to existing
- directories to work around broken shell interpreters.
- + correct a loop-limit in _nc_hash_map() (patch by Alexander V.
- Lukyanov).
-
-970615
- + restore logic in _nc_scroll_optimize() which marks as touched the
- lines in curscr that are shifted.
- + add new utility 'make_keys' to compute keys.tries as a table rather
- than a series of function calls.
- + correct include-dependency for tic.h used by name_match
- + removed buffer-allocation for name and description from m_item_new.c,
- since this might result in incompatibilities with SVr4. Also fixed
- the corresponding Ada95 binding module (patch by Juergen Pfeifer,
- from report by Avery Pennarun <apenwarr@foxnet.net>)
- + removed the mechanism to timestamp the generated Ada95 sources. This
- resulted always in generating patches for the HTML doc, even when
- nothing really changed (patch by Juergen Pfeifer).
- + improve man page mitem_new.3x (patch by Juergen Pfeifer).
-
-970614
- + remove ech capability from rxvt description because it does not work.
- + add missing case logic for infocmp -I option (reported by Lorenzo M.
- Catucci <lorenzo@argon.roma2.infn.it>)
- + correct old bug in pnoutrefresh() unmasked by fix in 970531; this
- caused glitches in the ncurses 'p' test since the area outside the
- pad was not compared when setting up indices for _nc_scroll_optimize.
- + rewrote tracebits() to workaround misdefinition of TOSTOP on Ultrix
- 4.4, as well as to eliminate fixed-size buffer (reported by Chris
- Tanner <tannerc@aecl.ca>)
- + correct prototype for termattrs() as per XPG4 version 2.
- + add placeholder prototypes for color_set(), erasewchar(),
- term_attrs(), wcolor_set() as per XPG4 version 2.
- + correct attribution for progs/progs.priv.h and lib_twait.c
- + improve line-breakout logic by checking based on changed lines rather
- than total lines (patch by Alexander V. Lukyanov).
- + correct loop limits for table-lookup of enumerated value in form
- (patch by Juergen Pfeifer).
- + improve threshhold computation for determining when to call ClrToEOL
- (patch by Alexander V. Lukyanov).
-
-970531
- + add configure option --disable-database to force the library to
- use only the fallback data.
- + add configure option --with-fallbacks, to specify list of fallback
- terminal descriptions.
- + add a symbolic link for ncurses.h during install; too many programs
- still assume there's an ncurses.h
- + add new terminfo.src entry for xterm-xf86-v33.
- + restore terminfo.src entry for emu to using setf/setb, since it is
- not, after all, generating ANSI sequences. Corrected missing comma
- that caused setf/setb entries to merge.
- + modify mousemask() to use keyok() to enable/disable KEY_MOUSE, so
- that applications can disable ncurses' mouse and supply their own
- handler.
- + add extensions keyok() and define_key(). These are designed to allow
- the user's application better control over the use of function keys,
- e.g., disabling the ncurses KEY_MOUSE. (The define_key idea was from
- a mailing-list thread started by kjahds@kjahds.com Nov'1995).
- + 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).
- + tidy up exit from hashtest (reported by Hugh Daniel).
- + restore check for ^Q in ncurses 'g' test broken in 970510 (reported
- by Hugh Daniel)
- + correct tput program, checking return-value of setupterm (patch by
- Florian La Roche).
- + correct logic in pnoutrefresh() and pechochar() functions (reported
- by Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>). The computation
- of 'wide' date to eric's #283 (1.9.9), and the pechochar bug to the
- original implementation (1.9.6).
- + correct typo in vt102-w terminfo.src entry (patch by Robert Wuest
- <rwuest@sire.vt.com>)
- + move calls of _nc_background() out of various loops, as its return
- value will be the same for the whole window being operated on (patch
- by J.T.Conklin).
- + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in
- SVr4 headers (patch by J.T.Conklin <jtc@NetBSD.ORG>)
- + modify glibc addon-configure scripts (patch by H.J.Lu).
- + correct a bug in hashmap.c: the size used for clearing the hashmap
- table was incorrect, causing stack corruption for large values of
- LINES, e.g., >MAXLINES/2 (patch by Alexander V. Lukyanov).
- + eric's terminfo 9.13.23 & 9.13.24 changes: replaced minitel-2 entry,
- added MGR, ansi-nt (note: the changes described for 9.13.24 have not
- been applied).
- > several changes by Juergen Pfeifer:
- + correct a missing error-return in form_driver.c when wrapping of a
- field is not possible.
- + correct logic in form_driver.c for configurations that do not have
- memccpy() (reported by Sidik Isani <isani@cfht.hawaii.edu>)
- + change several c++ binding functions to inline.
- + modify c++ menu binding to inherit from panels, for proper
- initialization.
- + correct freeing of menu items in c++ binding.
- + modify c++ binding to reflect removal of const from user data pointer
- in forms/menus libraries.
-
-970524
- + add description of xterm-16color.
- + modify name of shared-library on *BSD to end with $(REL_VERSION)
- rather than $(ABI_VERSION) to match actual convention on FreeBSD
- (cf: 960713).
- + add OpenBSD to shared-library case, same as NetBSD and FreeBSD
- (reported by Hugh Daniel <hugh@rat.toad.com>).
- + corrected include-dependency in menu/Makefile so that "make install"
- works properly w/o first doing "make".
- + add fallback definition for isascii, used in infocmp.
- + modify xmas to use color, and to exit right away when a key is
- pressed.
- + modify gdc so that the scrolled digits function as described (there
- was no time delay between the stages, and the digits overwrote the
- bounding box without tidying up).
- + modify lib_color.c to use setaf/setab only for the ANSI color codes
- 0 through 7. Using 16 colors requires setf/setb.
- + modify ncurses 'c' test to work with 16 colors, as well as the normal
- 8 colors.
- + remove const qualifier from user data pointer in forms and menus
- libraries (patch by Juergen Pfeifer).
- + rewrote 'waddchnstr()' to avoid using the _nc_waddch_nosync()
- function, thereby not interpreting tabs, etc., as per spec (patch by
- Alexander V. Lukyanov).
-
-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 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 flags to OSF1 shared-library options to specify version and
- symbol file (patch by Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>)
- + add missing definition for ABI_VERSION to c++/Makefile.in (reported
- by Satoshi Adachi <adachi@wisdom.aa.ap.titech.ac.jp>).
- + modify link flags to accommodate HP-UX linker which embeds absolute
- pathnames in executables linked against shared libraries (reported by
- Jason Evans <jasone@mrc.uidaho.edu>, solved by Alan Shutko
- <ats@hubert.wustl.edu>).
- + drop unnecessary check for attribute-change in onscreen_mvcur() since
- mvcur() is the only caller within the library, and that check in turn
- is exercised only from lib_doupdate.c (patch by Alexander V.
- Lukyanov).
- + add 'blank' parameter to _nc_scroll_window() so _nc_mvcur_scrolln()
- can use the background of stdscr as a parameter to that function
- (patch by Alexander V. Lukyanov).
- + moved _nc_mvcur_scrolln() from lib_mvcur.c to lib_doupdate.c, to use
- the latter's internal functions, as well as to eliminate unnecessary
- cursor save/restore operations (patch by Alexander V. Lukyanov).
- + omit parameter of ClrUpdate(), since it is called only for newscr,
- further optimized/reduced by using ClearScreen() and TransformLine()
- to get rid of duplicate code (patch by Alexander V. Lukyanov).
- + modify scrolling algorithm in _nc_scroll_optimize() to reject hunks
- that are smaller than the distance to be moved (patch by Alexander V.
- Lukyanov).
- + correct a place where the panel library was not ifdef'd in ncurses.c
- (Juergen Pfeifer)
- + documentation fixes (Juergen Pfeifer)
-
-970515 4.1 release for upload to prep.ai.mit.edu
- + re-tag changes since 970505 as 4.1 release.
-
-970510
- + 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).
- + 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).
- + 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
- (reported by Alexander V. Lukyanov).
- + add files to support configuration of ncurses as an add-on library
- for GNU libc (patch by H.J.Lu <hjl@lucon.org>)
-
-970506
- + correct buffer overrun in lib_traceatr.c
- + modify change to lib_vidattr.c to avoid redundant orig_pair.
- + turn on 'echo()' in hanoi.c, since it is initially off.
- + rename local 'errno' variable in etip.h to avoid conflict with global
- (H.J.Lu).
- + modify configure script to cache LD, AR, AR_OPTS (patch by H.J.Lu
- <hjl@lucon.org>)
-
-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 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
- overwrite of symbolic links.
- + change order of top-level targets so that 'include' immediate
- precedes the 'ncurses' directory, reducing the time between new
- headers and new libraries (requested by Larry Virden).
- + modify lib_vidattr.c so that colors are turned off only before
- modifying other attributes, turned on after others. This makes the
- hanoi.c program display correctly on FreeBSD console.
- + modify debug code in panel library to print user-data addresses
- rather than the strings which they (may) point to.
- + add check to ensure that C++ binding and demo are not built with g++
- versions below 2.7, since the binding uses templates.
- + modify c++ binding and demo to build and run with SGI's c++ compiler.
- (It also compiles with the Sun SparcWorks compiler, but the demo does
- not link, due to a vtbl problem).
- + corrections to demo.cc, to fix out-of-scope variables (Juergen
- Pfeifer).
-
-970503
- + correct memory leak in _nc_trace_buf().
- + add configure test for regexpr.h, for Unixware 1.x.
- + correct missing "./" prefixing names of generated files in ncurses
- directory.
- + use single-quotes in configure scripts assignments for MK_SHARED_LIB
- to workaround shell bug on FreeBSD 2.1.5
- + remove tabs from intermediate #define's for GCC_PRINTF, GCC_SCANF
- that caused incorrect result in ncurses_cfg.h
- + correct initialization in lib_trace.c, which omitted version info.
- + remove ech, el1 attributes from cons25w description; they appear to
- malfunction in FreeBSD 2.1.5
- + correct color attributes in terminfo.src and lib_color.c to match
- SVr4 behavior by interchanging codes 1,4, 3,6 in the setf/setb
- capabilities.
- + use curs_set() rather than checks via tigetstr() for test programs
- that hide the cursor: firework, rain, worm.
- + ensure that if the terminal lacks change_scroll_region, parm_index
- and parm_rindex are used only to scroll the whole screen (patch by
- Peter Wemm).
- + correct curs_set() logic, which did not return ERR if the requested
- attributes did not exist, nor did it assume an unknown initial state
- for the cursor (patch by Alexander V. Lukyanov).
- + combine IDcTransformLine and NoIDcTransformLine to new TransformLine
- function in lib_doupdate.c (patch by Alexander V. Lukyanov).
- + correct hashmap.c, which did not update index information (patch by
- Alexander V. Lukyanov).
- + patch by Juergen Pfeifer for C++ binding and demo (see c++/NEWS)
- + correct index in lib_instr.c (Juergen Pfeifer).
- + correct typo in 970426 patch from Tom's cleanup of lib_overlay.c
- (Juergen Pfeifer).
-
-970426
- + corrected cost computation in PutRange(), which was using
- milliseconds compared to characters by adding two new members to the
- SCREEN struct, _hpa_ch_cost and _cup_ch_cost.
- + drop ncurses/lib_unctrl.c, add ncurses/MKunctrl.awk to generate a
- const array of strings (suggested by Alexander V. Lukyanov, though
- with a perl script 970118).
- + rewrote ncurses 'b' test to better exercise magic-cookie (xmc), as
- well as noting the attributes that are not supported by a terminal.
- + trace the computation of cost values in lib_mvcur.c
- + modify _nc_visbuf() to use octal rather than hex, corrected sign
- extension bug in that function that caused buffer overflow.
- + modify trace in lib_acs.c to use _nc_visbuf().
- + suppress trace within _traceattr2().
- + correct logic of _tracechtype2(), which did not account for repeats
- or redefinition within an acsc string.
- + modify debug-library version baudrate() to use environment variable
- $BAUDRATE to override speed computation. This is needed for
- regression testing.
- + correct problems shown by "weblint -pedantic".
- + update mailing-list information (now ncurses@bsdi.com).
-
-970419
- + Improve form_field_validation.3x manpage to better describe the
- precision parameter for TYPE_NUMERIC and TYPE_INTEGER. Provide more
- precise information how the range checking can be avoided. (patch by
- Juergen Pfeifer, reported by Bryan Henderson)
- + change type of min/max value of form types TYPE_INTEGER to long to
- match SVr4 documentation.
- + set the form window to stdscr in set_form_win() so that form_win()
- won't return null (patch by Juergen Pfeifer, reported by Bryan
- Henderson <bryanh@giraffe.netgate.net>).
-
-970412
- + corrected ifdef'ing of inline (from 970321) for TRACE vs C++.
- + corrected toggle_attr_off() macro (patch by Andries.Brouwer).
- + modify treatment of empty token in $MANPATH to /usr/man (reported by
- <Andries.Brouwer@cwi.nl>)
- + modify traces that record functions-called so that chtype and attr_t
- values are expressed symbolically, to simplify reuse of generated
- test-scripts on SVr4 regression testing.
- + add new trace functions _traceattr2() and _tracechtype2()
-
-970405
- + add configure option --enable-const, to support the use of 'const'
- where XSI should have, but did not, specify. This defines
- NCURSES_CONST, which is an empty token otherwise, for strict
- compatibility.
- + make processing of configure options more verbose by echoing the
- --enable/--with values.
- + add configure option --enable-big-core
- + set initial state of software echo off as per XSI.
- + 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).
- + 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
- Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 970329).
- + modify 'clean' rule in include/Makefile so that files created by
- configure script are removed in 'distclean' rule instead.
-
-970328
- + correct array limit in tparam_internal(), add case to interpret "%x"
- (patch by Andreas Schwab)
- + rewrote number-parsing in ncurses.c 'd' test; it did not reset the
- value properly when non-numeric characters were given (reported by
- Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
-
-970321
- + move definition of __INTERNAL_CAPS_VISIBLE before include for
- progs.priv.h (patch by David MacKenzie).
- + add configuration summary, reordered check for default include
- directory to better accommodate a case where installer is configuring
- a second copy of ncurses (reported by Klaus Weide
- <kweide@tezcat.com>)
- + moved the #define for 'inline' as an empty token from the
- $(CFLAGS_DEBUG) symbol into config.h, to avoid redefinition warning
- (reported by Ward Horner).
- + modify test for bool builtin type to use 'unsigned' rather than
- 'unknown' when cross-compiling (reported by Ward Horner).
-
-970315
- + add header dependencies so that "make install.libs" will succeed
- even if "make all" is not done first.
- + moved some macros from lib_doupdate.c to curses.priv.h to use in
- expanded functions with ATAC.
- + correct implementation of lib_instr.c; both XSI and SVr4 agree that
- the winnstr functions can return more characters than will fit on one
- line.
-
-970308
- + modify script that generates lib_gen.c to support traces of called &
- return.
- + add new configure option "--disable-macros", for testing calls within
- lib_gen.c
- + corrected logic that screens level-checking of called/return traces.
-
-970301
- + use new configure macro NC_SUBST to replace AC_PATH_PROG, better
- addressing request by Ward Horner.
- + check for cross-compiling before trying to invoke the autoconf
- AC_FUNC_SETVBUF_REVERSED macro (reported by Ward Horner)
- + correct/simplify loop in _nc_visbuf(), 970201 changes omitted
- a pointer-increment.
- + eliminate obsolete symbol SHARED_ABI from dist.mk (noted by
- Florian La Roche).
-
-970215
- + add configure option --enable-expanded, together with code that
- implements an expanded form of certain complex macros, for testing
- with ATAC.
- + disable CHECK_POSITION unless --with-assertions is configured
- (Alexander Lukyanov pointed out that this is redundant).
- + use keyname() to show traced chtype values where applicable rather
- than _tracechar(), which truncates the value to 8-bits.
- + minor fixes to TRACE_ICALLS, added T_CREATE, TRACE_CCALLS macros.
- + modify makefiles in progs and test directories to avoid using C
- preprocessor options on link commands (reported by Ward Horner)
- + correct ifdef/include-order for nc_alloc.h vs lib_freeall.c (reported
- by Ward Horner)
- + modify ifdef's to use configure-defined symbols consistently
- (reported by Ward Horner)
- + add/use new makefile symbols AR, AR_OPTS and LD to assist in non-UNIX
- ports (reported by Ward Horner <whorner@tsi-telsys.com>)
- + rename struct try to struct tries, to avoid name conflict with C++
- (reported by Gary Johnson).
- + modify worm.c to hide cursor while running.
- + add -Wcast-qual to gcc warnings, fix accordingly.
- + use PutChar rather than PutAttrChar in ClrToEOL to properly handle
- wrapping (Alexander Lukyanov).
- + correct spurious echoing of input in hanoi.c from eric's #291 & #292
- patches (reported by Vernon C. Hoxie <vern@zebra.alphacdc.com>).
- + extend IRIX configuration to IRIX64
- + supply missing install.libs rule needed after restructuring
- test/Makefile.in
-
-970208
- + modify "make mostlyclean" to leave automatically-generated source
- in the ncurses directory, for use in cross-compiles.
- + autogenerated object-dependencies for test directory
- + add configure option --with-rcs-ids
- + modify configuration scripts to generate major/minor/patch versions
- (suggested by Alexander Lukyanov).
- + supply missing va_end's in lib_scanw.c
- + use stream I/O for trace-output, to eliminate fixed-size buffer
- + add TRACE_ICALLS definition/support to lib_trace.c
- + modify Ada95 binding to work with GNAT 3.09 (Juergen Pfeifer).
-
-970201
- + add/modify traces for called/return values to simplify extraction
- for test scripts.
- + changed _nc_visbuf to quote its result, and to dynamically allocate
- the returned buffer.
- + invoke ldconfig after installing shared library
- + modify install so that overwrite applies to shared library -lcurses
- in preference to static library (reported by Zeyd 960928).
- + correct missing ';' in 961221 mod to overwrite option use of $(LN_S).
- + fixes to allow "make install" to work without first doing a "make
- all" (suggested by Larry Virden).
-
-970125
- + correct order of #ifdef for TABS_OK.
- + instrumented toe.c to test memory-leaks.
- + correct memory-deallocation in toe.c (patch by Jesse Thilo).
- + include <sys/types.h> in configuration test for regex.h (patch by
- Andreas Schwab)
- + make infocmp recognize -I option, for SVr4 compatibility (reported by
- Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
-
-970118
- + add extension 'use_default_colors()', modified test applications that
- use default background (firework, gdc, hanoi, knight, worm) to
- demonstrate.
- + correct some limit checks in lib_doupdate.c exposed while running
- worm.
- + use typeCalloc macro for readability.
- + add/use definition for CONST to accommodate testing with Solaris
- (SVr4) curses, which doesn't use 'const' in its prototypes.
- + modify ifdef's in test/hashtest.c and test/view.c to compile with
- Solaris curses.
- + modify _tracedump() to pad pad colors & attrs lines to match change
- in 970101 showing first/last changes.
- + corrected location of terminating null on dynamically allocated forms
- fields (patch by Per Foreby).
-
-970111
- + added headers to make view.c compile on SCO with the resizeterm()
- code (i.e., struct winsize) - though this compiles, I don't have a
- suitable test configuration since SIGWINCH doesn't pass my network to
- that machine - T.Dickey.
- + update test/configure.in to supply some default substitutions.
- + modify configure script to add -lncurses after -lgpm to fix problem
- linking against static libraries.
- + add a missing noraw() to test/ncurses.c (places noted by Jeremy
- Buhler)
- + add a missing wclear() to test/testcurs.c (patch by Jeremy Buhler
- <jbuhler@cs.washington.edu>)
- + modify headers to accommodate compilers that don't allow duplicate
- "#define" lines for NCURSES_VERSION (reported by Larry W. Virden
- <lvirden@cas.org>)
- + fix formatting glitch in curs_getch.3x (patch by Jesse Thilo).
- + modify lib_doupdate to make el, el1 and ed optimization use the
- can_clear_with macro, and change EmitRange to allow leaving cursor at
- the middle of interval, rather than always at the end (patch by
- Alexander Lukyanov originally 960929, resync 970106).
-
-970104
- + workaround defect in autoconf 2.12 (which terminates configuration
- if no C++ compiler is found) by adding an option --without-cxx.
- + modify several man-pages to use tbl, where .nf/.fi was used (reported
- by Jesse Thilo).
- + correct font-codes in some man-pages (patch by Jesse Thilo
- <Jesse.Thilo@pobox.com>)
- + use configure script's knowledge of existence of g++ library for the
- c++ Makefile (reported by Paul Jackson).
- + correct misleading description of --datadir configuration option
- (reported by Paul Jackson <pj@sam.engr.sgi.com>)
-
-970101
- + several corrections to _nc_mvcur_scrolln(), prompted by a bug report
- from Peter Wemm:
- > the logic for non_dest_scroll_region was interchanged between the
- forward & reverse scrolling cases.
- > multiple returns from the function allowed certain conditions to do
- part of an operation before discovering that it couldn't be
- completed, returning an error without restoring the cursor.
- > some returns were ERR, where the function had completed the
- operation, because the insert/delete line logic was improperly
- tested (this was probably the case Peter saw).
- > contrary to comments, some scrolling cases were tested after the
- insert/delete line method.
- + modify _tracedump() to show first/last changes.
- + modify param of ClrUpdate() in lib_doupdate.c to 'newscr', fixes
- refresh problem (reported by Peter Wemm) that caused nvi to not show
- result of ":r !ls" until a ^L was typed.
-
-961229 (internal alpha)
- + correct some of the writable-strings warnings (reported by Gary
- Johnson <gjohnson@season.com>). Note that most of the remaining ones
- are part of the XSI specification, and can't be "fixed".
- + improve include-dependencies in form, menu, panel directories.
- + correct logic of delay_output(), which would return early if
- there is data on stdin.
- + modify interface & logic of _nc_timed_wait() to support 2 file
- descriptors, needed for GPM.
- + integrate patch by Andrew Kuchling <amk@magnet.com> for GPM (mouse)
- support, correcting logic in wgetch() and _nc_mouse_parse() which
- prevented patch from working properly.
- + improve performance of panel algorithm (Juergen Pfeifer 961203).
- + strip RCS id's from generated .html files in Ada95 subtree.
- + resync with generated .html files (Juergen Pfeifer 961223).
- + terminfo.src 10.1.0 from Eric.
-
-961224 4.0 release
- + release as 4.0 to accommodate Linux ld.so.1.8.5
- + correct syntax/spelling, regenerated .doc files from .html using
- lynx 2.5
- + refined forms/menus makefiles (Juergen Pfeifer 961223).
-
-961221 - snapshot
- + remove logic in read_entry.c that attempts to refine errno by using
- 'access()' for the directory (from patch by Florian La Roche).
- + correct configure test/substitution that inhibits generating
- include-path to /usr/include if gcc is used (reported by Florian La
- Roche).
- + modify setupterm() to allocate new TERMINAL for each call, just as
- solaris' curses does (Alexander Lukyanov 960829).
- + corrected memory leaks in read_entry.c
- + add configure options --with-dbmalloc, --with-dmalloc, and
- --disable-leaks, tested by instrumenting infocmp, ncurses programs.
- + move #include's for stdlib.h and string.h to *.priv.h to accommodate
- use of dbmalloc.
- + modify use of $(LN_S) to follow recommendation in autoconf 2.12,
- i.e., set current directory before linking.
- + split-out panel.priv.h, improve dependencies for forms, menus
- (Juergen Pfeifer 961204).
- + modify _nc_freewin() to reset globals curscr/newscr/stdscr when
- freeing the corresponding WINDOW (Purify).
- + modify delwin() to return ERR if the window to be deleted has
- subwindows, needed as a side-effect of resizeterm() (Purify). Tested
- and found that SVr4 curses behaves this way.
- + implement logic for _nc_freeall(), bringing stub up to date.
-
-961215
- + modify wbkgd() so that it doesn't set nulls in the rendered text,
- even if its argument doesn't specify a character (fixes test case by
- Juergen Pfeifer for bug-report).
- + set window-attributes in wbkgd(), to simplify comparison against
- Solaris curses, which does this.
-
-961214 - snapshot
- + replace most constants in ncurses 'o' test by expressions, making it
- work with wider range of screen sizes.
- + add options to ncurses.c to specify 'e' test softkey format, and the
- number of header/footer lines to rip-off.
- + add ^R (repaint after resize), ^L (refresh) commands to ncurses 'p'
- test.
- + add shell-out (!) command to ncurses 'p' test to allow test of
- resize between endwin/refresh.
- + correct line-wrap case in mvcur() by emitting carriage return,
- overlooked in 960928, but needed due to SVr4 compatibility changes to
- terminal modes in 960907.
- + correct logic in wresize that causes new lines to be allocated,
- broken for the special case of increasing rows only in 960907's fix
- for subwindows.
- + modify configure script to generate $(LDFLAGS) with -L and -l options
- in preference to explicit library filenames. (NOTE: this may
- require further amending, since I vaguely recall a dynamic loader
- that did not work properly without the full names, but it should be
- handled as an exception to the rule, since some linkers do bulk
- inclusion of libraries when given the full name - T.Dickey).
- + modify configure script to allow user-supplied $CFLAGS to set the
- debug-option in all libraries (requested by lots of people).
- + use return consistently from main(), rather than exit (reported by
- Florian La Roche).
- + add --enable-getcap-cache option to configure, normally disabled
- (requested by Florian La Roche).
- + make configure test for gettimeofday() and possibly -lbsd more
- efficient (requested by Florian La Roche florian@knorke.saar.de)
- + minor adjustments to Ada95 binding (patches by Juergen Pfeifer)
- + correct attributes after emitting orig_pair in lib_vidattr.c (patch
- by lav@yars.free.net).
-
-961208
- + corrected README wrt Ada95 (Juergen Pfeifer)
-
-961207 - snapshot
- + integrate resizeterm() into doupdate(), so that if screen size
- changes between endwin/refresh, ncurses will resize windows to fit
- (this needs additional testing with pads and softkeys).
- + add, for memory-leak testing, _nc_freeall() entrypoint to free all
- data used in ncurses library.
- + initialize _nc_idcok, _nc_idlok statically to resolve discrepancy
- between initscr() and newwin() initialization (reported by
- lav@yars.free.net).
- + test built VERSION=4.0, SHARED_ABI=4 with Linux ld.so.1.8.5
- (set beta versions to those values -- NOTE that subsequent pre-4.0
- beta may not be interchangeable).
- + modify configure script to work with autoconf 2.12
-
-961130 1.9.9g release
- + add copyright notices to configuration scripts (written by Thomas
- Dickey).
-
-961127
- > patch by Juergen Pfeifer (mostly for panel):
- + cosmetic improvement for a few routines in the ncurses core library
- to avoid warning messages.
- + the panel overlap detection was broken
- + the panel_window() function was not fool-proof.
- + Some inlining...
- + Cosmetic changes (also to avoid warning messages when compiling with
- -DTRACE).
-
-961126
- > patch by Juergen Pfeifer:
- + eliminates warning messages for the compile of libform.
- + inserts Per Foreby's new field type TYPE_IPV4 into libform.
- + Updates man page and the Ada95 binding to reflect this.
- + Improves inlining in libmenu and libform.
-
-961120
- + improve the use of the "const" qualifier in the
- panel library (Juergen Pfeifer)
- + change set_panel_userptr() and panel_userptr() to use void*
- (Juergen Pfeifer)
-
-961119
- + change ABI to 3.4
- + package with 961119 version of Ada95 binding (fixes for gnat-3.07).
- (Juergen Pfeifer)
- + correct initialization of the stdscr pseudo panel in panel library
- (Juergen Pfeifer)
- + use MODULE_ID (rcs keywords) in forms and menus libraries (Juergen
- Pfeifer).
- > patch #324 by Eric.
- + typo in curs_termcap man page (reported by Hendrik Reichel
- <106065.2344@compuserve.com>)
- + change default xterm entry to xterm-r6.
- + add entry for color_xterm
-
-961116 - snapshot
- + lint found several functions that had only #define implementations
- (e.g., attr_off), modified curses.h.in to generate them as per XSI
- Curses requirement that every macro be available as a function.
- + add check in infocmp.c to guard against string compare of
- CANCELLED_STRING values.
- + modify firework.c, rain.c to hide cursor while running.
- + correct missing va_end in lib_tparm.c
- + modify hanoi.c to work on non-color terminals, and to use timing
- delays when in autoplay mode.
- + correct 'echochar()' to refresh immediately (reported by Adrian
- Garside 94ajg2@eng.cam.ac.uk)
- > patch #322 by eric:
- + reorganize terminfo.src entries for xterm.
-
-961109 - snapshot
- + corrected error in line-breakout logic (lib_doupdate.c)
- + modified newdemo to use wgetch(win) rather than getch() to eliminate
- a spurious clear-screen.
- + corrected ifdef's for 'poll()' configuration.
- + added modules to ncurses, form, menu for Ada95 binding (Juergen
- Pfeifer).
- + modify set_field_buffer() to allow assignment of string longer than
- the initial buffer length, and to return the complete string rather
- than only the initial size (Juergen Pfeifer and Per Foreby
- <perf@efd.lth.se>).
-
-961102 - snapshot
- + configure for 'poll()' in preference to 'select()', since older
- systems are more likely to have a broken 'select()'.
- + modified render_char() to avoid OR'ing colors.
- + minor fixes to testcurs.c, newdemo.c test programs: ifdef'd out the
- resize test, use wbkgd and corrected box() parameters.
- + make flushinp() test work in ncurses.c by using napms() instead of
- sleep().
- + undo Eric's changes to xterm-x11r6 (it no longer matched the X11R6.1
- distribution, as stated)
- + terminfo 9.13.18 (resync by Eric)
- + check for getenv("HOME") returning null (Eric).
- + change buffer used to decode xterm-mouse commands to unsigned to
- 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>).
- + corrections to logic that combines colors and attributes; they must
- not be OR'd (Juergen Pfeifer, extending from report/patch by Rick
- Marshall).
-
-961026 - snapshot
- + reset flags in 'getwin()' that might cause refresh to attempt to
- manipulate the non-existent parent of a window that is read from a
- file (lib_screen.c).
- + restructure _nc_timed_wait() to log more information, and to try to
- recover from badly-behaved 'select()' calls (still testing this).
- + move define for GOOD_SELECT into configure script.
- + corrected extra '\' character inserted before ',' in comp_scan.c
- + corrected expansion of %-format characters in dump_entry.c; some were
- rendered as octal constants.
- + modify dump_entry.c to make terminfo output more readable and like
- SVr4, by using "\s" for spaces (leading/trailing only), "\," for
- comma, "\^" and "\:" as well.
- + corrected some memory leaks in ncurses.c, and a minor logic error
- in the top-level command-parser.
- + correction for label format 4 (PC style with info line), a
- slk_clear(), slk_restore() sequence didn't redraw the info line
- (Juergen Pfeifer).
- + modified the slk window (if simulated) to inherit the background and
- default character attributes from stdscr (Juergen Pfeifer).
- + corrected limit-check in set_top_row (Juergen Pfeifer).
-
-961019 - snapshot
- + correct loop-limit in wnoutrefresh(), bug exposed during pipe-testing
- had '.lastchar' entry one beyond '._maxx'.
- + modify ncurses test-program to work with data piped to it.
- + corrected pathname computation in run_tic.sh, removing extra "../"
- (reported by Tim Mooney).
- + modified configure script to use previous install's location for
- curses.h
- + added NetBSD and FreeBSD to platforms that use --prefix=/usr as
- a default.
-
-961013
- + revised xterm terminfo descriptions to reflect the several versions
- that are available.
- + corrected a pointer reference in dump_entry.c that didn't test if
- the pointer was -1.
-
-961005 - snapshot
- + correct _nc_mvcur_scrolln for terminals w/o scrolling region.
- + add -x option to hashtest to control whether it allows writes to the
- lower-right corner.
- + ifdef'd (NCURSES_TEST) the logic for _nc_optimize_enable to make it
- simpler to construct tests (for double-check of _nc_hash_map tests).
- + correct ifdef's for c++ in curses.h
- + change default xterm type to xterm-x11r6.
- + correct quoting in configure that made man-pages installed with
- $datadir instead of actual terminfo path.
- + correct whitespace in include/Caps, which caused kf11, clr_eol and
- clr_end to be omitted from terminfo.5
- + fix memory leaks in delscreen() (adapted from Alexander Lukyanov).
- + improve appearance of marker in multi-selection menu (Juergen
- Pfeifer)
- + fix behaviour for forms with all fields inactive (Juergen
- Pfeifer)
- + document 'field_index()' (Juergen Pfeifer)
- > patch #321 by eric:
- + add some more XENIX keycap translations to include/Caps.
- + modify newwin to set initial state of each line to 'touched'
- (from patch by Peter Wemm <peter@spinner.dialix.com>)
- + in SET_TTY, replace TCSANOW with TCSADRAIN (Alexander Lukyanov).
-
-960928 - snapshot
- + ifdef'd out _nc_hash_map (still slower)
- + add graphic characters to vt52 description.
- + use PutAttrChar in ClrToEOL to ensure proper background, position.
- + simplify/correct logic in 'mvcur()' that does wrapping; it was
- updating the position w/o actually moving the cursor, which broke
- relative moves.
- + ensure that 'doupdate()' sets the .oldindex values back to a sane
- state; this was causing a spurious refresh in ncurses 'r'.
- + add logic to configure (from vile) to guard against builders who
- don't remove config.cache & config.status when doing new builds.
- + corrected logic for 'repeat_char' in EmitRange (from #317), which
- did not follow the 2-parameter scheme specified in XSI.
- + corrected logic of wrefresh, wnoutrefresh broken in #319, making
- clearok work properly (from report by Michael Elkins).
- + corrected problem with endwin introduced by #314 (removing the
- scrolling-region reset) that broke ncurses.c tests.
- + corrected order of args in AC_CHECK_LIB (from report by Ami Fischman
- <fischman@math.ucla.edu>).
- + corrected formatting of terminfo.5 tables (Juergen Ehling)
- > patch 320 by eric:
- + change ABI to 3.3
- + emit a carriage-return in 'endwin()' to workaround a kernel bug in
- BSDI. (requested by Mike Karels <karels@redrock.bsdi.com>)
- + reverse the default o configure --enable-termcap (consensus).
- > patch 319 by eric:
- + modified logic for clearok and related functions (from report by
- Michael Elkins) - untested
- > patch 318 by eric:
- + correction to #317.
- > patch 317 by eric:
- + re-add _nc_hash_map
- + modify EmitRange to maintain position as per original design.
- + add hashtest.c, program to time the hashmap optimization.
- > patch 316 by eric:
- + add logic to deal with magic-cookie (how was this tested?)
- (lib_doupdate.c).
- + add ncurses.c driver for magic-cookie, some fixes to ncurses.c
- > patch 315 by eric:
- + merged A. Lukyanov's patch to use ech and rep - untested
- (lib_doupdate.c).
- + modified handling of interrupted system calls - untested
- (lib_getch.c, lib_twait.c).
- + new function _nc_mvcur_resume()
- + fix return value for 'overlay()', 'overwrite()'
-
-960914 - snapshot
- + implement subwindow-logic in wresize, minor fixes to ncurses 'g'
- test.
- + corrected bracketing of fallback.c (reported/suggested fix by Juergen
- Ehling <eh@eclipse.aball.de>).
- + update xterm-color to reflect XFree86 3.1.3G release.
- + correct broken dtterm description from #314 patch (e.g., spurious
- newline. The 'pairs' change might work, but no one's tested it
- either ;-)
- + clarify the documentation for the builtin form fieldtypes (Juergen
- Pfeifer)
- > patch 314 by eric:
- + Enhancement suggested by A. Lukyanov -- reset scroll region on
- startup rather than at wrapup time.
- + Fix suggested by A. Lukyanov, make storage of palette tables
- and their size counts per-screen for multi-terminal applications.
- + Improved error reporting for infotocap translation errors.
- + Update terminfo.src to 9.13.14.
-
-960907 - snapshot
- + rewrote wgetstr to make it erase control chars and also fix bogus use
- of _nc_outstr which caused the display to not wrap properly (display
- problem reported by John M. Flinchbaugh <glynis@netrax.net>)
- + modify ncurses 'f' test to accommodate terminal responses to C1 codes
- (and split up this screen to accommodate non-ANSI terminals).
- + test enter_insert_mode and exit_insert_mode in has_ic().
- + removed bogus logic in mvcur that assumes nl/nonl set output modes
- (XSI says they are input modes; SVr4 implements this).
- + added macros SET_TTY, GET_TTY to term.h
- + correct getstr() logic that altered terminal modes w/o restoring.
- + disable ICRNL, etc., during initialization to match SVr4, removing
- the corresponding logic from raw, cbreak, etc.
- + disable ONLCR during initialization, to match SVr4 (this is needed
- for cursor optimization when the cursor-down is a newline).
- + replaced Eric's imitation of wresize with my original (his didn't
- work).
-
-960831 - snapshot
- + memory leaks (Alexander V. Lukyanov).
- + modified pnoutrefresh() to be more tolerant of too-large screen
- size (reported by Michael Elkins).
- + correct handling of terminfo files with no strings (Philippe De
- Muyter)
- + correct "tic -s" to take into account -I, -C options.
- + modify ncurses 'f' test to not print codes 80 through 9F, since they
- are considered control codes by ANSI terminals.
-
-960824 - snapshot
- + correct speed variable-type in 'tgetent()' (reported by Peter Wemm)
- + make "--enable-getcap" configuration-option work (reported by
- Peter Wemm <peter@spinner.DIALix.COM>)
-
-960820
- + correct err in 960817 that changed return-value of tigetflag()
- (reported by Alexander V. Lukyanov).
- + modify infocmp to use library default search-path for terminfo
- directory (Alexander V. Lukyanov).
-
-960817 - snapshot
- + corrected an err in mvcur that broke resizing-behavior.
- + correct fall-thru behavior of _nc_read_entry(), which was not finding
- descriptions that existed in directories past the first one searched
- (reported by Alexander V. Lukyanov)
- + corrected typo in dtterm description.
- > patch 313 by eric:
- + add dtterm description
- + clarify ncurses 'i' test (drop vscanf subtest)
-
-960810 - snapshot
- + correct nl()/nonl() to work as per SVr4 & XSI.
- + minor fixes to ncurses.c (use 'noraw()', mvscanw return-code)
- + refine configure-test for -g option (Tim Mooney).
- + correct interaction between O_BLANK and NEW_LINE request in form
- library (Juergen Pfeifer)
-
-960804
- + revised fix to tparm; previous fix reversed parameter order.
- > patch 312 by eric:
- correct terminfo.src corrupted by #310
- > patch 311 by eric:
- + fix idlok() and idcok() and the default of the idlok switch.
-
-960803 - snapshot
- + corrected tparm to handle capability strings without explicit pop
- (reported by William P Setzer)
- + add fallback def for GCC_NORETURN, GCC_UNUSED for termcap users
- (reported by Tim Mooney).
- > patch 310 by eric:
- + documentation and prototyping errors for has_color, immedok and idcok
- (reported by William P Setzer <wsetzer@pams.ncsu.edu>)
- + updated qnx terminfo entry (by Michael Hunter)
-
-960730
- + eliminate quoted includes in ncurses subdirectory, ensure config.h
- is included first.
- + newterm initializes terminal settings the same as initscr (reported
- by Tim Mooney).
-
-960727 - snapshot
- + call cbreak() in initscr(), as per XSI & SVr4.
- + turn off hardware echo in initscr() as per XSI & SVr4
- > patch 309 by eric:
- + terminfo changes (9.3.10), from BRL
- + add more checks to terminfo parser.
- + add more symbols to infocmp.
-
-960720 - snapshot
- + save previous-attribute in lib_vidattr.c if SP is null (reported by
- 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.
- + 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
- include therein).
- + move the ifdefs for errno into curses.priv.h
- > patch 308 by eric:
- + terminfo changes (9.3.8)
- + modified logic of error-reporting in terminfo parser
-
-960713 - snapshot
- + always check for <sys/bsdtypes.h> since ISC needs it to declare
- fd_set (Juergen Pfeifer)
- + install shared-libraries on NetBSD/FreeBSD with ABI-version (reported
- by several people: Juergen Pfeifer, Mike Long)
- + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer)
- + corrected prototype for delay_output() -- bump ABI to 3.2
- + terminfo patches #306/307 from Eric.
- + moved logic that filters out rmul and rmso from setupterm to newterm
- where it is less likely to interfere with termcap applications.
-
-960707
- + rollback Eric's #305 change to terminfo.src (it breaks existing
- applications, e.g., 'less 290').
- + correct path of edit_man.sh, and fix typo that made all man-pages
- preformatted.
- + restore man/menu_requestname.3x omitted in Zeyd's resync (oops).
- + auto-configure the GCC_PRINTFLIKE/GCC_SCANFLIKE macros (reported by
- Philippe De Muyter).
-
-960706 - snapshot
- + make lib_vidattr.c more readable using macros.
- + filter out rmul, rmso that conflict with sgr0 when reading terminal
- descriptions.
- + added sanity-checking of various paired string attributes (Eric).
- + work around autoconf bug, force $INSTALL to absolute path.
- (reported by Zeyd).
- + modify man-page install for BSDI to install preformatted .0 files
- (reported by David MacKenzie).
- + add/use gcc __attribute__ for printf and scanf in curses.h
- + added SGR attributes test-case to ncurses
- + revised ncurses 't' logic to show trace-disable effect in the menu.
- + use getopt in ncurses program to process -s and -t options.
- + make ncurses 'p' legend toggle with '?'
- + disable scrollok during the ncurses 'p' test; if it is enabled the
- stdscr will scroll when putting the box-corners in the lower-right
- of the screen.
-
-960629 - snapshot
- + check return code of _nc_mvcur_scrolln() in _nc_scroll_optimize() for
- terminals with no scrolling-support (reported by Nikolay Shadrin
- <queen@qh.mirea.ac.ru>)
- + added ^S scrollok-toggle to ncurses 'g' test.
- + added ^T trace-toggle to ncurses tests.
- + modified ncurses test program to use ^Q or ESC consistently for
- terminating tests (rather than ^D), and to use control keys rather
- than function keys in 'g' test.
- + corrected misplaced wclrtoeol calls in addch to accommodate wrapping
- (reported by Philippe De Muyter).
- + modify lib_doupdate.c to use effective costs to tradeoff between
- delete-character/insert-character vs normal updating (reported by
- David MacKenzie).
- + compute effective costs for screen update operations (e.g., clr_eos,
- delete_character).
- + corrected error in knight.c exposed by wrap fixes in 960622; the
- 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.
- + corrected off-by-one in RoomFor call in read_entry.c
-
-960622 - snapshot
- + modified logic that wraps cursor in addch to follow the XSI spec,
- (implemented in SVr4) which states that the cursor position is
- updated when wrapping. Renamed _NEED_WRAP to _WRAPPED to reflect the
- actual semantics.
- + added -s option to tic, to provide better diagnostics in run_tic.sh
- + improved error-recovery for tabset install.
- + change ABI to 3.1 (dropped tparam, corrected getbkgd(), added
- _yoffset to WINDOW).
- + modified initialization of SP->_ofp so that init_acs() is called with
- the "right" file pointer (reported by Rick Marshall <rjm@nlc.net.au>
- + documentation fixes (Juergen Pfeifer).
- + corrected, using new SCREEN and WINDOW members, the behavior of
- ncurses if one uses ripoffline() to remove a line from the top of the
- screen (Juergen Pfeifer).
- + modified autoconf scripts to prepare for Ada95 (GNAT) binding to
- ncurses (Juergen Pfeifer).
- + incorrect buffer-size in _nc_read_entry, reported by Eric Raymond.
-
-960617
- + corrected two logic errors in read_entry.c, write_entry.c (called by
- tic, the write/read of terminfo entries used inconsistent rules for
- locating the entries; the $TERMINFO_DIRS code would find only the
- first entry in a list).
- + refined pathname computation in run_tic.sh and shlib.
- + corrected initialization of $IP in misc/run_tic.sh
-
-960615 - snapshot
- + ifdef'd out _nc_hash_map() call because it does not improve speed.
- + display version of gcc if configure script identifies it.
- + modify configure script to use /usr as Linux's default prefix.
- + modify run_tic.sh to use shlib script, fixes some problems installing
- with a shared-library configuration.
- + adjusted configure script so that it doesn't run tests with the
- warnings turned on, which makes config.log hard to read.
- + added 'lint' rule to top-level Makefile.
- + added configure option '--with-install-prefix' for use by system
- builders to install into staging locations (from request by
- charles@comm.polymtl.ca)
- + corrected autoconfigure for Debian man program; it's not installed
- as "man_db".
- + set noecho in 'worm'; it was ifdef'd for debug only
- + updated test/configure.in for timing-display in ncurses 'p' test
- + corrected misspelled 'getbkgd()'.
- + corrected wbkgdset to work like observed syvr4 (sets A_CHARTEXT part
- to blank if no character given, copies attributes to window's
- attributes).
- + modified lib_doupdate.c to use lower-level SP's current_attr state
- instead of curscr's state, since it is redundant.
- + correction to IDcTransformLine logic which controls where InsStr is
- invoked (refined by lav@yars.free.net).
- > patches 303 by eric
- + conditionally include Chris Torek's hash function _nc_hash_map().
- + better fix for nvi refresh-bug (Rick Marshall)
- + fix for bug in handling of interrupted keystroke waits,
- (Werner Fleck).
-
-960601 - snapshot
- + auto-configure man-page compression-format and renames for Debian.
- + corrected several typos in curses.h.in (i.e., the mvXXXX macros).
- + re-order curses.priv.h for lint.
- + added rules for lintlib, lint
- + 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).
- + enhancement to the control over the new PC-style soft key format.
- allow caller now to select whether or not one wants to have
- the index-line; see curs_slk.3x for documentation (Juergen Pfeifer).
- + typos, don't use inline with -g (Philippe De Muyter)
- + fixes for menus & wattr-, slk-functions (Juergen Pfeifer)
-
-960526 - snapshot
- + removed --with-ticdir option altogether, maintain compatibility with
- existing applications via symbolic link in run_tic.sh
- + patch for termio.h, signal (Philippe De Muyter)
- + auto-configure gcc warning options rather than infer from version.
- + auto-configure __attribute__ for different gcc versions.
- + corrected special use of clearok() in hardscroll.c by resetting flag
- in wrefresh().
- + include stdlib.h before defs for EXIT_SUCCESS, for OSF/1.
- + include sys/types.h in case stdlib.h does not declare size_t.
- + fixes for makefile (Tim Mooney)
- + fixes for menus & forms (Juergen.Pfeifer@T-Online.de)
-
-960518 - snapshot
- + revised ncurses.c panner test, let pad abut all 4 sides of screen.
- + refined case in lib_doupdate.c for ClrToEOL().
- + corrected prior change for PutRange (Alexander V. Lukyanov:
- lav@yars.free.net).
- + autoconf mods (Tim Mooney: mooney@dogbert.cc.ndsu.NoDak.edu).
- + locale fix for forms (Philippe De Muyter: phdemuyt@ulb.ac.be)
- + renamed "--with-datadir" option to "--with-ticdir" to avoid
- confusion, and made this check for the /usr/lib/terminfo pre-existing
- directory.
- > patches 299-301 by eric:
- + added hashmap.c
- + mods to tracing, especially for ACS chars.
- + corrected off-by-one in IDCtransform.
- + corrected intermittent mouse bug by using return-value from read().
- + mods to parse_entry.c, for smarter defaults.
-
-960512
- + use getopt in 'tic'; added -L option and modified -e option to allow
- list from a file.
-
-960511
- + don't use fixed buffer-size in tparm().
- + modified tic to create terminfo directory if it doesn't exist.
- + added -T options to tic and infocmp (for testing/analysis)
- + refined the length criteria for termcap and terminfo
- + optimize lib_doupdate with memcpy, PutRange
- > patches 297, 298 by eric
- + implement TERMINFO_DIRS, and -o option of tic
- + added TRACE_IEVENT
- + removed boolean version of 'getm'
- + added lib_print.c (for Rick Marshall)
- + added has_key()
- + added 't' to ncurses.c test.
- + moved delay_output() to lib_tputs.c
- + removed tparam().
- + misc cursor & optimization fixes.
-
-960504 - snapshot
- + modified ncurses 'p' test to allow full-screen range for panner size.
- + fixes for locale (phdm@labauto1.ulb.ac.be)
- + don't use fixed buffer-size in fmt_entry().
- + added usage-message to 'infocmp'.
- + modified install.includes rules to prepend subdirectory-name to
- "#include" if needed.
-
-960430
- + protect wrefresh, wnoutrefresh from invocation with pad argument.
- + corrected default CCFLAGS in test/Makefile.
-
-960428 - snapshot
- + implemented logic to support terminals with background color erase
- (e.g., rxvt and the newer color xterm).
- + improved screen update logic (off-by-one logic error; use clr_eos if
- possible)
-
-960426 - snapshot
- + change ncurses 'a' test to run in raw mode.
- + make TIOCGWINSZ configure test less stringent, in case user
- configures via terminal that cannot get screen size.
- > patches 295, 296 by eric:
- + new "-e" option of tic.
- + fix for "infocmp -e".
- + restore working-directory in read_termcap.c
- + split lib_kernel.c, lib_setup.c and names.c in order to reduce
- overhead for programs that use only termcap features.
-
-960418 - snapshot
- + use autoconf 2.9
- + fix for AIX 3.2.5 (must define _POSIX_SOURCE to get termios struct
- definitions via <termios.h>, modified macros in lib_raw.c to avoid
- K&R-style substitution)
- > patches 293, 294 by eric:
- + mods to wgetch() in cooked mode
- + corrected askuser() logic in tset
- + correct interaction of endwin() with mouse processing
- + added trace support for TTY flags
-
-960406
- + fixes for NeXT, ISC and HPUX auto-configure
- + 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
- + modify tic to generate directories only as-needed (and corrected
- instance of use of data from function that had already returned).
-
-### ncurses-1.9.8a -> 1.9.9e
-
-* fixed broken wsyncup()/wysncdown(), as a result wnoutrefresh() now has
- copy-changed-lines behavior.
-* added and documented wresize() function.
-* more fixes to LOWER-RIGHT corner handling.
-* changed the line-breakout optimization code to allow some lines to be
- emitted before the first check.
-* added option for tic to use symbolic instead of hard links (for AFS)
-* fix to restore auto-wrap mode.
-* trace level can be controlled by environment variable.
-* better handling of NULs in terminal descriptions.
-* improved compatibility with observed SVR4 behavior.
-* the refresh behavior of over-lapping windows is now more efficient and
- behaves like SVR4.
-* use autoconf 2.7, which results in a working setup for SCO 5.0.
-* support for ESCDELAY.
-* small fixes for menu/form code.
-* the test directory has its own configure.
-* fixes to pads when optimizing scrolling.
-* fixed several off-by-one bugs.
-* fixes for termcap->terminfo translation; less restrictions more correct
- behavior.
-
-### ncurses-1.9.7 -> 1.9.8a
-
-* teach infocmp -i to recognize ECMA highlight sequences
-* infocmp now dumps all SVr4 termcaps (not just the SVr4 ones) on -C
-* support infocmp -RBSD.
-* satisfy XSI Curses requirement that every macro be available as a function.
-* This represents the last big change to the public interface of ncurses. The
- ABI_VERSION has now been set at 3.0 and should stay there barring any great
- catastrophies or acts of God.
-* The C++ has been cleaned up in reaction to the changes to satisfy XSI's
- requirements.
-* libncurses now gets linked to libcurses to help seamless emulation
- (replacement) of a vendor's curses. --disable-overwrite turns this behavior
- off.
-
-### ncurses-1.9.6 -> 1.9.7
-
-* corrected return values of setupterm()
-* Fixed some bugs in tput (it does padding now)
-* fixed a bug in tic that made it do the wrong thing on entries with more than
- one `use' capability.
-* corrected the screen-size calculation at startup time to alter the
- numeric capabilities as per SVr4, not just LINES and COLS.
-* toe(1) introduced; does what infocmp -T used to.
-* tic(1) can now translate AIX box1 and font[0123] capabilities.
-* tic uses much less core, the dotic.sh kluge can go away now.
-* fix read_entry() and write_entry() to pass through cancelled capabilities OK.
-* Add $HOME/.terminfo as source/target directory for terminfo entries.
-* termcap compilation now automatically dumps an entry to $HOME/.terminfo.
-* added -h option to toe(1).
-* added -R option to tic(1) and infocmp(1).
-* added fallback-entry-list feature.
-* added -i option to infocmp(1).
-* do a better job at detecting if we're on SCO.
-
-### ncurses-1.9.5 -> 1.9.6
-
-* handling of TERMCAP environment variables now works correctly.
-* various changes to shorten termcap translations to less that 1024 chars.
-* tset(1) added
-* mouse support for xterm.
-* most data tables are now const and accordingly live in shareable text space.
-* Obey the XPG4/SVr4 practice that echo() is initally off.
-* tic is much better at translating XENIX and AIX termcap entries now.
-* tic can interpret ko capabilities now.
-* integrated Juergen Pfeifer's forms library.
-* taught write_entry() how not to write more than it needs to; this change
- reduces the size of the terminfo tree by a full 26%!
-* infocmp -T option added.
-* better warnings about historical tic quirks from tic.
-
-### ncurses 1.9.4 -> 1.9.5
-
-* menus library is now included with documentation.
-* lib_mvcur has been carefully profiled and tuned.
-* Fixed a ^Z-handling bug that was tanking lynx(1).
-* HJ Lu's patches for ELF shared libraries under Linux
-* terminfo.src 9.8.2
-* tweaks for compiling in seperate directories.
-* Thomas Dickey's patches to support NeXT's brain-dead linker
-* Eric Raymond's patches to fix problems with long termcap entries.
-* more support for shared libraries under SunOS and IRIX.
-
-### ncurses 1.9.3 -> 1.9.4
-
-* fixed an undefined-order-of-evaluation bug in lib_acs.c
-* systematically gave non-API public functions and data an _nc_ prefix.
-* integrated Juergen Pfeifer's menu code into the distribution.
-* totally rewrote the knight test game's interface
-
-### ncurses 1.9.2c -> 1.9.3
-
-* fixed the TERMCAP_FILE Support.
-* fixed off-by-one errors in scrolling code
-* added tracemunch to the test tools
-* took steps to cut the running time of make install.data
-
-### ncurses 1.9.2c -> 1.9.2d
-
-* revised 'configure' script to produce libraries for normal, debug,
- profile and shared object models.
-
-### ncurses 1.9.1 -> 1.9.2
-
-* use 'autoconf' to implement 'configure' script.
-* panels support added
-* tic now checks for excessively long termcap entries when doing translation
-* first cut at eliminating namespace pollution.
-
-### ncurses 1.8.9 -> 1.9
-
-* cleanup gcc warnings for the following: use size_t where 'int' is not
- appropriate, fixed some shadowed variables, change attr_t to compatible with
- chtype, use attr_t in some places where it was confused with 'int'.
-* use chtype/attr_t casts as appropriate to ensure portability of masking
- operations.
-* added-back waddchnstr() to lib_addstr.c (it had been deleted).
-* supplied missing prototypes in curses.h
-* include <termcap.h> in lib_termcap.c to ensure that the prototypes
- are consistent (they weren't).
-* corrected prototype of tputs in <termcap.h>
-* rewrote varargs parsing in lib_tparm.c (to avoid referencing memory
- that may be out of bounds on the stack) -- Purify found this.
-* ensure that TRACE is defined in lib_trace.c (to solve prototype
- warnings from gcc).
-* corrected scrolling-region size in 'mvcur_wrap()'
-* more spelling fixes
-* use 'calloc()' to allocate WINDOW struct in lib_newwin.c (Purify).
-* set default value for SP->_ofp in lib_set_term.c (otherwise SunOS dumps
- core in init_acs()).
-* include <errno.h> in write_entry.c (most "braindead" includes declare errno
- in that file).
-
-### ncurses 1.8.8 -> 1.8.9
-
-* compile (mostly) clean with gcc 2.5.8 -Wall -Wstrict-prototypes
- -Wmissing-prototypes -Wconversion and using __attribute__ to flush out
- non-portable use of "%x" for pointers, or for chtype data (which is declared
- as a long).
-* modified doupdate to ensure that typahead was turned on before attempting
- select-call (otherwise, some implementations hang).
-* added trace mask TRACE_FIFO, use this in lib_getch.c to allow finer
- resolution of traces.
-* improved bounds checking on several critical functions.
-* the data directory has been replaced by the new master terminfo file.
-* -F file-comparison option added to infocmp.
-* compatibility with XSI Curses is now documented in the man bages.
-* wsyncup/wsyncdown functions are reliable now; subwindow code in general
- is much less flaky.
-* capabilities ~msgr, tilde_glitch, insert_padding, generic_type, no_pad_char,
- memory_above, memory_below, and hard_copy are now used properly.
-* cursor-movement optimization has been completely rewritten.
-* vertical-movement optimization now uses hardware scrolling, il, dl.
-
-### ncurses 1.8.7 -> 1.8.8
-* untic no longer exists, infocmp replaces it.
-* tic can understand termcap now, especially if it is called captoinfo.
-* The Linux Standard Console terminfo entry is called linux insead of console.
- It also uses the kernel's new method of changing charsets.
-* initscr() will EXIT upon error (as the docs say) This wil mostly happen if
- you try to run on an undefined terminal.
-* I can get things running on AIX but tic can't compile terminfo. I have to
- compile entries on another machine. Volunteers to hunt this bug are welcome.
-* wbkgd() and wbkgdset() can be used to set a windows background to color.
- wclear()/werase() DO NOT use the current attribute to clear the screen.
- This is the way SVR4 curses works. PDCurses 2.1 is broken in this respect,
- though PDCurses 2.2 has been fixed.
-* cleaned up the test/ directory.
-* test/worm will segfault after quite a while.
-* many spelling corrections courtesy of Thomas E. Dickey
-
-### ncurses 1.8.6 -> 1.8.7
-* cleaned up programs in test/ directory.
-* fixed wbkgdset() macro.
-* modified getstr() to stop it from advancing cursor in noecho mode.
-* modified linux terminfo entry to work with the latest kernel to get
- the correct alternate character set.
-* also added a linux-mono entry for those running on monochrome screens.
-* changed initscr() so that it behaves like the man page says it does.
- this fixes the problem with programs in test/ crashing with SIGSEV if
- a terminal is undefined.
-* modified addch() to avoid using any term.h #define's
-* removed duplicate tgoto() in lib_tparm.c
-* modified dump_entry.c so that infocmp deals correctly with ',' in acsc
-* modified delwin() to correctly handle deleting subwindows.
-* fixed Makefile.dist to stop installing an empty curses.h
-* fixed a couple of out-of-date notes in man pages.
-
-### ncurses 1.8.5 -> 1.8.6
-* Implemented wbkgd(), bkgd(), bkgdset(), and wbkgdset().
-* The handling of attributes has been improved and now does not turn off color
- if other attributes are turned off.
-* scrolling code is improved. Scrolling in subwindows is still broken.
-* Fixes to several bugs that manifest them on platforms other than Linux.
-* The default to meta now depends on the status of the terminal when ncurses
- is started.
-* The interface to the tracing facility has changed. Instead of the pair of
- functions traceon() and traceoff(), there is just one function trace() which
- 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 */
-
- 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
- been improved.
-* The prototype ansi entry has been changed to work with a wider variety
- of emulators.
-* Fix to the prototype ansi entry that enables it to work with PC emulators
- that treat trailing ";m" in a highlight sequence as ";0m"; this doesn't
- break operation with any emulators.
-* There are now working infocmp, captoinfo, tput, and tclear utilities.
-* tic can now compile entries in termcap syntax.
-* Core-dump bug in pnoutrefresh fixed.
-* We now recognize and compile all the nonstandard capabilities in Ross
- Ridge's mytinfo package (rendering it obsolete).
-* General cleanup and documentation improvements.
-* Fixes and additions to the installation-documentation files.
-* Take cursor to normal mode on endwin.
-
-### ncurses 1.8.4 -> 1.8.5
-* serious bugs in updating screen which caused erratic non-display,
- fixed.
-* fixed initialization for getch() related variable which cause
- unpredictable results.
-* fixed another doupdate bug which only appeared if you have
- parm_char.
-* implemented redrawln() and redrawwin().
-* implemented winsnstr() and related functions.
-* cleaned up insertln() and deleteln() and implemented (w)insdeln().
-* changed Makefile.dist so that installation of man pages will
- take note of the terminfo directory.
-* fixed Configure (removed the mysterious 'X').
-* Eric S. Raymond fixed the script.* files so that they work with
- stock awk.
-
-#### ncurses 1.8.3 -> 1.8.4 #### ####
-* fixed bug in refreshing the screen after return from shell_mode.
- There are still problems but they don't manifest themselves on
- my machine (Linux 0.99.14f).
-* added wgetnstr() and modified things accordingly.
-* fixed the script.src script.test to work with awk not just gawk.
-* Configure can now take an argument of the target system.
-* added test/ncurses.c which replaces several other programs and
- performs more testing.
-[Thanks to Eric S Raymond for the last 4]
-* more fixes to lib_overlay.c and added test/over.c to illustrate
- how it works.
-* fixed ungetch() to take int instead of ch.
-* fixes to cure wgetch() if flushinp() is called.
-
-One note I forgot to mention in 1.8.3 is that tracing is off by
-default starting in the version. If you want tracing output, put
-traceon(); in your code and link with -ldcurses.
-
-#### ncurses 1.8.2 -> ncurses 1.8.3 #### ####
-MAJOR CHANGES:
-1) The order of capabilities has been changed in order to achieve
-binary compatibility with SVR4 terminfo database. This has the
-unfortunate effect of breaking application currently linked with
-ncurses. To ensure correct behavior, recompile all such programs.
-Most programs using color or newer capabilities will break, others
-will probably continue to work ok.
-
-2) Pavel Curtis has renounced his copyright to the public domain.
-This means that his original sources (posted to comp.sources.unix,
-volume 1) are now in the public domain. The current sources are
-NOT in the public domain, they are copyrighted by me. I'm
-entertaining ideas on what the new terms ncurses is released under.
-
-3) Eric S. Raymond has supplied a complete set of man pages for
-ncurses in ?roff format. They will eventually replace most of the
-current docs. Both sets are included in this release.
-
-Other changes and notes from 1.8.2 include:
-* SIGSEGV during scrolling no longer occurs.
-* Other problems with scrolling and use of idl have been corrected.
-* lib_getch.c has been re-written and should perform flawlessly.
- please use test/getch.c and any other programs to test this.
-* ripoffline() is implemented (Thanks to Eric) and slk_ functions
- changed accordingly.
-* I've added support for terminals that scroll if you write in the
- bottom-right corner.
-* fixed more bugs in pads code. If anybody has a program that uses
- pads I'd love a copy.
-* correct handling for terminal with back_color_erase capability
- (such as Linux console, and most PC terminals)
-* ^Z handling apparently didn't work (I should never trust code
- sent me to me without extensive testing). It now seems to be
- fixed. Let me know if you have problems.
-* I've added support for Apollo and NeXT, but it may still be
- incomplete, especially when dealing with the lack of POSIX
- features.
-* scrolling should be more efficient on terminals with idl
- capabilities. Please see src/lib_scroll.c for more notes.
-* The line drawing routines were offset by 1 at both ends. This
- is now fixed.
-* added a few missing prototypes and macros (e.g. setterm())
-* fixed code in src/lib_overlay.c which used to crash.
-* added a few more programs in test/ The ones from the PDCurses
- package are useful, especially if you have SVR4 proper. I'm
- interested in the results you get on such a systems (Eric? ;-).
- They already exposed certain bugs in ncurses.
-* See src/README for porting notes.
-* The C++ code should really replace ncurses.h instead of working
- around it. It should avoid name-space clashes with nterm.h (use
- rows instead of lines, etc.)
-* The C++ should compile ok. I've added explicit rules to the
- Makefile because no C++ defaults are documented on the suns.
-* The docs say that echo() and nocbreak() are mutually exclusive.
- At the moment ncurses will switch to cbreak() if the case above
- occurs. Should it continue to do so? How about echo() and noraw()?
-* PDCurses seem to assume that wclear() will use current attribute
- when clearing the screen. According to Eric this is not the case
- with SVR4.
-* I have discovered, to my chagrin, SunOS 4.x (and probably other systems)
- * doesn't have vsscanf and God knows what else! I've will do a vsscanf().
-* I've also found out that the src/script.* rely on gawk and will not
- work with stock awk or even with nawk. Any changes are welcome.
-* Linux is more tolerant of NULL dereferences than most systems. This
- fact was exposed by hanoi.
-* ncurses still seems inefficient in drawing the screen on a serial
- link between Linux and suns. The padding may be the culprit.
-* There seems to be one lingering problem with doupdate() after shelling
- out. Despite the fact the it is sending out the correct information
- to the terminal, nothing takes effect until you press ^L or another
- refresh takes place. And yes, output does get flushed.
-
-#### ncurses 1.8.1 -> ncurses 1.8.2 #### Nov 28, 1993 ####
-
-* added support for SVR4 and BSDI's BSD/386.
-* major update and fix to scrolling routine.
-* MORE fixes to stuff in lib_getch.c.
-* cleaned-up configuration options and can now generate
- Config.* files through an awk script.
-* changed setupterm() so it can be called more than once,
- add added set_curterm(), del_curterm().
-* a few minor cleanups.
-* added more prototypes in curses.h
-
-#### ncurses 1.8 -> ncurses 1.8.1 #### Nov 4, 1993 ####
-
-* added support for NeXTStep 3.0
-* added termcap emulation (not well tested).
-* more complete C++ interface to ncurses.
-* fixed overlay(), overwrite(), and added copywin().
-* a couple of bug fixes.
-* a few code cleanups.
-
-#### ncurses 0.7.2/0.7.3 -> ncurses 1.8 #### Aug 31, 1993 ####
-
-* The annoying message "can't open file." was due to missing
- terminfo entry for the used terminal. It has now been
- replaced by a hopefully more helpful message.
-* Problems with running on serial lines are now fixed.
-* Added configuration files for SunOS, Linux, HP/UX, Ultrix,
- 386bsd/BSDI (if you have others send'em to me)
-* Cleaner Makefile.
-* The documentation in manual.doc is now more uptodate.
-* update optimization and support for hp terminals, and 386bsd
- console driver(s).
-* mvcur optimization for terminals without cursor addressing
- (doesn't work on Linux)
-* if cursor moved since last update, getch() will refresh the
- screen before working.
-* getch() & alarm() can now live together. in 0.7.3 a signal
- interrupted getch() (bug or feature?) now the getch is
- restarted.
-* scanw() et all were sick, now fixed.
-* support for 8-bit input (use meta()).
-* added default screen size to all terminfos.
-* added c++ Ncursesw class.
-* several minor bug fixes.
-
-#### ncurses 0.7.2 -> ncurses 0.7.3 #### May 27, 1993 ####
-
-* Config file to cope with different platforms (386BSD, BSDI, Ultrix, SunOS)
-* more fixes to lib_getch.c
-* changes related to Config
-
-#### ncurses 0.7 -> ncurses 0.7.2 #### May 22, 1993 ####
-
-* docs updated slightly (color usage is now documented).
-* yet another fix for getch(), this one fixes problems with ESC being swallowed
- if another character is typed before the 1 second timeout.
-* Hopefully, addstr() and addch() are 8-bit clean.
-* fixed lib_tparm.c to use stdarg.h (should run on suns now)
-* order of capabilities changed to reflect that specified in SYSV
- this will allow for binary-compatibility with existing terminfo dbs.
-* added halfdelay()
-* fixed problems with asc_init()
-* added A_PROTECT and A_INVIS
-* cleaned up vidputs()
-* general cleanup of the code
-* more attention to portability to other systems
-* added terminfos for hp70092 (wont work until changes to lib_update.c are
- made) and 386BSD pcvt drivers.
-
-Thanks to Hellmuth Michaelis for his help.
-optimization code is slated for the next major release, stay tuned!
-
-#### ncurses 0.6/0.61 -> ncurses 0.7 #### April 1, 1993
-Please note that the next release will be called 1.8. If you want to know about
-the rationale drop me a line.
-
-Included are several test programs in test/.
-I've split up the panels library, reversi, tetris, sokoban. They are now
-available separately from netcom.com:pub/zmbenhal/
-
-* color and ACS support is now fully compatible with SYSV at the terminfo
- level.
-* Capabilities now includes as many SYSV caps I could find.
-* tigetflag,tigetnum,tigetstr functions added.
-* boolnames, boolfnames, boolcodes numnames, numfnames, numcodes,
- strnames, strfnames, strcodes arrays are now added.
-* keyname() is added.
-* All function keys can be defined in terminfo entries.
-* fixed lin_tparm.c to behave properly.
-* terminfo entries for vt* and xterm are included (improvements are welcome)
-* more automation in handling caps and keys.
-* included fixes from 0.6.1
-* added a few more missing functions.
-* fixed a couple of minor bugs.
-* updated docs JUST a little (still miles behind in documenting the newer
- features).
-
-#### ncurses 0.6 -> ncurses 0.61 ####
-
-1) Included the missing data/console.
-
-2) allow attributes when drawing boxes.
-
-3) corrected usage of win->_delay value.
-
-4) fixed a bug in lib_getch.c. if it didn't recognize a sequence it would
- simply return the last character in the sequence. The correct
- behavior is to return the entire sequence one character at a time.
-
-#### ncurses0.5 -> ncurses0.6 #### March 1, 1993 ####
-* removed _numchngd from struct _win_st and made appropriate changes.
-* rewritten kgetch() to remove problems with interaction between alarm and
- read(). It caused SIGSEGV every now and then.
-* fixed a bug that miscounted the numbers of columns when updating.
- (in lib_doupdate.c(ClrUpdate() -- iterate to columns not columns-1)
-* fixed a bug that cause the lower-right corner to be incorrect.
- (in lib_doupdate.c(putChar() -- check against columns not columns-1)
-* made resize() and cleanup() static to lib_newterm.c
-* added notimeout().
-* added timeout() define in curses.h
-* added more function prototypes and fixed napms.
-* added use_env().
-* moved screen size detection to lib_setup.c.
-* fixed newterm() to confirm to prototype.
-* removed SIGWINCH support as SYSV does not define its semantics.
-* cleaned-up lib_touch.c
-* added waddnstr() and relatives.
-* added slk_* support.
-* fixed a bug in wdeleteln().
-* added PANEL library.
-* modified Makefile for smoother installation.
-* terminfo.h is really term.h
-
-#### ncurses 0.4 -> ncurses 0.5 #### Feb 14, 1993 ####
-* changed _win_st structure to allow support for missing functionality.
-* Addition of terminfo support for all KEY_*.
-* Support for nodelay(), timeout(), notimeout().
-* fixed a bug with the keypad char reading that did not return ESC until
- another key is pressed.
-* nl mapping no longer occur on output (as should be)
- fixed bug '\n' no causing a LF.
-* fixed bug that reset terminal colors regardless of whether we use color
- or not.
-* Better support for ACS (not quite complete).
-* fixed bug in wvline().
-* added curs_set().
-* changed from signal() to sigaction().
-* re-included the contents of important.patch into source.
-
-#### ncurses 0.3 -> ncurses 0.4 #### Feb 3, 1993 ####
-* Addition of more KEY_* definitions.
-* Addition of function prototypes.
-* Addition of several missing functions.
-* No more crashes if screen size is undefined (use SIGWINCH handler).
-* added a handler to cleanup after SIGSEGV (hopefully never needed).
-* changed SRCDIR from /etc/term to /usr/lib/terminfo.
-* renamed compile/dump to tic/untic.
-* New scrolling code.
-* fixed bug that reversed the sense of nl() and nonl().
-
-#### 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.
-* no more core dumps if you don't have a terminfo entry.
-* support for LINES and COLUMNS environment variables.
-* support for SIGWINCH signal.
-* added a handler for SIGINT for clean exits.
-
-#### ncurses 0.1 -> ncurses 0.2 #### Aug 14, 1992 ####
-* support for color.
-* support for PC graphic characters.
-* lib_trace.c updated to use stdarg.h and vprintf routines.
-* added gdc.c (Great Digital Clock) as an example of using color.
-
-#### ncurses -> ncurses 0.1 #### Jul 31, 1992 ####
-* replacing sgtty stuff by termios stuff.
-* ANSIfication of some functions.
-* Disabling cost analysis 'cause it's incorrect.
-* A quick hack for a terminfo entry.
diff --git a/ncurses-5.3/README b/ncurses-5.3/README
deleted file mode 100644
index 52aa79d..0000000
--- a/ncurses-5.3/README
+++ /dev/null
@@ -1,175 +0,0 @@
--- $Id$
--------------------------------------------------------------------------------
- README file for the ncurses package
-
-See the file ANNOUNCE for a summary of ncurses features and ports.
-See the file INSTALL for instructions on how to build and install ncurses.
-See the file NEWS for a release history and bug-fix notes.
-See the file TO-DO for things that still need doing, including known bugs.
-
-Browse the file misc/ncurses-intro.html for narrative descriptions of how
-to use ncurses and the panel, menu, and form libraries.
-
-Browse the file doc/html/hackguide.html for a tour of the package internals.
-
-ROADMAP AND PACKAGE OVERVIEW:
-
-You should be reading this file in a directory called: ncurses-d.d, where d.d
-is the current version number (see the dist.mk file in this directory for
-that). There should be a number of subdirectories, including `c++', `form',
-`man', `menu', `misc', `ncurses', `panel', `progs', `test', 'tack' and `Ada95'.
-(The 'tack' program may be distributed separately).
-
-A full build/install of this package typically installs several libraries, a
-handful of utilities, and a database hierarchy. Here is an inventory of the
-pieces:
-
-The libraries are:
-
- libncurses.a (normal)
- libncurses.so (shared)
- libncurses_g.a (debug and trace code enabled)
- libncurses_p.a (profiling enabled)
-
- libpanel.a (normal)
- libpanel.so (shared)
- libpanel_g.a (debug and trace code enabled)
-
- libmenu.a (normal)
- libmenu.so (shared)
- libmenu_g.a (debug enabled)
-
- libform.a (normal)
- libform.so (shared)
- libform_g.a (debug enabled)
-
-The ncurses libraries implement the curses API. The panel, menu and forms
-libraries implement clones of the SVr4 panel, menu and forms APIs. The source
-code for these lives in the `ncurses', `panel', `menu', and `form' directories
-respectively.
-
-In the `c++' directory, you'll find code that defines an interface to the
-curses, forms, menus and panels library packaged as C++ classes, and a demo program in C++
-to test it. These class definition modules are not installed by the 'make
-install.libs' rule as libncurses++.
-
-In the `Ada95' directory, you'll find code and documentation for an
-Ada95 binding of the curses API, to be used with the GNAT compiler.
-This binding is built by a normal top-level `make' if configure detects
-an usable version of GNAT (3.10 or above). It is not installed automatically.
-See the Ada95 directory for more build and installation instructions and
-for documentation of the binding.
-
-To do its job, the ncurses code needs your terminal type to be set in the
-environment variable TERM (normally set by your OS; under UNIX, getty(1)
-typically does this, but you can override it in your .profile); and, it needs a
-database of terminal descriptions in which to look up your terminal type's
-capabilities.
-
-In older (V7/BSD) versions of curses, the database was a flat text file,
-/etc/termcap; in newer (USG/USL) versions, the database is a hierarchy of
-fast-loading binary description blocks under /usr/lib/terminfo. These binary
-blocks are compiled from an improved editable text representation called
-`terminfo' format (documented in man/terminfo.5). The ncurses library can use
-either /etc/termcap or the compiled binary terminfo blocks, but prefers the
-second form.
-
-In the `misc' directory, there is a text file terminfo.src, in editable
-terminfo format, which can be used to generate the terminfo binaries (that's
-what make install.data does). If the package was built with the
---enable-termcap option enabled, and the ncurses library cannot find a terminfo
-description for your terminal, it will fall back to the termcap file supplied
-with your system (which the ncurses package installation leaves strictly
-alone).
-
-The utilities are as follows:
-
- tic -- terminfo source to binary compiler
- infocmp -- terminfo binary to source decompiler/comparator
- clear -- emits clear-screen for current terminal
- tput -- shell-script access to terminal capabilities.
- toe -- table of entries utility
- tset -- terminal-initialization utility
-
-The first two (tic and infocmp) are used for manipulating terminfo
-descriptions; the next two (clear and tput) are for use in shell scripts. The
-last (tset) is provided for 4.4BSD compatibility. The source code for all of
-these lives in the `progs' directory.
-
-Detailed documentation for all libraries and utilities can be found in the
-`man' and `doc' directories. An HTML introduction to ncurses, panels, and
-menus programming lives in the `doc/html' directory. Manpages in HTML format
-are under `doc/html/man'.
-
-The `test' directory contains programs that can be used to verify or
-demonstrate the functions of the ncurses libraries. See test/README for
-descriptions of these programs. Notably, the `ncurses' utility is designed to
-help you systematically exercise the library functions.
-
-AUTHORS:
-
-Pavel Curtis:
- wrote the original ncurses
-
-Zeyd M. Ben-Halim:
- port of original to Linux and many enhancements.
-
-Thomas Dickey (maintainer for 1.9.9g through 4.1, resuming with FSF's 5.0):
- configuration scripts, porting, mods to adhere to XSI Curses in the
- areas of background color, terminal modes. Also memory leak testing,
- the wresize, default colors and key definition extensions and numerous
- bug fixes (more than half of those enumerated in NEWS beginning with
- the internal release 1.8.9).
-
-Florian La Roche (official maintainer for FSF's ncurses 4.2)
- Beginning with release 4.2, ncurses is distributed under an MIT-style
- license.
-
-Eric S. Raymond:
- the man pages, infocmp(1), tput(1), clear(1), captoinfo(1), tset(1),
- toe(1), most of tic(1), trace levels, the HTML intro, wgetnstr() and
- many other entry points, the cursor-movement optimization, the
- scroll-pack optimizer for vertical motions, the mouse interface and
- xterm mouse support, and the ncurses test program.
-
-Juergen Pfeifer
- The menu and form libraries, C++ bindings for ncurses, menus, forms and
- panels, as well as the Ada95 binding. Ongoing support for panel.
-
-CONTRIBUTORS:
-
-Alexander V. Lukyanov
- for numerous fixes and improvements to the optimization logic.
-
-David MacKenzie
- for first-class bug-chasing and methodical testing.
-
-Ross Ridge
- for the code that hacks termcap parameterized strings into terminfo.
-
-Warren Tucker and Gerhard Fuernkranz,
- for writing and sending the panel library.
-
-Hellmuth Michaelis,
- for many patches and testing the optimization code.
-
-Eric Newton, Ulrich Drepper, and Anatoly Ivasyuk:
- the C++ code.
-
-Jonathan Ross,
- for lessons in using sed.
-
-Keith Bostic (maintainer of 4.4BSD curses)
- for help, criticism, comments, bug-finding, and being willing to
- deep-six BSD curses for this one when it grew up.
-
-Richard Stallman,
- for his commitment to making ncurses free software.
-
-Countless other people have contributed by reporting bugs, sending fixes,
-suggesting improvements, and generally whining about ncurses :-)
-
-BUGS:
- See the INSTALL file for bug and developer-list addresses.
- The Hacker's Guide in the doc directory includes some guidelines
- on how to report bugs in ways that will get them fixed most quickly.
diff --git a/ncurses-5.3/README.emx b/ncurses-5.3/README.emx
deleted file mode 100644
index e8ba0b9..0000000
--- a/ncurses-5.3/README.emx
+++ /dev/null
@@ -1,45 +0,0 @@
--- $Id$
--- Author: Thomas Dickey
--------------------------------------------------------------------------------
-
-You can build ncurses on OS/2 in the EMX environment. But you must build and
-acquire tools. Not all of the tools distributed with EMX work properly, and
-some additional ones are required.
-
-First, the configure script distributed with ncurses will not run as-is in EMX.
-You can generate a new one if you have autoconf built for EMX. You will need
-the EMX development tools, of course. Get these programs to start:
-
- GNU m4 program (version 1.4)
- GNU autoconf (version 2.13).
- GNU patch (version 2.5)
-
-Apply the autoconf patches from
-
- http://invisible-island.net/autoconf
- ftp://invisible-island.net/autoconf
-
-These are ordered by date:
-
- 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,
-using a similar environment (he prefers using the 'ash' shell). Newer versions
-may fix these problems:
-
- + The pdksh program distributed at Hobbes and Leo (with a 1996 date) is
- defective. It does not process "here documents" correctly (which
- renders it useless for running the autoconf script). I built my own
- copy of pdksh 5.2.13, which does have the bug corrected (documented
- in the change log for pdksh).
-
- + I also built from sources (because the distributed binaries did not
- work) the cmp, diff programs.
-
- Other required utilities such as ar, cat, chmod, cp, gawk, grep, mv,
- ls, rm, mkdir, sed, sort and tr worked.
-
-Once you have autoconf patched and installed, run 'autoconf' from the top-level
-directory of ncurses to generate the EMX-specific configure script.
diff --git a/ncurses-5.3/README.glibc b/ncurses-5.3/README.glibc
deleted file mode 100644
index 7d52269..0000000
--- a/ncurses-5.3/README.glibc
+++ /dev/null
@@ -1,5 +0,0 @@
-To compile this as an add-on for glibc, unpack it in the glibc source
-tree and put ncurses on the add-on list when you do configure.
-
-hjl@gnu.ai.mit.edu
-03/21/1997
diff --git a/ncurses-5.3/TO-DO b/ncurses-5.3/TO-DO
deleted file mode 100644
index 4db47ff..0000000
--- a/ncurses-5.3/TO-DO
+++ /dev/null
@@ -1,191 +0,0 @@
--- $Id$
-
-SHORT-TERM TO-DO ITEMS:
-
-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.
-
-* The screen optimization has been tested only in an ad hoc manner. We should
- develop a good set of regression tests to cover lib_doupdate.c and
- lib_mvcur.c.
-
-* Magic cookie support does not work, since the logic does not take into account
- refresh. Also, the initial optimize does not adjust the current location
- when a cookie is emitted.
-
-* Scrolling optimization has holes: for example, it forces repaints of the
- screen between calls to refresh().
-
-* SVr4 uses slightly different rules for determining when softkeys are shown.
- For example, they are initially displayed (before the ncurses 'e' test
- activates them), and a touchwin can apparently also force them to be
- displayed.
-
-+ The code departs from perfect 8-bit cleanness in one respect; you cannot
- specify a character \200 as part of a capability string, because the terminfo
- library interprets \200 as a request to embed NUL (\000) at that point. This
- is a legacy terminfo property we can't mess with.
-
-* The 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)
- may trip over a known problem with the signal-handling code which causes
- abrupt termination of ncurses applications following resume from a ^Z
- suspend (this problem was first seen running lynx). You will not see
- this problem if you are running Linux or one of the 4.4BSD derivatives
- like FreeBSD, NetBSD, or BSDI. For details, see the analysis in the
- header comment of ncurses/lib_tstp.c.
-
-* In theory, vwprintw and vwscanf are supposed to use the older varargs.h
- interface for handling variadic argument lists. Linux doesn't have
- varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So
- these functions use stdargs instead. This is unlikely to be a problem
- unless you're building ncurses on a System V old enough to only have
- varargs.h. (Solaris 2.5.1 uses the stdarg.h binding as well).
-
-* If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to
- have a native vsscanf(3) in its library, vwscanw() will not work. You lose.
- (It should work on any System V, however). If you want to fix this, add
- an implementation to ncurses/vsscanf.c.
-
-* The demo build for the c++ library craps out with many link errors under gcc
- 2.6.3. We're told the C++ support in 2.6.3 is broken and that the right
- fix is to upgrade to 2.7.0. This demo is also known to not build with
- the Sun SPARCworks 4.1 C++ compiler, due to a problem resolving templates.
-
-* Under Ultrix, configure craps out (Ultrix sh is lame). Run it under ksh.
-
-* We've not tested the configure script with cross-compilers. The autoconf
- tests are supposed to be able to support this (please report bugs). You will
- have to configure and build in two steps. The first step must create the
- automatically-generated sources (e.g., comp_captab.c) on your host machine.
- Then, run "make mostlyclean", remove config.* from the top-level directory
- and configure for the cross-compiler.
-
-+ terminfo.5 does not format with the SunOS (and most other platform's) tbl
- utility because it relies on a diversion for each table entry. Get the groff
- package.
-
-Untested features:
-
-* The code for the HP color model using set_color_pair is untested.
-
-* The code for handling soft labels on a terminal type with built-in support
- for them (num_labels > 0, label_height, label_width, label_format, label_off,
- label_on, plab_norm, lab_f*) has not been tested. The label_format and
- lab_f* capabilities aren't presently used.
-
-* The wide-character input functions need testing.
-
-LONGER-TERM TO-DO ITEMS:
-
-1. Extended COSE conformance
-
-There is an XPG4 standard recently released which describes a superset
-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.
-
-Current status:
- pecho_wchar() not implemented.
- slk_wset not implemented.
-
-2. DOS port
-
-Only 16 of the 55 files in the library depend on the terminfo format.
-It should be possible to further kernelize the package, then rewrite
-a small number of core files to produce a functionally-compatible
-port that would do updates to a memory-mapped screen area. The first
-result of this would be a DOS port.
-
-3. X port
-
-It would be nice if ncurses could recognize when it was running under X and
-maintain its own window. With this feature, all ncurses programs would
-automatically become X programs. The challenge is to handle resize events
-properly.
-
-4. Unused capabilities
-
-The currently unused capabilities fall naturally into several groups:
-
-A. Status-line capabilities:
-
- Booleans: has_status_line, status_line_esc_ok.
- Numerics: width_status_line.
- Strings: dis_status_line, from_status_line, to_status_line.
-
-System V Release 1 curses made no use of these at all. SVr4's use, if
-any, is unknown. From the AT&T termcap file it looks like curses, in general,
-shouldn't use them; terminal variants with status lines have their line count
-decremented by 1, suggesting that curses is supposed to leave the status line
-alone.
-
-B. Printer capabilities:
-
- Boolean: col_addr_glitch, cr_cancels_micro_mode, has_print_wheel,
- row_addr_glitch, semi_auto_right_margin, cpi_changes_res,
- lpi_changes_res.
- Numeric: buffer_capacity, dot_horz_spacing, dot_vert_spacing,
- max_micro_address, max_micro_jump, micro_col_size,
- micro_line_size, number_of_pins, output_res_char,
- output_res_line, output_res_horz_inch, print_rate,
- wide_char_size, bit_image_entwining, bit_image_type.
- String: down_half_line, form_feed, up_half_line, set_left_margin,
- set_right_margin, clear_margins, change_char_pitch
- ... set_page_length (all the SVr4 printer caps),
-
-Curses doesn't use these.
-
-C. Printer-control capabilities:
-
- Boolean: prtr_silent.
- Strings: print_screen, prtr_on, prtr_off, prtr_non.
-
-Curses doesn't use these.
-
-D. Dialer strings:
-
- Strings: hangup, dial_phone, quick_dial, tone, pulse, flash_hook,
- fixed_pause, wait_tone.
-
-Curses doesn't use these.
-
-E. Window and virtual-terminal capabilities:
-
- Numerics: maximum_windows, virtual_terminal.
- Strings: req_for_input, create_window, goto_window, set_window.
-
-These seem to be fossils from some AT&T experiments on character-based
-window systems that never escaped the lab. The virtual_terminal cap had
-something to do with building terminal emulations into tty line disciplines.
-
-F. Unused VDT capabilities:
-
- Booleans: erase_overstrike, has_meta_key, insert_null_glitch,
- move_insert, dest_tabs_magic_smso, transparent_underline,
- needs_xon_xoff, hard_cursor.
- Numerics: lines_of_memory, buttons.
- Strings: pkey_key, pkey_local, pkey_xmit, underline_char,
- enter_xon_mode, exit_xon_mode, xon_character, xoff_character,
- display_clock, remove_clock, user[0-5], display_pc_char,
- enter_scancode_mode, exit_scancode_mode, pc_term_options,
- scancode_escape, alt_scancode_esc.
-
-These are the potentially important ones for ncurses. Notes:
-
- i) ncurses doesn't need move_insert; it never uses cup/hpa/vpa while
- insert_mode is on.
-
- ii) We probably don't care about dest_tabs_magic_smso; only
- Telerays used it and they're all long obsolete.
-
-
diff --git a/ncurses-5.3/aclocal.m4 b/ncurses-5.3/aclocal.m4
deleted file mode 100644
index 3c216c5..0000000
--- a/ncurses-5.3/aclocal.m4
+++ /dev/null
@@ -1,2932 +0,0 @@
-dnl***************************************************************************
-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 "Software"), to deal in the Software without restriction, including *
-dnl without limitation the rights to use, copy, modify, merge, publish, *
-dnl distribute, distribute with modifications, sublicense, and/or sell *
-dnl copies of the Software, and to permit persons to whom the Software is *
-dnl furnished to do so, subject to the following conditions: *
-dnl *
-dnl The above copyright notice and this permission notice shall be included *
-dnl in all copies or substantial portions of the Software. *
-dnl *
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-dnl *
-dnl Except as contained in this notice, the name(s) of the above copyright *
-dnl holders shall not be used in advertising or otherwise to promote the *
-dnl sale, use or other dealings in this Software without prior written *
-dnl authorization. *
-dnl***************************************************************************
-dnl
-dnl Author: Thomas E. Dickey 1996,1997,1998,1999,2000,2001
-dnl
-dnl $Id$
-dnl Macros used in NCURSES auto-configuration script.
-dnl
-dnl See http://invisible-island.net/autoconf/ for additional information.
-dnl
-dnl ---------------------------------------------------------------------------
-dnl ---------------------------------------------------------------------------
-dnl Construct the list of include-options for the C programs in the Ada95
-dnl binding.
-AC_DEFUN([CF_ADA_INCLUDE_DIRS],
-[
-ACPPFLAGS="$ACPPFLAGS -I. -I../../include"
-if test "$srcdir" != "."; then
- ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include"
-fi
-if test "$GCC" != yes; then
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
- fi
- else
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
- fi
-fi
-AC_SUBST(ACPPFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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],
-[
-AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
- "" \
- -qlanglvl=ansi \
- -std1 \
- -Ae \
- "-Aa -D_HPUX_SOURCE" \
- -Xc
-do
- CF_ADD_CFLAGS($cf_arg)
- AC_TRY_COMPILE(
-[
-#ifndef CC_HAS_PROTOS
-#if !defined(__STDC__) || (__STDC__ != 1)
-choke me
-#endif
-#endif
-],[
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};],
- [cf_cv_ansi_cc="$cf_arg"; break])
-done
-CFLAGS="$cf_save_CFLAGS"
-CPPFLAGS="$cf_save_CPPFLAGS"
-])
-
-if test "$cf_cv_ansi_cc" != "no"; then
-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
- CF_ADD_CFLAGS($cf_cv_ansi_cc)
-else
- AC_DEFINE(CC_HAS_PROTOS)
-fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl For programs that must use an ANSI compiler, obtain compiler options that
-dnl will make it recognize prototypes. We'll do preprocessor checks in other
-dnl macros, since tools such as unproto can fake prototypes, but only part of
-dnl the preprocessor.
-AC_DEFUN([CF_ANSI_CC_REQD],
-[AC_REQUIRE([CF_ANSI_CC_CHECK])
-if test "$cf_cv_ansi_cc" = "no"; then
- AC_ERROR(
-[Your compiler does not appear to recognize prototypes.
-You have the following choices:
- a. adjust your compiler options
- b. get an up-to-date compiler
- c. use a wrapper such as unproto])
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some
-dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc
-dnl 2.6.3 does, in anticipation of the ANSI C++ standard.
-dnl
-dnl Treat the configuration-variable specially here, since we're directly
-dnl substituting its value (i.e., 1/0).
-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([
-#include <stdio.h>
-#include <sys/types.h>
-],[bool x = false],
- [ifelse($1,,cf_cv_builtin_bool,[$1])=1],
- [ifelse($1,,cf_cv_builtin_bool,[$1])=0])
- ])
-if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1
-then AC_MSG_RESULT(yes)
-else AC_MSG_RESULT(no)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type).
-dnl Don't bother looking for bool.h, since it's been deprecated.
-dnl
-dnl If the current compiler is C rather than C++, we get the bool definition
-dnl from <stdbool.h>.
-AC_DEFUN([CF_BOOL_SIZE],
-[
-AC_MSG_CHECKING([for size of bool])
-AC_CACHE_VAL(cf_cv_type_of_bool,[
- rm -f cf_test.out
- AC_TRY_RUN([
-#include <stdlib.h>
-#include <stdio.h>
-
-#if defined(__cplusplus)
-
-#ifdef HAVE_GXX_BUILTIN_H
-#include <g++/builtin.h>
-#elif HAVE_GPP_BUILTIN_H
-#include <gpp/builtin.h>
-#elif HAVE_BUILTIN_H
-#include <builtin.h>
-#endif
-
-#else
-
-#if $cf_cv_header_stdbool_h
-#include <stdbool.h>
-#endif
-
-#endif
-
-main()
-{
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
- bool x = true;
- if ((bool)(-x) >= 0)
- fputs("unsigned ", fp);
- if (sizeof(x) == sizeof(int)) fputs("int", fp);
- else if (sizeof(x) == sizeof(char)) fputs("char", fp);
- else if (sizeof(x) == sizeof(short))fputs("short",fp);
- else if (sizeof(x) == sizeof(long)) fputs("long", fp);
- fclose(fp);
- }
- exit(0);
-}
- ],
- [cf_cv_type_of_bool=`cat cf_test.out`
- if test -z "$cf_cv_type_of_bool"; then
- cf_cv_type_of_bool=unknown
- fi],
- [cf_cv_type_of_bool=unknown],
- [cf_cv_type_of_bool=unknown])
- ])
- rm -f cf_test.out
-AC_MSG_RESULT($cf_cv_type_of_bool)
-if test "$cf_cv_type_of_bool" = unknown ; then
- case .$NCURSES_BOOL in #(vi
- .auto|.) NCURSES_BOOL=unsigned;;
- esac
- AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool)
- cf_cv_type_of_bool=$NCURSES_BOOL
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Determine the default configuration into which we'll install ncurses. This
-dnl can be overridden by the user's command-line options. There's two items to
-dnl look for:
-dnl 1. the prefix (e.g., /usr)
-dnl 2. the header files (e.g., /usr/include/ncurses)
-dnl We'll look for a previous installation of ncurses and use the same defaults.
-dnl
-dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and
-dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's
-dnl programs from a vendor's.
-AC_DEFUN([CF_CFG_DEFAULTS],
-[
-AC_MSG_CHECKING(for prefix)
-if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
- openbsd*|netbsd*|freebsd*|linux*|cygwin*)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
- ;;
- esac
-fi
-AC_MSG_RESULT($prefix)
-
-if test "x$prefix" = "xNONE" ; then
-AC_MSG_CHECKING(for default include-directory)
-test -n "$verbose" && echo 1>&AC_FD_MSG
-for cf_symbol in \
- $includedir \
- $includedir/ncurses \
- $prefix/include \
- $prefix/include/ncurses \
- /usr/local/include \
- /usr/local/include/ncurses \
- /usr/include \
- /usr/include/ncurses
-do
- cf_dir=`eval echo $cf_symbol`
- if test -f $cf_dir/curses.h ; then
- if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
- includedir="$cf_symbol"
- test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG
- break
- fi
- fi
- test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG
-done
-AC_MSG_RESULT($includedir)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if the terminal-capability database functions are available. If not,
-dnl ncurses has a much-reduced version.
-AC_DEFUN([CF_CGETENT],[
-AC_MSG_CHECKING(for terminal-capability database functions)
-AC_CACHE_VAL(cf_cv_cgetent,[
-AC_TRY_LINK([
-#include <stdlib.h>],[
- char temp[128];
- char *buf = temp;
- char *db_array = temp;
- cgetent(&buf, /* int *, */ &db_array, "vt100");
- cgetcap(buf, "tc", '=');
- cgetmatch(buf, "tc");
- ],
- [cf_cv_cgetent=yes],
- [cf_cv_cgetent=no])
-])
-AC_MSG_RESULT($cf_cv_cgetent)
-test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if we're accidentally using a cache from a different machine.
-dnl Derive the system name, as a check for reusing the autoconf cache.
-dnl
-dnl If we've packaged config.guess and config.sub, run that (since it does a
-dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
-dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
-dnl which is useful in cross-compiles.
-AC_DEFUN([CF_CHECK_CACHE],
-[
-if test -f $srcdir/config.guess ; then
- ifelse([$1],,[AC_CANONICAL_HOST],[$1])
- system_name="$host_os"
-else
- system_name="`(uname -s -r) 2>/dev/null`"
- if test -z "$system_name" ; then
- system_name="`(hostname) 2>/dev/null`"
- fi
-fi
-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
-AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
-
-test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
-
-if test ".$system_name" != ".$cf_cv_system_name" ; then
- AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
- AC_ERROR("Please remove config.cache and try again.")
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
-dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it
-dnl ourselves.
-dnl
-dnl $1 = the name to check
-AC_DEFUN([CF_CHECK_ERRNO],
-[
-AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
- AC_TRY_COMPILE([
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
-#include <errno.h> ],
- [long x = (long) $1],
- [cf_cv_dcl_$1=yes],
- [cf_cv_dcl_$1=no])
-])
-
-if test "$cf_cv_dcl_$1" = no ; then
- CF_UPPER(cf_result,decl_$1)
- AC_DEFINE_UNQUOTED($cf_result)
-fi
-
-# It's possible (for near-UNIX clones) that the data doesn't exist
-CF_CHECK_EXTERN_DATA($1,int)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check for existence of external data in the current set of libraries. If
-dnl we can modify it, it's real enough.
-dnl $1 = the name to check
-dnl $2 = its type
-AC_DEFUN([CF_CHECK_EXTERN_DATA],
-[
-AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[
- AC_TRY_LINK([
-#undef $1
-extern $2 $1;
-],
- [$1 = 2],
- [cf_cv_have_$1=yes],
- [cf_cv_have_$1=no])
-])
-
-if test "$cf_cv_have_$1" = yes ; then
- CF_UPPER(cf_result,have_$1)
- AC_DEFINE_UNQUOTED($cf_result)
-fi
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if the C++ compiler accepts duplicate parameter initialization. This
-dnl is a late feature for the standard and is not in some recent compilers
-dnl (1999/9/11).
-AC_DEFUN([CF_CPP_PARAM_INIT],
-[
-if test -n "$CXX"; then
-AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_RUN([
-class TEST {
-private:
- int value;
-public:
- TEST(int x = 1);
- ~TEST();
-};
-
-TEST::TEST(int x = 1) // some compilers do not like second initializer
-{
- value = x;
-}
-void main() { }
-],
- [cf_cv_cpp_param_init=yes],
- [cf_cv_cpp_param_init=no],
- [cf_cv_cpp_param_init=unknown])
- AC_LANG_RESTORE
-])
-fi
-test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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)
- for cf_item2 in $DIRS_TO_MAKE
- do
- test $cf_item2 = $cf_subdir && break
- done
- test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir"
-done
-for cf_dir in $DIRS_TO_MAKE
-do
- test ! -d $cf_dir && mkdir $cf_dir
-done
-AC_SUBST(DIRS_TO_MAKE)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if 'errno' is declared in <errno.h>
-AC_DEFUN([CF_ERRNO],
-[
-CF_CHECK_ERRNO(errno)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
-dnl math.h and builtin.h, only for ncurses
-AC_DEFUN([CF_ETIP_DEFINES],
-[
-AC_MSG_CHECKING(for special defines needed for etip.h)
-cf_save_CXXFLAGS="$CXXFLAGS"
-cf_result="none"
-for cf_math in "" MATH_H
-do
-for cf_excp in "" MATH_EXCEPTION
-do
- CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu"
- test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
- test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
-AC_TRY_COMPILE([
-#include <etip.h.in>
-],[],[
- test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
- test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
- cf_result="$cf_math $cf_excp"
- break
-],[])
-done
-done
-AC_MSG_RESULT($cf_result)
-CXXFLAGS="$cf_save_CXXFLAGS"
-])
-dnl ---------------------------------------------------------------------------
-dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
-dnl is found, add our own version of memmove to the list of objects.
-AC_DEFUN([CF_FUNC_MEMMOVE],
-[
-AC_CHECK_FUNC(memmove,,[
-AC_CHECK_FUNC(bcopy,[
- AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[
- AC_TRY_RUN([
-int main() {
- static char data[] = "abcdefghijklmnopqrstuwwxyz";
- char temp[40];
- bcopy(data, temp, sizeof(data));
- bcopy(temp+10, temp, 15);
- bcopy(temp+5, temp+15, 10);
- exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
-}
- ],
- [cf_cv_good_bcopy=yes],
- [cf_cv_good_bcopy=no],
- [cf_cv_good_bcopy=unknown])
- ])
- ],[cf_cv_good_bcopy=no])
- if test "$cf_cv_good_bcopy" = yes ; then
- AC_DEFINE(USE_OK_BCOPY)
- else
- AC_DEFINE(USE_MY_MEMMOVE)
- fi
-])])dnl
-dnl ---------------------------------------------------------------------------
-dnl See if the poll function really works. Some platforms have poll(), but
-dnl it does not work for terminals or files.
-AC_DEFUN([CF_FUNC_POLL],[
-AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
-AC_TRY_RUN([
-#include <stdio.h>
-#ifdef HAVE_POLL_H
-#include <poll.h>
-#else
-#include <sys/poll.h>
-#endif
-int main() {
- struct pollfd myfds;
- int ret;
-
- myfds.fd = 0;
- myfds.events = POLLIN;
-
- ret = poll(&myfds, 1, 100);
- exit(ret != 0);
-}],
- [cf_cv_working_poll=yes],
- [cf_cv_working_poll=no],
- [cf_cv_working_poll=unknown])])
-test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some old/broken variations define tcgetattr() only as a macro in
-dnl termio(s).h
-AC_DEFUN([CF_FUNC_TERMIOS],[
-AC_REQUIRE([CF_STRUCT_TERMIOS])
-AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[
-AC_TRY_LINK([
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#define TTY struct termios
-#else
-#ifdef HAVE_TERMIO_H
-#include <termio.h>
-#define TTY struct termio
-#endif
-#endif
-],[
-TTY foo;
-tcgetattr(1, &foo);],
-[cf_cv_have_tcgetattr=yes],
-[cf_cv_have_tcgetattr=no])])
-test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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 compiler warnings. Though useful, not all are supported -- and contrary
-dnl to documentation, unrecognized directives cause older compilers to barf.
-AC_DEFUN([CF_GCC_ATTRIBUTES],
-[
-if test "$GCC" = yes
-then
-cat > conftest.i <<EOF
-#ifndef GCC_PRINTF
-#define GCC_PRINTF 0
-#endif
-#ifndef GCC_SCANF
-#define GCC_SCANF 0
-#endif
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-EOF
-if test "$GCC" = yes
-then
- AC_CHECKING([for $CC __attribute__ directives])
-cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-#include "confdefs.h"
-#include "conftest.h"
-#include "conftest.i"
-#if GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-#if GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
-EOF
- for cf_attribute in scanf printf unused noreturn
- do
- CF_UPPER(CF_ATTRIBUTE,$cf_attribute)
- cf_directive="__attribute__(($cf_attribute))"
- echo "checking for $CC $cf_directive" 1>&AC_FD_CC
- case $cf_attribute in
- scanf|printf)
- cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE 1
-EOF
- ;;
- *)
- cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE $cf_directive
-EOF
- ;;
- esac
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
- cat conftest.h >>confdefs.h
-# else
-# sed -e 's/__attr.*/\/*nothing*\//' conftest.h >>confdefs.h
- fi
- done
-else
- fgrep define conftest.i >>confdefs.h
-fi
-rm -rf conftest*
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if the compiler supports useful warning options. There's a few that
-dnl we don't use, simply because they're too noisy:
-dnl
-dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
-dnl -Wredundant-decls (system headers make this too noisy)
-dnl -Wtraditional (combines too many unrelated messages, only a few useful)
-dnl -Wwrite-strings (too noisy, but should review occasionally)
-dnl -pedantic
-dnl
-AC_DEFUN([CF_GCC_WARNINGS],
-[
-if test "$GCC" = yes
-then
- cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
-EOF
- AC_CHECKING([for $CC warning options])
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-W -Wall"
- cf_warn_CONST=""
- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
- for cf_opt in \
- Wbad-function-cast \
- Wcast-align \
- Wcast-qual \
- Winline \
- Wmissing-declarations \
- Wmissing-prototypes \
- Wnested-externs \
- Wpointer-arith \
- Wshadow \
- Wstrict-prototypes \
- Wundef $cf_warn_CONST
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- test "$cf_opt" = Wcast-qual && EXTRA_CFLAGS="$EXTRA_CFLAGS -DXTSTRINGDEFINES"
- fi
- done
- rm -f conftest*
- CFLAGS="$cf_save_CFLAGS"
-fi
-AC_SUBST(EXTRA_CFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Verify that a test program compiles and runs with GNAT
-dnl $cf_ada_make is set to the program that compiles/links
-AC_DEFUN([CF_GNAT_TRY_RUN],
-[
-rm -f conftest*
-cat >>conftest.ads <<CF_EOF
-$1
-CF_EOF
-cat >>conftest.adb <<CF_EOF
-$2
-CF_EOF
-if ( $cf_ada_make conftest 1>&AC_FD_CC 2>&1 ) ; then
- if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
-ifelse($3,, :,[ $3])
-ifelse($4,,,[ else
- $4])
- fi
-ifelse($4,,,[else
- $4])
-fi
-rm -f conftest*
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Verify Version of GNAT.
-AC_DEFUN([CF_GNAT_VERSION],
-[
-cf_cv_gnat_version=`$cf_ada_make -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\
- sed -e 's/[[^0-9 \.]]//g' | $AWK '{print $[1];}'`
-case $cf_cv_gnat_version in
- 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=no
- ;;
-esac
-case $cf_cv_gnat_version in
- 3.1*|[[4-9]].*)
- cf_compile_generics=generics
- cf_generic_objects="\$(GENOBJS)"
- ;;
- *) cf_compile_generics=
- cf_generic_objects=
- ;;
-esac
-])
-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.
-AC_DEFUN([CF_GPP_LIBRARY],
-[
-cf_cxx_library=unknown
-case $cf_cv_system_name in #(vi
-os2*) #(vi
- cf_gpp_libname=gpp
- ;;
-*)
- cf_gpp_libname=g++
- ;;
-esac
-if test "$ac_cv_prog_gxx" = yes; then
- AC_MSG_CHECKING([for lib$cf_gpp_libname])
- cf_save="$LIBS"
- LIBS="$LIBS -l$cf_gpp_libname"
- AC_TRY_LINK([
-#include <$cf_gpp_libname/builtin.h>
- ],
- [two_arg_error_handler_t foo2 = lib_error_handler],
- [cf_cxx_library=yes
- CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
- if test "$cf_gpp_libname" = cpp ; then
- AC_DEFINE(HAVE_GPP_BUILTIN_H)
- else
- AC_DEFINE(HAVE_GXX_BUILTIN_H)
- fi],
- [AC_TRY_LINK([
-#include <builtin.h>
- ],
- [two_arg_error_handler_t foo2 = lib_error_handler],
- [cf_cxx_library=yes
- CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
- AC_DEFINE(HAVE_BUILTIN_H)],
- [cf_cxx_library=no])])
- LIBS="$cf_save"
- AC_MSG_RESULT($cf_cxx_library)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
-AC_DEFUN([CF_HELP_MESSAGE],
-[AC_DIVERT_HELP([$1])dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Construct the list of include-options according to whether we're building
-dnl in the source directory or using '--srcdir=DIR' option. If we're building
-dnl with gcc, don't append the includedir if it happens to be /usr/include,
-dnl since that usually breaks gcc's shadow-includes.
-AC_DEFUN([CF_INCLUDE_DIRS],
-[
-CPPFLAGS="$CPPFLAGS -I. -I../include"
-if test "$srcdir" != "."; then
- CPPFLAGS="$CPPFLAGS -I\$(srcdir)/../include"
-fi
-if test "$GCC" != yes; then
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
- fi
- else
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
- fi
-fi
-AC_SUBST(CPPFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if we have either a function or macro for 'isascii()'.
-AC_DEFUN([CF_ISASCII],
-[
-AC_MSG_CHECKING(for isascii)
-AC_CACHE_VAL(cf_cv_have_isascii,[
- AC_TRY_LINK([#include <ctype.h>],[int x = isascii(' ')],
- [cf_cv_have_isascii=yes],
- [cf_cv_have_isascii=no])
-])dnl
-AC_MSG_RESULT($cf_cv_have_isascii)
-test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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
- OS/2*) LIB_PREFIX='' ;;
- os2*) LIB_PREFIX='' ;;
- *) LIB_PREFIX='lib' ;;
- esac
-ifelse($1,,,[$1=$LIB_PREFIX])
- AC_SUBST(LIB_PREFIX)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Append definitions and rules for the given models to the subdirectory
-dnl Makefiles, and the recursion rule for the top-level Makefile. If the
-dnl subdirectory is a library-source directory, modify the LIBRARIES list in
-dnl the corresponding makefile to list the models that we'll generate.
-dnl
-dnl For shared libraries, make a list of symbolic links to construct when
-dnl generating each library. The convention used for Linux is the simplest
-dnl one:
-dnl lib<name>.so ->
-dnl lib<name>.so.<major> ->
-dnl lib<name>.so.<maj>.<minor>
-AC_DEFUN([CF_LIB_RULES],
-[
-CF_LIB_PREFIX(cf_prefix)
-AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $srcdir/$cf_dir/modules; then
-
- IMPORT_LIB=
- SHARED_LIB=
- LIBS_TO_MAKE=
- for cf_item in $CF_LIST_MODELS
- do
- CF_LIB_SUFFIX($cf_item,cf_suffix)
- if test $cf_item = shared ; then
- if test "$cf_cv_do_symlinks" = yes ; then
- case "$cf_cv_shlib_version" in #(vi
- rel) #(vi
- case "$cf_cv_system_name" in #(vi
- darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
- *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
- esac
- ;;
- abi)
- case "$cf_cv_system_name" in #(vi
- darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
- *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
- esac
- ;;
- esac
- fi
- # cygwin needs import library, and has unique naming convention
- 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
- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
- done
-
- if test $cf_dir = ncurses ; then
- cf_subsets="$LIB_SUBSETS"
- case "$LIB_SUBSETS" in #(vi
- termlib+*) #(vi
- ;;
- *) #(vi
- cf_item=`echo $LIBS_TO_MAKE |sed -e s/$LIB_NAME/$TINFO_NAME/g`
- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
- ;;
- esac
- else
- cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib //'`
- fi
-
- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
- -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
- -e "s%@SHARED_LIB@%$SHARED_LIB%" \
- $cf_dir/Makefile >$cf_dir/Makefile.out
- mv $cf_dir/Makefile.out $cf_dir/Makefile
-
- $AWK -f $srcdir/mk-0th.awk \
- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-
- for cf_subset in $cf_subsets
- do
- cf_subdirs=
- for cf_item in $CF_LIST_MODELS
- do
- echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
- CF_UPPER(CF_ITEM,$cf_item)
- CF_LIB_SUFFIX($cf_item,cf_suffix)
- CF_OBJ_SUBDIR($cf_item,cf_subdir)
-
- # These dependencies really are for development, not
- # builds, but they are useful in porting, too.
- cf_depend="../include/ncurses_cfg.h"
- if test "$srcdir" = "."; then
- cf_reldir="."
- else
- cf_reldir="\$(srcdir)"
- fi
-
- if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
- cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
- elif test -f $srcdir/$cf_dir/curses.priv.h; then
- cf_depend="$cf_depend $cf_reldir/curses.priv.h"
- fi
-
- $AWK -f $srcdir/mk-1st.awk \
- name=$cf_dir \
- traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
- model=$cf_subdir \
- prefix=$cf_prefix \
- suffix=$cf_suffix \
- subset=$cf_subset \
- ShlibVer=$cf_cv_shlib_version \
- ShlibVerInfix=$cf_cv_shlib_version_infix \
- DoLinks=$cf_cv_do_symlinks \
- rmSoLocs=$cf_cv_rm_so_locs \
- ldconfig="$LDCONFIG" \
- overwrite=$WITH_OVERWRITE \
- depend="$cf_depend" \
- target="$target" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- for cf_subdir2 in $cf_subdirs lib
- do
- test $cf_subdir = $cf_subdir2 && break
- done
- test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
- $AWK -f $srcdir/mk-2nd.awk \
- name=$cf_dir \
- traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
- model=$cf_subdir \
- subset=$cf_subset \
- srcdir=$srcdir \
- echo=$WITH_ECHO \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- cf_subdirs="$cf_subdirs $cf_subdir"
- done
- done
- fi
-
- echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >>Makefile
-done
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $cf_dir/Makefile ; then
- case "$cf_dir" in
- Ada95) #(vi
- echo 'libs \' >> Makefile
- echo 'install.libs \' >> Makefile
- echo 'uninstall.libs ::' >> Makefile
- echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >> Makefile
- ;;
- esac
- fi
-
- if test -f $srcdir/$cf_dir/modules; then
- echo >> Makefile
- if test -f $srcdir/$cf_dir/headers; then
-cat >> Makefile <<CF_EOF
-install.includes \\
-uninstall.includes \\
-CF_EOF
- fi
-if test "$cf_dir" != "c++" ; then
-echo 'lint \' >> Makefile
-fi
-cat >> Makefile <<CF_EOF
-libs \\
-lintlib \\
-install.libs \\
-uninstall.libs \\
-install.$cf_dir \\
-uninstall.$cf_dir ::
- cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@
-CF_EOF
- elif test -f $srcdir/$cf_dir/headers; then
-cat >> Makefile <<CF_EOF
-
-libs \\
-install.libs \\
-uninstall.libs \\
-install.includes \\
-uninstall.includes ::
- cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \[$]@
-CF_EOF
-fi
-done
-
-cat >> Makefile <<CF_EOF
-
-install.data \\
-uninstall.data ::
-$MAKE_TERMINFO cd misc && \$(MAKE) \$(CF_MFLAGS) \[$]@
-
-install.man \\
-uninstall.man ::
- cd man && \$(MAKE) \$(CF_MFLAGS) \[$]@
-
-distclean ::
- rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
- rm -f headers.sh headers.sed
- rm -rf \$(DIRS_TO_MAKE)
-CF_EOF
-
-# Special case: tack's manpage lives in its own directory.
-if test -d tack ; then
-if test -f $srcdir/$tack.h; then
-cat >> Makefile <<CF_EOF
-
-install.man \\
-uninstall.man ::
- cd tack && \$(MAKE) \$(CF_MFLAGS) \[$]@
-CF_EOF
-fi
-fi
-
-dnl If we're installing into a subdirectory of /usr/include, etc., we should
-dnl prepend the subdirectory's name to the "#include" paths. It won't hurt
-dnl anything, and will make it more standardized. It's awkward to decide this
-dnl at configuration because of quoting, so we'll simply make all headers
-dnl installed via a script that can do the right thing.
-
-rm -f headers.sed headers.sh
-
-dnl ( generating this script makes the makefiles a little tidier :-)
-echo creating headers.sh
-cat >headers.sh <<CF_EOF
-#! /bin/sh
-# This shell script is generated by the 'configure' script. It is invoked in a
-# subdirectory of the build tree. It generates a sed-script in the parent
-# directory that is used to adjust includes for header files that reside in a
-# subdirectory of /usr/include, etc.
-PRG=""
-while test \[$]# != 3
-do
-PRG="\$PRG \[$]1"; shift
-done
-DST=\[$]1
-REF=\[$]2
-SRC=\[$]3
-TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
-TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
-echo installing \$SRC in \$DST
-CF_EOF
-if test $WITH_CURSES_H = yes; then
- cat >>headers.sh <<CF_EOF
-case \$DST in
-/*/include/*)
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
- done
- ;;
-*)
- echo "" >> \$TMPSED
- ;;
-esac
-CF_EOF
-else
- cat >>headers.sh <<CF_EOF
-case \$DST in
-/*/include/*)
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- if test "\$NAME" = "curses.h"
- then
- echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
- NAME=ncurses.h
- fi
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
- done
- ;;
-*)
- echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
- ;;
-esac
-CF_EOF
-fi
-cat >>headers.sh <<CF_EOF
-rm -f \$TMPSRC
-sed -f \$TMPSED \$SRC > \$TMPSRC
-NAME=\`basename \$SRC\`
-CF_EOF
-if test $WITH_CURSES_H != yes; then
- cat >>headers.sh <<CF_EOF
-test "\$NAME" = "curses.h" && NAME=ncurses.h
-CF_EOF
-fi
-cat >>headers.sh <<CF_EOF
-# Just in case someone gzip'd manpages, remove the conflicting copy.
-test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
-
-eval \$PRG \$TMPSRC \$DST/\$NAME
-rm -f \$TMPSRC \$TMPSED
-CF_EOF
-
-chmod 0755 headers.sh
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $srcdir/$cf_dir/headers; then
- cat >>$cf_dir/Makefile <<CF_EOF
-\$(DESTDIR)\$(includedir) :
- sh \$(srcdir)/../mkinstalldirs \[$]@
-
-install \\
-install.libs \\
-install.includes :: \$(AUTO_SRC) \$(DESTDIR)\$(includedir) \\
-CF_EOF
- j=""
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- test -n "$j" && echo " $j \\" >>$cf_dir/Makefile
- j=$i
- done
- echo " $j" >>$cf_dir/Makefile
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile
- test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile
- done
-
- cat >>$cf_dir/Makefile <<CF_EOF
-
-uninstall \\
-uninstall.libs \\
-uninstall.includes ::
-CF_EOF
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- i=`basename $i`
- echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f $i)" >>$cf_dir/Makefile
- test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
- done
- fi
-
- if test -f $srcdir/$cf_dir/modules; then
- if test "$cf_dir" != "c++" ; then
- cat >>$cf_dir/Makefile <<"CF_EOF"
-depend : $(AUTO_SRC)
- makedepend -- $(CPPFLAGS) -- $(C_SRC)
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
-CF_EOF
- fi
- fi
-done
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Compute the library file-suffix from the given model name
-dnl $1 = model name
-dnl $2 = variable to set
-dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
-AC_DEFUN([CF_LIB_SUFFIX],
-[
- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
- case $1 in
- libtool) $2='.la' ;;
- normal) $2='.a' ;;
- debug) $2='_g.a' ;;
- profile) $2='_p.a' ;;
- shared)
- case $cf_cv_system_name in
- cygwin*) $2='.dll' ;;
- darwin*) $2='.dylib' ;;
- hpux*) $2='.sl' ;;
- *) $2='.so' ;;
- esac
- esac
- test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Compute the string to append to -library from the given model name
-dnl $1 = model name
-dnl $2 = variable to set
-dnl The variable $LIB_SUFFIX, if set, prepends the variable to set.
-AC_DEFUN([CF_LIB_TYPE],
-[
- case $1 in
- libtool) $2='' ;;
- normal) $2='' ;;
- debug) $2='_g' ;;
- profile) $2='_p' ;;
- shared) $2='' ;;
- esac
- test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
-dnl only data (i.e., no functions), for example NeXT. On those systems we'll
-dnl have to provide wrappers for global tables to ensure they're linked
-dnl properly.
-AC_DEFUN([CF_LINK_DATAONLY],
-[
-AC_MSG_CHECKING([if data-only library module links])
-AC_CACHE_VAL(cf_cv_link_dataonly,[
- rm -f conftest.a
- cat >conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-int testdata[[3]] = { 123, 456, 789 };
-EOF
- if AC_TRY_EVAL(ac_compile) ; then
- mv conftest.o data.o && \
- ( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
- fi
- rm -f conftest.$ac_ext data.o
- cat >conftest.$ac_ext <<EOF
-#line __oline__ "configure"
-int testfunc()
-{
-#if defined(NeXT)
- exit(1); /* I'm told this linker is broken */
-#else
- extern int testdata[[3]];
- return testdata[[0]] == 123
- && testdata[[1]] == 456
- && testdata[[2]] == 789;
-#endif
-}
-EOF
- if AC_TRY_EVAL(ac_compile); then
- mv conftest.o func.o && \
- ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
- fi
- rm -f conftest.$ac_ext func.o
- ( eval $ac_cv_prog_RANLIB conftest.a ) 2>&5 >/dev/null
- cf_saveLIBS="$LIBS"
- LIBS="conftest.a $LIBS"
- AC_TRY_RUN([
- int main()
- {
- extern int testfunc();
- exit (!testfunc());
- }
- ],
- [cf_cv_link_dataonly=yes],
- [cf_cv_link_dataonly=no],
- [cf_cv_link_dataonly=unknown])
- LIBS="$cf_saveLIBS"
- ])
-AC_MSG_RESULT($cf_cv_link_dataonly)
-
-if test "$cf_cv_link_dataonly" = no ; then
- AC_DEFINE(BROKEN_LINKER)
- BROKEN_LINKER=1
-fi
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Most Unix systems have both link and symlink, a few don't have symlink.
-dnl A few non-Unix systems implement symlink, but not link.
-dnl A few non-systems implement neither (or have nonfunctional versions).
-AC_DEFUN([CF_LINK_FUNCS],
-[
-AC_CHECK_FUNCS( \
- remove \
- unlink )
-
-if test "$ac_cv_prog_cc_cross" = yes ; then
- AC_CHECK_FUNCS( \
- link \
- symlink )
-else
- AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[
- cf_cv_link_funcs=
- for cf_func in link symlink ; do
- AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-int main()
-{
- int fail = 0;
- char *src = "config.log";
- char *dst = "conftest.chk";
- struct stat src_sb;
- struct stat dst_sb;
-
- stat(src, &src_sb);
- fail = ($cf_func("config.log", "conftest.chk") < 0)
- || (stat(dst, &dst_sb) < 0)
- || (dst_sb.st_mtime != src_sb.st_mtime);
-#ifdef HAVE_UNLINK
- unlink(dst);
-#else
- remove(dst);
-#endif
- exit (fail);
-}
- ],[
- cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
- eval 'ac_cv_func_'$cf_func'=yes'],[
- eval 'ac_cv_func_'$cf_func'=no'],[
- eval 'ac_cv_func_'$cf_func'=error'])
- done
- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
- ])
- test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK)
- test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make'
-dnl options to lower-levels. It's very useful for "make -n" -- if we have it.
-dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
-dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-)
-AC_DEFUN([CF_MAKEFLAGS],
-[
-AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
- cf_cv_makeflags=''
- for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
- do
- cat >cf_makeflags.tmp <<CF_EOF
-SHELL = /bin/sh
-all :
- @ echo '.$cf_option'
-CF_EOF
- cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null`
- case "$cf_result" in
- .*k)
- cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
- case "$cf_result" in
- .*CC=*) cf_cv_makeflags=
- ;;
- *) cf_cv_makeflags=$cf_option
- ;;
- esac
- break
- ;;
- *) echo no match "$cf_result"
- ;;
- esac
- done
- rm -f cf_makeflags.tmp
-])
-
-AC_SUBST(cf_cv_makeflags)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have
-dnl a monocase filesystem.
-AC_DEFUN([CF_MAKE_TAGS],[
-AC_REQUIRE([CF_MIXEDCASE_FILENAMES])
-AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no)
-
-if test "$cf_cv_mixedcase" = yes ; then
- AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no)
-else
- MAKE_UPPER_TAGS=no
-fi
-
-if test "$MAKE_UPPER_TAGS" = yes ; then
- MAKE_UPPER_TAGS=
-else
- MAKE_UPPER_TAGS="#"
-fi
-AC_SUBST(MAKE_UPPER_TAGS)
-
-if test "$MAKE_LOWER_TAGS" = yes ; then
- MAKE_LOWER_TAGS=
-else
- MAKE_LOWER_TAGS="#"
-fi
-AC_SUBST(MAKE_LOWER_TAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Option to allow user to override automatic configuration of manpage format.
-dnl There are several special cases.
-AC_DEFUN([CF_MANPAGE_FORMAT],
-[
-AC_REQUIRE([CF_PATHSEP])
-AC_MSG_CHECKING(format of man-pages)
-
-AC_ARG_WITH(manpage-format,
- [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and
- optionally formatted, e.g., gzip,formatted],
- [MANPAGE_FORMAT=$withval],
- [MANPAGE_FORMAT=unknown])
-
-case ".$MANPAGE_FORMAT" in
-.gzip|.compress|.BSDI|.normal|.formatted) # (vi
- ;;
-.unknown|.) # (vi
- if test -z "$MANPATH" ; then
- MANPATH="/usr/man:/usr/share/man"
- fi
- # look for the 'date' man-page (it's most likely to be installed!)
- 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
- do
- cf_test=`echo $cf_name | sed -e 's/*//'`
- if test "x$cf_test" = "x$cf_name" ; then
- case "$cf_name" in
- *.gz) MANPAGE_FORMAT=gzip;;
- *.Z) MANPAGE_FORMAT=compress;;
- *.0) MANPAGE_FORMAT=BSDI,formatted;;
- *) MANPAGE_FORMAT=normal;;
- esac
- break
- fi
- done
- if test "$MANPAGE_FORMAT" != "unknown" ; then
- break
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-.*) # (vi
- AC_MSG_WARN(Unexpected manpage-format)
- ;;
-esac
-
-AC_MSG_RESULT($MANPAGE_FORMAT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl The Debian people have their own naming convention for manpages. This
-dnl option lets us override the name of the file containing renaming, or
-dnl disable it altogether.
-AC_DEFUN([CF_MANPAGE_RENAMES],
-[
-AC_MSG_CHECKING(for manpage renaming)
-
-AC_ARG_WITH(manpage-renames,
- [ --with-manpage-renames specify manpage-renaming],
- [MANPAGE_RENAMES=$withval],
- [MANPAGE_RENAMES=yes])
-
-case ".$MANPAGE_RENAMES" in #(vi
-.no) #(vi
- ;;
-.|.yes)
- # Debian 'man' program?
- if test -f /etc/debian_version ; then
- MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
- else
- MANPAGE_RENAMES=no
- fi
- ;;
-esac
-
-if test "$MANPAGE_RENAMES" != no ; then
- if test -f $srcdir/man/$MANPAGE_RENAMES ; then
- MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
- elif test ! -f $MANPAGE_RENAMES ; then
- AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES)
- fi
-
- test ! -d man && mkdir man
-
- # Construct a sed-script to perform renaming within man-pages
- if test -n "$MANPAGE_RENAMES" ; then
- test ! -d man && mkdir man
- sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
- fi
-fi
-
-AC_MSG_RESULT($MANPAGE_RENAMES)
-AC_SUBST(MANPAGE_RENAMES)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some people expect each tool to make all aliases for manpages in the
-dnl man-directory. This accommodates the older, less-capable implementations
-dnl of 'man', and is optional.
-AC_DEFUN([CF_MANPAGE_SYMLINKS],
-[
-AC_MSG_CHECKING(for manpage symlinks)
-
-AC_ARG_WITH(manpage-symlinks,
- [ --with-manpage-symlinks specify manpage-symlinks],
- [MANPAGE_SYMLINKS=$withval],
- [MANPAGE_SYMLINKS=yes])
-
-AC_MSG_RESULT($MANPAGE_SYMLINKS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl This option causes manpages to be run through tbl(1) to generate tables
-dnl correctly.
-AC_DEFUN([CF_MANPAGE_TBL],
-[
-AC_MSG_CHECKING(for manpage tbl)
-
-AC_ARG_WITH(manpage-tbl,
- [ --with-manpage-tbl specify manpage processing with tbl],
- [MANPAGE_TBL=$withval],
- [MANPAGE_TBL=no])
-
-AC_MSG_RESULT($MANPAGE_TBL)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Try to determine if the man-pages on the system are compressed, and if
-dnl so, what format is used. Use this information to construct a script that
-dnl will install man-pages.
-AC_DEFUN([CF_MAN_PAGES],
-[
-CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:)
-CF_MANPAGE_FORMAT
-CF_MANPAGE_RENAMES
-CF_MANPAGE_SYMLINKS
-CF_MANPAGE_TBL
-
- if test "$prefix" = "NONE" ; then
- cf_prefix="$ac_default_prefix"
- else
- cf_prefix="$prefix"
- fi
-
- case "$MANPAGE_FORMAT" in # (vi
- *formatted*) # (vi
- cf_subdir='$mandir/cat'
- cf_format=yes
- ;;
- *)
- cf_subdir='$mandir/man'
- cf_format=no
- ;;
- esac
-
-test ! -d man && mkdir man
-cat >man/edit_man.sh <<CF_EOF
-#! /bin/sh
-# this script is generated by the configure-script
-prefix="$cf_prefix"
-datadir="$datadir"
-NCURSES_OSPEED="$NCURSES_OSPEED"
-TERMINFO="$TERMINFO"
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
-INSTALL="$INSTALL"
-INSTALL_DATA="$INSTALL_DATA"
-transform="$program_transform_name"
-
-TMP=\${TMPDIR-/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 5 15
-
-verb=\[$]1
-shift
-
-mandir=\[$]1
-shift
-
-srcdir=\[$]1
-shift
-
-for i in \[$]* ; do
-case \$i in #(vi
-*.orig|*.rej) ;; #(vi
-*.[[0-9]]*)
- section=\`expr "\$i" : '.*\\.\\([[0-9]]\\)[[xm]]*'\`;
- if test \$verb = installing ; then
- if test ! -d $cf_subdir\${section} ; then
- \$MKDIRS $cf_subdir\$section
- fi
- fi
- aliases=
- source=\`basename \$i\`
- inalias=\$source
- test ! -f \$inalias && inalias="\$srcdir/\$inalias"
- if test ! -f \$inalias ; then
- echo .. skipped \$source
- continue
- fi
-CF_EOF
-if test "$MANPAGE_SYMLINKS" = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
-CF_EOF
-fi
-
-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
- target=$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
- 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
- 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
- ])
-cat >>man/edit_man.sh <<CF_EOF
- sed -e "s,@DATADIR@,\$datadir," \\
- -e "s,@TERMINFO@,\$TERMINFO," \\
- -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
-CF_EOF
- ifelse($1,,,[
- for cf_name in $1
- do
- cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-cat >>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
- < \$i | sed -f edit_man.sed >\$TMP
-CF_EOF
-else
-cat >>man/edit_man.sh <<CF_EOF
- < \$i >\$TMP
-CF_EOF
-fi
-if test $MANPAGE_TBL = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- tbl \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-if test $with_curses_h != yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-if test $cf_format = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- nroff -man \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-case "$MANPAGE_FORMAT" in #(vi
-*compress*) #(vi
-cat >>man/edit_man.sh <<CF_EOF
- if test \$verb = installing ; then
- if ( compress -f \$TMP )
- then
- mv \$TMP.Z \$TMP
- fi
- fi
- target="\$target.Z"
-CF_EOF
- ;;
-*gzip*) #(vi
-cat >>man/edit_man.sh <<CF_EOF
- if test \$verb = installing ; then
- if ( gzip -f \$TMP )
- then
- mv \$TMP.gz \$TMP
- fi
- fi
- target="\$target.gz"
-CF_EOF
- ;;
-*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/'\`"
-CF_EOF
- ;;
-esac
-cat >>man/edit_man.sh <<CF_EOF
- suffix=\`basename \$target | sed -e 's/^[[^.]]*//'\`
- if test \$verb = installing ; then
- echo \$verb \$target
- \$INSTALL_DATA \$TMP \$target
- test -n "\$aliases" && (
- cd $cf_subdir\${section} && (
- target=\`basename \$target\`
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- if test -f \$cf_alias\${suffix} ; then
- if ( cmp -s \$target \$cf_alias\${suffix} )
- then
- :
- else
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- fi
- else
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- fi
- done
- )
- )
- elif test \$verb = removing ; then
- echo \$verb \$target
- rm -f \$target
- test -n "\$aliases" && (
- cd $cf_subdir\${section} && (
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- done
- )
- )
- else
-# echo ".hy 0"
- cat \$TMP
- fi
- ;;
-esac
-done
-exit 0
-CF_EOF
-chmod 755 man/edit_man.sh
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Checks for libraries. At least one UNIX system, Apple Macintosh
-dnl Rhapsody 5.5, does not have -lm. We cannot use the simpler
-dnl AC_CHECK_LIB(m,sin), because that fails for C++.
-AC_DEFUN([CF_MATH_LIB],
-[
-AC_CACHE_CHECK(if -lm needed for math functions,
- cf_cv_need_libm,[
- AC_TRY_LINK([
- #include <stdio.h>
- #include <math.h>
- ],
- [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)],
- [cf_cv_need_libm=no],
- [cf_cv_need_libm=yes])])
-if test "$cf_cv_need_libm" = yes
-then
-ifelse($1,,[
- LIBS="$LIBS -lm"
-],[$1=-lm])
-fi
-])
-dnl ---------------------------------------------------------------------------
-dnl 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],
-[
-AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
- rm -f conftest CONFTEST
- echo test >conftest
- if test -f CONFTEST ; then
- cf_cv_mixedcase=no
- else
- cf_cv_mixedcase=yes
- fi
- rm -f conftest CONFTEST
-])
-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],
-[
- case $1 in
- libtool) $2='obj_lo' ;;
- normal) $2='objects' ;;
- debug) $2='obj_g' ;;
- profile) $2='obj_p' ;;
- shared)
- case $cf_cv_system_name in #(vi
- cygwin) #(vi
- $2='objects' ;;
- *)
- $2='obj_s' ;;
- esac
- esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Provide a value for the $PATH and similar separator
-AC_DEFUN([CF_PATHSEP],
-[
- case $cf_cv_system_name in
- os2*) PATHSEP=';' ;;
- *) PATHSEP=':' ;;
- esac
-ifelse($1,,,[$1=$PATHSEP])
- AC_SUBST(PATHSEP)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check the argument to see that it looks like a pathname. Rewrite it if it
-dnl begins with one of the prefix/exec_prefix variables, and then again if the
-dnl result begins with 'NONE'. This is necessary to work around autoconf's
-dnl delayed evaluation of those symbols.
-AC_DEFUN([CF_PATH_SYNTAX],[
-case ".[$]$1" in #(vi
-.\[$]\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
- ;;
-.\[$]{*prefix}*) #(vi
- eval $1="[$]$1"
- case ".[$]$1" in #(vi
- .NONE/*)
- $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
- ;;
- esac
- ;; #(vi
-.NONE/*)
- $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%`
- ;;
-*)
- ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
-AC_DEFUN([CF_PROG_EXT],
-[
-AC_REQUIRE([CF_CHECK_CACHE])
-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"
- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
- CXXFLAGS="$CXXFLAGS -Zmt"
- LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
- PROG_EXT=".exe"
- ;;
-cygwin*)
- PROG_EXT=".exe"
- ;;
-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 misc/tabset install won't work properly. Usually this happens only when
-dnl using the fallback mkinstalldirs script
-AC_DEFUN([CF_PROG_INSTALL],
-[AC_PROG_INSTALL
-case $INSTALL in
-/*)
- ;;
-*)
- CF_DIRNAME(cf_dir,$INSTALL)
- test -z "$cf_dir" && cf_dir=.
- INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Attempt to determine if we've got one of the flavors of regular-expression
-dnl code that we can support.
-AC_DEFUN([CF_REGEX],
-[
-AC_MSG_CHECKING([for regular-expression headers])
-AC_CACHE_VAL(cf_cv_regex,[
-AC_TRY_LINK([#include <sys/types.h>
-#include <regex.h>],[
- regex_t *p;
- int x = regcomp(p, "", 0);
- int y = regexec(p, "", 0, 0, 0);
- regfree(p);
- ],[cf_cv_regex="regex.h"],[
- AC_TRY_LINK([#include <regexp.h>],[
- char *p = compile("", "", "", 0);
- int x = step("", "");
- ],[cf_cv_regex="regexp.h"],[
- cf_save_LIBS="$LIBS"
- LIBS="-lgen $LIBS"
- AC_TRY_LINK([#include <regexpr.h>],[
- char *p = compile("", "", "");
- int x = step("", "");
- ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])])
-])
-AC_MSG_RESULT($cf_cv_regex)
-case $cf_cv_regex in
- regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;;
- regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;;
- regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Attempt to determine the appropriate CC/LD options for creating a shared
-dnl library.
-dnl
-dnl Note: $(LOCAL_LDFLAGS) is used to link executables that will run within the
-dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib
-dnl We avoid compiling-in a ../lib path for the shared library since that can
-dnl lead to unexpected results at runtime.
-dnl $(LOCAL_LDFLAGS2) has the same intention but assumes that the shared libraries
-dnl are compiled in ../../lib
-dnl
-dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure
-dnl to install symbolic links to the rel/abi versions of shared libraries.
-dnl
-dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi
-dnl version when making symbolic links.
-dnl
-dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library
-dnl version numbers are infix (ex: libncurses.<ver>.dylib) or postfix
-dnl (ex: libncurses.so.<ver>).
-dnl
-dnl Some loaders leave 'so_locations' lying around. It's nice to clean up.
-AC_DEFUN([CF_SHARED_OPTS],
-[
- AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
- LOCAL_LDFLAGS=
- LOCAL_LDFLAGS2=
- LD_SHARED_OPTS=
- INSTALL_LIB="-m 644"
-
- cf_cv_do_symlinks=no
-
- AC_MSG_CHECKING(if release/abi version should be used for shared libs)
- AC_ARG_WITH(shlib-version,
- [ --with-shlib-version=X Specify rel or abi version for shared libs],
- [test -z "$withval" && withval=auto
- case $withval in #(vi
- yes) #(vi
- cf_cv_shlib_version=auto
- ;;
- rel|abi|auto|no) #(vi
- cf_cv_shlib_version=$withval
- ;;
- *)
- AC_ERROR([option value must be one of: rel, abi, auto or no])
- ;;
- esac
- ],[cf_cv_shlib_version=auto])
- AC_MSG_RESULT($cf_cv_shlib_version)
-
- cf_cv_rm_so_locs=no
-
- # Some less-capable ports of gcc support only -fpic
- CC_SHARED_OPTS=
- if test "$GCC" = yes
- then
- AC_MSG_CHECKING(which $CC option to use)
- cf_save_CFLAGS="$CFLAGS"
- for CC_SHARED_OPTS in -fPIC -fpic ''
- do
- CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
- AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
- done
- AC_MSG_RESULT($CC_SHARED_OPTS)
- CFLAGS="$cf_save_CFLAGS"
- fi
-
- cf_cv_shlib_version_infix=no
-
- case $cf_cv_system_name in
- beos*)
- MK_SHARED_LIB='$(CC) -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
- ;;
- cygwin*)
- CC_SHARED_OPTS=
- MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)'
- cf_cv_shlib_version=cygdll
- cf_cv_shlib_version_infix=cygdll
- ;;
- darwin*)
- EXTRA_CFLAGS="-no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $[@]` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
- cf_cv_shlib_version_infix=yes
- ;;
- hpux*)
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
- LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)'
- else
- CC_SHARED_OPTS='+Z'
- LD_SHARED_OPTS='-Wl,+b,$(libdir)'
- fi
- MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $[@]'
- # HP-UX shared libraries must be executable, and should be
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
- irix*)
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $[@]` -o $[@]'
- cf_cv_rm_so_locs=yes
- ;;
- linux*|gnu*)
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $[@]'
- ;;
- openbsd2*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $[@].$(ABI_VERSION)` -o $[@]'
- ;;
- openbsd*|freebsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='$(LD) -Bshareable -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- netbsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
- MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
- if test "$cf_cv_shlib_version" = auto; then
- if test ! -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=rel
- fi
- fi
- else
- MK_SHARED_LIB='$(LD) -Bshareable -o $[@]'
- fi
- ;;
- osf*|mls+*)
- # tested with OSF/1 V3.2 and 'cc'
- # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
- # link with shared libs).
- MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $[@]`'
- case $host_os in
- osf4*)
- MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
- ;;
- esac
- MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]'
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-rpath"
- # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- cf_cv_rm_so_locs=yes
- ;;
- sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
- # tested with osr5.0.5
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-belf -KPIC'
- fi
- MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o [$]@'
- if test "$cf_cv_ld_rpath" = yes ; then
- # only way is to set LD_RUN_PATH but no switch for it
- RUN_PATH=$libdir
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- LINK_PROGS='LD_RUN_PATH=$(libdir)'
- LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
- ;;
- sunos4*)
- # tested with SunOS 4.1.1 and gcc 2.7.0
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -assert pure-text -o $[@]'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- solaris2*)
- # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]'
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-R"
- EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- sysv5uw7*|unix_sv*)
- # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
- if test "$ac_cv_prog_gcc" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -d y -G -o [$]@'
- ;;
- *)
- CC_SHARED_OPTS='unknown'
- MK_SHARED_LIB='echo unknown'
- ;;
- esac
-
- # This works if the last tokens in $MK_SHARED_LIB are the -o target.
- case "$cf_cv_shlib_version" in #(vi
- rel|abi)
- case "$MK_SHARED_LIB" in #(vi
- *'-o $[@]')
- test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
- ;;
- *)
- AC_MSG_WARN(ignored --with-shlib-version)
- ;;
- esac
- ;;
- esac
-
- if test -n "$cf_ld_rpath_opt" ; then
- AC_MSG_CHECKING(if we need a space after rpath option)
- cf_save_LIBS="$LIBS"
- LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
- AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
- LIBS="$cf_save_LIBS"
- AC_MSG_RESULT($cf_rpath_space)
- test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
- MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)"
- fi
-
- AC_SUBST(CC_SHARED_OPTS)
- AC_SUBST(LD_SHARED_OPTS)
- AC_SUBST(MK_SHARED_LIB)
- AC_SUBST(LINK_PROGS)
- AC_SUBST(LINK_TESTS)
- AC_SUBST(EXTRA_LDFLAGS)
- AC_SUBST(LOCAL_LDFLAGS)
- AC_SUBST(LOCAL_LDFLAGS2)
- AC_SUBST(INSTALL_LIB)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check for definitions & structures needed for window size-changing
-dnl FIXME: check that this works with "snake" (HP-UX 10.x)
-AC_DEFUN([CF_SIZECHANGE],
-[
-AC_REQUIRE([CF_STRUCT_TERMIOS])
-AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[
- cf_cv_sizechange=unknown
- cf_save_CPPFLAGS="$CPPFLAGS"
-
-for cf_opts in "" "NEED_PTEM_H"
-do
-
- CPPFLAGS="$cf_save_CPPFLAGS"
- test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
- AC_TRY_COMPILE([#include <sys/types.h>
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#else
-#ifdef HAVE_TERMIO_H
-#include <termio.h>
-#endif
-#endif
-#ifdef NEED_PTEM_H
-/* This is a workaround for SCO: they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
- */
-#include <sys/stream.h>
-#include <sys/ptem.h>
-#endif
-#if !defined(sun) || !defined(HAVE_TERMIOS_H)
-#include <sys/ioctl.h>
-#endif
-],[
-#ifdef TIOCGSIZE
- struct ttysize win; /* FIXME: what system is this? */
- int y = win.ts_lines;
- int x = win.ts_cols;
-#else
-#ifdef TIOCGWINSZ
- struct winsize win;
- int y = win.ws_row;
- int x = win.ws_col;
-#else
- no TIOCGSIZE or TIOCGWINSZ
-#endif /* TIOCGWINSZ */
-#endif /* TIOCGSIZE */
- ],
- [cf_cv_sizechange=yes],
- [cf_cv_sizechange=no])
-
- CPPFLAGS="$cf_save_CPPFLAGS"
- if test "$cf_cv_sizechange" = yes ; then
- echo "size-change succeeded ($cf_opts)" >&AC_FD_CC
- test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
- break
- fi
-done
-])
-if test "$cf_cv_sizechange" != no ; then
- AC_DEFINE(HAVE_SIZECHANGE)
- case $cf_cv_sizechange in #(vi
- NEED*)
- AC_DEFINE_UNQUOTED($cf_cv_sizechange )
- ;;
- esac
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl For each parameter, test if the source-directory exists, and if it contains
-dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
-dnl use in CF_LIB_RULES.
-dnl
-dnl This uses the configured value to make the lists SRC_SUBDIRS and
-dnl SUB_MAKEFILES which are used in the makefile-generation scheme.
-AC_DEFUN([CF_SRC_MODULES],
-[
-AC_MSG_CHECKING(for src modules)
-
-# dependencies and linker-arguments for test-programs
-TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
-if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
-else
- TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
-fi
-
-# dependencies and linker-arguments for utility-programs
-PROG_ARGS="$TEST_ARGS"
-
-cf_cv_src_modules=
-for cf_dir in $1
-do
- if test -f $srcdir/$cf_dir/modules; then
-
- # We may/may not have tack in the distribution, though the
- # makefile is.
- if test $cf_dir = tack ; then
- if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
- continue
- fi
- fi
-
- if test -z "$cf_cv_src_modules"; then
- cf_cv_src_modules=$cf_dir
- else
- cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
- fi
-
- # Make the ncurses_cfg.h file record the library interface files as
- # well. These are header files that are the same name as their
- # directory. Ncurses is the only library that does not follow
- # that pattern.
- if test $cf_dir = tack ; then
- continue
- elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
- CF_UPPER(cf_have_include,$cf_dir)
- AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
- AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
- fi
- fi
- fi
-done
-AC_MSG_RESULT($cf_cv_src_modules)
-TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
-AC_SUBST(TEST_DEPS)
-AC_SUBST(TEST_ARGS)
-
-PROG_ARGS="-L${LIB_DIR} $PROG_ARGS"
-AC_SUBST(PROG_ARGS)
-
-SRC_SUBDIRS="man include"
-for cf_dir in $cf_cv_src_modules
-do
- SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
-done
-SRC_SUBDIRS="$SRC_SUBDIRS test"
-test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
-test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
-
-ADA_SUBDIRS=
-if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
- SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
- ADA_SUBDIRS="gen src samples"
-fi
-
-SUB_MAKEFILES=
-for cf_dir in $SRC_SUBDIRS
-do
- SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
-done
-
-if test -n "$ADA_SUBDIRS"; then
- for cf_dir in $ADA_SUBDIRS
- do
- SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
- done
- AC_SUBST(ADA_SUBDIRS)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check for -lstdc++, which is GNU's standard C++ library.
-AC_DEFUN([CF_STDCPP_LIBRARY],
-[
-if test -n "$GXX" ; then
-case $cf_cv_system_name in #(vi
-os2*) #(vi
- cf_stdcpp_libname=stdcpp
- ;;
-*)
- cf_stdcpp_libname=stdc++
- ;;
-esac
-AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[
- cf_save="$LIBS"
- LIBS="$LIBS -l$cf_stdcpp_libname"
-AC_TRY_LINK([
-#include <strstream.h>],[
-char buf[80];
-strstreambuf foo(buf, sizeof(buf))
-],
- [cf_cv_libstdcpp=yes],
- [cf_cv_libstdcpp=no])
- LIBS="$cf_save"
-])
-test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Remove "-g" option from the compiler options
-AC_DEFUN([CF_STRIP_G_OPT],
-[$1=`echo ${$1} | sed -e 's/-g //' -e 's/-g$//'`])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only
-dnl do this if we've found the sigaction function.
-dnl
-dnl If needed, define SVR4_ACTION.
-AC_DEFUN([CF_STRUCT_SIGACTION],[
-if test "$ac_cv_func_sigaction" = yes; then
-AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE)
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <signal.h>],
- [struct sigaction act],
- [sigact_bad=no],
- [
-AC_TRY_COMPILE([
-#define _POSIX_SOURCE
-#include <sys/types.h>
-#include <signal.h>],
- [struct sigaction act],
- [sigact_bad=yes
- AC_DEFINE(SVR4_ACTION)],
- [sigact_bad=unknown])])
-AC_MSG_RESULT($sigact_bad)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Some machines require _POSIX_SOURCE to completely define struct termios.
-dnl If so, define SVR4_TERMIO
-AC_DEFUN([CF_STRUCT_TERMIOS],[
-AC_CHECK_HEADERS( \
-termio.h \
-termios.h \
-unistd.h \
-)
-if test "$ISC" = yes ; then
- AC_CHECK_HEADERS( sys/termio.h )
-fi
-if test "$ac_cv_header_termios_h" = yes ; then
- case "$CFLAGS $CPPFLAGS" in
- *-D_POSIX_SOURCE*)
- termios_bad=dunno ;;
- *) termios_bad=maybe ;;
- esac
- if test "$termios_bad" = maybe ; then
- AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE)
- AC_TRY_COMPILE([#include <termios.h>],
- [struct termios foo; int x = foo.c_iflag],
- termios_bad=no, [
- AC_TRY_COMPILE([
-#define _POSIX_SOURCE
-#include <termios.h>],
- [struct termios foo; int x = foo.c_iflag],
- termios_bad=unknown,
- termios_bad=yes AC_DEFINE(SVR4_TERMIO))
- ])
- AC_MSG_RESULT($termios_bad)
- fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Shorthand macro for substituting things that the user may override
-dnl with an environment variable.
-dnl
-dnl $1 = long/descriptive name
-dnl $2 = environment variable
-dnl $3 = default value
-AC_DEFUN([CF_SUBST],
-[AC_CACHE_VAL(cf_cv_subst_$2,[
-AC_MSG_CHECKING(for $1 (symbol $2))
-test -z "[$]$2" && $2=$3
-AC_MSG_RESULT([$]$2)
-AC_SUBST($2)
-cf_cv_subst_$2=[$]$2])
-$2=${cf_cv_subst_$2}
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Get the version-number for use in shared-library naming, etc.
-AC_DEFUN([CF_SUBST_NCURSES_VERSION],
-[
-NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
-NCURSES_MINOR="`egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
-NCURSES_PATCH="`egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`"
-cf_cv_abi_version=${NCURSES_MAJOR}
-cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
-dnl Show the computed version, for logging
-cf_cv_timestamp=`date`
-AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp))
-dnl We need these values in the generated headers
-AC_SUBST(NCURSES_MAJOR)
-AC_SUBST(NCURSES_MINOR)
-AC_SUBST(NCURSES_PATCH)
-dnl We need these values in the generated makefiles
-AC_SUBST(cf_cv_rel_version)
-AC_SUBST(cf_cv_abi_version)
-AC_SUBST(cf_cv_cc_bool_type)
-AC_SUBST(cf_cv_builtin_bool)
-AC_SUBST(cf_cv_header_stdbool_h)
-AC_SUBST(cf_cv_type_of_bool)dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
-dnl older SCO configurations.
-AC_DEFUN([CF_SYS_TIME_SELECT],
-[
-AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
-AC_CACHE_VAL(cf_cv_sys_time_select,[
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-],[],[cf_cv_sys_time_select=yes],
- [cf_cv_sys_time_select=no])
- ])
-AC_MSG_RESULT($cf_cv_sys_time_select)
-test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Determine the type we should use for chtype (and attr_t, which is treated
-dnl as the same thing). We want around 32 bits, so on most machines want a
-dnl long, but on newer 64-bit machines, probably want an int. If we're using
-dnl wide characters, we have to have a type compatible with that, as well.
-AC_DEFUN([CF_TYPEOF_CHTYPE],
-[
-AC_REQUIRE([CF_UNSIGNED_LITERALS])
-AC_MSG_CHECKING([for type of chtype])
-AC_CACHE_VAL(cf_cv_typeof_chtype,[
- AC_TRY_RUN([
-#ifdef USE_WIDEC_SUPPORT
-#include <stddef.h> /* we want wchar_t */
-#define WANT_BITS 39
-#else
-#define WANT_BITS 31
-#endif
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
- char *result = "long";
-#ifdef USE_WIDEC_SUPPORT
- /*
- * If wchar_t is smaller than a long, it must be an int or a
- * short. We prefer not to use a short anyway.
- */
- if (sizeof(unsigned long) > sizeof(wchar_t))
- result = "int";
-#endif
- if (sizeof(unsigned long) > sizeof(unsigned int)) {
- int n;
- unsigned int x;
- for (n = 0; n < WANT_BITS; n++) {
- unsigned int y = (x >> n);
- if (y != 1 || x == 0) {
- x = 0;
- break;
- }
- }
- /*
- * If x is nonzero, an int is big enough for the bits
- * that we want.
- */
- result = (x != 0) ? "int" : "long";
- }
- fputs(result, fp);
- fclose(fp);
- }
- exit(0);
-}
- ],
- [cf_cv_typeof_chtype=`cat cf_test.out`],
- [cf_cv_typeof_chtype=long],
- [cf_cv_typeof_chtype=long])
- rm -f cf_test.out
- ])
-AC_MSG_RESULT($cf_cv_typeof_chtype)
-
-AC_SUBST(cf_cv_typeof_chtype)
-AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
-
-cf_cv_1UL="1"
-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
-test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L"
-AC_SUBST(cf_cv_1UL)
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl
-AC_DEFUN([CF_TYPE_SIGACTION],
-[
-AC_MSG_CHECKING([for type sigaction_t])
-AC_CACHE_VAL(cf_cv_type_sigaction,[
- AC_TRY_COMPILE([
-#include <signal.h>],
- [sigaction_t x],
- [cf_cv_type_sigaction=yes],
- [cf_cv_type_sigaction=no])])
-AC_MSG_RESULT($cf_cv_type_sigaction)
-test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers
-dnl won't, but they're still there.
-AC_DEFUN([CF_UNSIGNED_LITERALS],
-[
-AC_MSG_CHECKING([if unsigned literals are legal])
-AC_CACHE_VAL(cf_cv_unsigned_literals,[
- AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1],
- [cf_cv_unsigned_literals=yes],
- [cf_cv_unsigned_literals=no])
- ])
-AC_MSG_RESULT($cf_cv_unsigned_literals)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl 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 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 defaulting to yes/no.
-dnl
-dnl $1 = option name
-dnl $2 = help-text
-dnl $3 = environment variable to set
-dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
-dnl
-AC_DEFUN([CF_WITH_PATH],
-[AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
-ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl
-CF_PATH_SYNTAX(withval)
-eval $3="$withval"
-AC_SUBST($3)dnl
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl Process an option specifying a list of colon-separated paths.
-dnl
-dnl $1 = option name
-dnl $2 = help-text
-dnl $3 = environment variable to set
-dnl $4 = default value, shown in the help-message, must be a constant
-dnl $5 = default value, if it's an expression & cannot be in the help-message
-dnl $6 = flag to tell if we want to define or substitute
-dnl
-AC_DEFUN([CF_WITH_PATHLIST],[
-AC_REQUIRE([CF_PATHSEP])
-AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
-ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
-
-IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
-cf_dst_path=
-for cf_src_path in $withval
-do
- CF_PATH_SYNTAX(cf_src_path)
- test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:"
- cf_dst_path="${cf_dst_path}${cf_src_path}"
-done
-IFS="$ac_save_ifs"
-
-ifelse($6,define,[
-# Strip single quotes from the value, e.g., when it was supplied as a literal
-# for $4 or $5.
-case $cf_dst_path in #(vi
-\'*)
- cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//`
- ;;
-esac
-cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'`
-])
-
-eval '$3="$cf_dst_path"'
-AC_SUBST($3)dnl
-
-])dnl
diff --git a/ncurses-5.3/announce.html.in b/ncurses-5.3/announce.html.in
deleted file mode 100644
index 4813cee..0000000
--- a/ncurses-5.3/announce.html.in
+++ /dev/null
@@ -1,436 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>Announcing ncurses @VERSION@ Pre-Release</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-</HEAD>
-<BODY>
-
-<H1>Announcing ncurses @VERSION@</H1>
-
-The ncurses (new curses) library is a free software emulation of
-curses in System V Release 4.0, and more. It uses terminfo format,
-supports pads and color
-and multiple highlights and forms characters and function-key mapping,
-and has all the other SYSV-curses enhancements over BSD curses.<P>
-
-In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and is encouraging the keepers of
-Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
-ncurses.<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),
-and a termcap conversion tool captoinfo(1). Full manual pages are provided for
-the library and tools.<P>
-
-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
-<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
-
-<H1>Release Notes</H1>
-
-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.
-<p>
-Interface changes:
-<ul>
- <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>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>add environment variable <code>$NCURSES_ASSUMED_COLORS</code> to
- modify the <code>assume_default_colors()</code> extension.
-
-</ul>
-New features and improvements:
-<ul>
- <li>Improved support for termcap applications:
- <ul>
- <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>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 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>add tic -A option to suppress capabilities which are commented out
- when translating to termcap.
-
- <li>modify logic in lib_baudrate.c for ospeed, for FreeBSD to make it
- work properly for termcap applications (patch by Andrey A Chernov).
-
- </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>
- <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 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>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>modified wresize() to ensure that a failed realloc will not corrupt
- the window structure, and to make subwindows fit within the resized
- window.
-
- <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/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>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>add a check in relative_move() to guard against buffer overflow in
- the overwrite logic.
-
- <li>add some limit/pointer checks to -S option of tputs.
-
- <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>
- <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>correct a typo in configure --enable-colorfgbg option, and move it
- to the experimental section (cf: 20011208).
-
- <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 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 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 several configure script options to aid with cross-compiling:
- --with-build-cc, --with-build-cflags, --with-build-ldflags, and
- --with-build-libs.
-
- <li>add experimental --with-caps=XXX option to customize to similar
- terminfo database formats such as AIX 4.x
-
- <li>add configure option --with-ospeed to assist packagers in transition
- to 5.3 change to ospeed type.
- </ul>
-
- <li>library:
- <ul>
- <li>implement a simple vsscanf() fallback function which uses the %n
- conversion to help parse the input data.
-
- <li>various fixes to build/work with different implementations of
- vsscanf().
-
- <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>finish changes needed to build dll's on cygwin.
-
- <li>add #undef's before possible redefinition of ERR and OK in curses.h
- </ul>
-
- <li>programs:
- <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>
-
-The ncurses package is fully compatible with SVr4 (System V Release 4) curses:
-
-<UL>
-<LI>All 257 of the SVr4 calls have been implemented (and are documented).
-<LI>Full support for SVr4 curses features including keyboard mapping, color,
-forms-drawing with ACS characters, and automatic recognition of keypad
-and function keys.
-<LI>An emulation of the SVr4 panels library, supporting
-a stack of windows with backing store, is included.
-<LI>An emulation of the SVr4 menus library, supporting
-a uniform but flexible interface for menu programming, is included.
-<LI>An emulation of the SVr4 form library, supporting
-data collection through on-screen forms, is included.
-<LI>Binary terminfo entries generated by the ncurses tic(1) implementation
-are bit-for-bit-compatible with the entry format SVr4 curses uses.
-<LI>The utilities have options to allow you to filter terminfo
-entries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG>
-versions such as the HP/UX and AIX ports.</UL>
-
-The ncurses package also has many useful extensions over SVr4:
-
-<UL>
-<LI>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 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).
-<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner
-of the screen if your terminal has an insert-character capability.
-<LI>Ada95 and C++ bindings.
-<LI>Support for mouse event reporting with X Window xterm and OS/2 console windows.
-<LI>Extended mouse support via Alessandro Rubini's gpm package.
-<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving
-their data.
-<LI>The function <CODE>use_default_colors()</CODE> allows you to
-use the terminal's default colors for the default color pair,
-achieving the effect of transparent colors.
-<LI>The functions <CODE>keyok()</CODE>
-and <CODE>define_key()</CODE> 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 key code.
-<LI>Support for 16-color terminals, such as aixterm and XFree86 xterm.
-<LI>Better cursor-movement optimization. The package now features a
-cursor-local-movement computation more efficient than either BSD's
-or System V's.
-<LI>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.
-<LI>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.
-<LI>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).
-<LI>The tic(1)/captoinfo utility provided with ncurses has the
-ability to translate many termcaps from the XENIX, IBM and
-AT&amp;T extension sets.
-<LI>A BSD-like tset(1) utility is provided.
-<LI>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 terminfo directory.
-<LI>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.)
-<LI>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
-compiled entries in either the system terminfo directory or the user's
-$HOME/.terminfo directory.
-<LI>A script (<STRONG>capconvert</STRONG>) 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.
-<LI>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.
-<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to
-see exactly what terminal types are available on the system.
-<LI>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
-<CODE>#undef</CODE>.
-<LI>An HTML "Introduction to Programming with NCURSES" document provides
-a narrative introduction to the curses programming interface.
-</UL>
-
-<H1>State of the Package</H1>
-
-Numerous bugs present in earlier versions have been fixed; the
-library is far more reliable than it used to be. Bounds checking in many
-`dangerous' entry points has been improved. The code is now type-safe
-according to gcc -Wall. The library has been checked for malloc leaks and
-arena corruption by the Purify memory-allocation tester.<P>
-
-The ncurses code has been tested with a wide variety of applications
-including (versions starting with those noted):
-<DL>
-<DT> cdk
-<DD> Curses Development Kit
-<br>
-<A HREF="http://invisible-island.net/cdk/cdk.html">http://invisible-island.net/cdk</A>.
-<br>
-<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
-<DT> ded
-<DD> directory-editor
-<br>
-<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>
-<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> Midnight Commander
-<DD> file manager
-<br>
-<A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
-<DT> mutt
-<DD> mail utility
-<br>
-<A HREF="http://www.mutt.org">http://www.mutt.org</A>.
-<DT> ncftp
-<DD> file-transfer utility
-<br>
-<A HREF="http://www.ncftp.com">http://www.ncftp.com</A>.
-<DT> nvi
-<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
-<br>
-<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>.
-<DT> tin
-<DD> newsreader, supporting color, MIME
-<br>
-<A HREF="http://www.tin.org">http://www.tin.org</A>.
-<DT> taper
-<DD> tape archive utility
-<br>
-<A HREF="http://members.iinet.net.au/~yusuf/taper/">http://members.iinet.net.au/~yusuf/taper/</A>.
-<DT> vh-1.6
-<DD> Volks-Hypertext browser for the Jargon File
-<br>
-<A HREF="http://www.bg.debian.org/Packages/unstable/text/vh.html">http://www.bg.debian.org/Packages/unstable/text/vh.html</A>.
-</DL>
-as well as some that use ncurses for the terminfo support alone:
-<DL>
-<DT> minicom
-<DD> terminal emulator
-<br>
-<A HREF="http://www.pp.clinet.fi/~walker/minicom.html">http://www.pp.clinet.fi/~walker/minicom.html</A>.
-<DT> vile
-<DD> vi-like-emacs
-<br>
-<A HREF="http://invisible-island.net/vile/vile.html">http://invisible-island.net/vile</A>.
-</DL>
-<P>
-
-The ncurses distribution includes a selection of test programs (including
-a few games).
-
-<H2>Who's Who and What's What</H2>
-
-The original developers of ncurses are <A
-HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and
-<A HREF="http://www.ccil.org/~esr/home.html">Eric S. Raymond</A>.
-Ongoing work is being done by
-<A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
-and
-<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.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-To join the ncurses mailing list, please write email to
-<CODE>bug-ncurses-request@gnu.org</CODE> containing the line:
-<PRE>
- subscribe &lt;name&gt;@&lt;host.domain&gt;
-</PRE>
-
-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
-<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
-
-<H2>Future Plans</H2>
-<UL>
-<LI>Extended-level XPG4 conformance, with internationalization support.
-<LI>Ports to more systems, including DOS and Windows.
-</UL>
-We need people to help with these projects. If you are interested in working
-on them, please join the ncurses list.
-
-<H2>Other Related Resources</H2>
-
-The distribution includes and uses a version of the terminfo-format
-terminal description file maintained by Eric Raymond.
-<A HREF="http://earthspace.net/~esr/terminfo">http://earthspace.net/~esr/terminfo</A>.<P>
-
-You can find lots of information on terminal-related topics
-not covered in the terminfo file at
-<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
-archive</A>.
-</BODY>
-</HTML>
-<!--
-# The following sets edit modes for GNU EMACS
-# Local Variables:
-# mode:html
-# case-fold-search:nil
-# fill-column:70
-# End:
--->
diff --git a/ncurses-5.3/c++/Makefile.in b/ncurses-5.3/c++/Makefile.in
deleted file mode 100644
index a6c8577..0000000
--- a/ncurses-5.3/c++/Makefile.in
+++ /dev/null
@@ -1,220 +0,0 @@
-# $Id$
-##############################################################################
-# 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"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1996,1997
-#
-# Simple makefile for c++ window class demo
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-x = @PROG_EXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-
-CXX_AR = @CXX_AR@
-CXX_AR_OPTS = @CXX_AR_OPTS@
-RANLIB = @RANLIB@
-
-CXX = @CXX@
-CPP = @CPP@
-CXXFLAGS = @CXXFLAGS@
-CXXLIBS = @CXXLIBS@
-
-INCDIR = ../include
-CPPFLAGS = -I../c++ -I$(INCDIR) -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
-
-CCFLAGS = $(CPPFLAGS) $(CXXFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CXX_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-LINK = @LINK_PROGS@ $(LIBTOOL) $(CXX) @CXXLDFLAGS@
-
-LIBROOT = ncurses++
-
-LIBNAME_LIBTOOL = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.la
-LIBNAME_NORMAL = @LIB_PREFIX@$(LIBROOT)@LIB_SUFFIX@.a
-LIBNAME = @LIB_PREFIX@$(LIBROOT)@CXX_LIB_SUFFIX@
-
-LINK_FLAGS = @EXTRA_LDFLAGS@ -L../lib -l$(LIBROOT)@LIB_SUFFIX@
-
-LINK_LIBTOOL = @EXTRA_LDFLAGS@ -L../lib ../lib/$(LIBNAME)
-LINK_NORMAL = $(LINK_FLAGS)
-LINK_DEBUG = $(LINK_FLAGS)
-LINK_PROFILE = $(LINK_FLAGS)
-LINK_SHARED = $(LINK_FLAGS)
-
-LDFLAGS = @TEST_ARGS@ @LDFLAGS@ \
- @LD_MODEL@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
-
-LDFLAGS_LIBTOOL = $(LDFLAGS)
-LDFLAGS_NORMAL = $(LDFLAGS)
-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
-LDFLAGS_PROFILE = $(LDFLAGS) -pg
-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LINK_@DFT_UPR_MODEL@) $(LDFLAGS_@DFT_UPR_MODEL@)
-
-AUTO_SRC = \
- etip.h
-
-all \
-libs :: $(AUTO_SRC) ../lib/$(LIBNAME)
-
-all :: demo$x
-
-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.
-LIB_OBJS = \
- $(MODEL)/cursesf.o \
- $(MODEL)/cursesm.o \
- $(MODEL)/cursesw.o \
- $(MODEL)/cursespad.o \
- $(MODEL)/cursesp.o \
- $(MODEL)/cursslk.o \
- $(MODEL)/cursesapp.o \
- $(MODEL)/cursesmain.o
-
-../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS)
- $(CXX_AR) $(CXX_AR_OPTS) $@ $?
- $(RANLIB) $@
-
-../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
- cd ../lib && $(LIBTOOL) $(CXX) -o $(LIBNAME) $(LIB_OBJS:.o=.lo) \
- -rpath $(INSTALL_PREFIX)$(libdir) \
- -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR)
-
-OBJS_DEMO = $(MODEL)/demo.o
-
-$(MODEL)/demo.o : $(srcdir)/demo.cc \
- $(cursesf_h) $(cursesm_h) $(cursesapp_h)
-
-demo$x: $(OBJS_DEMO) \
- ../lib/$(LIBNAME) \
- @TEST_DEPS@
- @ECHO_LINK@ $(LINK) -o $@ $(OBJS_DEMO) $(LDFLAGS_DEFAULT)
-
-etip.h: $(srcdir)/etip.h.in $(srcdir)/edit_cfg.sh
- cp $(srcdir)/etip.h.in $@
- sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
-
-$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-install \
-install.libs:: ../lib/$(LIBNAME) $(DESTDIR)$(libdir)
- $(LIBTOOL) $(INSTALL) ../lib/$(LIBNAME) $(DESTDIR)$(libdir)/$(LIBNAME)
-
-uninstall \
-uninstall.libs::
- -$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/$(LIBNAME)
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ii *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -rf $(MODEL)/SunWS_cache
- -$(LIBTOOL) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:.o=.lo) $(OBJS_DEMO)
- -rm -rf .libs
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-###############################################################################
-
-cursesw_h = $(srcdir)/cursesw.h \
- etip.h \
- $(INCDIR)/curses.h
-
-cursesp_h = $(srcdir)/cursesp.h \
- $(cursesw_h) \
- $(INCDIR)/panel.h
-
-cursesf_h = $(srcdir)/cursesf.h \
- $(cursesp_h) \
- $(INCDIR)/form.h
-
-cursesm_h = $(srcdir)/cursesm.h \
- $(cursesp_h) \
- $(INCDIR)/menu.h
-
-cursslk_h = $(srcdir)/cursslk.h \
- $(cursesw_h)
-
-cursesapp_h = $(srcdir)/cursesapp.h \
- $(cursslk_h)
-
-$(INCDIR)/form.h :
- cd ../form && $(MAKE) $@
-
-$(INCDIR)/menu.h :
- cd ../menu && $(MAKE) $@
-
-$(INCDIR)/panel.h :
- cd ../panel && $(MAKE) $@
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/c++/NEWS b/ncurses-5.3/c++/NEWS
deleted file mode 100644
index 299292d..0000000
--- a/ncurses-5.3/c++/NEWS
+++ /dev/null
@@ -1,42 +0,0 @@
-This is a log of changes that the ncurses C++ binding has gone
-through starting with the integration of menu and forms integration
-into the binding.
-
-990731 + Improve support for pads. A viewport window may now be added to
- a pad. It will then be possible to use a builtin panning mechanism
- to view the pad.
-
-970908 + Improve NCursesWindow class: added additional methods to
- cover more ncurses functionality. Make refresh() and
- noutrefresh() virtual members to allow different implementation
- in the NCursesPanel class.
- + CAUTION: changed order of parameters in vline() and hline() of
- NCursesWindow class.
- + Make refresh() in NCursesPanel non-static, it is now a
- reimplementation of refresh() in the base class. Added
- noutrefresh() to NCursesPanel.
- + Added NCursesForm and related classes to support libform
- functionality.
- + Moved most of configuration related stuff from cursesw.h to
- etip.h
- + Added NCursesApplication class to support easy configuration
- of menu and forms related attributes as well as ripped of
- title lines and Soft-Label-Keys for an application.
- + Support of Auto-Cleanup for a menus fieldlist.
- + Change of return type for current_item() and operator[] for
- menus.
- + Enhanced demo.
-970502
- + Introduced the THROW and THROWS functions/macros to prepare
- a smoother transition to real exception handling.
- + Exception classes provided in etip.h
- + Added the NCursesMenu class to support libmenu functionality.
- + The inheritace relation between NCursesWindow and NCursesColorWindow
- was kind of brain damage. Monochrome is a special case of colored, so
- the relation should be just the opposite. This would allow all
- derived classes like NCursesPanel, NCursesMenu or NCursesForm to
- have colors.
- To resolve that design flaw I put the color functionality into the
- NCursesWindow class and it can be switched on by the static member
- useColors(). NCursesColorWindow is still there for compatibility
- reasons.
diff --git a/ncurses-5.3/c++/PROBLEMS b/ncurses-5.3/c++/PROBLEMS
deleted file mode 100644
index 81c1eba..0000000
--- a/ncurses-5.3/c++/PROBLEMS
+++ /dev/null
@@ -1,5 +0,0 @@
-This is a list of open problems. This mainly lists known missing pieces
-and design flaws.
-
-1. Testing!!!
-2. Better demo program
diff --git a/ncurses-5.3/c++/README-first b/ncurses-5.3/c++/README-first
deleted file mode 100644
index 747fb1e..0000000
--- a/ncurses-5.3/c++/README-first
+++ /dev/null
@@ -1,58 +0,0 @@
- C++ interface to ncurses routines
------------------------------------------------------------------------
-
-This directory contains the source code for several C++ classes which
-ease the use of writing ncurses-based programs. The code is derived
-from the libg++ CursesWindow class but enhanced for ncurses.
-
-The classes simplify the use of window specific functions by
-encapsulating them in the window object. Function overloading is
-used in order to narrow the interface. E.g. you don't have the
-distinction between `printw' and `mvprintw' anymore.
-
-A second benefit is the removal of all #defines which are included in
-the curses.h file. This is a steady cause of trouble because many
-common identifiers are used. Instead now all #defines are inline
-functions which also allows strict type checking of arguments.
-
-The next enhancement is color support. It was originally provided by a
-derived class. This caused some trouble if you think about Panels or
-Menus and Forms with colors. We decided to put color support into the
-base class so that any derived class may use color support also.
-The implementation chosen here is directed to unrestricted use
-of mixes of color and monochrome windows. The original NCursesColorWindow
-class is maintained for compatibility reasons.
-
-The last point to mention is the support of other packages that are
-distributed with the ncurses package: the panels library, the menu library
-and the form library. This support is provided by the NCursesPanel class,
-which is also derived from the NCursesWindow class and the NCursesMenu
-and NCursesForm classes which are derived from NCursesPanel. This allows
-building interfaces with windows.
-
-Please see the example program for a quick introduction.
-
-Note that at this point, there is no documentation for these classes.
-Hopefully some will be written in the not too distant future. For now,
-to find out how to use the classes, read the code and the example program.
-
-Suggestions for enhancements and contributions of code (and docs) are
-welcome. Please let us know which functionality you miss.
-
- ATTENTION LINUX USERS: There is currently some discussion of
- replacing the BSD curses in the Linux libc with ncurses. If
- this is done we could perhaps include these classes in the Linux
- libg++ replacing the original CursesWindow class (and renaming it
- to CursesWindow). This could be done because NCursesWindow can
- be made easily to a superset of the CursesWindow class.
-
-
-Original author:
- Eric Newton <newton@rocky.oswego.edu> for FSF's libg++
-
-Authors of first ncurses based release (NCursesWindow, NCursesPanel):
- Ulrich Drepper <drepper@ira.uka.de>
- and Anatoly Ivasyuk <anatoly@nick.csh.rit.edu>
-
-Author of this release:
- Juergen Pfeifer http://www.familiepfeifer.de/Contact.aspx?Lang=en
diff --git a/ncurses-5.3/c++/cursesapp.cc b/ncurses-5.3/c++/cursesapp.cc
deleted file mode 100644
index 429002a..0000000
--- a/ncurses-5.3/c++/cursesapp.cc
+++ /dev/null
@@ -1,147 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "internal.h"
-#include "cursesapp.h"
-
-MODULE_ID("$Id$")
-
-void
-NCursesApplication::init(bool bColors) {
- if (bColors)
- NCursesWindow::useColors();
-
- if (Root_Window->colors() > 1) {
- b_Colors = TRUE;
- Root_Window->setcolor(1);
- Root_Window->setpalette(COLOR_YELLOW,COLOR_BLUE);
- Root_Window->setcolor(2);
- Root_Window->setpalette(COLOR_CYAN,COLOR_BLUE);
- Root_Window->setcolor(3);
- Root_Window->setpalette(COLOR_BLACK,COLOR_BLUE);
- Root_Window->setcolor(4);
- Root_Window->setpalette(COLOR_BLACK,COLOR_CYAN);
- Root_Window->setcolor(5);
- Root_Window->setpalette(COLOR_BLUE,COLOR_YELLOW);
- Root_Window->setcolor(6);
- Root_Window->setpalette(COLOR_BLACK,COLOR_GREEN);
- }
- else
- b_Colors = FALSE;
-
- Root_Window->bkgd(' '|window_backgrounds());
-}
-
-NCursesApplication* NCursesApplication::theApp = 0;
-NCursesWindow* NCursesApplication::titleWindow = 0;
-NCursesApplication::SLK_Link* NCursesApplication::slk_stack = 0;
-
-NCursesApplication::~NCursesApplication() {
- Soft_Label_Key_Set* S;
-
- delete titleWindow;
- while( (S=top()) ) {
- pop();
- delete S;
- }
- delete Root_Window;
- ::endwin();
-}
-
-int NCursesApplication::rinit(NCursesWindow& w) {
- titleWindow = &w;
- return OK;
-}
-
-void NCursesApplication::push(Soft_Label_Key_Set& S) {
- SLK_Link* L = new SLK_Link;
- assert(L != 0);
- L->prev = slk_stack;
- L->SLKs = &S;
- slk_stack = L;
- if (Root_Window)
- S.show();
-}
-
-bool NCursesApplication::pop() {
- if (slk_stack) {
- SLK_Link* L = slk_stack;
- slk_stack = slk_stack->prev;
- delete L;
- if (Root_Window && top())
- top()->show();
- }
- return (slk_stack ? FALSE : TRUE);
-}
-
-Soft_Label_Key_Set* NCursesApplication::top() const {
- if (slk_stack)
- return slk_stack->SLKs;
- else
- return (Soft_Label_Key_Set*)0;
-}
-
-int NCursesApplication::operator()(void) {
- bool bColors = b_Colors;
- Soft_Label_Key_Set* S;
-
- int ts = titlesize();
- if (ts>0)
- NCursesWindow::ripoffline(ts,rinit);
- Soft_Label_Key_Set::Label_Layout fmt = useSLKs();
- if (fmt!=Soft_Label_Key_Set::None) {
- S = new Soft_Label_Key_Set(fmt);
- assert(S != 0);
- init_labels(*S);
- }
-
- Root_Window = new NCursesWindow(::stdscr);
- init(bColors);
-
- if (ts>0)
- title();
- if (fmt!=Soft_Label_Key_Set::None) {
- push(*S);
- }
-
- return run();
-}
-
-NCursesApplication::NCursesApplication(bool bColors) {
- b_Colors = bColors;
- if (theApp)
- THROW(new NCursesException("Application object already created."));
- else
- theApp = this;
-}
diff --git a/ncurses-5.3/c++/cursesapp.h b/ncurses-5.3/c++/cursesapp.h
deleted file mode 100644
index 3f63f0c..0000000
--- a/ncurses-5.3/c++/cursesapp.h
+++ /dev/null
@@ -1,164 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef NCURSES_CURSESAPP_H_incl
-#define NCURSES_CURSESAPP_H_incl
-
-#include <cursslk.h>
-
-class NCURSES_IMPEXP NCursesApplication {
-public:
- typedef struct _slk_link { // This structure is used to maintain
- struct _slk_link* prev; // a stack of SLKs
- Soft_Label_Key_Set* SLKs;
- } SLK_Link;
-private:
- static int rinit(NCursesWindow& w); // Internal Init function for title
- static NCursesApplication* theApp; // Global ref. to the application
-
- static SLK_Link* slk_stack;
-
-protected:
- static NCursesWindow* titleWindow; // The Title Window (if any)
-
- bool b_Colors; // Is this a color application?
- NCursesWindow* Root_Window; // This is the stdscr equiv.
-
- // Initialization of attributes;
- // Rewrite this in your derived class if you prefer other settings
- virtual void init(bool bColors);
-
- // The number of lines for the title window. Default is no title window
- // You may rewrite this in your derived class
- virtual int titlesize() const {
- return 0;
- }
-
- // This method is called to put something into the title window initially
- // You may rewrite this in your derived class
- virtual void title() {
- }
-
- // The layout used for the Soft Label Keys. Default is to have no SLKs.
- // You may rewrite this in your derived class
- virtual Soft_Label_Key_Set::Label_Layout useSLKs() const {
- return Soft_Label_Key_Set::None;
- }
-
- // This method is called to initialize the SLKs. Default is nothing.
- // You may rewrite this in your derived class
- virtual void init_labels(Soft_Label_Key_Set& S) const {
- }
-
- // Your derived class must implement this method. The return value must
- // be the exit value of your application.
- virtual int run() = 0;
-
-
- // The constructor is protected, so you may use it in your derived
- // class constructor. The argument tells whether or not you want colors.
- NCursesApplication(bool wantColors = FALSE);
-
-public:
- virtual ~NCursesApplication();
-
- // Get a pointer to the current application object
- static NCursesApplication* getApplication() {
- return theApp;
- }
-
- // This method runs the application and returns its exit value
- int operator()(void);
-
- // Process the commandline arguments. The default implementation simply
- // ignores them. Your derived class may rewrite this.
- virtual void handleArgs(int argc, char* argv[]) {
- }
-
- // Does this application use colors?
- inline bool useColors() const {
- return b_Colors;
- }
-
- // Push the Key Set S onto the SLK Stack. S then becomes the current set
- // of Soft Labelled Keys.
- void push(Soft_Label_Key_Set& S);
-
- // Throw away the current set of SLKs and make the previous one the
- // new current set.
- bool pop();
-
- // Retrieve the current set of Soft Labelled Keys.
- Soft_Label_Key_Set* top() const;
-
- // Attributes to use for menu and forms foregrounds
- virtual chtype foregrounds() const {
- return b_Colors ? COLOR_PAIR(1) : A_BOLD;
- }
-
- // Attributes to use for menu and forms backgrounds
- virtual chtype backgrounds() const {
- return b_Colors ? COLOR_PAIR(2) : A_NORMAL;
- }
-
- // Attributes to use for inactive (menu) elements
- virtual chtype inactives() const {
- return b_Colors ? (COLOR_PAIR(3)|A_DIM) : A_DIM;
- }
-
- // Attributes to use for (form) labels and SLKs
- virtual chtype labels() const {
- return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
- }
-
- // Attributes to use for form backgrounds
- virtual chtype dialog_backgrounds() const {
- return b_Colors ? COLOR_PAIR(4) : A_NORMAL;
- }
-
- // Attributes to use as default for (form) window backgrounds
- virtual chtype window_backgrounds() const {
- return b_Colors ? COLOR_PAIR(5) : A_NORMAL;
- }
-
- // Attributes to use for the title window
- virtual chtype screen_titles() const {
- return b_Colors ? COLOR_PAIR(6) : A_BOLD;
- }
-
-};
-
-#endif // NCURSES_CURSESAPP_H_incl
diff --git a/ncurses-5.3/c++/cursesf.cc b/ncurses-5.3/c++/cursesf.cc
deleted file mode 100644
index 210cc1c..0000000
--- a/ncurses-5.3/c++/cursesf.cc
+++ /dev/null
@@ -1,427 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "internal.h"
-#include "cursesf.h"
-#include "cursesapp.h"
-
-MODULE_ID("$Id$")
-
-NCursesFormField::~NCursesFormField () {
- if (field)
- OnError(::free_field (field));
-}
-
-/* Construct a FIELD* array from an array of NCursesFormField
- * objects.
- */
-FIELD**
-NCursesForm::mapFields(NCursesFormField* nfields[]) {
- int fieldCount = 0,lcv;
- FIELD** old_fields;
-
- assert(nfields != 0);
-
- for (lcv=0; nfields[lcv]->field; ++lcv)
- ++fieldCount;
-
- FIELD** fields = new FIELD*[fieldCount + 1];
-
- for (lcv=0;nfields[lcv]->field;++lcv) {
- fields[lcv] = nfields[lcv]->field;
- }
- fields[lcv] = NULL;
-
- my_fields = nfields;
-
- if (form && (old_fields = ::form_fields(form))) {
- ::set_form_fields(form,(FIELD**)0);
- delete[] old_fields;
- }
- return fields;
-}
-
-void NCursesForm::setDefaultAttributes() {
- NCursesApplication* S = NCursesApplication::getApplication();
-
- int n = count();
- if (n > 0) {
- for(int i=0; i<n; i++) {
- NCursesFormField* f = (*this)[i];
- if ((f->options() & (O_EDIT|O_ACTIVE))==(O_EDIT|O_ACTIVE)) {
- if (S) {
- f->set_foreground(S->foregrounds());
- f->set_background(S->backgrounds());
- }
- f->set_pad_character('_');
- }
- else {
- if (S)
- f->set_background(S->labels());
- }
- }
- }
-
- if (S) {
- bkgd(' '|S->dialog_backgrounds());
- if (sub)
- sub->bkgd(' '|S->dialog_backgrounds());
- }
-}
-
-void
-NCursesForm::InitForm(NCursesFormField* nfields[],
- bool with_frame,
- bool autoDelete_Fields) {
- int mrows, mcols;
-
- keypad(TRUE);
- meta(TRUE);
-
- b_framed = with_frame;
- b_autoDelete = autoDelete_Fields;
-
- form = (FORM*)0;
- 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);
-
- ::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);
-
- if (with_frame) {
- if ((mrows > height()-2) || (mcols > width()-2))
- OnError(E_NO_ROOM);
- sub = new NCursesWindow(*this,mrows,mcols,1,1,'r');
- ::set_form_sub(form, sub->w);
- b_sub_owner = TRUE;
- }
- else {
- sub = (NCursesWindow*)0;
- b_sub_owner = FALSE;
- }
- options_on(O_NL_OVERLOAD);
- setDefaultAttributes();
-}
-
-NCursesForm::~NCursesForm() {
- UserHook* hook = (UserHook*)::form_userptr(form);
- delete hook;
- if (b_sub_owner) {
- delete sub;
- ::set_form_sub(form,(WINDOW *)0);
- }
- if (form) {
- FIELD** fields = ::form_fields(form);
- int cnt = count();
-
- OnError(::set_form_fields(form,(FIELD**)0));
-
- if (b_autoDelete) {
- if (cnt>0) {
- for (int i=0; i <= cnt; i++)
- delete my_fields[i];
- }
- delete[] my_fields;
- }
-
- ::free_form(form);
- // It's essential to do this after free_form()
- delete[] fields;
- }
-}
-
-void
-NCursesForm::setSubWindow(NCursesWindow& nsub) {
- if (!isDescendant(nsub))
- OnError(E_SYSTEM_ERROR);
- else {
- if (b_sub_owner)
- delete sub;
- sub = &nsub;
- ::set_form_sub(form,sub->w);
- }
-}
-
-/* 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
- * implementing a virtual method in a derived class
- */
-void
-NCursesForm::frm_init(FORM *f) {
- getHook(f)->On_Form_Init();
-}
-
-void
-NCursesForm::frm_term(FORM *f) {
- getHook(f)->On_Form_Termination();
-}
-
-void
-NCursesForm::fld_init(FORM *f) {
- NCursesForm* F = getHook(f);
- F->On_Field_Init (*(F->current_field ()));
-}
-
-void
-NCursesForm::fld_term(FORM *f) {
- NCursesForm* F = getHook(f);
- F->On_Field_Termination (*(F->current_field ()));
-}
-
-void
-NCursesForm::On_Form_Init() {
-}
-
-void
-NCursesForm::On_Form_Termination() {
-}
-
-void
-NCursesForm::On_Field_Init(NCursesFormField& field) {
-}
-
-void
-NCursesForm::On_Field_Termination(NCursesFormField& field) {
-}
-
-// call the form driver and do basic error checking.
-int
-NCursesForm::driver (int c) {
- int res = ::form_driver (form, c);
- switch (res) {
- case E_OK:
- case E_REQUEST_DENIED:
- case E_INVALID_FIELD:
- case E_UNKNOWN_COMMAND:
- break;
- default:
- OnError (res);
- }
- return (res);
-}
-
-void NCursesForm::On_Request_Denied(int c) const {
- ::beep();
-}
-
-void NCursesForm::On_Invalid_Field(int c) const {
- ::beep();
-}
-
-void NCursesForm::On_Unknown_Command(int c) const {
- ::beep();
-}
-
-static const int CMD_QUIT = MAX_COMMAND + 1;
-
-NCursesFormField*
-NCursesForm::operator()(void) {
- int drvCmnd;
- int err;
- int c;
-
- post();
- show();
- refresh();
-
- while (((drvCmnd = virtualize((c=getKey()))) != CMD_QUIT)) {
- switch((err=driver(drvCmnd))) {
- case E_REQUEST_DENIED:
- On_Request_Denied(c);
- break;
- case E_INVALID_FIELD:
- On_Invalid_Field(c);
- break;
- case E_UNKNOWN_COMMAND:
- On_Unknown_Command(c);
- break;
- case E_OK:
- break;
- default:
- OnError(err);
- }
- }
-
- unpost();
- hide();
- refresh();
- return my_fields[::field_index (::current_field (form))];
-}
-
-// Provide a default key virtualization. Translate the keyboard
-// code c into a form request code.
-// The default implementation provides a hopefully straightforward
-// mapping for the most common keystrokes and form requests.
-int
-NCursesForm::virtualize(int c) {
- switch(c) {
-
- case KEY_HOME : return(REQ_FIRST_FIELD);
- case KEY_END : return(REQ_LAST_FIELD);
-
- case KEY_DOWN : return(REQ_DOWN_CHAR);
- case KEY_UP : return(REQ_UP_CHAR);
- case KEY_LEFT : return(REQ_PREV_CHAR);
- case KEY_RIGHT : return(REQ_NEXT_CHAR);
-
- case KEY_NPAGE : return(REQ_NEXT_PAGE);
- case KEY_PPAGE : return(REQ_PREV_PAGE);
-
- case KEY_BACKSPACE : return(REQ_DEL_PREV);
- case KEY_ENTER : return(REQ_NEW_LINE);
- case KEY_CLEAR : return(REQ_CLR_FIELD);
-
- case CTRL('X') : return(CMD_QUIT); // eXit
-
- 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('R') : return(REQ_RIGHT_FIELD); // Right
- case CTRL('U') : return(REQ_UP_FIELD); // Up
- case CTRL('D') : return(REQ_DOWN_FIELD); // Down
-
- case CTRL('W') : return(REQ_NEXT_WORD);
- case CTRL('T') : return(REQ_PREV_WORD);
-
- case CTRL('A') : return(REQ_BEG_FIELD);
- case CTRL('E') : return(REQ_END_FIELD);
-
- case CTRL('I') : return(REQ_INS_CHAR);
- case CTRL('M') :
- case CTRL('J') : return(REQ_NEW_LINE);
- case CTRL('O') : return(REQ_INS_LINE);
- case CTRL('V') : return(REQ_DEL_CHAR);
- case CTRL('H') : return(REQ_DEL_PREV);
- case CTRL('Y') : return(REQ_DEL_LINE);
- case CTRL('G') : return(REQ_DEL_WORD);
- case CTRL('K') : return(REQ_CLR_EOF);
-
- case CTRL('N') : return(REQ_NEXT_CHOICE);
- case CTRL('P') : return(REQ_PREV_CHOICE);
-
- default:
- return(c);
- }
-}
-//
-// -------------------------------------------------------------------------
-// User Defined Fieldtypes
-// -------------------------------------------------------------------------
-//
-bool UserDefinedFieldType::fcheck(FIELD *f, const void *u) {
- NCursesFormField* F = (NCursesFormField*)u;
- assert(F != 0);
- UserDefinedFieldType* udf = (UserDefinedFieldType*)(F->fieldtype());
- assert(udf != 0);
- return udf->field_check(*F);
-}
-
-bool UserDefinedFieldType::ccheck(int c, const void *u) {
- NCursesFormField* F = (NCursesFormField*)u;
- assert(F != 0);
- UserDefinedFieldType* udf =
- (UserDefinedFieldType*)(F->fieldtype());
- assert(udf != 0);
- return udf->char_check(c);
-}
-
-void* UserDefinedFieldType::makearg(va_list* va) {
- return va_arg(*va,NCursesFormField*);
-}
-
-FIELDTYPE* UserDefinedFieldType::generic_fieldtype =
- ::new_fieldtype(UserDefinedFieldType::fcheck,
- UserDefinedFieldType::ccheck);
-
-FIELDTYPE* UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice =
- ::new_fieldtype(UserDefinedFieldType::fcheck,
- UserDefinedFieldType::ccheck);
-
-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*)(F->fieldtype());
- assert(udf != 0);
- return udf->next(*F);
-}
-
-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*)(F->fieldtype());
- assert(udf != 0);
- return udf->previous(*F);
-}
-
-class UDF_Init {
-private:
- int code;
- static UDF_Init* I;
-public:
- UDF_Init() {
- code = ::set_fieldtype_arg(UserDefinedFieldType::generic_fieldtype,
- UserDefinedFieldType::makearg,
- NULL,
- NULL);
- if (code==E_OK)
- code = ::set_fieldtype_arg
- (UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
- UserDefinedFieldType::makearg,
- NULL,
- NULL);
- if (code==E_OK)
- code = ::set_fieldtype_choice
- (UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
- UserDefinedFieldType_With_Choice::next_choice,
- UserDefinedFieldType_With_Choice::prev_choice);
- }
-};
-
-UDF_Init* UDF_Init::I = new UDF_Init();
-
diff --git a/ncurses-5.3/c++/cursesf.h b/ncurses-5.3/c++/cursesf.h
deleted file mode 100644
index 2c72740..0000000
--- a/ncurses-5.3/c++/cursesf.h
+++ /dev/null
@@ -1,825 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef NCURSES_CURSESF_H_incl
-#define NCURSES_CURSESF_H_incl 1
-
-#include <cursesp.h>
-#include <string.h>
-
-extern "C" {
-# include <form.h>
-}
-//
-// -------------------------------------------------------------------------
-// The abstract base class for buitin and user defined Fieldtypes.
-// -------------------------------------------------------------------------
-//
-class NCURSES_IMPEXP NCursesFormField; // forward declaration
-
-// Class to represent builtin field types as well as C++ written new
-// fieldtypes (see classes UserDefineFieldType...
-class NCURSES_IMPEXP NCursesFieldType {
- friend class NCursesFormField;
-
-protected:
- FIELDTYPE* fieldtype;
-
- inline void OnError(int err) const THROWS(NCursesFormException) {
- if (err!=E_OK)
- THROW(new NCursesFormException (err));
- }
-
- NCursesFieldType(FIELDTYPE *f) : fieldtype(f) {
- }
-
- virtual ~NCursesFieldType() {}
-
- // Set the fields f fieldtype to this one.
- virtual void set(NCursesFormField& f) = 0;
-
-public:
- NCursesFieldType() : fieldtype((FIELDTYPE*)0) {
- }
-};
-
-//
-// -------------------------------------------------------------------------
-// The class representing a forms field, wrapping the lowlevel FIELD struct
-// -------------------------------------------------------------------------
-//
-class NCURSES_IMPEXP NCursesFormField {
- friend class NCursesForm;
-
-protected:
- FIELD *field; // lowlevel structure
- NCursesFieldType* ftype; // Associated field type
-
- // Error handler
- inline void OnError (int err) const THROWS(NCursesFormException) {
- if (err != E_OK)
- THROW(new NCursesFormException (err));
- }
-
-public:
- // Create a 'Null' field. Can be used to delimit a field list
- NCursesFormField()
- : field((FIELD*)0), ftype((NCursesFieldType*)0) {
- }
-
- // Create a new field
- NCursesFormField (int rows,
- int cols,
- int first_row = 0,
- int first_col = 0,
- int offscreen_rows = 0,
- int additional_buffers = 0)
- : ftype((NCursesFieldType*)0) {
- field = ::new_field(rows,cols,first_row,first_col,
- offscreen_rows, additional_buffers);
- if (!field)
- OnError(errno);
- }
-
- virtual ~NCursesFormField ();
-
- // Duplicate the field at a new position
- inline NCursesFormField* dup(int first_row, int first_col) {
- NCursesFormField* f = new NCursesFormField();
- if (!f)
- OnError(E_SYSTEM_ERROR);
- else {
- f->ftype = ftype;
- f->field = ::dup_field(field,first_row,first_col);
- if (!f->field)
- OnError(errno);
- }
- return f;
- }
-
- // Link the field to a new location
- inline NCursesFormField* link(int first_row, int first_col) {
- NCursesFormField* f = new NCursesFormField();
- if (!f)
- OnError(E_SYSTEM_ERROR);
- else {
- f->ftype = ftype;
- f->field = ::link_field(field,first_row,first_col);
- if (!f->field)
- OnError(errno);
- }
- return f;
- }
-
- // Get the lowlevel field representation
- inline FIELD* get_field() const {
- return field;
- }
-
- // Retrieve info about the field
- inline void info(int& rows, int& cols,
- int& first_row, int& first_col,
- int& offscreen_rows, int& additional_buffers) const {
- OnError(::field_info(field, &rows, &cols,
- &first_row, &first_col,
- &offscreen_rows, &additional_buffers));
- }
-
- // Retrieve info about the fields dynamic properties.
- inline void dynamic_info(int& dynamic_rows, int& dynamic_cols,
- int& max_growth) const {
- OnError(::dynamic_field_info(field, &dynamic_rows, &dynamic_cols,
- &max_growth));
- }
-
- // For a dynamic field you may set the maximum growth limit.
- // A zero means unlimited growth.
- inline void set_maximum_growth(int growth = 0) {
- OnError(::set_max_field(field,growth));
- }
-
- // Move the field to a new position
- inline void move(int row, int col) {
- OnError(::move_field(field,row,col));
- }
-
- // Mark the field to start a new page
- inline void new_page(bool pageFlag = FALSE) {
- OnError(::set_new_page(field,pageFlag));
- }
-
- // Retrieve whether or not the field starts a new page.
- inline bool is_new_page() const {
- return ::new_page(field);
- }
-
- // Set the justification for the field
- inline void set_justification(int just) {
- OnError(::set_field_just(field,just));
- }
-
- // Retrieve the fields justification
- inline int justification() const {
- return ::field_just(field);
- }
- // Set the foreground attribute for the field
- inline void set_foreground(chtype fore) {
- OnError(::set_field_fore(field,fore));
- }
-
- // Retrieve the fields foreground attribute
- inline chtype fore() const {
- return ::field_fore(field);
- }
-
- // Set the background attribute for the field
- inline void set_background(chtype back) {
- OnError(::set_field_back(field,back));
- }
-
- // Retrieve the fields background attribute
- inline chtype back() const {
- return ::field_back(field);
- }
-
- // Set the padding character for the field
- inline void set_pad_character(int pad) {
- OnError(::set_field_pad(field,pad));
- }
-
- // Retrieve the fields padding character
- inline int pad() const {
- return ::field_pad(field);
- }
-
- // Switch on the fields options
- inline void options_on (Field_Options options) {
- OnError (::field_opts_on (field, options));
- }
-
- // Switch off the fields options
- inline void options_off (Field_Options options) {
- OnError (::field_opts_off (field, options));
- }
-
- // Retrieve the fields options
- inline Field_Options options () const {
- return ::field_opts (field);
- }
-
- // Set the fields options
- inline void set_options (Field_Options options) {
- OnError (::set_field_opts (field, options));
- }
-
- // Mark the field as changed
- inline void set_changed(bool changeFlag = TRUE) {
- OnError(::set_field_status(field,changeFlag));
- }
-
- // Test whether or not the field is marked as changed
- inline bool changed() const {
- return ::field_status(field);
- }
-
- // Return the index of the field in the field array of a form
- // or -1 if the field is not associated to a form
- inline int (index)() const {
- return ::field_index(field);
- }
-
- // Store a value in a fields buffer. The default buffer is nr. 0
- inline void set_value(const char *val, int buffer = 0) {
- OnError(::set_field_buffer(field,buffer,val));
- }
-
- // 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);
- }
-
- // Set the validation type of the field.
- inline void set_fieldtype(NCursesFieldType& f) {
- ftype = &f;
- f.set(*this); // A good friend may do that...
- }
-
- // Retrieve the validation type of the field.
- inline NCursesFieldType* fieldtype() const {
- return ftype;
- }
-
-};
-
-//
-// -------------------------------------------------------------------------
-// The class representing a form, wrapping the lowlevel FORM struct
-// -------------------------------------------------------------------------
-//
-class NCURSES_IMPEXP NCursesForm : public NCursesPanel {
-protected:
- FORM* form; // the lowlevel structure
-
-private:
- NCursesWindow* sub; // the subwindow object
- bool b_sub_owner; // is this our own subwindow?
- bool b_framed; // has the form a border?
- bool b_autoDelete; // Delete fields when deleting form?
-
- NCursesFormField** my_fields; // The array of fields for this form
-
- // This structure is used for the form's user data field to link the
- // FORM* to the C++ object and to provide extra space for a user pointer.
- typedef struct {
- void* m_user; // the pointer for the user's data
- const NCursesForm* m_back; // backward pointer to C++ object
- const FORM* m_owner;
- } UserHook;
-
- // Get the backward pointer to the C++ object from a FORM
- static inline NCursesForm* getHook(const FORM *f) {
- UserHook* hook = (UserHook*)::form_userptr(f);
- assert(hook != 0 && hook->m_owner==f);
- return (NCursesForm*)(hook->m_back);
- }
-
- // This are the built-in hook functions in this C++ binding. In C++ we use
- // virtual member functions (see below On_..._Init and On_..._Termination)
- // to provide this functionality in an object oriented manner.
- static void frm_init(FORM *);
- static void frm_term(FORM *);
- static void fld_init(FORM *);
- static void fld_term(FORM *);
-
- // Calculate FIELD* array for the menu
- FIELD** mapFields(NCursesFormField* nfields[]);
-
-protected:
- // internal routines
- inline void set_user(void *user) {
- UserHook* uptr = (UserHook*)::form_userptr (form);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);
- uptr->m_user = user;
- }
-
- inline void *get_user() {
- UserHook* uptr = (UserHook*)::form_userptr (form);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);
- return uptr->m_user;
- }
-
- void InitForm (NCursesFormField* Fields[],
- bool with_frame,
- bool autoDeleteFields);
-
- inline void OnError (int err) const THROWS(NCursesFormException) {
- if (err != E_OK)
- THROW(new NCursesFormException (err));
- }
-
- // this wraps the form_driver call.
- virtual int driver (int c) ;
-
- // 'Internal' constructor, builds an object without association to a
- // field array.
- NCursesForm( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0)
- : NCursesPanel(lines,cols,begin_y,begin_x),
- form ((FORM*)0) {
- }
-
-public:
- // Create form for the default panel.
- NCursesForm (NCursesFormField* Fields[],
- bool with_frame=FALSE, // reserve space for a frame?
- bool autoDelete_Fields=FALSE) // do automatic cleanup?
- : NCursesPanel() {
- InitForm(Fields, with_frame, autoDelete_Fields);
- }
-
- // Create a form in a panel with the given position and size.
- NCursesForm (NCursesFormField* Fields[],
- int lines,
- int cols,
- int begin_y,
- int begin_x,
- bool with_frame=FALSE, // reserve space for a frame?
- bool autoDelete_Fields=FALSE) // do automatic cleanup?
- : NCursesPanel(lines, cols, begin_y, begin_x) {
- InitForm(Fields, with_frame, autoDelete_Fields);
- }
-
- virtual ~NCursesForm();
-
- // Set the default attributes for the form
- virtual void setDefaultAttributes();
-
- // Retrieve current field of the form.
- inline NCursesFormField* current_field() const {
- return my_fields[::field_index(::current_field(form))];
- }
-
- // Set the forms subwindow
- void setSubWindow(NCursesWindow& sub);
-
- // Set these fields for the form
- inline void setFields(NCursesFormField* Fields[]) {
- OnError(::set_form_fields(form,mapFields(Fields)));
- }
-
- // Remove the form from the screen
- inline void unpost (void) {
- OnError (::unpost_form (form));
- }
-
- // Post the form to the screen if flag is true, unpost it otherwise
- inline void post(bool flag = TRUE) {
- OnError (flag ? ::post_form(form) : ::unpost_form (form));
- }
-
- // Decorations
- inline void frame(const char *title=NULL, const char* btitle=NULL) {
- if (b_framed)
- NCursesPanel::frame(title,btitle);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- inline void boldframe(const char *title=NULL, const char* btitle=NULL) {
- if (b_framed)
- NCursesPanel::boldframe(title,btitle);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- inline void label(const char *topLabel, const char *bottomLabel) {
- if (b_framed)
- NCursesPanel::label(topLabel,bottomLabel);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- // -----
- // Hooks
- // -----
-
- // Called after the form gets repositioned in its window.
- // This is especially true if the form is posted.
- virtual void On_Form_Init();
-
- // Called before the form gets repositioned in its window.
- // This is especially true if the form is unposted.
- virtual void On_Form_Termination();
-
- // Called after the field became the current field
- virtual void On_Field_Init(NCursesFormField& field);
-
- // Called before this field is left as current field.
- virtual void On_Field_Termination(NCursesFormField& field);
-
- // Calculate required window size for the form.
- void scale(int& rows, int& cols) const {
- OnError(::scale_form(form,&rows,&cols));
- }
-
- // Retrieve number of fields in the form.
- int count() const {
- return ::field_count(form);
- }
-
- // Make the page the current page of the form.
- void set_page(int page) {
- OnError(::set_form_page(form,page));
- }
-
- // Retrieve current page number
- int page() const {
- return ::form_page(form);
- }
-
- // Switch on the forms options
- inline void options_on (Form_Options options) {
- OnError (::form_opts_on (form, options));
- }
-
- // Switch off the forms options
- inline void options_off (Form_Options options) {
- OnError (::form_opts_off (form, options));
- }
-
- // Retrieve the forms options
- inline Form_Options options () const {
- return ::form_opts (form);
- }
-
- // Set the forms options
- inline void set_options (Form_Options options) {
- OnError (::set_form_opts (form, options));
- }
-
- // Are there more data in the current field after the data shown
- inline bool data_ahead() const {
- return ::data_ahead(form);
- }
-
- // Are there more data in the current field before the data shown
- inline bool data_behind() const {
- return ::data_behind(form);
- }
-
- // Position the cursor to the current field
- inline void position_cursor () {
- OnError (::pos_form_cursor (form));
- }
- // Set the current field
- inline void set_current(NCursesFormField& F) {
- OnError (::set_current_field(form, F.field));
- }
-
- // Provide a default key virtualization. Translate the keyboard
- // code c into a form request code.
- // The default implementation provides a hopefully straightforward
- // mapping for the most common keystrokes and form requests.
- virtual int virtualize(int c);
-
- // Operators
- inline NCursesFormField* operator[](int i) const {
- if ( (i < 0) || (i >= ::field_count (form)) )
- OnError (E_BAD_ARGUMENT);
- return my_fields[i];
- }
-
- // Perform the menu's operation
- // Return the field where you left the form.
- virtual NCursesFormField* operator()(void);
-
- // Exception handlers. The default is a Beep.
- virtual void On_Request_Denied(int c) const;
- virtual void On_Invalid_Field(int c) const;
- virtual void On_Unknown_Command(int c) const;
-
-};
-
-//
-// -------------------------------------------------------------------------
-// This is the typical C++ typesafe way to allow to attach
-// user data to a field of a form. Its assumed that the user
-// data belongs to some class T. Use T as template argument
-// to create a UserField.
-// -------------------------------------------------------------------------
-template<class T> class NCURSES_IMPEXP NCursesUserField : public NCursesFormField
-{
-public:
- NCursesUserField (int rows,
- int cols,
- int first_row = 0,
- int first_col = 0,
- const T* p_UserData = (T*)0,
- int offscreen_rows = 0,
- int additional_buffers = 0)
- : NCursesFormField (rows, cols,
- first_row, first_col,
- offscreen_rows, additional_buffers) {
- if (field)
- OnError(::set_field_userptr(field,(void *)p_UserData));
- }
-
- virtual ~NCursesUserField() {};
-
- inline const T* UserData (void) const {
- return (const T*)::field_userptr (field);
- }
-
- inline virtual void setUserData(const T* p_UserData) {
- if (field)
- OnError (::set_field_userptr (field, (void *)p_UserData));
- }
-};
-//
-// -------------------------------------------------------------------------
-// The same mechanism is used to attach user data to a form
-// -------------------------------------------------------------------------
-//
-template<class T> class NCURSES_IMPEXP NCursesUserForm : public NCursesForm
-{
-protected:
- // 'Internal' constructor, builds an object without association to a
- // field array.
- NCursesUserForm( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesForm(lines,cols,begin_y,begin_x) {
- if (form)
- set_user ((void *)p_UserData);
- }
-
-public:
- NCursesUserForm (NCursesFormField Fields[],
- bool with_frame=FALSE,
- bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, with_frame, autoDelete_Fields) {
- };
-
- NCursesUserForm (NCursesFormField Fields[],
- const T* p_UserData = (T*)0,
- bool with_frame=FALSE,
- bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, with_frame, autoDelete_Fields) {
- if (form)
- set_user ((void *)p_UserData);
- };
-
- NCursesUserForm (NCursesFormField Fields[],
- int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0,
- bool with_frame=FALSE,
- bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, lines, cols, begin_y, begin_x,
- with_frame, autoDelete_Fields) {
- if (form)
- set_user ((void *)p_UserData);
- };
-
- virtual ~NCursesUserForm() {
- };
-
- inline T* UserData (void) const {
- return (T*)get_user ();
- };
-
- inline virtual void setUserData (const T* p_UserData) {
- if (form)
- set_user ((void *)p_UserData);
- }
-
-};
-//
-// -------------------------------------------------------------------------
-// Builtin Fieldtypes
-// -------------------------------------------------------------------------
-//
-class NCURSES_IMPEXP Alpha_Field : public NCursesFieldType {
-private:
- int min_field_width;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,min_field_width));
- }
-
-public:
- Alpha_Field(int width)
- : NCursesFieldType(TYPE_ALPHA),
- min_field_width(width) {
- }
-};
-
-class NCURSES_IMPEXP Alphanumeric_Field : public NCursesFieldType {
-private:
- int min_field_width;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,min_field_width));
- }
-
-public:
- Alphanumeric_Field(int width)
- : NCursesFieldType(TYPE_ALNUM),
- min_field_width(width) {
- }
-};
-
-class NCURSES_IMPEXP Integer_Field : public NCursesFieldType {
-private:
- int precision;
- long lower_limit, upper_limit;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,
- precision,lower_limit,upper_limit));
- }
-
-public:
- Integer_Field(int prec, long low=0L, long high=0L)
- : NCursesFieldType(TYPE_INTEGER),
- precision(prec), lower_limit(low), upper_limit(high) {
- }
-};
-
-class NCURSES_IMPEXP Numeric_Field : public NCursesFieldType {
-private:
- int precision;
- double lower_limit, upper_limit;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,
- precision,lower_limit,upper_limit));
- }
-
-public:
- Numeric_Field(int prec, double low=0.0, double high=0.0)
- : NCursesFieldType(TYPE_NUMERIC),
- precision(prec), lower_limit(low), upper_limit(high) {
- }
-};
-
-class NCURSES_IMPEXP Regular_Expression_Field : public NCursesFieldType {
-private:
- char* regex;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,regex));
- }
-
-public:
- Regular_Expression_Field(const char *expr)
- : NCursesFieldType(TYPE_REGEXP) {
- regex = new char[1 + ::strlen(expr)];
- (::strcpy)(regex,expr);
- }
-
- ~Regular_Expression_Field() {
- delete[] regex;
- }
-};
-
-class NCURSES_IMPEXP Enumeration_Field : public NCursesFieldType {
-private:
- char** list;
- int case_sensitive;
- int non_unique_matches;
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,
- list,case_sensitive,non_unique_matches));
- }
-public:
- Enumeration_Field(char* enums[],
- bool case_sens=FALSE,
- bool non_unique=FALSE)
- : NCursesFieldType(TYPE_ENUM),
- list(enums),
- case_sensitive(case_sens?-1:0),
- non_unique_matches(non_unique?-1:0) {
- }
-};
-
-class NCURSES_IMPEXP IPV4_Address_Field : public NCursesFieldType {
-private:
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype));
- }
-
-public:
- IPV4_Address_Field() : NCursesFieldType(TYPE_IPV4) {
- }
-};
-//
-// -------------------------------------------------------------------------
-// Abstract base class for User-Defined Fieldtypes
-// -------------------------------------------------------------------------
-//
-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
- // FIELDTYPE* element.
- static FIELDTYPE* generic_fieldtype;
-
-protected:
- // This are the functions required by the low level libforms functions
- // to construct a fieldtype.
- static bool fcheck(FIELD *, const void*);
- static bool ccheck(int c, const void *);
- static void* makearg(va_list*);
-
- void set(NCursesFormField& f) {
- OnError(::set_field_type(f.get_field(),fieldtype,&f));
- }
-
-protected:
- // Redefine this function to do a field validation. The argument
- // is a reference to the field you should validate.
- virtual bool field_check(NCursesFormField& f) = 0;
-
- // Redefine this function to do a character validation. The argument
- // is the character to be validated.
- virtual bool char_check (int c) = 0;
-
-public:
- UserDefinedFieldType() : NCursesFieldType(generic_fieldtype) {
- }
-};
-//
-// -------------------------------------------------------------------------
-// Abstract base class for User-Defined Fieldtypes with Choice functions
-// -------------------------------------------------------------------------
-//
-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
- // generic lowlevel FIELDTYPE* element.
- static FIELDTYPE* generic_fieldtype_with_choice;
-
- // This are the functions required by the low level libforms functions
- // to construct a fieldtype with choice functions.
- static bool next_choice(FIELD*, const void *);
- static bool prev_choice(FIELD*, const void *);
-
-protected:
- // Redefine this function to do the retrieval of the next choice value.
- // The argument is a reference to the field tobe examined.
- virtual bool next (NCursesFormField& f) = 0;
-
- // Redefine this function to do the retrieval of the previous choice value.
- // The argument is a reference to the field tobe examined.
- virtual bool previous(NCursesFormField& f) = 0;
-
-public:
- UserDefinedFieldType_With_Choice() {
- fieldtype = generic_fieldtype_with_choice;
- }
-};
-
-#endif // NCURSES_CURSESF_H_incl
-
diff --git a/ncurses-5.3/c++/cursesm.cc b/ncurses-5.3/c++/cursesm.cc
deleted file mode 100644
index ebf6ca8..0000000
--- a/ncurses-5.3/c++/cursesm.cc
+++ /dev/null
@@ -1,383 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "internal.h"
-#include "cursesm.h"
-#include "cursesapp.h"
-
-MODULE_ID("$Id$")
-
-NCursesMenuItem::~NCursesMenuItem() {
- if (item)
- OnError(::free_item(item));
-}
-
-bool
-NCursesMenuItem::action() {
- return FALSE;
-};
-
-NCursesMenuCallbackItem::~NCursesMenuCallbackItem() {
-}
-
-bool
-NCursesMenuCallbackItem::action() {
- if (p_fct)
- return p_fct (*this);
- else
- return FALSE;
-}
-
-/* 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
- * implementing a virtual method in a derived class
- */
-void
-NCursesMenu::mnu_init(MENU *m) {
- getHook(m)->On_Menu_Init();
-}
-
-void
-NCursesMenu::mnu_term(MENU *m) {
- getHook(m)->On_Menu_Termination();
-}
-
-void
-NCursesMenu::itm_init(MENU *m) {
- NCursesMenu* M = getHook(m);
- M->On_Item_Init (*(M->current_item ()));
-}
-
-void
-NCursesMenu::itm_term(MENU *m) {
- NCursesMenu* M = getHook(m);
- M->On_Item_Termination (*(M->current_item ()));
-}
-
-/* Construct an ITEM* array from an array of NCursesMenuItem
- * objects.
- */
-ITEM**
-NCursesMenu::mapItems(NCursesMenuItem* nitems[]) {
- int itemCount = 0,lcv;
-
- for (lcv=0; nitems[lcv]->item; ++lcv)
- ++itemCount;
-
- ITEM** items = new ITEM*[itemCount + 1];
-
- for (lcv=0;nitems[lcv]->item;++lcv) {
- items[lcv] = nitems[lcv]->item;
- }
- items[lcv] = NULL;
-
- my_items = nitems;
-
- if (menu)
- delete[] ::menu_items(menu);
- return items;
-}
-
-void
-NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
- bool with_frame,
- bool autoDelete_Items) {
- int mrows, mcols;
-
- keypad(TRUE);
- meta(TRUE);
-
- b_framed = with_frame;
- b_autoDelete = autoDelete_Items;
-
- menu = (MENU*)0;
- 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);
-
- ::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);
-
- if (with_frame) {
- if ((mrows > height()-2) || (mcols > width()-2))
- OnError(E_NO_ROOM);
- sub = new NCursesWindow(*this,mrows,mcols,1,1,'r');
- ::set_menu_sub(menu, sub->w);
- b_sub_owner = TRUE;
- }
- else {
- sub = (NCursesWindow*)0;
- b_sub_owner = FALSE;
- }
- setDefaultAttributes();
-}
-
-void
-NCursesMenu::setDefaultAttributes() {
- NCursesApplication* S = NCursesApplication::getApplication();
- if (S) {
- ::set_menu_fore(menu, S->foregrounds());
- ::set_menu_back(menu, S->backgrounds());
- ::set_menu_grey(menu, S->inactives());
- }
-}
-
-NCursesMenu::~NCursesMenu() {
- UserHook* hook = (UserHook*)::menu_userptr(menu);
- delete hook;
- if (b_sub_owner) {
- delete sub;
- ::set_menu_sub(menu,(WINDOW *)0);
- }
- if (menu) {
- ITEM** itms = ::menu_items(menu);
- int cnt = count();
-
- OnError(::set_menu_items(menu,(ITEM**)0));
-
- if (b_autoDelete) {
- if (cnt>0) {
- for (int i=0; i <= cnt; i++)
- delete my_items[i];
- }
- delete[] my_items;
- }
-
- ::free_menu(menu);
- // It's essential to do this after free_menu()
- delete[] itms;
- }
-}
-
-void
-NCursesMenu::setSubWindow(NCursesWindow& nsub) {
- if (!isDescendant(nsub))
- OnError(E_SYSTEM_ERROR);
- else {
- if (b_sub_owner)
- delete sub;
- sub = &nsub;
- ::set_menu_sub(menu,sub->w);
- }
-}
-
-bool
-NCursesMenu::set_pattern (const char *pat) {
- int res = ::set_menu_pattern (menu, pat);
- switch(res) {
- case E_OK:
- break;
- case E_NO_MATCH:
- return FALSE;
- default:
- OnError (res);
- }
- return TRUE;
-}
-
-// call the menu driver and do basic error checking.
-int
-NCursesMenu::driver (int c) {
- int res = ::menu_driver (menu, c);
- switch (res) {
- case E_OK:
- case E_REQUEST_DENIED:
- case E_NOT_SELECTABLE:
- case E_UNKNOWN_COMMAND:
- case E_NO_MATCH:
- break;
- default:
- OnError (res);
- }
- return (res);
-}
-
-static const int CMD_QUIT = MAX_COMMAND + 1;
-static const int CMD_ACTION = MAX_COMMAND + 2;
-//
-// -------------------------------------------------------------------------
-// Provide a default key virtualization. Translate the keyboard
-// code c into a menu request code.
-// The default implementation provides a hopefully straightforward
-// mapping for the most common keystrokes and menu requests.
-// -------------------------------------------------------------------------
-int
-NCursesMenu::virtualize(int c) {
- switch(c) {
- case CTRL('X') : return(CMD_QUIT); // eXit
-
- case KEY_DOWN : return(REQ_DOWN_ITEM);
- case CTRL('N') : return(REQ_NEXT_ITEM); // Next
- case KEY_UP : return(REQ_UP_ITEM);
- case CTRL('P') : return(REQ_PREV_ITEM); // Previous
-
- case CTRL('U') : return(REQ_SCR_ULINE); // Up
- case CTRL('D') : return(REQ_SCR_DLINE); // Down
- case CTRL('F') : return(REQ_SCR_DPAGE); // Forward
- case CTRL('B') : return(REQ_SCR_UPAGE); // Backward
-
- case CTRL('Y') : return(REQ_CLEAR_PATTERN);
- case CTRL('H') : return(REQ_BACK_PATTERN);
- case CTRL('A') : return(REQ_NEXT_MATCH);
- case CTRL('E') : return(REQ_PREV_MATCH);
- case CTRL('T') : return(REQ_TOGGLE_ITEM);
-
- case CTRL('J') :
- case CTRL('M') : return(CMD_ACTION);
-
- case KEY_HOME : return(REQ_FIRST_ITEM);
- case KEY_LEFT : return(REQ_LEFT_ITEM);
- case KEY_RIGHT : return(REQ_RIGHT_ITEM);
- case KEY_END : return(REQ_LAST_ITEM);
- case KEY_BACKSPACE : return(REQ_BACK_PATTERN);
- case KEY_NPAGE : return(REQ_SCR_DPAGE);
- case KEY_PPAGE : return(REQ_SCR_UPAGE);
-
- default:
- return(c);
- }
-}
-
-NCursesMenuItem*
-NCursesMenu::operator()(void) {
- int drvCmnd;
- int err;
- int c;
- bool b_action = FALSE;
-
- post();
- show();
- refresh();
-
- while (!b_action && ((drvCmnd = virtualize((c=getKey()))) != CMD_QUIT)) {
-
- switch((err=driver(drvCmnd))) {
- case E_REQUEST_DENIED:
- On_Request_Denied(c);
- break;
- case E_NOT_SELECTABLE:
- On_Not_Selectable(c);
- break;
- case E_UNKNOWN_COMMAND:
- if (drvCmnd == CMD_ACTION) {
- if (options() & O_ONEVALUE) {
- NCursesMenuItem* itm = current_item();
- assert(itm != 0);
- if (itm->options() & O_SELECTABLE)
- {
- b_action = itm->action();
- refresh();
- }
- else
- On_Not_Selectable(c);
- }
- else {
- int n = count();
- for(int i=0; i<n; i++) {
- NCursesMenuItem* itm = my_items[i];
- if (itm->value()) {
- b_action |= itm->action();
- refresh();
- }
- }
- }
- } else
- On_Unknown_Command(c);
- break;
- case E_NO_MATCH:
- On_No_Match(c);
- break;
- case E_OK:
- break;
- default:
- OnError(err);
- }
- }
-
- unpost();
- hide();
- refresh();
- if (options() & O_ONEVALUE)
- return my_items[::item_index (::current_item (menu))];
- else
- return NULL;
-}
-
-void
-NCursesMenu::On_Menu_Init() {
-}
-
-void
-NCursesMenu::On_Menu_Termination() {
-}
-
-void
-NCursesMenu::On_Item_Init(NCursesMenuItem& item) {
-}
-
-void
-NCursesMenu::On_Item_Termination(NCursesMenuItem& item) {
-}
-
-void
-NCursesMenu::On_Request_Denied(int c) const {
- ::beep();
-}
-
-void
-NCursesMenu::On_Not_Selectable(int c) const {
- ::beep();
-}
-
-void
-NCursesMenu::On_No_Match(int c) const {
- ::beep();
-}
-
-void
-NCursesMenu::On_Unknown_Command(int c) const {
- ::beep();
-}
diff --git a/ncurses-5.3/c++/cursesm.h b/ncurses-5.3/c++/cursesm.h
deleted file mode 100644
index 5d71051..0000000
--- a/ncurses-5.3/c++/cursesm.h
+++ /dev/null
@@ -1,593 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef NCURSES_CURSESM_H_incl
-#define NCURSES_CURSESM_H_incl 1
-
-#include <cursesp.h>
-
-extern "C" {
-# include <menu.h>
-}
-//
-// -------------------------------------------------------------------------
-// This wraps the ITEM type of <menu.h>
-// -------------------------------------------------------------------------
-//
-class NCURSES_IMPEXP NCursesMenuItem {
- friend class NCursesMenu;
-
-protected:
- ITEM *item;
-
- inline void OnError (int err) const THROWS(NCursesMenuException) {
- if (err != E_OK)
- THROW(new NCursesMenuException (err));
- }
-
-public:
- NCursesMenuItem (const char* p_name = NULL,
- const char* p_descript = NULL ) {
- item = p_name ? ::new_item (p_name, p_descript) : (ITEM*)0;
- if (p_name && !item)
- OnError (E_SYSTEM_ERROR);
- }
- // Create an item. If you pass both parameters as NULL, a delimiting
- // item is constructed which can be used to terminate a list of
- // NCursesMenu objects.
-
- virtual ~NCursesMenuItem ();
- // Release the items memory
-
- inline const char* name () const {
- return ::item_name (item);
- }
- // Name of the item
-
- inline const char* description () const {
- return ::item_description (item);
- }
- // Description of the item
-
- inline int (index) (void) const {
- return ::item_index (item);
- }
- // Index of the item in an item array (or -1)
-
- inline void options_on (Item_Options options) {
- OnError (::item_opts_on (item, options));
- }
- // Switch on the items options
-
- inline void options_off (Item_Options options) {
- OnError (::item_opts_off (item, options));
- }
- // Switch off the item's option
-
- inline Item_Options options () const {
- return ::item_opts (item);
- }
- // Retrieve the items options
-
- inline void set_options (Item_Options options) {
- OnError (::set_item_opts (item, options));
- }
- // Set the items options
-
- inline void set_value (bool f) {
- OnError (::set_item_value (item,f));
- }
- // Set/Reset the items selection state
-
- inline bool value () const {
- return ::item_value (item);
- }
- // Retrieve the items selection state
-
- inline bool visible () const {
- return ::item_visible (item);
- }
- // Retrieve visibility of the item
-
- virtual bool action();
- // Perform an action associated with this item; you may use this in an
- // user supplied driver for a menu; you may derive from this class and
- // overload action() to supply items with different actions.
- // If an action returns true, the menu will be exited. The default action
- // is to do nothing.
-};
-
-// Prototype for an items callback function.
-typedef bool ITEMCALLBACK(NCursesMenuItem&);
-
-// If you don't like to create a child class for individual items to
-// overload action(), you may use this class and provide a callback
-// function pointer for items.
-class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem {
-private:
- ITEMCALLBACK* p_fct;
-
-public:
- NCursesMenuCallbackItem(ITEMCALLBACK* fct = NULL,
- const char* p_name = NULL,
- const char* p_descript = NULL )
- : NCursesMenuItem (p_name, p_descript),
- p_fct (fct) {
- }
-
- virtual ~NCursesMenuCallbackItem();
-
- bool action();
-};
-//
-// -------------------------------------------------------------------------
-// This wraps the MENU type of <menu.h>
-// -------------------------------------------------------------------------
-//
-class NCURSES_IMPEXP NCursesMenu : public NCursesPanel {
-protected:
- MENU *menu;
-
-private:
- NCursesWindow* sub; // the subwindow object
- bool b_sub_owner; // is this our own subwindow?
- bool b_framed; // has the menu a border?
- bool b_autoDelete; // Delete items when deleting menu?
-
- NCursesMenuItem** my_items; // The array of items for this menu
-
- // This structure is used for the menu's user data field to link the
- // MENU* to the C++ object and to provide extra space for a user pointer.
- typedef struct {
- void* m_user; // the pointer for the user's data
- const NCursesMenu* m_back; // backward pointer to C++ object
- const MENU* m_owner;
- } UserHook;
-
- // Get the backward pointer to the C++ object from a MENU
- static inline NCursesMenu* getHook(const MENU *m) {
- UserHook* hook = (UserHook*)::menu_userptr(m);
- assert(hook != 0 && hook->m_owner==m);
- return (NCursesMenu*)(hook->m_back);
- }
-
- // This are the built-in hook functions in this C++ binding. In C++ we use
- // virtual member functions (see below On_..._Init and On_..._Termination)
- // to provide this functionality in an object oriented manner.
- static void mnu_init(MENU *);
- static void mnu_term(MENU *);
- static void itm_init(MENU *);
- static void itm_term(MENU *);
-
- // Calculate ITEM* array for the menu
- ITEM** mapItems(NCursesMenuItem* nitems[]);
-
-protected:
- // internal routines
- inline void set_user(void *user) {
- UserHook* uptr = (UserHook*)::menu_userptr (menu);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
- uptr->m_user = user;
- }
-
- inline void *get_user() {
- UserHook* uptr = (UserHook*)::menu_userptr (menu);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
- return uptr->m_user;
- }
-
- void InitMenu (NCursesMenuItem* menu[],
- bool with_frame,
- bool autoDeleteItems);
-
- inline void OnError (int err) const THROWS(NCursesMenuException) {
- if (err != E_OK)
- THROW(new NCursesMenuException (this, err));
- }
-
- // this wraps the menu_driver call.
- virtual int driver (int c) ;
-
- // 'Internal' constructor to create a menu without association to
- // an array of items.
- NCursesMenu( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0)
- : NCursesPanel(lines,cols,begin_y,begin_x),
- menu ((MENU*)0) {
- }
-
-public:
- // Make a full window size menu
- NCursesMenu (NCursesMenuItem* Items[],
- bool with_frame=FALSE, // Reserve space for a frame?
- bool autoDelete_Items=FALSE) // Autocleanup of Items?
- : NCursesPanel() {
- InitMenu(Items, with_frame, autoDelete_Items);
- }
-
- // Make a menu with a window of this size.
- NCursesMenu (NCursesMenuItem* Items[],
- int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- bool with_frame=FALSE, // Reserve space for a frame?
- bool autoDelete_Items=FALSE) // Autocleanup of Items?
- : NCursesPanel(lines, cols, begin_y, begin_x) {
- InitMenu(Items, with_frame, autoDelete_Items);
- }
-
- virtual ~NCursesMenu ();
-
- // Retrieve the menus subwindow
- inline NCursesWindow& subWindow() const {
- assert(sub!=NULL);
- return *sub;
- }
-
- // Set the menus subwindow
- void setSubWindow(NCursesWindow& sub);
-
- // Set these items for the menu
- inline void setItems(NCursesMenuItem* Items[]) {
- OnError(::set_menu_items(menu,mapItems(Items)));
- }
-
- // Remove the menu from the screen
- inline void unpost (void) {
- OnError (::unpost_menu (menu));
- }
-
- // Post the menu to the screen if flag is true, unpost it otherwise
- inline void post(bool flag = TRUE) {
- flag ? OnError (::post_menu(menu)) : OnError (::unpost_menu (menu));
- }
-
- // Get the numer of rows and columns for this menu
- inline void scale (int& mrows, int& mcols) const {
- OnError (::scale_menu (menu, &mrows, &mcols));
- }
-
- // Set the format of this menu
- inline void set_format(int mrows, int mcols) {
- OnError (::set_menu_format(menu, mrows, mcols));
- }
-
- // Get the format of this menu
- inline void menu_format(int& rows,int& cols) {
- ::menu_format(menu,&rows,&cols);
- }
-
- // Items of the menu
- inline NCursesMenuItem* items() const {
- return *my_items;
- }
-
- // Get the number of items in this menu
- inline int count() const {
- return ::item_count(menu);
- }
-
- // Get the current item (i.e. the one the cursor is located)
- inline NCursesMenuItem* current_item() const {
- return my_items[::item_index(::current_item(menu))];
- }
-
- // Get the marker string
- inline const char* mark() const {
- return ::menu_mark(menu);
- }
-
- // Set the marker string
- inline void set_mark(const char *mark) {
- OnError (::set_menu_mark (menu, mark));
- }
-
- // Get the name of the request code c
- inline static const char* request_name(int c) {
- return ::menu_request_name(c);
- }
-
- // Get the current pattern
- inline char* pattern() const {
- return ::menu_pattern(menu);
- }
-
- // true if there is a pattern match, false otherwise.
- bool set_pattern (const char *pat);
-
- // set the default attributes for the menu
- // i.e. set fore, back and grey attribute
- virtual void setDefaultAttributes();
-
- // Get the menus background attributes
- inline chtype back() const {
- return ::menu_back(menu);
- }
-
- // Get the menus foreground attributes
- inline chtype fore() const {
- return ::menu_fore(menu);
- }
-
- // Get the menus grey attributes (used for unselectable items)
- inline chtype grey() const {
- return ::menu_grey(menu);
- }
-
- // Set the menus background attributes
- inline chtype set_background(chtype a) {
- return ::set_menu_back(menu,a);
- }
-
- // Set the menus foreground attributes
- inline chtype set_foreground(chtype a) {
- return ::set_menu_fore(menu,a);
- }
-
- // Set the menus grey attributes (used for unselectable items)
- inline chtype set_grey(chtype a) {
- return ::set_menu_grey(menu,a);
- }
-
- inline void options_on (Menu_Options opts) {
- OnError (::menu_opts_on (menu,opts));
- }
-
- inline void options_off(Menu_Options opts) {
- OnError (::menu_opts_off(menu,opts));
- }
-
- inline Menu_Options options() const {
- return ::menu_opts(menu);
- }
-
- inline void set_options (Menu_Options opts) {
- OnError (::set_menu_opts (menu,opts));
- }
-
- inline int pad() const {
- return ::menu_pad(menu);
- }
-
- inline void set_pad (int padch) {
- OnError (::set_menu_pad (menu, padch));
- }
-
- // Position the cursor to the current item
- inline void position_cursor () const {
- OnError (::pos_menu_cursor (menu));
- }
-
- // Set the current item
- inline void set_current(NCursesMenuItem& I) {
- OnError (::set_current_item(menu, I.item));
- }
-
- // Get the current top row of the menu
- inline int top_row (void) const {
- return ::top_row (menu);
- }
-
- // Set the current top row of the menu
- inline void set_top_row (int row) {
- OnError (::set_top_row (menu, row));
- }
-
- // spacing control
- // Set the spacing for the menu
- inline void setSpacing(int spc_description,
- int spc_rows,
- int spc_columns) {
- OnError(::set_menu_spacing(menu,
- spc_description,
- spc_rows,
- spc_columns));
- }
-
- // Get the spacing info for the menu
- inline void Spacing(int& spc_description,
- int& spc_rows,
- int& spc_columns) const {
- OnError(::menu_spacing(menu,
- &spc_description,
- &spc_rows,
- &spc_columns));
- }
-
- // Decorations
- inline void frame(const char *title=NULL, const char* btitle=NULL) {
- if (b_framed)
- NCursesPanel::frame(title,btitle);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- inline void boldframe(const char *title=NULL, const char* btitle=NULL) {
- if (b_framed)
- NCursesPanel::boldframe(title,btitle);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- inline void label(const char *topLabel, const char *bottomLabel) {
- if (b_framed)
- NCursesPanel::label(topLabel,bottomLabel);
- else
- OnError(E_SYSTEM_ERROR);
- }
-
- // -----
- // Hooks
- // -----
-
- // Called after the menu gets repositioned in its window.
- // This is especially true if the menu is posted.
- virtual void On_Menu_Init();
-
- // Called before the menu gets repositioned in its window.
- // This is especially true if the menu is unposted.
- virtual void On_Menu_Termination();
-
- // Called after the item became the current item
- virtual void On_Item_Init(NCursesMenuItem& item);
-
- // Called before this item is left as current item.
- virtual void On_Item_Termination(NCursesMenuItem& item);
-
- // Provide a default key virtualization. Translate the keyboard
- // code c into a menu request code.
- // The default implementation provides a hopefully straightforward
- // mapping for the most common keystrokes and menu requests.
- virtual int virtualize(int c);
-
-
- // Operators
- inline NCursesMenuItem* operator[](int i) const {
- if ( (i < 0) || (i >= ::item_count (menu)) )
- OnError (E_BAD_ARGUMENT);
- return (my_items[i]);
- }
-
- // Perform the menu's operation
- // Return the item where you left the selection mark for a single
- // selection menu, or NULL for a multivalued menu.
- virtual NCursesMenuItem* operator()(void);
-
- // --------------------
- // Exception handlers
- // Called by operator()
- // --------------------
-
- // Called if the request is denied
- virtual void On_Request_Denied(int c) const;
-
- // Called if the item is not selectable
- virtual void On_Not_Selectable(int c) const;
-
- // Called if pattern doesn't match
- virtual void On_No_Match(int c) const;
-
- // Called if the command is unknown
- virtual void On_Unknown_Command(int c) const;
-
-};
-//
-// -------------------------------------------------------------------------
-// This is the typical C++ typesafe way to allow to attach
-// user data to an item of a menu. Its assumed that the user
-// data belongs to some class T. Use T as template argument
-// to create a UserItem.
-// -------------------------------------------------------------------------
-//
-template<class T> class NCURSES_IMPEXP NCursesUserItem : public NCursesMenuItem
-{
-public:
- NCursesUserItem (const char* p_name,
- const char* p_descript = NULL,
- const T* p_UserData = (T*)0)
- : NCursesMenuItem (p_name, p_descript) {
- if (item)
- OnError (::set_item_userptr (item, (void *)p_UserData));
- };
-
- virtual ~NCursesUserItem() {};
-
- inline const T* UserData (void) const {
- return (const T*)::item_userptr (item);
- };
-
- inline virtual void setUserData(const T* p_UserData) {
- if (item)
- OnError (::set_item_userptr (item, (void *)p_UserData));
- }
-};
-//
-// -------------------------------------------------------------------------
-// The same mechanism is used to attach user data to a menu
-// -------------------------------------------------------------------------
-//
-template<class T> class NCURSES_IMPEXP NCursesUserMenu : public NCursesMenu
-{
-protected:
- NCursesUserMenu( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesMenu(lines,cols,begin_y,begin_x) {
- if (menu)
- set_user ((void *)p_UserData);
- }
-
-public:
- NCursesUserMenu (NCursesMenuItem Items[],
- const T* p_UserData = (T*)0,
- bool with_frame=FALSE,
- bool autoDelete_Items=FALSE)
- : NCursesMenu (Items, with_frame, autoDelete_Items) {
- if (menu)
- set_user ((void *)p_UserData);
- };
-
- NCursesUserMenu (NCursesMenuItem Items[],
- int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0,
- bool with_frame=FALSE)
- : NCursesMenu (Items, lines, cols, begin_y, begin_x, with_frame) {
- if (menu)
- set_user ((void *)p_UserData);
- };
-
- virtual ~NCursesUserMenu() {
- };
-
- inline T* UserData (void) const {
- return (T*)get_user ();
- };
-
- inline virtual void setUserData (const T* p_UserData) {
- if (menu)
- set_user ((void *)p_UserData);
- }
-};
-
-#endif // NCURSES_CURSESM_H_incl
diff --git a/ncurses-5.3/c++/cursesmain.cc b/ncurses-5.3/c++/cursesmain.cc
deleted file mode 100644
index 9af9a2e..0000000
--- a/ncurses-5.3/c++/cursesmain.cc
+++ /dev/null
@@ -1,58 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "internal.h"
-#include "cursesapp.h"
-
-MODULE_ID("$Id$")
-
-/* This is the default implementation of main() for a NCursesApplication.
- * You only have to instantiate a static NCursesApplication object in your
- * main application source file and link this module with your application.
- */
-int main(int argc, char* argv[])
-{
- NCursesApplication* A = NCursesApplication::getApplication();
- if (!A)
- return(1);
- else {
- int res;
-
- A->handleArgs(argc,argv);
- ::endwin();
- res = (*A)();
- ::endwin();
- return(res);
- }
-}
diff --git a/ncurses-5.3/c++/cursesp.cc b/ncurses-5.3/c++/cursesp.cc
deleted file mode 100644
index f6dca52..0000000
--- a/ncurses-5.3/c++/cursesp.cc
+++ /dev/null
@@ -1,130 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1993, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "internal.h"
-#include "cursesp.h"
-#include <string.h>
-
-MODULE_ID("$Id$")
-
-NCursesPanel* NCursesPanel::dummy = (NCursesPanel*)0;
-
-void NCursesPanel::init() {
- p = ::new_panel(w);
- if (!p)
- OnError(ERR);
-
- UserHook* hook = new UserHook;
- hook->m_user = NULL;
- hook->m_back = this;
- hook->m_owner = p;
- ::set_panel_userptr(p, (void *)hook);
-}
-
-NCursesPanel::~NCursesPanel() {
- UserHook* hook = (UserHook*)::panel_userptr(p);
- assert(hook != 0 && hook->m_back==this && hook->m_owner==p);
- delete hook;
- ::del_panel(p);
- ::update_panels();
-}
-
-void
-NCursesPanel::redraw() {
- PANEL *pan;
-
- pan = ::panel_above(NULL);
- while (pan) {
- ::touchwin(panel_window(pan));
- pan = ::panel_above(pan);
- }
- ::update_panels();
- ::doupdate();
-}
-
-int
-NCursesPanel::refresh() {
- ::update_panels();
- return ::doupdate();
-}
-
-int
-NCursesPanel::noutrefresh() {
- ::update_panels();
- return OK;
-}
-
-void
-NCursesPanel::boldframe(const char *title, const char* btitle) {
- standout();
- frame(title, btitle);
- standend();
-}
-
-void
-NCursesPanel::frame(const char *title,const char *btitle) {
- int err = OK;
- if (!title && !btitle) {
- err = box();
- }
- else {
- err = box();
- if (err==OK)
- label(title,btitle);
- }
- OnError(err);
-}
-
-void
-NCursesPanel::label(const char *tLabel, const char *bLabel) {
- if (tLabel)
- centertext(0,tLabel);
- if (bLabel)
- centertext(maxy(),bLabel);
-}
-
-void
-NCursesPanel::centertext(int row,const char *label) {
- if (label) {
- int x = (maxx() - ::strlen(label)) / 2;
- if (x<0)
- x=0;
- OnError(addstr(row, x, label, width()));
- }
-}
-
-int
-NCursesPanel::getKey(void) {
- return getch();
-}
diff --git a/ncurses-5.3/c++/cursesp.h b/ncurses-5.3/c++/cursesp.h
deleted file mode 100644
index ace65fd..0000000
--- a/ncurses-5.3/c++/cursesp.h
+++ /dev/null
@@ -1,222 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#ifndef NCURSES_CURSESP_H_incl
-#define NCURSES_CURSESP_H_incl 1
-
-// $Id$
-
-#include <cursesw.h>
-
-extern "C" {
-# include <panel.h>
-}
-
-class NCURSES_IMPEXP NCursesPanel : public NCursesWindow {
-protected:
- PANEL *p;
- static NCursesPanel *dummy;
-
-private:
- // This structure is used for the panel's user data field to link the
- // PANEL* to the C++ object and to provide extra space for a user pointer.
- typedef struct {
- void* m_user; // the pointer for the user's data
- const NCursesPanel* m_back; // backward pointer to C++ object
- const PANEL* m_owner; // the panel itself
- } UserHook;
-
- void init(); // Initialize the panel object
-
-protected:
- void set_user(void *user) {
- UserHook* uptr = (UserHook*)::panel_userptr (p);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
- uptr->m_user = user;
- }
- // Set the user pointer of the panel.
-
- void *get_user() {
- UserHook* uptr = (UserHook*)::panel_userptr (p);
- assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
- return uptr->m_user;
- }
-
- void OnError (int err) const THROWS((NCursesPanelException)) {
- if (err==ERR)
- THROW(new NCursesPanelException (this, err));
- }
- // 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,
- int begin_y = 0,
- int begin_x = 0)
- : NCursesWindow(lines,cols,begin_y,begin_x) {
- init();
- }
- // Create a panel with this size starting at the requested position.
-
- NCursesPanel() : NCursesWindow(::stdscr) { init(); }
- // This constructor creates the default Panel associated with the
- // ::stdscr window
-
- virtual ~NCursesPanel();
-
- // basic manipulation
- inline void hide() {
- OnError (::hide_panel(p));
- }
- // Hide the panel. It stays in the stack but becomes invisible.
-
- inline void show() {
- OnError (::show_panel(p));
- }
- // Show the panel, i.e. make it visible.
-
- inline void top() {
- OnError (::top_panel(p));
- }
- // Make this panel the top panel in the stack.
-
- inline void bottom() {
- OnError (::bottom_panel(p));
- }
- // Make this panel the bottom panel in the stack.
- // N.B.: The panel associated with ::stdscr is always on the bottom. So
- // actually bottom() makes the panel the first above ::stdscr.
-
- virtual int mvwin(int y, int x) {
- OnError(::move_panel(p, y, x));
- return OK;
- }
-
- inline bool hidden() const {
- return (::panel_hidden (p) ? TRUE : FALSE);
- }
- // Return TRUE if the panel is hidden, FALSE otherwise.
-
-/* The functions panel_above() and panel_below() are not reflected in
- the NCursesPanel class. The reason for this is, that we cannot
- assume that a panel retrieved by those operations is one wrapped
- by a C++ class. Although this situation might be handled, we also
- need a reverse mapping from PANEL to NCursesPanel which needs some
- redesign of the low level stuff. At the moment, we define them in the
- interface but they will always produce an error. */
- inline NCursesPanel& above() const {
- OnError(ERR);
- return *dummy;
- }
-
- inline NCursesPanel& below() const {
- OnError(ERR);
- return *dummy;
- }
-
- // Those two are rewrites of the corresponding virtual members of
- // NCursesWindow
- virtual int refresh();
- // Propagate all panel changes to the virtual screen and update the
- // physical screen.
-
- virtual int noutrefresh();
- // Propagate all panel changes to the virtual screen.
-
- static void redraw();
- // Redraw all panels.
-
- // decorations
- virtual void frame(const char* title=NULL,
- const char* btitle=NULL);
- // Put a frame around the panel and put the title centered in the top line
- // and btitle in the bottom line.
-
- virtual void boldframe(const char* title=NULL,
- const char* btitle=NULL);
- // Same as frame(), but use highlighted attributes.
-
- virtual void label(const char* topLabel,
- const char* bottomLabel);
- // Put the title centered in the top line and btitle in the bottom line.
-
- virtual void centertext(int row,const char* label);
- // Put the label text centered in the specified row.
-};
-
-/* We use templates to provide a typesafe mechanism to associate
- * user data with a panel. A NCursesUserPanel<T> is a panel
- * associated with some user data of type T.
- */
-template<class T> class NCursesUserPanel : public NCursesPanel
-{
-public:
- NCursesUserPanel (int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesPanel (lines, cols, begin_y, begin_x) {
- if (p)
- set_user ((void *)p_UserData);
- };
- // This creates an user panel of the requested size with associated
- // user data pointed to by p_UserData.
-
- NCursesUserPanel(const T* p_UserData = (T*)0) : NCursesPanel() {
- if (p)
- set_user((void *)p_UserData);
- };
- // This creates an user panel associated with the ::stdscr and user data
- // pointed to by p_UserData.
-
- virtual ~NCursesUserPanel() {};
-
- T* UserData (void) const {
- return (T*)get_user ();
- };
- // Retrieve the user data associated with the panel.
-
- virtual void setUserData (const T* p_UserData) {
- if (p)
- set_user ((void *)p_UserData);
- }
- // Associate the user panel with the user data pointed to by p_UserData.
-};
-
-#endif // NCURSES_CURSESP_H_incl
diff --git a/ncurses-5.3/c++/cursespad.cc b/ncurses-5.3/c++/cursespad.cc
deleted file mode 100644
index 5e9c248..0000000
--- a/ncurses-5.3/c++/cursespad.cc
+++ /dev/null
@@ -1,276 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1999 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "internal.h"
-#include "etip.h"
-#include "cursesw.h"
-
-MODULE_ID("$Id$")
-
-NCursesPad::NCursesPad(int lines, int cols)
- : NCursesWindow(),
- viewWin((NCursesWindow*)0),
- viewSub((NCursesWindow*)0),
- h_gridsize(0), v_gridsize(0),
- min_row(0), min_col(0)
-{
- w = ::newpad(lines,cols);
- if ((WINDOW*)0==w) {
- count--;
- err_handler("Cannot construct window");
- }
- alloced = TRUE;
-}
-
-
-int NCursesPad::driver (int key)
-{
- // Default implementation
- switch(key) {
- case KEY_UP:
- // =======
- return REQ_PAD_UP;
- case KEY_DOWN:
- // =========
- return REQ_PAD_DOWN;
- case KEY_LEFT:
- // =========
- return REQ_PAD_LEFT;
- case KEY_RIGHT:
- // ==========
- return REQ_PAD_RIGHT;
- case KEY_EXIT:
- // =========
- case CTRL('X'):
- // ==========
- return REQ_PAD_EXIT;
-
- default: return(key);
- }
-}
-
-
-void NCursesPad::operator()(void)
-{
- NCursesWindow* W = Win();
-
- if ((NCursesWindow*)0 != W) {
- int Width = W->width();
- int Height = W->height();
-
- int req = REQ_PAD_REFRESH;
-
- W->keypad(TRUE);
- W->meta(TRUE);
- refresh();
-
- do {
- bool changed = FALSE;
-
- switch (req) {
- case REQ_PAD_REFRESH:
- // ================
- changed = TRUE;
- break;
- case REQ_PAD_LEFT:
- // =============
- if (min_col > 0) {
- changed = TRUE;
- if (min_col < h_gridsize)
- min_col = 0;
- else
- min_col -= h_gridsize;
- }
- else
- OnNavigationError(req);
- break;
- case REQ_PAD_RIGHT:
- // ==============
- if (min_col < (width() - Width - 1)) {
- changed = TRUE;
- if (min_col > (width() - Width - h_gridsize - 1))
- min_col = width() - Width - 1;
- else
- min_col += h_gridsize;
- }
- else
- OnNavigationError(req);
- break;
- case REQ_PAD_UP:
- // ===========
- if (min_row > 0) {
- changed = TRUE;
- if (min_row < v_gridsize)
- min_row = 0;
- else
- min_row -= v_gridsize;
- }
- else
- OnNavigationError(req);
- break;
- case REQ_PAD_DOWN:
- // =============
- if (min_row < (height() - Height - 1)) {
- changed = TRUE;
- if (min_row > (height() - Height - v_gridsize - 1))
- min_row = height() - Height - 1;
- else
- min_row += v_gridsize;
- }
- else
- OnNavigationError(req);
- break;
-
- default:
- OnUnknownOperation(req);
- }
-
- if (changed) {
- noutrefresh();
- W->syncup();
- OnOperation(req);
- viewWin->refresh();
- }
- } while( (req=driver(W->getch())) != REQ_PAD_EXIT );
- }
-}
-
-
-int NCursesPad::refresh()
-{
- int res = noutrefresh();
- if (res==OK && ((NCursesWindow*)0 != viewWin)) {
- res = (viewWin->refresh());
- }
- return(res);
-}
-
-int NCursesPad::noutrefresh()
-{
- int res = OK;
- NCursesWindow* W = Win();
- if ((NCursesWindow*)0 != W) {
- res = copywin(*W,min_row,min_col,
- 0,0,W->maxy(),W->maxx(),
- FALSE);
- if (res==OK) {
- W->syncup();
- res = viewWin->noutrefresh();
- }
- }
- return (res);
-}
-
-void NCursesPad::setWindow(NCursesWindow& view,
- int v_grid NCURSES_PARAM_INIT(1),
- int h_grid NCURSES_PARAM_INIT(1))
-{
- viewWin = &view;
- min_row = min_col = 0;
- if (h_grid <=0 || v_grid <= 0)
- err_handler("Illegal Gridsize");
- else {
- h_gridsize = h_grid;
- v_gridsize = v_grid;
- }
-}
-
-void NCursesPad::setSubWindow(NCursesWindow& sub)
-{
- if ((NCursesWindow*)0 == viewWin)
- err_handler("Pad has no viewport");
- if (!viewWin->isDescendant(sub))
- THROW(new NCursesException("NCursesFramePad", E_SYSTEM_ERROR));
- viewSub = &sub;
-}
-
-void NCursesFramedPad::OnOperation(int pad_req)
-{
- NCursesWindow* W = Win();
- NCursesWindow* Win = getWindow();
-
- if (((NCursesWindow*)0 != W) && ((NCursesWindow*)0 != Win)) {
- int Width = W->width();
- int Height = W->height();
- int i, row, col, h_len, v_len;
-
- h_len = (Width*Width + width() - 1)/width();
- if (h_len==0)
- h_len = 1;
- if (h_len > Width)
- h_len = Width;
-
- v_len = (Height*Height + height() - 1)/height();
- if (v_len==0)
- v_len = 1;
- if (v_len > Height)
- v_len = Height;
-
- col = (min_col * Width + width() - 1) / width();
- if (col + h_len > Width)
- col = Width - h_len;
-
- row = (min_row * Height + height() - 1) / height();
- if (row + v_len > Height)
- row = Height - v_len;
-
- Win->vline(1,Width+1,Height);
- Win->attron(A_REVERSE);
- if (v_len>=2) {
- Win->addch(row+1,Width+1,ACS_UARROW);
- for(i=2;i<v_len;i++)
- Win->addch(row+i,Width+1,' ');
- Win->addch(row+v_len,Width+1,ACS_DARROW);
- }
- else {
- for(i=1;i<=v_len;i++)
- Win->addch(row+i,Width+1,' ');
- }
- Win->attroff(A_REVERSE);
-
- Win->hline(Height+1,1,Width);
- Win->attron(A_REVERSE);
- if (h_len >= 2) {
- Win->addch(Height+1,col+1,ACS_LARROW);
- for(i=2;i<h_len;i++)
- Win->addch(Height+1,col+i,' ');
- Win->addch(Height+1,col+h_len,ACS_RARROW);
- }
- else {
- for(i=1;i<=h_len;i++)
- Win->addch(Height+1,col+i,' ');
- }
- Win->attroff(A_REVERSE);
- }
-}
diff --git a/ncurses-5.3/c++/cursesw.cc b/ncurses-5.3/c++/cursesw.cc
deleted file mode 100644
index 16f51a9..0000000
--- a/ncurses-5.3/c++/cursesw.cc
+++ /dev/null
@@ -1,456 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-
-/*
- Copyright (C) 1989 Free Software Foundation
- written by Eric Newton (newton@rocky.oswego.edu)
-
- This file is part of the GNU C++ Library. This library is free
- software; you can redistribute it and/or modify it under the terms of
- the GNU Library General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your
- option) any later version. This library is distributed in the hope
- that it will be useful, but WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the GNU Library General Public License for more details.
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free Software
- Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
- modified by Ulrich Drepper (drepper@karlsruhe.gmd.de)
- and Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
-
- modified by Juergen Pfeifer
- Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
-*/
-
-#include "internal.h"
-#include "cursesw.h"
-
-MODULE_ID("$Id$")
-
-#define COLORS_NEED_INITIALIZATION -1
-#define COLORS_NOT_INITIALIZED 0
-#define COLORS_MONOCHROME 1
-#define COLORS_ARE_REALLY_THERE 2
-
-// declare static variables for the class
-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 *
-# endif
-#endif
-
-int
-NCursesWindow::scanw(const char* fmt, ...)
-{
- int result = ERR;
- char buf[BUFSIZ];
-
- 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));
- if (ss.vscan(fmt, (_IO_va_list)args) != -1)
- result = OK;
-#endif
- va_end(args);
- }
- return result;
-}
-
-
-int
-NCursesWindow::scanw(int y, int x, const char* fmt, ...)
-{
- int result = ERR;
- char buf[BUFSIZ];
-
- 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));
- if (ss.vscan(fmt, (_IO_va_list)args) != -1)
- result = OK;
-#endif
- va_end(args);
- }
- }
- return result;
-}
-
-
-int
-NCursesWindow::printw(const char * fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- char buf[BUFSIZ];
- ::vsprintf(buf, fmt, args);
- va_end(args);
- return waddstr(w, buf);
-}
-
-
-int
-NCursesWindow::printw(int y, int x, const char * fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- int result = ::wmove(w, y, x);
- if (result == OK) {
- char buf[BUFSIZ];
- ::vsprintf(buf, fmt, args);
- result = waddstr(w, buf);
- }
- va_end(args);
- return result;
-}
-
-
-void
-NCursesWindow::init(void)
-{
- leaveok(0);
- keypad(1);
- meta(1);
-}
-
-void
-NCursesWindow::err_handler(const char *msg) const THROWS(NCursesException)
-{
- THROW(new NCursesException(msg));
-}
-
-void
-NCursesWindow::initialize() {
- if (!b_initialized) {
- ::initscr();
- b_initialized = TRUE;
- if (colorInitialized==COLORS_NEED_INITIALIZATION) {
- colorInitialized=COLORS_NOT_INITIALIZED;
- useColors();
- }
- ::noecho();
- ::cbreak();
- }
-}
-
-NCursesWindow::NCursesWindow() {
- initialize();
-
- w = (WINDOW *)0;
- init();
- alloced = FALSE;
- subwins = par = sib = 0;
- count++;
-}
-
-NCursesWindow::NCursesWindow(int lines, int cols, int begin_y, int begin_x)
-{
- initialize();
-
- w = ::newwin(lines, cols, begin_y, begin_x);
- if (w == 0) {
- err_handler("Cannot construct window");
- }
- init();
-
- alloced = TRUE;
- subwins = par = sib = 0;
- count++;
-}
-
-NCursesWindow::NCursesWindow(WINDOW* &window)
-{
- initialize();
-
- w = window;
- init();
- alloced = FALSE;
- subwins = par = sib = 0;
- count++;
-}
-
-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();
- }
-
- // Even though we treat subwindows as a tree, the standard curses
- // library needs the `subwin' call to link to the parent in
- // order to correctly perform refreshes, etc.
- // Friendly enough, this also works for pads.
- w = ::derwin(win.w, l, c, begin_y, begin_x);
- if (w == 0) {
- err_handler("Cannot construct subwindow");
- }
-
- par = &win;
- sib = win.subwins;
- win.subwins = this;
- subwins = 0;
- alloced = TRUE;
- count++;
-}
-
-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");
- }
-
- par = &win;
- sib = win.subwins;
- win.subwins = this;
- subwins = 0;
- alloced = TRUE;
- count++;
-
- if (do_box) {
- win.box();
- win.touchwin();
- }
-}
-
-NCursesWindow NCursesWindow::Clone() {
- WINDOW *d = ::dupwin(w);
- NCursesWindow W(d);
- W.subwins = subwins;
- W.sib = sib;
- W.par = par;
- W.alloced = alloced;
- return W;
-}
-
-typedef int (*RIPOFFINIT)(NCursesWindow&);
-static RIPOFFINIT R_INIT[5]; // There can't be more
-static int r_init_idx = 0;
-static RIPOFFINIT* prip = R_INIT;
-
-extern "C" int _nc_ripoffline(int,int (*init)(WINDOW*,int));
-
-NCursesWindow::NCursesWindow(WINDOW *win, int cols) {
- initialize();
- w = win;
- assert((w->_maxx+1)==cols);
- alloced = FALSE;
- subwins = par = sib = 0;
-}
-
-int NCursesWindow::ripoff_init(WINDOW *w, int cols)
-{
- int res = ERR;
-
- RIPOFFINIT init = *prip++;
- if (init) {
- NCursesWindow* W = new NCursesWindow(w,cols);
- res = init(*W);
- }
- return res;
-}
-
-int NCursesWindow::ripoffline(int ripoff_lines,
- int (*init)(NCursesWindow& win)) {
- int code = ::_nc_ripoffline(ripoff_lines,ripoff_init);
- if (code==OK && init && ripoff_lines) {
- R_INIT[r_init_idx++] = init;
- }
- return code;
-}
-
-bool
-NCursesWindow::isDescendant(NCursesWindow& win) {
- for (NCursesWindow* p = subwins; p != NULL; p = p->sib) {
- if (p==&win)
- return TRUE;
- else {
- if (p->isDescendant(win))
- return TRUE;
- }
- }
- return FALSE;
-}
-
-void
-NCursesWindow::kill_subwindows()
-{
- for (NCursesWindow* p = subwins; p != 0; p = p->sib) {
- p->kill_subwindows();
- if (p->alloced) {
- if (p->w != 0)
- ::delwin(p->w);
- p->alloced = FALSE;
- }
- p->w = 0; // cause a run-time error if anyone attempts to use...
- }
-}
-
-
-NCursesWindow::~NCursesWindow()
-{
- kill_subwindows();
-
- if (par != 0) { // Snip us from the parent's list of subwindows.
- NCursesWindow * win = par->subwins;
- NCursesWindow * trail = 0;
- for (;;) {
- if (win == 0)
- break;
- else if (win == this) {
- if (trail != 0)
- trail->sib = win->sib;
- else
- par->subwins = win->sib;
- break;
- } else {
- trail = win;
- win = win->sib;
- }
- }
- }
-
- if (alloced && w != 0)
- ::delwin(w);
-
- if (alloced) {
- --count;
- if (count == 0) {
- ::endwin();
- }
- else if (count < 0) { // cannot happen!
- err_handler("Too many windows destroyed");
- }
- }
-}
-
-// ---------------------------------------------------------------------
-// Color stuff
-//
-int NCursesWindow::colorInitialized = COLORS_NOT_INITIALIZED;
-
-void
-NCursesWindow::useColors(void)
-{
- if (colorInitialized == COLORS_NOT_INITIALIZED) {
- if (b_initialized) {
- if (::has_colors()) {
- ::start_color();
- colorInitialized = COLORS_ARE_REALLY_THERE;
- }
- else
- colorInitialized = COLORS_MONOCHROME;
- }
- else
- colorInitialized = COLORS_NEED_INITIALIZATION;
- }
-}
-
-short
-NCursesWindow::getcolor(int getback) const
-{
- short fore, back;
-
- if (colorInitialized==COLORS_ARE_REALLY_THERE) {
- if (::pair_content((short)PAIR_NUMBER(w->_attrs), &fore, &back))
- err_handler("Can't get color pair");
- }
- else {
- // Monochrome means white on black
- back = COLOR_BLACK;
- fore = COLOR_WHITE;
- }
- return getback ? back : fore;
-}
-
-int NCursesWindow::NumberOfColors()
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return COLORS;
- else
- return 1; // monochrome (actually there are two ;-)
-}
-
-short
-NCursesWindow::getcolor() const
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return PAIR_NUMBER(w->_attrs);
- else
- return 0; // we only have pair zero
-}
-
-int
-NCursesWindow::setpalette(short fore, short back, short pair)
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return ::init_pair(pair, fore, back);
- else
- return OK;
-}
-
-int
-NCursesWindow::setpalette(short fore, short back)
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return setpalette(fore, back, (short)PAIR_NUMBER(w->_attrs));
- else
- return OK;
-}
-
-
-int
-NCursesWindow::setcolor(short pair)
-{
- if (colorInitialized==COLORS_ARE_REALLY_THERE) {
- if ((pair < 1) || (pair > COLOR_PAIRS))
- err_handler("Can't set color pair");
-
- attroff(A_COLOR);
- attrset(COLOR_PAIR(pair));
- }
- return OK;
-}
-
-#if HAVE_HAS_KEY
-extern "C" int _nc_has_mouse(void);
-
-bool NCursesWindow::has_mouse() const {
- return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
- ? TRUE : FALSE);
-}
-#endif
diff --git a/ncurses-5.3/c++/cursesw.h b/ncurses-5.3/c++/cursesw.h
deleted file mode 100644
index 9c22ffd..0000000
--- a/ncurses-5.3/c++/cursesw.h
+++ /dev/null
@@ -1,1397 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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$
-
-#include <etip.h>
-#include <stdio.h>
-#include <stdarg.h>
-
-#if HAVE_STRSTREAM_H && (USE_STRSTREAM_VSCAN||USE_STRSTREAM_VSCAN_CAST)
-#include <strstream.h>
-#endif
-
-extern "C" {
-# include <curses.h>
-}
-
-/* SCO 3.2v4 curses.h includes term.h, which defines lines as a macro.
- Undefine it here, because NCursesWindow uses lines as a method. */
-#undef lines
-
-/* "Convert" macros to inlines. We'll define it as another symbol to avoid
- * conflict with library symbols.
- */
-#undef UNDEF
-#define UNDEF(name) CUR_ ##name
-
-#ifdef addch
-inline int UNDEF(addch)(chtype ch) { return addch(ch); }
-#undef addch
-#define addch UNDEF(addch)
-#endif
-
-#ifdef echochar
-inline int UNDEF(echochar)(chtype ch) { return echochar(ch); }
-#undef echochar
-#define echochar UNDEF(echochar)
-#endif
-
-#ifdef insdelln
-inline int UNDEF(insdelln)(int n) { return insdelln(n); }
-#undef insdelln
-#define insdelln UNDEF(insdelln)
-#endif
-
-#ifdef addstr
-/* The (char*) cast is to hack around missing const's */
-inline int UNDEF(addstr)(const char * str) { return addstr((char*)str); }
-#undef addstr
-#define addstr UNDEF(addstr)
-#endif
-
-#ifdef attron
-inline int UNDEF(attron)(chtype at) { return attron(at); }
-#undef attron
-#define attron UNDEF(attron)
-#endif
-
-#ifdef attroff
-inline int UNDEF(attroff)(chtype at) { return attroff(at); }
-#undef attroff
-#define attroff UNDEF(attroff)
-#endif
-
-#ifdef attrset
-inline chtype UNDEF(attrset)(chtype at) { return attrset(at); }
-#undef attrset
-#define attrset UNDEF(attrset)
-#endif
-
-#ifdef color_set
-inline chtype UNDEF(color_set)(short p,void* opts) { return color_set(p,opts); }
-#undef color_set
-#define color_set UNDEF(color_set)
-#endif
-
-#ifdef border
-inline int UNDEF(border)(chtype ls, chtype rs, chtype ts, chtype bs, chtype tl, chtype tr, chtype bl, chtype br)
-{ return border(ls,rs,ts,bs,tl,tr,bl,br); }
-#undef border
-#define border UNDEF(border)
-#endif
-
-#ifdef box
-inline int UNDEF(box)(WINDOW *win, int v, int h) { return box(win, v, h); }
-#undef box
-#define box UNDEF(box)
-#endif
-
-#ifdef mvwhline
-inline int UNDEF(mvwhline)(WINDOW *win,int y,int x,chtype c,int n) {
- return mvwhline(win,y,x,c,n); }
-#undef mvwhline
-#define mvwhline UNDEF(mvwhline)
-#endif
-
-#ifdef mvwvline
-inline int UNDEF(mvwvline)(WINDOW *win,int y,int x,chtype c,int n) {
- return mvwvline(win,y,x,c,n); }
-#undef mvwvline
-#define mvwvline UNDEF(mvwvline)
-#endif
-
-#ifdef clear
-inline int UNDEF(clear)() { return clear(); }
-#undef clear
-#define clear UNDEF(clear)
-#endif
-
-#ifdef clearok
-inline int UNDEF(clearok)(WINDOW* win, bool bf) { return clearok(win, bf); }
-#undef clearok
-#define clearok UNDEF(clearok)
-#else
-extern "C" NCURSES_IMPEXP int NCURSES_API clearok(WINDOW*, bool);
-#endif
-
-#ifdef clrtobot
-inline int UNDEF(clrtobot)() { return clrtobot(); }
-#undef clrtobot
-#define clrtobot UNDEF(clrtobot)
-#endif
-
-#ifdef clrtoeol
-inline int UNDEF(clrtoeol)() { return clrtoeol(); }
-#undef clrtoeol
-#define clrtoeol UNDEF(clrtoeol)
-#endif
-
-#ifdef delch
-inline int UNDEF(delch)() { return delch(); }
-#undef delch
-#define delch UNDEF(delch)
-#endif
-
-#ifdef deleteln
-inline int UNDEF(deleteln)() { return deleteln(); }
-#undef deleteln
-#define deleteln UNDEF(deleteln)
-#endif
-
-#ifdef erase
-inline int UNDEF(erase)() { return erase(); }
-#undef erase
-#define erase UNDEF(erase)
-#endif
-
-#ifdef flushok
-inline int UNDEF(flushok)(WINDOW* _win, bool _bf) {
- return flushok(_win, _bf); }
-#undef flushok
-#define flushok UNDEF(flushok)
-#else
-#define _no_flushok
-#endif
-
-#ifdef getch
-inline int UNDEF(getch)() { return getch(); }
-#undef getch
-#define getch UNDEF(getch)
-#endif
-
-#ifdef getstr
-inline int UNDEF(getstr)(char *_str) { return getstr(_str); }
-#undef getstr
-#define getstr UNDEF(getstr)
-#endif
-
-#ifdef instr
-inline int UNDEF(instr)(char *_str) { return instr(_str); }
-#undef instr
-#define instr UNDEF(instr)
-#endif
-
-#ifdef innstr
-inline int UNDEF(innstr)(char *_str, int n) { return innstr(_str,n); }
-#undef innstr
-#define innstr UNDEF(innstr)
-#endif
-
-#ifdef mvwinnstr
-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
-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
-inline int UNDEF(winsstr)(WINDOW *w, const char *_str) {
- 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) {
- return mvwinsstr(w,y,x,_str); }
-#undef mvwinsstr
-#define mvwinsstr UNDEF(mvwinsstr)
-#endif
-
-#ifdef insstr
-inline int UNDEF(insstr)(const char *_str) {
- return insstr(_str); }
-#undef insstr
-#define insstr UNDEF(insstr)
-#endif
-
-#ifdef mvinsstr
-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
-inline int UNDEF(insnstr)(const char *_str, int n) {
- return insnstr(_str,n); }
-#undef insnstr
-#define insnstr UNDEF(insnstr)
-#endif
-
-#ifdef mvwinsnstr
-inline int UNDEF(mvwinsnstr)(WINDOW *w, int y, int x,const char *_str, int n) {
- return mvwinsnstr(w,y,x,_str,n); }
-#undef mvwinsnstr
-#define mvwinsnstr UNDEF(mvwinsnstr)
-#endif
-
-#ifdef mvinsnstr
-inline int UNDEF(mvinsnstr)(int y, int x,const char *_str, int n) {
- return mvinsnstr(y,x,_str,n); }
-#undef mvinsnstr
-#define mvinsnstr UNDEF(mvinsnstr)
-#endif
-
-#ifdef getnstr
-inline int UNDEF(getnstr)(char *_str, int n) { return getnstr(_str,n); }
-#undef getnstr
-#define getnstr UNDEF(getnstr)
-#endif
-
-#ifdef getyx
-inline void UNDEF(getyx)(const WINDOW* win, int& y, int& x) {
- getyx(win, y, x); }
-#undef getyx
-#define getyx UNDEF(getyx)
-#endif
-
-#ifdef getbegyx
-inline void UNDEF(getbegyx)(WINDOW* win, int& y, int& x) { getbegyx(win, y, x); }
-#undef getbegyx
-#define getbegyx UNDEF(getbegyx)
-#endif
-
-#ifdef getmaxyx
-inline void UNDEF(getmaxyx)(WINDOW* win, int& y, int& x) { getmaxyx(win, y, x); }
-#undef getmaxyx
-#define getmaxyx UNDEF(getmaxyx)
-#endif
-
-#ifdef hline
-inline int UNDEF(hline)(chtype ch, int n) { return hline(ch, n); }
-#undef hline
-#define hline UNDEF(hline)
-#endif
-
-#ifdef inch
-inline chtype UNDEF(inch)() { return inch(); }
-#undef inch
-#define inch UNDEF(inch)
-#endif
-
-#ifdef insch
-inline int UNDEF(insch)(char c) { return insch(c); }
-#undef insch
-#define insch UNDEF(insch)
-#endif
-
-#ifdef insertln
-inline int UNDEF(insertln)() { return insertln(); }
-#undef insertln
-#define insertln UNDEF(insertln)
-#endif
-
-#ifdef leaveok
-inline int UNDEF(leaveok)(WINDOW* win, bool bf) { return leaveok(win, bf); }
-#undef leaveok
-#define leaveok UNDEF(leaveok)
-#else
-extern "C" NCURSES_IMPEXP int NCURSES_API leaveok(WINDOW* win, bool bf);
-#endif
-
-#ifdef move
-inline int UNDEF(move)(int x, int y) { return move(x, y); }
-#undef move
-#define move UNDEF(move)
-#endif
-
-#ifdef refresh
-inline int UNDEF(refresh)() { return refresh(); }
-#undef refresh
-#define refresh UNDEF(refresh)
-#endif
-
-#ifdef redrawwin
-inline int UNDEF(redrawwin)(WINDOW *win) { return redrawwin(win); }
-#undef redrawwin
-#define redrawwin UNDEF(redrawwin)
-#endif
-
-#ifdef scrl
-inline int UNDEF(scrl)(int l) { return scrl(l); }
-#undef scrl
-#define scrl UNDEF(scrl)
-#endif
-
-#ifdef scroll
-inline int UNDEF(scroll)(WINDOW *win) { return scroll(win); }
-#undef scroll
-#define scroll UNDEF(scroll)
-#endif
-
-#ifdef scrollok
-inline int UNDEF(scrollok)(WINDOW* win, bool bf) { return scrollok(win, bf); }
-#undef scrollok
-#define scrollok UNDEF(scrollok)
-#else
-#if defined(__NCURSES_H)
-extern "C" NCURSES_IMPEXP int NCURSES_API scrollok(WINDOW*, bool);
-#else
-extern "C" NCURSES_IMPEXP int NCURSES_API scrollok(WINDOW*, char);
-#endif
-#endif
-
-#ifdef setscrreg
-inline int UNDEF(setscrreg)(int t, int b) { return setscrreg(t, b); }
-#undef setscrreg
-#define setscrreg UNDEF(setscrreg)
-#endif
-
-#ifdef standend
-inline int UNDEF(standend)() { return standend(); }
-#undef standend
-#define standend UNDEF(standend)
-#endif
-
-#ifdef standout
-inline int UNDEF(standout)() { return standout(); }
-#undef standout
-#define standout UNDEF(standout)
-#endif
-
-#ifdef subpad
-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)
-#endif
-
-#ifdef timeout
-inline void UNDEF(timeout)(int delay) { timeout(delay); }
-#undef timeout
-#define timeout UNDEF(timeout)
-#endif
-
-#ifdef touchline
-inline int UNDEF(touchline)(WINDOW *win, int s, int c)
-{ return touchline(win,s,c); }
-#undef touchline
-#define touchline UNDEF(touchline)
-#endif
-
-#ifdef touchwin
-inline int UNDEF(touchwin)(WINDOW *win) { return touchwin(win); }
-#undef touchwin
-#define touchwin UNDEF(touchwin)
-#endif
-
-#ifdef untouchwin
-inline int UNDEF(untouchwin)(WINDOW *win) { return untouchwin(win); }
-#undef untouchwin
-#define untouchwin UNDEF(untouchwin)
-#endif
-
-#ifdef vline
-inline int UNDEF(vline)(chtype ch, int n) { return vline(ch, n); }
-#undef vline
-#define vline UNDEF(vline)
-#endif
-
-#ifdef waddstr
-inline int UNDEF(waddstr)(WINDOW *win, char *str) { return waddstr(win, str); }
-#undef waddstr
-#define waddstr UNDEF(waddstr)
-#endif
-
-#ifdef waddchstr
-inline int UNDEF(waddchstr)(WINDOW *win, chtype *at) { return waddchstr(win, at); }
-#undef waddchstr
-#define waddchstr UNDEF(waddchstr)
-#endif
-
-#ifdef wstandend
-inline int UNDEF(wstandend)(WINDOW *win) { return wstandend(win); }
-#undef wstandend
-#define wstandend UNDEF(wstandend)
-#endif
-
-#ifdef wstandout
-inline int UNDEF(wstandout)(WINDOW *win) { return wstandout(win); }
-#undef wstandout
-#define wstandout UNDEF(wstandout)
-#endif
-
-
-#ifdef wattroff
-inline int UNDEF(wattroff)(WINDOW *win, int att) { return wattroff(win, att); }
-#undef wattroff
-#define wattroff UNDEF(wattroff)
-#endif
-
-#ifdef chgat
-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)
-#endif
-
-#ifdef mvchgat
-inline int UNDEF(mvchgat)(int y, int x, int n,
- attr_t attr, short color, const void *opts) {
- return mvchgat(y,x,n,attr,color,opts); }
-#undef mvchgat
-#define mvchgat UNDEF(mvchgat)
-#endif
-
-#ifdef mvwchgat
-inline int UNDEF(mvwchgat)(WINDOW *win, int y, int x, int n,
- attr_t attr, short color, const void *opts) {
- return mvwchgat(win,y,x,n,attr,color,opts); }
-#undef mvwchgat
-#define mvwchgat UNDEF(mvwchgat)
-#endif
-
-#ifdef wattrset
-inline int UNDEF(wattrset)(WINDOW *win, int att) { return wattrset(win, att); }
-#undef wattrset
-#define wattrset UNDEF(wattrset)
-#endif
-
-#ifdef winch
-inline chtype UNDEF(winch)(const WINDOW* win) { return winch(win); }
-#undef winch
-#define winch UNDEF(winch)
-#endif
-
-#ifdef mvwaddch
-inline int UNDEF(mvwaddch)(WINDOW *win, int y, int x, const chtype ch)
-{ return mvwaddch(win, y, x, ch); }
-#undef mvwaddch
-#define mvwaddch UNDEF(mvwaddch)
-#endif
-
-#ifdef mvwaddchnstr
-inline int UNDEF(mvwaddchnstr)(WINDOW *win, int y, int x, chtype *str, int n)
-{ return mvwaddchnstr(win, y, x, str, n); }
-#undef mvwaddchnstr
-#define mvwaddchnstr UNDEF(mvwaddchnstr)
-#endif
-
-#ifdef mvwaddchstr
-inline int UNDEF(mvwaddchstr)(WINDOW *win, int y, int x, chtype *str)
-{ return mvwaddchstr(win, y, x, str); }
-#undef mvwaddchstr
-#define mvwaddchstr UNDEF(mvwaddchstr)
-#endif
-
-#ifdef addnstr
-inline int UNDEF(addnstr)(const char *str, int n)
-{ return addnstr((char*)str, n); }
-#undef addnstr
-#define addnstr UNDEF(addnstr)
-#endif
-
-#ifdef mvwaddnstr
-inline int UNDEF(mvwaddnstr)(WINDOW *win, int y, int x, const char *str, int n)
-{ return mvwaddnstr(win, y, x, (char*)str, n); }
-#undef mvwaddnstr
-#define mvwaddnstr UNDEF(mvwaddnstr)
-#endif
-
-#ifdef mvwaddstr
-inline int UNDEF(mvwaddstr)(WINDOW *win, int y, int x, const char * str)
-{ return mvwaddstr(win, y, x, (char*)str); }
-#undef mvwaddstr
-#define mvwaddstr UNDEF(mvwaddstr)
-#endif
-
-#ifdef mvwdelch
-inline int UNDEF(mvwdelch)(WINDOW *win, int y, int x)
-{ return mvwdelch(win, y, x); }
-#undef mvwdelch
-#define mvwdelch UNDEF(mvwdelch)
-#endif
-
-#ifdef mvwgetch
-inline int UNDEF(mvwgetch)(WINDOW *win, int y, int x) { return mvwgetch(win, y, x);}
-#undef mvwgetch
-#define mvwgetch UNDEF(mvwgetch)
-#endif
-
-#ifdef mvwgetstr
-inline int UNDEF(mvwgetstr)(WINDOW *win, int y, int x, char *str)
-{return mvwgetstr(win,y,x, str);}
-#undef mvwgetstr
-#define mvwgetstr UNDEF(mvwgetstr)
-#endif
-
-#ifdef mvwgetnstr
-inline int UNDEF(mvwgetnstr)(WINDOW *win, int y, int x, char *str, int n)
-{return mvwgetnstr(win,y,x, str,n);}
-#undef mvwgetnstr
-#define mvwgetnstr UNDEF(mvwgetnstr)
-#endif
-
-#ifdef mvwinch
-inline chtype UNDEF(mvwinch)(WINDOW *win, int y, int x) {
- return mvwinch(win, y, x);}
-#undef mvwinch
-#define mvwinch UNDEF(mvwinch)
-#endif
-
-#ifdef mvwinsch
-inline int UNDEF(mvwinsch)(WINDOW *win, int y, int x, char c)
-{ return mvwinsch(win, y, x, c); }
-#undef mvwinsch
-#define mvwinsch UNDEF(mvwinsch)
-#endif
-
-#ifdef mvaddch
-inline int UNDEF(mvaddch)(int y, int x, chtype ch)
-{ return mvaddch(y, x, ch); }
-#undef mvaddch
-#define mvaddch UNDEF(mvaddch)
-#endif
-
-#ifdef mvaddnstr
-inline int UNDEF(mvaddnstr)(int y, int x, const char *str, int n)
-{ return mvaddnstr(y, x, (char*)str, n); }
-#undef mvaddnstr
-#define mvaddnstr UNDEF(mvaddnstr)
-#endif
-
-#ifdef mvaddstr
-inline int UNDEF(mvaddstr)(int y, int x, const char * str)
-{ return mvaddstr(y, x, (char*)str); }
-#undef mvaddstr
-#define mvaddstr UNDEF(mvaddstr)
-#endif
-
-#ifdef mvdelch
-inline int UNDEF(mvdelch)(int y, int x) { return mvdelch(y, x);}
-#undef mvdelch
-#define mvdelch UNDEF(mvdelch)
-#endif
-
-#ifdef mvgetch
-inline int UNDEF(mvgetch)(int y, int x) { return mvgetch(y, x);}
-#undef mvgetch
-#define mvgetch UNDEF(mvgetch)
-#endif
-
-#ifdef mvgetstr
-inline int UNDEF(mvgetstr)(int y, int x, char *str) {return mvgetstr(y, x, str);}
-#undef mvgetstr
-#define mvgetstr UNDEF(mvgetstr)
-#endif
-
-#ifdef mvgetnstr
-inline int UNDEF(mvgetnstr)(int y, int x, char *str, int n) {
- return mvgetnstr(y, x, str,n);}
-#undef mvgetnstr
-#define mvgetnstr UNDEF(mvgetnstr)
-#endif
-
-#ifdef mvinch
-inline chtype UNDEF(mvinch)(int y, int x) { return mvinch(y, x);}
-#undef mvinch
-#define mvinch UNDEF(mvinch)
-#endif
-
-#ifdef mvinsch
-inline int UNDEF(mvinsch)(int y, int x, char c)
-{ return mvinsch(y, x, c); }
-#undef mvinsch
-#define mvinsch UNDEF(mvinsch)
-#endif
-
-#ifdef napms
-inline void UNDEF(napms)(unsigned long x) { napms(x); }
-#undef napms
-#define napms UNDEF(napms)
-#endif
-
-#ifdef fixterm
-inline int UNDEF(fixterm)(void) { return fixterm(); }
-#undef fixterm
-#define fixterm UNDEF(fixterm)
-#endif
-
-#ifdef resetterm
-inline int UNDEF(resetterm)(void) { return resetterm(); }
-#undef resetterm
-#define resetterm UNDEF(resetterm)
-#endif
-
-#ifdef saveterm
-inline int UNDEF(saveterm)(void) { return saveterm(); }
-#undef saveterm
-#define saveterm UNDEF(saveterm)
-#endif
-
-#ifdef crmode
-inline int UNDEF(crmode)(void) { return crmode(); }
-#undef crmode
-#define crmode UNDEF(crmode)
-#endif
-
-#ifdef nocrmode
-inline int UNDEF(nocrmode)(void) { return nocrmode(); }
-#undef nocrmode
-#define nocrmode UNDEF(nocrmode)
-#endif
-
-#ifdef getbkgd
-inline chtype UNDEF(getbkgd)(const WINDOW *win) { return getbkgd(win); }
-#undef getbkgd
-#define getbkgd UNDEF(getbkgd)
-#endif
-
-#ifdef bkgd
-inline int UNDEF(bkgd)(chtype ch) { return bkgd(ch); }
-#undef bkgd
-#define bkgd UNDEF(bkgd)
-#endif
-
-#ifdef bkgdset
-inline void UNDEF(bkgdset)(chtype ch) { bkgdset(ch); }
-#undef bkgdset
-#define bkgdset UNDEF(bkgdset)
-#endif
-
-/*
- *
- * C++ class for windows.
- *
- *
- */
-
-class NCURSES_IMPEXP NCursesWindow
-{
- friend class NCursesMenu;
- friend class NCursesForm;
-
-private:
- static bool b_initialized;
- static void initialize();
- static int ripoff_init(WINDOW *,int);
-
- void init();
-
- short getcolor(int getback) const;
-
- static int setpalette(short fore, short back, short pair);
- static int colorInitialized;
-
- // This private constructor is only used during the initialization
- // of windows generated by ripoffline() calls.
- NCursesWindow(WINDOW* win, int cols);
-
-protected:
- void err_handler(const char *) const THROWS(NCursesException);
- // Signal an error with the given message text.
-
- static long count; // count of all active windows:
- // We rely on the c++ promise that
- // all otherwise uninitialized
- // static class vars are set to 0
-
- WINDOW* w; // the curses 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
-
- void kill_subwindows(); // disable all subwindows
- // Destroy all subwindows.
-
- /* Only for use by derived classes. They are then in charge to
- fill the member variables correctly. */
- NCursesWindow();
-
-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(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', begin_y & begin_x are
- // absolute screen pos, else if `r', they are relative to par origin
-
- NCursesWindow(NCursesWindow& par,// parent window
- bool do_box = TRUE);
- // this is the very common case that we want to create the subwindow that
- // is two lines and two columns smaller and begins at (1,1).
- // We may automatically request the box around it.
-
- virtual ~NCursesWindow();
-
- NCursesWindow Clone();
- // Make an exact copy of the window.
-
- // Initialization.
- static void useColors(void);
- // Call this routine very early if you want to have colors.
-
- static int ripoffline(int ripoff_lines,
- 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.
- // This function must be called before any other ncurses function. The
- // creation of the window is deferred until ncurses gets initialized.
- // The initialization function is then called.
-
- // -------------------------------------------------------------------------
- // terminal status
- // -------------------------------------------------------------------------
- int lines() const { initialize(); return LINES; }
- // Number of lines on terminal, *not* window
-
- int cols() const { initialize(); return COLS; }
- // Number of cols on terminal, *not* window
-
- int tabsize() const { initialize(); return TABSIZE; }
- // Size of a tab on terminal, *not* window
-
- static int NumberOfColors();
- // Number of available colors
-
- int colors() const { return NumberOfColors(); }
- // Number of available colors
-
- // -------------------------------------------------------------------------
- // window status
- // -------------------------------------------------------------------------
- int height() const { return maxy() + 1; }
- // Number of lines in this window
-
- int width() const { return maxx() + 1; }
- // Number of columns in this window
-
- int begx() const { return w->_begx; }
- // Column of top left corner relative to stdscr
-
- int begy() const { return w->_begy; }
- // Line of top left corner relative to stdscr
-
- int maxx() const { return w->_maxx; }
- // Largest x coord in window
-
- int maxy() const { return w->_maxy; }
- // Largest y coord in window
-
- short getcolor() const;
- // Actual color pair
-
- short foreground() const { return getcolor(0); }
- // Actual foreground color
-
- short background() const { return getcolor(1); }
- // Actual background color
-
- int setpalette(short fore, short back);
- // Set color palette entry
-
- int setcolor(short pair);
- // Set actually used palette entry
-
- // -------------------------------------------------------------------------
- // window positioning
- // -------------------------------------------------------------------------
- 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.
-
- // -------------------------------------------------------------------------
- // coordinate positioning
- // -------------------------------------------------------------------------
- int move(int y, int x) { return ::wmove(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
-
- 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.
-
- // -------------------------------------------------------------------------
- // input
- // -------------------------------------------------------------------------
- int getch() { return ::wgetch(w); }
- // 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) {
- 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) {
- return ::mvwgetnstr(w,y,x,str,n); }
- // Move the cursor to the requested position and then perform the getstr()
- // as described above.
-
- int instr(char *s, int n=-1) { return ::winnstr(w,s,n); }
- // Get a string of characters from the window into the buffer s. Retrieve
- // at most n characters, if n is negative retrieve all characters up to the
- // end of the current line. Attributes are stripped from the characters.
-
- int instr(int y, int x, char *s, int n=-1) {
- return ::mvwinnstr(w,y,x,s,n); }
- // Move the cursor to the requested position and then perform the instr()
- // as described above.
-
- int scanw(const char* fmt, ...)
- // Perform a scanw function from the window.
-#if __GNUG__ >= 2
- __attribute__ ((format (scanf, 2, 3)));
-#else
- ;
-#endif
-
- int scanw(int y, int x, const char* fmt, ...)
- // Move the cursor to the requested position and then perform a scanw
- // from the window.
-#if __GNUG__ >= 2
- __attribute__ ((format (scanf, 4, 5)));
-#else
- ;
-#endif
-
- // -------------------------------------------------------------------------
- // output
- // -------------------------------------------------------------------------
- int addch(const chtype ch) { return ::waddch(w, ch); }
- // Put attributed character to the window.
-
- int addch(int y, int x, const chtype ch) {
- return ::mvwaddch(w,y,x,ch); }
- // Move cursor to the requested position and then put attributed character
- // to the window.
-
- 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) {
- 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.
-
- int addstr(int y, int x, const char * str, int n=-1) {
- return ::mvwaddnstr(w,y,x,(char*)str,n); }
- // Move the cursor to the requested position and then perform the addstr
- // as described above.
-
- int printw(const char* fmt, ...)
- // Do a formatted print to the window.
-#if (__GNUG__ >= 2) && !defined(printf)
- __attribute__ ((format (printf, 2, 3)));
-#else
- ;
-#endif
-
- int printw(int y, int x, const char * fmt, ...)
- // Move the cursor and then do a formatted print to the window.
-#if (__GNUG__ >= 2) && !defined(printf)
- __attribute__ ((format (printf, 4, 5)));
-#else
- ;
-#endif
-
- chtype inch() const { return ::winch(w); }
- // Retrieve attributed character under the current cursor position.
-
- chtype inch(int y, int x) { return ::mvwinch(w,y,x); }
- // Move cursor to requested position and then retrieve attributed character
- // at this position.
-
- int insch(chtype ch) { return ::winsch(w, ch); }
- // Insert attributed character into the window before current cursor
- // position.
-
- int insch(int y, int x, chtype ch) {
- return ::mvwinsch(w,y,x,(char)ch); }
- // Move cursor to requested position and then insert the attributed
- // character before that position.
-
- 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 insstr(const char *s, int n=-1) {
- return ::winsnstr(w,s,n); }
- // 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()
- // as described above.
-
- 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 attrset(chtype at) { return ::wattrset(w, (int) at); }
- // Set the window attributes;
-
- int color_set(short color_pair_number, void* opts=NULL) {
- return ::wcolor_set(w, color_pair_number, opts); }
- // Set the window color attribute;
-
- int chgat(int n,attr_t attr, short color, const void *opts=NULL) {
- return ::wchgat(w,n,attr,color,opts); }
- // Change the attributes of the next n characters in the current line. If
- // n is negative or greater than the number of remaining characters in the
- // line, the attributes will be changed up to the end of the line.
-
- int chgat(int y, int x,
- int n,attr_t attr, short color, const void *opts=NULL) {
- return ::mvwchgat(w,y,x,n,attr,color,opts); }
- // Move the cursor to the requested position and then perform chgat() as
- // described above.
-
- // -------------------------------------------------------------------------
- // background
- // -------------------------------------------------------------------------
- chtype getbkgd() const { return ::getbkgd(w); }
- // Get current background setting.
-
- int bkgd(const chtype ch) { return ::wbkgd(w,ch); }
- // Set the background property and apply it to the window.
-
- void bkgdset(chtype ch) { ::wbkgdset(w,ch); }
- // Set the background property.
-
- // -------------------------------------------------------------------------
- // borders
- // -------------------------------------------------------------------------
- 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
- // 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,
- chtype top =0, chtype bottom=0,
- chtype top_left =0, chtype top_right=0,
- chtype bottom_left =0, chtype bottom_right=0) {
- return ::wborder(w,left,right,top,bottom,top_left,top_right,
- bottom_left,bottom_right); }
- // Draw a border around the window with the given characters for the
- // various parts of the border. If you pass zero for a character, curses
- // will try to find "nice" characters.
-
- // -------------------------------------------------------------------------
- // lines and boxes
- // -------------------------------------------------------------------------
- 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.
-
- int hline(int y, int x, int len, chtype ch=0) {
- return ::mvwhline(w,y,x,ch,len); }
- // Move the cursor to the requested position and then draw a horizontal line.
-
- int vline(int len, chtype ch=0) { return ::wvline(w, ch, len); }
- // Draw a vertical line of len characters with the given character. If
- // you pass zero for the character, curses will try to find a "nice" one.
-
- 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
- // -------------------------------------------------------------------------
- int erase() { return ::werase(w); }
- // Erase the window.
-
- int clear() { return ::wclear(w); }
- // Clear the window.
-
- int clearok(bool bf) { return ::clearok(w, bf); }
- // Set/Reset the clear flag. If set, the next refresh() will clear the
- // screen.
-
- int clrtobot() { return ::wclrtobot(w); }
- // Clear to the end of the window.
-
- int clrtoeol() { return ::wclrtoeol(w); }
- // Clear to the end of the line.
-
- int delch() { return ::wdelch(w); }
- // 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
- // cursor.
-
- int deleteln() { return ::winsdelln(w,-1); }
- // Delete the current line.
-
- // -------------------------------------------------------------------------
- // screen control
- // -------------------------------------------------------------------------
- int scroll(int amount=1) { return ::wscrl(w,amount); }
- // Scroll amount lines. If amount is positive, scroll up, otherwise
- // scroll down.
-
- int scrollok(bool bf) { return ::scrollok(w, bf); }
- // If bf is TRUE, window scrolls if cursor is moved off the bottom
- // edge of the window or a scrolling region, otherwise the cursor is left
- // at the bottom line.
-
- int setscrreg(int from, int to) {
- return ::wsetscrreg(w,from,to); }
- // Define a soft scrolling region.
-
- int idlok(bool bf) { return ::idlok(w, bf); }
- // If bf is TRUE, use insert/delete line hardware support if possible.
- // Otherwise do it in software.
-
-
- void idcok(bool bf) { ::idcok(w, bf); }
- // If bf is TRUE, use insert/delete character hardware support if possible.
- // Otherwise do it in software.
-
- int touchwin() { return ::wtouchln(w,0,height(),1); }
- // Mark the whole window as modified.
-
- int untouchwin() { return ::wtouchln(w,0,height(),0); }
- // Mark the whole window as unmodified.
-
- 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.
-
- bool is_linetouched(int line) const {
- return (::is_linetouched(w,line) ? TRUE:FALSE); }
- // Return TRUE if line is marked as changed, FALSE otherwise
-
- bool is_wintouched() const {
- return (::is_wintouched(w) ? TRUE:FALSE); }
- // 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
- // it is after the update.
-
- int redrawln(int from, int n) { return ::wredrawln(w,from,n); }
- // Redraw n lines starting from the requested line
-
- int redrawwin() { return ::wredrawln(w,0,height()); }
- // Redraw the whole window
-
- int doupdate() { return ::doupdate(); }
- // Do all outputs to make the physical screen looking like the virtual one
-
- void syncdown() { ::wsyncdown(w); }
- // Propagate the changes down to all descendant windows
-
- void syncup() { ::wsyncup(w); }
- // Propagate the changes up in the hierarchy
-
- void cursyncup() { ::wcursyncup(w); }
- // Position the cursor in all ancestor windows corresponding to our setting
-
- int syncok(bool bf) { return ::syncok(w,bf); }
- // If called with bf=TRUE, syncup() is called whenever the window is changed
-
-#ifndef _no_flushok
- int flushok(bool bf) { return ::flushok(w, bf); }
-#endif
-
- void immedok(bool bf) { ::immedok(w,bf); }
- // If called with bf=TRUE, any change in the window will cause an
- // automatic immediate refresh()
-
- int keypad(bool bf) { return ::keypad(w, bf); }
- // If called with bf=TRUE, the application will interpret function keys.
-
- 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.
-
- int standout() { return ::wstandout(w); }
- // Enable "standout" attributes
-
- int standend() { return ::wstandend(w); }
- // Disable "standout" attributes
-
- // -------------------------------------------------------------------------
- // The next two are virtual, because we redefine them in the
- // NCursesPanel class.
- // -------------------------------------------------------------------------
- virtual int refresh() { return ::wrefresh(w); }
- // Propagate the changes in this window to the virtual screen and call
- // doupdate(). This is redefined in NCursesPanel.
-
- virtual int noutrefresh() { return ::wnoutrefresh(w); }
- // Propagate the changes in this window to the virtual screen. This is
- // redefined in NCursesPanel.
-
- // -------------------------------------------------------------------------
- // multiple window control
- // -------------------------------------------------------------------------
- int overlay(NCursesWindow& win) {
- return ::overlay(w, win.w); }
- // Overlay this window over win.
-
- int overwrite(NCursesWindow& win) {
- return ::overwrite(w, win.w); }
- // Overwrite win with this window.
-
- int copywin(NCursesWindow& win,
- int sminrow, int smincol,
- int dminrow, int dmincol,
- int dmaxrow, int dmaxcol, bool overlay=TRUE) {
- return ::copywin(w,win.w,sminrow,smincol,dminrow,dmincol,
- dmaxrow,dmaxcol,(int)(overlay?1:0)); }
- // Overlay or overwrite the rectangle in win given by dminrow,dmincol,
- // dmaxrow,dmaxcol with the rectangle in this window beginning at
- // sminrow,smincol.
-
- // -------------------------------------------------------------------------
- // Mouse related
- // -------------------------------------------------------------------------
- bool has_mouse() const;
- // Return TRUE if terminal supports a mouse, FALSE otherwise
-
- // -------------------------------------------------------------------------
- // traversal support
- // -------------------------------------------------------------------------
- NCursesWindow* child() { return subwins; }
- // Get the first child window.
-
- NCursesWindow* sibling() { return sib; }
- // Get the next child of my parent.
-
- NCursesWindow* parent() { return par; }
- // Get my parent.
-
- bool isDescendant(NCursesWindow& win);
- // Return TRUE if win is a descendant of this.
-};
-
-// -------------------------------------------------------------------------
-// We leave this here for compatibility reasons.
-// -------------------------------------------------------------------------
-class NCURSES_IMPEXP NCursesColorWindow : public NCursesWindow {
-public:
- NCursesColorWindow(WINDOW* &window) // useful only for stdscr
- : NCursesWindow(window) {
- useColors(); }
-
- NCursesColorWindow(int lines, // number of lines
- int cols, // number of columns
- int begin_y, // line origin
- int begin_x) // col origin
- : NCursesWindow(lines,cols,begin_y,begin_x) {
- useColors(); }
-
- NCursesColorWindow(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
- : NCursesWindow(par,lines,cols, // absolute screen pos,
- begin_y,begin_x, // else if `r', they are
- absrel ) { // relative to par origin
- useColors(); }
-};
-
-// These enum definitions really belong inside the NCursesPad class, but only
-// recent compilers support that feature.
-
- typedef enum {
- REQ_PAD_REFRESH = KEY_MAX + 1,
- REQ_PAD_UP,
- REQ_PAD_DOWN,
- REQ_PAD_LEFT,
- REQ_PAD_RIGHT,
- REQ_PAD_EXIT
- } Pad_Request;
-
- const Pad_Request PAD_LOW = REQ_PAD_REFRESH; // lowest op-code
- const Pad_Request PAD_HIGH = REQ_PAD_EXIT; // highest op-code
-
-// -------------------------------------------------------------------------
-// Pad Support. We allow an association of a pad with a "real" window
-// through which the pad may be viewed.
-// -------------------------------------------------------------------------
-class NCURSES_IMPEXP NCursesPad : public NCursesWindow {
-private:
- NCursesWindow* viewWin; // the "viewport" window
- NCursesWindow* viewSub; // the "viewport" subwindow
-
- int h_gridsize, v_gridsize;
-
-protected:
- int min_row, min_col; // top left row/col of the pads display area
-
- NCursesWindow* Win(void) const {
- // Get the window into which the pad should be copied (if any)
- return (viewSub?viewSub:(viewWin?viewWin:0));
- }
-
- NCursesWindow* getWindow(void) const {
- return viewWin;
- }
-
- NCursesWindow* getSubWindow(void) const {
- return viewSub;
- }
-
- virtual int driver (int key); // Virtualize keystroke key
- // The driver translates the keystroke c into an Pad_Request
-
- virtual void OnUnknownOperation(int pad_req) {
- ::beep();
- }
- // This is called if the driver returns an unknown op-code
-
- virtual void OnNavigationError(int pad_req) {
- ::beep();
- }
- // This is called if a navigation request couldn't be satisfied
-
- virtual void OnOperation(int pad_req) {
- };
- // OnOperation is called if a Pad_Operation was executed and just before
- // the refresh() operation is done.
-
-public:
- NCursesPad(int lines, int cols);
- // create a pad with the given size
-
- virtual ~NCursesPad() {}
-
- 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(int pminrow, int pmincol,
- int sminrow, int smincol,
- int smaxrow, int smaxcol) {
- return ::prefresh(w,pminrow,pmincol,
- sminrow,smincol,smaxrow,smaxcol);
- }
- // The coordinates sminrow,smincol,smaxrow,smaxcol describe a rectangle
- // on the screen. <b>refresh</b> copies a rectangle of this size beginning
- // with top left corner pminrow,pmincol onto the screen and calls doupdate().
-
- int noutrefresh();
- // If a viewport is defined the pad is displayed in this window, otherwise
- // this is a noop.
-
- int noutrefresh(int pminrow, int pmincol,
- int sminrow, int smincol,
- int smaxrow, int smaxcol) {
- return ::pnoutrefresh(w,pminrow,pmincol,
- sminrow,smincol,smaxrow,smaxcol);
- }
- // 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 setSubWindow(NCursesWindow& sub);
- // Use the subwindow "sub" of the viewport window for the actual viewing.
- // The full viewport window is usually used to provide some decorations
- // like frames, titles etc.
-
- virtual void operator() (void);
- // Perform Pad's operation
-};
-
-// A FramedPad is constructed always with a viewport window. This viewport
-// will be framed (by a box() command) and the interior of the box is the
-// viewport subwindow. On the frame we display scrollbar sliders.
-class NCURSES_IMPEXP NCursesFramedPad : public NCursesPad {
-protected:
- virtual void OnOperation(int pad_req);
-
-public:
- NCursesFramedPad(NCursesWindow& win, int lines, int cols,
- int v_grid = 1, int h_grid = 1)
- : NCursesPad(lines,cols) {
- NCursesPad::setWindow(win,v_grid,h_grid);
- NCursesPad::setSubWindow(*(new NCursesWindow(win)));
- }
- // Construct the FramedPad with the given Window win as viewport.
-
- virtual ~NCursesFramedPad() {
- delete getSubWindow();
- }
-
- void setWindow(NCursesWindow& view, int v_grid = 1, int h_grid = 1) {
- err_handler("Operation not allowed");
- }
- // Disable this call; the viewport is already defined
-
- void setSubWindow(NCursesWindow& sub) {
- err_handler("Operation not allowed");
- }
- // Disable this call; the viewport subwindow is already defined
-
-};
-
-#endif // NCURSES_CURSESW_H_incl
diff --git a/ncurses-5.3/c++/cursslk.cc b/ncurses-5.3/c++/cursslk.cc
deleted file mode 100644
index 9ca2991..0000000
--- a/ncurses-5.3/c++/cursslk.cc
+++ /dev/null
@@ -1,123 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "internal.h"
-#include "cursslk.h"
-#include "cursesapp.h"
-#include <string.h>
-
-MODULE_ID("$Id$")
-
-void Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text) {
- delete[] label;
- label = new char[1 + ::strlen(text)];
- (::strcpy)(label,text);
-}
-
-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::format = None;
-
-void Soft_Label_Key_Set::init() {
- slk_array = new Soft_Label_Key[num_labels];
- for(int i=0; i < num_labels; i++) {
- slk_array[i].num = i+1;
- }
- b_attrInit = FALSE;
-}
-
-Soft_Label_Key_Set::Soft_Label_Key_Set() {
- if (format==None)
- Error("No default SLK layout");
- init();
-}
-
-Soft_Label_Key_Set::Soft_Label_Key_Set(Soft_Label_Key_Set::Label_Layout fmt) {
- if (fmt==None)
- Error("Invalid SLK Layout");
- if (count++==0) {
- format = fmt;
- if (ERR == ::slk_init((int)fmt))
- Error("slk_init");
- num_labels = (fmt>=PC_Style?12:8);
- }
- else if (fmt!=format)
- Error("All SLKs must have same layout");
- init();
-}
-
-Soft_Label_Key_Set::~Soft_Label_Key_Set() {
- if (!::isendwin())
- clear();
- delete[] slk_array;
- count--;
-}
-
-Soft_Label_Key_Set::Soft_Label_Key& Soft_Label_Key_Set::operator[](int i) {
- if (i<1 || i>num_labels)
- Error("Invalid Label index");
- return slk_array[i-1];
-}
-
-void Soft_Label_Key_Set::activate_label(int i, bool bf) {
- if (!b_attrInit) {
- NCursesApplication* A = NCursesApplication::getApplication();
- if (A) attrset(A->labels());
- b_attrInit = TRUE;
- }
- Soft_Label_Key& K = (*this)[i];
- if (ERR==::slk_set(K.num,bf?K.label:"",K.format))
- Error("slk_set");
- noutrefresh();
-}
-
-void Soft_Label_Key_Set::activate_labels(bool bf) {
- if (!b_attrInit) {
- NCursesApplication* A = NCursesApplication::getApplication();
- if (A) attrset(A->labels());
- b_attrInit = TRUE;
- }
- for(int i=1; i <= num_labels; i++) {
- Soft_Label_Key& K = (*this)[i];
- if (ERR==::slk_set(K.num,bf?K.label:"",K.format))
- Error("slk_set");
- }
- if (bf)
- restore();
- else
- clear();
- noutrefresh();
-}
diff --git a/ncurses-5.3/c++/cursslk.h b/ncurses-5.3/c++/cursslk.h
deleted file mode 100644
index 96fad50..0000000
--- a/ncurses-5.3/c++/cursslk.h
+++ /dev/null
@@ -1,206 +0,0 @@
-// * this is for making emacs happy: -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef NCURSES_CURSSLK_H_incl
-#define NCURSES_CURSSLK_H_incl
-
-#include <cursesw.h>
-
-class NCURSES_IMPEXP Soft_Label_Key_Set {
-public:
- // This inner class represents the attributes of a Soft Label Key (SLK)
- class NCURSES_IMPEXP Soft_Label_Key {
- friend class Soft_Label_Key_Set;
- public:
- typedef enum { Left=0, Center=1, Right=2 } Justification;
-
- private:
- char *label; // The Text of the Label
- Justification format; // The Justification
- int num; // The number of the Label
-
- Soft_Label_Key() : label((char*)0),format(Left),num(-1) {
- }
-
- virtual ~Soft_Label_Key() {
- delete[] label;
- };
-
- public:
- // Set the text of the Label
- void operator=(char *text);
-
- // Set the Justification of the Label
- inline void operator=(Justification just) {
- format = just;
- }
-
- // Retrieve the text of the label
- inline char* operator()(void) const {
- return label;
- }
- };
-
-public:
- typedef enum {
- None = -1,
- Three_Two_Three = 0,
- Four_Four = 1,
- PC_Style = 2,
- PC_Style_With_Index = 3
- } Label_Layout;
-
-private:
- 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
-
- // Init the Key Set
- void init();
-
- // Activate or Deactivate Label# i, Label counting starts with 1!
- void activate_label(int i, bool bf=TRUE);
-
- // Activate of Deactivate all Labels
- void activate_labels(bool bf);
-
-protected:
- inline void Error (const char* msg) const THROWS(NCursesException) {
- THROW(new NCursesException (msg));
- }
-
- // Remove SLK's from screen
- void clear() {
- if (ERR==::slk_clear())
- Error("slk_clear");
- }
-
- // Restore them
- void restore() {
- if (ERR==::slk_restore())
- Error("slk_restore");
- }
-
-public:
-
- // Construct a Key Set, use the most comfortable layout as default.
- // You must create a Soft_Label_Key_Set before you create any object of
- // the NCursesWindow, NCursesPanel or derived classes. (Actually before
- // ::initscr() is called).
- Soft_Label_Key_Set(Label_Layout fmt);
-
- // This constructor assumes, that you already constructed a Key Set
- // with a layout by the constructor above. This layout will be reused.
- NCURSES_IMPEXP Soft_Label_Key_Set();
-
- virtual ~Soft_Label_Key_Set();
-
- // Get Label# i. Label counting starts with 1!
- NCURSES_IMPEXP Soft_Label_Key& operator[](int i);
-
- // Retrieve number of Labels
- inline int labels() const { return num_labels; }
-
- // Refresh the SLK portion of the screen
- inline void refresh() {
- if (ERR==::slk_refresh())
- Error("slk_refresh");
- }
-
- // Mark the SLK portion of the screen for refresh, defer actual refresh
- // until next update call.
- inline void noutrefresh() {
- if (ERR==::slk_noutrefresh())
- Error("slk_noutrefresh");
- }
-
- // Mark the whole SLK portion of the screen as modified
- inline void touch() {
- if (ERR==::slk_touch())
- Error("slk_touch");
- }
-
- // Activate Label# i
- inline void show(int i) {
- activate_label(i,FALSE);
- activate_label(i,TRUE);
- }
-
- // Hide Label# i
- inline void hide(int i) {
- activate_label(i,FALSE);
- }
-
- // Show all Labels
- inline void show() {
- activate_labels(FALSE);
- activate_labels(TRUE);
- }
-
- // Hide all Labels
- inline void hide() {
- activate_labels(FALSE);
- }
-
- inline void attron(attr_t attrs) {
- if (ERR==::slk_attron(attrs))
- Error("slk_attron");
- }
-
- inline void attroff(attr_t attrs) {
- if (ERR==::slk_attroff(attrs))
- Error("slk_attroff");
- }
-
- inline void attrset(attr_t attrs) {
- if (ERR==::slk_attrset(attrs))
- Error("slk_attrset");
- }
-
- inline void color(short color_pair_number) {
- if (ERR==::slk_color(color_pair_number))
- Error("slk_color");
- }
-
- inline attr_t attr() const {
- return ::slk_attr();
- }
-};
-
-#endif // NCURSES_CURSSLK_H_incl
diff --git a/ncurses-5.3/c++/demo.cc b/ncurses-5.3/c++/demo.cc
deleted file mode 100644
index b9ab59b..0000000
--- a/ncurses-5.3/c++/demo.cc
+++ /dev/null
@@ -1,493 +0,0 @@
-/*
- * Silly demo program for the NCursesPanel class.
- *
- * written by Anatoly Ivasyuk (anatoly@nick.csh.rit.edu)
- *
- * Demo code for NCursesMenu and NCursesForm written by
- * Juergen Pfeifer
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
- *
- * $Id$
- */
-
-#include "cursesapp.h"
-#include "cursesm.h"
-#include "cursesf.h"
-
-#if HAVE_LIBC_H
-# include <libc.h>
-#endif
-
-extern "C" unsigned int sleep(unsigned int);
-
-#undef index // needed for NeXT
-
-//
-// -------------------------------------------------------------------------
-//
-class SillyDemo
-{
- public:
- void run(int sleeptime) {
-
- NCursesPanel *std = new NCursesPanel();
-
- // Make a few small demo panels
-
- NCursesPanel *u = new NCursesPanel(8,20,12,4);
- NCursesPanel *v = new NCursesPanel(8,20,10,6);
- NCursesPanel *w = new NCursesPanel(8,20,8,8);
- NCursesPanel *x = new NCursesPanel(8,20,6,10);
- NCursesPanel *y = new NCursesPanel(8,20,4,12);
- NCursesPanel *z = new NCursesPanel(8,30,2,14);
-
- // Draw something on the main screen, so we can see what happens
- // when panels get moved or deleted.
-
- std->box();
- std->move(std->height()/2,1);
- std->hline(std->width()-2);
- std->move(1,std->width()/2);
- std->vline(std->height()-2);
- std->addch(0,std->width()/2,ACS_TTEE);
- std->addch(std->height()-1,std->width()/2,ACS_BTEE);
- std->addch(std->height()/2,0,ACS_LTEE);
- std->addch(std->height()/2,std->width()-1,ACS_RTEE);
- std->addch(std->height()/2,std->width()/2,ACS_PLUS);
-
- // Draw frames with titles around panels so that we can see where
- // the panels are located.
- u->boldframe("Win U");
- v->frame("Win V");
- w->boldframe("Win W");
- x->frame("Win X");
- y->boldframe("Win Y");
- z->frame("Win Z");
- if (NCursesApplication::getApplication()->useColors()) {
- u->bkgd(' '|COLOR_PAIR(1));
- w->bkgd(' '|COLOR_PAIR(1));
- y->bkgd(' '|COLOR_PAIR(1));
- v->bkgd(' '|COLOR_PAIR(2));
- x->bkgd(' '|COLOR_PAIR(2));
- z->bkgd(' '|COLOR_PAIR(2));
- }
-
- // A refresh to any valid panel updates all panels and refreshes
- // the screen. Using std is just convenient - We know it's always
- // valid until the end of the program.
-
- std->refresh();
- sleep(sleeptime);
-
- // Show what happens when panels are deleted and moved.
-
- sleep(sleeptime);
- delete u;
- std->refresh();
-
- sleep(sleeptime);
- delete z;
- std->refresh();
-
- sleep(sleeptime);
- delete v;
- std->refresh();
-
- // show how it looks when a panel moves
- sleep(sleeptime);
- y->mvwin(5,30);
- std->refresh();
-
- sleep(sleeptime);
- delete y;
- std->refresh();
-
- // show how it looks when you raise a panel
- sleep(sleeptime);
- w->top();
- std->refresh();
-
- sleep(sleeptime);
- delete w;
- std->refresh();
-
- sleep(sleeptime);
- delete x;
-
- std->clear();
- std->refresh();
-
- // Don't forget to clean up the main screen. Since this is the
- // last thing using NCursesWindow, this has the effect of
- // shutting down ncurses and restoring the terminal state.
-
- sleep(sleeptime);
- delete std;
- }
-};
-
-class UserData
-{
-private:
- int u;
-public:
- UserData(int x) : u(x) {}
- int sleeptime() const { return u; }
-};
-//
-// -------------------------------------------------------------------------
-//
-template<class T> class MyAction : public NCursesUserItem<T>
-{
-public:
- MyAction (const char* p_name,
- const T* p_UserData)
- : NCursesUserItem<T>(p_name, (const char*)0, p_UserData)
- {};
-
- ~MyAction() {}
-
- bool action() {
- SillyDemo a;
- a.run(NCursesUserItem<T>::UserData()->sleeptime());
- return FALSE;
- }
-};
-
-class QuitItem : public NCursesMenuItem
-{
-public:
- QuitItem() : NCursesMenuItem("Quit") {
- }
-
- bool action() {
- return TRUE;
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class Label : public NCursesFormField
-{
-public:
- Label(const char* title,
- int row, int col)
- : NCursesFormField(1,(int)::strlen(title),row,col) {
- set_value(title);
- options_off(O_EDIT|O_ACTIVE);
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class MyFieldType : public UserDefinedFieldType {
-private:
- int chk;
-protected:
- bool field_check(NCursesFormField& f) {
- return TRUE;
- }
- bool char_check(int c) {
- return (c==chk?TRUE:FALSE);
- }
-public:
- MyFieldType(int x) : chk(x) {
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class TestForm : public NCursesForm
-{
-private:
- NCursesFormField** F;
- MyFieldType* mft;
- Integer_Field *ift;
- Enumeration_Field *eft;
-
- static char *weekdays[];
-
-public:
- TestForm() : NCursesForm(13,51,(lines()-15)/2,(cols()-53)/2) {
-
- F = new NCursesFormField*[10];
- mft = new MyFieldType('X');
- ift = new Integer_Field(0,1,10);
- eft = new Enumeration_Field(weekdays);
-
- F[0] = new Label("Demo Entry Form",0,16);
- F[1] = new Label("Weekday Enum",2,1);
- F[2] = new Label("Number(1-10)",2,21);
- F[3] = new Label("Only 'X'",2,35);
- F[4] = new Label("Multiline Field (Dynamic and Scrollable)",5,1);
- F[5] = new NCursesFormField(1,18,3,1);
- F[6] = new NCursesFormField(1,12,3,21);
- F[7] = new NCursesFormField(1,12,3,35);
- F[8] = new NCursesFormField(4,46,6,1,2);
- F[9] = new NCursesFormField();
-
- InitForm(F,TRUE,TRUE);
- boldframe();
-
- F[5]->set_fieldtype(*eft);
- F[6]->set_fieldtype(*ift);
-
- F[7]->set_fieldtype(*mft);
- F[7]->set_maximum_growth(20); // max. 20 characters
- F[7]->options_off(O_STATIC); // make field dynamic
-
- F[8]->set_maximum_growth(10); // max. 10 lines
- F[8]->options_off(O_STATIC); // make field dynamic
- }
-
- ~TestForm() {
- delete mft;
- delete ift;
- delete eft;
- }
-};
-
-char* TestForm::weekdays[] = {
- "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
- "Friday", "Saturday", (char *)0 };
-//
-// -------------------------------------------------------------------------
-//
-class FormAction : public NCursesMenuItem
-{
-public:
- FormAction(const char *s) : NCursesMenuItem(s) {
- }
-
- bool action() {
- TestForm F;
- Soft_Label_Key_Set* S = new Soft_Label_Key_Set;
- for(int i=1; i <= S->labels(); i++) {
- char buf[5];
- ::sprintf(buf,"Frm%02d",i);
- (*S)[i] = buf; // Text
- (*S)[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
- }
- NCursesApplication::getApplication()->push(*S);
- F();
- NCursesApplication::getApplication()->pop();
- return FALSE;
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class PadAction : public NCursesMenuItem
-{
-public:
- PadAction(const char* s) : NCursesMenuItem(s) {
- }
-
- bool action() {
- const int GRIDSIZE = 3;
- const int PADSIZE = 200;
- unsigned gridcount = 0;
-
- NCursesPanel std;
- NCursesPanel P(std.lines()-2,std.cols()-2,1,1);
- NCursesFramedPad FP(P,PADSIZE,PADSIZE);
-
- 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(' ');
- }
- }
-
- P.label("Pad Demo",NULL);
- FP();
- P.clear();
- return FALSE;
- }
-};
-
-//
-// -------------------------------------------------------------------------
-//
-class PassiveItem : public NCursesMenuItem {
-public:
- PassiveItem(const char* text) : NCursesMenuItem(text) {
- 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;
- }
-};
-
-//
-// -------------------------------------------------------------------------
-//
-class MyMenu : public NCursesMenu
-{
-private:
- NCursesPanel* P;
- NCursesMenuItem** I;
- UserData *u;
- #define n_items 7
-
-public:
- MyMenu ()
- : NCursesMenu (n_items+2, 8, (lines()-10)/2, (cols()-10)/2)
- {
- u = new UserData(1);
- I = new NCursesMenuItem*[1+n_items];
- I[0] = new PassiveItem("One");
- I[1] = new PassiveItem("Two");
- I[2] = new MyAction<UserData> ("Silly", u);
- I[3] = new FormAction("Form");
- I[4] = new PadAction("Pad");
- I[5] = new ScanAction("Scan");
- I[6] = new QuitItem();
- I[7] = new NCursesMenuItem(); // Terminating empty item
-
- InitMenu(I,TRUE,TRUE);
-
- P = new NCursesPanel(1,n_items,LINES-1,1);
- boldframe("Demo","Silly");
- P->show();
- }
-
- ~MyMenu()
- {
- P->hide();
- delete P;
- delete u;
- }
-
- virtual void On_Menu_Init()
- {
- NCursesWindow W(::stdscr);
- P->move(0,0);
- P->clrtoeol();
- for(int i=1; i<=count(); i++)
- P->addch('0' + i);
- P->bkgd(W.getbkgd());
- refresh();
- }
-
- virtual void On_Menu_Termination()
- {
- P->move(0,0);
- P->clrtoeol();
- refresh();
- }
-
- virtual void On_Item_Init(NCursesMenuItem& item)
- {
- P->move(0,item.index());
- P->attron(A_REVERSE);
- P->printw("%1d",1+item.index());
- P->attroff(A_REVERSE);
- refresh();
- }
-
- virtual void On_Item_Termination(NCursesMenuItem& item)
- {
- P->move(0,item.index());
- P->attroff(A_REVERSE);
- P->printw("%1d",1+item.index());
- refresh();
- }
-};
-//
-// -------------------------------------------------------------------------
-//
-class TestApplication : public NCursesApplication {
-protected:
- int titlesize() const { return 1; }
- void title();
- Soft_Label_Key_Set::Label_Layout useSLKs() const {
- return Soft_Label_Key_Set::PC_Style_With_Index;
- }
- void init_labels(Soft_Label_Key_Set& S) const;
-
-public:
- TestApplication() : NCursesApplication(TRUE) {
- }
-
- int run();
-};
-
-void TestApplication::init_labels(Soft_Label_Key_Set& S) const {
- for(int i=1; i <= S.labels(); i++) {
- char buf[5];
- ::sprintf(buf,"Key%02d",i);
- S[i] = buf; // Text
- S[i] = Soft_Label_Key_Set::Soft_Label_Key::Left; // Justification
- }
-}
-
-void TestApplication::title() {
- const char * const title = "Simple C++ Binding Demo";
- const int len = ::strlen(title);
-
- titleWindow->bkgd(screen_titles());
- titleWindow->addstr(0,(titleWindow->cols()-len)/2,title);
- titleWindow->noutrefresh();
-}
-
-
-int TestApplication::run() {
- MyMenu M;
- M();
- return 0;
-}
-
-//
-// -------------------------------------------------------------------------
-//
-static TestApplication Demo;
diff --git a/ncurses-5.3/c++/edit_cfg.sh b/ncurses-5.3/c++/edit_cfg.sh
deleted file mode 100755
index 0703c53..0000000
--- a/ncurses-5.3/c++/edit_cfg.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-# Edit the default value of the etip.h file based on the autoconf-generated
-# values:
-#
-# $1 = ncurses_cfg.h
-# $2 = etip.h
-#
-echo "substituting autoconf'd values from $1 into $2"
-for name in \
- CPP_HAS_PARAM_INIT \
- ETIP_NEEDS_MATH_EXCEPTION \
- ETIP_NEEDS_MATH_H \
- HAVE_BUILTIN_H \
- HAVE_GPP_BUILTIN_H \
- HAVE_GXX_BUILTIN_H \
- HAVE_STRSTREAM_H \
- HAVE_TYPEINFO \
- HAVE_VALUES_H \
- USE_STRSTREAM_VSCAN \
- USE_STRSTREAM_VSCAN_CAST
-do
- mv $2 $2.bak
- if ( grep "[ ]$name[ ]1" $1 2>&1 >/dev/null)
- then
- value=1
- sed -e 's/define '$name'.*$/define '$name' 1/' $2.bak >$2
- else
- value=0
- sed -e 's/define '$name'.*$/define '$name' 0/' $2.bak >$2
- fi
- if (cmp -s $2 $2.bak)
- then
- echo '... '$name $value
- mv $2.bak $2
- else
- echo '... '$name $value
- rm -f $2.bak
- fi
-done
diff --git a/ncurses-5.3/c++/etip.h.in b/ncurses-5.3/c++/etip.h.in
deleted file mode 100644
index 3056379..0000000
--- a/ncurses-5.3/c++/etip.h.in
+++ /dev/null
@@ -1,292 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-// $Id$
-
-#ifndef NCURSES_ETIP_H_incl
-#define NCURSES_ETIP_H_incl 1
-
-// These are substituted at configure/build time
-#ifndef HAVE_BUILTIN_H
-#define HAVE_BUILTIN_H 0
-#endif
-
-#ifndef HAVE_GXX_BUILTIN_H
-#define HAVE_GXX_BUILTIN_H 0
-#endif
-
-#ifndef HAVE_GPP_BUILTIN_H
-#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_VALUES_H
-#define HAVE_VALUES_H 0
-#endif
-
-#ifndef ETIP_NEEDS_MATH_H
-#define ETIP_NEEDS_MATH_H 0
-#endif
-
-#ifndef ETIP_NEEDS_MATH_EXCEPTION
-#define ETIP_NEEDS_MATH_EXCEPTION 0
-#endif
-
-#ifndef CPP_HAS_PARAM_INIT
-#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
-# include <typeinfo>
-# endif
-# endif
-#endif
-
-#if defined(__GNUG__)
-# if HAVE_BUILTIN_H || HAVE_GXX_BUILTIN_H || HAVE_GPP_BUILTIN_H
-# if ETIP_NEEDS_MATH_H
-# if ETIP_NEEDS_MATH_EXCEPTION
-# undef exception
-# define exception math_exception
-# endif
-# include <math.h>
-# endif
-# undef exception
-# define exception builtin_exception
-# if HAVE_GPP_BUILTIN_H
-# include <gpp/builtin.h>
-# elif HAVE_GXX_BUILTIN_H
-# include <g++/builtin.h>
-# else
-# include <builtin.h>
-# endif
-# undef exception
-# endif
-#elif defined (__SUNPRO_CC)
-# include <generic.h>
-# include <string.h>
-#else
-# include <string.h>
-#endif
-
-#include <ncurses_dll.h>
-
-extern "C" {
-#if HAVE_VALUES_H
-# include <values.h>
-#endif
-
-#include <assert.h>
-#include <eti.h>
-#include <errno.h>
-}
-
-// Language features
-#if CPP_HAS_PARAM_INIT
-#define NCURSES_PARAM_INIT(value) = value
-#else
-#define NCURSES_PARAM_INIT(value) /*nothing*/
-#endif
-
-// Forward Declarations
-class NCURSES_IMPEXP NCursesPanel;
-class NCURSES_IMPEXP NCursesMenu;
-class NCURSES_IMPEXP NCursesForm;
-
-class NCURSES_IMPEXP NCursesException
-{
-public:
- const char *message;
- int errorno;
-
- NCursesException (const char* msg, int err)
- : message(msg), errorno (err)
- {};
-
- NCursesException (const char* msg)
- : message(msg), errorno (E_SYSTEM_ERROR)
- {};
-
- virtual const char *classname() const {
- return "NCursesWindow";
- }
-};
-
-class NCURSES_IMPEXP NCursesPanelException : public NCursesException
-{
-public:
- const NCursesPanel* p;
-
- NCursesPanelException (const char *msg, int err) :
- NCursesException (msg, err),
- p ((NCursesPanel*)0)
- {};
-
- NCursesPanelException (const NCursesPanel* panel,
- const char *msg,
- int err) :
- NCursesException (msg, err),
- p (panel)
- {};
-
- NCursesPanelException (int err) :
- NCursesException ("panel library error", err),
- p ((NCursesPanel*)0)
- {};
-
- NCursesPanelException (const NCursesPanel* panel,
- int err) :
- NCursesException ("panel library error", err),
- p (panel)
- {};
-
- virtual const char *classname() const {
- return "NCursesPanel";
- }
-
-};
-
-class NCURSES_IMPEXP NCursesMenuException : public NCursesException
-{
-public:
- const NCursesMenu* m;
-
- NCursesMenuException (const char *msg, int err) :
- NCursesException (msg, err),
- m ((NCursesMenu *)0)
- {};
-
- NCursesMenuException (const NCursesMenu* menu,
- const char *msg,
- int err) :
- NCursesException (msg, err),
- m (menu)
- {};
-
- NCursesMenuException (int err) :
- NCursesException ("menu library error", err),
- m ((NCursesMenu *)0)
- {};
-
- NCursesMenuException (const NCursesMenu* menu,
- int err) :
- NCursesException ("menu library error", err),
- m (menu)
- {};
-
- virtual const char *classname() const {
- return "NCursesMenu";
- }
-
-};
-
-class NCURSES_IMPEXP NCursesFormException : public NCursesException
-{
-public:
- const NCursesForm* f;
-
- NCursesFormException (const char *msg, int err) :
- NCursesException (msg, err),
- f ((NCursesForm*)0)
- {};
-
- NCursesFormException (const NCursesForm* form,
- const char *msg,
- int err) :
- NCursesException (msg, err),
- f (form)
- {};
-
- NCursesFormException (int err) :
- NCursesException ("form library error", err),
- f ((NCursesForm*)0)
- {};
-
- NCursesFormException (const NCursesForm* form,
- int err) :
- NCursesException ("form library error", err),
- f (form)
- {};
-
- virtual const char *classname() const {
- return "NCursesForm";
- }
-
-};
-
-#if !((defined(__GNUG__) && defined(__EXCEPTIONS)) || defined(__SUNPRO_CC))
-# include <iostream.h>
- extern "C" void exit(int);
-#endif
-
-inline void THROW(const NCursesException *e) {
-#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 !defined(__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT < 5)
- genericerror(1, ((e != 0) ? (char *)(e->message) : ""));
-#else
- throw *e;
-#endif
-#else
- if (e)
- cerr << e->message << endl;
- exit(0);
-#endif
-}
-
-#define THROWS(s)
-
-#endif // NCURSES_ETIP_H_incl
diff --git a/ncurses-5.3/c++/headers b/ncurses-5.3/c++/headers
deleted file mode 100644
index 89f8ec5..0000000
--- a/ncurses-5.3/c++/headers
+++ /dev/null
@@ -1,39 +0,0 @@
-# C++ headers
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-$(srcdir)/cursesapp.h
-$(srcdir)/cursesf.h
-$(srcdir)/cursesm.h
-$(srcdir)/cursesp.h
-$(srcdir)/cursesw.h
-$(srcdir)/cursslk.h
-etip.h
diff --git a/ncurses-5.3/c++/internal.h b/ncurses-5.3/c++/internal.h
deleted file mode 100644
index c0f6fcc..0000000
--- a/ncurses-5.3/c++/internal.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// * This makes emacs happy -*-Mode: C++;-*-
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-// $Id$
-
-#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;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#define CTRL(x) ((x) & 0x1f)
-
-#endif // NCURSES_CPLUS_INTERNAL_H
diff --git a/ncurses-5.3/c++/modules b/ncurses-5.3/c++/modules
deleted file mode 100644
index a2e2e60..0000000
--- a/ncurses-5.3/c++/modules
+++ /dev/null
@@ -1,43 +0,0 @@
-# Program modules
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
-#
-
-@ base
-cursesf c++ $(srcdir) $(cursesf_h) $(cursesapp_h)
-cursesm c++ $(srcdir) $(cursesm_h) $(cursesapp_h)
-cursesp c++ $(srcdir) $(cursesp_h)
-cursesw c++ $(srcdir) $(cursesw_h)
-cursespad c++ $(srcdir) $(cursesw_h)
-cursslk c++ $(srcdir) $(cursslk_h) $(cursesapp_h)
-cursesapp c++ $(srcdir) $(cursesapp_h)
-cursesmain c++ $(srcdir) $(cursesapp_h)
-demo c++ $(srcdir) $(cursesf_h) $(cursesm_h) $(cursesapp_h)
diff --git a/ncurses-5.3/config.guess b/ncurses-5.3/config.guess
deleted file mode 100755
index 9f4e5a6..0000000
--- a/ncurses-5.3/config.guess
+++ /dev/null
@@ -1,1363 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
-
-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
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# 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 build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -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
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-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.
-# (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
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- *:NetBSD:*:*)
- # NetBSD (nbsd) targets should (where applicable) match one or
- # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
- # *-*-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.
- #
- # 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
- # The OS release
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- 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}'`
- fi
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- eval $set_cc_for_build
- cat <<EOF >$dummy.s
- .data
-\$Lformat:
- .byte 37,100,45,37,120,10,0 # "%d-%x\n"
-
- .text
- .globl main
- .align 4
- .ent main
-main:
- .frame \$30,16,\$26,0
- ldgp \$29,0(\$27)
- .prologue 1
- .long 0x47e03d80 # implver \$0
- lda \$2,-1
- .long 0x47e20c21 # amask \$2,\$1
- lda \$16,\$Lformat
- mov \$0,\$17
- not \$1,\$18
- jsr \$26,printf
- ldgp \$29,0(\$26)
- mov 0,\$16
- jsr \$26,exit
- .end main
-EOF
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- 2-1307)
- UNAME_MACHINE="alphaev68"
- ;;
- 3-1307)
- UNAME_MACHINE="alphaev7"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy && rmdir $tmpdir
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit 0;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- 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 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit 0 ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${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
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- 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 */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $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 ;;
- 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 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- 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.
- 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:*:*)
- 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
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
- rm -f $dummy.c $dummy && rmdir $tmpdir
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *: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
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- 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])
- 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>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD $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
- 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:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
- rm -f $dummy.c $dummy && rmdir $tmpdir
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- 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/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3D:*:*:*)
- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- # Determine whether the default compiler uses glibc.
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #if __GLIBC__ >= 2
- LIBC=gnu
- #else
- LIBC=
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- 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*: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
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
- 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.
- # 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/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- 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
- # 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
- 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 ;;
- 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,
- # I just have to hope. -- rms.
- # 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.*:*)
- 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}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit 0 ;;
- 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 ;;
- 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
- 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
- (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/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 ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "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 ;;
- 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`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && 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:3.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:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:*)
- 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 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
- 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*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # 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 ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit 0 ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit 0 ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit 0 ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit 0 ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-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 ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit 0 ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit 0 ;;
- NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
- 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 ;;
- *: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
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $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.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-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/
-
-If the version you run ($0) is already up to date, please
-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.
-
-config.guess timestamp = $timestamp
-
-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`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/ncurses-5.3/config.log b/ncurses-5.3/config.log
deleted file mode 100644
index 945786b..0000000
--- a/ncurses-5.3/config.log
+++ /dev/null
@@ -1,152 +0,0 @@
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by configure, which was
-generated by GNU Autoconf 2.52.20011227. Invocation command line was
-
- $ ./configure --host=powerpc-rtems --prefix=/opt/rtems/ppc-rtems --libdir=/opt/rtems/ppc-rtems/mcp750/lib --includedir=/opt/rtems/ppc-rtems/mcp750/lib/include --without-ada --without-progs --without-cxx-binding --with-bool=unsigned char --disable-sigwinch --disable-database --with-fallbacks=xterm,vt100,linux,ansi
-
-## ---------- ##
-## Platform. ##
-## ---------- ##
-
-hostname = TiRex.local.
-uname -m = Power Macintosh
-uname -r = 6.2
-uname -s = Darwin
-uname -v = Darwin Kernel Version 6.2: Tue Nov 5 22:00:03 PST 2002; root:xnu/xnu-344.12.2.obj~1/RELEASE_PPC
-
-/usr/bin/uname -p = powerpc
-/bin/uname -X = unknown
-
-/bin/arch = unknown
-/usr/bin/arch -k = unknown
-/usr/convex/getsysinfo = unknown
-hostinfo = Mach kernel version:
- Darwin Kernel Version 6.2:
-Tue Nov 5 22:00:03 PST 2002; root:xnu/xnu-344.12.2.obj~1/RELEASE_PPC
-
-
-Kernel configured for up to 2 processors.
-1 processor is physically available.
-Processor type: ppc7450 (PowerPC 7450)
-Processor active: 0
-Primary memory available: 512.00 megabytes.
-Default processor set: 62 tasks, 132 threads, 1 processors
-Load average: 3.16, Mach factor: 0.23
-unknown
-/bin/machine = unknown
-/usr/bin/oslevel = unknown
-/bin/universe = unknown
-
-PATH = /sw/bin:/sw/sbin:/Users/eric/bin:/bin:/sbin:/usr/bin:/usr/sbin:/opt/rtems/bin:/Users/eric/src/EPICS/Darwin/epics/local/bin/darwin-ppc:/Users/eric/src/EPICS/Darwin/epics/base/bin/darwin-ppc:/Users/eric/src/EPICS/Darwin/epics/extensions/bin/darwin-ppc:/usr/X11R6/bin
-
-## ------------ ##
-## Core tests. ##
-## ------------ ##
-
-configure:1023: PATH=".;."; conftest.sh
-./configure: conftest.sh: command not found
-configure:1026: $? = 127
-configure:1043: result: Configuring NCURSES 5.3 ABI 5 (Wed Dec 18 17:34:31 CST 2002)
-configure:1077: checking build system type
-configure:1095: result: powerpc-apple-darwin6.2
-configure:1102: checking host system type
-configure:1116: result: powerpc-unknown-rtems
-configure:1124: checking target system type
-configure:1138: result: powerpc-unknown-rtems
-configure:1169: result: Configuring for rtems
-configure:1222: checking for prefix
-configure:1234: result: /opt/rtems/ppc-rtems
-configure:1274: checking for powerpc-rtems-gcc
-configure:1297: result: ppc-rtems-gcc --pipe -B/opt/rtems/ppc-rtems/mcp750/lib/ -specs bsp_specs -qrtems -mcpu=750 -Dmpc750
-configure:1560: checking for C compiler version
-configure:1563: ppc-rtems-gcc --pipe -B/opt/rtems/ppc-rtems/mcp750/lib/ -specs bsp_specs -qrtems -mcpu=750 -Dmpc750 --version </dev/null >&5
-ppc-rtems-gcc (GCC) 3.2.1
-Copyright (C) 2002 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.
-
-configure:1566: $? = 0
-configure:1568: ppc-rtems-gcc --pipe -B/opt/rtems/ppc-rtems/mcp750/lib/ -specs bsp_specs -qrtems -mcpu=750 -Dmpc750 -v </dev/null >&5
-Reading specs from /opt/rtems/lib/gcc-lib/ppc-rtems/3.2.1/specs
-Reading specs from /opt/rtems/ppc-rtems/mcp750/lib/bsp_specs
-rename spec cpp to old_cpp
-rename spec lib to old_lib
-rename spec endfile to old_endfile
-rename spec startfile to old_startfile
-rename spec link to old_link
-Configured with: ../gcc-3.2.1/configure --target=ppc-rtems --prefix=/opt/rtems --with-gnu-as --with-gnu-ld --with-newlib --verbose --with-system-zlib --disable-nls --enable-version-specific-runtime-libs --enable-threads=rtems --enable-languages=c,c++
-Thread model: rtems
-gcc version 3.2.1
-configure:1571: $? = 0
-configure:1573: ppc-rtems-gcc --pipe -B/opt/rtems/ppc-rtems/mcp750/lib/ -specs bsp_specs -qrtems -mcpu=750 -Dmpc750 -V </dev/null >&5
-ppc-rtems-gcc: argument to `-V' is missing
-configure:1576: $? = 1
-configure:1596: checking for C compiler default output
-configure:1599: ppc-rtems-gcc --pipe -B/opt/rtems/ppc-rtems/mcp750/lib/ -specs bsp_specs -qrtems -mcpu=750 -Dmpc750 conftest.c >&5
-/opt/rtems/ppc-rtems/mcp750/lib/librtemsbsp.a(console.o): In function `__assert':
-/Users/eric/src/RTEMS/build/ppc-rtems/c/mcp750/lib/libbsp/powerpc/motorola_powerpc/console/../../../../../../../../../rtems-cvs/c/src/lib/libbsp/powerpc/shared/console/console.c:60: multiple definition of `__assert'
-/opt/rtems/lib/gcc-lib/ppc-rtems/3.2.1/../../../../ppc-rtems/lib/m750/libc.a(assert.o):/Users/eric/src/RTEMS/bt/build/ppc-rtems/m750/newlib/libc/stdlib/../../../../../../gcc-3.2.1/newlib/libc/stdlib/assert.c:56: first defined here
-/opt/rtems/lib/gcc-lib/ppc-rtems/3.2.1/../../../../ppc-rtems/bin/ld: Warning: size of symbol `__assert' changed from 68 to 172 in /opt/rtems/ppc-rtems/mcp750/lib/librtemsbsp.a(console.o)
-collect2: ld returned 1 exit status
-configure:1602: $? = 1
-configure: failed program was:
-#line 1580 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-configure:1625: error: C compiler cannot create executables
-
-## ----------------- ##
-## Cache variables. ##
-## ----------------- ##
-
-ac_cv_build=powerpc-apple-darwin6.2
-ac_cv_build_alias=powerpc-apple-darwin6.2
-ac_cv_env_CC_set=set
-ac_cv_env_CC_value='ppc-rtems-gcc --pipe -B/opt/rtems/ppc-rtems/mcp750/lib/ -specs bsp_specs -qrtems -mcpu=750 -Dmpc750'
-ac_cv_env_CFLAGS_set=
-ac_cv_env_CFLAGS_value=
-ac_cv_env_CPPFLAGS_set=
-ac_cv_env_CPPFLAGS_value=
-ac_cv_env_CPP_set=
-ac_cv_env_CPP_value=
-ac_cv_env_CXXCPP_set=
-ac_cv_env_CXXCPP_value=
-ac_cv_env_CXXFLAGS_set=
-ac_cv_env_CXXFLAGS_value=
-ac_cv_env_CXX_set=set
-ac_cv_env_CXX_value='ppc-rtems-gcc --pipe -B/opt/rtems/ppc-rtems/mcp750/lib/ -specs bsp_specs -qrtems -mcpu=750 -Dmpc750'
-ac_cv_env_LDFLAGS_set=
-ac_cv_env_LDFLAGS_value=
-ac_cv_env_build_alias_set=
-ac_cv_env_build_alias_value=
-ac_cv_env_host_alias_set=set
-ac_cv_env_host_alias_value=powerpc-rtems
-ac_cv_env_target_alias_set=
-ac_cv_env_target_alias_value=
-ac_cv_host=powerpc-unknown-rtems
-ac_cv_host_alias=powerpc-rtems
-ac_cv_prog_CC='ppc-rtems-gcc --pipe -B/opt/rtems/ppc-rtems/mcp750/lib/ -specs bsp_specs -qrtems -mcpu=750 -Dmpc750'
-ac_cv_target=powerpc-unknown-rtems
-ac_cv_target_alias=powerpc-rtems
-cf_cv_abi_version=5
-cf_cv_rel_version=5.3
-cf_cv_system_name=rtems
-cf_cv_timestamp='Wed Dec 18 17:34:31 CST 2002'
-
-## ------------ ##
-## confdefs.h. ##
-## ------------ ##
-
-#define SYSTEM_NAME "rtems"
-
-
-configure: exit 77
diff --git a/ncurses-5.3/config.sub b/ncurses-5.3/config.sub
deleted file mode 100755
index b0222f7..0000000
--- a/ncurses-5.3/config.sub
+++ /dev/null
@@ -1,1470 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
-
-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
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -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
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit 0;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 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)
- # Motorola 68HC11/12.
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- 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.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 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.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- 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
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax)
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- or32 | or32-*)
- basic_machine=or32-unknown
- os=-coff
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2)
- basic_machine=i686-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc) basic_machine=powerpc-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/^[^-]*-//'`
- ;;
- 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
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- 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
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
- ;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3d)
- basic_machine=alpha-cray
- os=-unicos
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- windows32)
- basic_machine=i386-pc
- os=-windows32-msvcrt
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- 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
- ;;
- sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
- basic_machine=sh-unknown
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparc | sparcv9 | sparcv9b)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- c4x*)
- 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
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -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
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto*)
- os=-nto-qnx
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- or32-*)
- os=-coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-ibm)
- os=-aix
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks* | -windiss*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/ncurses-5.3/configure b/ncurses-5.3/configure
deleted file mode 100755
index c20c60f..0000000
--- a/ncurses-5.3/configure
+++ /dev/null
@@ -1,11969 +0,0 @@
-#! /bin/sh
-# From configure.in Revision: 1.274 .
-# Guess values for system-dependent variables and create Makefiles.
-# 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.
-
-# 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
-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.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-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'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-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"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- 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=$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=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- 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-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- 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
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -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)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- 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=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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=$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=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- 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'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- 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.
- with_x=yes ;;
-
- -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-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 ;;
-
- -*) { 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 ;;
-
- *)
- # 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
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# 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
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- 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
-
-# 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
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-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
- 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
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-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
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:933: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- cat "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me: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
- { 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
-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
-
-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
- ac_path_separator=:
-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}
-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
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { 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
-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
- 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.
-test -n "$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`"
- if test -z "$system_name" ; then
- system_name="`(hostname) 2>/dev/null`"
- fi
-fi
-test -n "$system_name" && cat >>confdefs.h <<EOF
-#define SYSTEM_NAME "$system_name"
-EOF
-
-if test "${cf_cv_system_name+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cf_cv_system_name="$system_name"
-fi
-
-test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$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
- 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
-
-# Check whether --with-system-type or --without-system-type was given.
-if test "${with_system_type+set}" = set; then
- withval="$with_system_type"
- { echo "$as_me:1183: WARNING: overriding system type to $withval" >&5
-echo "$as_me: WARNING: overriding system type to $withval" >&2;}
- cf_cv_system_name=$withval
-fi;
-
-# We need a configure script only when compiling as part of GNU C library.
-# Here we have to generate one of the files we need while compiling.
-#
-# The only problem is that users of the package might think they have to
-# run configure themself and find it irritating when nothing happens.
-#
-# So we try here to find out whether we are called from the glibc configure
-# or by a user.
-#
-
-# Check whether --enable-add-ons or --disable-add-ons was given.
-if test "${enable_add_ons+set}" = set; then
- enableval="$enable_add_ons"
- glibc_add_on=yes
-else
- glibc_add_on=
-fi;
-
-if test x"$glibc_add_on" = "xyes" ; then
- rm -f $srcdir/Banner
- # We are in glibc.
- rm -f $srcdir/Makefile
- cp $srcdir/Makefile.glibc $srcdir/Makefile
- echo "ncurses `grep \"^[ ]*ncurses-version[ ]*=.*$\" \
- $srcdir/Makefile | sed -e \
- 's/^[ ]*ncurses-version[ ]*=[ ]*\([^ ^ ]*\)[ ]*$/\1/'`" > $srcdir/Banner
- exit 0
-fi
-
-### Save the given $CFLAGS to allow user-override.
-cf_user_CFLAGS="$CFLAGS"
-
-### Default install-location
-
-echo "$as_me:1222: checking for prefix" >&5
-echo $ECHO_N "checking for prefix... $ECHO_C" >&6
-if test "x$prefix" = "xNONE" ; then
- case "$cf_cv_system_name" in
- # non-vendor systems don't have a conflict
- openbsd*|netbsd*|freebsd*|linux*|cygwin*)
- prefix=/usr
- ;;
- *) prefix=$ac_default_prefix
- ;;
- esac
-fi
-echo "$as_me:1234: result: $prefix" >&5
-echo "${ECHO_T}$prefix" >&6
-
-if test "x$prefix" = "xNONE" ; then
-echo "$as_me:1238: checking for default include-directory" >&5
-echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
-test -n "$verbose" && echo 1>&6
-for cf_symbol in \
- $includedir \
- $includedir/ncurses \
- $prefix/include \
- $prefix/include/ncurses \
- /usr/local/include \
- /usr/local/include/ncurses \
- /usr/include \
- /usr/include/ncurses
-do
- cf_dir=`eval echo $cf_symbol`
- if test -f $cf_dir/curses.h ; then
- if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then
- includedir="$cf_symbol"
- test -n "$verbose" && echo $ac_n " found " 1>&6
- break
- fi
- fi
- test -n "$verbose" && echo " tested $cf_dir" 1>&6
-done
-echo "$as_me:1261: result: $includedir" >&5
-echo "${ECHO_T}$includedir" >&6
-fi
-
-### Checks for programs.
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-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
-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
- 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
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- 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
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me: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
- ac_prog_rejected=no
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
-fi
-ac_cv_prog_CC="cc"
-echo "$as_me: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 $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" ${1+"$@"}
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1464: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1467: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- 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
- 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
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1501: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1504: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- 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
-
-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
-
- test -n "$ac_ct_CC" && break
-done
-
- 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"
-
-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
- 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
-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
- { { 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
-
-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 ()
-{
-
- ;
- 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
- 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
-
-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
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-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
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- 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
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-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
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:1990: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_BUILD_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$BUILD_CC"; then
- ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
-else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_BUILD_CC="$ac_prog"
-echo "$as_me:2005: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-BUILD_CC=$ac_cv_prog_BUILD_CC
-if test -n "$BUILD_CC"; then
- echo "$as_me:2013: result: $BUILD_CC" >&5
-echo "${ECHO_T}$BUILD_CC" >&6
-else
- echo "$as_me:2016: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$BUILD_CC" && break
-done
-
-fi;
-
-# Check whether --with-build-cflags or --without-build-cflags was given.
-if test "${with_build_cflags+set}" = set; then
- withval="$with_build_cflags"
- BUILD_CFLAGS="$withval"
-fi;
-
-# Check whether --with-build-cppflags or --without-build-cppflags was given.
-if test "${with_build_cppflags+set}" = set; then
- withval="$with_build_cppflags"
- BUILD_CPPFLAGS="$withval"
-fi;
-
-# Check whether --with-build-ldflags or --without-build-ldflags was given.
-if test "${with_build_ldflags+set}" = set; then
- withval="$with_build_ldflags"
- BUILD_LDFLAGS="$withval"
-fi;
-
-# Check whether --with-build-libs or --without-build-libs was given.
-if test "${with_build_libs+set}" = set; then
- withval="$with_build_libs"
- BUILD_LIBS="$withval"
-fi;
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:2055: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-#line 2076 "configure"
-#include "confdefs.h"
-#include <assert.h>
- 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
- 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 2110 "configure"
-#include "confdefs.h"
-#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
- 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_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>
- 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
- 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 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
-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
- :
-else
- { { 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
-
-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'"
- cat >conftest.$ac_ext <<_ACEOF
-#line 2258 "configure"
-#include "confdefs.h"
-#include <sgtty.h>
-Autoconf TIOCGETP
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-else
- ac_cv_prog_gcc_traditional=no
-fi
-rm -f conftest*
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat >conftest.$ac_ext <<_ACEOF
-#line 2273 "configure"
-#include "confdefs.h"
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-fi
-rm -f conftest*
-
- fi
-fi
-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
-
-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 &&
- grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
-then
- echo "$as_me:2298: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- ISC=yes # If later tests want to check for ISC.
-
-cat >>confdefs.h <<\EOF
-#define _POSIX_SOURCE 1
-EOF
-
- if test "$GCC" = yes; then
- CC="$CC -posix"
- else
- CC="$CC -Xp"
- fi
-else
- echo "$as_me:2312: result: no" >&5
-echo "${ECHO_T}no" >&6
- ISC=
-fi
-
-echo "$as_me:2317: checking for ${CC-cc} option to accept ANSI C" >&5
-echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
-if test "${cf_cv_ansi_cc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
- "" \
- -qlanglvl=ansi \
- -std1 \
- -Ae \
- "-Aa -D_HPUX_SOURCE" \
- -Xc
-do
-
-cf_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
-#if !defined(__STDC__) || (__STDC__ != 1)
-choke me
-#endif
-#endif
-
-int
-main ()
-{
-
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me: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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-done
-CFLAGS="$cf_save_CFLAGS"
-CPPFLAGS="$cf_save_CPPFLAGS"
-
-fi
-echo "$as_me: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
-
-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
- cat >>confdefs.h <<\EOF
-#define CC_HAS_PROTOS 1
-EOF
-
-fi
-fi
-
-if test "$cf_cv_ansi_cc" = "no"; then
- { { 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
- c. use a wrapper such as unproto" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-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"
- CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
- CXXFLAGS="$CXXFLAGS -Zmt"
- LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
- PROG_EXT=".exe"
- ;;
-cygwin*)
- PROG_EXT=".exe"
- ;;
-esac
-
-test -n "$PROG_EXT" && cat >>confdefs.h <<EOF
-#define PROG_EXT "$PROG_EXT"
-EOF
-
-case "$cf_cv_system_name" in
-freebsd*) #(vi
- test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
- ;;
-*) LDPATH=$PATH:/sbin:/usr/sbin
- # Extract the first word of "ldconfig", so it can be a program name with args.
-set dummy ldconfig; ac_word=$2
-echo "$as_me: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
- case $LDCONFIG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_LDCONFIG="$LDCONFIG" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$LDPATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- if $as_executable_p "$ac_dir/$ac_word"; then
- ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
- echo "$as_me:2517: found $ac_dir/$ac_word" >&5
- break
-fi
-done
-
- ;;
-esac
-fi
-LDCONFIG=$ac_cv_path_LDCONFIG
-
-if test -n "$LDCONFIG"; then
- echo "$as_me:2528: result: $LDCONFIG" >&5
-echo "${ECHO_T}$LDCONFIG" >&6
-else
- echo "$as_me:2531: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- ;;
-esac
-
-echo "$as_me:2538: checking if you want to ensure bool is consistent with C++" >&5
-echo $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
- withval="$with_cxx"
- cf_with_cxx=$withval
-else
- cf_with_cxx=yes
-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
- 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
- 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
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- echo "$as_me:2587: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6
-else
- echo "$as_me:2590: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- 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
-
-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
-
- 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"
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- 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"
-
-int
-main ()
-{
-
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_prog_cxx_g=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-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
- CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- 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
-
-GXX_VERSION=none
-if test "$GXX" = yes; then
- 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]*)
- GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
- cf_cxx_library=no
- { echo "$as_me:2860: WARNING: templates do not work" >&5
-echo "$as_me: WARNING: templates do not work" >&2;}
- ;;
- esac
-fi
-
-echo "$as_me:2866: checking if you want to build C++ binding and demo" >&5
-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
- withval="$with_cxx_binding"
- cf_with_cxx_binding=$withval
-else
- cf_with_cxx_binding=$cf_with_cxx
-fi;
-echo "$as_me:2876: result: $cf_with_cxx_binding" >&5
-echo "${ECHO_T}$cf_with_cxx_binding" >&6
-
-echo "$as_me:2879: checking if you want to build with Ada95" >&5
-echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6
-
-# Check whether --with-ada or --without-ada was given.
-if test "${with_ada+set}" = set; then
- withval="$with_ada"
- cf_with_ada=$withval
-else
- cf_with_ada=yes
-fi;
-echo "$as_me:2889: result: $cf_with_ada" >&5
-echo "${ECHO_T}$cf_with_ada" >&6
-
-echo "$as_me:2892: checking if you want to build programs such as tic" >&5
-echo $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
- withval="$with_progs"
- cf_with_progs=$withval
-else
- cf_with_progs=yes
-fi;
-echo "$as_me:2902: result: $cf_with_progs" >&5
-echo "${ECHO_T}$cf_with_progs" >&6
-
-echo "$as_me:2905: checking if you wish to install curses.h" >&5
-echo $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
- withval="$with_curses_h"
- with_curses_h=$withval
-else
- with_curses_h=yes
-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="$modules_to_build progs tack"
-fi
-modules_to_build="$modules_to_build panel menu form"
-
-test "$program_prefix" != NONE &&
- program_transform_name="s,^,$program_prefix,;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-# Double any \ or $. echo might interpret backslashes.
-# By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
-
-for ac_prog in mawk gawk nawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me: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
- 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
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
- echo "$as_me:2964: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
-else
- echo "$as_me:2967: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$AWK" && break
-done
-
-echo "$as_me:2974: checking whether ${MAKE-make} sets \${MAKE}" >&5
-echo $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
- cat >conftest.make <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-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
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:2994: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:2998: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/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.
-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 "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
- for ac_dir in $PATH; do
- IFS=$ac_save_IFS
- # Account for people who put trailing slashes in PATH elements.
- 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
- if $as_executable_p "$ac_dir/$ac_prog"; then
- if test $ac_prog = install &&
- grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
- # 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
- fi
- fi
- done
- ;;
- esac
- done
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- 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.
- INSTALL=$ac_install_sh
- fi
-fi
-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}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-case $INSTALL in
-/*)
- ;;
-*)
- cf_dir=`echo $INSTALL | sed -e 's:/[^/]*$::'`
- test -z "$cf_dir" && cf_dir=.
- INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's:^.*/::'`
- ;;
-esac
-
-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:
-# . the current directory, where building will happen
-# $prefix/lib where we will be installing things
-# $exec_prefix/lib likewise
-# eval it to expand exec_prefix.
-# $TMPDIR if set, where it might want to write temporary files
-# if $TMPDIR is not set:
-# /tmp where it might want to write temporary files
-# /var/tmp likewise
-# /usr/tmp likewise
-if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
- 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.
- 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
- rm -rf $ac_xdir 2>/dev/null
- break
- fi
- rm -rf $ac_xdir 2>/dev/null
-done
-fi
-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
-
-cat >>confdefs.h <<\EOF
-#define HAVE_LONG_FILE_NAMES 1
-EOF
-
-fi
-
-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
-
- rm -f conftest CONFTEST
- echo test >conftest
- if test -f CONFTEST ; then
- cf_cv_mixedcase=no
- else
- cf_cv_mixedcase=yes
- fi
- rm -f conftest CONFTEST
-
-fi
-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
-
-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
- echo "$as_me:3163: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:3170: checking for $ac_word" >&5
-echo $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
- 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
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:3193: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:3196: result: no" >&5
-echo "${ECHO_T}no" >&6
-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
-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
- 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
-MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
-if test -n "$MAKE_LOWER_TAGS"; then
- echo "$as_me:3267: result: $MAKE_LOWER_TAGS" >&5
-echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
-else
- echo "$as_me:3270: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-if test "$cf_cv_mixedcase" = yes ; then
- # Extract the first word of "etags", so it can be a program name with args.
-set dummy etags; ac_word=$2
-echo "$as_me:3277: checking for $ac_word" >&5
-echo $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
- 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
-MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
-if test -n "$MAKE_UPPER_TAGS"; then
- echo "$as_me:3301: result: $MAKE_UPPER_TAGS" >&5
-echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
-else
- echo "$as_me:3304: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-else
- MAKE_UPPER_TAGS=no
-fi
-
-if test "$MAKE_UPPER_TAGS" = yes ; then
- MAKE_UPPER_TAGS=
-else
- MAKE_UPPER_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
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:3328: checking for $ac_word" >&5
-echo $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
- 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
-LINT=$ac_cv_prog_LINT
-if test -n "$LINT"; then
- echo "$as_me:3351: result: $LINT" >&5
-echo "${ECHO_T}$LINT" >&6
-else
- echo "$as_me:3354: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$LINT" && break
-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.
-set dummy $ac_prog; ac_word=$2
-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
- 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
-MAN=$ac_cv_prog_MAN
-if test -n "$MAN"; then
- echo "$as_me:3388: result: $MAN" >&5
-echo "${ECHO_T}$MAN" >&6
-else
- echo "$as_me:3391: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$MAN" && break
-done
-
-if test "${cf_cv_subst_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-echo "$as_me:3402: checking for loader (symbol LD)" >&5
-echo $ECHO_N "checking for loader (symbol LD)... $ECHO_C" >&6
-test -z "$LD" && LD=ld
-echo "$as_me:3405: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-
-cf_cv_subst_LD=$LD
-fi
-
-LD=${cf_cv_subst_LD}
-
-if test "${cf_cv_subst_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-echo "$as_me:3417: checking for archiver (symbol AR)" >&5
-echo $ECHO_N "checking for archiver (symbol AR)... $ECHO_C" >&6
-test -z "$AR" && AR=ar
-echo "$as_me:3420: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-
-cf_cv_subst_AR=$AR
-fi
-
-AR=${cf_cv_subst_AR}
-
-if test "${cf_cv_subst_AR_OPTS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-echo "$as_me:3432: checking for archiver options (symbol AR_OPTS)" >&5
-echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6
-test -z "$AR_OPTS" && AR_OPTS=rv
-echo "$as_me:3435: result: $AR_OPTS" >&5
-echo "${ECHO_T}$AR_OPTS" >&6
-
-cf_cv_subst_AR_OPTS=$AR_OPTS
-fi
-
-AR_OPTS=${cf_cv_subst_AR_OPTS}
-
-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
-
- cf_cv_makeflags=''
- for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
- do
- cat >cf_makeflags.tmp <<CF_EOF
-SHELL = /bin/sh
-all :
- @ echo '.$cf_option'
-CF_EOF
- cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null`
- case "$cf_result" in
- .*k)
- cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
- case "$cf_result" in
- .*CC=*) cf_cv_makeflags=
- ;;
- *) cf_cv_makeflags=$cf_option
- ;;
- esac
- break
- ;;
- *) echo no match "$cf_result"
- ;;
- esac
- done
- rm -f cf_makeflags.tmp
-
-fi
-echo "$as_me:3476: result: $cf_cv_makeflags" >&5
-echo "${ECHO_T}$cf_cv_makeflags" >&6
-
-echo "$as_me:3479: checking if you have specified an install-prefix" >&5
-echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
-
-# Check whether --with-install-prefix or --without-install-prefix was given.
-if test "${with_install_prefix+set}" = set; then
- withval="$with_install_prefix"
- case "$withval" in #(vi
- yes|no) #(vi
- ;;
- *) DESTDIR="$withval"
- ;;
- esac
-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=""
-
-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
- withval="$with_libtool"
- with_libtool=$withval
-else
- with_libtool=no
-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
-else
- LIBTOOL=""
-fi
-
-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
- withval="$with_shared"
- with_shared=$withval
-else
- with_shared=no
-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"
-
-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
- withval="$with_normal"
- with_normal=$withval
-else
- with_normal=yes
-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"
-
-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
- withval="$with_debug"
- with_debug=$withval
-else
- with_debug=yes
-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"
-
-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
- withval="$with_profile"
- with_profile=$withval
-else
- with_profile=no
-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"
-
-###############################################################################
-
-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
-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.
-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}'`
-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___%`
-
-TINFO_NAME=tinfo
-
-LIB_NAME=ncurses
-
-LIB_DIR=../lib
-
- case $cf_cv_system_name in
- OS/2*) LIB_PREFIX='' ;;
- os2*) LIB_PREFIX='' ;;
- *) LIB_PREFIX='lib' ;;
- esac
-cf_prefix=$LIB_PREFIX
-
-LIB_PREFIX=$cf_prefix
-
-LIB_SUFFIX=
-
-###############################################################################
-
-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
- withval="$with_termlib"
- with_termlib=$withval
-else
- with_termlib=no
-fi;
-echo "$as_me:3625: result: $with_termlib" >&5
-echo "${ECHO_T}$with_termlib" >&6
-
-### Checks for special libraries, must be done up-front.
-echo "$as_me:3629: checking if you want to link with dbmalloc for testing" >&5
-echo $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
- withval="$with_dbmalloc"
- with_dbmalloc=$withval
-else
- with_dbmalloc=no
-fi;
-echo "$as_me:3639: result: $with_dbmalloc" >&5
-echo "${ECHO_T}$with_dbmalloc" >&6
-if test "$with_dbmalloc" = yes ; then
-
-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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldbmalloc $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 3651 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char 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"
-
-fi
-
-fi
-
-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
- withval="$with_dmalloc"
- with_dmalloc=$withval
-else
- with_dmalloc=no
-fi;
-echo "$as_me:3713: result: $with_dmalloc" >&5
-echo "${ECHO_T}$with_dmalloc" >&6
-if test "$with_dmalloc" = yes ; then
-
-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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldmalloc $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 3725 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char 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"
-
-fi
-
-fi
-
-SHLIB_LIST=""
-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
- withval="$with_gpm"
- with_gpm=$withval
-else
- with_gpm=no
-fi;
-echo "$as_me:3788: result: $with_gpm" >&5
-echo "${ECHO_T}$with_gpm" >&6
-if test "$with_gpm" = yes ; then
- echo "$as_me:3791: checking for Gpm_Open in -lgpm" >&5
-echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
-if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgpm $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 3799 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char Gpm_Open ();
-int
-main ()
-{
-Gpm_Open ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me: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
-
- EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- cat >>confdefs.h <<\EOF
-#define HAVE_LIBGPM 1
-EOF
-
-for ac_header in gpm.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me: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 <$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
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me: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
-
-fi
-done
-
-else
- { 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
-
-if test X"$CC_G_OPT" = X"" ; then
- CC_G_OPT='-g'
- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
-fi
-
-if test X"$CXX_G_OPT" = X"" ; then
- CXX_G_OPT='-g'
- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
-fi
-
-echo "$as_me: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='' ;;
-debug) LD_MODEL=$CC_G_OPT ;;
-profile) LD_MODEL='-pg';;
-shared) LD_MODEL='' ;;
-esac
-echo "$as_me:3922: result: $LD_MODEL" >&5
-echo "${ECHO_T}$LD_MODEL" >&6
-
-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
- enableval="$enable_rpath"
- cf_cv_ld_rpath=$enableval
-else
- cf_cv_ld_rpath=no
-fi;
-echo "$as_me:3935: result: $cf_cv_ld_rpath" >&5
-echo "${ECHO_T}$cf_cv_ld_rpath" >&6
-
- LOCAL_LDFLAGS=
- LOCAL_LDFLAGS2=
- LD_SHARED_OPTS=
- INSTALL_LIB="-m 644"
-
- cf_cv_do_symlinks=no
-
- 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"
- test -z "$withval" && withval=auto
- case $withval in #(vi
- yes) #(vi
- cf_cv_shlib_version=auto
- ;;
- rel|abi|auto|no) #(vi
- cf_cv_shlib_version=$withval
- ;;
- *)
- { { 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
-
-else
- cf_cv_shlib_version=auto
-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
-
- # Some less-capable ports of gcc support only -fpic
- CC_SHARED_OPTS=
- if test "$GCC" = yes
- then
- 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"
- cat >conftest.$ac_ext <<_ACEOF
-#line 3985 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int
-main ()
-{
-int x = 1
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- done
- echo "$as_me:4015: result: $CC_SHARED_OPTS" >&5
-echo "${ECHO_T}$CC_SHARED_OPTS" >&6
- CFLAGS="$cf_save_CFLAGS"
- fi
-
- cf_cv_shlib_version_infix=no
-
- case $cf_cv_system_name in
- beos*)
- MK_SHARED_LIB='$(CC) -o $@ -Xlinker -soname=`basename $@` -nostart -e 0'
- ;;
- cygwin*)
- CC_SHARED_OPTS=
- MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)'
- cf_cv_shlib_version=cygdll
- cf_cv_shlib_version_infix=cygdll
- ;;
- darwin*)
- EXTRA_CFLAGS="-no-cpp-precomp"
- CC_SHARED_OPTS="-dynamic"
- MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $@` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
- cf_cv_shlib_version_infix=yes
- ;;
- hpux*)
- # (tested with gcc 2.7.2 -- I don't have c89)
- if test "$GCC" = yes; then
- LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)'
- else
- CC_SHARED_OPTS='+Z'
- LD_SHARED_OPTS='-Wl,+b,$(libdir)'
- fi
- MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $@'
- # HP-UX shared libraries must be executable, and should be
- # readonly to exploit a quirk in the memory manager.
- INSTALL_LIB="-m 555"
- ;;
- irix*)
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
- fi
- # tested with IRIX 5.2 and 'cc'.
- if test "$GCC" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $@` -o $@'
- cf_cv_rm_so_locs=yes
- ;;
- linux*|gnu*)
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $@ .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $@'
- ;;
- openbsd2*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $@.$(ABI_VERSION)` -o $@'
- ;;
- openbsd*|freebsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- MK_SHARED_LIB='$(LD) -Bshareable -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- netbsd*)
- CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
- test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
- if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
- MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@'
- if test "$cf_cv_shlib_version" = auto; then
- if test ! -f /usr/libexec/ld.elf_so; then
- cf_cv_shlib_version=rel
- fi
- fi
- else
- MK_SHARED_LIB='$(LD) -Bshareable -o $@'
- fi
- ;;
- osf*|mls+*)
- # tested with OSF/1 V3.2 and 'cc'
- # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't
- # link with shared libs).
- MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $@`'
- case $host_os in
- osf4*)
- MK_SHARED_LIB="${MK_SHARED_LIB} -msym"
- ;;
- esac
- MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $@'
- if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-rpath"
- # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- cf_cv_rm_so_locs=yes
- ;;
- sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98
- # tested with osr5.0.5
- if test "$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 $@'
- if test "$cf_cv_ld_rpath" = yes ; then
- # only way is to set LD_RUN_PATH but no switch for it
- RUN_PATH=$libdir
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- LINK_PROGS='LD_RUN_PATH=$(libdir)'
- LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib'
- ;;
- sunos4*)
- # tested with SunOS 4.1.1 and gcc 2.7.0
- if test "$ac_cv_c_compiler_gnu" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -assert pure-text -o $@'
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- solaris2*)
- # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
- if test "$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)"
- LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
- fi
- if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-R"
- EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
- fi
- test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel
- ;;
- sysv5uw7*|unix_sv*)
- # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc)
- if test "$ac_cv_c_compiler_gnu" != yes; then
- CC_SHARED_OPTS='-KPIC'
- fi
- MK_SHARED_LIB='$(LD) -d y -G -o $@'
- ;;
- *)
- CC_SHARED_OPTS='unknown'
- MK_SHARED_LIB='echo unknown'
- ;;
- esac
-
- # This works if the last tokens in $MK_SHARED_LIB are the -o target.
- case "$cf_cv_shlib_version" in #(vi
- rel|abi)
- case "$MK_SHARED_LIB" in #(vi
- *'-o $@')
- test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
- ;;
- *)
- { 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
- 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"
- cat >conftest.$ac_ext <<_ACEOF
-#line 4195 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_rpath_space=yes
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS="$cf_save_LIBS"
- echo "$as_me:4226: result: $cf_rpath_space" >&5
-echo "${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
-
-if test "$CC_SHARED_OPTS" = "unknown"; then
- for model in $cf_list_models; do
- if test "$model" = "shared"; then
- { { echo "$as_me:4235: error: Shared libraries are not supported in this version" >&5
-echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
- { (exit 1); exit 1; }; }
- fi
- done
-fi
-
-###############################################################################
-
-### use option --disable-overwrite to leave out the link to -lcurses
-echo "$as_me:4245: checking if you wish to install ncurses overwriting curses" >&5
-echo $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
- 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 "$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
- enableval="$enable_database"
- use_database=$enableval
-else
- use_database=yes
-fi;
-echo "$as_me:4268: result: $use_database" >&5
-echo "${ECHO_T}$use_database" >&6
-
-case $host_os in #(vi
-os2*) #(vi
- TERMINFO_SRC='${top_srcdir}/misc/emx.src'
- ;;
-*) #(vi
- TERMINFO_SRC='${top_srcdir}/misc/terminfo.src'
- ;;
-esac
-
- case $cf_cv_system_name in
- os2*) PATHSEP=';' ;;
- *) PATHSEP=':' ;;
- esac
-
-if test "$use_database" != no ; then
- cat >>confdefs.h <<\EOF
-#define USE_DATABASE 1
-EOF
-
- 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
-fi;
- echo "$as_me:4298: result: $TERMINFO_SRC" >&5
-echo "${ECHO_T}$TERMINFO_SRC" >&6
-fi
-
-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
- withval="$with_fallbacks"
- with_fallback=$withval
-else
- with_fallback=
-fi;
-echo "$as_me:4312: result: $with_fallback" >&5
-echo "${ECHO_T}$with_fallback" >&6
-FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
-
-MAKE_TERMINFO=
-if test "$use_database" = no ; then
- TERMINFO="${datadir}/terminfo"
- MAKE_TERMINFO="#"
-else
-
-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"
-
-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
-
-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: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
-
- 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"
-
-eval 'TERMINFO_DIRS="$cf_dst_path"'
-
-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
-
-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"
-
-else
- withval="${TERMINFO-${datadir}/terminfo}"
-fi;
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
- ;;
- esac
- ;; #(vi
-.NONE/*)
- withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
- ;;
-*)
- { { 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"
-
-echo "$as_me:4412: result: $TERMINFO" >&5
-echo "${ECHO_T}$TERMINFO" >&6
-cat >>confdefs.h <<EOF
-#define TERMINFO "$TERMINFO"
-EOF
-
-fi
-
-### use option --disable-big-core to make tic run on small machines
-### We need 4Mb, check if we can allocate 50% more than that.
-echo "$as_me: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
- enableval="$enable_big_core"
- with_big_core=$enableval
-else
- if test "$cross_compiling" = yes; then
- with_big_core=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4434 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <string.h>
-int main() {
- unsigned long n = 6000000L;
- char *s = malloc(n);
- if (s != 0)
- s[0] = s[n-1] = 0;
- exit(s == 0);
-}
-_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
- 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
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi;
-echo "$as_me:4468: result: $with_big_core" >&5
-echo "${ECHO_T}$with_big_core" >&6
-test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
-#define HAVE_BIG_CORE 1
-EOF
-
-### use option --enable-termcap to compile in the termcap fallback support
-echo "$as_me:4475: checking if you want termcap-fallback support" >&5
-echo $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
- enableval="$enable_termcap"
- with_termcap=$enableval
-else
- with_termcap=no
-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"
-
-eval 'TERMPATH="$cf_dst_path"'
-
-echo "$as_me:4553: result: $TERMPATH" >&5
-echo "${ECHO_T}$TERMPATH" >&6
-test -n "$TERMPATH" && cat >>confdefs.h <<EOF
-#define TERMPATH "$TERMPATH"
-EOF
-
-### use option --enable-getcap to use a hacked getcap for reading termcaps
-echo "$as_me:4560: checking if fast termcap-loader is needed" >&5
-echo $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
- enableval="$enable_getcap"
- with_getcap=$enableval
-else
- with_getcap=no
-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
-
-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
- enableval="$enable_getcap_cache"
- with_getcap_cache=$enableval
-else
- with_getcap_cache=no
-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
-
-fi
-
-### Use option --enable-symlinks to make tic use symlinks, not hard links
-### to reduce storage requirements for the terminfo database.
-
-for ac_func in \
- remove \
- unlink
-do
-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,
- which can conflict with char $ac_func (); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-char (*f) ();
-
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
-
- ;
- 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
-
-fi
-done
-
-if test "$ac_cv_prog_cc_cross" = yes ; then
-
-for ac_func in \
- link \
- symlink
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:4675: checking for $ac_func" >&5
-echo $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,
- which can conflict with char $ac_func (); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-char (*f) ();
-
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
-
- ;
- 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
-
-fi
-done
-
-else
- 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
-
- 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
- cat >conftest.$ac_ext <<_ACEOF
-#line 4755 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-int main()
-{
- int fail = 0;
- char *src = "config.log";
- char *dst = "conftest.chk";
- struct stat src_sb;
- struct stat dst_sb;
-
- stat(src, &src_sb);
- fail = ($cf_func("config.log", "conftest.chk") < 0)
- || (stat(dst, &dst_sb) < 0)
- || (dst_sb.st_mtime != src_sb.st_mtime);
-#ifdef HAVE_UNLINK
- unlink(dst);
-#else
- remove(dst);
-#endif
- exit (fail);
-}
-
-_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
- 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
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
- done
- test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
-
-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
-
- test "$ac_cv_func_symlink" = yes && cat >>confdefs.h <<\EOF
-#define HAVE_SYMLINK 1
-EOF
-
-fi
-
-with_links=no
-with_symlinks=no
-
-if test "$ac_cv_func_link" != yes ; then
- 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
- echo "$as_me:4834: result: $with_symlinks" >&5
-echo "${ECHO_T}$with_symlinks" >&6
-elif test "$ac_cv_func_symlink" != yes ; then
- echo "$as_me:4837: checking if tic should use hard links" >&5
-echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6
- if test "$ac_cv_func_link" = yes ; then
- with_links=yes
- else
- with_links=no
- fi
- echo "$as_me:4844: result: $with_links" >&5
-echo "${ECHO_T}$with_links" >&6
-else
- 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
-fi;
- echo "$as_me:4857: result: $with_symlinks" >&5
-echo "${ECHO_T}$with_symlinks" >&6
-fi
-
-test "$with_links" = yes && cat >>confdefs.h <<\EOF
-#define USE_LINKS 1
-EOF
-
-test "$with_symlinks" = yes && cat >>confdefs.h <<\EOF
-#define USE_SYMLINKS 1
-EOF
-
-### use option --enable-broken-linker to force on use of broken-linker support
-echo "$as_me: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
- enableval="$enable_broken_linker"
- with_broken_linker=$enableval
-else
- with_broken_linker=$BROKEN_LINKER
-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
-
- 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
-
- 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
-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
- enableval="$enable_bsdpad"
- with_bsdpad=$enableval
-else
- with_bsdpad=no
-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
-
-### Enable compiling-in rcs id's
-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
- withval="$with_rcs_ids"
- with_rcs_ids=$withval
-else
- with_rcs_ids=no
-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
-
-###############################################################################
-
-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"
- MANPAGE_FORMAT=$withval
-else
- MANPAGE_FORMAT=unknown
-fi;
-
-case ".$MANPAGE_FORMAT" in
-.gzip|.compress|.BSDI|.normal|.formatted) # (vi
- ;;
-.unknown|.) # (vi
- if test -z "$MANPATH" ; then
- MANPATH="/usr/man:/usr/share/man"
- fi
- # look for the 'date' man-page (it's most likely to be installed!)
- 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
- do
- cf_test=`echo $cf_name | sed -e 's/*//'`
- if test "x$cf_test" = "x$cf_name" ; then
- case "$cf_name" in
- *.gz) MANPAGE_FORMAT=gzip;;
- *.Z) MANPAGE_FORMAT=compress;;
- *.0) MANPAGE_FORMAT=BSDI,formatted;;
- *) MANPAGE_FORMAT=normal;;
- esac
- break
- fi
- done
- if test "$MANPAGE_FORMAT" != "unknown" ; then
- break
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-.*) # (vi
- { echo "$as_me:5011: WARNING: Unexpected manpage-format" >&5
-echo "$as_me: WARNING: Unexpected manpage-format" >&2;}
- ;;
-esac
-
-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"
- MANPAGE_RENAMES=$withval
-else
- MANPAGE_RENAMES=yes
-fi;
-
-case ".$MANPAGE_RENAMES" in #(vi
-.no) #(vi
- ;;
-.|.yes)
- # Debian 'man' program?
- if test -f /etc/debian_version ; then
- MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
- else
- MANPAGE_RENAMES=no
- fi
- ;;
-esac
-
-if test "$MANPAGE_RENAMES" != no ; then
- if test -f $srcdir/man/$MANPAGE_RENAMES ; then
- MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
- elif test ! -f $MANPAGE_RENAMES ; then
- { { echo "$as_me: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
- if test -n "$MANPAGE_RENAMES" ; then
- test ! -d man && mkdir man
- sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
- fi
-fi
-
-echo "$as_me: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"
- MANPAGE_SYMLINKS=$withval
-else
- MANPAGE_SYMLINKS=yes
-fi;
-
-echo "$as_me:5075: result: $MANPAGE_SYMLINKS" >&5
-echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
-
-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"
- MANPAGE_TBL=$withval
-else
- 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"
- else
- cf_prefix="$prefix"
- fi
-
- case "$MANPAGE_FORMAT" in # (vi
- *formatted*) # (vi
- cf_subdir='$mandir/cat'
- cf_format=yes
- ;;
- *)
- cf_subdir='$mandir/man'
- cf_format=no
- ;;
- esac
-
-test ! -d man && mkdir man
-cat >man/edit_man.sh <<CF_EOF
-#! /bin/sh
-# this script is generated by the configure-script
-prefix="$cf_prefix"
-datadir="$datadir"
-NCURSES_OSPEED="$NCURSES_OSPEED"
-TERMINFO="$TERMINFO"
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
-INSTALL="$INSTALL"
-INSTALL_DATA="$INSTALL_DATA"
-transform="$program_transform_name"
-
-TMP=\${TMPDIR-/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 5 15
-
-verb=\$1
-shift
-
-mandir=\$1
-shift
-
-srcdir=\$1
-shift
-
-for i in \$* ; do
-case \$i in #(vi
-*.orig|*.rej) ;; #(vi
-*.[0-9]*)
- section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
- if test \$verb = installing ; then
- if test ! -d $cf_subdir\${section} ; then
- \$MKDIRS $cf_subdir\$section
- fi
- fi
- aliases=
- source=\`basename \$i\`
- inalias=\$source
- test ! -f \$inalias && inalias="\$srcdir/\$inalias"
- if test ! -f \$inalias ; then
- echo .. skipped \$source
- continue
- fi
-CF_EOF
-if test "$MANPAGE_SYMLINKS" = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
-CF_EOF
-fi
-
-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
- target=$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
- 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
-
- 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
-
-cat >>man/edit_man.sh <<CF_EOF
- sed -e "s,@DATADIR@,\$datadir," \\
- -e "s,@TERMINFO@,\$TERMINFO," \\
- -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
-CF_EOF
-
- for cf_name in captoinfo clear infocmp infotocap tic toe tput
- do
- cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-cat >>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
- < \$i | sed -f edit_man.sed >\$TMP
-CF_EOF
-else
-cat >>man/edit_man.sh <<CF_EOF
- < \$i >\$TMP
-CF_EOF
-fi
-if test $MANPAGE_TBL = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- tbl \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-if test $with_curses_h != yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-if test $cf_format = yes ; then
-cat >>man/edit_man.sh <<CF_EOF
- nroff -man \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
-fi
-case "$MANPAGE_FORMAT" in #(vi
-*compress*) #(vi
-cat >>man/edit_man.sh <<CF_EOF
- if test \$verb = installing ; then
- if ( compress -f \$TMP )
- then
- mv \$TMP.Z \$TMP
- fi
- fi
- target="\$target.Z"
-CF_EOF
- ;;
-*gzip*) #(vi
-cat >>man/edit_man.sh <<CF_EOF
- if test \$verb = installing ; then
- if ( gzip -f \$TMP )
- then
- mv \$TMP.gz \$TMP
- fi
- fi
- target="\$target.gz"
-CF_EOF
- ;;
-*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/'\`"
-CF_EOF
- ;;
-esac
-cat >>man/edit_man.sh <<CF_EOF
- suffix=\`basename \$target | sed -e 's/^[^.]*//'\`
- if test \$verb = installing ; then
- echo \$verb \$target
- \$INSTALL_DATA \$TMP \$target
- test -n "\$aliases" && (
- cd $cf_subdir\${section} && (
- target=\`basename \$target\`
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- if test -f \$cf_alias\${suffix} ; then
- if ( cmp -s \$target \$cf_alias\${suffix} )
- then
- :
- else
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- fi
- else
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- fi
- done
- )
- )
- elif test \$verb = removing ; then
- echo \$verb \$target
- rm -f \$target
- test -n "\$aliases" && (
- cd $cf_subdir\${section} && (
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- done
- )
- )
- else
-# echo ".hy 0"
- cat \$TMP
- fi
- ;;
-esac
-done
-exit 0
-CF_EOF
-chmod 755 man/edit_man.sh
-
-###############################################################################
-
-### Note that some functions (such as const) are normally disabled anyway.
-echo "$as_me:5320: checking if you want to build with function extensions" >&5
-echo $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
- enableval="$enable_ext_funcs"
- with_ext_funcs=$enableval
-else
- with_ext_funcs=yes
-fi;
-echo "$as_me:5330: result: $with_ext_funcs" >&5
-echo "${ECHO_T}$with_ext_funcs" >&6
-if test "$with_ext_funcs" = yes ; then
- NCURSES_EXT_FUNCS=1
- cat >>confdefs.h <<\EOF
-#define HAVE_CURSES_VERSION 1
-EOF
-
- cat >>confdefs.h <<\EOF
-#define HAVE_HAS_KEY 1
-EOF
-
- cat >>confdefs.h <<\EOF
-#define HAVE_RESIZETERM 1
-EOF
-
- cat >>confdefs.h <<\EOF
-#define HAVE_USE_DEFAULT_COLORS 1
-EOF
-
- cat >>confdefs.h <<\EOF
-#define HAVE_WRESIZE 1
-EOF
-
- cat >>confdefs.h <<\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.
-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
- enableval="$enable_const"
- with_ext_const=$enableval
-else
- with_ext_const=no
-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
-
-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
- enableval="$enable_no_padding"
- with_no_padding=$enableval
-else
- with_no_padding=$with_ext_funcs
-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
-
-### use option --enable-sigwinch to turn on use of SIGWINCH logic
-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
- enableval="$enable_sigwinch"
- with_sigwinch=$enableval
-else
- with_sigwinch=$with_ext_funcs
-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
-
-### use option --enable-tcap-names to allow user to define new capabilities
-echo "$as_me:5414: checking if you want user-definable terminal capabilities like termcap" >&5
-echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
-
-# Check whether --enable-tcap-names or --disable-tcap-names was given.
-if test "${enable_tcap_names+set}" = set; then
- enableval="$enable_tcap_names"
- with_tcap_names=$enableval
-else
- with_tcap_names=$with_ext_funcs
-fi;
-echo "$as_me:5424: result: $with_tcap_names" >&5
-echo "${ECHO_T}$with_tcap_names" >&6
-NCURSES_XNAMES=0
-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-
-###############################################################################
-# These options are relatively safe to experiment with.
-
-echo "$as_me: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
- withval="$with_develop"
- with_develop=$withval
-else
- with_develop=no
-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
-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
- enableval="$enable_hard_tabs"
- with_hardtabs=$enableval
-else
- with_hardtabs=$with_develop
-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
-
-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
- enableval="$enable_root_environ"
- with_root_environ=$enableval
-else
- with_root_environ=yes
-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
-
-### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo "$as_me:5479: checking if you want limited support for xmc" >&5
-echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
-
-# Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
-if test "${enable_xmc_glitch+set}" = set; then
- enableval="$enable_xmc_glitch"
- with_xmc_glitch=$enableval
-else
- with_xmc_glitch=$with_develop
-fi;
-echo "$as_me: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
-
-###############################################################################
-# These are just experimental, probably should not be in a package:
-
-echo "$as_me:5498: checking if you do not want to assume colors are white-on-black" >&5
-echo $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
- enableval="$enable_assumed_color"
- with_assumed_color=$enableval
-else
- with_assumed_color=yes
-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
-
-### use option --enable-hashmap to turn on use of hashmap scrolling logic
-echo "$as_me:5515: checking if you want hashmap scrolling-optimization code" >&5
-echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
-
-# Check whether --enable-hashmap or --disable-hashmap was given.
-if test "${enable_hashmap+set}" = set; then
- enableval="$enable_hashmap"
- with_hashmap=$enableval
-else
- with_hashmap=yes
-fi;
-echo "$as_me:5525: result: $with_hashmap" >&5
-echo "${ECHO_T}$with_hashmap" >&6
-test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
-#define USE_HASHMAP 1
-EOF
-
-### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
-echo "$as_me:5532: checking if you want colorfgbg code" >&5
-echo $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 "$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
- enableval="$enable_safe_sprintf"
- with_safe_sprintf=$enableval
-else
- with_safe_sprintf=no
-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
-
-### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
-# when hashmap is used scroll hints are useless
-if test "$with_hashmap" = no ; then
-echo "$as_me:5567: checking if you want to experiment without scrolling-hints code" >&5
-echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
-
-# Check whether --enable-scroll-hints or --disable-scroll-hints was given.
-if test "${enable_scroll_hints+set}" = set; then
- enableval="$enable_scroll_hints"
- with_scroll_hints=$enableval
-else
- with_scroll_hints=yes
-fi;
-echo "$as_me: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
-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
- enableval="$enable_widec"
- with_widec=$enableval
-else
- with_widec=no
-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}"
- cat >>confdefs.h <<\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
-
- 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
-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
- enableval="$enable_echo"
- with_echo=$enableval
-else
- with_echo=yes
-fi;
-if test "$with_echo" = yes; then
- ECHO_LINK=
-else
- ECHO_LINK='@ echo linking $@ ... ;'
- test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
-fi
-echo "$as_me:5863: result: $with_echo" >&5
-echo "${ECHO_T}$with_echo" >&6
-
-### use option --enable-warnings to turn on all gcc warnings
-echo "$as_me:5867: checking if you want to see compiler warnings" >&5
-echo $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
-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 "$GCC" = yes
-then
- cat > conftest.$ac_ext <<EOF
-#line 5884 "configure"
-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
-EOF
- { echo "$as_me:5887: checking for $CC warning options..." >&5
-echo "$as_me: checking for $CC warning options..." >&6;}
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-W -Wall"
- cf_warn_CONST=""
- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
- for cf_opt in \
- Wbad-function-cast \
- Wcast-align \
- Wcast-qual \
- Winline \
- Wmissing-declarations \
- Wmissing-prototypes \
- Wnested-externs \
- Wpointer-arith \
- Wshadow \
- Wstrict-prototypes \
- Wundef $cf_warn_CONST
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (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
- done
- rm -f conftest*
- CFLAGS="$cf_save_CFLAGS"
-fi
-
-fi
-
-if test "$GCC" = yes
-then
-cat > conftest.i <<EOF
-#ifndef GCC_PRINTF
-#define GCC_PRINTF 0
-#endif
-#ifndef GCC_SCANF
-#define GCC_SCANF 0
-#endif
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-EOF
-if test "$GCC" = yes
-then
- { echo "$as_me: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"
-#if GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-#if GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
-EOF
- for cf_attribute in scanf printf unused noreturn
- do
-
-CF_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cf_directive="__attribute__(($cf_attribute))"
- echo "checking for $CC $cf_directive" 1>&5
- case $cf_attribute in
- scanf|printf)
- cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE 1
-EOF
- ;;
- *)
- cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE $cf_directive
-EOF
- ;;
- esac
- 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
- fi
- done
-else
- fgrep define conftest.i >>confdefs.h
-fi
-rm -rf conftest*
-fi
-
-### use option --enable-assertions to turn on generation of assertion code
-echo "$as_me:6002: checking if you want to enable runtime assertions" >&5
-echo $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
- enableval="$enable_assertions"
- with_assertions=$enableval
-else
- with_assertions=no
-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
- cat >>confdefs.h <<\EOF
-#define NDEBUG 1
-EOF
-
- CPPFLAGS="$CPPFLAGS -DNDEBUG"
- else
- ADAFLAGS="$ADAFLAGS -gnata"
- fi
-fi
-
-### use option --disable-leaks to suppress "permanent" leaks, for testing
-
-# 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
-#define NO_LEAKS 1
-EOF
-
-fi;
-cat >>confdefs.h <<\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"
- test "$enableval" = yes && cat >>confdefs.h <<\EOF
-#define NCURSES_EXPANDED 1
-EOF
-
-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"
- test "$enableval" = no && cat >>confdefs.h <<\EOF
-#define NCURSES_NOMACROS 1
-EOF
-
-fi;
-
-### Checks for libraries.
-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
- cat >conftest.$ac_ext <<_ACEOF
-#line 6071 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gettimeofday (); 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 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
-f = gettimeofday;
-#endif
-
- ;
- 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
-
-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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbsd $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 6138 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char 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"
-fi
-
-fi
-
-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
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 6196 "configure"
-#include "confdefs.h"
-
- #include <stdio.h>
- #include <math.h>
-
-int
-main ()
-{
-double x = rand(); printf("result = %g\n", sin(x))
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_need_libm=yes
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-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
-
-### Checks for header files.
-
-echo "$as_me:6239: checking if we must define _GNU_SOURCE" >&5
-echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
-if test "${cf_cv_gnu_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 6246 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int
-main ()
-{
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6261: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6264: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6267: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6270: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_gnu_source=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
-#line 6279 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int
-main ()
-{
-
-#ifdef _XOPEN_SOURCE
-make an error
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6294: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6297: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6300: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6303: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_gnu_source=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_gnu_source=yes
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS="$cf_save"
-
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-echo "$as_me:6318: result: $cf_cv_gnu_source" >&5
-echo "${ECHO_T}$cf_cv_gnu_source" >&6
-test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-
-echo "$as_me:6322: checking for ANSI C header files" >&5
-echo $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>
-
-_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
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-#line 6364 "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-#line 6382 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 6403 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- 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
- 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
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-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
-
-cat >>confdefs.h <<\EOF
-#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
- 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>
-
-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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me: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
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
- echo "$as_me: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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldir $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 6524 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char 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"
-fi
-
-else
- 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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lx $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 6578 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char 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
-
-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
- 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
-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 "$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
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 6683 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <regex.h>
-int
-main ()
-{
-
- regex_t *p;
- int x = regcomp(p, "", 0);
- int y = regexec(p, "", 0, 0, 0);
- regfree(p);
-
- ;
- 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
- 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>
-int
-main ()
-{
-
- char *p = compile("", "", "", 0);
- int x = step("", "");
-
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-
- cf_save_LIBS="$LIBS"
- LIBS="-lgen $LIBS"
- cat >conftest.$ac_ext <<_ACEOF
-#line 6752 "configure"
-#include "confdefs.h"
-#include <regexpr.h>
-int
-main ()
-{
-
- char *p = compile("", "", "");
- int x = step("", "");
-
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-LIBS="$cf_save_LIBS"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-echo "$as_me:6792: result: $cf_cv_regex" >&5
-echo "${ECHO_T}$cf_cv_regex" >&6
-case $cf_cv_regex in
- regex.h) cat >>confdefs.h <<\EOF
-#define HAVE_REGEX_H_FUNCS 1
-EOF
- ;;
- regexp.h) cat >>confdefs.h <<\EOF
-#define HAVE_REGEXP_H_FUNCS 1
-EOF
- ;;
- regexpr.h) cat >>confdefs.h <<\EOF
-#define HAVE_REGEXPR_H_FUNCS 1
-EOF
- ;;
-esac
-
-for ac_header in \
-fcntl.h \
-getopt.h \
-libc.h \
-limits.h \
-locale.h \
-poll.h \
-sys/bsdtypes.h \
-sys/ioctl.h \
-sys/param.h \
-sys/poll.h \
-sys/select.h \
-sys/time.h \
-sys/times.h \
-ttyent.h \
-unistd.h \
-
-do
-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 <$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
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me: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
-
-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
-
-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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcposix $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 6885 "configure"
-#include "confdefs.h"
-
-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"
-
-fi
-
- 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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-linet $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 6936 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char 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"
-fi
-fi
-
-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
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 6989 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me: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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_sys_time_select=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-echo "$as_me: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
-
-### checks for compiler characteristics
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-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 <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me: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;
-}
-_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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_c_const=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-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
-
-cat >>confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-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
- cat >conftest.$ac_ext <<_ACEOF
-#line 7235 "configure"
-#include "confdefs.h"
-#ifndef __cplusplus
-static $ac_kw int static_foo () {return 0; }
-$ac_kw int foo () {return 0; }
-#endif
-
-_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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-done
-
-fi
-echo "$as_me:7264: result: $ac_cv_c_inline" >&5
-echo "${ECHO_T}$ac_cv_c_inline" >&6
-case $ac_cv_c_inline in
- inline | yes) ;;
- no)
-cat >>confdefs.h <<\EOF
-#define inline
-EOF
- ;;
- *) cat >>confdefs.h <<EOF
-#define inline $ac_cv_c_inline
-EOF
- ;;
-esac
-
-test "$ac_cv_c_inline" != no && cat >>confdefs.h <<\EOF
-#define CC_HAS_INLINE_FUNCS 1
-EOF
-
-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
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 7290 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-long x = 1L + 1UL + 1U + 1
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me: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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_unsigned_literals=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-echo "$as_me:7323: result: $cf_cv_unsigned_literals" >&5
-echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
-
-echo "$as_me:7326: checking for type of chtype" >&5
-echo $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
-
- if test "$cross_compiling" = yes; then
- cf_cv_typeof_chtype=long
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 7336 "configure"
-#include "confdefs.h"
-
-#ifdef USE_WIDEC_SUPPORT
-#include <stddef.h> /* we want wchar_t */
-#define WANT_BITS 39
-#else
-#define WANT_BITS 31
-#endif
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("cf_test.out", "w");
- if (fp != 0) {
- char *result = "long";
-#ifdef USE_WIDEC_SUPPORT
- /*
- * If wchar_t is smaller than a long, it must be an int or a
- * short. We prefer not to use a short anyway.
- */
- if (sizeof(unsigned long) > sizeof(wchar_t))
- result = "int";
-#endif
- if (sizeof(unsigned long) > sizeof(unsigned int)) {
- int n;
- unsigned int x;
- for (n = 0; n < WANT_BITS; n++) {
- unsigned int y = (x >> n);
- if (y != 1 || x == 0) {
- x = 0;
- break;
- }
- }
- /*
- * If x is nonzero, an int is big enough for the bits
- * that we want.
- */
- result = (x != 0) ? "int" : "long";
- }
- fputs(result, fp);
- fclose(fp);
- }
- exit(0);
-}
-
-_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
- 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
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
- rm -f cf_test.out
-
-fi
-
-echo "$as_me:7406: result: $cf_cv_typeof_chtype" >&5
-echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
-
-cat >>confdefs.h <<EOF
-#define TYPEOF_CHTYPE $cf_cv_typeof_chtype
-EOF
-
-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"
-
-### Checks for external-data
-
-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
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 7426 "configure"
-#include "confdefs.h"
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
-#include <errno.h>
-int
-main ()
-{
-long x = (long) errno
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_dcl_errno=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-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
-
-cf_result=`echo "decl_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >>confdefs.h <<EOF
-#define $cf_result 1
-EOF
-
-fi
-
-# It's possible (for near-UNIX clones) that the data doesn't exist
-
-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
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 7486 "configure"
-#include "confdefs.h"
-
-#undef errno
-extern int errno;
-
-int
-main ()
-{
-errno = 2
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_have_errno=no
-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
-
-if test "$cf_cv_have_errno" = yes ; then
-
-cf_result=`echo "have_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >>confdefs.h <<EOF
-#define $cf_result 1
-EOF
-
-fi
-
-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
-
- rm -f conftest.a
- cat >conftest.$ac_ext <<EOF
-#line 7542 "configure"
-int testdata[3] = { 123, 456, 789 };
-EOF
- 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
- cat >conftest.$ac_ext <<EOF
-#line 7555 "configure"
-int testfunc()
-{
-#if defined(NeXT)
- exit(1); /* I'm told this linker is broken */
-#else
- extern int testdata[3];
- return testdata[0] == 123
- && testdata[1] == 456
- && testdata[2] == 789;
-#endif
-}
-EOF
- if { (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
- rm -f conftest.$ac_ext func.o
- ( eval $ac_cv_prog_RANLIB conftest.a ) 2>&5 >/dev/null
- cf_saveLIBS="$LIBS"
- LIBS="conftest.a $LIBS"
- if test "$cross_compiling" = yes; then
- cf_cv_link_dataonly=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 7584 "configure"
-#include "confdefs.h"
-
- int main()
- {
- extern int testfunc();
- exit (!testfunc());
- }
-
-_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
- 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
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
- LIBS="$cf_saveLIBS"
-
-fi
-
-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
-
- BROKEN_LINKER=1
-fi
-
-### Checks for library functions.
-
-for ac_func in \
-getcwd \
-getegid \
-geteuid \
-getttynam \
-issetugid \
-memccpy \
-nanosleep \
-poll \
-remove \
-select \
-setbuf \
-setbuffer \
-setvbuf \
-sigaction \
-sigvec \
-strdup \
-strstr \
-tcgetpgrp \
-times \
-vsnprintf \
-
-do
-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,
- which can conflict with char $ac_func (); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-char (*f) ();
-
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
-
- ;
- 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
-
-fi
-done
-
-if test "$with_getcap" = "yes" ; then
-
-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
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 7730 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-int
-main ()
-{
-
- char temp[128];
- char *buf = temp;
- char *db_array = temp;
- cgetent(&buf, /* int *, */ &db_array, "vt100");
- cgetcap(buf, "tc", '=');
- cgetmatch(buf, "tc");
-
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_cgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-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
-
-fi
-
-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
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 7786 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-int
-main ()
-{
-int x = isascii(' ')
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_have_isascii=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-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
-
-if test "$ac_cv_func_sigaction" = yes; then
-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>
-int
-main ()
-{
-struct sigaction act
- ;
- 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
- 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>
-int
-main ()
-{
-struct sigaction act
- ;
- 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
- cat >>confdefs.h <<\EOF
-#define SVR4_ACTION 1
-EOF
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-sigact_bad=unknown
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:7898: result: $sigact_bad" >&5
-echo "${ECHO_T}$sigact_bad" >&6
-fi
-
-for ac_header in \
-termio.h \
-termios.h \
-unistd.h \
-
-do
-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 <$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
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me: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
-
-fi
-done
-
-if test "$ISC" = yes ; then
-
-for ac_header in sys/termio.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me: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 <$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
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me: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
-
-fi
-done
-
-fi
-if test "$ac_cv_header_termios_h" = yes ; then
- case "$CFLAGS $CPPFLAGS" in
- *-D_POSIX_SOURCE*)
- termios_bad=dunno ;;
- *) termios_bad=maybe ;;
- esac
- if test "$termios_bad" = maybe ; then
- 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>
-int
-main ()
-{
-struct termios foo; int x = foo.c_iflag
- ;
- 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
- 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>
-int
-main ()
-{
-struct termios foo; int x = foo.c_iflag
- ;
- 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
- 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
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me: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
-
-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
- cat >conftest.$ac_ext <<_ACEOF
-#line 8304 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mkstemp (); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char mkstemp ();
-char (*f) ();
-
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_mkstemp) || defined (__stub___mkstemp)
-choke me
-#else
-f = mkstemp;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me: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
-
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_func_mkstemp=no
-
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-fi
-echo "$as_me: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
-
-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
- { 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
- 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
- { { 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
- cat >conftest.$ac_ext <<_ACEOF
-#line 8451 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-/* If setvbuf has the reversed format, exit 0. */
-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. */
- if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
- exit(1);
- putc('\r', stdout);
- exit(0); /* Non-reversed systems segv here. */
-}
-_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
- 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
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core core.* *.core
-fi
-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
-
-cat >>confdefs.h <<\EOF
-#define SETVBUF_REVERSED 1
-EOF
-
-fi
-
-fi
-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
- cat >conftest.$ac_ext <<_ACEOF
-#line 8506 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int
-main ()
-{
-int i;
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_signal=int
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:8547: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6
-
-cat >>confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-echo "$as_me:8554: checking for type sigaction_t" >&5
-echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
-if test "${cf_cv_type_sigaction+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 8561 "configure"
-#include "confdefs.h"
-
-#include <signal.h>
-int
-main ()
-{
-sigaction_t x
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_type_sigaction=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-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
-
-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
-
- cf_cv_sizechange=unknown
- cf_save_CPPFLAGS="$CPPFLAGS"
-
-for cf_opts in "" "NEED_PTEM_H"
-do
-
- CPPFLAGS="$cf_save_CPPFLAGS"
- test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
- cat >conftest.$ac_ext <<_ACEOF
-#line 8615 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#else
-#ifdef HAVE_TERMIO_H
-#include <termio.h>
-#endif
-#endif
-#ifdef NEED_PTEM_H
-/* This is a workaround for SCO: they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
- */
-#include <sys/stream.h>
-#include <sys/ptem.h>
-#endif
-#if !defined(sun) || !defined(HAVE_TERMIOS_H)
-#include <sys/ioctl.h>
-#endif
-
-int
-main ()
-{
-
-#ifdef TIOCGSIZE
- struct ttysize win; /* FIXME: what system is this? */
- int y = win.ts_lines;
- int x = win.ts_cols;
-#else
-#ifdef TIOCGWINSZ
- struct winsize win;
- int y = win.ws_row;
- int x = win.ws_col;
-#else
- no TIOCGSIZE or TIOCGWINSZ
-#endif /* TIOCGWINSZ */
-#endif /* TIOCGSIZE */
-
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_sizechange=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
- 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"
- break
- fi
-done
-
-fi
-echo "$as_me:8687: result: $cf_cv_sizechange" >&5
-echo "${ECHO_T}$cf_cv_sizechange" >&6
-if test "$cf_cv_sizechange" != no ; then
- cat >>confdefs.h <<\EOF
-#define HAVE_SIZECHANGE 1
-EOF
-
- case $cf_cv_sizechange in #(vi
- NEED*)
- cat >>confdefs.h <<EOF
-#define $cf_cv_sizechange 1
-EOF
-
- ;;
- esac
-fi
-
-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
- cat >conftest.$ac_ext <<_ACEOF
-#line 8710 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char memmove (); 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 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
-f = memmove;
-#endif
-
- ;
- 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
-
-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
- cat >conftest.$ac_ext <<_ACEOF
-#line 8772 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char bcopy (); 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 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
-f = bcopy;
-#endif
-
- ;
- 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
-
- if test "$cross_compiling" = yes; then
- cf_cv_good_bcopy=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 8836 "configure"
-#include "confdefs.h"
-
-int main() {
- static char data[] = "abcdefghijklmnopqrstuwwxyz";
- char temp[40];
- bcopy(data, temp, sizeof(data));
- bcopy(temp+10, temp, 15);
- bcopy(temp+5, temp+15, 10);
- exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
-}
-
-_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
- 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
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-fi
-echo "$as_me:8871: result: $cf_cv_good_bcopy" >&5
-echo "${ECHO_T}$cf_cv_good_bcopy" >&6
-
-else
- cf_cv_good_bcopy=no
-fi
-
- if test "$cf_cv_good_bcopy" = yes ; then
- cat >>confdefs.h <<\EOF
-#define USE_OK_BCOPY 1
-EOF
-
- else
- cat >>confdefs.h <<\EOF
-#define USE_MY_MEMMOVE 1
-EOF
-
- fi
-
-fi
-
-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
-
-if test "$cross_compiling" = yes; then
- cf_cv_working_poll=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 8902 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#ifdef HAVE_POLL_H
-#include <poll.h>
-#else
-#include <sys/poll.h>
-#endif
-int main() {
- struct pollfd myfds;
- int ret;
-
- myfds.fd = 0;
- myfds.events = POLLIN;
-
- ret = poll(&myfds, 1, 100);
- exit(ret != 0);
-}
-_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
- 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
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:8943: result: $cf_cv_working_poll" >&5
-echo "${ECHO_T}$cf_cv_working_poll" >&6
-test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
-#define HAVE_WORKING_POLL 1
-EOF
-
-if test -z "$cf_user_CFLAGS" ; then
- CFLAGS=`echo ${CFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
- CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's/-g //' -e 's/-g$//'`
-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 "$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
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 9004 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <sys/types.h>
-
-int
-main ()
-{
-bool x = false
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_cc_bool_type=0
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-if test "$cf_cv_cc_bool_type" = 1
-then echo "$as_me:9041: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else echo "$as_me:9043: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-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
-
-if test -n "$GXX" ; then
-case $cf_cv_system_name in #(vi
-os2*) #(vi
- cf_stdcpp_libname=stdcpp
- ;;
-*)
- cf_stdcpp_libname=stdc++
- ;;
-esac
-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
-
- cf_save="$LIBS"
- LIBS="$LIBS -l$cf_stdcpp_libname"
-cat >conftest.$ac_ext <<_ACEOF
-#line 9072 "configure"
-#include "confdefs.h"
-
-#include <strstream.h>
-int
-main ()
-{
-
-char buf[80];
-strstreambuf foo(buf, sizeof(buf))
-
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_libstdcpp=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS="$cf_save"
-
-fi
-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
-
- 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_gpp_libname=gpp
- ;;
-*)
- cf_gpp_libname=g++
- ;;
-esac
-if test "$ac_cv_cxx_compiler_gnu" = yes; then
- echo "$as_me:9130: checking for lib$cf_gpp_libname" >&5
-echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
- cf_save="$LIBS"
- LIBS="$LIBS -l$cf_gpp_libname"
- cat >conftest.$ac_ext <<_ACEOF
-#line 9135 "configure"
-#include "confdefs.h"
-
-#include <$cf_gpp_libname/builtin.h>
-
-int
-main ()
-{
-two_arg_error_handler_t foo2 = lib_error_handler
- ;
- 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
- cat >>confdefs.h <<\EOF
-#define HAVE_GPP_BUILTIN_H 1
-EOF
-
- else
- cat >>confdefs.h <<\EOF
-#define HAVE_GXX_BUILTIN_H 1
-EOF
-
- fi
-else
- 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>
-
-int
-main ()
-{
-two_arg_error_handler_t foo2 = lib_error_handler
- ;
- 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"
- cat >>confdefs.h <<\EOF
-#define HAVE_BUILTIN_H 1
-EOF
-
-else
- 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
-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
- :
-else
- { { 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_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 <$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
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me: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
-done
-
-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 <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
- 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: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
- cf_cv_header_stdbool_h=0
-fi
-
-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
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 9521 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <sys/types.h>
-
-int
-main ()
-{
-bool x = false
- ;
- 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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_builtin_bool=0
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-if test "$cf_cv_builtin_bool" = 1
-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
-
-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
-
- rm -f cf_test.out
- if test "$cross_compiling" = yes; then
- cf_cv_type_of_bool=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 9575 "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: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`
- 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
-
- rm -f cf_test.out
-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
- 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
-
-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
-do
-for cf_excp in "" MATH_EXCEPTION
-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}"
-cat >conftest.$ac_ext <<_ACEOF
-#line 9666 "configure"
-#include "confdefs.h"
-
-#include <etip.h.in>
-
-int
-main ()
-{
-
- ;
- 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
-
- test -n "$cf_excp" && cat >>confdefs.h <<EOF
-#define ETIP_NEEDS_${cf_excp} 1
-EOF
-
- cf_result="$cf_math $cf_excp"
- break
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-done
-done
-echo "$as_me:9710: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
-CXXFLAGS="$cf_save_CXXFLAGS"
-
-if test -n "$CXX"; then
-echo "$as_me:9715: checking if $CXX accepts parameter initialization" >&5
-echo $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
-
- 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 "$cross_compiling" = yes; then
- cf_cv_cpp_param_init=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 9731 "configure"
-#include "confdefs.h"
-
-class TEST {
-private:
- int value;
-public:
- TEST(int x = 1);
- ~TEST();
-};
-
-TEST::TEST(int x = 1) // some compilers do not like second initializer
-{
- value = x;
-}
-void main() { }
-
-_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
- 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
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-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
-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
-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
-
-fi
-
-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
-
- ;;
-esac
-
- CXX_AR='$(AR)'
- CXX_AR_OPTS='$(AR_OPTS)'
- case $cf_cv_system_name in #(vi
- irix*) #(vi
- if test "$GXX" != yes ; then
- CXX_AR='$(CXX)'
- CXX_AR_OPTS='-ar -o'
- fi
- ;;
- sco3.2v5*) #(vi
- CXXLDFLAGS="-u main"
- ;;
- solaris2*)
- if test "$GXX" != yes ; then
- CXX_AR='$(CXX)'
- CXX_AR_OPTS='-xar -o'
- fi
- ;;
- esac
-
-else
- cf_cxx_library=no
- cf_cv_builtin_bool=1
-
- # Just because we are not configuring against C++ right now does not
- # mean that a user will not want to use C++. Some distributors disable
- # the C++ portion of this configuration as a shortcut (or just to avoid
- # compiling the demo in the c++ directory). So we need a reasonable
- # default for the 'bool' type.
- #
- # Caveat: since the storage of the bool type is not standardized, it
- # may change.
-
- 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
-
- 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
-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
- 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
-gnat_exists=$ac_cv_prog_gnat_exists
-if test -n "$gnat_exists"; then
- echo "$as_me:10133: result: $gnat_exists" >&5
-echo "${ECHO_T}$gnat_exists" >&6
-else
- 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
-
-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
- 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=no
- ;;
-esac
-case $cf_cv_gnat_version in
- 3.1*|[4-9].*)
- cf_compile_generics=generics
- cf_generic_objects="\$(GENOBJS)"
- ;;
- *) cf_compile_generics=
- cf_generic_objects=
- ;;
-esac
-
- # Extract the first word of "m4", so it can be a program name with args.
-set dummy m4; ac_word=$2
-echo "$as_me: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
- 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
-M4_exists=$ac_cv_prog_M4_exists
-if test -n "$M4_exists"; then
- echo "$as_me:10190: result: $M4_exists" >&5
-echo "${ECHO_T}$M4_exists" >&6
-else
- echo "$as_me:10193: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- if test "$ac_cv_prog_M4_exists" = no; then
- cf_cv_prog_gnat_correct=no
- echo Ada95 binding required program m4 not found. Ada95 binding disabled.
- fi
- if test "$cf_cv_prog_gnat_correct" = yes; then
- echo "$as_me:10202: checking if GNAT works" >&5
-echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
-
-rm -f conftest*
-cat >>conftest.ads <<CF_EOF
-procedure conftest;
-CF_EOF
-cat >>conftest.adb <<CF_EOF
-with Text_IO;
-with GNAT.OS_Lib;
-procedure conftest is
-begin
- Text_IO.Put ("Hello World");
- Text_IO.New_Line;
- GNAT.OS_Lib.OS_Exit (0);
-end conftest;
-CF_EOF
-if ( $cf_ada_make conftest 1>&5 2>&1 ) ; then
- if ( ./conftest 1>&5 2>&1 ) ; then
- cf_cv_prog_gnat_correct=yes
- else
- cf_cv_prog_gnat_correct=no
- fi
-else
- cf_cv_prog_gnat_correct=no
-fi
-rm -f conftest*
-
- 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"
-
-# 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;
-
- 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"
-
-else
- withval="${ADA_INCLUDE-$prefix/lib/ada/adainclude}"
-fi;
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
- ;;
- esac
- ;; #(vi
-.NONE/*)
- withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
- ;;
-*)
- { { 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"
-
-# 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}"
-fi;
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
- ;;
- esac
- ;; #(vi
-.NONE/*)
- withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
- ;;
-*)
- { { 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"
-
-fi
-fi
-
-### It's not possible to appease gcc 2.6.3's conversion-warnings if we're
-### using a 'char' for bools. gcc 2.7.0's conversion-warnings are broken too
-### badly to consider using for development purposes, but 2.5.8 is okay.
-if test -n "$with_warnings"; then
- case $GCC_VERSION in
- 2.6.3)
- if test "$cf_cv_type_of_bool" != "char"; then
- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
- fi
- ;;
- 2.5*)
- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
- ;;
- esac
-fi
-
-### Construct the library-subsets, if any, from this set of keywords:
-### none, base, ext_funcs, termlib.
-echo "$as_me:10336: checking for library subsets" >&5
-echo $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"
-test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
-test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-echo "$as_me:10346: result: $LIB_SUBSETS" >&5
-echo "${ECHO_T}$LIB_SUBSETS" >&6
-
-LIB_TRACING=DEBUG
-ADA_TRACE=FALSE
-case "$CFLAGS $CPPFLAGS" in
-*-DTRACE*)
- LIB_TRACING=all
- ADA_TRACE=TRUE
- ;;
-esac
-
-### Construct the list of include-directories to be generated
-
-CPPFLAGS="$CPPFLAGS -I. -I../include"
-if test "$srcdir" != "."; then
- CPPFLAGS="$CPPFLAGS -I\$(srcdir)/../include"
-fi
-if test "$GCC" != yes; then
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
- fi
- else
- CPPFLAGS="$CPPFLAGS -I\$(includedir)"
- fi
-fi
-
-ACPPFLAGS="$ACPPFLAGS -I. -I../../include"
-if test "$srcdir" != "."; then
- ACPPFLAGS="$ACPPFLAGS -I\$(srcdir)/../../include"
-fi
-if test "$GCC" != yes; then
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
-elif test "$includedir" != "/usr/include"; then
- if test "$includedir" = '${prefix}/include' ; then
- if test $prefix != /usr ; then
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
- fi
- else
- ACPPFLAGS="$ACPPFLAGS -I\$(includedir)"
- fi
-fi
-
-### Build up pieces for makefile rules
-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='' ;;
- normal) DFT_ARG_SUFFIX='' ;;
- debug) DFT_ARG_SUFFIX='_g' ;;
- profile) DFT_ARG_SUFFIX='_p' ;;
- shared) DFT_ARG_SUFFIX='' ;;
- esac
- test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
-echo "$as_me:10404: result: $DFT_ARG_SUFFIX" >&5
-echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
-
-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' ;;
- debug) DFT_DEP_SUFFIX='_g.a' ;;
- 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}"
-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 "$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' ;;
- shared)
- case $cf_cv_system_name in #(vi
- cygwin) #(vi
- DFT_OBJ_SUBDIR='objects' ;;
- *)
- DFT_OBJ_SUBDIR='obj_s' ;;
- esac
- esac
-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++)
-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
-
- case normal in
- libtool) CXX_LIB_SUFFIX='.la' ;;
- normal) CXX_LIB_SUFFIX='.a' ;;
- debug) CXX_LIB_SUFFIX='_g.a' ;;
- 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
-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}"
-
-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}
-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.
-if test "$with_termlib" = yes ; then
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
- fi
-fi
-PROG_DEPS="$TEST_DEPS"
-PROG_ARGS="$TEST_ARGS"
-
-### Construct the list of subdirectories for which we'll customize makefiles
-### with the appropriate compile-rules.
-
-echo "$as_me:10515: checking for src modules" >&5
-echo $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"
-if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
-else
- TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
-fi
-
-# dependencies and linker-arguments for utility-programs
-PROG_ARGS="$TEST_ARGS"
-
-cf_cv_src_modules=
-for cf_dir in $modules_to_build
-do
- if test -f $srcdir/$cf_dir/modules; then
-
- # We may/may not have tack in the distribution, though the
- # makefile is.
- if test $cf_dir = tack ; then
- if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then
- continue
- fi
- fi
-
- if test -z "$cf_cv_src_modules"; then
- cf_cv_src_modules=$cf_dir
- else
- cf_cv_src_modules="$cf_cv_src_modules $cf_dir"
- fi
-
- # Make the ncurses_cfg.h file record the library interface files as
- # well. These are header files that are the same name as their
- # directory. Ncurses is the only library that does not follow
- # that pattern.
- if test $cf_dir = tack ; then
- continue
- elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then
-
-cf_have_include=`echo "$cf_dir" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >>confdefs.h <<EOF
-#define HAVE_${cf_have_include}_H 1
-EOF
-
- cat >>confdefs.h <<EOF
-#define HAVE_LIB${cf_have_include} 1
-EOF
-
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
- fi
- fi
- fi
-done
-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="$SRC_SUBDIRS test"
-test -z "$MAKE_TERMINFO" && SRC_SUBDIRS="$SRC_SUBDIRS misc"
-test "$cf_with_cxx_binding" != no && SRC_SUBDIRS="$SRC_SUBDIRS c++"
-
-ADA_SUBDIRS=
-if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
- SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
- ADA_SUBDIRS="gen src samples"
-fi
-
-SUB_MAKEFILES=
-for cf_dir in $SRC_SUBDIRS
-do
- SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile"
-done
-
-if test -n "$ADA_SUBDIRS"; then
- for cf_dir in $ADA_SUBDIRS
- do
- SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
- done
-
-fi
-
-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' ;;
- shared)
- case $cf_cv_system_name in #(vi
- cygwin) #(vi
- cf_subdir='objects' ;;
- *)
- cf_subdir='obj_s' ;;
- esac
- esac
-
- 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
-
-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"
-
-################################################################################
-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
-# 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.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `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.
-{
- (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
- 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
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# 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
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me: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.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-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
- 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)
- 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
- shift
-done
-
-exec 5>>config.log
-cat >&5 << _ACEOF
-
-## ----------------------- ##
-## Running config.status. ##
-## ----------------------- ##
-
-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`
-
-_ACEOF
-EOF
-
-cat >>$CONFIG_STATUS <<EOF
-#
-# INIT-COMMANDS section.
-#
-
-### 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
-
-# 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
-
-# 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
-
- 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"
-
-EOF
-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".
- 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
-
- # 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
- { 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.
- ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- 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.
- ac_srcdir=$ac_dots$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_dots$srcdir ;;
- esac
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_dots$INSTALL ;;
- 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
-
-#
-# 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.
-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_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.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
-
- 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
-
-# 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'.
-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
-while grep . conftest.vals >/dev/null
-do
- # 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
- echo 'CEOF' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-# 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
-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
-
-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
- 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
- { 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
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-done
-EOF
-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
- OS/2*) LIB_PREFIX='' ;;
- os2*) 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
-
- IMPORT_LIB=
- SHARED_LIB=
- LIBS_TO_MAKE=
- for cf_item in $CF_LIST_MODELS
- do
-
- case $cf_item in
- libtool) cf_suffix='.la' ;;
- normal) cf_suffix='.a' ;;
- debug) cf_suffix='_g.a' ;;
- 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}"
-
- if test $cf_item = shared ; then
- if test "$cf_cv_do_symlinks" = yes ; then
- case "$cf_cv_shlib_version" in #(vi
- rel) #(vi
- case "$cf_cv_system_name" in #(vi
- darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
- *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
- esac
- ;;
- abi)
- case "$cf_cv_system_name" in #(vi
- darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
- *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
- esac
- ;;
- esac
- fi
- # cygwin needs import library, and has unique naming convention
- 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
- LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
- done
-
- if test $cf_dir = ncurses ; then
- cf_subsets="$LIB_SUBSETS"
- case "$LIB_SUBSETS" in #(vi
- termlib+*) #(vi
- ;;
- *) #(vi
- cf_item=`echo $LIBS_TO_MAKE |sed -e s/$LIB_NAME/$TINFO_NAME/g`
- LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
- ;;
- esac
- else
- cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib //'`
- fi
-
- sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
- -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
- -e "s%@SHARED_LIB@%$SHARED_LIB%" \
- $cf_dir/Makefile >$cf_dir/Makefile.out
- mv $cf_dir/Makefile.out $cf_dir/Makefile
-
- $AWK -f $srcdir/mk-0th.awk \
- libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
-
- for cf_subset in $cf_subsets
- do
- cf_subdirs=
- for cf_item in $CF_LIST_MODELS
- do
- echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
-
-CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- case $cf_item in
- libtool) cf_suffix='.la' ;;
- normal) cf_suffix='.a' ;;
- debug) cf_suffix='_g.a' ;;
- 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}"
-
- case $cf_item in
- libtool) cf_subdir='obj_lo' ;;
- normal) cf_subdir='objects' ;;
- debug) cf_subdir='obj_g' ;;
- profile) cf_subdir='obj_p' ;;
- shared)
- case $cf_cv_system_name in #(vi
- cygwin) #(vi
- cf_subdir='objects' ;;
- *)
- cf_subdir='obj_s' ;;
- esac
- esac
-
- # These dependencies really are for development, not
- # builds, but they are useful in porting, too.
- cf_depend="../include/ncurses_cfg.h"
- if test "$srcdir" = "."; then
- cf_reldir="."
- else
- cf_reldir="\$(srcdir)"
- fi
-
- if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then
- cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h"
- elif test -f $srcdir/$cf_dir/curses.priv.h; then
- cf_depend="$cf_depend $cf_reldir/curses.priv.h"
- fi
-
- $AWK -f $srcdir/mk-1st.awk \
- name=$cf_dir \
- traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
- model=$cf_subdir \
- prefix=$cf_prefix \
- suffix=$cf_suffix \
- subset=$cf_subset \
- ShlibVer=$cf_cv_shlib_version \
- ShlibVerInfix=$cf_cv_shlib_version_infix \
- DoLinks=$cf_cv_do_symlinks \
- rmSoLocs=$cf_cv_rm_so_locs \
- ldconfig="$LDCONFIG" \
- overwrite=$WITH_OVERWRITE \
- depend="$cf_depend" \
- target="$target" \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- for cf_subdir2 in $cf_subdirs lib
- do
- test $cf_subdir = $cf_subdir2 && break
- done
- test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \
- $AWK -f $srcdir/mk-2nd.awk \
- name=$cf_dir \
- traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
- model=$cf_subdir \
- subset=$cf_subset \
- srcdir=$srcdir \
- echo=$WITH_ECHO \
- $srcdir/$cf_dir/modules >>$cf_dir/Makefile
- cf_subdirs="$cf_subdirs $cf_subdir"
- done
- done
- fi
-
- echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) $@' >>Makefile
-done
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $cf_dir/Makefile ; then
- case "$cf_dir" in
- Ada95) #(vi
- echo 'libs \' >> Makefile
- echo 'install.libs \' >> Makefile
- echo 'uninstall.libs ::' >> Makefile
- echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) $@' >> Makefile
- ;;
- esac
- fi
-
- if test -f $srcdir/$cf_dir/modules; then
- echo >> Makefile
- if test -f $srcdir/$cf_dir/headers; then
-cat >> Makefile <<CF_EOF
-install.includes \\
-uninstall.includes \\
-CF_EOF
- fi
-if test "$cf_dir" != "c++" ; then
-echo 'lint \' >> Makefile
-fi
-cat >> Makefile <<CF_EOF
-libs \\
-lintlib \\
-install.libs \\
-uninstall.libs \\
-install.$cf_dir \\
-uninstall.$cf_dir ::
- cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \$@
-CF_EOF
- elif test -f $srcdir/$cf_dir/headers; then
-cat >> Makefile <<CF_EOF
-
-libs \\
-install.libs \\
-uninstall.libs \\
-install.includes \\
-uninstall.includes ::
- cd $cf_dir && \$(MAKE) \$(CF_MFLAGS) \$@
-CF_EOF
-fi
-done
-
-cat >> Makefile <<CF_EOF
-
-install.data \\
-uninstall.data ::
-$MAKE_TERMINFO cd misc && \$(MAKE) \$(CF_MFLAGS) \$@
-
-install.man \\
-uninstall.man ::
- cd man && \$(MAKE) \$(CF_MFLAGS) \$@
-
-distclean ::
- rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
- rm -f headers.sh headers.sed
- rm -rf \$(DIRS_TO_MAKE)
-CF_EOF
-
-# Special case: tack's manpage lives in its own directory.
-if test -d tack ; then
-if test -f $srcdir/$tack.h; then
-cat >> Makefile <<CF_EOF
-
-install.man \\
-uninstall.man ::
- cd tack && \$(MAKE) \$(CF_MFLAGS) \$@
-CF_EOF
-fi
-fi
-
-rm -f headers.sed headers.sh
-
-echo creating headers.sh
-cat >headers.sh <<CF_EOF
-#! /bin/sh
-# This shell script is generated by the 'configure' script. It is invoked in a
-# subdirectory of the build tree. It generates a sed-script in the parent
-# directory that is used to adjust includes for header files that reside in a
-# subdirectory of /usr/include, etc.
-PRG=""
-while test \$# != 3
-do
-PRG="\$PRG \$1"; shift
-done
-DST=\$1
-REF=\$2
-SRC=\$3
-TMPSRC=\${TMPDIR-/tmp}/\`basename \$SRC\`\$\$
-TMPSED=\${TMPDIR-/tmp}/headers.sed\$\$
-echo installing \$SRC in \$DST
-CF_EOF
-if test $WITH_CURSES_H = yes; then
- cat >>headers.sh <<CF_EOF
-case \$DST in
-/*/include/*)
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
- done
- ;;
-*)
- echo "" >> \$TMPSED
- ;;
-esac
-CF_EOF
-else
- cat >>headers.sh <<CF_EOF
-case \$DST in
-/*/include/*)
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- if test "\$NAME" = "curses.h"
- then
- echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
- NAME=ncurses.h
- fi
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED
- done
- ;;
-*)
- echo "s/<curses.h>/<ncurses.h>/" >> \$TMPSED
- ;;
-esac
-CF_EOF
-fi
-cat >>headers.sh <<CF_EOF
-rm -f \$TMPSRC
-sed -f \$TMPSED \$SRC > \$TMPSRC
-NAME=\`basename \$SRC\`
-CF_EOF
-if test $WITH_CURSES_H != yes; then
- cat >>headers.sh <<CF_EOF
-test "\$NAME" = "curses.h" && NAME=ncurses.h
-CF_EOF
-fi
-cat >>headers.sh <<CF_EOF
-# Just in case someone gzip'd manpages, remove the conflicting copy.
-test -f \$DST/\$NAME.gz && rm -f \$DST/\$NAME.gz
-
-eval \$PRG \$TMPSRC \$DST/\$NAME
-rm -f \$TMPSRC \$TMPSED
-CF_EOF
-
-chmod 0755 headers.sh
-
-for cf_dir in $SRC_SUBDIRS
-do
- if test -f $srcdir/$cf_dir/headers; then
- cat >>$cf_dir/Makefile <<CF_EOF
-\$(DESTDIR)\$(includedir) :
- sh \$(srcdir)/../mkinstalldirs \$@
-
-install \\
-install.libs \\
-install.includes :: \$(AUTO_SRC) \$(DESTDIR)\$(includedir) \\
-CF_EOF
- j=""
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- test -n "$j" && echo " $j \\" >>$cf_dir/Makefile
- j=$i
- done
- echo " $j" >>$cf_dir/Makefile
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile
- test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile
- done
-
- cat >>$cf_dir/Makefile <<CF_EOF
-
-uninstall \\
-uninstall.libs \\
-uninstall.includes ::
-CF_EOF
- for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"`
- do
- i=`basename $i`
- echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f $i)" >>$cf_dir/Makefile
- test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile
- done
- fi
-
- if test -f $srcdir/$cf_dir/modules; then
- if test "$cf_dir" != "c++" ; then
- cat >>$cf_dir/Makefile <<"CF_EOF"
-depend : $(AUTO_SRC)
- makedepend -- $(CPPFLAGS) -- $(C_SRC)
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
-CF_EOF
- fi
- fi
-done
-
- ;;
- esac
-done
-EOF
-
-cat >>$CONFIG_STATUS <<\EOF
-
-{ (exit 0); exit 0; }
-EOF
-chmod +x $CONFIG_STATUS
-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
diff --git a/ncurses-5.3/configure.in b/ncurses-5.3/configure.in
deleted file mode 100644
index a1f4979..0000000
--- a/ncurses-5.3/configure.in
+++ /dev/null
@@ -1,1335 +0,0 @@
-dnl***************************************************************************
-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 "Software"), to deal in the Software without restriction, including *
-dnl without limitation the rights to use, copy, modify, merge, publish, *
-dnl distribute, distribute with modifications, sublicense, and/or sell *
-dnl copies of the Software, and to permit persons to whom the Software is *
-dnl furnished to do so, subject to the following conditions: *
-dnl *
-dnl The above copyright notice and this permission notice shall be included *
-dnl in all copies or substantial portions of the Software. *
-dnl *
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-dnl *
-dnl Except as contained in this notice, the name(s) of the above copyright *
-dnl holders shall not be used in advertising or otherwise to promote the *
-dnl sale, use or other dealings in this Software without prior written *
-dnl authorization. *
-dnl***************************************************************************
-dnl
-dnl Author: Thomas E. Dickey 1995-on
-dnl
-dnl $Id$
-dnl Process this file with autoconf to produce a configure script.
-dnl
-dnl See http://invisible-island.net/autoconf/ for additional information.
-dnl
-dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.13.20020210)
-AC_REVISION($Revision$)
-AC_INIT(ncurses/base/lib_initscr.c)
-AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
-
-CF_SUBST_NCURSES_VERSION
-CF_CHECK_CACHE([AC_CANONICAL_SYSTEM])
-AC_ARG_WITH(system-type,
-[ --with-system-type=XXX test: override derived host system-type],
-[AC_MSG_WARN(overriding system type to $withval)
- cf_cv_system_name=$withval])
-
-# We need a configure script only when compiling as part of GNU C library.
-# Here we have to generate one of the files we need while compiling.
-#
-# The only problem is that users of the package might think they have to
-# run configure themself and find it irritating when nothing happens.
-#
-# So we try here to find out whether we are called from the glibc configure
-# or by a user.
-#
-dnl Check if we are a drop-in addition to glibc.
-AC_ARG_ENABLE(add-ons, dnl
-[ --enable-add-ons=DIR... used to check if we are a glibc add-on.],
- [glibc_add_on=yes],
- [glibc_add_on=])
-
-if test x"$glibc_add_on" = "xyes" ; then
- rm -f $srcdir/Banner
- # We are in glibc.
- rm -f $srcdir/Makefile
- cp $srcdir/Makefile.glibc $srcdir/Makefile
- echo "ncurses `grep \"^[[ ]]*ncurses-version[[ ]]*=.*$\" \
- $srcdir/Makefile | sed -e \
- 's/^[[ ]]*ncurses-version[[ ]]*=[[ ]]*\([[^ ^ ]]*\)[[ ]]*$/\1/'`" > $srcdir/Banner
- exit 0
-fi
-
-### Save the given $CFLAGS to allow user-override.
-cf_user_CFLAGS="$CFLAGS"
-
-### Default install-location
-CF_CFG_DEFAULTS
-
-### Checks for programs.
-AC_PROG_CC
-GCC_VERSION=none
-if test "$GCC" = yes ; then
- AC_MSG_CHECKING(version of gcc)
- GCC_VERSION="`${CC} --version|head -1`"
- AC_MSG_RESULT($GCC_VERSION)
-fi
-
-# If we're cross-compiling, allow the user to override the tools and their
-# options. The configure script is oriented toward identifying the target
-# compiler, etc., but we need a host compiler to generate parts of the source.
-BUILD_CC='$(CC)'
-BUILD_CFLAGS='$(CFLAGS)'
-BUILD_CPPFLAGS='$(CPPFLAGS)'
-BUILD_LDFLAGS='$(LDFLAGS)'
-BUILD_LIBS='$(LIBS)'
-if test "$host_alias" != "$target_alias" ; then
- AC_ARG_WITH(build-cc,
- [ --with-build-cc=XXX if cross-compiling, the host C compiler (\$BUILD_CC)],
- [BUILD_CC="$withval"],
- [AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)])
- AC_ARG_WITH(build-cflags,
- [ --with-build-cflags=XXX if cross-compiling, the host C compiler-flags],
- [BUILD_CFLAGS="$withval"])
- AC_ARG_WITH(build-cppflags,
- [ --with-build-cppflags=XXX if cross-compiling, the host C preprocessor-flags],
- [BUILD_CPPFLAGS="$withval"])
- AC_ARG_WITH(build-ldflags,
- [ --with-build-ldflags=XXX if cross-compiling, the host linker-flags],
- [BUILD_LDFLAGS="$withval"])
- AC_ARG_WITH(build-libs,
- [ --with-build-libs=XXX if cross-compiling, the host libraries],
- [BUILD_LIBS="$withval"])
-fi
-AC_SUBST(BUILD_CC)
-AC_SUBST(BUILD_CFLAGS)
-AC_SUBST(BUILD_CPPFLAGS)
-AC_SUBST(BUILD_LDFLAGS)
-AC_SUBST(BUILD_LIBS)
-
-AC_PROG_CPP
-AC_PROG_GCC_TRADITIONAL
-AC_ISC_POSIX
-CF_ANSI_CC_REQD
-CF_PROG_EXT
-
-case "$cf_cv_system_name" in
-freebsd*) #(vi
- test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
- ;;
-*) LDPATH=$PATH:/sbin:/usr/sbin
- AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH)
- ;;
-esac
-AC_SUBST(LDCONFIG)
-
-dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the
-dnl configure script by not letting us test if C++
-dnl is present, making this option necessary.
-AC_MSG_CHECKING(if you want to ensure bool is consistent with C++)
-AC_ARG_WITH(cxx,
- [ --without-cxx do not adjust ncurses bool to match C++],
- [cf_with_cxx=$withval],
- [cf_with_cxx=yes])
-AC_MSG_RESULT($cf_with_cxx)
-if test "X$cf_with_cxx" = Xno ; then
- CXX=""
- GXX=""
-else
- pushdef([AC_MSG_ERROR],
- [AC_MSG_RESULT([You don't have any C++ compiler, too bad]); dnl
- cf_with_cxx=no; CXX=""; GXX="";])dnl
- AC_PROG_CXX
- popdef([AC_MSG_ERROR])dnl
-fi
-
-GXX_VERSION=none
-if test "$GXX" = yes; then
- AC_MSG_CHECKING(version of g++)
- GXX_VERSION="`${CXX-g++} --version|head -1`"
- AC_MSG_RESULT($GXX_VERSION)
- case $GXX_VERSION in
- 1*|2.[[0-6]]*)
- GXX=""; CXX=""; ac_cv_prog_gxx=no
- cf_cxx_library=no
- AC_MSG_WARN(templates do not work)
- ;;
- esac
-fi
-
-AC_MSG_CHECKING(if you want to build C++ binding and demo)
-AC_ARG_WITH(cxx-binding,
- [ --without-cxx-binding do not build C++ binding and demo],
- [cf_with_cxx_binding=$withval],
- [cf_with_cxx_binding=$cf_with_cxx])
-AC_MSG_RESULT($cf_with_cxx_binding)
-
-AC_MSG_CHECKING(if you want to build with Ada95)
-AC_ARG_WITH(ada,
- [ --without-ada suppress check for Ada95, don't build demo],
- [cf_with_ada=$withval],
- [cf_with_ada=yes])
-AC_MSG_RESULT($cf_with_ada)
-
-AC_MSG_CHECKING(if you want to build programs such as tic)
-AC_ARG_WITH(progs,
- [ --without-progs suppress build with programs (e.g., tic)],
- [cf_with_progs=$withval],
- [cf_with_progs=yes])
-AC_MSG_RESULT($cf_with_progs)
-
-AC_MSG_CHECKING(if you wish to install curses.h)
-AC_ARG_WITH(curses-h,
- [ --without-curses-h install curses.h as ncurses.h only],
- [with_curses_h=$withval],
- [with_curses_h=yes])
-AC_MSG_RESULT($with_curses_h)
-
-modules_to_build="ncurses"
-if test "X$cf_with_progs" != Xno ; then
-modules_to_build="$modules_to_build progs tack"
-fi
-modules_to_build="$modules_to_build panel menu form"
-
-AC_ARG_PROGRAM
-AC_PROG_AWK
-AC_PROG_MAKE_SET
-CF_PROG_INSTALL
-AC_SYS_LONG_FILE_NAMES
-CF_MIXEDCASE_FILENAMES
-AC_PROG_LN_S
-AC_PROG_RANLIB
-CF_MAKE_TAGS
-AC_CHECK_PROGS(LINT, tdlint lint alint)
-AC_CHECK_PROGS(MAN, man man_db)
-AC_SUBST(LINT_OPTS)
-
-dnl These are standard among *NIX systems, but not when cross-compiling
-CF_SUBST(loader,LD,ld)
-CF_SUBST(archiver,AR,ar)
-CF_SUBST(archiver options,AR_OPTS,rv)
-
-CF_MAKEFLAGS
-
-dnl Special option for use by system-builders: the install-prefix is used to
-dnl adjust the location into which the actual install is done, so that an
-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 (\$DESTDIR)],
- [case "$withval" in #(vi
- yes|no) #(vi
- ;;
- *) DESTDIR="$withval"
- ;;
- esac])
-AC_MSG_RESULT($DESTDIR)
-AC_SUBST(DESTDIR)
-
-###############################################################################
-CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
-
-### Options to allow the user to specify the set of libraries which are used.
-### Use "--without-normal --with-shared" to allow the default model to be
-### shared, for example.
-cf_list_models=""
-AC_SUBST(cf_list_models)dnl the complete list of models ("normal debug")
-
-AC_MSG_CHECKING(if you want to build libraries with libtool)
-AC_ARG_WITH(libtool,
- [ --with-libtool generate libraries with libtool],
- [with_libtool=$withval],
- [with_libtool=no])
-AC_MSG_RESULT($with_libtool)
-if test "$with_libtool" = "yes"; then
- cf_list_models="$cf_list_models libtool"
- test -z "$LIBTOOL" && LIBTOOL=libtool
-else
- LIBTOOL=""
-fi
-AC_SUBST(LIBTOOL)
-
-AC_MSG_CHECKING(if you want to build shared libraries)
-AC_ARG_WITH(shared,
- [ --with-shared generate shared-libraries],
- [with_shared=$withval],
- [with_shared=no])
-AC_MSG_RESULT($with_shared)
-test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
-
-AC_MSG_CHECKING(if you want to build static libraries)
-AC_ARG_WITH(normal,
- [ --with-normal generate normal-libraries (default)],
- [with_normal=$withval],
- [with_normal=yes])
-AC_MSG_RESULT($with_normal)
-test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
-
-AC_MSG_CHECKING(if you want to build debug libraries)
-AC_ARG_WITH(debug,
- [ --with-debug generate debug-libraries (default)],
- [with_debug=$withval],
- [with_debug=yes])
-AC_MSG_RESULT($with_debug)
-test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
-
-AC_MSG_CHECKING(if you want to build profiling libraries)
-AC_ARG_WITH(profile,
- [ --with-profile generate profile-libraries],
- [with_profile=$withval],
- [with_profile=no])
-AC_MSG_RESULT($with_profile)
-test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
-
-###############################################################################
-
-AC_MSG_CHECKING(for specified models)
-test -z "$cf_list_models" && cf_list_models=normal
-dnl If we use libtool to generate libraries, then it must be the only
-dnl specified model.
-test "$with_libtool" = "yes" && cf_list_models=libtool
-AC_MSG_RESULT($cf_list_models)
-
-### Use the first model as the default, and save its suffix for use in building
-### up test-applications.
-AC_MSG_CHECKING(for default model)
-DFT_LWR_MODEL=`echo $cf_list_models | $AWK '{print $1}'`
-AC_MSG_RESULT($DFT_LWR_MODEL)
-
-CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl
-
-AC_SUBST(DFT_LWR_MODEL)dnl the default model ("normal")
-AC_SUBST(DFT_UPR_MODEL)dnl the default model ("NORMAL")
-
-TINFO_NAME=tinfo
-AC_SUBST(TINFO_NAME)
-
-LIB_NAME=ncurses
-AC_SUBST(LIB_NAME)
-
-LIB_DIR=../lib
-CF_LIB_PREFIX(cf_prefix)
-LIB_PREFIX=$cf_prefix
-AC_SUBST(LIB_PREFIX)
-
-LIB_SUFFIX=
-AC_SUBST(LIB_SUFFIX)
-
-###############################################################################
-
-AC_MSG_CHECKING(if you want to build a separate terminfo library)
-AC_ARG_WITH(termlib,
- [ --with-termlib generate separate terminfo library],
- [with_termlib=$withval],
- [with_termlib=no])
-AC_MSG_RESULT($with_termlib)
-
-### Checks for special libraries, must be done up-front.
-AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
-AC_ARG_WITH(dbmalloc,
- [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
- [with_dbmalloc=$withval],
- [with_dbmalloc=no])
-AC_MSG_RESULT($with_dbmalloc)
-if test "$with_dbmalloc" = yes ; then
- AC_CHECK_LIB(dbmalloc,debug_malloc)
-fi
-
-AC_MSG_CHECKING(if you want to link with dmalloc for testing)
-AC_ARG_WITH(dmalloc,
- [ --with-dmalloc test: use Gray Watson's dmalloc library],
- [with_dmalloc=$withval],
- [with_dmalloc=no])
-AC_MSG_RESULT($with_dmalloc)
-if test "$with_dmalloc" = yes ; then
- AC_CHECK_LIB(dmalloc,dmalloc_debug)
-fi
-
-SHLIB_LIST=""
-AC_MSG_CHECKING(if you want to link with the gpm mouse library)
-AC_ARG_WITH(gpm,
- [ --with-gpm use Alessandro Rubini's GPM library],
- [with_gpm=$withval],
- [with_gpm=no])
-AC_MSG_RESULT($with_gpm)
-if test "$with_gpm" = yes ; then
- AC_CHECK_LIB(gpm,Gpm_Open,[
- EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- AC_DEFINE(HAVE_LIBGPM)
- AC_CHECK_HEADERS(gpm.h)
- ],AC_MSG_WARN(Cannot link with gpm library - read the FAQ))
-fi
-
-dnl Not all ports of gcc support the -g option
-
-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
-AC_SUBST(CC_G_OPT)
-
-if test X"$CXX_G_OPT" = X"" ; then
- CXX_G_OPT='-g'
- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
-fi
-AC_SUBST(CXX_G_OPT)
-
-AC_MSG_CHECKING(for default loader flags)
-case $DFT_LWR_MODEL in
-libtool) LD_MODEL='' ;;
-normal) LD_MODEL='' ;;
-debug) LD_MODEL=$CC_G_OPT ;;
-profile) LD_MODEL='-pg';;
-shared) LD_MODEL='' ;;
-esac
-AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg)
-AC_MSG_RESULT($LD_MODEL)
-
-AC_MSG_CHECKING(if rpath option should be used)
-AC_ARG_ENABLE(rpath,
-[ --enable-rpath use rpath option when generating shared libraries],
-[cf_cv_ld_rpath=$enableval],
-[cf_cv_ld_rpath=no])
-AC_MSG_RESULT($cf_cv_ld_rpath)
-
-CF_SHARED_OPTS
-if test "$CC_SHARED_OPTS" = "unknown"; then
- for model in $cf_list_models; do
- if test "$model" = "shared"; then
- AC_ERROR(Shared libraries are not supported in this version)
- fi
- done
-fi
-
-###############################################################################
-CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
-
-### use option --disable-overwrite to leave out the link to -lcurses
-AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
-AC_ARG_ENABLE(overwrite,
- [ --disable-overwrite leave out the link to -lcurses],
- [with_overwrite=$enableval],
- [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,
- [ --disable-database do not use terminfo, only fallbacks/termcap],
- [use_database=$enableval],
- [use_database=yes])
-AC_MSG_RESULT($use_database)
-
-case $host_os in #(vi
-os2*) #(vi
- TERMINFO_SRC='${top_srcdir}/misc/emx.src'
- ;;
-*) #(vi
- TERMINFO_SRC='${top_srcdir}/misc/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)
- AC_ARG_ENABLE(database,
- [ --with-database=XXX specify terminfo source to install],
- [TERMINFO_SRC=$withval])
- AC_MSG_RESULT($TERMINFO_SRC)
-fi
-
-AC_MSG_CHECKING(for list of fallback descriptions)
-AC_ARG_WITH(fallbacks,
- [ --with-fallbacks=XXX specify list of fallback terminal descriptions],
- [with_fallback=$withval],
- [with_fallback=])
-AC_MSG_RESULT($with_fallback)
-FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /g'`
-AC_SUBST(FALLBACK_LIST)
-
-MAKE_TERMINFO=
-if test "$use_database" = no ; then
- TERMINFO="${datadir}/terminfo"
- MAKE_TERMINFO="#"
-else
-
-AC_MSG_CHECKING(for list of terminfo directories)
-CF_WITH_PATHLIST(terminfo-dirs,
- [ --with-terminfo-dirs=XXX specify list of terminfo directories],
- TERMINFO_DIRS,
- DATADIR/terminfo,
- ${datadir}/terminfo)
-AC_MSG_RESULT($TERMINFO_DIRS)
-test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS")
-
-AC_MSG_CHECKING(for default terminfo directory)
-CF_WITH_PATH(default-terminfo-dir,
- [ --with-default-terminfo-dir=DIR default terminfo directory],
- TERMINFO,
- DATADIR/terminfo,
- ${datadir}/terminfo)
-AC_MSG_RESULT($TERMINFO)
-AC_DEFINE_UNQUOTED(TERMINFO,"$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.
-AC_MSG_CHECKING(if big-core option selected)
-AC_ARG_ENABLE(big-core,
- [ --disable-big-core assume machine has little memory],
- [with_big_core=$enableval],
- [AC_TRY_RUN([
-#include <stdlib.h>
-#include <string.h>
-int main() {
- unsigned long n = 6000000L;
- char *s = malloc(n);
- if (s != 0)
- s[0] = s[n-1] = 0;
- exit(s == 0);
-}],
- [with_big_core=yes],
- [with_big_core=no],
- [with_big_core=no])])
-AC_MSG_RESULT($with_big_core)
-test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)
-
-### use option --enable-termcap to compile in the termcap fallback support
-AC_MSG_CHECKING(if you want termcap-fallback support)
-AC_ARG_ENABLE(termcap,
- [ --enable-termcap compile in termcap fallback support],
- [with_termcap=$enableval],
- [with_termcap=no])
-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(USE_TERMCAP)
-AC_MSG_CHECKING(for list of termcap files)
-CF_WITH_PATHLIST(termpath,
- [ --with-termpath=XXX specify list of termcap files],
- TERMPATH,
- /etc/termcap:/usr/share/misc/termcap)
-AC_MSG_RESULT($TERMPATH)
-test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH")
-
-### use option --enable-getcap to use a hacked getcap for reading termcaps
-AC_MSG_CHECKING(if fast termcap-loader is needed)
-AC_ARG_ENABLE(getcap,
- [ --enable-getcap fast termcap load, no xrefs to terminfo],
- [with_getcap=$enableval],
- [with_getcap=no])
-AC_MSG_RESULT($with_getcap)
-test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP)
-
-AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
-AC_ARG_ENABLE(getcap-cache,
- [ --enable-getcap-cache cache translated termcaps in ~/.terminfo],
- [with_getcap_cache=$enableval],
- [with_getcap_cache=no])
-AC_MSG_RESULT($with_getcap_cache)
-test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE)
-
-fi
-
-### Use option --enable-symlinks to make tic use symlinks, not hard links
-### to reduce storage requirements for the terminfo database.
-CF_LINK_FUNCS
-
-with_links=no
-with_symlinks=no
-
-if test "$ac_cv_func_link" != yes ; then
- AC_MSG_CHECKING(if tic should use symbolic links)
- if test "$ac_cv_func_symlink" = yes ; then
- with_symlinks=yes
- else
- with_symlinks=no
- fi
- AC_MSG_RESULT($with_symlinks)
-elif test "$ac_cv_func_symlink" != yes ; then
- AC_MSG_CHECKING(if tic should use hard links)
- if test "$ac_cv_func_link" = yes ; then
- with_links=yes
- else
- with_links=no
- fi
- AC_MSG_RESULT($with_links)
-else
- AC_MSG_CHECKING(if tic should use symbolic links)
- AC_ARG_ENABLE(symlinks,
- [ --enable-symlinks make tic use symbolic links not hard links],
- [with_symlinks=$enableval],
- [with_symlinks=no])
- AC_MSG_RESULT($with_symlinks)
-fi
-
-test "$with_links" = yes && AC_DEFINE(USE_LINKS)
-test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS)
-
-### use option --enable-broken-linker to force on use of broken-linker support
-AC_MSG_CHECKING(if you want broken-linker support code)
-AC_ARG_ENABLE(broken_linker,
- [ --enable-broken_linker compile with broken-linker support code],
- [with_broken_linker=$enableval],
- [with_broken_linker=$BROKEN_LINKER])
-AC_MSG_RESULT($with_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)
-AC_ARG_ENABLE(bsdpad,
- [ --enable-bsdpad recognize BSD-style prefix padding],
- [with_bsdpad=$enableval],
- [with_bsdpad=no])
-AC_MSG_RESULT($with_bsdpad)
-test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS)
-
-### Enable compiling-in rcs id's
-AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
-AC_ARG_WITH(rcs-ids,
- [ --with-rcs-ids compile-in RCS identifiers],
- [with_rcs_ids=$withval],
- [with_rcs_ids=no])
-AC_MSG_RESULT($with_rcs_ids)
-test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
-
-###############################################################################
-CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ])
-
-###############################################################################
-CF_HELP_MESSAGE(Extensions:)
-
-### Note that some functions (such as const) are normally disabled anyway.
-AC_MSG_CHECKING(if you want to build with function extensions)
-AC_ARG_ENABLE(ext-funcs,
- [ --disable-ext-funcs disable function-extensions],
- [with_ext_funcs=$enableval],
- [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)
-else
- NCURSES_EXT_FUNCS=0
-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)
-AC_ARG_ENABLE(const,
- [ --enable-const compile with extra/non-standard const],
- [with_ext_const=$enableval],
- [with_ext_const=no])
-AC_MSG_RESULT($with_ext_const)
-NCURSES_CONST='/*nothing*/'
-if test "$with_ext_const" = yes ; then
- NCURSES_CONST=const
-fi
-AC_SUBST(NCURSES_CONST)
-
-AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code)
-AC_ARG_ENABLE(no-padding,
- [ --enable-no-padding compile with \$NCURSES_NO_PADDING code],
- [with_no_padding=$enableval],
- [with_no_padding=$with_ext_funcs])
-AC_MSG_RESULT($with_no_padding)
-test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING)
-
-### use option --enable-sigwinch to turn on use of SIGWINCH logic
-AC_MSG_CHECKING(if you want SIGWINCH handler)
-AC_ARG_ENABLE(sigwinch,
- [ --enable-sigwinch compile with SIGWINCH handler],
- [with_sigwinch=$enableval],
- [with_sigwinch=$with_ext_funcs])
-AC_MSG_RESULT($with_sigwinch)
-test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH)
-
-### use option --enable-tcap-names to allow user to define new capabilities
-AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
-AC_ARG_ENABLE(tcap-names,
- [ --enable-tcap-names compile with user-definable terminal capabilities],
- [with_tcap_names=$enableval],
- [with_tcap_names=$with_ext_funcs])
-AC_MSG_RESULT($with_tcap_names)
-NCURSES_XNAMES=0
-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-AC_SUBST(NCURSES_XNAMES)
-
-###############################################################################
-# These options are relatively safe to experiment with.
-CF_HELP_MESSAGE(Development Code:)
-AC_MSG_CHECKING(if you want all development code)
-AC_ARG_WITH(develop,
- [ --with-develop enable all development options],
- [with_develop=$withval],
- [with_develop=no])
-AC_MSG_RESULT($with_develop)
-
-### 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,
- [ --enable-hard-tabs compile with hard-tabs code],
- [with_hardtabs=$enableval],
- [with_hardtabs=$with_develop])
-AC_MSG_RESULT($with_hardtabs)
-test "$with_hardtabs" = yes && AC_DEFINE(USE_HARD_TABS)
-
-AC_MSG_CHECKING(if you want to use restrict environment when running as root)
-AC_ARG_ENABLE(root-environ,
- [ --disable-root-environ limit environment when running as root],
- [with_root_environ=$enableval],
- [with_root_environ=yes])
-AC_MSG_RESULT($with_root_environ)
-test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
-
-### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-AC_MSG_CHECKING(if you want limited support for xmc)
-AC_ARG_ENABLE(xmc-glitch,
- [ --enable-xmc-glitch compile with limited support for xmc],
- [with_xmc_glitch=$enableval],
- [with_xmc_glitch=$with_develop])
-AC_MSG_RESULT($with_xmc_glitch)
-test "$with_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT)
-
-###############################################################################
-# These are just experimental, probably should not be in a package:
-CF_HELP_MESSAGE(Experimental Code:)
-
-AC_MSG_CHECKING(if you do not want to assume colors are white-on-black)
-AC_ARG_ENABLE(assumed-color,
- [ --disable-assumed-color do not assume anything about default-colors],
- [with_assumed_color=$enableval],
- [with_assumed_color=yes])
-AC_MSG_RESULT($with_assumed_color)
-test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR)
-
-### use option --enable-hashmap to turn on use of hashmap scrolling logic
-AC_MSG_CHECKING(if you want hashmap scrolling-optimization code)
-AC_ARG_ENABLE(hashmap,
- [ --disable-hashmap compile without hashmap scrolling-optimization],
- [with_hashmap=$enableval],
- [with_hashmap=yes])
-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],
- [with_safe_sprintf=$enableval],
- [with_safe_sprintf=no])
-AC_MSG_RESULT($with_safe_sprintf)
-test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF)
-
-### 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
-AC_MSG_CHECKING(if you want to experiment without scrolling-hints code)
-AC_ARG_ENABLE(scroll-hints,
- [ --disable-scroll-hints compile without scroll-hints code],
- [with_scroll_hints=$enableval],
- [with_scroll_hints=yes])
-AC_MSG_RESULT($with_scroll_hints)
-test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
-fi
-
-### use option --enable-widec to turn on use of wide-character support
-NCURSES_CH_T=chtype
-NCURSES_LIBUTF8=0
-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],
- [with_widec=$enableval],
- [with_widec=no])
-AC_MSG_RESULT($with_widec)
-if test "$with_widec" = yes ; then
- LIB_SUFFIX="w${LIB_SUFFIX}"
- AC_DEFINE(USE_WIDEC_SUPPORT)
- 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
-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:)
-
-### use option --disable-echo to suppress full display compiling commands
-AC_MSG_CHECKING(if you want to display full commands during build)
-AC_ARG_ENABLE(echo,
- [ --enable-echo build: display "compiling" commands (default)],
- [with_echo=$enableval],
- [with_echo=yes])
-if test "$with_echo" = yes; then
- ECHO_LINK=
-else
- ECHO_LINK='@ echo linking $@ ... ;'
- test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
-fi
-AC_MSG_RESULT($with_echo)
-AC_SUBST(ECHO_LINK)
-
-### use option --enable-warnings to turn on all gcc warnings
-AC_MSG_CHECKING(if you want to see compiler warnings)
-AC_ARG_ENABLE(warnings,
- [ --enable-warnings build: turn on GCC compiler warnings],
- [with_warnings=$enableval])
-AC_MSG_RESULT($with_warnings)
-
-if test -n "$with_warnings"; then
- ADAFLAGS="$ADAFLAGS -gnatg"
- CF_GCC_WARNINGS
-fi
-CF_GCC_ATTRIBUTES
-
-### use option --enable-assertions to turn on generation of assertion code
-AC_MSG_CHECKING(if you want to enable runtime assertions)
-AC_ARG_ENABLE(assertions,
- [ --enable-assertions test: turn on generation of assertion code],
- [with_assertions=$enableval],
- [with_assertions=no])
-AC_MSG_RESULT($with_assertions)
-if test -n "$GCC"
-then
- if test "$with_assertions" = no
- then
- AC_DEFINE(NDEBUG)
- CPPFLAGS="$CPPFLAGS -DNDEBUG"
- else
- ADAFLAGS="$ADAFLAGS -gnata"
- fi
-fi
-
-### use option --disable-leaks to suppress "permanent" leaks, for testing
-AC_ARG_ENABLE(leaks,
- [ --disable-leaks test: suppress permanent memory-leaks],
- [test "$enableval" = no && AC_DEFINE(NO_LEAKS)])
-AC_DEFINE(HAVE_NC_ALLOC_H)
-
-### use option --enable-expanded to generate certain macros as functions
-AC_ARG_ENABLE(expanded,
- [ --enable-expanded test: generate functions for certain macros],
- [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)])
-
-### use option --disable-macros to suppress macros in favor of functions
-AC_ARG_ENABLE(macros,
- [ --disable-macros test: use functions rather than macros],
- [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)])
-
-### Checks for libraries.
-AC_CHECK_FUNC(gettimeofday,
- AC_DEFINE(HAVE_GETTIMEOFDAY),[
-
-AC_CHECK_LIB(bsd, gettimeofday,
- AC_DEFINE(HAVE_GETTIMEOFDAY)
- LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday
-
-CF_MATH_LIB(MATH_LIB,sin(x))
-AC_SUBST(MATH_LIB)
-
-### Checks for header files.
-CF_GNU_SOURCE
-AC_STDC_HEADERS
-AC_HEADER_DIRENT
-AC_HEADER_TIME
-CF_REGEX
-
-dnl These are some other potentially nonportable headers.
-AC_CHECK_HEADERS( \
-fcntl.h \
-getopt.h \
-libc.h \
-limits.h \
-locale.h \
-poll.h \
-sys/bsdtypes.h \
-sys/ioctl.h \
-sys/param.h \
-sys/poll.h \
-sys/select.h \
-sys/time.h \
-sys/times.h \
-ttyent.h \
-unistd.h \
-)
-
-# 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
- AC_CHECK_LIB(cposix,main)
- AC_CHECK_LIB(inet,bzero,LIBS="$LIBS -linet")dnl also 'select()'
-fi
-
-CF_SYS_TIME_SELECT
-
-### checks for compiler characteristics
-AC_LANG_C
-AC_C_CONST
-AC_C_INLINE
-test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
-
-CF_TYPEOF_CHTYPE
-
-### Checks for external-data
-CF_ERRNO
-CF_LINK_DATAONLY
-
-### Checks for library functions.
-AC_CHECK_FUNCS( \
-getcwd \
-getegid \
-geteuid \
-getttynam \
-issetugid \
-memccpy \
-nanosleep \
-poll \
-remove \
-select \
-setbuf \
-setbuffer \
-setvbuf \
-sigaction \
-sigvec \
-strdup \
-strstr \
-tcgetpgrp \
-times \
-vsnprintf \
-)
-if test "$with_getcap" = "yes" ; then
- CF_CGETENT
-fi
-
-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
- AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
-else
- AC_FUNC_SETVBUF_REVERSED
-fi
-AC_TYPE_SIGNAL
-CF_TYPE_SIGACTION
-CF_SIZECHANGE
-CF_FUNC_MEMMOVE
-CF_FUNC_POLL
-
-dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
-if test -z "$cf_user_CFLAGS" ; then
- CF_STRIP_G_OPT(CFLAGS)
- CF_STRIP_G_OPT(CXXFLAGS)
-fi
-
-dnl Check for C++ compiler characteristics (and ensure that it's there!)
-CF_BOOL_DECL(cf_cv_cc_bool_type)
-if test -n "$CXX" ; then
- AC_LANG_CPLUSPLUS
- CF_STDCPP_LIBRARY
-
- case $GXX_VERSION in
- 1*|2.[0-6]*)
- cf_cxx_library=yes
- ;;
- *-2.7*|2.7*)
- CF_GPP_LIBRARY
- ;;
- *)
- cf_cxx_library=no
- ;;
- esac
-
- AC_CHECK_HEADERS(typeinfo)
-
- 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
- irix*) #(vi
- if test "$GXX" != yes ; then
- CXX_AR='$(CXX)'
- CXX_AR_OPTS='-ar -o'
- fi
- ;;
- sco3.2v5*) #(vi
- CXXLDFLAGS="-u main"
- ;;
- solaris2*)
- if test "$GXX" != yes ; then
- CXX_AR='$(CXX)'
- CXX_AR_OPTS='-xar -o'
- fi
- ;;
- esac
- AC_SUBST(CXXLDFLAGS)
- AC_SUBST(CXX_AR)
- AC_SUBST(CXX_AR_OPTS)
-else
- cf_cxx_library=no
- cf_cv_builtin_bool=1
-
- # Just because we are not configuring against C++ right now does not
- # mean that a user will not want to use C++. Some distributors disable
- # the C++ portion of this configuration as a shortcut (or just to avoid
- # compiling the demo in the c++ directory). So we need a reasonable
- # default for the 'bool' type.
- #
- # Caveat: since the storage of the bool type is not standardized, it
- # may change.
-
- 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)
-
-CF_HELP_MESSAGE(Ada95 Binding Options:)
-
-dnl Check for availability of GNU Ada Translator (GNAT).
-dnl At the moment we support no other Ada95 compiler.
-if test "$cf_with_ada" != "no" ; then
-cf_ada_make=gnatmake
-AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
-if test "$ac_cv_prog_gnat_exists" = no; then
- cf_ada_make=
-else
- CF_GNAT_VERSION
- AC_CHECK_PROG(M4_exists, m4, yes, no)
- if test "$ac_cv_prog_M4_exists" = no; then
- cf_cv_prog_gnat_correct=no
- echo Ada95 binding required program m4 not found. Ada95 binding disabled.
- fi
- if test "$cf_cv_prog_gnat_correct" = yes; then
- AC_MSG_CHECKING(if GNAT works)
- CF_GNAT_TRY_RUN([procedure conftest;],
-[with Text_IO;
-with GNAT.OS_Lib;
-procedure conftest is
-begin
- Text_IO.Put ("Hello World");
- Text_IO.New_Line;
- GNAT.OS_Lib.OS_Exit (0);
-end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no])
- AC_MSG_RESULT($cf_cv_prog_gnat_correct)
- fi
-fi
-if test "$cf_cv_prog_gnat_correct" = yes; then
- ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
-
- AC_ARG_WITH(ada-compiler,
- [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
- [cf_ada_compiler=$withval],
- [cf_ada_compiler=gnatmake])
-
- cf_ada_package=terminal_interface
-
- AC_SUBST(cf_ada_make)
- AC_SUBST(cf_ada_compiler)
- AC_SUBST(cf_ada_package)
- AC_SUBST(ADAFLAGS)
- AC_SUBST(cf_compile_generics)
- AC_SUBST(cf_generic_objects)
-
- CF_WITH_PATH(ada-include,
- [ --with-ada-include=DIR Ada includes are in DIR],
- ADA_INCLUDE,
- PREFIX/lib/ada/adainclude,
- [$]prefix/lib/ada/adainclude)
- AC_SUBST(ADA_INCLUDE)
-
- CF_WITH_PATH(ada-objects,
- [ --with-ada-objects=DIR Ada objects are in DIR],
- ADA_OBJECTS,
- PREFIX/lib/ada/adalib,
- [$]prefix/lib/ada/adalib)
- AC_SUBST(ADA_OBJECTS)
-
-fi
-fi
-
-### It's not possible to appease gcc 2.6.3's conversion-warnings if we're
-### using a 'char' for bools. gcc 2.7.0's conversion-warnings are broken too
-### badly to consider using for development purposes, but 2.5.8 is okay.
-if test -n "$with_warnings"; then
- case $GCC_VERSION in
- 2.6.3)
- if test "$cf_cv_type_of_bool" != "char"; then
- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
- fi
- ;;
- 2.5*)
- EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
- ;;
- esac
-fi
-
-### Construct the library-subsets, if any, from this set of keywords:
-### none, base, ext_funcs, termlib.
-AC_MSG_CHECKING(for library subsets)
-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"
-AC_MSG_RESULT($LIB_SUBSETS)
-
-LIB_TRACING=DEBUG
-ADA_TRACE=FALSE
-case "$CFLAGS $CPPFLAGS" in
-*-DTRACE*)
- LIB_TRACING=all
- ADA_TRACE=TRUE
- ;;
-esac
-AC_SUBST(ADA_TRACE)
-
-### Construct the list of include-directories to be generated
-CF_INCLUDE_DIRS
-CF_ADA_INCLUDE_DIRS
-
-### Build up pieces for makefile rules
-AC_MSG_CHECKING(default library suffix)
-CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl
-AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("")
-AC_MSG_RESULT($DFT_ARG_SUFFIX)
-
-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_MSG_CHECKING(default object directory)
-CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl
-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_CHECKING(c++ library-dependency suffix)
-if test "$with_libtool" = "yes"; then
- CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
-else
- CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library
-fi
-AC_MSG_RESULT($CXX_LIB_SUFFIX)
-AC_SUBST(CXX_LIB_SUFFIX)
-
-TINFO_LIST="$SHLIB_LIST"
-test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
-
-AC_MSG_CHECKING(where we will install curses.h)
-test "$with_overwrite" = no && \
-test "x$includedir" = 'x${prefix}/include' && \
- includedir='$(prefix)/include/ncurses'${LIB_SUFFIX}
-AC_MSG_RESULT($includedir)
-
-### 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)
-
-### Set up low-level terminfo dependencies for makefiles. Note that we
-### could override this.
-if test "$with_termlib" = yes ; then
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
- fi
-fi
-PROG_DEPS="$TEST_DEPS"
-PROG_ARGS="$TEST_ARGS"
-
-### Construct the list of subdirectories for which we'll customize makefiles
-### with the appropriate compile-rules.
-
-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 \
- include/curses.head:include/curses.h.in \
- include/termcap.h \
- include/unctrl.h \
- misc/run_tic.sh:misc/run_tic.in \
- $SUB_MAKEFILES \
- Makefile,[
-CF_LIB_RULES
-],[
-### 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"
-
-],cat)dnl
-${MAKE-make} preinstall
diff --git a/ncurses-5.3/convert_configure.pl b/ncurses-5.3/convert_configure.pl
deleted file mode 100644
index dea92ca..0000000
--- a/ncurses-5.3/convert_configure.pl
+++ /dev/null
@@ -1,90 +0,0 @@
-extproc perl -S -w
-
-# The converted script is written to stdout, so run this script as
-# convert_configure configure > configure.cmd
-#
-# When the converted script runs, it expects that /tmp dir is
-# available (so we create it).
-#
-# run the result like this:
-# .\configure
-
-# Some frequent manual intervention:
-# a) Some makefiles hardwire SHELL = /bin/sh ==> change to: sh
-# b) Some makefiles recognize that exe files terminate on .exe
-# You need to give this script -no-zexe option...
-
-shift, $no_zexe = 1 if @ARGV and $ARGV[0] eq '-no-zexe';
-
-mkdir '/tmp', 0777 unless -d '/tmp';
-
-print <<EOF;
-extproc sh
-
-EOF
-
-print <<EOF unless $no_zexe;
-# Make sensible defaults:
-CC="gcc -Zexe -Zmt"
-export CC
-CXX="gcc -Zexe -Zmt"
-export CXX
-#GCCOPT="$GCCOPT -Zexe"
-#export GCCOPT
-EOF
-
-print <<EOF;
-CONFIG_SHELL=sh
-export CONFIG_SHELL
-
-# Optimization (GNU make 3.74 cannot be loaded :-():
-emxload -m 30 sh.exe ls.exe tr.exe id.exe sed.exe # make.exe
-emxload -m 30 grep.exe egrep.exe fgrep.exe cat.exe rm.exe mv.exe cp.exe
-emxload -m 30 uniq.exe basename.exe sort.exe awk.exe echo.exe
-
-
-EOF
-
-$checking_path = 0;
-
-while (<>) {
- if (/for\s+(\w+)\s+in\s*\$(PATH|ac_dummy)\s*;/) {
- $checking_path = 1;
- $varname = $1;
- $subst= <<EOS
-$varname="`echo -E \\"\$$varname\\" | tr \\\\\\\\\\\\\\\\ / `"
-EOS
- }
- if (/if\s+test\s+-z\s+\"\$INSTALL\"/) {
- $checking_install = 1;
- }
- $checking_install = $checking_path = 0 if /^\s*done\s*$/;
- # We want to create an extra line like this one:
-# ac_dir="`echo -E \"$ac_dir\" | tr \\\\\\\\ / `"
- s{^((\s*)if\s+test)\s*-f\s*(\$$varname/\S+)\s*;}
- {$2$subst$1 -f $3 -o -f $3.exe ;}
- if $checking_path; # Checking for executables
- # change |/usr/sbin/*| to |/usr/sbin/*|?:[\\/]os2[\\/]install[\\/]*|
- # in the list of things to skip (with both cases)
- s{\Q|/usr/sbin/*|}
- {|/usr/sbin/*|?:[\\\\/]os2[\\\\/]install[\\\\/]*|?:[\\\\/]OS2[\\\\/]INSTALL[\\\\/]*|}
- if $checking_install; # Do not accept d:/os2/install/install.exe
- s/^(host|build)=NONE$/$1=x86-emx-os2/; # Make default host/build
- s/"\$\{IFS}:"$/"\${IFS};"/; # Fix IFS line
- s/\bIFS=\":\"$/IFS=";"/; # Fix another IFS line
- s/\btest\s+-s\s+conftest\b/test -f conftest/g; # Fix exe test
- # This one is needed for curses:
- s/^\s*host=`.*\$ac_config_sub \$host_alias`/$&\nif test -z "\$host"; then host=\$host_alias; fi/;
- s,/bin/sh(?![/\w]),sh,g;
- s,^(\s*/usr/sbin/sendmail\s*)\\$,$1 "`whence sendmail | tr '\\\\\\\\' / `" \\,;
- print;
-}
-
-__END__
-
-Changes: 98/11 : support check for executables in ncurses.
- 99/2 : support INSTALL,
- new IFS=':' style
- 99/11 : find sendmail
- 00/01 : export CONFIG_SHELL
- 00/10 : new syntax for host=`...` line
diff --git a/ncurses-5.3/dist.mk b/ncurses-5.3/dist.mk
deleted file mode 100644
index e3dc649..0000000
--- a/ncurses-5.3/dist.mk
+++ /dev/null
@@ -1,136 +0,0 @@
-# $Id$
-# Makefile for creating ncurses distributions.
-#
-# This only needs to be used directly as a makefile by developers, but
-# configure mines the current version number out of here. To move
-# to a new version number, just edit this file and run configure.
-#
-SHELL = /bin/sh
-
-# These define the major/minor/patch versions of ncurses.
-NCURSES_MAJOR = 5
-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)
-
-DUMP = lynx -dump
-DUMP2 = $(DUMP) -nolist
-
-GNATHTML= `type -p gnathtml || type -p gnathtml.pl`
-
-# man2html 3.0.1 is a Perl script which assumes that pages are fixed size.
-# Not all man programs agree with this assumption; some use half-spacing, which
-# has the effect of lengthening the text portion of the page -- so man2html
-# would remove some text. The man program on Redhat 6.1 appears to work with
-# man2html if we set the top/bottom margins to 6 (the default is 7).
-MAN2HTML= man2html -botm=6 -topm=6 -cgiurl '$$title.$$section$$subsection.html'
-
-ALL = ANNOUNCE doc/html/announce.html doc/ncurses-intro.doc doc/hackguide.doc manhtml adahtml
-
-all : $(ALL)
-
-dist: $(ALL)
- (cd ..; tar cvf ncurses-$(VERSION).tar `sed <ncurses-$(VERSION)/MANIFEST 's/^./ncurses-$(VERSION)/'`; gzip ncurses-$(VERSION).tar)
-
-distclean:
- rm -f $(ALL) subst.tmp subst.sed MANIFEST.tmp
-
-# Don't mess with announce.html.in unless you have lynx available!
-doc/html/announce.html: announce.html.in
- sed 's,@VERSION@,$(VERSION),' <announce.html.in > $@
-
-ANNOUNCE : doc/html/announce.html
- $(DUMP) doc/html/announce.html > $@
-
-doc/ncurses-intro.doc: doc/html/ncurses-intro.html
- $(DUMP2) doc/html/ncurses-intro.html > $@
-doc/hackguide.doc: doc/html/hackguide.html
- $(DUMP2) doc/html/hackguide.html > $@
-
-MANPROG = tbl | nroff -man
-
-manhtml: MANIFEST
- @rm -f doc/html/man/*.html
- @mkdir -p doc/html/man
- @rm -f subst.tmp ;
- @for f in man/*.[0-9]*; do \
- m=`basename $$f` ;\
- x=`echo $$m | awk -F. '{print $$2;}'` ;\
- xu=`echo $$x | dd conv=ucase 2>/dev/null` ;\
- if [ "$${x}" != "$${xu}" ]; then \
- 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
- @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` ;\
- 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" ;\
- 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' \
- >> doc/html/man/$$g ;\
- done
- @rm -f subst.sed
- @sed -e "\%./doc/html/man/%d" < MANIFEST > MANIFEST.tmp
- @find ./doc/html/man -type f -print >> MANIFEST.tmp
- @chmod u+w MANIFEST
- @sort -u < MANIFEST.tmp > MANIFEST
- @rm -f MANIFEST.tmp
-
-#
-# Please note that this target can only be properly built if the build of the
-# Ada95 subdir has been done. The reason is, that the gnathtml tool uses the
-# .ali files generated by the Ada95 compiler during the build process. These
-# .ali files contain cross referencing information required by gnathtml.
-adahtml: MANIFEST
- if [ ! -z "$(GNATHTML)" ]; then \
- (cd ./Ada95/gen ; make html) ;\
- sed -e "\%./doc/html/ada/%d" < MANIFEST > MANIFEST.tmp ;\
- find ./doc/html/ada -type f -print >> MANIFEST.tmp ;\
- sort -u < MANIFEST.tmp > MANIFEST ;\
- rm -f MANIFEST.tmp ;\
- fi
-
-# Prepare distribution for version control
-vcprepare:
- find . -type d -exec mkdir {}/RCS \;
-
-# Write-lock almost all files not under version control.
-ADA_EXCEPTIONS=$(shell eval 'a="\\\\\|";for x in Ada95/gen/terminal*.m4; do echo -n $${a}Ada95/ada_include/`basename $${x} .m4`; done')
-EXCEPTIONS = 'announce.html$\\|ANNOUNCE\\|misc/.*\\.doc\\|man/terminfo.5\\|lib_gen.c'$(ADA_EXCEPTIONS)
-writelock:
- for x in `grep -v $(EXCEPTIONS) MANIFEST`; do if [ ! -f `dirname $$x`/RCS/`basename $$x`,v ]; then chmod a-w $${x}; fi; done
-
-# This only works on a clean source tree, of course.
-MANIFEST:
- -rm -f $@
- touch $@
- find . -type f -print |sort | fgrep -v .lsm |fgrep -v .spec >$@
-
-TAGS:
- etags */*.[ch]
-
-# Makefile ends here
diff --git a/ncurses-5.3/doc/hackguide.doc b/ncurses-5.3/doc/hackguide.doc
deleted file mode 100644
index e9828d2..0000000
--- a/ncurses-5.3/doc/hackguide.doc
+++ /dev/null
@@ -1,687 +0,0 @@
-
- A Hacker's Guide to NCURSES
-
- Contents
-
- * Abstract
- * Objective of the Package
- + Why System V Curses?
- + How to Design Extensions
- * Portability and Configuration
- * Documentation Conventions
- * How to Report Bugs
- * A Tour of the Ncurses Library
- + Library Overview
- + The Engine Room
- + Keyboard Input
- + Mouse Events
- + Output and Screen Updating
- * The Forms and Menu Libraries
- * A Tour of the Terminfo Compiler
- + Translation of Non-use Capabilities
- + Use Capability Resolution
- + Source-Form Translation
- * Other Utilities
- * Style Tips for Developers
- * Porting Hints
-
- Abstract
-
- This document is a hacker's tour of the ncurses library and utilities.
- It discusses design philosophy, implementation methods, and the
- conventions used for coding and documentation. It is recommended
- reading for anyone who is interested in porting, extending or
- improving the package.
-
- Objective of the Package
-
- The objective of the ncurses package is to provide a free software API
- for character-cell terminals and terminal emulators with the following
- characteristics:
- * Source-compatible with historical curses implementations
- (including the original BSD curses and System V curses.
- * Conformant with the XSI Curses standard issued as part of XPG4 by
- X/Open.
- * High-quality -- stable and reliable code, wide portability, good
- packaging, superior documentation.
- * Featureful -- should eliminate as much of the drudgery of C
- interface programming as possible, freeing programmers to think at
- a higher level of design.
-
- These objectives are in priority order. So, for example, source
- compatibility with older version must trump featurefulness -- we
- cannot add features if it means breaking the portion of the API
- corresponding to historical curses versions.
-
-Why System V Curses?
-
- We used System V curses as a model, reverse-engineering their API, in
- order to fulfill the first two objectives.
-
- System V curses implementations can support BSD curses programs with
- just a recompilation, so by capturing the System V API we also capture
- BSD's.
-
- More importantly for the future, the XSI Curses standard issued by
- X/Open is explicitly and closely modeled on System V. So conformance
- with System V took us most of the way to base-level XSI conformance.
-
-How to Design Extensions
-
- The third objective (standards conformance) requires that it be easy
- to condition source code using ncurses so that the absence of
- nonstandard extensions does not break the code.
-
- Accordingly, we have a policy of associating with each nonstandard
- extension a feature macro, so that ncurses client code can use this
- macro to condition in or out the code that requires the ncurses
- extension.
-
- For example, there is a macro NCURSES_MOUSE_VERSION which XSI Curses
- does not define, but which is defined in the ncurses library header.
- You can use this to condition the calls to the mouse API calls.
-
- Portability and Configuration
-
- Code written for ncurses may assume an ANSI-standard C compiler and
- POSIX-compatible OS interface. It may also assume the presence of a
- System-V-compatible select(2) call.
-
- We encourage (but do not require) developers to make the code friendly
- to less-capable UNIX environments wherever possible.
-
- We encourage developers to support OS-specific optimizations and
- methods not available under POSIX/ANSI, provided only that:
- * All such code is properly conditioned so the build process does
- not attempt to compile it under a plain ANSI/POSIX environment.
- * Adding such implementation methods does not introduce
- incompatibilities in the ncurses API between platforms.
-
- We use GNU autoconf(1) as a tool to deal with portability issues. The
- right way to leverage an OS-specific feature is to modify the autoconf
- specification files (configure.in and aclocal.m4) to set up a new
- feature macro, which you then use to condition your code.
-
- Documentation Conventions
-
- There are three kinds of documentation associated with this package.
- Each has a different preferred format:
- * Package-internal files (README, INSTALL, TO-DO etc.)
- * Manual pages.
- * Everything else (i.e., narrative documentation).
-
- Our conventions are simple:
- 1. Maintain package-internal files in plain text. The expected viewer
- for them more(1) or an editor window; there's no point in
- elaborate mark-up.
- 2. Mark up manual pages in the man macros. These have to be viewable
- through traditional man(1) programs.
- 3. Write everything else in HTML.
-
- When in doubt, HTMLize a master and use lynx(1) to generate plain
- ASCII (as we do for the announcement document).
-
- The reason for choosing HTML is that it's (a) well-adapted for on-line
- browsing through viewers that are everywhere; (b) more easily readable
- as plain text than most other mark-ups, if you don't have a viewer;
- and (c) carries enough information that you can generate a
- nice-looking printed version from it. Also, of course, it make
- exporting things like the announcement document to WWW pretty trivial.
-
- How to Report Bugs
-
- The reporting address for bugs is bug-ncurses@gnu.org. This is a
- majordomo list; to join, write to bug-ncurses-request@gnu.org with a
- message containing the line:
- subscribe <name>@<host.domain>
-
- The ncurses code is maintained by a small group of volunteers. While
- we try our best to fix bugs promptly, we simply don't have a lot of
- hours to spend on elementary hand-holding. We rely on intelligent
- cooperation from our users. If you think you have found a bug in
- ncurses, there are some steps you can take before contacting us that
- will help get the bug fixed quickly.
-
- In order to use our bug-fixing time efficiently, we put people who
- show us they've taken these steps at the head of our queue. This means
- that if you don't, you'll probably end up at the tail end and have to
- wait a while.
- 1. Develop a recipe to reproduce the bug.
- Bugs we can reproduce are likely to be fixed very quickly, often
- within days. The most effective single thing you can do to get a
- quick fix is develop a way we can duplicate the bad behavior --
- ideally, by giving us source for a small, portable test program
- that breaks the library. (Even better is a keystroke recipe using
- one of the test programs provided with the distribution.)
- 2. Try to reproduce the bug on a different terminal type.
- In our experience, most of the behaviors people report as library
- bugs are actually due to subtle problems in terminal descriptions.
- This is especially likely to be true if you're using a traditional
- asynchronous terminal or PC-based terminal emulator, rather than
- xterm or a UNIX console entry.
- It's therefore extremely helpful if you can tell us whether or not
- your problem reproduces on other terminal types. Usually you'll
- have both a console type and xterm available; please tell us
- whether or not your bug reproduces on both.
- If you have xterm available, it is also good to collect xterm
- reports for different window sizes. This is especially true if you
- normally use an unusual xterm window size -- a surprising number
- of the bugs we've seen are either triggered or masked by these.
- 3. Generate and examine a trace file for the broken behavior.
- Recompile your program with the debugging versions of the
- libraries. Insert a trace() call with the argument set to
- TRACE_UPDATE. (See "Writing Programs with NCURSES" for details on
- trace levels.) Reproduce your bug, then look at the trace file to
- see what the library was actually doing.
- Another frequent cause of apparent bugs is application coding
- errors that cause the wrong things to be put on the virtual
- screen. Looking at the virtual-screen dumps in the trace file will
- tell you immediately if this is happening, and save you from the
- possible embarrassment of being told that the bug is in your code
- and is your problem rather than ours.
- If the virtual-screen dumps look correct but the bug persists,
- it's possible to crank up the trace level to give more and more
- information about the library's update actions and the control
- sequences it issues to perform them. The test directory of the
- distribution contains a tool for digesting these logs to make them
- less tedious to wade through.
- Often you'll find terminfo problems at this stage by noticing that
- the escape sequences put out for various capabilities are wrong.
- If not, you're likely to learn enough to be able to characterize
- any bug in the screen-update logic quite exactly.
- 4. Report details and symptoms, not just interpretations.
- If you do the preceding two steps, it is very likely that you'll
- discover the nature of the problem yourself and be able to send us
- a fix. This will create happy feelings all around and earn you
- good karma for the first time you run into a bug you really can't
- characterize and fix yourself.
- If you're still stuck, at least you'll know what to tell us.
- Remember, we need details. If you guess about what is safe to
- leave out, you are too likely to be wrong.
- If your bug produces a bad update, include a trace file. Try to
- make the trace at the least voluminous level that pins down the
- bug. Logs that have been through tracemunch are OK, it doesn't
- throw away any information (actually they're better than
- un-munched ones because they're easier to read).
- If your bug produces a core-dump, please include a symbolic stack
- trace generated by gdb(1) or your local equivalent.
- Tell us about every terminal on which you've reproduced the bug --
- and every terminal on which you can't. Ideally, sent us terminfo
- sources for all of these (yours might differ from ours).
- Include your ncurses version and your OS/machine type, of course!
- You can find your ncurses version in the curses.h file.
-
- If your problem smells like a logic error or in cursor movement or
- scrolling or a bad capability, there are a couple of tiny test frames
- for the library algorithms in the progs directory that may help you
- isolate it. These are not part of the normal build, but do have their
- own make productions.
-
- The most important of these is mvcur, a test frame for the
- cursor-movement optimization code. With this program, you can see
- directly what control sequences will be emitted for any given cursor
- movement or scroll/insert/delete operations. If you think you've got a
- bad capability identified, you can disable it and test again. The
- program is command-driven and has on-line help.
-
- If you think the vertical-scroll optimization is broken, or just want
- to understand how it works better, build hashmap and read the header
- comments of hardscroll.c and hashmap.c; then try it out. You can also
- test the hardware-scrolling optimization separately with hardscroll.
-
- There's one other interactive tester, tctest, that exercises
- translation between termcap and terminfo formats. If you have a
- serious need to run this, you probably belong on our development team!
-
- A Tour of the Ncurses Library
-
-Library Overview
-
- Most of the library is superstructure -- fairly trivial convenience
- interfaces to a small set of basic functions and data structures used
- to manipulate the virtual screen (in particular, none of this code
- does any I/O except through calls to more fundamental modules
- described below). The files
-
- lib_addch.c lib_bkgd.c lib_box.c lib_chgat.c lib_clear.c
- lib_clearok.c lib_clrbot.c lib_clreol.c lib_colorset.c lib_data.c
- lib_delch.c lib_delwin.c lib_echo.c lib_erase.c lib_gen.c
- lib_getstr.c lib_hline.c lib_immedok.c lib_inchstr.c lib_insch.c
- lib_insdel.c lib_insstr.c lib_instr.c lib_isendwin.c lib_keyname.c
- lib_leaveok.c lib_move.c lib_mvwin.c lib_overlay.c lib_pad.c
- lib_printw.c lib_redrawln.c lib_scanw.c lib_screen.c lib_scroll.c
- lib_scrollok.c lib_scrreg.c lib_set_term.c lib_slk.c
- lib_slkatr_set.c lib_slkatrof.c lib_slkatron.c lib_slkatrset.c
- lib_slkattr.c lib_slkclear.c lib_slkcolor.c lib_slkinit.c
- lib_slklab.c lib_slkrefr.c lib_slkset.c lib_slktouch.c lib_touch.c
- lib_unctrl.c lib_vline.c lib_wattroff.c lib_wattron.c lib_window.c
-
- are all in this category. They are very unlikely to need change,
- barring bugs or some fundamental reorganization in the underlying data
- structures.
-
- These files are used only for debugging support:
-
- lib_trace.c lib_traceatr.c lib_tracebits.c lib_tracechr.c
- lib_tracedmp.c lib_tracemse.c trace_buf.c
-
- It is rather unlikely you will ever need to change these, unless you
- want to introduce a new debug trace level for some reasoon.
-
- There is another group of files that do direct I/O via tputs(),
- computations on the terminal capabilities, or queries to the OS
- environment, but nevertheless have only fairly low complexity. These
- include:
-
- lib_acs.c lib_beep.c lib_color.c lib_endwin.c lib_initscr.c
- lib_longname.c lib_newterm.c lib_options.c lib_termcap.c lib_ti.c
- lib_tparm.c lib_tputs.c lib_vidattr.c read_entry.c.
-
- They are likely to need revision only if ncurses is being ported to an
- environment without an underlying terminfo capability representation.
-
- These files have serious hooks into the tty driver and signal
- facilities:
-
- lib_kernel.c lib_baudrate.c lib_raw.c lib_tstp.c lib_twait.c
-
- If you run into porting snafus moving the package to another UNIX, the
- problem is likely to be in one of these files. The file lib_print.c
- uses sleep(2) and also falls in this category.
-
- Almost all of the real work is done in the files
-
- hardscroll.c hashmap.c lib_addch.c lib_doupdate.c lib_getch.c
- lib_mouse.c lib_mvcur.c lib_refresh.c lib_setup.c lib_vidattr.c
-
- Most of the algorithmic complexity in the library lives in these
- files. If there is a real bug in ncurses itself, it's probably here.
- We'll tour some of these files in detail below (see The Engine Room).
-
- Finally, there is a group of files that is actually most of the
- terminfo compiler. The reason this code lives in the ncurses library
- is to support fallback to /etc/termcap. These files include
-
- alloc_entry.c captoinfo.c comp_captab.c comp_error.c comp_hash.c
- comp_parse.c comp_scan.c parse_entry.c read_termcap.c write_entry.c
-
- We'll discuss these in the compiler tour.
-
-The Engine Room
-
- Keyboard Input
-
- All ncurses input funnels through the function wgetch(), defined in
- lib_getch.c. This function is tricky; it has to poll for keyboard and
- mouse events and do a running match of incoming input against the set
- of defined special keys.
-
- The central data structure in this module is a FIFO queue, used to
- match multiple-character input sequences against special-key
- capabilities; also to implement pushback via ungetch().
-
- The wgetch() code distinguishes between function key sequences and the
- same sequences typed manually by doing a timed wait after each input
- character that could lead a function key sequence. If the entire
- sequence takes less than 1 second, it is assumed to have been
- generated by a function key press.
-
- Hackers bruised by previous encounters with variant select(2) calls
- may find the code in lib_twait.c interesting. It deals with the
- problem that some BSD selects don't return a reliable time-left value.
- The function timed_wait() effectively simulates a System V select.
-
- Mouse Events
-
- If the mouse interface is active, wgetch() polls for mouse events each
- call, before it goes to the keyboard for input. It is up to
- lib_mouse.c how the polling is accomplished; it may vary for different
- devices.
-
- Under xterm, however, mouse event notifications come in via the
- keyboard input stream. They are recognized by having the kmous
- capability as a prefix. This is kind of klugey, but trying to wire in
- recognition of a mouse key prefix without going through the
- function-key machinery would be just too painful, and this turns out
- to imply having the prefix somewhere in the function-key capabilities
- at terminal-type initialization.
-
- This kluge only works because kmous isn't actually used by any
- historic terminal type or curses implementation we know of. Best guess
- is it's a relic of some forgotten experiment in-house at Bell Labs
- that didn't leave any traces in the publicly-distributed System V
- terminfo files. If System V or XPG4 ever gets serious about using it
- again, this kluge may have to change.
-
- Here are some more details about mouse event handling:
-
- The lib_mouse()code is logically split into a lower level that accepts
- event reports in a device-dependent format and an upper level that
- parses mouse gestures and filters events. The mediating data structure
- is a circular queue of event structures.
-
- Functionally, the lower level's job is to pick up primitive events and
- put them on the circular queue. This can happen in one of two ways:
- either (a) _nc_mouse_event() detects a series of incoming mouse
- reports and queues them, or (b) code in lib_getch.c detects the kmous
- prefix in the keyboard input stream and calls _nc_mouse_inline to
- queue up a series of adjacent mouse reports.
-
- In either case, _nc_mouse_parse() should be called after the series is
- accepted to parse the digested mouse reports (low-level events) into a
- gesture (a high-level or composite event).
-
- Output and Screen Updating
-
- With the single exception of character echoes during a wgetnstr() call
- (which simulates cooked-mode line editing in an ncurses window), the
- library normally does all its output at refresh time.
-
- The main job is to go from the current state of the screen (as
- represented in the curscr window structure) to the desired new state
- (as represented in the newscr window structure), while doing as little
- I/O as possible.
-
- The brains of this operation are the modules hashmap.c, hardscroll.c
- and lib_doupdate.c; the latter two use lib_mvcur.c. Essentially, what
- happens looks like this:
-
- The hashmap.c module tries to detect vertical motion changes between
- the real and virtual screens. This information is represented by the
- oldindex members in the newscr structure. These are modified by
- vertical-motion and clear operations, and both are re-initialized
- after each update. To this change-journalling information, the hashmap
- code adds deductions made using a modified Heckel algorithm on hash
- values generated from the line contents.
-
- The hardscroll.c module computes an optimum set of scroll, insertion,
- and deletion operations to make the indices match. It calls
- _nc_mvcur_scrolln() in lib_mvcur.c to do those motions.
-
- Then lib_doupdate.c goes to work. Its job is to do line-by-line
- transformations of curscr lines to newscr lines. Its main tool is the
- routine mvcur() in lib_mvcur.c. This routine does cursor-movement
- optimization, attempting to get from given screen location A to given
- location B in the fewest output characters posible.
-
- If you want to work on screen optimizations, you should use the fact
- that (in the trace-enabled version of the library) enabling the
- TRACE_TIMES trace level causes a report to be emitted after each
- screen update giving the elapsed time and a count of characters
- emitted during the update. You can use this to tell when an update
- optimization improves efficiency.
-
- In the trace-enabled version of the library, it is also possible to
- disable and re-enable various optimizations at runtime by tweaking the
- variable _nc_optimize_enable. See the file include/curses.h.in for
- mask values, near the end.
-
- The Forms and Menu Libraries
-
- The forms and menu libraries should work reliably in any environment
- you can port ncurses to. The only portability issue anywhere in them
- is what flavor of regular expressions the built-in form field type
- TYPE_REGEXP will recognize.
-
- The configuration code prefers the POSIX regex facility, modeled on
- System V's, but will settle for BSD regexps if the former isn't
- available.
-
- Historical note: the panels code was written primarily to assist in
- porting u386mon 2.0 (comp.sources.misc v14i001-4) to systems lacking
- panels support; u386mon 2.10 and beyond use it. This version has been
- slightly cleaned up for ncurses.
-
- A Tour of the Terminfo Compiler
-
- The ncurses implementation of tic is rather complex internally; it has
- to do a trying combination of missions. This starts with the fact
- that, in addition to its normal duty of compiling terminfo sources
- into loadable terminfo binaries, it has to be able to handle termcap
- syntax and compile that too into terminfo entries.
-
- The implementation therefore starts with a table-driven, dual-mode
- lexical analyzer (in comp_scan.c). The lexer chooses its mode (termcap
- or terminfo) based on the first `,' or `:' it finds in each entry. The
- lexer does all the work of recognizing capability names and values;
- the grammar above it is trivial, just "parse entries till you run out
- of file".
-
-Translation of Non-use Capabilities
-
- Translation of most things besides use capabilities is pretty
- straightforward. The lexical analyzer's tokenizer hands each
- capability name to a hash function, which drives a table lookup. The
- table entry yields an index which is used to look up the token type in
- another table, and controls interpretation of the value.
-
- One possibly interesting aspect of the implementation is the way the
- compiler tables are initialized. All the tables are generated by
- various awk/sed/sh scripts from a master table include/Caps; these
- scripts actually write C initializers which are linked to the
- compiler. Furthermore, the hash table is generated in the same way, so
- it doesn't have to be generated at compiler startup time (another
- benefit of this organization is that the hash table can be in
- shareable text space).
-
- Thus, adding a new capability is usually pretty trivial, just a matter
- of adding one line to the include/Caps file. We'll have more to say
- about this in the section on Source-Form Translation.
-
-Use Capability Resolution
-
- The background problem that makes tic tricky isn't the capability
- translation itself, it's the resolution of use capabilities. Older
- versions would not handle forward use references for this reason (that
- is, a using terminal always had to follow its use target in the source
- file). By doing this, they got away with a simple implementation
- tactic; compile everything as it blows by, then resolve uses from
- compiled entries.
-
- This won't do for ncurses. The problem is that that the whole
- compilation process has to be embeddable in the ncurses library so
- that it can be called by the startup code to translate termcap entries
- on the fly. The embedded version can't go promiscuously writing
- everything it translates out to disk -- for one thing, it will
- typically be running with non-root permissions.
-
- So our tic is designed to parse an entire terminfo file into a
- doubly-linked circular list of entry structures in-core, and then do
- use resolution in-memory before writing everything out. This design
- has other advantages: it makes forward and back use-references equally
- easy (so we get the latter for free), and it makes checking for name
- collisions before they're written out easy to do.
-
- And this is exactly how the embedded version works. But the
- stand-alone user-accessible version of tic partly reverts to the
- historical strategy; it writes to disk (not keeping in core) any entry
- with no use references.
-
- This is strictly a core-economy kluge, implemented because the
- terminfo master file is large enough that some core-poor systems swap
- like crazy when you compile it all in memory...there have been reports
- of this process taking three hours, rather than the twenty seconds or
- less typical on the author's development box.
-
- So. The executable tic passes the entry-parser a hook that immediately
- writes out the referenced entry if it has no use capabilities. The
- compiler main loop refrains from adding the entry to the in-core list
- when this hook fires. If some other entry later needs to reference an
- entry that got written immediately, that's OK; the resolution code
- will fetch it off disk when it can't find it in core.
-
- Name collisions will still be detected, just not as cleanly. The
- write_entry() code complains before overwriting an entry that
- postdates the time of tic's first call to write_entry(), Thus it will
- complain about overwriting entries newly made during the tic run, but
- not about overwriting ones that predate it.
-
-Source-Form Translation
-
- Another use of tic is to do source translation between various termcap
- and terminfo formats. There are more variants out there than you might
- think; the ones we know about are described in the captoinfo(1) manual
- page.
-
- The translation output code (dump_entry() in ncurses/dump_entry.c) is
- shared with the infocmp(1) utility. It takes the same internal
- representation used to generate the binary form and dumps it to
- standard output in a specified format.
-
- The include/Caps file has a header comment describing ways you can
- specify source translations for nonstandard capabilities just by
- altering the master table. It's possible to set up capability aliasing
- or tell the compiler to plain ignore a given capability without
- writing any C code at all.
-
- For circumstances where you need to do algorithmic translation, there
- are functions in parse_entry.c called after the parse of each entry
- that are specifically intended to encapsulate such translations. This,
- for example, is where the AIX box1 capability get translated to an
- acsc string.
-
- Other Utilities
-
- The infocmp utility is just a wrapper around the same entry-dumping
- code used by tic for source translation. Perhaps the one interesting
- aspect of the code is the use of a predicate function passed in to
- dump_entry() to control which capabilities are dumped. This is
- necessary in order to handle both the ordinary De-compilation case and
- entry difference reporting.
-
- The tput and clear utilities just do an entry load followed by a
- tputs() of a selected capability.
-
- Style Tips for Developers
-
- See the TO-DO file in the top-level directory of the source
- distribution for additions that would be particularly useful.
-
- The prefix _nc_ should be used on library public functions that are
- not part of the curses API in order to prevent pollution of the
- application namespace. If you have to add to or modify the function
- prototypes in curses.h.in, read ncurses/MKlib_gen.sh first so you can
- avoid breaking XSI conformance. Please join the ncurses mailing list.
- See the INSTALL file in the top level of the distribution for details
- on the list.
-
- Look for the string FIXME in source files to tag minor bugs and
- potential problems that could use fixing.
-
- Don't try to auto-detect OS features in the main body of the C code.
- That's the job of the configuration system.
-
- To hold down complexity, do make your code data-driven. Especially, if
- you can drive logic from a table filtered out of include/Caps, do it.
- If you find you need to augment the data in that file in order to
- generate the proper table, that's still preferable to ad-hoc code --
- that's why the fifth field (flags) is there.
-
- Have fun!
-
- Porting Hints
-
- The following notes are intended to be a first step towards DOS and
- Macintosh ports of the ncurses libraries.
-
- The following library modules are `pure curses'; they operate only on
- the curses internal structures, do all output through other curses
- calls (not including tputs() and putp()) and do not call any other
- UNIX routines such as signal(2) or the stdio library. Thus, they
- should not need to be modified for single-terminal ports.
-
- lib_addch.c lib_addstr.c lib_bkgd.c lib_box.c lib_clear.c
- lib_clrbot.c lib_clreol.c lib_delch.c lib_delwin.c lib_erase.c
- lib_inchstr.c lib_insch.c lib_insdel.c lib_insstr.c lib_keyname.c
- lib_move.c lib_mvwin.c lib_newwin.c lib_overlay.c lib_pad.c
- lib_printw.c lib_refresh.c lib_scanw.c lib_scroll.c lib_scrreg.c
- lib_set_term.c lib_touch.c lib_tparm.c lib_tputs.c lib_unctrl.c
- lib_window.c panel.c
-
- This module is pure curses, but calls outstr():
-
- lib_getstr.c
-
- These modules are pure curses, except that they use tputs() and
- putp():
-
- lib_beep.c lib_color.c lib_endwin.c lib_options.c lib_slk.c
- lib_vidattr.c
-
- This modules assist in POSIX emulation on non-POSIX systems:
-
- sigaction.c
- signal calls
-
- The following source files will not be needed for a
- single-terminal-type port.
-
- alloc_entry.c captoinfo.c clear.c comp_captab.c comp_error.c
- comp_hash.c comp_main.c comp_parse.c comp_scan.c dump_entry.c
- infocmp.c parse_entry.c read_entry.c tput.c write_entry.c
-
- The following modules will use open()/read()/write()/close()/lseek()
- on files, but no other OS calls.
-
- lib_screen.c
- used to read/write screen dumps
-
- lib_trace.c
- used to write trace data to the logfile
-
- Modules that would have to be modified for a port start here:
-
- The following modules are `pure curses' but contain assumptions
- inappropriate for a memory-mapped port.
-
- lib_longname.c
- assumes there may be multiple terminals
-
- lib_acs.c
- assumes acs_map as a double indirection
-
- lib_mvcur.c
- assumes cursor moves have variable cost
-
- lib_termcap.c
- assumes there may be multiple terminals
-
- lib_ti.c
- assumes there may be multiple terminals
-
- The following modules use UNIX-specific calls:
-
- lib_doupdate.c
- input checking
-
- lib_getch.c
- read()
-
- lib_initscr.c
- getenv()
-
- lib_newterm.c
- lib_baudrate.c
- lib_kernel.c
- various tty-manipulation and system calls
-
- lib_raw.c
- various tty-manipulation calls
-
- lib_setup.c
- various tty-manipulation calls
-
- lib_restart.c
- various tty-manipulation calls
-
- lib_tstp.c
- signal-manipulation calls
-
- lib_twait.c
- gettimeofday(), select().
- _________________________________________________________________
-
-
- Eric S. Raymond <esr@snark.thyrsus.com>
-
- (Note: This is not the bug address!)
diff --git a/ncurses-5.3/doc/html/Ada95.html b/ncurses-5.3/doc/html/Ada95.html
deleted file mode 100644
index c38e42c..0000000
--- a/ncurses-5.3/doc/html/Ada95.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<!--
- $Id$
--->
-<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
-<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
-binding by any means and for any fee, whether alone or as part
-of a larger distribution, in source or in binary form, PROVIDED
-this notice is included with any such distribution, and is not
-removed from any of its header files. Mention of ncurses and the
-author of this binding in any applications linked with it is
-highly appreciated.<BR>
-
-This binding comes AS IS with no warranty, implied or expressed.
-<P>
-<HR SIZE=3 NOSHADE>
-<H2>General Remarks</H2>
-<UL>
-<LI>This document describes Version 01.00 of the binding.</LI>
-<LI>The functionality is modeled to be compatible with the ncurses
-package, a clone of the SVr4 curses model.<BR>
-I did the development on an Intel box running the latest stable release of
-<A HREF="http://www.linux.org">Linux</A>, ncurses and the most recent released
-<A HREF="http://www.gnat.com">GNU Ada Translator</A>
-gnat versions. For any older versions of ncurses and gnat
-it is not guaranteed to work.</LI>
-<LI>You must have the m4 macroprocessor to build this package.
-If you don't have this program, you can get the FSF version
-<A HREF="ftp://prep.ai.mit.edu/pub/gnu/">here</A>.</LI>
-<LI>Ada programs are supposed to be readable. One of my
-favorite methods to make code readable is to use expressive
-names for the identifiers. You can find a list of a mapping
-of the cryptic curses names to the Ada names in this <A HREF="ada/table.html">table</A>.</LI>
-<LI>This is not a typical one-2-one interface mapping. It is
-close to one-2-one on the functional level. Each (n)curses function
-has it's counterpart with a more or less similar formal parameter list
-in the binding. It is not one-2-one with respect to the datatypes.
-I tried to make records out of the flat chtype and similar structures,
-so you don't have to do bit operations to mark an attributed character
-as bold. Just make the boolean member <STRONG>bold</STRONG> of the record
-true. The binding also hides the structures like WINDOW, PANEL, MENU, FORM
-etc. ! It's a pure functional API.</LI>
-<LI>I try to do as much error checking as possible and feasible
-in the binding. I will raise an Ada exception when something
-went wrong in the low-level curses. This has the effect that - at least
-first time in my life - (n)curses programs have now a very rigid error
-checking, but - thanks to Ada - you don't have to code the orgiastic
-error checking style of C.</LI>
-<LI>Support for wide characters is currently not in the binding, as it
-is not really in ncurses at this point in time.</LI>
-</UL>
-<P>
-
-<H2>Limitations</H2>
-<UL>
-<LI>I provide no SCREEN datatype and functions to set a new screen.
-If you need this (mostly for debugging I guess), write a small
-C routine doing all this and import it into your Ada program.</LI>
-<LI>I provide no functions to switch on/off curses tracing options.
-Same suggestion as above.</LI>
-<LI>Although Ada95 is an OO Language, this binding doesn't provide
-an OO abstraction of the (n)curses functionality. As mentioned above
-it's a thin binding for the (n)curses functions. But without any
-doubt it would be nice to build on top of this an OO abstraction
-of (n)curses functionality.<BR>
-The only exception is the method how fieldtypes are represented in
-this Binding. We provide an abstract tagged type Field_Type from
-which the various fieldtypes are derived.</LI>
-<LI>I currently do not support the link_fieldtype functionality of the
-forms subsystem.</LI>
-<LI>The *_IO packages are currently output only.</LI>
-</UL>
-
-<H2>Hierarchy of packages</H2>
-<UL>
-<LI><A HREF="ada/terminal_interface__ads.htm">Terminal_Interface</A>
- <UL><LI><A HREF="ada/terminal_interface-curses__ads.htm">Curses</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-mouse__ads.htm">Mouse</A>
- <LI><A HREF="ada/terminal_interface-curses-panels__ads.htm">Panels</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-panels-user_data__ads.htm">User_Data</A>
- </UL>
- <LI><A HREF="ada/terminal_interface-curses-menus__ads.htm">Menus</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-menus-menu_user_data__ads.htm">Menu_User_Data</A>
- <LI><A HREF="ada/terminal_interface-curses-menus-item_user_data__ads.htm">Item_User_Data</A>
- </UL>
- <LI><A HREF="ada/terminal_interface-curses-forms__ads.htm">Forms</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-forms-form_user_data__ads.htm">Form_User_Data</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_user_data__ads.htm">Field_User_Data</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types__ads.htm">Field_Types</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-alpha__ads.htm">Alpha</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">AlphaNumeric</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-intfield__ads.htm">IntField</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-numeric__ads.htm">Numeric</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-regexp__ads.htm">RegExp</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">IPV4_Address</A>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm">Enumeration</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">Ada</A>
- </UL>
- <LI><A HREF="ada/terminal_interface-curses-forms-field_types-user__ads.htm">User</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm">Choice</A>
- </UL>
- </UL>
- </UL>
- <LI><A HREF="ada/terminal_interface-curses-text_io__ads.htm">Text_IO</A>
- <UL><LI><A HREF="ada/terminal_interface-curses-text_io-integer_io__ads.htm">Integer_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-float_io__ads.htm">Float_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-fixed_io__ads.htm">Fixed_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-decimal_io__ads.htm">Decimal_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-modular_io__ads.htm">Modular_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-enumeration_io__ads.htm">Enumeration_IO</A>
- <LI><A HREF="ada/terminal_interface-curses-text_io-complex_io__ads.htm">Complex_IO</A>
- </UL>
- </UL>
- </UL>
-</UL>
-If you want to navigate through the html pages of the package specs, click <A HREF="ada/index.htm">here</A>.
-<H2>Implementation Details</H2>
-<H4>Behind the abstraction</H4>
-All the new types like <STRONG>Window</STRONG>, <STRONG>Panel</STRONG>,
-<STRONG>Menu</STRONG>, <STRONG>Form</STRONG> etc. are just
-opaque representations of the pointers to the corresponding
-low level (n)curses structures like
-<STRONG>WINDOW *</STRONG>, <STRONG>PANEL *</STRONG>,
-<STRONG>MENU *</STRONG> or <STRONG>FORM *</STRONG>.
-So you can safely pass them to C routines that expect a pointer
-to one of those structures.
-<H4>Extended ripoffline() usage</H4>
-The official documentation of (n)curses says, that the line parameter
-determines only whether or not exactly <STRONG>one</STRONG> line is
-stolen from the top or bottom of the screen. So essentially only the
-sign of the parameter is evaluated. ncurses has internally implemented
-it in a way, that uses the line parameter also to control the amount of
-lines to steal. This mechanism is used in the <STRONG>Rip_Off_Lines</STRONG>
-routine of the binding.
-<H4><A NAME="userpointer">How user defined field types work</A></H4>
-TBD
-<H4>Enumeration fields handling</H4>
-The (n)curses documentation says, that the String arrays to be passed to
-an TYPE_ENUM fieldtype must not be automatic variables. This is not true
-in this binding, because it is internally arranged to safely copy these
-values.
-<H4><A NAME="compiler">Using other Ada compilers</A></H4>
-This should basically not be a problem.
-<H4>Port to other curses implementations</H4>
-Basically it should not be too hard to make all this run on a regular SVr4
-implementation of curses. The problems are probably these:<BR>
-<UL>
-<LI>ncurses has some additional features which are presented in this binding. You
-have two choices to deal with this:
-<UL>
-<LI>Emulate the feature in this binding</LI>
-<LI>Raise an exception for non implemented features</LI>
-</UL>
-Most likely you will follow a mixed approach. Some features are easy to simulate,
-others will be hard if not impossible.</LI>
-</UL>
-I'm quite sure I forgot something.<P>
-</BODY>
-</HTML>
diff --git a/ncurses-5.3/doc/html/ada/files.htm b/ncurses-5.3/doc/html/ada/files.htm
deleted file mode 100644
index 682207c..0000000
--- a/ncurses-5.3/doc/html/ada/files.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-<HTML><HEAD><TITLE></TITLE></HEAD>
-<BODY>
-<H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-</BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/files/T.htm b/ncurses-5.3/doc/html/ada/files/T.htm
deleted file mode 100644
index 8fcea4d..0000000
--- a/ncurses-5.3/doc/html/ada/files/T.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<HTML><HEAD><TITLE>T</TITLE></HEAD>
-<BODY>
-<H2>Files - T</H2>
-<A HREF="../files.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-aux__adb.htm" TARGET="main">terminal_interface-curses-aux.adb</A>
-<LI><A HREF="../terminal_interface-curses-aux__ads.htm" TARGET="main">terminal_interface-curses-aux.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-alpha.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-alpha.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-alphanumeric.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-alphanumeric.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration-ada.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration-ada.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-enumeration.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-intfield.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-intfield.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-ipv4_address.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-ipv4_address.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-numeric.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-numeric.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-regexp.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-regexp.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-user-choice.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-user-choice.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types-user.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types-user.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm" TARGET="main">terminal_interface-curses-forms-field_types.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm" TARGET="main">terminal_interface-curses-forms-field_types.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm" TARGET="main">terminal_interface-curses-forms-field_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__ads.htm" TARGET="main">terminal_interface-curses-forms-field_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm" TARGET="main">terminal_interface-curses-forms-form_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__ads.htm" TARGET="main">terminal_interface-curses-forms-form_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm" TARGET="main">terminal_interface-curses-forms.adb</A>
-<LI><A HREF="../terminal_interface-curses-forms__ads.htm" TARGET="main">terminal_interface-curses-forms.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm" TARGET="main">terminal_interface-curses-menus-item_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__ads.htm" TARGET="main">terminal_interface-curses-menus-item_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm" TARGET="main">terminal_interface-curses-menus-menu_user_data.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__ads.htm" TARGET="main">terminal_interface-curses-menus-menu_user_data.ads</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm" TARGET="main">terminal_interface-curses-menus.adb</A>
-<LI><A HREF="../terminal_interface-curses-menus__ads.htm" TARGET="main">terminal_interface-curses-menus.ads</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm" TARGET="main">terminal_interface-curses-mouse.adb</A>
-<LI><A HREF="../terminal_interface-curses-mouse__ads.htm" TARGET="main">terminal_interface-curses-mouse.ads</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm" TARGET="main">terminal_interface-curses-panels-user_data.adb</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-complex_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-complex_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-decimal_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-decimal_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-enumeration_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-enumeration_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-fixed_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-fixed_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-float_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-float_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-integer_io.adb</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm" TARGET="main">terminal_interface-curses-text_io-integer_io.ads</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__adb.htm" TARGET="main">terminal_interface-curses-text_io-modular_io.adb</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>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/funcs.htm b/ncurses-5.3/doc/html/ada/funcs.htm
deleted file mode 100644
index 96e0b14..0000000
--- a/ncurses-5.3/doc/html/ada/funcs.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-<HTML><HEAD><TITLE></TITLE></HEAD>
-<BODY>
-<H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-</BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/funcs/A.htm b/ncurses-5.3/doc/html/ada/funcs/A.htm
deleted file mode 100644
index dd98d80..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/A.htm
+++ /dev/null
@@ -1,19 +0,0 @@
-<HTML><HEAD><TITLE>A</TITLE></HEAD>
-<BODY>
-<H2>Functions - A</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-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
diff --git a/ncurses-5.3/doc/html/ada/funcs/B.htm b/ncurses-5.3/doc/html/ada/funcs/B.htm
deleted file mode 100644
index cd263b7..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/B.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-<HTML><HEAD><TITLE>B</TITLE></HEAD>
-<BODY>
-<H2>Functions - B</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/C.htm b/ncurses-5.3/doc/html/ada/funcs/C.htm
deleted file mode 100644
index e5ab81f..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/C.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<HTML><HEAD><TITLE>C</TITLE></HEAD>
-<BODY>
-<H2>Functions - C</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/D.htm b/ncurses-5.3/doc/html/ada/funcs/D.htm
deleted file mode 100644
index 705bd5c..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/D.htm
+++ /dev/null
@@ -1,22 +0,0 @@
-<HTML><HEAD><TITLE>D</TITLE></HEAD>
-<BODY>
-<H2>Functions - D</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/E.htm b/ncurses-5.3/doc/html/ada/funcs/E.htm
deleted file mode 100644
index b927c7b..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/E.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-<HTML><HEAD><TITLE>E</TITLE></HEAD>
-<BODY>
-<H2>Functions - E</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/F.htm b/ncurses-5.3/doc/html/ada/funcs/F.htm
deleted file mode 100644
index 21e6172..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/F.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<HTML><HEAD><TITLE>F</TITLE></HEAD>
-<BODY>
-<H2>Functions - F</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#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#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/G.htm b/ncurses-5.3/doc/html/ada/funcs/G.htm
deleted file mode 100644
index 4b6367b..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/G.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-<HTML><HEAD><TITLE>G</TITLE></HEAD>
-<BODY>
-<H2>Functions - G</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/H.htm b/ncurses-5.3/doc/html/ada/funcs/H.htm
deleted file mode 100644
index 8dd6ecf..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/H.htm
+++ /dev/null
@@ -1,13 +0,0 @@
-<HTML><HEAD><TITLE>H</TITLE></HEAD>
-<BODY>
-<H2>Functions - H</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/I.htm b/ncurses-5.3/doc/html/ada/funcs/I.htm
deleted file mode 100644
index 1ed76f9..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/I.htm
+++ /dev/null
@@ -1,33 +0,0 @@
-<HTML><HEAD><TITLE>I</TITLE></HEAD>
-<BODY>
-<H2>Functions - I</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-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
diff --git a/ncurses-5.3/doc/html/ada/funcs/K.htm b/ncurses-5.3/doc/html/ada/funcs/K.htm
deleted file mode 100644
index 0e8e47f..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/K.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-<HTML><HEAD><TITLE>K</TITLE></HEAD>
-<BODY>
-<H2>Functions - K</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/L.htm b/ncurses-5.3/doc/html/ada/funcs/L.htm
deleted file mode 100644
index 4bf37da..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/L.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<HTML><HEAD><TITLE>L</TITLE></HEAD>
-<BODY>
-<H2>Functions - L</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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#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#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/M.htm b/ncurses-5.3/doc/html/ada/funcs/M.htm
deleted file mode 100644
index dda9154..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/M.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<HTML><HEAD><TITLE>M</TITLE></HEAD>
-<BODY>
-<H2>Functions - M</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/N.htm b/ncurses-5.3/doc/html/ada/funcs/N.htm
deleted file mode 100644
index ca30363..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/N.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<HTML><HEAD><TITLE>N</TITLE></HEAD>
-<BODY>
-<H2>Functions - N</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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#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#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/O.htm b/ncurses-5.3/doc/html/ada/funcs/O.htm
deleted file mode 100644
index ec2e133..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/O.htm
+++ /dev/null
@@ -1,9 +0,0 @@
-<HTML><HEAD><TITLE>O</TITLE></HEAD>
-<BODY>
-<H2>Functions - O</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/P.htm b/ncurses-5.3/doc/html/ada/funcs/P.htm
deleted file mode 100644
index c0f4120..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/P.htm
+++ /dev/null
@@ -1,44 +0,0 @@
-<HTML><HEAD><TITLE>P</TITLE></HEAD>
-<BODY>
-<H2>Functions - P</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#81_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:81</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#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#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/Q.htm b/ncurses-5.3/doc/html/ada/funcs/Q.htm
deleted file mode 100644
index ae7d42c..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/Q.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-<HTML><HEAD><TITLE>Q</TITLE></HEAD>
-<BODY>
-<H2>Functions - Q</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#934_17" TARGET="main">Qiflush</A>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/funcs/R.htm b/ncurses-5.3/doc/html/ada/funcs/R.htm
deleted file mode 100644
index fd06682..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/R.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML><HEAD><TITLE>R</TITLE></HEAD>
-<BODY>
-<H2>Functions - R</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/S.htm b/ncurses-5.3/doc/html/ada/funcs/S.htm
deleted file mode 100644
index b9850c9..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/S.htm
+++ /dev/null
@@ -1,97 +0,0 @@
-<HTML><HEAD><TITLE>S</TITLE></HEAD>
-<BODY>
-<H2>Functions - S</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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#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#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/T.htm b/ncurses-5.3/doc/html/ada/funcs/T.htm
deleted file mode 100644
index a02ce1a..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/T.htm
+++ /dev/null
@@ -1,34 +0,0 @@
-<HTML><HEAD><TITLE>T</TITLE></HEAD>
-<BODY>
-<H2>Functions - T</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/U.htm b/ncurses-5.3/doc/html/ada/funcs/U.htm
deleted file mode 100644
index 1c66bf8..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/U.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-<HTML><HEAD><TITLE>U</TITLE></HEAD>
-<BODY>
-<H2>Functions - U</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/funcs/V.htm b/ncurses-5.3/doc/html/ada/funcs/V.htm
deleted file mode 100644
index f30d751..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/V.htm
+++ /dev/null
@@ -1,7 +0,0 @@
-<HTML><HEAD><TITLE>V</TITLE></HEAD>
-<BODY>
-<H2>Functions - V</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_13" TARGET="main">Value</A>
-</UL></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/funcs/W.htm b/ncurses-5.3/doc/html/ada/funcs/W.htm
deleted file mode 100644
index 01a72e1..0000000
--- a/ncurses-5.3/doc/html/ada/funcs/W.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<HTML><HEAD><TITLE>W</TITLE></HEAD>
-<BODY>
-<H2>Functions - W</H2>
-<A HREF="../funcs.htm" TARGET="_self">[index]</A>
-<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/index.htm b/ncurses-5.3/doc/html/ada/index.htm
deleted file mode 100644
index 79c9f4a..0000000
--- a/ncurses-5.3/doc/html/ada/index.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<HTML>
-<HEAD><TITLE>Source Browser</TITLE></HEAD>
-<FRAMESET COLS='250,*'>
-<NOFRAME>
-<H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-</UL>
-<HR>
-<H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-</UL>
-</NOFRAME>
-<FRAMESET ROWS='50%,50%'>
-<FRAME NAME=files SRC=files.htm>
-<FRAME NAME=funcs SRC=funcs.htm>
-</FRAMESET>
-<FRAME NAME=main SRC=main.htm>
-</FRAMESET>
-</HTML>
diff --git a/ncurses-5.3/doc/html/ada/main.htm b/ncurses-5.3/doc/html/ada/main.htm
deleted file mode 100644
index 464a4f8..0000000
--- a/ncurses-5.3/doc/html/ada/main.htm
+++ /dev/null
@@ -1,70 +0,0 @@
-<HTML><HEAD><TITLE></TITLE></HEAD>
-<BODY>
-<P ALIGN=right><A HREF="main.htm" TARGET="_top">[No frame version is here]</A><P><H2 ALIGN=CENTER>Files</H2>
-<A HREF="files/T.htm">[T]</A>
-</UL>
-<HR><H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
-<A HREF="funcs/A.htm">[A]</A>
-<A HREF="funcs/B.htm">[B]</A>
-<A HREF="funcs/C.htm">[C]</A>
-<A HREF="funcs/D.htm">[D]</A>
-<A HREF="funcs/E.htm">[E]</A>
-<A HREF="funcs/F.htm">[F]</A>
-<A HREF="funcs/G.htm">[G]</A>
-<A HREF="funcs/H.htm">[H]</A>
-<A HREF="funcs/I.htm">[I]</A>
-<A HREF="funcs/K.htm">[K]</A>
-<A HREF="funcs/L.htm">[L]</A>
-<A HREF="funcs/M.htm">[M]</A>
-<A HREF="funcs/N.htm">[N]</A>
-<A HREF="funcs/O.htm">[O]</A>
-<A HREF="funcs/P.htm">[P]</A>
-<A HREF="funcs/Q.htm">[Q]</A>
-<A HREF="funcs/R.htm">[R]</A>
-<A HREF="funcs/S.htm">[S]</A>
-<A HREF="funcs/T.htm">[T]</A>
-<A HREF="funcs/U.htm">[U]</A>
-<A HREF="funcs/V.htm">[V]</A>
-<A HREF="funcs/W.htm">[W]</A>
-</UL>
-<HR>
-You should start your browsing with one of these files:
-<UL>
-<LI><A HREF="terminal_interface-curses-aux__ads.htm">terminal_interface-curses-aux.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm">terminal_interface-curses-forms-field_types-alpha.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm">terminal_interface-curses-forms-field_types-alphanumeric.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm">terminal_interface-curses-forms-field_types-enumeration-ada.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm">terminal_interface-curses-forms-field_types-enumeration.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm">terminal_interface-curses-forms-field_types-intfield.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm">terminal_interface-curses-forms-field_types-ipv4_address.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm">terminal_interface-curses-forms-field_types-numeric.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm">terminal_interface-curses-forms-field_types-regexp.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm">terminal_interface-curses-forms-field_types-user-choice.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm">terminal_interface-curses-forms-field_types-user.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_types__ads.htm">terminal_interface-curses-forms-field_types.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm">terminal_interface-curses-forms-field_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm">terminal_interface-curses-forms-form_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-forms__ads.htm">terminal_interface-curses-forms.ads</A>
-<LI><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm">terminal_interface-curses-menus-item_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm">terminal_interface-curses-menus-menu_user_data.ads</A>
-<LI><A HREF="terminal_interface-curses-menus__ads.htm">terminal_interface-curses-menus.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-enumeration_io__ads.htm">terminal_interface-curses-text_io-enumeration_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm">terminal_interface-curses-text_io-fixed_io.ads</A>
-<LI><A HREF="terminal_interface-curses-text_io-float_io__ads.htm">terminal_interface-curses-text_io-float_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
diff --git a/ncurses-5.3/doc/html/ada/table.html b/ncurses-5.3/doc/html/ada/table.html
deleted file mode 100644
index a71e143..0000000
--- a/ncurses-5.3/doc/html/ada/table.html
+++ /dev/null
@@ -1,339 +0,0 @@
-<!DOCTYPE HTML
-PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Correspondence between ncurses C and Ada functions</TITLE>
-</HEAD>
-<BODY>
-<H1>Correspondence between ncurses C and Ada functions</H1>
-<H2>Sorted by C function name</H2>
-<TABLE ALIGN=CENTER BORDER>
-<TR ALIGN=LEFT>
-<TH>C name</TH><TH>Ada name</TH><TH>man page</TH></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>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>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>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>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>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>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>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_count()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_43">Field_Count</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
-<TR><TD>field_fore()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_18">Foreground</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>field_fore()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_19">Foreground</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>field_index()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_61">Get_Index</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
-<TR><TD>field_info()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_25">Info</A></TD><TD><A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></TD></TR>
-<TR><TD>field_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_36">Get_Field_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>field_just()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_7">Get_Justification</A></TD><TD><A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></TD></TR>
-<TR><TD>field_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_15">Get_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
-<TR><TD>field_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_16">Get_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
-<TR><TD>field_opts_on()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_14">Switch_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
-<TR><TD>field_pad()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_24">Pad_Character</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>field_status()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_11">Changed</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
-<TR><TD>field_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_37">Get_Field_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.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_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_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_50">Get_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
-<TR><TD>form_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_51">Get_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
-<TR><TD>form_opts_on()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_49">Switch_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
-<TR><TD>form_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_60">Page</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
-<TR><TD>form_sub()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_30">Get_Sub_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
-<TR><TD>form_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_39">Get_Form_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>form_userptr</TD><TD><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></TD></TR>
-<TR><TD>form_userptr</TD><TD><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#AFU_3">Get_User_Data</A></TD><TD><A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></TD></TR>
-<TR><TD>form_win()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_28">Get_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
-<TR><TD>free_field()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_3">Delete</A></TD><TD><A HREF="../man/form_field_new.3x.html">form_field_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_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>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>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>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>item_index()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_17">Get_Index</A></TD><TD><A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></TD></TR>
-<TR><TD>item_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_52">Get_Item_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>item_name()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_11">Name</A></TD><TD><A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></TD></TR>
-<TR><TD>item_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_10">Get_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
-<TR><TD>item_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_9">Get_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
-<TR><TD>item_opts_on()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_8">Switch_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
-<TR><TD>item_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_53">Get_Item_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_2">Get_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.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_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>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_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_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_38">Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_39">Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_54">Get_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_57">Items</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
-<TR><TD>menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_30">Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
-<TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_21">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
-<TR><TD>menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_22">Get_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.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>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>move_panel()</TD><TD><A HREF="terminal_interface-curses-panels__ads.htm#AFU_11">Move</A></TD><TD><A HREF="../man/panel.3x.html">panel.3x</A></TD></TR>
-<TR><TD>mvderwin()</TD><TD><A HREF="terminal_interface-curses__ads.htm#AFU_16">Move_Derived_Window</A></TD><TD><A HREF="../man/curs_window.3x.html">curs_window.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_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>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_form()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_46">New_Form</A></TD><TD><A HREF="../man/form_new.3x.html">form_new.3x</A></TD></TR>
-<TR><TD>new_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_1">Create</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
-<TR><TD>new_item()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_2">New_Item</A></TD><TD><A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></TD></TR>
-<TR><TD>new_menu()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_59">Create</A></TD><TD><A HREF="../man/menu_new.3x.html">menu_new.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_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>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_userptr</TD><TD><A HREF="terminal_interface-curses-panels-user_data__ads.htm#AFU_2">Get_User_Data</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_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>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>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>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_field_buffer()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_8">Set_Buffer</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
-<TR><TD>set_field_fore()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_17">Set_Foreground</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>set_field_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_32">Set_Field_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>set_field_just()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_6">Set_Justification</A></TD><TD><A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></TD></TR>
-<TR><TD>set_field_max()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_12">Set_Maximum_Size</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
-<TR><TD>set_field_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_13">Set_Options</A></TD><TD><A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></TD></TR>
-<TR><TD>set_field_pad()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_23">Set_Pad_Character</A></TD><TD><A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></TD></TR>
-<TR><TD>set_field_status()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_10">Set_Status</A></TD><TD><A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></TD></TR>
-<TR><TD>set_field_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_33">Set_Field_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>set_field_type()</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_1">Set_Type</A></TD><TD><A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></TD></TR>
-<TR><TD>set_field_userptr</TD><TD><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></TD></TR>
-<TR><TD>set_form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_40">Redefine</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
-<TR><TD>set_form_fields()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_41">Set_Fields</A></TD><TD><A HREF="../man/form_field.3x.html">form_field.3x</A></TD></TR>
-<TR><TD>set_form_init()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_34">Set_Form_Init_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>set_form_opts()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_48">Set_Options</A></TD><TD><A HREF="../man/form_opts.3x.html">form_opts.3x</A></TD></TR>
-<TR><TD>set_form_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_59">Set_Page</A></TD><TD><A HREF="../man/form_page.3x.html">form_page.3x</A></TD></TR>
-<TR><TD>set_form_sub()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_29">Set_Sub_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
-<TR><TD>set_form_term()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_35">Set_Form_Term_Hook</A></TD><TD><A HREF="../man/form_hook.3x.html">form_hook.3x</A></TD></TR>
-<TR><TD>set_form_userptr</TD><TD><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></TD></TR>
-<TR><TD>set_form_win()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_27">Set_Window</A></TD><TD><A HREF="../man/form_win.3x.html">form_win.3x</A></TD></TR>
-<TR><TD>set_item_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_48">Set_Item_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>set_item_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_7">Set_Options</A></TD><TD><A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></TD></TR>
-<TR><TD>set_item_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_49">Set_Item_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>set_item_userptr</TD><TD><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></TD></TR>
-<TR><TD>set_item_value()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_4">Set_Value</A></TD><TD><A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></TD></TR>
-<TR><TD>set_menu_back()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_34">Set_Background</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_fore()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_31">Set_Foreground</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_format()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_46">Set_Format</A></TD><TD><A HREF="../man/menu_format.3x.html">menu_format.3x</A></TD></TR>
-<TR><TD>set_menu_grey()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_37">Set_Grey</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_init()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_50">Set_Menu_Init_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>set_menu_items()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_56">Redefine</A></TD><TD><A HREF="../man/menu_items.3x.html">menu_items.3x</A></TD></TR>
-<TR><TD>set_menu_mark()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_29">Set_Mark</A></TD><TD><A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></TD></TR>
-<TR><TD>set_menu_opts()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_19">Set_Options</A></TD><TD><A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></TD></TR>
-<TR><TD>set_menu_pad()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_40">Set_Pad_Character</A></TD><TD><A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></TD></TR>
-<TR><TD>set_menu_pattern()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_44">Set_Pattern</A></TD><TD><A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></TD></TR>
-<TR><TD>set_menu_spacing()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_42">Set_Spacing</A></TD><TD><A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></TD></TR>
-<TR><TD>set_menu_sub()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_25">Set_Sub_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
-<TR><TD>set_menu_term()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_51">Set_Menu_Term_Hook</A></TD><TD><A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></TD></TR>
-<TR><TD>set_menu_userptr</TD><TD><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#AFU_1">Set_User_Data</A></TD><TD><A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></TD></TR>
-<TR><TD>set_menu_win()</TD><TD><A HREF="terminal_interface-curses-menus__ads.htm#AFU_23">Set_Window</A></TD><TD><A HREF="../man/menu_win.3x.html">menu_win.3x</A></TD></TR>
-<TR><TD>set_new_page()</TD><TD><A HREF="terminal_interface-curses-forms__ads.htm#AFU_62">Set_New_Page</A></TD><TD><A HREF="../man/form_new_page.3x.html">form_new_page.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_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>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>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>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>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>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>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>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>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>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>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>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>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>
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__adb.htm
deleted file mode 100644
index 7481020..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__adb.htm
+++ /dev/null
@@ -1,122 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-aux.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Aux --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.9 @</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-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>
- <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>
- <FONT COLOR=red><A NAME="51_7">Len</A></FONT> : Natural;
- <b>begin</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>
- <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>
- <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>
- <A HREF="terminal_interface-curses-aux__adb.htm#51_7">Len</A> := 0;
- <b>end</b> <b>if</b>;
-
- <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>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>
- <FONT COLOR=red><A NAME="76_7">Len</A></FONT> : Natural;
- <b>begin</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>
- <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>
- <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>return</b> "";
- <b>end</b> <b>if</b>;
- <b>end</b> Fill_String;
-
- <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>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> Terminal_Interface.Curses.Aux;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__ads.htm
deleted file mode 100644
index ab71121..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-aux__ads.htm
+++ /dev/null
@@ -1,131 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-aux.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Aux --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">System</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="unchconv__ads.htm#22_10">Interfaces</A>.C.Strings; <b>use</b> Interfaces.C.Strings;
-<b>with</b> Unchecked_Conversion;
-
-<b>package</b> Terminal_Interface.Curses.Aux <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Aux);
-
- <b>use</b> <b>type</b> Interfaces.C.int;
-
- <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>
- <FONT COLOR=green><EM>-- exactly like this in all ETI implementations I ever tested. So it</EM></FONT>
- <FONT COLOR=green><EM>-- could be that this is quite general, but please check with your curses.</EM></FONT>
- <FONT COLOR=green><EM>-- This is critical, because curses sometime mixes boolean returns with</EM></FONT>
- <FONT COLOR=green><EM>-- returning an error status.</EM></FONT>
- <FONT COLOR=red><A NAME="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;
-
- <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;
-
- <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);
- <FONT COLOR=green><EM>-- Dispatch the error code and raise the appropriate exception</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Some helpers</EM></FONT>
- <b>function</b> Chtype_To_AttrChar <b>is</b> <b>new</b>
- 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>
- 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>
- 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>
- Unchecked_Conversion (Source =&gt; <A HREF="terminal_interface-curses__ads.htm#352_9">C_AttrType</A>,
- Target =&gt; Attributed_Character);
-
- <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>
-
- <b>function</b> Fill_String (Cp : chars_ptr) <b>return</b> String;
- <FONT COLOR=green><EM>-- Same but as function.</EM></FONT>
-
-<b>end</b> Terminal_Interface.Curses.Aux;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
deleted file mode 100644
index a43d751..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>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-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>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>
- <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="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="60_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>;
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
deleted file mode 100644
index 521c5fd..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm
+++ /dev/null
@@ -1,59 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</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-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="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>
- <FONT COLOR=red><A NAME="47_9">Minimum_Field_Width</A></FONT> : Natural := 0;
- <b>end</b> <b>record</b>;
-
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
deleted file mode 100644
index 727d1ee..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>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-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>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>
- <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="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="60_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>;
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
deleted file mode 100644
index 98ce0d6..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</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-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
- (<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="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>
- <FONT COLOR=red><A NAME="48_9">Minimum_Field_Width</A></FONT> : Natural := 0;
- <b>end</b> <b>record</b>;
-
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
deleted file mode 100644
index d65b81d..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm
+++ /dev/null
@@ -1,86 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-
-<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#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>
- <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>
- <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="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>
- <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>;
- <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>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>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>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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
deleted file mode 100644
index c102826..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm
+++ /dev/null
@@ -1,65 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
-<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
-<FONT COLOR=green><EM>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
-<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
-<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
-<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
-<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
-<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
-<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
-<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
-<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
-<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
-<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
-<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
-<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
-<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
-<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Author: <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.9 @</EM></FONT>
-<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="43_9">T</A></FONT> <b>is</b> (&lt;&gt;);
-
-<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
- (<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#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#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>
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
deleted file mode 100644
index c737619..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm
+++ /dev/null
@@ -1,125 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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-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#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>procedure</b> <FONT COLOR=red><A NAME="53_17">Release_String</A></FONT> <b>is</b>
- <b>new</b> Ada.Unchecked_Deallocation (String,
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#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>
- <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>;
- <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>;
- <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>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>
- <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>
- <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>;
- <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>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>
- <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="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="105_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>;
- <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>;
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
deleted file mode 100644
index c7d2901..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm
+++ /dev/null
@@ -1,104 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-
-<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
- (<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="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>
- <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="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="56_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="56_27">C</A></FONT> : Positive) <b>is</b>
- <b>record</b>
- <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>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#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>
-
- <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#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>
-
- <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>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#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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
deleted file mode 100644
index 19df103..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm
+++ /dev/null
@@ -1,78 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>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-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>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>
- <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="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="62_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>;
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
deleted file mode 100644
index fa224d7..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IntField --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</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-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="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>
- <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>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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
deleted file mode 100644
index aa09c51..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm
+++ /dev/null
@@ -1,74 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>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-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>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>
- <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="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="60_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>;
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
deleted file mode 100644
index 04f89d7..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</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-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
- (<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="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#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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
deleted file mode 100644
index d3671e5..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm
+++ /dev/null
@@ -1,80 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.8 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#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-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>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>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;
-
- <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="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="64_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>;
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
deleted file mode 100644
index f44d8c7..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</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-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="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>
- <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>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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
deleted file mode 100644
index 2f39185..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm
+++ /dev/null
@@ -1,77 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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-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#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>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;
-
- <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="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="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>
- 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>;
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
deleted file mode 100644
index 41829d9..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</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-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="45_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
-
- <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>
- <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>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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
deleted file mode 100644
index 7b00744..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm
+++ /dev/null
@@ -1,116 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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-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>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#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>
- <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>
- <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>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>
- <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>
- <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>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>
- <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>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>
- <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>;
-
- <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>;
- <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>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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
deleted file mode 100644
index 081d8c6..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm
+++ /dev/null
@@ -1,102 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-
-<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
- (<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>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="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>
-
- <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="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>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>
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
-<b>private</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
-
- <b>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#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>
-
- <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>
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
deleted file mode 100644
index bbc6e1f..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
+++ /dev/null
@@ -1,138 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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-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>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>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="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="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#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>
- <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>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>
- <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>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#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>
- <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>
- <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>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>
- <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>
- <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>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>
- <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>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>
- <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>;
- <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>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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
deleted file mode 100644
index 2cb7d85..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm
+++ /dev/null
@@ -1,103 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.User --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-
-<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>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="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>
-
- <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="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>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>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>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
- <FONT COLOR=green><EM>-- | Used by the Choice child package.</EM></FONT>
-<b>private</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
-
- <b>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#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>
-
- <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>
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.User;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
deleted file mode 100644
index d258ff2..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm
+++ /dev/null
@@ -1,302 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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>
-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-<FONT COLOR=green><EM>-- | man page form_fieldtype.3x</EM></FONT>
-<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#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>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="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="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>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <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>
- <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>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>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>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>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>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>
- <FONT COLOR=green><EM>-- complicated to write portable routine that reads the arguments,</EM></FONT>
- <FONT COLOR=green><EM>-- because one has to know the growth direction of the stack and</EM></FONT>
- <FONT COLOR=green><EM>-- the sizes of the individual arguments.</EM></FONT>
- <FONT COLOR=green><EM>-- Fortunately we are only interested in the first argument (#0),</EM></FONT>
- <FONT COLOR=green><EM>-- we know its size and for the first arg we don't care about</EM></FONT>
- <FONT COLOR=green><EM>-- into which stack direction we have to proceed. We simply</EM></FONT>
- <FONT COLOR=green><EM>-- resolve the double indirection and thats it.</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="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>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>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>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_23">Usr</A>;
- <b>end</b> Copy_Arg;
-
- <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>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>);
-
- <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>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>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>;
- <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>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>
- <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>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>
- <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>
- <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>;
-
- <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>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>
- <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>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>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>
- <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>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>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>
- <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>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>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>
- <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>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>end</b> Prev_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_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>
- <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>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>
- <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>;
- <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>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>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>
- <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>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>
- <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>;
-
- <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>;
- <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>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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
deleted file mode 100644
index a835f27..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm
+++ /dev/null
@@ -1,246 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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);
- <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>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_fieldtype.3x.html">form_fieldtype.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> Field_Type <b>is</b> <b>abstract</b> <b>tagged</b> <b>null</b> <b>record</b>;
- <FONT COLOR=green><EM>-- Abstract base type for all field types. A concrete field type</EM></FONT>
- <FONT COLOR=green><EM>-- is an extension that adds some data elements describing formats or</EM></FONT>
- <FONT COLOR=green><EM>-- boundary values for the type and validation routines.</EM></FONT>
- <FONT COLOR=green><EM>-- For the builtin low-level fieldtypes, the validation routines are</EM></FONT>
- <FONT COLOR=green><EM>-- already defined by the low-level C library.</EM></FONT>
- <FONT COLOR=green><EM>-- The builtin types like Alpha or AlphaNumeric etc. are defined in</EM></FONT>
- <FONT COLOR=green><EM>-- child packages of this package. You may use one of them as example</EM></FONT>
- <FONT COLOR=green><EM>-- how to create you own child packages for low-level field types that</EM></FONT>
- <FONT COLOR=green><EM>-- you may have already written in C.</EM></FONT>
-
- <b>type</b> 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="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>
- <FONT COLOR=green><EM>-- have to pass a single Field_Type parameter.</EM></FONT>
-
- <FONT COLOR=green><EM>-- ---------------------------------------------------------------------</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_validation.3x.html">form_field_validation.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> Get_Type (Fld : <b>in</b> Field) <b>return</b> Field_Type_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_validation.3x.html">field_type()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: field_arg()</EM></FONT>
- <FONT COLOR=green><EM>-- In Ada95 we can combine these. If you try to retrieve the field type</EM></FONT>
- <FONT COLOR=green><EM>-- that is not defined as extension of the abstract tagged type above,</EM></FONT>
- <FONT COLOR=green><EM>-- you will raise a Form_Exception.</EM></FONT>
- <FONT COLOR=green><EM>-- This is not inlined</EM></FONT>
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
- <FONT COLOR=green><EM>-- | Most of this is used by the implementations of the child packages.</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
-<b>private</b>
- <b>type</b> Makearg_Function <b>is</b> <b>access</b>
- <b>function</b> (Args : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, Makearg_Function);
-
- <b>type</b> Copyarg_Function <b>is</b> <b>access</b>
- <b>function</b> (Usr : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, Copyarg_Function);
-
- <b>type</b> Freearg_Function <b>is</b> <b>access</b>
- <b>procedure</b> (Usr : System.Address);
- <b>pragma</b> Convention (C, Freearg_Function);
-
- <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>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>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
- <b>pragma</b> Convention (C, Choice_Function);
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | This must be in sync with the FIELDTYPE structure in form.h</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>type</b> Low_Level_Field_Type <b>is</b>
- <b>record</b>
- <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);
- <b>type</b> C_Field_Type <b>is</b> <b>access</b> <b>all</b> Low_Level_Field_Type;
-
- Null_Field_Type : <b>constant</b> C_Field_Type := <b>null</b>;
-
- <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT>
- <FONT COLOR=green><EM>-- | This four low-level fieldtypes are the ones associated with</EM></FONT>
- <FONT COLOR=green><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></FONT>
- <FONT COLOR=green><EM>-- | will result in a Form_Exception is function Get_Type.</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=red><A NAME="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>
- <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>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>
- <FONT COLOR=green><EM>-- conformant Field_Type object.</EM></FONT>
- <FONT COLOR=green><EM>-- The parameter Cft must be C_Builtin_Router for regular low-level</EM></FONT>
- <FONT COLOR=green><EM>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</EM></FONT>
- <FONT COLOR=green><EM>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></FONT>
- <FONT COLOR=green><EM>-- Any other value will raise a Form_Exception.</EM></FONT>
-
- <b>function</b> Make_Arg (Args : System.Address) <b>return</b> System.Address;
- <b>pragma</b> Convention (C, Make_Arg);
- <FONT COLOR=green><EM>-- This is the Makearg_Function for the internal low-level types</EM></FONT>
- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
-
- <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>procedure</b> Free_Arg (Usr : System.Address);
- <b>pragma</b> Convention (C, Free_Arg);
- <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="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>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>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>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>
- <FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level prev_choice</EM></FONT>
- <FONT COLOR=green><EM>-- function.</EM></FONT>
-
- <FONT COLOR=green><EM>-- This is the Argument structure maintained by all low-level field types</EM></FONT>
- <FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
- <b>type</b> Argument <b>is</b> <b>record</b>
- <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;
-
- <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="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>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>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>end</b> Terminal_Interface.Curses.Forms.Field_Types;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
deleted file mode 100644
index a281121..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm
+++ /dev/null
@@ -1,91 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.11 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#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>
-<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;
-
- <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>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="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>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>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>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>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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
deleted file mode 100644
index 3cfc919..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.14 @</EM></FONT>
-<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="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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_userptr.3x.html">form_field_userptr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Fld : <b>in</b> Field) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Sama as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Forms.Field_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
deleted file mode 100644
index ec9dc99..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm
+++ /dev/null
@@ -1,92 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>-- |=====================================================================</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#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-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>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>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="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>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>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>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>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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
deleted file mode 100644
index 8f74852..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Form_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.13 @</EM></FONT>
-<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="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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_userptr.3x.html">form_userptr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Frm : <b>in</b> Form) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Forms.Form_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__adb.htm
deleted file mode 100644
index 3454322..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__adb.htm
+++ /dev/null
@@ -1,1166 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<b>with</b> Ada.Unchecked_Conversion;
-
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
-
-<b>with</b> <A HREF="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-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#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="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>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></FONT>
-
- <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="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="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="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#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>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>
- <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>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>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>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>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_field_new.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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>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>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>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>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="136_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>;
- <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>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>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>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>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>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>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>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>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>
- <FONT COLOR=green><EM>-- | man page form_field_just.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="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>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>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>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>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>
- <FONT COLOR=green><EM>-- | man page form_field_buffer.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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>
- 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>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>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>
- <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>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>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>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>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>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="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>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>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>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="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>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>end</b> <b>if</b>;
- <b>end</b> Changed;
- <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#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>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="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>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>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_field_opts.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="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>
- <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>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>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>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>
- <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>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>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>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="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>
- <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>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>
- <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>
- <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>
- <FONT COLOR=green><EM>-- | man page form_field_attributes.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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>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>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>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>
- <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>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>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>
- <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>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>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>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>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>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>
- <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>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>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>
- <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>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>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="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>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>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>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>
- <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>
- <FONT COLOR=green><EM>-- | man page form_field_info.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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>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>
- <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>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>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>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>
- <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>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_win.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="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>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>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>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="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>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>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>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="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>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>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>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="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>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>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>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="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>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>;
- <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>
- <FONT COLOR=green><EM>-- | man page menu_hook.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="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>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>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>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="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>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>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>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="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>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>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>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="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>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>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_fields.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="737_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>
- <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>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>use</b> <A HREF="terminal_interface-curses-forms__adb.htm#56_12">F_Array</A>;
-
- <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");
-
- <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>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>
- <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>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>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>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>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>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="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>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>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_new.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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="807_7">M</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Form</A>;
- <b>begin</b>
- <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>
- <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>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>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>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="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>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>;
- <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>
- <FONT COLOR=green><EM>-- | man page form_opts.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="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>
- <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>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>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>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>
- <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>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>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>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="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>
- <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>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>
- <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>
- <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>
- <FONT COLOR=green><EM>-- | man page form_post.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="921_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>
- <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>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>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_cursor.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="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>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>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_data.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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="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>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>end</b> <b>if</b>;
- <b>end</b> Data_Ahead;
- <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#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>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="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>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>end</b> <b>if</b>;
- <b>end</b> Data_Behind;
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_driver.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <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>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="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>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>
- <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>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>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_page.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="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>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>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>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="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>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>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>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>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="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>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>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>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="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>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>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>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>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="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>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>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>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | man page form_new_page.3x</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <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>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="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>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>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>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="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>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>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>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>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>;
- <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>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>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>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>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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__ads.htm
deleted file mode 100644
index b3e25ec..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-forms__ads.htm
+++ /dev/null
@@ -1,789 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-forms.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Form --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> System;
-<b>with</b> Ada.Characters.Latin_1;
-
-<b>package</b> Terminal_Interface.Curses.Forms <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms);
- <b>pragma</b> Linker_Options ("-lform");
- <b>pragma</b> Linker_Options ("-lncurses");
-
- Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
-
- <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>;
-
- <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;
-
- <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>
- <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;
- <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>for</b> Field_Option_Set <b>use</b>
- <b>record</b>
- Visible <b>at</b> 0 <b>range</b> 0 .. 0;
- Active <b>at</b> 0 <b>range</b> 1 .. 1;
- Public <b>at</b> 0 <b>range</b> 2 .. 2;
- Edit <b>at</b> 0 <b>range</b> 3 .. 3;
- Wrap <b>at</b> 0 <b>range</b> 4 .. 4;
- Blank <b>at</b> 0 <b>range</b> 5 .. 5;
- Auto_Skip <b>at</b> 0 <b>range</b> 6 .. 6;
- Null_Ok <b>at</b> 0 <b>range</b> 7 .. 7;
- Pass_Ok <b>at</b> 0 <b>range</b> 8 .. 8;
- Static <b>at</b> 0 <b>range</b> 9 .. 9;
- <b>end</b> <b>record</b>;
- <b>for</b> Field_Option_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.Dnl</EM></FONT>
-
- <b>pragma</b> Warnings (On);
-
- <b>function</b> Default_Field_Options <b>return</b> Field_Option_Set;
- <FONT COLOR=green><EM>-- The initial defaults for the field options.</EM></FONT>
- <b>pragma</b> Inline (Default_Field_Options);
-
- <b>pragma</b> Warnings (Off);
- <b>type</b> Form_Option_Set <b>is</b>
- <b>record</b>
- <FONT COLOR=red><A NAME="111_10">NL_Overload</A></FONT> : Boolean;
- BS_Overload : Boolean;
- <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>for</b> Form_Option_Set <b>use</b>
- <b>record</b>
- NL_Overload <b>at</b> 0 <b>range</b> 0 .. 0;
- BS_Overload <b>at</b> 0 <b>range</b> 1 .. 1;
- <b>end</b> <b>record</b>;
- <b>for</b> Form_Option_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.Dnl</EM></FONT>
-
- <b>pragma</b> Warnings (On);
-
- <b>function</b> Default_Form_Options <b>return</b> Form_Option_Set;
- <FONT COLOR=green><EM>-- The initial defaults for the form options.</EM></FONT>
- <b>pragma</b> Inline (Default_Form_Options);
-
- <b>type</b> Buffer_Number <b>is</b> <b>new</b> Natural;
-
- <b>type</b> Field_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> Field;
- <b>pragma</b> Convention (C, 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="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>
- <FONT COLOR=green><EM>-- the array.</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="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;
-
- <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;
-
- <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;
-
- <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>
- <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>
- <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;
-
- <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>
- <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;
-
- <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;
-
- <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;
-
- <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;
-
- <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;
-
- <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;
-
- <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;
-
-
- <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;
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Request_Name);
-
- <FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
- <FONT COLOR=green><EM>------------------</EM></FONT>
- Form_Exception : <b>exception</b>;
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_new.3x.html">form_field_new.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> 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>
- <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>
- <b>pragma</b> Inline (New_Field);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>procedure</b> Delete (Fld : <b>in</b> <b>out</b> Field);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">free_field()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Reset Fld to Null_Field</EM></FONT>
- <FONT COLOR=green><EM>-- An overloaded Delete is defined later. Pragma Inline appears there.</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>function</b> 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>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_just.3x.html">form_field_just.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <b>procedure</b> 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
- <b>function</b> Get_Justification (Fld : Field) <b>return</b> Field_Justification;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">field_just()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Justification);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_buffer.3x.html">form_field_buffer.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
- <b>procedure</b> Set_Buffer
- (<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
- (<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
- (<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>
- <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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
- <b>function</b> Changed (Fld : Field) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_status()</A></EM></FONT>
- <b>pragma</b> Inline (Changed);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_opts.3x.html">form_field_opts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT>
- <b>function</b> Get_Options (Fld : Field := Null_Field)
- <b>return</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>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_attributes.3x.html">form_field_attributes.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
- <b>procedure</b> Set_Foreground
- (<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>
- <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>
- <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
- (<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>
- <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>
- <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>
- <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>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field_info.3x.html">form_field_info.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_win.3x.html">form_win.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT>
- <b>procedure</b> 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT>
- <b>function</b> Get_Window (Frm : Form) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_win()</A></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="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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
- <b>function</b> Get_Sub_Window (Frm : Form) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">form_sub()</A></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="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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_hook.3x.html">form_hook.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> Form_Hook_Function <b>is</b> <b>access</b> <b>procedure</b> (Frm : <b>in</b> Form);
- <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="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>
- <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>
- <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>
- <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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT>
- <b>function</b> Get_Field_Init_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_init()</A></EM></FONT>
- <b>pragma</b> Import (C, Get_Field_Init_Hook, "field_init");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT>
- <b>function</b> Get_Field_Term_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">field_term()</A></EM></FONT>
- <b>pragma</b> Import (C, Get_Field_Term_Hook, "field_term");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT>
- <b>function</b> Get_Form_Init_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_init()</A></EM></FONT>
- <b>pragma</b> Import (C, Get_Form_Init_Hook, "form_init");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT>
- <b>function</b> Get_Form_Term_Hook (Frm : Form) <b>return</b> Form_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">form_term()</A></EM></FONT>
- <b>pragma</b> Import (C, Get_Form_Term_Hook, "form_term");
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_field.3x.html">form_field.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
- <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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT>
- <b>function</b> Field_Count (Frm : Form) <b>return</b> Natural;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">field_count()</A></EM></FONT>
- <b>pragma</b> Inline (Field_Count);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_new.3x.html">form_new.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT>
- <b>function</b> Create (Fields : Field_Array_Access) <b>return</b> Form;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
- <b>pragma</b> Inline (Create);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
- <b>function</b> New_Form (Fields : Field_Array_Access) <b>return</b> Form
- <b>renames</b> Create;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">new_form()</A></EM></FONT>
- <b>pragma</b> Inline (New_Form);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
- <b>procedure</b> Delete (Frm : <b>in</b> <b>out</b> Form);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new.3x.html">free_form()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Reset Frm to Null_Form</EM></FONT>
- <b>pragma</b> Inline (Delete);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_opts.3x.html">form_opts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT>
- <b>function</b> Get_Options (Frm : Form := Null_Form) <b>return</b> Form_Option_Set;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Options);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_post.3x.html">form_post.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT>
- <b>procedure</b> 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>
- <b>pragma</b> Inline (Post);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_cursor.3x.html">form_cursor.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
- <b>procedure</b> Position_Cursor (Frm : Form);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_cursor.3x.html">pos_form_cursor()</A></EM></FONT>
- <b>pragma</b> Inline (Position_Cursor);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_data.3x.html">form_data.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
- <b>function</b> Data_Ahead (Frm : Form) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_ahead()</A></EM></FONT>
- <b>pragma</b> Inline (Data_Ahead);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
- <b>function</b> Data_Behind (Frm : Form) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_data.3x.html">data_behind()</A></EM></FONT>
- <b>pragma</b> Inline (Data_Behind);
-
- <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="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>
- <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>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_page.3x.html">form_page.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> 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="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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT>
- <b>function</b> Current (Frm : <b>in</b> Form) <b>return</b> Field;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">current_field()</A></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="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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT>
- <b>function</b> Page (Frm : Form) <b>return</b> Page_Number;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">form_page()</A></EM></FONT>
- <b>pragma</b> Inline (Page);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT>
- <b>function</b> Get_Index (Fld : Field) <b>return</b> Positive;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">field_index()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Please note that in this binding we start the numbering of fields</EM></FONT>
- <FONT COLOR=green><EM>-- with 1. So this is number is one more than you get from the low</EM></FONT>
- <FONT COLOR=green><EM>-- level call.</EM></FONT>
- <b>pragma</b> Inline (Get_Index);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_new_page.3x.html">form_new_page.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT>
- <b>procedure</b> 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_63"#2|</EM></FONT>
- <b>function</b> Is_New_Page (Fld : Field) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">new_page()</A></EM></FONT>
- <b>pragma</b> Inline (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>
- <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;
-
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
deleted file mode 100644
index 3dbd624..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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-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>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>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="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>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>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>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>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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
deleted file mode 100644
index df6d8d0..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Item_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.13 @</EM></FONT>
-<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="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);
-
- <FONT COLOR=green><EM>-- The binding uses the same user pointer for menu items</EM></FONT>
- <FONT COLOR=green><EM>-- as the low level C implementation. So you can safely</EM></FONT>
- <FONT COLOR=green><EM>-- read or write the user pointer also with the C routines</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_userptr.3x.html">mitem_userptr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Itm : <b>in</b> Item) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Menus.Item_User_Data;
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
deleted file mode 100644
index ad50af7..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.11 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#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-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>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>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="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>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>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>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>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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
deleted file mode 100644
index 988b44e..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus.Menu_User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.13 @</EM></FONT>
-<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="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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_userptr.3x.html">menu_userptr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Men : <b>in</b> Menu) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Menus.Menu_User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__adb.htm
deleted file mode 100644
index f133843..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__adb.htm
+++ /dev/null
@@ -1,1027 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menus --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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.Pointers;
-
-<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-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="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>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="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="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="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="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>
- <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>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>
- <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>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>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>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>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>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="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="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="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>
- 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>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#112_7">Result</A>;
- <b>end</b> Create;
-
- <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>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="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="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>
- <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>;
- <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>;
- <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>;
- <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>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>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="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>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>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>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>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>end</b> <b>if</b>;
- <b>end</b> Value;
-
-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <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>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>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>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>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="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>
- <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>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>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="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>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>
- <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>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>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>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="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>
- <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>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>
- <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>
- <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>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>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>
- <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>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>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>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>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>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>
- <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>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>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>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>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>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="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>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>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>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="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>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>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#303_7">Res</A>;
- <b>end</b> Current;
-
- <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>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="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>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>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>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="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>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>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>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>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="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>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>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>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>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="359_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>
- <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>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>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>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="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>
- <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>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>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="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>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>
- <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>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>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>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="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>
- <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>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>
- <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>
- <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>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>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="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>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>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>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="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>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#449_7">W</A>;
- <b>end</b> Get_Window;
-
- <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>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="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>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>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>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="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>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#473_7">W</A>;
- <b>end</b> Get_Sub_Window;
-
- <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>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="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>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>;
- <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>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>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="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>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>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>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>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>
- <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>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>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>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>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>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>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>
- <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>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>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>
- <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>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>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="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>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>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>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>
- <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>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>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>
- <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>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>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="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="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>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>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>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>
- <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>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>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>
- <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>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>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="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>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>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>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>
- <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>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>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>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="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>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>
- <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>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;
- <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>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>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>
- <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>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>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="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>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>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>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="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>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>
- <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>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>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="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>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>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>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="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>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>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>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="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>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>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>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="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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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="897_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#79_12">Eti_Error</A>;
- <b>begin</b>
- <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>
- <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>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>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>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>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>use</b> <A HREF="terminal_interface-curses-menus__adb.htm#54_12">I_Array</A>;
-
- <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");
-
- <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>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>
- <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>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>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="942_7">M</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#57_9">Menu</A>;
- <b>begin</b>
- <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>
- <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>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>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>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="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>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>;
- <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>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>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="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>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;
- <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>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#656_27">Menu_Ok</A>;
- <b>end</b> Driver;
-
- <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>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>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>;
- <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>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>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>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>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> Terminal_Interface.Curses.Menus;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__ads.htm
deleted file mode 100644
index b34529b..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-menus__ads.htm
+++ /dev/null
@@ -1,683 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-menus.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Menu --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> System;
-<b>with</b> Ada.Characters.Latin_1;
-
-<b>package</b> Terminal_Interface.Curses.Menus <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus);
- <b>pragma</b> Linker_Options ("-lmenu");
- <b>pragma</b> Linker_Options ("-lncurses");
-
- Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
-
- <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>
- <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>
- <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>
- <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;
-
- <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;
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
-
- <FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
- <FONT COLOR=green><EM>------------------</EM></FONT>
-
- Menu_Exception : <b>exception</b>;
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Menu options</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <b>pragma</b> Warnings (Off);
- <b>type</b> Menu_Option_Set <b>is</b>
- <b>record</b>
- <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;
- <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>for</b> Menu_Option_Set <b>use</b>
- <b>record</b>
- One_Valued <b>at</b> 0 <b>range</b> 0 .. 0;
- Show_Descriptions <b>at</b> 0 <b>range</b> 1 .. 1;
- Row_Major_Order <b>at</b> 0 <b>range</b> 2 .. 2;
- Ignore_Case <b>at</b> 0 <b>range</b> 3 .. 3;
- Show_Matches <b>at</b> 0 <b>range</b> 4 .. 4;
- Non_Cyclic <b>at</b> 0 <b>range</b> 5 .. 5;
- <b>end</b> <b>record</b>;
- <b>for</b> Menu_Option_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);
-
- <b>function</b> Default_Menu_Options <b>return</b> Menu_Option_Set;
- <FONT COLOR=green><EM>-- Initial default options for a menu.</EM></FONT>
- <b>pragma</b> Inline (Default_Menu_Options);
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Item options</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <b>pragma</b> Warnings (Off);
- <b>type</b> 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#154_9">;</A>
- <b>pragma</b> Pack (Item_Option_Set);
- <b>pragma</b> Convention (C, Item_Option_Set);
-
- <b>for</b> Item_Option_Set <b>use</b>
- <b>record</b>
- Selectable <b>at</b> 0 <b>range</b> 0 .. 0;
- <b>end</b> <b>record</b>;
- <b>for</b> Item_Option_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);
-
- <b>function</b> Default_Item_Options <b>return</b> Item_Option_Set;
- <FONT COLOR=green><EM>-- Initial default options for an item.</EM></FONT>
- <b>pragma</b> Inline (Default_Item_Options);
-
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Item Array</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <b>type</b> Item_Array <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> <b>aliased</b> Item;
- <b>pragma</b> Convention (C, 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="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>
- <FONT COLOR=green><EM>-- the array.</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_new.3x.html">mitem_new.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> 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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>procedure</b> Delete (Itm : <b>in</b> <b>out</b> Item);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">free_item()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Resets Itm to Null_Item</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_value.3x.html">mitem_value.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>procedure</b> 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>function</b> Value (Itm : Item) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">item_value()</A></EM></FONT>
- <b>pragma</b> Inline (Value);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_visible.3x.html">mitem_visible.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <b>function</b> Visible (Itm : Item) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_visible.3x.html">item_visible()</A></EM></FONT>
- <b>pragma</b> Inline (Visible);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_opts.3x.html">mitem_opts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
- <FONT COLOR=green><EM>-- An overloaded Switch_Options is defined later.</EM></FONT>
- <FONT COLOR=green><EM>-- Pragma Inline appears there</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
- <b>procedure</b> 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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT>
- <b>function</b> Get_Options (Itm : Item := Null_Item) <b>return</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>-- An overloaded Get_Options is defined later. Pragma Inline appears there</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_name.3x.html">mitem_name.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
- <b>procedure</b> 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;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
- <b>pragma</b> Inline (Name);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
- <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>
-
- <b>function</b> Description (Itm : Item) <b>return</b> String;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
- <b>pragma</b> Inline (Description);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/mitem_current.3x.html">mitem_current.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
- <b>procedure</b> 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
- <b>function</b> Current (Men : Menu) <b>return</b> Item;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">current_item()</A></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="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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT>
- <b>function</b> Top_Row (Men : Menu) <b>return</b> Line_Position;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">top_row()</A></EM></FONT>
- <b>pragma</b> Inline (Top_Row);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
- <b>function</b> Get_Index (Itm : Item) <b>return</b> Positive;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">item_index()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Please note that in this binding we start the numbering of items</EM></FONT>
- <FONT COLOR=green><EM>-- with 1. So this is number is one more than you get from the low</EM></FONT>
- <FONT COLOR=green><EM>-- level call.</EM></FONT>
- <b>pragma</b> Inline (Get_Index);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_post.3x.html">menu_post.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
- <b>procedure</b> 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>
- <b>pragma</b> Inline (Post);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_opts.3x.html">menu_opts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT>
- <b>function</b> Get_Options (Men : Menu := Null_Menu) <b>return</b> Menu_Option_Set;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Options);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_win.3x.html">menu_win.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT>
- <b>procedure</b> 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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT>
- <b>function</b> Get_Window (Men : Menu) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_win()</A></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="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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT>
- <b>function</b> Get_Sub_Window (Men : Menu) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">menu_sub()</A></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="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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_cursor.3x.html">menu_cursor.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_28"#2|</EM></FONT>
- <b>procedure</b> Position_Cursor (Men : Menu);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_cursor.3x.html">pos_menu_cursor()</A></EM></FONT>
- <b>pragma</b> Inline (Position_Cursor);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_mark.3x.html">menu_mark.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
-
- <b>function</b> Mark (Men : Menu) <b>return</b> String;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Implemented as function</EM></FONT>
- <b>pragma</b> Inline (Mark);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_attribs.3x.html">menu_attribs.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT>
- <b>procedure</b> Set_Foreground
- (<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>
- <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>
- <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
- (<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>
- <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>
-
- <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
- (<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>
- <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
- (<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>
- <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>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_spacing.3x.html">menu_spacing.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_pattern.3x.html">menu_pattern.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
- <b>function</b> 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>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_format.3x.html">menu_format.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
- <b>procedure</b> 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);
- <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>
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_hook.3x.html">menu_hook.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> Menu_Hook_Function <b>is</b> <b>access</b> <b>procedure</b> (Men : <b>in</b> Menu);
- <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="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>
- <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>
- <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>
- <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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT>
- <b>function</b> Get_Item_Init_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_init()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Item_Init_Hook);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
- <b>function</b> Get_Item_Term_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">item_term()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Item_Term_Hook);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
- <b>function</b> Get_Menu_Init_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_init()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Menu_Init_Hook);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
- <b>function</b> Get_Menu_Term_Hook (Men : Menu) <b>return</b> Menu_Hook_Function;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">menu_term()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Menu_Term_Hook);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_items.3x.html">menu_items.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
- <b>procedure</b> 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);
-
- <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>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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT>
- <b>function</b> Item_Count (Men : Menu) <b>return</b> Natural;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">item_count()</A></EM></FONT>
- <b>pragma</b> Inline (Item_Count);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_new.3x.html">menu_new.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT>
- <b>function</b> Create (Items : Item_Array_Access) <b>return</b> Menu;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_new.3x.html">new_menu()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Not inlined</EM></FONT>
-
- <b>function</b> New_Menu (Items : Item_Array_Access) <b>return</b> Menu <b>renames</b> Create;
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_60"#2|</EM></FONT>
- <b>procedure</b> Delete (Men : <b>in</b> <b>out</b> Menu);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_new.3x.html">free_menu()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Reset Men to Null_Menu</EM></FONT>
- <FONT COLOR=green><EM>-- Not inlined</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>type</b> 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>
- <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;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Driver is not inlined</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT>
- <FONT COLOR=green><EM>-- Not Implemented: menu_request_name, menu_request_by_name</EM></FONT>
-<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-<b>private</b>
- <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;
-
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__adb.htm
deleted file mode 100644
index a8137c4..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__adb.htm
+++ /dev/null
@@ -1,220 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-mouse.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.17 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> System;
-
-<b>with</b> <A HREF="terminal_interface__ads.htm#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>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>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>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>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>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>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="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="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>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>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#72_7">Event</A>;
- <b>end</b> Get_Mouse;
-
- <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>
- <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>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>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>
- <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>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>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>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>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>
- <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>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>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#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>
- <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>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>;
- <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>
- <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>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>
- <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>
- <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>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>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>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>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>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>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>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>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>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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__ads.htm
deleted file mode 100644
index d562e90..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-mouse__ads.htm
+++ /dev/null
@@ -1,237 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-mouse.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Mouse --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> System;
-
-<b>package</b> Terminal_Interface.Curses.Mouse <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Mouse);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- Please note, that in ncurses-1.9.9e documentation mouse support</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>;
- <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;
-
- <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>
-
- <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>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,
- <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>;
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_mouse.3x.html">curs_mouse.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <b>function</b> Has_Mouse <b>return</b> Boolean;
- <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="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>
- <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT>
- <b>pragma</b> Inline (Register_Reportable_Event);
-
- <b>procedure</b> Register_Reportable_Events
- (<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>
- <FONT COLOR=green><EM>-- with the Empty_Mask constant</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <FONT COLOR=green><EM>-- There is one difference to mousmask(): we return the value of the</EM></FONT>
- <FONT COLOR=green><EM>-- old mask, that means the event mask value before this call.</EM></FONT>
- <FONT COLOR=green><EM>-- Not Implemented: The library version</EM></FONT>
- <FONT COLOR=green><EM>-- returns a Mouse_Mask that tells which events are reported.</EM></FONT>
- <b>function</b> 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>procedure</b> End_Mouse (Mask : <b>in</b> Event_Mask := No_Events);
- <FONT COLOR=green><EM>-- Terminates the mouse, restores the specified event mask</EM></FONT>
- <b>pragma</b> Inline (End_Mouse);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> Get_Mouse <b>return</b> Mouse_Event;
- <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="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>
- <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>procedure</b> Unget_Mouse (Event : <b>in</b> Mouse_Event);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">ungetmouse()</A></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="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>
- <b>pragma</b> Inline (Enclosed_In_Window);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>function</b> Mouse_Interval (Msec : Natural := 200) <b>return</b> Natural;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mouseinterval()</A></EM></FONT>
- <b>pragma</b> Inline (Mouse_Interval);
-
-<b>private</b>
- <b>type</b> Event_Mask <b>is</b> <b>new</b> Interfaces.C.unsigned_long;
-
- <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="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) ..
- <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);
- <b>pragma</b> Pack (Mouse_Event);
-
- <b>for</b> Mouse_Event <b>use</b>
- <b>record</b>
- Id <b>at</b> 0 <b>range</b> 0 .. 15;
- X <b>at</b> 0 <b>range</b> 32 .. 63;
- Y <b>at</b> 0 <b>range</b> 64 .. 95;
- Z <b>at</b> 0 <b>range</b> 96 .. 127;
- Bstate <b>at</b> 0 <b>range</b> 128 .. 159;
- <b>end</b> <b>record</b>;
- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
-
- 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="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#;
-
-
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
deleted file mode 100644
index dedbdb7..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm
+++ /dev/null
@@ -1,84 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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> <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>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>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>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>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>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>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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
deleted file mode 100644
index 90810b6..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels.User_Data --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.13 @</EM></FONT>
-<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="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>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> 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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>function</b> Get_User_Data (Pan : <b>in</b> Panel) <b>return</b> User_Access;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
- <FONT COLOR=green><EM>-- Same as function</EM></FONT>
- <b>pragma</b> Inline (Get_User_Data);
-
-<b>end</b> Terminal_Interface.Curses.Panels.User_Data;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__adb.htm
deleted file mode 100644
index d721463..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__adb.htm
+++ /dev/null
@@ -1,170 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-panels.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.9 @</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>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>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>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="54_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#49_9">Panel</A>;
- <b>begin</b>
- <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>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#54_7">Pan</A>;
- <b>end</b> Create;
-
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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="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>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>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#108_7">Win</A>;
- <b>end</b> Get_Window;
-
- <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>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>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>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>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>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>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>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>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>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>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>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>;
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__ads.htm
deleted file mode 100644
index c7790ae..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-panels__ads.htm
+++ /dev/null
@@ -1,153 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-panels.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Panels --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.16 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> System;
-
-<b>package</b> Terminal_Interface.Curses.Panels <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels);
- <b>pragma</b> Linker_Options ("-lpanel");
- <b>pragma</b> Linker_Options ("-lncurses");
-
- <b>type</b> Panel <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>
- Null_Panel : <b>constant</b> Panel;
-
- <FONT COLOR=green><EM>-------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
- <FONT COLOR=green><EM>-------------------</EM></FONT>
-
- Panel_Exception : <b>exception</b>;
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/panel.3x.html">panel.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> Create (Win : Window) <b>return</b> Panel;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Create);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> New_Panel (Win : Window) <b>return</b> Panel <b>renames</b> Create;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">new_panel()</A></EM></FONT>
- <b>pragma</b> Inline (New_Panel);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
- <b>procedure</b> Bottom (Pan : <b>in</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">bottom_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Bottom);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>procedure</b> Top (Pan : <b>in</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">top_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Top);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>procedure</b> Show (Pan : <b>in</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">show_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Show);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <b>procedure</b> Update_Panels;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">update_panels()</A></EM></FONT>
- <b>pragma</b> Import (C, Update_Panels, "update_panels");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
- <b>procedure</b> Hide (Pan : <b>in</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">hide_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Hide);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
- <b>function</b> Get_Window (Pan : Panel) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_window()</A></EM></FONT>
- <b>pragma</b> Inline (Get_Window);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
- <b>function</b> Panel_Window (Pan : Panel) <b>return</b> Window <b>renames</b> Get_Window;
- <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="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>
- <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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
- <b>function</b> Is_Hidden (Pan : Panel) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_hidden()</A></EM></FONT>
- <b>pragma</b> Inline (Is_Hidden);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
- <b>function</b> Above (Pan : Panel) <b>return</b> Panel;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_above()</A></EM></FONT>
- <b>pragma</b> Import (C, Above, "panel_above");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
- <b>function</b> Below (Pan : Panel) <b>return</b> Panel;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_below()</A></EM></FONT>
- <b>pragma</b> Import (C, Below, "panel_below");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
- <b>procedure</b> Delete (Pan : <b>in</b> <b>out</b> Panel);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">del_panel()</A></EM></FONT>
- <b>pragma</b> Inline (Delete);
-
-<b>private</b>
- <b>type</b> Panel <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- Null_Panel : <b>constant</b> Panel := 0;
-
-<b>end</b> Terminal_Interface.Curses.Panels;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__adb.htm
deleted file mode 100644
index 1e857b3..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__adb.htm
+++ /dev/null
@@ -1,83 +0,0 @@
-<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/ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__ads.htm
deleted file mode 100644
index 8358e0e..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-putwin__ads.htm
+++ /dev/null
@@ -1,56 +0,0 @@
-<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/ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__adb.htm
deleted file mode 100644
index 47ab7bd..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__adb.htm
+++ /dev/null
@@ -1,169 +0,0 @@
-<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/ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__ads.htm
deleted file mode 100644
index a601a0f..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-termcap__ads.htm
+++ /dev/null
@@ -1,86 +0,0 @@
-<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/ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__adb.htm
deleted file mode 100644
index 0e6979a..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__adb.htm
+++ /dev/null
@@ -1,167 +0,0 @@
-<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/ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__ads.htm
deleted file mode 100644
index b75149e..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-terminfo__ads.htm
+++ /dev/null
@@ -1,87 +0,0 @@
-<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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
deleted file mode 100644
index ac4415c..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm
+++ /dev/null
@@ -1,134 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#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#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>
- <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#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#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>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>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>
- <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>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>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>
- <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>
- <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>;
- <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>;
- <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>
- <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>
- <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>if</b>;
- <b>end</b> Output;
-
- <b>begin</b>
- <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>;
- <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>
- <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>;
- <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> Terminal_Interface.Curses.Text_IO.Aux;
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
deleted file mode 100644
index 31b6806..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm
+++ /dev/null
@@ -1,61 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Aux --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.11 @</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#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>
- <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;
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
deleted file mode 100644
index 8aed31a..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm
+++ /dev/null
@@ -1,79 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.9 @</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-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> <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="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#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>
- <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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
deleted file mode 100644
index 2d9149e..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Complex_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>
- <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#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#45_17">Complex_Types</A>;
-
- <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#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#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>pragma</b> Inline (Put);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Complex_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
deleted file mode 100644
index 9cfb1ab..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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> <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> <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="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#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>
- <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>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>;
- <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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
deleted file mode 100644
index 5312285..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Decimal_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</EM></FONT>
-<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="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#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="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#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#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>pragma</b> Inline (Put);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Decimal_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
deleted file mode 100644
index 12fc555..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm
+++ /dev/null
@@ -1,86 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-<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> <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="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#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>
- <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>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>
- <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>;
- <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>;
- <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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
deleted file mode 100644
index 5b0bdaa..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</EM></FONT>
-<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="43_9">Enum</A></FONT> <b>is</b> (&lt;&gt;);
-
-<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="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#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#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>pragma</b> Inline (Put);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
deleted file mode 100644
index 75efa92..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm
+++ /dev/null
@@ -1,81 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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> <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> <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="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#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>
- <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>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>;
- <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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
deleted file mode 100644
index fd159a1..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Fixed_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</EM></FONT>
-<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="43_9">Num</A></FONT> <b>is</b> <b>delta</b> &lt;&gt;;
-
-<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="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#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#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>pragma</b> Inline (Put);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Fixed_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
deleted file mode 100644
index 8e0b28b..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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> <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> <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="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#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>
- <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>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>;
- <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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
deleted file mode 100644
index 39d1358..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm
+++ /dev/null
@@ -1,72 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Float_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</EM></FONT>
-<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="43_9">Num</A></FONT> <b>is</b> <b>digits</b> &lt;&gt;;
-
-<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="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#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#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>pragma</b> Inline (Put);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Float_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
deleted file mode 100644
index 1ef1b4b..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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> <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> <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="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#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>
- <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>
- <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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
deleted file mode 100644
index fa07b63..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Integer_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</EM></FONT>
-<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="43_9">Num</A></FONT> <b>is</b> <b>range</b> &lt;&gt;;
-
-<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="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#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#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>pragma</b> Inline (Put);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Integer_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
deleted file mode 100644
index e7a9085..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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> <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> <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="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#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>
- <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>
- <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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
deleted file mode 100644
index f63b9bd..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO.Modular_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.10 @</EM></FONT>
-<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="43_9">Num</A></FONT> <b>is</b> <b>mod</b> &lt;&gt;;
-
-<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="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#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#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>pragma</b> Inline (Put);
-
-<b>end</b> Terminal_Interface.Curses.Text_IO.Modular_IO;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__adb.htm
deleted file mode 100644
index 0166ab4..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__adb.htm
+++ /dev/null
@@ -1,342 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.13 @</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-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="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#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>
- <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>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>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>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>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#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>
- <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>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>
- <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>
- <FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT>
- <FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
-
- <FONT COLOR=green><EM>-- There are no set routines in this package. I assume, that you allocate</EM></FONT>
- <FONT COLOR=green><EM>-- the window with an appropriate size.</EM></FONT>
- <FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT>
- <FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT>
-
- <b>function</b> <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>
- <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>
- <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>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>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>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>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>
- <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>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>
- <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>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>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>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>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>
- <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>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>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>
- <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>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>
- <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>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>
- <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>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>
- <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>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>
- <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>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>;
-
- <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>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>
- <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>
- <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>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>
- <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>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>
- <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>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>;
-
- <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>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>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>
- <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>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>
- <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>
- <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>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>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>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>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>
- <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>
- <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>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>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>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>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>
- <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>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>;
- <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>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>
- <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>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>
- <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>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>;
- <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>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>
- <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>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>
- <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>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>
- <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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__ads.htm
deleted file mode 100644
index 07797d8..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-text_io__ads.htm
+++ /dev/null
@@ -1,142 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses-text_io.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Text_IO --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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;
-
-<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>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="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="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>
-
- <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>
-
- <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>
-
- <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>-- There are no set routines in this package. I assume, that you allocate</EM></FONT>
- <FONT COLOR=green><EM>-- the window with an appropriate size.</EM></FONT>
- <FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT>
- <FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT>
-
- <b>function</b> <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#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>
- <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#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#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#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#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#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>
-
- <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>
-
- <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#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#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=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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__adb.htm
deleted file mode 100644
index 6ff73fe..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__adb.htm
+++ /dev/null
@@ -1,60 +0,0 @@
-<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/ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__ads.htm
deleted file mode 100644
index e741efd..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses-trace__ads.htm
+++ /dev/null
@@ -1,119 +0,0 @@
-<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
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses__adb.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses__adb.htm
deleted file mode 100644
index 6d54885..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses__adb.htm
+++ /dev/null
@@ -1,2566 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses.adb</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.28 @</EM></FONT>
-<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> System;
-
-<b>with</b> <A HREF="terminal_interface__ads.htm#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> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
-<b>with</b> Ada.Strings.Fixed;
-<b>with</b> Ada.Unchecked_Conversion;
-
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#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#51_35">Aux</A>;
- <b>use</b> <b>type</b> System.Bit_Order;
-
- <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="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>
- <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#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="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);
-
- <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>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>
- <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>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>
- <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>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="120_7">Ch</A></FONT> : Character;
- <b>begin</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>
- <FONT COLOR=red><A NAME="130_16">S</A></FONT> : String (1 .. 1);
- <b>begin</b>
- <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>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>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>
- <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>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>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="156_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#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>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>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>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>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>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>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>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>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>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>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>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>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>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>
- <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>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>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>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>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>
- <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>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>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>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>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>
- (<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>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>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>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>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>;
- <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>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>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>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>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="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>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>return</b> <A HREF="terminal_interface-curses__adb.htm#377_7">W</A>;
- <b>end</b> Duplicate;
-
- <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>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>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>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>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>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>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>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>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>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>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="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>
- 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>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>
- <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>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>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="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>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>;
- <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>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>
- <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>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>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>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>
- <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>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>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>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>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>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>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>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>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="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>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>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>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>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>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>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>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>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>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>
- <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>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>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>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>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>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>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=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>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>
- <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>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>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>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>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,
- 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>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>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="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);
- <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>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>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>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>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="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);
- <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>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>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>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>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>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>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>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="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>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>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>
- <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>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>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>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>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>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>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>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>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="829_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#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>
- <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>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>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>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="848_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#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>
- <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>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>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>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="867_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#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>
- <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>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>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>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>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>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>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>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>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>begin</b>
- <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>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>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>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>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>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>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>
- <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>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>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>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>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>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="965_7">Time</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#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>;
- <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>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>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>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>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>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>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="1002_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#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>
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>begin</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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>
- <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>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>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>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>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>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>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>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>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>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>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>
- <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>
- <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>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>
- <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>
- <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>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>
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>
- <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>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>
- <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>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>
- <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>
- <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>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>
- <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>
- <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>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>
- <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>
- <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>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>
- <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>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>
- <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>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>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="1459_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#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>return</b> <A HREF="terminal_interface-curses__adb.htm#1459_7">W</A>;
- <b>end</b> New_Pad;
-
- <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>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>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>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>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>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>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>
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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="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>
- 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>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>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>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="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>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>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>;
- <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>;
- 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>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>
- <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>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>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="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>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>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>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>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>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; ' ',
- 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>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>
- <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>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>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="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>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>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>;
- <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>;
- 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>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>
- <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>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>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>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>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>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="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>
- 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>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>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>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>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>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>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>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>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>
- <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>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>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>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>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>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>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>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>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>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>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>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>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>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>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="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>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>
- <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>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>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>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="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>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>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>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="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>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>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>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="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>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>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>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>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>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>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>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>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>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="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>
- 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>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>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>
- <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>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>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>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>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>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>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>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>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>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>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>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>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2080_16">Baud</A>);
- <b>end</b> Baudrate;
-
- <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>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>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2088_16">Erasechar</A>);
- <b>end</b> Erase_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>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>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2096_16">Killchar</A>);
- <b>end</b> Kill_Character;
-
- <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>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>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>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>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>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>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>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="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>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>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>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>
- <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>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>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>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>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>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>
- <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>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>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>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>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>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>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>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>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>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>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="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>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>
- <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>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>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>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>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>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>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>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>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>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>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>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="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="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>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>
- <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>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>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="2281_7">Err</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#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>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>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>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="2299_7">Err</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#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>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>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>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>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>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>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>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>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>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>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>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>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="2347_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Int</A>;
- <b>begin</b>
- <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>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>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>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>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>
- <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>return</b> <A HREF="terminal_interface-curses__adb.htm#2368_7">Stdscr</A>;
- <b>end</b> Standard_Window;
-
- <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>
- <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>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>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>
- <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>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>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>
- <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>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2392_7">C_Tab_Size</A>);
- <b>end</b> Tab_Size;
-
- <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>
- <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>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2400_7">C_Number_Of_Colors</A>);
- <b>end</b> Number_Of_Colors;
-
- <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>
- <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>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>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>
- <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;
-<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;
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface-curses__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface-curses__ads.htm
deleted file mode 100644
index 5acab55..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface-curses__ads.htm
+++ /dev/null
@@ -1,1940 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface-curses.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
-<PRE>
-
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface.Curses --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.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>-- This module is generated. Please don't change it manually!</EM></FONT>
-<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
-<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">System</A>.Storage_Elements;
-<b>with</b> Interfaces.C; <FONT COLOR=green><EM>-- We need this for some assertions.</EM></FONT>
-
-<b>package</b> Terminal_Interface.Curses <b>is</b>
- <b>pragma</b> Preelaborate (Terminal_Interface.Curses);
- <b>pragma</b> Linker_Options ("-lncurses");
-
- <FONT COLOR=red><A NAME="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;
-
- <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;
- <FONT COLOR=green><EM>-- Type to count lines. We do not allow null windows, so must be positive</EM></FONT>
- <b>subtype</b> Column_Count <b>is</b> Column_Position <b>range</b> 1 .. Column_Position'Last;
- <FONT COLOR=green><EM>-- Type to count columns. We do not allow null windows, so must be positive</EM></FONT>
-
- <b>type</b> Key_Code <b>is</b> <b>new</b> Natural;
- <FONT COLOR=green><EM>-- That is anything including real characters, special keys and logical</EM></FONT>
- <FONT COLOR=green><EM>-- request codes.</EM></FONT>
-
- <b>subtype</b> Real_Key_Code <b>is</b> Key_Code <b>range</b> 0 .. 8#777#;
- <FONT COLOR=green><EM>-- This are the codes that potentially represent a real keystroke.</EM></FONT>
- <FONT COLOR=green><EM>-- Not all codes may be possible on a specific terminal. To check the</EM></FONT>
- <FONT COLOR=green><EM>-- availability of a special key, the Has_Key function is provided.</EM></FONT>
-
- <b>subtype</b> Special_Key_Code <b>is</b> Real_Key_Code
- <b>range</b> 8#400# .. Real_Key_Code'Last;
- <FONT COLOR=green><EM>-- Type for a function- or special key number</EM></FONT>
-
- <b>subtype</b> Normal_Key_Code <b>is</b> Real_Key_Code <b>range</b>
- Character'Pos (Character'First) .. Character'Pos (Character'Last);
- <FONT COLOR=green><EM>-- This are the codes for regular (incl. non-graphical) characters.</EM></FONT>
-
- <FONT COLOR=green><EM>-- Constants for function- and special keys</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <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
- := Special_Key_Code'Last;
-
- <b>subtype</b> User_Key_Code <b>is</b> Key_Code
- <b>range</b> (Key_Max + 129) .. Key_Code'Last;
- <FONT COLOR=green><EM>-- This is reserved for user defined key codes. The range between Key_Max</EM></FONT>
- <FONT COLOR=green><EM>-- and the first user code is reserved for subsystems like menu and forms.</EM></FONT>
-
- <FONT COLOR=green><EM>-- For those who like to use the original key names we produce them were</EM></FONT>
- <FONT COLOR=green><EM>-- they differ from the original. Please note that they may differ in</EM></FONT>
- <FONT COLOR=green><EM>-- lower/upper case.</EM></FONT>
- <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>
-
- <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>
-
- <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>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>
- <FONT COLOR=green><EM>-- is fixed (Black & White). A color pair is simply a combination of</EM></FONT>
- <FONT COLOR=green><EM>-- two colors described by Color_Numbers, one for the foreground and</EM></FONT>
- <FONT COLOR=green><EM>-- the other for the background</EM></FONT>
-
- <b>type</b> Character_Attribute_Set <b>is</b>
- <b>record</b>
- <FONT COLOR=red><A NAME="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;
- <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>for</b> Character_Attribute_Set <b>use</b>
- <b>record</b>
- Stand_Out <b>at</b> 0 <b>range</b> 0 .. 0;
- Under_Line <b>at</b> 0 <b>range</b> 1 .. 1;
- Reverse_Video <b>at</b> 0 <b>range</b> 2 .. 2;
- Blink <b>at</b> 0 <b>range</b> 3 .. 3;
- Dim_Character <b>at</b> 0 <b>range</b> 4 .. 4;
- Bold_Character <b>at</b> 0 <b>range</b> 5 .. 5;
- Alternate_Character_Set <b>at</b> 0 <b>range</b> 6 .. 6;
- Invisible_Character <b>at</b> 0 <b>range</b> 7 .. 7;
- Protected_Character <b>at</b> 0 <b>range</b> 8 .. 8;
- Horizontal <b>at</b> 0 <b>range</b> 9 .. 9;
- Left <b>at</b> 0 <b>range</b> 10 .. 10;
- Low <b>at</b> 0 <b>range</b> 11 .. 11;
- Right <b>at</b> 0 <b>range</b> 12 .. 12;
- Top <b>at</b> 0 <b>range</b> 13 .. 13;
- Vertical <b>at</b> 0 <b>range</b> 14 .. 14;
- <b>end</b> <b>record</b>;
- <b>for</b> Character_Attribute_Set'Size <b>use</b> 16;
- <FONT COLOR=green><EM>-- Please note: this rep. clause is generated and may be</EM></FONT>
- <FONT COLOR=green><EM>-- different on your system.</EM></FONT>
- <FONT COLOR=green><EM>-- (n)curses uses all but the lowest 16 Bits for Attributes.</EM></FONT>
-
- Normal_Video : <b>constant</b> Character_Attribute_Set := (<b>others</b> =&gt; False);
-
- <b>type</b> Attributed_Character <b>is</b>
- <b>record</b>
- <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);
- <FONT COLOR=green><EM>-- This is the counterpart for the chtype in C.</EM></FONT>
-
- <b>for</b> Attributed_Character <b>use</b>
- <b>record</b>
- Ch <b>at</b> 0 <b>range</b> 0 .. 7;
- Color <b>at</b> 0 <b>range</b> 8 .. 15;
- Attr <b>at</b> 0 <b>range</b> 16 .. 31;
- <b>end</b> <b>record</b>;
- <b>for</b> Attributed_Character'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>
-
- Default_Character : <b>constant</b> Attributed_Character
- := (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>
-
- <b>type</b> Attributed_String <b>is</b> <b>array</b> (Positive <b>range</b> &lt;&gt;) <b>of</b> Attributed_Character;
- <b>pragma</b> Pack (Attributed_String);
- <FONT COLOR=green><EM>-- In this binding we allow strings of attributed characters.</EM></FONT>
-
- <FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
- <FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=red><A NAME="384_4">Curses_Exception</A></FONT> : <b>exception</b>;
- Wrong_Curses_Version : <b>exception</b>;
-
- <FONT COLOR=green><EM>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></FONT>
- <FONT COLOR=green><EM>-- subpackets for Menu and Forms handling.</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=red><A NAME="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>
- <FONT COLOR=green><EM>-- External C variables</EM></FONT>
- <FONT COLOR=green><EM>-- Conceptually even in C this are kind of constants, but they are</EM></FONT>
- <FONT COLOR=green><EM>-- initialized and sometimes changed by the library routines at runtime</EM></FONT>
- <FONT COLOR=green><EM>-- depending on the type of terminal. I believe the best way to model</EM></FONT>
- <FONT COLOR=green><EM>-- this is to use functions.</EM></FONT>
- <FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
-
- <b>function</b> 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 (Columns);
-
- <b>function</b> Tab_Size <b>return</b> Natural;
- <b>pragma</b> Inline (Tab_Size);
-
- <b>function</b> Number_Of_Colors <b>return</b> Natural;
- <b>pragma</b> Inline (Number_Of_Colors);
-
- <b>function</b> Number_Of_Color_Pairs <b>return</b> Natural;
- <b>pragma</b> Inline (Number_Of_Color_Pairs);
-
- ACS_Map : <b>array</b> (Character'Val (0) .. Character'Val (127)) <b>of</b>
- Attributed_Character;
- <b>pragma</b> Import (C, ACS_Map, "acs_map");
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- Constants for several characters from the Alternate Character Set</EM></FONT>
- <FONT COLOR=green><EM>-- You must use 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="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>
- <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>-- AKA: <A HREF="../man/curs_initscr.3x.html">stdscr</A></EM></FONT>
- <b>pragma</b> Inline (Standard_Window);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>procedure</b> Init_Screen;
-
- <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#483_14">Init_Screen</A>);
- <b>pragma</b> Inline (Init_Windows);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>procedure</b> End_Windows;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></FONT>
- <b>procedure</b> End_Screen <b>renames</b> End_Windows;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#491_14">End_Windows</A>);
- <b>pragma</b> Inline (End_Screen);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>function</b> Is_End_Window <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">isendwin()</A></EM></FONT>
- <b>pragma</b> Inline (Is_End_Window);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_move.3x.html">curs_move.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <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>
- <FONT COLOR=green><EM>-- AKA: move()</EM></FONT>
- <b>pragma</b> Inline (Move_Cursor);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addch.3x.html">curs_addch.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
- <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>
- <FONT COLOR=green><EM>-- AKA: addch()</EM></FONT>
-
- <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
- (<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>
- <FONT COLOR=green><EM>-- AKA: mvaddch()</EM></FONT>
-
- <b>procedure</b> Add
- (<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
- (<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>
- <FONT COLOR=green><EM>-- AKA: echochar()</EM></FONT>
-
- <b>procedure</b> Add_With_Immediate_Echo
- (<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);
-
- <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=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;
- <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=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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
- <b>procedure</b> Delete (Win : <b>in</b> <b>out</b> Window);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">delwin()</A></EM></FONT>
- <FONT COLOR=green><EM>-- Reset Win to Null_Window</EM></FONT>
- <b>pragma</b> Inline (Delete);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
- <b>function</b> Sub_Window
- (<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
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
- <b>function</b> Duplicate (Win : Window) <b>return</b> Window;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">dupwin()</A></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="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>
- <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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
- <b>procedure</b> Synchronize_Upwards (Win : <b>in</b> Window);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncup()</A></EM></FONT>
- <b>pragma</b> Import (C, Synchronize_Upwards, "wsyncup");
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
- <b>procedure</b> Synchronize_Downwards (Win : <b>in</b> Window);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">wsyncdown()</A></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="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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_addstr.3x.html">curs_addstr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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>
- <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=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>
- <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
- (<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
- (<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>
- <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
- (<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>
- <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>
- <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>-- 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>-- returned keycode is Key_None.</EM></FONT>
- <b>pragma</b> Inline (Get_Keystroke);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
- <b>procedure</b> Undo_Keystroke (Key : <b>in</b> Real_Key_Code);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">ungetch()</A></EM></FONT>
- <b>pragma</b> Inline (Undo_Keystroke);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
- <b>function</b> Has_Key (Key : Special_Key_Code) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getch.3x.html">has_key()</A></EM></FONT>
- <b>pragma</b> Inline (Has_Key);
-
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=green><EM>-- | Some helper functions</EM></FONT>
- <FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> Is_Function_Key (Key : Special_Key_Code) <b>return</b> Boolean;
- <FONT COLOR=green><EM>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</EM></FONT>
- <b>pragma</b> Inline (Is_Function_Key);
-
- <b>subtype</b> Function_Key_Number <b>is</b> Integer <b>range</b> 0 .. 63;
- <FONT COLOR=green><EM>-- (n)curses allows for 64 function keys.</EM></FONT>
-
- <b>function</b> Function_Key (Key : Real_Key_Code) <b>return</b> Function_Key_Number;
- <FONT COLOR=green><EM>-- Return the number of the function key. If the code is not a</EM></FONT>
- <FONT COLOR=green><EM>-- function key, a CONSTRAINT_ERROR will be raised.</EM></FONT>
- <b>pragma</b> Inline (Function_Key);
-
- <b>function</b> Function_Key_Code (Key : Function_Key_Number) <b>return</b> Real_Key_Code;
- <FONT COLOR=green><EM>-- Return the key code for a given function-key number.</EM></FONT>
- <b>pragma</b> Inline (Function_Key_Code);
-
- <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>
- <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
- (<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>
- <FONT COLOR=green><EM>-- Switches those Attributes set to true in the list.</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: wattroff()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: attron()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: attroff()</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT>
- <b>procedure</b> Set_Character_Attributes
- (<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>
- <FONT COLOR=green><EM>-- AKA: attrset()</EM></FONT>
- <b>pragma</b> Inline (Set_Character_Attributes);
-
- <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>
- <FONT COLOR=green><EM>-- AKA: attr_get()</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);
-
- <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>
- <FONT COLOR=green><EM>-- AKA: color_set()</EM></FONT>
- <b>pragma</b> Inline (Set_Color);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT>
- <b>procedure</b> Change_Attributes
- (<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>
- <FONT COLOR=green><EM>-- AKA: chgat()</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT>
- <b>procedure</b> Change_Attributes
- (<FONT COLOR=red><A NAME="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>
- <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>
-
- <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);
-
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inopts.3x.html">curs_inopts.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- | Not implemented : typeahead</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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);
-
- <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);
-
- <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);
-
- <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);
-
- <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);
-
- <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;
-
- <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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
- <b>procedure</b> Set_Flush_On_Interrupt_Mode
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
- <b>procedure</b> Set_Queue_Interrupt_Mode
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT>
- <b>procedure</b> Set_NoDelay_Mode
- (<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);
-
- <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>
- <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>-- #1A NAME="AFU_51"#2|</EM></FONT>
- <b>procedure</b> Set_Escape_Timer_Mode
- (<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);
-
- <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_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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
- <b>procedure</b> Clear_On_Next_Update
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
- <b>procedure</b> Use_Insert_Delete_Line
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
- <b>procedure</b> Use_Insert_Delete_Character
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
- <b>procedure</b> Leave_Cursor_After_Update
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT>
- <b>procedure</b> Immediate_Update_Mode
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT>
- <b>procedure</b> Allow_Scrolling
- (<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);
-
- <b>function</b> Scrolling_Allowed (Win : Window := Standard_Window) <b>return</b> Boolean;
- <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_59"#2|</EM></FONT>
- <b>procedure</b> Set_Scroll_Region
- (<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>
- <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>
-
- <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);
-
- <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>
- <FONT COLOR=green><EM>-- AKA: refresh()</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>
-
- <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>
-
- <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);
-
- <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_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>
- <FONT COLOR=green><EM>-- AKA: erase()</EM></FONT>
- <b>pragma</b> Inline (Erase);
-
- <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>
- <FONT COLOR=green><EM>-- AKA: clear()</EM></FONT>
- <b>pragma</b> Inline (Clear);
-
- <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>
- <FONT COLOR=green><EM>-- AKA: clrtobot()</EM></FONT>
- <b>pragma</b> Inline (Clear_To_End_Of_Screen);
-
- <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>
- <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>
-
- <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
- (<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>
- <FONT COLOR=green><EM>-- AKA: bkgdset()</EM></FONT>
- <b>pragma</b> Inline (Set_Background);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_70"#2|</EM></FONT>
- <b>procedure</b> Change_Background
- (<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>
- <FONT COLOR=green><EM>-- AKA: bkgd()</EM></FONT>
- <b>pragma</b> Inline (Change_Background);
-
- <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>
- <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>
-
- <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);
-
- <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>
-
- <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);
-
- <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);
-
- <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>
-
- <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);
-
- <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_78"#2|</EM></FONT>
- <b>procedure</b> Copy
- (<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);
-
- <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);
-
- <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);
-
- <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_81"#2|</EM></FONT>
- <b>procedure</b> Insert_Delete_Lines
- (<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>
- <FONT COLOR=green><EM>-- AKA: insdelln()</EM></FONT>
- <b>pragma</b> Inline (Insert_Delete_Lines);
-
- <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>
- <FONT COLOR=green><EM>-- AKA: deleteln()</EM></FONT>
- <b>pragma</b> Inline (Delete_Line);
-
- <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>
- <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>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_84"#2|</EM></FONT>
- <b>procedure</b> Get_Size
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_85"#2|</EM></FONT>
- <b>procedure</b> Get_Window_Position
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_86"#2|</EM></FONT>
- <b>procedure</b> Get_Cursor_Position
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_87"#2|</EM></FONT>
- <b>procedure</b> Get_Origin_Relative_To_Parent
- (<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>
- <FONT COLOR=green><EM>-- to return the info that the window has no parent.</EM></FONT>
- <b>pragma</b> Inline (Get_Origin_Relative_To_Parent);
-
- <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_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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_89"#2|</EM></FONT>
- <b>function</b> Sub_Pad
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_90"#2|</EM></FONT>
- <b>procedure</b> Refresh
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_91"#2|</EM></FONT>
- <b>procedure</b> Refresh_Without_Update
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_92"#2|</EM></FONT>
- <b>procedure</b> Add_Character_To_Pad_And_Echo_It
- (<FONT COLOR=red><A NAME="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
- (<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);
-
- <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_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>
- <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>
-
- <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>
- <FONT COLOR=green><EM>-- AKA: delch()</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_95"#2|</EM></FONT>
- <b>procedure</b> Delete_Character
- (<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>
- <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>
-
- <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;
- <FONT COLOR=green><EM>-- AKA: inch()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_97"#2|</EM></FONT>
- <b>function</b> Peek
- (<FONT COLOR=red><A NAME="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>
- <FONT COLOR=green><EM>-- AKA: mvinch()</EM></FONT>
- <FONT COLOR=green><EM>-- More Peek's follow, pragma Inline appears later.</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_insch.3x.html">curs_insch.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: insch()</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_99"#2|</EM></FONT>
- <b>procedure</b> Insert (<FONT COLOR=red><A NAME="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);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvinsch()</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_insstr.3x.html">curs_insstr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: winsstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: insnstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: insstr()</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvwinsstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvinsnstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvinsstr()</EM></FONT>
- <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_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>
- <FONT COLOR=green><EM>-- AKA: innstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: instr()</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_103"#2|</EM></FONT>
- <b>procedure</b> Peek (<FONT COLOR=red><A NAME="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>
- <FONT COLOR=green><EM>-- AKA: mvinnstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvinstr()</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_inchstr.3x.html">curs_inchstr.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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>
- <FONT COLOR=green><EM>-- AKA: inchnstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: inchstr()</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_105"#2|</EM></FONT>
- <b>procedure</b> Peek (<FONT COLOR=red><A NAME="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>
- <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>-- #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>
- <FONT COLOR=green><EM>-- AKA: getnstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: getstr()</EM></FONT>
- <FONT COLOR=green><EM>-- actually getstr is not supported because that results in buffer</EM></FONT>
- <FONT COLOR=green><EM>-- overflows.</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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);
- <FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvwgetstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvgetnstr()</EM></FONT>
- <FONT COLOR=green><EM>-- AKA: mvgetstr()</EM></FONT>
- <FONT COLOR=green><EM>-- Get is not inlined</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_slk.3x.html">curs_slk.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></FONT>
-
- <b>type</b> 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);
-
- <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);
-
- <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>
-
- <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);
-
- <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);
-
- <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>
-
- <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);
-
- <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);
-
- <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);
-
- <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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_117"#2|</EM></FONT>
- <b>procedure</b> Switch_Soft_Label_Key_Attributes
- (<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);
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_118"#2|</EM></FONT>
- <b>procedure</b> Set_Soft_Label_Key_Attributes
- (<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);
-
- <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>
-
- <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);
-
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/keybound.3x.html">keybound.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- Not Implemented: keybound</EM></FONT>
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/keyok.3x.html">keyok.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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);
-
- <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_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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_util.3x.html">curs_util.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- | Not implemented : filter, use_env</EM></FONT>
- <FONT COLOR=green><EM>-- | putwin, getwin are in the child package PutWin</EM></FONT>
- <FONT COLOR=green><EM>--</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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>
-
- <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>
-
- <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>
-
- <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);
-
- <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);
-
- <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);
-
- <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_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);
-
- <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);
-
- <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);
-
- <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);
-
- <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);
-
- <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);
-
- <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>
-
- <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);
-
- <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>
-
- <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>pragma</b> Inline (Terminal_Name);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Man page <A HREF="../man/curs_color.3x.html">curs_color.3x</A></EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
-
- <FONT COLOR=green><EM>-- COLOR_PAIR</EM></FONT>
- <FONT COLOR=green><EM>-- COLOR_PAIR(n) in C is the same as</EM></FONT>
- <FONT COLOR=green><EM>-- Attributed_Character(Ch =&gt; Nul, Color =&gt; n, Attr =&gt; Normal_Video)</EM></FONT>
- <FONT COLOR=green><EM>-- In C you often see something like c = c | COLOR_PAIR(n);</EM></FONT>
- <FONT COLOR=green><EM>-- This is equivalent to c.Color := n;</EM></FONT>
-
- <FONT COLOR=green><EM>-- #1A NAME="AFU_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");
-
- <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);
-
- <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);
-
- <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);
-
- <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);
-
- <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);
-
- <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);
-
- <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>-- #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);
-
- <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);
-
- <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);
-
- <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>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>
-
- <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>
- <FONT COLOR=green><EM>-- ripoffline(), in which the Lines argument absolute value is the</EM></FONT>
- <FONT COLOR=green><EM>-- number of lines to be ripped of. The official ripoffline() only</EM></FONT>
- <FONT COLOR=green><EM>-- uses the sign of Lines to rip of a single line from bottom or top.</EM></FONT>
- <b>pragma</b> Inline (Rip_Off_Lines);
-
- <b>type</b> Cursor_Visibility <b>is</b> (Invisible, Normal, Very_Visible);
-
- <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);
-
- <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);
-
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <FONT COLOR=green><EM>-- | Some useful helpers.</EM></FONT>
- <FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <b>type</b> Transform_Direction <b>is</b> (From_Screen, To_Screen);
- <b>procedure</b> Transform_Coordinates
- (<FONT COLOR=red><A NAME="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>
- <FONT COLOR=green><EM>-- Screen coordinates are the position informations on the physical device.</EM></FONT>
- <FONT COLOR=green><EM>-- An Curses_Exception will be raised if Line and Column are not in the</EM></FONT>
- <FONT COLOR=green><EM>-- Window or if you pass the Null_Window as argument.</EM></FONT>
- <FONT COLOR=green><EM>-- We 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;
-
- <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="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;
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/ada/terminal_interface__ads.htm b/ncurses-5.3/doc/html/ada/terminal_interface__ads.htm
deleted file mode 100644
index 5072021..0000000
--- a/ncurses-5.3/doc/html/ada/terminal_interface__ads.htm
+++ /dev/null
@@ -1,54 +0,0 @@
-<HTML><HEAD><TITLE>terminal_interface.ads</TITLE></HEAD>
-<BODY>
-<HR><DIV ALIGN="center"><H1> File : terminal_interface.ads </H1></DIV><HR>
-<PRE>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- Terminal_Interface --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
-<FONT COLOR=green><EM>-- --</EM></FONT>
-<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 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.11 @</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="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>
-<b>end</b> Terminal_Interface;
-
-
-</PRE></BODY></HTML> \ No newline at end of file
diff --git a/ncurses-5.3/doc/html/announce.html b/ncurses-5.3/doc/html/announce.html
deleted file mode 100644
index d352303..0000000
--- a/ncurses-5.3/doc/html/announce.html
+++ /dev/null
@@ -1,436 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>Announcing ncurses 5.3 Pre-Release</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-</HEAD>
-<BODY>
-
-<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,
-supports pads and color
-and multiple highlights and forms characters and function-key mapping,
-and has all the other SYSV-curses enhancements over BSD curses.<P>
-
-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.<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),
-and a termcap conversion tool captoinfo(1). Full manual pages are provided for
-the library and tools.<P>
-
-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
-<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
-
-<H1>Release Notes</H1>
-
-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.
-<p>
-Interface changes:
-<ul>
- <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>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>add environment variable <code>$NCURSES_ASSUMED_COLORS</code> to
- modify the <code>assume_default_colors()</code> extension.
-
-</ul>
-New features and improvements:
-<ul>
- <li>Improved support for termcap applications:
- <ul>
- <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>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 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>add tic -A option to suppress capabilities which are commented out
- when translating to termcap.
-
- <li>modify logic in lib_baudrate.c for ospeed, for FreeBSD to make it
- work properly for termcap applications (patch by Andrey A Chernov).
-
- </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>
- <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 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>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>modified wresize() to ensure that a failed realloc will not corrupt
- the window structure, and to make subwindows fit within the resized
- window.
-
- <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/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>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>add a check in relative_move() to guard against buffer overflow in
- the overwrite logic.
-
- <li>add some limit/pointer checks to -S option of tputs.
-
- <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>
- <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>correct a typo in configure --enable-colorfgbg option, and move it
- to the experimental section (cf: 20011208).
-
- <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 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 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 several configure script options to aid with cross-compiling:
- --with-build-cc, --with-build-cflags, --with-build-ldflags, and
- --with-build-libs.
-
- <li>add experimental --with-caps=XXX option to customize to similar
- terminfo database formats such as AIX 4.x
-
- <li>add configure option --with-ospeed to assist packagers in transition
- to 5.3 change to ospeed type.
- </ul>
-
- <li>library:
- <ul>
- <li>implement a simple vsscanf() fallback function which uses the %n
- conversion to help parse the input data.
-
- <li>various fixes to build/work with different implementations of
- vsscanf().
-
- <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>finish changes needed to build dll's on cygwin.
-
- <li>add #undef's before possible redefinition of ERR and OK in curses.h
- </ul>
-
- <li>programs:
- <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>
-
-The ncurses package is fully compatible with SVr4 (System V Release 4) curses:
-
-<UL>
-<LI>All 257 of the SVr4 calls have been implemented (and are documented).
-<LI>Full support for SVr4 curses features including keyboard mapping, color,
-forms-drawing with ACS characters, and automatic recognition of keypad
-and function keys.
-<LI>An emulation of the SVr4 panels library, supporting
-a stack of windows with backing store, is included.
-<LI>An emulation of the SVr4 menus library, supporting
-a uniform but flexible interface for menu programming, is included.
-<LI>An emulation of the SVr4 form library, supporting
-data collection through on-screen forms, is included.
-<LI>Binary terminfo entries generated by the ncurses tic(1) implementation
-are bit-for-bit-compatible with the entry format SVr4 curses uses.
-<LI>The utilities have options to allow you to filter terminfo
-entries for use with less capable <STRONG>curses</STRONG>/<STRONG>terminfo</STRONG>
-versions such as the HP/UX and AIX ports.</UL>
-
-The ncurses package also has many useful extensions over SVr4:
-
-<UL>
-<LI>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 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).
-<LI>Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner
-of the screen if your terminal has an insert-character capability.
-<LI>Ada95 and C++ bindings.
-<LI>Support for mouse event reporting with X Window xterm and OS/2 console windows.
-<LI>Extended mouse support via Alessandro Rubini's gpm package.
-<LI>The function <CODE>wresize()</CODE> allows you to resize windows, preserving
-their data.
-<LI>The function <CODE>use_default_colors()</CODE> allows you to
-use the terminal's default colors for the default color pair,
-achieving the effect of transparent colors.
-<LI>The functions <CODE>keyok()</CODE>
-and <CODE>define_key()</CODE> 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 key code.
-<LI>Support for 16-color terminals, such as aixterm and XFree86 xterm.
-<LI>Better cursor-movement optimization. The package now features a
-cursor-local-movement computation more efficient than either BSD's
-or System V's.
-<LI>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.
-<LI>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.
-<LI>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).
-<LI>The tic(1)/captoinfo utility provided with ncurses has the
-ability to translate many termcaps from the XENIX, IBM and
-AT&amp;T extension sets.
-<LI>A BSD-like tset(1) utility is provided.
-<LI>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 terminfo directory.
-<LI>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.)
-<LI>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
-compiled entries in either the system terminfo directory or the user's
-$HOME/.terminfo directory.
-<LI>A script (<STRONG>capconvert</STRONG>) 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.
-<LI>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.
-<LI>The table-of-entries utility <STRONG>toe</STRONG> makes it easy for users to
-see exactly what terminal types are available on the system.
-<LI>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
-<CODE>#undef</CODE>.
-<LI>An HTML "Introduction to Programming with NCURSES" document provides
-a narrative introduction to the curses programming interface.
-</UL>
-
-<H1>State of the Package</H1>
-
-Numerous bugs present in earlier versions have been fixed; the
-library is far more reliable than it used to be. Bounds checking in many
-`dangerous' entry points has been improved. The code is now type-safe
-according to gcc -Wall. The library has been checked for malloc leaks and
-arena corruption by the Purify memory-allocation tester.<P>
-
-The ncurses code has been tested with a wide variety of applications
-including (versions starting with those noted):
-<DL>
-<DT> cdk
-<DD> Curses Development Kit
-<br>
-<A HREF="http://invisible-island.net/cdk/cdk.html">http://invisible-island.net/cdk</A>.
-<br>
-<A HREF="http://www.vexus.ca/CDK.html">http://www.vexus.ca/CDK.html</a>
-<DT> ded
-<DD> directory-editor
-<br>
-<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>
-<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> Midnight Commander
-<DD> file manager
-<br>
-<A HREF="www.gnome.org/mc/">www.gnome.org/mc/</A>.
-<DT> mutt
-<DD> mail utility
-<br>
-<A HREF="http://www.mutt.org">http://www.mutt.org</A>.
-<DT> ncftp
-<DD> file-transfer utility
-<br>
-<A HREF="http://www.ncftp.com">http://www.ncftp.com</A>.
-<DT> nvi
-<DD> New vi versions 1.50 are able to use ncurses versions 1.9.7 and later.
-<br>
-<A HREF="http://www.bostic.com/vi/">http://www.bostic.com/vi/</A>.
-<DT> tin
-<DD> newsreader, supporting color, MIME
-<br>
-<A HREF="http://www.tin.org">http://www.tin.org</A>.
-<DT> taper
-<DD> tape archive utility
-<br>
-<A HREF="http://members.iinet.net.au/~yusuf/taper/">http://members.iinet.net.au/~yusuf/taper/</A>.
-<DT> vh-1.6
-<DD> Volks-Hypertext browser for the Jargon File
-<br>
-<A HREF="http://www.bg.debian.org/Packages/unstable/text/vh.html">http://www.bg.debian.org/Packages/unstable/text/vh.html</A>.
-</DL>
-as well as some that use ncurses for the terminfo support alone:
-<DL>
-<DT> minicom
-<DD> terminal emulator
-<br>
-<A HREF="http://www.pp.clinet.fi/~walker/minicom.html">http://www.pp.clinet.fi/~walker/minicom.html</A>.
-<DT> vile
-<DD> vi-like-emacs
-<br>
-<A HREF="http://invisible-island.net/vile/vile.html">http://invisible-island.net/vile</A>.
-</DL>
-<P>
-
-The ncurses distribution includes a selection of test programs (including
-a few games).
-
-<H2>Who's Who and What's What</H2>
-
-The original developers of ncurses are <A
-HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A> and
-<A HREF="http://www.ccil.org/~esr/home.html">Eric S. Raymond</A>.
-Ongoing work is being done by
-<A HREF="mailto:dickey@herndon4.his.com">Thomas Dickey</A>
-and
-<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.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-To join the ncurses mailing list, please write email to
-<CODE>bug-ncurses-request@gnu.org</CODE> containing the line:
-<PRE>
- subscribe &lt;name&gt;@&lt;host.domain&gt;
-</PRE>
-
-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
-<A HREF="ftp://invisible-island.net/ncurses">ftp://invisible-island.net/ncurses</A>.
-
-<H2>Future Plans</H2>
-<UL>
-<LI>Extended-level XPG4 conformance, with internationalization support.
-<LI>Ports to more systems, including DOS and Windows.
-</UL>
-We need people to help with these projects. If you are interested in working
-on them, please join the ncurses list.
-
-<H2>Other Related Resources</H2>
-
-The distribution includes and uses a version of the terminfo-format
-terminal description file maintained by Eric Raymond.
-<A HREF="http://earthspace.net/~esr/terminfo">http://earthspace.net/~esr/terminfo</A>.<P>
-
-You can find lots of information on terminal-related topics
-not covered in the terminfo file at
-<A HREF="http://www.cs.utk.edu/~shuford/terminal_index.html">Richard Shuford's
-archive</A>.
-</BODY>
-</HTML>
-<!--
-# The following sets edit modes for GNU EMACS
-# Local Variables:
-# mode:html
-# case-fold-search:nil
-# fill-column:70
-# End:
--->
diff --git a/ncurses-5.3/doc/html/hackguide.html b/ncurses-5.3/doc/html/hackguide.html
deleted file mode 100644
index 5def06f..0000000
--- a/ncurses-5.3/doc/html/hackguide.html
+++ /dev/null
@@ -1,890 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>A Hacker's Guide to Ncurses Internals</TITLE>
-<link rev="made" href="mailto:bugs-ncurses@gnu.org">
-<!--
-This document is self-contained, *except* that there is one relative link to
-the ncurses-intro.html document, expected to be in the same directory with
-this one.
--->
-</HEAD>
-<BODY>
-
-<H1>A Hacker's Guide to NCURSES</H1>
-
-<H1>Contents</H1>
-<UL>
-<LI><A HREF="#abstract">Abstract</A>
-<LI><A HREF="#objective">Objective of the Package</A>
-<UL>
-<LI><A HREF="#whysvr4">Why System V Curses?</A>
-<LI><A HREF="#extensions">How to Design Extensions</A>
-</UL>
-<LI><A HREF="#portability">Portability and Configuration</A>
-<LI><A HREF="#documentation">Documentation Conventions</A>
-<LI><A HREF="#bugtrack">How to Report Bugs</A>
-<LI><A HREF="#ncurslib">A Tour of the Ncurses Library</A>
-<UL>
-<LI><A HREF="#loverview">Library Overview</A>
-<LI><A HREF="#engine">The Engine Room</A>
-<LI><A HREF="#input">Keyboard Input</A>
-<LI><A HREF="#mouse">Mouse Events</A>
-<LI><A HREF="#output">Output and Screen Updating</A>
-</UL>
-<LI><A HREF="#fmnote">The Forms and Menu Libraries</A>
-<LI><A HREF="#tic">A Tour of the Terminfo Compiler</A>
-<UL>
-<LI><A HREF="#nonuse">Translation of Non-<STRONG>use</STRONG> Capabilities</A>
-<LI><A HREF="#uses">Use Capability Resolution</A>
-<LI><A HREF="#translation">Source-Form Translation</A>
-</UL>
-<LI><A HREF="#utils">Other Utilities</A>
-<LI><A HREF="#style">Style Tips for Developers</A>
-<LI><A HREF="#port">Porting Hints</A>
-</UL>
-
-<H1><A NAME="abstract">Abstract</A></H1>
-
-This document is a hacker's tour of the <STRONG>ncurses</STRONG> library and utilities.
-It discusses design philosophy, implementation methods, and the
-conventions used for coding and documentation. It is recommended
-reading for anyone who is interested in porting, extending or improving the
-package.
-
-<H1><A NAME="objective">Objective of the Package</A></H1>
-
-The objective of the <STRONG>ncurses</STRONG> package is to provide a free software API for
-character-cell terminals and terminal emulators with the following
-characteristics:
-
-<UL>
-<LI>Source-compatible with historical curses implementations (including
- the original BSD curses and System V curses.
-<LI>Conformant with the XSI Curses standard issued as part of XPG4 by
- X/Open.
-<LI>High-quality -- stable and reliable code, wide portability, good
- packaging, superior documentation.
-<LI>Featureful -- should eliminate as much of the drudgery of C interface
- programming as possible, freeing programmers to think at a higher
- level of design.
-</UL>
-
-These objectives are in priority order. So, for example, source
-compatibility with older version must trump featurefulness -- we cannot
-add features if it means breaking the portion of the API corresponding
-to historical curses versions.
-
-<H2><A NAME="whysvr4">Why System V Curses?</A></H2>
-
-We used System V curses as a model, reverse-engineering their API, in
-order to fulfill the first two objectives. <P>
-
-System V curses implementations can support BSD curses programs with
-just a recompilation, so by capturing the System V API we also
-capture BSD's. <P>
-
-More importantly for the future, the XSI Curses standard issued by X/Open
-is explicitly and closely modeled on System V. So conformance with
-System V took us most of the way to base-level XSI conformance.
-
-<H2><A NAME="extensions">How to Design Extensions</A></H2>
-
-The third objective (standards conformance) requires that it be easy to
-condition source code using <STRONG>ncurses</STRONG> so that the absence of nonstandard
-extensions does not break the code. <P>
-
-Accordingly, we have a policy of associating with each nonstandard extension
-a feature macro, so that ncurses client code can use this macro to condition
-in or out the code that requires the <STRONG>ncurses</STRONG> extension. <P>
-
-For example, there is a macro <CODE>NCURSES_MOUSE_VERSION</CODE> which XSI Curses
-does not define, but which is defined in the <STRONG>ncurses</STRONG> library header.
-You can use this to condition the calls to the mouse API calls.
-
-<H1><A NAME="portability">Portability and Configuration</A></H1>
-
-Code written for <STRONG>ncurses</STRONG> may assume an ANSI-standard C compiler and
-POSIX-compatible OS interface. It may also assume the presence of a
-System-V-compatible <EM>select(2)</EM> call. <P>
-
-We encourage (but do not require) developers to make the code friendly
-to less-capable UNIX environments wherever possible. <P>
-
-We encourage developers to support OS-specific optimizations and methods
-not available under POSIX/ANSI, provided only that:
-
-<UL>
-<LI>All such code is properly conditioned so the build process does not
- attempt to compile it under a plain ANSI/POSIX environment.
-<LI>Adding such implementation methods does not introduce incompatibilities
- in the <STRONG>ncurses</STRONG> API between platforms.
-</UL>
-
-We use GNU <CODE>autoconf(1)</CODE> as a tool to deal with portability issues.
-The right way to leverage an OS-specific feature is to modify the autoconf
-specification files (configure.in and aclocal.m4) to set up a new feature
-macro, which you then use to condition your code.
-
-<H1><A NAME="documentation">Documentation Conventions</A></H1>
-
-There are three kinds of documentation associated with this package. Each
-has a different preferred format:
-
-<UL>
-<LI>Package-internal files (README, INSTALL, TO-DO etc.)
-<LI>Manual pages.
-<LI>Everything else (i.e., narrative documentation).
-</UL>
-
-Our conventions are simple:
-<OL>
-<LI><STRONG>Maintain package-internal files in plain text.</STRONG>
- The expected viewer for them <EM>more(1)</EM> or an editor window; there's
- no point in elaborate mark-up.
-
-<LI><STRONG>Mark up manual pages in the man macros.</STRONG> These have to be viewable
- through traditional <EM>man(1)</EM> programs.
-
-<LI><STRONG>Write everything else in HTML.</STRONG>
-</OL>
-
-When in doubt, HTMLize a master and use <EM>lynx(1)</EM> to generate
-plain ASCII (as we do for the announcement document). <P>
-
-The reason for choosing HTML is that it's (a) well-adapted for on-line
-browsing through viewers that are everywhere; (b) more easily readable
-as plain text than most other mark-ups, if you don't have a viewer; and (c)
-carries enough information that you can generate a nice-looking printed
-version from it. Also, of course, it make exporting things like the
-announcement document to WWW pretty trivial.
-
-<H1><A NAME="bugtrack">How to Report Bugs</A></H1>
-
-The <A NAME="bugreport">reporting address for bugs</A> is
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-This is a majordomo list; to join, write
-to <CODE>bug-ncurses-request@gnu.org</CODE> with a message containing the line:
-<PRE>
- subscribe &lt;name&gt;@&lt;host.domain&gt;
-</PRE>
-
-The <CODE>ncurses</CODE> code is maintained by a small group of
-volunteers. While we try our best to fix bugs promptly, we simply
-don't have a lot of hours to spend on elementary hand-holding. We rely
-on intelligent cooperation from our users. If you think you have
-found a bug in <CODE>ncurses</CODE>, there are some steps you can take
-before contacting us that will help get the bug fixed quickly. <P>
-
-In order to use our bug-fixing time efficiently, we put people who
-show us they've taken these steps at the head of our queue. This
-means that if you don't, you'll probably end up at the tail end and
-have to wait a while.
-
-<OL>
-<LI>Develop a recipe to reproduce the bug.
-<p>
-Bugs we can reproduce are likely to be fixed very quickly, often
-within days. The most effective single thing you can do to get a
-quick fix is develop a way we can duplicate the bad behavior --
-ideally, by giving us source for a small, portable test program that
-breaks the library. (Even better is a keystroke recipe using one of
-the test programs provided with the distribution.)
-
-<LI>Try to reproduce the bug on a different terminal type. <P>
-
-In our experience, most of the behaviors people report as library bugs
-are actually due to subtle problems in terminal descriptions. This is
-especially likely to be true if you're using a traditional
-asynchronous terminal or PC-based terminal emulator, rather than xterm
-or a UNIX console entry. <P>
-
-It's therefore extremely helpful if you can tell us whether or not your
-problem reproduces on other terminal types. Usually you'll have both
-a console type and xterm available; please tell us whether or not your
-bug reproduces on both. <P>
-
-If you have xterm available, it is also good to collect xterm reports for
-different window sizes. This is especially true if you normally use an
-unusual xterm window size -- a surprising number of the bugs we've seen
-are either triggered or masked by these.
-
-<LI>Generate and examine a trace file for the broken behavior. <P>
-
-Recompile your program with the debugging versions of the libraries.
-Insert a <CODE>trace()</CODE> call with the argument set to <CODE>TRACE_UPDATE</CODE>.
-(See <A HREF="ncurses-intro.html#debugging">"Writing Programs with
-NCURSES"</A> for details on trace levels.)
-Reproduce your bug, then look at the trace file to see what the library
-was actually doing. <P>
-
-Another frequent cause of apparent bugs is application coding errors
-that cause the wrong things to be put on the virtual screen. Looking
-at the virtual-screen dumps in the trace file will tell you immediately if
-this is happening, and save you from the possible embarrassment of being
-told that the bug is in your code and is your problem rather than ours. <P>
-
-If the virtual-screen dumps look correct but the bug persists, it's
-possible to crank up the trace level to give more and more information
-about the library's update actions and the control sequences it issues
-to perform them. The test directory of the distribution contains a
-tool for digesting these logs to make them less tedious to wade
-through. <P>
-
-Often you'll find terminfo problems at this stage by noticing that the
-escape sequences put out for various capabilities are wrong. If not,
-you're likely to learn enough to be able to characterize any bug in
-the screen-update logic quite exactly.
-
-<LI>Report details and symptoms, not just interpretations. <P>
-
-If you do the preceding two steps, it is very likely that you'll discover
-the nature of the problem yourself and be able to send us a fix. This
-will create happy feelings all around and earn you good karma for the first
-time you run into a bug you really can't characterize and fix yourself. <P>
-
-If you're still stuck, at least you'll know what to tell us. Remember, we
-need details. If you guess about what is safe to leave out, you are too
-likely to be wrong. <P>
-
-If your bug produces a bad update, include a trace file. Try to make
-the trace at the <EM>least</EM> voluminous level that pins down the
-bug. Logs that have been through tracemunch are OK, it doesn't throw
-away any information (actually they're better than un-munched ones because
-they're easier to read). <P>
-
-If your bug produces a core-dump, please include a symbolic stack trace
-generated by gdb(1) or your local equivalent. <P>
-
-Tell us about every terminal on which you've reproduced the bug -- and
-every terminal on which you can't. Ideally, sent us terminfo sources
-for all of these (yours might differ from ours). <P>
-
-Include your ncurses version and your OS/machine type, of course! You can
-find your ncurses version in the <CODE>curses.h</CODE> file.
-</OL>
-
-If your problem smells like a logic error or in cursor movement or
-scrolling or a bad capability, there are a couple of tiny test frames
-for the library algorithms in the progs directory that may help you
-isolate it. These are not part of the normal build, but do have their
-own make productions. <P>
-
-The most important of these is <CODE>mvcur</CODE>, a test frame for the
-cursor-movement optimization code. With this program, you can see
-directly what control sequences will be emitted for any given cursor
-movement or scroll/insert/delete operations. If you think you've got
-a bad capability identified, you can disable it and test again. The
-program is command-driven and has on-line help. <P>
-
-If you think the vertical-scroll optimization is broken, or just want to
-understand how it works better, build <CODE>hashmap</CODE> and read the
-header comments of <CODE>hardscroll.c</CODE> and <CODE>hashmap.c</CODE>; then try
-it out. You can also test the hardware-scrolling optimization separately
-with <CODE>hardscroll</CODE>. <P>
-
-There's one other interactive tester, <CODE>tctest</CODE>, that exercises
-translation between termcap and terminfo formats. If you have a serious
-need to run this, you probably belong on our development team!
-
-<H1><A NAME="ncurslib">A Tour of the Ncurses Library</A></H1>
-
-<H2><A NAME="loverview">Library Overview</A></H2>
-
-Most of the library is superstructure -- fairly trivial convenience
-interfaces to a small set of basic functions and data structures used
-to manipulate the virtual screen (in particular, none of this code
-does any I/O except through calls to more fundamental modules
-described below). The files
-<blockquote>
-<CODE>
-lib_addch.c
-lib_bkgd.c
-lib_box.c
-lib_chgat.c
-lib_clear.c
-lib_clearok.c
-lib_clrbot.c
-lib_clreol.c
-lib_colorset.c
-lib_data.c
-lib_delch.c
-lib_delwin.c
-lib_echo.c
-lib_erase.c
-lib_gen.c
-lib_getstr.c
-lib_hline.c
-lib_immedok.c
-lib_inchstr.c
-lib_insch.c
-lib_insdel.c
-lib_insstr.c
-lib_instr.c
-lib_isendwin.c
-lib_keyname.c
-lib_leaveok.c
-lib_move.c
-lib_mvwin.c
-lib_overlay.c
-lib_pad.c
-lib_printw.c
-lib_redrawln.c
-lib_scanw.c
-lib_screen.c
-lib_scroll.c
-lib_scrollok.c
-lib_scrreg.c
-lib_set_term.c
-lib_slk.c
-lib_slkatr_set.c
-lib_slkatrof.c
-lib_slkatron.c
-lib_slkatrset.c
-lib_slkattr.c
-lib_slkclear.c
-lib_slkcolor.c
-lib_slkinit.c
-lib_slklab.c
-lib_slkrefr.c
-lib_slkset.c
-lib_slktouch.c
-lib_touch.c
-lib_unctrl.c
-lib_vline.c
-lib_wattroff.c
-lib_wattron.c
-lib_window.c
-</CODE>
-</blockquote>
-are all in this category. They are very
-unlikely to need change, barring bugs or some fundamental
-reorganization in the underlying data structures. <P>
-
-These files are used only for debugging support:
-<blockquote>
-<code>
-lib_trace.c
-lib_traceatr.c
-lib_tracebits.c
-lib_tracechr.c
-lib_tracedmp.c
-lib_tracemse.c
-trace_buf.c
-</code>
-</blockquote>
-It is rather unlikely you will ever need to change these, unless
-you want to introduce a new debug trace level for some reasoon.<P>
-
-There is another group of files that do direct I/O via <EM>tputs()</EM>,
-computations on the terminal capabilities, or queries to the OS
-environment, but nevertheless have only fairly low complexity. These
-include:
-<blockquote>
-<code>
-lib_acs.c
-lib_beep.c
-lib_color.c
-lib_endwin.c
-lib_initscr.c
-lib_longname.c
-lib_newterm.c
-lib_options.c
-lib_termcap.c
-lib_ti.c
-lib_tparm.c
-lib_tputs.c
-lib_vidattr.c
-read_entry.c.
-</code>
-</blockquote>
-They are likely to need revision only if
-ncurses is being ported to an environment without an underlying
-terminfo capability representation. <P>
-
-These files
-have serious hooks into
-the tty driver and signal facilities:
-<blockquote>
-<code>
-lib_kernel.c
-lib_baudrate.c
-lib_raw.c
-lib_tstp.c
-lib_twait.c
-</code>
-</blockquote>
-If you run into porting snafus
-moving the package to another UNIX, the problem is likely to be in one
-of these files.
-The file <CODE>lib_print.c</CODE> uses sleep(2) and also
-falls in this category.<P>
-
-Almost all of the real work is done in the files
-<blockquote>
-<code>
-hardscroll.c
-hashmap.c
-lib_addch.c
-lib_doupdate.c
-lib_getch.c
-lib_mouse.c
-lib_mvcur.c
-lib_refresh.c
-lib_setup.c
-lib_vidattr.c
-</code>
-</blockquote>
-Most of the algorithmic complexity in the
-library lives in these files.
-If there is a real bug in <STRONG>ncurses</STRONG> itself, it's probably here.
-We'll tour some of these files in detail
-below (see <A HREF="#engine">The Engine Room</A>). <P>
-
-Finally, there is a group of files that is actually most of the
-terminfo compiler. The reason this code lives in the <STRONG>ncurses</STRONG>
-library is to support fallback to /etc/termcap. These files include
-<blockquote>
-<code>
-alloc_entry.c
-captoinfo.c
-comp_captab.c
-comp_error.c
-comp_hash.c
-comp_parse.c
-comp_scan.c
-parse_entry.c
-read_termcap.c
-write_entry.c
-</code>
-</blockquote>
-We'll discuss these in the compiler tour.
-
-<H2><A NAME="engine">The Engine Room</A></H2>
-
-<H3><A NAME="input">Keyboard Input</A></H3>
-
-All <CODE>ncurses</CODE> input funnels through the function
-<CODE>wgetch()</CODE>, defined in <CODE>lib_getch.c</CODE>. This function is
-tricky; it has to poll for keyboard and mouse events and do a running
-match of incoming input against the set of defined special keys. <P>
-
-The central data structure in this module is a FIFO queue, used to
-match multiple-character input sequences against special-key
-capabilities; also to implement pushback via <CODE>ungetch()</CODE>. <P>
-
-The <CODE>wgetch()</CODE> code distinguishes between function key
-sequences and the same sequences typed manually by doing a timed wait
-after each input character that could lead a function key sequence.
-If the entire sequence takes less than 1 second, it is assumed to have
-been generated by a function key press. <P>
-
-Hackers bruised by previous encounters with variant <CODE>select(2)</CODE>
-calls may find the code in <CODE>lib_twait.c</CODE> interesting. It deals
-with the problem that some BSD selects don't return a reliable
-time-left value. The function <CODE>timed_wait()</CODE> effectively
-simulates a System V select.
-
-<H3><A NAME="mouse">Mouse Events</A></H3>
-
-If the mouse interface is active, <CODE>wgetch()</CODE> polls for mouse
-events each call, before it goes to the keyboard for input. It is
-up to <CODE>lib_mouse.c</CODE> how the polling is accomplished; it may vary
-for different devices. <P>
-
-Under xterm, however, mouse event notifications come in via the keyboard
-input stream. They are recognized by having the <STRONG>kmous</STRONG> capability
-as a prefix. This is kind of klugey, but trying to wire in recognition of
-a mouse key prefix without going through the function-key machinery would
-be just too painful, and this turns out to imply having the prefix somewhere
-in the function-key capabilities at terminal-type initialization. <P>
-
-This kluge only works because <STRONG>kmous</STRONG> isn't actually used by any
-historic terminal type or curses implementation we know of. Best
-guess is it's a relic of some forgotten experiment in-house at Bell
-Labs that didn't leave any traces in the publicly-distributed System V
-terminfo files. If System V or XPG4 ever gets serious about using it
-again, this kluge may have to change. <P>
-
-Here are some more details about mouse event handling: <P>
-
-The <CODE>lib_mouse()</CODE>code is logically split into a lower level that
-accepts event reports in a device-dependent format and an upper level that
-parses mouse gestures and filters events. The mediating data structure is a
-circular queue of event structures. <P>
-
-Functionally, the lower level's job is to pick up primitive events and
-put them on the circular queue. This can happen in one of two ways:
-either (a) <CODE>_nc_mouse_event()</CODE> detects a series of incoming
-mouse reports and queues them, or (b) code in <CODE>lib_getch.c</CODE> detects the
-<STRONG>kmous</STRONG> prefix in the keyboard input stream and calls _nc_mouse_inline
-to queue up a series of adjacent mouse reports. <P>
-
-In either case, <CODE>_nc_mouse_parse()</CODE> should be called after the
-series is accepted to parse the digested mouse reports (low-level
-events) into a gesture (a high-level or composite event).
-
-<H3><A NAME="output">Output and Screen Updating</A></H3>
-
-With the single exception of character echoes during a <CODE>wgetnstr()</CODE>
-call (which simulates cooked-mode line editing in an ncurses window),
-the library normally does all its output at refresh time. <P>
-
-The main job is to go from the current state of the screen (as represented
-in the <CODE>curscr</CODE> window structure) to the desired new state (as
-represented in the <CODE>newscr</CODE> window structure), while doing as
-little I/O as possible. <P>
-
-The brains of this operation are the modules <CODE>hashmap.c</CODE>,
-<CODE>hardscroll.c</CODE> and <CODE>lib_doupdate.c</CODE>; the latter two use
-<CODE>lib_mvcur.c</CODE>. Essentially, what happens looks like this: <P>
-
-The <CODE>hashmap.c</CODE> module tries to detect vertical motion
-changes between the real and virtual screens. This information
-is represented by the oldindex members in the newscr structure.
-These are modified by vertical-motion and clear operations, and both are
-re-initialized after each update. To this change-journalling
-information, the hashmap code adds deductions made using a modified Heckel
-algorithm on hash values generated from the line contents. <P>
-
-The <CODE>hardscroll.c</CODE> module computes an optimum set of scroll,
-insertion, and deletion operations to make the indices match. It calls
-<CODE>_nc_mvcur_scrolln()</CODE> in <CODE>lib_mvcur.c</CODE> to do those motions. <P>
-
-Then <CODE>lib_doupdate.c</CODE> goes to work. Its job is to do line-by-line
-transformations of <CODE>curscr</CODE> lines to <CODE>newscr</CODE> lines. Its main
-tool is the routine <CODE>mvcur()</CODE> in <CODE>lib_mvcur.c</CODE>. This routine
-does cursor-movement optimization, attempting to get from given screen
-location A to given location B in the fewest output characters posible. <P>
-
-If you want to work on screen optimizations, you should use the fact
-that (in the trace-enabled version of the library) enabling the
-<CODE>TRACE_TIMES</CODE> trace level causes a report to be emitted after
-each screen update giving the elapsed time and a count of characters
-emitted during the update. You can use this to tell when an update
-optimization improves efficiency. <P>
-
-In the trace-enabled version of the library, it is also possible to disable
-and re-enable various optimizations at runtime by tweaking the variable
-<CODE>_nc_optimize_enable</CODE>. See the file <CODE>include/curses.h.in</CODE>
-for mask values, near the end.
-
-<H1><A NAME="fmnote">The Forms and Menu Libraries</A></H1>
-
-The forms and menu libraries should work reliably in any environment you
-can port ncurses to. The only portability issue anywhere in them is what
-flavor of regular expressions the built-in form field type TYPE_REGEXP
-will recognize. <P>
-
-The configuration code prefers the POSIX regex facility, modeled on
-System V's, but will settle for BSD regexps if the former isn't available. <P>
-
-Historical note: the panels code was written primarily to assist in
-porting u386mon 2.0 (comp.sources.misc v14i001-4) to systems lacking
-panels support; u386mon 2.10 and beyond use it. This version has been
-slightly cleaned up for <CODE>ncurses</CODE>.
-
-<H1><A NAME="tic">A Tour of the Terminfo Compiler</A></H1>
-
-The <STRONG>ncurses</STRONG> implementation of <STRONG>tic</STRONG> is rather complex
-internally; it has to do a trying combination of missions. This starts
-with the fact that, in addition to its normal duty of compiling
-terminfo sources into loadable terminfo binaries, it has to be able to
-handle termcap syntax and compile that too into terminfo entries. <P>
-
-The implementation therefore starts with a table-driven, dual-mode
-lexical analyzer (in <CODE>comp_scan.c</CODE>). The lexer chooses its
-mode (termcap or terminfo) based on the first `,' or `:' it finds in
-each entry. The lexer does all the work of recognizing capability
-names and values; the grammar above it is trivial, just "parse entries
-till you run out of file".
-
-<H2><A NAME="nonuse">Translation of Non-<STRONG>use</STRONG> Capabilities</A></H2>
-
-Translation of most things besides <STRONG>use</STRONG> capabilities is pretty
-straightforward. The lexical analyzer's tokenizer hands each capability
-name to a hash function, which drives a table lookup. The table entry
-yields an index which is used to look up the token type in another table,
-and controls interpretation of the value. <P>
-
-One possibly interesting aspect of the implementation is the way the
-compiler tables are initialized. All the tables are generated by various
-awk/sed/sh scripts from a master table <CODE>include/Caps</CODE>; these
-scripts actually write C initializers which are linked to the compiler.
-Furthermore, the hash table is generated in the same way, so it doesn't
-have to be generated at compiler startup time (another benefit of this
-organization is that the hash table can be in shareable text space). <P>
-
-Thus, adding a new capability is usually pretty trivial, just a matter
-of adding one line to the <CODE>include/Caps</CODE> file. We'll have more
-to say about this in the section on <A HREF="#translation">Source-Form
-Translation</A>.
-
-<H2><A NAME="uses">Use Capability Resolution</A></H2>
-
-The background problem that makes <STRONG>tic</STRONG> tricky isn't the capability
-translation itself, it's the resolution of <STRONG>use</STRONG> capabilities. Older
-versions would not handle forward <STRONG>use</STRONG> references for this reason
-(that is, a using terminal always had to follow its use target in the
-source file). By doing this, they got away with a simple implementation
-tactic; compile everything as it blows by, then resolve uses from compiled
-entries. <P>
-
-This won't do for <STRONG>ncurses</STRONG>. The problem is that that the whole
-compilation process has to be embeddable in the <STRONG>ncurses</STRONG> library
-so that it can be called by the startup code to translate termcap
-entries on the fly. The embedded version can't go promiscuously writing
-everything it translates out to disk -- for one thing, it will typically
-be running with non-root permissions. <P>
-
-So our <STRONG>tic</STRONG> is designed to parse an entire terminfo file into a
-doubly-linked circular list of entry structures in-core, and then do
-<STRONG>use</STRONG> resolution in-memory before writing everything out. This
-design has other advantages: it makes forward and back use-references
-equally easy (so we get the latter for free), and it makes checking for
-name collisions before they're written out easy to do. <P>
-
-And this is exactly how the embedded version works. But the stand-alone
-user-accessible version of <STRONG>tic</STRONG> partly reverts to the historical
-strategy; it writes to disk (not keeping in core) any entry with no
-<STRONG>use</STRONG> references. <P>
-
-This is strictly a core-economy kluge, implemented because the
-terminfo master file is large enough that some core-poor systems swap
-like crazy when you compile it all in memory...there have been reports of
-this process taking <STRONG>three hours</STRONG>, rather than the twenty seconds
-or less typical on the author's development box. <P>
-
-So. The executable <STRONG>tic</STRONG> passes the entry-parser a hook that
-<EM>immediately</EM> writes out the referenced entry if it has no use
-capabilities. The compiler main loop refrains from adding the entry
-to the in-core list when this hook fires. If some other entry later
-needs to reference an entry that got written immediately, that's OK;
-the resolution code will fetch it off disk when it can't find it in
-core. <P>
-
-Name collisions will still be detected, just not as cleanly. The
-<CODE>write_entry()</CODE> code complains before overwriting an entry that
-postdates the time of <STRONG>tic</STRONG>'s first call to
-<CODE>write_entry()</CODE>, Thus it will complain about overwriting
-entries newly made during the <STRONG>tic</STRONG> run, but not about
-overwriting ones that predate it.
-
-<H2><A NAME="translation">Source-Form Translation</A></H2>
-
-Another use of <STRONG>tic</STRONG> is to do source translation between various termcap
-and terminfo formats. There are more variants out there than you might
-think; the ones we know about are described in the <STRONG>captoinfo(1)</STRONG>
-manual page. <P>
-
-The translation output code (<CODE>dump_entry()</CODE> in
-<CODE>ncurses/dump_entry.c</CODE>) is shared with the <STRONG>infocmp(1)</STRONG>
-utility. It takes the same internal representation used to generate
-the binary form and dumps it to standard output in a specified
-format. <P>
-
-The <CODE>include/Caps</CODE> file has a header comment describing ways you
-can specify source translations for nonstandard capabilities just by
-altering the master table. It's possible to set up capability aliasing
-or tell the compiler to plain ignore a given capability without writing
-any C code at all. <P>
-
-For circumstances where you need to do algorithmic translation, there
-are functions in <CODE>parse_entry.c</CODE> called after the parse of each
-entry that are specifically intended to encapsulate such
-translations. This, for example, is where the AIX <STRONG>box1</STRONG> capability
-get translated to an <STRONG>acsc</STRONG> string.
-
-<H1><A NAME="utils">Other Utilities</A></H1>
-
-The <STRONG>infocmp</STRONG> utility is just a wrapper around the same
-entry-dumping code used by <STRONG>tic</STRONG> for source translation. Perhaps
-the one interesting aspect of the code is the use of a predicate
-function passed in to <CODE>dump_entry()</CODE> to control which
-capabilities are dumped. This is necessary in order to handle both
-the ordinary De-compilation case and entry difference reporting. <P>
-
-The <STRONG>tput</STRONG> and <STRONG>clear</STRONG> utilities just do an entry load
-followed by a <CODE>tputs()</CODE> of a selected capability.
-
-<H1><A NAME="style">Style Tips for Developers</A></H1>
-
-See the TO-DO file in the top-level directory of the source distribution
-for additions that would be particularly useful. <P>
-
-The prefix <CODE>_nc_</CODE> should be used on library public functions that are
-not part of the curses API in order to prevent pollution of the
-application namespace.
-
-If you have to add to or modify the function prototypes in curses.h.in,
-read ncurses/MKlib_gen.sh first so you can avoid breaking XSI conformance.
-
-Please join the ncurses mailing list. See the INSTALL file in the
-top level of the distribution for details on the list. <P>
-
-Look for the string <CODE>FIXME</CODE> in source files to tag minor bugs
-and potential problems that could use fixing. <P>
-
-Don't try to auto-detect OS features in the main body of the C code.
-That's the job of the configuration system. <P>
-
-To hold down complexity, do make your code data-driven. Especially,
-if you can drive logic from a table filtered out of
-<CODE>include/Caps</CODE>, do it. If you find you need to augment the
-data in that file in order to generate the proper table, that's still
-preferable to ad-hoc code -- that's why the fifth field (flags) is
-there. <P>
-
-Have fun!
-
-<H1><A NAME="port">Porting Hints</A></H1>
-
-The following notes are intended to be a first step towards DOS and Macintosh
-ports of the ncurses libraries. <P>
-
-The following library modules are `pure curses'; they operate only on
-the curses internal structures, do all output through other curses
-calls (not including <CODE>tputs()</CODE> and <CODE>putp()</CODE>) and do not
-call any other UNIX routines such as signal(2) or the stdio library.
-Thus, they should not need to be modified for single-terminal
-ports.
-
-<blockquote>
-<code>
-lib_addch.c
-lib_addstr.c
-lib_bkgd.c
-lib_box.c
-lib_clear.c
-lib_clrbot.c
-lib_clreol.c
-lib_delch.c
-lib_delwin.c
-lib_erase.c
-lib_inchstr.c
-lib_insch.c
-lib_insdel.c
-lib_insstr.c
-lib_keyname.c
-lib_move.c
-lib_mvwin.c
-lib_newwin.c
-lib_overlay.c
-lib_pad.c
-lib_printw.c
-lib_refresh.c
-lib_scanw.c
-lib_scroll.c
-lib_scrreg.c
-lib_set_term.c
-lib_touch.c
-lib_tparm.c
-lib_tputs.c
-lib_unctrl.c
-lib_window.c
-panel.c
-</code>
-</blockquote>
-<P>
-
-This module is pure curses, but calls outstr():
-
-<blockquote>
-<code>
-lib_getstr.c
-</code>
-</blockquote>
-<P>
-
-These modules are pure curses, except that they use <CODE>tputs()</CODE>
-and <CODE>putp()</CODE>:
-
-<blockquote>
-<code>
-lib_beep.c
-lib_color.c
-lib_endwin.c
-lib_options.c
-lib_slk.c
-lib_vidattr.c
-</code>
-</blockquote>
-<P>
-
-This modules assist in POSIX emulation on non-POSIX systems:
-<DL>
-<DT> sigaction.c
-<DD> signal calls
-</DL>
-
-The following source files will not be needed for a
-single-terminal-type port.
-
-<blockquote>
-<code>
-alloc_entry.c
-captoinfo.c
-clear.c
-comp_captab.c
-comp_error.c
-comp_hash.c
-comp_main.c
-comp_parse.c
-comp_scan.c
-dump_entry.c
-infocmp.c
-parse_entry.c
-read_entry.c
-tput.c
-write_entry.c
-</code>
-</blockquote>
-<P>
-
-The following modules will use open()/read()/write()/close()/lseek() on files,
-but no other OS calls.
-
-<DL>
-<DT>lib_screen.c
-<DD>used to read/write screen dumps
-<DT>lib_trace.c
-<DD>used to write trace data to the logfile
-</DL>
-
-Modules that would have to be modified for a port start here: <P>
-
-The following modules are `pure curses' but contain assumptions inappropriate
-for a memory-mapped port.
-
-<dl>
-<dt>lib_longname.c<dd>assumes there may be multiple terminals
-<dt>lib_acs.c<dd>assumes acs_map as a double indirection
-<dt>lib_mvcur.c<dd>assumes cursor moves have variable cost
-<dt>lib_termcap.c<dd>assumes there may be multiple terminals
-<dt>lib_ti.c<dd>assumes there may be multiple terminals
-</dl>
-
-The following modules use UNIX-specific calls:
-
-<dl>
-<dt>lib_doupdate.c<dd>input checking
-<dt>lib_getch.c<dd>read()
-<dt>lib_initscr.c<dd>getenv()
-<dt>lib_newterm.c
-<dt>lib_baudrate.c
-<dt>lib_kernel.c<dd>various tty-manipulation and system calls
-<dt>lib_raw.c<dd>various tty-manipulation calls
-<dt>lib_setup.c<dd>various tty-manipulation calls
-<dt>lib_restart.c<dd>various tty-manipulation calls
-<dt>lib_tstp.c<dd>signal-manipulation calls
-<dt>lib_twait.c<dd>gettimeofday(), select().
-</dl>
-
-<HR>
-<ADDRESS>Eric S. Raymond &lt;esr@snark.thyrsus.com&gt;</ADDRESS>
-(Note: This is <EM>not</EM> the <A HREF="#bugtrack">bug address</A>!)
-</BODY>
-</HTML>
diff --git a/ncurses-5.3/doc/html/index.html b/ncurses-5.3/doc/html/index.html
deleted file mode 100644
index 6e0967c..0000000
--- a/ncurses-5.3/doc/html/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>Welcome to ncurses</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-</HEAD>
-<BODY>
-
-<H1>Welcome to ncurses</H1>
-From this index page you have access to these further documents
-<UL>
-<LI>The <a href="announce.html">Announcement</a> of the current version of ncurses.</LI>
-<LI>An <a href="ncurses-intro.html">Introduction</a> into (n)curses programming.</LI>
-<LI>A <a href="hackguide.html">hackers guide</a> to ncurses.</LI>
-<LI>A description of the <a href="Ada95.html">Ada95 binding</a> to ncurses.</LI>
-</UL><P>
-We also have HTML versions of all the ncurses <a href="man">manpages</a>.
-</BODY>
-</HTML>
-<!--
-# The following sets edit modes for GNU EMACS
-# Local Variables:
-# mode:html
-# case-fold-search:nil
-# fill-column:70
-# End:
--->
diff --git a/ncurses-5.3/doc/html/man/captoinfo.1m.html b/ncurses-5.3/doc/html/man/captoinfo.1m.html
deleted file mode 100644
index cd2cfe0..0000000
--- a/ncurses-5.3/doc/html/man/captoinfo.1m.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!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>
-<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>
-<H1>captoinfo 1m</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>captoinfo</STRONG> - convert a <EM>termcap</EM> description into a <EM>terminfo</EM>
- description
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- <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.
-
- <STRONG>-V</STRONG> print out the version of the program in use on stan-
- dard error and exit.
-
- <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.
-
- <STRONG>-w</STRONG> change the output to <EM>width</EM> characters.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description
- database.
-
-
-</PRE>
-<H2>TRANSLATIONS FROM NONSTANDARD CAPABILITIES</H2><PRE>
- Some obsolete nonstandard capabilities will automatically
- be translated into standard (SVr4/XSI Curses) terminfo
- 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.
-
- Nonstd Std From Terminfo
- name name capability
- -----------------------------------------------
- BO mr AT&amp;T enter_reverse_mode
- CI vi AT&amp;T cursor_invisible
- CV ve AT&amp;T cursor_normal
- DS mh AT&amp;T enter_dim_mode
- EE me AT&amp;T exit_attribute_mode
-
- FE LF AT&amp;T label_on
- FL LO AT&amp;T label_off
- XS mk AT&amp;T enter_secure_mode
- EN @7 XENIX key_end
- GE ae XENIX exit_alt_charset_mode
- GS as XENIX enter_alt_charset_mode
- HM kh XENIX key_home
- LD kL XENIX key_dl
- PD kN XENIX key_npage
- PN po XENIX prtr_off
- PS pf XENIX prtr_on
- PU kP XENIX key_ppage
- RT @8 XENIX kent
- UP ku XENIX kcuu1
- KA k; Tek key_f10
- KB F1 Tek key_f11
- KC F2 Tek key_f12
- KD F3 Tek key_f13
- KE F4 Tek key_f14
- KF F5 Tek key_f15
- BC Sb Tek set_background
- FC Sf Tek set_foreground
- HS mh Iris enter_dim_mode
-
- 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
- -----------------------------
- G2 upper left
- G3 lower left
- G1 upper right
- G4 lower right
- GR pointing right
- GL pointing left
- GU pointing up
- GD pointing down
- GH horizontal line
- GV vertical line
- GC intersection
- G6 upper left
- G7 lower left
- G5 upper right
- G8 lower right
- Gr tee pointing right
- Gr tee pointing left
- Gu tee pointing up
- Gd tee pointing down
- Gh horizontal line
- Gv vertical line
- Gc intersection
- GG acs magic cookie count
-
- If the single-line capabilities occur in an entry, they
- 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 ter-
- minfo but incompatible with the SVr4 format. The following
- AIX extensions are automatically translated:
-
- IBM XSI
- -------------
- ksel kslt
- kbtab kcbt
- font0 s0ds
- font1 s1ds
- font2 s2ds
- font3 s3ds
-
- 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 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>
- 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
- repeat it n times.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <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>
-<H2>AUTHOR</H2><PRE>
- Eric S. Raymond &lt;esr@snark.thyrsus.com&gt;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/clear.1.html b/ncurses-5.3/doc/html/man/clear.1.html
deleted file mode 100644
index d0e7900..0000000
--- a/ncurses-5.3/doc/html/man/clear.1.html
+++ /dev/null
@@ -1,112 +0,0 @@
-<!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>
-<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>
-<H1>clear 1</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>clear</STRONG> - clear the terminal screen
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>clear</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- <STRONG>clear</STRONG> clears your screen if this is possible. It looks in
- the environment for the terminal type and then in the <STRONG>ter-</STRONG>
- <STRONG>minfo</STRONG> database to figure out how to clear the screen.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_add_wch.3x.html b/ncurses-5.3/doc/html/man/curs_add_wch.3x.html
deleted file mode 100644
index 52af77b..0000000
--- a/ncurses-5.3/doc/html/man/curs_add_wch.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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/ncurses-5.3/doc/html/man/curs_add_wchstr.3x.html b/ncurses-5.3/doc/html/man/curs_add_wchstr.3x.html
deleted file mode 100644
index ba75693..0000000
--- a/ncurses-5.3/doc/html/man/curs_add_wchstr.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
diff --git a/ncurses-5.3/doc/html/man/curs_addch.3x.html b/ncurses-5.3/doc/html/man/curs_addch.3x.html
deleted file mode 100644
index 2c0f6e7..0000000
--- a/ncurses-5.3/doc/html/man/curs_addch.3x.html
+++ /dev/null
@@ -1,227 +0,0 @@
-<!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>
-<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>
-<H1>curs_addch 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- The <STRONG>addch</STRONG>, <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG> and <STRONG>mvwaddch</STRONG> routines put the
- character <EM>ch</EM> into the given window at its current window
- position, which is then advanced. They are analogous to
- <STRONG>putchar</STRONG> in <STRONG><A HREF="stdio.3.html">stdio(3)</A></STRONG>. If the advance is at the right mar-
- gin, the cursor automatically wraps to the beginning of
- the next line. At the bottom of the current scrolling
- region, if <STRONG>scrollok</STRONG> is enabled, the scrolling region is
- scrolled up one line.
-
- If <EM>ch</EM> is a tab, newline, or backspace, the cursor is moved
- appropriately within the window. Backspace moves the cur-
- sor one character left; at the left edge of a window it
- does nothing. Newline does a <STRONG>clrtoeol</STRONG>, then moves the
- cursor to the window left margin on the next line,
- scrolling the window if on the last line). Tabs are con-
- sidered to be at every eighth column. The tab interval
- may be altered by setting the <STRONG>TABSIZE</STRONG> variable.
-
- 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-
- acter itself, but instead returns the ^-representation of
- the control character.
-
- Video attributes can be combined with a character argument
- 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.
-
- 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.
-
- <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.
-
- <EM>Name</EM> <EM>Default</EM> <EM>Description</EM>
- --------------------------------------------------
- ACS_BLOCK # solid square block
- ACS_BOARD # board of squares
- ACS_BTEE + bottom tee
- ACS_BULLET o bullet
- ACS_CKBOARD : checker board (stipple)
- ACS_DARROW v arrow pointing down
- ACS_DEGREE ' degree symbol
- ACS_DIAMOND + diamond
- ACS_GEQUAL &gt; greater-than-or-equal-to
- ACS_HLINE - horizontal line
- ACS_LANTERN # lantern symbol
- ACS_LARROW &lt; arrow pointing left
- ACS_LEQUAL &lt; less-than-or-equal-to
- ACS_LLCORNER + lower left-hand corner
- ACS_LRCORNER + lower right-hand corner
- ACS_LTEE + left tee
- ACS_NEQUAL ! not-equal
- ACS_PI * greek pi
- ACS_PLMINUS # plus/minus
- ACS_PLUS + plus
- ACS_RARROW &gt; arrow pointing right
- ACS_RTEE + right tee
- ACS_S1 - scan line 1
- ACS_S3 - scan line 3
- ACS_S7 - scan line 7
- ACS_S9 _ scan line 9
- ACS_STERLING f pound-sterling symbol
- ACS_TTEE + top tee
- ACS_UARROW ^ arrow pointing up
- ACS_ULCORNER + upper left-hand corner
- ACS_URCORNER + upper right-hand corner
- ACS_VLINE | vertical line
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
- success (the SVr4 manuals specify only "an integer value
- other than <STRONG>ERR</STRONG>") upon successful completion, unless other-
- wise noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <STRONG>addch</STRONG>, <STRONG>mvaddch</STRONG>, <STRONG>mvwaddch</STRONG>, and <STRONG>echochar</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.
-
- 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>
- <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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_addchstr.3x.html b/ncurses-5.3/doc/html/man/curs_addchstr.3x.html
deleted file mode 100644
index 18db3f0..0000000
--- a/ncurses-5.3/doc/html/man/curs_addchstr.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_addchstr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>addchstr</STRONG>, <STRONG>addchnstr</STRONG>, <STRONG>waddchstr</STRONG>, <STRONG>waddchnstr</STRONG>, <STRONG>mvaddchstr</STRONG>,
- <STRONG>mvaddchnstr</STRONG>, <STRONG>mvwaddchstr</STRONG>, <STRONG>mvwaddchnstr</STRONG> - add a string of
- characters (and attributes) to a <STRONG>curses</STRONG> window
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- These routines copy <EM>chstr</EM> into the window image structure
- at and after the current cursor position. The four rou-
- tines with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
- but no more than will fit on the line. If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the
- whole string is copied, to the maximum number of charac-
- ters that will fit on the line.
-
- The window cursor is <EM>not</EM> advanced, and these routines work
- faster than <STRONG>waddnstr</STRONG>. On the other hand, they 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
- 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.
-
-
-
-</PRE>
-<H2>RETURN VALUES</H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on
- success (the SVr4 manuals specify only "an integer value
- other than <STRONG>ERR</STRONG>") upon successful completion, unless other-
- wise noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all routines except <STRONG>waddchnstr</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>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_addstr.3x.html b/ncurses-5.3/doc/html/man/curs_addstr.3x.html
deleted file mode 100644
index 4f4857d..0000000
--- a/ncurses-5.3/doc/html/man/curs_addstr.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_addstr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>addstr</STRONG>, <STRONG>addnstr</STRONG>, <STRONG>waddstr</STRONG>, <STRONG>waddnstr</STRONG>, <STRONG>mvaddstr</STRONG>, <STRONG>mvaddnstr</STRONG>,
- <STRONG>mvwaddstr</STRONG>, <STRONG>mvwaddnstr</STRONG> - add a string of characters to a
- <STRONG>curses</STRONG> window and advance cursor
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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-
- 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>
- 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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all of these routines except <STRONG>waddstr</STRONG> and
- <STRONG>waddnstr</STRONG> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- All these entry points are described in the XSI Curses
- standard, Issue 4. The XSI errors EILSEQ and EOVERFLOW,
- associated with extended-level conformance, are not yet
- detected.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_addwstr.3x.html b/ncurses-5.3/doc/html/man/curs_addwstr.3x.html
deleted file mode 100644
index d761b35..0000000
--- a/ncurses-5.3/doc/html/man/curs_addwstr.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
diff --git a/ncurses-5.3/doc/html/man/curs_attr.3x.html b/ncurses-5.3/doc/html/man/curs_attr.3x.html
deleted file mode 100644
index fa0c4e1..0000000
--- a/ncurses-5.3/doc/html/man/curs_attr.3x.html
+++ /dev/null
@@ -1,279 +0,0 @@
-<!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>
-<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>
-<H1>curs_attr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>,
- <STRONG>color_set</STRONG>, <STRONG>wcolor_set</STRONG>, <STRONG>standend</STRONG>, <STRONG>wstandend</STRONG>, <STRONG>standout</STRONG>,
- <STRONG>wstandout</STRONG>, <STRONG>attr_get</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>wattr_off</STRONG>,
- <STRONG>attr_on</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_set</STRONG>, <STRONG>chgat</STRONG>, <STRONG>wchgat</STRONG>,
- <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> character and win-
- dow attribute control routines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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
- 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 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
- 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.
-
- 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.
-
- 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
- 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>
- 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>
- All these functions are supported in the XSI Curses stan-
- dard, Issue 4. The standard defined the dedicated type
- for highlights, <STRONG>attr_t</STRONG>, which is not defined in SVr4
- curses. The functions taking <STRONG>attr_t</STRONG> arguments are not sup-
- ported under SVr4.
-
- The XSI Curses standard states that whether the tradi-
- tional functions <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG> can manipulate
- attributes other than <STRONG>A_BLINK</STRONG>, <STRONG>A_BOLD</STRONG>, <STRONG>A_DIM</STRONG>, <STRONG>A_REVERSE</STRONG>,
- <STRONG>A_STANDOUT</STRONG>, or <STRONG>A_UNDERLINE</STRONG> is "unspecified". Under this
- implementation as well as SVr4 curses, these functions
- correctly manipulate all other highlights (specifically,
- <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-
- sponding <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same
- current-highlight information.
-
- The XSI standard extended conformance level adds new high-
- lights <STRONG>A_HORIZONTAL</STRONG>, <STRONG>A_LEFT</STRONG>, <STRONG>A_LOW</STRONG>, <STRONG>A_RIGHT</STRONG>, <STRONG>A_TOP</STRONG>, <STRONG>A_VER-</STRONG>
- <STRONG>TICAL</STRONG> (and corresponding <STRONG>WA_</STRONG> macros for each) which this
- curses does not yet support.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_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>
-<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/ncurses-5.3/doc/html/man/curs_beep.3x.html b/ncurses-5.3/doc/html/man/curs_beep.3x.html
deleted file mode 100644
index a3df0f9..0000000
--- a/ncurses-5.3/doc/html/man/curs_beep.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_beep 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>beep</STRONG>, <STRONG>flash</STRONG> - <STRONG>curses</STRONG> bell and screen flash routines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <STRONG>int</STRONG> <STRONG>beep(void);</STRONG>
- <STRONG>int</STRONG> <STRONG>flash(void);</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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
- (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
- flash the screen.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return <STRONG>OK</STRONG> if they succeed in beeping or
- flashing, <STRONG>ERR</STRONG> otherwise.
-
-
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
- SVr4's beep and flash routines always returned <STRONG>OK</STRONG>, so it
- was not possible to tell when the beep or flash failed.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are defined in the XSI Curses standard,
- Issue 4. Like SVr4, it specifies that they always return
- <STRONG>OK</STRONG>.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_bkgd.3x.html b/ncurses-5.3/doc/html/man/curs_bkgd.3x.html
deleted file mode 100644
index 178a8f6..0000000
--- a/ncurses-5.3/doc/html/man/curs_bkgd.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_bkgd 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>bkgdset</STRONG>, <STRONG>wbkgdset</STRONG>, <STRONG>bkgd</STRONG>, <STRONG>wbkgd</STRONG>, <STRONG>getbkgd</STRONG> - <STRONG>curses</STRONG> window
- background manipulation routines
-
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- The <STRONG>bkgdset</STRONG> and <STRONG>wbkgdset</STRONG> routines manipulate the back-
- ground of the named window. The window background is a
- <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-
- 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
- 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>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:
-
- 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>getbkgd</STRONG> function returns the given window's current
- background character/attribute pair.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- 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>
- 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,
- 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>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_bkgrnd.3x.html b/ncurses-5.3/doc/html/man/curs_bkgrnd.3x.html
deleted file mode 100644
index 4a44535..0000000
--- a/ncurses-5.3/doc/html/man/curs_bkgrnd.3x.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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>
diff --git a/ncurses-5.3/doc/html/man/curs_border.3x.html b/ncurses-5.3/doc/html/man/curs_border.3x.html
deleted file mode 100644
index e6f9adb..0000000
--- a/ncurses-5.3/doc/html/man/curs_border.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_border 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>border</STRONG>, <STRONG>wborder</STRONG>, <STRONG>box</STRONG>, <STRONG>hline</STRONG>, <STRONG>whline</STRONG>, <STRONG>vline</STRONG>, <STRONG>wvline</STRONG>, <STRONG>mvh-</STRONG>
- <STRONG>line</STRONG>, <STRONG>mvwhline</STRONG>, <STRONG>mvvline</STRONG>, <STRONG>mvwvline</STRONG> - create <STRONG>curses</STRONG> borders,
- horizontal and vertical lines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- 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
- changed. The line is at most <EM>n</EM> characters long, or as
- many as fit into the window.
- 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
- 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>
- 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>
- 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).
-
- 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,
- Issue 4. The standard specifies that they return <STRONG>ERR</STRONG> on
- failure, but specifies no error conditions.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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>
diff --git a/ncurses-5.3/doc/html/man/curs_border_set.3x.html b/ncurses-5.3/doc/html/man/curs_border_set.3x.html
deleted file mode 100644
index b5a3ebb..0000000
--- a/ncurses-5.3/doc/html/man/curs_border_set.3x.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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>
diff --git a/ncurses-5.3/doc/html/man/curs_clear.3x.html b/ncurses-5.3/doc/html/man/curs_clear.3x.html
deleted file mode 100644
index bb5ff22..0000000
--- a/ncurses-5.3/doc/html/man/curs_clear.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_clear 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>erase</STRONG>, <STRONG>werase</STRONG>, <STRONG>clear</STRONG>, <STRONG>wclear</STRONG>, <STRONG>clrtobot</STRONG>, <STRONG>wclrtobot</STRONG>, <STRONG>clr-</STRONG>
- <STRONG>toeol</STRONG>, <STRONG>wclrtoeol</STRONG> - clear all or part of a <STRONG>curses</STRONG> window
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#</STRONG> <STRONG>include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- The <STRONG>erase</STRONG> and <STRONG>werase</STRONG> routines copy blanks to every posi-
- tion in the window, clearing the screen.
-
- The <STRONG>clear</STRONG> and <STRONG>wclear</STRONG> routines are like <STRONG>erase</STRONG> and <STRONG>werase</STRONG>,
- but they also call <STRONG>clearok</STRONG>, so that the screen is cleared
- completely on the next call to <STRONG>wrefresh</STRONG> for that window
- and repainted from scratch.
-
- 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.
-
- 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-
- dition (as set by <STRONG>wbkgdset</STRONG>) merged into them.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>OK</STRONG>. The SVr4.0 manual
- says "or a non-negative integer if <STRONG>immedok</STRONG> is set", but
- this appears to be an error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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,
- Issue 4. The standard specifies that they return <STRONG>ERR</STRONG> on
- failure, but specifies no error conditions.
-
- Some historic curses implementations had, as an undocu-
- mented feature, the ability to do the equivalent of
- <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touchwin(stdscr)</STRONG> or
- <STRONG>clear(stdscr)</STRONG>. This will not work under ncurses.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_color.3x.html b/ncurses-5.3/doc/html/man/curs_color.3x.html
deleted file mode 100644
index 2165ceb..0000000
--- a/ncurses-5.3/doc/html/man/curs_color.3x.html
+++ /dev/null
@@ -1,280 +0,0 @@
-<!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>
-<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>
-<H1>curs_color 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>start_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>, <STRONG>has_colors</STRONG>,
- <STRONG>can_change_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>COLOR_PAIR</STRONG>
- - <STRONG>curses</STRONG> color manipulation routines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- <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-
- pair with the routine <STRONG>init_pair</STRONG>. After it has been ini-
- tialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>), a macro defined in <STRONG>&lt;curses.h&gt;</STRONG>,
- can be used as a new video attribute.
-
- If a terminal is capable of redefining colors, the pro-
- grammer can use the routine <STRONG>init_color</STRONG> to change the defi-
- nition of a color. The routines <STRONG>has_colors</STRONG> and
- <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>, depending on
- whether the terminal has color capabilities and whether
- the programmer can change the colors. The routine
- <STRONG>color_content</STRONG> allows a programmer to extract the amounts
- of red, green, and blue components in an initialized
- color. The routine <STRONG>pair_content</STRONG> allows a programmer to
- find out how a given color-pair is currently defined.
-
- <STRONG>Routine</STRONG> <STRONG>Descriptions</STRONG>
- The <STRONG>start_color</STRONG> routine requires no arguments. It must be
- called if the programmer wants to use colors, and before
- any other color manipulation routine is called. It is
- good practice to call this routine right after <STRONG>initscr</STRONG>.
- <STRONG>start_color</STRONG> initializes eight basic colors (black, red,
- green, yellow, blue, magenta, cyan, and white), and two
- global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> (respectively
- defining the maximum number of colors and color-pairs the
- terminal can support). It also restores the colors on the
- terminal to the values they had when the terminal was just
- turned on.
-
- The <STRONG>init_pair</STRONG> routine changes the definition of a color-
- pair. It takes three arguments: the number of the color-
- pair to be changed, the foreground color number, and the
- background color number. For portable applications:
-
- - The value of the first argument must be between <STRONG>1</STRONG> and
- <STRONG>COLOR_PAIRS-1</STRONG>.
-
- - The value of the second and third arguments must be
- between 0 and <STRONG>COLORS</STRONG> (the 0 color pair is wired to
- white on black and cannot be changed).
-
- If the color-pair was previously initialized, the screen
- is refreshed and all occurrences of that color-pair are
- changed to the new definition.
-
- As an extension, ncurses allows you to set color pair 0
- via the <STRONG>assume_default_colors</STRONG> routine, or to specify the
- use of default colors (color number <STRONG>-1</STRONG>) if you first
- invoke the <STRONG>use_default_colors</STRONG> routine.
-
- The <STRONG>init_color</STRONG> routine changes the definition of a color.
- It takes four arguments: the number of the color to be
- changed followed by three RGB values (for the amounts of
- red, green, and blue components). The value of the first
- argument must be between <STRONG>0</STRONG> and <STRONG>COLORS</STRONG>. (See the section
- <STRONG>Colors</STRONG> for the default color index.) Each of the last
- three arguments must be a value between 0 and 1000. When
- <STRONG>init_color</STRONG> is used, all occurrences of that color on the
- screen immediately change to the new definition.
-
- The <STRONG>has_colors</STRONG> routine requires no arguments. It returns
- <STRONG>TRUE</STRONG> if the terminal can manipulate colors; otherwise, it
- returns <STRONG>FALSE</STRONG>. This routine facilitates writing terminal-
- independent programs. For example, a programmer can use
- it to decide whether to use color or some other video
- attribute.
-
- The <STRONG>can_change_color</STRONG> routine requires no arguments. It
- returns <STRONG>TRUE</STRONG> if the terminal supports colors and can
- change their definitions; other, it returns <STRONG>FALSE</STRONG>. This
- routine facilitates writing terminal-independent programs.
-
- The <STRONG>color_content</STRONG> routine gives programmers a way to find
- the intensity of the red, green, and blue (RGB) components
- in a color. It requires four arguments: the color number,
- and three addresses of <STRONG>short</STRONG>s for storing the information
- about the amounts of red, green, and blue components in
- the given color. The value of the first argument must be
- between 0 and <STRONG>COLORS</STRONG>. The values that are stored at the
- addresses pointed to by the last three arguments are
- between 0 (no component) and 1000 (maximum amount of com-
- ponent).
-
- The <STRONG>pair_content</STRONG> routine allows programmers to find out
- what colors a given color-pair consists of. It requires
- three arguments: the color-pair number, and two addresses
- of <STRONG>short</STRONG>s for storing the foreground and the background
- color numbers. The value of the first argument must be
- between 1 and <STRONG>COLOR_PAIRS-1</STRONG>. The values that are stored
- at the addresses pointed to by the second and third argu-
- ments are between 0 and <STRONG>COLORS</STRONG>.
-
- <STRONG>Colors</STRONG>
- In <STRONG>&lt;curses.h&gt;</STRONG> the following macros are defined. These are
- the default colors. <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG>
- is the default background color for all terminals.
-
- <STRONG>COLOR_BLACK</STRONG>
- <STRONG>COLOR_RED</STRONG>
- <STRONG>COLOR_GREEN</STRONG>
- <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>
- The routines <STRONG>can_change_color()</STRONG> and <STRONG>has_colors()</STRONG> return
- <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
-
- All other routines return the integer <STRONG>ERR</STRONG> upon failure and
- an <STRONG>OK</STRONG> (SVr4 specifies only "an integer value other than
- <STRONG>ERR</STRONG>") upon successful completion.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- In the <EM>ncurses</EM> implementation, there is a separate color
- activation flag, color palette, color pairs table, and
- associated COLORS and COLOR_PAIRS counts for each screen;
- the <STRONG>start_color</STRONG> function only affects the current screen.
- The SVr4/XSI interface is not really designed with this in
- mind, and historical implementations may use a single
- shared color palette.
-
- Note that setting an implicit background color via a color
- pair affects only character cells that a character write
- operation explicitly touches. To change the background
- color used when parts of a window are blanked by erasing
- or scrolling operations, see <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>.
-
- Several caveats apply on 386 and 486 machines with VGA-
- compatible graphics:
-
- - COLOR_YELLOW is actually brown. To get yellow, use
- COLOR_YELLOW combined with the <STRONG>A_BOLD</STRONG> attribute.
-
- - The A_BLINK attribute should in theory cause the
- background to go bright. This often fails to work,
- and even some cards for which it mostly works (such
- as the Paradise and compatibles) do the wrong thing
- when you try to set a bright "yellow" background (you
- get a blinking yellow foreground instead).
-
- - Color RGB values are not settable.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- This implementation satisfies XSI Curses's minimum maxi-
- mums for <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>.
-
- The <STRONG>init_pair</STRONG> routine accepts negative values of fore-
- ground and background color to support the
- <STRONG>use_default_colors</STRONG> extension, but only if that routine has
- been first invoked.
-
- The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background
- color for all terminals can be modified using the
- <STRONG>assume_default_colors</STRONG> extension,
-
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG>default_col-</STRONG>
- <STRONG><A HREF="default_colors.3x.html">ors(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/ncurses-5.3/doc/html/man/curs_delch.3x.html b/ncurses-5.3/doc/html/man/curs_delch.3x.html
deleted file mode 100644
index 10840ed..0000000
--- a/ncurses-5.3/doc/html/man/curs_delch.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_delch 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
-<H2>DESCRIPTION</H2><PRE>
- These routines delete the character under the cursor; all
- 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 <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>
- 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>
- 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,
- Issue 4. The standard specifies that they return <STRONG>ERR</STRONG> on
- failure, but specifies no error conditions.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_deleteln.3x.html b/ncurses-5.3/doc/html/man/curs_deleteln.3x.html
deleted file mode 100644
index 2c3fc1c..0000000
--- a/ncurses-5.3/doc/html/man/curs_deleteln.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_deleteln 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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 <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.
-
- 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>
- 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,
- Issue 4. The standard specifies that they return <STRONG>ERR</STRONG> on
- failure, but specifies no error conditions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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
- hardware line delete/insert unless <STRONG>idlok(...,</STRONG> <STRONG>TRUE)</STRONG> has
- been set on the current window.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_extend.3x.html b/ncurses-5.3/doc/html/man/curs_extend.3x.html
deleted file mode 100644
index 188389f..0000000
--- a/ncurses-5.3/doc/html/man/curs_extend.3x.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!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>
-<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>
-<H1>curs_extend 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>curses_version</STRONG>, <STRONG>use_extended_names</STRONG> - miscellaneous curses
- extensions
-
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
-<H2>DESCRIPTION</H2><PRE>
- These functions are extensions to the curses library which
- do not fit easily into other categories.
-
- 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 <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
- 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
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="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>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey.
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.3/doc/html/man/curs_get_wch.3x.html b/ncurses-5.3/doc/html/man/curs_get_wch.3x.html
deleted file mode 100644
index ddd3f4b..0000000
--- a/ncurses-5.3/doc/html/man/curs_get_wch.3x.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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/ncurses-5.3/doc/html/man/curs_get_wstr.3x.html b/ncurses-5.3/doc/html/man/curs_get_wstr.3x.html
deleted file mode 100644
index b3b066d..0000000
--- a/ncurses-5.3/doc/html/man/curs_get_wstr.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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/ncurses-5.3/doc/html/man/curs_getcchar.3x.html b/ncurses-5.3/doc/html/man/curs_getcchar.3x.html
deleted file mode 100644
index 0ae39ca..0000000
--- a/ncurses-5.3/doc/html/man/curs_getcchar.3x.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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>
diff --git a/ncurses-5.3/doc/html/man/curs_getch.3x.html b/ncurses-5.3/doc/html/man/curs_getch.3x.html
deleted file mode 100644
index 76b20e4..0000000
--- a/ncurses-5.3/doc/html/man/curs_getch.3x.html
+++ /dev/null
@@ -1,335 +0,0 @@
-<!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>
-<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>
-<H1>curs_getch 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, <STRONG>mvwgetch</STRONG>, <STRONG>ungetch</STRONG>, <STRONG>has_key</STRONG> - get
- (or push back) characters from <STRONG>curses</STRONG> terminal keyboard
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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
- is waiting, the value <STRONG>ERR</STRONG> is returned. In delay mode, the
- program waits until the system passes text through to the
- program. Depending on the setting of <STRONG>cbreak</STRONG>, this is
- after one character (cbreak mode), or after the first new-
- line (nocbreak mode). In half-delay mode, the program
- waits until a character is typed or the specified timeout
- has been reached.
-
- Unless <STRONG>noecho</STRONG> has been set, then the character will also
- be echoed into the designated window according to the fol-
- lowing rules: If the character is the current erase char-
- acter, left arrow, or backspace, the cursor is moved one
- space to the left and that screen position is erased as if
- <STRONG>delch</STRONG> had been called. If the character value is any
- 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-
- fied since the last call to <STRONG>wrefresh</STRONG>, <STRONG>wrefresh</STRONG> will be
- called before another character is read.
-
- If <STRONG>keypad</STRONG> is <STRONG>TRUE</STRONG>, and a function key is pressed, the
- token for that function key is returned instead of the raw
- characters. Possible function keys are defined in
- <STRONG>&lt;curses.h&gt;</STRONG> as macros with values outside the range of
- 8-bit characters whose names begin with <STRONG>KEY_.</STRONG> Thus, a
- variable intended to hold the return value of a function
- key must be of short size or larger.
-
- When a character that could be the beginning of a function
- key is received (which, on modern terminals, means an
- escape character), <STRONG>curses</STRONG> sets a timer. If the remainder
- of the sequence does not come in within the designated
- time, the character is passed through; otherwise, the
- function key value is returned. For this reason, many
- terminals experience a delay between the time a user
- presses the escape key and the escape is returned to the
- program.
-
- 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.
-
-
- <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
- The following function keys, defined in <STRONG>&lt;curses.h&gt;</STRONG>, might
- be returned by <STRONG>getch</STRONG> if <STRONG>keypad</STRONG> has been enabled. Note
- that not all of these are necessarily supported on any
- particular terminal.
-
- <EM>Name</EM> <EM>Key</EM> <EM>name</EM>
-
- KEY_BREAK Break key
- KEY_DOWN The four arrow keys ...
- KEY_UP
- KEY_LEFT
- KEY_RIGHT
- KEY_HOME Home key (upward+left arrow)
- KEY_BACKSPACE Backspace
- KEY_F0 Function keys; space for 64 keys
- is reserved.
- KEY_F(<EM>n</EM>) For 0 &lt;= <EM>n</EM> &lt;= 63
- KEY_DL Delete line
- KEY_IL Insert line
- KEY_DC Delete character
- KEY_IC Insert char or enter insert mode
- KEY_EIC Exit insert char mode
- KEY_CLEAR Clear screen
- KEY_EOS Clear to end of screen
- KEY_EOL Clear to end of line
- KEY_SF Scroll 1 line forward
- KEY_SR Scroll 1 line backward (reverse)
- KEY_NPAGE Next page
- KEY_PPAGE Previous page
- KEY_STAB Set tab
- KEY_CTAB Clear tab
- KEY_CATAB Clear all tabs
- KEY_ENTER Enter or send
- KEY_SRESET Soft (partial) reset
- KEY_RESET Reset or hard reset
- KEY_PRINT Print or copy
- KEY_LL Home down or bottom (lower left).
- KEY_A1 Upper left of keypad
- KEY_A3 Upper right of keypad
- KEY_B2 Center of keypad
- KEY_C1 Lower left of keypad
- KEY_C3 Lower right of keypad
- KEY_BTAB Back tab key
- KEY_BEG Beg(inning) key
- KEY_CANCEL Cancel key
-
- KEY_CLOSE Close key
- KEY_COMMAND Cmd (command) key
- KEY_COPY Copy key
- KEY_CREATE Create key
- KEY_END End key
- KEY_EXIT Exit key
- KEY_FIND Find key
- KEY_HELP Help key
- KEY_MARK Mark key
- KEY_MESSAGE Message key
- KEY_MOUSE Mouse event read
- KEY_MOVE Move key
- KEY_NEXT Next object key
- KEY_OPEN Open key
- KEY_OPTIONS Options key
- KEY_PREVIOUS Previous object key
- KEY_REDO Redo key
- KEY_REFERENCE Ref(erence) key
- KEY_REFRESH Refresh key
- KEY_REPLACE Replace key
- KEY_RESIZE Screen resized
- KEY_RESTART Restart key
- KEY_RESUME Resume key
- KEY_SAVE Save key
- KEY_SBEG Shifted beginning key
- KEY_SCANCEL Shifted cancel key
- KEY_SCOMMAND Shifted command key
- KEY_SCOPY Shifted copy key
- KEY_SCREATE Shifted create key
- KEY_SDC Shifted delete char key
- KEY_SDL Shifted delete line key
- KEY_SELECT Select key
- KEY_SEND Shifted end key
- KEY_SEOL Shifted clear line key
- KEY_SEXIT Shifted exit key
- KEY_SFIND Shifted find key
- KEY_SHELP Shifted help key
- KEY_SHOME Shifted home key
- KEY_SIC Shifted input key
- KEY_SLEFT Shifted left arrow key
- KEY_SMESSAGE Shifted message key
- KEY_SMOVE Shifted move key
- KEY_SNEXT Shifted next key
- KEY_SOPTIONS Shifted options key
- KEY_SPREVIOUS Shifted prev key
- KEY_SPRINT Shifted print key
- KEY_SREDO Shifted redo key
- KEY_SREPLACE Shifted replace key
- KEY_SRIGHT Shifted right arrow
- KEY_SRSUME Shifted resume key
- KEY_SSAVE Shifted save key
- KEY_SSUSPEND Shifted suspend key
- KEY_SUNDO Shifted undo key
-
- KEY_SUSPEND Suspend key
- KEY_UNDO Undo key
-
- Keypad is arranged like this:
-
- +-----+------+-------+
- | <STRONG>A1</STRONG> | <STRONG>up</STRONG> | <STRONG>A3</STRONG> |
- +-----+------+-------+
- |<STRONG>left</STRONG> | <STRONG>B2</STRONG> | <STRONG>right</STRONG> |
- +-----+------+-------+
- | <STRONG>C1</STRONG> | <STRONG>down</STRONG> | <STRONG>C3</STRONG> |
- +-----+------+-------+
- The <STRONG>has_key</STRONG> routine takes a key value from the above list,
- and returns TRUE or FALSE according to whether the current
- terminal type recognizes a key with that value.
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an
- integer value other than <STRONG>ERR</STRONG> (<STRONG>OK</STRONG> in the case of ungetch())
- upon successful completion.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Use of the escape key by a programmer for a single charac-
- ter function is discouraged, as it will cause a delay of
- up to one second while the keypad code looks for a follow-
- ing function-key sequence.
-
- Note that some keys may be the same as commonly used con-
- trol keys, e.g., KEY_ENTER versus control/M, KEY_BACKSPACE
- 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.
-
- Note that <STRONG>getch</STRONG>, <STRONG>mvgetch</STRONG>, and <STRONG>mvwgetch</STRONG> may be macros.
-
- 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 <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>
- 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.
-
- 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.
-
- 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
- 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 <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>
- <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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_getstr.3x.html b/ncurses-5.3/doc/html/man/curs_getstr.3x.html
deleted file mode 100644
index 029ce0c..0000000
--- a/ncurses-5.3/doc/html/man/curs_getstr.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_getstr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>getstr</STRONG>, <STRONG>getnstr</STRONG>, <STRONG>wgetstr</STRONG>, <STRONG>wgetnstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvgetnstr</STRONG>,
- <STRONG>mvwgetstr</STRONG>, <STRONG>mvwgetnstr</STRONG> - accept character strings from
- <STRONG>curses</STRONG> terminal keyboard
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- The function <STRONG>getstr</STRONG> is equivalent to a series of calls to
- <STRONG>getch</STRONG>, until a newline or carriage return is received (the
- terminating character is not included in the returned
- string). The resulting value is placed in the area
- pointed to by the character pointer <EM>str</EM>.
-
- <STRONG>wgetnstr</STRONG> reads at most <EM>n</EM> characters, thus preventing a
- possible overflow of the input buffer. Any attempt to
- enter more characters (other than the terminating newline
- or carriage return) causes a beep. Function keys also
- cause a beep and are ignored. The <STRONG>getnstr</STRONG> function reads
- from the <EM>stdscr</EM> default window.
-
- 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).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- 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>
- 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
- 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"
- 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).
-
- 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>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(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/ncurses-5.3/doc/html/man/curs_getyx.3x.html b/ncurses-5.3/doc/html/man/curs_getyx.3x.html
deleted file mode 100644
index d6db1a8..0000000
--- a/ncurses-5.3/doc/html/man/curs_getyx.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_getyx 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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 <EM>win</EM> is a subwindow, the <STRONG>getparyx</STRONG> macro places the
- beginning coordinates of the subwindow relative to the
- 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 <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>
- 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>
- 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>
- 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>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_in_wch.3x.html b/ncurses-5.3/doc/html/man/curs_in_wch.3x.html
deleted file mode 100644
index 5aa287e..0000000
--- a/ncurses-5.3/doc/html/man/curs_in_wch.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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/ncurses-5.3/doc/html/man/curs_in_wchstr.3x.html b/ncurses-5.3/doc/html/man/curs_in_wchstr.3x.html
deleted file mode 100644
index 0277eb4..0000000
--- a/ncurses-5.3/doc/html/man/curs_in_wchstr.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
diff --git a/ncurses-5.3/doc/html/man/curs_inch.3x.html b/ncurses-5.3/doc/html/man/curs_inch.3x.html
deleted file mode 100644
index b3f1485..0000000
--- a/ncurses-5.3/doc/html/man/curs_inch.3x.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!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>
-<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>
-<H1>curs_inch 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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
- <STRONG>&lt;curses.h&gt;</STRONG> can be used with the <STRONG>&amp;</STRONG> (logical AND) operator
- to extract the character or attributes alone.
-
-
- <STRONG>Attributes</STRONG>
- The following bit-masks may be AND-ed with characters
- returned by <STRONG>winch</STRONG>.
-
- <STRONG>A_CHARTEXT</STRONG> Bit-mask to extract character
- <STRONG>A_ATTRIBUTES</STRONG> Bit-mask to extract attributes
- <STRONG>A_COLOR</STRONG> Bit-mask to extract color-pair field information
-
-
-</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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_inchstr.3x.html b/ncurses-5.3/doc/html/man/curs_inchstr.3x.html
deleted file mode 100644
index cdf33a2..0000000
--- a/ncurses-5.3/doc/html/man/curs_inchstr.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_inchstr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>inchstr</STRONG>, <STRONG>inchnstr</STRONG>, <STRONG>winchstr</STRONG>, <STRONG>winchnstr</STRONG>, <STRONG>mvinchstr</STRONG>,
- <STRONG>mvinchnstr</STRONG>, <STRONG>mvwinchstr</STRONG>, <STRONG>mvwinchnstr</STRONG> - get a string of
- characters (and attributes) from a <STRONG>curses</STRONG> window
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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.
- 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 <EM>chstr</EM> [see <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>].
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an
- integer value other than <STRONG>ERR</STRONG> upon successful completion
- (the number of characters retrieved, exclusive of the
- trailing 0).
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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
- meaning of the return value.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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 <STRONG>OK</STRONG>.
-
-
-</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/ncurses-5.3/doc/html/man/curs_initscr.3x.html b/ncurses-5.3/doc/html/man/curs_initscr.3x.html
deleted file mode 100644
index 74f7200..0000000
--- a/ncurses-5.3/doc/html/man/curs_initscr.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_initscr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>initscr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>endwin</STRONG>, <STRONG>isendwin</STRONG>, <STRONG>set_term</STRONG>, <STRONG>delscreen</STRONG> -
- <STRONG>curses</STRONG> screen initialization and manipulation routines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- <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-
- izes all <STRONG>curses</STRONG> data structures. <STRONG>initscr</STRONG> also causes the
- first call to <STRONG>refresh</STRONG> to clear the screen. If errors
- occur, <STRONG>initscr</STRONG> writes an appropriate error message to
- standard error and exits; otherwise, a pointer is returned
- to <STRONG>stdscr</STRONG>.
-
- 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
- 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
- proper non-visual mode. Calling <STRONG>refresh</STRONG> or <STRONG>doupdate</STRONG> after
- a temporary escape causes the program to resume visual
- mode.
-
- The <STRONG>isendwin</STRONG> routine returns <STRONG>TRUE</STRONG> if <STRONG>endwin</STRONG> has been
- called without any subsequent calls to <STRONG>wrefresh</STRONG>, and <STRONG>FALSE</STRONG>
- otherwise.
-
- 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.
-
- 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>
- <STRONG>endwin</STRONG> returns the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon
- successful completion.
-
- Routines that return pointers always return <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4. It specifies that portable applications must not
- call <STRONG>initscr</STRONG> more than once.
-
- Old versions of curses, e.g., BSD 4.4, may have returned a
- null pointer from <STRONG>initscr</STRONG> when an error is detected,
- rather than exiting. It is safe but redundant to check
- the return value of <STRONG>initscr</STRONG> in XSI Curses.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>,
- <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_inopts.3x.html b/ncurses-5.3/doc/html/man/curs_inopts.3x.html
deleted file mode 100644
index 9e8ce06..0000000
--- a/ncurses-5.3/doc/html/man/curs_inopts.3x.html
+++ /dev/null
@@ -1,280 +0,0 @@
-<!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>
-<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>
-<H1>curs_inopts 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>cbreak</STRONG>, <STRONG>nocbreak</STRONG>, <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>key-</STRONG>
- <STRONG>pad</STRONG>, <STRONG>meta</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>raw</STRONG>, <STRONG>noraw</STRONG>, <STRONG>noqiflush</STRONG>,
- <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, <STRONG>wtimeout</STRONG>, <STRONG>typeahead</STRONG> - <STRONG>curses</STRONG> input
- options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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
- 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
- available to the program. The <STRONG>nocbreak</STRONG> routine returns
- the terminal to normal (cooked) mode.
-
- Initially the terminal may or may not be in <STRONG>cbreak</STRONG> mode,
- as the mode is inherited; therefore, a program should call
- <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 <STRONG>echo</STRONG> and <STRONG>noecho</STRONG> routines control whether characters
- typed by the user are echoed by <STRONG>getch</STRONG> as they are typed.
- Echoing by the tty driver is always disabled, but ini-
- tially <STRONG>getch</STRONG> is in echo mode, so characters typed are
- echoed. Authors of most interactive programs prefer to do
- their own echoing in a controlled area of the screen, or
- not to echo at all, so they disable echoing by calling
- <STRONG>noecho</STRONG>. [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these
- routines interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
-
- The <STRONG>halfdelay</STRONG> routine is used for half-delay mode, which
- is similar to <STRONG>cbreak</STRONG> mode in that characters typed by the
- user are immediately available to the program. However,
- after blocking for <EM>tenths</EM> tenths of seconds, ERR is
- returned if nothing has been typed. The value of <STRONG>tenths</STRONG>
- must be a number between 1 and 255. Use <STRONG>nocbreak</STRONG> to leave
- half-delay mode.
-
- If the <STRONG>intrflush</STRONG> option is enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), when an
- interrupt key is pressed on the keyboard (interrupt,
- break, quit) all output in the tty driver queue will be
- flushed, giving the effect of faster response to the
- interrupt, but causing <STRONG>curses</STRONG> to have the wrong idea of
- what is on the screen. Disabling (<EM>bf</EM> is <STRONG>FALSE</STRONG>), the
- option prevents the flush. The default for the option is
- inherited from the tty driver settings. The window argu-
- ment is ignored.
-
- 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-
- 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
- driver [see <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>]. To force 8 bits to be returned,
- invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>); this is equivalent, under POSIX,
- to setting the CS8 flag on the terminal. To force 7 bits
- to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>); this is equiva-
- lent, under POSIX, to setting the CS7 flag on the termi-
- nal. The window argument, <EM>win</EM>, is always ignored. If the
- terminfo capabilities <STRONG>smm</STRONG> (meta_on) and <STRONG>rmm</STRONG> (meta_off) are
- defined for the terminal, <STRONG>smm</STRONG> is sent to the terminal when
- <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.
-
- 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
- bits in the tty driver that are not set by <STRONG>curses</STRONG>.
-
- 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
- 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.
-
- 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
- <EM>delay</EM> milliseconds (where <EM>delay</EM> is positive).
-
- The <STRONG>curses</STRONG> library does ``line-breakout optimization'' by
- looking for typeahead periodically while updating the
- screen. If input is found, and it is coming from a tty,
- the current update is postponed until <STRONG>refresh</STRONG> or <STRONG>doupdate</STRONG>
- is called again. This allows faster response to commands
- typed in advance. Normally, the input FILE pointer passed
- 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>
- All routines that return an integer return <STRONG>ERR</STRONG> upon fail-
- ure and OK (SVr4 specifies only "an integer value other
- than <STRONG>ERR</STRONG>") upon successful completion, unless otherwise
- noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4.
-
- The ncurses library obeys the XPG4 standard and the his-
- 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 <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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>node-</STRONG>
- <STRONG>lay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG>
- may be macros.
-
- The <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> calls follow historical practice in
- that they attempt to restore to normal (`cooked') mode
- from raw and cbreak modes respectively. Mixing raw/noraw
- and cbreak/nocbreak calls leads to tty driver control
- states that are hard to predict or understand; it is not
- recommended.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_ins_wch.3x.html b/ncurses-5.3/doc/html/man/curs_ins_wch.3x.html
deleted file mode 100644
index aa07ca3..0000000
--- a/ncurses-5.3/doc/html/man/curs_ins_wch.3x.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!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/ncurses-5.3/doc/html/man/curs_ins_wstr.3x.html b/ncurses-5.3/doc/html/man/curs_ins_wstr.3x.html
deleted file mode 100644
index 43e874b..0000000
--- a/ncurses-5.3/doc/html/man/curs_ins_wstr.3x.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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>
diff --git a/ncurses-5.3/doc/html/man/curs_insch.3x.html b/ncurses-5.3/doc/html/man/curs_insch.3x.html
deleted file mode 100644
index 4ad06bd..0000000
--- a/ncurses-5.3/doc/html/man/curs_insch.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_insch 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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.
- The insertion operation does not change the cursor posi-
- tion.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines that return an integer return <STRONG>ERR</STRONG> upon fail-
- ure and OK (SVr4 specifies only "an integer value other
- than <STRONG>ERR</STRONG>") upon successful completion, unless otherwise
- noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- These routines do not necessarily imply use of a hardware
- insert character feature.
-
- Note that <STRONG>insch</STRONG>, <STRONG>mvinsch</STRONG>, and <STRONG>mvwinsch</STRONG> 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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_insstr.3x.html b/ncurses-5.3/doc/html/man/curs_insstr.3x.html
deleted file mode 100644
index 0e95f56..0000000
--- a/ncurses-5.3/doc/html/man/curs_insstr.3x.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!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>
-<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>
-<H1>curs_insstr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <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>
-<H2>DESCRIPTION</H2><PRE>
- These routines insert a character string (as many charac-
- ters as will fit on the line) before the character under
- the cursor. All characters to the right of the cursor are
- shifted right, with the possibility of the rightmost char-
- acters on the line being lost. The cursor position does
- not change (after moving to <EM>y</EM>, <EM>x</EM>, if specified). The four
- routines with <EM>n</EM> as the last argument insert a leading sub-
- string of at most <EM>n</EM> characters. If <EM>n</EM>&lt;=0, then the entire
- string is inserted.
-
- If a character in <EM>str</EM> is a tab, newline, carriage return
- or backspace, the cursor is moved appropriately within the
- window. A newline also does a <STRONG>clrtoeol</STRONG> before moving.
- Tabs are considered to be at every eighth column. If a
- character in <EM>str</EM> is another control character, it is drawn
- in the <STRONG>^</STRONG><EM>X</EM> notation. Calling <STRONG>winch</STRONG> after adding a control
- character (and moving to it, if necessary) does not return
- the control character, but instead returns a character in
- the ^-representation of the control character.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- All routines that return an integer return <STRONG>ERR</STRONG> upon fail-
- ure and OK (SVr4 specifies only "an integer value other
- than <STRONG>ERR</STRONG>") upon successful completion, unless otherwise
- noted in the preceding routine descriptions.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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.
- The XSI Curses error conditions <STRONG>EILSEQ</STRONG> and <STRONG>EILOVERFLOW</STRONG>
- associated with extended-level conformance are not yet
- detected (this implementation does not yet support XPG4
- multibyte characters).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_instr.3x.html b/ncurses-5.3/doc/html/man/curs_instr.3x.html
deleted file mode 100644
index 3bd43e8..0000000
--- a/ncurses-5.3/doc/html/man/curs_instr.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_instr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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-
- 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>
- 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>
- Note that all routines except <STRONG>winnstr</STRONG> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses error conditions <STRONG>EILSEQ</STRONG> and <STRONG>EILOVERFLOW</STRONG>
- associated with extended-level conformance are not yet
- detected (this implementation does not yet support XPG4
- multibyte characters). SVr4 does not document whether a
- length limit includes or excludes the trailing NUL.
-
- The ncurses library extends the XSI description by allow-
- ing a negative value for <EM>n</EM>. In this case, the functions
- return the string ending at the right margin.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_inwstr.3x.html b/ncurses-5.3/doc/html/man/curs_inwstr.3x.html
deleted file mode 100644
index 297e06b..0000000
--- a/ncurses-5.3/doc/html/man/curs_inwstr.3x.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!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>
diff --git a/ncurses-5.3/doc/html/man/curs_kernel.3x.html b/ncurses-5.3/doc/html/man/curs_kernel.3x.html
deleted file mode 100644
index beaea46..0000000
--- a/ncurses-5.3/doc/html/man/curs_kernel.3x.html
+++ /dev/null
@@ -1,226 +0,0 @@
-<!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>
-<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>
-<H1>curs_kernel 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>def_prog_mode</STRONG>, <STRONG>def_shell_mode</STRONG>, <STRONG>reset_prog_mode</STRONG>,
- <STRONG>reset_shell_mode</STRONG>, <STRONG>resetty</STRONG>, <STRONG>savetty</STRONG>, <STRONG>getsyx</STRONG>, <STRONG>setsyx</STRONG>, <STRONG>ripof-</STRONG>
- <STRONG>fline</STRONG>, <STRONG>curs_set</STRONG>, <STRONG>napms</STRONG> - low-level <STRONG>curses</STRONG> routines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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
- <STRONG>curses</STRONG> capabilities. Theses routines typically are used
- inside library routines.
-
- 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.
-
- 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
- cursor. The library routine would call <STRONG>getsyx</STRONG> at the
- beginning, do its manipulation of its own windows, do a
- <STRONG>wnoutrefresh</STRONG> on its windows, call <STRONG>setsyx</STRONG>, and then call
- <STRONG>doupdate</STRONG>.
-
- The <STRONG>ripoffline</STRONG> routine provides access to the same facil-
- ity that <STRONG>slk_init</STRONG> [see <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>] uses to reduce the
- 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
- <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-
- 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.
-
- <STRONG>ripoffline</STRONG> can be called up to five times before calling
- <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>.
-
- The <STRONG>curs_set</STRONG> routine sets the cursor state is set to
- invisible, normal, or very visible for <STRONG>visibility</STRONG> equal to
- <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 <STRONG>napms</STRONG> routine is used to sleep for <EM>ms</EM> milliseconds.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>curs_set</STRONG>, these routines always return <STRONG>OK</STRONG>.
- <STRONG>curs_set</STRONG> returns the previous cursor state, or <STRONG>ERR</STRONG> if the
- requested <EM>visibility</EM> is not supported.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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
- <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.
-
- 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>
- 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.
-
- 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>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_mouse.3x.html b/ncurses-5.3/doc/html/man/curs_mouse.3x.html
deleted file mode 100644
index 9a09a3f..0000000
--- a/ncurses-5.3/doc/html/man/curs_mouse.3x.html
+++ /dev/null
@@ -1,281 +0,0 @@
-<!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>
-<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>
-<H1>curs_mouse 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>wenclose</STRONG>, <STRONG>mouse_trafo</STRONG>,
- <STRONG>wmouse_trafo</STRONG>, <STRONG>mouseinterval</STRONG> - mouse interface through
- curses
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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
- <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 <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
- events 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; setting a nonzero mask may turn it on.
- Whether this happens is device-dependent.
-
- Here are the mouse event type masks:
-
- <EM>Name</EM> <EM>Description</EM>
- ---------------------------------------------------------------------
- BUTTON1_PRESSED mouse button 1 down
- BUTTON1_RELEASED mouse button 1 up
- BUTTON1_CLICKED mouse button 1 clicked
- BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
- BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
-
- BUTTON2_PRESSED mouse button 2 down
- BUTTON2_RELEASED mouse button 2 up
- BUTTON2_CLICKED mouse button 2 clicked
- BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
- BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
- BUTTON3_PRESSED mouse button 3 down
- BUTTON3_RELEASED mouse button 3 up
- BUTTON3_CLICKED mouse button 3 clicked
- BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
- BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
- BUTTON4_PRESSED mouse button 4 down
- BUTTON4_RELEASED mouse button 4 up
- BUTTON4_CLICKED mouse button 4 clicked
- BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
- BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
- BUTTON_SHIFT shift was down during button state change
- BUTTON_CTRL control was down during button state change
- BUTTON_ALT alt was down during button state change
- ALL_MOUSE_EVENTS report all button state changes
- REPORT_MOUSE_POSITION report mouse movement
-
- Once a class of mouse events have been made visible in a
- window, calling the <STRONG>wgetch</STRONG> function on that window may
- return <STRONG>KEY_MOUSE</STRONG> as an indicator that a mouse event has
- been queued. To read the event data and pop the event off
- the queue, call <STRONG>getmouse</STRONG>. This function will return <STRONG>OK</STRONG> if
- a mouse event is actually visible in the given window, <STRONG>ERR</STRONG>
- 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.
-
- 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.
-
- 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.
-
- 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
- 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
- <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
- is being simulated in a window by a function such as <STRONG>get-</STRONG>
- <STRONG>str</STRONG> that expects a linefeed for input-loop termination.
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG> and <STRONG>mouseinterval</STRONG> return the integer
- <STRONG>ERR</STRONG> upon failure or <STRONG>OK</STRONG> upon successful completion. <STRONG>mouse-</STRONG>
- <STRONG>mask</STRONG> returns the mask of reportable events. <STRONG>wenclose</STRONG> and
- <STRONG>wmouse_trafo</STRONG> are boolean functions returning <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>
- depending on their test result.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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.
-
- The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the
- preprocessor can be used to test whether these features
- are present (its value is 1). If the interface is
- changed, the value of <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incre-
- mented.
-
- The order of the <STRONG>MEVENT</STRONG> structure members is not guaran-
- teed. Additional fields may be added to the structure in
- the future.
-
- Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented using
- either xterm's built-in mouse-tracking API or 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 <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
- gloves.
-
-
-</PRE>
-<H2>BUGS</H2><PRE>
- Mouse events under xterm will not in fact be ignored dur-
- ing cooked mode, if they have been enabled by <STRONG>wmousemask</STRONG>.
- Instead, the xterm mouse report sequence will appear in
- the string read.
-
- Mouse events under xterm will not be detected correctly in
- a window with its keypad bit off, since they are inter-
- preted as a variety of function key. Your terminfo
- description must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning
- of the response from xterm for mouse clicks).
-
- Because there are no standard terminal responses that
- would serve to identify terminals which support the xterm
- mouse protocol, <STRONG>ncurses</STRONG> assumes that if your $TERM envi-
- ronment variable contains "xterm", or <STRONG>kmous</STRONG> is defined in
- the terminal description, then the terminal may send mouse
- events.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_move.3x.html b/ncurses-5.3/doc/html/man/curs_move.3x.html
deleted file mode 100644
index 890b78a..0000000
--- a/ncurses-5.3/doc/html/man/curs_move.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_move 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>move</STRONG>, <STRONG>wmove</STRONG> - move <STRONG>curses</STRONG> window cursor
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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
- 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>
- 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>
- Note that <STRONG>move</STRONG> may be a macro.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4. The standard specifies that if (y,x) is within a
- multi-column character, the cursor is moved to the first
- column of that character; however, this implementation
- does not yet support the extended-level XSI multibyte
- characters.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_outopts.3x.html b/ncurses-5.3/doc/html/man/curs_outopts.3x.html
deleted file mode 100644
index 9d2d173..0000000
--- a/ncurses-5.3/doc/html/man/curs_outopts.3x.html
+++ /dev/null
@@ -1,226 +0,0 @@
-<!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>
-<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>
-<H1>curs_outopts 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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
- within <STRONG>curses</STRONG>. All options are initially <STRONG>FALSE</STRONG>, unless
- otherwise stated. It is not necessary to turn these
- options off before calling <STRONG>endwin</STRONG>.
-
- 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
- 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.
-
- 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
- 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-
- not be used, <STRONG>curses</STRONG> redraws the changed portions of all
- lines.
-
- 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
- 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.
-
- 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
- the window cursor being refreshed. The <STRONG>leaveok</STRONG> option
- allows the cursor to be left wherever the update happens
- to leave it. It is useful for applications where the cur-
- sor is not used, since it reduces the need for cursor
- motions.
-
- The <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG> routines allow the applica-
- tion programmer to set a software scrolling region in a
- window. <EM>top</EM> and <EM>bot</EM> are the line numbers of the top and
- bottom margin of the scrolling region. (Line 0 is the top
- line of the window.) If this option and <STRONG>scrollok</STRONG> are
- enabled, an attempt to move off the bottom margin line
- causes all lines in the scrolling region to scroll one
- line in the direction of the first line. Only the text of
- the window is scrolled. (Note that this has nothing to do
- 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.)
-
- 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
- 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 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>
- These functions are described in the XSI Curses standard,
- Issue 4.
-
- 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.
-
- 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 <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
- should be made invisible as a side-effect of <STRONG>leaveok</STRONG>.
- SVr4 curses documentation does this, but the code does
- not. Use <STRONG>curs_set</STRONG> to make the cursor invisible.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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 <STRONG>immedok</STRONG> routine is useful for windows that are used as
- terminal emulators.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_overlay.3x.html b/ncurses-5.3/doc/html/man/curs_overlay.3x.html
deleted file mode 100644
index 64b4f71..0000000
--- a/ncurses-5.3/doc/html/man/curs_overlay.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_overlay 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>overlay</STRONG>, <STRONG>overwrite</STRONG>, <STRONG>copywin</STRONG> - overlay and manipulate over-
- lapped <STRONG>curses</STRONG> windows
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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 <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>
- 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>
- 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
- behavior in the presence of characters with multibyte ren-
- ditions (not yet supported in this implementation).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <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>
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_pad.3x.html b/ncurses-5.3/doc/html/man/curs_pad.3x.html
deleted file mode 100644
index 0da61e8..0000000
--- a/ncurses-5.3/doc/html/man/curs_pad.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_pad 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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.
- 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.
-
- The <STRONG>subpad</STRONG> routine creates and returns a pointer to a sub-
- window within a pad with the given number of lines,
- <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
- often be necessary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM>
- before calling <STRONG>prefresh</STRONG>.
-
- The <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> routines are analogous to
- <STRONG>wrefresh</STRONG> and <STRONG>wnoutrefresh</STRONG> except that they relate to pads
- instead of windows. The additional parameters are needed
- to indicate what part of the pad and screen are involved.
- <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
- values of <EM>pminrow</EM>, <EM>pmincol</EM>, <EM>sminrow</EM>, or <EM>smincol</EM> are
- treated as if they were zero.
-
- The <STRONG>pechochar</STRONG> routine is functionally equivalent to a call
- to <STRONG>addch</STRONG> followed by a call to <STRONG>refresh</STRONG>, a call to <STRONG>waddch</STRONG>
- 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
- instead of their equivalents. In the case of <STRONG>pechochar</STRONG>,
- the last location of the pad on the screen is reused for
- the arguments to <STRONG>prefresh</STRONG>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
- and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
- <STRONG>ERR</STRONG>") upon successful completion.
-
- Routines that return pointers return <STRONG>NULL</STRONG> on error, and
- set <STRONG>errno</STRONG> to <STRONG>ENOMEM</STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <STRONG>pechochar</STRONG> may be a macro.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>,
- <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_print.3x.html b/ncurses-5.3/doc/html/man/curs_print.3x.html
deleted file mode 100644
index adf7ccc..0000000
--- a/ncurses-5.3/doc/html/man/curs_print.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_print 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>mcprint</STRONG> - ship binary data to printer
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <STRONG>int</STRONG> <STRONG>mcprint(char</STRONG> <STRONG>*data,</STRONG> <STRONG>int</STRONG> <STRONG>len);</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
- 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
- (typically about half of its nominal cps rating). Dot-
- matrix printers and 6-page-per-minute lasers can typically
- handle 80cps, so a good conservative rule of thumb is to
- sleep for a second after shipping each 80-character line.
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The <STRONG>mcprint</STRONG> function returns <STRONG>ERR</STRONG> if the write operation
- aborted for some reason. In this case, errno will contain
- either an error associated with <STRONG>write(2)</STRONG> or one of the
- following:
-
- ENODEV
- Capabilities for printer redirection don't exist.
-
- ENOMEM
- Couldn't allocate sufficient memory to buffer the
- printer write.
-
- When <STRONG>mcprint</STRONG> succeeds, it returns the number of char-
- acters actually sent to the printer.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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>
- Padding in the <STRONG>mc5p</STRONG>, <STRONG>mc4</STRONG> and <STRONG>mc5</STRONG> capabilities will not be
- interpreted.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_printw.3x.html b/ncurses-5.3/doc/html/man/curs_printw.3x.html
deleted file mode 100644
index 0a61b82..0000000
--- a/ncurses-5.3/doc/html/man/curs_printw.3x.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!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>
-<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>
-<H1>curs_printw 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <STRONG>int</STRONG> <STRONG>printw(char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
- <STRONG>int</STRONG> <STRONG>wprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvprintw(int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
- <STRONG>int</STRONG> <STRONG>mvwprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>...);</STRONG>
- <STRONG>int</STRONG> <STRONG>vwprintw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>varglist);</STRONG>
- <STRONG>int</STRONG> <STRONG>vw_printw(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>char</STRONG> <STRONG>*fmt,</STRONG> <STRONG>va_list</STRONG> <STRONG>varglist);</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG> routines are
- analogous to <STRONG>printf</STRONG> [see <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>]. In effect, the
- string that would be output by <STRONG>printf</STRONG> is output instead as
- though <STRONG>waddstr</STRONG> were used on the given window.
-
- The <STRONG>vwprintw</STRONG> and <STRONG>wv_printw</STRONG> routines are analogous to
- <STRONG>vprintf</STRONG> [see <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>] and perform a <STRONG>wprintw</STRONG> using a
- variable argument list. The third argument is a <STRONG>va_list</STRONG>,
- a pointer to a list of arguments, as defined in
- <STRONG>&lt;stdarg.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
- and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
- <STRONG>ERR</STRONG>") upon successful completion.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions. The function <STRONG>vwprintw</STRONG> is marked TO BE WITHDRAWN,
- and is to be replaced by a function <STRONG>vw_printw</STRONG> using the
- <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>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG>vprintf(3S)</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/ncurses-5.3/doc/html/man/curs_refresh.3x.html b/ncurses-5.3/doc/html/man/curs_refresh.3x.html
deleted file mode 100644
index 3ac1d00..0000000
--- a/ncurses-5.3/doc/html/man/curs_refresh.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_refresh 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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-
- tures. The routine <STRONG>wrefresh</STRONG> copies the named window to
- the physical terminal screen, taking into account what is
- 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.
-
- The routine <STRONG>wrefresh</STRONG> works by first calling <STRONG>wnoutrefresh</STRONG>,
- which copies the named window to the virtual screen, and
- then calling <STRONG>doupdate</STRONG>, which compares the virtual screen
- to the physical screen and does the actual update. If the
- programmer wishes to output several windows at once, a
- series of calls to <STRONG>wrefresh</STRONG> results in alternating calls
- to <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG>, causing several bursts of
- output to the screen. By first calling <STRONG>wnoutrefresh</STRONG> for
- each window, it is then possible to call <STRONG>doupdate</STRONG> once,
- resulting in only one burst of output, with fewer total
- characters transmitted and less CPU time used. If the <EM>win</EM>
- argument to <STRONG>wrefresh</STRONG> is the global variable <STRONG>curscr</STRONG>, the
- screen is immediately cleared and repainted from scratch.
-
- The phrase "copies the named window to the virtual screen"
- above is ambiguous. What actually happens is that all
- <EM>touched</EM> (changed) lines in the window are copied to the
- virtual screen. This affects programs that use overlap-
- ping windows; it means that if two windows overlap, you
- can refresh them in either order and the overlap region
- will be modified only when it is explicitly changed. (But
- see the section on <STRONG>PORTABILITY</STRONG> below for a warning about
- exploiting this behavior.)
-
- The <STRONG>wredrawln</STRONG> routine indicates to <STRONG>curses</STRONG> that some screen
- lines are corrupted and should be thrown away before any-
- thing is written over them. It touches the indicated
- lines (marking them changed). The routine <STRONG>redrawwin</STRONG>()
- touches the entire window.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure,
- and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
- <STRONG>ERR</STRONG>") upon successful completion.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <STRONG>refresh</STRONG> and <STRONG>redrawwin</STRONG> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
- 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
- explicit <STRONG>touchwin()</STRONG> before the <STRONG>wnoutrefresh()</STRONG> call to
- guarantee an entire-contents copy anywhere.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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>
diff --git a/ncurses-5.3/doc/html/man/curs_scanw.3x.html b/ncurses-5.3/doc/html/man/curs_scanw.3x.html
deleted file mode 100644
index 3e132c1..0000000
--- a/ncurses-5.3/doc/html/man/curs_scanw.3x.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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>
-<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>
-<H1>curs_scanw 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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 <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>
- <STRONG>vwscanw</STRONG> returns <STRONG>ERR</STRONG> on failure and an integer equal to the
- number of fields scanned on success.
-
- 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-
- 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>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_scr_dump.3x.html b/ncurses-5.3/doc/html/man/curs_scr_dump.3x.html
deleted file mode 100644
index c64c48c..0000000
--- a/ncurses-5.3/doc/html/man/curs_scr_dump.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_scr_dump 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>scr_dump</STRONG>, <STRONG>scr_restore</STRONG>, <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG> - read (write) a
- <STRONG>curses</STRONG> screen from (to) a file
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- The <STRONG>scr_dump</STRONG> routine dumps the current contents of the
- virtual screen to the file <EM>filename</EM>.
-
- 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.
-
- The <STRONG>scr_init</STRONG> routine reads in the contents of <EM>filename</EM> and
- uses them to initialize the <STRONG>curses</STRONG> data structures about
- what the terminal currently has on its screen. If the
- data is determined to be valid, <STRONG>curses</STRONG> bases its next
- update of the screen on this information rather than
- clearing the screen and starting from scratch. <STRONG>scr_init</STRONG>
- is used after <STRONG>initscr</STRONG> or a <STRONG>system</STRONG> [see <STRONG>system</STRONG>(BA_LIB)]
- call to share the screen with another process which has
- done a <STRONG>scr_dump</STRONG> after its <STRONG>endwin</STRONG> call. The data is
- declared invalid if the terminfo capabilities <STRONG>rmcup</STRONG> and
- <STRONG>nrrmc</STRONG> exist; also if the terminal has been written to
- since the preceding <STRONG>scr_dump</STRONG> call.
-
- 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.
-
- 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>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
- upon success.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG>, and <STRONG>scr_restore</STRONG> may be
- macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4, describes these func-
- tions (adding the const qualifiers).
- 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>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_scroll.3x.html b/ncurses-5.3/doc/html/man/curs_scroll.3x.html
deleted file mode 100644
index cd50d76..0000000
--- a/ncurses-5.3/doc/html/man/curs_scroll.3x.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!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>
-<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>
-<H1>curs_scroll 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>scroll</STRONG>, <STRONG>scrl</STRONG>, <STRONG>wscrl</STRONG> - scroll a <STRONG>curses</STRONG> window
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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.
-
- 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
- <STRONG>scrollok</STRONG>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- 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>
- 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
- 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-
- erated by the scroll function is zeroed. Under this
- implementation it is.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_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>
diff --git a/ncurses-5.3/doc/html/man/curs_slk.3x.html b/ncurses-5.3/doc/html/man/curs_slk.3x.html
deleted file mode 100644
index 9a0a29a..0000000
--- a/ncurses-5.3/doc/html/man/curs_slk.3x.html
+++ /dev/null
@@ -1,226 +0,0 @@
-<!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>
-<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>
-<H1>curs_slk 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>slk_init</STRONG>, <STRONG>slk_set</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_noutrefresh</STRONG>,
- <STRONG>slk_label</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>, <STRONG>slk_attron</STRONG>,
- <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG>, <STRONG>slk_attr_on</STRONG>, <STRONG>slk_attr_set</STRONG>,
- <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>, <STRONG>slk_color</STRONG> - <STRONG>curses</STRONG> soft label rou-
- tines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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
- 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
- for todays PC like enduser devices. Please note that
- ncurses simulates this mode by taking over up to two lines
- at the bottom of the screen, it doesn't try to use any
- hardware support for this mode.
-
- 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.
-
- 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
- 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.
-
- The <STRONG>slk_refresh</STRONG> and <STRONG>slk_noutrefresh</STRONG> routines correspond to
- the <STRONG>wrefresh</STRONG> and <STRONG>wnoutrefresh</STRONG> routines.
-
- The <STRONG>slk_label</STRONG> routine returns the current label for label
- number <EM>labnum</EM>, with leading and trailing blanks stripped.
-
- The <STRONG>slk_clear</STRONG> routine clears the soft labels from the
- screen.
-
- The <STRONG>slk_restore</STRONG> routine, restores the soft labels to the
- screen after a <STRONG>slk_clear</STRONG> has been 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 <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).
-
- 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.
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return <STRONG>ERR</STRONG> upon failure and OK (SVr4 speci-
- fies only "an integer value other than <STRONG>ERR</STRONG>") upon success-
- ful completion. <STRONG>slk_attr</STRONG> returns the attribute used for
- the soft keys.
-
- <STRONG>slk_label</STRONG> returns <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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-
- 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>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_termattrs.3x.html b/ncurses-5.3/doc/html/man/curs_termattrs.3x.html
deleted file mode 100644
index dc35ff7..0000000
--- a/ncurses-5.3/doc/html/man/curs_termattrs.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_termattrs 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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 <STRONG>erasechar</STRONG> routine returns the user's current erase
- character.
-
- 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.
-
- 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
- <STRONG>scrollok</STRONG>.
-
- The <STRONG>killchar</STRONG> routine returns the user's current line kill
- character.
-
- 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-
- 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
- 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.
-
- 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>
- <STRONG>longname</STRONG> and <STRONG>termname</STRONG> return <STRONG>NULL</STRONG> on error.
-
- 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>
- Note that <STRONG>termattrs</STRONG> may be a macro.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_termcap.3x.html b/ncurses-5.3/doc/html/man/curs_termcap.3x.html
deleted file mode 100644
index f510812..0000000
--- a/ncurses-5.3/doc/html/man/curs_termcap.3x.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!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>
-<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>
-<H1>curs_termcap 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <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>
- 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.
-
- 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 <STRONG>tgetflag</STRONG> routine gets the boolean entry for <EM>id</EM>, or
- zero if it is not available.
-
- The <STRONG>tgetnum</STRONG> routine gets the numeric entry for <EM>id</EM>, or -1
- if it is not available.
-
- The <STRONG>tgetstr</STRONG> routine returns the string entry for <EM>id</EM>, or
- zero if it is not available. Use <STRONG>tputs</STRONG> to output the
- 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.
-
- 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
- passed to <STRONG>tputs</STRONG>.
-
- The <STRONG>tputs</STRONG> routine is described on the <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
- 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
- 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.
-
- Routines that return pointers return <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>BUGS</H2><PRE>
- If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>ca</STRONG> or any other parameterized
- string, be aware that it will be returned in terminfo
- notation, not the older and not-quite-compatible termcap
- notation. This won't cause problems if all you do with it
- is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both expand terminfo-style
- strings as terminfo. (The <STRONG>tgoto</STRONG> function, if 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
- 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.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions. However, they are marked TO BE WITHDRAWN and may
- be removed in future versions.
-
- Neither the XSI Curses standard nor the SVr4 man pages
- documented the return values of <STRONG>tgetent</STRONG> correctly, though
- all three were in fact returned ever since SVr1. In par-
- ticular, an omission in the XSI Curses documentation has
- been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG> or
- <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>
- <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>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.3/doc/html/man/curs_terminfo.3x.html b/ncurses-5.3/doc/html/man/curs_terminfo.3x.html
deleted file mode 100644
index 4163fbb..0000000
--- a/ncurses-5.3/doc/html/man/curs_terminfo.3x.html
+++ /dev/null
@@ -1,334 +0,0 @@
-<!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>
-<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>
-<H1>curs_terminfo 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>del_curterm</STRONG>, <STRONG>mvcur</STRONG>, <STRONG>putp</STRONG>, <STRONG>restartterm</STRONG>, <STRONG>set_curterm</STRONG>, <STRONG>set-</STRONG>
- <STRONG>term</STRONG>, <STRONG>setupterm</STRONG>, <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, <STRONG>tigetstr</STRONG>, <STRONG>tparm</STRONG>,
- <STRONG>tputs</STRONG>, <STRONG>vid_attr</STRONG>, <STRONG>vid_puts</STRONG>, <STRONG>vidattr</STRONG>, <STRONG>vidputs</STRONG> - <STRONG>curses</STRONG>
- interfaces to terminfo database
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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
- have to deal directly with the <STRONG>terminfo</STRONG> database to handle
- certain terminal capabilities, such as programming func-
- tion keys. For all other functionality, <STRONG>curses</STRONG> routines
- are more suitable and their use is recommended.
-
- Initially, <STRONG>setupterm</STRONG> should be called. Note that
- <STRONG>setupterm</STRONG> is automatically called by <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG>.
- This defines the set of terminal-dependent variables
- [listed in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. The <STRONG>terminfo</STRONG> variables <STRONG>lines</STRONG> and
- <STRONG>columns</STRONG> are initialized by <STRONG>setupterm</STRONG> as follows: If
- <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
- not exist, the values for <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in
- the <STRONG>terminfo</STRONG> database are used.
-
- The header files <STRONG>curses.h</STRONG> and <STRONG>term.h</STRONG> should be included
- (in this order) to get the definitions for these strings,
- numbers, and flags. Parameterized strings should be
- passed through <STRONG>tparm</STRONG> to instantiate them. All <STRONG>terminfo</STRONG>
- strings [including the output of <STRONG>tparm</STRONG>] should be printed
- with <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>. Call the <STRONG>reset_shell_mode</STRONG> to restore
- the tty modes before exiting [see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>]. Pro-
- grams which use cursor addressing should output
- <STRONG>enter_ca_mode</STRONG> upon startup and should output <STRONG>exit_ca_mode</STRONG>
- before exiting. Programs desiring shell escapes should
- call
-
- <STRONG>reset_shell_mode</STRONG> and output <STRONG>exit_ca_mode</STRONG> before the shell
- is called and should output <STRONG>enter_ca_mode</STRONG> and call
- <STRONG>reset_prog_mode</STRONG> after returning from the shell.
-
- 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
- <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>:
-
- <STRONG>1</STRONG> means that the terminal is hardcopy, cannot be
- used for curses applications.
-
- <STRONG>0</STRONG> means that the terminal could not be found, or
- that it is a generic type, having too little
- information for curses applications to run.
-
- <STRONG>-1</STRONG> means that the <STRONG>terminfo</STRONG> database could not be
- found.
-
- If <EM>errret</EM> is null, <STRONG>setupterm</STRONG> prints an error message upon
- finding an error and exits. Thus, the simplest call is:
-
- <STRONG>setupterm((char</STRONG> <STRONG>*)0,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0);</STRONG>,
-
- which uses all the defaults and sends the output to <STRONG>std-</STRONG>
- <STRONG>out</STRONG>.
-
- The <STRONG>setterm</STRONG> routine is being replaced by <STRONG>setupterm</STRONG>. The
- call:
-
- <STRONG>setupterm(</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0)</STRONG>
-
- provides the same functionality as <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>. The
- <STRONG>setterm</STRONG> routine is included here for BSD compatibility,
- and is not recommended for new programs.
-
- 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 <STRONG>del_curterm</STRONG> routine frees the space pointed to by
- <EM>oterm</EM> and makes it available for further use. If <EM>oterm</EM> is
- the same as <STRONG>cur_term</STRONG>, references to any of the <STRONG>terminfo</STRONG>
- boolean, numeric, and string variables thereafter may
- refer to invalid memory locations until another <STRONG>setupterm</STRONG>
- has been called.
-
- The <STRONG>restartterm</STRONG> routine is similar to <STRONG>setupterm</STRONG> and
- <STRONG>initscr</STRONG>, except that it is called after restoring memory
- to a previous state (for example, when reloading a game
- saved as a core image dump). It assumes that the windows
- and the input and output options are the same as when mem-
- ory was saved, but the terminal type and baud rate may be
- different. Accordingly, it saves various tty state bits,
- does a setupterm, and then restores the bits.
-
- 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 <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 <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).
-
- 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 <STRONG>tigetflag</STRONG> routine returns the value <STRONG>-1</STRONG> if <EM>capname</EM> is
- not a boolean capability, or <STRONG>0</STRONG> if it is canceled or absent
- from the terminal description.
-
- The <STRONG>tigetnum</STRONG> routine returns the value <STRONG>-2</STRONG> if <EM>capname</EM> is
- not a numeric capability, or <STRONG>-1</STRONG> if it is canceled or
- 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 <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>.
-
- <STRONG>char</STRONG> <STRONG>*boolnames</STRONG>, <STRONG>*boolcodes</STRONG>, <STRONG>*boolfnames</STRONG>
-
- <STRONG>char</STRONG> <STRONG>*numnames</STRONG>, <STRONG>*numcodes</STRONG>, <STRONG>*numfnames</STRONG>
-
- <STRONG>char</STRONG> <STRONG>*strnames</STRONG>, <STRONG>*strcodes</STRONG>, <STRONG>*strfnames</STRONG>
-
- These null-terminated arrays contain the <EM>capnames</EM>, the
- <STRONG>termcap</STRONG> codes, and the full C names, for each of the <STRONG>ter-</STRONG>
- <STRONG>minfo</STRONG> variables.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- 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.
-
- Routines that return pointers always return <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The <STRONG>setupterm</STRONG> routine should be used in place of <STRONG>setterm</STRONG>.
- It may be useful when you want to test for terminal capa-
- bilities without committing to the allocation of storage
- involved in <STRONG>initscr</STRONG>.
-
- Note that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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.
-
- 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.
-
- 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>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_touch.3x.html b/ncurses-5.3/doc/html/man/curs_touch.3x.html
deleted file mode 100644
index eec4c7a..0000000
--- a/ncurses-5.3/doc/html/man/curs_touch.3x.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!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>
-<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>
-<H1>curs_touch 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <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>
- <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>
- 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.
- The routine <STRONG>touchline</STRONG> only pretends that <EM>count</EM> lines have
- been changed, beginning with line <EM>start</EM>.
-
- The <STRONG>untouchwin</STRONG> routine marks all lines in the window as
- unchanged since the last call to <STRONG>wrefresh</STRONG>.
-
- 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 <STRONG>is_linetouched</STRONG> and <STRONG>is_wintouched</STRONG> routines return <STRONG>TRUE</STRONG>
- if the specified line/window was modified since the last
- 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>
- 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.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
- Some historic curses implementations had, as an undocu-
- mented feature, the ability to do the equivalent of
- <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(std-</STRONG>
- <STRONG>scr)</STRONG>. This will not work under ncurses.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- Note that all routines except <STRONG>wtouchln</STRONG> may be macros.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_trace.3x.html b/ncurses-5.3/doc/html/man/curs_trace.3x.html
deleted file mode 100644
index c4a52c4..0000000
--- a/ncurses-5.3/doc/html/man/curs_trace.3x.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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>
-<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>
-<H1>curs_trace 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>_tracef</STRONG>, <STRONG>_tracedump</STRONG>, <STRONG>_traceattr</STRONG>, <STRONG>_traceattr2</STRONG>,
- <STRONG>_nc_tracebits</STRONG>, <STRONG>_tracechar</STRONG>, <STRONG>_tracechtype</STRONG>, <STRONG>_tracechtype2</STRONG>,
- <STRONG>_tracemouse</STRONG>, <STRONG>trace</STRONG> - <STRONG>curses</STRONG> debugging routines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
- <STRONG>void</STRONG> <STRONG>_tracef(const</STRONG> <STRONG>char</STRONG> <STRONG>*format,</STRONG> <STRONG>...);</STRONG>
- <STRONG>void</STRONG> <STRONG>_tracedump(const</STRONG> <STRONG>char</STRONG> <STRONG>*label,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win);</STRONG>
- <STRONG>char</STRONG> <STRONG>*_traceattr(attr_t</STRONG> <STRONG>attr);</STRONG>
- <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>
- The <STRONG>trace</STRONG> routines are used for debugging the ncurses
- libraries, as well as applications which use the ncurses
- libraries. These functions are normally available only
- with the debugging library <EM>libncurses</EM><STRONG>_</STRONG><EM>g.a</EM>, but may be com-
- piled into any model (shared, static, profile) by defining
- the symbol <STRONG>TRACE</STRONG>.
-
- The principal parts of this interface are the <STRONG>trace</STRONG> rou-
- tine which selectively enables different tracing features,
- and the <STRONG>_tracef</STRONG> routine which writes formatted data to the
- <EM>trace</EM> file.
-
- 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_TIMES
- trace user and system times of updates.
-
- TRACE_TPUTS
- trace tputs calls.
-
- TRACE_UPDATE
- trace update actions, old &amp; new screens.
-
- TRACE_MOVE
- trace cursor movement and scrolling.
-
- TRACE_CHARPUT
- trace all character outputs.
-
- TRACE_ORDINARY
- trace all update actions. The old and new screen
- contents are written to the trace file for each
- refresh.
-
- TRACE_CALLS
- trace all curses calls. The parameters for each call
- are traced, as well as return values.
-
- TRACE_VIRTPUT
- trace virtual character puts, i.e., calls to <STRONG>addch</STRONG>.
-
- TRACE_IEVENT
- trace low-level input processing, including timeouts.
-
- TRACE_BITS
- trace state of TTY control bits.
-
- TRACE_ICALLS
- trace internal/nested calls.
-
- TRACE_CCALLS
- trace per-character calls.
-
- TRACE_DATABASE
- trace read/write of terminfo/termcap data.
-
- TRACE_ATTRS
- trace changes to video attributes and colors.
-
- TRACE_MAXIMUM
- maximum trace level, enables all of the separate
- trace features.
-
- Some tracing features are enabled whenever the <STRONG>trace</STRONG>
- parameter is nonzero. Some features overlap. The
- specific names are used as a guideline.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines which return a value are designed to be used as
- parameters to the <STRONG>_tracef</STRONG> routine.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These functions are not part of the XSI interface. Some
- other curses implementations are known to have similar,
- undocumented features, but they are not compatible with
- ncurses.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(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/ncurses-5.3/doc/html/man/curs_util.3x.html b/ncurses-5.3/doc/html/man/curs_util.3x.html
deleted file mode 100644
index 0fed767..0000000
--- a/ncurses-5.3/doc/html/man/curs_util.3x.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!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>
-<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>
-<H1>curs_util 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>delay_output</STRONG>, <STRONG>filter</STRONG>, <STRONG>flushinp</STRONG>, <STRONG>getwin</STRONG>, <STRONG>key_name</STRONG>, <STRONG>keyname</STRONG>,
- <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous <STRONG>curses</STRONG>
- utility routines
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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.
-
- 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.
-
- The <STRONG>flushinp</STRONG> routine throws away any typeahead that has
- been typed by the user and has not yet been read by the
- program.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>flushinp</STRONG>, routines that return an integer
- return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an
- integer value other than <STRONG>ERR</STRONG>") upon successful completion.
-
- <STRONG>flushinp</STRONG> always returns <STRONG>OK</STRONG>.
-
- Routines that return pointers return <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions. It states that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a
- null pointer if unsuccessful, but does not define any
- error conditions.
-
- 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>
- <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>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/curs_window.3x.html b/ncurses-5.3/doc/html/man/curs_window.3x.html
deleted file mode 100644
index 0b9d2a3..0000000
--- a/ncurses-5.3/doc/html/man/curs_window.3x.html
+++ /dev/null
@@ -1,228 +0,0 @@
-<!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>
-<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>
-<H1>curs_window 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>newwin</STRONG>, <STRONG>delwin</STRONG>, <STRONG>mvwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>dupwin</STRONG>,
- <STRONG>wsyncup</STRONG>, <STRONG>syncok</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>wsyncdown</STRONG> - create <STRONG>curses</STRONG>
- windows
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <STRONG>WINDOW</STRONG> <STRONG>*newwin(int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG> <STRONG>int</STRONG> <STRONG>begin_y,</STRONG>
- <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
- <STRONG>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>
- Calling <STRONG>newwin</STRONG> creates and returns a pointer to a new win-
- dow with the given number of lines and columns. The upper
- left-hand corner of the window is at line <EM>begin</EM>_<EM>y</EM>, column
- <EM>begin</EM>_<EM>x</EM>. If either <EM>nlines</EM> or <EM>ncols</EM> is zero, they default
- to <STRONG>LINES</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>y</EM> and <STRONG>COLS</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>x</EM>. A new full-screen
- window is created by calling <STRONG>newwin(0,0,0,0)</STRONG>.
-
- 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.
-
- 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.
-
- Calling <STRONG>subwin</STRONG> creates and returns a pointer to a new win-
- dow with the given number of lines, <EM>nlines</EM>, and columns,
- <EM>ncols</EM>. The window is at position (<EM>begin</EM>_<EM>y</EM>, <EM>begin</EM>_<EM>x</EM>) on
- the screen. (This position is relative to the screen, and
- not to the window <EM>orig</EM>.) The window is made in the middle
- of the window <EM>orig</EM>, so that changes made to one window
- will affect both windows. The subwindow shares memory
- with the window <EM>orig</EM>. When using this routine, it is nec-
- essary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before call-
- ing <STRONG>wrefresh</STRONG> on the subwindow.
-
- 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.
-
- 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.
-
- Calling <STRONG>dupwin</STRONG> creates an exact duplicate of the window
- <EM>win</EM>.
-
- 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.
-
- The <STRONG>wsyncdown</STRONG> routine touches each location in <EM>win</EM> that
- has been touched in any of its ancestor windows. This
- routine is called by <STRONG>wrefresh</STRONG>, so it should almost never
- be necessary to call it manually.
-
- 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>
- 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.
-
- <STRONG>delwin</STRONG> returns the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon
- successful completion.
-
- Routines that return pointers return <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- If many small changes are made to the window, the <STRONG>wsyncup</STRONG>
- option could degrade performance.
-
- Note that <STRONG>syncok</STRONG> may be a macro.
-
-
-</PRE>
-<H2>BUGS</H2><PRE>
- The subwindow functions (<EM>subwin</EM>, <EM>derwin</EM>, <EM>mvderwin</EM>, <STRONG>wsyn-</STRONG>
- <STRONG>cup</STRONG>, <STRONG>wsyncdown</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>syncok</STRONG>) are flaky, incom-
- pletely implemented, and not well tested.
-
- The System V curses documentation is very unclear about
- what <STRONG>wsyncup</STRONG> and <STRONG>wsyncdown</STRONG> actually do. It seems to imply
- that they are only supposed to touch exactly those lines
- that are affected by ancestor changes. The language here,
- and the behavior of the <STRONG>curses</STRONG> implementation, is pat-
- terned on the XPG4 curses standard. The weaker XPG4 spec
- may result in slower updates.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/default_colors.3x.html b/ncurses-5.3/doc/html/man/default_colors.3x.html
deleted file mode 100644
index d0be6fb..0000000
--- a/ncurses-5.3/doc/html/man/default_colors.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>default_colors 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>use_default_colors</STRONG>, <STRONG>assume_default_colors</STRONG> - use terminal's
- default colors
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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
- unspecified default value (e.g., with SGR 39 or SGR 49).
-
- Applications that paint a colored background over the
- 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 <STRONG>ls</STRONG> program which
- use colors to denote different file types or permissions.
- These "color ls" programs do not necessarily modify the
- 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.
-
- 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.
-
- 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:
- <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
- 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
- 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>
- These functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
- on success. They will fail if either the terminal does
- 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>
- 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.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="ded.1.html">ded(1)</A></STRONG>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey (from an analysis of the requirements for
- color xterm for XFree86 3.1.2C, February 1996).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/define_key.3x.html b/ncurses-5.3/doc/html/man/define_key.3x.html
deleted file mode 100644
index 0be1e00..0000000
--- a/ncurses-5.3/doc/html/man/define_key.3x.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!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>
-<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>
-<H1>define_key 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>define_key</STRONG> - define a keycode
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <STRONG>int</STRONG> <STRONG>define_key(char</STRONG> <STRONG>*definition,</STRONG> <STRONG>int</STRONG> <STRONG>keycode);</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- This is an extension to the curses library. It permits an
- application to define keycodes with their corresponding
- control strings, so that the ncurses library will inter-
- pret them just as it would the predefined codes in the
- terminfo database.
-
- 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.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The keycode must be greater than zero, else ERR is
- returned.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.3/doc/html/man/form.3x.html b/ncurses-5.3/doc/html/man/form.3x.html
deleted file mode 100644
index 27ff870..0000000
--- a/ncurses-5.3/doc/html/man/form.3x.html
+++ /dev/null
@@ -1,284 +0,0 @@
-<!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>
-<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>
-<H1>form 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form</STRONG> - curses extension for programming forms
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
- 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>.
-
-
- <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
- 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.
-
-
- <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.
-
- <STRONG>curses</STRONG> Routine Name Manual Page Name
- -------------------------------------------------
- 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>
- Routines that return pointers return <STRONG>NULL</STRONG> on error. Rou-
- tines that return an integer return one of the following
- error codes:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_CONNECTED</STRONG>
- The field is already connected to a form.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The form is already posted.
-
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or termina-
- tion function.
-
- <STRONG>E_NO_ROOM</STRONG>
- Form is too large for its window.
-
- <STRONG>E_NOT_POSTED</STRONG>
- The form has not been posted.
-
- <STRONG>E_UNKNOWN_COMMAND</STRONG>
- The form driver code saw an unknown request code.
-
- <STRONG>E_INVALID_FIELD</STRONG>
- Contents of a field are not valid.
-
- <STRONG>E_NOT_CONNECTED</STRONG>
- No fields are connected to the form.
-
- <STRONG>E_REQUEST_DENIED</STRONG>
- The form driver could not process the request.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
- detailed descriptions of the entry points.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- files <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
-
- In your library list, libform.a should be before libn-
- curses.a; that is, you want to say `-lform -lncurses', not
- the other way around (which would give you a link error
- using GNU <STRONG><A HREF="ld.1.html">ld(1)</A></STRONG> and many other linkers).
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for ncurses
- by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_cursor.3x.html b/ncurses-5.3/doc/html/man/form_cursor.3x.html
deleted file mode 100644
index af7d8d7..0000000
--- a/ncurses-5.3/doc/html/man/form_cursor.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>form_cursor 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_cursor</STRONG> - position a form window cursor
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
- int pos_form_cursor(FORM *form);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>pos_form_cursor</STRONG> restores the cursor to the
- position required for the forms driver to continue pro-
- cessing requests. This is useful after <STRONG>curses</STRONG> routines
- have been called to do screen-painting in response to a
- form operation.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- This routine returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_NOT_POSTED</STRONG>
- The form has not been posted.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_data.3x.html b/ncurses-5.3/doc/html/man/form_data.3x.html
deleted file mode 100644
index 277b54b..0000000
--- a/ncurses-5.3/doc/html/man/form_data.3x.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!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>
-<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>
-<H1>form_data 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_data</STRONG> - test for off-screen data in given forms
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- 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).
-
- 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>
- <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>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_driver.3x.html b/ncurses-5.3/doc/html/man/form_driver.3x.html
deleted file mode 100644
index 061519f..0000000
--- a/ncurses-5.3/doc/html/man/form_driver.3x.html
+++ /dev/null
@@ -1,337 +0,0 @@
-<!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>
-<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>
-<H1>form_driver 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_driver</STRONG> - command-processing loop of the form system
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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
- 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:
-
- REQ_NEXT_PAGE
- Move to the next page.
-
- REQ_PREV_PAGE
- Move to the previous page.
-
- REQ_FIRST_PAGE
- Move to the first page.
-
- REQ_LAST_PAGE
- Move to the last field.
-
-
- REQ_NEXT_FIELD
- Move to the next field.
-
- REQ_PREV_FIELD
- Move to the previous field.
-
- REQ_FIRST_FIELD
- Move to the first field.
-
- REQ_LAST_FIELD
- Move to the last field.
-
- REQ_SNEXT_FIELD
- Move to the sorted next field.
-
- REQ_SPREV_FIELD
- Move to the sorted previous field.
-
- REQ_SFIRST_FIELD
- Move to the sorted first field.
-
- REQ_SLAST_FIELD
- Move to the sorted last field.
-
- REQ_LEFT_FIELD
- Move left to a field.
-
- REQ_RIGHT_FIELD
- Move right to a field.
-
- REQ_UP_FIELD
- Move up to a field.
-
- REQ_DOWN_FIELD
- Move down to a field.
-
-
- REQ_NEXT_CHAR
- Move to the next char.
-
- REQ_PREV_CHAR
- Move to the previous char.
-
- REQ_NEXT_LINE
- Move to the next line.
-
- REQ_PREV_LINE
- Move to the previous line.
-
- REQ_NEXT_WORD
- Move to the next word.
-
- REQ_PREV_WORD
- Move to the previous word.
-
- REQ_BEG_FIELD
- Move to the beginning of the field.
-
- REQ_END_FIELD
- Move to the end of the field.
-
- REQ_BEG_LINE
- Move to the beginning of the line.
-
- REQ_END_LINE
- Move to the end of the line.
-
- REQ_LEFT_CHAR
- Move left in the field.
-
- REQ_RIGHT_CHAR
- Move right in the field.
-
- REQ_UP_CHAR
- Move up in the field.
-
- REQ_DOWN_CHAR
- Move down in the field.
-
-
-
- REQ_NEW_LINE
- Insert or overlay a new line.
-
- REQ_INS_CHAR
- Insert a blank at the cursor.
-
- REQ_INS_LINE
- Insert a blank line at the cursor.
-
- REQ_DEL_CHAR
- Delete character at the cursor.
-
- REQ_DEL_PREV
- Delete character before the cursor.
-
- REQ_DEL_LINE
- Delete line at the cursor.
-
- REQ_DEL_WORD
- Delete blank-delimited word at the cursor.
-
- REQ_CLR_EOL
- Clear to end of line from cursor.
-
- REQ_CLR_EOF
- Clear to end of field from cursor.
-
- REQ_CLR_FIELD
- Clear the entire field.
-
- REQ_OVL_MODE
- Enter overlay mode.
-
- REQ_INS_MODE
- Enter insert mode.
-
-
- REQ_SCR_FLINE
- Scroll the field forward a line.
-
- REQ_SCR_BLINE
- Scroll the field backward a line.
-
- REQ_SCR_FPAGE
- Scroll the field forward a page.
-
- REQ_SCR_BPAGE
- Scroll the field backward a page.
-
- REQ_SCR_FHPAGE
- Scroll the field forward half a page.
-
- REQ_SCR_BHPAGE
- Scroll the field backward half a page.
-
- REQ_SCR_FCHAR
- Scroll the field forward a character.
-
- REQ_SCR_BCHAR
- Scroll the field backward a character.
-
- REQ_SCR_HFLINE
- Horizontal scroll the field forward a line.
-
- REQ_SCR_HBLINE
- Horizontal scroll the field backward a line.
-
- REQ_SCR_HFHALF
- Horizontal scroll the field forward half a line.
-
- REQ_SCR_HBHALF
- Horizontal scroll the field backward half a line.
-
-
- REQ_VALIDATION
- Validate field.
-
- REQ_NEXT_CHOICE
- Display next field choice.
-
- REQ_PREV_CHOICE
- Display previous field choice.
-
- If the second argument is a printable ASCII character, the
- driver places it in the current position in the current
- field. If it is one of the forms requests listed above,
- that request is executed.
-
- 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
- <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>
- <STRONG>form_driver</STRONG> return one of the following error codes:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or
- termination function.
-
- <STRONG>E_NOT_POSTED</STRONG>
- The form has not been posted.
-
- <STRONG>E_UNKNOWN_COMMAND</STRONG>
- The form driver code saw an unknown request code.
-
- <STRONG>E_INVALID_FIELD</STRONG>
- Contents of field is invalid.
-
- <STRONG>E_REQUEST_DENIED</STRONG>
- The form driver could not process the request.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- files <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_field.3x.html b/ncurses-5.3/doc/html/man/form_field.3x.html
deleted file mode 100644
index 35d8233..0000000
--- a/ncurses-5.3/doc/html/man/form_field.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_field 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field</STRONG> - make and break connections between fields and
- forms
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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 move_field(FIELD *field, int frow, int fcol);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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 <STRONG>form_fields</STRONG> returns the field array of the
- given form.
-
- The function <STRONG>field_count</STRONG> returns the count of fields in
- <EM>form</EM>.
-
- The function <STRONG>move_field</STRONG> move the given field (which must
- be disconnected) to a specified location on the screen.
-
-
-</PRE>
-<H2>RETURN VALUES</H2><PRE>
- The function <STRONG>form_fields</STRONG> returns <STRONG>NULL</STRONG> on error.
-
- The function <STRONG>field_count</STRONG> returns <STRONG>ERR</STRONG> (the general <STRONG>curses</STRONG>
- error return value) on error.
-
- The functions <STRONG>set_form_fields</STRONG> and <STRONG>move_field</STRONG> return one of
- the following codes on error:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The form is already posted.
-
- <STRONG>E_CONNECTED</STRONG>
- The field is already connected to a form.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
- The SVr4 forms library documentation specifies the
- <STRONG>field_count</STRONG> error value as -1 (which is the value of <STRONG>ERR</STRONG>).
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_field_attributes.3x.html b/ncurses-5.3/doc/html/man/form_field_attributes.3x.html
deleted file mode 100644
index bb5e210..0000000
--- a/ncurses-5.3/doc/html/man/form_field_attributes.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_field_attributes 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field_attributes</STRONG> - color and attribute control for
- form fields
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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 field_pad(const FIELD *field);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
- detailed descriptions of the entry points.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_field_buffer.3x.html b/ncurses-5.3/doc/html/man/form_field_buffer.3x.html
deleted file mode 100644
index c23ac00..0000000
--- a/ncurses-5.3/doc/html/man/form_field_buffer.3x.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!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>
-<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>
-<H1>form_field_buffer 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field_buffer</STRONG> - field buffer control
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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_status(FIELD *field, bool status);
- bool field_status(const FIELD *field);
- int set_max_field(FIELD *field, int max);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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
- 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
- spaces the buffer may also contain them. If you want the
- raw data, you must write your own routine that copies the
- value out of the buffer and removes the leading and trail-
- ing spaces. Please note also, that subsequent operations
- on the form will probably change the content of the
- buffer. So don't use it for long term storage of the
- entered form data.
-
- 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.
-
- 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>
- The <STRONG>field_buffer</STRONG> function returns NULL on error.
-
- The <STRONG>field_status</STRONG> function returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
-
- The remaining routines return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
- detailed descriptions of the entry points.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_field_info.3x.html b/ncurses-5.3/doc/html/man/form_field_info.3x.html
deleted file mode 100644
index db2e524..0000000
--- a/ncurses-5.3/doc/html/man/form_field_info.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>form_field_info 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field_info</STRONG> - retrieve field characteristics
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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
- *cols, int *max);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
- The function <STRONG>dynamic_field_info</STRONG> returns the actual size of
- the field, and its maximum possible size. If the field
- has no size limit, the location addressed by the third
- argument will be set to 0. (A field can be made dynamic
- by turning off the <STRONG>O_STATIC</STRONG>).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
- detailed descriptions of the entry points.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
- A null (zero pointer) is accepted for any of the return
- values, to ignore that value. Not all implementations
- allow this, e.g., Solaris 2.7 does not.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-</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/ncurses-5.3/doc/html/man/form_field_just.3x.html b/ncurses-5.3/doc/html/man/form_field_just.3x.html
deleted file mode 100644
index c4c989c..0000000
--- a/ncurses-5.3/doc/html/man/form_field_just.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>form_field_just 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field_just</STRONG> - retrieve field characteristics
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- 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.
-
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The function <STRONG>field_just</STRONG> returns one of: NO_JUSTIFICATION,
- JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
-
- The function <STRONG>set_field_just</STRONG> return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
- detailed descriptions of the entry points.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_field_new.3x.html b/ncurses-5.3/doc/html/man/form_field_new.3x.html
deleted file mode 100644
index 54e94e5..0000000
--- a/ncurses-5.3/doc/html/man/form_field_new.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_field_new 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field_new</STRONG> - create and destroy form fields
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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 *dup_field(FIELD *field, int toprow, int leftcol);
- FIELD *link_field(FIELD *field, int toprow, int leftcol);
- int free_field(FIELD *field);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
- 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.
-
- 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.
-
- The function <STRONG>free_field</STRONG> de-allocates storage associated
- with a field.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The function, <STRONG>new_field</STRONG>, <STRONG>dup_field</STRONG>, <STRONG>link_field</STRONG> return <STRONG>NULL</STRONG>
- on error.
-
- The function <STRONG>free_field</STRONG> returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
- It may be unwise to count on the set of attributes copied
- by <STRONG><A HREF="dup_field.3x.html">dup_field(3x)</A></STRONG> being portable; the System V forms
- library documents are not very explicit on what gets
- copied and was not.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_field_opts.3x.html b/ncurses-5.3/doc/html/man/form_field_opts.3x.html
deleted file mode 100644
index c1ff6a3..0000000
--- a/ncurses-5.3/doc/html/man/form_field_opts.3x.html
+++ /dev/null
@@ -1,173 +0,0 @@
-<!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>
-<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>
-<H1>form_field_opts 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field_opts</STRONG> - set and get field options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
- OPTIONS field_opts(const FIELD *field);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>set_field_opts</STRONG> sets all the given field's
- option bits (field option bits may be logically-OR'ed
- together).
-
- The function <STRONG>field_opts_on</STRONG> turns on the given option bits,
- and leaves others alone.
-
- The function <STRONG>field_opts_off</STRONG> turns off the given option
- bits, and leaves others alone.
-
- The function <STRONG>field_opts</STRONG> returns the field's current option
- bits.
-
- The following options are defined (all are on by default):
-
- O_VISIBLE
- The field is displayed. If this option is off, dis-
- play of the field is suppressed,
-
- O_ACTIVE
- The field is visited during processing. If this
- option is off, the field will not be reachable by
- navigation keys. Please notice that an invisible
- field appears to be inactive also.
-
- O_PUBLIC
- The field contents are displayed as data is entered.
-
- O_EDIT
- The field can be edited.
-
- O_WRAP
- Words that don't fit on a line are wrapped to the
- next line. Words are blank-separated.
-
- O_BLANK
- The field is cleared whenever a character is entered
- at the first position.
-
- O_AUTOSKIP
- Skip to the next field when this one fills
-
-
- O_NULLOK
- Allow a blank field.
-
- O_STATIC
- Field buffers are fixed to field's original size.
-
- O_PASSOK
- Validate field only if modified by user.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>field_opts</STRONG>, each routine returns one of the
- following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_CURRENT</STRONG>
- The field is the current field.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
- <STRONG>NOTES</STRONG> The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the
- header file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_field_userptr.3x.html b/ncurses-5.3/doc/html/man/form_field_userptr.3x.html
deleted file mode 100644
index 0041a56..0000000
--- a/ncurses-5.3/doc/html/man/form_field_userptr.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>form_field_userptr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field_userptr</STRONG> - associate application data with a
- form field
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
- int set_field_userptr(FIELD *field, void*userptr);
- void *field_userptr(const FIELD *field);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every form field has a field that can be used to hold
- application-specific data (that is, the form-driver code
- leaves it alone). These functions get and set that field.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The function <STRONG>field_userptr</STRONG> returns <STRONG>NULL</STRONG> on error. The
- function <STRONG>set_field_userptr</STRONG> returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
- The user pointer should be a void pointer. We leave it as
- a char pointer for SVr4 compatibility.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_field_validation.3x.html b/ncurses-5.3/doc/html/man/form_field_validation.3x.html
deleted file mode 100644
index 93cae7f..0000000
--- a/ncurses-5.3/doc/html/man/form_field_validation.3x.html
+++ /dev/null
@@ -1,228 +0,0 @@
-<!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>
-<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>
-<H1>form_field_validation 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_field_validation</STRONG> - data type validation for fields
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>set_field_type</STRONG> declares a data type for a
- given form field. This is the type checked by validation
- functions. The types are as follows:
-
- TYPE_ALNUM
- Alphanumeric data. Requires a third <STRONG>int</STRONG> argument, a
- minimum field width.
-
- TYPE_ALPHA
- 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
- 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
- notice that the string list is not copied, only a
- reference to it is stored in the field. So you should
- avoid to use a list that lives in automatic variables
- on the stack.
-
- TYPE_INTEGER
- 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
- field buffer is formatted according to the <STRONG>printf</STRONG>
- format specification ".*ld", where the '*' is
- replaced by the precision argument. For details of
- the precision handling see <STRONG>printf's</STRONG> man-page.
-
- TYPE_NUMERIC
- Numeric data (may have a decimal-point part).
- 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
- <STRONG>printf</STRONG> format specification ".*f", where the '*' is
- replaced by the precision argument. For details of
- the precision handling see <STRONG>printf's</STRONG> man-page.
-
- TYPE_REGEXP
- Regular expression data. Requires a regular expres-
- sion <STRONG>(char</STRONG> <STRONG>*)</STRONG> third argument; the data is valid if
- the regular expression matches it. Regular expres-
- sions are in the format of <STRONG><A HREF="regcomp.3x.html">regcomp(3x)</A></STRONG> and
- <STRONG><A HREF="regexec.3x.html">regexec(3x)</A></STRONG>. Please notice that the regular expres-
- sion must match the whole field. If you have for
- example an eight character wide field, a regular
- expression "^[0-9]*$" always means that you have to
- fill all eight positions with digits. If you want to
- allow fewer digits, you may use for example "^[0-9]*
- *$" which is good for trailing spaces (up to an empty
- field), or "^ *[0-9]* *$" which is good for leading
- and trailing spaces around the digits.
-
- TYPE_IPV4
- An Internet Protocol Version 4 address. This requires
- no additional argument. It is checked whether or not
- the buffer has the form a.b.c.d, where a,b,c and d
- are numbers between 0 and 255. Trailing blanks in the
- buffer are ignored. The address itself is not vali-
- dated. Please note that this is an ncurses extension.
- This field type may not be available in other curses
- implementations.
-
- It is possible to set up new programmer-defined field
- types. See the <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> manual page.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- 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:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_fieldtype.3x.html b/ncurses-5.3/doc/html/man/form_fieldtype.3x.html
deleted file mode 100644
index d4ff4f3..0000000
--- a/ncurses-5.3/doc/html/man/form_fieldtype.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_fieldtype 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_fieldtype</STRONG> - define validation-field types
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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 *));
- int free_fieldtype(FIELDTYPE *fieldtype);
- int set_fieldtype_arg(
- FIELDTYPE *fieldtype,
- void *(* const make_arg)(va_list *),
- void *(* const copy_arg)(const void *),
- void (* const free_arg)(void *));
- int set_fieldtype_choice(
- FIELDTYPE *fieldtype,
- bool (* const next_choice)(FIELD *, const void *),
- bool (* const prev_choice)(FIELD *, const void *));
- FIELDTYPE *link_fieldtype(FIELDTYPE *type1,
- FIELDTYPE *type2);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>new_fieldtype</STRONG> creates a new field type usable
- for data validation. You supply it with <EM>field</EM><STRONG>_</STRONG><EM>check</EM>, a
- predicate to check the validity of an entered data string
- whenever the user attempt to leave a field. The (FIELD *)
- argument is passed in so the validation predicate can see
- the field's buffer, sizes and other attributes; the second
- argument is an argument-block structure, about which more
- below.
-
- 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.
-
- The function <STRONG>free_fieldtype</STRONG> frees the space allocated for
- a given validation type.
-
- The function <STRONG>set_fieldtype</STRONG> associates three storage-man-
- agement functions with a field type. The <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> function
- is automatically applied to the list of arguments you give
- <STRONG>set_field_type</STRONG> when attaching validation to a field; its
- job is to bundle these into an allocated argument-block
- object which can later be passed to validation predicated.
- The other two hook arguments should copy and free argu-
- ment-block structures. They will be used by the forms-
- driver code. You must supply the <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> function, the
- other two are optional, you may supply NULL for them. In
- this case it is assumed, that <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> doesn't allocate
- memory but simply loads the argument into a single scalar
- value.
-
- 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
- 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
- arguments.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The pointer-valued routines return NULL on error.
-
- The integer-valued routines return one of the following
- codes on error:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_CONNECTED</STRONG>
- The field is already connected to a form.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
- 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.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_hook.3x.html b/ncurses-5.3/doc/html/man/form_hook.3x.html
deleted file mode 100644
index 5f6af22..0000000
--- a/ncurses-5.3/doc/html/man/form_hook.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_hook 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_hook</STRONG> - set hooks for automatic invocation by applica-
- tions
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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 *));
- void (*)(FORM *) field_term(const FORM *form);
- int set_form_init(FORM *form, void (*func)(FORM *));
- void (*)(FORM *) form_init(const FORM *form);
- int set_form_term(FORM *form, void (*func)(FORM *));
- void (*)(FORM *) form_term(const FORM *form);
-
-
-</PRE>
-<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 <STRONG>form_driver</STRONG>.
-
- The function <STRONG>set_field_init</STRONG> sets a hook to be called at
- form-post time and each time the selected field changes
- (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 <STRONG>set_field_term</STRONG> sets a hook to be called at
- form-unpost time and each time the selected field changes
- (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 <STRONG>set_form_init</STRONG> sets a hook to be called at
- form-post time and just after a page change once it is
- posted. <STRONG>form_init</STRONG> returns the current form init hook, if
- any (<STRONG>NULL</STRONG> if there is no such hook).
-
- 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
- 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>
- Routines that return pointers return <STRONG>NULL</STRONG> on error. Other
- routines return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_new.3x.html b/ncurses-5.3/doc/html/man/form_new.3x.html
deleted file mode 100644
index c90a023..0000000
--- a/ncurses-5.3/doc/html/man/form_new.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>form_new 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_new</STRONG> - create and destroy forms
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
- FORM *new_form(FIELD **fields);
- int free_form(FORM *form);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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).
-
- 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>
- The function <STRONG>new_form</STRONG> returns <STRONG>NULL</STRONG> on error.
-
- The function <STRONG>free_form</STRONG> returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The form has already been posted.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_new_page.3x.html b/ncurses-5.3/doc/html/man/form_new_page.3x.html
deleted file mode 100644
index ae2cc2d..0000000
--- a/ncurses-5.3/doc/html/man/form_new_page.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>form_new_page 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_new_page</STRONG> - form pagination functions
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- 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 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>
- The function <STRONG>new_page</STRONG> returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
-
- The function <STRONG>set_new_page</STRONG> return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_CONNECTED</STRONG>
- The given field is already connected to a form.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for
- detailed descriptions of the entry points.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_opts.3x.html b/ncurses-5.3/doc/html/man/form_opts.3x.html
deleted file mode 100644
index 38f970b..0000000
--- a/ncurses-5.3/doc/html/man/form_opts.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_opts 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_opts</STRONG> - set and get form options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
- OPTIONS form_opts(const FORM *form);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>set_form_opts</STRONG> sets all the given form's
- option bits (form option bits may be logically-OR'ed
- together).
-
- The function <STRONG>form_opts_on</STRONG> turns on the given option bits,
- and leaves others alone.
-
- The function <STRONG>form_opts_off</STRONG> turns off the given option
- bits, and leaves others alone.
-
- 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
- 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
- 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>
- Except for <STRONG>form_opts</STRONG>, each routine returns one of the fol-
- lowing:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_page.3x.html b/ncurses-5.3/doc/html/man/form_page.3x.html
deleted file mode 100644
index 84d9f7b..0000000
--- a/ncurses-5.3/doc/html/man/form_page.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_page 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_page</STRONG> - set and get form page number
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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 form_page(const FORM *form);
- int field_index(const FIELD *field);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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 function <STRONG>set_form_page</STRONG> sets the form's page number
- (goes to page <EM>n</EM> of the form).
-
- The function <STRONG>form_page</STRONG> returns the form's current page
- number.
-
- 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
- <STRONG>ERR</STRONG> if the argument is the null pointer or the field is
- not connected.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>form_page</STRONG>, each routine returns one of the fol-
- lowing:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or termina-
- tion function.
-
- <STRONG>E_INVALID_FIELD</STRONG>
- Contents of a field are not valid.
-
- <STRONG>E_REQUEST_DENIED</STRONG>
- The form driver could not process the request.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_post.3x.html b/ncurses-5.3/doc/html/man/form_post.3x.html
deleted file mode 100644
index 2730fdd..0000000
--- a/ncurses-5.3/doc/html/man/form_post.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_post 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_post</STRONG> - write or erase forms from associated subwin-
- dows
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
- int post_form(FORM *form);
- int unpost_form(FORM *form);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>post_form</STRONG> displays a form to its associated
- subwindow. To trigger physical display of the subwindow,
- 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).
-
- The function <STRONG>unpost_form</STRONG> erases form from its associated
- subwindow.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The form has already been posted.
-
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or termina-
- tion function.
-
- <STRONG>E_NO_ROOM</STRONG>
- Form is too large for its window.
-
- <STRONG>E_NOT_POSTED</STRONG>
- The form has not been posted.
-
- <STRONG>E_NOT_CONNECTED</STRONG>
- No items are connected to the form.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_requestname.3x.html b/ncurses-5.3/doc/html/man/form_requestname.3x.html
deleted file mode 100644
index 093f1f1..0000000
--- a/ncurses-5.3/doc/html/man/form_requestname.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>form_requestname 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_requestname</STRONG> - handle printable form request names
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- The function <STRONG>form_request_name</STRONG> returns the printable name
- of a form request code.
- The function <STRONG>form_request_by_name</STRONG> searches in the name-
- table for a request with the given name and returns its
- request code. Otherwise E_NO_MATCH is returned.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <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>
- <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>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_userptr.3x.html b/ncurses-5.3/doc/html/man/form_userptr.3x.html
deleted file mode 100644
index 325df02..0000000
--- a/ncurses-5.3/doc/html/man/form_userptr.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>form_userptr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_userptr</STRONG> - associate application data with a form item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;form.h&gt;</STRONG>
- int set_form_userptr(FORM *form, void *userptr);
- void* form_userptr(const FORM *form);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every form and every form item has a field that can be
- used to hold application-specific data (that is, the form-
- driver code leaves it alone). These functions get and set
- the form user pointer field.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The function <STRONG>form_userptr</STRONG> returns <STRONG>NULL</STRONG> on error. The
- function <STRONG>set_form_userptr</STRONG> returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
- The user pointer should be a void pointer. We leave it as
- a char pointer for SVr4 compatibility.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/form_win.3x.html b/ncurses-5.3/doc/html/man/form_win.3x.html
deleted file mode 100644
index 13d39e3..0000000
--- a/ncurses-5.3/doc/html/man/form_win.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>form_win 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>form_win</STRONG> - make and break form window and subwindow asso-
- ciations
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
- WINDOW *form_sub(const FORM *form);
- int scale_form(const FORM *form, int *rows, int *columns);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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
- code uses <STRONG>stdscr</STRONG> for both.
-
- 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.
-
- The function <STRONG>scale_form</STRONG> returns the minimum size required
- for the subwindow of <EM>form</EM>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return pointers return <STRONG>NULL</STRONG> on error. Rou-
- tines that return an integer return one of the following
- error codes:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The form has already been posted.
-
- <STRONG>E_NOT_CONNECTED</STRONG>
- No items are connected to the form.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>.
-
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;form.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/infocmp.1m.html b/ncurses-5.3/doc/html/man/infocmp.1m.html
deleted file mode 100644
index 099b3ef..0000000
--- a/ncurses-5.3/doc/html/man/infocmp.1m.html
+++ /dev/null
@@ -1,447 +0,0 @@
-<!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>
-<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>
-<H1>infocmp 1m</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>infocmp</STRONG> - compare or print out <EM>terminfo</EM> descriptions
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- <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.
-
- <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.
-
- <STRONG>Comparison</STRONG> <STRONG>Options</STRONG> <STRONG>[-d]</STRONG> <STRONG>[-c]</STRONG> <STRONG>[-n]</STRONG>
- <STRONG>infocmp</STRONG> compares the <STRONG>terminfo</STRONG> description of the first
- terminal <EM>termname</EM> with each of the descriptions given by
- the entries for the other terminal's <EM>termnames</EM>. If a
- capability is defined for only one of the terminals, the
- value returned will depend on the type of the capability:
- <STRONG>F</STRONG> for boolean variables, <STRONG>-1</STRONG> for integer variables, and
- <STRONG>NULL</STRONG> for string variables.
-
- The <STRONG>-d</STRONG> option produces a list of each capability that is
- different between two entries. This option is useful to
- show the difference between two entries, created by dif-
- ferent people, for the same or similar terminals.
-
- The <STRONG>-c</STRONG> option produces a list of each capability that is
- common between two entries. Capabilities that are not set
- are ignored. This option can be used as a quick check to
- see if the <STRONG>-u</STRONG> option is worth using.
-
- The <STRONG>-n</STRONG> option produces a list of each capability that is
- in neither entry. If no <EM>termnames</EM> are given, the environ-
- ment variable <STRONG>TERM</STRONG> will be used for both of the <EM>termnames</EM>.
- This can be used as a quick check to see if anything was
- left out of a description.
-
- <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.
-
- <STRONG>-I</STRONG> use the <STRONG>terminfo</STRONG> names
-
- <STRONG>-L</STRONG> use the long C variable name listed in &lt;<STRONG>term.h</STRONG>&gt;
- <STRONG>-C</STRONG> use the <STRONG>termcap</STRONG> names
- <STRONG>-r</STRONG> when using <STRONG>-C</STRONG>, put out all capabilities in <STRONG>termcap</STRONG> form
-
- If no <EM>termnames</EM> are given, the environment variable <STRONG>TERM</STRONG>
- will be used for the terminal name.
-
- The source produced by the <STRONG>-C</STRONG> option may be used directly
- as a <STRONG>termcap</STRONG> entry, but not all parameterized strings can
- 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
- <STRONG>termcap</STRONG> expects it. Mandatory padding (padding informa-
- tion with a trailing '/') will become optional.
-
- All <STRONG>termcap</STRONG> variables no longer supported by <STRONG>terminfo</STRONG>, but
- which are derivable from other <STRONG>terminfo</STRONG> variables, will be
- output. Not all <STRONG>terminfo</STRONG> capabilities will be translated;
- only those variables which were part of <STRONG>termcap</STRONG> will nor-
- mally be output. Specifying the <STRONG>-r</STRONG> option will take off
- this restriction, allowing all capabilities to be output
- in <EM>termcap</EM> form.
-
- Note that because padding is collected to the beginning of
- the capability, not all capabilities are output. Manda-
- tory padding is not supported. Because <STRONG>termcap</STRONG> strings
- are not as flexible, it is not always possible to convert
- a <STRONG>terminfo</STRONG> string capability into an equivalent <STRONG>termcap</STRONG>
- format. A subsequent conversion of the <STRONG>termcap</STRONG> file back
- into <STRONG>terminfo</STRONG> format will not necessarily reproduce the
- original <STRONG>terminfo</STRONG> source.
-
- Some common <STRONG>terminfo</STRONG> parameter sequences, their <STRONG>termcap</STRONG>
- equivalents, and some terminal types which commonly have
- such sequences, are:
-
- <STRONG>terminfo</STRONG> <STRONG>termcap</STRONG> Representative Terminals
- ---------------------------------------------------------------
- <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
- 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
- each description is a full description, using <STRONG>infocmp</STRONG> will
- show what can be done to change one description to be rel-
- ative to the other.
-
- A capability will get printed with an at-sign (@) if it no
- longer exists in the first <EM>termname</EM>, but one of the other
- <EM>termname</EM> entries contains a value for it. A capability's
- value gets printed if the value in the first <EM>termname</EM> is
- not found in any of the other <EM>termname</EM> entries, or if the
- first of the other <EM>termname</EM> entries that has this capabil-
- ity gives a different value for the capability than that
- in the first <EM>termname</EM>.
-
- The order of the other <EM>termname</EM> entries is significant.
- Since the terminfo compiler <STRONG>tic</STRONG> does a left-to-right scan
- of the capabilities, specifying two <STRONG>use=</STRONG> entries that con-
- tain differing entries for the same capabilities will pro-
- duce different results depending on the order that the
- entries are given in. <STRONG>infocmp</STRONG> will flag any such incon-
- sistencies between the other <EM>termname</EM> entries as they are
- found.
-
- Alternatively, specifying a capability <EM>after</EM> a <STRONG>use=</STRONG> entry
- that contains that capability will cause the second speci-
- fication to be ignored. Using <STRONG>infocmp</STRONG> to recreate a
- 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 <STRONG>use=</STRONG> fields that are superfluous. <STRONG>infocmp</STRONG>
- will flag any other <EM>termname</EM> <EM>use=</EM> fields that were not
- needed.
-
- <STRONG>Changing</STRONG> <STRONG>Databases</STRONG> <STRONG>[-A</STRONG> <EM>directory</EM>] [-B <EM>directory</EM>]
- The location of the compiled <STRONG>terminfo</STRONG> database is taken
- from the environment variable <STRONG>TERMINFO</STRONG> . If the variable
- is not defined, or the terminal is not found in that loca-
- tion, the system <STRONG>terminfo</STRONG> database, in <STRONG>/usr/share/ter-</STRONG>
- <STRONG>minfo</STRONG>, will be used. The options <STRONG>-A</STRONG> and <STRONG>-B</STRONG> may be used to
- override this location. The <STRONG>-A</STRONG> option will set <STRONG>TERMINFO</STRONG>
- for the first <EM>termname</EM> and the <STRONG>-B</STRONG> option will set <STRONG>TERMINFO</STRONG>
- for the other <EM>termnames</EM>. With this, it is possible to
- compare descriptions for a terminal with the same name
- located in two different databases. This is useful for
- comparing descriptions for the same terminal created by
- different people.
-
- <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.
-
- <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.
-
- <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.
-
- Before ncurses 5.0, the split between the <STRONG>-e</STRONG> and <STRONG>-E</STRONG>
- options was not needed; but support for extended
- names required making the arrays of terminal capabil-
- ities separate from the TERMTYPE structure.
-
- <STRONG>-e</STRONG> Dump the capabilities of the given terminal as a C
- initializer for a TERMTYPE structure (the terminal
- capability structure in the <STRONG>&lt;term.h&gt;</STRONG>). This option
- is useful for preparing versions of the curses
- library hardwired for a given terminal type.
-
- <STRONG>-F</STRONG> compare terminfo files. This assumes that two fol-
- lowing arguments are filenames. The files are
- searched for pairwise matches between entries, with
- two entries considered to match if any of their names
- do. The report printed to standard output lists
- entries with no matches in the other file, and
- entries with more than one match. For entries with
- exactly one match it includes a difference report.
- Normally, to reduce the volume of the report, use
- references are not resolved before looking for dif-
- ferences, but resolution can be forced by also speci-
- fying <STRONG>-r</STRONG>.
-
- <STRONG>-f</STRONG> Display complex terminfo strings which contain
- if/then/else/endif expressions indented for readabil-
- ity.
-
- <STRONG>-G</STRONG> Display constant literals in decimal form rather than
- their character equivalents.
-
- <STRONG>-g</STRONG> Display constant character literals in quoted form
- rather than their decimal equivalents.
-
- <STRONG>-i</STRONG> Analyze the initialization (<STRONG>is1</STRONG>, <STRONG>is2</STRONG>, <STRONG>is3</STRONG>), and reset
- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>), strings in the entry. For each
- string, the code tries to analyze it into actions in
- 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
- colon and space, followed by a printable expansion of
- the capability string with sections matching recog-
- nized actions translated into {}-bracketed descrip-
- tions. Here is a list of the DEC/ANSI special
- sequences recognized:
-
- Action Meaning
- -----------------------------------------
- RIS full reset
- SC save cursor
- RC restore cursor
- LL home-down
- RSR reset scroll region
-
- ISO DEC G0 enable DEC graphics for G0
- ISO UK G0 enable UK chars for G0
- ISO US G0 enable US chars for G0
- ISO DEC G1 enable DEC graphics for G1
- ISO UK G1 enable UK chars for G1
- ISO US G1 enable US chars for G1
-
- DECPAM application keypad mode
- DECPNM normal keypad mode
- DECANSI enter ANSI mode
-
- DEC[+-]CKM application cursor keys
- DEC[+-]ANM set VT52 mode
- DEC[+-]COLM 132-column mode
- DEC[+-]SCLM smooth scroll
- DEC[+-]SCNM reverse video mode
- DEC[+-]OM origin mode
- DEC[+-]AWM wraparound mode
- DEC[+-]ARM auto-repeat mode
-
- It also recognizes a SGR action corresponding to
- ANSI/ISO 6429/ECMA Set Graphics Rendition, with the
- values NORMAL, BOLD, UNDERLINE, BLINK, and REVERSE.
- All but NORMAL may be prefixed with `+' (turn on) or
- `-' (turn off).
-
- An SGR0 designates an empty highlight sequence
- (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).
-
- <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.
-
- <STRONG>-v</STRONG> <EM>n</EM> prints out tracing information on standard error as
- the program runs. Higher values of n induce greater
- verbosity.
-
- <STRONG>-w</STRONG> <EM>width</EM>
- changes the output to <EM>width</EM> characters.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description
- database.
-
-
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
- The <STRONG>-E</STRONG>, <STRONG>-F</STRONG>, <STRONG>-G</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-i</STRONG>, <STRONG>-l</STRONG>, <STRONG>-p</STRONG>, <STRONG>-q</STRONG>
- and <STRONG>-t</STRONG> options are not supported in SVr4 curses.
-
- The <STRONG>-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>
- 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>
- <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>
- Eric S. Raymond &lt;esr@snark.thyrsus.com&gt; and
- Thomas E. Dickey &lt;dickey@herndon4.his.com&gt;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/infotocap.1m.html b/ncurses-5.3/doc/html/man/infotocap.1m.html
deleted file mode 100644
index b4738d7..0000000
--- a/ncurses-5.3/doc/html/man/infotocap.1m.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!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>
-<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>
-<H1>infotocap 1m</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>infotocap</STRONG> - convert a <EM>terminfo</EM> description into a <EM>termcap</EM>
- description
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- <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.
-
- <STRONG>-v</STRONG> print out tracing information on standard error as
- the program runs.
-
- <STRONG>-V</STRONG> print out the version of the program in use on stan-
- dard error and exit.
-
- <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.
-
- <STRONG>-w</STRONG> change the output to <EM>width</EM> characters.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo Compiled terminal description
- database.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- 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>
- <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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/keybound.3x.html b/ncurses-5.3/doc/html/man/keybound.3x.html
deleted file mode 100644
index 99da0c7..0000000
--- a/ncurses-5.3/doc/html/man/keybound.3x.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!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>
-<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>
-<H1>keyok 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>keybound</STRONG> - return definition of keycode
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <STRONG>char</STRONG> <STRONG>*</STRONG> <STRONG>keybound(int</STRONG> <STRONG>keycode,</STRONG> <STRONG>int</STRONG> <STRONG>count);</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The keycode must be greater than zero, else NULL is
- returned. If it does not correspond to a defined key,
- then NULL is returned. Otherwise, the function returns a
- string, which must be freed by the caller.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.3/doc/html/man/keyok.3x.html b/ncurses-5.3/doc/html/man/keyok.3x.html
deleted file mode 100644
index 001445e..0000000
--- a/ncurses-5.3/doc/html/man/keyok.3x.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!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>
-<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>
-<H1>keyok 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>keyok</STRONG> - enable or disable a keycode
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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
- the <EM>keypad</EM> function to disable all keycodes. Keys that
- have been disabled can be reenabled.
-
-
-</PRE>
-<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 <EM>enable</EM> parameter is true,
- then the key must have been disabled, and vice versa.
- Otherwise, the function returns OK.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</PRE>
-<HR>
-<ADDRESS>
-Man(1) output converted with
-<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
-</ADDRESS>
-</BODY>
-</HTML>
diff --git a/ncurses-5.3/doc/html/man/menu.3x.html b/ncurses-5.3/doc/html/man/menu.3x.html
deleted file mode 100644
index d77562a..0000000
--- a/ncurses-5.3/doc/html/man/menu.3x.html
+++ /dev/null
@@ -1,283 +0,0 @@
-<!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>
-<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>
-<H1>menu 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu</STRONG> - curses extension for programming menus
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
- 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>.
-
-
- <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
- 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.
-
-
- <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.
-
- <STRONG>curses</STRONG> Routine Name Manual Page Name
- --------------------------------------------
- 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>
- Routines that return pointers return <STRONG>NULL</STRONG> on error. Rou-
- tines that return an integer return one of the following
- error codes:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The menu is already posted.
-
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or termina-
- tion function.
-
- <STRONG>E_NO_ROOM</STRONG>
- Menu is too large for its window.
-
- <STRONG>E_NOT_POSTED</STRONG>
- The menu has not been posted.
-
- <STRONG>E_UNKNOWN_COMMAND</STRONG>
- The menu driver code saw an unknown request code.
-
- <STRONG>E_NO_MATCH</STRONG>
- Character failed to match.
-
- <STRONG>E_NOT_SELECTABLE</STRONG>
- The designated item cannot be selected.
-
- <STRONG>E_NOT_CONNECTED</STRONG>
- No items are connected to the menu.
-
- <STRONG>E_REQUEST_DENIED</STRONG>
- The menu driver could not process the request.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for
- detailed descriptions of the entry points.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- files <STRONG>&lt;curses.h&gt;</STRONG> and <STRONG>&lt;eti.h&gt;</STRONG>.
-
- In your library list, libmenu.a should be before libn-
- curses.a; that is, you want to say `-lmenu -lncurses', not
- the other way around (which would give you a link error
- using GNU <STRONG><A HREF="ld.1.html">ld(1)</A></STRONG> and many other linkers).
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for ncurses
- by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_attributes.3x.html b/ncurses-5.3/doc/html/man/menu_attributes.3x.html
deleted file mode 100644
index 2332f98..0000000
--- a/ncurses-5.3/doc/html/man/menu_attributes.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>menu_attributes 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_attributes</STRONG> - color and attribute control for menus
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
- chtype menu_back(const MENU *menu);
- int set_menu_grey(MENU *menu, chtype attr);
- chtype menu_grey(const MENU *menu);
- int set_menu_pad(MENU *menu, int pad);
- int menu_pad(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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 <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
- <STRONG>menu_back</STRONG> returns the background attribute. The default
- is <STRONG>A_NORMAL</STRONG>.
-
- 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
- function <STRONG>menu_grey</STRONG> returns the grey attribute. The
- default is <STRONG>A_UNDERLINE</STRONG>.
-
- The function <STRONG>set_menu_pad</STRONG> sets the character used to fill
- the space between the name and description parts of a menu
- item. <STRONG>menu_pad</STRONG> returns the given menu's pad character.
- The default is a blank.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for
- detailed descriptions of the entry points.
-
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_cursor.3x.html b/ncurses-5.3/doc/html/man/menu_cursor.3x.html
deleted file mode 100644
index 61647f4..0000000
--- a/ncurses-5.3/doc/html/man/menu_cursor.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>menu_cursor 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_cursor</STRONG> - position a menu's cursor
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- int pos_menu_cursor(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>pos_menu_cursor</STRONG> restores the cursor to the
- current position associated with the menu's selected item.
- This is useful after <STRONG>curses</STRONG> routines have been called to
- do screen-painting in response to a menu select.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- This routine returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_NOT_POSTED</STRONG>
- The menu has not been posted.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_driver.3x.html b/ncurses-5.3/doc/html/man/menu_driver.3x.html
deleted file mode 100644
index 2c4f5e6..0000000
--- a/ncurses-5.3/doc/html/man/menu_driver.3x.html
+++ /dev/null
@@ -1,228 +0,0 @@
-<!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>
-<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>
-<H1>menu_driver 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_driver</STRONG> - command-processing loop of the menu system
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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
- 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.
- The menu driver requests are as follows:
-
- REQ_LEFT_ITEM
- Move left to an item.
-
- REQ_RIGHT_ITEM
- Move right to an item.
-
- REQ_UP_ITEM
- Move up to an item.
-
- REQ_DOWN_ITEM
- Move down to an item.
-
- REQ_SCR_ULINE
- Scroll up a line.
-
- REQ_SCR_DLINE
- Scroll down a line.
-
- REQ_SCR_DPAGE
- Scroll down a page.
-
- REQ_SCR_UPAGE
- Scroll up a page.
-
- REQ_FIRST_ITEM
- Move to the first item.
-
- REQ_LAST_ITEM
- Move to the last item.
-
- REQ_NEXT_ITEM
- Move to the next item.
-
- REQ_PREV_ITEM
- Move to the previous item.
-
- REQ_TOGGLE_ITEM
- Select/deselect an item.
-
- REQ_CLEAR_PATTERN
- Clear the menu pattern buffer.
-
- REQ_BACK_PATTERN
- Delete the previous character from the pattern
- buffer.
-
- REQ_NEXT_MATCH
- Move to the next item matching the pattern match.
-
- REQ_PREV_MATCH
- Move to the previous item matching the pattern match.
-
- 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, <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
- requests, the corresponding action is performed.
-
- If the second argument is the KEY_MOUSE special key, the
- associated mouse event is translated into one of the above
- pre-defined requests. Currently only clicks in the user
- window (e.g. inside the menu display area or the decora-
- tion window) are handled. If you click above the display
- region of the menu, a REQ_SCR_ULINE is generated, if you
- doubleclick a REQ_SCR_UPAGE is generated and if you
- tripleclick a REQ_FIRST_ITEM is generated. If you click
- below the display region of the menu, a REQ_SCR_DLINE is
- generated, if you doubleclick a REQ_SCR_DPAGE is generated
- and if you tripleclick a REQ_LAST_ITEM is generated. If
- you click at an item inside the display area of the menu,
- the menu cursor is positioned to that item. If you double-
- click at an item a REQ_TOGGLE_ITEM is generated and
- <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
- 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
- <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
- 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>
- <STRONG>menu_driver</STRONG> return one of the following error codes:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or termina-
- tion function.
-
- <STRONG>E_NOT_POSTED</STRONG>
- The menu has not been posted.
-
- <STRONG>E_UNKNOWN_COMMAND</STRONG>
- The menu driver code saw an unknown request code.
-
- <STRONG>E_NO_MATCH</STRONG>
- Character failed to match.
-
- <STRONG>E_REQUEST_DENIED</STRONG>
- The menu driver could not process the request.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- files <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions. The sup-
- port for mouse events is ncurses specific.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_format.3x.html b/ncurses-5.3/doc/html/man/menu_format.3x.html
deleted file mode 100644
index e4c24d9..0000000
--- a/ncurses-5.3/doc/html/man/menu_format.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>menu_format 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_format</STRONG> - set and get menu sizes
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- int set_menu_format(MENU *menu, int rows, int cols);
- void menu_format(const MENU *menu, int *rows, int *cols);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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
- is too small to display all menu items, <STRONG>post_menu()</STRONG> will
- fail.
-
- The default format is 16 rows, 1 column. Calling
- <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.
-
- The function <STRONG>menu_format</STRONG> returns the maximum-size con-
- straints for the given menu into the storage addressed by
- <STRONG>rows</STRONG> and <STRONG>cols</STRONG>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The menu is already posted.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_hook.3x.html b/ncurses-5.3/doc/html/man/menu_hook.3x.html
deleted file mode 100644
index b2c784e..0000000
--- a/ncurses-5.3/doc/html/man/menu_hook.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>menu_hook 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_hook</STRONG> - set hooks for automatic invocation by applica-
- tions
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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 *));
- void (*)(MENU *) item_term(const MENU *menu);
- int set_menu_init(MENU *menu, void (*func)(MENU *));
- void (*)(MENU *) menu_init(const MENU *menu);
- int set_menu_term(MENU *menu, void (*func)(MENU *));
- void (*)(MENU *) menu_term(const MENU *menu);
-
-
-</PRE>
-<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 <STRONG>menu_driver</STRONG>.
-
- The function <STRONG>set_item_init</STRONG> sets a hook to be called at
- menu-post time and each time the selected item changes
- (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 <STRONG>set_item_term</STRONG> sets a hook to be called at
- menu-unpost time and each time the selected item changes
- (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 <STRONG>set_menu_init</STRONG> sets a hook to be called at
- menu-post time and just after the top row on the menu
- 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 <STRONG>set_menu_term</STRONG> sets a hook to be called at
- menu-unpost time and just before the top row on the menu
- 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>
- Routines that return pointers return <STRONG>NULL</STRONG> on error. Other
- routines return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_items.3x.html b/ncurses-5.3/doc/html/man/menu_items.3x.html
deleted file mode 100644
index 65dd1c7..0000000
--- a/ncurses-5.3/doc/html/man/menu_items.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>menu_items 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_items</STRONG> - make and break connections between items and
- menus
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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 <STRONG>menu_items</STRONG> returns the item array of the
- given menu.
-
- The function <STRONG>item_count</STRONG> returns the count of items in
- <EM>menu</EM>.
-
-
-</PRE>
-<H2>RETURN VALUES</H2><PRE>
- The function <STRONG>menu_items</STRONG> returns <STRONG>NULL</STRONG> on error.
-
- The function <STRONG>item_count</STRONG> returns <STRONG>ERR</STRONG> (the general <STRONG>curses</STRONG>
- error return value) on error.
-
- The function <STRONG>set_menu_items</STRONG> returns one of the following
- codes on error:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The menu is already posted.
-
- <STRONG>E_NOT_CONNECTED</STRONG>
- No items are connected to the menu.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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
- <STRONG>item_count</STRONG> error value as -1 (which is the value of <STRONG>ERR</STRONG>).
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_mark.3x.html b/ncurses-5.3/doc/html/man/menu_mark.3x.html
deleted file mode 100644
index 588cb94..0000000
--- a/ncurses-5.3/doc/html/man/menu_mark.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>menu_mark 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_mark</STRONG> - get and set the menu mark string
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- In order to make menu selections visible on older termi-
- nals without highlighting or color capability, the menu
- library marks selected items in a menu with a prefix
- string.
-
- 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.
-
- 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 <STRONG>menu_mark</STRONG> returns the menu's mark string (or
- <STRONG>NULL</STRONG> if there is none).
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- 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:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-</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/ncurses-5.3/doc/html/man/menu_new.3x.html b/ncurses-5.3/doc/html/man/menu_new.3x.html
deleted file mode 100644
index bd337a0..0000000
--- a/ncurses-5.3/doc/html/man/menu_new.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>menu_new 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_new</STRONG> - create and destroy menus
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- MENU *new_menu(ITEM **items);
- int free_menu(MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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).
-
- 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>
- The function <STRONG>new_menu</STRONG> returns <STRONG>NULL</STRONG> on error.
-
- The function <STRONG>free_menu</STRONG> returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The menu has already been posted.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_opts.3x.html b/ncurses-5.3/doc/html/man/menu_opts.3x.html
deleted file mode 100644
index a306b2a..0000000
--- a/ncurses-5.3/doc/html/man/menu_opts.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>menu_opts 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_opts</STRONG> - set and get menu options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
- OPTIONS menu_opts(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>set_menu_opts</STRONG> sets all the given menu's
- option bits (menu option bits may be logically-OR'ed
- together).
-
- The function <STRONG>menu_opts_on</STRONG> turns on the given option bits,
- and leaves others alone.
-
- The function <STRONG>menu_opts_off</STRONG> turns off the given option
- bits, and leaves others alone.
-
- The function <STRONG>menu_opts</STRONG> returns the menu's current option
- bits.
-
- The following options are defined (all are on by default):
-
- O_ONEVALUE
- Only one item can be selected for this menu.
-
- O_SHOWDESC
- Display the item descriptions when the menu is
- posted.
-
- O_ROWMAJOR
- Display the menu in row-major order.
-
- O_IGNORECASE
- Ignore the case when pattern-matching.
-
- O_SHOWMATCH
- Move the cursor to within the item name while pat-
- tern-matching.
-
- O_NONCYCLIC
- Don't wrap around next-item and previous-item,
- requests to the other end of the menu.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>menu_opts</STRONG>, each routine returns one of the fol-
- lowing:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_POSTED</STRONG>
- The menu is already posted.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_pattern.3x.html b/ncurses-5.3/doc/html/man/menu_pattern.3x.html
deleted file mode 100644
index ea3a8cc..0000000
--- a/ncurses-5.3/doc/html/man/menu_pattern.3x.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!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>
-<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>
-<H1>menu_pattern 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_pattern</STRONG> - get and set a menu's pattern buffer
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- int set_menu_pattern(MENU *menu, const char *pattern);
- char *menu_pattern(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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 <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>.
-
- 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 function <STRONG>menu_pattern</STRONG> returns the pattern buffer of
- the given <EM>menu</EM>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- 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:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_NO_MATCH</STRONG>
- Character failed to match.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-</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/ncurses-5.3/doc/html/man/menu_post.3x.html b/ncurses-5.3/doc/html/man/menu_post.3x.html
deleted file mode 100644
index 82d90e9..0000000
--- a/ncurses-5.3/doc/html/man/menu_post.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>menu_post 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_post</STRONG> - write or erase menus from associated subwin-
- dows
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- int post_menu(MENU *menu);
- int unpost_menu(MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>post_menu</STRONG> displays a menu to its associated
- subwindow. To trigger physical display of the subwindow,
- 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.
-
- The function <STRONG>unpost_menu</STRONG> erases menu from its associated
- subwindow.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines return one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The menu has already been posted.
-
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or termina-
- tion function.
-
- <STRONG>E_NO_ROOM</STRONG>
- Menu is too large for its window. You should consider
- to use <STRONG>set_menu_format()</STRONG> to solve the problem.
-
- <STRONG>E_NOT_POSTED</STRONG>
- The menu has not been posted.
-
- <STRONG>E_NOT_CONNECTED</STRONG>
- No items are connected to the menu.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_requestname.3x.html b/ncurses-5.3/doc/html/man/menu_requestname.3x.html
deleted file mode 100644
index fa475d1..0000000
--- a/ncurses-5.3/doc/html/man/menu_requestname.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>menu_requestname 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_requestname</STRONG> - handle printable menu request names
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- The function <STRONG>menu_request_name</STRONG> returns the printable name
- of a menu request code.
- The function <STRONG>menu_request_by_name</STRONG> searches in the name-
- table for a request with the given name and returns its
- request code. Otherwise E_NO_MATCH is returned.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- <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>
- <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>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_spacing.3x.html b/ncurses-5.3/doc/html/man/menu_spacing.3x.html
deleted file mode 100644
index 998cdb1..0000000
--- a/ncurses-5.3/doc/html/man/menu_spacing.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>menu_spacing 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_spacing</STRONG> - Control spacing between menu items.
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- int set_menu_spacing(MENU *menu,
- int spc_description,
- int spc_rows,
- int spc_columns);
- int menu_spacing(const MENU *menu,
- int* spc_description,
- int* spc_rows,
- int* spc_columns);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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
- must not be larger than <STRONG>TABSIZE</STRONG>. The menu system puts in
- the middle of this spacing area the pad character. The
- remaining parts are filled with spaces. <STRONG>spc_rows</STRONG> controls
- the number of rows that are used for an item. It must not
- be larger than 3. The menu system inserts then blank lines
- between item rows, these lines will contain the pad char-
- acter in the appropriate positions. <STRONG>spc_columns</STRONG> controls
- the number of blanks between columns of items. It must not
- 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 <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>
- 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>
- <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>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
- ditioned using NCURSES_VERSION.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-</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/ncurses-5.3/doc/html/man/menu_userptr.3x.html b/ncurses-5.3/doc/html/man/menu_userptr.3x.html
deleted file mode 100644
index 6fadbe5..0000000
--- a/ncurses-5.3/doc/html/man/menu_userptr.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>menu_userptr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_userptr</STRONG> - associate application data with a menu item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- int set_menu_userptr(MENU *menu, void *userptr);
- void *menu_userptr(const MENU *menu);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every menu and every menu item has a field that can be
- used to hold application-specific data (that is, the menu-
- driver code leaves it alone). These functions get and set
- the menu user pointer field.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>menu_userptr</STRONG> (which returns <STRONG>NULL</STRONG> on error),
- each function returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
- The user pointer should be a void pointer. We leave it as
- a char pointer for SVr4 compatibility.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/menu_win.3x.html b/ncurses-5.3/doc/html/man/menu_win.3x.html
deleted file mode 100644
index d873d16..0000000
--- a/ncurses-5.3/doc/html/man/menu_win.3x.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!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>
-<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>
-<H1>menu_win 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>menu_win</STRONG> - make and break menu window and subwindow asso-
- ciations
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
- WINDOW *menu_sub(const MENU *menu);
- int scale_menu(const MENU *menu, int *rows, int *columns);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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
- code uses <STRONG>stdscr</STRONG> for both.
-
- 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.
-
- The function <STRONG>scale_menu</STRONG> returns the minimum size required
- for the subwindow of <EM>menu</EM>.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return pointers return <STRONG>NULL</STRONG> on error. Rou-
- tines that return an integer return one of the following
- error codes:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_POSTED</STRONG>
- The menu has already been posted.
-
- <STRONG>E_NOT_CONNECTED</STRONG>
- No items are connected to the menu.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/mitem_current.3x.html b/ncurses-5.3/doc/html/man/mitem_current.3x.html
deleted file mode 100644
index 82614bb..0000000
--- a/ncurses-5.3/doc/html/man/mitem_current.3x.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!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>
-<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>
-<H1>mitem_current 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>mitem_current</STRONG> - set and get current_menu_item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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 top_row(const MENU *menu);
- int item_index(const ITEM *item);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
- 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
- reset to this value whenever the <STRONG>O_ROWMAJOR</STRONG> option is tog-
- gled). The item leftmost on the given row becomes cur-
- rent. The function <STRONG>top_row</STRONG> returns the number of the top
- menu row being displayed.
-
- 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>
- <STRONG>current_item</STRONG> returns <STRONG>NULL</STRONG> on error.
-
- <STRONG>top_row</STRONG> and <STRONG>item_index</STRONG> return <STRONG>ERR</STRONG> (the general <STRONG>curses</STRONG>
- error value) on error.
-
- <STRONG>set_current_item</STRONG> and <STRONG>set_top_row</STRONG> return one of the follow-
- ing:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_BAD_STATE</STRONG>
- Routine was called from an initialization or termina-
- tion function.
-
- <STRONG>E_NOT_CONNECTED</STRONG>
- No items are connected to the menu.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- 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 <STRONG>top_row</STRONG>
- and <STRONG>index_item</STRONG> error value as -1 (which is the value of
- <STRONG>ERR</STRONG>).
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/mitem_name.3x.html b/ncurses-5.3/doc/html/man/mitem_name.3x.html
deleted file mode 100644
index a60a1d7..0000000
--- a/ncurses-5.3/doc/html/man/mitem_name.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>mitem_name 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>mitem_name</STRONG> - get menu item name and description fields
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- The function <STRONG>item_name</STRONG> returns the name part of the given
- item.
- The function <STRONG>item_description</STRONG> returns the description part
- of the given item.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- These routines returns <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/mitem_new.3x.html b/ncurses-5.3/doc/html/man/mitem_new.3x.html
deleted file mode 100644
index 86603d1..0000000
--- a/ncurses-5.3/doc/html/man/mitem_new.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>mitem_new 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>mitem_new</STRONG> - create and destroy menu items
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- 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.
- 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.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The function <STRONG>new_item</STRONG> returns <STRONG>NULL</STRONG> on error.
-
- The function <STRONG>free_item</STRONG> returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_CONNECTED</STRONG>
- Item is connected to a menu.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-</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/ncurses-5.3/doc/html/man/mitem_opts.3x.html b/ncurses-5.3/doc/html/man/mitem_opts.3x.html
deleted file mode 100644
index cc43f6a..0000000
--- a/ncurses-5.3/doc/html/man/mitem_opts.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>mitem_opts 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>mitem_opts</STRONG> - set and get menu item options
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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);
- OPTIONS item_opts(const ITEM *item);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>set_item_opts</STRONG> sets all the given item's
- option bits (menu option bits may be logically-OR'ed
- together).
-
- The function <STRONG>item_opts_on</STRONG> turns on the given option bits,
- and leaves others alone.
-
- The function <STRONG>item_opts_off</STRONG> turns off the given option
- bits, and leaves others alone.
-
- The function <STRONG>item_opts</STRONG> returns the item's current option
- bits.
-
- 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>
- Except for <STRONG>item_opts</STRONG>, each routine returns one of the fol-
- lowing:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-</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/ncurses-5.3/doc/html/man/mitem_userptr.3x.html b/ncurses-5.3/doc/html/man/mitem_userptr.3x.html
deleted file mode 100644
index 997a676..0000000
--- a/ncurses-5.3/doc/html/man/mitem_userptr.3x.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!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>
-<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>
-<H1>mitem_userptr 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>mitem_userptr</STRONG> - associate application data with a menu
- item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- int set_item_userptr(ITEM *item, void *userptr);
- void *item_userptr(const ITEM *item);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Every menu item has a field that can be used to hold
- application-specific data (that is, the menu-driver code
- leaves it alone). These functions get and set that field.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>item_userptr</STRONG> (which returns <STRONG>NULL</STRONG> on error),
- each function returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
- The user pointer should be a void pointer. We leave it as
- a char pointer for SVr4 compatibility.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/mitem_value.3x.html b/ncurses-5.3/doc/html/man/mitem_value.3x.html
deleted file mode 100644
index e38d5e1..0000000
--- a/ncurses-5.3/doc/html/man/mitem_value.3x.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!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>
-<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>
-<H1>mitem_value 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>mitem_value</STRONG> - set and get menu item values
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- 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.
-
- 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>
- The function <STRONG>set_item_value</STRONG> returns one of the following:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_REQUEST_DENIED</STRONG>
- The menu driver could not process the request.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/mitem_visible.3x.html b/ncurses-5.3/doc/html/man/mitem_visible.3x.html
deleted file mode 100644
index 0b36dec..0000000
--- a/ncurses-5.3/doc/html/man/mitem_visible.3x.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!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>
-<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>
-<H1>mitem_visible 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>mitem_visible</STRONG> - check visibility of a menu item
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;menu.h&gt;</STRONG>
- bool item_visible(const ITEM *item);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- A menu item is visible when it is in the portion of a
- posted menu that is mapped onto the screen (if the menu is
- scrollable, in particular, this portion will be smaller
- than the whole menu).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;menu.h&gt;</STRONG> automatically includes the header
- file <STRONG>&lt;curses.h&gt;</STRONG>.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V menu library. They
- were not supported on Version 7 or BSD versions.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
- curses by Eric S. Raymond.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/ncurses.3x.html b/ncurses-5.3/doc/html/man/ncurses.3x.html
deleted file mode 100644
index 83995f9..0000000
--- a/ncurses-5.3/doc/html/man/ncurses.3x.html
+++ /dev/null
@@ -1,1046 +0,0 @@
-<!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>
-<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>
-<H1>ncurses 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>ncurses</STRONG> - CRT screen handling and optimization package
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
- 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
- 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
- <STRONG>-lncurses</STRONG> option, or (if it has been generated) with the
- debugging library <STRONG>-lncurses_g</STRONG>. (Your system integrator
- may also have installed these libraries under the names
- <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g library generates
- trace logs (in a file called 'trace' in the current
- directory) that describe curses actions.
-
- The <STRONG>ncurses</STRONG> package supports: overall screen, window and
- pad manipulation; output to windows and pads; reading
- 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.
-
- To initialize the routines, the routine <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
- must be called before any of the other routines that deal
- with windows and screens are used. The routine <STRONG>endwin</STRONG>
- must be called before exiting. To get character-at-a-time
- input without echoing (most interactive, screen oriented
- programs want this), the following sequence should be
- used:
-
- <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
-
- Most programs would additionally use the sequence:
-
- <STRONG>nonl();</STRONG>
- <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
- <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
-
- Before a <STRONG>curses</STRONG> program is run, the tab stops of the
- terminal should be set and its initialization strings, if
- defined, must be output. This can be done by executing
- the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell environment variable
- <STRONG>TERM</STRONG> has been exported. <STRONG>tset(1)</STRONG> is usually responsible
- for doing this. [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
-
- The <STRONG>ncurses</STRONG> library permits manipulation of data
- structures, called <EM>windows</EM>, which can be thought of as
- two-dimensional arrays of characters representing all or
- part of a CRT screen. A default window called <STRONG>stdscr</STRONG>,
- which is the size of the terminal screen, is supplied.
- Others may be created with <STRONG>newwin</STRONG>.
-
- Note that <STRONG>curses</STRONG> does not handle overlapping windows,
- that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that you
- 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.
-
- Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
- These data structures are manipulated with routines
- described here and elsewhere in the <STRONG>ncurses</STRONG> manual pages.
- Among which the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
- More general versions of these routines are included with
- names beginning with <STRONG>w</STRONG>, allowing the user to specify a
- window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.)
-
- After using routines to manipulate a window, <STRONG>refresh</STRONG> is
- called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
- like <STRONG>stdscr</STRONG>. The characters in a window are actually of
- type <STRONG>chtype</STRONG>, (character and attribute data) so that other
- information about the character may also be stored with
- each character.
-
- 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
- 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
- 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
- <STRONG>&lt;curses.h&gt;</STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
-
- If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
- if the program is executing in a window environment, line
- and column information in the environment will override
- information read by <EM>terminfo</EM>. This would effect a program
- running in an AT&amp;T 630 layer, for example, where the size
- of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
-
- If the environment variable <STRONG>TERMINFO</STRONG> is defined, any
- program using <STRONG>curses</STRONG> checks for a local terminal
- definition before checking in the standard place. For
- example, if <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled
- terminal definition is found in
-
- <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
-
- (The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
- creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
- set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
-
- <STRONG>$HOME/myterms/a/att4424</STRONG>,
-
- and if that fails, it then checks
-
- <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
-
- This is useful for developing experimental definitions or
- when write permission in <STRONG>/usr/share/terminfo</STRONG> is not
- available.
-
- 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 <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
- <STRONG>curscr</STRONG> can be used in only a few routines.
-
-
- <STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
- Many <STRONG>curses</STRONG> routines have two or more versions. The
- 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 <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
- to move to before performing the appropriate action. The
- <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
- other routine. The coordinate <EM>y</EM> always refers to the row
- (of the window), and <EM>x</EM> always refers to the column. The
- upper left-hand corner is always (0,0), not (1,1).
-
- The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
- and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
- specified before the coordinates.
-
- 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 <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.
-
-
- <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.
-
- <STRONG>curses</STRONG> Routine Name Manual Page Name
- --------------------------------------------
- COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
- PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
- _nc_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>
- 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.
-
- 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).
-
- Routines that return pointers return <STRONG>NULL</STRONG> on error.
-
-
-</PRE>
-<H2>ENVIRONMENT</H2><PRE>
- The following environment symbols are useful for
- customizing the runtime behavior of the <STRONG>ncurses</STRONG> library.
- The most important ones have been already discussed in
- detail.
-
- BAUDRATE
- The debugging library checks this environment symbol
- when the application has redirected output to a file.
- The symbol's numeric value is used for the baudrate.
- If no value is found <STRONG>ncurses</STRONG> uses 9600. This allows
- testers to construct repeatable test-cases that take
- into account costs that depend on baudrate.
-
- CC When set, change occurrences of the command_character
- (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
- entries to the value of this symbol. Very few
- terminfo entries provide this feature.
-
- COLUMNS
- Specify the width of the screen in characters.
- Applications running in a windowing environment
- usually are able to obtain the width of the window in
- which they are executing. If neither the $COLUMNS
- value nor the terminal's screen size is available,
- <STRONG>ncurses</STRONG> uses the size which may be specified in the
- terminfo database (i.e., the <STRONG>cols</STRONG> capability).
-
- It is important that your application use a correct
- size for the screen. However, this is not always
- possible because your application may be running on a
- host which does not honor NAWS (Negotiations About
- Window Size), or because you are temporarily running
- as another user.
-
- Either COLUMNS or LINES symbols may be specified
- independently. This is mainly useful to circumvent
- legacy misfeatures of terminal descriptions, e.g.,
- xterm which commonly specifies a 65 line screen. For
- best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
- in a terminal description for terminals which are run
- as emulations.
-
- Use the <STRONG>use_env</STRONG> function to disable this feature.
-
- ESCDELAY
- Specifies the total time, in milliseconds, for which
- ncurses will await a character sequence, e.g., a
- function key. The default value, 1000 milliseconds,
- is enough for most uses. However, it is made a
- variable to accommodate unusual applications.
-
- The most common instance where you may wish to change
- this value is to work with slow hosts, e.g., running
- on a network. If the host cannot read characters
- rapidly enough, it will have the same effect as if
- the terminal did not send characters rapidly enough.
- The library will still see a timeout.
-
- Note that xterm mouse events are built up from
- character sequences received from the xterm. If your
- application makes heavy use of multiple-clicking, you
- may wish to lengthen this default value because the
- timeout applies to the composed multi-click event as
- well as the individual clicks.
-
- HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
- where it may read and write auxiliary terminal
- descriptions:
-
- $HOME/.termcap
- $HOME/.terminfo
-
- LINES
- Like COLUMNS, specify the height of the screen in
- characters. See COLUMNS for a detailed description.
-
- MOUSE_BUTTONS_123
- This applies only to the OS/2 EMX port. It specifies
- the order of buttons on the mouse. OS/2 numbers a
- 3-button mouse inconsistently from other platforms:
-
- 1 = left
- 2 = right
- 3 = middle.
-
- This symbol lets you customize the mouse. The symbol
- must be three numeric digits 1-3 in any order, e.g.,
- 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses
- 132.
-
- 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
- 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
- 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
- (no hardware cost) is for your program to do this by
- pausing after operations that the terminal does
- slowly, such as clearing the display.
-
- As a result, many terminal descriptions (including
- the vt100) have delay times embedded. You may wish
- to use these descriptions, but not want to pay the
- performance penalty.
-
- Set the NCURSES_NO_PADDING symbol to disable all but
- mandatory padding. Mandatory padding is used as a
- part of special control sequences such as <EM>flash</EM>.
-
- NCURSES_NO_SETBUF
- 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,
- leaving the output in the original (usually line
- buffered) mode.
-
- NCURSES_TRACE
- During initialization, the <STRONG>ncurses</STRONG> debugging library
- checks the NCURSES_TRACE symbol. If it is defined,
- to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function,
- using that value as the argument.
-
- The argument values, which are defined in <STRONG>curses.h</STRONG>,
- provide several types of information. When running
- with traces enabled, your application will write the
- file <STRONG>trace</STRONG> to the current directory.
-
- TERM Denotes your terminal type. Each terminal type is
- distinct, though many are similar.
-
- TERMCAP
- If the <STRONG>ncurses</STRONG> library has been configured with
- <EM>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.
-
- 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
- Overrides the directory in which <STRONG>ncurses</STRONG> searches for
- your terminal description. This is the simplest, but
- not the only way to change the list of directories.
- The complete list of directories in order follows:
-
- - the last directory to which <STRONG>ncurses</STRONG> wrote, if any,
- is searched first.
-
- - the directory specified by the TERMINFO symbol
-
- - $HOME/.terminfo
-
- - directories listed in the TERMINFO_DIRS symbol
-
- - one or more directories whose names are configured
- and compiled into the ncurses library, e.g.,
- /usr/share/terminfo
-
- TERMINFO_DIRS
- Specifies a list of directories to search for
- terminal descriptions. The list is separated by
- colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
- All of the terminal descriptions are in terminfo
- form, which makes a subdirectory named for the first
- letter of the terminal names therein.
-
- TERMPATH
- 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
- variables when the current user is the superuser (root),
- or if the application uses setuid or setgid permissions:
- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/tabset
- directory containing initialization files for the
- terminal capability database /usr/share/terminfo
- terminal capability database
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> and related pages whose names begin "curs_"
- for detailed routine descriptions.
-
-
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
- 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
- terminfo entry corresponding to <STRONG>TERM</STRONG>. Use of this feature
- is not recommended, as it essentially includes an entire
- termcap compiler in the <STRONG>ncurses</STRONG> startup code, at
- significant cost in core and startup cycles.
-
- The <STRONG>ncurses</STRONG> library includes facilities for capturing
- mouse events on certain terminals (including xterm). See
- the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
-
- The <STRONG>ncurses</STRONG> library includes facilities for responding to
- window resizing events, e.g., when running in an xterm.
- See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for
- details. In addition, the library may be configured with
- a SIGWINCH handler.
-
- The <STRONG>ncurses</STRONG> library extends the fixed set of function key
- capabilities of terminals by allowing the application
- designer to define additional key sequences at runtime.
- 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.
-
- 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
- contrasts. See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for
- details.
-
- The <STRONG>ncurses</STRONG> library includes a function for directing
- application output to a printer attached to the terminal
- device. See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- The <STRONG>ncurses</STRONG> library is intended to be BASE-level
- 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: <STRONG>pecho_wchar</STRONG>, <STRONG>slk_wset</STRONG>.
-
- A small number of local differences (that is, individual
- differences between the XSI Curses and <STRONG>ncurses</STRONG> calls) are
- described in <STRONG>PORTABILITY</STRONG> sections of the library man
- pages.
-
- The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present
- in SVr4. See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page for details.
-
- The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it
- present in SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for
- details.
-
- The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>,
- <STRONG>mouseinterval</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse interfacing
- are not part of XPG4, nor are they present in SVr4. See
- the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
-
- 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.
-
- 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
- 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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The header file <STRONG>&lt;curses.h&gt;</STRONG> automatically includes the
- header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
-
- If standard output from a <STRONG>ncurses</STRONG> program is re-directed
- to something which is not a tty, screen updates will be
- directed to standard error. This was an undocumented
- feature of AT&amp;T System V Release 3 curses.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
- Based on pcurses by Pavel Curtis.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/panel.3x.html b/ncurses-5.3/doc/html/man/panel.3x.html
deleted file mode 100644
index 31ab348..0000000
--- a/ncurses-5.3/doc/html/man/panel.3x.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<!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>
-<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>
-<H1>panel 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- panel - panel stack extension for curses
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- 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
- curses <STRONG>stdscr</STRONG> window are hidden or displayed when panels
- are added, moved, modified or removed. The set of cur-
- 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.
-
- A window is associated with every panel. The panel rou-
- tines enable you to create, move, hides, and show panels,
- as well as position a panel at any desired location in the
- stack.
-
- 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>
- <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.
-
- <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.
- Use this function and not wrefresh or wnoutrefresh.
- update_panels() may be called more than once before
- a call to doupdate(), but doupdate() is the func-
- tion responsible for updating the physical screen.
-
- <STRONG>del_panel(pan)</STRONG>
- removes the given panel from the stack and deallo-
- cates the <STRONG>PANEL</STRONG> structure (but not its associated
- window).
-
- <STRONG>hide_panel(pan)</STRONG>
- removes the given panel from the panel stack and
- thus hides it from view. The <STRONG>PANEL</STRONG> structure is not
- lost, merely removed from the stack.
-
- <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.
-
- <STRONG>top_panel(pan)</STRONG>
- puts the given visible panel on top of all panels
- in the stack. See COMPATIBILITY below.
-
- <STRONG>bottom_panel(pan)</STRONG>
- puts panel at the bottom of all panels.
-
- <STRONG>move_panel(pan,starty,startx)</STRONG>
- moves the given panel window so that its upper-left
- corner is at <STRONG>starty</STRONG>, <STRONG>startx</STRONG>. It does not change
- the position of the panel in the stack. Be sure to
- use this function, not <STRONG>mvwin()</STRONG>, to move a panel
- window.
-
- <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;
- 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.
-
- <STRONG>panel_above(pan)</STRONG>
- returns a pointer to the panel above pan. If the
- panel argument is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a pointer
- to the bottom panel in the stack.
-
- <STRONG>panel_below(pan)</STRONG>
- returns a pointer to the panel just below pan. If
- the panel argument is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a
- pointer to the top panel in the stack.
-
- <STRONG>set_panel_userptr(pan,ptr)</STRONG>
- sets the panel's user pointer.
-
- <STRONG>panel_userptr(pan)</STRONG>
- returns the user pointer for a given panel.
-
- <STRONG>panel_window(pan)</STRONG>
- returns a pointer to the window of the given panel.
-
-
-</PRE>
-<H2>DIAGNOSTICS</H2><PRE>
- Each routine that returns a pointer returns <STRONG>NULL</STRONG> if an
- error occurs. Each routine that returns an int value
- returns <STRONG>OK</STRONG> if it executes successfully and <STRONG>ERR</STRONG> if not.
-
-
-</PRE>
-<H2>COMPATIBILITY</H2><PRE>
- Reasonable care has been taken to ensure compatibility
- with the native panel facility introduced in SVr3.2
- (inspection of the SVr4 manual pages suggests the program-
- ming interface is unchanged). The <STRONG>PANEL</STRONG> data structures
- are merely similar. The programmer is cautioned not to
- directly use <STRONG>PANEL</STRONG> fields.
-
- The functions <STRONG>show_panel()</STRONG> and <STRONG>top_panel()</STRONG> are identical
- in this implementation, and work equally well with dis-
- played or hidden panels. In the native System V implemen-
- tation, <STRONG>show_panel()</STRONG> is intended for making a hidden panel
- visible (at the top of the stack) and <STRONG>top_panel()</STRONG> is
- intended for making an already-visible panel move to the
- top of the stack. You are cautioned to use the correct
- function to ensure compatibility with native panel
- libraries.
-
-
-</PRE>
-<H2>NOTE</H2><PRE>
- In your library list, libpanel.a should be before libn-
- curses.a; that is, you want to say `-lpanel -lncurses',
- not the other way around (which would give you a link
- error using GNU <STRONG><A HREF="ld.1.html">ld(1)</A></STRONG> and some other linkers).
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- panel.h interface for the panels library
-
- libpanel.a the panels library itself
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Originally written by Warren Tucker &lt;wht@n4hgf.mt-
- park.ga.us&gt;, primarily to assist in porting u386mon to
- systems without a native panels library. Repackaged for
- ncurses by Zeyd ben-Halim.
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/resizeterm.3x.html b/ncurses-5.3/doc/html/man/resizeterm.3x.html
deleted file mode 100644
index 9ad4fe7..0000000
--- a/ncurses-5.3/doc/html/man/resizeterm.3x.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<!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>
-<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>
-<H1>resizeterm 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>is_term_resized</STRONG>, <STRONG>resize_term</STRONG>, <STRONG>resizeterm</STRONG> - change the
- curses terminal size
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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
- 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>
- 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>
- While these functions are intended to be used to support a
- signal handler (i.e., for SIGWINCH), care should be taken
- to avoid invoking them in a context where <STRONG>malloc</STRONG> or <STRONG>real-</STRONG>
- <STRONG>loc</STRONG> may have been interrupted, since it uses those func-
- tions.
-
- If ncurses is configured to supply its own SIGWINCH han-
- dler, the <STRONG>resizeterm</STRONG> function ungetch's a <STRONG>KEY_RESIZE</STRONG> which
- will be read on the next call to <STRONG>getch</STRONG>. This is used to
- 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>
- <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey (from an equivalent function written in 1988
- for BSD curses).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/term.5.html b/ncurses-5.3/doc/html/man/term.5.html
deleted file mode 100644
index 394d0f7..0000000
--- a/ncurses-5.3/doc/html/man/term.5.html
+++ /dev/null
@@ -1,222 +0,0 @@
-<!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>
-<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>
-<H1>TERM 5</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- term - format of compiled term file.
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>term</STRONG>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- Compiled terminfo descriptions are placed under the direc-
- tory <STRONG>/usr/share/terminfo</STRONG>. In order to avoid a linear
- search of a huge UNIX system directory, a two-level scheme
- 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 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.
-
- The header section begins the file. This section contains
- six short integers in the format described below. These
- integers are (1) the magic number (octal 0432); (2) the
- size, in bytes, of the names section; (3) the number of
- bytes in the boolean section; (4) the number of short
- integers in the numbers section; (5) the number of offsets
- (short integers) in the strings section; (6) the size, in
- bytes, of the string table.
-
- Short integers are stored in two 8-bit bytes. The first
- byte contains the least significant 8 bits of the value,
- and the second byte contains the most significant 8 bits.
- (Thus, the value represented is 256*second+first.) The
- value -1 is represented by the two bytes 0377, 0377; other
- negative values are illegal. This value generally means
- that the corresponding capability is missing from this
- terminal. Note that this format corresponds to the hard-
- ware of the VAX and PDP-11 (that is, little-endian
- machines). Machines where this does not correspond to the
- hardware must read the integers as two bytes and compute
- the little-endian value.
-
- The terminal names section comes next. It contains the
- first line of the terminfo description, listing the vari-
- ous names for the terminal, separated by the `|' charac-
- ter. The section is terminated with an ASCII NUL charac-
- ter.
-
- The boolean flags have one byte for each flag. This byte
- is either 0 or 1 as the flag is present or absent. The
- capabilities are in the same order as the file &lt;term.h&gt;.
-
- Between the boolean section and the number section, a null
- byte will be inserted, if necessary, to ensure that the
- number section begins on an even byte (this is a relic of
- the PDP-11's word-addressed architecture, originally
- designed in to avoid IOT traps induced by addressing a
- word on an odd byte boundary). All short integers are
- aligned on a short word boundary.
-
- The numbers section is similar to the flags section. Each
- capability takes up two bytes, and is stored as a little-
- endian short integer. If the value represented is -1, the
- capability is taken to be missing.
-
- The strings section is also similar. Each capability is
- stored as a short integer, in the format above. A value
- of -1 means the capability is missing. Otherwise, the
- value is taken as an offset from the beginning of the
- string table. Special characters in ^X or \c notation are
- stored in their interpreted form, not the printing repre-
- sentation. Padding information $&lt;nn&gt; and parameter infor-
- mation %x are stored intact in uninterpreted form.
-
- The final section is the string table. It contains all
- the values of string capabilities referenced in the string
- section. Each string is null terminated.
-
- 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
- <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
- (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,
- number, and string capabilities.
-
- Despite the consistent use of little-endian for numbers
- and the otherwise self-describing format, it is not wise
- to count on portability of binary terminfo entries between
- commercial UNIX versions. The problem is that there are
- at least three versions of terminfo (under HP-UX, AIX, and
- 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 <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
- the Lear-Siegler ADM-3, a popular though rather stupid
- early terminal:
-
- adm3a|lsi adm3a,
- am,
- cols#80, lines#24,
- bel=^G, clear= 32$&lt;1&gt;, cr=^M, cub1=^H, cud1=^J,
- 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
- 0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.
- 0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........
- 0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'...
- 0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-.....
- 0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
- 0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$&lt;1
- 0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 &gt;..=%p1% {32}%+%c
- 0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....
- 0150 00 08 00 0c 00 0b 00 0a 00 ........ .
-
-
- Some limitations: total compiled entries cannot exceed
- 4096 bytes. The name field cannot exceed 128 bytes.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo/*/* compiled terminal capability data
- base
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/term.7.html b/ncurses-5.3/doc/html/man/term.7.html
deleted file mode 100644
index 9679864..0000000
--- a/ncurses-5.3/doc/html/man/term.7.html
+++ /dev/null
@@ -1,277 +0,0 @@
-<!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>
-<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>
-<H1>TERM 7</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- term - conventions for naming terminal types
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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.
-
- 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
- it may vary. Older UNIX systems pre-set a very dumb ter-
- minal type like `dumb' or `dialup' on dialup lines. Newer
- ones may pre-set `vt100', reflecting the prevalence of DEC
- VT100-compatible terminals and personal-computer emula-
- tors.
-
- 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
- can almost always be avoided by explicitly exporting
- `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 <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.
-
- 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.
-
- Terminal type descriptions are stored as files of capabil-
- ity data underneath /usr/share/terminfo. To browse a list
- of all terminal names recognized by the system, do
-
- toe | more
-
- from your shell. These capability files are in a binary
- format optimized for retrieval speed (unlike the old text-
- 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:
-
- infocmp <EM>entry-name</EM>
-
- 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
- described by <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-
- 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
- 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
- first and last (if present) are aliases for the terminal,
- usually historical names retained for compatibility.
-
- There are some conventions for how to choose terminal pri-
- mary names that help keep them informative and unique.
- Here is a step-by-step guide to naming terminals that also
- explains how to parse them:
-
- First, choose a root name. The root will consist of a
- lower-case letter followed by up to seven lower-case let-
- ters or digits. You need to avoid using punctuation char-
- acters in root names, because they are used and inter-
- preted as filenames and shell meta-characters (such as !,
- $, *, ? etc.) embedded in them may cause odd and unhelpful
- behavior. The slash (/), or any other character that may
- be interpreted by anyone's file system (\, $, [, ]), is
- especially dangerous (terminfo is platform-independent,
- and choosing names with special characters could someday
- make life difficult for users of a future port). The dot
- (.) character is relatively safe as long as there is at
- most one per root name; some historical terminfo names use
- it.
-
- The root name for a terminal or workstation console type
- should almost always begin with a vendor prefix (such as
- <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;
- thus <STRONG>vt100</STRONG>, <STRONG>hp2621</STRONG>, <STRONG>wy50</STRONG>.
-
- The root name for a PC-Unix console type should be the OS
- 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
- (i.e. <STRONG>versaterm</STRONG>, <STRONG>ctrm</STRONG>).
-
- Following the root name, you may add any reasonable number
- of hyphen-separated feature suffixes.
-
- 2p Has two pages of memory. Likewise 4p, 8p, etc.
-
- mc Magic-cookie. Some terminals (notably older Wyses)
- can only support one attribute without magic-cookie
- lossage. Their base entry is usually paired with
- another that has this suffix and uses magic cookies
- to support multiple attributes.
-
- -am Enable auto-margin (right-margin wraparound)
-
- -m Mono mode - suppress color support
-
- -na No arrow keys - termcap ignores arrow keys which are
- actually there on the terminal, so the user can use
- the arrow keys locally.
-
- -nam No auto-margin - suppress am capability
-
- -nl No labels - suppress soft labels
-
- -nsl No status line - suppress status line
-
- -pp Has a printer port which is used.
-
- -rv Terminal in reverse video mode (black on white)
-
- -s Enable status line.
-
- -vb Use visible bell (flash) rather than beep.
-
- -w Wide; terminal is in 132 column mode.
-
- Conventionally, if your terminal type is a variant
- 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
- <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
- 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
- argument. Such programs should fall back on the <STRONG>TERM</STRONG>
- environment variable when no -T option is specified.
-
-
-</PRE>
-<H2>PORTABILITY</H2><PRE>
- For maximum compatibility with older System V UNIXes,
- names and aliases should be unique within the first 14
- characters.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo/?/*
- compiled terminal capability data base
-
- /etc/inittab
- tty line initialization (AT&amp;T-like UNIXes).
-
- /etc/ttys
- tty line initialization (BSD-like UNIXes).
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</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/ncurses-5.3/doc/html/man/terminfo.5.html b/ncurses-5.3/doc/html/man/terminfo.5.html
deleted file mode 100644
index 366da65..0000000
--- a/ncurses-5.3/doc/html/man/terminfo.5.html
+++ /dev/null
@@ -1,2290 +0,0 @@
-<!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>
-<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>
-<H1>TERMINFO 5 File Formats</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- terminfo - terminal capability data base
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- /usr/share/terminfo/*/*
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- <EM>Terminfo</EM> is a data base describing terminals, used by
- screen-oriented programs such as <STRONG><A HREF="nvi.1.html">nvi(1)</A></STRONG>, <STRONG><A HREF="rogue.1.html">rogue(1)</A></STRONG> and
- 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.
-
- 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
- be a long name fully identifying the terminal, and all
- others are understood as synonyms for the terminal name.
- All names but the last should be in lower case and contain
- no blanks; the last name may well contain upper case and
- blanks for readability.
-
- Terminal names (except for the last, verbose entry) should
- be chosen using the following conventions. The particular
- piece of hardware making up the terminal should have a
- root name, thus ``hp2621''. This name should not contain
- hyphens. Modes that the hardware can be in, or user pref-
- erences, should be indicated by appending a hyphen and a
- mode suffix. Thus, a vt100 in 132 column mode would be
- vt100-w. The following suffixes should be used where pos-
- sible:
-
- <STRONG>Suffix</STRONG> <STRONG>Meaning</STRONG> <STRONG>Example</STRONG>
- -<EM>nn</EM> Number of lines on the screen aaa-60
- -<EM>n</EM>p Number of pages of memory c100-4p
- -am With automargins (usually the default) vt100-am
- -m Mono mode; suppress color ansi-m
- -mc Magic cookie; spaces when highlighting wy30-mc
- -na No arrow keys (leave them in local) c100-na
- -nam Without automatic margins vt100-nam
- -nl No status line att4415-nl
- -ns No status line hp2626-ns
- -rv Reverse video c100-rv
- -s Enable status line vt100-s
- -vb Use visible bell instead of beep wy370-vb
- -w Wide mode (&gt; 80 columns, usually 132) vt100-w
-
- For more on terminal naming conventions, see the <STRONG>term(7)</STRONG>
- manual page.
-
- <STRONG>Capabilities</STRONG>
- 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 <STRONG>variable</STRONG> is the name by which the programmer (at the
- terminfo level) accesses the capability.
-
- 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
- by ECMA-48, which uses identical or very similar names).
- Semantics are also intended to match those of the specifi-
- cation.
-
- 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
- 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
- semantics of the capability. You may find some codes in
- the description field:
-
- (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 (#<EM>i</EM>).
-
- (P*) indicates that padding may vary in proportion to
- the number of lines affected
-
- (#<EM>i</EM>) indicates the <EM>i</EM>th parameter.
-
-
- These are the boolean capabilities:
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- auto_left_margin bw bw cub1 wraps from col-
- umn 0 to last column
- auto_right_margin am am terminal has auto-
- matic margins
- back_color_erase bce ut screen erased with
- background color
- can_change ccc cc terminal can re-
- define existing col-
- ors
-
- ceol_standout_glitch xhp xs standout not erased
- by overwriting (hp)
- col_addr_glitch xhpa YA only positive motion
- for hpa/mhpa caps
- cpi_changes_res cpix YF changing character
- pitch changes reso-
- lution
- cr_cancels_micro_mode crxm YB using cr turns off
- micro mode
- dest_tabs_magic_smso xt xt tabs destructive,
- magic so char
- (t1061)
- eat_newline_glitch xenl xn newline ignored
- after 80 cols (con-
- cept)
- erase_overstrike eo eo can erase over-
- strikes with a blank
- generic_type gn gn generic line type
- hard_copy hc hc hardcopy terminal
- hard_cursor chts HC cursor is hard to
- see
- has_meta_key km km Has a meta key
- (i.e., sets 8th-bit)
- has_print_wheel daisy YC printer needs opera-
- tor to change char-
- acter set
- has_status_line hs hs has extra status
- line
- hue_lightness_saturation hls hl terminal uses only
- HLS color notation
- (Tektronix)
- insert_null_glitch in in insert mode distin-
- guishes nulls
- lpi_changes_res lpix YG changing line pitch
- changes resolution
- memory_above da da display may be
- retained above the
- screen
- memory_below db db display may be
- retained below the
- screen
- move_insert_mode mir mi safe to move while
- in insert mode
- move_standout_mode msgr ms safe to move while
- in standout mode
- 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
-
-
- 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
- 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
- tilde_glitch hz hz cannot print ~'s
- (hazeltine)
- transparent_underline ul ul underline character
- overstrikes
- xon_xoff xon xo terminal uses
- xon/xoff handshaking
-
- These are the numeric capabilities:
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- columns cols co number of columns in
- a line
- init_tabs it it tabs initially every
- # spaces
- label_height lh lh rows in each label
- label_width lw lw columns in each
- label
- lines lines li number of lines on
- screen or page
- lines_of_memory lm lm lines of memory if &gt;
- line. 0 means varies
- magic_cookie_glitch xmc sg number of blank
- characters left by
- smso or rmso
- max_attributes ma ma maximum combined
- attributes terminal
- can handle
- max_colors colors Co maximum number of
- colors on screen
- max_pairs pairs pa maximum number of
- color-pairs on the
- screen
- maximum_windows wnum MW maximum number of
- defineable windows
- no_color_video ncv NC video attributes
- that cannot be used
- with colors
-
-
- 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
- number (CB/unix)
- 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
- man page. They came in with SVr4's printer support.
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- bit_image_entwining bitwin Yo number of passes for
- each bit-image row
- bit_image_type bitype Yp type of bit-image
- device
- buffer_capacity bufsz Ya numbers of bytes
- buffered before
- printing
- buttons btns BT number of buttons on
- mouse
- dot_horz_spacing spinh Yc spacing of dots hor-
- izontally in dots
- per inch
- dot_vert_spacing spinv Yb spacing of pins ver-
- tically in pins per
- inch
- max_micro_address maddr Yd maximum value in
- micro_..._address
- max_micro_jump mjump Ye maximum value in
- parm_..._micro
- micro_col_size mcs Yf character step size
- when in micro mode
- micro_line_size mls Yg line step size when
- in micro mode
- number_of_pins npins Yh numbers of pins in
- print-head
- output_res_char orc Yi horizontal resolu-
- tion in units per
- line
- output_res_horz_inch orhi Yk horizontal resolu-
- tion in units per
- inch
- output_res_line orl Yj vertical resolution
- in units per line
- output_res_vert_inch orvi Yl vertical resolution
- 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:
-
- <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
- back_tab cbt bt back tab (P)
- bell bel bl audible signal
- (bell) (P)
- carriage_return cr cr carriage return (P*)
- (P*)
- change_char_pitch cpi ZA Change number of
- characters per inch
- to #1
- change_line_pitch lpi ZB Change number of
- lines per inch to #1
- change_res_horz chr ZC Change horizontal
- resolution to #1
- change_res_vert cvr ZD Change vertical res-
- olution to #1
- change_scroll_region csr cs change region to
- line #1 to line #2
- (P)
- char_padding rmp rP like ip but when in
- insert mode
- clear_all_tabs tbc ct clear all tab stops
- (P)
- clear_margins mgc MC clear right and left
- soft margins
- clear_screen clear cl clear screen and
- home cursor (P*)
- clr_bol el1 cb Clear to beginning
- of line
- clr_eol el ce clear to end of line
- (P)
- clr_eos ed cd clear to end of
- screen (P*)
- column_address hpa ch horizontal position
- #1, absolute (P)
- command_character cmdch CC terminal settable
- cmd character in
- prototype !?
- create_window cwin CW define a window #1
- from #2,#3 to #4,#5
- cursor_address cup cm move to row #1
- columns #2
- cursor_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_mem_address mrcup CM memory relative cur-
- sor addressing, move
- to row #1 columns #2
- cursor_normal cnorm ve make cursor appear
- normal (undo
- civis/cvvis)
- cursor_right cuf1 nd non-destructive
- space (move right
- one space)
- cursor_to_ll ll ll last line, first
- column (if no cup)
- cursor_up cuu1 up up one line
- cursor_visible cvvis vs make cursor very
- visible
- define_char defc ZE Define a character
- #1, #2 dots wide,
- descender #3
- delete_character dch1 dc delete character
- (P*)
- delete_line dl1 dl delete line (P*)
- dial_phone dial DI dial number #1
- dis_status_line dsl ds disable status line
- display_clock dclk DK display clock
- down_half_line hd hd half a line down
- ena_acs enacs eA enable alternate
- char set
- enter_alt_charset_mode smacs as start alternate
- character set (P)
- enter_am_mode smam SA turn on automatic
- margins
- enter_blink_mode blink mb turn on blinking
- enter_bold_mode bold md turn on bold (extra
- bright) mode
- enter_ca_mode smcup ti string to start pro-
- grams using cup
- enter_delete_mode smdc dm enter delete mode
- enter_dim_mode dim mh turn on half-bright
- mode
- enter_doublewide_mode swidm ZF Enter double-wide
- mode
- enter_draft_quality sdrfq ZG Enter draft-quality
- mode
- enter_insert_mode smir im enter insert mode
- enter_italics_mode sitm ZH Enter italic mode
- enter_leftward_mode slm ZI Start leftward car-
- riage motion
- enter_micro_mode smicm ZJ Start micro-motion
- mode
-
- enter_near_letter_quality snlq ZK Enter NLQ mode
- enter_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
- (characters invisi-
- ble)
- enter_shadow_mode sshm ZM Enter shadow-print
- mode
- enter_standout_mode smso so begin standout mode
- enter_subscript_mode ssubm ZN Enter subscript mode
- enter_superscript_mode ssupm ZO Enter superscript
- mode
- enter_underline_mode smul us begin underline mode
- enter_upward_mode sum ZP Start upward car-
- riage motion
- enter_xon_mode smxon SX turn on xon/xoff
- handshaking
- erase_chars ech ec erase #1 characters
- (P)
- exit_alt_charset_mode rmacs ae end alternate char-
- acter set (P)
- exit_am_mode rmam RA turn off automatic
- margins
- exit_attribute_mode sgr0 me turn off all
- attributes
- exit_ca_mode rmcup te strings to end pro-
- grams using cup
- exit_delete_mode rmdc ed end delete mode
- exit_doublewide_mode rwidm ZQ End double-wide mode
- exit_insert_mode rmir ei exit insert mode
- exit_italics_mode ritm ZR End italic mode
- exit_leftward_mode rlm ZS End left-motion mode
- exit_micro_mode rmicm ZT End micro-motion
- mode
- exit_shadow_mode rshm ZU End shadow-print
- mode
- exit_standout_mode rmso se exit standout mode
- exit_subscript_mode rsubm ZV End subscript mode
- exit_superscript_mode rsupm ZW End superscript mode
- exit_underline_mode rmul ue exit underline mode
- exit_upward_mode rum ZX End reverse charac-
- ter motion
- exit_xon_mode rmxon RX turn off xon/xoff
- handshaking
- fixed_pause pause PA pause for 2-3 sec-
- onds
- 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
- hangup hup HU hang-up phone
- init_1string is1 i1 initialization
- string
- init_2string is2 is initialization
- string
- init_3string is3 i3 initialization
- string
- init_file if if name of initializa-
- tion file
- init_prog iprog iP path name of program
- for initialization
- initialize_color initc Ic initialize color #1
- to (#2,#3,#4)
- initialize_pair initp Ip Initialize color
- pair #1 to
- fg=(#2,#3,#4),
- bg=(#5,#6,#7)
- insert_character ich1 ic insert character (P)
- insert_line il1 al insert line (P*)
- insert_padding ip ip insert padding after
- inserted character
- key_a1 ka1 K1 upper left of keypad
- key_a3 ka3 K3 upper right of key-
- pad
- key_b2 kb2 K2 center of keypad
- key_backspace kbs kb backspace key
- key_beg kbeg @1 begin key
- key_btab kcbt kB back-tab key
- key_c1 kc1 K4 lower left of keypad
- key_c3 kc3 K5 lower right of key-
- pad
- key_cancel kcan @2 cancel key
- key_catab ktbc ka clear-all-tabs key
- key_clear kclr kC clear-screen or
- erase key
- key_close kclo @3 close key
- key_command kcmd @4 command key
- key_copy kcpy @5 copy key
- key_create kcrt @6 create key
- key_ctab kctab kt clear-tab key
- key_dc kdch1 kD delete-character key
- key_dl kdl1 kL delete-line key
- key_down kcud1 kd down-arrow key
- key_eic krmir kM sent by rmir or smir
- 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_f1 kf1 k1 F1 function key
- key_f10 kf10 k; F10 function key
- key_f11 kf11 F1 F11 function key
- key_f12 kf12 F2 F12 function key
- key_f13 kf13 F3 F13 function key
- key_f14 kf14 F4 F14 function key
- key_f15 kf15 F5 F15 function key
- key_f16 kf16 F6 F16 function key
- key_f17 kf17 F7 F17 function key
- key_f18 kf18 F8 F18 function key
- key_f19 kf19 F9 F19 function key
- key_f2 kf2 k2 F2 function key
- key_f20 kf20 FA F20 function key
- key_f21 kf21 FB F21 function key
- key_f22 kf22 FC F22 function key
- key_f23 kf23 FD F23 function key
- key_f24 kf24 FE F24 function key
- key_f25 kf25 FF F25 function key
- key_f26 kf26 FG F26 function key
- key_f27 kf27 FH F27 function key
- key_f28 kf28 FI F28 function key
- key_f29 kf29 FJ F29 function key
- key_f3 kf3 k3 F3 function key
- key_f30 kf30 FK F30 function key
- key_f31 kf31 FL F31 function key
- key_f32 kf32 FM F32 function key
- key_f33 kf33 FN F33 function key
- key_f34 kf34 FO F34 function key
- key_f35 kf35 FP F35 function key
- key_f36 kf36 FQ F36 function key
- key_f37 kf37 FR F37 function key
- key_f38 kf38 FS F38 function key
- key_f39 kf39 FT F39 function key
- key_f4 kf4 k4 F4 function key
- key_f40 kf40 FU F40 function key
- key_f41 kf41 FV F41 function key
- key_f42 kf42 FW F42 function key
- key_f43 kf43 FX F43 function key
- key_f44 kf44 FY F44 function key
- key_f45 kf45 FZ F45 function key
- key_f46 kf46 Fa F46 function key
- key_f47 kf47 Fb F47 function key
- key_f48 kf48 Fc F48 function key
- key_f49 kf49 Fd F49 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_f58 kf58 Fm F58 function key
- key_f59 kf59 Fn F59 function key
- key_f6 kf6 k6 F6 function key
- key_f60 kf60 Fo F60 function key
- key_f61 kf61 Fp F61 function key
- key_f62 kf62 Fq F62 function key
- key_f63 kf63 Fr F63 function key
- key_f7 kf7 k7 F7 function key
- key_f8 kf8 k8 F8 function key
- key_f9 kf9 k9 F9 function key
- key_find kfnd @0 find key
- key_help khlp %1 help key
- key_home khome kh home key
- key_ic kich1 kI insert-character key
- key_il kil1 kA insert-line key
- key_left kcub1 kl left-arrow key
- key_ll kll kH lower-left key (home
- down)
- key_mark kmrk %2 mark key
- key_message kmsg %3 message key
- key_move kmov %4 move key
- key_next knxt %5 next key
- key_npage knp kN next-page key
- key_open kopn %6 open key
- key_options kopt %7 options key
- key_ppage kpp kP previous-page key
- key_previous kprv %8 previous key
- key_print kprt %9 print key
- key_redo krdo %0 redo key
- key_reference kref &amp;1 reference key
- key_refresh krfr &amp;2 refresh key
- key_replace krpl &amp;3 replace key
- key_restart krst &amp;4 restart key
- key_resume kres &amp;5 resume key
- key_right kcuf1 kr right-arrow key
- key_save ksav &amp;6 save key
- key_sbeg kBEG &amp;9 shifted begin key
- key_scancel kCAN &amp;0 shifted cancel key
- key_scommand kCMD *1 shifted command key
- key_scopy kCPY *2 shifted copy key
- key_screate kCRT *3 shifted create key
- key_sdc kDC *4 shifted delete-char-
- acter key
- key_sdl kDL *5 shifted delete-line
- key
- key_select kslt *6 select key
- key_send kEND *7 shifted end key
-
- key_seol kEOL *8 shifted clear-to-
- end-of-line key
- key_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_sleft kLFT #4 shifted left-arrow
- key
- key_smessage kMSG %a shifted message key
- key_smove kMOV %b shifted move key
- key_snext kNXT %c shifted next key
- key_soptions kOPT %d shifted options key
- key_sprevious kPRV %e shifted previous key
- key_sprint kPRT %f shifted print key
- key_sr kri kR scroll-backward key
- key_sredo kRDO %g shifted redo key
- key_sreplace kRPL %h shifted replace key
- key_sright kRIT %i shifted right-arrow
- key
- key_srsume kRES %j shifted resume key
- key_ssave kSAV !1 shifted save key
- key_ssuspend kSPD !2 shifted suspend key
- key_stab khts kT set-tab key
- key_sundo kUND !3 shifted undo key
- key_suspend kspd &amp;7 suspend key
- key_undo kund &amp;8 undo key
- key_up kcuu1 ku up-arrow key
- keypad_local rmkx ke leave 'key-
- board_transmit' mode
- keypad_xmit smkx ks enter 'key-
- board_transmit' mode
- lab_f0 lf0 l0 label on function
- key f0 if not f0
- lab_f1 lf1 l1 label on function
- key f1 if not f1
- lab_f10 lf10 la label on function
- key f10 if not f10
- lab_f2 lf2 l2 label on function
- key f2 if not f2
- lab_f3 lf3 l3 label on function
- key f3 if not f3
- lab_f4 lf4 l4 label on function
- key f4 if not f4
- lab_f5 lf5 l5 label on function
- key f5 if not f5
- lab_f6 lf6 l6 label on function
- 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
- key f9 if not f9
- 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)
- micro_column_address mhpa ZY Like column_address
- in micro mode
- micro_down mcud1 ZZ Like cursor_down in
- micro mode
- micro_left mcub1 Za Like cursor_left in
- micro mode
- micro_right mcuf1 Zb Like cursor_right in
- micro mode
- micro_row_address mvpa Zc Like row_address #1
- in micro mode
- micro_up mcuu1 Zd Like cursor_up in
- micro mode
- newline nel nw newline (behave like
- cr followed by lf)
- order_of_pins porder Ze Match software bits
- to print-head pins
- orig_colors oc oc Set all color pairs
- to the original ones
- orig_pair op op Set default pair to
- its original value
- pad_char pad pc padding char
- (instead of null)
- parm_dch dch DC delete #1 characters
- (P*)
- parm_delete_line dl DL delete #1 lines (P*)
- parm_down_cursor cud DO down #1 lines (P*)
- parm_down_micro mcud Zf Like parm_down_cur-
- sor in micro mode
- parm_ich ich IC insert #1 characters
- (P*)
- parm_index indn SF scroll forward #1
- lines (P)
- parm_insert_line il AL insert #1 lines (P*)
- parm_left_cursor cub LE move #1 characters
- to the left (P)
- parm_left_micro mcub Zg Like parm_left_cur-
- sor in micro mode
- parm_right_cursor cuf RI move #1 characters
- to the right (P*)
- parm_right_micro mcuf Zh Like parm_right_cur-
- 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
- pkey_local pfloc pl program function key
- #1 to execute string
- #2
- pkey_xmit pfx px program function key
- #1 to transmit
- string #2
- plab_norm pln pn program label #1 to
- show string #2
- print_screen mc0 ps print contents of
- screen
- prtr_non mc5p pO turn on printer for
- #1 bytes
- prtr_off mc4 pf turn off printer
- prtr_on mc5 po turn on printer
- pulse pulse PU select pulse dialing
- quick_dial qdial QD dial number #1 with-
- out checking
- remove_clock rmclk RC remove clock
- repeat_char rep rp repeat char #1 #2
- times (P*)
- req_for_input rfi RF send next input char
- (for ptys)
- reset_1string rs1 r1 reset string
- reset_2string rs2 r2 reset string
- reset_3string rs3 r3 reset string
- reset_file rf rf name of reset file
- restore_cursor rc rc restore cursor to
- position of last
- save_cursor
- row_address vpa cv vertical position #1
- absolute (P)
- save_cursor sc sc save current cursor
- position (P)
- scroll_forward ind sf scroll text up (P)
- scroll_reverse ri sr scroll text down (P)
- select_char_set scs Zj Select character
- set, #1
- set_attributes sgr sa define video
- attributes #1-#9
- (PG9)
- set_background setb Sb Set background color
- #1
- set_bottom_margin smgb Zk Set bottom margin at
- current line
- set_bottom_margin_parm smgbp Zl Set bottom margin at
- 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_foreground setf Sf Set foreground color
- #1
- set_left_margin smgl ML set left soft margin
- at current column.
- See smgl. (ML is not
- in BSD termcap).
- set_left_margin_parm smglp Zm Set left (right)
- margin at column #1
- set_right_margin smgr MR set right soft mar-
- gin at current col-
- umn
- set_right_margin_parm smgrp Zn Set right margin at
- column #1
- set_tab hts st set a tab in every
- row, current columns
- set_top_margin smgt Zo Set top margin at
- current line
- set_top_margin_parm smgtp Zp Set top (bottom)
- margin at row #1
- set_window wind wi current window is
- lines #1-#2 cols
- #3-#4
- start_bit_image sbim Zq Start printing bit
- image graphics
- start_char_set_def scsd Zr Start character set
- definition #1, with
- #2 characters in the
- set
- stop_bit_image rbim Zs Stop printing bit
- image graphics
- stop_char_set_def rcsd Zt End definition of
- character set #1
- subscript_characters subcs Zu List of subscript-
- able characters
- superscript_characters supcs Zv List of superscript-
- able characters
- tab ht ta tab to next 8-space
- hardware tab stop
- these_cause_cr docr Zw Printing any of
- these characters
- causes CR
- to_status_line tsl ts move to status line,
- column #1
- tone tone TO select touch tone
- dialing
- underline_char uc uc underline char and
- 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
- user5 u5 u5 User string #5
- user6 u6 u6 User string #6
- user7 u7 u7 User string #7
- user8 u8 u8 User string #8
- user9 u9 u9 User string #9
- wait_tone wait WA wait for dial-tone
- xoff_character xoffc XF XOFF character
- xon_character xonc XN XON 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
- in the man page.
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
- <STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- alt_scancode_esc scesa S8 Alternate escape
- for scancode emu-
- lation
- bit_image_carriage_return bicr Yv Move to beginning
- of same row
- bit_image_newline binel Zz Move to next row
- of the bit image
- bit_image_repeat birep Xy Repeat bit image
- cell #1 #2 times
- char_set_names csnm Zy Produce #1'th item
- from list of char-
- acter set names
- code_set_init csin ci Init sequence for
- multiple codesets
- color_names colornm Yw Give name for
- color #1
- define_bit_image_region defbi Yx Define rectan-
- gualar bit image
- region
- device_type devt dv Indicate lan-
- guage/codeset sup-
- port
- display_pc_char dispc S1 Display PC charac-
- ter #1
- end_bit_image_region endbi Yy End a bit-image
- region
- enter_pc_charset_mode smpch S2 Enter PC character
- display mode
- enter_scancode_mode smsc S4 Enter PC scancode
- mode
- exit_pc_charset_mode rmpch S3 Exit PC character
- display mode
-
- exit_scancode_mode rmsc S5 Exit PC scancode
- mode
- get_mouse getm Gm Curses should get
- button events,
- parameter #1 not
- documented.
- key_mouse kmous Km Mouse event has
- occurred
- mouse_info minfo Mi Mouse status
- information
- pc_term_options pctrm S6 PC terminal
- options
- pkey_plab pfxl xl Program function
- key #1 to type
- string #2 and show
- string #3
- req_mouse_pos reqmp RQ Request mouse
- position
- scancode_escape scesc S7 Escape for scan-
- code emulation
- 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_foreground setaf AF Set foreground
- color to #1, using
- ANSI escape
- set_color_band setcolor Yz Change to ribbon
- color #1
- set_lr_margin smglr ML Set both left and
- right margins to
- #1, #2. (ML is
- not in BSD term-
- cap).
- set_page_length slines YZ Set page length to
- #1 lines
- set_tb_margin smgtb MT Sets both top and
- bottom margins to
- #1, #2
-
- The XSI Curses standard added these. They are some
- post-4.1 versions of System V curses, e.g., Solaris 2.5
- and IRIX 6.x. The <STRONG>ncurses</STRONG> termcap names for them are
- invented; according to the XSI Curses standard, they have
- no termcap names. If your compiled terminfo entries use
- these, they may not be binary-compatible with System V
- terminfo entries after SVr4.1; beware!
-
- <STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
-
- <STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
- enter_horizontal_hl_mode ehhlm Xh Enter horizontal
- highlight mode
- enter_left_hl_mode elhlm Xl Enter left highlight
- mode
- enter_low_hl_mode elohlm Xo Enter low highlight
- mode
- enter_right_hl_mode erhlm Xr Enter right high-
- light mode
- enter_top_hl_mode ethlm Xt Enter top highlight
- mode
- enter_vertical_hl_mode evhlm Xv Enter vertical high-
- light mode
- set_a_attributes sgr1 sA Define second set of
- video attributes
- #1-#6
- set_pglen_inch slengthsL YI Set page length
- to #1 hundredth of
- an inch
-
-
- <STRONG>A</STRONG> <STRONG>Sample</STRONG> <STRONG>Entry</STRONG>
- The following entry, describing an ANSI-standard terminal,
- is representative of what a <STRONG>terminfo</STRONG> entry for a modern
- terminal typically looks like.
-
- ansi|ansi/pc-term compatible with color,
- mc5i,
- colors#8, ncv#3, pairs#64,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
- ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I,
- ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V,
- kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P,
- kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
- kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
- op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db,
- rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B,
- s3ds=\E+B, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
- sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,
- u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,
-
- Entries may continue onto multiple lines by placing white
- space at the beginning of each line except the first.
- Comments may be included on lines beginning with ``#''.
- Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
- bilities which indicate that the terminal has some partic-
- ular feature, numeric capabilities giving the size of the
- terminal or the size of particular delays, and string
- capabilities, which give a sequence which can be used to
- perform particular terminal operations.
-
-
- <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
- hexadecimal, using the C programming language conventions
- (e.g., 255, 0377 and 0xff or 0xFF).
-
- Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to
- end of line sequence) are given by the two-character code,
- an `=', and then a string ending at the next following
- `,'.
-
- A number of escape sequences are provided in the string
- valued capabilities for easy encoding of characters there.
- Both <STRONG>\E</STRONG> and <STRONG>\e</STRONG> map to an ESCAPE character, <STRONG>^x</STRONG> maps to a
- control-x for any appropriate x, and the sequences <STRONG>\n</STRONG> <STRONG>\l</STRONG>
- <STRONG>\r</STRONG> <STRONG>\t</STRONG> <STRONG>\b</STRONG> <STRONG>\f</STRONG> <STRONG>\s</STRONG> give a newline, line-feed, return, tab,
- backspace, form-feed, and space. Other escapes include <STRONG>\^</STRONG>
- for <STRONG>^</STRONG>, <STRONG>\\</STRONG> for <STRONG>\</STRONG>, <STRONG>\</STRONG>, for comma, <STRONG>\:</STRONG> for <STRONG>:</STRONG>, and <STRONG>\0</STRONG> for null.
- (<STRONG>\0</STRONG> will produce \200, which does not terminate a string
- but behaves as a null character on most terminals, provid-
- ing CS7 is specified. See <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>.) Finally, characters
- may be given as three octal digits after a <STRONG>\</STRONG>.
-
- A delay in milliseconds may appear anywhere in a string
- capability, enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,
- and padding characters are supplied by <EM>tputs</EM> to provide
- this delay. The delay must be a number with at most one
- 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 <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.
-
- Sometimes individual capabilities must be commented out.
- To do this, put a period before the capability name. For
- example, see the second <STRONG>ind</STRONG> in the example above.
-
- <STRONG>Fetching</STRONG> <STRONG>Compiled</STRONG> <STRONG>Descriptions</STRONG>
- If the environment variable TERMINFO is set, it is inter-
- preted as the pathname of a directory containing the com-
- piled description you are working on. Only that directory
- is searched.
-
- If TERMINFO is not set, the <STRONG>ncurses</STRONG> version of the ter-
- minfo reader code will instead look in the directory
- <STRONG>$HOME/.terminfo</STRONG> for a compiled description. If it fails
- to find one there, and the environment variable TER-
- MINFO_DIRS is set, it will interpret the contents of that
- variable as a list of colon- separated directories to be
- searched (an empty entry is interpreted as a command to
- search <EM>/usr/share/terminfo</EM>). If no description is found
- in any of the TERMINFO_DIRS directories, the fetch fails.
-
- If neither TERMINFO nor TERMINFO_DIRS is set, the last
- place tried will be the system terminfo directory,
- <EM>/usr/share/terminfo</EM>.
-
- (Neither the <STRONG>$HOME/.terminfo</STRONG> lookups nor TERMINFO_DIRS
- extensions are supported under stock System V ter-
- minfo/curses.)
-
-
- <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-
- ity of the <EM>terminfo</EM> file to describe it or bugs in the
- screen-handling code of the test program.
-
- To get the padding for insert line right (if the terminal
- manufacturer did not document it) a severe test is to edit
- a large file at 9600 baud, delete 16 or so lines from the
- middle of the screen, then hit the `u' key several times
- quickly. If the terminal messes up, more padding is usu-
- ally needed. A similar test can be used for insert char-
- acter.
-
-
- <STRONG>Basic</STRONG> <STRONG>Capabilities</STRONG>
- The number of columns on each line for the terminal is
- given by the <STRONG>cols</STRONG> numeric capability. If the terminal is
- 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-
- 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.
-
- 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
- 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
- of the screen and sends the <STRONG>ri</STRONG> (reverse index) string.
- The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG> are undefined when not on their
- respective corners of the screen.
-
- Parameterized versions of the scrolling sequences are <STRONG>indn</STRONG>
- and <STRONG>rin</STRONG> which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except
- that they take one parameter, and scroll that many lines.
- They are also undefined except at the appropriate edge of
- the screen.
-
- The <STRONG>am</STRONG> capability tells whether the cursor sticks at the
- right edge of the screen when text is output, but this
- 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
- "glass-tty" terminals. Thus the model 33 teletype is
- described as
-
- 33|tty33|tty|model 33 teletype,
- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
-
- while the Lear Siegler ADM-3 is described as
-
- adm3|3|lsi adm3,
- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
- ind=^J, lines#24,
-
-
- <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
- memory.) If the terminal has memory relative cursor
- addressing, that can be indicated by <STRONG>mrcup</STRONG>.
-
- The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes
- to manipulate it. Typically a sequence will push one of
- the parameters onto the stack and then print it in some
- format. Often more complex operations are necessary.
-
- The <STRONG>%</STRONG> encodings have the following meanings:
-
- %% outputs `%'
- %<EM>[[</EM>:<EM>]flags][width[.precision]][</EM>doxXs<EM>]</EM>
- as in <STRONG>printf</STRONG>, flags are [-+#] and space
- %c print pop() like %c in printf()
- %s print pop() like %s in printf()
-
- %p[1-9] push <EM>i</EM>'th parm
- %P[a-z] set dynamic variable [a-z] to pop()
- %g[a-z] get dynamic variable [a-z] and push it
- %P[A-Z] set static variable [a-z] to pop()
- %g[A-Z] get static variable [a-z] and push it
- %'<EM>c</EM>' char constant <EM>c</EM>
- %{<EM>nn</EM>} integer constant <EM>nn</EM>
- %l push strlen(pop)
-
- %+ %- %* %/ %m
- arithmetic (%m is mod): push(pop() op pop())
- %&amp; %| %^ bit operations: push(pop() op pop())
- %= %&gt; %&lt; logical operations: push(pop() op pop())
- %A, %O logical and &amp; or operations (for conditionals)
- %! %~ unary operations push(op pop())
- %i add 1 to first two parameters (for ANSI terminals)
-
- %? expr %t thenpart %e elsepart %;
- if-then-else, %e elsepart is optional.
- else-if's are possible a la Algol 68:
- %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
- ci are conditions, bi are bodies.
-
- 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
- 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 <STRONG>cup</STRONG> capability is "cup=6\E&amp;%p2%2dc%p1%2dY".
-
- The Microterm ACT-IV needs the current row and column sent
- preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
- in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
- need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
- 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%'
- '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
- first parameter, pushes the ASCII value for a space (32),
- adds them (pushing the sum on the stack in place of the
- two previous values) and outputs that value as a charac-
- ter. Then the same is done for the second parameter.
- More complex arithmetic is possible using the stack.
-
-
- <STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
- If the terminal has a fast way to home the cursor (to very
- upper left corner of screen) then this can be given as
- <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
- hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
- with <STRONG>cuu1</STRONG> from the home position, but a program should
- never do this itself (unless <STRONG>ll</STRONG> does) because it can make
- no assumption about the effect of moving up from the home
- position. Note that the home position is the same as
- 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 <STRONG>home</STRONG>.)
-
- If the terminal has row or column absolute cursor address-
- ing, these can be given as single parameter capabilities
- <STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
- tion absolute). Sometimes these are shorter than the more
- general two parameter sequence (as with the hp2645) and
- can be used in preference to <STRONG>cup</STRONG>. If there are parameter-
- ized local motions (e.g., move <EM>n</EM> spaces to the right)
- these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
- parameter indicating how many spaces to move. These are
- primarily useful if the terminal does not have <STRONG>cup</STRONG>, such
- as the TEKTRONIX 4025.
-
- If the terminal needs to be in a special mode when running
- a program that uses these capabilities, the codes to enter
- and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
- arises, for example, from terminals like the Concept with
- more than one page of memory. If the terminal has only
- memory relative cursor addressing and not screen relative
- 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 <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>.
-
-
- <STRONG>Area</STRONG> <STRONG>Clears</STRONG>
- If the terminal can clear from the current position to the
- end of the line, leaving the cursor where it is, this
- 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
- 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.
-
- 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
- use a combination of index with the memory-lock feature
- found on some terminals (like the HP-700/90 series, which
- however also has insert/delete).
-
- Inserting lines at the top or bottom of the screen can
- also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
- true insert/delete line, and is often faster even on ter-
- minals with those features.
-
- 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
- after scrolling if <STRONG>ndstr</STRONG> is defined.
-
- If the terminal has the ability to define a window as part
- of memory, which all commands affect, it should be given
- 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.
-
- If the terminal can retain display memory above, then the
- <STRONG>da</STRONG> capability should be given; if display memory can be
- retained below, then <STRONG>db</STRONG> should be given. These indicate
- that deleting a line or scrolling may bring non-blank
- lines up from below or that scrolling back with <STRONG>ri</STRONG> may
- bring down non-blank lines.
-
-
- <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
- There are two basic kinds of intelligent terminals with
- respect to insert/delete character which can be described
- using <EM>terminfo.</EM> The most common insert/delete character
- operations affect only the characters on the current line
- and shift characters off the end of the line rigidly.
- Other terminals, such as the Concept 100 and the Perkin
- Elmer Owl, make a distinction between typed and untyped
- blanks on the screen, shifting upon an insert or delete
- only to an untyped blank on the screen which is either
- eliminated, or expanded to two untyped blanks. You can
- determine the kind of terminal you have by clearing the
- screen and then typing text separated by cursor motions.
- Type "abc def" using local cursor motions (not spaces)
- between the "abc" and the "def". Then position the cursor
- before the "abc" and put the terminal in insert mode. If
- typing characters causes the rest of the line to shift
- rigidly and characters to fall off the end, then your ter-
- minal does not distinguish between blanks and untyped
- positions. If the "abc" shifts over to the "def" which
- then move together around the end of the current line and
- onto the next as you insert, you have the second type of
- terminal, and should give the capability <STRONG>in</STRONG>, which stands
- for "insert null". While these are two logically separate
- attributes (one line versus multi-line insert mode, and
- special treatment of untyped spaces) we have seen no ter-
- minals whose insert mode cannot be described with the sin-
- gle attribute.
-
- Terminfo can describe both terminals which have an insert
- mode, and terminals which send a simple sequence to open a
- blank position on the current line. Give as <STRONG>smir</STRONG> the
- sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
- sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
- sequence needed to be sent just before sending the charac-
- ter to be inserted. Most terminals with a true insert
- mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence
- to open a screen position should give it here.
-
- If your terminal has both, insert mode is usually prefer-
- able to <STRONG>ich1</STRONG>. Technically, you should not give both
- unless the terminal actually requires both to be used in
- combination. Accordingly, some non-curses applications
- get confused if both are present; the symptom is doubled
- characters in an update using insert. This requirement is
- now rare; most <STRONG>ich</STRONG> sequences do not require previous smir,
- and most smir insert modes do not require <STRONG>ich1</STRONG> before each
- character. Therefore, the new <STRONG>curses</STRONG> actually assumes
- this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
- 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 <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
-
- If post insert padding is needed, give this as a number of
- milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
- which may need to be sent after an insert of a single
- character may also be given in <STRONG>ip</STRONG>. If your terminal needs
- both to be placed into an `insert mode' and a special code
- to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
- and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
- capability, with one parameter, <EM>n</EM>, will repeat the effects
- of <STRONG>ich1</STRONG> <EM>n</EM> times.
-
- If padding is necessary between characters typed while not
- in insert mode, give this as a number of milliseconds
- padding in <STRONG>rmp</STRONG>.
-
- It is occasionally necessary to move around while in
- insert mode to delete characters on the same line (e.g.,
- if there is a tab after the insertion position). If your
- terminal allows motion while in insert mode you can give
- the capability <STRONG>mir</STRONG> to speed up inserting in this case.
- Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
- (notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
- their insert mode works.
-
- Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
- ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
- and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
- delete mode (any mode the terminal needs to be placed in
- for <STRONG>dch1</STRONG> to work).
-
- A command to erase <EM>n</EM> characters (equivalent to outputting
- <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
- with one parameter.
-
-
- <STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG>
- If your terminal has one or more kinds of display
- attributes, these can be represented in a number of dif-
- 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,
- 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.
-
- If there is a sequence to set arbitrary combinations of
- modes, this should be given as <STRONG>sgr</STRONG> (set attributes), tak-
- ing 9 parameters. Each parameter is either 0 or nonzero,
- as the corresponding attribute is on or off. The 9 param-
- eters are, in order: standout, underline, reverse, blink,
- dim, bold, blank, protect, alternate character set. Not
- all modes need be supported by <STRONG>sgr</STRONG>, only those for which
- corresponding separate attribute commands exist.
-
- For example, the DEC vt220 supports most of the modes:
-
- <STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
-
- none none \E[0m
- p1 standout \E[0;1;7m
- p2 underline \E[0;4m
- p3 reverse \E[0;7m
- p4 blink \E[0;5m
- p5 dim not available
- p6 bold \E[0;1m
- p7 invis \E[0;8m
- p8 protect not used
- p9 altcharset ^O (off) ^N (on)
-
- We begin each escape sequence by turning off any existing
- modes, since there is no quick way to determine whether
- 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
- \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,
- if either standout or reverse modes are turned on.
-
- Writing out the above sequences, along with their depen-
- dencies yields
-
- <STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
-
- \E[0 always \E[0
- ;1 if p1 or p6 %?%p1%p6%|%t;1%;
- ;4 if p2 %?%p2%|%t;4%;
- ;5 if p4 %?%p4%|%t;5%;
- ;7 if p1 or p3 %?%p1%p3%|%t;7%;
- ;8 if p7 %?%p7%|%t;8%;
-
- m always m
- ^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
-
- Putting this all together into the sgr sequence gives:
-
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
- %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
-
- Remember that if you specify sgr, you must also specify
- sgr0.
-
- Terminals with the ``magic cookie'' glitch (<STRONG>xmc</STRONG>) deposit
- special ``cookies'' when they receive mode-setting
- sequences, which affect the display algorithm rather than
- having extra bits for each character. Some terminals,
- such as the HP 2621, automatically leave standout mode
- when they move to a new line or the cursor is addressed.
- Programs using standout mode should exit standout mode
- before moving the cursor or sending a newline, unless the
- <STRONG>msgr</STRONG> capability, asserting that it is safe to move in
- 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 <STRONG>flash</STRONG>; it must not move the cursor.
-
- If the cursor needs to be made more visible than normal
- when it is not on the bottom line (to make, for example, a
- non-blinking underline into an easier to find block or
- 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
- (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>.
-
-
- <STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
- If the terminal has a keypad that transmits codes when the
- keys are pressed, this information can be given. Note
- 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
- capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
- to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
- causes the string to be executed by the terminal in local;
- and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
- puter.
-
- The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
- grammable screen labels and their width and height. If
- there are commands to turn the labels on and off, give
- them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
- or more pln sequences to make sure that the change becomes
- visible.
-
-
- <STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
- If the terminal has hardware tabs, the command to advance
- to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
- I). A ``back-tab'' command which moves leftward to the
- preceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
- the teletype modes indicate that tabs are being expanded
- by the computer rather than being sent to the terminal,
- programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are pre-
- sent, since the user may not have the tab stops properly
- set. If the terminal has hardware tabs which are ini-
- tially set every <EM>n</EM> spaces when the terminal is powered up,
- the numeric parameter <STRONG>it</STRONG> is given, showing the number of
- spaces the tabs are set to. This is normally used by the
- <EM>tset</EM> command to determine whether to set the mode for
- hardware tab expansion, and whether to set the tab stops.
- If the terminal has tab stops that can be saved in non-
- volatile memory, the terminfo description can assume that
- they are properly set.
-
- Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
- tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
- program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
- name of a file containing long initialization strings.
- These strings are expected to set the terminal into modes
- consistent with the rest of the terminfo description.
- They are normally sent to the terminal, by the <EM>init</EM> option
- of the <EM>tput</EM> program, each time the user logs in. They
- will be printed in the following order: run the program
- <STRONG>iprog</STRONG>; output <STRONG>is1</STRONG>; <STRONG>is2</STRONG>; set the margins using <STRONG>mgc</STRONG>, <STRONG>smgl</STRONG>
- and <STRONG>smgr</STRONG>; set tabs using <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>; print the file <STRONG>if</STRONG>;
- and finally output <STRONG>is3</STRONG>.
-
- Most initialization is done with <STRONG>is2</STRONG>. Special terminal
- modes can be set up without duplicating strings by putting
- the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
- <STRONG>is3</STRONG>. A pair of sequences that does a harder reset from a
- totally unknown state can be analogously given as <STRONG>rs1</STRONG>,
- <STRONG>rs2</STRONG>, <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>. These strings
- are output by the <EM>reset</EM> program, which is used when the
- terminal gets into a wedged state. Commands are normally
- placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoy-
- ing effects on the screen and are not necessary when log-
- ging in. For example, the command to set the vt100 into
- 80-column mode would normally be part of <STRONG>is2</STRONG>, but it
- causes an annoying glitch of the screen and is not nor-
- mally needed since the terminal is usually already in 80
- column mode.
-
- If there are commands to set and clear tab stops, they can
- be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
- stop in the current column of every row). If a more com-
- plex sequence is needed to set the tabs than can be
- described by this, the sequence can be placed in <STRONG>is2</STRONG> or
- <STRONG>if</STRONG>.
-
- <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
- VT100s). These may require padding characters after cer-
- tain cursor motions and screen changes.
-
- If the terminal uses xon/xoff handshaking for flow control
- (that is, it automatically emits ^S back to the host when
- its input buffers are close to full), set <STRONG>xon</STRONG>. This capa-
- bility suppresses the emission of padding. You can also
- set it for memory-mapped console devices effectively that
- don't have a speed limit. Padding information should
- still be included so that routines can make better deci-
- sions about relative costs, but actual pad characters will
- not be transmitted.
-
- If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
- at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
- padding baud rate, then whether padding is emitted or not
- is completely controlled by <STRONG>xon</STRONG>.
-
- If the terminal requires other than a null (zero) charac-
- ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
- first character of the <STRONG>pad</STRONG> string is used.
-
-
- <STRONG>Status</STRONG> <STRONG>Lines</STRONG>
- Some terminals have an extra `status line' which is not
- normally used by software (and thus not counted in the
- 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-
- 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
- string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
- a given zero-origin column on the status line. The capa-
- bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
- before the last <STRONG>tsl</STRONG>. You may need to embed the string
- values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
- and <STRONG>fsl</STRONG> to accomplish this.
-
- The status line is normally assumed to be the same width
- as the width of the terminal. If this is untrue, you can
- specify it with the numeric capability <STRONG>wsl</STRONG>.
-
- A command to erase or blank the status line may be speci-
- fied as <STRONG>dsl</STRONG>.
-
- The boolean capability <STRONG>eslok</STRONG> specifies that escape
- sequences, tabs, etc., work ordinarily in the status line.
-
- The <STRONG>ncurses</STRONG> implementation does not yet use any of these
- capabilities. They are documented here in case they ever
- become important.
-
-
- <STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
- Many terminals have alternate character sets useful for
- forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
- the drawing characters supported by the VT100, with some
- characters from the AT&amp;T 4410v1 added. This alternate
- character set may be specified by the <STRONG>acsc</STRONG> capability.
-
- <STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
- <STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
- UK pound sign ACS_STERLING f }
- arrow pointing down ACS_DARROW v .
- arrow pointing left ACS_LARROW &lt; ,
- arrow pointing right ACS_RARROW &gt; +
- arrow pointing up ACS_UARROW ^ -
- board of squares ACS_BOARD # h
- bullet ACS_BULLET o ~
- checker board (stipple) ACS_CKBOARD : a
- degree symbol ACS_DEGREE \ f
- diamond ACS_DIAMOND + `
- greater-than-or-equal-to ACS_GEQUAL &gt; z
- greek pi ACS_PI * {
- horizontal line ACS_HLINE - q
- lantern symbol ACS_LANTERN # i
- large plus or crossover ACS_PLUS + n
- less-than-or-equal-to ACS_LEQUAL &lt; y
- lower left corner ACS_LLCORNER + m
- lower right corner ACS_LRCORNER + j
- not-equal ACS_NEQUAL ! |
- plus/minus ACS_PLMINUS # g
- scan line 1 ACS_S1 ~ o
- scan line 3 ACS_S3 - p
- scan line 7 ACS_S7 - r
- scan line 9 ACS_S9 _ s
- solid square block ACS_BLOCK # 0
- tee pointing down ACS_TTEE + w
- tee pointing left ACS_RTEE + u
- tee pointing right ACS_LTEE + t
- tee pointing up ACS_BTEE + v
- upper left corner ACS_ULCORNER + l
- upper right corner ACS_URCORNER + k
- vertical line ACS_VLINE | x
-
- The best way to define a new device's graphics set is to
- add a column to a copy of this table for your terminal,
- giving the character which (when emitted between
- <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
- ing graphic. Then read off the VT100/your terminal char-
- acter pairs right to left in sequence; these become the
- ACSC string.
-
-
- <STRONG>Color</STRONG> <STRONG>Handling</STRONG>
- Most color terminals are either `Tektronix-like' or `HP-
- like'. Tektronix-like terminals have a predefined set of
- N colors (where N usually 8), and can set character-cell
- foreground and background characters independently, mixing
- them into N * N color-pairs. On HP-like terminals, the
- use must set each color pair up separately (foreground and
- background are not independently settable). Up to M
- color-pairs may be set up from 2*M different colors.
- ANSI-compatible terminals are Tektronix-like.
-
- Some basic color capabilities are independent of the color
- method. The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
- the maximum numbers of colors and color-pairs that can be
- displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
- resets foreground and background colors to their default
- values for the terminal. The <STRONG>oc</STRONG> string resets all colors
- or color-pairs to their default values for the terminal.
- Some terminals (including many PC terminal emulators)
- erase screen areas with the current background color
- rather than the power-up default background; these should
- have the boolean capability <STRONG>bce</STRONG>.
-
- To change the current foreground or background color on a
- Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
- and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
- and <STRONG>setb</STRONG> (set background). These take one parameter, the
- color number. The SVr4 documentation describes only
- <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
- supports ANSI escape sequences to set background and fore-
- ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
- tively. If the terminal supports other escape sequences
- to set background and foreground, they should be coded as
- <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
- the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
- defined."
-
- The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
- numeric argument each. Argument values 0-7 are portably
- defined as follows (the middle column is the symbolic
- #define available in the header for the <STRONG>curses</STRONG> or <STRONG>ncurses</STRONG>
- libraries). The terminal hardware is free to map these as
- it likes, but the RGB values indicate normal locations in
- color space.
-
- <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.
-
- On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
- present to indicate that colors can be modified. If so,
- the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG>
- - 1)and three more parameters which describe the color.
- These three parameters default to being interpreted as RGB
- (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
- is present, they are instead as HLS (Hue, Lightness, Satu-
- ration) indices. The ranges are terminal-dependent.
-
- On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
- changing a color-pair value. It will take seven parame-
- ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
- triples describing first background and then foreground
- colors. These parameters must be (Red, Green, Blue) or
- (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
-
- On some color terminals, colors collide with highlights.
- You can register these collisions with the <STRONG>ncv</STRONG> capability.
- This is a bit-mask of attributes not to be used when col-
- ors are enabled. The correspondence with the attributes
- understood by <STRONG>curses</STRONG> is as follows:
-
- <STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG>
- A_STANDOUT 0 1
- A_UNDERLINE 1 2
- A_REVERSE 2 4
- A_BLINK 3 8
- A_DIM 4 16
- A_BOLD 5 32
- A_INVIS 6 64
- A_PROTECT 7 128
- A_ALTCHARSET 8 256
-
- For example, on many IBM PC consoles, the underline
- attribute collides with the foreground color blue and is
- not available in color mode. These should have an <STRONG>ncv</STRONG>
- capability of 2.
-
- SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
- and optimizes the output in favor of colors.
-
-
- <STRONG>Miscellaneous</STRONG>
- If the terminal requires other than a null (zero) charac-
- ter as a pad, then this can be given as pad. Only the
- first character of the pad string is used. If the termi-
- nal does not have a pad character, specify npc. Note that
- ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
- though the application may set this value to something
- other than a null, ncurses will test <STRONG>npc</STRONG> first and use
- napms if the terminal has no pad character.
-
- If the terminal can move up or down half a line, this can
- be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line
- 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
- parameterized string <STRONG>rep</STRONG>. The first parameter is the
- character to be repeated and the second is the number of
- times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
- the same as `xxxxxxxxxx'.
-
- If the terminal has a settable command character, such as
- the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A
- prototype command character is chosen which is used in all
- capabilities. This character is given in the <STRONG>cmdch</STRONG> capa-
- bility to identify it. The following convention is sup-
- ported on some UNIX systems: The environment is to be
- searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences
- 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 <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and
- <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so
- that programs can complain that they do not know how to
- talk to the terminal. (This capability does not apply to
- <EM>virtual</EM> terminal descriptions for which the escape
- sequences are known.)
-
- If the terminal has a ``meta key'' which acts as a shift
- key, setting the 8th bit of any character transmitted,
- this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software
- will assume that the 8th bit is parity and it will usually
- be cleared. If strings exist to turn this ``meta mode''
- on and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
-
- If the terminal has more lines of memory than will fit on
- the screen at once, the number of lines of memory can be
- indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the
- number of lines is not fixed, but that there is still more
- memory than fits on the screen.
-
- If the terminal is one of those supported by the UNIX vir-
- tual terminal protocol, the terminal number can be given
- as <STRONG>vt</STRONG>.
-
- Media copy strings which control an auxiliary printer con-
- nected to the terminal can be given as <STRONG>mc0</STRONG>: print the con-
- tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
- turn on the printer. When the printer is on, all text
- sent to the terminal will be sent to the printer. It is
- undefined whether the text is also displayed on the termi-
- nal screen when the printer is on. A variation <STRONG>mc5p</STRONG> takes
- one parameter, and leaves the printer on for as many char-
- acters as the value of the parameter, then turns the
- printer off. The parameter should not exceed 255. All
- text, including <STRONG>mc4</STRONG>, is transparently passed to the
- printer while an <STRONG>mc5p</STRONG> is in effect.
-
-
- <STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG>
- Hazeltine terminals, which do not allow `~' characters to
- be displayed should indicate <STRONG>hz</STRONG>.
-
- Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>
- wrap, such as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
-
- If <STRONG>el</STRONG> is required to get rid of standout (instead of
- merely writing normal text on top of it), <STRONG>xhp</STRONG> should be
- given.
-
- Teleray terminals, where tabs turn all characters moved
- over to blanks, should indicate <STRONG>xt</STRONG> (destructive tabs).
- Note: the variable indicating this is now
- `dest_tabs_magic_smso'; in older versions, it was tel-
- eray_glitch. This glitch is also taken to mean that it is
- not possible to position the cursor on top of a ``magic
- cookie'', that to erase standout mode it is instead neces-
- sary to use delete and insert line. The ncurses implemen-
- tation ignores this glitch.
-
- The Beehive Superbee, which is unable to correctly trans-
- mit the escape or control C characters, has <STRONG>xsb</STRONG>, indicat-
- ing that the f1 key is used for escape and f2 for control
- C. (Only certain Superbees have this problem, depending
- on the ROM.) Note that in older terminfo versions, this
- capability was called `beehive_glitch'; it is now
- `no_esc_ctl_c'.
-
- Other specific terminal problems may be corrected by
- adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
-
-
- <STRONG>Similar</STRONG> <STRONG>Terminals</STRONG>
- If there are two very similar terminals, one (the variant)
- can be defined as being just like the other (the base)
- with certain exceptions. In the definition of the vari-
- ant, the string capability <STRONG>use</STRONG> can be given with the name
- of the base terminal. The capabilities given before <STRONG>use</STRONG>
- override those in the base type named by <STRONG>use</STRONG>. If there
- are multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
- order. That is, the rightmost <STRONG>use</STRONG> reference is processed
- first, then the one to its left, and so forth. Capabili-
- ties given explicitly in the entry override those brought
- in by <STRONG>use</STRONG> references.
-
- A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
- the use reference that imports it, where <EM>xx</EM> is the capa-
- bility. For example, the entry
- 2621-nl, smkx@, rmkx@, use=2621,
-
- defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
- capabilities, and hence does not turn on the function key
- labels when in visual mode. This is useful for different
- modes for a terminal, or for different user preferences.
-
-
- <STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
- Long terminfo entries are unlikely to be a problem; to
- date, no entry has even approached terminfo's 4K string-
- table maximum. Unfortunately, the termcap translations
- are much more strictly limited (to 1K), thus termcap
- translations of long terminfo entries can cause problems.
-
- The man pages for 4.3BSD and older versions of tgetent()
- instruct the user to allocate a 1K buffer for the termcap
- entry. The entry gets null-terminated by the termcap
- library, so that makes the maximum safe length for a term-
- cap entry 1k-1 (1023) bytes. Depending on what the appli-
- cation and the termcap library being used does, and where
- in the termcap file the terminal type that tgetent() is
- searching for is, several bad things can happen.
-
- Some termcap libraries print a warning message or exit if
- they find an entry that's longer than 1023 bytes; others
- don't; others truncate the entries to 1023 bytes. Some
- application programs allocate more than the recommended 1K
- for the termcap entry; others don't.
-
- Each termcap entry has two important sizes associated with
- it: before "tc" expansion, and after "tc" expansion. "tc"
- is the capability that tacks on another termcap entry to
- the end of the current one, to add on its capabilities.
- If a termcap entry doesn't use the "tc" capability, then
- of course the two lengths are the same.
-
- The "before tc expansion" length is the most important
- one, because it affects more than just users of that par-
- ticular terminal. This is the length of the entry as it
- 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). Now suppose:
-
- * a termcap entry before expansion is more than 1023
- bytes long,
-
- * and the application has only allocated a 1k buffer,
-
- * and the termcap library (like the one in BSD/OS 1.1
- and GNU) reads the whole entry into the buffer, no
- matter what its length, to see if it's the entry it
- wants,
-
- * and tgetent() is searching for a terminal type that
- either is the long entry, appears in the termcap file
- after the long entry, or doesn't appear in the file
- at all (so that tgetent() has to search the whole
- termcap file).
-
- Then tgetent() will overwrite memory, perhaps its stack,
- and probably core dump the program. Programs like telnet
- are particularly vulnerable; modern telnets pass along
- values like the terminal type automatically. The results
- are almost as undesirable with a termcap library, like
- SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
- when it reads an overly long termcap entry. If a termcap
- library truncates long entries, like OSF/1 3.0, it is
- immune to dying here but will return incorrect data for
- the terminal.
-
- The "after tc expansion" length will have a similar effect
- to the above, but only for people who actually set TERM to
- that terminal type, since tgetent() only does "tc" expan-
- sion once it's found the terminal type it was looking for,
- not while searching.
-
- In summary, a termcap entry that is longer than 1023 bytes
- can cause, on various combinations of termcap libraries
- and applications, a core dump, warnings, or incorrect
- operation. If it's too long even before "tc" expansion,
- it will have this effect even for users of some other ter-
- minal types and users whose TERM variable does not have a
- termcap entry.
-
- When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
- mentation of <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> issues warning messages when the pre-
- tc length of a termcap translation is too long. The -c
- (check) option also checks resolved (after tc expansion)
- lengths.
-
- <STRONG>Binary</STRONG> <STRONG>Compatibility</STRONG>
- It is not wise to count on portability of binary terminfo
- entries between commercial UNIX versions. The problem is
- that there are at least two versions of terminfo (under
- 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.
-
-
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
- Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
- SVr4, don't interpret the %A and %O operators in parameter
- strings.
-
- SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
- while in an alternate-character-set mode (such modes may,
- among other things, map CR and NL to characters that don't
- trigger local motions). The <STRONG>ncurses</STRONG> implementation
- ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
- bility that an XPG4 implementation making the opposite
- interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
- to have <STRONG>msgr</STRONG> turned off.
-
- 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 <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
- <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
- standard. They are deduced from the documentation for the
- AT&amp;T 505 terminal.
-
- Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
- wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
- and emulators like xterm that can return mouse-tracking
- information in the keyboard-input stream.
-
- Different commercial ports of terminfo and curses support
- different subsets of the XSI Curses standard and (in some
- cases) different extension sets. Here is a summary, accu-
- rate as of October 1995:
-
- <STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili-
- ties.
-
- <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
- extended string capability (<STRONG>set_pglen</STRONG>).
-
- <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
- minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
- numerics with <STRONG>width_status_line</STRONG>; and the strings with
- <STRONG>prtr_non</STRONG>.
-
- <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.
-
- <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
- through 63, plus a number of incompatible string table
- extensions.
-
- <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /usr/share/terminfo/?/* files containing terminal
- descriptions
-
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
-
-
-</PRE>
-<H2>AUTHORS</H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
- Based on pcurses by Pavel Curtis.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/tic.1m.html b/ncurses-5.3/doc/html/man/tic.1m.html
deleted file mode 100644
index e7963e6..0000000
--- a/ncurses-5.3/doc/html/man/tic.1m.html
+++ /dev/null
@@ -1,335 +0,0 @@
-<!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>
-<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>
-<H1>tic 1m</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>tic</STRONG> - the <EM>terminfo</EM> entry-description compiler
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- The command <STRONG>tic</STRONG> translates a <STRONG>terminfo</STRONG> file from source
- format into compiled format. The compiled format is nec-
- essary for use with the library routines in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
-
- The results are normally placed in the system terminfo
- directory <STRONG>/usr/share/terminfo</STRONG>. There are two ways to
- change this behavior.
-
- First, you may override the system default by setting the
- variable <STRONG>TERMINFO</STRONG> in your shell environment to a valid
- (existing) directory name.
-
- Secondly, if <STRONG>tic</STRONG> cannot get access to <EM>/usr/share/terminfo</EM>
- or your TERMINFO directory, it looks for the directory
- <EM>$HOME/.terminfo</EM>; if that directory exists, the entry is
- placed there.
-
- Libraries that read terminfo entries are expected to check
- for a TERMINFO directory first, look at <EM>$HOME/.terminfo</EM> if
- TERMINFO is not set, and finally look in <EM>/usr/share/ter-</EM>
- <EM>minfo</EM>.
-
- <STRONG>-1</STRONG> restricts the output to a single column
-
- <STRONG>-a</STRONG> tells <STRONG>tic</STRONG> to retain commented-out capabilities
- rather than discarding them. Capabilities are com-
- mented by prefixing them with a period. This sets
- the <STRONG>-x</STRONG> option, because it treats the commented-out
- entries as user-defined names.
-
- <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
- <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.
-
- <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.)
-
- <STRONG>-f</STRONG> Display complex terminfo strings which contain
- if/then/else/endif expressions indented for read-
- ability.
-
- <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.
-
- <STRONG>-I</STRONG> Force source translation to terminfo format.
-
- <STRONG>-L</STRONG> Force source translation to terminfo format using
- the long C variable names listed in &lt;<STRONG>term.h</STRONG>&gt;
-
- <STRONG>-N</STRONG> Disable smart defaults. Normally, when translating
- from termcap to terminfo, the compiler makes a num-
- ber of assumptions about the defaults of string
- capabilities <STRONG>reset1_string</STRONG>, <STRONG>carriage_return</STRONG>, <STRONG>cur-</STRONG>
- <STRONG>sor_left</STRONG>, <STRONG>cursor_down</STRONG>, <STRONG>scroll_forward</STRONG>, <STRONG>tab</STRONG>, <STRONG>new-</STRONG>
- <STRONG>line</STRONG>, <STRONG>key_backspace</STRONG>, <STRONG>key_left</STRONG>, and <STRONG>key_down</STRONG>, then
- attempts to use obsolete termcap capabilities to
- deduce correct values. It also normally suppresses
- output of obsolete termcap capabilities such as <STRONG>bs</STRONG>.
- This option forces a more literal translation that
- also preserves the obsolete capabilities.
-
- <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
- extensions incompatible with SVr4/XSI. Available
- subsets are "SVr1", "Ultrix", "HP", "BSD" and
- "AIX"; see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details.
-
- <STRONG>-r</STRONG> Force entry resolution (so there are no remaining
- tc capabilities) even when doing translation to
- termcap format. This may be needed if you are
- preparing a termcap file for a termcap library
- (such as GNU termcap through version 1.3 or BSD
- termcap through 4.3BSD) that does not handle multi-
- ple tc capabilities per entry.
-
- <STRONG>-s</STRONG> Summarize the compile by showing the directory into
- which entries are written, and the number of
- entries which are compiled.
-
- <STRONG>-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).
-
- <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.
-
- <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.
-
- <STRONG>-w</STRONG><EM>n</EM> specifies the width of the output.
-
- <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.
-
- <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.
-
- The debug flag levels are as follows:
-
- 1 Names of files created and linked
-
- 2 Information related to the ``use'' facility
-
- 3 Statistics from the hashing algorithm
-
- 5 String-table memory allocations
-
- 7 Entries into the string-table
-
- 8 List of tokens encountered by scanner
-
- 9 All values computed in construction of the hash
- table
-
- If the debug level <EM>n</EM> is not given, it is taken to be one.
-
- All but one of the capabilities recognized by <STRONG>tic</STRONG> are doc-
- umented in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The exception is the <STRONG>use</STRONG> capabil-
- ity.
-
- When a <STRONG>use</STRONG>=<EM>entry</EM>-<EM>name</EM> field is discovered in a terminal
- entry currently being compiled, <STRONG>tic</STRONG> reads in the binary
- from <STRONG>/usr/share/terminfo</STRONG> to complete the entry. (Entries
- created from <EM>file</EM> will be used first. If the environment
- variable <STRONG>TERMINFO</STRONG> is set, that directory is searched
- instead of <STRONG>/usr/share/terminfo</STRONG>.) <STRONG>tic</STRONG> duplicates the capa-
- bilities in <EM>entry</EM>-<EM>name</EM> for the current entry, with the
- exception of those capabilities that explicitly are
- defined in the current entry.
-
- When an entry, e.g., <STRONG>entry_name_1</STRONG>, contains a
- <STRONG>use=</STRONG><EM>entry</EM>_<EM>name</EM>_<EM>2</EM> field, any canceled capabilities in
- <EM>entry</EM>_<EM>name</EM>_<EM>2</EM> must also appear in <STRONG>entry_name_1</STRONG> before <STRONG>use=</STRONG>
- for these capabilities to be canceled in <STRONG>entry_name_1</STRONG>.
-
- If the environment variable <STRONG>TERMINFO</STRONG> is set, the compiled
- results are placed there instead of <STRONG>/usr/share/terminfo</STRONG>.
-
- Total compiled entries cannot exceed 4096 bytes. The name
- field cannot exceed 512 bytes. Terminal names exceeding
- the maximum alias length (32 characters on systems with
- long filenames, 14 characters otherwise) will be truncated
- to the maximum alias length and a warning message will be
- printed.
-
-
-</PRE>
-<H2>COMPATIBILITY</H2><PRE>
- There is some evidence that historic <STRONG>tic</STRONG> implementations
- treated description fields with no whitespace in them as
- additional aliases or short names. This <STRONG>tic</STRONG> does not do
- that, but it does warn when description fields may be
- treated that way and check them for dangerous characters.
-
-
-</PRE>
-<H2>EXTENSIONS</H2><PRE>
- Unlike the stock SVr4 <STRONG>tic</STRONG> command, this implementation can
- actually compile termcap sources. In fact, entries in
- terminfo and termcap syntax can be mixed in a single
- source file. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for the list of termcap
- names taken to be equivalent to terminfo names.
-
- 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.
-
- The error messages from this <STRONG>tic</STRONG> have the same format as
- GNU C error messages, and can be parsed by GNU Emacs's
- compile facility.
-
- The <STRONG>-C</STRONG>, <STRONG>-G</STRONG>, <STRONG>-I</STRONG>, <STRONG>-N</STRONG>, <STRONG>-R</STRONG>, <STRONG>-T</STRONG>, <STRONG>-V</STRONG>, <STRONG>-a</STRONG>, <STRONG>-e</STRONG>, <STRONG>-f</STRONG>, <STRONG>-g</STRONG>, <STRONG>-o</STRONG>, <STRONG>-r</STRONG>,
- <STRONG>-s</STRONG>, <STRONG>-t</STRONG> and <STRONG>-x</STRONG> options are not supported under SVr4. The
- SVr4 -c mode does not report bad use links.
-
- System V does not compile entries to or read entries from
- your <EM>$HOME/.terminfo</EM> directory unless TERMINFO is explic-
- itly set to it.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- <STRONG>/usr/share/terminfo/?/*</STRONG>
- Compiled terminal description database.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/toe.1m.html b/ncurses-5.3/doc/html/man/toe.1m.html
deleted file mode 100644
index 441ff70..0000000
--- a/ncurses-5.3/doc/html/man/toe.1m.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<!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>
-<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>
-<H1>toe 1m</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>toe</STRONG> - table of (terminfo) entries
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>toe</STRONG> [<STRONG>-v</STRONG>[<EM>n</EM>]] [<STRONG>-huUV</STRONG>] <EM>file...</EM>
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- 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
- also specify the -h option, a directory header will be
- issued as each directory is entered.
-
- There are other options intended for use by terminfo file
- maintainers:
-
- <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-
- nal that has use capabilities, followed by a colon,
- followed by the whitespace-separated primary names
- of all terminals which occur in those use capabili-
- ties, followed by a newline
-
- <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
- a terminal that occurs in use capabilities, fol-
- lowed by a colon, followed by the whitespace-sepa-
- rated primary names of all terminals which depend
- on it, followed by a newline.
-
- <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>.
-
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this
- program, and exits.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- <STRONG>/usr/share/terminfo/?/*</STRONG>
- Compiled terminal description database.
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="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>.
-
-
-
-
-</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/ncurses-5.3/doc/html/man/tput.1.html b/ncurses-5.3/doc/html/man/tput.1.html
deleted file mode 100644
index e9029a5..0000000
--- a/ncurses-5.3/doc/html/man/tput.1.html
+++ /dev/null
@@ -1,340 +0,0 @@
-<!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>
-<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>
-<H1>tput 1</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>tput</STRONG>, <STRONG>reset</STRONG> - initialize a terminal or query terminfo
- database
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <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>
- The <STRONG>tput</STRONG> utility uses the <STRONG>terminfo</STRONG> database to make the
- values of terminal-dependent capabilities and information
- available to the shell (see <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>), to initialize or reset
- the terminal, or return the long name of the requested
- terminal type. <STRONG>tput</STRONG> outputs a string if the attribute
- (<EM>cap</EM>ability <EM>name</EM>) is of type string, or an integer if the
- attribute is of type integer. If the attribute is of type
- boolean, <STRONG>tput</STRONG> simply sets the exit code (<STRONG>0</STRONG> for TRUE if the
- terminal has the capability, <STRONG>1</STRONG> for FALSE if it does not),
- and produces no output. Before using a value returned on
- standard output, the user should test the exit code [<STRONG>$?</STRONG>,
- see <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>] to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and
- <STRONG>DIAGNOSTICS</STRONG> sections.) For a complete list of capabili-
- ties and the <EM>capname</EM> associated with each, see <STRONG>ter-</STRONG>
- <STRONG><A HREF="terminfo.1.html">minfo(1)</A></STRONG>.
-
- <STRONG>-T</STRONG><EM>type</EM> indicates the <EM>type</EM> of terminal. Normally this
- option is unnecessary, because the default is taken
- from the environment variable <STRONG>TERM</STRONG>. If <STRONG>-T</STRONG> is spec-
- ified, then the shell variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG>
- will be ignored,and the operating system will not
- be queried for the actual screen size.
-
- <EM>capname</EM>
- indicates the attribute from the <STRONG>terminfo</STRONG> database.
- When <STRONG>termcap</STRONG> support is compiled in, the <STRONG>termcap</STRONG>
- name for the attribute is also accepted.
-
- <EM>parms</EM> If the attribute is a string that takes parameters,
- the arguments <EM>parms</EM> will be instantiated into the
- string. An all-numeric argument will be passed to
- the attribute as a number.
-
- Only a few terminfo capabilities require string
- parameters; <STRONG>tput</STRONG> uses a table to decide which to
- pass as strings. Normally <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to
- perform the substitution. If no parameters are
- given for the attribute, <STRONG>tput</STRONG> writes the string
- without performing the substitution.
-
- <STRONG>-S</STRONG> allows more than one capability per invocation of
- <STRONG>tput</STRONG>. The capabilities must be passed to <STRONG>tput</STRONG> from
- the standard input instead of from the command line
- (see example). Only one <EM>capname</EM> is allowed per
- line. The <STRONG>-S</STRONG> option changes the meaning of the <STRONG>0</STRONG>
- and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT
- CODES section).
-
- Again, <STRONG>tput</STRONG> uses a table and the presence of param-
- eters in its input to decide whether to use <STRONG>tparm</STRONG>
- (3x), and how to interpret the parameters.
-
- <STRONG>-V</STRONG> reports the version of ncurses which was used in
- this program, and exits.
-
- <STRONG>init</STRONG> If the <STRONG>terminfo</STRONG> database is present and an entry
- 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
- 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
- the information needed for any of the four above
- activities, that activity will silently be skipped.
-
- <STRONG>reset</STRONG> Instead of putting out initialization strings, the
- terminal's reset strings will be output if present
- (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the reset strings are not
- present, but initialization strings are, the ini-
- tialization strings will be output. Otherwise,
- <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>.
-
- <STRONG>longname</STRONG>
- If the <STRONG>terminfo</STRONG> database is present and an entry
- for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above),
- then the long name of the terminal will be put out.
- The long name is the last name in the first line of
- the terminal's description in the <STRONG>terminfo</STRONG> database
- [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>].
-
- If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the
- same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>. See <STRONG>tset</STRONG> for comparison, which
- has similar behavior.
-
-
-</PRE>
-<H2>EXAMPLES</H2><PRE>
- <STRONG>tput</STRONG> <STRONG>init</STRONG>
- Initialize the terminal according to the type of ter-
- minal in the environmental variable <STRONG>TERM</STRONG>. This com-
- mand should be included in everyone's .profile after
- 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).
-
- <STRONG>tput</STRONG> <STRONG>clear</STRONG>
- Echo the clear-screen sequence for the current termi-
- nal.
-
- <STRONG>tput</STRONG> <STRONG>cols</STRONG>
- Print the number of columns for the current terminal.
-
- <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>cols</STRONG>
- Print the number of columns for the 450 terminal.
-
- <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>
-
- <STRONG>tput</STRONG> <STRONG>hc</STRONG>
- Set exit code to indicate if the current terminal is
- a hard copy terminal.
-
- <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.
-
- <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
- variable <STRONG>TERM</STRONG>.
-
- <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 <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>
- <STRONG>/usr/share/terminfo</STRONG>
- compiled terminal description database
-
- <STRONG>/usr/include/curses.h</STRONG>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> header file
-
- <STRONG>/usr/include/term.h</STRONG>
- <STRONG>terminfo</STRONG> header file
-
- <STRONG>/usr/share/tabset/*</STRONG>
- tab settings for some terminals, in a format appro-
- priate to be output to the terminal (escape
- sequences that set margins and tabs); for more
- information, see the "Tabs and Initialization" sec-
- tion of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-
-
-</PRE>
-<H2>EXIT CODES</H2><PRE>
- 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.
-
-
-
-</PRE>
-<H2>DIAGNOSTICS</H2><PRE>
- <STRONG>tput</STRONG> prints the following error messages and sets the cor-
- responding exit codes.
-
- exit code error message
- ---------------------------------------------------------------------
- <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
- the <STRONG><A HREF="terminfo.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>
- 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.
-
-
-</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>
-<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/ncurses-5.3/doc/html/man/tset.1.html b/ncurses-5.3/doc/html/man/tset.1.html
deleted file mode 100644
index 5d806bd..0000000
--- a/ncurses-5.3/doc/html/man/tset.1.html
+++ /dev/null
@@ -1,341 +0,0 @@
-<!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>
-<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>
-<H1>tset 1</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>tset</STRONG>, <STRONG>reset</STRONG> - terminal initialization
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- 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>
- <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.
-
- 1. The <STRONG>terminal</STRONG> argument specified on the command line.
-
- 2. The value of the <STRONG>TERM</STRONG> environmental variable.
-
- 3. (BSD systems only.) The terminal type associated with
- 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''.
-
- If the terminal type was not specified on the command-
- line, the -m option mappings are then applied (see below
- for more information). Then, if the terminal type begins
- with a question mark (``?''), the user is prompted for
- confirmation of the terminal type. An empty response con-
- firms the type, or, another type can be entered to specify
- a new type. Once the terminal type has been determined,
- the terminfo entry for the terminal is retrieved. If no
- terminfo entry is found for the type, the user is prompted
- for another terminal type.
-
- Once the terminfo entry is retrieved, the window size,
- backspace, interrupt and line kill characters (among many
- other things) are set and the terminal and tab initializa-
- tion strings are sent to the standard error output.
- Finally, if the erase, interrupt and line kill characters
- have changed, or are not set to their default values,
- their values are displayed to the standard error output.
-
- 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
- described above. This is useful after a program dies
- leaving a terminal in an abnormal state. Note, you may
- have to type
-
- <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 abnormal state. Also, the terminal will often not
- echo the command.
-
- The options are as follows:
-
- -q The terminal type is displayed to the standard out-
- put, and the terminal is not initialized in any way.
- The option `-' by itself is equivalent but archaic.
-
- -e Set the erase character to <EM>ch</EM>.
-
- -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.
-
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this
- program, and exits.
-
- -i Set the interrupt character to <EM>ch</EM>.
-
- -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.
-
- -r Print the terminal type to the standard error output.
-
- -s Print the sequence of shell commands to initialize
- the environment variable <STRONG>TERM</STRONG> to the standard output.
- See the section below on setting the environment for
- details.
-
- The arguments for the -e, -i, and -k options may either be
- entered as actual characters or by using the `hat' nota-
- tion, i.e. control-h may be specified as ``^H'' or ``^h''.
-
-
-</PRE>
-<H2>SETTING THE ENVIRONMENT</H2><PRE>
- It is often desirable to enter the terminal type and
- information about the terminal's capabilities into the
- shell's environment. This is done using the -s option.
-
- 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 <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 ... `
-
-
-
-</PRE>
-<H2>TERMINAL TYPE MAPPING</H2><PRE>
- When the terminal is not hardwired into the system (or the
- current system information is incorrect) the terminal type
- derived from the <EM>/etc/ttys</EM> file or the <STRONG>TERM</STRONG> environmental
- variable is often something generic like <STRONG>network</STRONG>, <STRONG>dialup</STRONG>,
- or <STRONG>unknown</STRONG>. When <STRONG>tset</STRONG> is used in a startup script it is
- often desirable to provide information about the type of
- 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 <STRONG>tset</STRONG> ``If
- I'm on this port at a particular speed, guess that I'm on
- that kind of terminal''.
-
- The argument to the -m option consists of an optional port
- type, an optional operator, an optional baud rate specifi-
- cation, an optional colon (``:'') character and a terminal
- type. The port type is a string (delimited by either the
- operator or the colon character). The operator may be any
- combination of ``&gt;'', ``&lt;'', ``@'', and ``!''; ``&gt;'' means
- greater than, ``&lt;'' means less than, ``@'' means equal to
- and ``!'' inverts the sense of the test. The baud rate is
- specified as a number and is compared with the speed of
- the standard error output (which should be the control
- terminal). The terminal type is a string.
-
- If the terminal type is not specified on the command line,
- the -m mappings are applied to the terminal type. If the
- port type and baud rate match the mapping, the terminal
- type specified in the mapping replaces the current type.
- If more than one mapping is specified, the first applica-
- ble mapping is used.
-
- For example, consider the following mapping:
- <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-
- 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
- type will match any port type. For example, <STRONG>-m</STRONG>
- <STRONG>dialup:vt100</STRONG> <STRONG>-m</STRONG> <STRONG>:?xterm</STRONG> will cause any dialup port,
- regardless of baud rate, to match the terminal type vt100,
- and any non-dialup port type to match the terminal type
- ?xterm. Note, because of the leading question mark, the
- user will be queried on a default port as to whether they
- are actually using an xterm terminal.
-
- 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 <STRONG>csh</STRONG> users
- insert a backslash character (``\'') before any exclama-
- tion marks (``!'').
-
-
-</PRE>
-<H2>HISTORY</H2><PRE>
- The <STRONG>tset</STRONG> command appeared in BSD 3.0. The <STRONG>ncurses</STRONG> imple-
- mentation was lightly adapted from the 4.4BSD sources for
- a terminfo environment by Eric S. Raymond &lt;esr@snark.thyr-
- sus.com&gt;.
-
-
-</PRE>
-<H2>COMPATIBILITY</H2><PRE>
- The <STRONG>tset</STRONG> utility has been provided for backward-compati-
- bility with BSD environments (under most modern UNIXes,
- <STRONG>/etc/inittab</STRONG> and <STRONG><A HREF="getty.1.html">getty(1)</A></STRONG> can set <STRONG>TERM</STRONG> appropriately for
- each dial-up line; this obviates what was <STRONG>tset</STRONG>'s most
- important use). This implementation behaves like 4.4BSD
- 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
- <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
- tset via a link named `TSET` (or via any other name begin-
- ning with an upper-case letter) set the terminal to use
- upper-case only. This feature has been omitted.
-
- The -A, -E, -h, -u and -v options were deleted from the
- <STRONG>tset</STRONG> utility in 4.4BSD. None of them were documented in
- 4.3BSD and all are of limited utility at best. The -a, -d,
- and -p options are similarly not documented or useful, but
- were retained as they appear to be in widespread use. It
- is strongly recommended that any usage of these three
- options be changed to use the -m option instead. The -n
- option remains, but has no effect. The -adnp options are
- therefore omitted from the usage summary above.
-
- It is still permissible to specify the -e, -i, and -k
- options without arguments, although it is strongly recom-
- mended that such usage be fixed to explicitly specify the
- character.
-
- As of 4.4BSD, executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies
- the -Q option. Also, the interaction between the - option
- and the <EM>terminal</EM> argument in some historic implementations
- of <STRONG>tset</STRONG> has been removed.
-
-
-
-</PRE>
-<H2>ENVIRONMENT</H2><PRE>
- The <STRONG>tset</STRONG> command uses the <STRONG>SHELL</STRONG> and <STRONG>TERM</STRONG> environment vari-
- ables.
-
-
-</PRE>
-<H2>FILES</H2><PRE>
- /etc/ttys
- system port name to terminal type mapping database
- (BSD versions only).
-
- /usr/share/terminfo
- terminal capability database
-
-
-</PRE>
-<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="termcap.5.html">termcap(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, envi-
- <STRONG><A HREF="ron.7.html">ron(7)</A></STRONG>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/man/wresize.3x.html b/ncurses-5.3/doc/html/man/wresize.3x.html
deleted file mode 100644
index cb402ad..0000000
--- a/ncurses-5.3/doc/html/man/wresize.3x.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!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>
-<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>
-<H1>wresize 3x</H1>
-<HR>
-<PRE>
-<!-- Manpage converted by man2html 3.0.1 -->
-
-</PRE>
-<H2>NAME</H2><PRE>
- <STRONG>wresize</STRONG> - resize a curses window
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
-
- <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>
- 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
- background rendition (as set by <STRONG>wbkgndset</STRONG>) merged into
- them.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- 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.
-
-
-</PRE>
-<H2>NOTES</H2><PRE>
- The only restriction placed on the dimensions is that they
- be greater than zero. The dimensions are not compared to
- <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>
- <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
-
-
-</PRE>
-<H2>AUTHOR</H2><PRE>
- Thomas Dickey (from an equivalent function written in 1988
- for BSD curses).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</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/ncurses-5.3/doc/html/ncurses-intro.html b/ncurses-5.3/doc/html/ncurses-intro.html
deleted file mode 100644
index 65eb58e..0000000
--- a/ncurses-5.3/doc/html/ncurses-intro.html
+++ /dev/null
@@ -1,2690 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
-<!--
- $Id$
--->
-<HTML>
-<HEAD>
-<TITLE>Writing Programs with NCURSES</TITLE>
-<link rev="made" href="mailto:bugs-ncurses@gnu.org">
-</HEAD>
-<BODY>
-
-<H1>Writing Programs with NCURSES</H1>
-
-<BLOCKQUOTE>
-by Eric S. Raymond and Zeyd M. Ben-Halim<BR>
-updates since release 1.9.9e by Thomas Dickey
-</BLOCKQUOTE>
-
-<H1>Contents</H1>
-<UL>
-<LI><A HREF="#introduction">Introduction</A>
-<UL>
-<LI><A HREF="#history">A Brief History of Curses</A>
-<LI><A HREF="#scope">Scope of This Document</A>
-<LI><A HREF="#terminology">Terminology</A>
-</UL>
-<LI><A HREF="#curses">The Curses Library</A>
-<UL>
-<LI><A HREF="#overview">An Overview of Curses</A>
-<UL>
-<LI><A HREF="#compiling">Compiling Programs using Curses</A>
-<LI><A HREF="#updating">Updating the Screen</A>
-<LI><A HREF="#stdscr">Standard Windows and Function Naming Conventions</A>
-<LI><A HREF="#variables">Variables</A>
-</UL>
-<LI><A HREF="#using">Using the Library</A>
-<UL>
-<LI><A HREF="#starting">Starting up</A>
-<LI><A HREF="#output">Output</A>
-<LI><A HREF="#input">Input</A>
-<LI><A HREF="#formschars">Using Forms Characters</A>
-<LI><A HREF="#attributes">Character Attributes and Color</A>
-<LI><A HREF="#mouse">Mouse Interfacing</A>
-<LI><A HREF="#finishing">Finishing Up</A>
-</UL>
-<LI><A HREF="#functions">Function Descriptions</A>
-<UL>
-<LI><A HREF="#init">Initialization and Wrapup</A>
-<LI><A HREF="#flush">Causing Output to the Terminal</A>
-<LI><A HREF="#lowlevel">Low-Level Capability Access</A>
-<LI><A HREF="#debugging">Debugging</A>
-</UL>
-<LI><A HREF="#hints">Hints, Tips, and Tricks</A>
-<UL>
-<LI><A HREF="#caution">Some Notes of Caution</A>
-<LI><A HREF="#leaving">Temporarily Leaving ncurses Mode</A>
-<LI><A HREF="#xterm">Using <CODE>ncurses</CODE> under <CODE>xterm</CODE></A>
-<LI><A HREF="#screens">Handling Multiple Terminal Screens</A>
-<LI><A HREF="#testing">Testing for Terminal Capabilities</A>
-<LI><A HREF="#tuning">Tuning for Speed</A>
-<LI><A HREF="#special">Special Features of <CODE>ncurses</CODE></A>
-</UL>
-<LI><A HREF="#compat">Compatibility with Older Versions</A>
-<UL>
-<LI><A HREF="#refbug">Refresh of Overlapping Windows</A>
-<LI><A HREF="#backbug">Background Erase</A>
-</UL>
-<LI><A HREF="#xsifuncs">XSI Curses Conformance</A>
-</UL>
-<LI><A HREF="#panels">The Panels Library</A>
-<UL>
-<LI><A HREF="#pcompile">Compiling With the Panels Library</A>
-<LI><A HREF="#poverview">Overview of Panels</A>
-<LI><A HREF="#pstdscr">Panels, Input, and the Standard Screen</A>
-<LI><A HREF="#hiding">Hiding Panels</A>
-<LI><A HREF="#pmisc">Miscellaneous Other Facilities</A>
-</UL>
-<LI><A HREF="#menu">The Menu Library</A>
-<UL>
-<LI><A HREF="#mcompile">Compiling with the menu Library</A>
-<LI><A HREF="#moverview">Overview of Menus</A>
-<LI><A HREF="#mselect">Selecting items</A>
-<LI><A HREF="#mdisplay">Menu Display</A>
-<LI><A HREF="#mwindows">Menu Windows</A>
-<LI><A HREF="#minput">Processing Menu Input</A>
-<LI><A HREF="#mmisc">Miscellaneous Other Features</A>
-</UL>
-<LI><A HREF="#form">The Forms Library</A>
-<UL>
-<LI><A HREF="#fcompile">Compiling with the forms Library</A>
-<LI><A HREF="#foverview">Overview of Forms</A>
-<LI><A HREF="#fcreate">Creating and Freeing Fields and Forms</A>
-<LI><A HREF="#fattributes">Fetching and Changing Field Attributes</A>
-<UL>
-<LI><A HREF="#fsizes">Fetching Size and Location Data</A>
-<LI><A HREF="#flocation">Changing the Field Location</A>
-<LI><A HREF="#fjust">The Justification Attribute</A>
-<LI><A HREF="#fdispatts">Field Display Attributes</A>
-<LI><A HREF="#foptions">Field Option Bits</A>
-<LI><A HREF="#fstatus">Field Status</A>
-<LI><A HREF="#fuser">Field User Pointer</A>
-</UL>
-<LI><A HREF="#fdynamic">Variable-Sized Fields</A>
-<LI><A HREF="#fvalidation">Field Validation</A>
-<UL>
-<LI><A HREF="#ftype_alpha">TYPE_ALPHA</A>
-<LI><A HREF="#ftype_alnum">TYPE_ALNUM</A>
-<LI><A HREF="#ftype_enum">TYPE_ENUM</A>
-<LI><A HREF="#ftype_integer">TYPE_INTEGER</A>
-<LI><A HREF="#ftype_numeric">TYPE_NUMERIC</A>
-<LI><A HREF="#ftype_regexp">TYPE_REGEXP</A>
-</UL>
-<LI><A HREF="#fbuffer">Direct Field Buffer Manipulation</A>
-<LI><A HREF="#formattrs">Attributes of Forms</A>
-<LI><A HREF="#fdisplay">Control of Form Display</A>
-<LI><A HREF="#fdriver">Input Processing in the Forms Driver</A>
-<UL>
-<LI><A HREF="#fpage">Page Navigation Requests</A>
-<LI><A HREF="#ffield">Inter-Field Navigation Requests</A>
-<LI><A HREF="#fifield">Intra-Field Navigation Requests</A>
-<LI><A HREF="#fscroll">Scrolling Requests</A>
-<LI><A HREF="#fedit">Field Editing Requests</A>
-<LI><A HREF="#forder">Order Requests</A>
-<LI><A HREF="#fappcmds">Application Commands</A>
-</UL>
-<LI><A HREF="#fhooks">Field Change Hooks</A>
-<LI><A HREF="#ffocus">Field Change Commands</A>
-<LI><A HREF="#frmoptions">Form Options</A>
-<LI><A HREF="#fcustom">Custom Validation Types</A>
-<UL>
-<LI><A HREF="#flinktypes">Union Types</A>
-<LI><A HREF="#fnewtypes">New Field Types</A>
-<LI><A HREF="#fcheckargs">Validation Function Arguments</A>
-<LI><A HREF="#fcustorder">Order Functions For Custom Types</A>
-<LI><A HREF="#fcustprobs">Avoiding Problems</A>
-</UL>
-</UL>
-</UL>
-
-<HR>
-<H1><A NAME="introduction">Introduction</A></H1>
-
-This document is an introduction to programming with <CODE>curses</CODE>. It is
-not an exhaustive reference for the curses Application Programming Interface
-(API); that role is filled by the <CODE>curses</CODE> manual pages. Rather, it
-is intended to help C programmers ease into using the package. <P>
-
-This document is aimed at C applications programmers not yet specifically
-familiar with ncurses. If you are already an experienced <CODE>curses</CODE>
-programmer, you should nevertheless read the sections on
-<A HREF="#mouse">Mouse Interfacing</A>, <A HREF="#debugging">Debugging</A>,
-<A HREF="#compat">Compatibility with Older Versions</A>,
-and <A HREF="#hints">Hints, Tips, and Tricks</A>. These will bring you up
-to speed on the special features and quirks of the <CODE>ncurses</CODE>
-implementation. If you are not so experienced, keep reading. <P>
-
-The <CODE>curses</CODE> 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. <CODE>Curses</CODE> uses terminfo, which
-is a database format that can describe the capabilities of thousands of
-different terminals. <P>
-
-The <CODE>curses</CODE> 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 <EM>xterm(1)</EM>; the <CODE>curses</CODE>
-API has 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 <CODE>curses</CODE>
-will typically be a great deal simpler and less expensive than one using an
-X toolkit.
-
-<H2><A NAME="history">A Brief History of Curses</A></H2>
-
-Historically, the first ancestor of <CODE>curses</CODE> was the routines written to
-provide screen-handling for the game <CODE>rogue</CODE>; these used the
-already-existing <CODE>termcap</CODE> database facility for describing terminal
-capabilities. These routines were abstracted into a documented library and
-first released with the early BSD UNIX versions. <P>
-
-System III UNIX from Bell Labs featured a rewritten and much-improved
-<CODE>curses</CODE> 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&amp;T
-System V releases, <CODE>curses</CODE> evolved to use more facilities and offer
-more capabilities, going far beyond BSD curses in power and flexibility.
-
-<H2><A NAME="scope">Scope of This Document</A></H2>
-
-This document describes <CODE>ncurses</CODE>, a free implementation of
-the System V <CODE>curses</CODE> API with some clearly marked extensions.
-It includes the following System V curses features:
-<UL>
-<LI>Support for multiple screen highlights (BSD curses could only
-handle one `standout' highlight, usually reverse-video).
-<LI>Support for line- and box-drawing using forms characters.
-<LI>Recognition of function keys on input.
-<LI>Color support.
-<LI>Support for pads (windows of larger than screen size on which the
-screen or a subwindow defines a viewport).
-</UL>
-
-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. <P>
-
-The <CODE>ncurses</CODE> 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. <P>
-
-The <CODE>ncurses</CODE> package was originated by Pavel Curtis. The original
-maintainer of this package is
-<A HREF="mailto:zmbenhal@netcom.com">Zeyd Ben-Halim</A>
-&lt;zmbenhal@netcom.com&gt;.
-<A HREF="mailto:esr@snark.thyrsus.com">Eric S. Raymond</A>
-&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="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
-<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.
-Contact the current maintainers at
-<A HREF="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</A>.
-<P>
-
-This document also describes the <A HREF="#panels">panels</A> 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). <P>
-
-Finally, this document describes in detail the <A HREF="#menu">menus</A> and <A
-HREF="#form">forms</A> extension libraries, also cloned from System V,
-which support easy construction and sequences of menus and fill-in
-forms.
-
-
-<H2><A NAME="terminology">Terminology</A></H2>
-
-In this document, the following terminology is used with reasonable
-consistency:
-
-<DL>
-<DT> window
-<DD>
-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.
-<DT> screens
-<DD>
-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, <CODE>stdscr</CODE>, is automatically provided for the programmer.
-<DT> terminal screen
-<DD>
-The package's idea of what the terminal display currently looks like, i.e.,
-what the user sees now. This is a special screen.
-</DL>
-
-<H1><A NAME="curses">The Curses Library</A></H1>
-
-<H2><A NAME="overview">An Overview of Curses</A></H2>
-
-<H3><A NAME="compiling">Compiling Programs using Curses</A></H3>
-
-In order to use the library, it is necessary to have certain types and
-variables defined. Therefore, the programmer must have a line:
-
-<PRE>
- #include &lt;curses.h&gt;
-</PRE>
-
-at the top of the program source. The screen package uses the Standard I/O
-library, so <CODE>&lt;curses.h&gt;</CODE> includes
-<CODE>&lt;stdio.h&gt;</CODE>. <CODE>&lt;curses.h&gt;</CODE> also includes
-<CODE>&lt;termios.h&gt;</CODE>, <CODE>&lt;termio.h&gt;</CODE>, or
-<CODE>&lt;sgtty.h&gt;</CODE> depending on your system. It is redundant (but
-harmless) for the programmer to do these includes, too. In linking with
-<CODE>curses</CODE> you need to have <CODE>-lncurses</CODE> in your LDFLAGS or on the
-command line. There is no need for any other libraries.
-
-<H3><A NAME="updating">Updating the Screen</A></H3>
-
-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 <CODE>curscr</CODE>, for current screen) is a
-screen image of what the terminal currently looks like. Another screen (called
-<CODE>stdscr</CODE>, for standard screen) is provided by default to make changes
-on. <P>
-
-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. <P>
-
-To make the section of physical screen corresponding to a window reflect the
-contents of the window structure, the routine <CODE>refresh()</CODE> (or
-<CODE>wrefresh()</CODE> if the window is not <CODE>stdscr</CODE>) is called. <P>
-
-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.
-
-<H3><A NAME="stdscr">Standard Windows and Function Naming Conventions</A></H3>
-
-As hinted above, the routines can use several windows, but two are
-automatically given: <CODE>curscr</CODE>, which knows what the terminal looks like,
-and <CODE>stdscr</CODE>, which is what the programmer wants the terminal to look
-like next. The user should never actually access <CODE>curscr</CODE> directly.
-Changes should be made to through the API, and then the routine
-<CODE>refresh()</CODE> (or <CODE>wrefresh()</CODE>) called. <P>
-
-Many functions are defined to use <CODE>stdscr</CODE> as a default screen. For
-example, to add a character to <CODE>stdscr</CODE>, one calls <CODE>addch()</CODE> with
-the desired character as argument. To write to a different window. use the
-routine <CODE>waddch()</CODE> (for `w'indow-specific addch()) is provided. This
-convention of prepending function names with a `w' when they are to be
-applied to specific windows is consistent. The only routines which do not
-follow it are those for which a window must always be specified. <P>
-
-In order to move the current (y, x) coordinates from one point to another, the
-routines <CODE>move()</CODE> and <CODE>wmove()</CODE> 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
-
-<PRE>
- move(y, x);
- addch(ch);
-</PRE>
-
-can be replaced by
-
-<PRE>
- mvaddch(y, x, ch);
-</PRE>
-
-and
-
-<PRE>
- wmove(win, y, x);
- waddch(win, ch);
-</PRE>
-
-can be replaced by
-
-<PRE>
- mvwaddch(win, y, x, ch);
-</PRE>
-
-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.
-
-<H3><A NAME="variables">Variables</A></H3>
-
-The <CODE>curses</CODE> library sets some variables describing the terminal
-capabilities.
-
-<PRE>
- type name description
- ------------------------------------------------------------------
- int LINES number of lines on the terminal
- int COLS number of columns on the terminal
-</PRE>
-
-The <CODE>curses.h</CODE> also introduces some <CODE>#define</CODE> constants and types
-of general usefulness:
-
-<DL>
-<DT> <CODE>bool</CODE>
-<DD> boolean type, actually a `char' (e.g., <CODE>bool doneit;</CODE>)
-<DT> <CODE>TRUE</CODE>
-<DD> boolean `true' flag (1).
-<DT> <CODE>FALSE</CODE>
-<DD> boolean `false' flag (0).
-<DT> <CODE>ERR</CODE>
-<DD> error flag returned by routines on a failure (-1).
-<DT> <CODE>OK</CODE>
-<DD> error flag returned by routines when things go right.
-</DL>
-
-<H2><A NAME="using">Using the Library</A></H2>
-
-Now we describe how to actually use the screen package. In it, we assume all
-updating, reading, etc. is applied to <CODE>stdscr</CODE>. These instructions will
-work on any window, providing you change the function names and parameters as
-mentioned above. <P>
-
-Here is a sample program to motivate the discussion:
-
-<PRE>
-#include &lt;curses.h&gt;
-#include &lt;signal.h&gt;
-
-static void finish(int sig);
-
-int
-main(int argc, char *argv[])
-{
- int num = 0;
-
- /* initialize your non-curses data structures here */
-
- (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-&gt;CR/NL on output */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) echo(); /* echo input - in color */
-
- if (has_colors())
- {
- start_color();
-
- /*
- * Simple color assignment, often all we need. Color pair 0 cannot
- * be redefined. This example uses the same value for the color
- * pair as for the foreground color, though of course that is not
- * necessary:
- */
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_YELLOW, COLOR_BLACK);
- init_pair(4, COLOR_BLUE, COLOR_BLACK);
- init_pair(5, COLOR_CYAN, COLOR_BLACK);
- init_pair(6, COLOR_MAGENTA, COLOR_BLACK);
- init_pair(7, COLOR_WHITE, COLOR_BLACK);
- }
-
- for (;;)
- {
- int c = getch(); /* refresh, accept single keystroke of input */
- attrset(COLOR_PAIR(num % 8));
- num++;
-
- /* process the command keystroke */
- }
-
- finish(0); /* we're done */
-}
-
-static void finish(int sig)
-{
- endwin();
-
- /* do your non-curses wrapup here */
-
- exit(0);
-}
-</PRE>
-
-<H3><A NAME="starting">Starting up</A></H3>
-
-In order to use the screen package, the routines must know about terminal
-characteristics, and the space for <CODE>curscr</CODE> and <CODE>stdscr</CODE> must be
-allocated. These function <CODE>initscr()</CODE> 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, <CODE>initscr()</CODE> will terminate
-the program with an error message. <CODE>initscr()</CODE> 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 <CODE>curscr</CODE> or <CODE>stdscr</CODE> 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 <CODE>nl()</CODE> and <CODE>cbreak()</CODE> should be called
-after <CODE>initscr()</CODE>. <P>
-
-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
-<CODE>scrollok()</CODE>. If you want the cursor to be left in place after
-the last change, use <CODE>leaveok()</CODE>. If this isn't done,
-<CODE>refresh()</CODE> will move the cursor to the window's current (y, x)
-coordinates after updating it. <P>
-
-You can create new windows of your own using the functions <CODE>newwin()</CODE>,
-<CODE>derwin()</CODE>, and <CODE>subwin()</CODE>. The routine <CODE>delwin()</CODE> will
-allow you to get rid of old windows. All the options described above can be
-applied to any window.
-
-<H3><A NAME="output">Output</A></H3>
-
-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
-<CODE>addch()</CODE> and <CODE>move()</CODE>. <CODE>addch()</CODE> adds a character at the
-current (y, x) coordinates. <CODE>move()</CODE> changes the current (y, x)
-coordinates to whatever you want them to be. It returns <CODE>ERR</CODE> if you
-try to move off the window. As mentioned above, you can combine the two into
-<CODE>mvaddch()</CODE> to do both things at once. <P>
-
-The other output functions, such as <CODE>addstr()</CODE> and <CODE>printw()</CODE>,
-all call <CODE>addch()</CODE> to add characters to the window. <P>
-
-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
-<CODE>refresh()</CODE>. In order to optimize finding changes, <CODE>refresh()</CODE>
-assumes that any part of the window not changed since the last
-<CODE>refresh()</CODE> 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 <CODE>touchwin()</CODE> is provided
-to make it look like the entire window has been changed, thus making
-<CODE>refresh()</CODE> check the whole subsection of the terminal for changes. <P>
-
-If you call <CODE>wrefresh()</CODE> with <CODE>curscr</CODE> as its argument, it will
-make the screen look like <CODE>curscr</CODE> thinks it looks like. This is useful
-for implementing a command which would redraw the screen in case it get messed
-up.
-
-<H3><A NAME="input">Input</A></H3>
-
-The complementary function to <CODE>addch()</CODE> is <CODE>getch()</CODE> which, if
-echo is set, will call <CODE>addch()</CODE> 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,
-one or the other has to changed before calling <CODE>getch()</CODE>; otherwise,
-the program's output will be unpredictable. <P>
-
-When you need to accept line-oriented input in a window, the functions
-<CODE>wgetstr()</CODE> and friends are available. There is even a <CODE>wscanw()</CODE>
-function that can do <CODE>scanf()</CODE>(3)-style multi-field parsing on window
-input. These pseudo-line-oriented functions turn on echoing while they
-execute. <P>
-
-The example code above uses the call <CODE>keypad(stdscr, TRUE)</CODE> to enable
-support for function-key mapping. With this feature, the <CODE>getch()</CODE> code
-watches the input stream for character sequences that correspond to arrow and
-function keys. These sequences are returned as pseudo-character values. The
-<CODE>#define</CODE> values returned are listed in the <CODE>curses.h</CODE> The
-mapping from sequences to <CODE>#define</CODE> values is determined by
-<CODE>key_</CODE> capabilities in the terminal's terminfo entry.
-
-<H3><A NAME="formschars">Using Forms Characters</A></H3>
-
-The <CODE>addch()</CODE> function (and some others, including <CODE>box()</CODE> and
-<CODE>border()</CODE>) can accept some pseudo-character arguments which are specially
-defined by <CODE>ncurses</CODE>. These are <CODE>#define</CODE> values set up in
-the <CODE>curses.h</CODE> header; see there for a complete list (look for
-the prefix <CODE>ACS_</CODE>). <P>
-
-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, <CODE>curses.h</CODE> will map them to a
-recognizable (though ugly) set of ASCII defaults.
-
-<H3><A NAME="attributes">Character Attributes and Color</A></H3>
-
-The <CODE>ncurses</CODE> package supports screen highlights including standout,
-reverse-video, underline, and blink. It also supports color, which is treated
-as another kind of highlight. <P>
-
-Highlights are encoded, internally, as high bits of the pseudo-character type
-(<CODE>chtype</CODE>) that <CODE>curses.h</CODE> uses to represent the contents of a
-screen cell. See the <CODE>curses.h</CODE> header file for a complete list of
-highlight mask values (look for the prefix <CODE>A_</CODE>).<P>
-
-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 <CODE>addch()</CODE> call,
-or any other output call that takes a <CODE>chtype</CODE> argument. <P>
-
-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 functions
-<CODE>attron()</CODE>, <CODE>attroff()</CODE>, and <CODE>attrset()</CODE>; 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 first arguments of the <CODE>init_pair()</CODE> values. <P>
-
-Once you've done an <CODE>init_pair()</CODE> that creates color-pair N, you can
-use <CODE>COLOR_PAIR(N)</CODE> as a highlight that invokes that particular
-color combination. Note that <CODE>COLOR_PAIR(N)</CODE>, for constant N,
-is itself a compile-time constant and can be used in initializers.
-
-<H3><A NAME="mouse">Mouse Interfacing</A></H3>
-
-The <CODE>ncurses</CODE> library also provides a mouse interface.
-<!-- The 'note' tag is not portable enough -->
-<blockquote>
-<strong>NOTE:</strong> this facility is specific to <CODE>ncurses</CODE>, 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.
-</blockquote>
-
-Presently, mouse event reporting works in the following environments:
-<ul>
-<li>xterm and similar programs such as rxvt.
-<li>Linux console, when configured with <CODE>gpm</CODE>(1), Alessandro
-Rubini's mouse server.
-<li>OS/2 EMX
-</ul>
-<P>
-The mouse interface is very simple. To activate it, you use the function
-<CODE>mousemask()</CODE>, 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. <P>
-
-Once the mouse is active, your application's command loop should watch
-for a return value of <CODE>KEY_MOUSE</CODE> from <CODE>wgetch()</CODE>. When
-you see this, a mouse event report has been queued. To pick it off
-the queue, use the function <CODE>getmouse()</CODE> (you must do this before
-the next <CODE>wgetch()</CODE>, otherwise another mouse event might come
-in and make the first one inaccessible). <P>
-
-Each call to <CODE>getmouse()</CODE> 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, corresponding
-to the event type being reported. <P>
-
-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. <P>
-
-The class of visible events may be changed at any time via <CODE>mousemask()</CODE>.
-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. <P>
-
-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. <P>
-
-Because mouse event reporting will not be available in all
-environments, it would be unwise to build <CODE>ncurses</CODE>
-applications that <EM>require</EM> 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
-<CODE>ncurses</CODE> distribution (<CODE>bs</CODE> and <CODE>knight</CODE>) contain
-code that illustrates how this can be done. <P>
-
-See the manual page <CODE>curs_mouse(3X)</CODE> for full details of the
-mouse-interface functions.
-
-<H3><A NAME="finishing">Finishing Up</A></H3>
-
-In order to clean up after the <CODE>ncurses</CODE> routines, the routine
-<CODE>endwin()</CODE> is provided. It restores tty modes to what they were when
-<CODE>initscr()</CODE> was first called, and moves the cursor down to the
-lower-left corner. Thus, anytime after the call to initscr, <CODE>endwin()</CODE>
-should be called before exiting.
-
-<H2><A NAME="functions">Function Descriptions</A></H2>
-
-We describe the detailed behavior of some important curses functions here, as a
-supplement to the manual page descriptions.
-
-<H3><A NAME="init">Initialization and Wrapup</A></H3>
-
-<DL>
-<DT> <CODE>initscr()</CODE>
-<DD> The first function called should almost always be <CODE>initscr()</CODE>.
-This will determine the terminal type and
-initialize curses data structures. <CODE>initscr()</CODE> also arranges that
-the first call to <CODE>refresh()</CODE> will clear the screen. If an error
-occurs a message is written to standard error and the program
-exits. Otherwise it returns a pointer to stdscr. A few functions may be
-called before initscr (<CODE>slk_init()</CODE>, <CODE>filter()</CODE>,
-<CODE>ripofflines()</CODE>, <CODE>use_env()</CODE>, and, if you are using multiple
-terminals, <CODE>newterm()</CODE>.)
-<DT> <CODE>endwin()</CODE>
-<DD> Your program should always call <CODE>endwin()</CODE> 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 <CODE>refresh()</CODE>
-or <CODE>doupdate()</CODE> after a temporary escape from the program will
-restore the ncurses screen from before the escape.
-<DT> <CODE>newterm(type, ofp, ifp)</CODE>
-<DD> A program which outputs to more than one terminal should use
-<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.
-(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
-opened using this function.
-<DT> <CODE>set_term(new)</CODE>
-<DD> This function is used to switch to a different terminal previously
-opened by <CODE>newterm()</CODE>. 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.
-<DT> <CODE>delscreen(sp)</CODE>
-<DD> The inverse of <CODE>newterm()</CODE>; deallocates the data structures
-associated with a given <CODE>SCREEN</CODE> reference.
-</DL>
-
-<H3><A NAME="flush">Causing Output to the Terminal</A></H3>
-
-<DL>
-<DT> <CODE>refresh()</CODE> and <CODE>wrefresh(win)</CODE>
-<DD> These functions must be called to actually get any output on
-the terminal, as other routines merely manipulate data
-structures. <CODE>wrefresh()</CODE> copies the named window to the physical
-terminal screen, taking into account what is already
-there in order to do optimizations. <CODE>refresh()</CODE> does a
-refresh of <CODE>stdscr()</CODE>. Unless <CODE>leaveok()</CODE> has been
-enabled, the physical cursor of the terminal is left at the
-location of the window's cursor.
-<DT> <CODE>doupdate()</CODE> and <CODE>wnoutrefresh(win)</CODE>
-<DD> 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 physical screen,
-describing what is actually on the screen, and a virtual screen,
-describing what the programmer wants to have on the screen. wrefresh
-works by first copying the named window to the virtual screen
-(<CODE>wnoutrefresh()</CODE>), and then calling the routine to update the
-screen (<CODE>doupdate()</CODE>). If the programmer wishes to output
-several windows at once, a series of calls to <CODE>wrefresh</CODE> will result
-in alternating calls to <CODE>wnoutrefresh()</CODE> and <CODE>doupdate()</CODE>,
-causing several bursts of output to the screen. By calling
-<CODE>wnoutrefresh()</CODE> for each window, it is then possible to call
-<CODE>doupdate()</CODE> once, resulting in only one burst of output, with
-fewer total characters transmitted (this also avoids a visually annoying
-flicker at each update).
-</DL>
-
-<H3><A NAME="lowlevel">Low-Level Capability Access</A></H3>
-
-<DL>
-<DT> <CODE>setupterm(term, filenum, errret)</CODE>
-<DD> This routine is called to initialize a terminal's description, without setting
-up the curses screen structures or changing the tty-driver mode bits.
-<CODE>term</CODE> is the character string representing the name of the terminal
-being used. <CODE>filenum</CODE> is the UNIX file descriptor of the terminal to
-be used for output. <CODE>errret</CODE> is a 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
-database). <P>
-
-The value of <CODE>term</CODE> can be given as NULL, which will cause the value of
-<CODE>TERM</CODE> in the environment to be used. The <CODE>errret</CODE> pointer can
-also be given as NULL, meaning no error code is wanted. If <CODE>errret</CODE> is
-defaulted, and something goes wrong, <CODE>setupterm()</CODE> will 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. <P>
-
-After the call to <CODE>setupterm()</CODE>, the global variable <CODE>cur_term</CODE> is
-set to point to the current structure of terminal capabilities. By calling
-<CODE>setupterm()</CODE> for each terminal, and saving and restoring
-<CODE>cur_term</CODE>, it is possible for a program to use two or more terminals at
-once. <CODE>Setupterm()</CODE> also stores the names section of the terminal
-description in the global character array <CODE>ttytype[]</CODE>. Subsequent calls
-to <CODE>setupterm()</CODE> will overwrite this array, so you'll have to save it
-yourself if need be.
-</DL>
-
-<H3><A NAME="debugging">Debugging</A></H3>
-
-<!-- The 'note' tag is not portable enough -->
-<blockquote>
-<strong>NOTE:</strong> These functions are not part of the standard curses API!
-</blockquote>
-
-<DL>
-<DT> <CODE>trace()</CODE>
-<DD>
-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 containing a report on
-the library's actions. Higher trace levels enable more detailed (and
-verbose) reporting -- see comments attached to <CODE>TRACE_</CODE> defines
-in the <CODE>curses.h</CODE> file for details. (It is also possible to set
-a trace level by assigning a trace level value to the environment variable
-<CODE>NCURSES_TRACE</CODE>).
-<DT> <CODE>_tracef()</CODE>
-<DD>
-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
-<CODE>printf()</CODE>, only it outputs a newline after the end of arguments.
-The output goes to a file called <CODE>trace</CODE> in the current directory.
-</DL>
-
-Trace logs can be difficult to interpret due to the sheer volume of
-data dumped in them. There is a script called <STRONG>tracemunch</STRONG>
-included with the <CODE>ncurses</CODE> 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.
-
-<H2><A NAME="hints">Hints, Tips, and Tricks</A></H2>
-
-The <CODE>ncurses</CODE> 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.
-
-<H3><A NAME="caution">Some Notes of Caution</A></H3>
-
-If you find yourself thinking you need to use <CODE>noraw()</CODE> or
-<CODE>nocbreak()</CODE>, think again and move carefully. It's probably
-better design to use <CODE>getstr()</CODE> or one of its relatives to
-simulate cooked mode. The <CODE>noraw()</CODE> and <CODE>nocbreak()</CODE>
-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. <P>
-
-Bear in mind that <CODE>refresh()</CODE> is a synonym for <CODE>wrefresh(stdscr)</CODE>.
-Don't try to mix use of <CODE>stdscr</CODE> with use of windows declared
-by <CODE>newwin()</CODE>; a <CODE>refresh()</CODE> call will blow them off the
-screen. The right way to handle this is to use <CODE>subwin()</CODE>, or
-not touch <CODE>stdscr</CODE> at all and tile your screen with declared
-windows which you then <CODE>wnoutrefresh()</CODE> somewhere in your program
-event loop, with a single <CODE>doupdate()</CODE> call to trigger actual
-repainting. <P>
-
-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 <CODE>ncurses</CODE> library is not yet an exception to this
-rule. <P>
-
-There is a panels library included in the <CODE>ncurses</CODE>
-distribution that does a pretty good job of strengthening the
-overlapping-windows facilities. <P>
-
-Try to avoid using the global variables LINES and COLS. Use
-<CODE>getmaxyx()</CODE> on the <CODE>stdscr</CODE> 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.
-
-<H3><A NAME="leaving">Temporarily Leaving NCURSES Mode</A></H3>
-
-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 <CODE>ncurses</CODE>. <P>
-
-To leave <CODE>ncurses</CODE> mode, call <CODE>endwin()</CODE> 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
-<CODE>ncurses</CODE> mode, simply call <CODE>refresh()</CODE> or <CODE>doupdate()</CODE>.
-This will repaint the screen. <P>
-
-There is a boolean function, <CODE>isendwin()</CODE>, which code can use to
-test whether <CODE>ncurses</CODE> screen mode is active. It returns <CODE>TRUE</CODE>
-in the interval between an <CODE>endwin()</CODE> call and the following
-<CODE>refresh()</CODE>, <CODE>FALSE</CODE> otherwise. <P>
-
-Here is some sample code for shellout:
-
-<PRE>
- addstr("Shelling out...");
- def_prog_mode(); /* save current tty modes */
- endwin(); /* restore original tty modes */
- system("sh"); /* run shell */
- addstr("returned.\n"); /* prepare return message */
- refresh(); /* restore save modes, repaint screen */
-</PRE>
-
-<H3><A NAME="xterm">Using NCURSES under XTERM</A></H3>
-
-A resize operation in X sends SIGWINCH to the application running under xterm.
-The <CODE>ncurses</CODE> 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. <P>
-
-The easiest way to code your SIGWINCH handler is to have it do an
-<CODE>endwin</CODE>, followed by an <CODE>refresh</CODE> and a screen repaint you code
-yourself. The <CODE>refresh</CODE> will pick up the new screen size from the
-xterm's environment. <P>
-
-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 shrunk.
-<CODE>Ncurses</CODE> provides an extension which works better, the
-<CODE>resizeterm</CODE> function. That function ensures that all windows
-are limited to the new screen dimensions, and pads <CODE>stdscr</CODE>
-with blanks if the screen is larger. <P>
-
-Finally, ncurses can be configured to provide its own SIGWINCH handler,
-based on <CODE>resizeterm</CODE>.
-
-<H3><A NAME="screens">Handling Multiple Terminal Screens</A></H3>
-
-The <CODE>initscr()</CODE> function actually calls a function named
-<CODE>newterm()</CODE> to do most of its work. If you are writing a program that
-opens multiple terminals, use <CODE>newterm()</CODE> directly. <P>
-
-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 <CODE>stdscr</CODE> will be
-set to the last one allocated. You will switch between screens with the
-<CODE>set_term</CODE> call. Note that you will also have to call
-<CODE>def_shell_mode</CODE> and <CODE>def_prog_mode</CODE> on each tty yourself.
-
-<H3><A NAME="testing">Testing for Terminal Capabilities</A></H3>
-
-Sometimes you may want to write programs that test for the presence of various
-capabilities before deciding whether to go into <CODE>ncurses</CODE> mode. An easy
-way to do this is to call <CODE>setupterm()</CODE>, then use the functions
-<CODE>tigetflag()</CODE>, <CODE>tigetnum()</CODE>, and <CODE>tigetstr()</CODE> to do your
-testing. <P>
-
-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 <CODE>tigetstr("cup")</CODE> is non-NULL. Alternatively,
-you can include the <CODE>term.h</CODE> file and test the value of the
-macro <CODE>cursor_address</CODE>.
-
-<H3><A NAME="tuning">Tuning for Speed</A></H3>
-
-Use the <CODE>addchstr()</CODE> 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 <CODE>immedok()</CODE> option!
-
-<H3><A NAME="special">Special Features of NCURSES</A></H3>
-
-The <CODE>wresize()</CODE> function allows you to resize a window in place.
-The associated <CODE>resizeterm()</CODE> function simplifies the construction
-of <a HREF="#xterm">SIGWINCH</a> handlers, for resizing all windows. <P>
-
-The <CODE>define_key()</CODE> function allows you
-to define at runtime function-key control sequences which are not in the
-terminal description.
-The <CODE>keyok()</CODE> function allows you to temporarily
-enable or disable interpretation of any function-key control sequence. <P>
-
-The <CODE>use_default_colors()</CODE> 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 this feature, which is based on ISO 6429. <P>
-
-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.
-
-<H2><A NAME="compat">Compatibility with Older Versions</A></H2>
-
-Despite our best efforts, there are some differences between <CODE>ncurses</CODE>
-and the (undocumented!) behavior of older curses implementations. These arise
-from ambiguities or omissions in the documentation of the API.
-
-<H3><A NAME="refbug">Refresh of Overlapping Windows</A></H3>
-
-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
-<CODE>curses</CODE> versions were often not documented precisely. <P>
-
-To understand why this is a problem, remember that screen updates are
-calculated between two representations of the <EM>entire</EM> 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. <P>
-
-What happens to the overlapping region depends on what <CODE>wnoutrefresh()</CODE>
-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
-<CODE>wtouchln()</CODE> and friends). Some implementations do "entire copy",
-copying <EM>all</EM> window locations to the virtual screen whether or not
-they have changed. <P>
-
-The <CODE>ncurses</CODE> 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. <P>
-
-For most commercial curses implementations, it is not documented and not known
-for sure (at least not to the <CODE>ncurses</CODE> 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. <P>
-
-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 <CODE>touchwin()</CODE> before the <CODE>wnoutrefresh()</CODE> call to
-guarantee an entire-contents copy anywhere. <P>
-
-The really clean way to handle this is to use the panels library. If,
-when you want a screen update, you do <CODE>update_panels()</CODE>, it will
-do all the necessary <CODE>wnoutrfresh()</CODE> calls for whatever panel
-stacking order you have defined. Then you can do one <CODE>doupdate()</CODE>
-and there will be a <EM>single</EM> burst of physical I/O that will do
-all your updates.
-
-<H3><A NAME="backbug">Background Erase</A></H3>
-
-If you have been using a very old versions of <CODE>ncurses</CODE> (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 <STRONG>wattrset()</STRONG>, <STRONG>wattron()</STRONG>,
-<STRONG>wattroff()</STRONG> and friends). <P>
-
-In newer versions, this is not so. Instead, the attribute of erased blanks
-is normal unless and until it is modified by the functions <CODE>bkgdset()</CODE>
-or <CODE>wbkgdset()</CODE>. <P>
-
-This change in behavior conforms <CODE>ncurses</CODE> to System V Release 4 and
-the XSI Curses standard.
-
-<H2><A NAME="xsifuncs">XSI Curses Conformance</A></H2>
-
-The <CODE>ncurses</CODE> 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. <P>
-
-One effect of XSI conformance is the change in behavior described under
-<A HREF="#backbug">"Background Erase -- Compatibility with Old Versions"</A>. <P>
-
-Also, <CODE>ncurses</CODE> 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
-<CODE>#undef</CODE>.
-
-<H1><A NAME="panels">The Panels Library</A></H1>
-
-The <CODE>ncurses</CODE> library by itself provides good support for screen
-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
-<CODE>wnoutrefresh()</CODE> calls followed by a <CODE>doupdate()</CODE>, 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. <P>
-
-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. <P>
-
-The <CODE>panel</CODE> library first appeared in AT&amp;T System V. The
-version documented here is the <CODE>panel</CODE> code distributed
-with <CODE>ncurses</CODE>.
-
-<H2><A NAME="pcompile">Compiling With the Panels Library</A></H2>
-
-Your panels-using modules must import the panels library declarations with
-
-<PRE>
- #include &lt;panel.h&gt;
-</PRE>
-
-and must be linked explicitly with the panels library using an
-<CODE>-lpanel</CODE> argument. Note that they must also link the
-<CODE>ncurses</CODE> library with <CODE>-lncurses</CODE>. Many linkers
-are two-pass and will accept either order, but it is still good practice
-to put <CODE>-lpanel</CODE> first and <CODE>-lncurses</CODE> second.
-
-<H2><A NAME="poverview">Overview of Panels</A></H2>
-
-A panel object is a window that is implicitly treated as part of a
-<DFN>deck</DFN> including all other panel objects. The deck has an implicit
-bottom-to-top visibility order. The panels library includes an update
-function (analogous to <CODE>refresh()</CODE>) that displays all panels in the
-deck in the proper order to resolve overlaps. The standard window,
-<CODE>stdscr</CODE>, is considered below all panels. <P>
-
-Details on the panels functions are available in the man pages. We'll just
-hit the highlights here. <P>
-
-You create a panel from a window by calling <CODE>new_panel()</CODE> on a
-window pointer. It then becomes the top of the deck. The panel's window
-is available as the value of <CODE>panel_window()</CODE> called with the
-panel pointer as argument.<P>
-
-You can delete a panel (removing it from the deck) with <CODE>del_panel</CODE>.
-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
-<CODE>replace_window</CODE>. 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. <P>
-
-To move a panel's window, use <CODE>move_panel()</CODE>. The
-<CODE>mvwin()</CODE> 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. <P>
-
-Two functions (<CODE>top_panel()</CODE>, <CODE>bottom_panel()</CODE>) are
-provided for 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 panel's screen location, contents, and size unchanged. <P>
-
-The function <CODE>update_panels()</CODE> does all the
-<CODE>wnoutrefresh()</CODE> calls needed to prepare for
-<CODE>doupdate()</CODE> (which you must call yourself, afterwards). <P>
-
-Typically, you will want to call <CODE>update_panels()</CODE> and
-<CODE>doupdate()</CODE> just before accepting command input, once in each cycle
-of interaction with the user. If you call <CODE>update_panels()</CODE> after
-each and every panel write, you'll generate a lot of unnecessary refresh
-activity and screen flicker.
-
-<H2><A NAME="pstdscr">Panels, Input, and the Standard Screen</A></H2>
-
-You shouldn't mix <CODE>wnoutrefresh()</CODE> or <CODE>wrefresh()</CODE>
-operations with panels code; this will work only if the argument window
-is either in the top panel or unobscured by any other panels. <P>
-
-The <CODE>stsdcr</CODE> window is a special case. It is considered below all
-panels. Because changes to panels may obscure parts of <CODE>stdscr</CODE>,
-though, you should call <CODE>update_panels()</CODE> before
-<CODE>doupdate()</CODE> even when you only change <CODE>stdscr</CODE>. <P>
-
-Note that <CODE>wgetch</CODE> automatically calls <CODE>wrefresh</CODE>.
-Therefore, before requesting input from a panel window, you need to be sure
-that the panel is totally unobscured. <P>
-
-There is presently no way to display changes to one obscured panel without
-repainting all panels.
-
-<H2><A NAME="hiding">Hiding Panels</A></H2>
-
-It's possible to remove a panel from the deck temporarily; use
-<CODE>hide_panel</CODE> for this. Use <CODE>show_panel()</CODE> to render it
-visible again. The predicate function <CODE>panel_hidden</CODE>
-tests whether or not a panel is hidden. <P>
-
-The <CODE>panel_update</CODE> code ignores hidden panels. You cannot do
-<CODE>top_panel()</CODE> or <CODE>bottom_panel</CODE> on a hidden panel().
-Other panels operations are applicable.
-
-<H2><A NAME="pmisc">Miscellaneous Other Facilities</A></H2>
-
-It's possible to navigate the deck using the functions
-<CODE>panel_above()</CODE> and <CODE>panel_below</CODE>. Handed a panel
-pointer, they return the panel above or below that panel. Handed
-<CODE>NULL</CODE>, they return the bottom-most or top-most panel. <P>
-
-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 <CODE>set_panel_userptr()</CODE> and <CODE>panel_userptr</CODE> for
-details.
-
-<H1><A NAME="menu">The Menu Library</A></H1>
-
-A menu is a screen display that assists the user to choose some subset
-of a given set of items. The <CODE>menu</CODE> library is a curses
-extension that supports easy programming of menu hierarchies with a
-uniform but flexible interface. <P>
-
-The <CODE>menu</CODE> library first appeared in AT&amp;T System V. The
-version documented here is the <CODE>menu</CODE> code distributed
-with <CODE>ncurses</CODE>.
-
-<H2><A NAME="mcompile">Compiling With the menu Library</A></H2>
-
-Your menu-using modules must import the menu library declarations with
-
-<PRE>
- #include &lt;menu.h&gt;
-</PRE>
-
-and must be linked explicitly with the menus library using an
-<CODE>-lmenu</CODE> argument. Note that they must also link the
-<CODE>ncurses</CODE> library with <CODE>-lncurses</CODE>. Many linkers
-are two-pass and will accept either order, but it is still good practice
-to put <CODE>-lmenu</CODE> first and <CODE>-lncurses</CODE> second.
-
-<H2><A NAME="moverview">Overview of Menus</A></H2>
-
-The menus created by this library consist of collections of
-<DFN>items</DFN> 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. <P>
-
-The menu can then by <DFN>posted</DFN>, that is written to an
-associated window. Actually, each menu has two associated windows; a
-containing window in which the programmer can scribble titles or
-borders, and a subwindow 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 the collection of items. <P>
-
-A menu may also be <DFN>unposted</DFN> (that is, undisplayed), and finally
-freed to make the storage associated with it and its items available for
-re-use. <P>
-
-The general flow of control of a menu program looks like this:
-
-<OL>
-<LI>Initialize <CODE>curses</CODE>.
-<LI>Create the menu items, using <CODE>new_item()</CODE>.
-<LI>Create the menu using <CODE>new_menu()</CODE>.
-<LI>Post the menu using <CODE>menu_post()</CODE>.
-<LI>Refresh the screen.
-<LI>Process user requests via an input loop.
-<LI>Unpost the menu using <CODE>menu_unpost()</CODE>.
-<LI>Free the menu, using <CODE>free_menu()</CODE>.
-<LI>Free the items using <CODE>free_item()</CODE>.
-<LI>Terminate <CODE>curses</CODE>.
-</OL>
-
-<H2><A NAME="mselect">Selecting items</A></H2>
-
-Menus may be multi-valued or (the default) single-valued (see the manual
-page <CODE>menu_opts(3x)</CODE> to see how to change the default).
-Both types always have a <DFN>current item</DFN>. <P>
-
-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 <CODE>item_value()</CODE>
-predicate function. Your menu-processing code can use the function
-<CODE>set_item_value()</CODE> to flag the items in the select set. <P>
-
-Menu items can be made unselectable using <CODE>set_item_opts()</CODE>
-or <CODE>item_opts_off()</CODE> with the <CODE>O_SELECTABLE</CODE>
-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.
-
-<H2><A NAME="mdisplay">Menu Display</A></H2>
-
-The menu library calculates a minimum display size for your window, based
-on the following variables:
-
-<UL>
-<LI>The number and maximum length of the menu items
-<LI>Whether the O_ROWMAJOR option is enabled
-<LI>Whether display of descriptions is enabled
-<LI>Whatever menu format may have been set by the programmer
-<LI>The length of the menu mark string used for highlighting selected items
-</UL>
-
-The function <CODE>set_menu_format()</CODE> allows you to set the
-maximum size of the viewport or <DFN>menu page</DFN> that will be used
-to display menu items. You can retrieve any format associated with a
-menu with <CODE>menu_format()</CODE>. The default format is rows=16,
-columns=1. <P>
-
-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'
-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
-the first column. <P>
-
-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. <P>
-You can scroll it with requests to the menu driver, which will be described
-in the section on <A HREF="#minput">menu input handling</A>. <P>
-
-Each menu has a <DFN>mark string</DFN> used to visually tag selected items;
-see the <CODE>menu_mark(3x)</CODE> manual page for details. The mark
-string length also influences the menu page size. <P>
-
-The function <CODE>scale_menu()</CODE> 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 have reasonable defaults which the library allows you to
-change (see the <CODE>menu_attribs(3x)</CODE> manual page.
-
-<H2><A NAME="mwindows">Menu Windows</A></H2>
-
-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. <P>
-
-The outer or frame window is not otherwise touched by the menu
-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 erased at post/unpost time. The inner window or
-<DFN>subwindow</DFN> is where the current menu page is displayed. <P>
-
-By default, both windows are <CODE>stdscr</CODE>. You can set them with the
-functions in <CODE>menu_win(3x)</CODE>. <P>
-
-When you call <CODE>menu_post()</CODE>, you write the menu to its
-subwindow. When you call <CODE>menu_unpost()</CODE>, you erase the
-subwindow, However, neither of these actually modifies the screen. To
-do that, call <CODE>wrefresh()</CODE> or some equivalent.
-
-<H2><A NAME="minput">Processing Menu Input</A></H2>
-
-The main loop of your menu-processing code should call
-<CODE>menu_driver()</CODE> 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 output to <CODE>menu_driver()</CODE>. The menu command codes are
-fully documented in <CODE>menu_driver(3x)</CODE>. <P>
-
-The simplest group of command codes is <CODE>REQ_NEXT_ITEM</CODE>,
-<CODE>REQ_PREV_ITEM</CODE>, <CODE>REQ_FIRST_ITEM</CODE>,
-<CODE>REQ_LAST_ITEM</CODE>, <CODE>REQ_UP_ITEM</CODE>,
-<CODE>REQ_DOWN_ITEM</CODE>, <CODE>REQ_LEFT_ITEM</CODE>,
-<CODE>REQ_RIGHT_ITEM</CODE>. These change the currently selected
-item. These requests may cause scrolling of the menu page if it only
-partially displayed. <P>
-
-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 <CODE>REQ_SCR_DLINE</CODE>,
-<CODE>REQ_SCR_ULINE</CODE>, <CODE>REQ_SCR_DPAGE</CODE>, and
-<CODE>REQ_SCR_UPAGE</CODE>. <P>
-
-The <CODE>REQ_TOGGLE_ITEM</CODE> selects or deselects the current item.
-It is for use in multi-valued menus; if you use it with <CODE>O_ONEVALUE</CODE>
-on, you'll get an error return (<CODE>E_REQUEST_DENIED</CODE>). <P>
-
-Each menu has an associated pattern buffer. The
-<CODE>menu_driver()</CODE> 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 <CODE>menu_driver()</CODE> returns
-<CODE>E_NO_MATCH</CODE>. <P>
-
-Some requests change the pattern buffer directly:
-<CODE>REQ_CLEAR_PATTERN</CODE>, <CODE>REQ_BACK_PATTERN</CODE>,
-<CODE>REQ_NEXT_MATCH</CODE>, <CODE>REQ_PREV_MATCH</CODE>. The latter
-two are useful when pattern buffer input matches more than one item
-in a multi-valued menu. <P>
-
-Each successful scroll or item navigation request clears the pattern
-buffer. It is also possible to set the pattern buffer explicitly
-with <CODE>set_menu_pattern()</CODE>. <P>
-
-Finally, menu driver requests above the constant <CODE>MAX_COMMAND</CODE>
-are considered application-specific commands. The <CODE>menu_driver()</CODE>
-code ignores them and returns <CODE>E_UNKNOWN_COMMAND</CODE>.
-
-<H2><A NAME="mmisc">Miscellaneous Other Features</A></H2>
-
-Various menu options can affect the processing and visual appearance
-and input processing of menus. See <CODE>menu_opts(3x) for
-details.</CODE> <P>
-
-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
-<CODE>mitem_current(3x)</CODE>.
-
-If your application needs to change the menu subwindow cursor for
-any reason, <CODE>pos_menu_cursor()</CODE> will restore it to the
-correct location for continuing menu driver processing. <P>
-
-It is possible to set hooks to be called at menu initialization and
-wrapup time, and whenever the selected item changes. See
-<CODE>menu_hook(3x)</CODE>. <P>
-
-Each item, and each menu, has an associated user pointer on which you
-can hang application data. See <CODE>mitem_userptr(3x)</CODE> and
-<CODE>menu_userptr(3x)</CODE>.
-
-<H1><A NAME="form">The Forms Library</A></H1>
-
-The <CODE>form</CODE> library is a curses extension that supports easy
-programming of on-screen forms for data entry and program control. <P>
-
-The <CODE>form</CODE> library first appeared in AT&amp;T System V. The
-version documented here is the <CODE>form</CODE> code distributed
-with <CODE>ncurses</CODE>.
-
-<H2><A NAME="fcompile">Compiling With the form Library</A></H2>
-
-Your form-using modules must import the form library declarations with
-
-<PRE>
- #include &lt;form.h&gt;
-</PRE>
-
-and must be linked explicitly with the forms library using an
-<CODE>-lform</CODE> argument. Note that they must also link the
-<CODE>ncurses</CODE> library with <CODE>-lncurses</CODE>. Many linkers
-are two-pass and will accept either order, but it is still good practice
-to put <CODE>-lform</CODE> first and <CODE>-lncurses</CODE> second.
-
-<H2><A NAME="foverview">Overview of Forms</A></H2>
-
-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. <P>
-To make forms, you create groups of fields and connect them with form
-frame objects; the form library makes this relatively simple. <P>
-
-Once defined, a form can be <DFN>posted</DFN>, 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. <P>
-
-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 <CODE>curses</CODE>
-
-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. <P>
-
-Once its transaction is completed (or aborted), a form may be
-<DFN>unposted</DFN> (that is, undisplayed), and finally freed to make
-the storage associated with it and its items available for re-use. <P>
-
-The general flow of control of a form program looks like this:
-
-<OL>
-<LI>Initialize <CODE>curses</CODE>.
-<LI>Create the form fields, using <CODE>new_field()</CODE>.
-<LI>Create the form using <CODE>new_form()</CODE>.
-<LI>Post the form using <CODE>form_post()</CODE>.
-<LI>Refresh the screen.
-<LI>Process user requests via an input loop.
-<LI>Unpost the form using <CODE>form_unpost()</CODE>.
-<LI>Free the form, using <CODE>free_form()</CODE>.
-<LI>Free the fields using <CODE>free_field()</CODE>.
-<LI>Terminate <CODE>curses</CODE>.
-</OL>
-
-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 <A HREF="#menu">menu library</A>
-wherever possible. <P>
-
-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.
-
-<H2><A NAME="fcreate">Creating and Freeing Fields and Forms</A></H2>
-
-The basic function for creating fields is <CODE>new_field()</CODE>:
-
-<PRE>
-FIELD *new_field(int height, int width, /* new field size */
- int top, int left, /* upper left corner */
- int offscreen, /* number of offscreen rows */
- int nbuf); /* number of working buffers */
-</PRE>
-
-Menu items always occupy a single row, but forms fields may have
-multiple rows. So <CODE>new_field()</CODE> requires you to specify a
-width and height (the first two arguments, which mist both be greater
-than zero). <P>
-
-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 <CODE>stdscr</CODE> by default but
-need not be <CODE>stdscr</CODE> if you've done an explicit
-<CODE>set_form_window()</CODE> call. <P>
-
-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 <CODE>offscreen</CODE> argument was initially zero. <P>
-
-The forms library allocates one working buffer per field; the size of
-each buffer is <CODE>((height + offscreen)*width + 1</CODE>, 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 application can use them for its own purposes.
-
-<PRE>
-FIELD *dup_field(FIELD *field, /* field to copy */
- int top, int left); /* location of new copy */
-</PRE>
-
-The function <CODE>dup_field()</CODE> duplicates an existing field at a
-new location. Size and buffering information are copied; some
-attribute flags and status bits are not (see the
-<CODE>form_field_new(3X)</CODE> for details).
-
-<PRE>
-FIELD *link_field(FIELD *field, /* field to copy */
- int top, int left); /* location of new copy */
-</PRE>
-
-The function <CODE>link_field()</CODE> also duplicates an existing field
-at a new location. The difference from <CODE>dup_field()</CODE> is that
-it arranges for the new field's buffer to be shared with the old one. <P>
-
-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
-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. <P>
-
-As with duplicated fields, linked fields have attribute bits separate
-from the original. <P>
-
-As you might guess, all these field-allocations return <CODE>NULL</CODE> if
-the field allocation is not possible due to an out-of-memory error or
-out-of-bounds arguments. <P>
-
-To connect fields to a form, use
-
-<PRE>
-FORM *new_form(FIELD **fields);
-</PRE>
-
-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). <P>
-
-Note that <CODE>new_field()</CODE> does <EM>not</EM> 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. <P>
-
-The functions <CODE>free_field()</CODE> and <CODE>free_form</CODE> 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.
-
-<H2><A NAME="fattributes">Fetching and Changing Field Attributes</A></H2>
-
-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 <CODE>O_STATIC</CODE> bit)
-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. <P>
-
-When a field is created, the attributes not specified by the
-<CODE>new_field</CODE> 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.
-
-<H3><A NAME="fsizes">Fetching Size and Location Data</A></H3>
-
-You can retrieve field sizes and locations through:
-
-<PRE>
-int field_info(FIELD *field, /* field from which to fetch */
- int *height, *int width, /* field size */
- int *top, int *left, /* upper left corner */
- int *offscreen, /* number of offscreen rows */
- int *nbuf); /* number of working buffers */
-</PRE>
-
-This function is a sort of inverse of <CODE>new_field()</CODE>; instead of
-setting size and location attributes of a new field, it fetches them
-from an existing one.
-
-<H3><A NAME="flocation">Changing the Field Location</A></H3>
-
-It is possible to move a field's location on the screen:
-
-<PRE>
-int move_field(FIELD *field, /* field to alter */
- int top, int left); /* new upper-left corner */
-</PRE>
-
-You can, of course. query the current location through <CODE>field_info()</CODE>.
-
-<H3><A NAME="fjust">The Justification Attribute</A></H3>
-
-One-line fields may be unjustified, justified right, justified left,
-or centered. Here is how you manipulate this attribute:
-
-<PRE>
-int set_field_just(FIELD *field, /* field to alter */
- int justmode); /* mode to set */
-
-int field_just(FIELD *field); /* fetch mode of field */
-</PRE>
-
-The mode values accepted and returned by this functions are
-preprocessor macros <CODE>NO_JUSTIFICATION</CODE>, <CODE>JUSTIFY_RIGHT</CODE>,
-<CODE>JUSTIFY_LEFT</CODE>, or <CODE>JUSTIFY_CENTER</CODE>.
-
-<H3><A NAME="fdispatts">Field Display Attributes</A></H3>
-
-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. <P>
-
-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.
-
-<PRE>
-int set_field_fore(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_fore(FIELD *field); /* field to query */
-
-int set_field_back(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_back(FIELD *field); /* field to query */
-
-int set_field_pad(FIELD *field, /* field to alter */
- int pad); /* pad character to set */
-
-chtype field_pad(FIELD *field);
-
-int set_new_page(FIELD *field, /* field to alter */
- int flag); /* TRUE to force new page */
-
-chtype new_page(FIELD *field); /* field to query */
-</PRE>
-
-The attributes set and returned by the first four functions are normal
-<CODE>curses(3x)</CODE> display attribute values (<CODE>A_STANDOUT</CODE>,
-<CODE>A_BOLD</CODE>, <CODE>A_REVERSE</CODE> etc).
-
-The page bit of a field controls whether it is displayed at the start of
-a new form screen.
-
-<H3><A NAME="foptions">Field Option Bits</A></H3>
-
-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:
-
-<PRE>
-int set_field_opts(FIELD *field, /* field to alter */
- int attr); /* attribute to set */
-
-int field_opts_on(FIELD *field, /* field to alter */
- int attr); /* attributes to turn on */
-
-int field_opts_off(FIELD *field, /* field to alter */
- int attr); /* attributes to turn off */
-
-int field_opts(FIELD *field); /* field to query */
-</PRE>
-
-By default, all options are on. Here are the available option bits:
-<DL>
-<DT> O_VISIBLE
-<DD> 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.
-<DT> O_ACTIVE
-<DD> 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.
-<DT> O_PUBLIC
-<DD> 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.
-<DT> O_EDIT
-<DD> Controls whether the field's data can be modified. When this option is
-off, all editing requests except <CODE>REQ_PREV_CHOICE</CODE> and
-<CODE>REQ_NEXT_CHOICE</CODE> will fail. Such read-only fields may be useful for
-help messages.
-<DT> O_WRAP
-<DD> Controls word-wrapping in multi-line fields. Normally, when any
-character of a (blank-separated) word reaches the end of the current line, the
-entire word is wrapped to the next line (assuming there is one). When this
-option is off, the word will be split across the line break.
-<DT> O_BLANK
-<DD> 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).
-<DT> O_AUTOSKIP
-<DD> Controls automatic skip to next field when this one fills. Normally,
-when the forms user tries to type more data into a field than will fit,
-the editing location jumps to next field. When this option is off, the
-user's cursor will hang at the end of the field. This option is ignored
-in dynamic fields that have not reached their size limit.
-<DT> O_NULLOK
-<DD> Controls whether <A HREF="#fvalidation">validation</A> 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.
-<DT> O_PASSOK
-<DD> Controls whether validation occurs on every exit, or only after
-the field is modified. Normally the latter is true. Setting O_PASSOK
-may be useful if your field's validation function may change during
-forms processing.
-<DT> O_STATIC
-<DD> Controls whether the field is fixed to its initial dimensions. If you
-turn this off, the field becomes <A HREF="#fdynamic">dynamic</A> and will
-stretch to fit entered data.
-</DL>
-
-A field's options cannot be changed while the field is currently selected.
-However, options may be changed on posted fields that are not current. <P>
-
-The option values are bit-masks and can be composed with logical-or in
-the obvious way.
-
-<H2><A NAME="fstatus">Field Status</A></H2>
-
-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 can
-be queried and set directly:
-
-<PRE>
-int set_field_status(FIELD *field, /* field to alter */
- int status); /* mode to set */
-
-int field_status(FIELD *field); /* fetch mode of field */
-</PRE>
-
-Setting this flag under program control can be useful if you use the same
-form repeatedly, looking for modified fields each time. <P>
-
-Calling <CODE>field_status()</CODE> on a field not currently selected
-for input will return a correct value. Calling <CODE>field_status()</CODE> 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
-<CODE>field_status()</CODE> 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 <CODE>REQ_VALIDATION</CODE> request has been
-processed by the forms driver.
-
-<H2><A NAME="fuser">Field User Pointer</A></H2>
-
-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:
-
-<PRE>
-int set_field_userptr(FIELD *field, /* field to alter */
- char *userptr); /* mode to set */
-
-char *field_userptr(FIELD *field); /* fetch mode of field */
-</PRE>
-
-(Properly, this user pointer field ought to have <CODE>(void *)</CODE> type.
-The <CODE>(char *)</CODE> type is retained for System V compatibility.) <P>
-
-It is valid to set the user pointer of the default field (with a
-<CODE>set_field_userptr()</CODE> 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.
-
-<H2><A NAME="fdynamic">Variable-Sized Fields</A></H2>
-
-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
-<DFN>dynamic</DFN> 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. <P>
-
-A one-line dynamic field will have a fixed height (1) but variable
-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
-dimensioned and located. <P>
-
-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:
-
-<PRE>
-int set_max_field(FIELD *field, /* field to alter (may not be NULL) */
- int max_size); /* upper limit on field size */
-</PRE>
-
-If the field is one-line, <CODE>max_size</CODE> 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 whether
-or not the O_STATIC bit is on, but has no effect until it is. <P>
-
-The following properties of a field change when it becomes dynamic:
-
-<UL>
-<LI>If there is no growth limit, there is no final position of the field;
-therefore <CODE>O_AUTOSKIP</CODE> and <CODE>O_NL_OVERLOAD</CODE> are ignored.
-<LI>Field justification will be ignored (though whatever justification is
-set up will be retained internally and can be queried).
-<LI>The <CODE>dup_field()</CODE> and <CODE>link_field()</CODE> calls copy
-dynamic-buffer sizes. If the <CODE>O_STATIC</CODE> option is set on one of a
-collection of links, buffer resizing will occur only when the field is
-edited through that link.
-<LI>The call <CODE>field_info()</CODE> will retrieve the original static size of
-the field; use <CODE>dynamic_field_info()</CODE> to get the actual dynamic size.
-</UL>
-
-<H2><A NAME="fvalidation">Field Validation</A></H2>
-
-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. <P>
-
-A field's validation check (if any) is not called when
-<CODE>set_field_buffer()</CODE> modifies the input buffer, nor when that buffer
-is changed through a linked field. <P>
-
-The <CODE>form</CODE> 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:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- FIELDTYPE *ftype, /* type to associate */
- ...); /* additional arguments*/
-
-FIELDTYPE *field_type(FIELD *field); /* field to query */
-</PRE>
-
-The validation type of a field is considered an attribute of the field. As
-with other field attributes, Also, doing <CODE>set_field_type()</CODE> with a
-<CODE>NULL</CODE> field default will change the system default for validation of
-newly-created fields. <P>
-
-Here are the pre-defined validation types:
-
-<H3><A NAME="ftype_alpha">TYPE_ALPHA</A></H3>
-
-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:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ALPHA, /* type to associate */
- int width); /* maximum width of field */
-</PRE>
-
-The <CODE>width</CODE> 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 field completion optional.
-
-<H3><A NAME="ftype_alnum">TYPE_ALNUM</A></H3>
-
-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:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ALNUM, /* type to associate */
- int width); /* maximum width of field */
-</PRE>
-
-The <CODE>width</CODE> 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.
-
-<H3><A NAME="ftype_enum">TYPE_ENUM</A></H3>
-
-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:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ENUM, /* type to associate */
- char **valuelist; /* list of possible values */
- int checkcase; /* case-sensitive? */
- int checkunique); /* must specify uniquely? */
-</PRE>
-
-The <CODE>valuelist</CODE> parameter must point at a NULL-terminated list of
-valid strings. The <CODE>checkcase</CODE> argument, if true, makes comparison
-with the string case-sensitive. <P>
-
-When the user exits a TYPE_ENUM field, the validation procedure tries to
-complete the data in the buffer to a valid entry. If a complete choice string
-has been entered, it is of course valid. But it is also possible to enter a
-prefix of a valid string and have it completed for you. <P>
-
-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 <CODE>checkunique</CODE> argument, if true, requires prefix
-matches to be unique in order to be valid. <P>
-
-The <CODE>REQ_NEXT_CHOICE</CODE> and <CODE>REQ_PREV_CHOICE</CODE> input requests
-can be particularly useful with these fields.
-
-<H3><A NAME="ftype_integer">TYPE_INTEGER</A></H3>
-
-This field type accepts an integer. It is set up as follows:
-
-<PRE>
-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 */
-</PRE>
-
-Valid characters consist of an optional leading minus and digits.
-The range check is performed on exit. If the range maximum is less
-than or equal to the minimum, the range is ignored. <P>
-
-If the value passes its range check, it is padded with as many leading
-zero digits as necessary to meet the padding argument. <P>
-
-A <CODE>TYPE_INTEGER</CODE> value buffer can conveniently be interpreted
-with the C library function <CODE>atoi(3)</CODE>.
-
-<H3><A NAME="ftype_numeric">TYPE_NUMERIC</A></H3>
-
-This field type accepts a decimal number. It is set up as follows:
-
-<PRE>
-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 */
-</PRE>
-
-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. <P>
-
-If the value passes its range check, it is padded with as many trailing
-zero digits as necessary to meet the padding argument. <P>
-
-A <CODE>TYPE_NUMERIC</CODE> value buffer can conveniently be interpreted
-with the C library function <CODE>atof(3)</CODE>.
-
-<H3><A NAME="ftype_regexp">TYPE_REGEXP</A></H3>
-
-This field type accepts data matching a regular expression. It is set up
-as follows:
-
-<PRE>
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_REGEXP, /* type to associate */
- char *regexp); /* expression to match */
-</PRE>
-
-The syntax for regular expressions is that of <CODE>regcomp(3)</CODE>.
-The check for regular-expression match is performed on exit.
-
-<H2><A NAME="fbuffer">Direct Field Buffer Manipulation</A></H2>
-
-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 each
-field buffer. You can find this out with:
-
-<PRE>
-char *field_buffer(FIELD *field, /* field to query */
- int bufindex); /* number of buffer to query */
-</PRE>
-
-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:
-
-<PRE>
-int set_field_buffer(FIELD *field, /* field to alter */
- int bufindex, /* number of buffer to alter */
- char *value); /* string value to set */
-</PRE>
-
-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. <P>
-
-Calling <CODE>field_buffer()</CODE> with a null field pointer will raise an
-error. Calling <CODE>field_buffer()</CODE> on a field not currently selected
-for input will return a correct value. Calling <CODE>field_buffer()</CODE> 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 <CODE>field_buffer()</CODE> 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 <CODE>REQ_VALIDATION</CODE> request has been processed
-by the forms driver.
-
-<H2><A NAME="formattrs">Attributes of Forms</A></H2>
-
-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 <CODE>NULL</CODE>. <P>
-
-The principal attribute of a form is its field list. You can query
-and change this list with:
-
-<PRE>
-int set_form_fields(FORM *form, /* form to alter */
- FIELD **fields); /* fields to connect */
-
-char *form_fields(FORM *form); /* fetch fields of form */
-
-int field_count(FORM *form); /* count connect fields */
-</PRE>
-
-The second argument of <CODE>set_form_fields()</CODE> may be a
-NULL-terminated field pointer array like the one required by
-<CODE>new_form()</CODE>. 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 connected. <P>
-
-It may also be null, in which case the old fields are disconnected
-(and not freed) but no new ones are connected. <P>
-
-The <CODE>field_count()</CODE> function simply counts the number of fields
-connected to a given from. It returns -1 if the form-pointer argument
-is NULL.
-
-<H2><A NAME="fdisplay">Control of Form Display</A></H2>
-
-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
-<CODE>stdscr</CODE>. <P>
-
-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
-managed by <A HREF="#panels">panels</A>. <P>
-
-The two windows associated with each form have the same functions as
-their analogues in the <A HREF="#menu">menu library</A>. Both these
-windows are painted when the form is posted and erased when the form
-is unposted. <P>
-
-The outer or frame window is not otherwise touched by the form
-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 erased at post/unpost time. The inner window or subwindow
-is where the current form page is actually displayed. <P>
-
-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:
-
-<PRE>
-int scale_form(FORM *form, /* form to query */
- int *rows, /* form rows */
- int *cols); /* form cols */
-</PRE>
-
-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 of windows, then use one of these functions:
-
-<PRE>
-int set_form_win(FORM *form, /* form to alter */
- WINDOW *win); /* frame window to connect */
-
-WINDOW *form_win(FORM *form); /* fetch frame window of form */
-
-int set_form_sub(FORM *form, /* form to alter */
- WINDOW *win); /* form subwindow to connect */
-
-WINDOW *form_sub(FORM *form); /* fetch form subwindow of form */
-</PRE>
-
-Note that curses operations, including <CODE>refresh()</CODE>, on the form,
-should be done on the frame window, not the form subwindow. <P>
-
-It is possible to check from your application whether all of a
-scrollable field is actually displayed within the menu subwindow. Use
-these functions:
-
-<PRE>
-int data_ahead(FORM *form); /* form to be queried */
-
-int data_behind(FORM *form); /* form to be queried */
-</PRE>
-
-The function <CODE>data_ahead()</CODE> 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. <P>
-
-The function <CODE>data_behind()</CODE> returns TRUE if the first (upper
-left hand) character position is off-screen (not being displayed). <P>
-
-Finally, there is a function to restore the form window's cursor to the
-value expected by the forms driver:
-
-<PRE>
-int pos_form_cursor(FORM *) /* form to be queried */
-</PRE>
-
-If your application changes the form window cursor, call this function before
-handing control back to the forms driver in order to re-synchronize it.
-
-<H2><A NAME="fdriver">Input Processing in the Forms Driver</A></H2>
-
-The function <CODE>form_driver()</CODE> handles virtualized input requests
-for form navigation, editing, and validation requests, just as
-<CODE>menu_driver</CODE> does for menus (see the section on <A
-HREF="#minput">menu input handling</A>).
-
-<PRE>
-int form_driver(FORM *form, /* form to pass input to */
- int request); /* form request code */
-</PRE>
-
-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. <P>
-
-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.
-
-<H3><A NAME="fpage">Page Navigation Requests</A></H3>
-
-These requests cause page-level moves through the form,
-triggering display of a new form screen.
-
-<DL>
-<DT> <CODE>REQ_NEXT_PAGE</CODE>
-<DD> Move to the next form page.
-<DT> <CODE>REQ_PREV_PAGE</CODE>
-<DD> Move to the previous form page.
-<DT> <CODE>REQ_FIRST_PAGE</CODE>
-<DD> Move to the first form page.
-<DT> <CODE>REQ_LAST_PAGE</CODE>
-<DD> Move to the last form page.
-</DL>
-
-These requests treat the list as cyclic; that is, <CODE>REQ_NEXT_PAGE</CODE>
-from the last page goes to the first, and <CODE>REQ_PREV_PAGE</CODE> from
-the first page goes to the last.
-
-<H3><A NAME="#ffield">Inter-Field Navigation Requests</A></H3>
-
-These requests handle navigation between fields on the same page.
-
-<DL>
-<DT> <CODE>REQ_NEXT_FIELD</CODE>
-<DD> Move to next field.
-<DT> <CODE>REQ_PREV_FIELD</CODE>
-<DD> Move to previous field.
-<DT> <CODE>REQ_FIRST_FIELD</CODE>
-<DD> Move to the first field.
-<DT> <CODE>REQ_LAST_FIELD</CODE>
-<DD> Move to the last field.
-<DT> <CODE>REQ_SNEXT_FIELD</CODE>
-<DD> Move to sorted next field.
-<DT> <CODE>REQ_SPREV_FIELD</CODE>
-<DD> Move to sorted previous field.
-<DT> <CODE>REQ_SFIRST_FIELD</CODE>
-<DD> Move to the sorted first field.
-<DT> <CODE>REQ_SLAST_FIELD</CODE>
-<DD> Move to the sorted last field.
-<DT> <CODE>REQ_LEFT_FIELD</CODE>
-<DD> Move left to field.
-<DT> <CODE>REQ_RIGHT_FIELD</CODE>
-<DD> Move right to field.
-<DT> <CODE>REQ_UP_FIELD</CODE>
-<DD> Move up to field.
-<DT> <CODE>REQ_DOWN_FIELD</CODE>
-<DD> Move down to field.
-</DL>
-
-These requests treat the list of fields on a page as cyclic; that is,
-<CODE>REQ_NEXT_FIELD</CODE> from the last field goes to the first, and
-<CODE>REQ_PREV_FIELD</CODE> from the first field goes to the last. The
-order of the fields for these (and the <CODE>REQ_FIRST_FIELD</CODE> and
-<CODE>REQ_LAST_FIELD</CODE> requests) is simply the order of the field
-pointers in the form array (as set up by <CODE>new_form()</CODE> or
-<CODE>set_form_fields()</CODE> <P>
-
-It is also possible to traverse the fields as if they had been sorted in
-screen-position order, so the sequence goes left-to-right and top-to-bottom.
-To do this, use the second group of four sorted-movement requests. <P>
-
-Finally, it is possible to move between fields using visual directions up,
-down, right, and left. To accomplish this, use the third group of four
-requests. Note, however, that the position of a form for purposes of these
-requests is its upper-left corner. <P>
-
-For example, suppose you have a multi-line field B, and two
-single-line fields A and C on the same line with B, with A to the left
-of B and C to the right of B. A <CODE>REQ_MOVE_RIGHT</CODE> from A will
-go to B only if A, B, and C <EM>all</EM> share the same first line;
-otherwise it will skip over B to C.
-
-<H3><A NAME="#fifield">Intra-Field Navigation Requests</A></H3>
-
-These requests drive movement of the edit cursor within the currently
-selected field.
-
-<DL>
-<DT> <CODE>REQ_NEXT_CHAR</CODE>
-<DD> Move to next character.
-<DT> <CODE>REQ_PREV_CHAR</CODE>
-<DD> Move to previous character.
-<DT> <CODE>REQ_NEXT_LINE</CODE>
-<DD> Move to next line.
-<DT> <CODE>REQ_PREV_LINE</CODE>
-<DD> Move to previous line.
-<DT> <CODE>REQ_NEXT_WORD</CODE>
-<DD> Move to next word.
-<DT> <CODE>REQ_PREV_WORD</CODE>
-<DD> Move to previous word.
-<DT> <CODE>REQ_BEG_FIELD</CODE>
-<DD> Move to beginning of field.
-<DT> <CODE>REQ_END_FIELD</CODE>
-<DD> Move to end of field.
-<DT> <CODE>REQ_BEG_LINE</CODE>
-<DD> Move to beginning of line.
-<DT> <CODE>REQ_END_LINE</CODE>
-<DD> Move to end of line.
-<DT> <CODE>REQ_LEFT_CHAR</CODE>
-<DD> Move left in field.
-<DT> <CODE>REQ_RIGHT_CHAR</CODE>
-<DD> Move right in field.
-<DT> <CODE>REQ_UP_CHAR</CODE>
-<DD> Move up in field.
-<DT> <CODE>REQ_DOWN_CHAR</CODE>
-<DD> Move down in field.
-</DL>
-
-Each <EM>word</EM> 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.
-
-<H3><A NAME="fscroll">Scrolling Requests</A></H3>
-
-Fields that are dynamic and have grown and fields explicitly created
-with offscreen rows are scrollable. One-line fields scroll horizontally;
-multi-line fields scroll vertically. Most scrolling is triggered by
-editing and intra-field movement (the library scrolls the field to keep the
-cursor visible). It is possible to explicitly request scrolling with the
-following requests:
-
-<DL>
-<DT> <CODE>REQ_SCR_FLINE</CODE>
-<DD> Scroll vertically forward a line.
-<DT> <CODE>REQ_SCR_BLINE</CODE>
-<DD> Scroll vertically backward a line.
-<DT> <CODE>REQ_SCR_FPAGE</CODE>
-<DD> Scroll vertically forward a page.
-<DT> <CODE>REQ_SCR_BPAGE</CODE>
-<DD> Scroll vertically backward a page.
-<DT> <CODE>REQ_SCR_FHPAGE</CODE>
-<DD> Scroll vertically forward half a page.
-<DT> <CODE>REQ_SCR_BHPAGE</CODE>
-<DD> Scroll vertically backward half a page.
-<DT> <CODE>REQ_SCR_FCHAR</CODE>
-<DD> Scroll horizontally forward a character.
-<DT> <CODE>REQ_SCR_BCHAR</CODE>
-<DD> Scroll horizontally backward a character.
-<DT> <CODE>REQ_SCR_HFLINE</CODE>
-<DD> Scroll horizontally one field width forward.
-<DT> <CODE>REQ_SCR_HBLINE</CODE>
-<DD> Scroll horizontally one field width backward.
-<DT> <CODE>REQ_SCR_HFHALF</CODE>
-<DD> Scroll horizontally one half field width forward.
-<DT> <CODE>REQ_SCR_HBHALF</CODE>
-<DD> Scroll horizontally one half field width backward.
-</DL>
-
-For scrolling purposes, a <EM>page</EM> of a field is the height
-of its visible part.
-
-<H3><A NAME="fedit">Editing Requests</A></H3>
-
-When you pass the forms driver an ASCII character, it is treated as a
-request to add the character to the field's data buffer. Whether this
-is an insertion or a replacement depends on the field's edit mode
-(insertion is the default. <P>
-
-The following requests support editing the field and changing the edit
-mode:
-
-<DL>
-<DT> <CODE>REQ_INS_MODE</CODE>
-<DD> Set insertion mode.
-<DT> <CODE>REQ_OVL_MODE</CODE>
-<DD> Set overlay mode.
-<DT> <CODE>REQ_NEW_LINE</CODE>
-<DD> New line request (see below for explanation).
-<DT> <CODE>REQ_INS_CHAR</CODE>
-<DD> Insert space at character location.
-<DT> <CODE>REQ_INS_LINE</CODE>
-<DD> Insert blank line at character location.
-<DT> <CODE>REQ_DEL_CHAR</CODE>
-<DD> Delete character at cursor.
-<DT> <CODE>REQ_DEL_PREV</CODE>
-<DD> Delete previous word at cursor.
-<DT> <CODE>REQ_DEL_LINE</CODE>
-<DD> Delete line at cursor.
-<DT> <CODE>REQ_DEL_WORD</CODE>
-<DD> Delete word at cursor.
-<DT> <CODE>REQ_CLR_EOL</CODE>
-<DD> Clear to end of line.
-<DT> <CODE>REQ_CLR_EOF</CODE>
-<DD> Clear to end of field.
-<DT> <CODE>REQ_CLEAR_FIELD</CODE>
-<DD> Clear entire field.
-</DL>
-
-The behavior of the <CODE>REQ_NEW_LINE</CODE> and <CODE>REQ_DEL_PREV</CODE> requests
-is complicated and partly controlled by a pair of forms options.
-The special cases are triggered when the cursor is at the beginning of
-a field, or on the last line of the field. <P>
-
-First, we consider <CODE>REQ_NEW_LINE</CODE>: <P>
-
-The normal behavior of <CODE>REQ_NEW_LINE</CODE> in insert mode is to break the
-current line at the position of the edit cursor, inserting the portion of
-the current line after the cursor as a new line following the current
-and moving the cursor to the beginning of that new line (you may think
-of this as inserting a newline in the field buffer). <P>
-
-The normal behavior of <CODE>REQ_NEW_LINE</CODE> in overlay mode is to clear the
-current line from the position of the edit cursor to end of line.
-The cursor is then moved to the beginning of the next line. <P>
-
-However, <CODE>REQ_NEW_LINE</CODE> at the beginning of a field, or on the
-last line of a field, instead does a <CODE>REQ_NEXT_FIELD</CODE>.
-<CODE>O_NL_OVERLOAD</CODE> option is off, this special action is
-disabled. <P>
-
-Now, let us consider <CODE>REQ_DEL_PREV</CODE>: <P>
-
-The normal behavior of <CODE>REQ_DEL_PREV</CODE> is to delete the previous
-character. If insert mode is on, and the cursor is at the start of a
-line, and the text on that line will fit on the previous one, it
-instead appends the contents of the current line to the previous one
-and deletes the current line (you may think of this as deleting a
-newline from the field buffer). <P>
-
-However, <CODE>REQ_DEL_PREV</CODE> at the beginning of a field is instead
-treated as a <CODE>REQ_PREV_FIELD</CODE>. <P> If the
-<CODE>O_BS_OVERLOAD</CODE> option is off, this special action is
-disabled and the forms driver just returns <CODE>E_REQUEST_DENIED</CODE>. <P>
-
-See <A HREF="#frmoptions">Form Options</A> for discussion of how to set
-and clear the overload options.
-
-<H3><A NAME="forder">Order Requests</A></H3>
-
-If the type of your field is ordered, and has associated functions
-for getting the next and previous values of the type from a given value,
-there are requests that can fetch that value into the field buffer:
-
-<DL>
-<DT> <CODE>REQ_NEXT_CHOICE</CODE>
-<DD> Place the successor value of the current value in the buffer.
-<DT> <CODE>REQ_PREV_CHOICE</CODE>
-<DD> Place the predecessor value of the current value in the buffer.
-</DL>
-
-Of the built-in field types, only <CODE>TYPE_ENUM</CODE> has built-in successor
-and predecessor functions. When you define a field type of your own
-(see <A HREF="#fcustom">Custom Validation Types</A>), you can associate
-our own ordering functions.
-
-<H3><A NAME="fappcmds">Application Commands</A></H3>
-
-Form requests are represented as integers above the <CODE>curses</CODE> value
-greater than <CODE>KEY_MAX</CODE> and less than or equal to the constant
-<CODE>MAX_COMMAND</CODE>. If your input-virtualization routine returns a
-value above <CODE>MAX_COMMAND</CODE>, the forms driver will ignore it.
-
-<H2><A NAME="fhooks">Field Change Hooks</A></H2>
-
-It is possible to set function hooks to be executed whenever the
-current field or form changes. Here are the functions that support this:
-
-<PRE>
-typedef void (*HOOK)(); /* pointer to function returning void */
-
-int set_form_init(FORM *form, /* form to alter */
- HOOK hook); /* initialization hook */
-
-HOOK form_init(FORM *form); /* form to query */
-
-int set_form_term(FORM *form, /* form to alter */
- HOOK hook); /* termination hook */
-
-HOOK form_term(FORM *form); /* form to query */
-
-int set_field_init(FORM *form, /* form to alter */
- HOOK hook); /* initialization hook */
-
-HOOK field_init(FORM *form); /* form to query */
-
-int set_field_term(FORM *form, /* form to alter */
- HOOK hook); /* termination hook */
-
-HOOK field_term(FORM *form); /* form to query */
-</PRE>
-
-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
-of the hook call.
-
-<DL>
-<DT> form_init
-<DD> This hook is called when the form is posted; also, just after
-each page change operation.
-<DT> field_init
-<DD> This hook is called when the form is posted; also, just after
-each field change
-<DT> field_term
-<DD> 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.
-<DT> form_term
-<DD> This hook is called when the form is unposted; also, just before
-each page change operation.
-</DL>
-
-Calls to these hooks may be triggered
-<OL>
-<LI>When user editing requests are processed by the forms driver
-<LI>When the current page is changed by <CODE>set_current_field()</CODE> call
-<LI>When the current field is changed by a <CODE>set_form_page()</CODE> call
-</OL>
-
-See <A NAME="ffocus">Field Change Commands</A> for discussion of the latter
-two cases. <P>
-
-You can set a default hook for all fields by passing one of the set functions
-a NULL first argument. <P>
-
-You can disable any of these hooks by (re)setting them to NULL, the default
-value.
-
-<H2><A HREF="#ffocus">Field Change Commands</A></H2>
-
-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:
-
-<PRE>
-int set_current_field(FORM *form, /* form to alter */
- FIELD *field); /* field to shift to */
-
-FIELD *current_field(FORM *form); /* form to query */
-
-int field_index(FORM *form, /* form to query */
- FIELD *field); /* field to get index of */
-</PRE>
-
-The function <CODE>field_index()</CODE> returns the index of the given field
-in the given form's field array (the array passed to <CODE>new_form()</CODE> or
-<CODE>set_form_fields()</CODE>). <P>
-
-The initial current field of a form is the first active field on the
-first page. The function <CODE>set_form_fields()</CODE> resets this.<P>
-
-It is also possible to move around by pages.
-
-<PRE>
-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 */
-</PRE>
-
-The initial page of a newly-created form is 0. The function
-<CODE>set_form_fields()</CODE> resets this.
-
-<H2><A NAME="frmoptions">Form Options</A></H2>
-
-Like fields, forms may have control option bits. They can be changed
-or queried with these functions:
-
-<PRE>
-int set_form_opts(FORM *form, /* form to alter */
- int attr); /* attribute to set */
-
-int form_opts_on(FORM *form, /* form to alter */
- int attr); /* attributes to turn on */
-
-int form_opts_off(FORM *form, /* form to alter */
- int attr); /* attributes to turn off */
-
-int form_opts(FORM *form); /* form to query */
-</PRE>
-
-By default, all options are on. Here are the available option bits:
-
-<DL>
-<DT> O_NL_OVERLOAD
-<DD> Enable overloading of <CODE>REQ_NEW_LINE</CODE> as described in <A
-NAME="fedit">Editing Requests</A>. 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
-<CODE>REQ_NEXT_FIELD</CODE> never arise.
-<DT> O_BS_OVERLOAD
-<DD> Enable overloading of <CODE>REQ_DEL_PREV</CODE> as described in
-<A NAME="fedit">Editing Requests</A>.
-</DL>
-
-The option values are bit-masks and can be composed with logical-or in
-the obvious way.
-
-<H2><A NAME="fcustom">Custom Validation Types</A></H2>
-
-The <CODE>form</CODE> library gives you the capability to define custom
-validation types of your own. Further, the optional additional arguments
-of <CODE>set_field_type</CODE> effectively allow you to parameterize validation
-types. Most of the complications in the validation-type interface have to
-do with the handling of the additional arguments within custom validation
-functions.
-
-<H3><A NAME="flinktypes">Union Types</A></H3>
-
-The simplest way to create a custom data type is to compose it from two
-preexisting ones:
-
-<PRE>
-FIELD *link_fieldtype(FIELDTYPE *type1,
- FIELDTYPE *type2);
-</PRE>
-
-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 <CODE>set_field_type()</CODE> call later requires arguments, the new
-composite type expects all arguments for the first type, than all arguments
-for the second. Order functions (see <A HREF="#forder">Order Requests</A>)
-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.
-
-<H3><A NAME="fnewtypes">New Field Types</A></H3>
-
-To create a field type from scratch, you need to specify one or both of the
-following things:
-
-<UL>
-<LI>A character-validation function, to check each character as it is entered.
-<LI>A field-validation function to be applied on exit from the field.
-</UL>
-
-Here's how you do that:
-<PRE>
-typedef int (*HOOK)(); /* pointer to function returning int */
-
-FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
- HOOK c_validate) /* character validator */
-
-
-int free_fieldtype(FIELDTYPE *ftype); /* type to free */
-</PRE>
-
-At least one of the arguments of <CODE>new_fieldtype()</CODE> must be
-non-NULL. The forms driver will automatically call the new type's
-validation functions at appropriate points in processing a field of
-the new type. <P>
-
-The function <CODE>free_fieldtype()</CODE> deallocates the argument
-fieldtype, freeing all storage associated with it. <P>
-
-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. <P>
-
-A character validator gets the character passed in as a first argument.
-It too should return TRUE if the character is valid, FALSE otherwise.
-
-<H3><A NAME="fcheckargs">Validation Function Arguments</A></H3>
-
-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 <EM>pile</EM>) built from any of the
-field-type-specific arguments passed to <CODE>set_field_type()</CODE>. If
-no such arguments are defined for the field type, this pile pointer
-argument will be NULL. <P>
-
-In order to arrange for such arguments to be passed to your validation
-functions, you must associate a small set of storage-management functions
-with the type. The forms driver will use these to synthesize a pile
-from the trailing arguments of each <CODE>set_field_type()</CODE> argument, and
-a pointer to the pile will be passed to the validation functions. <P>
-
-Here is how you make the association:
-
-<PRE>
-typedef char *(*PTRHOOK)(); /* pointer to function returning (char *) */
-typedef void (*VOIDHOOK)(); /* pointer to function returning void */
-
-int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
- PTRHOOK make_str, /* make structure from args */
- PTRHOOK copy_str, /* make copy of structure */
- VOIDHOOK free_str); /* free structure storage */
-</PRE>
-
-Here is how the storage-management hooks are used:
-
-<DL>
-<DT> <CODE>make_str</CODE>
-<DD> This function is called by <CODE>set_field_type()</CODE>. It gets one
-argument, a <CODE>va_list</CODE> of the type-specific arguments passed to
-<CODE>set_field_type()</CODE>. It is expected to return a pile pointer to a data
-structure that encapsulates those arguments.
-<DT> <CODE>copy_str</CODE>
-<DD> 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 the pile copy.
-<DT> <CODE>free_str</CODE>
-<DD> 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.
-</DL>
-
-The <CODE>make_str</CODE> and <CODE>copy_str</CODE> 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.
-
-<H3><A NAME="fcustorder">Order Functions For Custom Types</A></H3>
-
-Some custom field types are simply ordered in the same well-defined way
-that <CODE>TYPE_ENUM</CODE> is. For such types, it is possible to define
-successor and predecessor functions to support the <CODE>REQ_NEXT_CHOICE</CODE>
-and <CODE>REQ_PREV_CHOICE</CODE> requests. Here's how:
-
-<PRE>
-typedef int (*INTHOOK)(); /* pointer to function returning int */
-
-int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
- INTHOOK succ, /* get successor value */
- INTHOOK pred); /* get predecessor value */
-</PRE>
-
-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 <CODE>field_buffer()</CODE> to read the
-current value, and <CODE>set_field_buffer()</CODE> 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.
-
-<H3><A NAME="fcustprobs">Avoiding Problems</A></H3>
-
-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. <P>
-
-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 <CODE>ncurses</CODE> library has been specifically exempted from
-the package copyright to support this. <P>
-
-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.
-</BODY>
-</HTML>
diff --git a/ncurses-5.3/doc/ncurses-intro.doc b/ncurses-5.3/doc/ncurses-intro.doc
deleted file mode 100644
index 750777e..0000000
--- a/ncurses-5.3/doc/ncurses-intro.doc
+++ /dev/null
@@ -1,2505 +0,0 @@
-
- Writing Programs with NCURSES
-
- by Eric S. Raymond and Zeyd M. Ben-Halim
- updates since release 1.9.9e by Thomas Dickey
-
- Contents
-
- * Introduction
- + A Brief History of Curses
- + Scope of This Document
- + Terminology
- * The Curses Library
- + An Overview of Curses
- o Compiling Programs using Curses
- o Updating the Screen
- o Standard Windows and Function Naming Conventions
- o Variables
- + Using the Library
- o Starting up
- o Output
- o Input
- o Using Forms Characters
- o Character Attributes and Color
- o Mouse Interfacing
- o Finishing Up
- + Function Descriptions
- o Initialization and Wrapup
- o Causing Output to the Terminal
- o Low-Level Capability Access
- o Debugging
- + Hints, Tips, and Tricks
- o Some Notes of Caution
- o Temporarily Leaving ncurses Mode
- o Using ncurses under xterm
- o Handling Multiple Terminal Screens
- o Testing for Terminal Capabilities
- o Tuning for Speed
- o Special Features of ncurses
- + Compatibility with Older Versions
- o Refresh of Overlapping Windows
- o Background Erase
- + XSI Curses Conformance
- * The Panels Library
- + Compiling With the Panels Library
- + Overview of Panels
- + Panels, Input, and the Standard Screen
- + Hiding Panels
- + Miscellaneous Other Facilities
- * The Menu Library
- + Compiling with the menu Library
- + Overview of Menus
- + Selecting items
- + Menu Display
- + Menu Windows
- + Processing Menu Input
- + Miscellaneous Other Features
- * The Forms Library
- + Compiling with the forms Library
- + Overview of Forms
- + Creating and Freeing Fields and Forms
- + Fetching and Changing Field Attributes
- o Fetching Size and Location Data
- o Changing the Field Location
- o The Justification Attribute
- o Field Display Attributes
- o Field Option Bits
- o Field Status
- o Field User Pointer
- + Variable-Sized Fields
- + Field Validation
- o TYPE_ALPHA
- o TYPE_ALNUM
- o TYPE_ENUM
- o TYPE_INTEGER
- o TYPE_NUMERIC
- o TYPE_REGEXP
- + Direct Field Buffer Manipulation
- + Attributes of Forms
- + Control of Form Display
- + Input Processing in the Forms Driver
- o Page Navigation Requests
- o Inter-Field Navigation Requests
- o Intra-Field Navigation Requests
- o Scrolling Requests
- o Field Editing Requests
- o Order Requests
- o Application Commands
- + Field Change Hooks
- + Field Change Commands
- + Form Options
- + Custom Validation Types
- o Union Types
- o New Field Types
- o Validation Function Arguments
- o Order Functions For Custom Types
- o Avoiding Problems
- _________________________________________________________________
-
- Introduction
-
- 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
- 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
- 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
- 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 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
- using an X toolkit.
-
-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
- 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
- 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
- curses API with some clearly marked extensions. It includes the
- following System V curses features:
- * 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.
- * Support for pads (windows of larger than screen size on which the
- 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
- changes in attributes.
-
- 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.
-
- 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
- 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
- Foundation, which holds the copyright on ncurses. Contact the current
- 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
- 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
- construction and sequences of menus and fill-in forms.
-
-Terminology
-
- In this document, the following terminology is used with reasonable
- consistency:
-
- 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
- other windows on the physical screen.
-
- 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
- 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.
-
- The Curses Library
-
-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
- 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.
-
- 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
- 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
- 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()
- (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
- 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
-
- As hinted above, the routines can use several windows, but two are
- 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
- 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
- desired character as argument. To write to a different window. use the
- routine waddch() (for `w'indow-specific addch()) is provided. This
- convention of prepending function names with a `w' when they are to be
- applied to specific windows is consistent. The only routines which do
- 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
- arguments to the function. For example, the calls
- move(y, x);
- addch(ch);
-
- can be replaced by
- mvaddch(y, x, ch);
-
- and
- wmove(win, y, x);
- waddch(win, 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
- always the first parameter passed.
-
- Variables
-
- 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
-
- The curses.h also introduces some #define constants and types of
- general usefulness:
-
- bool
- boolean type, actually a `char' (e.g., bool doneit;)
-
- TRUE
- boolean `true' flag (1).
-
- FALSE
- boolean `false' flag (0).
-
- ERR
- error flag returned by routines on a failure (-1).
-
- OK
- error flag returned by routines when things go right.
-
-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
- function names and parameters as mentioned above.
-
- Here is a sample program to motivate the discussion:
-#include <curses.h>
-#include <signal.h>
-
-static void finish(int sig);
-
-int
-main(int argc, char *argv[])
-{
- int num = 0;
-
- /* initialize your non-curses data structures here */
-
- (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) echo(); /* echo input - in color */
-
- if (has_colors())
- {
- start_color();
-
- /*
- * Simple color assignment, often all we need. Color pair 0 cannot
- * be redefined. This example uses the same value for the color
- * pair as for the foreground color, though of course that is not
- * necessary:
- */
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_YELLOW, COLOR_BLACK);
- init_pair(4, COLOR_BLUE, COLOR_BLACK);
- init_pair(5, COLOR_CYAN, COLOR_BLACK);
- init_pair(6, COLOR_MAGENTA, COLOR_BLACK);
- init_pair(7, COLOR_WHITE, COLOR_BLACK);
- }
-
- for (;;)
- {
- int c = getch(); /* refresh, accept single keystroke of input */
- attrset(COLOR_PAIR(num % 8));
- num++;
-
- /* process the command keystroke */
- }
-
- finish(0); /* we're done */
-}
-
-static void finish(int sig)
-{
- endwin();
-
- /* do your non-curses wrapup here */
-
- exit(0);
-}
-
- 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
- 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
- cursor to the window's current (y, x) coordinates after updating it.
-
- You can create new windows of your own using the functions newwin(),
- 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
- window.
-
- 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
- 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
- things at once.
-
- The other output functions, such as addstr() and printw(), all call
- 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
- touchwin() is provided to make it look like the entire window has been
- changed, thus making refresh() check the whole subsection of the
- 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
- messed up.
-
- Input
-
- The complementary function to addch() is getch() which, if echo is
- 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,
- 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
- that can do scanf()(3)-style multi-field parsing on window input.
- These pseudo-line-oriented functions turn on echoing while they
- 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
- 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
-
- The addch() function (and some others, including box() and border())
- can accept some pseudo-character arguments which are specially defined
- by ncurses. These are #define values set up in the curses.h header;
- 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
- a recognizable (though ugly) set of ASCII defaults.
-
- Character Attributes and Color
-
- 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.
-
- 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_).
-
- 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.
-
- 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
- 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
- first arguments of the init_pair() values.
-
- 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
- compile-time constant and can be used in initializers.
-
- Mouse Interfacing
-
- 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
- non-ncurses systems.
-
- 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
- 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
- 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
- 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).
-
- 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,
- 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
- 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
- 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
- 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
- can be done.
-
- See the manual page curs_mouse(3X) for full details of the
- mouse-interface functions.
-
- 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
- before exiting.
-
-Function Descriptions
-
- We describe the detailed behavior of some important curses functions
- here, as a supplement to the manual page descriptions.
-
- Initialization and Wrapup
-
- initscr()
- 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
- 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().)
-
- 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
- program will restore the ncurses screen from before the escape.
-
- newterm(type, ofp, ifp)
- 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
- 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)
- 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.
-
- delscreen(sp)
- The inverse of newterm(); deallocates the data structures
- associated with a given SCREEN reference.
-
- Causing Output to the Terminal
-
- 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
- cursor.
-
- 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
- physical screen, describing what is actually on the screen, and
- a virtual screen, describing what the programmer wants to have
- 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
- 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
- visually annoying flicker at each update).
-
- Low-Level Capability Access
-
- setupterm(term, filenum, errret)
- 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
- 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
- is returned. The values returned can be 1 (all is well), 0 (no
- such terminal), or -1 (some problem locating the terminfo
- database).
-
- 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
- can also be given as NULL, meaning no error code is wanted. If
- 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)
- and not worry about initialization errors.
-
- After the call to setupterm(), the global variable cur_term is
- 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
- array ttytype[]. Subsequent calls to setupterm() will overwrite
- this array, so you'll have to save it yourself if need be.
-
- Debugging
-
- NOTE: These functions are not part of the standard curses API!
-
- trace()
- 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
- 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).
-
- _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
- to a file called trace in the current directory.
-
- 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
- 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.
-
-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
-
- 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.
-
- 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.
-
- 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.
-
- There is a panels library included in the ncurses distribution that
- does a pretty good job of strengthening the overlapping-windows
- facilities.
-
- 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
- could be open with different sizes.
-
- 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
- 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
- the screen.
-
- 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.
-
- Here is some sample code for shellout:
- addstr("Shelling out...");
- def_prog_mode(); /* save current tty modes */
- endwin(); /* restore original tty modes */
- system("sh"); /* run shell */
- addstr("returned.\n"); /* prepare return message */
- 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
- 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
- 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
- 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
- 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
- the screen is larger.
-
- Finally, ncurses can be configured to provide its own SIGWINCH
- handler, based on resizeterm.
-
- Handling Multiple Terminal Screens
-
- The initscr() function actually calls a function named newterm() to do
- most of its work. If you are writing a program that opens multiple
- 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
- 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
- def_shell_mode and def_prog_mode on each tty yourself.
-
- Testing for Terminal Capabilities
-
- 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
- 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'
- (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
- cursor_address.
-
- 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
- the immedok() option!
-
- Special Features of NCURSES
-
- 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.
-
- 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
- interpretation of any function-key control sequence.
-
- 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
- this feature, which is based on ISO 6429.
-
- 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.
-
-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
- API.
-
- 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
- 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
- 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
- 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
- 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
- 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()
- 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
- single burst of physical I/O that will do all your updates.
-
- Background Erase
-
- 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(),
- 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
- bkgdset() or wbkgdset().
-
- This change in behavior conforms ncurses to System V Release 4 and the
- XSI Curses standard.
-
-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
- and internationalization) are also supported.
-
- One effect of XSI conformance is the change in behavior described
- 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
- prototype-checked) if the macro definition is disabled with #undef.
-
- The Panels Library
-
- The ncurses library by itself provides good support for screen
- 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
- 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
- panels library.
-
- The panel library first appeared in AT&T System V. The version
- documented here is the panel code distributed with ncurses.
-
-Compiling With the Panels Library
-
- 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
- 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.
-
-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
- function (analogous to refresh()) that displays all panels in the deck
- in the proper order to resolve overlaps. The standard window, stdscr,
- is considered below all panels.
-
- Details on the panels functions are available in the man pages. We'll
- 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
- 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
- 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
- operation leaves the panel's depth, contents, and size unchanged.
-
- Two functions (top_panel(), bottom_panel()) are provided for
- 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 panel's screen location, contents, and size unchanged.
-
- The function update_panels() does all the wnoutrefresh() calls needed
- to prepare for doupdate() (which you must call yourself, afterwards).
-
- Typically, you will want to call update_panels() and doupdate() just
- 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
- screen flicker.
-
-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
- panel or unobscured by any other panels.
-
- The stsdcr window is a special case. It is considered below all
- panels. Because changes to panels may obscure parts of stdscr, though,
- you should call update_panels() before doupdate() even when you only
- change stdscr.
-
- 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.
-
- There is presently no way to display changes to one obscured panel
- without repainting all 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
- hidden.
-
- The panel_update code ignores hidden panels. You cannot do top_panel()
- or bottom_panel on a hidden panel(). Other panels operations are
- applicable.
-
-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
- 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
- documentation of set_panel_userptr() and panel_userptr for details.
-
- The Menu Library
-
- 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
- flexible interface.
-
- The menu library first appeared in AT&T System V. The version
- 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>
-
- 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.
-
-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
- frame objects.
-
- The menu can then by posted, that is written to an associated window.
- Actually, each menu has two associated windows; a containing window in
- which the programmer can scribble titles or borders, and a subwindow
- 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
- 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
- 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().
- 3. Create the menu using new_menu().
- 4. Post the menu using menu_post().
- 5. Refresh the screen.
- 6. Process user requests via an input loop.
- 7. Unpost the menu using menu_unpost().
- 8. Free the menu, using free_menu().
- 9. Free the items using free_item().
- 10. Terminate curses.
-
-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
- 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
- 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
- though other option bits might be on.
-
-Menu Display
-
- 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
- * The length of the menu mark string used for highlighting selected
- items
-
- 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 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'
- 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
- 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
- scrollable.
-
- You can scroll it with requests to the menu driver, which will be
- described in the section on menu input handling.
-
- 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 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
- have reasonable defaults which the library allows you to change (see
- the menu_attribs(3x) manual page.
-
-Menu 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.
-
- The outer or frame window is not otherwise touched by the menu
- 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
- 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
- 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
- some equivalent.
-
-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
- routine that maps input characters to menu command codes, and pass its
- output to menu_driver(). The menu command codes are fully documented
- 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
- 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,
- 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
- 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
- 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
- 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
- set_menu_pattern().
-
- 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.
-
-Miscellaneous Other Features
-
- Various menu options can affect the processing and visual appearance
- 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
- 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
- menu_hook(3x).
-
- 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).
-
- The Forms Library
-
- The form library is a curses extension that supports easy programming
- of on-screen forms for data entry and program control.
-
- The form library first appeared in AT&T System V. The version
- 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>
-
- 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.
-
-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
- 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
- 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
- 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
- types, and makes it relatively easy to define new ones.
-
- Once its transaction is completed (or aborted), a form may be unposted
- (that is, undisplayed), and finally freed to make the storage
- 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().
- 3. Create the form using new_form().
- 4. Post the form using form_post().
- 5. Refresh the screen.
- 6. Process user requests via an input loop.
- 7. Unpost the form using form_unpost().
- 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
- possible.
-
- 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.
-
-Creating and Freeing Fields and Forms
-
- The basic function for creating fields is new_field():
-FIELD *new_field(int height, int width, /* new field size */
- int top, int left, /* upper left corner */
- 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
- zero).
-
- 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
- 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
- initially zero.
-
- 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
- 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 */
-
- 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 */
-
- 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.
-
- 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
- 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.
-
- As with duplicated fields, linked fields have attribute bits separate
- 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
- out-of-bounds arguments.
-
- 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;
- 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
- 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
- to a form, but not vice-versa; thus, you will generally free your form
- objects first.
-
-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
- display and editing of the field. Some (for example, the O_STATIC bit)
- 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.
-
- 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
- to mean this field. Changes to it persist as defaults until your forms
- application terminates.
-
- 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 */
- int *top, int *left, /* upper left corner */
- 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
- existing one.
-
- 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().
-
- The Justification Attribute
-
- 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 */
-
- The mode values accepted and returned by this functions are
- preprocessor macros NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or
- JUSTIFY_CENTER.
-
- 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
- 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
- field buffer.
-int set_field_fore(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_fore(FIELD *field); /* field to query */
-
-int set_field_back(FIELD *field, /* field to alter */
- chtype attr); /* attribute to set */
-
-chtype field_back(FIELD *field); /* field to query */
-
-int set_field_pad(FIELD *field, /* field to alter */
- int pad); /* pad character to set */
-
-chtype field_pad(FIELD *field);
-
-int set_new_page(FIELD *field, /* field to alter */
- int flag); /* TRUE to force new page */
-
-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
- start of a new form screen.
-
- 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
- with these functions:
-int set_field_opts(FIELD *field, /* field to alter */
- int attr); /* attribute to set */
-
-int field_opts_on(FIELD *field, /* field to alter */
- int attr); /* attributes to turn on */
-
-int field_opts_off(FIELD *field, /* field to alter */
- int attr); /* attributes to turn off */
-
-int field_opts(FIELD *field); /* field to query */
-
- By default, all options are on. Here are the available option bits:
-
- O_VISIBLE
- 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.
-
- 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
- forms application, not the user.
-
- 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
- O_PUBLIC bit to define password fields.
-
- 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
- for help messages.
-
- 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
- (assuming there is one). When this option is off, the word will
- be split across the line break.
-
- O_BLANK
- 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).
-
- 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.
- When this option is off, the user's cursor will hang at the end
- of the field. This option is ignored in dynamic fields that
- have not reached their size limit.
-
- 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
- off on a field, exit from it will invoke a validation check.
-
- 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
- change during forms processing.
-
- O_STATIC
- 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.
-
- 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.
-
- 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
- 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 */
-
- Setting this flag under program control can be useful if you use the
- same form repeatedly, looking for modified fields each time.
-
- Calling field_status() on a field not currently selected for input
- 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
- REQ_VALIDATION request has been processed by the forms driver.
-
-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
- 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
- (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
- initialize the new field's user pointer.
-
-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
- grow right along with the main input buffer.
-
- A one-line dynamic field will have a fixed height (1) but variable
- 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
- 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
- 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
- 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:
- * 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).
- * 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.
- * The call field_info() will retrieve the original static size of
- the field; use dynamic_field_info() to get the actual dynamic
- size.
-
-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
- 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
- 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
- functions:
-int set_field_type(FIELD *field, /* field to alter */
- FIELDTYPE *ftype, /* type to associate */
- ...); /* additional arguments*/
-
-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
- validation of newly-created fields.
-
- Here are the pre-defined validation types:
-
- TYPE_ALPHA
-
- 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
- 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.
-
- TYPE_ALNUM
-
- 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 */
-
- 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.
-
- 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
- codes for U.S. states). It is set up with:
-int set_field_type(FIELD *field, /* field to alter */
- TYPE_ENUM, /* type to associate */
- char **valuelist; /* list of possible values */
- int checkcase; /* case-sensitive? */
- int checkunique); /* must specify uniquely? */
-
- 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.
-
- 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.
-
- 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.
-
- The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be
- particularly useful with these fields.
-
- 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 */
-
- 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.
-
- 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).
-
- 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 */
-
- 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.
-
- If the value passes its range check, it is padded with as many
- 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).
-
- TYPE_REGEXP
-
- 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 */
-
- The syntax for regular expressions is that of regcomp(3). The check
- 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
- 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 */
-
- 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 */
-
- 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.
-
- 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
- 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
- or form's initialization or termination hooks, or (3) just after a
- REQ_VALIDATION request has been processed by the forms driver.
-
-Attributes of Forms
-
- 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.
-
- 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 */
- FIELD **fields); /* fields to connect */
-
-char *form_fields(FORM *form); /* fetch fields of form */
-
-int field_count(FORM *form); /* count connect fields */
-
- 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,
- 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.
-
- It may also be null, in which case the old fields are disconnected
- (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
- is NULL.
-
-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
- 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
- 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.
-
- 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.
-
- The outer or frame window is not otherwise touched by the form
- 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
- 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
- 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
- of windows, then use one of these functions:
-int set_form_win(FORM *form, /* form to alter */
- WINDOW *win); /* frame window to connect */
-
-WINDOW *form_win(FORM *form); /* fetch frame window of form */
-
-int set_form_sub(FORM *form, /* form to alter */
- WINDOW *win); /* form subwindow to connect */
-
-WINDOW *form_sub(FORM *form); /* fetch form subwindow of form */
-
- Note that curses operations, including refresh(), on the form, should
- 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
- 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
- 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).
-
- 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
- before handing control back to the forms driver in order to
- re-synchronize it.
-
-Input Processing in the Forms Driver
-
- The function form_driver() handles virtualized input requests for form
- navigation, editing, and validation requests, just as menu_driver does
- for menus (see the section on menu input handling).
-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
- processing request.
-
- 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.
-
- Page Navigation Requests
-
- These requests cause page-level moves through the form, triggering
- display of a new form screen.
-
- REQ_NEXT_PAGE
- Move to the next form page.
-
- REQ_PREV_PAGE
- Move to the previous form page.
-
- REQ_FIRST_PAGE
- Move to the first form page.
-
- REQ_LAST_PAGE
- Move to the last form page.
-
- 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.
-
- Inter-Field Navigation Requests
-
- These requests handle navigation between fields on the same page.
-
- REQ_NEXT_FIELD
- Move to next field.
-
- REQ_PREV_FIELD
- Move to previous field.
-
- REQ_FIRST_FIELD
- Move to the first field.
-
- REQ_LAST_FIELD
- Move to the last field.
-
- REQ_SNEXT_FIELD
- Move to sorted next field.
-
- REQ_SPREV_FIELD
- Move to sorted previous field.
-
- REQ_SFIRST_FIELD
- Move to the sorted first field.
-
- REQ_SLAST_FIELD
- Move to the sorted last field.
-
- REQ_LEFT_FIELD
- Move left to field.
-
- REQ_RIGHT_FIELD
- Move right to field.
-
- REQ_UP_FIELD
- Move up 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
- 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
- sorted-movement requests.
-
- Finally, it is possible to move between fields using visual directions
- up, down, right, and left. To accomplish this, use the third group of
- four requests. Note, however, that the position of a form for purposes
- of these requests is its upper-left corner.
-
- For example, suppose you have a multi-line field B, and two
- single-line fields A and C on the same line with B, with A to the left
- of B and C to the right of B. A REQ_MOVE_RIGHT from A will go to B
- only if A, B, and C all share the same first line; otherwise it will
- skip over B to C.
-
- Intra-Field Navigation Requests
-
- These requests drive movement of the edit cursor within the currently
- selected field.
-
- REQ_NEXT_CHAR
- Move to next character.
-
- REQ_PREV_CHAR
- Move to previous character.
-
- REQ_NEXT_LINE
- Move to next line.
-
- REQ_PREV_LINE
- Move to previous line.
-
- REQ_NEXT_WORD
- Move to next word.
-
- REQ_PREV_WORD
- Move to previous word.
-
- REQ_BEG_FIELD
- Move to beginning of field.
-
- REQ_END_FIELD
- Move to end of field.
-
- REQ_BEG_LINE
- Move to beginning of line.
-
- REQ_END_LINE
- Move to end of line.
-
- REQ_LEFT_CHAR
- Move left in field.
-
- REQ_RIGHT_CHAR
- Move right in field.
-
- REQ_UP_CHAR
- Move up in field.
-
- REQ_DOWN_CHAR
- Move down in field.
-
- 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.
-
- 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
- triggered by editing and intra-field movement (the library scrolls the
- field to keep the cursor visible). It is possible to explicitly
- request scrolling with the following requests:
-
- REQ_SCR_FLINE
- Scroll vertically forward a line.
-
- REQ_SCR_BLINE
- Scroll vertically backward a line.
-
- REQ_SCR_FPAGE
- Scroll vertically forward a page.
-
- REQ_SCR_BPAGE
- Scroll vertically backward a page.
-
- REQ_SCR_FHPAGE
- Scroll vertically forward half a page.
-
- REQ_SCR_BHPAGE
- Scroll vertically backward half a page.
-
- REQ_SCR_FCHAR
- Scroll horizontally forward a character.
-
- REQ_SCR_BCHAR
- Scroll horizontally backward a character.
-
- REQ_SCR_HFLINE
- Scroll horizontally one field width forward.
-
- REQ_SCR_HBLINE
- Scroll horizontally one field width backward.
-
- REQ_SCR_HFHALF
- Scroll horizontally one half field width forward.
-
- 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.
-
- 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
- (insertion is the default.
-
- The following requests support editing the field and changing the edit
- mode:
-
- REQ_INS_MODE
- Set insertion mode.
-
- REQ_OVL_MODE
- Set overlay mode.
-
- REQ_NEW_LINE
- New line request (see below for explanation).
-
- REQ_INS_CHAR
- Insert space at character location.
-
- REQ_INS_LINE
- Insert blank line at character location.
-
- REQ_DEL_CHAR
- Delete character at cursor.
-
- REQ_DEL_PREV
- Delete previous word at cursor.
-
- REQ_DEL_LINE
- Delete line at cursor.
-
- REQ_DEL_WORD
- Delete word at cursor.
-
- REQ_CLR_EOL
- Clear to end of line.
-
- REQ_CLR_EOF
- Clear to end of 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
- field, or on the last line of the field.
-
- First, we consider REQ_NEW_LINE:
-
- The normal behavior of REQ_NEW_LINE in insert mode is to break the
- current line at the position of the edit cursor, inserting the portion
- of the current line after the cursor as a new line following the
- current and moving the cursor to the beginning of that new line (you
- may think of this as inserting a newline in the field buffer).
-
- 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.
-
- However, REQ_NEW_LINE at the beginning of a field, or on the last line
- of a field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD option is
- off, this special action is disabled.
-
- 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
- newline from the field buffer).
-
- However, REQ_DEL_PREV at the beginning of a field is instead treated
- as a REQ_PREV_FIELD.
-
- If the O_BS_OVERLOAD option is off, this special action is disabled
- and the forms driver just returns E_REQUEST_DENIED.
-
- See Form Options for discussion of how to set and clear the overload
- options.
-
- Order Requests
-
- If the type of your field is ordered, and has associated functions for
- getting the next and previous values of the type from a given value,
- there are requests that can fetch that value into the field buffer:
-
- 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.
-
- Of the built-in field types, only TYPE_ENUM has built-in successor and
- predecessor functions. When you define a field type of your own (see
- Custom Validation Types), you can associate our own ordering
- functions.
-
- 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
- above MAX_COMMAND, the forms driver will ignore it.
-
-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
- this:
-typedef void (*HOOK)(); /* pointer to function returning void */
-
-int set_form_init(FORM *form, /* form to alter */
- HOOK hook); /* initialization hook */
-
-HOOK form_init(FORM *form); /* form to query */
-
-int set_form_term(FORM *form, /* form to alter */
- HOOK hook); /* termination hook */
-
-HOOK form_term(FORM *form); /* form to query */
-
-int set_field_init(FORM *form, /* form to alter */
- HOOK hook); /* initialization hook */
-
-HOOK field_init(FORM *form); /* form to query */
-
-int set_field_term(FORM *form, /* form to alter */
- HOOK hook); /* termination hook */
-
-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
- of the hook call.
-
- form_init
- This hook is called when the form is posted; also, just after
- each page change operation.
-
- field_init
- This hook is called when the form is posted; also, just after
- each field change
-
- field_term
- 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.
-
- form_term
- This hook is called when the form is unposted; also, just
- 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
-
- 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
- functions a NULL first argument.
-
- You can disable any of these hooks by (re)setting them to NULL, the
- default value.
-
-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
- accomplish this:
-int set_current_field(FORM *form, /* form to alter */
- FIELD *field); /* field to shift to */
-
-FIELD *current_field(FORM *form); /* form to query */
-
-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
- given form's field array (the array passed to new_form() or
- set_form_fields()).
-
- The initial current field of a form is the first active field on the
- 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 */
-
- The initial page of a newly-created form is 0. The function
- set_form_fields() resets this.
-
-Form Options
-
- 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 */
-
-int form_opts_on(FORM *form, /* form to alter */
- int attr); /* attributes to turn on */
-
-int form_opts_off(FORM *form, /* form to alter */
- int attr); /* attributes to turn off */
-
-int form_opts(FORM *form); /* form to query */
-
- By default, all options are on. Here are the available option bits:
-
- O_NL_OVERLOAD
- Enable overloading of REQ_NEW_LINE as described in Editing
- Requests. The value of this option is ignored on dynamic fields
- that have not reached their size limit; these have no last
- line, so the circumstances for triggering a REQ_NEXT_FIELD
- never arise.
-
- O_BS_OVERLOAD
- Enable overloading of REQ_DEL_PREV as described in Editing
- Requests.
-
- The option values are bit-masks and can be composed with logical-or in
- the obvious way.
-
-Custom Validation Types
-
- 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.
- Most of the complications in the validation-type interface have to do
- with the handling of the additional arguments within custom validation
- functions.
-
- Union Types
-
- The simplest way to create a custom data type is to compose it from
- 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
- contents should be treated as.
-
- New Field Types
-
- To create a field type from scratch, you need to specify one or both
- of the following things:
- * A character-validation function, to check each character as it is
- 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 */
-
-FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
- HOOK c_validate) /* character validator */
-
-
-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
- functions at appropriate points in processing a field of the new type.
-
- The function free_fieldtype() deallocates the argument fieldtype,
- 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
- field.
-
- A character validator gets the character passed in as a first
- argument. It too should return TRUE if the character is valid, FALSE
- otherwise.
-
- 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
- will be NULL.
-
- In order to arrange for such arguments to be passed to your validation
- functions, you must associate a small set of storage-management
- functions with the type. The forms driver will use these to synthesize
- 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.
-
- Here is how you make the association:
-typedef char *(*PTRHOOK)(); /* pointer to function returning (char *) */
-typedef void (*VOIDHOOK)(); /* pointer to function returning void */
-
-int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
- PTRHOOK make_str, /* make structure from args */
- PTRHOOK copy_str, /* make copy of structure */
- VOIDHOOK free_str); /* free structure storage */
-
- Here is how the storage-management hooks are used:
-
- 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
- data structure that encapsulates those arguments.
-
- 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
- the pile copy.
-
- free_str
- 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.
-
- 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.
-
- 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
- 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 */
-
-int set_fieldtype_arg(FIELDTYPE *type, /* type to alter */
- 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
- failure.
-
- 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 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
- 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
- predecessor the maximum.
diff --git a/ncurses-5.3/form/Makefile.in b/ncurses-5.3/form/Makefile.in
deleted file mode 100644
index e34c3d4..0000000
--- a/ncurses-5.3/form/Makefile.in
+++ /dev/null
@@ -1,160 +0,0 @@
-# $Id$
-##############################################################################
-# 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"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1996,1997
-#
-# Makefile for form source code.
-#
-# This makes the following:
-# libraries (normal/debug/profile/shared)
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_PROG = @INSTALL_PROG@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LD = @LD@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @CPPFLAGS@ \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(LIBTOOL) $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-MK_SHARED_LIB = @MK_SHARED_LIB@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-RANLIB = @RANLIB@
-
-IMPORT_LIB = @IMPORT_LIB@
-SHARED_LIB = @SHARED_LIB@
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lform -lncurses @LIBS@
-
-AUTO_SRC = \
- ../include/form.h
-
-################################################################################
-all \
-libs \
-install :: $(AUTO_SRC) $(LIBRARIES)
-
-sources : $(AUTO_SRC)
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-# make copies to simplify include-paths while still keeping form's include
-# file in this directory.
-../include/form.h : $(srcdir)/form.h
- -rm -f $@
- cp $(srcdir)/form.h $@
-
-FORM_PRIV_H = \
- $(srcdir)/form.priv.h \
- $(srcdir)/form.h \
- ../include/mf_common.h \
- ../include/curses.h \
- ../include/eti.h
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-../include/mf_common.h \
-../include/eti.h :
- cd ../menu && $(MAKE) $@
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/form/READ.ME b/ncurses-5.3/form/READ.ME
deleted file mode 100644
index 11c8146..0000000
--- a/ncurses-5.3/form/READ.ME
+++ /dev/null
@@ -1,16 +0,0 @@
-This is a clone of the form library that is available with typical
-System V curses implementations (ETI).
-
-It is modelled after the documentation that comes for this library with
-a 386 based SVR4 implementation (ESIX).
-
-The development environment was and is an ELF based Linux system.
-
-For things that still need doing, see the TO-DO file in the top-level
-directory.
-
-Juergen Pfeifer
-
-Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
-
-
diff --git a/ncurses-5.3/form/fld_arg.c b/ncurses-5.3/form/fld_arg.c
deleted file mode 100644
index 4913383..0000000
--- a/ncurses-5.3/form/fld_arg.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_fieldtype_arg(
-| FIELDTYPE *typ,
-| void * (* const make_arg)(va_list *),
-| void * (* const copy_arg)(const void *),
-| void (* const free_arg)(void *) )
-|
-| Description : Connects to the type additional arguments necessary
-| for a set_field_type call. The various function pointer
-| arguments are:
-| make_arg : allocates a structure for the field
-| specific parameters.
-| copy_arg : duplicate the structure created by
-| make_arg
-| free_arg : Release the memory allocated by make_arg
-| or copy_arg
-|
-| At least make_arg must be non-NULL.
-| You may pass NULL for copy_arg and free_arg if your
-| make_arg function doesn't allocate memory and your
-| arg fits into the storage for a (void*).
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_fieldtype_arg
- (FIELDTYPE * typ,
- void * (* const make_arg)(va_list *),
- void * (* const copy_arg)(const void *),
- void (* const free_arg)(void *))
-{
- if ( !typ || !make_arg )
- RETURN(E_BAD_ARGUMENT);
-
- typ->status |= _HAS_ARGS;
- typ->makearg = make_arg;
- typ->copyarg = copy_arg;
- typ->freearg = free_arg;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void *field_arg(const FIELD *field)
-|
-| Description : Retrieve pointer to the fields argument structure.
-|
-| Return Values : Pointer to structure or NULL if none is defined.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void *)
-field_arg (const FIELD * field)
-{
- return Normalize_Field(field)->arg;
-}
-
-/* fld_arg.c ends here */
diff --git a/ncurses-5.3/form/fld_attr.c b/ncurses-5.3/form/fld_attr.c
deleted file mode 100644
index 35f9513..0000000
--- a/ncurses-5.3/form/fld_attr.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*----------------------------------------------------------------------------
- Field-Attribute manipulation routines
- --------------------------------------------------------------------------*/
-/* "Template" macro to generate a function to set a fields attribute */
-#define GEN_FIELD_ATTR_SET_FCT( name ) \
-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) )\
- {\
- Normalize_Field( field );\
- if ((field -> name) != attr)\
- {\
- field -> name = attr;\
- res = _nc_Synchronize_Attributes( field );\
- }\
- else\
- res = E_OK;\
- }\
- RETURN(res);\
-}
-
-/* "Template" macro to generate a function to get a fields attribute */
-#define GEN_FIELD_ATTR_GET_FCT( name ) \
-NCURSES_IMPEXP chtype NCURSES_API field_ ## name (const FIELD * field)\
-{\
- return ( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_fore(FIELD *field, chtype attr)
-|
-| Description : Sets the foreground of the field used to display the
-| field contents.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid attributes
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_SET_FCT( fore )
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : chtype field_fore(const FIELD *)
-|
-| Description : Retrieve fields foreground attribute
-|
-| Return Values : The foreground attribute
-+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_GET_FCT( fore )
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_back(FIELD *field, chtype attr)
-|
-| Description : Sets the background of the field used to display the
-| fields extend.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid attributes
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_SET_FCT( back )
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : chtype field_back(const
-|
-| Description : Retrieve fields background attribute
-|
-| Return Values : The background attribute
-+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_GET_FCT( back )
-
-/* fld_attr.c ends here */
diff --git a/ncurses-5.3/form/fld_current.c b/ncurses-5.3/form/fld_current.c
deleted file mode 100644
index 6573575..0000000
--- a/ncurses-5.3/form/fld_current.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_current_field(FORM * form,FIELD * field)
-|
-| Description : Set the current field of the form to the specified one.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form or field pointer
-| E_REQUEST_DENIED - field not selectable
-| E_BAD_STATE - called from a hook routine
-| E_INVALID_FIELD - current field can't be left
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_current_field (FORM * form, FIELD * field)
-{
- int err = E_OK;
-
- if ( !form || !field )
- RETURN(E_BAD_ARGUMENT);
-
- if ( (form != field->form) || Field_Is_Not_Selectable(field) )
- RETURN(E_REQUEST_DENIED);
-
- if (!(form->status & _POSTED))
- {
- form->current = field;
- form->curpage = field->page;
- }
- else
- {
- if (form->status & _IN_DRIVER)
- err = E_BAD_STATE;
- else
- {
- if (form->current != field)
- {
- if (!_nc_Internal_Validation(form))
- err = E_INVALID_FIELD;
- else
- {
- Call_Hook(form,fieldterm);
- if (field->page != form->curpage)
- {
- Call_Hook(form,formterm);
- err = _nc_Set_Form_Page(form,field->page,field);
- Call_Hook(form,forminit);
- }
- else
- {
- err = _nc_Set_Current_Field(form,field);
- }
- Call_Hook(form,fieldinit);
- _nc_Refresh_Current_Field(form);
- }
- }
- }
- }
- RETURN(err);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *current_field(const FORM * form)
-|
-| Description : Return the current field.
-|
-| Return Values : Pointer to the current field.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD *)
-current_field (const FORM * form)
-{
- return Normalize_Form(form)->current;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_index(const FIELD * field)
-|
-| Description : Return the index of the field in the field-array of
-| the form.
-|
-| Return Values : >= 0 : field index
-| -1 : fieldpointer invalid or field not connected
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-field_index (const FIELD * field)
-{
- return ( (field && field->form) ? field->index : -1 );
-}
-
-/* fld_current.c ends here */
diff --git a/ncurses-5.3/form/fld_def.c b/ncurses-5.3/form/fld_def.c
deleted file mode 100644
index c8431ee..0000000
--- a/ncurses-5.3/form/fld_def.c
+++ /dev/null
@@ -1,354 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/* this can't be readonly */
-static FIELD default_field = {
- 0, /* status */
- 0, /* rows */
- 0, /* cols */
- 0, /* frow */
- 0, /* fcol */
- 0, /* drows */
- 0, /* dcols */
- 0, /* maxgrow*/
- 0, /* nrow */
- 0, /* nbuf */
- NO_JUSTIFICATION, /* just */
- 0, /* page */
- 0, /* index */
- (int)' ', /* pad */
- A_NORMAL, /* fore */
- A_NORMAL, /* back */
- ALL_FIELD_OPTS, /* opts */
- (FIELD *)0, /* snext */
- (FIELD *)0, /* sprev */
- (FIELD *)0, /* link */
- (FORM *)0, /* form */
- (FIELDTYPE *)0, /* type */
- (char *)0, /* arg */
- (char *)0, /* buf */
- (char *)0 /* usrptr */
-};
-
-NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : TypeArgument *_nc_Make_Argument(
-| const FIELDTYPE *typ,
-| va_list *ap,
-| int *err )
-|
-| Description : Create an argument structure for the specified type.
-| Use the type-dependant argument list to construct
-| it.
-|
-| Return Values : Pointer to argument structure. Maybe NULL.
-| In case of an error in *err an errorcounter is increased.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument*)
-_nc_Make_Argument
-(const FIELDTYPE *typ, va_list *ap, int *err)
-{
- TypeArgument *res = (TypeArgument *)0;
- TypeArgument *p;
-
- if (typ && (typ->status & _HAS_ARGS))
- {
- assert(err && ap);
- if (typ->status & _LINKED_TYPE)
- {
- p = (TypeArgument *)malloc(sizeof(TypeArgument));
- if (p)
- {
- p->left = _nc_Make_Argument(typ->left ,ap,err);
- p->right = _nc_Make_Argument(typ->right,ap,err);
- return p;
- }
- else
- *err += 1;
- } else
- {
- assert(typ->makearg);
- if ( !(res=(TypeArgument *)typ->makearg(ap)) )
- *err += 1;
- }
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : TypeArgument *_nc_Copy_Argument(const FIELDTYPE *typ,
-| const TypeArgument *argp,
-| int *err )
-|
-| Description : Create a copy of an argument structure for the specified
-| type.
-|
-| Return Values : Pointer to argument structure. Maybe NULL.
-| In case of an error in *err an errorcounter is increased.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument*)
-_nc_Copy_Argument
- (const FIELDTYPE *typ,
- const TypeArgument *argp, int *err)
-{
- TypeArgument *res = (TypeArgument *)0;
- TypeArgument *p;
-
- if ( typ && (typ->status & _HAS_ARGS) )
- {
- assert(err && argp);
- if (typ->status & _LINKED_TYPE)
- {
- p = (TypeArgument *)malloc(sizeof(TypeArgument));
- if (p)
- {
- p->left = _nc_Copy_Argument(typ,argp->left ,err);
- p->right = _nc_Copy_Argument(typ,argp->right,err);
- return p;
- }
- *err += 1;
- }
- else
- {
- if (typ->copyarg)
- {
- if (!(res = (TypeArgument *)(typ->copyarg((const void *)argp))))
- *err += 1;
- }
- else
- res = (TypeArgument *)argp;
- }
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void _nc_Free_Argument(const FIELDTYPE *typ,
-| TypeArgument * argp )
-|
-| Description : Release memory associated with the argument structure
-| for the given fieldtype.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Free_Argument
-(const FIELDTYPE * typ, TypeArgument * argp)
-{
- if (!typ || !(typ->status & _HAS_ARGS))
- return;
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- _nc_Free_Argument(typ->left ,argp->left );
- _nc_Free_Argument(typ->right,argp->right);
- free(argp);
- }
- else
- {
- if (typ->freearg)
- typ->freearg((void *)argp);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool _nc_Copy_Type( FIELD *dst, FIELD const *src )
-|
-| Description : Copy argument structure of field src to field dst
-|
-| Return Values : TRUE - copy worked
-| FALSE - error occured
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-_nc_Copy_Type
-(FIELD *dst, FIELD const *src)
-{
- int err = 0;
-
- assert(dst && src);
-
- dst->type = src->type;
- dst->arg = (void *)_nc_Copy_Argument(src->type,(TypeArgument *)(src->arg),&err);
-
- if (err)
- {
- _nc_Free_Argument(dst->type,(TypeArgument *)(dst->arg));
- dst->type = (FIELDTYPE *)0;
- dst->arg = (void *)0;
- return FALSE;
- }
- else
- {
- if (dst->type)
- dst->type->ref++;
- return TRUE;
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void _nc_Free_Type( FIELD *field )
-|
-| Description : Release Argument structure for this field
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Free_Type (FIELD *field)
-{
- assert(field);
- if (field->type)
- field->type->ref--;
- _nc_Free_Argument(field->type,(TypeArgument *)(field->arg));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *new_field( int rows, int cols,
-| int frow, int fcol,
-| int nrow, int nbuf )
-|
-| Description : Create a new field with this many 'rows' and 'cols',
-| starting at 'frow/fcol' in the subwindow of the form.
-| Allocate 'nrow' off-screen rows and 'nbuf' additional
-| buffers. If an error occurs, errno is set to
-|
-| E_BAD_ARGUMENT - invalid argument
-| E_SYSTEM_ERROR - system error
-|
-| Return Values : Pointer to the new field or NULL if failure.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD *)
-new_field
-(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
-{
- FIELD *New_Field = (FIELD *)0;
- int err = E_BAD_ARGUMENT;
-
- if (rows>0 &&
- cols>0 &&
- frow>=0 &&
- fcol>=0 &&
- nrow>=0 &&
- nbuf>=0 &&
- ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field=(FIELD *)malloc(sizeof(FIELD))) )
- {
- *New_Field = default_field;
- New_Field->rows = rows;
- New_Field->cols = cols;
- New_Field->drows = rows + nrow;
- New_Field->dcols = cols;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->nrow = nrow;
- New_Field->nbuf = nbuf;
- New_Field->link = New_Field;
-
- if (_nc_Copy_Type(New_Field,&default_field))
- {
- size_t len;
-
- len = Total_Buffer_Size(New_Field);
- if ((New_Field->buf = (char *)malloc(len)))
- {
- /* Prefill buffers with blanks and insert terminating zeroes
- between buffers */
- int i;
-
- memset(New_Field->buf,' ',len);
- for(i=0;i<=New_Field->nbuf;i++)
- {
- New_Field->buf[(New_Field->drows*New_Field->cols+1)*(i+1)-1]
- = '\0';
- }
- return New_Field;
- }
- }
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR( err );
- return (FIELD *)0;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int free_field( FIELD *field )
-|
-| Description : Frees the storage allocated for the field.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_CONNECTED - field is connected
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-free_field (FIELD * field)
-{
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (field->form)
- RETURN(E_CONNECTED);
-
- if (field == field->link)
- {
- if (field->buf)
- free(field->buf);
- }
- else
- {
- FIELD *f;
-
- for(f=field;f->link != field;f = f->link)
- {}
- f->link = field->link;
- }
- _nc_Free_Type(field);
- free(field);
- RETURN(E_OK);
-}
-
-/* fld_def.c ends here */
diff --git a/ncurses-5.3/form/fld_dup.c b/ncurses-5.3/form/fld_dup.c
deleted file mode 100644
index ba53cb5..0000000
--- a/ncurses-5.3/form/fld_dup.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *dup_field(FIELD *field, int frow, int fcol)
-|
-| Description : Duplicates the field at the specified position. All
-| field attributes and the buffers are copied.
-| If an error occurs, errno is set to
-|
-| E_BAD_ARGUMENT - invalid argument
-| E_SYSTEM_ERROR - system error
-|
-| Return Values : Pointer to the new field or NULL if failure
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD *)
-dup_field (FIELD * field, int frow, int fcol)
-{
- FIELD *New_Field = (FIELD *)0;
- int err = E_BAD_ARGUMENT;
-
- if (field && (frow>=0) && (fcol>=0) &&
- ((err=E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */
- (New_Field=(FIELD *)malloc(sizeof(FIELD))) )
- {
- *New_Field = *_nc_Default_Field;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->link = New_Field;
- New_Field->rows = field->rows;
- New_Field->cols = field->cols;
- New_Field->nrow = field->nrow;
- New_Field->drows = field->drows;
- New_Field->dcols = field->dcols;
- New_Field->maxgrow = field->maxgrow;
- New_Field->nbuf = field->nbuf;
- New_Field->just = field->just;
- New_Field->fore = field->fore;
- New_Field->back = field->back;
- New_Field->pad = field->pad;
- New_Field->opts = field->opts;
- New_Field->usrptr = field->usrptr;
-
- if (_nc_Copy_Type(New_Field,field))
- {
- size_t len;
-
- len = Total_Buffer_Size(New_Field);
- if ( (New_Field->buf=(char *)malloc(len)) )
- {
- memcpy(New_Field->buf,field->buf,len);
- return New_Field;
- }
- }
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR(err);
- return (FIELD *)0;
-}
-
-/* fld_dup.c ends here */
diff --git a/ncurses-5.3/form/fld_ftchoice.c b/ncurses-5.3/form/fld_ftchoice.c
deleted file mode 100644
index 3c47f18..0000000
--- a/ncurses-5.3/form/fld_ftchoice.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_fieldtype_choice(
-| FIELDTYPE *typ,
-| bool (* const next_choice)(FIELD *,const void *),
-| bool (* const prev_choice)(FIELD *,const void *))
-|
-| Description : Define implementation of enumeration requests.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid arguments
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_fieldtype_choice
- (FIELDTYPE * typ,
- bool (* const next_choice) (FIELD *,const void *),
- bool (* const prev_choice) (FIELD *,const void *))
-{
- if ( !typ || !next_choice || !prev_choice )
- RETURN(E_BAD_ARGUMENT);
-
- typ->status |= _HAS_CHOICE;
- typ->next = next_choice;
- typ->prev = prev_choice;
- RETURN(E_OK);
-}
-
-/* fld_ftchoice.c ends here */
diff --git a/ncurses-5.3/form/fld_ftlink.c b/ncurses-5.3/form/fld_ftlink.c
deleted file mode 100644
index 0fbe025..0000000
--- a/ncurses-5.3/form/fld_ftlink.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELDTYPE *link_fieldtype(
-| FIELDTYPE *type1,
-| FIELDTYPE *type2)
-|
-| Description : Create a new fieldtype built from the two given types.
-| They are connected by an logical 'OR'.
-| If an error occurs, errno is set to
-| E_BAD_ARGUMENT - invalid arguments
-| E_SYSTEM_ERROR - system error (no memory)
-|
-| Return Values : Fieldtype pointer or NULL if error occured.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELDTYPE *)
-link_fieldtype
-(FIELDTYPE * type1, FIELDTYPE * type2)
-{
- FIELDTYPE *nftyp = (FIELDTYPE *)0;
-
- if ( type1 && type2 )
- {
- nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
- if (nftyp)
- {
- *nftyp = *_nc_Default_FieldType;
- nftyp->status |= _LINKED_TYPE;
- if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS) )
- nftyp->status |= _HAS_ARGS;
- if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE) )
- nftyp->status |= _HAS_CHOICE;
- nftyp->left = type1;
- nftyp->right = type2;
- type1->ref++;
- type2->ref++;
- }
- else
- {
- SET_ERROR( E_SYSTEM_ERROR );
- }
- }
- else
- {
- SET_ERROR( E_BAD_ARGUMENT );
- }
- return nftyp;
-}
-
-/* fld_ftlink.c ends here */
diff --git a/ncurses-5.3/form/fld_info.c b/ncurses-5.3/form/fld_info.c
deleted file mode 100644
index 3ca5a82..0000000
--- a/ncurses-5.3/form/fld_info.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_info(const FIELD *field,
-| int *rows, int *cols,
-| int *frow, int *fcol,
-| int *nrow, int *nbuf)
-|
-| Description : Retrieve infos about the fields creation parameters.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-field_info
- (const FIELD *field,
- int *rows, int *cols,
- int *frow, int *fcol,
- int *nrow, int *nbuf)
-{
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (rows) *rows = field->rows;
- if (cols) *cols = field->cols;
- if (frow) *frow = field->frow;
- if (fcol) *fcol = field->fcol;
- if (nrow) *nrow = field->nrow;
- if (nbuf) *nbuf = field->nbuf;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int dynamic_field_info(const FIELD *field,
-| int *drows, int *dcols,
-| int *maxgrow)
-|
-| Description : Retrieve informations about a dynamic fields current
-| dynamic parameters.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-dynamic_field_info
-(const FIELD *field, int *drows, int *dcols, int *maxgrow)
-{
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (drows) *drows = field->drows;
- if (dcols) *dcols = field->dcols;
- if (maxgrow) *maxgrow = field->maxgrow;
-
- RETURN(E_OK);
-}
-
-/* fld_info.c ends here */
diff --git a/ncurses-5.3/form/fld_just.c b/ncurses-5.3/form/fld_just.c
deleted file mode 100644
index 9064b63..0000000
--- a/ncurses-5.3/form/fld_just.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_just(FIELD *field, int just)
-|
-| Description : Set the fields type of justification.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - one of the arguments was incorrect
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_field_just (FIELD * field, int just)
-{
- int res = E_BAD_ARGUMENT;
-
- if ((just==NO_JUSTIFICATION) ||
- (just==JUSTIFY_LEFT) ||
- (just==JUSTIFY_CENTER) ||
- (just==JUSTIFY_RIGHT) )
- {
- Normalize_Field( field );
- if (field->just != just)
- {
- field->just = just;
- res = _nc_Synchronize_Attributes( field );
- }
- else
- res = E_OK;
- }
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_just( const FIELD *field )
-|
-| Description : Retrieve the fields type of justification
-|
-| Return Values : The justification type.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-field_just (const FIELD * field)
-{
- return Normalize_Field( field )->just;
-}
-
-/* fld_just.c ends here */
diff --git a/ncurses-5.3/form/fld_link.c b/ncurses-5.3/form/fld_link.c
deleted file mode 100644
index f075327..0000000
--- a/ncurses-5.3/form/fld_link.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *link_field(FIELD *field, int frow, int fcol)
-|
-| Description : Duplicates the field at the specified position. The
-| new field shares its buffers with the original one,
-| the attributes are independent.
-| If an error occurs, errno is set to
-|
-| E_BAD_ARGUMENT - invalid argument
-| E_SYSTEM_ERROR - system error
-|
-| Return Values : Pointer to the new field or NULL if failure
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD *)
-link_field (FIELD * field, int frow, int fcol)
-{
- FIELD *New_Field = (FIELD *)0;
- int err = E_BAD_ARGUMENT;
-
- if (field && (frow>=0) && (fcol>=0) &&
- ((err=E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field = (FIELD *)malloc(sizeof(FIELD))) )
- {
- *New_Field = *_nc_Default_Field;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->link = field->link;
- field->link = New_Field;
- New_Field->buf = field->buf;
- New_Field->rows = field->rows;
- New_Field->cols = field->cols;
- New_Field->nrow = field->nrow;
- New_Field->nbuf = field->nbuf;
- New_Field->drows = field->drows;
- New_Field->dcols = field->dcols;
- New_Field->maxgrow= field->maxgrow;
- New_Field->just = field->just;
- New_Field->fore = field->fore;
- New_Field->back = field->back;
- New_Field->pad = field->pad;
- New_Field->opts = field->opts;
- New_Field->usrptr = field->usrptr;
- if (_nc_Copy_Type(New_Field,field))
- return New_Field;
- }
-
- if (New_Field)
- free_field(New_Field);
-
- SET_ERROR( err );
- return (FIELD *)0;
-}
-
-/* fld_link.c ends here */
diff --git a/ncurses-5.3/form/fld_max.c b/ncurses-5.3/form/fld_max.c
deleted file mode 100644
index c884e52..0000000
--- a/ncurses-5.3/form/fld_max.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_max_field(FIELD *field, int maxgrow)
-|
-| Description : Set the maximum growth for a dynamic field. If maxgrow=0
-| the field may grow to any possible size.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_max_field (FIELD *field, int maxgrow)
-{
- if (!field || (maxgrow<0))
- RETURN(E_BAD_ARGUMENT);
- else
- {
- bool single_line_field = Single_Line_Field(field);
-
- if (maxgrow>0)
- {
- if (( single_line_field && (maxgrow < field->dcols)) ||
- (!single_line_field && (maxgrow < field->drows)))
- RETURN(E_BAD_ARGUMENT);
- }
- field->maxgrow = maxgrow;
- field->status &= ~_MAY_GROW;
- if (!(field->opts & O_STATIC))
- {
- if ((maxgrow==0) ||
- ( single_line_field && (field->dcols < maxgrow)) ||
- (!single_line_field && (field->drows < maxgrow)))
- field->status |= _MAY_GROW;
- }
- }
- RETURN(E_OK);
-}
-
-/* fld_max.c ends here */
diff --git a/ncurses-5.3/form/fld_move.c b/ncurses-5.3/form/fld_move.c
deleted file mode 100644
index 5549509..0000000
--- a/ncurses-5.3/form/fld_move.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int move_field(FIELD *field,int frow, int fcol)
-|
-| Description : Moves the disconnected field to the new location in
-| the forms subwindow.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument passed
-| E_CONNECTED - field is connected
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-move_field (FIELD *field, int frow, int fcol)
-{
- if ( !field || (frow<0) || (fcol<0) )
- RETURN(E_BAD_ARGUMENT);
-
- if (field->form)
- RETURN(E_CONNECTED);
-
- field->frow = frow;
- field->fcol = fcol;
- RETURN(E_OK);
-}
-
-/* fld_move.c ends here */
-
diff --git a/ncurses-5.3/form/fld_newftyp.c b/ncurses-5.3/form/fld_newftyp.c
deleted file mode 100644
index 3c38c81..0000000
--- a/ncurses-5.3/form/fld_newftyp.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-static FIELDTYPE const default_fieldtype = {
- 0, /* status */
- 0L, /* reference count */
- (FIELDTYPE *)0, /* pointer to left operand */
- (FIELDTYPE *)0, /* pointer to right operand */
- NULL, /* makearg function */
- NULL, /* copyarg function */
- NULL, /* freearg function */
- NULL, /* field validation function */
- NULL, /* Character check function */
- NULL, /* enumerate next function */
- NULL /* enumerate previous function */
-};
-
-NCURSES_EXPORT_VAR(const FIELDTYPE*) _nc_Default_FieldType = &default_fieldtype;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELDTYPE *new_fieldtype(
-| bool (* const field_check)(FIELD *,const void *),
-| bool (* const char_check) (int, const void *) )
-|
-| Description : Create a new fieldtype. The application programmer must
-| write a field_check and a char_check function and give
-| them as input to this call.
-| If an error occurs, errno is set to
-| E_BAD_ARGUMENT - invalid arguments
-| E_SYSTEM_ERROR - system error (no memory)
-|
-| Return Values : Fieldtype pointer or NULL if error occured
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELDTYPE *)
-new_fieldtype (
- bool (* const field_check)(FIELD *,const void *),
- bool (* const char_check) (int,const void *) )
-{
- FIELDTYPE *nftyp = (FIELDTYPE *)0;
-
- if ( (field_check) || (char_check) )
- {
- nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
- if (nftyp)
- {
- *nftyp = default_fieldtype;
- nftyp->fcheck = field_check;
- nftyp->ccheck = char_check;
- }
- else
- {
- SET_ERROR( E_SYSTEM_ERROR );
- }
- }
- else
- {
- SET_ERROR( E_BAD_ARGUMENT );
- }
- return nftyp;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int free_fieldtype(FIELDTYPE *typ)
-|
-| Description : Release the memory associated with this fieldtype.
-|
-| Return Values : E_OK - success
-| E_CONNECTED - there are fields referencing the type
-| E_BAD_ARGUMENT - invalid fieldtype pointer
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-free_fieldtype (FIELDTYPE *typ)
-{
- if (!typ)
- RETURN(E_BAD_ARGUMENT);
-
- if (typ->ref!=0)
- RETURN(E_CONNECTED);
-
- if (typ->status & _RESIDENT)
- RETURN(E_CONNECTED);
-
- if (typ->status & _LINKED_TYPE)
- {
- if (typ->left ) typ->left->ref--;
- if (typ->right) typ->right->ref--;
- }
- free(typ);
- RETURN(E_OK);
-}
-
-/* fld_newftyp.c ends here */
diff --git a/ncurses-5.3/form/fld_opts.c b/ncurses-5.3/form/fld_opts.c
deleted file mode 100644
index 7bc9fa7..0000000
--- a/ncurses-5.3/form/fld_opts.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*----------------------------------------------------------------------------
- Field-Options manipulation routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_opts(FIELD *field, Field_Options opts)
-|
-| Description : Turns on the named options for this field and turns
-| off all the remaining options.
-|
-| Return Values : E_OK - success
-| E_CURRENT - the field is the current field
-| E_BAD_ARGUMENT - invalid options
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_field_opts (FIELD * field, Field_Options opts)
-{
- int res = E_BAD_ARGUMENT;
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- res = _nc_Synchronize_Options( Normalize_Field(field), opts );
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Field_Options field_opts(const FIELD *field)
-|
-| Description : Retrieve the fields options.
-|
-| Return Values : The options.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(Field_Options)
-field_opts (const FIELD * field)
-{
- return ALL_FIELD_OPTS & Normalize_Field( field )->opts;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_opts_on(FIELD *field, Field_Options opts)
-|
-| Description : Turns on the named options for this field and all the
-| remaining options are unchanged.
-|
-| Return Values : E_OK - success
-| E_CURRENT - the field is the current field
-| E_BAD_ARGUMENT - invalid options
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-field_opts_on (FIELD * field, Field_Options opts)
-{
- int res = E_BAD_ARGUMENT;
-
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- {
- Normalize_Field( field );
- res = _nc_Synchronize_Options( field, field->opts | opts );
- }
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_opts_off(FIELD *field, Field_Options opts)
-|
-| Description : Turns off the named options for this field and all the
-| remaining options are unchanged.
-|
-| Return Values : E_OK - success
-| E_CURRENT - the field is the current field
-| E_BAD_ARGUMENT - invalid options
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-field_opts_off (FIELD * field, Field_Options opts)
-{
- int res = E_BAD_ARGUMENT;
-
- opts &= ALL_FIELD_OPTS;
- if (!(opts & ~ALL_FIELD_OPTS))
- {
- Normalize_Field( field );
- res = _nc_Synchronize_Options( field, field->opts & ~opts );
- }
- RETURN(res);
-}
-
-/* fld_opts.c ends here */
diff --git a/ncurses-5.3/form/fld_pad.c b/ncurses-5.3/form/fld_pad.c
deleted file mode 100644
index 260c98d..0000000
--- a/ncurses-5.3/form/fld_pad.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_pad(FIELD *field, int ch)
-|
-| Description : Set the pad character used to fill the field. This must
-| be a printable character.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer or pad character
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_field_pad (FIELD * field, int ch)
-{
- int res = E_BAD_ARGUMENT;
-
- Normalize_Field( field );
- if (isprint((unsigned char)ch))
- {
- if (field->pad != ch)
- {
- field->pad = ch;
- res = _nc_Synchronize_Attributes( field );
- }
- else
- res = E_OK;
- }
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_pad(const FIELD *field)
-|
-| Description : Retrieve the fields pad character.
-|
-| Return Values : The pad character.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-field_pad (const FIELD * field)
-{
- return Normalize_Field( field )->pad;
-}
-
-/* fld_pad.c ends here */
diff --git a/ncurses-5.3/form/fld_page.c b/ncurses-5.3/form/fld_page.c
deleted file mode 100644
index 48e0d09..0000000
--- a/ncurses-5.3/form/fld_page.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_new_page(FIELD *field, bool new_page_flag)
-|
-| Description : Marks the field as the beginning of a new page of
-| the form.
-|
-| Return Values : E_OK - success
-| E_CONNECTED - field is connected
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_new_page (FIELD * field, bool new_page_flag)
-{
- Normalize_Field(field);
- if (field->form)
- RETURN(E_CONNECTED);
-
- if (new_page_flag)
- field->status |= _NEWPAGE;
- else
- field->status &= ~_NEWPAGE;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool new_page(const FIELD *field)
-|
-| Description : Retrieve the info whether or not the field starts a
-| new page on the form.
-|
-| Return Values : TRUE - field starts a new page
-| FALSE - field doesn't start a new page
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-new_page (const FIELD * field)
-{
- return (Normalize_Field(field)->status & _NEWPAGE) ? TRUE : FALSE;
-}
-
-/* fld_page.c ends here */
diff --git a/ncurses-5.3/form/fld_stat.c b/ncurses-5.3/form/fld_stat.c
deleted file mode 100644
index 85c4f34..0000000
--- a/ncurses-5.3/form/fld_stat.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_status(FIELD *field, bool status)
-|
-| Description : Set or clear the 'changed' indication flag for that
-| fields primary buffer.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_field_status (FIELD * field, bool status)
-{
- Normalize_Field( field );
-
- if (status)
- field->status |= _CHANGED;
- else
- field->status &= ~_CHANGED;
-
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool field_status(const FIELD *field)
-|
-| Description : Retrieve the value of the 'changed' indication flag
-| for that fields primary buffer.
-|
-| Return Values : TRUE - buffer has been changed
-| FALSE - buffer has not been changed
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-field_status (const FIELD * field)
-{
- return ((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
-}
-
-/* fld_stat.c ends here */
diff --git a/ncurses-5.3/form/fld_type.c b/ncurses-5.3/form/fld_type.c
deleted file mode 100644
index fd0a56e..0000000
--- a/ncurses-5.3/form/fld_type.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_type(FIELD *field, FIELDTYPE *type,...)
-|
-| Description : Associate the specified fieldtype with the field.
-| Certain field types take additional arguments. Look
-| at the spec of the field types !
-|
-| Return Values : E_OK - success
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_field_type (FIELD *field,FIELDTYPE *type, ...)
-{
- va_list ap;
- int res = E_SYSTEM_ERROR;
- int err = 0;
-
- va_start(ap,type);
-
- Normalize_Field(field);
- _nc_Free_Type(field);
-
- field->type = type;
- field->arg = (void *)_nc_Make_Argument(field->type,&ap,&err);
-
- if (err)
- {
- _nc_Free_Argument(field->type,(TypeArgument *)(field->arg));
- field->type = (FIELDTYPE *)0;
- field->arg = (void *)0;
- }
- else
- {
- res = E_OK;
- if (field->type)
- field->type->ref++;
- }
-
- va_end(ap);
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELDTYPE *field_type(const FIELD *field)
-|
-| Description : Retrieve the associated fieldtype for this field.
-|
-| Return Values : Pointer to fieldtype of NULL if none is defined.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELDTYPE *)
-field_type (const FIELD * field)
-{
- return Normalize_Field(field)->type;
-}
-
-/* fld_type.c ends here */
diff --git a/ncurses-5.3/form/fld_user.c b/ncurses-5.3/form/fld_user.c
deleted file mode 100644
index 5136ac5..0000000
--- a/ncurses-5.3/form/fld_user.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_userptr(FIELD *field, void *usrptr)
-|
-| Description : Set the pointer that is reserved in any field to store
-| application relevant informations
-|
-| Return Values : E_OK - on success
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_field_userptr (FIELD * field, void *usrptr)
-{
- Normalize_Field( field )->usrptr = usrptr;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void *field_userptr(const FIELD *field)
-|
-| Description : Return the pointer that is reserved in any field to
-| store application relevant informations.
-|
-| Return Values : Value of pointer. If no such pointer has been set,
-| NULL is returned
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void *)
-field_userptr (const FIELD *field)
-{
- return Normalize_Field( field )->usrptr;
-}
-
-/* fld_user.c ends here */
diff --git a/ncurses-5.3/form/form.h b/ncurses-5.3/form/form.h
deleted file mode 100644
index 57f63a3..0000000
--- a/ncurses-5.3/form/form.h
+++ /dev/null
@@ -1,384 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#ifndef FORM_H
-#define FORM_H
-
-#include <curses.h>
-#include <eti.h>
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-
-typedef int Form_Options;
-typedef int Field_Options;
-
- /**********
- * _PAGE *
- **********/
-
-typedef struct {
- short pmin; /* index of first field on page */
- short pmax; /* index of last field on page */
- short smin; /* index of top leftmost field on page */
- short smax; /* index of bottom rightmost field on page */
-} _PAGE;
-
- /**********
- * FIELD *
- **********/
-
-typedef struct fieldnode {
- unsigned short status; /* flags */
- short rows; /* size in rows */
- short cols; /* size in cols */
- short frow; /* first row */
- short fcol; /* first col */
- int drows; /* dynamic rows */
- int dcols; /* dynamic cols */
- int maxgrow; /* maximum field growth */
- int nrow; /* offscreen rows */
- short nbuf; /* additional buffers */
- short just; /* justification */
- short page; /* page on form */
- short index; /* into form -> field */
- int pad; /* pad character */
- chtype fore; /* foreground attribute */
- chtype back; /* background attribute */
- Field_Options opts; /* options */
- struct fieldnode * snext; /* sorted order pointer */
- struct fieldnode * sprev; /* sorted order pointer */
- struct fieldnode * link; /* linked field chain */
- struct formnode * form; /* containing form */
- struct typenode * type; /* field type */
- void * arg; /* argument for type */
- char * buf; /* field buffers */
- void * usrptr; /* user pointer */
-} FIELD;
-
- /**************
- * FIELDTYPE *
- **************/
-
-typedef struct typenode {
- unsigned short status; /* flags */
- long ref; /* reference count */
- struct typenode * left; /* ptr to operand for | */
- struct typenode * right; /* ptr to operand for | */
-
- void* (*makearg)(va_list *); /* make fieldtype arg */
- void* (*copyarg)(const void *); /* copy fieldtype arg */
- void (*freearg)(void *); /* free fieldtype arg */
-
- bool (*fcheck)(FIELD *,const void *); /* field validation */
- bool (*ccheck)(int,const void *); /* character validation */
-
- bool (*next)(FIELD *,const void *); /* enumerate next value */
- bool (*prev)(FIELD *,const void *); /* enumerate prev value */
-
-} FIELDTYPE;
-
- /*********
- * FORM *
- *********/
-
-typedef struct formnode {
- unsigned short status; /* flags */
- short rows; /* size in rows */
- short cols; /* size in cols */
- int currow; /* current row in field window*/
- int curcol; /* current col in field window*/
- int toprow; /* in scrollable field window */
- int begincol; /* in horiz. scrollable field */
- short maxfield; /* number of fields */
- short maxpage; /* number of pages */
- short curpage; /* index into page */
- Form_Options opts; /* options */
- WINDOW * win; /* window */
- WINDOW * sub; /* subwindow */
- WINDOW * w; /* window for current field */
- FIELD ** field; /* field [maxfield] */
- FIELD * current; /* current field */
- _PAGE * page; /* page [maxpage] */
- void * usrptr; /* user pointer */
-
- void (*forminit)(struct formnode *);
- void (*formterm)(struct formnode *);
- void (*fieldinit)(struct formnode *);
- void (*fieldterm)(struct formnode *);
-
-} FORM;
-
-typedef void (*Form_Hook)(FORM *);
-
- /***************************
- * miscellaneous #defines *
- ***************************/
-
-/* field justification */
-#define NO_JUSTIFICATION (0)
-#define JUSTIFY_LEFT (1)
-#define JUSTIFY_CENTER (2)
-#define JUSTIFY_RIGHT (3)
-
-/* field options */
-#define O_VISIBLE (0x0001)
-#define O_ACTIVE (0x0002)
-#define O_PUBLIC (0x0004)
-#define O_EDIT (0x0008)
-#define O_WRAP (0x0010)
-#define O_BLANK (0x0020)
-#define O_AUTOSKIP (0x0040)
-#define O_NULLOK (0x0080)
-#define O_PASSOK (0x0100)
-#define O_STATIC (0x0200)
-
-/* form options */
-#define O_NL_OVERLOAD (0x0001)
-#define O_BS_OVERLOAD (0x0002)
-
-/* form driver commands */
-#define REQ_NEXT_PAGE (KEY_MAX + 1) /* move to next page */
-#define REQ_PREV_PAGE (KEY_MAX + 2) /* move to previous page */
-#define REQ_FIRST_PAGE (KEY_MAX + 3) /* move to first page */
-#define REQ_LAST_PAGE (KEY_MAX + 4) /* move to last page */
-
-#define REQ_NEXT_FIELD (KEY_MAX + 5) /* move to next field */
-#define REQ_PREV_FIELD (KEY_MAX + 6) /* move to previous field */
-#define REQ_FIRST_FIELD (KEY_MAX + 7) /* move to first field */
-#define REQ_LAST_FIELD (KEY_MAX + 8) /* move to last field */
-#define REQ_SNEXT_FIELD (KEY_MAX + 9) /* move to sorted next field */
-#define REQ_SPREV_FIELD (KEY_MAX + 10) /* move to sorted prev field */
-#define REQ_SFIRST_FIELD (KEY_MAX + 11) /* move to sorted first field */
-#define REQ_SLAST_FIELD (KEY_MAX + 12) /* move to sorted last field */
-#define REQ_LEFT_FIELD (KEY_MAX + 13) /* move to left to field */
-#define REQ_RIGHT_FIELD (KEY_MAX + 14) /* move to right to field */
-#define REQ_UP_FIELD (KEY_MAX + 15) /* move to up to field */
-#define REQ_DOWN_FIELD (KEY_MAX + 16) /* move to down to field */
-
-#define REQ_NEXT_CHAR (KEY_MAX + 17) /* move to next char in field */
-#define REQ_PREV_CHAR (KEY_MAX + 18) /* move to prev char in field */
-#define REQ_NEXT_LINE (KEY_MAX + 19) /* move to next line in field */
-#define REQ_PREV_LINE (KEY_MAX + 20) /* move to prev line in field */
-#define REQ_NEXT_WORD (KEY_MAX + 21) /* move to next word in field */
-#define REQ_PREV_WORD (KEY_MAX + 22) /* move to prev word in field */
-#define REQ_BEG_FIELD (KEY_MAX + 23) /* move to first char in field */
-#define REQ_END_FIELD (KEY_MAX + 24) /* move after last char in fld */
-#define REQ_BEG_LINE (KEY_MAX + 25) /* move to beginning of line */
-#define REQ_END_LINE (KEY_MAX + 26) /* move after last char in line */
-#define REQ_LEFT_CHAR (KEY_MAX + 27) /* move left in field */
-#define REQ_RIGHT_CHAR (KEY_MAX + 28) /* move right in field */
-#define REQ_UP_CHAR (KEY_MAX + 29) /* move up in field */
-#define REQ_DOWN_CHAR (KEY_MAX + 30) /* move down in field */
-
-#define REQ_NEW_LINE (KEY_MAX + 31) /* insert/overlay new line */
-#define REQ_INS_CHAR (KEY_MAX + 32) /* insert blank char at cursor */
-#define REQ_INS_LINE (KEY_MAX + 33) /* insert blank line at cursor */
-#define REQ_DEL_CHAR (KEY_MAX + 34) /* delete char at cursor */
-#define REQ_DEL_PREV (KEY_MAX + 35) /* delete char before cursor */
-#define REQ_DEL_LINE (KEY_MAX + 36) /* delete line at cursor */
-#define REQ_DEL_WORD (KEY_MAX + 37) /* delete line at cursor */
-#define REQ_CLR_EOL (KEY_MAX + 38) /* clear to end of line */
-#define REQ_CLR_EOF (KEY_MAX + 39) /* clear to end of field */
-#define REQ_CLR_FIELD (KEY_MAX + 40) /* clear entire field */
-#define REQ_OVL_MODE (KEY_MAX + 41) /* begin overlay mode */
-#define REQ_INS_MODE (KEY_MAX + 42) /* begin insert mode */
-#define REQ_SCR_FLINE (KEY_MAX + 43) /* scroll field forward a line */
-#define REQ_SCR_BLINE (KEY_MAX + 44) /* scroll field backward a line */
-#define REQ_SCR_FPAGE (KEY_MAX + 45) /* scroll field forward a page */
-#define REQ_SCR_BPAGE (KEY_MAX + 46) /* scroll field backward a page */
-#define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */
-#define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */
-#define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */
-#define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */
-#define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */
-#define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */
-#define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */
-#define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */
-
-#define REQ_VALIDATION (KEY_MAX + 55) /* validate field */
-#define REQ_NEXT_CHOICE (KEY_MAX + 56) /* display next field choice */
-#define REQ_PREV_CHOICE (KEY_MAX + 57) /* display prev field choice */
-
-#define MIN_FORM_COMMAND (KEY_MAX + 1) /* used by form_driver */
-#define MAX_FORM_COMMAND (KEY_MAX + 57) /* used by form_driver */
-
-#if defined(MAX_COMMAND)
-# if (MAX_FORM_COMMAND > MAX_COMMAND)
-# error Something is wrong -- MAX_FORM_COMMAND is greater than MAX_COMMAND
-# elif (MAX_COMMAND != (KEY_MAX + 128))
-# error Something is wrong -- MAX_COMMAND is already inconsistently defined.
-# endif
-#else
-# define MAX_COMMAND (KEY_MAX + 128)
-#endif
-
- /*************************
- * standard field types *
- *************************/
-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA;
-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM;
-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM;
-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER;
-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
-
- /************************************
- * built-in additional field types *
- * They are not defined in SVr4 *
- ************************************/
-extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */
-
- /***********************
- * Default objects *
- ***********************/
-extern NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form;
-extern NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field;
-
-
- /***********************
- * FIELDTYPE routines *
- ***********************/
-extern NCURSES_EXPORT(FIELDTYPE *) new_fieldtype (
- bool (* const field_check)(FIELD *,const void *),
- bool (* const char_check)(int,const void *)),
- *link_fieldtype(FIELDTYPE *,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 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 *
- *******************/
-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 *
- ******************/
-
-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
- }
-#endif
-
-#endif /* FORM_H */
diff --git a/ncurses-5.3/form/form.priv.h b/ncurses-5.3/form/form.priv.h
deleted file mode 100644
index c1ca8e1..0000000
--- a/ncurses-5.3/form/form.priv.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "mf_common.h"
-#include "form.h"
-
-/* form status values */
-#define _OVLMODE (0x04) /* Form is in overlay mode */
-#define _WINDOW_MODIFIED (0x10) /* Current field window has been modified */
-#define _FCHECK_REQUIRED (0x20) /* Current field needs validation */
-
-/* field status values */
-#define _CHANGED (0x01) /* Field has been changed */
-#define _NEWTOP (0x02) /* Vertical scrolling occured */
-#define _NEWPAGE (0x04) /* field begins new page of form */
-#define _MAY_GROW (0x08) /* dynamic field may still grow */
-
-/* fieldtype status values */
-#define _LINKED_TYPE (0x01) /* Type is a linked type */
-#define _HAS_ARGS (0x02) /* Type has arguments */
-#define _HAS_CHOICE (0x04) /* Type has choice methods */
-#define _RESIDENT (0x08) /* Type is builtin */
-
-/* This are the field options required to be a selectable field in field
- navigation requests */
-#define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
-
-/* If form is NULL replace form argument by default-form */
-#define Normalize_Form(form) ((form)=(form)?(form):_nc_Default_Form)
-
-/* If field is NULL replace field argument by default-field */
-#define Normalize_Field(field) ((field)=(field)?(field):_nc_Default_Field)
-
-/* Retrieve forms window */
-#define Get_Form_Window(form) \
- ((form)->sub?(form)->sub:((form)->win?(form)->win:stdscr))
-
-/* Calculate the size for a single buffer for this field */
-#define Buffer_Length(field) ((field)->drows * (field)->dcols)
-
-/* Calculate the total size of all buffers for this field */
-#define Total_Buffer_Size(field) \
- ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) )
-
-/* Logic to determine whether or not a field is single lined */
-#define Single_Line_Field(field) \
- (((field)->rows + (field)->nrow) == 1)
-
-/* Logic to determine whether or not a field is selectable */
-#define Field_Is_Selectable(f) (((f)->opts & O_SELECTABLE)==O_SELECTABLE)
-#define Field_Is_Not_Selectable(f) (((f)->opts & O_SELECTABLE)!=O_SELECTABLE)
-
-typedef struct typearg {
- struct typearg *left;
- struct typearg *right;
-} TypeArgument;
-
-/* This is a dummy request code (normally invalid) to be used internally
- with the form_driver() routine to position to the first active field
- on the form
-*/
-#define FIRST_ACTIVE_MAGIC (-291056)
-
-#define ALL_FORM_OPTS ( \
- O_NL_OVERLOAD |\
- O_BS_OVERLOAD )
-
-#define ALL_FIELD_OPTS ( \
- O_VISIBLE |\
- O_ACTIVE |\
- O_PUBLIC |\
- O_EDIT |\
- O_WRAP |\
- O_BLANK |\
- O_AUTOSKIP|\
- O_NULLOK |\
- O_PASSOK |\
- O_STATIC )
-
-
-#define C_BLANK ' '
-#define is_blank(c) ((c)==C_BLANK)
-
-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*);
diff --git a/ncurses-5.3/form/frm_cursor.c b/ncurses-5.3/form/frm_cursor.c
deleted file mode 100644
index d7bce48..0000000
--- a/ncurses-5.3/form/frm_cursor.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int pos_form_cursor(FORM * form)
-|
-| Description : Moves the form window cursor to the location required
-| by the form driver to resume form processing. This may
-| be needed after the application calls a curses library
-| I/O routine that modifies the cursor position.
-|
-| Return Values : E_OK - Success
-| E_SYSTEM_ERROR - System error.
-| E_BAD_ARGUMENT - Invalid form pointer
-| E_NOT_POSTED - Form is not posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-pos_form_cursor (FORM * form)
-{
- int res;
-
- if (!form)
- res = E_BAD_ARGUMENT;
- else
- {
- if (!(form->status & _POSTED))
- res = E_NOT_POSTED;
- else
- res = _nc_Position_Form_Cursor(form);
- }
- RETURN(res);
-}
-
-/* frm_cursor.c ends here */
diff --git a/ncurses-5.3/form/frm_data.c b/ncurses-5.3/form/frm_data.c
deleted file mode 100644
index 6d211b8..0000000
--- a/ncurses-5.3/form/frm_data.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool data_behind(const FORM *form)
-|
-| Description : Check for off-screen data behind. This is nearly trivial
-| becose the begin of a field is fixed.
-|
-| Return Values : TRUE - there are off-screen data behind
-| FALSE - there are no off-screen data behind
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-data_behind (const FORM *form)
-{
- bool result = FALSE;
-
- if (form && (form->status & _POSTED) && form->current)
- {
- FIELD *field;
-
- field = form->current;
- if (!Single_Line_Field(field))
- {
- result = (form->toprow==0) ? FALSE : TRUE;
- }
- else
- {
- result = (form->begincol==0) ? FALSE : TRUE;
- }
- }
- return(result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char * After_Last_Non_Pad_Position(
-| char *buffer,
-| int len,
-| int pad)
-|
-| Description : Find the last position in the buffer that doesn't
-| contain a padding character.
-|
-| Return Values : The pointer to this position
-+--------------------------------------------------------------------------*/
-INLINE
-static char * After_Last_Non_Pad_Position(char *buffer, int len, int pad)
-{
- char *end = buffer + len;
-
- assert(buffer && len>=0);
- while ( (buffer < end) && (*(end-1)==pad) )
- end--;
-
- return end;
-}
-
-#define SMALL_BUFFER_SIZE (80)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool data_ahead(const FORM *form)
-|
-| Description : Check for off-screen data ahead. This is more difficult
-| because a dynamic field has a variable end.
-|
-| Return Values : TRUE - there are off-screen data ahead
-| FALSE - there are no off-screen data ahead
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-data_ahead (const FORM *form)
-{
- bool result = FALSE;
-
- if (form && (form->status & _POSTED) && form->current)
- {
- static char buffer[SMALL_BUFFER_SIZE + 1];
- FIELD *field;
- bool large_buffer;
- bool cursor_moved = FALSE;
- char *bp;
- char *found_content;
- int pos;
-
- field = form->current;
- assert(form->w);
-
- large_buffer = (field->cols > SMALL_BUFFER_SIZE);
- if (large_buffer)
- bp = (char *)malloc((size_t)(field->cols) + 1);
- else
- bp = buffer;
-
- assert(bp);
-
- if (Single_Line_Field(field))
- {
- int check_len;
-
- pos = form->begincol + field->cols;
- while (pos < field->dcols)
- {
- check_len = field->dcols - pos;
- if ( check_len >= field->cols )
- check_len = field->cols;
- cursor_moved = TRUE;
- wmove(form->w,0,pos);
- winnstr(form->w,bp,check_len);
- found_content =
- After_Last_Non_Pad_Position(bp,check_len,field->pad);
- if (found_content==bp)
- pos += field->cols;
- else
- {
- result = TRUE;
- break;
- }
- }
- }
- else
- {
- pos = form->toprow + field->rows;
- while (pos < field->drows)
- {
- cursor_moved = TRUE;
- wmove(form->w,pos,0);
- pos++;
- winnstr(form->w,bp,field->cols);
- found_content =
- After_Last_Non_Pad_Position(bp,field->cols,field->pad);
- if (found_content!=bp)
- {
- result = TRUE;
- break;
- }
- }
- }
-
- if (large_buffer)
- free(bp);
-
- if (cursor_moved)
- wmove(form->w,form->currow,form->curcol);
- }
- return(result);
-}
-
-/* frm_data.c ends here */
diff --git a/ncurses-5.3/form/frm_def.c b/ncurses-5.3/form/frm_def.c
deleted file mode 100644
index 2cb04b1..0000000
--- a/ncurses-5.3/form/frm_def.c
+++ /dev/null
@@ -1,382 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/* this can't be readonly */
-static FORM default_form = {
- 0, /* status */
- 0, /* rows */
- 0, /* cols */
- 0, /* currow */
- 0, /* curcol */
- 0, /* toprow */
- 0, /* begincol */
- -1, /* maxfield */
- -1, /* maxpage */
- -1, /* curpage */
- ALL_FORM_OPTS, /* opts */
- (WINDOW *)0, /* win */
- (WINDOW *)0, /* sub */
- (WINDOW *)0, /* w */
- (FIELD **)0, /* field */
- (FIELD *)0, /* current */
- (_PAGE *)0, /* page */
- (char *)0, /* usrptr */
- NULL, /* forminit */
- NULL, /* formterm */
- NULL, /* fieldinit */
- NULL /* fieldterm */
-};
-
-NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Insert_Field_By_Position(
-| FIELD *new_field,
-| FIELD *head )
-|
-| Description : Insert new_field into sorted fieldlist with head "head"
-| and return new head of sorted fieldlist. Sorting
-| criteria is (row,column). This is a circular list.
-|
-| Return Values : New head of sorted fieldlist
-+--------------------------------------------------------------------------*/
-static FIELD *Insert_Field_By_Position(FIELD *newfield, FIELD *head)
-{
- FIELD *current, *newhead;
-
- assert(newfield);
-
- if (!head)
- { /* empty list is trivial */
- newhead = newfield->snext = newfield->sprev = newfield;
- }
- else
- {
- newhead = current = head;
- while((current->frow < newfield->frow) ||
- ((current->frow==newfield->frow) &&
- (current->fcol < newfield->fcol)) )
- {
- current = current->snext;
- if (current==head)
- { /* We cycled through. Reset head to indicate that */
- head = (FIELD *)0;
- break;
- }
- }
- /* we leave the loop with current pointing to the field after newfield*/
- newfield->snext = current;
- newfield->sprev = current->sprev;
- newfield->snext->sprev = newfield;
- newfield->sprev->snext = newfield;
- if (current==head)
- newhead = newfield;
- }
- return(newhead);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Disconnect_Fields(FORM *form)
-|
-| Description : Break association between form and array of fields.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Disconnect_Fields( FORM * form )
-{
- if (form->field)
- {
- FIELD **fields;
-
- for(fields=form->field;*fields;fields++)
- {
- if (form == (*fields)->form)
- (*fields)->form = (FORM *)0;
- }
-
- form->rows = form->cols = 0;
- form->maxfield = form->maxpage = -1;
- form->field = (FIELD **)0;
- if (form->page)
- free(form->page);
- form->page = (_PAGE *)0;
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Connect_Fields(FORM *form, FIELD **fields)
-|
-| Description : Set association between form and array of fields.
-|
-| Return Values : E_OK - no error
-| E_CONNECTED - a field is already connected
-| E_BAD_ARGUMENT - Invalid form pointer or field array
-| E_SYSTEM_ERROR - not enough memory
-+--------------------------------------------------------------------------*/
-static int Connect_Fields(FORM * form, FIELD ** fields)
-{
- int field_cnt, j;
- int page_nr;
- int maximum_row_in_field, maximum_col_in_field;
- _PAGE *pg;
-
- assert(form);
-
- form->field = fields;
- form->maxfield = 0;
- form->maxpage = 0;
-
- if (!fields)
- RETURN(E_OK);
-
- page_nr = 0;
- /* store formpointer in fields and count pages */
- for(field_cnt=0;fields[field_cnt];field_cnt++)
- {
- if (fields[field_cnt]->form)
- RETURN(E_CONNECTED);
- if ( field_cnt==0 ||
- (fields[field_cnt]->status & _NEWPAGE))
- page_nr++;
- fields[field_cnt]->form = form;
- }
- if (field_cnt==0)
- RETURN(E_BAD_ARGUMENT);
-
- /* allocate page structures */
- if ( (pg = (_PAGE *)malloc(page_nr * sizeof(_PAGE))) != (_PAGE *)0 )
- {
- form->page = pg;
- }
- else
- RETURN(E_SYSTEM_ERROR);
-
- /* Cycle through fields and calculate page boundaries as well as
- size of the form */
- for(j=0;j<field_cnt;j++)
- {
- if (j==0)
- pg->pmin = j;
- else
- {
- if (fields[j]->status & _NEWPAGE)
- {
- pg->pmax = j-1;
- pg++;
- pg->pmin = j;
- }
- }
-
- maximum_row_in_field = fields[j]->frow + fields[j]->rows;
- maximum_col_in_field = fields[j]->fcol + fields[j]->cols;
-
- if (form->rows < maximum_row_in_field)
- form->rows = maximum_row_in_field;
- if (form->cols < maximum_col_in_field)
- form->cols = maximum_col_in_field;
- }
-
- pg->pmax = field_cnt-1;
- form->maxfield = field_cnt;
- form->maxpage = page_nr;
-
- /* Sort fields on form pages */
- for(page_nr = 0;page_nr < form->maxpage; page_nr++)
- {
- FIELD *fld = (FIELD *)0;
- for(j = form->page[page_nr].pmin;j <= form->page[page_nr].pmax;j++)
- {
- fields[j]->index = j;
- fields[j]->page = page_nr;
- fld = Insert_Field_By_Position(fields[j],fld);
- }
- form->page[page_nr].smin = fld->index;
- form->page[page_nr].smax = fld->sprev->index;
- }
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Associate_Fields(FORM *form, FIELD **fields)
-|
-| Description : Set association between form and array of fields.
-| If there are fields, position to first active field.
-|
-| Return Values : E_OK - success
-| any other - error occured
-+--------------------------------------------------------------------------*/
-INLINE static int Associate_Fields(FORM *form, FIELD **fields)
-{
- int res = Connect_Fields(form,fields);
- if (res == E_OK)
- {
- if (form->maxpage>0)
- {
- form->curpage = 0;
- form_driver(form,FIRST_ACTIVE_MAGIC);
- }
- else
- {
- form->curpage = -1;
- form->current = (FIELD *)0;
- }
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FORM *new_form( FIELD **fields )
-|
-| Description : Create new form with given array of fields.
-|
-| Return Values : Pointer to form. NULL if error occured.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FORM *)
-new_form (FIELD ** fields)
-{
- int err = E_SYSTEM_ERROR;
-
- FORM *form = (FORM *)malloc(sizeof(FORM));
-
- if (form)
- {
- *form = *_nc_Default_Form;
- if ((err=Associate_Fields(form,fields))!=E_OK)
- {
- free_form(form);
- form = (FORM *)0;
- }
- }
-
- if (!form)
- SET_ERROR(err);
-
- return(form);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int free_form( FORM *form )
-|
-| Description : Release internal memory associated with form.
-|
-| Return Values : E_OK - no error
-| E_BAD_ARGUMENT - invalid form pointer
-| E_POSTED - form is posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-free_form (FORM * form)
-{
- if ( !form )
- RETURN(E_BAD_ARGUMENT);
-
- if ( form->status & _POSTED)
- RETURN(E_POSTED);
-
- Disconnect_Fields( form );
- if (form->page)
- free(form->page);
- free(form);
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_fields( FORM *form, FIELD **fields )
-|
-| Description : Set a new association of an array of fields to a form
-|
-| Return Values : E_OK - no error
-| E_BAD_ARGUMENT - invalid form pointer
-| E_POSTED - form is posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_form_fields (FORM * form, FIELD ** fields)
-{
- FIELD **old;
- int res;
-
- if ( !form )
- RETURN(E_BAD_ARGUMENT);
-
- if ( form->status & _POSTED )
- RETURN(E_POSTED);
-
- old = form->field;
- Disconnect_Fields( form );
-
- if( (res = Associate_Fields( form, fields )) != E_OK )
- Connect_Fields( form, old );
-
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD **form_fields( const FORM *form )
-|
-| Description : Retrieve array of fields
-|
-| Return Values : Pointer to field array
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD **)
-form_fields (const FORM * form)
-{
- return (Normalize_Form( form )->field);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int field_count( const FORM *form )
-|
-| Description : Retrieve number of fields
-|
-| Return Values : Number of fields, -1 if none are defined
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-field_count (const FORM * form)
-{
- return (Normalize_Form( form )->maxfield);
-}
-
-/* frm_def.c ends here */
diff --git a/ncurses-5.3/form/frm_driver.c b/ncurses-5.3/form/frm_driver.c
deleted file mode 100644
index 090c9e0..0000000
--- a/ncurses-5.3/form/frm_driver.c
+++ /dev/null
@@ -1,3858 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*----------------------------------------------------------------------------
- This is the core module of the form library. It contains the majority
- of the driver routines as well as the form_driver function.
-
- Essentially this module is nearly the whole library. This is because
- all the functions in this module depends on some others in the module,
- so it makes no sense to split them into separate files because they
- will always be linked together. The only acceptable concern is turnaround
- time for this module, but now we have all Pentiums or Riscs, so what!
-
- The driver routines are grouped into nine generic categories:
-
- a) Page Navigation ( all functions prefixed by PN_ )
- The current page of the form is left and some new page is
- entered.
- b) Inter-Field Navigation ( all functions prefixed by FN_ )
- The current field of the form is left and some new field is
- entered.
- c) Intra-Field Navigation ( all functions prefixed by IFN_ )
- The current position in the current field is changed.
- d) Vertical Scrolling ( all functions prefixed by VSC_ )
- Esseantially this is a specialization of Intra-Field navigation.
- It has to check for a multi-line field.
- e) Horizontal Scrolling ( all functions prefixed by HSC_ )
- Esseantially this is a specialization of Intra-Field navigation.
- It has to check for a single-line field.
- f) Field Editing ( all functions prefixed by FE_ )
- The content of the current field is changed
- g) Edit Mode requests ( all functions prefixed by EM_ )
- Switching between insert and overlay mode
- h) Field-Validation requests ( all functions prefixed by FV_ )
- Perform verifications of the field.
- i) Choice requests ( all functions prefixed by CR_ )
- Requests to enumerate possible field values
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Some remarks on the placements of assert() macros :
- I use them only on "strategic" places, i.e. top level entries where
- I want to make sure that things are set correctly. Throughout subordinate
- routines I omit them mostly.
- --------------------------------------------------------------------------*/
-
-/*
-Some options that may effect compatibility in behavior to SVr4 forms,
-but they are here to allow a more intuitive and user friendly behaviour of
-our form implementation. This doesn't affect the API, so we feel it is
-uncritical.
-
-The initial implementation tries to stay very close with the behaviour
-of the original SVr4 implementation, although in some areas it is quite
-clear that this isn't the most appropriate way. As far as possible this
-sources will allow you to build a forms lib that behaves quite similar
-to SVr4, but now and in the future we will give you better options.
-Perhaps at some time we will make this configurable at runtime.
-*/
-
-/* Implement a more user-friendly previous/next word behaviour */
-#define FRIENDLY_PREV_NEXT_WORD (1)
-/* Fix the wrong behaviour for forms with all fields inactive */
-#define FIX_FORM_INACTIVE_BUG (1)
-/* Allow dynamic field growth also when navigating past the end */
-#define GROW_IF_NAVIGATE (1)
-
-/*----------------------------------------------------------------------------
- Forward references to some internally used static functions
- --------------------------------------------------------------------------*/
-static int Inter_Field_Navigation ( int (* const fct) (FORM *), FORM * form );
-static int FN_Next_Field (FORM * form);
-static int FN_Previous_Field (FORM * form);
-static int FE_New_Line(FORM *);
-static int FE_Delete_Previous(FORM *);
-
-/*----------------------------------------------------------------------------
- Macro Definitions.
-
- Some Remarks on that: I use the convention to use UPPERCASE for constants
- defined by Macros. If I provide a macro as a kind of inline routine to
- provide some logic, I use my Upper_Lower case style.
- --------------------------------------------------------------------------*/
-
-/* Calculate the position of a single row in a field buffer */
-#define Position_Of_Row_In_Buffer(field,row) ((row)*(field)->dcols)
-
-/* Calculate start address for the fields buffer# N */
-#define Address_Of_Nth_Buffer(field,N) \
- ((field)->buf + (N)*(1+Buffer_Length(field)))
-
-/* Calculate the start address of the row in the fields specified buffer# N */
-#define Address_Of_Row_In_Nth_Buffer(field,N,row) \
- (Address_Of_Nth_Buffer(field,N) + Position_Of_Row_In_Buffer(field,row))
-
-/* Calculate the start address of the row in the fields primary buffer */
-#define Address_Of_Row_In_Buffer(field,row) \
- Address_Of_Row_In_Nth_Buffer(field,0,row)
-
-/* Calculate the start address of the row in the forms current field
- buffer# N */
-#define Address_Of_Current_Row_In_Nth_Buffer(form,N) \
- Address_Of_Row_In_Nth_Buffer((form)->current,N,(form)->currow)
-
-/* Calculate the start address of the row in the forms current field
- primary buffer */
-#define Address_Of_Current_Row_In_Buffer(form) \
- Address_Of_Current_Row_In_Nth_Buffer(form,0)
-
-/* Calculate the address of the cursor in the forms current field
- primary buffer */
-#define Address_Of_Current_Position_In_Nth_Buffer(form,N) \
- (Address_Of_Current_Row_In_Nth_Buffer(form,N) + (form)->curcol)
-
-/* Calculate the address of the cursor in the forms current field
- buffer# N */
-#define Address_Of_Current_Position_In_Buffer(form) \
- Address_Of_Current_Position_In_Nth_Buffer(form,0)
-
-/* Logic to decide wether or not a field is actually a field with
- vertical or horizontal scrolling */
-#define Is_Scroll_Field(field) \
- (((field)->drows > (field)->rows) || \
- ((field)->dcols > (field)->cols))
-
-/* Logic to decide whether or not a field needs to have an individual window
- instead of a derived window because it contains invisible parts.
- This is true for non-public fields and for scrollable fields. */
-#define Has_Invisible_Parts(field) \
- (!((field)->opts & O_PUBLIC) || \
- Is_Scroll_Field(field))
-
-/* Logic to decide whether or not a field needs justification */
-#define Justification_Allowed(field) \
- (((field)->just != NO_JUSTIFICATION) && \
- (Single_Line_Field(field)) && \
- (((field)->dcols == (field)->cols) && \
- ((field)->opts & O_STATIC)) )
-
-/* Logic to determine whether or not a dynamic field may still grow */
-#define Growable(field) ((field)->status & _MAY_GROW)
-
-/* Macro to set the attributes for a fields window */
-#define Set_Field_Window_Attributes(field,win) \
-( wbkgdset((win),(chtype)((field)->pad | (field)->back)), \
- wattrset((win),(field)->fore) )
-
-/* Logic to decide whether or not a field really appears on the form */
-#define Field_Really_Appears(field) \
- ((field->form) &&\
- (field->form->status & _POSTED) &&\
- (field->opts & O_VISIBLE) &&\
- (field->page == field->form->curpage))
-
-/* Logic to determine whether or not we are on the first position in the
- current field */
-#define First_Position_In_Current_Field(form) \
- (((form)->currow==0) && ((form)->curcol==0))
-
-
-#define Minimum(a,b) (((a)<=(b)) ? (a) : (b))
-#define Maximum(a,b) (((a)>=(b)) ? (a) : (b))
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char *Get_Start_Of_Data(char * buf, int blen)
-|
-| Description : Return pointer to first non-blank position in buffer.
-| If buffer is empty return pointer to buffer itself.
-|
-| Return Values : Pointer to first non-blank position in buffer
-+--------------------------------------------------------------------------*/
-INLINE static char *Get_Start_Of_Data(char * buf, int blen)
-{
- char *p = buf;
- char *end = &buf[blen];
-
- assert(buf && blen>=0);
- while( (p < end) && is_blank(*p) )
- p++;
- return( (p==end) ? buf : p );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char *After_End_Of_Data(char * buf, int blen)
-|
-| Description : Return pointer after last non-blank position in buffer.
-| If buffer is empty, return pointer to buffer itself.
-|
-| Return Values : Pointer to position after last non-blank position in
-| buffer.
-+--------------------------------------------------------------------------*/
-INLINE static char *After_End_Of_Data(char * buf,int blen)
-{
- char *p = &buf[blen];
-
- assert(buf && blen>=0);
- while( (p>buf) && is_blank(p[-1]) )
- p--;
- return( p );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char *Get_First_Whitespace_Character(
-| char * buf, int blen)
-|
-| Description : Position to the first whitespace character.
-|
-| Return Values : Pointer to first whitespace character in buffer.
-+--------------------------------------------------------------------------*/
-INLINE static char *Get_First_Whitespace_Character(char * buf, int blen)
-{
- char *p = buf;
- char *end = &p[blen];
-
- assert(buf && blen>=0);
- while( (p < end) && !is_blank(*p))
- p++;
- return( (p==end) ? buf : p );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static char *After_Last_Whitespace_Character(
-| char * buf, int blen)
-|
-| Description : Get the position after the last whitespace character.
-|
-| Return Values : Pointer to position after last whitespace character in
-| buffer.
-+--------------------------------------------------------------------------*/
-INLINE static char *After_Last_Whitespace_Character(char * buf, int blen)
-{
- char *p = &buf[blen];
-
- assert(buf && blen>=0);
- while( (p>buf) && !is_blank(p[-1]) )
- p--;
- return( p );
-}
-
-/* Set this to 1 to use the div_t version. This is a good idea if your
- compiler has an intrinsic div() support. Unfortunately GNU-C has it
- not yet.
- N.B.: This only works if form->curcol follows immediately form->currow
- and both are of type int.
-*/
-#define USE_DIV_T (0)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Adjust_Cursor_Position(
-| FORM * form, const char * pos)
-|
-| Description : Set current row and column of the form to values
-| corresponding to the buffer position.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-INLINE static void Adjust_Cursor_Position(FORM * form, const char * pos)
-{
- FIELD *field;
- int idx;
-
- field = form->current;
- assert( pos >= field->buf && field->dcols > 0);
- idx = (int)( pos - field->buf );
-#if USE_DIV_T
- *((div_t *)&(form->currow)) = div(idx,field->dcols);
-#else
- form->currow = idx / field->dcols;
- form->curcol = idx - field->cols * form->currow;
-#endif
- if ( field->drows < form->currow )
- form->currow = 0;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Buffer_To_Window(
-| const FIELD * field,
-| WINDOW * win)
-|
-| Description : Copy the buffer to the window. If its a multiline
-| field, the buffer is split to the lines of the
-| window without any editing.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Buffer_To_Window(const FIELD * field, WINDOW * win)
-{
- int width, height;
- int len;
- int row;
- char *pBuffer;
-
- assert(win && field);
-
- width = getmaxx(win);
- height = getmaxy(win);
-
- for(row=0, pBuffer=field->buf;
- row < height;
- row++, pBuffer += width )
- {
- if ((len = (int)( After_End_Of_Data( pBuffer, width ) - pBuffer )) > 0)
- {
- wmove( win, row, 0 );
- waddnstr( win, pBuffer, len );
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Window_To_Buffer(
-| WINDOW * win,
-| FIELD * field)
-|
-| Description : Copy the content of the window into the buffer.
-| The multiple lines of a window are simply
-| concatenated into the buffer. Pad characters in
-| the window will be replaced by blanks in the buffer.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Window_To_Buffer(WINDOW * win, FIELD * field)
-{
- int pad;
- int len = 0;
- char *p;
- int row, height;
-
- assert(win && field && field->buf );
-
- pad = field->pad;
- p = field->buf;
- height = getmaxy(win);
-
- for(row=0; (row < height) && (row < field->drows); row++ )
- {
- wmove( win, row, 0 );
- len += winnstr( win, p+len, field->dcols );
- }
- p[len] = '\0';
-
- /* replace visual padding character by blanks in buffer */
- if (pad != C_BLANK)
- {
- int i;
- for(i=0; i<len; i++, p++)
- {
- if (*p==pad)
- *p = C_BLANK;
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Synchronize_Buffer(FORM * form)
-|
-| Description : If there was a change, copy the content of the
-| window into the buffer, so the buffer is synchronized
-| with the windows content. We have to indicate that the
-| buffer needs validation due to the change.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-INLINE static void Synchronize_Buffer(FORM * form)
-{
- if (form->status & _WINDOW_MODIFIED)
- {
- form->status &= ~_WINDOW_MODIFIED;
- form->status |= _FCHECK_REQUIRED;
- Window_To_Buffer(form->w,form->current);
- wmove(form->w,form->currow,form->curcol);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Field_Grown( FIELD *field, int amount)
-|
-| Description : This function is called for growable dynamic fields
-| only. It has to increase the buffers and to allocate
-| a new window for this field.
-| This function has the side effect to set a new
-| field-buffer pointer, the dcols and drows values
-| as well as a new current Window for the field.
-|
-| Return Values : TRUE - field successfully increased
-| FALSE - there was some error
-+--------------------------------------------------------------------------*/
-static bool Field_Grown(FIELD * field, int amount)
-{
- bool result = FALSE;
-
- if (field && Growable(field))
- {
- bool single_line_field = Single_Line_Field(field);
- int old_buflen = Buffer_Length(field);
- int new_buflen;
- int old_dcols = field->dcols;
- int old_drows = field->drows;
- char *oldbuf = field->buf;
- char *newbuf;
-
- int growth;
- FORM *form = field->form;
- bool need_visual_update = ((form != (FORM *)0) &&
- (form->status & _POSTED) &&
- (form->current==field));
-
- if (need_visual_update)
- Synchronize_Buffer(form);
-
- if (single_line_field)
- {
- growth = field->cols * amount;
- if (field->maxgrow)
- growth = Minimum(field->maxgrow - field->dcols,growth);
- field->dcols += growth;
- if (field->dcols == field->maxgrow)
- field->status &= ~_MAY_GROW;
- }
- else
- {
- growth = (field->rows + field->nrow) * amount;
- if (field->maxgrow)
- growth = Minimum(field->maxgrow - field->drows,growth);
- field->drows += growth;
- if (field->drows == field->maxgrow)
- field->status &= ~_MAY_GROW;
- }
- /* drows, dcols changed, so we get really the new buffer length */
- new_buflen = Buffer_Length(field);
- newbuf=(char *)malloc((size_t)Total_Buffer_Size(field));
- if (!newbuf)
- { /* restore to previous state */
- field->dcols = old_dcols;
- field->drows = old_drows;
- if (( single_line_field && (field->dcols!=field->maxgrow)) ||
- (!single_line_field && (field->drows!=field->maxgrow)))
- field->status |= _MAY_GROW;
- return FALSE;
- }
- else
- { /* Copy all the buffers. This is the reason why we can't
- just use realloc().
- */
- int i;
- char *old_bp;
- char *new_bp;
-
- field->buf = newbuf;
- for(i=0;i<=field->nbuf;i++)
- {
- new_bp = Address_Of_Nth_Buffer(field,i);
- old_bp = oldbuf + i*(1+old_buflen);
- memcpy(new_bp,old_bp,(size_t)old_buflen);
- if (new_buflen > old_buflen)
- memset(new_bp + old_buflen,C_BLANK,
- (size_t)(new_buflen - old_buflen));
- *(new_bp + new_buflen) = '\0';
- }
-
- if (need_visual_update)
- {
- WINDOW *new_window = newpad(field->drows,field->dcols);
- if (!new_window)
- { /* restore old state */
- field->dcols = old_dcols;
- field->drows = old_drows;
- field->buf = oldbuf;
- if (( single_line_field &&
- (field->dcols!=field->maxgrow)) ||
- (!single_line_field &&
- (field->drows!=field->maxgrow)))
- field->status |= _MAY_GROW;
- free( newbuf );
- return FALSE;
- }
- assert(form!=(FORM *)0);
- if (form->w)
- delwin(form->w);
- form->w = new_window;
- Set_Field_Window_Attributes(field,form->w);
- werase(form->w);
- Buffer_To_Window(field,form->w);
- untouchwin(form->w);
- wmove(form->w,form->currow,form->curcol);
- }
-
- free(oldbuf);
- /* reflect changes in linked fields */
- if (field != field->link)
- {
- FIELD *linked_field;
- for(linked_field = field->link;
- linked_field!= field;
- linked_field = linked_field->link)
- {
- linked_field->buf = field->buf;
- linked_field->drows = field->drows;
- linked_field->dcols = field->dcols;
- }
- }
- result = TRUE;
- }
- }
- return(result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Position_Form_Cursor(FORM * form)
-|
-| Description : Position the cursor in the window for the current
-| field to be in sync. with the currow and curcol
-| values.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_SYSTEM_ERROR - form has no current field or
-| field-window
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Position_Form_Cursor (FORM * form)
-{
- FIELD *field;
- WINDOW *formwin;
-
- if (!form)
- return(E_BAD_ARGUMENT);
-
- if (!form->w || !form->current)
- return(E_SYSTEM_ERROR);
-
- field = form->current;
- formwin = Get_Form_Window(form);
-
- wmove( form->w, form->currow, form->curcol );
- if ( Has_Invisible_Parts(field) )
- {
- /* in this case fieldwin isn't derived from formwin, so we have
- to move the cursor in formwin by hand... */
- wmove(formwin,
- field->frow + form->currow - form->toprow,
- field->fcol + form->curcol - form->begincol);
- wcursyncup(formwin);
- }
- else
- wcursyncup(form->w);
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Refresh_Current_Field(FORM * form)
-|
-| Description : Propagate the changes in the fields window to the
-| window of the form.
-|
-| Return Values : E_OK - on success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_SYSTEM_ERROR - general error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Refresh_Current_Field (FORM * form)
-{
- WINDOW *formwin;
- FIELD *field;
-
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (!form->w || !form->current)
- RETURN(E_SYSTEM_ERROR);
-
- field = form->current;
- formwin = Get_Form_Window(form);
-
- if (field->opts & O_PUBLIC)
- {
- if (Is_Scroll_Field(field))
- {
- /* Again, in this case the fieldwin isn't derived from formwin,
- so we have to perform a copy operation. */
- if (Single_Line_Field(field))
- { /* horizontal scrolling */
- if (form->curcol < form->begincol)
- form->begincol = form->curcol;
- else
- {
- if (form->curcol >= (form->begincol + field->cols))
- form->begincol = form->curcol - field->cols + 1;
- }
- copywin(form->w,
- formwin,
- 0,
- form->begincol,
- field->frow,
- field->fcol,
- field->frow,
- field->cols + field->fcol - 1,
- 0);
- }
- else
- { /* A multiline, i.e. vertical scrolling field */
- int row_after_bottom,first_modified_row,first_unmodified_row;
-
- if (field->drows > field->rows)
- {
- row_after_bottom = form->toprow + field->rows;
- if (form->currow < form->toprow)
- {
- form->toprow = form->currow;
- field->status |= _NEWTOP;
- }
- if (form->currow >= row_after_bottom)
- {
- form->toprow = form->currow - field->rows + 1;
- field->status |= _NEWTOP;
- }
- if (field->status & _NEWTOP)
- { /* means we have to copy whole range */
- first_modified_row = form->toprow;
- first_unmodified_row = first_modified_row + field->rows;
- field->status &= ~_NEWTOP;
- }
- else
- { /* we try to optimize : finding the range of touched
- lines */
- first_modified_row = form->toprow;
- while(first_modified_row < row_after_bottom)
- {
- if (is_linetouched(form->w,first_modified_row))
- break;
- first_modified_row++;
- }
- first_unmodified_row = first_modified_row;
- while(first_unmodified_row < row_after_bottom)
- {
- if (!is_linetouched(form->w,first_unmodified_row))
- break;
- first_unmodified_row++;
- }
- }
- }
- else
- {
- first_modified_row = form->toprow;
- first_unmodified_row = first_modified_row + field->rows;
- }
- if (first_unmodified_row != first_modified_row)
- copywin(form->w,
- formwin,
- first_modified_row,
- 0,
- field->frow + first_modified_row - form->toprow,
- field->fcol,
- field->frow + first_unmodified_row - form->toprow - 1,
- field->cols + field->fcol - 1,
- 0);
- }
- wsyncup(formwin);
- }
- else
- { /* if the field-window is simply a derived window, i.e. contains
- no invisible parts, the whole thing is trivial
- */
- wsyncup(form->w);
- }
- }
- untouchwin(form->w);
- return _nc_Position_Form_Cursor(form);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Perform_Justification(
-| FIELD * field,
-| WINDOW * win)
-|
-| Description : Output field with requested justification
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Perform_Justification(FIELD * field, WINDOW * win)
-{
- char *bp;
- int len;
- int col = 0;
-
- bp = Get_Start_Of_Data(field->buf,Buffer_Length(field));
- len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field)) - bp);
-
- if (len>0)
- {
- assert(win && (field->drows == 1) && (field->dcols == field->cols));
-
- switch(field->just)
- {
- case JUSTIFY_LEFT:
- break;
- case JUSTIFY_CENTER:
- col = (field->cols - len)/2;
- break;
- case JUSTIFY_RIGHT:
- col = field->cols - len;
- break;
- default:
- break;
- }
-
- wmove(win,0,col);
- waddnstr(win,bp,len);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Undo_Justification(
-| FIELD * field,
-| WINDOW * win)
-|
-| Description : Display field without any justification, i.e.
-| left justified
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Undo_Justification(FIELD * field, WINDOW * win)
-{
- char *bp;
- int len;
-
- bp = Get_Start_Of_Data(field->buf,Buffer_Length(field));
- len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field))-bp);
-
- if (len>0)
- {
- assert(win);
- wmove(win,0,0);
- waddnstr(win,bp,len);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Char(
-| FIELDTYPE * typ,
-| int ch,
-| TypeArgument *argp)
-|
-| Description : Perform a single character check for character ch
-| according to the fieldtype instance.
-|
-| Return Values : TRUE - Character is valid
-| FALSE - Character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Char(FIELDTYPE * typ, int ch, TypeArgument *argp)
-{
- if (typ)
- {
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return(
- Check_Char(typ->left ,ch,argp->left ) ||
- Check_Char(typ->right,ch,argp->right) );
- }
- else
- {
- if (typ->ccheck)
- return typ->ccheck(ch,(void *)argp);
- }
- }
- return (isprint((unsigned char)ch) ? TRUE : FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Display_Or_Erase_Field(
-| FIELD * field,
-| bool bEraseFlag)
-|
-| Description : Create a subwindow for the field and display the
-| buffer contents (apply justification if required)
-| or simply erase the field.
-|
-| Return Values : E_OK - on success
-| E_SYSTEM_ERROR - some error (typical no memory)
-+--------------------------------------------------------------------------*/
-static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag)
-{
- WINDOW *win;
- WINDOW *fwin;
-
- if (!field)
- return E_SYSTEM_ERROR;
-
- fwin = Get_Form_Window(field->form);
- win = derwin(fwin,
- field->rows,field->cols,field->frow,field->fcol);
-
- if (!win)
- return E_SYSTEM_ERROR;
- else
- {
- if (field->opts & O_VISIBLE)
- Set_Field_Window_Attributes(field,win);
- else
- wattrset(win,getattrs(fwin));
- werase(win);
- }
-
- if (!bEraseFlag)
- {
- if (field->opts & O_PUBLIC)
- {
- if (Justification_Allowed(field))
- Perform_Justification(field,win);
- else
- Buffer_To_Window(field,win);
- }
- field->status &= ~_NEWTOP;
- }
- wsyncup(win);
- delwin(win);
- return E_OK;
-}
-
-/* Macros to preset the bEraseFlag */
-#define Display_Field(field) Display_Or_Erase_Field(field,FALSE)
-#define Erase_Field(field) Display_Or_Erase_Field(field,TRUE)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Synchronize_Field(FIELD * field)
-|
-| Description : Synchronize the windows content with the value in
-| the buffer.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-static int Synchronize_Field(FIELD * field)
-{
- FORM *form;
- int res = E_OK;
-
- if (!field)
- return(E_BAD_ARGUMENT);
-
- if (((form=field->form) != (FORM *)0)
- && Field_Really_Appears(field))
- {
- if (field == form->current)
- {
- form->currow = form->curcol = form->toprow = form->begincol = 0;
- werase(form->w);
-
- if ( (field->opts & O_PUBLIC) && Justification_Allowed(field) )
- Undo_Justification( field, form->w );
- else
- Buffer_To_Window( field, form->w );
-
- field->status |= _NEWTOP;
- res = _nc_Refresh_Current_Field( form );
- }
- else
- res = Display_Field( field );
- }
- field->status |= _CHANGED;
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Synchronize_Linked_Fields(FIELD * field)
-|
-| Description : Propagate the Synchronize_Field function to all linked
-| fields. The first error that occurs in the sequence
-| of updates is the returnvalue.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-static int Synchronize_Linked_Fields(FIELD * field)
-{
- FIELD *linked_field;
- int res = E_OK;
- int syncres;
-
- if (!field)
- return(E_BAD_ARGUMENT);
-
- if (!field->link)
- return(E_SYSTEM_ERROR);
-
- for(linked_field = field->link;
- linked_field!= field;
- linked_field = linked_field->link )
- {
- if (((syncres=Synchronize_Field(linked_field)) != E_OK) &&
- (res==E_OK))
- res = syncres;
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Synchronize_Attributes(FIELD * field)
-|
-| Description : If a fields visual attributes have changed, this
-| routine is called to propagate those changes to the
-| screen.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Synchronize_Attributes (FIELD * field)
-{
- FORM *form;
- int res = E_OK;
- WINDOW *formwin;
-
- if (!field)
- return(E_BAD_ARGUMENT);
-
- if (((form=field->form) != (FORM *)0)
- && Field_Really_Appears(field))
- {
- if (form->current==field)
- {
- Synchronize_Buffer(form);
- Set_Field_Window_Attributes(field,form->w);
- werase(form->w);
- if (field->opts & O_PUBLIC)
- {
- if (Justification_Allowed(field))
- Undo_Justification(field,form->w);
- else
- Buffer_To_Window(field,form->w);
- }
- else
- {
- formwin = Get_Form_Window(form);
- copywin(form->w,formwin,
- 0,0,
- field->frow,field->fcol,
- field->rows-1,field->cols-1,0);
- wsyncup(formwin);
- Buffer_To_Window(field,form->w);
- field->status |= _NEWTOP; /* fake refresh to paint all */
- _nc_Refresh_Current_Field(form);
- }
- }
- else
- {
- res = Display_Field(field);
- }
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Synchronize_Options(FIELD * field,
-| Field_Options newopts)
-|
-| Description : If a fields options have changed, this routine is
-| called to propagate these changes to the screen and
-| to really change the behaviour of the field.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Synchronize_Options
-(FIELD *field, Field_Options newopts)
-{
- Field_Options oldopts;
- Field_Options changed_opts;
- FORM *form;
- int res = E_OK;
-
- if (!field)
- return(E_BAD_ARGUMENT);
-
- oldopts = field->opts;
- changed_opts = oldopts ^ newopts;
- field->opts = newopts;
- form = field->form;
-
- if (form)
- {
- if (form->current == field)
- {
- field->opts = oldopts;
- return(E_CURRENT);
- }
-
- if (form->status & _POSTED)
- {
- if ((form->curpage == field->page))
- {
- if (changed_opts & O_VISIBLE)
- {
- if (newopts & O_VISIBLE)
- res = Display_Field(field);
- else
- res = Erase_Field(field);
- }
- else
- {
- if ((changed_opts & O_PUBLIC) &&
- (newopts & O_VISIBLE))
- res = Display_Field(field);
- }
- }
- }
- }
-
- if (changed_opts & O_STATIC)
- {
- bool single_line_field = Single_Line_Field(field);
- int res2 = E_OK;
-
- if (newopts & O_STATIC)
- { /* the field becomes now static */
- field->status &= ~_MAY_GROW;
- /* if actually we have no hidden columns, justification may
- occur again */
- if (single_line_field &&
- (field->cols == field->dcols) &&
- (field->just != NO_JUSTIFICATION) &&
- Field_Really_Appears(field))
- {
- res2 = Display_Field(field);
- }
- }
- else
- { /* field is no longer static */
- if ((field->maxgrow==0) ||
- ( single_line_field && (field->dcols < field->maxgrow)) ||
- (!single_line_field && (field->drows < field->maxgrow)))
- {
- field->status |= _MAY_GROW;
- /* a field with justification now changes its behaviour,
- so we must redisplay it */
- if (single_line_field &&
- (field->just != NO_JUSTIFICATION) &&
- Field_Really_Appears(field))
- {
- res2 = Display_Field(field);
- }
- }
- }
- if (res2 != E_OK)
- res = res2;
- }
-
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Set_Current_Field(FORM * form,
-| FIELD * newfield)
-|
-| Description : Make the newfield the new current field.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form or field pointer
-| E_SYSTEM_ERROR - some severe basic error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Set_Current_Field
-(FORM *form, FIELD *newfield)
-{
- FIELD *field;
- WINDOW *new_window;
-
- if (!form || !newfield || !form->current || (newfield->form!=form))
- return(E_BAD_ARGUMENT);
-
- if ( (form->status & _IN_DRIVER) )
- return(E_BAD_STATE);
-
- if (!(form->field))
- return(E_NOT_CONNECTED);
-
- field = form->current;
-
- if ((field!=newfield) ||
- !(form->status & _POSTED))
- {
- if ((form->w) &&
- (field->opts & O_VISIBLE) &&
- (field->form->curpage == field->page))
- {
- _nc_Refresh_Current_Field(form);
- if (field->opts & O_PUBLIC)
- {
- if (field->drows > field->rows)
- {
- if (form->toprow==0)
- field->status &= ~_NEWTOP;
- else
- field->status |= _NEWTOP;
- }
- else
- {
- if (Justification_Allowed(field))
- {
- Window_To_Buffer(form->w,field);
- werase(form->w);
- Perform_Justification(field,form->w);
- wsyncup(form->w);
- }
- }
- }
- delwin(form->w);
- form->w = (WINDOW *)0;
- }
-
- field = newfield;
-
- if (Has_Invisible_Parts(field))
- new_window = newpad(field->drows,field->dcols);
- else
- new_window = derwin(Get_Form_Window(form),
- field->rows,field->cols,field->frow,field->fcol);
-
- if (!new_window)
- return(E_SYSTEM_ERROR);
-
- form->current = field;
-
- if (form->w)
- delwin(form->w);
- form->w = new_window;
-
- form->status &= ~_WINDOW_MODIFIED;
- Set_Field_Window_Attributes(field,form->w);
-
- if (Has_Invisible_Parts(field))
- {
- werase(form->w);
- Buffer_To_Window(field,form->w);
- }
- else
- {
- if (Justification_Allowed(field))
- {
- werase(form->w);
- Undo_Justification(field,form->w);
- wsyncup(form->w);
- }
- }
-
- untouchwin(form->w);
- }
-
- form->currow = form->curcol = form->toprow = form->begincol = 0;
- return(E_OK);
-}
-
-/*----------------------------------------------------------------------------
- Intra-Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Next_Character(FORM * form)
-|
-| Description : Move to the next character in the field. In a multiline
-| field this wraps at the end of the line.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the rightmost position
-+--------------------------------------------------------------------------*/
-static int IFN_Next_Character(FORM * form)
-{
- FIELD *field = form->current;
-
- if ((++(form->curcol))==field->dcols)
- {
- if ((++(form->currow))==field->drows)
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1)) {
- form->curcol = 0;
- return(E_OK);
- }
-#endif
- form->currow--;
-#if GROW_IF_NAVIGATE
- if (Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
-#endif
- form->curcol--;
- return(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Previous_Character(FORM * form)
-|
-| Description : Move to the previous character in the field. In a
-| multiline field this wraps and the beginning of the
-| line.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the leftmost position
-+--------------------------------------------------------------------------*/
-static int IFN_Previous_Character(FORM * form)
-{
- if ((--(form->curcol))<0)
- {
- if ((--(form->currow))<0)
- {
- form->currow++;
- form->curcol++;
- return(E_REQUEST_DENIED);
- }
- form->curcol = form->current->dcols - 1;
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Next_Line(FORM * form)
-|
-| Description : Move to the beginning of the next line in the field
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the last line
-+--------------------------------------------------------------------------*/
-static int IFN_Next_Line(FORM * form)
-{
- FIELD *field = form->current;
-
- if ((++(form->currow))==field->drows)
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
-#endif
- form->currow--;
- return(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Previous_Line(FORM * form)
-|
-| Description : Move to the beginning of the previous line in the field
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - at the first line
-+--------------------------------------------------------------------------*/
-static int IFN_Previous_Line(FORM * form)
-{
- if ( (--(form->currow)) < 0 )
- {
- form->currow++;
- return(E_REQUEST_DENIED);
- }
- form->curcol = 0;
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Next_Word(FORM * form)
-|
-| Description : Move to the beginning of the next word in the field.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - there is no next word
-+--------------------------------------------------------------------------*/
-static int IFN_Next_Word(FORM * form)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Current_Position_In_Buffer(form);
- char *s;
- char *t;
-
- /* We really need access to the data, so we have to synchronize */
- Synchronize_Buffer(form);
-
- /* Go to the first whitespace after the current position (including
- current position). This is then the startpoint to look for the
- next non-blank data */
- s = Get_First_Whitespace_Character(bp,Buffer_Length(field) -
- (int)(bp - field->buf));
-
- /* Find the start of the next word */
- t = Get_Start_Of_Data(s,Buffer_Length(field) -
- (int)(s - field->buf));
-#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
- else
-#endif
- {
- Adjust_Cursor_Position(form,t);
- return(E_OK);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Previous_Word(FORM * form)
-|
-| Description : Move to the beginning of the previous word in the field.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - there is no previous word
-+--------------------------------------------------------------------------*/
-static int IFN_Previous_Word(FORM * form)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Current_Position_In_Buffer(form);
- char *s;
- char *t;
- bool again = FALSE;
-
- /* We really need access to the data, so we have to synchronize */
- Synchronize_Buffer(form);
-
- s = After_End_Of_Data(field->buf,(int)(bp-field->buf));
- /* s points now right after the last non-blank in the buffer before bp.
- If bp was in a word, s equals bp. In this case we must find the last
- whitespace in the buffer before bp and repeat the game to really find
- the previous word! */
- if (s==bp)
- again = TRUE;
-
- /* And next call now goes backward to look for the last whitespace
- before that, pointing right after this, so it points to the begin
- of the previous word.
- */
- t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf));
-#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
-#endif
- if (again)
- { /* and do it again, replacing bp by t */
- s = After_End_Of_Data(field->buf,(int)(t - field->buf));
- t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf));
-#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
-#endif
- }
- Adjust_Cursor_Position(form,t);
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Beginning_Of_Field(FORM * form)
-|
-| Description : Place the cursor at the first non-pad character in
-| the field.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int IFN_Beginning_Of_Field(FORM * form)
-{
- FIELD *field = form->current;
-
- Synchronize_Buffer(form);
- Adjust_Cursor_Position(form,
- Get_Start_Of_Data(field->buf,Buffer_Length(field)));
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_End_Of_Field(FORM * form)
-|
-| Description : Place the cursor after the last non-pad character in
-| the field. If the field occupies the last position in
-| the buffer, the cursos is positioned on the last
-| character.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int IFN_End_Of_Field(FORM * form)
-{
- FIELD *field = form->current;
- char *pos;
-
- Synchronize_Buffer(form);
- pos = After_End_Of_Data(field->buf,Buffer_Length(field));
- if (pos==(field->buf + Buffer_Length(field)))
- pos--;
- Adjust_Cursor_Position(form,pos);
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Beginning_Of_Line(FORM * form)
-|
-| Description : Place the cursor on the first non-pad character in
-| the current line of the field.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int IFN_Beginning_Of_Line(FORM * form)
-{
- FIELD *field = form->current;
-
- Synchronize_Buffer(form);
- Adjust_Cursor_Position(form,
- Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form),
- field->dcols));
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_End_Of_Line(FORM * form)
-|
-| Description : Place the cursor after the last non-pad character in the
-| current line of the field. If the field occupies the
-| last column in the line, the cursor is positioned on the
-| last character of the line.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int IFN_End_Of_Line(FORM * form)
-{
- FIELD *field = form->current;
- char *pos;
- char *bp;
-
- Synchronize_Buffer(form);
- bp = Address_Of_Current_Row_In_Buffer(form);
- pos = After_End_Of_Data(bp,field->dcols);
- if (pos == (bp + field->dcols))
- pos--;
- Adjust_Cursor_Position(form,pos);
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Left_Character(FORM * form)
-|
-| Description : Move one character to the left in the current line.
-| This doesn't cycle.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - already in first column
-+--------------------------------------------------------------------------*/
-static int IFN_Left_Character(FORM * form)
-{
- if ( (--(form->curcol)) < 0 )
- {
- form->curcol++;
- return(E_REQUEST_DENIED);
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Right_Character(FORM * form)
-|
-| Description : Move one character to the right in the current line.
-| This doesn't cycle.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - already in last column
-+--------------------------------------------------------------------------*/
-static int IFN_Right_Character(FORM * form)
-{
- if ( (++(form->curcol)) == form->current->dcols )
- {
-#if GROW_IF_NAVIGATE
- FIELD *field = form->current;
- if (Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
-#endif
- --(form->curcol);
- return(E_REQUEST_DENIED);
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Up_Character(FORM * form)
-|
-| Description : Move one line up. This doesn't cycle through the lines
-| of the field.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - already in last column
-+--------------------------------------------------------------------------*/
-static int IFN_Up_Character(FORM * form)
-{
- if ( (--(form->currow)) < 0 )
- {
- form->currow++;
- return(E_REQUEST_DENIED);
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int IFN_Down_Character(FORM * form)
-|
-| Description : Move one line down. This doesn't cycle through the
-| lines of the field.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - already in last column
-+--------------------------------------------------------------------------*/
-static int IFN_Down_Character(FORM * form)
-{
- FIELD *field = form->current;
-
- if ( (++(form->currow)) == field->drows )
- {
-#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
-#endif
- --(form->currow);
- return(E_REQUEST_DENIED);
- }
- return(E_OK);
-}
-/*----------------------------------------------------------------------------
- END of Intra-Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Vertical scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Generic(FORM *form, int lines)
-|
-| Description : Scroll multi-line field forward (lines>0) or
-| backward (lines<0) this many lines.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - can't scroll
-+--------------------------------------------------------------------------*/
-static int VSC_Generic(FORM *form, int lines)
-{
- FIELD *field = form->current;
- int res = E_REQUEST_DENIED;
- int rows_to_go = (lines > 0 ? lines : -lines);
-
- if (lines > 0)
- {
- if ( (rows_to_go + form->toprow) > (field->drows - field->rows) )
- rows_to_go = (field->drows - field->rows - form->toprow);
-
- if (rows_to_go > 0)
- {
- form->currow += rows_to_go;
- form->toprow += rows_to_go;
- res = E_OK;
- }
- }
- else
- {
- if (rows_to_go > form->toprow)
- rows_to_go = form->toprow;
-
- if (rows_to_go > 0)
- {
- form->currow -= rows_to_go;
- form->toprow -= rows_to_go;
- res = E_OK;
- }
- }
- return(res);
-}
-/*----------------------------------------------------------------------------
- End of Vertical scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Vertical scrolling routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Vertical_Scrolling(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Performs the generic vertical scrolling routines.
-| This has to check for a multi-line field and to set
-| the _NEWTOP flag if scrolling really occured.
-|
-| Return Values : Propagated error code from low-level driver calls
-+--------------------------------------------------------------------------*/
-static int Vertical_Scrolling(int (* const fct) (FORM *), FORM * form)
-{
- int res = E_REQUEST_DENIED;
-
- if (!Single_Line_Field(form->current))
- {
- res = fct(form);
- if (res == E_OK)
- form->current->status |= _NEWTOP;
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Line_Forward(FORM * form)
-|
-| Description : Scroll multi-line field forward a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Line_Forward(FORM * form)
-{
- return VSC_Generic(form,1);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Line_Backward(FORM * form)
-|
-| Description : Scroll multi-line field backward a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Line_Backward(FORM * form)
-{
- return VSC_Generic(form,-1);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Page_Forward(FORM * form)
-|
-| Description : Scroll a multi-line field forward a page
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Page_Forward(FORM * form)
-{
- return VSC_Generic(form,form->current->rows);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Half_Page_Forward(FORM * form)
-|
-| Description : Scroll a multi-line field forward half a page
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Half_Page_Forward(FORM * form)
-{
- return VSC_Generic(form,(form->current->rows + 1)/2);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Page_Backward(FORM * form)
-|
-| Description : Scroll a multi-line field backward a page
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Page_Backward(FORM * form)
-{
- return VSC_Generic(form, -(form->current->rows));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Scroll_Half_Page_Backward(FORM * form)
-|
-| Description : Scroll a multi-line field backward half a page
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Half_Page_Backward(FORM * form)
-{
- return VSC_Generic(form, -((form->current->rows + 1)/2));
-}
-/*----------------------------------------------------------------------------
- End of Vertical scrolling routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Horizontal scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Generic(FORM *form, int columns)
-|
-| Description : Scroll single-line field forward (columns>0) or
-| backward (columns<0) this many columns.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - can't scroll
-+--------------------------------------------------------------------------*/
-static int HSC_Generic(FORM *form, int columns)
-{
- FIELD *field = form->current;
- int res = E_REQUEST_DENIED;
- int cols_to_go = (columns > 0 ? columns : -columns);
-
- if (columns > 0)
- {
- if ((cols_to_go + form->begincol) > (field->dcols - field->cols))
- cols_to_go = field->dcols - field->cols - form->begincol;
-
- if (cols_to_go > 0)
- {
- form->curcol += cols_to_go;
- form->begincol += cols_to_go;
- res = E_OK;
- }
- }
- else
- {
- if ( cols_to_go > form->begincol )
- cols_to_go = form->begincol;
-
- if (cols_to_go > 0)
- {
- form->curcol -= cols_to_go;
- form->begincol -= cols_to_go;
- res = E_OK;
- }
- }
- return(res);
-}
-/*----------------------------------------------------------------------------
- End of Horizontal scrolling helper routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Horizontal scrolling routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Horizontal_Scrolling(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Performs the generic horizontal scrolling routines.
-| This has to check for a single-line field.
-|
-| Return Values : Propagated error code from low-level driver calls
-+--------------------------------------------------------------------------*/
-static int Horizontal_Scrolling(int (* const fct) (FORM *), FORM * form)
-{
- if (Single_Line_Field(form->current))
- return fct(form);
- else
- return(E_REQUEST_DENIED);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Scroll_Char_Forward(FORM * form)
-|
-| Description : Scroll single-line field forward a character
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int HSC_Scroll_Char_Forward(FORM *form)
-{
- return HSC_Generic(form,1);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Scroll_Char_Backward(FORM * form)
-|
-| Description : Scroll single-line field backward a character
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int HSC_Scroll_Char_Backward(FORM *form)
-{
- return HSC_Generic(form,-1);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Horizontal_Line_Forward(FORM* form)
-|
-| Description : Scroll single-line field forward a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Line_Forward(FORM * form)
-{
- return HSC_Generic(form,form->current->cols);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Horizontal_Half_Line_Forward(FORM* form)
-|
-| Description : Scroll single-line field forward half a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data ahead
-+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Half_Line_Forward(FORM * form)
-{
- return HSC_Generic(form,(form->current->cols + 1)/2);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Horizontal_Line_Backward(FORM* form)
-|
-| Description : Scroll single-line field backward a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Line_Backward(FORM * form)
-{
- return HSC_Generic(form,-(form->current->cols));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Horizontal_Half_Line_Backward(FORM* form)
-|
-| Description : Scroll single-line field backward half a line
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - no data behind
-+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Half_Line_Backward(FORM * form)
-{
- return HSC_Generic(form,-((form->current->cols + 1)/2));
-}
-
-/*----------------------------------------------------------------------------
- End of Horizontal scrolling routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Field Editing
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Is_There_Room_For_A_Line(FORM * form)
-|
-| Description : Check whether or not there is enough room in the
-| buffer to enter a whole line.
-|
-| Return Values : TRUE - there is enough space
-| FALSE - there is not enough space
-+--------------------------------------------------------------------------*/
-INLINE static bool Is_There_Room_For_A_Line(FORM * form)
-{
- FIELD *field = form->current;
- char *begin_of_last_line, *s;
-
- Synchronize_Buffer(form);
- begin_of_last_line = Address_Of_Row_In_Buffer(field,(field->drows-1));
- s = After_End_Of_Data(begin_of_last_line,field->dcols);
- return ((s==begin_of_last_line) ? TRUE : FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
-|
-| Description : Checks whether or not there is room for a new character
-| in the current line.
-|
-| Return Values : TRUE - there is room
-| FALSE - there is not enough room (line full)
-+--------------------------------------------------------------------------*/
-INLINE static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
-{
- int last_char_in_line;
-
- wmove(form->w,form->currow,form->current->dcols-1);
- last_char_in_line = (int)(winch(form->w) & A_CHARTEXT);
- wmove(form->w,form->currow,form->curcol);
- return (((last_char_in_line == form->current->pad) ||
- is_blank(last_char_in_line)) ? TRUE : FALSE);
-}
-
-#define There_Is_No_Room_For_A_Char_In_Line(f) \
- !Is_There_Room_For_A_Char_In_Line(f)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Insert_String(
-| FORM * form,
-| int row,
-| char *txt,
-| int len )
-|
-| Description : Insert the 'len' characters beginning at pointer 'txt'
-| into the 'row' of the 'form'. The insertion occurs
-| on the beginning of the row, all other characters are
-| moved to the right. After the text a pad character will
-| be inserted to separate the text from the rest. If
-| necessary the insertion moves characters on the next
-| line to make place for the requested insertion string.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED -
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-static int Insert_String(FORM *form, int row, char *txt, int len)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Row_In_Buffer(field,row);
- int datalen = (int)(After_End_Of_Data(bp,field->dcols) - bp);
- int freelen = field->dcols - datalen;
- int requiredlen = len+1;
- char *split;
- int result = E_REQUEST_DENIED;
- const char *Space = " ";
-
- if (freelen >= requiredlen)
- {
- wmove(form->w,row,0);
- winsnstr(form->w,txt,len);
- wmove(form->w,row,len);
- winsnstr(form->w,Space,1);
- return E_OK;
- }
- else
- { /* we have to move characters on the next line. If we are on the
- last line this may work, if the field is growable */
- if ((row == (field->drows - 1)) && Growable(field))
- {
- if (!Field_Grown(field,1))
- return(E_SYSTEM_ERROR);
- /* !!!Side-Effect : might be changed due to growth!!! */
- bp = Address_Of_Row_In_Buffer(field,row);
- }
-
- if (row < (field->drows - 1))
- {
- split = After_Last_Whitespace_Character(bp,
- (int)(Get_Start_Of_Data(bp + field->dcols - requiredlen ,
- requiredlen) - bp));
- /* split points now to the first character of the portion of the
- line that must be moved to the next line */
- datalen = (int)(split-bp); /* + freelen has to stay on this line */
- freelen = field->dcols - (datalen + freelen); /* for the next line */
-
- if ((result=Insert_String(form,row+1,split,freelen))==E_OK)
- {
- wmove(form->w,row,datalen);
- wclrtoeol(form->w);
- wmove(form->w,row,0);
- winsnstr(form->w,txt,len);
- wmove(form->w,row,len);
- winsnstr(form->w,Space,1);
- return E_OK;
- }
- }
- return(result);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Wrapping_Not_Necessary_Or_Wrapping_Ok(
-| FORM * form)
-|
-| Description : If a character has been entered into a field, it may
-| be that wrapping has to occur. This routine checks
-| whether or not wrapping is required and if so, performs
-| the wrapping.
-|
-| Return Values : E_OK - no wrapping required or wrapping
-| was successfull
-| E_REQUEST_DENIED -
-| E_SYSTEM_ERROR - some system error
-+--------------------------------------------------------------------------*/
-static int Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM * form)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
- bool Last_Row = ((field->drows - 1) == form->currow);
-
- if ( (field->opts & O_WRAP) && /* wrapping wanted */
- (!Single_Line_Field(field)) && /* must be multi-line */
- (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */
- (!Last_Row || Growable(field)) ) /* there are more lines*/
- {
- char *bp;
- char *split;
- int chars_to_be_wrapped;
- int chars_to_remain_on_line;
- if (Last_Row)
- { /* the above logic already ensures, that in this case the field
- is growable */
- if (!Field_Grown(field,1))
- return E_SYSTEM_ERROR;
- }
- bp = Address_Of_Current_Row_In_Buffer(form);
- Window_To_Buffer(form->w,field);
- split = After_Last_Whitespace_Character(bp,field->dcols);
- /* split points to the first character of the sequence to be brought
- on the next line */
- chars_to_remain_on_line = (int)(split - bp);
- chars_to_be_wrapped = field->dcols - chars_to_remain_on_line;
- if (chars_to_remain_on_line > 0)
- {
- if ((result=Insert_String(form,form->currow+1,split,
- chars_to_be_wrapped)) == E_OK)
- {
- wmove(form->w,form->currow,chars_to_remain_on_line);
- wclrtoeol(form->w);
- if (form->curcol >= chars_to_remain_on_line)
- {
- form->currow++;
- form->curcol -= chars_to_remain_on_line;
- }
- return E_OK;
- }
- }
- else
- return E_OK;
- if (result!=E_OK)
- {
- wmove(form->w,form->currow,form->curcol);
- wdelch(form->w);
- Window_To_Buffer(form->w,field);
- result = E_REQUEST_DENIED;
- }
- }
- else
- result = E_OK; /* wrapping was not necessary */
- return(result);
-}
-
-/*----------------------------------------------------------------------------
- Field Editing routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Field_Editing(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Generic routine for field editing requests. The driver
-| routines are only called for editable fields, the
-| _WINDOW_MODIFIED flag is set if editing occured.
-| This is somewhat special due to the overload semantics
-| of the NEW_LINE and DEL_PREV requests.
-|
-| Return Values : Error code from low level drivers.
-+--------------------------------------------------------------------------*/
-static int Field_Editing(int (* const fct) (FORM *), FORM * form)
-{
- int res = E_REQUEST_DENIED;
-
- /* We have to deal here with the specific case of the overloaded
- behaviour of New_Line and Delete_Previous requests.
- They may end up in navigational requests if we are on the first
- character in a field. But navigation is also allowed on non-
- editable fields.
- */
- if ((fct==FE_Delete_Previous) &&
- (form->opts & O_BS_OVERLOAD) &&
- First_Position_In_Current_Field(form) )
- {
- res = Inter_Field_Navigation(FN_Previous_Field,form);
- }
- else
- {
- if (fct==FE_New_Line)
- {
- if ((form->opts & O_NL_OVERLOAD) &&
- First_Position_In_Current_Field(form))
- {
- res = Inter_Field_Navigation(FN_Next_Field,form);
- }
- else
- /* FE_New_Line deals itself with the _WINDOW_MODIFIED flag */
- res = fct(form);
- }
- else
- {
- /* From now on, everything must be editable */
- if (form->current->opts & O_EDIT)
- {
- res = fct(form);
- if (res==E_OK)
- form->status |= _WINDOW_MODIFIED;
- }
- }
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_New_Line(FORM * form)
-|
-| Description : Perform a new line request. This is rather complex
-| compared to other routines in this code due to the
-| rather difficult to understand description in the
-| manuals.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - new line not allowed
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-static int FE_New_Line(FORM * form)
-{
- FIELD *field = form->current;
- char *bp, *t;
- bool Last_Row = ((field->drows - 1)==form->currow);
-
- if (form->status & _OVLMODE)
- {
- if (Last_Row &&
- (!(Growable(field) && !Single_Line_Field(field))))
- {
- if (!(form->opts & O_NL_OVERLOAD))
- return(E_REQUEST_DENIED);
- wclrtoeol(form->w);
- /* we have to set this here, although it is also
- handled in the generic routine. The reason is,
- that FN_Next_Field may fail, but the form is
- definitively changed */
- form->status |= _WINDOW_MODIFIED;
- return Inter_Field_Navigation(FN_Next_Field,form);
- }
- else
- {
- if (Last_Row && !Field_Grown(field,1))
- { /* N.B.: due to the logic in the 'if', LastRow==TRUE
- means here that the field is growable and not
- a single-line field */
- return(E_SYSTEM_ERROR);
- }
- wclrtoeol(form->w);
- form->currow++;
- form->curcol = 0;
- form->status |= _WINDOW_MODIFIED;
- return(E_OK);
- }
- }
- else
- { /* Insert Mode */
- if (Last_Row &&
- !(Growable(field) && !Single_Line_Field(field)))
- {
- if (!(form->opts & O_NL_OVERLOAD))
- return(E_REQUEST_DENIED);
- return Inter_Field_Navigation(FN_Next_Field,form);
- }
- else
- {
- bool May_Do_It = !Last_Row && Is_There_Room_For_A_Line(form);
-
- if (!(May_Do_It || Growable(field)))
- return(E_REQUEST_DENIED);
- if (!May_Do_It && !Field_Grown(field,1))
- return(E_SYSTEM_ERROR);
-
- bp= Address_Of_Current_Position_In_Buffer(form);
- t = After_End_Of_Data(bp,field->dcols - form->curcol);
- wclrtoeol(form->w);
- form->currow++;
- form->curcol=0;
- wmove(form->w,form->currow,form->curcol);
- winsertln(form->w);
- waddnstr(form->w,bp,(int)(t-bp));
- form->status |= _WINDOW_MODIFIED;
- return E_OK;
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Insert_Character(FORM * form)
-|
-| Description : Insert blank character at the cursor position
-|
-| Return Values : E_OK
-| E_REQUEST_DENIED
-+--------------------------------------------------------------------------*/
-static int FE_Insert_Character(FORM * form)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
-
- if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg)))
- {
- bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
-
- if (There_Is_Room ||
- ((Single_Line_Field(field) && Growable(field))))
- {
- if (!There_Is_Room && !Field_Grown(field,1))
- result = E_SYSTEM_ERROR;
- else
- {
- winsch(form->w,(chtype)C_BLANK);
- result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form);
- }
- }
- }
- return result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Insert_Line(FORM * form)
-|
-| Description : Insert a blank line at the cursor position
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - line can not be inserted
-+--------------------------------------------------------------------------*/
-static int FE_Insert_Line(FORM * form)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
-
- if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg)))
- {
- bool Maybe_Done = (form->currow!=(field->drows-1)) &&
- Is_There_Room_For_A_Line(form);
-
- if (!Single_Line_Field(field) &&
- (Maybe_Done || Growable(field)))
- {
- if (!Maybe_Done && !Field_Grown(field,1))
- result = E_SYSTEM_ERROR;
- else
- {
- form->curcol = 0;
- winsertln(form->w);
- result = E_OK;
- }
- }
- }
- return result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Delete_Character(FORM * form)
-|
-| Description : Delete character at the cursor position
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Delete_Character(FORM * form)
-{
- wdelch(form->w);
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Delete_Previous(FORM * form)
-|
-| Description : Delete character before cursor. Again this is a rather
-| difficult piece compared to others due to the overloading
-| semantics of backspace.
-| N.B.: The case of overloaded BS on first field position
-| is already handled in the generic routine.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - Character can't be deleted
-+--------------------------------------------------------------------------*/
-static int FE_Delete_Previous(FORM * form)
-{
- FIELD *field = form->current;
-
- if (First_Position_In_Current_Field(form))
- return E_REQUEST_DENIED;
-
- if ( (--(form->curcol))<0 )
- {
- char *this_line, *prev_line, *prev_end, *this_end;
-
- form->curcol++;
- if (form->status & _OVLMODE)
- return E_REQUEST_DENIED;
-
- prev_line = Address_Of_Row_In_Buffer(field,(form->currow-1));
- this_line = Address_Of_Row_In_Buffer(field,(form->currow));
- Synchronize_Buffer(form);
- prev_end = After_End_Of_Data(prev_line,field->dcols);
- this_end = After_End_Of_Data(this_line,field->dcols);
- if ((int)(this_end-this_line) >
- (field->cols-(int)(prev_end-prev_line)))
- return E_REQUEST_DENIED;
- wdeleteln(form->w);
- Adjust_Cursor_Position(form,prev_end);
- wmove(form->w,form->currow,form->curcol);
- waddnstr(form->w,this_line,(int)(this_end-this_line));
- }
- else
- {
- wmove(form->w,form->currow,form->curcol);
- wdelch(form->w);
- }
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Delete_Line(FORM * form)
-|
-| Description : Delete line at cursor position.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Delete_Line(FORM * form)
-{
- form->curcol = 0;
- wdeleteln(form->w);
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Delete_Word(FORM * form)
-|
-| Description : Delete word at cursor position
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - failure
-+--------------------------------------------------------------------------*/
-static int FE_Delete_Word(FORM * form)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Current_Row_In_Buffer(form);
- char *ep = bp + field->dcols;
- char *cp = bp + form->curcol;
- char *s;
-
- Synchronize_Buffer(form);
- if (is_blank(*cp))
- return E_REQUEST_DENIED; /* not in word */
-
- /* move cursor to begin of word and erase to end of screen-line */
- Adjust_Cursor_Position(form,
- After_Last_Whitespace_Character(bp,form->curcol));
- wmove(form->w,form->currow,form->curcol);
- wclrtoeol(form->w);
-
- /* skip over word in buffer */
- s = Get_First_Whitespace_Character(cp,(int)(ep-cp));
- /* to begin of next word */
- s = Get_Start_Of_Data(s,(int)(ep - s));
- if ( (s!=cp) && !is_blank(*s))
- {
- /* copy remaining line to window */
- waddnstr(form->w,s,(int)(s - After_End_Of_Data(s,(int)(ep - s))));
- }
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Clear_To_End_Of_Line(FORM * form)
-|
-| Description : Clear to end of current line.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Clear_To_End_Of_Line(FORM * form)
-{
- wclrtoeol(form->w);
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Clear_To_End_Of_Form(FORM * form)
-|
-| Description : Clear to end of form.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Clear_To_End_Of_Form(FORM * form)
-{
- wclrtobot(form->w);
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FE_Clear_Field(FORM * form)
-|
-| Description : Clear entire field.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int FE_Clear_Field(FORM * form)
-{
- form->currow = form->curcol = 0;
- werase(form->w);
- return E_OK;
-}
-/*----------------------------------------------------------------------------
- END of Field Editing routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Edit Mode routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int EM_Overlay_Mode(FORM * form)
-|
-| Description : Switch to overlay mode.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int EM_Overlay_Mode(FORM * form)
-{
- form->status |= _OVLMODE;
- return E_OK;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int EM_Insert_Mode(FORM * form)
-|
-| Description : Switch to insert mode
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-static int EM_Insert_Mode(FORM * form)
-{
- form->status &= ~_OVLMODE;
- return E_OK;
-}
-
-/*----------------------------------------------------------------------------
- END of Edit Mode routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Choice Requests
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Next_Choice(
-| FIELDTYPE * typ,
-| FIELD * field,
-| TypeArgument *argp)
-|
-| Description : Get the next field choice. For linked types this is
-| done recursively.
-|
-| Return Values : TRUE - next choice successfully retrieved
-| FALSE - couldn't retrieve next choice
-+--------------------------------------------------------------------------*/
-static bool Next_Choice(FIELDTYPE * typ, FIELD *field, TypeArgument *argp)
-{
- if (!typ || !(typ->status & _HAS_CHOICE))
- return FALSE;
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return(
- Next_Choice(typ->left ,field,argp->left) ||
- Next_Choice(typ->right,field,argp->right) );
- }
- else
- {
- assert(typ->next);
- return typ->next(field,(void *)argp);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Previous_Choice(
-| FIELDTYPE * typ,
-| FIELD * field,
-| TypeArgument *argp)
-|
-| Description : Get the previous field choice. For linked types this
-| is done recursively.
-|
-| Return Values : TRUE - previous choice successfully retrieved
-| FALSE - couldn't retrieve previous choice
-+--------------------------------------------------------------------------*/
-static bool Previous_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
-{
- if (!typ || !(typ->status & _HAS_CHOICE))
- return FALSE;
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return(
- Previous_Choice(typ->left ,field,argp->left) ||
- Previous_Choice(typ->right,field,argp->right));
- }
- else
- {
- assert(typ->prev);
- return typ->prev(field,(void *)argp);
- }
-}
-/*----------------------------------------------------------------------------
- End of Helper routines for Choice Requests
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Routines for Choice Requests
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int CR_Next_Choice(FORM * form)
-|
-| Description : Get the next field choice.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - next choice couldn't be retrieved
-+--------------------------------------------------------------------------*/
-static int CR_Next_Choice(FORM * form)
-{
- FIELD *field = form->current;
- Synchronize_Buffer(form);
- return ((Next_Choice(field->type,field,(TypeArgument *)(field->arg))) ?
- E_OK : E_REQUEST_DENIED);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int CR_Previous_Choice(FORM * form)
-|
-| Description : Get the previous field choice.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - prev. choice couldn't be retrieved
-+--------------------------------------------------------------------------*/
-static int CR_Previous_Choice(FORM * form)
-{
- FIELD *field = form->current;
- Synchronize_Buffer(form);
- return ((Previous_Choice(field->type,field,(TypeArgument *)(field->arg))) ?
- E_OK : E_REQUEST_DENIED);
-}
-/*----------------------------------------------------------------------------
- End of Routines for Choice Requests
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Field Validations.
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Field(
-| FIELDTYPE * typ,
-| FIELD * field,
-| TypeArgument * argp)
-|
-| Description : Check the field according to its fieldtype and its
-| actual arguments. For linked fieldtypes this is done
-| recursively.
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid.
-+--------------------------------------------------------------------------*/
-static bool Check_Field(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
-{
- if (typ)
- {
- if (field->opts & O_NULLOK)
- {
- char *bp = field->buf;
- assert(bp);
- while(is_blank(*bp))
- { bp++; }
- if (*bp == '\0')
- return TRUE;
- }
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- return(
- Check_Field(typ->left ,field,argp->left ) ||
- Check_Field(typ->right,field,argp->right) );
- }
- else
- {
- if (typ->fcheck)
- return typ->fcheck(field,(void *)argp);
- }
- }
- return TRUE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : bool _nc_Internal_Validation(FORM * form )
-|
-| Description : Validate the current field of the form.
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-_nc_Internal_Validation (FORM *form)
-{
- FIELD *field;
-
- field = form->current;
-
- Synchronize_Buffer(form);
- if ((form->status & _FCHECK_REQUIRED) ||
- (!(field->opts & O_PASSOK)))
- {
- if (!Check_Field(field->type,field,(TypeArgument *)(field->arg)))
- return FALSE;
- form->status &= ~_FCHECK_REQUIRED;
- field->status |= _CHANGED;
- Synchronize_Linked_Fields(field);
- }
- return TRUE;
-}
-/*----------------------------------------------------------------------------
- End of Helper routines for Field Validations.
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Routines for Field Validation.
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FV_Validation(FORM * form)
-|
-| Description : Validate the current field of the form.
-|
-| Return Values : E_OK - field valid
-| E_INVALID_FIELD - field not valid
-+--------------------------------------------------------------------------*/
-static int FV_Validation(FORM * form)
-{
- if (_nc_Internal_Validation(form))
- return E_OK;
- else
- return E_INVALID_FIELD;
-}
-/*----------------------------------------------------------------------------
- End of routines for Field Validation.
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Inter-Field Navigation
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Next_Field_On_Page(FIELD * field)
-|
-| Description : Get the next field after the given field on the current
-| page. The order of fields is the one defined by the
-| fields array. Only visible and active fields are
-| counted.
-|
-| Return Values : Pointer to the next field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Next_Field_On_Page(FIELD * field)
-{
- FORM *form = field->form;
- FIELD **field_on_page = &form->field[field->index];
- FIELD **first_on_page = &form->field[form->page[form->curpage].pmin];
- FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
-
- do
- {
- field_on_page =
- (field_on_page==last_on_page) ? first_on_page : field_on_page + 1;
- if (Field_Is_Selectable(*field_on_page))
- break;
- } while(field!=(*field_on_page));
- return(*field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD* _nc_First_Active_Field(FORM * form)
-|
-| Description : Get the first active field on the current page,
-| if there are such. If there are none, get the first
-| visible field on the page. If there are also none,
-| we return the first field on page and hope the best.
-|
-| Return Values : Pointer to calculated field.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD*)
-_nc_First_Active_Field (FORM * form)
-{
- FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
- FIELD *proposed = Next_Field_On_Page(*last_on_page);
-
- if (proposed == *last_on_page)
- { /* there might be the special situation, where there is no
- active and visible field on the current page. We then select
- the first visible field on this readonly page
- */
- if (Field_Is_Not_Selectable(proposed))
- {
- FIELD **field = &form->field[proposed->index];
- FIELD **first = &form->field[form->page[form->curpage].pmin];
-
- do
- {
- field = (field==last_on_page) ? first : field + 1;
- if (((*field)->opts & O_VISIBLE))
- break;
- } while(proposed!=(*field));
-
- proposed = *field;
-
- if ((proposed == *last_on_page) && !(proposed->opts&O_VISIBLE))
- { /* This means, there is also no visible field on the page.
- So we propose the first one and hope the very best...
- Some very clever user has designed a readonly and invisible
- page on this form.
- */
- proposed = *first;
- }
- }
- }
- return(proposed);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Previous_Field_On_Page(FIELD * field)
-|
-| Description : Get the previous field before the given field on the
-| current page. The order of fields is the one defined by
-| the fields array. Only visible and active fields are
-| counted.
-|
-| Return Values : Pointer to the previous field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Previous_Field_On_Page(FIELD * field)
-{
- FORM *form = field->form;
- FIELD **field_on_page = &form->field[field->index];
- FIELD **first_on_page = &form->field[form->page[form->curpage].pmin];
- FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
-
- do
- {
- field_on_page =
- (field_on_page==first_on_page) ? last_on_page : field_on_page - 1;
- if (Field_Is_Selectable(*field_on_page))
- break;
- } while(field!=(*field_on_page));
-
- return (*field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Sorted_Next_Field(FIELD * field)
-|
-| Description : Get the next field after the given field on the current
-| page. The order of fields is the one defined by the
-| (row,column) geometry, rows are major.
-|
-| Return Values : Pointer to the next field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Sorted_Next_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
-
- do
- {
- field_on_page = field_on_page->snext;
- if (Field_Is_Selectable(field_on_page))
- break;
- } while(field_on_page!=field);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Sorted_Previous_Field(FIELD * field)
-|
-| Description : Get the previous field before the given field on the
-| current page. The order of fields is the one defined
-| by the (row,column) geometry, rows are major.
-|
-| Return Values : Pointer to the previous field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Sorted_Previous_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
-
- do
- {
- field_on_page = field_on_page->sprev;
- if (Field_Is_Selectable(field_on_page))
- break;
- } while(field_on_page!=field);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Left_Neighbour_Field(FIELD * field)
-|
-| Description : Get the left neighbour of the field on the same line
-| and the same page. Cycles through the line.
-|
-| Return Values : Pointer to left neighbour field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Left_Neighbour_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
-
- /* For a field that has really a left neighbour, the while clause
- immediately fails and the loop is left, positioned at the right
- neighbour. Otherwise we cycle backwards through the sorted fieldlist
- until we enter the same line (from the right end).
- */
- do
- {
- field_on_page = Sorted_Previous_Field(field_on_page);
- } while(field_on_page->frow != field->frow);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Right_Neighbour_Field(FIELD * field)
-|
-| Description : Get the right neighbour of the field on the same line
-| and the same page.
-|
-| Return Values : Pointer to right neighbour field.
-+--------------------------------------------------------------------------*/
-INLINE static FIELD *Right_Neighbour_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
-
- /* See the comments on Left_Neighbour_Field to understand how it works */
- do
- {
- field_on_page = Sorted_Next_Field(field_on_page);
- } while(field_on_page->frow != field->frow);
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Upper_Neighbour_Field(FIELD * field)
-|
-| Description : Because of the row-major nature of sorting the fields,
-| its more difficult to define whats the upper neighbour
-| field really means. We define that it must be on a
-| 'previous' line (cyclic order!) and is the rightmost
-| field laying on the left side of the given field. If
-| this set is empty, we take the first field on the line.
-|
-| Return Values : Pointer to the upper neighbour field.
-+--------------------------------------------------------------------------*/
-static FIELD *Upper_Neighbour_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
- int frow = field->frow;
- int fcol = field->fcol;
-
- /* Walk back to the 'previous' line. The second term in the while clause
- just guarantees that we stop if we cycled through the line because
- there might be no 'previous' line if the page has just one line.
- */
- do
- {
- field_on_page = Sorted_Previous_Field(field_on_page);
- } while(field_on_page->frow==frow && field_on_page->fcol!=fcol);
-
- if (field_on_page->frow!=frow)
- { /* We really found a 'previous' line. We are positioned at the
- rightmost field on this line */
- frow = field_on_page->frow;
-
- /* We walk to the left as long as we are really right of the
- field. */
- while(field_on_page->frow==frow && field_on_page->fcol>fcol)
- field_on_page = Sorted_Previous_Field(field_on_page);
-
- /* If we wrapped, just go to the right which is the first field on
- the row */
- if (field_on_page->frow!=frow)
- field_on_page = Sorted_Next_Field(field_on_page);
- }
-
- return (field_on_page);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static FIELD *Down_Neighbour_Field(FIELD * field)
-|
-| Description : Because of the row-major nature of sorting the fields,
-| its more difficult to define whats the down neighbour
-| field really means. We define that it must be on a
-| 'next' line (cyclic order!) and is the leftmost
-| field laying on the right side of the given field. If
-| this set is empty, we take the last field on the line.
-|
-| Return Values : Pointer to the upper neighbour field.
-+--------------------------------------------------------------------------*/
-static FIELD *Down_Neighbour_Field(FIELD * field)
-{
- FIELD *field_on_page = field;
- int frow = field->frow;
- int fcol = field->fcol;
-
- /* Walk forward to the 'next' line. The second term in the while clause
- just guarantees that we stop if we cycled through the line because
- there might be no 'next' line if the page has just one line.
- */
- do
- {
- field_on_page = Sorted_Next_Field(field_on_page);
- } while(field_on_page->frow==frow && field_on_page->fcol!=fcol);
-
- if (field_on_page->frow!=frow)
- { /* We really found a 'next' line. We are positioned at the rightmost
- field on this line */
- frow = field_on_page->frow;
-
- /* We walk to the right as long as we are really left of the
- field. */
- while(field_on_page->frow==frow && field_on_page->fcol<fcol)
- field_on_page = Sorted_Next_Field(field_on_page);
-
- /* If we wrapped, just go to the left which is the last field on
- the row */
- if (field_on_page->frow!=frow)
- field_on_page = Sorted_Previous_Field(field_on_page);
- }
-
- return(field_on_page);
-}
-
-/*----------------------------------------------------------------------------
- Inter-Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Inter_Field_Navigation(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Generic behaviour for changing the current field, the
-| field is left and a new field is entered. So the field
-| must be validated and the field init/term hooks must
-| be called.
-|
-| Return Values : E_OK - success
-| E_INVALID_FIELD - field is invalid
-| some other - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int Inter_Field_Navigation(int (* const fct) (FORM *),FORM *form)
-{
- int res;
-
- if (!_nc_Internal_Validation(form))
- res = E_INVALID_FIELD;
- else
- {
- Call_Hook(form,fieldterm);
- res = fct(form);
- Call_Hook(form,fieldinit);
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Next_Field(FORM * form)
-|
-| Description : Move to the next field on the current page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Next_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Next_Field_On_Page(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Previous_Field(FORM * form)
-|
-| Description : Move to the previous field on the current page of the
-| form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Previous_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Previous_Field_On_Page(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_First_Field(FORM * form)
-|
-| Description : Move to the first field on the current page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_First_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Next_Field_On_Page(form->field[form->page[form->curpage].pmax]));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Last_Field(FORM * form)
-|
-| Description : Move to the last field on the current page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Last_Field(FORM * form)
-{
- return
- _nc_Set_Current_Field(form,
- Previous_Field_On_Page(form->field[form->page[form->curpage].pmin]));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Sorted_Next_Field(FORM * form)
-|
-| Description : Move to the sorted next field on the current page
-| of the form.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Sorted_Next_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Sorted_Next_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Sorted_Previous_Field(FORM * form)
-|
-| Description : Move to the sorted previous field on the current page
-| of the form.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Sorted_Previous_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Sorted_Previous_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Sorted_First_Field(FORM * form)
-|
-| Description : Move to the sorted first field on the current page
-| of the form.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Sorted_First_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Sorted_Next_Field(form->field[form->page[form->curpage].smax]));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Sorted_Last_Field(FORM * form)
-|
-| Description : Move to the sorted last field on the current page
-| of the form.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Sorted_Last_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Sorted_Previous_Field(form->field[form->page[form->curpage].smin]));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Left_Field(FORM * form)
-|
-| Description : Get the field on the left of the current field on the
-| same line and the same page. Cycles through the line.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Left_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Left_Neighbour_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Right_Field(FORM * form)
-|
-| Description : Get the field on the right of the current field on the
-| same line and the same page. Cycles through the line.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Right_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Right_Neighbour_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Up_Field(FORM * form)
-|
-| Description : Get the upper neighbour of the current field. This
-| cycles through the page. See the comments of the
-| Upper_Neighbour_Field function to understand how
-| 'upper' is defined.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Up_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Upper_Neighbour_Field(form->current));
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int FN_Down_Field(FORM * form)
-|
-| Description : Get the down neighbour of the current field. This
-| cycles through the page. See the comments of the
-| Down_Neighbour_Field function to understand how
-| 'down' is defined.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int FN_Down_Field(FORM * form)
-{
- return _nc_Set_Current_Field(form,
- Down_Neighbour_Field(form->current));
-}
-/*----------------------------------------------------------------------------
- END of Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for Page Navigation
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int _nc_Set_Form_Page(FORM * form,
-| int page,
-| FIELD * field)
-|
-| Description : Make the given page nr. the current page and make
-| the given field the current field on the page. If
-| for the field NULL is given, make the first field on
-| the page the current field. The routine acts only
-| if the requested page is not the current page.
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Set_Form_Page
-(FORM * form, int page, FIELD * field)
-{
- int res = E_OK;
-
- if ((form->curpage!=page))
- {
- FIELD *last_field, *field_on_page;
-
- werase(Get_Form_Window(form));
- form->curpage = page;
- last_field = field_on_page = form->field[form->page[page].smin];
- do
- {
- if (field_on_page->opts & O_VISIBLE)
- if ((res=Display_Field(field_on_page))!=E_OK)
- return(res);
- field_on_page = field_on_page->snext;
- } while(field_on_page != last_field);
-
- if (field)
- res = _nc_Set_Current_Field(form,field);
- else
- /* N.B.: we don't encapsulate this by Inter_Field_Navigation(),
- because this is already executed in a page navigation
- context that contains field navigation
- */
- res = FN_First_Field(form);
- }
- return(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Next_Page_Number(const FORM * form)
-|
-| Description : Calculate the page number following the current page
-| number. This cycles if the highest page number is
-| reached.
-|
-| Return Values : The next page number
-+--------------------------------------------------------------------------*/
-INLINE static int Next_Page_Number(const FORM * form)
-{
- return (form->curpage + 1) % form->maxpage;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Previous_Page_Number(const FORM * form)
-|
-| Description : Calculate the page number before the current page
-| number. This cycles if the first page number is
-| reached.
-|
-| Return Values : The previous page number
-+--------------------------------------------------------------------------*/
-INLINE static int Previous_Page_Number(const FORM * form)
-{
- return (form->curpage!=0 ? form->curpage - 1 : form->maxpage - 1);
-}
-
-/*----------------------------------------------------------------------------
- Page Navigation routines
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Page_Navigation(
-| int (* const fct) (FORM *),
-| FORM * form)
-|
-| Description : Generic behaviour for changing a page. This means
-| that the field is left and a new field is entered.
-| So the field must be validated and the field init/term
-| hooks must be called. Because also the page is changed,
-| the forms init/term hooks must be called also.
-|
-| Return Values : E_OK - success
-| E_INVALID_FIELD - field is invalid
-| some other - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int Page_Navigation(int (* const fct) (FORM *), FORM * form)
-{
- int res;
-
- if (!_nc_Internal_Validation(form))
- res = E_INVALID_FIELD;
- else
- {
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
- res = fct(form);
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
- }
- return res;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int PN_Next_Page(FORM * form)
-|
-| Description : Move to the next page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int PN_Next_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,Next_Page_Number(form),(FIELD *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int PN_Previous_Page(FORM * form)
-|
-| Description : Move to the previous page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int PN_Previous_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,Previous_Page_Number(form),(FIELD *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int PN_First_Page(FORM * form)
-|
-| Description : Move to the first page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int PN_First_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,0,(FIELD *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int PN_Last_Page(FORM * form)
-|
-| Description : Move to the last page of the form
-|
-| Return Values : E_OK - success
-| != E_OK - error from subordinate call
-+--------------------------------------------------------------------------*/
-static int PN_Last_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,form->maxpage-1,(FIELD *)0);
-}
-/*----------------------------------------------------------------------------
- END of Field Navigation routines
- --------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------
- Helper routines for the core form driver.
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Data_Entry(FORM * form,int c)
-|
-| Description : Enter character c into at the current position of the
-| current field of the form.
-|
-| Return Values : E_OK -
-| E_REQUEST_DENIED -
-| E_SYSTEM_ERROR -
-+--------------------------------------------------------------------------*/
-static int Data_Entry(FORM * form, int c)
-{
- FIELD *field = form->current;
- int result = E_REQUEST_DENIED;
-
- if ( (field->opts & O_EDIT)
-#if FIX_FORM_INACTIVE_BUG
- && (field->opts & O_ACTIVE)
-#endif
- )
- {
- if ( (field->opts & O_BLANK) &&
- First_Position_In_Current_Field(form) &&
- !(form->status & _FCHECK_REQUIRED) &&
- !(form->status & _WINDOW_MODIFIED) )
- werase(form->w);
-
- if (form->status & _OVLMODE)
- {
- waddch(form->w,(chtype)c);
- }
- else /* no _OVLMODE */
- {
- bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
-
- if (!(There_Is_Room ||
- ((Single_Line_Field(field) && Growable(field)))))
- return E_REQUEST_DENIED;
-
- if (!There_Is_Room && !Field_Grown(field,1))
- return E_SYSTEM_ERROR;
-
- winsch(form->w,(chtype)c);
- }
-
- if ((result=Wrapping_Not_Necessary_Or_Wrapping_Ok(form))==E_OK)
- {
- bool End_Of_Field= (((field->drows-1)==form->currow) &&
- ((field->dcols-1)==form->curcol));
- form->status |= _WINDOW_MODIFIED;
- if (End_Of_Field && !Growable(field) && (field->opts & O_AUTOSKIP))
- result = Inter_Field_Navigation(FN_Next_Field,form);
- else
- {
- if (End_Of_Field && Growable(field) && !Field_Grown(field,1))
- result = E_SYSTEM_ERROR;
- else
- {
- IFN_Next_Character(form);
- result = E_OK;
- }
- }
- }
- }
- return result;
-}
-
-/* Structure to describe the binding of a request code to a function.
- The member keycode codes the request value as well as the generic
- routine to use for the request. The code for the generic routine
- is coded in the upper 16 Bits while the request code is coded in
- the lower 16 bits.
-
- In terms of C++ you might think of a request as a class with a
- virtual method "perform". The different types of request are
- derived from this base class and overload (or not) the base class
- implementation of perform.
-*/
-typedef struct {
- int keycode; /* must be at least 32 bit: hi:mode, lo: key */
- int (*cmd)(FORM *); /* low level driver routine for this key */
-} Binding_Info;
-
-/* You may see this is the class-id of the request type class */
-#define ID_PN (0x00000000) /* Page navigation */
-#define ID_FN (0x00010000) /* Inter-Field navigation */
-#define ID_IFN (0x00020000) /* Intra-Field navigation */
-#define ID_VSC (0x00030000) /* Vertical Scrolling */
-#define ID_HSC (0x00040000) /* Horizontal Scrolling */
-#define ID_FE (0x00050000) /* Field Editing */
-#define ID_EM (0x00060000) /* Edit Mode */
-#define ID_FV (0x00070000) /* Field Validation */
-#define ID_CH (0x00080000) /* Choice */
-#define ID_Mask (0xffff0000)
-#define Key_Mask (0x0000ffff)
-#define ID_Shft (16)
-
-/* This array holds all the Binding Infos */
-static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
-{
- { REQ_NEXT_PAGE |ID_PN ,PN_Next_Page},
- { REQ_PREV_PAGE |ID_PN ,PN_Previous_Page},
- { REQ_FIRST_PAGE |ID_PN ,PN_First_Page},
- { REQ_LAST_PAGE |ID_PN ,PN_Last_Page},
-
- { REQ_NEXT_FIELD |ID_FN ,FN_Next_Field},
- { REQ_PREV_FIELD |ID_FN ,FN_Previous_Field},
- { REQ_FIRST_FIELD |ID_FN ,FN_First_Field},
- { REQ_LAST_FIELD |ID_FN ,FN_Last_Field},
- { REQ_SNEXT_FIELD |ID_FN ,FN_Sorted_Next_Field},
- { REQ_SPREV_FIELD |ID_FN ,FN_Sorted_Previous_Field},
- { REQ_SFIRST_FIELD |ID_FN ,FN_Sorted_First_Field},
- { REQ_SLAST_FIELD |ID_FN ,FN_Sorted_Last_Field},
- { REQ_LEFT_FIELD |ID_FN ,FN_Left_Field},
- { REQ_RIGHT_FIELD |ID_FN ,FN_Right_Field},
- { REQ_UP_FIELD |ID_FN ,FN_Up_Field},
- { REQ_DOWN_FIELD |ID_FN ,FN_Down_Field},
-
- { REQ_NEXT_CHAR |ID_IFN ,IFN_Next_Character},
- { REQ_PREV_CHAR |ID_IFN ,IFN_Previous_Character},
- { REQ_NEXT_LINE |ID_IFN ,IFN_Next_Line},
- { REQ_PREV_LINE |ID_IFN ,IFN_Previous_Line},
- { REQ_NEXT_WORD |ID_IFN ,IFN_Next_Word},
- { REQ_PREV_WORD |ID_IFN ,IFN_Previous_Word},
- { REQ_BEG_FIELD |ID_IFN ,IFN_Beginning_Of_Field},
- { REQ_END_FIELD |ID_IFN ,IFN_End_Of_Field},
- { REQ_BEG_LINE |ID_IFN ,IFN_Beginning_Of_Line},
- { REQ_END_LINE |ID_IFN ,IFN_End_Of_Line},
- { REQ_LEFT_CHAR |ID_IFN ,IFN_Left_Character},
- { REQ_RIGHT_CHAR |ID_IFN ,IFN_Right_Character},
- { REQ_UP_CHAR |ID_IFN ,IFN_Up_Character},
- { REQ_DOWN_CHAR |ID_IFN ,IFN_Down_Character},
-
- { REQ_NEW_LINE |ID_FE ,FE_New_Line},
- { REQ_INS_CHAR |ID_FE ,FE_Insert_Character},
- { REQ_INS_LINE |ID_FE ,FE_Insert_Line},
- { REQ_DEL_CHAR |ID_FE ,FE_Delete_Character},
- { REQ_DEL_PREV |ID_FE ,FE_Delete_Previous},
- { REQ_DEL_LINE |ID_FE ,FE_Delete_Line},
- { REQ_DEL_WORD |ID_FE ,FE_Delete_Word},
- { REQ_CLR_EOL |ID_FE ,FE_Clear_To_End_Of_Line},
- { REQ_CLR_EOF |ID_FE ,FE_Clear_To_End_Of_Form},
- { REQ_CLR_FIELD |ID_FE ,FE_Clear_Field},
-
- { REQ_OVL_MODE |ID_EM ,EM_Overlay_Mode},
- { REQ_INS_MODE |ID_EM ,EM_Insert_Mode},
-
- { REQ_SCR_FLINE |ID_VSC ,VSC_Scroll_Line_Forward},
- { REQ_SCR_BLINE |ID_VSC ,VSC_Scroll_Line_Backward},
- { REQ_SCR_FPAGE |ID_VSC ,VSC_Scroll_Page_Forward},
- { REQ_SCR_BPAGE |ID_VSC ,VSC_Scroll_Page_Backward},
- { REQ_SCR_FHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Forward},
- { REQ_SCR_BHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Backward},
-
- { REQ_SCR_FCHAR |ID_HSC ,HSC_Scroll_Char_Forward},
- { REQ_SCR_BCHAR |ID_HSC ,HSC_Scroll_Char_Backward},
- { REQ_SCR_HFLINE |ID_HSC ,HSC_Horizontal_Line_Forward},
- { REQ_SCR_HBLINE |ID_HSC ,HSC_Horizontal_Line_Backward},
- { REQ_SCR_HFHALF |ID_HSC ,HSC_Horizontal_Half_Line_Forward},
- { REQ_SCR_HBHALF |ID_HSC ,HSC_Horizontal_Half_Line_Backward},
-
- { REQ_VALIDATION |ID_FV ,FV_Validation},
-
- { REQ_NEXT_CHOICE |ID_CH ,CR_Next_Choice},
- { REQ_PREV_CHOICE |ID_CH ,CR_Previous_Choice}
-};
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_driver(FORM * form,int c)
-|
-| Description : This is the workhorse of the forms system. It checks
-| to determine whether the character c is a request or
-| data. If it is a request, the form driver executes
-| the request and returns the result. If it is data
-| (printable character), it enters the data into the
-| current position in the current field. If it is not
-| recognized, the form driver assumes it is an application
-| defined command and returns E_UNKNOWN_COMMAND.
-| Application defined command should be defined relative
-| to MAX_FORM_COMMAND, the maximum value of a request.
-|
-| Return Values : E_OK - success
-| E_SYSTEM_ERROR - system error
-| E_BAD_ARGUMENT - an argument is incorrect
-| E_NOT_POSTED - form is not posted
-| E_INVALID_FIELD - field contents are invalid
-| E_BAD_STATE - called from inside a hook routine
-| E_REQUEST_DENIED - request failed
-| E_UNKNOWN_COMMAND - command not known
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-form_driver (FORM * form, int c)
-{
- const Binding_Info* BI = (Binding_Info *)0;
- int res = E_UNKNOWN_COMMAND;
-
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (!(form->field))
- RETURN(E_NOT_CONNECTED);
-
- assert(form->page);
-
- if (c==FIRST_ACTIVE_MAGIC)
- {
- form->current = _nc_First_Active_Field(form);
- return E_OK;
- }
-
- assert(form->current &&
- form->current->buf &&
- (form->current->form == form)
- );
-
- if ( form->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- if ( !( form->status & _POSTED ) )
- RETURN(E_NOT_POSTED);
-
- if ((c>=MIN_FORM_COMMAND && c<=MAX_FORM_COMMAND) &&
- ((bindings[c-MIN_FORM_COMMAND].keycode & Key_Mask) == c))
- BI = &(bindings[c-MIN_FORM_COMMAND]);
-
- if (BI)
- {
- typedef int (*Generic_Method)(int (* const)(FORM *),FORM *);
- static const Generic_Method Generic_Methods[] =
- {
- Page_Navigation, /* overloaded to call field&form hooks */
- Inter_Field_Navigation, /* overloaded to call field hooks */
- NULL, /* Intra-Field is generic */
- Vertical_Scrolling, /* Overloaded to check multi-line */
- Horizontal_Scrolling, /* Overloaded to check single-line */
- Field_Editing, /* Overloaded to mark modification */
- NULL, /* Edit Mode is generic */
- NULL, /* Field Validation is generic */
- NULL /* Choice Request is generic */
- };
- size_t nMethods = (sizeof(Generic_Methods)/sizeof(Generic_Methods[0]));
- size_t method = ((BI->keycode & ID_Mask) >> ID_Shft) & 0xffff;
-
- if ( (method >= nMethods) || !(BI->cmd) )
- res = E_SYSTEM_ERROR;
- else
- {
- Generic_Method fct = Generic_Methods[method];
- if (fct)
- res = fct(BI->cmd,form);
- else
- res = (BI->cmd)(form);
- }
- }
- else
- {
- if (!(c & (~(int)MAX_REGULAR_CHARACTER)) &&
- isprint((unsigned char)c) &&
- Check_Char(form->current->type,c,
- (TypeArgument *)(form->current->arg)))
- res = Data_Entry(form,c);
- }
- _nc_Refresh_Current_Field(form);
- RETURN(res);
-}
-
-/*----------------------------------------------------------------------------
- Field-Buffer manipulation routines.
- The effects of setting a buffer is tightly coupled to the core of the form
- driver logic. This is especially true in the case of growable fields.
- So I don't separate this into an own module.
- --------------------------------------------------------------------------*/
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_buffer(FIELD *field,
-| int buffer, char *value)
-|
-| Description : Set the given buffer of the field to the given value.
-| Buffer 0 stores the displayed content of the field.
-| For dynamic fields this may grow the fieldbuffers if
-| the length of the value exceeds the current buffer
-| length. For buffer 0 only printable values are allowed.
-| For static fields, the value needs not to be zero ter-
-| minated. It is copied up to the length of the buffer.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid argument
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_field_buffer
-(FIELD * field, int buffer, const char * value)
-{
- char *s, *p;
- int res = E_OK;
- unsigned int len;
-
- if ( !field || !value || ((buffer < 0)||(buffer > field->nbuf)) )
- RETURN(E_BAD_ARGUMENT);
-
- len = Buffer_Length(field);
-
- if (buffer==0)
- {
- const char *v;
- unsigned int i = 0;
-
- for(v=value; *v && (i<len); v++,i++)
- {
- if (!isprint((unsigned char)*v))
- RETURN(E_BAD_ARGUMENT);
- }
- }
-
- if (Growable(field))
- {
- /* for a growable field we must assume zero terminated strings, because
- somehow we have to detect the length of what should be copied.
- */
- unsigned int vlen = strlen(value);
- if (vlen > len)
- {
- if (!Field_Grown(field,
- (int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols))))
- RETURN(E_SYSTEM_ERROR);
-
- /* in this case we also have to check, wether or not the remaining
- characters in value are also printable for buffer 0. */
- if (buffer==0)
- {
- unsigned int i;
-
- for(i=len; i<vlen; i++)
- if (!isprint((unsigned char)value[i]))
- RETURN(E_BAD_ARGUMENT);
- }
- len = vlen;
- }
- }
-
- p = Address_Of_Nth_Buffer(field,buffer);
-
-#if HAVE_MEMCCPY
- s = memccpy(p,value,0,len);
-#else
- for(s=(char *)value; *s && (s < (value+len)); s++)
- p[s-value] = *s;
- if (s < (value+len))
- {
- p[s-value] = *s++;
- s = p + (s-value);
- }
- else
- s=(char *)0;
-#endif
-
- if (s)
- { /* this means, value was null terminated and not greater than the
- buffer. We have to pad with blanks. Please note that due to memccpy
- logic s points after the terminating null. */
- s--; /* now we point to the terminator. */
- assert(len >= (unsigned int)(s-p));
- if (len > (unsigned int)(s-p))
- memset(s,C_BLANK,len-(unsigned int)(s-p));
- }
-
- if (buffer==0)
- {
- int syncres;
- if (((syncres=Synchronize_Field( field ))!=E_OK) &&
- (res==E_OK))
- res = syncres;
- if (((syncres=Synchronize_Linked_Fields(field ))!=E_OK) &&
- (res==E_OK))
- res = syncres;
- }
- RETURN(res);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : char *field_buffer(const FIELD *field,int buffer)
-|
-| Description : Return the address of the buffer for the field.
-|
-| Return Values : Pointer to buffer or NULL if arguments were invalid.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(char *)
-field_buffer (const FIELD * field, int buffer)
-{
- if (field && (buffer >= 0) && (buffer <= field->nbuf))
- return Address_Of_Nth_Buffer(field,buffer);
- else
- return (char *)0;
-}
-
-/* frm_driver.c ends here */
diff --git a/ncurses-5.3/form/frm_hook.c b/ncurses-5.3/form/frm_hook.c
deleted file mode 100644
index 309e45f..0000000
--- a/ncurses-5.3/form/frm_hook.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/* "Template" macro to generate function to set application specific hook */
-#define GEN_HOOK_SET_FUNCTION( typ, name ) \
-NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (FORM *form, Form_Hook func)\
-{\
- (Normalize_Form( form ) -> typ ## name) = func ;\
- RETURN(E_OK);\
-}
-
-/* "Template" macro to generate function to get application specific hook */
-#define GEN_HOOK_GET_FUNCTION( typ, name ) \
-NCURSES_IMPEXP Form_Hook NCURSES_API typ ## _ ## name ( const FORM *form )\
-{\
- return ( Normalize_Form( form ) -> typ ## name );\
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_init(FORM *form, Form_Hook f)
-|
-| Description : Assigns an application defined initialization function
-| to be called when the form is posted and just after
-| the current field changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(field,init)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Hook field_init(const FORM *form)
-|
-| Description : Retrieve field initialization routine address.
-|
-| Return Values : The address or NULL if no hook defined.
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(field,init)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_field_term(FORM *form, Form_Hook f)
-|
-| Description : Assigns an application defined finalization function
-| to be called when the form is unposted and just before
-| the current field changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(field,term)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Hook field_term(const FORM *form)
-|
-| Description : Retrieve field finalization routine address.
-|
-| Return Values : The address or NULL if no hook defined.
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(field,term)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_init(FORM *form, Form_Hook f)
-|
-| Description : Assigns an application defined initialization function
-| to be called when the form is posted and just after
-| a page change.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(form,init)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Hook form_init(const FORM *form)
-|
-| Description : Retrieve form initialization routine address.
-|
-| Return Values : The address or NULL if no hook defined.
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(form,init)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_term(FORM *form, Form_Hook f)
-|
-| Description : Assigns an application defined finalization function
-| to be called when the form is unposted and just before
-| a page change.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(form,term)
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Hook form_term(const FORM *form)
-|
-| Description : Retrieve form finalization routine address.
-|
-| Return Values : The address or NULL if no hook defined.
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(form,term)
-
-/* frm_hook.c ends here */
diff --git a/ncurses-5.3/form/frm_opts.c b/ncurses-5.3/form/frm_opts.c
deleted file mode 100644
index fe7cf59..0000000
--- a/ncurses-5.3/form/frm_opts.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_opts(FORM *form, Form_Options opts)
-|
-| Description : Turns on the named options and turns off all the
-| remaining options for that form.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_form_opts (FORM * form, Form_Options opts)
-{
- opts &= ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Form( form )->opts = opts;
- RETURN(E_OK);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : Form_Options form_opts(const FORM *)
-|
-| Description : Retrieves the current form options.
-|
-| Return Values : The option flags.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(Form_Options)
-form_opts (const FORM * form)
-{
- return (Normalize_Form(form)->opts & ALL_FORM_OPTS);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_opts_on(FORM *form, Form_Options opts)
-|
-| Description : Turns on the named options; no other options are
-| changed.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-form_opts_on (FORM * form, Form_Options opts)
-{
- opts &= ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Form( form )->opts |= opts;
- RETURN(E_OK);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_opts_off(FORM *form, Form_Options opts)
-|
-| Description : Turns off the named options; no other options are
-| changed.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-form_opts_off (FORM * form, Form_Options opts)
-{
- opts &= ALL_FORM_OPTS;
- if (opts & ~ALL_FORM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Form(form)->opts &= ~opts;
- RETURN(E_OK);
- }
-}
-
-/* frm_opts.c ends here */
diff --git a/ncurses-5.3/form/frm_page.c b/ncurses-5.3/form/frm_page.c
deleted file mode 100644
index 5b8f8e8..0000000
--- a/ncurses-5.3/form/frm_page.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_page(FORM * form,int page)
-|
-| Description : Set the page number of the form.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer or page number
-| E_BAD_STATE - called from a hook routine
-| E_INVALID_FIELD - current field can't be left
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_form_page (FORM * form, int page)
-{
- int err = E_OK;
-
- if ( !form || (page<0) || (page>=form->maxpage) )
- RETURN(E_BAD_ARGUMENT);
-
- if (!(form->status & _POSTED))
- {
- form->curpage = page;
- form->current = _nc_First_Active_Field(form);
- }
- else
- {
- if (form->status & _IN_DRIVER)
- err = E_BAD_STATE;
- else
- {
- if (form->curpage != page)
- {
- if (!_nc_Internal_Validation(form))
- err = E_INVALID_FIELD;
- else
- {
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
- err = _nc_Set_Form_Page(form,page,(FIELD *)0);
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
- _nc_Refresh_Current_Field(form);
- }
- }
- }
- }
- RETURN(err);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_page(const FORM * form)
-|
-| Description : Return the current page of the form.
-|
-| Return Values : >= 0 : current page number
-| -1 : invalid form pointer
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-form_page (const FORM * form)
-{
- return Normalize_Form(form)->curpage;
-}
-
-/* frm_page.c ends here */
diff --git a/ncurses-5.3/form/frm_post.c b/ncurses-5.3/form/frm_post.c
deleted file mode 100644
index cbc1c8e..0000000
--- a/ncurses-5.3/form/frm_post.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int post_form(FORM * form)
-|
-| Description : Writes the form into its associated subwindow.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_POSTED - form already posted
-| E_NOT_CONNECTED - no fields connected to form
-| E_NO_ROOM - form doesn't fit into subwindow
-| E_SYSTEM_ERROR - system error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-post_form (FORM * form)
-{
- WINDOW *formwin;
- int err;
- int page;
-
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (form->status & _POSTED)
- RETURN(E_POSTED);
-
- if (!(form->field))
- RETURN(E_NOT_CONNECTED);
-
- formwin = Get_Form_Window(form);
- if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin)))
- RETURN(E_NO_ROOM);
-
- /* reset form->curpage to an invald value. This forces Set_Form_Page
- to do the page initialization which is required by post_form.
- */
- page = form->curpage;
- form->curpage = -1;
- if ((err = _nc_Set_Form_Page(form,page,form->current))!=E_OK)
- RETURN(err);
-
- form->status |= _POSTED;
-
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
-
- _nc_Refresh_Current_Field(form);
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int unpost_form(FORM * form)
-|
-| Description : Erase form from its associated subwindow.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form pointer
-| E_NOT_POSTED - form isn't posted
-| E_BAD_STATE - called from a hook routine
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-unpost_form (FORM * form)
-{
- if (!form)
- RETURN(E_BAD_ARGUMENT);
-
- if (!(form->status & _POSTED))
- RETURN(E_NOT_POSTED);
-
- if (form->status & _IN_DRIVER)
- RETURN(E_BAD_STATE);
-
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
-
- werase(Get_Form_Window(form));
- delwin(form->w);
- form->w = (WINDOW *)0;
- form->status &= ~_POSTED;
- RETURN(E_OK);
-}
-
-/* frm_post.c ends here */
diff --git a/ncurses-5.3/form/frm_req_name.c b/ncurses-5.3/form/frm_req_name.c
deleted file mode 100644
index d6fa2a2..0000000
--- a/ncurses-5.3/form/frm_req_name.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module form_request_name *
-* Routines to handle external names of menu requests *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = {
- "NEXT_PAGE" ,
- "PREV_PAGE" ,
- "FIRST_PAGE" ,
- "LAST_PAGE" ,
-
- "NEXT_FIELD" ,
- "PREV_FIELD" ,
- "FIRST_FIELD" ,
- "LAST_FIELD" ,
- "SNEXT_FIELD" ,
- "SPREV_FIELD" ,
- "SFIRST_FIELD" ,
- "SLAST_FIELD" ,
- "LEFT_FIELD" ,
- "RIGHT_FIELD" ,
- "UP_FIELD" ,
- "DOWN_FIELD" ,
-
- "NEXT_CHAR" ,
- "PREV_CHAR" ,
- "NEXT_LINE" ,
- "PREV_LINE" ,
- "NEXT_WORD" ,
- "PREV_WORD" ,
- "BEG_FIELD" ,
- "END_FIELD" ,
- "BEG_LINE" ,
- "END_LINE" ,
- "LEFT_CHAR" ,
- "RIGHT_CHAR" ,
- "UP_CHAR" ,
- "DOWN_CHAR" ,
-
- "NEW_LINE" ,
- "INS_CHAR" ,
- "INS_LINE" ,
- "DEL_CHAR" ,
- "DEL_PREV" ,
- "DEL_LINE" ,
- "DEL_WORD" ,
- "CLR_EOL" ,
- "CLR_EOF" ,
- "CLR_FIELD" ,
- "OVL_MODE" ,
- "INS_MODE" ,
- "SCR_FLINE" ,
- "SCR_BLINE" ,
- "SCR_FPAGE" ,
- "SCR_BPAGE" ,
- "SCR_FHPAGE" ,
- "SCR_BHPAGE" ,
- "SCR_FCHAR" ,
- "SCR_BCHAR" ,
- "SCR_HFLINE" ,
- "SCR_HBLINE" ,
- "SCR_HFHALF" ,
- "SCR_HBHALF" ,
-
- "VALIDATION" ,
- "NEXT_CHOICE" ,
- "PREV_CHOICE"
-};
-#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : const char * form_request_name (int request);
-|
-| Description : Get the external name of a form request.
-|
-| Return Values : Pointer to name - on success
-| NULL - on invalid request code
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(const char *)
-form_request_name ( int request )
-{
- if ( (request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND) )
- {
- SET_ERROR (E_BAD_ARGUMENT);
- return (const char *)0;
- }
- else
- return request_names[ request - MIN_FORM_COMMAND ];
-}
-
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int form_request_by_name (const char *str);
-|
-| Description : Search for a request with this name.
-|
-| Return Values : Request Id - on success
-| E_NO_MATCH - request not found
-+--------------------------------------------------------------------------*/
-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.
- */
- unsigned int i = 0;
- char buf[16];
-
- if (str)
- {
- strncpy(buf,str,sizeof(buf));
- while( (i<sizeof(buf)) && (buf[i] != '\0') )
- {
- buf[i] = toupper(buf[i]);
- i++;
- }
-
- for (i=0; i < A_SIZE; i++)
- {
- if (strncmp(request_names[i],buf,sizeof(buf))==0)
- return MIN_FORM_COMMAND + i;
- }
- }
- RETURN(E_NO_MATCH);
-}
-
-/* frm_req_name.c ends here */
diff --git a/ncurses-5.3/form/frm_scale.c b/ncurses-5.3/form/frm_scale.c
deleted file mode 100644
index 352a09f..0000000
--- a/ncurses-5.3/form/frm_scale.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int scale_form( const FORM *form, int *rows, int *cols )
-|
-| Description : Retrieve size of form
-|
-| Return Values : E_OK - no error
-| E_BAD_ARGUMENT - invalid form pointer
-| E_NOT_CONNECTED - no fields connected to form
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-scale_form (const FORM * form, int * rows, int * cols)
-{
- if ( !form )
- RETURN(E_BAD_ARGUMENT);
-
- if ( !(form->field) )
- RETURN(E_NOT_CONNECTED);
-
- if (rows)
- *rows = form->rows;
- if (cols)
- *cols = form->cols;
-
- RETURN(E_OK);
-}
-
-/* frm_scale.c ends here */
diff --git a/ncurses-5.3/form/frm_sub.c b/ncurses-5.3/form/frm_sub.c
deleted file mode 100644
index db4af60..0000000
--- a/ncurses-5.3/form/frm_sub.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_sub(FORM *form, WINDOW *win)
-|
-| Description : Set the subwindow of the form to win.
-|
-| Return Values : E_OK - success
-| E_POSTED - form is posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_form_sub (FORM * form, WINDOW * win)
-{
- if (form && (form->status & _POSTED))
- RETURN(E_POSTED);
-
- Normalize_Form( form )->sub = win;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : WINDOW *form_sub(const FORM *)
-|
-| Description : Retrieve the window of the form.
-|
-| Return Values : The pointer to the Subwindow.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(WINDOW *)
-form_sub (const FORM * form)
-{
- const FORM* f = Normalize_Form( form );
- return Get_Form_Window(f);
-}
-
-/* frm_sub.c ends here */
diff --git a/ncurses-5.3/form/frm_user.c b/ncurses-5.3/form/frm_user.c
deleted file mode 100644
index eadde65..0000000
--- a/ncurses-5.3/form/frm_user.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_userptr(FORM *form, void *usrptr)
-|
-| Description : Set the pointer that is reserved in any form to store
-| application relevant informations
-|
-| Return Values : E_OK - on success
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_form_userptr (FORM * form, void *usrptr)
-{
- Normalize_Form(form)->usrptr = usrptr;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : void *form_userptr(const FORM *form)
-|
-| Description : Return the pointer that is reserved in any form to
-| store application relevant informations.
-|
-| Return Values : Value of pointer. If no such pointer has been set,
-| NULL is returned
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void *)
-form_userptr (const FORM * form)
-{
- return Normalize_Form(form)->usrptr;
-}
-
-/* frm_user.c ends here */
diff --git a/ncurses-5.3/form/frm_win.c b/ncurses-5.3/form/frm_win.c
deleted file mode 100644
index d065b2b..0000000
--- a/ncurses-5.3/form/frm_win.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : int set_form_win(FORM *form,WINDOW *win)
-|
-| Description : Set the window of the form to win.
-|
-| Return Values : E_OK - success
-| E_POSTED - form is posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_form_win (FORM * form, WINDOW * win)
-{
- if (form && (form->status & _POSTED))
- RETURN(E_POSTED);
-
- Normalize_Form( form )->win = win;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : WINDOW *form_win(const FORM *)
-|
-| Description : Retrieve the window of the form.
-|
-| Return Values : The pointer to the Window or stdscr if there is none.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(WINDOW *)
-form_win (const FORM * form)
-{
- const FORM* f = Normalize_Form( form );
- return (f->win ? f->win : stdscr);
-}
-
-/* frm_win.c ends here */
-
diff --git a/ncurses-5.3/form/fty_alnum.c b/ncurses-5.3/form/fty_alnum.c
deleted file mode 100644
index 7ac4229..0000000
--- a/ncurses-5.3/form/fty_alnum.c
+++ /dev/null
@@ -1,138 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-typedef struct {
- int width;
-} alnumARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_AlphaNumeric_Type(va_list *ap)
-|
-| Description : Allocate structure for alphanumeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_AlphaNumeric_Type(va_list * ap)
-{
- alnumARG *argp = (alnumARG *)malloc(sizeof(alnumARG));
-
- if (argp)
- argp->width = va_arg(*ap,int);
-
- return ((void *)argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_AlphaNumericType(const void *argp)
-|
-| Description : Copy structure for alphanumeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_AlphaNumeric_Type(const void *argp)
-{
- const alnumARG *ap = (const alnumARG *)argp;
- alnumARG *result = (alnumARG *)malloc(sizeof(alnumARG));
-
- if (result)
- *result = *ap;
-
- return ((void *)result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_AlphaNumeric_Type(void *argp)
-|
-| Description : Free structure for alphanumeric type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_AlphaNumeric_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_AlphaNumeric_Field(
-| FIELD *field,
-| const void *argp)
-|
-| Description : Validate buffer content to be a valid alphanumeric value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_AlphaNumeric_Field(FIELD * field, const void * argp)
-{
- int width = ((const alnumARG *)argp)->width;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- int l = -1;
- unsigned char *s;
-
- while(*bp && *bp==' ')
- bp++;
- if (*bp)
- {
- s = bp;
- while(*bp && isalnum(*bp))
- bp++;
- l = (int)(bp-s);
- while(*bp && *bp==' ')
- bp++;
- }
- return ((*bp || (l < width)) ? FALSE : TRUE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_AlphaNumeric_Character(
-| int c,
-| const void *argp )
-|
-| Description : Check a character for the alphanumeric type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_AlphaNumeric_Character(int c, const void * argp GCC_UNUSED)
-{
- return (isalnum(c) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeALNUM = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_AlphaNumeric_Type,
- Copy_AlphaNumeric_Type,
- Free_AlphaNumeric_Type,
- Check_AlphaNumeric_Field,
- Check_AlphaNumeric_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeALNUM;
-
-/* fty_alnum.c ends here */
diff --git a/ncurses-5.3/form/fty_alpha.c b/ncurses-5.3/form/fty_alpha.c
deleted file mode 100644
index 8dc1ef7..0000000
--- a/ncurses-5.3/form/fty_alpha.c
+++ /dev/null
@@ -1,139 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-typedef struct {
- int width;
-} alphaARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Alpha_Type(va_list *ap)
-|
-| Description : Allocate structure for alpha type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_Alpha_Type(va_list * ap)
-{
- alphaARG *argp = (alphaARG *)malloc(sizeof(alphaARG));
- if (argp)
- {
- argp->width = va_arg(*ap,int);
- }
- return ((void *)argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Alpha_Type(const void * argp)
-|
-| Description : Copy structure for alpha type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_Alpha_Type(const void * argp)
-{
- const alphaARG *ap = (const alphaARG *)argp;
- alphaARG *result = (alphaARG *)malloc(sizeof(alphaARG));
-
- if (result)
- {
- *result = *ap;
- }
- return ((void *)result);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Alpha_Type( void * argp )
-|
-| Description : Free structure for alpha type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_Alpha_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Alpha_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid alpha value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Alpha_Field(FIELD * field, const void * argp)
-{
- int width = ((const alphaARG *)argp)->width;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- int l = -1;
- unsigned char *s;
-
- while(*bp && *bp==' ')
- bp++;
- if (*bp)
- {
- s = bp;
- while(*bp && isalpha(*bp))
- bp++;
- l = (int)(bp-s);
- while(*bp && *bp==' ')
- bp++;
- }
- return ((*bp || (l < width)) ? FALSE : TRUE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Alpha_Character(
-| int c,
-| const void * argp)
-|
-| Description : Check a character for the alpha type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Alpha_Character(int c, const void * argp GCC_UNUSED)
-{
- return (isalpha(c) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeALPHA = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_Alpha_Type,
- Copy_Alpha_Type,
- Free_Alpha_Type,
- Check_Alpha_Field,
- Check_Alpha_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeALPHA;
-
-/* fty_alpha.c ends here */
diff --git a/ncurses-5.3/form/fty_enum.c b/ncurses-5.3/form/fty_enum.c
deleted file mode 100644
index 51de5bb..0000000
--- a/ncurses-5.3/form/fty_enum.c
+++ /dev/null
@@ -1,296 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-typedef struct {
- char **kwds;
- int count;
- bool checkcase;
- bool checkunique;
-} enumARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Enum_Type( va_list * ap )
-|
-| Description : Allocate structure for enumeration type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_Enum_Type(va_list * ap)
-{
- enumARG *argp = (enumARG *)malloc(sizeof(enumARG));
-
- if (argp)
- {
- int cnt = 0;
- char **kp = (char **)0;
- int ccase, cunique;
-
- argp->kwds = va_arg(*ap,char **);
- ccase = va_arg(*ap,int);
- cunique = va_arg(*ap,int);
- argp->checkcase = ccase ? TRUE : FALSE;
- argp->checkunique = cunique ? TRUE : FALSE;
-
- kp = argp->kwds;
- while( kp && (*kp++) ) cnt++;
- argp->count = cnt;
- }
- return (void *)argp;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Enum_Type( const void * argp )
-|
-| Description : Copy structure for enumeration type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_Enum_Type(const void * argp)
-{
- enumARG *result = (enumARG *)0;
-
- if (argp)
- {
- const enumARG *ap = (const enumARG *)argp;
-
- result = (enumARG *)malloc(sizeof(enumARG));
- if (result)
- *result = *ap;
- }
- return (void *)result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Enum_Type( void * argp )
-|
-| Description : Free structure for enumeration type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_Enum_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-#define SKIP_SPACE(x) while(((*(x))!='\0') && (is_blank(*(x)))) (x)++
-#define NOMATCH 0
-#define PARTIAL 1
-#define EXACT 2
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int Compare(const unsigned char * s,
-| const unsigned char * buf,
-| bool ccase )
-|
-| Description : Check wether or not the text in 'buf' matches the
-| text in 's', at least partial.
-|
-| Return Values : NOMATCH - buffer doesn't match
-| PARTIAL - buffer matches partially
-| EXACT - buffer matches exactly
-+--------------------------------------------------------------------------*/
-static int Compare(const unsigned char *s, const unsigned char *buf,
- bool ccase)
-{
- SKIP_SPACE(buf); /* Skip leading spaces in both texts */
- SKIP_SPACE(s);
-
- if (*buf=='\0')
- {
- return (((*s)!='\0') ? NOMATCH : EXACT);
- }
- else
- {
- if (ccase)
- {
- while(*s++ == *buf)
- {
- if (*buf++=='\0') return EXACT;
- }
- }
- else
- {
- while(toupper(*s++)==toupper(*buf))
- {
- if (*buf++=='\0') return EXACT;
- }
- }
- }
- /* At this location buf points to the first character where it no longer
- matches with s. So if only blanks are following, we have a partial
- match otherwise there is no match */
- SKIP_SPACE(buf);
- if (*buf)
- return NOMATCH;
-
- /* If it happens that the reference buffer is at its end, the partial
- match is actually an exact match. */
- return ((s[-1]!='\0') ? PARTIAL : EXACT);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Enum_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid enumeration value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Enum_Field(FIELD * field, const void * argp)
-{
- char **kwds = ((const enumARG *)argp)->kwds;
- bool ccase = ((const enumARG *)argp)->checkcase;
- bool unique = ((const enumARG *)argp)->checkunique;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- char *s, *t, *p;
- int res;
-
- while( kwds && (s=(*kwds++)) )
- {
- if ((res=Compare((unsigned char *)s,bp,ccase))!=NOMATCH)
- {
- p=t=s; /* t is at least a partial match */
- if ((unique && res!=EXACT))
- {
- while( kwds && (p = *kwds++) )
- {
- if ((res=Compare((unsigned char *)p,bp,ccase))!=NOMATCH)
- {
- if (res==EXACT)
- {
- t = p;
- break;
- }
- else
- t = (char *)0;
- }
- }
- }
- if (t)
- {
- set_field_buffer(field,0,t);
- return TRUE;
- }
- if (!p)
- break;
- }
- }
- return FALSE;
-}
-
-static const char *dummy[] = { (char *)0 };
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Next_Enum(FIELD * field,
-| const void * argp)
-|
-| Description : Check for the next enumeration value
-|
-| Return Values : TRUE - next value found and loaded
-| FALSE - no next value loaded
-+--------------------------------------------------------------------------*/
-static bool Next_Enum(FIELD * field, const void * argp)
-{
- const enumARG *args = (const enumARG *)argp;
- char **kwds = args->kwds;
- bool ccase = args->checkcase;
- int cnt = args->count;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
-
- if (kwds) {
- while(cnt--)
- {
- if (Compare((unsigned char *)(*kwds++),bp,ccase)==EXACT)
- break;
- }
- if (cnt<=0)
- kwds = args->kwds;
- if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT))
- {
- set_field_buffer(field,0,*kwds);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Previous_Enum(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Check for the previous enumeration value
-|
-| Return Values : TRUE - previous value found and loaded
-| FALSE - no previous value loaded
-+--------------------------------------------------------------------------*/
-static bool Previous_Enum(FIELD * field, const void * argp)
-{
- const enumARG *args = (const enumARG *)argp;
- int cnt = args->count;
- char **kwds = &args->kwds[cnt-1];
- bool ccase = args->checkcase;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
-
- if (kwds) {
- while(cnt--)
- {
- if (Compare((unsigned char *)(*kwds--),bp,ccase)==EXACT)
- break;
- }
-
- if (cnt<=0)
- kwds = &args->kwds[args->count-1];
-
- if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT))
- {
- set_field_buffer(field,0,*kwds);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
-static FIELDTYPE typeENUM = {
- _HAS_ARGS | _HAS_CHOICE | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_Enum_Type,
- Copy_Enum_Type,
- Free_Enum_Type,
- Check_Enum_Field,
- NULL,
- Next_Enum,
- Previous_Enum
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ENUM = &typeENUM;
-
-/* fty_enum.c ends here */
diff --git a/ncurses-5.3/form/fty_int.c b/ncurses-5.3/form/fty_int.c
deleted file mode 100644
index c916c9e..0000000
--- a/ncurses-5.3/form/fty_int.c
+++ /dev/null
@@ -1,161 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-typedef struct {
- int precision;
- long low;
- long high;
-} integerARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Integer_Type( va_list * ap )
-|
-| Description : Allocate structure for integer type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_Integer_Type(va_list * ap)
-{
- integerARG *argp = (integerARG *)malloc(sizeof(integerARG));
-
- if (argp)
- {
- argp->precision = va_arg(*ap,int);
- argp->low = va_arg(*ap,long);
- argp->high = va_arg(*ap,long);
- }
- return (void *)argp;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Integer_Type(const void * argp)
-|
-| Description : Copy structure for integer type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_Integer_Type(const void * argp)
-{
- const integerARG *ap = (const integerARG *)argp;
- integerARG *result = (integerARG *)0;
-
- if (argp)
- {
- result = (integerARG *)malloc(sizeof(integerARG));
- if (result)
- *result = *ap;
- }
- return (void *)result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Integer_Type(void * argp)
-|
-| Description : Free structure for integer type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_Integer_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Integer_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid integer value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Integer_Field(FIELD * field, const void * argp)
-{
- const integerARG *argi = (const integerARG *)argp;
- long low = argi->low;
- long high = argi->high;
- int prec = argi->precision;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- char *s = (char *)bp;
- long val;
- char buf[100];
-
- while( *bp && *bp==' ') bp++;
- if (*bp)
- {
- if (*bp=='-') bp++;
- while (*bp)
- {
- if (!isdigit(*bp)) break;
- bp++;
- }
- while(*bp && *bp==' ') bp++;
- if (*bp=='\0')
- {
- val = atol(s);
- if (low<high)
- {
- if (val<low || val>high) return FALSE;
- }
- sprintf(buf,"%.*ld",(prec>0?prec:0),val);
- set_field_buffer(field,0,buf);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Integer_Character(
-| int c,
-| const void * argp)
-|
-| Description : Check a character for the integer type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Integer_Character(int c, const void * argp GCC_UNUSED)
-{
- return ((isdigit(c) || (c=='-')) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeINTEGER = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_Integer_Type,
- Copy_Integer_Type,
- Free_Integer_Type,
- Check_Integer_Field,
- Check_Integer_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeINTEGER;
-
-/* fty_int.c ends here */
diff --git a/ncurses-5.3/form/fty_ipv4.c b/ncurses-5.3/form/fty_ipv4.c
deleted file mode 100644
index 37be811..0000000
--- a/ncurses-5.3/form/fty_ipv4.c
+++ /dev/null
@@ -1,81 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Per Foreby, perf@efd.lth.se *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_IPV4_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid IP number (Ver. 4)
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_IPV4_Field(FIELD * field, const void * argp GCC_UNUSED)
-{
- char *bp = field_buffer(field,0);
- int num = 0, len;
- unsigned int d1, d2, d3, d4;
-
- if(isdigit((unsigned char)*bp)) /* Must start with digit */
- {
- num = sscanf(bp, "%u.%u.%u.%u%n", &d1, &d2, &d3, &d4, &len);
- if (num == 4)
- {
- bp += len; /* Make bp point to what sscanf() left */
- while (*bp && isspace((unsigned char)*bp))
- bp++; /* Allow trailing whitespace */
- }
- }
- return ((num != 4 || *bp || d1 > 255 || d2 > 255
- || d3 > 255 || d4 > 255) ? FALSE : TRUE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_IPV4_Character(
-| int c,
-| const void *argp )
-|
-| Description : Check a character for unsigned type or period.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_IPV4_Character(int c, const void * argp GCC_UNUSED)
-{
- return ((isdigit(c) || (c=='.')) ? TRUE : FALSE);
-}
-
-static FIELDTYPE typeIPV4 = {
- _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- NULL,
- NULL,
- NULL,
- Check_IPV4_Field,
- Check_IPV4_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_IPV4 = &typeIPV4;
-
-/* fty_ipv4.c ends here */
diff --git a/ncurses-5.3/form/fty_num.c b/ncurses-5.3/form/fty_num.c
deleted file mode 100644
index a98a76b..0000000
--- a/ncurses-5.3/form/fty_num.c
+++ /dev/null
@@ -1,196 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-#if HAVE_LOCALE_H
-#include <locale.h>
-#endif
-
-typedef struct {
- int precision;
- double low;
- double high;
- struct lconv* L;
-} numericARG;
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Numeric_Type(va_list * ap)
-|
-| Description : Allocate structure for numeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_Numeric_Type(va_list * ap)
-{
- numericARG *argn = (numericARG *)malloc(sizeof(numericARG));
-
- if (argn)
- {
- argn->precision = va_arg(*ap,int);
- argn->low = va_arg(*ap,double);
- argn->high = va_arg(*ap,double);
-#if HAVE_LOCALE_H
- argn->L = localeconv();
-#else
- argn->L = NULL;
-#endif
- }
- return (void *)argn;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Numeric_Type(const void * argp)
-|
-| Description : Copy structure for numeric type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_Numeric_Type(const void * argp)
-{
- const numericARG *ap = (const numericARG *)argp;
- numericARG *result = (numericARG *)0;
-
- if (argp)
- {
- result = (numericARG *)malloc(sizeof(numericARG));
- if (result)
- *result = *ap;
- }
- return (void *)result;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Numeric_Type(void * argp)
-|
-| Description : Free structure for numeric type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_Numeric_Type(void * argp)
-{
- if (argp)
- free(argp);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Numeric_Field(FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid numeric value
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Numeric_Field(FIELD * field, const void * argp)
-{
- const numericARG *argn = (const numericARG *)argp;
- double low = argn->low;
- double high = argn->high;
- int prec = argn->precision;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- char *s = (char *)bp;
- double val = 0.0;
- struct lconv* L = argn->L;
- char buf[64];
-
- while(*bp && *bp==' ') bp++;
- if (*bp)
- {
- if (*bp=='-' || *bp=='+')
- bp++;
- while(*bp)
- {
- if (!isdigit(*bp)) break;
- bp++;
- }
- if (*bp==(
-#if HAVE_LOCALE_H
- (L && L->decimal_point) ? *(L->decimal_point) :
-#endif
- '.'))
- {
- bp++;
- while(*bp)
- {
- if (!isdigit(*bp)) break;
- bp++;
- }
- }
- while(*bp && *bp==' ') bp++;
- if (*bp=='\0')
- {
- val = atof(s);
- if (low<high)
- {
- if (val<low || val>high) return FALSE;
- }
- sprintf(buf,"%.*f",(prec>0?prec:0),val);
- set_field_buffer(field,0,buf);
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Numeric_Character(
-| int c,
-| const void * argp)
-|
-| Description : Check a character for the numeric type.
-|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_Numeric_Character(int c, const void * argp)
-{
- const numericARG *argn = (const numericARG *)argp;
- struct lconv* L = argn->L;
-
- return (isdigit(c) ||
- c == '+' ||
- c == '-' ||
- c == (
-#if HAVE_LOCALE_H
- (L && L->decimal_point) ? *(L->decimal_point) :
-#endif
- '.')
- ) ? TRUE : FALSE;
-}
-
-static FIELDTYPE typeNUMERIC = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_Numeric_Type,
- Copy_Numeric_Type,
- Free_Numeric_Type,
- Check_Numeric_Field,
- Check_Numeric_Character,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeNUMERIC;
-
-/* fty_num.c ends here */
diff --git a/ncurses-5.3/form/fty_regex.c b/ncurses-5.3/form/fty_regex.c
deleted file mode 100644
index 6da0aac..0000000
--- a/ncurses-5.3/form/fty_regex.c
+++ /dev/null
@@ -1,258 +0,0 @@
-
-/*
- * THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- * You may freely copy it for use as a template for your own field types.
- * If you develop a field type that might be of general use, please send
- * it back to the ncurses maintainers for inclusion in the next version.
- */
-/***************************************************************************
-* *
-* Author : Juergen Pfeifer *
-* Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
-* *
-***************************************************************************/
-
-#include "form.priv.h"
-
-MODULE_ID("$Id$")
-
-#if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
-#include <regex.h>
-
-typedef struct
-{
- regex_t *pRegExp;
- unsigned long *refCount;
-} RegExp_Arg;
-
-#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
-#undef RETURN
-static int reg_errno;
-
-static char *RegEx_Init(char *instring)
-{
- reg_errno = 0;
- return instring;
-}
-
-static char *RegEx_Error(int code)
-{
- reg_errno = code;
- return 0;
-}
-
-#define INIT register char *sp = RegEx_Init(instring);
-#define GETC() (*sp++)
-#define PEEKC() (*sp)
-#define UNGETC(c) (--sp)
-#define RETURN(c) return(c)
-#define ERROR(c) return RegEx_Error(c)
-
-#if HAVE_REGEXP_H_FUNCS
-#include <regexp.h>
-#else
-#include <regexpr.h>
-#endif
-
-typedef struct
-{
- char *compiled_expression;
- unsigned long *refCount;
-} RegExp_Arg;
-
-/* Maximum Length we allow for a compiled regular expression */
-#define MAX_RX_LEN (2048)
-#define RX_INCREMENT (256)
-
-#endif
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_RegularExpression_Type(va_list * ap)
-|
-| Description : Allocate structure for regex type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error
-+--------------------------------------------------------------------------*/
-static void *Make_RegularExpression_Type(va_list * ap)
-{
-#if HAVE_REGEX_H_FUNCS
- char *rx = va_arg(*ap,char *);
- RegExp_Arg *preg;
-
- preg = (RegExp_Arg*)malloc(sizeof(RegExp_Arg));
- if (preg)
- {
- if (((preg->pRegExp = (regex_t*)malloc(sizeof(regex_t))) != (regex_t*)0)
- && !regcomp(preg->pRegExp,rx,
- (REG_EXTENDED | REG_NOSUB | REG_NEWLINE) ))
- {
- preg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
- *(preg->refCount) = 1;
- }
- else
- {
- if (preg->pRegExp)
- free(preg->pRegExp);
- free(preg);
- preg = (RegExp_Arg*)0;
- }
- }
- return((void *)preg);
-#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- char *rx = va_arg(*ap,char *);
- RegExp_Arg *pArg;
-
- pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
-
- if (pArg)
- {
- int blen = RX_INCREMENT;
- pArg->compiled_expression = NULL;
- pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
- *(pArg->refCount) = 1;
-
- do {
- char *buf = (char *)malloc(blen);
- if (buf)
- {
-#if HAVE_REGEXP_H_FUNCS
- char *last_pos = compile (rx, buf, &buf[blen], '\0');
-#else /* HAVE_REGEXPR_H_FUNCS */
- char *last_pos = compile (rx, buf, &buf[blen]);
-#endif
- if (reg_errno)
- {
- free(buf);
- if (reg_errno==50)
- blen += RX_INCREMENT;
- else
- {
- free(pArg);
- pArg = NULL;
- break;
- }
- }
- else
- {
- pArg->compiled_expression = buf;
- break;
- }
- }
- } while( blen <= MAX_RX_LEN );
- }
- if (pArg && !pArg->compiled_expression)
- {
- free(pArg);
- pArg = NULL;
- }
- return (void *)pArg;
-#else
- return 0;
-#endif
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_RegularExpression_Type(
-| const void * argp)
-|
-| Description : Copy structure for regex type argument.
-|
-| Return Values : Pointer to argument structure or NULL on error.
-+--------------------------------------------------------------------------*/
-static void *Copy_RegularExpression_Type(const void * argp)
-{
-#if (HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS)
- const RegExp_Arg *ap = (const RegExp_Arg *)argp;
- const RegExp_Arg *result = (const RegExp_Arg *)0;
-
- if (ap)
- {
- *(ap->refCount) += 1;
- result = ap;
- }
- return (void *)result;
-#else
- return 0;
-#endif
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_RegularExpression_Type(void * argp)
-|
-| Description : Free structure for regex type argument.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-static void Free_RegularExpression_Type(void * argp)
-{
-#if HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- RegExp_Arg *ap = (RegExp_Arg *)argp;
- if (ap)
- {
- if (--(*(ap->refCount)) == 0)
- {
-#if HAVE_REGEX_H_FUNCS
- if (ap->pRegExp)
- {
- free(ap->refCount);
- regfree(ap->pRegExp);
- }
-#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- if (ap->compiled_expression)
- {
- free(ap->refCount);
- free(ap->compiled_expression);
- }
-#endif
- free(ap);
- }
- }
-#endif
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_RegularExpression_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid regular expression
-|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
-+--------------------------------------------------------------------------*/
-static bool Check_RegularExpression_Field(FIELD * field, const void * argp)
-{
- bool match = FALSE;
-#if HAVE_REGEX_H_FUNCS
- const RegExp_Arg *ap = (const RegExp_Arg*)argp;
- if (ap && ap->pRegExp)
- match = (regexec(ap->pRegExp,field_buffer(field,0),0,NULL,0) ? FALSE:TRUE);
-#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- RegExp_Arg *ap = (RegExp_Arg *)argp;
- if (ap && ap->compiled_expression)
- match = (step(field_buffer(field,0),ap->compiled_expression) ? TRUE:FALSE);
-#endif
- return match;
-}
-
-static FIELDTYPE typeREGEXP = {
- _HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
- (FIELDTYPE *)0,
- (FIELDTYPE *)0,
- Make_RegularExpression_Type,
- Copy_RegularExpression_Type,
- Free_RegularExpression_Type,
- Check_RegularExpression_Field,
- NULL,
- NULL,
- NULL
-};
-
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_REGEXP = &typeREGEXP;
-
-/* fty_regex.c ends here */
diff --git a/ncurses-5.3/form/headers b/ncurses-5.3/form/headers
deleted file mode 100644
index f2267c8..0000000
--- a/ncurses-5.3/form/headers
+++ /dev/null
@@ -1,31 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-$(srcdir)/form.h
diff --git a/ncurses-5.3/form/llib-lform b/ncurses-5.3/form/llib-lform
deleted file mode 100644
index d66a962..0000000
--- a/ncurses-5.3/form/llib-lform
+++ /dev/null
@@ -1,694 +0,0 @@
-/****************************************************************************
- * 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 <dickey@clark.net> 1996,1997,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 */
-
-#include <locale.h>
-
-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;
diff --git a/ncurses-5.3/form/llib-lformw b/ncurses-5.3/form/llib-lformw
deleted file mode 100644
index f572018..0000000
--- a/ncurses-5.3/form/llib-lformw
+++ /dev/null
@@ -1,692 +0,0 @@
-/****************************************************************************
- * 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;
diff --git a/ncurses-5.3/form/modules b/ncurses-5.3/form/modules
deleted file mode 100644
index 0ad9666..0000000
--- a/ncurses-5.3/form/modules
+++ /dev/null
@@ -1,73 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-
-@ base
-# Library objects
-fld_arg lib $(srcdir) $(FORM_PRIV_H)
-fld_attr lib $(srcdir) $(FORM_PRIV_H)
-fld_current lib $(srcdir) $(FORM_PRIV_H)
-fld_def lib $(srcdir) $(FORM_PRIV_H)
-fld_dup lib $(srcdir) $(FORM_PRIV_H)
-fld_ftchoice lib $(srcdir) $(FORM_PRIV_H)
-fld_ftlink lib $(srcdir) $(FORM_PRIV_H)
-fld_info lib $(srcdir) $(FORM_PRIV_H)
-fld_just lib $(srcdir) $(FORM_PRIV_H)
-fld_link lib $(srcdir) $(FORM_PRIV_H)
-fld_max lib $(srcdir) $(FORM_PRIV_H)
-fld_move lib $(srcdir) $(FORM_PRIV_H)
-fld_newftyp lib $(srcdir) $(FORM_PRIV_H)
-fld_opts lib $(srcdir) $(FORM_PRIV_H)
-fld_pad lib $(srcdir) $(FORM_PRIV_H)
-fld_page lib $(srcdir) $(FORM_PRIV_H)
-fld_stat lib $(srcdir) $(FORM_PRIV_H)
-fld_type lib $(srcdir) $(FORM_PRIV_H)
-fld_user lib $(srcdir) $(FORM_PRIV_H)
-frm_cursor lib $(srcdir) $(FORM_PRIV_H)
-frm_data lib $(srcdir) $(FORM_PRIV_H)
-frm_def lib $(srcdir) $(FORM_PRIV_H)
-frm_driver lib $(srcdir) $(FORM_PRIV_H)
-frm_hook lib $(srcdir) $(FORM_PRIV_H)
-frm_opts lib $(srcdir) $(FORM_PRIV_H)
-frm_page lib $(srcdir) $(FORM_PRIV_H)
-frm_post lib $(srcdir) $(FORM_PRIV_H)
-frm_req_name lib $(srcdir) $(FORM_PRIV_H)
-frm_scale lib $(srcdir) $(FORM_PRIV_H)
-frm_sub lib $(srcdir) $(FORM_PRIV_H)
-frm_user lib $(srcdir) $(FORM_PRIV_H)
-frm_win lib $(srcdir) $(FORM_PRIV_H)
-fty_alnum lib $(srcdir) $(FORM_PRIV_H)
-fty_alpha lib $(srcdir) $(FORM_PRIV_H)
-fty_enum lib $(srcdir) $(FORM_PRIV_H)
-fty_int lib $(srcdir) $(FORM_PRIV_H)
-fty_ipv4 lib $(srcdir) $(FORM_PRIV_H)
-fty_num lib $(srcdir) $(FORM_PRIV_H)
-fty_regex lib $(srcdir) $(FORM_PRIV_H)
diff --git a/ncurses-5.3/include/Caps b/ncurses-5.3/include/Caps
deleted file mode 100644
index eb06557..0000000
--- a/ncurses-5.3/include/Caps
+++ /dev/null
@@ -1,1264 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
-# and: Eric S. Raymond <esr@snark.thyrsus.com>
-#
-# $Id$
-#
-# This is the master termcap/terminfo capability table.
-#
-# 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.
-#
-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
-#
-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/ncurses-5.3/include/Caps.aix4 b/ncurses-5.3/include/Caps.aix4
deleted file mode 100644
index 0d80107..0000000
--- a/ncurses-5.3/include/Caps.aix4
+++ /dev/null
@@ -1,1255 +0,0 @@
-##############################################################################
-# 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$
-#
-# 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/ncurses-5.3/include/Caps.hpux11 b/ncurses-5.3/include/Caps.hpux11
deleted file mode 100644
index cfade1a..0000000
--- a/ncurses-5.3/include/Caps.hpux11
+++ /dev/null
@@ -1,1275 +0,0 @@
-##############################################################################
-# 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$
-#
-# 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/ncurses-5.3/include/Caps.keys b/ncurses-5.3/include/Caps.keys
deleted file mode 100644
index e440198..0000000
--- a/ncurses-5.3/include/Caps.keys
+++ /dev/null
@@ -1,1354 +0,0 @@
-##############################################################################
-# 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$
-#
-# 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/ncurses-5.3/include/Caps.osf1r5 b/ncurses-5.3/include/Caps.osf1r5
deleted file mode 100644
index b5b0537..0000000
--- a/ncurses-5.3/include/Caps.osf1r5
+++ /dev/null
@@ -1,1274 +0,0 @@
-##############################################################################
-# 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$
-#
-# 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/ncurses-5.3/include/Caps.uwin b/ncurses-5.3/include/Caps.uwin
deleted file mode 100644
index 436c5f9..0000000
--- a/ncurses-5.3/include/Caps.uwin
+++ /dev/null
@@ -1,1090 +0,0 @@
-##############################################################################
-# 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$
-#
-# 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/ncurses-5.3/include/MKhashsize.sh b/ncurses-5.3/include/MKhashsize.sh
deleted file mode 100755
index d11d7bf..0000000
--- a/ncurses-5.3/include/MKhashsize.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-#
-# MKhashsize.sh --- generate size include for hash functions
-#
-echo "/*"
-echo " * hashsize.h -- hash and token table constants"
-echo " */"
-
-CAPS="${1-Caps}"
-TABSIZE=`grep -v '^[ #]' $CAPS | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | wc -l`
-
-echo ""
-echo "#define CAPTABSIZE ${TABSIZE}"
-echo "#define HASHTABSIZE (${TABSIZE} * 2)"
diff --git a/ncurses-5.3/include/MKkey_defs.sh b/ncurses-5.3/include/MKkey_defs.sh
deleted file mode 100755
index 8577733..0000000
--- a/ncurses-5.3/include/MKkey_defs.sh
+++ /dev/null
@@ -1,178 +0,0 @@
-#! /bin/sh
-# $Id$
-##############################################################################
-# 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
diff --git a/ncurses-5.3/include/MKncurses_def.sh b/ncurses-5.3/include/MKncurses_def.sh
deleted file mode 100755
index 7e9d017..0000000
--- a/ncurses-5.3/include/MKncurses_def.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#! /bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# MKncurses_def.sh -- generate fallback definitions for ncurses_cfg.h
-#
-# Author: Thomas E. Dickey <dickey@herndon4.his.com> 2000
-#
-# Given the choice between constructs such as
-#
-# #if defined(foo) && foo
-# #if foo
-#
-# we chose the latter. It is guaranteed by the language standard, and there
-# appear to be no broken compilers that do not honor that detail. But some
-# people want to use gcc's -Wundef option (corresponding to one of the less
-# useful features in Watcom's compiler) to check for misspellings. So we
-# generate a set of fallback definitions to quiet the warnings without making
-# the code ugly.
-#
-DEFS="${1-ncurses_defs}"
-cat <<EOF
-/*
- * This file is generated by $0
- */
-
-#ifndef NC_DEFINE_H
-#define NC_DEFINE_H 1
-
-EOF
-
-${AWK-awk} <$DEFS '
-!/^[@#]/ {
- if ( NF == 1 )
- {
- print "#ifndef", $1
- print "#define", $1, "0"
- print "#endif"
- print ""
- } else if ( NF != 0 ) {
- print "#ifndef", $1
- printf "#define"
- for (n = 1; n <= NF; n++) {
- printf " %s", $n
- }
- print ""
- print "#endif"
- print ""
- }
-}
-END {
-print "#endif /* NC_DEFINE_H */"
- }
-'
diff --git a/ncurses-5.3/include/MKparametrized.sh b/ncurses-5.3/include/MKparametrized.sh
deleted file mode 100755
index 6a36cb7..0000000
--- a/ncurses-5.3/include/MKparametrized.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# MKparametrized.sh -- generate indirection vectors for various sort methods
-#
-# The output of this script is C source for an array specifying whether
-# termcap strings should undergo parameter and padding translation.
-#
-CAPS="${1-Caps}"
-cat <<EOF
-/*
- * parametrized.h --- is a termcap capability parametrized?
- *
- * Note: this file is generated using MKparametrized.sh, do not edit by hand.
- * A value of -1 in the table means suppress both pad and % translations.
- * A value of 0 in the table means do pad but not % translations.
- * A value of 1 in the table means do both pad and % translations.
- */
-
-static short const parametrized[] = {
-EOF
-
-# We detect whether % translations should be done by looking for #[0-9] in the
-# description field. We presently suppress padding translation only for the
-# XENIX acs_* capabilities. Maybe someday we'll dedicate a flag field for
-# this, that would be cleaner....
-
-${AWK-awk} <$CAPS '
-$3 != "str" {next;}
-$1 ~ /^acs_/ {print "-1,\t/* ", $2, " */"; count++; next;}
-$0 ~ /#[0-9]/ {print "1,\t/* ", $2, " */"; count++; next;}
- {print "0,\t/* ", $2, " */"; count++;}
-END {printf("} /* %d entries */;\n\n", count);}
-'
-
diff --git a/ncurses-5.3/include/MKterm.h.awk.in b/ncurses-5.3/include/MKterm.h.awk.in
deleted file mode 100644
index ed9d35a..0000000
--- a/ncurses-5.3/include/MKterm.h.awk.in
+++ /dev/null
@@ -1,309 +0,0 @@
-BEGIN {
- print "/****************************************************************************"
- 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 " * \"Software\"), to deal in the Software without restriction, including *"
- print " * without limitation the rights to use, copy, modify, merge, publish, *"
- print " * distribute, distribute with modifications, sublicense, and/or sell *"
- print " * copies of the Software, and to permit persons to whom the Software is *"
- print " * furnished to do so, subject to the following conditions: *"
- print " * *"
- print " * The above copyright notice and this permission notice shall be included *"
- print " * in all copies or substantial portions of the Software. *"
- print " * *"
- print " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS *"
- print " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *"
- print " * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *"
- print " * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *"
- print " * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *"
- print " * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *"
- print " * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *"
- print " * *"
- print " * Except as contained in this notice, the name(s) of the above copyright *"
- print " * holders shall not be used in advertising or otherwise to promote the *"
- print " * sale, use or other dealings in this Software without prior written *"
- print " * authorization. *"
- print " ****************************************************************************/"
- print ""
- print "/****************************************************************************/"
- print "/* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 */"
- print "/* and: Eric S. Raymond <esr@snark.thyrsus.com> */"
- print "/****************************************************************************/"
- print ""
- print "/* $Id$ */"
- print ""
- print "/*"
- print "** term.h -- Definition of struct term"
- print "*/"
- print ""
- 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 "#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 " * 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 "#undef HAVE_TCGETATTR"
- print "#define HAVE_TCGETATTR 1/*default*/"
- print ""
- print "#undef NCURSES_CONST"
- print "#define NCURSES_CONST @NCURSES_CONST@"
- print ""
- print "#undef NCURSES_XNAMES"
- print "#define NCURSES_XNAMES @NCURSES_XNAMES@"
- print ""
- print "/* We will use these symbols to hide differences between"
- print " * termios/termio/sgttyb interfaces."
- print " */"
- print "#undef TTY"
- print "#undef SET_TTY"
- print "#undef GET_TTY"
- print ""
- print "/* Assume POSIX termio if we have the header and function */"
- print "#if HAVE_TERMIOS_H && HAVE_TCGETATTR"
- print ""
- print "#undef TERMIOS"
- print "#define TERMIOS 1"
- print ""
- print "#include <termios.h>"
- print "#define TTY struct termios"
- print ""
- print "#else /* !HAVE_TERMIOS_H */"
- print ""
- print "#if HAVE_TERMIO_H"
- print ""
- print "#undef TERMIOS"
- print "#define TERMIOS 1"
- print ""
- print "#include <termio.h>"
- print "#define TTY struct termio"
- print ""
- print "/* Add definitions to make termio look like termios."
- print " * But ifdef it, since there are some implementations"
- print " * that try to do this for us in a fake <termio.h>."
- print " */"
- print "#ifndef TCSANOW"
- print "#define TCSANOW TCSETA"
- print "#endif"
- print "#ifndef TCSADRAIN"
- print "#define TCSADRAIN TCSETAW"
- print "#endif"
- print "#ifndef TCSAFLUSH"
- print "#define TCSAFLUSH TCSETAF"
- print "#endif"
- print "#ifndef tcsetattr"
- print "#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)"
- print "#endif"
- print "#ifndef tcgetattr"
- print "#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)"
- print "#endif"
- print "#ifndef cfgetospeed"
- print "#define cfgetospeed(t) ((t)->c_cflag & CBAUD)"
- print "#endif"
- print "#ifndef TCIFLUSH "
- print "#define TCIFLUSH 0"
- print "#endif"
- print "#ifndef TCOFLUSH "
- print "#define TCOFLUSH 1"
- print "#endif"
- print "#ifndef TCIOFLUSH "
- print "#define TCIOFLUSH 2"
- print "#endif"
- print "#ifndef tcflush"
- print "#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)"
- print "#endif"
- print ""
- print "#else /* !HAVE_TERMIO_H */"
- print ""
- print "#undef TERMIOS"
- print "#include <sgtty.h>"
- print "#include <sys/ioctl.h>"
- print "#define TTY struct sgttyb"
- print ""
- print "#endif /* HAVE_TERMIO_H */"
- print ""
- print "#endif /* HAVE_TERMIOS_H */"
- print ""
- print "#ifdef TERMIOS"
- print "#define GET_TTY(fd, buf) tcgetattr(fd, buf)"
- print "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)"
- print "#else"
- print "#define GET_TTY(fd, buf) gtty(fd, buf)"
- print "#define SET_TTY(fd, buf) stty(fd, buf)"
- print "#endif"
- print ""
- print "#define NAMESIZE 256"
- print ""
- print "#define CUR cur_term->type."
- print ""
- }
-
-$2 == "%%-STOP-HERE-%%" {
- print ""
- printf "#define BOOLWRITE %d\n", BoolCount
- printf "#define NUMWRITE %d\n", NumberCount
- printf "#define STRWRITE %d\n", StringCount
- print ""
- print "/* older synonyms for some capabilities */"
- print "#define beehive_glitch no_esc_ctlc"
- print "#define teleray_glitch dest_tabs_magic_smso"
- print "#define micro_char_size micro_col_size"
- print ""
- print "#ifdef __INTERNAL_CAPS_VISIBLE"
- }
-
-/^#/ {next;}
-
-$1 == "acs_chars" {acsindex = StringCount}
-
-$3 == "bool" {
- printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++
- }
-
-$3 == "num" {
- printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++
- }
-
-$3 == "str" {
- printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++
- }
-
-END {
- print "#endif /* __INTERNAL_CAPS_VISIBLE */"
- print ""
- print ""
- print "/*"
- print " * Predefined terminfo array sizes"
- print " */"
- printf "#define BOOLCOUNT %d\n", BoolCount
- printf "#define NUMCOUNT %d\n", NumberCount
- printf "#define STRCOUNT %d\n", StringCount
- print ""
- print "/* used by code for comparing entries */"
- print "#define acs_chars_index ", acsindex
- print ""
- print "typedef struct termtype { /* in-core form of terminfo data */"
- print " char *term_names; /* str_table offset of term names */"
- print " char *str_table; /* pointer to string table */"
- print " char *Booleans; /* array of boolean values */"
- print " short *Numbers; /* array of integer values */"
- print " char **Strings; /* array of string offsets */"
- print ""
- print "#if NCURSES_XNAMES"
- print " char *ext_str_table; /* pointer to extended string table */"
- print " char **ext_Names; /* corresponding names */"
- print ""
- print " unsigned short num_Booleans;/* count total Booleans */"
- print " unsigned short num_Numbers; /* count total Numbers */"
- print " unsigned short num_Strings; /* count total Strings */"
- print ""
- print " unsigned short ext_Booleans;/* count extensions to Booleans */"
- print " unsigned short ext_Numbers; /* count extensions to Numbers */"
- print " unsigned short ext_Strings; /* count extensions to Strings */"
- print "#endif /* NCURSES_XNAMES */"
- print ""
- print "} TERMTYPE;"
- print ""
- print "typedef struct term { /* describe an actual terminal */"
- print " TERMTYPE type; /* terminal type description */"
- 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 "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
- print ""
- print "#if BROKEN_LINKER"
- print "#define boolnames _nc_boolnames()"
- print "#define boolcodes _nc_boolcodes()"
- print "#define boolfnames _nc_boolfnames()"
- print "#define numnames _nc_numnames()"
- print "#define numcodes _nc_numcodes()"
- print "#define numfnames _nc_numfnames()"
- print "#define strnames _nc_strnames()"
- print "#define strcodes _nc_strcodes()"
- print "#define strfnames _nc_strfnames()"
- print ""
- 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 "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 "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 "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);"
- print "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);"
- print ""
- print "/* miscellaneous entry points */"
- 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 "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 "#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 "#endif /* NCURSES_TERM_H_incl */"
- }
diff --git a/ncurses-5.3/include/Makefile.in b/ncurses-5.3/include/Makefile.in
deleted file mode 100644
index de99671..0000000
--- a/ncurses-5.3/include/Makefile.in
+++ /dev/null
@@ -1,126 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1996-2001
-#
-# Makefile for ncurses source code.
-#
-# This makes/installs ncurses include-files
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-includedir = @includedir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-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 \
- curses.head \
- termcap.h \
- unctrl.h
-
-# These files are generated by this makefile
-AUTO_SRC = \
- curses.h \
- hashsize.h \
- ncurses_def.h \
- parametrized.h \
- term.h
-
-################################################################################
-all \
-libs \
-depend \
-sources \
-install :: $(AUTO_SRC)
-
-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 $@
-
-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 >$@
-
-parametrized.h: $(TERMINFO_CAPS) $(srcdir)/MKparametrized.sh
- AWK=$(AWK) sh $(srcdir)/MKparametrized.sh $(TERMINFO_CAPS) >$@
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
-
-distclean :: clean
- -rm -f Makefile $(CONFIG_SRC)
-
-realclean :: distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/include/capdefaults.c b/ncurses-5.3/include/capdefaults.c
deleted file mode 100644
index 617cea8..0000000
--- a/ncurses-5.3/include/capdefaults.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* $Id$ */
-
- /*
- * Compute obsolete capabilities. The reason this is an include file is
- * that the two places where it's needed want the macros to generate
- * offsets to different structures. See the file Caps for explanations of
- * these conversions.
- *
- * Note: This code is the functional inverse of the first part of
- * postprocess_termcap().
- */
-{
- char *sp;
- int capval;
-
-#define EXTRACT_DELAY(str) (sp = strchr(str, '*'), sp ? atoi(sp+1) : 0)
-
- /* current (4.4BSD) capabilities marked obsolete */
- if (VALID_STRING(carriage_return)
- && (capval = EXTRACT_DELAY(carriage_return)))
- carriage_return_delay = capval;
- if (VALID_STRING(newline) && (capval = EXTRACT_DELAY(newline)))
- new_line_delay = capval;
-
- /* current (4.4BSD) capabilities not obsolete */
- if (!VALID_STRING(termcap_init2) && VALID_STRING(init_3string)) {
- termcap_init2 = init_3string;
- init_3string = ABSENT_STRING;
- }
- if (!VALID_STRING(termcap_reset)
- && VALID_STRING(reset_2string)
- && !VALID_STRING(reset_1string)
- && !VALID_STRING(reset_3string)) {
- termcap_reset = reset_2string;
- reset_2string = ABSENT_STRING;
- }
- if (magic_cookie_glitch_ul == ABSENT_NUMERIC
- && magic_cookie_glitch != ABSENT_NUMERIC
- && VALID_STRING(enter_underline_mode))
- magic_cookie_glitch_ul = magic_cookie_glitch;
-
- /* totally obsolete capabilities */
- linefeed_is_newline = VALID_STRING(newline)
- && (strcmp("\n", newline) == 0);
- if (VALID_STRING(cursor_left)
- && (capval = EXTRACT_DELAY(cursor_left)))
- backspace_delay = capval;
- if (VALID_STRING(tab) && (capval = EXTRACT_DELAY(tab)))
- horizontal_tab_delay = capval;
-#undef EXTRACT_DELAY
-}
diff --git a/ncurses-5.3/include/curses.h.in b/ncurses-5.3/include/curses.h.in
deleted file mode 100644
index 460058c..0000000
--- a/ncurses-5.3/include/curses.h.in
+++ /dev/null
@@ -1,1023 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * 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$ */
-
-#ifndef __NCURSES_H
-#define __NCURSES_H
-
-#define CURSES 1
-#define CURSES_H 1
-
-/* This should be defined for the enhanced functionality to be visible.
- * However, some of the wide-character (enhanced) functionality is missing.
- * So we do not define it (yet).
-#define _XOPEN_CURSES 1
- */
-
-/* These are defined only in curses.h, and are used for conditional compiles */
-#define NCURSES_VERSION_MAJOR @NCURSES_MAJOR@
-#define NCURSES_VERSION_MINOR @NCURSES_MINOR@
-#define NCURSES_VERSION_PATCH @NCURSES_PATCH@
-
-/* This is defined in more than one ncurses header, for identification */
-#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
-
-#ifndef NCURSES_ATTR_T
-#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@
-
-/*
- * The internal type used for color values
- */
-#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
-
-/*
- * 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>
-#include <unctrl.h>
-#include <stdarg.h> /* we need va_list */
-#ifdef _XOPEN_SOURCE_EXTENDED
-#include <stddef.h> /* we want wchar_t */
-#endif /* _XOPEN_SOURCE_EXTENDED */
-
-/* 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
-#define TRUE 1
-
-#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 @cf_cv_header_stdbool_h@
-#include <stdbool.h>
-#endif
-
-#undef bool
-
-#if @cf_cv_header_stdbool_h@
-#define bool NCURSES_BOOL
-#else
-typedef @cf_cv_type_of_bool@ bool;
-#endif
-
-#endif /* !__cplusplus, etc. */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * XSI attributes. In the ncurses implementation, they are identical to the
- * A_ attributes.
- */
-#define WA_ATTRIBUTES A_ATTRIBUTES
-#define WA_NORMAL A_NORMAL
-#define WA_STANDOUT A_STANDOUT
-#define WA_UNDERLINE A_UNDERLINE
-#define WA_REVERSE A_REVERSE
-#define WA_BLINK A_BLINK
-#define WA_DIM A_DIM
-#define WA_BOLD A_BOLD
-#define WA_ALTCHARSET A_ALTCHARSET
-#define WA_INVIS A_INVIS
-#define WA_PROTECT A_PROTECT
-#define WA_HORIZONTAL A_HORIZONTAL
-#define WA_LEFT A_LEFT
-#define WA_LOW A_LOW
-#define WA_RIGHT A_RIGHT
-#define WA_TOP A_TOP
-#define WA_VERTICAL A_VERTICAL
-
-/* colors */
-extern NCURSES_EXPORT_VAR(int) COLORS;
-extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
-
-#define COLOR_BLACK 0
-#define COLOR_RED 1
-#define COLOR_GREEN 2
-#define COLOR_YELLOW 3
-#define COLOR_BLUE 4
-#define COLOR_MAGENTA 5
-#define COLOR_CYAN 6
-#define COLOR_WHITE 7
-
-/* line graphics */
-
-#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 */
-#define ACS_LLCORNER (acs_map['m']) /* lower left corner */
-#define ACS_URCORNER (acs_map['k']) /* upper right corner */
-#define ACS_LRCORNER (acs_map['j']) /* lower right corner */
-#define ACS_LTEE (acs_map['t']) /* tee pointing right */
-#define ACS_RTEE (acs_map['u']) /* tee pointing left */
-#define ACS_BTEE (acs_map['v']) /* tee pointing up */
-#define ACS_TTEE (acs_map['w']) /* tee pointing down */
-#define ACS_HLINE (acs_map['q']) /* horizontal line */
-#define ACS_VLINE (acs_map['x']) /* vertical line */
-#define ACS_PLUS (acs_map['n']) /* large plus or crossover */
-#define ACS_S1 (acs_map['o']) /* scan line 1 */
-#define ACS_S9 (acs_map['s']) /* scan line 9 */
-#define ACS_DIAMOND (acs_map['`']) /* diamond */
-#define ACS_CKBOARD (acs_map['a']) /* checker board (stipple) */
-#define ACS_DEGREE (acs_map['f']) /* degree symbol */
-#define ACS_PLMINUS (acs_map['g']) /* plus/minus */
-#define ACS_BULLET (acs_map['~']) /* bullet */
-/* Teletype 5410v1 symbols begin here */
-#define ACS_LARROW (acs_map[',']) /* arrow pointing left */
-#define ACS_RARROW (acs_map['+']) /* arrow pointing right */
-#define ACS_DARROW (acs_map['.']) /* arrow pointing down */
-#define ACS_UARROW (acs_map['-']) /* arrow pointing up */
-#define ACS_BOARD (acs_map['h']) /* board of squares */
-#define ACS_LANTERN (acs_map['i']) /* lantern symbol */
-#define ACS_BLOCK (acs_map['0']) /* solid square block */
-/*
- * These aren't documented, but a lot of System Vs have them anyway
- * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings).
- * The ACS_names may not match AT&T's, our source didn't know them.
- */
-#define ACS_S3 (acs_map['p']) /* scan line 3 */
-#define ACS_S7 (acs_map['r']) /* scan line 7 */
-#define ACS_LEQUAL (acs_map['y']) /* less/equal */
-#define ACS_GEQUAL (acs_map['z']) /* greater/equal */
-#define ACS_PI (acs_map['{']) /* Pi */
-#define ACS_NEQUAL (acs_map['|']) /* not equal */
-#define ACS_STERLING (acs_map['}']) /* UK pound sign */
-
-/*
- * Line drawing ACS names are of the form ACS_trbl, where t is the top, r
- * is the right, b is the bottom, and l is the left. t, r, b, and l might
- * be B (blank), S (single), D (double), or T (thick). The subset defined
- * here only uses B and S.
- */
-#define ACS_BSSB ACS_ULCORNER
-#define ACS_SSBB ACS_LLCORNER
-#define ACS_BBSS ACS_URCORNER
-#define ACS_SBBS ACS_LRCORNER
-#define ACS_SBSS ACS_RTEE
-#define ACS_SSSB ACS_LTEE
-#define ACS_SSBS ACS_BTEE
-#define ACS_BSSS ACS_TTEE
-#define ACS_BSBS ACS_HLINE
-#define ACS_SBSB ACS_VLINE
-#define ACS_SSSS ACS_PLUS
-
-#undef ERR
-#define ERR (-1)
-
-#undef OK
-#define OK (0)
-
-/* values for the _flags member */
-#define _SUBWIN 0x01 /* is this a sub-window? */
-#define _ENDLINE 0x02 /* is the window flush right? */
-#define _FULLWIN 0x04 /* is the window full-screen? */
-#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */
-#define _ISPAD 0x10 /* is this window a pad? */
-#define _HASMOVED 0x20 /* has cursor moved since last refresh? */
-#define _WRAPPED 0x40 /* cursor was just wrappped */
-
-/*
- * this value is used in the firstchar and lastchar fields to mark
- * unchanged lines
- */
-#define _NOCHANGE -1
-
-/*
- * this value is used in the oldindex field to mark lines created by insertions
- * and scrolls.
- */
-#define _NEWINDEX -1
-
-typedef struct screen SCREEN;
-typedef struct _win_st WINDOW;
-
-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 _WINT_T
-typedef long int wint_t;
-#endif /* _WINT_T */
-
-#define CCHARW_MAX 5
-typedef struct
-{
- attr_t attr;
- wchar_t chars[CCHARW_MAX];
-}
-cchar_t;
-
-#endif /* _XOPEN_SOURCE_EXTENDED */
-
-struct ldat;
-
-struct _win_st
-{
- NCURSES_SIZE_T _cury, _curx; /* current cursor position */
-
- /* window location and size */
- NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */
- NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */
-
- short _flags; /* window state flags */
-
- /* attribute tracking */
- attr_t _attrs; /* current attribute for non-space character */
- chtype _bkgd; /* current background char/attribute pair */
-
- /* 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 _immed; /* window in immed mode? (not yet used) */
- bool _sync; /* window in sync mode? */
- bool _use_keypad; /* process function keys into KEY_ symbols? */
- int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */
-
- struct ldat *_line; /* the actual line data */
-
- /* global screen state */
- NCURSES_SIZE_T _regtop; /* top line of scrolling region */
- NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */
-
- /* these are used only if this is a sub-window */
- int _parx; /* x coordinate of this window in parent */
- int _pary; /* y coordinate of this window in parent */
- WINDOW *_parent; /* pointer to parent if a sub-window */
-
- /* these are used only if this is a pad */
- struct pdat
- {
- NCURSES_SIZE_T _pad_y, _pad_x;
- NCURSES_SIZE_T _pad_top, _pad_left;
- NCURSES_SIZE_T _pad_bottom, _pad_right;
- } _pad;
-
- NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */
-
-#ifdef _XOPEN_SOURCE_EXTENDED
- cchar_t _bkgrnd; /* current background char/attribute pair */
-#endif
-};
-
-extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
-extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
-extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
-
-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.
- */
-extern NCURSES_EXPORT_VAR(int) ESCDELAY; /* ESC expire time in milliseconds */
-
-extern NCURSES_EXPORT_VAR(char) ttytype[]; /* needed for backward compatibility */
-
-/*
- * These functions are extensions - not in XSI Curses.
- */
-#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
- * macro to alert the compiler to flag inconsistencies in printf/scanf-like
- * function calls. Just in case '__attribute__' isn't defined, make a dummy.
- * G++ doesn't accept it anyway.
- */
-#if !defined(__GNUC__) && !defined(__attribute__)
-#define __attribute__(p) /* nothing */
-#endif
-
-/*
- * For g++, turn off our macros that use __attribute__ (g++ recognizes some
- * of them, but not at the same version levels as gcc).
- */
-#ifdef __cplusplus
-#undef GCC_NORETURN
-#undef GCC_PRINTF
-#undef GCC_SCANF
-#undef GCC_UNUSED
-#endif
-
-/*
- * We cannot define these in ncurses_cfg.h, since they require parameters to be
- * passed (that's non-portable).
- */
-#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
-#endif
-
-#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
-#endif
-
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-
-/*
- * Function prototypes. This is the complete XSI Curses list of required
- * functions. Those marked `generated' will have sources generated from the
- * macro definitions later in this file, in order to satisfy XPG4.2
- * requirements.
- */
-
-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);
-extern NCURSES_EXPORT(int) mvscanw (int,int, NCURSES_CONST char *,...) /* implemented */
- GCC_SCANFLIKE(3,4);
-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);
-extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, NCURSES_CONST char *,...) /* implemented */
- GCC_SCANFLIKE(4,5);
-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);
-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);
-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);
-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);
-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 */
-
-/*
- * 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 */
-
-#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_CHARTEXT (NCURSES_BITS(@cf_cv_1UL@,0) - @cf_cv_1UL@)
-#define A_COLOR NCURSES_BITS(((@cf_cv_1UL@) << 8) - @cf_cv_1UL@,0)
-#define A_STANDOUT NCURSES_BITS(@cf_cv_1UL@,8)
-#define A_UNDERLINE NCURSES_BITS(@cf_cv_1UL@,9)
-#define A_REVERSE NCURSES_BITS(@cf_cv_1UL@,10)
-#define A_BLINK NCURSES_BITS(@cf_cv_1UL@,11)
-#define A_DIM NCURSES_BITS(@cf_cv_1UL@,12)
-#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_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_LOW NCURSES_BITS(@cf_cv_1UL@,19)
-#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 COLOR_PAIR(n) NCURSES_BITS(n, 0)
-#define PAIR_NUMBER(a) ((int)(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT))
-
-/*
- * pseudo functions
- */
-#define wgetstr(w, s) wgetnstr(w, s, -1)
-#define getnstr(s, n) wgetnstr(stdscr, s, n)
-
-#define setterm(term) setupterm(term, 1, (int *)0)
-
-#define fixterm() reset_prog_mode()
-#define resetterm() reset_shell_mode()
-#define saveterm() def_prog_mode()
-#define crmode() cbreak()
-#define nocrmode() nocbreak()
-#define gettmode()
-
-#define getyx(win,y,x) (y = (win)?(win)->_cury:ERR, x = (win)?(win)->_curx:ERR)
-#define getbegyx(win,y,x) (y = (win)?(win)->_begy:ERR, x = (win)?(win)->_begx:ERR)
-#define getmaxyx(win,y,x) (y = (win)?((win)->_maxy + 1):ERR, x = (win)?((win)->_maxx + 1):ERR)
-#define getparyx(win,y,x) (y = (win)?(win)->_pary:ERR, x = (win)?(win)->_parx:ERR)
-#define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \
- else getyx(newscr,(y),(x)); \
- } while(0)
-#define setsyx(y,x) do { if((y)==-1 && (x)==-1) newscr->_leaveok=TRUE; \
- else {newscr->_leaveok=FALSE;wmove(newscr,(y),(x));} \
- } while(0)
-
-/* It seems older SYSV curses versions define these */
-#define getattrs(win) ((win)?(win)->_attrs:A_NORMAL)
-#define getcurx(win) ((win)?(win)->_curx:ERR)
-#define getcury(win) ((win)?(win)->_cury:ERR)
-#define getbegx(win) ((win)?(win)->_begx:ERR)
-#define getbegy(win) ((win)?(win)->_begy:ERR)
-#define getmaxx(win) ((win)?((win)->_maxx + 1):ERR)
-#define getmaxy(win) ((win)?((win)->_maxy + 1):ERR)
-#define getparx(win) ((win)?(win)->_parx:ERR)
-#define getpary(win) ((win)?(win)->_pary:ERR)
-
-#define wstandout(win) (wattrset(win,A_STANDOUT))
-#define wstandend(win) (wattrset(win,A_NORMAL))
-#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
-
-#define wattron(win,at) wattr_on(win, (attr_t) at, (void *)0)
-#define wattroff(win,at) wattr_off(win, (attr_t) at, (void *)0)
-#define wattrset(win,at) ((win)->_attrs = (at))
-
-#define scroll(win) wscrl(win,1)
-
-#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1)
-#define touchline(win, s, c) wtouchln((win), s, c, 1)
-#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0)
-
-#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0)
-#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br)
-#define hline(ch, n) whline(stdscr, ch, n)
-#define vline(ch, n) wvline(stdscr, ch, n)
-
-#define winstr(w, s) winnstr(w, s, -1)
-#define winchstr(w, s) winchnstr(w, s, -1)
-#define winsstr(w, s) winsnstr(w, s, -1)
-
-#define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1)
-#define waddstr(win,str) waddnstr(win,str,-1)
-#define waddchstr(win,str) waddchnstr(win,str,-1)
-
-/*
- * pseudo functions for standard screen
- */
-
-#define addch(ch) waddch(stdscr,ch)
-#define addchnstr(str,n) waddchnstr(stdscr,str,n)
-#define addchstr(str) waddchstr(stdscr,str)
-#define addnstr(str,n) waddnstr(stdscr,str,n)
-#define addstr(str) waddnstr(stdscr,str,-1)
-#define attroff(at) wattroff(stdscr,at)
-#define attron(at) wattron(stdscr,at)
-#define attrset(at) wattrset(stdscr,at)
-#define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o)
-#define attr_off(a,o) wattr_off(stdscr,a,o)
-#define attr_on(a,o) wattr_on(stdscr,a,o)
-#define attr_set(a,c,o) wattr_set(stdscr,a,c,o)
-#define bkgd(ch) wbkgd(stdscr,ch)
-#define bkgdset(ch) wbkgdset(stdscr,ch)
-#define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o)
-#define clear() wclear(stdscr)
-#define clrtobot() wclrtobot(stdscr)
-#define clrtoeol() wclrtoeol(stdscr)
-#define color_set(c,o) wcolor_set(stdscr,c,o)
-#define delch() wdelch(stdscr)
-#define deleteln() winsdelln(stdscr,-1)
-#define echochar(c) wechochar(stdscr,c)
-#define 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 insch(c) winsch(stdscr,c)
-#define insdelln(n) winsdelln(stdscr,n)
-#define insertln() winsdelln(stdscr,1)
-#define insnstr(s,n) winsnstr(stdscr,s,n)
-#define insstr(s) winsstr(stdscr,s)
-#define instr(s) winstr(stdscr,s)
-#define move(y,x) wmove(stdscr,y,x)
-#define refresh() wrefresh(stdscr)
-#define scrl(n) wscrl(stdscr,n)
-#define setscrreg(t,b) wsetscrreg(stdscr,t,b)
-#define standend() wstandend(stdscr)
-#define standout() wstandout(stdscr)
-#define timeout(delay) wtimeout(stdscr,delay)
-#define wdeleteln(win) winsdelln(win,-1)
-#define winsertln(win) winsdelln(win,1)
-
-/*
- * mv functions
- */
-
-#define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
-#define mvwaddchnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
-#define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
-#define mvwaddnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
-#define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
-#define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win))
-#define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
-#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win))
-#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
-#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
-#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
-#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win))
-#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
-#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
-#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
-#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c))
-#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
-#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
-#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s))
-#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
-
-#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
-#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n)
-#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str)
-#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n)
-#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
-#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o)
-#define mvdelch(y,x) mvwdelch(stdscr,y,x)
-#define mvgetch(y,x) mvwgetch(stdscr,y,x)
-#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n)
-#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
-#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n)
-#define mvinch(y,x) mvwinch(stdscr,y,x)
-#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n)
-#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s)
-#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n)
-#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
-#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n)
-#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s)
-#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s)
-#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n)
-
-/*
- * Some wide-character functions do not depend on the extensions.
- */
-#define getbkgd(win) ((win)->_bkgd)
-
-#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
-#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
-
-#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
- (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
- OK)
-
-/*
- * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
- * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to
- * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already
- * use stdarg.h, so...
- */
-#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.
- *
- * 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_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/ncurses-5.3/include/curses.tail b/ncurses-5.3/include/curses.tail
deleted file mode 100644
index d5f5a59..0000000
--- a/ncurses-5.3/include/curses.tail
+++ /dev/null
@@ -1,140 +0,0 @@
-/* $Id$ */
-
-/* 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/ncurses-5.3/include/curses.wide b/ncurses-5.3/include/curses.wide
deleted file mode 100644
index aec2add..0000000
--- a/ncurses-5.3/include/curses.wide
+++ /dev/null
@@ -1,237 +0,0 @@
-
-#ifdef _XOPEN_SOURCE_EXTENDED
-
-/* $Id$ */
-
-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 */
diff --git a/ncurses-5.3/include/edit_cfg.sh b/ncurses-5.3/include/edit_cfg.sh
deleted file mode 100755
index 8160e6d..0000000
--- a/ncurses-5.3/include/edit_cfg.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,2000
-#
-# Edit the default value of the term.h file based on the autoconf-generated
-# values:
-#
-# $1 = ncurses_cfg.h
-# $2 = term.h
-#
-BAK=save$$
-TMP=edit$$
-trap "rm -f $BAK $TMP" 0 1 2 5 15
-for name in \
- HAVE_TCGETATTR \
- HAVE_TERMIOS_H \
- HAVE_TERMIO_H \
- BROKEN_LINKER
-do
- mv $2 $BAK
- if ( grep "[ ]$name[ ]" $1 2>&1 >$TMP )
- then
- value=1
- else
- value=0
- 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
- mv $BAK $2
- else
- rm -f $BAK
- fi
-done
diff --git a/ncurses-5.3/include/headers b/ncurses-5.3/include/headers
deleted file mode 100644
index da3738d..0000000
--- a/ncurses-5.3/include/headers
+++ /dev/null
@@ -1,35 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-term.h
-curses.h
-unctrl.h
-termcap.h
-$(srcdir)/ncurses_dll.h
diff --git a/ncurses-5.3/include/nc_alloc.h b/ncurses-5.3/include/nc_alloc.h
deleted file mode 100644
index e7f3434..0000000
--- a/ncurses-5.3/include/nc_alloc.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
- ****************************************************************************/
-/* $Id$ */
-
-#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
-#undef HAVE_LIBDMALLOC
-#define HAVE_LIBDMALLOC 0
-#endif
-
-#if HAVE_LIBDBMALLOC
-#include <dbmalloc.h> /* Conor Cahill's library */
-#else
-#undef HAVE_LIBDBMALLOC
-#define HAVE_LIBDBMALLOC 0
-#endif
-
-#ifndef NO_LEAKS
-#define NO_LEAKS 0
-#endif
-
-#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS
-#define HAVE_NC_FREEALL 1
-struct termtype;
-extern void _nc_free_and_exit(int) GCC_NORETURN;
-extern void _nc_free_tparm(void);
-extern void _nc_leaks_dump_entry(void);
-#define ExitProgram(code) _nc_free_and_exit(code)
-#endif
-
-#ifndef HAVE_NC_FREEALL
-#define HAVE_NC_FREEALL 0
-#endif
-
-#ifndef ExitProgram
-#define ExitProgram(code) exit(code)
-#endif
-
-/* doalloc.c */
-extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t);
-#if !HAVE_STRDUP
-#define strdup _nc_strdup
-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))
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NC_ALLOC_included */
diff --git a/ncurses-5.3/include/nc_panel.h b/ncurses-5.3/include/nc_panel.h
deleted file mode 100644
index 02b7152..0000000
--- a/ncurses-5.3/include/nc_panel.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * $Id$
- *
- * nc_panel.h
- *
- * Headerfile to provide an interface for the panel layer into
- * the SCREEN structure of the ncurses core.
- */
-
-#ifndef NC_PANEL_H
-#define NC_PANEL_H 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct panel; /* Forward Declaration */
-
-struct panelhook {
- struct panel* top_panel;
- struct panel* bottom_panel;
- struct panel* stdscr_pseudo_panel;
-};
-
-/* Retrieve the panelhook of the current screen */
-extern NCURSES_EXPORT(struct panelhook*) _nc_panelhook (void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NC_PANEL_H */
diff --git a/ncurses-5.3/include/ncurses_cfg.hin b/ncurses-5.3/include/ncurses_cfg.hin
deleted file mode 100644
index 4c5235b..0000000
--- a/ncurses-5.3/include/ncurses_cfg.hin
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-/*
- * $Id$
- *
- * This is a template-file used to generate the "ncurses_cfg.h" file.
- *
- * Rather than list every definition, the configuration script substitutes the
- * definitions that it finds using 'sed'. You need a patch (original date
- * 971222) to autoconf 2.12 or 2.13 to do this.
- *
- * See:
- * http://invisible-island.net/autoconf/
- * ftp://invisible-island.net/autoconf/
- */
-#ifndef NC_CONFIG_H
-#define NC_CONFIG_H
-@DEFS@
-
-#include <ncurses_def.h>
-
- /* The C compiler may not treat these properly but C++ has to */
-#ifdef __cplusplus
-#undef const
-#undef inline
-#else
-#if defined(lint) || defined(TRACE)
-#undef inline
-#define inline /* nothing */
-#endif
-#endif
-
-#endif /* NC_CONFIG_H */
diff --git a/ncurses-5.3/include/ncurses_defs b/ncurses-5.3/include/ncurses_defs
deleted file mode 100644
index c681cea..0000000
--- a/ncurses-5.3/include/ncurses_defs
+++ /dev/null
@@ -1,165 +0,0 @@
-# $Id$
-##############################################################################
-# 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"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# See "MKncurses_def.sh" for an explanation.
-#
-# (hint: don't try to define NDEBUG ;-)
-
-BROKEN_LINKER
-BSD_TPUTS
-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 */
-GCC_UNUSED /* nothing */
-HAVE_BIG_CORE
-HAVE_BSD_CGETENT
-HAVE_BUILTIN_H
-HAVE_DIRENT_H
-HAVE_ERRNO
-HAVE_FCNTL_H
-HAVE_FORM_H
-HAVE_GETCWD
-HAVE_GETEGID
-HAVE_GETEUID
-HAVE_GETNSTR
-HAVE_GETOPT_H
-HAVE_GETTIMEOFDAY
-HAVE_GETTTYNAM
-HAVE_GPP_BUILTIN_H
-HAVE_GXX_BUILTIN_H
-HAVE_HAS_KEY
-HAVE_ISASCII
-HAVE_ISSETUGID
-HAVE_LIBDBMALLOC
-HAVE_LIBDMALLOC
-HAVE_LIBFORM
-HAVE_LIBGPM
-HAVE_LIBMENU
-HAVE_LIBPANEL
-HAVE_LIMITS_H
-HAVE_LINK
-HAVE_LOCALE_H
-HAVE_LONG_FILE_NAMES
-HAVE_MEMCCPY
-HAVE_MENU_H
-HAVE_MKSTEMP
-HAVE_NANOSLEEP
-HAVE_NC_ALLOC_H
-HAVE_PANEL_H
-HAVE_POLL
-HAVE_POLL_H
-HAVE_PURIFY
-HAVE_REGEXPR_H_FUNCS
-HAVE_REGEXP_H_FUNCS
-HAVE_REGEX_H_FUNCS
-HAVE_REMOVE
-HAVE_RESIZETERM
-HAVE_SELECT
-HAVE_SETBUF
-HAVE_SETBUFFER
-HAVE_SETVBUF
-HAVE_SIGACTION
-HAVE_SIGVEC
-HAVE_SIZECHANGE
-HAVE_STRDUP
-HAVE_STRSTR
-HAVE_SYMLINK
-HAVE_SYS_BSDTYPES_H
-HAVE_SYS_IOCTL_H
-HAVE_SYS_PARAM_H
-HAVE_SYS_POLL_H
-HAVE_SYS_SELECT_H
-HAVE_SYS_TERMIO_H
-HAVE_SYS_TIMES_H
-HAVE_SYS_TIME_H
-HAVE_SYS_TIME_SELECT
-HAVE_TCGETATTR
-HAVE_TCGETPGRP
-HAVE_TELL
-HAVE_TERMIOS_H
-HAVE_TERMIO_H
-HAVE_TIMES
-HAVE_TTYENT_H
-HAVE_TYPEINFO
-HAVE_TYPE_ATTR_T
-HAVE_TYPE_SIGACTION
-HAVE_UNISTD_H
-HAVE_UNLINK
-HAVE_USE_DEFAULT_COLORS
-HAVE_VFSCANF
-HAVE_VSNPRINTF
-HAVE_VSSCANF
-HAVE_WORKING_POLL
-HAVE_WRESIZE
-HAVE__DOSCAN
-MIXEDCASE_FILENAMES
-NCURSES_EXPANDED
-NCURSES_EXT_FUNCS
-NCURSES_NOMACROS
-NCURSES_NO_PADDING
-NCURSES_PATHSEP ':'
-NDEBUG
-NEED_PTEM_H
-NO_LEAKS
-PURE_TERMINFO
-RETSIGTYPE
-STDC_HEADERS
-SVR4_ACTION
-SVR4_TERMIO
-SYSTEM_NAME "unknown"
-TERMINFO "none"
-TERMPATH "none"
-TIME_WITH_SYS_TIME
-TYPEOF_CHTYPE
-USE_COLORFGBG
-USE_DATABASE
-USE_GETCAP
-USE_GETCAP_CACHE
-USE_HARD_TABS
-USE_HASHMAP
-USE_LINKS
-USE_MY_MEMMOVE
-USE_OK_BCOPY
-USE_RCS_IDS
-USE_SAFE_SPRINTF
-USE_SCROLL_HINTS
-USE_SIGWINCH
-USE_STDIO_VSCAN
-USE_STRSTREAM_VSCAN
-USE_STRSTREAM_VSCAN_CAST
-USE_SYMLINKS
-USE_TERMCAP
-USE_WIDEC_SUPPORT
-USE_XMC_SUPPORT
diff --git a/ncurses-5.3/include/ncurses_dll.h b/ncurses-5.3/include/ncurses_dll.h
deleted file mode 100644
index 28a5253..0000000
--- a/ncurses-5.3/include/ncurses_dll.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* $Id$ */
-
-#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 */
diff --git a/ncurses-5.3/include/term_entry.h b/ncurses-5.3/include/term_entry.h
deleted file mode 100644
index ec13ae4..0000000
--- a/ncurses-5.3/include/term_entry.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* $Id$ */
-
-/*
- * term_entry.h -- interface to entry-manipulation code
- */
-
-#ifndef NCURSES_TERM_ENTRY_H_incl
-#define NCURSES_TERM_ENTRY_H_incl 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <term.h>
-
-#define MAX_USES 32
-#define MAX_CROSSLINKS 16
-
-typedef struct entry {
- TERMTYPE tterm;
- int nuses;
- struct
- {
- char *name;
- struct entry *link;
- long line;
- }
- uses[MAX_USES];
- int ncrosslinks;
- struct entry *crosslinks[MAX_CROSSLINKS];
- long cstart, cend;
- long startline;
- struct entry *next;
- struct entry *last;
-}
-ENTRY;
-
-#if NCURSES_XNAMES
-#define NUM_BOOLEANS(tp) (tp)->num_Booleans
-#define NUM_NUMBERS(tp) (tp)->num_Numbers
-#define NUM_STRINGS(tp) (tp)->num_Strings
-#define EXT_NAMES(tp,i,limit,index,table) (i >= limit) ? tp->ext_Names[index] : table[i]
-#else
-#define NUM_BOOLEANS(tp) BOOLCOUNT
-#define NUM_NUMBERS(tp) NUMCOUNT
-#define NUM_STRINGS(tp) STRCOUNT
-#define EXT_NAMES(tp,i,limit,index,table) table[i]
-#endif
-
-#define NUM_EXT_NAMES(tp) ((tp)->ext_Booleans + (tp)->ext_Numbers + (tp)->ext_Strings)
-
-#define for_each_boolean(n,tp) for(n = 0; n < NUM_BOOLEANS(tp); n++)
-#define for_each_number(n,tp) for(n = 0; n < NUM_NUMBERS(tp); n++)
-#define for_each_string(n,tp) for(n = 0; n < NUM_STRINGS(tp); n++)
-
-#define ExtBoolname(tp,i,names) EXT_NAMES(tp, i, BOOLCOUNT, (i - (tp->num_Booleans - 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 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 NULLHOOK (bool(*)(ENTRY *))0
-
-/*
- * Note that WANTED and PRESENT are not simple inverses! If a capability
- * has been explicitly cancelled, it's not considered WANTED.
- */
-#define WANTED(s) ((s) == ABSENT_STRING)
-#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING))
-
-#define ANDMISSING(p,q) \
- {if (PRESENT(p) && !PRESENT(q)) _nc_warning(#p " but no " #q);}
-
-#define PAIRED(p,q) \
- { \
- if (PRESENT(q) && !PRESENT(p)) \
- _nc_warning(#q " but no " #p); \
- if (PRESENT(p) && !PRESENT(q)) \
- _nc_warning(#p " but no " #q); \
- }
-
-/* alloc_entry.c: elementary allocation code */
-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 */
-extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE *, TERMTYPE *);
-extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, TERMTYPE *);
-
-/* free_ttype.c: elementary allocation code */
-extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *);
-
-/* lib_acs.c */
-extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional 'init_acs()' */
-
-/* parse_entry.c: entry-parsing code */
-#if NCURSES_XNAMES
-extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
-extern NCURSES_EXPORT_VAR(bool) _nc_disable_period;
-#endif
-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 */
-extern NCURSES_EXPORT(void) _nc_set_writedir (char *);
-extern NCURSES_EXPORT(void) _nc_write_entry (TERMTYPE *const);
-
-/* comp_parse.c: entry list handling */
-extern NCURSES_EXPORT(void) _nc_read_entry_source (FILE*, char*, int, bool, bool (*)(ENTRY*));
-extern NCURSES_EXPORT(bool) _nc_entry_match (char *, char *);
-extern NCURSES_EXPORT(int) _nc_resolve_uses (bool);
-extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *);
-extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *);
-
-/* trace_xnames.c */
-extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NCURSES_TERM_ENTRY_H_incl */
diff --git a/ncurses-5.3/include/termcap.h.in b/ncurses-5.3/include/termcap.h.in
deleted file mode 100644
index 94d1c74..0000000
--- a/ncurses-5.3/include/termcap.h.in
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* $Id$ */
-
-#ifndef NCURSES_TERMCAP_H_incl
-#define NCURSES_TERMCAP_H_incl 1
-
-#undef NCURSES_VERSION
-#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
-
-#include <ncurses_dll.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-#include <sys/types.h>
-
-#undef NCURSES_CONST
-#define NCURSES_CONST @NCURSES_CONST@
-
-#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(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 /* NCURSES_TERMCAP_H_incl */
diff --git a/ncurses-5.3/include/tic.h b/ncurses-5.3/include/tic.h
deleted file mode 100644
index da6561d..0000000
--- a/ncurses-5.3/include/tic.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * $Id$
- * tic.h - Global variables and structures for the terminfo
- * compiler.
- */
-
-#ifndef __TIC_H
-#define __TIC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <curses.h> /* for the _tracef() prototype, ERR/OK, bool defs */
-
-/*
-** The format of compiled terminfo files is as follows:
-**
-** Header (12 bytes), containing information given below
-** Names Section, containing the names of the terminal
-** Boolean Section, containing the values of all of the
-** boolean capabilities
-** A null byte may be inserted here to make
-** sure that the Number Section begins on an
-** even word boundary.
-** Number Section, containing the values of all of the numeric
-** capabilities, each as a short integer
-** String Section, containing short integer offsets into the
-** String Table, one per string capability
-** String Table, containing the actual characters of the string
-** capabilities.
-**
-** NOTE that all short integers in the file are stored using VAX/PDP-style
-** byte-order, i.e., least-significant byte first.
-**
-** There is no structure definition here because it would only confuse
-** matters. Terminfo format is a raw byte layout, not a structure
-** dump. If you happen to be on a little-endian machine with 16-bit
-** shorts that requires no padding between short members in a struct,
-** then there is a natural C structure that captures the header, but
-** not very helpfully.
-*/
-
-#define MAGIC 0432 /* first two bytes of a compiled entry */
-
-/*
- * The "maximum" here is misleading; XSI guarantees minimum values, which a
- * given implementation may exceed.
- */
-#define MAX_NAME_SIZE 512 /* maximum legal name field size (XSI:127) */
-#define MAX_ENTRY_SIZE 4096 /* maximum legal entry size */
-
-/* The maximum size of individual name or alias is guaranteed in XSI to
- * be 14, since that corresponds to the older filename lengths. Newer
- * systems allow longer aliases, though not many terminal descriptions
- * are written to use them.
- */
-#if HAVE_LONG_FILE_NAMES
-#define MAX_ALIAS 32 /* POSIX minimum for PATH_MAX */
-#else
-#define MAX_ALIAS 14 /* SVr3 filename length */
-#endif
-
-/* location of user's personal info directory */
-#define PRIVATE_INFO "%s/.terminfo" /* plug getenv("HOME") into %s */
-
-/*
- * Some traces are designed to be used via tic's verbose option (and similar in
- * infocmp and toe) rather than the 'trace()' function. So we use the bits
- * above the normal trace() parameter as a debug-level.
- */
-
-#define MAX_DEBUG_LEVEL 15
-#define DEBUG_LEVEL(n) ((n) << TRACE_SHIFT)
-
-#define set_trace_level(n) \
- _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
- _nc_tracing |= DEBUG_LEVEL(n)
-
-#ifdef TRACE
-#define DEBUG(n, a) if (_nc_tracing >= DEBUG_LEVEL(n)) _tracef a
-#else
-#define DEBUG(n, a) /*nothing*/
-#endif
-
-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
- * three are also used in the hash table of capability names. The scanner
- * returns one of these values after loading the specifics into the global
- * structure curr_token.
- */
-
-#define BOOLEAN 0 /* Boolean capability */
-#define NUMBER 1 /* Numeric capability */
-#define STRING 2 /* String-valued capability */
-#define CANCEL 3 /* Capability to be cancelled in following tc's */
-#define NAMES 4 /* The names for a terminal type */
-#define UNDEF 5 /* Undefined */
-
-#define NO_PUSHBACK -1 /* used in pushtype to indicate no pushback */
-
- /*
- * The global structure in which the specific parts of a
- * scanned token are returned.
- *
- */
-
-struct token
-{
- char *tk_name; /* name of capability */
- int tk_valnumber; /* value of capability (if a number) */
- char *tk_valstring; /* value of capability (if a string) */
-};
-
-extern NCURSES_EXPORT_VAR(struct token) _nc_curr_token;
-
- /*
- * List of keynames with their corresponding code.
- */
-struct kn {
- const char *name;
- int code;
-};
-
-extern NCURSES_EXPORT_VAR(const struct kn) _nc_key_names[];
-
- /*
- * Offsets to string capabilities, with the corresponding functionkey
- * codes.
- */
-struct tinfo_fkeys {
- unsigned offset;
- chtype code;
- };
-
-#if BROKEN_LINKER
-
-#define _nc_tinfo_fkeys _nc_tinfo_fkeysf()
-extern NCURSES_EXPORT(struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
-
-#else
-
-extern NCURSES_EXPORT_VAR(struct tinfo_fkeys) _nc_tinfo_fkeys[];
-
-#endif
-
- /*
- * The file comp_captab.c contains an array of these structures, one
- * per possible capability. These are indexed by a hash table array of
- * pointers to the same structures for use by the parser.
- */
-
-struct name_table_entry
-{
- const char *nte_name; /* name to hash on */
- int nte_type; /* BOOLEAN, NUMBER or STRING */
- short nte_index; /* index of associated variable in its array */
- short nte_link; /* index in table of next hash, or -1 */
-};
-
-struct alias
-{
- const char *from;
- const char *to;
- const char *source;
-};
-
-extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
-
-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[];
-extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[];
-
-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 ABSENT_BOOLEAN (-1) /* 255 */
-#define ABSENT_NUMERIC (-1)
-#define ABSENT_STRING (char *)0
-
-/* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN (char)(-2) /* 254 */
-#define CANCELLED_NUMERIC (-2)
-#define CANCELLED_STRING (char *)(-1)
-
-#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */
-#define VALID_NUMERIC(s) ((s) >= 0)
-#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
-
-/* termcap entries longer than this may break old binaries */
-#define MAX_TERMCAP_LENGTH 1023
-
-/* this is a documented limitation of terminfo */
-#define MAX_TERMINFO_LENGTH 4096
-
-#ifndef TERMINFO
-#define TERMINFO "/usr/share/terminfo"
-#endif
-
-/* access.c */
-extern NCURSES_EXPORT(char *) _nc_basename (char *);
-extern NCURSES_EXPORT(char *) _nc_rootname (char *);
-
-/* comp_hash.c: name lookup */
-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 */
-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 */
-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 */
-extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
-
-/* comp_scan.c: decode string from readable form */
-extern NCURSES_EXPORT(char) _nc_trans_string (char *, char *);
-
-/* captoinfo.c: capability conversion */
-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 */
-extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */
-
-/* comp_main.c: compiler main */
-extern const char * _nc_progname;
-
-/* read_entry.c */
-extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *);
-
-/* write_entry.c */
-extern NCURSES_EXPORT(int) _nc_tic_written (void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __TIC_H */
diff --git a/ncurses-5.3/include/unctrl.h.in b/ncurses-5.3/include/unctrl.h.in
deleted file mode 100644
index cb3127e..0000000
--- a/ncurses-5.3/include/unctrl.h.in
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * unctrl.h
- *
- * Display a printable version of a control character.
- * Control characters are displayed in caret notation (^x), DELETE is displayed
- * as ^?. Printable characters are displayed as is.
- */
-
-/* $Id$ */
-
-#ifndef NCURSES_UNCTRL_H_incl
-#define NCURSES_UNCTRL_H_incl 1
-
-#undef NCURSES_VERSION
-#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <curses.h>
-
-#undef unctrl
-NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* NCURSES_UNCTRL_H_incl */
diff --git a/ncurses-5.3/install-sh b/ncurses-5.3/install-sh
deleted file mode 100755
index ebc6691..0000000
--- a/ncurses-5.3/install-sh
+++ /dev/null
@@ -1,250 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch. It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/ncurses-5.3/man/MKterminfo.sh b/ncurses-5.3/man/MKterminfo.sh
deleted file mode 100755
index 224fc44..0000000
--- a/ncurses-5.3/man/MKterminfo.sh
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# MKterminfo.sh -- generate terminfo.5 from Caps tabular data
-#
-#***************************************************************************
-# 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. *
-#***************************************************************************
-#
-# 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
-# commands for better formatting of the table.
-#
-# NOTE: The s in this script really are control characters. It translates
-#  to \n because I couldn't get used to inserting linefeeds directly. There
-# had better be no s in the table source text.
-#
-# keep the order 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
-
-#
-head=$1
-caps=$2
-tail=$3
-cat <<'EOF'
-'\" 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.
-EOF
-cat $head
-
-temp=temp$$
-sorted=sorted$$
-unsorted=unsorted$$
-trap "rm -f $sorted $temp $unsorted; exit 99" 1 2 5 15
-
-sed -n <$caps "\
-/%%-STOP-HERE-%%/q
-/^#%/s///p
-/^#/d
-s/[ ]\+/ /g
-s/$/T}/
-s/ [A-Z0-9_()\-]\+ [0-9\-]\+ [Y\-][B\-][C\-][G\-][EK\-]\** / T{/
-s/ bool / /p
-s/ num / /p
-s/ str / /p
-" |sed -e 's/^$/../' | tr "\134" "\006" >$unsorted
-
-rm -f $sorted
-rm -f $temp
-saved=no
-while true
-do
- data=
- read data
- test -z "$data" && break
- case "$data" in #(vi
- **) #(vi
- echo "$data" >>$temp
- saved=yes
- ;;
- *)
- if test $saved = yes ; then
- saved=no
- sort $temp >>$sorted
- rm -f $temp
- fi
- echo "$data" >>$sorted
- ;;
- esac
-done <$unsorted
-test $saved = yes && sort $temp >>$sorted
-
-sed -e 's/^\.\.$//' $sorted | tr "\005\006" "\012\134"
-cat $tail
-
-rm -f $sorted $temp $unsorted
diff --git a/ncurses-5.3/man/Makefile.in b/ncurses-5.3/man/Makefile.in
deleted file mode 100644
index b51e628..0000000
--- a/ncurses-5.3/man/Makefile.in
+++ /dev/null
@@ -1,79 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for ncurses manual pages.
-#
-# NOTE: When you add or rename a man page, make sure you update both
-# the top-level MANIFEST and any man/*.renames files!
-
-SHELL = /bin/sh
-
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-mandir = @mandir@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-all \
-sources : terminfo.5
-depend :
-
-$(DESTDIR)$(mandir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
-
-install install.man : terminfo.5 $(DESTDIR)$(mandir)
- sh ./edit_man.sh installing $(EDITARGS)
-
-uninstall uninstall.man :
- -sh ./edit_man.sh removing $(EDITARGS)
-
-# We compose terminfo.5 from the real sources...
-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 :
- -rm -f core tags TAGS *~ *.bak *.ln *.atac trace
-
-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.*
diff --git a/ncurses-5.3/man/captoinfo.1m b/ncurses-5.3/man/captoinfo.1m
deleted file mode 100644
index 81f506f..0000000
--- a/ncurses-5.3/man/captoinfo.1m
+++ /dev/null
@@ -1,189 +0,0 @@
-'\" 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$
-.TH captoinfo 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
-.SH SYNOPSIS
-\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
-.SH DESCRIPTION
-\fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions. For each
-one found, an equivalent \fBterminfo\fR description is written to standard
-output. Termcap \fBtc\fR capabilities are translated directly to terminfo
-\fBuse\fR capabilities.
-
-If no \fIfile\fR is given, then the environment variable \fBTERMCAP\fR is used
-for the filename or entry. If \fBTERMCAP\fR is a full pathname to a file, only
-the terminal whose name is specified in the environment variable \fBTERM\fR is
-extracted from that file. If the environment variable \fBTERMCAP\fR is not
-set, then the file \fB\*d\fR is read.
-.TP 5
-\fB-v\fR
-print out tracing information on standard error as the program runs.
-.TP 5
-\fB-V\fR
-print out the version of the program in use on standard error and exit.
-.TP 5
-\fB-1\fR
-cause the fields to print out one to a line. Otherwise, the fields
-will be printed several to a line to a maximum width of 60
-characters.
-.TP 5
-\fB-w\fR
-change the output to \fIwidth\fR characters.
-.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-.SH TRANSLATIONS FROM NONSTANDARD CAPABILITIES
-.PP
-Some obsolete nonstandard capabilities will automatically be translated
-into standard (SVr4/XSI Curses) terminfo capabilities by \fBcaptoinfo\fR.
-Whenever one of these automatic 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.
-.PP
-.TS H
-c c c c
-c c c c
-l l l l.
-Nonstd Std From Terminfo
-name name capability
-_
-BO mr AT&T enter_reverse_mode
-CI vi AT&T cursor_invisible
-CV ve AT&T cursor_normal
-DS mh AT&T enter_dim_mode
-EE me AT&T exit_attribute_mode
-FE LF AT&T label_on
-FL LO AT&T label_off
-XS mk AT&T enter_secure_mode
-EN @7 XENIX key_end
-GE ae XENIX exit_alt_charset_mode
-GS as XENIX enter_alt_charset_mode
-HM kh XENIX key_home
-LD kL XENIX key_dl
-PD kN XENIX key_npage
-PN po XENIX prtr_off
-PS pf XENIX prtr_on
-PU kP XENIX key_ppage
-RT @8 XENIX kent
-UP ku XENIX kcuu1
-KA k; Tek key_f10
-KB F1 Tek key_f11
-KC F2 Tek key_f12
-KD F3 Tek key_f13
-KE F4 Tek key_f14
-KF F5 Tek key_f15
-BC Sb Tek set_background
-FC Sf Tek set_foreground
-HS mh Iris enter_dim_mode
-.TE
-.PP
-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:
-.PP
-.TS H
-c c
-l l.
-Cap Graphic
-_
-G2 upper left
-G3 lower left
-G1 upper right
-G4 lower right
-GR pointing right
-GL pointing left
-GU pointing up
-GD pointing down
-GH horizontal line
-GV vertical line
-GC intersection
-G6 upper left
-G7 lower left
-G5 upper right
-G8 lower right
-Gr tee pointing right
-Gr tee pointing left
-Gu tee pointing up
-Gd tee pointing down
-Gh horizontal line
-Gv vertical line
-Gc intersection
-GG acs magic cookie count
-.TE
-.PP
-If the single-line capabilities occur in an entry, they will automatically
-be composed into an \fBacsc\fR string. The double-line capabilities and
-\fBGG\fR are discarded with a warning message.
-.PP
-IBM's AIX has a terminfo facility descended from SVr1 terminfo but incompatible
-with the SVr4 format. The following AIX extensions are automatically
-translated:
-.PP
-.TS
-c c
-l l.
-IBM XSI
-_
-ksel kslt
-kbtab kcbt
-font0 s0ds
-font1 s1ds
-font2 s2ds
-font3 s3ds
-.TE
-.PP
-Additionally, the AIX \fBbox1\fR capability will be automatically translated to
-an \fBacsc\fR string.
-.PP
-Hewlett-Packard's terminfo library supports two nonstandard terminfo
-capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
-These will be discarded with a warning message.
-.SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode.
-You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
-
-The trace option isn't identical to SVr4's. Under SVr4, instead of following
-the -v with a trace level n, you repeat it n times.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fB@INFOCMP@\fR(1M), \fBterminfo\fR(\*n)
-.SH AUTHOR
-Eric S. Raymond <esr@snark.thyrsus.com>
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/clear.1 b/ncurses-5.3/man/clear.1
deleted file mode 100644
index e6b60c2..0000000
--- a/ncurses-5.3/man/clear.1
+++ /dev/null
@@ -1,48 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH clear 1 ""
-.ds n 5
-.SH NAME
-\fBclear\fR - clear the terminal screen
-.SH SYNOPSIS
-\fBclear\fR
-.br
-.SH DESCRIPTION
-\fBclear\fR clears your screen if this is possible. It looks in the
-environment for the terminal type and then in the \fBterminfo\fR database to
-figure out how to clear the screen.
-.SH SEE ALSO
-\fB@TPUT@\fR(1), \fBterminfo\fR(\*n)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_add_wch.3x b/ncurses-5.3/man/curs_add_wch.3x
deleted file mode 100644
index 37f13af..0000000
--- a/ncurses-5.3/man/curs_add_wch.3x
+++ /dev/null
@@ -1,134 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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/ncurses-5.3/man/curs_add_wchstr.3x b/ncurses-5.3/man/curs_add_wchstr.3x
deleted file mode 100644
index 66896f1..0000000
--- a/ncurses-5.3/man/curs_add_wchstr.3x
+++ /dev/null
@@ -1,98 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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:
diff --git a/ncurses-5.3/man/curs_addch.3x b/ncurses-5.3/man/curs_addch.3x
deleted file mode 100644
index c3693fd..0000000
--- a/ncurses-5.3/man/curs_addch.3x
+++ /dev/null
@@ -1,170 +0,0 @@
-'\" 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$
-.TH curs_addch 3X ""
-.SH NAME
-\fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR,
-\fBechochar\fR,
-\fBwechochar\fR - add a character (with attributes) to a \fBcurses\fR window, then advance the cursor
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint addch(const chtype ch);\fR
-.br
-\fBint waddch(WINDOW *win, const chtype ch);\fR
-.br
-\fBint mvaddch(int y, int x, const chtype ch);\fR
-.br
-\fBint mvwaddch(WINDOW *win, int y, int x, const chtype ch);\fR
-.br
-\fBint echochar(const chtype ch);\fR
-.br
-\fBint wechochar(WINDOW *win, const chtype ch);\fR
-.br
-.SH DESCRIPTION
-The \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR and \fBmvwaddch\fR routines put
-the character \fIch\fR into the given window at its current window position,
-which is then advanced. They are analogous to \fBputchar\fR in \fBstdio\fR(3).
-If the advance is at the right margin, the cursor automatically wraps to the
-beginning of the next line. At the bottom of the current scrolling region, if
-\fBscrollok\fR is enabled, the scrolling region is scrolled up one line.
-
-If \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
-control character does not return the character itself, but instead returns
-the ^-representation of the control character.
-
-Video attributes can be combined with a character argument passed to
-\fBaddch\fR or related functions by logical-ORing them into the character.
-(Thus, text, including attributes, can be copied from one place to another
-using \fBinch\fR and \fBaddch\fR.). See the \fBcurs_attr\fR(3X) page for
-values of predefined video attribute constants that can be usefully OR'ed
-into characters.
-
-The \fBechochar\fR and \fBwechochar\fR routines are equivalent to a call to
-\fBaddch\fR followed by a call to \fBrefresh\fR, or a call to \fBwaddch\fR
-followed by a call to \fBwrefresh\fR. 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.
-.SS Line Graphics
-The following variables may be used to add line drawing characters to the
-screen with routines of the \fBaddch\fR family. The default character listed
-below is used if the \fBacsc\fR capability doesn't define a terminal-specific
-replacement for it (but see the EXTENSIONS section below). The names are
-taken from VT100 nomenclature.
-
-.TS
-l l l
-_ _ _
-l l l.
-\fIName\fR \fIDefault\fR \fIDescription\fR
-ACS_BLOCK # solid square block
-ACS_BOARD # board of squares
-ACS_BTEE + bottom tee
-ACS_BULLET o bullet
-ACS_CKBOARD : checker board (stipple)
-ACS_DARROW v arrow pointing down
-ACS_DEGREE ' degree symbol
-ACS_DIAMOND + diamond
-ACS_GEQUAL > greater-than-or-equal-to
-ACS_HLINE - horizontal line
-ACS_LANTERN # lantern symbol
-ACS_LARROW < arrow pointing left
-ACS_LEQUAL < less-than-or-equal-to
-ACS_LLCORNER + lower left-hand corner
-ACS_LRCORNER + lower right-hand corner
-ACS_LTEE + left tee
-ACS_NEQUAL ! not-equal
-ACS_PI * greek pi
-ACS_PLMINUS # plus/minus
-ACS_PLUS + plus
-ACS_RARROW > arrow pointing right
-ACS_RTEE + right tee
-ACS_S1 - scan line 1
-ACS_S3 - scan line 3
-ACS_S7 - scan line 7
-ACS_S9 \&_ scan line 9
-ACS_STERLING f pound-sterling symbol
-ACS_TTEE + top tee
-ACS_UARROW ^ arrow pointing up
-ACS_ULCORNER + upper left-hand corner
-ACS_URCORNER + upper right-hand corner
-ACS_VLINE | vertical line
-.TE
-
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
-successful completion, unless otherwise noted in the preceding routine
-descriptions.
-.SH NOTES
-Note that \fBaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR, and
-\fBechochar\fR may be macros.
-.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,
-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 \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),
-\fBputc\fR(3S).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_addchstr.3x b/ncurses-5.3/man/curs_addchstr.3x
deleted file mode 100644
index b12d51a..0000000
--- a/ncurses-5.3/man/curs_addchstr.3x
+++ /dev/null
@@ -1,83 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_addchstr 3X ""
-.SH NAME
-\fBaddchstr\fR, \fBaddchnstr\fR, \fBwaddchstr\fR,
-\fBwaddchnstr\fR, \fBmvaddchstr\fR, \fBmvaddchnstr\fR, \fBmvwaddchstr\fR,
-\fBmvwaddchnstr\fR - add a string of characters (and attributes) to a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint addchstr(const chtype *chstr);\fR
-.br
-\fBint addchnstr(const chtype *chstr, int n);\fR
-.br
-\fBint waddchstr(WINDOW *win, const chtype *chstr);\fR
-.br
-\fBint waddchnstr(WINDOW *win, const chtype *chstr, int n);\fR
-.br
-\fBint mvaddchstr(int y, int x, const chtype *chstr);\fR
-.br
-\fBint mvaddchnstr(int y, int x, const chtype *chstr, int n);\fR
-.br
-\fBint mvwaddchstr(WINDOW *win, int y, int x, const chtype *chstr);\fR
-.br
-\fBint mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n);\fR
-.SH DESCRIPTION
-These routines copy \fIchstr\fR into the window image structure at and after
-the current cursor position. The four routines with \fIn\fR as the last
-argument copy at most \fIn\fR elements, but no more than will fit on the line.
-If \fBn\fR=\fB-1\fR then the whole string is copied, to the maximum number of
-characters that will fit on the line.
-
-The window cursor is \fInot\fR advanced, and these routines work faster than
-\fBwaddnstr\fR. On the other hand, they don't perform any kind of checking
-(such as for the newline, backspace, or carriage return characters), they don't
-advance the current cursor position, they don't expand other control characters
-to ^-escapes, and they truncate the string if it crosses the right margin,
-rather then wrapping it around to the new line.
-
-.SH RETURN VALUES
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
-(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
-successful completion, unless otherwise noted in the preceding routine
-descriptions.
-.SH NOTES
-Note that all routines except \fBwaddchnstr\fR may be macros.
-.SH PORTABILITY
-All these entry points are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_addstr.3x b/ncurses-5.3/man/curs_addstr.3x
deleted file mode 100644
index 6b71e02..0000000
--- a/ncurses-5.3/man/curs_addstr.3x
+++ /dev/null
@@ -1,87 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_addstr 3X ""
-.SH NAME
-\fBaddstr\fR,
-\fBaddnstr\fR,
-\fBwaddstr\fR,
-\fBwaddnstr\fR,
-\fBmvaddstr\fR,
-\fBmvaddnstr\fR,
-\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
-
-\fBint addstr(const char *\fR\fIstr\fR\fB);\fR
-.br
-\fBint addnstr(const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint waddstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB);\fR
-.br
-\fBint waddnstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
-.br
-\fBint mvaddstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB);\fR
-.br
-\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
-\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
-\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
-\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
-successful completion.
-.SH NOTES
-Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be
-macros.
-.SH PORTABILITY
-All these entry points are described in the XSI Curses standard, Issue 4. The
-XSI errors EILSEQ and EOVERFLOW, associated with extended-level conformance,
-are not yet detected.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_addch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_addwstr.3x b/ncurses-5.3/man/curs_addwstr.3x
deleted file mode 100644
index 02eb827..0000000
--- a/ncurses-5.3/man/curs_addwstr.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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:
diff --git a/ncurses-5.3/man/curs_attr.3x b/ncurses-5.3/man/curs_attr.3x
deleted file mode 100644
index 09bfd93..0000000
--- a/ncurses-5.3/man/curs_attr.3x
+++ /dev/null
@@ -1,232 +0,0 @@
-'\" 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$
-.TH curs_attr 3X ""
-.SH NAME
-\fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
-\fBattrset\fR, \fBwattrset\fR, \fBcolor_set\fR, \fBwcolor_set\fR,
-\fBstandend\fR, \fBwstandend\fR, \fBstandout\fR, \fBwstandout\fR,
-\fBattr_get\fR, \fBwattr_get\fR,
-\fBattr_off\fR, \fBwattr_off\fR,
-\fBattr_on\fR, \fBwattr_on\fR,
-\fBattr_set\fR, \fBwattr_set\fR,
-\fBchgat\fR, \fBwchgat\fR,
-\fBmvchgat\fR, \fBmvwchgat\fR,
-\fBPAIR_NUMBER\fR - \fBcurses\fR character and window attribute control routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint attroff(int attrs);\fR
-.br
-\fBint wattroff(WINDOW *win, int attrs);\fR
-.br
-\fBint attron(int attrs);\fR
-.br
-\fBint wattron(WINDOW *win, int attrs);\fR
-.br
-\fBint attrset(int attrs);\fR
-.br
-\fBint wattrset(WINDOW *win, int attrs);\fR
-.br
-\fBint color_set(short color_pair_number, void* opts);\fR
-.br
-\fBint wcolor_set(WINDOW *win, short color_pair_number,\fR
- \fBvoid* opts);\fR
-.br
-\fBint standend(void);\fR
-.br
-\fBint wstandend(WINDOW *win);\fR
-.br
-\fBint standout(void);\fR
-.br
-\fBint wstandout(WINDOW *win);\fR
-.br
-\fBint attr_get(attr_t *attrs, short *pair, void *opts);\fR
-.br
-\fBint wattr_get(WINDOW *win, attr_t *attrs, short *pair,\fR
- \fBvoid *opts);\fR
-.br
-\fBint attr_off(attr_t attrs, void *opts);\fR
-.br
-\fBint wattr_off(WINDOW *win, attr_t attrs, void *opts);\fR
-.br
-\fBint attr_on(attr_t attrs, void *opts);\fR
-.br
-\fBint wattr_on(WINDOW *win, attr_t attrs, void *opts);\fR
-.br
-\fBint attr_set(attr_t attrs, short pair, void *opts);\fR
-.br
-\fBint wattr_set(WINDOW *win, attr_t attrs, short pair, void *opts);\fR
-.br
-\fBint chgat(int n, attr_t attr, short color,\fR
- \fBconst void *opts)\fR
-.br
-\fBint wchgat(WINDOW *win, int n, attr_t attr,\fR
- \fBshort color, const void *opts)\fR
-.br
-\fBint mvchgat(int y, int x, int n, attr_t attr,\fR
- \fBshort color, const void *opts)\fR
-.br
-\fBint mvwchgat(WINDOW *win, int y, int x, int n,\fR
- \fBattr_t attr, short color, const void *opts)\fR
-.br
-.SH DESCRIPTION
-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 \fBwaddch\fR, \fBwaddstr\fR and \fBwprintw\fR. 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.
-.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
-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.
-.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.
-.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.
-.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
-than the remaining window width means to change attributes all the way to the
-end of the current line. The \fBwchgat\fR function generalizes this to any
-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).
-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
-characters passed to \fBaddch\fR.
-
-.TS
-center ;
-l l .
-\fBA_NORMAL\fR Normal display (no highlight)
-\fBA_STANDOUT\fR Best highlighting mode of the terminal.
-\fBA_UNDERLINE\fR Underlining
-\fBA_REVERSE\fR Reverse video
-\fBA_BLINK\fR Blinking
-\fBA_DIM\fR Half bright
-\fBA_BOLD\fR Extra bright or bold
-\fBA_PROTECT\fR Protected mode
-\fBA_INVIS\fR Invisible or blank mode
-\fBA_ALTCHARSET\fR Alternate character set
-\fBA_CHARTEXT\fR Bit-mask to extract a character
-\fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR Color-pair number \fIn\fR
-.TE
-
-The following macro is the reverse of \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR:
-
-.br
-\fBPAIR_NUMBER(\fR\fIattrs\fR) Returns the pair number associated
- with the \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR attribute.
-.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.
-.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 PORTABILITY
-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.
-.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).
-.PP
-XSI Curses added the new entry points, \fBattr_get\fR, \fBattr_on\fR,
-\fBattr_off\fR, \fBattr_set\fR, \fBwattr_on\fR, \fBwattr_off\fR,
-\fBwattr_get\fR, \fBwattr_set\fR. These are intended to work with
-a new series of highlight macros prefixed with \fBWA_\fR.
-
-.TS
-center ;
-l l .
-\fBWA_NORMAL\fR Normal display (no highlight)
-\fBWA_STANDOUT\fR Best highlighting mode of the terminal.
-\fBWA_UNDERLINE\fR Underlining
-\fBWA_REVERSE\fR Reverse video
-\fBWA_BLINK\fR Blinking
-\fBWA_DIM\fR Half bright
-\fBWA_BOLD\fR Extra bright or bold
-\fBWA_ALTCHARSET\fR Alternate character set
-.TE
-
-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
-\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
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_beep.3x b/ncurses-5.3/man/curs_beep.3x
deleted file mode 100644
index 720317e..0000000
--- a/ncurses-5.3/man/curs_beep.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_beep 3X ""
-.SH NAME
-\fBbeep\fR, \fBflash\fR - \fBcurses\fR bell and screen flash routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint beep(void);\fR
-.br
-\fBint flash(void);\fR
-.br
-.SH DESCRIPTION
-The \fBbeep\fR and \fBflash\fR routines are used to alert the terminal user.
-The routine \fBbeep\fR sounds an audible alarm on the terminal, if possible;
-otherwise it flashes the screen (visible bell). The routine \fBflash\fR
-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 flash the screen.
-.SH RETURN VALUE
-These routines return \fBOK\fR if they succeed in beeping or flashing,
-\fBERR\fR otherwise.
-.SH EXTENSIONS
-SVr4's beep and flash routines always returned \fBOK\fR, so it was not
-possible to tell when the beep or flash failed.
-.SH PORTABILITY
-These functions are defined in the XSI Curses standard, Issue 4. Like SVr4, it
-specifies that they always return \fBOK\fR.
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_bkgd.3x b/ncurses-5.3/man/curs_bkgd.3x
deleted file mode 100644
index 5a41746..0000000
--- a/ncurses-5.3/man/curs_bkgd.3x
+++ /dev/null
@@ -1,99 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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
-
-\fBvoid bkgdset(chtype ch);\fR
-.br
-\fBvoid wbkgdset(WINDOW *win, chtype ch);\fR
-.br
-\fBint bkgd(chtype ch);\fR
-.br
-\fBint wbkgd(WINDOW *win, chtype ch);\fR
-.br
-\fBchtype getbkgd(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-The \fBbkgdset\fR and \fBwbkgdset\fR routines manipulate the
-background of the named window.
-The window background is a \fBchtype\fR 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
-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 \fBbkgd\fR and \fBwbkgd\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 \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 NOTES
-Note that \fBbkgdset\fR and \fBbkgd\fR may be macros.
-.SH PORTABILITY
-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
-\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:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_bkgrnd.3x b/ncurses-5.3/man/curs_bkgrnd.3x
deleted file mode 100644
index 386942b..0000000
--- a/ncurses-5.3/man/curs_bkgrnd.3x
+++ /dev/null
@@ -1,107 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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:
diff --git a/ncurses-5.3/man/curs_border.3x b/ncurses-5.3/man/curs_border.3x
deleted file mode 100644
index 20d82ab..0000000
--- a/ncurses-5.3/man/curs_border.3x
+++ /dev/null
@@ -1,138 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_border 3X ""
-.SH NAME
-\fBborder\fR, \fBwborder\fR, \fBbox\fR,
-\fBhline\fR, \fBwhline\fR,
-\fBvline\fR, \fBwvline\fR,
-\fBmvhline\fR, \fBmvwhline\fR,
-\fBmvvline\fR, \fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint border(chtype ls, chtype rs, chtype ts, chtype bs,\fR
- \fBchtype tl, chtype tr, chtype bl, chtype br);\fR
-.br
-\fBint wborder(WINDOW *win, chtype ls, chtype rs,\fR
- \fBchtype ts, chtype bs, chtype tl, chtype tr,\fR
- \fBchtype bl, chtype br);\fR
-.br
-\fBint box(WINDOW *win, chtype verch, chtype horch);\fR
-.br
-\fBint hline(chtype ch, int n);\fR
-.br
-\fBint whline(WINDOW *win, chtype ch, int n);\fR
-.br
-\fBint vline(chtype ch, int n);\fR
-.br
-\fBint wvline(WINDOW *win, chtype ch, int n);\fR
-.br
-\fBmvhline(int y, int x, chtype ch, int n);\fR
-.br
-\fBmvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR
-.br
-\fBint mvvline(int y, int x, chtype ch, int n);\fR
-.br
-\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.
-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
-\fIverch\fR\fB,\fR \fIhorch\fR\fB,\fR \fIhorch\fR\fB, 0, 0, 0, 0)\fR.
-
-The \fBhline\fR and \fBwhline\fR functions draw a horizontal (left to right)
-line using \fIch\fR starting at the current cursor position in the window. The
-current cursor position is not changed. The line is at most \fIn\fR characters
-long, or as many as fit into the window.
-
-The \fBvline\fR and \fBwvline\fR functions draw a vertical (top to bottom) line
-using \fIch\fR starting at the current cursor position in the window. The
-current cursor position is not changed. The line is at most \fIn\fR characters
-long, or as many as fit into the window.
-.SH RETURN VALUE
-All routines return the integer \fBOK\fR. The SVr4.0 manual says "or a
-non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
-.SH NOTES
-The borders generated by these functions are \fIinside\fR borders (this
-is also true of SVr4 curses, though the fact is not documented).
-
-Note that \fBborder\fR and \fBbox\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-The standard specifies that they return \fBERR\fR on failure,
-but specifies no error conditions.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_border_set.3x b/ncurses-5.3/man/curs_border_set.3x
deleted file mode 100644
index 58de650..0000000
--- a/ncurses-5.3/man/curs_border_set.3x
+++ /dev/null
@@ -1,202 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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:
diff --git a/ncurses-5.3/man/curs_clear.3x b/ncurses-5.3/man/curs_clear.3x
deleted file mode 100644
index 8aaa6ad..0000000
--- a/ncurses-5.3/man/curs_clear.3x
+++ /dev/null
@@ -1,94 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_clear 3X ""
-.SH NAME
-\fBerase\fR, \fBwerase\fR, \fBclear\fR,
-\fBwclear\fR, \fBclrtobot\fR, \fBwclrtobot\fR, \fBclrtoeol\fR,
-\fBwclrtoeol\fR - clear all or part of a \fBcurses\fR window
-.SH SYNOPSIS
-\fB# include <curses.h>\fR
-
-\fBint erase(void);\fR
-.br
-\fBint werase(WINDOW *win);\fR
-.br
-\fBint clear(void);\fR
-.br
-\fBint wclear(WINDOW *win);\fR
-.br
-\fBint clrtobot(void);\fR
-.br
-\fBint wclrtobot(WINDOW *win);\fR
-.br
-\fBint clrtoeol(void);\fR
-.br
-\fBint wclrtoeol(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-The \fBerase\fR and \fBwerase\fR routines copy blanks to every
-position in the window, clearing the screen.
-
-The \fBclear\fR and \fBwclear\fR routines are like \fBerase\fR and
-\fBwerase\fR, but they also call \fBclearok\fR, so that the screen is
-cleared completely on the next call to \fBwrefresh\fR for that window
-and repainted from scratch.
-
-The \fBclrtobot\fR and \fBwclrtobot\fR routines erase from the cursor to the
-end of screen. That is, they erase all lines below the cursor in the window.
-Also, the current line to the right of the cursor, inclusive, is erased.
-
-The \fBclrtoeol\fR and \fBwclrtoeol\fR routines erase the current line
-to the right of the cursor, inclusive, to the end of the current line.
-
-Blanks created by erasure have the current background rendition (as set
-by \fBwbkgdset\fR) merged into them.
-.SH RETURN VALUE
-All routines return the integer \fBOK\fR. The SVr4.0 manual says "or a
-non-negative integer if \fBimmedok\fR is set", but this appears to be an error.
-.SH NOTES
-Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
-\fBclrtobot\fR, and \fBclrtoeol\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
-
-Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. This will not work under
-ncurses.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_color.3x b/ncurses-5.3/man/curs_color.3x
deleted file mode 100644
index db1e49a..0000000
--- a/ncurses-5.3/man/curs_color.3x
+++ /dev/null
@@ -1,216 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_color 3X ""
-.SH NAME
-\fBstart_color\fR,
-\fBinit_pair\fR,
-\fBinit_color\fR,
-\fBhas_colors\fR,
-\fBcan_change_color\fR,
-\fBcolor_content\fR,
-\fBpair_content\fR,
-\fBCOLOR_PAIR\fR - \fBcurses\fR color manipulation routines
-.SH SYNOPSIS
-\fB# include <curses.h>\fR
-.br
-\fBint start_color(void);\fR
-.br
-\fBint init_pair(short pair, short f, short b);\fR
-.br
-\fBint init_color(short color, short r, short g, short b);\fR
-.br
-\fBbool has_colors(void);\fR
-.br
-\fBbool can_change_color(void);\fR
-.br
-\fBint color_content(short color, short *r, short *g, short *b);\fR
-.br
-\fBint pair_content(short pair, short *f, short *b);\fR
-.br
-.SH DESCRIPTION
-.SS Overview
-\fBcurses\fR support color attributes on terminals with that capability. To
-use these routines \fBstart_color\fR must be called, usually right after
-\fBinitscr\fR. Colors are always used in pairs (referred to as color-pairs).
-A color-pair consists of a foreground color (for characters) and a background
-color (for the blank field on which the characters are displayed). A
-programmer initializes a color-pair with the routine \fBinit_pair\fR. After it
-has been initialized, \fBCOLOR_PAIR\fR(\fIn\fR), a macro defined in
-\fB<curses.h>\fR, can be used as a new video attribute.
-
-If a terminal is capable of redefining colors, the programmer can use the
-routine \fBinit_color\fR to change the definition of a color. The routines
-\fBhas_colors\fR and \fBcan_change_color\fR return \fBTRUE\fR or \fBFALSE\fR,
-depending on whether the terminal has color capabilities and whether the
-programmer can change the colors. The routine \fBcolor_content\fR allows a
-programmer to extract the amounts of red, green, and blue components in an
-initialized color. The routine \fBpair_content\fR allows a programmer to find
-out how a given color-pair is currently defined.
-.SS Routine Descriptions
-The \fBstart_color\fR routine requires no arguments. It must be
-called if the programmer wants to use colors, and before any other
-color manipulation routine is called. It is good practice to call
-this routine right after \fBinitscr\fR. \fBstart_color\fR initializes
-eight basic colors (black, red, green, yellow, blue, magenta, cyan,
-and white), and two global variables, \fBCOLORS\fR and
-\fBCOLOR_PAIRS\fR (respectively defining the maximum number of colors
-and color-pairs the terminal can support). It also restores the
-colors on the terminal to the values they had when the terminal was
-just turned on.
-
-The \fBinit_pair\fR routine changes the definition of a color-pair. It takes
-three arguments: the number of the color-pair to be changed, the foreground
-color number, and the background color number.
-For portable applications:
-.TP 5
--
-The value of the first argument
-must be between \fB1\fR and \fBCOLOR_PAIRS-1\fR.
-.TP 5
--
-The value of the second and
-third arguments must be between 0 and \fBCOLORS\fR (the 0 color pair is wired
-to white on black and cannot be changed).
-.PP
-If the color-pair was previously
-initialized, the screen is refreshed and all occurrences of that color-pair
-are changed to the new definition.
-
-As an extension, ncurses allows you to set color pair 0 via
-the \fBassume_default_colors\fR routine, or to specify the use of
-default colors (color number \fB-1\fR) if you first invoke the
-\fBuse_default_colors\fR routine.
-
-The \fBinit_color\fR routine changes the definition of a color. It takes four
-arguments: the number of the color to be changed followed by three RGB values
-(for the amounts of red, green, and blue components). The value of the first
-argument must be between \fB0\fR and \fBCOLORS\fR. (See the section
-\fBColors\fR for the default color index.) Each of the last three arguments
-must be a value between 0 and 1000. When \fBinit_color\fR is used, all
-occurrences of that color on the screen immediately change to the new
-definition.
-
-The \fBhas_colors\fR routine requires no arguments. It returns \fBTRUE\fR if
-the terminal can manipulate colors; otherwise, it returns \fBFALSE\fR. This
-routine facilitates writing terminal-independent programs. For example, a
-programmer can use it to decide whether to use color or some other video
-attribute.
-
-The \fBcan_change_color\fR routine requires no arguments. It returns
-\fBTRUE\fR if the terminal supports colors and can change their definitions;
-other, it returns \fBFALSE\fR. This routine facilitates writing
-terminal-independent programs.
-
-The \fBcolor_content\fR routine gives programmers a way to find the intensity
-of the red, green, and blue (RGB) components in a color. It requires four
-arguments: the color number, and three addresses of \fBshort\fRs for storing
-the information about the amounts of red, green, and blue components in the
-given color. The value of the first argument must be between 0 and
-\fBCOLORS\fR. The values that are stored at the addresses pointed to by the
-last three arguments are between 0 (no component) and 1000 (maximum amount of
-component).
-
-The \fBpair_content\fR routine allows programmers to find out what colors a
-given color-pair consists of. It requires three arguments: the color-pair
-number, and two addresses of \fBshort\fRs for storing the foreground and the
-background color numbers. The value of the first argument must be between 1
-and \fBCOLOR_PAIRS-1\fR. The values that are stored at the addresses pointed
-to by the second and third arguments are between 0 and \fBCOLORS\fR.
-.SS Colors
-In \fB<curses.h>\fR the following macros are defined. These are the default
-colors. \fBcurses\fR also assumes that \fBCOLOR_BLACK\fR is the default
-background color for all terminals.
-
-.nf
- \fBCOLOR_BLACK\fR
- \fBCOLOR_RED\fR
- \fBCOLOR_GREEN\fR
- \fBCOLOR_YELLOW\fR
- \fBCOLOR_BLUE\fR
- \fBCOLOR_MAGENTA\fR
- \fBCOLOR_CYAN\fR
- \fBCOLOR_WHITE\fR
-.fi
-.SH RETURN VALUE
-The routines \fBcan_change_color()\fR and \fBhas_colors()\fR return \fBTRUE\fR
-or \fBFALSE\fR.
-
-All other routines return the integer \fBERR\fR upon failure and an \fBOK\fR
-(SVr4 specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH NOTES
-In the \fIncurses\fR implementation, there is a separate color activation flag,
-color palette, color pairs table, and associated COLORS and COLOR_PAIRS counts
-for each screen; the \fBstart_color\fR function only affects the current
-screen. The SVr4/XSI interface is not really designed with this in mind, and
-historical implementations may use a single shared color palette.
-
-Note that setting an implicit background color via a color pair affects only
-character cells that a character write operation explicitly touches. To change
-the background color used when parts of a window are blanked by erasing or
-scrolling operations, see \fBcurs_bkgd\fR(3X).
-
-Several caveats apply on 386 and 486 machines with VGA-compatible graphics:
-.TP 5
--
-COLOR_YELLOW is actually brown. To get yellow, use COLOR_YELLOW combined with
-the \fBA_BOLD\fR attribute.
-.TP 5
--
-The A_BLINK attribute should in theory cause the background to go bright. This
-often fails to work, and even some cards for which it mostly works (such as the
-Paradise and compatibles) do the wrong thing when you try to set a bright
-"yellow" background (you get a blinking yellow foreground instead).
-.TP 5
--
-Color RGB values are not settable.
-.SH PORTABILITY
-This implementation satisfies XSI Curses's minimum maximums
-for \fBCOLORS\fR and \fBCOLOR_PAIRS\fR.
-.PP
-The \fBinit_pair\fP routine accepts negative values of foreground
-and background color to support the \fBuse_default_colors\fP extension,
-but only if that routine has been first invoked.
-.PP
-The assumption that \fBCOLOR_BLACK\fR is the default
-background color for all terminals can be modified using the
-\fBassume_default_colors\fP extension,
-
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_initscr\fR(3X),
-\fBcurs_attr\fR(3X),
-\fBdefault_colors\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_delch.3x b/ncurses-5.3/man/curs_delch.3x
deleted file mode 100644
index 4edc06a..0000000
--- a/ncurses-5.3/man/curs_delch.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_delch 3X ""
-.SH NAME
-\fBdelch\fR,
-\fBwdelch\fR,
-\fBmvdelch\fR,
-\fBmvwdelch\fR - delete character under the cursor in a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint delch(void);\fR
-.br
-\fBint wdelch(WINDOW *win);\fR
-.br
-\fBint mvdelch(int y, int x);\fR
-.br
-\fBint mvwdelch(WINDOW *win, int y, int x);\fR
-.br
-.SH DESCRIPTION
-These routines delete the character under the cursor; all 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 \fIy\fR, \fIx\fR, if specified). (This does not
-imply use of the hardware delete character feature.)
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH NOTES
-Note that \fBdelch\fR, \fBmvdelch\fR, and \fBmvwdelch\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_deleteln.3x b/ncurses-5.3/man/curs_deleteln.3x
deleted file mode 100644
index dd17635..0000000
--- a/ncurses-5.3/man/curs_deleteln.3x
+++ /dev/null
@@ -1,87 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_deleteln 3X ""
-.SH NAME
-\fBdeleteln\fR,
-\fBwdeleteln\fR,
-\fBinsdelln\fR,
-\fBwinsdelln\fR,
-\fBinsertln\fR,
-\fBwinsertln\fR - delete and insert lines in a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint deleteln(void);\fR
-.br
-\fBint wdeleteln(WINDOW *win);\fR
-.br
-\fBint insdelln(int n);\fR
-.br
-\fBint winsdelln(WINDOW *win, int n);\fR
-.br
-\fBint insertln(void);\fR
-.br
-\fBint winsertln(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-The \fBdeleteln\fR and \fBwdeleteln\fR 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 \fBinsdelln\fR and \fBwinsdelln\fR routines, for positive \fIn\fR, insert
-\fIn\fR lines into the specified window above the current line. The \fIn\fR
-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.
-
-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
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that they return \fBERR\fR on failure, but specifies no
-error conditions.
-.SH NOTES
-Note that all but \fBwinsdelln\fR may be macros.
-
-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
-\fBidlok(..., TRUE)\fR has been set on the current window.
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_extend.3x b/ncurses-5.3/man/curs_extend.3x
deleted file mode 100644
index 97a8fc0..0000000
--- a/ncurses-5.3/man/curs_extend.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-.\"***************************************************************************
-.\" 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 <dickey@clark.net> 1999
-.\"
-.\" $Id$
-.TH curs_extend 3X ""
-.SH NAME
-\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 DESCRIPTION
-These functions are extensions to the curses library
-which do not fit easily into other categories.
-.PP
-Use
-.I curses_version()
-to get the version number, including patch level of the library, e.g.,
-.B 5.0.19991023
-.PP
-The
-.I use_extended_names()
-function controls whether the calling application
-is able to use user-defined or nonstandard names
-which may be compiled into the terminfo
-description, i.e., via the terminfo or termcap interfaces.
-Normally these names are available for use, since the essential descision
-is made by using the \fB-x\fP option of \fItic\fP to compile
-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 SEE ALSO
-\fBcurs_getch\fR(3X),
-\fBcurs_mouse\fR(3X),
-\fBcurs_print\fR(3X),
-\fBdefault_colors\fR(3X),
-\fBdefine_key\fR(3X),
-\fBkeybound\fR(3X),
-\fBkeyok\fR(3X),
-\fBresizeterm\fR(3X),
-\fBwresize\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_get_wch.3x b/ncurses-5.3/man/curs_get_wch.3x
deleted file mode 100644
index e0aab4f..0000000
--- a/ncurses-5.3/man/curs_get_wch.3x
+++ /dev/null
@@ -1,161 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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/ncurses-5.3/man/curs_get_wstr.3x b/ncurses-5.3/man/curs_get_wstr.3x
deleted file mode 100644
index 19140cf..0000000
--- a/ncurses-5.3/man/curs_get_wstr.3x
+++ /dev/null
@@ -1,164 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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/ncurses-5.3/man/curs_getcchar.3x b/ncurses-5.3/man/curs_getcchar.3x
deleted file mode 100644
index 9745b7b..0000000
--- a/ncurses-5.3/man/curs_getcchar.3x
+++ /dev/null
@@ -1,144 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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:
diff --git a/ncurses-5.3/man/curs_getch.3x b/ncurses-5.3/man/curs_getch.3x
deleted file mode 100644
index 1fcdb0f..0000000
--- a/ncurses-5.3/man/curs_getch.3x
+++ /dev/null
@@ -1,305 +0,0 @@
-'\" 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$
-.TH curs_getch 3X ""
-.SH NAME
-\fBgetch\fR,
-\fBwgetch\fR,
-\fBmvgetch\fR,
-\fBmvwgetch\fR,
-\fBungetch\fR,
-\fBhas_key\fR \- get (or push back) characters from \fBcurses\fR terminal keyboard
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint getch(void);\fR
-.br
-\fBint wgetch(WINDOW *win);\fR
-.br
-\fBint mvgetch(int y, int x);\fR
-.br
-\fBint mvwgetch(WINDOW *win, int y, int x);\fR
-.br
-\fBint ungetch(int ch);\fR
-.br
-\fBint has_key(int ch);\fR
-.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
-specified timeout has been reached.
-
-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
-as if \fBdelch\fR had been called.
-If the character value is any other \fBKEY_\fR define, the user is alerted
-with a \fBbeep\fR call.
-Otherwise the character is simply output to the screen.
-
-If the window is not a pad, and it 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 \fBTRUE\fR, 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 \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
-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.
-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
-\fBgetch\fR if \fBkeypad\fR has been enabled.
-Note that not all of these are
-necessarily supported on any particular terminal.
-.sp
-.TS
-center tab(/) ;
-l l
-l l .
-\fIName\fR/\fIKey\fR \fIname\fR
-
-KEY_BREAK/Break key
-KEY_DOWN/The four arrow keys ...
-KEY_UP
-KEY_LEFT
-KEY_RIGHT
-KEY_HOME/Home key (upward+left arrow)
-KEY_BACKSPACE/Backspace
-KEY_F0/T{
-Function keys; space for 64 keys is reserved.
-T}
-KEY_F(\fIn\fR)/T{
-For 0 \(<= \fIn\fR \(<= 63
-T}
-KEY_DL/Delete line
-KEY_IL/Insert line
-KEY_DC/Delete character
-KEY_IC/Insert char or enter insert mode
-KEY_EIC/Exit insert char mode
-KEY_CLEAR/Clear screen
-KEY_EOS/Clear to end of screen
-KEY_EOL/Clear to end of line
-KEY_SF/Scroll 1 line forward
-KEY_SR/Scroll 1 line backward (reverse)
-KEY_NPAGE/Next page
-KEY_PPAGE/Previous page
-KEY_STAB/Set tab
-KEY_CTAB/Clear tab
-KEY_CATAB/Clear all tabs
-KEY_ENTER/Enter or send
-KEY_SRESET/Soft (partial) reset
-KEY_RESET/Reset or hard reset
-KEY_PRINT/Print or copy
-KEY_LL/Home down or bottom (lower left).
-KEY_A1/Upper left of keypad
-KEY_A3/Upper right of keypad
-KEY_B2/Center of keypad
-KEY_C1/Lower left of keypad
-KEY_C3/Lower right of keypad
-KEY_BTAB/Back tab key
-KEY_BEG/Beg(inning) key
-KEY_CANCEL/Cancel key
-KEY_CLOSE/Close key
-KEY_COMMAND/Cmd (command) key
-KEY_COPY/Copy key
-KEY_CREATE/Create key
-KEY_END/End key
-KEY_EXIT/Exit key
-KEY_FIND/Find key
-KEY_HELP/Help key
-KEY_MARK/Mark key
-KEY_MESSAGE/Message key
-KEY_MOUSE/Mouse event read
-KEY_MOVE/Move key
-KEY_NEXT/Next object key
-KEY_OPEN/Open key
-KEY_OPTIONS/Options key
-KEY_PREVIOUS/Previous object key
-KEY_REDO/Redo key
-KEY_REFERENCE/Ref(erence) key
-KEY_REFRESH/Refresh key
-KEY_REPLACE/Replace key
-KEY_RESIZE/Screen resized
-KEY_RESTART/Restart key
-KEY_RESUME/Resume key
-KEY_SAVE/Save key
-KEY_SBEG/Shifted beginning key
-KEY_SCANCEL/Shifted cancel key
-KEY_SCOMMAND/Shifted command key
-KEY_SCOPY/Shifted copy key
-KEY_SCREATE/Shifted create key
-KEY_SDC/Shifted delete char key
-KEY_SDL/Shifted delete line key
-KEY_SELECT/Select key
-KEY_SEND/Shifted end key
-KEY_SEOL/Shifted clear line key
-KEY_SEXIT/Shifted exit key
-KEY_SFIND/Shifted find key
-KEY_SHELP/Shifted help key
-KEY_SHOME/Shifted home key
-KEY_SIC/Shifted input key
-KEY_SLEFT/Shifted left arrow key
-KEY_SMESSAGE/Shifted message key
-KEY_SMOVE/Shifted move key
-KEY_SNEXT/Shifted next key
-KEY_SOPTIONS/Shifted options key
-KEY_SPREVIOUS/Shifted prev key
-KEY_SPRINT/Shifted print key
-KEY_SREDO/Shifted redo key
-KEY_SREPLACE/Shifted replace key
-KEY_SRIGHT/Shifted right arrow
-KEY_SRSUME/Shifted resume key
-KEY_SSAVE/Shifted save key
-KEY_SSUSPEND/Shifted suspend key
-KEY_SUNDO/Shifted undo key
-KEY_SUSPEND/Suspend key
-KEY_UNDO/Undo key
-.TE
-
-Keypad is arranged like this:
-.sp
-.TS
-center allbox tab(/) ;
-c c c .
-\fBA1\fR/\fBup\fR/\fBA3\fR
-\fBleft\fR/\fBB2\fR/\fBright\fR
-\fBC1\fR/\fBdown\fR/\fBC3\fR
-.TE
-.sp
-The \fBhas_key\fR routine takes a key value from the above list, and
-returns TRUE or FALSE according to whether
-the current terminal type recognizes a key with that value.
-
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful
-completion.
-.SH NOTES
-Use of the escape key by a programmer for a single character function is
-discouraged, as it will cause a delay of up to one second while the
-keypad code looks for a following function-key sequence.
-
-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
-(\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
-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,
-\fBKEY_NPAGE\fR, \fBKEY_PPAGE\fR, and function keys 1 through 12.
-The Ins key
-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
-\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
-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
-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
-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
-\fBEINTR\fR.
-Under the \fBncurses\fR implementation, handled signals never
-interrupt \fBgetch\fR.
-
-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),
-\fBcurs_inopts\fR(3X),
-\fBcurs_mouse\fR(3X),
-\fBcurs_move\fR(3X),
-\fBcurs_refresh\fR(3X).
-\fBresizeterm\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_getstr.3x b/ncurses-5.3/man/curs_getstr.3x
deleted file mode 100644
index e63aa95..0000000
--- a/ncurses-5.3/man/curs_getstr.3x
+++ /dev/null
@@ -1,107 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_getstr 3X ""
-.SH NAME
-\fBgetstr\fR,
-\fBgetnstr\fR,
-\fBwgetstr\fR,
-\fBwgetnstr\fR,
-\fBmvgetstr\fR,
-\fBmvgetnstr\fR,
-\fBmvwgetstr\fR,
-\fBmvwgetnstr\fR - accept character strings from \fBcurses\fR terminal keyboard
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint getstr(char *str);\fR
-.br
-\fBint getnstr(char *str, int n);\fR
-.br
-\fBint wgetstr(WINDOW *win, char *str);\fR
-.br
-\fBint wgetnstr(WINDOW *win, char *str, int n);\fR
-.br
-\fBint mvgetstr(int y, int x, char *str);\fR
-.br
-\fBint mvwgetstr(WINDOW *win, int y, int x, char *str);\fR
-.br
-\fBint mvgetnstr(int y, int x, char *str, int n);\fR
-.br
-\fBint mvwgetnstr(WINDOW *, int y, int x, char *str, int n);\fR
-.br
-.SH DESCRIPTION
-The function \fBgetstr\fR is equivalent to a series of calls to \fBgetch\fR,
-until a newline or carriage return is received (the terminating character is
-not included in the returned string). The resulting value is placed in the
-area pointed to by the character pointer \fIstr\fR.
-
-\fBwgetnstr\fR reads at most \fIn\fR characters, thus preventing a possible
-overflow of the input buffer. Any attempt to enter more characters (other
-than the terminating newline or carriage return) causes a beep. Function
-keys also cause a beep and are ignored. The \fBgetnstr\fR function reads
-from the \fIstdscr\fR default window.
-
-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).
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.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 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
-keys, "home" key, "clear" key, \fIetc\fR.) are interpreted" without
-giving details. It lied. In fact, the `character' value appended to the
-string by those implementations was predictable but not useful
-(being, in fact, the low-order eight bits of the key's KEY_ value).
-
-The functions \fBgetnstr\fR, \fBmvgetnstr\fR, and \fBmvwgetnstr\fR were
-present but not documented in SVr4.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_getch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_getyx.3x b/ncurses-5.3/man/curs_getyx.3x
deleted file mode 100644
index 6c0b9f0..0000000
--- a/ncurses-5.3/man/curs_getyx.3x
+++ /dev/null
@@ -1,97 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_getyx 3X ""
-.SH NAME
-.IX getbegx
-.IX getbegy
-.IX getcurx
-.IX getcury
-.IX getmaxx
-.IX getmaxy
-.IX getparx
-.IX getpary
-\fBgetyx\fR,
-\fBgetparyx\fR,
-\fBgetbegyx\fR,
-\fBgetmaxyx\fR - get \fBcurses\fR cursor and window coordinates
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBvoid getyx(WINDOW *win, int y, int x);\fR
-.br
-\fBvoid getparyx(WINDOW *win, int y, int x);\fR
-.br
-\fBvoid getbegyx(WINDOW *win, int y, int x);\fR
-.br
-\fBvoid getmaxyx(WINDOW *win, int y, int x);\fR
-.br
-.SH DESCRIPTION
-The \fBgetyx\fR macro places the current cursor position of the given window in
-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
-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.,
-they should not be used as the right-hand side of assignment statements).
-.SH NOTES
-All of these interfaces are macros.
-A "\fB&\fR" is not necessary before the variables \fIy\fR and \fIx\fR.
-.SH PORTABILITY
-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)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_in_wch.3x b/ncurses-5.3/man/curs_in_wch.3x
deleted file mode 100644
index e65f2b0..0000000
--- a/ncurses-5.3/man/curs_in_wch.3x
+++ /dev/null
@@ -1,68 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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/ncurses-5.3/man/curs_in_wchstr.3x b/ncurses-5.3/man/curs_in_wchstr.3x
deleted file mode 100644
index 05a53e8..0000000
--- a/ncurses-5.3/man/curs_in_wchstr.3x
+++ /dev/null
@@ -1,117 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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:
diff --git a/ncurses-5.3/man/curs_inch.3x b/ncurses-5.3/man/curs_inch.3x
deleted file mode 100644
index d86ea3a..0000000
--- a/ncurses-5.3/man/curs_inch.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH curs_inch 3X ""
-.SH NAME
-\fBinch\fR, \fBwinch\fR, \fBmvinch\fR, \fBmvwinch\fR
-- get a character and attributes from a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBchtype inch(void);\fR
-.br
-\fBchtype winch(WINDOW *win);\fR
-.br
-\fBchtype mvinch(int y, int x);\fR
-.br
-\fBchtype mvwinch(WINDOW *win, int y, int x);\fR
-.br
-.SH DESCRIPTION
-These routines return the character, of type \fBchtype\fR, 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
-\fB<curses.h>\fR can be used with the \fB&\fR (logical AND) operator to
-extract the character or attributes alone.
-
-.SS Attributes
-The following bit-masks may be AND-ed with characters returned by \fBwinch\fR.
-
-.TS
-l l .
-\fBA_CHARTEXT\fR Bit-mask to extract character
-\fBA_ATTRIBUTES\fR Bit-mask to extract attributes
-\fBA_COLOR\fR Bit-mask to extract color-pair field information
-.TE
-.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).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_inchstr.3x b/ncurses-5.3/man/curs_inchstr.3x
deleted file mode 100644
index 63d0ad4..0000000
--- a/ncurses-5.3/man/curs_inchstr.3x
+++ /dev/null
@@ -1,88 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_inchstr 3X ""
-.SH NAME
-\fBinchstr\fR,
-\fBinchnstr\fR,
-\fBwinchstr\fR,
-\fBwinchnstr\fR,
-\fBmvinchstr\fR,
-\fBmvinchnstr\fR,
-\fBmvwinchstr\fR,
-\fBmvwinchnstr\fR - get a string of characters (and attributes) from a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint inchstr(chtype *chstr);\fR
-.br
-\fBint inchnstr(chtype *chstr, int n);\fR
-.br
-\fBint winchstr(WINDOW *win, chtype *chstr);\fR
-.br
-\fBint winchnstr(WINDOW *win, chtype *chstr, int n);\fR
-.br
-\fBint mvinchstr(int y, int x, chtype *chstr);\fR
-.br
-\fBint mvinchnstr(int y, int x, chtype *chstr, int n);\fR
-.br
-\fBint mvwinchstr(WINDOW *win, int y, int x, chtype *chstr);\fR
-.br
-\fBint mvwinchnstr(WINDOW *win, int y, int x, chtype *chstr, int n);\fR
-.br
-.SH DESCRIPTION
-These routines return a NULL-terminated array of \fBchtype\fR quantities,
-starting at the current cursor position in the named window and ending at the
-right margin of the window. The four functions with \fIn\fR as
-the last argument, return a leading substring at most \fIn\fR characters long
-(exclusive of the trailing (chtype)0).
-Constants defined in \fB<curses.h>\fR can be used with the \fB&\fR (logical
-AND) operator to extract the character or the attribute alone from any position
-in the \fIchstr\fR [see \fBcurs_inch\fR(3X)].
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR upon successful completion (the number of characters
-retrieved, exclusive of the trailing 0).
-.SH NOTES
-Note that all routines except \fBwinchnstr\fR may be macros. SVr4 does not
-document whether the result string is 0-terminated; it does not document
-whether a length limit argument includes any trailing 0; and it does not
-document the meaning of the return value.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. It is no
-more specific than the SVr4 documentation on the trailing 0. It does specify
-that the successful return of the functions is \fBOK\fR.
-.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/ncurses-5.3/man/curs_initscr.3x b/ncurses-5.3/man/curs_initscr.3x
deleted file mode 100644
index 4a895b0..0000000
--- a/ncurses-5.3/man/curs_initscr.3x
+++ /dev/null
@@ -1,124 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_initscr 3X ""
-.SH NAME
-\fBinitscr\fR,
-\fBnewterm\fR,
-\fBendwin\fR,
-\fBisendwin\fR,
-\fBset_term\fR,
-\fBdelscreen\fR - \fBcurses\fR screen initialization and manipulation routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBWINDOW *initscr(void);\fR
-.br
-\fBint endwin(void);\fR
-.br
-\fBbool isendwin(void);\fR
-.br
-\fBSCREEN *newterm(char *type, FILE *outfd, FILE *infd);\fR
-.br
-\fBSCREEN *set_term(SCREEN *new);\fR
-.br
-\fBvoid delscreen(SCREEN* sp);\fR
-.br
-.SH DESCRIPTION
-\fBinitscr\fR is normally the first \fBcurses\fR routine to call when
-initializing a program. A few special routines sometimes need to be
-called before it; these are \fBslk_init\fR, \fBfilter\fR, \fBripoffline\fR,
-\fBuse_env\fR. For multiple-terminal applications, \fBnewterm\fR may be
-called before \fBinitscr\fR.
-
-The initscr code determines the terminal type and initializes all \fBcurses\fR
-data structures. \fBinitscr\fR also causes the first call to \fBrefresh\fR to
-clear the screen. If errors occur, \fBinitscr\fR writes an appropriate error
-message to standard error and exits; otherwise, a pointer is returned to
-\fBstdscr\fR.
-
-A program that outputs to more than one terminal should use the \fBnewterm\fR
-routine for each terminal instead of \fBinitscr\fR. A program that needs to
-inspect capabilities, so it can continue to run in a line-oriented mode if the
-terminal cannot support a screen-oriented program, would also use
-\fBnewterm\fR. The routine \fBnewterm\fR should be called once for each
-terminal. It returns a variable of type \fBSCREEN *\fR which should be saved
-as a reference to that terminal. The arguments are the \fItype\fR of the
-terminal to be used in place of \fB$TERM\fR, a file pointer for output to the
-terminal, and another file pointer for input from the terminal (if \fItype\fR
-is \fBNULL\fR, \fB$TERM\fR will be used). The program must also call
-\fBendwin\fR for each terminal being used before exiting from \fBcurses\fR.
-If \fBnewterm\fR is called more than once for the same terminal, the first
-terminal referred to must be the last one for which \fBendwin\fR is called.
-
-A program should always call \fBendwin\fR before exiting or escaping from
-\fBcurses\fR mode temporarily. This routine restores tty modes, moves the
-cursor to the lower left-hand corner of the screen and resets the terminal into
-the proper non-visual mode. Calling \fBrefresh\fR or \fBdoupdate\fR after a
-temporary escape causes the program to resume visual mode.
-
-The \fBisendwin\fR routine returns \fBTRUE\fR if \fBendwin\fR has been
-called without any subsequent calls to \fBwrefresh\fR, and \fBFALSE\fR
-otherwise.
-
-The \fBset_term\fR routine is used to switch between different
-terminals. The screen reference \fBnew\fR becomes the new current
-terminal. The previous terminal is returned by the routine. This is
-the only routine which manipulates \fBSCREEN\fR pointers; all other
-routines affect only the current terminal.
-
-The \fBdelscreen\fR routine frees storage associated with the
-\fBSCREEN\fR data structure. The \fBendwin\fR routine does not do
-this, so \fBdelscreen\fR should be called after \fBendwin\fR if a
-particular \fBSCREEN\fR is no longer needed.
-.SH RETURN VALUE
-\fBendwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
-upon successful completion.
-
-Routines that return pointers always return \fBNULL\fR on error.
-.SH NOTES
-Note that \fBinitscr\fR and \fBnewterm\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. It
-specifies that portable applications must not call \fBinitscr\fR more than
-once.
-
-Old versions of curses, e.g., BSD 4.4, may have returned a null pointer
-from \fBinitscr\fR when an error is detected, rather than exiting.
-It is safe but redundant to check the return value of \fBinitscr\fR
-in XSI Curses.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_refresh\fR(3X),
-\fBcurs_slk\fR(3X), \fBcurs_util\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_inopts.3x b/ncurses-5.3/man/curs_inopts.3x
deleted file mode 100644
index 66bee4f..0000000
--- a/ncurses-5.3/man/curs_inopts.3x
+++ /dev/null
@@ -1,214 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_inopts 3X ""
-.SH NAME
-\fBcbreak\fR, \fBnocbreak\fR, \fBecho\fR,
-\fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR, \fBkeypad\fR,
-\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBraw\fR, \fBnoraw\fR,
-\fBnoqiflush\fR, \fBqiflush\fR, \fBtimeout\fR, \fBwtimeout\fR,
-\fBtypeahead\fR - \fBcurses\fR input options
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint cbreak(void);\fR
-.br
-\fBint nocbreak(void);\fR
-.br
-\fBint echo(void);\fR
-.br
-\fBint noecho(void);\fR
-.br
-\fBint halfdelay(int tenths);\fR
-.br
-\fBint intrflush(WINDOW *win, bool bf);\fR
-.br
-\fBint keypad(WINDOW *win, bool bf);\fR
-.br
-\fBint meta(WINDOW *win, bool bf);\fR
-.br
-\fBint nodelay(WINDOW *win, bool bf);\fR
-.br
-\fBint raw(void);\fR
-.br
-\fBint noraw(void);\fR
-.br
-\fBvoid noqiflush(void);\fR
-.br
-\fBvoid qiflush(void);\fR
-.br
-\fBint notimeout(WINDOW *win, bool bf);\fR
-.br
-\fBvoid timeout(int delay);\fR
-.br
-\fBvoid wtimeout(WINDOW *win, int delay);\fR
-.br
-\fBint typeahead(int fd);\fR
-.br
-.SH DESCRIPTION
-Normally, the tty driver buffers typed characters until a newline or carriage
-return is typed. The \fBcbreak\fR routine disables line buffering and
-erase/kill character-processing (interrupt and flow control characters are
-unaffected), making characters typed by the user immediately available to the
-program. The \fBnocbreak\fR routine returns the terminal to normal (cooked)
-mode.
-
-Initially the terminal may or may not be in \fBcbreak\fR mode, as the mode is
-inherited; therefore, a program should call \fBcbreak\fR or \fBnocbreak\fR
-explicitly. Most interactive programs using \fBcurses\fR set the \fBcbreak\fR
-mode. Note that \fBcbreak\fR overrides \fBraw\fR.
-[See \fBcurs_getch\fR(3X) for a
-discussion of how these routines interact with \fBecho\fR and \fBnoecho\fR.]
-
-The \fBecho\fR and \fBnoecho\fR routines control whether characters typed by
-the user are echoed by \fBgetch\fR as they are typed. Echoing by the tty
-driver is always disabled, but initially \fBgetch\fR 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 \fBnoecho\fR.
-[See \fBcurs_getch\fR(3X) for a
-discussion of how these routines interact with \fBcbreak\fR and
-\fBnocbreak\fR.]
-
-The \fBhalfdelay\fR routine is used for half-delay mode, which is similar to
-\fBcbreak\fR mode in that characters typed by the user are immediately
-available to the program. However, after blocking for \fItenths\fR tenths of
-seconds, ERR is returned if nothing has been typed. The value of \fBtenths\fR
-must be a number between 1 and 255. Use \fBnocbreak\fR to leave half-delay
-mode.
-
-If the \fBintrflush\fR option is enabled, (\fIbf\fR is \fBTRUE\fR), when an
-interrupt key is pressed on the keyboard (interrupt, break, quit) all output in
-the tty driver queue will be flushed, giving the effect of faster response to
-the interrupt, but causing \fBcurses\fR to have the wrong idea of what is on
-the screen. Disabling (\fIbf\fR is \fBFALSE\fR), the option prevents the
-flush. The default for the option is inherited from the tty driver settings.
-The window argument is ignored.
-
-The \fBkeypad\fR option enables the keypad of the user's terminal. If
-enabled (\fIbf\fR is \fBTRUE\fR), the user can press a function key
-(such as an arrow key) and \fBwgetch\fR returns a single value
-representing the function key, as in \fBKEY_LEFT\fR. If disabled
-(\fIbf\fR is \fBFALSE\fR), \fBcurses\fR 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 keypad to be turned on when \fBwgetch\fR is
-called. The default value for keypad is false.
-
-Initially, whether the terminal returns 7 or 8 significant bits on
-input depends on the control mode of the tty driver [see termio(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,
-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,
-\fBTRUE\fR) is called and \fBrmm\fR is sent when \fBmeta\fR(\fIwin\fR,
-\fBFALSE\fR) is called.
-
-The \fBnodelay\fR option causes \fBgetch\fR to be a non-blocking call.
-If no input is ready, \fBgetch\fR returns \fBERR\fR. If disabled
-(\fIbf\fR is \fBFALSE\fR), \fBgetch\fR waits until a key is pressed.
-
-While interpreting an input escape sequence, \fBwgetch\fR sets a timer
-while waiting for the next character. If \fBnotimeout(\fR\fIwin\fR,
-\fBTRUE\fR) is called, then \fBwgetch\fR 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.
-
-The \fBraw\fR and \fBnoraw\fR routines place the terminal into or out of raw
-mode. Raw mode is similar to \fBcbreak\fR 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 bits in the tty driver that are not set by
-\fBcurses\fR.
-
-When the \fBnoqiflush\fR routine is used, normal flush of input and
-output queues associated with the \fBINTR\fR, \fBQUIT\fR and
-\fBSUSP\fR characters will not be done [see termio(7)]. When
-\fBqiflush\fR is called, the queues will be flushed when these control
-characters are read. You may want to call \fBnoqiflush()\fR in a signal
-handler if you want output to continue as though the interrupt
-had not occurred, after the handler exits.
-
-The \fBtimeout\fR and \fBwtimeout\fR routines set blocking or
-non-blocking read for a given window. If \fIdelay\fR is negative,
-blocking read is used (\fIi\fR.\fIe\fR., waits indefinitely for
-input). If \fIdelay\fR is zero, then non-blocking read is used
-(\fIi\fR.\fIe\fR., read returns \fBERR\fR if no input is waiting). If
-\fIdelay\fR is positive, then read blocks for \fIdelay\fR
-milliseconds, and returns \fBERR\fR if there is still no input.
-Hence, these routines provide the same functionality as \fBnodelay\fR,
-plus the additional capability of being able to block for only
-\fIdelay\fR milliseconds (where \fIdelay\fR is positive).
-
-The \fBcurses\fR library does ``line-breakout optimization'' by looking for
-typeahead periodically while updating the screen. If input is found,
-and it is coming from a tty, the current update is postponed until
-\fBrefresh\fR or \fBdoupdate\fR is called again. This allows faster
-response to commands typed in advance. Normally, the input FILE
-pointer passed to \fBnewterm\fR, or \fBstdin\fR in the case that
-\fBinitscr\fR was used, will be used to do this typeahead checking.
-The \fBtypeahead\fR routine specifies that the file descriptor
-\fIfd\fR is to be used to check for typeahead instead. If \fIfd\fR is
--1, then no typeahead checking is done.
-.SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-
-The ncurses library obeys the XPG4 standard and the historical practice of the
-AT&T curses implementations, in that the echo bit is cleared when curses
-initializes the terminal state. BSD curses differed from this slightly; it
-left the echo bit on at initialization, but the BSD \fBraw\fR call turned it
-off as a side-effect. For best portability, set echo or noecho explicitly
-just after initialization, even if your program remains in cooked mode.
-.SH NOTES
-Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR,
-\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBnoqiflush\fR,
-\fBqiflush\fR, \fBtimeout\fR, and \fBwtimeout\fR may be macros.
-
-The \fBnoraw\fR and \fBnocbreak\fR calls follow historical practice in that
-they attempt to restore to normal (`cooked') mode from raw and cbreak modes
-respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver
-control states that are hard to predict or understand; it is not recommended.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_getch\fR(3X), \fBcurs_initscr\fR(3X), \fBtermio\fR(7)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_ins_wch.3x b/ncurses-5.3/man/curs_ins_wch.3x
deleted file mode 100644
index 0247407..0000000
--- a/ncurses-5.3/man/curs_ins_wch.3x
+++ /dev/null
@@ -1,65 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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/ncurses-5.3/man/curs_ins_wstr.3x b/ncurses-5.3/man/curs_ins_wstr.3x
deleted file mode 100644
index cd89000..0000000
--- a/ncurses-5.3/man/curs_ins_wstr.3x
+++ /dev/null
@@ -1,104 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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:
diff --git a/ncurses-5.3/man/curs_insch.3x b/ncurses-5.3/man/curs_insch.3x
deleted file mode 100644
index 35433c0..0000000
--- a/ncurses-5.3/man/curs_insch.3x
+++ /dev/null
@@ -1,70 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_insch 3X ""
-.SH NAME
-\fBinsch\fR,
-\fBwinsch\fR,
-\fBmvinsch\fR,
-\fBmvwinsch\fR - insert a character before cursor in a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint insch(chtype ch);\fR
-.br
-\fBint winsch(WINDOW *win, chtype ch);\fR
-.br
-\fBint mvinsch(int y, int x, chtype ch);\fR
-.br
-\fBint mvwinsch(WINDOW *win, int y, int x, chtype ch);\fR
-.br
-.SH DESCRIPTION
-These routines, insert the character \fIch\fR before the character under the
-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
-All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-.SH NOTES
-These routines do not necessarily imply use of a hardware insert character
-feature.
-
-Note that \fBinsch\fR, \fBmvinsch\fR, and \fBmvwinsch\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_insstr.3x b/ncurses-5.3/man/curs_insstr.3x
deleted file mode 100644
index 49ac1e5..0000000
--- a/ncurses-5.3/man/curs_insstr.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_insstr 3X ""
-.SH NAME
-\fBinsstr\fR,
-\fBinsnstr\fR,
-\fBwinsstr\fR,
-\fBwinsnstr\fR,
-\fBmvinsstr\fR,
-\fBmvinsnstr\fR,
-\fBmvwinsstr\fR,
-\fBmvwinsnstr\fR - insert string before cursor in a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint insstr(const char *str);\fR
-.br
-\fBint insnstr(const char *str, int n);\fR
-.br
-\fBint winsstr(WINDOW *win, const char *str);\fR
-.br
-\fBint winsnstr(WINDOW *win, const char *str, int n);\fR
-.br
-\fBint mvinsstr(int y, int x, const char *str);\fR
-.br
-\fBint mvinsnstr(int y, int x, const char *str, int n);\fR
-.br
-\fBint mvwinsstr(WINDOW *win, int y, int x, const char *str);\fR
-.br
-\fBint mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n);\fR
-.br
-.SH DESCRIPTION
-These routines insert a character string (as many characters as will fit on the
-line) before the character under the cursor. All characters to the right of
-the cursor are shifted right, with the possibility of the rightmost characters
-on the line being lost. The cursor position does not change (after moving to
-\fIy\fR, \fIx\fR, if specified). The four routines with \fIn\fR as the last
-argument insert a leading substring of at most \fIn\fR characters. If
-\fIn\fR<=0, then the entire string is inserted.
-
-If a character in \fIstr\fR is a tab, newline, carriage return or
-backspace, the cursor is moved appropriately within the window. A
-newline also does a \fBclrtoeol\fR before moving. Tabs are considered
-to be at every eighth column. If a character in \fIstr\fR is another
-control character, it is drawn in the \fB^\fR\fIX\fR notation.
-Calling \fBwinch\fR after adding a control character (and moving to
-it, if necessary) does not return the control character, but instead
-returns a character in the ^-representation of the control character.
-.SH RETURN VALUE
-All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-.SH NOTES
-Note that all but \fBwinsnstr\fR may be macros.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4, which adds
-const qualifiers to the arguments. The XSI Curses error conditions
-\fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with extended-level conformance
-are not yet detected (this implementation does not yet support XPG4 multibyte
-characters).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_clear\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/ncurses-5.3/man/curs_instr.3x b/ncurses-5.3/man/curs_instr.3x
deleted file mode 100644
index cf30c49..0000000
--- a/ncurses-5.3/man/curs_instr.3x
+++ /dev/null
@@ -1,89 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_instr 3X ""
-.SH NAME
-\fBinstr\fR,
-\fBinnstr\fR,
-\fBwinstr\fR,
-\fBwinnstr\fR,
-\fBmvinstr\fR,
-\fBmvinnstr\fR,
-\fBmvwinstr\fR,
-\fBmvwinnstr\fR - get a string of characters from a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint instr(char *str);\fR
-.br
-\fBint innstr(char *str, int n);\fR
-.br
-\fBint winstr(WINDOW *win, char *str);\fR
-.br
-\fBint winnstr(WINDOW *win, char *str, int n);\fR
-.br
-\fBint mvinstr(int y, int x, char *str);\fR
-.br
-\fBint mvinnstr(int y, int x, char *str, int n);\fR
-.br
-\fBint mvwinstr(WINDOW *win, int y, int x, char *str);\fR
-.br
-\fBint mvwinnstr(WINDOW *win, int y, int x, char *str, int n);\fR
-.br
-.SH DESCRIPTION
-These routines return a string of characters in \fIstr\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 characters long (exclusive of the trailing NUL).
-.SH RETURN VALUE
-All of the functions return \fBERR\fR upon failure,
-or the number of characters actually read into the string.
-.SH NOTES
-Note that all routines except \fBwinnstr\fR may be macros.
-.SH PORTABILITY
-The XSI Curses
-error conditions \fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with
-extended-level conformance are not yet detected (this implementation does not
-yet support XPG4 multibyte characters).
-SVr4 does not
-document whether a length limit includes or excludes the trailing NUL.
-.PP
-The ncurses library extends the XSI description by allowing a negative
-value for \fIn\fR.
-In this case, the functions return the string ending at the right margin.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
-
diff --git a/ncurses-5.3/man/curs_inwstr.3x b/ncurses-5.3/man/curs_inwstr.3x
deleted file mode 100644
index 4d872b9..0000000
--- a/ncurses-5.3/man/curs_inwstr.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.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:
diff --git a/ncurses-5.3/man/curs_kernel.3x b/ncurses-5.3/man/curs_kernel.3x
deleted file mode 100644
index c4104bf..0000000
--- a/ncurses-5.3/man/curs_kernel.3x
+++ /dev/null
@@ -1,159 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_kernel 3X ""
-.SH NAME
-\fBdef_prog_mode\fR, \fBdef_shell_mode\fR,
-\fBreset_prog_mode\fR, \fBreset_shell_mode\fR, \fBresetty\fR,
-\fBsavetty\fR, \fBgetsyx\fR, \fBsetsyx\fR, \fBripoffline\fR,
-\fBcurs_set\fR, \fBnapms\fR - low-level \fBcurses\fR routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint def_prog_mode(void);\fR
-.br
-\fBint def_shell_mode(void);\fR
-.br
-\fBint reset_prog_mode(void);\fR
-.br
-\fBint reset_shell_mode(void);\fR
-.br
-\fBint resetty(void);\fR
-.br
-\fBint savetty(void);\fR
-.br
-\fBvoid getsyx(int y, int x);\fR
-.br
-\fBvoid setsyx(int y, int x);\fR
-.br
-\fBint ripoffline(int line, int (*init)(WINDOW *, int));\fR
-.br
-\fBint curs_set(int visibility);\fR
-.br
-\fBint napms(int ms);\fR
-.br
-.SH DESCRIPTION
-The following routines give low-level access to various \fBcurses\fR
-capabilities. Theses routines typically are used inside library
-routines.
-
-The \fBdef_prog_mode\fR and \fBdef_shell_mode\fR routines save the
-current terminal modes as the "program" (in \fBcurses\fR) or "shell"
-(not in \fBcurses\fR) state for use by the \fBreset_prog_mode\fR and
-\fBreset_shell_mode\fR routines. This is done automatically by
-\fBinitscr\fR. There is one such save area for each screen context
-allocated by \fBnewterm()\fR.
-
-The \fBreset_prog_mode\fR and \fBreset_shell_mode\fR routines restore
-the terminal to "program" (in \fBcurses\fR) or "shell" (out of
-\fBcurses\fR) state. These are done automatically by \fBendwin\fR
-and, after an \fBendwin\fR, by \fBdoupdate\fR, so they normally are
-not called.
-
-The \fBresetty\fR and \fBsavetty\fR routines save and restore the
-state of the terminal modes. \fBsavetty\fR saves the current state in
-a buffer and \fBresetty\fR restores the state to what it was at the
-last call to \fBsavetty\fR.
-
-The \fBgetsyx\fR routine returns the current coordinates of the virtual screen
-cursor in \fIy\fR and \fIx\fR. If \fBleaveok\fR is currently \fBTRUE\fR, then
-\fB-1\fR,\fB-1\fR is returned. If lines have been removed from the top of the
-screen, using \fBripoffline\fR, \fIy\fR and \fIx\fR include these lines;
-therefore, \fIy\fR and \fIx\fR should be used only as arguments for
-\fBsetsyx\fR.
-
-The \fBsetsyx\fR routine sets the virtual screen cursor to
-\fIy\fR, \fIx\fR. If \fIy\fR and \fIx\fR are both \fB-1\fR, then
-\fBleaveok\fR is set. The two routines \fBgetsyx\fR and \fBsetsyx\fR
-are designed to be used by a library routine, which manipulates
-\fBcurses\fR windows but does not want to change the current position
-of the program's cursor. The library routine would call \fBgetsyx\fR
-at the beginning, do its manipulation of its own windows, do a
-\fBwnoutrefresh\fR on its windows, call \fBsetsyx\fR, and then call
-\fBdoupdate\fR.
-
-The \fBripoffline\fR routine provides access to the same facility that
-\fBslk_init\fR [see \fBcurs_slk\fR(3X)] uses to reduce the size of the
-screen. \fBripoffline\fR must be called before \fBinitscr\fR or
-\fBnewterm\fR is called. If \fIline\fR is positive, a line is removed
-from the top of \fBstdscr\fR; if \fIline\fR is negative, a line is
-removed from the bottom. When this is done inside \fBinitscr\fR, the
-routine \fBinit\fR (supplied by the user) is called with two
-arguments: a window pointer to the one-line window that has been
-allocated and an integer with the number of columns in the window.
-Inside this initialization routine, the integer variables \fBLINES\fR
-and \fBCOLS\fR (defined in \fB<curses.h>\fR) are not guaranteed to be
-accurate and \fBwrefresh\fR or \fBdoupdate\fR must not be called. It
-is allowable to call \fBwnoutrefresh\fR during the initialization
-routine.
-
-\fBripoffline\fR can be called up to five times before calling \fBinitscr\fR or
-\fBnewterm\fR.
-
-The \fBcurs_set\fR routine sets the cursor state is set to invisible,
-normal, or very visible for \fBvisibility\fR equal to \fB0\fR,
-\fB1\fR, or \fB2\fR respectively. If the terminal supports the
-\fIvisibility\fR requested, the previous \fIcursor\fR state is
-returned; otherwise, \fBERR\fR is returned.
-
-The \fBnapms\fR routine is used to sleep for \fIms\fR milliseconds.
-.SH RETURN VALUE
-Except for \fBcurs_set\fR, these routines always return \fBOK\fR.
-\fBcurs_set\fR returns the previous cursor state, or \fBERR\fR if the
-requested \fIvisibility\fR is not supported.
-.SH NOTES
-Note that \fBgetsyx\fR is a macro, so \fB&\fR is not necessary before
-the variables \fIy\fR and \fIx\fR.
-
-Older SVr4 man pages warn that the return value of \fBcurs_set\fR "is currently
-incorrect". This implementation gets it right, but it may be unwise to count
-on the correctness of the return value anywhere else.
-
-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
-invisible or very visible.
-There is no way for ncurses to determine the initial cursor state to
-restore that.
-.SH PORTABILITY
-The functions \fBsetsyx\fR and \fBgetsyx\fR are not described in the XSI
-Curses standard, Issue 4. All other functions are as described in XSI Curses.
-
-The SVr4 documentation describes \fBsetsyx\fR and \fBgetsyx\fR as having return
-type int. This is misleading, as they are macros with no documented semantics
-for the return value.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X),
-\fBcurs_scr_dump\fR(3X), \fBcurs_slk\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_mouse.3x b/ncurses-5.3/man/curs_mouse.3x
deleted file mode 100644
index 6be3118..0000000
--- a/ncurses-5.3/man/curs_mouse.3x
+++ /dev/null
@@ -1,239 +0,0 @@
-'\" 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$
-.TH curs_mouse 3X ""
-.SH NAME
-\fBgetmouse\fR, \fBungetmouse\fR,
-\fBmousemask\fR, \fBwenclose\fR,
-\fBmouse_trafo\fR, \fBwmouse_trafo\fR,
-\fBmouseinterval\fR - mouse interface through curses
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-
-\fBtypedef unsigned long mmask_t;
-
-typedef struct
-{
- short id; \fI/* ID to distinguish multiple devices */\fB
- int x, y, z; \fI/* event coordinates */\fB
- mmask_t bstate; \fI/* button state bits */\fB
-}
-MEVENT;\fR
-.fi
-.br
-\fBint getmouse(MEVENT *event);\fR
-.br
-\fBint ungetmouse(MEVENT *event);\fR
-.br
-\fBmmask_t mousemask(mmask_t newmask, mmask_t *oldmask);\fR
-.br
-\fBbool wenclose(const WINDOW *win, int y, int x);\fR
-.br
-\fBbool mouse_trafo(int* pY, int* pX, bool to_screen);\fR
-.br
-\fBbool wmouse_trafo(const WINDOW* win, int* pY, int* pX,\fR
-.br
- \fBbool to_screen);\fR
-.br
-\fBint mouseinterval(int erval);\fR
-.br
-.SH DESCRIPTION
-These functions provide an interface to mouse events from
-\fBncurses\fR(3X).
-Mouse events are represented by \fBKEY_MOUSE\fR
-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.
-The function will return a mask to indicate which of the specified mouse events
-can be reported; on complete failure it returns 0.
-If oldmask is non-NULL,
-this function fills the indicated 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.
-
-Here are the mouse event type masks:
-
-.TS
-l l
-_ _
-l l.
-\fIName\fR \fIDescription\fR
-BUTTON1_PRESSED mouse button 1 down
-BUTTON1_RELEASED mouse button 1 up
-BUTTON1_CLICKED mouse button 1 clicked
-BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
-BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
-BUTTON2_PRESSED mouse button 2 down
-BUTTON2_RELEASED mouse button 2 up
-BUTTON2_CLICKED mouse button 2 clicked
-BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
-BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
-BUTTON3_PRESSED mouse button 3 down
-BUTTON3_RELEASED mouse button 3 up
-BUTTON3_CLICKED mouse button 3 clicked
-BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
-BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
-BUTTON4_PRESSED mouse button 4 down
-BUTTON4_RELEASED mouse button 4 up
-BUTTON4_CLICKED mouse button 4 clicked
-BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
-BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
-BUTTON_SHIFT shift was down during button state change
-BUTTON_CTRL control was down during button state change
-BUTTON_ALT alt was down during button state change
-ALL_MOUSE_EVENTS report all button state changes
-REPORT_MOUSE_POSITION report mouse movement
-.TE
-
-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
-\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
-coordinates.
-The returned state mask will have exactly one bit set to
-indicate the event type.
-
-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
-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
-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_...
-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
-\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
-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
-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
-function such as \fBgetstr\fR that expects a linefeed for input-loop
-termination.
-
-.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
-are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending
-on their test result.
-.SH PORTABILITY
-These calls were designed for \fBncurses\fR(3X), and are not found in SVr4
-curses, 4.4BSD curses, or any other previous version of curses.
-
-The feature macro \fBNCURSES_MOUSE_VERSION\fR is provided so the preprocessor
-can be used to test whether these features are present (its value is 1).
-If the interface is changed, the value of \fBNCURSES_MOUSE_VERSION\fR will be
-incremented.
-
-The order of the \fBMEVENT\fR structure members is not guaranteed.
-Additional fields may be added to the structure in the future.
-
-Under \fBncurses\fR(3X), 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 machine, mouse events will not be visible to
-\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
-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
-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 interpreted as a variety of function key.
-Your terminfo description must have \fBkmous\fR set to "\\E[M" (the beginning
-of the response from xterm for mouse clicks).
-
-Because there are no standard terminal responses that would serve to identify
-terminals which support the xterm mouse protocol, \fBncurses\fR assumes that
-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 following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_move.3x b/ncurses-5.3/man/curs_move.3x
deleted file mode 100644
index fff3c0e..0000000
--- a/ncurses-5.3/man/curs_move.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_move 3X ""
-.SH NAME
-\fBmove\fR, \fBwmove\fR - move \fBcurses\fR window cursor
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint move(int y, int x);\fR
-.br
-\fBint wmove(WINDOW *win, int y, int x);\fR
-.br
-.SH DESCRIPTION
-These routines move the cursor associated with the window to line \fIy\fR and
-column \fIx\fR. This routine does not move the physical cursor of the terminal
-until \fBrefresh\fR is called. The position specified is relative to the upper
-left-hand corner of the window, which is (0,0).
-.SH RETURN VALUE
-These routines return \fBERR\fR upon failure and OK (SVr4
-specifies only "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH NOTES
-Note that \fBmove\fR may be a macro.
-.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that if (y,x) is within a multi-column character, the cursor
-is moved to the first column of that character; however, this implementation
-does not yet support the extended-level XSI multibyte characters.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_outopts.3x b/ncurses-5.3/man/curs_outopts.3x
deleted file mode 100644
index cf02930..0000000
--- a/ncurses-5.3/man/curs_outopts.3x
+++ /dev/null
@@ -1,193 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_outopts 3X ""
-.SH NAME
-\fBclearok\fR, \fBidlok\fR, \fBidcok\fR, \fBimmedok\fR,
-\fBleaveok\fR, \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBscrollok\fR,
-\fBnl\fR, \fBnonl\fR - \fBcurses\fR output options
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint clearok(WINDOW *win, bool bf);\fR
-.br
-\fBint idlok(WINDOW *win, bool bf);\fR
-.br
-\fBvoid idcok(WINDOW *win, bool bf);\fR
-.br
-\fBvoid immedok(WINDOW *win, bool bf);\fR
-.br
-\fBint leaveok(WINDOW *win, bool bf);\fR
-.br
-\fBint setscrreg(int top, int bot);\fR
-.br
-\fBint wsetscrreg(WINDOW *win, int top, int bot);\fR
-.br
-\fBint scrollok(WINDOW *win, bool bf);\fR
-.br
-\fBint nl(void);\fR
-.br
-\fBint nonl(void);\fR
-.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.
-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
-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
-disabled by default because insert/delete line tends to be visually annoying
-when used in applications where it isn't really needed.
-If insert/delete line
-cannot be used, \fBcurses\fR redraws the changed portions of all lines.
-
-If \fBidcok\fR is called with \fBFALSE\fR as second argument, \fBcurses\fR
-no longer considers using the hardware insert/delete character feature of
-terminals so equipped.
-Use of character insert/delete is enabled by default.
-Calling \fBidcok\fR with \fBTRUE\fR as second argument re-enables use
-of character insertion and deletion.
-
-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
-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.
-
-The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
-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
-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
-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 \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
-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
-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
-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
-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.
-
-The XSI Curses standard is ambiguous on the question of whether \fBraw\fR()
-should disable the CRLF translations controlled by \fBnl\fR() and \fBnonl\fR().
-BSD curses did turn off these translations; AT&T curses (at least as late as
-SVr1) did not.
-We choose to do so, on the theory that a programmer requesting
-raw input wants a clean (ideally 8-bit clean) connection that the operating
-system does not mess with.
-
-Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR.
-This will not work under
-ncurses.
-
-Earlier System V curses implementations specified that with \fBscrollok\fR
-enabled, any window modification triggering a scroll also forced a physical
-refresh.
-XSI Curses does not require this, and \fBncurses\fR avoids doing
-it to perform better vertical-motion optimization at \fBwrefresh\fR
-time.
-
-The XSI Curses standard does not mention that the cursor should be
-made invisible as a side-effect of \fBleaveok\fR.
-SVr4 curses documentation does this, but the code does not.
-Use \fBcurs_set\fR to make the cursor invisible.
-.SH NOTES
-Note that \fBclearok\fR, \fBleaveok\fR, \fBscrollok\fR, \fBidcok\fR, \fBnl\fR,
-\fBnonl\fR and \fBsetscrreg\fR may be macros.
-
-The \fBimmedok\fR routine is useful for windows that are used as terminal
-emulators.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_addch\fR(3X), \fBcurs_clear\fR(3X),
-\fBcurs_initscr\fR(3X), \fBcurs_scroll\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_overlay.3x b/ncurses-5.3/man/curs_overlay.3x
deleted file mode 100644
index 296dab2..0000000
--- a/ncurses-5.3/man/curs_overlay.3x
+++ /dev/null
@@ -1,76 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_overlay 3X ""
-.SH NAME
-\fBoverlay\fR,
-\fBoverwrite\fR,
-\fBcopywin\fR - overlay and manipulate overlapped \fBcurses\fR windows
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint overlay(const WINDOW *srcwin, WINDOW *dstwin);\fR
-.br
-\fBint overwrite(const WINDOW *srcwin, WINDOW *dstwin);\fR
-.br
-\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
-The \fBoverlay\fR and \fBoverwrite\fR routines overlay \fIsrcwin\fR on
-top of \fIdstwin\fR. \fIscrwin\fR and \fIdstwin\fR are not required
-to be the same size; only text where the two windows overlap is
-copied. The difference is that \fBoverlay\fR is non-destructive
-(blanks are not copied) whereas \fBoverwrite\fR is destructive.
-
-The \fBcopywin\fR routine provides a finer granularity of control over the
-\fBoverlay\fR and \fBoverwrite\fR routines. Like in the \fBprefresh\fR
-routine, a rectangle is specified in the destination window, (\fIdminrow\fR,
-\fIdmincol\fR) and (\fIdmaxrow\fR, \fIdmaxcol\fR), and the upper-left-corner
-coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR). If the
-argument \fIoverlay\fR is \fBtrue\fR, then copying is non-destructive, as in
-\fBoverlay\fR.
-.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
-completion.
-.SH NOTES
-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
-with multibyte renditions (not yet supported in this implementation).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_pad.3x b/ncurses-5.3/man/curs_pad.3x
deleted file mode 100644
index 74c7f52..0000000
--- a/ncurses-5.3/man/curs_pad.3x
+++ /dev/null
@@ -1,110 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_pad 3X ""
-.SH NAME
-\fBnewpad\fR, \fBsubpad\fR, \fBprefresh\fR,
-\fBpnoutrefresh\fR, \fBpechochar\fR - create and display \fBcurses\fR pads
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBWINDOW *newpad(int nlines, int ncols);\fR
-.br
-\fBWINDOW *subpad(WINDOW *orig, int nlines, int ncols,\fR
- \fBint begin_y, int begin_x);\fR
-.br
-\fBint prefresh(WINDOW *pad, int pminrow, int pmincol,\fR
- \fBint sminrow, int smincol, int smaxrow, int smaxcol);\fR
-.br
-\fBint pnoutrefresh(WINDOW *pad, int pminrow, int pmincol,\fR
- \fBint sminrow, int smincol, int smaxrow, int smaxcol);\fR
-.br
-\fBint pechochar(WINDOW *pad, chtype ch);\fR
-.SH DESCRIPTION
-The \fBnewpad\fR routine creates and returns a pointer to a new pad data
-structure with the given number of lines, \fInlines\fR, and columns,
-\fIncols\fR. A pad is like a window, except that it is not restricted by the
-screen size, and is not necessarily associated with a particular part of the
-screen. Pads can be used when a large window is needed, and only a part of the
-window will be on the screen at one time. Automatic refreshes of pads
-(\fIe\fR.\fIg\fR., from scrolling or echoing of input) do not occur. It is not
-legal to call \fBwrefresh\fR with a \fIpad\fR as an argument; the routines
-\fBprefresh\fR or \fBpnoutrefresh\fR should be called instead. Note that these
-routines require additional parameters to specify the part of the pad to be
-displayed and the location on the screen to be used for the display.
-
-The \fBsubpad\fR routine creates and returns a pointer to a subwindow within a
-pad with the given number of lines, \fInlines\fR, and columns, \fIncols\fR.
-Unlike \fBsubwin\fR, which uses screen coordinates, the window is at position
-(\fIbegin\fR_\fIx\fR\fB,\fR \fIbegin\fR_\fIy\fR) on the pad. The window is
-made in the middle of the window \fIorig\fR, so that changes made to one window
-affect both windows. During the use of this routine, it will often be
-necessary to call \fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before
-calling \fBprefresh\fR.
-
-The \fBprefresh\fR and \fBpnoutrefresh\fR routines are analogous to
-\fBwrefresh\fR and \fBwnoutrefresh\fR 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. \fIpminrow\fR and \fIpmincol\fR specify the upper
-left-hand corner of the rectangle to be displayed in the pad. \fIsminrow\fR,
-\fIsmincol\fR, \fIsmaxrow\fR, and \fIsmaxcol\fR specify the edges of the
-rectangle to be displayed on the screen. The lower right-hand corner of the
-rectangle to be displayed in the pad is calculated 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
-\fIpminrow\fR, \fIpmincol\fR, \fIsminrow\fR, or \fIsmincol\fR are treated as if
-they were zero.
-
-The \fBpechochar\fR routine is functionally equivalent to a call to \fBaddch\fR
-followed by a call to \fBrefresh\fR, a call to \fBwaddch\fR followed by a call
-to \fBwrefresh\fR, or a call to \fBwaddch\fR followed by a call to
-\fBprefresh.\fR The knowledge that only a single character is being output is
-taken into consideration and, for non-control characters, a considerable
-performance gain might be seen by using these routines instead of their
-equivalents. In the case of \fBpechochar\fR, the last location of the pad on
-the screen is reused for the arguments to \fBprefresh\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
-completion.
-
-Routines that return pointers return \fBNULL\fR on error, and set \fBerrno\fR
-to \fBENOMEM\fR.
-.SH NOTES
-Note that \fBpechochar\fR may be a macro.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X), \fBcurs_touch\fR(3X), \fBcurs_addch\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_print.3x b/ncurses-5.3/man/curs_print.3x
deleted file mode 100644
index e967e4d..0000000
--- a/ncurses-5.3/man/curs_print.3x
+++ /dev/null
@@ -1,74 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_print 3X ""
-.SH NAME
-\fBmcprint\fR - ship binary data to printer
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint mcprint(char *data, int len);\fR
-.SH DESCRIPTION
-This function uses the \fBmc5p\fR or \fBmc4\fR and \fBmc5\fR capabilities,
-if they are present, to ship given data to a printer attached to the terminal.
-
-Note that the \fBmcprint\fR 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
-(typically about half of its nominal cps rating). Dot-matrix printers and
-6-page-per-minute lasers can typically handle 80cps, so a good conservative
-rule of thumb is to sleep for a second after shipping each 80-character line.
-
-.SH RETURN VALUE
-The \fBmcprint\fR function returns \fBERR\fR if the write operation aborted
-for some reason. In this case, errno will contain either an error associated
-with \fBwrite(2)\fR or one of the following:
-.TP 5
-ENODEV
-Capabilities for printer redirection don't exist.
-.TP 5
-ENOMEM
-Couldn't allocate sufficient memory to buffer the printer write.
-
-When \fBmcprint\fR succeeds, it returns the number of characters actually
-sent to the printer.
-.SH PORTABILITY
-The \fBmcprint\fR call was designed for \fBncurses\fR(3X), and is not found
-in SVr4 curses, 4.4BSD curses, or any other previous version of curses.
-.SH BUGS
-Padding in the \fBmc5p\fR, \fBmc4\fR and \fBmc5\fR capabilities will not be
-interpreted.
-.SH SEE ALSO
-\fBcurses\fR(3X)\fR
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_printw.3x b/ncurses-5.3/man/curs_printw.3x
deleted file mode 100644
index 0ae9218..0000000
--- a/ncurses-5.3/man/curs_printw.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_printw 3X ""
-.SH NAME
-\fBprintw\fR,
-\fBwprintw\fR,
-\fBmvprintw\fR,
-\fBmvwprintw\fR,
-\fBvwprintw\fR, \fBvw_printw\fR - print formatted output in \fBcurses\fR windows
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint printw(char *fmt, ...);\fR
-.br
-\fBint wprintw(WINDOW *win, char *fmt, ...);\fR
-.br
-\fBint mvprintw(int y, int x, char *fmt, ...);\fR
-.br
-\fBint mvwprintw(WINDOW *win, int y, int x, char *fmt, ...);\fR
-.br
-\fBint vwprintw(WINDOW *win, char *fmt, va_list varglist);\fR
-.br
-\fBint vw_printw(WINDOW *win, char *fmt, va_list varglist);\fR
-.br
-.SH DESCRIPTION
-The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR
-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.
-
-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
-completion.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions. The function
-\fBvwprintw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
-\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
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_refresh.3x b/ncurses-5.3/man/curs_refresh.3x
deleted file mode 100644
index 34c0d38..0000000
--- a/ncurses-5.3/man/curs_refresh.3x
+++ /dev/null
@@ -1,126 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_refresh 3X ""
-.SH NAME
-\fBdoupdate\fR,
-\fBredrawwin\fR,
-\fBrefresh\fR,
-\fBwnoutrefresh\fR,
-\fBwredrawln\fR,
-\fBwrefresh\fR - refresh \fBcurses\fR windows and lines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint refresh(void);\fR
-.br
-\fBint wrefresh(WINDOW *win);\fR
-.br
-\fBint wnoutrefresh(WINDOW *win);\fR
-.br
-\fBint doupdate(void);\fR
-.br
-\fBint redrawwin(WINDOW *win);\fR
-.br
-\fBint wredrawln(WINDOW *win, int beg_line, int num_lines);\fR
-.br
-.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
-the named window to the physical terminal screen, taking into account what is
-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
-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.
-
-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
-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
-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
-\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
-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
-exploiting this behavior.)
-
-The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines
-are corrupted and should be thrown away before anything is written over them.
-It touches the indicated lines (marking them changed).
-The routine \fBredrawwin\fR() touches the entire window.
-.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
-completion.
-.SH NOTES
-Note that \fBrefresh\fR and \fBredrawwin\fR may be macros.
-.SH PORTABILITY
-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
-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 \fBtouchwin()\fR before the
-\fBwnoutrefresh()\fR call to guarantee an entire-contents copy anywhere.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_scanw.3x b/ncurses-5.3/man/curs_scanw.3x
deleted file mode 100644
index a67cd73..0000000
--- a/ncurses-5.3/man/curs_scanw.3x
+++ /dev/null
@@ -1,97 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_scanw 3X ""
-.SH NAME
-\fBscanw\fR,
-\fBwscanw\fR,
-\fBmvscanw\fR,
-\fBmvwscanw\fR,
-\fBvwscanw\fR, \fBvw_scanw\fR - convert formatted input from a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint scanw(char *fmt, ...);\fR
-.br
-\fBint wscanw(WINDOW *win, char *fmt, ...);\fR
-.br
-\fBint mvscanw(int y, int x, char *fmt, ...);\fR
-.br
-\fBint mvwscanw(WINDOW *win, int y, int x, char *fmt, ...);\fR
-.br
-\fBint vw_scanw(WINDOW *win, char *fmt, va_list varglist);\fR
-.br
-\fBint vwscanw(WINDOW *win, char *fmt, va_list varglist);\fR
-.SH DESCRIPTION
-The \fBscanw\fR, \fBwscanw\fR and \fBmvscanw\fR routines are analogous to
-\fBscanf\fR [see \fBscanf\fR(3S)]. The effect of these routines is as though
-\fBwgetstr\fR were called on the window, and the resulting line used as input
-for \fBsscanf\fR(3). Fields which do not map to a variable in the \fIfmt\fR
-field are lost.
-
-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.
-
-Applications may use the return value from the \fBscanw\fR, \fBwscanw\fR,
-\fBmvscanw\fR and \fBmvwscanw\fR routines to determine the number of fields
-which were mapped in the call.
-.SH PORTABILITY
-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)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_scr_dump.3x b/ncurses-5.3/man/curs_scr_dump.3x
deleted file mode 100644
index 2775e7e..0000000
--- a/ncurses-5.3/man/curs_scr_dump.3x
+++ /dev/null
@@ -1,94 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_scr_dump 3X ""
-.SH NAME
-\fBscr_dump\fR,
-\fBscr_restore\fR,
-\fBscr_init\fR,
-\fBscr_set\fR - read (write) a \fBcurses\fR screen from (to) a file
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint scr_dump(const char *filename);\fR
-.br
-\fBint scr_restore(const char *filename);\fR
-.br
-\fBint scr_init(const char *filename);\fR
-.br
-\fBint scr_set(const char *filename);\fR
-.br
-.SH DESCRIPTION
-The \fBscr_dump\fR routine dumps the current contents of the virtual screen
-to the file \fIfilename\fR.
-
-The \fBscr_restore\fR routine sets the virtual screen to the contents
-of \fIfilename\fR, which must have been written using \fBscr_dump\fR. The next
-call to \fBdoupdate\fR restores the screen to the way it looked in the dump
-file.
-
-The \fBscr_init\fR routine reads in the contents of \fIfilename\fR and uses
-them to initialize the \fBcurses\fR data structures about what the terminal
-currently has on its screen. If the data is determined to be valid,
-\fBcurses\fR bases its next update of the screen on this information rather
-than clearing the screen and starting from scratch. \fBscr_init\fR is used
-after \fBinitscr\fR or a \fBsystem\fR [see \fBsystem\fR(BA_LIB)] call to share
-the screen with another process which has done a \fBscr_dump\fR after its
-\fBendwin\fR call. The data is declared invalid if the terminfo capabilities
-\fBrmcup\fR and \fBnrrmc\fR exist; also if the terminal has been written to
-since the preceding \fBscr_dump\fR call.
-
-The \fBscr_set\fR routine is a combination of \fBscr_restore\fR and
-\fBscr_init\fR. It tells the program that the information in \fIfilename\fR 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.
-
-To read (write) a window from (to) a file, use the \fBgetwin\fR and
-\fBputwin\fR routines [see \fBcurs_util\fR(3X)].
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and \fBOK\fR
-upon success.
-.SH NOTES
-Note that \fBscr_init\fR, \fBscr_set\fR, and \fBscr_restore\fR may be macros.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4, describes these functions (adding the const
-qualifiers).
-
-The SVr4 docs merely say under \fBscr_init\fR that the dump data is also
-considered invalid "if the time-stamp of the tty is old" but don't define
-"old".
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X),
-\fBcurs_util\fR(3X), \fBsystem\fR(3S)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_scroll.3x b/ncurses-5.3/man/curs_scroll.3x
deleted file mode 100644
index 146febb..0000000
--- a/ncurses-5.3/man/curs_scroll.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_scroll 3X ""
-.SH NAME
-\fBscroll\fR, \fBscrl\fR, \fBwscrl\fR - scroll a \fBcurses\fR window
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint scroll(WINDOW *win);\fR
-.br
-\fBint scrl(int n);\fR
-.br
-\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
-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.
-
-For these functions to work, scrolling must be enabled via \fBscrollok\fR.
-.SH RETURN VALUE
-These routines return \fBERR\fR upon failure, and \fBOK\fR (SVr4 only specifies
-"an integer value other than \fBERR\fR") upon successful completion.
-.SH NOTES
-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
-"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
-attribute or
-current color-pair of blanks generated by the scroll function is zeroed.
-Under this implementation it is.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_outopts\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_slk.3x b/ncurses-5.3/man/curs_slk.3x
deleted file mode 100644
index 2d1bea1..0000000
--- a/ncurses-5.3/man/curs_slk.3x
+++ /dev/null
@@ -1,149 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_slk 3X ""
-.SH NAME
-\fBslk_init\fR, \fBslk_set\fR, \fBslk_refresh\fR,
-\fBslk_noutrefresh\fR, \fBslk_label\fR,
-\fBslk_clear\fR, \fBslk_restore\fR, \fBslk_touch\fR,
-\fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR,
-\fBslk_attr_on\fR, \fBslk_attr_set\fR, \fBslk_attr_off\fR,
-\fBslk_attr\fR, \fBslk_color\fR - \fBcurses\fR soft label routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBint slk_init(int fmt);\fR
-.br
-\fBint slk_set(int labnum, const char *label, int fmt);\fR
-.br
-\fBint slk_refresh(void);\fR
-.br
-\fBint slk_noutrefresh(void);\fR
-.br
-\fBchar *slk_label(int labnum);\fR
-.br
-\fBint slk_clear(void);\fR
-.br
-\fBint slk_restore(void);\fR
-.br
-\fBint slk_touch(void);\fR
-.br
-\fBint slk_attron(const chtype attrs);\fR
-.br
-\fBint slk_attroff(const chtype attrs);\fR
-.br
-\fBint slk_attrset(const chtype attrs);\fR
-.br
-\fBint slk_attr_on(attr_t attrs, void* opts);\fR
-.br
-\fBint slk_attr_off(const attr_t attrs, void * opts);\fR
-.br
-\fBint slk_attr_set(const attr_t attrs,\fR
-.br
- \fBshort color_pair_number, void* opts);\fR
-.br
-\fBattr_t slk_attr(void);\fR
-.br
-\fBint slk_color(short color_pair_number);\fR
-.br
-.SH DESCRIPTION
-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,
-\fBcurses\fR takes over the bottom line of \fBstdscr\fR, reducing the size of
-\fBstdscr\fR and the variable \fBLINES\fR. \fBcurses\fR standardizes on eight
-labels of up to eight characters each. In addition to this, the ncurses
-implementation supports a mode where it simulates 12 labels of up to five
-characters each. This is most common for todays PC like enduser devices.
-Please note that ncurses simulates this mode by taking over up to two lines at
-the bottom of the screen, it doesn't try to use any hardware support for this
-mode.
-
-The \fBslk_init\fR routine must be called before \fBinitscr\fR or \fBnewterm\fR
-is called. If \fBinitscr\fR eventually uses a line from \fBstdscr\fR to
-emulate the soft labels, then \fIfmt\fR determines how the labels are arranged
-on the screen. Setting \fIfmt\fR to \fB0\fR indicates a 3-2-3 arrangement of
-the labels, \fB1\fR indicates a 4-4 arrangement and \fB2\fR indicates the
-PC like 4-4-4 mode. If \fBfmt\fR is set to \fB3\fR, 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.
-
-The \fBslk_set\fR routine requires \fIlabnum\fR to be a label number,
-from \fB1\fR to \fB8\fR (resp. \fB12\fR); \fIlabel\fR must be the string
-to be put on the label, up to eight (resp. five) characters in length.
-A null string or a null pointer sets up a blank label. \fIfmt\fR is either
-\fB0\fR, \fB1\fR, or \fB2\fR, indicating whether the label is to be
-left-justified, centered, or right-justified, respectively, within the
-label.
-
-The \fBslk_refresh\fR and \fBslk_noutrefresh\fR routines correspond to
-the \fBwrefresh\fR and \fBwnoutrefresh\fR routines.
-
-The \fBslk_label\fR routine returns the current label for label number
-\fIlabnum\fR, with leading and trailing blanks stripped.
-
-The \fBslk_clear\fR routine clears the soft labels from the screen.
-
-The \fBslk_restore\fR routine, restores the soft labels to the screen
-after a \fBslk_clear\fR has been performed.
-
-The \fBslk_touch\fR routine forces all the soft labels to be output
-the next time a \fBslk_noutrefresh\fR is performed.
-
-The \fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR and \fBslk_attr\fR
-routines correspond to \fBattron\fR, \fBattrset\fR, \fBattroff\fR and \fBattr_get\fR.
-They have an effect only if soft labels are simulated on the bottom line of
-the screen. The default highlight for soft keys is A_STANDOUT (as in
-System V curses, which does not document this fact).
-
-The \fBslk_color\fR routine corresponds to \fBcolor_set\fR. It has an effect only
-if soft labels are simulated on the bottom line of the screen.
-
-.SH RETURN VALUE
-These routines return \fBERR\fR upon failure and OK (SVr4 specifies only "an
-integer value other than \fBERR\fR") upon successful completion. \fBslk_attr\fR
-returns the attribute used for the soft keys.
-
-\fBslk_label\fR returns \fBNULL\fR on error.
-.SH NOTES
-Most applications would use \fBslk_noutrefresh\fR because a
-\fBwrefresh\fR is likely to follow soon.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4, describes these functions. It changes the
-argument type of the attribute-manipulation functions \fBslk_attron\fR,
-\fBslk_attroff\fR, \fBslk_attrset\fR to be \fBattr_t\fR, and adds \fBconst\fR
-qualifiers. The format codes \fB2\fR and \fB3\fR for \fBslk_init()\fR and the
-function \fBslk_attr\fR are specific to ncurses.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_attr\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_termattrs.3x b/ncurses-5.3/man/curs_termattrs.3x
deleted file mode 100644
index 9c03898..0000000
--- a/ncurses-5.3/man/curs_termattrs.3x
+++ /dev/null
@@ -1,133 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_termattrs 3X ""
-.SH NAME
-\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
-
-\fBint baudrate(void);\fR
-.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
-\fBint killwchar(wchar_t *\fR\fIch\fR\fB);\fR
-.br
-\fBchar *longname(void);\fR
-.br
-\fBattr_t term_attrs(void);\fR
-.br
-\fBchtype termattrs(void);\fR
-.br
-\fBchar *termname(void);\fR
-.br
-.SH DESCRIPTION
-The \fBbaudrate\fR routine returns the output speed of the terminal. The
-number returned is in bits per second, for example \fB9600\fR, and is an
-integer.
-
-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_il\fR 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 \fBscrollok\fR.
-
-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
-after the call to \fBinitscr\fR or \fBnewterm\fR. The area is
-overwritten by each call to \fBnewterm\fR and is not restored by
-\fBset_term\fR, so the value should be saved between calls to
-\fBnewterm\fR if \fBlongname\fR is going to be used with multiple
-terminals.
-
-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 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
-variable \fBTERM\fR (truncated to 14 characters).
-.SH RETURN VALUE
-\fBlongname\fR and \fBtermname\fR return \fBNULL\fR on error.
-
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
-.SH NOTES
-Note that \fBtermattrs\fR may be a macro.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions. It changes the
-return type of \fBtermattrs\fR to the new type \fBattr_t\fR.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_outopts\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_termcap.3x b/ncurses-5.3/man/curs_termcap.3x
deleted file mode 100644
index 0f3b13b..0000000
--- a/ncurses-5.3/man/curs_termcap.3x
+++ /dev/null
@@ -1,158 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_termcap 3X ""
-.ds n 5
-.SH NAME
-\fBtgetent\fR,
-\fBtgetflag\fR,
-\fBtgetnum\fR,
-\fBtgetstr\fR,
-\fBtgoto\fR,
-\fBtputs\fR - direct \fBcurses\fR interface to the terminfo capability database
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fB#include <term.h>\fR
-.br
-\fBextern char PC;\fR
-\fBextern char * UP;\fR
-\fBextern char * BC;\fR
-\fBextern @NCURSES_OSPEED@ ospeed;\fR
-.br
-\fBint tgetent(char *bp, const char *name);\fR
-.br
-\fBint tgetflag(char *id);\fR
-.br
-\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
-\fBint tputs(const char *str, int affcnt, int (*putc)(int));\fR
-.br
-.SH DESCRIPTION
-These routines are included as a conversion aid for programs that use
-the \fItermcap\fR library. Their parameters are the same and the
-routines are emulated using the \fIterminfo\fR database. Thus, they
-can only be used to query the capabilities of entries for which a
-terminfo entry has been compiled.
-
-The \fBtgetent\fR routine loads the entry for \fIname\fR.
-It returns 1 on success, 0 if there is no such entry, and -1 if the
-terminfo database could not be found.
-The emulation ignores the buffer pointer \fIbp\fR.
-
-The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR,
-or zero if it is not available.
-
-The \fBtgetnum\fR routine gets the numeric entry for \fIid\fR,
-or -1 if it is not available.
-
-The \fBtgetstr\fR routine returns the string entry for \fIid\fR,
-or zero if it is not available.
-Use \fBtputs\fR to output the returned string.
-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.
-
-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 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
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion.
-
-Routines that return pointers return \fBNULL\fR on error.
-.SH BUGS
-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
-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
-than busy-waiting for 50 milliseconds. Cope with it.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions. However, they
-are marked TO BE WITHDRAWN and may be removed in future versions.
-
-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).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_terminfo.3x b/ncurses-5.3/man/curs_terminfo.3x
deleted file mode 100644
index 2b784a0..0000000
--- a/ncurses-5.3/man/curs_terminfo.3x
+++ /dev/null
@@ -1,294 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_terminfo 3X ""
-.ds n 5
-.SH NAME
-\fBdel_curterm\fR,
-\fBmvcur\fR,
-\fBputp\fR,
-\fBrestartterm\fR,
-\fBset_curterm\fR,
-\fBsetterm\fR,
-\fBsetupterm\fR,
-\fBtigetflag\fR,
-\fBtigetnum\fR,
-\fBtigetstr\fR,
-\fBtparm\fR,
-\fBtputs\fR,
-\fBvid_attr\fR,
-\fBvid_puts\fR,
-\fBvidattr\fR,
-\fBvidputs\fR - \fBcurses\fR interfaces to terminfo database
-.SH SYNOPSIS
-.nf
-\fB#include <curses.h>\fR
-.br
-\fB#include <term.h>\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
-\fBTERMINAL *set_curterm(TERMINAL *\fR\fInterm\fR\fB);\fR
-.br
-\fBint del_curterm(TERMINAL *\fR\fIoterm\fR\fB);\fR
-.br
-\fBint restartterm(const char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR
-.br
-\fBchar *tparm(char *\fR\fIstr\fR\fB, ...);\fR
-.br
-\fBint tputs(const char *\fR\fIstr\fR\fB, int \fR\fIaffcnt\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
-.br
-\fBint putp(const char *\fR\fIstr\fR\fB);\fR
-.br
-\fBint vidputs(chtype \fR\fIattrs\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR
-.br
-\fBint vidattr(chtype \fR\fIattrs\fR\fB);\fR
-.br
-\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(char));\fR
-.br
-\fBint vid_attr(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB);\fR
-.br
-\fBint mvcur(int \fR\fIoldrow\fR\fB, int \fR\fIoldcol\fR\fB, int \fR\fInewrow\fR, int \fR\fInewcol\fR\fB);\fR
-.br
-\fBint tigetflag(char *\fR\fIcapname\fR\fB);\fR
-.br
-\fBint tigetnum(char *\fR\fIcapname\fR\fB);\fR
-.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
-capabilities, such as programming function keys. For all other
-functionality, \fBcurses\fR routines are more suitable and their use is
-recommended.
-
-Initially, \fBsetupterm\fR should be called. Note that
-\fBsetupterm\fR is automatically called by \fBinitscr\fR and
-\fBnewterm\fR. This defines the set of terminal-dependent variables
-[listed in \fBterminfo\fR(\*n)]. The \fBterminfo\fR variables
-\fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as
-follows: If \fBuse_env(FALSE)\fR has been called, values for
-\fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used.
-Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR
-exist, their values are used. If these environment variables do not
-exist and the program is running in a window, the current window size
-is used. Otherwise, if the environment variables do not exist, the
-values for \fBlines\fR and \fBcolumns\fR specified in the
-\fBterminfo\fR database are used.
-
-The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this
-order) to get the definitions for these strings, numbers, and flags.
-Parameterized strings should be passed through \fBtparm\fR to instantiate them.
-All \fBterminfo\fR strings [including the output of \fBtparm\fR] should be printed
-with \fBtputs\fR or \fBputp\fR. Call the \fBreset_shell_mode\fR to restore the
-tty modes before exiting [see \fBcurs_kernel\fR(3X)]. Programs which use
-cursor addressing should output \fBenter_ca_mode\fR upon startup and should
-output \fBexit_ca_mode\fR before exiting. Programs desiring shell escapes
-should call
-
-\fBreset_shell_mode\fR and output \fBexit_ca_mode\fR before the shell
-is called and should output \fBenter_ca_mode\fR and call
-\fBreset_prog_mode\fR after returning from the shell.
-
-The \fBsetupterm\fR routine reads in the \fBterminfo\fR database,
-initializing the \fBterminfo\fR structures, but does not set up the
-output virtualization structures used by \fBcurses\fR. The terminal
-type is the character string \fIterm\fR; if \fIterm\fR is null, the
-environment variable \fBTERM\fR is used.
-All output is to file descriptor \fBfildes\fR which is initialized for output.
-If \fIerrret\fR is not null,
-then \fBsetupterm\fR returns \fBOK\fR or
-\fBERR\fR and stores a status value in the integer pointed to by
-\fIerrret\fR.
-A return value of \fBOK\fR combined with status of \fB1\fR in \fIerrret\fR
-is normal.
-If \fBERR\fR is returned, examine \fIerrret\fR:
-.RS
-.TP 5
-.B 1
-means that the terminal is hardcopy, cannot be used for curses applications.
-.TP 5
-.B 0
-means that the terminal could not be found,
-or that it is a generic type,
-having too little information for curses applications to run.
-.TP 5
-.B -1
-means that the \fBterminfo\fR database could not be found.
-.RE
-.PP
-If \fIerrret\fR is
-null, \fBsetupterm\fR prints an error message upon finding an error
-and exits. Thus, the simplest call is:
-
- \fBsetupterm((char *)0, 1, (int *)0);\fR,
-
-which uses all the defaults and sends the output to \fBstdout\fR.
-
-The \fBsetterm\fR routine is being replaced by \fBsetupterm\fR. The call:
-
- \fBsetupterm(\fR\fIterm\fR\fB, 1, (int *)0)\fR
-
-provides the same functionality as \fBsetterm(\fR\fIterm\fR\fB)\fR.
-The \fBsetterm\fR routine is included here for BSD compatibility, and
-is not recommended for new programs.
-
-The \fBset_curterm\fR routine sets the variable \fBcur_term\fR to
-\fInterm\fR, and makes all of the \fBterminfo\fR boolean, numeric, and
-string variables use the values from \fInterm\fR. It returns the old value
-of \fBcur_term\fR.
-
-The \fBdel_curterm\fR routine frees the space pointed to by
-\fIoterm\fR and makes it available for further use. If \fIoterm\fR is
-the same as \fBcur_term\fR, references to any of the \fBterminfo\fR
-boolean, numeric, and string variables thereafter may refer to invalid
-memory locations until another \fBsetupterm\fR has been called.
-
-The \fBrestartterm\fR routine is similar to \fBsetupterm\fR and \fBinitscr\fR,
-except that it is called after restoring memory to a previous state (for
-example, when reloading a game saved as a core image dump). It assumes that
-the windows and the input and output options are the same as when memory was
-saved, but the terminal type and baud rate may be different. Accordingly,
-it saves various tty state bits, does a setupterm, and then restores the bits.
-
-The \fBtparm\fR routine instantiates the string \fIstr\fR with
-parameters \fIpi\fR. A pointer is returned to the result of \fIstr\fR
-with the parameters applied.
-
-The \fBtputs\fR routine applies padding information to the string
-\fIstr\fR and outputs it. The \fIstr\fR must be a terminfo string
-variable or the return value from \fBtparm\fR, \fBtgetstr\fR, or
-\fBtgoto\fR. \fIaffcnt\fR is the number of lines affected, or 1 if
-not applicable. \fIputc\fR is a \fBputchar\fR-like routine to which
-the characters are passed, one at a time.
-
-The \fBputp\fR routine calls \fBtputs(\fR\fIstr\fR\fB, 1, putchar)\fR.
-Note that the output of \fBputp\fR always goes to \fBstdout\fR, not to
-the \fIfildes\fR specified in \fBsetupterm\fR.
-
-The \fBvidputs\fR routine displays the string on the terminal in the
-video attribute mode \fIattrs\fR, which is any combination of the
-attributes listed in \fBcurses\fR(3X). The characters are passed to
-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 \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 \fBtigetflag\fR, \fBtigetnum\fR and \fBtigetstr\fR routines return
-the value of the capability corresponding to the \fBterminfo\fR
-\fIcapname\fR passed to them, such as \fBxenl\fR.
-
-The \fBtigetflag\fR routine returns the value \fB-1\fR if
-\fIcapname\fR is not a boolean capability,
-or \fB0\fR if it is canceled or absent from the terminal description.
-
-The \fBtigetnum\fR routine returns the value \fB-2\fR if
-\fIcapname\fR is not a numeric capability,
-or \fB-1\fR if it is canceled or absent from the terminal description.
-
-The \fBtigetstr\fR routine returns the value \fB(char *)-1\fR
-if \fIcapname\fR is not a string capability,
-or \fB0\fR if it is canceled or absent from the terminal description.
-
-The \fIcapname\fR for each capability is given in the table column entitled
-\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n).
-
-\fBchar *boolnames\fR, \fB*boolcodes\fR, \fB*boolfnames\fR
-
-\fBchar *numnames\fR, \fB*numcodes\fR, \fB*numfnames\fR
-
-\fBchar *strnames\fR, \fB*strcodes\fR, \fB*strfnames\fR
-
-These null-terminated arrays contain the \fIcapnames\fR, the
-\fBtermcap\fR codes, and the full C names, for each of the
-\fBterminfo\fR variables.
-.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
-(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
-completion, unless otherwise noted in the preceding routine descriptions.
-
-Routines that return pointers always return \fBNULL\fR on error.
-.SH NOTES
-The \fBsetupterm\fR routine should be used in place of \fBsetterm\fR.
-It may be useful when you want to test for terminal capabilities without
-committing to the allocation of storage involved in \fBinitscr\fR.
-
-Note that \fBvidattr\fR and \fBvidputs\fR may be macros.
-.SH PORTABILITY
-The function \fBsetterm\fR 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.
-
-In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and
-returns \fBOK\fR or \fBERR\fR. We have chosen to implement the XSI Curses
-semantics.
-
-In System V Release 4, the third argument of \fBtputs\fR has the type
-\fBint (*putc)(char)\fR.
-
-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
-the window before resuming normal curses calls.
-Both ncurses and System V Release 4 curses implement \fBmvcur\fR using
-the SCREEN data allocated in either \fBinitscr\fR or \fBnewterm\fR.
-So though it is documented as a terminfo function,
-\fBmvcur\fR is really a curses function which is not well specified.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_termcap\fR(3X),
-\fBputc\fR(3S), \fBterminfo\fR(\*n)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_touch.3x b/ncurses-5.3/man/curs_touch.3x
deleted file mode 100644
index d10f2aa..0000000
--- a/ncurses-5.3/man/curs_touch.3x
+++ /dev/null
@@ -1,96 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_touch 3X ""
-.SH NAME
-\fBtouchwin\fR,
-\fBtouchline\fR,
-\fBuntouchwin\fR,
-\fBwtouchln\fR,
-\fBis_linetouched\fR,
-\fBis_wintouched\fR - \fBcurses\fR refresh control routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBint touchwin(WINDOW *win);\fR
-.br
-\fBint touchline(WINDOW *win, int start, int count);\fR
-.br
-\fBint untouchwin(WINDOW *win);\fR
-.br
-\fBint wtouchln(WINDOW *win, int y, int n, int changed);\fR
-.br
-\fBbool is_linetouched(WINDOW *win, int line);\fR
-.br
-\fBbool is_wintouched(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-The \fBtouchwin\fR and \fBtouchline\fR routines throw away all
-optimization 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 \fBtouchline\fR only pretends that \fIcount\fR lines have been
-changed, beginning with line \fIstart\fR.
-
-The \fBuntouchwin\fR routine marks all lines in the window as unchanged since
-the last call to \fBwrefresh\fR.
-
-The \fBwtouchln\fR routine makes \fIn\fR lines in the window, starting
-at line \fIy\fR, look as if they have (\fIchanged\fR\fB=1\fR) or have
-not (\fIchanged\fR\fB=0\fR) been changed since the last call to
-\fBwrefresh\fR.
-
-The \fBis_linetouched\fR and \fBis_wintouched\fR routines return
-\fBTRUE\fR if the specified line/window was modified since the last
-call to \fBwrefresh\fR; otherwise they return \fBFALSE\fR. In
-addition, \fBis_linetouched\fR returns \fBERR\fR if \fIline\fR is not
-valid for the given window.
-.SH RETURN VALUE
-All routines return the integer \fBERR\fR upon failure and an integer value
-other than \fBERR\fR upon successful completion, unless otherwise noted in the
-preceding routine descriptions.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-
-Some historic curses implementations had, as an undocumented feature, the
-ability to do the equivalent of \fBclearok(..., 1)\fR by saying
-\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. This will not work under
-ncurses.
-.SH NOTES
-Note that all routines except \fBwtouchln\fR may be macros.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_trace.3x b/ncurses-5.3/man/curs_trace.3x
deleted file mode 100644
index 58dfce2..0000000
--- a/ncurses-5.3/man/curs_trace.3x
+++ /dev/null
@@ -1,149 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_trace 3X ""
-.SH NAME
-\fB_tracef\fR,
-\fB_tracedump\fR,
-\fB_traceattr\fR,
-\fB_traceattr2\fR,
-\fB_nc_tracebits\fR,
-\fB_tracechar\fR,
-\fB_tracechtype\fR,
-\fB_tracechtype2\fR,
-\fB_tracemouse\fR,
-\fBtrace\fR - \fBcurses\fR debugging routines
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-\fBvoid _tracef(const char *format, ...);\fR
-.br
-\fBvoid _tracedump(const char *label, WINDOW *win);\fR
-.br
-\fBchar *_traceattr(attr_t attr);\fR
-.br
-\fBchar *_traceattr2(int buffer, chtype ch);\fR
-.br
-\fBchar *_nc_tracebits(void);\fR
-.br
-\fBchar *_tracechar(const unsigned char ch);\fR
-.br
-\fBchar *_tracechtype(chtype ch);\fR
-.br
-\fBchar *_tracechtype2(int buffer, chtype ch);\fR
-.br
-\fBchar *_tracemouse(const MEVENT *event);\fR
-.br
-\fBvoid trace(const unsigned int param);\fR
-.SH DESCRIPTION
-The \fBtrace\fR routines are used for debugging the ncurses libraries,
-as well as applications which use the ncurses libraries.
-These functions are normally available only with the debugging library
-\fIlibncurses_g.a\fR, but may be compiled into any model (shared, static,
-profile) by defining the symbol \fBTRACE\fR.
-
-The principal parts of this interface are the \fBtrace\fR routine which
-selectively enables different tracing features, and the \fB_tracef\fR
-routine which writes formatted data to the \fItrace\fR file.
-
-Calling \fBtrace\fR with a nonzero parameter opens the file \fBtrace\fR
-in the current directory for output. The parameter is formed by OR'ing
-values from the list of \fBTRACE_\fP\fIxxx\fR definitions in \fB<curses.h>\fR.
-These include:
-.TP 5
-TRACE_DISABLE
-turn off tracing.
-.TP 5
-TRACE_TIMES
-trace user and system times of updates.
-.TP 5
-TRACE_TPUTS
-trace tputs calls.
-.TP 5
-TRACE_UPDATE
-trace update actions, old & new screens.
-.TP 5
-TRACE_MOVE
-trace cursor movement and scrolling.
-.TP 5
-TRACE_CHARPUT
-trace all character outputs.
-.TP 5
-TRACE_ORDINARY
-trace all update actions.
-The old and new screen contents are written to the trace file
-for each refresh.
-.TP 5
-TRACE_CALLS
-trace all curses calls.
-The parameters for each call are traced, as well as return values.
-.TP 5
-TRACE_VIRTPUT
-trace virtual character puts, i.e., calls to \fBaddch\fR.
-.TP 5
-TRACE_IEVENT
-trace low-level input processing, including timeouts.
-.TP 5
-TRACE_BITS
-trace state of TTY control bits.
-.TP 5
-TRACE_ICALLS
-trace internal/nested calls.
-.TP 5
-TRACE_CCALLS
-trace per-character calls.
-.TP 5
-TRACE_DATABASE
-trace read/write of terminfo/termcap data.
-.TP 5
-TRACE_ATTRS
-trace changes to video attributes and colors.
-.TP 5
-TRACE_MAXIMUM
-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.
-.SH RETURN VALUE
-Routines which return a value are designed to be used as parameters
-to the \fB_tracef\fR routine.
-.SH PORTABILITY
-These functions are not part of the XSI interface.
-Some other curses implementations are known to
-have similar, undocumented features,
-but they are not compatible with ncurses.
-.SH SEE ALSO
-\fBcurses\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_util.3x b/ncurses-5.3/man/curs_util.3x
deleted file mode 100644
index 3b77af3..0000000
--- a/ncurses-5.3/man/curs_util.3x
+++ /dev/null
@@ -1,134 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_util 3X ""
-.SH NAME
-\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
-\fBchar *wunctrl(wchar_t w);\fR
-.br
-\fBchar *keyname(int c);\fR
-.br
-\fBchar *key_name(wchar_t w);\fR
-.br
-\fBvoid filter(void);\fR
-.br
-\fBvoid use_env(bool f);\fR
-.br
-\fBint putwin(WINDOW *win, FILE *filep);\fR
-.br
-\fBWINDOW *getwin(FILE *filep);\fR
-.br
-\fBint delay_output(int ms);\fR
-.br
-\fBint flushinp(void);\fR
-.br
-.SH DESCRIPTION
-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.
-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
-is set to 1; the capabilities \fBclear\fR, \fBcup\fR, \fBcud\fR, \fBcud1\fR,
-\fBcuu1\fR, \fBcuu\fR, \fBvpa\fR are disabled; and the \fBhome\fR string is
-set to the value of \fBcr\fR.
-
-The \fBuse_env\fR routine, if used, is called before \fBinitscr\fR or
-\fBnewterm\fR are called. When called with \fBFALSE\fR as an
-argument, the values of \fBlines\fR and \fBcolumns\fR specified in the
-\fIterminfo\fR database will be used, even if environment variables
-\fBLINES\fR and \fBCOLUMNS\fR (used by default) are set, or if
-\fBcurses\fR is running in a window (in which case default behavior
-would be to use the window size if \fBLINES\fR and \fBCOLUMNS\fR are
-not set).
-
-The \fBputwin\fR routine writes all data associated with window \fIwin\fR into
-the file to which \fIfilep\fR points. This information can be later retrieved
-using the \fBgetwin\fR function.
-
-The \fBgetwin\fR routine reads window related data stored in the file by
-\fBputwin\fR. The routine then creates and initializes a new window using that
-data. It returns a pointer to the new window.
-
-The \fBdelay_output\fR routine inserts an \fIms\fR millisecond pause
-in output. This routine should not be used extensively because
-padding characters are used rather than a CPU pause.
-
-The \fBflushinp\fR routine throws away any typeahead that has been typed by the
-user and has not yet been read by the program.
-.SH RETURN VALUE
-Except for \fBflushinp\fR, routines that return an integer return \fBERR\fR
-upon failure and \fBOK\fR (SVr4 specifies only "an integer value other than
-\fBERR\fR") upon successful completion.
-
-\fBflushinp\fR always returns \fBOK\fR.
-
-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).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_scr_dump\fR(3X).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/curs_window.3x b/ncurses-5.3/man/curs_window.3x
deleted file mode 100644
index 9935763..0000000
--- a/ncurses-5.3/man/curs_window.3x
+++ /dev/null
@@ -1,159 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH curs_window 3X ""
-.SH NAME
-\fBnewwin\fR,
-\fBdelwin\fR,
-\fBmvwin\fR,
-\fBsubwin\fR,
-\fBderwin\fR,
-\fBmvderwin\fR,
-\fBdupwin\fR,
-\fBwsyncup\fR,
-\fBsyncok\fR,
-\fBwcursyncup\fR,
-\fBwsyncdown\fR - create \fBcurses\fR windows
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-
-\fBWINDOW *newwin(int nlines, int ncols, int begin_y,\fR
- \fBint begin_x);\fR
-.br
-\fBint delwin(WINDOW *win);\fR
-.br
-\fBint mvwin(WINDOW *win, int y, int x);\fR
-.br
-\fBWINDOW *subwin(WINDOW *orig, int nlines, int ncols,\fR
- \fBint begin_y, int begin_x);\fR
-.br
-\fBWINDOW *derwin(WINDOW *orig, int nlines, int ncols,\fR
- \fBint begin_y, int begin_x);\fR
-.br
-\fBint mvderwin(WINDOW *win, int par_y, int par_x);\fR
-.br
-\fBWINDOW *dupwin(WINDOW *win);\fR
-.br
-\fBvoid wsyncup(WINDOW *win);\fR
-.br
-\fBint syncok(WINDOW *win, bool bf);\fR
-.br
-\fBvoid wcursyncup(WINDOW *win);\fR
-.br
-\fBvoid wsyncdown(WINDOW *win);\fR
-.br
-.SH DESCRIPTION
-Calling \fBnewwin\fR creates and returns a pointer to a new window with the
-given number of lines and columns. The upper left-hand corner of the window is
-at line \fIbegin\fR_\fIy\fR, column \fIbegin\fR_\fIx\fR. If either
-\fInlines\fR or \fIncols\fR is zero, they default to \fBLINES -\fR
-\fIbegin\fR_\fIy\fR and \fBCOLS -\fR \fIbegin\fR_\fIx\fR. A new full-screen
-window is created by calling \fBnewwin(0,0,0,0)\fR.
-
-Calling \fBdelwin\fR deletes the named window, freeing all memory
-associated with it (it does not actually erase the window's screen
-image). Subwindows must be deleted before the main window can be
-deleted.
-
-Calling \fBmvwin\fR moves the window so that the upper left-hand
-corner is at position (\fIx\fR, \fIy\fR). If the move would cause the
-window to be off the screen, it is an error and the window is not
-moved. Moving subwindows is allowed, but should be avoided.
-
-Calling \fBsubwin\fR creates and returns a pointer to a new window
-with the given number of lines, \fInlines\fR, and columns,
-\fIncols\fR. The window is at position (\fIbegin\fR_\fIy\fR,
-\fIbegin\fR_\fIx\fR) on the screen. (This position is relative to the
-screen, and not to the window \fIorig\fR.) The window is made in the
-middle of the window \fIorig\fR, so that changes made to one window
-will affect both windows. The subwindow shares memory with the window
-\fIorig\fR. When using this routine, it is necessary to call
-\fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before calling
-\fBwrefresh\fR on the subwindow.
-
-Calling \fBderwin\fR is the same as calling \fBsubwin,\fR except that
-\fIbegin\fR_\fIy\fR and \fIbegin\fR_\fIx\fR are relative to the origin
-of the window \fIorig\fR rather than the screen. There is no
-difference between the subwindows and the derived windows.
-
-Calling \fBmvderwin\fR moves a derived window (or subwindow)
-inside its parent window. The screen-relative parameters of the
-window are not changed. This routine is used to display different
-parts of the parent window at the same physical position on the
-screen.
-
-Calling \fBdupwin\fR creates an exact duplicate of the window \fIwin\fR.
-
-Calling \fBwsyncup\fR touches all locations in ancestors of \fIwin\fR that are
-changed in \fIwin\fR. If \fBsyncok\fR is called with second argument
-\fBTRUE\fR then \fBwsyncup\fR is called automatically whenever there is a
-change in the window.
-
-The \fBwsyncdown\fR routine touches each location in \fIwin\fR that has been
-touched in any of its ancestor windows. This routine is called by
-\fBwrefresh\fR, so it should almost never be necessary to call it manually.
-
-The routine \fBwcursyncup\fR updates the current cursor position of all the
-ancestors of the window to reflect the current cursor position of the
-window.
-.SH RETURN VALUE
-Routines that return an integer return the integer \fBERR\fR upon failure and
-\fBOK\fR (SVr4 only specifies "an integer value other than \fBERR\fR") upon
-successful completion.
-
-\fBdelwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
-upon successful completion.
-
-Routines that return pointers return \fBNULL\fR on error.
-.SH NOTES
-If many small changes are made to the window, the \fBwsyncup\fR option could
-degrade performance.
-
-Note that \fBsyncok\fR may be a macro.
-.SH BUGS
-The subwindow functions (\fIsubwin\fR, \fIderwin\fR, \fImvderwin\fR,
-\fBwsyncup\fR, \fBwsyncdown\fR, \fBwcursyncup\fR, \fBsyncok\fR) are flaky,
-incompletely implemented, and not well tested.
-
-The System V curses documentation is very unclear about what \fBwsyncup\fR
-and \fBwsyncdown\fR actually do. It seems to imply that they are only
-supposed to touch exactly those lines that are affected by ancestor changes.
-The language here, and the behavior of the \fBcurses\fR implementation,
-is patterned on the XPG4 curses standard. The weaker XPG4 spec may result
-in slower updates.
-.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_refresh\fR(3X), \fBcurs_touch\fR(3X)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/default_colors.3x b/ncurses-5.3/man/default_colors.3x
deleted file mode 100644
index 55bcc54..0000000
--- a/ncurses-5.3/man/default_colors.3x
+++ /dev/null
@@ -1,125 +0,0 @@
-.\"***************************************************************************
-.\" 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 <dickey@clark.net> 1997,1999,2000
-.\"
-.\" $Id$
-.TH default_colors 3X ""
-.SH NAME
-\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 DESCRIPTION
-The
-.I use_default_colors()
-and
-.I assume_default_colors()
-functions 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 unspecified
-default value (e.g., with SGR 39 or SGR 49).
-.PP
-Applications that paint a colored background over the 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 \fBls\fP program
-which use colors to denote different file types or permissions.
-These "color ls" programs do not necessarily modify the background color,
-typically using only the \fIsetaf\fP terminfo capability to set the
-foreground color.
-Full-screen applications that use default colors can achieve similar
-visual effects.
-.PP
-The first function,
-.I use_default_colors()
-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.
-.PP
-The other,
-.I assume_default_colors()
-is a refinement which tells which colors to paint for color pair 0.
-This function recognizes a special color number -1,
-which denotes the default terminal color.
-.PP
-The following are equivalent:
-.RS
-.br
-.I use_default_colors();
-.br
-.I assume_default_colors(-1,-1);
-.RE
-.PP
-These are ncurses extensions.
-For other curses implementations, color
-number -1 does not mean anything, just as for ncurses before a
-successful call of \fIuse_default_colors()\fP or \fIassume_default_colors()\fP.
-.PP
-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_default_colors()
-or
-.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 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 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).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/define_key.3x b/ncurses-5.3/man/define_key.3x
deleted file mode 100644
index c846a82..0000000
--- a/ncurses-5.3/man/define_key.3x
+++ /dev/null
@@ -1,64 +0,0 @@
-.\"***************************************************************************
-.\" 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 <dickey@clark.net> 1997
-.\"
-.\" $Id$
-.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 DESCRIPTION
-This is an extension to the curses library.
-It permits an application to define keycodes with their corresponding control
-strings, so that the ncurses library will interpret them just as it would
-the predefined codes in the terminfo database.
-.PP
-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.
-.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 SEE ALSO
-\fBkeyok\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form.3x b/ncurses-5.3/man/form.3x
deleted file mode 100644
index 9807ce5..0000000
--- a/ncurses-5.3/man/form.3x
+++ /dev/null
@@ -1,200 +0,0 @@
-'\" 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$
-.TH form 3X ""
-.SH NAME
-\fBform\fR - curses extension for programming forms
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-.SH DESCRIPTION
-The \fBform\fR 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 interaction with the
-user.
-
-The \fBform\fR library uses the \fBcurses\fR libraries, and a curses
-initialization routine such as \fBinitscr\fR must be called before using any of
-these functions. To use the \fBform\fR library, link with the options
-\fB-lform -lcurses\fR.
-
-.SS Current Default Values for Field Attributes
-
-The \fBform\fR library maintains a default value for field attributes. You
-can get or set this default by calling the appropriate \fBset_\fR
-or retrieval
-routine with a \fBNULL\fR field pointer. Changing this default with a
-\fBset_\fR function affects future field creations, but does not change the
-rendering of fields already created.
-
-.SS Routine Name Index
-
-The following table lists each \fBform\fR routine and the name of
-the manual page on which it is described.
-
-.TS
-l l
-l l .
-\fBcurses\fR Routine Name Manual Page Name
-=
-current_field \fBform_page\fR(3X)
-data_ahead \fBform_data\fR(3X)
-data_behind \fBform_data\fR(3X)
-dup_field \fBform_field_new\fR(3X)
-dynamic_fieldinfo \fBform_field_info\fR(3X)
-field_arg \fBform_field_validation\fR(3X)
-field_back \fBform_field_attributes\fR(3X)
-field_buffer \fBform_field_buffer\fR(3X)
-field_count \fBform_field\fR(3X)
-field_fore \fBform_field_attributes\fR(3X)
-field_index \fBform_page\fR(3X)
-field_info \fBform_field_info\fR(3X)
-field_init \fBform_hook\fR(3X)
-field_just \fBform_field_just\fR(3X)
-field_opts \fBform_field_opts\fR(3X)
-field_opts_off \fBform_field_opts\fR(3X)
-field_opts_on \fBform_field_opts\fR(3X)
-field_pad \fBform_field_attributes\fR(3X)
-field_status \fBform_field_buffer\fR(3X)
-field_term \fBform_hook\fR(3X)
-field_type \fBform_field_validation\fR(3X)
-field_userptr \fBform_field_userptr\fR(3X)
-form_driver \fBform_driver\fR(3X)
-form_fields \fBform_field\fR(3X)
-form_init \fBform_hook\fR(3X)
-form_opts \fBform_opts\fR(3X)
-form_opts_off \fBform_opts\fR(3X)
-form_opts_on \fBform_opts\fR(3X)
-form_page \fBform_page\fR(3X)
-form_request_by_name \fBform_requestname\fR(3X)
-form_request_name \fBform_requestname\fR(3X)
-form_sub \fBform_win\fR(3X)
-form_term \fBform_hook\fR(3X)
-form_userptr \fBform_userptr\fR(3X)
-form_win \fBform_win\fR(3X)
-free_field \fBform_field_new\fR(3X)
-free_form \fBform_new\fR(3X)
-link_field \fBform_field_new\fR(3X)
-link_fieldtype \fBform_fieldtype\fR(3X)
-move_field \fBform_field\fR(3X)
-new_field \fBform_field_new\fR(3X)
-new_form \fBform_new\fR(3X)
-new_page \fBform_new_page\fR(3X)
-pos_form_cursor \fBform_cursor\fR(3X)
-post_form \fBform_post\fR(3X)
-scale_form \fBform_win\fR(3X)
-set_current_field \fBform_page\fR(3X)
-set_field_back \fBform_field_attributes\fR(3X)
-set_field_buffer \fBform_field_buffer\fR(3X)
-set_field_fore \fBform_field_attributes\fR(3X)
-set_field_init \fBform_hook\fR(3X)
-set_field_just \fBform_field_just\fR(3X)
-set_field_opts \fBform_field_opts\fR(3X)
-set_field_pad \fBform_field_attributes\fR(3X)
-set_field_status \fBform_field_buffer\fR(3X)
-set_field_term \fBform_hook\fR(3X)
-set_field_type \fBform_field_validation\fR(3X)
-set_field_userptr \fBform_field_userptr\fR(3X)
-set_fieldtype_arg \fBform_fieldtype\fR(3X)
-set_fieldtype_choice \fBform_fieldtype\fR(3X)
-set_form_fields \fBform_field\fR(3X)
-set_form_init \fBform_hook\fR(3X)
-set_form_opts \fBform_field_opts\fR(3X)
-set_form_page \fBform_page\fR(3X)
-set_form_sub \fBform_win\fR(3X)
-set_form_term \fBform_hook\fR(3X)
-set_form_userptr \fBform_userptr\fR(3X)
-set_form_win \fBform_win\fR(3X)
-set_max_field \fBform_field_buffer\fR(3X)
-set_new_page \fBform_new_page\fR(3X)
-unpost_form \fBform_post\fR(3X)
-.TE
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Routines that return
-an integer return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_CONNECTED\fR
-The field is already connected to a form.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form is already posted.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NO_ROOM\fR
-Form is too large for its window.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The form driver code saw an unknown request code.
-.TP 5
-\fBE_INVALID_FIELD\fR
-Contents of a field are not valid.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No fields are connected to the form.
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The form driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
-
-In your library list, libform.a should be before libncurses.a; that is,
-you want to say `-lform -lncurses', not the other way around (which would
-give you a link error using GNU \fBld\fR(1) and many other linkers).
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_cursor.3x b/ncurses-5.3/man/form_cursor.3x
deleted file mode 100644
index 4ee7c79..0000000
--- a/ncurses-5.3/man/form_cursor.3x
+++ /dev/null
@@ -1,74 +0,0 @@
-'\" 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$
-.TH form_cursor 3X ""
-.SH NAME
-\fBform_cursor\fR - position a form window cursor
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int pos_form_cursor(FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBpos_form_cursor\fR restores the cursor to the position required
-for the forms driver to continue processing requests. This is useful after
-\fBcurses\fR routines have been called to do screen-painting in response to a
-form operation.
-.SH RETURN VALUE
-This routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_data.3x b/ncurses-5.3/man/form_data.3x
deleted file mode 100644
index 623dbac..0000000
--- a/ncurses-5.3/man/form_data.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-'\" 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$
-.TH form_data 3X ""
-.SH NAME
-\fBform_data\fR - test for off-screen data in given forms
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-bool data_ahead(const FORM *form);
-.br
-bool data_behind(const FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBdata_ahead\fR tests whether there is off-screen data
-ahead in the given form. It returns TRUE (1) or FALSE (0).
-
-The function \fBdata_behind\fR tests whether there is off-screen data
-behind in the given form. It returns TRUE (1) or FALSE (0).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_driver.3x b/ncurses-5.3/man/form_driver.3x
deleted file mode 100644
index 4b36c93..0000000
--- a/ncurses-5.3/man/form_driver.3x
+++ /dev/null
@@ -1,272 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH form_driver 3X ""
-.SH NAME
-\fBform_driver\fR - command-processing loop of the form system
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int form_driver(FORM *form, int c);
-.br
-.SH DESCRIPTION
-Once a form has been posted (displayed), you should funnel input events to it
-through \fBform_driver\fR. This routine has two major input cases; either
-the input is a form navigation request or it's a printable ASCII character.
-The form driver requests are as follows:
-.TP 5
-REQ_NEXT_PAGE
-Move to the next page.
-.TP 5
-REQ_PREV_PAGE
-Move to the previous page.
-.TP 5
-REQ_FIRST_PAGE
-Move to the first page.
-.TP 5
-REQ_LAST_PAGE
-Move to the last field.
-
-.TP 5
-REQ_NEXT_FIELD
-Move to the next field.
-.TP 5
-REQ_PREV_FIELD
-Move to the previous field.
-.TP 5
-REQ_FIRST_FIELD
-Move to the first field.
-.TP 5
-REQ_LAST_FIELD
-Move to the last field.
-.TP 5
-REQ_SNEXT_FIELD
-Move to the sorted next field.
-.TP 5
-REQ_SPREV_FIELD
-Move to the sorted previous field.
-.TP 5
-REQ_SFIRST_FIELD
-Move to the sorted first field.
-.TP 5
-REQ_SLAST_FIELD
-Move to the sorted last field.
-.TP 5
-REQ_LEFT_FIELD
-Move left to a field.
-.TP 5
-REQ_RIGHT_FIELD
-Move right to a field.
-.TP 5
-REQ_UP_FIELD
-Move up to a field.
-.TP 5
-REQ_DOWN_FIELD
-Move down to a field.
-
-.TP 5
-REQ_NEXT_CHAR
-Move to the next char.
-.TP 5
-REQ_PREV_CHAR
-Move to the previous char.
-.TP 5
-REQ_NEXT_LINE
-Move to the next line.
-.TP 5
-REQ_PREV_LINE
-Move to the previous line.
-.TP 5
-REQ_NEXT_WORD
-Move to the next word.
-.TP 5
-REQ_PREV_WORD
-Move to the previous word.
-.TP 5
-REQ_BEG_FIELD
-Move to the beginning of the field.
-.TP 5
-REQ_END_FIELD
-Move to the end of the field.
-.TP 5
-REQ_BEG_LINE
-Move to the beginning of the line.
-.TP 5
-REQ_END_LINE
-Move to the end of the line.
-.TP 5
-REQ_LEFT_CHAR
-Move left in the field.
-.TP 5
-REQ_RIGHT_CHAR
-Move right in the field.
-.TP 5
-REQ_UP_CHAR
-Move up in the field.
-.TP 5
-REQ_DOWN_CHAR
-Move down in the field.
-
-.TP 5
-REQ_NEW_LINE
-Insert or overlay a new line.
-.TP 5
-REQ_INS_CHAR
-Insert a blank at the cursor.
-.TP 5
-REQ_INS_LINE
-Insert a blank line at the cursor.
-.TP 5
-REQ_DEL_CHAR
-Delete character at the cursor.
-.TP 5
-REQ_DEL_PREV
-Delete character before the cursor.
-.TP 5
-REQ_DEL_LINE
-Delete line at the cursor.
-.TP 5
-REQ_DEL_WORD
-Delete blank-delimited word at the cursor.
-.TP 5
-REQ_CLR_EOL
-Clear to end of line from cursor.
-.TP 5
-REQ_CLR_EOF
-Clear to end of field from cursor.
-.TP 5
-REQ_CLR_FIELD
-Clear the entire field.
-.TP 5
-REQ_OVL_MODE
-Enter overlay mode.
-.TP 5
-REQ_INS_MODE
-Enter insert mode.
-
-.TP 5
-REQ_SCR_FLINE
-Scroll the field forward a line.
-.TP 5
-REQ_SCR_BLINE
-Scroll the field backward a line.
-.TP 5
-REQ_SCR_FPAGE
-Scroll the field forward a page.
-.TP 5
-REQ_SCR_BPAGE
-Scroll the field backward a page.
-.TP 5
-REQ_SCR_FHPAGE
-Scroll the field forward half a page.
-.TP 5
-REQ_SCR_BHPAGE
-Scroll the field backward half a page.
-
-.TP 5
-REQ_SCR_FCHAR
-Scroll the field forward a character.
-.TP 5
-REQ_SCR_BCHAR
-Scroll the field backward a character.
-.TP 5
-REQ_SCR_HFLINE
-Horizontal scroll the field forward a line.
-.TP 5
-REQ_SCR_HBLINE
-Horizontal scroll the field backward a line.
-.TP 5
-REQ_SCR_HFHALF
-Horizontal scroll the field forward half a line.
-.TP 5
-REQ_SCR_HBHALF
-Horizontal scroll the field backward half a line.
-
-.TP
-REQ_VALIDATION
-Validate field.
-.TP
-REQ_NEXT_CHOICE
-Display next field choice.
-.TP
-REQ_PREV_CHOICE
-Display previous field choice.
-.PP
-If the second argument is a printable ASCII character, the driver places it
-in the current position in the current field. If it is one of the forms
-requests listed above, that request is executed.
-.PP
-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 \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
-should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
-pre-defined requests.
-.SH RETURN VALUE
-\fBform_driver\fR return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The form driver code saw an unknown request code.
-.TP 5
-\fBE_INVALID_FIELD\fR
-Contents of field is invalid.
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The form driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header files
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field.3x b/ncurses-5.3/man/form_field.3x
deleted file mode 100644
index a774942..0000000
--- a/ncurses-5.3/man/form_field.3x
+++ /dev/null
@@ -1,97 +0,0 @@
-'\" 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$
-.TH form_field 3X ""
-.SH NAME
-\fBform_field\fR - make and break connections between fields and forms
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_form_fields(FORM *form, FIELD **fields);
-.br
-FIELD **form_fields(const FORM *form);
-.br
-int field_count(const FORM *form);
-.br
-int move_field(FIELD *field, int frow, int fcol);
-.br
-.SH DESCRIPTION
-The function \fBset_form_fields\fR changes the field pointer array of
-the given \fIform\fR. The array must be terminated by a \fBNULL\fR.
-
-The function \fBform_fields\fR returns the field array of the given form.
-
-The function \fBfield_count\fR returns the count of fields in \fIform\fR.
-
-The function \fBmove_field\fR move the given field (which must be disconnected)
-to a specified location on the screen.
-.SH RETURN VALUES
-The function \fBform_fields\fR returns \fBNULL\fR on error.
-
-The function \fBfield_count\fR returns \fBERR\fR (the general
-\fBcurses\fR error return value) on error.
-
-The functions \fBset_form_fields\fR and \fBmove_field\fR return one of
-the following codes on error:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form is already posted.
-.TP 5
-\fBE_CONNECTED\fR
-The field is already connected to a form.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-
-The SVr4 forms library documentation specifies the \fBfield_count\fR error value
-as -1 (which is the value of \fBERR\fR).
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field_attributes.3x b/ncurses-5.3/man/form_field_attributes.3x
deleted file mode 100644
index 0074673..0000000
--- a/ncurses-5.3/man/form_field_attributes.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-'\" 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$
-.TH form_field_attributes 3X ""
-.SH NAME
-\fBform_field_attributes\fR - color and attribute control for form fields
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_fore(FIELD *field, chtype attr);
-.br
-chtype field_fore(const FIELD *field);
-.br
-int set_field_back(FIELD *field, chtype attr);
-.br
-chtype field_back(const FIELD *field);
-.br
-int set_field_pad(FIELD *field, int pad);
-.br
-int field_pad(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_field_fore\fR sets the foreground attribute of
-\fIfield\fR. This is the highlight used to display the field contents. The
-function \fBfield_fore\fR returns the foreground attribute. The default is
-\fBA_STANDOUT\fR.
-
-The function \fBset_field_back\fR sets the background attribute of
-\fIform\fR. This is the highlight used to display the extent fields in the
-form. The function \fBfield_back\fR returns the background attribute. The
-default is \fBA_NORMAL\fR.
-
-The function \fBset_field_pad\fR sets the character used to fill the field.
-The function \fBfield_pad\fR returns the given form's pad character. The
-default is a blank.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field_buffer.3x b/ncurses-5.3/man/form_field_buffer.3x
deleted file mode 100644
index 5b7b355..0000000
--- a/ncurses-5.3/man/form_field_buffer.3x
+++ /dev/null
@@ -1,99 +0,0 @@
-'\" 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$
-.TH form_field_buffer 3X ""
-.SH NAME
-\fBform_field_buffer\fR - field buffer control
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_buffer(FIELD *field, int buf, const char *value);
-.br
-char *field_buffer(const FIELD *field, int buffer);
-.br
-int set_field_status(FIELD *field, bool status);
-.br
-bool field_status(const FIELD *field);
-.br
-int set_max_field(FIELD *field, int max);
-.br
-.SH DESCRIPTION
-The function \fBset_field_buffer\fR 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 may be allocated by applications through the \fBnbuf\fR
-argument of (see \fBform_field_new\fR(3X)) but are not manipulated by the forms
-library. The function \fBfield_buffer\fR returns the address of the buffer.
-Please note that this buffer has always the length of the buffer, that means
-that it may typically contain trailing spaces. If you entered leading spaces
-the buffer may also contain them. If you want the raw data, you must write your
-own routine that copies the value out of the buffer and removes the leading
-and trailing spaces. Please note also, that subsequent operations on the form
-will probably change the content of the buffer. So don't use it for long term
-storage of the entered form data.
-
-The function \fBset_field_status\fR sets the associated status flag of
-\fIfield\fR; \fBfield_status\fR gets the current value. The status flag
-is set to a nonzero value whenever the field changes.
-
-The function \fBset_max_field\fR sets the maximum size for a dynamic field.
-An argument of 0 turns off any maximum size threshold for that field.
-.SH RETURN VALUE
-The \fBfield_buffer\fR function returns NULL on error.
-
-The \fBfield_status\fR function returns \fBTRUE\fR or \fBFALSE\fR.
-
-The remaining routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field_info.3x b/ncurses-5.3/man/form_field_info.3x
deleted file mode 100644
index 1bbc325..0000000
--- a/ncurses-5.3/man/form_field_info.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH form_field_info 3X ""
-.SH NAME
-\fBform_field_info\fR - retrieve field characteristics
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.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, int *max);
-.br
-.SH DESCRIPTION
-The function \fBfield_info\fR returns the sizes and other attributes passed in
-to the field at its creation time. The attributes are: height, width, row of
-upper-left corner, column of upper-left corner, number off-screen rows, and
-number of working buffers.
-
-The function \fBdynamic_field_info\fR returns the actual size of the field, and
-its maximum possible size. If the field has no size limit, the location
-addressed by the third argument will be set to 0. (A field can be made dynamic
-by turning off the \fBO_STATIC\fR).
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.PP
-A null (zero pointer) is accepted for any of the return values,
-to ignore that value.
-Not all implementations allow this, e.g., Solaris 2.7 does not.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field_just.3x b/ncurses-5.3/man/form_field_just.3x
deleted file mode 100644
index 1954db5..0000000
--- a/ncurses-5.3/man/form_field_just.3x
+++ /dev/null
@@ -1,78 +0,0 @@
-'\" 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$
-.TH form_field_just 3X ""
-.SH NAME
-\fBform_field_just\fR - retrieve field characteristics
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_just(FIELD *field, int justification);
-.br
-int field_just(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_field_just\fR sets the justification attribute of
-a field; \fBfield_just\fR returns a field's justification attribute.
-The attribute may be one of NO_JUSTIFICATION, JUSTIFY_RIGHT,
-JUSTIFY_LEFT, or JUSTIFY_CENTER.
-
-.SH RETURN VALUE
-The function \fBfield_just\fR returns one of: NO_JUSTIFICATION,
-JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER.
-
-The function \fBset_field_just\fR return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field_new.3x b/ncurses-5.3/man/form_field_new.3x
deleted file mode 100644
index 027f3e3..0000000
--- a/ncurses-5.3/man/form_field_new.3x
+++ /dev/null
@@ -1,96 +0,0 @@
-'\" 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$
-.TH form_field_new 3X ""
-.SH NAME
-\fBform_field_new\fR - create and destroy form fields
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-FIELD *new_field(int height, int width,
- int toprow, int leftcol,
- int offscreen, int nbuffers);
-.br
-FIELD *dup_field(FIELD *field, int toprow, int leftcol);
-.br
-FIELD *link_field(FIELD *field, int toprow, int leftcol);
-.br
-int free_field(FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBnew_field\fR allocates a new field and initializes 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 \fBdup_field\fR duplicates a field at a new location. Most
-attributes (including current contents, size, validation type, buffer count,
-growth threshold, justification, foreground, background, pad character,
-options, and user pointer) are copied. Field status and the field page bit are
-not copied.
-
-The function \fBlink_field\fR acts like \fBdup_field\fR, but the new field
-shares buffers with its parent. Attribute data is separate.
-
-The function \fBfree_field\fR de-allocates storage associated with a field.
-.SH RETURN VALUE
-The function, \fBnew_field\fR, \fBdup_field\fR, \fBlink_field\fR return
-\fBNULL\fR on error.
-
-The function \fBfree_field\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-
-It may be unwise to count on the set of attributes copied by
-\fBdup_field\fR(3X) being portable; the System V forms library documents are
-not very explicit on what gets copied and was not.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field_opts.3x b/ncurses-5.3/man/form_field_opts.3x
deleted file mode 100644
index a8b064f..0000000
--- a/ncurses-5.3/man/form_field_opts.3x
+++ /dev/null
@@ -1,120 +0,0 @@
-'\" 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$
-.TH form_field_opts 3X ""
-.SH NAME
-\fBform_field_opts\fR - set and get field options
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_opts(FIELD *field, OPTIONS opts);
-.br
-int field_opts_on(FIELD *field, OPTIONS opts);
-.br
-int field_opts_off(FIELD *field, OPTIONS opts);
-.br
-OPTIONS field_opts(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_field_opts\fR sets all the given field's option bits (field
-option bits may be logically-OR'ed together).
-
-The function \fBfield_opts_on\fR turns on the given option bits, and leaves
-others alone.
-
-The function \fBfield_opts_off\fR turns off the given option bits, and leaves
-others alone.
-
-The function \fBfield_opts\fR returns the field's current option bits.
-
-The following options are defined (all are on by default):
-.TP 5
-O_VISIBLE
-The field is displayed. If this option is off, display of the field is
-suppressed,
-.TP 5
-O_ACTIVE
-The field is visited during processing. If this option is off, the field will
-not be reachable by navigation keys. Please notice that an invisible field
-appears to be inactive also.
-.TP 5
-O_PUBLIC
-The field contents are displayed as data is entered.
-.TP 5
-O_EDIT
-The field can be edited.
-.TP 5
-O_WRAP
-Words that don't fit on a line are wrapped to the next line. Words are
-blank-separated.
-.TP 5
-O_BLANK
-The field is cleared whenever a character is entered at the first position.
-.TP 5
-O_AUTOSKIP
-Skip to the next field when this one fills
-.TP 5
-O_NULLOK
-Allow a blank field.
-.TP 5
-O_STATIC
-Field buffers are fixed to field's original size.
-.TP 5
-O_PASSOK
-Validate field only if modified by user.
-.SH RETURN VALUE
-Except for \fBfield_opts\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_CURRENT\fR
-The field is the current field.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.TP 5
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field_userptr.3x b/ncurses-5.3/man/form_field_userptr.3x
deleted file mode 100644
index 195a12c..0000000
--- a/ncurses-5.3/man/form_field_userptr.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH form_field_userptr 3X ""
-.SH NAME
-\fBform_field_userptr\fR - associate application data with a form field
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_userptr(FIELD *field, void*userptr);
-.br
-void *field_userptr(const FIELD *field);
-.br
-.SH DESCRIPTION
-Every form field has a field that can be used to hold application-specific data
-(that is, the form-driver code leaves it alone). These functions get and set
-that field.
-.SH RETURN VALUE
-The function \fBfield_userptr\fR returns \fBNULL\fR on error. The function
-\fBset_field_userptr\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-
-The user pointer should be a void pointer. We leave it as a char pointer for
-SVr4 compatibility.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_field_validation.3x b/ncurses-5.3/man/form_field_validation.3x
deleted file mode 100644
index 0193146..0000000
--- a/ncurses-5.3/man/form_field_validation.3x
+++ /dev/null
@@ -1,127 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH form_field_validation 3X ""
-.SH NAME
-\fBform_field_validation\fR - data type validation for fields
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_type(FIELD *field, FIELDTYPE *type, ...);
-.br
-FIELDTYPE *field_type(const FIELD *field);
-.br
-void *field_arg(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_field_type\fR declares a data type for a given form field.
-This is the type checked by validation functions. The types are as follows:
-.TP 5
-TYPE_ALNUM
-Alphanumeric data. Requires a third \fBint\fR argument, a minimum field width.
-.TP 5
-TYPE_ALPHA
-Character data. Requires a third \fBint\fR argument, a minimum field width.
-.TP 5
-TYPE_ENUM
-Accept one of a specified set of strings. Requires a third \fB(char **)\fR
-argument pointing to a string list; a fourth \fBint\fR flag argument to enable
-case-sensitivity; and a fifth \fBint\fR 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 notice
-that the string list is not copied, only a reference to it is stored in the
-field. So you should avoid to use a list that lives in automatic variables
-on the stack.
-.TP 5
-TYPE_INTEGER
-Integer data, parsable to an integer by \fBatoi(3)\fR. Requires a third
-\fBint\fR argument controlling the precision, a fourth \fBlong\fR argument
-constraining minimum value, and a fifth \fBlong\fR constraining maximum value.
-If the maximum value is less or equal the minimum value, the range is simply
-ignored. On return the field buffer is formatted according to the \fBprintf\fR
-format specification ".*ld", where the '*' is replaced by the precision argument.
-For details of the precision handling see \fBprintf's\fR man-page.
-.TP 5
-TYPE_NUMERIC
-Numeric data (may have a decimal-point part). Requires a third
-\fBint\fR argument controlling the precision, a fourth \fBdouble\fR
-argument constraining minimum value, and a fifth \fBdouble\fR constraining
-maximum value. If your system supports locale's, the decimal point character
-to be used must be the one specified by your locale.
-If the maximum value is less or equal the minimum value, the range is simply
-ignored. On return the field buffer is formatted according to the \fBprintf\fR
-format specification ".*f", where the '*' is replaced by the precision argument.
-For details of the precision handling see \fBprintf's\fR man-page.
-.TP 5
-TYPE_REGEXP
-Regular expression data. Requires a regular expression \fB(char *)\fR third argument;
-the data is valid if the regular expression matches it. Regular expressions
-are in the format of \fBregcomp\fR(3X) and \fBregexec\fR(3X). Please notice
-that the regular expression must match the whole field. If you have for
-example an eight character wide field, a regular expression "^[0-9]*$" always
-means that you have to fill all eight positions with digits. If you want to
-allow fewer digits, you may use for example "^[0-9]* *$" which is good for
-trailing spaces (up to an empty field), or "^ *[0-9]* *$" which is good for
-leading and trailing spaces around the digits.
-.TP 5
-TYPE_IPV4
-An Internet Protocol Version 4 address. This requires no additional argument. It
-is checked whether or not the buffer has the form a.b.c.d, where a,b,c and d are
-numbers between 0 and 255. Trailing blanks in the buffer are ignored. The address
-itself is not validated. Please note that this is an ncurses extension. This
-field type may not be available in other curses implementations.
-
-It is possible to set up new programmer-defined field types. See the
-\fBform_fieldtype\fR(3X) manual page.
-.SH RETURN VALUE
-The functions \fBfield_type\fR and \fBfield_arg\fR return \fBNULL\fR on
-error. The function \fBset_field_type\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_fieldtype.3x b/ncurses-5.3/man/form_fieldtype.3x
deleted file mode 100644
index 2d28411..0000000
--- a/ncurses-5.3/man/form_fieldtype.3x
+++ /dev/null
@@ -1,126 +0,0 @@
-'\" 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$
-.TH form_fieldtype 3X ""
-.SH NAME
-\fBform_fieldtype\fR - define validation-field types
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-FIELDTYPE *new_fieldtype(
- bool (* const field_check)(FIELD *, const void *),
- bool (* const char_check)(int, const void *));
-.br
-int free_fieldtype(FIELDTYPE *fieldtype);
-.br
-int set_fieldtype_arg(
- FIELDTYPE *fieldtype,
- void *(* const make_arg)(va_list *),
- void *(* const copy_arg)(const void *),
- void (* const free_arg)(void *));
-.br
-int set_fieldtype_choice(
- FIELDTYPE *fieldtype,
- bool (* const next_choice)(FIELD *, const void *),
- bool (* const prev_choice)(FIELD *, const void *));
-.br
-FIELDTYPE *link_fieldtype(FIELDTYPE *type1,
- FIELDTYPE *type2);
-.br
-.SH DESCRIPTION
-The function \fBnew_fieldtype\fR creates a new field type usable for data
-validation. You supply it with \fIfield_check\fR, a predicate to check the
-validity of an entered data string whenever the user attempt to leave a field.
-The (FIELD *) argument is passed in so the validation predicate can see the
-field's buffer, sizes and other attributes; the second argument is an
-argument-block structure, about which more below.
-
-You also supply \fBnew_fieldtype\fR with \fIchar_check\fR,
-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.
-
-The function \fBfree_fieldtype\fR frees the space allocated for a given
-validation type.
-
-The function \fBset_fieldtype\fR associates three storage-management functions
-with a field type. The \fImak_arg\fR function is automatically applied to the
-list of arguments you give \fBset_field_type\fR when attaching validation
-to a field; its job is to bundle these into an allocated argument-block
-object which can later be passed to validation predicated. The other two
-hook arguments should copy and free argument-block structures. They will
-be used by the forms-driver code. You must supply the \fImak_arg\fR function,
-the other two are optional, you may supply NULL for them. In this case it
-is assumed, that \fImak_arg\fR doesn't allocate memory but simply loads the
-argument into a single scalar value.
-
-The form driver requests \fBREQ_NEXT_CHOICE\fR and \fBREQ_PREV_CHOICE\fR assume
-that the possible values of a field form an ordered set, and provide the forms
-user with a way to move through the set. The \fBset_fieldtype_choice\fR
-function allows forms programmers to define successor and predecessor functions
-for the field type. These functions take the field pointer and an
-argument-block structure as arguments.
-.SH RETURN VALUE
-The pointer-valued routines return NULL on error.
-
-The integer-valued routines return one of the following codes on
-error:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_CONNECTED\fR
-The field is already connected to a form.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-
-All of the \fB(char *)\fR arguments of these functions should actually be
-\fB(void *)\fR. The type has been left uncorrected for strict compatibility
-with System V.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_hook.3x b/ncurses-5.3/man/form_hook.3x
deleted file mode 100644
index 8833a44..0000000
--- a/ncurses-5.3/man/form_hook.3x
+++ /dev/null
@@ -1,100 +0,0 @@
-'\" 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$
-.TH form_hook 3X ""
-.SH NAME
-\fBform_hook\fR - set hooks for automatic invocation by applications
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_field_init(FORM *form, void (*func)(FORM *));
-.br
-void (*)(FORM *) field_init(const FORM *form);
-.br
-int set_field_term(FORM *form, void (*func)(FORM *));
-.br
-void (*)(FORM *) field_term(const FORM *form);
-.br
-int set_form_init(FORM *form, void (*func)(FORM *));
-.br
-void (*)(FORM *) form_init(const FORM *form);
-.br
-int set_form_term(FORM *form, void (*func)(FORM *));
-.br
-void (*)(FORM *) form_term(const FORM *form);
-.br
-.SH DESCRIPTION
-These functions make it possible to set hook functions to be called at various
-points in the automatic processing of input event codes by \fBform_driver\fR.
-
-The function \fBset_field_init\fR sets a hook to be called at form-post time
-and each time the selected field changes (after the change). \fBfield_init\fR
-returns the current field init hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_field_term\fR sets a hook to be called at form-unpost time
-and each time the selected field changes (before the change). \fBfield_term\fR
-returns the current field term hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_form_init\fR sets a hook to be called at form-post time and
-just after a page change once it is posted. \fBform_init\fR returns the
-current form init hook, if any (\fBNULL\fR if there is no such hook).
-
-The function \fBset_form_term\fR sets a hook to be called at form-unpost time
-and just before a page change once it is posted. \fBform_init\fR
-returns the current form term hook, if any (\fBNULL\fR if there is no such
-hook).
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Other routines
-return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_new.3x b/ncurses-5.3/man/form_new.3x
deleted file mode 100644
index 71cf003..0000000
--- a/ncurses-5.3/man/form_new.3x
+++ /dev/null
@@ -1,79 +0,0 @@
-'\" 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$
-.TH form_new 3X ""
-.SH NAME
-\fBform_new\fR - create and destroy forms
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-FORM *new_form(FIELD **fields);
-.br
-int free_form(FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBnew_form\fR creates a new form connected to a specified field
-pointer array (which must be \fBNULL\fR-terminated).
-
-The function \fBfree_form\fR disconnects \fIform\fR from its field array
-and frees the storage allocated for the form.
-.SH RETURN VALUE
-The function \fBnew_form\fR returns \fBNULL\fR on error.
-
-The function \fBfree_form\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form has already been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_new_page.3x b/ncurses-5.3/man/form_new_page.3x
deleted file mode 100644
index 5cfb3b8..0000000
--- a/ncurses-5.3/man/form_new_page.3x
+++ /dev/null
@@ -1,77 +0,0 @@
-'\" 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$
-.TH form_new_page 3X ""
-.SH NAME
-\fBform_new_page\fR - form pagination functions
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_new_page(FIELD *field, bool new_page_flag);
-.br
-bool new_page(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_new_page\fR sets or resets a flag marking the given field
-as the beginning of a new page on its form.
-
-The function \fBnew_page\fR is a predicate which tests if a given field marks
-a page beginning on its form.
-.SH RETURN VALUE
-The function \fBnew_page\fR returns \fBTRUE\fR or \fBFALSE\fR.
-
-The function \fBset_new_page\fR return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_CONNECTED\fR
-The given field is already connected to a form.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_opts.3x b/ncurses-5.3/man/form_opts.3x
deleted file mode 100644
index 3cf9f06..0000000
--- a/ncurses-5.3/man/form_opts.3x
+++ /dev/null
@@ -1,90 +0,0 @@
-'\" 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$
-.TH form_opts 3X ""
-.SH NAME
-\fBform_opts\fR - set and get form options
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_form_opts(FORM *form, OPTIONS opts);
-.br
-int form_opts_on(FORM *form, OPTIONS opts);
-.br
-int form_opts_off(FORM *form, OPTIONS opts);
-.br
-OPTIONS form_opts(const FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBset_form_opts\fR sets all the given form's option bits (form
-option bits may be logically-OR'ed together).
-
-The function \fBform_opts_on\fR turns on the given option bits, and leaves
-others alone.
-
-The function \fBform_opts_off\fR turns off the given option bits, and leaves
-others alone.
-
-The function \fBform_opts\fR returns the form's current option bits.
-
-The following options are defined (all are on by default):
-.TP 5
-O_NL_OVERLOAD
-Overload the \fBREQ_NEW_LINE\fR forms driver request so that calling it at the
-end of a field goes to the next field.
-.TP 5
-O_BS_OVERLOAD
-Overload the \fBREQ_DEL_PREV\fR forms driver request so that calling it at the
-beginning of a field goes to the previous field.
-.SH RETURN VALUE
-Except for \fBform_opts\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_page.3x b/ncurses-5.3/man/form_page.3x
deleted file mode 100644
index fce7775..0000000
--- a/ncurses-5.3/man/form_page.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-'\" 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$
-.TH form_page 3X ""
-.SH NAME
-\fBform_page\fR - set and get form page number
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_current_field(FORM *form, FIELD *field);
-.br
-FIELD *current_field(const FORM *);
-.br
-int set_form_page(FORM *form, int n);
-.br
-int form_page(const FORM *form);
-.br
-int field_index(const FIELD *field);
-.br
-.SH DESCRIPTION
-The function \fBset_current field\fR sets the current field of the given
-form; \fBcurrent_field\fR returns the current field of the given form.
-.PP
-The function \fBset_form_page\fR sets the form's page number (goes to page
-\fIn\fR of the form).
-.PP
-The function \fBform_page\fR returns the form's current page number.
-.PP
-The function \fBfield_index\fR returns the index of the field in the
-field array of the form it is connected to. It returns \fBERR\fR if
-the argument is the null pointer or the field is not connected.
-.SH RETURN VALUE
-Except for \fBform_page\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_INVALID_FIELD\fR
-Contents of a field are not valid.
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The form driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_post.3x b/ncurses-5.3/man/form_post.3x
deleted file mode 100644
index c8b119f..0000000
--- a/ncurses-5.3/man/form_post.3x
+++ /dev/null
@@ -1,90 +0,0 @@
-'\" 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$
-.TH form_post 3X ""
-.SH NAME
-\fBform_post\fR - write or erase forms from associated subwindows
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int post_form(FORM *form);
-.br
-int unpost_form(FORM *form);
-.br
-.SH DESCRIPTION
-The function \fBpost_form\fR displays a form to its associated subwindow. To
-trigger physical display of the subwindow, use \fBrefresh\fR or some equivalent
-\fBcurses\fR routine (the implicit \fBdoupdate\fR triggered by an \fBcurses\fR
-input request will do).
-
-The function \fBunpost_form\fR erases form from its associated subwindow.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form has already been posted.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NO_ROOM\fR
-Form is too large for its window.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the form.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_requestname.3x b/ncurses-5.3/man/form_requestname.3x
deleted file mode 100644
index 8b3f13d..0000000
--- a/ncurses-5.3/man/form_requestname.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-'\" 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$
-.TH form_requestname 3X ""
-.SH NAME
-\fBform_requestname\fR - handle printable form request names
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-const char *form_request_name(int request);
-.br
-int form_request_by_name(const char *name);
-.br
-.SH DESCRIPTION
-The function \fBform_request_name\fR returns the printable name of a form
-request code.
-.br
-The function \fBform_request_by_name\fR searches in the name-table for a request
-with the given name and returns its request code. Otherwise E_NO_MATCH is returned.
-.SH RETURN VALUE
-\fBform_request_name\fR returns \fBNULL\fR on error and sets errno
-to \fBE_BAD_ARGUMENT\fR.
-.br
-\fBform_request_by_name\fR returns \fBE_NO_MATCH\fR on error.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.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 AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_userptr.3x b/ncurses-5.3/man/form_userptr.3x
deleted file mode 100644
index b11220b..0000000
--- a/ncurses-5.3/man/form_userptr.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH form_userptr 3X ""
-.SH NAME
-\fBform_userptr\fR - associate application data with a form item
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_form_userptr(FORM *form, void *userptr);
-.br
-void* form_userptr(const FORM *form);
-.br
-.SH DESCRIPTION
-Every form and every form item has a field that can be used to hold
-application-specific data (that is, the form-driver code leaves it alone).
-These functions get and set the form user pointer field.
-.SH RETURN VALUE
-The function \fBform_userptr\fR returns \fBNULL\fR on error.
-The function \fBset_form_userptr\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-
-The user pointer should be a void pointer. We leave it as a char pointer for
-SVr4 compatibility.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/form_win.3x b/ncurses-5.3/man/form_win.3x
deleted file mode 100644
index 951c814..0000000
--- a/ncurses-5.3/man/form_win.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-'\" 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$
-.TH form_win 3X ""
-.SH NAME
-\fBform_win\fR - make and break form window and subwindow associations
-.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
-int set_form_win(FORM *form, WINDOW *win);
-.br
-WINDOW *form_win(const FORM *form);
-.br
-int set_form_sub(FORM *form, WINDOW *sub);
-.br
-WINDOW *form_sub(const FORM *form);
-.br
-int scale_form(const FORM *form, int *rows, int *columns);
-.br
-.SH DESCRIPTION
-Every form has an associated pair of \fBcurses\fR 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 code uses \fBstdscr\fR for both.
-
-In the \fBset_\fR functions, window argument of \fBNULL\fR is treated as though
-it were \fBstsdcr\fR. A form argument of \fBNULL\fR is treated as a request
-to change the system default form window or subwindow.
-
-The function \fBscale_form\fR returns the minimum size required for the
-subwindow of \fIform\fR.
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Routines that return
-an integer return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The form has already been posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the form.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBform\fR(3X).
-.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V forms library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/infocmp.1m b/ncurses-5.3/man/infocmp.1m
deleted file mode 100644
index f863a8d..0000000
--- a/ncurses-5.3/man/infocmp.1m
+++ /dev/null
@@ -1,410 +0,0 @@
-'\" 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$
-.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-\
-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
- [\fItermname\fR...]
-.SH DESCRIPTION
-\fBinfocmp\fR can be used to compare a binary \fBterminfo\fR entry with other
-terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the
-\fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the
-binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean
-fields will be printed first, followed by the numeric fields, followed by the
-string fields.
-.SS Default Options
-If no options are specified and zero or one \fItermnames\fR are specified, the
-\fB-I\fR option will be assumed. If more than one \fItermname\fR is specified,
-the \fB-d\fR option will be assumed.
-.SS Comparison Options [-d] [-c] [-n]
-\fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal
-\fItermname\fR with each of the descriptions given by the entries for the other
-terminal's \fItermnames\fR. If a capability is defined for only one of the
-terminals, the value returned will depend on the type of the capability:
-\fBF\fR for boolean variables, \fB-1\fR for integer variables, and \fBNULL\fR
-for string variables.
-
-The \fB-d\fR option produces a list of each capability that is different
-between two entries. This option is useful to show the difference between two
-entries, created by different people, for the same or similar terminals.
-
-The \fB-c\fR option produces a list of each capability that is common between
-two entries. Capabilities that are not set are ignored. This option can be
-used as a quick check to see if the \fB-u\fR option is worth using.
-
-The \fB-n\fR option produces a list of each capability that is in neither
-entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR
-will be used for both of the \fItermnames\fR. This can be used as a quick
-check to see if anything was left out of a description.
-.SS Source Listing Options [-I] [-L] [-C] [-r]
-The \fB-I\fR, \fB-L\fR, and \fB-C\fR options will produce a source listing for
-each terminal named.
-
-.TS
-center tab(/) ;
-l l .
-\fB-I\fR/use the \fBterminfo\fR names
-\fB-L\fR/use the long C variable name listed in <\fBterm.h\fR>
-\fB-C\fR/use the \fBtermcap\fR names
-\fB-r\fR/when using \fB-C\fR, put out all capabilities in \fBtermcap\fR form
-.TE
-
-If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
-used for the terminal name.
-
-The source produced by the \fB-C\fR option may be used directly as a
-\fBtermcap\fR entry, but not all parameterized strings can be changed to
-the \fBtermcap\fR format. \fBinfocmp\fR will attempt to convert most of the
-parameterized information, and anything not converted will be plainly marked in
-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 \fBtermcap\fR expects it. Mandatory
-padding (padding information with a trailing '/') will become optional.
-
-All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
-are derivable from other \fBterminfo\fR variables, will be output. Not all
-\fBterminfo\fR capabilities will be translated; only those variables which were
-part of \fBtermcap\fR will normally be output. Specifying the \fB-r\fR option
-will take off this restriction, allowing all capabilities to be output in
-\fItermcap\fR form.
-
-Note that because padding is collected to the beginning of the capability, not
-all capabilities are output. Mandatory padding is not supported. Because
-\fBtermcap\fR strings are not as flexible, it is not always possible to convert
-a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. A
-subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format
-will not necessarily reproduce the original \fBterminfo\fR
-source.
-
-Some common \fBterminfo\fR parameter sequences, their \fBtermcap\fR
-equivalents, and some terminal types which commonly have such sequences, are:
-
-.TS
-center tab(/) ;
-l c l
-l l l.
-\fBterminfo/termcap\fR/Representative Terminals
-=
-\fB%p1%c/%.\fR/adm
-\fB%p1%d/%d\fR/hp, ANSI standard, vt100
-\fB%p1%'x'%+%c/%+x\fR/concept
-\fB%i/%i\fRq/ANSI standard, vt100
-\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept
-\fB%p2\fR is printed before \fB%p1/%r\fR/hp
-.TE
-.SS Use= Option [-u]
-The \fB-u\fR option produces a \fBterminfo\fR source description of the first
-terminal \fItermname\fR which is relative to the sum of the descriptions given
-by the entries for the other terminals \fItermnames\fR. It does this by
-analyzing the differences between the first \fItermname\fR and the other
-\fItermnames\fR and producing a description with \fBuse=\fR fields for the
-other terminals. In this manner, it is possible to retrofit generic terminfo
-entries into a terminal's description. Or, if two similar terminals exist, but
-were coded at different times or by different people so that each description
-is a full description, using \fBinfocmp\fR will show what can be done to change
-one description to be relative to the other.
-
-A capability will get printed with an at-sign (@) if it no longer exists in the
-first \fItermname\fR, but one of the other \fItermname\fR entries contains a
-value for it. A capability's value gets printed if the value in the first
-\fItermname\fR is not found in any of the other \fItermname\fR entries, or if
-the first of the other \fItermname\fR entries that has this capability gives a
-different value for the capability than that in the first \fItermname\fR.
-
-The order of the other \fItermname\fR entries is significant. Since the
-terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities,
-specifying two \fBuse=\fR entries that contain differing entries for the same
-capabilities will produce different results depending on the order that the
-entries are given in. \fBinfocmp\fR will flag any such inconsistencies between
-the other \fItermname\fR entries as they are found.
-
-Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that
-contains that capability will cause the second specification to be ignored.
-Using \fBinfocmp\fR to recreate a description can be a useful check to make
-sure that everything 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 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
-terminal is not found in that location, the system \fBterminfo\fR database,
-in \fB@TERMINFO@\fR, will be used. The options \fB-A\fR
-and \fB-B\fR may be used to override this location. The \fB-A\fR option will
-set \fBTERMINFO\fR for the first \fItermname\fR and the \fB-B\fR option will
-set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to
-compare descriptions for a terminal with the same name located in two different
-databases. This is useful for comparing descriptions for the same terminal
-created by different people.
-.SS Other Options
-.TP 5
-\fB-1\fR
-causes the fields to be printed out one to a line. Otherwise,
-the fields will be printed several to a line to a maximum width
-of 60 characters.
-.TP
-\fB-a\fR
-tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding
-them. Capabilities are commented by prefixing them with a period.
-.TP 5
-\fB-E\fR
-Dump the capabilities of the given terminal as tables, needed in
-the C initializer for a
-TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
-This option is useful for preparing versions 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.
-.sp
-Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP
-options was not needed; but support for extended names required making
-the arrays of terminal capabilities separate from the TERMTYPE structure.
-.TP 5
-\fB-e\fR
-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.
-.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.
-.TP 5
-\fB-i\fR
-Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset
-(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. For each string, the
-code tries to analyze it into actions in terms of the other capabilities in the
-entry, certain X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC VT-series
-private modes (the set of recognized special sequences has been selected for
-completeness over the existing terminfo database). Each report line consists
-of the capability name, followed by a colon and space, followed by a printable
-expansion of the capability string with sections matching recognized actions
-translated into {}-bracketed descriptions. Here is a list of the DEC/ANSI
-special sequences recognized:
-
-.TS
-center tab(/) ;
-l l
-l l.
-Action/Meaning
-=
-RIS/full reset
-SC/save cursor
-RC/restore cursor
-LL/home-down
-RSR/reset scroll region
-
-ISO DEC G0/enable DEC graphics for G0
-ISO UK G0/enable UK chars for G0
-ISO US G0/enable US chars for G0
-ISO DEC G1/enable DEC graphics for G1
-ISO UK G1/enable UK chars for G1
-ISO US G1/enable US chars for G1
-
-DECPAM/application keypad mode
-DECPNM/normal keypad mode
-DECANSI/enter ANSI mode
-
-DEC[+-]CKM/application cursor keys
-DEC[+-]ANM/set VT52 mode
-DEC[+-]COLM/132-column mode
-DEC[+-]SCLM/smooth scroll
-DEC[+-]SCNM/reverse video mode
-DEC[+-]OM/origin mode
-DEC[+-]AWM/wraparound mode
-DEC[+-]ARM/auto-repeat mode
-.TE
-.sp
-It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set
-Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and
-REVERSE. All but NORMAL may be prefixed with `+' (turn on) or `-' (turn off).
-
-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-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.
-.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-.SH EXTENSIONS
-The
-\fB-E\fR,
-\fB-F\fR,
-\fB-G\fR,
-\fB-R\fR,
-\fB-T\fR,
-\fB-V\fR,
-\fB-a\fR,
-\fB-e\fR,
-\fB-f\fR,
-\fB-g\fR,
-\fB-i\fR,
-\fB-l\fR,
-\fB-p\fR,
-\fB-q\fR and
-\fB-t\fR
-options are not supported in SVr4 curses.
-
-The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's.
-Actual BSD curses versions will have a more restricted set. To see only the
-4.4BSD set, use -r -RBSD.
-.SH BUGS
-The -F option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
-.SH SEE ALSO
-\fBinfocmp\fR(1M), \fBcaptoinfo\fR(1M), \fBinfotocap\fR(1M),
-\fBtic\fR(1M), \fBtoe\fR(1M),
-\fBcurses\fR(3X), \fBterminfo\fR(\*n).
-.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
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/infotocap.1m b/ncurses-5.3/man/infotocap.1m
deleted file mode 100644
index 840d9c0..0000000
--- a/ncurses-5.3/man/infotocap.1m
+++ /dev/null
@@ -1,74 +0,0 @@
-'\" 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$
-.TH infotocap 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
-.SH SYNOPSIS
-\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
-.SH DESCRIPTION
-\fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions. For each
-one found, an equivalent \fBtermcap\fR description is written to standard
-output. Terminfo \fBuse\fR capabilities are translated directly to termcap
-\fBtc\fR capabilities.
-.TP 5
-\fB-v\fR
-print out tracing information on standard error as the program runs.
-.TP 5
-\fB-V\fR
-print out the version of the program in use on standard error and exit.
-.TP 5
-\fB-1\fR
-cause the fields to print out one to a line. Otherwise, the fields
-will be printed several to a line to a maximum width of 60
-characters.
-.TP 5
-\fB-w\fR
-change the output to \fIwidth\fR characters.
-.SH FILES
-.TP 20
-\*d
-Compiled terminal description database.
-.SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode.
-You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
-.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBtic\fR(1M),
-\fBinfocmp\fR(1M),
-\fBterminfo\fR(\*n)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/keybound.3x b/ncurses-5.3/man/keybound.3x
deleted file mode 100644
index 90dc327..0000000
--- a/ncurses-5.3/man/keybound.3x
+++ /dev/null
@@ -1,61 +0,0 @@
-.\"***************************************************************************
-.\" 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 <dickey@clark.net> 1999
-.\"
-.\" $Id$
-.TH keyok 3X ""
-.SH NAME
-\fBkeybound\fP \- return definition of keycode
-.SH SYNOPSIS
-\fB#include <curses.h>\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 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 SEE ALSO
-\fBdefine_key\fR(3X),
-\fBkeyok\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/keyok.3x b/ncurses-5.3/man/keyok.3x
deleted file mode 100644
index 1bc73a1..0000000
--- a/ncurses-5.3/man/keyok.3x
+++ /dev/null
@@ -1,63 +0,0 @@
-.\"***************************************************************************
-.\" 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 <dickey@clark.net> 1997
-.\"
-.\" $Id$
-.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 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 PORTABILITY
-These routines are specific to ncurses. They were not supported on
-Version 7, BSD or System V implementations. It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
-.SH SEE ALSO
-\fBdefine_key\fR(3X).
-.SH AUTHOR
-Thomas Dickey.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/make_sed.sh b/ncurses-5.3/man/make_sed.sh
deleted file mode 100755
index 5e383c3..0000000
--- a/ncurses-5.3/man/make_sed.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-# Construct a sed-script to perform renaming within man-pages. Originally
-# written in much simpler form, this one accounts for the common cases of
-# section-names in man-pages.
-
-if test $# != 1 ; then
- echo '? expected a single filename'
- exit 1
-fi
-
-COL=col$$
-INPUT=input$$
-UPPER=upper$$
-SCRIPT=script$$
-RESULT=result$$
-rm -f $UPPER $SCRIPT $RESULT
-trap "rm -f $COL.* $INPUT $UPPER $SCRIPT $RESULT" 0 1 2 5 15
-fgrep -v \# $1 | \
-sed -e 's/[ ]\+/ /g' >$INPUT
-
-for F in 1 2 3 4
-do
-sed -e 's/\./ /g' $INPUT | \
-cut -f $F > $COL.$F
-done
-for F in 2 4
-do
- tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ <$COL.$F >$UPPER
- mv $UPPER $COL.$F
-done
-paste $COL.* | \
-sed -e 's/^/s\/\\</' \
- -e 's/$/\//' >$UPPER
-
-# Do the TH lines
-sed -e 's/\//\/TH /' \
- -e 's/ / /' \
- -e 's/ / ""\/TH /' \
- -e 's/ / /' \
- -e 's/\/$/ ""\//' \
- $UPPER >>$RESULT
-
-# Do the embedded references
-sed -e 's/</<fB/' \
- -e 's/ /\\\\fR(/' \
- -e 's/ /)\/fB/' \
- -e 's/ /\\\\fR(/' \
- -e 's/\/$/)\//' \
- $UPPER >>$RESULT
-
-# Finally, send the result to standard output
-cat $RESULT
diff --git a/ncurses-5.3/man/man_db.renames b/ncurses-5.3/man/man_db.renames
deleted file mode 100644
index 012d78b..0000000
--- a/ncurses-5.3/man/man_db.renames
+++ /dev/null
@@ -1,138 +0,0 @@
-# $Id$
-# Manual-page renamings for the man_db program
-#
-# Files:
-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_addwstr.3x addwstr.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_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_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_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_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_inwstr.3x inwstr.3ncurses
-curs_kernel.3x kernel.3ncurses
-curs_mouse.3x mouse.3ncurses
-curs_move.3x move.3ncurses
-curs_outopts.3x outopts.3ncurses
-curs_overlay.3x overlay.3ncurses
-curs_pad.3x pad.3ncurses
-curs_print.3x print.3ncurses
-curs_printw.3x printw.3ncurses
-curs_refresh.3x refresh.3ncurses
-curs_scanw.3x scanw.3ncurses
-curs_scr_dump.3x scr_dump.3ncurses
-curs_scroll.3x scroll.3ncurses
-curs_slk.3x slk.3ncurses
-curs_termattrs.3x termattrs.3ncurses
-curs_termcap.3x termcap.3ncurses
-curs_terminfo.3x terminfo.3ncurses
-curs_touch.3x touch.3ncurses
-curs_trace.3x trace.3ncurses
-curs_util.3x util.3ncurses
-curs_window.3x window.3ncurses
-curses.3x ncurses.3ncurses
-default_colors.3x default_colors.3ncurses
-define_key.3x define_key.3ncurses
-form.3x form.3form
-form_cursor.3x cursor.3form
-form_data.3x data.3form
-form_driver.3x driver.3form
-form_field.3x field.3form
-form_field_attributes.3x field_attributes.3form
-form_field_buffer.3x field_buffer.3form
-form_field_info.3x field_info.3form
-form_field_just.3x field_just.3form
-form_field_new.3x field_new.3form
-form_field_opts.3x field_opts.3form
-form_field_userptr.3x field_userptr.3form
-form_field_validation.3x field_validation.3form
-form_fieldtype.3x fieldtype.3form
-form_hook.3x hook.3form
-form_new.3x new.3form
-form_new_page.3x new_page.3form
-form_opts.3x opts.3form
-form_page.3x page.3form
-form_post.3x post.3form
-form_requestname.3x requestname.3form
-form_userptr.3x userptr.3form
-form_win.3x win.3form
-infocmp.1m infocmp.1
-infotocap.1m infotocap.1
-keybound.3x keybound.3ncurses
-keyok.3x keyok.3ncurses
-menu.3x menu.3menu
-menu_attributes.3x attributes.3menu
-menu_cursor.3x cursor.3menu
-menu_driver.3x driver.3menu
-menu_format.3x format.3menu
-menu_hook.3x hook.3menu
-menu_items.3x items.3menu
-menu_mark.3x mark.3menu
-menu_new.3x new.3menu
-menu_opts.3x opts.3menu
-menu_pattern.3x pattern.3menu
-menu_post.3x post.3menu
-menu_requestname.3x requestname.3menu
-menu_spacing.3x spacing.3menu
-menu_userptr.3x userptr.3menu
-menu_win.3x win.3menu
-mitem_current.3x menu_current.3menu
-mitem_name.3x menu_name.3menu
-mitem_new.3x menu_new.3menu
-mitem_opts.3x menu_opts.3menu
-mitem_userptr.3x menu_userptr.3menu
-mitem_value.3x menu_value.3menu
-mitem_visible.3x menu_visible.3menu
-ncurses.3x ncurses.3ncurses
-panel.3x panel.3curses
-printf.3s printf.3
-putc.3s putc.3
-resizeterm.3x resizeterm.3ncurses
-scanf.3s scanf.3
-system.3s system.3
-term.5 term.5
-term.7 term.7
-terminfo.5 terminfo.5
-terminfo.\\\*n terminfo.5
-tic.1m tic.1
-toe.1m toe.1
-tput.1 tput.1
-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
diff --git a/ncurses-5.3/man/manlinks.sed b/ncurses-5.3/man/manlinks.sed
deleted file mode 100644
index 40e13d3..0000000
--- a/ncurses-5.3/man/manlinks.sed
+++ /dev/null
@@ -1,69 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-# Given a manpage (nroff) as input, writes a list of the names that are
-# listed in the "NAME" section, i.e., the names that we would like to use
-# as aliases for the manpage -T.Dickey
-/^'\\"/d
-/\.\\"/d
-/^\.br/d
-/^\.sp/d
-s/^\.IX//
-s/\\f.//g
-s/[:,]/ /g
-s/^[ ][ ]*//
-s/[ ][ ]*$//
-s/[ ][ ]*/ /g
-s/\.SH[ ][ ]*/.SH_(/
-#
-/^\.SH_(NAME/,/^\.SH_(SYNOPSIS/{
-s/\\-.*/ -/
-/ -/{
- s/ -.*//
- s/ /\
-/g
-}
-/^-/{
- d
-}
-s/ /\
-/g
-}
-/^\.SH_(SYNOPSIS/,/^\.SH_(DESCRIPTION/{
- /^#/d
- /^[^(]*$/d
- s/^\([^ (]* [^ (]* [*]*\)//g
- s/^\([^ (]* [*]*\)//g
- s/\.SH_(/.SH_/
- s/(.*//
- s/\.SH_/.SH_(/
-}
-/^\.SH_(DESCRIPTION/,${
- d
-}
-/^\./d
diff --git a/ncurses-5.3/man/menu.3x b/ncurses-5.3/man/menu.3x
deleted file mode 100644
index b2de505..0000000
--- a/ncurses-5.3/man/menu.3x
+++ /dev/null
@@ -1,190 +0,0 @@
-'\" 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$
-.TH menu 3X ""
-.SH NAME
-\fBmenu\fR - curses extension for programming menus
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-.SH DESCRIPTION
-The \fBmenu\fR library provides terminal-independent facilities for composing
-menu systems on character-cell terminals. The library includes: item routines,
-which create and modify menu items; and menu routines, which group items into
-menus, display menus on the screen, and handle interaction with the user.
-
-The \fBmenu\fR library uses the \fBcurses\fR libraries, and a curses
-initialization routine such as \fBinitscr\fR must be called before using any of
-these functions. To use the \fBmenu\fR library, link with the options
-\fB-lmenu -lcurses\fR.
-
-.SS Current Default Values for Item Attributes
-
-The \fBmenu\fR library maintains a default value for item attributes. You can
-get or set this default by calling the appropriate \fBget_\fR or \fBset_\fR
-routine with a \fBNULL\fR item pointer. Changing this default with a
-\fBset_\fR function affects future item creations, but does not change the
-rendering of items already created.
-
-.SS Routine Name Index
-
-The following table lists each \fBmenu\fR routine and the name of
-the manual page on which it is described.
-
-.TS
-l l .
-\fBcurses\fR Routine Name Manual Page Name
-=
-current_item \fBmitem_current\fR(3X)
-free_item \fBmitem_new\fR(3X)
-free_menu \fBmenu_new\fR(3X)
-item_count \fBmenu_items\fR(3X)
-item_description \fBmitem_name\fR(3X)
-item_index \fBmitem_current\fR(3X)
-item_init \fBmenu_hook\fR(3X)
-item_name \fBmitem_name\fR(3X)
-item_opts \fBmitem_opts\fR(3X)
-item_opts_off \fBmitem_opts\fR(3X)
-item_opts_on \fBmitem_opts\fR(3X)
-item_term \fBmenu_hook\fR(3X)
-item_userptr \fBmitem_userptr\fR(3X)
-item_value \fBmitem_value\fR(3X)
-item_visible \fBmitem_visible\fR(3X)
-menu_back \fBmenu_attributes\fR(3X)
-menu_driver \fBmenu_driver\fR(3X)
-menu_fore \fBmenu_attributes\fR(3X)
-menu_format \fBmenu_format\fR(3X)
-menu_grey \fBmenu_attributes\fR(3X)
-menu_init \fBmenu_hook\fR(3X)
-menu_items \fBmenu_items\fR(3X)
-menu_mark \fBmenu_mark\fR(3X)
-menu_opts \fBmenu_opts\fR(3X)
-menu_opts_off \fBmenu_opts\fR(3X)
-menu_opts_on \fBmenu_opts\fR(3X)
-menu_pad \fBmenu_attributes\fR(3X)
-menu_pattern \fBmenu_pattern\fR(3X)
-menu_request_by_name \fBmenu_requestname\fR(3X)
-menu_request_name \fBmenu_requestname\fR(3X)
-menu_spacing \fBmenu_spacing\fR(3X)
-menu_sub \fBmenu_win\fR(3X)
-menu_term \fBmenu_hook\fR(3X)
-menu_userptr \fBmenu_userptr\fR(3X)
-menu_win \fBmenu_win\fR(3X)
-new_item \fBmitem_new\fR(3X)
-new_menu \fBmenu_new\fR(3X)
-pos_menu_cursor \fBmenu_cursor\fR(3X)
-post_menu \fBmenu_post\fR(3X)
-scale_menu \fBmenu_win\fR(3X)
-set_current_item \fBmitem_current\fR(3X)
-set_item_init \fBmenu_hook\fR(3X)
-set_item_opts \fBmitem_opts\fR(3X)
-set_item_term \fBmenu_hook\fR(3X)
-set_item_userptr \fBmitem_userptr\fR(3X)
-set_item_value \fBmitem_value\fR(3X)
-set_menu_back \fBmenu_attributes\fR(3X)
-set_menu_fore \fBmenu_attributes\fR(3X)
-set_menu_format \fBmenu_format\fR(3X)
-set_menu_grey \fBmenu_attributes\fR(3X)
-set_menu_init \fBmenu_hook\fR(3X)
-set_menu_items \fBmenu_items\fR(3X)
-set_menu_mark \fBmenu_mark\fR(3X)
-set_menu_opts \fBmitem_opts\fR(3X)
-set_menu_pad \fBmenu_attributes\fR(3X)
-set_menu_pattern \fBmenu_pattern\fR(3X)
-set_menu_spacing \fBmenu_spacing\fR(3X)
-set_menu_sub \fBmenu_win\fR(3X)
-set_menu_term \fBmenu_hook\fR(3X)
-set_menu_userptr \fBmenu_userptr\fR(3X)
-set_menu_win \fBmenu_win\fR(3X)
-set_top_row \fBmitem_current\fR(3X)
-top_row \fBmitem_current\fR(3X)
-unpost_menu \fBmenu_post\fR(3X)
-.TE
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Routines that return
-an integer return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu is already posted.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NO_ROOM\fR
-Menu is too large for its window.
-.TP 5
-\fBE_NOT_POSTED\fR
-The menu has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The menu driver code saw an unknown request code.
-.TP 5
-\fBE_NO_MATCH\fR
-Character failed to match.
-.TP 5
-\fBE_NOT_SELECTABLE\fR
-The designated item cannot be selected.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The menu driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
-
-In your library list, libmenu.a should be before libncurses.a; that is,
-you want to say `-lmenu -lncurses', not the other way around (which would
-give you a link error using GNU \fBld\fR(1) and many other linkers).
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_attributes.3x b/ncurses-5.3/man/menu_attributes.3x
deleted file mode 100644
index 1ca55de..0000000
--- a/ncurses-5.3/man/menu_attributes.3x
+++ /dev/null
@@ -1,100 +0,0 @@
-'\" 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$
-.TH menu_attributes 3X ""
-.SH NAME
-\fBmenu_attributes\fR - color and attribute control for menus
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_fore(MENU *menu, chtype attr);
-.br
-chtype menu_fore(const MENU *menu);
-.br
-int set_menu_back(MENU *menu, chtype attr);
-.br
-chtype menu_back(const MENU *menu);
-.br
-int set_menu_grey(MENU *menu, chtype attr);
-.br
-chtype menu_grey(const MENU *menu);
-.br
-int set_menu_pad(MENU *menu, int pad);
-.br
-int menu_pad(const MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBset_menu_fore\fR sets the foreground attribute of
-\fImenu\fR. This is the highlight used for selected menu items.
-\fBmenu_fore\fR returns the foreground attribute. The default
-is \fBA_STANDOUT\fR.
-
-The function \fBset_menu_back\fR sets the background attribute of
-\fImenu\fR. This is the highlight used for selectable (but not currently
-selected) menu items. The function \fBmenu_back\fR returns the background
-attribute. The default is \fBA_NORMAL\fR.
-
-The function \fBset_menu_grey\fR sets the grey attribute of \fImenu\fR. This is
-the highlight used for un-selectable menu items in menus that permit more than
-one selection. The function \fBmenu_grey\fR returns the grey attribute.
-The default is \fBA_UNDERLINE\fR.
-
-The function \fBset_menu_pad\fR sets the character used to fill the space
-between the name and description parts of a menu item. \fBmenu_pad\fR returns
-the given menu's pad character. The default is a blank.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed
-descriptions of the entry points.
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_cursor.3x b/ncurses-5.3/man/menu_cursor.3x
deleted file mode 100644
index d0e9da6..0000000
--- a/ncurses-5.3/man/menu_cursor.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH menu_cursor 3X ""
-.SH NAME
-\fBmenu_cursor\fR - position a menu's cursor
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int pos_menu_cursor(const MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBpos_menu_cursor\fR restores the cursor to the current position
-associated with the menu's selected item. This is useful after \fBcurses\fR
-routines have been called to do screen-painting in response to a menu select.
-.SH RETURN VALUE
-This routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_NOT_POSTED\fR
-The menu has not been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_driver.3x b/ncurses-5.3/man/menu_driver.3x
deleted file mode 100644
index 8bcc65a..0000000
--- a/ncurses-5.3/man/menu_driver.3x
+++ /dev/null
@@ -1,170 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH menu_driver 3X ""
-.SH NAME
-\fBmenu_driver\fR - command-processing loop of the menu system
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int menu_driver(MENU *menu, int c);
-.br
-.SH DESCRIPTION
-Once a menu has been posted (displayed), you should funnel input events to it
-through \fBmenu_driver\fR. This routine has three major input cases; either
-the input is a menu navigation request, it's a printable ASCII character or it
-is the KEY_MOUSE special key associated with an mouse event.
-The menu driver requests are as follows:
-.TP 5
-REQ_LEFT_ITEM
-Move left to an item.
-.TP 5
-REQ_RIGHT_ITEM
-Move right to an item.
-.TP 5
-REQ_UP_ITEM
-Move up to an item.
-.TP 5
-REQ_DOWN_ITEM
-Move down to an item.
-.TP 5
-REQ_SCR_ULINE
-Scroll up a line.
-.TP 5
-REQ_SCR_DLINE
-Scroll down a line.
-.TP 5
-REQ_SCR_DPAGE
-Scroll down a page.
-.TP 5
-REQ_SCR_UPAGE
-Scroll up a page.
-.TP 5
-REQ_FIRST_ITEM
-Move to the first item.
-.TP 5
-REQ_LAST_ITEM
-Move to the last item.
-.TP 5
-REQ_NEXT_ITEM
-Move to the next item.
-.TP 5
-REQ_PREV_ITEM
-Move to the previous item.
-.TP 5
-REQ_TOGGLE_ITEM
-Select/deselect an item.
-.TP 5
-REQ_CLEAR_PATTERN
-Clear the menu pattern buffer.
-.TP 5
-REQ_BACK_PATTERN
-Delete the previous character from the pattern buffer.
-.TP 5
-REQ_NEXT_MATCH
-Move to the next item matching the pattern match.
-.TP 5
-REQ_PREV_MATCH
-Move to the previous item matching the pattern match.
-.PP
-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, \fBmenu_driver\fR returns
-\fBE_NO_MATCH\fR and deletes the appended character from the buffer.
-.PP
-If the second argument is one of the above pre-defined requests, the
-corresponding action is performed.
-.PP
-If the second argument is the KEY_MOUSE special key, the associated
-mouse event is translated into one of the above pre-defined requests.
-Currently only clicks in the user window (e.g. inside the menu display
-area or the decoration window) are handled. If you click above the
-display region of the menu, a REQ_SCR_ULINE is generated, if you
-doubleclick a REQ_SCR_UPAGE is generated and if you tripleclick a
-REQ_FIRST_ITEM is generated. If you click below the display region of
-the menu, a REQ_SCR_DLINE is generated, if you doubleclick a REQ_SCR_DPAGE
-is generated and if you tripleclick a REQ_LAST_ITEM is generated. If you
-click at an item inside the display area of the menu, the menu cursor
-is positioned to that item. If you double-click at an item a REQ_TOGGLE_ITEM
-is generated and \fBE_UNKNOWN_COMMAND\fR is returned. This return value makes
-sense, because a double click usually means that an item-specific action should
-be returned. It's exactly the purpose of this return value to signal that an
-application specific command should be executed. If a translation
-into a request was done, \fBmenu_driver\fR returns the result of this request.
-If you clicked outside the user window or the mouse event couldn't be translated
-into a menu request an \fBE_REQUEST_DENIED\fR is returned.
-.PP
-If the second argument is neither printable ASCII nor one of the above
-pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific
-command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands
-should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these
-pre-defined requests.
-.SH RETURN VALUE
-\fBmenu_driver\fR return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NOT_POSTED\fR
-The menu has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The menu driver code saw an unknown request code.
-.TP 5
-\fBE_NO_MATCH\fR
-Character failed to match.
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The menu driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header files
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions. The support for mouse events is ncurses specific.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_format.3x b/ncurses-5.3/man/menu_format.3x
deleted file mode 100644
index 3fefd57..0000000
--- a/ncurses-5.3/man/menu_format.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH menu_format 3X ""
-.SH NAME
-\fBmenu_format\fR - set and get menu sizes
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_format(MENU *menu, int rows, int cols);
-.br
-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
-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, \fBpost_menu()\fR will fail.
-
-The default format is 16 rows, 1 column. Calling \fBset_menu_format\fR with a
-null menu pointer will change this default. A zero row or column argument to
-\fBset_menu_format\fR is interpreted as a request not to change the current
-value.
-
-The function \fBmenu_format\fR returns the maximum-size constraints for the
-given menu into the storage addressed by \fBrows\fR and \fBcols\fR.
-.SH RETURN VALUE
-These routines returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu is already posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_hook.3x b/ncurses-5.3/man/menu_hook.3x
deleted file mode 100644
index 17561fd..0000000
--- a/ncurses-5.3/man/menu_hook.3x
+++ /dev/null
@@ -1,101 +0,0 @@
-'\" 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$
-.TH menu_hook 3X ""
-.SH NAME
-\fBmenu_hook\fR - set hooks for automatic invocation by applications
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_item_init(MENU *menu, void (*func)(MENU *));
-.br
-void (*)(MENU *) item_init(const MENU *menu);
-.br
-int set_item_term(MENU *menu, void (*func)(MENU *));
-.br
-void (*)(MENU *) item_term(const MENU *menu);
-.br
-int set_menu_init(MENU *menu, void (*func)(MENU *));
-.br
-void (*)(MENU *) menu_init(const MENU *menu);
-.br
-int set_menu_term(MENU *menu, void (*func)(MENU *));
-.br
-void (*)(MENU *) menu_term(const MENU *menu);
-.br
-.SH DESCRIPTION
-These functions make it possible to set hook functions to be called at various
-points in the automatic processing of input event codes by \fBmenu_driver\fR.
-
-The function \fBset_item_init\fR sets a hook to be called at menu-post time and
-each time the selected item changes (after the change). \fBitem_init\fR
-returns the current item init hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_item_term\fR sets a hook to be called at menu-unpost time
-and each time the selected item changes (before the change). \fBitem_term\fR
-returns the current item term hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_menu_init\fR sets a hook to be called at menu-post time and
-just after the top row on the menu changes once it is posted. \fBmenu_init\fR
-returns the current menu init hook, if any (\fBNULL\fR if there is no such
-hook).
-
-The function \fBset_menu_term\fR sets a hook to be called at menu-unpost time
-and just before the top row on the menu changes once it is posted.
-\fBmenu_term\fR returns the current menu term hook, if any (\fBNULL\fR if there
-is no such hook).
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Other routines
-return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_items.3x b/ncurses-5.3/man/menu_items.3x
deleted file mode 100644
index 3c9b9a5..0000000
--- a/ncurses-5.3/man/menu_items.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-'\" 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$
-.TH menu_items 3X ""
-.SH NAME
-\fBmenu_items\fR - make and break connections between items and menus
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_items(MENU *menu, ITEM **items);
-.br
-ITEM **menu_items(const MENU *menu);
-.br
-int item_count(const MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBset_menu_items\fR changes the item pointer array of the given
-\fImenu\fR. The array must be terminated by a \fBNULL\fR.
-
-The function \fBmenu_items\fR returns the item array of the given menu.
-
-The function \fBitem_count\fR returns the count of items in \fImenu\fR.
-.SH RETURN VALUES
-The function \fBmenu_items\fR returns \fBNULL\fR on error.
-
-The function \fBitem_count\fR returns \fBERR\fR (the general \fBcurses\fR error
-return value) on error.
-
-The function \fBset_menu_items\fR returns one of the following codes on error:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu is already posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-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 \fBitem_count\fR error value
-as -1 (which is the value of \fBERR\fR).
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_mark.3x b/ncurses-5.3/man/menu_mark.3x
deleted file mode 100644
index bae3805..0000000
--- a/ncurses-5.3/man/menu_mark.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH menu_mark 3X ""
-.SH NAME
-\fBmenu_mark\fR - get and set the menu mark string
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_mark(MENU *menu, const char *mark);
-.br
-const char *menu_mark(const MENU *menu);
-.br
-.SH DESCRIPTION
-In order to make menu selections visible on older terminals without
-highlighting or color capability, the menu library marks selected items
-in a menu with a prefix string.
-
-The function \fBset_menu_mark\fR sets the mark string for the given menu.
-Calling \fBset_menu_mark\fR 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.
-
-The default string is "-" (a dash). Calling \fBset_menu_mark\fR with
-a \fBNULL\fR menu argument will change this default.
-
-The function \fBmenu_mark\fR returns the menu's mark string (or \fBNULL\fR if
-there is none).
-.SH RETURN VALUE
-The function \fBmenu_mark\fR returns \fBNULL\fR on error. The function
-\fBset_menu_mark\fR may return the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_new.3x b/ncurses-5.3/man/menu_new.3x
deleted file mode 100644
index 27e1a59..0000000
--- a/ncurses-5.3/man/menu_new.3x
+++ /dev/null
@@ -1,79 +0,0 @@
-'\" 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$
-.TH menu_new 3X ""
-.SH NAME
-\fBmenu_new\fR - create and destroy menus
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-MENU *new_menu(ITEM **items);
-.br
-int free_menu(MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBnew_menu\fR creates a new menu connected to a specified item
-pointer array (which must be \fBNULL\fR-terminated).
-
-The function \fBfree_menu\fR disconnects \fImenu\fR from its item array
-and frees the storage allocated for the menu.
-.SH RETURN VALUE
-The function \fBnew_menu\fR returns \fBNULL\fR on error.
-
-The function \fBfree_menu\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu has already been posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_opts.3x b/ncurses-5.3/man/menu_opts.3x
deleted file mode 100644
index 0e6eee1..0000000
--- a/ncurses-5.3/man/menu_opts.3x
+++ /dev/null
@@ -1,104 +0,0 @@
-'\" 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$
-.TH menu_opts 3X ""
-.SH NAME
-\fBmenu_opts\fR - set and get menu options
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_opts(MENU *menu, OPTIONS opts);
-.br
-int menu_opts_on(MENU *menu, OPTIONS opts);
-.br
-int menu_opts_off(MENU *menu, OPTIONS opts);
-.br
-OPTIONS menu_opts(const MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBset_menu_opts\fR sets all the given menu's option bits (menu
-option bits may be logically-OR'ed together).
-
-The function \fBmenu_opts_on\fR turns on the given option bits, and leaves
-others alone.
-
-The function \fBmenu_opts_off\fR turns off the given option bits, and leaves
-others alone.
-
-The function \fBmenu_opts\fR returns the menu's current option bits.
-
-The following options are defined (all are on by default):
-.TP 5
-O_ONEVALUE
-Only one item can be selected for this menu.
-.TP 5
-O_SHOWDESC
-Display the item descriptions when the menu is posted.
-.TP 5
-O_ROWMAJOR
-Display the menu in row-major order.
-.TP 5
-O_IGNORECASE
-Ignore the case when pattern-matching.
-.TP 5
-O_SHOWMATCH
-Move the cursor to within the item name while pattern-matching.
-.TP 5
-O_NONCYCLIC
-Don't wrap around next-item and previous-item,
-requests to the other end of the menu.
-.SH RETURN VALUE
-Except for \fBmenu_opts\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_POSTED\fR
-The menu is already posted.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_pattern.3x b/ncurses-5.3/man/menu_pattern.3x
deleted file mode 100644
index b2effba..0000000
--- a/ncurses-5.3/man/menu_pattern.3x
+++ /dev/null
@@ -1,82 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH menu_pattern 3X ""
-.SH NAME
-\fBmenu_pattern\fR - get and set a menu's pattern buffer
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_pattern(MENU *menu, const char *pattern);
-.br
-char *menu_pattern(const MENU *menu);
-.br
-.SH DESCRIPTION
-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 \fBmenu_driver\fR(3X).
-
-The function \fBset_menu_pattern\fR sets the pattern buffer for the given menu
-and tries to find the first matching item. If it succeeds, that item becomes
-current; if not, the current item does not change.
-
-The function \fBmenu_pattern\fR returns the pattern buffer of the given
-\fImenu\fR.
-.SH RETURN VALUE
-The function \fBmenu_pattern\fR returns \fBNULL\fR on error. The function
-\fBset_menu_pattern\fR may return the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_NO_MATCH\fR
-Character failed to match.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_post.3x b/ncurses-5.3/man/menu_post.3x
deleted file mode 100644
index f66161d..0000000
--- a/ncurses-5.3/man/menu_post.3x
+++ /dev/null
@@ -1,91 +0,0 @@
-'\" 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$
-.TH menu_post 3X ""
-.SH NAME
-\fBmenu_post\fR - write or erase menus from associated subwindows
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int post_menu(MENU *menu);
-.br
-int unpost_menu(MENU *menu);
-.br
-.SH DESCRIPTION
-The function \fBpost_menu\fR displays a menu to its associated subwindow. To
-trigger physical display of the subwindow, use \fBrefresh\fR or some equivalent
-\fBcurses\fR routine (the implicit \fBdoupdate\fR triggered by an \fBcurses\fR
-input request will do). \fBpost_menu\fR resets the selection status of all items.
-
-The function \fBunpost_menu\fR erases menu from its associated subwindow.
-.SH RETURN VALUE
-These routines return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu has already been posted.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NO_ROOM\fR
-Menu is too large for its window. You should consider to use
-\fBset_menu_format()\fR to solve the problem.
-.TP 5
-\fBE_NOT_POSTED\fR
-The menu has not been posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_requestname.3x b/ncurses-5.3/man/menu_requestname.3x
deleted file mode 100644
index 906d6bf..0000000
--- a/ncurses-5.3/man/menu_requestname.3x
+++ /dev/null
@@ -1,69 +0,0 @@
-'\" 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$
-.TH menu_requestname 3X ""
-.SH NAME
-\fBmenu_requestname\fR - handle printable menu request names
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-const char *menu_request_name(int request);
-.br
-int menu_request_by_name(const char *name);
-.br
-.SH DESCRIPTION
-The function \fBmenu_request_name\fR returns the printable name of a menu
-request code.
-.br
-The function \fBmenu_request_by_name\fR searches in the name-table for a request
-with the given name and returns its request code. Otherwise E_NO_MATCH is returned.
-.SH RETURN VALUE
-\fBmenu_request_name\fR returns \fBNULL\fR on error and sets errno
-to \fBE_BAD_ARGUMENT\fR.
-.br
-\fBmenu_request_by_name\fR returns \fBE_NO_MATCH\fR on error.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.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 AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_spacing.3x b/ncurses-5.3/man/menu_spacing.3x
deleted file mode 100644
index 7c657b4..0000000
--- a/ncurses-5.3/man/menu_spacing.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH menu_spacing 3X ""
-.SH NAME
-\fBmenu_spacing\fR - Control spacing between menu items.
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_spacing(MENU *menu,
- int spc_description,
- int spc_rows,
- int spc_columns);
-.br
-int menu_spacing(const MENU *menu,
- int* spc_description,
- int* spc_rows,
- int* spc_columns);
-.br
-.SH DESCRIPTION
-The function \fBset_menu_spacing\fR sets the spacing informations for the menu.
-\fBspc_description\fR controls the number of spaces between an item name and an item
-description. It must not be larger than \fBTABSIZE\fR. The menu system puts in the
-middle of this spacing area the pad character. The remaining parts are filled with
-spaces.
-\fBspc_rows\fR controls the number of rows that are used for an item. It must not be
-larger than 3. The menu system inserts then blank lines between item rows, these lines
-will contain the pad character in the appropriate positions.
-\fBspc_columns\fR controls the number of blanks between columns of items. It must not
-be larger than TABSIZE.
-A value of 0 for all the spacing values resets them to the default, which is 1 for all
-of them.
-.br
-The function \fBmenu_spacing\fR passes back the spacing info for the menu. If a
-pointer is NULL, this specific info is simply not returned.
-.SH RETURN VALUE
-Both routines return \fBE_OK\fR on success. \fBset_menu_spacing\fR may return
-\fBE_POSTED\fR if the menu is posted, or \fBE_BAD_ARGUMENT\fR if one of the
-spacing values is out of range.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.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 AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_userptr.3x b/ncurses-5.3/man/menu_userptr.3x
deleted file mode 100644
index 646f3f9..0000000
--- a/ncurses-5.3/man/menu_userptr.3x
+++ /dev/null
@@ -1,73 +0,0 @@
-'\" 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$
-.TH menu_userptr 3X ""
-.SH NAME
-\fBmenu_userptr\fR - associate application data with a menu item
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_userptr(MENU *menu, void *userptr);
-.br
-void *menu_userptr(const MENU *menu);
-.br
-.SH DESCRIPTION
-Every menu and every menu item has a field that can be used to hold
-application-specific data (that is, the menu-driver code leaves it alone).
-These functions get and set the menu user pointer field.
-.SH RETURN VALUE
-Except for \fBmenu_userptr\fR (which returns \fBNULL\fR on error), each
-function returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-
-The user pointer should be a void pointer. We leave it as a char pointer for
-SVr4 compatibility.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/menu_win.3x b/ncurses-5.3/man/menu_win.3x
deleted file mode 100644
index b4f2f32..0000000
--- a/ncurses-5.3/man/menu_win.3x
+++ /dev/null
@@ -1,95 +0,0 @@
-'\" 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$
-.TH menu_win 3X ""
-.SH NAME
-\fBmenu_win\fR - make and break menu window and subwindow associations
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_menu_win(MENU *menu, WINDOW *win);
-.br
-WINDOW *menu_win(const MENU *menu);
-.br
-int set_menu_sub(MENU *menu, WINDOW *sub);
-.br
-WINDOW *menu_sub(const MENU *menu);
-.br
-int scale_menu(const MENU *menu, int *rows, int *columns);
-.br
-.SH DESCRIPTION
-Every menu has an associated pair of \fBcurses\fR 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 code uses \fBstdscr\fR for both.
-
-In the \fBset_\fR functions, window argument of \fBNULL\fR is treated as though
-it were \fBstsdcr\fR. A menu argument of \fBNULL\fR is treated as a request
-to change the system default menu window or subwindow.
-
-The function \fBscale_menu\fR returns the minimum size required for the
-subwindow of \fImenu\fR.
-.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error. Routines that return
-an integer return one of the following error codes:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_POSTED\fR
-The menu has already been posted.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/mitem_current.3x b/ncurses-5.3/man/mitem_current.3x
deleted file mode 100644
index fa6ede6..0000000
--- a/ncurses-5.3/man/mitem_current.3x
+++ /dev/null
@@ -1,101 +0,0 @@
-'\" 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$
-.TH mitem_current 3X ""
-.SH NAME
-\fBmitem_current\fR - set and get current_menu_item
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_current_item(MENU *menu, const ITEM *item);
-.br
-ITEM *current_item(const MENU *menu);
-.br
-int set_top_row(MENU *menu, int row);
-.br
-int top_row(const MENU *menu);
-.br
-int item_index(const ITEM *item);
-.br
-.SH DESCRIPTION
-The function \fBset_current_item\fR sets the current item (the item on which
-the menu cursor is positioned). \fBcurrent_item\fR returns a pointer to the
-current item in the given menu.
-
-The function \fBset_top_row\fR sets the top row of the menu to show the given
-row (the top row is initially 0, and is reset to this value whenever the
-\fBO_ROWMAJOR\fR option is toggled). The item leftmost on the given row
-becomes current. The function \fBtop_row\fR returns the number of the top menu
-row being displayed.
-
-The function \fBitem_index\fR returns the (zero-origin) index of \fIitem\fR in
-the menu's item pointer list.
-.SH RETURN VALUE
-\fBcurrent_item\fR returns \fBNULL\fR on error.
-
-\fBtop_row\fR and \fBitem_index\fR return \fBERR\fR (the general \fBcurses\fR
-error value) on error.
-
-\fBset_current_item\fR and \fBset_top_row\fR return one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_BAD_STATE\fR
-Routine was called from an initialization or termination function.
-.TP 5
-\fBE_NOT_CONNECTED\fR
-No items are connected to the menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-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 \fBtop_row\fR and
-\fBindex_item\fR error value as -1 (which is the value of \fBERR\fR).
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/mitem_name.3x b/ncurses-5.3/man/mitem_name.3x
deleted file mode 100644
index 76711e9..0000000
--- a/ncurses-5.3/man/mitem_name.3x
+++ /dev/null
@@ -1,64 +0,0 @@
-'\" 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$
-.TH mitem_name 3X ""
-.SH NAME
-\fBmitem_name\fR - get menu item name and description fields
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-const char *item_name(const ITEM *item);
-.br
-const char *item_description(const ITEM *item);
-.br
-.SH DESCRIPTION
-The function \fBitem_name\fR returns the name part of the given item.
-.br
-The function \fBitem_description\fR returns the description part of the given
-item.
-.SH RETURN VALUE
-These routines returns \fBNULL\fR on error.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/mitem_new.3x b/ncurses-5.3/man/mitem_new.3x
deleted file mode 100644
index 4fb8aab..0000000
--- a/ncurses-5.3/man/mitem_new.3x
+++ /dev/null
@@ -1,83 +0,0 @@
-'\" 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$
-.TH mitem_new 3X ""
-.SH NAME
-\fBmitem_new\fR - create and destroy menu items
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-ITEM *new_item(const char *name, const char *description);
-.br
-int free_item(ITEM *item);
-.br
-.SH DESCRIPTION
-The function \fBnew_item\fR allocates a new item and initializes it from the
-\fBname\fR and \fBdescription\fR pointers. Please notice that the item stores
-only the pointers to the name and description. Those pointers must be valid
-during the lifetime of the item. So you should be very carefull with names
-or descriptions allocated on the stack of some routines.
-.br
-The function \fBfree_item\fR 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.
-.SH RETURN VALUE
-The function \fBnew_item\fR returns \fBNULL\fR on error.
-
-The function \fBfree_item\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
-Routine detected an incorrect or out-of-range argument.
-.TP 5
-\fBE_CONNECTED\fR
-Item is connected to a menu.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/mitem_opts.3x b/ncurses-5.3/man/mitem_opts.3x
deleted file mode 100644
index 361187c..0000000
--- a/ncurses-5.3/man/mitem_opts.3x
+++ /dev/null
@@ -1,84 +0,0 @@
-'\" 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$
-.TH mitem_opts 3X ""
-.SH NAME
-\fBmitem_opts\fR - set and get menu item options
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_item_opts(ITEM *item, OPTIONS opts);
-.br
-int item_opts_on(ITEM *item, OPTIONS opts);
-.br
-int item_opts_off(ITEM *item, OPTIONS opts);
-.br
-OPTIONS item_opts(const ITEM *item);
-.br
-.SH DESCRIPTION
-The function \fBset_item_opts\fR sets all the given item's option bits (menu
-option bits may be logically-OR'ed together).
-
-The function \fBitem_opts_on\fR turns on the given option bits, and leaves
-others alone.
-
-The function \fBitem_opts_off\fR turns off the given option bits, and leaves
-others alone.
-
-The function \fBitem_opts\fR returns the item's current option bits.
-
-There is only one defined option bit mask, \fBO_SELECTABLE\fR. When this is
-on, the item may be selected during menu processing. This option defaults
-to on.
-.SH RETURN VALUE
-Except for \fBitem_opts\fR, each routine returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/mitem_userptr.3x b/ncurses-5.3/man/mitem_userptr.3x
deleted file mode 100644
index 5fe61e1..0000000
--- a/ncurses-5.3/man/mitem_userptr.3x
+++ /dev/null
@@ -1,72 +0,0 @@
-'\" 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$
-.TH mitem_userptr 3X ""
-.SH NAME
-\fBmitem_userptr\fR - associate application data with a menu item
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_item_userptr(ITEM *item, void *userptr);
-.br
-void *item_userptr(const ITEM *item);
-.br
-.SH DESCRIPTION
-Every menu item has a field that can be used to hold application-specific data
-(that is, the menu-driver code leaves it alone). These functions get and set
-that field.
-.SH RETURN VALUE
-Except for \fBitem_userptr\fR (which returns \fBNULL\fR on error), each function returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-
-The user pointer should be a void pointer. We leave it as a char pointer for
-SVr4 compatibility.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/mitem_value.3x b/ncurses-5.3/man/mitem_value.3x
deleted file mode 100644
index 9acdce2..0000000
--- a/ncurses-5.3/man/mitem_value.3x
+++ /dev/null
@@ -1,76 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH mitem_value 3X ""
-.SH NAME
-\fBmitem_value\fR - set and get menu item values
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-int set_item_value(ITEM *item, bool value);
-.br
-bool item_value(const ITEM *item);
-.br
-.SH DESCRIPTION
-If you turn off the menu option \fBO_ONEVALUE\fR (e.g., with
-\fBset_menu_opts\fR or \fBmenu_opts_off\fR; see \fBmenu_opts\fR(3X)), the menu
-becomes multi-valued; that is, more than one item may simultaneously be
-selected.
-
-In a multi_valued menu, you can used \fBset_item_value\fR to select the
-given menu item (second argument \fBTRUE\fR) or deselect it (second argument
-\fBFALSE\fR).
-.SH RETURN VALUE
-The function \fBset_item_value\fR returns one of the following:
-.TP 5
-\fBE_OK\fR
-The routine succeeded.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_REQUEST_DENIED\fR
-The menu driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/mitem_visible.3x b/ncurses-5.3/man/mitem_visible.3x
deleted file mode 100644
index 5f5e228..0000000
--- a/ncurses-5.3/man/mitem_visible.3x
+++ /dev/null
@@ -1,59 +0,0 @@
-'\" 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$
-.TH mitem_visible 3X ""
-.SH NAME
-\fBmitem_visible\fR - check visibility of a menu item
-.SH SYNOPSIS
-\fB#include <menu.h>\fR
-.br
-bool item_visible(const ITEM *item);
-.br
-.SH DESCRIPTION
-A menu item is visible when it is in the portion of a posted menu that
-is mapped onto the screen (if the menu is scrollable, in particular, this
-portion will be smaller than the whole menu).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBmenu\fR(3X).
-.SH NOTES
-The header file \fB<menu.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
-.SH PORTABILITY
-These routines emulate the System V menu library. They were not supported on
-Version 7 or BSD versions.
-.SH AUTHORS
-Juergen Pfeifer. Manual pages and adaptation for new curses by Eric
-S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/ncurses.3x b/ncurses-5.3/man/ncurses.3x
deleted file mode 100644
index 211612e..0000000
--- a/ncurses-5.3/man/ncurses.3x
+++ /dev/null
@@ -1,914 +0,0 @@
-'\" 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$
-.hy 0
-.TH ncurses 3X ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBncurses\fR - CRT screen handling and optimization package
-.SH SYNOPSIS
-\fB#include <curses.h>\fR
-.br
-.SH DESCRIPTION
-The \fBncurses\fR library routines give the user a terminal-independent method
-of updating character screens with reasonable optimization. This
-implementation is ``new curses'' (ncurses) and is the approved replacement for
-4.4BSD classic curses, which has been discontinued.
-
-The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
-Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
-library is freely redistributable in source form. Differences from the SVr4
-curses are summarized under the EXTENSIONS and BUGS sections below and
-described in detail in the EXTENSIONS and BUGS sections of individual man
-pages.
-
-A program using these routines must be linked with the \fB-lncurses\fR option,
-or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
-(Your system integrator may also have installed these libraries under
-the names \fB-lcurses\fR and \fB-lcurses_g\fR.)
-The ncurses_g library generates trace logs (in a file called 'trace' in the
-current directory) that describe curses actions.
-
-The \fBncurses\fR package supports: overall screen, window and pad
-manipulation; output to windows and pads; reading terminal input; control over
-terminal and \fBcurses\fR input and 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 \fBinitscr\fR or \fBnewterm\fR
-must be called before any of the other routines that deal with windows
-and screens are used. The routine \fBendwin\fR 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:
-
- \fBinitscr(); cbreak(); noecho();\fR
-
-Most programs would additionally use the sequence:
-
- \fBnonl();\fR
- \fBintrflush(stdscr, FALSE);\fR
- \fBkeypad(stdscr, TRUE);\fR
-
-Before a \fBcurses\fR program is run, the tab stops of the terminal
-should be set and its initialization strings, if defined, must be
-output. This can be done by executing the \fBtput init\fR command
-after the shell environment variable \fBTERM\fR has been exported.
-\fBtset(1)\fR is usually responsible for doing this.
-[See \fBterminfo\fR(\*n) for further details.]
-
-The \fBncurses\fR library permits manipulation of data structures,
-called \fIwindows\fR, which can be thought of as two-dimensional
-arrays of characters representing all or part of a CRT screen. A
-default window called \fBstdscr\fR, which is the size of the terminal
-screen, is supplied. Others may be created with \fBnewwin\fR.
-
-Note that \fBcurses\fR does not handle overlapping windows, that's done by
-the \fBpanel\fR(3X) library. This means that you can either use
-\fBstdscr\fR or divide the screen into tiled windows and not using
-\fBstdscr\fR at all. Mixing the two will result in unpredictable, and
-undesired, effects.
-
-Windows are referred to by variables declared as \fBWINDOW *\fR.
-These data structures are manipulated with routines described here and
-elsewhere in the \fBncurses\fR manual pages. Among which the most basic
-routines are \fBmove\fR and \fBaddch\fR. More general versions of
-these routines are included with names beginning with \fBw\fR,
-allowing the user to specify a window. The routines not beginning
-with \fBw\fR affect \fBstdscr\fR.)
-
-After using routines to manipulate a window, \fBrefresh\fR is called,
-telling \fBcurses\fR to make the user's CRT screen look like
-\fBstdscr\fR. The characters in a window are actually of type
-\fBchtype\fR, (character and attribute data) so that other information
-about the character may also be stored with each character.
-
-Special windows called \fIpads\fR may also be manipulated. These are windows
-which are not constrained to the size of the screen and whose contents need not
-be completely displayed. See \fBcurs_pad\fR(3X) 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 specified to be output.
-On input, \fBcurses\fR 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 \fB<curses.h>\fR,
-such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR.
-
-If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the
-program is executing in a window environment, line and column information in
-the environment will override information read by \fIterminfo\fR. This would
-effect a program running in an AT&T 630 layer, for example, where the size of a
-screen is changeable (see \fBENVIRONMENT\fR).
-
-If the environment variable \fBTERMINFO\fR is defined, any program using
-\fBcurses\fR checks for a local terminal definition before checking in the
-standard place. For example, if \fBTERM\fR is set to \fBatt4424\fR, then the
-compiled terminal definition is found in
-
- \fB\*d/a/att4424\fR.
-
-(The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid
-creation of huge directories.) However, if \fBTERMINFO\fR is set to
-\fB$HOME/myterms\fR, \fBcurses\fR first checks
-
- \fB$HOME/myterms/a/att4424\fR,
-
-and if that fails, it then checks
-
- \fB\*d/a/att4424\fR.
-
-This is useful for developing experimental definitions or when write
-permission in \fB\*d\fR is not available.
-
-The integer variables \fBLINES\fR and \fBCOLS\fR are defined in
-\fB<curses.h>\fR and will be filled in by \fBinitscr\fR with the size of the
-screen. The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and
-\fB0\fR, respectively.
-
-The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR
-which is used for certain low-level operations like clearing and redrawing a
-screen containing garbage. The \fBcurscr\fR can be used in only a few
-routines.
-
-.SS Routine and Argument Names
-Many \fBcurses\fR routines have two or more versions. The routines prefixed
-with \fBw\fR require a window argument. The routines prefixed with \fBp\fR
-require a pad argument. Those without a prefix generally use \fBstdscr\fR.
-
-The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR
-coordinate to move to before performing the appropriate action. The
-\fBmv\fR routines imply a call to \fBmove\fR before the call to the
-other routine. The coordinate \fIy\fR always refers to the row (of
-the window), and \fIx\fR always refers to the column. The upper
-left-hand corner is always (0,0), not (1,1).
-
-The routines prefixed with \fBmvw\fR take both a window argument and
-\fIx\fR and \fIy\fR coordinates. The window argument is always
-specified before the coordinates.
-
-In each case, \fIwin\fR is the window affected, and \fIpad\fR is the
-pad affected; \fIwin\fR and \fIpad\fR are always pointers to type
-\fBWINDOW\fR.
-
-Option setting routines require a Boolean flag \fIbf\fR with the value
-\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR. The
-variables \fIch\fR and \fIattrs\fR below are always of type
-\fBchtype\fR. The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and
-\fBchtype\fR are defined in \fB<curses.h>\fR. The type \fBTERMINAL\fR
-is defined in \fB<term.h>\fR. All other arguments are integers.
-
-.SS Routine Name Index
-The following table lists each \fBcurses\fR 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.
-
-.TS
-center tab(/);
-l l
-l l .
-\fBcurses\fR Routine Name/Manual Page Name
-=
-COLOR_PAIR/\fBcurs_color\fR(3X)
-PAIR_NUMBER/\fBcurs_attr\fR(3X)
-_nc_tracebits/\fBcurs_trace\fR(3X)*
-_traceattr/\fBcurs_trace\fR(3X)*
-_traceattr2/\fBcurs_trace\fR(3X)*
-_tracechar/\fBcurs_trace\fR(3X)*
-_tracechtype/\fBcurs_trace\fR(3X)*
-_tracechtype2/\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)
-addnwstr/\fBcurs_addwstr\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)
-attr_on/\fBcurs_attr\fR(3X)
-attr_set/\fBcurs_attr\fR(3X)
-attroff/\fBcurs_attr\fR(3X)
-attron/\fBcurs_attr\fR(3X)
-attrset/\fBcurs_attr\fR(3X)
-baudrate/\fBcurs_termattrs\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_set/\fBcurs_border_set\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)
-clear/\fBcurs_clear\fR(3X)
-clearok/\fBcurs_outopts\fR(3X)
-clrtobot/\fBcurs_clear\fR(3X)
-clrtoeol/\fBcurs_clear\fR(3X)
-color_content/\fBcurs_color\fR(3X)
-color_set/\fBcurs_attr\fR(3X)
-copywin/\fBcurs_overlay\fR(3X)
-curs_set/\fBcurs_kernel\fR(3X)
-curses_version/\fBcurs_extend\fR(3X)*
-def_prog_mode/\fBcurs_kernel\fR(3X)
-def_shell_mode/\fBcurs_kernel\fR(3X)
-define_key/\fBdefine_key\fR(3X)*
-del_curterm/\fBcurs_terminfo\fR(3X)
-delay_output/\fBcurs_util\fR(3X)
-delch/\fBcurs_delch\fR(3X)
-deleteln/\fBcurs_deleteln\fR(3X)
-delscreen/\fBcurs_initscr\fR(3X)
-delwin/\fBcurs_window\fR(3X)
-derwin/\fBcurs_window\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)
-erasewchar/\fBcurs_termattrs\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)
-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)*
-getn_wstr/\fBcurs_get_wstr\fR(3X)
-getnstr/\fBcurs_getstr\fR(3X)
-getparyx/\fBcurs_getyx\fR(3X)
-getstr/\fBcurs_getstr\fR(3X)
-getsyx/\fBcurs_kernel\fR(3X)
-getwin/\fBcurs_util\fR(3X)
-getyx/\fBcurs_getyx\fR(3X)
-halfdelay/\fBcurs_inopts\fR(3X)
-has_colors/\fBcurs_color\fR(3X)
-has_ic/\fBcurs_termattrs\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)
-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)
-init_color/\fBcurs_color\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)
-insnstr/\fBcurs_insstr\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)
-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)
-killwchar/\fBcurs_termattrs\fR(3X)
-leaveok/\fBcurs_outopts\fR(3X)
-longname/\fBcurs_termattrs\fR(3X)
-mcprint/\fBcurs_print\fR(3X)*
-meta/\fBcurs_inopts\fR(3X)
-mouse_trafo/\fBcurs_mouse\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)
-mvaddnwstr/\fBcurs_addwstr\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)
-mvget_wch/\fBcurs_get_wch\fR(3X)
-mvget_wstr/\fBcurs_get_wstr\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)
-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)
-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)
-mvinwstr/\fBcurs_inwstr\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)
-mvwaddnwstr/\fBcurs_addwstr\fR(3X)
-mvwaddstr/\fBcurs_addstr\fR(3X)
-mvwaddwstr/\fBcurs_addwstr\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)
-mvwgetn_wstr/\fBcurs_get_wstr\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_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)
-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)
-mvwinwstr/\fBcurs_inwstr\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)
-newwin/\fBcurs_window\fR(3X)
-nl/\fBcurs_outopts\fR(3X)
-nocbreak/\fBcurs_inopts\fR(3X)
-nodelay/\fBcurs_inopts\fR(3X)
-noecho/\fBcurs_inopts\fR(3X)
-nonl/\fBcurs_outopts\fR(3X)
-noqiflush/\fBcurs_inopts\fR(3X)
-noraw/\fBcurs_inopts\fR(3X)
-notimeout/\fBcurs_inopts\fR(3X)
-overlay/\fBcurs_overlay\fR(3X)
-overwrite/\fBcurs_overlay\fR(3X)
-pair_content/\fBcurs_color\fR(3X)
-pechochar/\fBcurs_pad\fR(3X)
-pnoutrefresh/\fBcurs_pad\fR(3X)
-prefresh/\fBcurs_pad\fR(3X)
-printw/\fBcurs_printw\fR(3X)
-putp/\fBcurs_terminfo\fR(3X)
-putwin/\fBcurs_util\fR(3X)
-qiflush/\fBcurs_inopts\fR(3X)
-raw/\fBcurs_inopts\fR(3X)
-redrawwin/\fBcurs_refresh\fR(3X)
-refresh/\fBcurs_refresh\fR(3X)
-reset_prog_mode/\fBcurs_kernel\fR(3X)
-reset_shell_mode/\fBcurs_kernel\fR(3X)
-resetty/\fBcurs_kernel\fR(3X)
-resizeterm/\fBresizeterm\fR(3X)*
-restartterm/\fBcurs_terminfo\fR(3X)
-ripoffline/\fBcurs_kernel\fR(3X)
-savetty/\fBcurs_kernel\fR(3X)
-scanw/\fBcurs_scanw\fR(3X)
-scr_dump/\fBcurs_scr_dump\fR(3X)
-scr_init/\fBcurs_scr_dump\fR(3X)
-scr_restore/\fBcurs_scr_dump\fR(3X)
-scr_set/\fBcurs_scr_dump\fR(3X)
-scrl/\fBcurs_scroll\fR(3X)
-scroll/\fBcurs_scroll\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)
-setupterm/\fBcurs_terminfo\fR(3X)
-slk_attr/\fBcurs_slk\fR(3X)*
-slk_attr_off/\fBcurs_slk\fR(3X)
-slk_attr_on/\fBcurs_slk\fR(3X)
-slk_attr_set/\fBcurs_slk\fR(3X)
-slk_attroff/\fBcurs_slk\fR(3X)
-slk_attron/\fBcurs_slk\fR(3X)
-slk_attrset/\fBcurs_slk\fR(3X)
-slk_clear/\fBcurs_slk\fR(3X)
-slk_color/\fBcurs_slk\fR(3X)
-slk_init/\fBcurs_slk\fR(3X)
-slk_label/\fBcurs_slk\fR(3X)
-slk_noutrefresh/\fBcurs_slk\fR(3X)
-slk_refresh/\fBcurs_slk\fR(3X)
-slk_restore/\fBcurs_slk\fR(3X)
-slk_set/\fBcurs_slk\fR(3X)
-slk_touch/\fBcurs_slk\fR(3X)
-standend/\fBcurs_attr\fR(3X)
-standout/\fBcurs_attr\fR(3X)
-start_color/\fBcurs_color\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)
-tgetflag/\fBcurs_termcap\fR(3X)
-tgetnum/\fBcurs_termcap\fR(3X)
-tgetstr/\fBcurs_termcap\fR(3X)
-tgoto/\fBcurs_termcap\fR(3X)
-tigetflag/\fBcurs_terminfo\fR(3X)
-tigetnum/\fBcurs_terminfo\fR(3X)
-tigetstr/\fBcurs_terminfo\fR(3X)
-timeout/\fBcurs_inopts\fR(3X)
-touchline/\fBcurs_touch\fR(3X)
-touchwin/\fBcurs_touch\fR(3X)
-tparm/\fBcurs_terminfo\fR(3X)
-tputs/\fBcurs_termcap\fR(3X)
-tputs/\fBcurs_terminfo\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)*
-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)
-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)
-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)
-waddnwstr/\fBcurs_addwstr\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_set/\fBcurs_attr\fR(3X)
-wattroff/\fBcurs_attr\fR(3X)
-wattron/\fBcurs_attr\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_set/\fBcurs_border_set\fR(3X)
-wchgat/\fBcurs_attr\fR(3X)
-wclear/\fBcurs_clear\fR(3X)
-wclrtobot/\fBcurs_clear\fR(3X)
-wclrtoeol/\fBcurs_clear\fR(3X)
-wcolor_set/\fBcurs_attr\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)
-wget_wch/\fBcurs_get_wch\fR(3X)
-wget_wstr/\fBcurs_get_wstr\fR(3X)
-wgetbkgrnd/\fBcurs_bkgrnd\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)
-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)
-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)
-winwstr/\fBcurs_inwstr\fR(3X)
-wmouse_trafo/\fBcurs_mouse\fR(3X)*
-wmove/\fBcurs_move\fR(3X)
-wnoutrefresh/\fBcurs_refresh\fR(3X)
-wprintw/\fBcurs_printw\fR(3X)
-wredrawln/\fBcurs_refresh\fR(3X)
-wrefresh/\fBcurs_refresh\fR(3X)
-wresize/\fBwresize\fR(3X)*
-wscanw/\fBcurs_scanw\fR(3X)
-wscrl/\fBcurs_scroll\fR(3X)
-wsetscrreg/\fBcurs_outopts\fR(3X)
-wstandend/\fBcurs_attr\fR(3X)
-wstandout/\fBcurs_attr\fR(3X)
-wsyncdown/\fBcurs_window\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_set/\fBcurs_border_set\fR(3X)
-.TE
-.SH RETURN VALUE
-Routines that return an integer return \fBERR\fR upon failure and an
-integer value other than \fBERR\fR upon successful completion, unless
-otherwise noted in the routine descriptions.
-
-All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR,
-\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, \fBgetmaxyx\fR. The return
-values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and
-\fBgetmaxyx\fR are undefined (\fIi\fR.\fIe\fR., these should not be used as the
-right-hand side of assignment statements).
-
-Routines that return pointers return \fBNULL\fR on error.
-.SH ENVIRONMENT
-The following environment symbols are useful for customizing the
-runtime behavior of the \fBncurses\fR library. The most important
-ones have been already discussed in detail.
-.TP 5
-BAUDRATE
-The debugging library checks this environment symbol when the application
-has redirected output to a file.
-The symbol's numeric value is used for the baudrate.
-If no value is found \fBncurses\fR uses 9600.
-This allows testers to construct repeatable test-cases
-that take into account costs that depend on baudrate.
-.TP 5
-CC
-When set, change occurrences of the command_character
-(i.e., the \fBcmdch\fP capability)
-of the loaded terminfo entries to the value of this symbol.
-Very few terminfo entries provide this feature.
-.TP 5
-COLUMNS
-Specify the width of the screen in characters.
-Applications running in a windowing environment usually are able to
-obtain the width of the window in which they are executing.
-If neither the $COLUMNS value nor the terminal's screen size is available,
-\fBncurses\fR uses the size which may be specified in the terminfo database
-(i.e., the \fBcols\fR capability).
-
-It is important that your application use a correct size for the screen.
-However, this is not always possible because your application may be
-running on a host which does not honor NAWS (Negotiations About Window
-Size), or because you are temporarily running as another user.
-
-Either COLUMNS or LINES symbols may be specified independently.
-This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
-e.g., xterm which commonly specifies a 65 line screen.
-For best results, \fBlines\fR and \fBcols\fR should not be specified in
-a terminal description for terminals which are run as emulations.
-
-Use the \fBuse_env\fR function to disable this feature.
-.TP 5
-ESCDELAY
-Specifies the total time, in milliseconds, for which ncurses will
-await a character sequence, e.g., a function key.
-The default value, 1000 milliseconds, is enough for most uses.
-However, it is made a variable to accommodate unusual applications.
-
-The most common instance where you may wish to change this value
-is to work with slow hosts, e.g., running on a network.
-If the host cannot read characters rapidly enough, it will have the same
-effect as if the terminal did not send characters rapidly enough.
-The library will still see a timeout.
-
-Note that xterm mouse events are built up from character sequences
-received from the xterm.
-If your application makes heavy use of multiple-clicking, you may
-wish to lengthen this default value because the timeout applies
-to the composed multi-click event as well as the individual clicks.
-.TP 5
-HOME
-Tells \fBncurses\fR where your home directory is.
-That is where it may read and write auxiliary terminal descriptions:
-
-$HOME/.termcap
-.br
-$HOME/.terminfo
-.TP 5
-LINES
-Like COLUMNS, specify the height of the screen in characters.
-See COLUMNS for a detailed description.
-.TP 5
-MOUSE_BUTTONS_123
-This applies only to the OS/2 EMX port.
-It specifies the order of buttons on the mouse.
-OS/2 numbers a 3-button mouse inconsistently from other
-platforms:
-
-1 = left
-.br
-2 = right
-.br
-3 = middle.
-
-This symbol lets you customize the mouse.
-The symbol must be three numeric digits 1-3 in any order, e.g., 123 or 321.
-If it is not specified, \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.
-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
-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 (no hardware cost)
-is for your program to do this by pausing after
-operations that the terminal does slowly, such as clearing the display.
-
-As a result, many terminal descriptions (including the vt100)
-have delay times embedded. You may wish to use these descriptions,
-but not want to pay the performance penalty.
-
-Set the NCURSES_NO_PADDING symbol to disable all but mandatory
-padding. Mandatory padding is used as a part of special control
-sequences such as \fIflash\fR.
-.TP 5
-NCURSES_NO_SETBUF
-Normally \fBncurses\fR enables buffered output during terminal initialization.
-This is done (as in SVr4 curses) for performance reasons.
-For testing purposes, both of \fBncurses\fR and certain applications,
-this feature is made optional. Setting the NCURSES_NO_SETBUF variable
-disables output buffering, leaving the output in the original (usually
-line buffered) mode.
-.TP 5
-NCURSES_TRACE
-During initialization, the \fBncurses\fR debugging library
-checks the NCURSES_TRACE symbol.
-If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR
-function, using that value as the argument.
-
-The argument values, which are defined in \fBcurses.h\fR, provide several
-types of information.
-When running with traces enabled, your application will write the
-file \fBtrace\fR to the current directory.
-.TP 5
-TERM
-Denotes your terminal type.
-Each terminal type is distinct, though many are similar.
-.TP 5
-TERMCAP
-If the \fBncurses\fR library has been configured with \fItermcap\fR
-support, \fBncurses\fR will check for a terminal's description in
-termcap form if it is not available in the terminfo database.
-
-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 \fBncurses\fR to ignore
-the usual place for this information, e.g., /etc/termcap.
-.TP 5
-TERMINFO
-Overrides the directory in which \fBncurses\fR searches for your terminal
-description.
-This is the simplest, but not the only way to change the list of directories.
-The complete list of directories in order follows:
-.RS
-.TP 3
--
-the last directory to which \fBncurses\fR wrote, if any, is searched first.
-.TP 3
--
-the directory specified by the TERMINFO symbol
-.TP 3
--
-$HOME/.terminfo
-.TP 3
--
-directories listed in the TERMINFO_DIRS symbol
-.TP 3
--
-one or more directories whose names are configured and compiled into the
-ncurses library, e.g.,
-@TERMINFO@
-.RE
-.TP 5
-TERMINFO_DIRS
-Specifies a list of directories to search for terminal descriptions.
-The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
-All of the terminal descriptions are in terminfo form, which makes
-a subdirectory named for the first letter of the terminal names therein.
-.TP 5
-TERMPATH
-If TERMCAP does not hold a file name then \fBncurses\fR checks
-the TERMPATH symbol.
-This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX.
-If the TERMPATH symbol is not set, \fBncurses\fR looks in the files
-/etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order.
-.PP
-The library may be configured to disregard the following variables when the
-current user is the superuser (root), or if the application uses setuid or
-setgid permissions:
-$TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
-.SH FILES
-.TP 5
-@DATADIR@/tabset
-directory containing initialization files for the terminal capability database
-@TERMINFO@
-terminal capability database
-.SH SEE ALSO
-\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)
-that falls back to the old-style /etc/termcap file if the terminal setup code
-cannot find a terminfo entry corresponding to \fBTERM\fR. Use of this feature
-is not recommended, as it essentially includes an entire termcap compiler in
-the \fBncurses\fR startup code, at significant cost in core and startup cycles.
-
-The \fBncurses\fR library includes facilities for capturing mouse events on
-certain terminals (including xterm). See the \fBcurs_mouse\fR(3X)
-manual page for details.
-
-The \fBncurses\fR library includes facilities for responding to window
-resizing events, e.g., when running in an xterm.
-See the \fBresizeterm\fR(3X)
-and \fBwresize\fR(3X) manual pages for details.
-In addition, the library may be configured with a SIGWINCH handler.
-
-The \fBncurses\fR library extends the fixed set of function key capabilities
-of terminals by allowing the application designer to define additional
-key sequences at runtime.
-See the \fBdefine_key\fR(3X)
-and \fBkeyok\fR(3X) manual pages for details.
-
-The \fBncurses\fR 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 contrasts.
-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)
-manual page for details.
-.SH PORTABILITY
-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:
-\fBpecho_wchar\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
-sections of the library man pages.
-.PP
-The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4. See
-the \fBcurs_getch\fR(3X) manual page for details.
-.PP
-The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4. See
-the \fBcurs_slk\fR(3X) manual page for details.
-.PP
-The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR,
-\fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not
-part of XPG4, nor are they present in SVr4. See the \fBcurs_mouse\fR(3X)
-manual page for details.
-.PP
-The routine \fBmcprint\fR was not present in any previous curses
-implementation. See the \fBcurs_print\fR(3X) manual page for details.
-.PP
-The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4. See
-the \fBwresize\fR(3X) manual page for details.
-.PP
-In historic curses versions, delays embedded in the capabilities \fBcr\fR,
-\fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR 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.
-.SH NOTES
-The header file \fB<curses.h>\fR automatically includes the header files
-\fB<stdio.h>\fR and \fB<unctrl.h>\fR.
-
-If standard output from a \fBncurses\fR 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&T System V Release 3 curses.
-.SH AUTHORS
-Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
-Based on pcurses by Pavel Curtis.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/panel.3x b/ncurses-5.3/man/panel.3x
deleted file mode 100644
index bc24b7b..0000000
--- a/ncurses-5.3/man/panel.3x
+++ /dev/null
@@ -1,182 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH panel 3X ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-panel - panel stack extension for curses
-.SH SYNOPSIS
-\fB#include <panel.h>\fR
-.P
-\fBcc [flags] sourcefiles -lpanel -lncurses\fR
-.P
-\fBPANEL *new_panel(WINDOW *win)\fR
-.br
-\fBint bottom_panel(PANEL *pan)\fR
-.br
-\fBint top_panel(PANEL *pan)\fR
-.br
-\fBint show_panel(PANEL *pan)\fR
-.br
-\fBvoid update_panels();\fR
-.br
-\fBint hide_panel(PANEL *pan)\fR
-.br
-\fBWINDOW *panel_window(const PANEL *pan)\fR
-.br
-\fBint replace_panel(PANEL *pan, WINDOW *window)\fR
-.br
-\fBint move_panel(PANEL *pan, int starty, int startx)\fR
-.br
-\fBint panel_hidden(const PANEL *pan)\fR
-.br
-\fBPANEL *panel_above(const PANEL *pan)\fR
-.br
-\fBPANEL *panel_below(const PANEL *pan)\fR
-.br
-\fBint set_panel_userptr(PANEL *pan, const void *ptr)\fR
-.br
-\fBconst void *panel_userptr(const PANEL *pan)\fR
-.br
-\fBint del_panel(PANEL *pan)\fR
-.br
-.SH DESCRIPTION
-Panels are \fBcurses\fR(3X) 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 curses \fBstdscr\fR window are
-hidden or displayed when panels are added, moved, modified or removed.
-The set of currently visible panels is the stack of panels. The
-\fBstdscr\fR window is beneath all panels, and is not considered part
-of the stack.
-.P
-A window is associated with every panel. The panel routines enable
-you to create, move, hides, and show panels, as well as position a
-panel at any desired location in the stack.
-.P
-Panel routines are a functional layer added to \fBcurses\fR(3X), make only
-high-level curses calls, and work anywhere terminfo curses does.
-.SH FUNCTIONS
-.TP
-\fBnew_panel(win)\fR
-allocates a \fBPANEL\fR structure, associates it with
-\fBwin\fR, 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.
-.TP
-\fBvoid update_panels()\fR
-refreshes the virtual screen to reflect the relations between the
-panels in the stack, but does not call doupdate() to refresh the
-physical screen. Use this function and not wrefresh or wnoutrefresh.
-update_panels() may be called more than once before a call to
-doupdate(), but doupdate() is the function responsible for updating
-the physical screen.
-.TP
-\fBdel_panel(pan)\fR
-removes the given panel from the stack and deallocates the
-\fBPANEL\fR structure (but not its associated window).
-.TP
-\fBhide_panel(pan)\fR
-removes the given panel from the panel stack and thus hides it from
-view. The \fBPANEL\fR structure is not lost, merely removed from the stack.
-.TP
-\fBshow_panel(pan)\fR
-makes a hidden panel visible by placing it on top of the panels in the
-panel stack. See COMPATIBILITY below.
-.TP
-\fBtop_panel(pan)\fR
-puts the given visible panel on top of all panels in the stack. See
-COMPATIBILITY below.
-.TP
-\fBbottom_panel(pan)\fR
-puts panel at the bottom of all panels.
-.TP
-\fBmove_panel(pan,starty,startx)\fR
-moves the given panel window so that its upper-left corner is at
-\fBstarty\fR, \fBstartx\fR. It does not change the position of the
-panel in the stack. Be sure to use this function, not \fBmvwin()\fR,
-to move a panel window.
-.TP
-\fBreplace_panel(pan,window)\fR
-replaces the current window of panel with \fBwindow\fR (useful, for
-example if you want to resize a panel; if you're using \fBncurses\fR,
-you can call \fBreplace_panel\fR on the output of \fBwresize\fR(3X)).
-It does not change the position of the panel in the stack.
-.TP
-\fBpanel_above(pan)\fR
-returns a pointer to the panel above pan. If the panel argument is
-\fB(PANEL *)0\fR, it returns a pointer to the bottom panel in the stack.
-.TP
-\fBpanel_below(pan)\fR
-returns a pointer to the panel just below pan. If the panel argument
-is \fB(PANEL *)0\fR, it returns a pointer to the top panel in the stack.
-.TP
-\fBset_panel_userptr(pan,ptr)\fR
-sets the panel's user pointer.
-.TP
-\fBpanel_userptr(pan)\fR
-returns the user pointer for a given panel.
-.TP
-\fBpanel_window(pan)\fR
-returns a pointer to the window of the given panel.
-.SH DIAGNOSTICS
-Each routine that returns a pointer returns \fBNULL\fR if an error
-occurs. Each routine that returns an int value returns \fBOK\fR if it
-executes successfully and \fBERR\fR if not.
-.SH COMPATIBILITY
-Reasonable care has been taken to ensure compatibility
-with the native panel facility introduced in SVr3.2 (inspection of
-the SVr4 manual pages suggests the programming interface is unchanged).
-The \fBPANEL\fR data structures are merely similar. The programmer
-is cautioned not to directly use \fBPANEL\fR fields.
-.P
-The functions \fBshow_panel()\fR and \fBtop_panel()\fR are identical
-in this implementation, and work equally well with displayed or hidden
-panels. In the native System V implementation, \fBshow_panel()\fR is
-intended for making a hidden panel visible (at the top of the stack)
-and \fBtop_panel()\fR is intended for making an already-visible panel
-move to the top of the stack. You are cautioned to use the correct
-function to ensure compatibility with native panel libraries.
-.SH NOTE
-In your library list, libpanel.a should be before libncurses.a; that is,
-you want to say `-lpanel -lncurses', not the other way around (which would
-give you a link error using GNU \fBld\fR(1) and some other linkers).
-.SH FILES
-.P
-panel.h
-interface for the panels library
-.P
-libpanel.a
-the panels library itself
-.SH SEE ALSO
-\fBcurses\fR(3X)
-.SH AUTHOR
-Originally written by Warren Tucker <wht@n4hgf.mt-park.ga.us>,
-primarily to assist in porting u386mon to systems without a native
-panels library. Repackaged for ncurses by Zeyd ben-Halim.
diff --git a/ncurses-5.3/man/resizeterm.3x b/ncurses-5.3/man/resizeterm.3x
deleted file mode 100644
index 872905b..0000000
--- a/ncurses-5.3/man/resizeterm.3x
+++ /dev/null
@@ -1,92 +0,0 @@
-.\"***************************************************************************
-.\" 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 <dickey@clark.net> 1996,1997,2002
-.\"
-.\" $Id$
-.TH resizeterm 3X ""
-.SH NAME
-\fBis_term_resized\fR,
-\fBresize_term\fR,
-\fBresizeterm\fR - change the curses terminal size
-.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
-.SH DESCRIPTION
-This is an extension to the curses library.
-It provides callers with a hook into the \fBncurses\fR data to resize windows,
-primarily for use by programs running in an X Window terminal (e.g., xterm).
-The function \fBresizeterm\fR resizes the standard and current windows
-to the specified dimensions, and adjusts other bookkeeping data used by
-the \fBncurses\fR library that record the window dimensions.
-
-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.
-
-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
-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
-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.
-.PP
-If ncurses is configured to supply its own SIGWINCH handler,
-the \fBresizeterm\fR function ungetch's a \fBKEY_RESIZE\fR which
-will be read on the next call to \fBgetch\fR.
-This is used to alert an application that the screen size has changed,
-and that it should repaint special features such as pads that cannot
-be done automatically.
-.SH SEE ALSO
-\fBwresize\fR(3X).
-.SH AUTHOR
-Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/term.5 b/ncurses-5.3/man/term.5
deleted file mode 100644
index 1c222f4..0000000
--- a/ncurses-5.3/man/term.5
+++ /dev/null
@@ -1,208 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH TERM 5
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-term \- format of compiled term file.
-.SH SYNOPSIS
-.B term
-.SH DESCRIPTION
-.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\*d/c/name\fP
-where
-.I name
-is the name of the terminal, and
-.I c
-is the first character of
-.IR name .
-Thus,
-.I act4
-can be found in the file \fB\*d/a/act4\fP.
-Synonyms for the same terminal are implemented by multiple
-links to the same compiled file.
-.PP
-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.
-.PP
-The compiled file is created with the
-.I tic
-program, and read by the routine
-.IR setupterm .
-The file is divided into six parts:
-the header,
-terminal names,
-boolean flags,
-numbers,
-strings,
-and
-string table.
-.PP
-The header section begins the file.
-This section contains six short integers in the format
-described below.
-These integers are
-(1) the magic number (octal 0432);
-(2) the size, in bytes, of the names section;
-(3) the number of bytes in the boolean section;
-(4) the number of short integers in the numbers section;
-(5) the number of offsets (short integers) in the strings section;
-(6) the size, in bytes, of the string table.
-.PP
-Short integers are stored in two 8-bit bytes.
-The first byte contains the least significant 8 bits of the value,
-and the second byte contains the most significant 8 bits.
-(Thus, the value represented is 256*second+first.)
-The value \-1 is represented by the two bytes 0377, 0377; other negative
-values are illegal. This value generally
-means that the corresponding capability is missing from this terminal.
-Note that this format corresponds to the hardware of the \s-1VAX\s+1
-and \s-1PDP\s+1-11 (that is, little-endian machines).
-Machines where this does not correspond to the hardware must read the
-integers as two bytes and compute the little-endian value.
-.PP
-The terminal names section comes next.
-It contains the first line of the terminfo description,
-listing the various names for the terminal,
-separated by the `|' character.
-The section is terminated with an \s-1ASCII NUL\s+1 character.
-.PP
-The boolean flags have one byte for each flag.
-This byte is either 0 or 1 as the flag is present or absent.
-The capabilities are in the same order as the file <term.h>.
-.PP
-Between the boolean section and the number section,
-a null byte will be inserted, if necessary,
-to ensure that the number section begins on an even byte (this is a
-relic of the PDP-11's word-addressed architecture, originally
-designed in to avoid IOT traps induced by addressing a word on an
-odd byte boundary).
-All short integers are aligned on a short word boundary.
-.PP
-The numbers section is similar to the flags section.
-Each capability takes up two bytes,
-and is stored as a little-endian short integer.
-If the value represented is \-1, the capability is taken to be missing.
-.PP
-The strings section is also similar.
-Each capability is stored as a short integer, in the format above.
-A value of \-1 means the capability is missing.
-Otherwise, the value is taken as an offset from the beginning
-of the string table.
-Special characters in ^X or \ec notation are stored in their
-interpreted form, not the printing representation.
-Padding information $<nn> and parameter information %x are
-stored intact in uninterpreted form.
-.PP
-The final section is the string table.
-It contains all the values of string capabilities referenced in
-the string section.
-Each string is null terminated.
-.PP
-Note that it is possible for
-.I setupterm
-to expect a different set of capabilities
-than are actually present in the file.
-Either the database may have been updated since
-.I setupterm
-has been recompiled
-(resulting in extra unrecognized 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
-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, number, and string capabilities.
-.PP
-Despite the consistent use of little-endian for numbers and the otherwise
-self-describing format, it is not wise to count on portability of binary
-terminfo entries between commercial UNIX versions. The problem is that there
-are at least three versions of terminfo (under HP-UX, AIX, and 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 \fBterminfo\fR(\*n) for detailed
-discussion of terminfo source compatibility issues.
-.PP
-As an example, here is a hex dump of the description for the Lear-Siegler
-ADM-3, a popular though rather stupid early terminal:
-.nf
-.sp
-adm3a|lsi adm3a,
- am,
- cols#80, lines#24,
- bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- home=^^, ind=^J,
-.sp
-.ft CW
-\s-20000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3
-0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P.
-0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........
-0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'...
-0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-.....
-0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........
-0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$<1
-0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 >..=%p1% {32}%+%c
-0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c....
-0150 00 08 00 0c 00 0b 00 0a 00 ........ .\s+2
-.ft R
-.fi
-.sp
-.PP
-Some limitations: total compiled entries cannot exceed 4096 bytes.
-The name field cannot exceed 128 bytes.
-.SH FILES
-\*d/*/* compiled terminal capability data base
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBterminfo\fR(\*n).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/term.7 b/ncurses-5.3/man/term.7
deleted file mode 100644
index 12304da..0000000
--- a/ncurses-5.3/man/term.7
+++ /dev/null
@@ -1,204 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH TERM 7
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-term \- conventions for naming terminal types
-.SH DESCRIPTION
-.PP
-The environment variable \fBTERM\fR 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.
-.PP
-A default \fBTERM\fR value will be set on a per-line basis by either
-\fB/etc/inittab\fR (Linux and System-V-like UNIXes) or \fB/etc/ttys\fR (BSD
-UNIXes). This will nearly always suffice for workstation and microcomputer
-consoles.
-.PP
-If you use a dialup line, the type of device attached to it may vary. Older
-UNIX systems pre-set a very dumb terminal type like `dumb' or `dialup' on
-dialup lines. Newer ones may pre-set `vt100', reflecting the prevalence of DEC
-VT100-compatible terminals and personal-computer emulators.
-.PP
-Modern telnets pass your \fBTERM\fR 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
-can almost always be avoided by explicitly exporting `vt100' (assuming you
-are in fact using a VT100-superset console, terminal, or terminal emulator.)
-.PP
-In any case, you are free to override the system \fBTERM\fR setting to your
-taste in your shell profile. The \fBtset\fP(1) utility may be of assistance;
-you can give it a set of rules for deducing or requesting a terminal type based
-on the tty device and baud rate.
-.PP
-Setting your own \fBTERM\fR 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.
-.PP
-Terminal type descriptions are stored as files of capability data underneath
-\*d. To browse a list of all terminal names recognized by the system, do
-
- toe | more
-
-from your shell. These capability files are in a binary format optimized for
-retrieval speed (unlike the old text-based \fBtermcap\fR format they replace);
-to examine an entry, you must use the \fBinfocmp\fR(1) command. Invoke it as
-follows:
-
- infocmp \fIentry-name\fR
-
-where \fIentry-name\fR is the name of the type you wish to examine (and the
-name of its capability file the subdirectory of \*d named for its first
-letter). This command dumps a capability file in the text format described by
-\fBterminfo\fR(\*n).
-.PP
-The first line of a \fBterminfo\fR(\*n) description gives the 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
-\fIprimary name\fR, and is the one to use when setting \fBTERM\fR. 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 first and last (if present) are aliases for the terminal,
-usually historical names retained for compatibility.
-.PP
-There are some conventions for how to choose terminal primary names that help
-keep them informative and unique. Here is a step-by-step guide to naming
-terminals that also explains how to parse them:
-.PP
-First, choose a root name. The root will consist of a lower-case letter
-followed by up to seven lower-case letters or digits. You need to avoid using
-punctuation characters in root names, because they are used and interpreted as
-filenames and shell meta-characters (such as !, $, *, ? etc.) embedded in them
-may cause odd and unhelpful behavior. The slash (/), or any other character
-that may be interpreted by anyone's file system (\e, $, [, ]), is especially
-dangerous (terminfo is platform-independent, and choosing names with special
-characters could someday make life difficult for users of a future port). The
-dot (.) character is relatively safe as long as there is at most one per root
-name; some historical terminfo names use it.
-.PP
-The root name for a terminal or workstation console type should almost always
-begin with a vendor prefix (such as \fBhp\fR for Hewlett-Packard, \fBwy\fR for
-Wyse, or \fBatt\fR for AT&T terminals), or a common name of the terminal line
-(\fBvt\fR for the VT series of terminals from DEC, or \fBsun\fR for Sun
-Microsystems workstation consoles, or \fBregent\fR for the ADDS Regent series.
-You can list the terminfo tree to see what prefixes are already in common use.
-The root name prefix should be followed when appropriate by a model number;
-thus \fBvt100\fR, \fBhp2621\fR, \fBwy50\fR.
-.PP
-The root name for a PC-Unix console type should be the OS name,
-i.e. \fBlinux\fR, \fBbsdos\fR, \fBfreebsd\fR, \fBnetbsd\fR. It should
-\fInot\fR be \fBconsole\fR or any other generic that might cause confusion in a
-multi-platform environment! If a model number follows, it should indicate
-either the OS release level or the console driver release level.
-.PP
-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. \fBversaterm\fR, \fBctrm\fR).
-.PP
-Following the root name, you may add any reasonable number of hyphen-separated
-feature suffixes.
-.TP 5
-2p
-Has two pages of memory. Likewise 4p, 8p, etc.
-.TP 5
-mc
-Magic-cookie. Some terminals (notably older Wyses) can only support one
-attribute without magic-cookie lossage. Their base entry is usually paired
-with another that has this suffix and uses magic cookies to support multiple
-attributes.
-.TP 5
--am
-Enable auto-margin (right-margin wraparound)
-.TP 5
--m
-Mono mode - suppress color support
-.TP 5
--na
-No arrow keys - termcap ignores arrow keys which are actually there on the
-terminal, so the user can use the arrow keys locally.
-.TP 5
--nam
-No auto-margin - suppress am capability
-.TP 5
--nl
-No labels - suppress soft labels
-.TP 5
--nsl
-No status line - suppress status line
-.TP 5
--pp
-Has a printer port which is used.
-.TP 5
--rv
-Terminal in reverse video mode (black on white)
-.TP 5
--s
-Enable status line.
-.TP 5
--vb
-Use visible bell (flash) rather than beep.
-.TP 5
--w
-Wide; terminal is in 132 column mode.
-.PP
-Conventionally, if your terminal type is a variant 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
-\fBfubar-30-rv\fR (rather than, say, `fubar-rv-30').
-.PP
-Terminal types that are written not as standalone entries, but rather as
-components to be plugged into other entries via \fBuse\fP capabilities,
-are distinguished by using embedded plus signs rather than dashes.
-.PP
-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 \fBTERM\fR environment variable when no -T option is specified.
-.SH PORTABILITY
-For maximum compatibility with older System V UNIXes, names and aliases
-should be unique within the first 14 characters.
-.SH FILES
-.TP 5
-\*d/?/*
-compiled terminal capability data base
-.TP 5
-/etc/inittab
-tty line initialization (AT&T-like UNIXes).
-.TP 5
-/etc/ttys
-tty line initialization (BSD-like UNIXes).
-.SH SEE ALSO
-\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/terminfo.head b/ncurses-5.3/man/terminfo.head
deleted file mode 100644
index a71f73b..0000000
--- a/ncurses-5.3/man/terminfo.head
+++ /dev/null
@@ -1,95 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH TERMINFO 5 "" "" "File Formats"
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-terminfo \- terminal capability data base
-.SH SYNOPSIS
-\*d/*/*
-.SH DESCRIPTION
-.I Terminfo
-is a data base describing terminals, used by screen-oriented programs such as
-\fBnvi\fR(1),
-\fBrogue\fR(1)
-and libraries such as
-\fBcurses\fR(3X).
-.I Terminfo
-describes terminals by giving a set of capabilities which they
-have, by specifying how to perform screen operations, and by
-specifying padding requirements and initialization sequences.
-.PP
-Entries in
-.I terminfo
-consist of a sequence of `,' separated fields (embedded commas may be
-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.
-The first name given is the most common abbreviation for the terminal,
-the last name given should be a long name fully identifying the terminal,
-and all others are understood as synonyms for the terminal name.
-All names but the last should be in lower case and contain no blanks;
-the last name may well contain upper case and blanks for readability.
-.PP
-Terminal names (except for the last, verbose entry) should
-be chosen using the following conventions.
-The particular piece of hardware making up the terminal should
-have a root name, thus ``hp2621''.
-This name should not contain hyphens.
-Modes that the hardware can be in, or user preferences, should
-be indicated by appending a hyphen and a mode suffix.
-Thus, a vt100 in 132 column mode would be vt100-w.
-The following suffixes should be used where possible:
-.PP
-.TS
-center ;
-l c l
-l l l.
-\fBSuffix Meaning Example\fP
--\fInn\fP Number of lines on the screen aaa-60
--\fIn\fPp 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
--na No arrow keys (leave them in local) c100-na
--nam Without automatic margins vt100-nam
--nl No status line att4415-nl
--ns No status line hp2626-ns
--rv Reverse video c100-rv
--s Enable status line vt100-s
--vb Use visible bell instead of beep wy370-vb
--w Wide mode (> 80 columns, usually 132) vt100-w
-.TE
-.PP
-For more on terminal naming conventions, see the \fBterm(7)\fR manual page.
-.SS Capabilities
-.\" Head of terminfo man page ends here
-.ps -1
diff --git a/ncurses-5.3/man/terminfo.tail b/ncurses-5.3/man/terminfo.tail
deleted file mode 100644
index 52ae7a4..0000000
--- a/ncurses-5.3/man/terminfo.tail
+++ /dev/null
@@ -1,1585 +0,0 @@
-.\" $Id$
-.\" Beginning of terminfo.tail file
-.ps +1
-.PP
-.SS A Sample Entry
-.PP
-The following entry, describing an ANSI-standard terminal, is representative
-of what a \fBterminfo\fR entry for a modern terminal typically looks like.
-.PP
-.nf
-.in -2
-.ta .3i
-.ft CW
-\s-2ansi|ansi/pc-term compatible with color,
- mc5i,
- colors#8, ncv#3, pairs#64,
- cub=\\E[%p1%dD, cud=\\E[%p1%dB, cuf=\\E[%p1%dC,
- cuu=\\E[%p1%dA, dch=\\E[%p1%dP, dl=\\E[%p1%dM,
- ech=\\E[%p1%dX, el1=\\E[1K, hpa=\\E[%p1%dG, ht=\\E[I,
- ich=\\E[%p1%d@, il=\\E[%p1%dL, indn=\\E[%p1%dS, .indn=\\E[%p1%dT,
- kbs=^H, kcbt=\\E[Z, kcub1=\\E[D, kcud1=\\E[B,
- kcuf1=\\E[C, kcuu1=\\E[A, kf1=\\E[M, kf10=\\E[V,
- kf11=\\E[W, kf12=\\E[X, kf2=\\E[N, kf3=\\E[O, kf4=\\E[P,
- kf5=\\E[Q, kf6=\\E[R, kf7=\\E[S, kf8=\\E[T, kf9=\\E[U,
- kich1=\\E[L, mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S,
- op=\\E[37;40m, rep=%p1%c\\E[%p2%{1}%-%db,
- rin=\\E[%p1%dT, s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B,
- s3ds=\\E+B, setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm,
- setb=\\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
- sgr0=\\E[0;10m, tbc=\\E[2g, u6=\\E[%d;%dR, u7=\\E[6n,
- u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%p1%dd,\s+2
-.in +2
-.fi
-.ft R
-.PP
-Entries may continue onto multiple lines by placing white space at
-the beginning of each line except the first.
-Comments may be included on lines beginning with ``#''.
-Capabilities in
-.I terminfo
-are of three types:
-Boolean capabilities which indicate that the terminal has
-some particular feature, numeric capabilities giving the size of the terminal
-or the size of particular delays, and string
-capabilities, which give a sequence which can be used to perform particular
-terminal operations.
-.PP
-.SS Types of Capabilities
-.PP
-All capabilities have names.
-For instance, the fact that
-ANSI-standard terminals have
-.I "automatic margins"
-(i.e., an automatic return and line-feed
-when the end of a line is reached) is indicated by the capability \fBam\fR.
-Hence the description of ansi includes \fBam\fR.
-Numeric capabilities are followed by the character `#' and then a positive value.
-Thus \fBcols\fR, which indicates the number of columns the terminal has,
-gives the value `80' for ansi.
-Values for numeric capabilities may be specified in decimal, octal or hexadecimal,
-using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF).
-.PP
-Finally, string valued capabilities, such as \fBel\fR (clear to end of line
-sequence) are given by the two-character code, an `=', and then a string
-ending at the next following `,'.
-.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
-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
-a newline, line-feed, return, tab, backspace, form-feed, and space.
-Other escapes include \fB\e^\fR for \fB^\fR,
-\fB\e\e\fR for \fB\e\fR,
-\fB\e\fR, for comma,
-\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).)
-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 `*'
-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
-.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 `/'
-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.
-.PP
-Sometimes individual capabilities must be commented out.
-To do this, put a period before the capability name.
-For example, see the second
-.B ind
-in the example above.
-.br
-.ne 5
-.PP
-.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
-that directory is searched.
-.PP
-If TERMINFO is not set, the \fBncurses\fR version of the terminfo reader code
-will instead look in the directory \fB$HOME/.terminfo\fR
-for a compiled description.
-If it fails to find one there, and the environment variable TERMINFO_DIRS is
-set, it will interpret the contents of that variable as a list of colon-
-separated directories to be searched (an empty entry is interpreted as a
-command to search \fI\*d\fR).
-If no description is found in any of the
-TERMINFO_DIRS directories, the fetch fails.
-.PP
-If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be the
-system terminfo directory, \fI\*d\fR.
-.PP
-(Neither the \fB$HOME/.terminfo\fR lookups nor TERMINFO_DIRS extensions are
-supported under stock System V terminfo/curses.)
-.PP
-.SS Preparing Descriptions
-.PP
-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
-and to build up a description gradually, using partial descriptions
-with
-.I vi
-or some other screen-oriented program to check that they are correct.
-Be aware that a very unusual terminal may expose deficiencies in
-the ability of the
-.I terminfo
-file to describe it
-or bugs in the screen-handling code of the test program.
-.PP
-To get the padding for insert line right (if the terminal manufacturer
-did not document it) a severe test is to edit a large file at 9600 baud,
-delete 16 or so lines from the middle of the screen, then hit the `u'
-key several times quickly.
-If the terminal messes up, more padding is usually needed.
-A similar test can be used for insert character.
-.PP
-.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
-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.
-If the terminal can clear its screen, leaving the cursor in the home
-position, then this is given by the \fBclear\fR string capability.
-If the terminal overstrikes
-(rather than clearing a position when a character is struck over)
-then it should have the \fBos\fR capability.
-If the terminal is a printing terminal, with no soft copy unit,
-give it both
-.B hc
-and
-.BR os .
-.RB ( os
-applies to storage scope terminals, such as \s-1TEKTRONIX\s+1 4010
-series, as well as hard copy and APL terminals.)
-If there is a code to move the cursor to the left edge of the current
-row, give this as
-.BR cr .
-(Normally this will be carriage return, control M.)
-If there is a code to produce an audible signal (bell, beep, etc)
-give this as
-.BR bel .
-.PP
-If there is a code to move the cursor one position to the left
-(such as backspace) that capability should be given as
-.BR cub1 .
-Similarly, codes to move to the right, up, and down should be
-given as
-.BR cuf1 ,
-.BR cuu1 ,
-and
-.BR cud1 .
-These local cursor motions should not alter the text they pass over,
-for example, you would not normally use `\fBcuf1\fP=\ ' because the
-space would erase the character moved over.
-.PP
-A very important point here is that the local cursor motions encoded
-in
-.I terminfo
-are undefined at the left and top edges of a \s-1CRT\s0 terminal.
-Programs should never attempt to backspace around the left edge,
-unless
-.B bw
-is 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
-(index) string.
-.PP
-To scroll text down, a program goes to the top left corner
-of the screen and sends the
-.B ri
-(reverse index) string.
-The strings
-.B ind
-and
-.B ri
-are undefined when not on their respective corners of the screen.
-.PP
-Parameterized versions of the scrolling sequences are
-.B indn
-and
-.B rin
-which have the same semantics as
-.B ind
-and
-.B ri
-except that they take one parameter, and scroll that many lines.
-They are also undefined except at the appropriate edge of the screen.
-.PP
-The \fBam\fR 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
-from the last column.
-The only local motion which is defined from the left edge is if
-.B bw
-is given, then a
-.B cub1
-from the left edge will move to the right edge of the previous row.
-If
-.B bw
-is not given, the effect is undefined.
-This is useful for drawing a box around the edge of the screen, for example.
-If the terminal has switch selectable automatic margins,
-the
-.I terminfo
-file usually assumes that this is on; i.e., \fBam\fR.
-If the terminal has a command which moves to the first column of the next
-line, that command can be given as
-.B nel
-(newline).
-It does not matter if the command clears the remainder of the current line,
-so if the terminal has no
-.B cr
-and
-.B lf
-it may still be possible to craft a working
-.B nel
-out of one or both of them.
-.PP
-These capabilities suffice to describe hard-copy and \*(lqglass-tty\*(rq terminals.
-Thus the model 33 teletype is described as
-.PP
-.DT
-.nf
-.ft CW
-.in -7
- \s-133\||\|tty33\||\|tty\||\|model 33 teletype,
- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
-.in +7
-.ft R
-.PP
-while the Lear Siegler \s-1ADM\-3\s0 is described as
-.PP
-.DT
-.nf
-.ft CW
-.in -7
- \s-1adm3\||\|3\||\|lsi adm3,
- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
- ind=^J, lines#24,\s+1
-.in +7
-.ft R
-.fi
-.PP
-.SS Parameterized Strings
-.PP
-Cursor addressing and other strings requiring parameters
-in the terminal are described by a
-parameterized string capability, with
-.IR printf (3S)
-like escapes \fB%x\fR in it.
-For example, to address the cursor, the
-.B cup
-capability is given, using two parameters:
-the row and column to address to.
-(Rows and columns are numbered from zero and refer to the
-physical screen visible to the user, not to any unseen memory.)
-If the terminal has memory relative cursor addressing,
-that can be indicated by
-.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
-parameters onto the stack and then print it in some format.
-Often more complex operations are necessary.
-.PP
-The \fB%\fR encodings have the following meanings:
-.PP
-.DT
-.nf
-.ta .5i 1.5i
- \s-1%% outputs `%'
- %\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP
- as in \fBprintf\fP, flags are [-+#] and space
- %c print pop() like %c in printf()
- %s print pop() like %s in printf()
-
- %p[1-9] push \fIi\fP'th parm
- %P[a-z] set dynamic variable [a-z] to pop()
- %g[a-z] get dynamic variable [a-z] and push it
- %P[A-Z] set static variable [a-z] to pop()
- %g[A-Z] get static variable [a-z] and push it
- %'\fIc\fP' char constant \fIc\fP
- %{\fInn\fP} integer constant \fInn\fP
- %l push strlen(pop)
-
- %+ %- %* %/ %m
- arithmetic (%m is mod): push(pop() op pop())
- %& %| %^ bit operations: push(pop() op pop())
- %= %> %< logical operations: push(pop() op pop())
- %A, %O logical and & or operations (for conditionals)
- %! %~ unary operations push(op pop())
- %i add 1 to first two parameters (for ANSI terminals)
-
- %? expr %t thenpart %e elsepart %;
- if-then-else, %e elsepart is optional.
- else-if's are possible a la Algol 68:
- %? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %;
-\s+1 c\di\u are conditions, b\di\u are bodies.
-.fi
-.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
-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
-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.
-.PP
-The Microterm \s-1ACT-IV\s0 needs the current row and column sent
-preceded by a \fB^T\fR, with the row and column simply encoded in binary,
-\*(lqcup=^T%p1%c%p2%c\*(rq.
-Terminals which use \*(lq%c\*(rq need to be able to
-backspace the cursor (\fBcub1\fR),
-and to move the cursor up one line on the screen (\fBcuu1\fR).
-This is necessary because it is not always safe to transmit \fB\en\fR
-\fB^D\fR and \fB\er\fR, as the system may change or discard them.
-(The library routines dealing with terminfo set tty modes so that
-tabs are never expanded, so \et is safe to send.
-This turns out to be essential for the Ann Arbor 4080.)
-.PP
-A final example is the \s-1LSI ADM\s0-3a, which uses row and column
-offset by a blank character, thus \*(lqcup=\eE=%p1%' '%+%c%p2%' '%+%c\*(rq.
-After sending `\eE=', this pushes the first parameter, pushes the
-ASCII value for a space (32), adds them (pushing the sum on the stack
-in place of the two previous values) and outputs that value as a character.
-Then the same is done for the second parameter.
-More complex arithmetic is possible using the stack.
-.PP
-.SS Cursor Motions
-.PP
-If the terminal has a fast way to home the cursor
-(to very upper left corner of screen) then this can be given as
-\fBhome\fR; similarly a fast way of getting to the lower left-hand corner
-can be given as \fBll\fR; this may involve going up with \fBcuu1\fR
-from the home position,
-but a program should never do this itself (unless \fBll\fR does) because it
-can make no assumption about the effect of moving up from the home position.
-Note that the home position is the same as addressing to (0,0):
-to the top left corner of the screen, not of memory.
-(Thus, the \eEH sequence on HP terminals cannot be used for
-.BR home .)
-.PP
-If the terminal has row or column absolute cursor addressing,
-these can be given as single parameter capabilities
-.B hpa
-(horizontal position absolute)
-and
-.B vpa
-(vertical position absolute).
-Sometimes these are shorter than the more general two parameter
-sequence (as with the hp2645) and can be used in preference to
-.BR cup .
-If there are parameterized local motions (e.g., move
-.I n
-spaces to the right) these can be given as
-.BR cud ,
-.BR cub ,
-.BR cuf ,
-and
-.BR cuu
-with a single parameter indicating how many spaces to move.
-These are primarily useful if the terminal does not have
-.BR cup ,
-such as the \s-1TEKTRONIX\s+1 4025.
-.PP
-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 \fBsmcup\fR and \fBrmcup\fR.
-This arises, for example, from terminals like the Concept with more than
-one page of memory.
-If the terminal has only memory relative cursor addressing and not screen
-relative cursor addressing, a one screen-sized window must be fixed into
-the terminal for cursor addressing to work properly.
-This is also used for the \s-1TEKTRONIX\s+1 4025,
-where
-.B smcup
-sets the command character to be the one used by terminfo.
-If the \fBsmcup\fP sequence will not restore the screen after an
-\fBrmcup\fP sequence is output (to the state prior to outputting
-\fBrmcup\fP), specify \fBnrrmc\fP.
-.PP
-.SS Area Clears
-.PP
-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 \fBel\fR.
-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 \fBel1\fP.
-If the terminal can clear from the current position to the end of the
-display, then this should be given as \fBed\fR.
-\fBEd\fR 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
-is not available.)
-.PP
-.SS Insert/delete line and vertical motions
-.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.
-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.
-Versions of
-.B il1
-and
-.B dl1
-which take a single parameter and insert or delete that many lines can
-be given as
-.B il
-and
-.BR dl .
-.PP
-If the terminal has a settable scrolling region (like the vt100)
-the command to set this can be described with the
-.B csr
-capability, which takes two parameters:
-the top and bottom lines of the scrolling region.
-The cursor position is, alas, undefined after using this command.
-.PP
-It is possible to get the effect of insert or delete line using
-.B csr
-on a properly chosen region; the
-.B sc
-and
-.B rc
-(save and restore cursor) commands may be useful for ensuring that
-your synthesized insert/delete string does not move the cursor.
-(Note that the \fBncurses\fR(3X) library does this synthesis
-automatically, so you need not compose insert/delete strings for
-an entry with \fBcsr\fR).
-.PP
-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 however also has insert/delete).
-.PP
-Inserting lines at the top or bottom of the screen can also be
-done using
-.B ri
-or
-.B ind
-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
-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,
-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
-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
-after scrolling if \fBndstr\fR is defined.
-.PP
-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
-.BR wind .
-The four parameters are the starting and ending lines in memory
-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
-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
-.SS Insert/Delete Character
-.PP
-There are two basic kinds of intelligent terminals with respect to
-insert/delete character which can be described using
-.I terminfo.
-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 \*(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
-mode.
-If typing characters causes the rest of the line to shift
-rigidly and characters to fall off the end, then your terminal does
-not distinguish between blanks and untyped positions.
-If the \*(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.
-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
-Terminfo can describe both terminals which have an insert mode, and terminals
-which send a simple sequence to open a blank position on the current line.
-Give as \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
-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
-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
-require previous smir, and most smir insert modes do not require \fBich1\fR
-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
-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
-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
-.BR smir / rmir
-and
-.B ich1
-can be given, and both will be used.
-The
-.B ich
-capability, with one parameter,
-.IR n ,
-will repeat the effects of
-.B ich1
-.I n
-times.
-.PP
-If padding is necessary between characters typed while not
-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
-the insertion position).
-If your terminal allows motion while in
-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
-(notably Datamedia's) must not have \fBmir\fR because of the way their
-insert mode works.
-.PP
-Finally, you can specify
-.B dch1
-to delete a single character,
-.B dch
-with one parameter,
-.IR n ,
-to delete
-.I n characters,
-and delete mode by giving \fBsmdc\fR and \fBrmdc\fR
-to enter and exit delete mode (any mode the terminal needs to be placed
-in for
-.B dch1
-to work).
-.PP
-A command to erase
-.I n
-characters (equivalent to outputting
-.I n
-blanks without moving the cursor)
-can be given as
-.B ech
-with one parameter.
-.PP
-.SS "Highlighting, Underlining, and Visible Bells"
-.PP
-If your terminal has one or more kinds of display attributes,
-these can be represented in a number of different ways.
-You should choose one display form as
-\f2standout mode\fR,
-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 \fBsmso\fR and \fBrmso\fR, 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 \fBxmc\fR should be given to tell how many spaces are left.
-.PP
-Codes to begin underlining and end underlining can be given as \fBsmul\fR
-and \fBrmul\fR respectively.
-If the terminal has a code to underline the current character and move
-the cursor one space to the right,
-such as the Microterm Mime,
-this can be given as \fBuc\fR.
-.PP
-Other capabilities to enter various highlighting modes include
-.B blink
-(blinking)
-.B bold
-(bold or extra bright)
-.B dim
-(dim or half-bright)
-.B invis
-(blanking or invisible text)
-.B prot
-(protected)
-.B rev
-(reverse video)
-.B sgr0
-(turn off
-.I all
-attribute modes)
-.B smacs
-(enter alternate character set mode)
-and
-.B rmacs
-(exit alternate character set mode).
-Turning on any of these modes singly may or may not turn off other modes.
-.PP
-If there is a sequence to set arbitrary combinations of modes,
-this should be given as
-.B sgr
-(set attributes),
-taking 9 parameters.
-Each parameter is either 0 or nonzero, as the corresponding attribute is on or off.
-The 9 parameters are, in order:
-standout, underline, reverse, blink, dim, bold, blank, protect, alternate
-character set.
-Not all modes need be supported by
-.BR sgr ,
-only those for which corresponding separate attribute commands exist.
-.PP
-For example, the DEC vt220 supports most of the modes:
-.PP
-.TS
-center;
-l c c
-l c c
-lw28 lw6 lw2 lw20.
-\fBtparm parameter attribute escape sequence\fP
-
-none none \\E[0m
-p1 standout \\E[0;1;7m
-p2 underline \\E[0;4m
-p3 reverse \\E[0;7m
-p4 blink \\E[0;5m
-p5 dim not available
-p6 bold \\E[0;1m
-p7 invis \\E[0;8m
-p8 protect not used
-p9 altcharset ^O (off) ^N (on)
-.TE
-.PP
-We begin each escape sequence by turning off any existing modes, since
-there is no quick way to determine whether they are active.
-Standout is set up to be the combination of reverse and bold.
-The vt220 terminal has a protect mode,
-though it is not commonly used in sgr
-because it protects characters on the screen from the host's erasures.
-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.
-.PP
-Some sequences are common to different modes.
-For example, ;7 is output when either p1 or p3 is true, that is, if
-either standout or reverse modes are turned on.
-.PP
-Writing out the above sequences, along with their dependencies yields
-.PP
-.TS
-center;
-l c c
-l c c
-lw28 lw6 lw2 lw20.
-\fBsequence when to output terminfo translation\fP
-
-\\E[0 always \\E[0
-;1 if p1 or p6 %?%p1%p6%|%t;1%;
-;4 if p2 %?%p2%|%t;4%;
-;5 if p4 %?%p4%|%t;5%;
-;7 if p1 or p3 %?%p1%p3%|%t;7%;
-;8 if p7 %?%p7%|%t;8%;
-m always m
-^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
-.TE
-.PP
-Putting this all together into the sgr sequence gives:
-.PP
-.nf
- sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
- %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;,
-.fi
-.PP
-Remember that if you specify sgr, you must also specify sgr0.
-.PP
-Terminals with the ``magic cookie'' glitch
-.RB ( xmc )
-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
-capability, asserting that it is safe to move in standout mode, is present.
-.PP
-If the terminal has
-a way of flashing the screen to indicate an error quietly (a bell replacement)
-then this can be given as \fBflash\fR; it must not move the cursor.
-.PP
-If the cursor needs to be made more visible than normal when it is
-not on the bottom line (to make, for example, a non-blinking underline into an
-easier to find block or blinking underline)
-give this sequence as
-.BR cvvis .
-If there is a way to make the cursor completely invisible, give that as
-.BR civis .
-The capability
-.BR cnorm
-should be given which undoes the effects of both of these modes.
-.PP
-If your terminal correctly generates underlined characters
-(with no special codes needed)
-even though it does not overstrike,
-then you should give the capability \fBul\fR.
-If a character overstriking another leaves both characters on the screen,
-specify the capability \fBos\fP.
-If overstrikes are erasable with a blank,
-then this should be indicated by giving \fBeo\fR.
-.PP
-.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
-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 \fBsmkx\fR and \fBrmkx\fR.
-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
-\fBkcub1, kcuf1, kcuu1, kcud1, \fRand\fB khome\fR respectively.
-If there are function keys such as f0, f1, ..., f10, the codes they send
-can be given as \fBkf0, kf1, ..., kf10\fR.
-If these keys have labels other than the default f0 through f10, the labels
-can be given as \fBlf0, lf1, ..., lf10\fR.
-The codes transmitted by certain other special keys can be given:
-.B kll
-(home down),
-.B kbs
-(backspace),
-.B ktbc
-(clear all tabs),
-.B kctab
-(clear the tab stop in this column),
-.B kclr
-(clear screen or erase key),
-.B kdch1
-(delete character),
-.B kdl1
-(delete line),
-.B krmir
-(exit insert mode),
-.B kel
-(clear to end of line),
-.B ked
-(clear to end of screen),
-.B kich1
-(insert character or enter insert mode),
-.B kil1
-(insert line),
-.B knp
-(next page),
-.B kpp
-(previous page),
-.B kind
-(scroll forward/down),
-.B kri
-(scroll backward/up),
-.B khts
-(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
-.BR ka1 ,
-.BR ka3 ,
-.BR kb2 ,
-.BR kc1 ,
-and
-.BR kc3 .
-These keys are useful when the effects of a 3 by 3 directional pad are needed.
-.PP
-Strings to program function keys can be given as
-.BR pfkey ,
-.BR pfloc ,
-and
-.BR pfx .
-A string to program screen labels should be specified as \fBpln\fP.
-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 numbers out of this range may program undefined keys in
-a terminal dependent manner.
-The difference between the capabilities is that
-.B pfkey
-causes pressing the given key to be the same as the user typing the
-given string;
-.B pfloc
-causes the string to be executed by the terminal in local; and
-.B pfx
-causes the string to be transmitted to the computer.
-.PP
-The capabilities \fBnlab\fP, \fBlw\fP and \fBlh\fP
-define the number of programmable
-screen labels and their width and height.
-If there are commands to turn the labels on and off,
-give them in \fBsmln\fP and \fBrmln\fP.
-\fBsmln\fP is normally output after one or more pln
-sequences to make sure that the change becomes visible.
-.PP
-.SS Tabs and Initialization
-.PP
-If the terminal has hardware tabs, the command to advance to the next
-tab stop can be given as
-.B ht
-(usually control I).
-A ``back-tab'' command which moves leftward to the preceding tab stop can
-be given as
-.BR cbt .
-By convention, if the teletype modes indicate that tabs are being
-expanded by the computer rather than being sent to the terminal,
-programs should not use
-.B ht
-or
-.B cbt
-even if they are present, since the user may not have the tab stops
-properly set.
-If the terminal has hardware tabs which are initially set every
-.I n
-spaces when the terminal is powered up,
-the numeric parameter
-.B it
-is given, showing the number of spaces the tabs are set to.
-This is normally used by the
-.IR tset
-command to determine whether to set the mode for hardware tab expansion,
-and whether to set the tab stops.
-If the terminal has tab stops that can be saved in non-volatile memory,
-the terminfo description can assume that they are properly set.
-.PP
-Other capabilities
-include
-.BR is1 ,
-.BR is2 ,
-and
-.BR is3 ,
-initialization strings for the terminal,
-.BR iprog ,
-the path name of a program to be run to initialize the terminal,
-and \fBif\fR, the name of a file containing long initialization strings.
-These strings are expected to set the terminal into modes consistent
-with the rest of the terminfo description.
-They are normally sent to the terminal, by the
-.I init
-option of the
-.IR tput
-program, each time the user logs in.
-They will be printed in the following order:
-run the program
-.BR iprog ;
-output
-.BR is1 ;
-.BR is2 ;
-set the margins using
-.BR mgc ,
-.BR smgl
-and
-.BR smgr ;
-set tabs using
-.B tbc
-and
-.BR hts ;
-print the file
-.BR if ;
-and finally
-output
-.BR is3 .
-.PP
-Most initialization is done with
-.BR is2 .
-Special terminal modes can be set up without duplicating strings
-by putting the common sequences in
-.B is2
-and special cases in
-.B is1
-and
-.BR is3 .
-A pair of sequences that does a harder reset from a totally unknown state
-can be analogously given as
-.BR rs1 ,
-.BR rs2 ,
-.BR rf ,
-and
-.BR rs3 ,
-analogous to
-.B is2
-and
-.BR if .
-These strings are output by the
-.IR reset
-program, which is used when the terminal gets into a wedged state.
-Commands are normally placed in
-.BR rs1 ,
-.BR rs2
-.B rs3
-and
-.B rf
-only if they produce annoying effects on the screen and are not
-necessary when logging in.
-For example, the command to set the vt100 into 80-column mode would
-normally be part of
-.BR is2 ,
-but it causes an annoying glitch of the screen and is not normally
-needed since the terminal is usually already in 80 column mode.
-.PP
-If there are commands to set and clear tab stops, they can be given as
-.B tbc
-(clear all tab stops)
-and
-.B hts
-(set a tab stop in the current column of every row).
-If a more complex sequence is needed to set the tabs than can be
-described by this, the sequence can be placed in
-.B is2
-or
-.BR if .
-.SS Delays and Padding
-.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
-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
-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
-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,
-then this can be given as \fBpad\fR.
-Only the first character of the
-.B pad
-string is used.
-.PP
-.SS Status Lines
-Some terminals have an extra `status line' which is not normally used by
-software (and thus not counted in the terminal's \fBlines\fR capability).
-.PP
-The simplest case is a status line which is cursor-addressable but not
-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
-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
-\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
-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
-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.
-.PP
-The \fBncurses\fR implementation does not yet use any of these capabilities.
-They are documented here in case they ever become important.
-.PP
-.SS Line Graphics
-.PP
-Many terminals have alternate character sets useful for forms-drawing.
-Terminfo and \fBcurses\fR build in support for the drawing characters
-supported by the VT100, with some characters from the AT&T 4410v1 added.
-This alternate character set may be specified by the \fBacsc\fR capability.
-.PP
-.TS H
-center expand;
-c l l c
-c l l c
-lw28 lw6 lw2 lw20.
-.\".TH
-\fBGlyph ACS Ascii VT100\fR
-\fBName Name Default Name\fR
-UK pound sign ACS_STERLING f }
-arrow pointing down ACS_DARROW v .
-arrow pointing left ACS_LARROW < ,
-arrow pointing right ACS_RARROW > +
-arrow pointing up ACS_UARROW ^ -
-board of squares ACS_BOARD # h
-bullet ACS_BULLET o ~
-checker board (stipple) ACS_CKBOARD : a
-degree symbol ACS_DEGREE \e f
-diamond ACS_DIAMOND + `
-greater-than-or-equal-to ACS_GEQUAL > z
-greek pi ACS_PI * {
-horizontal line ACS_HLINE - q
-lantern symbol ACS_LANTERN # i
-large plus or crossover ACS_PLUS + n
-less-than-or-equal-to ACS_LEQUAL < y
-lower left corner ACS_LLCORNER + m
-lower right corner ACS_LRCORNER + j
-not-equal ACS_NEQUAL ! |
-plus/minus ACS_PLMINUS # g
-scan line 1 ACS_S1 ~ o
-scan line 3 ACS_S3 - p
-scan line 7 ACS_S7 - r
-scan line 9 ACS_S9 \&_ s
-solid square block ACS_BLOCK # 0
-tee pointing down ACS_TTEE + w
-tee pointing left ACS_RTEE + u
-tee pointing right ACS_LTEE + t
-tee pointing up ACS_BTEE + v
-upper left corner ACS_ULCORNER + l
-upper right corner ACS_URCORNER + k
-vertical line ACS_VLINE | x
-.TE
-.PP
-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
-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
-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
-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
-terminals are Tektronix-like.
-.PP
-Some basic color capabilities are independent of the color method.
-The numeric
-capabilities \fBcolors\fR and \fBpairs\fR specify the maximum numbers of colors
-and color-pairs that can be displayed simultaneously.
-The \fBop\fR (original
-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
-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.
-.PP
-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
-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
-supports other escape sequences to set background and foreground, they should
-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
-single numeric argument each.
-Argument values 0-7 are portably defined as
-follows (the middle column is the symbolic #define available in the header for
-the \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
-.TS H
-center;
-l c c c
-l l n l.
-\fBColor #define Value RGB\fR
-black \fBCOLOR_BLACK\fR 0 0, 0, 0
-red \fBCOLOR_RED\ \fR 1 max,0,0
-green \fBCOLOR_GREEN\fR 2 0,max,0
-yellow \fBCOLOR_YELLOW\fR 3 max,max,0
-blue \fBCOLOR_BLUE\fR 4 0,0,max
-magenta \fBCOLOR_MAGENTA\fR 5 max,0,max
-cyan \fBCOLOR_CYAN\fR 6 0,max,max
-white \fBCOLOR_WHITE\fR 7 max,max,max
-.TE
-.PP
-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
-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
-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
-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
-foreground colors.
-These parameters must be (Red, Green, Blue) or
-(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
-attributes understood by \fBcurses\fR is as follows:
-.PP
-.TS
-center;
-l c c
-lw25 lw2 lw10.
-\fBAttribute Bit Decimal\fR
-A_STANDOUT 0 1
-A_UNDERLINE 1 2
-A_REVERSE 2 4
-A_BLINK 3 8
-A_DIM 4 16
-A_BOLD 5 32
-A_INVIS 6 64
-A_PROTECT 7 128
-A_ALTCHARSET 8 256
-.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
-an \fBncv\fR capability of 2.
-.PP
-SVr4 curses does nothing with \fBncv\fR, ncurses recognizes it and optimizes
-the output in favor of colors.
-.PP
-.SS Miscellaneous
-If the terminal requires other than a null (zero) character as a pad, then this
-can be given as pad.
-Only the first character of the pad string is used.
-If the terminal does not have a pad character, specify npc.
-Note that ncurses implements the termcap-compatible \fBPC\fR variable;
-though the application may set this value to something other than
-a null, ncurses will test \fBnpc\fR first and use napms if the terminal
-has no pad character.
-.PP
-If the terminal can move up or down half a line,
-this can be indicated with
-.B hu
-(half-line up)
-and
-.B hd
-(half-line down).
-This is primarily useful for superscripts and subscripts on hard-copy terminals.
-If a hard-copy terminal can eject to the next page (form feed), give this as
-.B ff
-(usually control L).
-.PP
-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
-.BR rep .
-The first parameter is the character to be repeated and the second
-is the number of times to repeat it.
-Thus, tparm(repeat_char, 'x', 10) is the same as `xxxxxxxxxx'.
-.PP
-If the terminal has a settable command character, such as the \s-1TEKTRONIX\s+1 4025,
-this can be indicated with
-.BR cmdch .
-A prototype command character is chosen which is used in all capabilities.
-This character is given in the
-.B cmdch
-capability to identify it.
-The following convention is supported on some UNIX systems:
-The environment is to be searched for a
-.B CC
-variable, and if found, all
-occurrences of the prototype character are replaced with the character
-in the environment variable.
-.PP
-Terminal descriptions that do not represent a specific kind of known
-terminal, such as
-.IR switch ,
-.IR dialup ,
-.IR patch ,
-and
-.IR network ,
-should include the
-.B gn
-(generic) capability so that programs can complain that they do not know
-how to talk to the terminal.
-(This capability does not apply to
-.I virtual
-terminal descriptions for which the escape sequences are known.)
-.PP
-If the terminal has a ``meta key'' which acts as a shift key,
-setting the 8th bit of any character transmitted, this fact can
-be indicated with
-.BR km .
-Otherwise, software will assume that the 8th bit is parity and it
-will usually be cleared.
-If strings exist to turn this ``meta mode'' on and off, they
-can be given as
-.B smm
-and
-.BR rmm .
-.PP
-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
-.BR lm .
-A value of
-.BR lm #0
-indicates that the number of lines is not fixed,
-but that there is still more memory than fits on the screen.
-.PP
-If the terminal is one of those supported by the \s-1UNIX\s+1 virtual
-terminal protocol, the terminal number can be given as
-.BR vt .
-.PP
-Media copy
-strings which control an auxiliary printer connected to the terminal
-can be given as
-.BR mc0 :
-print the contents of the screen,
-.BR mc4 :
-turn off the printer, and
-.BR mc5 :
-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 terminal screen
-when the printer is on.
-A variation
-.B mc5p
-takes one parameter, and leaves the printer on for as many characters
-as the value of the parameter, then turns the printer off.
-The parameter should not exceed 255.
-All text, including
-.BR mc4 ,
-is transparently passed to the printer while an
-.B mc5p
-is in effect.
-.PP
-.SS Glitches and Braindamage
-.PP
-Hazeltine terminals, which do not allow `~' characters to be displayed should
-indicate \fBhz\fR.
-.PP
-Terminals which ignore a line-feed immediately after an \fBam\fR wrap,
-such as the Concept and vt100,
-should indicate \fBxenl\fR.
-.PP
-If
-.B el
-is required to get rid of standout
-(instead of merely writing normal text on top of it),
-\fBxhp\fP should be given.
-.PP
-Teleray terminals, where tabs turn all characters moved over to blanks,
-should indicate \fBxt\fR (destructive tabs).
-Note: the variable indicating this is now `dest_tabs_magic_smso'; in
-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
-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
-.BR xsb ,
-indicating that the f1 key is used for escape and f2 for control C.
-(Only certain Superbees have this problem, depending on the ROM.)
-Note that in older terminfo versions, this capability was called
-`beehive_glitch'; it is now `no_esc_ctl_c'.
-.PP
-Other specific terminal problems may be corrected by adding more
-capabilities of the form \fBx\fR\fIx\fR.
-.PP
-.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
-definition of the variant, the string capability \fBuse\fR can be given with
-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
-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
-use reference that imports it, where \fIxx\fP is the capability.
-For example, the entry
-.PP
- 2621-nl, smkx@, rmkx@, use=2621,
-.PP
-defines a 2621-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities,
-and hence does not turn on the function key labels when in visual mode.
-This is useful for different modes for a terminal, or for different
-user preferences.
-.PP
-.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
-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
-the termcap library, so that makes the maximum safe length for a termcap entry
-1k-1 (1023) bytes.
-Depending on what the application and the termcap library
-being used does, and where in the termcap file the terminal type that tgetent()
-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
-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
-tacks on another termcap entry to the end of the current one, to add
-on its capabilities.
-If a termcap entry doesn't use the "tc"
-capability, then of course the two lengths are the same.
-.PP
-The "before tc expansion" length is the most important one, because it
-affects more than just users of that particular terminal.
-This is the
-length of the entry as it exists in /etc/termcap, minus the
-backslash-newline pairs, which tgetent() strips out while reading it.
-Some termcap libraries strip off the final newline, too (GNU termcap does not).
-Now suppose:
-.TP 5
-*
-a termcap entry before expansion is more than 1023 bytes long,
-.TP 5
-*
-and the application has only allocated a 1k buffer,
-.TP 5
-*
-and the termcap library (like the one in BSD/OS 1.1 and GNU) reads
-the whole entry into the buffer, no matter what its length, to see
-if it's the entry it wants,
-.TP 5
-*
-and tgetent() is searching for a terminal type that either is the
-long entry, appears in the termcap file after the long entry, or
-doesn't appear in the file at all (so that tgetent() has to search
-the whole 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
-as undesirable with a termcap library, like SunOS 4.1.3 and Ultrix 4.4, that
-prints warning messages when it reads an overly long termcap entry.
-If a
-termcap library truncates long entries, like OSF/1 3.0, it is immune to dying
-here but will return incorrect data for the terminal.
-.PP
-The "after tc expansion" length will have a similar effect to the
-above, but only for people who actually set TERM to that terminal
-type, since tgetent() only does "tc" expansion once it's found the
-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
-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
-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
-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.
-.SH EXTENSIONS
-Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, don't
-interpret the %A and %O operators in parameter strings.
-.PP
-SVr4/XPG4 do not specify whether \fBmsgr\fR licenses movement while in
-an alternate-character-set mode (such modes may, among other things, map
-CR and NL to characters that don't trigger local motions).
-The \fBncurses\fR implementation ignores \fBmsgr\fR in \fBALTCHARSET\fR
-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
-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
-not documented in SVr4 or the XSI Curses standard.
-They are deduced from the
-documentation for the AT&T 505 terminal.
-.PP
-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
-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 --
-These support all SVr4 capabilities.
-.PP
-\fBSGI\fR --
-Supports the SVr4 set, adds one undocumented extended string
-capability (\fBset_pglen\fR).
-.PP
-\fBSVr1, Ultrix\fR --
-These support a restricted subset of terminfo capabilities.
-The booleans
-end with \fBxon_xoff\fR; the numerics with \fBwidth_status_line\fR; and the
-strings with \fBprtr_non\fR.
-.PP
-\fBHP/UX\fR --
-Supports the SVr1 subset, plus the SVr[234] numerics \fBnum_labels\fR,
-\fBlabel_height\fR, \fBlabel_width\fR, plus function keys 11 through 63, plus
-\fBplab_norm\fR, \fBlabel_on\fR, and \fBlabel_off\fR, plus some incompatible
-extensions in the string table.
-.PP
-\fBAIX\fR --
-Supports the SVr1 subset, plus function keys 11 through 63, plus a number
-of incompatible string table extensions.
-.PP
-\fBOSF\fR --
-Supports both the SVr4 set and the AIX extensions.
-.SH FILES
-.TP 25
-\*d/?/*
-files containing terminal descriptions
-.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.
-Based on pcurses by Pavel Curtis.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/tic.1m b/ncurses-5.3/man/tic.1m
deleted file mode 100644
index 8df4577..0000000
--- a/ncurses-5.3/man/tic.1m
+++ /dev/null
@@ -1,311 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH tic 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBtic\fR - the \fIterminfo\fR entry-description compiler
-.SH SYNOPSIS
-\fBtic\fR
-[\fB\-\
-1\
-C\
-G\
-I\
-L\
-N\
-T\
-V\
-a\
-c\
-f\
-g\
-r\
-s\
-t\
-x\
-\fR]
-[\fB-e\fR \fInames\fR]
-[\fB-o\fR \fIdir\fR]
-[\fB-R\fR \fIsubset\fR]
-[\fB-v\fR[\fIn\fR]]
-[\fB-w\fR[\fIn\fR]]
-\fIfile\fR
-.br
-.SH DESCRIPTION
-The command \fBtic\fR translates a \fBterminfo\fR file from source
-format into compiled format. The compiled format is necessary for use with
-the library routines in \fBncurses\fR(3X).
-.PP
-The results are normally placed in the system terminfo
-directory \fB\*d\fR. There are two ways to change this behavior.
-.PP
-First, you may override the system default by setting the variable
-\fBTERMINFO\fR in your shell environment to a valid (existing) directory name.
-.PP
-Secondly, if \fBtic\fR cannot get access to \fI\*d\fR or your TERMINFO
-directory, it looks for the directory \fI$HOME/.terminfo\fR; if that directory
-exists, the entry is placed there.
-.PP
-Libraries that read terminfo entries are expected to check for a TERMINFO
-directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and
-finally look in \fI\*d\fR.
-.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-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
-will print warnings about entries which, after use resolution, are more than
-1023 (4096) bytes long. Due to a fixed buffer length in older termcap
-libraries (and a documented limit in terminfo), these entries may cause core
-dumps.
-.TP
-\fB-e \fR\fInames\fR
-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 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-L\fR
-Force source translation to terminfo format
-using the long C variable names listed in <\fBterm.h\fR>
-.TP
-\fB-N\fR
-Disable smart defaults.
-Normally, when translating from termcap to terminfo, the compiler makes
-a number of assumptions about the defaults of string capabilities
-\fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR,
-\fBcursor_down\fR, \fBscroll_forward\fR, \fBtab\fR, \fBnewline\fR,
-\fBkey_backspace\fR, \fBkey_left\fR, and \fBkey_down\fR, then attempts
-to use obsolete termcap capabilities to deduce correct values. It also
-normally suppresses output of obsolete termcap capabilities such as \fBbs\fR.
-This option forces a more literal translation that also preserves the
-obsolete capabilities.
-.TP
-\fB-o\fR\fIdir\fR
-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
-versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
-the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX 3.x
-that have their own extensions incompatible with SVr4/XSI. Available subsets
-are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details.
-.TP
-\fB-r\fR
-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
-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\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-w\fR\fIn\fR
-specifies the width of the output.
-.TP
-\fB-x\fR
-Treat unknown capabilities as user-defined.
-That is, if you supply a capability name which \fBtic\fP does not recognize,
-it will infer its type (boolean, number or string) from the syntax and
-make an extended table entry for that.
-.TP
-\fIfile\fR
-contains one or more \fBterminfo\fR terminal descriptions in source
-format [see \fBterminfo\fR(\*n)]. Each description in the file
-describes the capabilities of a particular terminal.
-.PP
-The debug flag levels are as follows:
-.TP
-1
-Names of files created and linked
-.TP
-2
-Information related to the ``use'' facility
-.TP
-3
-Statistics from the hashing algorithm
-.TP
-5
-String-table memory allocations
-.TP
-7
-Entries into the string-table
-.TP
-8
-List of tokens encountered by scanner
-.TP
-9
-All values computed in construction of the hash table
-.LP
-If the debug level \fIn\fR is not given, it is taken to be one.
-.PP
-All but one of the capabilities recognized by \fBtic\fR are documented
-in \fBterminfo\fR(\*n). The exception is the \fBuse\fR capability.
-
-When a \fBuse\fR=\fIentry\fR-\fIname\fR field is discovered in a
-terminal entry currently being compiled, \fBtic\fR reads in the binary
-from \fB\*d\fR to complete the entry. (Entries created from
-\fIfile\fR will be used first. If the environment variable
-\fBTERMINFO\fR is set, that directory is searched instead of
-\fB\*d\fR.) \fBtic\fR duplicates the capabilities in
-\fIentry\fR-\fIname\fR for the current entry, with the exception of
-those capabilities that explicitly are defined in the current entry.
-
-When an entry, e.g., \fBentry_name_1\fR, contains a
-\fBuse=\fR\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled
-capabilities in \fIentry\fR_\fIname\fR_\fI2\fR must also appear in
-\fBentry_name_1\fR before \fBuse=\fR for these capabilities to be
-canceled in \fBentry_name_1\fR.
-
-If the environment variable \fBTERMINFO\fR is set, the compiled
-results are placed there instead of \fB\*d\fR.
-
-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 long filenames, 14 characters otherwise)
-will be truncated to the maximum alias length and a warning message will be printed.
-.SH COMPATIBILITY
-There is some evidence that historic \fBtic\fR implementations treated
-description fields with no whitespace in them as additional aliases or
-short names. This \fBtic\fR does not do that, but it does warn when
-description fields may be treated that way and check them for dangerous
-characters.
-.SH EXTENSIONS
-Unlike the stock SVr4 \fBtic\fR command, this implementation can actually
-compile termcap sources. In fact, entries in terminfo and termcap syntax can
-be mixed in a single source file. See \fBterminfo\fR(\*n) for the list of
-termcap names taken to be equivalent to terminfo names.
-
-The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR
-capabilities.
-This implementation of \fBtic\fR will find \fBuse\fR targets anywhere
-in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if
-\fBTERMINFO\fR is defined), or in the user's \fI$HOME/.terminfo\fR directory
-(if it exists), or (finally) anywhere in the system's file tree of
-compiled entries.
-
-The error messages from this \fBtic\fR have the same format as GNU C
-error messages, and can be parsed by GNU Emacs's compile facility.
-
-The
-\fB-C\fR,
-\fB-G\fR,
-\fB-I\fR,
-\fB-N\fR,
-\fB-R\fR,
-\fB-T\fR,
-\fB-V\fR,
-\fB-a\fR,
-\fB-e\fR,
-\fB-f\fR,
-\fB-g\fR,
-\fB-o\fR,
-\fB-r\fR,
-\fB-s\fR,
-\fB-t\fR and
-\fB-x\fR
-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
-\fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
-.SH FILES
-.TP 5
-\fB\*d/?/*\fR
-Compiled terminal description database.
-.SH SEE ALSO
-\fB@INFOCMP@\fR(1M), \fB@CAPTOINFO@\fR(1M), \fB@INFOTOCAP@\fR(1M),
-\fB@TOE@\fR(1M), \fBcurses\fR(3X), \fBterminfo\fR(\*n).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/toe.1m b/ncurses-5.3/man/toe.1m
deleted file mode 100644
index 8b6e546..0000000
--- a/ncurses-5.3/man/toe.1m
+++ /dev/null
@@ -1,81 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH toe 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBtoe\fR - table of (terminfo) entries
-.SH SYNOPSIS
-\fBtoe\fR [\fB-v\fR[\fIn\fR]] [\fB-huUV\fR] \fIfile...\fR
-.br
-.SH DESCRIPTION
-.PP
-With no options, \fBtoe\fR lists all available terminal types by primary name
-with descriptions. File arguments specify the directories to be scanned; if no
-such arguments are given, your default terminfo directory is scanned. If you
-also specify the -h option, a directory header will be issued as each
-directory is entered.
-.PP
-There are other options intended for use by terminfo file maintainers:
-.TP
-\fB-u\fR \fIfile\fR
-says to issue a report on dependencies in the given file. This report condenses
-the `use' relation: each line consists of the primary name of a terminal that
-has use capabilities, followed by a colon, followed by the
-whitespace-separated primary names of all terminals which occur in those use
-capabilities, followed by a newline
-.TP
-\fB-U\fR \fIfile\fR
-says to issue a report on reverse dependencies in the given file. This report
-reverses the `use' relation: each line consists of the primary name of a
-terminal that occurs in use capabilities, followed by a colon, followed by the
-whitespace-separated primary names of all terminals which depend on it,
-followed by a newline.
-.TP
-\fB-v\fR\fIn\fR
-specifies that (verbose) output be written to standard error trace
-information showing \fBtoe\fR's progress. The optional integer
-\fIn\fR is a number from 1 to 10, interpreted as for \fBtic\fR(1).
-.TP 5
-\fB-V\fR
-reports the version of ncurses which was used in this program, and exits.
-.SH FILES
-.TP 5
-\fB\*d/?/*\fR
-Compiled terminal description database.
-.SH SEE ALSO
-\fB@TIC@\fR(1M), \fB@INFOCMP@\fR(1M), \fB@CAPTOINFO@\fR(1M),
-\fB@INFOTOCAP@\fR(1M), \fBcurses\fR(3X), \fBterminfo\fR(\*n).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/tput.1 b/ncurses-5.3/man/tput.1
deleted file mode 100644
index 7cac9fb..0000000
--- a/ncurses-5.3/man/tput.1
+++ /dev/null
@@ -1,288 +0,0 @@
-'\" 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$
-.TH tput 1 ""
-.ds d @TERMINFO@
-.ds n 1
-.SH NAME
-\fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
-.SH SYNOPSIS
-\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
-.br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR
-.br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR
-.br
-\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
-.br
-\fBtput -S\fR \fB<<\fR
-.br
-\fBtput -V\fR
-.br
-.SH DESCRIPTION
-The \fBtput\fR utility uses the \fBterminfo\fR database to make the
-values of terminal-dependent capabilities and information available to
-the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
-return the long name of the requested terminal type. \fBtput\fR
-outputs a string if the attribute (\fIcap\fRability \fIname\fR) is of
-type string, or an integer if the attribute is of type integer. If
-the attribute is of type boolean, \fBtput\fR simply sets the exit code
-(\fB0\fR for TRUE if the terminal has the capability, \fB1\fR for
-FALSE if it does not), and produces no output. Before using a value
-returned on standard output, the user should test the exit code
-[\fB$?\fR, see \fBsh\fR(1)] to be sure it is \fB0\fR.
-(See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
-For a complete list of capabilities
-and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n).
-.TP
-\fB-T\fR\fItype\fR
-indicates the \fItype\fR of terminal. Normally this option is
-unnecessary, because the default is taken from the environment
-variable \fBTERM\fR. If \fB-T\fR is specified, then the shell
-variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the
-operating system will not be queried for the actual screen size.
-.TP
-\fIcapname\fR
-indicates the attribute from the \fBterminfo\fR database. When
-\fBtermcap\fR support is compiled in, the \fBtermcap\fR name for
-the attribute is also accepted.
-.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.
-.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
-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).
-.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
-\fBinit\fR
-If the \fBterminfo\fR database is present and an entry for the user's
-terminal exists (see \fB-T\fR\fItype\fR, above), the following will
-occur: (1) if present, the terminal's initialization strings will be
-output (\fBis1\fR, \fBis2\fR, \fBis3\fR, \fBif\fR, \fBiprog\fR), (2)
-any delays (e.g., newline) specified in the entry will be set in the
-tty driver, (3) tabs expansion will be turned on or off 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 the information needed for any of the four above activities,
-that activity will silently be skipped.
-.TP
-\fBreset\fR
-Instead of putting out initialization strings, the terminal's
-reset strings will be output if present (\fBrs1\fR, \fBrs2\fR, \fBrs3\fR, \fBrf\fR).
-If the reset strings are not present, but initialization
-strings are, the initialization strings will be output.
-Otherwise, \fBreset\fR acts identically to \fBinit\fR.
-.TP
-\fBlongname\fR
-If the \fBterminfo\fR database is present and an entry for the
-user's terminal exists (see \fB-T\fR\fItype\fR above), then the long name
-of the terminal will be put out. The long name is the last
-name in the first line of the terminal's description in the
-\fBterminfo\fR database [see \fBterm\fR(5)].
-.PP
-If \fBtput\fR is invoked by a link named \fBreset\fR, this has the
-same effect as \fBtput reset\fR.
-See \fBtset\fR for comparison, which has similar behavior.
-.SH EXAMPLES
-.TP 5
-\fBtput init\fR
-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
-illustrated on the \fBprofile\fR(5) manual page.
-.TP 5
-\fBtput -T5620 reset\fR
-Reset an AT&T 5620 terminal, overriding the type of
-terminal in the environmental variable \fBTERM\fR.
-.TP 5
-\fBtput cup 0 0\fR
-Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR
-(the upper left corner of the screen, usually known as the "home"
-cursor position).
-.TP 5
-\fBtput clear\fR
-Echo the clear-screen sequence for the current terminal.
-.TP 5
-\fBtput cols\fR
-Print the number of columns for the current terminal.
-.TP 5
-\fBtput -T450 cols\fR
-Print the number of columns for the 450 terminal.
-.TP 5
-\fBbold=`tput smso` offbold=`tput rmso`\fR
-Set the shell variables \fBbold\fR, to begin stand-out mode
-sequence, and \fBoffbold\fR, to end standout mode sequence,
-for the current terminal. This might be followed by a
-prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR
-.TP 5
-\fBtput hc\fR
-Set exit code to indicate if the current terminal is a hard copy terminal.
-.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
-variable \fBTERM\fR.
-.PP
-.RS 5
-\fBtput -S <<!\fR
-.br
-\fB> clear\fR
-.br
-\fB> cup 10 10\fR
-.br
-\fB> bold\fR
-.br
-\fB> !\fR
-.RE
-.TP 5
-\&
-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
-compiled terminal description database
-.TP
-\fB/usr/include/curses.h\fR
-\fBcurses\fR(3X) header file
-.TP
-\fB/usr/include/term.h\fR
-\fBterminfo\fR header file
-.TP
-\fB@DATADIR@/tabset/*\fR
-tab settings for some terminals, in a format
-appropriate to be output to the terminal (escape
-sequences that set margins and tabs); for more
-information, see the "Tabs and Initialization"
-section of \fBterminfo\fR(5)
-.SH EXIT CODES
-If the \fB-S\fR option is used,
-\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.
-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,
-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.
-.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
-.ne 15
-.TS
-l l.
-exit code error message
-=
-\fB0\fR T{
-(\fIcapname\fR is a numeric variable that is not specified in the
-\fBterminfo\fR(\*n) database for this terminal type, e.g.
-\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR)
-T}
-\fB1\fR no error message is printed, see the \fBEXIT CODES\fR section.
-\fB2\fR usage error
-\fB3\fR unknown terminal \fItype\fR or no \fBterminfo\fR database
-\fB4\fR unknown \fBterminfo\fR capability \fIcapname\fR
-\fB>4\fR error occurred in -S
-=
-.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:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/man/tset.1 b/ncurses-5.3/man/tset.1
deleted file mode 100644
index ddc04a7..0000000
--- a/ncurses-5.3/man/tset.1
+++ /dev/null
@@ -1,250 +0,0 @@
-.\"***************************************************************************
-.\" 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$
-.TH tset 1 ""
-.SH NAME
-\fBtset\fR, \fBreset\fR - terminal initialization
-.SH SYNOPSIS
-tset [-IQVqrs] [-] [-e \fIch\fR] [-i \fIch\fR] [-k \fIch\fR] [-m \fImapping\fR] [\fIterminal\fR]
-.br
-reset [-IQVqrs] [-] [-e \fIch\fR] [-i \fIch\fR] [-k \fIch\fR] [-m \fImapping\fR] [\fIterminal\fR]
-.SH DESCRIPTION
-\&\fBTset\fR initializes terminals.
-\fBTset\fR first determines the type of terminal that you are using.
-This determination is done as follows, using the first terminal type found.
-.PP
-1. The \fBterminal\fR argument specified on the command line.
-.PP
-2. The value of the \fBTERM\fR environmental variable.
-.PP
-3. (BSD systems only.) The terminal type associated with the standard
-error output device in the \fI/etc/ttys\fR file. (On Linux and
-System-V-like UNIXes, \fIgetty\fR does this job by setting
-\fBTERM\fR according to the type passed to it by \fI/etc/inittab\fR.)
-.PP
-4. The default terminal type, ``unknown''.
-.PP
-If the terminal type was not specified on the command-line, the -m
-option mappings are then applied (see below for more information).
-Then, if the terminal type begins with a question mark (``?''), the
-user is prompted for confirmation of the terminal type. An empty
-response confirms the type, or, another type can be entered to specify
-a new type. Once the terminal type has been determined, the terminfo
-entry for the terminal is retrieved. If no terminfo entry is found
-for the type, the user is prompted for another terminal type.
-.PP
-Once the terminfo entry is retrieved, the window size, backspace, interrupt
-and line kill characters (among many other things) are set and the terminal
-and tab initialization strings are sent to the standard error output.
-Finally, if the erase, interrupt and line kill characters have changed,
-or are not set to their default values, their values are displayed to the
-standard error output.
-.PP
-When invoked as \fBreset\fR, \fBtset\fR sets cooked and echo modes,
-turns off cbreak and raw modes, turns on newline translation and
-resets any unset special characters to their default values before
-doing the terminal initialization described above. This is useful
-after a program dies leaving a terminal in an abnormal state. Note,
-you may have to type
-
- \fB<LF>reset<LF>\fR
-
-(the line-feed character is normally control-J) to get the terminal
-to work, as carriage-return may no longer work in the abnormal state.
-Also, the terminal will often not echo the command.
-.PP
-The options are as follows:
-.TP 5
--q
-The terminal type is displayed to the standard output, and the terminal is
-not initialized in any way. The option `-' by itself is equivalent but
-archaic.
-.TP 5
--e
-Set the erase character to \fIch\fR.
-.TP 5
--I
-Do not send the terminal or tab initialization strings to the terminal.
-.TP 5
--Q
-Don't display any values for the erase, interrupt and line kill characters.
-.TP
-\fB-V\fR
-reports the version of ncurses which was used in this program, and exits.
-.TP 5
--i
-Set the interrupt character to \fIch\fR.
-.TP 5
--k
-Set the line kill character to \fIch\fR.
-.TP 5
--m
-Specify a mapping from a port type to a terminal.
-See below for more information.
-.TP 5
--r
-Print the terminal type to the standard error output.
-.TP 5
--s
-Print the sequence of shell commands to initialize the environment variable
-\fBTERM\fR to the standard output.
-See the section below on setting the environment for details.
-.PP
-The arguments for the -e, -i, and -k
-options may either be entered as actual characters or by using the `hat'
-notation, i.e. control-h may be specified as ``^H'' or ``^h''.
-.SH SETTING THE ENVIRONMENT
-It is often desirable to enter the terminal type and information about
-the terminal's capabilities into the shell's environment.
-This is done using the -s option.
-.PP
-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 \fBSHELL\fR environmental variable ends in ``csh'', the commands
-are for \fBcsh\fR, otherwise, they are for \fBsh\fR.
-Note, the \fBcsh\fR commands set and unset the shell variable
-\fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR
-or \fB.profile\fR files will initialize the environment correctly:
-
- eval \`tset -s options ... \`
-
-.SH TERMINAL TYPE MAPPING
-When the terminal is not hardwired into the system (or the current
-system information is incorrect) the terminal type derived from the
-\fI/etc/ttys\fR file or the \fBTERM\fR environmental variable is often
-something generic like \fBnetwork\fR, \fBdialup\fR, or \fBunknown\fR.
-When \fBtset\fR is used in a startup script it is often desirable to
-provide information about the type of terminal used on such ports.
-.PP
-The purpose of the -m option is to map
-from some set of conditions to a terminal type, that is, to
-tell \fBtset\fR
-``If I'm on this port at a particular speed, guess that I'm on that
-kind of terminal''.
-.PP
-The argument to the -m option consists of an optional port type, an
-optional operator, an optional baud rate specification, an optional
-colon (``:'') character and a terminal type. The port type is a
-string (delimited by either the operator or the colon character). The
-operator may be any combination of ``>'', ``<'', ``@'', and ``!''; ``>''
-means greater than, ``<'' means less than, ``@'' means equal to
-and ``!'' inverts the sense of the test.
-The baud rate is specified as a number and is compared with the speed
-of the standard error output (which should be the control terminal).
-The terminal type is a string.
-.PP
-If the terminal type is not specified on the command line, the -m
-mappings are applied to the terminal type. If the port type and baud
-rate match the mapping, the terminal type specified in the mapping
-replaces the current type. If more than one mapping is specified, the
-first applicable mapping is used.
-.PP
-For example, consider the following mapping: \fBdialup>9600:vt100\fR.
-The port type is dialup , the operator is >, the baud rate
-specification is 9600, and the terminal type is vt100. The result of
-this mapping is to specify that if the terminal type is \fBdialup\fR,
-and the baud rate is greater than 9600 baud, a terminal type of
-\fBvt100\fR will be used.
-.PP
-If no baud rate is specified, the terminal type will match any baud rate.
-If no port type is specified, the terminal type will match any port type.
-For example, \fB-m dialup:vt100 -m :?xterm\fR
-will cause any dialup port, regardless of baud rate, to match the terminal
-type vt100, and any non-dialup port type to match the terminal type ?xterm.
-Note, because of the leading question mark, the user will be
-queried on a default port as to whether they are actually using an xterm
-terminal.
-.PP
-No whitespace characters are permitted in the -m option argument.
-Also, to avoid problems with meta-characters, it is suggested that the
-entire -m option argument be placed within single quote characters,
-and that \fBcsh\fR users insert a backslash character (``\e'') before
-any exclamation marks (``!'').
-.SH HISTORY
-The \fBtset\fR command appeared in BSD 3.0. The \fBncurses\fR implementation
-was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric
-S. Raymond <esr@snark.thyrsus.com>.
-.SH COMPATIBILITY
-The \fBtset\fR utility has been provided for backward-compatibility with BSD
-environments (under most modern UNIXes, \fB/etc/inittab\fR and \fIgetty\fR(1)
-can set \fBTERM\fR appropriately for each dial-up line; this obviates what was
-\fBtset\fR's most important use). This implementation behaves like 4.4BSD
-tset, with a few exceptions specified here.
-.PP
-The -S option of BSD tset no longer works; it prints an error message to stderr
-and dies. The -s option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these
-changes are because the \fBTERMCAP\fR variable is no longer supported under
-terminfo-based \fBncurses\fR, which makes \fBtset -S\fR useless (we made it die
-noisily rather than silently induce lossage).
-.PP
-There was an undocumented 4.4BSD feature that invoking tset via a link named
-`TSET` (or via any other name beginning with an upper-case letter) set the
-terminal to use upper-case only. This feature has been omitted.
-.PP
-The -A, -E, -h, -u and -v options were deleted from the \fBtset\fR
-utility in 4.4BSD. None of them were documented in 4.3BSD and all are
-of limited utility at best. The -a, -d, and -p options are similarly
-not documented or useful, but were retained as they appear to be in
-widespread use. It is strongly recommended that any usage of these
-three options be changed to use the -m option instead. The
--n option remains, but has no effect. The -adnp options are therefore
-omitted from the usage summary above.
-.PP
-It is still permissible to specify the -e, -i, and -k options without
-arguments, although it is strongly recommended that such usage be fixed to
-explicitly specify the character.
-.PP
-As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the -Q
-option. Also, the interaction between the - option and the \fIterminal\fR
-argument in some historic implementations of \fBtset\fR has been removed.
-.SH ENVIRONMENT
-The \fBtset\fR command uses the \fBSHELL\fR and \fBTERM\fR
-environment variables.
-.SH FILES
-.TP 5
-/etc/ttys
-system port name to terminal type mapping database (BSD versions only).
-.TP 5
-@TERMINFO@
-terminal capability database
-.SH SEE ALSO
-csh(1),
-sh(1),
-stty(1),
-tty(4),
-termcap(5),
-ttys(5),
-environ(7)
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
-
diff --git a/ncurses-5.3/man/wresize.3x b/ncurses-5.3/man/wresize.3x
deleted file mode 100644
index 37fdb41..0000000
--- a/ncurses-5.3/man/wresize.3x
+++ /dev/null
@@ -1,64 +0,0 @@
-.\"***************************************************************************
-.\" 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 <dickey@clark.net> 1996
-.\"
-.\" $Id$
-.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 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 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 AUTHOR
-Thomas Dickey (from an equivalent function written in 1988 for BSD curses).
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/menu/Makefile.in b/ncurses-5.3/menu/Makefile.in
deleted file mode 100644
index d1fc2aa..0000000
--- a/ncurses-5.3/menu/Makefile.in
+++ /dev/null
@@ -1,162 +0,0 @@
-# $Id$
-##############################################################################
-# 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"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1996,1997
-#
-# Makefile for menu source code.
-#
-# This makes the following:
-# libraries (normal/debug/profile/shared)
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_PROG = @INSTALL_PROG@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LD = @LD@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @CPPFLAGS@ \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(LIBTOOL) $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-MK_SHARED_LIB = @MK_SHARED_LIB@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-RANLIB = @RANLIB@
-
-IMPORT_LIB = @IMPORT_LIB@
-SHARED_LIB = @SHARED_LIB@
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lmenu -lncurses @LIBS@
-
-AUTO_SRC = \
- ../include/menu.h \
- ../include/eti.h \
- ../include/mf_common.h
-
-################################################################################
-all \
-libs \
-install :: $(AUTO_SRC) $(LIBRARIES)
-
-sources : $(AUTO_SRC)
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-# make copies to simplify include-paths while still keeping menu's include
-# file in this directory.
-../include/menu.h : $(srcdir)/menu.h
- -rm -f $@
- cp $(srcdir)/menu.h $@
-../include/eti.h : $(srcdir)/eti.h
- -rm -f $@
- cp $(srcdir)/eti.h $@
-../include/mf_common.h : $(srcdir)/mf_common.h
- -rm -f $@
- cp $(srcdir)/mf_common.h $@
-
-MENU_PRIV_H = \
- $(srcdir)/menu.priv.h \
- $(AUTO_SRC) \
- ../include/curses.h
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/menu/READ.ME b/ncurses-5.3/menu/READ.ME
deleted file mode 100644
index 7867bc9..0000000
--- a/ncurses-5.3/menu/READ.ME
+++ /dev/null
@@ -1,15 +0,0 @@
-This is a clone of the menu library that is available with typical
-System V curses implementations (ETI).
-
-It is modelled after the documentation that comes for this library with
-a 386 based SVR4 implementation (ESIX).
-
-The development environment was and is an ELF based Linux system.
-
-For things that still need doing, see the TO-DO file in the top-level
-directory.
-
-Juergen Pfeifer
-
-Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en
-
diff --git a/ncurses-5.3/menu/eti.h b/ncurses-5.3/menu/eti.h
deleted file mode 100644
index d46636b..0000000
--- a/ncurses-5.3/menu/eti.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#ifndef NCURSES_ETI_H_incl
-#define NCURSES_ETI_H_incl 1
-
-#define E_OK (0)
-#define E_SYSTEM_ERROR (-1)
-#define E_BAD_ARGUMENT (-2)
-#define E_POSTED (-3)
-#define E_CONNECTED (-4)
-#define E_BAD_STATE (-5)
-#define E_NO_ROOM (-6)
-#define E_NOT_POSTED (-7)
-#define E_UNKNOWN_COMMAND (-8)
-#define E_NO_MATCH (-9)
-#define E_NOT_SELECTABLE (-10)
-#define E_NOT_CONNECTED (-11)
-#define E_REQUEST_DENIED (-12)
-#define E_INVALID_FIELD (-13)
-#define E_CURRENT (-14)
-
-#endif
diff --git a/ncurses-5.3/menu/headers b/ncurses-5.3/menu/headers
deleted file mode 100644
index 3fe0be0..0000000
--- a/ncurses-5.3/menu/headers
+++ /dev/null
@@ -1,32 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-$(srcdir)/eti.h
-$(srcdir)/menu.h
diff --git a/ncurses-5.3/menu/llib-lmenu b/ncurses-5.3/menu/llib-lmenu
deleted file mode 100644
index 82a7af4..0000000
--- a/ncurses-5.3/menu/llib-lmenu
+++ /dev/null
@@ -1,508 +0,0 @@
-/****************************************************************************
- * 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 <dickey@clark.net> 1996-1999,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); }
diff --git a/ncurses-5.3/menu/llib-lmenuw b/ncurses-5.3/menu/llib-lmenuw
deleted file mode 100644
index 3abc5f3..0000000
--- a/ncurses-5.3/menu/llib-lmenuw
+++ /dev/null
@@ -1,508 +0,0 @@
-/****************************************************************************
- * 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); }
diff --git a/ncurses-5.3/menu/m_attribs.c b/ncurses-5.3/menu/m_attribs.c
deleted file mode 100644
index 8102841..0000000
--- a/ncurses-5.3/menu/m_attribs.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_attribs *
-* Control menus display attributes *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/* Macro to redraw menu if it is posted and changed */
-#define Refresh_Menu(menu) \
- if ( (menu) && ((menu)->status & _POSTED) )\
- {\
- _nc_Draw_Menu( menu );\
- _nc_Show_Menu( menu );\
- }
-
-/* "Template" macro to generate a function to set a menus attribute */
-#define GEN_MENU_ATTR_SET_FCT( name ) \
-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 (menu && ( menu -> name != attr))\
- {\
- (menu -> name) = attr;\
- Refresh_Menu(menu);\
- }\
- Normalize_Menu( menu ) -> name = attr;\
- RETURN(E_OK);\
-}
-
-/* "Template" macro to generate a function to get a menus attribute */
-#define GEN_MENU_ATTR_GET_FCT( name ) \
-NCURSES_IMPEXP chtype NCURSES_API menu_ ## name (const MENU * menu)\
-{\
- return (Normalize_Menu( menu ) -> name);\
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_fore(MENU *menu, chtype attr)
-|
-| Description : Set the attribute for selectable items. In single-
-| valued menus thiis is used to highlight the current
-| item ((i.e. where the cursor is), in multi-valued
-| menus this is used to highlight the selected items.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( fore )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : chtype menu_fore(const MENU* menu)
-|
-| Description : Return the attribute used for selectable items that
-| are current (single-valued menu) or selected (multi-
-| valued menu).
-|
-| Return Values : Attribute value
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( fore )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_back(MENU *menu, chtype attr)
-|
-| Description : Set the attribute for selectable but not yet selected
-| items.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( back )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : chtype menu_back(const MENU *menu)
-|
-| Description : Return the attribute used for selectable but not yet
-| selected items.
-|
-| Return Values : Attribute value
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( back )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_grey(MENU *menu, chtype attr)
-|
-| Description : Set the attribute for unselectable items.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( grey )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : chtype menu_grey(const MENU *menu)
-|
-| Description : Return the attribute used for non-selectable items
-|
-| Return Values : Attribute value
-+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( grey )
-/* m_attribs.c ends here */
diff --git a/ncurses-5.3/menu/m_cursor.c b/ncurses-5.3/menu/m_cursor.c
deleted file mode 100644
index 25230b8..0000000
--- a/ncurses-5.3/menu/m_cursor.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_cursor *
-* Correctly position a menus cursor *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : _nc_menu_cursor_pos
-|
-| Description : Return position of logical cursor to current item
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu
-| E_NOT_POSTED - Menu is not posted
-+--------------------------------------------------------------------------*/
-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);
- else
- {
- if ((ITEM*)0 == item)
- item = menu->curitem;
- assert(item!=(ITEM*)0);
-
- if ( !( menu->status & _POSTED ) )
- return(E_NOT_POSTED);
-
- *pX = item->x * (menu->spc_cols + menu->itemlen);
- *pY = (item->y - menu->toprow) * menu->spc_rows;
- }
- return(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : pos_menu_cursor
-|
-| Description : Position logical cursor to current item in menu
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu
-| E_NOT_POSTED - Menu is not posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-pos_menu_cursor (const MENU * menu)
-{
- WINDOW *win, *sub;
- int x, y;
- int err = _nc_menu_cursor_pos(menu,(ITEM*)0,&y,&x);
-
- if (E_OK==err)
- {
- win = menu->userwin ? menu->userwin : stdscr;
- sub = menu->usersub ? menu->usersub : win;
- assert(win && sub);
-
- if ((menu->opt & O_SHOWMATCH) && (menu->pindex > 0))
- x += ( menu->pindex + menu->marklen - 1);
-
- wmove(sub,y,x);
-
- if ( win != sub )
- {
- wcursyncup(sub);
- wsyncup(sub);
- untouchwin(sub);
- }
- }
- RETURN(err);
-}
-
-/* m_cursor.c ends here */
diff --git a/ncurses-5.3/menu/m_driver.c b/ncurses-5.3/menu/m_driver.c
deleted file mode 100644
index fea93d9..0000000
--- a/ncurses-5.3/menu/m_driver.c
+++ /dev/null
@@ -1,544 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_driver *
-* Central dispatching routine *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/* Macros */
-
-/* Remove the last character from the match pattern buffer */
-#define Remove_Character_From_Pattern(menu) \
- (menu)->pattern[--((menu)->pindex)] = '\0'
-
-/* Add a new character to the match pattern buffer */
-#define Add_Character_To_Pattern(menu,ch) \
- { (menu)->pattern[((menu)->pindex)++] = (ch);\
- (menu)->pattern[(menu)->pindex] = '\0'; }
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : static bool Is_Sub_String(
-| bool IgnoreCaseFlag,
-| const char *part,
-| const char *string)
-|
-| Description : Checks whether or not part is a substring of string.
-|
-| Return Values : TRUE - if it is a substring
-| FALSE - if it is not a substring
-+--------------------------------------------------------------------------*/
-static bool Is_Sub_String(
- bool IgnoreCaseFlag,
- const char *part,
- const char *string
- )
-{
- assert( part && string );
- if ( IgnoreCaseFlag )
- {
- while(*string && *part)
- {
- if (toupper(*string++)!=toupper(*part)) break;
- part++;
- }
- }
- else
- {
- while( *string && *part )
- if (*part != *string++) break;
- part++;
- }
- return ( (*part) ? FALSE : TRUE );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int _nc_Match_Next_Character_In_Item_Name(
-| MENU *menu,
-| int ch,
-| ITEM **item)
-|
-| Description : This internal routine is called for a menu positioned
-| at an item with three different classes of characters:
-| - a printable character; the character is added to
-| the current pattern and the next item matching
-| this pattern is searched.
-| - NUL; the pattern stays as it is and the next item
-| matching the pattern is searched
-| - BS; the pattern stays as it is and the previous
-| item matching the pattern is searched
-|
-| The item parameter contains on call a pointer to
-| the item where the search starts. On return - if
-| a match was found - it contains a pointer to the
-| matching item.
-|
-| Return Values : E_OK - an item matching the pattern was found
-| E_NO_MATCH - nothing found
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-_nc_Match_Next_Character_In_Item_Name
-(MENU *menu, int ch, ITEM **item)
-{
- bool found = FALSE, passed = FALSE;
- int idx, last;
-
- assert( menu && item && *item);
- idx = (*item)->index;
-
- if (ch && ch!=BS)
- {
- /* if we become to long, we need no further checking : there can't be
- a match ! */
- if ((menu->pindex+1) > menu->namelen)
- RETURN(E_NO_MATCH);
-
- Add_Character_To_Pattern(menu,ch);
- /* we artificially position one item back, because in the do...while
- loop we start with the next item. This means, that with a new
- pattern search we always start the scan with the actual item. If
- we do a NEXT_PATTERN oder PREV_PATTERN search, we start with the
- one after or before the actual item. */
- if (--idx < 0)
- idx = menu->nitems-1;
- }
-
- last = idx; /* this closes the cycle */
-
- do{
- if (ch==BS)
- { /* we have to go backward */
- if (--idx < 0)
- idx = menu->nitems-1;
- }
- else
- { /* otherwise we always go forward */
- if (++idx >= menu->nitems)
- idx = 0;
- }
- if (Is_Sub_String((menu->opt & O_IGNORECASE) != 0,
- menu->pattern,
- menu->items[idx]->name.str)
- )
- found = TRUE;
- else
- passed = TRUE;
- } while (!found && (idx != last));
-
- if (found)
- {
- if (!((idx==(*item)->index) && passed))
- {
- *item = menu->items[idx];
- RETURN(E_OK);
- }
- /* This point is reached, if we fully cycled through the item list
- and the only match we found is the starting item. With a NEXT_PATTERN
- or PREV_PATTERN scan this means, that there was no additional match.
- If we searched with an expanded new pattern, we should never reach
- this point, because if the expanded pattern matches also the actual
- item we will find it in the first attempt (passed==FALSE) and we
- will never cycle through the whole item array.
- */
- assert( ch==0 || ch==BS );
- }
- else
- {
- if (ch && ch!=BS && menu->pindex>0)
- {
- /* if we had no match with a new pattern, we have to restore it */
- Remove_Character_From_Pattern(menu);
- }
- }
- RETURN(E_NO_MATCH);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_driver(MENU *menu, int c)
-|
-| Description : Central dispatcher for the menu. Translates the logical
-| request 'c' into a menu action.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu pointer
-| E_BAD_STATE - menu is in user hook routine
-| E_NOT_POSTED - menu is not posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-menu_driver (MENU * menu, int c)
-{
-#define NAVIGATE(dir) \
- if (!item->dir)\
- result = E_REQUEST_DENIED;\
- else\
- item = item->dir
-
- int result = E_OK;
- ITEM *item;
- int my_top_row, rdiff;
-
- if (!menu)
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
- if ( !( menu->status & _POSTED ) )
- RETURN(E_NOT_POSTED);
-
- item = menu->curitem;
-
- my_top_row = menu->toprow;
- assert(item);
-
- if ((c > KEY_MAX) && (c<=MAX_MENU_COMMAND))
- {
- if (!((c==REQ_BACK_PATTERN)
- || (c==REQ_NEXT_MATCH) || (c==REQ_PREV_MATCH)))
- {
- assert( menu->pattern );
- Reset_Pattern(menu);
- }
-
- switch(c)
- {
- case REQ_LEFT_ITEM:
- /*=================*/
- NAVIGATE(left);
- break;
-
- case REQ_RIGHT_ITEM:
- /*==================*/
- NAVIGATE(right);
- break;
-
- case REQ_UP_ITEM:
- /*===============*/
- NAVIGATE(up);
- break;
-
- case REQ_DOWN_ITEM:
- /*=================*/
- NAVIGATE(down);
- break;
-
- case REQ_SCR_ULINE:
- /*=================*/
- if (my_top_row == 0 || !(item->up))
- result = E_REQUEST_DENIED;
- else
- {
- --my_top_row;
- item = item->up;
- }
- break;
-
- case REQ_SCR_DLINE:
- /*=================*/
- if ((my_top_row + menu->arows >= menu->rows) || !(item->down))
- {
- /* only if the menu has less items than rows, we can deny the
- request. Otherwise the epilogue of this routine adjusts the
- top row if necessary */
- result = E_REQUEST_DENIED;
- }
- else {
- my_top_row++;
- item = item->down;
- }
- break;
-
- case REQ_SCR_DPAGE:
- /*=================*/
- rdiff = menu->rows - (menu->arows + my_top_row);
- if (rdiff > menu->arows)
- rdiff = menu->arows;
- if (rdiff<=0)
- result = E_REQUEST_DENIED;
- else
- {
- my_top_row += rdiff;
- while(rdiff-- > 0 && item!=(ITEM*)0)
- item = item->down;
- }
- break;
-
- case REQ_SCR_UPAGE:
- /*=================*/
- rdiff = (menu->arows < my_top_row) ? menu->arows : my_top_row;
- if (rdiff<=0)
- result = E_REQUEST_DENIED;
- else
- {
- my_top_row -= rdiff;
- while(rdiff-- && item!=(ITEM*)0)
- item = item->up;
- }
- break;
-
- case REQ_FIRST_ITEM:
- /*==================*/
- item = menu->items[0];
- break;
-
- case REQ_LAST_ITEM:
- /*=================*/
- item = menu->items[menu->nitems-1];
- break;
-
- case REQ_NEXT_ITEM:
- /*=================*/
- if ((item->index+1)>=menu->nitems)
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[0];
- }
- else
- item = menu->items[item->index + 1];
- break;
-
- case REQ_PREV_ITEM:
- /*=================*/
- if (item->index<=0)
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[menu->nitems-1];
- }
- else
- item = menu->items[item->index - 1];
- break;
-
- case REQ_TOGGLE_ITEM:
- /*===================*/
- if (menu->opt & O_ONEVALUE)
- {
- result = E_REQUEST_DENIED;
- }
- else
- {
- if (menu->curitem->opt & O_SELECTABLE)
- {
- menu->curitem->value = !menu->curitem->value;
- Move_And_Post_Item(menu,menu->curitem);
- _nc_Show_Menu(menu);
- }
- else
- result = E_NOT_SELECTABLE;
- }
- break;
-
- case REQ_CLEAR_PATTERN:
- /*=====================*/
- /* already cleared in prologue */
- break;
-
- case REQ_BACK_PATTERN:
- /*====================*/
- if (menu->pindex>0)
- {
- assert(menu->pattern);
- Remove_Character_From_Pattern(menu);
- pos_menu_cursor( menu );
- }
- else
- result = E_REQUEST_DENIED;
- break;
-
- case REQ_NEXT_MATCH:
- /*==================*/
- assert(menu->pattern);
- if (menu->pattern[0])
- result = _nc_Match_Next_Character_In_Item_Name(menu,0,&item);
- else
- {
- if ((item->index+1)<menu->nitems)
- item=menu->items[item->index+1];
- else
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[0];
- }
- }
- break;
-
- case REQ_PREV_MATCH:
- /*==================*/
- assert(menu->pattern);
- if (menu->pattern[0])
- result = _nc_Match_Next_Character_In_Item_Name(menu,BS,&item);
- else
- {
- if (item->index)
- item = menu->items[item->index-1];
- else
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[menu->nitems-1];
- }
- }
- break;
-
- default:
- /*======*/
- result = E_UNKNOWN_COMMAND;
- break;
- }
- }
- else
- { /* not a command */
- if ( !(c & ~((int)MAX_REGULAR_CHARACTER)) && isprint(c) )
- result = _nc_Match_Next_Character_In_Item_Name( menu, c, &item );
-#ifdef NCURSES_MOUSE_VERSION
- else if (KEY_MOUSE == c)
- {
- MEVENT event;
- WINDOW* uwin = Get_Menu_UserWin(menu);
-
- getmouse(&event);
- if ((event.bstate & (BUTTON1_CLICKED |
- BUTTON1_DOUBLE_CLICKED |
- BUTTON1_TRIPLE_CLICKED ))
- && wenclose(uwin,event.y, event.x))
- { /* we react only if the click was in the userwin, that means
- * inside the menu display area or at the decoration window.
- */
- WINDOW* sub = Get_Menu_Window(menu);
- int ry = event.y, rx = event.x; /* screen coordinates */
-
- result = E_REQUEST_DENIED;
- if (mouse_trafo(&ry,&rx,FALSE))
- { /* rx, ry are now "curses" coordinates */
- if (ry < sub->_begy)
- { /* we clicked above the display region; this is
- * interpreted as "scroll up" request
- */
- if (event.bstate & BUTTON1_CLICKED)
- result = menu_driver(menu,REQ_SCR_ULINE);
- else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- result = menu_driver(menu,REQ_SCR_UPAGE);
- else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
- result = menu_driver(menu,REQ_FIRST_ITEM);
- RETURN(result);
- }
- else if (ry >= sub->_begy + sub->_maxy)
- { /* we clicked below the display region; this is
- * interpreted as "scroll down" request
- */
- if (event.bstate & BUTTON1_CLICKED)
- result = menu_driver(menu,REQ_SCR_DLINE);
- else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- result = menu_driver(menu,REQ_SCR_DPAGE);
- else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
- result = menu_driver(menu,REQ_LAST_ITEM);
- RETURN(result);
- }
- else if (wenclose(sub,event.y,event.x))
- { /* Inside the area we try to find the hit item */
- int i,x,y,err;
- ry = event.y; rx = event.x;
- if (wmouse_trafo(sub,&ry,&rx,FALSE))
- {
- for(i=0;i<menu->nitems;i++)
- {
- err = _nc_menu_cursor_pos(menu,menu->items[i],
- &y, &x);
- if (E_OK==err)
- {
- if ((ry==y) &&
- (rx>=x) &&
- (rx < x + menu->itemlen))
- {
- item = menu->items[i];
- result = E_OK;
- break;
- }
- }
- }
- if (E_OK==result)
- { /* We found an item, now we can handle the click.
- * A single click just positions the menu cursor
- * to the clicked item. A double click toggles
- * the item.
- */
- if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- {
- _nc_New_TopRow_and_CurrentItem(menu,
- my_top_row,
- item);
- menu_driver(menu,REQ_TOGGLE_ITEM);
- result = E_UNKNOWN_COMMAND;
- }
- }
- }
- }
- }
- }
- else
- result = E_REQUEST_DENIED;
- }
-#endif /* NCURSES_MOUSE_VERSION */
- else
- result = E_UNKNOWN_COMMAND;
- }
-
- if (E_OK==result)
- {
- /* Adjust the top row if it turns out that the current item unfortunately
- doesn't appear in the menu window */
- if ( item->y < my_top_row )
- my_top_row = item->y;
- else if ( item->y >= (my_top_row + menu->arows) )
- my_top_row = item->y - menu->arows + 1;
-
- _nc_New_TopRow_and_CurrentItem( menu, my_top_row, item );
-
- }
-
- RETURN(result);
-}
-
-/* m_driver.c ends here */
diff --git a/ncurses-5.3/menu/m_format.c b/ncurses-5.3/menu/m_format.c
deleted file mode 100644
index cf6a7cb..0000000
--- a/ncurses-5.3/menu/m_format.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_format *
-* Set and get maximum numbers of rows and columns in menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-#define minimum(a,b) ((a)<(b) ? (a): (b))
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_format(MENU *menu, int rows, int cols)
-|
-| Description : Sets the maximum number of rows and columns of items
-| that may be displayed at one time on a menu. If the
-| menu contains more items than can be displayed at
-| once, the menu will be scrollable.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid values passed
-| E_NOT_CONNECTED - there are no items connected
-| E_POSTED - the menu is already posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_format (MENU *menu, int rows, int cols)
-{
- int total_rows, total_cols;
-
- if (rows<0 || cols<0)
- RETURN(E_BAD_ARGUMENT);
-
- if (menu)
- {
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if (!(menu->items))
- RETURN(E_NOT_CONNECTED);
-
- if (rows==0)
- rows = menu->frows;
- if (cols==0)
- cols = menu->fcols;
-
- if (menu->pattern)
- Reset_Pattern(menu);
-
- menu->frows = rows;
- menu->fcols = cols;
-
- assert(rows>0 && cols>0);
- total_rows = (menu->nitems - 1)/cols + 1;
- total_cols = (menu->status & O_ROWMAJOR) ?
- minimum(menu->nitems,cols) :
- (menu->nitems-1)/total_rows + 1;
-
- menu->rows = total_rows;
- menu->cols = total_cols;
- menu->arows = minimum(total_rows,rows);
- menu->toprow = 0;
- menu->curitem = *(menu->items);
- assert(menu->curitem);
- menu->status |= _LINK_NEEDED;
- _nc_Calculate_Item_Length_and_Width(menu);
- }
- else
- {
- if (rows>0) _nc_Default_Menu.frows = rows;
- if (cols>0) _nc_Default_Menu.fcols = cols;
- }
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void menu_format(const MENU *menu, int *rows, int *cols)
-|
-| Description : Returns the maximum number of rows and columns that may
-| be displayed at one time on menu.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-menu_format (const MENU *menu, int *rows, int *cols)
-{
- if (rows)
- *rows = Normalize_Menu(menu)->frows;
- if (cols)
- *cols = Normalize_Menu(menu)->fcols;
-}
-
-/* m_format.c ends here */
diff --git a/ncurses-5.3/menu/m_global.c b/ncurses-5.3/menu/m_global.c
deleted file mode 100644
index 6bfd05b..0000000
--- a/ncurses-5.3/menu/m_global.c
+++ /dev/null
@@ -1,492 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_global *
-* Globally used internal routines and the default menu and item structures *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-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 */
- 1, /* Nr. of items wide */
- 16, /* Nr. of formatted items high */
- 1, /* Nr. of formatted items wide */
- 16, /* Nr. of items high (actual) */
- 0, /* length of widest name */
- 0, /* length of widest description */
- 1, /* length of mark */
- 1, /* length of one item */
- 1, /* Spacing for descriptor */
- 1, /* Spacing for columns */
- 1, /* Spacing for rows */
- (char *)0, /* buffer used to store match chars */
- 0, /* Index into pattern buffer */
- (WINDOW *)0, /* Window containing entire menu */
- (WINDOW *)0, /* Portion of menu displayed */
- (WINDOW *)0, /* User's window */
- (WINDOW *)0, /* User's subwindow */
- (ITEM **)0, /* List of items */
- 0, /* Total Nr. of items in menu */
- (ITEM *)0, /* Current item */
- 0, /* Top row of menu */
- (chtype)A_REVERSE, /* Attribute for selection */
- (chtype)A_NORMAL, /* Attribute for nonselection */
- (chtype)A_UNDERLINE, /* Attribute for inactive */
- ' ', /* Pad character */
- (Menu_Hook)0, /* Menu init */
- (Menu_Hook)0, /* Menu term */
- (Menu_Hook)0, /* Item init */
- (Menu_Hook)0, /* Item term */
- (void *)0, /* userptr */
- mark, /* mark */
- ALL_MENU_OPTS, /* options */
- 0 /* status */
-};
-
-NCURSES_EXPORT_VAR(ITEM) _nc_Default_Item = {
- { (char *)0, 0 }, /* name */
- { (char *)0, 0 }, /* description */
- (MENU *)0, /* Pointer to parent menu */
- (char *)0, /* Userpointer */
- ALL_ITEM_OPTS, /* options */
- 0, /* Item Nr. */
- 0, /* y */
- 0, /* x */
- FALSE, /* value */
- (ITEM *)0, /* left */
- (ITEM *)0, /* right */
- (ITEM *)0, /* up */
- (ITEM *)0 /* down */
- };
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : static void ComputeMaximum_NameDesc_Lenths(MENU *menu)
-|
-| Description : Calculates the maximum name and description lengths
-| of the items connected to the menu
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-INLINE static void ComputeMaximum_NameDesc_Lengths(MENU * menu)
-{
- unsigned MaximumNameLength = 0;
- unsigned MaximumDescriptionLength = 0;
- ITEM **items;
-
- assert(menu && menu->items);
- for( items = menu->items; *items ; items++ )
- {
- if (items[0]->name.length > MaximumNameLength )
- MaximumNameLength = items[0]->name.length;
-
- if (items[0]->description.length > MaximumDescriptionLength)
- MaximumDescriptionLength = items[0]->description.length;
- }
-
- menu->namelen = MaximumNameLength;
- menu->desclen = MaximumDescriptionLength;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : static void ResetConnectionInfo(MENU *, ITEM **)
-|
-| Description : Reset all informations in the menu and the items in
-| the item array that indicates a connection
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-INLINE static void ResetConnectionInfo(MENU *menu, ITEM **items)
-{
- ITEM **item;
-
- assert(menu && items);
- for(item=items; *item; item++)
- {
- (*item)->index = 0;
- (*item)->imenu = (MENU *)0;
- }
- if (menu->pattern)
- free(menu->pattern);
- menu->pattern = (char *)0;
- menu->pindex = 0;
- menu->items = (ITEM **)0;
- menu->nitems = 0;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : bool _nc_Connect_Items(MENU *menu, ITEM **items)
-|
-| Description : Connect the items in the item array to the menu.
-| Decorate all the items with a number and a backward
-| pointer to the menu.
-|
-| Return Values : TRUE - successfull connection
-| FALSE - connection failed
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-_nc_Connect_Items (MENU *menu, ITEM **items)
-{
- ITEM **item;
- unsigned int ItemCount = 0;
-
- if ( menu && items )
- {
- for(item=items; *item ; item++)
- {
- if ( (*item)->imenu )
- {
- /* if a item is already connected, reject connection */
- break;
- }
- }
- if (! (*item) )
- /* we reached the end, so there was no connected item */
- {
- for(item=items; *item ; item++)
- {
- if (menu->opt & O_ONEVALUE)
- {
- (*item)->value = FALSE;
- }
- (*item)->index = ItemCount++;
- (*item)->imenu = menu;
- }
- }
- }
- else
- return(FALSE);
-
- if (ItemCount != 0)
- {
- menu->items = items;
- menu->nitems = ItemCount;
- ComputeMaximum_NameDesc_Lengths(menu);
- if ( (menu->pattern = (char *)malloc( (unsigned)(1 + menu->namelen))) )
- {
- Reset_Pattern(menu);
- set_menu_format(menu,menu->frows,menu->fcols);
- menu->curitem = *items;
- menu->toprow = 0;
- return(TRUE);
- }
- }
-
- /* If we fall through to this point, we have to reset all items connection
- and inform about a reject connection */
- ResetConnectionInfo( menu, items );
- return(FALSE);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Disconnect_Items(MENU *menu)
-|
-| Description : Disconnect the menus item array from the menu
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Disconnect_Items (MENU * menu)
-{
- if (menu && menu->items)
- ResetConnectionInfo( menu, menu->items );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Calculate_Item_Length_and_Width(MENU *menu)
-|
-| Description : Calculate the length of an item and the width of the
-| whole menu.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Calculate_Item_Length_and_Width (MENU * menu)
-{
- int l;
-
- assert(menu);
-
- menu->height = 1 + menu->spc_rows * (menu->arows - 1);
-
- l = menu->namelen + menu->marklen;
- if ( (menu->opt & O_SHOWDESC) && (menu->desclen > 0) )
- l += (menu->desclen + menu->spc_desc);
-
- menu->itemlen = l;
- l *= menu->cols;
- l += (menu->cols-1)*menu->spc_cols; /* for the padding between the columns */
- menu->width = l;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Link_Item(MENU *menu)
-|
-| Description : Statically calculate for every item its four neighbours.
-| This depends on the orientation of the menu. This
-| static aproach simplifies navigation in the menu a lot.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Link_Items (MENU * menu)
-{
- if (menu && menu->items && *(menu->items))
- {
- int i,j;
- ITEM *item;
- int Number_Of_Items = menu->nitems;
- int col = 0, row = 0;
- int Last_in_Row;
- int Last_in_Column;
- bool cycle = (menu->opt & O_NONCYCLIC) ? FALSE : TRUE;
-
- menu->status &= ~_LINK_NEEDED;
-
- if (menu->opt & O_ROWMAJOR)
- {
- int Number_Of_Columns = menu->cols;
-
- for(i=0; i < Number_Of_Items; i++)
- {
- item = menu->items[i];
-
- Last_in_Row = row * Number_Of_Columns + (Number_Of_Columns-1);
-
- item->left = (col) ?
- /* if we are not in the leftmost column, we can use the
- predecessor in the items array */
- menu->items[i-1] :
- (cycle ? menu->items[(Last_in_Row>=Number_Of_Items) ?
- Number_Of_Items-1:
- Last_in_Row] :
- (ITEM *)0 );
-
- item->right = ( (col < (Number_Of_Columns-1)) &&
- ((i+1) < Number_Of_Items)
- ) ?
- menu->items[i+1] :
- ( cycle ? menu->items[row * Number_Of_Columns] :
- (ITEM *)0
- );
-
- Last_in_Column = (menu->rows-1) * Number_Of_Columns + col;
-
- item->up = (row) ? menu->items[i-Number_Of_Columns] :
- (cycle ? menu->items[(Last_in_Column>=Number_Of_Items) ?
- Number_Of_Items-1 :
- Last_in_Column] :
- (ITEM *)0);
-
- item->down = ( (i+Number_Of_Columns) < Number_Of_Items )
- ?
- menu->items[i + Number_Of_Columns] :
- (cycle ? menu->items[(row+1)<menu->rows ?
- Number_Of_Items-1:col] :
- (ITEM *)0);
- item->x = col;
- item->y = row;
- if ( ++col == Number_Of_Columns )
- {
- row++;
- col = 0;
- }
- }
- }
- else
- {
- int Number_Of_Rows = menu->rows;
-
- for(j=0; j<Number_Of_Items; j++)
- {
- item = menu->items[i=(col * Number_Of_Rows + row)];
-
- Last_in_Column = (menu->cols-1) * Number_Of_Rows + row;
-
- item->left = (col) ?
- menu->items[i - Number_Of_Rows] :
- (cycle ? (Last_in_Column >= Number_Of_Items ) ?
- menu->items[Last_in_Column-Number_Of_Rows] :
- menu->items[Last_in_Column] :
- (ITEM *)0 );
-
- item->right = ((i + Number_Of_Rows) <Number_Of_Items)
- ?
- menu->items[i + Number_Of_Rows] :
- (cycle ? menu->items[row] : (ITEM *)0);
-
- Last_in_Row = col * Number_Of_Rows + (Number_Of_Rows - 1);
-
- item->up = (row) ?
- menu->items[i-1] :
- (cycle ?
- menu->items[(Last_in_Row>=Number_Of_Items) ?
- Number_Of_Items-1:
- Last_in_Row] :
- (ITEM *)0);
-
- item->down = (row < (Number_Of_Rows-1))
- ?
- (menu->items[((i+1)<Number_Of_Items) ?
- i+1 :
- (col-1)*Number_Of_Rows + row + 1]) :
- (cycle ?
- menu->items[col * Number_Of_Rows] :
- (ITEM *)0
- );
-
- item->x = col;
- item->y = row;
- if ( (++row) == Number_Of_Rows )
- {
- col++;
- row = 0;
- }
- }
- }
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Show_Menu(const MENU *menu)
-|
-| Description : Update the window that is associated with the menu
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Show_Menu (const MENU *menu)
-{
- WINDOW *win;
- int maxy, maxx;
-
- assert(menu);
- if ( (menu->status & _POSTED) && !(menu->status & _IN_DRIVER) )
- {
- /* adjust the internal subwindow to start on the current top */
- assert(menu->sub);
- mvderwin(menu->sub,menu->spc_rows * menu->toprow,0);
- win = Get_Menu_Window(menu);
-
- maxy = getmaxy(win);
- maxx = getmaxx(win);
-
- if (menu->height < maxy)
- maxy = menu->height;
- if (menu->width < maxx)
- maxx = menu->width;
-
- copywin(menu->sub,win,0,0,0,0,maxy-1,maxx-1,0);
- pos_menu_cursor(menu);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_New_TopRow_and_CurrentItem(
-| MENU *menu,
-| int new_toprow,
-| ITEM *new_current_item)
-|
-| Description : Redisplay the menu so that the given row becomes the
-| top row and the given item becomes the new current
-| item.
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_New_TopRow_and_CurrentItem
-(MENU *menu, int new_toprow, ITEM *new_current_item)
-{
- ITEM *cur_item;
- bool mterm_called = FALSE;
- bool iterm_called = FALSE;
-
- assert(menu);
- if (menu->status & _POSTED)
- {
- if (new_current_item != menu->curitem)
- {
- Call_Hook(menu,itemterm);
- iterm_called = TRUE;
- }
- if (new_toprow != menu->toprow)
- {
- Call_Hook(menu,menuterm);
- mterm_called = TRUE;
- }
-
- cur_item = menu->curitem;
- assert(cur_item);
- menu->toprow = new_toprow;
- menu->curitem = new_current_item;
-
- if (mterm_called)
- {
- Call_Hook(menu,menuinit);
- }
- if (iterm_called)
- {
- /* this means, move from the old current_item to the new one... */
- Move_To_Current_Item( menu, cur_item );
- Call_Hook(menu,iteminit);
- }
- if (mterm_called || iterm_called)
- {
- _nc_Show_Menu(menu);
- }
- else
- pos_menu_cursor(menu);
- }
- else
- { /* if we are not posted, this is quite simple */
- menu->toprow = new_toprow;
- menu->curitem = new_current_item;
- }
-}
-
-/* m_global.c ends here */
diff --git a/ncurses-5.3/menu/m_hook.c b/ncurses-5.3/menu/m_hook.c
deleted file mode 100644
index 62266e9..0000000
--- a/ncurses-5.3/menu/m_hook.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_hook *
-* Assign application specific routines for automatic invocation by menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/* "Template" macro to generate function to set application specific hook */
-#define GEN_HOOK_SET_FUNCTION( typ, name ) \
-NCURSES_IMPEXP int NCURSES_API set_ ## typ ## _ ## name (MENU *menu, Menu_Hook func )\
-{\
- (Normalize_Menu(menu) -> typ ## name = func );\
- RETURN(E_OK);\
-}
-
-/* "Template" macro to generate function to get application specific hook */
-#define GEN_HOOK_GET_FUNCTION( typ, name ) \
-NCURSES_IMPEXP Menu_Hook NCURSES_API typ ## _ ## name ( const MENU *menu )\
-{\
- return (Normalize_Menu(menu) -> typ ## name);\
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_init(MENU *menu, void (*f)(MENU *))
-|
-| Description : Set user-exit which is called when menu is posted
-| or just after the top row changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( menu, init )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void (*)(MENU *) menu_init(const MENU *menu)
-|
-| Description : Return address of user-exit function which is called
-| when a menu is posted or just after the top row
-| changes.
-|
-| Return Values : Menu init function address or NULL
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( menu, init )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_term (MENU *menu, void (*f)(MENU *))
-|
-| Description : Set user-exit which is called when menu is unposted
-| or just before the top row changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( menu, term )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void (*)(MENU *) menu_term(const MENU *menu)
-|
-| Description : Return address of user-exit function which is called
-| when a menu is unposted or just before the top row
-| changes.
-|
-| Return Values : Menu finalization function address or NULL
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( menu, term )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_init (MENU *menu, void (*f)(MENU *))
-|
-| Description : Set user-exit which is called when menu is posted
-| or just after the current item changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( item, init )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void (*)(MENU *) item_init (const MENU *menu)
-|
-| Description : Return address of user-exit function which is called
-| when a menu is posted or just after the current item
-| changes.
-|
-| Return Values : Item init function address or NULL
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( item, init )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_term (MENU *menu, void (*f)(MENU *))
-|
-| Description : Set user-exit which is called when menu is unposted
-| or just before the current item changes.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( item, term )
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void (*)(MENU *) item_init (const MENU *menu)
-|
-| Description : Return address of user-exit function which is called
-| when a menu is unposted or just before the current item
-| changes.
-|
-| Return Values : Item finalization function address or NULL
-+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( item, term )
-
-/* m_hook.c ends here */
diff --git a/ncurses-5.3/menu/m_item_cur.c b/ncurses-5.3/menu/m_item_cur.c
deleted file mode 100644
index 4e4158d..0000000
--- a/ncurses-5.3/menu/m_item_cur.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_cur *
-* Set and get current menus item *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_current_item(MENU *menu, const ITEM *item)
-|
-| Description : Make the item the current item
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_current_item (MENU * menu, ITEM * item)
-{
- if (menu && item && (item->imenu==menu))
- {
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- assert( menu->curitem );
- if (item != menu->curitem)
- {
- if (menu->status & _LINK_NEEDED)
- {
- /*
- * Items are available, but they are not linked together.
- * So we have to link here.
- */
- _nc_Link_Items(menu);
- }
- assert(menu->pattern);
- Reset_Pattern(menu);
- /* adjust the window to make item visible and update the menu */
- Adjust_Current_Item(menu,menu->toprow,item);
- }
- }
- else
- RETURN(E_BAD_ARGUMENT);
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : ITEM *current_item(const MENU *menu)
-|
-| Description : Return the menus current item
-|
-| Return Values : Item pointer or NULL if failure
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(ITEM *)
-current_item (const MENU * menu)
-{
- return (menu && menu->items) ? menu->curitem : (ITEM *)0;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_index(const ITEM *)
-|
-| Description : Return the logical index of this item.
-|
-| Return Values : The index or ERR if this is an invalid item pointer
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-item_index (const ITEM *item)
-{
- return (item && item->imenu) ? item->index : ERR;
-}
-
-/* m_item_cur.c ends here */
diff --git a/ncurses-5.3/menu/m_item_nam.c b/ncurses-5.3/menu/m_item_nam.c
deleted file mode 100644
index 1d90719..0000000
--- a/ncurses-5.3/menu/m_item_nam.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_nam *
-* Get menus item name and description *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : char *item_name(const ITEM *item)
-|
-| Description : Return name of menu item
-|
-| Return Values : See above; returns NULL if item is invalid
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(const char *)
-item_name (const ITEM * item)
-{
- return ((item) ? item->name.str : (char *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : char *item_description(const ITEM *item)
-|
-| Description : Returns description of item
-|
-| Return Values : See above; Returns NULL if item is invalid
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(const char *)
-item_description (const ITEM * item)
-{
- return ((item) ? item->description.str : (char *)0);
-}
-
-/* m_item_nam.c ends here */
diff --git a/ncurses-5.3/menu/m_item_new.c b/ncurses-5.3/menu/m_item_new.c
deleted file mode 100644
index 3117901..0000000
--- a/ncurses-5.3/menu/m_item_new.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_new *
-* Create and destroy menu items *
-* Set and get marker string for menu *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : bool Is_Printable_String(const char *s)
-|
-| Description : Checks whether or not the string contains only printable
-| characters.
-|
-| Return Values : TRUE - if string is printable
-| FALSE - if string contains non-printable characters
-+--------------------------------------------------------------------------*/
-static bool Is_Printable_String(const char *s)
-{
- assert(s);
- while(*s)
- {
- if (!isprint((unsigned char)*s))
- return FALSE;
- s++;
- }
- return TRUE;
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : ITEM *new_item(char *name, char *description)
-|
-| Description : Create a new item with name and description. Return
-| a pointer to this new item.
-| N.B.: an item must(!) have a name.
-|
-| Return Values : The item pointer or NULL if creation failed.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(ITEM *)
-new_item (const char *name, const char *description)
-{
- ITEM *item;
-
- if ( !name || (*name == '\0') || !Is_Printable_String(name) )
- {
- item = (ITEM *)0;
- SET_ERROR( E_BAD_ARGUMENT );
- }
- else
- {
- item = (ITEM *)calloc(1,sizeof(ITEM));
- if (item)
- {
- *item = _nc_Default_Item; /* hope we have struct assignment */
-
- item->name.length = strlen(name);
- item->name.str = name;
-
- if (description && (*description != '\0') &&
- Is_Printable_String(description))
- {
- item->description.length = strlen(description);
- item->description.str = description;
- }
- else
- {
- item->description.length = 0;
- item->description.str = (char *)0;
- }
- }
- else
- SET_ERROR( E_SYSTEM_ERROR );
- }
- return(item);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int free_item(ITEM *item)
-|
-| Description : Free the allocated storage for this item.
-| N.B.: a connected item can't be freed.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid value has been passed
-| E_CONNECTED - item is still connected to a menu
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-free_item (ITEM * item)
-{
- if (!item)
- RETURN( E_BAD_ARGUMENT );
-
- if (item->imenu)
- RETURN( E_CONNECTED );
-
- free(item);
-
- RETURN( E_OK );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_mark( MENU *menu, const char *mark )
-|
-| Description : Set the mark string used to indicate the current
-| item (single-valued menu) or the selected items
-| (multi-valued menu).
-| The mark argument may be NULL, in which case no
-| marker is used.
-| This might be a little bit tricky, because this may
-| affect the geometry of the menu, which we don't allow
-| if it is already posted.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-| E_SYSTEM_ERROR - no memory to store mark
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_mark (MENU * menu, const char * mark)
-{
- int l;
-
- if ( mark && (*mark != '\0') && Is_Printable_String(mark) )
- l = strlen(mark);
- else
- l = 0;
-
- if ( menu )
- {
- char *old_mark = menu->mark;
- unsigned short old_status = menu->status;
-
- if (menu->status & _POSTED)
- {
- /* If the menu is already posted, the geometry is fixed. Then
- we can only accept a mark with exactly the same length */
- if (menu->marklen != l)
- RETURN(E_BAD_ARGUMENT);
- }
- menu->marklen = l;
- if (l)
- {
- menu->mark = (char *)malloc(l+1);
- if (menu->mark)
- {
- strcpy(menu->mark, mark);
- if (menu != &_nc_Default_Menu)
- menu->status |= _MARK_ALLOCATED;
- }
- else
- {
- menu->mark = old_mark;
- RETURN(E_SYSTEM_ERROR);
- }
- }
- else
- menu->mark = (char *)0;
-
- if ((old_status & _MARK_ALLOCATED) && old_mark)
- free(old_mark);
-
- if (menu->status & _POSTED)
- {
- _nc_Draw_Menu( menu );
- _nc_Show_Menu( menu );
- }
- else
- {
- /* Recalculate the geometry */
- _nc_Calculate_Item_Length_and_Width( menu );
- }
- }
- else
- {
- return set_menu_mark(&_nc_Default_Menu, mark);
- }
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : char *menu_mark(const MENU *menu)
-|
-| Description : Return a pointer to the marker string
-|
-| Return Values : The marker string pointer or NULL if no marker defined
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(const char *)
-menu_mark (const MENU * menu)
-{
- return Normalize_Menu( menu )->mark;
-}
-
-/* m_item_new.c */
diff --git a/ncurses-5.3/menu/m_item_opt.c b/ncurses-5.3/menu/m_item_opt.c
deleted file mode 100644
index 555ca8d..0000000
--- a/ncurses-5.3/menu/m_item_opt.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_opt *
-* Menus item option routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_opts(ITEM *item, Item_Options opts)
-|
-| Description : Set the options of the item. If there are relevant
-| changes, the item is connected and the menu is posted,
-| the menu will be redisplayed.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid item options
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_item_opts (ITEM *item, Item_Options opts)
-{
- opts &= ALL_ITEM_OPTS;
-
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
-
- if (item)
- {
- if (item->opt != opts)
- {
- MENU *menu = item->imenu;
-
- item->opt = opts;
-
- if ((!(opts & O_SELECTABLE)) && item->value)
- item->value = FALSE;
-
- if (menu && (menu->status & _POSTED))
- {
- Move_And_Post_Item( menu, item );
- _nc_Show_Menu(menu);
- }
- }
- }
- else
- _nc_Default_Item.opt = opts;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_opts_off(ITEM *item, Item_Options opts)
-|
-| Description : Switch of the options for this item.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-item_opts_off (ITEM *item, Item_Options opts)
-{
- ITEM *citem = item; /* use a copy because set_item_opts must detect
- NULL item itself to adjust its behaviour */
-
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Item(citem);
- opts = citem->opt & ~(opts & ALL_ITEM_OPTS);
- return set_item_opts( item, opts );
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_opts_on(ITEM *item, Item_Options opts)
-|
-| Description : Switch on the options for this item.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-+--------------------------------------------------------------------------*/
-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 */
-
- opts &= ALL_ITEM_OPTS;
- if (opts & ~ALL_ITEM_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Item(citem);
- opts = citem->opt | opts;
- return set_item_opts( item, opts );
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : Item_Options item_opts(const ITEM *item)
-|
-| Description : Switch of the options for this item.
-|
-| Return Values : Items options
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(Item_Options)
-item_opts (const ITEM * item)
-{
- return (ALL_ITEM_OPTS & Normalize_Item(item)->opt);
-}
-
-/* m_item_opt.c ends here */
diff --git a/ncurses-5.3/menu/m_item_top.c b/ncurses-5.3/menu/m_item_top.c
deleted file mode 100644
index f86fbec..0000000
--- a/ncurses-5.3/menu/m_item_top.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_top *
-* Set and get top menus item *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_top_row(MENU *menu, int row)
-|
-| Description : Makes the speified row the top row in the menu
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - not a menu pointer or invalid row
-| E_NOT_CONNECTED - there are no items for the menu
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_top_row (MENU * menu, int row)
-{
- ITEM *item;
-
- if (menu)
- {
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
- if (menu->items == (ITEM **)0)
- RETURN(E_NOT_CONNECTED);
-
- if ((row<0) || (row > (menu->rows - menu->arows)))
- RETURN(E_BAD_ARGUMENT);
- }
- else
- RETURN(E_BAD_ARGUMENT);
-
- if (row != menu->toprow)
- {
- if (menu->status & _LINK_NEEDED)
- _nc_Link_Items(menu);
-
- item = menu->items[ (menu->opt&O_ROWMAJOR) ? (row*menu->cols) : row ];
- assert(menu->pattern);
- Reset_Pattern(menu);
- _nc_New_TopRow_and_CurrentItem(menu, row, item);
- }
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int top_row(const MENU *)
-|
-| Description : Return the top row of the menu
-|
-| Return Values : The row number or ERR if there is no row
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-top_row (const MENU * menu)
-{
- if (menu && menu->items && *(menu->items))
- {
- assert( (menu->toprow>=0) && (menu->toprow < menu->rows) );
- return menu->toprow;
- }
- else
- return(ERR);
-}
-
-/* m_item_top.c ends here */
diff --git a/ncurses-5.3/menu/m_item_use.c b/ncurses-5.3/menu/m_item_use.c
deleted file mode 100644
index f92182d..0000000
--- a/ncurses-5.3/menu/m_item_use.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_use *
-* Associate application data with menu items *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_userptr(ITEM *item, void *userptr)
-|
-| Description : Set the pointer that is reserved in any item to store
-| application relevant informations.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_item_userptr (ITEM * item, void * userptr)
-{
- Normalize_Item(item)->userptr = userptr;
- RETURN( E_OK );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void *item_userptr(const ITEM *item)
-|
-| Description : Return the pointer that is reserved in any item to store
-| application relevant informations.
-|
-| Return Values : Value of the pointer. If no such pointer has been set,
-| NULL is returned.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void *)
-item_userptr (const ITEM * item)
-{
- return Normalize_Item(item)->userptr;
-}
-
-/* m_item_use.c */
diff --git a/ncurses-5.3/menu/m_item_val.c b/ncurses-5.3/menu/m_item_val.c
deleted file mode 100644
index 092cef8..0000000
--- a/ncurses-5.3/menu/m_item_val.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_val *
-* Set and get menus item values *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_item_value(ITEM *item, int value)
-|
-| Description : Programmatically set the items selection value. This is
-| only allowed if the item is selectable at all and if
-| it is not connected to a single-valued menu.
-| If the item is connected to a posted menu, the menu
-| will be redisplayed.
-|
-| Return Values : E_OK - success
-| E_REQUEST_DENIED - not selectable or single valued menu
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_item_value (ITEM *item, bool value)
-{
- MENU *menu;
-
- if (item)
- {
- menu = item->imenu;
-
- if ((!(item->opt & O_SELECTABLE)) ||
- (menu && (menu->opt & O_ONEVALUE)))
- RETURN(E_REQUEST_DENIED);
-
- if (item->value ^ value)
- {
- item->value = value ? TRUE : FALSE;
- if (menu)
- {
- if (menu->status & _POSTED)
- {
- Move_And_Post_Item(menu,item);
- _nc_Show_Menu(menu);
- }
- }
- }
- }
- else
- _nc_Default_Item.value = value;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : bool item_value(const ITEM *item)
-|
-| Description : Return the selection value of the item
-|
-| Return Values : TRUE - if item is selected
-| FALSE - if item is not selected
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-item_value (const ITEM *item)
-{
- return ((Normalize_Item(item)->value) ? TRUE : FALSE);
-}
-
-/* m_item_val.c ends here */
diff --git a/ncurses-5.3/menu/m_item_vis.c b/ncurses-5.3/menu/m_item_vis.c
deleted file mode 100644
index 6c9751b..0000000
--- a/ncurses-5.3/menu/m_item_vis.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_item_vis *
-* Tell if menu item is visible *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : bool item_visible(const ITEM *item)
-|
-| Description : A item is visible if it currently appears in the
-| subwindow of a posted menu.
-|
-| Return Values : TRUE if visible
-| FALSE if invisible
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
-item_visible (const ITEM * item)
-{
- MENU *menu;
-
- if ( item &&
- (menu=item->imenu) &&
- (menu->status & _POSTED) &&
- ( (menu->toprow + menu->arows) > (item->y) ) &&
- ( item->y >= menu->toprow) )
- return TRUE;
- else
- return FALSE;
-}
-
-/* m_item_vis.c ends here */
diff --git a/ncurses-5.3/menu/m_items.c b/ncurses-5.3/menu/m_items.c
deleted file mode 100644
index b860fab..0000000
--- a/ncurses-5.3/menu/m_items.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_items *
-* Connect and disconnect items to and from menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_items(MENU *menu, ITEM **items)
-|
-| Description : Sets the item pointer array connected to menu.
-|
-| Return Values : E_OK - success
-| E_POSTED - menu is already posted
-| E_CONNECTED - one or more items are already connected
-| to another menu.
-| E_BAD_ARGUMENT - An incorrect menu or item array was
-| passed to the function
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_items (MENU * menu, ITEM ** items)
-{
- if (!menu || (items && !(*items)))
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if (menu->items)
- _nc_Disconnect_Items(menu);
-
- if (items)
- {
- if(!_nc_Connect_Items( menu, items ))
- RETURN(E_CONNECTED);
- }
-
- menu->items = items;
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : ITEM **menu_items(const MENU *menu)
-|
-| Description : Returns a pointer to the item pointer arry of the menu
-|
-| Return Values : NULL on error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(ITEM **)
-menu_items (const MENU *menu)
-{
- return(menu ? menu->items : (ITEM **)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int item_count(const MENU *menu)
-|
-| Description : Get the number of items connected to the menu. If the
-| menu pointer is NULL we return -1.
-|
-| Return Values : Number of items or -1 to indicate error.
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-item_count (const MENU *menu)
-{
- return(menu ? menu->nitems : -1);
-}
-
-/* m_items.c ends here */
diff --git a/ncurses-5.3/menu/m_new.c b/ncurses-5.3/menu/m_new.c
deleted file mode 100644
index 4c64bc2..0000000
--- a/ncurses-5.3/menu/m_new.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_new *
-* Creation and destruction of new menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : MENU *new_menu(ITEM **items)
-|
-| Description : Creates a new menu connected to the item pointer
-| array items and returns a pointer to the new menu.
-| The new menu is initialized with the values from the
-| default menu.
-|
-| Return Values : NULL on error
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(MENU *)
-new_menu (ITEM ** items)
-{
- MENU *menu = (MENU *)calloc(1,sizeof(MENU));
-
- if (menu)
- {
- *menu = _nc_Default_Menu;
- menu->status = 0;
- menu->rows = menu->frows;
- menu->cols = menu->fcols;
- if (items && *items)
- {
- if (!_nc_Connect_Items(menu,items))
- {
- free(menu);
- menu = (MENU *)0;
- }
- }
- }
-
- if (!menu)
- SET_ERROR(E_SYSTEM_ERROR);
-
- return(menu);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int free_menu(MENU *menu)
-|
-| Description : Disconnects menu from its associated item pointer
-| array and frees the storage allocated for the menu.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - Invalid menu pointer passed
-| E_POSTED - Menu is already posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-free_menu (MENU * menu)
-{
- if (!menu)
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if (menu->items)
- _nc_Disconnect_Items(menu);
-
- if ((menu->status & _MARK_ALLOCATED) && menu->mark)
- free(menu->mark);
-
- free(menu);
- RETURN(E_OK);
-}
-
-/* m_new.c ends here */
diff --git a/ncurses-5.3/menu/m_opts.c b/ncurses-5.3/menu/m_opts.c
deleted file mode 100644
index eb168e1..0000000
--- a/ncurses-5.3/menu/m_opts.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_opts *
-* Menus option routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_opts(MENU *menu, Menu_Options opts)
-|
-| Description : Set the options for this menu. If the new settings
-| end up in a change of the geometry of the menu, it
-| will be recalculated. This operation is forbidden if
-| the menu is already posted.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu options
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_opts (MENU * menu, Menu_Options opts)
-{
- opts &= ALL_MENU_OPTS;
-
- if (opts & ~ALL_MENU_OPTS)
- RETURN(E_BAD_ARGUMENT);
-
- if (menu)
- {
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if ( (opts&O_ROWMAJOR) != (menu->opt&O_ROWMAJOR))
- {
- /* we need this only if the layout really changed ... */
- if (menu->items && menu->items[0])
- {
- menu->toprow = 0;
- menu->curitem = menu->items[0];
- assert(menu->curitem);
- set_menu_format( menu, menu->frows, menu->fcols );
- }
- }
-
- menu->opt = opts;
-
- if (opts & O_ONEVALUE)
- {
- ITEM **item;
-
- if ( ((item=menu->items) != (ITEM**)0) )
- for(;*item;item++)
- (*item)->value = FALSE;
- }
-
- if (opts & O_SHOWDESC) /* this also changes the geometry */
- _nc_Calculate_Item_Length_and_Width( menu );
- }
- else
- _nc_Default_Menu.opt = opts;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_opts_off(MENU *menu, Menu_Options opts)
-|
-| Description : Switch off the options for this menu. If the new settings
-| end up in a change of the geometry of the menu, it
-| will be recalculated. This operation is forbidden if
-| the menu is already posted.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid options
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-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 */
-
- opts &= ALL_MENU_OPTS;
- if (opts & ~ALL_MENU_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Menu(cmenu);
- opts = cmenu->opt & ~opts;
- return set_menu_opts( menu, opts );
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_opts_on(MENU *menu, Menu_Options opts)
-|
-| Description : Switch on the options for this menu. If the new settings
-| end up in a change of the geometry of the menu, it
-| will be recalculated. This operation is forbidden if
-| the menu is already posted.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu options
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-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 */
-
- opts &= ALL_MENU_OPTS;
- if (opts & ~ALL_MENU_OPTS)
- RETURN(E_BAD_ARGUMENT);
- else
- {
- Normalize_Menu(cmenu);
- opts = cmenu->opt | opts;
- return set_menu_opts(menu, opts);
- }
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : Menu_Options menu_opts(const MENU *menu)
-|
-| Description : Return the options for this menu.
-|
-| Return Values : Menu options
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(Menu_Options)
-menu_opts (const MENU *menu)
-{
- return (ALL_MENU_OPTS & Normalize_Menu( menu )->opt);
-}
-
-/* m_opts.c ends here */
diff --git a/ncurses-5.3/menu/m_pad.c b/ncurses-5.3/menu/m_pad.c
deleted file mode 100644
index 78d042f..0000000
--- a/ncurses-5.3/menu/m_pad.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_pad *
-* Control menus padding character *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/* Macro to redraw menu if it is posted and changed */
-#define Refresh_Menu(menu) \
- if ( (menu) && ((menu)->status & _POSTED) )\
- {\
- _nc_Draw_Menu( menu );\
- _nc_Show_Menu( menu );\
- }
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_pad(MENU *menu, int pad)
-|
-| Description : Set the character to be used to separate the item name
-| from its description. This must be a printable
-| character.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - an invalid value has been passed
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_pad (MENU *menu, int pad)
-{
- bool do_refresh = (menu != (MENU*)0);
-
- if (!isprint((unsigned char)pad))
- RETURN(E_BAD_ARGUMENT);
-
- Normalize_Menu( menu );
- menu->pad = pad;
-
- if (do_refresh)
- Refresh_Menu( menu );
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_pad(const MENU *menu)
-|
-| Description : Return the value of the padding character
-|
-| Return Values : The pad character
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-menu_pad (const MENU * menu)
-{
- return (Normalize_Menu( menu ) -> pad);
-}
-
-/* m_pad.c ends here */
diff --git a/ncurses-5.3/menu/m_pattern.c b/ncurses-5.3/menu/m_pattern.c
deleted file mode 100644
index 061f983..0000000
--- a/ncurses-5.3/menu/m_pattern.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_pattern *
-* Pattern matching handling *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : char *menu_pattern(const MENU *menu)
-|
-| Description : Return the value of the pattern buffer.
-|
-| Return Values : NULL - if there is no pattern buffer allocated
-| EmptyString - if there is a pattern buffer but no
-| pattern is stored
-| PatternString - as expected
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(char *)
-menu_pattern (const MENU * menu)
-{
- return (menu ? (menu->pattern ? menu->pattern : "") : (char *)0);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_pattern(MENU *menu, const char *p)
-|
-| Description : Set the match pattern for a menu and position to the
-| first item that matches.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu or pattern pointer
-| E_NOT_CONNECTED - no items connected to menu
-| E_BAD_STATE - menu in user hook routine
-| E_NO_MATCH - no item matches pattern
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_pattern (MENU *menu, const char *p)
-{
- ITEM *matchitem;
- int matchpos;
-
- if (!menu || !p)
- RETURN(E_BAD_ARGUMENT);
-
- if (!(menu->items))
- RETURN(E_NOT_CONNECTED);
-
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- Reset_Pattern(menu);
-
- if (!(*p))
- {
- pos_menu_cursor(menu);
- RETURN(E_OK);
- }
-
- if (menu->status & _LINK_NEEDED)
- _nc_Link_Items(menu);
-
- matchpos = menu->toprow;
- matchitem = menu->curitem;
- assert(matchitem);
-
- while(*p)
- {
- if ( !isprint((unsigned char)(*p)) ||
- (_nc_Match_Next_Character_In_Item_Name(menu,*p,&matchitem) != E_OK) )
- {
- Reset_Pattern(menu);
- pos_menu_cursor(menu);
- RETURN(E_NO_MATCH);
- }
- p++;
- }
-
- /* This is reached if there was a match. So we position to the new item */
- Adjust_Current_Item(menu,matchpos,matchitem);
- RETURN(E_OK);
-}
-
-/* m_pattern.c ends here */
diff --git a/ncurses-5.3/menu/m_post.c b/ncurses-5.3/menu/m_post.c
deleted file mode 100644
index d4b69a0..0000000
--- a/ncurses-5.3/menu/m_post.c
+++ /dev/null
@@ -1,371 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_post *
-* Write or erase menus from associated subwindows *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Post_Item(MENU *menu, ITEM *item)
-|
-| Description : Draw the item in the menus window at the current
-| window position
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Post_Item (const MENU * menu, const ITEM * item)
-{
- int i;
- chtype ch;
- int item_x, item_y;
- int count = 0;
- bool isfore = FALSE, isback=FALSE, isgrey = FALSE;
-
- assert(menu->win);
-
- getyx(menu->win,item_y,item_x);
-
- /* We need a marker iff
- - it is a onevalued menu and it is the current item
- - or it has a selection value
- */
- wattron(menu->win,menu->back);
- if (item->value || (item==menu->curitem))
- {
- if (menu->marklen)
- {
- /* In a multi selection menu we use the fore attribute
- for a selected marker that is not the current one.
- This improves visualization of the menu, because now
- always the 'normal' marker denotes the current
- item. */
- if (!(menu->opt & O_ONEVALUE) && item->value && item!=menu->curitem)
- {
- wattron(menu->win,menu->fore);
- isfore = TRUE;
- }
- waddstr(menu->win,menu->mark);
- if (isfore)
- {
- wattron(menu->win,menu->fore);
- isfore = FALSE;
- }
- }
- }
- else /* otherwise we have to wipe out the marker area */
- for(ch=' ',i=menu->marklen;i>0;i--)
- waddch(menu->win,ch);
- wattroff(menu->win,menu->back);
- count += menu->marklen;
-
- /* First we have to calculate the attribute depending on selectability
- and selection status
- */
- if (!(item->opt & O_SELECTABLE))
- {
- wattron(menu->win,menu->grey);
- isgrey = TRUE;
- }
- else
- {
- if (item->value || item==menu->curitem)
- {
- wattron(menu->win,menu->fore);
- isfore = TRUE;
- }
- else
- {
- wattron(menu->win,menu->back);
- isback = TRUE;
- }
- }
-
- waddnstr(menu->win,item->name.str,item->name.length);
- for(ch=' ',i=menu->namelen-item->name.length;i>0;i--)
- {
- waddch(menu->win,ch);
- }
- count += menu->namelen;
-
- /* Show description if required and available */
- if ( (menu->opt & O_SHOWDESC) && menu->desclen>0 )
- {
- int m = menu->spc_desc/2;
- int cy = -1, cx = -1;
-
- for(ch=' ',i=0; i < menu->spc_desc; i++)
- {
- if (i==m)
- {
- waddch(menu->win,menu->pad);
- getyx(menu->win,cy,cx);
- }
- else
- waddch(menu->win,ch);
- }
- if (item->description.length)
- waddnstr(menu->win,item->description.str,item->description.length);
- for(ch=' ',i=menu->desclen-item->description.length; i>0; i--)
- {
- waddch(menu->win,ch);
- }
- count += menu->desclen + menu->spc_desc;
-
- if (menu->spc_rows > 1)
- {
- int j, k, ncy, ncx;
-
- assert(cx>=0 && cy>=0);
- getyx(menu->win,ncy,ncx);
- if (isgrey) wattroff(menu->win,menu->grey);
- else if (isfore) wattroff(menu->win,menu->fore);
- wattron(menu->win,menu->back);
- for(j=1; j < menu->spc_rows;j++)
- {
- if ((item_y+j) < getmaxy(menu->win))
- {
- wmove (menu->win,item_y+j,item_x);
- for(k=0;k<count;k++)
- waddch(menu->win,' ');
- }
- if ((cy+j) < getmaxy(menu->win))
- mvwaddch(menu->win,cy+j,cx-1,menu->pad);
- }
- wmove(menu->win,ncy,ncx);
- if (!isback)
- wattroff(menu->win,menu->back);
- }
- }
-
- /* Remove attributes */
- if (isfore)
- wattroff(menu->win,menu->fore);
- if (isback)
- wattroff(menu->win,menu->back);
- if (isgrey)
- wattroff(menu->win,menu->grey);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Draw_Menu(const MENU *)
-|
-| Description : Display the menu in its windows
-|
-| Return Values : -
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
-_nc_Draw_Menu (const MENU * menu)
-{
- ITEM *item = menu->items[0];
- ITEM *lasthor, *lastvert;
- ITEM *hitem;
- int y = 0;
- chtype s_bkgd;
-
- assert(item && menu->win);
-
- s_bkgd = getbkgd(menu->win);
- wbkgdset(menu->win,menu->back);
- werase(menu->win);
- wbkgdset(menu->win,s_bkgd);
-
- lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : item;
-
- do
- {
- wmove(menu->win,y,0);
-
- hitem = item;
- lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem;
-
- do
- {
- _nc_Post_Item( menu, hitem);
-
- wattron(menu->win,menu->back);
- if ( ((hitem = hitem->right) != lasthor) && hitem )
- {
- int i,j, cy, cx;
- chtype ch = ' ';
-
- getyx(menu->win,cy,cx);
- for(j=0;j<menu->spc_rows;j++)
- {
- wmove(menu->win,cy+j,cx);
- for(i=0; i < menu->spc_cols; i++)
- {
- waddch( menu->win,ch);
- }
- }
- wmove(menu->win,cy,cx+menu->spc_cols);
- }
- } while (hitem && (hitem != lasthor));
- wattroff(menu->win,menu->back);
-
- item = item->down;
- y += menu->spc_rows;
-
- } while( item && (item != lastvert) );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int post_menu(MENU *)
-|
-| Description : Post a menu to the screen. This makes it visible.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - not a valid menu pointer
-| E_SYSTEM_ERROR - error in lower layers
-| E_NO_ROOM - Menu to large for screen
-| E_NOT_CONNECTED - No items connected to menu
-| E_BAD_STATE - Menu in userexit routine
-| E_POSTED - Menu already posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-post_menu (MENU * menu)
-{
- if (!menu)
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
-
- if (menu->items && *(menu->items))
- {
- int y;
- int h = 1 + menu->spc_rows * (menu->rows - 1);
-
- WINDOW *win = Get_Menu_Window(menu);
- int maxy = getmaxy(win);
- int maxx = getmaxx(win);
-
- if (maxx < menu->width || maxy < menu->height)
- RETURN(E_NO_ROOM);
-
- if ( (menu->win = newpad(h,menu->width)) )
- {
- y = (maxy >= h) ? h : maxy;
- if (y>=menu->height)
- y = menu->height;
- if(!(menu->sub = subpad(menu->win,y,menu->width,0,0)))
- RETURN(E_SYSTEM_ERROR);
- }
- else
- RETURN(E_SYSTEM_ERROR);
-
- if (menu->status & _LINK_NEEDED)
- _nc_Link_Items(menu);
- }
- else
- RETURN(E_NOT_CONNECTED);
-
- menu->status |= _POSTED;
-
- if (!(menu->opt&O_ONEVALUE))
- {
- ITEM **items;
-
- for(items=menu->items;*items;items++)
- {
- (*items)->value = FALSE;
- }
- }
-
- _nc_Draw_Menu(menu);
-
- Call_Hook(menu,menuinit);
- Call_Hook(menu,iteminit);
-
- _nc_Show_Menu(menu);
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int unpost_menu(MENU *)
-|
-| Description : Detach menu from screen
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - not a valid menu pointer
-| E_BAD_STATE - menu in userexit routine
-| E_NOT_POSTED - menu is not posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-unpost_menu (MENU * menu)
-{
- WINDOW *win;
-
- if (!menu)
- RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _IN_DRIVER )
- RETURN(E_BAD_STATE);
-
- if ( !( menu->status & _POSTED ) )
- RETURN(E_NOT_POSTED);
-
- Call_Hook(menu,itemterm);
- Call_Hook(menu,menuterm);
-
- win = Get_Menu_Window(menu);
- werase(win);
- wsyncup(win);
-
- assert(menu->sub);
- delwin(menu->sub);
- menu->sub = (WINDOW *)0;
-
- assert(menu->win);
- delwin(menu->win);
- menu->win = (WINDOW *)0;
-
- menu->status &= ~_POSTED;
-
- RETURN(E_OK);
-}
-
-/* m_post.c ends here */
diff --git a/ncurses-5.3/menu/m_req_name.c b/ncurses-5.3/menu/m_req_name.c
deleted file mode 100644
index 8196c2b..0000000
--- a/ncurses-5.3/menu/m_req_name.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_request_name *
-* Routines to handle external names of menu requests *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-static const char *request_names[ MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1 ] = {
- "LEFT_ITEM" ,
- "RIGHT_ITEM" ,
- "UP_ITEM" ,
- "DOWN_ITEM" ,
- "SCR_ULINE" ,
- "SCR_DLINE" ,
- "SCR_DPAGE" ,
- "SCR_UPAGE" ,
- "FIRST_ITEM" ,
- "LAST_ITEM" ,
- "NEXT_ITEM" ,
- "PREV_ITEM" ,
- "TOGGLE_ITEM" ,
- "CLEAR_PATTERN",
- "BACK_PATTERN" ,
- "NEXT_MATCH" ,
- "PREV_MATCH"
-};
-#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : const char * menu_request_name (int request);
-|
-| Description : Get the external name of a menu request.
-|
-| Return Values : Pointer to name - on success
-| NULL - on invalid request code
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(const char *)
-menu_request_name ( int request )
-{
- if ( (request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND) )
- {
- SET_ERROR(E_BAD_ARGUMENT);
- return (const char *)0;
- }
- else
- return request_names[ request - MIN_MENU_COMMAND ];
-}
-
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_request_by_name (const char *str);
-|
-| Description : Search for a request with this name.
-|
-| Return Values : Request Id - on success
-| E_NO_MATCH - request not found
-+--------------------------------------------------------------------------*/
-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.
- */
- unsigned int i = 0;
- char buf[16];
-
- if (str)
- {
- strncpy(buf,str,sizeof(buf));
- while( (i<sizeof(buf)) && (buf[i] != '\0') )
- {
- buf[i] = toupper(buf[i]);
- i++;
- }
-
- for (i=0; i < A_SIZE; i++)
- {
- if (strncmp(request_names[i],buf,sizeof(buf))==0)
- return MIN_MENU_COMMAND + i;
- }
- }
- RETURN(E_NO_MATCH);
-}
-
-/* m_req_name.c ends here */
diff --git a/ncurses-5.3/menu/m_scale.c b/ncurses-5.3/menu/m_scale.c
deleted file mode 100644
index 98afdb4..0000000
--- a/ncurses-5.3/menu/m_scale.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_scale *
-* Menu scaling routine *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int scale_menu(const MENU *menu)
-|
-| Description : Returns the minimum window size necessary for the
-| subwindow of menu.
-|
-| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid menu pointer
-| E_NOT_CONNECTED - no items are connected to menu
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-scale_menu (const MENU *menu, int *rows, int *cols)
-{
- if (!menu)
- RETURN( E_BAD_ARGUMENT );
-
- if (menu->items && *(menu->items))
- {
- if (rows)
- *rows = menu->height;
- if (cols)
- *cols = menu->width;
- RETURN(E_OK);
- }
- else
- RETURN( E_NOT_CONNECTED );
-}
-
-/* m_scale.c ends here */
-
diff --git a/ncurses-5.3/menu/m_spacing.c b/ncurses-5.3/menu/m_spacing.c
deleted file mode 100644
index 1356599..0000000
--- a/ncurses-5.3/menu/m_spacing.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_spacing *
-* Routines to handle spacing between entries *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-#define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
-#define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
-#define MAX_SPC_ROWS (3)
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_spacing(MENU *menu,int desc, int r, int c);
-|
-| Description : Set the spacing between entried
-|
-| Return Values : E_OK - on success
-+--------------------------------------------------------------------------*/
-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);
-
- assert(m);
- if (m->status & _POSTED)
- RETURN(E_POSTED);
-
- if (((s_desc < 0) || (s_desc > MAX_SPC_DESC)) ||
- ((s_row < 0) || (s_row > MAX_SPC_ROWS)) ||
- ((s_col < 0) || (s_col > MAX_SPC_COLS)))
- RETURN(E_BAD_ARGUMENT);
-
- m->spc_desc = s_desc ? s_desc : 1;
- m->spc_rows = s_row ? s_row : 1;
- m->spc_cols = s_col ? s_col : 1;
- _nc_Calculate_Item_Length_and_Width(m);
-
- RETURN(E_OK);
-}
-
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int menu_spacing (const MENU *,int *,int *,int *);
-|
-| Description : Retrieve info about spacing between the entries
-|
-| Return Values : E_OK - on success
-+--------------------------------------------------------------------------*/
-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);
-
- assert(m);
- if (s_desc) *s_desc = m->spc_desc;
- if (s_row) *s_row = m->spc_rows;
- if (s_col) *s_col = m->spc_cols;
-
- RETURN(E_OK);
-}
-
-/* m_spacing.c ends here */
diff --git a/ncurses-5.3/menu/m_sub.c b/ncurses-5.3/menu/m_sub.c
deleted file mode 100644
index f3a54cc..0000000
--- a/ncurses-5.3/menu/m_sub.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_sub *
-* Menus subwindow association routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_sub(MENU *menu, WINDOW *win)
-|
-| Description : Sets the subwindow of the menu.
-|
-| Return Values : E_OK - success
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_sub (MENU *menu, WINDOW *win)
-{
- if (menu)
- {
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
- menu->usersub = win;
- _nc_Calculate_Item_Length_and_Width(menu);
- }
- else
- _nc_Default_Menu.usersub = win;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : WINDOW *menu_sub(const MENU *menu)
-|
-| Description : Returns a pointer to the subwindow of the menu
-|
-| Return Values : NULL on error, otherwise a pointer to the window
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(WINDOW *)
-menu_sub (const MENU * menu)
-{
- const MENU* m = Normalize_Menu(menu);
- return Get_Menu_Window(m);
-}
-
-/* m_sub.c ends here */
diff --git a/ncurses-5.3/menu/m_userptr.c b/ncurses-5.3/menu/m_userptr.c
deleted file mode 100644
index 7d08b66..0000000
--- a/ncurses-5.3/menu/m_userptr.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_userptr *
-* Associate application data with menus *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_userptr(MENU *menu, void *userptr)
-|
-| Description : Set the pointer that is reserved in any menu to store
-| application relevant informations.
-|
-| Return Values : E_OK - success
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_userptr (MENU * menu, void * userptr)
-{
- Normalize_Menu(menu)->userptr = userptr;
- RETURN( E_OK );
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void *menu_userptr(const MENU *menu)
-|
-| Description : Return the pointer that is reserved in any menu to
-| store application relevant informations.
-|
-| Return Values : Value of the pointer. If no such pointer has been set,
-| NULL is returned
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void *)
-menu_userptr (const MENU * menu)
-{
- return( Normalize_Menu(menu)->userptr);
-}
-
-/* m_userptr.c ends here */
diff --git a/ncurses-5.3/menu/m_win.c b/ncurses-5.3/menu/m_win.c
deleted file mode 100644
index a7cec81..0000000
--- a/ncurses-5.3/menu/m_win.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module m_win *
-* Menus window association routines *
-***************************************************************************/
-
-#include "menu.priv.h"
-
-MODULE_ID("$Id$")
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : int set_menu_win(MENU *menu, WINDOW *win)
-|
-| Description : Sets the window of the menu.
-|
-| Return Values : E_OK - success
-| E_POSTED - menu is already posted
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_menu_win (MENU *menu, WINDOW *win)
-{
- if (menu)
- {
- if ( menu->status & _POSTED )
- RETURN(E_POSTED);
- menu->userwin = win;
- _nc_Calculate_Item_Length_and_Width(menu);
- }
- else
- _nc_Default_Menu.userwin = win;
-
- RETURN(E_OK);
-}
-
-/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : WINDOW *menu_win(const MENU *)
-|
-| Description : Returns pointer to the window of the menu
-|
-| Return Values : NULL on error, otherwise pointer to window
-+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(WINDOW *)
-menu_win (const MENU *menu)
-{
- const MENU* m = Normalize_Menu(menu);
- return (m->userwin ? m->userwin : stdscr);
-}
-
-/* m_win.c ends here */
diff --git a/ncurses-5.3/menu/menu.h b/ncurses-5.3/menu/menu.h
deleted file mode 100644
index d827072..0000000
--- a/ncurses-5.3/menu/menu.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-#ifndef ETI_MENU
-#define ETI_MENU
-
-#ifdef AMIGA
-#define TEXT TEXT_ncurses
-#endif
-
-#include <curses.h>
-#include <eti.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef int Menu_Options;
-typedef int Item_Options;
-
-/* Menu options: */
-#define O_ONEVALUE (0x01)
-#define O_SHOWDESC (0x02)
-#define O_ROWMAJOR (0x04)
-#define O_IGNORECASE (0x08)
-#define O_SHOWMATCH (0x10)
-#define O_NONCYCLIC (0x20)
-
-/* Item options: */
-#define O_SELECTABLE (0x01)
-
-typedef struct
-{
- const char* str;
- unsigned short length;
-} TEXT;
-
-typedef struct tagITEM
-{
- TEXT name; /* name of menu item */
- TEXT description; /* description of item, optional in display */
- struct tagMENU *imenu; /* Pointer to parent menu */
- void *userptr; /* Pointer to user defined per item data */
- Item_Options opt; /* Item options */
- short index; /* Item number if connected to a menu */
- short y; /* y and x location of item in menu */
- short x;
- bool value; /* Selection value */
-
- struct tagITEM *left; /* neighbour items */
- struct tagITEM *right;
- struct tagITEM *up;
- struct tagITEM *down;
-
-} ITEM;
-
-typedef void (*Menu_Hook)(struct tagMENU *);
-
-typedef struct tagMENU
-{
- short height; /* Nr. of chars high */
- short width; /* Nr. of chars wide */
- short rows; /* Nr. of items high */
- short cols; /* Nr. of items wide */
- short frows; /* Nr. of formatted items high */
- short fcols; /* Nr. of formatted items wide */
- short arows; /* Nr. of items high (actual) */
- short namelen; /* Max. name length */
- short desclen; /* Max. description length */
- short marklen; /* Length of mark, if any */
- short itemlen; /* Length of one item */
- short spc_desc; /* Spacing for descriptor */
- short spc_cols; /* Spacing for columns */
- short spc_rows; /* Spacing for rows */
- char *pattern; /* Buffer to store match chars */
- short pindex; /* Index into pattern buffer */
- WINDOW *win; /* Window containing menu */
- WINDOW *sub; /* Subwindow for menu display */
- WINDOW *userwin; /* User's window */
- WINDOW *usersub; /* User's subwindow */
- ITEM **items; /* array of items */
- short nitems; /* Nr. of items in menu */
- ITEM *curitem; /* Current item */
- short toprow; /* Top row of menu */
- chtype fore; /* Selection attribute */
- chtype back; /* Nonselection attribute */
- chtype grey; /* Inactive attribute */
- unsigned char pad; /* Pad character */
-
- Menu_Hook menuinit; /* User hooks */
- Menu_Hook menuterm;
- Menu_Hook iteminit;
- Menu_Hook itemterm;
-
- void *userptr; /* Pointer to menus user data */
- char *mark; /* Pointer to marker string */
-
- Menu_Options opt; /* Menu options */
- unsigned short status; /* Internal state of menu */
-
-} MENU;
-
-
-/* Define keys */
-
-#define REQ_LEFT_ITEM (KEY_MAX + 1)
-#define REQ_RIGHT_ITEM (KEY_MAX + 2)
-#define REQ_UP_ITEM (KEY_MAX + 3)
-#define REQ_DOWN_ITEM (KEY_MAX + 4)
-#define REQ_SCR_ULINE (KEY_MAX + 5)
-#define REQ_SCR_DLINE (KEY_MAX + 6)
-#define REQ_SCR_DPAGE (KEY_MAX + 7)
-#define REQ_SCR_UPAGE (KEY_MAX + 8)
-#define REQ_FIRST_ITEM (KEY_MAX + 9)
-#define REQ_LAST_ITEM (KEY_MAX + 10)
-#define REQ_NEXT_ITEM (KEY_MAX + 11)
-#define REQ_PREV_ITEM (KEY_MAX + 12)
-#define REQ_TOGGLE_ITEM (KEY_MAX + 13)
-#define REQ_CLEAR_PATTERN (KEY_MAX + 14)
-#define REQ_BACK_PATTERN (KEY_MAX + 15)
-#define REQ_NEXT_MATCH (KEY_MAX + 16)
-#define REQ_PREV_MATCH (KEY_MAX + 17)
-
-#define MIN_MENU_COMMAND (KEY_MAX + 1)
-#define MAX_MENU_COMMAND (KEY_MAX + 17)
-
-/*
- * Some AT&T code expects MAX_COMMAND to be out-of-band not
- * just for menu commands but for forms ones as well.
- */
-#if defined(MAX_COMMAND)
-# if (MAX_MENU_COMMAND > MAX_COMMAND)
-# error Something is wrong -- MAX_MENU_COMMAND is greater than MAX_COMMAND
-# elif (MAX_COMMAND != (KEY_MAX + 128))
-# error Something is wrong -- MAX_COMMAND is already inconsistently defined.
-# endif
-#else
-# define MAX_COMMAND (KEY_MAX + 128)
-#endif
-
-
-/* --------- prototypes for libmenu functions ----------------------------- */
-
-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
- }
-#endif
-
-#endif /* ETI_MENU */
diff --git a/ncurses-5.3/menu/menu.priv.h b/ncurses-5.3/menu/menu.priv.h
deleted file mode 100644
index b249e43..0000000
--- a/ncurses-5.3/menu/menu.priv.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/***************************************************************************
-* Module menu.priv.h *
-* 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)
-
-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 menu to default if none was given */
-#define Normalize_Menu( menu ) ((menu)=(menu)?(menu):&_nc_Default_Menu)
-
-/* Get the user defined (framing) window of the menu */
-#define Get_Menu_UserWin(menu) ((menu)->userwin ? (menu)->userwin : stdscr)
-
-/* Normalize menu window */
-#define Get_Menu_Window( menu ) \
- ((menu)->usersub ? (menu)->usersub : Get_Menu_UserWin(menu))
-
-/* menu specific status flags */
-#define _LINK_NEEDED (0x04)
-#define _MARK_ALLOCATED (0x08)
-
-#define ALL_MENU_OPTS ( \
- O_ONEVALUE | \
- O_SHOWDESC | \
- O_ROWMAJOR | \
- O_IGNORECASE | \
- O_SHOWMATCH | \
- O_NONCYCLIC )
-
-#define ALL_ITEM_OPTS (O_SELECTABLE)
-
-/* Move to the window position of an item and draw it */
-#define Move_And_Post_Item(menu,item) \
- {wmove((menu)->win,(menu)->spc_rows*(item)->y,((menu)->itemlen+(menu)->spc_cols)*(item)->x);\
- _nc_Post_Item((menu),(item));}
-
-#define Move_To_Current_Item(menu,item) \
- if ( (item) != (menu)->curitem)\
- {\
- Move_And_Post_Item(menu,item);\
- Move_And_Post_Item(menu,(menu)->curitem);\
- }
-
-/* This macro ensures, that the item becomes visible, if possible with the
- specified row as the top row of the window. If this is not possible,
- the top row will be adjusted and the value is stored in the row argument.
-*/
-#define Adjust_Current_Item(menu,row,item) \
- { if ((item)->y < row) \
- row = (item)->y;\
- if ( (item)->y >= (row + (menu)->arows) )\
- row = ( (item)->y < ((menu)->rows - row) ) ? \
- (item)->y : (menu)->rows - (menu)->arows;\
- _nc_New_TopRow_and_CurrentItem(menu,row,item); }
-
-/* Reset the match pattern buffer */
-#define Reset_Pattern(menu) \
- { (menu)->pindex = 0; \
- (menu)->pattern[0] = '\0'; }
-
-/* Internal functions. */
-extern NCURSES_EXPORT(void) _nc_Draw_Menu (const MENU *);
-extern NCURSES_EXPORT(void) _nc_Show_Menu (const MENU *);
-extern NCURSES_EXPORT(void) _nc_Calculate_Item_Length_and_Width (MENU *);
-extern NCURSES_EXPORT(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);
-
-#endif /* MENU_PRIV_H_incl */
diff --git a/ncurses-5.3/menu/mf_common.h b/ncurses-5.3/menu/mf_common.h
deleted file mode 100644
index 40ed1e2..0000000
--- a/ncurses-5.3/menu/mf_common.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/* Common internal header for menu and form library */
-
-#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 <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-/* in case of debug version we ignore the suppression of assertions */
-#ifdef TRACE
-# ifdef NDEBUG
-# undef NDEBUG
-# endif
-#endif
-
-#include <nc_alloc.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-
-/* Maximum regular 8-bit character code */
-#define MAX_REGULAR_CHARACTER (0xff)
-
-#define SET_ERROR(code) (errno=(code))
-#define GET_ERROR() (errno)
-#define RETURN(code) return( SET_ERROR(code) )
-
-/* The few common values in the status fields for menus and forms */
-#define _POSTED (0x01) /* menu or form is posted */
-#define _IN_DRIVER (0x02) /* menu or form is processing hook routine */
-
-/* Call object hook */
-#define Call_Hook( object, handler ) \
- if ( (object) && ((object)->handler) )\
- {\
- (object)->status |= _IN_DRIVER;\
- (object)->handler(object);\
- (object)->status &= ~_IN_DRIVER;\
- }
-
-#define INLINE
-
-#ifndef TRACE
-# if CC_HAS_INLINE_FUNCS
-# undef INLINE
-# define INLINE inline
-# endif
-#endif
-
-#endif /* MF_COMMON_H_incl */
diff --git a/ncurses-5.3/menu/modules b/ncurses-5.3/menu/modules
deleted file mode 100644
index eb1f9e8..0000000
--- a/ncurses-5.3/menu/modules
+++ /dev/null
@@ -1,60 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-
-@ base
-# Library objects
-m_attribs lib $(srcdir) $(MENU_PRIV_H)
-m_cursor lib $(srcdir) $(MENU_PRIV_H)
-m_driver lib $(srcdir) $(MENU_PRIV_H)
-m_format lib $(srcdir) $(MENU_PRIV_H)
-m_global lib $(srcdir) $(MENU_PRIV_H)
-m_hook lib $(srcdir) $(MENU_PRIV_H)
-m_item_cur lib $(srcdir) $(MENU_PRIV_H)
-m_item_nam lib $(srcdir) $(MENU_PRIV_H)
-m_item_new lib $(srcdir) $(MENU_PRIV_H)
-m_item_opt lib $(srcdir) $(MENU_PRIV_H)
-m_item_top lib $(srcdir) $(MENU_PRIV_H)
-m_item_use lib $(srcdir) $(MENU_PRIV_H)
-m_item_val lib $(srcdir) $(MENU_PRIV_H)
-m_item_vis lib $(srcdir) $(MENU_PRIV_H)
-m_items lib $(srcdir) $(MENU_PRIV_H)
-m_new lib $(srcdir) $(MENU_PRIV_H)
-m_opts lib $(srcdir) $(MENU_PRIV_H)
-m_pad lib $(srcdir) $(MENU_PRIV_H)
-m_pattern lib $(srcdir) $(MENU_PRIV_H)
-m_post lib $(srcdir) $(MENU_PRIV_H)
-m_req_name lib $(srcdir) $(MENU_PRIV_H)
-m_scale lib $(srcdir) $(MENU_PRIV_H)
-m_spacing lib $(srcdir) $(MENU_PRIV_H)
-m_sub lib $(srcdir) $(MENU_PRIV_H)
-m_userptr lib $(srcdir) $(MENU_PRIV_H)
-m_win lib $(srcdir) $(MENU_PRIV_H)
diff --git a/ncurses-5.3/misc/Makefile.in b/ncurses-5.3/misc/Makefile.in
deleted file mode 100644
index d60761d..0000000
--- a/ncurses-5.3/misc/Makefile.in
+++ /dev/null
@@ -1,128 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for ncurses miscellany directory
-#
-# This makes/installs the terminfo database
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES :
-
-SHELL = /bin/sh
-THIS = Makefile
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-
-DESTDIR = @DESTDIR@
-top_srcdir = @top_srcdir@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-datadir = @datadir@
-
-CC = @CC@
-HOSTCC = @BUILD_CC@
-
-tabsetdir = $(datadir)/tabset
-ticdir = @TERMINFO@
-source = @TERMINFO_SRC@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-################################################################################
-all :
-
-depend :
-
-sources :
-
-install : install.data
-
-install.data : $(DESTDIR)$(libdir) \
- $(DESTDIR)$(ticdir) \
- $(DESTDIR)$(tabsetdir)
- DESTDIR=${DESTDIR} \
- prefix=${prefix} \
- exec_prefix=${exec_prefix} \
- bindir=${bindir} \
- top_srcdir=${top_srcdir} \
- srcdir=${srcdir} \
- datadir=${datadir} \
- ticdir=${ticdir} \
- source=${source} \
- THIS_CC="$(CC)" \
- THAT_CC="$(HOSTCC)" \
- sh ./run_tic.sh
- @cd $(srcdir)/tabset && \
- sh -c 'for i in * ; do \
- if test -f $$i ; then \
- echo installing $$i; \
- $(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
- fi; done'
-
-$(DESTDIR)$(libdir) \
-$(DESTDIR)$(tabsetdir) \
-$(DESTDIR)$(ticdir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-uninstall : uninstall.data
-
-uninstall.data :
- -cd $(DESTDIR)$(ticdir) && rm -rf *
- -cd $(DESTDIR)$(tabsetdir) && rm -rf *
-
-tags :
-
-@MAKE_UPPER_TAGS@TAGS :
-
-mostlyclean :
- -rm -f core tags TAGS *~ *.bak *.ln *.atac trace
-
-clean :: mostlyclean
-
-distclean : clean
- -rm -f Makefile run_tic.sh
-
-realclean : distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/misc/chkdef.cmd b/ncurses-5.3/misc/chkdef.cmd
deleted file mode 100644
index ee5dc5b..0000000
--- a/ncurses-5.3/misc/chkdef.cmd
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * $Id$
- *
- * Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
- * Webpage: http://www.arrakis.es/~worm/
- *
- * chkdef.cmd - checks that a .def file has no conflicts and is properly
- * formatted.
- *
- * returns nonzero if two symbols have the same code or a line has a wrong
- * format.
- *
- * returns 0 otherwise
- *
- * the standard output shows conflicts.
- */
-parse arg def_file
-
-def_file = translate(def_file,'\','/')
-
-call CleanQueue
-
-/*
- * `cmp' is zero when the file is valid
- * `codes' associates a name to a code
- * `names' associates a code to a name
- */
-cmp = 0
-codes. = 0
-names. = ''
-
-/*
- * This sed expression cleans empty lines, comments and special .DEF
- * commands, such as LIBRARY..., EXPORTS..., etc
- */
-tidy_up = '"s/[ ][ ]*/ /g;s/;.*//g;/^[ ]*$/d;/^[a-zA-Z]/d;"'
-
-/*
- * First we find all public symbols from the original DLL. All this
- * information is pushed into a REXX private list with the RXQUEUE
- * utility program.
- */
-'@echo off'
-'type' def_file '| sed' tidy_up '| sort | rxqueue'
-
-do while queued() > 0
- /*
- * We retrieve the symbol name (NEW_NAME) and its code (NEW_CODE)
- */
- parse pull '"' new_name '"' '@'new_code rest
- select
- when (new_code = '') | (new_name = '') then
- /* The input was not properly formatted */
- do
- say 'Error: symbol "'new_name'" has no export code or is empty'
- cmp = 1
- end
- when codes.new_name \= 0 then
- /* This symbol was already defined */
- if codes.new_name \= new_code then
- do
- cmp = 2
- say 'Symbol "'new_name'" multiply defined'
- end
- when names.new_code \= '' then
- /* This code was already assigned to a symbol */
- if names.new_code \= new_name then
- do
- cmp = 3
- say 'Conflict with "'names.new_code'" & "'new_name'" being @'new_code
- end
- otherwise
- do
- codes.new_name = new_code
- names.new_code = new_name
- end
- end /* select */
-end
-
-exit cmp
-
-CleanQueue: procedure
- do while queued() > 0
- parse pull foo
- end
-return
diff --git a/ncurses-5.3/misc/cleantic.cmd b/ncurses-5.3/misc/cleantic.cmd
deleted file mode 100644
index 129c904..0000000
--- a/ncurses-5.3/misc/cleantic.cmd
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * $Id$
- *
- * Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
- * Webpage: http://www.arrakis.es/~worm/
- */
-parse arg dir
-
-pause
-dir = translate(dir,'\','/');
-letters = '0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z'
-
-if dir = '' then
- dir = '.'
-'echo Cleaning 'dir
-'for %%1 in ('letters') do @if not exist 'dir'\%%1\* (echo Cleaning ...\%%1 & rd %%1 2>NUL)'
diff --git a/ncurses-5.3/misc/cmpdef.cmd b/ncurses-5.3/misc/cmpdef.cmd
deleted file mode 100644
index 0aa4bdb..0000000
--- a/ncurses-5.3/misc/cmpdef.cmd
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * $Id$
- *
- * Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
- * Webpage: http://www.arrakis.es/~worm/
- *
- * cmpdef.cmd - compares two .def files, checking whether they have
- * the same entries with the same export codes.
- *
- * returns 0 if there are no conflicts between the files -- that is,
- * the newer one can replace the older one.
- *
- * returns 1 when either of the files is not properly formatted and
- * when there are conflicts: two symbols having the same export code.
- *
- * the standard output shows a list with newly added symbols, plus
- * replaced symbols and conflicts.
- */
-parse arg def_file1 def_file2
-
-def_file1 = translate(def_file1,'\','/')
-def_file2 = translate(def_file2,'\','/')
-
-call CleanQueue
-
-/*
- * `cmp' is zero when the last file is valid and upward compatible
- * `numbers' is the stem where symbols are stored
- */
-cmp = 0
-names. = ''
-numbers. = 0
-
-/*
- * This sed expression cleans empty lines, comments and special .DEF
- * commands, such as LIBRARY..., EXPORTS..., etc
- */
-tidy_up = '"s/[ ][ ]*/ /g;s/;.*//g;/^[ ]*$/d;/^[a-zA-Z]/d;"'
-
-/*
- * First we find all public symbols from the original DLL. All this
- * information is pushed into a REXX private list with the RXQUEUE
- * utility program.
- */
-'@echo off'
-'type' def_file1 '| sed' tidy_up '| sort | rxqueue'
-
-do while queued() > 0
- /*
- * We retrieve the symbol name (NAME) and its number (NUMBER)
- */
- parse pull '"' name '"' '@'number rest
- if number = '' || name = '' then
- do
- say 'Corrupted file' def_file1
- say 'Symbol' name 'has no number'
- exit 1
- end
- else
- do
- numbers.name = number
- names.number = name
- end
-end
-
-/*
- * Now we find all public symbols from the new DLL, and compare.
- */
-'type' def_file2 '| sed' tidy_up '| sort | rxqueue'
-
-do while queued() > 0
- parse pull '"' name '"' '@'number rest
- if name = '' | number = '' then
- do
- say 'Corrupted file' def_file2
- say 'Symbol' name 'has no number'
- exit 1
- end
- if numbers.name = 0 then
- do
- cmp = 1
- if names.number = '' then
- say 'New symbol' name 'with code @'number
- else
- say 'Conflict old =' names.number ', new =' name 'at @'number
- end
- else if numbers.name \= number then
- do
- cmp = 1
- say name 'Symbol' name 'changed from @'numbers.name 'to @'number
- end
-end /* do */
-
-exit cmp
-
-/*
- * Cleans the REXX queue by pulling and forgetting every line.
- * This is needed, at least, when `cmpdef.cmd' starts, because an aborted
- * REXX program might have left some rubbish in.
- */
-CleanQueue: procedure
- do while queued() > 0
- parse pull foo
- end
-return
-
diff --git a/ncurses-5.3/misc/emx.src b/ncurses-5.3/misc/emx.src
deleted file mode 100644
index b95e641..0000000
--- a/ncurses-5.3/misc/emx.src
+++ /dev/null
@@ -1,825 +0,0 @@
-# $Id$
-# This is a reformatted copy of the terminfo source for OS/2 EMX from
-# Juan Jose Garcia Ripoll <worm@arrakis.es>.
-# http://www.arrakis.es/~worm/
-#----------------------------------------------------------------------------
-#
-# This section describes terminal classes and maker brands that are still
-# quite common.
-#
-
-#### Specials
-#
-# Special "terminals". These are used to label tty lines when you don't
-# know what kind of terminal is on it. The characteristics of an unknown
-# terminal are the lowest common denominator - they look about like a ti 700.
-#
-
-dumb|80-column dumb tty,
- am,
- cols#80,
- bel=^G,
- cr=^M,
- cud1=^J,
- ind=^J,
-unknown|unknown terminal type,
- gn,
- use=dumb,
-lpr|printer|line printer,
- hc,
- os,
- cols#132,
- lines#66,
- bel=^G,
- cr=^M,
- cub1=^H,
- cud1=^J,
- ff=^L,
- ind=^J,
-glasstty|classic glass tty interpreting ASCII control characters,
- am,
- cols#80,
- bel=^G,
- clear=^L,
- cr=^M,
- cub1=^H,
- cud1=^J,
- ht=^I,
- kbs=^H,
- kcub1=^H,
- kcud1=^J,
- nel=^M^J,
-
-#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
-#
-# See the end-of-file comment for more on these.
-#
-
-# The IBM PC alternate character set. Plug this into any Intel console entry.
-# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
-# ROM graphics for control characters such as the diamond, up- and down-arrow.
-# This works with the System V, Linux, and BSDI consoles. It's a safe bet this
-# will work with any Intel console, they all seem to have inherited \E[11m
-# from the ANSI.SYS de-facto standard.
-klone+acs|alternate character set for ansi.sys displays,
- 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,
- rmacs=\E[10m,
- smacs=\E[11m,
-
-# Highlight controls corresponding to the ANSI.SYS standard. Most
-# console drivers for Intel boxes obey these. Makes the same assumption
-# about \E[11m as klone+acs. True ANSI/ECMA-48 would have <rmso=\E[27m>,
-# <rmul=\E[24m>, but this isn't a documented feature of ANSI.SYS.
-klone+sgr|attribute control for ansi.sys displays,
- blink=\E[5m,
- bold=\E[1m,
- invis=\E[8m,
- rev=\E[7m,
- rmacs=\E[10m,
- rmpch=\E[10m,
- rmso=\E[m,
- rmul=\E[m,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- sgr0=\E[0;10m,
- smacs=\E[11m,
- smpch=\E[11m,
- smso=\E[7m,
- smul=\E[4m,
-
-# Highlight controls corresponding to the ANSI.SYS standard. *All*
-# console drivers for Intel boxes obey these. Does not assume \E[11m will
-# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
-# diamond and arrow characters under curses.
-klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m),
- blink=\E[5m,
- bold=\E[1m,
- invis=\E[8m,
- rev=\E[7m,
- rmacs=\E[10m,
- rmso=\E[m,
- rmul=\E[m,
- 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,
-
-# ANSI.SYS color control.
-# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
-klone+color|color control for ansi.sys and ISO6429-compatible displays,
- colors#8,
- ncv#3,
- pairs#64,
- op=\E[37;40m,
- setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-
-#### ANSI/ECMA-48 terminals and terminal emulators
-#
-# See near the end of this file for details on ANSI conformance.
-# Don't mess with these entries! Lots of other entries depend on them!
-#
-# This section lists entries in a least-capable to most-capable order.
-# if you're in doubt about what `ANSI' matches yours, try them in that
-# order and back off from the first that breaks.
-
-ansi-mini|any ansi terminal with pessimistic assumptions,
- am,
- cols#80,
- it#8,
- lines#24,
- clear=\E[H\E[2J$<50>,
- cub1=\E[D,
- cud1=\E[B,
- cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A,
- el=\E[K,
- home=\E[H,
- ht=^I,
-
-#
-# ANSI.SYS entries
-#
-# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
-# documentation (except for the keyboard key reassignment feature, which
-# doen't fit the <pfkey> model well). The klone+acs sequences were valid
-# though undocumented. The <pfkey> capability is untested but should work for
-# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
-ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
- am,
- mir,
- msgr,
- xon,
- cols#80,
- lines#25,
- clear=\E[2J,
- cub1=^H,
- cud1=\E[B,
- cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A,
- el=\E[k,
- home=\E[H,
- is2=\E[m\E[?7h,
- kcub1=^H,
- kcud1=^J,
- kcuf1=^L,
- kcuu1=^K,
- khome=^^,
- pfkey=\E[0;%p1%{58}%+%d;%p2"%s",
- rc=\E[u,
- rmam=\E[?7l,
- sc=\E[s,
- smam=\E[?7h,
- u6=\E[%i%d;%dR,
- u7=\E[6n,
- use=klone+color,
- use=klone+acs,
- use=klone+sgr,
-ansi.sys|ANSI.SYS 3.1 and later versions,
- el=\E[K,
- use=ansi.sys-old,
-
-### EMX termcap.dat compatibility modes
-#
-# Keypad: Home=\0G Up=\0H PrPag=\0I
-# ka1,kh kcuu1 kpp,ka3
-#
-# Left=\0K 5=\0L Right=\0M
-# kcub1 kb2 kcuf1
-#
-# End=\0O Down=\0P NxPag=\0Q
-# kc1,kend kcud1 kc3,knp
-#
-# Ins=\0R Del=\0S
-# kich1 kdch1
-#
-# On keyboard with 12 function keys,
-# shifted f-keys: F13-F24
-# control f-keys: F25-F36
-# alt f-keys: F37-F48
-# The shift/control/alt keys do not modify each other, but alt overrides both,
-# and control overrides shift.
-#
-# Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
-# no_color_video to inform the application that standout(1), underline(2)
-# reverse(4) and invisible(64) don't work with color.
-emx-base|DOS special keys,
- bw,
- ncv#71,
- bel=^G,
- ka1=\0G,
- ka3=\0I,
- kb2=\0L,
- kbs=^H,
- kc1=\0O,
- kc3=\0Q,
- kcbt=\0^O,
- kcub1=\0K,
- kcud1=\0P,
- kcuf1=\0M,
- kcuu1=\0H,
- kdch1=\0S,
- kend=\0O,
- kf1=\0;,
- kf10=\0D,
- kf11=\0\205,
- kf12=\0\206,
- kf13=\0T,
- kf14=\0U,
- kf15=\0V,
- kf16=\0W,
- kf17=\0X,
- kf18=\0Y,
- kf19=\0Z,
- kf2=\0<,
- kf20=\0[,
- kf21=\0\\,
- kf22=\0],
- kf23=\0\207,
- kf24=\0\210,
- kf25=\0\^,
- kf26=\0_,
- kf27=\0`,
- kf28=\0a,
- kf29=\0b,
- kf3=\0=,
- kf30=\0c,
- kf31=\0d,
- kf32=\0e,
- kf33=\0f,
- kf34=\0g,
- kf35=\0\211,
- kf36=\0\212,
- kf37=\0h,
- kf38=\0i,
- kf39=\0j,
- kf4=\0>,
- kf40=\0k,
- kf41=\0l,
- kf42=\0m,
- kf43=\0n,
- kf44=\0o,
- kf45=\0p,
- kf46=\0q,
- kf47=\0\213,
- kf48=\0\214,
- kf5=\0?,
- kf6=\0@,
- kf7=\0A,
- kf8=\0B,
- kf9=\0C,
- khome=\0G,
- kich1=\0R,
- knp=\0Q,
- kpp=\0I,
- use=ansi.sys,
-#
-# To properly translate termcap.dat -> terminfo.src remember these
-# equivalences:
-# ti <-> smcup string to start programs using cup(termcap)
-# te <-> rmcup string to end programs using cup
-# so <-> smso begin standout mode
-# se <-> rmso exit standout mode
-# us <-> smul begin underline mode
-# ue <-> rmul exit underline mode
-# mb <-> blink turn on blinking
-# md <-> bold turn on extra bright (bold) mode
-# mr <-> rev turn on reverse video mode
-# me <-> sgr0 turn off all atributes
-#
-# On my terminal, \E[4m looks dim.
-ansi|ANSI.SYS color,
- blink=\E[5m,
- bold=\E[1m,
- kmous=\E[M,
- rev=\E[7m,
- rmcup=\E[0m,
- rmso=\E[0m,
- rmul@,
- sgr0=\E[0m,
- smcup=\E[0;37;40m,
- smso=\E[7m,
- smul@,
- use=emx-base,
-window|ANSI.SYS window,
- blink=\E[5m,
- bold=\E[1;37;47m,
- rev=\E[1;37;47m,
- rmcup=\E[0m,
- rmso=\E[0;37;40m,
- rmul=\E[0;37;40m,
- sgr0=\E[0;37;40m,
- smcup=\E[0;37;40m,
- smso=\E[1;37;47m,
- smul=\E[1;31;47m,
- use=emx-base,
-os2|OS/2-emx ANSI.SYS,
- cuu=\E[%p1%dA,
- cuu1=\E[A,
- cud=\E[%p1%dB,
- cud1=\E[B,
- cuf=\E[%p1%dC,
- cuf1=\E[C,
- cub=\E[%p1%dD,
- cub1=\E[D,
- sc=\E[s,
- rc=\E[u,
- use=ansi,
- use=mono,
-mono|ANSI.SYS mono,
- blink=\E[5m,
- bold=\E[1m,
- rev=\E[7m,
- rmcup=\E[0m,
- rmso=\E[m,
- rmul=\E[m,
- sgr0=\E[m,
- smcup=\E[0m,
- smso=\E[1m,
- smul=\E[4m,
- use=emx-base,
-# same as mono, but use reverse video for standout (nice for Emacs)
-rmono|ANSI.SYS reverse mono,
- smso=\E[7m,
- use=mono,
-# same as mono, but use a readable color for underlining
-mono2|ANSI.SYS mono2,
- rmul=\E[0m,
- smul=\E[1;31;40m,
- use=mono,
-# nice colors for Emacs (white on blue, mode line white on cyan)
-ansi-color-2|ANSI.SYS color 2,
- rmcup=\E[0m,
- rmso=\E[0;37;44m,
- rmul=\E[0m,
- sgr0=\E[0;37;44m,
- smcup=\E[0;37;44m,
- smso=\E[1;37;46m,
- smul=\E[1;31;40m,
- use=ansi,
-# nice colors for Emacs (white on black, mode line black on cyan)
-ansi-color-3|ANSI.SYS color 3,
- rmcup=\E[0m,
- rmso=\E[0m,
- rmul=\E[0m,
- sgr0=\E[0m,
- smcup=\E[0m,
- smso=\E[30;46m,
- smul=\E[1;31;40m,
- use=ansi,
-
-#### X terminal emulators
-#
-# X10/6.6 11/7/86, minus alternate screen, plus (csr)
-# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
-# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
-# as these seem not to work -- esr)
-x10term|vs100-x10|xterm terminal emulator (X10 window system),
- am,
- km,
- mir,
- msgr,
- xenl,
- xon,
- cols#80,
- it#8,
- lines#65,
- bold=\E[1m,
- clear=\E[H\E[2J,
- csr=\E[%i%p1%d;%p2%dr,
- cub1=^H,
- cud1=^J,
- cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A,
- dch=\E[%p1%dP,
- dch1=\E[P,
- dl=\E[%p1%dM,
- dl1=\E[M,
- ed=\E[J,
- el=\E[K,
- home=\E[H,
- ht=^I,
- il=\E[%p1%dL,
- il1=\E[L,
- ind=^J,
- is2=\E\E[m\E[?7h\E[?1;4l,
- kbs=^H,
- kcub1=\EOD,
- kcud1=\EOB,
- kcuf1=\EOC,
- kcuu1=\EOA,
- kf1=\EOP,
- kf2=\EOQ,
- kf3=\EOR,
- kf4=\EOS,
- rev=\E[7m,
- ri=\EM,
- rmam=\E[?7l,
- rmir=\E[4l,
- rmkx=\E[?1l\E>,
- rmso=\E[m,
- rmul=\E[m,
- sgr0=\E[m,
- smam=\E[?7h,
- smir=\E[4h,
- smkx=\E[?1h\E=,
- smso=\E[7m,
- smul=\E[4m,
-# X11R6 xterm. This is known good for the XFree86 version under Linux.
-# It is *way* more featureful than the stock X consortium entry (has acsc,
-# for starters). The <kmous> key is actually the \E[M prefix returned by
-# xterm's internal mouse-tracking facility; ncurses will interpret the
-# following three bytes of mouse status information.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 14 Dec 1995
-xterm|vs100|xterm terminal emulator (X11R6 Window System),
- am,
- km,
- mir,
- msgr,
- xenl,
- xon,
- cols#80,
- it#8,
- lines#65,
- acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G,
- bold=\E[1m,
- clear=\E[H\E[2J,
- cr=^M,
- csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD,
- cub1=^H,
- cud=\E[%p1%dB,
- cud1=^J,
- cuf=\E[%p1%dC,
- cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA,
- cuu1=\E[A,
- dch=\E[%p1%dP,
- dch1=\E[P,
- dl=\E[%p1%dM,
- dl1=\E[M,
- ed=\E[J,
- el=\E[K,
- enacs=\E(B\E)0,
- home=\E[H,
- ht=^I,
- ich=\E[%p1%d@,
- ich1=\E[@,
- il=\E[%p1%dL,
- il1=\E[L,
- ind=^J,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
- kbs=^H,
- kcub1=\EOD,
- kcud1=\EOB,
- kcuf1=\EOC,
- kcuu1=\EOA,
- kend=\EOe,
- kent=\EOM,
- kf1=\E[11~,
- kf10=\E[21~,
- kf11=\E[23~,
- kf12=\E[24~,
- kf2=\E[12~,
- kf3=\E[13~,
- kf4=\E[14~,
- kf5=\E[15~,
- kf6=\E[17~,
- kf7=\E[18~,
- kf8=\E[19~,
- kf9=\E[20~,
- khome=\EO\0,
- kich1=\E[2~,
- kmous=\E[M,
- knp=\E[6~,
- kpp=\E[5~,
- rc=\E8,
- rev=\E[7m,
- ri=\EM,
- rmacs=^O,
- rmam=\E[?7l,
- rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l,
- rmkx=\E[?1l\E>,
- rmso=\E[m,
- rmul=\E[m,
- rs1=^O,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
- sc=\E7,
- 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[3k,
- u6=\E[%i%d;%dR,
- u7=\E[6n,
- u8=\E[?1;2c,
- u9=\E[c,
-xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
- smso=\E[1m,
- use=xterm,
-xterms|vs100s|xterm terminal emulator (small screen 24x80),
- cols#80,
- lines#24,
- use=xterm,
-# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
-kterm|kterm kanji terminal emulator (X window system),
- eslok,
- hs,
- csr=\E[%i%p1%d;%p2%dr,
- dsl=\E[?H,
- fsl=\E[?F,
- rc=\E8,
- sc=\E7,
- tsl=\E[?E\E[?%i%dT,
- use=xterm,
-
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
- ich@,
- ich1@,
- use=xterm,
-
-# Should work with the color xterm on the X11R6 contrib tape.
-# Assumes the xterm attribute default is black on white.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> March 4 1996
-xterm-color|xterm with color support,
- op=\E[30;47m,
- use=xterm,
- use=klone+color,
-
-# From: Thomas Dickey <dickey@clark.net> 13 Dec 1995
-rxvt|rxvt terminal emulator,
- kend=\EOw,
- khome=\E[H,
- kmous@,
- use=xterm,
- use=klone+color,
-
-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
-# Here's a termcap entry I've been using for xterm_color, which comes
-# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
-# color stuff, I also have a status line defined as the window manager
-# title bar. [I have translated it to terminfo -- ESR]
-xterm-pcolor|xterm with color used for highlights and status line,
- hs,
- wsl#40,
- bold=\E[1m\E[43m,
- dsl=\E]0;\007,
- fsl=^G,
- rev=\E[7m\E[34m,
- smso=\E[7m\E[31m,
- smul=\E[4m\E[42m,
- tsl=\E]0;,
- use=xterm,
-
-# HP ships this, except for the pb#9600 which was merged in from BSD termcap.
-hpterm|X-hpterm|hp X11 terminal emulator,
- am,
- da,
- db,
- mir,
- xhp,
- cols#80,
- lh#2,
- lines#24,
- lm#0,
- lw#8,
- nlab#8,
- pb#9600,
- xmc#0,
- bel=^G,
- bold=\E&dB,
- cbt=\Ei,
- clear=\E&a0y0C\EJ,
- cr=^M,
- cub1=^H,
- cud1=\EB,
- cuf1=\EC,
- cup=\E&a%p1%dy%p2%dC,
- cuu1=\EA,
- dch1=\EP,
- dim=\E&dH,
- dl1=\EM,
- ed=\EJ$<1>,
- el=\EK,
- hpa=\E&a%p1%dC,
- ht=^I,
- hts=\E1,
- il1=\EL,
- ind=^J,
- kbs=^H,
- kclr=\EJ,
- kctab=\E2,
- kcub1=\ED,
- kcud1=\EB,
- kcuf1=\EC,
- kcuu1=\EA,
- kdch1=\EP,
- kdl1=\EM,
- ked=\EJ,
- kel=\EK,
- kf1=\Ep,
- kf2=\Eq,
- kf3=\Er,
- kf4=\Es,
- kf5=\Et,
- kf6=\Eu,
- kf7=\Ev,
- kf8=\Ew,
- khome=\Eh,
- khts=\E1,
- kich1=\EQ,
- kil1=\EL,
- kind=\ES,
- kll=\EF,
- knp=\EU,
- kpp=\EV,
- kri=\ET,
- krmir=\ER,
- ktbc=\E3,
- meml=\El,
- memu=\Em,
- pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
- pln=\E&f%p1%dk%p2%l%dd0L%p2%s,
- rev=\E&dB,
- ri=\ET,
- rmacs=^O,
- rmir=\ER,
- rmkx=\E&s0A,
- rmln=\E&j@,
- rmso=\E&d@,
- rmul=\E&d@,
- sgr=\E&d%?%p7%t%'s'%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%'@'%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@,
- smacs=^N,
- smir=\EQ,
- smkx=\E&s1A,
- smln=\E&jB,
- smso=\E&dJ,
- smul=\E&dD,
- tbc=\E3,
- vpa=\E&a%p1%dY,
-
-# This entry describes an xterm with Sun-style function keys enabled
-# via the X resource setting "xterm*sunFunctionKeys:true"
-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
-# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
-# because we want it to be seen as <kcpy>.
-# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
-# with their Sun keyboard labels instead.
-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
-xterm-sun|xterm with sunFunctionKeys true,
- kb2=\E[218z,
- kcpy=\E[197z,
- kend=\E[220z,
- kf1=\E[224z,
- kf10=\E[233z,
- kf11=\E[192z,
- kf12=\E[193z,
- kf13=\E[194z,
- kf14=\E[195z,
- kf15=\E[196z,
- kf17=\E[198z,
- kf18=\E[199z,
- kf19=\E[200z,
- kf2=\E[225z,
- kf20=\E[201z,
- kf3=\E[226z,
- kf31=\E[208z,
- kf32=\E[209z,
- kf33=\E[210z,
- kf34=\E[211z,
- kf35=\E[212z,
- kf36=\E[213z,
- kf38=\E[215z,
- kf4=\E[227z,
- kf40=\E[217z,
- kf42=\E[219z,
- kf44=\E[221z,
- kf5=\E[228z,
- kf6=\E[229z,
- kf7=\E[230z,
- kf8=\E[231z,
- kf9=\E[232z,
- kfnd=\E[200z,
- khlp=\E[196z,
- khome=\E[214z,
- kich1=\E[2z,
- knp=\E[222z,
- kpp=\E[216z,
- kund=\E[195z,
- use=xterm,
-xterms-sun|small (80x24) xterm with sunFunctionKeys true,
- cols#80,
- lines#24,
- use=xterm-sun,
-
-# This is for the extensible terminal emulator on the X11R6 contrib tape.
-emu|emu native mode,
- mir,
- msgr,
- xon,
- colors#15,
- cols#80,
- it#8,
- lines#24,
- pairs#64,
- vt#200,
- acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
- bel=^G,
- blink=\ES\EW,
- bold=\ES\EU,
- civis=\EZ,
- clear=\EP\EE0;0;,
- cnorm=\Ea,
- cr=^M,
- csr=\Ek%p1%d;%p2%d;,
- cub=\Eq-%p1%d;,
- cub1=^H,
- cud=\Ep%p1%d;,
- cud1=\EB,
- cuf=\Eq%p1%d;,
- cuf1=\ED,
- cup=\EE%p1%d;%p2%d;,
- cuu=\Ep-%p1%d;,
- cuu1=\EA,
- cvvis=\Ea,
- dch=\EI%p1%d;,
- dch1=\EI1;,
- dl=\ER%p1%d;,
- dl1=\ER1;,
- ech=\Ej%p1%d;,
- ed=\EN,
- el=\EK,
- el1=\EL,
- enacs=\0,
- home=\EE0;0;,
- ht=^I,
- hts=\Eh,
- il=\EQ%p1%d;,
- il1=\EQ1;,
- ind=\EG,
- is2=\ES\Er0;\Es0;,
- kbs=^H,
- kcub1=\EC,
- kcud1=\EB,
- kcuf1=\ED,
- kcuu1=\EA,
- kdch1=\177,
- kent=^M,
- kf0=\EF00,
- kf1=\EF01,
- kf10=\EF10,
- kf11=\EF11,
- kf12=\EF12,
- kf13=\EF13,
- kf14=\EF14,
- kf15=\EF15,
- kf16=\EF16,
- kf17=\EF17,
- kf18=\EF18,
- kf19=\EF19,
- kf2=\EF02,
- kf20=\EF20,
- kf3=\EF03,
- kf4=\EF04,
- kf5=\EF05,
- kf6=\EF06,
- kf7=\EF07,
- kf8=\EF08,
- kf9=\EF09,
- kfnd=\Efind,
- kich1=\Eins,
- knp=\Enext,
- kpp=\Eprior,
- kslt=\Esel,
- oc=\Es0;\Er0;,
- rev=\ES\ET,
- ri=\EF,
- rmacs=\0,
- rmir=\EX,
- rmso=\ES,
- rmul=\ES,
- rs2=\ES\Es0;\Er0;,
- setab=\Es%i%p1%d; setaf=\Er%i%p1%d;,
- sgr0=\ES,
- smacs=\0,
- smir=\EY,
- smso=\ES\ET,
- smul=\ES\EV,
- tbc=\Ej,
diff --git a/ncurses-5.3/misc/form.def b/ncurses-5.3/misc/form.def
deleted file mode 100644
index ea43b59..0000000
--- a/ncurses-5.3/misc/form.def
+++ /dev/null
@@ -1,101 +0,0 @@
-LIBRARY form5 INITINSTANCE TERMINSTANCE
-DESCRIPTION "NCurses-5-1-20000704, module form"
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
- "TYPE_ALNUM" @2 NONAME
- "TYPE_ALPHA" @1 NONAME
- "TYPE_ENUM" @3 NONAME
- "TYPE_INTEGER" @4 NONAME
- "TYPE_IPV4" @7 NONAME
- "TYPE_NUMERIC" @5 NONAME
- "TYPE_REGEXP" @6 NONAME
- "_nc_Copy_Argument" @8 NONAME
- "_nc_Copy_Type" @9 NONAME
- "_nc_Default_Field" @11 NONAME
- "_nc_Default_FieldType" @12 NONAME
- "_nc_Default_Form" @10 NONAME
- "_nc_First_Active_Field" @13 NONAME
- "_nc_Free_Argument" @14 NONAME
- "_nc_Free_Type" @15 NONAME
- "_nc_Internal_Validation" @16 NONAME
- "_nc_Make_Argument" @17 NONAME
- "_nc_Position_Form_Cursor" @18 NONAME
- "_nc_Refresh_Current_Field" @19 NONAME
- "_nc_Set_Current_Field" @25 NONAME
- "_nc_Set_Form_Page" @26 NONAME
- "_nc_Synchronize_Attributes" @27 NONAME
- "_nc_Synchronize_Options" @28 NONAME
- "current_field" @102 NONAME
- "data_ahead" @133 NONAME
- "data_behind" @134 NONAME
- "dup_field" @31 NONAME
- "dynamic_field_info" @35 NONAME
- "field_arg" @56 NONAME
- "field_back" @53 NONAME
- "field_buffer" @59 NONAME
- "field_count" @111 NONAME
- "field_fore" @52 NONAME
- "field_index" @115 NONAME
- "field_info" @34 NONAME
- "field_init" @107 NONAME
- "field_just" @41 NONAME
- "field_opts" @60 NONAME
- "field_opts_off" @51 NONAME
- "field_opts_on" @50 NONAME
- "field_pad" @45 NONAME
- "field_status" @55 NONAME
- "field_term" @108 NONAME
- "field_type" @58 NONAME
- "field_userptr" @57 NONAME
- "form_driver" @126 NONAME
- "form_fields" @101 NONAME
- "form_init" @105 NONAME
- "form_opts" @132 NONAME
- "form_opts_off" @130 NONAME
- "form_opts_on" @129 NONAME
- "form_page" @117 NONAME
- "form_request_by_name" @29 NONAME
- "form_request_name" @61 NONAME
- "form_sub" @104 NONAME
- "form_term" @106 NONAME
- "form_userptr" @131 NONAME
- "form_win" @103 NONAME
- "free_field" @33 NONAME
- "free_fieldtype" @22 NONAME
- "free_form" @109 NONAME
- "link_field" @32 NONAME
- "link_fieldtype" @21 NONAME
- "move_field" @37 NONAME
- "new_field" @30 NONAME
- "new_fieldtype" @20 NONAME
- "new_form" @100 NONAME
- "new_page" @54 NONAME
- "pos_form_cursor" @125 NONAME
- "post_form" @123 NONAME
- "scale_form" @118 NONAME
- "set_current_field" @114 NONAME
- "set_field_back" @43 NONAME
- "set_field_buffer" @46 NONAME
- "set_field_fore" @42 NONAME
- "set_field_init" @121 NONAME
- "set_field_just" @40 NONAME
- "set_field_opts" @49 NONAME
- "set_field_pad" @44 NONAME
- "set_field_status" @47 NONAME
- "set_field_term" @122 NONAME
- "set_field_type" @38 NONAME
- "set_field_userptr" @48 NONAME
- "set_fieldtype_arg" @23 NONAME
- "set_fieldtype_choice" @24 NONAME
- "set_form_fields" @110 NONAME
- "set_form_init" @119 NONAME
- "set_form_opts" @128 NONAME
- "set_form_page" @116 NONAME
- "set_form_sub" @113 NONAME
- "set_form_term" @120 NONAME
- "set_form_userptr" @127 NONAME
- "set_form_win" @112 NONAME
- "set_max_field" @36 NONAME
- "set_new_page" @39 NONAME
- "unpost_form" @124 NONAME
diff --git a/ncurses-5.3/misc/form.ref b/ncurses-5.3/misc/form.ref
deleted file mode 100644
index 18e65a6..0000000
--- a/ncurses-5.3/misc/form.ref
+++ /dev/null
@@ -1,106 +0,0 @@
-LIBRARY FORM2 INITINSTANCE
-DESCRIPTION 'NCurses 1.9.9e-1 for OS/2 - forms library'
-EXPORTS
-;
-; SHARED VARIABLES
-;
- "TYPE_ALPHA" @1 ;NONAME
- "TYPE_ALNUM" @2 ;NONAME
- "TYPE_ENUM" @3 ;NONAME
- "TYPE_INTEGER" @4 ;NONAME
- "TYPE_NUMERIC" @5 ;NONAME
- "TYPE_REGEXP" @6 ;NONAME
-
- "_nc_Default_Form" @10 ;NONAME
- "_nc_Default_Field" @11 ;NONAME
-
-;
-; FIELD FUNCTIONS
-;
- "new_fieldtype" @20 ;NONAME
- "link_fieldtype" @21 ;NONAME
-
- "free_fieldtype" @22 ;NONAME
- "set_fieldtype_arg" @23 ;NONAME
- "set_fieldtype_choice" @24 ;NONAME
-
- "new_field" @30 ;NONAME
- "dup_field" @31 ;NONAME
- "link_field" @32 ;NONAME
-
- "free_field" @33 ;NONAME
- "field_info" @34 ;NONAME
- "dynamic_field_info" @35 ;NONAME
- "set_max_field" @36 ;NONAME
- "move_field" @37 ;NONAME
- "set_field_type" @38 ;NONAME
- "set_new_page" @39 ;NONAME
- "set_field_just" @40 ;NONAME
- "field_just" @41 ;NONAME
- "set_field_fore" @42 ;NONAME
- "set_field_back" @43 ;NONAME
- "set_field_pad" @44 ;NONAME
- "field_pad" @45 ;NONAME
- "set_field_buffer" @46 ;NONAME
- "set_field_status" @47 ;NONAME
- "set_field_userptr" @48 ;NONAME
- "set_field_opts" @49 ;NONAME
- "field_opts_on" @50 ;NONAME
- "field_opts_off" @51 ;NONAME
-
- "field_fore" @52 ;NONAME
- "field_back" @53 ;NONAME
-
- "new_page" @54 ;NONAME
- "field_status" @55 ;NONAME
- "field_arg" @56 ;NONAME
- "field_userptr" @57 ;NONAME
- "field_type" @58 ;NONAME
- "field_buffer" @59 ;NONAME
- "field_opts" @60 ;NONAME
-
-;
-; FORM FUNCTIONS
-;
- "new_form" @100 ;NONAME
-
- "form_fields" @101 ;NONAME
- "current_field" @102 ;NONAME
-
- "form_win" @103 ;NONAME
- "form_sub" @104 ;NONAME
-
- "form_init" @105 ;NONAME
- "form_term" @106 ;NONAME
- "field_init" @107 ;NONAME
- "field_term" @108 ;NONAME
-
- "free_form" @109 ;NONAME
- "set_form_fields" @110 ;NONAME
- "field_count" @111 ;NONAME
- "set_form_win" @112 ;NONAME
- "set_form_sub" @113 ;NONAME
- "set_current_field" @114 ;NONAME
- "field_index" @115 ;NONAME
- "set_form_page" @116 ;NONAME
- "form_page" @117 ;NONAME
- "scale_form" @118 ;NONAME
- "set_form_init" @119 ;NONAME
- "set_form_term" @120 ;NONAME
- "set_field_init" @121 ;NONAME
- "set_field_term" @122 ;NONAME
- "post_form" @123 ;NONAME
- "unpost_form" @124 ;NONAME
- "pos_form_cursor" @125 ;NONAME
- "form_driver" @126 ;NONAME
- "set_form_userptr" @127 ;NONAME
- "set_form_opts" @128 ;NONAME
- "form_opts_on" @129 ;NONAME
- "form_opts_off" @130 ;NONAME
-
- "form_userptr" @131 ;NONAME
-
- "form_opts" @132 ;NONAME
-
- "data_ahead" @133 ;NONAME
- "data_behind" @134 ;NONAME
diff --git a/ncurses-5.3/misc/indent.pro b/ncurses-5.3/misc/indent.pro
deleted file mode 100644
index 14cf385..0000000
--- a/ncurses-5.3/misc/indent.pro
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Use this with indent 2.0 (2.1 is not acceptable, since it has more bugs) */
-/* indent 4 columns */
--i4
-/* tab stops every 8 columns */
--ts8
-/* cuddle 'else' */
--ce
-/* force blank lines after procedure body */
--bap
-/* do not force newline after comma in declaration */
--nbc
-/* do not force blank line after declarations */
--nbad
-/* format braces inline */
--br
-/* do not line up parentheses */
--lp
-/* put the type of a procedure on the line before its name */
--psl
-/* do not insert a space between procedure name and '(' */
--npcs
-/* leave preprocessor space */
--lps
-/* swallow optional blank lines */
--sob
-/* continuation indent of 0 spaces */
--ci0
-/* force space before semicolon on same line */
--ss
-
-/* for vile */
--T size_t
--T LINE
--T BUFFER
--T WINDOW
diff --git a/ncurses-5.3/misc/makedef.cmd b/ncurses-5.3/misc/makedef.cmd
deleted file mode 100644
index b592dfa..0000000
--- a/ncurses-5.3/misc/makedef.cmd
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * $Id$
- *
- * Author: Juan Jose Garcia Ripoll <worm@arrakis.es>.
- * Webpage: http://www.arrakis.es/~worm/
- *
- * makedef.cmd - update a DLL export list using a newly created library file
- * in a.out format, plus an old .DEF file.
- *
- * standard output gets a sorted list with all entrypoints with entrycodes.
- * This list, plus a few .def sentences (LIBRARY, DESCRIPTION and EXPORT)
- * is used to build a new .def file.
- *
- * `_nc_*' symbols are ignored.
- *
- * returns 1 when the old def_file is corrupted -- that is, export items are
- * not properly formatted.
- *
- * returns 0 if everything went OK.
- */
-
-parse arg lib_file def_file
-
-lib_file = translate(lib_file,'\','/')
-def_file = translate(def_file,'\','/')
-
-call CleanQueue
-
-/*
- * `codes' is the stem that links a code to every symbol
- * `names' is the stem where symbols are stored sequentially
- * `last' is the index of the last symbol defined
- */
-last = 0
-used. = 0
-codes. = 0
-names. = ''
-
-tmp_name = 'foo.tmp'
-
-/*
- * This sed expression cleans empty lines, comments and special .DEF
- * commands, such as LIBRARY..., EXPORTS..., etc
- */
-tidy_up = '"/^[A-Z]/d;s/[ ][ ]*/ /g;s/;.*$//g;s/^[ ]*//g;/^[ ]*$/d"'
-
-/*
- * First we find all public symbols (functions and variables). Next we
- * concatenate this list with the old one, sorting it and wiping out
- * all unused data (comments, DLL directives, blanks, etc). All this
- * information is pushed into a REXX private list with the RXQUEUE
- * utility program.
- */
-'@echo off'
-'emxexp -u' lib_file '>' tmp_name
-'cat' tmp_name def_file '| sed' tidy_up '| sort > foo2.tmp'
-'type foo2.tmp | rxqueue'
-'del' tmp_name '1>NUL'
-
-/*
- * This loop runs over the queue items
- */
-do while queued() > 0
- /*
- * We retrieve the symbol name (NEW_NAME) and its number (NEW_NUMBER)
- * When the line comes from `emximp's output, there's no number, so
- * we assign it the special value 0.
- */
- parse pull new_symbol '@'new_code rest
- if Left(new_symbol,1) = '"' then
- parse var new_symbol '"' new_name '"' rest
- else
- do
- echo 'Symbol 'new_symbol' was not quoted'
- new_name = new_symbol
- end
-
- if new_code = '' then
- new_code = 0
- /*
- * Here, one would place all smart checks that would kill unused symbols.
- * However, export tables are not that big, so why bothering?
- if Left(new_name,4) = '_nc_' then
- iterate
- */
- /*
- * The algorithm:
- * IF (this is the 2nd time the symbol appears) THEN
- * (this symbol comes from a .DEF file)
- * it has a valid code that we store
- * we mark that code as used
- * ELIF (it has no number) THEN
- * (it's a new symbol)
- * we increase the counter of defined symbols
- * we assign it the special number 0
- * (later on it'll be assigned an unused export code)
- * ELSE
- * this symbol was in the old DLL and it's no longer
- * here, so we skip it.
- */
- select
- when new_name = '' then
- 'echo Warning: empty symbol found 1>&2'
- when names.last = new_name then
- do
- codes.last = new_code
- used.new_code = 1
- end
- when new_code = 0 then
- do
- last = last + 1
- names.last = new_name
- codes.last = 0
- end
- otherwise
- 'echo Warning: symbol "'new_name'" has disappeared 1>&2'
- end /* select */
-end /* do while queued() */
-
-/*
- * Finally we scan the stem, writing out all symbols with export codes.
- * Those that did not have a valid one (just 0) are assigned a new one.
- */
-new_code = 1
-inx = 1
-do while inx <= last
- if codes.inx = 0 then
- do
- do while used.new_code \= 0
- new_code = new_code + 1
- end
- codes.inx = new_code
- used.new_code = 1
- end
- say ' "'names.inx'" @'codes.inx' NONAME'
- inx = inx + 1
-end
-'del foo2.tmp 1>NUL'
-exit 0
-
-/*
- * Cleans the REXX queue by pulling and forgetting every line.
- * This is needed, at least, when `makedef.cmd' starts, because an aborted
- * REXX program might have left some rubbish in.
- */
-CleanQueue: procedure
- do while queued() > 0
- parse pull foo
- end
-return
-
diff --git a/ncurses-5.3/misc/makellib b/ncurses-5.3/misc/makellib
deleted file mode 100755
index 99db67a..0000000
--- a/ncurses-5.3/misc/makellib
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1996,1997,2000
-#
-# $Id$
-# 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
-# b. Process llib-lXXX with the system's lint utility, making
-# llib-lXXX.ln
-# c. Install llib-lXXX.ln in the lib directory.
-#
-# Using the intermediate file llib-lXXX bypasses a weakness of lint (passing
-# through warning messages from the original source-files).
-#
-# There are two drawbacks to this approach:
-# a. On a few systems, you'll have to manually-edit the llib-lXXX file
-# to get a usable lint-library (not all C-preprocessors work well).
-# b. The system's lint utility won't recognize -lXXX as a lint-library
-# (Use tdlint as a wrapper; it's designed for this).
-#
-# Parameters:
-# $1 = library name
-# $* = C-preprocessor options
-#
-ARCH=`uname -s`
-if test "x$ARCH" = "xSunOS" ; then
- case `uname -r` in
- 5.*) ARCH=Solaris
- ;;
- esac
-fi
-#
-DST="$HOME/lib/$ARCH/lint"
-OPT=""
-LLIB=""
-llib=""
-#
-while test $# != 0
-do
- case $1 in
- -L*)
- DST="$DST `echo $1|sed -e 's/^-L//'`"
- ;;
- -*)
- OPT="$OPT $1"
- ;;
- *)
- if test -z "$LLIB"
- then
- LLIB=$1
- else
- llib=llib-l$1
- fi
- ;;
- esac
- shift
-done
-
-if test -z "$LLIB"
-then
- echo '? no library name specified'
- exit 1
-elif test -z "$llib"
-then
- llib="llib-l$LLIB"
-fi
-
-if test ! -f $llib ; then
- if ( make $llib )
- then
- :
- else
- exit 1
- fi
-fi
-
-rm -f $llib.ln $llib.c
-TARGET=$LLIB
-
-case "$ARCH" in
-AIX)
- CREATE="-uvxo$LLIB -Nn4000"
- TARGET=$llib.c
- ln $llib $TARGET
- ;;
-Solaris)
- CREATE="-C$llib"
- 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
- ln $llib $TARGET
- ;;
-IRIX*)
- CREATE="-DLINTLIBRARY -vxyo$LLIB"
- TARGET=$llib.c
- ln $llib $TARGET
- ;;
-UNIX_SV)
- CREATE="-DLINTLIBRARY -vxyo$LLIB"
- TARGET=$llib.c
- ln $llib $TARGET
- ;;
-*)
- echo "Sorry. I do not know how to build a lint-library for $ARCH"
- exit 1
-esac
-
-echo OPT "$OPT"
-echo TARGET "$TARGET"
-echo LIBNAME "$llib"
-if ( lint $CREATE $OPT $TARGET )
-then
- if test -f $llib.ln
- then
- for p in $HOME/lib $HOME/lib/$ARCH $HOME/lib/$ARCH/lint
- do
- if test ! -d $p
- then
- mkdir $p
- fi
- done
- for p in $DST
- do
- cp $llib.ln $p/
- done
- rm -f $llib.ln
- fi
-fi
-if test "x$TARGET" = "x$llib.c" ; then
- rm -f $TARGET
-fi
diff --git a/ncurses-5.3/misc/menu.def b/ncurses-5.3/misc/menu.def
deleted file mode 100644
index 01f973c..0000000
--- a/ncurses-5.3/misc/menu.def
+++ /dev/null
@@ -1,81 +0,0 @@
-LIBRARY menu5 INITINSTANCE TERMINSTANCE
-DESCRIPTION "NCurses-5-1-20000704, module menu"
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
- "_nc_Calculate_Item_Length_and_Width" @11 NONAME
- "_nc_Connect_Items" @38 NONAME
- "_nc_Default_Item" @63 NONAME
- "_nc_Default_Menu" @64 NONAME
- "_nc_Disconnect_Items" @65 NONAME
- "_nc_Draw_Menu" @66 NONAME
- "_nc_Link_Items" @67 NONAME
- "_nc_Match_Next_Character_In_Item_Name" @68 NONAME
- "_nc_New_TopRow_and_CurrentItem" @69 NONAME
- "_nc_Post_Item" @70 NONAME
- "_nc_Show_Menu" @71 NONAME
- "_nc_menu_cursor_pos" @72 NONAME
- "current_item" @2 NONAME
- "free_item" @23 NONAME
- "free_menu" @24 NONAME
- "item_count" @25 NONAME
- "item_description" @14 NONAME
- "item_index" @26 NONAME
- "item_init" @7 NONAME
- "item_name" @15 NONAME
- "item_opts" @5 NONAME
- "item_opts_off" @27 NONAME
- "item_opts_on" @28 NONAME
- "item_term" @8 NONAME
- "item_userptr" @18 NONAME
- "item_value" @60 NONAME
- "item_visible" @61 NONAME
- "menu_back" @20 NONAME
- "menu_driver" @29 NONAME
- "menu_fore" @21 NONAME
- "menu_format" @62 NONAME
- "menu_grey" @22 NONAME
- "menu_init" @9 NONAME
- "menu_items" @1 NONAME
- "menu_mark" @16 NONAME
- "menu_opts" @6 NONAME
- "menu_opts_off" @30 NONAME
- "menu_opts_on" @31 NONAME
- "menu_pad" @32 NONAME
- "menu_pattern" @17 NONAME
- "menu_request_by_name" @73 NONAME
- "menu_request_name" @74 NONAME
- "menu_spacing" @75 NONAME
- "menu_sub" @12 NONAME
- "menu_term" @10 NONAME
- "menu_userptr" @19 NONAME
- "menu_win" @13 NONAME
- "new_item" @3 NONAME
- "new_menu" @4 NONAME
- "pos_menu_cursor" @33 NONAME
- "post_menu" @34 NONAME
- "scale_menu" @35 NONAME
- "set_current_item" @36 NONAME
- "set_item_init" @37 NONAME
- "set_item_opts" @39 NONAME
- "set_item_term" @40 NONAME
- "set_item_userptr" @41 NONAME
- "set_item_value" @42 NONAME
- "set_menu_back" @43 NONAME
- "set_menu_fore" @44 NONAME
- "set_menu_format" @45 NONAME
- "set_menu_grey" @46 NONAME
- "set_menu_init" @47 NONAME
- "set_menu_items" @48 NONAME
- "set_menu_mark" @49 NONAME
- "set_menu_opts" @50 NONAME
- "set_menu_pad" @51 NONAME
- "set_menu_pattern" @52 NONAME
- "set_menu_spacing" @76 NONAME
- "set_menu_sub" @53 NONAME
- "set_menu_term" @54 NONAME
- "set_menu_userptr" @55 NONAME
- "set_menu_win" @56 NONAME
- "set_top_row" @57 NONAME
- "top_row" @58 NONAME
- "unpost_menu" @59 NONAME
diff --git a/ncurses-5.3/misc/menu.ref b/ncurses-5.3/misc/menu.ref
deleted file mode 100644
index cee964f..0000000
--- a/ncurses-5.3/misc/menu.ref
+++ /dev/null
@@ -1,73 +0,0 @@
-LIBRARY MENU2 INITINSTANCE
-DESCRIPTION 'NCurses 1.9.9e-1 for OS/2 - menu library'
-EXPORTS
- "menu_items" @1 ;NONAME
- "current_item" @2 ;NONAME
- "new_item" @3 ;NONAME
-
- "new_menu" @4 ;NONAME
-
- "item_opts" @5 ;NONAME
- "menu_opts" @6 ;NONAME
-
- "item_init" @7 ;NONAME
- "item_term" @8 ;NONAME
- "menu_init" @9 ;NONAME
- "menu_term" @10 ;NONAME
-
- "menu_sub" @12 ;NONAME
- "menu_win" @13 ;NONAME
-
- "item_description" @14 ;NONAME
- "item_name" @15 ;NONAME
- "menu_mark" @16 ;NONAME
- "menu_pattern" @17 ;NONAME
-
- "item_userptr" @18 ;NONAME
- "menu_userptr" @19 ;NONAME
-
- "menu_back" @20 ;NONAME
- "menu_fore" @21 ;NONAME
- "menu_grey" @22 ;NONAME
-
- "free_item" @23 ;NONAME
- "free_menu" @24 ;NONAME
- "item_count" @25 ;NONAME
- "item_index" @26 ;NONAME
- "item_opts_off" @27 ;NONAME
- "item_opts_on" @28 ;NONAME
- "menu_driver" @29 ;NONAME
- "menu_opts_off" @30 ;NONAME
- "menu_opts_on" @31 ;NONAME
- "menu_pad" @32 ;NONAME
- "pos_menu_cursor" @33 ;NONAME
- "post_menu" @34 ;NONAME
- "scale_menu" @35 ;NONAME
- "set_current_item" @36 ;NONAME
- "set_item_init" @37 ;NONAME
- "set_item_opts" @39 ;NONAME
- "set_item_term" @40 ;NONAME
- "set_item_userptr" @41 ;NONAME
- "set_item_value" @42 ;NONAME
- "set_menu_back" @43 ;NONAME
- "set_menu_fore" @44 ;NONAME
- "set_menu_format" @45 ;NONAME
- "set_menu_grey" @46 ;NONAME
- "set_menu_init" @47 ;NONAME
- "set_menu_items" @48 ;NONAME
- "set_menu_mark" @49 ;NONAME
- "set_menu_opts" @50 ;NONAME
- "set_menu_pad" @51 ;NONAME
- "set_menu_pattern" @52 ;NONAME
- "set_menu_sub" @53 ;NONAME
- "set_menu_term" @54 ;NONAME
- "set_menu_userptr" @55 ;NONAME
- "set_menu_win" @56 ;NONAME
- "set_top_row" @57 ;NONAME
- "top_row" @58 ;NONAME
- "unpost_menu" @59 ;NONAME
-
- "item_value" @60 ;NONAME
- "item_visible" @61 ;NONAME
-
- "menu_format" @62 ;NONAME
diff --git a/ncurses-5.3/misc/ncurses.def b/ncurses-5.3/misc/ncurses.def
deleted file mode 100644
index fa50456..0000000
--- a/ncurses-5.3/misc/ncurses.def
+++ /dev/null
@@ -1,447 +0,0 @@
-LIBRARY ncurses5 INITINSTANCE TERMINSTANCE
-DESCRIPTION "NCurses-5-1-20000704, module ncurses"
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
- "BC" @662 NONAME
- "COLORS" @503 NONAME
- "COLOR_PAIR" @36 NONAME
- "COLOR_PAIRS" @504 NONAME
- "COLS" @511 NONAME
- "ESCDELAY" @513 NONAME
- "LINES" @510 NONAME
- "PAIR_NUMBER" @209 NONAME
- "PC" @660 NONAME
- "SP" @1003 NONAME
- "TABSIZE" @512 NONAME
- "UP" @661 NONAME
- "_nc_access" @6 NONAME
- "_nc_add_to_try" @7 NONAME
- "_nc_align_termtype" @8 NONAME
- "_nc_background" @9 NONAME
- "_nc_baudrate" @10 NONAME
- "_nc_cap_hash_table" @805 NONAME
- "_nc_capalias_table" @806 NONAME
- "_nc_capcmp" @707 NONAME
- "_nc_captoinfo" @829 NONAME
- "_nc_check_termtype" @15 NONAME
- "_nc_comment_end" @819 NONAME
- "_nc_comment_start" @818 NONAME
- "_nc_copy_entry" @16 NONAME
- "_nc_copy_termtype" @22 NONAME
- "_nc_curr_col" @816 NONAME
- "_nc_curr_file_pos" @817 NONAME
- "_nc_curr_line" @815 NONAME
- "_nc_curr_token" @803 NONAME
- "_nc_disable_period" @23 NONAME
- "_nc_do_color" @1037 NONAME
- "_nc_doalloc" @25 NONAME
- "_nc_entry_match" @710 NONAME
- "_nc_err_abort" @826 NONAME
- "_nc_expand_try" @27 NONAME
- "_nc_expanded" @51 NONAME
- "_nc_fallback" @625 NONAME
- "_nc_find_entry" @809 NONAME
- "_nc_find_type_entry" @810 NONAME
- "_nc_first_name" @622 NONAME
- "_nc_flush" @54 NONAME
- "_nc_free_entries" @712 NONAME
- "_nc_free_termtype" @58 NONAME
- "_nc_freeall" @59 NONAME
- "_nc_freewin" @60 NONAME
- "_nc_get_hash_table" @63 NONAME
- "_nc_get_table" @808 NONAME
- "_nc_get_token" @811 NONAME
- "_nc_get_tty_mode" @65 NONAME
- "_nc_get_type" @823 NONAME
- "_nc_getenv_num" @67 NONAME
- "_nc_has_mouse" @73 NONAME
- "_nc_hash_map" @84 NONAME
- "_nc_head" @700 NONAME
- "_nc_home_terminfo" @91 NONAME
- "_nc_info_hash_table" @804 NONAME
- "_nc_infoalias_table" @807 NONAME
- "_nc_infotocap" @830 NONAME
- "_nc_init_acs" @92 NONAME
- "_nc_init_entry" @702 NONAME
- "_nc_init_keytry" @93 NONAME
- "_nc_keep_tic_dir" @95 NONAME
- "_nc_key_names" @96 NONAME
- "_nc_keypad" @1024 NONAME
- "_nc_make_oldhash" @97 NONAME
- "_nc_makenew" @1025 NONAME
- "_nc_memmove" @98 NONAME
- "_nc_merge_entry" @704 NONAME
- "_nc_msec_cost" @103 NONAME
- "_nc_mvcur_init" @1014 NONAME
- "_nc_mvcur_resume" @106 NONAME
- "_nc_mvcur_wrap" @1015 NONAME
- "_nc_name_match" @623 NONAME
- "_nc_nulls_sent" @116 NONAME
- "_nc_oldnums" @117 NONAME
- "_nc_ospeed" @118 NONAME
- "_nc_outch" @1026 NONAME
- "_nc_outstr" @1033 NONAME
- "_nc_panelhook" @119 NONAME
- "_nc_panic_mode" @814 NONAME
- "_nc_parse_entry" @706 NONAME
- "_nc_printf_string" @120 NONAME
- "_nc_push_token" @812 NONAME
- "_nc_read_entry" @620 NONAME
- "_nc_read_entry_source" @709 NONAME
- "_nc_read_file_entry" @621 NONAME
- "_nc_read_termcap" @127 NONAME
- "_nc_remove_key" @129 NONAME
- "_nc_remove_string" @130 NONAME
- "_nc_render" @1027 NONAME
- "_nc_reset_input" @813 NONAME
- "_nc_resolve_uses" @711 NONAME
- "_nc_ripoffline" @132 NONAME
- "_nc_save_str" @703 NONAME
- "_nc_screen_chain" @137 NONAME
- "_nc_screen_init" @142 NONAME
- "_nc_screen_resume" @143 NONAME
- "_nc_screen_wrap" @144 NONAME
- "_nc_scroll_oldhash" @145 NONAME
- "_nc_scroll_optimize" @1029 NONAME
- "_nc_scroll_window" @1030 NONAME
- "_nc_scrolln" @146 NONAME
- "_nc_set_buffer" @147 NONAME
- "_nc_set_source" @822 NONAME
- "_nc_set_tty_mode" @148 NONAME
- "_nc_set_type" @824 NONAME
- "_nc_set_writedir" @152 NONAME
- "_nc_setupscreen" @1031 NONAME
- "_nc_sigaction" @158 NONAME
- "_nc_signal_handler" @1034 NONAME
- "_nc_slk_format" @159 NONAME
- "_nc_slk_initialize" @160 NONAME
- "_nc_start_line" @821 NONAME
- "_nc_suppress_warnings" @828 NONAME
- "_nc_synchook" @1035 NONAME
- "_nc_syntax" @820 NONAME
- "_nc_syserr_abort" @825 NONAME
- "_nc_tail" @701 NONAME
- "_nc_tic_dir" @161 NONAME
- "_nc_tic_expand" @162 NONAME
- "_nc_tic_written" @167 NONAME
- "_nc_timed_wait" @1036 NONAME
- "_nc_tinfo_fkeys" @169 NONAME
- "_nc_tracing" @1010 NONAME
- "_nc_trans_string" @170 NONAME
- "_nc_user_definable" @172 NONAME
- "_nc_visbuf" @1012 NONAME
- "_nc_visbuf2" @178 NONAME
- "_nc_vsscanf" @183 NONAME
- "_nc_waddch_nosync" @1028 NONAME
- "_nc_warning" @827 NONAME
- "_nc_wrap_entry" @705 NONAME
- "_nc_write_entry" @708 NONAME
- "acs_map" @506 NONAME
- "addch" @1 NONAME
- "addchnstr" @2 NONAME
- "addchstr" @3 NONAME
- "addnstr" @4 NONAME
- "addstr" @5 NONAME
- "assume_default_colors" @184 NONAME
- "attr_get" @14 NONAME
- "attr_off" @185 NONAME
- "attr_on" @186 NONAME
- "attr_set" @17 NONAME
- "attroff" @11 NONAME
- "attron" @12 NONAME
- "attrset" @13 NONAME
- "baudrate" @18 NONAME
- "beep" @19 NONAME
- "bkgd" @20 NONAME
- "bkgdset" @21 NONAME
- "boolcodes" @601 NONAME
- "boolfnames" @602 NONAME
- "boolnames" @600 NONAME
- "border" @24 NONAME
- "box" @26 NONAME
- "can_change_color" @28 NONAME
- "cbreak" @29 NONAME
- "chgat" @30 NONAME
- "clear" @31 NONAME
- "clearok" @32 NONAME
- "clrtobot" @33 NONAME
- "clrtoeol" @34 NONAME
- "color_content" @35 NONAME
- "color_set" @187 NONAME
- "copywin" @37 NONAME
- "cur_term" @515 NONAME
- "curs_set" @38 NONAME
- "curscr" @501 NONAME
- "curses_version" @188 NONAME
- "def_prog_mode" @39 NONAME
- "def_shell_mode" @40 NONAME
- "define_key" @189 NONAME
- "del_curterm" @641 NONAME
- "delay_output" @41 NONAME
- "delch" @42 NONAME
- "deleteln" @45 NONAME
- "delscreen" @43 NONAME
- "delwin" @44 NONAME
- "derwin" @46 NONAME
- "doupdate" @47 NONAME
- "dupwin" @48 NONAME
- "echo" @49 NONAME
- "echochar" @50 NONAME
- "endwin" @52 NONAME
- "erase" @193 NONAME
- "erasechar" @53 NONAME
- "filter" @55 NONAME
- "flash" @56 NONAME
- "flushinp" @57 NONAME
- "getbkgd" @211 NONAME
- "getch" @61 NONAME
- "getmouse" @356 NONAME
- "getnstr" @62 NONAME
- "getstr" @64 NONAME
- "getwin" @66 NONAME
- "halfdelay" @68 NONAME
- "has_colors" @69 NONAME
- "has_ic" @70 NONAME
- "has_il" @71 NONAME
- "has_key" @234 NONAME
- "hline" @72 NONAME
- "idcok" @74 NONAME
- "idlok" @75 NONAME
- "immedok" @76 NONAME
- "inch" @77 NONAME
- "inchnstr" @78 NONAME
- "inchstr" @79 NONAME
- "init_color" @81 NONAME
- "init_pair" @82 NONAME
- "initscr" @80 NONAME
- "innstr" @83 NONAME
- "insch" @85 NONAME
- "insdelln" @86 NONAME
- "insertln" @87 NONAME
- "insnstr" @88 NONAME
- "insstr" @89 NONAME
- "instr" @90 NONAME
- "intrflush" @94 NONAME
- "is_linetouched" @100 NONAME
- "is_wintouched" @101 NONAME
- "isendwin" @99 NONAME
- "keybound" @238 NONAME
- "keyname" @102 NONAME
- "keyok" @240 NONAME
- "keypad" @104 NONAME
- "killchar" @105 NONAME
- "leaveok" @107 NONAME
- "longname" @108 NONAME
- "mcprint" @242 NONAME
- "meta" @109 NONAME
- "mouse_trafo" @251 NONAME
- "mouseinterval" @360 NONAME
- "mousemask" @358 NONAME
- "move" @110 NONAME
- "mvaddch" @111 NONAME
- "mvaddchnstr" @112 NONAME
- "mvaddchstr" @113 NONAME
- "mvaddnstr" @114 NONAME
- "mvaddstr" @115 NONAME
- "mvchgat" @121 NONAME
- "mvcur" @122 NONAME
- "mvdelch" @123 NONAME
- "mvderwin" @124 NONAME
- "mvgetch" @125 NONAME
- "mvgetnstr" @126 NONAME
- "mvgetstr" @128 NONAME
- "mvhline" @131 NONAME
- "mvinch" @133 NONAME
- "mvinchnstr" @134 NONAME
- "mvinchstr" @135 NONAME
- "mvinnstr" @136 NONAME
- "mvinsch" @138 NONAME
- "mvinsnstr" @139 NONAME
- "mvinsstr" @140 NONAME
- "mvinstr" @141 NONAME
- "mvprintw" @149 NONAME
- "mvscanw" @150 NONAME
- "mvvline" @151 NONAME
- "mvwaddch" @153 NONAME
- "mvwaddchnstr" @154 NONAME
- "mvwaddchstr" @155 NONAME
- "mvwaddnstr" @156 NONAME
- "mvwaddstr" @157 NONAME
- "mvwchgat" @163 NONAME
- "mvwdelch" @164 NONAME
- "mvwgetch" @165 NONAME
- "mvwgetnstr" @166 NONAME
- "mvwgetstr" @168 NONAME
- "mvwhline" @171 NONAME
- "mvwin" @173 NONAME
- "mvwinch" @174 NONAME
- "mvwinchnstr" @175 NONAME
- "mvwinchstr" @176 NONAME
- "mvwinnstr" @177 NONAME
- "mvwinsch" @179 NONAME
- "mvwinsnstr" @180 NONAME
- "mvwinsstr" @181 NONAME
- "mvwinstr" @182 NONAME
- "mvwprintw" @190 NONAME
- "mvwscanw" @191 NONAME
- "mvwvline" @192 NONAME
- "napms" @194 NONAME
- "newpad" @195 NONAME
- "newscr" @502 NONAME
- "newterm" @196 NONAME
- "newwin" @197 NONAME
- "nl" @198 NONAME
- "nocbreak" @199 NONAME
- "nodelay" @200 NONAME
- "noecho" @201 NONAME
- "nonl" @202 NONAME
- "noqiflush" @203 NONAME
- "noraw" @204 NONAME
- "notimeout" @205 NONAME
- "numcodes" @604 NONAME
- "numfnames" @605 NONAME
- "numnames" @603 NONAME
- "ospeed" @663 NONAME
- "overlay" @206 NONAME
- "overwrite" @207 NONAME
- "pair_content" @208 NONAME
- "pechochar" @210 NONAME
- "pnoutrefresh" @212 NONAME
- "prefresh" @213 NONAME
- "printw" @214 NONAME
- "putp" @215 NONAME
- "putwin" @216 NONAME
- "qiflush" @217 NONAME
- "raw" @218 NONAME
- "redrawwin" @219 NONAME
- "refresh" @220 NONAME
- "reset_prog_mode" @222 NONAME
- "reset_shell_mode" @223 NONAME
- "resetty" @221 NONAME
- "resizeterm" @263 NONAME
- "restartterm" @643 NONAME
- "ripoffline" @224 NONAME
- "savetty" @225 NONAME
- "scanw" @226 NONAME
- "scr_dump" @227 NONAME
- "scr_init" @228 NONAME
- "scr_restore" @232 NONAME
- "scr_set" @233 NONAME
- "scrl" @229 NONAME
- "scroll" @230 NONAME
- "scrollok" @231 NONAME
- "set_curterm" @640 NONAME
- "set_term" @236 NONAME
- "setscrreg" @235 NONAME
- "setupterm" @644 NONAME
- "slk_attr" @266 NONAME
- "slk_attr_set" @270 NONAME
- "slk_attroff" @237 NONAME
- "slk_attron" @239 NONAME
- "slk_attrset" @241 NONAME
- "slk_clear" @243 NONAME
- "slk_color" @272 NONAME
- "slk_init" @244 NONAME
- "slk_label" @245 NONAME
- "slk_noutrefresh" @246 NONAME
- "slk_refresh" @247 NONAME
- "slk_restore" @248 NONAME
- "slk_set" @249 NONAME
- "slk_touch" @250 NONAME
- "standend" @253 NONAME
- "standout" @252 NONAME
- "start_color" @254 NONAME
- "stdscr" @500 NONAME
- "strcodes" @608 NONAME
- "strfnames" @609 NONAME
- "strnames" @606 NONAME
- "subpad" @255 NONAME
- "subwin" @256 NONAME
- "syncok" @257 NONAME
- "termattrs" @258 NONAME
- "termname" @259 NONAME
- "tgetent" @645 NONAME
- "tgetflag" @646 NONAME
- "tgetnum" @647 NONAME
- "tgetstr" @648 NONAME
- "tgoto" @649 NONAME
- "tigetflag" @260 NONAME
- "tigetnum" @261 NONAME
- "tigetstr" @262 NONAME
- "timeout" @274 NONAME
- "tparm" @653 NONAME
- "tputs" @655 NONAME
- "ttytype" @514 NONAME
- "typeahead" @264 NONAME
- "unctrl" @361 NONAME
- "ungetch" @265 NONAME
- "ungetmouse" @357 NONAME
- "untouchwin" @267 NONAME
- "use_default_colors" @276 NONAME
- "use_env" @268 NONAME
- "use_extended_names" @278 NONAME
- "vidattr" @269 NONAME
- "vidputs" @271 NONAME
- "vline" @273 NONAME
- "vw_printw" @284 NONAME
- "vw_scanw" @285 NONAME
- "vwprintw" @275 NONAME
- "vwscanw" @277 NONAME
- "waddch" @279 NONAME
- "waddchnstr" @280 NONAME
- "waddchstr" @281 NONAME
- "waddnstr" @282 NONAME
- "waddstr" @283 NONAME
- "wattr_get" @291 NONAME
- "wattr_off" @293 NONAME
- "wattr_on" @292 NONAME
- "wattr_set" @286 NONAME
- "wattroff" @289 NONAME
- "wattron" @288 NONAME
- "wattrset" @290 NONAME
- "wbkgd" @295 NONAME
- "wbkgdset" @296 NONAME
- "wborder" @299 NONAME
- "wchgat" @301 NONAME
- "wclear" @302 NONAME
- "wclrtobot" @303 NONAME
- "wclrtoeol" @304 NONAME
- "wcolor_set" @287 NONAME
- "wcursyncup" @305 NONAME
- "wdelch" @306 NONAME
- "wdeleteln" @307 NONAME
- "wechochar" @308 NONAME
- "wenclose" @359 NONAME
- "werase" @310 NONAME
- "wgetch" @312 NONAME
- "wgetnstr" @313 NONAME
- "wgetstr" @315 NONAME
- "whline" @318 NONAME
- "winch" @320 NONAME
- "winchnstr" @321 NONAME
- "winchstr" @322 NONAME
- "winnstr" @323 NONAME
- "winsch" @325 NONAME
- "winsdelln" @326 NONAME
- "winsertln" @327 NONAME
- "winsnstr" @328 NONAME
- "winsstr" @329 NONAME
- "winstr" @330 NONAME
- "wmouse_trafo" @294 NONAME
- "wmove" @338 NONAME
- "wnoutrefresh" @339 NONAME
- "wprintw" @340 NONAME
- "wredrawln" @341 NONAME
- "wrefresh" @342 NONAME
- "wresize" @343 NONAME
- "wscanw" @344 NONAME
- "wscrl" @345 NONAME
- "wsetscrreg" @346 NONAME
- "wstandend" @348 NONAME
- "wstandout" @347 NONAME
- "wsyncdown" @349 NONAME
- "wsyncup" @350 NONAME
- "wtimeout" @351 NONAME
- "wtouchln" @352 NONAME
- "wvline" @354 NONAME
diff --git a/ncurses-5.3/misc/ncurses.ref b/ncurses-5.3/misc/ncurses.ref
deleted file mode 100644
index cf4de7d..0000000
--- a/ncurses-5.3/misc/ncurses.ref
+++ /dev/null
@@ -1,572 +0,0 @@
-LIBRARY ncurses2 INITINSTANCE
-DESCRIPTION 'NCurses 1.9.9e-1 for OS/2 - base library'
-EXPORTS
-;************
-;* curses.h *
-;************
-
- "stdscr" @500 NONAME ; variable
- "curscr" @501 NONAME ; variable
- "newscr" @502 NONAME ; variable
- "COLORS" @503 NONAME ; variable
- "COLOR_PAIRS" @504 NONAME ; variable
- "color_pairs" @505 NONAME ; variable
- "acs_map" @506 NONAME ; variable
- "LINES" @510 NONAME ; variable
- "COLS" @511 NONAME ; variable
- "TABSIZE" @512 NONAME ; variable
- "ESCDELAY" @513 NONAME ; variable
- "ttytype" @514 NONAME ; variable
- "cur_term" @515 NONAME ; variable
-
- "addch" @1 NONAME ; generated
- "addchnstr" @2 NONAME ; generated
- "addchstr" @3 NONAME ; generated
- "addnstr" @4 NONAME ; generated
- "addstr" @5 NONAME ; generated
-; "addnwstr" @6 NONAME ; missing
-; "addwstr" @7 NONAME ; missing
-; "add_wch" @8 NONAME ; missing
-; "add_wchnstr" @9 NONAME ; missing
-; "add_wchstr" @10 NONAME ; missing
- "attroff" @11 NONAME ; generated
- "attron" @12 NONAME ; generated
- "attrset" @13 NONAME ; generated
- "attr_get" @14 NONAME ; generated
-; "attr_off" @15 NONAME ; implemented << NO!!
-; "attr_on" @16 NONAME ; implemented << NO!!
- "attr_set" @17 NONAME ; generated
- "baudrate" @18 NONAME ; implemented
- "beep" @19 NONAME ; implemented
- "bkgd" @20 NONAME ; generated
- "bkgdset" @21 NONAME ; generated
-; "bkgrndset" @22 NONAME ; missing
-; "bkgrnd" @23 NONAME ; missing
- "border" @24 NONAME ; generated
-; "border_set" @25 NONAME ; missing
- "box" @26 NONAME ; generated
-; "box_set" @27 NONAME ; missing
- "can_change_color" @28 NONAME ; implemented
- "cbreak" @29 NONAME ; implemented
- "chgat" @30 NONAME ; generated
- "clear" @31 NONAME ; generated
- "clearok" @32 NONAME ; implemented
- "clrtobot" @33 NONAME ; generated
- "clrtoeol" @34 NONAME ; generated
- "color_content" @35 NONAME ; implemented
- "COLOR_PAIR" @36 NONAME ; generated
- "copywin" @37 NONAME ; implemented
- "curs_set" @38 NONAME ; implemented
- "def_prog_mode" @39 NONAME ; implemented
- "def_shell_mode" @40 NONAME ; implemented
- "delay_output" @41 NONAME ; implemented
- "delch" @42 NONAME ; generated
- "delscreen" @43 NONAME ; implemented
- "delwin" @44 NONAME ; implemented
- "deleteln" @45 NONAME ; generated
- "derwin" @46 NONAME ; implemented
- "doupdate" @47 NONAME ; implemented
- "dupwin" @48 NONAME ; implemented
- "echo" @49 NONAME ; implemented
- "echochar" @50 NONAME ; generated
-; "echo_wchar" @51 NONAME ; missing
- "endwin" @52 NONAME ; implemented
- "erasechar" @53 NONAME ; implemented
-; "erase_wchar" @54 NONAME ; missing
- "filter" @55 NONAME ; implemented
- "flash" @56 NONAME ; implemented
- "flushinp" @57 NONAME ; implemented
-; "getbkgd" @58 NONAME ; missing
-; "getbkgrnd" @59 NONAME ; missing
-; "getcchar" @60 NONAME ; missing
- "getch" @61 NONAME ; generated
- "getnstr" @62 NONAME ; generated
-; "getn_wstr" @63 NONAME ; missing
- "getstr" @64 NONAME ; generated
-; "get_wch" @65 NONAME ; missing
- "getwin" @66 NONAME ; not in XPG4
-; "get_wstr" @67 NONAME ; missing
- "halfdelay" @68 NONAME ; implemented
- "has_colors" @69 NONAME ; implemented
- "has_ic" @70 NONAME ; implemented
- "has_il" @71 NONAME ; implemented
- "hline" @72 NONAME ; generated
-; "hline_set" @73 NONAME ; missing
- "idcok" @74 NONAME ; implemented
- "idlok" @75 NONAME ; implemented
- "immedok" @76 NONAME ; implemented
- "inch" @77 NONAME ; generated
- "inchnstr" @78 NONAME ; generated
- "inchstr" @79 NONAME ; generated
- "initscr" @80 NONAME ; implemented
- "init_color" @81 NONAME ; implemented
- "init_pair" @82 NONAME ; implemented
- "innstr" @83 NONAME ; generated
-; "innwstr" @84 NONAME ; missing
- "insch" @85 NONAME ; generated
- "insdelln" @86 NONAME ; generated
- "insertln" @87 NONAME ; generated
- "insnstr" @88 NONAME ; generated
- "insstr" @89 NONAME ; generated
- "instr" @90 NONAME ; generated
-; "ins_nwstr" @91 NONAME ; missing
-; "ins_wch" @92 NONAME ; missing
-; "ins_wstr" @93 NONAME ; missing
- "intrflush" @94 NONAME ; implemented
-; "inwstr" @95 NONAME ; missing
-; "in_wch" @96 NONAME ; missing
-; "in_wchstr" @97 NONAME ; missing
-; "in_wchntr" @98 NONAME ; missing
- "isendwin" @99 NONAME ; implemented
- "is_linetouched" @100 NONAME ; implemented
- "is_wintouched" @101 NONAME ; implemented
- "keyname" @102 NONAME ; implemented
-; "key_name" @103 NONAME ; missing
- "keypad" @104 NONAME ; implemented
- "killchar" @105 NONAME ; implemented
-; "killwchar" @106 NONAME ; missing
- "leaveok" @107 NONAME ; implemented
- "longname" @108 NONAME ; implemented
- "meta" @109 NONAME ; implemented
- "move" @110 NONAME ; generated
- "mvaddch" @111 NONAME ; generated
- "mvaddchnstr" @112 NONAME ; generated
- "mvaddchstr" @113 NONAME ; generated
- "mvaddnstr" @114 NONAME ; generated
- "mvaddstr" @115 NONAME ; generated
-; "mvaddnwstr" @116 NONAME ; missing
-; "mvaddwstr" @117 NONAME ; missing
-; "mvadd_wch" @118 NONAME ; missing
-; "mvadd_wchnstr" @119 NONAME ; missing
-; "mvadd_wchstr" @120 NONAME ; missing
- "mvchgat" @121 NONAME ; generated
- "mvcur" @122 NONAME ; implemented
- "mvdelch" @123 NONAME ; generated
- "mvderwin" @124 NONAME ; implemented
- "mvgetch" @125 NONAME ; generated
- "mvgetnstr" @126 NONAME ; generated
-; "mvgetn_wstr" @127 NONAME ; missing
- "mvgetstr" @128 NONAME ; generated
-; "mvget_wch" @129 NONAME ; missing
-; "mvget_wstr" @130 NONAME ; missing
- "mvhline" @131 NONAME ; generated
-; "mvhline_set" @132 NONAME ; missing
- "mvinch" @133 NONAME ; generated
- "mvinchnstr" @134 NONAME ; generated
- "mvinchstr" @135 NONAME ; generated
- "mvinnstr" @136 NONAME ; generated
-; "mvinnwstr" @137 NONAME ; missing
- "mvinsch" @138 NONAME ; generated
- "mvinsnstr" @139 NONAME ; generated
- "mvinsstr" @140 NONAME ; generated
- "mvinstr" @141 NONAME ; generated
-; "mvins_nwstr" @142 NONAME ; missing
-; "mvins_wch" @143 NONAME ; missing
-; "mvins_wstr" @144 NONAME ; missing
-; "mvinwstr" @145 NONAME ; missing
-; "mvin_wch" @146 NONAME ; missing
-; "mvin_wchstr" @147 NONAME ; missing
-; "mvin_wchntr" @148 NONAME ; missing
- "mvprintw" @149 NONAME ; implemented
- "mvscanw" @150 NONAME ; implemented
- "mvvline" @151 NONAME ; generated
-; "mvvline_set" @152 NONAME ; missing
- "mvwaddch" @153 NONAME ; generated
- "mvwaddchnstr" @154 NONAME ; generated
- "mvwaddchstr" @155 NONAME ; generated
- "mvwaddnstr" @156 NONAME ; generated
- "mvwaddstr" @157 NONAME ; generated
-; "mvwaddnwstr" @158 NONAME ; missing
-; "mvwaddwstr" @159 NONAME ; missing
-; "mvwadd_wch" @160 NONAME ; missing
-; "mvwadd_wchnstr" @161 NONAME ; missing
-; "mvwadd_wchstr" @162 NONAME ; missing
- "mvwchgat" @163 NONAME ; generated
- "mvwdelch" @164 NONAME ; generated
- "mvwgetch" @165 NONAME ; generated
- "mvwgetnstr" @166 NONAME ; generated
-; "mvwgetn_wstr" @167 NONAME ; missing
- "mvwgetstr" @168 NONAME ; generated
-; "mvwget_wch" @169 NONAME ; missing
-; "mvwget_wstr" @170 NONAME ; missing
- "mvwhline" @171 NONAME ; generated
-; "mvwhline_set" @172 NONAME ; missing
- "mvwin" @173 NONAME ; implemented
- "mvwinch" @174 NONAME ; generated
- "mvwinchnstr" @175 NONAME ; generated
- "mvwinchstr" @176 NONAME ; generated
- "mvwinnstr" @177 NONAME ; generated
-; "mvwinnwstr" @178 NONAME ; missing
- "mvwinsch" @179 NONAME ; generated
- "mvwinsnstr" @180 NONAME ; generated
- "mvwinsstr" @181 NONAME ; generated
- "mvwinstr" @182 NONAME ; generated
-; "mvwins_nwstr" @183 NONAME ; missing
-; "mvwins_wch" @184 NONAME ; missing
-; "mvwins_wstr" @185 NONAME ; missing
-; "mvwinwstr" @186 NONAME ; missing
-; "mvwin_wch" @187 NONAME ; missing
-; "mvwin_wchnstr" @188 NONAME ; missing
-; "mvwin_wchstr" @189 NONAME ; missing
- "mvwprintw" @190 NONAME ; implemented
- "mvwscanw" @191 NONAME ; implemented
- "mvwvline" @192 NONAME ; generated
-; "mvwvline_set" @193 NONAME ; missing
- "napms" @194 NONAME ; implemented
- "newpad" @195 NONAME ; implemented
- "newterm" @196 NONAME ; implemented
- "newwin" @197 NONAME ; implemented
- "nl" @198 NONAME ; implemented
- "nocbreak" @199 NONAME ; implemented
- "nodelay" @200 NONAME ; implemented
- "noecho" @201 NONAME ; implemented
- "nonl" @202 NONAME ; implemented
- "noqiflush" @203 NONAME ; implemented
- "noraw" @204 NONAME ; implemented
- "notimeout" @205 NONAME ; implemented
- "overlay" @206 NONAME ; implemented
- "overwrite" @207 NONAME ; implemented
- "pair_content" @208 NONAME ; implemented
- "PAIR_NUMBER" @209 NONAME ; generated
- "pechochar" @210 NONAME ; implemented
-; "pecho_wchar" @211 NONAME ; missing
- "pnoutrefresh" @212 NONAME ; implemented
- "prefresh" @213 NONAME ; implemented
- "printw" @214 NONAME ; implemented
- "putp" @215 NONAME ; implemented
- "putwin" @216 NONAME ; implemented
- "qiflush" @217 NONAME ; implemented
- "raw" @218 NONAME ; implemented
- "redrawwin" @219 NONAME ; generated
- "refresh" @220 NONAME ; generated
- "resetty" @221 NONAME ; implemented
- "reset_prog_mode" @222 NONAME ; implemented
- "reset_shell_mode" @223 NONAME ; implemented
- "ripoffline" @224 NONAME ; implemented
- "savetty" @225 NONAME ; implemented
- "scanw" @226 NONAME ; implemented
- "scr_dump" @227 NONAME ; implemented
- "scr_init" @228 NONAME ; implemented
- "scrl" @229 NONAME ; generated
- "scroll" @230 NONAME ; generated
- "scrollok" @231 NONAME ; implemented
- "scr_restore" @232 NONAME ; implemented
- "scr_set" @233 NONAME ; implemented
-; "setcchar" @234 NONAME ; missing
- "setscrreg" @235 NONAME ; generated
- "set_term" @236 NONAME ; implemented
- "slk_attroff" @237 NONAME ; implemented
-; "slk_attr_off" @238 NONAME ; missing
- "slk_attron" @239 NONAME ; implemented
-; "slk_attr_on" @240 NONAME ; missing
- "slk_attrset" @241 NONAME ; implemented
-; "slk_attr_set" @242 NONAME ; missing
- "slk_clear" @243 NONAME ; implemented
- "slk_init" @244 NONAME ; implemented
- "slk_label" @245 NONAME ; implemented
- "slk_noutrefresh" @246 NONAME ; implemented
- "slk_refresh" @247 NONAME ; implemented
- "slk_restore" @248 NONAME ; implemented
- "slk_set" @249 NONAME ; implemented
- "slk_touch" @250 NONAME ; implemented
-; "slk_wset" @251 NONAME ; missing
- "standout" @252 NONAME ; generated
- "standend" @253 NONAME ; generated
- "start_color" @254 NONAME ; implemented
- "subpad" @255 NONAME ; implemented
- "subwin" @256 NONAME ; implemented
- "syncok" @257 NONAME ; implemented
- "termattrs" @258 NONAME ; implemented
- "termname" @259 NONAME ; implemented
- "tigetflag" @260 NONAME ; implemented
- "tigetnum" @261 NONAME ; implemented
- "tigetstr" @262 NONAME ; implemented
-; "timeout" @263 NONAME ; implemented << NO!!
- "typeahead" @264 NONAME ; implemented
- "ungetch" @265 NONAME ; implemented
-; "unget_wch" @266 NONAME ; missing
- "untouchwin" @267 NONAME ; generated
- "use_env" @268 NONAME ; implemented
- "vidattr" @269 NONAME ; implemented
-; "vid_attr" @270 NONAME ; missing
- "vidputs" @271 NONAME ; implemented
-; "vid_puts" @272 NONAME ; missing
- "vline" @273 NONAME ; generated
-; "vline_set" @274 NONAME ; missing
- "vwprintw" @275 NONAME ; implemented
-; "vw_printw" @276 NONAME ; implemented << NO!!
- "vwscanw" @277 NONAME ; implemented
-; "vw_scanw" @278 NONAME ; implemented << NO!!
- "waddch" @279 NONAME ; implemented
- "waddchnstr" @280 NONAME ; implemented
- "waddchstr" @281 NONAME ; generated
- "waddnstr" @282 NONAME ; implemented
- "waddstr" @283 NONAME ; generated
-; "waddwstr" @284 NONAME ; missing
-; "wadd_wch" @285 NONAME ; missing
-; "wadd_wchnstr" @286 NONAME ; missing
-; "wadd_wchstr" @287 NONAME ; missing
- "wattron" @288 NONAME ; generated
- "wattroff" @289 NONAME ; generated
- "wattrset" @290 NONAME ; generated
- "wattr_get" @291 NONAME ; generated
- "wattr_on" @292 NONAME ; implemented
- "wattr_off" @293 NONAME ; implemented
-; "wattr_set" @294 NONAME ; implemented << NO!!
- "wbkgd" @295 NONAME ; implemented
- "wbkgdset" @296 NONAME ; generated
-; "wbkgrndset" @297 NONAME ; missing
-; "wbkgrnd" @298 NONAME ; missing
- "wborder" @299 NONAME ; implemented
-; "wborder_set" @300 NONAME ; missing
- "wchgat" @301 NONAME ; implemented
- "wclear" @302 NONAME ; implemented
- "wclrtobot" @303 NONAME ; implemented
- "wclrtoeol" @304 NONAME ; implemented
- "wcursyncup" @305 NONAME ; implemented
- "wdelch" @306 NONAME ; implemented
- "wdeleteln" @307 NONAME ; generated
- "wechochar" @308 NONAME ; implemented
-; "wecho_wchar" @309 NONAME ; missing
- "werase" @310 NONAME ; implemented
-; "wgetbkgrnd" @311 NONAME ; missing
- "wgetch" @312 NONAME ; implemented
- "wgetnstr" @313 NONAME ; implemented
-; "wgetn_wstr" @314 NONAME ; missing
- "wgetstr" @315 NONAME ; generated
-; "wget_wch" @316 NONAME ; missing
-; "wget_wstr" @317 NONAME ; missing
- "whline" @318 NONAME ; implemented
-; "whline_set" @319 NONAME ; missing
- "winch" @320 NONAME ; generated
- "winchnstr" @321 NONAME ; implemented
- "winchstr" @322 NONAME ; generated
- "winnstr" @323 NONAME ; implemented
-; "winnwstr" @324 NONAME ; missing
- "winsch" @325 NONAME ; implemented
- "winsdelln" @326 NONAME ; implemented
- "winsertln" @327 NONAME ; generated
- "winsnstr" @328 NONAME ; implemented
- "winsstr" @329 NONAME ; generated
- "winstr" @330 NONAME ; generated
-; "wins_nwstr" @331 NONAME ; missing
-; "wins_wch" @332 NONAME ; missing
-; "wins_wstr" @333 NONAME ; missing
-; "winwstr" @334 NONAME ; missing
-; "win_wch" @335 NONAME ; missing
-; "win_wchnstr" @336 NONAME ; missing
-; "win_wchstr" @337 NONAME ; missing
- "wmove" @338 NONAME ; implemented
- "wnoutrefresh" @339 NONAME ; implemented
- "wprintw" @340 NONAME ; implemented
- "wredrawln" @341 NONAME ; implemented
- "wrefresh" @342 NONAME ; implemented
- "wresize" @343 NONAME ; implemented
- "wscanw" @344 NONAME ; implemented
- "wscrl" @345 NONAME ; implemented
- "wsetscrreg" @346 NONAME ; implemented
- "wstandout" @347 NONAME ; generated
- "wstandend" @348 NONAME ; generated
- "wsyncdown" @349 NONAME ; implemented
- "wsyncup" @350 NONAME ; implemented
- "wtimeout" @351 NONAME ; implemented
- "wtouchln" @352 NONAME ; implemented
-; "wunctrl" @353 NONAME ; missing
- "wvline" @354 NONAME ; implemented
-; "wvline_set" @355 NONAME ; missing
-
- "getmouse" @356 NONAME
- "ungetmouse" @357 NONAME
- "mousemask" @358 NONAME
- "wenclose" @359 NONAME
- "mouseinterval" @360 NONAME
-
-; from unctrl.h
- "unctrl" @361 NONAME
-
-; publics for tracing
- "_tracef" @400 NONAME
- "_tracedump" @401 NONAME
- "_traceattr" @402 NONAME
- "_tracechar" @403 NONAME
- "_tracemouse" @404 NONAME
- "trace" @405 NONAME
-
-;**********
-;* term.h *
-;**********
- "boolnames" @600 NONAME ; variable
- "boolcodes" @601 NONAME ; variable
- "boolfnames" @602 NONAME ; variable
- "numnames" @603 NONAME ; variable
- "numcodes" @604 NONAME ; variable
- "numfnames" @605 NONAME ; variable
- "strnames" @606 NONAME ; variable
- "strcodes" @608 NONAME ; variable
- "strfnames" @609 NONAME ; variable
-
-; internals
- "_nc_read_entry" @620 NONAME
- "_nc_read_file_entry" @621 NONAME
- "_nc_first_name" @622 NONAME
- "_nc_name_match" @623 NONAME
- "_nc_read_termcap_entry" @624 NONAME
- "_nc_fallback" @625 NONAME
-
-; entry points
- "set_curterm" @640 NONAME
- "del_curterm" @641 NONAME
-
-; entry points
-; "putp" @642 NONAME ; already defined
- "restartterm" @643 NONAME
- "setupterm" @644 NONAME
- "tgetent" @645 NONAME
- "tgetflag" @646 NONAME
- "tgetnum" @647 NONAME
- "tgetstr" @648 NONAME
- "tgoto" @649 NONAME
-; "tigetflag" @650 NONAME ; already defined
-; "tigetnum" @651 NONAME ; already defined
-; "tigetstr" @652 NONAME ; already defined
- "tparm" @653 NONAME
- "tparam" @654 NONAME
- "tputs" @655 NONAME
-
-;*************
-;* termcap.h *
-;*************
-; the functions are already defined in term.h
- "PC" @660 NONAME
- "UP" @661 NONAME
- "BC" @662 NONAME
- "ospeed" @663 NONAME
-
-;****************
-;* term_entry.h *
-;****************
- "_nc_head" @700 NONAME
- "_nc_tail" @701 NONAME
-
-; alloc_entry.c: elementary allocation code
- "_nc_init_entry" @702 NONAME
- "_nc_save_str" @703 NONAME
- "_nc_merge_entry" @704 NONAME
- "_nc_wrap_entry" @705 NONAME
-
-; parse_entry.c: entry-parsing code
- "_nc_parse_entry" @706 NONAME
- "_nc_capcmp" @707 NONAME
-
-; write_entry.c: writing an entry to the file system
- "_nc_write_entry" @708 NONAME
-
-; comp_parse.c: entry list handling
- "_nc_read_entry_source" @709 NONAME
- "_nc_entry_match" @710 NONAME
- "_nc_resolve_uses" @711 NONAME
- "_nc_free_entries" @712 NONAME
-
-;*********
-;* tic.h *
-;*********
-; "_nc_tracing" @800 NONAME ; defined below
-; "_nc_tracef" @801 NONAME ; missing
-; "_nc_visbuf" @802 NONAME ; defined below
-
- "_nc_curr_token" @803 NONAME
-
- "_nc_info_hash_table" @804 NONAME
- "_nc_cap_hash_table" @805 NONAME
-
- "_nc_capalias_table" @806 NONAME
- "_nc_infoalias_table" @807 NONAME
- "_nc_get_table" @808 NONAME
-
-; comp_hash.c: name lookup
- "_nc_find_entry" @809 NONAME
- "_nc_find_type_entry" @810 NONAME
-
-; comp_scan.c: lexical analysis
- "_nc_get_token" @811 NONAME
- "_nc_push_token" @812 NONAME
- "_nc_reset_input" @813 NONAME
- "_nc_panic_mode" @814 NONAME
- "_nc_curr_line" @815 NONAME
- "_nc_curr_col" @816 NONAME
- "_nc_curr_file_pos" @817 NONAME
- "_nc_comment_start" @818 NONAME
- "_nc_comment_end" @819 NONAME
- "_nc_syntax" @820 NONAME
- "_nc_start_line" @821 NONAME
-
-; comp_error.c: warning & abort messages
- "_nc_set_source" @822 NONAME
- "_nc_get_type" @823 NONAME
- "_nc_set_type" @824 NONAME
- "_nc_syserr_abort" @825 NONAME
- "_nc_err_abort" @826 NONAME
- "_nc_warning" @827 NONAME
- "_nc_suppress_warnings" @828 NONAME
-
-; captoinfo.c: capability conversion
- "_nc_captoinfo" @829 NONAME
- "_nc_infotocap" @830 NONAME
-
-; comp_main.c: compiler main
-; "_nc_progname" @831 NONAME ; no need to export it
-
-
-; *****************
-; NCurses internals -- just for progs/*.exe and the library itself.
-; *****************
-
-; For broken linkers
-; "_nc_screen" @1000 NONAME
-; "_nc_alloc_screen" @1001 NONAME
-; "_nc_set_screen" @1002 NONAME
-
-; For not so broken linkers
- "SP" @1003 NONAME
-
-; Who knows what this is for
- "_slk_init" @1004 NONAME
- "slk_initialize" @1005 NONAME
-
-; Tracing -- all functions used internally
- "_nc_tracing" @1010 NONAME
- "_nc_tputs_trace" @1011 NONAME
- "_nc_visbuf" @1012 NONAME
-
-; lib_acs.c
- "init_acs" @1013 NONAME
-
-; lib_mvcur.c
- "_nc_mvcur_init" @1014 NONAME
- "_nc_mvcur_wrap" @1015 NONAME
- "_nc_mvcur_scrolln" @1016 NONAME
-
-; lib_mouse.c
- "_nc_mouse_init" @1017 NONAME
- "_nc_mouse_event" @1018 NONAME
- "_nc_mouse_inline" @1019 NONAME
- "_nc_mouse_parse" @1020 NONAME
- "_nc_mouse_wrap" @1021 NONAME
- "_nc_mouse_resume" @1022 NONAME
- "_nc_max_click_interval" @1023 NONAME
-
-; elsewhere ...
- "_nc_keypad" @1024 NONAME
- "_nc_makenew" @1025 NONAME
- "_nc_outch" @1026 NONAME
- "_nc_render" @1027 NONAME
- "_nc_waddch_nosync" @1028 NONAME
- "_nc_scroll_optimize" @1029 NONAME
- "_nc_scroll_window" @1030 NONAME
- "_nc_setupscreen" @1031 NONAME
- "_nc_backspace" @1032 NONAME
- "_nc_outstr" @1033 NONAME
- "_nc_signal_handler" @1034 NONAME
- "_nc_synchook" @1035 NONAME
- "_nc_timed_wait" @1036 NONAME
- "_nc_do_color" @1037 NONAME
diff --git a/ncurses-5.3/misc/panel.def b/ncurses-5.3/misc/panel.def
deleted file mode 100644
index 30ce1d6..0000000
--- a/ncurses-5.3/misc/panel.def
+++ /dev/null
@@ -1,20 +0,0 @@
-LIBRARY panel5 INITINSTANCE TERMINSTANCE
-DESCRIPTION "NCurses-5-1-20000704, module panel"
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
- "bottom_panel" @7 NONAME
- "del_panel" @5 NONAME
- "hide_panel" @3 NONAME
- "move_panel" @13 NONAME
- "new_panel" @8 NONAME
- "panel_above" @9 NONAME
- "panel_below" @10 NONAME
- "panel_hidden" @15 NONAME
- "panel_userptr" @12 NONAME
- "panel_window" @1 NONAME
- "replace_panel" @14 NONAME
- "set_panel_userptr" @11 NONAME
- "show_panel" @4 NONAME
- "top_panel" @6 NONAME
- "update_panels" @2 NONAME
diff --git a/ncurses-5.3/misc/panel.ref b/ncurses-5.3/misc/panel.ref
deleted file mode 100644
index e84045a..0000000
--- a/ncurses-5.3/misc/panel.ref
+++ /dev/null
@@ -1,18 +0,0 @@
-LIBRARY panel2 INITINSTANCE
-DESCRIPTION 'NCurses 1.9.9e-1 for OS/2 - panel library'
-EXPORTS
- "panel_window" @1
- "update_panels" @2
- "hide_panel" @3
- "show_panel" @4
- "del_panel" @5
- "top_panel" @6
- "bottom_panel" @7
- "new_panel" @8
- "panel_above" @9
- "panel_below" @10
- "set_panel_userptr" @11
- "panel_userptr" @12
- "move_panel" @13
- "replace_panel" @14
- "panel_hidden" @15
diff --git a/ncurses-5.3/misc/run_tic.in b/ncurses-5.3/misc/run_tic.in
deleted file mode 100644
index 6e7d85f..0000000
--- a/ncurses-5.3/misc/run_tic.in
+++ /dev/null
@@ -1,152 +0,0 @@
-#!@SHELL@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1996,2000
-#
-# $Id$
-# 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.
-#
-# Assumes:
-# The leaf directory names (lib, tabset, terminfo)
-#
-echo '** Building terminfo database, please wait...'
-#
-# The script is designed to be run from the misc/Makefile as
-# make install.data
-
-: ${suffix=@PROG_EXT@}
-: ${DESTDIR=@DESTDIR@}
-: ${prefix=@prefix@}
-: ${exec_prefix=@exec_prefix@}
-: ${bindir=@bindir@}
-: ${top_srcdir=@top_srcdir@}
-: ${srcdir=@srcdir@}
-: ${datadir=@datadir@}
-: ${ticdir=@TERMINFO@}
-: ${source=@TERMINFO_SRC@}
-: ${LN_S="@LN_S@"}
-: ${THAT_CC=cc}
-: ${THIS_CC=cc}
-
-test -z "${DESTDIR}" && DESTDIR=
-
-# 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
-fi
-
-#
-# set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
-# the PATH we just set.
-#
-NEWPATH=$PATH
-export NEWPATH
-PROG_BIN_DIR=${DESTDIR}$bindir
-export PROG_BIN_DIR
-
-TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
-umask 022
-
-# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's@/share/@/lib/@'`
-
-# Remove the old terminfo stuff; we don't care if it existed before, and it
-# would generate a lot of confusing error messages if we tried to overwrite it.
-# We explicitly remove its contents rather than the directory itself, in case
-# the directory is actually a symbolic link.
-( cd $TERMINFO && rm -fr ? 2>/dev/null )
-
-# If we're not installing into /usr/share/, we'll have to adjust the location
-# of the tabset files in terminfo.src (which are in a parallel directory).
-TABSET=`echo $ticdir | sed -e 's@/terminfo$@/tabset@'`
-if test "x$TABSET" != "x/usr/share/tabset" ; then
- echo '** adjusting tabset paths'
- TMP=${TMPDIR-/tmp}/$$
- sed -e s:/usr/share/tabset:$TABSET:g $source >$TMP
- trap "rm -f $TMP" 0 1 2 5 15
- source=$TMP
-fi
-
-cat <<EOF
-Running tic to install $TERMINFO ...
-
- You may see messages regarding unknown capabilities, e.g., AX.
- These are extended terminal capabilities which can be compiled
- using
- tic -x
- Read the INSTALL document before doing this - it can cause
- problems for older ncurses applications.
-
-EOF
-if ( $srcdir/shlib tic$suffix -s -o $TERMINFO $source )
-then
- echo '** built new '$TERMINFO
-else
- echo '? tic could not build '$TERMINFO
- exit 1
-fi
-
-# Make a symbolic link to provide compatibility with applications that expect
-# to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not
-# all systems support symbolic links, and those that do provide a variety
-# of options for 'test'.
-if test "$TICDIR" != "$TERMINFO" ; then
- ( rm -f $TICDIR 2>/dev/null )
- if ( cd $TICDIR 2>/dev/null )
- then
- cd $TICDIR
- TICDIR=`pwd`
- if test $TICDIR != $TERMINFO ; then
- # Well, we tried. Some systems lie to us, so the
- # installer will have to double-check.
- echo "Verify if $TICDIR and $TERMINFO are the same."
- echo "The new terminfo is in $TERMINFO; the other should be a link to it."
- echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
- fi
- else
- cd ${DESTDIR}$prefix
- # Construct a symbolic link that only assumes $ticdir has the
- # same $prefix as the other installed directories.
- RELATIVE=`echo $ticdir|sed -e 's:^'$prefix'/::'`
- if test "$RELATIVE" != "$ticdir" ; then
- RELATIVE=../`echo $ticdir|sed -e 's:^'$prefix'/::' -e 's:^/::'`
- fi
- if ( @LN_S@ $RELATIVE $TICDIR )
- then
- echo '** linked '$TICDIR' for compatibility'
- fi
- fi
-fi
diff --git a/ncurses-5.3/misc/run_tic.sh b/ncurses-5.3/misc/run_tic.sh
deleted file mode 100644
index a366356..0000000
--- a/ncurses-5.3/misc/run_tic.sh
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1996,2000
-#
-# $Id$
-# 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.
-#
-# Assumes:
-# The leaf directory names (lib, tabset, terminfo)
-#
-echo '** Building terminfo database, please wait...'
-#
-# The script is designed to be run from the misc/Makefile as
-# make install.data
-
-: ${suffix=}
-: ${DESTDIR=}
-: ${prefix=/opt/rtems-test/powerpc-rtems}
-: ${exec_prefix=${prefix}}
-: ${bindir=${exec_prefix}/bin}
-: ${top_srcdir=..}
-: ${srcdir=.}
-: ${datadir=${prefix}/share}
-: ${ticdir=${prefix}/share/terminfo}
-: ${source=${top_srcdir}/misc/terminfo.src}
-: ${LN_S="ln -s"}
-: ${THAT_CC=cc}
-: ${THIS_CC=cc}
-
-test -z "${DESTDIR}" && DESTDIR=
-
-# 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
-fi
-
-#
-# set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
-# the PATH we just set.
-#
-NEWPATH=$PATH
-export NEWPATH
-PROG_BIN_DIR=${DESTDIR}$bindir
-export PROG_BIN_DIR
-
-TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
-umask 022
-
-# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's@/share/@/lib/@'`
-
-# Remove the old terminfo stuff; we don't care if it existed before, and it
-# would generate a lot of confusing error messages if we tried to overwrite it.
-# We explicitly remove its contents rather than the directory itself, in case
-# the directory is actually a symbolic link.
-( cd $TERMINFO && rm -fr ? 2>/dev/null )
-
-# If we're not installing into /usr/share/, we'll have to adjust the location
-# of the tabset files in terminfo.src (which are in a parallel directory).
-TABSET=`echo $ticdir | sed -e 's@/terminfo$@/tabset@'`
-if test "x$TABSET" != "x/usr/share/tabset" ; then
- echo '** adjusting tabset paths'
- TMP=${TMPDIR-/tmp}/$$
- sed -e s:/usr/share/tabset:$TABSET:g $source >$TMP
- trap "rm -f $TMP" 0 1 2 5 15
- source=$TMP
-fi
-
-cat <<EOF
-Running tic to install $TERMINFO ...
-
- You may see messages regarding unknown capabilities, e.g., AX.
- These are extended terminal capabilities which can be compiled
- using
- tic -x
- Read the INSTALL document before doing this - it can cause
- problems for older ncurses applications.
-
-EOF
-if ( $srcdir/shlib tic$suffix -s -o $TERMINFO $source )
-then
- echo '** built new '$TERMINFO
-else
- echo '? tic could not build '$TERMINFO
- exit 1
-fi
-
-# Make a symbolic link to provide compatibility with applications that expect
-# to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not
-# all systems support symbolic links, and those that do provide a variety
-# of options for 'test'.
-if test "$TICDIR" != "$TERMINFO" ; then
- ( rm -f $TICDIR 2>/dev/null )
- if ( cd $TICDIR 2>/dev/null )
- then
- cd $TICDIR
- TICDIR=`pwd`
- if test $TICDIR != $TERMINFO ; then
- # Well, we tried. Some systems lie to us, so the
- # installer will have to double-check.
- echo "Verify if $TICDIR and $TERMINFO are the same."
- echo "The new terminfo is in $TERMINFO; the other should be a link to it."
- echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
- fi
- else
- cd ${DESTDIR}$prefix
- # Construct a symbolic link that only assumes $ticdir has the
- # same $prefix as the other installed directories.
- RELATIVE=`echo $ticdir|sed -e 's:^'$prefix'/::'`
- if test "$RELATIVE" != "$ticdir" ; then
- RELATIVE=../`echo $ticdir|sed -e 's:^'$prefix'/::' -e 's:^/::'`
- fi
- if ( ln -s $RELATIVE $TICDIR )
- then
- echo '** linked '$TICDIR' for compatibility'
- fi
- fi
-fi
diff --git a/ncurses-5.3/misc/shlib b/ncurses-5.3/misc/shlib
deleted file mode 100755
index a9879e6..0000000
--- a/ncurses-5.3/misc/shlib
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-# $Id$
-# Use this script as a wrapper when running executables linked to shared
-# libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
-# the soname's path within the linked executable (such as IRIX), e.g,
-#
-# shlib knight
-#
-# Setting LD_LIBRARY_PATH, overrides/supplements the loader's normal search
-# path, and works on most systems. The drawback is that then the environment
-# variable has to be set to run the programs within this directory tree.
-#
-# For Linux (and other systems using the GNU loader), we can use the rpath
-# directive, which embeds the pathname of the library within the executable.
-# Using the Linux loader's rpath directive introduces a constraint, since
-# it's embedded into the binary, and means that the binary cannot be moved
-# around (though it'll work if the $exec_prefix convention that puts the bin
-# and lib directories under the same parent is followed).
-#
-# Using the actual soname (e.g., ../lib/libncurses.so) alone, is a more
-# flexible solution; you can link without having to set the environment
-# variable, and on some systems (IRIX) you can even run the resulting binaries
-# without setting LD_LIBRARY_PATH.
-#
-# Using a conventional link, with -L and -l options on Linux results in a
-# statically linked executable, which we don't want at all.
-#
-# Special cases:
-#
-# BeOS R4.5 uses $LIBRARY_PATH rather than $LD_LIBRARY_PATH.
-
-#
-# Make sure that we use the PATH that was set in run_tic.sh
-#
-if test X$NEWPATH != X ; then
- PATH=$NEWPATH
- export PATH
-fi
-
-q=""
-for p in lib ../lib
-do
- if test -d $p; then
- q="$p"
- fi
-done
-if test -n "$q" ; then
- if test -n "$LD_LIBRARY_PATH"; then
- LD_LIBRARY_PATH="$q:$LD_LIBRARY_PATH"
- elif test -n "$LIBRARY_PATH" ; then
- LIBRARY_PATH="$q:$LIBRARY_PATH"
- else
- LD_LIBRARY_PATH="$q"
- fi
- export LD_LIBRARY_PATH
-fi
-eval "$*"
diff --git a/ncurses-5.3/misc/tabset/std b/ncurses-5.3/misc/tabset/std
deleted file mode 100644
index e93f737..0000000
--- a/ncurses-5.3/misc/tabset/std
+++ /dev/null
@@ -1 +0,0 @@
- 3 1 1 1 1 1 1 1 1 1 1 1 1 1
diff --git a/ncurses-5.3/misc/tabset/stdcrt b/ncurses-5.3/misc/tabset/stdcrt
deleted file mode 100644
index 66ba12f..0000000
--- a/ncurses-5.3/misc/tabset/stdcrt
+++ /dev/null
@@ -1 +0,0 @@
- 3 1 1 1 1 1 1 1 1 1 \ No newline at end of file
diff --git a/ncurses-5.3/misc/tabset/vt100 b/ncurses-5.3/misc/tabset/vt100
deleted file mode 100644
index 8828d19..0000000
--- a/ncurses-5.3/misc/tabset/vt100
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-H H H H H H H H H H H H H H H H
diff --git a/ncurses-5.3/misc/tabset/vt300 b/ncurses-5.3/misc/tabset/vt300
deleted file mode 100644
index b1f9ce1..0000000
--- a/ncurses-5.3/misc/tabset/vt300
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-P2$t9/17/25/33/41/49/57/65/73/81/89/97/105/113/121/129\
diff --git a/ncurses-5.3/misc/tdlint b/ncurses-5.3/misc/tdlint
deleted file mode 100755
index cfd63fc..0000000
--- a/ncurses-5.3/misc/tdlint
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-# $Id$
-#
-# Lint-script that allows user's own lint libraries, in addition to the ones
-# installed in the system.
-#
-OPT=""
-DIRS=""
-LIBS=""
-FILES=""
-ARCH=`uname -s`
-if test -z "$ARCH" ; then
- echo '? uname not found'
- exit 1
-else
- case $ARCH in
- AIX) set - $* -Nn4000
- ;;
- IRIX) set - $* -n -lc
- ;;
- FreeBSD) set - $* -g -p -u -v -z
- ;;
- SunOS)
- case `uname -r` in
- 5.*) ARCH=Solaris
- set - $* -n -lc
- ;;
- esac
- ;;
- esac
-fi
-# LIBDIR=$HOME/lib/$ARCH/lint ;export LIBDIR
-for p in $HOME/lib/$ARCH/lint /usr/lib/lint /usr/lib
-do
- if [ -d $p ]
- then
- DIRS="$DIRS $p"
- fi
-done
-#
-while [ $# != 0 ]
-do
- case $1 in
- -D*\"*) ;;
- -L*)
- DIRS="`echo $1|sed -e 's/^-L//'` $DIRS"
- ;;
- -l*)
- lib="llib-l`echo $1 | sed -e 's/^-l//'`.ln"
- found=no
- for p in $DIRS
- do
- echo -n testing $p/$lib
- if [ -f $p/$lib ]
- then
- LIBS="$LIBS $p/$lib"
- echo " (ok)"
- found=yes
- break
- fi
- echo
- done
- if [ $found = no ]
- then
- echo "ignored library $1"
- fi
- ;;
- -n) if [ -z "$OPT" ]
- then
- OPT="-I."
- fi
- OPT="$OPT $1"
- ;;
- -*) OPT="$OPT $1"
- ;;
- *)
- FILES="$FILES $1"
- ;;
- esac
- shift
-done
-#
-eval lint $OPT $FILES $LIBS
diff --git a/ncurses-5.3/misc/terminfo.src b/ncurses-5.3/misc/terminfo.src
deleted file mode 100644
index 8c0bebc..0000000
--- a/ncurses-5.3/misc/terminfo.src
+++ /dev/null
@@ -1,19551 +0,0 @@
-######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
-#
-# This version of terminfo.src is distributed with ncurses.
-# Report bugs and new terminal descriptions to
-# 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
-# $Date$
-# terminfo syntax
-#
-# Eric S. Raymond (current maintainer)
-# John Kunze, Berkeley
-# Craig Leres, Berkeley
-#
-# Please e-mail changes to terminfo@thyrsus.com; the old termcap@berkeley.edu
-# address is no longer valid. The latest version can always be found at
-# <http://www.tuxedo.org/terminfo>.
-#
-# PURPOSE OF THIS FILE:
-#
-# This file describes the capabilities of various character-cell terminals,
-# as needed by software such as screen-oriented editors.
-#
-# Other terminfo and termcap files exist, supported by various OS vendors
-# or as relics of various older versions of UNIX. This one is the longest
-# and most comprehensive one in existence. It subsumes not only the entirety
-# of the historical 4.4BSD, GNU, System V and SCO termcap files and the BRL
-# termcap file, but also large numbers of vendor-maintained termcap and
-# terminfo entries more complete and carefully tested than those in historical
-# termcap/terminfo versions.
-#
-# Pointers to related resources (including the ncurses distribution) may
-# be found at <http://www.tuxedo.org/terminfo>.
-#
-# INTERNATIONALIZATION:
-#
-# This file uses only the US-ASCII character set (no ISO8859 characters).
-#
-# This file assumes a US-ASCII character set. If you need to fix this, start
-# by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers
-# for your character set. \E(A and \E)A enables the British character set
-# with the pound sign at position 2/3.
-#
-# In a Japanese-processing environment using EUC/Japanese or Shift-JIS,
-# C1 characters are considered the first-byte set of the Japanese encodings,
-# so \E)0 should be avoided in <enacs> and initialization strings.
-#
-# FILE FORMAT:
-#
-# The version you are looking at may be in any of three formats: master
-# (terminfo with OT capabilities), stock terminfo, or termcap. You can tell
-# which by the format given in the header above.
-#
-# The master format is accepted and generated by the terminfo tools in the
-# ncurses suite; it differs from stock (System V-compatible) terminfo only
-# in that it admits a group of capabilities (prefixed `OT') equivalent to
-# various obsolete termcap capabilities. You can, thus, convert from master
-# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if
-# you have ncurses `tic -I' is nicer (among other things, it automatically
-# outputs entries in a canonical form).
-#
-# The termcap version is generated automatically from the master version
-# using tic -C. This filtering leaves in the OT capabilities under their
-# original termcap names. All translated entries fit within the 1023-byte
-# string-table limit of archaic termcap libraries except where explicitly
-# noted below. Note that the termcap translation assumes that your termcap
-# library can handle multiple tc capabilities in an entry. 4.4BSD has this
-# capability. Older versions of GNU termcap, through 1.3, do not.
-#
-# For details on these formats, see terminfo(5) in the ncurses distribution,
-# and termcap(5) in the 4.4BSD Unix Programmer's Manual. Be aware that 4.4BSD
-# curses has been declared obsolete by the caretakers of the 4.4BSD sources
-# as of June 1995; they are encouraging everyone to migrate to ncurses.
-#
-# Note: unlike some other distributed terminfo files (Novell Unix & SCO's),
-# no entry in this file has embedded comments. This is so source translation
-# to termcap only has to carry over leading comments. Also, no name field
-# contains embedded whitespace (such whitespace confuses rdist).
-#
-# Further note: older versions of this file were often installed with an editor
-# script (reorder) that moved the most common terminal types to the front of
-# the file. This should no longer be necessary, as the file is now ordered
-# roughly by type frequency with ANSI/VT100 and other common types up front.
-#
-# Some information has been merged in from terminfo files distributed by
-# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below). Much information
-# comes from vendors who maintain official terminfos for their hardware
-# (notably DEC and Wyse).
-#
-# A detailed change history is included at the end of this file.
-#
-# FILE ORGANIZATION:
-#
-# Comments in this file begin with # - they cannot appear in the middle
-# of a terminfo/termcap entry (this feature had to be sacrificed in order
-# to allow standard terminfo and termcap syntax to be generated cleanly from
-# the master format). Individual capabilities are commented out by
-# placing a period between the colon and the capability name.
-#
-# The file is divided up into major sections (headed by lines beginning with
-# the string "########") and minor sections (beginning with "####"); do
-#
-# grep "^####" <file> | more
-#
-# to see a listing of section headings. The intent of the divisions is
-# (a) to make it easier to find things, and (b) to order the database so
-# that important and frequently-encountered terminal types are near the
-# front (so that you'll get reasonable search efficiency from a linear
-# search of the termcap form even if you don't use reorder). Minor sections
-# usually correspond to manufacturers or standard terminal classes.
-# Parenthesized words following manufacturer names are type prefixes or
-# product line names used by that manufacturers.
-#
-# HOW TO READ THE ENTRIES:
-#
-# The first name in an entry is the canonical name for the model or
-# type, last entry is a verbose description. Others are mnemonic synonyms for
-# the terminal.
-#
-# Terminal names look like <manufacturer> <model> - <modes/options>
-# The part to the left of the dash, if a dash is present, describes the
-# particular hardware of the terminal. The part to the right may be used
-# for flags indicating special ROMs, extra memory, particular terminal modes,
-# or user preferences.
-#
-# All names should be in lower case, for consistency in typing.
-#
-# The following are conventionally used suffixes:
-# -2p Has two pages of memory. Likewise 4p, 8p, etc.
-# -am Enable auto-margin.
-# -m Monochrome. Suppress color support
-# -mc Magic-cookie. Some terminals (notably older Wyses) can
-# only support one attribute without magic-cookie lossage.
-# Their base entry is usually paired with another that
-# uses magic cookies to support multiple attributes.
-# -nam No auto-margin - suppress <am> capability
-# -nl No labels - suppress soft labels
-# -ns No status line - suppress status line
-# -rv Terminal in reverse video mode (black on white)
-# -s Enable status line.
-# -vb Use visible bell (<flash>) rather than <bel>.
-# -w Wide - in 132 column mode.
-# If a name has multiple suffixes and one is a line height, that one should
-# go first. Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'.
-#
-# Entries with embedded plus signs are designed to be included through use/tc
-# capabilities, not used as standalone entries.
-#
-# To avoid search clashes, some older all-numeric names for terminals have
-# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621).
-# All primary names of terminals now have alphanumeric prefixes.
-#
-# Comments marked "esr" are mostly results of applying the termcap-compiler
-# code packaged with ncurses and contemplating the resulting error messages.
-# In many cases, these indicated obvious fixes to syntax garbled by the
-# composers. In a few cases, I was able to deduce corrected forms for garbled
-# capabilities by looking at context. All the information in the original
-# entries is preserved in the comments.
-#
-# In the comments, terminfo capability names are bracketed with <> (angle
-# brackets). Termcap capability names are bracketed with :: (colons).
-#
-# INTERPRETATION OF USER CAPABILITIES
-#
-# The System V Release 4 and XPG4 terminfo format defines ten string
-# capabilities for use by applications, <u0>...<u9>. In this file, we use
-# certain of these capabilities to describe functions which are not covered
-# by terminfo. The mapping is as follows:
-#
-# u9 terminal enquire string (equiv. to ANSI/ECMA-48 DA)
-# u8 terminal answerback description
-# u7 cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6)
-# u6 cursor position report (equiv. to ANSI/ECMA-48 CPR)
-#
-# The terminal enquire string <u9> should elicit an answerback response
-# from the terminal. Common values for <u9> will be ^E (on older ASCII
-# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals).
-#
-# The cursor position request (<u7>) string should elicit a cursor position
-# report. A typical value (for VT100 terminals) is \E[6n.
-#
-# The terminal answerback description (u8) must consist of an expected
-# answerback string. The string may contain the following scanf(3)-like
-# escapes:
-#
-# %c Accept any character
-# %[...] Accept any number of characters in the given set
-#
-# The cursor position report (<u6>) string must contain two scanf(3)-style
-# %d format elements. The first of these must correspond to the Y coordinate
-# and the second to the %d. If the string contains the sequence %i, it is
-# taken as an instruction to decrement each value after reading it (this is
-# the inverse sense from the cup string). The typical CPR value is
-# \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals).
-#
-# These capabilities are used by tack(1m), the terminfo action checker
-# (distributed with ncurses 5.0).
-#
-# TABSET FILES
-#
-# All the entries in this file have been edited to assume that the tabset
-# files directory is /usr/share/tabset, in conformance with the File Hierarchy
-# Standard for Linux and open-source BSD systems. Some vendors (notably Sun)
-# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset.
-#
-# No curses package we know of actually uses these files. If their location
-# is an issue, you will have to hand-patch the file locations before compiling
-# this file.
-#
-# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL
-#
-# As the ANSI/ECMA-48 standard and variants take firmer hold, and as
-# character-cell terminals are increasingly replaced by X displays, much of
-# this file is becoming a historical document (this is part of the reason for
-# the new organization, which puts ANSI types, xterm, Unix consoles,
-# and vt100 up front in confidence that this will catch 95% of new hardware).
-#
-# For the terminal types still alive, I'd like to have manufacturer's
-# contact data (Internet address and/or snail-mail + phone).
-#
-# I'm also interested in enriching the comments so that the latter portions of
-# the file do in fact become a potted history of VDT technology as seen by
-# UNIX hackers. Ideally, I'd like the headers for each manufacturer to
-# include its live/dead/out-of-the-business status, and for as many
-# terminal types as possible to be tagged with information like years
-# of heaviest use, popularity, and interesting features.
-#
-# I'm especially interested in identifying the obscure entries listed under
-# `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal
-# wisdom about them gets lost. If you know a lot about obscure old terminals,
-# please go to the terminfo resource page, grab the UFO file (ufo.ti), and
-# eyeball it for things you can identify and describe.
-#
-# If you have been around long enough to contribute, please read the file
-# with this in mind and send me your annotations.
-#
-# COPYRIGHTS AND OTHER DELUSIONS
-#
-# The BSD ancestor of this file had a standard Regents of the University of
-# California copyright with dates from 1980 to 1993.
-#
-# Some information has been merged in from a terminfo file SCO distributes.
-# It has an obnoxious boilerplate copyright which I'm ignoring because they
-# took so much of the content from the ancestral BSD versions of this file
-# and didn't attribute it, thereby violating the BSD Regents' copyright.
-#
-# Not that anyone should care. However many valid functions copyrights may
-# serve, putting one on a termcap/terminfo file with hundreds of anonymous
-# contributors makes about as much sense as copyrighting a wall-full of
-# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous.
-#
-# This file deliberately has no copyright. It belongs to no one and everyone.
-# If you claim you own it, you will merely succeed in looking like a fool.
-# Use it as you like. Use it at your own risk. Copy and redistribute freely.
-# There are no guarantees anywhere. Svaha!
-#
-
-######## ANSI, UNIX CONSOLE, AND SPECIAL TYPES
-#
-# This section describes terminal classes and brands that are still
-# quite common.
-#
-
-#### Specials
-#
-# Special "terminals". These are used to label tty lines when you don't
-# know what kind of terminal is on it. The characteristics of an unknown
-# terminal are the lowest common denominator - they look about like a ti 700.
-#
-
-dumb|80-column dumb tty,
- am,
- cols#80,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-unknown|unknown terminal type,
- gn, use=dumb,
-lpr|printer|line printer,
- OTbs, hc, os,
- cols#132, lines#66,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ff=^L, ind=^J,
-glasstty|classic glass tty interpreting ASCII control characters,
- OTbs, am,
- cols#80,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ht=^I, kcub1=^H,
- kcud1=^J, nel=^M^J, .kbs=^H,
-
-vanilla,
- OTbs,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-
-#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
-#
-# See the end-of-file comment for more on these.
-#
-
-# ANSI capabilities are broken up into pieces, so that a terminal
-# implementing some ANSI subset can use many of them.
-ansi+local1,
- cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
-ansi+local,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, use=ansi+local1,
-ansi+tabs,
- cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[2g,
-ansi+inittabs,
- it#8, use=ansi+tabs,
-ansi+erase,
- clear=\E[H\E[J, ed=\E[J, el=\E[K,
-ansi+rca,
- hpa=\E[%p1%{1}%+%dG, vpa=\E[%p1%{1}%+%dd,
-ansi+cup,
- cup=\E[%i%p1%d;%p2%dH, home=\E[H,
-ansi+rep,
- rep=%p1%c\E[%p2%{1}%-%db,
-ansi+idl1,
- dl1=\E[M, il1=\E[L,
-ansi+idl,
- dl=\E[%p1%dM, il=\E[%p1%dL, use=ansi+idl1,
-ansi+idc,
- dch1=\E[P, ich=\E[%p1%d@, ich1=\E[@, rmir=\E6, smir=\E6,
-ansi+arrows,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- khome=\E[H,
-ansi+sgr|ansi graphic renditions,
- blink=\E[5m, invis=\E[8m, rev=\E[7m, sgr0=\E[0m,
-ansi+sgrso|ansi standout only,
- rmso=\E[m, smso=\E[7m,
-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,
- 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,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;%?%p7%t8;%;m,
- use=ansi+sgr, use=ansi+sgrso, use=ansi+sgrul,
-ansi+pp|ansi printer port,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
-ansi+csr|ansi scroll-region plus cursor save & restore,
- csr=\E[%i%p1%d;%p2%dr, rc=\E8, sc=\E7,
-
-# The IBM PC alternate character set. Plug this into any Intel console entry.
-# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
-# ROM graphics for control characters such as the diamond, up- and down-arrow.
-# This works with the System V, Linux, and BSDI consoles. It's a safe bet this
-# will work with any Intel console, they all seem to have inherited \E[11m
-# from the ANSI.SYS de-facto standard.
-klone+acs|alternate character set for ansi.sys displays,
- 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,
- rmacs=\E[10m, smacs=\E[11m,
-
-# Highlight controls corresponding to the ANSI.SYS standard. Most
-# console drivers for Intel boxes obey these. Makes the same assumption
-# about \E[11m as klone+acs. True ANSI/ECMA-48 would have <rmso=\E[27m>,
-# <rmul=\E[24m>, but this isn't a documented feature of ANSI.SYS.
-klone+sgr|attribute control for ansi.sys displays,
- blink=\E[5m, bold=\E[1m, invis=\E[8m, rev=\E[7m,
- rmpch=\E[10m, rmso=\E[m, rmul=\E[m,
- 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, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
- use=klone+acs,
-
-# Highlight controls corresponding to the ANSI.SYS standard. *All*
-# console drivers for Intel boxes obey these. Does not assume \E[11m will
-# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
-# diamond and arrow characters under curses.
-klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m),
- blink=\E[5m, bold=\E[1m, invis=\E[8m, rev=\E[7m, rmso=\E[m,
- rmul=\E[m,
- 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,
- use=klone+acs,
-
-# KOI8-R (RFC1489) acs (alternate character set)
-# From: Qing Long <qinglong@Bolizm.ihep.su>, 24 Feb 1996.
-klone+koi8acs|alternate character set for ansi.sys displays with KOI8 charset,
- acsc=+\020\,\021-\036.^_0\215`\004a\237f\234g\232h\222i\220j\205k\203l\202m\204n\212o\213p\216q\0r\217s\214t\206u\207v\210w\211x\201y\230z\231{\267|\274}L~\225,
- rmacs=\E[10m, smacs=\E[11m,
-
-# ANSI.SYS color control. The setab/setaf caps depend on the coincidence
-# between SVr4/XPG4's color numbers and ANSI.SYS attributes. Here are longer
-# but equivalent strings that don't rely on that coincidence:
-# 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,
-# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
-# They match a subset of ECMA-48.
-klone+color|color control for ansi.sys and ISO6429-compatible displays,
- colors#8, ncv#3, pairs#64,
- op=\E[37;40m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-# This is better than klone+color, it doesn't assume white-on-black as the
-# default color pair, but many `ANSI' terminals don't grok the <op> cap.
-ecma+color|color control for ECMA-48-compatible terminals,
- AX,
- colors#8, ncv#3, pairs#64,
- op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
-
-# Attribute control for ECMA-48-compatible terminals
-ecma+sgr|attribute capabilities for true ECMA-48 terminals,
- rmso=\E[27m, rmul=\E[24m, use=klone+sgr,
-
-# For comparison, here are all the capabilities implied by the Intel
-# Binary Compatibility Standard (level 2) that fit within terminfo.
-# For more detail on this rather pathetic standard, see the comments
-# near the end of this file.
-ibcs2|Intel Binary Compatibility Standard prescriptions,
- cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cud=\E[%p1%dB,
- cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
- hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
- indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7,
- smam=\E[?7h, tbc=\E[g, vpa=\E[%i%p1%dd,
-
-#### ANSI/ECMA-48 terminals and terminal emulators
-#
-# See near the end of this file for details on ANSI conformance.
-# Don't mess with these entries! Lots of other entries depend on them!
-#
-# This section lists entries in a least-capable to most-capable order.
-# if you're in doubt about what `ANSI' matches yours, try them in that
-# order and back off from the first that breaks.
-
-# ansi-mr is for ANSI terminals with ONLY relative cursor addressing
-# and more than one page of memory. It uses local motions instead of
-# direct cursor addressing, and makes almost no assumptions. It does
-# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen.
-ansi-mr|mem rel cup ansi,
- am, xon,
- cols#80, lines#24, use=vanilla, use=ansi+erase,
- use=ansi+local1,
-
-# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but
-# beware of screen size problems and memory relative cursor addressing.
-ansi-mini|any ansi terminal with pessimistic assumptions,
- am, xon,
- cols#80, lines#24, use=vanilla, use=ansi+cup,
- use=ansi+erase,
-
-# ansi-mtabs adds relative addressing and minimal tab support
-ansi-mtabs|any ansi terminal with pessimistic assumptions,
- it#8,
- ht=^I, use=ansi+local1, use=ansi-mini,
-
-# ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
-#
-# The following is an entry for the full ANSI 3.64 (1977). It lacks
-# padding, but most terminals using the standard are "fast" enough
-# not to require any -- even at 9600 bps. If you encounter problems,
-# try including the padding specifications.
-#
-# Note: the :as: and :ae: specifications are not implemented here, for
-# the available termcap documentation does not make clear WHICH alternate
-# character set to specify. ANSI 3.64 seems to make allowances for several.
-# Please make the appropriate adjustments to fit your needs -- that is
-# if you will be using alternate character sets.
-#
-# There are very few terminals running the full ANSI 3.64 standard,
-# so I could only test this entry on one verified terminal (Visual 102).
-# I would appreciate the results on other terminals sent to me.
-#
-# Please report comments, changes, and problems to:
-#
-# U.S. MAIL: Hugh Hansard
-# Box: 22830
-# Emory University
-# Atlanta, GA. 30322.
-#
-# USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh.
-#
-# (Added vt100 <rc>,<sc> to quiet a tic warning --esr)
-ansi77|ansi 3.64 standard 1977 version,
- OTbs, am, mir,
- cols#80, it#8, lines#24,
- bel=^G, clear=\E[;H\E[2J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch1=\E[P, dl1=\E[M$<5*/>, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, il1=\E[L$<5*/>, ind=\ED, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOR, kf4=\EOS, khome=\E[H, nel=^M\ED, rc=\E8, ri=\EM,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-# Procomm and some other ANSI emulations don't recognize all of the ANSI-
-# standard capabilities. This entry deletes <cuu>, <cuf>, <cud>, <cub>, and
-# <vpa>/<hpa> capabilities, forcing curses to use repetitions of <cuu1>,
-# <cuf1>, <cud1> and <cub1>. Also deleted <ich> and <ich1>, as QModem up to
-# 5.03 doesn't recognize these. Finally, we delete <rep> and <ri>, which seem
-# to confuse many emulators. On the other hand, we can count on these programs
-# doing <rmacs>/<smacs>/<sgr>. Older versions of this entry featured
-# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under
-# ANSI.SYS influence.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995
-pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode),
- OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=\E[D,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- hts=\EH, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[2g,
- use=klone+sgr-dumb,
-pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode),
- lines#25, use=pcansi-m,
-pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode),
- lines#33, use=pcansi-m,
-pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode),
- lines#43, use=pcansi-m,
-# The color versions. All PC emulators do color...
-pcansi|ibm-pc terminal programs claiming to be ansi,
- use=klone+color, use=pcansi-m,
-pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines,
- lines#25, use=pcansi,
-pcansi-33|pcansi33|ibm-pc terminal programs with 33 lines,
- lines#33, use=pcansi,
-pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines,
- lines#43, use=pcansi,
-
-# ansi-m -- full ANSI X3.64 with ANSI.SYS-compatible attributes, no color.
-# If you want pound signs rather than dollars, replace `B' with `A'
-# in the <s0ds>, <s1ds>, <s2ds>, and <s3ds> capabilities.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
-ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes,
- mc5i,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,
- ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%i%p1%dG, ht=\E[I,
- ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, kbs=^H,
- kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
- rep=%p1%c\E[%p2%{1}%-%db, rin=\E[%p1%dT, s0ds=\E(B,
- s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[2g,
- vpa=\E[%i%p1%dd, use=pcansi-m,
-
-# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in
-# standard terminfo. Assumes ANSI.SYS-compatible attributes and color.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
-ansi|ansi/pc-term compatible with color,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c,
- u9=\E[c, use=ecma+color, use=klone+sgr, use=ansi-m,
-
-# ansi-generic is a vanilla ANSI terminal. This is assumed to implement
-# all the normal ANSI stuff with no extensions. It assumes
-# insert/delete line/char is there, so it won't work with
-# vt100 clones. It assumes video attributes for bold, blink,
-# underline, and reverse, which won't matter much if the terminal
-# can't do some of those. Padding is assumed to be zero, which
-# shouldn't hurt since xon/xoff is assumed.
-ansi-generic|generic ansi standard terminal,
- am, xon,
- cols#80, lines#24, use=vanilla, use=ansi+csr, use=ansi+cup,
- use=ansi+rca, use=ansi+erase, use=ansi+tabs,
- use=ansi+local, use=ansi+idc, use=ansi+idl, use=ansi+rep,
- use=ansi+sgrbold, use=ansi+arrows,
-
-#### DOS ANSI.SYS variants
-#
-# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
-# documentation (except for the keyboard key reassignment feature, which
-# doen't fit the <pfkey> model well). The klone+acs sequences were valid
-# though undocumented. The <pfkey> capability is untested but should work for
-# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
-# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
-ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
- OTbs, am, mir, msgr, xon,
- cols#80, lines#25,
- clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[k, home=\E[H,
- is2=\E[m\E[?7h, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s", rc=\E[u,
- rmam=\E[?7l, sc=\E[s, smam=\E[?7h, u6=\E[%i%d;%dR,
- u7=\E[6n, use=klone+color, use=klone+sgr,
-ansi.sys|ANSI.SYS 3.1 and later versions,
- el=\E[K, use=ansi.sys-old,
-
-#
-# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
-# This should only be used when the terminal emulator cannot redefine the keys.
-# Since redefining keys with ansi.sys also affects PC-DOS programs, the key
-# definitions must be restored. If the terminal emulator is quit while in vi
-# or others using <smkx>/<rmkx>, the keypad will not be defined as per PC-DOS.
-# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix
-# (^U and ^D are already defined for tn3270). The ESC is safe for vi but it
-# does "beep". ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab.
-# Note that <kcub1> is always BS, because PC-dos can tolerate this change.
-# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi.
-# Consequently the End keypad key could not be set (it is relatively safe and
-# actually useful because it sends ^@ O, which beeps and opens a line above).
-ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi,
- is2=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
- rmkx=\E[;71;0;71p\E[;72;0;72p\E[;73;0;73p\E[;77;0;77p\E[;80;0;80p\E[;81;0;81p\E[;82;0;82p\E[;83;0;83p,
- smkx=\E[;71;30p\E[;72;11p\E[;73;27;21p\E[;77;12p\E[;80;10p\E[;81;27;4p\E[;82;27;27;105p\E[;83;127p,
- use=ansi.sys,
-#
-# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer.
-nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS,
- dch1=\E[1P, dl1=\E[1M, ich1=\E[1@, il1=\E[1L,
- is2=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n,
- use=ansi.sys,
-#
-# See ansi.sysk and nansi.sys above.
-nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi,
- dch1=\E[1P, dl1=\E[1M, ich1=\E[1@, il1=\E[1L,
- is2=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p,
- use=ansi.sysk,
-
-#### ANSI console types
-#
-
-#### BeOS
-#
-# BeOS entry for Terminal program Seems to be almost ANSI
-beterm|BeOS Terminal,
- am, eo, mir, msgr, xenl, xon,
- colors#8, cols#80, it#8, lines#25, ncv#5, pairs#64,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
- kend=\E[4~, kf1=\E[11~, kf10=\E[20~, kf11=\E[21~,
- kf12=\E[22~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[16~, kf7=\E[17~, kf8=\E[18~, kf9=\E[19~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z,
- nel=^M^J, op=\E[m, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
- rmkx=\E[?4l, rmso=\E[m, rmul=\E[24m, rs1=\Ec, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[%p1%{40}%+%cm, setf=\E[%p1%{30}%+%cm,
- sgr0=\E[0;10m, smir=\E[4h, smkx=\E[?4h, smso=\E[7m,
- smul=\E[4m, u6=\E[%i%p1%d;%p2%dR, u7=\E[6n,
- vpa=\E[%i%p1%dd,
-
-#### Linux consoles
-#
-
-# This entry is good for the 1.2.13 or later version of the Linux console.
-#
-# ***************************************************************************
-# * *
-# * WARNING: *
-# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
-# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
-# * character. Here are the keymap replacement lines that will set this up: *
-# * *
-# keycode 15 = Tab Tab
-# alt keycode 15 = Meta_Tab
-# shift keycode 15 = F26
-# string F26 ="\033[Z"
-# * *
-# * This has to use a key slot which is unfortunate (any unused one will *
-# * do, F26 is the higher-numbered one). The change ought to be built *
-# * into the kernel tables. *
-# * *
-# ***************************************************************************
-#
-# This entry is good for the 1.2.13 or later version of the Linux console.
-#
-# ***************************************************************************
-# * *
-# * WARNING: *
-# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
-# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
-# * character. Here are the keymap replacement lines that will set this up: *
-# * *
-# keycode 15 = Tab Tab
-# alt keycode 15 = Meta_Tab
-# shift keycode 15 = F26
-# string F26 ="\033[Z"
-# * *
-# * This has to use a key slot which is unfortunate (any unused one will *
-# * do, F26 is the higher-numbered one). The change ought to be built *
-# * into the kernel tables. *
-# * *
-# ***************************************************************************
-#
-# All linux kernels since 1.2.13 (at least) set the screen size
-# themselves; this entry assumes that capability.
-#
-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,
- bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177,
- kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- smir=\E[4h, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR,
- u7=\E[6n, u8=\E[?6c, u9=\E[c, vpa=\E[%i%p1%dd,
- use=klone+sgr, use=ecma+color,
-
-linux-m|Linux console no color,
- colors@, pairs@,
- setab@, setaf@, setb@, setf@, use=linux,
-
-# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
-# and it matters, turn off <ccc>. The %02x escape used to implement this is
-# not supposedly back-portable to older SV curses (although it has worked fine
-# on Solaris for several years) and not supported in ncurses versions before
-# 1.9.9.
-linux-c-nc|linux console with color-change,
- ccc,
- initc=\E]P%p1%x%p2%{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
-linux-c|linux console 1.3.6+ for older ncurses,
- ccc,
- initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{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,
- ich@, ich1@, use=linux,
-
-# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
-# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
-linux-koi8|linux with koi8 alternate character set,
- acsc=+\020\,\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224,
- use=linux, use=klone+koi8acs,
-
-# Another entry for KOI8-r with Qing Long's acsc.
-# (which one better complies with the standard?)
-linux-koi8r|linux with koi8-r alternate character set,
- use=linux, use=klone+koi8acs,
-
-# Entry for the latin1 and latin2 fonts
-linux-lat|linux with latin1 or latin2 alternate character set,
- acsc=+\020\,\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376,
- use=linux,
-
-#### Mach
-#
-
-# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
-mach|Mach Console,
- am, km,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J,
- kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[9, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- kf9=\EOX, khome=\E[H, kich1=\E[@, kll=\E[F, knp=\E[U,
- kpp=\E[V, rev=\E[7m, rmso=\E[0m, rmul=\E[24m, sgr0=\E[0m,
- smso=\E[7m, smul=\E[4m,
-mach-bold|Mach Console with bold instead of underline,
- rmul=\E[0m, smul=\E[1m, use=mach,
-mach-color|Mach Console with ANSI color,
- colors#8, pairs#64,
- dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
-
-#### OSF Unix
-#
-
-# OSF/1 1.1 Snapshot 2
-pmcons|pmconsole|PMAX console,
- am,
- cols#128, lines#57,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ht=^I,
- ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-
-# SCO console and SOS-Syscons console for 386bsd
-# (scoansi: had unknown capabilities
-# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
-# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
-# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
-# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
-# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
-# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
-# on the <smacs>=\E[12m -- esr)
-#
-# 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:
-# F13-F24 are shifted F1-F12
-# F25-F36 are control F1-F12
-# F37-F48 are shift+control F1-F12
-#
-# hpa/vpa work in the console, but not in scoterm:
-# hpa=\E[%p1%dG,
-# vpa=\E[%p1%dd,
-#
-# SCO's terminfo uses
-# kLFT=\E[d,
-# kRIT=\E[c,
-# which do not work (console or scoterm).
-#
-# Console documents only 3 attributes can be set with SGR (so we don't use sgr).
-scoansi-old|SCO Extended ANSI standard crt (5.0.5),
- OTbs, am, bce, eo, xon,
- colors#8, cols#80, it#8, lines#25, pairs#64,
- acsc=-\230.\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,
- kf27=\E[m, kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p,
- kf31=\E[q, kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u,
- kf36=\E[v, kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P,
- kf40=\E[z, kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[],
- kf45=\E[\^, kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q,
- kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
- kich1=\E[L, knp=\E[G, kpp=\E[I, op=\E[0;37;40m, rc=\E8,
- rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m,
- rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sc=\E7,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0;10m,
- smacs=\E[12m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
-scoansi-new|SCO Extended ANSI standard crt (5.0.6),
- km,
- civis=\E[=0c, cnorm=\E[=1c, csr=\E[%i%p1%d;%p2%dr,
- cvvis=\E[=2c, mgc=\E[=r, oc=\E[51m, op=\E[50m,
- rep=\E[%p1%d;%p2%db, rmm=\E[=11L,
- sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
- smgb=\E[=1;0m, smgbp=\E[=1;%i%p1%dm,
- smglp=\E[=2;%i%p1%dm, smgr=\E[=3;0m,
- smgrp=\E[=3;%i%p1%dm, smgt=\E[=0;0m,
- smgtp=\E[=0;%i%p1%dm, smm=\E[=10L,
- wind=\E[%i%p1%d;%p2%d;%i%p3%d;%p4%dr,
- use=scoansi-old,
-# make this easy to change...
-scoansi|SCO Extended ANSI standard crt,
- use=scoansi-old,
-
-# This actually describes the generic SVr4 display driver for Intel boxes.
-# The <dim=\E[2m> isn't documented and therefore may not be reliable.
-# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
-att6386|at386|386at|AT&T WGS 6386 console,
- am, bw, eo, xon,
- cols#80, it#8, lines#25,
- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[=C,
- clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=\E[S,
- indn=\E[%p1%dS, invis=\E[9m, is2=\E[0;10;39m, kbs=^H,
- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[P, kend=\E[Y, kf1=\EOP, kf10=\EOY, kf11=\EOZ,
- kf12=\EOA, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, kf9=\EOX, khome=\E[H, kich1=\E[@,
- knp=\E[U, kpp=\E[V, krmir=\E0, nel=\r\E[S, rc=\E8, rev=\E[7m,
- ri=\E[T, rin=\E[%p1%dT, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
- sc=\E7,
- sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
- sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
- tbc=\E[2g, vpa=\E[%i%p1%dd, use=klone+color,
-# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
-pc6300plus|AT&T 6300 plus,
- OTbs, am, xon,
- cols#80, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[=C,
- clear=\E[2J\E[H, cnorm=\E[=1C, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
- dch1=\E[1P, dim=\E[2m, dl1=\E[1M, ed=\E[0J, el=\E[0K,
- home=\E[H, hts=\EH, ich1=\E[1@, il1=\E[1L, ind=^J,
- invis=\E[9m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\EOu, kf2=\EOd, kf3=\EOe,
- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\EOk,
- nel=^M^J, rev=\E[7m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
-#
-# I have a UNIX PC which I use as a terminal attached to my Linux PC.
-# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
-# is broken. All the special key sequences are broken, making it unusable
-# with Emacs. The problem stems from the following:
-#
-# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
-# keypad!), loadable fonts, and strange highlighting modes ("dithered"
-# half-intensity, "smeared" bold, and real strike-out, for example.) It also
-# uses resizable terminal windows, but the bundled terminal program always
-# uses an 80x24 window (and doesn't support seem to support a 132-column
-# mode.)
-#
-# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
-# library which was a superset of SVr3.5 curses (called tam, for "terminal
-# access method".) tam includes support for real, overlapping windows,
-# onscreen function key labels, and bitmap graphics. But since the primary
-# user interface on the UNIX PC was a GUI program (ua, for "user
-# assistant",) and remote administration was considered important for the
-# machine, tam also supported VT100-compatible terminals attached to the
-# serial port or used across the StarLan network. To simulate the extra keys
-# not present on a VT100, users could press ESC and a two-letter sequence,
-# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
-# however, were not the same as those sent by the actual Undo key. The
-# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
-# (If you're interested in adding some of the tam calls to ncurses, btw, I
-# have the full documentation and several programs which use tam. It also
-# used an extended terminfo format to describe key sequences, special
-# highlighting modes, etc.)
-#
-# KEYS: This means that ncurses would quite painful on the UNIX PC, since
-# there are two sequences for every key-modifier combination (local keyboard
-# sequence and remote "VT100" sequence.) But I doubt many people are trying
-# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
-# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
-# seem to have been built from the manual describing the VT100 sequences.
-# This means it doesn't work for a real live UNIX PC.
-#
-# FONTS: The UNIX PC also has a strange interpretation of "alternate
-# character set". Rather than the VT100 graphics you might expect, it allows
-# up to 8 custom fonts to be loaded at any given time. This means that
-# programs expecting VT100 graphics will usually be disappointed. For this
-# reason I have disabled the smacs/rmacs sequences, but they could easily be
-# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
-# manpage), should you wish to do so:
-#
-# SGR10 - Select font 0 - ESC [ 10 m or SO
-# SGR11 - Select font 1 - ESC [ 11 m or SI
-# SGR12 - Select font 2 - ESC [ 12 m
-# ... (etc.)
-# SGR17 - Select font 7 - ESC [ 17 m
-#
-# Graphics for line drawing are not reliably found at *any* character
-# location because the UNIX PC has dynamically reloadable fonts. I use font
-# 0 for regular text and font 1 for italics, but this is by no means
-# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
-#
-# MISC: The cursor visible/cursor invisible sequences were swapped in the
-# distributed terminfo.
-#
-# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
-# the UNIX PC terminfo entry. The modified version works great with Lynx,
-# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
-# attached by serial cable. In Emacs, even the Undo key works, and many
-# applications can now use the F1-F8 keys.
-#
-# esr's notes:
-# Terminfo entry for the AT&T Unix PC 7300
-# from escape(7) in Unix PC 7300 Manual.
-# Somewhat similar to a vt100-am (but different enough
-# to redo this from scratch.)
-#
-# /***************************************************************
-# *
-# * FONT LOADING PROGRAM FOR THE UNIX PC
-# *
-# * This routine loads a font defined in the file ALTFONT
-# * into font memory slot #1. Once the font has been loaded,
-# * it can be used as an alternative character set.
-# *
-# * The call to ioctl with the argument WIOCLFONT is the key
-# * to this routine. For more information, see window(7) in
-# * the PC 7300 documentation.
-# ***************************************************************/
-# #include <string.h> /* needed for strcpy call */
-# #include <sys/window.h> /* needed for ioctl call */
-# #define FNSIZE 60 /* font name size */
-# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */
-# /*
-# * The file /usr/lib/wfont/special.8.ft comes with the
-# * standard PC software. It defines a graphics character set
-# * similar to that of the Teletype 5425 terminal. To view
-# * this or other fonts in /usr/lib/wfont, use the command
-# * cfont <filename>. For further information on fonts see
-# * cfont(1) in the PC 7300 documentation.
-# */
-#
-# struct altfdata /* structure for alt font data */
-# {
-# short altf_slot; /* memory slot number */
-# char altf_name[FNSIZE]; /* font name (file name) */
-# };
-# ldfont()
-# {
-# int wd; /* window in which altfont will be */
-# struct altfdata altf;
-# altf.altf_slot=1;
-# strcpy(altf.altf_name,ALTFONT);
-# for (wd =1; wd < 12; wd++) {
-# ioctl(wd, WIOCLFONT,&altf);
-# }
-# }
-#
-# (att7300: added <civis>/<cnorm>/<ich1>/<invis> from the BSDI entry,
-# they're confirmed by the man page for the System V display---esr)
-#
-att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300,
- am, xon,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[9m, bold=\E[1m, cbt=\E^I, civis=\E[=1C,
- clear=\E[2J\E[H, cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
- ed=\E[0J, el=\E[0K, home=\E[H, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J, invis=\E[9m, is1=\017\E[=1w, kBEG=\ENB,
- kCAN=\EOW, kCPY=\END, kCRT=\EON, kDC=\ENF, kDL=\ENE,
- kEND=\ENN, kEOL=\EOA, kFND=\EOX, kHLP=\EOM, kHOM=\ENM,
- kIC=\ENJ, kLFT=\ENK, kMOV=\ENC, kNXT=\ENH, kOPT=\EOR,
- kPRV=\ENG, kRDO=\EOT, kRIT=\ENL, kRPL=\EOY, kSAV=\EOO,
- kUND=\EOS, kbeg=\ENb, kbs=^H, kcan=\EOw, kcbt=\E[Z,
- kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\ENf,
- ked=\E[J, kel=\EOa, kend=\E0, kext=\EOk, kf1=\EOc, kf2=\EOd,
- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
- kfnd=\EOx, khlp=\EOm, khome=\E[H, kich1=\ENj, kind=\E[B,
- kmov=\ENc, kmrk=\ENi, knp=\E[U, knxt=\ENh, kopn=\EOv,
- kopt=\EOr, kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt,
- kref=\EOb, krfr=\ENa, kri=\E[A, krpl=\EOy, krst=\EOB,
- ksav=\EOo, kslt=\ENI, kund=\EOs, nel=\EE, rev=\E[7m, ri=\EM,
- rmso=\E[m, rmul=\E[m, sgr0=\E[0;10m, smso=\E[7m,
- smul=\E[4m,
-
-# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
-# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes
-# for the application keypad mode. We have added iris-ansi-ap rather than
-# change the original to keypad mode.
-#
-# (iris-ansi: added rmam/smam based on init string -- esr)
-#
-# This entry, and those derived from it, is used in xwsh (also known as
-# winterm). Some capabilities that do not fit into the terminfo model
-# include the shift- and control-functionkeys:
-#
-# F1-F12 generate different codes when shift or control modifiers are used.
-# For example:
-# F1 \E[001q
-# shift F1 \E[013q
-# control-F1 \E[025q
-#
-# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
-# \EOP to \EOS. The shifted and control modifiers still do the same thing.
-#
-# The cursor keys also have different codes:
-# control-up \E[162q
-# control-down \E[165q
-# control-left \E[159q
-# control-right \E[168q
-#
-# shift-up \E[161q
-# shift-down \E[164q
-# shift-left \E[158q
-# shift-right \E[167q
-#
-# control-tab \[072q
-#
-iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100),
- am,
- cols#80, it#8, lines#40,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J,
- cnorm=\E[9/y\E[12/y\E[=6l, cr=^M, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, cvvis=\E[10/y\E[=1h\E[=2l\E[=6h,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8, kDC=\E[P,
- kEND=\E[147q, kHOM=\E[143q, kLFT=\E[158q, kPRT=\E[210q,
- kRIT=\E[167q, kSPD=\E[218q, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
- kend=\E[146q, kent=^M, kf1=\E[001q, kf10=\E[010q,
- kf11=\E[011q, kf12=\E[012q, kf2=\E[002q, kf3=\E[003q,
- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
- kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
- knp=\E[154q, kpp=\E[150q, kprt=\E[209q, krmir=\E[146q,
- kspd=\E[217q, nel=\EE, pfkey=\EP101;%p1%d.y%p2%s\E\\,
- rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[1;7m, smul=\E[4m,
- tbc=\E[3g,
-iris-ansi-ap|IRIS ANSI in application-keypad mode,
- is2=\E[?1l\E=\E[?7h, kent=\EOM, kf10=\E[010q,
- kf11=\E[011q, kf12=\E[012q, kf9=\E[009q, use=iris-ansi,
-
-# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
-# (T.Dickey 98/1/24)
-iris-color|xwsh|IRIX ANSI with color,
- ncv#33,
- csr=\E[%i%p1%d;%p2%dr, dch=\E[%p1%dP, dim=\E[2m,
- ech=\E[%p1%dX, ich=\E[%p1%d@, rc=\E8, ritm=\E[23m,
- rmul=\E[24m, rs1=\Ec,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sitm=\E[3m, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- use=klone+color, use=iris-ansi-ap,
-
-# The following is a version of the ibm-pc entry distributed with PC/IX,
-# (Interactive Systems' System 3 for the Big Blue), modified by Richard
-# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original,
-# (the former is untrue, and the latter failed under UCB/man); standout and
-# underline modes have been added. Note: this entry describes the "native"
-# capabilities of the PC monochrome display, without ANY emulation; most
-# communications packages (but NOT PC/IX connect) do some kind of emulation.
-pcix|PC/IX console,
- am, bw, eo,
- cols#80, lines#24,
- clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m,
-
-# (ibmpcx: this entry used to be known as ibmx.
-# It formerly included the following extension capabilities:
-# :GC=b:GL=v:GR=t:RT=^J:\
-# :GH=\E[196g:GV=\E[179g:\
-# :GU=\E[193g:GD=\E[194g:\
-# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
-# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
-# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
-# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
-# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match
-# what was there before. -- esr)
-ibmpcx|xenix|ibmx|IBM PC xenix console display,
- OTbs, am, msgr,
- cols#80, lines#25,
- clear=^L, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ich1=\E[@, il1=\E[L, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[d,
- kf1=\E[K, kf2=\E[L, kf3=\E[M, kf4=\E[N, khome=\E[Y, knp=\E[e,
- kpp=\E[Z, use=klone+acs, use=klone+sgr,
-
-#### QNX
-#
-
-# QNX 4.0 Console
-# Michael's original version of this entry had <am@>, <smcup=\Ei>,
-# <rmcup=\Eh\ER>; this was so terminfo applications could write the lower
-# right corner without triggering a scroll. The ncurses terminfo library can
-# handle this case with the <ich1> capability, and prefers <am> for better
-# optimization. Bug: The <op> capability resets attributes.
-# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
-# (removed: <sgr=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,>)
-qnx|qnx4|qnx console,
- daisy, km, mir, msgr, xhpa, xt,
- colors#8, cols#80, it#4, lines#25, ncv#3, pairs#8,
- acsc=O\333a\261j\331k\277l\332m\300n\305o\337q\304s\334t\303u\264v\301w\302x\263,
- bel=^G, blink=\E{, bold=\E<, civis=\Ey0, clear=\EH\EJ,
- cnorm=\Ey1, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ey2,
- dch1=\Ef, dl1=\EF, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\Ee,
- il1=\EE, ind=^J, kBEG=\377\356, kCAN=\377\263,
- kCMD=\377\267, kCPY=\377\363, kCRT=\377\364,
- kDL=\377\366, kEND=\377\301, kEOL=\377\311,
- kEXT=\377\367, kFND=\377\370, kHLP=\377\371,
- kHOM=\377\260, kIC=\377\340, kLFT=\377\264,
- kMOV=\377\306, kMSG=\377\304, kNXT=\377\272,
- kOPT=\377\372, kPRT=\377\275, kPRV=\377\262,
- kRDO=\377\315, kRES=\377\374, kRIT=\377\266,
- kRPL=\377\373, kSAV=\377\307, kSPD=\377\303,
- kUND=\377\337, kbeg=\377\300, kcan=\377\243, kcbt=\377\0,
- kclo=\377\343, kclr=\377\341, kcmd=\377\245,
- kcpy=\377\265, kcrt=\377\305, kctab=\377\237,
- kcub1=\377\244, kcud1=\377\251, kcuf1=\377\246,
- kcuu1=\377\241, kdch1=\377\254, kdl1=\377\274,
- ked=\377\314, kel=\377\310, kend=\377\250, kent=\377\320,
- kext=\377\270, kf1=\377\201, kf10=\377\212,
- kf11=\377\256, kf12=\377\257, kf13=\377\213,
- kf14=\377\214, kf15=\377\215, kf16=\377\216,
- kf17=\377\217, kf18=\377\220, kf19=\377\221,
- kf2=\377\202, kf20=\377\222, kf21=\377\223,
- kf22=\377\224, kf23=\377\333, kf24=\377\334,
- kf25=\377\225, kf26=\377\226, kf27=\377\227,
- kf28=\377\230, kf29=\377\231, kf3=\377\203,
- kf30=\377\232, kf31=\377\233, kf32=\377\234,
- kf33=\377\235, kf34=\377\236, kf35=\377\276,
- kf36=\377\277, kf37=\377\321, kf38=\377\322,
- kf39=\377\323, kf4=\377\204, kf40=\377\324,
- kf41=\377\325, kf42=\377\326, kf43=\377\327,
- kf44=\377\330, kf45=\377\331, kf46=\377\332,
- kf47=\377\316, kf48=\377\317, kf5=\377\205, kf6=\377\206,
- kf7=\377\207, kf8=\377\210, kf9=\377\211, kfnd=\377\346,
- khlp=\377\350, khome=\377\240, khts=\377\342,
- kich1=\377\253, kil1=\377\273, kind=\377\261,
- kmov=\377\351, kmrk=\377\355, kmsg=\377\345,
- knp=\377\252, knxt=\377\312, kopn=\377\357,
- kopt=\377\353, kpp=\377\242, kprt=\377\255,
- kprv=\377\302, krdo=\377\336, kref=\377\354,
- kres=\377\360, krfr=\377\347, kri=\377\271,
- krmir=\377\313, krpl=\377\362, krst=\377\352,
- ksav=\377\361, kslt=\377\247, kspd=\377\335,
- ktbc=\377\344, kund=\377\365, mvpa=\E!%p1%02d, op=\ER,
- rep=\Eg%p2%{32}%+%c%p1%c, rev=\E(, ri=\EI, rmcup=\Eh\ER,
- rmso=\E), rmul=\E], rs1=\ER, setb=\E@%p1%Pb%gb%gf%d%d,
- setf=\E@%p1%Pf%gb%gf%d%d, sgr0=\E}\E]\E>\E), smcup=\Ei,
- smso=\E(, smul=\E[,
-#
-#
-qnxt|qnxt4|QNX4 terminal,
- crxm, use=qnx4,
-#
-qnxm|QNX4 with mouse events,
- maddr#1,
- chr=\E/, cvr=\E", is1=\E/0t, mcub=\E/>1h, mcub1=\E/>7h,
- mcud=\E/>1h, mcud1=\E/>1l\E/>9h, mcuf=\E/>1h\E/>9l,
- mcuf1=\E/>7l, mcuu=\E/>6h, mcuu1=\E/>6l, rmicm=\E/>2l,
- smicm=\E/>2h, use=qnx4,
-#
-qnxw|QNX4 windows,
- xvpa, use=qnxm,
-#
-# Monochrome QNX4 terminal or console. Setting this terminal type will
-# allow an application running on a color console to behave as if it
-# were a monochrome terminal. Output will be through stdout instead of
-# console writes because the term routines will recognize that the
-# terminal name starts with 'qnxt'.
-#
-qnxtmono|Monochrome QNX4 terminal or console,
- colors@, pairs@,
- scp@, use=qnx4,
-
-# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
-# (esr: commented out <scp> and <rmcup> to avoid warnings.)
-# (TD: derive from original qnx4 entry)
-qnxt2|qnx 2.15 serial terminal,
- am,
- civis@, cnorm@, cvvis@, dch1@, ich1@, kRES@, kRPL@, kUND@, kspd@,
- rep@, rmcup@, rmso=\E>, setb@, setf@, smcup@, smso=\E<, use=qnx4,
-
-# QNX ANSI terminal definition
-qansi-g|QNX ANSI,
- am, eslok, hs, xon,
- colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~Oa,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, dsl=\E[r, ech=\E[%p1%dX, ed=\E[J,
- el=\E[K, el1=\E[1K\E[X, flash=\E[?5h$<200>\E[?5l,
- fsl=\E[?6h\E8, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L,
- ind=\E[S, indn=\E[%p1%dS, invis=\E[9m,
- is2=\E>\E[?1l\E[?7h\E[0;10;39;49m, is3=\E(B\E)0,
- kBEG=\ENn, kCAN=\E[s, kCMD=\E[t, kCPY=\ENs, kCRT=\ENt,
- kDL=\ENv, kEXT=\ENw, kFND=\ENx, kHLP=\ENy, kHOM=\E[h,
- kLFT=\E[d, kNXT=\E[u, kOPT=\ENz, kPRV=\E[v, kRIT=\E[c,
- kbs=^H, kcan=\E[S, kcbt=\E[Z, kclo=\ENc, kclr=\ENa,
- kcmd=\E[G, kcpy=\E[g, kctab=\E[z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[p, kend=\E[Y,
- kext=\E[y, kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA,
- kf13=\EOp, kf14=\EOq, kf15=\EOr, kf16=\EOs, kf17=\EOt,
- kf18=\EOu, kf19=\EOv, kf2=\EOQ, kf20=\EOw, kf21=\EOx,
- kf22=\EOy, kf23=\EOz, kf24=\EOa, kf25=\E[1~, kf26=\E[2~,
- kf27=\E[3~, kf28=\E[4~, kf29=\E[5~, kf3=\EOR, kf30=\E[6~,
- kf31=\E[7~, kf32=\E[8~, kf33=\E[9~, kf34=\E[10~,
- kf35=\E[11~, kf36=\E[12~, kf37=\E[17~, kf38=\E[18~,
- kf39=\E[19~, kf4=\EOS, kf40=\E[20~, kf41=\E[21~,
- kf42=\E[22~, kf43=\E[23~, kf44=\E[24~, kf45=\E[25~,
- kf46=\E[26~, kf47=\E[27~, kf48=\E[28~, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, kf9=\EOX, kfnd=\ENf, khlp=\ENh,
- khome=\E[H, khts=\ENb, kich1=\E[@, kil1=\E[`, kind=\E[a,
- kmov=\ENi, kmrk=\ENm, kmsg=\ENe, knp=\E[U, kopn=\ENo,
- kopt=\ENk, kpp=\E[V, kref=\ENl, kres=\ENp, krfr=\ENg,
- kri=\E[b, krpl=\ENr, krst=\ENj, ksav=\ENq, kslt=\E[T,
- ktbc=\ENd, kund=\ENu, ll=\E[99H, nel=\EE, op=\E[39;49m,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\E[T,
- rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmso=\E[27m,
- rmul=\E[24m, rs1=\017\E[?7h\E[0;39;49m$<2>\E>\E[?1l,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
- smul=\E[4m, tbc=\E[2g,
- tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
-#
-qansi|QNX ansi with console writes,
- daisy, xhpa, use=qansi-g,
-#
-qansi-t|QNX ansi without console writes,
- crxm, use=qansi,
-#
-qansi-m|QNX ansi with mouse,
- maddr#1,
- chr=\E[, cvr=\E], is1=\E[0t, mcub=\E[>1h, mcub1=\E[>7h,
- mcud=\E[>1h, mcud1=\E[>1l\E[>9h, mcuf=\E[>1h\E[>9l,
- mcuf1=\E[>7l, mcuu=\E[>6h, mcuu1=\E[>6l, rmicm=\E[>2l,
- smicm=\E[>2h, use=qansi,
-#
-qansi-w|QNX ansi for windows,
- xvpa, use=qansi-m,
-
-#### NetBSD consoles
-#
-# pcvt termcap database entries (corresponding to release 3.31)
-# Author's last edit-date: [Fri Sep 15 20:29:10 1995]
-#
-# (For the terminfo master file, I translated these into terminfo syntax.
-# Then I dropped all the pseudo-HP entries. we don't want and can't use
-# the :Xs: flag. Then I split :is: into a size-independent <is1> and a
-# size-dependent <is2>. Finally, I added <rmam>/<smam> -- esr)
-
-# NOTE: <ich1> has been taken out of this entry. for reference, it should
-# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
-# (esr: added <civis> and <cnorm> to resolve NetBSD Problem Report #4583)
-pcvtXX|pcvt vt200 emulator (DEC VT220),
- am, km, mir, msgr, xenl,
- it#8, vt#3,
- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS,
- is1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=\177,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
- khome=\E[1~, kich1=\E[2~, kll=\E[4~, knp=\E[6~, kpp=\E[5~,
- nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100,
- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
-# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
-# 50 lines entries; 80 columns
-pcvt25|dec vt220 emulation with 25 lines,
- cols#80, lines#25,
- is2=\E[1;25r\E[25;1H, use=pcvtXX,
-pcvt28|dec vt220 emulation with 28 lines,
- cols#80, lines#28,
- is2=\E[1;28r\E[28;1H, use=pcvtXX,
-pcvt35|dec vt220 emulation with 35 lines,
- cols#80, lines#35,
- is2=\E[1;35r\E[35;1H, use=pcvtXX,
-pcvt40|dec vt220 emulation with 40 lines,
- cols#80, lines#40,
- is2=\E[1;40r\E[40;1H, use=pcvtXX,
-pcvt43|dec vt220 emulation with 43 lines,
- cols#80, lines#43,
- is2=\E[1;43r\E[43;1H, use=pcvtXX,
-pcvt50|dec vt220 emulation with 50 lines,
- cols#80, lines#50,
- is2=\E[1;50r\E[50;1H, use=pcvtXX,
-
-# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
-# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
-# 50 lines entries; 132 columns
-pcvt25w|dec vt220 emulation with 25 lines and 132 cols,
- cols#132, lines#25,
- is2=\E[1;25r\E[25;1H, use=pcvtXX,
-pcvt28w|dec vt220 emulation with 28 lines and 132 cols,
- cols#132, lines#28,
- is2=\E[1;28r\E[28;1H, use=pcvtXX,
-pcvt35w|dec vt220 emulation with 35 lines and 132 cols,
- cols#132, lines#35,
- is2=\E[1;35r\E[35;1H, use=pcvtXX,
-pcvt40w|dec vt220 emulation with 40 lines and 132 cols,
- cols#132, lines#40,
- is2=\E[1;40r\E[40;1H, use=pcvtXX,
-pcvt43w|dec vt220 emulation with 43 lines and 132 cols,
- cols#132, lines#43,
- is2=\E[1;43r\E[43;1H, use=pcvtXX,
-pcvt50w|dec vt220 emulation with 50 lines and 132 cols,
- cols#132, lines#50,
- is2=\E[1;50r\E[50;1H, use=pcvtXX,
-
-# OpenBSD implements a color variation
-pcvt25-color|dec vt220 emulation with 25 lines and color,
- cols#80, lines#25,
- is2=\E[1;25r\E[25;1H, kf1=\EOP, kf10=\E[29~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, use=pcvtXX,
- use=ecma+color,
-
-# Terminfo entries to enable the use of the ncurses library in colour on a
-# NetBSD-arm32 console (only tested on a RiscPC).
-# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
-# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
-# typo in invis - TD
-arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480),
- am, bce, msgr, xenl, xon,
- cols#80, it#8, lines#30,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J,
- invis=\E[8m$<2>, ka1=\E[q, ka3=\E[s, kb2=\E[r, kbs=^H,
- kc1=\E[p, kc3=\E[n, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kent=\E[M, kf0=\E[y, kf1=\E[P, kf10=\E[x,
- kf2=\E[Q, kf3=\E[R, kf4=\E[S, kf5=\E[t, kf6=\E[u, kf7=\E[v,
- kf8=\E[l, kf9=\E[w, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
- rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g, use=ecma+sgr,
- use=klone+color,
-
-arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768),
- cols#132, lines#50, use=arm100,
-
-# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
-# manufactured by Sharp for the Japenese market.
-# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
-x68k|x68k-ite|NetBSD/x68k ITE,
- cols#96, lines#32,
- kclr=\E[9~, khlp=\E[28~, use=vt220,
-
-# <tv@pobox.com>:
-# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
-#
-# (still unfinished, but good enough so far.)
-ofcons,
- bw,
- cols#80, lines#30,
- bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
- cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
- cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
- dim=\2332m, dl=\233%p1%dM, dl1=\233M, ed=\233J, el=\233K,
- flash=^G, ht=^I, ich=\233%p1%d@, ich1=\233@, il=\233%p1%dL,
- il1=\233L, ind=^J, invis=\2338m, kbs=^H, kcub1=\233D,
- kcud1=\233B, kcuf1=\233C, kcuu1=\233A, kdch1=\233P,
- kf1=\2330P, kf10=\2330M, kf2=\2330Q, kf3=\2330W,
- kf4=\2330x, kf5=\2330t, kf6=\2330u, kf7=\2330q, kf8=\2330r,
- kf9=\2330p, knp=\233/, kpp=\233?, nel=^M^J, rev=\2337m,
- rmso=\2330m, rmul=\2330m, sgr0=\2330m,
-
-# NetBSD "wscons" emulator in vt220 mode
-# These are micro-minimal and probably need to be redone for real
-# after the manner of the pcvt entries.
-wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
- cols#80, lines#25, use=vt220,
-
-wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
- km,
- cols#80, lines#25, use=vt220,
-
-# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
-# DECstation/pmax.
-rcons|BSD rasterconsole,
- use=sun-il,
-# Color version of above. Color currenly only provided by NetBSD.
-rcons-color|BSD rasterconsole with ANSI color,
- bce,
- colors#8, pairs#64,
- op=\E[m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=rcons,
-
-# mgterm -- MGL/MGL2, MobileGear Graphic Library
-# for PocketBSD,PocketLinux,NetBSD/{hpcmips,mac68k}
-# -- the setf/setb are probably incorrect, more likely setaf/setab -TD
-# -- compare with cons25w
-mgterm,
- OTbs, OTpt, am, bce, bw, eo, km, msgr, npc,
- colors#8, cols#80, it#8, lines#18, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf2=\E[N,
- kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
- kf9=\E[U, khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I,
- nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT,
- rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7, setb=\E[4%p1%dm,
- setf=\E[3%p1%dm, sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
-
-#### FreeBSD console entries
-#
-# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
-# Andrey Chernov maintains the FreeBSD termcap distributions.
-#
-# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade
-# or comment out the :cb: capability in the console entry.
-#
-# Alexander Lukyanov reports:
-# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
-# Now el1 clears not only to the line beginning, but also a large chunk
-# of previous line. But there is another bug - ech does not work at all.
-#
-
-# for syscons
-# common entry without semigraphics
-# Bug: The <op> capability resets attributes.
-# Bug? The ech and el1 attributes appear to move the cursor in some cases; for
-# instance el1 does if the cursor is moved to the right margin first. Removed
-# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K)
-#
-# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
-# Note that this disables standout with color.
-#
-# The emulator sends difference strings based on shift- and control-keys,
-# like scoansi:
-# F13-F24 are shifted F1-F12
-# F25-F36 are control F1-F12
-# F37-F48 are shift+control F1-F12
-cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
- am, bce, bw, eo, msgr, npc,
- colors#8, cols#80, it#8, lines#25, ncv#21, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cnorm=\E[=0C, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
- cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, kb2=\E[E,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V,
- kf11=\E[W, kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a,
- kf16=\E[b, kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N,
- kf20=\E[f, kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j,
- kf25=\E[k, kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o,
- kf3=\E[O, kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s,
- kf34=\E[t, kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x,
- kf39=\E[y, kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[,
- kf43=\E[\\, kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`,
- kf48=\E[{, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
- khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I, nel=\E[E,
- op=\E[x, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m,
- rs2=\E[x\E[m\Ec, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
-cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
- acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
- use=cons25w,
-cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
- colors@, pairs@,
- bold@, dim@, op@, rmul=\E[m, setab@, setaf@, smul=\E[4m,
- use=cons25,
-cons30|ansi80x30|freebsd console (30-line ansi mode),
- lines#30, use=cons25,
-cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
- lines#30, use=cons25-m,
-cons43|ansi80x43|freebsd console (43-line ansi mode),
- lines#43, use=cons25,
-cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode),
- lines#43, use=cons25-m,
-cons50|ansil|ansi80x50|freebsd console (50-line ansi mode),
- lines#50, use=cons25,
-cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode),
- lines#50, use=cons25-m,
-cons60|ansi80x60|freebsd console (60-line ansi mode),
- lines#60, use=cons25,
-cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode),
- lines#60, use=cons25-m,
-cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic,
- acsc=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225,
- use=cons25w,
-cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
- colors@, pairs@,
- op@, rmul=\E[m, setab@, setaf@, smul=\E[4m, use=cons25r,
-cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
- lines#50, use=cons25r,
-cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
- lines#50, use=cons25r-m,
-cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines),
- lines#60, use=cons25r,
-cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono),
- lines#60, use=cons25r-m,
-# ISO 8859-1 FreeBSD console
-cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars,
- acsc=+\253\,\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237,
- use=cons25w,
-cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
- colors@, pairs@,
- bold@, dim@, op@, rmul=\E[m, setab@, setaf@, smul=\E[4m,
- use=cons25l1,
-cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
- lines#50, use=cons25l1,
-cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
- lines#50, use=cons25l1-m,
-cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines),
- lines#60, use=cons25l1,
-cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono),
- lines#60, use=cons25l1-m,
-
-#### 386BSD and BSD/OS Consoles
-#
-
-# This was the original 386BSD console entry (I think).
-# Some places it's named oldpc3|oldibmpc3.
-# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
-origpc3|origibmpc3|IBM PC 386BSD Console,
- OTbs, am, bw, eo, xon,
- cols#80, lines#25,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bold=\E[7m, clear=\Ec, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ind=\E[S, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, khome=\E[Y, ri=\E[T, rmso=\E[1;0x\E[2;7x,
- rmul=\E[1;0x\E[2;7x, sgr0=\E[m\E[1;0x\E[2;7x,
- smso=\E[1;7x\E[2;0x, smul=\E[1;7x\E[2;0x,
-
-# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
-oldpc3|oldibmpc3|old IBM PC BSD/386 Console,
- OTbs, km,
- lines#25,
- bel=^G, bold=\E[=15F, cr=^M, cud1=^J, dim=\E[=8F, dl1=\E[M,
- ht=^I, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L, kll=\E[F,
- knp=\E[G, kpp=\E[I, nel=^M^J, sgr0=\E[=R,
-
-# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
-# Note, the emulator supports many of the additional console features
-# listed in the iBCS2 (e.g. character-set selection) though not all
-# are described here. This entry really ought to be upgraded.
-# Also note, the console will also work with fewer lines after doing
-# "stty rows NN", e.g. to use 24 lines.
-# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
-# Bug: The <op> capability resets attributes.
-bsdos-pc|IBM PC BSD/OS Console,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- use=bsdos-pc-nobold,
-
-bsdos-pc-nobold|BSD/OS PC console w/o bold,
- use=klone+color, use=bsdos-pc-m,
-
-bsdos-pc-m|bsdos-pc-mono|BSD/OS PC console mono,
- OTbs, am, eo, km, xon,
- cols#80, it#8, lines#25,
- bel=^G, clear=\Ec, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kich1=\E[L,
- kll=\E[F, knp=\E[G, kpp=\E[I, nel=^M^J, rc=\E8, sc=\E7,
- sgr=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;,
- use=klone+sgr,
-
-# Old names for BSD/OS PC console used in releases before 4.1.
-pc3|BSD/OS on the PC Console,
- use=bsdos-pc-nobold,
-ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline,
- use=bsdos-pc,
-
-# BSD/OS on the SPARC
-bsdos-sparc|Sun SPARC BSD/OS Console,
- use=sun,
-
-# BSD/OS on the PowerPC
-bsdos-ppc|PowerPC BSD/OS Console,
- use=bsdos-pc,
-
-#### DEC VT52
-# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
-vt52|dec vt52,
- OTbs,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-
-#### DEC VT100 and compatibles
-#
-# DEC terminals from the vt100 forward are collected here. Older DEC terminals
-# and micro consoles can be found in the `obsolete' section. More details on
-# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
-# found near the end of this file.
-#
-# Except where noted, these entries are DEC's official terminfos.
-# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
-# Engineering for more information. Updated terminfos and termcaps
-# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
-#
-# In October 1995 DEC sold its terminals business, including the VT and Dorio
-# line and trademark, to SunRiver Data Systems. SunRiver has since changed
-# its name to Boundless Technologies; see http://www.boundless.com.
-#
-
-# NOTE: Any VT100 emulation, whether in hardware or software, almost
-# certainly includes what DEC called the `Level 1 editing extension' codes;
-# only the very oldest VT100s lacked these and there probably aren't any of
-# those left alive. To capture these, use one of the VT102 entries.
-#
-# Note that the <xenl> glitch in vt100 is not quite the same as on the Concept,
-# since the cursor is left in a different position while in the
-# weird state (concept at beginning of next line, vt100 at end
-# of this line) so all versions of vi before 3.7 don't handle
-# <xenl> right on vt100. The correct way to handle <xenl> is when
-# you output the char in column 80, immediately output CR LF
-# and then assume you are in column 1 of the next line. If <xenl>
-# is on, am should be on too.
-#
-# I assume you have smooth scroll off or are at a slow enough baud
-# rate that it doesn't matter (1200? or less). Also this assumes
-# that you set auto-nl to "on", if you set it off use vt100-nam
-# below.
-#
-# The padding requirements listed here are guesses. It is strongly
-# recommended that xon/xoff be enabled, as this is assumed here.
-#
-# The vt100 uses <rs2> and <rf> rather than <is2>/<tbc>/<hts> because the
-# tab settings are in non-volatile memory and don't need to be
-# reset upon login. Also setting the number of columns glitches
-# the screen annoyingly. You can type "reset" to get them set.
-#
-# The VT100 series terminals have cursor ("arrows") keys which can operate
-# in two different modes: Cursor Mode and Application Mode. Cursor Mode
-# is the reset state, and is assumed to be the normal state. Application
-# Mode is the "set" state. In Cursor Mode, the cursor keys transmit
-# "Esc [ {code}" sequences, conforming to ANSI standards. In Application
-# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode
-# was provided primarily as an aid to the porting of VT52 applications. It is
-# assumed that the cursor keys are normally in Cursor Mode, and expected that
-# applications such as vi will always transmit the <smkx> string. Therefore,
-# the definitions for the cursor keys are made to match what the terminal
-# transmits after the <smkx> string is transmitted. If the <smkx> string
-# is a null string or is not defined, then cursor keys are assumed to be in
-# "Cursor Mode", and the cursor keys definitions should match that assumption,
-# else the application may fail. It is also expected that applications will
-# always transmit the <rmkx> string to the terminal before they exit.
-#
-# The VT100 series terminals have an auxiliary keypad, commonly referred to as
-# the "Numeric Keypad", because it is a cluster of numeric and function keys.
-# The Numeric Keypad which can operate in two different modes: Numeric Mode and
-# Application Mode. Numeric Mode is the reset state, and is assumed to be
-# the normal state. Application Mode is the "set" state. In Numeric Mode,
-# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
-# Enter key transmits the same as the Return key (Note: the Return key
-# can be configured to send either LF (\015) or CR LF). In Application Mode,
-# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys
-# always send the same "Esc O {code}" sequences. It is assumed that the keypad
-# is normally in Numeric Mode. If an application requires that the keypad be
-# in Application Mode then it is expected that the user, or the application,
-# will set the TERM environment variable to point to a terminfo entry which has
-# defined the <smkx> string to include the codes that switch the keypad into
-# Application Mode, and the terminfo entry will also define function key
-# fields to match the Application Mode control codes. If the <smkx> string
-# is a null string or is not defined, then the keypad is assumed to be in
-# Numeric Mode. If the <smkx> string switches the keypad into Application
-# Mode, it is expected that the <rmkx> string will contain the control codes
-# necessary to reset the keypad to "Normal" mode, and it is also expected that
-# applications which transmit the <smkx> string will also always transmit the
-# <rmkx> string to the terminal before they exit.
-#
-# Here's a diagram of the VT100 keypad keys with their bindings.
-# The top line is the name of the key (some DEC keyboards have the keys
-# labelled somewhat differently, like GOLD instead of PF1, but this is
-# the most "official" name). The second line is the escape sequence it
-# generates in Application Keypad mode (where "$" means the ESC
-# character). The third line contains two items, first the mapping of
-# the key in terminfo, and then in termcap.
-# _______________________________________
-# | PF1 | PF2 | PF3 | PF4 |
-# | $OP | $OQ | $OR | $OS |
-# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
-# | 7 8 9 - |
-# | $Ow | $Ox | $Oy | $Om |
-# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________|
-# | 4 | 5 | 6 | , |
-# | $Ot | $Ou | $Ov | $Ol |
-# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_|
-# | 1 | 2 | 3 | |
-# | $Oq | $Or | $Os | enter |
-# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM |
-# | 0 | . | |
-# | $Op | $On | |
-# |___kc1_______K4____|_kc3__K5_|_kent_@8_|
-#
-# And here, for those of you with orphaned VT100s lacking documentation, is
-# a description of the soft switches invoked when you do `Set Up'.
-#
-# Scroll 0-Jump Shifted 3 0-#
-# | 1-Smooth | 1-British pound sign
-# | Autorepeat 0-Off | Wrap Around 0-Off
-# | | 1-On | | 1-On
-# | | Screen 0-Dark Bkg | | New Line 0-Off
-# | | | 1-Light Bkg | | | 1-On
-# | | | Cursor 0-Underline | | | Interlace 0-Off
-# | | | | 1-Block | | | | 1-On
-# | | | | | | | |
-# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings
-# | | | | | | | |
-# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz
-# | | | 1-On | | | 1-50 Hz
-# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits
-# | | 1-ANSI | | 1-8 Bits
-# | Keyclick 0-Off | Parity 0-Off
-# | 1-On | 1-On
-# Margin Bell 0-Off Parity Sense 0-Odd
-# 1-On 1-Even
-#
-# The following SET-UP modes are assumed for normal operation:
-# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS
-# WRAP_AROUND_ON JUMP_SCROLL_OFF
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements; I recommend
-# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_#
-# Unless you have a graphics add-on such as Digital Engineering's VT640
-# (and even then, whenever it can be arranged!) you should set
-# INTERLACE_OFF
-#
-# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
-vt100|vt100-am|dec vt100 (w/advanced video),
- OTbs, am, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, ka1=\EOq,
- ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy,
- kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
- kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-vt100nam|vt100-nam|vt100 no automargins,
- am@, xenl@, use=vt100-am,
-vt100-vb|dec vt100 (w/advanced video) & no beep,
- bel@, flash=\E[?5h\E[?5l, use=vt100,
-
-# Ordinary vt100 in 132 column ("wide") mode.
-vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video),
- cols#132, lines#24,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-am,
-vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin),
- cols#132, lines#14, vt@,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=vt100-nam,
-
-# vt100 with no advanced video.
-vt100-nav|vt100 without advanced video option,
- xmc#1,
- blink@, bold@, rev@, rmso=\E[m, rmul@, sgr@, sgr0@, smso=\E[7m,
- smul@, use=vt100,
-vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option),
- cols#132, lines#14, use=vt100-nav,
-
-# vt100 with one of the 24 lines used as a status line.
-# We put the status line on the top.
-vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline,
- eslok, hs,
- lines#23,
- clear=\E[2;1H\E[J$<50>, csr=\E[%i%i%p1%d;%p2%dr,
- cup=\E[%i%p1%{1}%+%d;%p2%dH$<5>, dsl=\E7\E[1;24r\E8,
- fsl=\E8, home=\E[2;1H, is2=\E7\E[2;24r\E8,
- tsl=\E7\E[1;%p1%dH\E[1K, use=vt100-am,
-
-# Status line at bottom.
-# Clearing the screen will clobber status line.
-vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline,
- eslok, hs,
- lines#23,
- dsl=\E7\E[1;24r\E8, fsl=\E8, is2=\E[1;23r\E[23;1H,
- tsl=\E7\E[24;%p1%dH\E[1K, use=vt100-am,
-
-# Most of the `vt100' emulators out there actually emulate a vt102
-# This entry (or vt102-nsgr) is probably the right thing to use for
-# these.
-vt102|dec vt102,
- mir,
- dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
- use=vt100,
-vt102-w|dec vt102 in wide mode,
- cols#132,
- rs3=\E[?3h, use=vt102,
-
-# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
-# fail to interpret the ^O and ^N escapes properly. Symptom: the <sgr0>
-# string in the canonical vt100 entry above leaves the screen littered
-# with little snowflake or star characters (IBM PC ROM character \017 = ^O)
-# after highlight turnoffs. This entry should fix that, and even leave
-# ACS support working, at the cost of making multiple-highlight changes
-# slightly more expensive.
-# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
-vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes),
- sgr@, sgr0=\E[m, use=vt102,
-
-# VT125 Graphics CRT. Clear screen also erases graphics
-vt125|vt125 graphics terminal,
- clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
-
-# This isn't a DEC entry, it came from University of Wisconsin.
-# (vt131: I added <rmam>/<smam> based on the init string, also <OTbs> -- esr)
-vt131|dec vt131,
- OTbs, am, xenl,
- cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>, ri=\EM$<5/>,
- rmam=\E[?7h, rmkx=\E[?1l\E>, rmso=\E[m$<2/>,
- rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-
-# vt132 - like vt100 but slower and has ins/del line and such.
-# I'm told that <smir>/<rmir> are backwards in the terminal from the
-# manual and from the ANSI standard, this describes the actual
-# terminal. I've never actually used a vt132 myself, so this
-# is untested.
-#
-vt132|DEC vt132,
- xenl,
- dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
- ip=$<7>, rmir=\E[4h, smir=\E[4l, use=vt100,
-
-# This vt220 description maps F5--F9 to the second block of function keys
-# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict
-# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping.
-# PF1--PF4 are used as F1--F4.
-#
-vt220-old|vt200-old|DEC VT220 in vt100 emulation mode,
- OTbs, OTpt, am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- OTnl=^J,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, civis=\E[?25l,
- clear=\E[H\E[2J$<50>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt100, il1=\E[L, ind=\ED$<20/>,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\EOP,
- kf10=\E[29~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\E[17~,
- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rc=\E8,
- rev=\E[7m$<2>, rf=/usr/share/tabset/vt100,
- ri=\EM$<14/>, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-# A much better description of the VT200/220; used to be vt220-8
-# changed rmacs/smacs from shift-in/shift-out to vt200-old's explicit G0/G1
-# designation to accommodate bug in pcvt -TD
-vt220|vt200|dec vt220,
- OTbs, am, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h$<200/>\E[?5l, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E[?7h\E[>\E[?1h\E F\E[?4l, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~,
- kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i,
- mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=\E(0$<2>,
- smam=\E[?7h, smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-vt220-w|vt200-w|DEC vt220 in wide mode,
- cols#132,
- rs3=\E[?3h, use=vt220,
-vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode,
- OTbs, am, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, clear=\233H\233J, cr=^M,
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
- cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K, enacs=\E)0,
- flash=\233?5h$<200/>\233?5l, home=\233H, ht=^I, hts=\EH,
- ich=\233%p1%d@, if=/usr/share/tabset/vt100,
- il=\233%p1%dL, il1=\233L, ind=\ED,
- is2=\233?7h\233>\233?1h\E F\233?4l, kbs=^H,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
- kf13=\23325~, kf14=\23326~, kf17=\23331~, kf18=\23332~,
- kf19=\23333~, kf2=\EOQ, kf20=\23334~, kf3=\EOR, kf4=\EOS,
- kf6=\23317~, kf7=\23318~, kf8=\23319~, kf9=\23320~,
- kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
- knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
- lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
- nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l,
- rmir=\2334l, rmso=\23327m, rmul=\23324m, rs1=\233?3l,
- sc=\E7, sgr0=\233m, smacs=^N, smam=\233?7h, smir=\2334h,
- smso=\2337m, smul=\2334m, tbc=\2333g,
-
-#
-# vt220d:
-# This vt220 description regards F6--F10 as the second block of function keys
-# at the top of the keyboard. This mapping follows the description given
-# in the VT220 Programmer Reference Manual and agrees with the labeling
-# on some terminals that emulate the vt220. There is no support for an F5.
-# See vt220 for an alternate mapping.
-#
-vt220d|DEC VT220 in vt100 mode with DEC function key labeling,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf20=\E[34~, kf5@, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, use=vt220-old,
-
-vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins,
- am@,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
-
-# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
-# (not an official DEC entry!)
-# The problem with real vt220 terminals is they don't send escapes when in
-# in vt220 mode. This can be gotten around two ways. 1> don't send
-# escapes or 2> put the vt220 into vt100 mode and use all the nifty
-# features of vt100 advanced video which it then has.
-#
-# This entry takes the view of putting a vt220 into vt100 mode so
-# you can use the escape key in emacs and everything else which needs it.
-#
-# You probably don't want to use this on a VMS machine since VMS will think
-# it has a vt220 and will get fouled up coming out of emacs
-#
-# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
-# (Added vt100 <rc>,<sc> to quiet a tic warning -- esr)
-vt200-js|vt220-js|dec vt200 series with jump scroll,
- am,
- cols#80,
- bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il1=\E[L, ind=\ED,
- is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
- rf=/usr/share/tabset/vt100, ri=\EM, rmdc=, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m$<5/>, rmul=\E[24m,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7, smdc=,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m$<5/>, smul=\E[4m,
-
-# This was DEC's vt320. Use the purpose-built one below instead
-#vt320|DEC VT320 in vt100 emulation mode,
-# use=vt220,
-
-#
-# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam.
-#
-vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
- am@,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h, use=vt220,
-
-# These entries are not DEC's official ones, they were purpose-built for the
-# VT320. Here are the designer's notes:
-# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to
-# 'Erase to End of Field'... since nothing seems to use 'end' anyways...
-# khome is Home on a PC kbd. Actually 'FIND' on a VT.
-# Things that use <knxt> usually use tab anyways... and things that don't use
-# tab usually use <knxt> instead...
-# kprv is same as tab - Backtab is useless...
-# I left out <sgr> because of its RIDICULOUS complexity,
-# and the resulting fact that it causes the termcap translation of the entry
-# to SMASH the 1k-barrier...
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-# (vt320: uncommented <fsl> --esr)
-vt320|vt300|dec vt320 7 bit terminal,
- am, eslok, hs, mir, msgr, xenl,
- cols#80, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=\177, kc1=\EOq, kc3=\EOs,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kel=\E[4~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, knxt=^I, kpp=\E[5~,
- kprv=\E[Z, kslt=\E[4~, mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i,
- nel=\EE, rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt300,
- ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[1$}\E[H\E[K,
-vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
- am@,
- is2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- use=vt320,
-# We have to init 132-col mode, not 80-col mode.
-vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
- cols#132, wsl#132,
- is2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- use=vt320,
-vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
- am@,
- is2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- use=vt320-w,
-
-# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
-# which are pretty much a superset of the VT320. They have the
-# host writable status line, yet another different DRCS matrix size,
-# and such, but they add the DEC Technical character set, Multiple text
-# pages, selectable length pages, and the like. The difference between
-# the vt330 and vt340 is that the latter has only 2 planes and a monochrome
-# monitor, the former has 4 planes and a color monitor. These terminals
-# support VT131 and ANSI block mode, but as with much of these things,
-# termcap/terminfo doesn't deal with these features.
-#
-# Note that this entry is are set up in what was the standard way for GNU
-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
-# keys were switched into application mode at the same time the numeric pad
-# is switched into application mode. This changes the definitions of the
-# arrow keys. Emacs v19 is smarter and mines its keys directly out of
-# your termcap or terminfo entry,
-#
-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
-# (vt340: string capability "sb=\E[M" corrected to "sr";
-# also, added <rmam>/<smam> based on the init string -- esr)
-vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
- cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[?25h, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[?5l$<200/>, fsl=\E[$}, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
- smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
-
-# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
-# (originally written with vt420 as its primary name, and usable for it).
-#
-# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple
-# text pages and long text pages with selectable length of the vt340, along
-# with left and right margins, rectangular area text copy, fill, and erase
-# operations, selected region character attribute change operations,
-# page memory and rectangle checksums, insert/delete column, reception
-# macros, and other features too numerous to remember right now. TERMCAP
-# can only take advantage of a few of these added features.
-#
-# Note that this entry is are set up in what was the standard way for GNU
-# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
-# keys were switched into application mode at the same time the numeric pad
-# is switched into application mode. This changes the definitions of the
-# arrow keys. Emacs v19 is smarter and mines its keys directly out of
-# your termcap entry,
-#
-# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
-# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
-# also, added <rmam>/<smam> based on the init string -- esr)
-vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J$<10/>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
- el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7, sgr0=\E[m,
- smacs=^N, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}\E[1;%dH,
-
-# (vt420: I removed <kf0>, it collided with <kf10>. I also restored
-# a missing <sc> -- esr)
-vt420|DEC VT420,
- am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, rc=\E8, rev=\E[7m$<2>,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B$<4>,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smkx=\E=, smso=\E[7m, smul=\E[4m,
-
-#
-# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
-# takes two parameters, the key and the string. Translating the key is
-# straightforward (keys 1-5 are not defined on real terminals, though some
-# emulators define these):
-#
-# if (key < 16) then value = key;
-# else if (key < 21) then value = key + 1;
-# else if (key < 25) then value = key + 2;
-# else if (key < 27) then value = key + 3;
-# else if (key < 30) then value = key + 4;
-# else value = key + 5;
-#
-# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
-# There's no provision in terminfo for emitting a string in this format, so the
-# application has to know it.
-#
-vt420pc|DEC VT420 w/PC keyboard,
- kdch1=\177, kend=\E[4~, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[11;2~, kf14=\E[12;2~,
- kf15=\E[13;2~, kf16=\E[14;2~, kf17=\E[15;2~,
- kf18=\E[17;2~, kf19=\E[18;2~, kf2=\E[12~, kf20=\E[19;2~,
- kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
- kf24=\E[24;2~, kf25=\E[23~, kf26=\E[24~, kf27=\E[25~,
- kf28=\E[26~, kf29=\E[28~, kf3=\E[13~, kf30=\E[29~,
- kf31=\E[31~, kf32=\E[32~, kf33=\E[33~, kf34=\E[34~,
- kf35=\E[35~, kf36=\E[36~, kf37=\E[23;2~, kf38=\E[24;2~,
- kf39=\E[25;2~, kf4=\E[14~, kf40=\E[26;2~, kf41=\E[28;2~,
- kf42=\E[29;2~, kf43=\E[31;2~, kf44=\E[32;2~,
- kf45=\E[33;2~, kf46=\E[34;2~, kf47=\E[35;2~,
- kf48=\E[36;2~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[H,
- pctrm=USR_TERM\:vt420pcdos\:,
- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
- use=vt420,
-
-vt420pcdos|DEC VT420 w/PC for DOS Merge,
- lines#25,
- dispc=%?%p1%{19}%=%t\E\023\021%e%p1%{32}%<%t\E%p1%c%e%p1%{127}%=%t\E\177%e%p1%c%;,
- pctrm@,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr@,
- sgr0=\E[m, smsc=\E[?1;2r\E[34h, use=vt420pc,
-
-vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys,
- kdch1=\177, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, lf1=\EOP, lf2=\EOQ, lf3=\EOR, lf4=\EOS,
- use=vt420,
-
-vt510|DEC VT510,
- use=vt420,
-vt510pc|DEC VT510 w/PC keyboard,
- use=vt420pc,
-vt510pcdos|DEC VT510 w/PC for DOS Merge,
- use=vt420pcdos,
-
-# VT520/VT525
-#
-# The VT520 is a monochrome text terminal capable of managing up to
-# four independent sessions in the terminal. It has multiple ANSI
-# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console)
-# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950,
-# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only.
-#
-# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or
-# [Alt]/[Print Screen] depending upon which keyboard and which
-# terminal mode is being used. If Set-Up has been disabled or
-# assigned to an unknown key, Set-Up may be entered by pressing
-# [F3] as the first key after power up, regardless of keyboard type.
-# (vt520: I added <rmam>/<smam> based on the init string, also <sc> -- esr)
-vt520|DEC VT520,
- am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~,
- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-# (vt525: I added <rmam>/<smam> based on the init string;
-# removed <rmso>=\E[m, <rmul>=\E[m, added <sc> -- esr)
-vt525|DEC VT525,
- am, mir, xenl, xon,
- cols#80, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt300, il1=\E[L, ind=\ED,
- is2=\E[1;24r\E[24;1H, is3=\E[?67h\E[64;1"p, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\EOP, kf10=\E[29~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[17~, kf6=\E[18~, kf7=\E[19~, kf8=\E[20~,
- kf9=\E[21~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~,
- pfx=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\\,
- rc=\E8, rev=\E[7m$<2>, rf=/usr/share/tabset/vt300,
- ri=\EM, rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l,
- rmsc=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rmso=\E[m, rmul=\E[m, rs3=\E[?67h\E[64;1"p, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
- sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-#### VT100 emulations
-#
-
-# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows
-# (the best Windows telnet as of September 1995) presents the name `dec-vt100'
-# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us
-# that this works best with a stock vt100 entry.
-dec-vt100|EWAN telnet's vt100 emulation,
- use=vt100,
-
-# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996
-dec-vt220|DOS tnvt200 terminal emulator,
- am@, use=vt220,
-
-# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to
-# anyone who needs PC VT340 emulation. (or anything below that level, for
-# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
-# RDBM systems, it includes ReGIS and SiXel support! I'm impressed...
-# I can send the address if requested.
-# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-z340|zstem vt340 terminal emulator 132col 42line,
- lines#42,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H,
- use=vt320-w,
-z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins),
- am@,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H,
- use=z340,
-
-# CRT is shareware. It implements some xterm features, including mouse.
-crt|crt-vt220|CRT 2.3 emulating VT220,
- bce, msgr,
- ncv@,
- hts=\EH, 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:
-#
-# - Serial port connections.
-# - TCP/IP (telnet) connections.
-# - VT100 emulation, and selected VT200/300 emulation.
-# - TEK4010 emulation.
-# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and
-# Quick-VAN).
-# - Scripts using the "Tera Term Language".
-# - Japanese and Russian character sets.
-#
-# The program does not come with terminfo or termcap entries. However, the
-# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
-# vt52 or doublesize character support; blinking is done with color). Besides
-# the HPA, VPA extensions it also implements CPL and CNL.
-#
-# All of the function keys can be remapped. This description shows the default
-# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
-# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad
-# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
-# kfnd Insert
-# kslt Delete
-# kich1 Home
-# kdch1 PageUp
-# kpp End
-# knp PageDown
-#
-# ANSI colors are implemented, but cannot be combined with video attributes
-# except for reverse.
-#
-# No fonts are supplied with the program, so the acsc string is chosen to
-# correspond with the default Microsoft terminal font.
-#
-# Tera Term recognizes some xterm sequences, including those for setting and
-# retrieving the window title, and for setting the window size (i.e., using
-# "resize -s"), though it does not pass SIGWINCH to the application if the
-# user resizes the window with the mouse.
-teraterm|Tera Term Pro,
- km, xon@,
- ncv#43, vt@,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l, clear=\E[H\E[J,
- cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG,
- il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM,
- rmso=\E[27m, rmul=\E[24m, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd, use=klone+color, use=vt100,
-
-# Tested with WinNT 4.0, the telnet application assumes the screensize is
-# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters.
-#
-# Other notes:
-# a) Fails tack's cup (cursor-addressing) test, though cup works well enough
-# for casual (occasional) use. Also fails several of the vttest screens,
-# but that is not unusual for vt100 "emulators".
-# b) Does not implement vt100 keypad
-# c) Recognizes a subset of vt52 controls.
-ms-vt100|MS telnet imitating dec vt100,
- lines#25,
- acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
- ka1@, ka3@, kb2@, kc1@, kc3@, kent@, kf0@, kf1@, kf10@, kf2@, kf3@, kf4@,
- kf5@, kf6@, kf7@, kf8@, kf9@, tbc@, 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
-#
-# You can add the following line to your .Xdefaults to change the terminal type
-# set by the xterms you start up to my-xterm:
-#
-# *termName: my-xterm
-#
-# System administrators can change the default entry for xterm instances
-# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either
-# case, xterm will detect and reject an invalid terminal type, falling back
-# to the default of xterm.
-#
-
-# X10/6.6 11/7/86, minus alternate screen, plus (csr)
-# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
-# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
-# as these seem not to work -- esr)
-x10term|vs100-x10|xterm terminal emulator (X10 window system),
- OTbs, am, km, mir, msgr, xenl, xon,
- cols#80, it#8, lines#65,
- bold=\E[1m, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
- il1=\E[L, ind=^J, is2=\E\E[m\E[?7h\E[?1;4l, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rev=\E[7m, ri=\EM, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m,
-# Compatible with the R5 xterm
-# (from the XFree86 3.2 distribution, <blink=@> removed)
-# added khome/kend, rmir/smir, rmul/smul, hts based on the R5 xterm code - TD
-# corrected typos in rs2 string - TD
-# added u6-u9 -TD
-xterm-r5|xterm R5 version,
- OTbs, am, km, msgr, xenl,
- cols#80, it#8, lines#24,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
- kdl1=\E[31~, kel=\E[8~, kend=\E[4~, kf0=\EOq, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
- kil1=\E[30~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8,
- rev=\E[7m, ri=\EM, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m,
- rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H,
- sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- sgr0=\E[m, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
- u8=\E[?1;2c, u9=\E[c,
-# Compatible with the R6 xterm
-# (from XFree86 3.2 distribution, <acsc> and <it> added, <blink@> removed)
-# added khome/kend, hts based on the R6 xterm code - TD
-# (khome/kend do not actually work in X11R5 or X11R6, but many people use this
-# for compatibility with other emulators).
-xterm-r6|xterm-old|xterm X11R6 version,
- OTbs, am, km, mir, msgr, xenl,
- cols#80, it#8, lines#24,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, enacs=\E)0, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=^J,
- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, meml=\El, memu=\Em, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
- sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
-# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
-# The name has been changed and some aliases have been removed.
-xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System),
- OTbs, am, bce, km, mir, msgr, xenl,
- cols#80, it#8, lines#24, ncv@,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J,
- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbeg=\EOE, kbs=^H, kc1=\EOq,
- kc3=\EOs, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\177, kend=\EOF, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, meml=\El,
- memu=\Em, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=^O,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd, use=ecma+color,
-
-# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
-# codes for F1-F4 except while in VT220 mode.
-xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System),
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=xterm-xf86-v32,
-
-# This version was released in XFree86 3.3.3 (November 1998).
-# Besides providing printer support, it exploits a new feature that allows
-# xterm to use terminfo-based descriptions with the titeInhibit resource.
-# -- the distribution contained incorrect khome/kend values -TD
-xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System),
- mc5i,
- blink=\E[5m, ich1@, invis=\E[8m,
- is2=\E[!p\E[?3;4l\E[4l\E>, kdch1=\E[3~, kfnd@, kslt@,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rmcup=\E[?1047l\E[?1048l,
- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- smcup=\E[?1048h\E[?1047h, use=xterm-xf86-v33,
-
-# This version was released in XFree86 4.0.
-xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System),
- npc,
- kDC=\E[3;5~, kEND=\EO5F, kHOM=\EO5H, kIC=\E[2;5~,
- kLFT=\EO5D, kNXT=\E[6;5~, kPRV=\E[5;5~, kRIT=\EO5C, ka1@,
- ka3@, kb2=\EOE, kc1@, kc3@, kcbt=\E[Z, kdch1=\E[3~, kend=\EOF,
- kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
- kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
- kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
- kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
- kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf30=\E[17;5~,
- kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
- kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~, kf37=\EO6P,
- kf38=\EO6Q, kf39=\EO6R, kf40=\EO6S, kf41=\E[15;6~,
- kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~,
- kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~,
- kf48=\E[24;6~, khome=\EOH, rmcup=\E[?1049l,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- smcup=\E[?1049h, use=xterm-xf86-v333,
-
-xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.0 Window System),
- npc,
- kDC=\E[3;2~, kEND=\EO2F, kHOM=\EO2H, kIC=\E[2;2~,
- kLFT=\EO2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\EO2C,
- kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\EO2P, kf14=\EO2Q,
- kf15=\EO2R, kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~,
- kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
- kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P,
- kf26=\EO5Q, kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~,
- kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
- kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
- kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
- kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
- kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf5=\E[15~,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\EOH,
- kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- use=xterm-basic,
-#
-# This chunk is used for building the VT220/Sun/PC keyboard variants.
-xterm-basic|xterm terminal emulator - common (XFree86),
- am, bce, km, mc5i, mir, msgr, xenl,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
- kdch1=\E[3~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
- memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
- rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?1049h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd,
-
-# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
-xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
- rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
-
-# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
-xterm-16color|xterm with 16 colors like aixterm,
- ncv#32, use=ibm+16color, use=xterm-xfree86,
-
-# These variants of XFree86 3.9.16 xterm are built as a configure option.
-xterm-256color|xterm with 256 colors,
- ccc,
- colors#256, ncv#32, pairs#256,
- initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
- setab=\E[48;5;%p1%dm, setaf=\E[38;5;%p1%dm,
- setb=\E[48;5;%p1%dm, setf=\E[38;5;%p1%dm,
- use=xterm-xfree86,
-xterm-88color|xterm with 88 colors,
- colors#88, pairs#88, use=xterm-256color,
-
-# This is another variant, for XFree86 4.0 xterm (T.Dickey)
-# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
-# To use it, your decTerminalID resource must be set to 200 or above.
-#
-# HTS \E H \210
-# RI \E M \215
-# SS3 \E O \217
-# CSI \E [ \233
-#
-xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
- OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
- civis=\233?25l, clear=\233H\2332J, cnorm=\233?25h, cr=^M,
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
- cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
- dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
- enacs=\E(B\E)0, flash=\233?5h$<100/>\233?5l,
- home=\233H, hpa=\233%i%p1%dG, ht=^I, hts=\210,
- ich=\233%p1%d@, il=\233%p1%dL, il1=\233L, ind=^J,
- invis=\2338m,
- is2=\E7\E G\233r\233m\233?7h\233?1;3;4;6l\2334l\E8\E>,
- ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
- kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
- kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
- kent=\217M, kf1=\23311~, kf10=\23321~, kf11=\23323~,
- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
- kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
- kf2=\23312~, kf20=\23334~, kf3=\23313~, kf4=\23314~,
- kf5=\23315~, kf6=\23317~, kf7=\23318~, kf8=\23319~,
- kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
- knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
- meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
- ri=\215, rmacs=^O, rmam=\233?7l, rmcup=\233?1049l,
- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
- rs1=\Ec,
- rs2=\E[62"p\E G\E7\233r\E8\233m\233?7h\233?1;3;4;6l\2334l\E>,
- sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
- setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\233m^O, smacs=^N, smam=\233?7h, smcup=\233?1049h,
- smir=\2334h, smkx=\233?1h\E=, smso=\2337m, smul=\2334m,
- tbc=\2333g, u6=\233[%i%d;%dR, u7=\E[6n, u8=\233[?1;2c,
- u9=\E[c, vpa=\233%i%p1%dd,
-
-xterm-hp|XFree86 xterm with hpterm function keys,
- kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kdch1=\EP, kend=\EF, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es,
- kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, kich1=\EQ,
- knp=\ES, kpp=\ET, use=xterm-basic,
-
-xterm-sco|XFree86 xterm with SCO function keys,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[F,
- kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y,
- kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d, kf19=\E[e,
- kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h, kf23=\E[i,
- kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m, kf28=\E[n,
- kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q, kf32=\E[r,
- kf33=\E[s, kf34=\E[t, kf35=\E[u, 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, use=xterm-basic,
-
-# The xterm-xfree86 description has all of the features, but is not completely
-# compatible with vt220. If you are using a Sun or PC keyboard, set the
-# sunKeyboard resource to true:
-# + maps the editing keypad
-# + interprets control-function-key as a second array of keys, so a
-# 12-fkey keyboard can support vt220's 20-fkeys.
-# + maps numeric keypad "+" to ",".
-# + uses DEC-style control sequences for the application keypad.
-#
-xterm-vt220|XFree86 xterm emulating vt220,
- ka1=\EOw, ka3=\EOy, kbeg=\EOu, kc1=\EOq, kc3=\EOs, kcbt=\E[Z,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kend=\E[4~,
- kent=\EOM, kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[1~,
- kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- use=xterm-basic,
-
-xterm-vt52|XFree86 xterm emulating dec vt52,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%' '%+%c%p2%' '%+%c, cuu1=\EA, ed=\EJ, el=\EK,
- home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
-
-xterm-noapp|xterm with cursor keys in normal mode,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rmcup@,
- rmkx=\E>, smcup@, smkx=\E=, use=xterm,
-
-xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
- lines#24, use=xterm-r6,
-
-# This is xterm for ncurses.
-xterm|xterm terminal emulator (X Window System),
- use=xterm-r6,
-# use=xterm-xfree86,
-
-# These entries allow access to the X titlebar and icon name as a status line.
-# Note that twm (and possibly window managers descended from it such as tvtwm,
-# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
-# with it.
-xterm+sl|access X title line and icon name,
- hs,
- wsl#40,
- dsl=\E]0;\007, fsl=^G, tsl=\E]0;, use=xterm,
-xterm+sl-twm|access X title line (pacify twm-descended window managers),
- hs,
- wsl#40,
- dsl=\E]2;\007, fsl=^G, tsl=\E]2;, use=xterm,
-
-#
-# The following xterm variants don't depend on your base version
-#
-# xterm with bold instead of underline
-xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
- smso=\E[7m, smul=\E[1m, use=xterm,
-# (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,
- 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,
-# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
-xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
- ich@, ich1@, use=xterm,
-# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
-xterm1|xterm terminal emulator ignoring the alternate screen buffer,
- rmcup@, smcup@, use=xterm,
-
-# This describes the capabilities of color_xterm, an xterm variant from
-# before ECMA-64 color support was folded into the main-line xterm release.
-# This entry is straight from color_xterm's maintainer.
-# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
-# The README's with the distribution also say that it supports SGR 21, 24, 25
-# and 27, but they are not present in the terminfo or termcap.
-color_xterm|cx|cx100|color_xterm color terminal emulator for X,
- OTbs, am, km, mir, msgr, xenl,
- cols#80, it#8, lines#65, ncv@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is1=\E[r\E[m\E[?7h\E[?4;6l\E[4l, ka1=\EOw, ka3=\EOy,
- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kend=\E[8~, kent=\EOM, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\E[12~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[7~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E>\E[?41;1r, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smam=\E[?7h,
- smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, use=ecma+color,
-
-# The 'nxterm' distributed with Redhat Linux 5.2 is a slight rehack of
-# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
-# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This
-# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
-# that each of those implements the home, end, delete keys differently.
-#
-# Redhat Linux 6.x distributes XFree86 xterm as "nxterm", which uses bce
-# colors; note that this is not compatible with the 5.2 version.
-nxterm|xterm-color|generic color xterm,
- ncv@,
- op=\E[m, use=xterm-r6, use=klone+color,
-
-# this describes the alpha-version of Gnome terminal shipped with Redhat 6.0
-gnome-rh62|Gnome terminal,
- bce,
- kdch1=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- use=xterm-color,
-
-# GNOME Terminal 1.4.0.4 (Redhat 7.2)
-#
-# This implements a subset of vt102 with a random selection of features from
-# other terminals such as color and function-keys.
-#
-# 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,
-
-# 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:
-# rxvt 2.21b uses
-# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O,
-# but some applications don't work with that.
-# It also has an AIX extension
-# box2=lqkxjmwuvtn,
-# and
-# ech=\E[%p1%dX,
-# but the latter does not work correctly.
-#
-# The distributed terminfo says it implements hpa and vpa, but they are not
-# implemented correctly, using relative rather than absolute positioning.
-#
-# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
-# Since rxvt is not really compatible with xterm, it should be configured as
-# "rxvt" (monochrome) and "rxvt-color".
-rxvt-basic|rxvt terminal base (X Window System),
- OTbs, am, bce, eo, km, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E[?47l\E=\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
- kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$,
- kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H,
- kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^,
- kend=\E[8~, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kfnd=\E[1~, khome=\E[7~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l, rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
- s0ds=\E(B, s1ds=\E(0, sc=\E7, sgr0=\E[0m\017, smacs=^N,
- smcup=\E7\E[?47h, smir=\E[4h, smkx=\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-rxvt|rxvt terminal emulator (X Window System),
- 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
-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@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h\E[?5l, home=\E[H, hpa=\E[%i%p1%dG, ht=^I,
- hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
- ind=^J, is1=\E[?47l\E>\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
- kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$,
- kPRV=\E[5$, kRIT=\E[c, ka1=\E[7~, ka3=\E[5~, kb2=\EOu,
- kbeg=\EOu, kbs=^H, kc1=\E[8~, kc3=\E[6~, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kel=\E[8\^, kend=\E[8~, kent=\EOM, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
- kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- khome=\E[7~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
- rmkx=, rmso=\E[27m, rmul=\E[24m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- 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
-# because they illustrate SVr4 curses mouse controls - T.Dickey
-xtermm|xterm terminal emulator (monocrome),
- OTbs, am, km, mir, msgr, xenl,
- btns#3, cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[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,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K$<3>, enacs=\E(B\E)0, getm=\E[%p1%dY,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, ka1=\EOq, ka3=\EOs, kb2=\EOr,
- kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kend=\E[Y, kent=\EOM, kf0=\EOy,
- kf1=\EOP, kf10=\EOY, kf11=\EOZ, kf12=\EOA, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- kf9=\EOX, khome=\E[H, kmous=\E[^_, knp=\E[U, kpp=\E[V,
- rc=\E8, reqmp=\E[492Z, rev=\E[7m, ri=\EM, rmacs=^O,
- rmcup=\E@0\E[?4r, rmso=\E[m,
- rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E@0\E[?4s\E[?4h\E@1,
- smso=\E[7m, tbc=\E[3g,
-
-xtermc|xterm terminal emulator (color),
- colors#8, ncv#7, pairs#64,
- op=\E[100m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- use=xtermm,
-
-# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
-# Here's a termcap entry I've been using for xterm_color, which comes
-# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
-# color stuff, I also have a status line defined as the window manager
-# title bar. [I have translated it to terminfo -- ESR]
-xterm-pcolor|xterm with color used for highlights and status line,
- bold=\E[1m\E[43m, rev=\E[7m\E[34m, smso=\E[7m\E[31m,
- smul=\E[4m\E[42m, use=xterm+sl, use=xterm-r6,
-
-# HP ships this, except for the pb#9600 which was merged in from BSD termcap.
-# (hpterm: added empty <acsc>, we have no idea what ACS chars look like --esr)
-hpterm|X-hpterm|hp X11 terminal emulator,
- am, da, db, mir, xhp,
- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
- acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M,
- cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
- cuu1=\EA, dch1=\EP, dim=\E&dH, dl1=\EM, ed=\EJ$<1>, el=\EK,
- hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL, ind=^J, kbs=^H,
- kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, meml=\El,
- memu=\Em, pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rev=\E&dB, ri=\ET,
- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@,
- rmul=\E&d@,
- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-# This entry describes an xterm with Sun-style function keys enabled
-# via the X resource setting "xterm*sunFunctionKeys:true"
-# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
-# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
-# because we want it to be seen as <kcpy>.
-# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
-# with their Sun keyboard labels instead.
-# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
-xterm-sun|xterm with sunFunctionKeys true,
- kb2=\E[218z, kcpy=\E[197z, kend=\E[220z, kf1=\E[224z,
- kf10=\E[233z, kf11=\E[192z, kf12=\E[193z, kf13=\E[194z,
- kf14=\E[195z, kf15=\E[196z, kf17=\E[198z, kf18=\E[199z,
- kf19=\E[200z, kf2=\E[225z, kf20=\E[201z, kf3=\E[226z,
- kf31=\E[208z, kf32=\E[209z, kf33=\E[210z, kf34=\E[211z,
- kf35=\E[212z, kf36=\E[213z, kf38=\E[215z, kf4=\E[227z,
- kf40=\E[217z, kf42=\E[219z, kf44=\E[221z, kf5=\E[228z,
- kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z,
- kfnd=\E[200z, khlp=\E[196z, khome=\E[214z, kich1=\E[2z,
- knp=\E[222z, kpp=\E[216z, kund=\E[195z, use=xterm,
-xterms-sun|small (80x24) xterm with sunFunctionKeys true,
- cols#80, lines#24, use=xterm-sun,
-
-# This is for the extensible terminal emulator on the X11R6 contrib tape.
-emu|emu native mode,
- mir, msgr, xon,
- colors#15, cols#80, it#8, lines#24, pairs#64, vt#200,
- acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
- bel=^G, blink=\ES\EW, bold=\ES\EU, civis=\EZ,
- clear=\EP\EE0;0;, cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;,
- cub=\Eq-%p1%d;, cub1=^H, cud=\Ep%p1%d;, cud1=\EB,
- cuf=\Eq%p1%d;, cuf1=\ED, cup=\EE%p1%d;%p2%d;,
- cuu=\Ep-%p1%d;, cuu1=\EA, dch=\EI%p1%d;, dch1=\EI1;,
- dl=\ER%p1%d;, dl1=\ER1;, ech=\Ej%p1%d;, ed=\EN, el=\EK,
- el1=\EL, enacs=\0, home=\EE0;0;, ht=^I, hts=\Eh,
- il=\EQ%p1%d;, il1=\EQ1;, ind=\EG, is2=\ES\Er0;\Es0;,
- kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED, kcuu1=\EA,
- kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01, kf10=\EF10,
- kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14, kf15=\EF15,
- kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19, kf2=\EF02,
- kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05, kf6=\EF06,
- kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind, kich1=\Eins,
- knp=\Enext, kpp=\Eprior, kslt=\Esel, oc=\Es0;\Er0;,
- rev=\ES\ET, ri=\EF, rmacs=\0, rmir=\EX, rmso=\ES, rmul=\ES,
- rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;,
- setaf=\Er%i%p1%d;, sgr0=\ES, smacs=\0, smir=\EY,
- smso=\ES\ET, smul=\ES\EV, tbc=\Ej,
-
-# 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.
-# These entries describe MGR's xterm-equivalent.
-# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
-#
-
-mgr|Bellcore MGR (non X) window system terminal emulation,
- am, km,
- bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=^M,
- csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er,
- cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h,
- dch=\E%p1%dE$<5>, dch1=\EE, dl=\E%p1%dd$<3*>,
- dl1=\Ed$<3>, ed=\EC, el=\Ec, hd=\E1;2f, ht=^I, hu=\E1;2u,
- ich=\E%p1%dA$<5>, ich1=\EA, il=\E%p1%da$<3*>,
- il1=\Ea$<3>, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, nel=^M^J, rev=\E1n, rmam=\E5S,
- rmso=\E0n, rmul=\E0n, sgr0=\E0n, smam=\E5s, smso=\E1n,
- smul=\E4n,
-mgr-sun|Mgr window with Sun keyboard,
- ka1=\E[214z, ka3=\E[216z, kb2=\E[218z, kc1=\E[220z,
- kc3=\E[222z, kcpy=\E[197z, kend=\E[220z, kent=\E[250z,
- kf1=\E[224z, kf10=\E[233z, kf11=\E[234z, kf12=\E[235z,
- kf2=\E[225z, kf3=\E[226z, kf4=\E[227z, kf5=\E[228z,
- kf6=\E[229z, kf7=\E[230z, kf8=\E[231z, kf9=\E[232z,
- kfnd=\E[200z, khlp=\E[207z, khome=\E[214z, knp=\E[222z,
- kopn=\E[198z, kpp=\E[216z, kund=\E[195z, use=mgr,
-mgr-linux|Mgr window with Linux keyboard,
- ka1=\E[H, ka3=\E[5~, kb2=\E[G, kc1=\E[Y, kc3=\E[6~,
- kdch1=\E[3~, kend=\E[4~, kf0=\E[[J, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, knp=\E[6~, kpp=\E[5~, use=mgr,
-
-######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
-#
-
-# Columbus UNIX virtual terminal. This terminal also appears in
-# UNIX 4.0 and successors as line discipline 1 (?), but is
-# undocumented and does not really work quite right.
-cbunix|cb unix virtual terminal,
- OTbs, am, da, db,
- cols#80, lines#24, lm#0,
- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EG%p2%c%p1%c, cuu1=\EA, dch1=\EM, dl1=\EN, ed=\EL,
- el=\EK, ich1=\EO, il1=\EP, ind=^J, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\EE, rmso=\Eb^D, rmul=\Eb^A,
- smso=\Ea^D, smul=\Ea^A,
-# (vremote: removed obsolete ":nl@:" -- esr)
-vremote|virtual remote terminal,
- am@,
- cols#79, use=cbunix,
-
-pty|4bsd pseudo teletype,
- cup=\EG%p1%{32}%+%c%p2%{32}%+%c, rmso=\Eb$, rmul=\Eb!,
- smso=\Ea$, smul=\Ea!, use=cbunix,
-
-# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
-eterm|gnu emacs term.el terminal emulation,
- am, mir, xenl,
- cols#80, lines#24,
- bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, rev=\E[7m,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
- smul=\E[4m,
-
-# Entries for use by the `screen' program by Juergen Weigert,
-# Michael Schroeder, Oliver Laumann. The screen and
-# screen-w entries came with version 3.7.1. The screen2 and screen3 entries
-# come from University of Wisconsin and may be older.
-# (screen: added <cnorm> on ANSI model -- esr)
-#
-# 'screen' defines extensions to termcap. Some are used in its terminal
-# description:
-# G0 (bool) Terminal can deal with ISO 2022 font selection sequences.
-# AX (bool) Does understand ANSI set default fg/bg color
-# (\E[39m / \E[49m).
-# S0 (str) Switch charset 'G0' to the specified charset.
-# E0 (str) Switch charset 'G0' back to standard charset.
-#
-# tested with screen 3.09.08
-screen|VT 100/ANSI X3.64 virtual terminal,
- OTbs, OTpt, am, km, mir, msgr, xenl, G0,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\Eg, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcbt=\E[Z,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, 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,
-
-screen2|old VT 100/ANSI X3.64 virtual terminal,
- cols#80, it#8, lines#24,
- cbt=\E[Z, clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=, il=\E[%p1%dL,
- il1=\E[L, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
- nel=^M^J, rc=\E8, ri=\EM, rmir=\E[4l, rmso=\E[23m,
- rmul=\E[24m, rs1=\Ec, sc=\E7, sgr0=\E[m, smir=\E[4h,
- smso=\E[3m, smul=\E[4m, tbc=\E[3g,
-# (screen3: removed unknown ":xv:LP:G0:" -- esr)
-screen3|older VT 100/ANSI X3.64 virtual terminal,
- km, mir, msgr,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, is2=\E)0, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rmir=\E[4l, rmkx=\E>, rmso=\E[23m, rmul=\E[24m, rs1=\Ec,
- sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
- smul=\E[4m, tbc=\E[3g,
-
-# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
-# NCSA telnet is one of the most used telnet clients for the Macintosh. It has
-# been maintained until recently by the National Center for Supercomputer
-# Applications, and it is feature rich, stable and free. It can be downloaded
-# from www.ncsa.edu. This terminfo description file is based on xterm-vt220,
-# xterm+sl, and the docs at NCSA. It works well.
-#
-# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
-# The terminal options should be set as follows:
-# Xterm sequences ON
-# use VT wrap mode ON
-# use Emacs arrow keys OFF
-# CTRL-COMND is Emacs meta ON
-# 8 bit mode ON
-# answerback string: "ncsa-vt220-8"
-# setup keys: all disabled
-#
-# Application mode is not used.
-#
-# Other special mappings:
-# Apple VT220
-# HELP Find
-# HOME Insert here
-# PAGEUP Remove
-# DEL Select
-# END Prev Screen
-# PAGEDOWN Next Screen
-#
-# Though it supports ANSI color, NCSA Telnet uses color to represent blinking
-# text.
-#
-# The status-line manipulation is a mapping of the xterm-compatible control
-# sequences for setting the window-title. So you must use tsl and fsl in
-# pairs, since the latter ends the string that is loaded to the window-title.
-ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
- am, hs, km, mir, msgr, xenl,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E]0;\007, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, if=/usr/share/tabset/vt100,
- il=\E[%p1%dL, il1=\E[L, ind=\n$<150*>,
- is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[4~, kend=\E[5~, kf1=\E[17~, kf10=\E[28~,
- kf11=\E[29~, kf12=\E[31~, kf13=\E[32~, kf14=\E[33~,
- kf15=\E[34~, kf2=\E[18, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~,
- kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~,
- khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i,
- rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7,
- smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
- u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?62;1;6c, u9=\E[c,
-ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
- use=ncsa-m, use=klone+color,
-ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
- hs@,
- dsl@, fsl@, tsl@, use=ncsa,
-ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode,
- hs@,
- dsl@, fsl@, tsl@, use=ncsa-m,
-# alternate -TD:
-# The documented function-key mapping refers to the Apple Extended Keyboard
-# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style
-# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
-# some keyboards and many applications require these as F1-F4.
-#
-ncsa-vt220|NCSA Telnet using vt220-compatible function keys,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, use=ncsa,
-
-#### Pilot Pro Palm-Top
-#
-# Termcap for Top Gun Telnet and SSH on the Palm Pilot.
-# http://www.isaac.cs.berkeley.edu/pilot/tgtelnet.html
-pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional,
- OTbs, am, xenl,
- cols#39, lines#16,
- bel=^G, clear=\Ec, cr=^M, cub1=^H, cud1=^J,
- cup=\Em%p1%{32}%+%c%p2%{32}%+%c, home=\Em\s\s, ht=^I,
- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, knp=^L, kpp=^K, nel=\Em~\s,
- rmso=\EB, smso=\Eb,
-
-# From: Federico Bianchi <bianchi@www.arte.unipi.it>
-# These entries are for the Embeddable Linux Kernel System (ELKS)
-# project - an heavily stripped down Linux to be run on 16 bit
-# boxes or, eventually, to be used in embedded systems - and have been
-# adapted from the stock ELKS termcap. The project itself looks stalled,
-# and the latest improvements I know of date back to March 2000.
-#
-# To cope with the ELKS dumb console I added an "elks-glasstty" entry;
-# as an added bonus, this deals with all the capabilities common to
-# both VT52 and ANSI (or, eventually, "special") modes.
-
-elks-glasstty|ELKS glass-TTY capabilities,
- OTbs, am,
- cols#80, it#8, lines#25,
- bel=^G, cr=^M, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
- nel=^M^J,
-
-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
-#
-
-#### Alpha consoles
-#
-
-# This is from the OSF/1 Release 1.0 termcap file
-pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation,
- am, xon,
- cols#80, lines#25,
- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- nel=^M^J, rev=\E[7m, rmso=\E[m, sgr0=\E[m, smso=\E[7m,
-
-#### Sun consoles
-#
-
-# :is1: resets scrolling region in case a previous user had used "tset vt100"
-oldsun|Sun Microsystems Workstation console,
- OTbs, am, km, mir, msgr,
- cols#80, it#8, lines#34,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is1=\E[1r, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
- rmso=\E[m, sgr0=\E[m, smso=\E[7m,
-# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
-# <lines> capability later corrected by J.T. Conklin <jtc@cygnus.com>
-# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
-sun-il|Sun Microsystems console with working insert-line,
- am, km, msgr,
- cols#80, lines#34,
- bel=^G, bold@, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- kb2=\E[218z, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\177, kend=\E[220z, kf1=\E[224z,
- kf10=\E[233z, kf11=\E[234z, kf12=\E[235z, kf2=\E[225z,
- kf3=\E[226z, kf4=\E[227z, kf5=\E[228z, kf6=\E[229z,
- kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
- knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
- kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
- sgr0=\E[m, smso=\E[7m, smul@, u8=\E[1t, u9=\E[11t,
-# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
-# flake out on the last line. Unfortunately, without them the terminal has no
-# way to scroll.
-sun-cgsix|sun-ss5|Sun SparcStation 5 console,
- il@, il1@, use=sun-il,
-# If you are using an SS5, change the sun definition to use sun-ss5.
-sun|sun1|sun2|Sun Microsystems Inc. workstation console,
- use=sun-il,
-
-# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
-sun-s|Sun Microsystems Workstation window with status line,
- hs,
- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun,
-sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs,
- hs,
- dsl=\E]l\E\\, fsl=\E\\, tsl=\E]l, use=sun-e,
-sun-48|Sun 48-line window,
- cols#80, lines#48, use=sun,
-sun-34|Sun 34-line window,
- cols#80, lines#34, use=sun,
-sun-24|Sun 24-line window,
- cols#80, lines#24, use=sun,
-sun-17|Sun 17-line window,
- cols#80, lines#17, use=sun,
-sun-12|Sun 12-line window,
- cols#80, lines#12, use=sun,
-sun-1|Sun 1-line window for sysline,
- eslok, hs,
- cols#80, lines#1,
- dsl=^L, fsl=\E[K, tsl=^M, use=sun,
-sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character,
- ich1@, rmir@, smir@, use=sun,
-sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history,
- lines#35,
- rmcup=\E[>4h, smcup=\E[>4l, use=sun,
-
-#### Iris consoles
-#
-
-# (wsiris: this had extension capabilities
-# :HS=\E7F2:HE=\E7F7:\
-# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
-# See the note on Iris extensions near the end of this file.
-# Finally, removed suboptimal <clear>=\EH\EJ and added <cud1> &
-# <flash> from BRL -- esr)
-wsiris|iris40|iris emulating a 40 line visual 50 (approximately),
- OTbs, OTnc, OTpt, am,
- OTkn#3, cols#80, it#8, lines#40,
- OTnl=\EB, bel=^G, clear=\Ev, cnorm=\E>, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- cvvis=\E;, dim=\E7F2, dl1=\EM, ed=\EJ, el=\EK,
- flash=\E7F4\E7B1\013\E7F7\E7B0, home=\EH, ht=^I, il1=\EL,
- ind=^J, is2=\E7B0\E7F7\E7C2\E7R3, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3,
- kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8, kf9=\E9, ri=\EI,
- rmso=\E0@, rmul=\E7R3\E0@, sgr0=\E7F7, smso=\E9P,
- smul=\E7R2\E9P,
-
-#### NeWS consoles
-#
-# Console terminal windows under the NeWS (Sun's Display Postscript windowing
-# environment). Note: these have nothing to do with Sony's News workstation
-# line.
-#
-
-# Entry for NeWS's psterm from Eric Messick & Hugh Daniel
-# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr)
-psterm|psterm-basic|NeWS psterm-80x34,
- OTbs, am, hs, km, ul,
- cols#80, it#8, lines#34,
- blink=\EOb, bold=\EOd, clear=^L, csr=\EE%p1%d;%p2%d;,
- cub1=\ET, cud1=\EP, cuf1=\EV, cup=\E%p1%d;%p2%d;, cuu1=\EY,
- dch1=\EF, dl1=\EK, ed=\EB, el=\EC, flash=\EZ, fsl=\ENl,
- home=\ER, ht=^I, il1=\EA, ind=\EW, is1=\EN*, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ll=\EU, rc=^\, rev=\EOr,
- ri=\EX, rmcup=\ENt, rmir=\ENi, rmso=\ENo, rmul=\ENu, sc=^],
- sgr0=\EN*, smcup=\EOt, smir=\EOi, smso=\EOo, smul=\EOu,
- tsl=\EOl,
-psterm-96x48|NeWS psterm 96x48,
- cols#96, lines#48, use=psterm,
-psterm-90x28|NeWS psterm 90x28,
- cols#90, lines#28, use=psterm,
-psterm-80x24|NeWS psterm 80x24,
- cols#80, lines#24, use=psterm,
-# This is a faster termcap for psterm. Warning: if you use this termcap,
-# some control characters you type will do strange things to the screen.
-# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr)
-psterm-fast|NeWS psterm fast version (flaky ctrl chars),
- OTbs, am, hs, km, ul,
- cols#80, it#8, lines#34,
- blink=^Ob, bold=^Od, clear=^L, csr=\005%p1%d;%p2%d;,
- cub1=^T, cud1=^P, cuf1=^V, cup=\004%p1%d;%p2%d;, cuu1=^Y,
- dch1=^F, dl1=^K, ed=^B, el=^C, flash=^Z, fsl=^Nl, home=^R, ht=^I,
- il1=^A, ind=^W, is1=^N*, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, ll=^U, rc=^\, rev=^Or, ri=^X, rmcup=^Nt, rmir=^Ni,
- rmso=^No, rmul=^Nu, sc=^], sgr0=^N*, smcup=^Ot, smir=^Oi,
- smso=^Oo, smul=^Ou, tsl=^Ol,
-
-#### NeXT consoles
-#
-# Use `glasstty' for the Workspace application
-#
-
-# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995
-next|NeXT console,
- am, xt,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
- rmso=\E[4;1m, sgr0=\E[m, smso=\E[4;2m,
-nextshell|NeXT Shell application,
- am,
- cols#80,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, kbs=^H, kcub1=^H,
- kcud1=^J, nel=^M^J,
-
-#### Sony NEWS workstations
-#
-
-# (news-unk: this had :KB=news: -- esr)
-news-unk|SONY NEWS vt100 emulator common entry,
- OTbs, OTpt, am, xenl,
- cols#80,
- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- if=/usr/share/tabset/vt100, il=\E[%p1%dL, il1=\E[L,
- is2=\E[?7h\E[?1l\E[?3l\E7\E8, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOY, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
- kf8=\EOW, kf9=\EOX, rc=\E8, rev=\E[7m, ri=\EM,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r, sc=\E7,
- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-#
-# (news-29: this had :TY=ascii: --esr)
-news-29,
- lines#29, use=news-unk,
-# (news-29-euc: this had :TY=euc: --esr)
-news-29-euc,
- use=news-29,
-# (news-29-sjis: this had :TY=sjis: --esr)
-news-29-sjis,
- use=news-29,
-#
-# (news-33: this had :TY=ascii: --esr)
-news-33,
- lines#33, use=news-unk,
-# (news-33-euc: this had :TY=euc: --esr)
-news-33-euc,
- use=news-33,
-# (news-33-sjis: this had :TY=sjis: --esr)
-news-33-sjis,
- use=news-33,
-#
-# (news-42: this had :TY=ascii: --esr)
-news-42,
- lines#42, use=news-unk,
-# (news-42-euc: this had :TY=euc: --esr)
-news-42-euc,
- use=news-42,
-# (news-42-sjis: this had :TY=sjis: --esr)
-news-42-sjis,
- use=news-42,
-#
-# NEWS-OS old termcap entry
-#
-# (news-old-unk: this had :KB=news:TY=sjis: --esr)
-news-old-unk|SONY NEWS vt100 emulator common entry,
- OTbs, OTpt, am, xenl,
- cols#80, vt#3,
- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, if=/usr/share/tabset/vt100, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m, ri=\EM,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-#
-# (nwp512: this had :DE=^H:, which I think means <OTbs> --esr)
-nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines,
- OTbs,
- lines#40,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
- use=news-old-unk,
-#
-# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
-nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line,
- lines#42,
- is2=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8,
- use=news-old-unk,
-#
-# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as <OTbs>. --esr)
-nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines,
- OTbs,
- lines#40,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8,
- use=news-old-unk,
-#
-# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
-nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines,
- OTbs,
- lines#31,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
- use=news-old-unk,
-#
-# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as <OTbs>; --esr)
-# also the alias vt100-bm.
-nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines,
- OTbs,
- lines#33,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8,
- use=news-old-unk,
-#
-# (nwp513-o: had :DE=^H:, I think that's <OTbs>; also the alias vt100-bm --esr)
-nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines,
- OTbs,
- lines#31,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8,
- use=news-old-unk,
-#
-# (news28: this had :DE=^H:, I think that's <OTbs>, and :KB=nws1200: --esr)
-news28|sony vt100 emulator 28 lines,
- OTbs,
- lines#28,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8,
- use=news-old-unk,
-#
-# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
-news29|news28-a|sony vt100 emulator 29 lines,
- lines#29,
- is2=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8,
- use=news-old-unk,
-#
-# (news511: this had :TY=sjis: --esr)
-nwp511|nwp-511|nwp-511 vt100,
- OTbs, OTpt, am, xenl,
- cols#80, lines#24,
- clear=\E[;H\E[2J$<20/>, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
- ed=\E[J$<30/>, el=\E[K$<3/>,
- flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
- il1=\E[L, is2=\E[?5l\E[?1l\E>\E[?7h\E[?8h, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\E#W, khome=\E[H,
- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
- rs2=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h,
- smso=\E[7m$<2/>, smul=\E[4m$<2/>,
-# (news517: this had :TY=sjis:. --esr)
-nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows,
- eslok, hs,
- cols#80, lines#30,
- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
- is2=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- tsl=\E[1$}\E[;%df, use=vt200,
-# (news517-w: this had :TY=sjis:. --esr)
-nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows,
- eslok, hs,
- cols#132, lines#50,
- OTi2=\E[2$~\n, dsl=\E[1$~, fsl=\E[0$},
- is2=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h,
- tsl=\E[1$}\E[;%df, use=vt200,
-
-#### Common Desktop Environment
-#
-
-# This ships with Sun's CDE in Solaris 2.5
-# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net>
-dtterm|CDE desktop terminal,
- am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, lm#0, ncv@,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, home=\E[H,
- ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\ED, invis=\E[8m, is2=\E F\E>\E[?1l\E[?7h\E[?45l,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmso=\E[22;27m, rmul=\E[24m,
- sc=\E7,
- sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smso=\E[2;7m, smul=\E[4m, tbc=\E[3g, use=ecma+color,
-
-#### Non-Unix Consoles
-#
-
-# Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
-# a Unix-style environment used on OS/2. (Note that the suffix makes some
-# names longer than 14 characters, the nominal maximum).
-#
-# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
-ansi-emx|ANSI.SYS color,
- am, bce, eo, mir, msgr, xenl, xon,
- colors#8, cols#80, it#8, lines#25, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[1;33;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
- kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
- kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>, kf5=\0?, kf6=\0@,
- kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G, kich1=\0R, kll=\0O,
- knp=\0Q, kpp=\0I, kspd=^Z, nel=^M^J, rev=\E[5;37;41m,
- rmir=\E[4l, rmpch=\E[10m, rmso=\E[0;44m\E[1;33m,
- rmul=\E[0;44m\E[1;33m, rs1=\Ec, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[0m\E[1;33;44m, smir=\E[4h,
- smpch=\E[11m, smso=\E[0;31;47m, smul=\E[1;31;44m,
- tbc=\E[3g, u8=\E[?6c, u9=\E[c,
-ansi-color-2-emx|ANSI.SYS color 2,
- am, bce, eo, mir, msgr, xenl, xon,
- colors#8, cols#80, it#8, lines#25, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[0;37;44m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
- kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
- kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>, kf5=\0?, kf6=\0@,
- kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G, kich1=\0R, kll=\0O,
- knp=\0Q, kpp=\0I, kspd=^Z, nel=^M^J, rev=\E[1;37;46m,
- rmir=\E[4l, rmpch=\E[10m, rmso=\E[0;37;44m,
- rmul=\E[0;37;44m, rs1=\Ec, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[0;37;44m, smir=\E[4h,
- smpch=\E[11m, smso=\E[1;37;46m, smul=\E[1;36;44m,
- tbc=\E[3g, u8=\E[?6c, u9=\E[c,
-ansi-color-3-emx|ANSI.SYS color 3,
- am, bce, eo, mir, msgr, xenl, xon,
- colors#8, cols#80, it#8, lines#25, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[0;37;40m\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dp, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, ind=^J,
- kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
- kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>, kf5=\0?, kf6=\0@,
- kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G, kich1=\0R, kll=\0O,
- knp=\0Q, kpp=\0I, kspd=^Z, nel=^M^J, rev=\E[1;37;46m,
- rmir=\E[4l, rmpch=\E[10m, rmso=\E[0;37;40m,
- rmul=\E[0;37;40m, rs1=\Ec, setab=\E[4%p1%dm,
- setaf=\E[3%p1%dm, sgr0=\E[0;10m, smir=\E[4h,
- smpch=\E[11m, smso=\E[1;37;46m, smul=\E[0;36;40m,
- tbc=\E[3g, u8=\E[?6c, u9=\E[c,
-mono-emx|stupid monochrome ansi terminal with only one kind of emphasis,
- am,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J$<50>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, kb2=\E[G, kbs=^H, kcub1=\0K, kcud1=\0P, kcuf1=\0M,
- kcuu1=\0H, kf0=\0D, kf1=\0;, kf2=\0<, kf3=\0=, kf4=\0>,
- kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B, kf9=\0C, khome=\0G,
- kich1=\0R, kll=\0O, knp=\0Q, kpp=\0I, nel=^M^J, rev=\E[7m,
- sgr0=\E[0m,
-
-# Use this for cygwin32 (tested with beta 19.1)
-# underline is colored bright magenta
-# shifted kf1-kf12 are kf11-kf22
-cygwinB19|ansi emulation for cygwin32,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
- kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, rmam@, smam@,
- use=ansi.sys,
-
-# Use this for cygwin (tested with version 1.1.0).
-# I've combined pcansi and linux. Some values of course were different and
-# I've indicated which of these were and which I used.
-# Cheers, earnie_boyd@yahoo.com
-# several changes based on running with tack and comparing with older entry -TD
-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
-# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating
-# systems is not, and (surprise!) they match very well.
-#
-# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up
-# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only
-# are the installation instructions a pile of mind-numbing bureaucratese,
-# but the termcap entry is actually broken and unusable as given; the :do:
-# capability is misspelled "d".
-#
-# To use this, you need to a bunch of environment variables:
-#
-# SET _POSIX_TERM=on
-# SET TERM=ansi
-# SET TERMCAP=location of termcap file in POSIX file format
-# which is case-sensitive.
-# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap
-# SET TMP=//C/TEMP
-#
-# Important note: setting the TMP environment variable in POSIX style renders
-# it incompatible with a lot of other applications, including Visual C++. So
-# you should have a separate command window just for vi. All the other
-# variables may be permanently set in the Control Panel\System applet.
-#
-# You can find out more about the restrictions of this facility at
-# <http://www.nentug.org/unix-to-nt/ntposix.htm>.
-#
-# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997
-ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode,
- am, bw, msgr,
- cols#80, it#8, lines#25,
- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[V,
- kcuf1=\E[C, kcuu1=\E[A, nel=\r\E[S, rc=\E[u, rev=\E[7m,
- ri=\E[T, rmso=\E[m, sc=\E[s, sgr0=\E[0m, smso=\E[7m,
-# From: jew@venus.sunquest.com
-# Date: 19 Feb 93 23:41:07 GMT
-# Here's a combination of ansi and vt100 termcap
-# entries that works nearly perfectly for me
-# (Gateway 2000 Handbook and Microsoft Works 3.0):
-pcmw|PC running Microsoft Works,
- am, xenl,
- cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J,
- cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
- cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
- ht=^I, hts=\EH$<2/>, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\r\ED$<5/>,
- rc=\E8, rev=\E[7m$<2/>, rf=/usr/share/lib/tabset/vt100,
- ri=\EM$<5/>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smso=\E[7m$<2/>, smul=\E[4m$<2/>,
- tbc=\E[3g$<2/>,
-
-######## COMMON TERMINAL TYPES
-#
-# This section describes terminal classes and maker brands that are still
-# quite common, but have proprietary command sets not blessed by ANSI.
-#
-
-#### Altos
-#
-# Altos made a moderately successful line of UNIX boxes. In 1990 they were
-# bought out by Acer, a major Taiwanese manufacturer of PC-clones.
-# Acer has a web site at http://www.acer.com.
-#
-# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993
-# His comments suggest they were shipped with the system.
-#
-
-# (altos2: had extension capabilities
-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
-# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\
-# :HL=^AP\r:SP=\E[i:\
-# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
-# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\
-# Comparison with the k* capabilities makes it obvious that the c* things are
-# shift keys. I have renamed them to keys 32 and up accordingly. Also,
-# :sr: was given as a boolean-- esr)
-altos2|alt2|altos-2|altos II,
- cols#80, it#8, lines#24, xmc#0,
- clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[1B, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[1A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
- if=/usr/share/tabset/vt100, il1=\E[L, ind=^J,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kDL=^Am\r,
- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=^AM\r, kel=^AN\r,
- kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
- kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
- kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
- kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=\E[f, kil1=^AJ\r, kind=^AO\r,
- nel=^M^J, rmam=\E[?7l, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smam=\E[?7h, smso=\E[7m, smul=\E[4m,
-# (altos3: had extension capabilities
-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
-# :HL=^AP\r:SP=\E[i:\
-# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
-altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V,
- blink=\E[5p, ri=\EM, sgr0=\E[p, use=altos2,
-altos4|alt4|altos-4|altos IV,
- use=wy50,
-# (altos7: had extension capabilities:
-# :GG#0:GI=\EH8:GF=\EH7:\
-# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
-# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
-# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
-# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
-# Comparison with the k* capabilities makes it obvious that the c* things are
-# shift keys. I have renamed them to keys 32 and up accordingly. I have
-# also made this entry relative to adm12 in order to give it an <sgr>. The
-# <invis> imported by use=adm+sgr may work, let me know. -- esr)
-altos7|alt7|altos VII,
- am, mir,
- cols#80, lines#24, xmc#0,
- acsc=j5k3l2m1n8q\:t4u9v=w0x6, blink=\EG2, bold=\EGt,
- clear=\E+^^, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dim=\EGp, dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, il1=\EE,
- ind=^J, invis=\EG1,
- is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2, kDL=^Am\r,
- kEOL=^An\r, kbs=^H, kcbt=^AK\r, kclr=^AL\r, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=^AM\r, kel=^AN\r,
- kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf32=^A`\r,
- kf33=^Aa\r, kf34=^Ab\r, kf35=^Ac\r, kf36=^Ad\r, kf37=^Ae\r,
- kf38=^Af\r, kf39=^Ag\r, kf4=^AC\r, kf40=^Ah\r, kf41=^Ai\r,
- kf42=^Aj\r, kf43=^Ak\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, kil1=^AJ\r, kind=^AO\r,
- knp=\EK, kpp=\EJ, mc4=\EJ, mc5=\Ed#, nel=^M^J, ri=\Ej,
- rmir=\Er, smir=\Eq, use=adm+sgr,
-altos7pc|alt7pc|altos PC VII,
- kend=\ET, use=altos7,
-
-#### Hewlett-Packard (hp)
-#
-# Hewlett-Packard
-# 8000 Foothills Blvd
-# Roseville, CA 95747
-# Vox: 1-(916)-785-4363 (Technical response line for VDTs)
-# 1-(800)-633-3600 (General customer support)
-#
-#
-# As of March 1998, HP no longer has any terminals in production.
-# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
-# supported (they still have parts). So are the 2392a and 2394a.
-# See the WORKSTATION CONSOLES section for the 700s.
-#
-
-# Generic HP terminal - this should (hopefully) work on any HP terminal.
-hpgeneric|hp|hewlett-packard generic terminal,
- OTbs, OTpt, am, da, db, mir, xhp,
- cols#80, lines#24, lm#0, vt#6,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E&a%p2%dc%p1%dY$<6>, cuu1=\EA, dch1=\EP, dl1=\EM,
- ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1, il1=\EL,
- ind=^J, kbs=^H, kcbt=\Ei, rmir=\ER, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smir=\EQ, smso=\E&dJ, smul=\E&dD, tbc=\E3,
- vpa=\E&a%p1%dY,
-
-hp110|hewlett-packard model 110 portable,
- lines#16, use=hpgeneric,
-
-hp+pfk+cr|hp function keys with CR,
- kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r,
- kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r,
-
-hp+pfk-cr|hp function keys w/o CR,
- kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev,
- kf8=\Ew,
-
-# The hp2621s use the same keys for the arrows and function keys,
-# but not separate escape sequences. These definitions allow the
-# user to use those keys as arrow keys rather than as function
-# keys.
-hp+pfk+arrows|hp alternate arrow definitions,
- kcub1=\Eu\r, kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1@,
- kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, khome=\Ep\r, kind=\Er\r,
- kll=\Eq\r, kri=\Es\r,
-
-hp+arrows|hp arrow definitions,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- kind=\ES, kll=\EF, kri=\ET,
-
-# Generic stuff from the HP 262x series
-#
-hp262x|HP 262x terminals,
- xhp,
- blink=\E&dA, dch1=\EP$<2>, ed=\EJ, ht=\011$<2>, ind=\ES,
- invis=\E&dS, ip=$<2>, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
- kich1=\EQ, kil1=\EL, kind=\ES, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, rev=\E&dB, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
- sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c,
- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB, smul=\E&dD,
-
-# Note: no <home> on HPs since that homes to top of memory, not screen.
-# Due to severe 2621 braindamage, the only way to get the arrow keys to
-# transmit anything at all is to turn on the function key labels
-# with <smkx>, and even then the user has to hold down shift!
-# The default 2621 turns off the labels except when it has to to
-# enable the function keys. If your installation prefers labels
-# on all the time, or off all the time (at the "expense" of the
-# function keys), use 2621-nl or 2621-wl.
-#
-# Note: there are newer ROMs for 2621's that allow you to set
-# strap A so the regular arrow keys xmit \EA, etc, as with the
-# 2645. However, even with this strap set, the terminal stops
-# xmitting if you reset it, until you unset and reset the strap!
-# Since there is no way to set/unset the strap with an escape
-# sequence, we don't use it in the default.
-# If you like, you can use 2621-ba (brain-damaged arrow keys).
-hp2621-ba|2621 w/new rom and strap A set,
- rmkx@, smkx@, use=hp+arrows, use=hp2621,
-
-# hp2621 with function labels. Most of the time they are off,
-# but inside vi, the function key labels appear. You have to
-# hold down shift to get them to xmit.
-hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels,
- is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl,
-hp2621-fl|hp 2621,
- xhp@, xon,
- pb#19200,
- cbt=\Ei, cup=\E&a%p2%dc%p1%dY, dch1=\EP$<2>, ht=\011$<2>,
- ip=$<2>, is2=\E&j@\r, rmkx=\E&j@, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smkx=\E&jB, smso=\E&dD, smul=\E&dD,
- use=hp+pfk+cr, use=hpgeneric,
-
-# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
-hp2621p|hp 2621 with printer,
- mc4=\E&p13C, mc5=\E&p11C, use=hp2621,
-
-hp2621p-a|hp2621p with fn as arrows,
- use=hp+pfk+arrows, use=hp2621p,
-
-# hp2621 with k45 keyboard
-hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- khome=\Eh, rmkx=\E&s0A, smkx=\E&s1A, use=hp2621,
-
-# 2621 using all 48 lines of memory, only 24 visible at any time.
-hp2621-48|48 line 2621,
- lines#48,
- cup=\E&a%p2%dc%p1%dR, home=\EH, vpa=\E&a%p1%dR,
- use=hp2621,
-
-# 2621 with no labels ever. Also prevents vi delays on escape.
-hp2621-nl|hp 2621 with no labels,
- kcub1@, kcud1@, kcuf1@, kcuu1@, khome@, rmkx@, smkx@,
- use=hp2621-fl,
-
-# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
-# (wrong).
-#
-hp2621-nt|hp 2621 w/no tabs,
- ht@, use=hp2621,
-
-# Hp 2624 B with 4 or 10 pages of memory.
-#
-# Some assumptions are made with this entry. These settings are
-# NOT set up by the initialization strings.
-#
-# Port Configuration
-# RecvPace=Xon/Xoff
-# XmitPace=Xon/Xoff
-# StripNulDel=Yes
-#
-# Terminal Configuration
-# InhHndShk=Yes
-# InhDC2=Yes
-# XmitFnctn(A)=No
-# InhEolWrp=No
-#
-# Note: the 2624 DOES have a true <home>, believe it or not!
-#
-# The 2624 has an "error line" to which messages can be sent.
-# This is CLOSE to what is expected for a "status line". However,
-# after a message is sent to the "error line", the next carriage
-# return is EATEN and the "error line" is turned back off again!
-# So I guess we can't define <hs>, <eslok>, <wsl>, <dsl>, <fsl>, <tsl>.
-#
-# This entry supports emacs (and any other program that uses raw
-# mode) at 4800 baud and less. I couldn't get the padding right
-# for 9600.
-#
-# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
-hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B,
- da, db,
- lm#96,
- flash=\E&w13F$<66/>\E&w12F$<66/>\E&w13F$<66/>\E&w12F,
- use=hp+labels, use=scrhp,
-
-# This hp2626 entry does not use any of the fancy windowing stuff
-# of the 2626.
-#
-# Indeed, terminfo does not yet handle such stuff. Since changing
-# any window clears memory, it is probably not possible to use
-# this for screen opt.
-#
-# ed is incredibly slow most of the time - I am guessing at the
-# exact padding. Since the terminal uses xoff/xon this is intended
-# only for cost computation, so that the terminal will prefer el
-# or even dl1 which is probably faster!
-#
-# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
-# extra slow on the last line of the window.
-#
-# The padding probably should be changed.
-#
-hp2626|hp2626a|hp2626p|hp 2626,
- da, db,
- lm#0, pb#19200,
- ed=\ED\EJ$<500>\EC, indn=\E&r%p1%dD, ip=$<4>,
- is2=\E&j@\r, rin=\E&r%p1%dU, use=hp+pfk+cr,
- use=hp+labels, use=scrhp,
-
-# This entry is for sysline. It allocates a 23 line window with
-# a 115 line workspace for regular use, and a 1 line window for
-# the status line.
-#
-# This assumes port 2 is being used.
-# Turn off horizontal line, Create ws #1 with 115 lines,
-# Create ws #2 with 1 line, Create window #1 lines 1-23,
-# Create window #2 lines 24-24, Attach cursor to workspace #1.
-# Note that this clears the tabs so it must be done by tset before
-# it sets the tabs.
-#
-hp2626-s|hp 2626 using only 23 lines,
- eslok, hs,
- lines#23,
- fsl=\E&d@\E&w7f2p1I\E&w4f1I,
- is1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r,
- tsl=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC, use=hp2626,
-# Force terminal back to 24 lines after being 23.
-hp2626-ns|hp 2626 using all 24 lines,
- is1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r,
- use=hp2626,
-# Various entries useful for small windows on 2626.
-hp2626-12|hewlett-packard 2626 12 lines,
- lines#12, use=hp2626,
-hp2626-12x40|hewlett-packard 2626 12 lines 40 columns,
- cols#40, lines#12, use=hp2626,
-hp2626-x40|hewlett-packard 2626 40 columns,
- cols#40, use=hp2626,
-hp2626-12-s|hewlett-packard 2626 11 lines plus status,
- lines#11, use=hp2626-s,
-
-#
-# hp2627 color tubes from University of Wisconsin
-#
-hp2627a-rev|hp 2627 with reverse video colors,
- cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r,
- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmul=\E&v0S\E&d@,
- smul=\E&dD\E&v1S, use=hp2621-nl,
-hp2627a|hp 2627 color terminal with no labels,
- cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r,
- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rmso=\E&v0S,
- rmul=\E&v0S\E&d@, smso=\E&v2S, smul=\E&dD\E&v1S,
- use=hp2621-nl,
-hp2627c|hp 2627 color (cyan) terminal with no labels,
- cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r,
- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, use=hp2627a,
-
-# hp2640a doesn't have the Y cursor addressing feature, and C is
-# memory relative instead of screen relative, as we need.
-#
-hp2640a|hp 2640a,
- cup@, rmkx@, smkx@, use=hp2645,
-
-hp2640b|hp2644a|hp 264x series,
- rmkx@, smkx@, use=hp2645,
-
-# (hp2641a: removed unknown :gu: -- esr)
-hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry,
- am, da, db, mir, xhp,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
- ed=\EJ, el=\EK, hpa=\E&a%p1%2dC, ht=^I,
- if=/usr/share/tabset/std, il1=\EL, ind=^J,
- is2=\EE$<500/>, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
- rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
- vpa=\E&a%p1%2dY,
-
-# This terminal should be used at 4800 baud or less. It needs padding for
-# plain characters at 9600, I guessed at an appropriate cr delay. It really
-# wants ^E/^F handshaking, but that doesn't work well even if you write
-# software to support it.
-hp2645|hp45|HP 2645 series,
- pb#9600,
- blink=\E&dA, cr=\r$<20>, dim=\E&dH, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL,
- kind=\ES, knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, rev=\E&dB,
- rmkx=\E&s0A,
- sgr=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c,
- sgr0=\E&d@, smkx=\E&s1A, smul=\E&dD, use=hpgeneric,
-# You should use this terminal at 4800 baud or less.
-hp2648|hp2648a|HP 2648a graphics terminal,
- clear=\EH\EJ$<50>, cup=\E&a%p2%dc%p1%dY$<20>,
- dch1=\EP$<7>, ip=$<5>, use=hp2645,
-
-# The HP 150 terminal is a fairly vanilla HP terminal, with the
-# clreol standout problem. It also has graphics capabilities and
-# a touch screen, which we don't describe here.
-hp150|hewlett packard Model 150,
- OTbs, use=hp2622,
-
-# HP 2382a terminals, "the little ones." They don't have any
-# alternate character set support and sending out ^N/^O will
-# leave the screen blank.
-hp2382a|hp2382|hewlett packard 2382a,
- da, db,
- lh#1, lm#48,
- acsc@,
- pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
- rmacs@,
- sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c,
- sgr0=\E&d@, smacs@, use=hp+labels, use=scrhp,
-
-hp2621-a|hp2621a-a|hp2621 with fn as arrows,
- use=hp+pfk+arrows, use=hp2621-fl,
-
-# newer hewlett packard terminals
-
-newhpkeyboard|generic entry for HP extended keyboard,
- kbs=^H, kcbt=\Ei, kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, khome=\Eh,
- kich1=\EQ, kil1=\EL, kind=\ET, kll=\EF, knp=\EU, kpp=\EV,
- kri=\ES, krmir=\ER, rmkx=\E&s0A, smkx=\E&s1A,
- use=hp+pfk-cr,
-
-newhp|generic entry for new hewlett packard terminals,
- am, bw, mir, xhp, xon,
- cols#80, lines#24, pb#4800,
- acsc=2[3@4>5I9(\:'JSKWLQMAO#P$Q;R!S"T1U2V4W3X\:Y+Z*dHjGkTlRmFn/q\,t5u6v8w7x.,
- bel=^G, blink=\E&dA, bold=\E&dF, cbt=\Ei, cr=^M, cub1=^H,
- cud1=^J, cuf1=\EC, cuu1=\EA, dch1=\EP$<2>, dim=\E&dH,
- dl1=\EM, ed=\EJ, el=\EK, ht=\011$<2>, hts=\E1, il1=\EL, ind=^J,
- invis=\E&dS, ip=$<2>, is1=\E&jB$<8>, nel=^M^J,
- pfkey=\E&f0a%p1%dk0d%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk0d%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk0d%p2%l%dL%p2%s, rev=\E&dB, ri=\ET,
- rmacs=^O, rmir=\ER, rmso=\E&d@, rmul=\E&d@, rs1=\Eg,
- sgr=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;,
- sgr0=\E&d@\017, smacs=^N, smir=\EQ, smso=\E&dJ, smul=\E&dD,
- tbc=\E3, use=newhpkeyboard,
-
-memhp|memory relative addressing for new HP ttys,
- vt#6,
- clear=\EH\EJ$<40>, cub=\E&a-%p1%dC, cud=\E&a+%p1%dR,
- cuf=\E&a+%p1%dC, cup=\E&a%p1%dr%p2%dC, cuu=\E&a-%p1%dR,
- home=\EH, hpa=\E&a%p1%dC, ll=\E&a23R\r,
- mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dR, use=newhp,
-
-scrhp|screen relative addressing for new HP ttys,
- clear=\E&a0c0Y\EJ$<40>, cub=\E&a-%p1%dC,
- cud=\E&a+%p1%dR, cuf=\E&a+%p1%dC,
- cup=\E&a%p1%dy%p2%dC$<10>, cuu=\E&a-%p1%dR,
- home=\E&a0y0C, hpa=\E&a%p1%dC, ll=\E&a0y0C\EA,
- mrcup=\E&a%p1%dr%p2%dC, vpa=\E&a%p1%dY, use=newhp,
-
-# (hp+labels: added label values from a BRL termcap -- esr)
-hp+labels|"standard" label info for new HP ttys,
- lh#2, lw#8, nlab#8,
- lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8,
- pln=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s,
- rmln=\E&j@, smln=\E&jB,
-
-hp+printer|"standard" printer info for HP ttys,
- ff=\E&p4u0C, mc0=\EH\E&p4dF, mc4=\E&p13C, mc5=\E&p11C,
-
-
-# The new hp2621b is kind of a cross between the old 2621 and the
-# new 262x series of machines. It has dip-switched options.
-# The firmware has a bug in it such that if you give it a null
-# length label, the following character is eaten!
-hp2621b|hp 2621b with old style keyboard,
- lh#1, lm#48, lw#8, nlab#8,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- kind=\ET, kll=\EF, kri=\ES,
- pln=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r,
- smln=\E&jB, use=hp2621,
-
-hp2621b-p|hp 2621b with printer,
- use=hp+printer, use=hp2621b,
-
-# hp2621b - new 2621b with new extended keyboard
-# these are closer to the new 26xx series than the other 2621b
-hp2621b-kx|hp 2621b with extended keyboard,
- use=newhpkeyboard, use=hp2621b,
-
-hp2621b-kx-p|hp 2621b with new keyboard & printer,
- use=hp+printer, use=hp2621b-kx,
-
-# Some assumptions are made in the following entries.
-# These settings are NOT set up by the initialization strings.
-#
-# Port Configuration
-# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes
-#
-# Terminal Configuration
-# InhHndShk(G)=Yes InhDC2(H)=Yes
-# XmitFnctn(A)=No InhEolWrp=No
-#
-#
-# Hp 2622a & hp2623a display and graphics terminals
-#
-hp2622|hp2622a|hp 2622,
- da, db,
- lm#0, pb#19200,
- is2=\E&dj@\r, use=hp+pfk+cr, use=hp+labels, use=scrhp,
-
-# The 2623 is a 2622 with extra graphics hardware.
-hp2623|hp2623a|hp 2623,
- use=hp2622,
-
-hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer,
- use=hp+printer, use=hp2624,
-
-# The hewlett packard B can have an optional extra 6 pages of memory.
-hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory,
- lm#240, use=hp2624,
-
-hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer,
- lm#240, use=hp2624b-p,
-
-# Color manipulations for HP terminals
-hp+color|hp with colors,
- ccc,
- colors#16, ncv#17, pairs#7,
- initp=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI,
- oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I,
- op=\E&v0S, scp=\E&v%p1%dS,
-
-# <is2> sets the screen to be 80 columns wide
-hp2397a|hp2397|hewlett packard 2397A color terminal,
- is2=\E&w6f80X, use=memhp, use=hp+labels, use=hp+color,
-
-# HP 700/44 Setup parameters:
-# Terminal Mode HP-PCterm
-# Inhibit Auto Wrap NO
-# Status Line Host Writable
-# PC Character Set YES
-# Twenty-Five Line Mode YES
-# XON/XOFF @128 or 64 (sc)
-# Keycode Mode NO or YES (sc)
-# Backspace Key BS or BS/DEL
-#
-# <is2> sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
-# \E\\? does not turn off keycode mode
-# <smsc> sets alternate start/stop; keycode on
-hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode,
- am, eo, xenl, xon,
- cols#80, lines#25,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[2J\E[H,
- cnorm=\E[?25h, cr=^M, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
- ind=^J,
- is2=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\\,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
- kf2=\E[18~, kf3=\E[19~, kf4=\E[20~, kf5=\E[21~, kf6=\E[23~,
- kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khome=\E[1~, knp=\E[6~,
- kpp=\E[5~, rmam=\E[?7l,
- rmsc=\E[>11l\EP1**x0/11;1/13\E[m\E\\, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
- smsc=\E[>11h\EPO**x0/65;1/67\E\\$<250>, smso=\E[7m,
- smul=\E[4m, xoffc=g, xonc=e,
-#
-# (hp2392: copied <rmir> here from hpex -- esr)
-hp2392|239x series,
- cols#80,
- cbt=\Ei, cup=\E&a%p1%dy%p2%dC, kf1=\Ep\r, kf2=\Eq\r,
- kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r,
- kf8=\Ew\r, khome=\Eh, kind=\EU, knp=\Eu, kpp=\Ev, kri=\EV,
- rmir=\ER, rmul=\E&d@, smir=\EQ, smul=\E&dD, vpa=\E&a%p1%dY,
- use=hpsub,
-
-hpsub|hp terminals -- capability subset,
- am, da, db, mir, xhp, xon,
- lines#24,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC,
- ht=^I, if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J,
- is2=\E&s1A\E<\E&k0\\, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\Eh, rmkx=\E&s0A, rmso=\E&d@,
- sgr0=\E&d@, smkx=\E&s1A, smso=\E&dB,
-
-# hpex:
-# May be used for most 24 x 80 hp terminals,
-# but has no padding added, so may allow runover in some terminals at high
-# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and
-# hp98x5 terminal emulators or hp98x6 consoles.
-# Adds xy-cursor addressing, vertical cursor addressing, home,
-# last line, and underline capabilities.
-#
-# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
-# moved <rmir> here from hpsub -- esr)
-hpex|hp extended capabilites,
- cr=^M, cud1=^J, cup=\E&a%p1%dy%p2%dC, ht=^I, ind=^J, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, rmir=\ER, rmul=\E&d@, smir=\EQ,
- smul=\E&dD, vpa=\E&a%p1%dY, use=hpsub,
-
-# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
-hp2|hpex2|hewlett-packard extended capabilities newer version,
- am, da, db, mir, xhp,
- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, xmc#0,
- bel=^G, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
- il1=\EL, ind=^J, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, ktbc=\E3, meml=\El, memu=\Em,
- pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
- pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
- pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
- pln=\E&f%p1%dk%p2%l%dd0L%p2%s, rmir=\ER, rmkx=\E&s0A,
- rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
- sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB,
- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-# HP 236 console
-# From: <ddavis@ic.berkeley.edu>
-hp236|hp236 internal terminal emulator,
- OTbs, am,
- cols#80, lines#24,
- clear=\EF, cnorm=\EDE, cub1=^H,
- cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\EDB,
- dch1=\EJ, dl1=\EH, el=\EK, ich1=\EI, il1=\EG, rmso=\ECI,
- sgr0=\ECI, smso=\EBI,
-
-# This works on a hp300 console running Utah 4.3 BSD
-# From: Craig Leres <leres@okeeffe.berkeley.edu>
-hp300h|HP Catseye console,
- OTbs, am, da, db, mir, xhp,
- cols#128, lines#51, lm#0, xmc#0,
- bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I,
- if=/usr/share/tabset/stdcrt, il1=\EL, ind=^J, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\Eh,
- rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@,
- smir=\EQ, smkx=\E&s1A, smso=\E&dB, smul=\E&dD, tbc=\E3,
- vpa=\E&a%p1%dY,
-# From: Greg Couch <gregc@ernie.berkeley.edu>
-hp9837|hp98720|hp98721|HP 9000/300 workstations,
- OTbs, am, da, db, mir, xhp,
- cols#128, it#8, lines#46, lm#0,
- bel=^G, cbt=\Ei, clear=\E&a0y0C\EJ, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
- il1=\EL, ind=^J, is2=\E&v0m1b0i&j@, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, khome=\Eh, kich1=\EQ, kil1=\EL, knp=\EU,
- kpp=\EV, rmir=\ER, rmkx=\E&s0A, rmso=\E&v0S, rmul=\E&d@,
- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smso=\E&v5S, smul=\E&dD,
- tbc=\E3, vpa=\E&a%p1%dY,
-# HP 9845 desktop computer from BRL
-# (hp9845: removed unknown capability :gu: -- esr)
-hp9845|HP 9845,
- OTbs, am, da, db, eo, mir, xhp,
- cols#80, lines#21,
- OTbc=\ED, clear=\EH\EJ, cuf1=\EC, cup=\E&a%p2%2dc%p1%2dY,
- cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK,
- if=/usr/share/tabset/std, il1=\EL, rmir=\ER, rmso=\E&d@,
- smir=\EQ, smso=\E&dB,
-# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
-# (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>;
-# added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
-hp98550|hp98550a|HP 9000 Series 300 color console,
- OTbs, am, da, db, mir, xhp,
- cols#128, it#8, lines#49, lm#0,
- acsc=, bel=^G, blink=\E&dA, bold=\E&dJ, cbt=\Ei, civis=\E*dR,
- clear=\EH\EJ, cnorm=\E*dQ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E&a%p1%dy%p2%dC, cuu1=\EA, dch1=\EP, dim=\E&dH,
- dl1=\EM, ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=^I, hts=\E1,
- if=/usr/share/tabset/std, il1=\EL, ind=^J, invis=\E&ds,
- kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, ked=\EJ, kel=\EK, kf1=\Ep,
- kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\Eh, khts=\E1, kich1=\EQ, kil1=\EL, kind=\ES, kll=\EF,
- knp=\EU, kpp=\EV, kri=\ET, krmir=\ER, ktbc=\E3, rev=\E&dJ,
- rmacs=^O, rmir=\ER, rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smso=\E&dJ,
- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-# From: Victor Duchovni <vic@fine.princeton.edu>
-# (hp700-wy: removed obsolete ":nl=^J:";
-# replaced /usr/share/tabset/hp700-wy with std because <it#8>,<hts=\E1> -- esr)
-hp700-wy|HP700/41 emulating wyse30,
- OTbs, am, bw, mir, msgr,
- cols#80, it#8, lines#24, xmc#1,
- cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET$<10/>, home=^^, ht=^I, hts=\E1,
- if=/usr/share/tabset/stdcrt, il1=\EE$<0.7*/>,
- is1=\E~"\EC\Er\E(\EG0\003\E`9\E`1, kbs=\177, kcbt=\EI,
- kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, ked=\EY,
- kel=\ET, khome=^^, khts=\EI, kich1=\Eq, krmir=\Er, ll=^^^K,
- ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>,
- sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>,
- smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c,
-hp70092|hp70092a|hp70092A|HP 700/92,
- am, da, db, xhp,
- cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8,
- acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA,
- bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=^M, cub1=^H,
- cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC, cuu1=\EA,
- dch1=\EP, dim=\E&dH, dl1=\EM, el=\EK, hpa=\E&a%p1%dC, ht=^I,
- hts=\E1, il1=\EL, kbs=^H, kclr=\EJ, kctab=\E2, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EP, kdl1=\EM,
- ked=\EJ, kel=\EK, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, khome=\Eh, khts=\E1, kich1=\EQ,
- kil1=\EL, kind=\ES, kll=\EF, knp=\EU, kpp=\EV, kri=\ET,
- krmir=\ER, ktbc=\E3, rev=\E&dB, ri=\ET, rmacs=^O, rmir=\ER,
- rmkx=\E&s0A, rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-bobcat|sbobcat|HP 9000 model 300 console,
- am, da, db, mir, xhp,
- cols#128, it#8, lines#47, xmc#0,
- cbt=\Ei, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\E&a%p1%dy%p2%dC$<6/>, cuu1=\EA, dch1=\EP,
- dl1=\EM$<10*/>, ed=\EJ, el=\EK, hpa=\E&a%p1%dC$<6/>, ht=^I,
- il1=\EL$<10*/>, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, khome=\Eh, nel=^M^J, rmir=\ER,
- rmkx=\E&s0A, rmso=\E&d@, rmul=\E&d@, sgr0=\E&d@, smir=\EQ,
- smkx=\E&s1A, smso=\E&dB, smul=\E&dD, vpa=\E&a%p1%dY$<6/>,
-gator-t|HP 9000 model 237 emulating extra-tall AAA,
- lines#94, use=gator,
-gator|HP 9000 model 237 emulating AAA,
- bw, km, mir, ul,
- cols#128, it#8, lines#47,
- bel=^G, cbt=\E[Z, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM,
- dch=\E[%p1%dP$<4/>, dch1=\E[P, dl=\E[%p1%dM$<1*/>,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%i%p1%d`,
- ht=^I, ich=\E[%p1%d@$<4/>, ich1=\E[@, il=\E[%p1%dL$<1*/>,
- il1=\E[L, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J,
- rep=%p1%c\E[%p2%db$<1*/>, rev=\E[7m, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-gator-52|HP 9000 model 237 emulating VT52,
- cols#128, lines#47, use=vt52,
-gator-52t|HP 9000 model 237 emulating extra-tall VT52,
- lines#94, use=gator-52,
-
-#### Honeywell-Bull
-#
-# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93
-#
-
-# Honeywell Bull terminal. Its cursor and function keys send single
-# control characters and it has standout/underline glitch. Most programs
-# do not like these features/bugs. Visual bell is realized by flashing the
-# "keyboard locked" LED.
-dku7003-dumb|Honeywell Bull DKU 7003 dumb mode,
- cols#80, lines#25,
- clear=^]^_, cr=^M, cub1=^Y, cud1=^K, cuf1=^X,
- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, ed=^_, el=\E[K,
- flash=\E[2h\E[2l, home=^], ht=^I, ind=^J, kbs=^H, kcub1=^Y,
- kcud1=^K, kcuf1=^X, kcuu1=^Z, khome=^], nel=^M^J,
-dku7003|Honeywell Bull DKU 7003 all features described,
- msgr,
- xmc#1,
- blink=\E[5m, bold=\E[7m, dim=\E[2m, rev=\E[7m, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
- use=dku7003-dumb,
-
-#### Lear-Siegler (adm)
-#
-# These guys are long since out of the terminals business, but
-# in 1995 many current terminals still have an adm type as one of their
-# emulations (usually their stupidest, and usually labeled adm3, though
-# these `adm3' emulations normally have adm3a+ capabilities).
-#
-# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
-# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
-# was being held to ground would trigger a send of the top line on the screen.
-# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
-# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
-# for clearing up this point.)
-
-adm1a|adm1|lsi adm1a,
- am,
- cols#80, lines#24,
- bel=^G, clear=\E;$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, home=^^,
- ind=^J,
-adm2|lsi adm2,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, ich1=\EQ, il1=\EE, ind=^J,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-# (adm3: removed obsolete ":ma=^K^P:" -- esr)
-adm3|lsi adm3,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, ind=^J,
-# The following ADM-3A switch settings are assumed for normal operation:
-# SPACE U/L_DISP CLR_SCRN 24_LINE
-# CUR_CTL LC_EN AUTO_NL FDX
-# Other switches may be set for operator convenience or communication
-# requirements. I recommend
-# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF
-# ETX_OFF EOT_OFF
-# Most of these terminals required an option ROM to support lower case display.
-# Open the case and look at the motherboard; if you see an open 24-pin DIP
-# socket, you may be out of luck.
-#
-# (adm3a: some capabilities merged in from BRl entry -- esr)
-adm3a|lsi adm3a,
- OTbs, am,
- cols#80, lines#24,
- OTma=^K^P, OTnl=^J, bel=^G, clear=\032$<1/>, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, rs2=^N,
-adm3a+|adm3a plus,
- kbs=^H, use=adm3a,
-# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
-adm5|lsi adm5,
- xmc#1,
- bel=^G, cr=^M, cud1=^J, ed=\EY, el=\ET, kbs=^H, khome=^^,
- rmso=\EG, smso=\EG, use=adm3a+,
-# A lot of terminals other than adm11s use these. Wherever you see
-# use=adm+sgr with some of its capabilities disabled, try the
-# disabled ones. They may well work but not have been documented or
-# expressed in the using entry. We'd like to cook up an <sgr> but the
-# <rmacs>/<smacs> sequences of the using entries vary too much.
-adm+sgr|adm style highlight capabilities,
- invis=\EG1, rev=\EG4, rmso=\EG0, rmul=\EG0, sgr0=\EG0,
- smso=\EG4, smul=\EG8,
-# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL
-# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs>
-# <khome> from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. <clear> could also
-# be ^Z, according to his entry.
-# (adm11: <smul>=\EG4 was obviously erroneous because it also said
-# <rev>=\EG4. Looking at other ADMs confirms this -- esr)
-adm11|LSI ADM-11,
- OTbs, am, hs,
- OTkn#8, cols#80, lines#24,
- OTnl=^J, bel=^G, blink=\EG2, clear=\E*, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dsl=\Eh, ed=\EY, el=\ET, fsl=\E(\r, home=^^, ht=^I,
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, khome=^^, nel=^M^J, tsl=\EF\E),
- use=adm+sgr,
-# From: Andrew Scott Beals <bandy@lll-crg.ARPA>
-# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995
-# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
-# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had
-# <is2>=\Eq but that looked wrong; this <is2> is from Dave Yost <esquire!yost>
-# via BRL. That entry asserted <xmc#1>, but I've left that out because
-# neither earlier nor later ADMSs have it -- esr)
-#
-# You will need to get into the supervisor setup before you can set
-# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
-# see a lot more setup options.
-#
-# While in supervisor setup you can also use following codes:
-#
-# Ctrl-P Personality character selections (configure for example what
-# arrow keys send, if I recall correctly)
-# Ctrl-T tabs 1-80 use left&right to move and up to set and
-# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor
-# Ctrl-B Binary setup (probably not needed. I think that everything can
-# be set using normal setup)
-# Ctrl-A Answerback mode (enter answerback message)
-# Ctrl-U User friendly mode (normal setup)
-# Ctrl-D Defaults entire setup and function keys from EPROM tables
-# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
-# Ctrl-R Reads both setup and functions keys from NVM.
-# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
-#
-# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
-# RTS/CTS used nowadays with virtually every modem and computer. 19200
-# bps works fine with hardware flow control.
-#
-# The following null-modem cable should fix this and enable you to use
-# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
-# set ADM-12+ for DTR handshaking from supervisor setup.
-#
-# PC Serial ADM-12+
-# -------- -------
-# 2 - 3
-# 3 - 2
-# 4 - 5
-# 5 - 20
-# 6,8 - 4
-# 7 - 7
-# 20 - 6,8
-#
-adm12|lsi adm12,
- OTbs, OTpt, am, mir,
- OTug#1, cols#80, it#8, lines#24,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
- is2=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, smir=\Eq, tbc=\E0,
- use=adm+sgr,
-# (adm20: removed obsolete ":kn#7:" -- esr)
-adm20|lear siegler adm20,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cuf1=^L,
- cup=\E=%i%p2%{31}%+%c%p1%{31}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, ht=^I, ich1=\EQ, il1=\EE,
- kf1=^A, kf2=^B, kf3=^W, kf4=^D, kf5=^E, kf6=^X, kf7=^Z, rmso=\E(,
- sgr0=\E(, smso=\E),
-adm21|lear siegler adm21,
- xmc#1,
- bel=^G, cr=^M, cud1=^J, dch1=\EW, dl1=30*\ER, ed=\EY, el=\ET,
- ich1=\EQ, il1=30*\EE, ind=^J, invis@, kbs=^H, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, use=adm+sgr,
- use=adm3a,
-# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
-# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
-# removed bogus-looking \200 from before <cup>. -- esr)
-adm22|lsi adm22,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\Ey, el=\Et, home=^^, ht=\Ei, ich1=\EQ, il1=\EE,
- is2=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0,
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, khome=^^, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
- lf6=F6, lf7=F7, rmso=\E(, sgr0=\E(, smso=\E),
-# ADM 31 DIP Switches
-#
-# This information comes from two versions of the manual for the
-# Lear-Siegler ADM 31.
-#
-# Main board:
-# rear of case
-# +-||||-------------------------------------+
-# + S1S2 ||S +
-# + ||3 +
-# + +
-# + ||S +
-# + ||4 +
-# + +
-# + +
-# + +
-# + +
-# + +
-# +-+ +-+
-# + +
-# + S5 S6 S7 +
-# + == == == +
-# +----------------------------------------------+
-# front of case (keyboard)
-#
-# S1 - Data Rate - Modem
-# S2 - Data Rate - Printer
-# ------------------------
-# Data Rate Setting
-# -------------------
-# 50 0 0 0 0
-# 75 1 0 0 0
-# 110 0 1 0 0
-# 134.5 1 1 0 0
-# 150 0 0 1 0
-# 300 1 0 1 0
-# 600 0 1 1 0
-# 1200 1 1 1 0
-# 1800 0 0 0 1
-# 2000 1 0 0 1
-# 2400 0 1 0 1
-# 3600 1 1 0 1
-# 4800 0 0 1 1
-# 7200 1 0 1 1
-# 9600 0 1 1 1
-# x 1 1 1 1
-#
-# S3 - Interface/Printer/Attributes
-# ---------------------------------
-# Printer Busy Control
-# sw1 sw2 sw3
-# ---------------
-# off off off Busy not active, CD disabled
-# off off on Busy not active, CD enabled
-# off on off Busy active on J5-20, CD disabled
-# on off off Busy active on J5-19, CD disabled - Factory Set.
-# on off on Busy active on J5-19, CD enabled
-#
-# sw4 Used in conjuction with S4 for comm interface control - Fact 0
-#
-# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0
-#
-# sw6 ON enables printer BUSY active LOW - Factory Setting
-# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses
-#
-# sw7 ON - steady cursor - Factory Setting
-# OFF - blinking cursor
-#
-# sw8 ON causes selected attribute character to be displayed
-# OFF causes SPACE to be displayed instead - Factory Setting
-#
-# S4 - Interface
-# --------------
-# Modem Interface
-# S3 S4 S4 S4 S4
-# sw4 sw1 sw2 sw3 sw4
-# ---------------------------
-# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and
-# Current Loop disabled - Factory Setting
-# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect
-# disabled
-# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and
-# Current Loop Disabled
-#
-# sw5 ON disables dot stretching mode - Factory Setting
-# OFF enables dot stretching mode
-# sw6 ON enables blanking function
-# OFF enables underline function - Factory Setting
-# sw7 ON causes NULLS to be displayed as NULLS
-# OFF causes NULLS to be displayed as SPACES - Factory Setting
-#
-# S5 - Word Structure
-# -------------------
-# sw1 ON enables BREAK key - Factory Setting
-# OFF disables BREAK key
-# sw2 ON selects 50Hz monitor refresh rate
-# OFF selects 60Hz monitor refresh rate - Factory Setting
-#
-# Modem Port Selection
-# sw3 sw4 sw5
-# ---------------
-# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits
-# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits
-# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set.
-# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit
-# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits
-# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit
-# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit
-# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit
-#
-# sw6 ON sends bit 8 a 1 (mark)
-# OFF sends bit 8 as 0 (space) - Factory Setting
-# sw7 ON selects Block Mode
-# OFF selects Conversation Mode - Factory Setting
-# sw8 ON selects Full Duplex operation
-# OFF selects Half Duplex operation - Factory Setting
-#
-# S6 - Printer
-# ------------
-# sw1, sw2, sw6, sw7 Reserved - Factory 0
-#
-# Printer Port Selection
-# same as Modem above, bit 8 (when 8 DATA bits) is always = 0
-#
-# sw8 ON enables Printer Port
-# OFF disables Printer Port - Factory Setting
-#
-# S7 - Polling Address
-# --------------------
-# sw1-7 Establish ASCII character which designates terminal polling address
-# ON = logic 0
-# OFF = logic 1 - Factory Setting
-# sw8 ON enables Polling Option
-# OFF disables Polling Option - Factory Setting
-#
-#
-# On some older adm31s, S4 does not exist, and S5-sw6 is not defined.
-#
-# This adm31 entry uses underline as the standout mode.
-# If the adm31 gives you trouble with standout mode, check the DIP switch in
-# position 6, bank @c11, 25% from back end of the circuit board. Should be
-# OFF. If there is no such switch, you have an old adm31 and must use oadm31.
-# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
-adm31|lsi adm31 with sw6 set for underline mode,
- OTbs, am, mir,
- cols#80, lines#24,
- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, ind=^J, is2=\Eu\E0,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, rmir=\Er, rmso=\EG0,
- rmul=\EG0, sgr0=\EG0, smir=\Eq, smso=\EG1, smul=\EG1,
-adm31-old|o31|old adm31,
- rmul@, smso=\EG4, smul@, use=adm31,
-# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL
-adm36|LSI ADM36,
- OTbs, OTpt,
- OTkn#4,
- if=/usr/share/tabset/vt100,
- is2=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l,
- use=vt100,
-# (adm42: removed obsolete ":ma=^K^P:" -- esr)
-adm42|lsi adm42,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, cbt=\EI, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ht=^I,
- il1=\EE$<270>, ind=^J, invis@, ip=$<6*>, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, khome=^^, pad=\177, rmir=\Er, rmul@,
- smir=\Eq, smul@, use=adm+sgr,
-# The following termcap for the Lear Siegler ADM-42 leaves the
-# "system line" at the bottom of the screen blank (for those who
-# find it distracting otherwise)
-adm42-ns|lsi adm-42 with no system line,
- cbt=\EI\EF \011, clear=\E;\EF \011,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<6>\EF \011,
- dch1=\EW\EF \011, dl1=\ER\EF \011, ed=\EY\EF \011,
- el=\ET\EF \011, il1=\EE\EF \011, rmir=\Er\EF \011,
- smir=\Eq\EF \011, use=adm42,
-# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985.
-# The insert mode of this terminal is commented out because it's broken for our
-# purposes in that it will shift the position of every character on the page,
-# not just the cursor line!
-# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
-adm1178|1178|lsi adm1178,
- am,
- cols#80, lines#24, xmc#1,
- bel=^G, bold=\E(, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\EC\E3 \E3(, dch1=\EW, dl1=\ER, ed=\EY, el=\ET,
- home=^^, ht=^I, il1=\EE, ind=^J, ip=$<6*/>, kbs=^H, kcub1=^H,
- kcud1=^J, nel=^M^J, pad=\177, rev=\EG4, rmso=\EG0, rmul=\EG0,
- sgr0=\E), smso=\EG4, smul=\EG1,
-
-#### Prime
-#
-# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings
-# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr.
-# Prime merged with ComputerVision in the late 1980s; you can reach them at:
-#
-# ComputerVision Services
-# 500 Old Connecticut Path
-# Framingham, Mass.
-#
-
-# Standout mode is dim reverse-video.
-pt100|pt200|wren|fenix|prime pt100/pt200,
- am, bw, mir, msgr,
- cols#80, it#8, lines#24,
- cbt=\E[Z, clear=\E?, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E0%p1%{33}%+%c%p2%{33}%+%c, cuu=\E[%p1%dA,
- cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl1=\E[M,
- ed=\E[J\E[r, el=\E[K\E[t, flash=\E$$<200/>\E$P,
- home=\E$B, ht=^I, il1=\E[L\E[t, ind=^J, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E$A, nel=^M^J,
- rmcup=, rmir=\E[4l, rmkx=\E[>13l, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m,
- smcup=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q,
- smir=\E[4h, smkx=\E[>13h, smso=\E[2;7m, smul=\E[4m,
-pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH, use=pt100,
-pt250|Prime PT250,
- rmso@, smso@, use=pt100,
-pt250w|Prime PT250 in 132-column mode,
- rmso@, smso@, use=pt100w,
-
-#### Qume (qvt)
-#
-# Qume, Inc.
-# 3475-A North 1st Street
-# San Jose CA 95134
-# Vox: (800)-457-4447
-# Fax: (408)-473-1510
-# Net: josed@techsupp.wyse.com (Jose D'Oliveira)
-#
-# Qume was bought by Wyse, but still (as of early 1995) has its own support
-# group and production division.
-#
-# Discontinued Qume models:
-#
-# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
-# built to replace them, and a qvt119+ which was a 101+ with available wide
-# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations
-# and an ANSI-compatible qvt203 that replaced it. Qume started producing
-# ANSI-compatible terminals with the qvt323 and qvt61.
-#
-# Current Qume models (as of February 1995):
-#
-# All current Qume terminals have ANSI-compatible operation modes.
-# Qume is still producing the qvt62, which features emulations for other
-# popular lines such as ADDS, and dual-host capabilities. The qvt82 is
-# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal
-# with many emulations including Wyse370, Wyse 325, etc. Their newest
-# model is the qvt520, which is vt420-compatible.
-#
-# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
-#
-# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
-# setup mode. Shift-s should be a configuration save to NVRAM.
-
-qvt101|qvt108|qume qvt 101 and QVT 108,
- xmc#1, use=qvt101+,
-
-# This used to have <cvvis=\E.2> but no <cnorm> or <civis>. The BSD termcap
-# file had <cvvis=\EM4 \200\200\200>. I've done the safe thing and yanked
-# both. The <rev> is from BSD, which also claimed bold=\E( and dim=\E).
-# What seems to be going on here is that this entry was designed so that
-# the normal highlight is bold and standout is dim plus something else
-# (reverse-video maybe? But then, are there two <rev> sequences?)
-qvt101+|qvt101p|qume qvt 101 PLUS product,
- am, bw, hs, ul,
- cols#80, lines#24, xmc#0,
- bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
- flash=\Eb$<200>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, il1=\EE, ind=^J, invis@, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdl1=\ER, ked=\EY, kel=\ET,
- kf1=^A@\r, kf10=^AI\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\EQ, kil1=\EE, mc4=\EA, mc5=\E@, rmso=\E(,
- smso=\E0P\E), tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
-qvt102|qume qvt 102,
- cnorm=\E., use=qvt101,
-# (qvt103: added <rmam>/<smam> based on init string -- esr)
-qvt103|qume qvt 103,
- am, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[2J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, home=\E[H, ht=^I,
- hts=\EH, ind=^J, kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E[?1l\E>,
- rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
- sgr0=\E[m$<2>, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-qvt103-w|qume qvt103 132 cols,
- cols#132, lines#24,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt103,
-qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals,
- am, hs, mir, msgr,
- cols#80, lines#24, xmc#0,
- bel=^G, cbt=\EI, clear=\E*1, cnorm=\E.4, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey,
- el=\Et, flash=\En0$<200>\En1, fsl=^M, home=^^, ht=^I,
- hts=\E1, il1=\EE, ind=^J, is2=\EDF\EC\EG0\Er\E(\E%EX,
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- mc4=\EA, mc5=\E@, ri=\EJ, rmir=\Er, smir=\Eq, smul=\EG8,
- tbc=\E3, tsl=\Eg\Ef, use=adm+sgr,
-qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines,
- lines#25, use=qvt119+,
-qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode,
- cols#132,
- is2=\EDF\EC\EG0\Er\E(\E%\EX\En4, use=qvt119+,
-qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25,
- lines#25, use=qvt119+,
-qvt203|qvt203+|qume qvt 203 Plus,
- dch1=\E[P$<7>, dl1=\E[M$<99>, il1=\E[L$<99>, ind=\n$<30>,
- ip=$<7>, kf0=\E[29~, kf1=\E[17~, kf2=\E[18~, kf3=\E[19~,
- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
- kf9=\E[28~, rmir=\E[4l, smir=\E[4h, use=qvt103,
-qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video),
- cols#132, lines#24,
- rs2=\E>\E[?3h\E[?4l\E[?5l\E[?8h, use=qvt203,
-#
-# Since a command is present for enabling 25 data lines,
-# a specific terminfo entry may be generated for the 203.
-# If one is desired for the QVT 119 PLUS then 25 lines must
-# be selected in the status line (setup line 9).
-#
-qvt203-25|QVT 203 PLUS with 25 by 80 column mode,
- cols#80, lines#25,
- is2=\E[=40h\E[?3l, use=qvt203,
-qvt203-25-w|QVT 203 PLUS with 25 by 132 columns,
- cols#132, lines#25,
- rs2=\E[?3h\E[=40h, use=qvt203,
-
-#### Televideo (tvi)
-#
-# TeleVideo
-# 550 East Brokaw Road
-# PO Box 49048 95161
-# San Jose CA 95112
-# Vox: (408)-954-8333
-# Fax: (408)-954-0623
-#
-#
-# There are some tvi terminals that require incredible amounts of padding and
-# some that don't. I'm assuming tvi912 and tvi920 are the old slow ones, and
-# tvi912b, tvi912c, tvi920b, tvi920c are the new ones that don't need padding.
-#
-# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer
-# Televideo terminals are ANSI and PC-ANSI compatible.
-
-tvi803|televideo 803,
- clear=\E*$<10>, use=tvi950,
-
-# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
-# Switch settings are:
-#
-# S1 1 2 3 4
-# D D D D 9600
-# D D D U 50
-# D D U D 75
-# D D U U 110
-# D U D D 135
-# D U D U 150
-# D U U D 300
-# D U U U 600
-# U D D D 1200
-# U D D U 1800
-# U D U D 2400
-# U D U U 3600
-# U U D D 4800
-# U U D U 7200
-# U U U D 9600
-# U U U U 19200
-#
-# S1 5 6 7 8
-# U D X D 7N1 (data bits, parity, stop bits) (X means ignored)
-# U D X U 7N2
-# U U D D 7O1
-# U U D U 7O2
-# U U U D 7E1
-# U U U U 7E2
-# D D X D 8N1
-# D D X U 8N2
-# D U D D 8O1
-# D U U U 8E2
-#
-# S1 9 Autowrap
-# U on
-# D off
-#
-# S1 10 CR/LF
-# U do CR/LF when CR received
-# D do CR when CR received
-#
-# S2 1 Mode
-# U block
-# D conversational
-#
-# S2 2 Duplex
-# U half
-# D full
-#
-# S2 3 Hertz
-# U 50
-# D 60
-#
-# S2 4 Edit mode
-# U local
-# D duplex
-#
-# S2 5 Cursor type
-# U underline
-# D block
-#
-# S2 6 Cursor down key
-# U send ^J
-# D send ^V
-#
-# S2 7 Screen colour
-# U green on black
-# D black on green
-#
-# S2 8 DSR status (pin 6)
-# U disconnected
-# D connected
-#
-# S2 9 DCD status (pin 8)
-# U disconnected
-# D duplex
-#
-# S2 10 DTR status (pin 20)
-# U disconnected
-# D duplex
-# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added <khome>, <cub1>, <cud1>,
-# <ind>, <hpa>, <vpa>, <am>, <msgr> from SCO entry -- esr)
-tvi910|televideo model 910,
- OTbs, am, msgr,
- cols#80, it#8, lines#24, xmc#1,
- bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
- home=\E=\001\001, hpa=\E]%p1%{32}%+%c, ht=^I,
- if=/usr/share/tabset/stdcrt, ind=^J, invis@, kbs=^H,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kf0=^AI\r, kf1=^A@\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-# From: Alan R. Rogers <rogers%albany@csnet-relay>
-# as subsequently hacked over by someone at SCO
-# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr)
-#
-# Here are the 910+'s DIP switches (U = up, D = down, X = don't care):
-#
-# S1 1 2 3 4:
-# D D D D 9600 D D D U 50 D D U D 75 D D U U 110
-# D U D D 135 D U D U 150 D U U D 300 D U U U 600
-# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600
-# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200
-#
-# S1 5 6 7 8:
-# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2
-# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2
-# D U D D 8O1 D U U U 8E2
-#
-# S1 9 Autowrap (U = on, D = off)
-# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received)
-# S2 1 Mode (U = block, D = conversational)
-# S2 2 Duplex (U = half, D = full)
-# S2 3 Hertz (U = 50, D = 60)
-# S2 4 Edit mode (U = local, D = duplex)
-# S2 5 Cursor type (U = underline, D = block)
-# S2 6 Cursor down key (U = send ^J, D = send ^V)
-# S2 7 Screen colour (U = green on black, D = black on green)
-# S2 8 DSR status (pin 6) (U = disconnected, D = connected)
-# S2 9 DCD status (pin 8) (U = disconnected, D = connected)
-# S2 10 DTR status (pin 20) (U = disconnected, D = connected)
-#
-tvi910+|televideo 910+,
- dch1=\EW, dl1=\ER$<33*>, home=^^, ich1=\EQ, il1=\EE$<33*>,
- kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r,
- kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r,
- ll=\E=7\s, use=tvi910,
-
-# (tvi912: removed obsolete ":ma=^K^P^L :", added <flash> and
-# <khome> from BRL entry -- esr)
-tvi912|tvi914|tvi920|old televideo 912/914/920,
- OTbs, OTpt, am, msgr,
- cols#80, it#8, lines#24, xmc#1,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER$<33*>, ed=\Ey, el=\ET, flash=\Eb$<50/>\Ed, home=^^,
- ht=^I, hts=\E1, ich1=\EQ, if=/usr/share/tabset/stdcrt,
- il1=\EE$<33*>, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
- kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
- kf9=^AH\r, khome=^^, rmso=\Ek, rmul=\Em, smso=\Ej, smul=\El,
- tbc=\E3,
-# the 912 has a <funct> key that's like shift: <funct>8 xmits "^A8\r".
-# The 920 has this plus real function keys that xmit different things.
-# Terminfo makes you use the funct key on the 912 but the real keys on the 920.
-tvi912c|tvi912b|new televideo 912,
- dl1=\ER$<5*>, il1=\EE$<5*>, use=tvi912,
-# set to page 1 when entering curses application (\E-17 )
-# reset to page 0 when exiting curses application (\E-07 )
-tvi912-2p|tvi920-2p|tvi-2p|televideo w/2 pages,
- rmcup=\E-07\s, smcup=\E-17\s, use=tvi912,
-# We got some new tvi912c terminals that act really weird on the regular
-# termcap, so one of our gurus worked this up. Seems that cursor
-# addressing is broken.
-tvi912cc|tvi912 at cowell college,
- cup@, use=tvi912c,
-
-# Here are the switch settings for the tvi920c:
-#
-# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down:
-# 2: 9600 3: 4800 4: 2400 5: 1200
-# 6: 600 7: 300 8: 150 9: 75
-# 10: 110
-#
-# S2 UART/Terminal options:
-# Up Down
-# 1: Not used Not allowed
-# 2: Alternate character set Standard character set
-# 3: Full duplex Half duplex
-# 4: 50 Hz refresh 60 Hz refresh
-# 5: No parity Send parity
-# 6: 2 stop bits 1 stop bit
-# 7: 8 data bits 7 data bits
-# 8: Not used Not allowed on Rev E or lower
-# 9: Even parity Odd parity
-# 10: Steady cursor Blinking cursor
-# (On Rev E or lower, use W25 instead of switch 10.)
-#
-# S5 UART/Terminal options:
-# Open Closed
-# 1: P3-6 Not connected DSR received on P3-6
-# 2: P3-8 Not connected DCD received on P3-8
-#
-# 3 Open, 4 Open: P3-20 Not connected
-# 3 Open, 4 Closed: DTR on when terminal is on
-# 3 Closed, 4 Open: DTR is connected to RTS
-# 3 Closed, 4 Closed: Not allowed
-#
-# 5 Closed: HDX printer (hardware control) Rev. K with extension port off,
-# all data transmitted out of the modem port (P3) will also be
-# transmitted out of the printer port (P4).
-#
-# 6 Open, 7 Open: Not allowed
-# 6 Open, 7 Closed: 20ma current loop input
-# 6 Closed, 7 Open: RS232 input
-# 6 Closed, 7 Closed: Not allowed
-#
-# Jumper options:
-# If the jumper is installed, the effect will occur (the next time the terminal
-# is switched on).
-#
-# S4/W31: Enables automatic LF upon receipt of CR from
-# remote or keyboard.
-# S4/W32: Enables transmission of EOT at the end of Send. If not
-# installed, a carriage return is sent.
-# S4/W33: Disables automatic carriage return in column 80.
-# S4/W34: Selects Page Print Mode as initial condition. If not
-# installed, Extension Mode is selected.
-#
-tvi920b|tvi920c|new televideo 920,
- dl1=\ER$<5*>, il1=\EE$<5*>, kf0=^AI\r, kf1=^A@\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, use=tvi912,
-
-# Televideo 921 and variants
-# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
-# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
-# also added empty <acsc> to suppress tic warning -- esr)
-tvi921|televideo model 921 with sysline same as page & real vi function,
- OTbs, OTpt, am, hs, xenl, xhp,
- cols#80, lines#24, xmc#0,
- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
- el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
- if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J, invis@,
- is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z, kcub1=^H,
- kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER$<1*/>,
- ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE, nel=^M^J, rmacs=\E%%,
- rmir=, smacs=\E$, smir=, tsl=\Ef\EG0, use=adm+sgr,
-# without the beeper
-# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
-# also added empty <acsc> to suppress tic warning -- esr)
-tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper,
- am, hs, xenl, xhp,
- cols#80, lines#24, xmc#0,
- acsc=, clear=^Z, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<3/>, cuu1=^K,
- cvvis=\E.2, dch1=\EW, dl1=\ER$<1*/>, dsl=\Ef\r\Eg, ed=\EY,
- el=\ET, flash=\Eb$<200/>\Ed, fsl=\Eg, home=^^, ht=^I,
- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
- invis@, is2=\El\E"\EF1\E.3\017\EA\E<, kbs=^H, kclr=^Z,
- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
- kdl1=\ER$<1*/>, ked=\EY, kel=\ET, kich1=\EQ, kil1=\EE,
- nel=^M^J, rmacs=\E%%, smacs=\E$, tsl=\Ef\EG0, use=adm+sgr,
-# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
-tvi92D|tvi92B with DTR instead of XON/XOFF & better padding,
- dl1=\ER$<2*/>, il1=\EE$<2*/>,
- is2=\El\E"\EF1\E.3\016\EA\E<, kdl1=\ER$<2*/>,
- kil1=\EE$<2*/>, use=tvi92B,
-
-# (tvi924: This used to have <dsl=\Es0>, <fsl=\031>. I put the new strings
-# in from a BSD termcap file because it looks like they do something the
-# old ones skip -- esr)
-tvi924|televideo tvi924,
- am, bw, hs, in, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80, xmc#0,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E.0, clear=\E*0,
- cnorm=\E.3, cr=^M, csr=\E_%p1%{32}%+%c%p2%{32}%+%c,
- cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, cvvis=\E.1,
- dch1=\EW, dl1=\ER, dsl=\Es0\Ef\031, ed=\Ey, el=\Et,
- flash=\Eb$<200>\Ed, fsl=\031\Es1, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, if=/usr/share/tabset/stdcrt, il1=\EE, ind=^J,
- invis@, is1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0,
- kbs=^H, kclr=\E*0, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A@\r, kf1=^AA\r,
- kf10=^AJ\r, kf11=^AK\r, kf12=^AL\r, kf13=^AM\r, kf14=^AN\r,
- kf15=^AO\r, kf2=^AB\r, kf3=^AC\r, kf4=^AD\r, kf5=^AE\r,
- kf6=^AF\r, kf7=^AG\r, kf8=^AH\r, kf9=^AI\r, khome=^^,
- kich1=\EQ, kil1=\EE, lf0=F1, lf1=F2, lf10=F11, lf2=F3, lf3=F4,
- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10,
- pfkey=\E|%p1%{49}%+%c%p2%s\031, ri=\Ej, tbc=\E3, tsl=\Ef,
- use=adm+sgr,
-
-# TVI925 DIP switches. In each of these, D = Down and U = Up,
-#
-# Here are the settings for the external (baud) switches (S1):
-#
-# Position Baud
-# 7 8 9 10 [Printer]
-# 1 2 3 4 [Main RS232]
-# -----------------------------------------------------
-# D D D D 9600
-# D D D U 50
-# D D U D 75
-# D D U U 110
-# D U D D 135
-# D U D U 150
-# D U U D 300
-# D U U U 600
-# U D D D 1200
-# U D D U 1800
-# U D U D 2400
-# U D U U 3600
-# U U D D 4800
-# U U D U 7200
-# U U U D 9600
-# U U U U 19200
-#
-#
-# Settings for word length and stop-bits (S1)
-#
-# Position Description
-# 5 6
-# ---------------------------
-# U - 7-bit word
-# D - 8-bit word
-# - U 2 stop bits
-# - D 1 stop bit
-#
-#
-# S2 (external) settings
-#
-# Position Up Dn Description
-# --------------------------------------------
-# 1 X Local edit
-# X Duplex edit (transmit editing keys)
-# --------------------------------------------
-# 2 X 912/920 emulation
-# X 925
-# --------------------------------------------
-# 3 X
-# 4 X No parity
-# 5 X
-# --------------------------------------------
-# 3 X
-# 4 X Odd parity
-# 5 X
-# --------------------------------------------
-# 3 X
-# 4 X Even parity
-# 5 X
-# --------------------------------------------
-# 3 X
-# 4 X Mark parity
-# 5 X
-# --------------------------------------------
-# 3 X
-# 4 X Space parity
-# 5 X
-# --------------------------------------------
-# 6 X White on black display
-# X Black on white display
-# --------------------------------------------
-# 7 X Half Duplex
-# 8 X
-# --------------------------------------------
-# 7 X Full Duplex
-# 8 X
-# --------------------------------------------
-# 7 X Block mode
-# 8 X
-# --------------------------------------------
-# 9 X 50 Hz
-# X 60 Hz
-# --------------------------------------------
-# 10 X CR/LF (Auto LF)
-# X CR only
-#
-# S3 (internal switch) settings:
-#
-# Position Up Dn Description
-# --------------------------------------------
-# 1 X Keyclick off
-# X Keyclick on
-# --------------------------------------------
-# 2 X English
-# 3 X
-# --------------------------------------------
-# 2 X German
-# 3 X
-# --------------------------------------------
-# 2 X French
-# 3 X
-# --------------------------------------------
-# 2 X Spanish
-# 3 X
-# --------------------------------------------
-# 4 X Blinking block cursor
-# 5 X
-# --------------------------------------------
-# 4 X Blinking underline cursor
-# 5 X
-# --------------------------------------------
-# 4 X Steady block cursor
-# 5 X
-# --------------------------------------------
-# 4 X Steady underline cursor
-# 5 X
-# --------------------------------------------
-# 6 X Screen blanking timer (ON)
-# X Screen blanking timer (OFF)
-# --------------------------------------------
-# 7 X Page attributes
-# X Line attributes
-# --------------------------------------------
-# 8 X DCD disconnected
-# X DCD connected
-# --------------------------------------------
-# 9 X DSR disconnected
-# X DSR connected
-# --------------------------------------------
-# 10 X DTR Disconnected
-# X DTR connected
-# --------------------------------------------
-#
-# (tvi925: BSD has <clear=\E*>. I got <is2> and <ri> from there -- esr)
-tvi925|televideo 925,
- OTbs, am, bw, hs, ul,
- cols#80, lines#24, xmc#1,
- bel=^G, cbt=\EI, clear=^Z, cnorm=\E.4, cr=^M, cub1=^H, cud1=^V,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\E.2, dch1=\EW, dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
- flash=\Eb$<200>\Ed, fsl=^M\Eg, home=^^, ht=^I, hts=\E1,
- ich1=\EQ, il1=\EE, ind=^J, invis@, is2=\El\E", kbs=^H, kclr=^Z,
- kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
- ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r,
- kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r,
- kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, ri=\Ej, tbc=\E3,
- tsl=\Eh\Ef, use=adm+sgr,
-# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL
-# to avoid "magic cookie" standout glitch:
-tvi925-hi|TeleVideo Model 925 with half intensity standout mode,
- xmc@,
- kbs=^H, kcub1=^H, kcud1=^J, rmso=\E(, smso=\E), use=tvi925,
-
-# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
-# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
-# for additional capabilities,
-# The following tvi descriptions from B:pjphar and virus!mike
-# is for all 950s. It sets the following attributes:
-# full duplex (\EDF) write protect off (\E()
-# conversation mode (\EC) graphics mode off (\E%)
-# white on black (\Ed) auto page flip off (\Ew)
-# turn off status line (\Eg) clear status line (\Ef\r)
-# normal video (\E0) monitor mode off (\EX or \Eu)
-# edit mode (\Er) load blank char to space (\Ee\040)
-# line edit mode (\EO) enable buffer control (^O)
-# protect mode off (\E\047) duplex edit keys (\El)
-# program unshifted send key to send line all (\E016)
-# program shifted send key to send line unprotected (\E004)
-# set the following to nulls:
-# field delimiter (\Ex0\200\200)
-# line delimiter (\Ex1\200\200)
-# start-protected field delimiter (\Ex2\200\200)
-# end-protected field delimiter (\Ex3\200\200)
-# set end of text delimiter to carriage return/null (\Ex4\r\200)
-#
-# TVI 950 Switch Setting Reference Charts
-#
-# TABLE 1:
-#
-# S1 1 2 3 4 5 6 7 8 9 10
-# +-----------------------+-----+-----+-----------------------+
-# | Computer Baud Rate |Data |Stop | Printer Baud Rate |
-# | |Bits |Bits | |
-# +------+-----------------------+-----+-----+-----------------------+
-# | Up | See | 7 | 2 | See |
-# +------+-----------------------+-----+-----+-----------------------+
-# | Down | TABLE 2 | 8 | 1 | TABLE 2 |
-# +------+-----------------------+-----+-----+-----------------------+
-#
-#
-# S2 1 2 3 4 5 6 7 8 9 10
-# +-----+-----+-----------------+-----+-----------+-----+-----+
-# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click|
-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
-# | Up | Dplx|Blink| See |GonBk| See | 60 | Off |
-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
-# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On |
-# +------+-----+-----+-----------------+-----+-----------+-----+-----+
-#
-# TABLE 2:
-#
-# +-----------+-----+-----+-----+-----+-----------+
-# | Display | 1 | 2 | 3 | 4 | Baud |
-# +-----------+-----+-----+-----+-----+ |
-# | Printer | 7 | 8 | 9 | 10 | Rate |
-# +-----------+-----+-----+-----+-----+-----------+
-# | D | D | D | D | 9600 |
-# | U | D | D | D | 50 |
-# | D | U | D | D | 75 |
-# | U | U | D | D | 110 |
-# | D | D | U | D | 135 |
-# | U | D | U | D | 150 |
-# | D | U | U | D | 300 |
-# | U | U | U | D | 600 |
-# | D | D | D | U | 1200 |
-# | U | D | D | U | 1800 |
-# | D | U | D | U | 2400 |
-# | U | U | D | U | 3600 |
-# | D | D | U | U | 4800 |
-# | U | D | U | U | 7200 |
-# | D | U | U | U | 9600 |
-# | U | U | U | U | 19200 |
-# +-----+-----+-----+-----+-----------+
-#
-# TABLE 3:
-# +-----+-----+-----+-----------+
-# | 3 | 4 | 5 | Parity |
-# +-----+-----+-----+-----------+
-# | X | X | D | None |
-# | D | D | U | Odd |
-# | D | U | U | Even |
-# | U | D | U | Mark |
-# | U | U | U | Space |
-# +-----+-----+-----+-----------+
-# X = don't care
-#
-# CHART:
-# +-----+-----+-----------------+
-# | 7 | 8 | Communication |
-# +-----+-----+-----------------+
-# | D | D | Half Duplex |
-# | D | U | Full Duplex |
-# | U | D | Block |
-# | U | U | Local |
-# +-----+-----+-----------------+
-#
-# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
-# I also inserted <ich1> and <kich1>; the :ko: string indicated that <ich>
-# should be present and all tvi native modes use the same string for this.
-# Finally, note that BSD has cud1=^V. -- esr)
-tvi950|televideo 950,
- OTbs, am, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, xmc#1,
- acsc=b\011c\014d\re\ni\013, bel=^G, cbt=\EI, clear=\E*,
- cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, dsl=\Eg\Ef\r, ed=\Ey, el=\Et, flash=\Eb$<200/>\Ed,
- fsl=^M, home=^^, ht=^I, hts=\E1, ich1=\EQ, il1=\EE, ind=^J,
- invis@,
- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r,
- kbs=^H, kcbt=\EI, kclr=\E*, kcub1=^H, kcud1=^V, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\Ey, kel=\Et, kf0=^A0\r,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`, ri=\Ej, rmacs=^X,
- rmir=\Er, smacs=^U, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
- use=adm+sgr,
-#
-# is for 950 with two pages adds the following:
-# set 48 line page (\E\\2)
-# place cursor at page 0, line 24, column 1 (\E-07 )
-# set local (no send) edit keys (\Ek)
-#
-# two page 950 adds the following:
-# when entering ex, set 24 line page (\E\\1)
-# when exiting ex, reset 48 line page (\E\\2)
-# place cursor at 0,24,1 (\E-07 )
-# set duplex (send) edit keys (\El) when entering vi
-# set local (no send) edit keys (\Ek) when exiting vi
-#
-tvi950-2p|televideo950 w/2 pages,
- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07 \011,
- rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
- smkx=\El, use=tvi950,
-#
-# is for 950 with four pages adds the following:
-# set 96 line page (\E\\3)
-# place cursor at page 0, line 24, column 1 (\E-07 )
-#
-# four page 950 adds the following:
-# when entering ex, set 24 line page (\E\\1)
-# when exiting ex, reset 96 line page (\E\\3)
-# place cursor at 0,24,1 (\E-07 )
-#
-tvi950-4p|televideo950 w/4 pages,
- is2=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07 \011,
- rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
- smkx=\El, use=tvi950,
-#
-# <is2> for reverse video 950 changes the following:
-# set reverse video (\Ed)
-#
-# set vb accordingly (\Ed ...delay... \Eb)
-#
-tvi950-rv|televideo950 rev video,
- flash=\Ed$<200/>\Eb,
- is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0,
- use=tvi950,
-
-# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
-tvi950-rv-2p|televideo950 rev video w/2 pages,
- flash=\Ed$<200/>\Eb,
- is2=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\2\E-07\s,
- rmcup=\E\\2\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
- smkx=\El, use=tvi950,
-
-# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
-tvi950-rv-4p|televideo950 rev video w/4 pages,
- flash=\Ed$<200/>\Eb,
- is2=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\\3\E-07\s,
- rmcup=\E\\3\E-07\s, rmkx=\Ek, smcup=\E\\1\E-07\s,
- smkx=\El, use=tvi950,
-# From: Andreas Stolcke <stolcke@icsi.berkeley.edu>
-# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H";
-# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in
-# the :rs: string, inserted the <ich> implied by the termcap :ko: string. Note
-# the :ko: string had :cl: in it, which means that one of the original
-# <clear=\E*>, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what
-# the 950 has. Finally, corrected the <kel> string to match the 950 and what
-# ko implies -- esr)
-# If the BSD termcap file was right, <cup=\E=%p1%{32}%+%c%p2%{32}%+%c> would
-# also work.
-tvi955|televideo 955,
- OTbs, mc5i, msgr@,
- it#8, xmc@,
- acsc=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ, blink=\EG2,
- civis=\E.0, cnorm=\E.2, cud1=^V, cup=\E[%i%p1%d;%p2%dH,
- cvvis=\E.1, dim=\E[=5h, ind@, invis=\EG1,
- is2=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El, kctab=\E2, khts=\E1,
- knp=\EK, kpp=\EJ, krmir=\EQ, ktbc=\E3, mc0=\EP, rmacs=\E%%,
- rmam=\E[=7l, rmxon=^N,
- rs1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r,
- sgr0=\EG0\E[=5l, smacs=\E$, smam=\E[=7h, smxon=^O,
- use=tvi950,
-tvi955-w|955-w|televideo955 w/132 cols,
- cols#132,
- is2=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El, use=tvi955,
-# use half-intensity as normal mode, full intensity as <bold>
-tvi955-hb|955-hb|televideo955 half-bright,
- bold=\E[=5l, dim@, is2=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El,
- sgr0=\EG0\E[=5h, use=tvi955,
-# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
-# (tvi970: removed ":sg#0:"; removed <rmso>=\E[m, <rmul>=\E[m;
-# added <am>/<csr>/<home>/<hpa>/<vpa>/<smcup>/<rmcup> from BRL.
-# According to BRL we could have <rmkx>=\E>, <smkx>=\E= but I'm not sure what
-# it does to the function keys. I deduced <rmam>/<smam>.
-# also added empty <acsc> to suppress tic warning, -- esr)
-tvi970|televideo 970,
- OTbs, OTpt, am, da, db, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=, cbt=\E[Z, clear=\E[H\E[2J, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=\ED, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
- cuu1=\EM, cvvis=\E[1Q, dch1=\E[P, dl1=\E[M, dsl=\Eg\Ef\r,
- ed=\E[J, el=\E[K, flash=\E[5m$<200/>\E[m, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, il1=\E[L,
- is2=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E?a, kf2=\E?b, kf3=\E?c, kf4=\E?d, kf5=\E?e, kf6=\E?f,
- kf7=\E?g, kf8=\E?h, kf9=\E?i, khome=\E[H, ri=\EM, rmacs=\E(B,
- rmam=\E[?7h, rmcup=, rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smacs=\E(B, smam=\E[?7l,
- smcup=\E[?20l\E[?7h\E[1Q, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd,
-tvi970-vb|televideo 970 with visual bell,
- flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
- use=tvi970,
-tvi970-2p|televideo 970 with using 2 pages of memory,
- rmcup=\E[H\E[J\E[V, smcup=\E[U\E[?20l\E[?7h\E[1Q,
- use=tvi970,
-# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars
-# per line (rather than 40), Esc K chooses the normal character set. Not sure
-# padding is needed, but adapted from the tvi920c termcap. The <smso> and
-# <smul> strings are klutzy, but at least use no screen space.
-# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>,
-# its absence means <smam>=\Ev isn't safe to use. -- esr)
-# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
-# The <ed>/<kf0>/<kf1>/<khome>/<mc4>, and <mc5> caps are from BRL, which says:
-# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
-tvipt|televideo personal terminal,
- OTbs, am,
- cols#80, lines#24,
- cbt=\EI, clear=^Z, cub1=^H, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER$<5*>,
- ed=\EY, el=\ET, home=^^, if=/usr/share/tabset/stdcrt,
- il1=\EE$<5*>, is2=\Ev\Eu\EK, kbs=^H, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, kf0=^A, kf1=^B, khome=^^, mc4=^T, mc5=^R,
- rmso=\EF, rmul=\EF, smso=\EG1@A\EH, smul=\EG1B@\EH,
-# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
-tvi9065|televideo 9065,
- am, bw, chts, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lh#1, lines#25, lm#0, lw#9, ma#4, nlab#8, vt#0,
- wnum#0, wsl#30,
- acsc='r0_jhkglfmeniopqksqtmulvownxj, bel=^G,
- blink=\EG2, bold=\EG\,, cbt=\EI, civis=\E.0, clear=^Z,
- cnorm=\E.3, cr=^M, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=^V, cuf=\E[%p1%dC, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu=\E[%p1%dA,
- cuu1=^K, cvvis=\E.2, dch=\E[%p1%dP, dch1=\EW, dim=\EGp,
- dl=\E[%p1%dM, dl1=\ER, dsl=\E_30\r, ech=\E[%p1%d@, ed=\EY,
- el=\ET, flash=\Eb$<15>\Ed, fsl=^M, home=^^, ht=^I, hts=\E1,
- ich=\E[%p1%d@, if=/usr/share/tabset/stdcrt,
- il=\E[%p1%dL, il1=\EE, ind=^J, indn=\E[%p1%dS, invis=\EG1,
- ip=$<3>,
- is1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er,
- is2=\EF2\EG0\E\\L, is3=\E<\E[=4l\E[=8h, kHOM=\E\s\s\s,
- kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, ll=\E[25;1H,
- mc0=\E[0;0i, mc4=\Ea, mc5=\E`, nel=^M^J,
- pfkey=\E|%p1%{48}%+%c3%p2%s\031,
- pfloc=\E|%p1%{48}%+%c2%p2%s\031,
- pfx=\E|%p1%{48}%+%c1%p2%s\031,
- pln=\E_%p1%{63}%+%c%p2%s\r, prot=\E&,
- rep=\E[%p2%db%p1%c, rev=\EG4,
- rf=/usr/share/tabset/stdcrt, ri=\Ej, rin=\E[%p1%dT,
- rmacs=\E%%, rmam=\E[=7l, rmcup=\E.3\Er\E[1;25r\E[25;0H,
- rmdc=\0, rmir=\Er, rmln=\E[4;1v, rmso=\EG0, rmul=\EG0,
- rmxon=^N, rs1=\EC\EDF\E[0;0v\E[8;1v\E[=65l,
- rs2=\E.b\E[10;20v\E[14;1v\E[3;0v\E[7;0v\E[=11.h\E[=12.h\E[=13.h\E[=14.h\E[=15l\E[=20h\E[=60l\E[=61h\E[=9l\E[=10l\E[=21l\E[=23l\E[=3l\E_40\E_50\En\Ew\Ee \Ex0\0\0\Ex1\0\0\Ex2\0\0\Ex3\0\0\Ex4\0\0\E1,
- rs3=\E[=19h\E.3\E9\E0O\0\0\0\0\0\E0o\0\0\0\0\0\E0J\177\0\0\0\0,
- sgr=\EG0%?%p1%t\EGt%;%?%p2%t\EG8%;%?%p3%t\EG4%;%?%p4%t\EG2%;%?%p5%t\EGp%;%?%p6%t\EG\,%;%?%p7%t\EG1%;%?%p9%t\E$%e\E%%%;,
- sgr0=\EG0, smacs=\E$, smam=\E=7h, smcup=\E.2, smdc=\Er,
- smir=\Eq, smln=\E[4;2v, smso=\EGt, smul=\EG8, smxon=^O,
- tbc=\E3, tsl=\E[4;1v\E_30, uc=\EG8\EG0,
-
-#### Visual (vi)
-#
-# In September 1993, Visual Technology of Westboro, Massachusetts,
-# merged with White Pine Software of Nashua, New Hampshire.
-#
-# White Pine Software may be contacted at +1 603/886-9050.
-# Or visit White Pine on the World Wide Web at URL http://www.wpine.com.
-#
-
-# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
-# Recently I hacked together the following termcap for Visual
-# Technology's Visual 50 terminal. It's a slight modification of
-# the vt52 termcap.
-# It's intended to run when the Visual 50 is in vt52 emulation mode
-# (I know what you're thinking; if it's emulating a vt52, then why
-# another termcap? Well, it turns out that the Visual 50 can handle
-# <dl1> and db(?) among other things, which the vt52 can't)
-# The termcap works OK for the most part. The only problem is on
-# character inserts. The whole line gets painfully redrawn for each
-# character typed. Any suggestions?
-# Beau's entry is combined with the vi50 entry from University of Wisconsin.
-# Note especially the <il1> function. <kf4>-<kf6> are really l4-l6 in
-# disguise; <kf7>-<kf9> are really l1-l3.
-vi50|visual 50,
- OTbs, OTpt, am, da, db, msgr,
- cols#80, it#8, lines#24,
- OTnl=^J, bel=^G, cbt=\Ez$<4/>, clear=\EH\EJ, cr=^M, cub1=^H,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dl1=\EM$<3*/>, ed=\EJ, el=\EK$<16/>, home=\EH,
- ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\EV,
- kf5=\EE, kf6=\E], kf7=\EL, kf8=\Ev, kf9=\EM, khome=\EH,
- nel=^M^J, ri=\EI, rmso=\ET, rmul=\EW, smso=\EU, smul=\ES,
-# this one was BSD & SCO's vi50
-vi50adm|visual 50 in adm3a mode,
- am, msgr,
- cols#80, it#8, lines#24,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\EM,
- ed=\Ek, el=\EK, home=\EH, ht=^I, il1=\EL, ind=^J, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH,
- rmso=\ET, smso=\EU,
-# From: Jeff Siegal <jbs@quiotix.com>
-vi55|Visual 55,
- OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- clear=\Ev, csr=\E_%p1%{65}%+%c%p2%{65}%+%c, cub1=^H,
- cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dch1=\Ew, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I,
- il1=\EL, is2=\Ev\E_AX\Eb\EW\E9P\ET, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EI, rmir=\Eb, rmso=\ET,
- smir=\Ea, smso=\EU,
-
-# Visual 200 from BRL
-# The following switch settings are assumed for normal operation:
-# FULL_DUPLEX SCROLL CR
-# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE
-# Other switches may be set for operator convenience or communication
-# requirements.
-# Character insertion is kludged in order to get around the "beep" misfeature.
-# (This cap is commented out because <smir>/<rmir> is more efficient -- esr)
-# Supposedly "4*" delays should be used for <il1>, <ed>, <clear>, <dch1>,
-# and <dl1> strings, but we seem to get along fine without them.
-vi200|visual 200,
- OTbs, OTpt, am, mir, msgr,
- OTkn#10, cols#80, it#8, lines#24,
- acsc=, bel=^G, cbt=\Ez, clear=\Ev, cnorm=\Ec, cr=^M, cub1=^H,
- cud1=^J, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, cvvis=\Ed, dch1=\EO, dim=\E4, dl1=\EM, ed=\Ey,
- el=\Ex, home=\EH, ht=^I, hts=\E1, il1=\EL, ind=^J, invis=\Ea,
- kbs=^H, kclr=\Ev, kctab=\E2, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EO, kdl1=\EM, ked=\EJ, kel=\Et, kf0=\E?p,
- kf1=\E?q, kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v,
- kf7=\E?w, kf8=\E?x, kf9=\E?y, khome=\EH, khts=\E1, kich1=\Ei,
- kil1=\EL, krmir=\Ej, mc0=\EH\E], mc4=\EX, mc5=\EW, ri=\EI,
- rmacs=\EG, rmkx=\E>, rmso=\E3,
- rs1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX, sgr0=\E3\Eb, smacs=\EF,
- smkx=\E=, smso=\E4, tbc=\Eg,
-# The older Visuals didn't come with function keys. This entry uses
-# <smkx> and <rmkx> so that the keypad keys can be used as function keys.
-# If your version of vi doesn't support function keys you may want
-# to use vi200-f.
-vi200-f|visual 200 no function keys,
- is2=\E3\Eb\Ej\E\\\El\EG\Ed\Ek, kf0=\E?p, kf1=\E?q,
- kf2=\E?r, kf3=\E?s, kf4=\E?t, kf5=\E?u, kf6=\E?v, kf7=\E?w,
- kf8=\E?x, kf9=\E?y, rmkx=\E>, rmso@, smkx=\E=, smso@,
- use=vi200,
-vi200-rv|visual 200 reverse video,
- cnorm@, cvvis@, ri@, rmso=\E3, smso=\E4, use=vi200,
-
-# the function keys are programmable but we don't reprogram them to their
-# default values with <is2> because programming them is very verbose. maybe
-# an initialization file should be made for the 300 and they could be stuck
-# in it.
-# (vi300: added <rmam>/<smam> based on init string -- esr)
-vi300|visual 300 ansi x3.64,
- am, bw, mir, xenl,
- cols#80, lines#24,
- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[P$<40>, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il1=\E[L, ind=^J,
- is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E_A\E\\, kf2=\E_B\E\\, kf3=\E_C\E\\, kf4=\E_D\E\\,
- kf5=\E_E\E\\, kf6=\E_F\E\\, kf7=\E_G\E\\, kf8=\E_H\E\\,
- kf9=\E_I\E\\, khome=\E[H, ri=\EM, rmam=\E[?7l, rmir=\E[4l,
- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
- smso=\E[1m, smul=\E[4m,
-# some of the vi300s have older firmware that has the command
-# sequence for setting editing extent reversed.
-vi300-old|visual 300 with old firmware (set edit extent reversed),
- is2=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s,
- use=vi300,
-
-# Visual 500 prototype entry from University of Wisconsin.
-# The best place to look for the escape sequences is page A1-1 of the
-# Visual 500 manual. The initialization sequence given here may be
-# overkill, but it does leave out some of the initializations which can
-# be done with the menus in set-up mode.
-# The :xp: line below is so that emacs can understand the padding requirements
-# of this slow terminal. :xp: is 10 time the padding factor.
-# (vi500: removed unknown :xp#4: termcap;
-# also added empty <acsc> to suppress tic warning -- esr)
-vi500|visual 500,
- am, mir, msgr,
- cols#80, it#8, lines#33,
- acsc=, cbt=\Ez$<4/>, clear=\Ev$<6*/>, cr=^M,
- csr=\E(%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- dch1=\EO$<3*/>, dl1=\EM$<3*/>, ed=\Ey$<3*/>,
- el=\Ex$<16/>, home=\EH, ht=\011$<8/>, il1=\EL\Ex$<3*/>,
- ind=^J,
- is2=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\\,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- khome=\EH, nel=^M^J, rmacs=^O, rmir=\Ej, rmso=\E^G,
- rmul=\E^C, smacs=^N, smir=\Ei, smso=\E^H, smul=\E^D,
-
-# The visual 550 is a visual 300 with tektronix graphics,
-# and with 33 lines. clear screen is modified here to
-# also clear the graphics.
-vi550|visual 550 ansi x3.64,
- lines#33,
- clear=\030\E[H\E[2J, use=vi300,
-
-vi603|visual603|visual 603,
- hs, mir,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
- csr=\E[%i%p1%d;%p2%dr, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L,
- ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r,
- rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~,
- use=vt100,
-
-#### Wyse (wy)
-#
-# Wyse Technology
-# 3471 North First Street
-# San Jose, CA 95134
-# Vox: (408)-473-1200
-# Fax: (408) 473-1222
-# Web: http://www.wyse.com
-#
-# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at
-# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the
-# obvious address, <http://www.wyse.com>. They keep terminfo entries at
-# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>.
-#
-# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995.
-# They now own the Qume and Amdek brands, too. So these are the people to
-# talk with about all Link, Qume, and Amdek terminals.
-#
-# These entries include a few small fixes.
-# I canceled the bel capacities in the vb entries.
-# I made two trivial syntax fixes in the wyse30 entry.
-# I made some entries relative to adm+sgr.
-#
-#
-# Note: The wyse75, wyse85, and wyse99 have been discontinued.
-
-# Although the Wyse 30 can support more than one attribute
-# it requires magic cookies to do so. Many applications do not
-# function well with magic cookies. The following terminfo uses
-# the protect mode to support one attribute (dim) without cookies.
-# If more than one attribute is needed then the wy30-mc terminfo
-# should be used.
-#
-wy30|wyse30|Wyse 30,
- am, bw, hs, mc5i, mir, msgr, xon,
- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
- civis=\E`0, clear=\E+$<80>, cnorm=\E`1, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dch1=\EW$<10>, dim=\E`7\E), dl1=\ER$<1>,
- dsl=\EF\r, ed=\EY$<80>, el=\ET, flash=\E`8$<100/>\E`9,
- fsl=^M, home=^^, ht=\011$<1>, hts=\E1, il1=\EE$<2>,
- ind=\n$<2>, ip=$<2>, is2=\E'\E(\E\^3\E`9\016\024,
- kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kent=\E7,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, krpl=\Er, ll=^^^K, mc0=\EP, mc4=^T,
- mc5=^X, nel=^M^J, pfx=\Ez%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), ri=\Ej$<3>,
- rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
- sgr=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
- smso=\E`7\E), tbc=\E0, tsl=\EF,
-#
-# This terminal description uses the non-hidden attribute mode
-# (with magic cookie).
-#
-# (wy30-mc: added <smcup> to suppress tic warning --esr)
-wy30-mc|wyse30-mc|wyse 30 with magic cookies,
- msgr@,
- ma@, xmc#1,
- blink=\EG2, dim=\EGp, prot=\EG0\E), rmacs=\EG0\EH\003,
- rmcup=\EG0, rmso=\EG0,
- sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
- smso=\EG4, use=wy30, use=adm+sgr,
-# The mandatory pause used by <flash> does not work with
-# older versions of terminfo. If you see this effect then
-# unset xon and delete the / from the delay.
-# i.e. change $<100/> to $<100>
-wy30-vb|wyse30-vb|wyse 30 visible bell,
- bel@, use=wy30,
-#
-# The Wyse 50 can support one attribute (e.g. Dim, Inverse,
-# Normal) without magic cookies by using the protect mode.
-# The following description uses this feature, but when more
-# than one attribute is put on the screen at once, all attributes
-# will be changed to be the same as the last attribute given.
-# The Wyse 50 can support more attributes when used with magic
-# cookies. The wy50-mc terminal description uses magic cookies
-# to correctly handle multiple attributes on a screen.
-#
-wy50|wyse50|Wyse 50,
- am, bw, hs, mc5i, mir, msgr, xon,
- cols#80, lh#1, lines#24, lw#8, ma#1, nlab#8, wsl#45,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, cbt=\EI,
- civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dch1=\EW$<1>, dim=\E`7\E), dl1=\ER, dsl=\EF\r,
- ed=\EY$<20>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
- home=^^, ht=^I, hts=\E1, il1=\EE, ind=\n$<2>, ip=$<1>,
- is1=\E`\:\E`9$<30>, is2=\016\024\E'\E(, kHOM=\E{, kbs=^H,
- kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW,
- kdl1=\ER, ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J,
- pfx=\Ez%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E`7\E), rev=\E`6\E),
- ri=\Ej, rmacs=\EH^C, rmir=\Er, rmln=\EA11, rmso=\E(,
- sgr=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\E(\EH\003, smacs=\EH^B, smir=\Eq, smln=\EA10,
- smso=\E`6\E), tbc=\E0, tsl=\EF,
-#
-# This terminal description uses the non-hidden attribute mode
-# (with magic cookie).
-#
-# The mandatory pause used by flash does not work with some
-# older versions of terminfo. If you see this effect then
-# unset <xon> and delete the / from the delay.
-# i.e. change $<100/> to $<100>
-# (wy50-mc: added <smcup> to suppress tic warning --esr)
-wy50-mc|wyse50-mc|wyse 50 with magic cookies,
- msgr@,
- ma@, xmc#1,
- blink=\EG2, dim=\EGp, prot=\EG0\E), rev=\EG4,
- rmacs=\EG0\EH\003, rmcup=\EG0, rmso=\EG0,
- sgr=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\EG0\E(\EH\003, smacs=\EG0\EH\002, smcup=,
- smso=\EGt, use=wy50, use=adm+sgr,
-wy50-vb|wyse50-vb|wyse 50 visible bell,
- bel@, use=wy50,
-wy50-w|wyse50-w|wyse 50 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
- use=wy50,
-wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell,
- bel@, use=wy50-w,
-
-#
-# The Wyse 350 is a Wyse 50 with color.
-# Unfortunately this means that it has magic cookies.
-# The color attributes are designed to overlap the reverse, dim and
-# underline attributes. This is nice for monochrome applications
-# because you can make underline stuff green (or any other color)
-# but for true color applications it's not so hot because you cannot
-# mix color with reverse, dim or underline.
-# To further complicate things one of the attributes must be
-# black (either the foreground or the background). In reverse video
-# the background changes color with black letters. In normal video
-# the foreground changes colors on a black background.
-# This terminfo uses some of the more advanced features of curses
-# to display both color and blink. In the final analysis I am not
-# sure that the wy350 runs better with this terminfo than it does
-# with the wy50 terminfo (with user adjusted colors).
-#
-# The mandatory pause used by flash does not work with
-# older versions of terminfo. If you see this effect then
-# unset xon and delete the / from the delay.
-# i.e. change $<100/> to $<100>
-#
-# Bug: The <op> capability resets attributes.
-wy350|wyse350|Wyse 350,
- am, bw, hs, mc5i, mir, xon,
- colors#8, cols#80, lh#1, lines#24, lw#8, ncv#55, nlab#8, pairs#8,
- wsl#45, xmc#1,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
- cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<1>,
- dim=\EGp, dl1=\ER, dsl=\EF\r, ed=\EY$<20>, el=\ET,
- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
- il1=\EE, ind=\n$<2>, ip=$<1>, is1=\E`\:\E`9$<30>,
- is2=\016\024\E'\E(, is3=\E%?, kHOM=\E{, kbs=^H, kcbt=\EI,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER,
- ked=\EY, kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
- ll=^^^K, mc0=\EP, mc4=^T, mc5=^X, nel=^M^J, oc=\E%?, op=\EG0,
- pfx=\Ez%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\EG0\E), ri=\Ej,
- rmacs=\EG0\EH\003, rmir=\Er, rmln=\EA11, setb=,
- setf=%?%p1%{0}%=%t%{76}%e%p1%{1}%=%t%{64}%e%p1%{2}%=%t%{8}%e%p1%{3}%=%t%{72}%e%p1%{4}%=%t%{4}%e%p1%{5}%=%t%{68}%e%p1%{6}%=%t%{12}%e%p1%{7}%=%t%{0}%;%PC\EG%gC%gA%+%{48}%+%c,
- sgr=%{0}%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;%PA\EG%?%gC%t%gC%e%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p5%t%{64}%|%;%;%gA%+%{48}%+%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;,
- sgr0=\EG0\E(\EH\003%{0}%PA%{0}%PC, smacs=\EG0\EH\002,
- smir=\Eq, smln=\EA10, tbc=\E0, tsl=\EF, use=adm+sgr,
-wy350-vb|wyse350-vb|wyse 350 visible bell,
- bel@, use=wy350,
-wy350-w|wyse350-w|wyse 350 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<2>, is1=\E`;\E`9$<30>,
- use=wy350,
-wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell,
- bel@, use=wy350-w,
-#
-# This terminfo description is untested.
-# The wyse100 emulates an adm31, so the adm31 entry should work.
-#
-wy100|wyse 100,
- hs, mir,
- cols#80, lines#24, xmc#1,
- bel=^G, clear=\E;, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, dsl=\EA31, ed=\EY, el=\ET, fsl=^M, il1=\EE, ind=^J,
- invis@, is2=\Eu\E0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, khome=\E{,
- rmir=\Er, smir=\Eq, tsl=\EF, use=adm+sgr,
-#
-# The Wyse 120/150 has most of the features of the Wyse 60.
-# This terminal does not need padding up to 9600 baud!
-# <msgr> should be set but the clear screen fails when in
-# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
-# then set <msgr>.
-#
-wy120|wyse120|wy150|wyse150|Wyse 120/150,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=\011$<1>,
- hts=\E1, il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
- is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
- rmacs=\EcD, rmam=\Ed., rmcup=\Ew1, rmir=\Er, rmln=\EA11,
- rmxon=\Ec20, rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
- rs3=\EwG\Ee($<100>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
- smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
- rs2=\E`;$<70>, use=wy120,
-#
-wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy120,
-#
-wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy120-w,
-#
-wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell,
- bel@, use=wy120,
-#
-wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell,
- bel@, use=wy120-w,
-#
-# The Wyse 60 is like the Wyse 50 but with more padding.
-# The reset strings are slow and the pad times very depending
-# on other parameters such as font loading. I have tried
-# to follow the following outline:
-#
-# <rs1> -> set personality
-# <rs2> -> set number of columns
-# <rs3> -> set number of lines
-# <is1> -> select the proper font
-# <is2> -> do the initialization
-# <is3> -> set up display memory (2 pages)
-#
-# The Wyse 60's that have vt100 emulation are slower than the
-# older Wyse 60's. This change happened mid-1987.
-# The capabilities effected are <dch1> <dl1> <il1> <ind> <ri>
-#
-# The meta key is only half right. This terminal will return the
-# high order bit set when you hit CTRL-function_key
-#
-# It may be useful to assign two function keys with the
-# values \E=(\s look at old data in page 1
-# \E=W, look at bottom of page 1
-# where \s is a space ( ).
-#
-# Note:
-# The Wyse 60 runs faster when the XON/XOFF
-# handshake is turned off.
-#
-# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
-wy60|wyse60|Wyse 60,
- am, bw, hs, km, mc5i, mir, msgr,
- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW$<11>, dclk=\E`b, dim=\EGp, dl1=\ER$<5>, dsl=\EF\r,
- ed=\EY$<100>, el=\ET, flash=\E`8$<100/>\E`9, fsl=^M,
- home=\E{, ht=\011$<1>, hts=\E1, il1=\EE$<4>, ind=\n$<5>,
- ip=$<3>, is1=\EcB0\EcC1,
- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
- is3=\EwJ\Ew1$<150>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<3>,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
- rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew1, rmir=\Er,
- rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<150>,
- rs2=\EeG$<150>, rs3=\EwG\Ee($<200>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
- smcup=\Ew0, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy60-w|wyse60-w|wyse 60 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<16>, ip=$<5>,
- rs2=\EeF$<150>\E`;$<150>, use=wy60,
-#
-wy60-25|wyse60-25|wyse 60 80-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<200>, use=wy60,
-wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<200>, use=wy60-w,
-#
-wy60-42|wyse60-42|wyse 60 80-column 42-lines,
- lines#42,
- clear=\E+$<260>, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<2>,
- dch1=\EW$<16>, dl1=\ER$<11>, ed=\Ey$<260>, il1=\EE$<11>,
- ind=\n$<9>, ip=$<5>, is1=\EcB2\EcC3, nel=\r\n$<6>,
- ri=\Ej$<10>, rs3=\Ee*$<150>, use=wy60,
-wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines,
- cols#132, lw#7, nlab#16, wsl#97,
- clear=\E+$<260>, cup=\Ea%i%p1%dR%p2%dC$<2>,
- dch1=\EW$<19>, ed=\Ey$<260>, home=\036$<2>, ip=$<6>,
- nel=\r\n$<11>, rs2=\EeF$<150>\E`;$<150>, use=wy60-42,
-#
-wy60-43|wyse60-43|wyse 60 80-column 43-lines,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\Ee+$<150>, use=wy60-42,
-wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\Ee+$<150>, use=wy60-42-w,
-#
-wy60-vb|wyse60-vb|Wyse 60 visible bell,
- bel@, use=wy60,
-wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell,
- bel@, use=wy60-w,
-
-# The Wyse-99GT looks at lot like the Wyse 60 except that it
-# does not have the 42/43 line mode. In the Wyse-60 the "lines"
-# setup parameter controls the number of lines on the screen.
-# For the Wyse 99GT the "lines" setup parameter controls the
-# number of lines in a page. The screen can display 25 lines max.
-# The Wyse-99GT also has personalities for the VT220 and
-# Tektronix 4014. But this has no bearing on the native mode.
-#
-# (msgr) should be set but the clear screen fails when in
-# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
-# then set msgr, else use msgr@.
-#
-# u0 -> enter Tektronix mode
-# u1 -> exit Tektronix mode
-#
-wy99gt|wyse99gt|Wyse 99gt,
- msgr@,
- clear=\E+$<130>, dch1=\EW$<7>, dl1=\ER$<4>, ed=\Ey$<130>,
- el=\Et$<5>, flash=\E`8$<100/>\E`9, ht=\011$<1>,
- il1=\EE$<4>, ind=\n$<4>, ip=$<2>, is3=\Ew0$<20>, nel@,
- ri=\Ej$<3>, rmcup=\Ew0, rs2=\E`\:$<150>, smcup=\Ew1,
- u0=\E~>\E8, u1=\E[42h, use=wy60,
-#
-wy99gt-w|wyse99gt-w|wyse 99gt 132-column,
- cols#132, lw#7, nlab#16, wsl#97,
- clear=\E+$<160>, cup=\Ea%i%p1%dR%p2%dC$<2>,
- dch1=\EW$<9>, ed=\Ey$<160>, ip=$<4>, rs2=\E`;$<150>,
- use=wy99gt,
-#
-wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs2=\E`\:$<150>, rs3=\EwG\Ee)$<200>, use=wy99gt,
-#
-wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs2=\E`;$<150>, use=wy99gt-w,
-#
-wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell,
- bel@, use=wy99gt,
-#
-wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell,
- bel@, use=wy99gt-w,
-
-# Can't set tabs! Other bugs (ANSI mode only):
-# - can't redefine function keys (anyway, key redefinition in ANSI mode
-# is too much complex to be described);
-# - meta key can't be described (the terminal forgets it when reset);
-# The xon-xoff handshaking can't be disabled while in ansi personality, so
-# emacs can't work at speed greater than 9600 baud. No padding is needed at
-# this speed.
-# dch1 has been commented out because it causes annoying glittering when
-# vi deletes one character at the beginning of a line with tabs in it.
-# dch makes sysgen(1M) have a horrible behaviour when deleting
-# a screen and makes screen(1) behave badly, so it is disabled too. The nice
-# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
-# not, so smir and rmir are commented out as well.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard),
- am, km, mc5i, mir, msgr, xenl,
- cols#80, it#8, lines#25, vt#3,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<200>, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<1>,
- cub1=\010$<1>, cud=\E[%p1%dB, cud1=\ED,
- cuf=\E[%p1%dC$<1>, cuf1=\E[C$<1>,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[34l\E[?25h, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J$<8*>, el=\E[K$<1>, el1=\E[1K$<1>,
- enacs=\E)0, flash=\E[?5h$<30/>\E[?5l, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\n$<1>, invis=\E[8m,
- is2=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i,
- kbs=^H, kcbt=\E[z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf17=\E[K, kf18=\E[31~, kf19=\E[32~, kf2=\EOQ,
- kf20=\E[33~, kf21=\E[34~, kf22=\E[35~, kf23=\E[1~,
- kf24=\E[2~, kf3=\EOR, kf4=\EOS, kf5=\E[M, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, ll=\E[24E, mc0=\E[?19h,
- mc4=\E[4i, mc5=\E[5i, nel=\EE, prot=\E[1"q, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[61"p\E[40h\E[?6l\E[1r\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[24E\E[4i,
- sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%O%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m\E[%?%p8%t1%;"q%?%p9%t\016%e\017%;,
- sgr0=\E[m\017\E["q, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
-
-# This is the american terminal. Here tabs work fine.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
- hts=\EH, is3=\E[?5l, rs3=\E[?5l, tbc=\E[3g, use=wy99-ansi,
-
-# This terminal (firmware version 02) has a lot of bugs:
-# - can't set tabs;
-# - other bugs in ANSI modes (see above).
-# This description disables handshaking when using cup. This is because
-# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal
-# cannot be used at speeds greater than 9600 baud, because at greater
-# speeds handshaking is needed even for character sending. If you use
-# DTR handshaking, you can use even greater speeds.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, it#8, lines#25, wsl#46,
- acsc='x+y.wI~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
- blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
- cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\E`2\E`1, dch1=\EW, dim=\EGp, dl1=\ER, dsl=\EF\r,
- ed=\EY$<8*>, el=\ET$<8>, enacs=\Ec@1J$<2000>,
- flash=\E\^1$<30/>\E\^0, fsl=^M, home=^^, ht=^I, il1=\EE,
- ind=^J, invis=\EG3,
- is2=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024,
- ka1=^^, ka3=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^A`\r, kf14=^Aa\r, kf15=^Ab\r,
- kf16=^Ac\r, kf17=^Ad\r, kf18=^Ae\r, kf19=^Af\r, kf2=^AA\r,
- kf20=^Ag\r, kf21=^Ah\r, kf22=^Ai\r, kf23=^Aj\r, kf24=^Ak\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, kprt=\EP, mc0=\EP, mc4=^T, mc5=\Ed#,
- nel=^_, prot=\E), rev=\EG4, ri=\Ej, rmacs=\EcD, rmam=\Ed.,
- rmcup=\Ec21\Ec31, rmir=\Er, rmso=\EG0, rmxon=\Ec20\Ec30,
- rs2=\Eu\E~4\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\^0\E`1\E`4\Ee.\E`\:\Ee)\Ew\EwG\Ew0\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\Ec@0B\EcD\024,
- sgr=\E(\EG%{48}%?%p1%p3%O%t%{4}%+%;%?%p2%t%{8}%+%;%?%p4%t%{2}%+%;%?%p5%t%{64}%+%;%?%p7%t%{1}%+%;%c%?%p8%t\E)%;%?%p9%t\EcE%e\EcD%;,
- sgr0=\E(\EG0, smacs=\EcE, smam=\Ed/, smcup=\Ec20\Ec30,
- smir=\Eq, smso=\EG4, smxon=\Ec21\Ec31, tsl=\EF,
-
-# This is the american terminal. Here tabs work.
-# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
-wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
- hts=\E1, tbc=\E0, use=wy99f,
-
-#
-# The Wyse 160 is combination of the WY-60 and the WY-99gt.
-# The reset strings are slow and the pad times very depending
-# on other parameters such as font loading. I have tried
-# to follow the following outline:
-#
-# <rs1> -> set personality
-# <rs2> -> set number of columns
-# <rs3> -> set number of lines
-# <is1> -> select the proper font
-# <is2> -> do the initialization
-# <is3> -> set up display memory (2 pages)
-#
-# The display memory may be used for either text or graphics.
-# When "Display Memory = Shared" the terminal will have more pages
-# but garbage may be left on the screen when you switch from
-# graphics to text. If "Display Memory = Unshared" then the
-# text area will be only one page long.
-#
-# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
-# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
-wy160|wyse160|Wyse 160,
- am, bw, hs, km, mc5i, mir, msgr,
- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
- dclk=\E`b, dim=\EGp, dl1=\ER$<1>, dsl=\EF\r, ed=\EY$<30>,
- el=\ET$<5>, flash=\E`8$<100/>\E`9, fsl=^M, home=\E{, ht=^I,
- hts=\E1, il1=\EE$<1>, ind=\n$<1>, ip=$<2>, is1=\EcB0\EcC1,
- is2=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
- is3=\Ew0$<100>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ,
- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=\E{^K,
- mc0=\EP, mc4=^T, mc5=\Ed#, nel=\r\n$<1>,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<1>,
- rmacs=\EcD, rmam=\Ed., rmclk=\E`c, rmcup=\Ew0, rmir=\Er,
- rmln=\EA11, rmxon=\Ec20, rs1=\E~!\E~4$<70>,
- rs2=\E`\:$<100>, rs3=\EwG\Ee($<140>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
- smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, smxon=\Ec21,
- tbc=\E0, tsl=\EF, use=adm+sgr,
-#
-wy160-w|wyse160-w|wyse 160 132-column,
- cols#132, lw#7, nlab#16, wsl#90,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<9>,
- rs2=\EeF$<150>\E`;$<150>, use=wy160,
-#
-wy160-25|wyse160-25|wyse 160 80-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<200>, use=wy160,
-wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<200>, use=wy160-w,
-#
-wy160-42|wyse160-42|wyse 160 80-column 42-lines,
- lines#42,
- clear=\E+$<50>, dl1=\ER$<2>, ed=\Ey$<50>, il1=\EE$<2>,
- ind=\n$<2>, is1=\EcB2\EcC3, nel=\r\n$<2>, ri=\Ej$<2>,
- rs3=\Ee*$<150>, use=wy160,
-wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines,
- cols#132, lw#7, nlab#16, wsl#90,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<8>, ip=$<3>,
- rs2=\EeF$<150>\E`;$<150>, use=wy160-42,
-#
-wy160-43|wyse160-43|wyse 160 80-column 43-lines,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\Ee+$<150>, use=wy160-42,
-wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\Ee+$<150>, use=wy160-42-w,
-#
-wy160-vb|wyse160-vb|Wyse 160 visible bell,
- bel@, use=wy160,
-wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell,
- bel@, use=wy160-w,
-#
-# The Wyse 75 is a vt100 lookalike without advanced video.
-#
-# The Wyse 75 can support one attribute (e.g. Dim, Inverse,
-# Underline) without magic cookies. The following description
-# uses this capability, but when more than one attribute is
-# put on the screen at once, all attributes will be changed
-# to be the same as the last attribute given.
-# The Wyse 75 can support more attributes when used with magic
-# cookies. The wy75-mc terminal description uses magic cookies
-# to correctly handle multiple attributes on a screen.
-#
-wy75|wyse75|wyse 75,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, lines#24, ma#1, pb#1201, wsl#78,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[J$<30>,
- cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr$<2>,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP$<3*>,
- dch1=\E[P$<3>, dim=\E[0t\E[2m, dl=\E[%p1%dM$<1*>,
- dl1=\E[M, dsl=\E[>\,\001\001\E[>-\001\001,
- ech=\E[%p1%dX, ed=\E[J$<30>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E)0, flash=\E[30h\E\,\E[30l$<250>, fsl=^A,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
- ind=\n$<2>, ip=$<1>,
- is1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h,
- is2=\E>\E(B\E)0\017, is3=\E[m, ka1=\EOw, ka3=\EOy,
- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdl1=\E[M, kel=\E[K, kent=\EOM,
- kf1=\E[?5i, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[?3i,
- kf20=\E[34~, kf21=\E[35~, kf3=\E[2i, kf4=\E[@, kf5=\E[M,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[H, kich1=\E[@, kil1=\E[L, knp=\E[6~,
- kpp=\E[5~, kprt=\E[?5i, kslt=\E[4~, mc0=\E[0i, mc4=\E[4i,
- mc5=\E[5i, rc=\E8, rev=\E[1t\E[7m, ri=\EM$<2>, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m,
- rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<80>, rs3=\E[?5l,
- sc=\E7,
- sgr=%?%p5%t\E[0t%;%?%p3%p1%|%t\E[1t%;%?%p2%t\E[2t%;%?%p4%t\E[3t%;%?%p1%p2%p3%p4%p5%|%|%|%|%t\E[7m%e\E[m%;%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E[?7h\E=, smso=\E[1t\E[7m, smul=\E[2t\E[4m,
- tbc=\E[3g, tsl=\E[>\,\001,
-#
-# This terminal description uses the non-hidden attribute mode
-# (with magic cookie).
-#
-wy75-mc|wyse75-mc|wyse 75 with magic cookies,
- msgr@,
- ma@, xmc#1,
- blink=\E[2p, dim=\E[1p, invis=\E[4p, is3=\E[m\E[p,
- rev=\E[16p, rmacs=\E[0p\017, rmso=\E[0p, rmul=\E[0p,
- sgr=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;,
- sgr0=\E[0p\017, smacs=\E[0p\016, smso=\E[17p, smul=\E[8p,
- use=wy75,
-wy75-vb|wyse75-vb|wyse 75 with visible bell,
- pb@,
- bel@, use=wy75,
-wy75-w|wyse75-w|wyse 75 in 132 column mode,
- cols#132, wsl#130,
- rs2=\E[35h\E[?3h$<80>, use=wy75,
-wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns,
- pb@,
- bel@, use=wy75-w,
-#
-# Wyse 85 emulating a vt220 7 bit mode.
-# 24 line screen with status line.
-#
-# The vt220 mode permits more function keys but it wipes out
-# the escape key. I strongly recommend that <f11> be set to
-# escape (esc).
-# The terminal may have to be set for 8 data bits and 2 stop
-# bits for the arrow keys to work.
-# The Wyse 85 runs faster with XON/XOFF enabled. Also the
-# <dch> and <ich> work best when XON/XOFF is set. <ich> and
-# <dch> leave trash on the screen when used without XON/XOFF.
-#
-wy85|wyse85|wyse 85,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf1=\EOP,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR,
- kf4=\EOS, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- kfnd=\E[1~, khlp=\E[28~, khome=\E[26~, kich1=\E[2~,
- knp=\E[6~, kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3,
- lf4=PF4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
- ri=\EM$<3>, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>,
- rmso=\E[m, rmul=\E[m, rs1=\E[13l\E[3l\E!p,
- rs2=\E[35h\E[?3l$<70>, rs3=\E[?5l, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[40h\E7\E[25;%i%p1%dH,
-#
-# Wyse 85 with visual bell.
-wy85-vb|wyse85-vb|wyse 85 with visible bell,
- bel@, flash=\E[30h\E\,\E[30l$<300>, use=wy85,
-#
-# Wyse 85 in 132-column mode.
-wy85-w|wyse85-w|wyse 85 in 132-column mode,
- cols#132, wsl#132,
- rs2=\E[35h\E[?3h$<70>, use=wy85,
-#
-# Wyse 85 in 132-column mode with visual bell.
-wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
- bel@, use=wy85-w,
-
-# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
-# This copes with an apparent firmware bug in the wy85. He writes:
-# "What I did was change leave the terminal cursor keys set to Normal
-# (instead of application), and change \E[ to \233 for all the keys in
-# terminfo. At one point, I found some reference indicating that this
-# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
-# me), but I can't find that and the server under my bookmark to "Wyse
-# Technical" isn't responding. So there's the question of wether the wy85
-# terminfo should reflect the manufactuer's intended behaviour of the terminal
-# or the actual."
-wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
- am, hs, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<110>, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP$<3*>, dch1=\E[P$<3>, dim=\E[2m,
- dl=\E[%p1%dM$<3*>, dl1=\E[M$<3>, dsl=\E[40l,
- ech=\E[%p1%dX, ed=\E[J$<110>, el=\E[K$<1>, el1=\E[1K,
- enacs=\E)0, flash=\E[30h\E\,\E[30l$<300>,
- fsl=\E[1;24r\E8, home=\E[H, ht=\011$<1>, hts=\EH,
- ich=\E[%p1%d@$<4*>, il=\E[%p1%dL$<5*>, il1=\E[L$<5>,
- ind=\n$<3>, invis=\E[8m, ip=$<3>, is1=\E[62;1"p\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h$<16>,
- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\233D, kcud1=\233B,
- kcuf1=\233C, kcuu1=\233A, kdch1=\2333~, kent=\EOM,
- kf1=\EOP, kf10=\23321~, kf11=\23323~, kf12=\23324~,
- kf13=\23325~, kf14=\23326~, kf15=\23328~, kf16=\23329~,
- kf17=\23331~, kf18=\23332~, kf19=\23333~, kf2=\EOQ,
- kf20=\23334~, kf3=\EOR, kf4=\EOS, kf6=\23317~, kf7=\23318~,
- kf8=\23319~, kf9=\23320~, kfnd=\2331~, khlp=\23328~,
- khome=\23326~, kich1=\2332~, knp=\2336~, kpp=\2335~,
- kslt=\2334~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<3>,
- rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[m,
- rmul=\E[m, rs1=\E[13l\E[3l\E!p, rs2=\E[35h\E[?3l$<70>,
- rs3=\E[?5l, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;+m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[40h\E7\E[25;%i%p1%dH,
-#
-# Wyse 185 emulating a vt320 7 bit mode.
-#
-# This terminal always displays 25 lines. These lines may be used
-# as 24 data lines and a terminal status line (top or bottom) or
-# 25 data lines. The 48 and 50 line modes change the page size
-# and not the number of lines on the screen.
-#
-# The Compose Character key can be used as a meta key if changed
-# by set-up.
-#
-wy185|wyse185|wyse 185,
- am, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<3>,
- dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
- dsl=\E7\E[99;0H\E[K\E8, ech=\E[%p1%dX, ed=\E[J$<40>,
- el=\E[K, el1=\E[1K, enacs=\E)0,
- flash=\E[30h\E\,\E[30l$<100>, fsl=\E[1;24r\E8,
- home=\E[H, hpa=\E[%i%p1%d`, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>, il1=\E[L$<3>,
- ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h,
- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOy, kb2=\EOu,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kent=\EOM,
- kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
- kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
- kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
- kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- khome=\E[26~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, mc0=\E[0i,
- mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m, ri=\EM$<2>,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l, rmkx=\E>,
- rmso=\E[27m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E7\E[99;%i%p1%dH, vpa=\E[%i%p1%dd,
-#
-# Wyse 185 with 24 data lines and top status (terminal status)
-wy185-24|wyse185-24|wyse 185 with 24 data lines,
- hs@,
- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
- use=wy185,
-#
-# Wyse 185 with visual bell.
-wy185-vb|wyse185-vb|wyse 185+flash,
- bel@, use=wy185,
-#
-# Wyse 185 in 132-column mode.
-wy185-w|wyse185-w|wyse 185 in 132-column mode,
- cols#132, wsl#132,
- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
- ip=$<7>, rs2=\E[35h\E[?3h, use=wy185,
-#
-# Wyse 185 in 132-column mode with visual bell.
-wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
- bel@, use=wy185-w,
-
-# wy325 terminfo entries
-# Done by Joe H. Davis 3-9-92
-
-# lines 25 columns 80
-#
-wy325|wyse325|Wyse epc,
- am, bw, hs, mc5i, mir,
- cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
- bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
- cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
- dim=\EGp, dl1=\ER$<3>, dsl=\EF\r, ed=\EY$<50>, el=\ET$<4>,
- flash=\E`8$<100/>\E`9, fsl=^M, home=^^, ht=^I, hts=\E1,
- il1=\EE$<3>, ind=\n$<3>, ip=$<2>, is1=\EcB0\EcC1,
- is2=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El,
- is3=\Ew0$<16>, kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kent=\E7, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r,
- kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq,
- kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er, ll=^^^K,
- mc0=\EP, mc4=^T, mc5=\Ed#,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<2>,
- rmacs=\EcD, rmam=\Ed., rmcup=\Ew0, rmir=\Er, rmln=\EA11,
- rs1=\E~!\E~4$<30>, rs2=\EeF\E`\:$<70>,
- rs3=\EwG\Ee($<100>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EcE%e\EcD%;\EG%{48}%?%p2%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EcE, smam=\Ed/,
- smcup=\Ew1, smir=\Eq, smln=\EA10, smso=\EGt, tbc=\E0,
- tsl=\EF, use=adm+sgr,
-
-#
-# lines 24 columns 80 vb
-#
-wy325-vb|wyse325-vb|wyse-325 with visual bell,
- bel@, use=wy325,
-
-#
-# lines 24 columns 132
-#
-wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode,
- cols#132, lw#7, nlab#16, wsl#97,
- cup=\Ea%i%p1%dR%p2%dC, dch1=\EW$<12>, ip=$<4>,
- rs2=\E`;$<70>, use=wy325,
-#
-# lines 25 columns 80
-#
-wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325,
-#
-# lines 25 columns 132
-#
-wy325-25w|wyse325-25w|wy325 132 columns,
- lh@, lines#25, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 25 columns 132 vb
-#
-wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video,
- bel@, use=wy325-w,
-
-#
-# lines 42 columns 80
-#
-wy325-42|wyse325-42|wyse-325 42 lines,
- lh@, lines#42, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325,
-#
-# lines 42 columns 132
-#
-wy325-42w|wyse325-42w|wyse-325 42 lines wide mode,
- lh@, lines#42, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 42 columns 132 vb
-#
-wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell,
- bel@, use=wy325-w,
-#
-# lines 43 columns 80
-#
-wy325-43|wyse325-43|wyse-325 43 lines,
- lh@, lines#43, lw@, nlab@,
- pln@, use=wy325,
-#
-# lines 43 columns 132
-#
-wy325-43w|wyse325-43w|wyse-325 43 lines wide mode,
- lh@, lines#43, lw@, nlab@,
- pln@, rs3=\EwG\Ee)$<100>, use=wy325-w,
-#
-# lines 43 columns 132 vb
-#
-wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell,
- bel@, use=wy325-w,
-
-# Wyse 370 -- 24 line screen with status line.
-#
-# The terminal may have to be set for 8 data bits and 2 stop
-# bits for the arrow keys to work.
-#
-# If you change keyboards the terminal will send different
-# escape sequences.
-# The following definition is for the basic terminal without
-# function keys.
-#
-# <u0> -> enter Tektronix 4010/4014 mode
-# <u1> -> exit Tektronix 4010/4014 mode
-# <u2> -> enter ASCII mode (from any ANSI mode)
-# <u3> -> exit ASCII mode (goto native ANSI mode)
-# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode)
-# <u5> -> exit Tek 4207 mode (goto native ANSI mode)
-#
-# Bug: The <op> capability resets attributes.
-wy370-nk|wyse 370 without function keys,
- am, ccc, hs, mc5i, mir, msgr, xenl, xon,
- colors#64, cols#80, it#8, lines#24, ncv#48, pairs#64, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH$<1>, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<1*>, dch1=\E[P$<1>,
- dclk=\E[31h, dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>,
- dsl=\E[40l, ech=\E[%p1%dX$<.1*>, ed=\E[J$<40>,
- el=\E[K$<10>, el1=\E[1K$<12>, enacs=\E)0,
- flash=\E[30h\E\,\E[30l$<300>, fsl=\E[1;24r\E8,
- home=\E[H, hpa=\E[%i%p1%d`, ht=\011$<1>, hts=\EH,
- ich=\E[%p1%d@$<1*>, il=\E[%p1%dL$<2*>, il1=\E[L$<2>,
- ind=\n$<2>,
- initc=\E[66;%p1%d;%?%p2%{250}%<%t%{0}%e%p2%{500}%<%t%{16}%e%p2%{750}%<%t%{32}%e%{48}%;%?%p3%{250}%<%t%{0}%e%p3%{500}%<%t%{4}%e%p3%{750}%<%t%{8}%e%{12}%;%?%p4%{250}%<%t%{0}%e%p4%{500}%<%t%{1}%e%p4%{750}%<%t%{2}%e%{3}%;%{1}%+%+%+%dw,
- invis=\E[8m, ip=$<1>, is1=\E[90;1"p\E[?5W$<6>,
- is2=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h,
- is3=\E>\017\E)0\E(B\E[63;0w\E[m, mc0=\E[0i, mc4=\E[4i,
- mc5=\E[5i,
- oc=\E[60w\E[63;0w\E[66;1;4w\E[66;2;13w\E[66;3;16w\E[66;4;49w\E[66;5;51w\E[66;6;61w\E[66;7;64w,
- op=\E[m, rc=\E8, rev=\E[7m, ri=\EM$<2>, rmacs=^O,
- rmam=\E[?7l, rmclk=\E[31l, rmcup=\E[ R, rmir=\E[4l,
- rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E!p\E[?4i, rs2=\E[35h\E[?3l$<8>,
- rs3=\E[?5l, sc=\E7, setb=\E[62;%p1%dw, setf=\E[61;%p1%dw,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[ Q,
- smir=\E[4h, smkx=\E[?1l\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[40l\E[40h\E7\E[99;%i%p1%dH,
- u0=\E[?38h\E8, u1=\E[?38l\E)0, u2=\E[92;52"p, u3=\E~B,
- u4=\E[92;76"p, u5=\E%!1\E[90;1"p, vpa=\E[%i%p1%dd,
-#
-# Function key set for the ASCII (wy-50 compatible) keyboard
-# This is the default 370.
-#
-wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\EOQ, kdl1=\EOQ, kent=\EOM, kf1=\E[?4i,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf2=\E[?3i,
- kf3=\E[2i, kf4=\E[@, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[H, kich1=\EOP, kil1=\EOP,
- knp=\E[U, kpp=\E[V, use=wy370-nk,
-#
-# Function key set for the VT-320 (and wy85) compatible keyboard
-#
-wy370-105k|Wyse 370 with 105 key keyboard,
- ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[3~, kent=\EOM, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
- use=wy370-nk,
-#
-# Function key set for the PC compatible keyboard
-#
-wy370-EPC|Wyse 370 with 102 key keyboard,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kend=\E[1~, kent=\EOM, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- kf5=\E[M, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, kich1=\E[2~, knp=\E[U, kpp=\E[V, use=wy370-nk,
-#
-# Wyse 370 with visual bell.
-wy370-vb|Wyse 370 with visible bell,
- bel@, use=wy370,
-#
-# Wyse 370 in 132-column mode.
-wy370-w|Wyse 370 in 132-column mode,
- cols#132, wsl#132,
- rs2=\E[35h\E[?3h$<70>, use=wy370,
-#
-# Wyse 370 in 132-column mode with visual bell.
-wy370-wvb|Wyse 370 with visible bell 132-columns,
- flash=\E[30h\E\,\E[30l$<300>, use=wy370-w,
-wy370-rv|Wyse 370 reverse video,
- rs3=\E[32h\E[?5h, use=wy370,
-#
-# Wyse 99gt Tektronix 4010/4014 emulator,
-#
-wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator,
- am, os,
- cols#74, lines#35,
- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
- cup=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
- cuu1=^K, ff=^L,
- hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
- home=^]7`x @\037,
- hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
- is2=\E8, nel=^M^J, u0=\E~>\E8, u1=\E[42h,
-#
-# Wyse 160 Tektronix 4010/4014 emulator,
-#
-wy160-tek|Wyse 160 Tektronix 4010/4014 emulator,
- cup=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037,
- home=^]8`g @\037, use=wy99gt-tek,
-#
-# Wyse 370 Tektronix 4010/4014 emulator,
-#
-wy370-tek|Wyse 370 Tektronix 4010/4014 emulator,
- am, os,
- cols#80, lines#36,
- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s,
- cup=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037,
- cuu1=^K, ff=^L,
- hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037,
- home=^]8g @\037,
- hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037,
- is2=\E8, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^I, kcuu1=^K,
- nel=^M^J, u0=\E[?38h\E8, u1=\E[?38l\E)0,
-
-# Vendor-supplied Wyse entries end here.
-
-#
-#TITLE: TERMINFO ENTRY WY520
-#DATE: 8/5/93
-# The WY520 terminfo is based on the WY285 entry published on the WYSE
-# BBS with the addition of more function keys and special keys.
-#
-# rs1 -> set personality
-# rs2 -> set number of columns
-# rs3 -> set number of lines
-# is1 -> select the proper font
-# is2 -> do the initialization
-# is3 -> If this string is empty then rs3 gets sent.
-#
-# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
-# - The BS key is programmed to generate BS in smcup since
-# is2 doesn't seem to work.
-# - Remove and shift/Remove: delete a character
-# - Insert : enter insert mode
-# - Find : delete to end of file
-# - Select : clear a line
-# - F11, F12, F13: send default sequences (not ESC, BS, LF)
-# - F14 : Home key
-# - Bottom status line (host writable line) is used.
-# - smkx,rmkx are removed because this would put the numeric
-# keypad in Dec application mode which doesn't seem to work
-# with SCO applications.
-#
-wy520|wyse520|wyse 520,
- am, hs, km, mc5i, mir, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J$<40>, cnorm=\E[34h\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr$<20>, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h\E[34l, dch=\E[%p1%dP$<3>, dch1=\E[P$<30>,
- dim=\E[2m, dl=\E[%p1%dM$<2*>, dl1=\E[M$<2>, dsl=\E[0$~,
- ech=\E[%p1%dX, ed=\E[J$<40>, el=\E[K, el1=\E[1K,
- enacs=\E)0, fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%d`, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<2>, il=\E[%p1%dL$<3*>,
- il1=\E[L$<3>, ind=\n$<2>, invis=\E[8m, ip=$<4>, is1=\E[?5W,
- is2=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h,
- is3=\E>\E(B\E)0\017\E[m, ka1=\EOw, ka3=\EOu, kb2=\EOy,
- kbs=^H, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, ked=\E[1~,
- kel=\E[4~, kent=\EOM, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, khome=\E[26~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
- ri=\EM$<2>, rmacs=^O, rmam=\E[?7l, rmcup=\E[ R, rmir=\E[4l,
- rmso=\E[m, rmul=\E[24m,
- rs1=\E[13l\E[3l\E\\\E[63;1"p\E[!p, rs2=\E[35h\E[?3l,
- rs3=\E[?5l\E[47h\E[40l\E[r, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p3%p1%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h,
- smcup=\E[ Q\E[?67;8h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}\E[%i%p1%d`,
- vpa=\E[%i%p1%dd,
-#
-# Wyse 520 with 24 data lines and status (terminal status)
-wy520-24|wyse520-24|wyse 520 with 24 data lines,
- hs@,
- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
- use=wy520,
-#
-# Wyse 520 with visual bell.
-wy520-vb|wyse520-vb|wyse 520 with visible bell,
- flash=\E[30h\E\,\E[30l$<100>, use=wy520,
-#
-# Wyse 520 in 132-column mode.
-wy520-w|wyse520-w|wyse 520 in 132-column mode,
- cols#132, wsl#132,
- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
- ip=$<7>, rs2=\E[35h\E[?3h, use=wy520,
-#
-# Wyse 520 in 132-column mode with visual bell.
-wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns,
- flash=\E[30h\E\,\E[30l$<100>, use=wy520-w,
-#
-#
-# Wyse 520 emulating a vt420 7 bit mode.
-# The DEL key is programmed to generate BS in is2.
-# With EPC keyboard.
-# - 'End' key will clear till end of line on EPC keyboard
-# - Shift/End : ignored.
-# - Insert : enter insert mode.
-# - Delete : delete a character (have to change interrupt character
-# to CTRL-C: stty intr '^c') for it to work since the
-# Delete key sends 7FH.
-wy520-epc|wyse520-epc|wyse 520 with EPC keyboard,
- kdch1=\177, kel=\E[4~, kend=\E[4~, kf0=\E[21~, kf1=\E[11~,
- kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, khome=\E[H,
- use=wy520,
-#
-# Wyse 520 with 24 data lines and status (terminal status)
-# with EPC keyboard.
-wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard,
- hs@,
- dsl@, fsl@, rs3=\E[?5l\E[47h\E[40l\E[1;24r, tsl@,
- use=wy520-epc,
-#
-# Wyse 520 with visual bell.
-wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard,
- flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc,
-#
-# Wyse 520 in 132-column mode.
-wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard,
- cols#132, wsl#132,
- dch=\E[%p1%dP$<7>, dch1=\E[P$<7>, ich=\E[%p1%d@$<7>,
- ip=$<7>, rs2=\E[35h\E[?3h, use=wy520-epc,
-#
-# Wyse 520 in 132-column mode with visual bell.
-wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard,
- flash=\E[30h\E\,\E[30l$<100>, use=wy520-epc-w,
-#
-# Wyse 520 in 80-column, 36 lines
-wy520-36|wyse520-36|wyse 520 with 36 data lines,
- hs@,
- lines#36,
- dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
- use=wy520,
-#
-# Wyse 520 in 80-column, 48 lines
-wy520-48|wyse520-48|wyse 520 with 48 data lines,
- hs@,
- lines#48,
- dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
- use=wy520,
-#
-# Wyse 520 in 132-column, 36 lines
-wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines,
- cols#132, wsl#132,
- rs2=\E[?3h,
- rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
- use=wy520-36,
-#
-# Wyse 520 in 132-column, 48 lines
-wy520-48w|wyse520-48w|wyse 520 with 48 data lines,
- cols#132, wsl#132,
- rs2=\E[?3h,
- rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
- use=wy520-48,
-#
-#
-# Wyse 520 in 80-column, 36 lines with EPC keyboard
-wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard,
- hs@,
- lines#36,
- dsl@, fsl@, rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r, tsl@,
- use=wy520-epc,
-#
-# Wyse 520 in 80-column, 48 lines with EPC keyboard
-wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard,
- hs@,
- lines#48,
- dsl@, fsl@, rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r, tsl@,
- use=wy520-epc,
-#
-# Wyse 520 in 132-column, 36 lines with EPC keyboard
-wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard,
- cols#132, wsl#132,
- rs2=\E[?3h,
- rs3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|,
- use=wy520-36pc,
-#
-# Wyse 520 in 132-column, 48 lines with EPC keyboard
-wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard,
- cols#132, wsl#132,
- rs2=\E[?3h,
- rs3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|,
- use=wy520-48pc,
-
-# From: John Gilmore <hoptoad!gnu@lll-crg.arpa>
-# (wyse-vp: removed <if=/usr/share/tabset/wyse-adds>, there's no such
-# file and we don't know what <hts> is -- esr)
-wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EW,
- dl1=\El, ed=\Ek, el=\EK, home=^A, ht=^I, il1=\EM, ind=^J,
- is2=\E`\:\E`9\017\Er, kbs=^H, kcub1=^U, kcud1=^J, kcuf1=^F,
- kcuu1=^Z, khome=^A, ll=^A^Z, nel=^M^J, rmir=\Er, rmso=^O,
- rmul=^O, rs1=\E`\:\E`9\017\Er, sgr0=^O, smir=\Eq, smso=^N,
- smul=^N,
-
-wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad,
- is2=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- khome=\EOH, rmkx=\E[?1l\E>$<10/>, smkx=\E[?1h\E=$<10/>,
- use=wy75,
-
-# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu>
-wy100q|Wyse 100 for Quotron,
- OTbs,
- cols#80, lines#24, xmc#1,
- cbt=\EI, clear=^Z, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, il1=\EE, invis@,
- is2=\E`\:\0\EC\EDF\E0\E'\E(\EA21, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, ri=\Ej, rmir=\Er, smir=\Eq, use=adm+sgr,
-
-#### Kermit terminal emulations
-#
-# Obsolete Kermit versions may be listed in the section describing obsolete
-# non-ANSI terminal emulators later in the file.
-#
-
-# KERMIT standard all versions.
-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
-# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 9-25-84
-kermit|standard kermit,
- OTbs,
- cols#80, lines#24,
- clear=\EE, cub1=^H, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH, is2=K0 Standard Kermit 9-25-84\n,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
-kermit-am|standard kermit plus auto-margin,
- am,
- is2=K1 Standard Kermit plus Automatic Margins\n,
- use=kermit,
-# IBMPC Kermit 1.2.
-# Bugs: <ed>, <el>: do not work except at beginning of line! <clear> does
-# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of
-# line).
-# From: greg small <gts@populi.berkeley.edu> 8-30-84
-pckermit|pckermit12|UCB IBMPC Kermit 1.2,
- am,
- lines#25,
- clear=\EH\EJ, ed@, el@,
- is2=K2 UCB IBMPC Kermit 1.2 8-30-84\n, use=kermit,
-# IBMPC Kermit 1.20
-# Cannot use line 25, now acts funny like ansi special scrolling region.
-# Initialization must escape from that region by cursor position to line 24.
-# Cannot use character insert because 1.20 goes crazy if insert at col 80.
-# Does not use :am: because autowrap is lost when kermit dropped and restarted.
-# From: greg small <gts@populi.berkeley.edu> 12-19-84
-pckermit120|UCB IBMPC Kermit 1.20,
- it#8, lines#24,
- cud1=\EB, cvvis=\EO\Eq\EEK3, dch1=\EN, dl1=\EM, ht=^I,
- il1=\EL,
- is2=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n,
- rmir@, rmso=\Eq, smir@, smso=\Ep, use=kermit,
-# MS-DOS Kermit 2.27 for the IBMPC
-# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
-# Cannot use line 25, now acts funny like ansi special scrolling region.
-# Initialization must escape from that region by cursor position to line 24.
-# Does not use am: because autowrap is lost when kermit dropped and restarted.
-# Reverse video for standout like H19.
-# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 3-17-85
-msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC,
- OTbs, am@,
- cols#80, it#8, lines#24,
- clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- cvvis=\EO\Eq\EG\EwK4, dch1=\EN, dl1=\EM, ed=\EJ, el=\EK,
- home=\EH, ht=^I, il1=\EL,
- is2=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rc=\Ek,
- rmir=\EO, rmso=\Eq, sc=\Ej, smir=\E@, smso=\Ep,
-# MS-DOS Kermit 2.27 with automatic margins
-# From: greg small <gts@populi.berkeley.edu> 3-17-85
-msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins,
- am,
- cvvis=\EO\Eq\EG\EvK5,
- is2=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n,
- use=msk227,
-# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC
-# Automatic margins now default. Use ansi <sgr> for highlights.
-# Define function keys.
-# (msk22714: removed obsolete ":kn#10:" -- esr)
-# From: greg small <gts@populi.berkeley.edu> 3-17-85
-msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC,
- am,
- bold=\E[1m, cvvis=\EO\Eq\EG\EvK6,
- is2=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n,
- kf0=\E0, kf1=\E1, kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6,
- kf7=\E7, kf8=\E8, kf9=\E9, rev=\E[7m, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smso=\E[1m, smul=\E[4m, use=mskermit227,
-# This was designed for a VT320 emulator, but it is probably a good start
-# at support for the VT320 itself.
-# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
-# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
-vt320-k3|MS-Kermit 3.00's vt320 emulation,
- am, eslok, hs, km, mir, msgr, xenl,
- cols#80, it#8, lines#49, pb#9600, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cmdch=\E, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[0$~, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l,
- fsl=\E[0$}, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is2=\E>\E F\E[?1l\E[?7h\E[r\E[2$~, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdl1=\E[3~, kf0=\E[21~,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, nel=^M^J, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dL, rmacs=\E(B, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\E(B\E)B\E>\E F\E[4;20l\E[12h\E[?1;5;6;38;42l\E[?7;25h\E[4i\E[?4i\E[m\E[r\E[2$~,
- sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[1$}\r\E[K, vpa=\E[%i%p1%dd,
-# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
-# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996
-# (I removed a bogus boolean :mo: and added <msgr>, <smam>, <rmam> -- esr)
-vt320-k311|dec vt320 series as defined by kermit 3.11,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[;H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
- kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
- lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt100, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
- smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
-
-######## NON-ANSI TERMINAL EMULATIONS
-#
-
-#### Avatar
-#
-# These entries attempt to describe Avatar, a terminal emulation used with
-# MS-DOS bulletin-board systems. It was designed to give ANSI-like
-# capabilities, but with cheaper (shorter) control sequences. Messy design,
-# excessively dependent on PC idiosyncracies, but apparently rather popular
-# in the BBS world.
-#
-# No color support. Avatar doesn't fit either of the Tektronix or HP color
-# models that terminfo knows about. An Avatar color attribute is the
-# low 7 bits of the IBM-PC display-memory attribute. Bletch.
-#
-# I wrote these entries while looking at the Avatar spec. I don't have
-# the facilities to test them. Let me know if they work, or don't.
-#
-# Avatar escapes not used by these entries (because maybe you're smarter
-# and more motivated than I am and can figure out how to wrap terminfo
-# around some of them, and because they are weird enough to be funny):
-# level 0:
-# ^L -- clear window/reset current attribute to default
-# ^V^A%p1%c -- set current color attribute, parameter decodes as follows:
-#
-# bit: 6 5 4 3 2 1 0
-# | | | | |
-# +---+---+ | +---+---+
-# | | |
-# | | foreground color
-# | foreground intensity
-# background color
-# level 0+:
-# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines
-# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines
-# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1
-# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1
-# (^V^L and ^V^M set the current attribute as a side-effect.)
-# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes
-# in the pattern, <c> the number of times the pattern
-# should be repeated. If either value is 0, no-op.
-# The pattern can contain Avatar console codes,
-# including other ^V ^Y patterns.
-# level 1:
-# ^V^O -- clockwise mode on; turn print direction right each time you
-# hit a window edge (yes, really). Turned off by CR
-# ^V^P -- no-op
-# ^V^Q%c -- query the driver
-# ^V^R -- driver reset
-# ^V^S -- Sound tone (PC-specific)
-# ^V^T -- change highlight at current cursor poition to %c
-# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b>
-# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
-# -- define window
-#
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to
-# tell ncurses that the corresponding highlights exist; it should use <sgr>,
-# which is the only method that will actually work for multiple highlights.)
-avatar0|avatar terminal emulator level 0,
- am, bce, msgr,
- cols#80, it#8, lines#25,
- blink=^A^V\177, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
- cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G,
- ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%d, rev=^A^Vp,
- rs2=^L,
- sgr=\026\001%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p4%t{128}%|%;%?%p6%t%{16}%|%;,
- sgr0=^V^A^G, smacs=, smso=^A^Vp, smul=^V^A, use=klone+acs,
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-avatar0+|avatar terminal emulator level 0+,
- dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0,
-# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
-avatar|avatar1|avatar terminal emulator level 1,
- civis=^V'^B, cnorm=^V'^A, cvvis=^V^C, dl1=^V-, il1=^V+,
- rmam=^V", rmir=^V^P, smam=^V$, use=avatar0+,
-
-#### RBcomm
-#
-# RBComm is a lean and mean terminal emulator written by the Interrupt List
-# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
-# '90s), especially in the BBS world, and still has some loyal users due to
-# its very small memory footprint and to a cute macro language.
-rbcomm|IBM PC with RBcomm and EMACS keybindings,
- am, bw, mir, msgr, xenl,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^C, cuf1=^B,
- cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^,
- cvvis=\E[?25h, dch1=^W, dl=\E[%p1%dM, dl1=^Z,
- ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I, il=\E[%p1%dL, il1=^K,
- ind=\ED, invis=\E[8m,
- is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
- kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED,
- rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
- rmir=^], rmkx=\E>, rmso=^U, rmul=^U,
- rs1=\017\E(B\E)0\025\E[?3l\E[>8g, sc=\E7, sgr0=\E[m,
- smcup=, smdc=, smir=^\, smkx=\E=, smso=^R, smul=^T,
-rbcomm-nam|IBM PC with RBcomm without autowrap,
- am@,
- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
-rbcomm-w|IBM PC with RBcomm in 132 column mode,
- cols#132,
- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J,
- is2=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, use=rbcomm,
-
-######## LCD DISPLAYS
-#
-
-#### Matrix Orbital
-# from: Eric Z. Ayers (eric@ale.org)
-#
-# Matrix Orbital 20x4 LCD display
-# Command Character is 0xFE (decimal 254, octal 376)
-#
-# On this device, cursor addressability isn't possible. The LCD expects:
-# 0xfe G <col> <row>
-# for cup: %p1 == row and %p2 is column
-#
-# This line:
-# cup=\376G%p2%c%p1%c
-# LOOKS like it will work, but sometimes only one of the two numbers is sent.
-# See the terminfo (5) manpage commented regarding 'Terminals which use "%c"'.
-#
-# Alas, there is no cursor upline capability on this display.
-#
-# These entries add some 'sanity stuff' to the clear function. That is, it
-# does a 'clear' and also turns OFF auto scroll, turns ON Auto Line Wrapping,
-# and turns off the cursor blinking and stuff like that.
-#
-# NOTE: calling 'beep' turns on the backlight (bell)
-# NOTE: calling 'flash' turns it on and back off (visual bell)
-#
-MtxOrb| Generic Matrix Orbital LCD display,
- bel=\376B^A, clear=\376X\376C\376R\376K\376T,
- cnorm=\376K\376T, cub1=\376L, cuf1=\376M,
- flash=\376B\001$<200>\376F, home=\376H,
-MtxOrb204| 20x4 Matrix Orbital LCD display,
- cols#20, lines#4, use=MtxOrb,
-MtxOrb162| 16x2 Matrix Orbital LCD display,
- cols#16, lines#2, use=MtxOrb,
-# The end
-
-######## OLDER TERMINAL TYPES
-#
-# This section is devoted to older commercial terminal brands that are now
-# discontinued, but known to be still in use or represented by emulations.
-#
-
-#### AT&T (att, tty)
-#
-# This section also includes Teletype-branded VDTs.
-#
-# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now
-# Boundless Technologies); for details, see the header comment on the ADDS
-# section.
-#
-# These are AT&T's official terminfo entries. All-caps aliases have been
-# removed.
-#
-att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode,
- am, eo, mir, msgr, xon,
- cols#80, it#8, lines#24,
- bel=^G, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, kbs=^H, kcbt=\E[Z, kclr=\E[J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kf1=\E[1r, kf10=\E[10r, kf11=\E[11r,
- kf12=\E[12r, kf13=\E[13r, kf14=\E[14r, kf15=\E[15r,
- kf16=\E[16r, kf2=\E[2r, kf3=\E[3r, kf4=\E[4r, kf5=\E[5r,
- kf6=\E[6r, kf7=\E[7r, kf8=\E[8r, kf9=\E[9r, khome=\E[H,
- kich1=\E[@, kil1=\E[L, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- rev=\E[7m, rmir=\E[4l, rmso=\E[m, sgr0=\E[m, smir=\E[4h,
- smso=\E[7m,
-att2350|AT&T 2350 Video Information Terminal 80 column mode,
- mc0@, mc4@, mc5@, use=att2300,
-
-# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
-# Seems upward compatible with vt100, plus ins/del line/char.
-# On sgr, the protection parameter is ignored.
-# No check is made to make sure that only 3 parameters are output.
-# standout= reverse + half-intensity = 3 | 5.
-# bold= reverse + underline = 2 | 3.
-# note that half-bright blinking doesn't look different from normal blinking.
-# NOTE:you must program the function keys first, label second!
-# (att4410: a BSD entry has been seen with the following capabilities:
-# <is2=\E[?6l>, <kf1=\EOc>, <kf2=\EOd>, <kf3=\EOe>, <kf4=\EOg>,
-# <kf6=\EOh>, <kf7=\EOi>, <kf8=\EOj>, -- esr)
-att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1,
- am, hs, mir, msgr, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
- acsc=++\,\,--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, clear=\E[H\E[J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dim=\E[2m,
- dl1=\E[M, ed=\E[J, el=\E[K, fsl=\E8, home=\E[H, ht=^I,
- ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, is1=\E[?3l\E)0,
- is3=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW,
- kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT,
- kf6=\EOU, kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H,
- ll=\E[24H, nel=^M^J,
- pfx=\E[%p1%1d;%p2%l%2.2dq f%p1%1d %p2%s,
- pln=\E[%p1%d;00q%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
- sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%p1%{1}%+%dH,
-
-att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1,
- cols#132, wsl#132,
- is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att5410v1,
-
-att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2,
- OTbs,
- pfx=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s,
- use=att5410v1,
-
-att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode,
- cols#132, wsl#132,
- is1=\E[?3h\E)0, rs2=\Ec\E[?3h\E[2;0y, use=att4410,
-
-# 5410 in terms of a vt100
-# (v5410: added <rmam>/<smam> based on init string -- esr)
-v5410|att5410 in terms of a vt100,
- am, mir, msgr, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu1=\E[A$<2>, dch1=\E[P,
- dl1=\E[M, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ich1=\E[@,
- il1=\E[L, ind=^J, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H,
- kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\EOx,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt, kf6=\EOu, kf7=\EOv,
- kf8=\EOl, kf9=\EOw, rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>,
- rmacs=^O, rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m$<2>,
- rmul=\E[m$<2>, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-
-#
-# Teletype Model 5420 -- A souped up 5410, with multiple windows,
-# even! the 5420 has three modes: scroll, window or page mode
-# this terminfo should work in scroll or window mode, but doesn't
-# take advantage of any of the differences between them.
-#
-# Has memory below (2 lines!)
-# 3 pages of memory (plus some spare)
-# The 5410 sequences for <cup>, <cvvis>, <dch>, <dl>, <ech>, <flash>, <home>,
-# <hpa>, <hts> would work for these, but these work in both scroll and window
-# mode... Unset insert character so insert mode works
-# <is1> sets 80 column mode,
-# <is2> escape sequence:
-# 1) turn off all fonts
-# 2) function keys off, keyboard lock off, control display off,
-# insert mode off, erasure mode off,
-# 3) full duplex, monitor mode off, send graphics off, nl on lf off
-# 4) reset origin mode
-# 5) set line wraparound
-# 6) exit erasure mode, positional attribute mode, and erasure extent mode
-# 7) clear margins
-# 8) program ENTER to transmit ^J,
-# We use \212 to program the ^J because a bare ^J will get translated by
-# UNIX into a CR/LF. The enter key is needed for AT&T uOMS.
-# 1 2 3 4 5 6 7 8
-# <is3> set screen color to black,
-# No representation in terminfo for the delete word key: kdw1=\Ed
-# Key capabilities assume the power-up send sequence...
-# This <rmcup> is not strictly necessary, but it helps maximize
-# memory usefulness: <rmcup=\Ez>,
-# Alternate sgr0: <sgr0=\E[m\EW^O>,
-# Alternate sgr: <sgr=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;>,
-# smkx programs the SYS PF keys to send a set sequence.
-# It also sets up labels f1, f2, ..., f8, and sends edit keys.
-# This string causes them to send the strings <kf1>-<kf8>
-# when pressed in SYS PF mode.
-# (att4415: I added <rmam>/<smam> based on the init string -- esr)
-att4415|tty5420|att5420|AT&T 4415/5420 80 cols,
- OTbs, db, mir, xon,
- lh#2, lm#78, lw#8, nlab#8, wsl#55,
- cbt=\E[Z, clear=\E[x\E[J, cnorm=\E[11;0j, cub=\E[%p1%dD,
- cud=\E[%p1%dB, cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dx,
- cuu=\E[%p1%dA, cvvis=\E[11;1j, dch=\E[%p1%dP,
- dl=\E[%p1%dM, ech=\E[%p1%ds\E[%p1%dD,
- flash=\E[?5h$<200>\E[?5l, home=\E[x,
- hpa=\E[%p1%{1}%+%dG, hts=\EH, ich=\E[%p1%d@, ich1@,
- il=\E[%p1%dL, indn=\E[%p1%dE, is1=\E[?3l$<100>,
- is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212,
- is3=\E[?5l, kbeg=\Et, kcbt=\E[Z, kdch1=\E[P, kdl1=\E[M,
- kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc, kf2=\EOd,
- kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
- kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
- kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
- lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?2i, mc4=\E[?9i,
- mc5=\E[?4i, mrcup=\E[%i%p1%d;%p2%dt,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV,
- rin=\E[%p1%dF, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[19;0j\E[21;1j\212, rmln=\E|,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smam=\E[?7h, smir=\E[4h,
- smkx=\E[19;1j\E[21;4j\Eent, smln=\E~, tbc=\E[3g,
- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
- use=att4410,
-
-att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols,
- cols#132, lm#54, wsl#97,
- is1=\E[?3h$<100>, use=att4415,
-
-att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv,
- flash=\E[?5l$<200>\E[?5h, is3=\E[?5h, use=att4415,
-
-att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv,
- cols#132, lm#54, wsl#97,
- flash=\E[?5l$<200>\E[?5h, is1=\E[?3h$<100>, is3=\E[?5h,
- use=att4415,
-
-# Note that this mode permits programming USER PF KEYS and labels
-# However, when you program user pf labels you have to reselect
-# user pf keys to make them appear!
-att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
- pfx=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s,
- pln=\E[%p1%d;0;0;1q%p2%:-16.16s,
-
-att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
- use=att4415,
-
-att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
- use=att4415-rv,
-
-att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
- use=att4415-w,
-
-att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels,
- kf1@, kf2@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@, use=att4415+nl,
- use=att4415-w-rv,
-
-att5420_2|AT&T 5420 model 2 80 cols,
- am, db, hs, mir, msgr, xon,
- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
- cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cvvis=\E[11;1j,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, el=\E[0K,
- el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
- invis=\E[8m,
- is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
- kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
- kel=\E[2K, kend=\Ez, kent=^J, kf1=\EOc, kf2=\EOd, kf3=\EOe,
- kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj, khome=\E[H,
- kich1=\E[4h, kil1=\E[L, kind=\E[T, kll=\Eu, knp=\E[U,
- kpp=\E[V, kri=\E[S, lf1=F1, lf2=F2, lf3=F3, lf4=F4, lf5=F5,
- lf6=F6, lf7=F7, lf8=F8, ll=\Ew, mc0=\E[?;2i, mc4=\E[4i,
- mc5=\E[5i, mrcup=\E[%i%p1%d;%p2%dt, nel=^M^J,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%d %p2%s\E~,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s\E~, prot=\EV, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmkx=\E[19;0j,
- rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
- sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
-att5420_2-w|AT&T 5420 model 2 in 132 column mode,
- cols#132,
- is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
- use=att5420_2,
-
-att4418|att5418|AT&T 5418 80 cols,
- am, xon,
- cols#80, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H,
- ich=\E[%p1%d@, ich1=\E[1@, il=\E[%p1%dL, il1=\E[1L, ind=^J,
- is1=\E[?3l, is2=\E)0\E?6l\E?5l, kclr=\E[%%, kcub1=\E@,
- kcud1=\EU, kcuf1=\EA, kcuu1=\ES, kent=\E[, kf1=\E[h,
- kf10=\E[m, kf11=\E[n, kf12=\E[o, kf13=\E[H, kf14=\E[I,
- kf15=\E[J, kf18=\E[K, kf19=\E[L, kf2=\E[i, kf20=\E[E,
- kf21=\E[_, kf22=\E[M, kf23=\E[N, kf24=\E[O, kf3=\E[j,
- kf6=\E[k, kf7=\E[l, kf8=\E[f, kf9=\E[w, khome=\Ec, rc=\E8,
- rev=\E[7m, rmacs=^O, rmso=\E[m, rmul=\E[m, sc=\E7,
- sgr0=\E[m\017, smacs=^N, smso=\E[7m, smul=\E[4m,
-att4418-w|att5418-w|AT&T 5418 132 cols,
- cols#132,
- is1=\E[?3h, use=att5418,
-
-att4420|tty4420|teletype 4420,
- OTbs, da, db, eo, msgr, ul, xon,
- cols#80, lines#24, lm#72,
- bel=^G, clear=\EH\EJ, cr=\EG, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\Ez, home=\EH, il1=\EL, ind=\EH\EM\EY7\s,
- kcbt=\EO, kclr=\EJ, kcub1=^H, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EP, kdl1=\EM, kf0=\EU, kf3=\E@, khome=\EH,
- kich1=\E\^, kil1=\EL, kind=\ES, kri=\ET,
- lf0=segment advance, lf3=cursor tab, rmdc@, rmso=\E~,
- rmul=\EZ, smdc@, smso=\E}, smul=\E\\,
-
-# The following is a terminfo entry for the Teletype 4424
-# asynchronous keyboard-display terminal. It supports
-# the vi editor. The terminal must be set up as follows,
-#
-# HIGHLIGHT DEFINITION 3-TONE
-# DISPLAY FUNCTION GROUP III
-#
-# The second entry below provides limited (a la adm3a)
-# operation under GROUP II.
-#
-# This must be used with DISPLAY FUNCTION GROUP I or III
-# and HIGHLIGHT DEFINITION 3-TONE
-# The terminal has either bold or blink, depending on options
-#
-# (att4424: commented out <smcup>=\E[1m, we don't need bright locked on -- esr)
-att4424|tty4424|teletype 4424,
- OTbs, am, xon,
- cols#80, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E3, bold=\E3, cbt=\EO, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\EB, cuf=\E[%p1%dC, cuf1=\EC,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EA,
- dch=\E[%p1%dP, dch1=\EP, dim=\EW, dl=\E[%p1%dM, dl1=\EM,
- ed=\EJ, el=\Ez, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E\^, il=\E[%p1%dL, il1=\EL, ind=^J, is2=\E[20l\E[?7h,
- kbs=^H, kclr=\EJ, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~,
- rmul=\EZ,
- sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m,
- sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
- tbc=\EF,
-
-att4424-1|tty4424-1|teletype 4424 in display function group I,
- kclr@, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome@,
- use=att4424,
-
-# This entry is not one of AT&T's official ones, it was translated from the
-# 4.4BSD termcap file. The highlight strings are different from att4424.
-# I have no idea why this is -- older firmware version, maybe?
-# The following two lines are the comment originally attached to the entry:
-# This entry appears to avoid the top line - I have no idea why.
-# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
-att4424m|tty4424m|teletype 4424M,
- am, da, db, mir,
- cols#80, it#8, lines#23,
- bel=^G, clear=\E[2;H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH\E[B, cuu1=\E[A, dch1=\EP,
- dl1=\EM, el=\E[K, ht=^I, ich1=\E\^, il1=\EL, ind=^J, ip=$<2/>,
- is2=\E[m\E[2;24r, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, nel=^M^J, ri=\ET, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
-# The Teletype 5425 is really version 2 of the Teletype 5420. It
-# is quite similar, except for some minor differences. No page
-# mode, for example, so all of the <cup> sequences used above have
-# to change back to what's being used for the 5410. Many of the
-# option settings have changed their numbering as well.
-#
-# This has been tested on a preliminary model.
-#
-# (att5425: added <rmam>/<smam> based on the init string -- esr)
-att5425|tty5425|att4425|AT&T 4425/5425,
- am, da, db, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lm#78, lw#8, nlab#8, wsl#55,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[12;0j, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[12;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
- invis=\E[8m, is1=\E<\E[?3l$<100>,
- is2=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212,
- is3=\E[?5l, kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kel=\E[2K, kend=\Ez, kent=\Eent, kf1=\EOc,
- kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg, kf6=\EOh, kf7=\EOi,
- kf8=\EOj, khome=\E[H, kich1=\E[4h, kil1=\E[L, kind=\E[T,
- kri=\E[S, ll=\E[24H, mc0=\E[?2i, mc4=\E[?9i, mc5=\E[?4i,
- nel=^M^J,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, prot=\EV, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dF, rmacs=^O, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E[21;0j\E[25;1j\212, rmln=\E|,
- rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y, sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[21;1j\E[25;4j\Eent\E~, smln=\E~, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E7\E[25;%p1%{8}%+%dH,
- vpa=\E[%p1%{1}%+%dd,
-
-att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels,
- smkx=\E[21;1j\E[25;4j\Eent, use=att4425,
-
-att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode,
- cols#132, lm#54, wsl#97,
- is1=\E[?3h$<100>, use=tty5425,
-
-# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
-# I also added <rmam>/<smam> -- esr)
-att4426|tty4426|teletype 4426S,
- am, da, db, xon,
- cols#80, lines#24, lm#48,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
- cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EA, dch=\E[%p1%dP, dch1=\EP,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
- hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
- il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS,
- is1=\Ec\E[?7h, is2=\E[m\E[1;24r, kbs=^H, kcbt=\EO,
- kclr=\E[2J, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU,
- kf7=\EOV, kf8=\EOW, khome=\E[H, kll=\E[24;1H, ll=\E[24H,
- nel=^M^J, rc=\E8, rev=\E[7m, ri=\ET, rin=\E[%p1%dT,
- rmacs=\E(B, rmam=\E[?7l, rmso=\E[m, rmul=\E[m,
- rs2=\Ec\E[?3l\E[2;0y, sc=\E7, sgr0=\E[m\E(B, smacs=\E(0,
- smam=\E[?7h, smso=\E[5m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%p1%dd,
-
-# Terminfo entry for the AT&T 510 A Personal Terminal
-# Function keys 9 - 16 are available only after the
-# screen labeled (soft keys/action blocks) are labeled. Function key
-# 9 corresponds to the leftmost touch target on the screen,
-# function key 16 corresponds to the rightmost.
-#
-# This entry is based on one done by Ernie Rice at Summit, NJ and
-# changed by Anne Gallup, Skokie, IL, ttrdc!anne
-att510a|bct510a|AT&T 510A Personal Terminal,
- am, mir, msgr, xenl, xon,
- cols#80, lh#2, lines#24, lw#7, nlab#8,
- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[1B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
- el=\E[0K, el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H, ht=^I,
- hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E(B\E)1\E[2l,
- is3=\E[21;1|\212, kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm,
- kf10=\EOd, kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh,
- kf15=\EOi, kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe,
- kf6=\ENf, kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T,
- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, nel=\EE,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmkx=\E[19;0|, rmso=\E[m, rmul=\E[m, sc=\E7,
- sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smkx=\E[19;1|, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-
-# Terminfo entry for the AT&T 510 D Personal Terminal
-# Function keys 9 through 16 are accessed by bringing up the
-# system blocks.
-# Function key 9 corresponds to the leftmost touch target on the screen,
-# function key 16 corresponds to the rightmost.
-#
-# There are problems with soft key labeling. These are due to
-# strangenesses in the native terminal that are impossible to
-# describe in a terminfo.
-att510d|bct510d|AT&T 510D Personal Terminal,
- am, da, db, mir, msgr, xenl, xon,
- cols#80, lh#2, lines#24, lm#48, lw#7, nlab#8,
- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD,
- cub1=^H, cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
- el1=\E[1K, enacs=\E(B\E)1, ff=^L, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
- invis=\E[8m, is1=\E(B\E)1\E[5;0|, is3=\E[21;1|\212,
- kLFT=\E[u, kRIT=\E[v, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOm, kf10=\EOd,
- kf11=\EOe, kf12=\EOf, kf13=\EOg, kf14=\EOh, kf15=\EOi,
- kf16=\EOj, kf2=\EOV, kf3=\EOu, kf4=\ENj, kf5=\ENe, kf6=\ENf,
- kf7=\ENh, kf8=\E[H, kf9=\EOc, kind=\E[S, kri=\E[T, ll=\E#2,
- mc0=\E[0i, mc4=\E[?8i, mc5=\E[?4i, mgc=\E\:, nel=\EE,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmkx=\E[19;0|,
- rmln=\E<, rmso=\E[m, rmul=\E[m, rmxon=\E[29;1|,
- rs2=\E[5;0|, sc=\E7,
- sgr=\E[0%?%p5%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smgl=\E4, smgr=\E5, smir=\E[4h,
- smkx=\E[19;1|, smln=\E?, smso=\E[7m, smul=\E[4m,
- smxon=\E[29;0|, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
-
-# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
-att500|att513|AT&T 513 using page mode,
- am, chts, mir, msgr, xenl, xon,
- cols#80, lh#2, lines#24, lw#8, nlab#8,
- acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
- clear=\E[H\E[J, cnorm=\E[11;0|, cr=^M,
- csr=%i\E[%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[11;1|, dch=\E[%p1%dP, dch1=\E[P$<1>, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)1, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- indn=\E[%p1%dE, invis=\E[8m,
- is1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l,
- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
- kFND=\EOX, kHLP=\EOM, kHOM=\ENM, kIC=\ENJ, kLFT=\ENK,
- kMOV=\ENC, kMSG=\EOL, kNXT=\ENH, kOPT=\EOR, kPRT=\EOZ,
- kPRV=\ENG, kRDO=\EOT, kRES=\EOQ, kRIT=\ENL, kRPL=\EOY,
- kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9, kbs=^H, kcan=\EOw,
- kcbt=\E[Z, kclo=\EOV, kclr=\E[J, kcmd=\EOu, kcpy=\ENd,
- kcrt=\EOn, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=\Eent,
- kext=\EOk, kf1=\EOc, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kfnd=\EOx, khlp=\EOm,
- khome=\E[H, kich1=\ENj, kind=\E[S, kmov=\ENc, kmrk=\ENi,
- kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
- kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
- kres=\EOq, krfr=\ENa, kri=\E[T, krpl=\EOy, krst=\EOB,
- ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, ll=\E#2,
- mc0=\E[?98l\E[0i, mc4=\E[?98l\E[?8i, mc5=\E[?98l\E[?4i,
- nel=\EE,
- pfkey=\E[%p1%d;%p2%l%d;3;0p F%p1%d %p2%s,
- pfloc=\E[%p1%d;%p2%l%d;2;0p F%p1%d %p2%s,
- pfx=\E[%p1%d;%p2%l%d;1;0p F%p1%d %p2%s,
- pln=\E[%p1%dp%p2%:-16s, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dF, rmacs=^O, rmir=\E[4l,
- rmkx=\E[19;0|\E[21;1|\212, rmln=\E<, rmso=\E[m,
- rmul=\E[m,
- rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l,
- rs2=\E[5;0|, sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h,
- smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
-
-# 01-07-88
-# printer must be set to EMUL ANSI to accept ESC codes
-# <cuu1> stops at top margin
-# <is1> sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
-# and alt font ascii,wrap on,tabs cleared
-# <is2> disables newline on LF,Emphasized off
-# The <u0> capability sets form length
-att5310|att5320|AT&T Model 53210 or 5320 matrix printer,
- xhpa, xvpa,
- bufsz#8192, cols#132, cps#120, it#8, lines#66, orc#10,
- orhi#100, orl#12, orvi#72,
- cpi=%?%p1%{10}%=%t\E[w%e%p1%{12}%=%t\E[2w%e%p1%{5}%=%t\E[5w%e%p1%{13}%=%p1%{14}%=%O%t\E[3w%e%p1%{16}%=%p1%{17}%=%O%t\E[4w%e%p1%{6}%=%t\E[6w%e%p1%{7}%=%t\E[7w%e%p1%{8}%=%t\E[8w%;,
- cr=^M,
- csnm=%?%p1%{0}%=%tusascii%e%p1%{1}%=%tenglish%e%p1%{2}%=%tfinnish%e%p1%{3}%=%tjapanese%e%p1%{4}%=%tnorwegian%e%p1%{5}%=%tswedish%e%p1%{6}%=%tgermanic%e%p1%{7}%=%tfrench%e%p1%{8}%=%tcanadian_french%e%p1%{9}%=%titalian%e%p1%{10}%=%tspanish%e%p1%{11}%=%tline%e%p1%{12}%=%tsecurity%e%p1%{13}%=%tebcdic%e%p1%{14}%=%tapl%e%p1%{15}%=%tmosaic%;,
- cud=\E[%p1%de, cud1=^J, cuf=\E[%p1%da, cuf1=\s, cuu1=\EM,
- ff=^L, hpa=\E[%p1%d`, ht=^I, is1=\Ec, is2=\E[20l\r,
- lpi=%?%p1%{2}%=%t\E[4z%e%p1%{3}%=%t\E[5z%e%p1%{4}%=%t\E[6z%e%p1%{6}%=%t\E[z%e%p1%{8}%=%t\E[2z%e%p1%{12}%=%t\E[3z%;,
- rshm=\E[m,
- scs=%?%p1%{0}%=%t\E(B%e%p1%{1}%=%t\E(A%e%p1%{2}%=%t\E(C%e%p1%{3}%=%t\E(D%e%p1%{4}%=%t\E(E%e%p1%{5}%=%t\E(H%e%p1%{6}%=%t\E(K%e%p1%{7}%=%t\E(R%e%p1%{8}%=%t\E(Q%e%p1%{9}%=%t\E(Y%e%p1%{10}%=%t\E(Z%e%p1%{11}%=%t\E(0%e%p1%{12}%=%t\E(1%e%p1%{13}%=%t\E(3%e%p1%{14}%=%t\E(8%e%p1%{15}%=%t\E(}%;,
- smgbp=\E[;%p1%dr, smglp=\E[%{1}%p1%+%ds,
- smgrp=\E[;%{1}%p1%+%ds, smgtp=\E[%p1%dr, sshm=\E[5m,
- u0=\E[%p1%dt, vpa=\E[%p1%dd,
-
-# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL
-# The following SET-UP modes are assumed for normal operation:
-# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements. This termcap description is for the Resident Terminal Mode.
-# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# The BRL entry also said: UNSAFE :ll=\E[70H:
-att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs,
- am, xon,
- cols#88, it#8, lines#70, vt#3,
- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J, indn=\E[%p1%dS, kbs=^H, kclr=\E[2J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- kll=\E[70;1H, nel=^M^J, rc=\E8, ri=\E[T, rin=\E[%p1%dT,
- rs1=\Ec, sc=\E7,
-
-# 5620 terminfo (2.0 or later ROMS with char attributes)
-# The following SET-UP modes are assumed for normal operation:
-# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements. This termcap description is for Resident Terminal Mode. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# assumptions: <ind> (scroll forward one line) is only done at screen bottom
-# Be aware that older versions of the dmd have a firmware bug that affects
-# parameter defaulting; for this terminal, the 0 in \E[0m is not optional.
-# <msgr> is from an otherwise inferior BRL for this terminal. That entry
-# also has <ll>=\E[70H commented out and marked unsafe.
-# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
-att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns,
- OTbs, am, msgr, npc, xon,
- cols#88, it#8, lines#70,
- bel=^G, bold=\E[2m, clear=\E[H\E[J, cr=^M, cub1=^H,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, kbs=^H, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, kll=\E[70;1H, nel=^J,
- pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8, rev=\E[7m, ri=\E[T,
- rin=\E[%p1%dT, rmso=\E[0m, rmul=\E[0m, rs1=\Ec, sc=\E7,
- sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer,
- lines#24, use=att5620,
-att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer,
- lines#34, use=att5620,
-# 5620 layer running the "S" system's downloaded graphics handler:
-att5620-s|tty5620-s|layer|vitty|5620 S layer,
- OTbs, OTpt, am,
- cols#80, it#8, lines#72,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=^K, dl1=\ED,
- el=\EK, flash=\E^G, ht=^I, il1=\EI, ind=^J, kbs=^H, kclr=\E[2J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- kll=\E[70;1H,
-
-# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
-#
-# Entries for <kf29> thru <kf46> refer to the alternate keypad mode
-# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER
-att605|AT&T 605 80 column 102key keyboard,
- am, eo, xon,
- cols#80, lines#24, lw#8, nlab#8, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
- dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, fsl=\E8, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il1=\E[L, ind=^J, invis=\E[8m,
- is1=\E[8;0|\E[?\E[13;20l\E[?\E[12h, is2=\E[m\017,
- kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z, kclr=\E[2J,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp, kf11=\ENq,
- kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD,
- kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH,
- kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ,
- kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe,
- kf30=\EOQ, kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx,
- kf35=\EOy, kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv,
- kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs,
- kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh,
- kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H, kich1=\E[@,
- kil1=\E[L, kind=\E[S, knp=\E[U, kpp=\E[V, ll=\E[24H,
- mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
- rs2=\Ec\E[?3l, sc=\E7, sgr0=\E[m\017, smacs=\E)0\016,
- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%i%p1%dx,
-att605-pc|ATT 605 in pc term mode,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- cbt=\E[Z, cub1=\E[D, cud1=\E[B, cuf1=\E[C, cuu1=\E[A,
- dch1=\E[P, dl1=\E[M, ich1=\E[@, il1=\E[L, kcbt=\E[Z,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P,
- kdl1=\E[M, kend=\E[F, kf1=\E[M, kf10=\E[V, kf2=\E[N,
- kf3=\E[O, kf4=\E[P, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T,
- kf9=\E[U, khome=\E[H, kich1=\E[@, knp=\E[G, kpp=\E[I,
- rmsc=400\E[50;0|, smsc=250\E[?11l\E[50;1|, xoffc=g,
- xonc=e, use=att605,
-att605-w|AT&T 605-w 132 column 102 key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0,
- use=att605,
-# (att610: I added <rmam>/<smam> based on the init string. I also
-# added <indn> and <rin> because the BSD file says the att615s have them,
-# and the 615 is like a 610 with a big keyboard, and most of their other
-# smart terminals support the same sequence -- esr)
-att610|AT&T 610; 80 column; 98key keyboard,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- indn=\E[%p1%dS, invis=\E[8m,
- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf2=\EOd, kf3=\EOe, kf4=\EOf, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
- kind=\E[S, kri=\E[T, ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i,
- nel=\EE,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
- rmln=\E[2p, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smln=\E[p, smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,
-att610-w|AT&T 610; 132 column; 98key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
- use=att610,
-
-att610-103k|AT&T 610; 80 column; 103key keyboard,
- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
- kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
- kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
- kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
- kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
- kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf9@, kfnd=\EOx,
- khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi, kmsg=\EOl,
- knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr, kpp=\E[V,
- kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb, kres=\EOq,
- krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB, ksav=\EOo,
- kslt=\ENI, kspd=\EOp, kund=\EOs, use=att610,
-att610-103k-w|AT&T 610; 132 column; 103key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
- use=att610-103k,
-att615|AT&T 615; 80 column; 98key keyboard,
- kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
- kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
- kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
- kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
- kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
- kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610,
-att615-w|AT&T 615; 132 column; 98key keyboard,
- kLFT=\E[ A, kRIT=\E[ @, kf15=\EOC, kf16=\EOD, kf17=\EOE,
- kf18=\EOF, kf19=\EOG, kf20=\EOH, kf21=\EOI, kf22=\EOJ,
- kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR, kf27=\ENS,
- kf28=\ENT, kf29=\EOP, kf30=\EOQ, kf31=\EOR, kf32=\EOS,
- kf33=\EOw, kf34=\EOx, kf35=\EOy, kf36=\EOm, kf37=\EOt,
- kf38=\EOu, kf39=\EOv, kf40=\EOl, kf41=\EOq, kf42=\EOr,
- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, use=att610-w,
-att615-103k|AT&T 615; 80 column; 103key keyboard,
- kLFT=\E[ A, kRIT=\E[ @, use=att610-103k,
-att615-103k-w|AT&T 615; 132 column; 103key keyboard,
- kLFT=\E[ A, kRIT=\E[ @, use=att610-103k-w,
-# (att620: I added <rmam>/<smam> based on the init string and
-# <rin>/<indn> from a BSD termcap -- esr)
-att620|AT&T 620; 80 column; 98key keyboard,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- indn=\E[%p1%dS, invis=\E[8m,
- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf15=\EOC, kf16=\EOD, kf17=\EOE,
- kf18=\EOF, kf19=\EOG, kf2=\EOd, kf20=\EOH, kf21=\EOI,
- kf22=\EOJ, kf23=\ENO, kf24=\ENP, kf25=\ENQ, kf26=\ENR,
- kf27=\ENS, kf28=\ENT, kf29=\EOP, kf3=\EOe, kf30=\EOQ,
- kf31=\EOR, kf32=\EOS, kf33=\EOw, kf34=\EOx, kf35=\EOy,
- kf36=\EOm, kf37=\EOt, kf38=\EOu, kf39=\EOv, kf4=\EOf,
- kf40=\EOl, kf41=\EOq, kf42=\EOr, kf43=\EOs, kf44=\EOp,
- kf45=\EOn, kf46=\EOM, kf5=\EOg, kf6=\EOh, kf7=\EOi, kf8=\EOj,
- kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T, ll=\E[24H,
- mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
- pfx=\E[%p1%d;%p2%l%02dq F%p1%1d %p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
- ri=\EM, rin=\E[%p1%dT, rmacs=\E(B\017, rmam=\E[?7l,
- rmir=\E[4l, rmln=\E[2p, rmso=\E[m, rmul=\E[m,
- rs2=\Ec\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\E(B\017, smacs=\E)0\016, smam=\E[?7h,
- smir=\E[4h, smln=\E[p, smso=\E[7m, smul=\E[4m,
- tsl=\E7\E[25;%i%p1%dx,
-att620-w|AT&T 620; 132 column; 98key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
- use=att620,
-att620-103k|AT&T 620; 80 column; 103key keyboard,
- kBEG=\ENB, kCAN=\EOW, kCMD=\EOU, kCPY=\END, kCRT=\EON,
- kDC=\ENF, kDL=\ENE, kEND=\ENN, kEOL=\EOA, kEXT=\EOK,
- kFND=\EOX, kHLP=\EOM, kMOV=\ENC, kMSG=\EOL, kNXT=\ENH,
- kOPT=\EOR, kPRT=\EOZ, kPRV=\ENG, kRDO=\EOT, kRES=\EOQ,
- kRPL=\EOY, kSAV=\EOO, kSPD=\EOP, kUND=\EOS, kbeg=\E9,
- kcan=\EOw, kclo=\EOV, kcmd=\EOu, kcpy=\ENd, kcrt=\EOn,
- kdch1=\ENf, kdl1=\ENe, kel=\EOa, kend=\E0, kent=^M,
- kext=\EOk, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@, kf17@,
- kf18@, kf19@, kf20@, kf21@, kf22@, kf23@, kf24@, kf25@, kf26@, kf27@,
- kf28@, kf29@, kf30@, kf31@, kf32@, kf33@, kf34@, kf35@, kf36@, kf37@,
- kf38@, kf39@, kf40@, kf41@, kf42@, kf43@, kf44@, kf45@, kf46@, kf9@,
- kfnd=\EOx, khlp=\EOm, kich1=\ENj, kmov=\ENc, kmrk=\ENi,
- kmsg=\EOl, knp=\E[U, knxt=\ENh, kopn=\EOv, kopt=\EOr,
- kpp=\E[V, kprt=\EOz, kprv=\ENg, krdo=\EOt, kref=\EOb,
- kres=\EOq, krfr=\ENa, krmir=\ENj, krpl=\EOy, krst=\EOB,
- ksav=\EOo, kslt=\ENI, kspd=\EOp, kund=\EOs, use=att620,
-
-att620-103k-w|AT&T 620; 132 column; 103key keyboard,
- cols#132, wsl#132,
- is1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h,
- use=att620-103k,
-
-# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal
-# The following SETUP modes are assumed for normal operation:
-# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF
-# Font_Size=Large Non-Layers_Window_Cols=80
-# Non-Layers_Window_Rows=60
-# Other SETUP modes may be set for operator convenience or communication
-# requirements. Some capabilities assume a printer attached to the Aux EIA
-# port. This termcap description is for the Fixed Non-Layers Window. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (att630: added <ich1>, <blink> and <dim> from a BSD termcap file -- esr)
-att630|AT&T 630 windowing terminal,
- OTbs, am, da, db, mir, msgr, npc, xon,
- cols#80, it#8, lines#60, lm#0,
- bel=^G, blink=\E[5m, cbt=\E[Z, clear=\E[H\E[J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, indn=\E[%p1%dS, is2=\E[m,
- kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kent=^M,
- kf10=\ENp, kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt,
- kf15=\ENu, kf16=\ENv, kf17=\ENw, kf18=\ENx, kf19=\ENy,
- kf20=\ENz, kf21=\EN{, kf22=\EN|, kf23=\EN}, kf24=\EN~,
- kf9=\ENo, khome=\E[H, kich1=\E[@, kil1=\E[L, mc4=\E[?4i,
- mc5=\E[?5i, nel=^M^J, pfx=\E[%p1%d;%p2%l%dq%p2%s, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, rs2=\Ec, sc=\E7,
- sgr=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m,
- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines,
- lines#24, use=att630,
-
-# This is the att700 entry for 700 native emulation of the AT&T 700
-# terminal. Comments are relative to changes from the 605V2 entry and
-# att730 on which the entry is based. Comments show the terminfo
-# capability name, termcap name, and description.
-#
-# Here is what's going onm in the init string:
-# ESC [ 50;4| set 700 native mode (really is 605)
-# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line)
-# ESC [ 53;0| set GenFlow to Xon/Xoff
-# ESC [ 8 ;0| set CR on NL
-# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h)
-# ESC [ ? 4 l jump scroll
-# ESC [ ? 5 l/h video: normal (l); reverse (h)
-# ESC [ ?13 l Labels on
-# ESC [ ?15 l parity check = no
-# ESC [ 13 l monitor mode off
-# ESC [ 20 l LF on NL (not CRLF on NL)
-# ESC [ ? 7 h autowrap on
-# ESC [ 12 h local echo off
-# ESC ( B GO = ASCII
-# ESC ) 0 G1 = Special Char & Line Drawing
-# ESC [ ? 31 l Set 7 bit controls
-#
-# Note: Most terminals, especially the 600 family use Reverse Video for
-# standout mode. DEC also uses reverse video. The VT100 uses bold in addition
-# Assume we should stay with reverse video for 70.. However, the 605V2 exits
-# standout mode with \E[m (all normal attributes). The 730 entry simply
-# exits reverse video which would leave other current attributes intact. It
-# was assumed the 730 entry to be more correct so rmso has changed. The
-# 605V2 has no sequences to turn individual attributes off, thus its setting
-# and the rmso/smso settings from the 730.
-#
-# Note: For the same reason as above in rmso I changed exit under-score mode
-# to specifically turn off underscore, rather than return to all normal
-# attributes
-#
-# Note: The following pkey_xmit is taken from the 605V2 which contained the
-# capability as pfxl. It was changed here to pfx since pfxl
-# will only compile successfully with Unix 4.0 tic. Also note that pfx only
-# allows strings to be parameters and label values must be programmed as
-# constant strings. Supposedly the pfxl of Version 4.0 allows both labels
-# and strings to be parameters. The 605V2 pfx entry should be examined later
-# in this regard. For reference the 730 pfxl entry is shown here for comparison
-# 730 pfx entry:
-# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s
-# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
-#
-# (for 4.0 tic)
-# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
-#
-# (for <4.0 tic)
-# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
-#
-# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9
-#
-# Port1 Interface
-#
-# modular 10 pin Connector
-# Left side Right side
-# Pin 1 2 3 4 5 6 7 8 9 10
-#
-# Key (notch) at bottom
-#
-# Pin 1 DSR
-# 3 DCD
-# 4 DTR
-# 5 Sig Ground
-# 6 RD
-# 7 SD
-# 8 CTS
-# 9 RTS
-# 10 Frame Ground
-#
-# The manual is 189 pages and is loaded with details about the escape codes,
-# etc..... Available from AT&T CIC 800-432-6600...
-# ask for Document number 999-300-660..
-#
-att700|AT&T 700 24x80 column display w/102key keyboard,
- am, eslok, hs, mir, msgr, xenl, xon,
- cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fln=4\,4,
- fsl=\E8, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- il=\E[%p1%dL, il1=\E[L, ind=\ED, invis=\E[8m,
- is2=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017,
- is3=\E(B\E)0, kLFT=\E[ A, kRIT=\E[ @, kbs=^H, kcbt=\E[Z,
- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[P, kdl1=\E[M, kend=\E[24;1H, kf1=\EOc, kf10=\ENp,
- kf11=\ENq, kf12=\ENr, kf13=\ENs, kf14=\ENt, kf15=\EOC,
- kf16=\EOD, kf17=\EOE, kf18=\EOF, kf19=\EOG, kf2=\EOd,
- kf20=\EOH, kf21=\EOI, kf22=\EOJ, kf23=\ENO, kf24=\ENP,
- kf25=\ENQ, kf26=\ENR, kf27=\ENS, kf28=\ENT, kf29=\EOq,
- kf3=\EOe, kf30=\EOr, kf31=\EOs, kf32=\EOt, kf33=\EOu,
- kf34=\EOv, kf35=\EOw, kf36=\EOx, kf37=\EOy, kf38=\EOu,
- kf39=\EOv, kf4=\EOf, kf40=\EOl, kf41=\EOq, kf42=\EOr,
- kf43=\EOs, kf44=\EOp, kf45=\EOn, kf46=\EOM, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
- kich1=\E[@, kil1=\E[L, knp=\E[U, kpp=\E[V, ll=\E[24H,
- mc0=\E[i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
- pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
- rmir=\E[4l, rmln=\E[2p, rmso=\E[27m, rmul=\E[24m,
- rmxon=\E[53;3|, rs1=\Ec\E[?3;5l\E[56;0|, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smln=\E[p, smso=\E[7m,
- smul=\E[4m, smxon=\E[53;0|, tbc=\E[3g,
- tsl=\E7\E[99;%i%p1%dx,
-
-# This entry was modified 3/13/90 by JWE.
-# fixes include additions of <enacs>, correcting <rep>, and modification
-# of <kHOM>. (See comments below)
-# att730 has status line of 80 chars
-# These were commented out: <indn=\E[%p1%dS>, <rin=\E[%p1%dT>,
-# the <kf25> and up keys are used for shifted system Fkeys
-# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
-# currently the same as <khome> (unshifted HOME or \E[H). On the 102, 102+1
-# and 122 key keyboards, the 730's translation is \E[2J. For consistency
-# <kHOM> has been commented out. The user can uncomment <kHOM> if using the
-# 102, 102+1, or 122 key keyboards
-# kHOM=\E[2J,
-# (att730: I added <rmam>/<smam> based on the init string -- esr)
-att730|AT&T 730 windowing terminal,
- am, da, db, eslok, hs, mir, msgr, npc, xenl, xon,
- cols#80, it#8, lh#2, lines#60, lm#0, lw#8, nlab#24, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h\E[?12l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
- enacs=\E(B\E)0, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
- home=\E[H, ht=^I, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\ED, invis=\E[8m,
- is1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B,
- is2=\E[m\017, is3=\E(B\E)0, kLFT=\E[ @, kRIT=\E[ A, kbs=^H,
- kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOc, kf10=\ENp, kf11=\ENq, kf12=\ENr,
- kf13=\ENs, kf14=\ENt, kf15=\ENu, kf16=\ENv, kf17=\ENw,
- kf18=\ENx, kf19=\ENy, kf2=\EOd, kf20=\ENz, kf21=\EN{,
- kf22=\EN|, kf23=\EN}, kf24=\EN~, kf25=\EOC, kf26=\EOD,
- kf27=\EOE, kf28=\EOF, kf29=\EOG, kf3=\EOe, kf30=\EOH,
- kf31=\EOI, kf32=\EOJ, kf33=\ENO, kf34=\ENP, kf35=\ENQ,
- kf36=\ENR, kf37=\ENS, kf38=\ENT, kf39=\EOU, kf4=\EOf,
- kf40=\EOV, kf41=\EOW, kf42=\EOX, kf43=\EOY, kf44=\EOZ,
- kf45=\EO[, kf46=\EO\s, kf47=\EO], kf48=\EO\^, kf5=\EOg,
- kf6=\EOh, kf7=\EOi, kf8=\EOj, kf9=\ENo, khome=\E[H,
- kich1=\E[@, kil1=\E[L, kind=\E[S, kri=\E[T,
- mc0=\E[?19h\E[0i, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
- pfx=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq SYS F%p1%:-2d %e;0;3q%;%p2%s,
- pfxl=\E[%p1%d;%p2%l%02d;0;0q%p3%:-16.16s%p2%s,
- pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmir=\E[4l, rmln=\E[?13h, rmso=\E[27m,
- rmul=\E[24m, rmxon=\E[?21l, rs2=\Ec\E[?3l, sc=\E7,
- sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smln=\E[?13l, smso=\E[7m, smul=\E[4m, smxon=\E[?21h,
- swidm=\E#6, tsl=\E7\E[;%i%p1%dx,
-att730-41|730MTG-41|AT&T 730-41 windowing terminal Version,
- lines#41, use=att730,
-att730-24|730MTG-24|AT&T 730-24 windowing terminal Version,
- lines#24, use=att730,
-att730r|730MTGr|AT&T 730 rev video windowing terminal Version,
- flash=\E[?5l$<200>\E[?5h,
- is1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B,
- use=att730,
-att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version,
- lines#41, use=att730r,
-att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version,
- lines#24, use=att730r,
-
-# The following represents the screen layout along with the associated
-# bezel buttons for the 5430/pt505 terminal. The "kf" designations do
-# not appear on the screen but are shown to reference the bezel buttons.
-# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate
-# position relative to the screen.
-#
-#
-#
-# +----------------------------------------------------------------+
-# | |
-# XXXX | kf0 kf24 | XXXX
-# | |
-# | |
-# XXXX | kf1 kf23 | XXXX
-# | |
-# | |
-# XXXX | kf2 kf22 | XXXX
-# | |
-# | |
-# XXXX | kf3 kf21 | XXXX
-# | |
-# | |
-# XXXX | kf4 kf20 | XXXX
-# | |
-# | |
-# XXXX | kf5 kf19 | XXXX
-# | |
-# | |
-# XXXX | kf6 kf18 | XXXX
-# | |
-# | |
-# XXXX | | XXXX
-# | |
-# | |
-# +----------------------------------------------------------------+
-#
-# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
-#
-# Note: XXXX represents the screen buttons
-# CMD REDRAW
-#
-# MAIL
-#
-# version 1 note:
-# The character string sent by key 'kf26' may be user programmable
-# to send either \E[16s, or \E[26s.
-# The character string sent by key 'krfr' may be user programmable
-# to send either \E[17s, or \E[27s.
-#
-# Depression of the "CMD" key sends \E! (kcmd)
-# Depression of the "MAIL" key sends \E[26s (kf26)
-# "REDRAW" same as "REFRESH" (krfr)
-#
-# "kf" functions adds carriage return to output string if terminal is in
-# 'new line' mode.
-#
-# The following are functions not covered in the table above:
-#
-# Set keyboard character (SKC): \EPn1;Pn2w
-# Pn1= 0 Back Space key
-# Pn1= 1 Break key
-# Pn2= Program char (hex)
-#
-# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t
-# Pn1= Window number (1-39)
-# Pn2-Pn5= Y;X;Y;X coordinates
-#
-# Screen Selection (SSL): \E[Pnu
-# Pn= Window number
-#
-# Set Terminal Modes (SM): \E[Pnh
-# Pn= 3 Graphics mode
-# Pn= > Cursor blink
-# Pn= < Enter new line mode
-# Pn= = Enter reverse insert/replace mode
-# Pn= ? Enter no scroll mode
-#
-# Reset Terminal Mode (RM): \E[Pnl
-# Pn= 3 Exit graphics mode
-# Pn= > Exit cursor blink
-# Pn= < Exit new line mode
-# Pn= = Exit reverse insert/replace mode
-# Pn= ? Exit no scroll mode
-#
-# Screen Status Report (SSR): \E[Pnp
-# Pn= 0 Request current window number
-# Pn= 1 Request current window dimensions
-#
-# Device Status Report (DSR): \E[6n Request cursor position
-#
-# Call Status Report (CSR): \E[Pnv
-# Pn= 0 Call failed
-# Pn= 1 Call successful
-#
-# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string
-# Pn1= Button number to be loaded
-# Pn2= Character count of "string"
-# Pn3= Key mode being loaded:
-# 0= Unshifted
-# 1= Shifted
-# 2= Control
-# String= Text string (15 chars max)
-#
-# Screen Number Report (SNR): \E[Pnp
-# Pn= Screen number
-#
-# Screen Dimension Report (SDR): \E[Pn1;Pn2r
-# Pn1= Number of rows available in window
-# Pn2= Number of columns available in window
-#
-# Cursor Position Report (CPR): \E[Pn1;Pn2R
-# Pn1= "Y" Position of cursor
-# Pn2= "X" Position of cursor
-#
-# Request Answer Back (RAB): \E[c
-#
-# Answer Back Response (ABR): \E[?;*;30;VSV
-# *= 0 No printer available
-# *= 2 Printer available
-# V= Software version number
-# SV= Software sub version number
-# (printer-available field not documented in v1)
-#
-# Screen Alignment Aid: \En
-#
-# Bell (lower pitch): \E[x
-#
-# Dial Phone Number: \EPdstring\
-# string= Phone number to be dialed
-#
-# Set Phone Labels: \EPpstring\
-# string= Label for phone buttons
-#
-# Set Clock: \EPchour;minute;second\
-#
-# Position Clock: \EPsY;X\
-# Y= "Y" coordinate
-# X= "X" coordinate
-#
-# Delete Clock: \Epr\
-#
-# Programming The Function Buttons: \EPfPn;string\
-# Pn= Button number (00-06, 18-24)
-# (kf00-kf06, kf18-kf24)
-# string= Text to sent on button depression
-#
-# The following in version 2 only:
-#
-# Request For Local Directory Data: \EPp12;\
-#
-# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\
-#
-# Request for Local Directory Data in print format: \EPp13;\
-#
-# Enable 'Prt on Line' mode: \022 (DC2)
-#
-# Disable 'Prt on Line' mode: \024 (DC4)
-#
-
-# 05-Aug-86:
-# The following Terminfo entry describes functions which are supported by
-# the AT&T 5430/pt505 terminal software version 2 and later.
-att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal,
- am, xon,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[2J\E[H,
- cnorm=\E[>l, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[>h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[0J, el=\E[0K, el1=\E[2K, home=\E[H, ht=^I,
- il=\E[%p1%dL, il1=\E[L, ind=^J,
- is1=\EPr\\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l,
- kbs=^H, kcmd=\E!, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf0=\E[00s, kf1=\E[01s, kf18=\E[18s,
- kf19=\E[19s, kf2=\E[02s, kf20=\E[20s, kf21=\E[21s,
- kf22=\E[22s, kf23=\E[23s, kf24=\E[24s, kf26=\E[26s,
- kf3=\E[03s, kf4=\E[04s, kf5=\E[05s, kf6=\E[06s,
- krfr=\E[27s, mc4=\E[4i, mc5=\E[5i, rc=\E8, rev=\E[7m,
- rmacs=\E[10m, rmam=\E[11;1j, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, rs1=\Ec, sc=\E7, sgr0=\E[m, smacs=\E[11m,
- smam=\E[11;0j, smir=\E[4h, smso=\E[1m, smul=\E[4m,
-
-# The following Terminfo entry describes functions which are supported by
-# the AT&T 5430/pt505 terminal software version 1.
-att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines,
- lines#24,
- mc4@, mc5@, rc@, rmam@, sc@, smam@, use=att505,
-tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines,
- lines#22, use=att505,
-#
-#### ------------------ TERMINFO FILE CAN BE SPLIT HERE ---------------------
-# This cut mark helps make life less painful for people running ncurses tic
-# on machines with relatively little RAM. The file can be broken in half here
-# cleanly and compiled in sections -- no `use' references cross this cut
-# going forward.
-#
-
-#### Ampex (Dialogue)
-#
-# Yes, these are the same people who are better-known for making audio- and
-# videotape. I'm told they are located in Redwood City, CA.
-#
-
-# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
-# (ampex80: some capabilities merged in from SCO's entry -- esr)
-ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80,
- OTbs, am, bw, ul,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\EI, clear=\E*$<75>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dl1=\ER$<5*>, ed=\Ey, el=\Et, ht=^I, hts=\E1,
- ich1=\EQ, il1=\EE$<5*>, ind=^J, is2=\EA, rmso=\Ek, rmul=\Em,
- smso=\Ej, smul=\El, tbc=\E3,
-# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote:
-ampex175|ampex d175,
- am,
- cols#80, lines#24,
- bel=^G, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\Ey, el=\Et, home=^^, ich1=\EQ, il1=\EE, ind=^J,
- is2=\EX\EA\EF, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kdl1=\ER, khome=^^, kich1=\EQ, kil1=\EE, ll=^^^K,
- rmcup=\EF, rmso=\Ek, rmul=\Em, smcup=\EN, smso=\Ej, smul=\El,
-# No backspace key in the main QWERTY cluster. Fortunately, it has a
-# NEWLINE/PAGE key just above RETURN that sends a strange single-character
-# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS
-# mode), this key can be used as the erase key; I find I like this. Because
-# some people and some systems may not, there is another termcap ("ampex175")
-# that suppresses this little eccentricity by omitting the relevant capability.
-ampex175-b|ampex d175 using left arrow for erase,
- kbs=^_, use=ampex175,
-# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
-# (ampex210: removed obsolete ":kn#10:" -- esr)
-ampex210|a210|ampex a210,
- OTbs, am, hs, xenl,
- cols#80, it#8, lines#24, xmc#1,
- cbt=\EI, clear=\E*, cub1=^H, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\Ey, el=\Et, flash=\EU\EX\EU\EX\EU\EX\EU\EX,
- fsl=\E.2, home=^^, ht=^I, ich1=\EQ,
- if=/usr/share/tabset/std, il1=\EE, invis@,
- is2=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En, kcub1=^H,
- kcud1=^V, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A1\r,
- kf2=^A2\r, kf3=^A3\r, kf4=^A4\r, kf5=^A5\r, kf6=^A6\r,
- kf7=^A7\r, kf8=^A8\r, kf9=^A9\r, khome=^^,
- tsl=\E.0\Eg\E}\Ef, use=adm+sgr,
-# (ampex219: I added <rmam>/<smam> based on the init string, added <cvvis>
-# from ampex219w, added <cnorm>=\E[?3l, irresistibly suggested by <cvvis>,
-# and moved the padding to be *after* the caps -- esr)
-ampex219|ampex-219|amp219|Ampex with Automargins,
- hs, xenl,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>, cbt=\E[Z,
- clear=\E[H\E[2J$<50>, cnorm=\E[?3l, cr=^M,
- csr=%i\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B,
- cuf1=\E[C$<2>, cup=\E[%i%p1%d;%p2%dH$<5>,
- cuu1=\E[A$<2>, cvvis=\E[?3h, dim=\E[1m, ed=\E[J$<50>,
- el=\E[K$<3>, home=\E[H, ht=^I, ind=^J,
- is2=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[21~,
- kf1=\E[7~, kf2=\E[8~, kf3=\E[9~, kf4=\E[10~, kf5=\E[11~,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
- rev=\E[7m, ri=\EM$<5>, rmam=\E[?7l, rmkx=\E>,
- rmso=\E[m$<2>, rmul=\E[m$<2>, sgr0=\E[m$<2>, smam=\E[?7h,
- smkx=\E=, smso=\E[7m$<2>, smul=\E[4m$<2>,
-ampex219w|ampex-219w|amp219w|Ampex 132 cols,
- cols#132, lines#24,
- bel=^G, cr=^M, cud1=^J, ind=^J,
- is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h, use=ampex219,
-# (ampex232: removed <if=/usr/share/tabset/ampex>, no file and no <hts> --esr)
-ampex232|ampex-232|Ampex Model 232,
- am,
- cols#80, lines#24, xmc#1,
- cbt=\EI, civis=\E.0, clear=\E+, cnorm=\E.4, cub1=^H, cud1=^V,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dl1=\ER$<5*/>, ed=\EY, el=\ET,
- flash=\Eb$<200/>\Ed, ht=^I, ich1=\EQ, il1=\EE$<5*/>,
- invis@, is2=\Eg\El, kbs=^H, kcub1=^H, kcud1=^V, kcuf1=^L,
- kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
- kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
- kf9=^AI\r, khome=^^, use=adm+sgr,
-# (ampex: removed <if=/usr/share/tabset/amp-132>, no file and no <hts> -- esr)
-ampex232w|Ampex Model 232 / 132 columns,
- cols#132, lines#24,
- is2=\E\034Eg\El, use=ampex232,
-
-#### Ann Arbor (aa)
-#
-# Ann Arbor made dream terminals for hackers -- large screen sizes and huge
-# numbers of function keys. At least some used monitors in portrait mode,
-# allowing up to 76-character screen heights! They were reachable at:
-#
-# Ann Arbor Terminals
-# 6175 Jackson Road
-# Ann Arbor, MI 48103
-# (313)-663-8000
-#
-# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor
-# can't be found on the Web; I fear they're long dead. R.I.P.
-#
-
-
-# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs.
-# Highly modified 6/22 by Mike O'Brien.
-# split out into several for the various screen sizes by dave-yost@rand
-# Modifications made 3/82 by Mark Horton
-# Modified by Tom Quarles at UCB for greater efficiency and more diversity
-# status line moved to top of screen, <flash> removed 5/82
-# Some unknown person at SCO then hacked the init strings to make them more
-# efficient.
-#
-# assumes the following setup:
-# A menu: 0000 1010 0001 0000
-# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
-# C menu: 56 66 0 0 9600 0110 1100
-# D menu: 0110 1001 1 0
-#
-# Briefly, the settings are for the following modes:
-# (values are for bit set/clear with * indicating our preference
-# and the value used to test these termcaps)
-# Note that many of these settings are irrelevent to the terminfo
-# and are just set to the default mode of the terminal as shipped
-# by the factory.
-#
-# A menu: 0000 1010 0001 0000
-# Block/underline cursor*
-# blinking/nonblinking cursor*
-# key click/no key click*
-# bell/no bell at column 72*
-#
-# key pad is cursor control*/key pad is numeric
-# return and line feed/return for <cr> key *
-# repeat after .5 sec*/no repeat
-# repeat at 25/15 chars per sec. *
-#
-# hold data until pause pressed/process data unless pause pressed*
-# slow scroll/no slow scroll*
-# Hold in area/don't hold in area*
-# functions keys have default*/function keys disabled on powerup
-#
-# show/don't show position of cursor during page transmit*
-# unused
-# unused
-# unused
-#
-# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
-# Baud rate (9600*)
-#
-# 2 bits of parity - 00=odd,01=even*,10=space,11=mark
-# 1 stop bit*/2 stop bits
-# parity error detection off*/on
-#
-# keyboard local/on line*
-# half/full duplex*
-# disable/do not disable keyboard after data transmission*
-#
-# transmit entire page/stop transmission at cursor*
-# transfer/do not transfer protected characters*
-# transmit all characters/transmit only selected characters*
-# transmit all selected areas/transmit only 1 selected area*
-#
-# transmit/do not transmit line separators to host*
-# transmit/do not transmit page tab stops tabs to host*
-# transmit/do not transmit column tab stop tabs to host*
-# transmit/do not transmit graphics control (underline,inverse..)*
-#
-# enable*/disable auto XON/XOFF control
-# require/do not require receipt of a DC1 from host after each LF*
-# pause key acts as a meta key/pause key is pause*
-# unused
-#
-# unused
-# unused
-# unused
-# unused
-#
-# XON character (17*)
-# XOFF character (19*)
-#
-# C menu: 56 66 0 0 9600 0110 1100
-# number of lines to print data on (printer) (56*)
-#
-# number of lines on a sheet of paper (printer) (66*)
-#
-# left margin (printer) (0*)
-#
-# number of pad chars on new line to printer (0*)
-#
-# printer baud rate (9600*)
-#
-# printer parity: 00=odd,01=even*,10=space,11=mark
-# printer stop bits: 2*/1
-# print/do not print guarded areas*
-#
-# new line is: 01=LF,10=CR,11=CRLF*
-# unused
-# unused
-#
-# D menu: 0110 1001 1 0
-# LF is newline/LF is down one line, same column*
-# wrap to preceding line if move left from col 1*/don't wrap
-# wrap to next line if move right from col 80*/don't wrap
-# backspace is/is not destructive*
-#
-# display*/ignore DEL character
-# display will not/will scroll*
-# page/column tab stops*
-# erase everything*/erase unprotected only
-#
-# editing extent: 0=display,1=line*,2=field,3=area
-#
-# unused
-#
-
-annarbor4080|aa4080|ann arbor 4080,
- OTbs, am,
- cols#80, lines#40,
- bel=^G, clear=\014$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=^_,
- cup=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c,
- cuu1=^N, home=^K, ht=^I, hts=^]^P1, ind=^J, kbs=^^, kcub1=^H,
- kcud1=^J, kcuf1=^_, kcuu1=^N, khome=^K, tbc=^\^P^P,
-
-# Strange Ann Arbor terminal from BRL
-aas1901|Ann Arbor K4080 w/S1901 mod,
- am,
- cols#80, lines#40,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^N,
- home=^K, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, ll=^O\0c,
- nel=^M^J,
-
-# If you're using the GNU termcap library, add
-# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
-# to these capabilities. This is the nonstandard GNU termcap scrolling
-# capability, arguments are:
-# 1. Total number of lines on the screen.
-# 2. Number of lines above desired scroll region.
-# 3. Number of lines below (outside of) desired scroll region.
-# 4. Total number of lines on the screen, the same as the first parameter.
-# The generic Ann Arbor entry is the only one that uses this.
-aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly),
- OTbs, am, km, mc5i, mir, xon,
- cols#80, it#8,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J$<156>, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K$<5>, home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<4*>, ich1=\E[@$<4>, il=\E[%p1%dL,
- il1=\E[L$<3>, ind=^K, invis=\E[8m, is1=\E[m\E7\E[H\E9\E8,
- is3=\E[1Q\E[>20;30l\EP`+x~M\E\\, kbs=^H, kcbt=\E[Z,
- kclr=\E[J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E[P, kdl1=\E[M, kf1=\EOA, kf10=\EOJ, kf11=\EOK,
- kf12=\EOL, kf13=\EOM, kf14=\EON, kf15=\EOO, kf16=\EOP,
- kf17=\EOQ, kf18=\EOR, kf19=\EOS, kf2=\EOB, kf20=\EOT,
- kf21=\EOU, kf22=\EOV, kf23=\EOW, kf24=\EOX, kf3=\EOC,
- kf4=\EOD, kf5=\EOE, kf6=\EOF, kf7=\EOG, kf8=\EOH, kf9=\EOI,
- khome=\E[H, kich1=\E[@, kil1=\E[L, krmir=\E6, mc0=\E[0i,
- mc4=^C, mc5=\E[v, mc5p=\E[%p1%dv, rc=\E8,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
- rmkx=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\\,
- rmm=\E[>52l, rmso=\E[m, rmul=\E[m, sc=\E7,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- sgr0=\E[m,
- smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
- smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
- vpa=\E[%p1%{1}%+%dd,
-
-aaa+rv|ann arbor ambassador in reverse video,
- blink=\E[5;7m, bold=\E[1;7m, invis=\E[7;8m,
- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
- rs1=\E[H\E[7m\E[J$<156>,
- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
- sgr0=\E[7m\016, smso=\E[m, smul=\E[4;7m,
-# Ambassador with the DEC option, for partial vt100 compatibility.
-aaa+dec|ann arbor ambassador in dec vt100 mode,
- acsc=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}},
- csr=\E[%i%p1%d;%p2%dr, enacs=\E(0, rmacs=^N,
- sgr=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;,
- smacs=^O,
-aaa-18|ann arbor ambassador/18 lines,
- lines#18,
- is2=\E7\E[60;0;0;18p\E8,
- rmcup=\E[60;0;0;18p\E[60;1H\E[K, smcup=\E[18;0;0;18p,
- use=aaa+unk,
-aaa-18-rv|ann arbor ambassador/18 lines+reverse video,
- use=aaa+rv, use=aaa-18,
-aaa-20|ann arbor ambassador/20 lines,
- lines#20,
- is2=\E7\E[60;0;0;20p\E8,
- rmcup=\E[60;0;0;20p\E[60;1H\E[K, smcup=\E[20;0;0;20p,
- use=aaa+unk,
-aaa-22|ann arbor ambassador/22 lines,
- lines#22,
- is2=\E7\E[60;0;0;22p\E8,
- rmcup=\E[60;0;0;22p\E[60;1H\E[K, smcup=\E[22;0;0;22p,
- use=aaa+unk,
-aaa-24|ann arbor ambassador/24 lines,
- lines#24,
- is2=\E7\E[60;0;0;24p\E8,
- rmcup=\E[60;0;0;24p\E[60;1H\E[K, smcup=\E[24;0;0;24p,
- use=aaa+unk,
-aaa-24-rv|ann arbor ambassador/24 lines+reverse video,
- use=aaa+rv, use=aaa-24,
-aaa-26|ann arbor ambassador/26 lines,
- lines#26,
- is2=\E7\E[60;0;0;26p\E8,
- rmcup=\E[60;0;0;26p\E[26;1H\E[K,
- smcup=\E[H\E[J$<156>\E[26;0;0;26p, use=aaa+unk,
-aaa-28|ann arbor ambassador/28 lines,
- lines#28,
- is2=\E7\E[60;0;0;28p\E8,
- rmcup=\E[60;0;0;28p\E[28;1H\E[K,
- smcup=\E[H\E[J$<156>\E[28;0;0;28p, use=aaa+unk,
-aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status,
- eslok, hs,
- lines#29,
- dsl=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K,
- fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;30p\E8,
- rmcup=\E[60;1;0;30p\E[29;1H\E[K,
- smcup=\E[H\E[J$<156>\E[30;1;0;30p\E[30;1H\E[K,
- tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
-aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video,
- use=aaa+rv, use=aaa-30-s,
-aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context,
- rmcup=\E[60;1;0;30p\E[59;1H\E[K,
- smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s,
-aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video,
- rmcup=\E[60;1;0;30p\E[59;1H\E[K,
- smcup=\E[30;1H\E[K\E[30;1;0;30p, use=aaa-30-s-rv,
-aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines,
- lines#30,
- is2=\E7\E[60;0;0;30p\E8,
- rmcup=\E[60;0;0;30p\E[30;1H\E[K,
- smcup=\E[H\E[J$<156>\E[30;0;0;30p, use=aaa+unk,
-aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video,
- use=aaa+rv, use=aaa-30,
-aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context,
- rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
- use=aaa-30,
-aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context,
- rmcup=\E[60;0;0;30p\E[60;1H\E[K, smcup=\E[30;0;0;30p,
- use=aaa+rv, use=aaa-30,
-aaa-36|ann arbor ambassador/36 lines,
- lines#36,
- is2=\E7\E[60;0;0;36p\E8,
- rmcup=\E[60;0;0;36p\E[36;1H\E[K,
- smcup=\E[H\E[J$<156>\E[36;0;0;36p, use=aaa+unk,
-aaa-36-rv|ann arbor ambassador/36 lines+reverse video,
- use=aaa+rv, use=aaa-36,
-aaa-40|ann arbor ambassador/40 lines,
- lines#40,
- is2=\E7\E[60;0;0;40p\E8,
- rmcup=\E[60;0;0;40p\E[40;1H\E[K,
- smcup=\E[H\E[J$<156>\E[40;0;0;40p, use=aaa+unk,
-aaa-40-rv|ann arbor ambassador/40 lines+reverse video,
- use=aaa+rv, use=aaa-40,
-aaa-48|ann arbor ambassador/48 lines,
- lines#48,
- is2=\E7\E[60;0;0;48p\E8,
- rmcup=\E[60;0;0;48p\E[48;1H\E[K,
- smcup=\E[H\E[J$<156>\E[48;0;0;48p, use=aaa+unk,
-aaa-48-rv|ann arbor ambassador/48 lines+reverse video,
- use=aaa+rv, use=aaa-48,
-aaa-60-s|ann arbor ambassador/59 lines+status,
- eslok, hs,
- lines#59,
- dsl=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K,
- fsl=\E[>51l, is2=\r\n\E[A\E7\E[60;1;0;60p\E8,
- tsl=\E[>51h\E[1;%p1%dH\E[2K, use=aaa+unk,
-aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video,
- use=aaa+rv, use=aaa-60-s,
-aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video,
- use=aaa+dec, use=aaa+rv, use=aaa-60-s,
-aaa-60|ann arbor ambassador/60 lines,
- lines#60,
- is2=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8,
- use=aaa+unk,
-aaa-60-rv|ann arbor ambassador/60 lines+reverse video,
- use=aaa+rv, use=aaa-60,
-aaa-db|ann arbor ambassador 30/destructive backspace,
- OTbs@,
- cub1=\E[D, is3=\E[1Q\E[m\E[>20l\E[>30h, use=aaa-30,
-
-guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols,
- lines#33,
- flash=\E[>59h$<100>\E[>59l,
- is2=\E7\E[255;0;0;33;80;80p\E8\E[J, is3=\E[>59l,
- rmcup=\E[255p\E[255;1H\E[K, smcup=\E[33p, use=aaa+unk,
-guru+rv|guru changes for reverse video,
- flash=\E[>59l$<100>\E[>59h, is3=\E[>59h,
-guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video,
- use=guru+rv, use=guru-33,
-guru+s|guru status line,
- eslok, hs,
- dsl=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K, fsl=\E[>51l,
- rmcup=\E[255;1p\E[255;1H\E[K, smcup=,
- tsl=\E[>51h\E[1;%p1%dH\E[2K,
-guru-nctxt|guru with no saved context,
- smcup=\E[H\E[J$<156>\E[33p\E[255;1H\E[K, use=guru,
-guru-s|guru-33-s|ann arbor guru/33 lines+status,
- lines#32,
- is2=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J,
- smcup=\E[33;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-24|ann arbor guru 24 lines,
- cols#80, lines#24,
- is2=\E7\E[255;0;0;24;80;80p\E8\E[J, smcup=\E[24p,
- use=guru+unk,
-guru-44|ann arbor guru 44 lines,
- cols#97, lines#44,
- is2=\E7\E[255;0;0;44;97;100p\E8\E[J, smcup=\E[44p,
- use=guru+unk,
-guru-44-s|ann arbor guru/44 lines+status,
- lines#43,
- is2=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J,
- smcup=\E[44;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76|guru with 76 lines by 89 cols,
- cols#89, lines#76,
- is2=\E7\E[255;0;0;76;89;100p\E8\E[J, smcup=\E[76p,
- use=guru+unk,
-guru-76-s|ann arbor guru/76 lines+status,
- cols#89, lines#75,
- is2=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J,
- smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76-lp|guru-lp|guru with page bigger than line printer,
- cols#134, lines#76,
- is2=\E7\E[255;0;0;76;134;134p\E8\E[J, smcup=\E[76p,
- use=guru+unk,
-guru-76-w|guru 76 lines by 178 cols,
- cols#178, lines#76,
- is2=\E7\E[255;0;0;76;178;178p\E8\E[J, smcup=\E[76p,
- use=guru+unk,
-guru-76-w-s|ann arbor guru/76 lines+status+wide,
- cols#178, lines#75,
- is2=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J,
- smcup=\E[76;1p\E[255;1H\E[K, use=guru+s, use=guru+unk,
-guru-76-wm|guru 76 lines by 178 cols with 255 cols memory,
- cols#178, lines#76,
- is2=\E7\E[255;0;0;76;178;255p\E8\E[J, smcup=\E[76p,
- use=guru+unk,
-aaa-rv-unk|ann arbor unknown type,
- lh#0, lw#0, nlab#0,
- blink=\E[5;7m, bold=\E[1;7m, home=\E[H, invis=\E[7;8m,
- is1=\E[7m\E7\E[H\E9\E8, rev=\E[m, rmso=\E[7m, rmul=\E[7m,
- rs1=\E[H\E[7m\E[J,
- sgr=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
- sgr0=\E[7m, smso=\E[m, smul=\E[4;7m,
-
-#### Applied Digital Data Systems (adds)
-#
-# ADDS itself is long gone. ADDS was bought by NCR, and the same group made
-# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for
-# terminals was merged again. Then AT&T sold the terminal business to
-# SunRiver, which later changed its name to Boundless Technologies. The
-# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there
-# as of early 1995) are at:
-#
-# Boundless Technologies
-# 100 Marcus Boulevard
-# Hauppauge, NY 11788-3762
-# Vox: (800)-231-5445
-# Fax: (516)-342-7378
-# Web: http://boundless.com
-#
-# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
-# In 1995 Boundless acquired DEC's terminals business.
-#
-
-# Regent: lowest common denominator, works on all regents.
-# (regent: renamed ":bc:" to ":le:" -- esr)
-regent|Adds Regent Series,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F, cuu1=^Z,
- home=\EY\s\s, ind=^J, ll=^A,
-# Regent 100 has a bug where if computer sends escape when user is holding
-# down shift key it gets confused, so we avoid escape.
-regent100|Adds Regent 100,
- xmc#1,
- bel=^G,
- cup=\013%p1%' '%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
- kf0=^B1\r, kf1=^B2\r, kf2=^B3\r, kf3=^B4\r, kf4=^B5\r,
- kf5=^B6\r, kf6=^B7\r, kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3,
- lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@,
- sgr0=\E0@, smso=\E0P, smul=\E0`, use=regent,
-regent20|Adds Regent 20,
- bel=^G, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, ed=\Ek, el=\EK,
- use=regent,
-regent25|Adds Regent 25,
- bel=^G, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z, khome=^A,
- use=regent20,
-regent40|Adds Regent 40,
- xmc#1,
- bel=^G, dl1=\El$<2*>, il1=\EM$<2*>, kf0=^B1\r, kf1=^B2\r,
- kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
- kf7=^B8\r, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5, lf5=F6,
- lf6=F7, lf7=F8, rmso=\E0@, rmul=\E0@, sgr0=\E0@, smso=\E0P,
- smul=\E0`, use=regent25,
-regent40+|Adds Regent 40+,
- is2=\EB, use=regent40,
-regent60|regent200|Adds Regent 60,
- dch1=\EE, is2=\EV\EB, kdch1=\EE, kich1=\EF, krmir=\EF,
- rmir=\EF, rmso=\ER\E0@\EV, smir=\EF, smso=\ER\E0P\EV,
- use=regent40+,
-# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981
-# (viewpoint: added <kcuf1>, function key, and <dl1> capabilities -- esr)
-viewpoint|addsviewpoint|adds viewpoint,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cnorm=\017\E0`, cr=^M, cub1=^H, cud1=^J,
- cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
- cvvis=\017\E0P, dl1=\El, ed=\Ek$<16.1*>, el=\EK$<16>,
- ind=^J, is2=\017\E0`, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
- kf0=^B1, kf2=^B2, kf3=^B!, kf4=^B", kf5=^B#, khome=^A, ll=^A,
- rmso=^O, rmul=^O, sgr0=^O, smso=^N, smul=^N,
-# Some viewpoints have bad ROMs that foo up on ^O
-screwpoint|adds viewpoint with ^O bug,
- cvvis@, rmso@, rmul@, smso@, smul@, use=viewpoint,
-
-# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
-# The <civis>/<cnorm>/<sgr>/<sgr0> strings were added by ESR from specs.
-# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
-# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
-# invis=01000100 and %c is the logical or of desired attributes.
-# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
-vp3a+|viewpoint3a+|adds viewpoint 3a+,
- am, bw,
- cols#80, it#8, lines#24,
- civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, kbs=^H, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, nel=^M^J, rmso=\E(,
- sgr=\E0%{64}%?%p1%tQ%|%;%?%p2%t%{96}%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E),
- sgr0=\E(, smso=\E0Q\E),
-vp60|viewpoint60|addsvp60|adds viewpoint60,
- use=regent40,
-#
-# adds viewpoint 90 - from cornell
-# Note: emacs sends ei occasionally to insure the terminal is out of
-# insert mode. This unfortunately puts the viewpoint90 IN insert
-# mode. A hack to get around this is <ich1=\EF\s\EF^U>. (Also,
-# - :ei=:im=: must be present in the termcap translation.)
-# - <xhp> indicates glitch that attributes stick to location
-# - <msgr> means it's safe to move in standout mode
-# - <clear=\EG\Ek>: clears screen and visual attributes without affecting
-# the status line
-# Function key and label capabilities merged in from SCO.
-vp90|viewpoint90|adds viewpoint 90,
- OTbs, bw, msgr, xhp,
- cols#80, lines#24,
- clear=\EG\Ek, cub1=^H, cud1=^J, cuf1=^F,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dch1=\EE,
- dl1=\El, ed=\Ek, el=\EK, home=\EY\s\s, ht=^I,
- ich1=\EF \EF\025, ind=^J, kbs=^H, kcub1=^U, kcud1=^J,
- kcuf1=^F, kcuu1=^Z, kf0=^B1\r, kf1=^B2\r, kf10=^B;\r,
- kf2=^B3\r, kf3=^B4\r, kf4=^B5\r, kf5=^B6\r, kf6=^B7\r,
- kf7=^B8\r, kf8=^B9\r, kf9=^B\:\r, khome=^A, lf0=F1, lf1=F2,
- lf10=F11, lf2=F3, lf3=F4, lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9,
- lf9=F10, ll=^A, rmso=\ER\E0@\EV, rmul=\ER\E0@\EV,
- sgr0=\ER\E0@\EV, smso=\ER\E0Q\EV, smul=\ER\E0`\EV,
-# Note: if return acts weird on a980, check internal switch #2
-# on the top chip on the CONTROL pc board.
-adds980|a980|adds consul 980,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\014$<1>\013@, cr=^M, cub1=^H, cud1=^J,
- cuf1=\E^E01, cup=\013%p1%{64}%+%c\E\005%p2%2d,
- dl1=\E\017$<13>, il1=\E\016$<13>, ind=^J, kf0=\E0, kf1=\E1,
- kf2=\E2, kf3=\E3, kf4=\E4, kf5=\E5, kf6=\E6, kf7=\E7, kf8=\E8,
- kf9=\E9, rmso=^O, sgr0=^O, smso=^Y^^^N,
-
-#### C. Itoh Electronics
-#
-# As of 1995 these people no longer make terminals (they're still in the
-# printer business). Their terminals were all clones of the DEC VT series.
-# They're located in Orange County, CA.
-#
-
-# CIT 80 - vt-52 emulator, the termcap has been modified to remove
-# the delay times and do an auto tab set rather than the indirect
-# file used in vt100.
-cit80|cit-80|citoh 80,
- OTbs, am,
- cols#80, lines#24,
- clear=\E[H\EJ, cr=^M, cub1=^H, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
- ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
-# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
-# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
-cit101|citc|C.itoh fast vt100,
- OTbs, am, xenl,
- cols#80, lines#24,
- bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E7\E[U,
- dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
- flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m,
-# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
-# The following termcap entry was created from the Callan cd100 entry. The
-# last two lines (with the capabilities in caps) are used by RM-cobol to allow
-# full selection of combinations of reverse video, underline, and blink.
-# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\
-# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\
-# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr)
-cit101e|C. Itoh CIT-101e,
- OTbs, OTpt, am, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
- cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
- cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M, ed=\E[J,
- el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
- kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
- rmkx=\E>, rmso=\E[m, rmul=\E[m, sc=\E7, smacs=^N, smir=\E[4h,
- smkx=\E=, smso=\E[7m, smul=\E[4m,
-# From: David S. Lawyer, June 1997:
-# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
-# Terminals in Irvine, CA. It was part of CITOH Electronics. In the
-# late 1980's CIT Terminals went out of business.
-# There is no need to use the initialization string is=... (by invoking
-# tset or setterm etc.) provided that the terminal has been manually set
-# up (and the setup saved with ^S) to be compatible with this termcap. To be
-# compatible it should be in ANSI mode (not VT52). A set-up that
-# works is to set all the manually setable stuff to factory defaults
-# by pressing ^D in set-up mode. Then increse the brighness with the
-# up-arrow key since the factory default will likely be dim on an old
-# terminal. Then change any options you want (provided that they are
-# compatible with the termcap). For my terminal I set: Screen
-# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
-# on. I also set up mine for parity (but you may not need it). Then
-# save the setup with ^S.
-# (cit101e-rv: added empty <rmcup> to suppress a tic warning. --esr)
-cit101e-rv|Citoh CIT-101e (sets reverse video),
- am, eo, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24,
- OTnl=\EM, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E[1v, clear=\E[H\E[J, cnorm=\E[0;3;4v, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[3;5v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l\E[?5h$<200/>,
- home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
- is2=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H,
- kbs=\177, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=\EE, rc=\E8,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=, rmir=\E[4l,
- rmso=\E[m, rmul=\E[m, rs1=\Ec\E[?7h\E[>5g, sc=\E7,
- sgr0=\E[m, smcup=\E[>5g\E[?7h\E[?5h, smir=\E[4h,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g, u6=\E[%i%p1%d;%p2%dR,
- u7=\E[6n, u8=\E[?6c, u9=\E[c,
-cit101e-n|CIT-101e w/o am,
- am@,
- cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
- use=cit101e,
-cit101e-132|CIT-101e with 132 cols,
- cols#132,
- kbs=^H, kcub1=^H, kcud1=^J, use=cit101e,
-cit101e-n132|CIT-101e with 132 cols w/o am,
- am@,
- cols#132,
- cvvis=\E[?1l\E[?4l\E[?7l, kbs=^H, kcub1=^H, kcud1=^J,
- use=cit101e,
-# CIE Terminals CIT-500 from BRL
-# The following SET-UP modes are assumed for normal operation:
-# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF
-# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES
-# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements.
-# Hardware tabs are assumed to be set every 8 columns; they can be set up
-# by the "reset", "tset", or "tabs" utilities. No delays are specified; use
-# "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (cit500: I added <rmam>/<smam> based on the init string -- esr)
-cit500|CIE Terminals CIT-500,
- OTbs, OTpt, mir, msgr, xon,
- OTkn#10, cols#80, it#8, lines#64, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ed=\EJ, el=\EK, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=^J, is2=\E<\E)0, kbs=^H, kcbt=\E[Z, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[P, kdl1=\E[M,
- ked=\EJ, kel=\EK, kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
- kf4=\EOU, kf5=\EOV, kf6=\EOW, kf7=\EOX, kf8=\EOY, kf9=\EOZ,
- khome=\E[H, kich1=\E[4h, kil1=\E[L, krmir=\E[4l, lf0=PF1,
- lf1=PF2, lf2=PF3, lf3=PF4, lf4=F15, lf5=F16, lf6=F17, lf7=F18,
- lf8=F19, lf9=F20, ll=\E[64H, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[m, rmul=\E[m,
- rs1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-# C. Itoh printers begin here
-citoh|ci8510|8510|c.itoh 8510a,
- cols#80, it#8,
- bold=\E!, cub1@,
- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073.,
- rep=\ER%p2%03d%p1%c, ri=\Er, rmul=\EY, sgr0=\E"\EY,
- smul=\EX, use=lpr,
-citoh-pica|citoh in pica,
- is1=\EN, use=citoh,
-citoh-elite|citoh in elite,
- cols#96,
- is1=\EE,
- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089.,
- use=citoh,
-citoh-comp|citoh in compressed,
- cols#136,
- is1=\EQ,
- is2=\E(009\,017\,025\,033\,041\,049\,057\,065\,073\,081\,089\,097\,105\,113\,121\,129.,
- use=citoh,
-# citoh has infinite cols because we don't want lp ever inserting \n\t**.
-citoh-prop|citoh-ps|ips|citoh in proportional spacing mode,
- cols#32767,
- is1=\EP, use=citoh,
-citoh-6lpi|citoh in 6 lines per inch mode,
- is3=\EA, use=citoh,
-citoh-8lpi|citoh in 8 lines per inch mode,
- lines#88,
- is3=\EB, use=citoh,
-
-#### Control Data (cdc)
-#
-
-cdc456|cdc 456 terminal,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E1%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dl1=\EJ, ed=^X,
- el=^V, home=^Y, il1=\EL, ind=^J,
-
-# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick)
-cdc721|CDC Viking,
- OTbs, am,
- cols#80, lines#24,
- clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
- cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
- kcuu1=^W, khome=^Y,
-cdc721ll|CDC Vikingll,
- OTbs, am,
- cols#132, lines#24,
- clear=^L, cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c,
- cuu1=^W, el=^K, home=^Y, kcub1=^H, kcud1=^J, kcuf1=^I,
- kcuu1=^W, khome=^Y,
-# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out
-cdc752|CDC 752,
- OTbs, am, bw, xhp,
- cols#80, lines#24,
- bel=^G, clear=\030\E1\s\s, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z, el=^V,
- home=\E1\s\s, ind=^J, ll=^Y, rs1=\E1 \030\002\003\017,
-# CDC 756
-# The following switch/key settings are assumed for normal operation:
-# 96 chars SCROLL FULL duplex not BLOCK
-# Other switches may be set according to communication requirements.
-# Insert/delete-character cannot be used, as the whole display is affected.
-# "so" & "se" are commented out until jove handles "sg" correctly.
-cdc756|CDC 756,
- OTbs, am, bw,
- OTkn#10, cols#80, lines#24,
- bel=^G, clear=^Y^X, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\E1%p2%{32}%+%c%p1%{32}%+%c, cuu1=^Z,
- dl1=\EJ$<6*/>, ed=^X, el=^V, home=^Y, il1=\EL$<6*/>, ind=^J,
- kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z, kdch1=\EI,
- kdl1=\EL, ked=^X, kel=^V, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED,
- kf4=\EE, kf5=\EF, kf6=\EG, kf7=\EH, kf8=\Ea, kf9=\Eb, khome=^Y,
- khts=^O, kich1=\EK, kil1=\EL, lf0=F1, lf1=F2, lf2=F3, lf3=F4,
- lf4=F5, lf5=F6, lf6=F7, lf7=F8, lf8=F9, lf9=F10, ll=^Y^Z,
- rs1=\031\030\002\003\017,
-#
-# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
-#
-# Part of the long initialization string defines the "DOWN" key to the left
-# of the tab key to send an ESC. The real ESC key is positioned way out
-# in right field.
-#
-# The termcap won't work in 132 column mode due to the way it it moves the
-# cursor. Termcap doesn't have the capability (as far as I could tell) to
-# handle the 721 in 132 column mode.
-#
-# (cdc721: changed :ri: to :sr: -- esr)
-cdc721-esc|Control Data 721,
- OTbs, OTpt, am, bw, msgr, xon,
- OTkn#10, cols#80, it#8, lines#30,
- bel=^G, blink=^N, cbt=^^^K, clear=^L, cub1=^H, cud1=^Z,
- cuf1=^X, cup=\002%p2%{32}%+%c%p1%{32}%+%c, cuu1=^W,
- dch1=^^N, dim=^\, dl1=^^Q, ed=^^P, el=^K, home=^Y, hts=^^^RW,
- ich1=^^O, il1=^^R, ind=\036W =\036U, invis=^^^R[,
- is2=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\^\036\022b\036\022i\036W =\036\022Z\036\011C1-` `!k/o,
- kbs=^H, kcub1=^H, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^q,
- kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v, kf6=^^w, kf7=^^x,
- kf8=^^y, kf9=^^z, khome=^Y, ll=^B =, rev=^^D,
- ri=\036W =\036V, rmir=, rmkx=^^^Rl, rmso=^^E, rmul=^],
- sgr0=\017\025\035\036E\036\022\\, smir=, smkx=^^^Rk,
- smso=^^D, smul=^\, tbc=^^^RY,
-
-#### Getronics
-#
-# Getronics is a Dutch electronics company that at one time was called
-# `Geveke' and made async terminals; but (according to the company itself!)
-# they've lost all their documentation on the command set. The hardware
-# documentation suggests the terminals were actually manufactured by a
-# Taiwanese electronics company named Cal-Comp. There are known
-# to have been at least two models, the 33 and the 50.
-#
-
-# The 50 seems to be a top end vt220 clone, with the addition of a higher
-# screen resolution, a larger screen, at least 1 page of memory above and
-# below the screen, apparently pages of memory right and left of the screen
-# which can be panned, and about 75 function keys (15 function keys x normal,
-# shift, control, func A, func B). It also has more setup possibilities than
-# the vt220. The monitor case is dated November 1978 and the keyboard case is
-# May 1982.
-#
-# The vt100 emulation works as is. The entry below describes the rather
-# non-conformant (but more featureful) ANSI mode.
-#
-# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
-visa50|geveke visa 50 terminal in ansi 80 character mode,
- bw, mir, msgr,
- cols#80, lines#25,
- acsc=0_aaffggh jjkkllmmnnooqqssttuuvvwwxx, bel=^G,
- blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dX, dch1=\E[X, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m,
- is2=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h,
- ka1=\E[f, ka3=\EOQ, kb2=\EOP, kbs=^H, kc1=\EOR, kc3=\EOS,
- kcub1=\E[D, kcud1=\E[A, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177,
- kdl1=\EOS, kf0=\E010, kf1=\E001, kf10=\E011, kf2=\E002,
- kf3=\E003, kf4=\E004, kf5=\E005, kf6=\E006, kf7=\E007,
- kf8=\E008, kf9=\E009, khome=\E[f, lf2=A delete char,
- lf3=A insert line, lf4=A delete line, lf5=A clear,
- lf6=A ce of/cf gn, lf7=A print, lf8=A on-line,
- lf9=A funcl0=A send, nel=^M^J, rev=\E[7m, rmacs=\E[3l,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E>, rmso=\E[0;2m,
- rmul=\E[0m, sgr0=\E[0;2m, smacs=\E3h, smam=\E?7h,
- smir=\E[4h, smkx=\E=, smso=\E[2;7m, smul=\E[4m, tbc=\E[3g,
- vpa=\E[%i%p1%dd,
-
-#### Human Designed Systems (Concept)
-#
-# Human Designed Systems
-# 400 Fehley Drive
-# King of Prussia, PA 19406
-# Vox: (610)-277-8300
-# Fax: (610)-275-5739
-# Net: support@hds.com
-#
-# John Martin <john@hds.com> is their termcap expert. They're mostly out of
-# the character-terminal business now (1995) and making X terminals. In
-# particular, the whole `Concept' line described here was discontinued long
-# ago.
-#
-
-# From: <vax135!hpk> Sat Jun 27 07:41:20 1981
-# Extensive changes to c108 by arpavax:eric Feb 1982
-# Some unknown person at SCO then translated it to terminfo.
-#
-# There seem to be a number of different versions of the C108 PROMS
-# (with bug fixes in its Z-80 program).
-#
-# The first one that we had would lock out the keyboard of you
-# sent lots of short lines (like /usr/dict/words) at 9600 baud.
-# Try that on your C108 and see if it sends a ^S when you type it.
-# If so, you have an old version of the PROMs.
-#
-# You should configure the C108 to send ^S/^Q before running this.
-# It is much faster (at 9600 baud) than the c100 because the delays
-# are not fixed.
-# new status line display entries for c108-8p:
-# <is3> - init str #3 - setup term for status display -
-# set programmer mode, select window 2, define window at last
-# line of memory, set bkgnd stat mesg there, select window 0.
-#
-# <tsl> - to status line - select window 2, home cursor, erase to
-# end-of-window, 1/2 bright on, goto(line#0, col#?)
-#
-# <fsl> - from status line - 1/2 bright off, select window 0
-#
-# <dsl> - disable status display - set bkgnd status mesg with
-# illegal window #
-#
-# There are probably more function keys that should be added but
-# I don't know what they are.
-#
-# No delays needed on c108 because of ^S/^Q handshaking
-#
-c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages,
- is3=\EU\E z"\Ev\001\177 !p\E ;"\E z \Ev \001\177p\Ep\n,
- rmcup=\Ev \001\177p\Ep\r\n, use=c108-4p,
-c108-4p|concept108-4p|concept 108 w/4 pages,
- OTbs, eslok, hs, xon,
- pb@,
- acsc=jEkTl\\mMqLxU, cnorm=\Ew, cr=^M,
- cup=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c,
- cvvis=\EW, dch1=\E 1$<16*>, dsl=\E ;\177, fsl=\Ee\E z\s,
- ind=^J, is1=\EK\E!\E F,
- is3=\EU\E z"\Ev\177 !p\E ;"\E z \Ev \001 p\Ep\n,
- rmacs=\Ej\s, rmcup=\Ev \001 p\Ep\r\n, smacs=\Ej!,
- smcup=\EU\Ev 8p\Ep\r\E\025,
- tsl=\E z"\E?\E\005\EE\Ea %+\s, use=c100,
-c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video,
- rmcup=\Ev \002 p\Ep\r\n, smcup=\EU\Ev 8p\Ep\r,
- use=c108-rv-4p,
-c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video,
- flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee, smso=\EE,
- use=c108-4p,
-c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode,
- cols#132,
- is1=\E F\E", rmcup=\Ev ^A0\001D\Ep\r\n,
- smcup=\EU\Ev 8\001D\Ep\r, use=c108-8p,
-
-# Concept 100:
-# These have only window relative cursor addressing, not screen
-# relative. To get it to work right here, smcup/rmcup (which
-# were invented for the concept) lock you into a one page
-# window for screen style programs.
-#
-# To get out of the one page window, we use a clever trick:
-# we set the window size to zero ("\Ev " in rmcup) which the
-# terminal recognizes as an error and resets the window to all
-# of memory.
-#
-# This trick works on c100 but does not on c108, sigh.
-#
-# Some tty drivers use cr3 for concept, others use nl3, hence
-# the delays on cr and ind below. This padding is only needed at
-# 9600 baud and up. One or the other is commented out depending on
-# local conventions.
-#
-# 2 ms padding on <rmcup> isn't always enough. 6 works fine. Maybe
-# less than 6 but more than 2 will work.
-#
-# Note: can't use function keys f7-f10 because they are
-# indistinguishable from arrow keys (!), also, del char and
-# clear eol use xon/xoff so they probably won't work very well.
-#
-# Also note that we don't define insrt/del char/delline/eop/send
-# because they don't transmit unless we reset them - I figured
-# it was a bad idea to clobber their definitions.
-#
-# The <mc5> sequence changes the escape character to ^^ so that
-# escapes will be passed through to the printer. Only trouble
-# is that ^^ won't be - ^^ was chosen to be unlikely.
-# Unfortunately, if you're sending raster bits through to be
-# plotted, any character you choose will be likely, so we lose.
-#
-# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
-# cannot be # in is2 because it will hang a c100 with no printer
-# if sent twice.
-c100|concept100|concept|c104|c100-4p|hds concept 100,
- OTbs, am, eo, mir, ul, xenl,
- cols#80, lines#24, pb#9600, vt#8,
- bel=^G, blink=\EC, clear=\E?\E\005$<2*>, cr=$<9>\r,
- cub1=^H, cud1=^J, cuf1=\E=,
- cup=\Ea%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E;,
- dch1=\E\021$<16*>, dim=\EE, dl1=\E\002$<3*>,
- ed=\E\005$<16*>, el=\E\025$<16>, flash=\Ek$<200>\EK,
- ht=\011$<8>, il1=\E\022$<3*>, ind=^J, invis=\EH, ip=$<16*>,
- is1=\EK,
- is2=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo!\0\E\007!\E\010A@ \E4#\:"\E\:a\E4#;"\E\:b\E4#<"\E\:c,
- is3=\Ev $<6>\Ep\n, kbs=^H, kcbt=\E', kctab=\E_,
- kcub1=\E>, kcud1=\E<, kcuf1=\E=, kcuu1=\E;, kdch1=\E^Q,
- kdl1=\E^B, ked=\E^C, kel=\E^S, kf1=\E5, kf2=\E6, kf3=\E7,
- kf4=\E8, kf5=\E9, kf6=\E\:a, kf7=\E\:b, kf8=\E\:c, khome=\E?,
- khts=\E], kich1=\E^P, kil1=\E^R, kind=\E[, knp=\E-, kpp=\E.,
- kri=\E\\, krmir=\E\0, mc4=\036o \E\EQ!\EYP\027,
- mc5=\EQ"\EY(\027\EYD\Eo \036, prot=\EI,
- rep=\Er%p1%c%p2%{32}%+%c$<.2*>, rev=\ED,
- rmcup=\Ev $<6>\Ep\r\n, rmir=\E\s\s, rmkx=\Ex,
- rmso=\Ed, rmul=\Eg, sgr0=\EN@,
- smcup=\EU\Ev 8p\Ep\r\E\025$<16>, smir=\E^P, smkx=\EX,
- smso=\ED, smul=\EG,
-c100-rv|c100-rv-4p|concept100-rv|c100 rev video,
- cnorm@, cvvis@, flash=\EK$<200>\Ek, is1=\Ek, rmso=\Ee,
- smso=\EE, use=c100,
-oc100|oconcept|c100-1p|old 1 page concept 100,
- in,
- is3@, use=c100,
-
-# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996.
-# Lots of notes, originally inline, but ncurses doesn't grok that.
-#
-# am: not available in power on mode, but turned on with \E[=107;207h in
-# is2=. Also, \E=124l in is2= could have been used to prevent needing
-# to specify xenl:, but that would have rendered the last space on the
-# last line useless.
-# bw: Not available in power on mode, but turned on with \E[=107;207h in
-# is2=.
-# clear: Could be done with \E[2J alone, except that vi (and probably most
-# other programs) assume that this also homes the cursor.
-# dsl: Go to window 2, go to the beginning of the line, use a line feed to
-# scroll the window, and go back to window 1.
-# is2: the string may cause a warning to be issued by tic that it
-# found a very long line and that it suspects that a comma is missing
-# somewhere. This warning can be ignored (unless it comes up more than
-# once). The initialization string contains the following commands:
-#
-# [Setup mode items changed from factory defaults:]
-# \E)0 set alternate character set to
-# graphics
-# ^O set character set to default
-# [In case it wasn't]
-# \E[m turn off all attributes
-# [In case they weren't off]
-# \E[=107; cursor wrap and
-# 207h character wrap on
-# \E[90;3u set Fkey definitions to "transmit"
-# defaults
-# \E[92;3u set cursor key definitions to
-# "transmit" defaults
-# \E[43;1u set shift F13 to transmit...
-# \177\E$P\177
-# \E[44;1u set shift F14 to transmit...
-# \177\E$Q\177
-# \E[45;1u set shift F15 to transmit...
-# \177\E$R\177
-# \E[46;1u set shift F16 to transmit...
-# \177\E$S\177
-# \E[200;1u set shift up to transmit...
-# \177\E$A\177
-# \E[201;1u set shift down to transmit...
-# \177\E$B\177
-# \E[202;1u set shift right to transmit...
-# \177\E$C\177
-# \E[203;1u set shift left to transmit...
-# \177\E$D\177
-# \E[204;1u set shift home to transmit...
-# \177\E$H\177
-# \E[212;1u set backtab to transmit...
-# \177\E$I\177
-# \E[213;1u set shift backspace to transmit...
-# \177\E$^H\177
-# \E[214;1u set shift del to transmit...
-# "\E$\177"
-# [Necessary items not mentioned in setup mode:]
-# \E[2!w move to window 2
-# \E[25;25w define window as line 25 of memory
-# \E[!w move to window 1
-# \E[2*w show current line of window 2 as
-# status line
-# \E[2+x set meta key to use high bit
-# \E[;3+} move underline to bottom of character
-#
-# All Fkeys are set to their default transmit definitions with \E[90;3u
-# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty
-# setting MUST be redefined or deactivated, because the default is
-# contained in almost all of this terminal's Fkey strings! If for some
-# reason "quit" cannot be altered, the Fkeys can, but it would be
-# necessary to change ^| to ^] in all of these definitions, and add
-# \E[2;029!t to is2.
-# lines: is set to 24 because this terminal refuses to treat the 25th
-# line normally.
-# ll: Not available in power on mode, but turned on with \E[=107;207h in
-# is2=.
-# lm: Pointless, given that this definition locks a single screen of
-# memory into view, but what the hey...
-# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any
-# other attributes alone), but some programs expect this to turn off
-# everything.
-# rmul: Could use \E[4!{ to turn off only underline (leaving any other
-# attributes alone), but some programs expect this to turn off
-# everything.
-# sgr: Attributes are set on this terminal with the string \E[ followed by
-# a list of attribute code numbers (in decimal, separated by
-# semicolons), followed by the character m. The attribute code
-# numbers are:
-# 1 for bold;
-# 2 for dim (which is ignored in power on mode);
-# 4 for underline;
-# 5 for blinking;
-# 7 for inverse;
-# 8 for not displayable; and
-# =99 for protected (except that there are strange side
-# effects to protected characters which make them inadvisable).
-# The mapping of terminfo parameters to attributes is as follows:
-# %p1 (standout) = bold and inverse together;
-# %p2 (underline) = underline;
-# %p3 (reverse) = inverse;
-# %p4 (blink) = blinking;
-# %p5 (dim) is ignored;
-# %p6 (bold) = bold;
-# %p7 (invisible) = not displayable;
-# %p8 (protected) is ignored; and
-# %p9 (alt char set) = alt char set.
-# The code to do this is:
-# \E[0 OUTPUT \E[0
-# %?%p1%p6%O IF (standout; bold) OR
-# %t;1 THEN OUTPUT ;1
-# %; ENDIF
-# %?%p2 IF underline
-# %t;4 THEN OUTPUT ;4
-# %; ENDIF
-# %?%p4 IF blink
-# %t;5 THEN OUTPUT ;5
-# %; ENDIF
-# %?%p1%p3%O IF (standout; reverse) OR
-# %t;7 THEN OUTPUT ;7
-# %; ENDIF
-# %?%p7 IF invisible
-# %t;8 THEN OUTPUT ;8
-# %; ENDIF
-# m OUTPUT m
-# %?%p9 IF altcharset
-# %t^N THEN OUTPUT ^N
-# %e^O ELSE OUTPUT ^O
-# %; ENDIF
-# sgr0: Everything is turned off (including alternate character set), since
-# there is no way of knowing what it is that the program wants turned
-# off.
-# smul: The "underline" attribute is reconfigurable to an overline or
-# strikethru, or (as done with \E[;3+} in is2=), to a line at the true
-# bottom of the character cell. This was done to allow for more readable
-# underlined characters, and to be able to distinguish between an
-# underlined space, an underscore, and an underlined underscore.
-# xenl: Terminal can be configured to not need this, but this "glitch"
-# behavior is actually preferable with autowrap terminals.
-#
-# Parameters kf31= thru kf53= actually contain the strings sent by the shifted
-# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2
-# string modifies the 'O' in kf43 to kf46 to a '$'.
-#
-# kcbt was originally ^I but redefined in is2=.
-# kHOM was \E[H originally but redefined in is2=, as were a number of
-# other keys.
-# kDC was originally \177 but redefined in is2=.
-#
-# kbs: Shift was also ^H originally but redefined as \E$^H in is2=.
-# tsl: Go to window 2, then do an hpa=.
-#
-#------- flash=\E[8;3!}^G\E[3;3!}
-#------- flash=\E[?5h$<100>\E[?5l
-# There are two ways to flash the screen, both of which have their drawbacks.
-# The first is to set the bell mode to video, transmit a bell character, and
-# set the bell mode back - but to what? There is no way of knowing what the
-# user's old bell setting was before we messed with it. Worse, the command to
-# set the bell mode also sets the key click volume, and there is no way to say
-# "leave that alone", or to know what it's set to, either.
-# The second way to do a flash is to set the screen to inverse video, pad for a
-# tenth of a second, and set it back - but like before, there's no way to know
-# that the screen wasn't ALREADY in inverse video, or that the user may prefer
-# it that way. The point is moot anyway, since vi (and probably other
-# programs) assume that by defining flash=, you want the computer to use it
-# INSTEAD of bel=, rather than as a secondary type of signal.
-#
-#------- cvvis=\E[+{
-# The is the power on setting, which is also as visible as the cursor
-# gets.
-#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw
-# Windowing is possible, but not defined here because it is also used to
-# emulate status line functions. Allowing a program to set a window could
-# clobber the status line or render it unusable. There is additional memory,
-# but screen scroll functions are destructive and do not make use of it.
-#
-#------- dim= Not available in power on mode.
-# You have a choice of defining low intensity characters as "half bright" and
-# high intensity as "normal", or defining low as "normal" and high as "bold".
-# No matter which you choose, only one of either "half bright" or "bold" is
-# available at any time, so taking the time to override the default is
-# pointless.
-#
-#------- prot=\E[=0;99m
-# Not defined, because it appears to have some strange side effects.
-#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
-#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
-#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%;
-# Available, but making them available to programs is inadvisable.
-# The code to do this is:
-# %?%p1%{24}%< IF ((key; 24) <;
-# %p1%{30}%> ((key; 30) >;
-# %p1%{54}%< (key; 54) <
-# %A ) AND
-# %O ) OR
-# [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
-# %t\E[ THEN OUTPUT \E[
-# %p1%d OUTPUT (key) as decimal
-# [next line applies to pfx only]
-# ;1 OUTPUT ;1
-# u OUTPUT u
-# \177 OUTPUT \177
-# %p2%s OUTPUT (string) as string
-# \177 OUTPUT \177
-# [DEL chosen as delimiter, but could be any character]
-# [implied: ELSE do nothing]
-# %; ENDIF
-#
-#------- rs2=
-# Not defined since anything it might do could be done faster and easier with
-# either Meta-Shift-Reset or the main power switch.
-#
-#------- smkx=\E[1!z
-#------- rmkx=\E[!z
-# These sequences apply to the cursor and setup keys only, not to the
-# numeric keypad. But it doesn't matter anyway, since making these
-# available to programs is inadvisable.
-# For the key definitions below, all sequences beginning with \E$ are
-# custom and programmed into the terminal via is2. \E$ also has no
-# meaning to any other terminal.
-#
-#------- cmdch=\E[;%p1%d!t
-# Available, but making it available to programs is inadvisable.
-#------- smxon=\E[1*q
-# Available, but making it available to programs is inadvisable.
-# Terminal will send XON/XOFF on buffer overflow.
-#------- rmxon=\E[*q
-# Available, but making it available to programs is inadvisable.
-# Terminal will not notify on buffer overflow.
-#------- smm=\E[2+x
-#------- rmm=\E[+x
-# Available, but making them available to programs is inadvisable.
-#
-# Printing:
-# It's not made clear in the manuals, but based on other ansi/vt type
-# terminals, it's a good guess that this terminal is capable of both
-# "transparent print" (which doesn't copy data to the screen, and
-# therefore needs mc5i: specified to say so) and "auxilliary print"
-# (which does duplicate printed data on the screen, in which case mc4=
-# and mc5= should use the \E[?4i and \E[?5i strings instead).
-
-hds200|Human Designed Systems HDS200,
- am, bw, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, lm#0,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[0;5m, bold=\E[0;1m, cbt=\E[Z, civis=\E[6+{,
- clear=\E[H\E[J, cnorm=\E[+{, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2!w\r\n\E[!w, ed=\E[J, el=\E[K, el1=\E[1K,
- fsl=\E[!w, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- invis=\E[0;8m,
- is2=\E)0\017\E[m\E[=107;207h\E[90;3u\E[92;3u\E[43;1u\177\E$P\177\E[44;1u\177\E$Q\177\E[45;1u\177\E$R\177\E[46;1u\177\E$S\177\E[200;1u\177\E$A\177\E[201;1u\177\E$B\177\E[202;1u\177\E$C\177\E[203;1u\177\E$D\177\E[204;1u\177\E$H\177\E[212;1u\177\E$I\177\E[213;1u\177\E$\010\177\E[214;1u"\E$\177"\E[2!w\E[25;25w\E[!w\E[2*w\E[2+x\E[;3+},
- kDC=\E$\177, kHOM=\E$H, kLFT=\E$D, kRIT=\E$C, kbs=^H,
- kcbt=\E$I, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\177, kent=^M, kf1=^\001\r, kf10=^\010\r,
- kf11=^\011\r, kf12=^\012\r, kf13=\EOP, kf14=\EOQ,
- kf15=\EOR, kf16=\EOS, kf17=^\017\r, kf18=^\018\r,
- kf19=^\019\r, kf2=^\002\r, kf20=^\020\r, kf21=^\021\r,
- kf22=^\022\r, kf23=^\023\r, kf3=^\003\r, kf31=^\031\r,
- kf32=^\032\r, kf33=^\033\r, kf34=^\034\r, kf35=^\035\r,
- kf36=^\036\r, kf37=^\037\r, kf38=^\038\r, kf39=^\039\r,
- kf4=^\004\r, kf40=^\040\r, kf41=^\041\r, kf42=^\042\r,
- kf43=\E$P, kf44=\E$Q, kf45=\E$R, kf46=\E$S, kf47=^\047\r,
- kf48=^\048\r, kf49=^\049\r, kf5=^\005\r, kf50=^\050\r,
- kf51=^\051\r, kf52=^\052\r, kf53=^\053\r, kf6=^\006\r,
- kf7=^\007\r, kf8=^\008\r, kf9=^\009\r, khome=\E[H,
- kind=\E[T, knp=\E[U, kpp=\E[V, kri=\E[S, ll=\E[H\E[A,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\E[E, rc=\E8,
- rev=\E[0;7m, ri=\EM, rmacs=^O, rmir=\E[4l, rmso=\E[m\017,
- rmul=\E[m\017, sc=\E7,
- sgr=\E[0%?%p1%p6%O%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%O%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[0;1;7m,
- smul=\E[0;4m, tbc=\E[3g, tsl=\E[2!w\E[%i%p1%dG,
- vpa=\E[%i%p1%dd,
-
-# <ht> through <el> included to specify padding needed in raw mode.
-# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
-avt-ns|concept avt no status line,
- OTbs, am, eo, mir, ul, xenl, xon,
- cols#80, it#8, lines#24, lm#192,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- clear=\E[H\E[J$<38>, cnorm=\E[=119l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[=119h, dch1=\E[P, dim=\E[1!{, dl=\E[%p1%dM$<4*>,
- dl1=\E[M$<4>, ed=\E[J$<96>, el=\E[K$<6>, home=\E[H,
- hpa=\E[%p1%{1}%+%dG, ht=\011$<4>, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL$<4*>, il1=\E[L$<4>, ind=\n$<8>,
- invis=\E[8m, ip=$<4>, is1=\E[=103l\E[=205l,
- is2=\E[1*q\E[2!t\E[7!t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[!y\E[!z\E>\E[0\:0\:32!r\E[0*w\E[w\E2\r\n\E[2;27!t,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\E^B\r, ked=\E^D\r, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, kich1=\E^A\r, kil1=\E^C\r, ll=\E[24H,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- pfloc=\E[%p1%d;0u#%p2%s#, pfx=\E[%p1%d;1u#%p2%s#,
- prot=\E[99m, rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m,
- ri=\EM$<4>, rmacs=\016$<1>, rmcup=\E[w\E2\r\n,
- rmir=\E[4l, rmkx=\E[!z\E[0;2u, rmso=\E[7!{, rmul=\E[4!{,
- sc=\E7,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
- smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
- tbc=\E[2g, vpa=\E[%p1%{1}%+%dd,
-avt-rv-ns|concept avt in reverse video mode/no status line,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
- use=avt-ns,
-avt-w-ns|concept avt in 132 column mode/no status line,
- is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
- use=avt-ns,
-avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
- smcup=\E[H\E[1;24;1;132w, use=avt-ns,
-
-# Concept AVT with status line. We get the status line using the
-# "Background status line" feature of the terminal. We swipe the
-# first line of memory in window 2 for the status line, keeping
-# 191 lines of memory and 24 screen lines for regular use.
-# The first line is used instead of the last so that this works
-# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
-# assumes an 8 page AVT but lm isn't currently used anywhere.)
-#
-avt+s|concept avt status line changes,
- eslok, hs,
- lm#191,
- dsl=\E[0*w, fsl=\E[1;1!w,
- is3=\E[2w\E[2!w\E[1;1;1;80w\E[H\E[2*w\E[1!w\E2\r\n,
- rmcup=\E[2w\E2\r\n, smcup=\E[2;25w\E2\r,
- tsl=\E[2;1!w\E[;%p1%dH\E[2K,
-avt|avt-s|concept-avt|avt w/80 columns,
- use=avt+s, use=avt-ns,
-avt-rv|avt-rv-s|avt reverse video w/sl,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
- use=avt+s, use=avt-ns,
-avt-w|avt-w-s|concept avt 132 cols+status,
- is1=\E[=103h\E[=205l, smcup=\E[H\E[1;24;1;132w,
- use=avt+s, use=avt-ns,
-avt-w-rv|avt-w-rv-s|avt wide+status+rv,
- flash=\E[=205l$<200>\E[=205h, is1=\E[=103h\E[=205h,
- smcup=\E[H\E[1;24;1;132w, use=avt+s, use=avt-ns,
-
-#### Contel Business Systems.
-#
-
-# Contel c300 and c320 terminals.
-contel300|contel320|c300|Contel Business Systems C-300 or C-320,
- am, in, xon,
- cols#80, lines#24, xmc#1,
- bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
- el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
- hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
- kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
- kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
- rmso=\E!\0, sgr0=\E!\0, smso=\E!\r, tbc=\E3,
-# Contel c301 and c321 terminals.
-contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321,
- flash@, ich1@, ip@, rmso=\E!\0$<20>, smso=\E!\r$<20>,
- use=contel300,
-
-#### Data General (dg)
-#
-# According to James Carlson <carlson@xylogics.com> writing in January 1995,
-# the terminals group at Data General was shut down in 1991; all these
-# terminals have thus been discontinued.
-#
-# DG terminals have function keys that respond to the SHIFT and CTRL keys,
-# e.g., SHIFT-F1 generates a different code from F1. To number the keys
-# sequentially, first the unmodified key codes are listed as F1 through F15.
-# Then their SHIFT versions are listed as F16 through F30, their CTRL versions
-# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
-# F46 through F60. This is done in the private "includes" below whose names
-# start with "dgkeys+".
-#
-# DG terminals generally support 8 bit characters. For each of these terminals
-# two descriptions are supplied:
-# 1) A default description for 8 bits/character communications, which
-# uses the default DG international character set and keyboard codes.
-# 2) A description with suffix "-7b" for 7 bits/character communications.
-# This description must use the NON-DEFAULT native keyboard language.
-
-# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33),
-# Ctrl/Shift fdkeys (kf34-kf44).
-
-dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys,
- ka1=\233020z, ka3=\233021z, kc1=\233022z, kc3=\233023z,
- kclr=\2332J, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
- kcuu1=\233A, kel=\233K, kf1=\233001z, kf10=\233010z,
- kf11=\233011z, kf12=\233012z, kf13=\233013z,
- kf14=\233014z, kf15=\233000z, kf16=\233101z,
- kf17=\233102z, kf18=\233103z, kf19=\233104z,
- kf2=\233002z, kf20=\233105z, kf21=\233106z,
- kf22=\233107z, kf23=\233108z, kf24=\233109z,
- kf25=\233110z, kf26=\233111z, kf27=\233112z,
- kf28=\233113z, kf29=\233114z, kf3=\233003z,
- kf30=\233100z, kf31=\233201z, kf32=\233202z,
- kf33=\233203z, kf34=\233204z, kf35=\233205z,
- kf36=\233206z, kf37=\233207z, kf38=\233208z,
- kf39=\233209z, kf4=\233004z, kf40=\233210z,
- kf41=\233211z, kf42=\233212z, kf43=\233213z,
- kf44=\233214z, kf45=\233200z, kf46=\233301z,
- kf47=\233302z, kf48=\233303z, kf49=\233304z,
- kf5=\233005z, kf50=\233305z, kf51=\233306z,
- kf52=\233307z, kf53=\233308z, kf54=\233309z,
- kf55=\233310z, kf56=\233311z, kf57=\233312z,
- kf58=\233313z, kf59=\233314z, kf6=\233006z,
- kf60=\233300z, kf7=\233007z, kf8=\233008z, kf9=\233009z,
- khome=\233H, kprt=\233i,
-
-dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys,
- ka1=\E[020z, ka3=\E[021z, kc1=\E[022z, kc3=\E[023z,
- kclr=\E[2J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kel=\E[K, kf1=\E[001z, kf10=\E[010z, kf11=\E[011z,
- kf12=\E[012z, kf13=\E[013z, kf14=\E[014z, kf15=\E[000z,
- kf16=\E[101z, kf17=\E[102z, kf18=\E[103z, kf19=\E[104z,
- kf2=\E[002z, kf20=\E[105z, kf21=\E[106z, kf22=\E[107z,
- kf23=\E[108z, kf24=\E[109z, kf25=\E[110z, kf26=\E[111z,
- kf27=\E[112z, kf28=\E[113z, kf29=\E[114z, kf3=\E[003z,
- kf30=\E[100z, kf31=\E[201z, kf32=\E[202z, kf33=\E[203z,
- kf34=\E[204z, kf35=\E[205z, kf36=\E[206z, kf37=\E[207z,
- kf38=\E[208z, kf39=\E[209z, kf4=\E[004z, kf40=\E[210z,
- kf41=\E[211z, kf42=\E[212z, kf43=\E[213z, kf44=\E[214z,
- kf45=\E[200z, kf46=\E[301z, kf47=\E[302z, kf48=\E[303z,
- kf49=\E[304z, kf5=\E[005z, kf50=\E[305z, kf51=\E[306z,
- kf52=\E[307z, kf53=\E[308z, kf54=\E[309z, kf55=\E[310z,
- kf56=\E[311z, kf57=\E[312z, kf58=\E[313z, kf59=\E[314z,
- kf6=\E[006z, kf60=\E[300z, kf7=\E[007z, kf8=\E[008z,
- kf9=\E[009z, khome=\E[H, kprt=\E[i,
-
-dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys,
- kclr=^L, kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kel=^K,
- kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^a, kf13=^^b, kf14=^^c,
- kf15=^^d, kf16=^^e, kf17=^^f, kf18=^^g, kf19=^^h, kf2=^^r,
- kf20=^^i, kf21=^^j, kf22=^^k, kf23=^^1, kf24=^^2, kf25=^^3,
- kf26=^^4, kf27=^^5, kf28=^^6, kf29=^^7, kf3=^^s, kf30=^^8,
- kf31=^^9, kf32=^^\:, kf33=^^;, kf34=^^!, kf35=^^", kf36=^^#,
- kf37=^^$, kf38=^^%%, kf39=^^&, kf4=^^t, kf40=^^', kf41=^^(,
- kf42=^^), kf43=^^*, kf44=^^+, kf5=^^u, kf6=^^v, kf7=^^w,
- kf8=^^x, kf9=^^y, khome=^H,
-
-dgkeys+15|Private entry describing 15 DG mode special keys,
- kHOM=^^^H, kLFT=^^^Y, kRIT=^^^X, ka1=^^\\, ka3=^^], kc1=^^\^,
- kc3=^^_, kf1=^^q, kf10=^^z, kf11=^^{, kf12=^^|, kf13=^^},
- kf14=^^~, kf15=^^p, kf16=^^a, kf17=^^b, kf18=^^c, kf19=^^d,
- kf2=^^r, kf20=^^e, kf21=^^f, kf22=^^g, kf23=^^h, kf24=^^i,
- kf25=^^j, kf26=^^k, kf27=^^l, kf28=^^m, kf29=^^n, kf3=^^s,
- kf30=^^`, kf31=^^1, kf32=^^2, kf33=^^3, kf34=^^4, kf35=^^5,
- kf36=^^6, kf37=^^7, kf38=^^8, kf39=^^9, kf4=^^t, kf40=^^\:,
- kf41=^^;, kf42=^^<, kf43=^^=, kf44=^^>, kf45=^^0, kf46=^^!,
- kf47=^^", kf48=^^#, kf49=^^$, kf5=^^u, kf50=^^%%, kf51=^^&,
- kf52=^^', kf53=^^(, kf54=^^), kf55=^^*, kf56=^^+, kf57=^^\,,
- kf58=^^-, kf59=^^., kf6=^^v, kf60=^^\s, kf7=^^w, kf8=^^x,
- kf9=^^y,
-
-# Data General color terminals use the "Tektronix" color model. The total
-# number of colors varies with the terminal model, as does support for
-# attributes used in conjunction with color.
-
-# Removed u7, u8 definitions since they conflict with tack:
-# Preserve user-defined colors in at least some cases.
-# u7=^^Fh,
-# Default is ACM mode.
-# u8=^^F}20^^Fi^^F}21,
-#
-dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode,
- bce,
- colors#16, ncv#53, pairs#256,
- op=\036Ad\036Bd,
- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
-
-dg+fixed|Fixed color info for DG D430C terminals in DG mode,
- use=dgunix+fixed,
-
-# Video attributes are coordinated using static variables set by "sgr", then
-# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
-# (D=dim, U=underline, B=blink, R=reverse.)
-dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode,
- bce,
- colors#8, ncv#16, pairs#64,
- op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m,
- setab=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setaf=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
-
-dg+color|Color info for Data General D470C terminals in ANSI mode,
- colors#16, ncv#53, pairs#256,
- setab=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setaf=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- setf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m,
- use=dg+color8,
-
-dgmode+color8|Color info for Data General D220/D230C terminals in DG mode,
- bce,
- colors#8, ncv#16, pairs#64,
- op=\036Ad\036Bd,
- setab=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
- setaf=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c,
- setb=\036B%p1%{48}%+%c, setf=\036A%p1%{48}%+%c,
-
-dgmode+color|Color info for Data General D470C terminals in DG mode,
- colors#16, pairs#256,
- setab=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
- setaf=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c,
- use=dgmode+color8,
-
-dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
- bce, ccc,
- colors#52, ncv#53, pairs#26,
- initp=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X,
- oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
- op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
- scp=\036RG2%p1%02X,
-
-# Colors are in the order: normal, reverse, dim, dim + reverse.
-dg+ccc|Configurable color info for DG D430C terminals in DG mode,
- bce, ccc,
- colors#52, ncv#53, pairs#26,
- initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
- oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00,
- op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
- scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
-
-# The generic DG terminal type (an 8-bit-clean subset of the 6053)
-# Initialization string 1 sets:
-# ^R - vertical scrolling enabled
-# ^C - blinking enabled
-dg-generic|Generic Data General terminal in DG mode,
- am, bw, msgr, xon,
- cols#80, lines#24,
- bel=^G, blink=^N, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
- cup=\020%p2%c%p1%c, cuu1=^W, dim=^\, el=^K, ind=^J, is1=^R^C,
- mc0=^Q, nel=^J, rmso=^], rmul=^U, sgr0=^O^U^], smso=^\,
- smul=^T, use=dgkeys+11,
-
-# According to the 4.4BSD termcap file, the dg200 <cup> should be the
-# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap
-# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious,
-# maybe they were originally nuls (which would fit).
-
-dg200|data general dasher 200,
- OTbs, am, bw,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^Y, cud1=^Z, cuf1=^X,
- cup=\020%p2%c%p1%c, cuu1=^W, el=^K, home=^H, ind=^J,
- kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z, kf1=^^q,
- kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v, kf7=^^w, kf8=^^x,
- kf9=^^y, khome=^H, lf0=f10, nel=^J, rmso=^^E, rmul=^U,
- smso=^^D, smul=^T,
-
-# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL
-dg210|dg-ansi|Data General 210/211,
- am,
- cols#80, lines#24,
- OTnl=\E[B, clear=\E[2J, cud1=\E[B, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, ed=\E[J, el=\E[K, home=\E[H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m, smso=\E[7;m,
- smul=\E[4;m,
-# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
-# courtesy of Carlos Rucalde of Vantage Software, Inc.
-# (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
-# I suspect the d200 function keys actually work on the dg211, check it out.)
-dg211|Data General d211,
- cnorm=^L, cvvis=^L^R, ht=^I, ind@, kbs=^Y, kf0@, kf1@, kf2@, kf3@,
- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, lf0@, nel=^M^Z, rmcup=^L,
- rmso=\036E$<\0/>, smcup=^L^R, smso=\036D$<5/>, use=dg200,
-
-# dg450 from Cornell (not official)
-dg450|dg6134|data general 6134,
- cub1@, cuf1=^X, use=dg200,
-
-# Not official...
-# Note: lesser Dasher terminals will not work with vi because vi insists upon
-# having a command to move straight down from any position on the bottom line
-# and scroll the screen up, or a direct vertical scroll command. The 460 and
-# above have both, the D210/211, for instance, has neither. We must use ANSI
-# mode rather than DG mode because standard UNIX tty drivers assume that ^H is
-# backspace on all terminals. This is not so in DG mode.
-# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
-# grounds that there is no matching ":ml:"
-# fixed garbled ":k9=\E[00\:z:" capability -- esr)
-dg460-ansi|Data General Dasher 460 in ANSI-mode,
- OTbs, am, msgr, ul,
- cols#80, it#8, lines#24,
- OTnl=\ED, blink=\E[5m, clear=\E[2J, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P,
- dim=\E[2m, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- ich1=\E[@, il1=\E[L, ind=\E[S, is2=^^F@, kbs=\E[D,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf0=\E[001z, kf1=\E[002z, kf2=\E[003z, kf3=\E[004z,
- kf4=\E[005z, kf5=\E[006z, kf6=\E[007z, kf7=\E[008z,
- kf8=\E[009z, kf9=\E[010z, khome=\E[H, lf0=f1, lf1=f2, lf2=f3,
- lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf9=f10, rev=\E[7m,
- ri=\E[T, rmso=\E[m, rmul=\E[05, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m,
-# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
-# Data General 605x
-# Ought to work for a Model 6242, Type D210 as well as a 605x.
-# Note that the cursor-down key transmits ^Z. Job control users, beware!
-# This also matches a posted description of something called a `Dasher 100'
-# so there's a dg100 alias here.
-# (dg6053: the 4.4BSD file had <cub1=^H>, <cud1=^J>, <cuf1=^S>. -- esr)
-dg6053-old|dg100|data general 6053,
- OTbs, am, bw, ul,
- cols#80, lines#24,
- OTbc=^Y, bel=^G, clear=^L, cnorm=^L, cr=^M, cub1=^Y, cud1=^Z,
- cuf1=^X, cup=\020%p2%c%p1%c, cuu1=^W, cvvis=^L^R, el=^K,
- home=^H, ht=^I, is2=^R, kbs=^Y, kcub1=^Y, kcud1=^Z, kcuf1=^X,
- kcuu1=^W, kf0=^^q, kf1=^^r, kf2=^^s, kf3=^^t, kf4=^^u, kf5=^^v,
- kf6=^^w, kf7=^^x, kf8=^^y, kf9=^^z, khome=^H, rmcup=^L,
- rmso=\0^^E, rmul=^U, smcup=^L^R, smso=\0\0\0\0\0\036D,
- smul=^T,
-
-# (Some performance can be gained over the generic DG terminal type)
-dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053,
- xon@,
- home=^P\0\0, ll=^P\0^W, use=dg-generic,
-
-# Like 6053, but adds reverse video and more keypad and function keys.
-d200|d200-dg|Data General DASHER D200,
- bold=^^D^T, home@, ll@, rev=^^D, rmso=^^E^],
- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;,
- sgr0=\017\025\035\036E, smso=^^D^\, use=dgkeys+15,
- use=dg6053,
-
-# DASHER D210 series terminals in ANSI mode.
-# Reverse video, no insert/delete character/line, 7 bits/character only.
-#
-# Initialization string 1 sets:
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <4 - print characters regardless of attributes
-d210|d214|Data General DASHER D210 series,
- am, bw, msgr, xon,
- cols#80, lines#24,
- bel=^G, blink=\E[5m, bold=\E[4;7m, clear=\E[2J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dim=\E[2m, ed=\E[J, el=\E[K,
- el1=\E[1K, home=\E[H, ind=^J, is1=\E[<0;<1;<4l,
- ll=\E[H\E[A, nel=^J, rev=\E[7m, rmso=\E[m, rmul=\E[m,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m,
- sgr0=\E[m, smso=\E[2;7m, smul=\E[4m, use=dgkeys+7b,
-
-# DASHER D210 series terminals in DG mode.
-# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
-d210-dg|d214-dg|Data General DASHER D210 series in DG mode,
- xon,
- ed=^^FF, use=d200-dg,
-
-# DASHER D211 series terminals in ANSI mode.
-# Like the D210, but with 8-bit characters and local printer support.
-#
-# Initialization string 2 sets:
-# \E[2;1;1;1v
-# 2;1 - 8 bit operations
-# 1;1 - 8 bit (international) keyboard language
-# \E(B - default primary character set (U.S. ASCII)
-# \E)4 - default secondary character set (international)
-# ^O - primary character set
-#
-d211|d215|Data General DASHER D211 series,
- km,
- is2=\E[2;1;1;1v\E(B\E)4\017, mc0=\E[i, use=dgkeys+8b,
- use=d210,
-
-# Initialization string 2 sets:
-# \E[2;0;1;0v
-# 2;0 - 7 bit operations
-# 1;0 - 7 bit (native) keyboard language
-# \E(0 - default character set (the keyboard native language)
-# ^O - primary character set
-d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode,
- km@,
- is2=\E[2;0;1;0v\E(0\017, use=dgkeys+7b, use=d211,
-
-# Like the D210 series, but adds support for 8-bit characters.
-#
-# Reset string 2 sets:
-# ^^N - secondary character set
-# ^^FS0> - 8 bit international character set
-# ^^O - primary character set
-# ^^FS00 - default character set (matching the native keyboard language)
-#
-d211-dg|d215-dg|Data General DASHER D211 series in DG mode,
- km,
- rs2=\036N\036FS0>\036O\036FS00, use=d210-dg,
-
-d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode,
- use=d211-dg,
-
-# Enhanced DG mode with changes to be more UNIX compatible.
-d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode,
- mc5i,
- it#8,
- acsc=a\177j$k"l!m#n)q+t'u&v(w%x*, blink=^^PI,
- clear=^^PH, cub1=^^PD, cud1=^^PB, cuf1=^^PC, cuu1=^^PA,
- el=^^PE, home=^^PF, hpa=\020%p1%c\177, ht=^I, ind=^J,
- is1=\022\003\036P@1, is3=\036Fz0, kHOM=^^Pf, kLFT=^^Pd,
- kPRT=^^P1, kRIT=^^Pc, kclr=^^PH, kcub1=^^PD, kcud1=^^PB,
- kcuf1=^^PC, kcuu1=^^PA, kel=^^PE, khome=^^PF, kprt=^^P0,
- mc0=\036F?9, mc4=^^Fa, mc5=^^F`, rmacs=\036FS00,
- rs2=\036N\036FS0E\036O\036FS00,
- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
- sgr0=\036PJ\025\035\036E\036FS00, smacs=\036FS11,
- vpa=\020\177%p1%c, use=dgkeys+15, use=d216-dg,
-d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines,
- lines#25,
- is3=\036Fz2, use=d216+,
-
-d217-unix|Data General DASHER D217 in DG-UNIX mode,
- use=d216-unix,
-d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines,
- use=d216-unix-25,
-
-# DASHER D220 color terminal in ANSI mode.
-# Like the D470C but with fewer colors and screen editing features.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <4 - print characters regardless of attributes
-# \E[m - all attributes off
-# Reset string 1 sets:
-# \Ec - initial mode defaults (RIS)
-#
-d220|Data General DASHER D220,
- mc5i@,
- dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
- use=dg+color8, use=d470c,
-
-d220-7b|Data General DASHER D220 in 7 bit mode,
- mc5i@,
- dl@, dl1@, il@, il1@, is1=\E[<0;<1;<4l\E[m, mc4@, mc5@, rs1=\Ec,
- use=dg+color8, use=d470c-7b,
-
-# Initialization string 3 sets:
-# - default cursor (solid rectangle)
-# Reset string 2 sets:
-# ^^N - secondary character set
-# ^^FS0> - 8 bit international character set
-# ^^O - primary character set
-# ^^FS00 - default character set (matching the native keyboard language)
-#
-d220-dg|Data General DASHER D220 color terminal in DG mode,
- mc5i@,
- dl1@, home@, il1@, is2@, is3=\036FQ2, ll@, mc4@, mc5@, rs1@,
- rs2=\036N\036FS0>\036O\036FS00, use=dgmode+color8,
- use=d470c-dg,
-
-# DASHER D230C color terminal in ANSI mode.
-# Like the D220 but with minor ANSI compatibility improvements.
-#
-d230c|d230|Data General DASHER D230C,
- blink=\E[5;50m, bold=\E[4;7;50m, dim=\E[2;50m, nel=^M^J,
- rev=\E[7;50m, rmkx=\E[2;1v, rmso=\E[50m, rmul=\E[50m,
- sgr=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
- sgr0=\E[50m\E)4\017, smkx=\E[2;0v, smso=\E[2;7;50m,
- smul=\E[4;50m, use=dgkeys+7b, use=d220,
-
-d230c-dg|d230-dg|Data General DASHER D230C in DG mode,
- use=d220-dg,
-
-# DASHER D400/D450 series terminals.
-# These add intelligent features like insert/delete to the D200 series.
-#
-# Initialization string 2 sets:
-# ^^FQ2 - default cursor (solid rectangle)
-# ^^FW - character protection disabled
-# ^^FJ - normal (80 column) mode
-# ^^F\^ - horizontal scrolling enabled (for alignment)
-# ^^FX004? - margins at columns 0 and 79
-# ^^F] - horizontal scrolling disabled
-# ^^O - primary character set
-# ^^FS00 - default character set (the keyboard native language)
-# - (should reset scrolling regions, but that glitches the screen)
-# Reset string 1 sets:
-# ^^FA - all terminal defaults except scroll rate
-# Reset string 2 sets:
-# ^^F] - horizontal scrolling disabled
-# ^^FT0 - jump scrolling
-#
-d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series,
- mc5i,
- acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\036FQ0,
- cnorm=\036FQ2, dch1=^^K, dl1=^^FI,
- enacs=\036N\036FS11\036O, home=^^FG, hpa=\020%p1%c\177,
- ich1=^^J, il1=^^FH,
- is2=\036FQ2\036FW\036FJ\036F\^\036FX004?\036F]\036O\036FS00,
- ll=\036FG\027, mc4=^^Fa, mc5=^^F`, ri=^^I, rmacs=^^O,
- rs1=^^FA, rs2=\036F]\036FT0,
- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;,
- sgr0=\017\025\035\036E\036O, smacs=^^N,
- vpa=\020\177%p1%c, use=d210-dg,
-
-# DASHER D410/D460 series terminals in ANSI mode.
-# These add a large number of intelligent terminal features.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<2;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <2 - horizontal scrolling enabled (for alignment)
-# <4 - print characters regardless of attributes
-# \E[5;0v - normal (80 column) mode
-# \E[1;1;80w - margins at columns 1 and 80
-# \E[1;6;<2h
-# 1 - print all characters even if protected
-# 6 - character protection disabled
-# <2 - horizontal scrolling disabled
-# - (should reset scrolling regions, but that glitches the screen)
-#
-# Initialization string 2 sets:
-# \E[3;2;2;1;1;1v
-# 3;2 - default cursor (solid rectangle)
-# 2;1 - 8 bit operations
-# 1;1 - international keyboard language
-# \E(B - default primary character set (U.S. ASCII)
-# \E)4 - default secondary character set (international)
-# ^O - primary character set
-#
-# Reset string 1 sets:
-# \Ec - initial mode defaults (RIS)
-# \E[<2h - horizontal scrolling disabled
-#
-# Reset string 2 sets:
-# \E[4;0;2;1;1;1v
-# 4;0 - jump scrolling
-# 2;1 - 8 bit operations
-# 1;1 - 8 bit (international) keyboard language
-# \E(B - default primary character set (U.S. ASCII)
-# \E)4 - default secondary character set (international)
-#
-d410|d411|d460|d461|Data General DASHER D410/D460 series,
- mc5i,
- acsc=j$k"l!m#n)q+t'u&v(w%x*, civis=\E[3;0v,
- cnorm=\E[3;2v, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
- is1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h,
- is2=\E[3;2;2;1;1;1v\E(B\E)4\017, mc4=\E[4i, mc5=\E[5i,
- ri=\EM, rmacs=\E)4\017, rs1=\Ec\E[<2h,
- rs2=\E[4;0;2;1;1;1v\E(B\E)4,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;,
- sgr0=\E[m\E)4\017, smacs=\E)6\016, use=d211,
-
-# Initialization string 2 sets:
-# \E[3;2;2;0;1;0v
-# 3;2 - default cursor (solid rectangle)
-# 2;0 - 7 bit operations
-# 1;0 - 7 bit (native) keyboard language
-# \E(0 - default character set (the keyboard native language)
-# ^O - primary character set
-#
-# Reset string 2 sets:
-# \E[4;0;2;0;1;0v
-# 4;0 - jump scrolling
-# 2;0 - 7 bit operations
-# 1;0 - 7 bit (native) keyboard language
-# \E(0 - default character set (the keyboard native language)
-#
-d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode,
- km@,
- enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O,
- rs2=\E[4;0;2;0;1;0v\E(0,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410,
-
-d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode,
- km,
- enacs@, rmacs=\036FS00,
- sgr=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;,
- sgr0=\017\025\035\036E\036FS00, smacs=\036FS11,
- use=d400-dg,
-
-# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<2;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <2 - horizontal scrolling enabled (for alignment)
-# <4 - print characters regardless of attributes
-# \E[5;1v - compressed (135 column) mode
-# \E[1;1;126 - margins at columns 1 and 126
-# \E[1;6;<2h
-# 1 - print all characters even if protected
-# 6 - character protection disabled
-# <2 - horizontal scrolling disabled
-# - (should reset scrolling regions, but that glitches the screen)
-#
-# Reset string 1 sets:
-# \Ec - initial mode defaults (RIS)
-# \E[5;1v - compressed (135 column) mode
-# \E[1;1;126w - margins at columns 1 and 126
-# \E[<2h - horizontal scrolling disabled
-#
-d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode,
- cols#126,
- is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
- rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410,
-
-d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode,
- cols#126,
- is1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h,
- rs1=\Ec\E[5;1v\E[1;1;126w\E[<2h, use=d410-7b,
-
-d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode,
- use=d410-dg,
-
-# These add intelligent features like scrolling regions.
-d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode,
- civis=\036FQ0, clear=^^FE, cnorm=\036FQ5,
- cup=\036FP%p2%2.2X%p1%2.2X, dch1=^^K, dl1=^^FI,
- home=^^FG, hpa=\036FP%p1%2.2XFF, ich1=^^J, il1=^^FH,
- is2=\036FQ5\036FW\036FJ\036F\^\036FX004F\036O\036FS00,
- ll=\036FG\036PA, mc0=^A, rc=\036F}11, ri=^^I,
- rs1=\036FA\036FT0, rs2=\036P@1, sc=\036F}10,
- vpa=\036FPFF%p1%2.2X,
- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
- use=d216+,
-d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode,
- cols#132,
- is2=\036FQ5\036FW\036FK\036F\^\036FX0083\036O\036FS00,
- rs2=\036P@1\036FK\036FX0083,
- wind=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X,
- use=d412-unix,
-d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines,
- lines#25,
- is3=\036Fz2,
- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X,
- use=d462+,
-d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line,
- eslok, hs,
- clear=\036FG\036PH, fsl=\036F}01\022,
- is3=\036Fz2\036F}00\036FB180000\036F}01, ll@,
- tsl=\036F}00\036FP%p1%2.2X18\036PG,
- wind=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X,
- use=d462+,
-
-# Relative cursor motions are confined to the current window,
-# which is not what the scrolling region specification expects.
-# Thus, relative vertical cursor positioning must be deleted.
-d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region,
- csr=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;,
- cud1@, cuu1@, ll@, use=d462+,
-
-d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode,
- use=d412-unix,
-d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode,
- use=d412-unix-w,
-d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines,
- use=d412-unix-25,
-d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line,
- use=d412-unix-s,
-d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region,
- use=d412-unix-sr,
-
-d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode,
- use=d413-unix,
-d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode,
- use=d413-unix-w,
-d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines,
- use=d413-unix-25,
-d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line,
- use=d413-unix-s,
-d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region,
- use=d413-unix-sr,
-
-d430c-dg|d430-dg|Data General D430C in DG mode,
- use=d413-dg, use=dg+fixed,
-d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors,
- use=d413-dg, use=dg+ccc,
-
-d430c-unix|d430-unix|Data General D430C in DG-UNIX mode,
- use=d413-unix, use=dgunix+fixed,
-d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode,
- use=d413-unix-w, use=dgunix+fixed,
-d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines,
- use=d413-unix-25, use=dgunix+fixed,
-d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line,
- use=d413-unix-s, use=dgunix+fixed,
-d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region,
- use=d413-unix-sr, use=dgunix+fixed,
-d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors,
- use=d413-unix, use=dgunix+ccc,
-d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors,
- use=d413-unix-w, use=dgunix+ccc,
-d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors,
- use=d413-unix-25, use=dgunix+ccc,
-d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors,
- use=d413-unix-s, use=dgunix+ccc,
-d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors,
- use=d413-unix-sr, use=dgunix+ccc,
-
-# DASHER D470C color terminal in ANSI mode.
-# Like the D460 but with 16 colors and without a compressed mode.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<2;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <2 - horizontal scrolling enabled (for alignment)
-# <4 - print characters regardless of attributes
-# \E[1;1;80w - margins at columns 1 and 80
-# \E[1;6;<2h
-# 1 - print all characters even if protected
-# 6 - character protection disabled
-# <2 - horizontal scrolling disabled
-# - (should reset scrolling regions, but that glitches the screen)
-#
-d470c|d470|Data General DASHER D470C,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;,
- use=dg+color, use=d460,
-
-d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;,
- use=dg+color, use=d460-7b,
-
-# Initialization string 2 sets:
-# ^^FQ2 - default cursor (solid rectangle)
-# ^^FW - character protection disabled
-# ^^F\^ - horizontal scrolling enabled (for alignment)
-# ^^FX004? - margins at columns 0 and 79
-# ^^F] - horizontal scrolling disabled
-# ^^O - primary character set
-# ^^FS00 - default character set (the keyboard native language)
-# - (should reset scrolling regions, but that glitches the screen)
-#
-d470c-dg|d470-dg|Data General DASHER D470C in DG mode,
- is2=\036FQ2\036FW\036F\^\036FX004?\036F]\036O\036FS00,
- use=dgmode+color, use=d460-dg,
-
-# DASHER D555 terminal in ANSI mode.
-# Like a D411, but has an integrated phone.
-d555|Data General DASHER D555,
- use=d411,
-d555-7b|Data General DASHER D555 in 7-bit mode,
- use=d411-7b,
-d555-w|Data General DASHER D555 in wide mode,
- use=d411-w,
-d555-7b-w|Data General DASHER D555 in wide 7-bit mode,
- use=d411-7b-w,
-d555-dg|Data General DASHER D555 series in DG mode,
- use=d411-dg,
-
-# DASHER D577 terminal in ANSI mode.
-# Like a D411, but acts as a keyboard for serial printers ("KSR" modes).
-d577|Data General DASHER D577,
- use=d411,
-d577-7b|Data General DASHER D577 in 7-bit mode,
- use=d411-7b,
-d577-w|Data General DASHER D577 in wide mode,
- use=d411-w,
-d577-7b-w|Data General DASHER D577 in wide 7-bit mode,
- use=d411-7b-w,
-
-d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode,
- use=d411-dg,
-
-# DASHER D578 terminal.
-# Like a D577, but without compressed mode; like a D470C in this respect.
-#
-# Initialization string 1 sets:
-# \E[<0;<1;<2;<4l
-# <0 - scrolling enabled
-# <1 - blink enabled
-# <2 - horizontal scrolling enabled (for alignment)
-# <4 - print characters regardless of attributes
-# \E[1;1;80w - margins at columns 1 and 80
-# \E[1;6;<2h
-# 1 - print all characters even if protected
-# 6 - character protection disabled
-# <2 - horizontal scrolling disabled
-# - (should reset scrolling regions, but that glitches the screen)
-#
-d578|Data General DASHER D578,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577,
-d578-7b|Data General DASHER D578 in 7-bit mode,
- is1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h, use=d577-7b,
-
-#### Datamedia (dm)
-#
-# Datamedia was headquartered in Nashua, New Hampshire until it went
-# out of business in 1993, but the ID plates on the terminals referred
-# to the factory in Pennsauken, NJ. The factory was sold to a PCB board
-# manufacturer which threw out all information about the terminals.
-#
-
-cs10|colorscan|Datamedia Color Scan 10,
- msgr,
- cols#80, lines#24,
- bel=^G, clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%02d;%p2%02dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- ind=^J, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-cs10-w|Datamedia Color Scan 10 with 132 columns,
- cols#132,
- cup=\E[%i%p1%02d;%p2%03dH, use=cs10,
-
-# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
-dm1520|dm1521|datamedia 1520,
- OTbs, am, xenl,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, ht=^I, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
- khome=^Y,
-# dm2500: this terminal has both <ich> and <smir>. Applications using
-# termcap/terminfo directly (rather than through ncurses) might be confused.
-dm2500|datamedia2500|datamedia 2500,
- OTbs, OTnc,
- cols#80, lines#24,
- bel=^G, clear=^^^^\177, cub1=^H, cud1=^J, cuf1=^\,
- cup=\014%p2%{96}%^%c%p1%{96}%^%c, cuu1=^Z,
- dch1=\020\010\030\035$<10*>,
- dl1=\020\032\030\035$<10*>, el=^W, home=^B,
- ich1=\020\034\030\035$<10*>,
- il1=\020\n\030\035\030\035$<15>, ind=^J, pad=\377,
- rmdc=^X^], rmir=\377\377\030\035$<10>, rmso=^X^],
- smdc=^P, smir=^P, smso=^N,
-# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82)
-# also, has a meta-key.
-# From: <goldberger@su-csli.arpa>
-# (dmchat: ":MT:" changed to ":km:" -- esr)
-dmchat|dmchat version of datamedia 2500,
- km,
- dl1=\020\032\030\035$<2/>,
- il1=\020\n\030\035\030\035$<1*/>, use=dm2500,
-# (dm3025: ":MT:" changed to ":km:" -- esr)
-dm3025|datamedia 3025a,
- OTbs, km,
- cols#80, it#8, lines#24,
- bel=^G, clear=\EM$<2>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
- dch1=\010$<6>, dl1=\EP\EA\EQ$<130>, ed=\EJ$<2>, el=\EK,
- home=\EH, ht=^I, il1=\EP\n\EQ$<130>, ind=^J, ip=$<6>,
- is2=\EQ\EU\EV, rmdc=\EQ, rmir=\EQ, rmso=\EO0, smdc=\EP,
- smir=\EP, smso=\EO1,
-dm3045|datamedia 3045a,
- OTbs, am, eo, km@, ul, xenl,
- dch1=\EB$<6>, dl1@, il1@, is2=\EU\EV, kcuf1=\EC, kcuu1=\EA,
- kf0=\Ey\r, kf1=\Ep\r, kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r,
- kf5=\Et\r, kf6=\Eu\r, kf7=\Ev\r, kf8=\Ew\r, kf9=\Ex\r,
- khome=\EH, pad=\177, rmdc@, rmir=\EP, rmso@, smdc@, smso@,
- use=dm3025,
-# Datamedia DT80 soft switches:
-# 1 0=Jump 1=Smooth
-# Autorepeat 0=off 1=on
-# Screen 0=Dark 1=light
-# Cursor 0=u/l 1=block
-#
-# 2 Margin Bell 0=off 1=on
-# Keyclick 0=off 1=on
-# Ansi/VT52 0=VT52 1=Ansi
-# Xon/Xoff 0=Off 1=On
-#
-# 3 Shift3 0=Hash 1=UK Pound
-# Wrap 0=Off 1=On
-# Newline 0=Off 1=On
-# Interlace 0=Off 1=On
-#
-# 4 Parity 0=Odd 1=Even
-# Parity 0=Off 1=On
-# Bits/Char 0=7 1=8
-# Power 0=60Hz 1=50Hz
-#
-# 5 Line Interface 0=EIA 1=Loop
-# Aux Interface 0=EIA 1=Loop
-# Local Copy 0=Off 1=On
-# Spare
-#
-# 6 Aux Parity 0=Odd 1=Even
-# Aux Parity 0=Off 1=On
-# Aux Bits/Char 0=7 1=8
-# CRT Saver 0=Off 1=On
-# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
-dm80|dmdt80|dt80|datamedia dt80/1,
- clear=\E[2J\E[H, cud1=^J, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM,
- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
- use=vt100,
-# except in 132 column mode, where it needs a little padding.
-# This is still less padding than the vt100, and you can always turn on
-# the ^S/^Q handshaking, so you can use vt100 flavors for things like
-# reverse video.
-dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode,
- cols#132,
- clear=\E[H\E[2J$<50/>, cud1=^J,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<5/>,
- ed=\E[0J$<20/>, el=\E[0K$<20/>, use=dm80,
-# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
-dt80-sas|Datamedia DT803/DTX for SAS usage,
- am, bw,
- cols#80, lines#24,
- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
- bel=^G, clear=^L, cr=^M,
- csr=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2,
- cub1=^H, cud1=\EB, cuf1=^\,
- cup=\E=%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, dl1=\EM, ed=^K,
- el=^], ff=^L, home=^Y, ht=^I, hts=\E'1, il1=\EL, ind=\EB,
- is2=\E)0\E<\EP\E'0\E$2, kclr=^L, kcub1=^H, kcud1=^J,
- kcuf1=^\, kcuu1=^_, ked=^K, kel=^], khome=^Y, mc4=^O, mc5=^N,
- rev=\E$2\004, ri=\EI, rmacs=\EG, rmso=^X, sgr0=^X, smacs=\EF,
- smso=\E$2\004, tbc=\E'0,
-
-# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL
-# These aren't end-all Excel termcaps; but do insert/delete char/line
-# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman)
-# The naming convention has been bent somewhat, with the use of E? (where
-# E is for 'Excel') as # a name. This was done to distinguish the entries
-# from the other Datamedias in use here, and yet to associate a model of
-# the Excel terminals with the regular datamedia terminals that share
-# major characteristics.
-excel62|excel64|datamedia Excel 62,
- dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
- kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
- use=dt80,
-excel62-w|excel64-w|datamedia Excel 62 in 132 char mode,
- dch1=\E[P, kbs=^H, kcub1=^H, kcud1=^J, kf5=\EOu, kf6=\EOv,
- kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l, smir=\E[4h,
- use=dt80w,
-excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode,
- dch1=\E[P, flash=\E[?5l\E[?5h, kbs=^H, kcub1=^H, kcud1=^J,
- kf5=\EOu, kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, rmir=\E[4l,
- smir=\E[4h, use=dt80,
-
-#### Falco
-#
-# Falco Data Products
-# 440 Potrero Avenue
-# Sunnyvale, CA 940864-196
-# Vox: (800)-325-2648
-# Fax: (408)-745-7860
-# Net: techsup@charm.sys.falco.com
-#
-# Current Falco models as of 1995 are generally ANSI-compatible and support
-# emulations of DEC VT-series, Wyse, and Televideo types.
-#
-
-# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
-# This terminal was released around 1983 and was discontinued long ago.
-# The standout and underline highlights are the same.
-falco|ts1|ts-1|falco ts-1,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET\EG0\010, home=^^, ht=^I, il1=\EE,
- ind=^J, is2=\Eu\E3, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- kf0=^A0\r, rmir=\Er, rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0,
- smir=\Eq, smso=\Eg1, smul=\Eg1,
-falco-p|ts1p|ts-1p|falco ts-1 with paging option,
- OTbs, am, da, db, mir, msgr, ul,
- cols#80, it#8, lines#24,
- bel=^G, cbt=\EI, clear=\E*, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E[A,
- dch1=\EW, dl1=\ER, ed=\EY, el=\ET\EG0\010\Eg0, ht=^I,
- il1=\EE, ind=^J, is2=\EZ\E3\E_c, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, rmcup=\E_b, rmir=\Er,
- rmso=\Eg0, rmul=\Eg0, sgr0=\Eg0, smcup=\E_d, smir=\Eq,
- smso=\Eg4, smul=\Eg1,
-# (ts100: I added <rmam>/<smam> based on the init string -- esr)
-ts100|ts100-sp|falco ts100-sp,
- am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, dch1=\E~W, dl1=\E~R, ed=\E[J$<50>,
- el=\E[K$<3>, el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H,
- ht=^I, hts=\EH, ich1=\E~Q, il1=\E~E, ind=^J, is1=\E~)\E~ea,
- ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM,
- kf0=\EOy, kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
- kf5=\EOt, kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-ts100-ctxt|falco ts-100 saving context,
- rmcup=\E~_b, smcup=\E~_d\E[2J, use=ts100,
-
-#### Florida Computer Graphics
-#
-
-# Florida Computer Graphics Beacon System, using terminal emulator program
-# "host.com", as provided by FCG. This description is for an early release
-# of the "host" program. Known bug: <ed> clears the whole screen, so it's
-# commented out.
-
-# From: David Bryant <cbosg!djb> 1/7/83
-beacon|FCG Beacon System,
- am, da, db,
- cols#80, lines#32,
- bel=\ESTART\r\E37\r\EEND\r$<1>,
- blink=\ESTART\r\E61\,1\r\EEND\r, clear=\EZ$<10>, cr=^M,
- cub1=^H, cud1=^J, cuf1=\EV,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=\EU,
- dch1=\EW, dl1=\ER, el=\ET, home=\EH$<10>, ich1=\EQ, il1=\EE,
- ind=^J, rev=\ESTART\r\E59\,1\r\EEND\r, rmcup=,
- rmso=\ESTART\r\E70\,0\r\EEND\r$<20>,
- rmul=\ESTART\r\E60\,0\r\EEND\r,
- sgr0=\ESTART\r\E78\r\E70\,0\r\EEND\r$<20>,
- smcup=\ESTART\r\E2\,0\r\E12\r\EEND\r$<10>,
- smso=\ESTART\r\E70\,6\r\EEND\r$<20>,
- smul=\ESTART\r\E60\,1\r\EEND\r,
-
-#### Fluke
-#
-
-# The f1720a differences from ANSI: no auto margin, destructive
-# tabs, # of lines, funny highlighting and underlining
-f1720|f1720a|fluke 1720A,
- xt,
- cols#80, lines#16, xmc#1,
- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J,
- el=\E[K, ind=\ED, is2=\E[H\E[2J, kcub1=^_, kcud1=^],
- kcuf1=^^, kcuu1=^\, ri=\EM, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m,
-
-#### Liberty Electronics (Freedom)
-#
-# Liberty Electronics
-# 48089 Fremont Blvd
-# Fremont CA 94538
-# Vox: (510)-623-6000
-# Fax: (510)-623-7021
-
-# From: <faletti@berkeley.edu>
-# (f100: added empty <acsc> to suppress a tic warning;
-# made this relative to adm+sgr -- note that <invis> isn't
-# known to work for f100 but does on the f110. --esr)
-f100|freedom|freedom100|freedom model 100,
- OTbs, am, bw, hs, mir, msgr, xon,
- cols#80, lines#24,
- acsc=, bel=^G, cbt=\EI, clear=^Z, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dl1=\ER$<11.5*>, dsl=\Eg\Ef\r, ed=\EY, el=\ET,
- flash=\Eb$<200>\Ed, fsl=^M, home=^^, hpa=\E]%p1%{32}%+%c,
- ht=^I, hts=\E1, il1=\EE$<8.5*>, ind=^J, ip=$<6>,
- is2=\Eg\Ef\r\Ed, kbs=^H, kcbt=\EI, kcub1=^H, kcud1=^V,
- kcuf1=^L, kcuu1=^K, kf1=^A@\r, kf10=^AI\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, ri=\Ej, rmacs=\E$, rmir=\Er,
- smacs=\E%%, smir=\Eq, tbc=\E3, tsl=\Eg\Ef,
- vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-f100-rv|freedom-rv|freedom 100 in reverse video,
- flash=\Ed$<200>\Eb, is2=\Eg\Ef\r\Eb, use=f100,
-# The f110 and f200 have problems with vi(1). They use the ^V
-# code for the down cursor key. When kcud1 is defined in terminfo
-# as ^V, the Control Character Quoting capability (^V in insert mode)
-# is lost! It cannot be remapped in vi because it is necessary to enter
-# a ^V to to quote the ^V that is being remapped!!!
-#
-# f110/f200 users will have to decide whether
-# to lose the down cursor key or the quoting capability. We will opt
-# initially for leaving the quoting capability out, since use of VI
-# is not generally applicable to most interactive applications
-# (f110: added <ht>, <khome> & <kcbt> from f100 -- esr)
-f110|freedom110|Liberty Freedom 110,
- bw@, eslok,
- it#8, wsl#80,
- blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V,
- cvvis=\E.2, dim=\EG@, dl1=\ER, dsl=\Ef\r,
- flash=\Eb$<200/>\Ed, il1=\EE, ip@, is2@, kclr=^^, kdch1=\EW,
- kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf10@, kich1=\EQ,
- kil1=\EE, mc4=\Ea, mc5=\E`, ri=\EJ, rmacs=\E%%, rmir=\Er\EO,
- smacs=\E$, smir=\EO\Eq, smso=\EG<, tsl=\Ef, use=f100,
-f110-14|Liberty Freedom 110 14inch,
- dch1@, use=f110,
-f110-w|Liberty Freedom 110 - 132 cols,
- cols#132, use=f110,
-f110-14w|Liberty Freedom 110 14in/132 cols,
- cols#132,
- dch1@, use=f110,
-# (f200: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-f200|freedom200|Liberty Freedom 200,
- OTbs, am, eslok, hs, mir, msgr, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=, bel=^G, blink=\EG2, bold=\EG0, cbt=\EI, civis=\E.0,
- clear=^Z, cnorm=\E.1, cr=^M,
- csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\E.1, dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY,
- el=\ET, flash=\Eo$<200/>\En, fsl=^M, home=^^,
- hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H,
- kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
- kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
- ri=\EJ, rmacs=\E%%, rmir=\Er, smacs=\E$, smir=\Eq, smso=\EG<,
- tbc=\E3, tsl=\Ef, vpa=\E[%p1%{32}%+%c, use=adm+sgr,
-f200-w|Liberty Freedom 200 - 132 cols,
- cols#132, use=f200,
-# The f200 has the ability to reprogram the down cursor key. The key is
-# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM,
-# so powering the terminal off and on will not cause the change to be lost.
-f200vi|Liberty Freedom 200 for vi,
- flash=\Eb$<200/>\Ed, kcud1=^J, use=f200,
-f200vi-w|Liberty Freedom 200 - 132 cols for vi,
- cols#132, use=f200vi,
-
-#### GraphOn (go)
-#
-# Graphon Corporation
-# 544 Division Street
-# Campbell, CA 95008
-# Vox: (408)-370-4080
-# Fax: (408)-370-5047
-# Net: troy@graphon.com (Troy Morrison)
-#
-#
-# The go140 and go225 have been discontinued. GraphOn now makes X terminals,
-# including one odd hybrid that starts out life on power-up as a character
-# terminal, than can be switched to X graphics mode (driven over the serial
-# line) by an escape sequence. No info on this beast yet.
-# (go140: I added <rmam>/<smam> based on the init string -- esr)
-go140|graphon go-140,
- OTbs,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J$<10/>, cub1=^H, cuf1=\E[C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J$<10/>, el=\E[K, ht=^I,
- if=/usr/share/tabset/vt100, il1=\E[L,
- is2=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
- rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smam=\E[?7h, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
-go140w|graphon go-140 in 132 column mode,
- am,
- cols#132,
- is2=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q,
- use=go140,
-# Hacked up vt200 termcap to handle GO-225/VT220
-# From: <edm@nwnexus.WA.COM>
-# (go225: I added <rmam>/<smam> based on the init string -- esr)
-go225|go-225|Graphon 225,
- OTbs, am, mir, xenl,
- cols#80, it#8, lines#25, vt#3,
- blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[L, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt100, ri=\EM, rmam=\E[?7l,
- rmcup=\E[!p\E[?7h\E[2;1;1#w, rmir=\E[4l, rmkx=\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=\E[!p\E[?7h\E[2;1;1#w,
- sc=\E7, sgr0=\E[m, smam=\E[?7h, smcup=\E[2;0#w\E[1;25r,
- smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
-
-#### Harris (Beehive)
-#
-# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine.
-# Their terminal group is ancient history now (1995) though the parent
-# company is still in business.
-#
-
-# Beehive documentation is undated and marked Preliminary and has no figures
-# so we must have early Superbee2 (Model 600, according to phone conversation
-# with mfr.). It has proved reliable except for some missing padding
-# (notably after \EK and <nl> at bottom of screen).
-#
-# The key idea is that AEP mode is poison for <cup> & that US's in
-# the local memory should be avoided like the plague. That means
-# that the 2048 character local buffer is used as 25 lines of 80
-# characters, period. No scrolling local memory, folks. It also
-# appears that we cannot use naked INS LINE feature since it uses
-# US. The sbi fakes <il1> with an 80-space insert that may be too
-# slow at low speeds; also spaces get converted to \040 which is
-# too long for some programs (not vi). DEL LINE is ok but slow.
-#
-# The <nl> string is designed for last line of screen ONLY; cup to
-# 25th line corrects the motion inherent in scrolling to Page 1.
-#
-# There is one understood bug. It is that the screen appears to
-# pop to a new (blank) page after a <nel>, or leave a half-line
-# ellipsis to a quad that is the extra 48 memory locations. The
-# data received is dumped into memory but not displayed. Not to
-# worry if <cup> is being used; the lines not displayed will be,
-# whenever the cursor is moved up there. Since <cup> is addressed
-# relative to MEMORY of window, nothing is lost; but beware of
-# relative cursor motion (<cuu1>,<cud1>,<cuf1>,<cub1>). Recommended,
-# therefore, is setenv MORE -c .
-#
-# WARNING: Not all features tested.
-#
-# Timings are assembled from 3 sources. Some timings may reflect
-# SB2/Model 300 that were used if more conservative.
-# Tested on a Model 600 at 1200 and 9600 bd.
-#
-# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
-# placed on the keyboard and useless because of AEP, is made
-# into a backspace key. In use ESC must be pressed twice (to send)
-# and sending ^C must be prefixed by ESC to avoid that weird
-# transmit mode associated with ENTER key.
-#
-# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
-# the screen, then it has dropped into ENTER mode; hit
-# RESET--ONLINE--!tset.
-#
-# As delivered this machine has a FATAL feature that will throw
-# it into that strange transmit state (SPOW) if the space bar is
-# hit after a CR is received, but before receiving a LF (or a
-# few others).
-#
-# The circuits MUST be modified to eliminate the SPOW latch.
-# This is done by strapping on chip A46 of the I/O board; cut
-# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
-# chip. This mod has been checked out on a Mod 600 of Superbee II.
-# With this modification absurdly high timings on cr are
-# unnecessary.
-#
-# NOTE WELL that the rear panel switch should be set to CR/LF,
-# not AEP!
-#
-sb1|beehive superbee,
- OTbs, am, bw, da, db, mir, ul, xsb,
- cols#80, lines#25, xmc#1,
- bel=^G, cbt=\E`$<650>, clear=\EH$<1>\EJ$<3>, cr=$<1>\r,
- cub1=^H, cud1=^J, cuf1=\EC$<3>, cup=\EF%p2%03d%p1%03d,
- cuu1=\EA$<3>, dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>,
- el=\EK$<3>, home=\EH$<1>, ht=^I, hts=\E1,
- il1=\EN\EL$<3>\EQ \EP$<3> \EO\ER\EA$<3>,
- ind=^J, is2=\EE$<3>\EX\EZ\EO\Eb\Eg\ER, kbs=^_, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdl1=\EM, ked=\EJ, kel=\EK,
- kf0=\E2, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu,
- kf7=\Ev, kf8=\Ew, kf9=\E1, khome=\EH, kich1=\EQ\EO,
- krmir=\ER, lf0=TAB CLEAR, lf9=TAB SET, rmcup=, rmir=\ER,
- rmso=\E_3, rmul=\E_3, sgr0=\E_3, smcup=\EO, smir=\EQ\EO,
- smso=\E_1, smul=\E_0, tbc=\E3,
-sbi|superbee|beehive superbee at Indiana U.,
- xsb,
- cr=\r$<1>, il1=1\EN\EL$<9>\EQ \EP$<9> \EO\ER\EA,
- use=sb1,
-# Alternate (older) description of Superbee - f1=escape, f2=^C.
-# Note: there are at least 3 kinds of superbees in the world. The sb1
-# holds onto escapes and botches ^C's. The sb2 is the best of the 3.
-# The sb3 puts garbage on the bottom of the screen when you scroll with
-# the switch in the back set to CRLF instead of AEP. This description
-# is tested on the sb2 but should work on all with either switch setting.
-# The f1/f2 business is for the sb1 and the <xsb> can be taken out for
-# the other two if you want to try to hit that tiny escape key.
-# This description is tricky: being able to use cup depends on there being
-# 2048 bytes of memory and the hairy <nl> string.
-superbee-xsb|beehive super bee,
- am, da, db, xsb,
- cols#80, it#8, lines#25,
- clear=\EH\EJ$<3>, cnorm=^J, cr=\r$<1000>, cub1=^H, cud1=^J,
- cuf1=\EC, cup=\EF%p2%3d%p1%3d, cuu1=\EA$<3>,
- dch1=\EP$<3>, dl1=\EM$<100>, ed=\EJ$<3>, el=\EK$<3>,
- home=\EH, ht=^I, hts=\E1,
- ind=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET, is2=\EH\EJ,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ep, kf2=\Eq,
- kf3=\Er, kf4=\Es, kf5=\Et, kf6=\Eu, kf7=\Ev, kf8=\Ew,
- khome=\EH, rmso=\E_3, sgr0=\E_3, smso=\E_1, tbc=\E3,
-# This loses on lines > 80 chars long, use at your own risk
-superbeeic|super bee with insert char,
- ich1=, rmir=\ER, smir=\EQ, use=superbee-xsb,
-sb2|sb3|fixed superbee,
- xsb@, use=superbee,
-
-#### Beehive Medical Electronics
-#
-# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
-# Regarding your question though; Beehive terminals weren't made by Harris.
-# They were made by Beehive Medical Electronics in Utah. They went out of
-# business in the early '80s.
-#
-# (OK, then, I don't know why a couple of these say "harris beehive".)
-#
-
-# Reports are that most of these Beehive entries (except superbee) have not
-# been tested and do not work right. <rmso> is a trouble spot. Be warned.
-
-# (bee: <ich1> was empty, which is obviously bogus -- esr)
-beehive|bee|harris beehive,
- OTbs, am, mir,
- cols#80, lines#24,
- cbt=\E>, clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
- dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, kbs=^H, kcbt=\E>,
- kclr=\EE, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kdch1=\EP, kdl1=\EM, kel=\EK, khome=\EH, kich1=\EQ, kil1=\EL,
- krmir=\E@, rmir=\E@, rmso=\Ed@, rmul=\Ed@, sgr0=\Ed@,
- smir=\EQ, smso=\EdP, smul=\Ed`,
-# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
-# good grief - does this entry make :sg:/:ug: when it doesn't have to?
-# look at those spaces in <rmso>/<smso>. Seems strange to me...
-# (beehive: <if=/usr/share/tabset/beehive> removed, no such file. If you
-# really care, cook up one using ^F -- esr)
-beehive3|bh3m|beehiveIIIm|harris beehive 3m,
- OTbs, am,
- cols#80, it#8, lines#20,
- bel=^G, clear=^E^R, cr=^M, cub1=^H, cud1=^J, cuf1=^L, cuu1=^K,
- dl1=\021$<350>, ed=^R, el=^P, home=^E, ht=^I, hts=^F,
- il1=\023$<160>, ind=^J, ll=^E^K, rmso=\s^_, smso=^]\s,
-beehive4|bh4|beehive 4,
- am,
- cols#80, lines#24,
- bel=^G, clear=\EE, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
- cuu1=\EA, ed=\EJ, el=\EK, home=\EH, ind=^J,
-# There was an early Australian kit-built computer called a "Microbee".
-# It's not clear whether this is for one of those or for a relative
-# of the Beehive.
-microb|microbee|micro bee series,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EF%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, ht=^I, ind=^J, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf1=\Ep, kf2=\Eq, kf3=\Er, kf4=\Es, kf5=\Et,
- kf6=\Eu, kf7=\Ev, kf8=\Ew, kf9=\Ex, khome=\EH, rmso=\Ed@,
- rmul=\Ed@, sgr0=\Ed@, smso=\s\EdP, smul=\Ed`,
-
-# 8675, 8686, and bee from Cyrus Rahman
-# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
-ha8675|harris 8675,
- is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU, kf1=^F,
- kf10=\Ed, kf11=^W, kf12=\ER, kf13=\EE, kf14=\EI, kf15=\Ei,
- kf16=\Eg, kf2=^P, kf3=^N, kf4=^V, kf5=^J, kf6=^T, kf7=^H,
- kf8=\177, kf9=\Ee, use=bee,
-# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
-# in :is: -- esr)
-ha8686|harris 8686,
- is2=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#,
- kf1=\002\Ep\003, kf10=\Ej, kf11=\EW, kf12=\002\E{\003,
- kf13=\002\E|\003, kf14=\002\E}\003, kf15=\002\E~\003,
- kf16=\002\E\177\003, kf2=\002\Eq\003, kf3=\002\Er\003,
- kf4=\002\Es\003, kf5=\E3, kf6=\EI, kf7=\ER, kf8=\EJ, kf9=\E(,
- use=bee,
-
-#### Hazeltine
-#
-# Hazeltine appears to be out of the terminal business as of 1995. These
-# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with
-# Harris. They have a hazeltine.com domain (but no web page there ) and can
-# be reached at:
-#
-# Hazeltine
-# 450 East Pulaski Road
-# Greenlawn, New York 11740
-#
-# As late as 1993, manuals for the terminal product line could still be
-# purchased from:
-#
-# TRW Customer Service Division
-# 15 Law Drive
-# P.O. Box 2076
-# Fairfield, NJ 07007-2078
-#
-# They're now (1998) a subsidiary of General Electric, operating under the
-# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page
-# at <http://www.gec.com/cpd/1ncpd.htm#1.55>.
-#
-
-# Since <cuf1> is blank, when you want to erase something you
-# are out of luck. You will have to do ^L's a lot to
-# redraw the screen. h1000 is untested. It doesn't work in
-# vi - this terminal is too dumb for even vi. (The code is
-# there but it isn't debugged for this case.)
-hz1000|hazeltine 1000,
- OTbs,
- cols#80, lines#12,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\s, home=^K,
- ind=^J,
-# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
-hz1420|hazeltine 1420,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=^J, cuf1=^P,
- cup=\E\021%p2%c%p1%{32}%+%c, cuu1=\E^L, dl1=\E^S,
- ed=\E^X, el=\E^O, ht=^N, il1=\E^Z, ind=^J, rmso=\E^Y,
- smso=\E^_,
-# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents
-# freakout with out-of-range args and tn3270. No hz since it needs to
-# receive tildes.
-hz1500|hazeltine 1500,
- OTbs, am, hz,
- cols#80, lines#24,
- bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
- cup=~\021%p2%p2%?%{30}%>%t%{32}%+%;%{96}%+%c%p1%{96}%+%c,
- cuu1=~^L, dl1=~\023$<40>, ed=~\030$<10>, el=~^O, home=~^R,
- il1=~\032$<40>, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^P,
- kcuu1=~^L, khome=~^R, rmso=~^Y, smso=~^_,
-# h1510 assumed to be in sane escape mode. Else use h1500.
-# (h1510: early versions of this entry apparently had "<rmso=\E^_>,
-# <smso=\E^Y>, but these caps were commented out in 8.3; also,
-# removed incorrect and overridden ":do=^J:" -- esr)
-hz1510|hazeltine 1510,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K, cuf1=^P,
- cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S, ed=\E^X,
- el=\E^O, il1=\E^Z, ind=^J,
-# Hazeltine 1520
-# The following switch settings are assumed for normal operation:
-# FULL CR U/L_CASE ESCAPE
-# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON
-# Other switches may be set for operator convenience or communication
-# requirements.
-hz1520|Hazeltine 1520,
- OTbs, am, bw, msgr,
- cols#80, lines#24,
- bel=^G, bold=\E^_, clear=\E^\, cr=^M, cub1=^H, cud1=^J,
- cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
- ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, kbs=^H,
- kclr=\E^\, kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L,
- kdl1=\E^S, ked=\E^X, kel=\E^O, khome=\E^R, kil1=\E^Z,
- rmso=\E^Y, rs1=\E$\E\005\E?\E\031, sgr0=\E^Y, smso=\E^_,
-# This version works with the escape switch off
-# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
-hz1520-noesc|hazeltine 1520,
- am, hz,
- cols#80, lines#24,
- bel=^G, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
- cup=~\021%p2%c%p1%c$<1>, cuu1=~^L, dl1=~^S, ed=~^X, el=~^O,
- home=~^R, il1=~^Z, ind=^J, rmso=~^Y, smso=~^_,
-# Note: the h1552 appears to be the first Hazeltine terminal which
-# is not braindamaged. It has tildes and backprimes and everything!
-# Be sure the auto lf/cr switch is set to cr.
-hz1552|hazeltine 1552,
- OTbs,
- cud1=^J, dl1=\EO, il1=\EE, kf1=\EP, kf2=\EQ, kf3=\ER, lf1=blue,
- lf2=red, lf3=green, use=vt52,
-hz1552-rv|hazeltine 1552 reverse video,
- cud1=^J, rmso=\ET, smso=\ES, use=hz1552,
-# Note: h2000 won't work well because of a clash between upper case and ~'s.
-hz2000|hazeltine 2000,
- OTbs, OTnc, am,
- cols#74, lines#27,
- bel=^G, clear=~\034$<6>, cub1=^H, cud1=^J,
- cup=~\021%p2%c%p1%c, dl1=~\023$<6>, home=~^R,
- il1=~\032$<6>, ind=^J, pad=\177,
-# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote:
-# I tested this termcap entry for the Hazeltine Esprit with vi. It seems
-# to work ok. There is one problem though if one types a lot of garbage
-# characters very fast vi seems not able to keep up and hangs while trying
-# to insert. That's in insert mode while trying to insert in the middle of
-# a line. It might be because the Esprit doesn't have insert char and delete
-# char as a built in function. Vi has to delete to end of line and then
-# redraw the rest of the line.
-esprit|Hazeltine Esprit I,
- OTbs, am, bw,
- cols#80, lines#24,
- bel=^G, cbt=\E^T, clear=\E^\, cr=^M, cub1=^H, cud1=\E^K,
- cuf1=^P, cup=\E\021%p2%c%p1%c, cuu1=\E^L, dl1=\E^S,
- ed=\E^W, el=\E^O, home=\E^R, il1=\E^Z, ind=^J, is2=\E?, kbs=^H,
- kcub1=^H, kcud1=\E^K, kcuf1=^P, kcuu1=\E^L, kf0=^B0^J,
- kf1=^B1^J, kf2=^B2^J, kf3=^B3^J, kf4=^B4^J, kf5=^B5^J,
- kf6=^B6^J, kf7=^B7^J, kf8=^B8^J, kf9=^B9^J, khome=\E^R,
- lf0=0, lf1=1, lf2=2, lf3=3, lf4=4, lf5=5, lf6=6, lf7=7, lf8=8, lf9=9,
- rmkx=\E>, rmso=\E^Y, smkx=\E<, smso=\E^_,
-esprit-am|hazeltine esprit auto-margin,
- am, use=esprit,
-# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
-# Vi it seems always wants to send a control J for "do" and it turned out
-# that the terminal would work somewhat if the auto LF/CR was turned off.
-# (hmod1: removed :dn=~^K: -- esr)
-hmod1|Hazeltine Modular 1,
- OTbs, am, hz,
- cols#80, lines#24,
- bel=^G, cbt=~^T, clear=~^\, cr=^M, cub1=^H, cud1=~^K, cuf1=^P,
- cup=~\021%p2%c%p1%c, cuu1=~^L, dl1=~^S, home=~^R, il1=~^Z,
- ind=^J, kcub1=^H, kcud1=~^K, kcuf1=^P, kcuu1=~^L, khome=~^R,
- rc=~^Q, rmso=~^Y, sc=~^E, sgr0=~^Y, smso=~^_,
-#
-# Hazeltine Executive 80 Model 30 (1554?)
-# from Will Martin <control@ALMSA-1.ARPA> via BRL
-# Like VT100, except for different "am" behavior.
-hazel|exec80|h80|he80|Hazeltine Executive 80,
- OTbs, OTpt, am,
- cols#80, it#8, lines#24, vt#3,
- OTnl=^J, bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H, ht=^I,
- is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
- rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
- rmkx=\E[?1l\E>, rmso=\E[m$<2/>, rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smkx=\E[?1h\E=, smso=\E[7m$<2/>,
- smul=\E[4m$<2/>,
-
-#### IBM
-#
-
-ibm327x|line mode IBM 3270 style,
- gn,
- clear=^M^J, el=^M, home=^M,
-
-ibm3101|i3101|IBM 3101-10,
- OTbs, am, xon,
- cols#80, lines#24,
- bel=^G, clear=\EK, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EI, home=\EH, hts=\E0, ind=^J, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, nel=^M^J, tbc=\EH,
-ibm3151|IBM 3151 display,
- is2=\E S, rmacs=\E>B, rmcup=\E>B, rs2=\E S, s0ds=\E>B,
- sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;,
- sgr0=\E4@\E>B, smacs=\E>A, smcup=\E>B, use=ibm3162,
-# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
-# removed kend, knp, kpp -TD
-ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display,
- OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370,
- bel=^G, blink=\E4D, bold=\E4H, clear=\EH\EJ, cr=^M, cub1=\ED,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH, ind=^J,
- invis=\E4P, kbs=^H, kcbt=\E2, kclr=\EL\r, kctab=\E1,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\EQ,
- kdl1=\EO, ked=\EJ, kel=\EI, kf1=\Ea\r, kf10=\Ej\r,
- kf11=\Ek\r, kf12=\El\r, kf13=\E!a\r, kf14=\E!b\r,
- kf15=\E!c\r, kf16=\E!d\r, kf17=\E!e\r, kf18=\E!f\r,
- kf19=\E!g\r, kf2=\Eb\r, kf20=\E!h\r, kf21=\E!i\r,
- kf22=\E!j\r, kf23=\E!k\r, kf24=\E!l\r, kf3=\Ec\r,
- kf4=\Ed\r, kf5=\Ee\r, kf6=\Ef\r, kf7=\Eg\r, kf8=\Eh\r,
- kf9=\Ei\r, khome=\EH, khts=\E0, kich1=\EP \010, kil1=\EN,
- ktbc=\E 1, mc4=^P^T, mc5=^P^R, rev=\E4A, rmcup=\E>A,
- rmso=\E4@, rmul=\E4@,
- sgr=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;,
- sgr0=\E4@\E<@, smcup=\E>A, smso=\E4A, smul=\E4B,
-
-ibm3161-C|IBM 3161-C NLS terminal using cartridge,
- rmcup=\E>B, s0ds=\E>B, s1ds=\E>A, smcup=\E>B, use=ibm3161,
-ibm3162|IBM 3162 display,
- blink=\E4$a, bold=\E4(a, il1=\EN, invis=\E40a, rev=\E4!a,
- rmso=\E4>b, rmul=\E4=b, sgr0=\E4@, smso=\E4!a, smul=\E4"a,
- use=ibm3161-C,
-
-# This really should not use setab/setaf, but it is clear that the
-# original terminfo does not toggle red/blue colors as in setb/setf.
-ibm3164|i3164|IBM 3164,
- msgr,
- colors#8, pairs#64,
- op=\E4 "@, rmcup=\E!9(N\E>B, s0ds=\E>B, s1ds=\E>A,
- setab=\E4 %p1%{64}%+%c,
- setaf=\E4%?%p1%t %p1%{32}%+%c%e!'%;@,
- smcup=\E!9/N\E>B, use=ibm3161,
-
-ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display,
- am, bw, msgr, xon,
- cols#80, it#8, lines#25,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H,
- hpa=\E[%i%p1%dG, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, invis=\E[8m, is2=\Ec, kbs=^H, kcbt=\E[Z,
- kclr=\E[144q, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\E[P, ked=\E[148q, kel=\E[142q,
- kend=\E[146q, kf1=\E[001q, kf10=\E[010q, kf11=\E[011q,
- kf12=\E[012q, kf13=\E[013q, kf14=\E[014q, kf15=\E[015q,
- kf16=\E[016q, kf17=\E[017q, kf18=\E[018q, kf19=\E[019q,
- kf2=\E[002q, kf20=\E[020q, kf21=\E[021q, kf22=\E[022q,
- kf23=\E[023q, kf24=\E[024q, kf25=\E[025q, kf26=\E[026q,
- kf27=\E[027q, kf28=\E[028q, kf29=\E[029q, kf3=\E[003q,
- kf30=\E[030q, kf31=\E[031q, kf32=\E[032q, kf33=\E[033q,
- kf34=\E[034q, kf35=\E[035q, kf36=\E[036q, kf4=\E[004q,
- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
- kf9=\E[009q, khome=\E[H, kich1=\E[139q, kil1=\E[140q,
- kind=\E[151q, knp=\E[154q, kpp=\E[150q, kri=\E[155q,
- krmir=\E[4l, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmir=\E[4l,
- rmso=\E[m, rmul=\E[m, rs2=\Ec,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
- sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-
-ibmaed|IBM Experimental display,
- OTbs, am, eo, msgr,
- cols#80, it#8, lines#52,
- clear=\EH\EK, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
- dl1=\EO, ed=\EJ, el=\EI, flash=\EG, home=\EH, ht=^I, ich1=\EP,
- il1=\EN, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- rmso=\E0, sgr0=\E0, smso=\E0,
-ibm-apl|apl|IBM apl terminal simulator,
- lines#25, use=dm1520,
-# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
-# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
-ibmmono|IBM workstation monochrome,
- eslok, hs,
- bold=\EZ, dl1=\EM, dsl=\Ej\EY8 \EI\Ek, fsl=\Ek, il1=\EL,
- invis=\EF\Ef0;\Eb0;, kbs=^H, kf0=\E<, kf1=\ES, kf2=\ET,
- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\EY,
- khome=\EH, kich1=\0, kind=\EE, knp=\EE, kpp=\Eg, kri=\EG,
- lf0=f10, rev=\Ep, ri=\EA, rmso=\Ez, rmul=\Ew,
- sgr0=\Ew\Eq\Ez\EB, smso=\EZ, smul=\EW, tsl=\Ej\EY8%+ \Eo,
- use=ibm3101,
-ibmega|IBM Enhanced Color Display,
- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
- nel=^M^J, use=ibmmono,
-# This color scheme is assumed in some recent IBM terminal descriptions
-# (green on black, emulated on a 16-color terminal).
-ibm+color|IBM color definitions,
- colors#8, ncv#3, pairs#64,
- op=\E[32m\E[40m,
- setb=\E[%?%p1%{0}%=%t40m%e%p1%{1}%=%t41m%e%p1%{2}%=%t42m%e%p1%{3}%=%t43m%e%p1%{4}%=%t44m%e%p1%{5}%=%t45m%e%p1%{6}%=%t46m%e%p1%{7}%=%t107m%;,
- setf=\E[%?%p1%{0}%=%t30m%e%p1%{1}%=%t31m%e%p1%{2}%=%t32m%e%p1%{3}%=%t33m%e%p1%{4}%=%t34m%e%p1%{5}%=%t35m%e%p1%{6}%=%t36m%e%p1%{7}%=%t97m%;,
-ibm+16color|IBM aixterm color definitions,
- colors#16, pairs#256,
- setab=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm,
- setaf=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm,
- setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
- setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m,
-ibm5154|IBM 5154 Color display,
- colors#8, ncv@, pairs#64,
- bold@, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
- use=ibm+color,
-ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline,
- rmso=\EB, rmul=\EB, smso=\EF\Ef3;, smul=\EF\Ef2;,
- use=ibmmono,
-ibmvga-c|IBM VGA display color termcap,
- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
- nel=^M^J, use=ibmega-c,
-ibmvga|IBM VGA display,
- cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J,
- nel=^M^J, use=ibmega,
-# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
-rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display,
- lines#32,
- dsl=\Ej\EY@ \EI\Ek, tsl=\Ej\EY@%+ \Eo, use=ibmmono,
-ibm6155|IBM 6155 Black & White display,
- blink@, bold@, use=ibm5151,
-# Advanced Monochrome (6153) and Color (6154) Graphics Display:
-ibmapa8c|ibmapa8|IBM 6154 Advanced Graphics Display,
- lines#31,
- dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo, use=ibmmono,
-ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display,
- lines#31,
- dim=\EF\Ef7;, dsl=\Ej\EY? \EI\Ek, tsl=\Ej\EY?%+ \Eo,
- use=ibmega-c,
-ibm6154|IBM 6154 Color displays,
- blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
- sgr0=\E[0;10m, use=ibm5154,
-ibm6153|IBM 6153 Black & White display,
- blink@, bold=\E[12m, s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m,
- sgr0=\E[0;10m, use=ibm5151,
-ibm6153-90|IBM 6153 Black & White display,
- cols#90, lines#36,
- blink@, bold@, use=ibm5151,
-ibm6153-40|IBM 6153 Black & White display,
- cols#40, lines#12, use=ibm6153-90,
-ibm8512|ibm8513|IBM color VGA Terminal,
- am, mir, msgr,
- cols#80, it#8, lines#25,
- acsc=jjkkllmmnnqqttuuvvwwxx, blink=\E[5m, bold=\E[1m,
- clear=\E[H\E[J, cub1=\E[D, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, il=\E[%p1%dL,
- il1=\E[L, is2=\Eb\E[m\017\E[?7h, kcud1=\E[B, kcuu1=\E[A,
- kf0=\E[010q, kf1=\E[001q, kf2=\E[002q, kf3=\E[003q,
- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
- kf8=\E[008q, kf9=\E[009q, khome=\E[H, rc=\E[u, rev=\E[7m,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[20h, rmdc=\E[4l,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m,
- rs1=\Eb\E[m\017\E[?7h\E[H\E[J, sc=\E[s, sgr0=\E[m,
- smacs=^N, smam=\E[?7h, smcup=\E[20;4l\E[?7h\Eb,
- smdc=\E[4h, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- use=ibm8503,
-hft-c|HFT with Color,
- colors#8, pairs#64,
- acsc=jjkkllmmnnqqttuuvvwwxx, s0ds=\E(B, s1ds=\E(0,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[0m\E(B,
- use=ibm5151, use=ibm+color,
-hft-c-old|HFT with Color PC850,
- colors#8, pairs#64,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=ibm5151,
- use=ibm+color,
-hft-old|AIWS High Function Terminal,
- am, xon,
- cols#80, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- ht=^I, ich1=\E[@, il1=\E[L, ind=^J, invis=\E[8m, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\E[001q, kf2=\E[002q, kf3=\E[003q, kf4=\E[004q,
- kf5=\E[005q, kf6=\E[006q, kf7=\E[007q, kf8=\E[008q,
- kf9=\E[009q, khome=\E[H, knp=\E[153q, kpp=\E[159q,
- ktbc=\E[010q, rev=\E[7m, rmir=\E6, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smir=\E6, smso=\E[7m, smul=\E[4m, use=ibm+color,
-ibm-system1|system1|ibm system/1 computer,
- am, xt,
- cols#80, lines#24,
- bel=^G, clear=^Z, cub1=^H, cuf1=^\,
- cup=\005%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, home=^K,
- ind=^J,
-# lft-pc850 : IBM Low Function Terminal Device
-# lft "supports" underline, bold, and blink in the sense that the lft code
-# sets all the right bits. HOWEVER, depending upon the adapter, these
-# attributes may or may not be supported by the device driver.
-lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device,
- am, bw, msgr, xon,
- cols#80, it#8, lines#25,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[2J, el=\E[0K,
- home=\E[H, hpa=\E[%i%p1%dG, ich=\E[%p1%d@, il=\E[%p1%dL,
- il1=\E[L, ind=\ED, indn=\E[%p1%dS, invis=\E[8m, is2=\Ec,
- kbs=^H, kcbt=\E[Z, kclr=\E[144q, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, ked=\E[148q,
- kel=\E[142q, kend=\E[146q, kf1=\E[001q, kf10=\E[010q,
- kf11=\E[011q, kf12=\E[012q, kf13=\E[013q, kf14=\E[014q,
- kf15=\E[015q, kf16=\E[016q, kf17=\E[017q, kf18=\E[018q,
- kf19=\E[019q, kf2=\E[002q, kf20=\E[020q, kf21=\E[021q,
- kf22=\E[022q, kf23=\E[023q, kf24=\E[024q, kf25=\E[025q,
- kf26=\E[026q, kf27=\E[027q, kf28=\E[028q, kf29=\E[029q,
- kf3=\E[003q, kf30=\E[030q, kf31=\E[031q, kf32=\E[032q,
- kf33=\E[033q, kf34=\E[034q, kf35=\E[035q, kf36=\E[036q,
- kf4=\E[004q, kf5=\E[005q, kf6=\E[006q, kf7=\E[007q,
- kf8=\E[008q, kf9=\E[009q, khome=\E[H, kich1=\E[139q,
- kil1=\E[140q, kind=\E[151q, knp=\E[154q, kpp=\E[150q,
- kri=\E[155q, krmir=\E[4l, rev=\E[7m, ri=\EL, rin=\E[%p1%dT,
- rmacs=\E(B, rmir=\E[4l, rmso=\E[0m, rmul=\E[0m, rs2=\Ec,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m, smacs=\E(0, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g,
-ibm5081|hft|IBM Megapel Color display,
- acsc=jjkkllmmnnqqttuuvvwwxx, blink@, bold@, s0ds=\E(B,
- s1ds=\E(0, sgr0=\E[0m\E(B, use=ibm5154,
-ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display,
- eslok, hs,
- lines#33,
- dsl=\Ej\EYA \EI\Ek, fsl=\Ek, tsl=\Ej\EYA%+ \Eo,
- use=ibmega-c,
-ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display,
- use=hft-c,
-ibm8514|IBM 8514/a color VGA display,
- eslok, hs,
- dsl=\Ej\EYI \EI\Ek, fsl=\Ek, tsl=\Ej\EYI%+ \Eo, use=hft,
-ibm8514-c|IBM 8514 color display with standout and underline,
- eslok, hs,
- lines#41,
- cr=^M, cud1=^J, dsl=\Ej\EYI \EI\Ek, fsl=\Ek, ht=^I, ind=^J,
- kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, tsl=\Ej\EYI%+ \Eo,
- use=ibmega-c,
-
-#
-# AIX entries. IBM ships these with AIX 3.2.5.
-# -- added rc, sc based on manpage -TD
-# Note that we could use ibm+16color, but that is not how IBM defines this one.
-aixterm|IBM Aixterm Terminal Emulator,
- eslok, hs,
- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
- fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154,
-aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
- eslok, hs,
- acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
- fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153,
-aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator,
- eslok, hs,
- bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- tsl=\E[?%p1%dT, use=ibm6153,
-jaixterm|IBM Kanji Aixterm Terminal Eemulator,
- acsc@, use=aixterm,
-jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
- acsc@, use=aixterm-m,
-
-#### Infoton/General Terminal Corp.
-#
-
-# gt100 sounds like something DEC would come out with. Let's hope they don't.
-i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100),
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\Ef%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dl1=\EM,
- ed=\EJ, el=\EK, flash=\Eb$<200/>\Ea, home=\EH, il1=\EL,
- ind=^J, rmso=\Ea, smso=\Eb,
-i400|infoton 400,
- OTbs, am,
- cols#80, lines#25,
- bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=%i\E[%p1%3d;%p2%3dH, cuu1=\E[A,
- dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
- il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
-# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
-addrinfo,
- am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y,
- cup=\037%p1%{1}%-%c%p2%{1}%-%c, cuu1=^\, ed=^K, home=^H,
- ind=^J, ll=^H^\,
-# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
-infoton,
- am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y, cuu1=^\,
- ed=^K, ind=^J, ll=^H^\,
-
-# The ICL6402 was actually the Kokusai Display System 6402.
-# The 6404 was the KDS7372 (color version of the 6402).
-#
-# ICL6404 control codes follow:
-#
-#code function
-#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#ctrl-A set SOM position at cursor position
-#ctrl-G Bell
-#ctrl-H Backspace
-#ctrl-I Horiz tab
-#ctrl-J Linefeed
-#ctrl-K Cursor up
-#ctrl-L Cursor right
-#ctrl-M Carriage return
-#ctrl-N Disable xon/xoff to host
-#ctrl-O Enable xon/xoff to host
-#ctrl-R Enable bidirectional mode
-#ctrl-T Disable bidirectional mode
-#ctrl-V Cursor down
-#ctrl-Z Clear unprotected data to insert char
-#ctrl-^ Cursor home
-#ctrl-_ Newline
-#
-#ESC lead-in char for multiple character command
-#
-#ESC space R execute power on sequence
-#ESC ! p1 p2 define scroll region:
-# p1 = scroll top line: 20h - 37h
-# p1 = scroll bottom line: 20h - 37h
-#ESC " unlock keyboard
-#ESC # lock keyboard
-#ESC $ Semi-graphics mode on
-#ESC % Semi-graphics mode off
-#ESC & protect mode on
-#ESC ' protect mode off
-#ESC ( write protect mode off (full intensity)
-#ESC ) write protect mode on (half intensity)
-#
-#ESC * clear screen
-#ESC + clear unprotected data to insert char
-#ESC , clear unprotected data to half intensity spaces
-#ESC - p1 p2 p3 p4 address cursor to page, row, column:
-# p1 = page number 0 - 3
-# p2 = row 20h - 7fh
-# p3 = column (lo) 20h - 7fh
-# p4 = column (hi) 20h - 21h (only 132 col)
-#ESC . p1 set cursor style:
-# p1 = 0 invisible cursor
-# p1 = 1 block blinking cursor
-# p1 = 2 block steady cursor
-# p1 = 3 underline blinking cursor
-# p1 = 4 underline steady cursor
-#ESC / transmit cursor location (page, row, column)
-#ESC 0 p1 p2 p3 p4 program edit key:
-# p1 = edit key code: '@'-'S', '`'-'s'
-# p2 p3 p4 = program data (3 bytes)
-#
-#ESC 1 set tab
-#ESC 2 clear tab at cursor
-#ESC 3 clear all tabs
-#ESC 4 send unprotect line to cursor
-#ESC 5 send unprotect page to cursor
-#ESC 6 send line to cursor
-#ESC 7 send page to cursor
-#ESC 8 n set scroll mode:
-# n = 0 set jump scroll
-# n = 1 set smooth scroll
-#ESC 9 n control display:
-# n = 0 display off
-# n = 1 display on
-#ESC : clear unprotected data to null
-#ESC ; clear unprotected data to insert char
-#
-#ESC < keyclick on
-#ESC = p1 p2 address cursor to row, column
-# p1 = row 20h - 7fh
-# p2 = column (lo) 20h - 7fh
-# p3 = column (hi) 20h - 21h (only 132 col)
-#ESC > keyclick off
-#ESC ? transmit cursor location (row, column)
-#
-#ESC @ copy print mode on
-#ESC A copy print mode off
-#ESC B block mode on
-#ESC C block mode off (conversation mode)
-#ESC D F set full duplex
-#ESC D H set half duplex
-#ESC E line insert
-#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd)
-# 0 = black, 1 = red, 2 = green, 3 = yellow
-# 4 = blue, 5 = magenta, 6 = cyan, 7 = white
-#ESC G n set serial field attribute (n = 30h - 3Fh)
-#ESC H n full graphics mode:
-# n = 0 exit full graphics mode
-# n = 1 enter full graphics mode
-#ESC I back tab
-#ESC J back page
-#ESC K forward page
-#
-#ESC L unformatted page print
-#ESC M L move window left (132 col mode only)
-#ESC M R move window right (132 col mode only)
-#ESC N set page edit (clear line edit)
-#ESC O set line edit (clear page edit)
-#ESC P formatted page print
-#ESC Q character insert
-#ESC R line delete
-#ESC S send message unprotected only
-#ESC T erase line to insert char
-#ESC U set monitor mode (see ESC X, ESC u)
-#
-#ESC V n select video attribute mode:
-# n = 0 serial field attribute mode
-# n = 1 parallel character attribute mode
-#ESC V 2 n define line attribute:
-# n = 0 single width single height
-# n = 1 single width double height
-# n = 2 double width single height
-# n = 3 double width double height
-#ESC V 3 n select character font:
-# n = 0 system font
-# n = 1 user defined font
-#ESC V 4 n select screen mode:
-# n = 0 page screen mode
-# n = 1 virtual screen mode
-#ESC V 5 n control mouse mode:
-# n = 0 disable mouse
-# n = 1 enable sample mode
-# n = 2 send mouse information
-# n = 3 enable request mode
-#ESC W character delete
-#ESC X clear monitor mode (see ESC U, ESC u)
-#ESC Y erase page to insert char
-#
-#ESC Z n send user/status line:
-# n = 0 send user line
-# n = 1 send status line
-# n = 2 send terminal ID
-#ESC [ p1 p2 p3 set character attribute (parallel char mode):
-# p1: 0 = normal
-# 1 = blank
-# 2 = blink
-# 3 = blink blank (= blank)
-# 4 = reverse
-# 5 = reverse blank
-# 6 = reverse blink
-# 7 = reverse blink blank (= reverse blank)
-# 8 = underline
-# 9 = underline blank
-# : = underline blink
-# ; = underline blink blank
-# < = reverse underline
-# = = reverse underline blank
-# > = reverse underline blink
-# ? = reverse underline blink blank
-# p2, p3: f/grnd, b/grnd colour
-# (see ESC F for colours)
-# use ZZ for mono, eg.
-# ESC [ 0 Z Z for normal
-# ESC [ 4 Z Z for inverse etc.
-#
-#ESC \ n set page size:
-# n = 1 24 lines/page
-# n = 2 48 lines/page
-# n = 3 72 lines/page
-# n = 4 96 lines/page
-#ESC ] n set Wordstar mode:
-# n = 0 normal (KDS7372) mode
-# n = 1 Wordstar mode
-#
-#ESC b set foreground colour screen
-#
-#ESC c n enter self-test mode:
-# n = 0 exit self test mode
-# n = 1 ROM test
-# n = 2 RAM test
-# n = 3 NVRAM test
-# n = 4 screen display test
-# n = 5 main/printer port test
-# n = 6 mouse port test
-# n = 7 graphics board test
-# n = 8 graphics memory test
-# n = 9 display all 'E'
-# n = : display all 'H'
-#ESC d set background colour screen
-#
-#ESC e n program insert char (n = insert char)
-#ESC f text CR load user status line with 'text'
-#
-#ESC g display user status line on 25th line
-#ESC h display system status line on 25th line
-#ESC i tab
-#ESC j reverse linefeed
-#ESC k n duplex/local edit mode:
-# n = 0 duplex edit mode
-# n = 1 local edit mode
-#ESC l n select virtual screen:
-# n = 0 screen 1
-# n = 1 screen 2
-#ESC m save current config to NVRAM
-#ESC n p1 select display screen:
-# p1 = 0 screen 1
-# p1 = 1 screen 2
-# p1 = 2 screen 3
-# p1 = 3 screen 4
-#ESC o p1 p2 set characters/line and attribute:
-# p1 = 0 80 chars/line
-#
-#ESC o p1 p2 set characters/line and attribute:
-# p1 = 0 80 chars/line
-# p1 = 1 132 chars/line
-# p2 = 0 single width single height
-# p2 = 1 single width double height
-# p2 = 2 double width single height
-# p2 = 3 double width double height
-#
-#ESC q insert mode on
-#ESC r edit mode on
-#ESC s send message all
-#ESC t erase line to null
-#ESC u clear monitor mode (see ESC U, ESC X)
-#ESC v autopage mode on
-#ESC w autopage mode off
-#ESC x p1 p2 p3 define delimiter code...
-#ESC y erase page to null
-#
-#ESC z 2 p1 p2 p3 p4 draw quadrangle:
-# p1 = starting row
-# p2 = starting column
-# p3 = end row
-# p4 = end column
-#
-#ESC { p1 p2 p3 p4 configure main port
-# (baud, stop bits, parity, word length)
-#
-#ESC | p1 p2 text Ctrl-Y program function key with 'text':
-# p1 = function key code:
-# '1' - ';' normal f1- f11
-# '<' - 'F' shifted f1 - f11
-# p2 = program mode:
-# 1 = FDX
-# 2 = LOC
-# 3 = HDX
-# Ctrl-Y = terminator
-# (use Ctrl-P to escape ^P, ^Y )
-#
-#ESC } p1 p2 p3 p4 configure printer port
-# (baud, stop bits, parity, word length)
-#ESC ~ send system status
-#
-# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
-#
-# Entry is by esr going solely on above information and is UNTESTED.
-# This actually looks a lot like a Televideo 9xx.
-# This entry uses page 0 and is monochrome; I'm not brave enough to try
-# to make color work without a test terminal. The <am> capability is a guess.
-# The initialization string sets conversation mode, blinking underline cursor,
-# full duplex, parallel attribute mode, display user status line, white
-# foreground, black background, normal highlight.
-#
-icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372,
- OTbs, am, hs,
- cols#80, lines#24,
- bel=^G, blink=\E[2ZZ, cbt=\EI, civis=\E.0, clear=\E*,
- cnorm=\E.3, cr=^M,
- csr=\E!%+%p1%{32}%+%p2%{32} cud1=\026, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{80}%m%{32}%+%c%p2%{80}%>%{32}%+%c,
- cuu1=^K, cvvis=\E.1, dch1=\EW, dl1=\ER, home=^^, ht=^I,
- hts=\E1, il1=\EE, invis=\E[1ZZ,
- is1=\EC\E.3\EDF\EV1\Eg\E[0ZZ, nel=^_, rev=\E[4ZZ,
- rmir=\Er, rmso=\E[%gh%{4}%^%Ph%gh%dZZ,
- rmul=\E[%gh%{8}%^%Ph%gh%dZZ, rs2=\Eo1,
- sgr=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ,
- sgr0=\E[0ZZ, smir=\Eq, smso=\E[8ZZ, smul=\E[8ZZ, tbc=\E3,
-icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols,
- rs2=\Eo1, use=icl6404,
-
-#### Interactive Systems Corp
-#
-# ISC used to sell OEMed and customized hardware to support ISC UNIX.
-# ISC UNIX still exists in 1995, but ISC itself is no more; they got
-# bought out by Sun.
-#
-
-# From: <cithep!eric> Wed Sep 16 08:06:44 1981
-# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the
-# ":le=^_:" later overridden -- esr)
-intext|Interactive Systems Corporation modified owl 1200,
- OTbs, am,
- cols#80, it#8, lines#24, xmc#1,
- bel=^G, cbt=^Y, clear=\014$<132>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^^, cup=\017%p1%{32}%+%c%p2%{32}%+%c, cuu1=^\,
- dch1=\022$<5.5*>, dl1=\021$<5.5*>, ed=\026J$<5.5*>,
- el=^Kp^R, ht=^I, il1=\020$<5.5*>, ind=^J, ip=$<5.5*>, kbs=^H,
- kcub1=^_, kcud1=^J, kcuf1=^^, kcuu1=^\, kf0=^VJ\r, kf1=^VA\r,
- kf2=^VB\r, kf3=^VC\r, kf4=^VD\r, kf5=^VE\r, kf6=^VF\r,
- kf7=^VG\r, kf8=^VH\r, kf9=^VI\r, khome=^Z, rmir=^V<,
- rmkx=^V9, rmso=^V#\s, smir=^V;, smkx=\036\:\264\026%%,
- smso=^V$\,,
-intext2|intextii|INTERACTIVE modified owl 1251,
- am, bw, ul,
- cols#80, lines#24, xmc#0,
- bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J, el=\E[K,
- flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
- hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
- kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
- kf0=\E@\r, kf1=\EP\r, kf2=\EQ\r, kf3=\ES\r, kf4=\ET\r,
- kf5=\EU\r, kf6=\EV\r, kf7=\EW\r, kf8=\EX\r, kf9=\EY\r,
- khome=\ER\r, lf0=REFRSH, lf1=DEL CH, lf2=TABSET, lf3=GOTO,
- lf4=+PAGE, lf5=+SRCH, lf6=-PAGE, lf7=-SRCH, lf8=LEFT,
- lf9=RIGHT, ri=\E[T, rmso=\E[2 D, rmul=\E[2 D, smso=\E[6 D,
- smul=\E[18 D,
-
-#### Kimtron (abm, kt)
-#
-# Kimtron seems to be history, but as March 1998 these people are still
-# offering repair services for Kimtron equipment:
-#
-# Com/Pair Monitor Service
-# 1105 N. Cliff Ave.
-# Sioux Falls, South Dakota 57103
-#
-# WATS voice: 1-800/398-4946
-# POTS fax: +1 605/338-8709
-# POTS voice: +1 605/338-9650
-# Email: <compair@sd.cybernex.net>
-# Internet/Web: <http://www.com-pair.com>
-#
-# Kimtron entries include (undocumented) codes for: enter dim mode,
-# enter bold mode, enter reverse mode, turn off all attributes.
-#
-
-# Kimtron ABM 85 added by Dual Systems
-# (abm85: removed duplicated ":kd=^J:" -- esr)
-abm85|Kimtron ABM 85,
- OTbs, am, bw, msgr,
- cols#80, it#8, lines#24, xmc#1,
- cbt=\EI, clear=\E*, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\Ey, el=\Et, ht=^I,
- if=/usr/share/tabset/stdcrt, il1=\EE,
- is2=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq, kbs=^H, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, rmir=\Er, rmso=\Ek,
- rmul=\Em, smir=\EQ, smso=\Ej, smul=\El,
-# Kimtron ABM 85H added by Dual Systems.
-# Some notes about the abm85h entries:
-# 1) there are several firmware revs of 85H in the world. Use abm85h-old for
-# firmware revs prior to SP51
-# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the
-# abm85e entry if it is in tvi920 emulation mode. They are incompatible
-# in some places and NOT software settable i.e., <is2> can't fix it)
-# 3) In 85h mode, the arrow keys and special functions transmit when
-# the terminal is in dup-edit, and work only locally in local-edit.
-# Vi won't swallow `del char' for instance, but <smcup> turns on
-# dup-edit anyway so that the arrow keys will work right. If the
-# arrow keys don't work the way you like, change <smcup>, <rmcup>, and
-# <is2>. Note that 920E mode does not have software commands to toggle
-# between dup and local edit, so you get whatever was set last on the
-# terminal.
-# 4) <flash> attribute is nice, but seems too slow to work correctly
-# (\Eb<pad>\Ed)
-# 5) Make sure `hidden' attributes are selected. If `embedded' attributes
-# are selected, the <xmc@> entry should be removed.
-# 6) auto new-line should be on (selectable from setup mode only)
-#
-# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985
-abm85h|Kimtron ABM 85H native mode,
- hs,
- xmc@,
- bel=^G, cnorm=\E.4, cvvis=\E.2, dim=\E), dsl=\Ee, flash@,
- fsl=^M, invis@,
- is2=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El,
- kcud1=^V, sgr0=\E(\EG0, smir=\EZ, tsl=\Eg\Ef, use=adm+sgr,
- use=abm85,
-abm85e|Kimtron ABM 85H in 920E mode,
- xmc@,
- bel=^G, dim=\E), flash@,
- is2=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em,
- rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
-abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.,
- xmc@,
- bel=^G, dim=\E),
- is2=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF,
- rev=\Ej, sgr0=\E(\Ek, smir=\EZ, use=abm85,
-# From: <malman@bbn-vax.arpa>
-# (kt7: removed obsolete :ma=^V^J^L :" -- esr)
-kt7|kimtron model kt-7,
- OTbs, am,
- cols#80, it#8, lines#24,
- cbt=\EI, clear=^Z, cub1=^H, cud1=^V, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, fsl=\Eg, home=^^, ht=^I, ich1=\EQ,
- if=/usr/share/tabset/stdcrt, il1=\EE, invis@, is2=\El\E",
- kbs=^H, kcbt=\EI, kclr=^Z, kcub1=^H, kcud1=^V, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r,
- kf1=^A@\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, tsl=\Ef, use=adm+sgr,
-# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the
-# other kt7 entry and the adjacent key capabilities). Removed EE which is
-# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight
-# but we can't figure out what.
-kt7ix|kimtron model kt-7 or 70 in IX mode,
- am, bw,
- cols#80, it#8, lines#25,
- acsc=jYk?lZm@nEqDt4uCvAwBx3, bel=^G, blink=\EG2, cbt=\EI,
- civis=\E.0, clear=\E*, cnorm=\E.3, cr=^M, cub1=^H, cud1=^V,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET, fsl=^M,
- home=^^, ht=^I, ich1=\EQ, il1=\EE, ind=^J,
- is2=\EG0\E s\017\E~, kbs=^H, kcbt=\EI, kclr=\E*,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdl1=\ER,
- ked=\EY, kel=\ET, kend=\EY, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\EQ, kil1=\EE, knp=\EJ,
- nel=^M^J, pulse=\EK, rmacs=\E%%, rmir=, rmso=\EG0, rmul=\EG0,
- sgr0=\EG0, smacs=\E$, smir=, smso=\EG4, smul=\EG8, tsl=\Ef,
-
-#### Microdata/MDIS
-#
-# This was a line of terminals made by McDonnell-Douglas Information Systems.
-# These entries come direct from MDIS documentation. I have edited them only
-# to move primary names of the form p[0-9] * to aliases, and to comment out
-# <rmacs>/<smacs> in a couple of entries without <acsc> strings. I have
-# also removed the change history; the last version indicates this is
-# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
-#
-
-# McDonnell Information Systems Terminal Family History
-# =========================================
-#
-# Prism-1, Prism-2 and P99:
-# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
-#
-# Prism-4 and Prism-5:
-# Slightly less ancient range of Microdata terminals. Follow-on from
-# Prism-2, but with many enhancements. P5 has eight display pages.
-#
-# Prism-6:
-# A special terminal for use with library systems, primarily in Germany.
-# Limited numbers. Similar functionality to P5 (except attributes?).
-#
-# Prism-7, Prism-8 and Prism-9:
-# More recent range of MDIS terminals, in which P7 and P8
-# replace the P4 & P5, with added functionality, and P9 is the flagship.
-# The P9 has two emulation modes - P8 and ANSI - and includes a
-# large number of the DEC VT220 control sequences. Both
-# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats.
-#
-# Prism-12 and Prism-14:
-# Latest range, functionally very similar to the P9. The P14 has a
-# black-on-white overscanning screen.
-#
-# The terminfo definitions given here are:
-#
-# p2 - Prism-2 (or Prism-1 or P99).
-#
-# p4 - Prism-4 (and older P7s & P8s).
-# p5 - Prism-5 (or Prism-6).
-#
-# p7 - Prism-7.
-# p8 - Prism-8 (in national or multinational mode).
-# p8-w - 132 column version of p8.
-# p9 - Prism-9 in ANSI mode.
-# p9-w - 132 column version of p9.
-# p9-8 - Prism-9 in Prism-8 emulation mode.
-# p9-8-w - As p9-8, but with 132 columns.
-#
-# p12 - Prism-12 in ANSI mode.
-# p12-w - 132 column version of p12.
-# p12-m - Prism-12 in MDC emulation mode.
-# p12-m-w - As p12-m, but with 132 columns.
-# p14 - Prism-14 in ANSI mode.
-# p14-w - 132 column version of p14.
-# p14-m - Prism-14 in MDC emulation mode.
-# p14-m-w - As p14-m, but with 132 columns.
-#
-# p2: Prism-2
-# -----------
-#
-# Includes Prism-1 and basic P99 without SP or MP loaded.
-# The simplest form of Prism-type terminal.
-# Basic cursor movement and clearing operations only.
-# No video attributes.
-# Notes:
-# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
-# value up, followed by backspace.
-#
-prism2|MDC Prism-2,
- am, bw, msgr,
- cols#80, lines#24,
- bel=^G, clear=\014$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
- cuu1=^Z, ed=\EJ, el=\EK, home=^A,
- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
- ind=^J, kbs=^H, khome=^A, vpa=\013%p1%{32}%+%c,
-
-# p4: Prism-4
-# -----------
-#
-# Includes early versions of P7 & P8.
-# Basic family definition for most Prisms (except P2 and P9 ANSI).
-# Notes:
-# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
-# value up, followed by backspace.
-# Cursor key definitions removed because they interfere with vi and csh keys.
-#
-prism4|p4|P4|MDC Prism-4,
- am, bw, hs, mc5i, msgr,
- cols#80, lines#24, wsl#72, xmc#1,
- bel=^G, blink=^CB, civis=^]\344, clear=\014$<20>,
- cnorm=^]\342, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
- cuu1=^Z, dim=^CA, dsl=\035\343\035\345, ed=\EJ, el=\EK,
- fsl=^]\345, home=^A,
- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c,
- ind=^J, invis=^CH, kbs=^H, khome=^A, mc0=\EU, mc4=\ET, mc5=\ER,
- rev=^CD, rmso=^C\s, rmul=^C\s,
- sgr=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;,
- sgr0=^C\s, smso=^CD, smul=^CP, tsl=^]\343,
- vpa=\013%p1%{32}%+%c,
-
-# p5: Prism-5
-# -----------
-#
-# Same definition as p4. Includes Prism-6 (not tested!).
-# Does not use any multi-page features.
-#
-prism5|p5|P5|MDC Prism-5,
- use=p4,
-
-# p7: Prism-7
-# -----------
-#
-# Similar definition to p4. Uses ANSI cursor motion to avoid network problems.
-# Notes:
-# Use p4 for very early models of P7.
-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
-#
-prism7|p7|P7|MDC Prism-7,
- cup=\E[%i%p1%d;%p2%dH, hpa@, vpa@, use=p4,
-
-# p8: Prism-8
-# -----------
-#
-# Similar definition to p7. Uses ANSI cursor motion to avoid network problems.
-# Supports national and multinational character sets.
-# Notes:
-# Alternate char set operations only work in multinational mode.
-# Use p4 for very early models of P8.
-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
-#
-prism8|p8|P8|MDC Prism-8,
- cup=\E[%i%p1%d;%p2%dH, hpa=\E[%i%p1%d`, is2=\E[<12h,
- vpa=\E[%i%p1%dd, use=p4,
-
-# p8-w: Prism-8 in 132 column mode
-# --------------------------------
-#
-# 'Wide' version of p8.
-# Notes:
-# Rev-index removed; can't send nulls to terminal in 8-bit modes.
-#
-prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode,
- cols#132,
- is2=\E[<12h\E[<14h, use=p8,
-
-# p9: Prism-9 in ANSI mode
-# -------------------------
-#
-# The "flagship" model of this generation of terminals.
-# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones.
-# Notes:
-# Tabs only reset by "reset". Otherwise assumes default (8 cols).
-# Fixes to deal with terminal firmware bugs:
-# . 'ri' uses insert-line since rev index doesn't always
-# . 'sgr0' has extra '0' since esc[m fails
-# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25
-# Not covered in the current definition:
-# . Labels
-# . Programming Fn keys
-# . Graphic characters (defaults correctly to vt100)
-# . Padding values (sets xon)
-# (esr: commented out <smacs>/<rmacs> because there's no <acsc>)
-#
-prism9|p9|P9|MDC Prism-9 in ANSII mode,
- am, bw, hs, mc5i, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#72,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[<4l,
- clear=^L, cnorm=\E[<4h, cr=^M, csr=\E[%i%p1%d;%p2%d%%v,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, dsl=\E[%}\024, ech=\E[%p1%dX,
- ed=\E[J$<10>, el=\E[K, fsl=^T, home=\E[H, hpa=\E[%i%p1%d`,
- ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is2=\E[&p\E[<12l\E F, kbs=^H, kclr=^L, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[11~,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
- kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
- kf18=\E[32~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~,
- kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
- khome=\E[H, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=^M^J,
- prot=\E[32%{, rc=\E[%z, rep=\E[%p2%db%p1%c, rev=\E[7m,
- ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
- sc=\E[%y,
- sgr=\E[%{0}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{2}%+%;%?%p4%t%{1}%+%;%?%p6%t%{8}%+%;%?%p8%t%{32}%+%;%d%%{%?%p9%t\016%e\017%;,
- sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
- tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
-
-# p9-w: Prism-9 in 132 column mode
-# --------------------------------
-#
-# 'Wide' version of p9.
-#
-prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode,
- cols#132,
- is2=\E[&p\E[<12l\E F\E[<14h,
- rs2=\E[&p\E[<12l\E F\E[<14h, use=p9,
-
-# p9-8: Prism-9 in P8 mode
-# ------------------------
-#
-# P9 terminal in P8 emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8,
-
-# p9-8-w: Prism-9 in P8 and 132 column modes
-# ------------------------------------------
-#
-# P9 terminal in P8 emulation mode and 132 column mode.
-#
-prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, use=p8-w,
-
-# p12: Prism-12 in ANSI mode
-# ---------------------------
-#
-# See p9 definition.
-#
-prism12|p12|P12|MDC Prism-12 in ANSI mode,
- use=p9,
-
-# p12-w: Prism-12 in 132 column mode
-# ----------------------------------
-#
-# 'Wide' version of p12.
-#
-prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode,
- use=p9-w,
-
-# p12-m: Prism-12 in MDC emulation mode
-# -------------------------------------
-#
-# P12 terminal in MDC emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode,
- use=p9-8,
-
-# p12-m-w: Prism-12 in MDC emulation and 132 column modes
-# -------------------------------------------------------
-#
-# P12 terminal in MDC emulation mode and 132 column mode.
-#
-prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode,
- use=p9-8-w,
-
-# p14: Prism-14 in ANSII mode
-# ---------------------------
-#
-# See p9 definition.
-#
-prism14|p14|P14|MDC Prism-14 in ANSII mode,
- use=p9,
-
-# p14-w: Prism-14 in 132 column mode
-# ----------------------------------
-#
-# 'Wide' version of p14.
-#
-prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode,
- use=p9-w,
-
-# p14-m: Prism-14 in MDC emulation mode
-# -------------------------------------
-#
-# P14 terminal in MDC emulation mode.
-# Similar to p8 definition.
-# Insertion and deletion operations possible.
-#
-prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode,
- use=p9-8,
-
-# p14-m-w: Prism-14 in MDC emulation and 132 column modes
-# -------------------------------------------------------
-#
-# P14 terminal in MDC emulation mode and 132 column mode.
-#
-prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode,
- use=p9-8-w,
-
-# End of McDonnell Information Systems Prism definitions
-
-# These things were popular in the Pick database community at one time
-# From: George Land <georgeland@aol.com> 24 Sep 1996
-p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition,
- am, bw, hs, mir,
- cols#80, lines#24, ma#1, wsl#78, xmc#1,
- bel=^G, blink=^CB, clear=^L, cr=^M, cub1=^U, cud1=^J, cuf1=^F,
- cup=\E[%i%p1%d;%p2%dH, cuu1=^Z, dch1=\s^H, dim=^CA, dl1=^P,
- ed=\EJ, el=\EK, home=^A, ind=^J, invis=^CH, kbs=^H, kcub1=^U,
- kcud1=^J, kcuf1=^F, kcuu1=^Z, kdch1=\s^H, kdl1=^P, ked=\EJ,
- kel=\EK, kf1=^A@\r, kf10=^AI\r, kf12=^AJ\r, kf13=^AK\r,
- kf14=^AL\r, kf15=^AM\r, kf16=^AN\r, kf17=^AO\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^A, lf1=F1, lf10=F10, lf2=F2,
- lf3=F3, lf4=F4, lf5=F5, lf6=F6, lf7=F7, lf8=F8, lf9=F9, nel=^J^M,
- pad=\0, rev=^CD, rmso=^C\s, rmul=^C\s, sgr0=^C\s, smso=^CE,
- smul=^C0,
-
-#### Microterm (act, mime)
-#
-# The mime1 entries refer to the Microterm Mime I or Mime II.
-# The default mime is assumed to be in enhanced act iv mode.
-#
-
-# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents
-# freakout with out-of-range args on Sytek multiplexors. No <smso=^N> and
-# <rmso=^N> since it gets confused and it's too dim anyway. No <ich1>
-# since Sytek insists ^S means xoff.
-# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr)
-act4|microterm|microterm act iv,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\014$<12/>, cr=^M, cub1=^H, cud1=^K, cuf1=^X,
- cup=\024%p1%{24}%+%c%p2%p2%?%{47}%>%t%{48}%+%;%{80}%+%c,
- cuu1=^Z, dch1=\004$<.1*/>, dl1=\027$<2.3*/>,
- ed=\037$<2.2*/>, el=\036$<.1*/>, home=^],
- il1=\001<2.3*/>, ind=^J, kcub1=^H, kcud1=^K, kcuf1=^X,
- kcuu1=^Z,
-# The padding on :sr: and :ta: for act5 and mime is a guess and not final.
-# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
-# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
-act5|microterm5|microterm act v,
- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, ri=\EH$<3>, uc=^H\EA,
- use=act4,
-# Mimes using brightness for standout. Half bright is really dim unless
-# you turn up the brightness so far that lines show up on the screen.
-mime-fb|full bright mime1,
- is2=^S\E, rmso=^S, smso=^Y, use=mime,
-mime-hb|half bright mime1,
- is2=^Y\E, rmso=^Y, smso=^S, use=mime,
-# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode
-# the more plausible ":do=^J:" -- esr)
-# uc was at one time disabled to get around a curses bug, be wary of it
-mime|mime1|mime2|mimei|mimeii|microterm mime1,
- OTbs, am,
- cols#80, it#8, lines#24, vt#9,
- bel=^G, clear=^]^C, cr=^M, cub1=^H, cud1=^J, cuf1=^X,
- cup=\024%p1%{24}%+%c%p2%p2%?%{32}%>%t%{48}%+%;%{80}%+%c,
- cuu1=^Z, dl1=\027$<80>, ed=^_, el=^^, home=^], ht=\011$<2>,
- il1=\001$<80>, ind=^J, is2=^S\E^Q, kcub1=^H, kcud1=^K,
- kcuf1=^X, kcuu1=^Z, ri=\022$<3>, uc=^U,
-# These termcaps (for mime2a) put the terminal in low intensity mode
-# since high intensity mode is so obnoxious.
-mime2a-s|microterm mime2a (emulating an enhanced soroc iq120),
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EI, dch1=\ED,
- dl1=\027$<20*>, ed=\EJ$<20*>, el=\EK, home=^^,
- il1=\001$<20*>, ind=^J, ip=$<2>, is2=\E), kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, ri=\EI, rmir=^Z, rmso=\E;, rmul=\E7,
- smir=\EE, smso=\E\:, smul=\E6,
-# This is the preferred mode (but ^X can't be used as a kill character)
-mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52),
- OTbs,
- cols#80, it#8, lines#24,
- bel=^G, clear=\EL, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=^N,
- dl1=\027$<20*>, ed=\EQ$<20*>, el=\EP, home=\EH, ht=^I,
- il1=\001$<20*>, ind=^J, ip=$<2>, is2=^Y, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, ri=\EA, rmir=^Z, rmso=\E9,
- rmul=\E5, smir=^O, smso=\E8, smul=\E4,
-# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
-mime3a|mime1 emulating 3a,
- am@,
- kcub1=^H, kcud1=^K, kcuf1=^X, kcuu1=^Z, use=adm3a,
-mime3ax|mime-3ax|mime1 emulating enhanced 3a,
- it#8,
- dl1=\027$<80>, ed=^_, el=^X, ht=\011$<3>, il1=\001$<80>,
- use=mime3a,
-# Wed Mar 9 18:53:21 1983
-# We run our terminals at 2400 baud, so there might be some timing problems at
-# higher speeds. The major improvements in this model are the terminal now
-# scrolls down and insert mode works without redrawing the rest of the line
-# to the right of the cursor. This is done with a bit of a kludge using the
-# exit graphics mode to get out of insert, but it does not appear to hurt
-# anything when using vi at least. If you have some users using act4s with
-# programs that use curses and graphics mode this could be a problem.
-mime314|mm314|mime 314,
- am,
- cols#80, lines#24,
- clear=^L, cub1=^H, cuf1=^X, cup=\024%p1%c%p2%c, cuu1=^Z,
- dch1=^D, dl1=^W, ed=^_, el=^^, home=^], ht=^I, il1=^A, kcub1=^H,
- kcud1=^K, kcuf1=^X, kcuu1=^Z, rmir=^V, smir=^S,
-# Microterm mime 340 from University of Wisconsin
-mm340|mime340|mime 340,
- cols#80, lines#24,
- clear=\032$<12/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\E#$<2.1*/>, dl1=\EV$<49.6/>, ed=\037$<2*/>,
- el=\EL$<2.1/>, ht=^I, il1=\EU$<46/>, ind=^J, is2=\E\,,
- kbs=^H, kcub1=^H, kcud1=^J, kcuu1=^K, nel=^M^J,
-# This came from University of Wisconsin marked "astro termcap for jooss".
-# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:";
-# also added <rmam>/<smam> based on the init string -- esr)
-mt4520-rv|micro-term 4520 reverse video,
- am, hs, msgr, xenl, xon,
- cols#80, it#8, lines#24, wsl#80,
- bel=^G, clear=\E[H\E[J, cnorm=\E[0V\E8, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E7\E[0U, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, flash=\E[?5l$<200/>\E[?5h,
- fsl=\E[?5l\E[?5h, home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@,
- ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is2=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H,
- ll=\E[24;1H, nel=\EE, rc=\E8, rf=/usr/share/tabset/vt100,
- ri=\EM, rmam=\E[?7l, rmso=\E[0m, rmul=\E[24m,
- rs1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J,
- sc=\E7, sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m,
- tbc=\E[g, tsl=\E[25;1H,
-
-# Fri Aug 5 08:11:57 1983
-# This entry works for the ergo 4000 with the following setups:
-# ansi,wraparound,newline disabled, xon/xoff disabled in both
-# setup a & c.
-#
-# WARNING!!! There are multiple versions of ERGO 4000 microcode
-# Be advised that very early versions DO NOT WORK RIGHT !!
-# Microterm does have a ROM exchange program- use it or lose big
-# (ergo400: added <rmam>/<smam> based on the init string -- esr)
-ergo4000|microterm ergo 4000,
- da, db, msgr,
- cols#80, lines#66,
- bel=^G, clear=\E[H\E[2J$<80>, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- dch1=\E[1P$<80>, dl1=\E[1M$<5*>, ed=\E[0J$<15>,
- el=\E[0K$<13>, ht=^I, il1=\E[1L$<5*>, ind=\ED$<20*>,
- is2=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h$<300>,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=pf1, lf2=pf2, lf3=pf3,
- lf4=pf4, ri=\EM$<20*>, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E=$<4>, rmso=\E[m$<20>, sgr0=\E[m$<20>,
- smam=\E[?7m, smir=\E[4h$<6>, smkx=\E=$<4>,
- smso=\E[7m$<20>,
-
-#### NCR
-#
-# NCR's terminal group was merged with AT&T's when AT&T bought the company.
-# For what happened to that group, see the ADDS section.
-#
-# There is an NCR4103 terminal that's just a re-badged Wyse-50.
-#
-
-# The following vendor-supplied termcaps were captured from the Boundless
-# Technologies site, 8 March 1998. I removed all-upper-case names that were
-# identical, except for case, to lower-case ones. I also uncommented the acsc
-# capabilities.X
-#
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
- colors#8, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300an,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard,
- colors#8, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300wan,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
-# DEC vt200/300 with color capabilities added.
-ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard,
- colors#8, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300pp,
-# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a
-# DEC vt200/300 with color capabilities added.
-ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode,
- colors#8, pairs#64,
- op=\E[0m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- use=ncr260vt300wpp,
-# This definition for ViewPoint supports several attributes. This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies. The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-ncr260vppp|NCR 2900_260 viewpoint,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, lines#24, nlab#32, xmc#1,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5,
- cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
- cvvis=\E`5, dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c,
- ed=\Ek$<2>, el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I,
- hts=\E1, il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
- is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
- kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F,
- kcuu1=^Z, kdch1=\EW, kend=\EK, kf1=^B1\r, kf10=^B\:\r,
- kf11=^B;\r, kf12=^B<\r, kf13=^B=\r, kf14=^B>\r, kf15=^B?\r,
- kf16=^B@\r, kf17=^B!\r, kf18=^B"\r, kf19=^B#\r, kf2=^B2\r,
- kf20=^B$\r, kf21=\002%^M, kf22=^B&\r, kf23=^B'\r,
- kf24=^B(\r, kf25=^B)\r, kf26=^B*\r, kf27=^B+\r,
- kf28=^B\,\r, kf29=^B-\r, kf3=^B3\r, kf30=^B.\r, kf31=^B/\r,
- kf32=^B0\r, kf4=^B4\r, kf5=^B5\r, kf6=^B6\r, kf7=^B7\r,
- kf8=^B8\r, kf9=^B9\r, khome=^A, kich1=\Eq, knp=\EJ, kpp=\EJ,
- kprt=\EP, ll=\001$<5>, mc0=\EP$<100>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<5>,
- nel=\037$<2>, rev=\EG4, ri=\Ej$<2>, rmacs=\EcB0\EH\003,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- sgr0=\EG0\EH\003, smacs=\EcB1\EH\002, smir=\Eq,
- smso=\EG4, smul=\EG8, smxon=\Ec21, tsl=\EF,
-ncr260vpwpp|NCR 2900_260 viewpoint wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- rs2=\Ee6\E~%$<100>\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
- use=ncr260vppp,
-ncr260vt100an|NCR 2900_260 vt100 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX, ed=\E[0J$<5>, el=\E[0K$<3>, el1=\E[1K$<3>,
- fsl=\E[0$}, home=\E[H$<1>, hpa=\E[%p1%dG$<40>, ht=^I,
- hts=\EH, ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>,
- il1=\E[L$<5>, ind=\ED$<5>, indn=\E[%p1%dE$<5>,
- invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kent=\EOM, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~, knp=\E[6~,
- kpp=\E[5~, krdo=\E[29~, kslt=\E[4~, nel=\EE$<5>, rc=\E8,
- rev=\E[7m, ri=\EM$<5>, rmacs=^O, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[0m, rmul=\E[0m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=^N, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[1;7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt100an,
-ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[5~, khome=\E[2~, kich1=\E[1~, knp=\E[6~, kpp=\E[3~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- smkx=\E=, use=ncr260vt100an,
-ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt100pp,
-ncr260vt200an|NCR 2900_260 vt200 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf21=\E[31~,
- kf22=\E[32~, kf23=\E[33~, kf24=\E[34~, kf25=\E[35~,
- kf26=\E[1~, kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR,
- kf30=\E[5~, kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
- kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H$<200>,
- use=ncr260vt200an,
-ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd,
- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
- use=ncr260vt200an,
-ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt200pp,
-ncr260vt300an|NCR 2900_260 vt300 with ansi kybd,
- am, hs, mir, msgr, xenl, xon,
- cols#80, lines#24, nlab#32,
- acsc=``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[1;1H$<20>, cnorm=\E[?25h, cr=\r$<1>,
- csr=\E[%i%p1%d;%p2%dr$<5>, cub=\E[%p1%dD$<5>,
- cub1=\E[D$<5>, cud=\E[%p1%dB$<5>, cud1=\E[B$<5>,
- cuf=\E[%p1%dC$<5>, cuf1=\E[C$<5>,
- cup=\E[%i%p1%d;%p2%dH$<10>, cuu=\E[%p1%dA$<5>,
- cuu1=\E[A$<5>, dch=\E[%p1%dP$<5>, dch1=\E[1P$<5>,
- dl=\E[%p1%dM$<5>, dl1=\E[M$<5>, dsl=\E[0$~\E[1$~,
- ech=\E[%p1%dX$<5>, ed=\E[0J, el=\E[0K$<5>, el1=\E[1K$<5>,
- fsl=\E[0$}, home=\E[H, hpa=\E[%p1%dG$<40>, ht=^I, hts=\EH,
- ich=\E[%p1%d@$<5>, il=\E[%p1%dL$<5>, il1=\E[L$<5>,
- ind=\ED$<5>, indn=\E[%p1%dE$<5>, invis=\E[8m,
- is2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- ka1=\EOw, ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kdch1=\E[3~, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf21=\E[31~,
- kf22=\E[32~, kf23=\E[33~, kf24=\E[34~, kf25=\E[35~,
- kf26=\E[1~, kf27=\E[2~, kf28=\E[3~, kf29=\E[4~, kf3=\EOR,
- kf30=\E[5~, kf31=\E[6~, kf32=\E[7~, kf33=\E[8~, kf34=\E[9~,
- kf35=\E[10~, kf4=\EOS, kf5=\E[M, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM$<5>, rmacs=\017$<20>, rmam=\E[?7l, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs2=\E[!p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<20>,
- sgr0=\E[0m\017$<20>, smacs=\016$<20>, smam=\E[?7h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[2$~\E[1$}, vpa=\E[%p1%dd$<40>,
-ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H$<200>,
- use=ncr260vt300an,
-ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd,
- ka1=\E[H, ka3=\EOu, kb2=\E[V, kc3=\E[U, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[4~,
- kend=\E[1~, khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, rmkx=\E>, smkx=\E=,
- use=ncr260vt300an,
-NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd,
- cols#132,
- cup=\E[%i%p1%d;%p2%dH$<30>,
- is2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- rs2=\E[!p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>$<200>,
- use=ncr260vt300pp,
-# This terminfo file contains color capabilities for the Wyse325 emulation of
-# the NCR 2900/260C color terminal. Because of the structure of the command
-# (escape sequence) used to set color attributes, one of the fore/background
-# colors must be preset to a given value. I have set the background color to
-# black. The user can change this setup by altering the last section of the
-# 'setf' definition. The escape sequence to set color attributes is
-# ESC d y <foreground_color> <background_color> 1
-# In addition, the background color can be changed through the desk accessories.
-# The capablitiy 'op' sets colors to green on black (default combination).
-#
-# NOTE: The NCR Unix System Administrator's Shell will not function properly
-# if the 'pairs' capability is defined. Un-Comment the 'pairs'
-# capability and recompile if you wish to have it included.
-#
-ncr260wy325pp|NCR 2900_260 wyse 325,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- colors#16, cols#80, lines#24, ncv#33, nlab#32,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E*$<10>, cnorm=\E`1, cr=^M,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<5>, ht=^I,
- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET,
- kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r,
- kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r,
- kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r,
- kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r,
- kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r,
- kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ,
- kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- setb=\s,
- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{64}%e%p1%{8}%=%t%{57}%e%p1%{9}%=%t%{58}%e%p1%{10}%=%t%{59}%e%p1%{11}%=%t%{60}%e%p1%{12}%=%t%{61}%e%p1%{13}%=%t%{62}%e%p1%{14}%=%t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>,
- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
- tsl=\EF,
-ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- use=ncr260wy325pp,
-# This definition for Wyse 350 supports several attributes. This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies. The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-# In addition, color capabilities have been added to this file. The drawback,
-# however, is that the background color has to be black. The foreground colors
-# are numbered 0 through 15.
-#
-# NOTE: The NCR Unix System Administrator's Shell does not function properly
-# with the 'pairs' capability defined as below. If you wish to
-# have it included, Un-comment it and recompile (using 'tic').
-#
-ncr260wy350pp|NCR 2900_260 wyse 350,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- colors#16, cols#80, lines#24, ncv#33, nlab#32, xmc#1,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<40>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<10>, ht=^I,
- hts=\E1, il1=\EE$<5>, ind=\n$<5>, invis=\EG1,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
- mc0=\EP$<10>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<20>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0,
- rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- setb=\s,
- setf=%?%p1%{0}%=%t%{49}%e%p1%{1}%=%t%{50}%e%p1%{2}%=%t%{51}%e%p1%{3}%=%t%{52}%e%p1%{4}%=%t%{53}%e%p1%{5}%=%t%{54}%e%p1%{6}%=%t%{55}%e%p1%{7}%=%t%{102}%e%p1%{8}%=%t%{97}%e%p1%{9}%=%t%{98}%e%p1%{10}%=%t%{99}%e%p1%{11}%=%t%{101}%e%p1%{12}%=%t%{106}%e%p1%{13}%=%t%{110}%e%p1%{14}%=%t%{111}%e%p1%{15}%=%t%{56}%;\Em0%c$<100>,
- sgr0=\EG0\EH\003\EcD, smacs=\EH\002\EcB1, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0,
- tsl=\EF,
-ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- rs2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- use=ncr260wy350pp,
-# This definition for Wyse 50+ supports several attributes. This means
-# that it has magic cookies (extra spaces where the attributes begin).
-# Some applications do not function well with magic cookies. The System
-# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
-# If supporting various attributes is not vital, 'xmc#1' and the extra
-# attributes can be removed.
-# Mapping to ASCII character set ('acsc' capability) can also be
-# restored if needed.
-# (ncr260wy50+pp: originally contained commented-out
-# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
-ncr260wy50+pp|NCR 2900_260 wyse 50+,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, lines#24, nlab#32, xmc#1,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
- cbt=\EI$<5>, civis=\E`0, clear=\E+$<20>, cnorm=\E`1, cr=^M,
- cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<30>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dim=\EGp, dl1=\ER$<5>, dsl=\E`c,
- ed=\EY$<5>, el=\ET$<5>, fsl=^M, home=\036$<10>,
- ht=\011$<5>, hts=\E1$<5>, il1=\EE$<5>, ind=\n$<5>,
- invis=\EG1,
- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kPRT=\E7, kRIT=^L, ka1=^^, kbs=^H,
- kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r,
- kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r,
- kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r,
- kf3=^AB\r, kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r,
- kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r,
- khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP,
- mc0=\EP$<10>, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- sgr0=\EG0\EH\003$<15>, smacs=\EH^B, smam=\Ed/, smir=\Eq,
- smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<5>, tsl=\EF,
-ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- rs2=\Ee6\E~"$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<200>,
- use=ncr260wy50+pp,
-ncr260wy60pp|NCR 2900_260 wyse 60,
- am, bw, hs, km, mc5i, mir, msgr, xon,
- cols#80, lines#24, nlab#32,
- acsc=07a?h;j5k3l2m1n8q\:t4u9v=w0x6, bel=^G, blink=\EG2,
- cbt=\EI$<15>, civis=\E`0, clear=\E*$<100>, cnorm=\E`1,
- cr=^M, cub1=\010$<5>, cud1=\n$<5>, cuf1=\014$<5>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<10>, cuu1=\013$<5>,
- cvvis=\E`5, dch1=\EW$<50>, dl1=\ER$<5>, dsl=\E`c,
- ed=\Ey$<5>, el=\Et$<5>, fsl=^M, home=\036$<25>,
- ht=\011$<15>, hts=\E1$<15>, il1=\EE$<5>, ind=\n$<5>,
- invis=\EG1,
- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ,
- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK,
- kcbt=\EI$<15>, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- kdch1=\EW, kend=\ET, kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r,
- kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r,
- kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r,
- kf21=^Ad\r, kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r,
- kf26=^Ai\r, kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r,
- kf30=^Am\r, kf31=^An\r, kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, mc0=\EP, mc4=^T, mc5=^R,
- mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<30>,
- nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH^C, rmam=\Ed.,
- rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20,
- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\:\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH^B, smam=\Ed/,
- smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0$<15>,
- tsl=\EF,
-ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode,
- cols#132,
- cup=\Ea%i%p1%dR%p2%dC$<30>,
- is2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- rs2=\Ee6\E~4$<100>\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~!\E"\Ee4\Ex@\E`9\Ee7$<100>,
- use=ncr260wy60pp,
-ncr160vppp|NCR 2900_160 viewpoint,
- use=ncr260vppp,
-ncr160vpwpp|NCR 2900_160 viewpoint wide mode,
- use=ncr260vpwpp,
-ncr160vt100an|NCR 2900_160 vt100 with ansi kybd,
- use=ncr260vt100an,
-ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd,
- use=ncr260vt100pp,
-ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd,
- use=ncr260vt100wan,
-ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd,
- use=ncr260vt100wpp,
-ncr160vt200an|NCR 2900_160 vt200 with ansi kybd,
- use=ncr260vt200an,
-ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd,
- use=ncr260vt200pp,
-ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd,
- use=ncr260vt200wan,
-ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd,
- use=ncr260vt200wpp,
-ncr160vt300an|NCR 2900_160 vt300 with ansi kybd,
- use=ncr260vt300an,
-ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd,
- use=ncr260vt300pp,
-ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd,
- use=ncr260vt300wan,
-ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd,
- use=ncr260vt300wpp,
-ncr160wy50+pp|NCR 2900_160 wyse 50+,
- use=ncr260wy50+pp,
-ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode,
- use=ncr260wy50+wpp,
-ncr160wy60pp|NCR 2900_160 wyse 60,
- use=ncr260wy60pp,
-ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode,
- use=ncr260wy60wpp,
-ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal,
- am, hs, mc5i, mir, msgr, xon,
- cols#80, it#8, lines#24, nlab#32,
- acsc=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~,
- bel=^G, blink=\E[5m$<30>, bold=\E[1m$<30>,
- clear=\E[2J\E[1;1H$<300>, cr=^M,
- csr=\E[%i%p1%d;%p2%dr$<100>, cub=\E[%p1%dD$<30>,
- cub1=\E[D$<2>, cud=\E[%p1%dB$<30>, cud1=\E[B$<2>,
- cuf=\E[%p1%dC$<30>, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<100>, cuu=\E[%p1%dA$<30>,
- cuu1=\E[A$<2>, dch=\E[%p1%dP$<40>, dch1=\E[1P$<10>,
- dl=\E[%p1%dM$<70>, dl1=\E[M$<40>, dsl=\E[31l$<25>,
- ed=\E[0J$<300>, el=\E[0K$<30>, el1=\E[1K$<30>,
- enacs=\E(B\E)0$<40>, fsl=1$<10>, home=\E[H$<2>$<80>,
- ht=^I, hts=\EH, il=\E[%p1%dL$<80>, il1=\E[B\E[L$<80>,
- ind=\ED,
- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0$<200>,
- kLFT=\E[D, kRIT=\E[C, ka1=\E[H, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kent=^M, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, mc0=\E[i$<100>, nel=\EE,
- rc=\E8, rev=\E[7m$<30>, ri=\EM$<50>, rmacs=\017$<90>,
- rmir=\E[4l$<80>, rmso=\E[0m$<30>, rmul=\E[0m$<30>,
- rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
- sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>,
- sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
- smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
- tsl=\E[>+1$<70>,
-ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal,
- cols#132,
- is2=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0$<200>,
- rs2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031$<200>,
- use=ncrvt100an,
-#
-# Vendor-supplied NCR termcaps end here
-
-# NCR7900 DIP switches:
-#
-# Switch A:
-# 1-4 - Baud Rate
-# 5 - Parity (Odd/Even)
-# 6 - Don't Send or Do Send Spaces
-# 7 - Parity Enable
-# 8 - Stop Bits (One/Two)
-#
-# Switch B:
-# 1 - Upper/Lower Shift
-# 2 - Typewriter Shift
-# 3 - Half Duplex / Full Duplex
-# 4 - Light/Dark Background
-# 5-6 - Carriage Return Without / With Line Feed
-# 7 - Extended Mode
-# 8 - Suppress Keyboard Display
-#
-# Switch C:
-# 1 - End of line entry disabled/enabled
-# 2 - Conversational mode / (Local?) Mode
-# 3 - Control characters displayed / not displayed
-# 4 - (2-wire?) / 4-wire communications
-# 5 - RTS on and off for each character
-# 6 - (50Hz?) / 60 Hz
-# 7 - Exit after level zero diagnostics
-# 8 - RS-232 interface
-#
-# Switch D:
-# 1 - Reverse Channel (yes / no)
-# 2 - Manual answer (no / yes)
-# 3-4 - Cursor appearance
-# 5 - Communication Rate
-# 6 - Enable / Disable EXT turnoff
-# 7 - Enable / Disable CR turnoff
-# 8 - Enable / Disable backspace
-#
-# Since each attribute parameter is 0 or 1, we shift each attribute (standout,
-# reverse, blink, dim, and underline) the appropriate number of bits (by
-# multiplying the 0 or 1 by a correct factor to shift) so the bias character,
-# '@' is (effectively) "or"ed with each attribute to generate the proper third
-# character in the <ESC>0 sequence. The <sgr> string implements the following
-# equation:
-#
-# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) =>
-# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17))
-#
-# Where: P1 <==> Standout attribute parameter
-# P2 <==> Underline attribute parameter
-# P3 <==> Reverse attribute parameter
-# P4 <==> Blink attribute parameter
-# P5 <==> Dim attribute parameter
-# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
-ncr7900i|ncr7900|ncr 7900 model 1,
- am, bw, ul,
- cols#80, lines#24, xmc#1,
- bel=^G, blink=\E0B, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\E1%p2%c%p1%c, cuu1=^Z, dim=\E0A, ed=\Ek, el=\EK, ind=^J,
- is2=\E0@\010\E3\E4\E7, kcub1=^U, kcud1=^J, kcuf1=^F,
- kcuu1=^Z, khome=^A, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=\E0@,
- rmul=\E0@,
- sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c,
- sgr0=\E0@, smso=\E0Q, smul=\E0`,
-ncr7900iv|ncr 7900 model 4,
- am, bw, eslok, hs,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J,
- cup=\013%p1%{64}%+%c\E\005%p2%02d, dl1=\E^O, dsl=\Ey1,
- fsl=\Ek\Ey5, home=\013@\E^E00, il1=\E^N, ind=^J, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET,
- kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
- khome=\EH, lf6=blue, lf7=red, lf8=white, nel=^M^J,
- tsl=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo,
-# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
-# The user can enter a CTRL-B to get out of this locked state.
-# In <hpa>, we want to output the character given by the formula:
-# ((col / 10) * 16) + (col % 10) where "col" is "p1"
-ncr7901|ncr 7901 model,
- am, bw, ul,
- cols#80, lines#24,
- bel=^G, blink=\E0B, civis=^W, clear=^L, cnorm=^X, cr=^M,
- cub1=^H, cud1=^J, cuf1=^F,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z, dim=\E0A,
- ed=\Ek, el=\EK,
- hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c, ind=^J,
- is2=\E4^O, kclr=^L, kcub1=^U, kcud1=^J, kcuf1=^F, kcuu1=^Z,
- khome=^H, ll=^A, mc4=^T, mc5=^R, rev=\E0P, rmso=^O, rmul=^O,
- sgr=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016,
- sgr0=^O, smso=\E0Q\016, smul=\E0`\016,
- vpa=\013%p1%{64}%+%c,
-
-#### Perkin-Elmer (Owl)
-#
-# These are official terminfo entries from within Perkin-Elmer.
-#
-
-bantam|pe550|pe6100|perkin elmer 550,
- OTbs,
- cols#80, lines#24,
- bel=^G, clear=\EK$<20>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- el=\EI$<20>, home=\EH, ind=^J, ll=\EH\EA,
-fox|pe1100|perkin elmer 1100,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
- cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- ed=\EJ$<5.5*>, el=\EI, flash=\020\002$<200/>\020\003,
- home=\EH, hts=\E1, ind=^J, ll=\EH\EA, tbc=\E3,
-owl|pe1200|perkin elmer 1200,
- OTbs, am, in,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ$<132>, cr=^M, cub1=^H, cud1=^J,
- cuf1=\EC, cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- dch1=\EO$<5.5*>, dl1=\EM$<5.5*>, ed=\EJ$<5.5*>,
- el=\EI$<5.5>, flash=\020\002$<200/>\020\003, home=\EH,
- hts=\E1, ich1=\EN, il1=\EL$<5.5*>, ind=^J, ip=$<5.5*>,
- kbs=^H, kf0=\ERJ, kf1=\ERA, kf2=\ERB, kf3=\ERC, kf4=\ERD,
- kf5=\ERE, kf6=\ERF, kf7=\ERG, kf8=\ERH, kf9=\ERI, ll=\EH\EA,
- rmso=\E!\0, sgr0=\E!\0, smso=\E!^H, tbc=\E3,
-pe1251|pe6300|pe6312|perkin elmer 1251,
- am,
- cols#80, it#8, lines#24, pb#300, vt#8, xmc#1,
- bel=^G, clear=\EK$<332>, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EX%p1%{32}%+%c\EY%p2%{32}%+%c, cuu1=\EA,
- ed=\EJ$<20*>, el=\EI$<10*>, home=\EH, hts=\E1, ind=^J,
- kf0=\ERA, kf1=\ERB, kf10=\ERK, kf2=\ERC, kf3=\ERD, kf4=\ERE,
- kf5=\ERF, kf6=\ERG, kf7=\ERH, kf8=\ERI, kf9=\ERJ, tbc=\E3,
-# (pe7000m: this had
-# rmul=\E!\0, smul=\E!\040,
-# which is probably wrong, it collides with kf0
-pe7000m|perkin elmer 7000 series monochrome monitor,
- am,
- cols#80, lines#24,
- bel=^G, cbt=\E!Y, clear=\EK, cr=^M, cub1=\ED, cud1=\EB,
- cuf1=\EC, cup=\ES%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- ed=\EJ, el=\EI, home=\EH, ind=^J,
- is1=\E!\0\EW 7o\Egf\ES7\s, kbs=^H, kcub1=\E!V,
- kcud1=\E!U, kcuf1=\E!W, kcuu1=\E!T, kf0=\E!\0, kf1=\E!^A,
- kf10=\E!^J, kf2=\E!^B, kf3=\E!^C, kf4=\E!^D, kf5=\E!^E,
- kf6=\E!^F, kf7=\E!^G, kf8=\E!^H, kf9=\E!^I, khome=\E!S,
- ll=\ES7\s, ri=\ER,
-pe7000c|perkin elmer 7000 series colour monitor,
- is1=\E!\0\EW 7o\Egf\Eb0\Ec7\ES7\s, rmso=\Eb0,
- rmul=\E!\0, smso=\Eb2, smul=\E!\s, use=pe7000m,
-
-#### Sperry Univac
-#
-# Sperry Univac has merged with Burroughs to form Unisys.
-#
-
-# This entry is for the Sperry UTS30 terminal running the TTY
-# utility under control of CP/M Plus 1R1. The functionality
-# provided is comparable to the DEC vt100.
-# (uts30: I added <rmam>/<smam> based on the init string -- esr)
-uts30|sperry uts30 with cp/m@1R1,
- am, bw, hs,
- cols#80, lines#24, wsl#40,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
- cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
- cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
- dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H,
- ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
- ind=^J, indn=\E[%p1%dB, is2=\E[U 7\E[24;1H, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\E[H,
- rc=\EX, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EI,
- rin=\E[%p1%dA, rmacs=\Ed, rmam=\E[?7l, rmso=\E[m,
- rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- sc=\EW, sgr0=\E[m, smacs=\EF, smam=\E[?7m, smso=\E[7m,
- smul=\E[4m, tsl=\E], uc=\EPB,
-
-#### Tandem
-#
-# Tandem builds these things for use with its line of fault-tolerant
-# transaction-processing computers. They aren't generally available
-# on the merchant market, and so are fairly uncommon.
-#
-
-tandem6510|adm3a repackaged by Tandem,
- use=adm3a,
-
-# A funny series of terminal that TANDEM uses. The actual model numbers
-# have a fourth digit after 653 that designates minor variants. These are
-# natively block-mode and rather ugly, but they have a character mode which
-# this doubtless(?) exploits. There is a 6520 that is slightly dumber.
-# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also,
-# removed <if=/usr/share/tabset/tandem653>, no such file -- esr)
-tandem653|t653x|Tandem 653x multipage terminal,
- OTbs, am, da, db, hs,
- cols#80, lines#24, wsl#64, xmc#1,
- clear=\EI, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\023%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dsl=\Eo\r,
- ed=\EJ, el=\EK, fsl=^M, home=\EH, ind=\ES, ri=\ET, rmso=\E6\s,
- rmul=\E6\s, sgr0=\E6\s, smso=\E6$, smul=\E60, tsl=\Eo,
-
-#### Tandy/Radio Shack
-#
-# Tandy has a line of VDTs distinct from its microcomputers.
-#
-
-dmterm|deskmate terminal,
- am, bw,
- cols#80, lines#24,
- bel=^G, civis=\EG5, clear=\Ej, cnorm=\EG6, cr=^M, cub1=^H,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dch1=\ES, dl1=\ER, ed=\EJ, el=\EK, home=\EH, ht=^I,
- ich1=\EQ, il1=\EP, ind=\EX, invis@, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf0=\E1, kf1=\E2, kf2=\E3, kf3=\E4,
- kf4=\E5, kf5=\E6, kf6=\E7, kf7=\E8, kf8=\E9, kf9=\E0,
- khome=\EH, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6,
- lf6=f7, lf7=f8, lf8=f9, lf9=f10, ll=\EE, rmul@, smul@,
- use=adm+sgr,
-dt100|dt-100|Tandy DT-100 terminal,
- xon,
- cols#80, lines#24, xmc#1,
- acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%p1%2d;%p2%2dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
- il1=\E[L, ind=^J, is2=\E[?3l\E)0\E(B, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\E[?3i,
- kf10=\E[?5i, kf2=\E[2i, kf3=\E[@, kf4=\E[M, kf5=\E[17~,
- kf6=\E[18~, kf7=\E[19~, kf8=\E[20~, kf9=\E[21~, khome=\E[H,
- knp=\E[29~, kpp=\E[28~, lf1=f1, lf2=f2, lf3=f3, lf4=f4, lf5=f5,
- lf6=f6, lf7=f7, lf8=f8, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
-dt100w|dt-100w|Tandy DT-100 terminal (wide mode),
- cols#132, use=dt100,
-dt110|Tandy DT-110 emulating ansi,
- xon,
- cols#80, lines#24,
- acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[0B, cuf1=\E[C,
- cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[0A, dch1=\E[0P,
- dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H,
- ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
- kf1=\E[1~, kf10=\E[10~, kf2=\E[2~, kf3=\E[3~, kf4=\E[4~,
- kf5=\E[5~, kf6=\E[6~, kf7=\E[7~, kf8=\E[8~, kf9=\E[9~,
- khome=\E[G, kich1=\E[@, knp=\E[26~, kpp=\E[25~, lf0=f1,
- lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7, lf7=f8, lf8=f9,
- lf9=f10, ri=\EM, rmacs=^O, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smacs=^N, smso=\E[7m, smul=\E[4m,
-pt210|TRS-80 PT-210 printing terminal,
- hc, os,
- cols#80,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-
-#### Tektronix (tek)
-#
-# Tektronix tubes are graphics terminals. Most of them use modified
-# oscilloscope technology incorporating a long-persistence green phosphor,
-# and support vector graphics on a main screen with an attached "dialogue
-# area" for interactive text.
-#
-
-tek|tek4012|tektronix 4012,
- OTbs, os,
- cols#75, lines#35,
- bel=^G, clear=\E\014$<1000>, cr=^M, cub1=^H, cud1=^J,
- ff=\014$<1000>, is2=\E^O,
-# (tek4013: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4013|tektronix 4013,
- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4012,
-tek4014|tektronix 4014,
- cols#81, lines#38,
- is2=\E\017\E9, use=tek4012,
-# (tek4015: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4015|tektronix 4015,
- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014,
-tek4014-sm|tektronix 4014 in small font,
- cols#121, lines#58,
- is2=\E\017\E\:, use=tek4014,
-# (tek4015-sm: added <acsc> to suppress tic warnings re <smacs>/<rmacs> --esr)
-tek4015-sm|tektronix 4015 in small font,
- acsc=, rmacs=\E^O, smacs=\E^N, use=tek4014-sm,
-# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
-#
-# You need to have "stty nl2" in effect. Some versions of tset(1) know
-# how to set it for you.
-#
-# It's got the Magic Cookie problem around stand-out mode. If you can't
-# live with Magic Cookie, remove the :so: and :se: fields and do without
-# reverse video. If you like reverse video stand-out mode but don't want
-# it to flash, change the letter 'H' to 'P' in the :so: field.
-tek4023|tektronix 4023,
- OTbs, am,
- OTdN#4, cols#80, lines#24, vt#4, xmc#1,
- OTnl=^J, bel=^G, clear=\E\014$<4/>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^I, cup=\034%p2%{32}%+%c%p1%{32}%+%c, kbs=^H,
- rmso=^_@, smso=^_P,
-# It is recommended that you run the 4025 at 4800 baud or less;
-# various bugs in the terminal appear at 9600. It wedges at the
-# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
-# on keyboard don't work. You have to hit BREAK twice to get
-# one break at any speed - this is a documented feature.
-# Can't use cursor motion because it's memory relative, and
-# because it only works in the workspace, not the monitor.
-# Same for home. Likewise, standout only works in the workspace.
-#
-# <el> was commented out since vi and rogue seem to work better
-# simulating it with lots of spaces!
-#
-# <il1> and <il> had 145ms of padding, but that slowed down vi's ^U
-# and didn't seem necessary.
-#
-tek4024|tek4025|tek4027|tektronix 4024/4025/4027,
- OTbs, am, da, db,
- cols#80, it#8, lines#34, lm#0,
- bel=^G, clear=\037era\r\n\n, cmdch=^_, cr=^M,
- cub=\037lef %p1%d\r, cub1=^H, cud=\037dow %p1%d\r,
- cud1=^F^J, cuf=\037rig %p1%d\r, cuf1=\037rig\r,
- cuu=\037up %p1%d\r, cuu1=^K, dch1=\037dch\r,
- dl=\037dli %p1%d\r\006, dl1=\037dli\r\006,
- ed=\037dli 50\r, ht=^I, ich1=\037ich\r \010,
- il=\037up\r\037ili %p1%d\r, il1=\037up\r\037ili\r,
- ind=^F^J,
- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
- rmkx=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r,
- smkx=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r,
-tek4025-17|tek 4025 17 line window,
- lines#17, use=tek4025,
-tek4025-17-ws|tek 4025 17 line window in workspace,
- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r,
- rmcup=\037mon h\r, rmso=\037att s\r, smcup=\037wor h\r,
- smso=\037att e\r, use=tek4025-17,
-tek4025-ex|tek4027-ex|tek 4025/4027 w/!,
- is2=\037com 33\r\n!sto 9 17 25 33 41 49 57 65 73\r,
- rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
-# Tektronix 4025a
-# From: Doug Gwyn <gwyn@brl-smoke.ARPA>
-# The following status modes are assumed for normal operation (replace the
-# initial "!" by whatever the current command character is):
-# !COM 29 # NOTE: changes command character to GS (^])
-# ^]DUP
-# ^]ECH R
-# ^]EOL
-# ^]RSS T
-# ^]SNO N
-# ^]STO 9 17 25 33 41 49 57 65 73
-# Other modes may be set according to communication requirements.
-# If the command character is inadvertently changed, termcap can't restore it.
-# Insert-character cannot be made to work on both top and bottom rows.
-# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas.
-# There also seems to be a problem with vertical motion, perhaps involving
-# delete/insert-line, following a typed carriage return. This terminal sucks.
-# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't
-# work any more. -- esr)
-tek4025a|Tektronix 4025A,
- OTbs, OTpt, am, bw, da, db, xon,
- cols#80, it#8, lines#34,
- bel=^G, cbt=\035bac;, clear=\035era;\n\035rup;, cmdch=^],
- cr=^M, cub=\035lef %p1%d;, cub1=^H, cud=\035dow %p1%d;,
- cud1=^J, cuf=\035rig %p1%d;, cuf1=\035rig;,
- cuu=\035up %p1%d;, cuu1=^K, dch=\035dch %p1%d;,
- dch1=\035dch;, dl=\035dli %p1%d;, dl1=\035dli;,
- el=\035dch 80;, hpa=\r\035rig %p1%d;, ht=^I,
- il1=\013\035ili;, ind=^J, indn=\035dow %p1%d;,
- rs2=!com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;,
- tbc=\035sto;,
-# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981
-# Here's the command file that I use to get rogue to work on the 4025.
-# It should work with any program using the old curses (e.g. it better
-# not try to scroll, or cursor addressing won't work. Also, you can't
-# see the cursor.)
-# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
-tek4025-cr|tek 4025 for curses and rogue,
- OTbs, am,
- cols#80, it#8, lines#33,
- clear=\037era;, cub1=^H, cud1=^F^J, cuf1=\037rig;,
- cup=\037jum%i%p1%d\,%p2%d;, cuu1=^K, ht=^I, ind=^F^J,
- is2=!com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r,
- rmcup=\037wor 0, smcup=\037wor 33h,
-# next two lines commented out since curses only allows 128 chars, sigh.
-# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\
-# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0:
-tek4025ex|4025ex|4027ex|tek 4025 w/!,
- is2=\037com 33\r\n!sto 9\,17\,25\,33\,41\,49\,57\,65\,73\r,
- rmcup=\037com 33\r, smcup=!com 31\r, use=tek4025,
-tek4105|tektronix 4105,
- OTbs, am, mir, msgr, ul, xenl, xt,
- cols#79, it#8, lines#29,
- acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
- clear=\E[2J\E[H, cr=^M, cud1=\E[1B, cuf1=\E[1C,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P,
- dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m,
- is2=\E%!1\E[?6141\E[m, kbs=^H, kcub1=\E[1D, kcud1=\E[1B,
- kcuf1=\E[1C, kcuu1=\E[1A, rev=\E[=1;<3m, ri=\E[T,
- rmacs=\E[m, rmcup=, rmir=\E[4l, rmso=\E[=0;<1m,
- rmul=\E[=0;<1m, sgr0=\E[=0;<1m, smacs=\E[1m,
- smcup=\E%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
- smul=\E[=5;<2m, tbc=\E[1g,
-
-# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
-tek4105-30|4015 emulating 30 line vt100,
- am, mir, msgr, xenl, xon,
- cols#80, it#8, lines#30, vt#3,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
- clear=\E[H\E[J$<50>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
- enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, ka1=\EOq,
- ka3=\EOs, kb2=\EOr, kbs=^H, kc1=\EOp, kc3=\EOn, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kent=\EOM, kf0=\EOy,
- kf1=\EOP, kf10=\EOx, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt,
- kf6=\EOu, kf7=\EOv, kf8=\EOl, kf9=\EOw, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
- sgr0=\E[m\017$<2>, smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=,
- smso=\E[1;7m$<2>, smul=\E[4m$<2>, tbc=\E[3g,
-
-# Tektronix 4105 from BRL
-# The following setup modes are assumed for normal operation:
-# CODE ansi CRLF no DABUFFER 141
-# DAENABLE yes DALINES 30 DAMODE replace
-# DAVISIBILITY yes ECHO no EDITMARGINS 1 30
-# FLAGGING input INSERTREPLACE replace LFCR no
-# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B
-# SELECTCHARSET G1 0 TABS -2
-# Other setup modes may be set for operator convenience or communication
-# requirements; I recommend
-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1
-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
-# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132
-# XMTDELAY 0
-# and factory color maps. After setting these modes, save them with NVSAVE. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# "IC" cannot be used in combination with "im" & "ei".
-# "tek4105a" is just a guess:
-tek4105a|Tektronix 4105,
- OTbs, OTpt, msgr, xon,
- OTkn#8, cols#80, it#8, lines#30, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
- cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
- lf5=F6, lf6=F8, ll=\E[30;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs2=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
-
-#
-# Tektronix 4106/4107/4109 from BRL
-# The following setup modes are assumed for normal operation:
-# CODE ansi COLUMNMODE 80 CRLF no
-# DABUFFER 141 DAENABLE yes DALINES 32
-# DAMODE replace DAVISIBILITY yes ECHO no
-# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace
-# LFCR no LOCKKEYBOARD no ORIGINMODE relative
-# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0
-# TABS -2
-# Other setup modes may be set for operator convenience or communication
-# requirements; I recommend
-# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
-# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
-# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
-# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3
-# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
-# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132
-# XMTDELAY 0
-# and factory color maps. After setting these modes, save them with NVSAVE. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-# "IC" cannot be used in combination with "im" & "ei".
-tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
- msgr, xon,
- cols#80, it#8, lines#32, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
- civis=\E%!0\ETD00\E%!1, clear=\E[H\E[J,
- cnorm=\E%!0\ETD10\E%!1, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, cvvis=\E%!0\ETD70\E%!1,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS, is2=\E%!1,
- kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
- kf0=\EOA, kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EOP, kf5=\EOQ,
- kf6=\EOR, kf7=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, lf4=F5,
- lf5=F6, lf6=F8, ll=\E[32;H, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rin=\E[%p1%dT, rmacs=^O, rmcup=\E%!0\ELBH=\E%!1,
- rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
- smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
-
-tek4107|tek4109|tektronix terminals 4107 4109,
- OTbs, am, mir, msgr, ul, xenl, xt,
- cols#79, it#8, lines#29,
- bel=^G, blink=\E%!1\E[5m$<2>\E%!0,
- bold=\E%!1\E[1m$<2>\E%!0, clear=\ELZ, cnorm=\E%!0, cr=^M,
- cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
- dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- rev=\E%!1\E[7m$<2>\E%0, ri=\EI,
- rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
- sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0,
- sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
- smul=\E%!1\E[4m$<2>\E%!0,
-# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s;
-# see the note attached to tek4207.
-tek4207-s|Tektronix 4207 with sysline but no memory,
- eslok, hs,
- dsl=\E7\E[?6l\E[2K\E[?6h\E8, fsl=\E[?6h\E8,
- is1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
- is2=\E7\E[?6l\E[2K\E[?6h\E8,
- tsl=\E7\E[?6l\E[2K\E[;%i%df, use=tek4107,
-
-# The 4110 series may be a wonderful graphics series, but they make the 4025
-# look good for screen editing. In the dialog area, you can't move the cursor
-# off the bottom line. Out of the dialog area, ^K moves it up, but there
-# is no way to scroll.
-#
-# Note that there is a floppy for free from Tek that makes the
-# 4112 emulate the vt52 (use the vt52 termcap). There is also
-# an expected enhancement that will use ANSI standard sequences.
-#
-# 4112 in non-dialog area pretending to scroll. It really wraps
-# but vi is said to work (more or less) in this mode.
-#
-# 'vi' works reasonably well with this entry.
-#
-otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
- am,
- cols#80, lines#34,
- bel=^G, clear=\E^L, cr=^M, cub1=^H, cud1=^J, cuu1=^K, ind=^J,
- rmcup=\EKA1\ELV1, smcup=\EKA0\ELV0\EMG0,
-# The 4112 with the ANSI compatibility enhancement
-tek4112|tek4114|tektronix 4110 series,
- OTbs, am, db,
- cols#80, lines#34,
- cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P, dl1=\E[M,
- ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
- ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-tek4112-nd|4112 not in dialog area,
- OTns,
- cuu1=^K, use=tek4112,
-tek4112-5|4112 in 5 line dialog area,
- lines#5, use=tek4112,
-# (tek4113: this used to have "<cuf1=\LM1\s\LM0>", someone's mistake;
-# removed "<smacs=\E^N>, <rmacs=\E^O>", which had been commented out in 8.3.
-# Note, the !0 and !1 sequences in <rmcup>/<smcup>/<cnorm>/<civis> were
-# previously \0410 and \0411 sequences...I don't *think* they were supposed
-# to be 4-digit octal -- esr)
-tek4113|tektronix 4113 color graphics with 5 line dialog area,
- OTbs, am, da, eo,
- cols#80, lines#5,
- clear=\ELZ, cub1=^H, cud1=^J, cuf1=\ELM1 \ELM0,
- flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
- is2=\EKA1\ELL5\ELV0\ELV1, uc=\010\ELM1_\ELM0,
-tek4113-34|tektronix 4113 color graphics with 34 line dialog area,
- lines#34,
- is2=\EKA1\ELLB2\ELV0\ELV1, use=tek4113,
-# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
-# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
-# :vb: needs enough delay to let you see the background color being toggled.
-tek4113-nd|tektronix 4113 color graphics with no dialog area,
- OTbs, am, eo,
- cols#80, it#8, lines#34,
- clear=\E^L, cub1=^H, cud1=^J, cuf1=^I, cuu1=^K,
- cvvis=\ELZ\EKA0,
- flash=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0,
- home=\ELF7l\177 @, ht=^I, is2=\ELZ\EKA0\ELF7l\177 @,
- ll=\ELF hl @, rmso=\EMT1, smso=\EMT2, uc=\010\EMG1_\EMG0,
-# This entry is from Tek. Inc. (Brian Biehl)
-# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
-otek4115|Tektronix 4115,
- OTbs, am, da, db, eo,
- cols#80, it#8, lines#34,
- cbt=\E[Z, clear=\E[H\E[2J,
- cnorm=\E%!0\ELBG8\E%!1\E[34;1H, cub1=\E[D, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- cvvis=\E%!0\ELBB2\E%!1, dch1=\E[P, dl1=\E[M, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, if=/usr/share/tabset/vt100,
- il1=\E[L,
- is2=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m,
- kbs=^H, ri=\EM, rmam=\E[?7l,
- rmcup=\E%!0\ELBG8\E%!1\E[34;1H\E[J, rmir=\E[4l,
- rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m, smam=\E[?7h,
- smcup=\E%!0\ELBB2\E%!1, smir=\E[4h, smkx=\E=, smso=\E[7m,
- smul=\E[4m,
-tek4115|newer tektronix 4115 entry with more ANSI capabilities,
- am, xon,
- cols#80, lines#34,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J,
- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, hpa=\E[%p1%{1}%+%dG,
- ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
- il1=\E[L, ind=^J, invis=\E[8m, kbs=^H, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
- rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
- rmso=\E[m, rmul=\E[m,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
- vpa=\E[%p1%{1}%+%dd,
-# The tek4125 emulates a vt100 incorrectly - the scrolling region
-# command is ignored. The following entry replaces <csr> with the needed
-# <il>, <il>, and <smir>; removes some cursor pad commands that the tek4125
-# chokes on; and adds a lot of initialization for the tek dialog area.
-# Note that this entry uses all 34 lines and sets the cursor color to green.
-# Steve Jacobson 8/85
-# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
-# commented out, <smir>=\E1 because there's no <rmir> -- esr)
-tek4125|tektronix 4125,
- lines#34,
- csr@, dl1=\E[1M, il1=\E[1L,
- is2=\E%\E!0\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E!1\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
- rc@, sc@, smkx=\E=, use=vt100,
-
-# From: <jcoker@ucbic>
-# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
-# supplied another, less capable 4107 entry. So we'll use that for 4107 and
-# note that if jcoker wasn't confused you may be able to use this one.
-# I merged in <msgr>,<ind>,<ri>,<invis>,<tbc> from a BRL entry -- esr)
-tek4207|Tektronix 4207 graphics terminal with memory,
- am, bw, mir, msgr, ul, xenl,
- cols#80, it#8, lines#32,
- blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J$<156/>,
- cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\EM, dch1=\E[P$<4/>, dl1=\E[M$<3/>, ed=\E[J,
- el=\E[K$<5/>, home=\E[H, ht=^I, ich1=\E[@$<4/>,
- il1=\E[L$<3/>, ind=\E[S, invis=\E[=6;<5,
- is2=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J,
- kcub1=\E[D, kcud1=\ED, kcuf1=\E[C, kcuu1=\EM, khome=\E[H,
- rev=\E[7m, ri=\E[T,
- rmcup=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smcup=\E[?6l\E[H\E[J, smso=\E[7m,
- smul=\E[4m, tbc=\E[1g,
-
-# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985
-# (tek4404: There was a "\!" in <smcup> that I replaced with "\E!".
-# Tab had been given as \E2I,that must be the tab-set capability -- esr)
-tek4404|tektronix 4404,
- OTbs,
- cols#80, it#8, lines#32,
- blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[1M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\E[2I, il1=\E[1L,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, rc=\E8,
- rmcup=\E[1;1H\E[0J\E[?6h\E[?1l, rmir=\E[4l,
- rmkx=\E[?1h, rmso=\E[27m, rmul=\E[m, sc=\E7, sgr0=\E[m,
- smcup=\E%\E!1\E[1;32r\E[?6l\E>, smir=\E[4h,
- smkx=\E[?1l, smso=\E[7m, smul=\E[4m,
-# Some unknown person wrote:
-# I added the is string - straight Unix has ESC ; in the login
-# string which sets a ct8500 into monitor mode (aka 4025 snoopy
-# mode). The is string here cleans up a few things (but not
-# everything).
-ct8500|tektronix ct8500,
- am, bw, da, db,
- cols#80, lines#25,
- bel=^G, cbt=\E^I, clear=\E^E, cr=^M, cub1=^H, cud1=^J,
- cuf1=\ES, cup=\E|%p1%{32}%+%c%p2%{32}%+%c, cuu1=\ER,
- dch1=\E^], dl1=\E^M, ed=\E^U, el=\E^T, ht=^I, ich1=\E^\,
- il1=\E^L, ind=^J, is2=\037\EZ\Ek, ri=\E^A, rmso=\E\s,
- rmul=\E\s, sgr0=\E\s, smso=\E$, smul=\E!,
-
-# Tektronix 4205 terminal.
-#
-# am is not defined because the wrap around occurs not when the char.
-# is placed in the 80'th column, but when we are attempting to type
-# the 81'st character on the line. (esr: hmm, this is like the vt100
-# version of xenl, perhaps am + xenl would work!)
-#
-# Bold, dim, and standout are simulated by colors and thus not allowed
-# with colors. The tektronix color table is mapped into the RGB color
-# table by setf/setb. All colors are reset to factory specifications by oc.
-# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the
-# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub-
-# interval then maps into pre-defined value.
-tek4205|tektronix 4205,
- ccc, mir, msgr,
- colors#8, cols#80, it#8, lines#30, ncv#49, pairs#63,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[=7;<4m, cbt=\E[Z,
- clear=\E[2J\E[H, cr=^M, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch1=\E[1P, dim=\E[=1;<6m, dl1=\E[1M, ech=\E%p1%dX,
- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
- ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
- initc=\E%%!0\ETF4%?%p1%{0}%=%t0%e%p1%{1}%=%t4%e%p1%{2}%=%t3%e%p1%{3}%=%t5%e%p1%{4}%=%t2%e%p1%{5}%=%t6%e%p1%{6}%=%t7%e1%;%?%p2%{125}%<%t0%e%p2%{250}%<%tA2%e%p2%{375}%<%tA?%e%p2%{500}%<%tC8%e%p2%{625}%<%tD4%e%p2%{750}%<%tE1%e%p2%{875}%<%tE\:%eF4%;%?%p3%{125}%<%t0%e%p3%{250}%<%tA2%e%p3%{375}%<%tA?%e%p3%{500}%<%tC8%e%p3%{625}%<%tD4%e%p3%{750}%<%tE1%e%p3%{875}%<%tE\:%eF4%;%?%p4%{125}%<%t0%e%p4%{250}%<%tA2%e%p4%{375}%<%tA?%e%p4%{500}%<%tC8%e%p4%{625}%<%tD4%e%p4%{750}%<%tE1%e%p4%{875}%<%tE\:%eF4%;\E%%!1,
- invis=\E[=6;<5, is1=\E%!0\ETM1\E%!1\E[m, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOA,
- kf1=\EOB, kf2=\EOC, kf3=\EOD, kf4=\EP, kf5=\EQ, kf6=\ER,
- kf7=\ES,
- oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1,
- op=\E[39;40m, rev=\E[7m, ri=\EM, rmacs=^O, rmcup=,
- rmir=\E[4l, rmso=\E[=0;<1m, rmul=\E[24m,
- setb=\E[=%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
- setf=\E[<%?%p1%{0}%=%t0m%e%p1%{1}%=%t4m%e%p1%{2}%=%t3m%e%p1%{3}%=%t5m%e%p1%{4}%=%t2m%e%p1%{5}%=%t6m%e%p1%{6}%=%t7m%e1m%;,
- sgr0=\E[=0;<1m\E[24;25;27m\017, smacs=^N,
- smcup=\E%%!1\E[?6l\E[2J, smir=\E[4h, smso=\E[=2;<3m,
- smul=\E[4m, tbc=\E[1g,
-
-#### Teletype (tty)
-#
-# These are the hardcopy Teletypes from before AT&T bought the company,
-# clattering electromechanical dinosaurs in Bakelite cases that printed on
-# pulpy yellow roll paper. If you remember these you go back a ways.
-# Teletype-branded VDTs are listed in the AT&T section.
-#
-# The earliest UNIXes were designed to use these clunkers; nroff and a few
-# other programs still default to emitting codes for the Model 37.
-#
-
-tty33|tty35|model 33 or 35 teletype,
- hc, os, xon,
- cols#72,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-tty37|model 37 teletype,
- OTbs, hc, os, xon,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
- ind=^J,
-
-# There are known to be at least three flavors of the tty40, all seem more
-# like IBM half duplex forms fillers than ASCII terminals. They have lots of
-# awful braindamage, such as printing a visible newline indicator after each
-# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is
-# braindamaged but has hope and is described here. The 40-4 is a 3270
-# lookalike and beyond hope. The terminal has visible bell but I don't know
-# it - it's null here to prevent it from showing the BL character.
-# There is an \EG in <nl> because of a bug in old vi (if stty says you have
-# a "newline" style terminal (-crmode) vi figures all it needs is nl
-# to get crlf, even if <cr> is not ^M.)
-# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
-tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2,
- OTbs, xon,
- cols#80, lines#24,
- clear=\EH$<20>\EJ$<80>, cr=\EG, cub1=^H, cud1=\EB,
- cuf1=\EC, cuu1=\E7, dch1=\EP$<50>, dl1=\EM$<50>,
- ed=\EJ$<75>, home=\EH$<10>, ht=\E@$<10>, hts=\E1,
- ich1=\E\^$<50>, il1=\EL$<50>, ind=\ES$<20>, kbs=^],
- kcub1=^H, mc4=^T, mc5=\022$<2000>, ri=\ET$<10>, rmso=\E4,
- rs2=\023\ER$<60>, smso=\E3, tbc=\EH\E2$<80>,
-tty43|model 43 teletype,
- OTbs, am, hc, os, xon,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
-
-#### Tymshare
-#
-
-# You can add <is2=\E<> to put this 40-column mode, though I can't
-# for the life of me think why anyone would want to.
-scanset|sc410|sc415|Tymshare Scan Set,
- am, bw, msgr,
- cols#80, lines#24,
- acsc=j%k4l<m-q\,x5, bel=^G, clear=\EH\EJ, cr=^M, cub1=^H,
- cud1=^J, cuf1=^I, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, ed=\EJ, el=\EK, home=\EH, ind=^J, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, mc0=\E;3, mc4=\E;0,
- mc5=\E;0, rc=^C, rmacs=^O, rs1=\E>, sc=^B, smacs=^N,
-
-#### Volker-Craig (vc)
-#
-# If you saw a Byte Magazine cover with a terminal on it during the early
-# 1980s, it was probably one of these. Carl Helmers liked them because
-# they could crank 19.2 and were cheap (that is, he liked them until he tried
-# to program one...)
-#
-
-# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time
-# every other linefeed.
-vc303|vc103|vc203|volker-craig 303,
- OTbs, OTns, am,
- cols#80, lines#24,
- bel=^G, clear=\014$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
- cuu1=^N, home=\013$<40>, kcub1=^H, kcud1=^J, kcuf1=^I,
- kcuu1=^N, ll=\017$<1>W,
-vc303a|vc403a|volker-craig 303a,
- clear=\030$<40>, cuf1=^U, cuu1=^Z, el=\026$<20>,
- home=\031$<40>, kcuf1=^U, kcuu1=^Z, ll=^P, use=vc303,
-# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
-vc404|volker-craig 404,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\030$<40>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
- ed=\027$<40>, el=\026$<20>, home=\031$<40>, ind=^J,
- kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^Z,
-vc404-s|volker-craig 404 w/standout mode,
- cud1=^J, rmso=^O, smso=^N, use=vc404,
-# From: <wolfgang@cs.sfu.ca>
-# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
-vc414|vc414h|Volker-Craig 414H in sane escape mode.,
- OTbs, am,
- cols#80, lines#24,
- clear=\E\034$<40>, cud1=\E^K, cuf1=^P,
- cup=\E\021%p2%c%p1%c$<40>, cuu1=\E^L, dch1=\E3,
- dl1=\E\023$<40>, ed=\E^X, el=\E\017$<10/>, home=\E^R,
- ich1=\E\:, il1=\E\032$<40>, kcub1=^H, kcud1=\E^K, kcuf1=^P,
- kcuu1=\E^L, kf0=\EA, kf1=\EB, kf2=\EC, kf3=\ED, kf4=\EE,
- kf5=\EF, kf6=\EG, kf7=\EH, khome=\E^R, lf0=PF1, lf1=PF2,
- lf2=PF3, lf3=PF4, lf4=PF5, lf5=PF6, lf6=PF7, lf7=PF8,
- rmso=\E^_, smso=\E^Y,
-vc415|volker-craig 415,
- clear=^L, use=vc404,
-
-######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
-#
-
-#### IBM PC and clones
-#
-
-# The pcplot IBM-PC terminal emulation program is really messed up. It is
-# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly,
-# doesn't support scrolling regions, ignores add line commands, and ignores
-# delete line commands. Consequently, the resulting behavior looks like a
-# crude adm3a-type terminal.
-# Steve Jacobson 8/85
-pcplot|pc-plot terminal emulation program,
- xenl@,
- csr@, dl@, dl1@, il@, il1@, rc@, sc@, use=vt100,
-# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA>
-# I've found that my KayPro II, running MDM730, continues to emulate an
-# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX
-# system the following termcap entry works well:
-# I have noticed a couple of minor glitches, but nothing I can't work
-# around. (I added two capabilities from the BRL entry -- esr)
-kaypro|kaypro2|kaypro II,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\032$<1/>, cr=^M, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dl1=\ER, ed=^W,
- el=^X, home=^^, il1=\EE, ind=^J, kcud1=^J, kcuf1=^L, kcuu1=^K,
-
-# From IBM, Thu May 5 19:35:27 1983
-# (ibmpc: commented out <smir>=\200R because we don't know <rmir> -- esr)
-ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS),
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L^K, cr=^M^^, cub1=^], cud1=^J, cuf1=^\,
- cuu1=^^, home=^K, ind=\n$<10>, kcud1=^_,
-
-ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX,
- OTbs, am, bw, eo, hs, km, msgr, ul,
- cols#80, it#8, lines#24,
- acsc=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\Ec, cr=^M,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
- home=\E[H, hpa=\E[%i%p1%dG, ind=\E[S\E[B,
- indn=\E[%p1%dS\E[%p1%dB, invis=\E[30;40m, kbs=^H,
- kcbt=^], kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kdch1=\177, kend=\E[Y, kf1=\240, kf10=\251, kf2=\241,
- kf3=\242, kf4=\243, kf5=\244, kf6=\245, kf7=\246, kf8=\247,
- kf9=\250, khome=\E[H, kich1=\E[^H, knp=\E[U, kpp=\E[V,
- ll=\E[24;1H, nel=^M, rev=\E[7m, ri=\E[T\E[A,
- rin=\E[%p1%dT\E[%p1%dA, rmso=\E[m, rmul=\E[m,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m,
- sgr0=\E[m, smso=\E[7m, smul=\E[4m,
-
-#### Apple II
-#
-# Apple II firmware console first, then various 80-column cards and
-# terminal emulators. For two cents I'd toss all these in the UFO file
-# along with the 40-column apple entries.
-#
-
-# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
-# 'it#8' tells UNIX that you have tabs every 8 columns. This is a
-# function of TIC, not the firmware.
-# The clear key on a IIgs will do something like clear-screen,
-# depending on what you're in.
-appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface,
- OTbs, am, bw, eo, msgr,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, ht=^I, ind=^W, kbs=^H, kclr=^X, kcub1=^H, kcud1=^J,
- kcuf1=^U, kcuu1=^K, kdch1=\177, nel=^M^W, ri=^V, rmso=^N,
- smso=^O,
-# Apple //e with 80-column card, entry from BRL
-# The modem interface is permitted to discard LF (maybe DC1), otherwise
-# passing characters to the 80-column firmware via COUT (PR#3 assumed).
-# Auto-wrap does not work right due to newline scrolling delay, which also
-# requires that you set "stty cr2".
-# Note: Cursor addressing is only available via the Pascal V1.1 entry,
-# not via the BASIC PR#3 hook. All this nonsense can be avoided only by
-# using a terminal emulation program instead of the built-in firmware.
-apple2e|Apple //e,
- bw, msgr,
- cols#80, lines#24,
- bel=^G, clear=\014$<100/>, cub1=^H, cud1=^J, cuu1=^_,
- ed=\013$<4*/>, el=\035$<4/>, home=^Y, ht=^I, ind=^W,
- is2=^R^N, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^U, kcuu1=^K,
- nel=\r$<100/>, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
- smso=^O,
-# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
-# 4.20, with incoming and outgoing terminals both on 0, emulation On.
-apple2e-p|Apple //e via Pascal,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, kbs=^H, kcub1=^H,
- kcud1=^J, use=apple2e,
-# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
-# Enable DC3/DC1 flow control with "stty ixon -ixany".
-apple-ae|ASCII Express,
- OTbs, am, bw, msgr, nxon, xon,
- cols#80, it#8, lines#24,
- bel=\007$<500/>, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, ind=^W, is2=^R^N, kclr=^X, kcub1=^H, kcud1=^J,
- kcuf1=^U, kcuu1=^K, rev=^O, ri=^V, rmso=^N, rs1=^R^N, sgr0=^N,
- smso=^O,
-appleII|apple ii plus,
- OTbs, am,
- cols#80, it#8, lines#24,
- clear=^L, cnorm=^TC2, cub1=^H, cud1=^J, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, cvvis=^TC6,
- ed=^K, el=^], flash=\024G1$<200/>\024T1, home=\E^Y, ht=^I,
- is2=\024T1\016, kcud1=^J, kcuf1=^U, rmso=^N, sgr0=^N,
- smso=^O,
-# Originally by Gary Ford 21NOV83
-# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985
-apple-80|apple II with smarterm 80 col,
- OTbs, am, bw,
- cols#80, lines#24,
- cbt=^R, clear=\014$<10*/>, cr=\r$<10*/>, cub1=^H, cud1=^J,
- cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_,
- ed=\013$<10*/>, el=\035$<10/>, home=^Y,
-apple-soroc|apple emulating soroc 120,
- am,
- cols#80, lines#24,
- bel=^G, clear=\E*$<300>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EY, el=\ET,
- home=^^, ind=^J, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-# From Peter Harrison, Computer Graphics Lab, San Francisco
-# ucbvax!ucsfmis!harrison .....uucp
-# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA
-# "These two work. If you don't have the inverse video chip for the
-# Apple with videx then remove the :so: and :se: fields."
-# (apple-videx: this used to be called DaleApple -- esr)
-apple-videx|Apple with videx videoterm 80 column board with inverse video,
- OTbs, am, xenl,
- cols#80, it#8, lines#24,
- clear=\014$<300/>, cub1=^H, cud1=^J, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, ht=^I, kcub1=^H, kcud1=^J, kcuf1=^U, khome=^Y,
- rmso=^Z2, sgr0=^Z2, smso=^Z3,
-# My system [for reference] : Apple ][+, 64K, Ultraterm display card,
-# Apple Cat ][ 212 modem, + more all
-# controlled by ASCII Express: Pro.
-# From Dave Shaver <isucs1!shaver>
-apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell,
- OTbs, am, eo, xt,
- cols#80, lines#24,
- acsc=, clear=^L, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- flash=^W35^W06, home=^Y,
- is2=^V4^W06\017\rVisible Bell Installed.\016\r\n,
- rmso=^N, smso=^O,
-apple-uterm|Ultraterm for Apple micros,
- OTbs, am, eo, xt,
- cols#80, lines#24,
- acsc=, clear=^L, cuf1=^\,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, is2=^V4^W06\016, rmso=^N, smso=^O,
-# from trwrba!bwong (Bradley W. Wong):
-#
-# This entry assumes that you are using an apple with the UCSD Pascal
-# language card. SYSTEM.MISCINFO is assumed to be the same as that
-# supplied with the standard apple except that screenwidth should be set
-# using SETUP to 80 columns. Note that the right arrow in not mapped in
-# this termcap entry. This is because that key, on the Apple, transmits
-# a ^U and would thus preempt the more useful "up" function of vi.
-#
-# HMH 2/23/81
-apple80p|80-column apple with Pascal card,
- am, bw,
- cols#80, lines#24,
- clear=^Y^L, cuf1=^\\:,
- cup=\036%p2%{32}%+%c%p1%{32}%+%c, cuu1=^_, ed=^K, el=^],
- home=^Y, kcub1=^H,
-#
-# Apple II+ equipped with Videx 80 column card
-#
-# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL;
-# manually converted by D A Gwyn
-#
-# DO NOT use any terminal emulation with this data base, it works directly
-# with the Videx card. This has been tested with vi 1200 baud and works fine.
-#
-# This works great for vi, except I've noticed in pre-R2, ^U will scroll back
-# 1 screen, while in R2 ^U doesn't.
-# For inverse alternate character set add:
-# <smacs>=^O:<rmacs>=^N:
-# (apple-v: added it#8 -- esr)
-apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520),
- am, xenl,
- cols#80, it#8, lines#24,
- bel=\007$<100/>, clear=\014$<16*/>, cr=^M, cub1=^H,
- cud1=^J, cuf1=^\, cup=\036%p2%{32}%+%c%p1%{32}%+%c,
- cuu1=^_, ed=\013$<16*/>, el=^], home=^Y, ht=\011$<8/>,
- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^\, kcuu1=^_,
- khome=^Y, rmso=^Z2, smso=^Z3,
-apple-videx3|vapple|Apple II with 80 col card,
- OTbs, am,
- cols#80, lines#24,
- clear=\Ev, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, el=\Ex, home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!,
- kf5=\E", kf6=\E#, kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
-#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
-aepro|Apple II+ running ASCII Express Pro--vt52,
- OTbs,
- cols#80, lines#24,
- clear=\014$<300/>, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH,
-# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
-apple-vm80|ap-vm80|apple with viewmax-80,
- OTbs,
- cols#80, lines#24,
- clear=\014$<300/>, cuf1=^\\:,
- cup=\036%p1%{32}%+%c%p2%{32}%+%c$<100/>, cuu1=^_,
- ed=\013$<300/>, el=^], home=\031$<200/>,
-
-#### Apple Lisa & Macintosh
-#
-
-# (lisa: changed <cvvis> to <cnorm> -- esr)
-lisa|apple lisa console display (black on white),
- OTbs, am, eo, msgr,
- cols#88, it#8, lines#32,
- acsc=jdkclfmenbqattuvvuwsx`, civis=\E[5h, clear=^L,
- cnorm=\E[5l, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@, il1=\E[L,
- is2=\E>\E[m\014, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, rmacs=\E[10m, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smacs=\E[11m, smso=\E[7m, smul=\E[4m,
-liswb|apple lisa console display (white on black),
- is2=\E>\E[0;7m\014, rmso=\E[0;7m, rmul=\E[0;7m,
- smso=\E[m, smul=\E[4m, use=lisa,
-
-# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL;
-# <is2> revised by Ferd Brundick <fsbrn@BRL.ARPA>
-#
-# These entries assume that the 'Auto Wraparound' is enabled.
-# Xon-Xoff flow control should also be enabled.
-#
-# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
-# settings are in non-volatile memory and don't need to be reset upon login.
-# Also setting the number of columns glitches the screen annoyingly.
-# You can type "reset" to get them set.
-#
-lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation,
- OTbs, OTpt, am, xenl, xon,
- OTkn#4, cols#80, it#8, lines#24, vt#3,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
- el=\E[K, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP, kf1=\EOQ,
- kf2=\EOR, kf3=\EOS, lf0=F1, lf1=F2, lf2=F3, lf3=F4, rc=\E8,
- rev=\E[7m, ri=\EM, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r,
- sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g,
-# Lisaterm in 132 column ("wide") mode.
-lisaterm-w|Apple Lisa with Lisaterm in 132 column mode,
- cols#132,
- kbs=^H, kcub1=^H, kcud1=^J, use=lisaterm,
-# Although MacTerminal has insert/delete line, it is commented out here
-# since it is much faster and cleaner to use the "lock scrolling region"
-# method of inserting and deleting lines due to the MacTerminal implementation.
-# Also, the "Insert/delete ch" strings have an extra character appended to them
-# due to a bug in MacTerminal V1.1. Blink is disabled since it is not
-# supported by MacTerminal.
-mac|macintosh|Macintosh with MacTerminal,
- xenl,
- OTdN#30,
- blink@, dch1=\E[P$<7/>, ich1=\E[@$<9/>, ip=$<7/>, use=lisa,
-# Lisaterm in 132 column ("wide") mode.
-mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
- cols#132, use=mac,
-
-# 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
-#
-
-# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7".
-# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr)
-# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90
-coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II,
- OTbs, am,
- cols#80, it#8, lines#24,
- bel=^G, blink=^_", bold=\E\:^A, civis=^E\s,
- clear=\014$<5*/>, cnorm=^E!, cub1=^H, cud1=^J, cuf1=^F,
- cup=\002%p2%{32}%+%c%p1%{32}%+%c$<2/>, cuu1=^I,
- dl1=^_1, ed=^K, el=^D, home=^A, il1=^_0, kcub1=^H, kcud1=^J,
- kcuf1=^I, kcuu1=^L, rev=^_\s, rmso=^_!, rmul=^_#,
- sgr0=\037!\E\:\0, smso=^_\s, smul=^_",
-# (trs2: removed obsolete ":nl=^_:" -- esr)
-trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M,
- OTbs, am, msgr,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^_, cuf1=^],
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^^, dl1=^K, ed=^B,
- el=^A, home=^F, ht=^I, il1=^D, ind=^J, kbs=^H, kcub1=^\,
- kcud1=^_, kcuf1=^], kcuu1=^^, rmso=^O, sgr0=^O, smso=^N,
-# From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu>
-# (This had extension capabilities
-# :BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\
-# :CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@:
-# I also deleted the unnecessary ":kn#2:", ":sg#0:" -- esr)
-trs16|trs-80 model 16 console,
- OTbs, am,
- cols#80, it#8, lines#24,
- acsc=jak`l_mbquvewcxs, bel=^G, civis=\ERc, clear=^L,
- cnorm=\ERC, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
- dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
- ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- kf0=^A, kf1=^B, kf2=^D, kf3=^L, kf4=^U, kf5=^P, kf6=^N, kf7=^S,
- khome=^W, lf0=f1, lf1=f2, lf2=f3, lf3=f4, lf4=f5, lf5=f6, lf6=f7,
- lf7=f8, mc4=\E]+, mc5=\E]=, rmacs=\ERg, rmso=\ER@, sgr0=\ER@,
- smacs=\ERG, smso=\ERD,
-
-#### Atari ST
-#
-
-# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
-atari|atari st,
- OTbs, am,
- cols#80, it#8, lines#25,
- clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
- ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
-# UniTerm terminal program for the Atari ST: 49-line VT220 emulation mode
-# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
-uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
- lines#49,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H,
- use=vt220,
-# MiNT VT52 emulation. 80 columns, 25 rows.
-# MiNT is Now TOS, the operating system which comes with all Ataris now
-# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
-# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
-# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
-st52|Atari ST with VT52 emulation,
- am, km,
- cols#80, lines#25,
- bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
- ind=^J, ka1=\E#7, ka3=\E#5, kb2=\E#9, kbs=^H, kc1=\E#1,
- kc3=\E#3, kclr=\E#7, kcub1=\E#K, kcud1=\E#P, kcuf1=\E#M,
- kcuu1=\E#H, kf0=\E#D, kf1=\E#;, kf2=\E#<, kf3=\E#=, kf4=\E#>,
- kf5=\E#?, kf6=\E#@, kf7=\E#A, kf8=\E#B, kf9=\E#C, khome=\E#G,
- kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=^M^J, rc=\Ek,
- ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
- smcup=\Ee, smso=\Ep,
-
-#### Commodore Business Machines
-#
-# Formerly located in West Chester, PA; went spectacularly bust in 1994
-# after years of shaky engineering and egregious mismanagement. Made one
-# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64,
-# C-128, VIC-20). The C-64 is said to have been the most popular machine
-# ever (most units sold); they can still be found gathering dust in closets
-# everywhere.
-#
-
-# From: Kent Polk <kent@swrinde.nde.swri.edu>, 30 May 90
-# Added a few more entries, converted caret-type control sequence (^x) entries
-# to '\0xx' entries since a couple of people mentioned losing '^x' sequences.
-# Corrections by Ty Sarna <tsarna@endicor.com>, Sat Feb 28 18:55:15 1998
-#
-# :as:, :ae: Support for alternate character sets.
-# :ve=\E[\040p:vi=\E[\060\040p: cursor visible/invisible.
-# :xn: vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept)
-# This one appears to fix a problem I always had with a line ending
-# at 'width+1' (I think) followed by a blank line in vi. The blank
-# line tended to disappear and reappear depending on how the screen
-# was refreshed. Note that this is probably needed only if you use
-# something like a Dnet Fterm with the window sized to some peculiar
-# dimension larger than 80 columns.
-# :k0=\E9~: map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;'
-# (amiga: removed obsolete :kn#10:,
-# also added empty <acsc> to suppress a warning --esr)
-amiga|Amiga ANSI,
- OTbs, am, bw, xenl,
- cols#80, lines#24,
- acsc=, bel=^G, blink=\E[7;2m, bold=\E[1m, cbt=\E[Z,
- civis=\E[0 p, clear=\E[H\E[J, cnorm=\E[ p, cub=\E[%p1%dD,
- cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
- indn=\E[%p1%dS, invis=\E[8m, is2=\E[20l, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\E[9~,
- kf1=\E[0~, kf2=\E[1~, kf3=\E[2~, kf4=\E[3~, kf5=\E[4~,
- kf6=\E[5~, kf7=\E[6~, kf8=\E[7~, kf9=\E[8~, rev=\E[7m,
- ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmso=\E[m, rmul=\E[m,
- rs1=\Ec, sgr0=\E[m, smacs=^N, smso=\E[7m, smul=\E[4m,
-
-# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995
-# (amiga: added empty <acsc> to suppress a warning.
-# I'm told this entry screws up badly with AS225, the Amiga
-# TCP/IP package once from Commodore, and now sold by InterWorks.--esr)
-amiga-h|Hans Verkuil's Amiga ANSI,
- OTbs, bw, msgr,
- cols#80, lines#24,
- acsc=, bel=^G, blink=\2337;2m, bold=\2331m, cbt=\233Z,
- civis=\2330 p, clear=\233H\233J, cnorm=\233 p, cr=^M,
- cub=\233%p1%dD, cub1=\233D, cud=\233%p1%dB, cud1=\233B,
- cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
- cuu=\233%p1%dA, cuu1=\233A, dch=\233%p1%dP, dch1=\233P,
- dim=\2332m, ech=\233%p1%dP, ed=\233J, el=\233K, flash=^G,
- home=\233H, ht=^I, ich=\233%p1%d@, ich1=\233@, ind=\233S,
- indn=\233%p1%dS, invis=\2338m, is2=\23320l, kbs=^H,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
- kdch1=\177, kf0=\2339~, kf1=\2330~, kf2=\2331~, kf3=\2332~,
- kf4=\2333~, kf5=\2334~, kf6=\2335~, kf7=\2336~, kf8=\2337~,
- kf9=\2338~, nel=\233B\r, rev=\2337m, ri=\233T,
- rin=\233%p1%dT, rmacs=^O, rmcup=\233?7h, rmso=\2330m,
- rmul=\2330m, rs1=\Ec, sgr0=\2330m, smacs=^N, smcup=\233?7l,
- smso=\2337m, smul=\2334m,
-
-# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999
-amiga-8bit|Amiga ANSI using 8-bit controls,
- acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
- ind=\204, indn@, ri=\215, rin@, use=amiga-h,
-
-# From: Ruediger Kuhlmann <terminfo@ruediger-kuhlmann.de>, 18 Jul 2000
-# requires use of appropriate preferences settings.
-amiga-vnc|Amiga using VNC console (black on light gray),
- am, da, db, msgr, ndscr,
- btns#1, colors#16, cols#80, lines#24, lm#0, ncv#0, pairs#256,
- bel=^G, blink=\E[7;2m, bold=\E[1m, civis=\E[0p,
- clear=\E[H\E[J, cnorm=\E[p\E[>?6l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[>?6h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
- dl=\E[%p1%dM, dl1=\E[1M, ed=\E[J, el=\E[K, flash=^G,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[1L, ind=\ED,
- indn=\E[%p1%dS, invis=\E8m,
- is2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
- kbs=^H, kcbt=\233Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\177, kf0=\E[9~, kf1=\E[0~, kf2=\E[1~,
- kf3=\E[2~, kf4=\E[3~, kf5=\E[4~, kf6=\E[5~, kf7=\E[6~,
- kf8=\E[7~, kf9=\E[8~, khlp=\E[?~, khome=\E[44~, kll=\E[45~,
- kmous=\E[M, knp=\E[42~, kpp=\E[41~, nel=\EE, oc=\E[0m,
- rev=\E[7m, ri=\EM, rin=\E[%p1%dT, rmcup=\E[?7h\E[r\E[J,
- rmkx=\E[?1l, rmso=\E[21m, rmul=\E[24m, rs1=\Ec,
- rs2=\E[>?2;18l\E[>?26;?6;20;>?15;?7;>?22;>?8h,
- setab=\E[%?%p1%{8}%>%t%'F'%p1%+%d%e4%p1%d%;m,
- setaf=\E[%?%p1%{8}%>%t%'2'%p1%+%d%e3%p1%d%;m,
- sgr0=\E[0m\017\E[30;85;>15m, smcup=\E[?7h, smkx=\E[?1h,
- smso=\E[1m, smul=\E[4m,
-
-# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
-# I'm trying to write a termcap for a commodore b-128, and I'm
-# having a little trouble. I've had to map most of my control characters
-# to something that unix will accept (my delete-char is a ctrl-t, etc),
-# and create some functions (like cm), but thats life.
-# The problem is with the arrow keys - right, and up work fine, but
-# left deletes the previous character and down I just can't figure out.
-# Jove knows what I want, but I don't know what it's sending to me (it
-# isn't thats bound to next-line in jove).
-# Anybody got any ideas? Here's my termcap.
-# DAG -- I changed his "^n" entries to "\n"; see if that works.
-#
-commodore|b-128|Commodore B-128 micro,
- am, bw,
- OTdN#20, cols#80, lines#24, pb#150,
- OTbc=^H, OTnl=^M, clear=\E\006$<10/>, cr=^M, cud1=^J,
- cuf1=^F, cup=\E\013%p1%2d\,%p2%2d\,$<20/>, cuu1=^P,
- dch1=\177$<10*/>, dl1=\Ed$<10*/>, el=\Eq$<10/>,
- home=\E^E, ht=\011$<5/>, ich1=\E\n$<5/>, il1=\Ei$<10/>,
- kcub1=^B, kcud1=^J, kcuf1=^F, kcuu1=^P, khome=\E^E, rmir=,
- smir=,
-
-#### North Star
-#
-# North Star Advantage from Lt. Fickie <brl-ibd!fickie> via BRL
-northstar|North Star Advantage,
- OTbs,
- cols#80, lines#24,
- clear=\004$<200/>,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<1/>, ed=\017$<200/>,
- el=\016$<200/>, home=\034\032$<200/>,
-
-#### Osborne
-#
-# Thu Jul 7 03:55:16 1983
-#
-# As an aside, be careful; it may sound like an anomaly on the
-# Osborne, but with the 80-column upgrade, it's too easy to
-# enter lines >80 columns!
-#
-# I've already had several comments...
-# The Osborne-1 with the 80-col option is capable of being
-# 52, 80, or 104 characters wide; default to 80 for compatibility
-# with most systems.
-#
-# The tab is destructive on the Ozzie; make sure to 'stty -tabs'.
-osborne-w|osborne1-w|osborne I in 104-column mode,
- msgr, ul, xt,
- cols#104, lines#24,
- bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, el=\ET, ich1=\EQ, il1=\EE, ind=^J, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, rmso=\E(, rmul=\Em, smso=\E), smul=\El,
-# Osborne I from ptsfa!rhc (Robert Cohen) via BRL
-osborne|osborne1|osborne I in 80-column mode,
- OTbs, am, mir, msgr, ul, xhp,
- OTdB#4, cols#80, lines#24,
- clear=^Z, cub1=\010$<4>, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- dch1=\EW$<4/>, dl1=\ER, el=\ET, il1=\EE, is2=^Z, kbs=^H,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, rmir=, rmso=\E),
- rmul=\Em, smir=\EQ, smso=\E(, smul=\El,
-#
-# Osborne Executive definition from BRL
-# Similar to tvi920
-# Added by David Milligan and Tom Smith (SMU)
-osexec|Osborne executive,
- OTbs, am,
- OTug#1, cols#80, lines#24, xmc#1,
- OTnl=^J, bel=^G, clear=^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dl1=\ER, ed=\EY, el=\ET, home=^^, hts=\E1, ich1=\EQ, il1=\EE,
- is2=\Eq\Ek\Em\EA\Ex0, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L,
- kcuu1=^K, kf0=^A@\r, kf1=^AA\r, kf2=^AB\r, kf3=^AC\r,
- kf4=^AD\r, kf5=^AE\r, kf6=^AF\r, kf7=^AG\r, kf8=^AH\r,
- kf9=^AI\r, rmir=, rmso=\Ek, rmul=\Em, smir=, smso=\Ej,
- smul=\El, tbc=\E3,
-
-#### Console types for obsolete UNIX clones
-#
-# Coherent, Minix, Venix, and several lesser-known kin were OSs for 8088
-# machines that tried to emulate the UNIX look'n'feel. Coherent and Venix
-# were commercial, Minix an educational tool sold in conjunction with a book.
-# Memory-segmentation limits and a strong tendency to look like V7 long after
-# it was obsolete made all three pretty lame. Venix croaked early. Coherent
-# and Minix were ported to 32-bit Intel boxes, only to be run over by a
-# steamroller named `Linux' (which, to be fair, traces some lineage to Minix).
-# Coherent's vendor, the Mark Williams Company, went belly-up in 1994. There
-# are also, I'm told, Minix ports that ran on Amiga and Atari machines and
-# even as single processes under SunOS and the Macintosh OS.
-#
-
-# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
-minix|minix console (v1.7),
- am, xenl,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S,
- kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp, lf2=PgDn, lf3=Num +,
- lf4=Num -, lf5=Num 5, nel=^M^J, rev=\E[7m, ri=\EM,
- rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
-minix-old|minix console (v1.5),
- xon,
- cols#80, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
- kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S, kf5=\E[G,
- khome=\E[H, nel=^M^J, rev=\E[7m, ri=\EM, rmso=\E[0m,
- rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
-# The linewrap option can be specified by editing /usr/include/minix/config.h
-# before recompiling the minix 1.5 kernel.
-minix-old-am|minix console with linewrap,
- am, use=minix-old,
-
-pc-minix|minix console on an Intel box,
- use=klone+acs, use=minix,
-
-# According to the Coherent 2.3 manual, the PC console is similar
-# to a z19. The differences seem to be (1) 25 lines, (2) no status
-# line, (3) standout is broken, (4) ins/del line is broken, (5)
-# has blinking and bold.
-pc-coherent|pcz19|coherent|IBM PC console running Coherent,
- am, mir,
- cols#80, it#8, lines#25,
- bel=^G, clear=\EE, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EN,
- ed=\EJ, el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, ri=\EI, rmir=\EO,
- rmso=\Eq, sgr0=\Eq, smir=\E@, smso=\Ep,
-
-# According to the Venix 1.1 manual, the PC console is similar
-# to a DEC vt52. Differences seem to be (1) arrow keys send
-# different strings, (2) enhanced standout, (3) added insert/delete line.
-# Note in particular that it doesn't have automatic margins.
-# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they
-# not described here because this derives from an old termcap entry.
-pc-venix|venix|IBM PC console running Venix,
- cols#80, it#8, lines#25,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
- ed=\EJ, el=\EK, ht=^I, il1=\EL, ind=^J, kbs=^H, kcub1=\EK,
- kcud1=\EP, kcuf1=\EM, kcuu1=\EH, khome=\EG, ri=\EI,
-
-#### Miscellaneous microcomputer consoles
-#
-# If you know anything more about any of these, please tell me.
-#
-
-# The MAI Basic Four computer was obsolete at the end of the 1980s.
-# It may be used as a terminal by putting it in "line" mode as seen on
-# one of the status lines.
-# Initialization is similar to CIT80. <is2> will set ANSI mode for you.
-# Hardware tabs set by <if> at 8-spacing. Auto line wrap causes glitches so
-# wrap mode is reset by <cvvis>. Using <ind>=\E[S caused errors so I
-# used \ED instead.
-# From: bf347@lafn.org (David Lawyer), 28 Jun 1997
-mai|basic4|MAI Basic Four in ansi mode,
- am, da, db, mir, msgr,
- cols#82, it#8, lines#25,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=^]^_, cnorm=\E[?7h,
- 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/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,
- kf7=\EOV, kf8=\EOW, nel=^M\ED, rc=\E8, rev=\E[7m, ri=\E[T,
- rmir=\E[4l, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m,
- smir=\E[4h, smso=\E[7m, smul=\E[4m,
-# basis from Peter Harrison, Computer Graphics Lab, San Francisco
-# ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA
-#
-# On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote:
-# The Basis 108 was a Apple II clone, manufactured by the "Basis
-# Mikrocomputer GmbH" in Munster, Germany (the company still exists today,
-# about 1,5 km from where I live, but doesn't build own computers any
-# more). A Basis 108 featured a really heavy (cast aluminium?) case, was
-# equipped with one or two 5.25" disk drives, had a monochrome and colour
-# video output for a TV set or a dedicated monitor and several slots for
-# Apple II cards. Basis 108 were quite popular at german schools before
-# the advent of the IBM PC. They run, for example, the UCSD Pascal
-# development system (which I used even in 1993 to program the steering
-# and data recording for our school's experimental solar panel :), Apple DOS
-# or CP/M.
-# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr)
-basis|BASIS108 computer with terminal translation table active,
- clear=\E*$<300/>, cud1=\n$<5000/>, ed=\EY, el=\ET, kbs=^H,
- kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, rmso=\E), sgr0=\E),
- smso=\E(, use=adm3a,
-# luna's BMC terminal emulator
-luna|luna68k|LUNA68K Bitmap console,
- cols#88, lines#46, use=ansi-mini,
-megatek|pegasus workstation terminal emulator,
- am, os,
- cols#83, lines#60,
-# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived
-# interface (pre-Macintosh by several years) that went nowhere.
-xerox820|x820|Xerox 820,
- am,
- cols#80, lines#24,
- bel=^G, clear=1^Z, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^Q, el=^X,
- home=^^, ind=^J,
-
-#### Videotex and teletext
-#
-
-# \E\:1} switch to te'le'informatique mode (ascii terminal/ISO 6429)
-# \E[?3l 80 columns
-# \E[?4l scrolling on
-# \E[12h local echo off
-# \Ec reset: G0 U.S. charset (to get #,@,{,},...), 80 cols, clear screen
-# \E)0 G1 DEC set (line graphics)
-#
-# From: Igor Tamitegama <igor@ppp1493-ft.teaser.fr>, 18 Jan 1997
-m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'informatique,
- OTbs, eslok, hs, xenl,
- cols#80, it#8, lines#24, wsl#72, xmc#0,
- acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx, bel=^G,
- blink=\E[5m, bold=\E[1m, civis=\E[<1h, clear=\E[H\E[J,
- cnorm=\E[<1l, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, flash=^G, fsl=^J,
- home=\E[H, ht=^I, il=\E[%p1%dL, il1=\E[L, ind=^J, ip=$<7/>,
- is1=\E\:1}\Ec\E[?4l\E[12h, is2=\Ec\E[12h\E)0,
- is3=\E[?3l kbs=\010, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M, kf0=\EOp,
- kf1=\EOq, kf10=\EOp, kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu,
- kf6=\EOv, kf7=\EOw, kf8=\EOx, kf9=\EOy, khome=\E[H,
- kich1=\E[4h, kil1=\E[4l, knp=\EOn, kpp=\EOR, ll=\E[24;80H,
- mc0=\E[i, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec\E[?4l\E[12h, rs2=\Ec\E)0, sc=\E7, sgr0=\E[m,
- smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=^_@A,
- u6=\E[%i%d;%dR, u7=\E[6n,
-
-# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998
-#
-minitel1|minitel 1,
- am, bw, eslok, hs, hz, msgr,
- colors#8, cols#40, lines#24, pairs#8,
- acsc=+.\,\,./f0g1, bel=^G, blink=\EH, civis=^T, clear=^L,
- cnorm=^Q, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
- cup=\037%p1%{65}%+%c%p2%{65}%+%c, cuu1=^K, el=^X,
- enacs=^Y, fsl=^J, home=^^, ind=^J,
- is2=\E;`ZQ\E\:iC\E\:iE\021, nel=^M^J, op=\EG,
- rep=%p1%c\022%p2%{63}%+%c, rev=\E], ri=^K, rmso=\E\\,
- setf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=%tC%e%p1%{64}%+%c%;,
- sgr=%?%p1%t\E]%;%?%p3%t\E]%;%?%p4%t\EH%;,
- sgr0=\EI\E\\, smso=\E], tsl=\037@%p1%{65}%+%c,
-# is2=Fnct TE, Fnct MR, Fnct CM et pour finir: curseur ON.
-minitel1b|minitel 1-bistandard (in 40cols mode),
- mir,
- cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
- cuu=\E[%p1%dA, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el1=\E[1K, il=\E[%p1%dL, il1=\E[L,
- is1=\E;iYA\E;jYC, kclr=\E[2J, kctab=^I, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
- kel=^X, khome=\E[H, kich1=\E[4h, kil1=\E[L, rmir=\E[4l,
- smir=\E[4h, smkx=\E;iYA\E;jYC, use=minitel1,
-# <rmkx> posait des problemes (logout en sortant de vi).
-minitel1b-80|minitel 1-bistandard (standard teleinformatique),
- am@, bw@, hz@,
- colors@, cols#80, it#8, pairs@,
- blink=\E[5m, bold=\E[1m, civis=\037@A\024\n,
- clear=\E[H\E[2J, cnorm=\037@A\021\n, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, ind=\ED, is1@, is2@, kent=\EOM, kf0=\EOp, kf1=\EOq,
- kf2=\EOr, kf3=\EOs, kf4=\EOt, kf5=\EOu, kf6=\EOv, kf7=\EOw,
- kf8=\EOx, kf9=\EOy, nel=\EE, op@, rc=\E8, rep@, rev=\E[7m,
- ri=\EM, rmkx@, rmso=\E[27m, rmul=\E[24m, sc=\E7, setf@,
- sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
- sgr0=\E[m, smkx@, smso=\E[7m, smul=\E[4m, use=minitel1b,
-
-######## OBSOLETE VDT TYPES
-#
-# These terminals are *long* dead -- these entries are retained for
-# historical interest only.
-
-#### Amtek Business Machines
-#
-
-# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y",
-# but these caps were commented out in 8.3; also, removed overridden
-# ":do=^J:" -- esr)
-abm80|amtek business machines 80,
- OTbs, am, bw,
- cols#80, lines#24,
- cbt=^T, clear=\E^\, cub1=^H, cud1=\E^K, cuf1=^P,
- cup=\E\021%p2%{32}%+%c%p1%{32}%+%c, cuu1=\E^L,
- dl1=\E^S, ed=\E^X, el=\E^O, home=\E^R, il1=\E^Z,
-
-#### Bell Labs blit terminals
-#
-# These were AT&T's official entries. The 5620 FAQ maintained by
-# David Breneman <daveb@dgtl.com> has this to say:
-#
-# Actually, in the beginning was the Jerq, and the Jerq was white with a
-# green face, and Locanthi and Pike looked upon the Jerq and said the Jerq
-# was good. But lo, upon the horizon loomed a mighty management-type person
-# (known now only by the initials VP) who said, the mighty Jerq must stay
-# alone, and could not go forth into the world. So Locanthi and Pike put the
-# Jerq to sleep, cloned its parts, and the Blit was brought forth unto the
-# world. And the Jerq lived the rest of its days in research, but never
-# strayed from those paths.
-#
-# In all seriousness, the Blit was originally known as the Jerq, but when
-# it started to be shown outside of the halls of the Bell Labs Research
-# organization, the management powers that be decided that the name could
-# not remain. So it was renamed to be Blit. This was in late 1981.
-#
-# (The AT&T 5620 was the commercialized Blit. Its successors were the 630,
-# 730, and 730+.)
-#
-
-blit|jerq|blit running teletype rom,
- am, eo, ul, xon,
- cols#87, it#8, lines#72,
- bel=^G, clear=^L, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA,
- dch=\Ee%p1%{32}%+%c, dch1=\Ee!, dl=\EE%p1%{32}%+%c,
- dl1=\EE!, el=\EK, ht=^I, ich=\Ef%p1%{32}%+%c, ich1=\Ef!,
- il=\EF%p1%{32}%+%c, il1=\EF!, ind=^J, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf1=\Ex, kf2=\Ey, kf3=\Ez,
-
-# (cbblit: here's a BSD termcap that says <cud1=\EG> -- esr)
-cbblit|fixterm|blit running columbus code,
- cols#88,
- ed=\EJ, flash=\E^G, ich1@, mc4=^T, mc5=^R, mc5p=\EP%p1%03d,
- rmir=\ER, rmso=\EV!, rmul=\EV", smir=\EQ, smso=\EU!,
- smul=\EU", use=blit,
-
-oblit|ojerq|first version of blit rom,
- am, da, db, eo, mir, ul, xon,
- cols#88, it#8, lines#72,
- bel=^G, clear=^L, cr=^M, cub1=\ED, cud1=^J, cuf1=\EC,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dch1=\EO,
- dl=\Ee%p1%{32}%+%c, dl1=\EE, ed=\EJ, el=\EK, flash=\E^G,
- ht=^I, il=\Ef%p1%{32}%+%c, il1=\EF, ind=^J, kbs=^H, rmir=\ER,
- smir=\EQ,
-
-#### Bolt, Beranek & Newman (bbn)
-#
-# The BitGraph was a product of the now-defunct BBN Computer Corporation.
-# The parent company, best known as the architects of the Internet, is
-# still around.
-#
-# Jeff DelPapa <dp@world.std.com> writes:
-# The bitgraph was a large white box that contained a monochrome bitmap
-# display, and a 68000 to run it. You could download code and run it on
-# the cpu, it had 128kb (I think) of memory. I used one in the late
-# 70's, sure beat a vt100. It had one strange feature tho -- it used
-# the cpu to bitblt pixels to scroll, it took longer than the refresh
-# rate, and looked like a rubber sheet stretching, then snapping
-# upwards. It had everything the early mac had, except a floppy drive a
-# small screen (it had a 17" crisp beauty) and a real OS. They (Bolt
-# Beranek and Neuman) sold at most a few hundred of them to the real
-# world. DOD may have bought more...
-#
-
-# Entries for the BitGraph terminals. The problem
-# with scrolling in vi can only be fixed by getting BBN to put
-# smarter scroll logic in the terminal or changing vi or padding
-# scrolls with about 500 ms delay.
-#
-# I always thought the problem was related to the terminal
-# counting newlines in its input buffer before scrolling and
-# then moving the screen that much. Then vi comes along and
-# paints lines in on the bottom line of the screen, so you get
-# this big white gap.
-
-bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video),
- flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
- use=bg2.0,
-bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video),
- flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
- use=bg2.0,
-bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init),
- OTbs, xenl,
- cols#85, lines#64,
- bel=^G, clear=\E[H\E[J$<150>, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, dl1=\E[M$<2*>,
- ed=\E[J$<150>, el=\E[K$<2>, ht=^I, il1=\E[L$<2*>,
- ind=\n$<280>, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, lf1=PF1,
- lf2=PF2, lf3=PF3, lf4=PF4, rc=\E8, rmkx=\E>, rmso=\E[m, sc=\E7,
- sgr0=\E[m, smkx=\E=, smso=\E[7m,
-
-bg1.25rv|bbn bitgraph 1.25 (reverse video),
- flash=\E[?5l$<200/>\E[?5h, is2=\E>\E[?5h\E[?7h,
- use=bg1.25,
-bg1.25nv|bbn bitgraph 1.25 (normal video),
- flash=\E[?5h$<200/>\E[?5l, is2=\E>\E[?5l\E[?7h,
- use=bg1.25,
-# (bg1.25: I added <rmam>/<smam> based on the init string -- esr)
-bg1.25|bbn bitgraph 1.25,
- cols#85, lines#64,
- bel=^G, clear=\E[H\E[J$<150>, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A,
- dl1=\E[M$<2*>, ed=\E[J$<150>, el=\E[K$<2>, ht=^I,
- il1=\E[L$<2*>, ind=\n$<280>, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf1=\EP, kf2=\EQ, kf3=\ER, kf4=\ES,
- lf1=PF1, lf2=PF2, lf3=PF3, lf4=PF4, ll=\E[64;1H, rmam=\E[?7l,
- rmkx=\E>, rmso=\E[m, sgr0=\E[m, smam=\E[?7h, smkx=\E=,
- smso=\E[7m,
-
-#### Bull (bq, dku, vip)
-#
-# (Adapted for terminfo; AIX extension capabilities translated -- esr)
-
-#============================================#
-# BULL QUESTAR 210 `SDP' terminals emulation #
-#============================================#
-#
-# Description written by R.K.Saunders (Bull Transac)
-#
-# Modifications written by F. Girard (Bull MTS)
-# 19-05-87 V02.00.01
-# 17-12-87 V02.00.02
-# 15-09-89 V02.00.05
-#
-# Typical technical selections F1 (modes SDP/ROLL):
-# -------------------------------------------------------
-# | 01 02 03 04 05 06 07 08 09 10 |
-# | 1010 0011 1010 0110 0110 0001 0100 0000 0000 0000 |
-# | |
-# | 11 12 13 14 15 16 17 18 19 20 |
-# | 0000 0110 100? 0000 0000 0000 0001 0000 0000 0001 |
-# | |
-# | 21 22 23 24 25 26 27 28 29 30 |
-# | 0011 0000 0001 1000 0000 0000 0000 0000 0000 0000 |
-# | |
-# | 31 32 33 34 35 36 37 38 39 40 |
-# | 1010 0011 0000 0000 0000 0000 0000 0000 0000 0000 |
-# -------------------------------------------------------
-# Typical firmware identification F5 "etat 6":
-# P287.02.04b (AZERTY)
-# P297.11.04 (24-pin: 2732) or P798.11.04 (28-pin: 2764)
-# P298.03.03 (monochrome) or P374.03.02 (colour)
-#
-# SM SDP mode (VIP command): ^[[?=h
-# RIS (erases screen): ^[c
-# DMI disable keyboard: ^[`
-# SM double rendition mode: ^[[?>h
-# RM solicited status mode: ^[[5l
-# RM character mode: ^[[>l
-# RM echoplex mode: ^[[12l
-# RM column tab mode: ^[[18l
-# RM forbid SS2 keyboard mode: ^[[?<l
-# SM scroll mode: ^[[=h
-# FCF enable XON/XOFF: ^[P1s^[\
-# MTL select end msg character: ^[[^Wp
-# EMI enable keyboard: ^[b
-# RIS retour etat initial: ^[c
-# enable FC keypad: ^[[?<h,
-# MPW map status line window: ^[PY99:98^[\
-# SCP select status line: ^[[0;98v
-# ED erase entire partition: ^[[2J
-# SCP select main partition: ^[[v
-# SM character insertion mode: ^[[4h
-# RM character replacement mode: ^[[4l
-# COO cursor on: ^[[r
-# COO cursor off: ^[[1r
-# SGR dim (turquoise) rev attr: ^[[2;7m
-# SGR Data normal attr: ^[[m
-# SO Line-graphic mode ON: ^N
-# SI Line-graphic mode OFF: ^O
-# MC start routing to printer: ^[[5i
-# MC stop routing to printer: ^M^[[4i
-#
-
-# This entry covers the following terminals:
-# dku7102, tws2102, and tws models 2105 to 2112
-tws-generic|dku7102|Bull Questar tws terminals,
- am, eslok, hs, mir, msgr, xenl, xhp@, xon,
- cols#80, it#8, lines#24, wsl#80,
- acsc=``aaffggj)k\,l&m#n/ooppq*rrsst'u-v+w.x%yyzz{{||}}~~,
- bel=^G, blink=\E[0;5m, cbt=\E[Z, civis=\E[1r, clear=\E[2J,
- cnorm=\E[r, cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB,
- cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%df,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dim=\E[0;2m, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[v, ed=\E[J, el=\E[K,
- fsl=\E[v, home=\E[H, ht=\E[I, hts=\EH, il=\E[%p1%dL,
- il1=\E[L, ind=^J, invis=\E[0;8m,
- is1=\E[?=h\Ec\E`\E[?>h\EPY99\:98\E\\,
- is2=\E[5;>;12;18;?<l\E[=h\EP1s\E\\\E[\027p,
- is3=\Eb\E[?<h, kbs=^H, kcbt=\E[Z, kctab=\E[g, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
- ked=\E[J, kel=\E[K, kf1=\E[1u\027, kf2=\E[2u\027,
- kf3=\E[3u\027, kf4=\E[4u\027, kf5=\E[5u\027,
- kf6=\E[6u\027, kf7=\E[7u\027, kf8=\E[8u\027, khome=\E[H,
- khts=\EH, kil1=\E[L, krmir=\E[4l, ll=\E[H\E[A, mc0=\E[0i,
- mc4=\r\E[4i, mc5=\E[5i, rev=\E[0;7m, rmacs=^O,
- rmcup=\E[0;98v\E[2J\E[v, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
- sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99\:98\E\\,
- smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[2g,
- tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
-tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
- dsl=\E[0;98v\E[2J\E[v, fsl=\E[v, is3=\Eb, tsl=\E[0;98v,
- use=tws-generic,
-tws2103|xdku|BULL Questar tws2103,
- ht=^I, use=tws-generic,
-tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA,
- ht=^I, use=tws2102-sna,
-dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6),
- clear=\E[2J\E[H, cup@, dl@, dl1@,
- dsl=\EPY99\:98\E\\\E[0;98v\E[2J\E[H\E[v, el=\E[K\E[m,
- il@, il1@, tsl=\EPY99\:98\E\\\E[0;98v\E[H\E[2;7m,
- use=tws-generic,
-dku7202|BULL Questar 200 DKU7202 (colour/character attributes),
- blink=\E[0;2;4m, dim=\E[0;5m, ht=^I, is3=\E[?3h\Eb,
- smso=\E[0;4;5;7m, smul=\E[0;2m, use=tws-generic,
-
-#=========================================================#
-# BULL QUESTAR 303 & 310 `DEC VT 320' terminals emulation #
-#=========================================================#
-#
-# Description written by J. Staerck (BULL SA)
-# Copyright (c) 1989 BULL SA
-#---------------------------------------------------------------------------
-# This entry is used for terminals with vt320 emulation mode
-# and following set-up :
-# 8 bit ISO Latin Character Set (ISO 8859-1),
-# 7 bit Control Characters,
-# 80 columns screen.
-# Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300)
-# They are used in string capabilities with vt220-320 emulation mode.
-# In the following DEC definitions, two kinds of terminfo databases are
-# provided :
-# 1. the first with Command Sequence Introducer starting with escape
-# sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode.
-# 2. the second with Command Sequence Introducer starting with escape
-# sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B.
-# Soft Terminal Reset esc [ ! p
-# RIS (erases screen): esc c
-# DECKPNM numeric keypad mode: esc >
-# DECKPAM applic. keypad mode: esc =
-# DECSTBM Scrolling region: esc [ r
-# SCS select G0 = US: esc ( B
-# SCS select G1 = line-graphic: esc ) 0
-# Select 7-bit C1 controls: esc sp F
-# Select 8-bit C1 controls: esc sp G
-# Select cursor home: esc [ H
-# Select erase screen: esc [ J
-# SM KAM lock keyboard: esc [ 2 h
-# RM KAM unlock keyboard: esc [ 2 l
-# SM SRM local echo off: esc [ 1 2 h
-# RM SRM local echo on: esc [ 1 2 l
-# SM LNM New line : esc [ 2 0 h
-# RM LNM return = CR only: esc [ 2 0 l
-# SM DECCKM cursor keys mode: esc [ ? 1 h
-# RM DECCKM appli. keys mode: esc [ ? 1 l
-# SM DECANM ANSI mode on: esc [ ? 2 h
-# RM DECANM ANSI mode off: esc [ ? 2 l
-# SM DECCOLM 132-column screen: esc [ ? 3 h
-# RM DECCOLM 80-column screen: esc [ ? 3 l
-# SM DECSCLM Smooth scroll: esc [ ? 4 h
-# RM DECSCLM Jump scroll: esc [ ? 4 l
-# SM DECSCNM screen light backgr. esc [ ? 5 h
-# RM DECSCNM screen dark backgr. esc [ ? 5 l
-# SM DECOM move within margins: esc [ ? 6 h
-# RM DECOM move outside margins: esc [ ? 6 l
-# SM DECAWM auto right margin: esc [ ? 7 h
-# RM DECAWM auto right margin: esc [ ? 7 l
-# SM DECARM auto repeat: esc [ ? 8 h
-# RM DECARM auto repeat: esc [ ? 8 l
-# DECSASD Select active main: esc [ 0 $ }
-# DECSASD Select active status: esc [ 1 $ }
-# DECSSDT Select status none: esc [ 0 $ ~
-# DECSSDT Select status indic.: esc [ 1 $ ~
-# DECSSDT Select status host-wr: esc [ 2 $ ~
-# SM DECTCEM Visible cursor: esc [ ? 2 5 h
-# RM DECTCEM Invisible cursor: esc [ ? 2 5 l
-# SM DECNCRM 7 bits NCR set: esc [ ? 4 2 h
-# RM DECNCRM Multi or ISO latin: esc [ ? 4 2 l
-# SM DECNKM numeric keypad mode: esc [ ? 6 6 h
-# RM DECNKM numeric keypad appl.: esc [ ? 6 6 l
-# SM DECKBUM clavier informatique esc [ ? 6 8 h
-# RM DECKBUM clavier bureautique: esc [ ? 6 8 l
-# DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 " p
-# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 0 " p
-# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 2 " p
-# DECSCL vt300 mode 7-bit ctrl: esc [ 6 3 ; 1 " p
-# Char. and Line attributes: esc [ Ps ... Ps m
-# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
-# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
-#
-
-# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
-bq300|Bull vt320 ISO Latin 1 80 columns terminal,
- am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX,
- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
- flash=\E[?5h$<50>\E[?5l, fsl=\E[0$}, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
- is1=\E[63;1"p\E[2h,
- is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- is3=\E[0$}\E[?25h\E[2l\E[H\E[J, ka1=\EOw, ka3=\EOy,
- kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
- khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
- mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
- rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
- rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m\E(B, smacs=^N, smam=\E[?7h,
- smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
-bq300-rv|Bull vt320 reverse 80 columns,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- use=bq300,
-bq300-w|Bull vt320 132 columns,
- cols#132, wsl#132,
- is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300,
-bq300-w-rv|Bull vt320 reverse mode 132 columns,
- cols#132, wsl#132,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300,
-
-# This entry is used for terminals with vt320 emulation mode
-# and following set-up :
-# 8 bit ISO Latin Character Set (ISO 8859-1),
-# 8 bit Control Characters, (CSI coded as x9B for ESC [)
-# 80 columns screen.
-# Soft Terminal Reset csi ! p
-# RIS (erases screen): esc c
-# DECKPNM numeric keypad mode: esc >
-# DECKPAM applic. keypad mode: esc =
-# DECSTBM Scrolling region: esc [ r
-# SCS select G0 = US: esc ( B
-# SCS select G1 = line-graphic: esc ) 0
-# Select 7-bit C1 controls: esc sp F
-# Select 8-bit C1 controls: esc sp G
-# Select cursor home: csi H
-# Select erase screen: csi J
-# SM KAM lock keyboard: csi 2 h
-# RM KAM unlock keyboard: csi 2 l
-# SM SRM local echo off: csi 1 2 h
-# RM SRM local echo on: csi 1 2 l
-# SM LNM New line : csi 2 0 h
-# RM LNM return = CR only: csi 2 0 l
-# SM DECCKM cursor keys mode: csi ? 1 h
-# RM DECCKM appli. keys mode: csi ? 1 l
-# SM DECANM ANSI mode on: csi ? 2 h
-# RM DECANM ANSI mode off: csi ? 2 l
-# SM DECCOLM 132-column screen: csi ? 3 h
-# RM DECCOLM 80-column screen: csi ? 3 l
-# SM DECSCLM Smooth scroll: csi ? 4 h
-# RM DECSCLM Jump scroll: csi ? 4 l
-# SM DECSCNM screen light backgr. csi ? 5 h
-# RM DECSCNM screen dark backgr. csi ? 5 l
-# SM DECOM move within margins: csi ? 6 h
-# RM DECOM move outside margins: csi ? 6 l
-# SM DECAWM auto right margin: csi ? 7 h
-# RM DECAWM auto right margin: csi ? 7 l
-# SM DECARM auto repeat: csi ? 8 h
-# RM DECARM auto repeat: csi ? 8 l
-# DECSASD Select active main: csi 0 $ }
-# DECSASD Select active status: csi 1 $ }
-# DECSSDT Select status none: csi 0 $ ~
-# DECSSDT Select status indic.: csi 1 $ ~
-# DECSSDT Select status host-wr: csi 2 $ ~
-# SM DECTCEM Visible cursor: csi ? 2 5 h
-# RM DECTCEM Invisible cursor: csi ? 2 5 l
-# SM DECNCRM 7 bits NCR set: csi ? 4 2 h
-# RM DECNCRM Multi or ISO latin: csi ? 4 2 l
-# DECSCL vt300 mode 8-bit ctrl: csi 6 3 " p
-# or DECSCL vt300 mode 8-bit ctrl: csi 6 3 ; 0 " p
-# DECSCL vt300 mode 7-bit ctrl: csi 6 3 ; 1 " p
-# Char. and Line attributes: csi Ps ... Ps m
-# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
-# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
-# (bq300-8: <cub1>,<cuf1>,<cuu1>,<cud1>,<dl1>,<il1> to get under 1024 --esr)
-bq300-8|Bull vt320 full 8 bits 80 columns,
- am, eo, eslok, hs, km, mc5i, mir, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\2335m, bold=\2331m, civis=\233?25l,
- clear=\233H\233J, cnorm=\233?25h, cr=^M,
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cud=\233%p1%dB,
- cuf=\233%p1%dC, cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA,
- cvvis=\233?25h, dch=\233%p1%dP, dch1=\233P,
- dl=\233%p1%dM, dsl=\2331$}\2332$~\n\2330$},
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
- enacs=\E(B\E)0, flash=\233?5h$<50>\233?5l, fsl=\2330$},
- home=\233H, ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL,
- ind=\ED, is1=\E[63;2"p\E[2h,
- is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
- ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
- kcub1=\233D, kcud1=\233B, kcuf1=\233C, kcuu1=\233A,
- kdch1=\2333~, kf1=\217P, kf10=\23321~, kf11=\23323~,
- kf12=\23324~, kf13=\23325~, kf14=\23326~, kf15=\23328~,
- kf16=\23329~, kf17=\23331~, kf18=\23332~, kf19=\23333~,
- kf2=\217Q, kf20=\23334~, kf3=\217R, kf4=\217S, kf6=\23317~,
- kf7=\23318~, kf8=\23319~, kf9=\23320~, kfnd=\2331~,
- khlp=\23328~, kich1=\2332~, knp=\2336~, kpp=\2335~,
- krdo=\23329~, kslt=\2334~, lf1=pf1, lf2=pf2, lf3=pf3,
- lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i, nel=\EE, rc=\E8,
- rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l, rmcup=\233?7h,
- rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
- rs1=\E[!p, rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\233%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\2330m\E(B, smacs=^N, smam=\233?7h,
- smcup=\233?7l\233?1l\E(B, smir=\2334h, smso=\2337m,
- smul=\2334m, tbc=\2333g, tsl=\2331$}\2332$~,
-bq300-8rv|Bull vt320 8-bit reverse mode 80 columns,
- flash=\233?5l$<50>\233?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- use=bq300-8,
-bq300-8w|Bull vt320 8-bit 132 columns,
- cols#132, wsl#132,
- is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- rs2=\233?3h, use=bq300-8,
-bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns,
- cols#132, wsl#132,
- flash=\233?5l$<50>\233?5h,
- is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- rs2=\233?3h, use=bq300-8,
-
-# This entry is used for terminals with vt320 emulation mode
-# a 102 keys keyboard (PC scancode !) and following set-up :
-# 8 bit ISO Latin Character Set (ISO 8859-1),
-# 7 bit Control Characters,
-# 80 columns screen.
-bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns,
- kbs=^H, kdch1=\E[3~, kend=\E[4~, kf1=\E[17~, kf10=\E[28~,
- kf11=\E[29~, kf12=\E[31~, kf13@, kf14@, kf15@, kf16@, kf17@,
- kf18@, kf19@, kf2=\E[18~, kf20@, kf3=\E[19~, kf4=\E[20~,
- kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~,
- kfnd@, khlp@, khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
- krdo@, kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300,
-bq300-pc-rv|Questar 303 with PC keyboard reverse mode 80 columns,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- use=bq300-pc,
-bq300-pc-w|Questar 303 with PC keyboard 132 columns terminal,
- cols#132, wsl#132,
- is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300-pc,
-bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns,
- cols#132, wsl#132,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300-pc,
-# 8 bit ISO Latin Character Set (ISO 8859-1),
-# 8 bit Control Characters,
-# 80 columns screen.
-bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns,
- kbs=^H, kdch1=\2333~, kend=\2334~, kf1=\23317~,
- kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13@, kf14@,
- kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\23318~, kf20@,
- kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
- kf7=\23324~, kf8=\23325~, kf9=\23326~, kfnd@, khlp@,
- khome=\2331~, kich1=\2332~, knp=\2336~, kpp=\2335~, krdo@,
- kslt@, lf1@, lf2@, lf3@, lf4@, use=bq300-8,
-bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- use=bq300-8-pc,
-bq300-8-pc-w|Questar 303 with PC keyboard full 8 bits 132 columns,
- cols#132, wsl#132,
- is2=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300-8-pc,
-bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns,
- cols#132, wsl#132,
- flash=\E[?5l$<50>\E[?5h,
- is2=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
- rs2=\E[?3h, use=bq300-8-pc,
-
-#======================================================#
-# BULL QUESTAR 310 `VIP 7800/8800' terminals emulation #
-#======================================================#
-
-# normal mode, 8 bits, 80 columns terminal.
-# RES reset : ^[e
-# RIS reset initial state: ^[c
-# BLE bell enable ^[h
-# BLD bell disable ^[g
-# CAMS char. attr. mode set ^[[D
-# CAMR char. attr. mode reset ^[[G
-# CLR clear ^[`
-# KBU keyboard unlock (set) ^[[W
-# KBL keyboard lock (reset) ^[[X
-# CM character mode (async.) ^[k
-# NEP non echoplex mode (by host) ^[l
-# EP echoplex mode (by host) ^[m
-# IM insert mode set ^[[I
-# IM insert mode reset ^[[J
-# RMS roll mode set ^[r
-# RMR roll mode reset ^[q
-# SM78 set mode vip7800 ^[[1q
-# SD scroll up (72 lines) ^[[0s
-# SD scroll down (72 lines) ^[[1s
-# RBM block mode reset ^[[E
-# SLS status line set ^[w
-# SLR status line reset ^[v
-# SLL status line lock ^[O
-# LGS Line-graphic mode set ^[G
-# LGR Line-graphic mode reset ^[F
-# TBC tab clear (at cursor pos.) ^[[g
-# TBI tab initialize ^[[N
-# TBS tab set (at cursor pos.) ^[p
-# PDS print data space ^[[0p
-# PHD print host data ^[[3p
-# PDT print data terminator ^[[<p
-# PRES print adapter reset ^[[2p
-# SSPR multi-part. reset ^[[<>u
-# SSP0 partition 0 set ^[[00u
-# SSP1 partition n format 1 ^[[PnPnSTRINGu
-# SSP2 partition n format 2 ^[[PnPnSTRINGu
-# SSP3 partition n format 3 ^[[PnPnu
-# ATR attribute (visual)
-# blink : ^[sB
-# dim : ^[sL
-# hide (blank) : ^[sH
-# restore : ^[sR
-# inverse video : ^[sI
-# prot. : ^[sP
-# underline : ^[s_
-# reset : ^{
-#
-# This covers the vip7800 and BQ3155-vip7800
-vip|Bull Questar 3155-7800,
- am, eslok, hs, km, mc5i, msgr, xenl, xon,
- cols#80, it#8, lines#24, vt#3, wsl#80,
- acsc=0pjdkblamcnkqitgufvhwexj, bel=^G, blink=\EsB,
- cbt=\E[Z, clear=\E`, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E[%i%p1%03d%p2%03df, cuu1=\EA, dch1=\E[P, dim=\EsL,
- dl1=\E[M, dsl=\Ev, ed=\EJ, el=\EK,
- flash=\007$<80>\007$<80>\007, fsl=\EO, home=\EH, ht=^I,
- hts=\Ep, ich1=\E[I, ind=^J, invis=\EsH,
- is2=\E[00u\E[<>001001024080024080u\E[01u,
- is3=\Er\E[W\E`, kHOM=\EH, kLFT=\Eo, kRIT=\Eu, kbs=^H,
- kcbt=\E[Z, kclr=\E`, kctab=\E[g, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kdch1=\E[P, kdl1=\E[M, ked=\EJ,
- kel=\EK, kf1=\E0, kf10=\ET, kf11=\E\\, kf12=\E\^, kf13@, kf14@,
- kf15@, kf16@, kf17@, kf18@, kf19@, kf2=\E2, kf20@, kf21=\E1,
- kf22=\E5, kf23=\E7, kf24=\E9, kf25=\E;, kf26=\E=, kf27=\E?,
- kf28=\EQ, kf29=\ES, kf3=\E6, kf30=\EV, kf31=\E], kf32=\E_,
- kf4=\E8, kf5=\E\:, kf6=\E<, kf7=\E>, kf8=\EP, kf9=\ER,
- khome=\EH, khts=\Ep, kich1=\E[I, kil1=\E[L, kind=\E[0s,
- kll=\EH\EA, kri=\E[1s, krmir=\E[J, ktbc=\E[N, lf1=pf1,
- lf2=pf2, lf3=pf3, lf4=pf4, ll=\EH\EA, mc0=\E[0p, mc4=\E[<p,
- mc5=\E[3p, nel=^M, prot=\EsP, rev=\EsI,
- ri=\EA\EJ\EH\E[L$<10>, rmacs=\EF, rmir=\E[J, rmso=\EsR,
- rmul=\EsR, rs1=\Ec, rs2=\E[G, s0ds=\EF, s1ds=\EG,
- sgr0=\EsR\EsU\EF, smacs=\EG, smir=\E[I, smso=\EsI,
- smul=\Es_, tbc=\E[N, tsl=\Ew,
-# normal screen, 8 bits, 132 columns terminal.
-vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide,
- cols#132, wsl#132,
- is2=\E[00u\E[<>001001024132024132u\E[01u, use=vip,
-vip-H|vip7800-H|Q310-vip-H|Q310-vip-H-am|Questar 3155-vip7800 72 lines,
- lines#72,
- is2=\E[00u\E[<>001001024080072080u\E[01u, use=vip,
-vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines,
- cols#132, lines#72, wsl#132,
- is2=\E[00u\E[<>001001024132072132u\E[01u, use=vip,
-
-#### Chromatics
-#
-
-# I have put the long strings in <smcup>/<rmcup>. Ti sets up a window
-# that is smaller than the screen, and puts up a warning message
-# outside the window. Te erases the warning message, puts the
-# window back to be the whole screen, and puts the cursor at just
-# below the small window. I defined <cnorm> and <civis> to really turn
-# the cursor on and off, but I have taken this out since I don't
-# like the cursor being turned off when vi exits.
-cg7900|chromatics|chromatics 7900,
- am,
- cols#80, lines#40,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^],
- cup=\001M%p2%d\,%p1%d\,, cuu1=^K, dch1=^A<1, dl1=^A<2,
- ed=^Al, el=^A`, home=^\, ich1=^A>1, il1=^A>2, ind=^J, ll=^A|,
- rmcup=\001W0\,40\,85\,48\,\014\001W0\,0\,85\,48\,\001M0\,40\,,
- rmso=\001C1\,\001c2\,,
- smcup=\001P0\001O1\001R1\001C4\,\001c0\,\014\001M0\,42\,WARNING DOUBLE ENTER ESCAPE and \025\001C1\,\001c2\,\001W0\,0\,79\,39\,,
- smso=\001C4\,\001c7\,, uc=\001\001_\001\0,
-
-#### Computer Automation
-#
-
-ca22851|computer automation 22851,
- am,
- cols#80, lines#24,
- bel=^G, clear=\014$<8>, cr=^M, cub1=^U, cud1=^J, cuf1=^I,
- cup=\002%i%p1%c%p2%c, cuu1=^V, ed=^\, el=^], home=^^, ind=^J,
- kcub1=^U, kcud1=^W, kcuu1=^V, khome=^^,
-
-#### Cybernex
-#
-
-# This entry has correct padding and the undocumented "ri" capability
-cyb83|xl83|cybernex xl-83,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\014$<62>, cr=^M, cub1=^H, cud1=^J, cuf1=^I,
- cup=\027%p1%{32}%+%c%p2%{32}%+%c, cuu1=^N,
- ed=\020$<62>, el=\017$<3>, home=^K, ind=^J, kcub1=^H,
- kcud1=^J, kcuf1=^I, kcuu1=^N, ri=^N,
-# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr)
-cyb110|mdl110|cybernex mdl-110,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=\030$<70>, cr=^M, cub1=^H, cud1=^J, cuf1=^U,
- cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^Z,
- dch1=\016A\036$<3.5>, dl1=\016A\016\036$<40>,
- ed=\016@\026$<6>, el=\016@\026$<145>, home=^Y,
- ht=\011$<43>, ich1=\016A\035$<3.5>,
- il1=\016A\016\035$<65>, ind=^J, rmso=^NG, smso=^NF,
-
-#### Datapoint
-#
-# Datapoint is gone. They used to be headquartered in Texas.
-# They created ARCnet, an Ethernet competitor that flourished for a while
-# in the early 1980s before 3COM got wise and cut its prices. The service
-# side of Datapoint still lives (1995) in the form of Intelogic Trace.
-#
-
-dp3360|datapoint|datapoint 3360,
- OTbs, am,
- cols#82, lines#25,
- bel=^G, clear=^]^_, cr=^M, cub1=^H, cud1=^J, cuf1=^X, cuu1=^Z,
- ed=^_, el=^^, home=^], ind=^J,
-
-# From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997
-# The Datapoint 8242 Workstation was sold at least between 1985
-# and 1989. To make the terminal work with this entry, press
-# CONTROL-INT-INT to take the terminal off-line, and type (opt).
-# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO
-# CR/LF off. Use control-shift-[] as escape key, control-I as tab,
-# shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in
-# fact unusable because the strings sent by the terminal conflict
-# with other keys).
-# The terminal is capable of displaying "box draw" characters.
-# For each graphic character you must send 2 ESC's (\E\E) followed
-# by a control character as follows:
-# character meaning
-# ========= =======
-# ctrl-E top tee
-# ctrl-F right tee
-# ctrl-G bottom tee
-# ctrl-H left tee
-# ctrl-I cross
-# ctrl-J top left corner
-# ctrl-K top right corner
-# ctrl-L bottom left corner
-# ctrl-M bottom right corner
-# ctrl-N horizontal line
-# ctrl-O vertical line
-# Unfortunately this cannot be fitted into the termcap/terminfo
-# description scheme.
-dp8242|datapoint 8242,
- msgr,
- cols#80, lines#25,
- bel=^G, civis=^Y, clear=\025\E\004\027\030, cnorm=^X,
- cr=^M, cub1=^H, cud1=^J,
- cup=\011%p2%'\0'%+%c%p1%'\0'%+%c, dl1=\E^Z, ed=^W, el=^V,
- home=^U, ht=^I, il1=\E^T, ind=^C,
- is1=\E\014\E\016\0\230\0\317\025\027\030\E\004,
- kbs=^H, kcub1=^D, kcud1=^B, kcuf1=^F, kcuu1=^E, kf1=^G\Ee,
- kf10=\EK\Ea, kf2=^I\Ed, kf3=^J\Ec, kf4=^J\Eb, kf5=^S\Ea,
- kf6=\EO\Ee, kf7=\EN\Ed, kf8=\EM\Ec, kf9=\EL\Eb, nel=^M^J,
- rep=\E\023%p1%c%p2%c, ri=^K, rmso=\E^D, rmul=\E^D,
- rs1=\E\014\E\016\0\230\0\317\025\027\030\E\004,
- smso=\E^E, smul=\E^F,
- wind=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'\0'%+%c\025,
-
-#### DEC terminals (Obsolete types: DECwriter and vt40/42/50)
-#
-# These entries are DEC's official terminfos for its older terminals.
-# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
-# Engineering for more information. Updated terminfos and termcaps
-# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
-#
-
-gt40|dec gt40,
- OTbs, os,
- cols#72, lines#30,
- bel=^G, cr=^M, cub1=^H, cud1=^J,
-gt42|dec gt42,
- OTbs, os,
- cols#72, lines#40,
- bel=^G, cr=^M, cub1=^H, cud1=^J,
-vt50|dec vt50,
- OTbs,
- cols#80, lines#12,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cuu1=\EA, ed=\EJ, el=\EK, ht=^I, ind=^J,
-vt50h|dec vt50h,
- OTbs,
- cols#80, lines#12,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, ht=^I, ind=^J, ri=\EI,
-# (vt61: there's a BSD termcap that claims <dl1=\EPd>, <il1=\EPf.> <kbs=^H>)
-vt61|vt-61|vt61.5|dec vt61,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ$<120>, cr=\r$<20>, cub1=^H, cud1=^J,
- cuf1=\EC$<20>, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>,
- cuu1=\EA$<20>, ed=\EJ$<120>, el=\EK$<70>, ht=^I,
- ind=\n$<20>, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
- ri=\E$<20>I,
-
-# The gigi does standout with red!
-# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr)
-gigi|vk100|dec gigi graphics terminal,
- OTbs, am, xenl,
- cols#84, lines#24,
- bel=^G, clear=\E[H\E[2J, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, ed=\E[J,
- el=\E[K, ht=^I, ind=^J,
- is2=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, khome=\E[H, ri=\EM,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7;31m,
- smul=\E[4m,
-
-# DEC PRO-350 console (VT220-style). The 350 was DEC's attempt to produce
-# a PC differentiated from the IBM clones. It was a total, ludicrous,
-# grossly-overpriced failure (among other things, DEC's OS didn't include
-# a format program, so you had to buy pre-formatted floppies from DEC at
-# a hefty premium!).
-pro350|decpro|dec pro console,
- OTbs,
- cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- clear=\EH\EJ, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
- el=\EK, home=\EH, ht=^I, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\EE, kf1=\EF, kf2=\EG, kf3=\EH, kf4=\EI,
- kf5=\EJ, kf6=\Ei, kf7=\Ej, khome=\EH, ri=\EI, rmacs=\EG,
- rmso=\E^N, rmul=\E^C, smacs=\EF, smso=\E^H, smul=\E^D,
-
-dw1|decwriter I,
- OTbs, hc, os,
- cols#72,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J,
-dw2|decwriter|dw|decwriter II,
- OTbs, hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ind=^J, kbs=^H,
-# \E(B Use U.S. character set (otherwise # => british pound !)
-# \E[20l Disable "linefeed newline" mode (else puts \r after \n,\f,\v)
-# \E[w 10 char/in pitch
-# \E[1;132 full width horizontal margins
-# \E[2g clear all tab stops
-# \E[z 6 lines/in
-# \E[66t 66 lines/page (for \f)
-# \E[1;66r full vertical page can be printed
-# \E[4g clear vertical tab stops
-# \E> disable alternate keypad mode (so it transmits numbers!)
-# \E[%i%p1%du set tab stop at column %d (origin == 1)
-# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is
-# a tab stop)
-#
-# The dw3 does standout with wide characters.
-#
-dw3|la120|decwriter III,
- OTbs, hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J,
- is1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>,
- is2=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r,
- kbs=^H, rmso=\E[w, sgr0=\E[w, smso=\E[6w,
-dw4|decwriter IV,
- OTbs, am, hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ht=^I, ind=^J, is2=\Ec, kbs=^H,
- kf0=\EOP, kf1=\EOQ, kf2=\EOR, kf3=\EOS,
-
-# These aren't official
-ln03|dec ln03 laser printer,
- hc,
- cols#80, lines#66,
- bel=^G, cr=^M, cud1=^J, hd=\EK, ht=^I, hu=\EL, ind=^J, nel=^M^J,
- rmso=\E[22m, rmul=\E[24m, sgr0=\E[m, smso=\E[1m,
- smul=\E[4m,
-ln03-w|dec ln03 laser printer 132 cols,
- cols#132,
- bel=^G, cr=^M, cud1=^J, ht=^I, ind=^J, kbs=^H, kcub1=^H,
- kcud1=^J, nel=^M^J, use=ln03,
-
-#### Delta Data (dd)
-#
-
-# Untested. The cup sequence is hairy enough that it probably needs work.
-# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'.
-# There are BSD-derived termcap entries floating around for this puppy
-# that are *certainly* wrong.
-delta|dd5000|delta data 5000,
- OTbs, am,
- cols#80, lines#27,
- bel=^G, clear=^NR, cub1=^H, cud1=^J, cuf1=^Y,
- cup=\017%p1%p1%{16}%m%{2}%*%-%{57}%+%c%p2%p2%{16}%m%{2}%*%-%{57}%+%c,
- cuu1=^Z, dch1=^NV, el=^NU, home=^NQ, ind=^J,
-
-#### Digital Data Research (ddr)
-#
-
-# (ddr: I added <rmam>/<smam> based on the init string -- esr)
-ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator,
- OTbs, am, xenl,
- cols#80, it#8, lines#24, vt#3,
- blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[H\E[2J$<50/>, csr=\E[%i%p1%d;%p2%dr, cub1=^H,
- cud1=^J, cuf1=\E[C$<2/>, cup=\E[%i%p1%d;%p2%dH$<5/>,
- cuu1=\E[A$<2/>, ed=\E[J$<50/>, el=\E[K$<3/>, home=\E[H,
- ht=^I, ind=\ED$<5/>, is2=\E[1;24r\E[24;1H, kbs=^H,
- kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, rc=\E8, rev=\E[7m$<2/>,
- rf=/usr/share/tabset/vt100, ri=\EM$<5/>, rmam=\E[7l,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m$<2/>,
- rs1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
- sgr0=\E[m$<2/>, smam=\E[7l, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m$<2/>,
-
-#### Evans & Sutherland
-#
-
-# Jon Leech <leech@cs.unc.edu> tells us:
-# The ps300 was the Evans & Sutherland Picture System 300, a high
-# performance 3D vector graphics system with a bunch of specialized hardware.
-# Approximate date of release was 1982 (early 80s, anyway), and it had several
-# evolutions including (limited) color versions such as the PS330C. PS300s
-# were effectively obsolete by the late 80s, replaced by raster graphics
-# systems, although specialized applications like molecular modelling
-# hung onto them for a while longer. AFAIK all E&S vector graphics systems
-# are out of production, though of course E&S is very much alive (in 1996).
-# (ps300: changed ":pt@:" to "it@" -- esr)
-#
-ps300|Picture System 300,
- xt,
- it@,
- rmso@, rmul@, smso@, smul@, use=vt100,
-
-#### General Electric (ge)
-#
-
-terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200,
- OTbs, hc, os,
- cols#120,
- bel=^G, cr=^M, cud1=^J, ind=^J,
-
-#### Heathkit/Zenith
-#
-
-# Here is a description of the H19 DIP switches:
-#
-# S401
-# 0-3 = baud rate as follows:
-#
-# 3 2 1 0
-# --- --- --- ---
-# 0 0 1 1 300 baud
-# 0 1 0 1 1200 baud
-# 1 0 0 0 2400 baud
-# 1 0 1 0 4800 baud
-# 1 1 0 0 9600 baud
-# 1 1 0 1 19.2K baud
-#
-# 4 = parity (0 = no parity)
-# 5 = even parity (0 = odd parity)
-# 6 = stick parity (0 = normal parity)
-# 7 = full duplex (0 = half duplex)
-#
-# S402
-# 0 = block cursor (0 = underscore cursor)
-# 1 = no key click (0 = keyclick)
-# 2 = wrap at end of line (0 = no wrap)
-# 3 = auto LF on CR (0 = no LF on CR)
-# 4 = auto CR on LF (0 = no CR on LF)
-# 5 = ANSI mode (0 = VT52 mode)
-# 6 = keypad shifted (0 = keypad unshifted)
-# 7 = 50Hz refresh (1 = 60Hz refresh)
-#
-# Factory Default settings are as follows:
-# 7 6 5 4 3 2 1 0
-# S401 1 0 0 0 1 1 0 0
-# S402 0 0 0 0 0 0 0 0
-# (h19: I added <rmam>/<smam> based on the init string;
-# also added empty <acsc> to suppress a tic warning -- esr)
-h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode,
- OTbs, am, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=, bel=^G, clear=\E[2J, cnorm=\E[>4l, cr=^M, cub1=^H,
- cud1=\E[1B, cuf1=\E[1C, cup=\E[%i%p1%d;%p2%dH,
- cuu1=\E[1A, cvvis=\E[>4h, dch1=\E[1P, dl1=\E[1M$<1*>,
- ed=\E[J, el=\E[K, home=\E[H, ht=^I, il1=\E[1L$<1*>, ind=^J,
- is2=\E<\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m\E[?7h,
- kbs=^H, kcub1=\E[1D, kcud1=\E[1B, kcuf1=\E[1C, kcuu1=\E[1A,
- kf1=\EOS, kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP,
- kf7=\EOQ, kf8=\EOR, khome=\E[H, lf6=blue, lf7=red, lf8=white,
- ri=\EM, rmacs=\E[11m, rmam=\E[?7l, rmir=\E[4l, rmso=\E[m,
- smacs=\E[10m, smam=\E[?7h, smir=\E[4h, smso=\E[7m,
-h19-bs|heathkit w/keypad shifted,
- rmkx=\Eu, smkx=\Et, use=h19-b,
-h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
- rmkx=\Eu, smkx=\Et, use=h19-u,
-# (h19: merged in <ip> from BSDI hp19-e entry>;
-# also added empty <acsc> to suppress a tic warning --esr)
-# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998
-# Tim tells us that:
-# I have an old Zenith-19 terminal at home that still gets a lot of use.
-# This terminal suffers from the same famous insert-mode padding lossage
-# that has been acknowledged for the Z29 terminal. Emacs is nearly
-# unusable on this box, since even a half-scroll up or down the window
-# causes flaming terminal death.
-#
-# On the Z19, the only way I have found around this problem is to remove
-# the :al: and :dl: entries entirely. No amount of extra padding will
-# help (I have tried up to 20000). Removing <il1=\EL$> and <dl1=\EM$>
-# makes Emacs a little slower, but it remains in the land of the living.
-# Big win.
-h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
- OTbs, am, eslok, hs, mir, msgr,
- cols#80, it#8, lines#24,
- acsc=, bel=^G, clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- cvvis=\Ex4, dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH,
- ht=^I, ind=^J, ip=<1.5/>, kbs=^H, kcub1=\ED, kcud1=\EB,
- kcuf1=\EC, kcuu1=\EA, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, khome=\EH, lf6=blue,
- lf7=red, lf8=white, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
- smacs=\EF, smir=\E@, smso=\Ep,
- tsl=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo,
-h19-u|heathkit with underscore cursor,
- cnorm@, cvvis@, use=h19-b,
-h19-g|h19g|heathkit w/block cursor,
- cnorm=\Ex4, use=h19-b,
-alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19,
- lines#60,
- dl1=\EM, il1=\EL, use=h19,
-
-# The major problem with the Z29 is that it requires more padding than the Z19.
-#
-# The problem with declaring an H19 to be synonymous with a Z29 is that
-# it needs more padding. It especially loses if a program attempts
-# to put the Z29 into insert mode and insert text at 9600 baud. It
-# even loses worse if the program attempts to insert tabs at 9600
-# baud. Adding padding to text that is inserted loses because in
-# order to make the Z29 not die, one must add so much padding that
-# whenever the program tries to use insert mode, the effective
-# rate is about 110 baud.
-#
-# What program would want to put the terminal into insert mode
-# and shove stuff at it at 9600 baud you ask?
-#
-# Emacs. Emacs seems to want to do the mathematically optimal
-# thing in doing a redisplay rather than the practical thing.
-# When it is about to output a line on top of a line that is
-# already on the screen, instead of just killing to the end of
-# the line and outputting the new line, it compares the old line
-# and the new line and if there are any similarities, it
-# constructs the new line by deleting the text on the old line
-# on the terminal that is already there and then inserting new
-# text into the line to transform it into the new line that is
-# to be displayed. The Z29 does not react kindly to this.
-#
-# But don't cry for too long.... There is a solution. You can make
-# a termcap entry for the Z29 that says the Z29 has no insert mode.
-# Then Emacs cannot use it. "Oh, no, but now inserting into a
-# line will be really slow", you say. Well there is a sort of a
-# solution to that too. There is an insert character option on
-# the Z29 that will insert one character. Unfortunately, it
-# involves putting the terminal into ansi mode, inserting the
-# character, and changing it back to H19 mode. All this takes 12
-# characters. Pretty expensive to insert one character, but it
-# works. Either Emacs doesn't try to use its inserting hack when
-# it's only given an insert character ability or the Z29 doesn't
-# require padding with this (the former is probably more likely,
-# but I haven't checked it out).
-# (z29: added empty <acsc> to suppress a tic warning, merged in
-# status line capabilities from BRL entry --esr)
-z29|zenith29|z29b|zenith z29b,
- OTbs, OTpt, am, eslok, hs, mir, msgr,
- OTkn#10, cols#80, lines#24,
- OTbc=\ED, acsc=, bel=^G, cbt=\E-, clear=\EE$<14>, cnorm=\Ey4,
- cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\E$<1>A,
- cvvis=\Ex4, dch1=\EN$<0.1*>, dl1=\EM$<1/>, dsl=\Ey1,
- ed=\EJ$<14>, el=\EK$<1>, fsl=\Ek\Ey5, home=\EH, ht=^I,
- ich1=\E<\E[1@\E[?2h$<1>, il1=\EL$<1/>, ind=\n$<2>,
- is2=\E<\E[?2h\Ev, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kf0=\E~, kf1=\ES, kf2=\ET, kf3=\EU, kf4=\EV,
- kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER, kf9=\E0I, khome=\EH,
- lf0=home, ri=\EI$<2/>, rmacs=\EF, rmir=\EO, rmso=\Eq,
- rmul=\Es0, smacs=\EG, smir=\E@, smso=\Ep, smul=\Es8,
- tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
-# z29 in ansi mode. Assumes that the cursor is in the correct state, and that
-# the world is stable. <rs1> causes the terminal to be reset to the state
-# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore
-# cursor, bc -> block cursor.
-# From: Mike Meyers
-# (z29a: replaced nonexistent <if=/usr/share/tabset/zenith29> befause <hts>
-# looks vt100-compatible -- esr)
-z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode,
- OTbs, OTpt, am, eslok, hs, mir, msgr,
- OTkn#10, cols#80, it#8, lines#24,
- OTbc=\ED, bel=^G, blink=\E[5m, bold=\E[2m, clear=\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[1P, dim=\E[2m, dl=\E[%p1%dM,
- dsl=\E[>1l, ed=\E[J, el=\E[K, fsl=\E[u\E[>5l, home=\E[H,
- ht=^I, hts=\EH, if=/usr/share/tabset/vt100, il=\E[%p1%dL,
- ind=\ED, kbs=^H, kclr=\E[J, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, ked=\E[J, kf0=\E[~, kf1=\EOS,
- kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
- kf8=\EOR, kf9=\EOX, khome=\E[H, lf0=help, mc0=\E#7,
- nel=^M\ED, rc=\E[r, rev=\E[7m, ri=\EM, rmcup=\E[?7h,
- rmso=\E[m, rmul=\E[m,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m,
- sc=\E[s, sgr0=\E[m, smcup=\E[?7l, smso=\E[7;2m, smul=\E[4m,
- tbc=\E[3g, tsl=\E[s\E[>5;1h\E[25;%i%dH\E[1K,
-z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyckick and underscore cursor,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m,
- use=z29a,
-z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m\E[11m,
- use=z29a,
-z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick,
- rs1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m\E[11m,
- use=z29a,
-# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995
-z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode,
- am, eslok, hs, mc5i, mir, msgr, xon,
- cols#80, lines#24,
- acsc=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
- blink=\E[5m, bold=\E[1m, cbt=\E[1Z, civis=\E[>5h,
- clear=\E[2J\E[H, cnorm=\E[>5l, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[1P, dim=\E[2m, dl=\E[%p1%dM,
- dl1=\E[1M, dsl=\E[>1l, ed=\E[0J, el=\E[0K, el1=\E[1K,
- fsl=\E[u, home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[1L,
- ind=^J, is2=\E<\E[>1;3;5;6;7l\E[0m\E[2J, ka1=\EOw,
- ka3=\EOu, kb2=\EOy, kbs=^H, kc1=\EOq, kc3=\EOs, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ked=\E[J, kf1=\EOS,
- kf2=\EOT, kf3=\EOU, kf4=\EOV, kf5=\EOW, kf6=\EOP, kf7=\EOQ,
- kf8=\EOR, kf9=\EOX, khlp=\E[~, khome=\E[H, ll=\E[24;1H,
- mc0=\E[?19h\E[i, mc4=\E[4i, mc5=\E[5i, rc=\E[u, rev=\E[7m,
- rmacs=\E(B, rmir=\E[4l, rmkx=\E[>7l, rmso=\E[0m,
- rmul=\E[0m, rs2=\E<\Ec\0, sc=\E[s, sgr0=\E[0m, smacs=\E(0,
- smir=\E[4h, smkx=\E[>7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
- tsl=\E[s\E[>1h\E[25;%i%p1%dH,
-
-# From: Brad Brahms <Brahms@USC-ECLC>
-z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor,
- cnorm=\Ey4\Em70, cvvis=\Ex4\Em71, use=z100bw,
-# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr)
-z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
- OTbs, OTpt, mir, msgr,
- OTkn#10, cols#80, it#8, lines#24,
- acsc=, clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>,
- cuu1=\EA, cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>,
- ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL$<5*/>, kbs=^H,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\EJ, kf1=\ES,
- kf2=\ET, kf3=\EU, kf4=\EV, kf5=\EW, kf6=\EP, kf7=\EQ, kf8=\ER,
- kf9=\EOI, khome=\EH, ri=\EI, rmacs=\EG, rmir=\EO, rmso=\Eq,
- smacs=\EF, smir=\E@, smso=\Ep,
-p19|h19-b with il1/dl1,
- dl1=\EM$<2*/>, il1=\EL$<2*/>, use=h19-b,
-# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
-# (ztx: removed duplicate :sr: -- esr)
-ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11,
- OTbs, am, eslok, hs,
- cols#80, it#8, lines#24,
- clear=\EE, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
- dsl=\Ey1, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I,
- il1=\EL, is2=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>,
- kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kf0=\ES,
- kf1=\EB, kf2=\EU, kf3=\EV, kf4=\EW, kf5=\EP, kf6=\EQ, kf7=\ER,
- ri=\EI, rmso=\Eq, rmul=\Eq, smso=\Es5, smul=\Es2,
- tsl=\Ej\Ex5\Ex1\EY8%+ \Eo,
-
-#### IMS International (ims)
-#
-# There was a company called IMS International located in Carson City,
-# Nevada, that flourished from the mid-70s to mid-80s. They made S-100
-# bus/Z80 hardware and a line of terminals called Ultimas.
-#
-
-# From: Erik Fair <fair@ucbarpa.berkeley.edu> Sun Oct 27 07:21:05 1985
-ims950-b|bare ims950 no init string,
- is2@, use=ims950,
-# (ims950: removed obsolete ":ko@:" -- esr)
-ims950|ims televideo 950 emulation,
- xenl@,
- flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950,
-# (ims950-rv: removed obsolete ":ko@:" -- esr)
-ims950-rv|ims tvi950 rev video,
- xenl@,
- flash@, kbs@, kcub1@, kcud1@, kcuf1@, kcuu1@, kf0@, kf1@, kf2@, kf3@,
- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, khome@, use=tvi950-rv,
-ims-ansi|ultima2|ultimaII|IMS Ultima II,
- OTbs, am,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J, cub1=^H, cud1=\ED,
- cup=\E[%i%p1%2d;%p2%2dH, cuu1=\EM, ed=\E[0J, el=\E[0K,
- ht=^I, if=/usr/share/tabset/vt100,
- is2=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, ri=\EM,
- rmso=\E[m\E[1m, rmul=\E[m\E[1m, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m,
-
-#### Intertec Data Systems
-#
-# I think this company is long dead as of 1995. They made an early CP/M
-# micro called the "Intertec Superbrain" that was moderately popular,
-# then sank out of sight.
-#
-
-superbrain|intertec superbrain,
- OTbs, am, bw,
- cols#80, lines#24,
- OTbc=^U, bel=^G, clear=\014$<5*>, cr=^M, cub1=^H, cud1=^J,
- cuf1=^F, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<20>, cuu1=^K,
- ed=\E~k<10*>, el=\E~K$<15>, ht=^I, ind=^J, kcub1=^U,
- kcud1=^J, kcuf1=^F, kcuu1=^K, rmcup=^L, smcup=^L,
-# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>,
-# rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM,
-# and the reverse is actually true. Try it. -- esr)
-intertube|intertec|Intertec InterTube,
- OTbs, am,
- cols#80, lines#25,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^F,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<50>, cuu1=^Z, home=^A,
- ind=^J, rmso=\E0@, smso=\E0P,
-# The intertube 2 has the "full duplex" problem like the tek 4025: if you
-# are typing and a command comes in, the keystrokes you type get interspersed
-# with the command and it messes up
-intertube2|intertec data systems intertube 2,
- OTbs,
- cup=\016%p1%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%c,
- el=\EK, hpa=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%c,
- ll=^K^X\r, vpa=\013%p1%c, use=intertube,
-
-#### Ithaca Intersystems
-#
-# This company made S100-bus personal computers long ago in the pre-IBM-PC
-# past. They used to be reachable at:
-#
-# Ithaca Intersystems
-# 1650 Hanshaw Road
-# Ithaca, New York 14850
-#
-# However, the outfit went bankrupt years ago.
-#
-
-# The Graphos III was a color graphics terminal from Ithaca Intersystems.
-# These entries were written (originally in termcap syntax) by Brian Yandell
-# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the
-# University of Wisconsin.
-
-# (graphos: removed obsolete and syntactically incorrect :kn=4:,
-# removed <if=/usr/share/tabset/init.graphos> and
-# <rf=/usr/share/tabset/init.graphos> no such file & no <hts> -- esr)
-graphos|graphos III,
- am, mir,
- cols#80, it#8, lines#24,
- clear=\E[H\E[2J, cnorm=\Ez56;2;0;0z\Ez73z\Ez4;1;1z,
- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\Ez4;2;1z\Ez56;2;80;24z, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, il=\E[%p1%dL,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, khome=\E[H, nel=^M\ED, rc=\E8, ri=\EM, rmdc=\E[4l,
- rmir=\E[4l, rmso=\E[m, sc=\E7, sgr0=\E[m, smdc=\E[4h,
- smir=\E[4h, smso=\E[7m,
-graphos-30|graphos III with 30 lines,
- lines#30,
- cvvis=\Ez4;2;1z\Ez56;2;80;30z, use=graphos,
-
-#### Modgraph
-#
-# These people used to be reachable at:
-#
-# Modgraph, Inc
-# 1393 Main Street,
-# Waltham, MA 02154
-# Vox: (617)-890-5796.
-#
-# However, if you call that number today you'll get an insurance company.
-# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated
-# 26 Feb 1997 that says:
-#
-# Modgraph GX-1000, replaced by GX-2000. Both are out of production, have been
-# for ~7 years. Modgraph still in business. Products are rugged laptop and
-# portable PC's and specialized CRT and LCD monitors (rugged, rack-mount
-# panel-mount etc). I can be emailed at sonfour@aol.com
-#
-# Peter D. Smith <pdsmith@nbbn.com> notes that his modgraph manual was
-# dated 1984. According to the manual, it featured Tek 4010/4014
-# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard.
-#
-
-modgraph|mod24|modgraph terminal emulating vt100,
- xenl@,
- cols#80, lines#24,
- cvvis=\E\^9;0s\E\^7;1s,
- is2=\E\^9;0s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s\E\^11;81s\E\^11;89s,
- rf@, ri=\EM\E[K$<5/>, use=vt100,
-# The GX-1000 manual is dated 1984. This looks rather like a VT-52.
-modgraph2|modgraph gx-1000 80x24 with keypad not enabled,
- am, da, db,
- cols#80, it#8, lines#24,
- clear=\EH\EJ$<50/>, cub1=^H, cuf1=\EC$<2/>,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5/>, cuu1=\EA$<2/>,
- ed=\EJ$<50/>, el=\EK$<3/>, ht=^I,
- is2=\E<\E\^5;2s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s\E\^11;81s\E\^11;89s\E\^12;0s\E\^14;2s\E\^15;9s\E\^25;1s\E\^9;1s\E\^27;1,
- ri=\EI$<5/>,
-#
-# Modgraph from Nancy L. Cider <nancyc@brl-tbd>
-# BUG NOTE from Barbara E. Ringers <barb@brl-tbd>:
-# If we set TERM=vt100, and set the Modgraph screen to 24 lines, setting a
-# mark and using delete-to-killbuffer work correctly. However, we would
-# like normal mode of operation to be using a Modgraph with 48 line setting.
-# If we set TERM=mod (which is a valid entry in termcap with 48 lines)
-# the setting mark and delete-to-killbuffer results in the deletion of only
-# the line the mark is set on.
-# We've discovered that the delete-to-killbuffer works correctly
-# with TERM=mod and screen set to 80x48 but it's not obvious. Only
-# the first line disappears but a ctrl-l shows that it did work
-# correctly.
-modgraph48|mod|Modgraph w/48 lines,
- OTbs, OTpt, am, xenl,
- cols#80, it#8, lines#48, vt#3,
- OTnl=^J, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[;H\E[2J,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q,
- home=\E[H, ht=^I, is2=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h,
- 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,
- rs1=\E=\E[0q\E>, sc=\E7, sgr0=\E[m, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m,
-
-#### Morrow Designs
-#
-# This was George Morrow's company. They started in the late 1970s making
-# S100-bus machines. They used to be reachable at:
-#
-# Morrow
-# 600 McCormick St.
-# San Leandro, CA 94577
-#
-# but they're long gone now (1995).
-#
-
-# The mt70 terminal was shipped with the Morrow MD-3 microcomputer.
-# Jeff's specimen was dated June 1984.
-# From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995
-mt70|mt-70|Morrow MD-70; native Morrow mode,
- am, mir, msgr, xon,
- cols#80, it#8, lines#24,
- acsc=+z\,{-x.yOi`|jGkFlEmDnHqJtLuKvNwMxI, bel=^G,
- cbt=\EI, civis=\E"0, clear=^Z, cnorm=\E"2, cr=^M, cub1=^H,
- cud1=^J, cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c$<1>,
- cuu1=^K, dch1=\EW, dim=\EG2, dl1=\ER, ed=\EY, el=\ET$<10>,
- flash=\EK1$<200>\EK0, home=^^, ht=^I, ich1=\EQ, il1=\EE,
- ind=^J, invis@, is1=\E"2\EG0\E], kbs=^H, kcbt=^A^Z\r,
- kclr=^An\r, kcub1=^AL\r, kcud1=^AK\r, kcuf1=^AM\r,
- kcuu1=^AJ\r, kdch1=\177, kf1=^A@\r, kf10=^AI\r, kf11=^A`\r,
- kf12=^Aa\r, kf13=^Ab\r, kf14=^Ac\r, kf15=^Ad\r, kf16=^Ae\r,
- kf17=^Af\r, kf18=^Ag\r, kf19=^Ah\r, kf2=^AA\r, kf20=^Ai\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khlp=^AO\r, khome=^AN\r, nel=^_,
- rmacs=\E%%, rmcup=, smacs=\E$, smcup=\E"2\EG0\E],
- smul=\EG1, tbc=\E0, use=adm+sgr,
-
-#### Motorola
-#
-
-# Motorola EXORterm 155 from {decvax, ihnp4}!philabs!sbcs!megad!seth via BRL
-# (Seth H Zirin)
-ex155|Motorola Exorterm 155,
- OTbs, am, bw,
- OTkn#5, OTug#1, cols#80, lines#24,
- cbt=\E[, clear=\EX, cud1=\EB, cuf1=\ED,
- cup=\EE%p1%{32}%+%c%p2%{32}%+%c, ed=\ET, el=\EU,
- home=\E@, ht=\EZ, kbs=^H, kcbt=\E[, kclr=\EX, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, ked=\ET, kel=\EU, khome=\E@,
- rmso=\Ec\ED, rmul=\Eg\ED, smso=\Eb\ED, smul=\Ef\ED,
-
-#### Omron
-#
-# This company is still around in 1995, manufacturing point-of-sale systems.
-
-omron|Omron 8025AG,
- OTbs, am, da, db,
- cols#80, lines#24,
- bel=^G, clear=\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC, cuu1=\EA,
- cvvis=\EN, dch1=\EP, dl1=\EM, ed=\ER, el=\EK, home=\EH,
- il1=\EL, ind=\ES, ri=\ET, rmso=\E4, smso=\Ef,
-
-#### Ramtek
-#
-# Ramtek was a vendor of high-end graphics terminals around 1979-1983; they
-# were competition for things like the Tektronics 4025.
-#
-
-# Ramtek 6221 from BRL, probably by Doug Gwyn
-# The following SET-UP modes are assumed for normal operation:
-# UNDERLINE_CURSOR ANSI_MODE AUTO_XON/XOFF_ON
-# NEWLINE_OFF 80_COLUMNS
-# Other SET-UP modes may be set for operator convenience or communication
-# requirements; I recommend
-# SMOOTH_SCROLL AUTO_REPEAT_ON 3_#_SHIFTED WRAP_AROUND_ON
-# Hardware tabs are assumed to be every 8 columns; they can be set up by the
-# "reset", "tset", or "tabs" utilities (use rt6221-w, 160 columns, for this).
-# Note that the Control-E key is useless on this brain-damaged terminal. No
-# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
-rt6221|Ramtek 6221 80x24,
- OTbs, OTpt, msgr, xon,
- OTkn#4, cols#80, it#8, lines#24, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[>5l,
- clear=\E[1;1H\E[J, cnorm=\E[>5h\E[>9h, cr=^M,
- csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^K, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
- cvvis=\E[>7h\E[>9l, ed=\E[J, el=\E[K, home=\E[1;1H, ht=^I,
- hts=\EH, ind=^J, is2=\E)0, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf0=\EOP, kf1=\EOQ, kf2=\EOR,
- kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3, lf3=PF4, ll=\E[24;1H,
- nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, rmkx=\E>,
- rmso=\E[m, rmul=\E[m,
- rs1=\E[1w\E[>37m\E[>39m\E[1v\E[20l\E[?3l\E[?6l\E[>5h\E[>6h\E[>7h\E[>8l\E[>9h\E[>10l\E[1;24r\E[m\E[q\E(B\017\E)0\E#5\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)].
-rt6221-w|Ramtek 6221 160x48,
- cols#160, lines#48,
- ll=\E[48;1H, use=rt6221,
-
-#### RCA
-#
-
-# RCA VP3301 or VP3501
-rca|rca vp3301/vp3501,
- OTbs,
- cols#40, lines#24,
- clear=^L, cuf1=^U, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, home=^Z, rmso=\E\ES0, smso=\E\ES1,
-
-
-#### Selanar
-#
-
-# Selanar HiREZ-100 from BRL, probably by Doug Gwyn
-# The following SET-UP modes are assumed for normal operation:
-# SET_DEFAULT_TABS 48_LINES 80_COLUMNS
-# ONLINE ANSI CURSOR_VISIBLE
-# VT102_AUTO_WRAP_ON VT102_NEWLINE_OFF VT102_MONITOR_MODE_OFF
-# LOCAL_ECHO_OFF US_CHAR_SET WPS_TERMINAL_DISABLED
-# CPU_AUTO_XON/XOFF_ENABLED PRINT_FULL_SCREEN
-# For use with graphics software, all graphics modes should be set to factory
-# default. Other SET-UP modes may be set for operator convenience or
-# communication requirements. No delays are specified; use "stty ixon -ixany"
-# to enable DC3/DC1 flow control!
-# I commented out the scrolling capabilities since they are too slow.
-hirez100|Selanar HiREZ-100,
- OTbs, OTpt, mir, msgr, xon,
- OTkn#4, cols#80, it#8, lines#48, vt#3,
- acsc=, bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J,
- cr=^M, cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\EM, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- hts=\EH, il=\E[%p1%dL, il1=\E[L, is2=\E<\E)0, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf0=\EOP,
- kf1=\EOQ, kf2=\EOR, kf3=\EOS, lf0=PF1, lf1=PF2, lf2=PF3,
- lf3=PF4, ll=\E[48H, mc0=\E[i, mc4=\E[4i\E[?4i,
- mc5=\E[?5i\E[5i, nel=\EE, rc=\E8, rev=\E[7m, rmacs=^O,
- rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
- rs1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;19l\E[r\E[m\E(B\017\E)0\E>,
- sc=\E7, sgr0=\E[m, smacs=^N, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-hirez100-w|Selanar HiREZ-100 in 132-column mode,
- cols#132, use=hirez100,
-
-#### Signetics
-#
-
-# From University of Wisconsin
-vsc|Signetics Vsc Video driver by RMC,
- am, msgr,
- cols#80, it#8, lines#26,
- clear=\E[;H\E[2J$<50/>, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[K, home=\E[H,
- ht=^I, ind=^J, kbs=^H, kcub1=^H, kcud1=^J, nel=^M^J, rev=^_\s,
- rmso=^_!, rmul=^_#, sgr0=^_!, smso=^_\s, smul=^_",
-
-#### Soroc
-#
-# Alan Frisbie <frisbie@flying-disk.com> writes:
-#
-# As you may recall, the Soroc logo consisted of their name,
-# with the letter "S" superimposed over an odd design. This
-# consisted of a circle with a slightly smaller 15 degree (approx.)
-# wedge with rounded corners inside it. The color was sort of
-# a metallic gold/yellow.
-#
-# If I had been more of a beer drinker it might have been obvious
-# to me, but it took a clue from their service department to make
-# me exclaim, "Of course!" The circular object was the top of
-# a beer can (the old removable pop-top style) and "Soroc" was an
-# anagram for "Coors".
-#
-# I can just imagine the founders of the company sitting around
-# one evening, tossing back a few and trying to decide what to
-# call their new company and what to use for a logo.
-#
-
-# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr)
-soroc120|iq120|soroc|soroc iq120,
- clear=\E*$<2>, cud1=^J, ed=\EY, el=\ET, kcub1=^H, kcud1=^J,
- kcuf1=^L, kcuu1=^K, use=adm3a,
-soroc140|iq140|soroc iq140,
- OTbs, am, mir,
- cols#80, lines#24,
- bel=^G, cbt=\EI, clear=\E+, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\Ew,
- dl1=\Er$<.7*>, ed=\Ey, el=\Et, home=^^, il1=\Ee$<1*>, ind=^J,
- kbs=^H, kcuf1=^L, kcuu1=^K, kf0=^A0\r, kf1=^A@\r, kf2=^AA\r,
- kf3=^AB\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r,
- kf8=^AG\r, kf9=^AH\r, khome=^^, ll=^^^K, rmir=\E8,
- rmso=\E\177, rmul=\E^A, smir=\E9, smso=\E\177, smul=\E^A,
-
-#### Southwest Technical Products
-#
-# These guys made an early personal micro called the M6800.
-# The ct82 was probably its console terminal.
-#
-
-# (swtp: removed obsolete ":bc=^D:" -- esr)
-swtp|ct82|southwest technical products ct82,
- am,
- cols#82, lines#20,
- bel=^G, clear=^L, cr=^M, cub1=^D, cud1=^J, cuf1=^S,
- cup=\013%p2%c%p1%c, cuu1=^A, dch1=^\^H, dl1=^Z, ed=^V, el=^F,
- home=^P, ich1=^\^X, il1=^\^Y, ind=^N,
- is2=\034\022\036\023\036\004\035\027\011\023\036\035\036\017\035\027\022\011,
- ll=^C, ri=^O, rmso=^^^F, smso=^^^V,
-
-#### Synertek
-#
-# Bob Manson <manson@pattyr.acs.ohio-state.edu> writes (28 Apr 1995):
-#
-# Synertek used to make ICs, various 6502-based single-board process
-# control and hobbyist computers, and assorted peripherals including a
-# series of small inexpensive terminals (I think they were one of the
-# first to have a "terminal-on-a-keyboard", where the terminal itself
-# was only slightly larger than the keyboard).
-#
-# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40
-# was a 40x24 terminal that could connect to a standard TV through a
-# video modulator. The KTM-2/80 was the 80-column version (the 2/40
-# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM).
-# I have a KTM-2/80 still in working order. The KTM-2s had fully
-# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program
-# ROM and 2 ROMs as character generators. They were incredibly simple,
-# and I've never had any problems with mine (witness the fact that mine
-# was made in 1981 and is still working great... I've blown the video
-# output transistor a couple of times, but it's a 2N2222 :-)
-#
-# The KTM-3 (which is what is listed in the terminfo file) was their
-# attempt at putting a KTM-2 in a box (and some models came with a
-# CRT). It wasn't much different from the KTM-2 hardware-wise, but the
-# control and escape sequences are very different. The KTM-3 was always
-# real broken, at least according to the folks I've talked to about it.
-#
-# The padding in the entry is probably off--these terminals were very
-# slow (it takes like 100ms for the KTM-2 to clear the screen...) And
-# anyone with any sanity replaced the ROMs with something that provided
-# a reasonable subset of VT100 functionality, since the usual ROMs were
-# obviously very primitive... oh, you could get an upgraded ROM from
-# Synertek for some incredible amount of money, but what hacker with an
-# EPROM burner would do that? :)
-#
-# Sorry I don't have any contact info; I believe they were located in
-# Sunnyvale, and I'm fairly sure they are still manufacturing ICs
-# (they've gone to ASICs and FPGAs), but I doubt they're in the computer
-# business these days.
-#
-
-# Tested, seems to work fine with vi.
-synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal,
- am,
- cols#80, lines#24,
- clear=^Z, cub1=^H, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
-
-#### Tab Office Products
-#
-# TAB Products Co. - Palo Alto, California
-# Electronic Office Products,
-# 1451 California Avenue 94304
-#
-# I think they're out of business.
-#
-
-# The tab 132 uses xon/xoff, so no padding needed.
-# <smkx>/<rmkx> have nothing to do with arrow keys.
-# <is2> sets 80 col mode, normal video, autowrap on (for <am>).
-# Seems to be no way to get rid of status line.
-# The manual for this puppy was dated June 1981. It claims to be VT52-
-# compatible but looks more vt100-like.
-tab132|tab|tab132-15|tab 132/15,
- da, db,
- OTdN@, cols#80, lines#24, lm#96,
- cud1=^J, cup=\E[%i%p1%d;%p2%dH, dch1=\E[P, dl1=\E[M,
- il1=\E[L, is2=\E[?7h\E[?3l\E[?5l, kcub1=\E[D, kcud1=\E[B,
- kcuu1=\E[A, rmir=\E[4l, rmkx@, smir=\E[4h, smkx@, use=vt100,
-tab132-w|tab132 in wide mode,
- cols#132,
- is2=\E[?7h\E[?3h\E[?5l, use=tab132,
-tab132-rv|tab132 in reverse-video mode,
- is2=\E[?7h\E[?3l\E[?5h, use=tab132,
-tab132-w-rv|tab132 in reverse-video/wide mode,
- is2=\E[?7h\E[?3h\E[?5h, use=tab132-w,
-
-
-#### Teleray
-#
-# Research Incorporated
-# 6425 Flying Cloud Drive
-# Eden Prairie, MN 55344
-# Vox: (612)-941-3300
-#
-# The Teleray terminals were all discontinued in 1992-93. RI still services
-# and repairs these beasts, but no longer manufactures them. The Teleray
-# people believe that all the types listed below are very rare now (1995).
-# There was a newer line of Telerays (Model 7, Model 20, Model 30, and
-# Model 100) that were ANSI-compatible.
-#
-# Note two things called "teleray". Reorder should move the common one
-# to the front if you have either. A dumb teleray with the cursor stuck
-# on the bottom and no obvious model number is probably a 3700.
-#
-
-t3700|dumb teleray 3700,
- OTbs,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ind=^J,
-t3800|teleray 3800 series,
- OTbs,
- cols#80, it#8, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=\EJ, el=\EK,
- home=\EH, ht=^I, ind=^J, ll=\EY7\s,
-t1061|teleray|teleray 1061,
- OTbs, am, km, xhp, xt,
- cols#80, it#8, lines#24, xmc#1,
- bel=^G, clear=\014$<1>, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
- dl1=\EM$<2*>, ed=\EJ$<1>, el=\EK, home=\EH, ht=^I, hts=\EF,
- ich1=\EP, il1=\EL$<2*>, ind=^J, ip=$<0.4*>,
- is2=\Ee\EU01^Z1\EV\EU02^Z2\EV\EU03^Z3\EV\EU04^Z4\EV\EU05^Z5\EV\EU06^Z6\EV\EU07^Z7\EV\EU08^Z8\EV\Ef,
- kf1=^Z1, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5, kf6=^Z6, kf7=^Z7,
- kf8=^Z8, rmso=\ER@, rmul=\ER@, smso=\s\ERD, smul=\ERH,
- tbc=\EG,
-t1061f|teleray 1061 with fast PROMs,
- dl1=\EM, il1=\EL, ip@, use=t1061,
-# "Teleray Arpa Special", officially designated as
-# "Teleray Arpa network model 10" with "Special feature 720".
-# This is the new (1981) fast microcode updating the older "arpa" proms
-# (which gave meta-key and programmable-fxn keys). 720 is much much faster,
-# converts the keypad to programmable function keys, and has other goodies.
-# Standout mode is still broken (magic cookie, etc) so is suppressed as no
-# programs handle such lossage properly.
-# Note: this is NOT the old termcap's "t1061f with fast proms."
-# From: J. Lepreau <lepreau@utah-cs> Tue Feb 1 06:39:37 1983, Univ of Utah
-# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr)
-t10|teleray 10 special,
- OTbs, km, xhp, xt,
- cols#80, it#8, lines#24, xmc#2,
- clear=\Ej$<30/>, cub1=^H, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
- dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
- ind=\Eq, pad=\0, ri=\Ep, rmso=\ER@, rmul=\ER@, smso=\ERD,
- smul=\ERH,
-# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and
-# back/forth words. Put the function keys (f1-f10) where they can be
-# found, and turn off the other magic keys along the top row, except
-# for line/local. Do the magic appropriate to make the page shifts work.
-# Also toggle ^S/^Q for those of us who use Emacs.
-t16|teleray 16,
- am, da, db, mir, xhp, xt,
- cols#80, lines#24,
- bel=^G, clear=\E[H\E[2J, cr=^M, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=%i\E[%p1%d;%p2%df, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[0J, el=\E[0K, home=\E[H, ht=^I, il1=\E[L,
- ind=^J, kf1=^Z1, kf10=^Z0, kf2=^Z2, kf3=^Z3, kf4=^Z4, kf5=^Z5,
- kf6=^Z6, kf7=^Z7, kf8=^Z8, kf9=^Z9, ri=\E[T,
- rmcup=\E[V\E[24;1f\E[?38h, rmir=\E[4l, rmso=\E[m,
- rmul=\E[m, sgr0=\E[m, smcup=\E[U\E[?38l, smir=\E[4h,
- smso=\E[7m, smul=\E[4m,
-
-#### Texas Instruments (ti)
-#
-
-# The Silent 700 was so called because it was built around a quiet thermal
-# printer. It was portable, equipped with an acoustic coupler, and pretty
-# neat for its day.
-ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800,
- OTbs, hc, os,
- cols#80,
- bel=^G, cr=\r$<162>, cub1=^H, cud1=^J, ind=^J,
-
-#
-# Texas Instruments 916 VDT 7 bit control mode
-#
-ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL,
- da, db, in, msgr,
- cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[2J$<6>,
- cnorm=\E[?25h, cub=\E[%p1%dD, cud=\E[%p1%dB,
- cuf=\E[%p1%dC, cup=\E[%p1%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cvvis=\E[?25h, dch=\E[%p1%dP$<250>, dch1=\E[P,
- dl=\E[%p1%dM, ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K,
- el1=\E[1K, enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>,
- hpa=\E[%p1%{1}%+%dG, hts=\E[0W, ich=\E[%p1%d@$<250>,
- il=\E[%p1%dL$<36>, ip=$<10>, is2=\E[1;24r\E[24;1H,
- kcmd=\E[29~, kdch1=\E[P, kent=^J, kf1=\E[17~, kf10=\E[28~,
- kf11=\E[29~, kf12=\E[31~, kf2=\E[18~, kf3=\E[19~,
- kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
- kf9=\E[26~, khome=\E[H, kich1=\E[@, knp=\E[S, kpp=\E[T,
- kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p,
- smacs=\016$<2>, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
- use=vt220,
-#
-# Texas Instruments 916 VDT 8 bit control mode
-#
-ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL,
- kcmd=\23329~, kcub1=\233D, kcud1=\233B, kcuf1=\233C,
- kcuu1=\233A, kdch1=\233P, kent=^J, kf1=\23317~,
- kf10=\23328~, kf11=\23329~, kf12=\23331~, kf2=\23318~,
- kf3=\23319~, kf4=\23320~, kf5=\23321~, kf6=\23323~,
- kf7=\23324~, kf8=\23325~, kf9=\23326~, khome=\233H,
- kich1=\233@, knp=\233S, kpp=\233T, kprt=^X, use=ti916,
-#
-# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode
-#
-ti916-132|Texas Instruments 916 VDT vt220 132 column,
- cols#132, use=ti916,
-#
-# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode
-#
-ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column,
- cols#132, use=ti916-8,
-ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL,
- OTbs, am, xon,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
- csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\E[16~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, kich1=\E[@, rc=\E8, rev=\E[7m,
- ri=\EM, rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL,
- am, xon,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
- csr=%i\E[%p1%d;%p2%dr, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
- cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?31h,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, hts=\EH,
- il1=\E[L, ind=\ED, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=P$<\233>, kf1=P$<\217>,
- kf2=Q$<\217>, kf3=R$<\217>, kf4=S$<\217>, kf5=~$<\23316>,
- kf6=~$<\23317>, kf7=~$<\23318>, kf8=~$<\23319>,
- kf9=~$<\23320>, kich1=@$<\233>, rc=\E8, rev=\E[7m, ri=\EM,
- rmso=\E[m, rmul=\E[m, sc=\E7, sgr0=\E[m, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g,
-ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode,
- cols#132, use=ti924,
-ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode,
- cols#132, use=ti924-8,
-ti931|Texas Instruments 931 VDT,
- OTbs, am, xon,
- cols#80, lines#24,
- bel=^G, blink=\E4P, clear=\EL, cnorm=\E4@, cr=^M, cub1=\ED,
- cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=\EA, dch1=\EQ, dl1=\EO, ed=\EJ, el=\EI, home=\EH,
- ich1=\ER\EP\EM, il1=\EN, ind=\Ea, invis=\E4H,
- is2=\EGB\E(@B@@\E), kcub1=\ED, kcud1=\EB, kcuf1=\EC,
- kcuu1=\EA, kdch1=\EQ, kdl1=\EO, kf1=\Ei1, kf2=\Ei2, kf3=\Ei3,
- kf4=\Ei4, kf5=\Ei5, kf6=\Ei6, kf7=\Ei7, kf8=\Ei8, kf9=\Ei9,
- kich1=\EP, kil1=\EN, rev=\E4B, ri=\Eb, rmso=\E4@, rmul=\E4@,
- sgr0=\E4@, smso=\E4A, smul=\E4D,
-ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL,
- csr@, ind=\E[1S, ri=\E[1T, use=ti924,
-# (ti926-8: I corrected this from the broken SCO entry -- esr)
-ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL,
- csr@, ind=\2331S, ri=\2331T, use=ti924-8,
-ti_ansi|basic entry for ti928,
- am, bce, eo, xenl, xon,
- colors#8, cols#80, it#8, lines#25, pairs#64,
- bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, clear=\E[2J\E[H,
- cr=^M, csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B,
- cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
- dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I, ich1=\E[@,
- il1=\E[L, ind=\E[S, kbs=^H, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kend=\E[F, kf0=\E[V, kf1=\E[M,
- 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, knp=\E[G, kpp=\E[I,
- op=\E[37;40m, ri=\E[T, rmso=\E[m, rmul=\E[m,
- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, sgr0=\E[m,
- smso=\E[7m, smul=\E[4m,
-#
-# 928 VDT 7 bit control mode
-#
-ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL,
- kdch1=\E[P, kend=\E_1\E\\, kent=\E[8~, kf1=\E[17~,
- kf10=\E[28~, kf11=\E[29~, kf12=\E[31~, kf13=\E[32~,
- kf15=\E[34~, kf2=\E[18~, kf3=\E[19~, kf4=\E[20~,
- kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~,
- kich1=\E[@, knp=\E[S, kpp=\E[T, kprt=\E[35~, use=ti_ansi,
-#
-# 928 VDT 8 bit control mode
-#
-ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL,
- kdch1=\233P, kend=\2371\234, kent=\2338~, kf1=\23317~,
- kf10=\23328~, kf11=\23329~, kf12=\23331~, kf13=\23332~,
- kf15=\23334~, kf2=\23318~, kf3=\23319~, kf4=\23320~,
- kf5=\23321~, kf6=\23323~, kf7=\23324~, kf8=\23325~,
- kf9=\23326~, khome=\233H, kich1=\233@, knp=\233S,
- kpp=\233T, kprt=\23335~, use=ti_ansi,
-
-#### Zentec (zen)
-#
-
-# (zen30: removed obsolete :ma=^L ^R^L^K^P:. This entry originally
-# had just <smso>=\EG6 which I think means standout was supposed to be
-# dim-reverse using ADM12-style attributes. ADM12 <smul>/<rmul> and
-# <invis> might work-- esr)
-zen30|z30|zentec 30,
- OTbs, am, mir, ul,
- cols#80, lines#24,
- bel=^G, clear=\E*, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
- dim=\EG2, dl1=\ER$<1.5*>, ed=\EY, el=\ET$<1.0*>, home=^^,
- il1=\EE$<1.5*>, ind=^J, rmir=\Er, rmul@, smir=\Eq, smso=\EG6,
- smul@, use=adm+sgr,
-# (zen50: this had extension capabilities
-# :BS=^U:CL=^V:CR=^B:
-# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh,
-# which were also in the original entry -- esr)
-# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr)
-zen50|z50|zentec zephyr,
- OTbs, am,
- cols#80, lines#24, xmc#1,
- clear=\E+, cub1=^H, cup=\E=%p1%{32}%+%c%p2%{32}%+%c,
- cuu1=^K, dch1=\EW, dl1=\ER, ed=\EY, el=\ET, ich1=\EQ, il1=\EE,
- invis@, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
- rmul@, smul@, use=adm+sgr,
-
-# CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL
-cci|cci1|z8001|zen8001|CCI Custom Zentec 8001,
- OTbs, am, bw,
- cols#80, lines#24,
- blink=\EM", clear=\EH\EJ, cnorm=\EP,
- csr=\ER%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^J,
- cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA,
- cvvis=\EF\EQ\EM \ER 7, dim=\EM!, ed=\EJ, el=\EK, home=\EH,
- invis=\EM(, is2=\EM \EF\ET\EP\ER 7, kbs=^H, kcub1=\ED,
- kcud1=\EB, kcuf1=\EC, kcuu1=\EA, khome=\EH, mc4=^T, mc5=^R,
- rev=\EM$, ri=\EI, rmso=\EM\s, rmul=\EM\s, sgr0=\EM\s,
- smso=\EM$, smul=\EM0,
-
-######## OBSOLETE UNIX CONSOLES
-#
-
-#### Apollo consoles
-#
-# Apollo got bought by Hewlett-Packard. The Apollo workstations are
-# labeled HP700s now.
-#
-
-# From: Gary Darland <goodmanc@garnet.berkeley.edu>
-apollo|apollo console,
- OTbs, am, mir,
- cols#88, lines#53,
- clear=^L, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\EM%p1%{32}%+%c%p2%d), cuu1=\EA, dch1=\EP, dl1=\EL,
- ed=\EJ, el=\EK, hpa=\EN%p1%d, il1=\EI, ind=\EE, ri=\ED,
- rmcup=\EX, rmir=\ER, rmso=\ET, rmul=\EV, smcup=\EW, smir=\EQ,
- smso=\ES, smul=\EU, vpa=\EO+\s,
-
-# We don't know whether or not the apollo guys replicated DEC's firmware bug
-# in the VT132 that reversed <rmir>/<smir>. To be on the safe side, disable
-# both these capabilities.
-apollo_15P|apollo 15 inch display,
- rmir@, smir@, use=vt132,
-apollo_19L|apollo 19 inch display,
- rmir@, smir@, use=vt132,
-apollo_color|apollo color display,
- rmir@, smir@, use=vt132,
-
-#### Convergent Technology
-#
-# Burroughs bought Convergent shortly before it merged with Univac.
-# CTOS is (I believe) dead. Probably the aws is too (this entry dates
-# from 1991 or earlier).
-#
-
-# Convergent AWS workstation from Gould/SEL UTX/32 via BRL
-# (aws: removed unknown :dn=^K: -- esr)
-aws|Convergent Technologies AWS workstation under UTX and Xenix,
- am,
- OTug#0, cols#80, lines#28, xmc#0,
- OTbc=^H, OTma=\016h\013j\001k\022l\002m, OTnl=^J, acsc=,
- clear=^L, cud1=^K, cuf1=^R, cup=\EC%p2%c%p1%c, cuu1=^A,
- dch1=\EDC, dl1=\EDL, ed=\EEF, el=\EEL, hpa=\EH%p1%c,
- ich1=\EIC, il1=\EIL, ind=\ESU, kbs=^H, kcub1=^N, kcud1=^K,
- kcuf1=^R, kcuu1=^A, ri=\ESD, rmacs=\EAAF, rmso=\EARF,
- rmul=\EAUF, smacs=\EAAN, smso=\EARN, smul=\EAUN,
- vpa=\EV%p1%c,
-awsc|Convergent Technologies AWS workstation under CTOS,
- am,
- OTug#0, cols#80, lines#24, xmc#0,
- OTbc=^N, OTma=\016h\013j\001k\022l\002m, acsc=, clear=^L,
- cud1=^K, cuf1=^R, cup=\EC%p2%c%p1%c, cuu1=^A, ed=\EEF,
- el=\EEL, kbs=^H, kcub1=^N, kcud1=^K, kcuf1=^R, kcuu1=^A,
- rmacs=\EAAF, rmso=\EAA, rmul=\EAA, smacs=\EAAN, smso=\EAE,
- smul=\EAC,
-
-#### DEC consoles
-#
-
-# The MicroVax console. Tim Theisen <tim@cs.wisc.edu> writes:
-# The digital uVax II's had a graphic display called a qdss. It was
-# supposed to be a high performance graphic accelerator, but it was
-# late to market and barely appeared before faster dumb frame buffers
-# appeared. I have only used this display while running X11. However,
-# during bootup, it was in text mode, and probably had a terminal emulator
-# within it. And that is what your termcap entry is for. In graphics
-# mode the screen size is 1024x864 pixels.
-qdss|qdcons|qdss glass tty,
- OTbs, am,
- cols#128, lines#57,
- clear=\032$<1/>, cub1=^H, cud1=^J, cuf1=^L,
- cup=\E=%p1%c%p2%c, cuu1=^K,
-
-#### Fortune Systems consoles
-#
-# Fortune made a line of 68K-based UNIX boxes that were pretty nifty
-# in their day; I (esr) used one myself for a year or so around 1984.
-# They had no graphics, though, and couldn't compete against Suns and
-# the like. R.I.P.
-#
-
-# From: Robert Nathanson <c160-3bp@Coral> via tut Wed Oct 5, 1983
-# (This had extension capabilities
-# :rv=\EH:re=\EI:rg=0:GG=0:\
-# :CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\
-# :RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\
-# :PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F:
-# It had both ":bs:" and ":bs=^H:"; I removed the latter. Also, it had
-# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily)
-# to force both magic cookie glitches off. Once upon a time, I
-# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are
-# function keys; thus the "Al" value for HM was certainly an error. I renamed
-# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC.
-# I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent
-# "reverse-video-glitch" capability; I have put :rv: and :re: in with standard
-# names below. I've removed obsolete ":nl=5^J:" as there is a :do: -- esr)
-fos|fortune|Fortune system,
- OTbs, am, bw,
- cols#80, lines#25,
- acsc=j*k(l m"q&v%w#x-, bel=^G, blink=\EN, civis=\E],
- clear=\014$<20>, cnorm=\E\\, cr=^M, cub1=^H, cud1=\n$<3>,
- cup=\034C%p1%{32}%+%c%p2%{32}%+%c, cuu1=\013$<3>,
- cvvis=\E\:, dch1=\034W$<5>, dl1=\034R$<15>,
- ed=\034Y$<3*>, el=^\Z, home=\036$<10>, ht=^Z,
- ich1=\034Q$<5>, il1=\034E$<15>, ind=^J, is2=^_.., kbs=^H,
- kcub1=^Aw\r, kcud1=^Ay\r, kcuf1=^Az\r, kcuu1=^Ax\r,
- kend=^Ak\r, kent=^Aq, kf1=^Aa\r, kf2=^Ab\r, kf3=^Ac\r,
- kf4=^Ad\r, kf5=^Ae\r, kf6=^Af\r, kf7=^Ag\r, kf8=^Ah\r,
- khome=^A?\r, knp=^Ao\r, kpp=^An\r, nel=^M^J, rev=\EH,
- rmacs=^O, rmso=^\I`, rmul=^\IP, sgr0=\EI, smacs=\Eo,
- smso=^\H`, smul=^\HP,
-
-#### Masscomp consoles
-#
-# Masscomp has gone out of business. Their product line was purchased by
-# comany in Georgia (US) called "XS International", parts and service may
-# still be available through them.
-#
-
-# (masscomp: ":MT:" changed to ":km:"; -- esr)
-masscomp|masscomp workstation console,
- OTbs, km, mir,
- cols#80, it#8, lines#24,
- clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
- ed=\E[J, el=\E[K, ht=^I, il1=\E[L, is2=\EGc\EGb\EGw, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rmir=\E[4l,
- rmso=\E[m, rmul=\EGau, smir=\E[4h, smso=\E[7m, smul=\EGu,
-masscomp1|masscomp large screen version 1,
- cols#104, lines#36, use=masscomp,
-masscomp2|masscomp large screen version 2,
- cols#64, lines#21, use=masscomp,
-
-######## OTHER OBSOLETE TYPES
-#
-# These terminals are *long* dead -- these entries are retained for
-# historical interest only.
-#
-
-#### Obsolete non-ANSI software emulations
-#
-
-# CTRM terminal emulator
-# 1. underlining is not allowed with colors: first, is is simulated by
-# black on white, second, it disables background color manipulations.
-# 2. BLINKING, REVERSE and BOLD are allowed with colors,
-# so we have to save their status in the static registers A, B and H
-# respectively, to be able to restore them when color changes
-# (because any color change turns off ALL attributes)
-# 3. <bold> and <rev> sequences alternate modes,
-# rather then simply entering them. Thus we have to check the
-# static register B and H to determine the status, before sending the
-# escape sequence.
-# 4. <sgr0> now must set the status of all 3 register (A,B,H) to zero
-# and then reset colors
-# 5. implementation of the protect mode would badly penalize the performance.
-# we would have to use \E&bn sequence to turn off colors (as well as all
-# other attributes), and keep the status of protect mode in yet another
-# static variable. If someone really needs this mode, they would have to
-# create another terminfo entry.
-# 6. original color-pair is white on black.
-# store the information about colors into static registers
-# 7. set foreground color. it performs the following steps.
-# 1) turn off all attributes
-# 2) turn on the background and video attributes that have been turned
-# on before (this information is stored in static registers X,Y,Z,A,B,H,D).
-# 3) turn on foreground attributes
-# 4) store information about foreground into U,V,W static registers
-# 8. turn on background: similar to turn on foreground above
-ctrm|C terminal emulator,
- am, bce, xon,
- colors#8, cols#80, lh#0, lines#24, lm#0, lw#0, ncv#2, nlab#0,
- pairs#63, pb#19200, vt#6,
- bel=^G, blink=\E&dA%{1}%PA,
- bold=%?%gH%{0}%=%t\E&dH%{1}%PH%;, cbt=\Ei,
- clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\E&a%p2%dc%p1%dY, cuu1=\EA, dch1=\EP$<2>, dl1=\EM,
- ed=\EJ, el=\EK, hpa=\E&a%p1%dC, ht=\011$<2>, hts=\E1,
- il1=\EL, ind=^J, ip=$<2>, is2=\E&jA\r, kbs=^H, kcub1=\Eu\r,
- kcud1=\Ew\r, kcuf1=\Ev\r, kcuu1=\Et\r, kf1=\Ep\r,
- kf2=\Eq\r, kf3=\Er\r, kf4=\Es\r, kf5=\Et\r, kf6=\Eu\r,
- kf7=\Ev\r, kf8=\Ew\r, khome=\Ep\r,
- op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV%{1}%PU,
- rev=%?%gB%{0}%=%t\E&dB%{1}%PB%;, rmir=\ER, rmkx=\E&jA,
- setb=\E&bn%?%gA%t\E&dA%;%?%gB%t\E&dB%;%?%gH%t\E&dH%;%?%gU%t\E&bR%;%?%gV%t\E&bG%;%?%gW%t\E&bB%;%?%p1%{1}%&%t\E&bb%{1}%e%{0}%;%PZ%?%p1%{2}%&%t\E&bg%{1}%e%{0}%;%PY%?%p1%{4}%&%t\E&br%{1}%e%{0}%;%PX,
- setf=\E&bn%?%gA%t\E&dA%;%?%gB%t\E&dB%;%?%gH%t\E&dH%;%?%gX%t\E&br%;%?%gY%t\E&bg%;%?%gZ%t\E&bb%;%?%p1%{1}%&%t\E&bB%{1}%e%{0}%;%PW%?%p1%{2}%&%t\E&bG%{1}%e%{0}%;%PV%?%p1%{4}%&%t\E&bR%{1}%e%{0}%;%PU,
- sgr=\E&d@%{0}%PA%{0}%PB%{0}%PD%{0}%PH%?%p1%p3%p5%|%|%t\E&dB%{1}%PB%;%?%p4%t\E&dA%{1}%PA%;%?%p6%t\E&dH%{1}%PH%;%?%p2%t\E&dD%;,
- sgr0=\E&d@%{0}%PA%{0}%PB%{0}%PH, smir=\EQ, smkx=\E&jB,
- smso=\E&dD, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
-
-# gs6300 - can't use blue foreground, it clashes with underline;
-# it's simulated with cyan
-# Bug: The <op> capability probably resets attributes.
-# (gs6300: commented out <rmln> (no <smln>) --esr)
-gs6300|emots|AT&T PC6300 with EMOTS terminal emulator,
- am, bce, msgr, xon,
- colors#8, cols#80, it#8, lines#24, pairs#63,
- acsc=++\,\,--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
- cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
- cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
- ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
- is2=\E[m, kbs=^H, kcbt=^R^I, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf1=\E[0s, kf2=\E[24s, kf3=\E[1s,
- kf4=\E[23s, kf5=\E[2s, kf6=\E[22s, kf7=\E[3s, kf8=\E[21s,
- khome=\E[H, mc4=\E[4i, mc5=\E[5i, op=\E[?;m, rev=\E[7m,
- ri=\E[L, rmacs=\E[10m, rs1=\Ec, setb=\E[?;%p1%dm,
- setf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m,
- sgr0=\E[m\E[10m, smacs=\E[11m, smso=\E[1m, smul=\E[4m,
-
-# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT
-# MS-Kermit with Heath-19 emulation mode enabled
-# (h19k: changed ":pt@:" to ":it@"
-h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin),
- am@, da, db, xt,
- it@,
- ht@, use=h19-u,
-
-# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy
-# Software (formerly Peripherals Computers & Supplies, Inc) of
-# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376. They can
-# also be reached at support@synergy.com.
-versaterm|versaterm vt100 emulator for the macintosh,
- am, xenl,
- cols#80, it#8, lines#24,
- bel=^G, blink=\E[5m$<2/>, bold=\E[1m$<2/>,
- clear=\E[;H\E[2J$<50/>, cr=^M, csr=\E[%i%p1%d;%p2%dr,
- cub1=^H, cud1=^J, cuf1=\E[C$<2/>,
- cup=\E[%i%p1%d;%p2%dH$<5/>, cuu1=\E[A$<2/>,
- dch1=\E[1P$<7/>, dl1=\E[1M$<9/>, ed=\E[J$<50/>,
- el=\E[K$<3/>, home=\E[H, ht=^I, ich1=\E[1@$<7/>,
- il1=\E[1L$<9/>, is2=\E[1;24r\E[24;1H, kbs=^H, kcub1=\EOD,
- kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, nel=^M^J, rc=\E8, rev=\E[7m$<2/>,
- rf=/usr/share/tabset/vt100, ri=\EM$<5/>,
- rmkx=\E>\E[?1l, rmso=\E[m$<2/>, rmul=\E[m$<2/>, rs1=\E>,
- sc=\E7, sgr0=\E[m$<2/>, smkx=\E=\E[?1h, smso=\E[7m$<2/>,
- smul=\E[4m$<2/>,
-
-# From: Rick Thomas <ihnp4!btlunix!rbt>
-# (xtalk: I added <rmam>/<smam> based on the init string.
-xtalk|IBM PC with xtalk communication program (versions up to 3.4),
- am, mir, msgr, xon,
- cols#80, it#8, lines#24, vt#3, xmc#1,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\E[H\E[J$<50>, cr=^M, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C$<2>,
- cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
- cuu1=\E[A$<2>, dl1=\E[M$<99>, ed=\E[J$<50>, el=\E[K$<3>,
- el1=\E[1K$<3>, enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH,
- il1=\E[L$<99>, ind=^J, ka1=\EOq, ka3=\EOs, kb2=\EOr, kbs=^H,
- kc1=\EOp, kc3=\EOn, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kent=\EOM, kf0=\EOy, kf1=\EOP, kf10=\EOx,
- kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOt, kf6=\EOu, kf7=\EOv,
- kf8=\EOl, kf9=\EOw, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
- rmkx=\E[?1l\E>, rmso=\E[m\s,
- rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sgr0=\E[m,
- smacs=^N, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m\s,
- tbc=\E[3g,
-
-# The official PC terminal emulator program of the AT&T Product Centers.
-# Note - insert mode commented out - doesn't seem to work on AT&T PC.
-simterm|attpc running simterm,
- am,
- cols#80, lines#24,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
- cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\ER,
- dl1=\EM, ed=\EJ, el=\EK, home=\EH, il1=\EL, ind=^J, rmcup=\EVE,
- rmso=\E&d@, sgr0=\E&d@, smcup=\EVS, smso=\E&dB,
-
-#### Daisy wheel printers
-#
-# This section collects Diablo, DTC, Xerox, Qume, and other daisy
-# wheel terminals. These are now largely obsolete.
-#
-
-# (diablo1620: removed <if=/usr/share/tabset/xerox1720>, no such file -- esr)
-diablo1620|diablo1720|diablo450|ipsi|diablo 1620,
- hc, os,
- cols#132, it#8,
- cub1=^H, cud1=^J, cuu1=\E^J, hd=\ED, hpa=\E\011%i%p1%c,
- ht=^I, hts=\E1, hu=\EU, kbs=^H, tbc=\E2,
-diablo1620-m8|diablo1640-m8|diablo 1620 w/8 column left margin,
- cols#124,
- is2=\r \E9, use=diablo1620,
-# (diablo1640: removed <if=/usr/share/tabset/xerox1730>, no such file -- esr)
-diablo1640|diablo1730|diablo1740|diablo630|x1700|diablo|xerox|diablo 1640,
- bel=^G, rmso=\E&, rmul=\ER, smso=\EW, smul=\EE,
- use=diablo1620,
-# (diablo1640-lm: removed <if=/usr/share/tabset/xerox1730-lm>, no such
-# file -- esr)
-diablo1640-lm|diablo-lm|xerox-lm|diablo 1640 with indented left margin,
- cols#124,
- rmso=\E&, rmul=\ER, smso=\EW, smul=\EE, use=diablo1620,
-diablo1740-lm|630-lm|1730-lm|x1700-lm|diablo 1740 printer,
- use=diablo1640-lm,
-# DTC 382 with VDU. Has no <ed> so we fake it with <el>. Standout
-# <smso=^P\s\002^PF> works but won't go away without dynamite <rmso=^P\s\0>.
-# The terminal has tabs, but I'm getting tired of fighting the braindamage.
-# If no tab is set or the terminal's in a bad mood, it glitches the screen
-# around all of memory. Note that return puts a blank ("a return character")
-# in the space the cursor was at, so we use ^P return (and thus ^P newline for
-# newline). Note also that if you turn off :pt: and let Unix expand tabs,
-# curses won't work (some old BSD versions) because it doesn't clear this bit,
-# and cursor addressing sends a tab for row/column 9. What a losing terminal!
-# I have been unable to get tabs set in all 96 lines - it always leaves at
-# least one line with no tabs in it, and once you tab through that line,
-# it completely weirds out.
-# (dtc382: change <rmcup> to <smcup> -- it just does a clear --esr)
-dtc382|DTC 382,
- am, da, db, xhp,
- cols#80, lines#24, lm#96,
- bel=^G, clear=\020\035$<20>, cnorm=^Pb, cr=^P^M, cub1=^H,
- cuf1=^PR, cup=\020\021%p2%c%p1%c, cuu1=^P^L, cvvis=^PB,
- dch1=^X, dl1=^P^S, ed=\020\025\020\023\020\023, el=^P^U,
- home=^P^R, il1=^P^Z, ind=^J, pad=\177, rmcup=, rmir=^Pi,
- rmul=^P \0, smcup=\020\035$<20>, smir=^PI, smul=^P ^P,
-dtc300s|DTC 300s,
- hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
- hts=\E1, hu=\EH, ind=^J, kbs=^H, tbc=\E3,
-gsi|mystery gsi terminal,
- hc, os,
- cols#132,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, hd=\Eh, ht=^I, hu=\EH,
- ind=^J,
-aj830|aj832|aj|anderson jacobson,
- hc, os,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E7, hd=\E9, hu=\E8,
- ind=^J,
-# From: Chris Torek <chris@gyre.umd.edu> Thu, 7 Nov 85 18:21:58 EST
-aj510|Anderson-Jacobson model 510,
- am, mir,
- cols#80, lines#24,
- clear=^L, cub1=^H, cuf1=\EX,
- cup=\E#%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EY,
- dch1=.1*\E'D, dl1=\E&D$<2*/>, ed=\E'P, el=\E'L, ich1=,
- il1=\E&I$<2*/>, ip=$<.1*/>, kcub1=\EW, kcud1=\EZ,
- kcuf1=\EX, kcuu1=\EY, pad=\177, rmcup=\E"N, rmir=\E'J,
- rmso=\E"I, rmul=\E"U, smcup=\E"N, smir=\E'I, smso=\E"I,
- smul=\E"U,
-# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
-# This is incomplete, but it's a start.
-nec5520|nec|spinwriter|nec 5520,
- hc, os,
- cols#132, it#8,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=\E9, ff=^L,
- hd=\E]s\n\E]W, ht=^I, hts=\E1, hu=\E]s\E9\E]W, ind=^J,
- kbs=^H, tbc=\E3,
-qume5|qume|Qume Sprint 5,
- hc, os,
- cols#80, it#8,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuu1=^Z, ff=^L, hd=\Eh, ht=^I,
- hts=\E1, hu=\EH, ind=^J, kbs=^H, tbc=\E3,
-# I suspect the xerox 1720 is the same as the diablo 1620.
-xerox1720|x1720|x1750|xerox 1720,
- hc, os,
- cols#132, it#8,
- bel=^G, cr=^M, cub1=^H, cud1=^J, ff=^L, ht=^I, hts=\E1, ind=^J,
- tbc=\E2,
-
-#### Miscellaneous obsolete terminals, manufacturers unknown
-#
-# If you have any information about these (like, a manufacturer's name,
-# and a date on the serial-number plate) please send it!
-
-cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars,
- OTbs, am,
- cols#73, lines#36,
- clear=^Z, cub1=^H, cuf1=^L, cuu1=^K, home=^^,
-cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars,
- OTbs, am,
- cols#85, lines#39,
- clear=^Z, cub1=^H, cuf1=^L, cuu1=^K, home=^^, kcub1=\E3,
- kcud1=\E2, kcuf1=\E4, kcuu1=\E1, kf1=\E5, kf2=\E6, kf3=\E7,
- kf4=\E8, rmso=\Em^C, smso=\Em^L,
-cops10|cops|cops-10|cops 10,
- am, bw,
- cols#80, lines#24,
- bel=^G, clear=\030$<30/>, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
- cup=\020%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, ed=^W, el=^V,
- ind=^J, kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
- khome=^Y,
-# (d132: removed duplicate :ic=\E5:,
-# merged in capabilities from a BRL entry -- esr)
-d132|datagraphix|datagraphix 132a,
- da, db, in,
- cols#80, lines#30,
- bel=^G, clear=^L, cnorm=\Em\En, cr=^M, cub1=^H, cud1=^J,
- cuf1=\EL, cup=\E8%i%p1%3d%p2%3d, cuu1=\EK, cvvis=\Ex,
- dch1=\E6, home=\ET, ht=^I, ich1=\E5, il1=\E3, ind=^J, kbs=^H,
- kcub1=^H, kcud1=^J, nel=^M^J, ri=\Ew,
-# The d800 was an early portable terminal from c.1984-85 that looked a lot
-# like the original Compaq `lunchbox' portable (but no handle). It had a vt220
-# mode (which is what this entry looks like) and several other lesser-known
-# emulations.
-d800|Direct 800/A,
- OTbs, am, da, db, msgr, xhp,
- cols#80, it#8, lines#24,
- acsc=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~,
- bel=^G, clear=\E[1;1H\E[2J, cnorm=\E[>12h, cr=^M, cub1=^H,
- cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
- cvvis=\E[>12l, ed=\E[J, el=\E[K, ht=^I, ind=\ED, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf1=\EOP, kf2=\EOQ,
- kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
- ri=\EM, rmacs=\E[m, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smacs=\E[1m, smso=\E[7m, smul=\E[4m,
-digilog|digilog 333,
- OTbs,
- cols#80, lines#16,
- bel=^G, cr=^M, cub1=^H, cud1=^J, cuf1=^I, cuu1=^O, el=^X,
- home=^N, ind=^J,
-# The DWK was a terminal manufactured in the Soviet Union c.1986
-dwk|dwk-vt|dwk terminal,
- am,
- cols#80, it#8, lines#24,
- acsc=+\^\,Q-S.M0\177`+a\:f'g#h#i#jXkClJmFnNo~qUs_tEuPv\\wKxW~_,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EP,
- ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EQ, ind=^J, kbs=\177,
- kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\Ee,
- kf1=\Ef1, kf10=\Ef0, kf2=\Ef2, kf3=\Ef3, kf4=\Ef4, kf5=\Ef5,
- kf6=\Ef6, kf7=\Ef7, kf8=\Ef8, kf9=\Ef9, kich1=\Ed, knp=\Eh,
- kpp=\Eg, nel=^M^J, rev=\ET, ri=\ES, rmacs=\EG, rmso=\EX,
- sgr0=\EX, smacs=\EF, smso=\ET,
-env230|envision230|envision 230 graphics terminal,
- xenl@,
- mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
- sgr=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>,
- use=vt100,
-# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
-# coupler attached, the whole rig fitting in a suitcase and more or less
-# portable. Hot stuff for c.1977 :-) -- esr
-ep48|ep4080|execuport 4080,
- OTbs, am, os,
- cols#80,
- bel=^G, cr=^M, cub1=^H, cud1=^J, hd=^\, hu=^^, ind=^J,
-ep40|ep4000|execuport 4000,
- cols#136, use=ep4080,
-# Adam Thompson <athompso@pangea.ca> tells us:
-# Informer series - these are all portable units, resembling older
-# automatic bread-baking machines. The terminal looks like a `clamshell'
-# design, but isn't. The structure is similar to the Direct terminals,
-# but only half the width. The entire unit is only about 10" wide.
-# It features an 8" screen (6" or 7" if you have color!), and an 9"x6"
-# keyboard. All the keys are crammed together, much like some laptop
-# PCs today, but perhaps less well organized...all these units have a
-# bewildering array of plugs on the back, including a built-in modem.
-# The 305 was a color version of the 304; the 306 and 307 were mono and
-# color terminals built for IBM bisync protocols.
-# From: Paul Leondis <unllab@amber.berkeley.edu>
-ifmr|Informer D304,
- OTbs, am,
- cols#80, lines#24,
- clear=\EZ, cub1=^H, cud1=^J, cuf1=\EC,
- cup=\EY%p2%{32}%+%c%p1%{32}%+%c, cuu1=\EA, dch1=\E\\,
- ed=\E/, el=\EQ, home=\EH, ich1=\E[, ri=\En, rmso=\EK, sgr0=\EK,
- smso=\EJ,
-# Entry largely based on wy60 and has the features of wy60ak.
-opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys,
- am, bw, hs, km, mir, msgr, ul, xon,
- cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#80,
- acsc=0wa_h[jukslrmqnxqzttuyv]wpxv, bel=^G, blink=\EG2,
- cbt=\EI, civis=\E`0, clear=\E*$<100>, cnorm=\E`1, cr=^M,
- cub1=^H, cud1=^J, cuf1=^L, cup=\Ea%i%p1%dR%p2%dC, cuu1=^K,
- dch1=\EW$<11>, dim=\EGp, dl1=\ER$<5>, dsl=\Ez(\r,
- ed=\EY$<100>, el=\ET, fsl=^M, home=\036$<2>, ht=\011$<5>,
- hts=\E1, if=/usr/share/tabset/std, il1=\EE$<4>, ind=^J,
- ip=$<3>,
- is2=\E`\:\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177\Ezz`\E[F\177\EA1*\EZH12,
- kHOM=\E{, kbs=^H, kcbt=\EI, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kdch1=\EW, kdl1=\ER, ked=\EY,
- kel=\ET, kend=\E[F, kent=\E7, kf1=^A@\r, kf10=^AI\r,
- kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r,
- kf16=^AO\r, kf2=^AA\r, kf3=^AB\r, kf4=^AC\r, kf5=^AD\r,
- kf6=^AE\r, kf7=^AF\r, kf8=^AG\r, kf9=^AH\r, khome=^^,
- kich1=\EQ, kil1=\EE, knp=\EK, kpp=\EJ, kprt=\EP, krpl=\Er,
- mc0=\EP, mc4=^T, mc5=^R, nel=\r\n$<3>,
- pfloc=\EZ2%p1%{63}%+%c%p2%s\177,
- pfx=\EZ1%p1%{63}%+%c%p2%s\177,
- pln=\Ez%p1%{47}%+%c%p2%s\r, prot=\E), ri=\Ej$<7>,
- rmacs=\EH^C, rmam=\Ed., rmcup=, rmir=\Er, rmln=\EA11,
- rmxon=\Ec20, rs1=\E~!\E~4$<150>, rs2=\EeF$<150>,
- rs3=\EwG\Ee($<150>,
- sgr=%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c,
- sgr0=\E(\EH\003\EG0\EcD, smacs=\EH^B, smam=\Ed/,
- smcup=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177,
- smir=\Eq, smln=\EA10, smxon=\Ec21, tbc=\E0, tsl=\Ez(,
- uc=\EG8\EG0, use=adm+sgr,
-teletec|Teletec Datascreen,
- OTbs, am,
- cols#80, lines#24,
- bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=^_, cuu1=^K,
- home=^^, ind=^J,
-# From: Mark Dornfeld <romwa@ucbvax.berkeley.edu>
-# This description is for the LANPAR Technologies VISION 3220
-# terminal from 1984/85. The function key definitions k0-k5 represent the
-# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN,
-# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to PF4 keys.
-#
-# Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998:
-# I had a couple of scopes (3221) like this once where I used to work, around
-# the 1987 time frame if memory serves me correctly. These scopes were made
-# by an outfit called LANPAR Technologies, and were meant to me DEC VT 220
-# compatible. The 3220 was a plain text terminal like the VT-220, the 3221
-# was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222
-# was like the VT-241 (color with Regis + Sixel Graphics). These terminals
-# (3221) cost about $1500 each, and one was always broken -- had to be sent
-# back to the shop for repairs.
-# The only real advantage these scopes had over the VT-240's were:
-# 1) They were faster in the Regis display, or at least the ones I did
-# 2) They had a handy debugging feature where you could split-screen the
-# scope, the graphics would appear on the top, and the REGIS commands would
-# appear on the bottom. I don't remember the VT-240s being able to do that.
-# I would swear that LANPAR Technologies was in MA someplace, but since I
-# don't work at the same place anymore, and those terminals and manuals were
-# long since junked, I cannot be any more sure than that.
-#
-# (v3220: removed obsolete ":kn#10:",
-# I added <rmam>/<smam> based on the init string -- esr)
-v3220|LANPAR Vision II model 3220/3221/3222,
- OTbs, am, mir, xenl,
- cols#80, it#8, lines#24,
- clear=\E[H\E[J, cub1=^H, 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, ht=^I, il1=\E[L,
- is2=\E>\E[?3l\E[?7h\E[?8h\E[p, kcub1=\E[D, kcud1=\E[B,
- kcuf1=\E[C, kcuu1=\E[A, kf0=\E[1~, kf1=\E[2~, kf2=\E[3~,
- kf3=\E[4~, kf4=\E[5~, kf5=\E[6~, kf6=\E[OP, kf7=\E[OQ,
- kf8=\E[OR, kf9=\E[OS, khome=\E[H, ri=\EM, rmam=\E[?7l,
- rmir=\E[4l, rmkx=\E>, rmso=\E[m, rmul=\E[m, sgr0=\E[m,
- smam=\E[?7h, smir=\E[4h, smkx=\E=, smso=\E[7m, smul=\E[4m,
-######## ICH/ICH1 VERSUS RMIR/SMIR
-#
-# Some non-curses applications get confused if both ich/ich1 and rmir/smir
-# are present; the symptom is doubled characters in an update using insert.
-# These applications are technically correct; in both 4.3BSD termcap and
-# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir
-# unless the terminal needs both. To my knowledge, no terminal still in this
-# file requires both other than the very obsolete dm2500.
-#
-# For ncurses-based applications this is not a problem, as ncurses uses
-# one or the other as appropriate but never mixes the two. Therefore we
-# have not corrected entries like `linux' and `xterm' that specify both.
-# If you see doubled characters from these, use the linux-nic and xterm-nic
-# entries that suppress ich/ich1. And upgrade to ncurses!
-#
-
-######## VT100/ANSI/ISO 6429/ECMA-48/PC-TERM TERMINAL STANDARDS
-#
-# ANSI X3.64 has been withdrawn and replaced by ECMA-48. The ISO 6429 and
-# ECMA-48 standards are said to be almost identical, but are not the same
-# as X3.64 (though for practical purposes they are close supersets of it).
-#
-# You can obtain ECMA-48 for free by sending email to helpdesk@ecma.ch
-# requesting the standard(s) you want (i.e. ECMA-48, "Control Functions for
-# Coded Character Sets"), include your snail-mail address, and you should
-# receive the document in due course. Don't expect an email acknowledgement.
-#
-# Related standards include "X3.4-1977: American National Standard Code for
-# Information Interchange" (the ASCII standard) and "X3.41.1974:
-# Code-Extension Techniques for Use with the 7-Bit Coded Character Set of
-# American National Standard for Information Interchange." I believe (but
-# am not certain) that these are effectively identical to ECMA-6 and ECMA-35
-# respectively.
-#
-
-#### VT100/ANSI/ECMA-48
-#
-# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals
-# and ECMA-48 Control Functions for Coded Character Sets.
-#
-# Much of the content of this comment is adapted from a table prepared by
-# Richard Shuford, based on a 1984 Byte article. Terminfo correspondences,
-# discussion of some terminfo-related issues, and updates to capture ECMA-48
-# have been added. Control functions described in ECMA-48 only are tagged
-# with * after their names.
-#
-# The table is a complete list of the defined ANSI X3.64/ECMA-48 control
-# sequences. In the main table, \E stands for an escape (\033) character,
-# SPC for space. Pn stands for a single numeric parameter to be inserted
-# in decimal ASCII. Ps stands for a list of such parameters separated by
-# semicolons. Parameter meanings for most parametrized sequences are
-# decribed in the notes.
-#
-# Sequence Sequence Parameter or
-# Mnemonic Name Sequence Value Mode terminfo
-# -----------------------------------------------------------------------------
-# APC Applicatn Program Command \E _ - Delim -
-# BEL Bell * ^G - - bel
-# BPH Break Permitted Here * \E B - * -
-# BS Backpace * ^H - EF -
-# CAN Cancel * ^X - - - (A)
-# CBT Cursor Backward Tab \E [ Pn Z 1 eF cbt
-# CCH Cancel Previous Character \E T - - -
-# CHA Cursor Horizntal Absolute \E [ Pn G 1 eF hpa (B)
-# CHT Cursor Horizontal Tab \E [ Pn I 1 eF tab (C)
-# CMD Coding Method Delimiter * \E
-# CNL Cursor Next Line \E [ Pn E 1 eF nel (D)
-# CPL Cursor Preceding Line \E [ Pn F 1 eF -
-# CPR Cursor Position Report \E [ Pn ; Pn R 1, 1 - - (E)
-# CSI Control Sequence Intro \E [ - Intro -
-# CTC Cursor Tabulation Control \E [ Ps W 0 eF - (F)
-# CUB Cursor Backward \E [ Pn D 1 eF cub
-# CUD Cursor Down \E [ Pn B 1 eF cud
-# CUF Cursor Forward \E [ Pn C 1 eF cuf
-# CUP Cursor Position \E [ Pn ; Pn H 1, 1 eF cup (G)
-# CUU Cursor Up \E [ Pn A 1 eF cuu
-# CVT Cursor Vertical Tab \E [ Pn Y - eF - (H)
-# DA Device Attributes \E [ Pn c 0 - -
-# DAQ Define Area Qualification \E [ Ps o 0 - -
-# DCH Delete Character \E [ Pn P 1 eF dch
-# DCS Device Control String \E P - Delim -
-# DL Delete Line \E [ Pn M 1 eF dl
-# DLE Data Link Escape * ^P - - -
-# DMI Disable Manual Input \E \ - Fs -
-# DSR Device Status Report \E [ Ps n 0 - - (I)
-# DTA Dimension Text Area * \E [ Pn ; Pn SPC T - PC -
-# EA Erase in Area \E [ Ps O 0 eF - (J)
-# ECH Erase Character \E [ Pn X 1 eF ech
-# ED Erase in Display \E [ Ps J 0 eF ed (J)
-# EF Erase in Field \E [ Ps N 0 eF -
-# EL Erase in Line \E [ Ps K 0 eF el (J)
-# EM End of Medium * ^Y - - -
-# EMI Enable Manual Input \E b Fs -
-# ENQ Enquire ^E - - -
-# EOT End Of Transmission ^D - * -
-# EPA End of Protected Area \E W - - - (K)
-# ESA End of Selected Area \E G - - -
-# ESC Escape ^[ - - -
-# ETB End Transmission Block ^W - - -
-# ETX End of Text ^C - - -
-# FF Form Feed ^L - - -
-# FNK Function Key * \E [ Pn SPC W - - -
-# GCC Graphic Char Combination* \E [ Pn ; Pn SPC B - - -
-# FNT Font Selection \E [ Pn ; Pn SPC D 0, 0 FE -
-# GSM Graphic Size Modify \E [ Pn ; Pn SPC B 100, 100 FE - (L)
-# GSS Graphic Size Selection \E [ Pn SPC C none FE -
-# HPA Horz Position Absolute \E [ Pn ` 1 FE - (B)
-# HPB Char Position Backward \E [ j 1 FE -
-# HPR Horz Position Relative \E [ Pn a 1 FE - (M)
-# HT Horizontal Tab * ^I - FE - (N)
-# HTJ Horz Tab w/Justification \E I - FE -
-# HTS Horizontal Tab Set \E H - FE hts
-# HVP Horz & Vertical Position \E [ Pn ; Pn f 1, 1 FE - (G)
-# ICH Insert Character \E [ Pn @ 1 eF ich
-# IDCS ID Device Control String \E [ SPC O - * -
-# IGS ID Graphic Subrepertoire \E [ SPC M - * -
-# IL Insert Line \E [ Pn L 1 eF il
-# IND Index \E D - FE -
-# INT Interrupt \E a - Fs -
-# JFY Justify \E [ Ps SPC F 0 FE -
-# IS1 Info Separator #1 * ^_ - * -
-# IS2 Info Separator #1 * ^^ - * -
-# IS3 Info Separator #1 * ^] - * -
-# IS4 Info Separator #1 * ^\ - * -
-# LF Line Feed ^J - - -
-# LS1R Locking Shift Right 1 * \E ~ - - -
-# LS2 Locking Shift 2 * \E n - - -
-# LS2R Locking Shift Right 2 * \E } - - -
-# LS3 Locking Shift 3 * \E o - - -
-# LS3R Locking Shift Right 3 * \E | - - -
-# MC Media Copy \E [ Ps i 0 - - (S)
-# MW Message Waiting \E U - - -
-# NAK Negative Acknowledge * ^U - * -
-# NBH No Break Here * \E C - - -
-# NEL Next Line \E E - FE nel (D)
-# NP Next Page \E [ Pn U 1 eF -
-# NUL Null * ^@ - - -
-# OSC Operating System Command \E ] - Delim -
-# PEC Pres. Expand/Contract * \E Pn SPC Z 0 - -
-# PFS Page Format Selection * \E Pn SPC J 0 - -
-# PLD Partial Line Down \E K - FE - (T)
-# PLU Partial Line Up \E L - FE - (U)
-# PM Privacy Message \E ^ - Delim -
-# PP Preceding Page \E [ Pn V 1 eF -
-# PPA Page Position Absolute * \E [ Pn SPC P 1 FE -
-# PPB Page Position Backward * \E [ Pn SPC R 1 FE -
-# PPR Page Position Forward * \E [ Pn SPC Q 1 FE -
-# PTX Parallel Texts * \E [ \ - - -
-# PU1 Private Use 1 \E Q - - -
-# PU2 Private Use 2 \E R - - -
-# QUAD Typographic Quadding \E [ Ps SPC H 0 FE -
-# REP Repeat Char or Control \E [ Pn b 1 - rep
-# RI Reverse Index \E M - FE - (V)
-# RIS Reset to Initial State \E c - Fs -
-# RM Reset Mode * \E [ Ps l - - - (W)
-# SACS Set Add. Char. Sep. * \E [ Pn SPC / 0 - -
-# SAPV Sel. Alt. Present. Var. * \E [ Ps SPC ] 0 - - (X)
-# SCI Single-Char Introducer \E Z - - -
-# SCO Sel. Char. Orientation * \E [ Pn ; Pn SPC k - - -
-# SCS Set Char. Spacing * \E [ Pn SPC g - - -
-# SD Scroll Down \E [ Pn T 1 eF rin
-# SDS Start Directed String * \E [ Pn ] 1 - -
-# SEE Select Editing Extent \E [ Ps Q 0 - - (Y)
-# SEF Sheet Eject & Feed * \E [ Ps ; Ps SPC Y 0,0 - -
-# SGR Select Graphic Rendition \E [ Ps m 0 FE sgr (O)
-# SHS Select Char. Spacing * \E [ Ps SPC K 0 - -
-# SI Shift In ^O - - - (P)
-# SIMD Sel. Imp. Move Direct. * \E [ Ps ^ - - -
-# SL Scroll Left \E [ Pn SPC @ 1 eF -
-# SLH Set Line Home * \E [ Pn SPC U - - -
-# SLL Set Line Limit * \E [ Pn SPC V - - -
-# SLS Set Line Spacing * \E [ Pn SPC h - - -
-# SM Select Mode \E [ Ps h none - - (W)
-# SO Shift Out ^N - - - (Q)
-# SOH Start Of Heading * ^A - - -
-# SOS Start of String * \E X - - -
-# SPA Start of Protected Area \E V - - - (Z)
-# SPD Select Pres. Direction * \E [ Ps ; Ps SPC S 0,0 - -
-# SPH Set Page Home * \E [ Ps SPC G - - -
-# SPI Spacing Increment \E [ Pn ; Pn SPC G none FE -
-# SPL Set Page Limit * \E [ Ps SPC j - - -
-# SPQR Set Pr. Qual. & Rapid. * \E [ Ps SPC X 0 - -
-# SR Scroll Right \E [ Pn SPC A 1 eF -
-# SRCS Set Reduced Char. Sep. * \E [ Pn SPC f 0 - -
-# SRS Start Reversed String * \E [ Ps [ 0 - -
-# SSA Start of Selected Area \E F - - -
-# SSU Select Size Unit * \E [ Pn SPC I 0 - -
-# SSW Set Space Width * \E [ Pn SPC [ none - -
-# SS2 Single Shift 2 (G2 set) \E N - Intro -
-# SS3 Single Shift 3 (G3 set) \E O - Intro -
-# ST String Terminator \E \ - Delim -
-# STAB Selective Tabulation * \E [ Pn SPC ^ - - -
-# STS Set Transmit State \E S - - -
-# STX Start pf Text * ^B - - -
-# SU Scroll Up \E [ Pn S 1 eF indn
-# SUB Substitute * ^Z - - -
-# SVS Select Line Spacing * \E [ Pn SPC \ 1 - -
-# SYN Synchronous Idle * ^F - - -
-# TAC Tabul. Aligned Centered * \E [ Pn SPC b - - -
-# TALE Tabul. Al. Leading Edge * \E [ Pn SPC a - - -
-# TATE Tabul. Al. Trailing Edge* \E [ Pn SPC ` - - -
-# TBC Tab Clear \E [ Ps g 0 FE tbc
-# TCC Tabul. Centered on Char * \E [ Pn SPC c - - -
-# TSR Tabulation Stop Remove * \E [ Pn SPC d - FE -
-# TSS Thin Space Specification \E [ Pn SC E none FE -
-# VPA Vert. Position Absolute \E [ Pn d 1 FE vpa
-# VPB Line Position Backward * \E [ Pn k 1 FE -
-# VPR Vert. Position Relative \E [ Pn e 1 FE - (R)
-# VT Vertical Tabulation * ^K - FE -
-# VTS Vertical Tabulation Set \E J - FE -
-#
-# ---------------------------------------------------------------------------
-#
-# Notes:
-#
-# Some control characters are listed in the ECMA-48 standard without
-# being assigned functions relevant to terminal control there (they
-# referred to other standards such as ISO 1745 or ECMA-35). They are listed
-# here anyway for completeness.
-#
-# (A) ECMA-48 calls this "CancelCharacter" but retains the CCH abbreviation.
-#
-# (B) There seems to be some confusion abroad between CHA and HPA. Most
-# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls
-# the capability (hpa). ECMA-48 calls this "Cursor Character Absolute" but
-# preserved the CHA abbreviation.
-#
-# (C) CHT corresponds to terminfo (tab). Usually it has the value ^I.
-# Occasionally (as on, for example, certain HP terminals) this has the HTJ
-# value. ECMA-48 calls this "Cursor Forward Tabulation" but preserved the
-# CHT abbreviation.
-#
-# (D) terminfo (nel) is usually \r\n rather than ANSI \EE.
-#
-# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR
-# abbreviation.
-#
-# (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear
-# char tab, 3 = clear line tab, 4 = clear all char tabs on current line,
-# 5 = clear all char tabs, 6 = clear all line tabs.
-#
-# (G) CUP and HVP are identical in effect. Some ANSI.SYS versions accept
-# HVP, but always allow CUP as an alternate. ECMA-48 calls HVP "Character
-# Position Absolute" but retains the HVP abbreviation.
-#
-# (H) ECMA calls this "Cursor Line Tabulation" but preserves the CVT
-# abbreviation.
-#
-# (I) DSR parameter values: 0 = ready, 1 = busy, 2 = busy, will send DSR
-# later, 3 = malfunction, 4 = malfunction, will send DSR later, 5 = request
-# DSR, 6 = request CPR response.
-#
-# (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end,
-# 1 = clear from beginning, 2 = clear.
-#
-# (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation.
-#
-# (L) The GSM parameters are vertical and horizontal parameters to scale by.
-#
-# (M) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals
-# use CUF for this function and ignore HPR. ECMA-48 calls this "Character
-# Position Relative" but retains the HPR abbreviation.
-#
-# (N) ECMA-48 calls this "Character Tabulation" but retains the HT
-# abbreviation.
-#
-# (O) SGR parameter values: 0 = default mode (attributes off), 1 = bold,
-# 2 = dim, 3 = italicized, 4 = underlined, 5 = slow blink, 6 = fast blink,
-# 7 = reverse video, 8 = invisible, 9 = crossed-out (marked for deletion),
-# 10 = primary font, 10 + n (n in 1..9) = nth alternative font, 20 = Fraktur,
-# 21 = double underline, 22 = turn off 2, 23 = turn off 3, 24 = turn off 4,
-# 25 = turn off 5, 26 = proportional spacing, 27 = turn off 7, 28 = turn off
-# 8, 29 = turn off 9, 30 = black fg, 31 = red fg, 32 = green fg, 33 = yellow
-# fg, 34 = blue fg, 35 = magenta fg, 36 = cyan fg, 37 = white fg, 38 = set
-# fg color as in CCIT T.416, 39 = set default fg color, 40 = black bg
-# 41 = red bg, 42 = green bg, 43 = yellow bg, 44 = blue bg, 45 = magenta bg,
-# 46 = cyan bg, 47 = white bg, 48 = set bg color as in CCIT T.416, 39 = set
-# default bg color, 50 = turn off 26, 51 = framed, 52 = encircled, 53 =
-# overlined, 54 = turn off 51 & 52, 55 = not overlined, 56-59 = reserved,
-# 61-65 = variable highlights for ideograms.
-#
-# (P) SI is also called LSO, Locking Shift Zero.
-#
-# (Q) SI is also called LS1, Locking Shift One.
-#
-# (R) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals
-# use CUD for this function and ignore VPR. ECMA calls it `Line Position
-# Absolute' but retains the VPA abbreviation.
-#
-# (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from
-# primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer
-# from secondary aux device, 4 = stop relay to primary aux device, 5 =
-# start relay to primary aux device, 6 = stop relay to secondary aux device,
-# 7 = start relay to secondary aux device.
-#
-# (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD
-# abbreviation.
-#
-# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLD
-# abbreviation.
-#
-# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
-#
-# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM),
-# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM),
-# 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM),
-# 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional
-# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM),
-# 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM),
-# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM),
-# 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer
-# Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer
-# Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed
-# New Line Mode (LF/NL), Graphic Rendition Combination Mode (GRCM), 22 =
-# Zero Default Mode (ZDM). The EBM and LF/NL modes have actually been removed
-# from ECMA-48's 5th edition but are listed here for reference.
-#
-# (X) Select Alternate Presentation Variants is used only for non-Latin
-# alphabets.
-#
-# (Y) "Select Editing Extent" (SEE) was ANSI "Select Edit Extent Mode" (SEM).
-#
-# (Z) ECMA-48 calls this "Start of Guarded Area" but retains the SPA
-# abbreviation.
-#
-# ---------------------------------------------------------------------------
-#
-# Abbreviations:
-#
-# Intro an Introducer of some kind of defined sequence; the normal 7-bit
-# X3.64 Control Sequence Introducer is the two characters "Escape ["
-#
-# Delim a Delimiter
-#
-# x/y identifies a character by position in the ASCII table (column/row)
-#
-# eF editor function (see explanation)
-#
-# FE format effector (see explanation)
-#
-# F is a Final character in
-# an Escape sequence (F from 3/0 to 7/14 in the ASCII table)
-# a control sequence (F from 4/0 to 7/14)
-#
-# Gs is a graphic character appearing in strings (Gs ranges from
-# 2/0 to 7/14) in the ASCII table
-#
-# Ce is a control represented as a single bit combination in the C1 set
-# of controls in an 8-bit character set
-#
-# C0 the familiar set of 7-bit ASCII control characters
-#
-# C1 roughly, the set of control chars available only in 8-bit systems.
-# This is too complicated to explain fully here, so read Jim Fleming's
-# article in the February 1983 BYTE, especially pages 214 through 224.
-#
-# Fe is a Final character of a 2-character Escape sequence that has an
-# equivalent representation in an 8-bit environment as a Ce-type
-# (Fe ranges from 4/0 to 5/15)
-#
-# Fs is a Final character of a 2-character Escape sequence that is
-# standardized internationally with identical representation in 7-bit
-# and 8-bit environments and is independent of the currently
-# designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14)
-#
-# I is an Intermediate character from 2/0 to 2/15 (inclusive) in the
-# ASCII table
-#
-# P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII
-# table
-#
-# Pn is a numeric parameter in a control sequence, a string of zero or
-# more characters ranging from 3/0 to 3/9 in the ASCII table
-#
-# Ps is a variable number of selective parameters in a control sequence
-# with each selective parameter separated from the other by the code
-# 3/11 (which usually represents a semicolon); Ps ranges from
-# 3/0 to 3/9 and includes 3/11
-#
-# * Not relevant to terminal control, listed for completeness only.
-#
-# Format Effectors versus Editor Functions
-#
-# A format effector specifies how following output is to be displayed.
-# An editor function allows you to modify the display. Informally
-# format effectors may be destructive; format effectors should not be.
-#
-# For instance, a format effector that moves the "active position" (the
-# cursor or equivalent) one space to the left would be useful when you want to
-# create an overstrike, a compound character made of two standard characters
-# overlaid. Control-H, the Backspace character, is actually supposed to be a
-# format effector, so you can do this. But many systems use it in a
-# nonstandard fashion, as an editor function, deleting the character to the
-# left of the cursor and moving the cursor left. When Control-H is assumed to
-# be an editor function, you cannot predict whether its use will create an
-# overstrike unless you also know whether the output device is in an "insert
-# mode" or an "overwrite mode". When Control-H is used as a format effector,
-# its effect can always be predicted. The familiar characters carriage
-# return, linefeed, formfeed, etc., are defined as format effectors.
-#
-# NOTES ON THE DEC VT100 IMPLEMENTATION
-#
-# Control sequences implemented in the VT100 are as follows:
-#
-# CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND,
-# LNM, NEL, RI, RIS, RM, SGR, SM, TBC
-#
-# plus several private DEC commands.
-#
-# Erasing parts of the display (EL and ED) in the VT100 is performed thus:
-#
-# Erase from cursor to end of line Esc [ 0 K or Esc [ K
-# Erase from beginning of line to cursor Esc [ 1 K
-# Erase line containing cursor Esc [ 2 K
-# Erase from cursor to end of screen Esc [ 0 J or Esc [ J
-# Erase from beginning of screen to cursor Esc [ 1 J
-# Erase entire screen Esc [ 2 J
-#
-# Some brain-damaged terminal/emulators respond to Esc [ J as if it were
-# Esc [ 2 J, but this is wrong; the default is 0.
-#
-# The VT100 responds to receiving the DA (Device Attributes) control
-#
-# Esc [ c (or Esc [ 0 c)
-#
-# by transmitting the sequence
-#
-# Esc [ ? l ; Ps c
-#
-# where Ps is a character that describes installed options.
-#
-# The VT100's cursor location can be read with the DSR (Device Status
-# Report) control
-#
-# Esc [ 6 n
-#
-# The VT100 reports by transmitting the CPR sequence
-#
-# Esc [ Pl ; Pc R
-#
-# where Pl is the line number and Pc is the column number (in decimal).
-#
-# The specification for the DEC VT100 is document EK-VT100-UG-003.
-
-#### ANSI.SYS
-#
-# Here is a description of the color and attribute controls supported in the
-# the ANSI.SYS driver under MS-DOS. Most console drivers and ANSI
-# terminal emulators for Intel boxes obey these. They are a proper subset
-# of the ECMA-48 escapes.
-#
-# 0 all attributes off
-# 1 foreground bright
-# 4 underscore on
-# 5 blink on/background bright (not reliable with brown)
-# 7 reverse-video
-# 8 set blank (non-display)
-# 10 set primary font
-# 11 set first alternate font (on PCs, display ROM characters 1-31)
-# 12 set second alternate font (on PCs, display IBM high-half chars)
-#
-# Color attribute sets
-# 3n set foreground color / 0=black, 1=red, 2=green, 3=brown,
-# 4n set background color \ 4=blue, 5=magenta, 6=cyan, 7=white
-# Bright black becomes gray. Bright brown becomes yellow,
-# These coincide with the prescriptions of the ISO 6429/ECMA-48 standard.
-#
-# * If the 5 attribute is on and you set a background color (40-47) it is
-# supposed to enable bright background.
-#
-# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing
-# when you try to set a "bright brown" (yellow) background with attribute
-# 5 (you get a blinking yellow foreground instead). A few displays
-# (including the System V console) support an attribute 6 that undoes this
-# braindamage (this is required by iBCS2).
-#
-# * Some older versions of ANSI.SYS have a bug that causes thems to require
-# ESC [ Pn k as EL rather than the ANSI ESC [ Pn K. (This is not ECMA-48
-# compatible.)
-
-#### Intel Binary Compatibility Standard
-#
-# For comparison, here are the capabilities implied by the Intel Binary
-# Compatibility Standard for UNIX systems (Intel order number 468366-001).
-# These recommendations are optional. IBCS2 allows the leading escape to
-# be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with
-# the ANSI X.364/ISO 6429/ECMA-48 standard. Here are the iBCS2 capabilities
-# (as described in figure 9-3 of the standard). Those expressed in the ibcs2
-# terminfo entry are followed with the corresponding capability in parens:
-#
-# CSI <n>k disable (n=0) or enable (n=1) keyclick
-# CSI 2h lock keyboard
-# CSI 2i send screen as input
-# CSI 2l unlock keyboard
-# CSI 6m enable background color intensity
-# CSI <0-2>c reserved
-# CSI <0-59>m select graphic rendition
-# CSI <n>;<m>H (cup) cursor to line n and column m
-# CSI <n>;<m>f cursor to line n and column m
-# CSI <n>@ (ich) insert characters
-# CSI <n>A (cuu) cursor up n lines
-# CSI <n>B (cud) cursor down n lines
-# CSI <n>C (cuu) cursor right n characters
-# CSI <n>D (cud) cursor left n characters
-# CSI <n>E cursor down n lines and in first column
-# CSI <n>F cursor up n lines and in first column
-# CSI <n>G (hpa) position cursor at column n-1
-# CSI <n>J (ed) erase in display
-# CSI <n>K (el) erase in line
-# CSI <n>L (il) insert line(s)
-# CSI <n>P (dch) delete characters
-# CSI <n>S (indn) scroll up n lines
-# CSI <n>T (rin) scroll down n lines
-# CSI <n>X (ech) erase characters
-# CSI <n>Z (cbt) back up n tab stops
-# CSI <n>` cursor to column n on line
-# CSI <n>a (cuu) cursor right n characters
-# CSI <n>d (vpa) cursor to line n
-# CSI <n>e cursor down n lines and in first column
-# CSI <n>g (cbt) clear all tabs
-# CSI <n>z make virtual terminal n active
-# CSI ?7h (smam) turn automargin on
-# CSI ?7l (rmam) turn automargin off
-# CSI s save cursor position
-# CSI u restore cursor position to saved value
-# CSI =<c>A set overscan color
-# CSI =<c>F set normal foreground color
-# CSI =<c>G set normal background color
-# CSI =<c>H set reverse foreground color
-# CSI =<c>I set reverse foreground color
-# CSI =<c>J set graphic foreground color
-# CSI =<c>K set graphic foreground color
-# CSI =<n>g (dispc) display n from alternate graphics character set
-# CSI =<p>;<d>B set bell parameters
-# CSI =<s>;<e>C set cursor parameters
-# CSI =<x>D enable/disable intensity of background color
-# CSI =<x>E set/clear blink vs. bold background
-# CSI 7 (sc) (sc) save cursor position
-# CSI 8 (rc) (rc) restore cursor position to saved value
-# CSI H (hts) (hts) set tab stop
-# CSI Q<n><string> define function key string
-# (string must begin and end with delimiter char)
-# CSI c (clear) clear screen
-#
-# The lack of any specification for attributes in SGR (among other things)
-# makes this a wretchedly weak standard. The table above is literally
-# everything iBSC2 has to say about terminal escape sequences; there is
-# no further discussion of their meaning or how to set the parameters
-# in these sequences at all.
-#
-
-######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE
-#
-# The historical termcap file entries were written primarily in 4.4BSD termcap.
-# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set,
-# with the extension names chosen for compatibility with the termcap names
-# assigned in System V terminfo. There are some variant extension sets out
-# there. We try to describe them here.
-#
-# XENIX extensions:
-#
-# The XENIX extensions include a set of function-key capabilities as follows:
-#
-# code XENIX variable name terminfo name name clashes?
-# ---- ------------------- ------------- -----------------------
-# CL key_char_left
-# CR key_char_right
-# CW key_change_window create_window
-# EN key_end kend
-# HM key_home khome
-# HP ??
-# LD key_delete_line kdl1
-# LF key_linefeed label_off
-# NU key_next_unlocked_cell
-# PD key_page_down knp
-# PL ??
-# PN start_print mc5
-# PR ??
-# PS stop_print mc4
-# PU key_page_up kpp pulse
-# RC key_recalc remove_clock
-# RF key_toggle_ref req_for_input
-# RT key_return kent
-# UP key_up_arrow kcuu1 parm_up_cursor
-# WL key_word_left
-# WR key_word_right
-#
-# The XENIX extensions also include the following character-set and highlight
-# capabilities:
-#
-# XENIX terminfo function
-# ----- -------- ------------------------------
-# GS smacs start alternate character set
-# GE rmacs end alternate character set
-# GG :as:/:ae: glitch (analogous to :sg:/:ug:)
-# bo blink begin blink (not used in /etc/termcap)
-# be end blink (not used in /etc/termcap)
-# bb blink glitch (not used in /etc/termcap)
-# it dim begin dim (not used in /etc/termcap)
-# ie end dim (not used in /etc/termcap)
-# ig dim glitch (not used in /etc/termcap)
-#
-# Finally, XENIX also used the following forms-drawing capabilities:
-#
-# single double type ASCII approximation
-# ------ ------ ------------- -------------------
-# GV Gv vertical line |
-# GH Gv horizontal line - _
-# G1 G5 top right corner _ |
-# G2 G6 top left corner |
-# G3 G7 bottom left corner |_
-# G4 G8 bottom right corner _|
-# GD Gd down-tick character T
-# GL Gl left-tick character -|
-# GR Gr right-tick character |-
-# GC Gc middle intersection -|-
-# GU Gu up-tick character _|_
-#
-# These were invented to take advantage of the IBM PC ROM character set. One
-# can compose an acsc string from the single-width characters as follows
-# "j{G4}k{G1}l{G2}m{G3}q{GH}x{GV}t{GR}u{GL}v{GU}w{GD}n{GC}"
-# When translating a termcap file, ncurses tic will do this automatically.
-# The double forms characters don't fit the SVr4 terminfo model.
-#
-# AT&T Extensions:
-#
-# 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 that BO=:mr: (start reverse video), DS=:mh:
-# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights),
-# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
-# cursor invisible), and CV=:ve: (make cursor normal).
-#
-# HP Extensions
-#
-# The HP library (as of mid-1995, their term.h file version 70.1) appears to
-# have the System V capabilities up to SVr1 level. After that, it supports
-# two nonstandard caps meml and memu corresponding to the old termcap :ml:,
-# :mu: capabilities. After that, it supports caps plab_norm, label_on,
-# label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the
-# HP binary format incompatible with SVr4's.
-#
-# IBM Extensions
-#
-# There is a set of nonstandard terminfos used by IBM's AIX operating system.
-# The AIX terminfo library diverged from SVr1 terminfo, and replaces all
-# capabilities following prtr_non with the following special capabilties:
-# box[12], batt[12], colb[0123456789], colf[0123456789], f[01234567], kbtab,
-# kdo, kcmd, kcpn, kend, khlp, knl, knpn, kppn, kppn, kquit, ksel, kscl, kscr,
-# ktab, kmpf[123456789], apstr, ksf1..ksf10, kf11...kf63, kact, topl, btml,
-# rvert, lvert. Some of these are identical to XPG4/SVr4 equivalents:
-# kcmd, kend, khlp, and kf11...kf63. Two others (kbtab and ksel) can be
-# renamed (to kcbt and kslt). The places in the box[12] capabilities
-# correspond to acsc chars, 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.
-# The AIX binary terminfo format is incompatible with SVr4's.
-#
-# Iris console extensions:
-#
-# HS is half-intensity start; HE is half-intensity end
-# CT is color terminal type (for Curses & rogue)
-# CP is color change escape sequence
-# CZ are color names (for Curses & rogue)
-#
-# The ncurses tic utility recognizes HS as an alias for mh <dim>.
-#
-# TC Extensions:
-#
-# There is a set of extended termcaps associated with something
-# called the "Terminal Control" or TC package created by MainStream Systems,
-# Winfield Kansas. This one also uses GS/GE for as/ae, and also uses
-# CF for civis and CO for cvvis. Finally, they define a boolean :ct:
-# that flags color terminals.
-#
-######## CHANGE HISTORY
-#
-# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
-# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
-# project.
-#
-# This file contains all the capability information present in John Kunze's
-# last version of the termcap master file, except as noted in the change
-# comments at end of file. Some information about very ancient obsolete
-# capabilities has been moved to comments. Some all-numeric names of older
-# terminals have been retired.
-#
-# I changed :MT: to :km: (the 4.4BSD name) everywhere. I commented out some
-# capabilities (EP, dF, dT, dV, kn, ma, ml, mu, xr, xx) that are no longer
-# used by BSD curses.
-#
-# The 9.1.0 version of this file was translated from my lightly-edited copy of
-# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for
-# the purpose. Unless the ncurses tic implementation and the Lisp code were
-# making perfectly synchronized mistakes which I then failed to catch by
-# eyeball, the translation was correct and perfectly information-preserving.
-#
-# Major version number bumps correspond to major version changes in ncurses.
-#
-# Here is a log of the changes since then:
-#
-# 9.1.0 (Wed Feb 1 04:50:32 EST 1995):
-# * First terminfo master translated from 8.3.
-# 9.2.0 (Wed Feb 1 12:21:45 EST 1995):
-# * Replaced Wyse entries with updated entries supplied by vendor.
-#
-# 9.3.0 (Mon Feb 6 19:14:40 EST 1995):
-# * Added contact & status info from G. Clark Brown <clark@sssi.com>.
-# 9.3.1 (Tue Feb 7 12:00:24 EST 1995):
-# * Better XENIX keycap translation. Describe TC termcaps.
-# * Contact and history info supplied by Qume.
-# 9.3.2 (Sat Feb 11 23:40:02 EST 1995):
-# * Raided the Shuford FTP site for recent termcaps/terminfos.
-# * Added information on X3.64 and VT100 standard escape sequences.
-# 9.3.3 (Mon Feb 13 12:26:15 EST 1995):
-# * Added a correct X11R6 xterm entry.
-# * Fixed terminfo translations of padding.
-# 9.3.4 (Wed Feb 22 19:27:34 EST 1995):
-# * Added correct acsc/smacs/rmacs strings for vt100 and xterm.
-# * Added u6/u7/u8/u9 capabilities.
-# * Added PCVT entry.
-# 9.3.5 (Thu Feb 23 09:37:12 EST 1995):
-# * Emacs uses :so:, not :mr:, for its mode line. Fix linux entry
-# to use reverse-video standout so Emacs will look right.
-# * Added el1 capability to ansi.
-# * Added smacs/rmacs to ansi.sys.
-#
-# 9.4.0 (Sat Feb 25 16:43:25 EST 1995):
-# * New mt70 entry.
-# * Added COPYRIGHTS AND OTHER DELUSIONS.
-# * Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics
-# smartvid & smarterm, ampex 175 & 219 & 232,
-# env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20,
-# ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2,
-# screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan,
-# adm36, mime314, ergo4000, ca22851. Replaced att7300, esprit, dd5500.
-# * Replaced the Perkin-Elmer entries with vendor's official ones.
-# * Restored the old minimal-ansi entry, luna needs it.
-# * Fixed some incorrect ip and proportional-padding translations.
-# 9.4.1 (Mon Feb 27 14:18:33 EST 1995):
-# * Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly.
-# * Make the xterm entry 65 lines again; create xterm25 and xterm24
-# to force a particular height.
-# * Added beehive4 and reorganized other Harris entries.
-# 9.4.2 (Thu Mar 9 01:45:44 EST 1995):
-# * Merged in DEC's official entries for its terminals. The only old
-# entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo).
-# * Replaced the translated BBN Bitgraph entries with purpose-built
-# ones from AT&T's SVr3.
-# * Replaced the AT&T entries with AT&T's official terminfos.
-# * Added teleray 16, vc415, cops10.
-# * Merged in many individual capabilities from SCO terminfo files.
-# 9.4.3 (Mon Mar 13 02:37:53 EST 1995):
-# * Typo fixes.
-# * Change linux entry so A_PROTECT enables IBM-PC ROM characters.
-# 9.4.4 (Mon Mar 27 12:32:35 EST 1995):
-# * Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803,
-# pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21,
-# simterm, citoh and variants.
-# * Replaced sol entry with sol1 and sol2.
-# * Replaced Qume QVT and Freedom-series entries with purpose-built
-# terminfo entries.
-# * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek
-# and dg200 entries using caps from from SCO.
-# * Added the usual set of function-key mappings to ANSI entry.
-# * Corrected xterm's function-key capabilities.
-# 9.4.5 (Tue Mar 28 14:27:49 EST 1995):
-# * Fix in xterm entry, cub and cud are not reliable under X11R6.
-# 9.4.6 (Thu Mar 30 14:52:15 EST 1995):
-# * Fix in xterm entry, get the arrow keys right.
-# * Change some \0 escapes to \200.
-# 9.4.7 (Tue Apr 4 11:27:11 EDT 1995)
-# * Added apple (Videx card), adm1a, oadm31.
-# * Fixed malformed ampex csr.
-# * Fixed act4, cyb110; they had old-style prefix padding left in.
-# * Changed mandatory to advisory padding in many entries.
-# * Replaced HP entries up to hpsub with purpose-built ones.
-# * Blank rmir/smir/rmdc/smdc capabilities removed.
-# * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
-# 9.4.8 (Fri Apr 7 09:36:34 EDT 199):
-# * Replaced the Ann Arbor entries with SCO's, the init strings are
-# more efficient (but the entries otherwise identical).
-# * Added dg211 from Shuford archive.
-# * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk,
-# adm42-nl, pc52, gs6300, xerox820, uts30.
-# * Pull SCO's padding into vi200 entry.
-# * Improved capabilities for tvi4107 and other Televideo and Viewpoint
-# entries merged in from SCO's descriptions.
-# * Fixed old-style prefix padding on zen50, h1500.
-# * Moved old superbee entry to superbee-xsb, pulled in new superbee
-# entry from SCO's description.
-# * Reorganized the special entries.
-# * Added lm#0 to cbunix and virtual entries.
-#
-# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995):
-# * Restored cdc456tst.
-# * Fixed sb1 entry, SCO erroneously left out the xsb glitch.
-# * Added megatek, beacon, microkit.
-# * Freeze for ncurses-1.9 release.
-# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995):
-# * Added historical data for TAB.
-# * Comment fixes from David MacKenzie.
-# * Added the new BSDI pc3 entry.
-# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995)
-# * A change in the tic -C logic now ensures that all entries in
-# the termcap translation will fit in < 1024 bytes.
-# * Added `bobcat' and `gator' HP consoles and the Nu machine entries
-# from GNU termcap file. This merges in all their local information.
-# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995)
-# * Changed tic -C logic to dump all capabilities used by GNU termcap.
-# * Added warnings about entries with long translations (restoring
-# all the GNU termcaps pushes a few over the edge).
-# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995)
-# * Yet another tic change, and a couple of entry tweaks, to reduce the
-# number of long (> 1024) termcap translations back to 0.
-#
-# 9.6.0 (Mon May 1 10:35:54 EDT 1995)
-# * Added kf13-kf20 to Linux entry.
-# * Regularize Prime terminal names.
-# * Historical data on Synertek.
-# * Freeze for ncurses-1.9.1.
-# 9.6.1 (Sat May 6 02:00:52 EDT 1995):
-# * Added true xterm-color entry, renamed djm's pseudo-color entry.
-# * Eliminate whitespace in short name fields, this tanks some scripts.
-# * Name field changes to shorten some long entries.
-# * Termcap translation now automatically generates empty rmir/smir
-# when ich1/ich is present (copes with an ancient vi bug).
-# * Added `screen' entries from FSF's screen-3.6.2.
-# * Added linux-nic and xterm-nic entries.
-# 9.6.2 (Sat May 6 17:00:55 EDT 1995):
-# * Change linux entry to use smacs=\E[11m and have an explicit acsc,
-# eliminating some special-case code in ncurses.
-#
-# 9.7.0 (Tue May 9 18:03:12 EDT 1995):
-# * Added vt320-k3, rsvidtx from the Emacs termcap.dat file. I think
-# that captures everything unique from it.
-# * Added reorder script generator.
-# * Freeze for ncurses 1.9.2 release.
-# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995):
-# * Added Sean Farley's kspd, flash, rs1 capabilities for linux.
-# * Added Olaf Siebert's corrections for adm12.
-# * ansi-pc-color now includes the colors and pairs caps, so that
-# entries which use it will inherit them automatically.
-# * The linux entry can now recognize the center (keypad 5) key.
-# * Removed some junk that found its way into Linux acsc.
-#
-# 9.8.0 (Fri Jul 7 04:46:57 EDT 1995):
-# * Add 50% cut mark as a desperate hack to reduce tic's core usage.
-# * xterm doesn't try to use application keypad mode any more.
-# * Freeze for ncurses-1.9.3 release.
-# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995):
-# * Added corrected sun entry from vendor.
-# * Added csr capability to linux entry.
-# * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG.
-# * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators.
-# * Some commented-out caps in long entries come back in, my code
-# for computing string-table lengths had a bug in it.
-# * pcansi series modified to fit comm-program reality better.
-# 9.8.2 (Sat Sep 9 23:35:00 EDT 1995):
-# * BSD/OS actually ships the ibmpc3 bold entry as its console.
-# * Correct some bad aliases in the pcansi series
-# * Added entry for QNX console.
-# * Clean up duplicate long names for use with 4.4 library.
-# * Change vt100 standout to be normal reverse vide, not bright reverse;
-# this makes the Emacs status line look better.
-# 9.8.3 (Sun Sep 10 13:07:34 EDT 1995):
-# * Added Adam Thompson's VT320 entries, also his dtx-sas and z340.
-# * Minor surgery, mostly on name strings, to shorten termcap version.
-#
-# 9.9.0 (Sat Sep 16 23:03:48 EDT 1995):
-# * Added dec-vt100 for use with the EWAN emulator.
-# * Added kmous to xterm for use with xterm's mouse-tracking facility.
-# * Freeze for 1.9.5 alpha release.
-# 9.9.1 (Wed Sep 20 13:46:09 EDT 1995):
-# * Changed xterm lines to 24, the X11R6 default.
-# 9.9.2 (Sat Sep 23 21:29:21 EDT 1995):
-# * Added 7 newly discovered, undocumented acsc characters to linux
-# entry (the pryz{|} characters).
-# * ncurses no longer steals A_PROTECT. Simplify linux sgr accordingly.
-# * Correct two typos in the xterm entries introduced in 9.9.1.
-# * I finally figured out how to translate ko capabilities. Done.
-# * Added tvi921 entries from Tim Theisen.
-# * Cleanup: dgd211 -> dg211, adm42-nl -> adm42-nsl.
-# * Removed mystery tec entry, it was neither interesting nor useful.
-# * shortened altos3, qvt203, tvi910+, tvi92D, tvi921-g, tvi955, vi200-f,
-# vi300-ss, att505-24, contel301, dm3045, f200vi, pe7000c, vc303a,
-# trs200, wind26, wind40, wind50, cdc456tst, dku7003, f110, dg211,
-# by making them relative to use capabilities
-# * Added cuf1=^L to tvi925 from deleted variant tvi925a.
-# * fixed cup in adm22 entry and parametrized strings in vt320-k3.
-# * added it#8 to entries that used to have :pt: -- tvi912, vi200,
-# ampex80,
-# * Translate all home=\E[;H capabilities to home=\E[H, they're
-# equivalent.
-# * Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of
-# vt100 and ANSI-like terminals.
-# 9.9.3 (Tue Sep 26 20:11:15 EDT 1995):
-# * Added it#8 and ht=\t to *all* entries with :pt:; the ncurses tic
-# does this now, too.
-# * fviewpoint is gone, it duplicated screwpoint.
-# * Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c,
-# ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3,
-# versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW.
-# The UW vi50 replaces the old one, which becomes vi50adm,
-# * No more embedded commas in name fields.
-#
-# 9.10.0 (Wed Oct 4 15:39:37 EDT 1995):
-# * XENIX forms characters in fos, trs16, scoansi become acsc strings,
-# * Introduced klone+* entries for describing Intel-console behavior.
-# * Linux kbs is default-mapped to delete for some brain-dead reason.
-# * -nsl -> -ns. The -pp syntax is obsolete.
-# * Eliminate [A-Z]* primaries in accordance with SVr4 terminfo docs.
-# * Make xterm entry do application-keypad mode again. I got complaints
-# that it was messing up someone's 3270 emulator.
-# * Added some longname fields in order to avoid warning messages from
-# older tic implementations.
-# * According to ctlseqs.ms, xterm has a full vt100 graphics set. Use
-# it! (This gives us pi, greater than, less than, and a few more.)
-# * Freeze for ncurses-1.9.6 release.
-# 9.10.1 (Sat Oct 21 22:18:09 EDT 1995):
-# * Add xon to a number of console entries, they're memory-mapped and
-# don't need padding.
-# * Correct the use dependencies in the ansi series.
-# * Hand-translate more XENIX capabilities.
-# * Added hpterm entry for HP's X terminal emulator.
-# * Added aixterm entries.
-# * Shortened four names so everything fits in 14 chars.
-#
-# 9.11.0 (Thu Nov 2 17:29:35 EST 1995):
-# * Added ibcs2 entry and info on iBCS2 standard.
-# * Corrected hpa/vpa in linux entry. They still fail the worm test.
-# * We can handle the HP meml/memu capability now.
-# * Added smacs to klone entries, just as documentation.
-# * Carrected ansi.sys and cit-500 entries.
-# * Added z39, vt320-k311, v220c, and avatar entries.
-# * Make pcansi use the ansi.sys invis capability.
-# * Added DIP switch descriptions for vt100, adm31, tvi910, tvi920c,
-# tvi925, tvi950, dt80, ncr7900i, h19.
-# * X3.64 has been withdrawn, change some references.
-# * Removed function keys from ansi-m entry.
-# * Corrected ansi.sys entry.
-# * Freeze for ncurses-1.9.7 release.
-# 9.11.1 (Tue Nov 6 18:18:38 EST 1995):
-# * Added rmam/smam capabilities to many entries based on init strings.
-# * Added correct hpa/vpa to linux.
-# * Reduced several entries relative to vt52.
-# 9.11.2 (Tue Nov 7 00:21:06 EST 1995):
-# * Exiled some utterly unidentifiable custom and homebrew types to the
-# UFO file; also, obsolete small-screen hardware; also, entries which
-# look flat-out incorrect, garbled, or redundant. These include the
-# following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec,
-# tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile,
-# apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu,
-# fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55,
-# yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2,
-# vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200,
-# trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40,
-# att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w,
-# tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na,
-# c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na,
-# regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb,
-# vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam,
-# vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms.
-# * Corrected pcvt25h as suggested by Brian C. Grayson
-# <bgrayson@pine.ece.utexas.edu>.
-# 9.11.3 (Thu Nov 9 12:14:40 EST 1995):
-# * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H.
-# * Added kent=\EOM to xterm entry.
-#
-# 9.11.4 (Fri Nov 10 08:31:35 EST 1995):
-# * Corrected gigi entry.
-# * Restored cuf/cud1 to xterm, their apparent bugginess was due to
-# bad hpa/vpa capabilities.
-# * Corrected flash strings to have a uniform delay of .2 sec. No
-# more speed-dependent NUL-padding!
-# * terminfo capabilities in comments bracketed with <>.
-# 9.11.5 (Fri Nov 10 15:35:02 EST 1995):
-# * Replaced pcvt with the 3.31 pcvt entries.
-# * Freeze for 1.9.7a.
-# 9.11.6 (Mon Nov 13 10:20:24 EST 1995):
-# * Added emu entry from the X11R6 contrib tape sources.
-#
-# 9.12.0 (Wed Nov 29 04:22:25 EST 1995):
-# * Improved iris-ansi and sun entries.
-# * More flash string improvements.
-# * Corrected wy160 & wy160 as suggested by Robert Dunn
-# * Added dim to at386.
-# * Reconciled pc3 and ibmpc3 with the BSDI termcap file. Keith says
-# he's ready to start using the termcap generated from this one.
-# * Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m,
-# ln03, lno3-w, h19-g, z29a*, qdss. Made vt200 an alias of vt220.
-# * Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925,
-# att610, att620, att630,
-# * Changed hazeltine name prefix from h to hz.
-# * Sent t500 to the UFI file.
-# * I think we've sucked all the juice out of BSDI's termcap file now.
-# * Freeze for ncurses 1.9.8 release
-# 9.12.1 (Thu Nov 30 03:14:06 EST 1995)
-# * Unfreeze, linux kbs needed to be fixed.
-# * Tim Theisen pinned down a bug in the DMD firmware.
-# 9.12.2 (Thu Nov 30 19:08:55 EST 1995):
-# * Fixes to ansi and klone capabilities (thank you, Aaron Ucko).
-# (The broken ones had been shadowed by sgr.)
-# 9.12.3 (Thu Dec 7 17:47:22 EST 1995):
-# * Added documentation on ECMA-48 standard.
-# * New Amiga entry.
-# 9.12.4 (Thu Dec 14 04:16:39 EST 1995):
-# * More ECMA-48 stuff
-# * Corrected typo in minix entry, added pc-minix.
-# * Corrected khome/kend in xterm (thank you again, Aaron Ucko).
-# * Added rxvt entry.
-# * Added 1.3.x color-change capabilities to linux entry.
-# 9.12.5 (Tue Dec 19 00:22:10 EST 1995):
-# * Corrected rxvt entry khome/kend.
-# * Corrected linux color change capabilities.
-# * NeXT entries from Dave Wetzel.
-# * Cleaned up if and rf file names (all in /usr/share now).
-# * Changed linux op capability to avoid screwing up a background color
-# pair set by setterm.
-# 9.12.6 (Wed Feb 7 16:14:35 EST 1996):
-# * Added xterm-sun.
-# 9.12.7 (Fri Feb 9 13:27:35 EST 1996):
-# * Added visa50.
-#
-# 9.13.0 (Sun Mar 10 00:13:08 EST 1996):
-# * Another sweep through the Shuford archive looking for new info.
-# * Added dg100 alias to dg6053 based on a comp.terminals posting.
-# * Added st52 from Per Persson.
-# * Added eterm from the GNU Emacs 19.30 distribution.
-# * Freeze for 1.9.9.
-# 9.13.1 (Fri Mar 29 14:06:46 EST 1996):
-# * FreeBSD console entries from Andrew Chernov.
-# * Removed duplicate Atari st52 name.
-# 9.13.2 (Tue May 7 16:10:06 EDT 1996)
-# * xterm doesn't actually have ACS_BLOCK.
-# * Change klone+color setf/setb to simpler forms that can be
-# translated into termcap.
-# * Added xterm1.
-# * Removed mechanically-generated junk capabilities from cons* entries.
-# * Added color support to bsdos.
-# 9.13.3 (Thu May 9 10:35:51 EDT 1996):
-# * Added Wyse 520 entries from Wm. Randolph Franklin <wrf@ecse.rpi.edu>.
-# * Created ecma+color, linux can use it. Also added ech to linux.
-# * Teach xterm about more keys. Add Thomas Dickey's 3.1.2E updates.
-# * Add descriptions to FreeBSD console entries. Also shorten
-# some aliases to <= 14 chars for portability.
-# * Added x68k console
-# * Added OTbs to several VT-series entries.
-# 9.13.4 (Wed May 22 10:54:09 EDT 1996):
-# * screen entry update for 3.7.1 from Michael Alan Dorfman.
-# 9.13.5 (Wed Jun 5 11:22:41 EDT 1996):
-# * kterm correction due to Kenji Rikitake.
-# * ACS correction in vt320-kll due to Phillippe De Muyter.
-# 9.13.6 (Sun Jun 16 15:01:07 EDT 1996):
-# * Sun console entry correction from J.T. Conklin.
-# * Changed all DEC VT300 and up terminals to use VT300 tab set
-# 9.13.7 (Mon Jul 8 20:14:32 EDT 1996):
-# * Added smul to linux entry (we never noticed it was missing
-# because of sgr!).
-# * Added rmln to hp+labels (deduced from other HP entries).
-# * Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas,
-# pro350, att7300, 5420_2, att4418, att4424, att4426, att505, vt320-k3.
-# * Corrected vt220 acsc.
-# * The klone+sgr and klone+sgr-dumb entries now use klone+acs;
-# this corresponds to reality and helps prevent some tic warnings.
-# * Added sgr0 to c101, pcix, vt100-nav, screen2, oldsun, next, altos2,
-# hpgeneric, hpansi, hpsub, hp236, hp700-wy, bobcat, dku7003, adm11,
-# adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200,
-# qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc,
-# wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90,
-# adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p,
-# f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000,
-# owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx,
-# lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25,
-# dw3, ln03, ims-ansi, graphos, t16, zen30, xtalk, simterm, d800,
-# ifmr, v3220, wy100q, tandem653, ibmaed.
-# * Added DWK terminal description.
-# 9.13.8 (Wed Jul 10 11:45:21 EDT 1996):
-# * Many entries now have highlights inherited from adm+sgr.
-# * xterm entry now corresponds to XFree86 3.1.2E, with color.
-# * xtitle and xtitle-twm enable access to the X status line.
-# * Added linux-1.3.6 color palette caps in conventional format.
-# * Added adm1178 terminal.
-# * Move fos and apollo terminals to obsolete category.
-# * Aha! The BRL terminals file told us what the Iris extensions mean.
-# * Added, from the BRL termcap file: rt6221, rt6221-w, northstar,
-# commodore, cdc721-esc, excel62, osexec. Replaced from the BRL file:
-# cit500, adm11.
-# 9.13.9 (Mon Jul 15 00:32:51 EDT 1996):
-# * Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756,
-# aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155.
-# * Corrected, from BRL termcap file: vi50.
-# * Better rxvt entry & corrected xterm entries from Thomas Dickey.
-# 9.13.10 (Mon Jul 15 12:20:13 EDT 1996):
-# * Added from BRL: cit101e & variants, hmod1, vi200, ansi77, att5620-1,
-# att5620-s, att5620-s, dg210, aas1901, hz1520, hp9845, osborne
-# (old osborne moved to osborne-w), tvi970-vb, tvi970-2p, tvi925-hi,
-# tek4105brl, tek4106brl, tek4107brl,tek4109brl, hazel, aepro,
-# apple40p, apple80p, appleIIgs, apple2e, apple2e-p, apple-ae.
-# * Paired-attribute fixes to various terminals.
-# * Sun entry corrections from A. Lukyanov & Gert-Jan Vons.
-# * xterm entry corrections from Thomas Dickey.
-# 9.13.11 (Tue Jul 30 16:42:58 EDT 1996):
-# * Added t916 entry, translated from a termcap in SCO's support area.
-# * New qnx entry from Michael Hunter.
-# 9.13.12 (Mon Aug 5 14:31:11 EDT 1996):
-# * Added hpex2 from Ville Sulko.
-# * Fixed a bug that ran the qnx and pcvtXX together.
-# 9.13.13 (Fri Aug 9 01:16:17 EDT 1996):
-# * Added dtterm entry from Solaris CDE.
-# 9.13.14 (Tue Sep 10 15:31:56 EDT 1996):
-# * corrected pairs#8 typo in dtterm entry.
-# * added tvi9065.
-# 9.13.15 (Sun Sep 15 02:47:05 EDT 1996):
-# * updated xterm entry to cover 3.1.2E's new features.
-# 9.13.16 (Tue Sep 24 12:47:43 EDT 1996):
-# * Added new minix entry
-# * Removed aliases of the form ^[0-9]* for obsolete terminals.
-# * Commented out linux-old, nobody's using pre-1.2 kernels now.
-# 9.13.17 (Fri Sep 27 13:25:38 EDT 1996):
-# * Added Prism entries and kt7ix.
-# * Caution notes about EWAN and tabset files.
-# * Changed /usr/lib/tabset -> /usr/share/tabset.
-# * Added acsc/rmacs/smacs to vt52.
-# 9.13.18 (Mon Oct 28 13:24:59 EST 1996):
-# * Merged in Thomas Dickey's reorganization of the xterm entries;
-# added technical corrections to avoid warning messages.
-# 9.13.19 (Sat Nov 16 16:05:49 EST 1996):
-# * Added rmso=\E[27m in Linux entry.
-# * Added koi8-r support for Linux console.
-# * Replace xterm entries with canonical ones from XFree86 3.2.
-# 9.13.20 (Sun Nov 17 23:02:51 EST 1996):
-# * Added color_xterm from Jacob Mandelson
-# 9.13.21 (Mon Nov 18 12:43:42 EST 1996):
-# * Back off the xterm entry to use r6 as a base.
-# 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
-# * Added dec-vt220 at Adrian Garside's request.
-# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
-# * Replaced minitel-2 entry.
-# * Added MGR, ansi-nt.
-# * Minor corrections to xterm entries.
-# * Replaced EWAN telnet entry.
-# * Dropped the reorder script generator. It was a fossil.
-# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
-# * Thorsten Lockert added termcap `bs' to a lot of types, working from
-# the 4.4BSD Lite2 file.
-# 9.13.25 (Fri Jun 20 12:33:36 EDT 1997):
-# * Added Datapoint 8242, pilot, ansi_psx, rbcomm, vt220js.
-# * Updated iris-ansi; corrected vt102-w.
-# * Switch base xterm entry to 3.3 level.
-# 9.13.26 (Mon Jun 30 22:45:45 EDT 1997)
-# * Added basic4.
-# * Removed rmir/smir from tv92B.
-#
-# 10.2.0 (Sat Feb 28 12:47:36 EST 1998):
-# * add hds200 description (Walter Skorski)
-# * add beterm entry (Fred Fish)
-# * add Thomas Dickey's xterm-xf86-v40, xterm-8bit, xterm-16color,
-# iris-color entries.
-# * add emx entries.
-# * Replaced unixpc entry with Benjamin Sittler's corrected version.
-# * Replaced xterm/rxvt/emu/syscons entries with Thomas Dickey's
-# versions.
-# * remove sgr string from qnx based on report by Xiaodan Tang
-# * Added u8/u9, removed rmul/smul from sun-il.
-# * 4.2 tic displays \0 rather than \200.
-# * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
-# apparently based on cp-866).
-# * Merged in Pavel Roskin's acsc for linux-koi8
-# * Corrected some erroneous \\'s to \.
-# * 4.2 ncurses has been changed to use setaf/setab, consistent w/SysV.
-# * II -> ii in pcvtXX, screen, xterm.
-# * Removed \n chars following ANSI escapes in sgr & friends.
-# * Updated Wyse entries.
-# * h19 corrections from Tim Pierce.
-# * Noted that the dm2500 has both ich and smir.
-# * added pccons for the Alpha under OSF/1.
-# * Added Sony NEWS workstation entries and cit101e-rv.
-# * Reverted `amiga'; to Kent Polk's version, as I'm told
-# the Verkuil entry messes up with Amiga Telnet.
-# 10.2.1 (Sun Mar 8 18:32:04 EST 1998):
-# * Corrected attributions in 10.2.0 release notes.
-# * Scanned the Shuford archive for new terminfos and information.
-# * Removed sgr from qnx entry (Thomas Dickey).
-# * Added entries for ICL and Kokusai Data Systems terminals.
-# * Incorporated NCR terminfos from the Boundless Technology FTP site.
-# * Incorporated att700 from the Boundless Technology FTP site.
-# * Miscellaneous contact-address and Web-page updates.
-#
-# 1998/5/9
-# * add nxterm and xterm-color terminfo description (request by Cristian
-# Gafton <gafton@redhat.com>).
-# * modify rxvt terminfo description to clear alternate screen before
-# switching back to normal screen, for compatibility with applications
-# which use xterm (reported by Manoj Kasichainula <manojk@io.com>).
-# * modify linux terminfo description to reset color palette (reported
-# by Telford Tendys <telford@eng.uts.edu.au>).
-#
-# 1998/7/4
-# * merge changes from current XFree86 xterm terminfo descriptions.
-#
-# 1998/7/25
-# * Added minitel1 entries from Alexander Montaron.
-# * Added qnxt2 from Federico Bianchi.
-# * Added arm100 terminfo entries from Dave Millen.
-#
-# 1998/8/6
-# * Added ncsa telnet entries from Francesco Potorti
-#
-# 1998/8/15
-# * modify ncsa telnet entry to reflect color, other capabilities based on
-# examination of the source code - T.Dickey.
-#
-# 1998/8/22
-# * Corrected some erroneous \\'s to \ (eterm, osborne) - TD.
-#
-# 1998/8/29
-# * Added Francesco Potorti's tuned Wyse 99 entries.
-# * dtterm enacs correction from Alexander V. Lukyanov.
-# * Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version.
-# * correct a typo in icl6404 entry.
-# * add xtermm and xtermc
-#
-# 1998/9/26
-# * format most %'char' sequences to %{number}
-# * adapt IBM AIX 3.2.5 terminfo - T.Dickey
-# * merge Data General terminfo from Hasufin <hasufin@vidnet.net> - TD
-#
-# 1998/10/10
-# * update xterm-xfree86 to current (patch 84), for is2/rs2 changes - TD
-# * correct initialization string in xterm-r5, add misc other features
-# to correspond with xterm patch 84 - TD
-#
-# 1998/12/19
-# * update xterm-xfree86 to current (patch 90), smcur/rmcur changes - TD
-# * add Mathew Vernon's mach console entries
-# * corrections for ncsa function-keys (report by Larry Virden)
-#
-# 1998/12/19
-# * change linux to use ncv#2, since underline does not work with color - TD
-#
-# 1999/1/9
-# * add kbt to iris-ansi, document other shift/control functionkeys - TD
-# * correct iris-ansi and iris-ansi-ap with respect to normal vs keypad
-# application modes, change kent to use the correct keypad code - TD
-#
-# 1999/1/10
-# * add entry for Tera Term - TD
-#
-# 1999/1/23
-# * minor improvements for teraterm entry - TD
-# * rename several entries used by BSDI: bsdos to bsdos-pc-nobold,
-# and bsdos-bold to bsdos-pc (Jeffrey C Honig)
-#
-# 1999/2/20
-# * resolve ambiguity of kend/kll/kslt and khome/kfnd/kich1 strings in
-# xterm and ncsa entries by removing the unneeded ones. Note that
-# some entries will return kend & khome versus kslt and kfnd, for
-# PC-style keyboards versus strict vt220 compatiblity - TD
-#
-# 1999/3/13
-# * adjust xterm-xfree86 khome/kend to match default PC-style keyboard
-# tables - TD
-# * add 'crt' entry - TD
-# * correct typos in 'linux-c' entry - TD
-#
-# 1999/3/14
-# * update entries for BSD/OS console to use klone+sgr and klone+color
-# (Jeffrey C Honig)
-#
-# 1999/3/27
-# * adjust xterm-xfree86 miscellaneous keypad keys, as per patch #94 - TD.
-#
-# 1999/4/10
-# * add linux-lat, from RedHat patches to ncurses 4.2
-#
-# 1999/4/17
-# * add complete set of default function-key definitions for scoansi - TD.
-#
-# 1999/7/3
-# * add cnorm, cvvis for Linux 2.2 kernels
-#
-# 1999/7/24
-# * add kmous to xterm-r5 -TD
-# * correct entries xterm+sl and xterm+sl-twm, which were missing the
-# parent "use" clause -TD
-#
-# 1999/7/31
-# * corrected cnorm, added el1 in 'screen' description -TD
-#
-# 1999/8/14
-# * add ms-vt100 -TD
-#
-# 1999/8/21
-# * corrections to beterm entry -TD
-#
-# 1999/8/28
-# * add cygwin entry -TD
-#
-# 1999/9/4
-# * minor corrections for beterm entry -TD
-#
-# 1999/9/18
-# * add acsc string to HP 70092 terminfo entry -Joerg Wunsch
-#
-# 1999/9/25
-# * add amiga-8bit entry
-# * add console entries from NetBSD: ofcons, wsvt25, wsvt25m, rcons,
-# rcons-color, based on
-# ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/share/termcap/termcap.src
-# * add alias for iris-ansi-net
-#
-# 1999/10/2
-# * corrected scoansi entry's acsc, some function keys, add color -TD
-#
-# 1999/10/23
-# * add cnorm, cvvis to cons25w, and modify ncv to add 'dim' -TD
-# * reorder ncsa entries to make ncsa-vt220 use the alternate function
-# key mapping, leaving Potorti's entries more like he named them -TD
-# * remove enter/exit am-mode from cygwin -TD
-#
-# 1999/10/30
-# * correct typos in several entries (missing '[' from CSI):
-# mgr-sun, ncsa-m, vt320-k3, att505, avt-ns, as well as smir/rmir
-# strings for avt-ns -TD
-# * add 'dim' to ncv mask for linux (report by Klaus Weide).
-#
-# 1999/11/27
-# * correct kf1-kf4 in xterm-r6 which were vt100-style PF1-PF4 -TD
-# * add hts to xterm-r6, and u6-u9 to xterm-r5 -TD
-# * add xterm-88color and xterm-256color -TD
-#
-# 1999/12/4
-# * add "obsolete" termcap strings -TD
-# * add kvt and gnome entries -TD
-#
-# 1999/12/11
-# * correct cup string for regent100 -TD
-#
-# 2000/1/1
-# * update mach, add mach-color based on Debian diffs for ncurses 5.0 -TD
-# * add entries for xterm-hp, xterm-vt220, xterm-vt52 and xterm-noapp -TD
-# * change OTrs capabilities to rs2 -TD
-# * add obsolete and extended capabilities to 'screen' -TD
-#
-# 2000/1/5
-# * remove kf0 from rxvt, vt520, vt525 and ibm5151 since it conflicts
-# with kf10 -TD
-# * updated xterm-xf86-v40, making kdch1 correspond to vt220 'Remove',
-# and adding kcbt -TD
-#
-# 2000/1/12
-# * remove incorrect khome/kend from xterm-xf86-v333, which was based on
-# nonstandard resource settings -TD
-#
-# 2000/2/26
-# * minor fixes for xterm-*, based on Debian #58530 -TD
-#
-# 2000/3/4
-# * add several terminal types from esr's "11.0", as well as comments.
-# bq300*, dku7102-old, dku7202, hft, lft, pcmw, pmcons, tws*, vip*,
-# vt220-8bit, vt220-old, wy85-8bit
-#
-# 2000/3/18
-# * add several terminal types from esr's "11.0.1" (ansi-*).
-# * update OTxx capabilities for changes on 2000/3/4.
-# * revert part of vt220 change (request by Todd C Miller for OpenBSD)
-#
-# 2000/3/26
-# * move screen's AX extension to ecma+color, modify several entries to
-# use that, adjusting ncv as needed -TD
-#
-# 2000/4/8
-# * add bsdos-pc-m, bsdos-pc-mono (Jeffrey C Honig)
-# * correct spelling error in entry name: bq300-rv was given as bg300-rv
-# in esr's version.
-#
-# 2000/4/15
-# * add cud, ech, etc., to beterm based on feedback from Rico Tudor -TD
-# * correct color definition for ibm3164, make minor changes to other
-# IBM terminal definitions based on recent terminfo descriptions -TD
-#
-# 2000/4/22
-# * add mgterm, from NetBSD -TD
-# * add alias sun-cgsix for sun-ss5 as per NetBSD
-# * change cons25w to use rs2 for reset rather than rs1 -TD
-# * add rc/sc to aixterm based on manpage -TD
-#
-# 2000/5/13
-# * remove ncv from xterm-16color, xterm-256 color
-#
-# 2000/6/10
-# * add kmous capability to linux to use Joerg Schoen's gpm patch.
-#
-# 2000/7/1
-# * add Eterm (Michael Jennings)
-#
-# 2000-07-18
-# * add amiga-vnc entry.
-#
-# 2000-08-12
-# * correct description of Top Gun Telnet.
-# * add kterm-color
-#
-# 2000-08-26
-# * add qansi* entries from QNX ftp site.
-#
-# 2000-09-16
-# * add Matrix Orbital entries by Eric Z. Ayers).
-# * add xterm-basic, xterm-sco entries, update related entries to XFree86
-# 4.0.1c -TD
-#
-# 2000-09-17
-# * add S0, E0 extensions to screen's entry -TD
-#
-# 2000-09-23
-# * several corrections based on tic's new parameter-checking code -TD
-# * modify xterm-r6 and similar rs2 sequences which had \E7...\E8
-# 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"
-# fill-column:75
-# comment-column:0
-# comment-start-skip:"^#+"
-# comment-start:"# "
-# compile-command:"tic -c terminfo.master"
-# End:
-######## SHANTIH! SHANTIH! SHANTIH!
diff --git a/ncurses-5.3/mk-0th.awk b/ncurses-5.3/mk-0th.awk
deleted file mode 100644
index c001848..0000000
--- a/ncurses-5.3/mk-0th.awk
+++ /dev/null
@@ -1,101 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Generate list of sources for a library, together with lint/lintlib rules
-#
-# Variables:
-# libname (library name, e.g., "ncurses", "panel", "forms", "menus")
-#
-BEGIN {
- print ""
- print "# generated by mk-0th.awk"
- print ""
- print ".SUFFIXES: .c .cc .h .i .ii"
- print ".c.i :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ".cc.ii :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ".h.i :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ""
- found = 0;
- }
- !/^[@#]/ {
- if ( $0 != "" && $1 != "link_test" )
- {
- if ( found == 0 )
- {
- if ( subsets ~ /widechar/ )
- widechar = 1;
- else
- widechar = 0;
- printf "C_SRC ="
- if ( $2 == "lib" )
- found = 1
- else
- found = 2
- }
- 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 {
- print ""
- if ( found == 1 )
- {
- print ""
- printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname
- print "# it in the lintlib rule. We'll only remove in the cleanest setup."
- print "clean ::"
- printf "\trm -f llib-l%s.*\n", libname
- print ""
- print "realclean ::"
- printf "\trm -f llib-l%s\n", libname
- print ""
- printf "llib-l%s : $(C_SRC)\n", libname
- printf "\tcproto -a -l -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
- print ""
- print "lintlib :"
- printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)", libname
- print ""
- print "lint :"
- print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)"
- }
- else
- {
- print ""
- print "lintlib :"
- print "\t@echo no action needed"
- }
- }
diff --git a/ncurses-5.3/mk-1st.awk b/ncurses-5.3/mk-1st.awk
deleted file mode 100644
index 1e94ae2..0000000
--- a/ncurses-5.3/mk-1st.awk
+++ /dev/null
@@ -1,364 +0,0 @@
-# $Id$
-##############################################################################
-# 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 <dickey@clark.net> 1996,1997,2000
-#
-# Generate list of objects for a given model library
-# Variables:
-# name (library name, e.g., "ncurses", "panel", "forms", "menus")
-# model (directory into which we compile, e.g., "obj")
-# prefix (e.g., "lib", for Unix-style libraries)
-# suffix (e.g., "_g.a", for debug libraries)
-# MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
-# depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
-# subset ("none", "base", "base+ext_funcs" or "termlib")
-# 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
-#
-# Notes:
-# CLIXs nawk does not like underscores in command-line variable names.
-# Mixed-case is ok.
-# HP/UX requires shared libraries to have executable permissions.
-#
-function symlink(src,dst) {
- if ( src != dst ) {
- printf "rm -f %s; ", dst
- printf "$(LN_S) %s %s; ", src, dst
- }
- }
-function rmlink(directory, dst) {
- printf "\t-rm -f %s/%s\n", directory, dst
-}
-function removelinks(directory) {
- rmlink(directory, end_name);
- if ( DoLinks == "reverse" ) {
- if ( ShlibVer == "rel" ) {
- rmlink(directory, abi_name);
- rmlink(directory, rel_name);
- } else if ( ShlibVer == "abi" ) {
- rmlink(directory, abi_name);
- }
- } else {
- if ( ShlibVer == "rel" ) {
- rmlink(directory, abi_name);
- rmlink(directory, lib_name);
- } else if ( ShlibVer == "abi" ) {
- rmlink(directory, lib_name);
- }
- }
- }
-function sharedlinks(directory) {
- if ( ShlibVer != "auto" && ShlibVer != "cygdll" ) {
- printf "\tcd %s && (", directory
- if ( DoLinks == "reverse" ) {
- if ( ShlibVer == "rel" ) {
- symlink(lib_name, abi_name);
- symlink(abi_name, rel_name);
- } else if ( ShlibVer == "abi" ) {
- symlink(lib_name, abi_name);
- }
- } else {
- if ( ShlibVer == "rel" ) {
- symlink(rel_name, abi_name);
- symlink(abi_name, lib_name);
- } else if ( ShlibVer == "abi" ) {
- symlink(abi_name, lib_name);
- }
- }
- printf ")\n"
- }
- }
-BEGIN {
- found = 0
- using = 0
- }
- /^@/ {
- using = 0
- if (subset == "none") {
- using = 1
- } else if (index(subset,$2) > 0) {
- if (using == 0) {
- if (found == 0) {
- print ""
- print "# generated by mk-1st.awk"
- print ""
- }
- using = 1
- }
- if ( subset == "termlib") {
- name = "tinfo"
- OBJS = MODEL "_T"
- } else {
- OBJS = MODEL
- }
- }
- }
- /^[@#]/ {
- next
- }
- $1 ~ /trace/ {
- if (traces != "all" && traces != MODEL && $1 != "lib_trace")
- next
- }
- {
- if (using \
- && ( $1 != "link_test" ) \
- && ( $2 == "lib" \
- || $2 == "progs" \
- || $2 == "c++" \
- || $2 == "tack" ))
- {
- if ( found == 0 )
- {
- printf "%s_OBJS =", OBJS
- if ( $2 == "lib" )
- found = 1
- else
- found = 2
- }
- printf " \\\n\t../%s/%s.o", model, $1
- }
- }
-END {
- print ""
- if ( found != 0 )
- {
- printf "\n$(%s_OBJS) : %s\n", OBJS, depend
- }
- if ( found == 1 )
- {
- print ""
- lib_name = sprintf("%s%s%s", prefix, name, suffix)
- if ( MODEL == "SHARED" )
- {
- if (ShlibVerInfix == "cygdll") {
- abi_name = sprintf("%s%s$(ABI_VERSION)%s", prefix, name, suffix);
- rel_name = sprintf("%s%s$(REL_VERSION)%s", prefix, name, suffix);
- 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;
- } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) {
- end_name = abi_name;
- } else {
- end_name = lib_name;
- }
- }
-
- 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 {
- printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(SHLIB_LIST) $(LDFLAGS)\n", OBJS
- }
- sharedlinks("../lib")
-
- print ""
- print "install \\"
- print "install.libs \\"
- 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)
- printf "\t@echo linking %s to %s\n", end_name, ovr_name
- printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, end_name, ovr_name
- }
- if ( ldconfig != "" ) {
- printf "\t- test -z \"$(DESTDIR)\" && %s\n", ldconfig
- }
- print ""
- print "uninstall \\"
- print "uninstall.libs \\"
- printf "uninstall.%s ::\n", 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 ""
- print "mostlyclean \\"
- print "clean ::"
- printf "\t-@rm -f so_locations\n"
- }
- }
- else if ( MODEL == "LIBTOOL" )
- {
- if ( $2 == "c++" ) {
- compile="CXX"
- } else {
- compile="CC"
- }
- end_name = lib_name;
- printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
- printf "\tcd ../lib && $(LIBTOOL) $(%s) -o %s $(%s_OBJS:.o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR)\n", compile, lib_name, OBJS
- print ""
- print "install \\"
- print "install.libs \\"
- printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name
- printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
- printf "\tcd ../lib; $(LIBTOOL) $(INSTALL_DATA) %s $(DESTDIR)$(libdir)\n", lib_name
- print ""
- print "uninstall \\"
- print "uninstall.libs \\"
- printf "uninstall.%s ::\n", name
- printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
- printf "\t-@$(LIBTOOL) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
- }
- else
- {
- end_name = lib_name;
- printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
- printf "\t$(AR) $(AR_OPTS) $@ $?\n"
- printf "\t$(RANLIB) $@\n"
- if ( target == "vxworks" )
- {
- printf "\t$(LD) $(LD_OPTS) $? -o $(@:.a=.o)\n"
- }
- print ""
- print "install \\"
- print "install.libs \\"
- printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name
- printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
- printf "\t$(INSTALL_DATA) ../lib/%s $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name
- if ( overwrite == "yes" && lib_name == "libncurses.a" )
- {
- printf "\t@echo linking libcurses.a to libncurses.a\n"
- printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n"
- printf "\t(cd $(DESTDIR)$(libdir) && $(LN_S) libncurses.a libcurses.a)\n"
- }
- printf "\t$(RANLIB) $(DESTDIR)$(libdir)/%s\n", lib_name
- if ( target == "vxworks" )
- {
- printf "\t@echo installing ../lib/lib%s.o as $(DESTDIR)$(libdir)/lib%s.o\n", name, name
- printf "\t$(INSTALL_DATA) ../lib/lib%s.o $(DESTDIR)$(libdir)/lib%s.o\n", name, name
- }
- print ""
- print "uninstall \\"
- print "uninstall.libs \\"
- printf "uninstall.%s ::\n", name
- printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
- printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
- if ( overwrite == "yes" && lib_name == "libncurses.a" )
- {
- printf "\t@echo linking libcurses.a to libncurses.a\n"
- printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n"
- }
- if ( target == "vxworks" )
- {
- printf "\t@echo uninstalling $(DESTDIR)$(libdir)/lib%s.o\n", name
- printf "\t-@rm -f $(DESTDIR)$(libdir)/lib%s.o\n", name
- }
- }
- print ""
- print "clean ::"
- removelinks("../lib");
- print ""
- print "mostlyclean::"
- printf "\t-rm -f $(%s_OBJS)\n", OBJS
- if ( MODEL == "LIBTOOL" ) {
- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
- }
- }
- else if ( found == 2 )
- {
- print ""
- print "mostlyclean::"
- printf "\t-rm -f $(%s_OBJS)\n", OBJS
- if ( MODEL == "LIBTOOL" ) {
- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
- }
- print ""
- print "clean ::"
- printf "\t-rm -f $(%s_OBJS)\n", OBJS
- if ( MODEL == "LIBTOOL" ) {
- printf "\t-rm -f $(%s_OBJS:.o=.lo)\n", OBJS
- }
- }
- }
diff --git a/ncurses-5.3/mk-2nd.awk b/ncurses-5.3/mk-2nd.awk
deleted file mode 100644
index d1ddb3e..0000000
--- a/ncurses-5.3/mk-2nd.awk
+++ /dev/null
@@ -1,115 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Generate compile-rules for the modules that we are using in libraries or
-# programs. We are listing them explicitly because we have turned off the
-# suffix rules (to force compilation with the appropriate flags). We could use
-# make-recursion but that would result in makefiles that are useless for
-# development.
-#
-# Variables:
-# model
-# MODEL (uppercase version of "model"; toupper is not portable)
-# echo (yes iff we will show the $(CC) lines)
-# subset ("none", "base", "base+ext_funcs" or "termlib")
-#
-# Fields in src/modules:
-# $1 = module name
-# $2 = progs|lib|c++
-# $3 = source-directory
-#
-# Fields in src/modules past $3 are dependencies
-#
-BEGIN {
- found = 0
- using = 0
- }
- /^@/ {
- using = 0
- if (subset == "none") {
- using = 1
- } else if (index(subset,$2) > 0) {
- if (using == 0) {
- if (found == 0) {
- print ""
- print "# generated by mk-2nd.awk"
- print ""
- }
- using = 1
- }
- }
- }
- /^[@#]/ {
- next
- }
- $1 ~ /trace/ {
- if (traces != "all" && traces != MODEL && $1 != "lib_trace")
- next
- }
- {
- if ($0 != "" \
- && using != 0) {
- found = 1
- if ( $1 != "" ) {
- print ""
- if ( $2 == "c++" ) {
- compile="CXX"
- suffix=".cc"
- } else {
- compile="CC"
- suffix=".c"
- }
- printf "../%s/%s.o :\t%s/%s%s", model, $1, $3, $1, suffix
- for (n = 4; n <= NF; n++) printf " \\\n\t\t\t%s", $n
- print ""
- if ( echo == "yes" )
- atsign=""
- else {
- atsign="@"
- printf "\t@echo 'compiling %s (%s)'\n", $1, model
- }
- if ( $3 == "." || srcdir == "." ) {
- dir = $3 "/"
- sub("^\\$\\(srcdir\\)/","",dir);
- sub("^\\./","",dir);
- printf "\t%scd ../%s; $(LIBTOOL) $(%s) $(CFLAGS_%s) -c ../%s/%s%s%s", atsign, model, compile, MODEL, name, dir, $1, suffix
- } else
- printf "\t%scd ../%s; $(LIBTOOL) $(%s) $(CFLAGS_%s) -c %s/%s%s", atsign, model, compile, MODEL, $3, $1, suffix
- } else {
- printf "%s", $1
- for (n = 2; n <= NF; n++) printf " %s", $n
- }
- print ""
- }
- }
-END {
- print ""
- }
diff --git a/ncurses-5.3/mkinstalldirs b/ncurses-5.3/mkinstalldirs
deleted file mode 100755
index ffe7494..0000000
--- a/ncurses-5.3/mkinstalldirs
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Last modified: 1994-03-25
-# Public domain
-#
-
-errstatus=0
-umask 022
-
-for file in ${1+"$@"} ; do
- set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
- shift
-
- pathcomp=
- for d in ${1+"$@"} ; do
- pathcomp="$pathcomp$d"
- case "$pathcomp" in
- -* ) pathcomp=./$pathcomp ;;
- esac
-
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
- case "$pathcomp" in
- [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
- ;; # DOSISH systems
- * ) mkdir "$pathcomp" || errstatus=$? ;;
- esac
- fi
-
- pathcomp="$pathcomp/"
- done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff --git a/ncurses-5.3/ncurses/Makefile.in b/ncurses-5.3/ncurses/Makefile.in
deleted file mode 100644
index 082604e..0000000
--- a/ncurses-5.3/ncurses/Makefile.in
+++ /dev/null
@@ -1,275 +0,0 @@
-# $Id$
-##############################################################################
-# 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"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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
-#
-# Makefile for ncurses source code.
-#
-# This makes the following:
-# programs
-# includes
-# libraries (normal/debug/profile/shared)
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-x = @PROG_EXT@
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-top_srcdir = @top_srcdir@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_PROG = @INSTALL_PROG@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LD = @LD@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-INCDIR = $(srcdir)/../include
-CPPFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @CPPFLAGS@
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-HOSTCC = @BUILD_CC@
-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_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(LIBTOOL) $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib
-SHLIB_LIST = $(SHLIB_DIRS) @SHLIB_LIST@
-TINFO_LIST = $(SHLIB_DIRS) @TINFO_LIST@
-
-MK_SHARED_LIB = @MK_SHARED_LIB@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-RANLIB = @RANLIB@
-
-IMPORT_LIB = @IMPORT_LIB@
-SHARED_LIB = @SHARED_LIB@
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lncurses @LIBS@
-
-FALLBACK_LIST = @FALLBACK_LIST@
-
-TERMINFO_CAPS = $(top_srcdir)/include/@TERMINFO_CAPS@
-
-AUTO_SRC = \
- ../include/nomacros.h \
- codes.c \
- comp_captab.c \
- expanded.c \
- fallback.c \
- init_keytry.h \
- 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_LDFLAGS = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
-
-TEST_PROGS = \
- captoinfo$x \
- hardscroll$x \
- link_test$x \
- hashmap$x \
- lib_mvcur$x
-
-base = $(srcdir)/base
-serial = $(srcdir)/tty
-tinfo = $(srcdir)/tinfo
-trace = $(srcdir)/trace
-wide = $(srcdir)/widechar
-
-################################################################################
-all \
-libs :: $(AUTO_SRC) ../lib $(LIBRARIES)
-
-sources: $(AUTO_SRC)
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-../lib : ; mkdir $@
-
-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) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@
-
-../include/nomacros.h : $(base)/MKlib_gen.sh ../include/curses.h
- sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h | \
- fgrep undef >$@
-
-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 \
- names.c
- $(HOSTCC) -o $@ $(HOSTCCFLAGS) $(tinfo)/make_keys.c $(HOSTLDFLAGS) $(HOSTLIBS)
-
-make_hash$x : \
- $(tinfo)/comp_hash.c \
- ../include/hashsize.h
- $(HOSTCC) -o $@ $(HOSTCCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(HOSTLDFLAGS) $(HOSTLIBS)
-
-expanded.c : $(serial)/MKexpanded.sh
- sh $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@
-
-comp_captab.c: \
- make_hash$x \
- ../include/hashsize.h \
- $(tinfo)/MKcaptab.awk
- sh $(tinfo)/MKcaptab.awk $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ > $@
-
-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/@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
-
-unctrl.c: $(base)/MKunctrl.awk
- echo | $(AWK) -f $(base)/MKunctrl.awk >$@
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
- -rm -f $(TEST_PROGS)
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
- -rm -f make_keys$x
- -rm -f make_hash$x
- -rm -rf .libs
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-# These rules are used to allow "make -n" to work on a clean directory-tree
-../include/hashsize.h \
-../include/parametrized.h \
-../include/term.h :
- cd ../include; $(MAKE) $(CF_MFLAGS)
-
-# 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)
-
-hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS)
- @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS)
-
-hashmap$x : $(serial)/hashmap.c $(TEST_DEPS)
- @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(TEST_LDFLAGS)
-
-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)
-
-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
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/ncurses/README b/ncurses-5.3/ncurses/README
deleted file mode 100644
index 20c94d3..0000000
--- a/ncurses-5.3/ncurses/README
+++ /dev/null
@@ -1,2 +0,0 @@
-For discussion of the package internals, see hackguide.html in the doc/html
-directory.
diff --git a/ncurses-5.3/ncurses/README.IZ b/ncurses-5.3/ncurses/README.IZ
deleted file mode 100644
index 2952f68..0000000
--- a/ncurses-5.3/ncurses/README.IZ
+++ /dev/null
@@ -1,65 +0,0 @@
-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
diff --git a/ncurses-5.3/ncurses/SigAction.h b/ncurses-5.3/ncurses/SigAction.h
deleted file mode 100644
index 247acb4..0000000
--- a/ncurses-5.3/ncurses/SigAction.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * $Id$
- *
- * This file exists to handle non-POSIX systems which don't have <unistd.h>,
- * and usually no sigaction() nor <termios.h>
- */
-
-#ifndef _SIGACTION_H
-#define _SIGACTION_H
-
-#ifndef HAVE_SIGACTION
-#define HAVE_SIGACTION 0
-#endif
-
-#ifndef HAVE_SIGVEC
-#define HAVE_SIGVEC 0
-#endif
-
-#if HAVE_SIGACTION
-
-#if !HAVE_TYPE_SIGACTION
-typedef struct sigaction sigaction_t;
-#endif
-
-#else /* !HAVE_SIGACTION */
-
-#if HAVE_SIGVEC
-
-#if HAVE_LIBC_H
-#include <libc.h>
-#endif
-
-#undef SIG_BLOCK
-#define SIG_BLOCK 00
-
-#undef SIG_UNBLOCK
-#define SIG_UNBLOCK 01
-
-#undef SIG_SETMASK
-#define SIG_SETMASK 02
-
- /*
- * <bsd/signal.h> is in the Linux 1.2.8 + gcc 2.7.0 configuration,
- * and is useful for testing this header file.
- */
-#if HAVE_BSD_SIGNAL_H
-#include <bsd/signal.h>
-#endif
-
-typedef struct sigvec sigaction_t;
-
-#define sigset_t _nc_sigset_t
-typedef unsigned long sigset_t;
-
-#undef sa_mask
-#define sa_mask sv_mask
-#undef sa_handler
-#define sa_handler sv_handler
-#undef sa_flags
-#define sa_flags sv_flags
-
-#undef sigaction
-#define sigaction _nc_sigaction
-#undef sigprocmask
-#define sigprocmask _nc_sigprocmask
-#undef sigemptyset
-#define sigemptyset _nc_sigemptyset
-#undef sigsuspend
-#define sigsuspend _nc_sigsuspend
-#undef sigdelset
-#define sigdelset _nc_sigdelset
-#undef sigaddset
-#define sigaddset _nc_sigaddset
-
-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 /* !defined(_SIGACTION_H) */
diff --git a/ncurses-5.3/ncurses/base/MKkeyname.awk b/ncurses-5.3/ncurses/base/MKkeyname.awk
deleted file mode 100644
index 744a810..0000000
--- a/ncurses-5.3/ncurses/base/MKkeyname.awk
+++ /dev/null
@@ -1,90 +0,0 @@
-# $Id$
-##############################################################################
-# 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"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-BEGIN {
- print "/* generated by MKkeyname.awk */"
- print ""
- print "#include <curses.priv.h>"
- print "#include <tic.h>"
- print ""
- print "const struct kn _nc_key_names[] = {"
-}
-
-/^[^#]/ {
- printf "\t{ \"%s\", %s },\n", $1, $1;
- }
-
-END {
- printf "\t{ 0, 0 }};\n"
- print ""
- print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
- print "{"
- print "static char **table;"
- print "int i;"
- print "char name[20];"
- print "char *p;"
- print ""
- 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 "\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 "\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 "#endif"
-}
diff --git a/ncurses-5.3/ncurses/base/MKlib_gen.sh b/ncurses-5.3/ncurses/base/MKlib_gen.sh
deleted file mode 100755
index 581ba67..0000000
--- a/ncurses-5.3/ncurses/base/MKlib_gen.sh
+++ /dev/null
@@ -1,400 +0,0 @@
-#!/bin/sh
-#
-# MKlib_gen.sh -- generate sources from curses.h macro definitions
-#
-# ($Id$)
-#
-##############################################################################
-# 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
-# by macros. Rather than hand-hack all that code, we actually
-# generate functions from the macros.
-#
-# This script accepts a file of prototypes on standard input. It discards
-# any that don't have a `generated' comment attached. It then parses each
-# prototype (relying on the fact that none of the macros take function
-# pointer or array arguments) and generates C source from it.
-#
-# Here is what the pipeline stages are doing:
-#
-# 1. sed: extract prototypes of generated functions
-# 2. sed: decorate prototypes with generated arguments a1. a2,...z
-# 3. awk: generate the calls with args matching the formals
-# 4. sed: prefix function names in prototypes so the preprocessor won't expand
-# them.
-# 5. cpp: macro-expand the file so the macro calls turn into C calls
-# 6. awk: strip the expansion junk off the front and add the new header
-# 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"
-USE="$3"
-
-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
-
-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
- g
- s/^extern \([^;]*\);.*/\1/p
- g
- 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
-/(void)/b nc
- s/,/ a1% /
- s/,/ a2% /
- s/,/ a3% /
- s/,/ a4% /
- s/,/ a5% /
- s/,/ a6% /
- s/,/ a7% /
- s/,/ a8% /
- s/,/ a9% /
- s/,/ a10% /
- s/,/ a11% /
- s/,/ a12% /
- s/,/ a13% /
- s/,/ a14% /
- s/,/ a15% /
- s/*/ * /g
- s/%/ , /g
- s/)/ z)/
- s/\.\.\. z)/...)/
-:nc
- /(/s// ( /
- s/)/ )/
-EOF2
-
-cat >$ED3 <<EOF3
-/^P_/{
- s/^P_#if_/#if /
- s/^P_//
- b done
-}
- s/ */ /g
- s/ */ /g
- s/ ,/,/g
- s/( /(/g
- s/ )/)/g
- s/ gen_/ /
- s/^M_/#undef /
- /^%%/s// /
-: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;
- }
-/^P_#if/ {
- print "\n"
- print $0
- skip=0;
-}
-/^P_#endif/ {
- print $0
- skip=1;
-}
-$0 !~ /^P_/ {
- if (skip)
- print "\n"
- skip=1;
-
- first=$1
- for (i = 1; i <= NF; i++) {
- if ( $i != "NCURSES_CONST" ) {
- first = i;
- break;
- }
- }
- second = first + 1;
- if ( $first == "chtype" ) {
- 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";
- }
- myfunc = second;
- for (i = second; i <= NF; i++) {
- if ($i != "*") {
- myfunc = i;
- break;
- }
- }
- if (using == "generated") {
- print "M_" $myfunc
- }
- print $0;
- print "{";
- argcount = 1;
- check = NF - 1;
- if ($check == "void")
- argcount = 0;
- if (argcount != 0) {
- for (i = 1; i <= NF; i++)
- if ($i == ",")
- argcount++;
- }
-
- # suppress trace-code for functions that we cannot do properly here,
- # since they return data.
- dotrace = 1;
- if ($myfunc ~ /innstr/)
- dotrace = 0;
- if ($myfunc ~ /innwstr/)
- 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 = ""
- for (i = myfunc; i <= NF; i++) {
- ch = $i;
- if ( ch == "*" )
- pointer = 1;
- else if ( ch == "va_list" )
- pointer = 1;
- else if ( ch == "char" )
- argtype = "char";
- else if ( ch == "int" )
- argtype = "int";
- else if ( ch == "short" )
- argtype = "short";
- else if ( ch == "chtype" )
- argtype = "chtype";
- else if ( ch == "attr_t" || ch == "NCURSES_ATTR_T" )
- argtype = "attr";
-
- if ( ch == "," || ch == ")" ) {
- if (pointer) {
- if ( argtype == "char" ) {
- call = call "%s"
- comma = comma "_nc_visbuf2(" num ","
- pointer = 0;
- } else
- call = call "%p"
- } else if (argcount != 0) {
- if ( argtype == "int" || argtype == "short" ) {
- call = call "%d"
- argtype = ""
- } else if ( argtype != "" ) {
- call = call "%s"
- comma = comma "_trace" argtype "2(" num ","
- } else {
- call = call "%#lx"
- comma = comma "(long)"
- }
- }
- if (ch == ",")
- args = args comma "a" ++num;
- else if ( argcount != 0 && $check != "..." )
- args = args comma "z"
- call = call ch
- if (pointer == 0 && argcount != 0 && argtype != "" )
- args = args ")"
- if (args != "")
- comma = ", "
- pointer = 0;
- argtype = ""
- }
- if ( i == 2 || ch == "(" )
- call = call ch
- }
- call = call "\")"
- if (args != "")
- call = call ", " args
- call = call ")); "
-
- if (dotrace)
- printf "%s", call
-
- if (match($0, "^void"))
- call = ""
- else if (dotrace)
- call = sprintf("return%s( ", returnType);
- else
- call = "%%return ";
-
- 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";
- }
- if (!match($0, "^void"))
- call = call ") ";
- if (dotrace)
- call = call ")";
- print call ";"
-
- if (match($0, "^void"))
- print "%%returnVoid;"
- print "}";
-}
-EOF1
-
-cat >$AW2 <<EOF1
-BEGIN {
- 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;}
- {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;/' \
- -e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/ return \1;/' \
-| sed -f $ED4
diff --git a/ncurses-5.3/ncurses/base/MKunctrl.awk b/ncurses-5.3/ncurses/base/MKunctrl.awk
deleted file mode 100644
index 892f6fb..0000000
--- a/ncurses-5.3/ncurses/base/MKunctrl.awk
+++ /dev/null
@@ -1,69 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-
-BEGIN {
- print "/* generated by MKunctrl.awk */"
- print ""
- print "#include <curses.priv.h>"
- print ""
- print "#undef unctrl"
- print ""
- }
-END {
- print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)"
- print "{"
- printf "static const char* const table[] = {"
- for ( ch = 0; ch < 256; ch++ ) {
- gap = ","
- if ((ch % 8) == 0)
- printf "\n "
- if (ch < 32) {
- printf "\"^\\%03o\"", ch + 64
- } else if (ch == 127) {
- printf "\"^?\""
- } else if (ch >= 128 && ch < 160) {
- printf "\"~\\%03o\"", ch - 64
- } else {
- printf "\"\\%03o\"", ch
- gap = gap " "
- }
- if (ch == 255)
- gap = "\n"
- else if (((ch + 1) % 8) != 0)
- gap = gap " "
- printf "%s", gap
- }
- print "};"
- print ""
- print "\treturn (NCURSES_CONST char *)table[ChCharOf(ch)];"
- print "}"
- }
diff --git a/ncurses-5.3/ncurses/base/README b/ncurses-5.3/ncurses/base/README
deleted file mode 100644
index 114c11f..0000000
--- a/ncurses-5.3/ncurses/base/README
+++ /dev/null
@@ -1,7 +0,0 @@
--- $Id$
-
-The functions in this directory are the generic (not device-specific) modules
-of ncurses.
-
-As a rule, these modules should not depend directly on term.h references and
-associated terminfo function and variables.
diff --git a/ncurses-5.3/ncurses/base/define_key.c b/ncurses-5.3/ncurses/base/define_key.c
deleted file mode 100644
index 5b79a7f..0000000
--- a/ncurses-5.3/ncurses/base/define_key.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-define_key
-(char *str, int keycode)
-{
- 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;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/keybound.c b/ncurses-5.3/ncurses/base/keybound.c
deleted file mode 100644
index 0013a06..0000000
--- a/ncurses-5.3/ncurses/base/keybound.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1999 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Returns the count'th string definition which is associated with the
- * given keycode. The result is malloc'd, must be freed by the caller.
- */
-
-NCURSES_EXPORT(char *)
-keybound(int code, int count)
-{
- return _nc_expand_try(SP->_key_ok, code, &count, 0);
-}
diff --git a/ncurses-5.3/ncurses/base/keyok.c b/ncurses-5.3/ncurses/base/keyok.c
deleted file mode 100644
index 8b7f410..0000000
--- a/ncurses-5.3/ncurses/base/keyok.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Enable (or disable) ncurses' interpretation of a keycode by adding (or
- * removing) the corresponding 'tries' entry.
- *
- * Do this by storing a second tree of tries, which records the disabled keys.
- * The simplest way to copy is to make a function that returns the string (with
- * nulls set to 0200), then use that to reinsert the string into the
- * corresponding tree.
- */
-
-NCURSES_EXPORT(int)
-keyok(int c, bool flag)
-{
- 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;
- }
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_addch.c b/ncurses-5.3/ncurses/base/lib_addch.c
deleted file mode 100644
index ec43b98..0000000
--- a/ncurses-5.3/ncurses/base/lib_addch.c
+++ /dev/null
@@ -1,365 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
-** lib_addch.c
-**
-** The routine waddch().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Ugly microtweaking alert. Everything from here to end of module is
- * likely to be speed-critical -- profiling data sure says it is!
- * Most of the important screen-painting functions are shells around
- * waddch(). So we make every effort to reduce function-call overhead
- * by inlining stuff, even at the cost of making wrapped copies for
- * export. Also we supply some internal versions that don't call the
- * window sync hook, for use by string-put functions.
- */
-
-/* Return bit mask for clearing color pair number if given ch has color */
-#define COLOR_MASK(ch) (~(attr_t)((ch)&A_COLOR?A_COLOR:0))
-
-static inline NCURSES_CH_T
-render_char(WINDOW *win, NCURSES_CH_T ch)
-/* compute a rendition of the given char correct for the current context */
-{
- attr_t a = win->_attrs;
-
- 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 {
- /* color in attrs has precedence over bkgrnd */
- a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a);
- /* color in ch has precedence */
- AddAttr(ch, (a & COLOR_MASK(AttrOf(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);
-}
-
-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);
-}
-
-/* check if position is legal; if not, return error */
-#ifndef NDEBUG /* treat this like an assertion */
-#define CHECK_POSITION(win, x, y) \
- if (y > win->_maxy \
- || x > win->_maxx \
- || y < 0 \
- || x < 0) { \
- TR(TRACE_VIRTPUT, ("Alert! Win=%p _curx = %d, _cury = %d " \
- "(_maxx = %d, _maxy = %d)", win, x, y, \
- win->_maxx, win->_maxy)); \
- return(ERR); \
- }
-#else
-#define CHECK_POSITION(win, x, y) /* nothing */
-#endif
-
-static inline int
-waddch_literal(WINDOW *win, NCURSES_CH_T ch)
-{
- int x;
- struct ldat *line;
-
- x = win->_curx;
-
- CHECK_POSITION(win, x, win->_cury);
-
- /*
- * If we're trying to add a character at the lower-right corner more
- * than once, fail. (Moving the cursor will clear the flag).
- */
-#if 0 /* Solaris 2.6 allows updating the corner more than once */
- if (win->_flags & _WRAPPED) {
- if (x >= win->_maxx)
- return (ERR);
- win->_flags &= ~_WRAPPED;
- }
-#endif
-
- ch = render_char(win, ch);
- TR(TRACE_VIRTPUT, ("win attr = %s", _traceattr(win->_attrs)));
-
- line = win->_line + win->_cury;
-
- 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;
- /*
- * 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, _tracech_t(CHREF(ch))));
- if (x > win->_maxx) {
- /*
- * The _WRAPPED flag is useful only for telling an application that
- * we've just wrapped the cursor. We don't do anything with this flag
- * except set it when wrapping, and clear it whenever we move the
- * cursor. If we try to wrap at the lower-right corner of a window, we
- * cannot move the cursor (since that wouldn't be legal). So we return
- * an error (which is what SVr4 does). Unlike SVr4, we can
- * successfully add a character to the lower-right corner (Solaris 2.6
- * does this also, however).
- */
- win->_flags |= _WRAPPED;
- if (++win->_cury > win->_regbottom) {
- win->_cury = win->_regbottom;
- win->_curx = win->_maxx;
- if (!win->_scroll)
- return (ERR);
- scroll(win);
- }
- win->_curx = 0;
- return (OK);
- }
- win->_curx = x;
- return OK;
-}
-
-static inline int
-waddch_nosync(WINDOW *win, const NCURSES_CH_T ch)
-/* the workhorse function -- add a character to the given window */
-{
- int x, y;
- chtype t = 0;
- const char *s = 0;
-
- if ((AttrOf(ch) & A_ALTCHARSET)
- || ((t = CharOf(ch)) > 127)
- || ((s = unctrl(t))[1] == 0))
- return waddch_literal(win, ch);
-
- x = win->_curx;
- y = win->_cury;
-
- switch (t) {
- case '\t':
- x += (TABSIZE - (x % TABSIZE));
-
- /*
- * Space-fill the tab on the bottom line so that we'll get the
- * "correct" cursor position.
- */
- if ((!win->_scroll && (y == win->_regbottom))
- || (x <= win->_maxx)) {
- 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);
- }
- break;
- } else {
- wclrtoeol(win);
- win->_flags |= _WRAPPED;
- if (++y > win->_regbottom) {
- x = win->_maxx;
- y--;
- if (win->_scroll) {
- scroll(win);
- x = 0;
- }
- } else {
- x = 0;
- }
- }
- break;
- case '\n':
- wclrtoeol(win);
- if (++y > win->_regbottom) {
- y--;
- if (win->_scroll)
- scroll(win);
- else
- return (ERR);
- }
- /* FALLTHRU */
- case '\r':
- x = 0;
- win->_flags &= ~_WRAPPED;
- break;
- case '\b':
- if (x == 0)
- return (OK);
- x--;
- win->_flags &= ~_WRAPPED;
- break;
- default:
- while (*s) {
- NCURSES_CH_T sch;
- SetChar(sch, *s++, AttrOf(ch));
- if (waddch_literal(win, sch) == ERR)
- return ERR;
- }
- return (OK);
- }
-
- win->_curx = x;
- win->_cury = y;
-
- return (OK);
-}
-
-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));
-}
-
-/*
- * The versions below call _nc_synhook(). We wanted to avoid this in the
- * version exported for string puts; they'll call _nc_synchook once at end
- * of run.
- */
-
-/* These are actual entry points */
-
-NCURSES_EXPORT(int)
-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,
- _tracechtype(ch)));
-
- 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)
-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,
- _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, *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);
-}
-#endif /* USE_WIDEC_SUPPORT */
diff --git a/ncurses-5.3/ncurses/base/lib_addstr.c b/ncurses-5.3/ncurses/base/lib_addstr.c
deleted file mode 100644
index 57731a9..0000000
--- a/ncurses-5.3/ncurses/base/lib_addstr.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_addstr.c
-*
-** The routines waddnstr(), waddchnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#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;
- CONV_DATA;
-
- 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)));
- code = OK;
- if (n < 0)
- n = (int) strlen(astr);
-
- 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));
- NEXT_CHAR(str, ch, n);
- if (_nc_waddch_nosync(win, ch) == ERR) {
- code = ERR;
- break;
- }
- }
- _nc_synchook(win);
- }
- TR(TRACE_VIRTPUT, ("waddnstr returns %d", code));
- returnCode(code);
-}
-
-NCURSES_EXPORT(int)
-waddchnstr(WINDOW *win, const chtype * astr, int n)
-{
- NCURSES_SIZE_T y = win->_cury;
- NCURSES_SIZE_T x = win->_curx;
- int code = OK;
- struct ldat *line;
-
- T((T_CALLED("waddchnstr(%p,%p,%d)"), win, astr, n));
-
- if (!win)
- returnCode(ERR);
-
- if (n < 0) {
- const chtype *str;
- n = 0;
- for (str = (const chtype *) astr; *str != 0; str++)
- n++;
- }
- if (n > win->_maxx - x + 1)
- n = win->_maxx - x + 1;
- if (n == 0)
- 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));
-#endif
- 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
diff --git a/ncurses-5.3/ncurses/base/lib_beep.c b/ncurses-5.3/ncurses/base/lib_beep.c
deleted file mode 100644
index 40ded12..0000000
--- a/ncurses-5.3/ncurses/base/lib_beep.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * beep.c
- *
- * The routine beep().
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* beep, flash */
-
-MODULE_ID("$Id$")
-
-/*
- * beep()
- *
- * Sound the current terminal's audible bell if it has one. If not,
- * flash the screen if possible.
- *
- */
-
-NCURSES_EXPORT(int)
-beep(void)
-{
- int res = ERR;
-
- 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();
- }
-
- returnCode(res);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_bkgd.c b/ncurses-5.3/ncurses/base/lib_bkgd.c
deleted file mode 100644
index 0a0e3d6..0000000
--- a/ncurses-5.3/ncurses/base/lib_bkgd.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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, _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));
-}
-
-/*
- * 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;
- 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;
- }
- returnCode(code);
-}
-
-NCURSES_EXPORT(int)
-wbkgd(WINDOW *win, chtype ch)
-{
- NCURSES_CH_T wch;
- SetChar2(wch, ch);
- return wbkgrnd(win, CHREF(wch));
-}
diff --git a/ncurses-5.3/ncurses/base/lib_box.c b/ncurses-5.3/ncurses/base/lib_box.c
deleted file mode 100644
index 6ac360b..0000000
--- a/ncurses-5.3/ncurses/base/lib_box.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_box.c
-**
-** The routine wborder().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#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,
- 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;
- chtype wls, wrs, wts, wbs, wtl, wtr, wbl, wbr;
-
- 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)));
-
- if (!win)
- returnCode(ERR);
-
- 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 %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++) {
- 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++) {
- SetChar2(win->_line[i].text[0], wls);
- SetChar2(win->_line[i].text[endx], wrs);
- win->_line[i].firstchar = 0;
- win->_line[i].lastchar = endx;
- }
- 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_chgat.c b/ncurses-5.3/ncurses/base/lib_chgat.c
deleted file mode 100644
index 76f2b9a..0000000
--- a/ncurses-5.3/ncurses/base/lib_chgat.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_chgat.c
-**
-** The routine wchgat().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wchgat
-(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED)
-{
- int i;
-
- T((T_CALLED("wchgat(%p,%d,%s,%d)"), win, n, _traceattr(attr), color));
-
- if (win) {
- toggle_attr_on(attr, COLOR_PAIR(color));
-
- 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_clear.c b/ncurses-5.3/ncurses/base/lib_clear.c
deleted file mode 100644
index 10d31f4..0000000
--- a/ncurses-5.3/ncurses/base/lib_clear.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_clear.c
-**
-** The routine wclear().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wclear(WINDOW *win)
-{
- int code = ERR;
-
- T((T_CALLED("wclear(%p)"), win));
-
- if ((code = werase(win)) != ERR)
- win->_clear = TRUE;
-
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_clearok.c b/ncurses-5.3/ncurses/base/lib_clearok.c
deleted file mode 100644
index 0eb9f01..0000000
--- a/ncurses-5.3/ncurses/base/lib_clearok.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_clearok.c
-**
-** The routine clearok.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-clearok(WINDOW *win, bool flag)
-{
- T((T_CALLED("clearok(%p,%d)"), win, flag));
-
- if (win) {
- win->_clear = flag;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_clrbot.c b/ncurses-5.3/ncurses/base/lib_clrbot.c
deleted file mode 100644
index 8df77b5..0000000
--- a/ncurses-5.3/ncurses/base/lib_clrbot.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_clrbot.c
-**
-** The routine wclrtobot().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wclrtobot(WINDOW *win)
-{
- int code = ERR;
-
- T((T_CALLED("wclrtobot(%p)"), win));
-
- if (win) {
- NCURSES_SIZE_T y;
- NCURSES_SIZE_T startx = win->_curx;
- NCURSES_CH_T blank = win->_nc_bkgd;
-
- T(("clearing from y = %d to y = %d with maxx = %d",
- win->_cury, win->_maxy, win->_maxx));
-
- for (y = win->_cury; y <= win->_maxy; y++) {
- struct ldat *line = &(win->_line[y]);
- NCURSES_CH_T *ptr = &(line->text[startx]);
- NCURSES_CH_T *end = &(line->text[win->_maxx]);
-
- CHANGED_TO_EOL(line, startx, win->_maxx);
-
- while (ptr <= end)
- *ptr++ = blank;
-
- startx = 0;
- }
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_clreol.c b/ncurses-5.3/ncurses/base/lib_clreol.c
deleted file mode 100644
index b39d24f..0000000
--- a/ncurses-5.3/ncurses/base/lib_clreol.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_clreol.c
-**
-** The routine wclrtoeol().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wclrtoeol(WINDOW *win)
-{
- int code = ERR;
-
- T((T_CALLED("wclrtoeol(%p)"), win));
-
- if (win) {
- NCURSES_CH_T blank;
- NCURSES_CH_T *ptr, *end;
- struct ldat *line;
- NCURSES_SIZE_T y = win->_cury;
- NCURSES_SIZE_T x = win->_curx;
-
- /*
- * 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) != 0
- && y < win->_maxy) {
- win->_flags &= ~_WRAPPED;
- }
-
- /*
- * There's no point in clearing if we're not on a legal
- * position, either.
- */
- if ((win->_flags & _WRAPPED) != 0
- || y > win->_maxy
- || x > win->_maxx)
- returnCode(ERR);
-
- blank = win->_nc_bkgd;
- line = &win->_line[y];
- CHANGED_TO_EOL(line, x, win->_maxx);
-
- ptr = &(line->text[x]);
- end = &(line->text[win->_maxx]);
-
- while (ptr <= end)
- *ptr++ = blank;
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_color.c b/ncurses-5.3/ncurses/base/lib_color.c
deleted file mode 100644
index f6531ed..0000000
--- a/ncurses-5.3/ncurses/base/lib_color.c
+++ /dev/null
@@ -1,531 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* lib_color.c
- *
- * Handles color emulation of SYS V curses
- */
-
-#include <curses.priv.h>
-
-#include <term.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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.
- */
-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
- * to about 2/3 of the maximum, leaving full-range for bold/bright colors.
- */
-#define RGB_ON 680
-#define RGB_OFF 0
-/* *INDENT-OFF* */
-static const color_t cga_palette[] =
-{
- /* R G B */
- 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[] =
-{
- /* 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* */
-
-#if NCURSES_EXT_FUNCS
-/*
- * These are called from _nc_do_color(), which in turn is called from
- * vidattr - so we have to assume that SP may be null.
- */
-static int
-default_fg(void)
-{
- return (SP != 0) ? SP->_default_fg : COLOR_WHITE;
-}
-
-static int
-default_bg(void)
-{
- return SP != 0 ? SP->_default_bg : COLOR_BLACK;
-}
-#else
-#define default_fg() COLOR_WHITE
-#define default_bg() COLOR_BLACK
-#endif
-
-/*
- * SVr4 curses is known to interchange color codes (1,4) and (3,6), possibly
- * to maintain compatibility with a pre-ANSI scheme. The same scheme is
- * also used in the FreeBSD syscons.
- */
-static int
-toggled_colors(int c)
-{
- if (c < 16) {
- static const int table[] =
- {0, 4, 2, 6, 1, 5, 3, 7,
- 8, 12, 10, 14, 9, 13, 11, 15};
- c = table[c];
- }
- return c;
-}
-
-static void
-set_background_color(int bg, int (*outc) (int))
-{
- if (set_a_background) {
- TPUTS_TRACE("set_a_background");
- tputs(tparm(set_a_background, bg), 1, outc);
- } else {
- TPUTS_TRACE("set_background");
- tputs(tparm(set_background, toggled_colors(bg)), 1, outc);
- }
-}
-
-static void
-set_foreground_color(int fg, int (*outc) (int))
-{
- if (set_a_foreground) {
- TPUTS_TRACE("set_a_foreground");
- tputs(tparm(set_a_foreground, fg), 1, outc);
- } else {
- TPUTS_TRACE("set_foreground");
- tputs(tparm(set_foreground, toggled_colors(fg)), 1, outc);
- }
-}
-
-static void
-init_color_table(void)
-{
- const color_t *tp;
- int n;
-
- tp = (hue_lightness_saturation) ? hls_palette : cga_palette;
- for (n = 0; n < COLORS; n++) {
- if (n < 8) {
- SP->_color_table[n] = tp[n];
- } else {
- SP->_color_table[n] = tp[n % 8];
- if (hue_lightness_saturation) {
- SP->_color_table[n].green = 100;
- } else {
- if (SP->_color_table[n].red)
- SP->_color_table[n].red = 1000;
- if (SP->_color_table[n].green)
- SP->_color_table[n].green = 1000;
- if (SP->_color_table[n].blue)
- SP->_color_table[n].blue = 1000;
- }
- }
- }
-}
-
-/*
- * 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);
- }
-
- 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);
-}
-
-/* This function was originally written by Daniel Weaver <danw@znyx.com> */
-static void
-rgb2hls(short r, short g, short b, short *h, short *l, short *s)
-/* convert RGB to HLS system */
-{
- short min, max, t;
-
- if ((min = g < r ? g : r) > b)
- min = b;
- if ((max = g > r ? g : r) < b)
- max = b;
-
- /* calculate lightness */
- *l = (min + max) / 20;
-
- if (min == max) { /* black, white and all shades of gray */
- *h = 0;
- *s = 0;
- return;
- }
-
- /* calculate saturation */
- if (*l < 50)
- *s = ((max - min) * 100) / (max + min);
- else
- *s = ((max - min) * 100) / (2000 - max - min);
-
- /* calculate hue */
- if (r == max)
- t = 120 + ((g - b) * 60) / (max - min);
- else if (g == max)
- t = 240 + ((b - r) * 60) / (max - min);
- else
- t = 360 + ((r - g) * 60) / (max - min);
-
- *h = t % 360;
-}
-
-/*
- * Extension (1997/1/18) - Allow negative f/b values to set default color
- * values.
- */
-NCURSES_EXPORT(int)
-init_pair(short pair, short f, short b)
-{
- unsigned result;
-
- T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b));
-
- if ((pair < 0) || (pair >= COLOR_PAIRS))
- returnCode(ERR);
-#if NCURSES_EXT_FUNCS
- if (SP->_default_color) {
- if (f < 0)
- f = C_MASK;
- if (b < 0)
- b = C_MASK;
- if (f >= COLORS && f != C_MASK)
- returnCode(ERR);
- if (b >= COLORS && b != C_MASK)
- returnCode(ERR);
- } else
-#endif
- {
- if ((f < 0) || (f >= COLORS)
- || (b < 0) || (b >= COLORS)
- || (pair < 1))
- returnCode(ERR);
- }
-
- /*
- * When a pair's content is changed, replace its colors (if pair was
- * initialized before a screen update is performed replacing original
- * pair colors with the new ones).
- */
- result = PAIR_OF(f, b);
- if (SP->_color_pairs[pair] != 0
- && SP->_color_pairs[pair] != result) {
- int y, x;
- attr_t z = COLOR_PAIR(pair);
-
- for (y = 0; y <= curscr->_maxy; y++) {
- struct ldat *ptr = &(curscr->_line[y]);
- bool changed = FALSE;
- for (x = 0; x <= curscr->_maxx; x++) {
- if ((AttrOf(ptr->text[x]) & A_COLOR) == z) {
- /* Set the old cell to zero to ensure it will be
- updated on the next doupdate() */
- SetChar(ptr->text[x], 0, 0);
- CHANGED_CELL(ptr, x);
- changed = TRUE;
- }
- }
- if (changed)
- _nc_make_oldhash(y);
- }
- }
- SP->_color_pairs[pair] = result;
- if ((int) (SP->_current_attr & A_COLOR) == COLOR_PAIR(pair))
- SP->_current_attr |= A_COLOR; /* force attribute update */
-
- if (initialize_pair) {
- 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));
-
- 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));
- }
- }
-
- returnCode(OK);
-}
-
-#define okRGB(n) ((n) >= 0 && (n) < 1000)
-
-NCURSES_EXPORT(int)
-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));
-
- if (initialize_color != NULL
- && (color >= 0 && color < COLORS)
- && (okRGB(r) && okRGB(g) && okRGB(b))) {
-
- 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;
- }
-
- TPUTS_TRACE("initialize_color");
- putp(tparm(initialize_color, color, r, g, b));
- SP->_color_defs = max(color + 1, SP->_color_defs);
- result = OK;
- }
- returnCode(result);
-}
-
-NCURSES_EXPORT(bool)
-can_change_color(void)
-{
- T((T_CALLED("can_change_color()")));
- returnCode((can_change != 0) ? TRUE : FALSE);
-}
-
-NCURSES_EXPORT(bool)
-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);
-}
-
-NCURSES_EXPORT(int)
-color_content(short color, short *r, short *g, short *b)
-{
- T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
- if (color < 0 || color >= COLORS)
- returnCode(ERR);
-
- if (r)
- *r = SP->_color_table[color].red;
- if (g)
- *g = SP->_color_table[color].green;
- if (b)
- *b = SP->_color_table[color].blue;
- T(("...color_content(%d,%d,%d,%d)", color, *r, *g, *b));
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-pair_content(short pair, short *f, short *b)
-{
- T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b));
-
- if ((pair < 0) || (pair >= COLOR_PAIRS))
- returnCode(ERR);
- if (f)
- *f = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK);
- if (b)
- *b = (SP->_color_pairs[pair] & C_MASK);
-
- T(("...pair_content(%d,%d,%d)", pair, *f, *b));
- returnCode(OK);
-}
-
-NCURSES_EXPORT(void)
-_nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
-{
- NCURSES_COLOR_T fg = C_MASK, bg = C_MASK;
- NCURSES_COLOR_T old_fg, old_bg;
-
- if (pair < 0 || pair >= COLOR_PAIRS) {
- return;
- } else if (pair != 0) {
- if (set_color_pair) {
- TPUTS_TRACE("set_color_pair");
- tputs(tparm(set_color_pair, pair), 1, outc);
- return;
- } else if (SP != 0) {
- pair_content(pair, &fg, &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
- /*
- * A minor optimization - but extension. If "AX" is specified in
- * the terminal description, treat it as screen's indicator of ECMA
- * SGR 39 and SGR 49, and assume the two sequences are independent.
- */
- if (SP->_has_sgr_39_49 && old_bg == C_MASK && old_fg != C_MASK) {
- tputs("\033[39m", 1, outc);
- } else if (SP->_has_sgr_39_49 && old_fg == C_MASK && old_bg != C_MASK) {
- tputs("\033[49m", 1, outc);
- } else
-#endif
- reset_color_pair();
- }
- } else {
- reset_color_pair();
- if (old_pair < 0)
- return;
- }
-
-#if NCURSES_EXT_FUNCS
- if (fg == C_MASK)
- fg = default_fg();
- if (bg == C_MASK)
- bg = default_bg();
-#endif
-
- if (reverse) {
- NCURSES_COLOR_T xx = fg;
- fg = bg;
- bg = xx;
- }
-
- TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair,
- fg, bg));
-
- if (fg != C_MASK) {
- set_foreground_color(fg, outc);
- }
- if (bg != C_MASK) {
- set_background_color(bg, outc);
- }
-}
diff --git a/ncurses-5.3/ncurses/base/lib_colorset.c b/ncurses-5.3/ncurses/base/lib_colorset.c
deleted file mode 100644
index 855a985..0000000
--- a/ncurses-5.3/ncurses/base/lib_colorset.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1998 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/*
-** lib_colorset.c
-**
-** The routine wcolor_set().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-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
- && !opts
- && (color_pair_number >= 0)
- && (color_pair_number < COLOR_PAIRS)) {
- TR(TRACE_ATTRS, ("... current %ld", (long) PAIR_NUMBER(win->_attrs)));
- toggle_attr_on(win->_attrs, COLOR_PAIR(color_pair_number));
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_delch.c b/ncurses-5.3/ncurses/base/lib_delch.c
deleted file mode 100644
index 814fdd5..0000000
--- a/ncurses-5.3/ncurses/base/lib_delch.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_delch.c
-**
-** The routine wdelch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wdelch(WINDOW *win)
-{
- int code = ERR;
-
- T((T_CALLED("wdelch(%p)"), win));
-
- 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++;
-
- *temp1 = blank;
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_delwin.c b/ncurses-5.3/ncurses/base/lib_delwin.c
deleted file mode 100644
index 087f3d3..0000000
--- a/ncurses-5.3/ncurses/base/lib_delwin.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_delwin.c
-**
-** The routine delwin().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-static bool
-cannot_delete(WINDOW *win)
-{
- 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 result;
-}
-
-NCURSES_EXPORT(int)
-delwin(WINDOW *win)
-{
- T((T_CALLED("delwin(%p)"), win));
-
- if (win == 0
- || cannot_delete(win))
- returnCode(ERR);
-
- if (win->_flags & _SUBWIN)
- touchwin(win->_parent);
- else if (curscr != 0)
- touchwin(curscr);
-
- returnCode(_nc_freewin(win));
-}
diff --git a/ncurses-5.3/ncurses/base/lib_dft_fgbg.c b/ncurses-5.3/ncurses/base/lib_dft_fgbg.c
deleted file mode 100644
index 7b4c187..0000000
--- a/ncurses-5.3/ncurses/base/lib_dft_fgbg.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1997,1999 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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.
- */
-NCURSES_EXPORT(int)
-use_default_colors(void)
-{
- T((T_CALLED("use_default_colors()")));
- returnCode(assume_default_colors(C_MASK, C_MASK));
-}
-
-/*
- * Modify the behavior of color-pair 0 so that the library assumes that it
- * is something specific, possibly not white on black.
- */
-NCURSES_EXPORT(int)
-assume_default_colors(int fg, int bg)
-{
- T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg));
-
- if (!orig_pair && !orig_colors)
- returnCode(ERR);
-
- if (initialize_pair) /* don't know how to handle this */
- returnCode(ERR);
-
- SP->_default_color = (fg < 0 || fg == C_MASK) || (bg < 0 || bg == C_MASK);
- SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
- SP->_default_fg = (fg >= 0) ? (fg & C_MASK) : C_MASK;
- SP->_default_bg = (bg >= 0) ? (bg & C_MASK) : C_MASK;
- if (SP->_color_pairs != 0)
- init_pair(0, fg, bg);
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_echo.c b/ncurses-5.3/ncurses/base/lib_echo.c
deleted file mode 100644
index d971089..0000000
--- a/ncurses-5.3/ncurses/base/lib_echo.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * echo.c
- *
- * Routines:
- * echo()
- * noecho()
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-echo(void)
-{
- T((T_CALLED("echo()")));
- SP->_echo = TRUE;
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-noecho(void)
-{
- T((T_CALLED("noecho()")));
- SP->_echo = FALSE;
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_endwin.c b/ncurses-5.3/ncurses/base/lib_endwin.c
deleted file mode 100644
index 47e7d68..0000000
--- a/ncurses-5.3/ncurses/base/lib_endwin.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_endwin.c
-**
-** The routine endwin().
-**
-*/
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-endwin(void)
-{
- 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());
- }
-
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_erase.c b/ncurses-5.3/ncurses/base/lib_erase.c
deleted file mode 100644
index 28f32bf..0000000
--- a/ncurses-5.3/ncurses/base/lib_erase.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_erase.c
-**
-** The routine werase().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-werase(WINDOW *win)
-{
- int code = ERR;
- int y;
- NCURSES_CH_T blank;
- NCURSES_CH_T *sp, *end, *start;
-
- T((T_CALLED("werase(%p)"), win));
-
- if (win) {
- blank = win->_nc_bkgd;
- for (y = 0; y <= win->_maxy; y++) {
- start = win->_line[y].text;
- end = &start[win->_maxx];
-
- for (sp = start; sp <= end; sp++)
- *sp = blank;
-
- 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_flash.c b/ncurses-5.3/ncurses/base/lib_flash.c
deleted file mode 100644
index 1269b56..0000000
--- a/ncurses-5.3/ncurses/base/lib_flash.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * flash.c
- *
- * The routine flash().
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* beep, flash */
-
-MODULE_ID("$Id$")
-
-/*
- * flash()
- *
- * Flash the current terminal's screen if possible. If not,
- * sound the audible bell if one exists.
- *
- */
-
-NCURSES_EXPORT(int)
-flash(void)
-{
- int res = ERR;
-
- 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();
- }
-
- returnCode(res);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_freeall.c b/ncurses-5.3/ncurses/base/lib_freeall.c
deleted file mode 100644
index 90d53a2..0000000
--- a/ncurses-5.3/ncurses/base/lib_freeall.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term_entry.h>
-
-#if HAVE_NC_FREEALL
-
-#if HAVE_LIBDBMALLOC
-extern int malloc_errfd; /* FIXME */
-#endif
-
-MODULE_ID("$Id$")
-
-/*
- * Free all ncurses data. This is used for testing only (there's no practical
- * use for it as an extension).
- */
-NCURSES_EXPORT(void)
-_nc_freeall(void)
-{
- WINDOWLIST *p, *q;
- char *s;
-
-#if NO_LEAKS
- _nc_free_tparm();
-#endif
- if (SP != 0) {
- while (_nc_windows != 0) {
- /* Delete only windows that're not a parent */
- for (p = _nc_windows; p != 0; p = p->next) {
- bool found = FALSE;
-
- for (q = _nc_windows; q != 0; q = q->next) {
- if ((p != q)
- && (q->win._flags & _SUBWIN)
- && (&(p->win) == q->win._parent)) {
- found = TRUE;
- break;
- }
- }
-
- if (!found) {
- delwin(&(p->win));
- break;
- }
- }
- }
- delscreen(SP);
- }
-
- 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
-#if HAVE_LIBDBMALLOC
- malloc_dump(malloc_errfd);
-#elif HAVE_LIBDMALLOC
-#elif HAVE_PURIFY
- purify_all_inuse();
-#endif
-}
-
-NCURSES_EXPORT(void)
-_nc_free_and_exit(int code)
-{
- _nc_freeall();
- exit(code);
-}
-
-#else
-NCURSES_EXPORT(void)
-_nc_freeall(void)
-{
-}
-#endif
diff --git a/ncurses-5.3/ncurses/base/lib_getch.c b/ncurses-5.3/ncurses/base/lib_getch.c
deleted file mode 100644
index 45502ab..0000000
--- a/ncurses-5.3/ncurses/base/lib_getch.c
+++ /dev/null
@@ -1,537 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_getch.c
-**
-** The routine getch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#include <fifo_defs.h>
-
-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)
-{
- int ch = SP->_fifo[peek];
- TR(TRACE_IEVENT, ("peeking at %d", peek));
-
- p_inc();
- return ch;
-}
-
-static inline int
-fifo_pull(void)
-{
- int ch;
- ch = SP->_fifo[head];
- TR(TRACE_IEVENT, ("pulling %s from %d", _tracechar(ch), head));
-
- if (peek == head) {
- h_inc();
- peek = head;
- } else
- h_inc();
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT)
- _nc_fifo_dump();
-#endif
- return ch;
-}
-
-static inline int
-fifo_push(EVENTLIST_0th(_nc_eventlist * evl))
-{
- int n;
- int ch = 0;
- int mask;
-
- (void) mask;
- if (tail == -1)
- return ERR;
-
-#ifdef HIDE_EINTR
- again:
- 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 ((SP->_mouse_fd >= 0) && (mask & 2)) {
- SP->_mouse_event(SP);
- ch = KEY_MOUSE;
- n = 1;
- } else
-#endif
- { /* Can block... */
- unsigned char c2 = 0;
- n = read(SP->_ifd, &c2, 1);
- ch = c2;
- }
-
-#ifdef HIDE_EINTR
- /*
- * Under System V curses with non-restarting signals, getch() returns
- * with value ERR when a handled signal keeps it from completing.
- * If signals restart system calls, OTOH, the signal is invisible
- * except to its handler.
- *
- * We don't want this difference to show. This piece of code
- * tries to make it look like we always have restarting signals.
- */
- if (n <= 0 && errno == EINTR)
- goto again;
-#endif
-
- if ((n == -1) || (n == 0)) {
- TR(TRACE_IEVENT, ("read(%d,&ch,1)=%d, errno=%d", SP->_ifd, n, errno));
- ch = ERR;
- }
- TR(TRACE_IEVENT, ("read %d characters", n));
-
- SP->_fifo[tail] = ch;
- SP->_fifohold = 0;
- if (head == -1)
- head = peek = tail;
- t_inc();
- TR(TRACE_IEVENT, ("pushed %s at %d", _tracechar(ch), tail));
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT)
- _nc_fifo_dump();
-#endif
- return ch;
-}
-
-static inline void
-fifo_clear(void)
-{
- memset(SP->_fifo, 0, sizeof(SP->_fifo));
- head = -1;
- tail = peek = 0;
-}
-
-static int kgetch(EVENTLIST_0th(_nc_eventlist * evl));
-
-#define wgetch_should_refresh(win) (\
- (is_wintouched(win) || (win->_flags & _HASMOVED)) \
- && !(win->_flags & _ISPAD))
-
-NCURSES_EXPORT(int)
-_nc_wgetch(WINDOW *win,
- unsigned long *result,
- int use_meta
- EVENTLIST_2nd(_nc_eventlist * evl))
-{
- int ch;
-#ifdef NCURSES_WGETCH_EVENTS
- long event_delay = -1;
-#endif
-
- T((T_CALLED("_nc_wgetch(%p)"), win));
-
- *result = 0;
- if (!win)
- returnCode(ERR);
-
- if (cooked_key_in_fifo()) {
- if (wgetch_should_refresh(win))
- wrefresh(win);
-
- *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,
- * stuff its contents in the FIFO queue, and pop off
- * the first character to return it.
- */
- if (head == -1 && !SP->_raw && !SP->_cbreak) {
- char buf[MAXCOLUMNS], *sp;
- int rc;
-
- TR(TRACE_IEVENT, ("filling queue in cooked mode"));
-
- rc = wgetnstr(win, buf, MAXCOLUMNS);
-
- /* ungetch in reverse order */
-#ifdef NCURSES_WGETCH_EVENTS
- if (rc != KEY_EVENT)
-#endif
- ungetch('\n');
- for (sp = buf + strlen(buf); sp > buf; sp--)
- ungetch(sp[-1]);
-
-#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 (!win->_notimeout && (win->_delay >= 0 || SP->_cbreak > 1)) {
- int delay;
-
- TR(TRACE_IEVENT, ("timed delay in wgetch()"));
- if (SP->_cbreak > 1)
- delay = (SP->_cbreak - 1) * 100;
- 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));
-
- 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);
- }
- /* else go on to read data available */
- }
-
- if (win->_use_keypad) {
- /*
- * This is tricky. We only want to get special-key
- * events one at a time. But we want to accumulate
- * mouse events until either (a) the mouse logic tells
- * us it's picked up a complete gesture, or (b)
- * there's a detectable time lapse after one.
- *
- * Note: if the mouse code starts failing to compose
- * press/release events into clicks, you should probably
- * increase the wait with mouseinterval().
- */
- int runcount = 0;
- int rc;
-
- do {
- ch = kgetch(EVENTLIST_1st(evl));
- if (ch == KEY_MOUSE) {
- ++runcount;
- if (SP->_mouse_inline(SP))
- break;
- }
- if (SP->_maxclick < 0)
- break;
- } while
- (ch == KEY_MOUSE
- && (((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);
- 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)
- fifo_push(EVENTLIST_1st(evl));
- ch = fifo_pull();
- }
-
- if (ch == ERR) {
-#if USE_SIZECHANGE
- if (SP->_sig_winch) {
- _nc_update_screensize();
- /* resizeterm can push KEY_RESIZE */
- if (cooked_key_in_fifo()) {
- *result = fifo_pull();
- returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK);
- }
- }
-#endif
- returnCode(ERR);
- }
-
- /*
- * If echo() is in effect, display the printable version of the
- * key on the screen. Carriage return and backspace are treated
- * specially by Solaris curses:
- *
- * If carriage return is defined as a function key in the
- * terminfo, e.g., kent, then Solaris may return either ^J (or ^M
- * if nonl() is set) or KEY_ENTER depending on the echo() mode.
- * We echo before translating carriage return based on nonl(),
- * since the visual result simply moves the cursor to column 0.
- *
- * Backspace is a different matter. Solaris curses does not
- * translate it to KEY_BACKSPACE if kbs=^H. This does not depend
- * on the stty modes, but appears to be a hardcoded special case.
- * This is a difference from ncurses, which uses the terminfo entry.
- * However, we provide the same visual result as Solaris, moving the
- * cursor to the left.
- */
- if (SP->_echo && !(win->_flags & _ISPAD)) {
- chtype backup = (ch == KEY_BACKSPACE) ? '\b' : ch;
- if (backup < KEY_MIN)
- wechochar(win, backup);
- }
-
- /*
- * Simulate ICRNL mode
- */
- if ((ch == '\r') && SP->_nl)
- ch = '\n';
-
- /* Strip 8th-bit if so desired. We do this only for characters that
- * are in the range 128-255, to provide compatibility with terminals
- * that display only 7-bit characters. Note that 'ch' may be a
- * function key at this point, so we mustn't strip _those_.
- */
- if (!use_meta)
- if ((ch < KEY_MIN) && (ch & 0x80))
- ch &= 0x7f;
-
- 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;
-
- 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);
-}
-
-/*
-** int
-** kgetch()
-**
-** Get an input character, but take care of keypad sequences, returning
-** an appropriate code when one matches the input. After each character
-** is received, set an alarm call based on ESCDELAY. If no more of the
-** sequence is received by the time the alarm goes off, pass through
-** the sequence gotten so far.
-**
-** This function must be called when there are no cooked keys in queue.
-** (that is head==-1 || peek==head)
-**
-*/
-
-static int
-kgetch(EVENTLIST_0th(_nc_eventlist * evl))
-{
- struct tries *ptr;
- int ch = 0;
- int timeleft = ESCDELAY;
-
- TR(TRACE_IEVENT, ("kgetch() called"));
-
- ptr = SP->_keytry;
-
- for (;;) {
- 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;
- }
-#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) {
- /* 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;
- }
-
- TR(TRACE_IEVENT, ("ch: %s", _tracechar((unsigned char) ch)));
- while ((ptr != NULL) && (ptr->ch != (unsigned char) ch))
- ptr = ptr->sibling;
-
- if (ptr == NULL) {
- TR(TRACE_IEVENT, ("ptr is null"));
- 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 (peek == tail)
- fifo_clear();
- else
- head = peek;
- return (ptr->value);
- }
-
- ptr = ptr->child;
-
- if (!raw_key_in_fifo()) {
- int rc;
-
- TR(TRACE_IEVENT, ("waiting for rest of sequence"));
- 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;
- }
- }
- }
- ch = fifo_pull();
- peek = head;
- return ch;
-}
diff --git a/ncurses-5.3/ncurses/base/lib_getstr.c b/ncurses-5.3/ncurses/base/lib_getstr.c
deleted file mode 100644
index 9b7ea9a..0000000
--- a/ncurses-5.3/ncurses/base/lib_getstr.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/****************************************************************************
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_getstr.c
-**
-** The routine wgetstr().
-**
-*/
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-/*
- * 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)
-{
- 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;
-}
-
-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;
-
- T((T_CALLED("wgetnstr(%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();
-
- oldstr = str;
- getyx(win, y, x);
-
- if (is_wintouched(win) || (win->_flags & _HASMOVED))
- 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);
-}
-
-#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
diff --git a/ncurses-5.3/ncurses/base/lib_hline.c b/ncurses-5.3/ncurses/base/lib_hline.c
deleted file mode 100644
index 23c6f1f..0000000
--- a/ncurses-5.3/ncurses/base/lib_hline.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_hline.c
-**
-** The routine whline().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-whline(WINDOW *win, chtype ch, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T start;
- NCURSES_SIZE_T end;
-
- T((T_CALLED("whline(%p,%s,%d)"), win, _tracechtype(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)
- SetChar(wch, ChCharOf(ACS_HLINE), ChAttrOf(ACS_HLINE));
- else
- SetChar(wch, ChCharOf(ch), ChAttrOf(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-5.3/ncurses/base/lib_immedok.c b/ncurses-5.3/ncurses/base/lib_immedok.c
deleted file mode 100644
index e1fb0aa..0000000
--- a/ncurses-5.3/ncurses/base/lib_immedok.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_immedok.c
-**
-** The routine immedok.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(void)
-immedok(WINDOW *win, bool flag)
-{
- T((T_CALLED("immedok(%p,%d)"), win, flag));
-
- if (win)
- win->_immed = flag;
-
- returnVoid;
-}
diff --git a/ncurses-5.3/ncurses/base/lib_inchstr.c b/ncurses-5.3/ncurses/base/lib_inchstr.c
deleted file mode 100644
index 69c38ee..0000000
--- a/ncurses-5.3/ncurses/base/lib_inchstr.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_inchstr.c
-**
-** The routine winchnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-winchnstr(WINDOW *win, chtype * str, int n)
-{
- int i = 0;
-
- T((T_CALLED("winchnstr(%p,%p,%d)"), win, str, n));
-
- if (!str)
- returnCode(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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_initscr.c b/ncurses-5.3/ncurses/base/lib_initscr.c
deleted file mode 100644
index acb182d..0000000
--- a/ncurses-5.3/ncurses/base/lib_initscr.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_initscr.c
-**
-** The routines initscr(), and termname().
-**
-*/
-
-#include <curses.priv.h>
-#include <tic.h> /* for MAX_ALIAS */
-
-#if HAVE_SYS_TERMIO_H
-#include <sys/termio.h> /* needed for ISC */
-#endif
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(WINDOW *)
-initscr(void)
-{
- static bool initialized = FALSE;
- NCURSES_CONST char *name;
- int value;
-
- 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";
-#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);
- }
-
- /* allow user to set maximum escape delay from the environment */
- if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
- ESCDELAY = value;
- }
-
- /* def_shell_mode - done in newterm/_nc_setupscreen */
- def_prog_mode();
- }
- returnWin(stdscr);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_insch.c b/ncurses-5.3/ncurses/base/lib_insch.c
deleted file mode 100644
index 8c75729..0000000
--- a/ncurses-5.3/ncurses/base/lib_insch.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_insch.c
-**
-** The routine winsch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-winsch(WINDOW *win, chtype c)
-{
- int code = ERR;
-
- T((T_CALLED("winsch(%p, %s)"), win, _tracechtype(c)));
-
- if (win) {
- struct ldat *line = &(win->_line[win->_cury]);
- NCURSES_CH_T *end = &(line->text[win->_curx]);
- NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
- NCURSES_CH_T *temp2 = temp1 - 1;
- NCURSES_CH_T wch;
- SetChar2(wch, c);
-
- 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-5.3/ncurses/base/lib_insdel.c b/ncurses-5.3/ncurses/base/lib_insdel.c
deleted file mode 100644
index 16866b6..0000000
--- a/ncurses-5.3/ncurses/base/lib_insdel.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_insdel.c
-**
-** The routine winsdelln(win, n).
-** positive n insert n lines above current line
-** negative n delete n lines starting from current line
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-winsdelln(WINDOW *win, int n)
-{
- int code = ERR;
-
- T((T_CALLED("winsdel(%p,%d)"), win, n));
-
- if (win) {
- if (n != 0) {
- _nc_scroll_window(win, -n, win->_cury, win->_maxy,
- win->_nc_bkgd);
- _nc_synchook(win);
- }
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_insstr.c b/ncurses-5.3/ncurses/base/lib_insstr.c
deleted file mode 100644
index d87f9a4..0000000
--- a/ncurses-5.3/ncurses/base/lib_insstr.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_insstr.c
-**
-** The routine winsnstr().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-winsnstr(WINDOW *win, const char *s, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T oy;
- NCURSES_SIZE_T ox;
- const unsigned char *str = (const unsigned char *) s;
- const unsigned char *cp;
-
- T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s,n), n));
-
- if (win && 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') {
- 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) '^');
- win->_curx += 2;
- } else {
- winsch(win, (chtype) (*cp));
- win->_curx++;
- }
- if (win->_curx > win->_maxx)
- win->_curx = win->_maxx;
- }
-
- win->_curx = ox;
- win->_cury = oy;
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_instr.c b/ncurses-5.3/ncurses/base/lib_instr.c
deleted file mode 100644
index 3325691..0000000
--- a/ncurses-5.3/ncurses/base/lib_instr.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_instr.c
-**
-** The routine winnstr().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-winnstr(WINDOW *win, char *str, int n)
-{
- int i = 0, row, col;
-
- T((T_CALLED("winnstr(%p,%p,%d)"), win, str, n));
-
- if (!str)
- returnCode(0);
-
- if (win) {
- getyx(win, row, col);
-
- if (n < 0)
- n = win->_maxx - win->_curx + 1;
-
- for (; i < n;) {
- str[i++] = CharOf(win->_line[row].text[col]);
- if (++col > win->_maxx) {
- col = 0;
- if (++row > win->_maxy)
- break;
- }
- }
- }
- str[i] = '\0'; /* SVr4 does not seem to count the null */
- T(("winnstr returns %s", _nc_visbuf(str)));
- returnCode(i);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_isendwin.c b/ncurses-5.3/ncurses/base/lib_isendwin.c
deleted file mode 100644
index 9ccd3cf..0000000
--- a/ncurses-5.3/ncurses/base/lib_isendwin.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_endwin.c
-**
-** The routine endwin().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(bool)
-isendwin(void)
-{
- if (SP == NULL)
- return FALSE;
- return SP->_endwin;
-}
diff --git a/ncurses-5.3/ncurses/base/lib_leaveok.c b/ncurses-5.3/ncurses/base/lib_leaveok.c
deleted file mode 100644
index 135f8f6..0000000
--- a/ncurses-5.3/ncurses/base/lib_leaveok.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_leaveok.c
-**
-** The routine leaveok.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-leaveok(WINDOW *win, bool flag)
-{
- T((T_CALLED("leaveok(%p,%d)"), win, flag));
-
- if (win) {
- win->_leaveok = flag;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_mouse.c b/ncurses-5.3/ncurses/base/lib_mouse.c
deleted file mode 100644
index 9bbab1a..0000000
--- a/ncurses-5.3/ncurses/base/lib_mouse.c
+++ /dev/null
@@ -1,1014 +0,0 @@
-/****************************************************************************
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * This module is intended to encapsulate ncurses's interface to pointing
- * devices.
- *
- * The first method used is xterm's internal mouse-tracking facility.
- * The second is Alessandro Rubini's GPM server.
- *
- * Notes for implementors of new mouse-interface methods:
- *
- * The code is logically split into a lower level that accepts event reports
- * in a device-dependent format and an upper level that parses mouse gestures
- * and filters events. The mediating data structure is a circular queue of
- * MEVENT structures.
- *
- * Functionally, the lower level's job is to pick up primitive events and
- * put them on the circular queue. This can happen in one of two ways:
- * either (a) _nc_mouse_event() detects a series of incoming mouse reports
- * and queues them, or (b) code in lib_getch.c detects the kmous prefix in
- * the keyboard input stream and calls _nc_mouse_inline to queue up a series
- * of adjacent mouse reports.
- *
- * In either case, _nc_mouse_parse() should be called after the series is
- * accepted to parse the digested mouse reports (low-level MEVENTs) into
- * a gesture (a high-level or composite MEVENT).
- *
- * Don't be too shy about adding new event types or modifiers, if you can find
- * room for them in the 32-bit mask. The API is written so that users get
- * feedback on which theoretical event types they won't see when they call
- * mousemask. There's one bit per button (the RESERVED_EVENT bit) not being
- * used yet, and a couple of bits open at the high end.
- */
-
-#ifdef __EMX__
-# include <io.h>
-# define INCL_DOS
-# define INCL_VIO
-# define INCL_KBD
-# define INCL_MOU
-# define INCL_DOSPROCESS
-# include <os2.h> /* Need to include before the others */
-#endif
-
-#include <curses.priv.h>
-#include <term.h>
-
-#if USE_GPM_SUPPORT
-#ifndef LINT /* don't need this for llib-lncurses */
-#undef buttons /* term.h defines this, and gpm uses it! */
-#include <gpm.h>
-#include <linux/keyboard.h> /* defines KG_* macros */
-#endif
-#endif
-
-MODULE_ID("$Id$")
-
-#define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
-
-#define INVALID_EVENT -1
-
-static int mousetype;
-#define M_XTERM -1 /* use xterm's mouse tracking? */
-#define M_NONE 0 /* no mouse device */
-#define M_GPM 1 /* use GPM */
-#define M_QNX 2 /* QNX mouse on console */
-#define M_QNX_TERM 3 /* QNX mouse on pterm/xterm (using qansi-m) */
-
-#if USE_GPM_SUPPORT
-#ifndef LINT
-static Gpm_Connect gpm_connect;
-#endif
-#endif
-
-static mmask_t eventmask; /* current event mask */
-
-static bool _nc_mouse_parse(int);
-static void _nc_mouse_resume(SCREEN *);
-static void _nc_mouse_wrap(SCREEN *);
-
-/* maintain a circular list of mouse events */
-
-/* The definition of the circular list size (EV_MAX), is in curses.priv.h, so
- * wgetch() may refer to the size and call _nc_mouse_parse() before circular
- * list overflow.
- */
-static MEVENT events[EV_MAX]; /* hold the last mouse event seen */
-static MEVENT *eventp = events; /* next free slot in event queue */
-#define NEXT(ep) ((ep == events + EV_MAX - 1) ? events : ep + 1)
-#define PREV(ep) ((ep == events) ? events + EV_MAX - 1 : ep - 1)
-
-#ifdef TRACE
-static void
-_trace_slot(const char *tag)
-{
- MEVENT *ep;
-
- _tracef(tag);
-
- for (ep = events; ep < events + EV_MAX; ep++)
- _tracef("mouse event queue slot %ld = %s",
- (long) (ep - events),
- _tracemouse(ep));
-}
-#endif
-
-#ifdef USE_EMX_MOUSE
-
-# define TOP_ROW 0
-# define LEFT_COL 0
-
-static int mouse_wfd;
-static int mouse_thread;
-static int mouse_activated;
-static char mouse_buttons[] =
-{0, 1, 3, 2};
-
-# define M_FD(sp) sp->_mouse_fd
-
-static void
-write_event(int down, int button, int x, int y)
-{
- char buf[6];
- unsigned long ignore;
-
- strncpy(buf, key_mouse, 3); /* should be "\033[M" */
- buf[3] = ' ' + (button - 1) + (down ? 0 : 0x40);
- buf[4] = ' ' + x - LEFT_COL + 1;
- buf[5] = ' ' + y - TOP_ROW + 1;
- DosWrite(mouse_wfd, buf, 6, &ignore);
-}
-
-static void
-mouse_server(unsigned long ignored GCC_UNUSED)
-{
- unsigned short fWait = MOU_WAIT;
- /* NOPTRRECT mourt = { 0,0,24,79 }; */
- MOUEVENTINFO mouev;
- HMOU hmou;
- unsigned short mask = MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN;
- int nbuttons = 3;
- int oldstate = 0;
- char err[80];
- unsigned long rc;
-
- /* open the handle for the mouse */
- if (MouOpen(NULL, &hmou) == 0) {
- rc = MouSetEventMask(&mask, hmou);
- if (rc) { /* retry with 2 buttons */
- mask = MOUSE_BN1_DOWN | MOUSE_BN2_DOWN;
- rc = MouSetEventMask(&mask, hmou);
- nbuttons = 2;
- }
- if (rc == 0 && MouDrawPtr(hmou) == 0) {
- for (;;) {
- /* sit and wait on the event queue */
- rc = MouReadEventQue(&mouev, &fWait, hmou);
- if (rc) {
- sprintf(err, "Error reading mouse queue, rc=%lu.\r\n", rc);
- break;
- }
- if (!mouse_activated)
- goto finish;
-
- /*
- * OS/2 numbers a 3-button mouse inconsistently from other
- * platforms:
- * 1 = left
- * 2 = right
- * 3 = middle.
- */
- if ((mouev.fs ^ oldstate) & MOUSE_BN1_DOWN)
- write_event(mouev.fs & MOUSE_BN1_DOWN,
- mouse_buttons[1], mouev.col, mouev.row);
- if ((mouev.fs ^ oldstate) & MOUSE_BN2_DOWN)
- write_event(mouev.fs & MOUSE_BN2_DOWN,
- mouse_buttons[3], mouev.col, mouev.row);
- if ((mouev.fs ^ oldstate) & MOUSE_BN3_DOWN)
- write_event(mouev.fs & MOUSE_BN3_DOWN,
- mouse_buttons[2], mouev.col, mouev.row);
-
- finish:
- oldstate = mouev.fs;
- }
- } else
- sprintf(err, "Error setting event mask, buttons=%d, rc=%lu.\r\n",
- nbuttons, rc);
-
- DosWrite(2, err, strlen(err), &rc);
- MouClose(hmou);
- }
- DosExit(EXIT_THREAD, 0L);
-}
-
-static void
-server_state(const int state)
-{ /* It would be nice to implement pointer-off and stop looping... */
- mouse_activated = state;
-}
-
-#endif
-
-static int initialized;
-
-static void
-initialize_mousetype(void)
-{
- static const char *xterm_kmous = "\033[M";
-
- /* Try gpm first, because gpm may be configured to run in xterm */
-#if USE_GPM_SUPPORT
- /* GPM: initialize connection to gpm server */
- gpm_connect.eventMask = GPM_DOWN | GPM_UP;
- gpm_connect.defaultMask = ~(gpm_connect.eventMask | GPM_HARD);
- gpm_connect.minMod = 0;
- gpm_connect.maxMod = ~((1 << KG_SHIFT) | (1 << KG_SHIFTL) | (1 << KG_SHIFTR));
- if (Gpm_Open(&gpm_connect, 0) >= 0) { /* returns the file-descriptor */
- mousetype = M_GPM;
- SP->_mouse_fd = gpm_fd;
- return;
- }
-#endif
-
- /* OS/2 VIO */
-#ifdef USE_EMX_MOUSE
- if (!mouse_thread
- && strstr(cur_term->type.term_names, "xterm") == 0
- && key_mouse) {
- int handles[2];
-
- if (pipe(handles) < 0) {
- perror("mouse pipe error");
- return;
- } else {
- int rc;
-
- if (!mouse_buttons[0]) {
- char *s = getenv("MOUSE_BUTTONS_123");
-
- mouse_buttons[0] = 1;
- if (s && strlen(s) >= 3) {
- mouse_buttons[1] = s[0] - '0';
- mouse_buttons[2] = s[1] - '0';
- mouse_buttons[3] = s[2] - '0';
- }
- }
- mouse_wfd = handles[1];
- M_FD(SP) = handles[0];
- /* Needed? */
- setmode(handles[0], O_BINARY);
- setmode(handles[1], O_BINARY);
- /* Do not use CRT functions, we may single-threaded. */
- rc = DosCreateThread((unsigned long *) &mouse_thread,
- mouse_server, 0, 0, 8192);
- if (rc) {
- printf("mouse thread error %d=%#x", rc, rc);
- return;
- } else {
- mousetype = M_XTERM;
- return;
- }
- }
- }
-#endif
-
- /* we know how to recognize mouse events under "xterm" */
- if (key_mouse != 0) {
- if (!strcmp(key_mouse, xterm_kmous)) {
- mousetype = M_XTERM;
- return;
- }
- } else if (strstr(cur_term->type.term_names, "xterm") != 0) {
- (void) _nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE);
- mousetype = M_XTERM;
- return;
- }
-}
-
-static void
-_nc_mouse_init(void)
-/* initialize the mouse */
-{
- int i;
-
- if (!initialized) {
- initialized = TRUE;
-
- TR(MY_TRACE, ("_nc_mouse_init() called"));
-
- for (i = 0; i < EV_MAX; i++)
- events[i].id = INVALID_EVENT;
-
- initialize_mousetype();
-
- T(("_nc_mouse_init() set mousetype to %d", mousetype));
- }
-}
-
-/*
- * 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)
-{
-#if USE_GPM_SUPPORT
- /* GPM: query server for event, return TRUE if we find one */
- Gpm_Event ev;
-
- if (Gpm_GetEvent(&ev) == 1) {
- eventp->id = 0; /* there's only one mouse... */
-
- eventp->bstate = 0;
- switch (ev.type & 0x0f) {
- case (GPM_DOWN):
- if (ev.buttons & GPM_B_LEFT)
- eventp->bstate |= BUTTON1_PRESSED;
- if (ev.buttons & GPM_B_MIDDLE)
- eventp->bstate |= BUTTON2_PRESSED;
- if (ev.buttons & GPM_B_RIGHT)
- eventp->bstate |= BUTTON3_PRESSED;
- break;
- case (GPM_UP):
- if (ev.buttons & GPM_B_LEFT)
- eventp->bstate |= BUTTON1_RELEASED;
- if (ev.buttons & GPM_B_MIDDLE)
- eventp->bstate |= BUTTON2_RELEASED;
- if (ev.buttons & GPM_B_RIGHT)
- eventp->bstate |= BUTTON3_RELEASED;
- break;
- default:
- break;
- }
-
- eventp->x = ev.x - 1;
- eventp->y = ev.y - 1;
- eventp->z = 0;
-
- /* bump the next-free pointer into the circular list */
- eventp = NEXT(eventp);
- return (TRUE);
- }
-#endif
-
-#ifdef USE_EMX_MOUSE
- {
- char kbuf[3];
-
- int i, res = read(M_FD(sp), &kbuf, 3); /* Eat the prefix */
- if (res != 3)
- printf("Got %d chars instead of 3 for prefix.\n", res);
- for (i = 0; i < res; i++) {
- if (kbuf[i] != key_mouse[i])
- printf("Got char %d instead of %d for prefix.\n",
- (int) kbuf[i], (int) key_mouse[i]);
- }
- return TRUE;
- }
-#endif /* USE_EMX_MOUSE */
-
- /* xterm: never have to query, mouse events are in the keyboard stream */
- return (FALSE); /* no event waiting */
-}
-
-static bool
-_nc_mouse_inline(SCREEN * sp)
-/* mouse report received in the keyboard stream -- parse its info */
-{
- TR(MY_TRACE, ("_nc_mouse_inline() called"));
-
- if (mousetype == M_XTERM) {
- unsigned char kbuf[4];
- MEVENT *prev;
- size_t grabbed;
- int res;
-
- /* This code requires that your xterm entry contain the kmous
- * capability and that it be set to the \E[M documented in the
- * Xterm Control Sequences reference. This is how we
- * arrange for mouse events to be reported via a KEY_MOUSE
- * return value from wgetch(). After this value is received,
- * _nc_mouse_inline() gets called and is immediately
- * responsible for parsing the mouse status information
- * following the prefix.
- *
- * The following quotes from the ctrlseqs.ms document in the
- * X distribution, describing the X mouse tracking feature:
- *
- * Parameters for all mouse tracking escape sequences
- * generated by xterm encode numeric parameters in a single
- * character as value+040. For example, ! is 1.
- *
- * On button press or release, xterm sends ESC [ M CbCxCy.
- * The low two bits of Cb encode button information: 0=MB1
- * pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release. The
- * upper bits encode what modifiers were down when the
- * button was pressed and are added together. 4=Shift,
- * 8=Meta, 16=Control. Cx and Cy are the x and y coordinates
- * of the mouse event. The upper left corner is (1,1).
- *
- * (End quote) By the time we get here, we've eaten the
- * key prefix. FYI, the loop below is necessary because
- * mouse click info isn't guaranteed to present as a
- * single clist item. It always does under Linux but often
- * fails to under Solaris.
- */
- for (grabbed = 0; grabbed < 3; grabbed += res) {
-
- /* For VIO mouse we add extra bit 64 to disambiguate button-up. */
-#ifdef USE_EMX_MOUSE
- res = read(M_FD(sp) >= 0 ? M_FD(sp) : sp->_ifd, &kbuf, 3);
-#else
- res = read(sp->_ifd, kbuf + grabbed, 3 - grabbed);
-#endif
- if (res == -1)
- break;
- }
- kbuf[3] = '\0';
-
- TR(TRACE_IEVENT,
- ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf));
-
- eventp->id = 0; /* there's only one mouse... */
-
- /* processing code goes here */
- eventp->bstate = 0;
- switch (kbuf[0] & 0x3) {
- case 0x0:
- eventp->bstate = BUTTON1_PRESSED;
-#ifdef USE_EMX_MOUSE
- if (kbuf[0] & 0x40)
- eventp->bstate = BUTTON1_RELEASED;
-#endif
- break;
-
- case 0x1:
- eventp->bstate = BUTTON2_PRESSED;
-#ifdef USE_EMX_MOUSE
- if (kbuf[0] & 0x40)
- eventp->bstate = BUTTON2_RELEASED;
-#endif
- break;
-
- case 0x2:
- eventp->bstate = BUTTON3_PRESSED;
-#ifdef USE_EMX_MOUSE
- if (kbuf[0] & 0x40)
- eventp->bstate = BUTTON3_RELEASED;
-#endif
- break;
-
- case 0x3:
- /*
- * Release events aren't reported for individual buttons,
- * just for the button set as a whole...
- */
- eventp->bstate =
- (BUTTON1_RELEASED |
- BUTTON2_RELEASED |
- BUTTON3_RELEASED);
- /*
- * ...however, because there are no kinds of mouse events under
- * xterm that can intervene between press and release, we can
- * deduce which buttons were actually released by looking at the
- * previous event.
- */
- prev = PREV(eventp);
- if (!(prev->bstate & BUTTON1_PRESSED))
- eventp->bstate &= ~BUTTON1_RELEASED;
- if (!(prev->bstate & BUTTON2_PRESSED))
- eventp->bstate &= ~BUTTON2_RELEASED;
- if (!(prev->bstate & BUTTON3_PRESSED))
- eventp->bstate &= ~BUTTON3_RELEASED;
- break;
- }
-
- if (kbuf[0] & 4) {
- eventp->bstate |= BUTTON_SHIFT;
- }
- if (kbuf[0] & 8) {
- eventp->bstate |= BUTTON_ALT;
- }
- if (kbuf[0] & 16) {
- eventp->bstate |= BUTTON_CTRL;
- }
-
- eventp->x = (kbuf[1] - ' ') - 1;
- eventp->y = (kbuf[2] - ' ') - 1;
- TR(MY_TRACE,
- ("_nc_mouse_inline: primitive mouse-event %s has slot %ld",
- _tracemouse(eventp),
- (long) (eventp - events)));
-
- /* bump the next-free pointer into the circular list */
- eventp = NEXT(eventp);
-#if 0 /* this return would be needed for QNX's mods to lib_getch.c */
- return (TRUE);
-#endif
- }
-
- return (FALSE);
-}
-
-static void
-mouse_activate(bool on)
-{
- if (!on && !initialized)
- return;
-
- _nc_mouse_init();
-
- if (on) {
-
- switch (mousetype) {
- case M_XTERM:
-#if NCURSES_EXT_FUNCS
- keyok(KEY_MOUSE, on);
-#endif
- TPUTS_TRACE("xterm mouse initialization");
-#ifdef USE_EMX_MOUSE
- server_state(1);
-#else
- putp("\033[?1000h");
-#endif
- break;
-#if USE_GPM_SUPPORT
- case M_GPM:
- SP->_mouse_fd = gpm_fd;
- break;
-#endif
- }
- /* Make runtime binding to cut down on object size of applications that
- * do not use the mouse (e.g., 'clear').
- */
- SP->_mouse_event = _nc_mouse_event;
- SP->_mouse_inline = _nc_mouse_inline;
- SP->_mouse_parse = _nc_mouse_parse;
- SP->_mouse_resume = _nc_mouse_resume;
- SP->_mouse_wrap = _nc_mouse_wrap;
-
- } else {
-
- switch (mousetype) {
- case M_XTERM:
- TPUTS_TRACE("xterm mouse deinitialization");
-#ifdef USE_EMX_MOUSE
- server_state(0);
-#else
- putp("\033[?1000l");
-#endif
- break;
-#if USE_GPM_SUPPORT
- case M_GPM:
- break;
-#endif
- }
- }
- _nc_flush();
-}
-
-/**************************************************************************
- *
- * Device-independent code
- *
- **************************************************************************/
-
-static bool
-_nc_mouse_parse(int runcount)
-/* parse a run of atomic mouse events into a gesture */
-{
- MEVENT *ep, *runp, *next, *prev = PREV(eventp);
- int n;
- bool merge;
-
- TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount));
-
- /*
- * When we enter this routine, the event list next-free pointer
- * points just past a run of mouse events that we know were separated
- * in time by less than the critical click interval. The job of this
- * routine is to collaps this run into a single higher-level event
- * or gesture.
- *
- * We accomplish this in two passes. The first pass merges press/release
- * pairs into click events. The second merges runs of click events into
- * double or triple-click events.
- *
- * It's possible that the run may not resolve to a single event (for
- * example, if the user quadruple-clicks). If so, leading events
- * in the run are ignored.
- *
- * Note that this routine is independent of the format of the specific
- * format of the pointing-device's reports. We can use it to parse
- * gestures on anything that reports press/release events on a per-
- * button basis, as long as the device-dependent mouse code puts stuff
- * on the queue in MEVENT format.
- */
- if (runcount == 1) {
- TR(MY_TRACE,
- ("_nc_mouse_parse: returning simple mouse event %s at slot %ld",
- _tracemouse(prev),
- (long) (prev - events)));
- return (prev->id >= 0)
- ? ((prev->bstate & eventmask) ? TRUE : FALSE)
- : FALSE;
- }
-
- /* find the start of the run */
- runp = eventp;
- for (n = runcount; n > 0; n--) {
- runp = PREV(runp);
- }
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) {
- _trace_slot("before mouse press/release merge:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - events),
- (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- }
-#endif /* TRACE */
-
- /* first pass; merge press/release pairs */
- do {
- merge = FALSE;
- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) {
- if (ep->x == next->x && ep->y == next->y
- && (ep->bstate & (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED))
- && (!(ep->bstate & BUTTON1_PRESSED)
- == !(next->bstate & BUTTON1_RELEASED))
- && (!(ep->bstate & BUTTON2_PRESSED)
- == !(next->bstate & BUTTON2_RELEASED))
- && (!(ep->bstate & BUTTON3_PRESSED)
- == !(next->bstate & BUTTON3_RELEASED))
- ) {
- if ((eventmask & BUTTON1_CLICKED)
- && (ep->bstate & BUTTON1_PRESSED)) {
- ep->bstate &= ~BUTTON1_PRESSED;
- ep->bstate |= BUTTON1_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_CLICKED)
- && (ep->bstate & BUTTON2_PRESSED)) {
- ep->bstate &= ~BUTTON2_PRESSED;
- ep->bstate |= BUTTON2_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_CLICKED)
- && (ep->bstate & BUTTON3_PRESSED)) {
- ep->bstate &= ~BUTTON3_PRESSED;
- ep->bstate |= BUTTON3_CLICKED;
- merge = TRUE;
- }
- if (merge)
- next->id = INVALID_EVENT;
- }
- }
- } while
- (merge);
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) {
- _trace_slot("before mouse click merge:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - events),
- (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- }
-#endif /* TRACE */
-
- /*
- * Second pass; merge click runs. At this point, click events are
- * each followed by one invalid event. We merge click events
- * forward in the queue.
- *
- * NOTE: There is a problem with this design! If the application
- * allows enough click events to pile up in the circular queue so
- * they wrap around, it will cheerfully merge the newest forward
- * into the oldest, creating a bogus doubleclick and confusing
- * the queue-traversal logic rather badly. Generally this won't
- * happen, because calling getmouse() marks old events invalid and
- * ineligible for merges. The true solution to this problem would
- * be to timestamp each MEVENT and perform the obvious sanity check,
- * but the timer element would have to have sub-second resolution,
- * which would get us into portability trouble.
- */
- do {
- MEVENT *follower;
-
- merge = FALSE;
- for (ep = runp; (next = NEXT(ep)) != eventp; ep = next)
- if (ep->id != INVALID_EVENT) {
- if (next->id != INVALID_EVENT)
- continue;
- follower = NEXT(next);
- if (follower->id == INVALID_EVENT)
- continue;
-
- /* merge click events forward */
- if ((ep->bstate &
- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))
- && (follower->bstate &
- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))) {
- if ((eventmask & BUTTON1_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON1_CLICKED)) {
- follower->bstate &= ~BUTTON1_CLICKED;
- follower->bstate |= BUTTON1_DOUBLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON2_CLICKED)) {
- follower->bstate &= ~BUTTON2_CLICKED;
- follower->bstate |= BUTTON2_DOUBLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON3_CLICKED)) {
- follower->bstate &= ~BUTTON3_CLICKED;
- follower->bstate |= BUTTON3_DOUBLE_CLICKED;
- merge = TRUE;
- }
- if (merge)
- ep->id = INVALID_EVENT;
- }
-
- /* merge double-click events forward */
- if ((ep->bstate &
- (BUTTON1_DOUBLE_CLICKED
- | BUTTON2_DOUBLE_CLICKED
- | BUTTON3_DOUBLE_CLICKED))
- && (follower->bstate &
- (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED))) {
- if ((eventmask & BUTTON1_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON1_CLICKED)) {
- follower->bstate &= ~BUTTON1_CLICKED;
- follower->bstate |= BUTTON1_TRIPLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON2_CLICKED)) {
- follower->bstate &= ~BUTTON2_CLICKED;
- follower->bstate |= BUTTON2_TRIPLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON3_CLICKED)) {
- follower->bstate &= ~BUTTON3_CLICKED;
- follower->bstate |= BUTTON3_TRIPLE_CLICKED;
- merge = TRUE;
- }
- if (merge)
- ep->id = INVALID_EVENT;
- }
- }
- } while
- (merge);
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) {
- _trace_slot("before mouse event queue compaction:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - events),
- (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- }
-#endif /* TRACE */
-
- /*
- * Now try to throw away trailing events flagged invalid, or that
- * don't match the current event mask.
- */
- for (; runcount; prev = PREV(eventp), runcount--)
- if (prev->id == INVALID_EVENT || !(prev->bstate & eventmask)) {
- eventp = prev;
- }
-#ifdef TRACE
- if (_nc_tracing & TRACE_IEVENT) {
- _trace_slot("after mouse event queue compaction:");
- _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d",
- (long) (runp - events),
- (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX,
- runcount);
- }
- for (ep = runp; ep != eventp; ep = NEXT(ep))
- if (ep->id != INVALID_EVENT)
- TR(MY_TRACE,
- ("_nc_mouse_parse: returning composite mouse event %s at slot %ld",
- _tracemouse(ep),
- (long) (ep - events)));
-#endif /* TRACE */
-
- /* after all this, do we have a valid event? */
- return (PREV(eventp)->id != INVALID_EVENT);
-}
-
-static void
-_nc_mouse_wrap(SCREEN * sp GCC_UNUSED)
-/* release mouse -- called by endwin() before shellout/exit */
-{
- TR(MY_TRACE, ("_nc_mouse_wrap() called"));
-
- switch (mousetype) {
- case M_XTERM:
- if (eventmask)
- mouse_activate(FALSE);
- break;
-#if USE_GPM_SUPPORT
- /* GPM: pass all mouse events to next client */
- case M_GPM:
- break;
-#endif
- }
-}
-
-static void
-_nc_mouse_resume(SCREEN * sp GCC_UNUSED)
-/* re-connect to mouse -- called by doupdate() after shellout */
-{
- TR(MY_TRACE, ("_nc_mouse_resume() called"));
-
- /* xterm: re-enable reporting */
- if (mousetype == M_XTERM && eventmask)
- mouse_activate(TRUE);
-
- /* GPM: reclaim our event set */
-}
-
-/**************************************************************************
- *
- * Mouse interface entry points for the API
- *
- **************************************************************************/
-
-NCURSES_EXPORT(int)
-getmouse(MEVENT * aevent)
-/* grab a copy of the current mouse event */
-{
- T((T_CALLED("getmouse(%p)"), aevent));
-
- if (aevent && (mousetype != M_NONE)) {
- /* compute the current-event pointer */
- MEVENT *prev = PREV(eventp);
-
- /* copy the event we find there */
- *aevent = *prev;
-
- TR(TRACE_IEVENT, ("getmouse: returning event %s from slot %ld",
- _tracemouse(prev),
- (long) (prev - events)));
-
- prev->id = INVALID_EVENT; /* so the queue slot becomes free */
- returnCode(OK);
- }
- returnCode(ERR);
-}
-
-NCURSES_EXPORT(int)
-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;
-
- /* bump the next-free pointer into the circular list */
- eventp = NEXT(eventp);
-
- /* push back the notification event on the keyboard queue */
- returnCode(ungetch(KEY_MOUSE));
-}
-
-NCURSES_EXPORT(mmask_t)
-mousemask(mmask_t newmask, mmask_t * oldmask)
-/* set the mouse event mask */
-{
- mmask_t result = 0;
-
- T((T_CALLED("mousemask(%#lx,%p)"), newmask, oldmask));
-
- if (oldmask)
- *oldmask = eventmask;
-
- if (!newmask && !initialized)
- returnBits(0);
-
- _nc_mouse_init();
- if (mousetype != M_NONE) {
- eventmask = newmask &
- (BUTTON_ALT | BUTTON_CTRL | BUTTON_SHIFT
- | BUTTON1_PRESSED | BUTTON1_RELEASED | BUTTON1_CLICKED
- | BUTTON1_DOUBLE_CLICKED | BUTTON1_TRIPLE_CLICKED
- | BUTTON2_PRESSED | BUTTON2_RELEASED | BUTTON2_CLICKED
- | BUTTON2_DOUBLE_CLICKED | BUTTON2_TRIPLE_CLICKED
- | BUTTON3_PRESSED | BUTTON3_RELEASED | BUTTON3_CLICKED
- | BUTTON3_DOUBLE_CLICKED | BUTTON3_TRIPLE_CLICKED);
-
- mouse_activate(eventmask != 0);
-
- result = eventmask;
- }
-
- returnBits(result);
-}
-
-NCURSES_EXPORT(bool)
-wenclose(const WINDOW *win, int y, int x)
-/* check to see if given window encloses given screen location */
-{
- bool result = FALSE;
-
- T((T_CALLED("wenclose(%p,%d,%d)"), win, y, x));
-
- if (win != 0) {
- y -= win->_yoffset;
- result = ((win->_begy <= y &&
- win->_begx <= x &&
- (win->_begx + win->_maxx) >= x &&
- (win->_begy + win->_maxy) >= y) ? TRUE : FALSE);
- }
- returnBool(result);
-}
-
-NCURSES_EXPORT(int)
-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)
- SP->_maxclick = maxclick;
- } else {
- oldval = DEFAULT_MAXCLICK;
- }
-
- returnCode(oldval);
-}
-
-/* This may be used by other routines to ask for the existence of mouse
- support */
-NCURSES_EXPORT(int)
-_nc_has_mouse(void)
-{
- return (mousetype == M_NONE ? 0 : 1);
-}
-
-NCURSES_EXPORT(bool)
-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 (to_screen) {
- y += win->_begy + win->_yoffset;
- x += win->_begx;
- if (wenclose(win, y, x))
- result = TRUE;
- } else {
- if (wenclose(win, y, x)) {
- y -= (win->_begy + win->_yoffset);
- x -= win->_begx;
- result = TRUE;
- }
- }
- if (result) {
- *pX = x;
- *pY = y;
- }
- }
- returnBool(result);
-}
-
-/* lib_mouse.c ends here */
diff --git a/ncurses-5.3/ncurses/base/lib_move.c b/ncurses-5.3/ncurses/base/lib_move.c
deleted file mode 100644
index c547fd8..0000000
--- a/ncurses-5.3/ncurses/base/lib_move.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_move.c
-**
-** The routine wmove().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wmove(WINDOW *win, int y, int x)
-{
- T((T_CALLED("wmove(%p,%d,%d)"), win, y, x));
-
- if (win &&
- x >= 0 && x <= win->_maxx &&
- y >= 0 && y <= win->_maxy) {
- win->_curx = (NCURSES_SIZE_T) x;
- win->_cury = (NCURSES_SIZE_T) y;
-
- win->_flags &= ~_WRAPPED;
- win->_flags |= _HASMOVED;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_mvwin.c b/ncurses-5.3/ncurses/base/lib_mvwin.c
deleted file mode 100644
index 04c3f6c..0000000
--- a/ncurses-5.3/ncurses/base/lib_mvwin.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_mvwin.c
-**
-** The routine mvwin().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-mvwin(WINDOW *win, int by, int bx)
-{
- T((T_CALLED("mvwin(%p,%d,%d)"), win, by, bx));
-
- 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);
- if (clone) {
- /* 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);
- }
-
- 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));
-}
diff --git a/ncurses-5.3/ncurses/base/lib_newterm.c b/ncurses-5.3/ncurses/base/lib_newterm.c
deleted file mode 100644
index 65aabe1..0000000
--- a/ncurses-5.3/ncurses/base/lib_newterm.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_newterm.c
-**
-** The newterm() function.
-**
-*/
-
-#include <curses.priv.h>
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#include <term.h> /* clear_screen, cup & friends, cur_term */
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-#ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */
-#define ONLCR 0
-#endif
-
-/*
- * SVr4/XSI Curses specify that hardware echo is turned off in initscr, and not
- * restored during the curses session. The library simulates echo in software.
- * (The behavior is unspecified if the application enables hardware echo).
- *
- * The newterm function also initializes terminal settings, and since initscr
- * is supposed to behave as if it calls newterm, we do it here.
- */
-static inline int
-_nc_initscr(void)
-{
- int result = ERR;
-
- /* for extended XPG4 conformance requires cbreak() at this point */
- /* (SVr4 curses does this anyway) */
- if (cbreak() == OK) {
- TTY buf;
-
- buf = cur_term->Nttyb;
-#ifdef TERMIOS
- buf.c_lflag &= ~(ECHO | ECHONL);
- buf.c_iflag &= ~(ICRNL | INLCR | IGNCR);
- buf.c_oflag &= ~(ONLCR);
-#else
- buf.sg_flags &= ~(ECHO | CRMOD);
-#endif
- if ((result = _nc_set_tty_mode(&buf)) == OK)
- cur_term->Nttyb = buf;
- }
- return result;
-}
-
-/*
- * filter() has to be called before either initscr() or newterm(), so there is
- * apparently no way to make this flag apply to some terminals and not others,
- * aside from possibly delaying a filter() call until some terminals have been
- * initialized.
- */
-static int filter_mode = FALSE;
-
-NCURSES_EXPORT(void)
-filter(void)
-{
- T((T_CALLED("filter")));
- filter_mode = TRUE;
- returnVoid;
-}
-
-NCURSES_EXPORT(SCREEN *)
-newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
-{
- int errret;
- int slk_format = _nc_slk_format;
- SCREEN *current;
-
- 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)
- returnSP(0);
-
- /* implement filter mode */
- if (filter_mode) {
- LINES = 1;
-
- if (VALID_NUMERIC(init_tabs))
- TABSIZE = init_tabs;
- else
- TABSIZE = 8;
-
- T(("TABSIZE = %d", TABSIZE));
-
- clear_screen = 0;
- cursor_down = parm_down_cursor = 0;
- cursor_address = 0;
- cursor_up = parm_up_cursor = 0;
- row_address = 0;
-
- cursor_home = carriage_return;
- }
-
- /* If we must simulate soft labels, grab off the line to be used.
- We assume that we must simulate, if it is none of the standard
- formats (4-4 or 3-2-3) for which there may be some hardware
- support. */
- if (num_labels <= 0 || !SLK_STDFMT(slk_format))
- if (slk_format) {
- if (ERR == _nc_ripoffline(-SLK_LINES(slk_format),
- _nc_slk_initialize))
- returnSP(0);
- }
- /* this actually allocates the screen structure, and saves the
- * original terminal settings.
- */
- current = SP;
- _nc_set_screen(0);
- if (_nc_setupscreen(LINES, COLS, ofp) == ERR) {
- _nc_set_screen(current);
- returnSP(0);
- }
-
- /* if the terminal type has real soft labels, set those up */
- if (slk_format && num_labels > 0 && SLK_STDFMT(slk_format))
- _nc_slk_initialize(stdscr, COLS);
-
- SP->_ifd = fileno(ifp);
- typeahead(fileno(ifp));
-#ifdef TERMIOS
- SP->_use_meta = ((cur_term->Ottyb.c_cflag & CSIZE) == CS8 &&
- !(cur_term->Ottyb.c_iflag & ISTRIP));
-#else
- SP->_use_meta = FALSE;
-#endif
- SP->_endwin = FALSE;
-
- /* Check whether we can optimize scrolling under dumb terminals in case
- * we do not have any of these capabilities, scrolling optimization
- * will be useless.
- */
- SP->_scrolling = ((scroll_forward && scroll_reverse) ||
- ((parm_rindex || parm_insert_line || insert_line) &&
- (parm_index || parm_delete_line || delete_line)));
-
- baudrate(); /* sets a field in the SP structure */
-
- SP->_keytry = 0;
-
- /*
- * Check for mismatched graphic-rendition capabilities. Most SVr4
- * terminfo trees contain entries that have rmul or rmso equated to
- * sgr0 (Solaris curses copes with those entries). We do this only for
- * curses, since many termcap applications assume that smso/rmso and
- * smul/rmul are paired, and will not function properly if we remove
- * rmso or rmul. Curses applications shouldn't be looking at this
- * detail.
- */
-#define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode))
- SP->_use_rmso = SGR0_TEST(exit_standout_mode);
- SP->_use_rmul = SGR0_TEST(exit_underline_mode);
-
- /* compute movement costs so we can do better move optimization */
- _nc_mvcur_init();
-
- /* initialize terminal to a sane state */
- _nc_screen_init();
-
- /* Initialize the terminal line settings. */
- _nc_initscr();
-
- _nc_signal_handler(TRUE);
-
- returnSP(SP);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_newwin.c b/ncurses-5.3/ncurses/base/lib_newwin.c
deleted file mode 100644
index 7d040d6..0000000
--- a/ncurses-5.3/ncurses/base/lib_newwin.c
+++ /dev/null
@@ -1,306 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_newwin.c
-**
-** The routines newwin(), subwin() and their dependent
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-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;
- int result = ERR;
-
- if (win != 0) {
- for (p = _nc_windows, q = 0; p != 0; q = p, p = p->next) {
- if (&(p->win) == win) {
- remove_window_from_screen(win);
- if (q == 0)
- _nc_windows = p->next;
- else
- q->next = p->next;
-
- if (!(win->_flags & _SUBWIN)) {
- for (i = 0; i <= win->_maxy; i++)
- FreeIfNeeded(win->_line[i].text);
- }
- free(win->_line);
- free(p);
-
- result = OK;
- T(("...deleted win=%p", win));
- break;
- }
- }
- }
- return result;
-}
-
-NCURSES_EXPORT(WINDOW *)
-newwin(int num_lines, int num_columns, int begy, int begx)
-{
- WINDOW *win;
- NCURSES_CH_T *ptr;
- int i;
-
- T((T_CALLED("newwin(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
-
- if (begy < 0 || begx < 0 || num_lines < 0 || num_columns < 0)
- returnWin(0);
-
- if (num_lines == 0)
- num_lines = SP->_lines_avail - begy;
- if (num_columns == 0)
- num_columns = screen_columns - begx;
-
- if (num_columns + begx > SP->_columns || num_lines + begy > SP->_lines_avail)
- returnWin(0);
-
- if ((win = _nc_makenew(num_lines, num_columns, begy, begx, 0)) == 0)
- returnWin(0);
-
- for (i = 0; i < num_lines; i++) {
- win->_line[i].text = typeCalloc(NCURSES_CH_T, (unsigned) num_columns);
- if (win->_line[i].text == 0) {
- (void) _nc_freewin(win);
- returnWin(0);
- }
- for (ptr = win->_line[i].text;
- ptr < win->_line[i].text + num_columns;
- ptr++)
- SetChar(*ptr, BLANK_TEXT, BLANK_ATTR);
- }
-
- returnWin(win);
-}
-
-NCURSES_EXPORT(WINDOW *)
-derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx)
-{
- WINDOW *win;
- int i;
- int flags = _SUBWIN;
-
- T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), orig, num_lines, num_columns,
- begy, begx));
-
- /*
- * 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 + num_lines > orig->_maxy + 1
- || begx + num_columns > orig->_maxx + 1)
- returnWin(0);
-
- if (num_lines == 0)
- num_lines = orig->_maxy + 1 - begy;
-
- if (num_columns == 0)
- num_columns = orig->_maxx + 1 - begx;
-
- if (orig->_flags & _ISPAD)
- flags |= _ISPAD;
-
- if ((win = _nc_makenew(num_lines, num_columns, orig->_begy + begy,
- orig->_begx + begx, flags)) == 0)
- returnWin(0);
-
- win->_pary = begy;
- win->_parx = begx;
- win->_attrs = orig->_attrs;
- 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;
-
- returnWin(win);
-}
-
-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));
- T(("parent has begy = %d, begx = %d", w->_begy, w->_begx));
-
- returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx));
-}
-
-static bool
-dimension_limit(int value)
-{
- NCURSES_SIZE_T test = value;
- return (test == value && value > 0);
-}
-
-NCURSES_EXPORT(WINDOW *)
-_nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
-{
- int i;
- WINDOWLIST *wp;
- WINDOW *win;
- bool is_pad = (flags & _ISPAD);
-
- T(("_nc_makenew(%d,%d,%d,%d)", num_lines, num_columns, begy, begx));
-
- if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
- return 0;
-
- if ((wp = typeCalloc(WINDOWLIST, 1)) == 0)
- return 0;
-
- win = &(wp->win);
-
- if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) {
- free(win);
- return 0;
- }
-
- win->_curx = 0;
- win->_cury = 0;
- win->_maxy = num_lines - 1;
- win->_maxx = num_columns - 1;
- win->_begy = begy;
- win->_begx = begx;
- win->_yoffset = SP->_topstolen;
-
- win->_flags = flags;
- win->_attrs = A_NORMAL;
- SetChar(win->_nc_bkgd, BLANK_TEXT, BLANK_ATTR);
-
- win->_clear = is_pad ? FALSE : (num_lines == screen_lines
- && num_columns == screen_columns);
- win->_idlok = FALSE;
- win->_idcok = TRUE;
- win->_scroll = FALSE;
- win->_leaveok = FALSE;
- win->_use_keypad = FALSE;
- win->_delay = -1;
- win->_immed = FALSE;
- win->_sync = 0;
- win->_parx = -1;
- win->_pary = -1;
- win->_parent = 0;
-
- win->_regtop = 0;
- win->_regbottom = num_lines - 1;
-
- win->_pad._pad_y = -1;
- win->_pad._pad_x = -1;
- win->_pad._pad_top = -1;
- win->_pad._pad_bottom = -1;
- win->_pad._pad_left = -1;
- win->_pad._pad_right = -1;
-
- for (i = 0; i < num_lines; i++) {
- /*
- * This used to do
- *
- * win->_line[i].firstchar = win->_line[i].lastchar = _NOCHANGE;
- *
- * which marks the whole window unchanged. That's how
- * SVr1 curses did it, but SVr4 curses marks the whole new
- * window changed.
- *
- * With the old SVr1-like code, say you have stdscr full of
- * characters, then create a new window with newwin(),
- * then do a printw(win, "foo ");, the trailing spaces are
- * completely ignored by the following refreshes. So, you
- * get "foojunkjunk" on the screen instead of "foo " as
- * you actually intended.
- *
- * SVr4 doesn't do this. Instead the spaces are actually written.
- * So that's how we want ncurses to behave.
- */
- win->_line[i].firstchar = 0;
- win->_line[i].lastchar = num_columns - 1;
-
- if_USE_SCROLL_HINTS(win->_line[i].oldindex = i);
- }
-
- if (!is_pad && (begx + num_columns == screen_columns)) {
- win->_flags |= _ENDLINE;
-
- if (begx == 0 && num_lines == screen_lines && begy == 0)
- win->_flags |= _FULLWIN;
-
- if (begy + num_lines == screen_lines)
- win->_flags |= _SCROLLWIN;
- }
-
- wp->next = _nc_windows;
- _nc_windows = wp;
-
- T((T_CREATE("window %p"), win));
-
- return (win);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_nl.c b/ncurses-5.3/ncurses/base/lib_nl.c
deleted file mode 100644
index 3509b93..0000000
--- a/ncurses-5.3/ncurses/base/lib_nl.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * nl.c
- *
- * Routines:
- * nl()
- * nonl()
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef __EMX__
-#include <io.h>
-#endif
-
-NCURSES_EXPORT(int)
-nl(void)
-{
- T((T_CALLED("nl()")));
-
- SP->_nl = TRUE;
-
-#ifdef __EMX__
- _nc_flush();
- _fsetmode(NC_OUTPUT, "t");
-#endif
-
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-nonl(void)
-{
- T((T_CALLED("nonl()")));
-
- SP->_nl = FALSE;
-
-#ifdef __EMX__
- _nc_flush();
- _fsetmode(NC_OUTPUT, "b");
-#endif
-
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_overlay.c b/ncurses-5.3/ncurses/base/lib_overlay.c
deleted file mode 100644
index a0f4071..0000000
--- a/ncurses-5.3/ncurses/base/lib_overlay.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_overlay.c
-**
-** The routines overlay(), copywin(), and overwrite().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-static int
-overlap(const WINDOW *const s, WINDOW *const d, int const 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));
- }
- }
-}
-
-/*
-**
-** overlay(win1, win2)
-**
-**
-** overlay() writes the overlapping area of win1 behind win2
-** on win2 non-destructively.
-**
-**/
-
-NCURSES_EXPORT(int)
-overlay(const WINDOW *win1, WINDOW *win2)
-{
- T((T_CALLED("overlay(%p,%p)"), win1, win2));
- returnCode(overlap(win1, win2, TRUE));
-}
-
-/*
-**
-** overwrite(win1, win2)
-**
-**
-** overwrite() writes the overlapping area of win1 behind win2
-** on win2 destructively.
-**
-**/
-
-NCURSES_EXPORT(int)
-overwrite(const WINDOW *win1, WINDOW *win2)
-{
- T((T_CALLED("overwrite(%p,%p)"), win1, win2));
- returnCode(overlap(win1, win2, FALSE));
-}
-
-NCURSES_EXPORT(int)
-copywin(const WINDOW *src, WINDOW *dst,
- int sminrow, int smincol,
- int dminrow, int dmincol,
- int dmaxrow, int dmaxcol,
- int over)
-{
- 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;
- }
- }
- }
- if (touched) {
- touchline(dst, dminrow, (dmaxrow - dminrow + 1));
- }
- }
- T(("finished copywin"));
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_pad.c b/ncurses-5.3/ncurses/base/lib_pad.c
deleted file mode 100644
index 3005f06..0000000
--- a/ncurses-5.3/ncurses/base/lib_pad.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_pad.c
- * newpad -- create a new pad
- * pnoutrefresh -- refresh a pad, no update
- * pechochar -- add a char to a pad and refresh
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(WINDOW *)
-newpad(int l, int c)
-{
- WINDOW *win;
- NCURSES_CH_T *ptr;
- int i;
-
- T((T_CALLED("newpad(%d, %d)"), l, c));
-
- if (l <= 0 || c <= 0)
- returnWin(0);
-
- if ((win = _nc_makenew(l, c, 0, 0, _ISPAD)) == NULL)
- returnWin(0);
-
- for (i = 0; i < l; i++) {
- if_USE_SCROLL_HINTS(win->_line[i].oldindex = _NEWINDEX);
- if ((win->_line[i].text = typeCalloc(NCURSES_CH_T, ((size_t) c))) == 0) {
- (void) _nc_freewin(win);
- returnWin(0);
- }
- for (ptr = win->_line[i].text; ptr < win->_line[i].text + c; ptr++)
- SetChar(*ptr, BLANK_TEXT, BLANK_ATTR);
- }
-
- returnWin(win);
-}
-
-NCURSES_EXPORT(WINDOW *)
-subpad
-(WINDOW *orig, int l, int c, int begy, int begx)
-{
- WINDOW *win = (WINDOW *) 0;
-
- T((T_CALLED("subpad(%d, %d)"), l, c));
-
- if (orig) {
- if (!(orig->_flags & _ISPAD)
- || ((win = derwin(orig, l, c, begy, begx)) == NULL))
- returnWin(0);
- }
- returnWin(win);
-}
-
-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,
- smaxcol) != ERR
- && doupdate() != ERR) {
- returnCode(OK);
- }
- returnCode(ERR);
-}
-
-NCURSES_EXPORT(int)
-pnoutrefresh
-(WINDOW *win, int pminrow, int pmincol,
- int sminrow, int smincol, int smaxrow, int smaxcol)
-{
- 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;
-#endif
-
- T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"),
- win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol));
-
- if (win == 0)
- returnCode(ERR);
-
- if (!(win->_flags & _ISPAD))
- returnCode(ERR);
-
- /* negative values are interpreted as zero */
- if (pminrow < 0)
- pminrow = 0;
- if (pmincol < 0)
- pmincol = 0;
- if (sminrow < 0)
- sminrow = 0;
- if (smincol < 0)
- smincol = 0;
-
- pmaxrow = pminrow + smaxrow - sminrow;
- pmaxcol = pmincol + smaxcol - smincol;
-
- T((" pminrow + smaxrow - sminrow %d, win->_maxy %d", pmaxrow, win->_maxy));
- T((" pmincol + smaxcol - smincol %d, win->_maxx %d", pmaxcol, win->_maxx));
-
- /*
- * Trim the caller's screen size back to the actual limits.
- */
- if (pmaxrow > win->_maxy) {
- smaxrow -= (pmaxrow - win->_maxy);
- pmaxrow = pminrow + smaxrow - sminrow;
- }
- if (pmaxcol > win->_maxx) {
- smaxcol -= (pmaxcol - win->_maxx);
- pmaxcol = pmincol + smaxcol - smincol;
- }
-
- if (smaxrow >= screen_lines
- || smaxcol >= screen_columns
- || 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;
-#endif
-
- /*
- * For pure efficiency, we'd want to transfer scrolling information
- * from the pad to newscr whenever the window is wide enough that
- * its update will dominate the cost of the update for the horizontal
- * band of newscr that it occupies. Unfortunately, this threshold
- * tends to be complex to estimate, and in any case scrolling the
- * whole band and rewriting the parts outside win's image would look
- * really ugly. So. What we do is consider the pad "wide" if it
- * either (a) occupies the whole width of newscr, or (b) occupies
- * all but at most one column on either vertical edge of the screen
- * (this caters to fussy people who put boxes around full-screen
- * 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));
-#endif
-
- for (i = pminrow, m = sminrow + win->_yoffset;
- i <= pmaxrow && m <= newscr->_maxy;
- i++, m++) {
- register struct ldat *nline = &newscr->_line[m];
- register struct ldat *oline = &win->_line[i];
- for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) {
- 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);
- }
- }
-
-#if USE_SCROLL_HINTS
- if (wide) {
- int nind = m + displaced;
- if (oline->oldindex < 0
- || nind < sminrow
- || nind > smaxrow) {
- nind = _NEWINDEX;
- } else if (displaced) {
- register struct ldat *pline = &curscr->_line[nind];
- for (j = 0; j <= my_len; j++) {
- int k = newscr->_maxx - j;
- if (pline->text[j] != nline->text[j]
- || pline->text[k] != nline->text[k]) {
- nind = _NEWINDEX;
- break;
- }
- }
- }
-
- nline->oldindex = nind;
- }
-#endif /* USE_SCROLL_HINTS */
- oline->firstchar = oline->lastchar = _NOCHANGE;
- if_USE_SCROLL_HINTS(oline->oldindex = i);
- }
-
- /*
- * Clean up debris from scrolling or resizing the pad, so we do not
- * accidentally pick up the index value during the next call to this
- * procedure. The only rows that should have an index value are those
- * that are displayed during this cycle.
- */
-#if USE_SCROLL_HINTS
- 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 = _NEWINDEX;
-#endif
-
- win->_begx = smincol;
- win->_begy = sminrow;
-
- if (win->_clear) {
- win->_clear = FALSE;
- newscr->_clear = TRUE;
- }
-
- /*
- * Use the pad's current position, if it will be visible.
- * If not, don't do anything; it's not an error.
- */
- if (win->_leaveok == FALSE
- && win->_cury >= pminrow
- && win->_curx >= pmincol
- && win->_cury <= pmaxrow
- && win->_curx <= pmaxcol) {
- newscr->_cury = win->_cury - pminrow + win->_begy + win->_yoffset;
- newscr->_curx = win->_curx - pmincol + win->_begx;
- }
- newscr->_leaveok = win->_leaveok;
- win->_flags &= ~_HASMOVED;
-
- /*
- * Update our cache of the line-numbers that we displayed from the pad.
- * We will use this on subsequent calls to this function to derive
- * values to stuff into 'oldindex[]' -- for scrolling optimization.
- */
- win->_pad._pad_y = pminrow;
- win->_pad._pad_x = pmincol;
- win->_pad._pad_top = sminrow;
- win->_pad._pad_left = smincol;
- win->_pad._pad_bottom = smaxrow;
- win->_pad._pad_right = smaxcol;
-
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-pechochar(WINDOW *pad, const chtype ch)
-{
- T((T_CALLED("pechochar(%p, %s)"), pad, _tracechtype(ch)));
-
- if (pad == 0)
- returnCode(ERR);
-
- if (!(pad->_flags & _ISPAD))
- returnCode(wechochar(pad, ch));
-
- 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);
-
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_printw.c b/ncurses-5.3/ncurses/base/lib_printw.c
deleted file mode 100644
index 5081f86..0000000
--- a/ncurses-5.3/ncurses/base/lib_printw.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-/*
-** lib_printw.c
-**
-** The routines printw(), wprintw() and friends.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-printw(NCURSES_CONST char *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);
-
- returnCode(code);
-}
-
-NCURSES_EXPORT(int)
-wprintw(WINDOW *win, NCURSES_CONST char *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);
-
- returnCode(code);
-}
-
-NCURSES_EXPORT(int)
-mvprintw(int y, int x, NCURSES_CONST char *fmt,...)
-{
- 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);
-}
-
-NCURSES_EXPORT(int)
-mvwprintw(WINDOW *win, int y, int x, NCURSES_CONST char *fmt,...)
-{
- 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);
-}
-
-NCURSES_EXPORT(int)
-vwprintw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
-{
- char *buf;
- int code = ERR;
-
- T((T_CALLED("vwprintw(%p,%s,%p)"),
- win, _nc_visbuf(fmt), argp));
-
- if ((buf = _nc_printf_string(fmt, argp)) != 0) {
- code = waddstr(win, buf);
-#if USE_SAFE_SPRINTF
- free(buf);
-#endif
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_redrawln.c b/ncurses-5.3/ncurses/base/lib_redrawln.c
deleted file mode 100644
index c70f162..0000000
--- a/ncurses-5.3/ncurses/base/lib_redrawln.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-/*
- * lib_redrawln.c
- *
- * The routine wredrawln().
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wredrawln(WINDOW *win, int beg, int num)
-{
- int i;
- int end;
- size_t len = (win->_maxx + 1);
-
- T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
-
- if (beg < 0)
- beg = 0;
-
- if (touchline(win, beg, num) == ERR)
- returnCode(ERR);
-
- end = beg + num;
- if (end > curscr->_maxy + 1)
- end = curscr->_maxy + 1;
- if (end > win->_maxy + 1)
- end = win->_maxy + 1;
-
- if (len > (size_t) (curscr->_maxx + 1))
- len = (size_t) (curscr->_maxx + 1);
- len *= sizeof(curscr->_line[0].text[0]);
-
- 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_refresh.c b/ncurses-5.3/ncurses/base/lib_refresh.c
deleted file mode 100644
index e9c5fdf..0000000
--- a/ncurses-5.3/ncurses/base/lib_refresh.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_refresh.c
- *
- * The routines wrefresh() and wnoutrefresh().
- *
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wrefresh(WINDOW *win)
-{
- int code;
-
- T((T_CALLED("wrefresh(%p)"), win));
-
- if (win == curscr) {
- curscr->_clear = TRUE;
- code = doupdate();
- } else if ((code = wnoutrefresh(win)) == OK) {
- if (win->_clear)
- newscr->_clear = TRUE;
- code = doupdate();
- /*
- * Reset the clearok() flag in case it was set for the special
- * case in hardscroll.c (if we don't reset it here, we'll get 2
- * refreshes because the flag is copied from stdscr to newscr).
- * Resetting the flag shouldn't do any harm, anyway.
- */
- win->_clear = FALSE;
- }
- returnCode(code);
-}
-
-NCURSES_EXPORT(int)
-wnoutrefresh(WINDOW *win)
-{
- NCURSES_SIZE_T limit_x;
- NCURSES_SIZE_T i, j;
- NCURSES_SIZE_T begx;
- NCURSES_SIZE_T begy;
- NCURSES_SIZE_T m, n;
-#if USE_SCROLL_HINTS
- bool wide;
-#endif
-
- T((T_CALLED("wnoutrefresh(%p)"), win));
-#ifdef TRACE
- if (_nc_tracing & TRACE_UPDATE)
- _tracedump("...win", win);
-#endif /* TRACE */
-
- /*
- * This function will break badly if we try to refresh a pad.
- */
- if ((win == 0)
- || (win->_flags & _ISPAD))
- returnCode(ERR);
-
- /* put them here so "win == 0" won't break our code */
- begx = win->_begx;
- begy = win->_begy;
-
- newscr->_nc_bkgd = win->_nc_bkgd;
- 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
- * its update will dominate the cost of the update for the horizontal
- * band of newscr that it occupies. Unfortunately, this threshold
- * tends to be complex to estimate, and in any case scrolling the
- * whole band and rewriting the parts outside win's image would look
- * really ugly. So. What we do is consider the window "wide" if it
- * either (a) occupies the whole width of newscr, or (b) occupies
- * all but at most one column on either vertical edge of the screen
- * (this caters to fussy people who put boxes around full-screen
- * windows). Note that changing this formula will not break any code,
- * merely change the costs of various update cases.
- */
- wide = (begx <= 1 && win->_maxx >= (newscr->_maxx - 1));
-#endif
-
- win->_flags &= ~_HASMOVED;
-
- /*
- * Microtweaking alert! This double loop is one of the genuine
- * hot spots in the code. Even gcc doesn't seem to do enough
- * common-subexpression chunking to make it really tense,
- * so we'll force the issue.
- */
-
- /* limit(n) */
- limit_x = win->_maxx;
- /* limit(j) */
- if (limit_x > newscr->_maxx - begx)
- limit_x = newscr->_maxx - begx;
-
- for (i = 0, m = begy + win->_yoffset;
- i <= win->_maxy && m <= newscr->_maxy;
- i++, m++) {
- register struct ldat *nline = &newscr->_line[m];
- register struct ldat *oline = &win->_line[i];
-
- if (oline->firstchar != _NOCHANGE) {
- int last = oline->lastchar;
-
- if (last > limit_x)
- last = limit_x;
-
- for (j = oline->firstchar, n = j + begx; j <= last; j++, n++) {
- if (!CharEq(oline->text[j], nline->text[n])) {
- nline->text[n] = oline->text[j];
- CHANGED_CELL(nline, n);
- }
- }
-
- }
-#if USE_SCROLL_HINTS
- if (wide) {
- int oind = oline->oldindex;
-
- nline->oldindex = (oind == _NEWINDEX) ? _NEWINDEX : begy + oind
- + win->_yoffset;
- }
-#endif /* USE_SCROLL_HINTS */
-
- oline->firstchar = oline->lastchar = _NOCHANGE;
- if_USE_SCROLL_HINTS(oline->oldindex = i);
- }
-
- if (win->_clear) {
- win->_clear = FALSE;
- newscr->_clear = TRUE;
- }
-
- if (!win->_leaveok) {
- newscr->_cury = win->_cury + win->_begy + win->_yoffset;
- newscr->_curx = win->_curx + win->_begx;
- }
- newscr->_leaveok = win->_leaveok;
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_UPDATE)
- _tracedump("newscr", newscr);
-#endif /* TRACE */
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_restart.c b/ncurses-5.3/ncurses/base/lib_restart.c
deleted file mode 100644
index a9b81da..0000000
--- a/ncurses-5.3/ncurses/base/lib_restart.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * Terminfo-only terminal setup routines:
- *
- * int restartterm(const char *, int, int *)
- * TERMINAL *set_curterm(TERMINAL *)
- * int del_curterm(TERMINAL *)
- */
-
-#include <curses.priv.h>
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#include <term.h> /* lines, columns, cur_term */
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
-{
- int saveecho = SP->_echo;
- int savecbreak = SP->_cbreak;
- int saveraw = SP->_raw;
- int savenl = SP->_nl;
-
- T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
-
- if (setupterm(termp, filenum, errret) != OK)
- returnCode(ERR);
-
- if (saveecho)
- echo();
- else
- noecho();
-
- if (savecbreak) {
- cbreak();
- noraw();
- } else if (saveraw) {
- nocbreak();
- raw();
- } else {
- nocbreak();
- noraw();
- }
- if (savenl)
- nl();
- else
- nonl();
-
- reset_prog_mode();
-
-#if USE_SIZECHANGE
- _nc_update_screensize();
-#endif
-
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_scanw.c b/ncurses-5.3/ncurses/base/lib_scanw.c
deleted file mode 100644
index 3e464be..0000000
--- a/ncurses-5.3/ncurses/base/lib_scanw.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_scanw.c
-**
-** The routines scanw(), wscanw() and friends.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp)
-{
- char buf[BUFSIZ];
-
- if (wgetnstr(win, buf, sizeof(buf) - 1) == ERR)
- return (ERR);
-
- return (vsscanf(buf, fmt, argp));
-}
-
-NCURSES_EXPORT(int)
-scanw(NCURSES_CONST char *fmt,...)
-{
- int code;
- va_list ap;
-
- T(("scanw(\"%s\",...) called", fmt));
-
- va_start(ap, fmt);
- code = vwscanw(stdscr, fmt, ap);
- va_end(ap);
- return (code);
-}
-
-NCURSES_EXPORT(int)
-wscanw(WINDOW *win, NCURSES_CONST char *fmt,...)
-{
- int code;
- va_list ap;
-
- T(("wscanw(%p,\"%s\",...) called", win, fmt));
-
- va_start(ap, fmt);
- code = vwscanw(win, fmt, ap);
- va_end(ap);
- return (code);
-}
-
-NCURSES_EXPORT(int)
-mvscanw(int y, int x, NCURSES_CONST char *fmt,...)
-{
- int code;
- va_list ap;
-
- va_start(ap, fmt);
- code = (move(y, x) == OK) ? vwscanw(stdscr, fmt, ap) : ERR;
- va_end(ap);
- return (code);
-}
-
-NCURSES_EXPORT(int)
-mvwscanw(WINDOW *win, int y, int x, NCURSES_CONST char *fmt,...)
-{
- 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_screen.c b/ncurses-5.3/ncurses/base/lib_screen.c
deleted file mode 100644
index 90d3c30..0000000
--- a/ncurses-5.3/ncurses/base/lib_screen.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996 on *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(WINDOW *)
-getwin(FILE * filep)
-{
- WINDOW tmp, *nwin;
- int n;
-
- T((T_CALLED("getwin(%p)"), filep));
-
- clearerr(filep);
- (void) fread(&tmp, sizeof(WINDOW), 1, filep);
- if (ferror(filep))
- 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.
- */
- 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->_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);
- }
- returnWin(nwin);
-}
-
-NCURSES_EXPORT(int)
-putwin(WINDOW *win, FILE * filep)
-{
- int code = ERR;
- int n;
-
- T((T_CALLED("putwin(%p,%p)"), win, filep));
-
- if (win != 0) {
- size_t len = (win->_maxx + 1);
-
- clearerr(filep);
- if (fwrite(win, sizeof(WINDOW), 1, filep) != 1
- || ferror(filep))
- returnCode(code);
-
- for (n = 0; n <= win->_maxy; n++) {
- if (fwrite(win->_line[n].text,
- sizeof(NCURSES_CH_T), len, filep) != len
- || ferror(filep)) {
- returnCode(code);
- }
- }
- code = OK;
- }
- returnCode(code);
-}
-
-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);
- SP->_newscr = newscr = getwin(fp);
- (void) fclose(fp);
- returnCode(OK);
- }
-}
-
-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);
- returnCode(OK);
- }
-}
-
-NCURSES_EXPORT(int)
-scr_init(const char *file)
-{
- 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);
- }
-}
-
-NCURSES_EXPORT(int)
-scr_set(const char *file)
-{
- T((T_CALLED("scr_set(%s)"), _nc_visbuf(file)));
-
- if (scr_init(file) == ERR) {
- returnCode(ERR);
- } else {
- delwin(newscr);
- SP->_newscr = newscr = dupwin(curscr);
- returnCode(OK);
- }
-}
diff --git a/ncurses-5.3/ncurses/base/lib_scroll.c b/ncurses-5.3/ncurses/base/lib_scroll.c
deleted file mode 100644
index 324e637..0000000
--- a/ncurses-5.3/ncurses/base/lib_scroll.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1996-2001 *
- * and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_scroll.c
-**
-** The routine wscrl(win, n).
-** positive n scroll the window up (ie. move lines down)
-** negative n scroll the window down (ie. move lines up)
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(void)
-_nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
- NCURSES_SIZE_T const bottom, NCURSES_CH_T blank)
-{
- 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));
-
- 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
- * its own storage, (b) doesn't save you a lot on modern machines
- * anyway. Your typical memcpy implementations are coded in
- * assembler using a tight BLT loop; for the size of copies we're
- * talking here, the total execution time is dominated by the one-time
- * setup cost. So there is no point in trying to be excessively
- * clever -- esr.
- */
-
- /* shift n lines downwards */
- if (n < 0) {
- limit = top - n;
- if (limit > win->_maxy)
- limit = win->_maxy;
- for (line = bottom; line >= limit; line--) {
- if (line + n >= 0) {
- TR(TRACE_MOVE, ("...copying %d to %d", line + n, line));
- memcpy(win->_line[line].text,
- win->_line[line + n].text,
- to_copy);
- if_USE_SCROLL_HINTS(win->_line[line].oldindex =
- win->_line[line + n].oldindex);
- } else {
- TR(TRACE_MOVE, ("...filling %d", line));
- for (j = 0; j <= win->_maxx; j++)
- win->_line[line].text[j] = blank;
- if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
- }
- }
- for (line = 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);
- }
- }
-
- /* shift n lines upwards */
- if (n > 0) {
- limit = bottom - n;
- if (limit < 0)
- limit = 0;
- for (line = top; line <= limit; line++) {
- if (line + n <= win->_maxy) {
- TR(TRACE_MOVE, ("...copying %d to %d", line + n, line));
- memcpy(win->_line[line].text,
- win->_line[line + n].text,
- to_copy);
- if_USE_SCROLL_HINTS(win->_line[line].oldindex =
- win->_line[line + n].oldindex);
- } else {
- TR(TRACE_MOVE, ("...filling %d", line));
- for (j = 0; j <= win->_maxx; j++)
- win->_line[line].text[j] = blank;
- if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX);
- }
- }
- for (line = 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);
- }
- }
- touchline(win, top, bottom - top + 1);
-}
-
-NCURSES_EXPORT(int)
-wscrl(WINDOW *win, int n)
-{
- T((T_CALLED("wscrl(%p,%d)"), win, n));
-
- if (!win || !win->_scroll) {
- TR(TRACE_MOVE, ("...scrollok is false"));
- returnCode(ERR);
- }
-
- if (n == 0)
- returnCode(OK);
-
- _nc_scroll_window(win, n, win->_regtop, win->_regbottom, win->_nc_bkgd);
-
- _nc_synchook(win);
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_scrollok.c b/ncurses-5.3/ncurses/base/lib_scrollok.c
deleted file mode 100644
index 125707a..0000000
--- a/ncurses-5.3/ncurses/base/lib_scrollok.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_scrollok.c
-**
-** The routine scrollok.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-scrollok(WINDOW *win, bool flag)
-{
- T((T_CALLED("scrollok(%p,%d)"), win, flag));
-
- if (win) {
- win->_scroll = flag;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_scrreg.c b/ncurses-5.3/ncurses/base/lib_scrreg.c
deleted file mode 100644
index d9c699f..0000000
--- a/ncurses-5.3/ncurses/base/lib_scrreg.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_scrreg.c
-**
-** The routine wsetscrreg().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wsetscrreg(WINDOW *win, int top, int bottom)
-{
- T((T_CALLED("wsetscrreg(%p,%d,%d)"), win, top, bottom));
-
- if (win &&
- top >= 0 && top <= win->_maxy &&
- bottom >= 0 && bottom <= win->_maxy &&
- bottom > top) {
- win->_regtop = (NCURSES_SIZE_T) top;
- win->_regbottom = (NCURSES_SIZE_T) bottom;
-
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_set_term.c b/ncurses-5.3/ncurses/base/lib_set_term.c
deleted file mode 100644
index 6942d06..0000000
--- a/ncurses-5.3/ncurses/base/lib_set_term.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_set_term.c
-**
-** The routine set_term().
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h> /* cur_term */
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(SCREEN *)
-set_term(SCREEN * screenp)
-{
- SCREEN *oldSP;
-
- T((T_CALLED("set_term(%p)"), screenp));
-
- oldSP = SP;
- _nc_set_screen(screenp);
-
- set_curterm(SP->_term);
- curscr = SP->_curscr;
- newscr = SP->_newscr;
- stdscr = SP->_stdscr;
- COLORS = SP->_color_count;
- COLOR_PAIRS = SP->_pair_count;
- memcpy(acs_map, SP->_acs_map, sizeof(SP->_acs_map[0]) * ACS_LEN);
-
- T((T_RETURN("%p"), oldSP));
- return (oldSP);
-}
-
-static void
-_nc_free_keytry(struct tries *kt)
-{
- if (kt != 0) {
- _nc_free_keytry(kt->child);
- _nc_free_keytry(kt->sibling);
- free(kt);
- }
-}
-
-/*
- * Free the storage associated with the given SCREEN sp.
- */
-NCURSES_EXPORT(void)
-delscreen(SCREEN * sp)
-{
- SCREEN **scan = &_nc_screen_chain;
-
- T((T_CALLED("delscreen(%p)"), sp));
-
- while (*scan) {
- if (*scan == sp) {
- *scan = sp->_next_screen;
- break;
- }
- scan = &(*scan)->_next_screen;
- }
-
- (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);
- sp->_keytry = 0;
-
- _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->hashtab);
-
- del_curterm(sp->_term);
-
- /*
- * If the associated output stream has been closed, we can discard the
- * set-buffer. Limit the error check to EBADF, since fflush may fail
- * for other reasons than trying to operate upon a closed stream.
- */
- if (sp->_ofp != 0
- && sp->_setbuf != 0
- && fflush(sp->_ofp) != 0
- && errno == EBADF) {
- free(sp->_setbuf);
- }
-
- free(sp);
-
- /*
- * If this was the current screen, reset everything that the
- * application might try to use (except cur_term, which may have
- * multiple references in different screens).
- */
- if (sp == SP) {
- curscr = 0;
- newscr = 0;
- stdscr = 0;
- COLORS = 0;
- COLOR_PAIRS = 0;
- _nc_set_screen(0);
- }
- returnVoid;
-}
-
-static ripoff_t rippedoff[5];
-static ripoff_t *rsp = rippedoff;
-#define N_RIPS SIZEOF(SP->_rippedoff)
-
-static bool
-no_mouse_event(SCREEN * sp GCC_UNUSED)
-{
- return FALSE;
-}
-
-static bool
-no_mouse_inline(SCREEN * sp GCC_UNUSED)
-{
- return FALSE;
-}
-
-static bool
-no_mouse_parse(int code GCC_UNUSED)
-{
- return TRUE;
-}
-
-static void
-no_mouse_resume(SCREEN * sp GCC_UNUSED)
-{
-}
-
-static void
-no_mouse_wrap(SCREEN * sp GCC_UNUSED)
-{
-}
-
-#if NCURSES_EXT_FUNCS && USE_COLORFGBG
-static char *
-extract_fgbg(char *src, int *result)
-{
- char *dst = 0;
- long value = strtol(src, &dst, 0);
-
- if (dst == 0) {
- dst = src;
- } else if (value >= 0) {
- *result = value;
- }
- while (*dst != 0 && *dst != ';')
- dst++;
- if (*dst == ';')
- dst++;
- return dst;
-}
-#endif
-
-NCURSES_EXPORT(int)
-_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())
- returnCode(ERR);
-
- SP->_next_screen = _nc_screen_chain;
- _nc_screen_chain = SP;
-
- _nc_set_buffer(output, TRUE);
- SP->_term = cur_term;
- SP->_lines = slines;
- SP->_lines_avail = slines;
- SP->_columns = scolumns;
- SP->_cursrow = -1;
- SP->_curscol = -1;
- SP->_nl = TRUE;
- SP->_raw = FALSE;
- SP->_cbreak = 0;
- SP->_echo = TRUE;
- SP->_fifohead = -1;
- SP->_endwin = TRUE;
- SP->_ofp = output;
- SP->_cursor = -1; /* cannot know real cursor shape */
-
-#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" : ""));
-#endif
-
-#if NCURSES_EXT_FUNCS
- SP->_default_color = FALSE;
- SP->_has_sgr_39_49 = FALSE;
-
- /*
- * Set our assumption of the terminal's default foreground and background
- * colors. The curs_color man-page states that we can assume that the
- * background is black. The origin of this assumption appears to be
- * terminals that displayed colored text, but no colored backgrounds, e.g.,
- * the first colored terminals around 1980. More recent ones with better
- * technology can display not only colored backgrounds, but all
- * combinations. So a terminal might be something other than "white" on
- * black (green/black looks monochrome too), but black on white or even
- * on ivory.
- *
- * White-on-black is the simplest thing to use for monochrome. Almost
- * all applications that use color paint both text and background, so
- * the distinction is moot. But a few do not - which is why we leave this
- * configurable (a better solution is to use assume_default_colors() for
- * the rare applications that do require that sort of appearance, since
- * is appears that more users expect to be able to make a white-on-black
- * or black-on-white display under control of the application than not).
- */
-#ifdef USE_ASSUMED_COLOR
- SP->_default_fg = COLOR_WHITE;
- SP->_default_bg = COLOR_BLACK;
-#else
- SP->_default_fg = C_MASK;
- 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
- * default colors. Note that rxvt (mis)uses bold colors, equating a bold
- * color to that value plus 8. We'll only use the non-bold color for now -
- * decide later if it is worth having default attributes as well.
- */
- 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));
- 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 */
-
- SP->_maxclick = DEFAULT_MAXCLICK;
- SP->_mouse_event = no_mouse_event;
- SP->_mouse_inline = no_mouse_inline;
- SP->_mouse_parse = no_mouse_parse;
- SP->_mouse_resume = no_mouse_resume;
- SP->_mouse_wrap = no_mouse_wrap;
- SP->_mouse_fd = -1;
-
- /* initialize the panel hooks */
- SP->_panelHook.top_panel = (struct panel *) 0;
- SP->_panelHook.bottom_panel = (struct panel *) 0;
- SP->_panelHook.stdscr_pseudo_panel = (struct panel *) 0;
-
- /*
- * If we've no magic cookie support, we suppress attributes that xmc
- * would affect, i.e., the attributes that affect the rendition of a
- * space. Note that this impacts the alternate character set mapping
- * as well.
- */
- if (magic_cookie_glitch > 0) {
-
- SP->_xmc_triggers = termattrs() & (
- A_ALTCHARSET |
- A_BLINK |
- A_BOLD |
- A_REVERSE |
- A_STANDOUT |
- A_UNDERLINE
- );
- SP->_xmc_suppress = SP->_xmc_triggers & (chtype) ~(A_BOLD);
-
- T(("magic cookie attributes %s", _traceattr(SP->_xmc_suppress)));
-#if USE_XMC_SUPPORT
- /*
- * To keep this simple, suppress all of the optimization hooks
- * except for clear_screen and the cursor addressing.
- */
- clr_eol = 0;
- clr_eos = 0;
- set_attributes = 0;
-#else
- magic_cookie_glitch = ABSENT_NUMERIC;
- acs_chars = 0;
-#endif
- }
-
- /* initialize normal acs before wide, since we use mapping in the latter */
- _nc_init_acs();
-#if USE_WIDEC_SUPPORT
- _nc_init_wacs();
-#endif
- memcpy(SP->_acs_map, acs_map, sizeof(chtype) * ACS_LEN);
-
- _nc_idcok = TRUE;
- _nc_idlok = FALSE;
-
- _nc_windows = 0; /* no windows yet */
-
- SP->oldhash = 0;
- SP->newhash = 0;
-
- T(("creating newscr"));
- if ((newscr = newwin(slines, scolumns, 0, 0)) == 0)
- returnCode(ERR);
-
- T(("creating curscr"));
- if ((curscr = newwin(slines, scolumns, 0, 0)) == 0)
- returnCode(ERR);
-
- SP->_newscr = newscr;
- SP->_curscr = curscr;
-#if USE_SIZECHANGE
- SP->_resize = resizeterm;
-#endif
-
- newscr->_clear = TRUE;
- curscr->_clear = FALSE;
-
- def_shell_mode();
- def_prog_mode();
-
- 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) {
- int count = (rsp->line < 0) ? -rsp->line : rsp->line;
-
- 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->_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)
- returnCode(ERR);
- SP->_stdscr = stdscr;
-
- returnCode(OK);
-}
-
-/* The internal implementation interprets line as the number of
- lines to rip off from the top or bottom.
- */
-NCURSES_EXPORT(int)
-_nc_ripoffline(int line, int (*init) (WINDOW *, int))
-{
- T((T_CALLED("_nc_ripoffline(%d, %p)"), line, init));
-
- if (line != 0) {
-
- if (rsp >= rippedoff + N_RIPS)
- returnCode(ERR);
-
- rsp->line = line;
- rsp->hook = init;
- rsp->w = 0;
- rsp++;
- }
-
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-ripoffline(int line, int (*init) (WINDOW *, int))
-{
- T((T_CALLED("ripoffline(%d,%p)"), line, init));
-
- if (line == 0)
- returnCode(OK);
-
- returnCode(_nc_ripoffline((line < 0) ? -1 : 1, init));
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slk.c b/ncurses-5.3/ncurses/base/lib_slk.c
deleted file mode 100644
index e2fb0f5..0000000
--- a/ncurses-5.3/ncurses/base/lib_slk.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/****************************************************************************
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slk.c
- * Soft key routines.
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <term.h> /* num_labels, label_*, plab_norm */
-
-MODULE_ID("$Id$")
-
-/*
- * We'd like to move these into the screen context structure, but cannot,
- * because slk_init() is called before initscr()/newterm().
- */
-NCURSES_EXPORT_VAR(int)
-_nc_slk_format = 0; /* one more than format specified in slk_init() */
-
-/*
- * Paint the info line for the PC style SLK emulation.
- *
- */
-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++) {
- mvwprintw(win, 0, SP->_slk->ent[i].x, "F%d", i + 1);
- }
- }
-}
-
-/*
- * Initialize soft labels.
- * Called from newterm()
- */
-NCURSES_EXPORT(int)
-_nc_slk_initialize(WINDOW *stwin, int cols)
-{
- 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;
-
- 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)
- gap = 1;
- for (i = x = 0; i < SP->_slk->maxlab; i++) {
- 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 * max_length) - 5)
- / 2;
-
- if (gap < 1)
- gap = 1;
- for (i = x = 0; i < SP->_slk->maxlab; i++) {
- SP->_slk->ent[i].x = x;
- x += max_length;
- x += (i == 2 || i == 4) ? gap : 1;
- }
- } else
- 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);
- }
- }
-
- /* 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.
- */
-NCURSES_EXPORT(int)
-slk_restore(void)
-{
- 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);
-
- returnCode(slk_refresh());
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkatr_set.c b/ncurses-5.3/ncurses/base/lib_slkatr_set.c
deleted file mode 100644
index 45c366d..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkatr_set.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1998 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/*
- * lib_slkatr_set.c
- * Soft key routines.
- * Set the labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-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));
-
- 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkatrof.c b/ncurses-5.3/ncurses/base/lib_slkatrof.c
deleted file mode 100644
index 507a5ec..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkatrof.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkatrof.c
- * Soft key routines.
- * Switch off labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-slk_attroff(const chtype attr)
-{
- T((T_CALLED("slk_attroff(%s)"), _traceattr(attr)));
-
- if (SP != 0 && SP->_slk != 0) {
- toggle_attr_off(SP->_slk->attr, attr);
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkatron.c b/ncurses-5.3/ncurses/base/lib_slkatron.c
deleted file mode 100644
index 23bd3ad..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkatron.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkatron.c
- * Soft key routines.
- * Switch on labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-slk_attron(const chtype attr)
-{
- T((T_CALLED("slk_attron(%s)"), _traceattr(attr)));
-
- if (SP != 0 && SP->_slk != 0) {
- toggle_attr_on(SP->_slk->attr, attr);
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkatrset.c b/ncurses-5.3/ncurses/base/lib_slkatrset.c
deleted file mode 100644
index 3823111..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkatrset.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkatrset.c
- * Soft key routines.
- * Set the labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-slk_attrset(const chtype attr)
-{
- T((T_CALLED("slk_attrset(%s)"), _traceattr(attr)));
-
- if (SP != 0 && SP->_slk != 0) {
- SP->_slk->attr = attr;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkattr.c b/ncurses-5.3/ncurses/base/lib_slkattr.c
deleted file mode 100644
index fa3c549..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkattr.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkattr.c
- * Soft key routines.
- * Fetch the labels attributes
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(attr_t)
-slk_attr(void)
-{
- T((T_CALLED("slk_attr()")));
-
- if (SP != 0 && SP->_slk != 0) {
- returnAttr(SP->_slk->attr);
- } else
- returnAttr(0);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkclear.c b/ncurses-5.3/ncurses/base/lib_slkclear.c
deleted file mode 100644
index ddf10b7..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkclear.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkclear.c
- * Soft key routines.
- * Remove soft labels from the screen.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-slk_clear(void)
-{
- 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->_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));
- }
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkcolor.c b/ncurses-5.3/ncurses/base/lib_slkcolor.c
deleted file mode 100644
index d485111..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkcolor.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Juergen Pfeifer, 1998 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
- ****************************************************************************/
-
-/*
- * lib_slkcolor.c
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-slk_color(short 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkinit.c b/ncurses-5.3/ncurses/base/lib_slkinit.c
deleted file mode 100644
index cec5166..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkinit.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkinit.c
- * Soft key routines.
- * Initialize soft labels. Called by the user before initscr().
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slklab.c b/ncurses-5.3/ncurses/base/lib_slklab.c
deleted file mode 100644
index 85a300d..0000000
--- a/ncurses-5.3/ncurses/base/lib_slklab.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slklab.c
- * Soft key routines.
- * Fetch the label text.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(char *)
-slk_label(int 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkrefr.c b/ncurses-5.3/ncurses/base/lib_slkrefr.c
deleted file mode 100644
index 5a55172..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkrefr.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkrefr.c
- * Write SLK window to the (virtual) screen.
- */
-#include <curses.priv.h>
-#include <term.h> /* num_labels, label_*, plab_norm */
-
-MODULE_ID("$Id$")
-
-/*
- * Write the soft labels to the soft-key window.
- */
-static void
-slk_intern_refresh(SLK * slk)
-{
- 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;
- }
- }
- 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);
- }
- }
-}
-
-/*
- * Refresh the soft labels.
- */
-NCURSES_EXPORT(int)
-slk_noutrefresh(void)
-{
- T((T_CALLED("slk_noutrefresh()")));
-
- if (SP == NULL || SP->_slk == NULL)
- returnCode(ERR);
- if (SP->_slk->hidden)
- returnCode(OK);
- slk_intern_refresh(SP->_slk);
-
- returnCode(wnoutrefresh(SP->_slk->win));
-}
-
-/*
- * Refresh the soft labels.
- */
-NCURSES_EXPORT(int)
-slk_refresh(void)
-{
- T((T_CALLED("slk_refresh()")));
-
- if (SP == NULL || SP->_slk == NULL)
- returnCode(ERR);
- if (SP->_slk->hidden)
- returnCode(OK);
- slk_intern_refresh(SP->_slk);
-
- returnCode(wrefresh(SP->_slk->win));
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slkset.c b/ncurses-5.3/ncurses/base/lib_slkset.c
deleted file mode 100644
index 6faf562..0000000
--- a/ncurses-5.3/ncurses/base/lib_slkset.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slkset.c
- * Set soft label text.
- */
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-slk_set(int i, const char *astr, int format)
-{
- 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));
-
- if (slk == NULL || i < 1 || i > slk->labcnt || format < 0 || format > 2)
- returnCode(ERR);
- if (str == NULL)
- str = "";
-
- 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 */
-
- 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_slktouch.c b/ncurses-5.3/ncurses/base/lib_slktouch.c
deleted file mode 100644
index b4875d7..0000000
--- a/ncurses-5.3/ncurses/base/lib_slktouch.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_slktouch.c
- * Soft key routines.
- * Force the code to believe that the soft keys have been changed.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-slk_touch(void)
-{
- T((T_CALLED("slk_touch()")));
-
- if (SP == NULL || SP->_slk == NULL)
- returnCode(ERR);
- SP->_slk->dirty = TRUE;
-
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_touch.c b/ncurses-5.3/ncurses/base/lib_touch.c
deleted file mode 100644
index ba1b4e2..0000000
--- a/ncurses-5.3/ncurses/base/lib_touch.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_touch.c
-**
-** The routines untouchwin(),
-** wtouchln(),
-** is_linetouched()
-** is_wintouched().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(bool)
-is_linetouched(WINDOW *win, int line)
-{
- T((T_CALLED("is_linetouched(%p,%d)"), win, line));
-
- /* XSI doesn't define any error */
- if (!win || (line > win->_maxy) || (line < 0))
- returnCode((bool) ERR);
-
- returnCode(win->_line[line].firstchar != _NOCHANGE ? TRUE : FALSE);
-}
-
-NCURSES_EXPORT(bool)
-is_wintouched(WINDOW *win)
-{
- int i;
-
- 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);
-}
-
-NCURSES_EXPORT(int)
-wtouchln(WINDOW *win, int y, int n, int changed)
-{
- int i;
-
- T((T_CALLED("wtouchln(%p,%d,%d,%d)"), win, y, n, changed));
-
- 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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_ungetch.c b/ncurses-5.3/ncurses/base/lib_ungetch.c
deleted file mode 100644
index 72c6a8a..0000000
--- a/ncurses-5.3/ncurses/base/lib_ungetch.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_ungetch.c
-**
-** The routine ungetch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#include <fifo_defs.h>
-
-#ifdef TRACE
-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, _tracechar(SP->_fifo[i])));
-}
-#endif /* TRACE */
-
-NCURSES_EXPORT(int)
-ungetch(int ch)
-{
- T((T_CALLED("ungetch(%s)"), _tracechar(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
- if (_nc_tracing & TRACE_IEVENT)
- _nc_fifo_dump();
-#endif
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_vline.c b/ncurses-5.3/ncurses/base/lib_vline.c
deleted file mode 100644
index 9a57266..0000000
--- a/ncurses-5.3/ncurses/base/lib_vline.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_vline.c
-**
-** The routine wvline().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-wvline(WINDOW *win, chtype ch, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T row, col;
- NCURSES_SIZE_T end;
-
- 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;
- if (end > win->_maxy)
- end = win->_maxy;
-
- if (ch == 0)
- 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]);
- line->text[col] = wch;
- CHANGED_CELL(line, col);
- end--;
- }
-
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_wattroff.c b/ncurses-5.3/ncurses/base/lib_wattroff.c
deleted file mode 100644
index 909efa4..0000000
--- a/ncurses-5.3/ncurses/base/lib_wattroff.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_wattroff.c
-**
-** The routine wattr_off().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_wattron.c b/ncurses-5.3/ncurses/base/lib_wattron.c
deleted file mode 100644
index bfc42ad..0000000
--- a/ncurses-5.3/ncurses/base/lib_wattron.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_wattron.c
-**
-** The routines wattr_on().
-**
-*/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-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);
-}
diff --git a/ncurses-5.3/ncurses/base/lib_winch.c b/ncurses-5.3/ncurses/base/lib_winch.c
deleted file mode 100644
index 96af782..0000000
--- a/ncurses-5.3/ncurses/base/lib_winch.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-/*
-** lib_winch.c
-**
-** The routine winch().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(chtype)
-winch(WINDOW *win)
-{
- T((T_CALLED("winch(%p)"), win));
- if (win != 0) {
- returnChar(CharOf(win->_line[win->_cury].text[win->_curx]) |
- AttrOf(win->_line[win->_cury].text[win->_curx]));
- } else {
- returnChar(0);
- }
-}
diff --git a/ncurses-5.3/ncurses/base/lib_window.c b/ncurses-5.3/ncurses/base/lib_window.c
deleted file mode 100644
index f2c437c..0000000
--- a/ncurses-5.3/ncurses/base/lib_window.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_window.c
-**
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(void)
-_nc_synchook(WINDOW *win)
-/* hook to be called after each window change */
-{
- if (win->_immed)
- wrefresh(win);
- if (win->_sync)
- wsyncup(win);
-}
-
-NCURSES_EXPORT(int)
-mvderwin(WINDOW *win, int y, int x)
-/* 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)
- 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);
-}
-
-NCURSES_EXPORT(int)
-syncok(WINDOW *win, bool bf)
-/* enable/disable automatic wsyncup() on each change to window */
-{
- T((T_CALLED("syncok(%p,%d)"), win, bf));
-
- if (win) {
- win->_sync = bf;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
-
-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...) */
-{
- 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;
-}
-
-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...) */
-{
- 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;
-}
-
-NCURSES_EXPORT(void)
-wcursyncup(WINDOW *win)
-/* sync the cursor in all derived windows to its value in the base window */
-{
- 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;
-}
-
-NCURSES_EXPORT(WINDOW *)
-dupwin(WINDOW *win)
-/* make an exact duplicate of the given window */
-{
- 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);
- nwin->_line[i].firstchar = win->_line[i].firstchar;
- nwin->_line[i].lastchar = win->_line[i].lastchar;
- }
- }
- }
- returnWin(nwin);
-}
diff --git a/ncurses-5.3/ncurses/base/memmove.c b/ncurses-5.3/ncurses/base/memmove.c
deleted file mode 100644
index 9f9181a..0000000
--- a/ncurses-5.3/ncurses/base/memmove.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-#if USE_MY_MEMMOVE
-#define DST ((char *)s1)
-#define SRC ((const char *)s2)
-NCURSES_EXPORT(void *)
-_nc_memmove(void *s1, const void *s2, size_t n)
-{
- if (n != 0) {
- if ((DST + n > SRC) && (SRC + n > DST)) {
- static char *bfr;
- static size_t length;
- register size_t j;
- if (length < n) {
- length = (n * 3) / 2;
- bfr = typeRealloc(char, length, bfr);
- }
- for (j = 0; j < n; j++)
- bfr[j] = SRC[j];
- SRC = bfr;
- }
- while (n-- != 0)
- DST[n] = SRC[n];
- }
- return s1;
-}
-#else
-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 */
diff --git a/ncurses-5.3/ncurses/base/nc_panel.c b/ncurses-5.3/ncurses/base/nc_panel.c
deleted file mode 100644
index 6bacbb5..0000000
--- a/ncurses-5.3/ncurses/base/nc_panel.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(struct panelhook *)
-_nc_panelhook(void)
-{
- return (SP ? &(SP->_panelHook) : NULL);
-}
diff --git a/ncurses-5.3/ncurses/base/resizeterm.c b/ncurses-5.3/ncurses/base/resizeterm.c
deleted file mode 100644
index 0d2f6a7..0000000
--- a/ncurses-5.3/ncurses/base/resizeterm.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
- * This is an extension to the curses library. It provides callers with a hook
- * into the NCURSES data to resize windows, primarily for use by programs
- * running in an X Window terminal (e.g., xterm). I abstracted this module
- * from my application library for NCURSES because it must be compiled with
- * the private data structures -- T.Dickey 1995/7/4.
- */
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-#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
- * response to a SIGWINCH interrupt. Other user-defined windows may also need
- * to be reallocated.
- *
- * Because this performs memory allocation, it should not (in general) be
- * invoked directly from the signal handler.
- */
-NCURSES_EXPORT(int)
-resizeterm(int ToLines, int ToCols)
-{
- int result = OK;
-
- SP->_sig_winch = FALSE;
-
- T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"),
- ToLines, ToCols,
- screen_lines, screen_columns));
-
- if (is_term_resized(ToLines, ToCols)) {
-
-#if USE_SIGWINCH
- ungetch(KEY_RESIZE); /* so application can know this */
- clearok(curscr, TRUE); /* screen contents are unknown */
-#endif
-
- result = resize_term(ToLines, ToCols);
- }
-
- returnCode(result);
-}
diff --git a/ncurses-5.3/ncurses/base/safe_sprintf.c b/ncurses-5.3/ncurses/base/safe_sprintf.c
deleted file mode 100644
index b9d9ae4..0000000
--- a/ncurses-5.3/ncurses/base/safe_sprintf.c
+++ /dev/null
@@ -1,244 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1997 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-#if USE_SAFE_SPRINTF
-
-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_POINT(type) pval = (void *)va_arg(ap, type)
-
-/*
- * Scan a variable-argument list for printf to determine the number of
- * characters that would be emitted.
- */
-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(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;
- }
- }
- 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;
-}
-#endif
-
-/*
- * Wrapper for vsprintf that allocates a buffer big enough to hold the result.
- */
-NCURSES_EXPORT(char *)
-_nc_printf_string
-(const char *fmt, va_list ap)
-{
-#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);
- }
-#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);
- }
- }
-
- if (buf != 0) {
-# if HAVE_VSNPRINTF
- vsnprintf(buf, len, fmt, ap); /* GNU extension */
-# else
- vsprintf(buf, fmt, ap); /* ANSI */
-# endif
- }
-#endif
- return buf;
-}
diff --git a/ncurses-5.3/ncurses/base/sigaction.c b/ncurses-5.3/ncurses/base/sigaction.c
deleted file mode 100644
index b2f23db..0000000
--- a/ncurses-5.3/ncurses/base/sigaction.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <SigAction.h>
-
-/* This file provides sigaction() emulation using sigvec() */
-/* Use only if this is non POSIX system */
-
-#if !HAVE_SIGACTION && HAVE_SIGVEC
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-sigaction
-(int sig, sigaction_t * sigact, sigaction_t * osigact)
-{
- return sigvec(sig, sigact, osigact);
-}
-
-NCURSES_EXPORT(int)
-sigemptyset
-(sigset_t * mask)
-{
- *mask = 0;
- return 0;
-}
-
-NCURSES_EXPORT(int)
-sigprocmask
-(int mode, sigset_t * mask, sigset_t * omask)
-{
- sigset_t current = sigsetmask(0);
-
- if (omask)
- *omask = current;
-
- if (mode == SIG_BLOCK)
- current |= *mask;
- else if (mode == SIG_UNBLOCK)
- current &= ~*mask;
- else if (mode == SIG_SETMASK)
- current = *mask;
-
- sigsetmask(current);
- return 0;
-}
-
-NCURSES_EXPORT(int)
-sigsuspend(sigset_t * mask)
-{
- return sigpause(*mask);
-}
-
-NCURSES_EXPORT(int)
-sigdelset
-(sigset_t * mask, int sig)
-{
- *mask &= ~sigmask(sig);
- return 0;
-}
-
-NCURSES_EXPORT(int)
-sigaddset
-(sigset_t * mask, int sig)
-{
- *mask |= sigmask(sig);
- return 0;
-}
-
-NCURSES_EXPORT(int)
-sigismember
-(sigset_t * mask, int sig)
-{
- return (*mask & sigmask(sig)) != 0;
-}
-
-#else
-extern
-NCURSES_EXPORT(void)
-_nc_sigaction(void); /* quiet's gcc warning */
-NCURSES_EXPORT(void)
-_nc_sigaction(void)
-{
-} /* nonempty for strict ANSI compilers */
-#endif
diff --git a/ncurses-5.3/ncurses/base/tries.c b/ncurses-5.3/ncurses/base/tries.c
deleted file mode 100644
index 0b3a058..0000000
--- a/ncurses-5.3/ncurses/base/tries.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-/*
-** tries.c
-**
-** Functions to manage the tree of partial-completions for keycodes.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Expand a keycode into the string that it corresponds to, returning null if
- * no match was found, otherwise allocating a string of the result.
- */
-NCURSES_EXPORT(char *)
-_nc_expand_try
-(struct tries *tree, unsigned short code, int *count, size_t len)
-{
- 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 (result != 0) {
- if ((result[len] = ptr->ch) == 0)
- *((unsigned char *) (result + len)) = 128;
-#ifdef TRACE
- if (len == 0)
- _tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result));
-#endif
- }
- return result;
-}
-
-/*
- * Remove a code from the specified tree, freeing the unused nodes. Returns
- * true if the code was found/removed.
- */
-NCURSES_EXPORT(int)
-_nc_remove_key
-(struct tries **tree, unsigned short 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;
- }
- returnCode(FALSE);
-}
-
-/*
- * Remove a string from the specified tree, freeing the unused nodes. Returns
- * true if the string was found/removed.
- */
-NCURSES_EXPORT(int)
-_nc_remove_string(struct tries **tree, char *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;
- }
- returnCode(FALSE);
-}
diff --git a/ncurses-5.3/ncurses/base/version.c b/ncurses-5.3/ncurses/base/version.c
deleted file mode 100644
index 18813db..0000000
--- a/ncurses-5.3/ncurses/base/version.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1999 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(const char *)
-curses_version(void)
-{
- static char my_version[80];
-
- T((T_CALLED("curses_version()")));
- sprintf(my_version, "ncurses %s.%d",
- NCURSES_VERSION,
- NCURSES_VERSION_PATCH);
- returnPtr(my_version);
-}
diff --git a/ncurses-5.3/ncurses/base/vsscanf.c b/ncurses-5.3/ncurses/base/vsscanf.c
deleted file mode 100644
index 29c46b6..0000000
--- a/ncurses-5.3/ncurses/base/vsscanf.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/****************************************************************************
- * 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
- */
-
-#include <curses.priv.h>
-
-#if !HAVE_VSSCANF
-
-MODULE_ID("$Id$")
-
-#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
-
-/*VARARGS2*/
-NCURSES_EXPORT(int)
-vsscanf(const char *str, const char *format, va_list ap)
-{
-#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;
-
-#if HAVE_VFSCANF
- return (vfscanf(&strbuf, format, ap));
-#else
- return (_doscan(&strbuf, format, ap));
-#endif
-#else
- 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
-}
-#else
-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 */
diff --git a/ncurses-5.3/ncurses/base/wresize.c b/ncurses-5.3/ncurses/base/wresize.c
deleted file mode 100644
index 7edad36..0000000
--- a/ncurses-5.3/ncurses/base/wresize.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1996-2002 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-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.
- */
-NCURSES_EXPORT(int)
-wresize(WINDOW *win, int ToLines, int ToCols)
-{
- int col, row, size_x, size_y;
- struct ldat *pline;
- 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)",
- win->_begy, win->_begx,
- win->_maxy, win->_maxx,
- win->_regtop, win->_regbottom));
- if (_nc_tracing & TRACE_UPDATE)
- _tracedump("...before", win);
- }
-#endif
-
- if (!win || --ToLines < 0 || --ToCols < 0)
- returnCode(ERR);
-
- size_x = win->_maxx;
- size_y = win->_maxy;
-
- if (ToLines == size_y
- && ToCols == size_x)
- returnCode(OK);
-
- if ((win->_flags & _SUBWIN)) {
- /*
- * Check if the new limits will fit into the parent window's size. If
- * not, do not resize. We could adjust the location of the subwindow,
- * but the application may not like that.
- */
- if (win->_pary + ToLines > win->_parent->_maxy
- || win->_parx + ToCols > win->_parent->_maxx) {
- returnCode(ERR);
- }
- pline = win->_parent->_line;
- } else {
- pline = 0;
- }
-
- /*
- * 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.
- */
- 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 (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];
- }
-
- 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;
- }
-
- /*
- * Dispose of unwanted memory.
- */
- if (!(win->_flags & _SUBWIN)) {
- if (ToCols == size_x) {
- for (row = ToLines + 1; row <= size_y; row++) {
- free(win->_line[row].text);
- }
- } 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:
- */
- win->_maxx = ToCols;
- win->_maxy = ToLines;
-
- if (win->_regtop > win->_maxy)
- win->_regtop = win->_maxy;
- if (win->_regbottom > win->_maxy
- || win->_regbottom == size_y)
- win->_regbottom = win->_maxy;
-
- if (win->_curx > win->_maxx)
- win->_curx = win->_maxx;
- 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)",
- win->_begy, win->_begx,
- win->_maxy, win->_maxx,
- win->_regtop, win->_regbottom));
- if (_nc_tracing & TRACE_UPDATE)
- _tracedump("...after:", win);
-#endif
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/curses.priv.h b/ncurses-5.3/ncurses/curses.priv.h
deleted file mode 100644
index 3e52a43..0000000
--- a/ncurses-5.3/ncurses/curses.priv.h
+++ /dev/null
@@ -1,1057 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * 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
- *
- * Header file for curses library objects which are private to
- * the library.
- *
- */
-
-#ifndef CURSES_PRIV_H
-#define CURSES_PRIV_H 1
-
-#include <ncurses_dll.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <ncurses_cfg.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#if HAVE_SYS_BSDTYPES_H
-#include <sys/bsdtypes.h> /* needed for ISC */
-#endif
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-#ifndef PATH_MAX
-# if defined(_POSIX_PATH_MAX)
-# define PATH_MAX _POSIX_PATH_MAX
-# elif defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 255 /* the Posix minimum path-size */
-# endif
-#endif
-
-#include <assert.h>
-#include <stdio.h>
-
-#include <errno.h>
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-#include <nc_panel.h>
-
-/* Some systems have a broken 'select()', but workable 'poll()'. Use that */
-#if HAVE_WORKING_POLL
-#define USE_FUNC_POLL 1
-#if HAVE_POLL_H
-#include <poll.h>
-#else
-#include <sys/poll.h>
-#endif
-#else
-#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
-#else
-#define USE_GPM_SUPPORT 0
-#endif
-
-/* QNX mouse support */
-#if defined(__QNX__) && !defined(__QNXNTO__)
-#define USE_QNX_MOUSE 1
-#else
-#define USE_QNX_MOUSE 0
-#endif
-
-/* EMX mouse support */
-#ifdef __EMX__
-#define USE_EMX_MOUSE
-#endif
-
-#define DEFAULT_MAXCLICK 166
-#define EV_MAX 8 /* size of mouse circular event queue */
-
-/*
- * If we don't have signals to support it, don't add a sigwinch handler.
- * In any case, resizing is an extended feature. Use it if we've got it.
- */
-#if !NCURSES_EXT_FUNCS
-#undef HAVE_SIZECHANGE
-#define HAVE_SIZECHANGE 0
-#endif
-
-#if HAVE_SIZECHANGE && defined(SIGWINCH)
-#define USE_SIZECHANGE 1
-#else
-#define USE_SIZECHANGE 0
-#undef USE_SIGWINCH
-#define USE_SIGWINCH 0
-#endif
-
-/*
- * If desired, one can configure this, disabling environment variables that
- * point to custom terminfo/termcap locations.
- */
-#ifdef USE_ROOT_ENVIRON
-#define use_terminfo_vars() 1
-#else
-#define use_terminfo_vars() _nc_env_access()
-extern NCURSES_EXPORT(int) _nc_env_access (void);
-#endif
-
-/*
- * Not all platforms have memmove; some have an equivalent bcopy. (Some may
- * have neither).
- */
-#if USE_OK_BCOPY
-#define memmove(d,s,n) bcopy(s,d,n)
-#elif USE_MY_MEMMOVE
-#define memmove(d,s,n) _nc_memmove(d,s,n)
-extern NCURSES_EXPORT(void *) _nc_memmove (void *, const void *, size_t);
-#endif
-
-/*
- * Scroll hints are useless when hashmap is used
- */
-#if !USE_SCROLL_HINTS
-#if !USE_HASHMAP
-#define USE_SCROLL_HINTS 1
-#else
-#define USE_SCROLL_HINTS 0
-#endif
-#endif
-
-#if USE_SCROLL_HINTS
-#define if_USE_SCROLL_HINTS(stmt) stmt
-#else
-#define if_USE_SCROLL_HINTS(stmt) /*nothing*/
-#endif
-
-/*
- * Note: ht/cbt expansion flakes out randomly under Linux 1.1.47, but only
- * when we're throwing control codes at the screen at high volume. To see
- * this, re-enable USE_HARD_TABS and run worm for a while. Other systems
- * probably don't want to define this either due to uncertainties about tab
- * delays and expansion in raw mode.
- */
-
-struct tries {
- struct tries *child; /* ptr to child. NULL if none */
- struct tries *sibling; /* ptr to sibling. NULL if none */
- unsigned char ch; /* character at this node */
- unsigned short value; /* code of string so far. 0 if none. */
-};
-
-/*
- * Definitions for color pairs
- */
-#define C_SHIFT 8 /* we need more bits than there are colors */
-#define C_MASK ((1 << C_SHIFT) - 1)
-
-#define PAIR_OF(fg, bg) ((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK))
-
-/*
- * Common/troublesome character definitions
- */
-#define L_BRACE '{'
-#define R_BRACE '}'
-#define S_QUOTE '\''
-#define D_QUOTE '"'
-
-#define VT_ACSC "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~"
-
-/*
- * Structure for palette tables
- */
-
-typedef struct
-{
- short red, green, blue; /* what color_content() returns */
- short r, g, b; /* params to init_color() */
- int init; /* true if we called init_color() */
-}
-color_t;
-
-#define MAXCOLUMNS 135
-#define MAXLINES 66
-#define FIFO_SIZE MAXCOLUMNS+2 /* for nocbreak mode input */
-
-#define ACS_LEN 128
-
-#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 <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.
- */
-
-typedef struct
-{
- char *text; /* text for the label */
- char *form_text; /* formatted text (left/center/...) */
- int x; /* x coordinate of this field */
- char dirty; /* this label has changed */
- char visible; /* field is visible */
-} slk_ent;
-
-typedef struct {
- char dirty; /* all labels have changed */
- char hidden; /* soft labels are hidden */
- WINDOW *win;
- slk_ent *ent;
- char* buffer; /* buffer for labels */
- short maxlab; /* number of available labels */
- short labcnt; /* number of allocated labels */
- short maxlen; /* length of labels */
- chtype attr; /* soft label attribute */
-} 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 */
- char *_setbuf; /* buffered I/O for output */
- int _buffered; /* setvbuf uses _setbuf data */
- int _checkfd; /* filedesc for typeahead check */
- struct term *_term; /* terminal type information */
- short _lines; /* screen lines */
- short _columns; /* screen columns */
-
- 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 *_stdscr; /* screen's full-window context */
-
- struct tries *_keytry; /* "Try" for use with keypad mode */
- struct tries *_key_ok; /* Disabled keys via keyok(,FALSE) */
- bool _tried; /* keypad mode was initialized */
- bool _keypad_on; /* keypad mode is currently on */
-
- int _fifo[FIFO_SIZE]; /* input push-back buffer */
- short _fifohead, /* head of fifo queue */
- _fifotail, /* tail of fifo queue */
- _fifopeek, /* where to peek for next char */
- _fifohold; /* set if breakout marked */
-
- int _endwin; /* are we out of window mode? */
- attr_t _current_attr; /* terminal attribute current set */
- 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 _nl; /* True if NL -> CR/NL is on */
- int _raw; /* True if in raw mode */
- int _cbreak; /* 1 if in cbreak mode */
- /* > 1 if in halfdelay mode */
- int _echo; /* True if echo on */
- int _use_meta; /* use the meta key? */
- SLK *_slk; /* ptr to soft key struct / NULL */
- int slk_format; /* selected format for this screen */
- /* cursor movement costs; units are 10ths of milliseconds */
-#if NCURSES_NO_PADDING
- int _no_padding; /* flag to set if padding disabled */
-#endif
- int _char_padding; /* cost of character put */
- int _cr_cost; /* cost of (carriage_return) */
- int _cup_cost; /* cost of (cursor_address) */
- int _home_cost; /* cost of (cursor_home) */
- int _ll_cost; /* cost of (cursor_to_ll) */
-#if USE_HARD_TABS
- int _ht_cost; /* cost of (tab) */
- int _cbt_cost; /* cost of (backtab) */
-#endif /* USE_HARD_TABS */
- int _cub1_cost; /* cost of (cursor_left) */
- int _cuf1_cost; /* cost of (cursor_right) */
- int _cud1_cost; /* cost of (cursor_down) */
- int _cuu1_cost; /* cost of (cursor_up) */
- int _cub_cost; /* cost of (parm_cursor_left) */
- int _cuf_cost; /* cost of (parm_cursor_right) */
- int _cud_cost; /* cost of (parm_cursor_down) */
- int _cuu_cost; /* cost of (parm_cursor_up) */
- int _hpa_cost; /* cost of (column_address) */
- int _vpa_cost; /* cost of (row_address) */
- /* used in tty_update.c, must be chars */
- int _ed_cost; /* cost of (clr_eos) */
- int _el_cost; /* cost of (clr_eol) */
- int _el1_cost; /* cost of (clr_bol) */
- int _dch1_cost; /* cost of (delete_character) */
- int _ich1_cost; /* cost of (insert_character) */
- int _dch_cost; /* cost of (parm_dch) */
- int _ich_cost; /* cost of (parm_ich) */
- int _ech_cost; /* cost of (erase_chars) */
- int _rep_cost; /* cost of (repeat_char) */
- int _hpa_ch_cost; /* cost of (column_address) */
- int _cup_ch_cost; /* cost of (cursor_address) */
- int _cuf_ch_cost; /* cost of (parm_cursor_right) */
- int _inline_cost; /* cost of inline-move */
- int _smir_cost; /* cost of (enter_insert_mode) */
- int _rmir_cost; /* cost of (exit_insert_mode) */
- int _ip_cost; /* cost of (insert_padding) */
- /* used in lib_mvcur.c */
- char * _address_cursor;
- /* used in tty_update.c */
- int _scrolling; /* 1 if terminal's smart enough to */
-
- /* used in lib_color.c */
- color_t *_color_table; /* screen's color palette */
- int _color_count; /* count of colors in palette */
- unsigned short *_color_pairs; /* screen's color pair list */
- int _pair_count; /* count of color pairs */
-#if NCURSES_EXT_FUNCS
- bool _default_color; /* use default colors */
- bool _has_sgr_39_49; /* has ECMA default color support */
- int _default_fg; /* assumed default foreground */
- int _default_bg; /* assumed default background */
-#endif
- chtype _xmc_suppress; /* attributes to suppress if xmc */
- chtype _xmc_triggers; /* attributes to process if xmc */
- chtype _acs_map[ACS_LEN];
-
- /* used in lib_vidattr.c */
- bool _use_rmso; /* true if we may use 'rmso' */
- bool _use_rmul; /* true if we may use 'rmul' */
-
- /*
- * These data correspond to the state of the idcok() and idlok()
- * functions. A caveat is in order here: the XSI and SVr4
- * documentation specify that these functions apply to the window which
- * is given as an argument. However, ncurses implements this logic
- * only for the newscr/curscr update process, _not_ per-window.
- */
- bool _nc_sp_idlok;
- bool _nc_sp_idcok;
-#define _nc_idlok SP->_nc_sp_idlok
-#define _nc_idcok SP->_nc_sp_idcok
-
- /*
- * These are the data that support the mouse interface.
- */
- int _maxclick;
- bool (*_mouse_event) (SCREEN *);
- bool (*_mouse_inline)(SCREEN *);
- bool (*_mouse_parse) (int);
- void (*_mouse_resume)(SCREEN *);
- void (*_mouse_wrap) (SCREEN *);
- int _mouse_fd; /* file-descriptor, if any */
-
- /*
- * This supports automatic resizing
- */
-#if USE_SIZECHANGE
- int (*_resize)(int,int);
-#endif
-
- /*
- * These are data that support the proper handling of the panel stack on an
- * per screen basis.
- */
- struct panelhook _panelHook;
- /*
- * Linked-list of all windows, to support '_nc_resizeall()' and
- * '_nc_freeall()'
- */
- WINDOWLIST *_nc_sp_windows;
-#define _nc_windows SP->_nc_sp_windows
-
- bool _sig_winch;
- SCREEN *_next_screen;
-
- /* 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 */
-};
-
-extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
-
-#if NCURSES_NOMACROS
-#include <nomacros.h>
-#endif
-
-/*
- * The margins are used in resizeterm() to retain the original layout after
- * resizing.
- */
- WINDOWLIST {
- WINDOWLIST *next;
-#if HAVE_RESIZETERM
- int l_margin;
- int r_margin;
- int t_margin;
- int b_margin;
-#endif
- WINDOW win;
-};
-
-/* The terminfo source is assumed to be 7-bit ASCII */
-#define is7bits(c) ((unsigned)(c) < 128)
-
-#ifndef min
-#define min(a,b) ((a) > (b) ? (b) : (a))
-#endif
-
-#ifndef max
-#define max(a,b) ((a) < (b) ? (b) : (a))
-#endif
-
-/* usually in <unistd.h> */
-#ifndef STDIN_FILENO
-#define STDIN_FILENO 0
-#endif
-
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-#ifndef R_OK
-#define R_OK 4 /* Test for read permission. */
-#endif
-#ifndef W_OK
-#define W_OK 2 /* Test for write permission. */
-#endif
-#ifndef X_OK
-#define X_OK 1 /* Test for execute permission. */
-#endif
-#ifndef F_OK
-#define F_OK 0 /* Test for existence. */
-#endif
-
-#if HAVE_FCNTL_H
-#include <fcntl.h> /* may define O_BINARY */
-#endif
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-#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_CELL(line,col) \
- if (line->firstchar == _NOCHANGE) \
- line->firstchar = line->lastchar = col; \
- else if ((col) < line->firstchar) \
- line->firstchar = col; \
- else if ((col) > line->lastchar) \
- line->lastchar = col
-
-#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
-
-#define CHANGED_TO_EOL(line,start,end) \
- if (line->firstchar == _NOCHANGE \
- || line->firstchar > (start)) \
- line->firstchar = start; \
- line->lastchar = end
-
-#define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
-
-#define FreeIfNeeded(p) if ((p) != 0) free(p)
-
-/* FreeAndNull() is not a comma-separated expression because some compilers
- * do not accept a mixture of void with values.
- */
-#define FreeAndNull(p) free(p); p = 0
-
-#include <nc_alloc.h>
-
-/*
- * Prefixes for call/return points of library function traces. We use these to
- * 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
-
-#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 returnAttr(code) TRACE_RETURN(code,attr_t)
-#define returnChar(code) TRACE_RETURN(code,chtype)
-#define returnBool(code) TRACE_RETURN(code,bool)
-#define returnBits(code) TRACE_RETURN(code,unsigned)
-#define returnCode(code) TRACE_RETURN(code,int)
-#define returnPtr(code) TRACE_RETURN(code,ptr)
-#define returnSP(code) TRACE_RETURN(code,sp)
-#define returnVoid T((T_RETURN(""))); return
-#define returnWin(code) TRACE_RETURN(code,win)
-
-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 returnAttr(code) return code
-#define returnBits(code) return code
-#define returnBool(code) return code
-#define returnChar(code) return code
-#define returnCode(code) return code
-#define returnPtr(code) return code
-#define returnSP(code) return code
-#define returnVoid return
-#define returnWin(code) return code
-
-#endif /* TRACE/!TRACE */
-
-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 toggle_attr_on(S,at) {\
- if (PAIR_NUMBER(at) > 0)\
- (S) = ((S) & ALL_BUT_COLOR) | (at);\
- else\
- (S) |= (at);\
- TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
-
-
-#define toggle_attr_off(S,at) {\
- if (IGNORE_COLOR_OFF == TRUE) {\
- if (PAIR_NUMBER(at) == 0xff) /* turn off color */\
- (S) &= ~(at);\
- else /* leave color alone */\
- (S) &= ~((at)&ALL_BUT_COLOR);\
- } else {\
- if (PAIR_NUMBER(at) > 0x00) /* turn off color */\
- (S) &= ~(at|A_COLOR);\
- else /* leave color alone */\
- (S) &= ~(at);\
- }\
- TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
-
-#define DelCharCost(count) \
- ((parm_dch != 0) \
- ? SP->_dch_cost \
- : ((delete_character != 0) \
- ? (SP->_dch1_cost * count) \
- : INFINITY))
-
-#define InsCharCost(count) \
- ((parm_ich != 0) \
- ? SP->_ich_cost \
- : ((enter_insert_mode && exit_insert_mode) \
- ? SP->_smir_cost + SP->_rmir_cost + (SP->_ip_cost * count) \
- : ((insert_character != 0) \
- ? (SP->_ich1_cost * count) \
- : INFINITY)))
-
-#if USE_XMC_SUPPORT
-#define UpdateAttrs(a) if (SP->_current_attr != (a)) { \
- attr_t chg = SP->_current_attr; \
- vidattr((a)); \
- if (magic_cookie_glitch > 0 \
- && XMC_CHANGES((chg ^ SP->_current_attr))) { \
- T(("%s @%d before glitch %d,%d", \
- __FILE__, __LINE__, \
- SP->_cursrow, \
- SP->_curscol)); \
- _nc_do_xmc_glitch(chg); \
- } \
- }
-#else
-#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)
-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)
-extern NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *, attr_t);
-
-#undef DelCharCost
-#define DelCharCost(count) _nc_DelCharCost(count)
-extern NCURSES_EXPORT(int) _nc_DelCharCost (int);
-
-#undef InsCharCost
-#define InsCharCost(count) _nc_InsCharCost(count)
-extern NCURSES_EXPORT(int) _nc_InsCharCost (int);
-
-#undef UpdateAttrs
-#define UpdateAttrs(c) _nc_UpdateAttrs(c)
-extern NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype);
-
-#else
-
-extern NCURSES_EXPORT(void) _nc_expanded (void);
-
-#endif
-
-#if !HAVE_GETCWD
-#define getcwd(buf,len) getwd(buf)
-#endif
-
-/* doupdate.c */
-#if USE_XMC_SUPPORT
-extern NCURSES_EXPORT(void) _nc_do_xmc_glitch (attr_t);
-#endif
-
-/* hardscroll.c */
-#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
-extern NCURSES_EXPORT(void) _nc_linedump (void);
-#endif
-
-/* lib_acs.c */
-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 */
-
-extern NCURSES_EXPORT(void) _nc_mvcur_init (void);
-extern NCURSES_EXPORT(void) _nc_mvcur_resume (void);
-extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void);
-
-extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int);
-
-extern NCURSES_EXPORT(void) _nc_screen_init (void);
-extern NCURSES_EXPORT(void) _nc_screen_resume (void);
-extern NCURSES_EXPORT(void) _nc_screen_wrap (void);
-
-/* lib_mouse.c */
-extern NCURSES_EXPORT(int) _nc_has_mouse (void);
-
-/* 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;
- size_t s_size;
-} string_desc;
-
-/* strings.c */
-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 NCURSES_EXPORT(void) _nc_mvcur_init (void);
-extern NCURSES_EXPORT(void) _nc_mvcur_resume (void);
-extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void);
-
-extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int);
-
-extern NCURSES_EXPORT(void) _nc_screen_init (void);
-extern NCURSES_EXPORT(void) _nc_screen_resume (void);
-extern NCURSES_EXPORT(void) _nc_screen_wrap (void);
-
-#if !HAVE_STRSTR
-#define strstr _nc_strstr
-extern NCURSES_EXPORT(char *) _nc_strstr (const char *, const char *);
-#endif
-
-/* safe_sprintf.c */
-extern NCURSES_EXPORT(char *) _nc_printf_string (const char *, va_list);
-
-/* tries.c */
-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 ... */
-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
-extern NCURSES_EXPORT(void) _nc_update_screensize (void);
-#endif
-
-#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 */
-extern NCURSES_EXPORT_VAR(int *) _nc_oldnums;
-
-#define USE_SETBUF_0 0
-
-#define NC_BUFFERED(flag) \
- if ((SP->_buffered != 0) != flag) \
- _nc_set_buffer(SP->_ofp, flag)
-
-#define NC_OUTPUT ((SP != 0) ? SP->_ofp : stdout)
-
-/*
- * On systems with a broken linker, define 'SP' as a function to force the
- * linker to pull in the data-only module with 'SP'.
- */
-#if BROKEN_LINKER
-#define SP _nc_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 */
-extern NCURSES_EXPORT_VAR(SCREEN *) SP;
-#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, 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
-
-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
- */
-#define MAX_SKEY_OLD 8 /* count of soft keys */
-#define MAX_SKEY_LEN_OLD 8 /* max length of soft key text */
-#define MAX_SKEY_PC 12 /* This is what most PC's have */
-#define MAX_SKEY_LEN_PC 5
-
-/* Macro to check whether or not we use a standard format */
-#define SLK_STDFMT(fmt) (fmt < 3)
-/* Macro to determine height of label window */
-#define SLK_LINES(fmt) (SLK_STDFMT(fmt) ? 1 : ((fmt) - 2))
-
-#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 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
-}
-#endif
-
-#endif /* CURSES_PRIV_H */
diff --git a/ncurses-5.3/ncurses/fifo_defs.h b/ncurses-5.3/ncurses/fifo_defs.h
deleted file mode 100644
index d92b873..0000000
--- a/ncurses-5.3/ncurses/fifo_defs.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/****************************************************************************
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * Common macros for lib_getch.c, lib_ungetch.c
- *
- * $Id$
- */
-
-#ifndef FIFO_DEFS_H
-#define FIFO_DEFS_H 1
-
-#define head SP->_fifohead
-#define tail SP->_fifotail
-/* peek points to next uninterpreted character */
-#define peek SP->_fifopeek
-
-#define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;}
-#define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;}
-#define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;}
-#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear();}
-#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))
-
-#undef HIDE_EINTR
-
-#endif /* FIFO_DEFS_H */
diff --git a/ncurses-5.3/ncurses/llib-lncurses b/ncurses-5.3/ncurses/llib-lncurses
deleted file mode 100644
index 1a37819..0000000
--- a/ncurses-5.3/ncurses/llib-lncurses
+++ /dev/null
@@ -1,3061 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1996-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
-chtype _nc_render(
- WINDOW *win,
- chtype ch)
- { return(*(chtype *)0); }
-
-#undef _nc_waddch_nosync
-int _nc_waddch_nosync(
- WINDOW *win,
- const chtype 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); }
-
-/* ./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); }
-
-/* ./base/lib_beep.c */
-
-#undef beep
-int beep(void)
- { return(*(int *)0); }
-
-/* ./base/lib_bkgd.c */
-
-#undef wbkgdset
-void wbkgdset(
- WINDOW *win,
- chtype ch)
- { /* void */ }
-
-#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 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 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,
- chtype 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); }
-
-/* ./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 */ }
-
-/* ./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); }
-
-/* ./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
-NCURSES_OSPEED 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); }
-
-/* ./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); }
diff --git a/ncurses-5.3/ncurses/llib-lncursesw b/ncurses-5.3/ncurses/llib-lncursesw
deleted file mode 100644
index 7256eb9..0000000
--- a/ncurses-5.3/ncurses/llib-lncursesw
+++ /dev/null
@@ -1,3785 +0,0 @@
-/****************************************************************************
- * 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); }
diff --git a/ncurses-5.3/ncurses/modules b/ncurses-5.3/ncurses/modules
deleted file mode 100644
index 4ff4d12..0000000
--- a/ncurses-5.3/ncurses/modules
+++ /dev/null
@@ -1,211 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996-1998, etc.
-#
-
-@ base
-# Library objects
-hardscroll lib $(serial)
-hashmap lib $(serial) ../include/term.h
-lib_addch lib $(base)
-lib_addstr lib $(base)
-lib_beep lib $(base) ../include/term.h
-lib_bkgd lib $(base)
-lib_box lib $(base)
-lib_chgat lib $(base)
-lib_clear lib $(base)
-lib_clearok lib $(base)
-lib_clrbot lib $(base)
-lib_clreol lib $(base)
-lib_color lib $(base) ../include/term.h
-lib_colorset lib $(base)
-lib_delch lib $(base)
-lib_delwin lib $(base)
-lib_echo lib $(base)
-lib_endwin lib $(base) ../include/term.h
-lib_erase lib $(base)
-lib_flash lib $(base) ../include/term.h
-lib_gen lib . ../include/curses.h
-lib_getch lib $(base)
-lib_getstr lib $(base) ../include/term.h
-lib_hline lib $(base)
-lib_immedok lib $(base)
-lib_inchstr lib $(base)
-lib_initscr lib $(base) $(INCDIR)/tic.h
-lib_insch lib $(base)
-lib_insdel lib $(base)
-lib_insstr lib $(base)
-lib_instr lib $(base)
-lib_isendwin lib $(base)
-lib_leaveok lib $(base)
-lib_mouse lib $(base) ../include/term.h
-lib_move lib $(base)
-lib_mvcur lib $(serial) ../include/term.h $(INCDIR)/tic.h
-lib_mvwin lib $(base)
-lib_newterm lib $(base) ../include/term.h
-lib_newwin lib $(base)
-lib_nl lib $(base)
-lib_overlay lib $(base)
-lib_pad lib $(base)
-lib_printw lib $(base)
-lib_redrawln lib $(base)
-lib_refresh lib $(base)
-lib_restart lib $(base) ../include/term.h
-lib_scanw lib $(base)
-lib_screen lib $(base) ../include/term.h
-lib_scroll lib $(base)
-lib_scrollok lib $(base)
-lib_scrreg lib $(base)
-lib_set_term lib $(base) ../include/term.h
-lib_slk lib $(base) ../include/term.h
-lib_slkatr_set lib $(base)
-lib_slkatrof lib $(base)
-lib_slkatron lib $(base)
-lib_slkatrset lib $(base)
-lib_slkattr lib $(base)
-lib_slkclear lib $(base)
-lib_slkcolor lib $(base)
-lib_slkinit lib $(base)
-lib_slklab lib $(base)
-lib_slkrefr lib $(base) ../include/term.h
-lib_slkset lib $(base)
-lib_slktouch lib $(base)
-lib_touch lib $(base)
-lib_traceatr lib $(trace) ../include/term.h
-lib_tracedmp lib $(trace)
-lib_tracemse lib $(trace)
-lib_tstp lib $(serial)
-lib_ungetch lib $(base)
-lib_vidattr lib $(serial) ../include/term.h
-lib_vline lib $(base)
-lib_wattroff 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
-varargs lib $(trace)
-
-# 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)
-expanded lib .
-keybound lib $(base)
-keyok lib $(base)
-lib_dft_fgbg lib $(base) ../include/term.h
-lib_freeall lib $(base)
-lib_print lib $(tinfo) ../include/term.h
-resizeterm lib $(base) ../include/term.h
-trace_xnames lib $(trace) ../include/term.h $(INCDIR)/term_entry.h
-tries lib $(base)
-version lib $(base)
-wresize lib $(base) ../include/term.h
-
-# Support for termcap (and tic, etc.), which can be a separate library
-@ termlib
-access lib $(tinfo)
-add_tries lib $(tinfo)
-alloc_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-alloc_ttype lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-captoinfo lib $(tinfo) $(INCDIR)/tic.h
-codes lib .
-comp_captab lib . $(INCDIR)/tic.h ../include/term.h ../include/hashsize.h
-comp_error lib $(tinfo) $(INCDIR)/tic.h
-comp_expand lib $(tinfo) $(INCDIR)/tic.h
-comp_hash lib $(tinfo) ../include/term.h $(INCDIR)/tic.h ../include/hashsize.h
-comp_parse lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-comp_scan lib $(tinfo) $(INCDIR)/tic.h
-doalloc lib $(tinfo)
-fallback lib . ../include/term.h $(INCDIR)/tic.h
-free_ttype lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-getenv_num lib $(tinfo)
-home_terminfo lib $(tinfo)
-init_keytry lib $(tinfo) ../include/term.h $(INCDIR)/tic.h init_keytry.h
-lib_acs lib $(tinfo) ../include/term.h
-lib_baudrate lib $(tinfo) ../include/term.h
-lib_cur_term lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h
-lib_data lib $(tinfo)
-lib_has_cap lib $(tinfo) ../include/term.h
-lib_kernel lib $(tinfo) ../include/term.h
-lib_keyname lib . ../include/term.h
-lib_longname lib $(tinfo)
-lib_napms lib $(tinfo)
-lib_options lib $(tinfo) ../include/term.h
-lib_raw lib $(tinfo) ../include/term.h
-lib_setup lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h
-lib_termcap lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h $(INCDIR)/capdefaults.c
-lib_termname lib $(tinfo) $(INCDIR)/tic.h
-lib_tgoto lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-lib_ti lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-lib_tparm lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-lib_tputs lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-lib_trace lib $(trace) $(INCDIR)/tic.h
-lib_tracebits lib $(trace) ../include/term.h
-lib_tracechr lib $(trace)
-lib_ttyflags lib $(tinfo) ../include/term.h
-lib_twait lib $(serial)
-name_match lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
-names lib .
-parse_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c
-read_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-read_termcap lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
-setbuf lib $(tinfo)
-strings lib $(tinfo)
-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
diff --git a/ncurses-5.3/ncurses/tinfo/MKcaptab.awk b/ncurses-5.3/ncurses/tinfo/MKcaptab.awk
deleted file mode 100644
index c6efed1..0000000
--- a/ncurses-5.3/ncurses/tinfo/MKcaptab.awk
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-# $Id$
-AWK=${1-awk}
-DATA=${2-../include/Caps}
-
-cat <<'EOF'
-/*
- * comp_captab.c -- The names of the capabilities indexed via a hash
- * table for the compiler.
- *
- */
-
-#include <ncurses_cfg.h>
-#include <curses.priv.h>
-#include <tic.h>
-#include <term.h>
-
-EOF
-
-./make_hash 1 info <$DATA
-./make_hash 3 cap <$DATA
-
-cat <<'EOF'
-const struct alias _nc_capalias_table[] =
-{
-EOF
-
-$AWK <$DATA '
-$1 == "capalias" {
- if ($3 == "IGNORE")
- to = "(char *)NULL";
- else
- to = "\"" $3 "\"";
- printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n",
- $2, to, $4, $5
- }
-'
-
-cat <<'EOF'
- {(char *)NULL, (char *)NULL, (char *)NULL}
-};
-
-const struct alias _nc_infoalias_table[] =
-{
-EOF
-
-$AWK <$DATA '
-$1 == "infoalias" {
- if ($3 == "IGNORE")
- to = "(char *)NULL";
- else
- to = "\"" $3 "\"";
- printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n",
- $2, to, $4, $5
- }
-'
-
-cat <<'EOF'
- {(char *)NULL, (char *)NULL, (char *)NULL}
-};
-
-NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap)
-{
- return termcap ? _nc_cap_table: _nc_info_table ;
-}
-
-NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool termcap)
-{
- return termcap ? _nc_cap_hash_table: _nc_info_hash_table ;
-}
-EOF
diff --git a/ncurses-5.3/ncurses/tinfo/MKfallback.sh b/ncurses-5.3/ncurses/tinfo/MKfallback.sh
deleted file mode 100755
index c57ee59..0000000
--- a/ncurses-5.3/ncurses/tinfo/MKfallback.sh
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# MKfallback.sh -- create fallback table for entry reads
-#
-# This script generates source code for a custom version of read_entry.c
-# that (instead of reading capabilities for an argument terminal type
-# 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.
- */
-
-#include <curses.priv.h>
-#include <term.h>
-
-EOF
-
-if [ "$*" ]
-then
- cat <<EOF
-#include <tic.h>
-
-/* fallback entries for: $* */
-EOF
- for x in $*
- do
- echo "/* $x */"
- infocmp -E $x
- done
-
- cat <<EOF
-static const TERMTYPE fallbacks[$#] =
-{
-EOF
- comma=""
- for x in $*
- do
- echo "$comma /* $x */"
- infocmp -e $x
- comma=","
- done
-
- cat <<EOF
-};
-
-EOF
-fi
-
-cat <<EOF
-NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *name GCC_UNUSED)
-{
-EOF
-
-if [ "$*" ]
-then
- cat <<EOF
- const TERMTYPE *tp;
-
- for (tp = fallbacks;
- tp < fallbacks + sizeof(fallbacks)/sizeof(TERMTYPE);
- tp++)
- if (_nc_name_match(tp->term_names, name, "|"))
- return(tp);
-EOF
-else
- echo " /* the fallback list is empty */";
-fi
-
-cat <<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-5.3/ncurses/tinfo/MKkeys_list.sh b/ncurses-5.3/ncurses/tinfo/MKkeys_list.sh
deleted file mode 100755
index 32c79ba..0000000
--- a/ncurses-5.3/ncurses/tinfo/MKkeys_list.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#! /bin/sh
-# $Id$
-##############################################################################
-# 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
- }
-}
-'
diff --git a/ncurses-5.3/ncurses/tinfo/MKnames.awk b/ncurses-5.3/ncurses/tinfo/MKnames.awk
deleted file mode 100644
index afb0a5d..0000000
--- a/ncurses-5.3/ncurses/tinfo/MKnames.awk
+++ /dev/null
@@ -1,98 +0,0 @@
-# $Id$
-BEGIN {
- print "/* This file was generated by MKnames.awk */" > "namehdr"
- print "" > "namehdr"
- print "#include <curses.priv.h>" > "namehdr"
- print "" > "namehdr"
- print "#define IT NCURSES_CONST char * const" > "namehdr"
- print "" > "namehdr"
- print "#if BROKEN_LINKER" > "namehdr"
- print "#include <term.h>" > "namehdr"
- print "#define DCL(it) static IT data##it[]" > "namehdr"
- print "#else" > "namehdr"
- print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]" > "namehdr"
- print "#endif" > "namehdr"
- print "" > "namehdr"
- print "/*" > "boolnames"
- print " * names.c - Arrays of capability names and codes" > "boolnames"
- print " *" > "boolnames"
- print " */" > "boolnames"
- print "" > "boolnames"
- print "DCL(boolnames) = {" > "boolnames"
- print "DCL(boolfnames) = {" > "boolfnames"
- print "DCL(boolcodes) = {" > "boolcodes"
- print "DCL(numnames) = {" > "numnames"
- print "DCL(numfnames) = {" > "numfnames"
- print "DCL(numcodes) = {" > "numcodes"
- print "DCL(strnames) = {" > "strnames"
- print "DCL(strfnames) = {" > "strfnames"
- print "DCL(strcodes) = {" > "strcodes"
- }
-
-$1 ~ /^#/ {next;}
-
-$1 == "SKIPWARN" {next;}
-
-$3 == "bool" {
- printf "\t\t\"%s\",\n", $2 > "boolnames"
- printf "\t\t\"%s\",\n", $1 > "boolfnames"
- printf "\t\t\"%s\",\n", $4 > "boolcodes"
- }
-
-$3 == "num" {
- printf "\t\t\"%s\",\n", $2 > "numnames"
- printf "\t\t\"%s\",\n", $1 > "numfnames"
- printf "\t\t\"%s\",\n", $4 > "numcodes"
- }
-
-$3 == "str" {
- printf "\t\t\"%s\",\n", $2 > "strnames"
- printf "\t\t\"%s\",\n", $1 > "strfnames"
- printf "\t\t\"%s\",\n", $4 > "strcodes"
- }
-
-END {
- print "\t\t(NCURSES_CONST char *)0," > "boolnames"
- print "};" > "boolnames"
- print "" > "boolnames"
- print "\t\t(NCURSES_CONST char *)0," > "boolfnames"
- print "};" > "boolfnames"
- print "" > "boolfnames"
- print "\t\t(NCURSES_CONST char *)0," > "boolcodes"
- print "};" > "boolcodes"
- print "" > "boolcodes"
- print "\t\t(NCURSES_CONST char *)0," > "numnames"
- print "};" > "numnames"
- print "" > "numnames"
- print "\t\t(NCURSES_CONST char *)0," > "numfnames"
- print "};" > "numfnames"
- print "" > "numfnames"
- print "\t\t(NCURSES_CONST char *)0," > "numcodes"
- print "};" > "numcodes"
- print "" > "numcodes"
- print "\t\t(NCURSES_CONST char *)0," > "strnames"
- print "};" > "strnames"
- print "" > "strnames"
- print "\t\t(NCURSES_CONST char *)0," > "strfnames"
- print "};" > "strfnames"
- print "" > "strfnames"
- print "\t\t(NCURSES_CONST char *)0," > "strcodes"
- print "};" > "strcodes"
- print "" > "strcodes"
- print "#if BROKEN_LINKER" > "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(numfnames)" > "nameftr"
- print "FIX(strnames)" > "nameftr"
- print "FIX(strfnames)" > "nameftr"
- print "#endif /* BROKEN_LINKER */" > "nameftr"
- print "" > "codeftr"
- print "#if BROKEN_LINKER" > "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 "#endif /* BROKEN_LINKER */" > "codeftr"
- }
diff --git a/ncurses-5.3/ncurses/tinfo/README b/ncurses-5.3/ncurses/tinfo/README
deleted file mode 100644
index 02de383..0000000
--- a/ncurses-5.3/ncurses/tinfo/README
+++ /dev/null
@@ -1,8 +0,0 @@
--- $Id$
-
-The files in this directory (tinfo) are those that support the terminfo
-database and interfaces for ncurses. The terminfo library can be built
-separately, as a lower-level library for ncurses, but usually is bundled.
-
-In addition to the standard documented interfaces, ncurses uses internal
-functions which reside in tinfo to satisfy linkage requirements.
diff --git a/ncurses-5.3/ncurses/tinfo/access.c b/ncurses-5.3/ncurses/tinfo/access.c
deleted file mode 100644
index 9e67918..0000000
--- a/ncurses-5.3/ncurses/tinfo/access.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998,2000,2001 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <tic.h>
-#include <nc_alloc.h>
-
-MODULE_ID("$Id$")
-
-#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, '/');
-#ifdef __EMX__
- if (result == 0)
- result = strrchr(path, '\\');
-#endif
- if (result == 0)
- result = path;
- else
- result++;
- return result;
-}
-
-NCURSES_EXPORT(int)
-_nc_access(const char *path, int mode)
-{
- if (access(path, mode) < 0) {
- if ((mode & W_OK) != 0
- && errno == ENOENT
- && strlen(path) < PATH_MAX) {
- char head[PATH_MAX];
- char *leaf = _nc_basename(strcpy(head, path));
-
- if (leaf == 0)
- leaf = head;
- *leaf = '\0';
- if (head == leaf)
- (void) strcpy(head, ".");
-
- return access(head, R_OK | W_OK | X_OK);
- }
- return -1;
- }
- return 0;
-}
-
-#ifndef USE_ROOT_ENVIRON
-/*
- * Returns true if we allow application to use environment variables that are
- * used for searching lists of directories, etc.
- */
-NCURSES_EXPORT(int)
-_nc_env_access(void)
-{
-#if HAVE_ISSETUGID
- if (issetugid())
- return FALSE;
-#elif HAVE_GETEUID && HAVE_GETEGID
- if (getuid() != geteuid()
- || getgid() != getegid())
- return FALSE;
-#endif
- return getuid() != 0 && geteuid() != 0; /* ...finally, disallow root */
-}
-#endif
diff --git a/ncurses-5.3/ncurses/tinfo/add_tries.c b/ncurses-5.3/ncurses/tinfo/add_tries.c
deleted file mode 100644
index ceafb2f..0000000
--- a/ncurses-5.3/ncurses/tinfo/add_tries.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-/*
-** add_tries.c
-**
-** Add keycode/string to tries-tree.
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
-#define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
-
-NCURSES_EXPORT(void)
-_nc_add_to_try(struct tries **tree, const char *str, unsigned short code)
-{
- static bool out_of_memory = FALSE;
- struct tries *ptr, *savedptr;
- unsigned const char *txt = (unsigned const char *) str;
-
- if (txt == 0 || *txt == '\0' || out_of_memory || code == 0)
- return;
-
- if ((*tree) != 0) {
- ptr = savedptr = (*tree);
-
- for (;;) {
- unsigned char cmp = *txt;
-
- while (!CMP_TRY(ptr->ch, cmp)
- && ptr->sibling != 0)
- ptr = ptr->sibling;
-
- if (CMP_TRY(ptr->ch, cmp)) {
- if (*(++txt) == '\0') {
- ptr->value = code;
- return;
- }
- if (ptr->child != 0)
- ptr = ptr->child;
- else
- break;
- } else {
- if ((ptr->sibling = typeCalloc(struct tries, 1)) == 0) {
- out_of_memory = TRUE;
- return;
- }
-
- savedptr = ptr = ptr->sibling;
- SET_TRY(ptr, txt);
- ptr->value = 0;
-
- break;
- }
- } /* end for (;;) */
- } else { /* (*tree) == 0 :: First sequence to be added */
- savedptr = ptr = (*tree) = typeCalloc(struct tries, 1);
-
- if (ptr == 0) {
- out_of_memory = TRUE;
- return;
- }
-
- SET_TRY(ptr, txt);
- ptr->value = 0;
- }
-
- /* at this point, we are adding to the try. ptr->child == 0 */
-
- while (*txt) {
- ptr->child = typeCalloc(struct tries, 1);
-
- ptr = ptr->child;
-
- if (ptr == 0) {
- out_of_memory = TRUE;
-
- while ((ptr = savedptr) != 0) {
- savedptr = ptr->child;
- free(ptr);
- }
-
- return;
- }
-
- SET_TRY(ptr, txt);
- ptr->value = 0;
- }
-
- ptr->value = code;
- return;
-}
diff --git a/ncurses-5.3/ncurses/tinfo/alloc_entry.c b/ncurses-5.3/ncurses/tinfo/alloc_entry.c
deleted file mode 100644
index fd5d626..0000000
--- a/ncurses-5.3/ncurses/tinfo/alloc_entry.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * alloc_entry.c -- allocation functions for terminfo entries
- *
- * _nc_copy_entry()
- * _nc_init_entry()
- * _nc_merge_entry()
- * _nc_save_str()
- * _nc_wrap_entry()
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#define ABSENT_OFFSET -1
-#define CANCELLED_OFFSET -2
-
-#define MAX_STRTAB 4096 /* documented maximum entry size */
-
-static char *stringbuf; /* buffer for string capabilities */
-static size_t next_free; /* next free character in stringbuf */
-
-NCURSES_EXPORT(void)
-_nc_init_entry(TERMTYPE * const tp)
-/* 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;
- tp->num_Strings = STRCOUNT;
- tp->ext_Booleans = 0;
- tp->ext_Numbers = 0;
- tp->ext_Strings = 0;
-#endif
- if (tp->Booleans == 0)
- tp->Booleans = typeMalloc(char, BOOLCOUNT);
- if (tp->Numbers == 0)
- tp->Numbers = typeMalloc(short, NUMCOUNT);
- if (tp->Strings == 0)
- tp->Strings = typeMalloc(char *, STRCOUNT);
-
- for_each_boolean(i, tp)
- tp->Booleans[i] = FALSE;
-
- for_each_number(i, tp)
- tp->Numbers[i] = ABSENT_NUMERIC;
-
- for_each_string(i, tp)
- tp->Strings[i] = ABSENT_STRING;
-
- next_free = 0;
-}
-
-NCURSES_EXPORT(ENTRY *)
-_nc_copy_entry(ENTRY * oldp)
-{
- ENTRY *newp = typeCalloc(ENTRY, 1);
-
- if (newp != 0) {
- *newp = *oldp;
- _nc_copy_termtype(&(newp->tterm), &(oldp->tterm));
- }
- return newp;
-}
-
-NCURSES_EXPORT(char *)
-_nc_save_str(const char *const string)
-/* save a copy of string in the string buffer */
-{
- size_t old_next_free = next_free;
- size_t len = strlen(string) + 1;
-
- if (next_free + len < MAX_STRTAB) {
- strcpy(&stringbuf[next_free], string);
- DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
- DEBUG(7, ("at location %d", (int) next_free));
- next_free += len;
- }
- return (stringbuf + old_next_free);
-}
-
-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);
-
- 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)
- offsets[i] = ABSENT_OFFSET;
- else if (tp->Strings[i] == CANCELLED_STRING)
- offsets[i] = CANCELLED_OFFSET;
- else
- offsets[i] = tp->Strings[i] - stringbuf;
- }
-
- for (i = 0; i < ep->nuses; i++) {
- if (ep->uses[i].name == 0)
- useoffsets[i] = ABSENT_OFFSET;
- else
- useoffsets[i] = ep->uses[i].name - stringbuf;
- }
-
- if ((tp->str_table = typeMalloc(char, next_free)) == (char *) 0)
- _nc_err_abort(MSG_NO_MEMORY);
- (void) memcpy(tp->str_table, stringbuf, next_free);
-
- tp->term_names = tp->str_table + n;
- for_each_string(i, &(ep->tterm)) {
- if (offsets[i] == ABSENT_OFFSET)
- tp->Strings[i] = ABSENT_STRING;
- else if (offsets[i] == CANCELLED_OFFSET)
- tp->Strings[i] = CANCELLED_STRING;
- else
- tp->Strings[i] = tp->str_table + offsets[i];
- }
-
-#if NCURSES_XNAMES
- 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
-
- for (i = 0; i < ep->nuses; i++) {
- if (useoffsets[i] == ABSENT_OFFSET)
- ep->uses[i].name = 0;
- else
- ep->uses[i].name = (tp->str_table + useoffsets[i]);
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_merge_entry
-(TERMTYPE * const to, TERMTYPE * const from)
-/* merge capabilities from `from' entry into `to' entry */
-{
- int i;
-
-#if NCURSES_XNAMES
- _nc_align_termtype(to, from);
-#endif
- for_each_boolean(i, from) {
- int mergebool = from->Booleans[i];
-
- if (mergebool == CANCELLED_BOOLEAN)
- to->Booleans[i] = FALSE;
- else if (mergebool == TRUE)
- to->Booleans[i] = mergebool;
- }
-
- for_each_number(i, from) {
- int mergenum = from->Numbers[i];
-
- if (mergenum == CANCELLED_NUMERIC)
- to->Numbers[i] = ABSENT_NUMERIC;
- else if (mergenum != ABSENT_NUMERIC)
- to->Numbers[i] = mergenum;
- }
-
- /*
- * Note: the copies of strings this makes don't have their own
- * storage. This is OK right now, but will be a problem if we
- * we ever want to deallocate entries.
- */
- for_each_string(i, from) {
- char *mergestring = from->Strings[i];
-
- if (mergestring == CANCELLED_STRING)
- to->Strings[i] = ABSENT_STRING;
- else if (mergestring != ABSENT_STRING)
- to->Strings[i] = mergestring;
- }
-}
diff --git a/ncurses-5.3/ncurses/tinfo/alloc_ttype.c b/ncurses-5.3/ncurses/tinfo/alloc_ttype.c
deleted file mode 100644
index 1272029..0000000
--- a/ncurses-5.3/ncurses/tinfo/alloc_ttype.c
+++ /dev/null
@@ -1,491 +0,0 @@
-/****************************************************************************
- * 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 <dickey@clark.net> 1999 *
- ****************************************************************************/
-
-/*
- * align_ttype.c -- functions for TERMTYPE
- *
- * _nc_align_termtype()
- * _nc_copy_termtype()
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#if NCURSES_XNAMES
-/*
- * Merge the a/b lists into dst. Both a/b are sorted (see _nc_extend_names()),
- * so we do not have to worry about order dependencies.
- */
-static int
-merge_names(char **dst, char **a, int na, char **b, int nb)
-{
- int n = 0;
- while (na > 0 && nb > 0) {
- int cmp = strcmp(*a, *b);
- if (cmp < 0) {
- dst[n++] = *a++;
- na--;
- } else if (cmp > 0) {
- dst[n++] = *b++;
- nb--;
- } else if (cmp == 0) {
- dst[n++] = *a;
- a++, b++;
- na--, nb--;
- }
- }
- while (na-- > 0) {
- dst[n++] = *a++;
- }
- while (nb-- > 0) {
- dst[n++] = *b++;
- }
- DEBUG(4, ("merge_names -> %d", n));
- return n;
-}
-
-static bool
-find_name(char **table, int length, char *name)
-{
- while (length-- > 0) {
- if (!strcmp(*table++, name)) {
- DEBUG(4, ("found name '%s'", name));
- return TRUE;
- }
- }
- DEBUG(4, ("did not find name '%s'", name));
- return FALSE;
-}
-
-static void
-realign_data(TERMTYPE * to, char **ext_Names, int ext_Booleans, int
- ext_Numbers, int ext_Strings)
-{
- int n, m, base;
- int limit = (to->ext_Booleans + to->ext_Numbers + to->ext_Strings);
-
- if (to->ext_Booleans != ext_Booleans) {
- to->num_Booleans += (ext_Booleans - to->ext_Booleans);
- to->Booleans = typeRealloc(char, to->num_Booleans, to->Booleans);
- for (n = to->ext_Booleans - 1,
- m = ext_Booleans - 1,
- base = to->num_Booleans - (m + 1); m >= 0; m--) {
- if (find_name(to->ext_Names, limit, ext_Names[m])) {
- to->Booleans[base + m] = to->Booleans[base + n--];
- } else {
- to->Booleans[base + m] = FALSE;
- }
- }
- to->ext_Booleans = ext_Booleans;
- }
- if (to->ext_Numbers != ext_Numbers) {
- to->num_Numbers += (ext_Numbers - to->ext_Numbers);
- to->Numbers = typeRealloc(short, to->num_Numbers, to->Numbers);
- for (n = to->ext_Numbers - 1,
- m = ext_Numbers - 1,
- base = to->num_Numbers - (m + 1); m >= 0; m--) {
- if (find_name(to->ext_Names, limit, ext_Names[m + ext_Booleans])) {
- to->Numbers[base + m] = to->Numbers[base + n--];
- } else {
- to->Numbers[base + m] = ABSENT_NUMERIC;
- }
- }
- to->ext_Numbers = ext_Numbers;
- }
- if (to->ext_Strings != ext_Strings) {
- to->num_Strings += (ext_Strings - to->ext_Strings);
- to->Strings = typeRealloc(char *, to->num_Strings, to->Strings);
- for (n = to->ext_Strings - 1,
- m = ext_Strings - 1,
- base = to->num_Strings - (m + 1); m >= 0; m--) {
- if (find_name(to->ext_Names, limit, ext_Names[m + ext_Booleans + ext_Numbers])) {
- to->Strings[base + m] = to->Strings[base + n--];
- } else {
- to->Strings[base + m] = ABSENT_STRING;
- }
- }
- to->ext_Strings = ext_Strings;
- }
-}
-
-/*
- * Returns the first index in ext_Names[] for the given token-type
- */
-static int
-_nc_first_ext_name(TERMTYPE * tp, int token_type)
-{
- int first;
-
- switch (token_type) {
- case BOOLEAN:
- first = 0;
- break;
- case NUMBER:
- first = tp->ext_Booleans;
- break;
- case STRING:
- first = tp->ext_Booleans + tp->ext_Numbers;
- break;
- default:
- first = 0;
- break;
- }
- return first;
-}
-
-/*
- * Returns the last index in ext_Names[] for the given token-type
- */
-static int
-_nc_last_ext_name(TERMTYPE * tp, int token_type)
-{
- int last;
-
- switch (token_type) {
- case BOOLEAN:
- last = tp->ext_Booleans;
- break;
- case NUMBER:
- last = tp->ext_Booleans + tp->ext_Numbers;
- break;
- default:
- case STRING:
- last = NUM_EXT_NAMES(tp);
- break;
- }
- return last;
-}
-
-/*
- * Lookup an entry from extended-names, returning -1 if not found
- */
-static int
-_nc_find_ext_name(TERMTYPE * tp, char *name, int token_type)
-{
- unsigned j;
- unsigned first = _nc_first_ext_name(tp, token_type);
- unsigned last = _nc_last_ext_name(tp, token_type);
-
- for (j = first; j < last; j++) {
- if (!strcmp(name, tp->ext_Names[j])) {
- return j;
- }
- }
- return -1;
-}
-
-/*
- * Translate an index into ext_Names[] into the corresponding index into data
- * (e.g., Booleans[]).
- */
-static int
-_nc_ext_data_index(TERMTYPE * tp, int n, int token_type)
-{
- switch (token_type) {
- case BOOLEAN:
- n += (tp->num_Booleans - tp->ext_Booleans);
- break;
- case NUMBER:
- n += (tp->num_Numbers - tp->ext_Numbers)
- - (tp->ext_Booleans);
- break;
- default:
- case STRING:
- n += (tp->num_Strings - tp->ext_Strings)
- - (tp->ext_Booleans + tp->ext_Numbers);
- }
- return n;
-}
-
-/*
- * Adjust tables to remove (not free) an extended name and its corresponding
- * data.
- */
-static bool
-_nc_del_ext_name(TERMTYPE * tp, char *name, int token_type)
-{
- int j;
- int first, last;
-
- if ((first = _nc_find_ext_name(tp, name, token_type)) >= 0) {
- last = NUM_EXT_NAMES(tp) - 1;
- for (j = first; j < last; j++) {
- tp->ext_Names[j] = tp->ext_Names[j + 1];
- }
- first = _nc_ext_data_index(tp, first, token_type);
- switch (token_type) {
- case BOOLEAN:
- last = tp->num_Booleans - 1;
- for (j = first; j < last; j++)
- tp->Booleans[j] = tp->Booleans[j + 1];
- tp->ext_Booleans -= 1;
- tp->num_Booleans -= 1;
- break;
- case NUMBER:
- last = tp->num_Numbers - 1;
- for (j = first; j < last; j++)
- tp->Numbers[j] = tp->Numbers[j + 1];
- tp->ext_Numbers -= 1;
- tp->num_Numbers -= 1;
- break;
- case STRING:
- last = tp->num_Strings - 1;
- for (j = first; j < last; j++)
- tp->Strings[j] = tp->Strings[j + 1];
- tp->ext_Strings -= 1;
- tp->num_Strings -= 1;
- break;
- }
- return TRUE;
- }
- return FALSE;
-}
-
-/*
- * Adjust tables to insert an extended name, making room for new data. The
- * index into the corresponding data array is returned.
- */
-static int
-_nc_ins_ext_name(TERMTYPE * tp, char *name, int token_type)
-{
- unsigned first = _nc_first_ext_name(tp, token_type);
- unsigned last = _nc_last_ext_name(tp, token_type);
- unsigned total = NUM_EXT_NAMES(tp) + 1;
- unsigned j, k;
-
- for (j = first; j < last; j++) {
- int cmp = strcmp(name, tp->ext_Names[j]);
- if (cmp == 0)
- /* already present */
- return _nc_ext_data_index(tp, (int) j, token_type);
- if (cmp < 0) {
- break;
- }
- }
-
- tp->ext_Names = typeRealloc(char *, total, tp->ext_Names);
- for (k = total - 1; k > j; k--)
- tp->ext_Names[k] = tp->ext_Names[k - 1];
- tp->ext_Names[j] = name;
- j = _nc_ext_data_index(tp, (int) j, token_type);
-
- switch (token_type) {
- case BOOLEAN:
- tp->ext_Booleans += 1;
- tp->num_Booleans += 1;
- tp->Booleans = typeRealloc(char, tp->num_Booleans, tp->Booleans);
- for (k = tp->num_Booleans - 1; k > j; k--)
- tp->Booleans[k] = tp->Booleans[k - 1];
- break;
- case NUMBER:
- tp->ext_Numbers += 1;
- tp->num_Numbers += 1;
- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
- for (k = tp->num_Numbers - 1; k > j; k--)
- tp->Numbers[k] = tp->Numbers[k - 1];
- break;
- case STRING:
- tp->ext_Strings += 1;
- tp->num_Strings += 1;
- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
- for (k = tp->num_Strings - 1; k > j; k--)
- tp->Strings[k] = tp->Strings[k - 1];
- break;
- }
- return j;
-}
-
-/*
- * Look for strings that are marked cancelled, which happen to be the same name
- * as a boolean or number. We'll get this as a special case when we get a
- * cancellation of a name that is inherited from another entry.
- */
-static void
-adjust_cancels(TERMTYPE * to, TERMTYPE * from)
-{
- int first = to->ext_Booleans + to->ext_Numbers;
- int last = first + to->ext_Strings;
- int j, k;
-
- for (j = first; j < last;) {
- char *name = to->ext_Names[j];
- unsigned j_str = to->num_Strings - first - to->ext_Strings;
-
- if (to->Strings[j + j_str] == CANCELLED_STRING) {
- if ((k = _nc_find_ext_name(from, to->ext_Names[j], BOOLEAN)) >= 0) {
- if (_nc_del_ext_name(to, name, STRING)
- || _nc_del_ext_name(to, name, NUMBER)) {
- k = _nc_ins_ext_name(to, name, BOOLEAN);
- to->Booleans[k] = FALSE;
- } else {
- j++;
- }
- } else if ((k = _nc_find_ext_name(from, to->ext_Names[j],
- NUMBER)) >= 0) {
- if (_nc_del_ext_name(to, name, STRING)
- || _nc_del_ext_name(to, name, BOOLEAN)) {
- k = _nc_ins_ext_name(to, name, NUMBER);
- to->Numbers[k] = CANCELLED_NUMERIC;
- } else {
- j++;
- }
- }
- } else {
- j++;
- }
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_align_termtype
-(TERMTYPE * to, TERMTYPE * from)
-{
- int na = NUM_EXT_NAMES(to);
- int nb = NUM_EXT_NAMES(from);
- int n;
- bool same;
- char **ext_Names;
- int ext_Booleans, ext_Numbers, ext_Strings;
-
- DEBUG(2, ("align_termtype to(%d:%s), from(%d:%s)", na, to->term_names,
- nb, from->term_names));
-
- if (na != 0 || nb != 0) {
- if ((na == nb) /* check if the arrays are equivalent */
- &&(to->ext_Booleans == from->ext_Booleans)
- && (to->ext_Numbers == from->ext_Numbers)
- && (to->ext_Strings == from->ext_Strings)) {
- for (n = 0, same = TRUE; n < na; n++) {
- if (strcmp(to->ext_Names[n], from->ext_Names[n])) {
- same = FALSE;
- break;
- }
- }
- if (same)
- return;
- }
- /*
- * This is where we pay for having a simple extension representation.
- * Allocate a new ext_Names array and merge the two ext_Names arrays
- * into it, updating to's counts for booleans, etc. Fortunately we do
- * this only for the terminfo compiler (tic) and comparer (infocmp).
- */
- ext_Names = typeMalloc(char *, na + nb);
-
- if (to->ext_Strings && (from->ext_Booleans + from->ext_Numbers))
- adjust_cancels(to, from);
-
- if (from->ext_Strings && (to->ext_Booleans + to->ext_Numbers))
- adjust_cancels(from, to);
-
- ext_Booleans = merge_names(ext_Names,
- to->ext_Names,
- to->ext_Booleans,
- from->ext_Names,
- from->ext_Booleans);
- ext_Numbers = merge_names(ext_Names + ext_Booleans,
- to->ext_Names
- + to->ext_Booleans,
- to->ext_Numbers,
- from->ext_Names
- + from->ext_Booleans,
- from->ext_Numbers);
- ext_Strings = merge_names(ext_Names + ext_Numbers + ext_Booleans,
- to->ext_Names
- + to->ext_Booleans
- + to->ext_Numbers,
- to->ext_Strings,
- from->ext_Names
- + from->ext_Booleans
- + from->ext_Numbers,
- from->ext_Strings);
- /*
- * Now we must reallocate the Booleans, etc., to allow the data to be
- * overlaid.
- */
- if (na != (ext_Booleans + ext_Numbers + ext_Strings)) {
- realign_data(to, ext_Names, ext_Booleans, ext_Numbers, ext_Strings);
- FreeIfNeeded(to->ext_Names);
- to->ext_Names = ext_Names;
- DEBUG(2, ("realigned %d extended names for '%s' (to)",
- NUM_EXT_NAMES(to), to->term_names));
- }
- if (nb != (ext_Booleans + ext_Numbers + ext_Strings)) {
- nb = (ext_Booleans + ext_Numbers + ext_Strings);
- realign_data(from, ext_Names, ext_Booleans, ext_Numbers, ext_Strings);
- from->ext_Names = typeRealloc(char *, nb, from->ext_Names);
- memcpy(from->ext_Names, ext_Names, sizeof(char *) * nb);
- DEBUG(2, ("realigned %d extended names for '%s' (from)",
- NUM_EXT_NAMES(from), from->term_names));
- }
- }
-}
-#endif
-
-NCURSES_EXPORT(void)
-_nc_copy_termtype
-(TERMTYPE * dst, TERMTYPE * src)
-{
- int i;
-
- *dst = *src; /* ...to copy the sizes and string-tables */
- dst->Booleans = typeMalloc(char, NUM_BOOLEANS(dst));
- dst->Numbers = typeMalloc(short, NUM_NUMBERS(dst));
- dst->Strings = typeMalloc(char *, NUM_STRINGS(dst));
-
- /* FIXME: use memcpy for these and similar loops */
- for_each_boolean(i, dst)
- dst->Booleans[i] = src->Booleans[i];
- for_each_number(i, dst)
- dst->Numbers[i] = src->Numbers[i];
- for_each_string(i, dst)
- dst->Strings[i] = src->Strings[i];
-
- /* FIXME: we probably should also copy str_table and ext_str_table,
- * but tic and infocmp are not written to exploit that (yet).
- */
-
-#if NCURSES_XNAMES
- if ((i = NUM_EXT_NAMES(src)) != 0) {
- dst->ext_Names = typeMalloc(char *, i);
- memcpy(dst->ext_Names, src->ext_Names, i * sizeof(char *));
- } else {
- dst->ext_Names = 0;
- }
-#endif
-
-}
diff --git a/ncurses-5.3/ncurses/tinfo/captoinfo.c b/ncurses-5.3/ncurses/tinfo/captoinfo.c
deleted file mode 100644
index 639a1ac..0000000
--- a/ncurses-5.3/ncurses/tinfo/captoinfo.c
+++ /dev/null
@@ -1,836 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * captoinfo.c --- conversion between termcap and terminfo formats
- *
- * The captoinfo() code was swiped from Ross Ridge's mytinfo package,
- * adapted to fit ncurses by Eric S. Raymond <esr@snark.thyrsus.com>.
- *
- * There is just one entry point:
- *
- * char *_nc_captoinfo(n, s, parametrized)
- *
- * Convert value s for termcap string capability named n into terminfo
- * format.
- *
- * This code recognizes all the standard 4.4BSD %-escapes:
- *
- * %% output `%'
- * %d output value as in printf %d
- * %2 output value as in printf %2d
- * %3 output value as in printf %3d
- * %. output value as in printf %c
- * %+x add x to value, then do %.
- * %>xy if value > x then add y, no output
- * %r reverse order of two parameters, no output
- * %i increment by one, no output
- * %n exclusive-or all parameters with 0140 (Datamedia 2500)
- * %B BCD (16*(value/10)) + (value%10), no output
- * %D Reverse coding (value - 2*(value%16)), no output (Delta Data).
- *
- * Also, %02 and %03 are accepted as synonyms for %2 and %3.
- *
- * Besides all the standard termcap escapes, this translator understands
- * the following extended escapes:
- *
- * used by GNU Emacs termcap libraries
- * %a[+*-/=][cp]x GNU arithmetic.
- * %m xor the first two parameters by 0177
- * %b backup to previous parameter
- * %f skip this parameter
- *
- * used by the University of Waterloo (MFCF) termcap libraries
- * %-x subtract parameter FROM char x and output it as a char
- * %ax add the character x to parameter
- *
- * If #define WATERLOO is on, also enable these translations:
- *
- * %sx subtract parameter FROM the character x
- *
- * By default, this Waterloo translations are not compiled in, because
- * the Waterloo %s conflicts with the way terminfo uses %s in strings for
- * function programming.
- *
- * Note the two definitions of %a: the GNU definition is translated if the
- * characters after the 'a' are valid for it, otherwise the UW definition
- * is translated.
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-#define MAX_PUSHED 16 /* max # args we can push onto the stack */
-
-static int stack[MAX_PUSHED]; /* the stack */
-static int stackptr; /* the next empty place on the stack */
-static int onstack; /* the top of stack */
-static int seenm; /* seen a %m */
-static int seenn; /* seen a %n */
-static int seenr; /* seen a %r */
-static int param; /* current parameter */
-static char *dp; /* pointer to end of the converted string */
-
-static char *my_string;
-static size_t my_length;
-
-static char *
-init_string(void)
-/* initialize 'my_string', 'my_length' */
-{
- if (my_string == 0)
- my_string = typeMalloc(char, my_length = 256);
- if (my_string == 0)
- _nc_err_abort(MSG_NO_MEMORY);
-
- *my_string = '\0';
- return my_string;
-}
-
-static char *
-save_string(char *d, const char *const s)
-{
- size_t have = (d - my_string);
- size_t need = have + strlen(s) + 2;
- if (need > my_length) {
- my_string = (char *) realloc(my_string, my_length = (need + need));
- if (my_string == 0)
- _nc_err_abort(MSG_NO_MEMORY);
- d = my_string + have;
- }
- (void) strcpy(d, s);
- return d + strlen(d);
-}
-
-static inline char *
-save_char(char *s, int c)
-{
- static char temp[2];
- temp[0] = (char) c;
- return save_string(s, temp);
-}
-
-static void
-push(void)
-/* push onstack on to the stack */
-{
- if (stackptr > MAX_PUSHED)
- _nc_warning("string too complex to convert");
- else
- stack[stackptr++] = onstack;
-}
-
-static void
-pop(void)
-/* pop the top of the stack into onstack */
-{
- if (stackptr == 0) {
- if (onstack == 0)
- _nc_warning("I'm confused");
- else
- onstack = 0;
- } else
- onstack = stack[--stackptr];
- param++;
-}
-
-static int
-cvtchar(register const char *sp)
-/* convert a character to a terminfo push */
-{
- unsigned char c = 0;
- int len;
-
- switch (*sp) {
- case '\\':
- switch (*++sp) {
- case '\'':
- case '$':
- case '\\':
- case '%':
- c = *sp;
- len = 2;
- break;
- case '\0':
- c = '\\';
- len = 1;
- break;
- case '0':
- case '1':
- case '2':
- case '3':
- len = 1;
- while (isdigit(UChar(*sp))) {
- c = 8 * c + (*sp++ - '0');
- len++;
- }
- break;
- default:
- c = *sp;
- len = 2;
- break;
- }
- break;
- case '^':
- c = (*++sp & 0x1f);
- len = 2;
- break;
- default:
- c = *sp;
- len = 1;
- }
- if (isgraph(c) && c != ',' && c != '\'' && c != '\\' && c != ':') {
- dp = save_string(dp, "%\'");
- dp = save_char(dp, c);
- dp = save_char(dp, '\'');
- } else {
- dp = save_string(dp, "%{");
- if (c > 99)
- dp = save_char(dp, c / 100 + '0');
- if (c > 9)
- dp = save_char(dp, ((int) (c / 10)) % 10 + '0');
- dp = save_char(dp, c % 10 + '0');
- dp = save_char(dp, '}');
- }
- return len;
-}
-
-static void
-getparm(int parm, int n)
-/* push n copies of param on the terminfo stack if not already there */
-{
- if (seenr) {
- if (parm == 1)
- parm = 2;
- else if (parm == 2)
- parm = 1;
- }
- if (onstack == parm) {
- if (n > 1) {
- _nc_warning("string may not be optimal");
- dp = save_string(dp, "%Pa");
- while (n--) {
- dp = save_string(dp, "%ga");
- }
- }
- return;
- }
- if (onstack != 0)
- push();
-
- onstack = parm;
-
- while (n--) {
- dp = save_string(dp, "%p");
- dp = save_char(dp, '0' + parm);
- }
-
- if (seenn && parm < 3) {
- dp = save_string(dp, "%{96}%^");
- }
-
- if (seenm && parm < 3) {
- dp = save_string(dp, "%{127}%^");
- }
-}
-
-/*
- * 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 *
-_nc_captoinfo(const char *cap, const char *s, int const parametrized)
-{
- const char *capstart;
-
- stackptr = 0;
- onstack = 0;
- seenm = 0;
- seenn = 0;
- seenr = 0;
- param = 1;
-
- dp = init_string();
-
- /* skip the initial padding (if we haven't been told not to) */
- capstart = 0;
- if (s == 0)
- s = "";
- if (parametrized >= 0 && isdigit(UChar(*s)))
- for (capstart = s;; s++)
- if (!(isdigit(UChar(*s)) || *s == '*' || *s == '.'))
- break;
-
- while (*s != '\0') {
- switch (*s) {
- case '%':
- s++;
- if (parametrized < 1) {
- dp = save_char(dp, '%');
- break;
- }
- switch (*s++) {
- case '%':
- dp = save_char(dp, '%');
- break;
- case 'r':
- if (seenr++ == 1) {
- _nc_warning("saw %%r twice in %s", cap);
- }
- break;
- case 'm':
- if (seenm++ == 1) {
- _nc_warning("saw %%m twice in %s", cap);
- }
- break;
- case 'n':
- if (seenn++ == 1) {
- _nc_warning("saw %%n twice in %s", cap);
- }
- break;
- case 'i':
- dp = save_string(dp, "%i");
- break;
- case '6':
- case 'B':
- getparm(param, 1);
- dp = save_string(dp, "%{10}%/%{16}%*");
- getparm(param, 1);
- dp = save_string(dp, "%{10}%m%+");
- break;
- case '8':
- case 'D':
- getparm(param, 2);
- dp = save_string(dp, "%{2}%*%-");
- break;
- case '>':
- getparm(param, 2);
- /* %?%{x}%>%t%{y}%+%; */
- dp = save_string(dp, "%?");
- s += cvtchar(s);
- dp = save_string(dp, "%>%t");
- s += cvtchar(s);
- dp = save_string(dp, "%+%;");
- break;
- case 'a':
- if ((*s == '=' || *s == '+' || *s == '-'
- || *s == '*' || *s == '/')
- && (s[1] == 'p' || s[1] == 'c')
- && s[2] != '\0') {
- int l;
- l = 2;
- if (*s != '=')
- getparm(param, 1);
- if (s[1] == 'p') {
- getparm(param + s[2] - '@', 1);
- if (param != onstack) {
- pop();
- param--;
- }
- l++;
- } else
- l += cvtchar(s + 2);
- switch (*s) {
- case '+':
- dp = save_string(dp, "%+");
- break;
- case '-':
- dp = save_string(dp, "%-");
- break;
- case '*':
- dp = save_string(dp, "%*");
- break;
- case '/':
- dp = save_string(dp, "%/");
- break;
- case '=':
- if (seenr) {
- if (param == 1)
- onstack = 2;
- else if (param == 2)
- onstack = 1;
- else
- onstack = param;
- } else
- onstack = param;
- break;
- }
- s += l;
- break;
- }
- getparm(param, 1);
- s += cvtchar(s);
- dp = save_string(dp, "%+");
- break;
- case '+':
- getparm(param, 1);
- s += cvtchar(s);
- dp = save_string(dp, "%+%c");
- pop();
- break;
- case 's':
-#ifdef WATERLOO
- s += cvtchar(s);
- getparm(param, 1);
- dp = save_string(dp, "%-");
-#else
- getparm(param, 1);
- dp = save_string(dp, "%s");
- pop();
-#endif /* WATERLOO */
- break;
- case '-':
- s += cvtchar(s);
- getparm(param, 1);
- dp = save_string(dp, "%-%c");
- pop();
- break;
- case '.':
- getparm(param, 1);
- dp = save_string(dp, "%c");
- pop();
- break;
- case '0': /* not clear any of the historical termcaps did this */
- if (*s == '3')
- goto see03;
- else if (*s != '2')
- goto invalid;
- /* FALLTHRU */
- case '2':
- getparm(param, 1);
- dp = save_string(dp, "%2d");
- pop();
- break;
- case '3':
- see03:
- getparm(param, 1);
- dp = save_string(dp, "%3d");
- pop();
- break;
- case 'd':
- getparm(param, 1);
- dp = save_string(dp, "%d");
- pop();
- break;
- case 'f':
- param++;
- break;
- case 'b':
- param--;
- break;
- case '\\':
- dp = save_string(dp, "%\\");
- break;
- default:
- invalid:
- dp = save_char(dp, '%');
- s--;
- _nc_warning("unknown %% code %s (%#x) in %s",
- unctrl((chtype) *s), UChar(*s), cap);
- break;
- }
- break;
-#ifdef REVISIBILIZE
- case '\\':
- dp = save_char(dp, *s++);
- dp = save_char(dp, *s++);
- break;
- case '\n':
- dp = save_string(dp, "\\n");
- s++;
- break;
- case '\t':
- dp = save_string(dp, "\\t");
- s++;
- break;
- case '\r':
- dp = save_string(dp, "\\r");
- s++;
- break;
- case '\200':
- dp = save_string(dp, "\\0");
- s++;
- break;
- case '\f':
- dp = save_string(dp, "\\f");
- s++;
- break;
- case '\b':
- dp = save_string(dp, "\\b");
- s++;
- break;
- case ' ':
- dp = save_string(dp, "\\s");
- s++;
- break;
- case '^':
- dp = save_string(dp, "\\^");
- s++;
- break;
- case ':':
- dp = save_string(dp, "\\:");
- s++;
- break;
- case ',':
- dp = save_string(dp, "\\,");
- s++;
- break;
- default:
- if (*s == '\033') {
- dp = save_string(dp, "\\E");
- s++;
- } else if (*s > 0 && *s < 32) {
- dp = save_char(dp, '^');
- dp = save_char(dp, *s + '@');
- s++;
- } else if (*s <= 0 || *s >= 127) {
- dp = save_char(dp, '\\');
- dp = save_char(dp, ((*s & 0300) >> 6) + '0');
- dp = save_char(dp, ((*s & 0070) >> 3) + '0');
- dp = save_char(dp, (*s & 0007) + '0');
- s++;
- } else
- dp = save_char(dp, *s++);
- break;
-#else
- default:
- dp = save_char(dp, *s++);
- break;
-#endif
- }
- }
-
- /*
- * Now, if we stripped off some leading padding, add it at the end
- * of the string as mandatory padding.
- */
- if (capstart) {
- dp = save_string(dp, "$<");
- for (s = capstart;; s++)
- if (isdigit(UChar(*s)) || *s == '*' || *s == '.')
- dp = save_char(dp, *s);
- else
- break;
- dp = save_string(dp, "/>");
- }
-
- (void) save_char(dp, '\0');
- return (my_string);
-}
-
-/*
- * Check for an expression that corresponds to "%B" (BCD):
- * (parameter / 10) * 16 + (parameter % 10)
- */
-static int
-bcd_expression(const char *str)
-{
- /* leave this non-const for HPUX */
- static char fmt[] = "%%p%c%%{10}%%/%%{16}%%*%%p%c%%{10}%%m%%+";
- int len = 0;
- char ch1, ch2;
-
- if (sscanf(str, fmt, &ch1, &ch2) == 2
- && isdigit(UChar(ch1))
- && isdigit(UChar(ch2))
- && (ch1 == ch2)) {
- len = 28;
-#ifndef NDEBUG
- {
- char buffer[80];
- int tst;
- sprintf(buffer, fmt, ch1, ch2);
- tst = strlen(buffer) - 1;
- assert(len == tst);
- }
-#endif
- }
- return len;
-}
-
-static char *
-save_tc_char(char *bufptr, int c1)
-{
- char temp[80];
-
- if (is7bits(c1) && isprint(c1)) {
- if (c1 == ':' || c1 == '\\')
- bufptr = save_char(bufptr, '\\');
- bufptr = save_char(bufptr, c1);
- } else {
- if (c1 == (c1 & 0x1f)) /* iscntrl() returns T on 255 */
- (void) strcpy(temp, unctrl((chtype) c1));
- else
- (void) sprintf(temp, "\\%03o", c1);
- bufptr = save_string(bufptr, temp);
- }
- return bufptr;
-}
-
-static char *
-save_tc_inequality(char *bufptr, int c1, int c2)
-{
- bufptr = save_string(bufptr, "%>");
- bufptr = save_tc_char(bufptr, c1);
- bufptr = save_tc_char(bufptr, c2);
- return bufptr;
-}
-
-/*
- * Here are the capabilities infotocap assumes it can translate to:
- *
- * %% output `%'
- * %d output value as in printf %d
- * %2 output value as in printf %2d
- * %3 output value as in printf %3d
- * %. output value as in printf %c
- * %+c add character c to value, then do %.
- * %>xy if value > x then add y, no output
- * %r reverse order of two parameters, no output
- * %i increment by one, no output
- * %n exclusive-or all parameters with 0140 (Datamedia 2500)
- * %B BCD (16*(value/10)) + (value%10), no output
- * %D Reverse coding (value - 2*(value%16)), no output (Delta Data).
- * %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 *
-_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;
- const char *trimmed = 0;
- char ch1 = 0, ch2 = 0;
- char *bufptr = init_string();
- int len;
- bool syntax_error = FALSE;
-
- /* we may have to move some trailing mandatory padding up front */
- padding = str + strlen(str) - 1;
- if (*padding == '>' && *--padding == '/') {
- --padding;
- while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*')
- padding--;
- if (*padding == '<' && *--padding == '$')
- trimmed = padding;
- padding += 2;
-
- while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*')
- bufptr = save_char(bufptr, *padding++);
- }
-
- for (; *str && str != trimmed; str++) {
- int c1, c2;
- char *cp = 0;
-
- if (str[0] == '\\' && (str[1] == '^' || str[1] == ',')) {
- bufptr = save_char(bufptr, *++str);
- } else if (str[0] == '$' && str[1] == '<') { /* discard padding */
- str += 2;
- while (isdigit(UChar(*str))
- || *str == '.'
- || *str == '*'
- || *str == '/'
- || *str == '>')
- str++;
- --str;
- } else if (str[0] == '%' && str[1] == '%') { /* escaped '%' */
- bufptr = save_string(bufptr, "%%");
- } else if (*str != '%' || (parametrized < 1)) {
- bufptr = save_char(bufptr, *str);
- } else if (sscanf(str, "%%?%%{%d}%%>%%t%%{%d}%%+%%;", &c1, &c2) == 2) {
- str = strchr(str, ';');
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if (sscanf(str, "%%?%%{%d}%%>%%t%%'%c'%%+%%;", &c1, &ch2) == 2) {
- str = strchr(str, ';');
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if (sscanf(str, "%%?%%'%c'%%>%%t%%{%d}%%+%%;", &ch1, &c2) == 2) {
- str = strchr(str, ';');
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if (sscanf(str, "%%?%%'%c'%%>%%t%%'%c'%%+%%;", &ch1, &ch2) == 2) {
- str = strchr(str, ';');
- bufptr = save_tc_inequality(bufptr, c1, c2);
- } else if ((len = bcd_expression(str)) != 0) {
- str += len;
- bufptr = save_string(bufptr, "%B");
- } else if ((sscanf(str, "%%{%d}%%+%%c", &c1) == 1
- || sscanf(str, "%%'%c'%%+%%c", &ch1) == 1)
- && (cp = strchr(str, '+'))) {
- str = cp + 2;
- bufptr = save_string(bufptr, "%+");
-
- if (ch1)
- c1 = ch1;
- bufptr = save_tc_char(bufptr, c1);
- }
- /* FIXME: this "works" for 'delta' */
- else if (strncmp(str, "%{2}%*%-", 8) == 0) {
- str += 7;
- bufptr = save_string(bufptr, "%D");
- } else if (strncmp(str, "%{96}%^", 7) == 0) {
- str += 6;
- if (saw_m++ == 0) {
- bufptr = save_string(bufptr, "%n");
- }
- } else if (strncmp(str, "%{127}%^", 8) == 0) {
- str += 7;
- if (saw_n++ == 0) {
- bufptr = save_string(bufptr, "%m");
- }
- } else { /* cm-style format element */
- str++;
- switch (*str) {
- case '%':
- bufptr = save_char(bufptr, '%');
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- bufptr = save_char(bufptr, '%');
- while (isdigit(UChar(*str)))
- bufptr = save_char(bufptr, *str++);
- if (strchr("doxX.", *str)) {
- if (*str != 'd') /* termcap doesn't have octal, hex */
- return 0;
- }
- break;
-
- case 'd':
- bufptr = save_string(bufptr, "%d");
- break;
-
- case 'c':
- bufptr = save_string(bufptr, "%.");
- break;
-
- /*
- * %s isn't in termcap, but it's convenient to pass it through
- * so we can represent things like terminfo pfkey strings in
- * termcap notation.
- */
- case 's':
- bufptr = save_string(bufptr, "%s");
- break;
-
- case 'p':
- str++;
- if (*str == '1')
- seenone = 1;
- else if (*str == '2') {
- if (!seenone && !seentwo) {
- bufptr = save_string(bufptr, "%r");
- seentwo++;
- }
- } else if (*str >= '3')
- return (0);
- break;
-
- case 'i':
- bufptr = save_string(bufptr, "%i");
- break;
-
- default:
- bufptr = save_char(bufptr, *str);
- syntax_error = TRUE;
- break;
- } /* endswitch (*str) */
- } /* endelse (*str == '%') */
-
- if (*str == '\0')
- break;
-
- } /* endwhile (*str) */
-
- return (syntax_error ? NULL : my_string);
-}
-
-#ifdef MAIN
-
-int curr_line;
-
-int
-main(int argc, char *argv[])
-{
- int c, tc = FALSE;
-
- while ((c = getopt(argc, argv, "c")) != EOF)
- switch (c) {
- case 'c':
- tc = TRUE;
- break;
- }
-
- curr_line = 0;
- for (;;) {
- char buf[BUFSIZ];
-
- ++curr_line;
- if (fgets(buf, sizeof(buf), stdin) == 0)
- break;
- buf[strlen(buf) - 1] = '\0';
- _nc_set_source(buf);
-
- if (tc) {
- char *cp = _nc_infotocap("to termcap", buf, 1);
-
- if (cp)
- (void) fputs(cp, stdout);
- } else
- (void) fputs(_nc_captoinfo("to terminfo", buf, 1), stdout);
- (void) putchar('\n');
- }
- return (0);
-}
-#endif /* MAIN */
-
-/* captoinfo.c ends here */
diff --git a/ncurses-5.3/ncurses/tinfo/comp_error.c b/ncurses-5.3/ncurses/tinfo/comp_error.c
deleted file mode 100644
index d39ae8c..0000000
--- a/ncurses-5.3/ncurses/tinfo/comp_error.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * comp_error.c -- Error message routines
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-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 char *termtype;
-
-NCURSES_EXPORT(void)
-_nc_set_source(const char *const name)
-{
- sourcename = 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)
- strncat(termtype, name, MAX_NAME_SIZE);
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_get_type(char *name)
-{
- strcpy(name, termtype != 0 ? termtype : "");
-}
-
-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 && termtype[0] != '\0')
- fprintf(stderr, ", terminal '%s'", termtype);
- fputc(':', stderr);
- fputc(' ', stderr);
-}
-
-NCURSES_EXPORT(void)
-_nc_warning(const char *const fmt,...)
-{
- va_list argp;
-
- if (_nc_suppress_warnings)
- return;
-
- where_is_problem();
- va_start(argp, fmt);
- vfprintf(stderr, fmt, argp);
- fprintf(stderr, "\n");
- va_end(argp);
-}
-
-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);
-}
-
-NCURSES_EXPORT(void)
-_nc_syserr_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);
-
- /* If we're debugging, try to show where the problem occurred - this
- * will dump core.
- */
-#if defined(TRACE) || !defined(NDEBUG)
- abort();
-#else
- /* Dumping core in production code is not a good idea.
- */
- exit(EXIT_FAILURE);
-#endif
-}
diff --git a/ncurses-5.3/ncurses/tinfo/comp_expand.c b/ncurses-5.3/ncurses/tinfo/comp_expand.c
deleted file mode 100644
index 65b5638..0000000
--- a/ncurses-5.3/ncurses/tinfo/comp_expand.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-static int
-trailing_spaces(const char *src)
-{
- while (*src == ' ')
- src++;
- return *src == 0;
-}
-
-/* this deals with differences over whether 0x7f and 0x80..0x9f are controls */
-#define REALCTL(s) (UChar(*(s)) < 127 && iscntrl(UChar(*(s))))
-#define REALPRINT(s) (UChar(*(s)) < 127 && isprint(UChar(*(s))))
-
-NCURSES_EXPORT(char *)
-_nc_tic_expand
-(const char *srcp, bool tic_format, int numbers)
-{
- static char *buffer;
- static size_t length;
-
- 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;
- }
-
- 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;
- }
- 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++] = 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';
- } 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
- 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) + '@')
- 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;
- }
-
- str++;
- }
-
- buffer[bufp] = '\0';
- return (buffer);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/comp_hash.c b/ncurses-5.3/ncurses/tinfo/comp_hash.c
deleted file mode 100644
index b106949..0000000
--- a/ncurses-5.3/ncurses/tinfo/comp_hash.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * comp_hash.c --- Routines to deal with the hashtable of capability
- * names.
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <hashsize.h>
-
-#ifdef MAIN_PROGRAM
-#include <ctype.h>
-#undef DEBUG
-#define DEBUG(level, params) /*nothing */
-#endif
-
-MODULE_ID("$Id$")
-
-static int hash_function(const char *);
-
-/*
- * _nc_make_hash_table()
- *
- * Takes the entries in table[] and hashes them into hash_table[]
- * by name. There are CAPTABSIZE entries in table[] and HASHTABSIZE
- * slots in hash_table[].
- *
- */
-
-#ifdef MAIN_PROGRAM
-
-#undef MODULE_ID
-#define MODULE_ID(id) /*nothing */
-#include <tinfo/doalloc.c>
-
-static void
-_nc_make_hash_table(struct name_table_entry *table,
- struct name_table_entry **hash_table)
-{
- int i;
- int hashvalue;
- int collisions = 0;
-
- 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] != 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));
-}
-#endif
-
-/*
- * int hash_function(string)
- *
- * Computes the hashing function on the given string.
- *
- * The current hash function is the sum of each consectutive pair
- * of characters, taken as two-byte integers, mod Hashtabsize.
- *
- */
-
-static
-int
-hash_function(const char *string)
-{
- long sum = 0;
-
- DEBUG(9, ("hashing %s", string));
- while (*string) {
- sum += (long) (*string + (*(string + 1) << 8));
- string++;
- }
-
- DEBUG(9, ("sum is %ld", sum));
- return (int) (sum % HASHTABSIZE);
-}
-
-/*
- * struct name_table_entry *
- * find_entry(string)
- *
- * Finds the entry for the given string in the hash table if present.
- * Returns a pointer to the entry in the table or 0 if not found.
- *
- */
-
-#ifndef MAIN_PROGRAM
-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;
-
- 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];
- }
- }
-
- return (ptr);
-}
-
-/*
- * struct name_table_entry *
- * find_type_entry(string, type, table)
- *
- * Finds the first entry for the given name with the given type in the
- * given table if present (as distinct from find_entry, which finds the
- * the last entry regardless of type). You can use this if you detect
- * a name clash. It's slower, though. Returns a pointer to the entry
- * in the table or 0 if not found.
- */
-
-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;
-
- 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);
-}
-#endif
-
-#ifdef MAIN_PROGRAM
-/*
- * This filter reads from standard input a list of tab-delimited columns,
- * (e.g., from Caps.filtered) computes the hash-value of a specified column and
- * writes the hashed tables to standard output.
- *
- * By compiling the hash table at build time, we're able to make the entire
- * set of terminfo and termcap tables readonly (and also provide some runtime
- * performance enhancement).
- */
-
-#define MAX_COLUMNS BUFSIZ /* this _has_ to be worst-case */
-
-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(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;
-}
-
-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);
- }
-
- /*
- * 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++;
- }
- _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;
-}
-#endif
diff --git a/ncurses-5.3/ncurses/tinfo/comp_parse.c b/ncurses-5.3/ncurses/tinfo/comp_parse.c
deleted file mode 100644
index 20f664b..0000000
--- a/ncurses-5.3/ncurses/tinfo/comp_parse.c
+++ /dev/null
@@ -1,501 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * comp_parse.c -- parser driver loop and use handling.
- *
- * _nc_read_entry_source(FILE *, literal, bool, bool (*hook)())
- * _nc_resolve_uses(void)
- * _nc_free_entries(void)
- *
- * Use this code by calling _nc_read_entry_source() on as many source
- * files as you like (either terminfo or termcap syntax). If you
- * want use-resolution, call _nc_resolve_uses(). To free the list
- * storage, do _nc_free_entries().
- *
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-static void sanity_check(TERMTYPE *);
-NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
-
-/****************************************************************************
- *
- * Entry queue handling
- *
- ****************************************************************************/
-/*
- * The entry list is a doubly linked list with NULLs terminating the lists:
- *
- * --------- --------- ---------
- * | | | | | | offset
- * |-------| |-------| |-------|
- * | ----+-->| ----+-->| NULL | next
- * |-------| |-------| |-------|
- * | NULL |<--+---- |<--+---- | last
- * --------- --------- ---------
- * ^ ^
- * | |
- * | |
- * _nc_head _nc_tail
- */
-
-NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0;
-NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0;
-
-static void
-enqueue(ENTRY * ep)
-/* add an entry to the in-core list */
-{
- ENTRY *newp = _nc_copy_entry(ep);
-
- if (newp == 0)
- _nc_err_abort(MSG_NO_MEMORY);
-
- newp->last = _nc_tail;
- _nc_tail = newp;
-
- newp->next = 0;
- if (newp->last)
- newp->last->next = newp;
-}
-
-NCURSES_EXPORT(void)
-_nc_free_entries(ENTRY * headp)
-/* free the allocated storage consumed by list entries */
-{
- ENTRY *ep, *next;
-
- for (ep = headp; ep; ep = next) {
- /*
- * This conditional lets us disconnect storage from the list.
- * To do this, copy an entry out of the list, then null out
- * the string-table member in the original and any use entries
- * it references.
- */
- FreeIfNeeded(ep->tterm.str_table);
-
- next = ep->next;
-
- free(ep);
- if (ep == _nc_head)
- _nc_head = 0;
- if (ep == _nc_tail)
- _nc_tail = 0;
- }
-}
-
-static char *
-force_bar(char *dst, char *src)
-{
- if (strchr(src, '|') == 0) {
- size_t len = strlen(src);
- if (len > MAX_NAME_SIZE)
- len = MAX_NAME_SIZE;
- (void) strncpy(dst, src, len);
- (void) strcpy(dst + len, "|");
- src = dst;
- }
- return src;
-}
-
-NCURSES_EXPORT(bool)
-_nc_entry_match(char *n1, char *n2)
-/* do any of the aliases in a pair of terminal names match? */
-{
- char *pstart, *qstart, *pend, *qend;
- char nc1[MAX_NAME_SIZE + 2], nc2[MAX_NAME_SIZE + 2];
-
- n1 = force_bar(nc1, n1);
- n2 = force_bar(nc2, n2);
-
- for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1)
- for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1)
- if ((pend - pstart == qend - qstart)
- && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0)
- return (TRUE);
-
- return (FALSE);
-}
-
-/****************************************************************************
- *
- * Entry compiler and resolution logic
- *
- ****************************************************************************/
-
-NCURSES_EXPORT(void)
-_nc_read_entry_source(FILE * fp, char *buf,
- int literal, bool silent,
- bool(*hook) (ENTRY *))
-/* slurp all entries in the given file into core */
-{
- ENTRY thisentry;
- bool oldsuppress = _nc_suppress_warnings;
- int immediate = 0;
-
- if (silent)
- _nc_suppress_warnings = TRUE; /* shut the lexer up, too */
-
- _nc_reset_input(fp, buf);
- for (;;) {
- memset(&thisentry, 0, sizeof(thisentry));
- if (_nc_parse_entry(&thisentry, literal, silent) == ERR)
- break;
- if (!isalnum(UChar(thisentry.tterm.term_names[0])))
- _nc_err_abort("terminal names must start with letter or digit");
-
- /*
- * This can be used for immediate compilation of entries with no
- * use references to disk, so as to avoid chewing up a lot of
- * core when the resolution code could fetch entries off disk.
- */
- if (hook != NULLHOOK && (*hook) (&thisentry))
- immediate++;
- else
- enqueue(&thisentry);
- }
-
- if (_nc_tail) {
- /* set up the head pointer */
- for (_nc_head = _nc_tail; _nc_head->last; _nc_head = _nc_head->last)
- continue;
-
- DEBUG(1, ("head = %s", _nc_head->tterm.term_names));
- DEBUG(1, ("tail = %s", _nc_tail->tterm.term_names));
- }
-#ifdef TRACE
- else if (!immediate)
- DEBUG(1, ("no entries parsed"));
-#endif
-
- _nc_suppress_warnings = oldsuppress;
-}
-
-NCURSES_EXPORT(int)
-_nc_resolve_uses(bool fullresolve)
-/* try to resolve all use capabilities */
-{
- ENTRY *qp, *rp, *lastread = 0;
- bool keepgoing;
- int i, j, unresolved, total_unresolved, multiples;
-
- DEBUG(2, ("RESOLUTION BEGINNING"));
-
- /*
- * Check for multiple occurrences of the same name.
- */
- multiples = 0;
- for_entry_list(qp) {
- int matchcount = 0;
-
- for_entry_list(rp) {
- if (qp > rp
- && _nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) {
- matchcount++;
- if (matchcount == 1) {
- (void) fprintf(stderr, "Name collision between %s",
- _nc_first_name(qp->tterm.term_names));
- multiples++;
- }
- if (matchcount >= 1)
- (void) fprintf(stderr, " %s", _nc_first_name(rp->tterm.term_names));
- }
- }
- if (matchcount >= 1)
- (void) putc('\n', stderr);
- }
- if (multiples > 0)
- return (FALSE);
-
- DEBUG(2, ("NO MULTIPLE NAME OCCURRENCES"));
-
- /*
- * First resolution stage: compute link pointers corresponding to names.
- */
- total_unresolved = 0;
- _nc_curr_col = -1;
- for_entry_list(qp) {
- unresolved = 0;
- for (i = 0; i < qp->nuses; i++) {
- bool foundit;
- char *child = _nc_first_name(qp->tterm.term_names);
- char *lookfor = qp->uses[i].name;
- long lookline = qp->uses[i].line;
-
- foundit = FALSE;
-
- _nc_set_type(child);
-
- /* first, try to resolve from in-core records */
- for_entry_list(rp) {
- if (rp != qp
- && _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;
- }
- }
-
- /* if that didn't work, try to merge in a compiled entry */
- if (!foundit) {
- TERMTYPE thisterm;
- char filename[PATH_MAX];
-
- memset(&thisterm, 0, sizeof(thisterm));
- if (_nc_read_entry(lookfor, filename, &thisterm) == 1) {
- DEBUG(2, ("%s: resolving use=%s (compiled)",
- child, lookfor));
-
- rp = typeMalloc(ENTRY, 1);
- if (rp == 0)
- _nc_err_abort(MSG_NO_MEMORY);
- rp->tterm = thisterm;
- rp->nuses = 0;
- rp->next = lastread;
- lastread = rp;
-
- qp->uses[i].link = rp;
- foundit = TRUE;
- }
- }
-
- /* no good, mark this one unresolvable and complain */
- if (!foundit) {
- unresolved++;
- total_unresolved++;
-
- _nc_curr_line = lookline;
- _nc_warning("resolution of use=%s failed", lookfor);
- qp->uses[i].link = 0;
- }
- }
- }
- if (total_unresolved) {
- /* free entries read in off disk */
- _nc_free_entries(lastread);
- return (FALSE);
- }
-
- DEBUG(2, ("NAME RESOLUTION COMPLETED OK"));
-
- /*
- * 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) {
- do {
- TERMTYPE merged;
-
- keepgoing = FALSE;
-
- for_entry_list(qp) {
- if (qp->nuses > 0) {
- DEBUG(2, ("%s: attempting merge",
- _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
- * subsequent pass.
- */
- 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));
- goto incomplete;
- }
-
- /*
- * First, make sure there's no garbage in the
- * merge block. as a side effect, copy into
- * the merged entry the name field and string
- * table pointer.
- */
- _nc_copy_termtype(&merged, &(qp->tterm));
-
- /*
- * Now merge in each use entry in the proper
- * (reverse) order.
- */
- for (; qp->nuses; qp->nuses--)
- _nc_merge_entry(&merged,
- &qp->uses[qp->nuses - 1].link->tterm);
-
- /*
- * Now merge in the original entry.
- */
- _nc_merge_entry(&merged, &qp->tterm);
-
- /*
- * Replace the original entry with the merged one.
- */
- FreeIfNeeded(qp->tterm.Booleans);
- 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
- * didn't bomb. So go back for another pass.
- */
- /* FALLTHRU */
- incomplete:
- keepgoing = TRUE;
- }
- }
- } while
- (keepgoing);
-
- DEBUG(2, ("MERGES COMPLETED OK"));
-
- /*
- * The exit condition of the loop above is such that all entries
- * must now be resolved. Now handle cancellations. In a resolved
- * entry there should be no cancellation markers.
- */
- for_entry_list(qp) {
- 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)
- qp->tterm.Numbers[j] = ABSENT_NUMERIC;
- }
- for_each_string(j, &(qp->tterm)) {
- if (qp->tterm.Strings[j] == CANCELLED_STRING)
- qp->tterm.Strings[j] = ABSENT_STRING;
- }
- }
- }
-
- /*
- * We'd like to free entries read in off disk at this point, but can't.
- * The merge_entry() code doesn't copy the strings in the use entries,
- * it just aliases them. If this ever changes, do a
- * free_entries(lastread) here.
- */
-
- DEBUG(2, ("RESOLUTION FINISHED"));
-
- if (fullresolve)
- if (_nc_check_termtype != 0) {
- _nc_curr_col = -1;
- for_entry_list(qp) {
- _nc_curr_line = qp->startline;
- _nc_set_type(_nc_first_name(qp->tterm.term_names));
- _nc_check_termtype(&qp->tterm);
- }
- DEBUG(2, ("SANITY CHECK FINISHED"));
- }
-
- return (TRUE);
-}
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed.
- */
-
-#undef CUR
-#define CUR tp->
-
-static void
-sanity_check(TERMTYPE * tp)
-{
- if (!PRESENT(exit_attribute_mode)) {
-#ifdef __UNUSED__ /* this casts too wide a net */
- 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)))
- _nc_warning("no exit_attribute_mode");
-#endif /* __UNUSED__ */
- 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);
- ANDMISSING(exit_alt_charset_mode, acs_chars);
- ANDMISSING(enter_blink_mode, exit_attribute_mode);
- ANDMISSING(enter_bold_mode, exit_attribute_mode);
- PAIRED(exit_ca_mode, enter_ca_mode);
- PAIRED(enter_delete_mode, exit_delete_mode);
- ANDMISSING(enter_dim_mode, exit_attribute_mode);
- PAIRED(enter_insert_mode, exit_insert_mode);
- ANDMISSING(enter_secure_mode, exit_attribute_mode);
- ANDMISSING(enter_protected_mode, exit_attribute_mode);
- ANDMISSING(enter_reverse_mode, exit_attribute_mode);
- PAIRED(from_status_line, to_status_line);
- PAIRED(meta_off, meta_on);
-
- PAIRED(prtr_on, prtr_off);
- PAIRED(save_cursor, restore_cursor);
- 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);
-#endif
- ANDMISSING(set_color_pair, initialize_pair);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/comp_scan.c b/ncurses-5.3/ncurses/tinfo/comp_scan.c
deleted file mode 100644
index 0116133..0000000
--- a/ncurses-5.3/ncurses/tinfo/comp_scan.c
+++ /dev/null
@@ -1,831 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * comp_scan.c --- Lexical scanner for terminfo compiler.
- *
- * _nc_reset_input()
- * _nc_get_token()
- * _nc_panic_mode()
- * int _nc_syntax;
- * int _nc_curr_line;
- * long _nc_curr_file_pos;
- * long _nc_comment_start;
- * long _nc_comment_end;
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <term_entry.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Maximum length of string capability we'll accept before raising an error.
- * Yes, there is a real capability in /etc/termcap this long, an "is".
- */
-#define MAXCAPLEN 600
-
-#define iswhite(ch) (ch == ' ' || ch == '\t')
-
-NCURSES_EXPORT_VAR(int)
-_nc_syntax = 0; /* termcap or terminfo? */
-NCURSES_EXPORT_VAR(long)
-_nc_curr_file_pos = 0; /* file offset of current line */
-NCURSES_EXPORT_VAR(long)
-_nc_comment_start = 0; /* start of comment range before name */
-NCURSES_EXPORT_VAR(long)
-_nc_comment_end = 0; /* end of comment range before name */
-NCURSES_EXPORT_VAR(long)
-_nc_start_line = 0; /* start line of current entry */
-
-NCURSES_EXPORT_VAR(struct token)
-_nc_curr_token =
-{
- 0, 0, 0
-};
-
-/*****************************************************************************
- *
- * Token-grabbing machinery
- *
- *****************************************************************************/
-
-static bool first_column; /* See 'next_char()' below */
-static char separator; /* capability separator */
-static int pushtype; /* type of pushback token */
-static char *pushname;
-
-#if NCURSES_EXT_FUNCS
-NCURSES_EXPORT_VAR(bool)
-_nc_disable_period = FALSE; /* used by tic -a option */
-#endif
-
-static int last_char(void);
-static int next_char(void);
-static long stream_pos(void);
-static bool end_of_stream(void);
-static void push_back(char c);
-
-/* Assume we may be looking at a termcap-style continuation */
-static inline int
-eat_escaped_newline(int ch)
-{
- if (ch == '\\')
- while ((ch = next_char()) == '\n' || iswhite(ch))
- continue;
- return ch;
-}
-
-/*
- * int
- * get_token()
- *
- * Scans the input for the next token, storing the specifics in the
- * global structure 'curr_token' and returning one of the following:
- *
- * NAMES A line beginning in column 1. 'name'
- * will be set to point to everything up to but
- * not including the first separator on the line.
- * BOOLEAN An entry consisting of a name followed by
- * a separator. 'name' will be set to point to
- * the name of the capability.
- * NUMBER An entry of the form
- * name#digits,
- * 'name' will be set to point to the capability
- * name and 'valnumber' to the number given.
- * STRING An entry of the form
- * name=characters,
- * 'name' is set to the capability name and
- * 'valstring' to the string of characters, with
- * input translations done.
- * CANCEL An entry of the form
- * name@,
- * 'name' is set to the capability name and
- * 'valnumber' to -1.
- * EOF The end of the file has been reached.
- *
- * A `separator' is either a comma or a semicolon, depending on whether
- * we are in termcap or terminfo mode.
- *
- */
-
-NCURSES_EXPORT(int)
-_nc_get_token(bool silent)
-{
- static const char terminfo_punct[] = "@%&*!#";
- static char *buffer;
-
- char *numchk;
- char *ptr;
- char numbuf[80];
- int ch;
- int dot_flag = FALSE;
- int type;
- long number;
- long token_start;
- unsigned found;
-
- if (pushtype != NO_PUSHBACK) {
- int retval = pushtype;
-
- _nc_set_type(pushname != 0 ? pushname : "");
- DEBUG(3, ("pushed-back token: `%s', class %d",
- _nc_curr_token.tk_name, pushtype));
-
- pushtype = NO_PUSHBACK;
- if (pushname != 0)
- pushname[0] = '\0';
-
- /* currtok wasn't altered by _nc_push_token() */
- return (retval);
- }
-
- if (end_of_stream())
- return (EOF);
-
- start_token:
- token_start = stream_pos();
- while ((ch = next_char()) == '\n' || iswhite(ch))
- continue;
-
- ch = eat_escaped_newline(ch);
-
- if (ch == EOF)
- type = EOF;
- else {
- /* if this is a termcap entry, skip a leading separator */
- if (separator == ':' && ch == ':')
- ch = next_char();
-
- if (ch == '.'
-#if NCURSES_EXT_FUNCS
- && !_nc_disable_period
-#endif
- ) {
- dot_flag = TRUE;
- DEBUG(8, ("dot-flag set"));
-
- while ((ch = next_char()) == '.' || iswhite(ch))
- continue;
- }
-
- if (ch == EOF) {
- type = EOF;
- goto end_of_token;
- }
-
- /* have to make some punctuation chars legal for terminfo */
- if (!isalnum(ch)
-#if NCURSES_EXT_FUNCS
- && !(ch == '.' && _nc_disable_period)
-#endif
- && !strchr(terminfo_punct, (char) ch)) {
- if (!silent)
- _nc_warning("Illegal character (expected alphanumeric or %s) - %s",
- terminfo_punct, unctrl((chtype) ch));
- _nc_panic_mode(separator);
- goto start_token;
- }
-
- if (buffer == 0)
- buffer = typeMalloc(char, MAX_ENTRY_SIZE);
-
- ptr = buffer;
- *(ptr++) = ch;
-
- if (first_column) {
- char *desc;
-
- _nc_comment_start = token_start;
- _nc_comment_end = _nc_curr_file_pos;
- _nc_start_line = _nc_curr_line;
-
- _nc_syntax = ERR;
- while ((ch = next_char()) != '\n') {
- if (ch == EOF)
- _nc_err_abort(MSG_NO_MEMORY);
- else if (ch == ':' && last_char() != ',') {
- _nc_syntax = SYN_TERMCAP;
- separator = ':';
- break;
- } else if (ch == ',') {
- _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
- * either syntax.
- */
- /* FALLTHRU */
- } else
- ch = eat_escaped_newline(ch);
-
- *ptr++ = ch;
- }
- 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.
- */
- _nc_syntax = SYN_TERMCAP;
- separator = ':';
- } else if (_nc_syntax == SYN_TERMINFO) {
- /* throw away trailing /, *$/ */
- for (--ptr; iswhite(*ptr) || *ptr == ','; ptr--)
- continue;
- ptr[1] = '\0';
- }
-
- /*
- * This is the soonest we have the terminal name fetched. Set up
- * for following warning messages.
- */
- ptr = strchr(buffer, '|');
- if (ptr == (char *) NULL)
- ptr = buffer + strlen(buffer);
- ch = *ptr;
- *ptr = '\0';
- _nc_set_type(buffer);
- *ptr = ch;
-
- /*
- * Compute the boundary between the aliases and the description
- * field for syntax-checking purposes.
- */
- desc = strrchr(buffer, '|');
- if (!silent && desc) {
- if (*desc == '\0')
- _nc_warning("empty longname field");
- else if (strchr(desc, ' ') == (char *) NULL)
- _nc_warning("older tic versions may treat the description field as an alias");
- }
- if (!desc)
- desc = buffer + strlen(buffer);
-
- /*
- * Whitespace in a name field other than the long name can confuse
- * rdist and some termcap tools. Slashes are a no-no. Other
- * special characters can be dangerous due to shell expansion.
- */
- for (ptr = buffer; ptr < desc; ptr++) {
- if (isspace(UChar(*ptr))) {
- if (!silent)
- _nc_warning("whitespace in name or alias field");
- break;
- } else if (*ptr == '/') {
- if (!silent)
- _nc_warning("slashes aren't allowed in names or aliases");
- break;
- } else if (strchr("$[]!*?", *ptr)) {
- if (!silent)
- _nc_warning("dubious character `%c' in name or alias field", *ptr);
- break;
- }
- }
-
- ptr = buffer;
-
- _nc_curr_token.tk_name = buffer;
- type = NAMES;
- } else {
- while ((ch = next_char()) != EOF) {
- if (!isalnum(ch)) {
- if (_nc_syntax == SYN_TERMINFO) {
- if (ch != '_')
- break;
- } else { /* allow ';' for "k;" */
- if (ch != ';')
- break;
- }
- }
- *(ptr++) = ch;
- }
-
- *ptr++ = '\0';
- switch (ch) {
- case ',':
- case ':':
- if (ch != separator)
- _nc_err_abort("Separator inconsistent with syntax");
- _nc_curr_token.tk_name = buffer;
- type = BOOLEAN;
- break;
- case '@':
- if ((ch = next_char()) != separator && !silent)
- _nc_warning("Missing separator after `%s', have %s",
- buffer, unctrl((chtype) ch));
- _nc_curr_token.tk_name = buffer;
- type = CANCEL;
- break;
-
- case '#':
- found = 0;
- while (isalnum(ch = next_char())) {
- numbuf[found++] = ch;
- if (found >= sizeof(numbuf) - 1)
- break;
- }
- numbuf[found] = '\0';
- number = strtol(numbuf, &numchk, 0);
- 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 '=':
- 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;
- type = STRING;
- break;
-
- case EOF:
- type = EOF;
- break;
- default:
- /* just to get rid of the compiler warning */
- type = UNDEF;
- if (!silent)
- _nc_warning("Illegal character - %s", unctrl((chtype) ch));
- }
- } /* end else (first_column == FALSE) */
- } /* end else (ch != EOF) */
-
- end_of_token:
-
-#ifdef TRACE
- if (dot_flag == TRUE)
- DEBUG(8, ("Commented out "));
-
- if (_nc_tracing >= DEBUG_LEVEL(7)) {
- switch (type) {
- case BOOLEAN:
- _tracef("Token: Boolean; name='%s'",
- _nc_curr_token.tk_name);
- break;
-
- case NUMBER:
- _tracef("Token: Number; name='%s', value=%d",
- _nc_curr_token.tk_name,
- _nc_curr_token.tk_valnumber);
- break;
-
- case STRING:
- _tracef("Token: String; name='%s', value=%s",
- _nc_curr_token.tk_name,
- _nc_visbuf(_nc_curr_token.tk_valstring));
- break;
-
- case CANCEL:
- _tracef("Token: Cancel; name='%s'",
- _nc_curr_token.tk_name);
- break;
-
- case NAMES:
-
- _tracef("Token: Names; value='%s'",
- _nc_curr_token.tk_name);
- break;
-
- case EOF:
- _tracef("Token: End of file");
- break;
-
- default:
- _nc_warning("Bad token type");
- }
- }
-#endif
-
- if (dot_flag == TRUE) /* if commented out, use the next one */
- type = _nc_get_token(silent);
-
- DEBUG(3, ("token: `%s', class %d",
- _nc_curr_token.tk_name != 0 ? _nc_curr_token.tk_name :
- "<null>",
- type));
-
- return (type);
-}
-
-/*
- * char
- * trans_string(ptr)
- *
- * Reads characters using next_char() until encountering a separator, nl,
- * or end-of-file. The returned value is the character which caused
- * reading to stop. The following translations are done on the input:
- *
- * ^X goes to ctrl-X (i.e. X & 037)
- * {\E,\n,\r,\b,\t,\f} go to
- * {ESCAPE,newline,carriage-return,backspace,tab,formfeed}
- * {\^,\\} go to {carat,backslash}
- * \ddd (for ddd = up to three octal digits) goes to the character ddd
- *
- * \e == \E
- * \0 == \200
- *
- */
-
-NCURSES_EXPORT(char)
-_nc_trans_string(char *ptr, char *last)
-{
- int count = 0;
- int number = 0;
- int i, c;
- chtype ch, last_ch = '\0';
- bool ignored = FALSE;
- bool long_warning = FALSE;
-
- while ((ch = c = next_char()) != (chtype) separator && c != EOF) {
- if (ptr == (last - 1))
- break;
- if ((_nc_syntax == SYN_TERMCAP) && c == '\n')
- break;
- if (ch == '^' && last_ch != '%') {
- ch = c = next_char();
- if (c == EOF)
- _nc_err_abort(MSG_NO_INPUTS);
-
- if (!(is7bits(ch) && isprint(ch))) {
- _nc_warning("Illegal ^ character - %s", unctrl(ch));
- }
- if (ch == '?') {
- *(ptr++) = '\177';
- if (_nc_tracing)
- _nc_warning("Allow ^? as synonym for \\177");
- } else {
- if ((ch &= 037) == 0)
- ch = 128;
- *(ptr++) = (char) (ch);
- }
- } else if (ch == '\\') {
- ch = c = next_char();
- if (c == 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)
- _nc_err_abort(MSG_NO_INPUTS);
-
- if (c < '0' || c > '7') {
- if (isdigit(c)) {
- _nc_warning("Non-octal digit `%c' in \\ sequence", c);
- /* allow the digit; it'll do less harm */
- } else {
- push_back((char) c);
- break;
- }
- }
-
- number = number * 8 + c - '0';
- }
-
- if (number == 0)
- number = 0200;
- *(ptr++) = (char) number;
- } else {
- switch (c) {
- case 'E':
- case 'e':
- *(ptr++) = '\033';
- break;
-
- case 'a':
- *(ptr++) = '\007';
- break;
-
- case 'l':
- case 'n':
- *(ptr++) = '\n';
- break;
-
- case 'r':
- *(ptr++) = '\r';
- break;
-
- case 'b':
- *(ptr++) = '\010';
- break;
-
- case 's':
- *(ptr++) = ' ';
- break;
-
- case 'f':
- *(ptr++) = '\014';
- break;
-
- case 't':
- *(ptr++) = '\t';
- break;
-
- case '\\':
- *(ptr++) = '\\';
- break;
-
- case '^':
- *(ptr++) = '^';
- break;
-
- case ',':
- *(ptr++) = ',';
- break;
-
- case ':':
- *(ptr++) = ':';
- break;
-
- case '\n':
- continue;
-
- default:
- _nc_warning("Illegal character %s in \\ sequence",
- unctrl(ch));
- *(ptr++) = (char) ch;
- } /* endswitch (ch) */
- } /* endelse (ch < '0' || ch > '7') */
- }
- /* end else if (ch == '\\') */
- else if (ch == '\n' && (_nc_syntax == SYN_TERMINFO)) {
- /* newlines embedded in a terminfo string are ignored */
- ignored = TRUE;
- } else {
- *(ptr++) = (char) ch;
- }
-
- if (!ignored) {
- last_ch = ch;
- count++;
- }
- ignored = FALSE;
-
- if (count > MAXCAPLEN && !long_warning) {
- _nc_warning("Very long string found. Missing separator?");
- long_warning = TRUE;
- }
- } /* end while */
-
- *ptr = '\0';
-
- return (ch);
-}
-
-/*
- * _nc_push_token()
- *
- * Push a token of given type so that it will be reread by the next
- * get_token() call.
- */
-
-NCURSES_EXPORT(void)
-_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 _nc_curr_token is static storage that nothing but
- * _nc_get_token() touches.
- */
- pushtype = tokclass;
- if (pushname == 0)
- pushname = typeMalloc(char, MAX_NAME_SIZE + 1);
- _nc_get_type(pushname);
-
- DEBUG(3, ("pushing token: `%s', class %d",
- _nc_curr_token.tk_name, pushtype));
-}
-
-/*
- * Panic mode error recovery - skip everything until a "ch" is found.
- */
-NCURSES_EXPORT(void)
-_nc_panic_mode(char ch)
-{
- int c;
-
- for (;;) {
- c = next_char();
- if (c == ch)
- return;
- if (c == EOF)
- return;
- }
-}
-
-/*****************************************************************************
- *
- * Character-stream handling
- *
- *****************************************************************************/
-
-#define LEXBUFSIZ 1024
-
-static char *bufptr; /* otherwise, the input buffer pointer */
-static char *bufstart; /* start of buffer so we can compute offsets */
-static FILE *yyin; /* scanner's input file descriptor */
-
-/*
- * _nc_reset_input()
- *
- * Resets the input-reading routines. Used on initialization,
- * or after a seek has been done. Exactly one argument must be
- * non-null.
- */
-
-NCURSES_EXPORT(void)
-_nc_reset_input(FILE * fp, char *buf)
-{
- pushtype = NO_PUSHBACK;
- if (pushname != 0)
- pushname[0] = '\0';
- yyin = fp;
- bufstart = bufptr = buf;
- _nc_curr_file_pos = 0L;
- if (fp != 0)
- _nc_curr_line = 0;
- _nc_curr_col = 0;
-}
-
-/*
- * int last_char()
- *
- * Returns the final nonblank character on the current input buffer
- */
-static int
-last_char(void)
-{
- size_t len = strlen(bufptr);
- while (len--) {
- if (!isspace(UChar(bufptr[len])))
- return bufptr[len];
- }
- return 0;
-}
-
-/*
- * int next_char()
- *
- * Returns the next character in the input stream. Comments and leading
- * white space are stripped.
- *
- * The global state variable 'firstcolumn' is set TRUE if the character
- * returned is from the first column of the input line.
- *
- * The global variable _nc_curr_line is incremented for each new line.
- * The global variable _nc_curr_file_pos is set to the file offset of the
- * beginning of each line.
- */
-
-static int
-next_char(void)
-{
- if (!yyin) {
- /*
- * An string with an embedded null will truncate the input. This is
- * intentional (we don't read binary files here).
- */
- if (*bufptr == '\0')
- return (EOF);
- if (*bufptr == '\n') {
- _nc_curr_line++;
- _nc_curr_col = 0;
- }
- } else if (!bufptr || !*bufptr) {
- /*
- * In theory this could be recoded to do its I/O one character at a
- * time, saving the buffer space. In practice, this turns out to be
- * quite hard to get completely right. Try it and see. If you
- * succeed, don't forget to hack push_back() correspondingly.
- */
- static char *result;
- static size_t allocated;
- size_t used;
- size_t len;
-
- do {
- bufstart = 0;
- used = 0;
- do {
- if (used + (LEXBUFSIZ / 4) >= allocated) {
- allocated += (allocated + LEXBUFSIZ);
- result = typeRealloc(char, allocated, result);
- if (result == 0)
- return (EOF);
- }
- if (used == 0)
- _nc_curr_file_pos = ftell(yyin);
-
- if (fgets(result + used, allocated - used, yyin) != 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++;
-
- /*
- * 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);
-
- _nc_curr_col++;
- return (*bufptr++);
-}
-
-static void
-push_back(char c)
-/* push a character back onto the input stream */
-{
- if (bufptr == bufstart)
- _nc_syserr_abort("Can't backspace off beginning of line");
- *--bufptr = c;
-}
-
-static long
-stream_pos(void)
-/* return our current character position in the input stream */
-{
- return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0));
-}
-
-static bool
-end_of_stream(void)
-/* are we at end of input? */
-{
- return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
- ? TRUE : FALSE);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/doalloc.c b/ncurses-5.3/ncurses/tinfo/doalloc.c
deleted file mode 100644
index 04d97f2..0000000
--- a/ncurses-5.3/ncurses/tinfo/doalloc.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * 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).
- *
- * Also if realloc fails, we discard the old memory to avoid leaks.
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(void *)
-_nc_doalloc(void *oldp, size_t amount)
-{
- void *newp;
-
- if (oldp != 0) {
- if ((newp = realloc(oldp, amount)) == 0) {
- free(oldp);
- errno = ENOMEM; /* just in case 'free' reset */
- }
- } else {
- newp = malloc(amount);
- }
- return newp;
-}
-
-#if !HAVE_STRDUP
-NCURSES_EXPORT(char *)
-_nc_strdup(const char *src)
-{
- char *dst;
- if (src != 0) {
- dst = typeMalloc(char, strlen(src) + 1);
- if (dst != 0) {
- (void) strcpy(dst, src);
- }
- } else {
- dst = 0;
- }
- return dst;
-}
-#endif
diff --git a/ncurses-5.3/ncurses/tinfo/free_ttype.c b/ncurses-5.3/ncurses/tinfo/free_ttype.c
deleted file mode 100644
index 900d09b..0000000
--- a/ncurses-5.3/ncurses/tinfo/free_ttype.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * 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 <dickey@clark.net> 1999 *
- ****************************************************************************/
-
-/*
- * free_ttype.c -- allocation functions for TERMTYPE
- *
- * _nc_free_termtype()
- * use_extended_names()
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(void)
-_nc_free_termtype(TERMTYPE * ptr)
-{
- FreeIfNeeded(ptr->str_table);
- FreeIfNeeded(ptr->Booleans);
- FreeIfNeeded(ptr->Numbers);
- FreeIfNeeded(ptr->Strings);
-#if NCURSES_XNAMES
- FreeIfNeeded(ptr->ext_str_table);
- FreeIfNeeded(ptr->ext_Names);
-#endif
- memset(ptr, 0, sizeof(TERMTYPE));
-}
-
-#if NCURSES_XNAMES
-NCURSES_EXPORT_VAR(bool) _nc_user_definable = TRUE;
-
-NCURSES_EXPORT(int)
-use_extended_names(bool flag)
-{
- int oldflag = _nc_user_definable;
- _nc_user_definable = flag;
- return oldflag;
-}
-#endif
diff --git a/ncurses-5.3/ncurses/tinfo/getenv_num.c b/ncurses-5.3/ncurses/tinfo/getenv_num.c
deleted file mode 100644
index ad0eebf..0000000
--- a/ncurses-5.3/ncurses/tinfo/getenv_num.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-
-/*
- * getenv_num.c -- obtain a number from the environment
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-_nc_getenv_num(const char *name)
-{
- 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;
-
- return (int) value;
-}
diff --git a/ncurses-5.3/ncurses/tinfo/home_terminfo.c b/ncurses-5.3/ncurses/tinfo/home_terminfo.c
deleted file mode 100644
index c476e5e..0000000
--- a/ncurses-5.3/ncurses/tinfo/home_terminfo.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * 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 <dickey@clark.net> 1998,2000 *
- ****************************************************************************/
-
-/*
- * home_terminfo.c -- return the $HOME/.terminfo string, expanded
- */
-
-#include <curses.priv.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-#define my_length (strlen(home) + sizeof(PRIVATE_INFO))
-
-/* ncurses extension...fall back on user's private directory */
-
-NCURSES_EXPORT(char *)
-_nc_home_terminfo(void)
-{
- char *home;
- static char *temp = 0;
-
- if (use_terminfo_vars()) {
- if (temp == 0) {
- if ((home = getenv("HOME")) != 0
- && my_length <= PATH_MAX) {
- temp = typeMalloc(char, my_length);
- if (temp == 0)
- _nc_err_abort(MSG_NO_MEMORY);
- (void) sprintf(temp, PRIVATE_INFO, home);
- }
- }
- return temp;
- }
- return 0;
-}
diff --git a/ncurses-5.3/ncurses/tinfo/init_keytry.c b/ncurses-5.3/ncurses/tinfo/init_keytry.c
deleted file mode 100644
index b9bcfba..0000000
--- a/ncurses-5.3/ncurses/tinfo/init_keytry.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <term.h> /* keypad_xmit, keypad_local, meta_on, meta_off */
- /* cursor_visible,cursor_normal,cursor_invisible */
-#include <tic.h> /* struct tinfo_fkeys */
-
-MODULE_ID("$Id$")
-
-/*
-** _nc_init_keytry()
-**
-** Construct the try for the current terminal's keypad keys.
-**
-*/
-
-#if BROKEN_LINKER
-#undef _nc_tinfo_fkeys
-#endif
-
-/* LINT_PREPRO
-#if 0*/
-#include <init_keytry.h>
-/* LINT_PREPRO
-#endif*/
-
-#if BROKEN_LINKER
-struct tinfo_fkeys *
-_nc_tinfo_fkeysf(void)
-{
- return _nc_tinfo_fkeys;
-}
-#endif
-
-NCURSES_EXPORT(void)
-_nc_init_keytry(void)
-{
- 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.
- */
-
- 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
- _nc_trace_tries(SP->_keytry);
-#endif
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_acs.c b/ncurses-5.3/ncurses/tinfo/lib_acs.c
deleted file mode 100644
index 8633c16..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_acs.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h> /* ena_acs, acs_chars */
-
-MODULE_ID("$Id$")
-
-#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] =
-{
- 0
-};
-#endif
-
-NCURSES_EXPORT(void)
-_nc_init_acs(void)
-{
- T(("initializing ACS map"));
-#if !BROKEN_LINKER
- memset(acs_map, 0, sizeof(acs_map));
-#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 */
-
- if (ena_acs != NULL) {
- TPUTS_TRACE("ena_acs");
- putp(ena_acs);
- }
-#define ALTCHAR(c) ((chtype)(((unsigned char)(c)) | A_ALTCHARSET))
-
- if (acs_chars != NULL) {
- size_t i = 0;
- size_t length = strlen(acs_chars);
-
- while (i < length)
- switch (acs_chars[i]) {
- case 'l':
- case 'm':
- case 'k':
- case 'j':
- case 'u':
- case 't':
- case 'v':
- case 'w':
- case 'q':
- case 'x':
- case 'n':
- case 'o':
- case 's':
- case '`':
- case 'a':
- case 'f':
- case 'g':
- case '~':
- case ',':
- case '+':
- case '.':
- case '-':
- case 'h':
- case 'i':
- case '0':
- case 'p':
- case 'r':
- case 'y':
- case 'z':
- case '{':
- case '|':
- case '}':
- acs_map[(unsigned int) acs_chars[i]] =
- ALTCHAR(acs_chars[i + 1]);
- i++;
- /* FALLTHRU */
- default:
- i++;
- break;
- }
- }
-#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[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 */
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_baudrate.c b/ncurses-5.3/ncurses/tinfo/lib_baudrate.c
deleted file mode 100644
index 077b3b6..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_baudrate.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_baudrate.c
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term, pad_char */
-#include <termcap.h> /* ospeed */
-
-/*
- * 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$")
-
-/*
- * int
- * baudrate()
- *
- * Returns the current terminal's baud rate.
- *
- */
-
-struct speed {
- int s; /* value for 'ospeed' is an index */
- int sp; /* the actual speed */
-};
-
-static struct speed const speeds[] =
-{
- {B0, 0},
- {B50, 50},
- {B75, 75},
- {B110, 110},
- {B134, 134},
- {B150, 150},
- {B200, 200},
- {B300, 300},
- {B600, 600},
- {B1200, 1200},
- {B1800, 1800},
- {B2400, 2400},
- {B4800, 4800},
- {B9600, 9600},
-#ifdef B19200
- {B19200, 19200},
-#else
-#ifdef EXTA
- {EXTA, 19200},
-#endif
-#endif
-#ifdef B38400
- {B38400, 38400},
-#else
-#ifdef EXTB
- {EXTB, 38400},
-#endif
-#endif
-#ifdef B57600
- {B57600, 57600},
-#endif
-#ifdef B115200
- {B115200, 115200},
-#endif
-#ifdef B230400
- {B230400, 230400},
-#endif
-#ifdef B460800
- {B460800, 460800},
-#endif
-#ifdef B921600
- {B921600, 921600},
-#endif
-};
-
-NCURSES_EXPORT(int)
-_nc_baudrate(int OSpeed)
-{
- static int last_OSpeed;
- static int last_baudrate;
-
- int result;
- unsigned i;
-
- if (OSpeed == last_OSpeed) {
- result = last_baudrate;
- } else {
- result = ERR;
- if (OSpeed >= 0) {
- for (i = 0; i < SIZEOF(speeds); i++) {
- if (speeds[i].s == OSpeed) {
- result = speeds[i].sp;
- break;
- }
- }
- }
- last_baudrate = result;
- }
- return (result);
-}
-
-NCURSES_EXPORT(int)
-_nc_ospeed(int BaudRate)
-{
- int result = 1;
- unsigned i;
-
- if (BaudRate >= 0) {
- for (i = 0; i < SIZEOF(speeds); i++) {
- if (speeds[i].sp == BaudRate) {
- result = speeds[i].s;
- break;
- }
- }
- }
- return (result);
-}
-
-NCURSES_EXPORT(int)
-baudrate(void)
-{
- int result;
-
- T((T_CALLED("baudrate()")));
-
- /*
- * In debugging, allow the environment symbol to override when we're
- * redirecting to a file, so we can construct repeatable test-cases
- * that take into account costs that depend on baudrate.
- */
-#ifdef TRACE
- if (SP && !isatty(fileno(SP->_ofp))
- && getenv("BAUDRATE") != 0) {
- int ret;
- if ((ret = _nc_getenv_num("BAUDRATE")) <= 0)
- ret = 9600;
- ospeed = _nc_ospeed(ret);
- returnCode(ret);
- }
-#endif
-
-#ifdef USE_OLD_TTY
- result = cfgetospeed(&cur_term->Nttyb);
- ospeed = _nc_ospeed(result);
-#else /* !USE_OLD_TTY */
-#ifdef TERMIOS
- ospeed = cfgetospeed(&cur_term->Nttyb);
-#else
- ospeed = cur_term->Nttyb.sg_ospeed;
-#endif
- result = _nc_baudrate(ospeed);
-#endif
- if (cur_term != 0)
- cur_term->_baudrate = result;
-
- returnCode(result);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_cur_term.c b/ncurses-5.3/ncurses/tinfo/lib_cur_term.c
deleted file mode 100644
index 13a6506..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_cur_term.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1997 *
- ****************************************************************************/
-/*
- * Module that "owns" the 'cur_term' variable:
- *
- * TERMINAL *set_curterm(TERMINAL *)
- * int del_curterm(TERMINAL *)
- */
-
-#include <curses.priv.h>
-#include <term_entry.h> /* TTY, cur_term */
-#include <termcap.h> /* ospeed */
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
-
-NCURSES_EXPORT(TERMINAL *)
-set_curterm(TERMINAL * termp)
-{
- 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;
-}
-
-NCURSES_EXPORT(int)
-del_curterm(TERMINAL * 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);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_data.c b/ncurses-5.3/ncurses/tinfo/lib_data.c
deleted file mode 100644
index 15bb19d..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_data.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_data.c
-**
-** Common data that may/may not be allocated, but is referenced globally
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * OS/2's native linker complains if we don't initialize public data when
- * constructing a dll (reported by J.J.G.Ripoll).
- */
-NCURSES_EXPORT_VAR(WINDOW *)
-stdscr = 0;
-NCURSES_EXPORT_VAR(WINDOW *)
-curscr = 0;
-NCURSES_EXPORT_VAR(WINDOW *)
-newscr = 0;
-
-NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
-
-/*
- * The variable 'SP' will be defined as a function on systems that cannot link
- * data-only modules, since it is used in a lot of places within ncurses and we
- * cannot guarantee that any application will use any particular function. We
- * put the WINDOW variables in this module, because it appears that any
- * application that uses them will also use 'SP'.
- *
- * This module intentionally does not reference other ncurses modules, to avoid
- * module coupling that increases the size of the executable.
- */
-#if BROKEN_LINKER
- static SCREEN *my_screen;
-
-NCURSES_EXPORT(SCREEN *)
-_nc_screen(void)
-{
- return my_screen;
-}
-
-NCURSES_EXPORT(int)
-_nc_alloc_screen(void)
-{
- return ((my_screen = typeCalloc(SCREEN, 1)) != 0);
-}
-
-NCURSES_EXPORT(void)
-_nc_set_screen(SCREEN * sp)
-{
- my_screen = sp;
-}
-
-#else
-NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */
-#endif
diff --git a/ncurses-5.3/ncurses/tinfo/lib_has_cap.c b/ncurses-5.3/ncurses/tinfo/lib_has_cap.c
deleted file mode 100644
index a0b7872..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_has_cap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_has_cap.c
-**
-** The routines to query terminal capabilities
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-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));
-}
-
-NCURSES_EXPORT(bool)
-has_il(void)
-{
- T((T_CALLED("has_il()")));
- returnCode(cur_term
- && (insert_line || parm_insert_line)
- && (delete_line || parm_delete_line));
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_kernel.c b/ncurses-5.3/ncurses/tinfo/lib_kernel.c
deleted file mode 100644
index b6868b9..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_kernel.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/****************************************************************************
- * 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: 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
- *
- * Misc. low-level routines:
- * erasechar()
- * killchar()
- * flushinp()
- *
- * The baudrate() and delay_output() functions could logically live here,
- * but are in other modules to reduce the static-link size of programs
- * that use only these facilities.
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id$")
-
-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()
- *
- * Return erase character as given in cur_term->Ottyb.
- *
- */
-
-NCURSES_EXPORT(char)
-erasechar(void)
-{
- int result = ERR;
- T((T_CALLED("erasechar()")));
-
- if (cur_term != 0) {
-#ifdef TERMIOS
- result = cur_term->Ottyb.c_cc[VERASE];
- if (result == _nc_vdisable())
- result = ERR;
-#else
- result = cur_term->Ottyb.sg_erase;
-#endif
- }
- returnCode(result);
-}
-
-/*
- * killchar()
- *
- * Return kill character as given in cur_term->Ottyb.
- *
- */
-
-NCURSES_EXPORT(char)
-killchar(void)
-{
- int result = ERR;
- T((T_CALLED("killchar()")));
-
- if (cur_term != 0) {
-#ifdef TERMIOS
- result = cur_term->Ottyb.c_cc[VKILL];
- if (result == _nc_vdisable())
- result = ERR;
-#else
- result = cur_term->Ottyb.sg_kill;
-#endif
- }
- returnCode(result);
-}
-
-/*
- * flushinp()
- *
- * Flush any input on cur_term->Filedes
- *
- */
-
-NCURSES_EXPORT(int)
-flushinp(void)
-{
- T((T_CALLED("flushinp()")));
-
- if (cur_term != 0) {
-#ifdef TERMIOS
- tcflush(cur_term->Filedes, TCIFLUSH);
-#else
- errno = 0;
- do {
- ioctl(cur_term->Filedes, TIOCFLUSH, 0);
- } while
- (errno == EINTR);
-#endif
- if (SP) {
- SP->_fifohead = -1;
- SP->_fifotail = 0;
- SP->_fifopeek = 0;
- }
- returnCode(OK);
- }
- returnCode(ERR);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_longname.c b/ncurses-5.3/ncurses/tinfo/lib_longname.c
deleted file mode 100644
index 57268dc..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_longname.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_longname.c
-**
-** The routine longname().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(char *)
-longname(void)
-{
- char *ptr;
-
- T((T_CALLED("longname()")));
-
- for (ptr = ttytype + strlen(ttytype); ptr > ttytype; ptr--)
- if (*ptr == '|')
- returnPtr(ptr + 1);
-
- returnPtr(ttytype);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_napms.c b/ncurses-5.3/ncurses/tinfo/lib_napms.c
deleted file mode 100644
index 6146221..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_napms.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_napms.c
- *
- * The routine napms.
- *
- */
-
-#include <curses.priv.h>
-
-#if HAVE_NANOSLEEP
-#include <time.h>
-#if HAVE_SYS_TIME_H
-#include <sys/time.h> /* needed for MacOS X DP3 */
-#endif
-#endif
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-napms(int ms)
-{
- T((T_CALLED("napms(%d)"), ms));
-
-#if HAVE_NANOSLEEP
- {
- struct timespec ts;
- ts.tv_sec = ms / 1000;
- ts.tv_nsec = (ms % 1000) * 1000000;
- nanosleep(&ts, NULL);
- }
-#else
- _nc_timed_wait(0, ms, (int *) 0 EVENTLIST_2nd(0));
-#endif
-
- returnCode(OK);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_options.c b/ncurses-5.3/ncurses/tinfo/lib_options.c
deleted file mode 100644
index 6fef273..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_options.c
+++ /dev/null
@@ -1,257 +0,0 @@
-/****************************************************************************
- * 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"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_options.c
-**
-** The routines to handle option setting.
-**
-*/
-
-#include <curses.priv.h>
-
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-idlok(WINDOW *win, bool flag)
-{
- T((T_CALLED("idlok(%p,%d)"), win, flag));
-
- if (win) {
- _nc_idlok = win->_idlok = (flag && (has_il() || change_scroll_region));
- returnCode(OK);
- } else
- returnCode(ERR);
-}
-
-NCURSES_EXPORT(void)
-idcok(WINDOW *win, bool flag)
-{
- T((T_CALLED("idcok(%p,%d)"), win, flag));
-
- if (win)
- _nc_idcok = win->_idcok = (flag && has_ic());
-
- returnVoid;
-}
-
-NCURSES_EXPORT(int)
-halfdelay(int t)
-{
- T((T_CALLED("halfdelay(%d)"), t));
-
- if (t < 1 || t > 255)
- returnCode(ERR);
-
- cbreak();
- SP->_cbreak = t + 1;
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-nodelay(WINDOW *win, bool flag)
-{
- T((T_CALLED("nodelay(%p,%d)"), win, flag));
-
- if (win) {
- if (flag == TRUE)
- win->_delay = 0;
- else
- win->_delay = -1;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
-
-NCURSES_EXPORT(int)
-notimeout(WINDOW *win, bool f)
-{
- T((T_CALLED("notimout(%p,%d)"), win, f));
-
- if (win) {
- win->_notimeout = f;
- returnCode(OK);
- } else
- returnCode(ERR);
-}
-
-NCURSES_EXPORT(void)
-wtimeout(WINDOW *win, int delay)
-{
- T((T_CALLED("wtimeout(%p,%d)"), win, delay));
-
- if (win) {
- win->_delay = delay;
- }
- returnVoid;
-}
-
-NCURSES_EXPORT(int)
-keypad(WINDOW *win, bool flag)
-{
- T((T_CALLED("keypad(%p,%d)"), win, flag));
-
- if (win) {
- win->_use_keypad = flag;
- returnCode(_nc_keypad(flag));
- } else
- returnCode(ERR);
-}
-
-NCURSES_EXPORT(int)
-meta(WINDOW *win GCC_UNUSED, bool flag)
-{
- /* Ok, we stay relaxed and don't signal an error if win is NULL */
- T((T_CALLED("meta(%p,%d)"), win, flag));
-
- SP->_use_meta = flag;
-
- if (flag && meta_on) {
- TPUTS_TRACE("meta_on");
- putp(meta_on);
- } else if (!flag && meta_off) {
- TPUTS_TRACE("meta_off");
- putp(meta_off);
- }
- returnCode(OK);
-}
-
-/* curs_set() moved here to narrow the kernel interface */
-
-NCURSES_EXPORT(int)
-curs_set(int vis)
-{
- int cursor = SP->_cursor;
-
- T((T_CALLED("curs_set(%d)"), vis));
-
- if (vis < 0 || vis > 2)
- returnCode(ERR);
-
- if (vis == cursor)
- returnCode(cursor);
-
- switch (vis) {
- case 2:
- if (cursor_visible) {
- TPUTS_TRACE("cursor_visible");
- putp(cursor_visible);
- } else
- returnCode(ERR);
- break;
- case 1:
- if (cursor_normal) {
- TPUTS_TRACE("cursor_normal");
- putp(cursor_normal);
- } else
- returnCode(ERR);
- break;
- case 0:
- if (cursor_invisible) {
- TPUTS_TRACE("cursor_invisible");
- putp(cursor_invisible);
- } else
- returnCode(ERR);
- break;
- }
- SP->_cursor = vis;
- _nc_flush();
-
- returnCode(cursor == -1 ? 1 : cursor);
-}
-
-NCURSES_EXPORT(int)
-typeahead(int fd)
-{
- T((T_CALLED("typeahead(%d)"), fd));
- SP->_checkfd = fd;
- returnCode(OK);
-}
-
-/*
-** has_key()
-**
-** Return TRUE if the current terminal has the given key
-**
-*/
-
-#if NCURSES_EXT_FUNCS
-static int
-has_key_internal(int keycode, struct tries *tp)
-{
- if (tp == 0)
- return (FALSE);
- else if (tp->value == keycode)
- return (TRUE);
- else
- return (has_key_internal(keycode, tp->child)
- || has_key_internal(keycode, tp->sibling));
-}
-
-NCURSES_EXPORT(int)
-has_key(int keycode)
-{
- T((T_CALLED("has_key(%d)"), keycode));
- returnCode(has_key_internal(keycode, SP->_keytry));
-}
-#endif /* NCURSES_EXT_FUNCS */
-
-/* Turn the keypad on/off
- *
- * Note: we flush the output because changing this mode causes some terminals
- * to emit different escape sequences for cursor and keypad keys. If we don't
- * flush, then the next wgetch may get the escape sequence that corresponds to
- * the terminal state _before_ switching modes.
- */
-NCURSES_EXPORT(int)
-_nc_keypad(bool flag)
-{
- if (flag && keypad_xmit) {
- TPUTS_TRACE("keypad_xmit");
- putp(keypad_xmit);
- _nc_flush();
- } else if (!flag && keypad_local) {
- TPUTS_TRACE("keypad_local");
- putp(keypad_local);
- _nc_flush();
- }
-
- if (flag && !SP->_tried) {
- _nc_init_keytry();
- SP->_tried = TRUE;
- }
- SP->_keypad_on = flag;
- return (OK);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_print.c b/ncurses-5.3/ncurses/tinfo/lib_print.c
deleted file mode 100644
index 5820d16..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_print.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-mcprint(char *data, int len)
-/* ship binary character data to the printer via mc4/mc5/mc5p */
-{
- char *mybuf, *switchon;
- size_t onsize, offsize, res;
-
- errno = 0;
- if (!cur_term || (!prtr_non && (!prtr_on || !prtr_off))) {
- errno = ENODEV;
- return (ERR);
- }
-
- if (prtr_non) {
- switchon = tparm(prtr_non, len);
- onsize = strlen(switchon);
- offsize = 0;
- } else {
- switchon = prtr_on;
- onsize = strlen(prtr_on);
- offsize = strlen(prtr_off);
- }
-
- if (switchon == 0
- || (mybuf = typeMalloc(char, onsize + len + offsize + 1)) == 0) {
- errno = ENOMEM;
- return (ERR);
- }
-
- (void) strcpy(mybuf, switchon);
- memcpy(mybuf + onsize, data, (unsigned) len);
- if (offsize)
- (void) strcpy(mybuf + onsize + len, prtr_off);
-
- /*
- * We're relying on the atomicity of UNIX writes here. The
- * danger is that output from a refresh() might get interspersed
- * with the printer data after the write call returns but before the
- * data has actually been shipped to the terminal. If the write(2)
- * operation is truly atomic we're protected from this.
- */
- res = write(cur_term->Filedes, mybuf, onsize + len + offsize);
-
- /*
- * By giving up our scheduler slot here we increase the odds that the
- * kernel will ship the contiguous clist items from the last write
- * immediately.
- */
- (void) sleep(0);
-
- free(mybuf);
- return (res);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_raw.c b/ncurses-5.3/ncurses/tinfo/lib_raw.c
deleted file mode 100644
index 9c77ab7..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_raw.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1998 on *
- ****************************************************************************/
-
-/*
- * raw.c
- *
- * Routines:
- * raw()
- * cbreak()
- * noraw()
- * nocbreak()
- * qiflush()
- * noqiflush()
- * intrflush()
- *
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id$")
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#if HAVE_SYS_TERMIO_H
-#include <sys/termio.h> /* needed for ISC */
-#endif
-
-#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)
-
-#ifdef TRACE
-#define BEFORE(N) if (_nc_tracing&TRACE_BITS) _tracef("%s before bits: %s", N, _nc_tracebits())
-#define AFTER(N) if (_nc_tracing&TRACE_BITS) _tracef("%s after bits: %s", N, _nc_tracebits())
-#else
-#define BEFORE(s)
-#define AFTER(s)
-#endif /* TRACE */
-
-NCURSES_EXPORT(int)
-raw(void)
-{
- int result = ERR;
-
- T((T_CALLED("raw()")));
-
- if (SP != 0 && cur_term != 0) {
- TTY buf;
-
- BEFORE("raw");
- _nc_setmode(O_BINARY);
-
- buf = cur_term->Nttyb;
-#ifdef TERMIOS
- buf.c_lflag &= ~(ICANON | ISIG | IEXTEN);
- buf.c_iflag &= ~(COOKED_INPUT);
- buf.c_cc[VMIN] = 1;
- buf.c_cc[VTIME] = 0;
-#else
- buf.sg_flags |= RAW;
-#endif
- if ((result = _nc_set_tty_mode(&buf)) == OK) {
- SP->_raw = TRUE;
- SP->_cbreak = 1;
- cur_term->Nttyb = buf;
- }
- AFTER("raw");
- }
- returnCode(result);
-}
-
-NCURSES_EXPORT(int)
-cbreak(void)
-{
- int result = ERR;
-
- T((T_CALLED("cbreak()")));
-
- if (SP != 0 && cur_term != 0) {
- TTY buf;
-
- BEFORE("cbreak");
- _nc_setmode(O_BINARY);
-
- buf = cur_term->Nttyb;
-#ifdef TERMIOS
- buf.c_lflag &= ~ICANON;
- buf.c_iflag &= ~ICRNL;
- buf.c_lflag |= ISIG;
- buf.c_cc[VMIN] = 1;
- buf.c_cc[VTIME] = 0;
-#else
- buf.sg_flags |= CBREAK;
-#endif
- if ((result = _nc_set_tty_mode(&buf)) == OK) {
- SP->_cbreak = 1;
- cur_term->Nttyb = buf;
- }
- AFTER("cbreak");
- }
- returnCode(result);
-}
-
-/*
- * Note:
- * this implementation may be wrong. See the comment under intrflush().
- */
-NCURSES_EXPORT(void)
-qiflush(void)
-{
- int result = ERR;
-
- T((T_CALLED("qiflush()")));
-
- if (cur_term != 0) {
- TTY buf;
-
- BEFORE("qiflush");
- buf = cur_term->Nttyb;
-#ifdef TERMIOS
- buf.c_lflag &= ~(NOFLSH);
- result = _nc_set_tty_mode(&buf);
-#else
- /* FIXME */
-#endif
- if (result == OK)
- cur_term->Nttyb = buf;
- AFTER("qiflush");
- }
- returnVoid;
-}
-
-NCURSES_EXPORT(int)
-noraw(void)
-{
- int result = ERR;
-
- T((T_CALLED("noraw()")));
-
- if (SP != 0 && cur_term != 0) {
- TTY buf;
-
- BEFORE("noraw");
- _nc_setmode(O_TEXT);
-
- buf = cur_term->Nttyb;
-#ifdef TERMIOS
- buf.c_lflag |= ISIG | ICANON |
- (cur_term->Ottyb.c_lflag & IEXTEN);
- buf.c_iflag |= COOKED_INPUT;
-#else
- buf.sg_flags &= ~(RAW | CBREAK);
-#endif
- if ((result = _nc_set_tty_mode(&buf)) == OK) {
- SP->_raw = FALSE;
- SP->_cbreak = 0;
- cur_term->Nttyb = buf;
- }
- AFTER("noraw");
- }
- returnCode(result);
-}
-
-NCURSES_EXPORT(int)
-nocbreak(void)
-{
- int result = ERR;
-
- T((T_CALLED("nocbreak()")));
-
- if (SP != 0 && cur_term != 0) {
- TTY buf;
-
- BEFORE("nocbreak");
- _nc_setmode(O_TEXT);
-
- buf = cur_term->Nttyb;
-#ifdef TERMIOS
- buf.c_lflag |= ICANON;
- buf.c_iflag |= ICRNL;
-#else
- buf.sg_flags &= ~CBREAK;
-#endif
- if ((result = _nc_set_tty_mode(&buf)) == OK) {
- SP->_cbreak = 0;
- cur_term->Nttyb = buf;
- }
- AFTER("nocbreak");
- }
- returnCode(result);
-}
-
-/*
- * Note:
- * this implementation may be wrong. See the comment under intrflush().
- */
-NCURSES_EXPORT(void)
-noqiflush(void)
-{
- int result = ERR;
-
- T((T_CALLED("noqiflush()")));
-
- if (cur_term != 0) {
- TTY buf;
-
- BEFORE("noqiflush");
- buf = cur_term->Nttyb;
-#ifdef TERMIOS
- buf.c_lflag |= NOFLSH;
- result = _nc_set_tty_mode(&buf);
-#else
- /* FIXME */
-#endif
- if (result == OK) {
- cur_term->Nttyb = buf;
- }
- AFTER("noqiflush");
- }
- returnVoid;
-}
-
-/*
- * 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)
-{
- int result = ERR;
-
- T((T_CALLED("intrflush(%d)"), flag));
-
- if (cur_term != 0) {
- TTY buf;
-
- BEFORE("intrflush");
- buf = cur_term->Nttyb;
-#ifdef TERMIOS
- if (flag)
- buf.c_lflag &= ~(NOFLSH);
- else
- buf.c_lflag |= (NOFLSH);
- result = _nc_set_tty_mode(&buf);
-#else
- /* FIXME */
-#endif
- if (result == OK) {
- cur_term->Nttyb = buf;
- }
- AFTER("intrflush");
- }
- returnCode(result);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_setup.c b/ncurses-5.3/ncurses/tinfo/lib_setup.c
deleted file mode 100644
index 6e5e4a9..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_setup.c
+++ /dev/null
@@ -1,437 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * Terminal setup routines common to termcap and terminfo:
- *
- * use_env(bool)
- * setupterm(char *, int, int *)
- */
-
-#include <curses.priv.h>
-#include <tic.h> /* for MAX_NAME_SIZE */
-#include <term_entry.h>
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#include <term.h> /* lines, columns, cur_term */
-
-MODULE_ID("$Id$")
-
-/****************************************************************************
- *
- * Terminal size computation
- *
- ****************************************************************************/
-
-#if HAVE_SIZECHANGE
-# if !defined(sun) || !TERMIOS
-# if HAVE_SYS_IOCTL_H
-# include <sys/ioctl.h>
-# endif
-# endif
-#endif
-
-#if NEED_PTEM_H
- /* On SCO, they neglected to define struct winsize in termios.h -- it's only
- * in termio.h and ptem.h (the former conflicts with other definitions).
- */
-# include <sys/stream.h>
-# include <sys/ptem.h>
-#endif
-
-/*
- * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
- * Solaris, IRIX) define TIOCGWINSZ and struct winsize.
- */
-#ifdef TIOCGSIZE
-# define IOCTL_WINSIZE TIOCGSIZE
-# define STRUCT_WINSIZE struct ttysize
-# define WINSIZE_ROWS(n) (int)n.ts_lines
-# define WINSIZE_COLS(n) (int)n.ts_cols
-#else
-# ifdef TIOCGWINSZ
-# define IOCTL_WINSIZE TIOCGWINSZ
-# define STRUCT_WINSIZE struct winsize
-# define WINSIZE_ROWS(n) (int)n.ws_row
-# define WINSIZE_COLS(n) (int)n.ws_col
-# endif
-#endif
-
-static int _use_env = TRUE;
-
-static void do_prototype(void);
-
-NCURSES_EXPORT(void)
-use_env(bool f)
-{
- T((T_CALLED("use_env()")));
- _use_env = f;
- returnVoid;
-}
-
-NCURSES_EXPORT_VAR(int) LINES = 0;
-NCURSES_EXPORT_VAR(int) COLS = 0;
-NCURSES_EXPORT_VAR(int) TABSIZE = 0;
-
-static void
-_nc_get_screensize(int *linep, int *colp)
-/* Obtain lines/columns values from the environment and/or terminfo entry */
-{
- /* figure out the size of the screen */
- T(("screen size: terminfo lines = %d columns = %d", lines, columns));
-
- if (!_use_env) {
- *linep = (int) lines;
- *colp = (int) columns;
- } else { /* usually want to query LINES and COLUMNS from environment */
- int value;
-
- *linep = *colp = 0;
-
- /* first, look for environment variables */
- if ((value = _nc_getenv_num("LINES")) > 0) {
- *linep = value;
- }
- if ((value = _nc_getenv_num("COLUMNS")) > 0) {
- *colp = value;
- }
- T(("screen size: environment LINES = %d COLUMNS = %d", *linep, *colp));
-
-#ifdef __EMX__
- if (*linep <= 0 || *colp <= 0) {
- int screendata[2];
- _scrsize(screendata);
- *colp = screendata[0];
- *linep = screendata[1];
- T(("EMX screen size: environment LINES = %d COLUMNS = %d",
- *linep, *colp));
- }
-#endif
-#if HAVE_SIZECHANGE
- /* if that didn't work, maybe we can try asking the OS */
- if (*linep <= 0 || *colp <= 0) {
- if (isatty(cur_term->Filedes)) {
- STRUCT_WINSIZE size;
-
- errno = 0;
- do {
- if (ioctl(cur_term->Filedes, IOCTL_WINSIZE, &size) < 0
- && errno != EINTR)
- goto failure;
- } while
- (errno == EINTR);
-
- /*
- * Solaris lets users override either dimension with an
- * environment variable.
- */
- if (*linep <= 0)
- *linep = WINSIZE_ROWS(size);
- if (*colp <= 0)
- *colp = WINSIZE_COLS(size);
- }
- /* FALLTHRU */
- failure:;
- }
-#endif /* HAVE_SIZECHANGE */
-
- /* if we can't get dynamic info about the size, use static */
- if (*linep <= 0) {
- *linep = (int) lines;
- }
- if (*colp <= 0) {
- *colp = (int) columns;
- }
-
- /* the ultimate fallback, assume fixed 24x80 size */
- if (*linep <= 0) {
- *linep = 24;
- }
- if (*colp <= 0) {
- *colp = 80;
- }
-
- /*
- * Put the derived values back in the screen-size caps, so
- * tigetnum() and tgetnum() will do the right thing.
- */
- lines = (short) (*linep);
- columns = (short) (*colp);
- }
-
- T(("screen size is %dx%d", *linep, *colp));
-
- if (VALID_NUMERIC(init_tabs))
- TABSIZE = (int) init_tabs;
- else
- TABSIZE = 8;
- T(("TABSIZE = %d", TABSIZE));
-
-}
-
-#if USE_SIZECHANGE
-NCURSES_EXPORT(void)
-_nc_update_screensize(void)
-{
- int my_lines, my_cols;
-
- _nc_get_screensize(&my_lines, &my_cols);
- if (SP != 0 && SP->_resize != 0)
- SP->_resize(my_lines, my_cols);
-}
-#endif
-
-/****************************************************************************
- *
- * Terminal setup
- *
- ****************************************************************************/
-
-#define ret_error(code, fmt, arg) if (errret) {\
- *errret = code;\
- returnCode(ERR);\
- } else {\
- fprintf(stderr, fmt, arg);\
- exit(EXIT_FAILURE);\
- }
-
-#define ret_error0(code, msg) if (errret) {\
- *errret = code;\
- returnCode(ERR);\
- } else {\
- fprintf(stderr, msg);\
- exit(EXIT_FAILURE);\
- }
-
-#if USE_DATABASE || USE_TERMCAP
-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 */
-{
- char filename[PATH_MAX];
- int status;
-
- /*
- * $TERM shouldn't contain pathname delimiters.
- */
- if (strchr(tn, '/'))
- return 0;
-
-#if USE_DATABASE
- if ((status = _nc_read_entry(tn, filename, tp)) != 1) {
-
-#if !PURE_TERMINFO
- /*
- * Try falling back on the termcap file.
- * Note: allowing this call links the entire terminfo/termcap
- * compiler into the startup code. It's preferable to build a
- * real terminfo database and use that.
- */
- status = _nc_read_termcap_entry(tn, tp);
-#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
- * pointers so we don't have to test them in the rest of the library.
- * (The terminfo compiler bypasses this logic, since it must know if
- * a string is cancelled, for merging entries).
- */
- if (status == 1) {
- int n;
- for_each_boolean(n, tp) {
- if (!VALID_BOOLEAN(tp->Booleans[n]))
- tp->Booleans[n] = FALSE;
- }
- for_each_string(n, tp) {
- if (tp->Strings[n] == CANCELLED_STRING)
- tp->Strings[n] = ABSENT_STRING;
- }
- }
- return (status);
-}
-#endif
-
-NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
-
-/*
- * setupterm(termname, Filedes, errret)
- *
- * Find and read the appropriate object file for the terminal
- * Make cur_term point to the structure.
- *
- */
-
-NCURSES_EXPORT(int)
-setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
-{
- struct term *term_ptr;
- int status;
-
- START_TRACE();
- T((T_CALLED("setupterm(%s,%d,%p)"), _nc_visbuf(tname), Filedes, errret));
-
- if (tname == 0) {
- tname = getenv("TERM");
- if (tname == 0 || *tname == '\0') {
- ret_error0(-1, "TERM environment variable not set.\n");
- }
- }
- if (strlen(tname) > MAX_NAME_SIZE) {
- ret_error(-1, "TERM environment must be <= %d characters.\n",
- MAX_NAME_SIZE);
- }
-
- T(("your terminal name is %s", tname));
-
- term_ptr = typeCalloc(TERMINAL, 1);
-
- if (term_ptr == 0) {
- ret_error0(-1, "Not enough memory to create terminal structure.\n");
- }
-#if USE_DATABASE || USE_TERMCAP
- status = grab_entry(tname, &term_ptr->type);
-#else
- status = 0;
-#endif
-
- /* try fallback list if entry on disk */
- if (status != 1) {
- const TERMTYPE *fallback = _nc_fallback(tname);
-
- if (fallback) {
- term_ptr->type = *fallback;
- status = 1;
- }
- }
-
- if (status == -1) {
- ret_error0(-1, "terminals database is inaccessible\n");
- } else if (status == 0) {
- ret_error(0, "'%s': unknown terminal type.\n", tname);
- }
-
- /*
- * Improve on SVr4 curses. If an application mixes curses and termcap
- * calls, it may call both initscr and tgetent. This is not really a
- * good thing to do, but can happen if someone tries using ncurses with
- * the readline library. The problem we are fixing is that when
- * tgetent calls setupterm, the resulting Ottyb struct in cur_term is
- * zeroed. A subsequent call to endwin uses the zeroed terminal
- * settings rather than the ones saved in initscr. So we check if
- * cur_term appears to contain terminal settings for the same output
- * file as our current call - and copy those terminal settings. (SVr4
- * curses does not do this, however applications that are working
- * around the problem will still work properly with this feature).
- */
- if (cur_term != 0) {
- if (cur_term->Filedes == Filedes)
- term_ptr->Ottyb = cur_term->Ottyb;
- }
-
- set_curterm(term_ptr);
-
- if (command_character && getenv("CC"))
- do_prototype();
-
- strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1);
- 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.
- */
- 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)
- *errret = 1;
-
- T((T_CREATE("screen %s %dx%d"), tname, LINES, COLS));
-
- if (generic_type) {
- ret_error(0, "'%s': I need something more specific.\n", tname);
- }
- if (hard_copy) {
- ret_error(1, "'%s': I can't handle hardcopy terminals.\n", tname);
- }
- returnCode(OK);
-}
-
-/*
-** do_prototype()
-**
-** Take the real command character out of the CC environment variable
-** and substitute it in for the prototype given in 'command_character'.
-**
-*/
-
-static void
-do_prototype(void)
-{
- int i;
- char CC;
- char proto;
- char *tmp;
-
- tmp = getenv("CC");
- CC = *tmp;
- proto = *command_character;
-
- for_each_string(i, &(cur_term->type)) {
- for (tmp = cur_term->type.Strings[i]; *tmp; tmp++) {
- if (*tmp == proto)
- *tmp = CC;
- }
- }
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_termcap.c b/ncurses-5.3/ncurses/tinfo/lib_termcap.c
deleted file mode 100644
index 9bb0134..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_termcap.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * 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 <ctype.h>
-
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#define CSI 233
-#define ESC 033 /* ^[ */
-#define L_BRACK '['
-#define SHIFT_OUT 017 /* ^N */
-
-NCURSES_EXPORT_VAR(char *) UP = 0;
-NCURSES_EXPORT_VAR(char *) BC = 0;
-
-static char *fix_me = 0;
-
-static char *
-set_attribute_9(int flag)
-{
- const char *result;
-
- if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0)
- result = "";
- return strdup(result);
-}
-
-static int
-is_csi(char *s)
-{
- if (UChar(s[0]) == CSI)
- return 1;
- else if (s[0] == ESC && s[1] == L_BRACK)
- return 2;
- return 0;
-}
-
-static char *
-skip_zero(char *s)
-{
- if (s[0] == '0') {
- if (s[1] == ';')
- s += 2;
- else if (isalpha(UChar(s[1])))
- s += 1;
- }
- return s;
-}
-
-static bool
-similar_sgr(char *a, char *b)
-{
- int csi_a = is_csi(a);
- int csi_b = is_csi(b);
-
- if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) {
- a += csi_a;
- b += csi_b;
- if (*a != *b) {
- a = skip_zero(a);
- b = skip_zero(b);
- }
- }
- return strcmp(a, b) == 0;
-}
-
-/***************************************************************************
- *
- * tgetent(bufp, term)
- *
- * In termcap, this function reads in the entry for terminal `term' into the
- * buffer pointed to by bufp. It must be called before any of the functions
- * below are called.
- * In this terminfo emulation, tgetent() simply calls setupterm() (which
- * does a bit more than tgetent() in termcap does), and returns its return
- * value (1 if successful, 0 if no terminal with the given name could be
- * found, or -1 if no terminal descriptions have been installed on the
- * system). The bufp argument is ignored.
- *
- ***************************************************************************/
-
-NCURSES_EXPORT(int)
-tgetent(char *bufp GCC_UNUSED, const char *name)
-{
- int errcode;
-
- T((T_CALLED("tgetent()")));
-
- setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode);
-
- PC = 0;
- UP = 0;
- BC = 0;
- fix_me = 0;
-
- if (errcode == 1) {
-
- if (cursor_left)
- if ((backspaces_with_bs = !strcmp(cursor_left, "\b")) == 0)
- backspace_if_not_bs = cursor_left;
-
- /* we're required to export these */
- if (pad_char != NULL)
- PC = pad_char[0];
- if (cursor_up != NULL)
- UP = cursor_up;
- 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
-#if 0*/
-#include <capdefaults.c>
-/* LINT_PREPRO
-#endif*/
-
- }
- returnCode(errcode);
-}
-
-/***************************************************************************
- *
- * tgetflag(str)
- *
- * Look up boolean termcap capability str and return its value (TRUE=1 if
- * present, FALSE=0 if not).
- *
- ***************************************************************************/
-
-NCURSES_EXPORT(int)
-tgetflag(NCURSES_CONST char *id)
-{
- int i;
-
- T((T_CALLED("tgetflag(%s)"), id));
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_boolean(i, tp) {
- const char *capname = ExtBoolname(tp, i, boolcodes);
- if (!strncmp(id, capname, 2)) {
- /* setupterm forces invalid booleans to false */
- returnCode(tp->Booleans[i]);
- }
- }
- }
- returnCode(0); /* Solaris does this */
-}
-
-/***************************************************************************
- *
- * tgetnum(str)
- *
- * Look up numeric termcap capability str and return its value, or -1 if
- * not given.
- *
- ***************************************************************************/
-
-NCURSES_EXPORT(int)
-tgetnum(NCURSES_CONST char *id)
-{
- int i;
-
- T((T_CALLED("tgetnum(%s)"), id));
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_number(i, tp) {
- const char *capname = ExtNumname(tp, i, numcodes);
- if (!strncmp(id, capname, 2)) {
- if (!VALID_NUMERIC(tp->Numbers[i]))
- returnCode(ABSENT_NUMERIC);
- returnCode(tp->Numbers[i]);
- }
- }
- }
- returnCode(ABSENT_NUMERIC);
-}
-
-/***************************************************************************
- *
- * tgetstr(str, area)
- *
- * Look up string termcap capability str and return a pointer to its value,
- * or NULL if not given.
- *
- ***************************************************************************/
-
-NCURSES_EXPORT(char *)
-tgetstr(NCURSES_CONST char *id, char **area)
-{
- int i;
- char *result = NULL;
-
- T((T_CALLED("tgetstr(%s,%p)"), id, area));
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_string(i, tp) {
- const char *capname = ExtStrname(tp, i, strcodes);
- if (!strncmp(id, capname, 2)) {
- result = tp->Strings[i];
- TR(TRACE_DATABASE, ("found match : %s", _nc_visbuf(result)));
- /* setupterm forces canceled strings to null */
- 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;
- }
- }
- break;
- }
- }
- }
- returnPtr(result);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_termname.c b/ncurses-5.3/ncurses/tinfo/lib_termname.c
deleted file mode 100644
index abe2e27..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_termname.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <tic.h> /* for MAX_ALIAS */
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(char *)
-termname(void)
-{
- char *name = getenv("TERM");
- static char ret[MAX_ALIAS + 1];
-
- T((T_CALLED("termname()")));
-
- if (name != 0) {
- ret[0] = '\0';
- (void) strncat(ret, name, sizeof(ret) - 1);
- name = ret;
- }
- returnPtr(name);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_tgoto.c b/ncurses-5.3/ncurses/tinfo/lib_tgoto.c
deleted file mode 100644
index 8949414..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_tgoto.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/****************************************************************************
- * 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"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <termcap.h>
-
-MODULE_ID("$Id$")
-
-#if !PURE_TERMINFO
-static bool
-is_termcap(const char *string)
-{
- bool result = TRUE;
-
- 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;
- }
- string++;
- }
- }
- return result;
-}
-
-static char *
-tgoto_internal(const char *string, int x, int y)
-{
- static char *result;
- static size_t length;
-
- int swap_arg;
- int param[3];
- size_t used = 0;
- size_t need = 10;
- int *value = param;
- bool need_BC = FALSE;
-
- if (BC)
- need += strlen(BC);
-
- param[0] = y;
- param[1] = x;
- param[2] = 0;
-
- while (*string != 0) {
- if ((used + need) > length) {
- length += (used + need);
- if ((result = typeRealloc(char, length, result)) == 0) {
- length = 0;
- break;
- }
- }
- if (*string == '%') {
- const char *fmt = 0;
-
- switch (*++string) {
- case '\0':
- string--;
- break;
- case 'd':
- fmt = "%d";
- break;
- case '2':
- fmt = "%02d";
- *value %= 100;
- break;
- case '3':
- fmt = "%03d";
- *value %= 1000;
- break;
- case '+':
- *value += UChar(*++string);
- /* FALLTHRU */
- case '.':
- /*
- * Guard against tputs() seeing a truncated string. The
- * termcap documentation refers to a similar fixup for \n
- * and \r, but I don't see that it could work -TD
- */
- if (*value == 0) {
- if (BC != 0) {
- *value += 1;
- need_BC = TRUE;
- } else {
- *value = 0200; /* tputs will treat this as \0 */
- }
- }
- result[used++] = *value++;
- break;
- case '%':
- result[used++] = *string;
- break;
- case 'r':
- swap_arg = param[0];
- param[0] = param[1];
- param[1] = swap_arg;
- break;
- case 'i':
- param[0] += 1;
- param[1] += 1;
- break;
- case '>':
- if (*value > string[1])
- *value += string[2];
- string += 2;
- break;
- case 'n': /* Datamedia 2500 */
- param[0] ^= 0140;
- param[1] ^= 0140;
- break;
- case 'B': /* BCD */
- *value = 16 * (*value / 10) + (*value % 10);
- break;
- case 'D': /* Reverse coding (Delta Data) */
- *value -= 2 * (*value / 16);
- break;
- }
- if (fmt != 0) {
- sprintf(result + used, fmt, *value++);
- used += strlen(result + used);
- fmt = 0;
- }
- if (value - param > 2) {
- value = param + 2;
- *value = 0;
- }
- } else {
- result[used++] = *string;
- }
- string++;
- }
- if (result != 0) {
- if (need_BC) {
- strcpy(result + used, BC);
- used += strlen(BC);
- }
- result[used] = '\0';
- }
- return result;
-}
-#endif
-
-/*
- * Retained solely for upward compatibility. Note the intentional reversing of
- * the last two arguments when invoking tparm().
- */
-NCURSES_EXPORT(char *)
-tgoto(const char *string, int x, int y)
-{
- char *result;
-
- T((T_CALLED("tgoto(%s, %d, %d)"), _nc_visbuf(string), x, y));
-#if !PURE_TERMINFO
- if (is_termcap(string))
- result = tgoto_internal(string, x, y);
- else
-#endif
- result = tparm((NCURSES_CONST char *) string, y, x);
- returnPtr(result);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_ti.c b/ncurses-5.3/ncurses/tinfo/lib_ti.c
deleted file mode 100644
index 9e29694..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_ti.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-
-#include <term_entry.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-tigetflag(NCURSES_CONST char *str)
-{
- int i;
-
- T((T_CALLED("tigetflag(%s)"), str));
-
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_boolean(i, tp) {
- const char *capname = ExtBoolname(tp, i, boolnames);
- if (!strcmp(str, capname)) {
- /* setupterm forces invalid booleans to false */
- returnCode(tp->Booleans[i]);
- }
- }
- }
-
- returnCode(ABSENT_BOOLEAN);
-}
-
-NCURSES_EXPORT(int)
-tigetnum(NCURSES_CONST char *str)
-{
- int i;
-
- T((T_CALLED("tigetnum(%s)"), str));
-
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_number(i, tp) {
- const char *capname = ExtNumname(tp, i, numnames);
- if (!strcmp(str, capname)) {
- if (!VALID_NUMERIC(tp->Numbers[i]))
- returnCode(ABSENT_NUMERIC);
- returnCode(tp->Numbers[i]);
- }
- }
- }
-
- returnCode(CANCELLED_NUMERIC); /* Solaris returns a -1 instead */
-}
-
-NCURSES_EXPORT(char *)
-tigetstr(NCURSES_CONST char *str)
-{
- int i;
-
- T((T_CALLED("tigetstr(%s)"), str));
-
- if (cur_term != 0) {
- TERMTYPE *tp = &(cur_term->type);
- for_each_string(i, tp) {
- const char *capname = ExtStrname(tp, i, strnames);
- if (!strcmp(str, capname)) {
- /* setupterm forces cancelled strings to null */
- returnPtr(tp->Strings[i]);
- }
- }
- }
-
- returnPtr(CANCELLED_STRING);
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_tparm.c b/ncurses-5.3/ncurses/tinfo/lib_tparm.c
deleted file mode 100644
index b922015..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_tparm.c
+++ /dev/null
@@ -1,769 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey, 1996 on *
- ****************************************************************************/
-
-/*
- * tparm.c
- *
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <term.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * char *
- * tparm(string, ...)
- *
- * Substitute the given parameters into the given string by the following
- * rules (taken from terminfo(5)):
- *
- * Cursor addressing and other strings requiring parame-
- * ters in the terminal are described by a parameterized string
- * capability, with like escapes %x in it. For example, to
- * address the cursor, the cup capability is given, using two
- * parameters: the row and column to address to. (Rows and
- * columns are numbered from zero and refer to the physical
- * screen visible to the user, not to any unseen memory.) If
- * the terminal has memory relative cursor addressing, that can
- * be indicated by
- *
- * The parameter mechanism uses a stack and special %
- * 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.
- *
- * The % encodings have the following meanings:
- *
- * %% outputs `%'
- * %c print pop() like %c in printf()
- * %s print pop() like %s in printf()
- * %[[:]flags][width[.precision]][doxXs]
- * as in printf, flags are [-+#] and space
- * The ':' is used to avoid making %+ or %-
- * patterns (see below).
- *
- * %p[1-9] push ith 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
- * %l push strlen(pop)
- * %'c' push char constant c
- * %{nn} push integer constant nn
- *
- * %+ %- %* %/ %m
- * arithmetic (%m is mod): push(pop() op pop())
- * %& %| %^ bit operations: push(pop() op pop())
- * %= %> %< logical operations: push(pop() op pop())
- * %A %O logical and & or operations for conditionals
- * %! %~ unary operations push(op pop())
- * %i add 1 to first two parms (for ANSI terminals)
- *
- * %? expr %t thenpart %e elsepart %;
- * if-then-else, %e elsepart is optional.
- * else-if's are possible ala Algol 68:
- * %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e b5 %;
- *
- * For those of the above operators which are binary and not commutative,
- * the stack works in the usual way, with
- * %gx %gy %m
- * resulting in x mod y, not the reverse.
- */
-
-#define STACKSIZE 20
-
-typedef struct {
- union {
- int num;
- 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 const char *tparam_base = "";
-
-#ifdef TRACE
-static const char *tname;
-#endif /* TRACE */
-
-static char *out_buff;
-static size_t out_size;
-static size_t out_used;
-
-#if NO_LEAKS
-NCURSES_EXPORT(void)
-_nc_free_tparm(void)
-{
- if (out_buff != 0) {
- FreeAndNull(out_buff);
- out_size = 0;
- out_used = 0;
- }
-}
-#endif
-
-static inline void
-get_space(size_t need)
-{
- need += out_used;
- 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
-save_text(const char *fmt, const char *s, int len)
-{
- size_t s_len = strlen(s);
- if (len > (int) s_len)
- s_len = len;
-
- get_space(s_len + 1);
-
- (void) sprintf(out_buff + out_used, fmt, s);
- out_used += strlen(out_buff + out_used);
-}
-
-static inline void
-save_number(const char *fmt, int number, int len)
-{
- if (len < 30)
- len = 30; /* actually log10(MAX_INT)+1 */
-
- get_space((unsigned) len + 1);
-
- (void) sprintf(out_buff + out_used, fmt, number);
- out_used += strlen(out_buff + out_used);
-}
-
-static inline void
-save_char(int c)
-{
- if (c == 0)
- c = 0200;
- get_space(1);
- out_buff[out_used++] = c;
-}
-
-static inline void
-npush(int x)
-{
- if (stack_ptr < STACKSIZE) {
- 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++;
- }
-}
-
-static inline int
-npop(void)
-{
- int result = 0;
- if (stack_ptr > 0) {
- 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;
-}
-
-static inline void
-spush(char *x)
-{
- if (stack_ptr < STACKSIZE) {
- 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++;
- }
-}
-
-static inline char *
-spop(void)
-{
- static char dummy[] = ""; /* avoid const-cast */
- char *result = dummy;
- if (stack_ptr > 0) {
- 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;
-}
-
-static inline const char *
-parse_format(const char *s, char *format, int *len)
-{
- bool done = FALSE;
- bool allowminus = FALSE;
- bool dot = FALSE;
- bool err = FALSE;
- char *fmt = format;
- int my_width = 0;
- int my_prec = 0;
- int value = 0;
-
- *len = 0;
- *format++ = '%';
- while (*s != '\0' && !done) {
- switch (*s) {
- case 'c': /* FALLTHRU */
- case 'd': /* FALLTHRU */
- case 'o': /* FALLTHRU */
- case 'x': /* FALLTHRU */
- case 'X': /* FALLTHRU */
- case 's':
- *format++ = *s;
- done = TRUE;
- break;
- case '.':
- *format++ = *s++;
- if (dot) {
- err = TRUE;
- } else { /* value before '.' is the width */
- dot = TRUE;
- my_width = value;
- }
- value = 0;
- break;
- case '#':
- *format++ = *s++;
- break;
- case ' ':
- *format++ = *s++;
- break;
- case ':':
- s++;
- allowminus = TRUE;
- break;
- case '-':
- if (allowminus) {
- *format++ = *s++;
- } else {
- done = TRUE;
- }
- break;
- default:
- if (isdigit(UChar(*s))) {
- value = (value * 10) + (*s - '0');
- if (value > 10000)
- err = TRUE;
- *format++ = *s++;
- } else {
- done = TRUE;
- }
- }
- }
-
- /*
- * If we found an error, ignore (and remove) the flags.
- */
- if (err) {
- my_width = my_prec = value = 0;
- format = fmt;
- *format++ = '%';
- *format++ = *s;
- }
-
- /*
- * Any value after '.' is the precision. If we did not see '.', then
- * the value is the width.
- */
- if (dot)
- my_prec = value;
- else
- my_width = value;
-
- *format = '\0';
- /* return maximum string length in print */
- *len = (my_width > my_prec) ? my_width : my_prec;
- return s;
-}
-
-#define isUPPER(c) ((c) >= 'A' && (c) <= 'Z')
-#define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
-
-static inline char *
-tparam_internal(const char *string, va_list ap)
-{
-#define NUM_VARS 26
- char *p_is_s[9];
- long param[9];
- int lastpop;
- int popcount;
- int number;
- int len;
- int level;
- int x, y;
- int i;
- size_t len2;
- register const char *cp;
- static size_t len_fmt;
- static char dummy[] = "";
- static char *format;
- static int dynamic_var[NUM_VARS];
- static int static_vars[NUM_VARS];
-
- out_used = 0;
- if (string == NULL)
- return NULL;
-
- if ((len2 = strlen(string)) > len_fmt) {
- len_fmt = len2 + len_fmt + 2;
- if ((format = typeRealloc(char, len_fmt, format)) == 0)
- return 0;
- }
-
- /*
- * Find the highest parameter-number referred to in the format string.
- * Use this value to limit the number of arguments copied from the
- * variable-length argument list.
- */
-
- number = 0;
- lastpop = -1;
- popcount = 0;
- memset(p_is_s, 0, sizeof(p_is_s));
-
- /*
- * Analyze the string to see how many parameters we need from the varargs
- * list, and what their types are. We will only accept string parameters
- * if they appear as a %l or %s format following an explicit parameter
- * reference (e.g., %p2%s). All other parameters are numbers.
- *
- * 'number' counts coarsely the number of pop's we see in the string, and
- * 'popcount' shows the highest parameter number in the string. We would
- * like to simply use the latter count, but if we are reading termcap
- * strings, there may be cases that we cannot see the explicit parameter
- * numbers.
- */
- for (cp = string; (cp - string) < (int) len2;) {
- if (*cp == '%') {
- cp++;
- cp = parse_format(cp, format, &len);
- switch (*cp) {
- default:
- break;
-
- case 'd': /* FALLTHRU */
- case 'o': /* FALLTHRU */
- case 'x': /* FALLTHRU */
- case 'X': /* FALLTHRU */
- case 'c': /* FALLTHRU */
- number++;
- lastpop = -1;
- break;
-
- case 'l':
- case 's':
- if (lastpop > 0)
- p_is_s[lastpop - 1] = dummy;
- ++number;
- break;
-
- case 'p':
- cp++;
- i = (*cp - '0');
- if (i >= 0 && i <= 9) {
- lastpop = i;
- if (lastpop > popcount)
- popcount = lastpop;
- }
- break;
-
- case 'P':
- ++number;
- ++cp;
- break;
-
- case 'g':
- cp++;
- break;
-
- case S_QUOTE:
- cp += 2;
- lastpop = -1;
- break;
-
- case L_BRACE:
- cp++;
- while (*cp >= '0' && *cp <= '9') {
- cp++;
- }
- break;
-
- case '+':
- case '-':
- case '*':
- case '/':
- case 'm':
- case 'A':
- case 'O':
- case '&':
- case '|':
- case '^':
- case '=':
- case '<':
- case '>':
- lastpop = -1;
- number += 2;
- break;
-
- case '!':
- case '~':
- lastpop = -1;
- ++number;
- break;
-
- case 'i':
- lastpop = -1;
- if (popcount < 2)
- popcount = 2;
- break;
- }
- }
- if (*cp != '\0')
- cp++;
- }
-
- if (number > 9)
- number = 9;
- for (i = 0; i < max(popcount, number); i++) {
- /*
- * 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. 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 {
- param[i] = va_arg(ap, long int);
- }
- }
-
- /*
- * This is a termcap compatibility hack. If there are no explicit pop
- * operations in the string, load the stack in such a way that
- * successive pops will grab successive parameters. That will make
- * the expansion of (for example) \E[%d;%dH work correctly in termcap
- * style, which means tparam() will expand termcap strings OK.
- */
- stack_ptr = 0;
- if (popcount == 0) {
- popcount = number;
- for (i = number - 1; i >= 0; i--)
- npush(param[i]);
- }
-#ifdef TRACE
- if (_nc_tracing & TRACE_CALLS) {
- for (i = 0; i < popcount; i++) {
- if (p_is_s[i] != 0)
- save_text(", %s", _nc_visbuf(p_is_s[i]), 0);
- else
- save_number(", %d", param[i], 0);
- }
- _tracef(T_CALLED("%s(%s%s)"), tname, _nc_visbuf(string), out_buff);
- out_used = 0;
- }
-#endif /* TRACE */
-
- while (*string) {
- if (*string != '%') {
- save_char(*string);
- } else {
- tparam_base = string++;
- string = parse_format(string, format, &len);
- switch (*string) {
- default:
- break;
- case '%':
- save_char('%');
- break;
-
- case 'd': /* FALLTHRU */
- case 'o': /* FALLTHRU */
- case 'x': /* FALLTHRU */
- case 'X': /* FALLTHRU */
- save_number(format, npop(), len);
- break;
-
- case 'c': /* FALLTHRU */
- save_char(npop());
- break;
-
- case 'l':
- save_number("%d", (int) strlen(spop()), 0);
- break;
-
- case 's':
- save_text(format, spop(), len);
- break;
-
- case 'p':
- string++;
- i = (*string - '1');
- if (i >= 0 && i < 9) {
- if (p_is_s[i])
- spush(p_is_s[i]);
- else
- npush(param[i]);
- }
- break;
-
- case 'P':
- string++;
- if (isUPPER(*string)) {
- i = (*string - 'A');
- static_vars[i] = npop();
- } else if (isLOWER(*string)) {
- i = (*string - 'a');
- dynamic_var[i] = npop();
- }
- break;
-
- case 'g':
- string++;
- if (isUPPER(*string)) {
- i = (*string - 'A');
- npush(static_vars[i]);
- } else if (isLOWER(*string)) {
- i = (*string - 'a');
- npush(dynamic_var[i]);
- }
- break;
-
- case S_QUOTE:
- string++;
- npush(*string);
- string++;
- break;
-
- case L_BRACE:
- number = 0;
- string++;
- while (*string >= '0' && *string <= '9') {
- number = number * 10 + *string - '0';
- string++;
- }
- npush(number);
- break;
-
- case '+':
- npush(npop() + npop());
- break;
-
- case '-':
- y = npop();
- x = npop();
- npush(x - y);
- break;
-
- case '*':
- npush(npop() * npop());
- break;
-
- case '/':
- y = npop();
- x = npop();
- npush(y ? (x / y) : 0);
- break;
-
- case 'm':
- y = npop();
- x = npop();
- npush(y ? (x % y) : 0);
- break;
-
- case 'A':
- npush(npop() && npop());
- break;
-
- case 'O':
- npush(npop() || npop());
- break;
-
- case '&':
- npush(npop() & npop());
- break;
-
- case '|':
- npush(npop() | npop());
- break;
-
- case '^':
- npush(npop() ^ npop());
- break;
-
- case '=':
- y = npop();
- x = npop();
- npush(x == y);
- break;
-
- case '<':
- y = npop();
- x = npop();
- npush(x < y);
- break;
-
- case '>':
- y = npop();
- x = npop();
- npush(x > y);
- break;
-
- case '!':
- npush(!npop());
- break;
-
- case '~':
- npush(~npop());
- break;
-
- case 'i':
- if (p_is_s[0] == 0)
- param[0]++;
- if (p_is_s[1] == 0)
- param[1]++;
- break;
-
- case '?':
- break;
-
- case 't':
- x = npop();
- if (!x) {
- /* scan forward for %e or %; at level zero */
- string++;
- level = 0;
- while (*string) {
- if (*string == '%') {
- string++;
- if (*string == '?')
- level++;
- else if (*string == ';') {
- if (level > 0)
- level--;
- else
- break;
- } else if (*string == 'e' && level == 0)
- break;
- }
-
- if (*string)
- string++;
- }
- }
- break;
-
- case 'e':
- /* scan forward for a %; at level zero */
- string++;
- level = 0;
- while (*string) {
- if (*string == '%') {
- string++;
- if (*string == '?')
- level++;
- else if (*string == ';') {
- if (level > 0)
- level--;
- else
- break;
- }
- }
-
- if (*string)
- string++;
- }
- break;
-
- case ';':
- break;
-
- } /* endswitch (*string) */
- } /* endelse (*string == '%') */
-
- if (*string == '\0')
- break;
-
- string++;
- } /* endwhile (*string) */
-
- get_space(1);
- out_buff[out_used] = '\0';
-
- T((T_RETURN("%s"), _nc_visbuf(out_buff)));
- return (out_buff);
-}
-
-NCURSES_EXPORT(char *)
-tparm(NCURSES_CONST char *string,...)
-{
- va_list ap;
- char *result;
-
- _nc_tparm_err = 0;
- va_start(ap, string);
-#ifdef TRACE
- tname = "tparm";
-#endif /* TRACE */
- result = tparam_internal(string, ap);
- va_end(ap);
- return result;
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_tputs.c b/ncurses-5.3/ncurses/tinfo/lib_tputs.c
deleted file mode 100644
index cbb5338..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_tputs.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * tputs.c
- * delay_output()
- * _nc_outch()
- * tputs()
- *
- */
-
-#include <curses.priv.h>
-#include <ctype.h>
-#include <term.h> /* padding_baud_rate, xon_xoff */
-#include <termcap.h> /* ospeed */
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
-NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
-
-NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0; /* used by 'tack' program */
-
-static int (*my_outch) (int c) = _nc_outch;
-
-NCURSES_EXPORT(int)
-delay_output(int ms)
-{
- T((T_CALLED("delay_output(%d)"), ms));
-
- if (no_pad_char) {
- _nc_flush();
- napms(ms);
- } else {
- register int nullcount;
-
- nullcount = (ms * _nc_baudrate(ospeed)) / 10000;
- for (_nc_nulls_sent += nullcount; nullcount > 0; nullcount--)
- my_outch(PC);
- if (my_outch == _nc_outch)
- _nc_flush();
- }
-
- returnCode(OK);
-}
-
-NCURSES_EXPORT(void)
-_nc_flush(void)
-{
- (void) fflush(NC_OUTPUT);
-}
-
-NCURSES_EXPORT(int)
-_nc_outch(int ch)
-{
-#ifdef TRACE
- _nc_outchars++;
-#endif /* TRACE */
-
- if (SP != 0
- && SP->_cleanup) {
- char tmp = ch;
- /*
- * POSIX says write() is safe in a signal handler, but the
- * buffered I/O is not.
- */
- write(fileno(NC_OUTPUT), &tmp, 1);
- } else {
- putc(ch, NC_OUTPUT);
- }
- return OK;
-}
-
-NCURSES_EXPORT(int)
-putp(const char *string)
-{
- return tputs(string, 1, _nc_outch);
-}
-
-NCURSES_EXPORT(int)
-tputs(const char *string, int affcnt, int (*outc) (int))
-{
- bool always_delay;
- bool normal_delay;
- int number;
-#if BSD_TPUTS
- int trailpad;
-#endif /* BSD_TPUTS */
-
-#ifdef TRACE
- char addrbuf[32];
-
- if (_nc_tracing & TRACE_TPUTS) {
- if (outc == _nc_outch)
- (void) strcpy(addrbuf, "_nc_outch");
- else
- (void) sprintf(addrbuf, "%p", outc);
- if (_nc_tputs_trace) {
- _tracef("tputs(%s = %s, %d, %s) called", _nc_tputs_trace,
- _nc_visbuf(string), affcnt, addrbuf);
- } else {
- _tracef("tputs(%s, %d, %s) called", _nc_visbuf(string), affcnt, addrbuf);
- }
- _nc_tputs_trace = (char *) NULL;
- }
-#endif /* TRACE */
-
- if (!VALID_STRING(string))
- return ERR;
-
- if (cur_term == 0) {
- always_delay = FALSE;
- normal_delay = TRUE;
- } else {
- always_delay = (string == bell) || (string == flash_screen);
- normal_delay =
- !xon_xoff
- && padding_baud_rate
-#if NCURSES_NO_PADDING
- && (SP == 0 || !(SP->_no_padding))
-#endif
- && (_nc_baudrate(ospeed) >= padding_baud_rate);
- }
-
-#if BSD_TPUTS
- /*
- * This ugly kluge deals with the fact that some ancient BSD programs
- * (like nethack) actually do the likes of tputs("50") to get delays.
- */
- trailpad = 0;
- if (isdigit(UChar(*string))) {
- while (isdigit(UChar(*string))) {
- trailpad = trailpad * 10 + (*string - '0');
- string++;
- }
- trailpad *= 10;
- if (*string == '.') {
- string++;
- if (isdigit(UChar(*string))) {
- trailpad += (*string - '0');
- string++;
- }
- while (isdigit(UChar(*string)))
- string++;
- }
-
- if (*string == '*') {
- trailpad *= affcnt;
- string++;
- }
- }
-#endif /* BSD_TPUTS */
-
- my_outch = outc; /* redirect delay_output() */
- while (*string) {
- if (*string != '$')
- (*outc) (*string);
- else {
- string++;
- if (*string != '<') {
- (*outc) ('$');
- if (*string)
- (*outc) (*string);
- } else {
- bool mandatory;
-
- string++;
- if ((!isdigit(UChar(*string)) && *string != '.')
- || !strchr(string, '>')) {
- (*outc) ('$');
- (*outc) ('<');
- continue;
- }
-
- number = 0;
- while (isdigit(UChar(*string))) {
- number = number * 10 + (*string - '0');
- string++;
- }
- number *= 10;
- if (*string == '.') {
- string++;
- if (isdigit(UChar(*string))) {
- number += (*string - '0');
- string++;
- }
- while (isdigit(UChar(*string)))
- string++;
- }
-
- mandatory = FALSE;
- while (*string == '*' || *string == '/') {
- if (*string == '*') {
- number *= affcnt;
- string++;
- } else { /* if (*string == '/') */
- mandatory = TRUE;
- string++;
- }
- }
-
- if (number > 0
- && (always_delay
- || normal_delay
- || mandatory))
- delay_output(number / 10);
-
- } /* endelse (*string == '<') */
- } /* endelse (*string == '$') */
-
- if (*string == '\0')
- break;
-
- string++;
- }
-
-#if BSD_TPUTS
- /*
- * Emit any BSD-style prefix padding that we've accumulated now.
- */
- if (trailpad > 0
- && (always_delay || normal_delay))
- delay_output(trailpad / 10);
-#endif /* BSD_TPUTS */
-
- my_outch = _nc_outch;
- return OK;
-}
diff --git a/ncurses-5.3/ncurses/tinfo/lib_ttyflags.c b/ncurses-5.3/ncurses/tinfo/lib_ttyflags.c
deleted file mode 100644
index 522f65f..0000000
--- a/ncurses-5.3/ncurses/tinfo/lib_ttyflags.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
- * def_prog_mode()
- * def_shell_mode()
- * reset_prog_mode()
- * reset_shell_mode()
- * savetty()
- * resetty()
- */
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id$")
-
-#undef tabs
-
-#ifdef TAB3
-# define tabs TAB3
-#else
-# ifdef XTABS
-# define tabs XTABS
-# else
-# ifdef OXTABS
-# define tabs OXTABS
-# else
-# define tabs 0
-# endif
-# endif
-#endif
-
-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(%d): %s",
- cur_term->Filedes, _nc_trace_ttymode(buf)));
- return (OK);
-}
-
-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(%d): %s",
- cur_term->Filedes, _nc_trace_ttymode(buf)));
- return (OK);
-}
-
-NCURSES_EXPORT(int)
-def_shell_mode(void)
-{
- 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.
- */
-
- if (_nc_get_tty_mode(&cur_term->Ottyb) != OK)
- returnCode(ERR);
-#ifdef TERMIOS
- if (cur_term->Ottyb.c_oflag & tabs)
- tab = back_tab = NULL;
-#else
- if (cur_term->Ottyb.sg_flags & XTABS)
- tab = back_tab = NULL;
-#endif
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-def_prog_mode(void)
-{
- T((T_CALLED("def_prog_mode()")));
-
- if (_nc_get_tty_mode(&cur_term->Nttyb) != OK)
- returnCode(ERR);
-#ifdef TERMIOS
- cur_term->Nttyb.c_oflag &= ~tabs;
-#else
- cur_term->Nttyb.sg_flags &= ~XTABS;
-#endif
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-reset_prog_mode(void)
-{
- 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);
-}
-
-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));
- }
- returnCode(ERR);
-}
-
-/*
-** savetty() and resetty()
-**
-*/
-
-static TTY buf;
-
-NCURSES_EXPORT(int)
-savetty(void)
-{
- T((T_CALLED("savetty()")));
-
- returnCode(_nc_get_tty_mode(&buf));
-}
-
-NCURSES_EXPORT(int)
-resetty(void)
-{
- T((T_CALLED("resetty()")));
-
- returnCode(_nc_set_tty_mode(&buf));
-}
diff --git a/ncurses-5.3/ncurses/tinfo/make_keys.c b/ncurses-5.3/ncurses/tinfo/make_keys.c
deleted file mode 100644
index 8d5c200..0000000
--- a/ncurses-5.3/ncurses/tinfo/make_keys.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-
-/*
- * This replaces an awk script which translated keys.list into keys.tries by
- * making the output show the indices into the TERMTYPE Strings array. Doing
- * it that way lets us cut down on the size of the init_keytry() function.
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#include <names.c>
-
-#define UNKNOWN (SIZEOF(strnames) + SIZEOF(strfnames))
-
-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;
- }
- }
- if (!found) {
- for (n = 0; strfnames[n] != 0; n++) {
- if (!strcmp(name, strfnames[n])) {
- found = TRUE;
- break;
- }
- }
- }
- return found ? n : UNKNOWN;
-}
-
-static void
-make_keys(FILE * ifp, FILE * ofp)
-{
- 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);
- }
- }
-}
-
-static void
-write_list(FILE * ofp, const char **list)
-{
- while (*list != 0)
- fprintf(ofp, "%s\n", *list++);
-}
-
-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
- };
-
- 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, suffix);
- return EXIT_SUCCESS;
-}
diff --git a/ncurses-5.3/ncurses/tinfo/name_match.c b/ncurses-5.3/ncurses/tinfo/name_match.c
deleted file mode 100644
index 3773bdb..0000000
--- a/ncurses-5.3/ncurses/tinfo/name_match.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999 *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * _nc_first_name(char *names)
- *
- * Extract the primary name from a compiled entry.
- */
-
-NCURSES_EXPORT(char *)
-_nc_first_name(const char *const sp)
-/* get the first name from the given name list */
-{
- static char *buf;
- register unsigned n;
-
- 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);
-}
-
-/*
- * int _nc_name_match(namelist, name, delim)
- *
- * Is the given name matched in namelist?
- */
-
-NCURSES_EXPORT(int)
-_nc_name_match
-(const char *const namelst, const char *const name, const char *const delim)
-{
- 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;
- }
- }
- return FALSE;
-}
diff --git a/ncurses-5.3/ncurses/tinfo/parse_entry.c b/ncurses-5.3/ncurses/tinfo/parse_entry.c
deleted file mode 100644
index 806afce..0000000
--- a/ncurses-5.3/ncurses/tinfo/parse_entry.c
+++ /dev/null
@@ -1,960 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * parse_entry.c -- compile one terminfo or termcap entry
- *
- * Get an exact in-core representation of an entry. Don't
- * try to resolve use or tc capabilities, that is someone
- * else's job. Depends on the lexical analyzer to get tokens
- * from the input stream.
- */
-
-#define __INTERNAL_CAPS_VISIBLE
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#ifdef LINT
-static short const parametrized[] =
-{0};
-#else
-#include <parametrized.h>
-#endif
-
-static void postprocess_termcap(TERMTYPE *, bool);
-static void postprocess_terminfo(TERMTYPE *);
-static struct name_table_entry const *lookup_fullname(const char *name);
-
-#if NCURSES_XNAMES
-
-static struct name_table_entry const *
-_nc_extend_names(ENTRY * entryp, char *name, int token_type)
-{
- static struct name_table_entry temp;
- TERMTYPE *tp = &(entryp->tterm);
- unsigned offset = 0;
- unsigned actual;
- unsigned tindex;
- unsigned first, last, n;
- bool found;
-
- switch (token_type) {
- case BOOLEAN:
- first = 0;
- last = tp->ext_Booleans;
- offset = tp->ext_Booleans;
- tindex = tp->num_Booleans;
- break;
- case NUMBER:
- first = tp->ext_Booleans;
- last = tp->ext_Numbers + first;
- offset = tp->ext_Booleans + tp->ext_Numbers;
- tindex = tp->num_Numbers;
- break;
- case STRING:
- first = tp->ext_Booleans + tp->ext_Numbers;
- last = tp->ext_Strings + first;
- offset = tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings;
- tindex = tp->num_Strings;
- break;
- case CANCEL:
- actual = NUM_EXT_NAMES(tp);
- for (n = 0; n < actual; n++) {
- if (!strcmp(name, tp->ext_Names[n])) {
- if (n > (unsigned) (tp->ext_Booleans + tp->ext_Numbers)) {
- token_type = STRING;
- } else if (n > tp->ext_Booleans) {
- token_type = NUMBER;
- } else {
- token_type = BOOLEAN;
- }
- return _nc_extend_names(entryp, name, token_type);
- }
- }
- /* Well, we are given a cancel for a name that we don't recognize */
- return _nc_extend_names(entryp, name, STRING);
- default:
- return 0;
- }
-
- /* Adjust the 'offset' (insertion-point) to keep the lists of extended
- * names sorted.
- */
- for (n = first, found = FALSE; n < last; n++) {
- int cmp = strcmp(tp->ext_Names[n], name);
- if (cmp == 0)
- found = TRUE;
- if (cmp >= 0) {
- offset = n;
- tindex = n - first;
- switch (token_type) {
- case BOOLEAN:
- tindex += BOOLCOUNT;
- break;
- case NUMBER:
- tindex += NUMCOUNT;
- break;
- case STRING:
- tindex += STRCOUNT;
- break;
- }
- break;
- }
- }
- if (!found) {
- switch (token_type) {
- case BOOLEAN:
- tp->ext_Booleans += 1;
- tp->num_Booleans += 1;
- tp->Booleans = typeRealloc(char, tp->num_Booleans, tp->Booleans);
- for (last = tp->num_Booleans - 1; last > tindex; last--)
- tp->Booleans[last] = tp->Booleans[last - 1];
- break;
- case NUMBER:
- tp->ext_Numbers += 1;
- tp->num_Numbers += 1;
- tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
- for (last = tp->num_Numbers - 1; last > tindex; last--)
- tp->Numbers[last] = tp->Numbers[last - 1];
- break;
- case STRING:
- tp->ext_Strings += 1;
- tp->num_Strings += 1;
- tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
- for (last = tp->num_Strings - 1; last > tindex; last--)
- tp->Strings[last] = tp->Strings[last - 1];
- break;
- }
- actual = NUM_EXT_NAMES(tp);
- tp->ext_Names = typeRealloc(char *, actual, tp->ext_Names);
- while (--actual > offset)
- tp->ext_Names[actual] = tp->ext_Names[actual - 1];
- tp->ext_Names[offset] = _nc_save_str(name);
- }
-
- temp.nte_name = tp->ext_Names[offset];
- temp.nte_type = token_type;
- temp.nte_index = tindex;
- temp.nte_link = -1;
-
- return &temp;
-}
-#endif /* NCURSES_XNAMES */
-
-/*
- * int
- * _nc_parse_entry(entry, literal, silent)
- *
- * Compile one entry. Doesn't try to resolve use or tc capabilities.
- *
- * found-forward-use = FALSE
- * re-initialise internal arrays
- * get_token();
- * if the token was not a name in column 1, complain and die
- * save names in entry's string table
- * while (get_token() is not EOF and not NAMES)
- * check for existance and type-correctness
- * enter cap into structure
- * if STRING
- * save string in entry's string table
- * push back token
- */
-
-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;
-
- token_type = _nc_get_token(silent);
-
- if (token_type == EOF)
- return (EOF);
- if (token_type != NAMES)
- _nc_err_abort("Entry does not start with terminal names in column one");
-
- _nc_init_entry(&entryp->tterm);
-
- entryp->cstart = _nc_comment_start;
- entryp->cend = _nc_comment_end;
- entryp->startline = _nc_start_line;
- DEBUG(2, ("Comment range is %ld to %ld", entryp->cstart, entryp->cend));
-
- /* junk the 2-character termcap name, if present */
- ptr = _nc_curr_token.tk_name;
- if (ptr[2] == '|') {
- ptr = _nc_curr_token.tk_name + 3;
- _nc_curr_token.tk_name[2] = '\0';
- }
-
- entryp->tterm.str_table = entryp->tterm.term_names = _nc_save_str(ptr);
-
- DEBUG(1, ("Starting '%s'", ptr));
-
- /*
- * We do this because the one-token lookahead in the parse loop
- * results in the terminal type getting prematurely set to correspond
- * to that of the next entry.
- */
- _nc_set_type(_nc_first_name(entryp->tterm.term_names));
-
- /* check for overly-long names and aliases */
- for (base = entryp->tterm.term_names; (ptr = strchr(base, '|')) != 0;
- base = ptr + 1) {
- if (ptr - base > MAX_ALIAS) {
- _nc_warning("%s `%.*s' may be too long",
- (base == entryp->tterm.term_names)
- ? "primary name"
- : "alias",
- (int) (ptr - base), base);
- }
- }
-
- entryp->nuses = 0;
-
- for (token_type = _nc_get_token(silent);
- token_type != EOF && token_type != NAMES;
- 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);
- entryp->uses[entryp->nuses].line = _nc_curr_line;
- entryp->nuses++;
- } else {
- /* normal token lookup */
- entry_ptr = _nc_find_entry(_nc_curr_token.tk_name,
- _nc_syntax ? _nc_cap_hash_table : _nc_info_hash_table);
-
- /*
- * Our kluge to handle aliasing. The reason it's done
- * this ugly way, with a linear search, is so the hashing
- * machinery doesn't have to be made really complicated
- * (also we get better warnings this way). No point in
- * making this case fast, aliased caps aren't common now
- * and will get rarer.
- */
- if (entry_ptr == NOTFOUND) {
- const struct alias *ap;
-
- if (_nc_syntax == SYN_TERMCAP) {
- for (ap = _nc_capalias_table; ap->from; ap++)
- if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) {
- if (ap->to == (char *) 0) {
- _nc_warning("%s (%s termcap extension) ignored",
- ap->from, ap->source);
- goto nexttok;
- }
-
- entry_ptr = _nc_find_entry(ap->to, _nc_cap_hash_table);
- if (entry_ptr && !silent)
- _nc_warning("%s (%s termcap extension) aliased to %s",
- ap->from, ap->source, ap->to);
- break;
- }
- } else { /* if (_nc_syntax == SYN_TERMINFO) */
- for (ap = _nc_infoalias_table; ap->from; ap++)
- if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) {
- if (ap->to == (char *) 0) {
- _nc_warning("%s (%s terminfo extension) ignored",
- ap->from, ap->source);
- goto nexttok;
- }
-
- entry_ptr = _nc_find_entry(ap->to, _nc_info_hash_table);
- if (entry_ptr && !silent)
- _nc_warning("%s (%s terminfo extension) aliased to %s",
- ap->from, ap->source, ap->to);
- break;
- }
-
- if (entry_ptr == NOTFOUND) {
- entry_ptr = lookup_fullname(_nc_curr_token.tk_name);
- }
- }
- }
-#if NCURSES_XNAMES
- /*
- * If we have extended-names active, we will automatically
- * define a name based on its context.
- */
- if (entry_ptr == NOTFOUND
- && _nc_user_definable
- && (entry_ptr = _nc_extend_names(entryp,
- _nc_curr_token.tk_name,
- token_type)) != 0) {
- if (_nc_tracing >= DEBUG_LEVEL(1))
- _nc_warning("extended capability '%s'", _nc_curr_token.tk_name);
- }
-#endif /* NCURSES_XNAMES */
-
- /* can't find this cap name, not even as an alias */
- if (entry_ptr == NOTFOUND) {
- if (!silent)
- _nc_warning("unknown capability '%s'",
- _nc_curr_token.tk_name);
- continue;
- }
-
- /* deal with bad type/value combinations. */
- if (token_type != CANCEL && entry_ptr->nte_type != token_type) {
- /*
- * Nasty special cases here handle situations in which type
- * information can resolve name clashes. Normal lookup
- * finds the last instance in the capability table of a
- * given name, regardless of type. find_type_entry looks
- * for a first matching instance with given type. So as
- * long as all ambiguous names occur in pairs of distinct
- * type, this will do the job.
- */
-
- /* tell max_attributes from arrow_key_map */
- if (token_type == NUMBER && !strcmp("ma", _nc_curr_token.tk_name))
- entry_ptr = _nc_find_type_entry("ma", NUMBER,
- _nc_get_table(_nc_syntax
- != 0));
-
- /* map terminfo's string MT to MT */
- else if (token_type == STRING && !strcmp("MT", _nc_curr_token.tk_name))
- entry_ptr = _nc_find_type_entry("MT", STRING,
- _nc_get_table(_nc_syntax
- != 0));
-
- /* treat strings without following "=" as empty strings */
- else if (token_type == BOOLEAN && entry_ptr->nte_type == STRING)
- token_type = STRING;
- /* we couldn't recover; skip this token */
- else {
- if (!silent) {
- const char *type_name;
- switch (entry_ptr->nte_type) {
- case BOOLEAN:
- type_name = "boolean";
- break;
- case STRING:
- type_name = "string";
- break;
- case NUMBER:
- type_name = "numeric";
- break;
- default:
- type_name = "unknown";
- break;
- }
- _nc_warning("wrong type used for %s capability '%s'",
- type_name, _nc_curr_token.tk_name);
- }
- continue;
- }
- }
-
- /* now we know that the type/value combination is OK */
- switch (token_type) {
- case CANCEL:
- switch (entry_ptr->nte_type) {
- case BOOLEAN:
- entryp->tterm.Booleans[entry_ptr->nte_index] = CANCELLED_BOOLEAN;
- break;
-
- case NUMBER:
- entryp->tterm.Numbers[entry_ptr->nte_index] = CANCELLED_NUMERIC;
- break;
-
- case STRING:
- entryp->tterm.Strings[entry_ptr->nte_index] = CANCELLED_STRING;
- break;
- }
- break;
-
- case BOOLEAN:
- entryp->tterm.Booleans[entry_ptr->nte_index] = TRUE;
- break;
-
- case NUMBER:
- entryp->tterm.Numbers[entry_ptr->nte_index] =
- _nc_curr_token.tk_valnumber;
- break;
-
- case STRING:
- ptr = _nc_curr_token.tk_valstring;
- if (_nc_syntax == SYN_TERMCAP)
- ptr = _nc_captoinfo(_nc_curr_token.tk_name,
- ptr,
- parametrized[entry_ptr->nte_index]);
- entryp->tterm.Strings[entry_ptr->nte_index] = _nc_save_str(ptr);
- break;
-
- default:
- if (!silent)
- _nc_warning("unknown token type");
- _nc_panic_mode((_nc_syntax == SYN_TERMCAP) ? ':' : ',');
- continue;
- }
- } /* end else cur_token.name != "use" */
- nexttok:
- continue; /* cannot have a label w/o statement */
- } /* endwhile (not EOF and not NAMES) */
-
- _nc_push_token(token_type);
- _nc_set_type(_nc_first_name(entryp->tterm.term_names));
-
- /*
- * Try to deduce as much as possible from extension capabilities
- * (this includes obsolete BSD capabilities). Sigh...it would be more
- * space-efficient to call this after use resolution, but it has
- * to be done before entry allocation is wrapped up.
- */
- if (!literal) {
- if (_nc_syntax == SYN_TERMCAP) {
- bool has_base_entry = FALSE;
- int i;
-
- /*
- * Don't insert defaults if this is a `+' entry meant only
- * for inclusion in other entries (not sure termcap ever
- * had these, actually).
- */
- if (strchr(entryp->tterm.term_names, '+'))
- has_base_entry = TRUE;
- else
- /*
- * Otherwise, look for a base entry that will already
- * have picked up defaults via translation.
- */
- for (i = 0; i < entryp->nuses; i++)
- if (!strchr((char *) entryp->uses[i].name, '+'))
- has_base_entry = TRUE;
-
- postprocess_termcap(&entryp->tterm, has_base_entry);
- } else
- postprocess_terminfo(&entryp->tterm);
- }
- _nc_wrap_entry(entryp, FALSE);
-
- return (OK);
-}
-
-NCURSES_EXPORT(int)
-_nc_capcmp(const char *s, const char *t)
-/* compare two string capabilities, stripping out padding */
-{
- if (!s && !t)
- return (0);
- else if (!s || !t)
- return (1);
-
- for (;;) {
- if (s[0] == '$' && s[1] == '<') {
- for (s += 2;; s++)
- if (!(isdigit(UChar(*s))
- || *s == '.'
- || *s == '*'
- || *s == '/'
- || *s == '>'))
- break;
- }
-
- if (t[0] == '$' && t[1] == '<') {
- for (t += 2;; t++)
- if (!(isdigit(UChar(*t))
- || *t == '.'
- || *t == '*'
- || *t == '/'
- || *t == '>'))
- break;
- }
-
- /* we've now pushed s and t past any padding they were pointing at */
-
- if (*s == '\0' && *t == '\0')
- return (0);
-
- if (*s != *t)
- return (*t - *s);
-
- /* else *s == *t but one is not NUL, so continue */
- s++, t++;
- }
-}
-
-static void
-append_acs0(string_desc * dst, int code, int src)
-{
- if (src != 0) {
- char temp[3];
- temp[0] = code;
- temp[1] = src;
- temp[2] = 0;
- _nc_safe_strcat(dst, temp);
- }
-}
-
-static void
-append_acs(string_desc * dst, int code, char *src)
-{
- if (src != 0 && strlen(src) == 1) {
- append_acs0(dst, code, *src);
- }
-}
-
-/*
- * The ko capability, if present, consists of a comma-separated capability
- * list. For each capability, we may assume there is a keycap that sends the
- * string which is the value of that capability.
- */
-typedef struct {
- const char *from;
- const char *to;
-} assoc;
-static assoc const ko_xlate[] =
-{
- {"al", "kil1"}, /* insert line key -> KEY_IL */
- {"bt", "kcbt"}, /* back tab -> KEY_BTAB */
- {"cd", "ked"}, /* clear-to-eos key -> KEY_EOL */
- {"ce", "kel"}, /* clear-to-eol key -> KEY_EOS */
- {"cl", "kclr"}, /* clear key -> KEY_CLEAR */
- {"ct", "tbc"}, /* clear all tabs -> KEY_CATAB */
- {"dc", "kdch1"}, /* delete char -> KEY_DC */
- {"dl", "kdl1"}, /* delete line -> KEY_DL */
- {"do", "kcud1"}, /* down key -> KEY_DOWN */
- {"ei", "krmir"}, /* exit insert key -> KEY_EIC */
- {"ho", "khome"}, /* home key -> KEY_HOME */
- {"ic", "kich1"}, /* insert char key -> KEY_IC */
- {"im", "kIC"}, /* insert-mode key -> KEY_SIC */
- {"le", "kcub1"}, /* le key -> KEY_LEFT */
- {"nd", "kcuf1"}, /* nd key -> KEY_RIGHT */
- {"nl", "kent"}, /* new line key -> KEY_ENTER */
- {"st", "khts"}, /* set-tab key -> KEY_STAB */
- {"ta", CANCELLED_STRING},
- {"up", "kcuu1"}, /* up-arrow key -> KEY_UP */
- {(char *) 0, (char *) 0},
-};
-
-/*
- * This routine fills in string caps that either had defaults under
- * termcap or can be manufactured from obsolete termcap capabilities.
- * It was lifted from Ross Ridge's mytinfo package.
- */
-
-static const char C_CR[] = "\r";
-static const char C_LF[] = "\n";
-static const char C_BS[] = "\b";
-static const char C_HT[] = "\t";
-
-/*
- * Note that WANTED and PRESENT are not simple inverses! If a capability
- * has been explicitly cancelled, it's not considered WANTED.
- */
-#define WANTED(s) ((s) == ABSENT_STRING)
-#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING))
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed.
- */
-
-#undef CUR
-#define CUR tp->
-
-static void
-postprocess_termcap(TERMTYPE * tp, bool has_base)
-{
- char buf[MAX_LINE * 2 + 2];
- string_desc result;
-
- /*
- * TERMCAP DEFAULTS AND OBSOLETE-CAPABILITY TRANSLATIONS
- *
- * This first part of the code is the functional inverse of the
- * fragment in capdefaults.c.
- * ----------------------------------------------------------------------
- */
-
- /* if there was a tc entry, assume we picked up defaults via that */
- if (!has_base) {
- if (WANTED(init_3string) && termcap_init2)
- init_3string = _nc_save_str(termcap_init2);
-
- if (WANTED(reset_2string) && termcap_reset)
- reset_2string = _nc_save_str(termcap_reset);
-
- if (WANTED(carriage_return)) {
- if (carriage_return_delay > 0) {
- sprintf(buf, "%s$<%d>", C_CR, carriage_return_delay);
- carriage_return = _nc_save_str(buf);
- } else
- carriage_return = _nc_save_str(C_CR);
- }
- if (WANTED(cursor_left)) {
- if (backspace_delay > 0) {
- sprintf(buf, "%s$<%d>", C_BS, backspace_delay);
- cursor_left = _nc_save_str(buf);
- } else if (backspaces_with_bs == 1)
- cursor_left = _nc_save_str(C_BS);
- else if (PRESENT(backspace_if_not_bs))
- cursor_left = backspace_if_not_bs;
- }
- /* vi doesn't use "do", but it does seems to use nl (or '\n') instead */
- if (WANTED(cursor_down)) {
- if (PRESENT(linefeed_if_not_lf))
- cursor_down = linefeed_if_not_lf;
- else if (linefeed_is_newline != 1) {
- if (new_line_delay > 0) {
- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
- cursor_down = _nc_save_str(buf);
- } else
- cursor_down = _nc_save_str(C_LF);
- }
- }
- if (WANTED(scroll_forward) && crt_no_scrolling != 1) {
- if (PRESENT(linefeed_if_not_lf))
- cursor_down = linefeed_if_not_lf;
- else if (linefeed_is_newline != 1) {
- if (new_line_delay > 0) {
- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
- scroll_forward = _nc_save_str(buf);
- } else
- scroll_forward = _nc_save_str(C_LF);
- }
- }
- if (WANTED(newline)) {
- if (linefeed_is_newline == 1) {
- if (new_line_delay > 0) {
- sprintf(buf, "%s$<%d>", C_LF, new_line_delay);
- newline = _nc_save_str(buf);
- } else
- newline = _nc_save_str(C_LF);
- } 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))
- 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))
- newline = _nc_save_str(buf);
- }
- }
- }
-
- /*
- * Inverse of capdefaults.c code ends here.
- * ----------------------------------------------------------------------
- *
- * TERMCAP-TO TERMINFO MAPPINGS FOR SOURCE TRANSLATION
- *
- * These translations will *not* be inverted by tgetent().
- */
-
- if (!has_base) {
- /*
- * We wait until now to decide if we've got a working cr because even
- * one that doesn't work can be used for newline. Unfortunately the
- * space allocated for it is wasted.
- */
- if (return_does_clr_eol == 1 || no_correctly_working_cr == 1)
- carriage_return = ABSENT_STRING;
-
- /*
- * Supposedly most termcap entries have ta now and '\t' is no longer a
- * default, but it doesn't seem to be true...
- */
- if (WANTED(tab)) {
- if (horizontal_tab_delay > 0) {
- sprintf(buf, "%s$<%d>", C_HT, horizontal_tab_delay);
- tab = _nc_save_str(buf);
- } else
- tab = _nc_save_str(C_HT);
- }
- if (init_tabs == ABSENT_NUMERIC && has_hardware_tabs == TRUE)
- init_tabs = 8;
-
- /*
- * Assume we can beep with ^G unless we're given bl@.
- */
- if (WANTED(bell))
- bell = _nc_save_str("\007");
- }
-
- /*
- * Translate the old termcap :pt: capability to it#8 + ht=\t
- */
- if (has_hardware_tabs == TRUE) {
- if (init_tabs != 8 && init_tabs != ABSENT_NUMERIC)
- _nc_warning("hardware tabs with a width other than 8: %d", init_tabs);
- else {
- if (tab && _nc_capcmp(tab, C_HT))
- _nc_warning("hardware tabs with a non-^I tab string %s",
- _nc_visbuf(tab));
- else {
- if (WANTED(tab))
- tab = _nc_save_str(C_HT);
- init_tabs = 8;
- }
- }
- }
- /*
- * Now translate the ko capability, if there is one. This
- * isn't from mytinfo...
- */
- if (PRESENT(other_non_function_keys)) {
- char *base = other_non_function_keys;
- char *bp, *cp, *dp;
- struct name_table_entry const *from_ptr;
- struct name_table_entry const *to_ptr;
- assoc const *ap;
- char buf2[MAX_TERMINFO_LENGTH];
- bool foundim;
-
- /* we're going to use this for a special case later */
- dp = strchr(other_non_function_keys, 'i');
- foundim = (dp != 0) && (dp[1] == 'm');
-
- /* look at each comma-separated capability in the ko string... */
- for (base = other_non_function_keys;
- (cp = strchr(base, ',')) != 0;
- base = cp + 1) {
- size_t len = cp - base;
-
- for (ap = ko_xlate; ap->from; ap++)
- if (len == strlen(ap->from)
- && strncmp(ap->from, base, len) == 0)
- break;
- if (!ap->to) {
- _nc_warning("unknown capability `%.*s' in ko string",
- (int) len, base);
- continue;
- } else if (ap->to == CANCELLED_STRING) /* ignore it */
- continue;
-
- /* now we know we found a match in ko_table, so... */
-
- from_ptr = _nc_find_entry(ap->from, _nc_cap_hash_table);
- to_ptr = _nc_find_entry(ap->to, _nc_info_hash_table);
-
- if (!from_ptr || !to_ptr) /* should never happen! */
- _nc_err_abort("ko translation table is invalid, I give up");
-
- if (WANTED(tp->Strings[from_ptr->nte_index])) {
- _nc_warning("no value for ko capability %s", ap->from);
- continue;
- }
-
- if (tp->Strings[to_ptr->nte_index]) {
- /* There's no point in warning about it if it's the same
- * string; that's just an inefficiency.
- */
- if (strcmp(
- tp->Strings[from_ptr->nte_index],
- tp->Strings[to_ptr->nte_index]) != 0)
- _nc_warning("%s (%s) already has an explicit value %s, ignoring ko",
- ap->to, ap->from,
- _nc_visbuf(tp->Strings[to_ptr->nte_index]));
- continue;
- }
-
- /*
- * The magic moment -- copy the mapped key string over,
- * stripping out padding.
- */
- for (dp = buf2, bp = tp->Strings[from_ptr->nte_index]; *bp; bp++) {
- if (bp[0] == '$' && bp[1] == '<') {
- while (*bp && *bp != '>') {
- ++bp;
- }
- } else
- *dp++ = *bp;
- }
- *dp++ = '\0';
-
- tp->Strings[to_ptr->nte_index] = _nc_save_str(buf2);
- }
-
- /*
- * Note: ko=im and ko=ic both want to grab the `Insert'
- * keycap. There's a kich1 but no ksmir, so the ic capability
- * got mapped to kich1 and im to kIC to avoid a collision.
- * If the description has im but not ic, hack kIC back to kich1.
- */
- if (foundim && WANTED(key_ic) && key_sic) {
- key_ic = key_sic;
- key_sic = ABSENT_STRING;
- }
- }
-
- 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);
- }
- }
-
- /*
- * Translate XENIX forms characters.
- */
- if (PRESENT(acs_ulcorner) ||
- PRESENT(acs_llcorner) ||
- PRESENT(acs_urcorner) ||
- PRESENT(acs_lrcorner) ||
- PRESENT(acs_ltee) ||
- PRESENT(acs_rtee) ||
- PRESENT(acs_btee) ||
- PRESENT(acs_ttee) ||
- PRESENT(acs_hline) ||
- PRESENT(acs_vline) ||
- PRESENT(acs_plus)) {
- char buf2[MAX_TERMCAP_LENGTH];
-
- _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);
-
- if (buf2[0]) {
- acs_chars = _nc_save_str(buf2);
- _nc_warning("acsc string synthesized from XENIX capabilities");
- }
- } else if (acs_chars == 0
- && enter_alt_charset_mode != 0
- && exit_alt_charset_mode != 0) {
- acs_chars = _nc_save_str(VT_ACSC);
- }
-}
-
-static void
-postprocess_terminfo(TERMTYPE * tp)
-{
- /*
- * TERMINFO-TO-TERMINFO MAPPINGS FOR SOURCE TRANSLATION
- * ----------------------------------------------------------------------
- */
-
- /*
- * Translate AIX forms characters.
- */
- if (PRESENT(box_chars_1)) {
- char buf2[MAX_TERMCAP_LENGTH];
- string_desc result;
-
- _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 */
-
- if (buf2[0]) {
- acs_chars = _nc_save_str(buf2);
- _nc_warning("acsc string synthesized from AIX capabilities");
- box_chars_1 = ABSENT_STRING;
- }
- }
- /*
- * ----------------------------------------------------------------------
- */
-}
-
-/*
- * Do a linear search through the terminfo tables to find a given full-name.
- * We don't expect to do this often, so there's no hashing function.
- *
- * In effect, this scans through the 3 lists of full-names, and looks them
- * up in _nc_info_table, which is organized so that the nte_index fields are
- * sorted, but the nte_type fields are not necessarily grouped together.
- */
-static struct name_table_entry const *
-lookup_fullname(const char *find)
-{
- int state = -1;
-
- for (;;) {
- int count = 0;
- NCURSES_CONST char *const *names;
-
- switch (++state) {
- case BOOLEAN:
- names = boolfnames;
- break;
- case STRING:
- names = strfnames;
- break;
- case NUMBER:
- names = numfnames;
- break;
- default:
- return NOTFOUND;
- }
-
- for (count = 0; names[count] != 0; count++) {
- if (!strcmp(names[count], find)) {
- struct name_table_entry const *entry_ptr = _nc_get_table(FALSE);
- while (entry_ptr->nte_type != state
- || entry_ptr->nte_index != count)
- entry_ptr++;
- return entry_ptr;
- }
- }
- }
-}
-
-/* parse_entry.c ends here */
diff --git a/ncurses-5.3/ncurses/tinfo/read_entry.c b/ncurses-5.3/ncurses/tinfo/read_entry.c
deleted file mode 100644
index 6e55c83..0000000
--- a/ncurses-5.3/ncurses/tinfo/read_entry.c
+++ /dev/null
@@ -1,503 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * read_entry.c -- Routine for reading in a compiled terminfo file
- *
- */
-
-#include <curses.priv.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#if !HAVE_TELL
-#define tell(fd) 0 /* lseek() is POSIX, but not tell() - odd... */
-#endif
-
-/*
- * int
- * _nc_read_file_entry(filename, ptr)
- *
- * Read the compiled terminfo entry in the given file into the
- * structure pointed to by ptr, allocating space for the string
- * table.
- */
-
-#undef BYTE
-#define BYTE(p,n) (unsigned char)((p)[n])
-
-#define IS_NEG1(p) ((BYTE(p,0) == 0377) && (BYTE(p,1) == 0377))
-#define IS_NEG2(p) ((BYTE(p,0) == 0376) && (BYTE(p,1) == 0377))
-#define LOW_MSB(p) (BYTE(p,0) + 256*BYTE(p,1))
-
-static bool have_tic_directory = FALSE;
-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.
- */
-NCURSES_EXPORT(const char *)
-_nc_tic_dir(const char *path)
-{
- static const char *result = TERMINFO;
-
- if (!keep_tic_directory) {
- if (path != 0) {
- result = path;
- have_tic_directory = TRUE;
- } else if (!have_tic_directory && use_terminfo_vars()) {
- char *envp;
- if ((envp = getenv("TERMINFO")) != 0)
- return _nc_tic_dir(envp);
- }
- }
- return result;
-}
-
-/*
- * Special fix to prevent the terminfo directory from being moved after tic
- * 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.
- */
-NCURSES_EXPORT(void)
-_nc_keep_tic_dir(const char *path)
-{
- _nc_tic_dir(path);
- keep_tic_directory = TRUE;
-}
-
-static void
-convert_shorts(char *buf, short *Numbers, int count)
-{
- int i;
- for (i = 0; i < count; i++) {
- if (IS_NEG1(buf + 2 * i))
- Numbers[i] = ABSENT_NUMERIC;
- else if (IS_NEG2(buf + 2 * i))
- Numbers[i] = CANCELLED_NUMERIC;
- else
- Numbers[i] = LOW_MSB(buf + 2 * i);
- TR(TRACE_DATABASE, ("get Numbers[%d]=%d", i, Numbers[i]));
- }
-}
-
-static void
-convert_strings(char *buf, char **Strings, int count, int size, char *table)
-{
- int i;
- char *p;
-
- for (i = 0; i < count; i++) {
- if (IS_NEG1(buf + 2 * i)) {
- Strings[i] = ABSENT_STRING;
- } else if (IS_NEG2(buf + 2 * i)) {
- Strings[i] = CANCELLED_STRING;
- } else if (LOW_MSB(buf + 2 * i) > size) {
- Strings[i] = ABSENT_STRING;
- } else {
- Strings[i] = (LOW_MSB(buf + 2 * i) + table);
- TR(TRACE_DATABASE, ("Strings[%d] = %s", i, _nc_visbuf(Strings[i])));
- }
-
- /* make sure all strings are NUL terminated */
- if (VALID_STRING(Strings[i])) {
- for (p = Strings[i]; p <= table + size; p++)
- if (*p == '\0')
- break;
- /* if there is no NUL, ignore the string */
- if (p > table + size)
- Strings[i] = ABSENT_STRING;
- }
- }
-}
-
-#define read_shorts(fd, buf, count) (read(fd, buf, (count)*2) == (count)*2)
-
-#define even_boundary(value) \
- if ((value) % 2 != 0) read(fd, buf, 1)
-
-static int
-read_termtype(int fd, TERMTYPE * ptr)
-/* return 1 if read, 0 if not found or garbled */
-{
- int name_size, bool_count, num_count, str_count, str_size;
- int i;
- char buf[MAX_ENTRY_SIZE];
-
- TR(TRACE_DATABASE, ("READ termtype header @%d", tell(fd)));
-
- memset(ptr, 0, sizeof(*ptr));
-
- /* grab the header */
- if (!read_shorts(fd, buf, 6)
- || LOW_MSB(buf) != MAGIC) {
- return (0);
- }
-
- _nc_free_termtype(ptr);
- name_size = LOW_MSB(buf + 2);
- bool_count = LOW_MSB(buf + 4);
- num_count = LOW_MSB(buf + 6);
- str_count = LOW_MSB(buf + 8);
- str_size = LOW_MSB(buf + 10);
-
- TR(TRACE_DATABASE,
- ("TERMTYPE name_size=%d, bool=%d/%d, num=%d/%d str=%d/%d(%d)",
- name_size, bool_count, BOOLCOUNT, num_count, NUMCOUNT,
- str_count, STRCOUNT, str_size));
- if (name_size < 0
- || bool_count < 0
- || num_count < 0
- || str_count < 0
- || str_size < 0) {
- return (0);
- }
-
- if (str_size) {
- /* try to allocate space for the string table */
- if (str_count * 2 >= (int) sizeof(buf)
- || (ptr->str_table = typeMalloc(char, (unsigned) str_size)) == 0) {
- return (0);
- }
- } else {
- str_count = 0;
- }
-
- /* grab the name (a null-terminate string) */
- read(fd, buf, min(MAX_NAME_SIZE, (unsigned) name_size));
- buf[MAX_NAME_SIZE] = '\0';
- ptr->term_names = typeCalloc(char, strlen(buf) + 1);
- if (ptr->term_names == NULL) {
- return (0);
- }
- (void) strcpy(ptr->term_names, buf);
- if (name_size > MAX_NAME_SIZE)
- lseek(fd, (off_t) (name_size - MAX_NAME_SIZE), 1);
-
- /* grab the booleans */
- if ((ptr->Booleans = typeCalloc(char, max(BOOLCOUNT, bool_count))) == 0
- || read(fd, ptr->Booleans, (unsigned) bool_count) < bool_count) {
- return (0);
- }
-
- /*
- * If booleans end on an odd byte, skip it. The machine they
- * originally wrote terminfo on must have been a 16-bit
- * word-oriented machine that would trap out if you tried a
- * word access off a 2-byte boundary.
- */
- even_boundary(name_size + bool_count);
-
- /* grab the numbers */
- if ((ptr->Numbers = typeCalloc(short, max(NUMCOUNT, num_count))) == 0
- || !read_shorts(fd, buf, num_count)) {
- return (0);
- }
- convert_shorts(buf, ptr->Numbers, num_count);
-
- if ((ptr->Strings = typeCalloc(char *, max(STRCOUNT, str_count))) == 0)
- return (0);
-
- if (str_count) {
- /* grab the string offsets */
- if (!read_shorts(fd, buf, str_count)) {
- return (0);
- }
- /* finally, grab the string table itself */
- if (read(fd, ptr->str_table, (unsigned) str_size) != str_size)
- return (0);
- convert_strings(buf, ptr->Strings, str_count, str_size, ptr->str_table);
- }
-#if NCURSES_XNAMES
-
- ptr->num_Booleans = BOOLCOUNT;
- ptr->num_Numbers = NUMCOUNT;
- ptr->num_Strings = STRCOUNT;
-
- /*
- * Read extended entries, if any, after the normal end of terminfo data.
- */
- even_boundary(str_size);
- TR(TRACE_DATABASE, ("READ extended_header @%d", tell(fd)));
- if (_nc_user_definable && read_shorts(fd, buf, 5)) {
- int ext_bool_count = LOW_MSB(buf + 0);
- int ext_num_count = LOW_MSB(buf + 2);
- int ext_str_count = LOW_MSB(buf + 4);
- int ext_str_size = LOW_MSB(buf + 6);
- int ext_str_limit = LOW_MSB(buf + 8);
- int need = (ext_bool_count + ext_num_count + ext_str_count);
- int base = 0;
-
- if (need >= (int) sizeof(buf)
- || ext_str_size >= (int) sizeof(buf)
- || ext_str_limit >= (int) sizeof(buf)
- || ext_bool_count < 0
- || ext_num_count < 0
- || ext_str_count < 0
- || ext_str_size < 0
- || ext_str_limit < 0)
- return (0);
-
- ptr->num_Booleans = BOOLCOUNT + ext_bool_count;
- ptr->num_Numbers = NUMCOUNT + ext_num_count;
- ptr->num_Strings = STRCOUNT + ext_str_count;
-
- ptr->Booleans = typeRealloc(char, ptr->num_Booleans, ptr->Booleans);
- ptr->Numbers = typeRealloc(short, ptr->num_Numbers, ptr->Numbers);
- ptr->Strings = typeRealloc(char *, ptr->num_Strings, ptr->Strings);
-
- TR(TRACE_DATABASE, ("extended header is %d/%d/%d(%d:%d)",
- ext_bool_count, ext_num_count, ext_str_count,
- ext_str_size, ext_str_limit));
-
- TR(TRACE_DATABASE, ("READ %d extended-booleans @%d",
- ext_bool_count, tell(fd)));
- if ((ptr->ext_Booleans = ext_bool_count) != 0) {
- if (read(fd, ptr->Booleans + BOOLCOUNT, (unsigned)
- ext_bool_count) != ext_bool_count)
- return (0);
- }
- even_boundary(ext_bool_count);
-
- TR(TRACE_DATABASE, ("READ %d extended-numbers @%d",
- ext_num_count, tell(fd)));
- if ((ptr->ext_Numbers = ext_num_count) != 0) {
- if (!read_shorts(fd, buf, ext_num_count))
- return (0);
- TR(TRACE_DATABASE, ("Before converting extended-numbers"));
- convert_shorts(buf, ptr->Numbers + NUMCOUNT, ext_num_count);
- }
-
- TR(TRACE_DATABASE, ("READ extended-offsets @%d", tell(fd)));
- if ((ext_str_count || need)
- && !read_shorts(fd, buf, ext_str_count + need))
- return (0);
-
- TR(TRACE_DATABASE, ("READ %d bytes of extended-strings @%d",
- ext_str_limit, tell(fd)));
-
- if (ext_str_limit) {
- if ((ptr->ext_str_table = typeMalloc(char, ext_str_limit)) == 0)
- return (0);
- if (read(fd, ptr->ext_str_table, ext_str_limit) != ext_str_limit)
- return (0);
- TR(TRACE_DATABASE, ("first extended-string is %s", _nc_visbuf(ptr->ext_str_table)));
- }
-
- if ((ptr->ext_Strings = ext_str_count) != 0) {
- TR(TRACE_DATABASE,
- ("Before computing extended-string capabilities str_count=%d, ext_str_count=%d",
- str_count, ext_str_count));
- convert_strings(buf, ptr->Strings + str_count, ext_str_count,
- ext_str_limit, ptr->ext_str_table);
- for (i = ext_str_count - 1; i >= 0; i--) {
- TR(TRACE_DATABASE, ("MOVE from [%d:%d] %s",
- i, i + str_count,
- _nc_visbuf(ptr->Strings[i + str_count])));
- ptr->Strings[i + STRCOUNT] = ptr->Strings[i + str_count];
- if (VALID_STRING(ptr->Strings[i + STRCOUNT]))
- base += (strlen(ptr->Strings[i + STRCOUNT]) + 1);
- TR(TRACE_DATABASE, ("... to [%d] %s",
- i + STRCOUNT,
- _nc_visbuf(ptr->Strings[i + STRCOUNT])));
- }
- }
-
- if (need) {
- if ((ptr->ext_Names = typeCalloc(char *, need)) == 0)
- return (0);
- TR(TRACE_DATABASE,
- ("ext_NAMES starting @%d in extended_strings, first = %s",
- base, _nc_visbuf(ptr->ext_str_table + base)));
- convert_strings(buf + (2 * ext_str_count), ptr->ext_Names, need,
- ext_str_limit, ptr->ext_str_table + base);
- }
-
- T(("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)",
- ptr->num_Booleans, ptr->ext_Booleans,
- ptr->num_Numbers, ptr->ext_Numbers,
- ptr->num_Strings, ptr->ext_Strings));
-
- TR(TRACE_DATABASE, ("extend: num_Booleans:%d", ptr->num_Booleans));
- } else
-#endif /* NCURSES_XNAMES */
- {
- T(("...done reading terminfo bool %d num %d str %d",
- bool_count, num_count, str_count));
-#if NCURSES_XNAMES
- TR(TRACE_DATABASE, ("normal: num_Booleans:%d", ptr->num_Booleans));
-#endif
- }
-
- for (i = bool_count; i < BOOLCOUNT; i++)
- ptr->Booleans[i] = FALSE;
- for (i = num_count; i < NUMCOUNT; i++)
- ptr->Numbers[i] = ABSENT_NUMERIC;
- for (i = str_count; i < STRCOUNT; i++)
- ptr->Strings[i] = ABSENT_STRING;
-
- return (1);
-}
-
-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;
-
- if (_nc_access(filename, R_OK) < 0
- || (fd = open(filename, O_RDONLY | O_BINARY)) < 0) {
- T(("cannot open terminfo %s (errno=%d)", filename, errno));
- return (0);
- }
-
- T(("read terminfo %s", filename));
- if ((code = read_termtype(fd, ptr)) == 0)
- _nc_free_termtype(ptr);
- close(fd);
-
- return (code);
-}
-
-/*
- * Build a terminfo pathname and try to read the data. Returns 1 on success,
- * 0 on failure.
- */
-static int
-_nc_read_tic_entry(char *const filename,
- const char *const dir, const char *ttn, TERMTYPE * const tp)
-{
-/* maximum safe length of terminfo root directory name */
-#define MAX_TPATH (PATH_MAX - MAX_ALIAS - 6)
-
- if (strlen(dir) > MAX_TPATH)
- return 0;
- (void) sprintf(filename, "%s/%s", dir, ttn);
- return _nc_read_file_entry(filename, tp);
-}
-
-/*
- * Process the list of :-separated directories, looking for the terminal type.
- * We don't use strtok because it does not show us empty tokens.
- */
-static int
-_nc_read_terminfo_dirs(const char *dirs, char *const filename, const char *const
- ttn, TERMTYPE * const tp)
-{
- char *list, *a;
- const char *b;
- int code = 0;
-
- /* we'll modify the argument, so we must copy */
- if ((b = a = list = strdup(dirs)) == NULL)
- return (0);
-
- for (;;) {
- int c = *a;
- if (c == 0 || c == NCURSES_PATHSEP) {
- *a = 0;
- if ((b + 1) >= a)
- b = TERMINFO;
- if (_nc_read_tic_entry(filename, b, ttn, tp) == 1) {
- code = 1;
- break;
- }
- b = a + 1;
- if (c == 0)
- break;
- }
- a++;
- }
-
- free(list);
- return (code);
-}
-
-/*
- * _nc_read_entry(char *tn, char *filename, TERMTYPE *tp)
- *
- * Find and read the compiled entry for a given terminal type,
- * if it exists. We take pains here to make sure no combination
- * of environment variables and terminal type name can be used to
- * overrun the file buffer.
- */
-
-NCURSES_EXPORT(int)
-_nc_read_entry
-(const char *const tn, char *const filename, TERMTYPE * const tp)
-{
- char *envp;
- char ttn[MAX_ALIAS + 3];
-
- /* truncate the terminal name to prevent dangerous buffer airline */
- (void) sprintf(ttn, "%c/%.*s", *tn, MAX_ALIAS, tn);
-
- /* This is System V behavior, in conjunction with our requirements for
- * writing terminfo entries.
- */
- if (have_tic_directory
- && _nc_read_tic_entry(filename, _nc_tic_dir(0), ttn, tp) == 1)
- return 1;
-
- if (use_terminfo_vars()) {
- if ((envp = getenv("TERMINFO")) != 0
- && _nc_read_tic_entry(filename, _nc_tic_dir(envp), ttn, tp) == 1)
- return 1;
-
- /* this is an ncurses extension */
- if ((envp = _nc_home_terminfo()) != 0) {
- if (_nc_read_tic_entry(filename, envp, ttn, tp) == 1) {
- return (1);
- }
- }
-
- /* this is an ncurses extension */
- if ((envp = getenv("TERMINFO_DIRS")) != 0)
- return _nc_read_terminfo_dirs(envp, filename, ttn, tp);
- }
-
- /* Try the system directory. Note that the TERMINFO_DIRS value, if
- * defined by the configure script, begins with a ":", which will be
- * interpreted as TERMINFO.
- */
-#ifdef TERMINFO_DIRS
- return _nc_read_terminfo_dirs(TERMINFO_DIRS, filename, ttn, tp);
-#else
- return _nc_read_tic_entry(filename, TERMINFO, ttn, tp);
-#endif
-}
diff --git a/ncurses-5.3/ncurses/tinfo/read_termcap.c b/ncurses-5.3/ncurses/tinfo/read_termcap.c
deleted file mode 100644
index 40acc0c..0000000
--- a/ncurses-5.3/ncurses/tinfo/read_termcap.c
+++ /dev/null
@@ -1,1159 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * Termcap compatibility support
- *
- * If your OS integrator didn't install a terminfo database, you can call
- * _nc_read_termcap_entry() to support reading and translating capabilities
- * from the system termcap file. This is a kludge; it will bulk up and slow
- * down every program that uses ncurses, and translated termcap entries cannot
- * use full terminfo capabilities. Don't use it unless you absolutely have to;
- * instead, get your system people to run tic(1) from root on the terminfo
- * master included with ncurses to translate it into a terminfo database.
- *
- * If USE_GETCAP is enabled, we use what is effectively a copy of the 4.4BSD
- * getcap code to fetch entries. There are disadvantages to this; mainly that
- * getcap(3) does its own resolution, meaning that entries read in in this way
- * can't reference the terminfo tree. The only thing it buys is faster startup
- * time, getcap(3) is much faster than our tic parser.
- */
-
-#include <curses.priv.h>
-
-#include <ctype.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <tic.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#if !PURE_TERMINFO
-
-#ifdef __EMX__
-#define is_pathname(s) ((((s) != 0) && ((s)[0] == '/')) \
- || (((s)[0] != 0) && ((s)[1] == ':')))
-#else
-#define is_pathname(s) ((s) != 0 && (s)[0] == '/')
-#endif
-
-#define TC_SUCCESS 0
-#define TC_UNRESOLVED -1
-#define TC_NOT_FOUND -2
-#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
-#define _nc_cgetcap cgetcap
-#define _nc_cgetent(buf, oline, db_array, name) cgetent(buf, db_array, name)
-#define _nc_cgetmatch cgetmatch
-#define _nc_cgetset cgetset
-#else
-static int _nc_cgetmatch(char *, const char *);
-static int _nc_getent(char **, unsigned *, int *, int, char **, int, const char
- *, int, char *);
-static int _nc_nfcmp(const char *, char *);
-
-/*-
- * Copyright (c) 1992, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Casey Leedom of Lawrence Livermore National Laboratory.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgment:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* static char sccsid[] = "@(#)getcap.c 8.3 (Berkeley) 3/25/94"; */
-
-#define BFRAG 1024
-#define BSIZE 1024
-#define MAX_RECURSION 32 /* maximum getent recursion */
-
-static size_t topreclen; /* toprec length */
-static char *toprec; /* Additional record specified by cgetset() */
-static int gottoprec; /* Flag indicating retrieval of toprecord */
-
-/*
- * Cgetset() allows the addition of a user specified buffer to be added to the
- * database array, in effect "pushing" the buffer on top of the virtual
- * database. 0 is returned on success, -1 on failure.
- */
-static int
-_nc_cgetset(const char *ent)
-{
- if (ent == 0) {
- FreeIfNeeded(toprec);
- toprec = 0;
- topreclen = 0;
- return (0);
- }
- topreclen = strlen(ent);
- if ((toprec = typeMalloc(char, topreclen + 1)) == 0) {
- errno = ENOMEM;
- return (-1);
- }
- gottoprec = 0;
- (void) strcpy(toprec, ent);
- return (0);
-}
-
-/*
- * Cgetcap searches the capability record buf for the capability cap with type
- * `type'. A pointer to the value of cap is returned on success, 0 if the
- * requested capability couldn't be found.
- *
- * Specifying a type of ':' means that nothing should follow cap (:cap:). In
- * this case a pointer to the terminating ':' or NUL will be returned if cap is
- * found.
- *
- * If (cap, '@') or (cap, terminator, '@') is found before (cap, terminator)
- * return 0.
- */
-static char *
-_nc_cgetcap(char *buf, const char *cap, int type)
-{
- register const char *cp;
- register char *bp;
-
- bp = buf;
- for (;;) {
- /*
- * Skip past the current capability field - it's either the
- * name field if this is the first time through the loop, or
- * the remainder of a field whose name failed to match cap.
- */
- for (;;) {
- if (*bp == '\0')
- return (0);
- else if (*bp++ == ':')
- break;
- }
-
- /*
- * Try to match (cap, type) in buf.
- */
- for (cp = cap; *cp == *bp && *bp != '\0'; cp++, bp++)
- continue;
- if (*cp != '\0')
- continue;
- if (*bp == '@')
- return (0);
- if (type == ':') {
- if (*bp != '\0' && *bp != ':')
- continue;
- return (bp);
- }
- if (*bp != type)
- continue;
- bp++;
- return (*bp == '@' ? 0 : bp);
- }
- /* NOTREACHED */
-}
-
-/*
- * Cgetent extracts the capability record name from the NULL terminated file
- * array db_array and returns a pointer to a malloc'd copy of it in buf. Buf
- * must be retained through all subsequent calls to cgetcap, cgetnum, cgetflag,
- * and cgetstr, but may then be freed.
- *
- * Returns:
- *
- * positive # on success (i.e., the index in db_array)
- * TC_UNRESOLVED if we had too many recurrences to resolve
- * TC_NOT_FOUND if the requested record couldn't be found
- * TC_SYS_ERR if a system error was encountered (e.g.,couldn't open a file)
- * TC_REF_LOOP if a potential reference loop is detected
- */
-static int
-_nc_cgetent(char **buf, int *oline, char **db_array, const char *name)
-{
- unsigned dummy;
-
- return (_nc_getent(buf, &dummy, oline, 0, db_array, -1, name, 0, 0));
-}
-
-/*
- * Getent implements the functions of cgetent. If fd is non-negative,
- * *db_array has already been opened and fd is the open file descriptor. We
- * do this to save time and avoid using up file descriptors for tc=
- * recursions.
- *
- * Getent returns the same success/failure codes as cgetent. On success, a
- * pointer to a malloc'd capability record with all tc= capabilities fully
- * expanded and its length (not including trailing ASCII NUL) are left in
- * *cap and *len.
- *
- * Basic algorithm:
- * + Allocate memory incrementally as needed in chunks of size BFRAG
- * for capability buffer.
- * + Recurse for each tc=name and interpolate result. Stop when all
- * names interpolated, a name can't be found, or depth exceeds
- * MAX_RECURSION.
- */
-#define DOALLOC(size) typeRealloc(char, size, record)
-static int
-_nc_getent(
- char **cap, /* termcap-content */
- unsigned *len, /* length, needed for recursion */
- int *beginning, /* line-number at match */
- int in_array, /* index in 'db_array[] */
- char **db_array, /* list of files to search */
- int fd,
- const char *name,
- int depth,
- char *nfield)
-{
- register char *r_end, *rp;
- int myfd = FALSE;
- char *record = 0;
- int tc_not_resolved;
- int current;
- int lineno;
-
- /*
- * Return with ``loop detected'' error if we've recurred more than
- * MAX_RECURSION times.
- */
- if (depth > MAX_RECURSION)
- return (TC_REF_LOOP);
-
- /*
- * Check if we have a top record from cgetset().
- */
- if (depth == 0 && toprec != 0 && _nc_cgetmatch(toprec, name) == 0) {
- if ((record = DOALLOC(topreclen + BFRAG)) == 0) {
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- (void) strcpy(record, toprec);
- rp = record + topreclen + 1;
- r_end = rp + BFRAG;
- current = in_array;
- } else {
- int foundit;
-
- /*
- * Allocate first chunk of memory.
- */
- if ((record = DOALLOC(BFRAG)) == 0) {
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- rp = r_end = record + BFRAG;
- foundit = FALSE;
-
- /*
- * Loop through database array until finding the record.
- */
- for (current = in_array; db_array[current] != 0; current++) {
- int eof = FALSE;
-
- /*
- * Open database if not already open.
- */
- if (fd >= 0) {
- (void) lseek(fd, (off_t) 0, SEEK_SET);
- } else if ((_nc_access(db_array[current], R_OK) < 0)
- || (fd = open(db_array[current], O_RDONLY, 0)) < 0) {
- /* No error on unfound file. */
- if (errno == ENOENT)
- continue;
- free(record);
- return (TC_SYS_ERR);
- } else {
- myfd = TRUE;
- }
- lineno = 0;
-
- /*
- * Find the requested capability record ...
- */
- {
- char buf[2048];
- register char *b_end = buf;
- register char *bp = buf;
- register int c;
-
- /*
- * Loop invariants:
- * There is always room for one more character in record.
- * R_end always points just past end of record.
- * Rp always points just past last character in record.
- * B_end always points just past last character in buf.
- * Bp always points at next character in buf.
- */
-
- for (;;) {
- int first = lineno + 1;
-
- /*
- * Read in a line implementing (\, newline)
- * line continuation.
- */
- rp = record;
- for (;;) {
- if (bp >= b_end) {
- int n;
-
- n = read(fd, buf, sizeof(buf));
- if (n <= 0) {
- if (myfd)
- (void) close(fd);
- if (n < 0) {
- free(record);
- return (TC_SYS_ERR);
- }
- fd = -1;
- eof = TRUE;
- break;
- }
- b_end = buf + n;
- bp = buf;
- }
-
- c = *bp++;
- if (c == '\n') {
- lineno++;
- if (rp == record || *(rp - 1) != '\\')
- break;
- }
- *rp++ = c;
-
- /*
- * Enforce loop invariant: if no room
- * left in record buffer, try to get
- * some more.
- */
- if (rp >= r_end) {
- unsigned pos;
- size_t newsize;
-
- pos = rp - record;
- newsize = r_end - record + BFRAG;
- record = DOALLOC(newsize);
- if (record == 0) {
- if (myfd)
- (void) close(fd);
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- r_end = record + newsize;
- rp = record + pos;
- }
- }
- /* loop invariant lets us do this */
- *rp++ = '\0';
-
- /*
- * If encountered eof check next file.
- */
- if (eof)
- break;
-
- /*
- * Toss blank lines and comments.
- */
- if (*record == '\0' || *record == '#')
- continue;
-
- /*
- * See if this is the record we want ...
- */
- if (_nc_cgetmatch(record, name) == 0
- && (nfield == 0
- || !_nc_nfcmp(nfield, record))) {
- foundit = TRUE;
- *beginning = first;
- break; /* found it! */
- }
- }
- }
- if (foundit)
- break;
- }
-
- if (!foundit)
- return (TC_NOT_FOUND);
- }
-
- /*
- * Got the capability record, but now we have to expand all tc=name
- * references in it ...
- */
- {
- register char *newicap, *s;
- register int newilen;
- unsigned ilen;
- int diff, iret, tclen, oline;
- char *icap, *scan, *tc, *tcstart, *tcend;
-
- /*
- * Loop invariants:
- * There is room for one more character in record.
- * R_end points just past end of record.
- * Rp points just past last character in record.
- * Scan points at remainder of record that needs to be
- * scanned for tc=name constructs.
- */
- scan = record;
- tc_not_resolved = FALSE;
- for (;;) {
- if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0)
- break;
-
- /*
- * Find end of tc=name and stomp on the trailing `:'
- * (if present) so we can use it to call ourselves.
- */
- s = tc;
- while (*s != '\0') {
- if (*s++ == ':') {
- *(s - 1) = '\0';
- break;
- }
- }
- tcstart = tc - 3;
- tclen = s - tcstart;
- tcend = s;
-
- iret = _nc_getent(&icap, &ilen, &oline, current, db_array, fd,
- tc, depth + 1, 0);
- newicap = icap; /* Put into a register. */
- newilen = ilen;
- if (iret != TC_SUCCESS) {
- /* an error */
- if (iret < TC_NOT_FOUND) {
- if (myfd)
- (void) close(fd);
- free(record);
- return (iret);
- }
- if (iret == TC_UNRESOLVED)
- tc_not_resolved = TRUE;
- /* couldn't resolve tc */
- if (iret == TC_NOT_FOUND) {
- *(s - 1) = ':';
- scan = s - 1;
- tc_not_resolved = TRUE;
- continue;
- }
- }
-
- /* not interested in name field of tc'ed record */
- s = newicap;
- while (*s != '\0' && *s++ != ':') ;
- newilen -= s - newicap;
- newicap = s;
-
- /* make sure interpolated record is `:'-terminated */
- s += newilen;
- if (*(s - 1) != ':') {
- *s = ':'; /* overwrite NUL with : */
- newilen++;
- }
-
- /*
- * Make sure there's enough room to insert the
- * new record.
- */
- diff = newilen - tclen;
- if (diff >= r_end - rp) {
- unsigned pos, tcpos, tcposend;
- size_t newsize;
-
- pos = rp - record;
- newsize = r_end - record + diff + BFRAG;
- tcpos = tcstart - record;
- tcposend = tcend - record;
- record = DOALLOC(newsize);
- if (record == 0) {
- if (myfd)
- (void) close(fd);
- free(icap);
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- r_end = record + newsize;
- rp = record + pos;
- tcstart = record + tcpos;
- tcend = record + tcposend;
- }
-
- /*
- * Insert tc'ed record into our record.
- */
- s = tcstart + newilen;
- memmove(s, tcend, (size_t) (rp - tcend));
- memmove(tcstart, newicap, (size_t) newilen);
- rp += diff;
- free(icap);
-
- /*
- * Start scan on `:' so next cgetcap works properly
- * (cgetcap always skips first field).
- */
- scan = s - 1;
- }
- }
-
- /*
- * Close file (if we opened it), give back any extra memory, and
- * return capability, length and success.
- */
- if (myfd)
- (void) close(fd);
- *len = rp - record - 1; /* don't count NUL */
- if (r_end > rp) {
- if ((record = DOALLOC((size_t) (rp - record))) == 0) {
- errno = ENOMEM;
- return (TC_SYS_ERR);
- }
- }
-
- *cap = record;
- if (tc_not_resolved)
- return (TC_UNRESOLVED);
- return (current);
-}
-
-/*
- * Cgetmatch will return 0 if name is one of the names of the capability
- * record buf, -1 if not.
- */
-static int
-_nc_cgetmatch(char *buf, const char *name)
-{
- register const char *np;
- register char *bp;
-
- /*
- * Start search at beginning of record.
- */
- bp = buf;
- for (;;) {
- /*
- * Try to match a record name.
- */
- np = name;
- for (;;) {
- if (*np == '\0') {
- if (*bp == '|' || *bp == ':' || *bp == '\0')
- return (0);
- else
- break;
- } else if (*bp++ != *np++) {
- break;
- }
- }
-
- /*
- * Match failed, skip to next name in record.
- */
- bp--; /* a '|' or ':' may have stopped the match */
- for (;;) {
- if (*bp == '\0' || *bp == ':')
- return (-1); /* match failed totally */
- else if (*bp++ == '|')
- break; /* found next name */
- }
- }
-}
-
-/*
- * Compare name field of record.
- */
-static int
-_nc_nfcmp(const char *nf, char *rec)
-{
- char *cp, tmp;
- int ret;
-
- for (cp = rec; *cp != ':'; cp++) ;
-
- tmp = *(cp + 1);
- *(cp + 1) = '\0';
- ret = strcmp(nf, rec);
- *(cp + 1) = tmp;
-
- return (ret);
-}
-#endif /* HAVE_BSD_CGETENT */
-
-/*
- * Since ncurses provides its own 'tgetent()', we cannot use the native one.
- * So we reproduce the logic to get down to cgetent() -- or our cut-down
- * version of that -- to circumvent the problem of configuring against the
- * termcap library.
- */
-#define USE_BSD_TGETENT 1
-
-#if USE_BSD_TGETENT
-/*
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgment:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* static char sccsid[] = "@(#)termcap.c 8.1 (Berkeley) 6/4/93" */
-
-#define PBUFSIZ 512 /* max length of filename path */
-#define PVECSIZ 32 /* max number of names in path */
-#define TBUFSIZ (2048*2)
-
-static char *tbuf;
-
-/*
- * On entry, srcp points to a non ':' character which is the beginning of the
- * token, if any. We'll try to return a string that doesn't end with a ':'.
- */
-static char *
-get_tc_token(char **srcp, int *endp)
-{
- int ch;
- bool found = FALSE;
- char *s, *base;
- char *tok = 0;
-
- *endp = TRUE;
- for (s = base = *srcp; *s != '\0';) {
- ch = *s++;
- if (ch == '\\') {
- if (*s == '\0') {
- break;
- } else if (*s++ == '\n') {
- while (isspace(*s))
- s++;
- } else {
- found = TRUE;
- }
- } else if (ch == ':') {
- if (found) {
- tok = base;
- s[-1] = '\0';
- *srcp = s;
- *endp = FALSE;
- break;
- }
- base = s;
- } else if (isgraph(ch)) {
- found = TRUE;
- }
- }
-
- /* malformed entry may end without a ':' */
- if (tok == 0 && found) {
- tok = base;
- }
-
- return tok;
-}
-
-static char *
-copy_tc_token(char *dst, const char *src, size_t len)
-{
- int ch;
-
- while ((ch = *src++) != '\0') {
- if (ch == '\\' && *src == '\n') {
- while (isspace(*src))
- src++;
- continue;
- }
- if (--len == 0) {
- dst = 0;
- break;
- }
- *dst++ = ch;
- }
- return dst;
-}
-
-/*
- * Get an entry for terminal name in buffer bp from the termcap file.
- */
-static int
-_nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name)
-{
- static char *the_source;
-
- register char *p;
- register char *cp;
- char *dummy = NULL;
- char **fname;
- char *home;
- int i;
- char pathbuf[PBUFSIZ]; /* holds raw path of filenames */
- char *pathvec[PVECSIZ]; /* to point to names in pathbuf */
- char **pvec; /* holds usable tail of path vector */
- char *termpath;
- string_desc desc;
-
- fname = pathvec;
- pvec = pathvec;
- tbuf = bp;
- p = pathbuf;
- cp = use_terminfo_vars()? getenv("TERMCAP") : NULL;
-
- /*
- * TERMCAP can have one of two things in it. It can be the name of a file
- * to use instead of /etc/termcap. In this case it better start with a
- * "/". Or it can be an entry to use so we don't have to read the file.
- * In this case it has to already have the newlines crunched out. If
- * TERMCAP does not hold a file name then a path of names is searched
- * instead. The path is found in the TERMPATH variable, or becomes
- * "$HOME/.termcap /etc/termcap" if no TERMPATH exists.
- */
- _nc_str_init(&desc, pathbuf, sizeof(pathbuf));
- if (cp == NULL) {
- _nc_safe_strcpy(&desc, get_termpath());
- } else if (!is_pathname(cp)) { /* TERMCAP holds an entry */
- if ((termpath = get_termpath()) != 0) {
- _nc_safe_strcat(&desc, termpath);
- } else {
- char temp[PBUFSIZ];
- temp[0] = 0;
- if ((home = getenv("HOME")) != 0 && *home != '\0'
- && strchr(home, ' ') == 0
- && strlen(home) < sizeof(temp) - 10) { /* setup path */
- sprintf(temp, "%s/", home); /* $HOME first */
- }
- /* if no $HOME look in current directory */
- strcat(temp, ".termcap");
- _nc_safe_strcat(&desc, temp);
- _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 */
- }
-
- *fname++ = pathbuf; /* tokenize path into vector of names */
- while (*++p) {
- if (*p == ' ' || *p == NCURSES_PATHSEP) {
- *p = '\0';
- while (*++p)
- if (*p != ' ' && *p != NCURSES_PATHSEP)
- break;
- if (*p == '\0')
- break;
- *fname++ = p;
- if (fname >= pathvec + PVECSIZ) {
- fname--;
- break;
- }
- }
- }
- *fname = 0; /* mark end of vector */
- if (is_pathname(cp)) {
- if (_nc_cgetset(cp) < 0) {
- return (TC_SYS_ERR);
- }
- }
-
- i = _nc_cgetent(&dummy, lineno, pathvec, name);
-
- /* ncurses' termcap-parsing routines cannot handle multiple adjacent
- * empty fields, and mistakenly use the last valid cap entry instead of
- * the first (breaks tc= includes)
- */
- if (i >= 0) {
- char *pd, *ps, *tok;
- int endflag = FALSE;
- char *list[1023];
- size_t n, count = 0;
-
- pd = bp;
- ps = dummy;
- while (!endflag && (tok = get_tc_token(&ps, &endflag)) != 0) {
- bool ignore = FALSE;
-
- for (n = 1; n < count; n++) {
- char *s = list[n];
- if (s[0] == tok[0]
- && s[1] == tok[1]) {
- ignore = TRUE;
- break;
- }
- }
- if (ignore != TRUE) {
- list[count++] = tok;
- pd = copy_tc_token(pd, tok, TBUFSIZ - (2 + pd - bp));
- if (pd == 0) {
- i = -1;
- break;
- }
- *pd++ = ':';
- *pd = '\0';
- }
- }
- }
-
- FreeIfNeeded(dummy);
- FreeIfNeeded(the_source);
- the_source = 0;
-
- /* This is not related to the BSD cgetent(), but to fake up a suitable
- * filename for ncurses' error reporting. (If we are not using BSD
- * cgetent, then it is the actual filename).
- */
- if (i >= 0) {
- if ((the_source = strdup(pathvec[i])) != 0)
- *sourcename = the_source;
- }
-
- return (i);
-}
-#endif /* USE_BSD_TGETENT */
-#endif /* USE_GETCAP */
-
-#define MAXPATHS 32
-
-/*
- * Add a filename to the list in 'termpaths[]', checking that we really have
- * a right to open the file.
- */
-#if !USE_GETCAP
-static int
-add_tc(char *termpaths[], char *path, int count)
-{
- char *save = strchr(path, NCURSES_PATHSEP);
- if (save != 0)
- *save = '\0';
- if (count < MAXPATHS
- && _nc_access(path, R_OK) == 0) {
- termpaths[count++] = path;
- T(("Adding termpath %s", path));
- }
- 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 */
-
-NCURSES_EXPORT(int)
-_nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
-{
- int found = FALSE;
- ENTRY *ep;
-#if USE_GETCAP_CACHE
- char cwd_buf[PATH_MAX];
-#endif
-#if USE_GETCAP
- char *p, tc[TBUFSIZ];
- 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 */
- strncpy(tc, p, sizeof(tc) - 1);
- tc[sizeof(tc) - 1] = '\0';
- _nc_set_source("TERMCAP");
- } else {
- /* we're using getcap(3) */
- if (_nc_tgetent(tc, &source, &lineno, tn) < 0)
- return (ERR);
-
- _nc_curr_line = lineno;
- _nc_set_source(source);
- }
- _nc_read_entry_source((FILE *) 0, tc, FALSE, FALSE, NULLHOOK);
-#else
- /*
- * Here is what the 4.4BSD termcap(3) page prescribes:
- *
- * It will look in the environment for a TERMCAP variable. If found, and
- * the value does not begin with a slash, and the terminal type name is the
- * same as the environment string TERM, the TERMCAP string is used instead
- * of reading a termcap file. If it does begin with a slash, the string is
- * used as a path name of the termcap file to search. If TERMCAP does not
- * begin with a slash and name is different from TERM, tgetent() searches
- * the files $HOME/.termcap and /usr/share/misc/termcap, in that order,
- * unless the environment variable TERMPATH exists, in which case it
- * specifies a list of file pathnames (separated by spaces or colons) to be
- * searched instead.
- *
- * It goes on to state:
- *
- * Whenever multiple files are searched and a tc field occurs in the
- * requested entry, the entry it names must be found in the same file or
- * one of the succeeding files.
- *
- * However, this restriction is relaxed in ncurses; tc references to
- * previous files are permitted.
- *
- * This routine returns 1 if an entry is found, 0 if not found, and -1 if
- * the database is not accessible.
- */
- FILE *fp;
- char *tc, *termpaths[MAXPATHS];
- int filecount = 0;
- int j, k;
- bool use_buffer = FALSE;
- bool normal = TRUE;
- 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);
- 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);
- normal = FALSE;
- }
- }
-
- if (normal) { /* normal case */
- char envhome[PATH_MAX], *h;
-
- 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"
-
- if (use_terminfo_vars() && (h = getenv("HOME")) != NULL && *h != '\0'
- && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) {
- /* user's .termcap, if any, should override it */
- (void) strcpy(envhome, h);
- (void) sprintf(pathbuf, PRIVATE_CAP, envhome);
- ADD_TC(pathbuf, filecount);
- }
- }
-
- /*
- * 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");
-
- /*
- * We don't suppress warning messages here. The presumption is
- * that since it's just a single entry, they won't be a pain.
- */
- _nc_read_entry_source((FILE *) 0, tc_buf, FALSE, FALSE, NULLHOOK);
- } else {
- int i;
-
- for (i = 0; i < filecount; i++) {
-
- T(("Looking for %s in %s", tn, termpaths[i]));
- if (_nc_access(termpaths[i], R_OK) == 0
- && (fp = fopen(termpaths[i], "r")) != (FILE *) 0) {
- _nc_set_source(termpaths[i]);
-
- /*
- * Suppress warning messages. Otherwise you get 400 lines of
- * crap from archaic termcap files as ncurses complains about
- * all the obsolete capabilities.
- */
- _nc_read_entry_source(fp, (char *) 0, FALSE, TRUE, NULLHOOK);
-
- (void) fclose(fp);
- }
- }
- }
- if (copied != 0)
- free(copied);
-#endif /* USE_GETCAP */
-
- if (_nc_head == 0)
- return (ERR);
-
- /* resolve all use references */
- _nc_resolve_uses(TRUE);
-
- /* find a terminal matching tn, if we can */
-#if USE_GETCAP_CACHE
- if (getcwd(cwd_buf, sizeof(cwd_buf)) != 0) {
- _nc_set_writedir((char *) 0); /* note: this does a chdir */
-#endif
- for_entry_list(ep) {
- if (_nc_name_match(ep->tterm.term_names, tn, "|:")) {
- /*
- * Make a local copy of the terminal capabilities. Free all
- * entry storage except the string table for the loaded type
- * (which we disconnected from the list by NULLing out
- * ep->tterm.str_table above).
- */
- *tp = ep->tterm;
- ep->tterm.str_table = (char *) 0;
-
- /*
- * OK, now try to write the type to user's terminfo directory.
- * Next time he loads this, it will come through terminfo.
- *
- * Advantage: Second and subsequent fetches of this entry will
- * be very fast.
- *
- * Disadvantage: After the first time a termcap type is loaded
- * by its user, editing it in the /etc/termcap file, or in
- * TERMCAP, or in a local ~/.termcap, will be ineffective
- * unless the terminfo entry is explicitly removed.
- */
-#if USE_GETCAP_CACHE
- (void) _nc_write_entry(tp);
-#endif
- found = TRUE;
- break;
- }
- }
-#if USE_GETCAP_CACHE
- chdir(cwd_buf);
- }
-#endif
-
- _nc_free_entries(_nc_head);
- return (found);
-}
-#else
-extern
-NCURSES_EXPORT(void)
-_nc_read_termcap(void);
-NCURSES_EXPORT(void)
-_nc_read_termcap(void)
-{
-}
-#endif /* PURE_TERMINFO */
diff --git a/ncurses-5.3/ncurses/tinfo/setbuf.c b/ncurses-5.3/ncurses/tinfo/setbuf.c
deleted file mode 100644
index c98d176..0000000
--- a/ncurses-5.3/ncurses/tinfo/setbuf.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** setbuf.c
-**
-** Support for set_term(), reset_shell_mode(), reset_prog_mode().
-**
-*/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/*
- * If the output file descriptor is connected to a tty (the typical case) it
- * will probably be line-buffered. Keith Bostic pointed out that we don't want
- * this; it hoses people running over networks by forcing out a bunch of small
- * packets instead of one big one, so screen updates on ptys look jerky.
- * Restore block buffering to prevent this minor lossage.
- *
- * The buffer size is a compromise. Ideally we'd like a buffer that can hold
- * the maximum possible update size (the whole screen plus cup commands to
- * change lines as it's painted). On a 66-line xterm this can become
- * excessive. So we min it with the amount of data we think we can get through
- * two Ethernet packets (maximum packet size - 100 for TCP/IP overhead).
- *
- * Why two ethernet packets? It used to be one, on the theory that said
- * packets define the maximum size of atomic update. But that's less than the
- * 2000 chars on a 25 x 80 screen, and we don't want local updates to flicker
- * either. Two packet lengths will handle up to a 35 x 80 screen.
- *
- * The magic '6' is the estimated length of the end-of-line cup sequence to go
- * to the next line. It's generous. We used to mess with the buffering in
- * init_mvcur() after cost computation, but that lost the sequences emitted by
- * init_acs() in setupscreen().
- *
- * "The setvbuf function may be used only after the stream pointed to by stream
- * has been associated with an open file and before any other operation is
- * performed on the stream." (ISO 7.9.5.6.)
- *
- * Grrrr...
- *
- * On a lighter note, many implementations do in fact allow an application to
- * reset the buffering after it has been written to. We try to do this because
- * otherwise we leave stdout in buffered mode after endwin() is called. (This
- * also happens with SVr4 curses).
- *
- * There are pros/cons:
- *
- * con:
- * There is no guarantee that we can reestablish buffering once we've
- * dropped it.
- *
- * We _may_ lose data if the implementation does not coordinate this with
- * fflush.
- *
- * pro:
- * An implementation is more likely to refuse to change the buffering than
- * to do it in one of the ways mentioned above.
- *
- * The alternative is to have the application try to change buffering
- * itself, which is certainly no improvement.
- *
- * Just in case it does not work well on a particular system, the calls to
- * change buffering are all via the macro NC_BUFFERED. Some implementations
- * 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).
- */
-NCURSES_EXPORT(void)
-_nc_set_buffer(FILE * ofp, bool buffered)
-{
- /* optional optimization hack -- do before any output to ofp */
-#if HAVE_SETVBUF || HAVE_SETBUFFER
- unsigned buf_len;
- char *buf_ptr;
-
- 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! */
- }
-#if !USE_SETBUF_0
- else
- return;
-#endif
- } else {
-#if !USE_SETBUF_0
- return;
-#else
- buf_len = 0;
- buf_ptr = 0;
-#endif
- }
-
-#if HAVE_SETVBUF
-#ifdef SETVBUF_REVERSED /* pre-svr3? */
- (void) setvbuf(ofp, buf_ptr, buf_len, buf_len ? _IOFBF : _IOLBF);
-#else
- (void) setvbuf(ofp, buf_ptr, buf_len ? _IOFBF : _IOLBF, buf_len);
-#endif
-#elif HAVE_SETBUFFER
- (void) setbuffer(ofp, buf_ptr, (int) buf_len);
-#endif
-
-#endif /* HAVE_SETVBUF || HAVE_SETBUFFER */
-}
diff --git a/ncurses-5.3/ncurses/tinfo/strings.c b/ncurses-5.3/ncurses/tinfo/strings.c
deleted file mode 100644
index b188e80..0000000
--- a/ncurses-5.3/ncurses/tinfo/strings.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * 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: Thomas E. Dickey *
- ****************************************************************************/
-
-/*
-** lib_mvcur.c
-**/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-/****************************************************************************
- * Useful string functions (especially for mvcur)
- ****************************************************************************/
-
-#if !HAVE_STRSTR
-NCURSES_EXPORT(char *)
-_nc_strstr
-(const char *haystack, const char *needle)
-{
- size_t len1 = strlen(haystack);
- size_t len2 = strlen(needle);
- char *result = 0;
-
- while ((len1 != 0) && (len1-- >= len2)) {
- if (!strncmp(haystack, needle, len2)) {
- result = haystack;
- break;
- }
- haystack++;
- }
- return result;
-}
-#endif
-
-/*
- * Initialize the descriptor so we can append to it.
- */
-NCURSES_EXPORT(string_desc *)
-_nc_str_init
-(string_desc * dst, char *src, size_t len)
-{
- if (dst != 0) {
- dst->s_head = src;
- dst->s_tail = src;
- dst->s_size = len - 1;
- if (src != 0)
- *src = 0;
- }
- return dst;
-}
-
-/*
- * Initialize the descriptor for only tracking the amount of memory used.
- */
-NCURSES_EXPORT(string_desc *)
-_nc_str_null
-(string_desc * dst, size_t len)
-{
- return _nc_str_init(dst, 0, len);
-}
-
-/*
- * Copy a descriptor
- */
-NCURSES_EXPORT(string_desc *)
-_nc_str_copy
-(string_desc * dst, string_desc * src)
-{
- *dst = *src;
- return dst;
-}
-
-/*
- * Replaces strcat into a fixed buffer, returning false on failure.
- */
-NCURSES_EXPORT(bool)
-_nc_safe_strcat(string_desc * dst, const char *src)
-{
- if (src != 0) {
- size_t len = strlen(src);
-
- if (len < dst->s_size) {
- if (dst->s_tail != 0) {
- strcpy(dst->s_tail, src);
- dst->s_tail += len;
- }
- dst->s_size -= len;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*
- * Replaces strcpy into a fixed buffer, returning false on failure.
- */
-NCURSES_EXPORT(bool)
-_nc_safe_strcpy(string_desc * dst, const char *src)
-{
- if (src != 0) {
- size_t len = strlen(src);
-
- if (len < dst->s_size) {
- if (dst->s_head != 0) {
- strcpy(dst->s_head, src);
- dst->s_tail = dst->s_head + len;
- }
- dst->s_size -= len;
- return TRUE;
- }
- }
- return FALSE;
-}
diff --git a/ncurses-5.3/ncurses/tinfo/write_entry.c b/ncurses-5.3/ncurses/tinfo/write_entry.c
deleted file mode 100644
index d152c6c..0000000
--- a/ncurses-5.3/ncurses/tinfo/write_entry.c
+++ /dev/null
@@ -1,591 +0,0 @@
-/****************************************************************************
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * write_entry.c -- write a terminfo structure onto the file system
- */
-
-#include <curses.priv.h>
-
-#include <sys/stat.h>
-
-#include <tic.h>
-#include <term_entry.h>
-
-#ifndef S_ISDIR
-#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR)
-#endif
-
-#if 0
-#define TRACE_OUT(p) DEBUG(2, p)
-#else
-#define TRACE_OUT(p) /*nothing */
-#endif
-
-MODULE_ID("$Id$")
-
-static int total_written;
-
-static int write_object(FILE *, TERMTYPE *);
-
-static void
-write_file(char *filename, TERMTYPE * tp)
-{
- FILE *fp = (_nc_access(filename, W_OK) == 0) ? fopen(filename, "wb") : 0;
- if (fp == 0) {
- perror(filename);
- _nc_syserr_abort("can't open %s/%s", _nc_tic_dir(0), filename);
- }
- DEBUG(1, ("Created %s", filename));
-
- if (write_object(fp, tp) == ERR) {
- _nc_syserr_abort("error writing %s/%s", _nc_tic_dir(0), filename);
- }
- fclose(fp);
-}
-
-/*
- * make_directory(char *path)
- *
- * Make a directory if it doesn't exist.
- */
-static int
-make_directory(const char *path)
-{
- int rc;
- struct stat statbuf;
- char fullpath[PATH_MAX];
- const char *destination = _nc_tic_dir(0);
-
- if (path == destination || *path == '/') {
- if (strlen(path) + 1 > sizeof(fullpath))
- return (-1);
- (void) strcpy(fullpath, path);
- } else {
- if (strlen(destination) + strlen(path) + 2 > sizeof(fullpath))
- return (-1);
- (void) sprintf(fullpath, "%s/%s", destination, path);
- }
-
- if ((rc = stat(path, &statbuf)) < 0) {
- rc = mkdir(path, 0777);
- } else {
- if (_nc_access(path, R_OK | W_OK | X_OK) < 0) {
- rc = -1; /* permission denied */
- } else if (!(S_ISDIR(statbuf.st_mode))) {
- rc = -1; /* not a directory */
- }
- }
- return rc;
-}
-
-NCURSES_EXPORT(void)
-_nc_set_writedir(char *dir)
-/* set the write directory for compiled entries */
-{
- const char *destination;
- char actual[PATH_MAX];
-
- if (dir == 0
- && use_terminfo_vars())
- dir = getenv("TERMINFO");
-
- if (dir != 0)
- (void) _nc_tic_dir(dir);
-
- destination = _nc_tic_dir(0);
- if (make_directory(destination) < 0) {
- char *home = _nc_home_terminfo();
-
- if (home != 0) {
- destination = home;
- if (make_directory(destination) < 0)
- _nc_err_abort("%s: permission denied (errno %d)",
- destination, errno);
- }
- }
-
- /*
- * Note: because of this code, this logic should be exercised
- * *once only* per run.
- */
- if (chdir(_nc_tic_dir(destination)) < 0
- || getcwd(actual, sizeof(actual)) == 0)
- _nc_err_abort("%s: not a directory", destination);
- _nc_keep_tic_dir(strdup(actual));
-}
-
-/*
- * check_writeable(char code)
- *
- * Miscellaneous initialisations
- *
- * Check for access rights to destination directories
- * Create any directories which don't exist.
- * Note: there's no reason to return the result of make_directory(), since
- * this function is called only in instances where that has to succeed.
- *
- */
-
-static void
-check_writeable(int code)
-{
- static const char dirnames[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- static bool verified[sizeof(dirnames)];
-
- char dir[2];
- char *s = 0;
-
- if (code == 0 || (s = strchr(dirnames, code)) == 0)
- _nc_err_abort("Illegal terminfo subdirectory \"%c\"", code);
-
- if (verified[s - dirnames])
- return;
-
- dir[0] = code;
- dir[1] = '\0';
- if (make_directory(dir) < 0) {
- _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
- }
-
- verified[s - dirnames] = TRUE;
-}
-
-/*
- * _nc_write_entry()
- *
- * Save the compiled version of a description in the filesystem.
- *
- * make a copy of the name-list
- * break it up into first-name and all-but-last-name
- * creat(first-name)
- * write object information to first-name
- * close(first-name)
- * for each name in all-but-last-name
- * link to first-name
- *
- * Using 'time()' to obtain a reference for file timestamps is unreliable,
- * e.g., with NFS, because the filesystem may have a different time
- * reference. We check for pre-existence of links by latching the first
- * timestamp from a file that we create.
- *
- * The _nc_warning() calls will report a correct line number only if
- * _nc_curr_line is properly set before the write_entry() call.
- */
-
-void
-_nc_write_entry(TERMTYPE * const tp)
-{
- struct stat statbuf;
- char name_list[MAX_TERMINFO_LENGTH];
- char *first_name, *other_names;
- char *ptr;
- char filename[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 */
-
- if (call_count++ == 0) {
- start_time = 0;
- }
-
- (void) strcpy(name_list, tp->term_names);
- DEBUG(7, ("Name list = '%s'", name_list));
-
- first_name = name_list;
-
- ptr = &name_list[strlen(name_list) - 1];
- other_names = ptr + 1;
-
- while (ptr > name_list && *ptr != '|')
- ptr--;
-
- if (ptr != name_list) {
- *ptr = '\0';
-
- for (ptr = name_list; *ptr != '\0' && *ptr != '|'; ptr++)
- continue;
-
- if (*ptr == '\0')
- other_names = ptr;
- else {
- *ptr = '\0';
- other_names = ptr + 1;
- }
- }
-
- DEBUG(7, ("First name = '%s'", first_name));
- DEBUG(7, ("Other names = '%s'", other_names));
-
- _nc_set_type(first_name);
-
- if (strlen(first_name) > sizeof(filename) - 3)
- _nc_warning("terminal name too long.");
-
- sprintf(filename, "%c/%s", first_name[0], first_name);
-
- /*
- * Has this primary name been written since the first call to
- * write_entry()? If so, the newer write will step on the older,
- * so warn the user.
- */
- if (start_time > 0 &&
- stat(filename, &statbuf) >= 0
- && statbuf.st_mtime >= start_time) {
- _nc_warning("name multiply defined.");
- }
-
- check_writeable(first_name[0]);
- write_file(filename, tp);
-
- if (start_time == 0) {
- 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);
- }
- }
- while (*other_names != '\0') {
- ptr = other_names++;
- while (*other_names != '|' && *other_names != '\0')
- other_names++;
-
- if (*other_names != '\0')
- *(other_names++) = '\0';
-
- if (strlen(ptr) > sizeof(linkname) - 3) {
- _nc_warning("terminal alias %s too long.", ptr);
- continue;
- }
- if (strchr(ptr, '/') != 0) {
- _nc_warning("cannot link alias %s.", ptr);
- continue;
- }
-
- check_writeable(ptr[0]);
- sprintf(linkname, "%c/%s", ptr[0], ptr);
-
- if (strcmp(filename, linkname) == 0) {
- _nc_warning("self-synonym ignored");
- } else if (stat(linkname, &statbuf) >= 0 &&
- statbuf.st_mtime < start_time) {
- _nc_warning("alias %s multiply defined.", ptr);
- } else if (_nc_access(linkname, W_OK) == 0)
-#if HAVE_LINK
- {
- int code;
-#if USE_SYMLINKS
- strcpy(symlinkname, "../");
- strncat(symlinkname, filename, sizeof(symlinkname) - 4);
- symlinkname[sizeof(symlinkname) - 1] = '\0';
-#endif /* USE_SYMLINKS */
-#if HAVE_REMOVE
- code = remove(linkname);
-#else
- code = unlink(linkname);
-#endif
- if (code != 0 && errno == ENOENT)
- code = 0;
-#if USE_SYMLINKS
- if (symlink(symlinkname, linkname) < 0)
-#else
- if (link(filename, linkname) < 0)
-#endif /* USE_SYMLINKS */
- {
- /*
- * If there wasn't anything there, and we cannot
- * link to the target because it is the same as the
- * target, then the source must be on a filesystem
- * that uses caseless filenames, such as Win32, etc.
- */
- if (code == 0 && errno == EEXIST)
- _nc_warning("can't link %s to %s", filename, linkname);
- else if (code == 0 && (errno == EPERM || errno == ENOENT))
- write_file(linkname, tp);
- else {
-#if MIXEDCASE_FILENAMES
- _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 /* just make copies */
- write_file(linkname, tp);
-#endif /* HAVE_LINK */
- }
-}
-
-#undef LITTLE_ENDIAN /* BSD/OS defines this as a feature macro */
-#define HI(x) ((x) / 256)
-#define LO(x) ((x) % 256)
-#define LITTLE_ENDIAN(p, x) (p)[0] = LO(x), (p)[1] = HI(x)
-
-#define WRITE_STRING(str) (fwrite(str, sizeof(char), strlen(str) + 1, fp) == strlen(str) + 1)
-
-static int
-compute_offsets(char **Strings, unsigned strmax, short *offsets)
-{
- size_t nextfree = 0;
- unsigned i;
-
- for (i = 0; i < strmax; i++) {
- if (Strings[i] == ABSENT_STRING) {
- offsets[i] = -1;
- } else if (Strings[i] == CANCELLED_STRING) {
- offsets[i] = -2;
- } else {
- offsets[i] = nextfree;
- nextfree += strlen(Strings[i]) + 1;
- TRACE_OUT(("put Strings[%d]=%s(%d)", i, _nc_visbuf(Strings[i]), nextfree));
- }
- }
- return nextfree;
-}
-
-static void
-convert_shorts(unsigned char *buf, short *Numbers, unsigned count)
-{
- 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;
- } else if (Numbers[i] == CANCELLED_NUMERIC) { /* HI/LO won't work */
- buf[2 * i] = 0376;
- buf[2 * i + 1] = 0377;
- } else {
- LITTLE_ENDIAN(buf + 2 * i, Numbers[i]);
- TRACE_OUT(("put Numbers[%d]=%d", i, Numbers[i]));
- }
- }
-}
-
-#define even_boundary(value) \
- ((value) % 2 != 0 && fwrite(&zero, sizeof(char), 1, fp) != 1)
-
-static int
-write_object(FILE * fp, TERMTYPE * tp)
-{
- char *namelist;
- size_t namelen, boolmax, nummax, strmax;
- char zero = '\0';
- size_t i;
- short nextfree;
- short offsets[MAX_ENTRY_SIZE / 2];
- unsigned char buf[MAX_ENTRY_SIZE];
- unsigned last_bool = BOOLWRITE;
- unsigned last_num = NUMWRITE;
- unsigned last_str = STRWRITE;
-
-#if NCURSES_XNAMES
- /*
- * Normally we limit the list of values to exclude the "obsolete"
- * capabilities. However, if we are accepting extended names, add
- * these as well, since they are used for supporting translation
- * to/from termcap.
- */
- if (_nc_user_definable) {
- last_bool = BOOLCOUNT;
- last_num = NUMCOUNT;
- last_str = STRCOUNT;
- }
-#endif
-
- namelist = tp->term_names;
- namelen = strlen(namelist) + 1;
-
- boolmax = 0;
- for (i = 0; i < last_bool; i++) {
- if (tp->Booleans[i] == TRUE)
- boolmax = i + 1;
- }
-
- nummax = 0;
- for (i = 0; i < last_num; i++) {
- if (tp->Numbers[i] != ABSENT_NUMERIC)
- nummax = i + 1;
- }
-
- strmax = 0;
- for (i = 0; i < last_str; i++) {
- if (tp->Strings[i] != ABSENT_STRING)
- strmax = i + 1;
- }
-
- nextfree = compute_offsets(tp->Strings, strmax, offsets);
-
- /* fill in the header */
- LITTLE_ENDIAN(buf, MAGIC);
- LITTLE_ENDIAN(buf + 2, min(namelen, MAX_NAME_SIZE + 1));
- LITTLE_ENDIAN(buf + 4, boolmax);
- LITTLE_ENDIAN(buf + 6, nummax);
- LITTLE_ENDIAN(buf + 8, strmax);
- LITTLE_ENDIAN(buf + 10, nextfree);
-
- /* write out the header */
- TRACE_OUT(("Header of %s @%ld", namelist, ftell(fp)));
- if (fwrite(buf, 12, 1, fp) != 1
- || fwrite(namelist, sizeof(char), namelen, fp) != namelen)
- return (ERR);
-
- for (i = 0; i < boolmax; i++)
- if (tp->Booleans[i] == TRUE)
- buf[i] = TRUE;
- else
- buf[i] = FALSE;
- if (fwrite(buf, sizeof(char), boolmax, fp) != boolmax)
- return (ERR);
-
- if (even_boundary(namelen + boolmax))
- return (ERR);
-
- TRACE_OUT(("Numerics begin at %04lx", ftell(fp)));
-
- /* the numerics */
- convert_shorts(buf, tp->Numbers, nummax);
- if (fwrite(buf, 2, nummax, fp) != nummax)
- return (ERR);
-
- TRACE_OUT(("String offsets begin at %04lx", ftell(fp)));
-
- /* the string offsets */
- convert_shorts(buf, offsets, strmax);
- if (fwrite(buf, 2, strmax, fp) != strmax)
- return (ERR);
-
- TRACE_OUT(("String table begins at %04lx", ftell(fp)));
-
- /* the strings */
- for (i = 0; i < strmax; i++)
- if (VALID_STRING(tp->Strings[i]))
- if (!WRITE_STRING(tp->Strings[i]))
- return (ERR);
-
-#if NCURSES_XNAMES
- if (NUM_EXT_NAMES(tp)) {
- unsigned extcnt = NUM_EXT_NAMES(tp);
-
- if (even_boundary(nextfree))
- return (ERR);
-
- nextfree = compute_offsets(tp->Strings + STRCOUNT, tp->ext_Strings, offsets);
- TRACE_OUT(("after extended string capabilities, nextfree=%d", nextfree));
- nextfree += compute_offsets(tp->ext_Names, extcnt, offsets + tp->ext_Strings);
- TRACE_OUT(("after extended capnames, nextfree=%d", nextfree));
- strmax = tp->ext_Strings + extcnt;
-
- /*
- * Write the extended header
- */
- LITTLE_ENDIAN(buf + 0, tp->ext_Booleans);
- LITTLE_ENDIAN(buf + 2, tp->ext_Numbers);
- LITTLE_ENDIAN(buf + 4, tp->ext_Strings);
- LITTLE_ENDIAN(buf + 6, strmax);
- LITTLE_ENDIAN(buf + 8, nextfree);
- TRACE_OUT(("WRITE extended-header @%ld", ftell(fp)));
- if (fwrite(buf, 10, 1, fp) != 1)
- return (ERR);
-
- 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)
- return (ERR);
-
- if (even_boundary(tp->ext_Booleans))
- return (ERR);
-
- TRACE_OUT(("WRITE %d numbers @%ld", tp->ext_Numbers, ftell(fp)));
- if (tp->ext_Numbers) {
- convert_shorts(buf, tp->Numbers + NUMCOUNT, tp->ext_Numbers);
- if (fwrite(buf, 2, tp->ext_Numbers, fp) != tp->ext_Numbers)
- return (ERR);
- }
-
- /*
- * Convert the offsets for the ext_Strings and ext_Names tables,
- * in that order.
- */
- convert_shorts(buf, offsets, strmax);
- TRACE_OUT(("WRITE offsets @%ld", ftell(fp)));
- if (fwrite(buf, 2, strmax, fp) != strmax)
- return (ERR);
-
- /*
- * Write the string table after the offset tables so we do not
- * have to do anything about alignment.
- */
- 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])));
- if (!WRITE_STRING(tp->Strings[i + STRCOUNT]))
- return (ERR);
- }
- }
-
- /*
- * Write the extended names
- */
- for (i = 0; i < extcnt; i++) {
- TRACE_OUT(("WRITE ext_Names[%d]=%s", i, tp->ext_Names[i]));
- if (!WRITE_STRING(tp->ext_Names[i]))
- return (ERR);
- }
-
- }
-#endif /* NCURSES_XNAMES */
-
- total_written++;
- return (OK);
-}
-
-/*
- * Returns the total number of entries written by this process
- */
-NCURSES_EXPORT(int)
-_nc_tic_written(void)
-{
- return total_written;
-}
diff --git a/ncurses-5.3/ncurses/trace/README b/ncurses-5.3/ncurses/trace/README
deleted file mode 100644
index 8d26f1f..0000000
--- a/ncurses-5.3/ncurses/trace/README
+++ /dev/null
@@ -1,5 +0,0 @@
--- $Id$
-
-The files in this directory (trace) support both the terminfo and ncurses
-libraries. Most of the functions are linked in only when the libraries
-are compiled with TRACE defined.
diff --git a/ncurses-5.3/ncurses/trace/lib_trace.c b/ncurses-5.3/ncurses/trace/lib_trace.c
deleted file mode 100644
index 5d0482c..0000000
--- a/ncurses-5.3/ncurses/trace/lib_trace.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_trace.c - Tracing/Debugging routines
- */
-
-#include <curses.priv.h>
-#include <tic.h>
-
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
-
-#ifdef TRACE
-NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
-NCURSES_EXPORT_VAR(long) _nc_outchars = 0;
-
-static FILE *tracefp; /* default to writing to stderr */
-
-NCURSES_EXPORT(void)
-trace(const unsigned int tracelevel GCC_UNUSED)
-{
- static bool been_here = FALSE;
- static char my_name[] = "trace";
-
- if (!been_here && tracelevel) {
- been_here = TRUE;
-
- _nc_tracing = tracelevel;
- if (_nc_access(my_name, W_OK) < 0
- || (tracefp = fopen(my_name, "wb")) == 0) {
- perror("curses: Can't open 'trace' file: ");
- exit(EXIT_FAILURE);
- }
- /* Try to set line-buffered mode, or (failing that) unbuffered,
- * so that the trace-output gets flushed automatically at the
- * end of each line. This is useful in case the program dies.
- */
-#if HAVE_SETVBUF /* ANSI */
- (void) setvbuf(tracefp, (char *) 0, _IOLBF, 0);
-#elif HAVE_SETBUF /* POSIX */
- (void) setbuffer(tracefp, (char *) 0);
-#endif
- _tracef("TRACING NCURSES version %s (tracelevel=%#x)",
- curses_version(), tracelevel);
- } else if (_nc_tracing != tracelevel) {
- _nc_tracing = tracelevel;
- _tracef("tracelevel=%#x", tracelevel);
- }
-}
-
-NCURSES_EXPORT(void)
-_tracef(const char *fmt,...)
-{
- static const char Called[] = T_CALLED("");
- static const char Return[] = T_RETURN("");
- static int level;
- va_list ap;
- bool before = FALSE;
- bool after = FALSE;
- int doit = _nc_tracing;
- int save_err = errno;
-
- if (strlen(fmt) >= sizeof(Called) - 1) {
- if (!strncmp(fmt, Called, sizeof(Called) - 1)) {
- before = TRUE;
- level++;
- } else if (!strncmp(fmt, Return, sizeof(Return) - 1)) {
- after = TRUE;
- }
- if (before || after) {
- if ((level <= 1)
- || (doit & TRACE_ICALLS) != 0)
- doit &= (TRACE_CALLS | TRACE_CCALLS);
- else
- doit = 0;
- }
- }
-
- if (doit != 0) {
- if (tracefp == 0)
- tracefp = stderr;
- if (before || after) {
- int n;
- for (n = 1; n < level; n++)
- fputs("+ ", tracefp);
- }
- va_start(ap, fmt);
- vfprintf(tracefp, fmt, ap);
- fputc('\n', tracefp);
- va_end(ap);
- fflush(tracefp);
- }
-
- if (after && level)
- level--;
- 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 */
-NCURSES_EXPORT(int)
-_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 */
-NCURSES_EXPORT(char *)
-_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 */
-NCURSES_EXPORT(WINDOW *)
-_nc_retrace_win(WINDOW *code)
-{
- T((T_RETURN("%p"), code));
- return code;
-}
-#endif /* TRACE */
diff --git a/ncurses-5.3/ncurses/trace/lib_traceatr.c b/ncurses-5.3/ncurses/trace/lib_traceatr.c
deleted file mode 100644
index 1843cbd..0000000
--- a/ncurses-5.3/ncurses/trace/lib_traceatr.c
+++ /dev/null
@@ -1,301 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas Dickey 1996-2001 *
- * and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_traceatr.c - Tracing/Debugging routines (attributes)
- */
-
-#include <curses.priv.h>
-#include <term.h> /* acs_chars */
-
-MODULE_ID("$Id$")
-
-#define COLOR_OF(c) (c < 0 || c > 7 ? "default" : colors[c].name)
-
-#ifdef TRACE
-
-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);
- char *tmp = buf;
- static const struct {
- unsigned int val;
- const char *name;
- } names[] =
- {
- /* *INDENT-OFF* */
- { A_STANDOUT, "A_STANDOUT" },
- { A_UNDERLINE, "A_UNDERLINE" },
- { A_REVERSE, "A_REVERSE" },
- { A_BLINK, "A_BLINK" },
- { A_DIM, "A_DIM" },
- { A_BOLD, "A_BOLD" },
- { A_ALTCHARSET, "A_ALTCHARSET" },
- { A_INVIS, "A_INVIS" },
- { A_PROTECT, "A_PROTECT" },
- { A_CHARTEXT, "A_CHARTEXT" },
- { A_NORMAL, "A_NORMAL" },
- { A_COLOR, "A_COLOR" },
- /* *INDENT-ON* */
-
- },
- colors[] =
- {
- /* *INDENT-OFF* */
- { COLOR_BLACK, "COLOR_BLACK" },
- { COLOR_RED, "COLOR_RED" },
- { COLOR_GREEN, "COLOR_GREEN" },
- { COLOR_YELLOW, "COLOR_YELLOW" },
- { COLOR_BLUE, "COLOR_BLUE" },
- { COLOR_MAGENTA, "COLOR_MAGENTA" },
- { COLOR_CYAN, "COLOR_CYAN" },
- { COLOR_WHITE, "COLOR_WHITE" },
- /* *INDENT-ON* */
-
- };
- size_t n;
- unsigned save_nc_tracing = _nc_tracing;
- _nc_tracing = 0;
-
- strcpy(tmp++, l_brace);
-
- for (n = 0; n < SIZEOF(names); n++) {
- if ((newmode & names[n].val) != 0) {
- if (buf[1] != '\0')
- strcat(tmp, "|");
- strcat(tmp, names[n].name);
- tmp += strlen(tmp);
-
- if (names[n].val == A_COLOR) {
- short pairnum = PAIR_NUMBER(newmode);
- short fg, bg;
-
- if (pair_content(pairnum, &fg, &bg) == OK)
- (void) sprintf(tmp,
- "{%d = {%s, %s}}",
- pairnum,
- COLOR_OF(fg),
- COLOR_OF(bg)
- );
- else
- (void) sprintf(tmp, "{%d}", pairnum);
- }
- }
- }
- if (ChAttrOf(newmode) == A_NORMAL) {
- if (buf[1] != '\0')
- strcat(tmp, "|");
- strcat(tmp, "A_NORMAL");
- }
-
- _nc_tracing = save_nc_tracing;
- return (strcat(buf, r_brace));
-}
-
-NCURSES_EXPORT(char *)
-_traceattr(attr_t newmode)
-{
- return _traceattr2(0, newmode);
-}
-
-/* Trace 'int' return-values */
-NCURSES_EXPORT(attr_t)
-_nc_retrace_attr_t(attr_t code)
-{
- T((T_RETURN("%s"), _traceattr(code)));
- return code;
-}
-
-const char *
-_nc_altcharset_name(attr_t attr, chtype ch)
-{
- const char *result = 0;
-
- if (attr & A_ALTCHARSET) {
- char *cp;
- char *found = 0;
- static const struct {
- unsigned int val;
- const char *name;
- } names[] =
- {
- /* *INDENT-OFF* */
- { 'l', "ACS_ULCORNER" }, /* upper left corner */
- { 'm', "ACS_LLCORNER" }, /* lower left corner */
- { 'k', "ACS_URCORNER" }, /* upper right corner */
- { 'j', "ACS_LRCORNER" }, /* lower right corner */
- { 't', "ACS_LTEE" }, /* tee pointing right */
- { 'u', "ACS_RTEE" }, /* tee pointing left */
- { 'v', "ACS_BTEE" }, /* tee pointing up */
- { 'w', "ACS_TTEE" }, /* tee pointing down */
- { 'q', "ACS_HLINE" }, /* horizontal line */
- { 'x', "ACS_VLINE" }, /* vertical line */
- { 'n', "ACS_PLUS" }, /* large plus or crossover */
- { 'o', "ACS_S1" }, /* scan line 1 */
- { 's', "ACS_S9" }, /* scan line 9 */
- { '`', "ACS_DIAMOND" }, /* diamond */
- { 'a', "ACS_CKBOARD" }, /* checker board (stipple) */
- { 'f', "ACS_DEGREE" }, /* degree symbol */
- { 'g', "ACS_PLMINUS" }, /* plus/minus */
- { '~', "ACS_BULLET" }, /* bullet */
- { ',', "ACS_LARROW" }, /* arrow pointing left */
- { '+', "ACS_RARROW" }, /* arrow pointing right */
- { '.', "ACS_DARROW" }, /* arrow pointing down */
- { '-', "ACS_UARROW" }, /* arrow pointing up */
- { 'h', "ACS_BOARD" }, /* board of squares */
- { 'i', "ACS_LANTERN" }, /* lantern symbol */
- { '0', "ACS_BLOCK" }, /* solid square block */
- { 'p', "ACS_S3" }, /* scan line 3 */
- { 'r', "ACS_S7" }, /* scan line 7 */
- { 'y', "ACS_LEQUAL" }, /* less/equal */
- { 'z', "ACS_GEQUAL" }, /* greater/equal */
- { '{', "ACS_PI" }, /* Pi */
- { '|', "ACS_NEQUAL" }, /* not equal */
- { '}', "ACS_STERLING" }, /* UK pound sign */
- { '\0', (char *) 0 }
- /* *INDENT-OFF* */
- },
- *sp;
-
- for (cp = acs_chars; cp[0] && cp[1]; cp += 2) {
- if (ChCharOf(cp[1]) == ChCharOf(ch)) {
- found = cp;
- /* don't exit from loop - there may be redefinitions */
- }
- }
-
- if (found != 0) {
- ch = ChCharOf(*found);
- for (sp = names; sp->val; sp++)
- if (sp->val == ch) {
- result = sp->name;
- break;
- }
- }
- }
- return result;
-}
-
-NCURSES_EXPORT(char *)
-_tracechtype2(int bufnum, chtype ch)
-{
- char *buf = _nc_trace_buf(bufnum, BUFSIZ);
- const char *found;
-
- 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 (ChAttrOf(ch) != A_NORMAL)
- (void) sprintf(buf + strlen(buf), " | %s",
- _traceattr2(bufnum + 20, ChAttrOf(ch)));
-
- return (strcat(buf, r_brace));
-}
-
-NCURSES_EXPORT(char *)
-_tracechtype (chtype ch)
-{
- return _tracechtype2(0, ch);
-}
-
-/* Trace 'chtype' return-values */
-NCURSES_EXPORT(chtype)
-_nc_retrace_chtype (chtype code)
-{
- T((T_RETURN("%s"), _tracechtype(code)));
- return code;
-}
-
-#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 */
diff --git a/ncurses-5.3/ncurses/trace/lib_tracebits.c b/ncurses-5.3/ncurses/trace/lib_tracebits.c
deleted file mode 100644
index 5a6cfbf..0000000
--- a/ncurses-5.3/ncurses/trace/lib_tracebits.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h> /* cur_term */
-
-MODULE_ID("$Id$")
-
-#if SVR4_TERMIO && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-#if HAVE_SYS_TERMIO_H
-#include <sys/termio.h> /* needed for ISC */
-#endif
-
-#ifdef __EMX__
-#include <io.h>
-#endif
-
-/* may be undefined if we're using termio.h */
-#ifndef TOSTOP
-#define TOSTOP 0
-#endif
-#ifndef IEXTEN
-#define IEXTEN 0
-#endif
-
-#ifdef TRACE
-
-typedef struct {
- unsigned int val;
- const char *name;
-} BITNAMES;
-
-static void
-lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int val)
-{
- const BITNAMES *sp;
-
- (void) strcat(buf, label);
- (void) strcat(buf, ": {");
- for (sp = table; sp->name; sp++)
- if (sp->val != 0
- && (val & sp->val) == sp->val) {
- (void) strcat(buf, sp->name);
- (void) strcat(buf, ", ");
- }
- if (buf[strlen(buf) - 2] == ',')
- buf[strlen(buf) - 2] = '\0';
- (void) strcat(buf, "} ");
-}
-
-NCURSES_EXPORT(char *)
-_nc_trace_ttymode(TTY * tty)
-/* describe the state of the terminal control bits exactly */
-{
- char *buf;
-
-#ifdef TERMIOS
- static const BITNAMES iflags[] =
- {
- {BRKINT, "BRKINT"},
- {IGNBRK, "IGNBRK"},
- {IGNPAR, "IGNPAR"},
- {PARMRK, "PARMRK"},
- {INPCK, "INPCK"},
- {ISTRIP, "ISTRIP"},
- {INLCR, "INLCR"},
- {IGNCR, "IGNC"},
- {ICRNL, "ICRNL"},
- {IXON, "IXON"},
- {IXOFF, "IXOFF"},
- {0, NULL}
-#define ALLIN (BRKINT|IGNBRK|IGNPAR|PARMRK|INPCK|ISTRIP|INLCR|IGNCR|ICRNL|IXON|IXOFF)
- }, oflags[] =
- {
- {OPOST, "OPOST"},
- {0, NULL}
-#define ALLOUT (OPOST)
- }, cflags[] =
- {
- {CLOCAL, "CLOCAL"},
- {CREAD, "CREAD"},
- {CSTOPB, "CSTOPB"},
-#if !defined(CS5) || !defined(CS8)
- {CSIZE, "CSIZE"},
-#endif
- {HUPCL, "HUPCL"},
- {PARENB, "PARENB"},
- {PARODD | PARENB, "PARODD"}, /* concession to readability */
- {0, NULL}
-#define ALLCTRL (CLOCAL|CREAD|CSIZE|CSTOPB|HUPCL|PARENB|PARODD)
- }, lflags[] =
- {
- {ECHO, "ECHO"},
- {ECHOE | ECHO, "ECHOE"}, /* concession to readability */
- {ECHOK | ECHO, "ECHOK"}, /* concession to readability */
- {ECHONL, "ECHONL"},
- {ICANON, "ICANON"},
- {ISIG, "ISIG"},
- {NOFLSH, "NOFLSH"},
- {TOSTOP, "TOSTOP"},
- {IEXTEN, "IEXTEN"},
- {0, NULL}
-#define ALLLOCAL (ECHO|ECHONL|ICANON|ISIG|NOFLSH|TOSTOP|IEXTEN)
- };
-
- buf = _nc_trace_buf(0,
- 8 + sizeof(iflags) +
- 8 + sizeof(oflags) +
- 8 + sizeof(cflags) +
- 8 + sizeof(lflags) +
- 8);
-
- if (tty->c_iflag & ALLIN)
- lookup_bits(buf, iflags, "iflags", tty->c_iflag);
-
- if (tty->c_oflag & ALLOUT)
- lookup_bits(buf, oflags, "oflags", tty->c_oflag);
-
- if (tty->c_cflag & ALLCTRL)
- lookup_bits(buf, cflags, "cflags", tty->c_cflag);
-
-#if defined(CS5) && defined(CS8)
- {
- static struct {
- const char *name;
- int value;
- } csizes[] = {
- {
- "CS5 ", CS5
- },
-#ifdef CS6
- {
- "CS6 ", CS6
- },
-#endif
-#ifdef CS7
- {
- "CS7 ", CS7
- },
-#endif
- {
- "CS8 ", CS8
- },
- };
- const char *result = "CSIZE? ";
- int value = (tty->c_cflag & CSIZE);
- unsigned n;
-
- if (value != 0) {
- for (n = 0; n < SIZEOF(csizes); n++) {
- if (csizes[n].value == value) {
- result = csizes[n].name;
- break;
- }
- }
- }
- strcat(buf, result);
- }
-#endif
-
- if (tty->c_lflag & ALLLOCAL)
- lookup_bits(buf, lflags, "lflags", tty->c_lflag);
-
-#else
- /* reference: ttcompat(4M) on SunOS 4.1 */
-#ifndef EVENP
-#define EVENP 0
-#endif
-#ifndef LCASE
-#define LCASE 0
-#endif
-#ifndef LLITOUT
-#define LLITOUT 0
-#endif
-#ifndef ODDP
-#define ODDP 0
-#endif
-#ifndef TANDEM
-#define TANDEM 0
-#endif
-
- static const BITNAMES cflags[] =
- {
- {CBREAK, "CBREAK"},
- {CRMOD, "CRMOD"},
- {ECHO, "ECHO"},
- {EVENP, "EVENP"},
- {LCASE, "LCASE"},
- {LLITOUT, "LLITOUT"},
- {ODDP, "ODDP"},
- {RAW, "RAW"},
- {TANDEM, "TANDEM"},
- {XTABS, "XTABS"},
- {0, NULL}
-#define ALLCTRL (CBREAK|CRMOD|ECHO|EVENP|LCASE|LLITOUT|ODDP|RAW|TANDEM|XTABS)
- };
-
- buf = _nc_trace_buf(0,
- 8 + sizeof(cflags));
-
- if (tty->sg_flags & ALLCTRL) {
- lookup_bits(buf, cflags, "cflags", tty->sg_flags);
- }
-#endif
- return (buf);
-}
-
-NCURSES_EXPORT(char *)
-_nc_tracebits(void)
-{
- return _nc_trace_ttymode(&(cur_term->Nttyb));
-}
-#else
-empty_module(_nc_tracebits)
-#endif /* TRACE */
diff --git a/ncurses-5.3/ncurses/trace/lib_tracechr.c b/ncurses-5.3/ncurses/trace/lib_tracechr.c
deleted file mode 100644
index b00282c..0000000
--- a/ncurses-5.3/ncurses/trace/lib_tracechr.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_tracechr.c - Tracing/Debugging routines
- */
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-NCURSES_EXPORT(char *)
-_tracechar(int ch)
-{
- static char crep[40];
- (void) sprintf(crep, "'%.30s' = %#03o",
- ((ch > KEY_MIN || ch < 0)
- ? keyname(ch)
- : unctrl(ch)),
- ch);
- return (crep);
-}
-#else
-empty_module(_nc_lib_tracechr)
-#endif
diff --git a/ncurses-5.3/ncurses/trace/lib_tracedmp.c b/ncurses-5.3/ncurses/trace/lib_tracedmp.c
deleted file mode 100644
index c490c67..0000000
--- a/ncurses-5.3/ncurses/trace/lib_tracedmp.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1996-2001 *
- * and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_tracedmp.c - Tracing/Debugging routines
- */
-
-#include <curses.priv.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-NCURSES_EXPORT(void)
-_tracedump(const char *name, WINDOW *win)
-{
- static char *buf = 0;
- static size_t used = 0;
-
- int i, j, n, width;
-
- /* compute narrowest possible display width */
- for (width = i = 0; i <= win->_maxy; ++i) {
- n = 0;
- 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)
- width = n;
- }
- if (width < win->_maxx)
- ++width;
- if (++width + 1 > (int) used) {
- used = 2 * (width + 1);
- buf = typeRealloc(char, used, buf);
- }
-
- for (n = 0; n <= win->_maxy; ++n) {
- char *ep = buf;
- bool haveattrs, havecolors;
-
- /*
- * 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,
- win->_line[n].lastchar,
- ep);
-
- /* dump A_COLOR part, will screw up if there are more than 96 */
- havecolors = FALSE;
- for (j = 0; j < width; ++j)
- if (AttrOf(win->_line[n].text[j]) & A_COLOR) {
- havecolors = TRUE;
- break;
- }
- if (havecolors) {
- ep = buf;
- for (j = 0; j < width; ++j)
- ep[j] = UChar(AttrOf(win->_line[n].text[j]) >>
- NCURSES_ATTR_SHIFT) + ' ';
- 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";
- attr_t mask = (0xf << ((i + 4) * 4));
-
- haveattrs = FALSE;
- for (j = 0; j < width; ++j)
- if (AttrOf(win->_line[n].text[j]) & mask) {
- haveattrs = TRUE;
- break;
- }
- 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
-empty_module(_nc_lib_tracedmp)
-#endif /* TRACE */
diff --git a/ncurses-5.3/ncurses/trace/lib_tracemse.c b/ncurses-5.3/ncurses/trace/lib_tracemse.c
deleted file mode 100644
index 2ca4866..0000000
--- a/ncurses-5.3/ncurses/trace/lib_tracemse.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * lib_tracemse.c - Tracing/Debugging routines (mouse events)
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-
-NCURSES_EXPORT(char *)
-_tracemouse(MEVENT const *ep)
-{
- 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);
-
-#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
-
- if (buf[strlen(buf) - 1] == ' ')
- buf[strlen(buf) - 2] = '\0';
- (void) strcat(buf, "}");
- return (buf);
-}
-
-#else /* !TRACE */
-empty_module(_nc_lib_tracemouse)
-#endif
diff --git a/ncurses-5.3/ncurses/trace/trace_buf.c b/ncurses-5.3/ncurses/trace/trace_buf.c
deleted file mode 100644
index 4390fc5..0000000
--- a/ncurses-5.3/ncurses/trace/trace_buf.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997 *
- ****************************************************************************/
-/*
- * trace_buf.c - Tracing/Debugging buffers (attributes)
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-typedef struct {
- char *text;
- size_t size;
-} LIST;
-
-NCURSES_EXPORT(char *)
-_nc_trace_buf(int bufnum, size_t want)
-{
- char *result = 0;
- static LIST *list;
- static size_t have;
-
- 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
- || want > list[bufnum].size) {
- if ((list[bufnum].text = typeRealloc(char, want, list[bufnum].text))
- != 0)
- list[bufnum].size = want;
- }
-
- if (list[bufnum].text != 0)
- *(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;
-}
diff --git a/ncurses-5.3/ncurses/trace/trace_tries.c b/ncurses-5.3/ncurses/trace/trace_tries.c
deleted file mode 100644
index 114633b..0000000
--- a/ncurses-5.3/ncurses/trace/trace_tries.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999 *
- ****************************************************************************/
-/*
- * trace_tries.c - Tracing/Debugging buffers (keycode tries-trees)
- */
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-static unsigned char *buffer;
-static unsigned len;
-
-static void
-recur_tries(struct tries *tree, unsigned level)
-{
- 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;
- }
-}
-
-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);
-}
-
-#else
-empty_module(_nc_trace_tries)
-#endif
diff --git a/ncurses-5.3/ncurses/trace/trace_xnames.c b/ncurses-5.3/ncurses/trace/trace_xnames.c
deleted file mode 100644
index 2b9d5c9..0000000
--- a/ncurses-5.3/ncurses/trace/trace_xnames.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1999 *
- ****************************************************************************/
-/*
- * trace_xnames.c - Tracing/Debugging buffers (TERMTYPE extended names)
- */
-
-#include <curses.priv.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(void)
-_nc_trace_xnames(TERMTYPE * tp GCC_UNUSED)
-{
-#ifdef TRACE
-#if NCURSES_XNAMES
- int limit = tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings;
- int n, m;
- if (limit) {
- int begin_num = tp->ext_Booleans;
- int begin_str = tp->ext_Booleans + tp->ext_Numbers;
-
- _tracef("extended names (%s) %d = %d+%d+%d of %d+%d+%d",
- tp->term_names,
- limit,
- tp->ext_Booleans, tp->ext_Numbers, tp->ext_Strings,
- tp->num_Booleans, tp->num_Numbers, tp->num_Strings);
- 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]));
- } 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]);
- } else {
- _tracef("[%d] %s = %d (bool)", n,
- tp->ext_Names[n],
- tp->Booleans[tp->num_Booleans + n - tp->ext_Booleans]);
- }
- }
- }
-#endif
-#endif
-}
diff --git a/ncurses-5.3/ncurses/trace/varargs.c b/ncurses-5.3/ncurses/trace/varargs.c
deleted file mode 100644
index 88efc25..0000000
--- a/ncurses-5.3/ncurses/trace/varargs.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/****************************************************************************
- * 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$")
-
-#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-5.3/ncurses/trace/visbuf.c b/ncurses-5.3/ncurses/trace/visbuf.c
deleted file mode 100644
index f56c396..0000000
--- a/ncurses-5.3/ncurses/trace/visbuf.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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 */
diff --git a/ncurses-5.3/ncurses/tty/MKexpanded.sh b/ncurses-5.3/ncurses/tty/MKexpanded.sh
deleted file mode 100755
index b3d57c3..0000000
--- a/ncurses-5.3/ncurses/tty/MKexpanded.sh
+++ /dev/null
@@ -1,99 +0,0 @@
-#! /bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997
-#
-# $Id$
-#
-# Script to generate 'expanded.c', a dummy source that contains functions
-# corresponding to complex macros used in this library. By making functions,
-# we simplify analysis and debugging.
-
-if test $# != 0; then
-preprocessor="$1"
-else
-preprocessor="cc -E"
-fi
-shift
-if test $# != 0 ; then
- preprocessor="$preprocessor $*"
-else
- preprocessor="$preprocessor -DHAVE_CONFIG_H -I. -I../include"
-fi
-
-TMP=gen$$.c
-trap "rm -f $TMP" 0 1 2 5 15
-
-cat <<EOF
-/* generated by MKexpanded.sh */
-#include <curses.priv.h>
-#include <term.h>
-#if NCURSES_EXPANDED
-EOF
-
-cat >$TMP <<EOF
-#include <ncurses_cfg.h>
-#undef NCURSES_EXPANDED /* this probably is set in ncurses_cfg.h */
-#include <curses.priv.h>
-/* these are names we'd like to see */
-#undef ALL_BUT_COLOR
-#undef PAIR_NUMBER
-#undef TRUE
-#undef FALSE
-/* this is a marker */
-IGNORE
-NCURSES_EXPORT(void) _nc_toggle_attr_on (attr_t *S, attr_t at)
-{
- toggle_attr_on(*S,at);
-}
-NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *S, attr_t at)
-{
- toggle_attr_off(*S,at);
-}
-NCURSES_EXPORT(int) _nc_DelCharCost (int count)
-{
- return DelCharCost(count);
-}
-NCURSES_EXPORT(int) _nc_InsCharCost (int count)
-{
- return InsCharCost(count);
-}
-NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype c)
-{
- UpdateAttrs(c);
-}
-EOF
-
-$preprocessor $TMP 2>/dev/null | sed -e '1,/^IGNORE$/d'
-
-cat <<EOF
-#else /* ! NCURSES_EXPANDED */
-NCURSES_EXPORT(void) _nc_expanded (void) { }
-#endif /* NCURSES_EXPANDED */
-EOF
diff --git a/ncurses-5.3/ncurses/tty/hardscroll.c b/ncurses-5.3/ncurses/tty/hardscroll.c
deleted file mode 100644
index c105cb2..0000000
--- a/ncurses-5.3/ncurses/tty/hardscroll.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/******************************************************************************
-
-NAME
- hardscroll.c -- hardware-scrolling optimization for ncurses
-
-SYNOPSIS
- void _nc_scroll_optimize(void)
-
-DESCRIPTION
- OVERVIEW
-
-This algorithm for computes optimum hardware scrolling to transform an
-old screen (curscr) into a new screen (newscr) via vertical line moves.
-
-Because the screen has a `grain' (there are insert/delete/scroll line
-operations but no insert/delete/scroll column operations), it is efficient
-break the update algorithm into two pieces: a first stage that does only line
-moves, optimizing the end product of user-invoked insertions, deletions, and
-scrolls; and a second phase (corresponding to the present doupdate code in
-ncurses) that does only line transformations.
-
-The common case we want hardware scrolling for is to handle line insertions
-and deletions in screen-oriented text-editors. This two-stage approach will
-accomplish that at a low computation and code-size cost.
-
- LINE-MOVE COMPUTATION
-
-Now, to a discussion of the line-move computation.
-
-For expository purposes, consider the screen lines to be represented by
-integers 0..23 (with the understanding that the value of 23 may vary).
-Let a new line introduced by insertion, scrolling, or at the bottom of
-the screen following a line delete be given the index -1.
-
-Assume that the real screen starts with lines 0..23. Now, we have
-the following possible line-oriented operations on the screen:
-
-Insertion: inserts a line at a given screen row, forcing all lines below
-to scroll forward. The last screen line is lost. For example, an insertion
-at line 5 would produce: 0..4 -1 5..23.
-
-Deletion: deletes a line at a given screen row, forcing all lines below
-to scroll forward. The last screen line is made new. For example, a deletion
-at line 7 would produce: 0..6 8..23 -1.
-
-Scroll up: move a range of lines up 1. The bottom line of the range
-becomes new. For example, scrolling up the region from 9 to 14 will
-produce 0..8 10..14 -1 15..23.
-
-Scroll down: move a range of lines down 1. The top line of the range
-becomes new. For example, scrolling down the region from 12 to 16 will produce
-0..11 -1 12..15 17..23.
-
-Now, an obvious property of all these operations is that they preserve the
-order of old lines, though not their position in the sequence.
-
-The key trick of this algorithm is that the original line indices described
-above are actually maintained as _line[].oldindex fields in the window
-structure, and stick to each line through scroll and insert/delete operations.
-
-Thus, it is possible at update time to look at the oldnum fields and compute
-an optimal set of il/dl/scroll operations that will take the real screen
-lines to the virtual screen lines. Once these vertical moves have been done,
-we can hand off to the second stage of the update algorithm, which does line
-transformations.
-
-Note that the move computation does not need to have the full generality
-of a diff algorithm (which it superficially resembles) because lines cannot
-be moved out of order.
-
- THE ALGORITHM
-
-The scrolling is done in two passes. The first pass is from top to bottom
-scroling hunks UP. The second one is from bottom to top scrolling hunks DOWN.
-Obviously enough, no lines to be scrolled will be destroyed. (lav)
-
-HOW TO TEST THIS:
-
-Use the following production:
-
-hardscroll: hardscroll.c
- $(CC) -g -DSCROLLDEBUG hardscroll.c -o hardscroll
-
-Then just type scramble vectors and watch. The following test loads are
-a representative sample of cases:
-
------------------------------ CUT HERE ------------------------------------
-# No lines moved
- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
-#
-# A scroll up
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 -1
-#
-# A scroll down
--1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
-#
-# An insertion (after line 12)
- 0 1 2 3 4 5 6 7 8 9 10 11 12 -1 13 14 15 16 17 18 19 20 21 22
-#
-# A simple deletion (line 10)
- 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 -1
-#
-# A more complex case
--1 -1 -1 -1 -1 3 4 5 6 7 -1 -1 8 9 10 11 12 13 14 15 16 17 -1 -1
------------------------------ CUT HERE ------------------------------------
-
-AUTHOR
- Eric S. Raymond <esr@snark.thyrsus.com>, November 1994
- New algorithm by Alexander V. Lukyanov <lav@yars.free.net>, Aug 1997
-
-*****************************************************************************/
-
-#include <curses.priv.h>
-
-MODULE_ID("$Id$")
-
-#if defined(SCROLLDEBUG) || defined(HASHDEBUG)
-
-# undef screen_lines
-# define screen_lines MAXLINES
-NCURSES_EXPORT_VAR(int)
-oldnums[MAXLINES];
-# define OLDNUM(n) oldnums[n]
-# define _tracef printf
-# undef TR
-# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
-
-#else /* no debug */
-
-/* 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
- static int oldnums_allocated = 0;
-# define oldnums _nc_oldnums
-# define OLDNUM(n) oldnums[n]
-# else /* !USE_HASHMAP */
-# define OLDNUM(n) newscr->_line[n].oldindex
-# endif /* !USE_HASHMAP */
-
-#endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */
-
-NCURSES_EXPORT(void)
-_nc_scroll_optimize(void)
-/* scroll optimization to transform curscr to newscr */
-{
- int i;
- int start, end, shift;
-
- TR(TRACE_ICALLS, ("_nc_scroll_optimize() begins"));
-
-#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
-#if USE_HASHMAP
- /* get enough storage */
- if (oldnums_allocated < screen_lines) {
- int *new_oldnums = typeRealloc(int, screen_lines, oldnums);
- if (!new_oldnums)
- return;
- oldnums = new_oldnums;
- oldnums_allocated = screen_lines;
- }
- /* calculate the indices */
- _nc_hash_map();
-#endif
-#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
-
-#ifdef TRACE
- if (_nc_tracing & (TRACE_UPDATE | TRACE_MOVE))
- _nc_linedump();
-#endif /* TRACE */
-
- /* pass 1 - from top to bottom scrolling up */
- for (i = 0; i < screen_lines;) {
- while (i < screen_lines && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) <= i))
- i++;
- if (i >= screen_lines)
- break;
-
- shift = OLDNUM(i) - i; /* shift > 0 */
- start = i;
-
- i++;
- while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i
- == shift)
- i++;
- end = i - 1 + shift;
-
- 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) {
- TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
- continue;
- }
-#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
- }
-
- /* pass 2 - from bottom to top scrolling down */
- for (i = screen_lines - 1; i >= 0;) {
- while (i >= 0 && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) >= i))
- i--;
- if (i < 0)
- break;
-
- shift = OLDNUM(i) - i; /* shift < 0 */
- end = i;
-
- i--;
- while (i >= 0 && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
- i--;
- start = i + 1 - (-shift);
-
- 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) {
- TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
- continue;
- }
-#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
- }
-}
-
-#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
-NCURSES_EXPORT(void)
-_nc_linedump(void)
-/* 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;
-
- if (have < want)
- buf = typeMalloc(char, have = want);
-
- (void) strcpy(buf, "virt");
- for (n = 0; n < screen_lines; n++)
- (void) sprintf(buf + strlen(buf), " %02d", OLDNUM(n));
- TR(TRACE_UPDATE | TRACE_MOVE, (buf));
-#if NO_LEAKS
- free(buf);
- have = 0;
-#endif
-}
-#endif /* defined(TRACE) || defined(SCROLLDEBUG) */
-
-#ifdef SCROLLDEBUG
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- char line[BUFSIZ], *st;
-
-#ifdef TRACE
- _nc_tracing = TRACE_MOVE;
-#endif
- for (;;) {
- int n;
-
- for (n = 0; n < screen_lines; n++)
- oldnums[n] = _NEWINDEX;
-
- /* grab the test vector */
- if (fgets(line, sizeof(line), stdin) == (char *) NULL)
- exit(EXIT_SUCCESS);
-
- /* parse it */
- n = 0;
- if (line[0] == '#') {
- (void) fputs(line, stderr);
- continue;
- }
- st = strtok(line, " ");
- do {
- oldnums[n++] = atoi(st);
- } while
- ((st = strtok((char *) NULL, " ")) != 0);
-
- /* display it */
- (void) fputs("Initial input:\n", stderr);
- _nc_linedump();
-
- _nc_scroll_optimize();
- }
-}
-
-#endif /* SCROLLDEBUG */
-
-/* hardscroll.c ends here */
diff --git a/ncurses-5.3/ncurses/tty/hashmap.c b/ncurses-5.3/ncurses/tty/hashmap.c
deleted file mode 100644
index e8edae3..0000000
--- a/ncurses-5.3/ncurses/tty/hashmap.c
+++ /dev/null
@@ -1,538 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/******************************************************************************
-
-NAME
- hashmap.c -- fill in scramble vector based on text hashes
-
-SYNOPSIS
- void _nc_hash_map(void)
-
-DESCRIPTION:
- This code attempts to recognize pairs of old and new lines in the physical
-and virtual screens. When a line pair is recognized, the old line index is
-placed in the oldindex member of the virtual screen line, to be used by the
-vertical-motion optimizer portion of the update logic (see hardscroll.c).
-
- Line pairs are recognized by applying a modified Heckel's algorithm,
-sped up by hashing. If a line hash is unique in both screens, those
-lines must be a pair. Then if the lines just before or after the pair
-are the same or similar, they are a pair too.
-
- We don't worry about false pairs produced by hash collisions, on the
-assumption that such cases are rare and will only make the latter stages
-of update less efficient, not introduce errors.
-
-HOW TO TEST THIS:
-
-Use the following production:
-
-hashmap: hashmap.c
- $(CC) -g -DHASHDEBUG hashmap.c hardscroll.c ../objects/lib_trace.o -o hashmap
-
-AUTHOR
- Eric S. Raymond <esr@snark.thyrsus.com>, May 1996
- Bug fixes and improvements by Alexander V. Lukyanov <lav@yars.free.net>, 1997
-
-*****************************************************************************/
-
-#include <curses.priv.h>
-#include <term.h> /* for back_color_erase */
-
-MODULE_ID("$Id$")
-
-#ifdef HASHDEBUG
-
-# define _tracef printf
-# undef TR
-# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
-# undef screen_lines
-# define screen_lines MAXLINES
-# define TEXTWIDTH 1
-int oldnums[MAXLINES], reallines[MAXLINES];
-static chtype oldtext[MAXLINES][TEXTWIDTH], newtext[MAXLINES][TEXTWIDTH];
-# define OLDNUM(n) oldnums[n]
-# define OLDTEXT(n) oldtext[n]
-# define NEWTEXT(m) newtext[m]
-# define PENDING(n) 1
-
-#else /* !HASHDEBUG */
-
-# define OLDNUM(n) _nc_oldnums[n]
-# define OLDTEXT(n) curscr->_line[n].text
-# define NEWTEXT(m) newscr->_line[m].text
-# define TEXTWIDTH (curscr->_maxx+1)
-# define PENDING(n) (newscr->_line[n].firstchar != _NOCHANGE)
-
-#endif /* !HASHDEBUG */
-
-#define oldhash (SP->oldhash)
-#define newhash (SP->newhash)
-#define hashtab (SP->hashtab)
-#define lines_alloc (SP->hashtab_len)
-
-#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;
- NCURSES_CH_T ch;
- unsigned long result = 0;
- for (i = TEXTWIDTH; i > 0; i--) {
- ch = *text++;
- result += (result << 5) + HASH_VAL(ch);
- }
- return result;
-}
-
-/* approximate update cost */
-static int
-update_cost(NCURSES_CH_T * from, NCURSES_CH_T * to)
-{
- int cost = 0;
- int i;
-
- for (i = TEXTWIDTH; i > 0; i--)
- if (!(CharEq(*from++, *to++)))
- cost++;
-
- return cost;
-}
-
-static int
-update_cost_from_blank(NCURSES_CH_T * to)
-{
- int cost = 0;
- int i;
- NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
-
- if (back_color_erase)
- AddAttr(blank, (AttrOf(stdscr->_nc_bkgd) & A_COLOR));
-
- for (i = TEXTWIDTH; i > 0; i--)
- if (!(CharEq(blank, *to++)))
- cost++;
-
- return cost;
-}
-
-/*
- * 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)
-{
- int new_from;
-
- if (from == to)
- return FALSE;
-
- new_from = OLDNUM(from);
- if (new_from == _NEWINDEX)
- new_from = from;
-
- /*
- * On the left side of >= is the cost before moving;
- * 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;
-}
-
-static void
-grow_hunks(void)
-{
- 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 i;
- int next_hunk;
-
- /*
- * This is tricky part. We have unique pairs to use as anchors.
- * Use these to deduce the presence of spans of identical lines.
- */
- back_limit = 0;
- back_ref_limit = 0;
-
- i = 0;
- while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
- i++;
- for (; i < screen_lines; i = next_hunk) {
- start = i;
- shift = OLDNUM(i) - i;
-
- /* get forward limit */
- 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++;
- next_hunk = i;
- forward_limit = i;
- if (i >= screen_lines || OLDNUM(i) >= i)
- forward_ref_limit = i;
- else
- forward_ref_limit = OLDNUM(i);
-
- i = start - 1;
- /* 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;
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("connected new line %d to old line %d (backward continuation)",
- i, i + shift));
- } else {
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("not connecting new line %d to old line %d (backward continuation)",
- i, i + shift));
- break;
- }
- i--;
- }
-
- i = end;
- /* 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;
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("connected new line %d to old line %d (forward continuation)",
- i, i + shift));
- } else {
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("not connecting new line %d to old line %d (forward continuation)",
- i, i + shift));
- break;
- }
- i++;
- }
-
- back_ref_limit = back_limit = i;
- if (shift > 0)
- back_ref_limit += shift;
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_hash_map(void)
-{
- HASHMAP *sp;
- register int i;
- int start, shift, size;
-
- if (screen_lines > lines_alloc) {
- if (hashtab)
- free(hashtab);
- hashtab = typeMalloc(HASHMAP, (screen_lines + 1) * 2);
- if (!hashtab) {
- if (oldhash) {
- FreeAndNull(oldhash);
- }
- lines_alloc = 0;
- return;
- }
- lines_alloc = screen_lines;
- }
-
- if (oldhash && newhash) {
- /* re-hash only changed lines */
- for (i = 0; i < screen_lines; i++) {
- if (PENDING(i))
- newhash[i] = hash(NEWTEXT(i));
- }
- } else {
- /* re-hash all */
- if (oldhash == 0)
- oldhash = typeCalloc(unsigned long, (unsigned) screen_lines);
- if (newhash == 0)
- newhash = typeCalloc(unsigned long, (unsigned) screen_lines);
- if (!oldhash || !newhash)
- return; /* malloc failure */
- for (i = 0; i < screen_lines; i++) {
- 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);
- }
-#endif
-
- /*
- * Set up and count line-hash values.
- */
- 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++)
- if (sp->hashval == hashval)
- break;
- sp->hashval = hashval; /* in case this is a new entry */
- sp->oldcount++;
- sp->oldindex = i;
- }
- for (i = 0; i < screen_lines; i++) {
- unsigned long hashval = newhash[i];
-
- for (sp = hashtab; sp->hashval; sp++)
- if (sp->hashval == hashval)
- break;
- sp->hashval = hashval; /* in case this is a new entry */
- sp->newcount++;
- sp->newindex = i;
-
- OLDNUM(i) = _NEWINDEX; /* initialize old indices array */
- }
-
- /*
- * Mark line pairs corresponding to unique hash pairs.
- *
- * We don't mark lines with offset 0, because it can make fail
- * extending hunks by cost_effective. Otherwise, it does not
- * have any side effects.
- */
- for (sp = hashtab; sp->hashval; sp++)
- if (sp->oldcount == 1 && sp->newcount == 1
- && sp->oldindex != sp->newindex) {
- TR(TRACE_UPDATE | TRACE_MOVE,
- ("new line %d is hash-identical to old line %d (unique)",
- sp->newindex, sp->oldindex));
- OLDNUM(sp->newindex) = sp->oldindex;
- }
-
- grow_hunks();
-
- /*
- * Eliminate bad or impossible shifts -- this includes removing
- * those hunks which could not grow because of conflicts, as well
- * those which are to be moved too far, they are likely to destroy
- * more than carry.
- */
- for (i = 0; i < screen_lines;) {
- while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
- i++;
- if (i >= screen_lines)
- break;
- start = i;
- shift = OLDNUM(i) - i;
- i++;
- while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i
- == shift)
- i++;
- size = i - start;
- if (size < 3 || size + min(size / 8, 2) < abs(shift)) {
- while (start < i) {
- OLDNUM(start) = _NEWINDEX;
- start++;
- }
- }
- }
-
- /* After clearing invalid hunks, try grow the rest. */
- grow_hunks();
-}
-
-NCURSES_EXPORT(void)
-_nc_make_oldhash(int i)
-{
- if (oldhash)
- oldhash[i] = hash(OLDTEXT(i));
-}
-
-NCURSES_EXPORT(void)
-_nc_scroll_oldhash(int n, int top, int bot)
-{
- size_t size;
- 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--)
- oldhash[i] = hash(OLDTEXT(i));
- } else {
- memmove(oldhash + top - n, oldhash + top, size);
- for (i = top; i < top - n; i++)
- oldhash[i] = hash(OLDTEXT(i));
- }
-}
-
-#ifdef HASHDEBUG
-static void
-usage(void)
-{
- static const char *table[] =
- {
- "hashmap test-driver",
- "",
- "# comment",
- "l get initial line number vector",
- "n use following letters as text of new lines",
- "o use following letters as text of old lines",
- "d dump state of test arrays",
- "h apply hash mapper and see scroll optimization",
- "? this message"
- };
- size_t n;
- for (n = 0; n < sizeof(table) / sizeof(table[0]); n++)
- fprintf(stderr, "%s\n", table[n]);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- char line[BUFSIZ], *st;
- int n;
-
- SP = typeCalloc(SCREEN, 1);
- for (n = 0; n < screen_lines; n++) {
- reallines[n] = n;
- oldnums[n] = _NEWINDEX;
- oldtext[n][0] = newtext[n][0] = '.';
- }
-
- if (isatty(fileno(stdin)))
- usage();
-
-#ifdef TRACE
- _nc_tracing = TRACE_MOVE;
-#endif
- for (;;) {
- /* grab a test command */
- if (fgets(line, sizeof(line), stdin) == (char *) NULL)
- exit(EXIT_SUCCESS);
-
- switch (line[0]) {
- case '#': /* comment */
- (void) fputs(line, stderr);
- break;
-
- case 'l': /* get initial line number vector */
- for (n = 0; n < screen_lines; n++) {
- reallines[n] = n;
- oldnums[n] = _NEWINDEX;
- }
- n = 0;
- st = strtok(line, " ");
- do {
- oldnums[n++] = atoi(st);
- } while
- ((st = strtok((char *) NULL, " ")) != 0);
- break;
-
- 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++)
- if (line[n + 1] == '\n')
- break;
- else
- newtext[n][0] = line[n + 1];
- break;
-
- 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++)
- if (line[n + 1] == '\n')
- break;
- else
- oldtext[n][0] = line[n + 1];
- break;
-
- case 'd': /* dump state of test arrays */
-#ifdef TRACE
- _nc_linedump();
-#endif
- (void) fputs("Old lines: [", stdout);
- for (n = 0; n < screen_lines; n++)
- putchar(oldtext[n][0]);
- putchar(']');
- putchar('\n');
- (void) fputs("New lines: [", stdout);
- for (n = 0; n < screen_lines; n++)
- putchar(newtext[n][0]);
- putchar(']');
- putchar('\n');
- break;
-
- case 'h': /* apply hash mapper and see scroll optimization */
- _nc_hash_map();
- (void) fputs("Result:\n", stderr);
-#ifdef TRACE
- _nc_linedump();
-#endif
- _nc_scroll_optimize();
- (void) fputs("Done.\n", stderr);
- break;
- case '?':
- usage();
- break;
- }
- }
- return EXIT_SUCCESS;
-}
-
-#endif /* HASHDEBUG */
-
-/* hashmap.c ends here */
diff --git a/ncurses-5.3/ncurses/tty/lib_mvcur.c b/ncurses-5.3/ncurses/tty/lib_mvcur.c
deleted file mode 100644
index 73ee9d8..0000000
--- a/ncurses-5.3/ncurses/tty/lib_mvcur.c
+++ /dev/null
@@ -1,1201 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_mvcur.c
-**
-** The routines for moving the physical cursor and scrolling:
-**
-** void _nc_mvcur_init(void)
-**
-** void _nc_mvcur_resume(void)
-**
-** int mvcur(int old_y, int old_x, int new_y, int new_x)
-**
-** void _nc_mvcur_wrap(void)
-**
-** Comparisons with older movement optimizers:
-** SVr3 curses mvcur() can't use cursor_to_ll or auto_left_margin.
-** 4.4BSD curses can't use cuu/cud/cuf/cub/hpa/vpa/tab/cbt for local
-** motions. It doesn't use tactics based on auto_left_margin. Weirdly
-** enough, it doesn't use its own hardware-scrolling routine to scroll up
-** destination lines for out-of-bounds addresses!
-** old ncurses optimizer: less accurate cost computations (in fact,
-** it was broken and had to be commented out!).
-**
-** Compile with -DMAIN to build an interactive tester/timer for the movement
-** optimizer. You can use it to investigate the optimizer's behavior.
-** You can also use it for tuning the formulas used to determine whether
-** or not full optimization is attempted.
-**
-** This code has a nasty tendency to find bugs in terminfo entries, because it
-** exercises the non-cup movement capabilities heavily. If you think you've
-** found a bug, try deleting subsets of the following capabilities (arranged
-** in decreasing order of suspiciousness): it, tab, cbt, hpa, vpa, cuu, cud,
-** cuf, cub, cuu1, cud1, cuf1, cub1. It may be that one or more are wrong.
-**
-** Note: you should expect this code to look like a resource hog in a profile.
-** That's because it does a lot of I/O, through the tputs() calls. The I/O
-** cost swamps the computation overhead (and as machines get faster, this
-** will become even more true). Comments in the test exerciser at the end
-** go into detail about tuning and how you can gauge the optimizer's
-** effectiveness.
-**/
-
-/****************************************************************************
- *
- * Constants and macros for optimizer tuning.
- *
- ****************************************************************************/
-
-/*
- * The average overhead of a full optimization computation in character
- * transmission times. If it's too high, the algorithm will be a bit
- * over-biased toward using cup rather than local motions; if it's too
- * low, the algorithm may spend more time than is strictly optimal
- * looking for non-cup motions. Profile the optimizer using the `t'
- * command of the exerciser (see below), and round to the nearest integer.
- *
- * Yes, I (esr) thought about computing expected overhead dynamically, say
- * by derivation from a running average of optimizer times. But the
- * whole point of this optimization is to *decrease* the frequency of
- * system calls. :-)
- */
-#define COMPUTE_OVERHEAD 1 /* I use a 90MHz Pentium @ 9.6Kbps */
-
-/*
- * LONG_DIST is the distance we consider to be just as costly to move over as a
- * cup sequence is to emit. In other words, it's the length of a cup sequence
- * adjusted for average computation overhead. The magic number is the length
- * of "\033[yy;xxH", the typical cup sequence these days.
- */
-#define LONG_DIST (8 - COMPUTE_OVERHEAD)
-
-/*
- * Tell whether a motion is optimizable by local motions. Needs to be cheap to
- * compute. In general, all the fast moves go to either the right or left edge
- * of the screen. So any motion to a location that is (a) further away than
- * LONG_DIST and (b) further inward from the right or left edge than LONG_DIST,
- * we'll consider nonlocal.
- */
-#define NOT_LOCAL(fy, fx, ty, tx) ((tx > LONG_DIST) && (tx < screen_lines - 1 - LONG_DIST) && (abs(ty-fy) + abs(tx-fx) > LONG_DIST))
-
-/****************************************************************************
- *
- * External interfaces
- *
- ****************************************************************************/
-
-/*
- * For this code to work OK, the following components must live in the
- * screen structure:
- *
- * int _char_padding; // cost of character put
- * int _cr_cost; // cost of (carriage_return)
- * int _cup_cost; // cost of (cursor_address)
- * int _home_cost; // cost of (cursor_home)
- * int _ll_cost; // cost of (cursor_to_ll)
- *#if USE_HARD_TABS
- * int _ht_cost; // cost of (tab)
- * int _cbt_cost; // cost of (back_tab)
- *#endif USE_HARD_TABS
- * int _cub1_cost; // cost of (cursor_left)
- * int _cuf1_cost; // cost of (cursor_right)
- * int _cud1_cost; // cost of (cursor_down)
- * int _cuu1_cost; // cost of (cursor_up)
- * int _cub_cost; // cost of (parm_cursor_left)
- * int _cuf_cost; // cost of (parm_cursor_right)
- * int _cud_cost; // cost of (parm_cursor_down)
- * int _cuu_cost; // cost of (parm_cursor_up)
- * int _hpa_cost; // cost of (column_address)
- * int _vpa_cost; // cost of (row_address)
- * int _ech_cost; // cost of (erase_chars)
- * int _rep_cost; // cost of (repeat_char)
- *
- * The USE_HARD_TABS switch controls whether it is reliable to use tab/backtabs
- * for local motions. On many systems, it's not, due to uncertainties about
- * tab delays and whether or not tabs will be expanded in raw mode. If you
- * have parm_right_cursor, tab motions don't win you a lot anyhow.
- */
-
-#include <curses.priv.h>
-#include <term.h>
-#include <ctype.h>
-
-MODULE_ID("$Id$")
-
-#define CURRENT_ROW SP->_cursrow /* phys cursor row */
-#define CURRENT_COLUMN SP->_curscol /* phys cursor column */
-#define CURRENT_ATTR SP->_current_attr /* current phys attribute */
-#define REAL_ATTR SP->_current_attr /* phys current attribute */
-#define WANT_CHAR(y, x) SP->_newscr->_line[y].text[x] /* desired state */
-#define BAUDRATE cur_term->_baudrate /* bits per second */
-
-#if defined(MAIN) || defined(NCURSES_TEST)
-#include <sys/time.h>
-
-static bool profiling = FALSE;
-static float diff;
-#endif /* MAIN */
-
-#define OPT_SIZE 512
-
-static int normalized_cost(const char *const cap, int affcnt);
-
-/****************************************************************************
- *
- * Initialization/wrapup (including cost pre-computation)
- *
- ****************************************************************************/
-
-#ifdef TRACE
-static int
-trace_cost_of(const char *capname, const char *cap, int affcnt)
-{
- int result = _nc_msec_cost(cap, affcnt);
- TR(TRACE_CHARPUT | TRACE_MOVE,
- ("CostOf %s %d %s", capname, result, _nc_visbuf(cap)));
- return result;
-}
-#define CostOf(cap,affcnt) trace_cost_of(#cap,cap,affcnt);
-
-static int
-trace_normalized_cost(const char *capname, const char *cap, int affcnt)
-{
- int result = normalized_cost(cap, affcnt);
- TR(TRACE_CHARPUT | TRACE_MOVE,
- ("NormalizedCost %s %d %s", capname, result, _nc_visbuf(cap)));
- return result;
-}
-#define NormalizedCost(cap,affcnt) trace_normalized_cost(#cap,cap,affcnt);
-
-#else
-
-#define CostOf(cap,affcnt) _nc_msec_cost(cap,affcnt);
-#define NormalizedCost(cap,affcnt) normalized_cost(cap,affcnt);
-
-#endif
-
-NCURSES_EXPORT(int)
-_nc_msec_cost(const char *const cap, int affcnt)
-/* compute the cost of a given operation */
-{
- if (cap == 0)
- return (INFINITY);
- else {
- const char *cp;
- float cum_cost = 0.0;
-
- for (cp = cap; *cp; cp++) {
- /* extract padding, either mandatory or required */
- if (cp[0] == '$' && cp[1] == '<' && strchr(cp, '>')) {
- float number = 0.0;
-
- for (cp += 2; *cp != '>'; cp++) {
- if (isdigit(UChar(*cp)))
- number = number * 10 + (*cp - '0');
- else if (*cp == '*')
- number *= affcnt;
- else if (*cp == '.' && (*++cp != '>') && isdigit(UChar(*cp)))
- number += (*cp - '0') / 10.0;
- }
-
-#if NCURSES_NO_PADDING
- if (!(SP->_no_padding))
-#endif
- cum_cost += number * 10;
- } else
- cum_cost += SP->_char_padding;
- }
-
- return ((int) cum_cost);
- }
-}
-
-static int
-normalized_cost(const char *const cap, int affcnt)
-/* compute the effective character-count for an operation (round up) */
-{
- int cost = _nc_msec_cost(cap, affcnt);
- if (cost != INFINITY)
- cost = (cost + SP->_char_padding - 1) / SP->_char_padding;
- return cost;
-}
-
-static void
-reset_scroll_region(void)
-/* Set the scroll-region to a known state (the default) */
-{
- if (change_scroll_region) {
- TPUTS_TRACE("change_scroll_region");
- putp(tparm(change_scroll_region, 0, screen_lines - 1));
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_mvcur_resume(void)
-/* what to do at initialization time and after each shellout */
-{
- /* initialize screen for cursor access */
- if (enter_ca_mode) {
- TPUTS_TRACE("enter_ca_mode");
- putp(enter_ca_mode);
- }
-
- /*
- * Doing this here rather than in _nc_mvcur_wrap() ensures that
- * ncurses programs will see a reset scroll region even if a
- * program that messed with it died ungracefully.
- *
- * This also undoes the effects of terminal init strings that assume
- * they know the screen size. This is useful when you're running
- * a vt100 emulation through xterm.
- */
- reset_scroll_region();
- SP->_cursrow = SP->_curscol = -1;
-
- /* restore cursor shape */
- if (SP->_cursor != -1) {
- int cursor = SP->_cursor;
- SP->_cursor = -1;
- curs_set(cursor);
- }
-}
-
-NCURSES_EXPORT(void)
-_nc_mvcur_init(void)
-/* initialize the cost structure */
-{
- /*
- * 9 = 7 bits + 1 parity + 1 stop.
- */
- SP->_char_padding = (9 * 1000 * 10) / (BAUDRATE > 0 ? BAUDRATE : 9600);
- if (SP->_char_padding <= 0)
- SP->_char_padding = 1; /* must be nonzero */
- TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP->_char_padding));
-
- /* non-parameterized local-motion strings */
- SP->_cr_cost = CostOf(carriage_return, 0);
- SP->_home_cost = CostOf(cursor_home, 0);
- SP->_ll_cost = CostOf(cursor_to_ll, 0);
-#if USE_HARD_TABS
- SP->_ht_cost = CostOf(tab, 0);
- SP->_cbt_cost = CostOf(back_tab, 0);
-#endif /* USE_HARD_TABS */
- SP->_cub1_cost = CostOf(cursor_left, 0);
- SP->_cuf1_cost = CostOf(cursor_right, 0);
- SP->_cud1_cost = CostOf(cursor_down, 0);
- SP->_cuu1_cost = CostOf(cursor_up, 0);
-
- SP->_smir_cost = CostOf(enter_insert_mode, 0);
- SP->_rmir_cost = CostOf(exit_insert_mode, 0);
- SP->_ip_cost = 0;
- if (insert_padding) {
- SP->_ip_cost = CostOf(insert_padding, 0);
- }
-
- /*
- * Assumption: if the terminal has memory_relative addressing, the
- * initialization strings or smcup will set single-page mode so we
- * can treat it like absolute screen addressing. This seems to be true
- * for all cursor_mem_address terminal types in the terminfo database.
- */
- SP->_address_cursor = cursor_address ? cursor_address : cursor_mem_address;
-
- /*
- * Parametrized local-motion strings. This static cost computation
- * depends on the following assumptions:
- *
- * (1) They never have * padding. In the entire master terminfo database
- * as of March 1995, only the obsolete Zenith Z-100 pc violates this.
- * (Proportional padding is found mainly in insert, delete and scroll
- * capabilities).
- *
- * (2) The average case of cup has two two-digit parameters. Strictly,
- * the average case for a 24 * 80 screen has ((10*10*(1 + 1)) +
- * (14*10*(1 + 2)) + (10*70*(2 + 1)) + (14*70*4)) / (24*80) = 3.458
- * digits of parameters. On a 25x80 screen the average is 3.6197.
- * On larger screens the value gets much closer to 4.
- *
- * (3) The average case of cub/cuf/hpa/ech/rep has 2 digits of parameters
- * (strictly, (((10 * 1) + (70 * 2)) / 80) = 1.8750).
- *
- * (4) The average case of cud/cuu/vpa has 2 digits of parameters
- * (strictly, (((10 * 1) + (14 * 2)) / 24) = 1.5833).
- *
- * All these averages depend on the assumption that all parameter values
- * are equally probable.
- */
- SP->_cup_cost = CostOf(tparm(SP->_address_cursor, 23, 23), 1);
- SP->_cub_cost = CostOf(tparm(parm_left_cursor, 23), 1);
- SP->_cuf_cost = CostOf(tparm(parm_right_cursor, 23), 1);
- SP->_cud_cost = CostOf(tparm(parm_down_cursor, 23), 1);
- SP->_cuu_cost = CostOf(tparm(parm_up_cursor, 23), 1);
- SP->_hpa_cost = CostOf(tparm(column_address, 23), 1);
- SP->_vpa_cost = CostOf(tparm(row_address, 23), 1);
-
- /* non-parameterized screen-update strings */
- SP->_ed_cost = NormalizedCost(clr_eos, 1);
- SP->_el_cost = NormalizedCost(clr_eol, 1);
- SP->_el1_cost = NormalizedCost(clr_bol, 1);
- SP->_dch1_cost = NormalizedCost(delete_character, 1);
- SP->_ich1_cost = NormalizedCost(insert_character, 1);
-
- /* parameterized screen-update strings */
- SP->_dch_cost = NormalizedCost(tparm(parm_dch, 23), 1);
- SP->_ich_cost = NormalizedCost(tparm(parm_ich, 23), 1);
- SP->_ech_cost = NormalizedCost(tparm(erase_chars, 23), 1);
- SP->_rep_cost = NormalizedCost(tparm(repeat_char, ' ', 23), 1);
-
- SP->_cup_ch_cost = NormalizedCost(tparm(SP->_address_cursor, 23, 23), 1);
- SP->_hpa_ch_cost = NormalizedCost(tparm(column_address, 23), 1);
- SP->_cuf_ch_cost = NormalizedCost(tparm(parm_right_cursor, 23), 1);
- SP->_inline_cost = min(SP->_cup_ch_cost,
- min(SP->_hpa_ch_cost,
- SP->_cuf_ch_cost));
-
- /*
- * If save_cursor is used within enter_ca_mode, we should not use it for
- * scrolling optimization, since the corresponding restore_cursor is not
- * nested on the various terminals (vt100, xterm, etc.) which use this
- * feature.
- */
- if (save_cursor != 0
- && enter_ca_mode != 0
- && strstr(enter_ca_mode, save_cursor) != 0) {
- T(("...suppressed sc/rc capability due to conflict with smcup/rmcup"));
- save_cursor = 0;
- restore_cursor = 0;
- }
-
- /*
- * A different, possibly better way to arrange this would be to set
- * SP->_endwin = TRUE at window initialization time and let this be
- * called by doupdate's return-from-shellout code.
- */
- _nc_mvcur_resume();
-}
-
-NCURSES_EXPORT(void)
-_nc_mvcur_wrap(void)
-/* wrap up cursor-addressing mode */
-{
- /* leave cursor at screen bottom */
- mvcur(-1, -1, screen_lines - 1, 0);
-
- /* set cursor to normal mode */
- if (SP->_cursor != -1)
- curs_set(1);
-
- if (exit_ca_mode) {
- TPUTS_TRACE("exit_ca_mode");
- putp(exit_ca_mode);
- }
- /*
- * Reset terminal's tab counter. There's a long-time bug that
- * if you exit a "curses" program such as vi or more, tab
- * forward, and then backspace, the cursor doesn't go to the
- * right place. The problem is that the kernel counts the
- * escape sequences that reset things as column positions.
- * Utter a \r to reset this invisibly.
- */
- _nc_outch('\r');
-}
-
-/****************************************************************************
- *
- * Optimized cursor movement
- *
- ****************************************************************************/
-
-/*
- * Perform repeated-append, returning cost
- */
-static inline int
-repeated_append(string_desc * target, int total, int num, int repeat, const char *src)
-{
- size_t need = repeat * strlen(src);
-
- if (need < target->s_size) {
- while (repeat-- > 0) {
- if (_nc_safe_strcat(target, src)) {
- total += num;
- } else {
- total = INFINITY;
- break;
- }
- }
- } else {
- total = INFINITY;
- }
- return total;
-}
-
-#ifndef NO_OPTIMIZE
-#define NEXTTAB(fr) (fr + init_tabs - (fr % init_tabs))
-
-/*
- * Assume back_tab (CBT) does not wrap backwards at the left margin, return
- * a negative value at that point to simplify the loop.
- */
-#define LASTTAB(fr) ((fr > 0) ? ((fr - 1) / init_tabs) * init_tabs : -1)
-
-static int
-relative_move(string_desc * target, int from_y, int from_x, int to_y, int
- to_x, bool ovw)
-/* move via local motions (cuu/cuu1/cud/cud1/cub1/cub/cuf1/cuf/vpa/hpa) */
-{
- string_desc save;
- int n, vcost = 0, hcost = 0;
-
- (void) _nc_str_copy(&save, target);
-
- if (to_y != from_y) {
- vcost = INFINITY;
-
- if (row_address != 0
- && _nc_safe_strcat(target, tparm(row_address, to_y))) {
- vcost = SP->_vpa_cost;
- }
-
- if (to_y > from_y) {
- n = (to_y - from_y);
-
- if (parm_down_cursor
- && SP->_cud_cost < vcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(parm_down_cursor, n))) {
- vcost = SP->_cud_cost;
- }
-
- 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);
- }
- } else { /* (to_y < from_y) */
- n = (from_y - to_y);
-
- if (parm_up_cursor
- && SP->_cup_cost < vcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(parm_up_cursor, n))) {
- vcost = SP->_cup_cost;
- }
-
- if (cursor_up && (n * SP->_cuu1_cost < vcost)) {
- vcost = repeated_append(_nc_str_copy(target, &save), 0,
- SP->_cuu1_cost, n, cursor_up);
- }
- }
-
- if (vcost == INFINITY)
- return (INFINITY);
- }
-
- save = *target;
-
- if (to_x != from_x) {
- char str[OPT_SIZE];
- string_desc check;
-
- hcost = INFINITY;
-
- if (column_address
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(column_address, to_x))) {
- hcost = SP->_hpa_cost;
- }
-
- if (to_x > from_x) {
- n = to_x - from_x;
-
- if (parm_right_cursor
- && SP->_cuf_cost < hcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(parm_right_cursor, n))) {
- hcost = SP->_cuf_cost;
- }
-
- if (cursor_right) {
- int lhcost = 0;
-
- (void) _nc_str_init(&check, str, sizeof(str));
-
-#if USE_HARD_TABS
- /* use hard tabs, if we have them, to do as much as possible */
- if (init_tabs > 0 && tab) {
- int nxt, fr;
-
- for (fr = from_x; (nxt = NEXTTAB(fr)) <= to_x; fr = nxt) {
- lhcost = repeated_append(&check, lhcost,
- SP->_ht_cost, 1, tab);
- if (lhcost == INFINITY)
- break;
- }
-
- n = to_x - fr;
- from_x = fr;
- }
-#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
- * a string with a leading digit. Otherwise, that will be
- * interpreted as a padding value rather than sent to the
- * screen.
- */
- if (ovw
- && n > 0
- && n < (int) check.s_size
- && vcost == 0
- && str[0] == '\0'
- && isdigit(CharOf(WANT_CHAR(to_y, from_x))))
- ovw = FALSE;
-#endif
- /*
- * If we have no attribute changes, overwrite is cheaper.
- * Note: must suppress this by passing in ovw = FALSE whenever
- * WANT_CHAR would return invalid data. In particular, this
- * is true between the time a hardware scroll has been done
- * and the time the structure WANT_CHAR would access has been
- * updated.
- */
- if (ovw) {
- int i;
-
- 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;
- }
- }
- }
- if (ovw) {
- int i;
-
- for (i = 0; i < n; 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;
- } else
-#endif /* defined(REAL_ATTR) && defined(WANT_CHAR) */
- {
- lhcost = repeated_append(&check, lhcost, SP->_cuf1_cost,
- n, cursor_right);
- }
-
- if (lhcost < hcost
- && _nc_safe_strcat(_nc_str_copy(target, &save), str)) {
- hcost = lhcost;
- }
- }
- } else { /* (to_x < from_x) */
- n = from_x - to_x;
-
- if (parm_left_cursor
- && SP->_cub_cost < hcost
- && _nc_safe_strcat(_nc_str_copy(target, &save),
- tparm(parm_left_cursor, n))) {
- hcost = SP->_cub_cost;
- }
-
- if (cursor_left) {
- int lhcost = 0;
-
- (void) _nc_str_init(&check, str, sizeof(str));
-
-#if USE_HARD_TABS
- if (init_tabs > 0 && back_tab) {
- int nxt, fr;
-
- for (fr = from_x; (nxt = LASTTAB(fr)) >= to_x; fr = nxt) {
- lhcost = repeated_append(&check, lhcost,
- SP->_cbt_cost, 1, back_tab);
- if (lhcost == INFINITY)
- break;
- }
-
- n = fr - to_x;
- }
-#endif /* USE_HARD_TABS */
-
- lhcost = repeated_append(&check, lhcost, SP->_cub1_cost, n, cursor_left);
-
- if (lhcost < hcost
- && _nc_safe_strcat(_nc_str_copy(target, &save), str)) {
- hcost = lhcost;
- }
- }
- }
-
- if (hcost == INFINITY)
- return (INFINITY);
- }
-
- return (vcost + hcost);
-}
-#endif /* !NO_OPTIMIZE */
-
-/*
- * With the machinery set up above, it's conceivable that
- * onscreen_mvcur could be modified into a recursive function that does
- * an alpha-beta search of motion space, as though it were a chess
- * move tree, with the weight function being boolean and the search
- * depth equated to length of string. However, this would jack up the
- * computation cost a lot, especially on terminals without a cup
- * capability constraining the search tree depth. So we settle for
- * the simpler method below.
- */
-
-static inline int
-onscreen_mvcur(int yold, int xold, int ynew, int xnew, bool ovw)
-/* onscreen move from (yold, xold) to (ynew, xnew) */
-{
- string_desc result;
- char buffer[OPT_SIZE];
- int tactic = 0, newcost, usecost = INFINITY;
- int t5_cr_cost;
-
-#if defined(MAIN) || defined(NCURSES_TEST)
- struct timeval before, after;
-
- gettimeofday(&before, NULL);
-#endif /* MAIN */
-
-#define NullResult _nc_str_null(&result, sizeof(buffer))
-#define InitResult _nc_str_init(&result, buffer, sizeof(buffer))
-
- /* tactic #0: use direct cursor addressing */
- if (_nc_safe_strcpy(InitResult, tparm(SP->_address_cursor, ynew, xnew))) {
- tactic = 0;
- usecost = SP->_cup_cost;
-
-#if defined(TRACE) || defined(NCURSES_TEST)
- if (!(_nc_optimize_enable & OPTIMIZE_MVCUR))
- goto nonlocal;
-#endif /* TRACE */
-
- /*
- * We may be able to tell in advance that the full optimization
- * will probably not be worth its overhead. Also, don't try to
- * use local movement if the current attribute is anything but
- * A_NORMAL...there are just too many ways this can screw up
- * (like, say, local-movement \n getting mapped to some obscure
- * character because A_ALTCHARSET is on).
- */
- if (yold == -1 || xold == -1 || NOT_LOCAL(yold, xold, ynew, xnew)) {
-#if defined(MAIN) || defined(NCURSES_TEST)
- if (!profiling) {
- (void) fputs("nonlocal\n", stderr);
- goto nonlocal; /* always run the optimizer if profiling */
- }
-#else
- goto nonlocal;
-#endif /* MAIN */
- }
- }
-#ifndef NO_OPTIMIZE
- /* tactic #1: use local movement */
- if (yold != -1 && xold != -1
- && ((newcost = relative_move(NullResult, yold, xold, ynew, xnew,
- ovw)) != INFINITY)
- && newcost < usecost) {
- tactic = 1;
- usecost = newcost;
- }
-
- /* tactic #2: use carriage-return + local movement */
- if (yold != -1 && carriage_return
- && ((newcost = relative_move(NullResult, yold, 0, ynew, xnew, ovw))
- != INFINITY)
- && SP->_cr_cost + newcost < usecost) {
- tactic = 2;
- usecost = SP->_cr_cost + newcost;
- }
-
- /* tactic #3: use home-cursor + local movement */
- if (cursor_home
- && ((newcost = relative_move(NullResult, 0, 0, ynew, xnew, ovw)) != INFINITY)
- && SP->_home_cost + newcost < usecost) {
- tactic = 3;
- usecost = SP->_home_cost + newcost;
- }
-
- /* tactic #4: use home-down + local movement */
- if (cursor_to_ll
- && ((newcost = relative_move(NullResult, screen_lines - 1, 0, ynew,
- xnew, ovw)) != INFINITY)
- && SP->_ll_cost + newcost < usecost) {
- tactic = 4;
- usecost = SP->_ll_cost + newcost;
- }
-
- /*
- * tactic #5: use left margin for wrap to right-hand side,
- * unless strange wrap behavior indicated by xenl might hose us.
- */
- t5_cr_cost = (xold > 0 ? SP->_cr_cost : 0);
- if (auto_left_margin && !eat_newline_glitch
- && yold > 0 && cursor_left
- && ((newcost = relative_move(NullResult, yold - 1, screen_columns -
- 1, ynew, xnew, ovw)) != INFINITY)
- && t5_cr_cost + SP->_cub1_cost + newcost < usecost) {
- tactic = 5;
- usecost = t5_cr_cost + SP->_cub1_cost + newcost;
- }
-
- /*
- * These cases are ordered by estimated relative frequency.
- */
- if (tactic)
- InitResult;
- switch (tactic) {
- case 1:
- (void) relative_move(&result, yold, xold, ynew, xnew, ovw);
- break;
- case 2:
- (void) _nc_safe_strcpy(&result, carriage_return);
- (void) relative_move(&result, yold, 0, ynew, xnew, ovw);
- break;
- case 3:
- (void) _nc_safe_strcpy(&result, cursor_home);
- (void) relative_move(&result, 0, 0, ynew, xnew, ovw);
- break;
- case 4:
- (void) _nc_safe_strcpy(&result, cursor_to_ll);
- (void) relative_move(&result, screen_lines - 1, 0, ynew, xnew, ovw);
- break;
- case 5:
- if (xold > 0)
- (void) _nc_safe_strcat(&result, carriage_return);
- (void) _nc_safe_strcat(&result, cursor_left);
- (void) relative_move(&result, yold - 1, screen_columns - 1, ynew,
- xnew, ovw);
- break;
- }
-#endif /* !NO_OPTIMIZE */
-
-#if defined(MAIN) || defined(NCURSES_TEST)
- gettimeofday(&after, NULL);
- diff = after.tv_usec - before.tv_usec
- + (after.tv_sec - before.tv_sec) * 1000000;
- if (!profiling)
- (void) fprintf(stderr,
- "onscreen: %d msec, %f 28.8Kbps char-equivalents\n",
- (int) diff, diff / 288);
-#endif /* MAIN */
-
- nonlocal:
- if (usecost != INFINITY) {
- TPUTS_TRACE("mvcur");
- tputs(buffer, 1, _nc_outch);
- return (OK);
- } else
- return (ERR);
-}
-
-NCURSES_EXPORT(int)
-mvcur(int yold, int xold, int ynew, int xnew)
-/* optimized cursor move from (yold, xold) to (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)
- returnCode(OK);
-
- /*
- * Most work here is rounding for terminal boundaries getting the
- * column position implied by wraparound or the lack thereof and
- * rolling up the screen to get ynew on the screen.
- */
-
- if (xnew >= screen_columns) {
- ynew += xnew / screen_columns;
- xnew %= screen_columns;
- }
- if (xold >= screen_columns) {
- int l;
-
- if (SP->_nl) {
- l = (xold + 1) / screen_columns;
- yold += l;
- if (yold >= screen_lines)
- l -= (yold - screen_lines - 1);
-
- 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);
- } 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;
- }
- }
-
- if (yold > screen_lines - 1)
- yold = screen_lines - 1;
- if (ynew > screen_lines - 1)
- ynew = screen_lines - 1;
-
- /* destination location is on screen now */
- returnCode(onscreen_mvcur(yold, xold, ynew, xnew, TRUE));
-}
-
-#if defined(TRACE) || defined(NCURSES_TEST)
-NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL;
-#endif
-
-#if defined(MAIN) || defined(NCURSES_TEST)
-/****************************************************************************
- *
- * Movement optimizer test code
- *
- ****************************************************************************/
-
-#include <tic.h>
-#include <dump_entry.h>
-
-NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur";
-
-static unsigned long xmits;
-
-/* these override lib_tputs.c */
-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 */
-{
- if (profiling)
- xmits += strlen(string);
- else
- (void) fputs(_nc_visbuf(string), stdout);
- return (OK);
-}
-
-NCURSES_EXPORT(int)
-putp(const char *string)
-{
- return (tputs(string, 1, _nc_outch));
-}
-
-NCURSES_EXPORT(int)
-_nc_outch(int ch)
-{
- putc(ch, stdout);
- return OK;
-}
-
-NCURSES_EXPORT(int)
-delay_output(int ms GCC_UNUSED)
-{
- return OK;
-}
-
-static char tname[MAX_ALIAS];
-
-static void
-load_term(void)
-{
- (void) setupterm(tname, STDOUT_FILENO, NULL);
-}
-
-static int
-roll(int n)
-{
- int i, j;
-
- i = (RAND_MAX / n) * n;
- while ((j = rand()) >= i)
- continue;
- return (j % n);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- (void) strcpy(tname, termname());
- load_term();
- _nc_setupscreen(lines, columns, stdout);
- baudrate();
-
- _nc_mvcur_init();
- NC_BUFFERED(FALSE);
-
- (void) puts("The mvcur tester. Type ? for help");
-
- fputs("smcup:", stdout);
- putchar('\n');
-
- for (;;) {
- int fy, fx, ty, tx, n, i;
- char buf[BUFSIZ], capname[BUFSIZ];
-
- (void) fputs("> ", stdout);
- (void) fgets(buf, sizeof(buf), stdin);
-
- if (buf[0] == '?') {
- (void) puts("? -- display this help message");
- (void)
- puts("fy fx ty tx -- (4 numbers) display (fy,fx)->(ty,tx) move");
- (void) puts("s[croll] n t b m -- display scrolling sequence");
- (void)
- printf("r[eload] -- reload terminal info for %s\n",
- termname());
- (void)
- puts("l[oad] <term> -- load terminal info for type <term>");
- (void) puts("d[elete] <cap> -- delete named capability");
- (void) puts("i[nspect] -- display terminal capabilities");
- (void)
- puts("c[ost] -- dump cursor-optimization cost table");
- (void) puts("o[optimize] -- toggle movement optimization");
- (void)
- puts("t[orture] <num> -- torture-test with <num> random moves");
- (void) puts("q[uit] -- quit the program");
- } else if (sscanf(buf, "%d %d %d %d", &fy, &fx, &ty, &tx) == 4) {
- struct timeval before, after;
-
- putchar('"');
-
- gettimeofday(&before, NULL);
- mvcur(fy, fx, ty, tx);
- gettimeofday(&after, NULL);
-
- printf("\" (%ld msec)\n",
- (long) (after.tv_usec - before.tv_usec
- + (after.tv_sec - before.tv_sec)
- * 1000000));
- } else if (sscanf(buf, "s %d %d %d %d", &fy, &fx, &ty, &tx) == 4) {
- struct timeval before, after;
-
- putchar('"');
-
- gettimeofday(&before, NULL);
- _nc_scrolln(fy, fx, ty, tx);
- gettimeofday(&after, NULL);
-
- printf("\" (%ld msec)\n",
- (long) (after.tv_usec - before.tv_usec + (after.tv_sec -
- before.tv_sec)
- * 1000000));
- } else if (buf[0] == 'r') {
- (void) strcpy(tname, termname());
- load_term();
- } else if (sscanf(buf, "l %s", tname) == 1) {
- load_term();
- } else if (sscanf(buf, "d %s", capname) == 1) {
- struct name_table_entry const *np = _nc_find_entry(capname,
- _nc_info_hash_table);
-
- if (np == NULL)
- (void) printf("No such capability as \"%s\"\n", capname);
- else {
- switch (np->nte_type) {
- case BOOLEAN:
- cur_term->type.Booleans[np->nte_index] = FALSE;
- (void)
- printf("Boolean capability `%s' (%d) turned off.\n",
- np->nte_name, np->nte_index);
- break;
-
- case NUMBER:
- cur_term->type.Numbers[np->nte_index] = ABSENT_NUMERIC;
- (void) printf("Number capability `%s' (%d) set to -1.\n",
- np->nte_name, np->nte_index);
- break;
-
- case STRING:
- cur_term->type.Strings[np->nte_index] = ABSENT_STRING;
- (void) printf("String capability `%s' (%d) deleted.\n",
- np->nte_name, np->nte_index);
- break;
- }
- }
- } else if (buf[0] == 'i') {
- dump_init((char *) NULL, F_TERMINFO, S_TERMINFO, 70, 0, FALSE);
- dump_entry(&cur_term->type, FALSE, TRUE, 0, 0, 0);
- putchar('\n');
- } else if (buf[0] == 'o') {
- if (_nc_optimize_enable & OPTIMIZE_MVCUR) {
- _nc_optimize_enable &= ~OPTIMIZE_MVCUR;
- (void) puts("Optimization is now off.");
- } else {
- _nc_optimize_enable |= OPTIMIZE_MVCUR;
- (void) puts("Optimization is now on.");
- }
- }
- /*
- * You can use the `t' test to profile and tune the movement
- * optimizer. Use iteration values in three digits or more.
- * At above 5000 iterations the profile timing averages are stable
- * to within a millisecond or three.
- *
- * The `overhead' field of the report will help you pick a
- * COMPUTE_OVERHEAD figure appropriate for your processor and
- * expected line speed. The `total estimated time' is
- * computation time plus a character-transmission time
- * estimate computed from the number of transmits and the baud
- * rate.
- *
- * Use this together with the `o' command to get a read on the
- * optimizer's effectiveness. Compare the total estimated times
- * for `t' runs of the same length in both optimized and un-optimized
- * modes. As long as the optimized times are less, the optimizer
- * is winning.
- */
- else if (sscanf(buf, "t %d", &n) == 1) {
- float cumtime = 0.0, perchar;
- int speeds[] =
- {2400, 9600, 14400, 19200, 28800, 38400, 0};
-
- srand((unsigned) (getpid() + time((time_t *) 0)));
- profiling = TRUE;
- xmits = 0;
- for (i = 0; i < n; i++) {
- /*
- * This does a move test between two random locations,
- * Random moves probably short-change the optimizer,
- * which will work better on the short moves probably
- * typical of doupdate()'s usage pattern. Still,
- * until we have better data...
- */
-#ifdef FIND_COREDUMP
- int from_y = roll(lines);
- int to_y = roll(lines);
- int from_x = roll(columns);
- int to_x = roll(columns);
-
- printf("(%d,%d) -> (%d,%d)\n", from_y, from_x, to_y, to_x);
- mvcur(from_y, from_x, to_y, to_x);
-#else
- mvcur(roll(lines), roll(columns), roll(lines), roll(columns));
-#endif /* FIND_COREDUMP */
- if (diff)
- cumtime += diff;
- }
- profiling = FALSE;
-
- /*
- * Average milliseconds per character optimization time.
- * This is the key figure to watch when tuning the optimizer.
- */
- perchar = cumtime / n;
-
- (void) printf("%d moves (%ld chars) in %d msec, %f msec each:\n",
- n, xmits, (int) cumtime, perchar);
-
- for (i = 0; speeds[i]; i++) {
- /*
- * Total estimated time for the moves, computation and
- * transmission both. Transmission time is an estimate
- * assuming 9 bits/char, 8 bits + 1 stop bit.
- */
- float totalest = cumtime + xmits * 9 * 1e6 / speeds[i];
-
- /*
- * Per-character optimization overhead in character transmits
- * at the current speed. Round this to the nearest integer
- * to figure COMPUTE_OVERHEAD for the speed.
- */
- float overhead = speeds[i] * perchar / 1e6;
-
- (void)
- printf("%6d bps: %3.2f char-xmits overhead; total estimated time %15.2f\n",
- speeds[i], overhead, totalest);
- }
- } else if (buf[0] == 'c') {
- (void) printf("char padding: %d\n", SP->_char_padding);
- (void) printf("cr cost: %d\n", SP->_cr_cost);
- (void) printf("cup cost: %d\n", SP->_cup_cost);
- (void) printf("home cost: %d\n", SP->_home_cost);
- (void) printf("ll cost: %d\n", SP->_ll_cost);
-#if USE_HARD_TABS
- (void) printf("ht cost: %d\n", SP->_ht_cost);
- (void) printf("cbt cost: %d\n", SP->_cbt_cost);
-#endif /* USE_HARD_TABS */
- (void) printf("cub1 cost: %d\n", SP->_cub1_cost);
- (void) printf("cuf1 cost: %d\n", SP->_cuf1_cost);
- (void) printf("cud1 cost: %d\n", SP->_cud1_cost);
- (void) printf("cuu1 cost: %d\n", SP->_cuu1_cost);
- (void) printf("cub cost: %d\n", SP->_cub_cost);
- (void) printf("cuf cost: %d\n", SP->_cuf_cost);
- (void) printf("cud cost: %d\n", SP->_cud_cost);
- (void) printf("cuu cost: %d\n", SP->_cuu_cost);
- (void) printf("hpa cost: %d\n", SP->_hpa_cost);
- (void) printf("vpa cost: %d\n", SP->_vpa_cost);
- } else if (buf[0] == 'x' || buf[0] == 'q')
- break;
- else
- (void) puts("Invalid command.");
- }
-
- (void) fputs("rmcup:", stdout);
- _nc_mvcur_wrap();
- putchar('\n');
-
- return (0);
-}
-
-#endif /* MAIN */
-
-/* lib_mvcur.c ends here */
diff --git a/ncurses-5.3/ncurses/tty/lib_tstp.c b/ncurses-5.3/ncurses/tty/lib_tstp.c
deleted file mode 100644
index 8f6b143..0000000
--- a/ncurses-5.3/ncurses/tty/lib_tstp.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas Dickey 1995-2001 *
- ****************************************************************************/
-
-/*
-** lib_tstp.c
-**
-** The routine _nc_signal_handler().
-**
-*/
-#include <curses.priv.h>
-
-#include <SigAction.h>
-
-#if SVR4_ACTION && !defined(_POSIX_SOURCE)
-#define _POSIX_SOURCE
-#endif
-
-MODULE_ID("$Id$")
-
-#if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
-#define USE_SIGTSTP 1
-#else
-#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.
- * The ncurses code needs signal-call restart to happen -- otherwise,
- * interrupted wgetch() calls will return FAIL, probably making the
- * application think the input stream has ended and it should
- * terminate. In particular, you know you have this problem if, when
- * you suspend an ncurses-using lynx with ^Z and resume, it dies
- * immediately.
- *
- * Default behavior of POSIX sigaction(2) is not to restart
- * interrupted system calls, but Linux's sigaction does it anyway (at
- * least, on and after the 1.1.47 I (esr) use). Thus this code works
- * OK under Linux. The 4.4BSD sigaction(2) supports a (non-portable)
- * SA_RESTART flag that forces the right behavior. Thus, this code
- * should work OK under BSD/OS, NetBSD, and FreeBSD (let us know if it
- * does not).
- *
- * Stock System Vs (and anything else using a strict-POSIX
- * sigaction(2) without SA_RESTART) may have a problem. Possible
- * solutions:
- *
- * sigvec restarts by default (SV_INTERRUPT flag to not restart)
- * signal restarts by default in SVr4 (assuming you link with -lucb)
- * and BSD, but not SVr3.
- * sigset restarts, but is only available under SVr4/Solaris.
- *
- * The signal(3) call is mandated by the ANSI standard, and its
- * interaction with sigaction(2) is described in the POSIX standard
- * (3.3.4.2, page 72,line 934). According to section 8.1, page 191,
- * however, signal(3) itself is not required by POSIX.1. And POSIX is
- * silent on whether it is required to restart signals.
- *
- * So. The present situation is, we use sigaction(2) with no
- * guarantee of restart anywhere but on Linux and BSD. We could
- * switch to signal(3) and collar Linux, BSD, and SVr4. Any way
- * we slice it, System V UNIXes older than SVr4 will probably lose
- * (this may include XENIX).
- *
- * This implementation will probably be changed to use signal(3) in
- * the future. If nothing else, it's simpler...
- */
-
-#if USE_SIGTSTP
-static void
-tstp(int dummy GCC_UNUSED)
-{
- sigset_t mask, omask;
- sigaction_t act, oact;
-
-#ifdef SIGTTOU
- int sigttou_blocked;
-#endif
-
- T(("tstp() called"));
-
- /*
- * The user may have changed the prog_mode tty bits, so save them.
- *
- * But first try to detect whether we still are in the foreground
- * process group - if not, an interactive shell may already have
- * taken ownership of the tty and modified the settings when our
- * parent was stopped before us, and we would likely pick up the
- * settings already modified by the shell.
- */
- if (SP != 0 && !SP->_endwin) /* don't do this if we're not in curses */
-#if HAVE_TCGETPGRP
- if (tcgetpgrp(STDIN_FILENO) == getpgrp())
-#endif
- def_prog_mode();
-
- /*
- * Block window change and timer signals. The latter
- * is because applications use timers to decide when
- * to repaint the screen.
- */
- (void) sigemptyset(&mask);
- (void) sigaddset(&mask, SIGALRM);
-#if USE_SIGWINCH
- (void) sigaddset(&mask, SIGWINCH);
-#endif
- (void) sigprocmask(SIG_BLOCK, &mask, &omask);
-
-#ifdef SIGTTOU
- sigttou_blocked = sigismember(&omask, SIGTTOU);
- if (!sigttou_blocked) {
- (void) sigemptyset(&mask);
- (void) sigaddset(&mask, SIGTTOU);
- (void) sigprocmask(SIG_BLOCK, &mask, NULL);
- }
-#endif
-
- /*
- * End window mode, which also resets the terminal state to the
- * original (pre-curses) modes.
- */
- endwin();
-
- /* Unblock SIGTSTP. */
- (void) sigemptyset(&mask);
- (void) sigaddset(&mask, SIGTSTP);
-#ifdef SIGTTOU
- if (!sigttou_blocked) {
- /* Unblock this too if it wasn't blocked on entry */
- (void) sigaddset(&mask, SIGTTOU);
- }
-#endif
- (void) sigprocmask(SIG_UNBLOCK, &mask, NULL);
-
- /* Now we want to resend SIGSTP to this process and suspend it */
- act.sa_handler = SIG_DFL;
- sigemptyset(&act.sa_mask);
- act.sa_flags = 0;
-#ifdef SA_RESTART
- act.sa_flags |= SA_RESTART;
-#endif /* SA_RESTART */
- sigaction(SIGTSTP, &act, &oact);
- kill(getpid(), SIGTSTP);
-
- /* Process gets suspended...time passes...process resumes */
-
- T(("SIGCONT received"));
- sigaction(SIGTSTP, &oact, NULL);
- flushinp();
-
- /*
- * If the user modified the tty state while suspended, he wants
- * those changes to stick. So save the new "default" terminal state.
- */
- def_shell_mode();
-
- /*
- * This relies on the fact that doupdate() will restore the
- * program-mode tty state, and issue enter_ca_mode if need be.
- */
- doupdate();
-
- /* Reset the signals. */
- (void) sigprocmask(SIG_SETMASK, &omask, NULL);
-}
-#endif /* USE_SIGTSTP */
-
-static void
-cleanup(int sig)
-{
- static int nested;
-
- /*
- * Actually, doing any sort of I/O from within an signal handler is
- * "unsafe". But we'll _try_ to clean up the screen and terminal
- * settings on the way out.
- */
- if (!nested++
- && (sig == SIGINT
- || sig == SIGQUIT)) {
-#if HAVE_SIGACTION || HAVE_SIGVEC
- sigaction_t act;
- sigemptyset(&act.sa_mask);
- act.sa_flags = 0;
- act.sa_handler = SIG_IGN;
- if (sigaction(sig, &act, NULL) == 0)
-#else
- if (signal(sig, SIG_IGN) != SIG_ERR)
-#endif
- {
- SCREEN *scan = _nc_screen_chain;
- while (scan) {
- if (SP != 0
- && SP->_ofp != 0
- && isatty(fileno(SP->_ofp))) {
- SP->_cleanup = TRUE;
- SP->_outch = _nc_outch;
- }
- set_term(scan);
- endwin();
- if (SP)
- SP->_endwin = FALSE; /* in case we have an atexit! */
- scan = scan->_next_screen;
- }
- }
- }
- exit(EXIT_FAILURE);
-}
-
-#if USE_SIGWINCH
-static void
-sigwinch(int sig GCC_UNUSED)
-{
- SCREEN *scan = _nc_screen_chain;
- while (scan) {
- scan->_sig_winch = TRUE;
- scan = scan->_next_screen;
- }
-}
-#endif /* USE_SIGWINCH */
-
-/*
- * If the given signal is still in its default state, set it to the given
- * handler.
- */
-static int
-CatchIfDefault(int sig, RETSIGTYPE (*handler) (int))
-{
- int result;
-#if HAVE_SIGACTION || HAVE_SIGVEC
- 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, NULL, &old_act) == 0
- && (old_act.sa_handler == SIG_DFL
- || old_act.sa_handler == handler
-#if USE_SIGWINCH
- || (sig == SIGWINCH && old_act.sa_handler == SIG_IGN)
-#endif
- )) {
- (void) sigaction(sig, &new_act, NULL);
- result = TRUE;
- } else {
- result = FALSE;
- }
-#else /* !HAVE_SIGACTION */
- RETSIGTYPE (*ohandler) (int);
-
- ohandler = signal(sig, SIG_IGN);
- if (ohandler == SIG_DFL
- || ohandler == handler
-#if USE_SIGWINCH
- || (sig == SIGWINCH && ohandler == SIG_IGN)
-#endif
- ) {
- signal(sig, handler);
- result = TRUE;
- } else {
- signal(sig, ohandler);
- result = FALSE;
- }
-#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
- * initialize the signal catchers, and thereafter when spawning a shell (and
- * returning) to disable/enable the SIGTSTP (i.e., ^Z) catcher.
- *
- * If the application has already set one of the signals, we'll not modify it
- * (during initialization).
- *
- * 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.
- */
-NCURSES_EXPORT(void)
-_nc_signal_handler(bool enable)
-{
- 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
- act.sa_flags |= SA_RESTART;
-#endif /* SA_RESTART */
- act.sa_handler = tstp;
- (void) sigaction(SIGTSTP, &act, NULL);
- } else {
- ignore_tstp = TRUE;
- }
- }
- }
-#endif /* !USE_SIGTSTP */
-
- if (!initialized) {
- if (enable) {
- CatchIfDefault(SIGINT, cleanup);
- CatchIfDefault(SIGTERM, cleanup);
-#if USE_SIGWINCH
- CatchIfDefault(SIGWINCH, sigwinch);
-#endif
- initialized = TRUE;
- }
- }
- returnVoid;
-}
diff --git a/ncurses-5.3/ncurses/tty/lib_twait.c b/ncurses-5.3/ncurses/tty/lib_twait.c
deleted file mode 100644
index 459adbe..0000000
--- a/ncurses-5.3/ncurses/tty/lib_twait.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
-** lib_twait.c
-**
-** The routine _nc_timed_wait().
-**
-** (This file was originally written by Eric Raymond; however except for
-** comments, none of the original code remains - T.Dickey).
-*/
-
-#include <curses.priv.h>
-
-#ifdef __BEOS__
-#undef false
-#undef true
-#include <OS.h>
-#endif
-
-#if 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
-
-MODULE_ID("$Id$")
-
-static long
-_nc_gettime(bool first)
-{
- long res;
-
-#if HAVE_GETTIMEOFDAY
-# define PRECISE_GETTIME 1
- static struct timeval t0;
- struct timeval t1;
- gettimeofday(&t1, (struct timezone *) 0);
- if (first) {
- t0 = t1;
- }
- res = (t1.tv_sec - t0.tv_sec) * 1000
- + (t1.tv_usec - t0.tv_usec) / 1000;
-#else
-# define PRECISE_GETTIME 0
- static time_t t0;
- time_t t1 = time((time_t *) 0);
- if (first) {
- t0 = t1;
- }
- res = (t1 - t0) * 1000;
-#endif
- TR(TRACE_IEVENT, ("%s time: %ld msec", first ? "get" : "elapsed", 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.
- * The file-descriptors are specified by the mode:
- * 0 - none (absolute time)
- * 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.
- */
-NCURSES_EXPORT(int)
-_nc_timed_wait(int mode,
- int milliseconds,
- int *timeleft
- EVENTLIST_2nd(_nc_eventlist * evl))
-{
- int fd;
- int count;
- int result;
-
-#ifdef NCURSES_WGETCH_EVENTS
- int timeout_is_event = 0;
-#endif
-
-#if USE_FUNC_POLL
- struct pollfd fd_list[2];
- struct pollfd *fds = fd_list;
-#elif defined(__BEOS__)
-#elif HAVE_SELECT
- static fd_set set;
-#endif
-
- long starttime, returntime;
-
- 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:
-#endif
- starttime = _nc_gettime(TRUE);
-
- count = 0;
-
-#ifdef NCURSES_WGETCH_EVENTS
- if ((mode & 4) && evl)
- evl->result_flags = 0;
-#endif
-
-#if USE_FUNC_POLL
- 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;
- count++;
- }
- if ((mode & 2)
- && (fd = SP->_mouse_fd) >= 0) {
- fds[count].fd = fd;
- 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);
-
-#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
- * not see it. That's just as well, since that function works only for
- * sockets. This (using snooze and ioctl) was distilled from Be's patch
- * for ncurses which uses a separate thread to simulate select().
- *
- * 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) {
- int step = (milliseconds < 0) ? 0 : 5000;
- bigtime_t d;
- bigtime_t useconds = milliseconds * 1000;
- int n, howmany;
-
- if (useconds <= 0) /* we're here to go _through_ the loop */
- useconds = 1;
-
- for (d = 0; d < useconds; d += step) {
- n = 0;
- howmany = ioctl(0, 'ichr', &n);
- if (howmany >= 0 && n > 0) {
- result = 1;
- break;
- }
- if (useconds > 1 && step > 0) {
- snooze(step);
- milliseconds -= (step / 1000);
- if (milliseconds <= 0) {
- milliseconds = 0;
- break;
- }
- }
- }
- } else if (milliseconds > 0) {
- snooze(milliseconds * 1000);
- milliseconds = 0;
- }
-#elif HAVE_SELECT
- /*
- * select() modifies the fd_set arguments; do this in the
- * loop.
- */
- FD_ZERO(&set);
-
- if (mode & 1) {
- FD_SET(SP->_ifd, &set);
- count = SP->_ifd + 1;
- }
- if ((mode & 2)
- && (fd = SP->_mouse_fd) >= 0) {
- 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;
- ntimeout.tv_sec = milliseconds / 1000;
- ntimeout.tv_usec = (milliseconds % 1000) * 1000;
- result = select(count, &set, NULL, NULL, &ntimeout);
- } 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 /* USE_FUNC_POLL, etc */
-
- 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,
- * this is probably a system where 'select()' needs to be left
- * alone so that it can complete. Make this process sleep,
- * then come back for more.
- */
- if (result == 0 && milliseconds > 100) {
- napms(100);
- milliseconds -= 100;
- goto retry;
- }
-#endif
-
- /* return approximate time left in milliseconds */
- if (timeleft)
- *timeleft = 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
- * that are active. Translate this back to the mask that denotes which
- * file-descriptors, so that we don't need all of this system-specific
- * code everywhere.
- */
- if (result != 0) {
- if (result > 0) {
- result = 0;
-#if USE_FUNC_POLL
- for (count = 0; count < 2; count++) {
- if ((mode & (1 << count))
- && (fds[count].revents & POLLIN)) {
- result |= (1 << count);
- }
- }
-#elif defined(__BEOS__)
- result = 1; /* redundant, but simple */
-#elif HAVE_SELECT
- if ((mode & 2)
- && (fd = SP->_mouse_fd) >= 0
- && FD_ISSET(fd, &set))
- result |= 2;
- if ((mode & 1)
- && FD_ISSET(SP->_ifd, &set))
- result |= 1;
-#endif
- } else
- result = 0;
- }
-#ifdef NCURSES_WGETCH_EVENTS
- if ((mode & 4) && evl && evl->result_flags)
- result |= 4;
-#endif
-
- return (result);
-}
diff --git a/ncurses-5.3/ncurses/tty/lib_vidattr.c b/ncurses-5.3/ncurses/tty/lib_vidattr.c
deleted file mode 100644
index 27f7a14..0000000
--- a/ncurses-5.3/ncurses/tty/lib_vidattr.c
+++ /dev/null
@@ -1,310 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * vidputs(newmode, outc)
- *
- * newmode is taken to be the logical 'or' of the symbols in curses.h
- * representing graphic renditions. The terminal is set to be in all of
- * the given modes, if possible.
- *
- * if the new attribute is normal
- * if exit-alt-char-set exists
- * emit it
- * emit exit-attribute-mode
- * else if set-attributes exists
- * use it to set exactly what you want
- * else
- * if exit-attribute-mode exists
- * turn off everything
- * else
- * turn off those which can be turned off and aren't in
- * newmode.
- * turn on each mode which should be on and isn't, one by one
- *
- * NOTE that this algorithm won't achieve the desired mix of attributes
- * in some cases, but those are probably just those cases in which it is
- * actually impossible, anyway, so...
- *
- * NOTE that we cannot assume that there's no interaction between color
- * and other attribute resets. So each time we reset color (or other
- * attributes) we'll have to be prepared to restore the other.
- */
-
-#include <curses.priv.h>
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
-
-#define TurnOn(mask,mode) \
- if ((turn_on & mask) && mode) { doPut(mode); }
-
-#define TurnOff(mask,mode) \
- if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; }
-
- /* if there is no current screen, assume we *can* do color */
-#define SetColorsIf(why,old_attr) \
- if (can_color && (why)) { \
- int old_pair = PAIR_NUMBER(old_attr); \
- TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, pair)); \
- if ((pair != old_pair) \
- || (fix_pair0 && (pair == 0)) \
- || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \
- _nc_do_color(old_pair, pair, reverse, outc); \
- } \
- }
-
-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;
- bool can_color = (SP == 0 || SP->_coloron);
-#if NCURSES_EXT_FUNCS
- bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color);
-#else
-#define fix_pair0 FALSE
-#endif
-
- T((T_CALLED("vidputs(%s)"), _traceattr(newmode)));
-
- /* this allows us to go on whether or not newterm() has been called */
- if (SP)
- previous_attr = SP->_current_attr;
-
- TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(previous_attr)));
-
-#if !USE_XMC_SUPPORT
- if ((SP != 0)
- && (magic_cookie_glitch > 0))
- newmode &= ~(SP->_xmc_suppress);
-#endif
-
- /*
- * If we have a terminal that cannot combine color with video
- * attributes, use the colors in preference.
- */
- if (((newmode & A_COLOR) != 0
- || fix_pair0)
- && (no_color_video > 0)) {
- /*
- * If we had chosen the A_xxx definitions to correspond to the
- * no_color_video mask, we could simply shift it up and mask off the
- * attributes. But we did not (actually copied Solaris' definitions).
- * However, this is still simpler/faster than a lookup table.
- *
- * The 63 corresponds to A_STANDOUT, A_UNDERLINE, A_REVERSE, A_BLINK,
- * A_DIM, A_BOLD which are 1:1 with no_color_video. The bits that
- * correspond to A_INVIS, A_PROTECT (192) must be shifted up 1 and
- * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS
- * macro so this will work properly for the wide-character layout.
- */
- unsigned value = no_color_video;
- attr_t mask = NCURSES_BITS((value & 63)
- | ((value & 192) << 1)
- | ((value & 256) >> 2), 8);
-
- if ((mask & A_REVERSE) != 0
- && (newmode & A_REVERSE) != 0) {
- reverse = TRUE;
- mask &= ~A_REVERSE;
- }
- newmode &= ~mask;
- }
-
- if (newmode == previous_attr)
- returnCode(OK);
-
- pair = PAIR_NUMBER(newmode);
-
- if (reverse) {
- newmode &= ~A_REVERSE;
- }
-
- turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR;
- turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR;
-
- SetColorsIf(((pair == 0) && !fix_pair0), previous_attr);
-
- if (newmode == A_NORMAL) {
- if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) {
- doPut(exit_alt_charset_mode);
- previous_attr &= ~A_ALTCHARSET;
- }
- if (previous_attr) {
- if (exit_attribute_mode) {
- doPut(exit_attribute_mode);
- } else {
- if (!SP || SP->_use_rmul) {
- TurnOff(A_UNDERLINE, exit_underline_mode);
- }
- if (!SP || SP->_use_rmso) {
- TurnOff(A_STANDOUT, exit_standout_mode);
- }
- }
- previous_attr &= ~A_COLOR;
- }
-
- SetColorsIf((pair != 0) || fix_pair0, previous_attr);
- } else if (set_attributes) {
- if (turn_on || turn_off) {
- TPUTS_TRACE("set_attributes");
- tputs(tparm(set_attributes,
- (newmode & A_STANDOUT) != 0,
- (newmode & A_UNDERLINE) != 0,
- (newmode & A_REVERSE) != 0,
- (newmode & A_BLINK) != 0,
- (newmode & A_DIM) != 0,
- (newmode & A_BOLD) != 0,
- (newmode & A_INVIS) != 0,
- (newmode & A_PROTECT) != 0,
- (newmode & A_ALTCHARSET) != 0), 1, outc);
- previous_attr &= ~A_COLOR;
- }
- SetColorsIf((pair != 0) || fix_pair0, previous_attr);
- } else {
-
- TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off)));
-
- TurnOff(A_ALTCHARSET, exit_alt_charset_mode);
-
- if (!SP || SP->_use_rmul) {
- TurnOff(A_UNDERLINE, exit_underline_mode);
- }
-
- if (!SP || SP->_use_rmso) {
- TurnOff(A_STANDOUT, exit_standout_mode);
- }
-
- if (turn_off && exit_attribute_mode) {
- doPut(exit_attribute_mode);
- turn_on |= (newmode & (chtype) (~A_COLOR));
- previous_attr &= ~A_COLOR;
- }
- SetColorsIf((pair != 0) || fix_pair0, previous_attr);
-
- TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on)));
- /* *INDENT-OFF* */
- TurnOn(A_ALTCHARSET, enter_alt_charset_mode);
- TurnOn(A_BLINK, enter_blink_mode);
- TurnOn(A_BOLD, enter_bold_mode);
- TurnOn(A_DIM, enter_dim_mode);
- TurnOn(A_REVERSE, enter_reverse_mode);
- TurnOn(A_STANDOUT, enter_standout_mode);
- TurnOn(A_PROTECT, enter_protected_mode);
- TurnOn(A_INVIS, enter_secure_mode);
- TurnOn(A_UNDERLINE, enter_underline_mode);
-#ifdef enter_horizontal_hl_mode
- TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode);
-#endif
-#ifdef enter_left_hl_mode
- TurnOn(A_LEFT, enter_left_hl_mode);
-#endif
-#ifdef enter_low_hl_mode
- TurnOn(A_LOW, enter_low_hl_mode);
-#endif
-#ifdef enter_right_hl_mode
- TurnOn(A_RIGHT, enter_right_hl_mode);
-#endif
-#ifdef enter_top_hl_mode
- TurnOn(A_TOP, enter_top_hl_mode);
-#endif
-#ifdef enter_vertical_hl_mode
- TurnOn(A_VERTICAL, enter_vertical_hl_mode);
-#endif
- /* *INDENT-ON* */
-
- }
-
- if (reverse)
- newmode |= A_REVERSE;
-
- if (SP)
- SP->_current_attr = newmode;
- else
- previous_attr = newmode;
-
- returnCode(OK);
-}
-
-NCURSES_EXPORT(int)
-vidattr(chtype newmode)
-{
- T((T_CALLED("vidattr(%s)"), _traceattr(newmode)));
-
- returnCode(vidputs(newmode, _nc_outch));
-}
-
-NCURSES_EXPORT(chtype)
-termattrs(void)
-{
- chtype attrs = A_NORMAL;
-
- T((T_CALLED("termattrs()")));
- if (enter_alt_charset_mode)
- attrs |= A_ALTCHARSET;
-
- if (enter_blink_mode)
- attrs |= A_BLINK;
-
- if (enter_bold_mode)
- attrs |= A_BOLD;
-
- if (enter_dim_mode)
- attrs |= A_DIM;
-
- if (enter_reverse_mode)
- attrs |= A_REVERSE;
-
- if (enter_standout_mode)
- attrs |= A_STANDOUT;
-
- if (enter_protected_mode)
- attrs |= A_PROTECT;
-
- if (enter_secure_mode)
- attrs |= A_INVIS;
-
- if (enter_underline_mode)
- attrs |= A_UNDERLINE;
-
- if (SP->_coloron)
- attrs |= A_COLOR;
-
- returnChar(attrs);
-}
diff --git a/ncurses-5.3/ncurses/tty/tty_display.h b/ncurses-5.3/ncurses/tty/tty_display.h
deleted file mode 100644
index 8382c82..0000000
--- a/ncurses-5.3/ncurses/tty/tty_display.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
- * 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. *
- ************************************************************************** */
-
-#ifndef TTY_DISPLAY_H
-#define TTY_DISPLAY_H 1
-
-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 */
- unsigned long _current_attr; /* terminal attribute current set */
- int _cursrow; /* physical cursor row (-1=unknown) */
- int _curscol; /* physical cursor column */
-
- /* cursor movement costs; units are 10ths of milliseconds */
- int _char_padding; /* cost of character put */
- int _cr_cost; /* cost of (carriage_return) */
- int _cup_cost; /* cost of (cursor_address) */
- int _home_cost; /* cost of (cursor_home) */
- int _ll_cost; /* cost of (cursor_to_ll) */
-#if USE_HARD_TABS
- int _ht_cost; /* cost of (tab) */
- int _cbt_cost; /* cost of (backtab) */
-#endif /* USE_HARD_TABS */
- int _cub1_cost; /* cost of (cursor_left) */
- int _cuf1_cost; /* cost of (cursor_right) */
- int _cud1_cost; /* cost of (cursor_down) */
- int _cuu1_cost; /* cost of (cursor_up) */
- int _cub_cost; /* cost of (parm_cursor_left) */
- int _cuf_cost; /* cost of (parm_cursor_right) */
- int _cud_cost; /* cost of (parm_cursor_down) */
- int _cuu_cost; /* cost of (parm_cursor_up) */
- int _hpa_cost; /* cost of (column_address) */
- int _vpa_cost; /* cost of (row_address) */
- /* used in lib_doupdate.c, must be chars */
- int _ed_cost; /* cost of (clr_eos) */
- int _el_cost; /* cost of (clr_eol) */
- int _el1_cost; /* cost of (clr_bol) */
- int _dch1_cost; /* cost of (delete_character) */
- int _ich1_cost; /* cost of (insert_character) */
- int _dch_cost; /* cost of (parm_dch) */
- int _ich_cost; /* cost of (parm_ich) */
- int _ech_cost; /* cost of (erase_chars) */
- int _rep_cost; /* cost of (repeat_char) */
- int _hpa_ch_cost; /* cost of (column_address) */
- int _cup_ch_cost; /* cost of (cursor_address) */
- int _smir_cost; /* cost of (enter_insert_mode) */
- int _rmir_cost; /* cost of (exit_insert_mode) */
- int _ip_cost; /* cost of (insert_padding) */
- /* used in lib_mvcur.c */
- char * _address_cursor;
- int _carriage_return_length;
- int _cursor_home_length;
- int _cursor_to_ll_length;
-
- chtype _xmc_suppress; /* attributes to suppress if xmc */
- chtype _xmc_triggers; /* attributes to process if xmc */
-
- bool _sig_winch;
-};
-
-
-#define DelCharCost(count) \
- ((parm_dch != 0) \
- ? D->_dch_cost \
- : ((delete_character != 0) \
- ? (D->_dch1_cost * count) \
- : INFINITY))
-
-#define InsCharCost(count) \
- ((parm_ich != 0) \
- ? D->_ich_cost \
- : ((enter_insert_mode && exit_insert_mode) \
- ? D->_smir_cost + D->_rmir_cost + (D->_ip_cost * count) \
- : ((insert_character != 0) \
- ? (D->_ich1_cost * count) \
- : INFINITY)))
-
-#if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) { \
- attr_t chg = D->_current_attr; \
- vidattr(AttrOf(c)); \
- if (magic_cookie_glitch > 0 \
- && XMC_CHANGES((chg ^ D->_current_attr))) { \
- T(("%s @%d before glitch %d,%d", \
- __FILE__, __LINE__, \
- D->_cursrow, \
- D->_curscol)); \
- _nc_do_xmc_glitch(chg); \
- } \
- }
-#else
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) \
- vidattr(AttrOf(c));
-#endif
-
-#define XMC_CHANGES(c) ((c) & D->_xmc_suppress)
-
-#endif /* TTY_DISPLAY_H */
diff --git a/ncurses-5.3/ncurses/tty/tty_input.h b/ncurses-5.3/ncurses/tty/tty_input.h
deleted file mode 100644
index df742ae..0000000
--- a/ncurses-5.3/ncurses/tty/tty_input.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * 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$
- */
-
-#ifndef TTY_INPUT_H
-#define TTY_INPUT_H 1
-
-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 */
- int _keypad_xmit; /* current terminal state */
- int _meta_on; /* current terminal state */
-
- /*
- * These are the data that support the mouse interface.
- */
- bool (*_mouse_event) (SCREEN *);
- bool (*_mouse_inline)(SCREEN *);
- bool (*_mouse_parse) (int);
- void (*_mouse_resume)(SCREEN *);
- void (*_mouse_wrap) (SCREEN *);
- int _mouse_fd; /* file-descriptor, if any */
- int mousetype;
-};
-
-#endif /* TTY_INPUT_H */
diff --git a/ncurses-5.3/ncurses/tty/tty_update.c b/ncurses-5.3/ncurses/tty/tty_update.c
deleted file mode 100644
index ce0bbf4..0000000
--- a/ncurses-5.3/ncurses/tty/tty_update.c
+++ /dev/null
@@ -1,1841 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*-----------------------------------------------------------------
- *
- * lib_doupdate.c
- *
- * The routine doupdate() and its dependents. Also _nc_outstr(),
- * so all physical output is concentrated here (except _nc_outch()
- * in lib_tputs.c).
- *
- *-----------------------------------------------------------------*/
-
-#include <curses.priv.h>
-
-#ifdef __BEOS__
-#undef false
-#undef true
-#include <OS.h>
-#endif
-
-#if defined(TRACE) && HAVE_SYS_TIMES_H && HAVE_TIMES
-#define USE_TRACE_TIMES 1
-#else
-#define USE_TRACE_TIMES 0
-#endif
-
-#if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
-#include <sys/time.h>
-#endif
-
-#if USE_TRACE_TIMES
-#include <sys/times.h>
-#endif
-
-#if USE_FUNC_POLL
-#elif HAVE_SELECT
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#endif
-
-#include <term.h>
-
-MODULE_ID("$Id$")
-
-/*
- * This define controls the line-breakout optimization. Every once in a
- * while during screen refresh, we want to check for input and abort the
- * update if there's some waiting. CHECK_INTERVAL controls the number of
- * changed lines to be emitted between input checks.
- *
- * Note: Input-check-and-abort is no longer done if the screen is being
- * updated from scratch. This is a feature, not a bug.
- */
-#define CHECK_INTERVAL 5
-
-#define FILL_BCE() (SP->_coloron && !SP->_default_color && !back_color_erase)
-
-/*
- * Enable checking to see if doupdate and friends are tracking the true
- * cursor position correctly. NOTE: this is a debugging hack which will
- * work ONLY on ANSI-compatible terminals!
- */
-/* #define POSITION_DEBUG */
-
-static inline NCURSES_CH_T ClrBlank(WINDOW *win);
-static int ClrBottom(int total);
-static void ClearScreen(NCURSES_CH_T blank);
-static void ClrUpdate(void);
-static void DelChar(int count);
-static void InsStr(NCURSES_CH_T * line, int count);
-static void TransformLine(int const lineno);
-
-#ifdef POSITION_DEBUG
-/****************************************************************************
- *
- * Debugging code. Only works on ANSI-standard terminals.
- *
- ****************************************************************************/
-
-static void
-position_check(int expected_y, int expected_x, char *legend)
-/* check to see if the real cursor position matches the virtual */
-{
- char buf[20];
- char *s;
- int y, x;
-
- if (!_nc_tracing || (expected_y < 0 && expected_x < 0))
- return;
-
- _nc_flush();
- memset(buf, '\0', sizeof(buf));
- putp("\033[6n"); /* only works on ANSI-compatibles */
- _nc_flush();
- *(s = buf) = 0;
- do {
- int ask = sizeof(buf) - 1 - (s - buf);
- int got = read(0, s, ask);
- if (got == 0)
- break;
- s += got;
- } while (strchr(buf, 'R') == 0);
- _tracef("probe returned %s", _nc_visbuf(buf));
-
- /* try to interpret as a position report */
- if (sscanf(buf, "\033[%d;%dR", &y, &x) != 2) {
- _tracef("position probe failed in %s", legend);
- } else {
- if (expected_x < 0)
- expected_x = x - 1;
- if (expected_y < 0)
- expected_y = y - 1;
- if (y - 1 != expected_y || x - 1 != expected_x) {
- beep();
- tputs(tparm("\033[%d;%dH", expected_y + 1, expected_x + 1), 1, _nc_outch);
- _tracef("position seen (%d, %d) doesn't match expected one (%d, %d) in %s",
- y - 1, x - 1, expected_y, expected_x, legend);
- } else {
- _tracef("position matches OK in %s", legend);
- }
- }
-}
-#else
-#define position_check(expected_y, expected_x, legend) /* nothing */
-#endif /* POSITION_DEBUG */
-
-/****************************************************************************
- *
- * Optimized update code
- *
- ****************************************************************************/
-
-static inline void
-GoTo(int const row, int const col)
-{
- attr_t oldattr = SP->_current_attr;
-
- TR(TRACE_MOVE, ("GoTo(%d, %d) from (%d, %d)",
- row, col, SP->_cursrow, SP->_curscol));
-
- position_check(SP->_cursrow, SP->_curscol, "GoTo");
-
- /*
- * Force restore even if msgr is on when we're in an alternate
- * character set -- these have a strong tendency to screw up the
- * CR & LF used for local character motions!
- */
- if ((oldattr & A_ALTCHARSET)
- || (oldattr && !move_standout_mode)) {
- TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move",
- oldattr, _traceattr(oldattr)));
- vidattr(A_NORMAL);
- }
-
- mvcur(SP->_cursrow, SP->_curscol, row, col);
- SP->_cursrow = row;
- SP->_curscol = col;
- position_check(SP->_cursrow, SP->_curscol, "GoTo2");
-}
-
-static inline void
-PutAttrChar(CARG_CH_T ch)
-{
- PUTC_DATA;
- NCURSES_CH_T tilde;
-
- if (tilde_glitch && (CharOfD(ch) == L('~'))) {
- SetChar(tilde, L('`'), AttrOfD(ch));
- ch = CHREF(tilde);
- }
-
- TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
- _tracech_t(ch),
- SP->_cursrow, SP->_curscol));
- 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) {
- SP->_outch((int) ch);
- } else
-#endif
- {
- PUTC(CHDEREF(ch), SP->_ofp); /* macro's fastest... */
-#ifdef TRACE
- _nc_outchars++;
-#endif /* TRACE */
- }
- SP->_curscol++;
- if (char_padding) {
- TPUTS_TRACE("char_padding");
- putp(char_padding);
- }
-}
-
-static bool
-check_pending(void)
-/* check for pending input */
-{
- bool have_pending = FALSE;
-
- /*
- * Only carry out this check when the flag is zero, otherwise we'll
- * have the refreshing slow down drastically (or stop) if there's an
- * unread character available.
- */
- if (SP->_fifohold != 0)
- return FALSE;
-
- if (SP->_checkfd >= 0) {
-#if USE_FUNC_POLL
- struct pollfd fds[1];
- fds[0].fd = SP->_checkfd;
- fds[0].events = POLLIN;
- if (poll(fds, 1, 0) > 0) {
- have_pending = TRUE;
- }
-#elif defined(__BEOS__)
- /*
- * BeOS's select() is declared in socket.h, so the configure script does
- * not see it. That's just as well, since that function works only for
- * sockets. This (using snooze and ioctl) was distilled from Be's patch
- * for ncurses which uses a separate thread to simulate select().
- *
- * FIXME: the return values from the ioctl aren't very clear if we get
- * interrupted.
- */
- int n = 0;
- int howmany = ioctl(0, 'ichr', &n);
- if (howmany >= 0 && n > 0) {
- have_pending = TRUE;
- }
-#elif HAVE_SELECT
- fd_set fdset;
- struct timeval ktimeout;
-
- ktimeout.tv_sec =
- ktimeout.tv_usec = 0;
-
- FD_ZERO(&fdset);
- FD_SET(SP->_checkfd, &fdset);
- if (select(SP->_checkfd + 1, &fdset, NULL, NULL, &ktimeout) != 0) {
- have_pending = TRUE;
- }
-#endif
- }
- if (have_pending) {
- SP->_fifohold = 5;
- _nc_flush();
- }
- return FALSE;
-}
-
-/* put char at lower right corner */
-static void
-PutCharLR(const ARG_CH_T ch)
-{
- if (!auto_right_margin) {
- /* we can put the char directly */
- PutAttrChar(ch);
- } else if (enter_am_mode && exit_am_mode) {
- /* we can suppress automargin */
- TPUTS_TRACE("exit_am_mode");
- putp(exit_am_mode);
-
- PutAttrChar(ch);
- SP->_curscol--;
- position_check(SP->_cursrow, SP->_curscol, "exit_am_mode");
-
- TPUTS_TRACE("enter_am_mode");
- putp(enter_am_mode);
- } else if ((enter_insert_mode && exit_insert_mode)
- || insert_character || parm_ich) {
- GoTo(screen_lines - 1, screen_columns - 2);
- PutAttrChar(ch);
- GoTo(screen_lines - 1, screen_columns - 2);
- InsStr(newscr->_line[screen_lines - 1].text + screen_columns - 2, 1);
- }
-}
-
-static void
-wrap_cursor(void)
-{
- if (eat_newline_glitch) {
- /*
- * xenl can manifest two different ways. The vt100
- * way is that, when you'd expect the cursor to wrap,
- * it stays hung at the right margin (on top of the
- * character just emitted) and doesn't wrap until the
- * *next* graphic char is emitted. The c100 way is
- * to ignore LF received just after an am wrap.
- *
- * An aggressive way to handle this would be to
- * emit CR/LF after the char and then assume the wrap
- * is done, you're on the first position of the next
- * line, and the terminal out of its weird state.
- * Here it's safe to just tell the code that the
- * cursor is in hyperspace and let the next mvcur()
- * call straighten things out.
- */
- SP->_curscol = -1;
- SP->_cursrow = -1;
- } else if (auto_right_margin) {
- SP->_curscol = 0;
- SP->_cursrow++;
- } else {
- SP->_curscol--;
- }
- position_check(SP->_cursrow, SP->_curscol, "wrap_cursor");
-}
-
-static inline void
-PutChar(const ARG_CH_T ch)
-/* insert character, handling automargin stuff */
-{
- if (SP->_cursrow == screen_lines - 1 && SP->_curscol == screen_columns - 1)
- PutCharLR(ch);
- else
- PutAttrChar(ch);
-
- if (SP->_curscol >= screen_columns)
- wrap_cursor();
-
- position_check(SP->_cursrow, SP->_curscol, "PutChar");
-}
-
-/*
- * Check whether the given character can be output by clearing commands. This
- * includes test for being a space and not including any 'bad' attributes, such
- * as A_REVERSE. All attribute flags which don't affect appearance of a space
- * or can be output by clearing (A_COLOR in case of bce-terminal) are excluded.
- */
-static inline bool
-can_clear_with(ARG_CH_T ch)
-{
- if (!back_color_erase && SP->_coloron) {
-#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
- }
- return (ISBLANK(CHDEREF(ch)) &&
- (AttrOfD(ch) & ~(NONBLANK_ATTR | A_COLOR)) == BLANK_ATTR);
-}
-
-/*
- * Issue a given span of characters from an array.
- * Must be functionally equivalent to:
- * for (i = 0; i < num; i++)
- * PutChar(ntext[i]);
- * but can leave the cursor positioned at the middle of the interval.
- *
- * Returns: 0 - cursor is at the end of interval
- * 1 - cursor is somewhere in the middle
- *
- * This code is optimized using ech and rep.
- */
-static int
-EmitRange(const NCURSES_CH_T * ntext, int num)
-{
- int i;
-
- if (erase_chars || repeat_char) {
- while (num > 0) {
- int runcount;
- NCURSES_CH_T ntext0;
-
- while (num > 1 && !CharEq(ntext[0], ntext[1])) {
- PutChar(CHREF(ntext[0]));
- ntext++;
- num--;
- }
- ntext0 = ntext[0];
- if (num == 1) {
- PutChar(CHREF(ntext0));
- return 0;
- }
- runcount = 2;
-
- while (runcount < num && CharEq(ntext[runcount], ntext0))
- runcount++;
-
- /*
- * The cost expression in the middle isn't exactly right.
- * _cup_ch_cost is an upper bound on the cost for moving to the
- * end of the erased area, but not the cost itself (which we
- * can't compute without emitting the move). This may result
- * in erase_chars not getting used in some situations for
- * which it would be marginally advantageous.
- */
- if (erase_chars
- && runcount > SP->_ech_cost + SP->_cup_ch_cost
- && can_clear_with(CHREF(ntext0))) {
- UpdateAttrs(AttrOf(ntext0));
- putp(tparm(erase_chars, runcount));
-
- /*
- * If this is the last part of the given interval,
- * don't bother moving cursor, since it can be the
- * last update on the line.
- */
- if (runcount < num) {
- GoTo(SP->_cursrow, SP->_curscol + runcount);
- } else {
- return 1; /* cursor stays in the middle */
- }
- } else if (repeat_char && runcount > SP->_rep_cost) {
- bool wrap_possible = (SP->_curscol + runcount >= screen_columns);
- int rep_count = runcount;
-
- if (wrap_possible)
- rep_count--;
-
- UpdateAttrs(AttrOf(ntext0));
- putp(tparm(repeat_char, CharOf(ntext0), rep_count));
- SP->_curscol += rep_count;
-
- if (wrap_possible)
- PutChar(CHREF(ntext0));
- } else {
- for (i = 0; i < runcount; i++)
- PutChar(CHREF(ntext[i]));
- }
- ntext += runcount;
- num -= runcount;
- }
- return 0;
- }
-
- for (i = 0; i < num; i++)
- PutChar(CHREF(ntext[i]));
- return 0;
-}
-
-/*
- * Output the line in the given range [first .. last]
- *
- * If there's a run of identical characters that's long enough to justify
- * cursor movement, use that also.
- *
- * Returns: same as EmitRange
- */
-static int
-PutRange(const NCURSES_CH_T * otext,
- const NCURSES_CH_T * ntext,
- int row,
- int first, int last)
-{
- int j, run;
-
- TR(TRACE_CHARPUT, ("PutRange(%p, %p, %d, %d, %d)",
- otext, ntext, row, first, last));
-
- if (otext != ntext
- && (last - first + 1) > SP->_inline_cost) {
- for (j = first, run = 0; j <= last; j++) {
- if (!run && isnac(otext[j]))
- continue;
- if (CharEq(otext[j], ntext[j])) {
- run++;
- } else {
- if (run > SP->_inline_cost) {
- int before_run = (j - run);
- EmitRange(ntext + first, before_run - first);
- GoTo(row, first = j);
- }
- run = 0;
- }
- }
- }
- return EmitRange(ntext + first, last - first + 1);
-}
-
-/* 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)
-
-NCURSES_EXPORT(int)
-doupdate(void)
-{
- int i;
- int nonempty;
-#if USE_TRACE_TIMES
- struct tms before, after;
-#endif /* USE_TRACE_TIMES */
-
- T((T_CALLED("doupdate()")));
-
-#ifdef TRACE
- if (_nc_tracing & TRACE_UPDATE) {
- if (curscr->_clear)
- _tracef("curscr is clear");
- else
- _tracedump("curscr", curscr);
- _tracedump("newscr", newscr);
- }
-#endif /* TRACE */
-
- _nc_signal_handler(FALSE);
-
- if (SP->_fifohold)
- SP->_fifohold--;
-
-#if USE_SIZECHANGE
- if (SP->_endwin || SP->_sig_winch) {
- /*
- * This is a transparent extension: XSI does not address it,
- * and applications need not know that ncurses can do it.
- *
- * Check if the terminal size has changed while curses was off
- * (this can happen in an xterm, for example), and resize the
- * ncurses data structures accordingly.
- */
- _nc_update_screensize();
- }
-#endif
-
- if (SP->_endwin) {
-
- T(("coming back from shell mode"));
- reset_prog_mode();
-
- _nc_mvcur_resume();
- _nc_screen_resume();
- SP->_mouse_resume(SP);
-
- SP->_endwin = FALSE;
- }
-#if USE_TRACE_TIMES
- /* zero the metering machinery */
- _nc_outchars = 0;
- (void) times(&before);
-#endif /* USE_TRACE_TIMES */
-
- /*
- * This is the support for magic-cookie terminals. The
- * theory: we scan the virtual screen looking for attribute
- * turnons. Where we find one, check to make sure it's
- * realizable by seeing if the required number of
- * un-attributed blanks are present before and after the
- * attributed range; try to shift the range boundaries over
- * blanks (not changing the screen display) so this becomes
- * true. If it is, shift the beginning attribute change
- * appropriately (the end one, if we've gotten this far, is
- * guaranteed room for its cookie). If not, nuke the added
- * attributes out of the span.
- */
-#if USE_XMC_SUPPORT
- if (magic_cookie_glitch > 0) {
- int j, k;
- attr_t rattr = A_NORMAL;
-
- for (i = 0; i < screen_lines; i++) {
- for (j = 0; j < screen_columns; j++) {
- bool failed = FALSE;
- attr_t turnon = AttrOf(newscr->_line[i].text[j]) & ~rattr;
-
- /* is an attribute turned on here? */
- if (turnon == 0) {
- rattr = AttrOf(newscr->_line[i].text[j]);
- continue;
- }
-
- TR(TRACE_ATTRS, ("At (%d, %d): from %s...", i, j, _traceattr(rattr)));
- TR(TRACE_ATTRS, ("...to %s", _traceattr(turnon)));
-
- /*
- * If the attribute change location is a blank with a
- * "safe" attribute, undo the attribute turnon. This may
- * ensure there's enough room to set the attribute before
- * the first non-blank in the run.
- */
-#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
- || !ISBLANK(newscr->_line[i].text[j - k])
- || !SAFE(AttrOf(newscr->_line[i].text[j - k])))
- failed = TRUE;
- }
- if (!failed) {
- bool end_onscreen = FALSE;
- int m, n = j;
-
- /* find end of span, if it's onscreen */
- for (m = i; m < screen_lines; m++) {
- for (; n < screen_columns; n++) {
- if (AttrOf(newscr->_line[m].text[n]) == rattr) {
- end_onscreen = TRUE;
- TR(TRACE_ATTRS,
- ("Range attributed with %s ends at (%d, %d)",
- _traceattr(turnon), m, n));
- goto foundit;
- }
- }
- n = 0;
- }
- TR(TRACE_ATTRS,
- ("Range attributed with %s ends offscreen",
- _traceattr(turnon)));
- foundit:;
-
- if (end_onscreen) {
- NCURSES_CH_T *lastline = newscr->_line[m].text;
-
- /*
- * If there are safely-attributed blanks at the
- * end of the range, shorten the range. This will
- * help ensure that there is enough room at end
- * of span.
- */
- while (n >= 0
- && ISBLANK(lastline[n])
- && SAFE(AttrOf(lastline[n])))
- 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
- || !ISBLANK(lastline[n + k])
- || !SAFE(AttrOf(lastline[n + k])))
- failed = TRUE;
- }
- }
-
- if (failed) {
- int p, q = j;
-
- TR(TRACE_ATTRS,
- ("Clearing %s beginning at (%d, %d)",
- _traceattr(turnon), i, j));
-
- /* turn off new attributes over span */
- for (p = i; p < screen_lines; p++) {
- for (; q < screen_columns; q++) {
- if (AttrOf(newscr->_line[p].text[q]) == rattr)
- goto foundend;
- RemAttr(newscr->_line[p].text[q], turnon);
- }
- q = 0;
- }
- foundend:;
- } else {
- TR(TRACE_ATTRS,
- ("Cookie space for %s found before (%d, %d)",
- _traceattr(turnon), i, j));
-
- /*
- * back up the start of range so there's room
- * for cookies before the first nonblank character
- */
- for (k = 1; k <= magic_cookie_glitch; k++)
- AddAttr(newscr->_line[i].text[j - k], turnon);
- }
-
- rattr = AttrOf(newscr->_line[i].text[j]);
- }
- }
-
-#ifdef TRACE
- /* show altered highlights after magic-cookie check */
- if (_nc_tracing & TRACE_UPDATE) {
- _tracef("After magic-cookie check...");
- _tracedump("newscr", newscr);
- }
-#endif /* TRACE */
- }
-#endif /* USE_XMC_SUPPORT */
-
- nonempty = 0;
- if (curscr->_clear || newscr->_clear) { /* force refresh ? */
- TR(TRACE_UPDATE, ("clearing and updating from scratch"));
- ClrUpdate();
- curscr->_clear = FALSE; /* reset flag */
- newscr->_clear = FALSE; /* reset flag */
- } else {
- int changedlines = CHECK_INTERVAL;
-
- if (check_pending())
- goto cleanup;
-
- nonempty = min(screen_lines, newscr->_maxy + 1);
-
- if (SP->_scrolling) {
- _nc_scroll_optimize();
- }
-
- nonempty = ClrBottom(nonempty);
-
- TR(TRACE_UPDATE, ("Transforming lines, nonempty %d", nonempty));
- for (i = 0; i < nonempty; i++) {
- /*
- * Here is our line-breakout optimization.
- */
- if (changedlines == CHECK_INTERVAL) {
- if (check_pending())
- goto cleanup;
- changedlines = 0;
- }
-
- /*
- * newscr->line[i].firstchar is normally set
- * by wnoutrefresh. curscr->line[i].firstchar
- * is normally set by _nc_scroll_window in the
- * vertical-movement optimization code,
- */
- if (newscr->_line[i].firstchar != _NOCHANGE
- || curscr->_line[i].firstchar != _NOCHANGE) {
- TransformLine(i);
- changedlines++;
- }
-
- /* mark line changed successfully */
- if (i <= newscr->_maxy) {
- MARK_NOCHANGE(newscr, i);
- }
- if (i <= curscr->_maxy) {
- MARK_NOCHANGE(curscr, i);
- }
- }
- }
-
- /* put everything back in sync */
- for (i = nonempty; i <= newscr->_maxy; i++) {
- MARK_NOCHANGE(newscr, i);
- }
- for (i = nonempty; i <= curscr->_maxy; i++) {
- MARK_NOCHANGE(curscr, i);
- }
-
- if (!newscr->_leaveok) {
- curscr->_curx = newscr->_curx;
- curscr->_cury = newscr->_cury;
-
- GoTo(curscr->_cury, curscr->_curx);
- }
-
- cleanup:
- /*
- * Keep the physical screen in normal mode in case we get other
- * processes writing to the screen.
- */
- UpdateAttrs(A_NORMAL);
-
- _nc_flush();
- curscr->_attrs = newscr->_attrs;
-
-#if USE_TRACE_TIMES
- (void) times(&after);
- TR(TRACE_TIMES,
- ("Update cost: %ld chars, %ld clocks system time, %ld clocks user time",
- _nc_outchars,
- (long) (after.tms_stime - before.tms_stime),
- (long) (after.tms_utime - before.tms_utime)));
-#endif /* USE_TRACE_TIMES */
-
- _nc_signal_handler(TRUE);
-
- returnCode(OK);
-}
-
-/*
- * ClrBlank(win)
- *
- * Returns the attributed character that corresponds to the "cleared"
- * screen. If the terminal has the back-color-erase feature, this will be
- * colored according to the wbkgd() call.
- *
- * We treat 'curscr' specially because it isn't supposed to be set directly
- * in the wbkgd() call. Assume 'stdscr' for this case.
- */
-#define BCE_ATTRS (A_NORMAL|A_COLOR)
-#define BCE_BKGD(win) (((win) == curscr ? stdscr : (win))->_nc_bkgd)
-
-static inline NCURSES_CH_T
-ClrBlank(WINDOW *win)
-{
- NCURSES_CH_T blank = NewChar(BLANK_TEXT);
- if (back_color_erase)
- AddAttr(blank, (AttrOf(BCE_BKGD(win)) & BCE_ATTRS));
- return blank;
-}
-
-/*
-** ClrUpdate()
-**
-** Update by clearing and redrawing the entire screen.
-**
-*/
-
-static void
-ClrUpdate(void)
-{
- int i;
- NCURSES_CH_T blank = ClrBlank(stdscr);
- int nonempty = min(screen_lines, newscr->_maxy + 1);
-
- TR(TRACE_UPDATE, ("ClrUpdate() called"));
-
- ClearScreen(blank);
-
- TR(TRACE_UPDATE, ("updating screen from scratch"));
-
- nonempty = ClrBottom(nonempty);
-
- for (i = 0; i < nonempty; i++)
- TransformLine(i);
-}
-
-/*
-** ClrToEOL(blank)
-**
-** Clear to end of current line, starting at the cursor position
-*/
-
-static void
-ClrToEOL(NCURSES_CH_T blank, bool needclear)
-{
- int j;
-
- if (curscr != 0
- && SP->_cursrow >= 0) {
- for (j = SP->_curscol; j < screen_columns; j++) {
- if (j >= 0) {
- NCURSES_CH_T *cp = &(curscr->_line[SP->_cursrow].text[j]);
-
- if (!CharEq(*cp, blank)) {
- *cp = blank;
- needclear = TRUE;
- }
- }
- }
- } else {
- needclear = TRUE;
- }
-
- if (needclear) {
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("clr_eol");
- if (SP->_el_cost > (screen_columns - SP->_curscol)) {
- int count = (screen_columns - SP->_curscol);
- while (count-- > 0)
- PutChar(CHREF(blank));
- } else {
- putp(clr_eol);
- }
- }
-}
-
-/*
-** ClrToEOS(blank)
-**
-** Clear to end of screen, starting at the cursor position
-*/
-
-static void
-ClrToEOS(NCURSES_CH_T blank)
-{
- int row, col;
-
- row = SP->_cursrow;
- col = SP->_curscol;
-
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("clr_eos");
- tputs(clr_eos, screen_lines - row, _nc_outch);
-
- while (col < screen_columns)
- curscr->_line[row].text[col++] = blank;
-
- for (row++; row < screen_lines; row++) {
- for (col = 0; col < screen_columns; col++)
- curscr->_line[row].text[col] = blank;
- }
-}
-
-/*
- * ClrBottom(total)
- *
- * Test if clearing the end of the screen would satisfy part of the
- * screen-update. Do this by scanning backwards through the lines in the
- * screen, checking if each is blank, and one or more are changed.
- */
-static int
-ClrBottom(int total)
-{
- int row;
- int col;
- int top = total;
- int last = min(screen_columns, newscr->_maxx + 1);
- NCURSES_CH_T blank = ClrBlank(stdscr);
- bool ok;
-
- if (clr_eos && can_clear_with(CHREF(blank))) {
-
- for (row = total - 1; row >= 0; row--) {
- for (col = 0, ok = TRUE; ok && col < last; col++) {
- ok = (CharEq(newscr->_line[row].text[col], blank));
- }
- if (!ok)
- break;
-
- for (col = 0; ok && col < last; col++) {
- ok = (CharEq(curscr->_line[row].text[col], blank));
- }
- if (!ok)
- top = row;
- }
-
- /* don't use clr_eos for just one line if clr_eol available */
- if (top < total - 1 || (top < total && !clr_eol && !clr_bol)) {
- GoTo(top, 0);
- ClrToEOS(blank);
- total = top;
- if (SP->oldhash && SP->newhash) {
- for (row = top; row < screen_lines; row++)
- SP->oldhash[row] = SP->newhash[row];
- }
- }
- }
- return total;
-}
-
-#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)
-**
-** Transform the given line in curscr to the one in newscr, using
-** Insert/Delete Character if _nc_idcok && has_ic().
-**
-** firstChar = position of first different character in line
-** oLastChar = position of last different character in old line
-** nLastChar = position of last different character in new line
-**
-** move to firstChar
-** overwrite chars up to min(oLastChar, nLastChar)
-** if oLastChar < nLastChar
-** insert newLine[oLastChar+1..nLastChar]
-** else
-** delete oLastChar - nLastChar spaces
-*/
-
-static void
-TransformLine(int const lineno)
-{
- int firstChar, oLastChar, nLastChar;
- NCURSES_CH_T *newLine = newscr->_line[lineno].text;
- NCURSES_CH_T *oldLine = curscr->_line[lineno].text;
- int n;
- bool attrchanged = FALSE;
-
- TR(TRACE_UPDATE, ("TransformLine(%d) called", lineno));
-
- /* copy new hash value to old one */
- if (SP->oldhash && SP->newhash)
- SP->oldhash[lineno] = SP->newhash[lineno];
-
-#define ColorOf(n) (AttrOf(n) & A_COLOR)
-#define unColor(n) (AttrOf(n) & ALL_BUT_COLOR)
- /*
- * If we have colors, there is the possibility of having two color pairs
- * that display as the same colors. For instance, Lynx does this. Check
- * for this case, and update the old line with the new line's colors when
- * they are equivalent.
- */
- if (SP->_coloron) {
- attr_t oldColor;
- attr_t newColor;
- int oldPair;
- int newPair;
-
- for (n = 0; n < screen_columns; n++) {
- if (!CharEq(newLine[n], oldLine[n])) {
- oldColor = ColorOf(oldLine[n]);
- newColor = ColorOf(newLine[n]);
- if (oldColor != newColor
- && unColor(oldLine[n]) == unColor(newLine[n])) {
- oldPair = PAIR_NUMBER(oldColor);
- newPair = PAIR_NUMBER(newColor);
- if (oldPair < COLOR_PAIRS
- && newPair < COLOR_PAIRS
- && SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) {
- RemAttr(oldLine[n], A_COLOR);
- AddAttr(oldLine[n], ColorOf(newLine[n]));
- }
- }
- }
- }
- }
-
- if (ceol_standout_glitch && clr_eol) {
- firstChar = 0;
- while (firstChar < screen_columns) {
- if (AttrOf(newLine[firstChar]) != AttrOf(oldLine[firstChar]))
- attrchanged = TRUE;
- firstChar++;
- }
- }
-
- firstChar = 0;
-
- if (attrchanged) { /* we may have to disregard the whole line */
- GoTo(lineno, firstChar);
- ClrToEOL(ClrBlank(curscr), FALSE);
- PutRange(oldLine, newLine, lineno, 0, (screen_columns - 1));
-#if USE_XMC_SUPPORT
-
- /*
- * This is a very simple loop to paint characters which may have the
- * magic cookie glitch embedded. It doesn't know much about video
- * attributes which are continued from one line to the next. It
- * assumes that we have filtered out requests for attribute changes
- * that do not get mapped to blank positions.
- *
- * FIXME: we are not keeping track of where we put the cookies, so this
- * will work properly only once, since we may overwrite a cookie in a
- * following operation.
- */
- } else if (magic_cookie_glitch > 0) {
- GoTo(lineno, firstChar);
- for (n = 0; n < screen_columns; n++) {
- int m = n + magic_cookie_glitch;
-
- /* check for turn-on:
- * If we are writing an attributed blank, where the
- * previous cell is not attributed.
- */
- if (ISBLANK(newLine[n])
- && ((n > 0
- && xmc_turn_on(newLine[n - 1], newLine[n]))
- || (n == 0
- && lineno > 0
- && xmc_turn_on(xmc_new(lineno - 1, screen_columns - 1),
- newLine[n])))) {
- n = m;
- }
-
- 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.
- */
- if (!ISBLANK(newLine[n])
- && ((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], xmc_new(lineno + 1, 0))))) {
- n = m;
- }
-
- }
-#endif
- } else {
- NCURSES_CH_T blank;
-
- /* find the first differing character */
- while (firstChar < screen_columns &&
- CharEq(newLine[firstChar], oldLine[firstChar]))
- firstChar++;
-
- /* if there wasn't one, we're done */
- if (firstChar >= screen_columns)
- return;
-
- /* it may be cheap to clear leading whitespace with clr_bol */
- if (clr_bol && (blank = newLine[0], can_clear_with(CHREF(blank)))) {
- int oFirstChar, nFirstChar;
-
- for (oFirstChar = 0; oFirstChar < screen_columns; oFirstChar++)
- if (!CharEq(oldLine[oFirstChar], blank))
- break;
- for (nFirstChar = 0; nFirstChar < screen_columns; nFirstChar++)
- 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);
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("clr_eol");
- putp(clr_eol);
- } else {
- GoTo(lineno, nFirstChar - 1);
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("clr_bol");
- putp(clr_bol);
- }
-
- while (firstChar < nFirstChar)
- oldLine[firstChar++] = blank;
-
- if (firstChar >= screen_columns)
- return;
- }
- }
-
- blank = newLine[screen_columns - 1];
-
- if (!can_clear_with(CHREF(blank))) {
- /* find the last differing character */
- nLastChar = screen_columns - 1;
-
- while (nLastChar > firstChar
- && CharEq(newLine[nLastChar], oldLine[nLastChar]))
- nLastChar--;
-
- if (nLastChar >= firstChar) {
- GoTo(lineno, firstChar);
- PutRange(oldLine, newLine, lineno, firstChar, nLastChar);
- memcpy(oldLine + firstChar,
- newLine + firstChar,
- (nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T));
- }
- return;
- }
-
- /* find last non-blank character on old line */
- oLastChar = screen_columns - 1;
- while (oLastChar > firstChar && CharEq(oldLine[oLastChar], blank))
- oLastChar--;
-
- /* find last non-blank character on new line */
- nLastChar = screen_columns - 1;
- while (nLastChar > firstChar && CharEq(newLine[nLastChar], blank))
- nLastChar--;
-
- if ((nLastChar == firstChar)
- && (SP->_el_cost < (oLastChar - nLastChar))) {
- GoTo(lineno, firstChar);
- if (!CharEq(newLine[firstChar], blank))
- PutChar(CHREF(newLine[firstChar]));
- ClrToEOL(blank, FALSE);
- } else if ((nLastChar != oLastChar)
- && (!CharEq(newLine[nLastChar], oldLine[oLastChar])
- || !(_nc_idcok && has_ic()))) {
- GoTo(lineno, firstChar);
- if ((oLastChar - nLastChar) > SP->_el_cost) {
- if (PutRange(oldLine, newLine, lineno, firstChar, nLastChar))
- GoTo(lineno, nLastChar + 1);
- ClrToEOL(blank, FALSE);
- } else {
- n = max(nLastChar, oLastChar);
- PutRange(oldLine, newLine, lineno, firstChar, n);
- }
- } else {
- int nLastNonblank = nLastChar;
- int oLastNonblank = oLastChar;
-
- /* find the last characters that really differ */
- /* 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;
- }
-
- n = min(oLastChar, nLastChar);
- if (n >= firstChar) {
- GoTo(lineno, firstChar);
- PutRange(oldLine, newLine, lineno, firstChar, n);
- }
-
- if (oLastChar < nLastChar) {
- int m = max(nLastNonblank, oLastNonblank);
- GoTo(lineno, n + 1);
- if (InsCharCost(nLastChar - oLastChar)
- > (m - n)) {
- PutRange(oldLine, newLine, lineno, n + 1, m);
- } else {
- InsStr(&newLine[n + 1], nLastChar - oLastChar);
- }
- } else if (oLastChar > nLastChar) {
- GoTo(lineno, n + 1);
- if (DelCharCost(oLastChar - nLastChar)
- > SP->_el_cost + nLastNonblank - (n + 1)) {
- if (PutRange(oldLine, newLine, lineno,
- n + 1, nLastNonblank))
- GoTo(lineno, nLastNonblank + 1);
- ClrToEOL(blank, FALSE);
- } else {
- /*
- * The delete-char sequence will
- * effectively shift in blanks from the
- * right margin of the screen. Ensure
- * that they are the right color by
- * setting the video attributes from
- * the last character on the row.
- */
- UpdateAttrs(AttrOf(blank));
- DelChar(oLastChar - nLastChar);
- }
- }
- }
- }
-
- /* update the code's internal representation */
- if (screen_columns > firstChar)
- memcpy(oldLine + firstChar,
- newLine + firstChar,
- (screen_columns - firstChar) * sizeof(NCURSES_CH_T));
-}
-
-/*
-** ClearScreen(blank)
-**
-** Clear the physical screen and put cursor at home
-**
-*/
-
-static void
-ClearScreen(NCURSES_CH_T blank)
-{
- int i, j;
- bool fast_clear = (clear_screen || clr_eos || clr_eol);
-
- TR(TRACE_UPDATE, ("ClearScreen() called"));
-
-#if NCURSES_EXT_FUNCS
- if (SP->_coloron
- && !SP->_default_color) {
- _nc_do_color((int) COLOR_PAIR(SP->_current_attr), 0, FALSE, _nc_outch);
- if (!back_color_erase) {
- fast_clear = FALSE;
- }
- }
-#endif
-
- if (fast_clear) {
- if (clear_screen) {
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("clear_screen");
- putp(clear_screen);
- SP->_cursrow = SP->_curscol = 0;
- position_check(SP->_cursrow, SP->_curscol, "ClearScreen");
- } else if (clr_eos) {
- SP->_cursrow = SP->_curscol = -1;
- GoTo(0, 0);
-
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("clr_eos");
- putp(clr_eos);
- } else if (clr_eol) {
- SP->_cursrow = SP->_curscol = -1;
-
- UpdateAttrs(AttrOf(blank));
- for (i = 0; i < screen_lines; i++) {
- GoTo(i, 0);
- TPUTS_TRACE("clr_eol");
- putp(clr_eol);
- }
- GoTo(0, 0);
- }
- } else {
- UpdateAttrs(AttrOf(blank));
- for (i = 0; i < screen_lines; i++) {
- GoTo(i, 0);
- for (j = 0; j < screen_columns; j++)
- PutChar(CHREF(blank));
- }
- GoTo(0, 0);
- }
-
- for (i = 0; i < screen_lines; i++) {
- for (j = 0; j < screen_columns; j++)
- curscr->_line[i].text[j] = blank;
- }
-
- TR(TRACE_UPDATE, ("screen cleared"));
-}
-
-/*
-** InsStr(line, count)
-**
-** Insert the count characters pointed to by line.
-**
-*/
-
-static void
-InsStr(NCURSES_CH_T * line, int count)
-{
- TR(TRACE_UPDATE, ("InsStr(%p,%d) called", line, count));
-
- /* Prefer parm_ich as it has the smallest cost - no need to shift
- * the whole line on each character. */
- /* The order must match that of InsCharCost. */
- if (parm_ich) {
- TPUTS_TRACE("parm_ich");
- tputs(tparm(parm_ich, count), count, _nc_outch);
- while (count) {
- PutAttrChar(CHREF(*line));
- line++;
- count--;
- }
- } else if (enter_insert_mode && exit_insert_mode) {
- TPUTS_TRACE("enter_insert_mode");
- putp(enter_insert_mode);
- while (count) {
- PutAttrChar(CHREF(*line));
- if (insert_padding) {
- TPUTS_TRACE("insert_padding");
- putp(insert_padding);
- }
- line++;
- count--;
- }
- TPUTS_TRACE("exit_insert_mode");
- putp(exit_insert_mode);
- } else {
- while (count) {
- TPUTS_TRACE("insert_character");
- putp(insert_character);
- PutAttrChar(CHREF(*line));
- if (insert_padding) {
- TPUTS_TRACE("insert_padding");
- putp(insert_padding);
- }
- line++;
- count--;
- }
- }
- position_check(SP->_cursrow, SP->_curscol, "InsStr");
-}
-
-/*
-** DelChar(count)
-**
-** Delete count characters at current position
-**
-*/
-
-static void
-DelChar(int count)
-{
- int n;
-
- TR(TRACE_UPDATE, ("DelChar(%d) called, position = (%d,%d)", count,
- newscr->_cury, newscr->_curx));
-
- if (parm_dch) {
- TPUTS_TRACE("parm_dch");
- tputs(tparm(parm_dch, count), count, _nc_outch);
- } else {
- for (n = 0; n < count; n++) {
- TPUTS_TRACE("delete_character");
- putp(delete_character);
- }
- }
-}
-
-/*
-** _nc_outstr(char *str)
-**
-** Emit a string without waiting for update.
-*/
-
-NCURSES_EXPORT(void)
-_nc_outstr(const char *str)
-{
- (void) putp(str);
- _nc_flush();
-}
-
-/*
- * Physical-scrolling support
- *
- * This code was adapted from Keith Bostic's hardware scrolling
- * support for 4.4BSD curses. I (esr) translated it to use terminfo
- * capabilities, narrowed the call interface slightly, and cleaned
- * up some convoluted tests. I also added support for the memory_above
- * memory_below, and non_dest_scroll_region capabilities.
- *
- * For this code to work, we must have either
- * change_scroll_region and scroll forward/reverse commands, or
- * insert and delete line capabilities.
- * When the scrolling region has been set, the cursor has to
- * be at the last line of the region to make the scroll up
- * happen, or on the first line of region to scroll down.
- *
- * This code makes one aesthetic decision in the opposite way from
- * BSD curses. BSD curses preferred pairs of il/dl operations
- * over scrolls, allegedly because il/dl looked faster. We, on
- * the other hand, prefer scrolls because (a) they're just as fast
- * on many terminals and (b) using them avoids bouncing an
- * unchanged bottom section of the screen up and down, which is
- * visually nasty.
- *
- * (lav): added more cases, used dl/il when bot==maxy and in csr case.
- *
- * I used assumption that capabilities il/il1/dl/dl1 work inside
- * changed scroll region not shifting screen contents outside of it.
- * If there are any terminals behaving different way, it would be
- * necessary to add some conditions to scroll_csr_forward/backward.
- */
-
-/* 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, NCURSES_CH_T blank)
-{
- int i;
-
- if (n == 1 && scroll_forward && top == miny && bot == maxy) {
- GoTo(bot, 0);
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("scroll_forward");
- tputs(scroll_forward, 0, _nc_outch);
- } else if (n == 1 && delete_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("delete_line");
- tputs(delete_line, 0, _nc_outch);
- } else if (parm_index && top == miny && bot == maxy) {
- GoTo(bot, 0);
- 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);
- 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);
- 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);
- UpdateAttrs(AttrOf(blank));
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("delete_line");
- tputs(delete_line, 0, _nc_outch);
- }
- } else
- return ERR;
-
-#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++)
- PutChar(CHREF(blank));
- }
- }
-#endif
- return OK;
-}
-
-/* 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,
- NCURSES_CH_T blank)
-{
- int i;
-
- if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("scroll_reverse");
- tputs(scroll_reverse, 0, _nc_outch);
- } else if (n == 1 && insert_line && bot == maxy) {
- GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
- TPUTS_TRACE("insert_line");
- tputs(insert_line, 0, _nc_outch);
- } else if (parm_rindex && top == miny && bot == maxy) {
- GoTo(top, 0);
- 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);
- 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);
- 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);
- UpdateAttrs(AttrOf(blank));
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("insert_line");
- tputs(insert_line, 0, _nc_outch);
- }
- } else
- return ERR;
-
-#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++)
- PutChar(CHREF(blank));
- }
- }
-#endif
- return OK;
-}
-
-/* scroll by using delete_line at del and insert_line at ins */
-/* n > 0 */
-static int
-scroll_idl(int n, int del, int ins, NCURSES_CH_T blank)
-{
- int i;
-
- if (!((parm_delete_line || delete_line) && (parm_insert_line || insert_line)))
- return ERR;
-
- GoTo(del, 0);
- UpdateAttrs(AttrOf(blank));
- if (n == 1 && delete_line) {
- TPUTS_TRACE("delete_line");
- tputs(delete_line, 0, _nc_outch);
- } else if (parm_delete_line) {
- TPUTS_TRACE("parm_delete_line");
- tputs(tparm(parm_delete_line, n, 0), n, _nc_outch);
- } else { /* if (delete_line) */
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("delete_line");
- tputs(delete_line, 0, _nc_outch);
- }
- }
-
- GoTo(ins, 0);
- UpdateAttrs(AttrOf(blank));
- if (n == 1 && insert_line) {
- TPUTS_TRACE("insert_line");
- tputs(insert_line, 0, _nc_outch);
- } else if (parm_insert_line) {
- TPUTS_TRACE("parm_insert_line");
- tputs(tparm(parm_insert_line, n, 0), n, _nc_outch);
- } else { /* if (insert_line) */
- for (i = 0; i < n; i++) {
- TPUTS_TRACE("insert_line");
- tputs(insert_line, 0, _nc_outch);
- }
- }
-
- return OK;
-}
-
-NCURSES_EXPORT(int)
-_nc_scrolln(int n, int top, int bot, int maxy)
-/* scroll region from top to bot by n lines */
-{
- NCURSES_CH_T blank = ClrBlank(stdscr);
- int i;
- bool cursor_saved = FALSE;
- int res;
-
- TR(TRACE_MOVE, ("mvcur_scrolln(%d, %d, %d, %d)", n, top, bot, maxy));
-
-#if USE_XMC_SUPPORT
- /*
- * If we scroll, we might remove a cookie.
- */
- if (magic_cookie_glitch > 0) {
- return (ERR);
- }
-#endif
-
- if (n > 0) { /* scroll up (forward) */
- /*
- * Explicitly clear if stuff pushed off top of region might
- * be saved by the terminal.
- */
- res = scroll_csr_forward(n, top, bot, 0, maxy, blank);
-
- if (res == ERR && change_scroll_region) {
- if ((((n == 1 && scroll_forward) || parm_index)
- && (SP->_cursrow == bot || SP->_cursrow == bot - 1))
- && save_cursor && restore_cursor) {
- cursor_saved = TRUE;
- TPUTS_TRACE("save_cursor");
- tputs(save_cursor, 0, _nc_outch);
- }
- TPUTS_TRACE("change_scroll_region");
- tputs(tparm(change_scroll_region, top, bot), 0, _nc_outch);
- if (cursor_saved) {
- TPUTS_TRACE("restore_cursor");
- tputs(restore_cursor, 0, _nc_outch);
- } else {
- SP->_cursrow = SP->_curscol = -1;
- }
-
- res = scroll_csr_forward(n, top, bot, top, bot, blank);
-
- TPUTS_TRACE("change_scroll_region");
- tputs(tparm(change_scroll_region, 0, maxy), 0, _nc_outch);
- SP->_cursrow = SP->_curscol = -1;
- }
-
- if (res == ERR && _nc_idlok)
- res = scroll_idl(n, top, bot - n + 1, blank);
-
- /*
- * Clear the newly shifted-in text.
- */
- 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);
- ClrToEOS(blank2);
- } else {
- for (i = 0; i < n; i++) {
- GoTo(bot - i, 0);
- ClrToEOL(blank2, FALSE);
- }
- }
- }
-
- } else { /* (n < 0) - scroll down (backward) */
- res = scroll_csr_backward(-n, top, bot, 0, maxy, blank);
-
- if (res == ERR && change_scroll_region) {
- if (top != 0 && (SP->_cursrow == top || SP->_cursrow == top - 1)
- && save_cursor && restore_cursor) {
- cursor_saved = TRUE;
- TPUTS_TRACE("save_cursor");
- tputs(save_cursor, 0, _nc_outch);
- }
- TPUTS_TRACE("change_scroll_region");
- tputs(tparm(change_scroll_region, top, bot), 0, _nc_outch);
- if (cursor_saved) {
- TPUTS_TRACE("restore_cursor");
- tputs(restore_cursor, 0, _nc_outch);
- } else {
- SP->_cursrow = SP->_curscol = -1;
- }
-
- res = scroll_csr_backward(-n, top, bot, top, bot, blank);
-
- TPUTS_TRACE("change_scroll_region");
- tputs(tparm(change_scroll_region, 0, maxy), 0, _nc_outch);
- SP->_cursrow = SP->_curscol = -1;
- }
-
- if (res == ERR && _nc_idlok)
- res = scroll_idl(-n, bot + n + 1, top, blank);
-
- /*
- * Clear the newly shifted-in text.
- */
- 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);
- ClrToEOL(blank2, FALSE);
- }
- }
- }
-
- if (res == ERR)
- return (ERR);
-
- _nc_scroll_window(curscr, n, top, bot, blank);
-
- /* shift hash values too - they can be reused */
- _nc_scroll_oldhash(n, top, bot);
-
- return (OK);
-}
-
-NCURSES_EXPORT(void)
-_nc_screen_resume(void)
-{
- /* make sure terminal is in a sane known state */
- SP->_current_attr = A_NORMAL;
- newscr->_clear = TRUE;
-
- /* 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 {
- /* turn off attributes */
- if (exit_alt_charset_mode)
- putp(exit_alt_charset_mode);
- if (exit_standout_mode)
- putp(exit_standout_mode);
- if (exit_underline_mode)
- putp(exit_underline_mode);
- }
- if (exit_insert_mode)
- putp(exit_insert_mode);
- if (enter_am_mode && exit_am_mode)
- putp(auto_right_margin ? enter_am_mode : exit_am_mode);
-}
-
-NCURSES_EXPORT(void)
-_nc_screen_init(void)
-{
- _nc_screen_resume();
-}
-
-/* wrap up screen handling */
-NCURSES_EXPORT(void)
-_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;
-
- mvcur(SP->_cursrow, SP->_curscol, screen_lines - 1, 0);
- SP->_cursrow = screen_lines - 1;
- SP->_curscol = 0;
-
- ClrToEOL(blank, TRUE);
- }
-#endif
- if (SP->_color_defs) {
- _nc_reset_colors();
- }
-}
-
-#if USE_XMC_SUPPORT
-NCURSES_EXPORT(void)
-_nc_do_xmc_glitch(attr_t previous)
-{
- attr_t chg = XMC_CHANGES(previous ^ SP->_current_attr);
-
- while (chg != 0) {
- if (chg & 1) {
- SP->_curscol += magic_cookie_glitch;
- if (SP->_curscol >= SP->_columns)
- wrap_cursor();
- TR(TRACE_UPDATE, ("bumped to %d,%d after cookie", SP->_cursrow, SP->_curscol));
- }
- chg >>= 1;
- }
-}
-#endif /* USE_XMC_SUPPORT */
diff --git a/ncurses-5.3/ncurses/widechar/lib_box_set.c b/ncurses-5.3/ncurses/widechar/lib_box_set.c
deleted file mode 100644
index 77cd843..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_box_set.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_cchar.c b/ncurses-5.3/ncurses/widechar/lib_cchar.c
deleted file mode 100644
index 76f3f9a..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_cchar.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/****************************************************************************
- * 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$")
-
-/*
- * 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-5.3/ncurses/widechar/lib_erasewchar.c b/ncurses-5.3/ncurses/widechar/lib_erasewchar.c
deleted file mode 100644
index a865c93..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_erasewchar.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * 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$")
-
-/*
- * 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-5.3/ncurses/widechar/lib_get_wch.c b/ncurses-5.3/ncurses/widechar/lib_get_wch.c
deleted file mode 100644
index 8a71352..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_get_wch.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_get_wstr.c b/ncurses-5.3/ncurses/widechar/lib_get_wstr.c
deleted file mode 100644
index 6dca289..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_get_wstr.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/****************************************************************************
- * 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$")
-
-/*
- * 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-5.3/ncurses/widechar/lib_hline_set.c b/ncurses-5.3/ncurses/widechar/lib_hline_set.c
deleted file mode 100644
index bb0c908..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_hline_set.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_in_wch.c b/ncurses-5.3/ncurses/widechar/lib_in_wch.c
deleted file mode 100644
index c5fad20..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_in_wch.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_in_wchnstr.c b/ncurses-5.3/ncurses/widechar/lib_in_wchnstr.c
deleted file mode 100644
index ee80bc6..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_in_wchnstr.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_ins_nwstr.c b/ncurses-5.3/ncurses/widechar/lib_ins_nwstr.c
deleted file mode 100644
index e164a21..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_ins_nwstr.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_ins_wch.c b/ncurses-5.3/ncurses/widechar/lib_ins_wch.c
deleted file mode 100644
index ce56439..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_ins_wch.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_inwstr.c b/ncurses-5.3/ncurses/widechar/lib_inwstr.c
deleted file mode 100644
index f175de9..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_inwstr.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_unget_wch.c b/ncurses-5.3/ncurses/widechar/lib_unget_wch.c
deleted file mode 100644
index 6a3b31d..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_unget_wch.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_vid_attr.c b/ncurses-5.3/ncurses/widechar/lib_vid_attr.c
deleted file mode 100644
index d8841af..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_vid_attr.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
- * 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$")
-
-#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-5.3/ncurses/widechar/lib_vline_set.c b/ncurses-5.3/ncurses/widechar/lib_vline_set.c
deleted file mode 100644
index 733d3ca..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_vline_set.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_wacs.c b/ncurses-5.3/ncurses/widechar/lib_wacs.c
deleted file mode 100644
index 509534c..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_wacs.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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-5.3/ncurses/widechar/lib_wunctrl.c b/ncurses-5.3/ncurses/widechar/lib_wunctrl.c
deleted file mode 100644
index 8db20bf..0000000
--- a/ncurses-5.3/ncurses/widechar/lib_wunctrl.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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$")
-
-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
diff --git a/ncurses-5.3/panel/Makefile.in b/ncurses-5.3/panel/Makefile.in
deleted file mode 100644
index aff24de..0000000
--- a/ncurses-5.3/panel/Makefile.in
+++ /dev/null
@@ -1,154 +0,0 @@
-# $Id$
-##############################################################################
-# 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"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1996,1997
-#
-# Makefile for panels source code.
-#
-# This makes the following:
-# libraries (normal/debug/profile/shared)
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = @DFT_LWR_MODEL@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_LIB = @INSTALL@ @INSTALL_LIB@
-INSTALL_PROG = @INSTALL_PROG@
-INSTALL_DATA = @INSTALL_DATA@
-
-AR = @AR@
-AR_OPTS = @AR_OPTS@
-AWK = @AWK@
-LD = @LD@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @CPPFLAGS@ -I@top_srcdir@/ncurses \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(LIBTOOL) $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-SHLIB_DIRS = -L../lib
-SHLIB_LIST = $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
-
-MK_SHARED_LIB = @MK_SHARED_LIB@
-
-NCURSES_MAJOR = @NCURSES_MAJOR@
-NCURSES_MINOR = @NCURSES_MINOR@
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-
-RANLIB = @RANLIB@
-
-IMPORT_LIB = @IMPORT_LIB@
-SHARED_LIB = @SHARED_LIB@
-LIBRARIES = @LIBS_TO_MAKE@
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lpanel -lncurses @LIBS@
-
-AUTO_SRC = \
- ../include/panel.h
-
-################################################################################
-all \
-libs \
-install :: $(AUTO_SRC) $(LIBRARIES)
-
-sources: $(AUTO_SRC)
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(libdir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-# make a copy to simplify include-paths while still keeping panel's include
-# file in this directory.
-../include/panel.h : $(srcdir)/panel.h
- -rm -f $@
- cp $(srcdir)/panel.h $@
-
-PANEL_PRIV_H = \
- $(srcdir)/panel.priv.h \
- $(srcdir)/panel.h
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/panel/headers b/ncurses-5.3/panel/headers
deleted file mode 100644
index fa0164c..0000000
--- a/ncurses-5.3/panel/headers
+++ /dev/null
@@ -1,31 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-$(srcdir)/panel.h
diff --git a/ncurses-5.3/panel/llib-lpanel b/ncurses-5.3/panel/llib-lpanel
deleted file mode 100644
index 42bb0f5..0000000
--- a/ncurses-5.3/panel/llib-lpanel
+++ /dev/null
@@ -1,177 +0,0 @@
-/****************************************************************************
- * 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 <dickey@clark.net> 1997,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); }
diff --git a/ncurses-5.3/panel/llib-lpanelw b/ncurses-5.3/panel/llib-lpanelw
deleted file mode 100644
index 0c05a1e..0000000
--- a/ncurses-5.3/panel/llib-lpanelw
+++ /dev/null
@@ -1,177 +0,0 @@
-/****************************************************************************
- * 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); }
diff --git a/ncurses-5.3/panel/modules b/ncurses-5.3/panel/modules
deleted file mode 100644
index ed51d2c..0000000
--- a/ncurses-5.3/panel/modules
+++ /dev/null
@@ -1,49 +0,0 @@
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
-#
-
-@ base
-# Library objects
-panel lib $(srcdir) $(PANEL_PRIV_H)
-p_above lib $(srcdir) $(PANEL_PRIV_H)
-p_below lib $(srcdir) $(PANEL_PRIV_H)
-p_bottom lib $(srcdir) $(PANEL_PRIV_H)
-p_delete lib $(srcdir) $(PANEL_PRIV_H)
-p_hide lib $(srcdir) $(PANEL_PRIV_H)
-p_hidden lib $(srcdir) $(PANEL_PRIV_H)
-p_move lib $(srcdir) $(PANEL_PRIV_H)
-p_new lib $(srcdir) $(PANEL_PRIV_H)
-p_replace lib $(srcdir) $(PANEL_PRIV_H)
-p_show lib $(srcdir) $(PANEL_PRIV_H)
-p_top lib $(srcdir) $(PANEL_PRIV_H)
-p_update lib $(srcdir) $(PANEL_PRIV_H)
-p_user lib $(srcdir) $(PANEL_PRIV_H)
-p_win lib $(srcdir) $(PANEL_PRIV_H)
-
diff --git a/ncurses-5.3/panel/p_above.c b/ncurses-5.3/panel/p_above.c
deleted file mode 100644
index 455843f..0000000
--- a/ncurses-5.3/panel/p_above.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_above.c
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(PANEL *)
-panel_above (const PANEL *pan)
-{
- if(!pan)
- {
- /* if top and bottom are equal, we have no or only the pseudo panel;
- if not, we return the panel above the pseudo panel */
- return(EMPTY_STACK() ? (PANEL*)0 : _nc_bottom_panel->above);
- }
- else
- return(pan->above);
-}
diff --git a/ncurses-5.3/panel/p_below.c b/ncurses-5.3/panel/p_below.c
deleted file mode 100644
index 5bc6e56..0000000
--- a/ncurses-5.3/panel/p_below.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_below.c
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(PANEL*)
-panel_below (const PANEL *pan)
-{
- if(!pan)
- {
- /* if top and bottom are equal, we have no or only the pseudo panel */
- return(EMPTY_STACK() ? (PANEL*)0 : _nc_top_panel);
- }
- else
- {
- /* we must not return the pseudo panel */
- return(Is_Pseudo(pan->below) ? (PANEL*) 0 : pan->below);
- }
-}
diff --git a/ncurses-5.3/panel/p_bottom.c b/ncurses-5.3/panel/p_bottom.c
deleted file mode 100644
index e1b00cd..0000000
--- a/ncurses-5.3/panel/p_bottom.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_bottom.c
- * Place a panel on bottom of the stack; may already be in the stack
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-bottom_panel (PANEL *pan)
-{
- int err = OK;
-
- if (pan) {
-
- if(!Is_Bottom(pan)) {
-
- dBug(("--> bottom_panel %s", USER_PTR(pan->user)));
-
- HIDE_PANEL(pan,err,OK);
- assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
-
- dStack("<lb%d>",1,pan);
-
- pan->below = _nc_bottom_panel;
- pan->above = _nc_bottom_panel->above;
- if (pan->above)
- pan->above->below = pan;
- _nc_bottom_panel->above = pan;
-
- dStack("<lb%d>",9,pan);
- }
- }
- else
- err = ERR;
-
- return(err);
-}
diff --git a/ncurses-5.3/panel/p_delete.c b/ncurses-5.3/panel/p_delete.c
deleted file mode 100644
index 1f2b626..0000000
--- a/ncurses-5.3/panel/p_delete.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_delete.c
- * Remove a panel from stack, if in it, and free struct
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-del_panel (PANEL *pan)
-{
- int err = OK;
- if(pan)
- {
- dBug(("--> del_panel %s", USER_PTR(pan->user)));
- HIDE_PANEL(pan,err,OK);
- free((void *)pan);
- }
- else
- err = ERR;
- return(err);
-}
diff --git a/ncurses-5.3/panel/p_hidden.c b/ncurses-5.3/panel/p_hidden.c
deleted file mode 100644
index ab67623..0000000
--- a/ncurses-5.3/panel/p_hidden.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_hidden.c
- * Test whether or not panel is hidden
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-panel_hidden (const PANEL *pan)
-{
- if(!pan)
- return(ERR);
- return(IS_LINKED(pan) ? FALSE : TRUE);
-}
diff --git a/ncurses-5.3/panel/p_hide.c b/ncurses-5.3/panel/p_hide.c
deleted file mode 100644
index 3a5c44f..0000000
--- a/ncurses-5.3/panel/p_hide.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_hide.c
- * Remove a panel from the stack
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-hide_panel (register PANEL *pan)
-{
- int err = OK;
-
- if(!pan)
- return(ERR);
-
- dBug(("--> hide_panel %s", USER_PTR(pan->user)));
- dStack("<u%d>",1,pan);
-
- HIDE_PANEL(pan,err,ERR);
-
- dStack("<u%d>",9,pan);
-
- return(err);
-}
diff --git a/ncurses-5.3/panel/p_move.c b/ncurses-5.3/panel/p_move.c
deleted file mode 100644
index d716861..0000000
--- a/ncurses-5.3/panel/p_move.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_move.c
- * Move a panel to a new location
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-move_panel (PANEL *pan, int starty, int startx)
-{
- if(!pan)
- return(ERR);
-
- if (IS_LINKED(pan)) {
- Touchpan(pan);
- PANEL_UPDATE(pan,(PANEL*)0);
- }
-
- if (mvwin(pan->win,starty,startx))
- return(ERR);
-
- return(OK);
-}
diff --git a/ncurses-5.3/panel/p_new.c b/ncurses-5.3/panel/p_new.c
deleted file mode 100644
index f4bb51c..0000000
--- a/ncurses-5.3/panel/p_new.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_new.c
- * Creation of a new panel
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-static char* stdscr_id;
-static char* new_id;
-#endif
-
-/*+-------------------------------------------------------------------------
- Get root (i.e. stdscr's) panel.
- Establish the pseudo panel for stdscr if necessary.
---------------------------------------------------------------------------*/
-static PANEL*
-root_panel(void)
-{
- if(_nc_stdscr_pseudo_panel == (PANEL*)0)
- {
-
- assert(stdscr && !_nc_bottom_panel && !_nc_top_panel);
- _nc_stdscr_pseudo_panel = (PANEL*)malloc(sizeof(PANEL));
- if (_nc_stdscr_pseudo_panel != 0) {
- PANEL* pan = _nc_stdscr_pseudo_panel;
- WINDOW* win = stdscr;
- pan->win = win;
- pan->below = (PANEL*)0;
- pan->above = (PANEL*)0;
-#ifdef TRACE
- if (!stdscr_id)
- stdscr_id = strdup("stdscr");
- pan->user = stdscr_id;
-#else
- pan->user = (void*)0;
-#endif
- _nc_bottom_panel = _nc_top_panel = pan;
- }
- }
- return _nc_stdscr_pseudo_panel;
-}
-
-NCURSES_EXPORT(PANEL *)
-new_panel (WINDOW *win)
-{
- PANEL *pan = (PANEL*)0;
-
- if (!win)
- return(pan);
-
- if (!_nc_stdscr_pseudo_panel)
- (void)root_panel();
- assert(_nc_stdscr_pseudo_panel);
-
- if (!(win->_flags & _ISPAD) && (pan = (PANEL*)malloc(sizeof(PANEL))))
- {
- pan->win = win;
- pan->above = (PANEL *)0;
- pan->below = (PANEL *)0;
-#ifdef TRACE
- if (!new_id)
- new_id = strdup("new");
- pan->user = new_id;
-#else
- pan->user = (char *)0;
-#endif
- (void)show_panel(pan);
- }
- return(pan);
-}
diff --git a/ncurses-5.3/panel/p_replace.c b/ncurses-5.3/panel/p_replace.c
deleted file mode 100644
index a0fda29..0000000
--- a/ncurses-5.3/panel/p_replace.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_replace.c
- * Replace a panels window.
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-replace_panel (PANEL *pan, WINDOW *win)
-{
- if(!pan)
- return(ERR);
-
- if (IS_LINKED(pan)) {
- Touchpan(pan);
- PANEL_UPDATE(pan,(PANEL*)0);
- }
-
- pan->win = win;
-
- return(OK);
-}
diff --git a/ncurses-5.3/panel/p_show.c b/ncurses-5.3/panel/p_show.c
deleted file mode 100644
index e3f57f2..0000000
--- a/ncurses-5.3/panel/p_show.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_show.c
- * Place a panel on top of the stack; may already be in the stack
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-show_panel (PANEL *pan)
-{
- int err = OK;
-
- if(!pan)
- return(ERR);
-
- if (Is_Top(pan))
- return(OK);
-
- dBug(("--> show_panel %s", USER_PTR(pan->user)));
-
- HIDE_PANEL(pan,err,OK);
-
- dStack("<lt%d>",1,pan);
- assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
-
- _nc_top_panel->above = pan;
- pan->below = _nc_top_panel;
- pan->above = (PANEL *)0;
- _nc_top_panel = pan;
-
- dStack("<lt%d>",9,pan);
-
- return(OK);
-}
diff --git a/ncurses-5.3/panel/p_top.c b/ncurses-5.3/panel/p_top.c
deleted file mode 100644
index 4dce221..0000000
--- a/ncurses-5.3/panel/p_top.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_top.c
- * Place a panel on top of the stack.
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-top_panel (PANEL *pan)
-{
- return(show_panel(pan));
-}
diff --git a/ncurses-5.3/panel/p_update.c b/ncurses-5.3/panel/p_update.c
deleted file mode 100644
index feb44dd..0000000
--- a/ncurses-5.3/panel/p_update.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_update.c
- * wnoutrefresh windows in an orderly fashion
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(void)
-update_panels (void)
-{
- PANEL *pan;
-
- dBug(("--> update_panels"));
- pan = _nc_bottom_panel;
- while(pan && pan->above)
- {
- PANEL_UPDATE(pan,pan->above);
- pan = pan->above;
- }
-
- pan = _nc_bottom_panel;
- while (pan)
- {
- Wnoutrefresh(pan);
- pan = pan->above;
- }
-}
diff --git a/ncurses-5.3/panel/p_user.c b/ncurses-5.3/panel/p_user.c
deleted file mode 100644
index 11d79a4..0000000
--- a/ncurses-5.3/panel/p_user.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_user.c
- * Set/Get panels user pointer
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(int)
-set_panel_userptr
-(PANEL *pan, NCURSES_CONST void *uptr)
-{
- if(!pan)
- return(ERR);
- pan->user = uptr;
- return(OK);
-}
-
-NCURSES_EXPORT(NCURSES_CONST void*)
-panel_userptr (const PANEL *pan)
-{
- return(pan ? pan->user : (NCURSES_CONST void *)0);
-}
-
diff --git a/ncurses-5.3/panel/p_win.c b/ncurses-5.3/panel/p_win.c
deleted file mode 100644
index 54d8ee3..0000000
--- a/ncurses-5.3/panel/p_win.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* p_win.c
- * Return a panels window.
- */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-NCURSES_EXPORT(WINDOW *)
-panel_window (const PANEL *pan)
-{
- return(pan ? pan->win : (WINDOW *)0);
-}
-
-
-
-
diff --git a/ncurses-5.3/panel/panel.c b/ncurses-5.3/panel/panel.c
deleted file mode 100644
index 4e54389..0000000
--- a/ncurses-5.3/panel/panel.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* panel.c -- implementation of panels library, some core routines */
-#include "panel.priv.h"
-
-MODULE_ID("$Id$")
-
-#ifdef TRACE
-#ifndef TRACE_TXT
-NCURSES_EXPORT(const char *)
-_nc_my_visbuf (const void *ptr)
-{
- char temp[32];
- if (ptr != 0)
- sprintf(temp, "ptr:%p", ptr);
- else
- strcpy(temp, "<null>");
- return _nc_visbuf(temp);
-}
-#endif
-#endif
-
-
-/*+-------------------------------------------------------------------------
- dPanel(text,pan)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-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),
- (pan->below) ? USER_PTR(pan->below->user) : "--",
- (pan->above) ? USER_PTR(pan->above->user) : "--",
- PSTARTY(pan), PSTARTX(pan));
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- dStack(fmt,num,pan)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-NCURSES_EXPORT(void)
-_nc_dStack
-(const char *fmt, int num, const PANEL *pan)
-{
- char s80[80];
-
- sprintf(s80,fmt,num,pan);
- _tracef("%s b=%s t=%s",s80,
- (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--",
- (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--");
- if(pan)
- _tracef("pan id=%s", USER_PTR(pan->user));
- pan = _nc_bottom_panel;
- while(pan)
- {
- dPanel("stk",pan);
- pan = pan->above;
- }
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- Wnoutrefresh(pan) - debugging hook for wnoutrefresh
---------------------------------------------------------------------------*/
-#ifdef TRACE
-NCURSES_EXPORT(void)
-_nc_Wnoutrefresh (const PANEL *pan)
-{
- dPanel("wnoutrefresh",pan);
- wnoutrefresh(pan->win);
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- Touchpan(pan)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-NCURSES_EXPORT(void)
-_nc_Touchpan (const PANEL *pan)
-{
- dPanel("Touchpan",pan);
- touchwin(pan->win);
-}
-#endif
-
-/*+-------------------------------------------------------------------------
- Touchline(pan,start,count)
---------------------------------------------------------------------------*/
-#ifdef TRACE
-NCURSES_EXPORT(void)
-_nc_Touchline
-(const PANEL *pan, int start, int count)
-{
- char s80[80];
- sprintf(s80,"Touchline s=%d c=%d",start,count);
- dPanel(s80,pan);
- touchline(pan->win,start,count);
-}
-#endif
-
-#ifndef TRACE
-# ifndef __GNUC__
- /* Some C compilers need something defined in a source file */
- void _nc_dummy_panel(void) { }
-# endif
-#endif
diff --git a/ncurses-5.3/panel/panel.h b/ncurses-5.3/panel/panel.h
deleted file mode 100644
index 3b8542a..0000000
--- a/ncurses-5.3/panel/panel.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/* panel.h -- interface file for panels library */
-
-#ifndef NCURSES_PANEL_H_incl
-#define NCURSES_PANEL_H_incl 1
-
-#include <curses.h>
-
-typedef struct panel
-{
- WINDOW *win;
- struct panel *below;
- struct panel *above;
- NCURSES_CONST void *user;
-} PANEL;
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-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
-
-#endif /* NCURSES_PANEL_H_incl */
-
-/* end of panel.h */
diff --git a/ncurses-5.3/panel/panel.priv.h b/ncurses-5.3/panel/panel.priv.h
deleted file mode 100644
index 4f2713d..0000000
--- a/ncurses-5.3/panel/panel.priv.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/* $Id$ */
-
-#ifndef NCURSES_PANEL_PRIV_H
-#define NCURSES_PANEL_PRIV_H 1
-
-#if HAVE_CONFIG_H
-# include <ncurses_cfg.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#if HAVE_LIBDMALLOC
-# include <dmalloc.h> /* Gray Watson's library */
-#endif
-
-#if HAVE_LIBDBMALLOC
-# include <dbmalloc.h> /* Conor Cahill's library */
-#endif
-
-#include "curses.priv.h"
-#include "panel.h"
-#include <nc_panel.h>
-
-#if ( CC_HAS_INLINE_FUNCS && !defined(TRACE) )
-# define INLINE inline
-#else
-# define INLINE
-#endif
-
-#if USE_RCS_IDS
-# define MODULE_ID(id) static const char Ident[] = id;
-#else
-# define MODULE_ID(id) /*nothing*/
-#endif
-
-
-#ifdef TRACE
- 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
-
- 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 dStack(fmt,num,pan) _nc_dStack(fmt,num,pan)
-# define Wnoutrefresh(pan) _nc_Wnoutrefresh(pan)
-# define Touchpan(pan) _nc_Touchpan(pan)
-# define Touchline(pan,start,count) _nc_Touchline(pan,start,count)
-#else /* !TRACE */
-# define dBug(x)
-# define dPanel(text,pan)
-# define dStack(fmt,num,pan)
-# define Wnoutrefresh(pan) wnoutrefresh((pan)->win)
-# define Touchpan(pan) touchwin((pan)->win)
-# define Touchline(pan,start,count) touchline((pan)->win,start,count)
-#endif
-
-#define _nc_stdscr_pseudo_panel _nc_panelhook()->stdscr_pseudo_panel
-#define _nc_top_panel _nc_panelhook()->top_panel
-#define _nc_bottom_panel _nc_panelhook()->bottom_panel
-
-#define EMPTY_STACK() (_nc_top_panel==_nc_bottom_panel)
-#define Is_Bottom(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p)))
-#define Is_Top(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_top_panel==(p)))
-#define Is_Pseudo(p) ((p) && ((p)==_nc_bottom_panel))
-
-/*+-------------------------------------------------------------------------
- IS_LINKED(pan) - check to see if panel is in the stack
---------------------------------------------------------------------------*/
-/* This works! The only case where it would fail is, when the list has
- only one element. But this could only be the pseudo panel at the bottom */
-#define IS_LINKED(p) (((p)->above || (p)->below ||((p)==_nc_bottom_panel)) ? TRUE : FALSE)
-
-#define PSTARTX(pan) ((pan)->win->_begx)
-#define PENDX(pan) ((pan)->win->_begx + getmaxx((pan)->win) - 1)
-#define PSTARTY(pan) ((pan)->win->_begy)
-#define PENDY(pan) ((pan)->win->_begy + getmaxy((pan)->win) - 1)
-
-/*+-------------------------------------------------------------------------
- PANELS_OVERLAPPED(pan1,pan2) - check panel overlapped
----------------------------------------------------------------------------*/
-#define PANELS_OVERLAPPED(pan1,pan2) \
-(( !(pan1) || !(pan2) || \
- PSTARTY(pan1) > PENDY(pan2) || PENDY(pan1) < PSTARTY(pan2) ||\
- PSTARTX(pan1) > PENDX(pan2) || PENDX(pan1) < PSTARTX(pan2) ) \
- ? FALSE : TRUE)
-
-
-/*+-------------------------------------------------------------------------
- Compute the intersection rectangle of two overlapping rectangles
----------------------------------------------------------------------------*/
-#define COMPUTE_INTERSECTION(pan1,pan2,ix1,ix2,iy1,iy2)\
- ix1 = (PSTARTX(pan1) < PSTARTX(pan2)) ? PSTARTX(pan2) : PSTARTX(pan1);\
- ix2 = (PENDX(pan1) < PENDX(pan2)) ? PENDX(pan1) : PENDX(pan2);\
- iy1 = (PSTARTY(pan1) < PSTARTY(pan2)) ? PSTARTY(pan2) : PSTARTY(pan1);\
- iy2 = (PENDY(pan1) < PENDY(pan2)) ? PENDY(pan1) : PENDY(pan2);\
- assert((ix1<=ix2) && (iy1<=iy2));\
-
-
-/*+-------------------------------------------------------------------------
- Walk through the panel stack starting at the given location and
- check for intersections; overlapping panels are "touched", so they
- are incrementally overwriting cells that should be hidden.
- If the "touch" flag is set, the panel gets touched before it is
- updated.
----------------------------------------------------------------------------*/
-#define PANEL_UPDATE(pan,panstart)\
-{ PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
- while(pan2) {\
- if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\
- int y,ix1,ix2,iy1,iy2;\
- COMPUTE_INTERSECTION(pan,pan2,ix1,ix2,iy1,iy2);\
- for(y = iy1; y <= iy2; y++) {\
- if (is_linetouched(pan->win,y - PSTARTY(pan))) {\
- struct ldat* line = &(pan2->win->_line[y - PSTARTY(pan2)]);\
- CHANGED_RANGE(line,ix1-PSTARTX(pan2),ix2-PSTARTX(pan2));\
- }\
- }\
- }\
- pan2 = pan2->above;\
- }\
-}
-
-/*+-------------------------------------------------------------------------
- Remove panel from stack.
----------------------------------------------------------------------------*/
-#define PANEL_UNLINK(pan,err) \
-{ err = ERR;\
- if (pan) {\
- if (IS_LINKED(pan)) {\
- if ((pan)->below)\
- (pan)->below->above = (pan)->above;\
- if ((pan)->above)\
- (pan)->above->below = (pan)->below;\
- if ((pan) == _nc_bottom_panel) \
- _nc_bottom_panel = (pan)->above;\
- if ((pan) == _nc_top_panel) \
- _nc_top_panel = (pan)->below;\
- err = OK;\
- }\
- (pan)->above = (pan)->below = (PANEL*)0;\
- }\
-}
-
-#define HIDE_PANEL(pan,err,err_if_unlinked)\
- if (IS_LINKED(pan)) {\
- Touchpan(pan);\
- PANEL_UPDATE(pan,(PANEL*)0);\
- PANEL_UNLINK(pan,err);\
- } \
- else {\
- err = err_if_unlinked;\
- }
-
-#endif /* NCURSES_PANEL_PRIV_H */
diff --git a/ncurses-5.3/progs/MKtermsort.sh b/ncurses-5.3/progs/MKtermsort.sh
deleted file mode 100755
index ad01d3c..0000000
--- a/ncurses-5.3/progs/MKtermsort.sh
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# 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:
-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}
-
-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 " * Note: this file is generated using MKtermsort.sh, do not edit by hand.";
-echo " */";
-
-echo "static const int bool_terminfo_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "bool" {printf("%s\t%d\n", $2, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int num_terminfo_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "num" {printf("%s\t%d\n", $2, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int str_terminfo_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "str" {printf("%s\t%d\n", $2, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int bool_variable_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "bool" {printf("%s\t%d\n", $1, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int num_variable_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "num" {printf("%s\t%d\n", $1, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int str_variable_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "str" {printf("%s\t%d\n", $1, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int bool_termcap_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "bool" {printf("%s\t%d\n", $4, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int num_termcap_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "num" {printf("%s\t%d\n", $4, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const int str_termcap_sort[] = {";
-$AWK <$DATA '
-BEGIN {i = 0;}
-/^#/ {next;}
-$3 == "str" {printf("%s\t%d\n", $4, i++);}
-' | sort | $AWK '{print "\t", $2, ",\t/* ", $1, " */";}';
-echo "};";
-echo "";
-
-echo "static const bool bool_from_termcap[] = {";
-$AWK <$DATA '
-$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 '
-$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 '
-$3 == "str" && substr($7, 1, 1) == "-" {print "\tFALSE,\t/* ", $2, " */";}
-$3 == "str" && substr($7, 1, 1) == "Y" {print "\tTRUE,\t/* ", $2, " */";}
-'
-echo "};";
-echo "";
-
-rm -f $data
diff --git a/ncurses-5.3/progs/Makefile.in b/ncurses-5.3/progs/Makefile.in
deleted file mode 100644
index c595a26..0000000
--- a/ncurses-5.3/progs/Makefile.in
+++ /dev/null
@@ -1,272 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
-#
-# Makefile for ncurses source code.
-#
-# This makes the ncurses utility programs.
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-x = @PROG_EXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-transform = @program_transform_name@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-INCDIR = $(srcdir)/../include
-CPPFLAGS = -I../progs -I$(srcdir) @CPPFLAGS@ \
- -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LD = @LD@
-LINK = @LINK_PROGS@ $(LIBTOOL) $(CC)
-LDFLAGS = @EXTRA_LDFLAGS@ \
- @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
-
-LDFLAGS_LIBTOOL = $(LDFLAGS)
-LDFLAGS_NORMAL = $(LDFLAGS)
-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
-LDFLAGS_PROFILE = $(LDFLAGS) -pg
-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lncurses @LIBS@
-
-AUTO_SRC = \
- termsort.c \
- transform.h
-
-# 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
-
-# Default library, for linking applications
-DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-
-################################################################################
-all: $(AUTO_SRC) $(PROGS)
-
-sources: $(AUTO_SRC)
-
-install: $(AUTO_SRC) install.progs
-uninstall: uninstall.progs
-
-# this line simplifies the configure-script
-libs \
-install.libs \
-uninstall.libs:
-
-TRANSFORM = sed 's/$x$$//'|sed '$(transform)'|sed 's/$$/$x/'
-
-actual_captoinfo = `echo captoinfo$x| $(TRANSFORM)`
-actual_clear = `echo clear$x| $(TRANSFORM)`
-actual_infocmp = `echo infocmp$x| $(TRANSFORM)`
-actual_infotocap = `echo infotocap$x| $(TRANSFORM)`
-actual_init = `echo init$x| $(TRANSFORM)`
-actual_reset = `echo reset$x| $(TRANSFORM)`
-actual_tic = `echo tic$x| $(TRANSFORM)`
-actual_toe = `echo toe$x| $(TRANSFORM)`
-actual_tput = `echo tput$x| $(TRANSFORM)`
-actual_tset = `echo tset$x| $(TRANSFORM)`
-
-transform.h :
- echo "#define PROG_CAPTOINFO \"$(actual_captoinfo)\"" >$@
- echo "#define PROG_INFOTOCAP \"$(actual_infotocap)\"" >>$@
- echo "#define PROG_RESET \"$(actual_reset)\"" >>$@
- echo "#define PROG_INIT \"$(actual_init)\"" >>$@
-
-install.progs: $(AUTO_SRC) $(PROGS) $(DESTDIR)$(bindir)
-@MAKE_TERMINFO@ $(LIBTOOL) $(INSTALL_PROGRAM) tic$x $(DESTDIR)$(bindir)/$(actual_tic)
-@MAKE_TERMINFO@ $(LIBTOOL) $(INSTALL_PROGRAM) toe$x $(DESTDIR)$(bindir)/$(actual_toe)
-@MAKE_TERMINFO@ @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)
- @echo "linking $(actual_reset) to $(actual_tset)"
- -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
- (cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tset) $(actual_reset))
-
-uninstall.progs:
-@MAKE_TERMINFO@ -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_tic)
-@MAKE_TERMINFO@ -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/$(actual_toe)
-@MAKE_TERMINFO@ -@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)
- -@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
-
-$(DESTDIR)$(bindir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-#
-# Utilities normally built by make all start here
-#
-
-DEPS_TIC = \
- $(MODEL)/tic.o \
- $(MODEL)/dump_entry.o
-
-tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h
- @ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_TOE = \
- $(MODEL)/toe.o \
- $(MODEL)/dump_entry.o
-
-toe$x: $(DEPS_TOE) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_TOE) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_CLEAR = \
- $(MODEL)/clear.o
-
-clear$x: $(DEPS_CLEAR) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_TPUT = \
- $(MODEL)/tput.o
-
-tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h
- @ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_INFOCMP = \
- $(MODEL)/infocmp.o \
- $(MODEL)/dump_entry.o
-
-infocmp$x: $(DEPS_INFOCMP) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_DEFAULT) -o $@
-
-DEPS_TSET = \
- $(MODEL)/tset.o \
- $(MODEL)/dump_entry.o
-
-tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
- @ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_DEFAULT) -o $@
-
-termsort.c: $(srcdir)/MKtermsort.sh
- sh -c "$(srcdir)/MKtermsort.sh $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@" >$@
-
-#
-# Utility productions start here
-#
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
- -rm -f $(TESTPROGS)
-
-clean :: mostlyclean
- -rm -f $(AUTO_SRC)
- -rm -f $(PROGS)
- -rm -rf .libs
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-# These rules are used to allow "make -n" to work on a clean directory-tree
-../include/hashsize.h \
-../include/parametrized.h \
-../include/term.h :
- cd ../include; $(MAKE) $(CF_MFLAGS)
-$(DEPS_CURSES) :
- 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)/tput.c $(LINT_LIBS)
- $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tset.c $(srcdir)/dump_entry.c $(LINT_LIBS)
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/progs/capconvert b/ncurses-5.3/progs/capconvert
deleted file mode 100755
index 791089d..0000000
--- a/ncurses-5.3/progs/capconvert
+++ /dev/null
@@ -1,229 +0,0 @@
-#!/bin/sh
-# $Id$
-#
-# capconvert -- automated conversion from termcap to terminfo
-#
-
-echo "This script tries to automatically set you up so that your applications"
-echo "that now use termcap can use terminfo and the ncurses library."
-echo ""
-
-# Note, except for telling if we're running under xterm we don't use TERM at
-# all. This is because BSD users not infrequently have multiple termtypes
-# selected by conditionals in tset -- unless they're xterm users, in which
-# case they're on a workstation and probably don't.
-
-# Check to make sure TERMINFO is not already defined
-if test -n "$TERMINFO"
-then
- echo "TERMINFO is already defined in your environment. This means"
- echo "you already have a local terminfo tree, so you do not need any"
- echo "conversion."
- if test ! -d $TERMINFO ; then
- echo "Caution: TERMINFO does not point to a directory!"
- fi
- exit;
-fi
-
-# Check to see if terminfo is present in one of the standard locations.
-terminfo=no
-for p in $TERMINFO \
- /usr/lib/terminfo \
- /usr/share/lib/terminfo \
- /usr/share/terminfo \
- /usr/local/lib/terminfo \
- /usr/local/share/terminfo
-do
- if test -d $p ; then
- terminfo=yes
- break
- fi
-done
-
-if test $terminfo = yes
-then
- echo "Your system already has a system-wide terminfo tree."
- echo ""
- if test -z "$TERMCAP"
- then
- echo "You have no TERMCAP variable set, so we are done."
- # Assumes the terminfo master covers all canned terminal types
- exit;
- fi
- if test "$TERM" = "xterm"
- then
- echo "You are running xterm, which usually sets TERMCAP itself."
- echo "We can ignore this, because terminfo knows about xterm."
- echo "So you will just use the system-wide terminfo tree."
- exit;
- else
- echo "We will have to make a local one for you anyway, to capture the effect"
- echo "of your TERMCAP variable."
- fi
-else
- echo "No system-wide terminfo tree. We will make you a local one."
-fi
-echo "";
-
-# Check if test -x works (it's not portable, but useful)
-OPT="-x"
-TMP=test$$; touch $TMP && chmod 755 $TMP
-if test $OPT $TMP ; then
- chmod 644 $TMP
- test $OPT $TMP && OPT="-f"
-else
- OPT="-f"
-fi
-rm -f $TMP
-
-# First step -- go find tic
-TIC=
-IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
-for x in $PATH .
-do
- if test $OPT $x/tic
- then
- TIC=$x/tic
- break
- fi
-done
-IFS="$ac_save_ifs"
-
-if test -n "$TIC"
-then
- echo "I see tic at $TIC."
- case $TIC in # (vi
- ./tic)
- if test $OPT ../misc/shlib ; then
- TIC="../misc/shlib $TIC"
- fi
- ;;
- esac
-else
- echo "You do not have tic installed anywhere I can see, please fix that."
- exit;
-fi
-echo "";
-
-# We have tic. Either there's no system terminfo tree or there is one but
-# the user has a TERMCAP variable that may modify a stock description.
-#
-
-# Make the user a terminfo directory
-if test -d $HOME/.terminfo
-then
- echo "It appears you already have a private terminfo directory"
- echo "at $HOME/.terminfo; this seems odd, because TERMINFO"
- echo "is not defined. I am not going to second-guess this -- if you"
- echo "really want me to try auto-configuring for you, remove or"
- echo "rename $HOME/terminfo and run me again."
- exit;
-else
- echo "I am creating your private terminfo directory at $HOME/.terminfo"
- mkdir $HOME/.terminfo
- # Ensure that that's where tic's compilation results.
- # This isn't strictly necessary with a 1.9.7 or later tic.
- TERMINFO="$HOME/.terminfo"; export TERMINFO
-fi
-echo "";
-
-# Find a terminfo source to work from
-if test -f ../misc/terminfo.src
-then
- echo "I see the terminfo master source is handy; I will use that."
- master=../misc/terminfo.src
-else
- # Ooops...looks like we're running from somewhere other than the
- # progs directory of an ncurses source tree.
- master=`find $HOME -name "*terminfo.src" -print`
- mcount=`echo $master | wc -l`
- case $mcount in
- 0)
- echo "I can not find a terminfo source file anywhere under your home directory."
- echo "There should be a file called terminfo.src somewhere in your"
- echo "ncurses distribution; please put it in your home directotry"
- echo "and run me again (it does not have to live there permanently)."
- exit;
- ;;
- 1)
- echo "I see a file called $master."
- echo "I am going to assume this is the terminfo source included with"
- echo "the ncurses distribution. If this assumption is wrong, please"
- echo "interrupt me now! OK to continue?"
- read ans;
- ;;
- 2)
- echo "I see more than one possible terminfo source. Here they are:"
- echo $master | sed "/^/s// /";
- while :
- do
- echo "Please tell me which one to use:"
- read master;
- if test -f $master
- then
- break
- else
- echo "That file does not exist. Try again?";
- fi
- done
- ;;
- esac
-fi
-echo "";
-
-# Now that we have a master, compile it into the local tree
-echo "OK, now I will make your private terminfo tree. This may take a bit..."
-#
-# Kluge alert: we compile terminfo.src in two pieces because a lot of machines
-# with < 16MB RAM choke on tic's core-hog habits.
-trap "rm -f tsplit$$.*" 0 1 2 5 15
-sed -n $master \
- -e '1,/SPLIT HERE/w 'tsplit$$.01 \
- -e '/SPLIT HERE/,$w 'tsplit$$.02 \
- 2>/dev/null
-for x in tsplit$$.*; do eval $TIC $x; done
-rm tsplit$$.*
-trap 0 1 2 5 15
-#
-echo "You now have a private tree under $HOME/.terminfo;"
-echo "the ncurses library will automatically read from it,"
-echo "and ncurses tic will automatically compile entries to it."
-
-# We're done unless user has a .termcap file or equivalent named by TERMCAP
-if test -z "$TERMCAP"
-then
- echo "You have no TERMCAP set, so we are done."
-fi
-
-# OK, here comes the nasty case...user has a TERMCAP. Instead of
-# trying to follow all the convolutions of the relationship between
-# TERM and TERMCAP (partly because it's too painful, and partly because
-# we don't actually know what TERM will be nor even if it always has
-# the same value for this user) we do the following three steps...
-
-if test -f $HOME/.termcap
-then
- echo 'I see you have a $HOME/.termcap file. I will compile that.'
- eval $TIC $HOME/.termcap
- echo "Done."
- echo "Note that editing $HOME/.termcap will no longer change the data curses sees."
-elif test -f "$TERMCAP"
-then
- echo "Your TERMCAP names the file $TERMCAP. I will compile that."
- eval $TIC $TERMCAP
- echo "Done."
- echo "Note that editing $TERMCAP will no longer change the data curses sees."
-else
- echo "Your TERMCAP value appears to be an entry in termcap format."
- echo "I will compile it."
- echo $TERMCAP >myterm$$
- eval $TIC myterm$$
- rm myterm$$
- echo "Done."
- echo "Note that editing TERMCAP will no longer change the data curses sees."
-fi
-echo "To do that, decompile the terminal decription you want with infocmp(1),"
-echo "edit to taste, and recompile using tic(1)."
-
-# capconvert ends here
-
diff --git a/ncurses-5.3/progs/clear.c b/ncurses-5.3/progs/clear.c
deleted file mode 100644
index 5f8e9d6..0000000
--- a/ncurses-5.3/progs/clear.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * clear.c -- clears the terminal's screen
- */
-
-#include <progs.priv.h>
-
-#include <curses.h>
-
-MODULE_ID("$Id$")
-
-static int putch(int c)
-{
- return putchar(c);
-}
-
-int main(
- int argc GCC_UNUSED,
- char *argv[] GCC_UNUSED)
-{
- setupterm((char *) 0, STDOUT_FILENO, (int *) 0);
- return (tputs(clear_screen, lines > 0 ? lines : 1, putch) == ERR)
- ? EXIT_FAILURE
- : EXIT_SUCCESS;
-}
diff --git a/ncurses-5.3/progs/clear.sh b/ncurses-5.3/progs/clear.sh
deleted file mode 100755
index 1b6b0bb..0000000
--- a/ncurses-5.3/progs/clear.sh
+++ /dev/null
@@ -1 +0,0 @@
-exec tput clear
diff --git a/ncurses-5.3/progs/dump_entry.c b/ncurses-5.3/progs/dump_entry.c
deleted file mode 100644
index 3f7f7ac..0000000
--- a/ncurses-5.3/progs/dump_entry.c
+++ /dev/null
@@ -1,1088 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * 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
-#include <progs.priv.h>
-
-#include "dump_entry.h"
-#include "termsort.c" /* this C file is generated */
-#include <parametrized.h> /* so is this */
-
-MODULE_ID("$Id$")
-
-#define INDENT 8
-#define DISCARD(string) string = ABSENT_STRING
-#define PRINTF (void) printf
-
-typedef struct {
- char *text;
- size_t used;
- size_t size;
-} DYNBUF;
-
-static int tversion; /* terminfo version */
-static int outform; /* output format to use */
-static int sortmode; /* sort mode to use */
-static int width = 60; /* max line width for listings */
-static int column; /* current column, limited by 'width' */
-static int oldcol; /* last value of column before wrap */
-static bool pretty; /* true if we format if-then-else strings */
-
-static DYNBUF outbuf;
-static DYNBUF tmpbuf;
-
-/* indirection pointers for implementing sort and display modes */
-static const int *bool_indirect, *num_indirect, *str_indirect;
-static NCURSES_CONST char *const *bool_names;
-static NCURSES_CONST char *const *num_names;
-static NCURSES_CONST char *const *str_names;
-
-static const char *separator, *trailer;
-
-/* cover various ports and variants of terminfo */
-#define V_ALLCAPS 0 /* all capabilities (SVr4, XSI, ncurses) */
-#define V_SVR1 1 /* SVR1, Ultrix */
-#define V_HPUX 2 /* HP/UX */
-#define V_AIX 3 /* AIX */
-#define V_BSD 4 /* BSD */
-
-#if NCURSES_XNAMES
-#define OBSOLETE(n) (!_nc_user_definable && (n[0] == 'O' && n[1] == 'T'))
-#else
-#define OBSOLETE(n) (n[0] == 'O' && n[1] == 'T')
-#endif
-
-#define isObsolete(f,n) ((f == F_TERMINFO || f == F_VARIABLE) && OBSOLETE(n))
-
-#if NCURSES_XNAMES
-#define BoolIndirect(j) ((j >= BOOLCOUNT) ? (j) : ((sortmode == S_NOSORT) ? j : bool_indirect[j]))
-#define NumIndirect(j) ((j >= NUMCOUNT) ? (j) : ((sortmode == S_NOSORT) ? j : num_indirect[j]))
-#define StrIndirect(j) ((j >= STRCOUNT) ? (j) : ((sortmode == S_NOSORT) ? j : str_indirect[j]))
-#else
-#define BoolIndirect(j) ((sortmode == S_NOSORT) ? (j) : bool_indirect[j])
-#define NumIndirect(j) ((sortmode == S_NOSORT) ? (j) : num_indirect[j])
-#define StrIndirect(j) ((sortmode == S_NOSORT) ? (j) : str_indirect[j])
-#endif
-
-static void
-strncpy_DYN(DYNBUF * dst, const char *src, size_t need)
-{
- size_t want = need + dst->used + 1;
- if (want > dst->size) {
- dst->size += (want + 1024); /* be generous */
- dst->text = typeRealloc(char, dst->size, dst->text);
- }
- (void) strncpy(dst->text + dst->used, src, need);
- dst->used += need;
- dst->text[dst->used] = 0;
-}
-
-static void
-strcpy_DYN(DYNBUF * dst, const char *src)
-{
- if (src == 0) {
- dst->used = 0;
- strcpy_DYN(dst, "");
- } else {
- strncpy_DYN(dst, src, strlen(src));
- }
-}
-
-#if NO_LEAKS
-static void
-free_DYN(DYNBUF * p)
-{
- if (p->text != 0)
- free(p->text);
- p->text = 0;
- p->size = 0;
- p->used = 0;
-}
-
-void
-_nc_leaks_dump_entry(void)
-{
- free_DYN(&outbuf);
- free_DYN(&tmpbuf);
-}
-#endif
-
-NCURSES_CONST char *
-nametrans(const char *name)
-/* translate a capability name from termcap to terminfo */
-{
- const struct name_table_entry *np;
-
- if ((np = _nc_find_entry(name, _nc_get_hash_table(0))) != 0)
- switch (np->nte_type) {
- case BOOLEAN:
- if (bool_from_termcap[np->nte_index])
- return (boolcodes[np->nte_index]);
- break;
-
- case NUMBER:
- if (num_from_termcap[np->nte_index])
- return (numcodes[np->nte_index]);
- break;
-
- case STRING:
- if (str_from_termcap[np->nte_index])
- return (strcodes[np->nte_index]);
- break;
- }
-
- return (0);
-}
-
-void
-dump_init(const char *version, int mode, int sort, int twidth, int traceval,
- bool formatted)
-/* set up for entry display */
-{
- width = twidth;
- pretty = formatted;
-
- /* versions */
- if (version == 0)
- tversion = V_ALLCAPS;
- else if (!strcmp(version, "SVr1") || !strcmp(version, "SVR1")
- || !strcmp(version, "Ultrix"))
- tversion = V_SVR1;
- else if (!strcmp(version, "HP"))
- tversion = V_HPUX;
- else if (!strcmp(version, "AIX"))
- tversion = V_AIX;
- else if (!strcmp(version, "BSD"))
- tversion = V_BSD;
- else
- tversion = V_ALLCAPS;
-
- /* implement display modes */
- switch (outform = mode) {
- case F_LITERAL:
- case F_TERMINFO:
- bool_names = boolnames;
- num_names = numnames;
- str_names = strnames;
- separator = twidth ? ", " : ",";
- trailer = "\n\t";
- break;
-
- case F_VARIABLE:
- bool_names = boolfnames;
- num_names = numfnames;
- str_names = strfnames;
- separator = twidth ? ", " : ",";
- trailer = "\n\t";
- break;
-
- case F_TERMCAP:
- case F_TCONVERR:
- bool_names = boolcodes;
- num_names = numcodes;
- str_names = strcodes;
- separator = ":";
- trailer = "\\\n\t:";
- break;
- }
-
- /* implement sort modes */
- switch (sortmode = sort) {
- case S_NOSORT:
- if (traceval)
- (void) fprintf(stderr,
- "%s: sorting by term structure order\n", _nc_progname);
- break;
-
- case S_TERMINFO:
- if (traceval)
- (void) fprintf(stderr,
- "%s: sorting by terminfo name order\n", _nc_progname);
- bool_indirect = bool_terminfo_sort;
- num_indirect = num_terminfo_sort;
- str_indirect = str_terminfo_sort;
- break;
-
- case S_VARIABLE:
- if (traceval)
- (void) fprintf(stderr,
- "%s: sorting by C variable order\n", _nc_progname);
- bool_indirect = bool_variable_sort;
- num_indirect = num_variable_sort;
- str_indirect = str_variable_sort;
- break;
-
- case S_TERMCAP:
- if (traceval)
- (void) fprintf(stderr,
- "%s: sorting by termcap name order\n", _nc_progname);
- bool_indirect = bool_termcap_sort;
- num_indirect = num_termcap_sort;
- str_indirect = str_termcap_sort;
- break;
- }
-
- if (traceval)
- (void) fprintf(stderr,
- "%s: width = %d, tversion = %d, outform = %d\n",
- _nc_progname, width, tversion, outform);
-}
-
-static TERMTYPE *cur_type;
-
-static int
-dump_predicate(int type, int idx)
-/* predicate function to use for ordinary decompilation */
-{
- switch (type) {
- case BOOLEAN:
- return (cur_type->Booleans[idx] == FALSE)
- ? FAIL : cur_type->Booleans[idx];
-
- case NUMBER:
- return (cur_type->Numbers[idx] == ABSENT_NUMERIC)
- ? FAIL : cur_type->Numbers[idx];
-
- case STRING:
- return (cur_type->Strings[idx] != ABSENT_STRING)
- ? (int) TRUE : FAIL;
- }
-
- return (FALSE); /* pacify compiler */
-}
-
-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))
-
-/*
- * 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 */
-{
- switch (tversion) {
- case V_ALLCAPS: /* SVr4, XSI Curses */
- return (TRUE);
-
- case V_SVR1: /* System V Release 1, Ultrix */
- switch (type) {
- case BOOLEAN:
- return ((idx <= BOOL_IDX(xon_xoff)) ? TRUE : FALSE);
- case NUMBER:
- return ((idx <= NUM_IDX(width_status_line)) ? TRUE : FALSE);
- case STRING:
- return ((idx <= STR_IDX(prtr_non)) ? TRUE : FALSE);
- }
- break;
-
- case V_HPUX: /* Hewlett-Packard */
- switch (type) {
- case BOOLEAN:
- return ((idx <= BOOL_IDX(xon_xoff)) ? TRUE : FALSE);
- case NUMBER:
- return ((idx <= NUM_IDX(label_width)) ? TRUE : FALSE);
- case STRING:
- if (idx <= STR_IDX(prtr_non))
- return (TRUE);
- else if (FNKEY(idx)) /* function keys */
- return (TRUE);
- else if (idx == STR_IDX(plab_norm)
- || idx == STR_IDX(label_on)
- || idx == STR_IDX(label_off))
- return (TRUE);
- else
- return (FALSE);
- }
- break;
-
- case V_AIX: /* AIX */
- switch (type) {
- case BOOLEAN:
- return ((idx <= BOOL_IDX(xon_xoff)) ? TRUE : FALSE);
- case NUMBER:
- return ((idx <= NUM_IDX(width_status_line)) ? TRUE : FALSE);
- case STRING:
- if (idx <= STR_IDX(prtr_non))
- return (TRUE);
- else if (FNKEY(idx)) /* function keys */
- return (TRUE);
- else
- return (FALSE);
- }
- break;
-
- case V_BSD: /* BSD */
- switch (type) {
- case BOOLEAN:
- return bool_from_termcap[idx];
- case NUMBER:
- return num_from_termcap[idx];
- case STRING:
- return str_from_termcap[idx];
- }
- break;
- }
-
- return (FALSE); /* pacify the compiler */
-}
-
-static void
-force_wrap(void)
-{
- oldcol = column;
- strcpy_DYN(&outbuf, trailer);
- column = INDENT;
-}
-
-static void
-wrap_concat(const char *src)
-{
- int need = strlen(src);
- int want = strlen(separator) + need;
-
- if (column > INDENT
- && column + want > width) {
- force_wrap();
- }
- strcpy_DYN(&outbuf, src);
- strcpy_DYN(&outbuf, separator);
- column += need;
-}
-
-#define IGNORE_SEP_TRAIL(first,last,sep_trail) \
- if ((size_t)(last - first) > sizeof(sep_trail)-1 \
- && !strncmp(first, sep_trail, sizeof(sep_trail)-1)) \
- first += sizeof(sep_trail)-2
-
-/* Returns the nominal length of the buffer assuming it is termcap format,
- * i.e., the continuation sequence is treated as a single character ":".
- *
- * There are several implementations of termcap which read the text into a
- * fixed-size buffer. Generally they strip the newlines from the text, but may
- * not do it until after the buffer is read. Also, "tc=" resolution may be
- * expanded in the same buffer. This function is useful for measuring the size
- * of the best fixed-buffer implementation; the worst case may be much worse.
- */
-#ifdef TEST_TERMCAP_LENGTH
-static int
-termcap_length(const char *src)
-{
- static const char pattern[] = ":\\\n\t:";
-
- int len = 0;
- const char *const t = src + strlen(src);
-
- while (*src != '\0') {
- IGNORE_SEP_TRAIL(src, t, pattern);
- src++;
- len++;
- }
- return len;
-}
-#else
-#define termcap_length(src) strlen(src)
-#endif
-
-static char *
-fmt_complex(char *src, int level)
-{
- int percent = 0;
- int n;
- bool if_then = strstr(src, "%?") != 0;
- bool params = !if_then && (strlen(src) > 50) && (strstr(src, "%p") != 0);
-
- while (*src != '\0') {
- switch (*src) {
- case '\\':
- percent = 0;
- strncpy_DYN(&tmpbuf, src++, 1);
- break;
- case '%':
- percent = 1;
- break;
- case '?': /* "if" */
- case 't': /* "then" */
- case 'e': /* "else" */
- if (percent) {
- percent = 0;
- tmpbuf.text[tmpbuf.used - 1] = '\n';
- /* treat a "%e%?" as else-if, on the same level */
- if (!strncmp(src, "e%?", 3)) {
- for (n = 0; n < level; n++)
- strncpy_DYN(&tmpbuf, "\t", 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src, 3);
- src += 3;
- } else {
- for (n = 0; n <= level; n++)
- strncpy_DYN(&tmpbuf, "\t", 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src, 1);
- if (*src++ == '?') {
- src = fmt_complex(src, level + 1);
- } else if (level == 1) {
- _nc_warning("%%%c without %%?", *src);
- }
- }
- continue;
- }
- break;
- case ';': /* "endif" */
- if (percent) {
- percent = 0;
- if (level > 1) {
- tmpbuf.text[tmpbuf.used - 1] = '\n';
- for (n = 0; n < level; n++)
- strncpy_DYN(&tmpbuf, "\t", 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- strncpy_DYN(&tmpbuf, src++, 1);
- return src;
- }
- _nc_warning("%%; without %%?");
- }
- break;
- case 'p':
- if (percent && params) {
- tmpbuf.text[tmpbuf.used - 1] = '\n';
- for (n = 0; n <= level; n++)
- strncpy_DYN(&tmpbuf, "\t", 1);
- strncpy_DYN(&tmpbuf, "%", 1);
- }
- percent = 0;
- break;
- default:
- percent = 0;
- break;
- }
- strncpy_DYN(&tmpbuf, src++, 1);
- }
- return src;
-}
-
-int
-fmt_entry(TERMTYPE * tterm,
- int (*pred) (int type, int idx),
- bool content_only,
- bool suppress_untranslatable,
- bool infodump,
- int numbers)
-{
- int i, j;
- char buffer[MAX_TERMINFO_LENGTH];
- NCURSES_CONST char *name;
- int predval, len;
- int num_bools = 0;
- int num_values = 0;
- int num_strings = 0;
- bool outcount = 0;
-
-#define WRAP_CONCAT \
- wrap_concat(buffer); \
- outcount = TRUE
-
- len = 12; /* terminfo file-header */
-
- if (pred == 0) {
- cur_type = tterm;
- pred = dump_predicate;
- }
-
- strcpy_DYN(&outbuf, 0);
- 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);
- name = ExtBoolname(tterm, i, bool_names);
-
- if (!version_filter(BOOLEAN, i))
- continue;
- else if (isObsolete(outform, name))
- continue;
-
- predval = pred(BOOLEAN, i);
- if (predval != FAIL) {
- (void) strcpy(buffer, name);
- if (predval <= 0)
- (void) strcat(buffer, "@");
- else if (i + 1 > num_bools)
- num_bools = i + 1;
- WRAP_CONCAT;
- }
- }
-
- if (column != INDENT)
- force_wrap();
-
- for_each_number(j, tterm) {
- i = NumIndirect(j);
- name = ExtNumname(tterm, i, num_names);
-
- if (!version_filter(NUMBER, i))
- continue;
- else if (isObsolete(outform, name))
- continue;
-
- predval = pred(NUMBER, i);
- if (predval != FAIL) {
- if (tterm->Numbers[i] < 0) {
- sprintf(buffer, "%s@", name);
- } else {
- sprintf(buffer, "%s#%d", name, tterm->Numbers[i]);
- if (i + 1 > num_values)
- num_values = i + 1;
- }
- WRAP_CONCAT;
- }
- }
-
- if (column != INDENT)
- force_wrap();
-
- len += num_bools
- + num_values * 2
- + strlen(tterm->term_names) + 1;
- if (len & 1)
- len++;
-
-#undef CUR
-#define CUR tterm->
- if (outform == F_TERMCAP) {
- if (termcap_reset != ABSENT_STRING) {
- if (init_3string != ABSENT_STRING
- && !strcmp(init_3string, termcap_reset))
- DISCARD(init_3string);
-
- if (reset_2string != ABSENT_STRING
- && !strcmp(reset_2string, termcap_reset))
- DISCARD(reset_2string);
- }
- }
-
- for_each_string(j, tterm) {
- i = StrIndirect(j);
- name = ExtStrname(tterm, i, str_names);
-
- if (!version_filter(STRING, i))
- continue;
- else if (isObsolete(outform, name))
- continue;
-
- /*
- * Some older versions of vi want rmir/smir to be defined
- * for ich/ich1 to work. If they're not defined, force
- * them to be output as defined and empty.
- */
- if (outform == F_TERMCAP) {
- if (insert_character || parm_ich) {
- if (&tterm->Strings[i] == &enter_insert_mode
- && enter_insert_mode == ABSENT_STRING) {
- (void) strcpy(buffer, "im=");
- WRAP_CONCAT;
- continue;
- }
-
- if (&tterm->Strings[i] == &exit_insert_mode
- && exit_insert_mode == ABSENT_STRING) {
- (void) strcpy(buffer, "ei=");
- WRAP_CONCAT;
- continue;
- }
- }
- }
-
- predval = pred(STRING, i);
- buffer[0] = '\0';
-
- if (predval != FAIL) {
- if (tterm->Strings[i] != ABSENT_STRING
- && i + 1 > num_strings)
- num_strings = i + 1;
-
- if (!VALID_STRING(tterm->Strings[i])) {
- sprintf(buffer, "%s@", name);
- WRAP_CONCAT;
- } else if (outform == F_TERMCAP || outform == F_TCONVERR) {
- int params = ((i < (int) SIZEOF(parametrized))
- ? parametrized[i]
- : 0);
- char *srccap = _nc_tic_expand(tterm->Strings[i], TRUE, numbers);
- char *cv = _nc_infotocap(name, srccap, params);
-
- if (cv == 0) {
- if (outform == F_TCONVERR) {
- sprintf(buffer, "%s=!!! %s WILL NOT CONVERT !!!",
- name, srccap);
- } else if (suppress_untranslatable) {
- continue;
- } else {
- char *s = srccap, *d = buffer;
- sprintf(d, "..%s=", name);
- d += strlen(d);
- while ((*d = *s++) != 0) {
- if (*d == ':') {
- *d++ = '\\';
- *d = ':';
- } else if (*d == '\\') {
- *++d = *s++;
- }
- d++;
- }
- }
- } else {
- sprintf(buffer, "%s=%s", name, cv);
- }
- len += strlen(tterm->Strings[i]) + 1;
- WRAP_CONCAT;
- } else {
- char *src = _nc_tic_expand(tterm->Strings[i],
- outform == F_TERMINFO, numbers);
-
- strcpy_DYN(&tmpbuf, 0);
- strcpy_DYN(&tmpbuf, name);
- strcpy_DYN(&tmpbuf, "=");
- if (pretty
- && (outform == F_TERMINFO
- || outform == F_VARIABLE)) {
- fmt_complex(src, 1);
- } else {
- strcpy_DYN(&tmpbuf, src);
- }
- len += strlen(tterm->Strings[i]) + 1;
- wrap_concat(tmpbuf.text);
- outcount = TRUE;
- }
- }
- }
- len += num_strings * 2;
-
- /*
- * This piece of code should be an effective inverse of the functions
- * postprocess_terminfo and postprocess_terminfo in parse_entry.c.
- * Much more work should be done on this to support dumping termcaps.
- */
- if (tversion == V_HPUX) {
- if (memory_lock) {
- (void) sprintf(buffer, "meml=%s", memory_lock);
- WRAP_CONCAT;
- }
- if (memory_unlock) {
- (void) sprintf(buffer, "memu=%s", memory_unlock);
- WRAP_CONCAT;
- }
- } else if (tversion == V_AIX) {
- if (VALID_STRING(acs_chars)) {
- bool box_ok = TRUE;
- const char *acstrans = "lqkxjmwuvtn";
- const char *cp;
- char *tp, *sp, boxchars[11];
-
- tp = boxchars;
- for (cp = acstrans; *cp; cp++) {
- sp = strchr(acs_chars, *cp);
- if (sp)
- *tp++ = sp[1];
- else {
- box_ok = FALSE;
- break;
- }
- }
- tp[0] = '\0';
-
- if (box_ok) {
- (void) strcpy(buffer, "box1=");
- (void) strcat(buffer, _nc_tic_expand(boxchars,
- outform == F_TERMINFO, numbers));
- WRAP_CONCAT;
- }
- }
- }
-
- /*
- * kludge: trim off trailer to avoid an extra blank line
- * in infocmp -u output when there are no string differences
- */
- if (outcount) {
- bool trimmed = FALSE;
- j = outbuf.used;
- if (j >= 2
- && outbuf.text[j - 1] == '\t'
- && outbuf.text[j - 2] == '\n') {
- 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.used -= 4;
- trimmed = TRUE;
- }
- if (trimmed) {
- outbuf.text[outbuf.used] = '\0';
- column = oldcol;
- }
- }
-#if 0
- fprintf(stderr, "num_bools = %d\n", num_bools);
- 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);
-#endif
- /*
- * Here's where we use infodump to trigger a more stringent length check
- * for termcap-translation purposes.
- * Return the length of the raw entry, without tc= expansions,
- * It gives an idea of which entries are deadly to even *scan past*,
- * as opposed to *use*.
- */
- 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
-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;
- const char *legend;
- bool infodump;
-
- if (outform == F_TERMCAP || outform == F_TCONVERR) {
- critlen = MAX_TERMCAP_LENGTH;
- legend = "older termcap";
- infodump = FALSE;
- set_obsolete_termcaps(tterm);
- } else {
- critlen = MAX_TERMINFO_LENGTH;
- legend = "terminfo";
- infodump = TRUE;
- }
- critlen -= already_used;
-
- if (((len = FMT_ENTRY()) > critlen)
- && limited) {
- 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
- * acsc since it is both long and unused by BSD termcap.
- */
- char *oldsgr = set_attributes;
- char *oldacsc = acs_chars;
- set_attributes = ABSENT_STRING;
- SHOW_WHY("# (sgr removed to fit entry within %d bytes)\n",
- critlen);
- if ((len = FMT_ENTRY()) > critlen) {
- acs_chars = ABSENT_STRING;
- SHOW_WHY("# (acsc removed to fit entry within %d bytes)\n",
- critlen);
- }
- if ((len = FMT_ENTRY()) > critlen) {
- int oldversion = tversion;
-
- tversion = V_BSD;
- 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,
- "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;
- }
- set_attributes = oldsgr;
- acs_chars = oldacsc;
- }
- }
-
- (void) fputs(outbuf.text, stdout);
- return len;
-}
-
-int
-dump_uses(const char *name, bool infodump)
-/* dump "use=" clauses in the appropriate format */
-{
- char buffer[MAX_TERMINFO_LENGTH];
-
- strcpy_DYN(&outbuf, 0);
- (void) sprintf(buffer, "%s%s", infodump ? "use=" : "tc=", name);
- wrap_concat(buffer);
- (void) fputs(outbuf.text, stdout);
- return outbuf.used;
-}
-
-void
-compare_entry(void (*hook) (int t, int i, const char *name), TERMTYPE * tp
- GCC_UNUSED, bool quiet)
-/* compare two entries */
-{
- int i, j;
- NCURSES_CONST char *name;
-
- if (!quiet)
- fputs(" comparing booleans.\n", stdout);
- for_each_boolean(j, tp) {
- i = BoolIndirect(j);
- name = ExtBoolname(tp, i, bool_names);
-
- if (isObsolete(outform, name))
- continue;
-
- (*hook) (CMP_BOOLEAN, i, name);
- }
-
- if (!quiet)
- fputs(" comparing numbers.\n", stdout);
- for_each_number(j, tp) {
- i = NumIndirect(j);
- name = ExtNumname(tp, i, num_names);
-
- if (isObsolete(outform, name))
- continue;
-
- (*hook) (CMP_NUMBER, i, name);
- }
-
- if (!quiet)
- fputs(" comparing strings.\n", stdout);
- for_each_string(j, tp) {
- i = StrIndirect(j);
- name = ExtStrname(tp, i, str_names);
-
- if (isObsolete(outform, name))
- continue;
-
- (*hook) (CMP_STRING, i, name);
- }
-
- /* (void) fputs(" comparing use entries.\n", stdout); */
- (*hook) (CMP_USE, 0, "use");
-
-}
-
-#define NOTSET(s) ((s) == 0)
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed.
- */
-#undef CUR
-#define CUR tp->
-
-static void
-set_obsolete_termcaps(TERMTYPE * tp)
-{
-#include "capdefaults.c"
-}
-
-/*
- * Convert an alternate-character-set string to canonical form: sorted and
- * unique.
- */
-void
-repair_acsc(TERMTYPE * tp)
-{
- if (VALID_STRING(acs_chars)) {
- size_t n, m;
- char mapped[256];
- char extra = 0;
- unsigned source;
- unsigned target;
- bool fix_needed = FALSE;
-
- for (n = 0, source = 0; acs_chars[n] != 0; n++) {
- target = acs_chars[n];
- if (source >= target) {
- fix_needed = TRUE;
- break;
- }
- source = target;
- if (acs_chars[n + 1])
- n++;
- }
- if (fix_needed) {
- memset(mapped, 0, sizeof(mapped));
- for (n = 0; acs_chars[n] != 0; n++) {
- source = acs_chars[n];
- if ((target = (unsigned char) acs_chars[n + 1]) != 0) {
- mapped[source] = target;
- n++;
- } else {
- extra = source;
- }
- }
- for (n = m = 0; n < sizeof(mapped); n++) {
- if (mapped[n]) {
- acs_chars[m++] = n;
- acs_chars[m++] = mapped[n];
- }
- }
- if (extra)
- acs_chars[m++] = extra; /* garbage in, garbage out */
- acs_chars[m] = 0;
- }
- }
-}
diff --git a/ncurses-5.3/progs/dump_entry.h b/ncurses-5.3/progs/dump_entry.h
deleted file mode 100644
index bf67ddd..0000000
--- a/ncurses-5.3/progs/dump_entry.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-
-/*
- * Dump control definitions and variables
- */
-
-/* capability output formats */
-#define F_TERMINFO 0 /* use terminfo names */
-#define F_VARIABLE 1 /* use C variable names */
-#define F_TERMCAP 2 /* termcap names with capability conversion */
-#define F_TCONVERR 3 /* as T_TERMCAP, no skip of untranslatables */
-#define F_LITERAL 4 /* like F_TERMINFO, but no smart defaults */
-
-/* capability sort modes */
-#define S_DEFAULT 0 /* sort by terminfo name (implicit) */
-#define S_NOSORT 1 /* don't sort */
-#define S_TERMINFO 2 /* sort by terminfo names (explicit) */
-#define S_VARIABLE 3 /* sort by C variable names */
-#define S_TERMCAP 4 /* sort by termcap names */
-
-/* capability types for the comparison hook */
-#define CMP_BOOLEAN 0 /* comparison on booleans */
-#define CMP_NUMBER 1 /* comparison on numerics */
-#define CMP_STRING 2 /* comparison on strings */
-#define CMP_USE 3 /* comparison on use capabilities */
-
-extern NCURSES_CONST char *nametrans(const char *);
-extern void dump_init(const char *, int, int, int, int, bool);
-extern int fmt_entry(TERMTYPE *, int (*)(int, int), bool, bool, bool, int);
-extern int dump_entry(TERMTYPE *, bool, bool, int, int, int (*)(int, int));
-extern int dump_uses(const char *, bool);
-extern void compare_entry(void (*)(int, int, const char *), TERMTYPE *, bool);
-extern void repair_acsc(TERMTYPE * tp);
-
-#define FAIL -1
diff --git a/ncurses-5.3/progs/infocmp.c b/ncurses-5.3/progs/infocmp.c
deleted file mode 100644
index f43966a..0000000
--- a/ncurses-5.3/progs/infocmp.c
+++ /dev/null
@@ -1,1508 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * infocmp.c -- decompile an entry, or compare two entries
- * written by Eric S. Raymond
- */
-
-#include <progs.priv.h>
-
-#include <term_entry.h>
-#include <dump_entry.h>
-
-MODULE_ID("$Id$")
-
-#define L_CURL "{"
-#define R_CURL "}"
-
-#define MAXTERMS 32 /* max # terminal arguments we can handle */
-#define MAX_STRING 1024 /* maximum formatted string */
-
-const char *_nc_progname = "infocmp";
-
-typedef char path[PATH_MAX];
-
-/***************************************************************************
- *
- * The following control variables, together with the contents of the
- * terminfo entries, completely determine the actions of the program.
- *
- ***************************************************************************/
-
-static char *tname[MAXTERMS]; /* terminal type names */
-static ENTRY entries[MAXTERMS]; /* terminfo entries */
-static int termcount; /* count of terminal entries */
-
-static bool limited = TRUE; /* "-r" option is not set */
-static bool quiet = FALSE;
-static const char *bool_sep = ":";
-static const char *s_absent = "NULL";
-static const char *s_cancel = "NULL";
-static const char *tversion; /* terminfo version selected */
-static int itrace; /* trace flag for debugging */
-static int mwidth = 60;
-static int numbers = 0; /* format "%'char'" to/from "%{number}" */
-static int outform = F_TERMINFO; /* output format */
-static int sortmode; /* sort_mode */
-
-/* main comparison mode */
-static int compare;
-#define C_DEFAULT 0 /* don't force comparison mode */
-#define C_DIFFERENCE 1 /* list differences between two terminals */
-#define C_COMMON 2 /* list common capabilities */
-#define C_NAND 3 /* list capabilities in neither terminal */
-#define C_USEALL 4 /* generate relative use-form entry */
-static bool ignorepads; /* ignore pad prefixes when diffing */
-
-#if NO_LEAKS
-#undef ExitProgram
-static void
-ExitProgram(int code) GCC_NORETURN;
-/* prototype is to get gcc to accept the noreturn attribute */
- static void
- ExitProgram(int code)
-{
- while (termcount-- > 0)
- _nc_free_termtype(&entries[termcount].tterm);
- _nc_leaks_dump_entry();
- _nc_free_and_exit(code);
-}
-#endif
-
-static char *
-canonical_name(char *ptr, char *buf)
-/* extract the terminal type's primary name */
-{
- char *bp;
-
- (void) strcpy(buf, ptr);
- if ((bp = strchr(buf, '|')) != 0)
- *bp = '\0';
-
- return (buf);
-}
-
-/***************************************************************************
- *
- * Predicates for dump function
- *
- ***************************************************************************/
-
-static int
-capcmp(int idx, const char *s, const char *t)
-/* capability comparison function */
-{
- if (!VALID_STRING(s) && !VALID_STRING(t))
- return (s != t);
- else if (!VALID_STRING(s) || !VALID_STRING(t))
- return (1);
-
- if ((idx == acs_chars_index) || !ignorepads)
- return (strcmp(s, t));
- else
- return (_nc_capcmp(s, t));
-}
-
-static int
-use_predicate(int type, int idx)
-/* predicate function to use for use decompilation */
-{
- ENTRY *ep;
-
- switch (type) {
- case BOOLEAN:
- {
- int is_set = FALSE;
-
- /*
- * This assumes that multiple use entries are supposed
- * to contribute the logical or of their boolean capabilities.
- * This is true if we take the semantics of multiple uses to
- * be 'each capability gets the first non-default value found
- * in the sequence of use entries'.
- *
- * Note that cancelled or absent booleans are stored as FALSE,
- * unlike numbers and strings, whose cancelled/absent state is
- * recorded in the terminfo database.
- */
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (ep->tterm.Booleans[idx] == TRUE) {
- is_set = entries[0].tterm.Booleans[idx];
- break;
- }
- if (is_set != entries[0].tterm.Booleans[idx])
- return (!is_set);
- else
- return (FAIL);
- }
-
- case NUMBER:
- {
- int value = ABSENT_NUMERIC;
-
- /*
- * We take the semantics of multiple uses to be 'each
- * capability gets the first non-default value found
- * in the sequence of use entries'.
- */
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (VALID_NUMERIC(ep->tterm.Numbers[idx])) {
- value = ep->tterm.Numbers[idx];
- break;
- }
-
- if (value != entries[0].tterm.Numbers[idx])
- return (value != ABSENT_NUMERIC);
- else
- return (FAIL);
- }
-
- case STRING:
- {
- char *termstr, *usestr = ABSENT_STRING;
-
- termstr = entries[0].tterm.Strings[idx];
-
- /*
- * We take the semantics of multiple uses to be 'each
- * capability gets the first non-default value found
- * in the sequence of use entries'.
- */
- for (ep = &entries[1]; ep < entries + termcount; ep++)
- if (ep->tterm.Strings[idx]) {
- usestr = ep->tterm.Strings[idx];
- break;
- }
-
- if (usestr == ABSENT_STRING && termstr == ABSENT_STRING)
- return (FAIL);
- else if (!usestr || !termstr || capcmp(idx, usestr, termstr))
- return (TRUE);
- else
- return (FAIL);
- }
- }
-
- return (FALSE); /* pacify compiler */
-}
-
-static bool
-useeq(ENTRY * e1, ENTRY * e2)
-/* are the use references in two entries equivalent? */
-{
- int i, j;
-
- if (e1->nuses != e2->nuses)
- return (FALSE);
-
- /* Ugh...this is quadratic again */
- for (i = 0; i < e1->nuses; i++) {
- bool foundmatch = FALSE;
-
- /* search second entry for given use reference */
- for (j = 0; j < e2->nuses; j++)
- if (!strcmp(e1->uses[i].name, e2->uses[j].name)) {
- foundmatch = TRUE;
- break;
- }
-
- if (!foundmatch)
- return (FALSE);
- }
-
- return (TRUE);
-}
-
-static bool
-entryeq(TERMTYPE * t1, TERMTYPE * t2)
-/* are two entries equivalent? */
-{
- int i;
-
- for (i = 0; i < NUM_BOOLEANS(t1); i++)
- if (t1->Booleans[i] != t2->Booleans[i])
- return (FALSE);
-
- for (i = 0; i < NUM_NUMBERS(t1); i++)
- if (t1->Numbers[i] != t2->Numbers[i])
- return (FALSE);
-
- for (i = 0; i < NUM_STRINGS(t1); i++)
- if (capcmp(i, t1->Strings[i], t2->Strings[i]))
- return (FALSE);
-
- return (TRUE);
-}
-
-#define TIC_EXPAND(result) _nc_tic_expand(result, outform==F_TERMINFO, numbers)
-
-static void
-print_uses(ENTRY * ep, FILE * fp)
-/* print an entry's use references */
-{
- int i;
-
- if (!ep->nuses)
- fputs("NULL", fp);
- else
- for (i = 0; i < ep->nuses; i++) {
- fputs(ep->uses[i].name, fp);
- if (i < ep->nuses - 1)
- fputs(" ", fp);
- }
-}
-
-static const char *
-dump_boolean(int val)
-/* display the value of a boolean capability */
-{
- switch (val) {
- case ABSENT_BOOLEAN:
- return (s_absent);
- case CANCELLED_BOOLEAN:
- return (s_cancel);
- case FALSE:
- return ("F");
- case TRUE:
- return ("T");
- default:
- return ("?");
- }
-}
-
-static void
-dump_numeric(int val, char *buf)
-/* display the value of a boolean capability */
-{
- switch (val) {
- case ABSENT_NUMERIC:
- strcpy(buf, s_absent);
- break;
- case CANCELLED_NUMERIC:
- strcpy(buf, s_cancel);
- break;
- default:
- sprintf(buf, "%d", val);
- break;
- }
-}
-
-static void
-dump_string(char *val, char *buf)
-/* display the value of a string capability */
-{
- if (val == ABSENT_STRING)
- strcpy(buf, s_absent);
- else if (val == CANCELLED_STRING)
- strcpy(buf, s_cancel);
- else {
- sprintf(buf, "'%.*s'", MAX_STRING - 3, TIC_EXPAND(val));
- }
-}
-
-static void
-compare_predicate(int type, int idx, const char *name)
-/* predicate function to use for entry difference reports */
-{
- register ENTRY *e1 = &entries[0];
- register ENTRY *e2 = &entries[1];
- char buf1[MAX_STRING], buf2[MAX_STRING];
- int b1, b2;
- int n1, n2;
- char *s1, *s2;
-
- switch (type) {
- case CMP_BOOLEAN:
- b1 = e1->tterm.Booleans[idx];
- b2 = e2->tterm.Booleans[idx];
- switch (compare) {
- case C_DIFFERENCE:
- if (!(b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN) && b1 != b2)
- (void) printf("\t%s: %s%s%s.\n",
- name,
- dump_boolean(b1),
- bool_sep,
- dump_boolean(b2));
- break;
-
- case C_COMMON:
- if (b1 == b2 && b1 != ABSENT_BOOLEAN)
- (void) printf("\t%s= %s.\n", name, dump_boolean(b1));
- break;
-
- case C_NAND:
- if (b1 == ABSENT_BOOLEAN && b2 == ABSENT_BOOLEAN)
- (void) printf("\t!%s.\n", name);
- break;
- }
- break;
-
- case CMP_NUMBER:
- n1 = e1->tterm.Numbers[idx];
- n2 = e2->tterm.Numbers[idx];
- dump_numeric(n1, buf1);
- dump_numeric(n2, buf2);
- switch (compare) {
- case C_DIFFERENCE:
- if (!((n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)) && n1 != n2)
- (void) printf("\t%s: %s, %s.\n", name, buf1, buf2);
- break;
-
- case C_COMMON:
- if (n1 != ABSENT_NUMERIC && n2 != ABSENT_NUMERIC && n1 == n2)
- (void) printf("\t%s= %s.\n", name, buf1);
- break;
-
- case C_NAND:
- if (n1 == ABSENT_NUMERIC && n2 == ABSENT_NUMERIC)
- (void) printf("\t!%s.\n", name);
- break;
- }
- break;
-
- case CMP_STRING:
- s1 = e1->tterm.Strings[idx];
- s2 = e2->tterm.Strings[idx];
- switch (compare) {
- case C_DIFFERENCE:
- if (capcmp(idx, s1, s2)) {
- dump_string(s1, buf1);
- dump_string(s2, buf2);
- if (strcmp(buf1, buf2))
- (void) printf("\t%s: %s, %s.\n", name, buf1, buf2);
- }
- break;
-
- case C_COMMON:
- if (s1 && s2 && !capcmp(idx, s1, s2))
- (void) printf("\t%s= '%s'.\n", name, TIC_EXPAND(s1));
- break;
-
- case C_NAND:
- if (!s1 && !s2)
- (void) printf("\t!%s.\n", name);
- break;
- }
- break;
-
- case CMP_USE:
- /* unlike the other modes, this compares *all* use entries */
- switch (compare) {
- case C_DIFFERENCE:
- if (!useeq(e1, e2)) {
- (void) fputs("\tuse: ", stdout);
- print_uses(e1, stdout);
- fputs(", ", stdout);
- print_uses(e2, stdout);
- fputs(".\n", stdout);
- }
- break;
-
- case C_COMMON:
- if (e1->nuses && e2->nuses && useeq(e1, e2)) {
- (void) fputs("\tuse: ", stdout);
- print_uses(e1, stdout);
- fputs(".\n", stdout);
- }
- break;
-
- case C_NAND:
- if (!e1->nuses && !e2->nuses)
- (void) printf("\t!use.\n");
- break;
- }
- }
-}
-
-/***************************************************************************
- *
- * Init string analysis
- *
- ***************************************************************************/
-
-typedef struct {
- const char *from;
- const char *to;
-} assoc;
-
-static const assoc std_caps[] =
-{
- /* these are specified by X.364 and iBCS2 */
- {"\033c", "RIS"}, /* full reset */
- {"\0337", "SC"}, /* save cursor */
- {"\0338", "RC"}, /* restore cursor */
- {"\033[r", "RSR"}, /* not an X.364 mnemonic */
- {"\033[m", "SGR0"}, /* not an X.364 mnemonic */
- {"\033[2J", "ED2"}, /* clear page */
-
- /* this group is specified by ISO 2022 */
- {"\033(0", "ISO DEC G0"}, /* enable DEC graphics for G0 */
- {"\033(A", "ISO UK G0"}, /* enable UK chars for G0 */
- {"\033(B", "ISO US G0"}, /* enable US chars for G0 */
- {"\033)0", "ISO DEC G1"}, /* enable DEC graphics for G1 */
- {"\033)A", "ISO UK G1"}, /* enable UK chars for G1 */
- {"\033)B", "ISO US G1"}, /* enable US chars for G1 */
-
- /* these are DEC private modes widely supported by emulators */
- {"\033=", "DECPAM"}, /* application keypad mode */
- {"\033>", "DECPNM"}, /* normal keypad mode */
- {"\033<", "DECANSI"}, /* enter ANSI mode */
-
- {(char *) 0, (char *) 0}
-};
-
-static const assoc private_modes[] =
-/* DEC \E[ ... [hl] modes recognized by many emulators */
-{
- {"1", "CKM"}, /* application cursor keys */
- {"2", "ANM"}, /* set VT52 mode */
- {"3", "COLM"}, /* 132-column mode */
- {"4", "SCLM"}, /* smooth scroll */
- {"5", "SCNM"}, /* reverse video mode */
- {"6", "OM"}, /* origin mode */
- {"7", "AWM"}, /* wraparound mode */
- {"8", "ARM"}, /* auto-repeat mode */
- {(char *) 0, (char *) 0}
-};
-
-static const assoc ecma_highlights[] =
-/* recognize ECMA attribute sequences */
-{
- {"0", "NORMAL"}, /* normal */
- {"1", "+BOLD"}, /* bold on */
- {"2", "+DIM"}, /* dim on */
- {"3", "+ITALIC"}, /* italic on */
- {"4", "+UNDERLINE"}, /* underline on */
- {"5", "+BLINK"}, /* blink on */
- {"6", "+FASTBLINK"}, /* fastblink on */
- {"7", "+REVERSE"}, /* reverse on */
- {"8", "+INVISIBLE"}, /* invisible on */
- {"9", "+DELETED"}, /* deleted on */
- {"10", "MAIN-FONT"}, /* select primary font */
- {"11", "ALT-FONT-1"}, /* select alternate font 1 */
- {"12", "ALT-FONT-2"}, /* select alternate font 2 */
- {"13", "ALT-FONT-3"}, /* select alternate font 3 */
- {"14", "ALT-FONT-4"}, /* select alternate font 4 */
- {"15", "ALT-FONT-5"}, /* select alternate font 5 */
- {"16", "ALT-FONT-6"}, /* select alternate font 6 */
- {"17", "ALT-FONT-7"}, /* select alternate font 7 */
- {"18", "ALT-FONT-1"}, /* select alternate font 1 */
- {"19", "ALT-FONT-1"}, /* select alternate font 1 */
- {"20", "FRAKTUR"}, /* Fraktur font */
- {"21", "DOUBLEUNDER"}, /* double underline */
- {"22", "-DIM"}, /* dim off */
- {"23", "-ITALIC"}, /* italic off */
- {"24", "-UNDERLINE"}, /* underline off */
- {"25", "-BLINK"}, /* blink off */
- {"26", "-FASTBLINK"}, /* fastblink off */
- {"27", "-REVERSE"}, /* reverse off */
- {"28", "-INVISIBLE"}, /* invisible off */
- {"29", "-DELETED"}, /* deleted off */
- {(char *) 0, (char *) 0}
-};
-
-static void
-analyze_string(const char *name, const char *cap, TERMTYPE * tp)
-{
- char buf[MAX_TERMINFO_LENGTH];
- char buf2[MAX_TERMINFO_LENGTH];
- const char *sp, *ep;
- const assoc *ap;
-
- if (cap == ABSENT_STRING || cap == CANCELLED_STRING)
- return;
- (void) printf("%s: ", name);
-
- buf[0] = '\0';
- for (sp = cap; *sp; sp++) {
- int i;
- size_t len = 0;
- const char *expansion = 0;
-
- /* first, check other capabilities in this entry */
- for (i = 0; i < STRCOUNT; i++) {
- char *cp = tp->Strings[i];
-
- /* don't use soft-key capabilities */
- if (strnames[i][0] == 'k' && strnames[i][0] == 'f')
- continue;
-
- if (cp != ABSENT_STRING && cp != CANCELLED_STRING && cp[0] && cp
- != cap) {
- len = strlen(cp);
- (void) strncpy(buf2, sp, len);
- buf2[len] = '\0';
-
- if (_nc_capcmp(cp, buf2))
- continue;
-
-#define ISRS(s) (!strncmp((s), "is", 2) || !strncmp((s), "rs", 2))
- /*
- * Theoretically we just passed the test for translation
- * (equality once the padding is stripped). However, there
- * are a few more hoops that need to be jumped so that
- * identical pairs of initialization and reset strings
- * don't just refer to each other.
- */
- if (ISRS(name) || ISRS(strnames[i]))
- if (cap < cp)
- continue;
-#undef ISRS
-
- expansion = strnames[i];
- break;
- }
- }
-
- /* now check the standard capabilities */
- if (!expansion)
- for (ap = std_caps; ap->from; ap++) {
- len = strlen(ap->from);
-
- if (strncmp(ap->from, sp, len) == 0) {
- expansion = ap->to;
- break;
- }
- }
-
- /* now check for private-mode sequences */
- if (!expansion
- && sp[0] == '\033' && sp[1] == '[' && sp[2] == '?'
- && (len = strspn(sp + 3, "0123456789;"))
- && ((sp[3 + len] == 'h') || (sp[3 + len] == 'l'))) {
- char buf3[MAX_TERMINFO_LENGTH];
-
- (void) strcpy(buf2, (sp[3 + len] == 'h') ? "DEC+" : "DEC-");
- (void) strncpy(buf3, sp + 3, len);
- len += 4;
- buf3[len] = '\0';
-
- ep = strtok(buf3, ";");
- do {
- bool found = FALSE;
-
- for (ap = private_modes; ap->from; ap++) {
- size_t tlen = strlen(ap->from);
-
- if (strncmp(ap->from, ep, tlen) == 0) {
- (void) strcat(buf2, ap->to);
- found = TRUE;
- break;
- }
- }
-
- if (!found)
- (void) strcat(buf2, ep);
- (void) strcat(buf2, ";");
- } while
- ((ep = strtok((char *) 0, ";")));
- buf2[strlen(buf2) - 1] = '\0';
- expansion = buf2;
- }
-
- /* now check for ECMA highlight sequences */
- if (!expansion
- && sp[0] == '\033' && sp[1] == '['
- && (len = strspn(sp + 2, "0123456789;"))
- && sp[2 + len] == 'm') {
- char buf3[MAX_TERMINFO_LENGTH];
-
- (void) strcpy(buf2, "SGR:");
- (void) strncpy(buf3, sp + 2, len);
- len += 3;
- buf3[len] = '\0';
-
- ep = strtok(buf3, ";");
- do {
- bool found = FALSE;
-
- for (ap = ecma_highlights; ap->from; ap++) {
- size_t tlen = strlen(ap->from);
-
- if (strncmp(ap->from, ep, tlen) == 0) {
- (void) strcat(buf2, ap->to);
- found = TRUE;
- break;
- }
- }
-
- if (!found)
- (void) strcat(buf2, ep);
- (void) strcat(buf2, ";");
- } while
- ((ep = strtok((char *) 0, ";")));
-
- buf2[strlen(buf2) - 1] = '\0';
- expansion = buf2;
- }
- /* now check for scroll region reset */
- if (!expansion) {
- (void) sprintf(buf2, "\033[1;%dr", tp->Numbers[2]);
- len = strlen(buf2);
- if (strncmp(buf2, sp, len) == 0)
- expansion = "RSR";
- }
-
- /* now check for home-down */
- if (!expansion) {
- (void) sprintf(buf2, "\033[%d;1H", tp->Numbers[2]);
- len = strlen(buf2);
- if (strncmp(buf2, sp, len) == 0)
- expansion = "LL";
- }
-
- /* now look at the expansion we got, if any */
- if (expansion) {
- (void) sprintf(buf + strlen(buf), "{%s}", expansion);
- sp += len - 1;
- continue;
- } else {
- /* couldn't match anything */
- buf2[0] = *sp;
- buf2[1] = '\0';
- (void) strcat(buf, TIC_EXPAND(buf2));
- }
- }
- (void) printf("%s\n", buf);
-}
-
-/***************************************************************************
- *
- * File comparison
- *
- ***************************************************************************/
-
-static void
-file_comparison(int argc, char *argv[])
-{
-#define MAXCOMPARE 2
- /* someday we may allow comparisons on more files */
- int filecount = 0;
- ENTRY *heads[MAXCOMPARE];
- ENTRY *qp, *rp;
- int i, n;
-
- dump_init((char *) 0, F_LITERAL, S_TERMINFO, 0, itrace, FALSE);
-
- for (n = 0; n < argc && n < MAXCOMPARE; n++) {
- if (freopen(argv[n], "r", stdin) == 0)
- _nc_err_abort("Can't open %s", argv[n]);
-
- _nc_head = _nc_tail = 0;
-
- /* parse entries out of the source file */
- _nc_set_source(argv[n]);
- _nc_read_entry_source(stdin, NULL, TRUE, FALSE, NULLHOOK);
-
- if (itrace)
- (void) fprintf(stderr, "Resolving file %d...\n", n - 0);
-
- /* maybe do use resolution */
- if (!_nc_resolve_uses(!limited)) {
- (void) fprintf(stderr,
- "There are unresolved use entries in %s:\n",
- argv[n]);
- for_entry_list(qp) {
- if (qp->nuses) {
- (void) fputs(qp->tterm.term_names, stderr);
- (void) fputc('\n', stderr);
- }
- }
- exit(EXIT_FAILURE);
- }
-
- heads[filecount] = _nc_head;
- filecount++;
- }
-
- /* OK, all entries are in core. Ready to do the comparison */
- if (itrace)
- (void) fprintf(stderr, "Entries are now in core...\n");
-
- /* The entry-matching loop. Sigh, this is intrinsically quadratic. */
- for (qp = heads[0]; qp; qp = qp->next) {
- for (rp = heads[1]; rp; rp = rp->next)
- if (_nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) {
- if (qp->ncrosslinks < MAX_CROSSLINKS)
- qp->crosslinks[qp->ncrosslinks] = rp;
- qp->ncrosslinks++;
-
- if (rp->ncrosslinks < MAX_CROSSLINKS)
- rp->crosslinks[rp->ncrosslinks] = qp;
- rp->ncrosslinks++;
- }
- }
-
- /* now we have two circular lists with crosslinks */
- if (itrace)
- (void) fprintf(stderr, "Name matches are done...\n");
-
- for (qp = heads[0]; qp; qp = qp->next) {
- if (qp->ncrosslinks > 1) {
- (void) fprintf(stderr,
- "%s in file 1 (%s) has %d matches in file 2 (%s):\n",
- _nc_first_name(qp->tterm.term_names),
- argv[0],
- qp->ncrosslinks,
- argv[1]);
- for (i = 0; i < qp->ncrosslinks; i++)
- (void) fprintf(stderr,
- "\t%s\n",
- _nc_first_name((qp->crosslinks[i])->tterm.term_names));
- }
- }
-
- for (rp = heads[1]; rp; rp = rp->next) {
- if (rp->ncrosslinks > 1) {
- (void) fprintf(stderr,
- "%s in file 2 (%s) has %d matches in file 1 (%s):\n",
- _nc_first_name(rp->tterm.term_names),
- argv[1],
- rp->ncrosslinks,
- argv[0]);
- for (i = 0; i < rp->ncrosslinks; i++)
- (void) fprintf(stderr,
- "\t%s\n",
- _nc_first_name((rp->crosslinks[i])->tterm.term_names));
- }
- }
-
- (void) printf("In file 1 (%s) only:\n", argv[0]);
- for (qp = heads[0]; qp; qp = qp->next)
- if (qp->ncrosslinks == 0)
- (void) printf("\t%s\n",
- _nc_first_name(qp->tterm.term_names));
-
- (void) printf("In file 2 (%s) only:\n", argv[1]);
- for (rp = heads[1]; rp; rp = rp->next)
- if (rp->ncrosslinks == 0)
- (void) printf("\t%s\n",
- _nc_first_name(rp->tterm.term_names));
-
- (void) printf("The following entries are equivalent:\n");
- for (qp = heads[0]; qp; qp = qp->next) {
- rp = qp->crosslinks[0];
-
- if (qp->ncrosslinks == 1) {
- rp = qp->crosslinks[0];
-
- repair_acsc(&qp->tterm);
- repair_acsc(&rp->tterm);
-#if NCURSES_XNAMES
- _nc_align_termtype(&qp->tterm, &rp->tterm);
-#endif
- if (entryeq(&qp->tterm, &rp->tterm) && useeq(qp, rp)) {
- char name1[NAMESIZE], name2[NAMESIZE];
-
- (void) canonical_name(qp->tterm.term_names, name1);
- (void) canonical_name(rp->tterm.term_names, name2);
-
- (void) printf("%s = %s\n", name1, name2);
- }
- }
- }
-
- (void) printf("Differing entries:\n");
- termcount = 2;
- for (qp = heads[0]; qp; qp = qp->next) {
-
- if (qp->ncrosslinks == 1) {
- rp = qp->crosslinks[0];
-#if NCURSES_XNAMES
- /* sorry - we have to do this on each pass */
- _nc_align_termtype(&qp->tterm, &rp->tterm);
-#endif
- if (!(entryeq(&qp->tterm, &rp->tterm) && useeq(qp, rp))) {
- char name1[NAMESIZE], name2[NAMESIZE];
-
- entries[0] = *qp;
- entries[1] = *rp;
-
- (void) canonical_name(qp->tterm.term_names, name1);
- (void) canonical_name(rp->tterm.term_names, name2);
-
- switch (compare) {
- case C_DIFFERENCE:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping differences\n");
- (void) printf("comparing %s to %s.\n", name1, name2);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_COMMON:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping common capabilities\n");
- (void) printf("comparing %s to %s.\n", name1, name2);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_NAND:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping differences\n");
- (void) printf("comparing %s to %s.\n", name1, name2);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- }
- }
- }
- }
-}
-
-static void
-usage(void)
-{
- static const char *tbl[] =
- {
- "Usage: infocmp [options] [-A directory] [-B directory] [termname...]"
- ,""
- ,"Options:"
- ," -1 print single-column"
- ," -C use termcap-names"
- ," -F compare terminfo-files"
- ," -I use terminfo-names"
- ," -L use long names"
- ," -R subset (see manpage)"
- ," -T eliminate size limits (test)"
- ," -V print version"
-#if NCURSES_XNAMES
- ," -a with -F, list commented-out caps"
-#endif
- ," -c list common capabilities"
- ," -d list different capabilities"
- ," -e format output for C initializer"
- ," -E format output as C tables"
- ," -f with -1, format complex strings"
- ," -G format %{number} to %'char'"
- ," -g format %'char' to %{number}"
- ," -i analyze initialization/reset"
- ," -l output terminfo names"
- ," -n list capabilities in neither"
- ," -p ignore padding specifiers"
- ," -q brief listing, removes headers"
- ," -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)"
- };
- const size_t first = 3;
- const size_t last = SIZEOF(tbl);
- const size_t left = (last - first + 1) / 2 + first;
- size_t n;
-
- for (n = 0; n < left; n++) {
- size_t m = (n < first) ? last : n + left - first;
- if (m < last)
- fprintf(stderr, "%-40.40s%s\n", tbl[n], tbl[m]);
- else
- fprintf(stderr, "%s\n", tbl[n]);
- }
- exit(EXIT_FAILURE);
-}
-
-static char *
-any_initializer(const char *fmt, const char *type)
-{
- static char *initializer;
- char *s;
-
- if (initializer == 0)
- initializer = (char *) malloc(strlen(entries->tterm.term_names) +
- strlen(type) + strlen(fmt));
-
- (void) strcpy(initializer, entries->tterm.term_names);
- for (s = initializer; *s != 0 && *s != '|'; s++) {
- if (!isalnum(UChar(*s)))
- *s = '_';
- }
- *s = 0;
- (void) sprintf(s, fmt, type);
- 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;
- 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);
-
- for_each_boolean(n, term) {
- switch ((int) (term->Booleans[n])) {
- case TRUE:
- str = "TRUE";
- break;
-
- case FALSE:
- str = "FALSE";
- break;
-
- case ABSENT_BOOLEAN:
- str = "ABSENT_BOOLEAN";
- break;
-
- case CANCELLED_BOOLEAN:
- str = "CANCELLED_BOOLEAN";
- break;
- }
- (void) printf("\t/* %3d: %-8s */\t%s,\n",
- n, ExtBoolname(term, n, boolnames), str);
- }
- (void) printf("%s;\n", R_CURL);
-
- (void) printf("static short %s[] = %s\n", name_initializer("number"), L_CURL);
-
- for_each_number(n, term) {
- char buf[BUFSIZ];
- switch (term->Numbers[n]) {
- case ABSENT_NUMERIC:
- str = "ABSENT_NUMERIC";
- break;
- case CANCELLED_NUMERIC:
- str = "CANCELLED_NUMERIC";
- break;
- default:
- sprintf(buf, "%d", term->Numbers[n]);
- str = buf;
- break;
- }
- (void) printf("\t/* %3d: %-8s */\t%s,\n", n,
- ExtNumname(term, n, numnames), str);
- }
- (void) printf("%s;\n", R_CURL);
-
- size = sizeof(TERMTYPE)
- + (NUM_BOOLEANS(term) * sizeof(term->Booleans[0]))
- + (NUM_NUMBERS(term) * sizeof(term->Numbers[0]));
-
- (void) printf("static char * %s[] = %s\n", name_initializer("string"), L_CURL);
-
- for_each_string(n, term) {
-
- if (term->Strings[n] == ABSENT_STRING)
- str = "ABSENT_STRING";
- else if (term->Strings[n] == CANCELLED_STRING)
- str = "CANCELLED_STRING";
- else {
- str = string_variable(ExtStrname(term, n, strnames));
- }
- (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)
-{
- (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%s,\n", name_initializer("number"));
-
- (void) printf("\t\t%s,\n", name_initializer("string"));
-
-#if NCURSES_XNAMES
- (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_BOOLEANS(term) != BOOLCOUNT)
- || (NUM_NUMBERS(term) != NUMCOUNT)
- || (NUM_STRINGS(term) != STRCOUNT))
- ? name_initializer("string_ext")
- : "(char **)0");
-
- (void) printf("\t\t%d,\t\t/* count total Booleans */\n", NUM_BOOLEANS(term));
- (void) printf("\t\t%d,\t\t/* count total Numbers */\n", NUM_NUMBERS(term));
- (void) printf("\t\t%d,\t\t/* count total Strings */\n", NUM_STRINGS(term));
-
- (void) printf("\t\t%d,\t\t/* count extensions to Booleans */\n",
- NUM_BOOLEANS(term) - BOOLCOUNT);
- (void) printf("\t\t%d,\t\t/* count extensions to Numbers */\n",
- NUM_NUMBERS(term) - NUMCOUNT);
- (void) printf("\t\t%d,\t\t/* count extensions to Strings */\n",
- NUM_STRINGS(term) - STRCOUNT);
-
- (void) printf("#endif /* NCURSES_XNAMES */\n");
-#endif /* NCURSES_XNAMES */
- (void) printf("\t%s\n", R_CURL);
-}
-
-static int
-optarg_to_number(void)
-{
- char *temp = 0;
- long value = strtol(optarg, &temp, 0);
-
- if (temp == 0 || temp == optarg || *temp != 0) {
- fprintf(stderr, "Expected a number, not \"%s\"\n", optarg);
- exit(EXIT_FAILURE);
- }
- return (int) value;
-}
-
-/***************************************************************************
- *
- * Main sequence
- *
- ***************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
- char *terminal, *firstdir, *restdir;
- /* Avoid "local data >32k" error with mwcc */
- /* Also avoid overflowing smaller stacks on systems like AmigaOS */
- path *tfile = (path *) malloc(sizeof(path) * MAXTERMS);
- int c, i, len;
- bool formatted = FALSE;
- bool filecompare = FALSE;
- int initdump = 0;
- bool init_analyze = FALSE;
- bool suppress_untranslatable = FALSE;
-
- if ((terminal = getenv("TERM")) == 0) {
- (void) fprintf(stderr,
- "infocmp: environment variable TERM not set\n");
- return EXIT_FAILURE;
- }
-
- /* where is the terminfo database location going to default to? */
- restdir = firstdir = 0;
-
- while ((c = getopt(argc,
- argv,
- "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtuVv:w:")) != EOF)
- 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
- case 'B':
- restdir = optarg;
- break;
-
- 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;
-
- case 'e':
- initdump |= 1;
- break;
-
- case 'F':
- filecompare = TRUE;
- break;
-
- case 'f':
- formatted = TRUE;
- break;
-
- case 'G':
- numbers = 1;
- break;
-
- case 'g':
- numbers = -1;
- break;
-
- case 'I':
- outform = F_TERMINFO;
- if (sortmode == S_DEFAULT)
- sortmode = S_VARIABLE;
- tversion = 0;
- break;
-
- case 'i':
- init_analyze = TRUE;
- 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 'p':
- ignorepads = TRUE;
- break;
-
- case 'q':
- quiet = TRUE;
- s_absent = "-";
- s_cancel = "@";
- bool_sep = ", ";
- break;
-
- case 'R':
- tversion = optarg;
- break;
-
- case 'r':
- tversion = 0;
- limited = FALSE;
- break;
-
- case 's':
- if (*optarg == 'd')
- sortmode = S_NOSORT;
- else if (*optarg == 'i')
- sortmode = S_TERMINFO;
- else if (*optarg == 'l')
- sortmode = S_VARIABLE;
- else if (*optarg == 'c')
- sortmode = S_TERMCAP;
- else {
- (void) fprintf(stderr,
- "infocmp: unknown sort mode\n");
- return EXIT_FAILURE;
- }
- 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 'V':
- puts(curses_version());
- ExitProgram(EXIT_SUCCESS);
-
- case 'v':
- itrace = optarg_to_number();
- set_trace_level(itrace);
- break;
-
- case 'w':
- mwidth = optarg_to_number();
- break;
-
- default:
- usage();
- }
-
- /* by default, sort by terminfo name */
- if (sortmode == S_DEFAULT)
- sortmode = S_TERMINFO;
-
- /* set up for display */
- dump_init(tversion, outform, sortmode, mwidth, itrace, formatted);
-
- /* make sure we have at least one terminal name to work with */
- if (optind >= argc)
- argv[argc++] = terminal;
-
- /* if user is after a comparison, make sure we have two entries */
- if (compare != C_DEFAULT && optind >= argc - 1)
- argv[argc++] = terminal;
-
- /* exactly two terminal names with no options means do -d */
- if (argc - optind == 2 && compare == C_DEFAULT)
- compare = C_DIFFERENCE;
-
- if (!filecompare) {
- /* grab the entries */
- termcount = 0;
- for (; optind < argc; optind++) {
- if (termcount >= MAXTERMS) {
- (void) fprintf(stderr,
- "infocmp: too many terminal type arguments\n");
- return EXIT_FAILURE;
- } else {
- const char *directory = termcount ? restdir : firstdir;
- int status;
-
- tname[termcount] = argv[optind];
-
- if (directory) {
- (void) sprintf(tfile[termcount], "%s/%c/%s",
- directory,
- *argv[optind], argv[optind]);
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: reading entry %s from file %s\n",
- argv[optind], tfile[termcount]);
-
- status = _nc_read_file_entry(tfile[termcount],
- &entries[termcount].tterm);
- } else {
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: reading entry %s from system directories %s\n",
- argv[optind], tname[termcount]);
-
- status = _nc_read_entry(tname[termcount],
- tfile[termcount],
- &entries[termcount].tterm);
- directory = TERMINFO; /* for error message */
- }
-
- if (status <= 0) {
- (void) fprintf(stderr,
- "infocmp: couldn't open terminfo file %s.\n",
- tfile[termcount]);
- return EXIT_FAILURE;
- }
- repair_acsc(&entries[termcount].tterm);
- termcount++;
- }
- }
-
-#if NCURSES_XNAMES
- if (termcount > 1)
- _nc_align_termtype(&entries[0].tterm, &entries[1].tterm);
-#endif
-
- /* dump as C initializer for the terminal type */
- if (initdump) {
- if (initdump & 1)
- dump_termtype(&entries[0].tterm);
- if (initdump & 2)
- dump_initializers(&entries[0].tterm);
- ExitProgram(EXIT_SUCCESS);
- }
-
- /* analyze the init strings */
- if (init_analyze) {
-#undef CUR
-#define CUR entries[0].tterm.
- analyze_string("is1", init_1string, &entries[0].tterm);
- analyze_string("is2", init_2string, &entries[0].tterm);
- analyze_string("is3", init_3string, &entries[0].tterm);
- analyze_string("rs1", reset_1string, &entries[0].tterm);
- analyze_string("rs2", reset_2string, &entries[0].tterm);
- analyze_string("rs3", reset_3string, &entries[0].tterm);
- analyze_string("smcup", enter_ca_mode, &entries[0].tterm);
- analyze_string("rmcup", exit_ca_mode, &entries[0].tterm);
-#undef CUR
- ExitProgram(EXIT_SUCCESS);
- }
-
- /*
- * Here's where the real work gets done
- */
- switch (compare) {
- case C_DEFAULT:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: about to dump %s\n",
- tname[0]);
- (void) printf("#\tReconstructed via infocmp from file: %s\n",
- tfile[0]);
- len = dump_entry(&entries[0].tterm,
- suppress_untranslatable,
- limited,
- 0,
- numbers,
- NULL);
- putchar('\n');
- if (itrace)
- (void) fprintf(stderr, "infocmp: length %d\n", len);
- break;
-
- case C_DIFFERENCE:
- if (itrace)
- (void) fprintf(stderr, "infocmp: dumping differences\n");
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_COMMON:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping common capabilities\n");
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_NAND:
- if (itrace)
- (void) fprintf(stderr,
- "infocmp: dumping differences\n");
- (void) printf("comparing %s to %s.\n", tname[0], tname[1]);
- compare_entry(compare_predicate, &entries->tterm, quiet);
- break;
-
- case C_USEALL:
- if (itrace)
- (void) fprintf(stderr, "infocmp: dumping use entry\n");
- len = dump_entry(&entries[0].tterm,
- suppress_untranslatable,
- limited,
- 0,
- numbers,
- use_predicate);
- for (i = 1; i < termcount; i++)
- len += dump_uses(tname[i], !(outform == F_TERMCAP
- || outform == F_TCONVERR));
- putchar('\n');
- if (itrace)
- (void) fprintf(stderr, "infocmp: length %d\n", len);
- break;
- }
- } else if (compare == C_USEALL)
- (void) fprintf(stderr, "Sorry, -u doesn't work with -F\n");
- else if (compare == C_DEFAULT)
- (void) fprintf(stderr, "Use `tic -[CI] <file>' for this.\n");
- else if (argc - optind != 2)
- (void) fprintf(stderr,
- "File comparison needs exactly two file arguments.\n");
- else
- file_comparison(argc - optind, argv + optind);
-
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* infocmp.c ends here */
diff --git a/ncurses-5.3/progs/modules b/ncurses-5.3/progs/modules
deleted file mode 100644
index 720c8b8..0000000
--- a/ncurses-5.3/progs/modules
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id$
-# Program modules (some are in ncurses lib!)
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1995,1997
-#
-
-@ base
-clear progs $(srcdir) ../include/term.h
-tic progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-toe progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-dump_entry progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
-infocmp progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-tput progs $(srcdir) ../include/term.h
-tset progs $(srcdir) ../include/term.h
diff --git a/ncurses-5.3/progs/progs.priv.h b/ncurses-5.3/progs/progs.priv.h
deleted file mode 100644
index d6109e3..0000000
--- a/ncurses-5.3/progs/progs.priv.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997,1998 *
- ****************************************************************************/
-/*
- * $Id$
- *
- * progs.priv.h
- *
- * Header file for curses utility programs
- */
-
-#include <ncurses_cfg.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#else
-# if HAVE_LIBC_H
-# include <libc.h>
-# endif
-#endif
-
-#if HAVE_SYS_BSDTYPES_H
-#include <sys/bsdtypes.h> /* needed for ISC */
-#endif
-
-#if HAVE_LIMITS_H
-# include <limits.h>
-#elif HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-#if HAVE_DIRENT_H
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif
-# if HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif
-# if HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif
-
-#include <errno.h>
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-#if HAVE_GETOPT_H
-#include <getopt.h>
-#else
-/* 'getopt()' may be prototyped in <stdlib.h>, but declaring its
- * variables doesn't hurt.
- */
-extern char *optarg;
-extern int optind;
-#endif /* HAVE_GETOPT_H */
-
-#include <curses.h>
-#include <term_entry.h>
-#include <tic.h>
-#include <nc_alloc.h>
-
-/* usually in <unistd.h> */
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-#ifndef R_OK
-#define R_OK 4 /* Test for readable. */
-#endif
-
-#ifndef W_OK
-#define W_OK 2 /* Test for writable. */
-#endif
-
-#ifndef X_OK
-#define X_OK 1 /* Test for executable. */
-#endif
-
-#ifndef F_OK
-#define F_OK 0 /* Test for existence. */
-#endif
-
-/* usually in <unistd.h> */
-#ifndef STDOUT_FILENO
-#define STDOUT_FILENO 1
-#endif
-
-#ifndef STDERR_FILENO
-#define STDERR_FILENO 2
-#endif
-
-/* may be in limits.h, included from various places */
-#ifndef PATH_MAX
-# if defined(_POSIX_PATH_MAX)
-# define PATH_MAX _POSIX_PATH_MAX
-# elif defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-# else
-# define PATH_MAX 255 /* the Posix minimum pathsize */
-# endif
-#endif
-
-/* We use isascii only to guard against use of 7-bit ctype tables in the
- * isprint test in infocmp.
- */
-#if !HAVE_ISASCII
-# undef isascii
-# if ('z'-'a' == 25) && ('z' < 127) && ('Z'-'A' == 25) && ('Z' < 127) && ('9' < 127)
-# define isascii(c) (UChar(c) <= 127)
-# else
-# define isascii(c) 1 /* not really ascii anyway */
-# endif
-#endif
-
-#define UChar(c) ((unsigned char)(c))
-
-#define SIZEOF(v) (sizeof(v)/sizeof(v[0]))
diff --git a/ncurses-5.3/progs/tic.c b/ncurses-5.3/progs/tic.c
deleted file mode 100644
index a1ed4b3..0000000
--- a/ncurses-5.3/progs/tic.c
+++ /dev/null
@@ -1,1145 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996 on *
- ****************************************************************************/
-
-/*
- * tic.c --- Main program for terminfo compiler
- * by Eric S. Raymond
- *
- */
-
-#include <progs.priv.h>
-#include <sys/stat.h>
-
-#include <dump_entry.h>
-#include <term_entry.h>
-#include <transform.h>
-
-MODULE_ID("$Id$")
-
-const char *_nc_progname = "tic";
-
-static FILE *log_fp;
-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 const char usage_string[] = "[-V] [-v[n]] [-e names] [-CILNRTcfrswx1] source-file\n";
-
-static void
-cleanup(void)
-{
- if (tmp_fp != 0)
- fclose(tmp_fp);
- if (to_remove != 0) {
-#if HAVE_REMOVE
- remove(to_remove);
-#else
- unlink(to_remove);
-#endif
- }
-}
-
-static void
-failed(const char *msg)
-{
- perror(msg);
- cleanup();
- exit(EXIT_FAILURE);
-}
-
-static void
-usage(void)
-{
- static const char *const tbl[] =
- {
- "Options:",
- " -1 format translation output one capability per line",
-#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",
- " -e<names> translate/compile only entries named by comma-separated list",
- " -f format complex strings for readability",
- " -G format %{number} to %'char'",
- " -g format %'char' to %{number}",
- " -I translate entries to terminfo source form",
- " -L translate entries to full terminfo source form",
- " -N disable smart defaults for source translation",
- " -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",
- " -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
- " -x treat unknown capabilities as user-defined",
-#endif
- "",
- "Parameters:",
- " <file> file to translate or compile"
- };
- size_t j;
-
- fprintf(stderr, "Usage: %s %s\n", _nc_progname, usage_string);
- for (j = 0; j < SIZEOF(tbl); j++) {
- fputs(tbl[j], stderr);
- putc('\n', stderr);
- }
- exit(EXIT_FAILURE);
-}
-
-#define L_BRACE '{'
-#define R_BRACE '}'
-#define S_QUOTE '\'';
-
-static void
-write_it(ENTRY * ep)
-{
- unsigned n;
- int ch;
- char *s, *d, *t;
- char result[MAX_ENTRY_SIZE];
-
- /*
- * Look for strings that contain %{number}, convert them to %'char',
- * which is shorter and runs a little faster.
- */
- for (n = 0; n < STRCOUNT; n++) {
- s = ep->tterm.Strings[n];
- if (VALID_STRING(s)
- && strchr(s, L_BRACE) != 0) {
- d = result;
- t = s;
- while ((ch = *t++) != 0) {
- *d++ = ch;
- if (ch == '\\') {
- *d++ = *t++;
- } else if ((ch == '%')
- && (*t == L_BRACE)) {
- char *v = 0;
- long value = strtol(t + 1, &v, 0);
- if (v != 0
- && *v == R_BRACE
- && value > 0
- && value != '\\' /* FIXME */
- && value < 127
- && isprint((int) value)) {
- *d++ = S_QUOTE;
- *d++ = (int) value;
- *d++ = S_QUOTE;
- t = (v + 1);
- }
- }
- }
- *d = 0;
- if (strlen(result) < strlen(s))
- strcpy(s, result);
- }
- }
-
- _nc_set_type(_nc_first_name(ep->tterm.term_names));
- _nc_curr_line = ep->startline;
- _nc_write_entry(&ep->tterm);
-}
-
-static bool
-immedhook(ENTRY * ep GCC_UNUSED)
-/* write out entries with no use capabilities immediately to save storage */
-{
-#if !HAVE_BIG_CORE
- /*
- * This is strictly a core-economy kluge. The really clean way to handle
- * compilation is to slurp the whole file into core and then do all the
- * name-collision checks and entry writes in one swell foop. But the
- * terminfo master file is large enough that some core-poor systems swap
- * like crazy when you compile it this way...there have been reports of
- * this process taking *three hours*, rather than the twenty seconds or
- * less typical on my development box.
- *
- * So. This hook *immediately* writes out the referenced entry if it
- * has no use capabilities. The compiler main loop refrains from
- * adding the entry to the in-core list when this hook fires. If some
- * other entry later needs to reference an entry that got written
- * immediately, that's OK; the resolution code will fetch it off disk
- * when it can't find it in core.
- *
- * Name collisions will still be detected, just not as cleanly. The
- * write_entry() code complains before overwriting an entry that
- * postdates the time of tic's first call to write_entry(). Thus
- * it will complain about overwriting entries newly made during the
- * tic run, but not about overwriting ones that predate it.
- *
- * The reason this is a hook, and not in line with the rest of the
- * compiler code, is that the support for termcap fallback cannot assume
- * it has anywhere to spool out these entries!
- *
- * The _nc_set_type() call here requires a compensating one in
- * _nc_parse_entry().
- *
- * If you define HAVE_BIG_CORE, you'll disable this kluge. This will
- * make tic a bit faster (because the resolution code won't have to do
- * disk I/O nearly as often).
- */
- if (ep->nuses == 0) {
- int oldline = _nc_curr_line;
-
- write_it(ep);
- _nc_curr_line = oldline;
- free(ep->tterm.str_table);
- return (TRUE);
- }
-#endif /* HAVE_BIG_CORE */
- return (FALSE);
-}
-
-static void
-put_translate(int c)
-/* emit a comment char, translating terminfo names to termcap names */
-{
- static bool in_name = FALSE;
- static size_t have, used;
- static char *namebuf, *suffix;
-
- if (in_name) {
- if (used + 1 >= have) {
- have += 132;
- namebuf = typeRealloc(char, have, namebuf);
- suffix = typeRealloc(char, have, suffix);
- }
- if (c == '\n' || c == '@') {
- namebuf[used++] = '\0';
- (void) putchar('<');
- (void) fputs(namebuf, stdout);
- putchar(c);
- in_name = FALSE;
- } else if (c != '>') {
- namebuf[used++] = c;
- } else { /* ah! candidate name! */
- char *up;
- NCURSES_CONST char *tp;
-
- namebuf[used++] = '\0';
- in_name = FALSE;
-
- suffix[0] = '\0';
- if ((up = strchr(namebuf, '#')) != 0
- || (up = strchr(namebuf, '=')) != 0
- || ((up = strchr(namebuf, '@')) != 0 && up[1] == '>')) {
- (void) strcpy(suffix, up);
- *up = '\0';
- }
-
- if ((tp = nametrans(namebuf)) != 0) {
- (void) putchar(':');
- (void) fputs(tp, stdout);
- (void) fputs(suffix, stdout);
- (void) putchar(':');
- } else {
- /* couldn't find a translation, just dump the name */
- (void) putchar('<');
- (void) fputs(namebuf, stdout);
- (void) fputs(suffix, stdout);
- (void) putchar('>');
- }
- }
- } else {
- used = 0;
- if (c == '<') {
- in_name = TRUE;
- } else {
- putchar(c);
- }
- }
-}
-
-/* Returns a string, stripped of leading/trailing whitespace */
-static char *
-stripped(char *src)
-{
- while (isspace(UChar(*src)))
- src++;
- if (*src != '\0') {
- char *dst = strcpy(malloc(strlen(src) + 1), src);
- size_t len = strlen(dst);
- while (--len != 0 && isspace(UChar(dst[len])))
- dst[len] = '\0';
- return dst;
- }
- return 0;
-}
-
-static FILE *
-open_input(const char *filename)
-{
- FILE *fp = fopen(filename, "r");
- struct stat sb;
-
- if (fp == 0) {
- fprintf(stderr, "%s: Can't open %s\n", _nc_progname, filename);
- exit(EXIT_FAILURE);
- }
- if (fstat(fileno(fp), &sb) < 0
- || (sb.st_mode & S_IFMT) != S_IFREG) {
- fprintf(stderr, "%s: %s is not a file\n", _nc_progname, filename);
- exit(EXIT_FAILURE);
- }
- return fp;
-}
-
-/* Parse the "-e" option-value into a list of names */
-static const char **
-make_namelist(char *src)
-{
- const char **dst = 0;
-
- char *s, *base;
- unsigned pass, n, nn;
- char buffer[BUFSIZ];
-
- if (src == 0) {
- /* EMPTY */ ;
- } else if (strchr(src, '/') != 0) { /* a filename */
- FILE *fp = open_input(src);
-
- for (pass = 1; pass <= 2; pass++) {
- nn = 0;
- while (fgets(buffer, sizeof(buffer), fp) != 0) {
- if ((s = stripped(buffer)) != 0) {
- if (dst != 0)
- dst[nn] = s;
- nn++;
- }
- }
- if (pass == 1) {
- dst = typeCalloc(const char *, nn + 1);
- rewind(fp);
- }
- }
- fclose(fp);
- } else { /* literal list of names */
- for (pass = 1; pass <= 2; pass++) {
- for (n = nn = 0, base = src;; n++) {
- int mark = src[n];
- if (mark == ',' || mark == '\0') {
- if (pass == 1) {
- nn++;
- } else {
- src[n] = '\0';
- if ((s = stripped(base)) != 0)
- dst[nn++] = s;
- base = &src[n + 1];
- }
- }
- if (mark == '\0')
- break;
- }
- if (pass == 1)
- dst = typeCalloc(const char *, nn + 1);
- }
- }
- if (showsummary) {
- fprintf(log_fp, "Entries that will be compiled:\n");
- for (n = 0; dst[n] != 0; n++)
- fprintf(log_fp, "%d:%s\n", n + 1, dst[n]);
- }
- return dst;
-}
-
-static bool
-matches(const char **needle, const char *haystack)
-/* does entry in needle list match |-separated field in haystack? */
-{
- bool code = FALSE;
- size_t n;
-
- if (needle != 0) {
- for (n = 0; needle[n] != 0; n++) {
- if (_nc_name_match(haystack, needle[n], "|")) {
- code = TRUE;
- break;
- }
- }
- } else
- code = TRUE;
- return (code);
-}
-
-static FILE *
-open_tempfile(char *name)
-{
- FILE *result = 0;
-#if HAVE_MKSTEMP
- int fd = mkstemp(name);
- if (fd >= 0)
- result = fdopen(fd, "w");
-#else
- if (tmpnam(name) != 0)
- result = fopen(name, "w");
-#endif
- return result;
-}
-
-int
-main(int argc, char *argv[])
-{
- char my_tmpname[PATH_MAX];
- int v_opt = -1, debug_level;
- int smart_defaults = TRUE;
- char *termcap;
- ENTRY *qp;
-
- int this_opt, last_opt = '?';
-
- int outform = F_TERMINFO; /* output format */
- int sortmode = S_TERMINFO; /* sort_mode */
-
- int width = 60;
- bool formatted = FALSE; /* reformat complex strings? */
- int numbers = 0; /* format "%'char'" to/from "%{number}" */
- bool infodump = FALSE; /* running as captoinfo? */
- bool capdump = FALSE; /* running as infotocap? */
- bool forceresolve = FALSE; /* force resolution */
- bool limited = TRUE;
- char *tversion = (char *) NULL;
- const char *source_file = "terminfo";
- const char **namelst = 0;
- char *outdir = (char *) NULL;
- bool check_only = FALSE;
- bool suppress_untranslatable = FALSE;
-
- log_fp = stderr;
-
- _nc_progname = _nc_rootname(argv[0]);
-
- if ((infodump = (strcmp(_nc_progname, PROG_CAPTOINFO) == 0)) != FALSE) {
- outform = F_TERMINFO;
- sortmode = S_TERMINFO;
- }
- if ((capdump = (strcmp(_nc_progname, PROG_INFOTOCAP) == 0)) != FALSE) {
- outform = F_TERMCAP;
- sortmode = S_TERMCAP;
- }
-#if NCURSES_XNAMES
- use_extended_names(FALSE);
-#endif
-
- /*
- * Processing arguments is a little complicated, since someone made a
- * design decision to allow the numeric values for -w, -v options to
- * be optional.
- */
- while ((this_opt = getopt(argc, argv,
- "0123456789CILNR:TVace:fGgo:rstvwx")) != EOF) {
- if (isdigit(this_opt)) {
- switch (last_opt) {
- case 'v':
- v_opt = (v_opt * 10) + (this_opt - '0');
- break;
- case 'w':
- width = (width * 10) + (this_opt - '0');
- break;
- default:
- if (this_opt != '1')
- usage();
- last_opt = this_opt;
- width = 0;
- }
- continue;
- }
- switch (this_opt) {
- case 'C':
- capdump = TRUE;
- outform = F_TERMCAP;
- sortmode = S_TERMCAP;
- break;
- case 'I':
- infodump = TRUE;
- outform = F_TERMINFO;
- sortmode = S_TERMINFO;
- break;
- case 'L':
- infodump = TRUE;
- outform = F_VARIABLE;
- sortmode = S_VARIABLE;
- break;
- case 'N':
- smart_defaults = FALSE;
- break;
- case 'R':
- tversion = optarg;
- break;
- case 'T':
- limited = FALSE;
- break;
- case 'V':
- puts(curses_version());
- return EXIT_SUCCESS;
- case 'c':
- check_only = TRUE;
- break;
- case 'e':
- namelst = make_namelist(optarg);
- break;
- case 'f':
- formatted = TRUE;
- break;
- case 'G':
- numbers = 1;
- break;
- case 'g':
- numbers = -1;
- break;
- case 'o':
- outdir = optarg;
- break;
- case 'r':
- forceresolve = TRUE;
- break;
- case 's':
- showsummary = TRUE;
- break;
- case 'v':
- v_opt = 0;
- break;
- case 'w':
- width = 0;
- break;
-#if NCURSES_XNAMES
- case 't':
- _nc_disable_period = FALSE;
- suppress_untranslatable = TRUE;
- break;
- case 'a':
- _nc_disable_period = TRUE;
- /* FALLTHRU */
- case 'x':
- use_extended_names(TRUE);
- break;
-#endif
- default:
- usage();
- }
- last_opt = this_opt;
- }
-
- debug_level = (v_opt > 0) ? v_opt : (v_opt == 0);
- set_trace_level(debug_level);
-
- if (_nc_tracing) {
- save_check_termtype = _nc_check_termtype;
- _nc_check_termtype = check_termtype;
- }
-#if !HAVE_BIG_CORE
- /*
- * Aaargh! immedhook seriously hoses us!
- *
- * One problem with immedhook is it means we can't do -e. Problem
- * is that we can't guarantee that for each terminal listed, all the
- * terminals it depends on will have been kept in core for reference
- * resolution -- in fact it's certain the primitive types at the end
- * of reference chains *won't* be in core unless they were explicitly
- * in the select list themselves.
- */
- if (namelst && (!infodump && !capdump)) {
- (void) fprintf(stderr,
- "Sorry, -e can't be used without -I or -C\n");
- cleanup();
- return EXIT_FAILURE;
- }
-#endif /* HAVE_BIG_CORE */
-
- if (optind < argc) {
- source_file = argv[optind++];
- if (optind < argc) {
- fprintf(stderr,
- "%s: Too many file names. Usage:\n\t%s %s",
- _nc_progname,
- _nc_progname,
- usage_string);
- return EXIT_FAILURE;
- }
- } else {
- if (infodump == TRUE) {
- /* captoinfo's no-argument case */
- source_file = "/etc/termcap";
- if ((termcap = getenv("TERMCAP")) != 0
- && (namelst = make_namelist(getenv("TERM"))) != 0) {
- if (access(termcap, F_OK) == 0) {
- /* file exists */
- source_file = termcap;
- } else if ((tmp_fp = open_tempfile(strcpy(my_tmpname,
- "/tmp/XXXXXX")))
- != 0) {
- source_file = my_tmpname;
- fprintf(tmp_fp, "%s\n", termcap);
- fclose(tmp_fp);
- tmp_fp = open_input(source_file);
- to_remove = source_file;
- } else {
- failed("tmpnam");
- }
- }
- } else {
- /* tic */
- fprintf(stderr,
- "%s: File name needed. Usage:\n\t%s %s",
- _nc_progname,
- _nc_progname,
- usage_string);
- cleanup();
- return EXIT_FAILURE;
- }
- }
-
- if (tmp_fp == 0)
- tmp_fp = open_input(source_file);
-
- if (infodump)
- dump_init(tversion,
- smart_defaults
- ? outform
- : F_LITERAL,
- sortmode, width, debug_level, formatted);
- else if (capdump)
- dump_init(tversion,
- outform,
- sortmode, width, debug_level, FALSE);
-
- /* parse entries out of the source file */
- _nc_set_source(source_file);
-#if !HAVE_BIG_CORE
- if (!(check_only || infodump || capdump))
- _nc_set_writedir(outdir);
-#endif /* HAVE_BIG_CORE */
- _nc_read_entry_source(tmp_fp, (char *) NULL,
- !smart_defaults, FALSE,
- (check_only || infodump || capdump) ? NULLHOOK : immedhook);
-
- /* do use resolution */
- if (check_only || (!infodump && !capdump) || forceresolve) {
- if (!_nc_resolve_uses(TRUE) && !check_only) {
- cleanup();
- return EXIT_FAILURE;
- }
- }
-
- /* length check */
- if (check_only && (capdump || infodump)) {
- for_entry_list(qp) {
- if (matches(namelst, qp->tterm.term_names)) {
- int len = fmt_entry(&qp->tterm, NULL, FALSE, TRUE, infodump, numbers);
-
- if (len > (infodump ? MAX_TERMINFO_LENGTH : MAX_TERMCAP_LENGTH))
- (void) fprintf(stderr,
- "warning: resolved %s entry is %d bytes long\n",
- _nc_first_name(qp->tterm.term_names),
- len);
- }
- }
- }
-
- /* write or dump all entries */
- if (!check_only) {
- if (!infodump && !capdump) {
- _nc_set_writedir(outdir);
- for_entry_list(qp) {
- if (matches(namelst, qp->tterm.term_names))
- write_it(qp);
- }
- } else {
- /* this is in case infotocap() generates warnings */
- _nc_curr_col = _nc_curr_line = -1;
-
- for_entry_list(qp) {
- if (matches(namelst, qp->tterm.term_names)) {
- int j = qp->cend - qp->cstart;
- int len = 0;
-
- /* this is in case infotocap() generates warnings */
- _nc_set_type(_nc_first_name(qp->tterm.term_names));
-
- (void) fseek(tmp_fp, qp->cstart, SEEK_SET);
- while (j--) {
- if (infodump)
- (void) putchar(fgetc(tmp_fp));
- else
- put_translate(fgetc(tmp_fp));
- }
-
- 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');
- if (debug_level != 0 && !limited)
- printf("# length=%d\n", len);
- }
- }
- if (!namelst && _nc_tail) {
- int c, oldc = '\0';
- bool in_comment = FALSE;
- bool trailing_comment = FALSE;
-
- (void) fseek(tmp_fp, _nc_tail->cend, SEEK_SET);
- while ((c = fgetc(tmp_fp)) != EOF) {
- if (oldc == '\n') {
- if (c == '#') {
- trailing_comment = TRUE;
- in_comment = TRUE;
- } else {
- in_comment = FALSE;
- }
- }
- if (trailing_comment
- && (in_comment || (oldc == '\n' && c == '\n')))
- putchar(c);
- oldc = c;
- }
- }
- }
- }
-
- /* Show the directory into which entries were written, and the total
- * number of entries
- */
- if (showsummary
- && (!(check_only || infodump || capdump))) {
- int total = _nc_tic_written();
- if (total != 0)
- fprintf(log_fp, "%d entries written to %s\n",
- total,
- _nc_tic_dir((char *) 0));
- else
- fprintf(log_fp, "No entries written\n");
- }
- cleanup();
- return (EXIT_SUCCESS);
-}
-
-/*
- * This bit of legerdemain turns all the terminfo variable names into
- * references to locations in the arrays Booleans, Numbers, and Strings ---
- * precisely what's needed (see comp_parse.c).
- */
-
-TERMINAL *cur_term; /* tweak to avoid linking lib_cur_term.c */
-
-#undef CUR
-#define CUR tp->
-
-/*
- * Returns the expected number of parameters for the given capability.
- */
-static int
-expected_params(const char *name)
-{
- /* *INDENT-OFF* */
- static const struct {
- const char *name;
- int count;
- } table[] = {
- { "S0", 1 }, /* 'screen' extension */
- { "birep", 2 },
- { "chr", 1 },
- { "colornm", 1 },
- { "cpi", 1 },
- { "csnm", 1 },
- { "csr", 2 },
- { "cub", 1 },
- { "cud", 1 },
- { "cuf", 1 },
- { "cup", 2 },
- { "cuu", 1 },
- { "cvr", 1 },
- { "cwin", 5 },
- { "dch", 1 },
- { "defc", 3 },
- { "dial", 1 },
- { "dispc", 1 },
- { "dl", 1 },
- { "ech", 1 },
- { "getm", 1 },
- { "hpa", 1 },
- { "ich", 1 },
- { "il", 1 },
- { "indn", 1 },
- { "initc", 4 },
- { "initp", 7 },
- { "lpi", 1 },
- { "mc5p", 1 },
- { "mrcup", 2 },
- { "mvpa", 1 },
- { "pfkey", 2 },
- { "pfloc", 2 },
- { "pfx", 2 },
- { "pfxl", 3 },
- { "pln", 2 },
- { "qdial", 1 },
- { "rcsd", 1 },
- { "rep", 2 },
- { "rin", 1 },
- { "sclk", 3 },
- { "scp", 1 },
- { "scs", 1 },
- { "scsd", 2 },
- { "setab", 1 },
- { "setaf", 1 },
- { "setb", 1 },
- { "setcolor", 1 },
- { "setf", 1 },
- { "sgr", 9 },
- { "sgr1", 6 },
- { "slength", 1 },
- { "slines", 1 },
- { "smgbp", 1 }, /* 2 if smgtp is not given */
- { "smglp", 1 },
- { "smglr", 2 },
- { "smgrp", 1 },
- { "smgtb", 2 },
- { "smgtp", 1 },
- { "tsl", 1 },
- { "u6", -1 },
- { "vpa", 1 },
- { "wind", 4 },
- { "wingo", 1 },
- };
- /* *INDENT-ON* */
-
- unsigned n;
- int result = 0; /* function-keys, etc., use none */
-
- for (n = 0; n < SIZEOF(table); n++) {
- if (!strcmp(name, table[n].name)) {
- result = table[n].count;
- break;
- }
- }
-
- return result;
-}
-
-/*
- * Make a quick sanity check for the parameters which are used in the given
- * strings. If there are no "%p" tokens, then there should be no other "%"
- * markers.
- */
-static void
-check_params(TERMTYPE * tp, const char *name, char *value)
-{
- int expected = expected_params(name);
- int actual = 0;
- int n;
- 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;
-
- while (*s != 0) {
- if (*s == '%') {
- if (*++s == '\0') {
- _nc_warning("expected character after %% in %s", name);
- break;
- } else if (*s == 'p') {
- if (*++s == '\0' || !isdigit((int) *s)) {
- _nc_warning("expected digit after %%p in %s", name);
- return;
- } else {
- n = (*s - '0');
- if (n > actual)
- actual = n;
- params[n] = TRUE;
- }
- }
- }
- s++;
- }
-
- if (params[0]) {
- _nc_warning("%s refers to parameter 0 (%%p0), which is not allowed", name);
- }
- if (value == set_attributes || expected < 0) {
- ;
- } else if (expected != actual) {
- _nc_warning("%s uses %d parameters, expected %d", name,
- actual, expected);
- for (n = 1; n < actual; n++) {
- if (!params[n])
- _nc_warning("%s omits parameter %d", name, n);
- }
- }
-}
-
-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
- * "whatever" is contained in the sgr string, that is close enough for our
- * sanity check.
- */
-static bool
-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) {
- 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;
- } 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++;
- }
- return TRUE;
-}
-
-static void
-check_sgr(TERMTYPE * tp, char *zero, int num, char *cap, const char *name)
-{
- char *test = tparm(set_attributes,
- num == 1,
- num == 2,
- num == 3,
- num == 4,
- num == 5,
- num == 6,
- num == 7,
- num == 8,
- num == 9);
- tparm_errs += _nc_tparm_err;
- if (test != 0) {
- if (PRESENT(cap)) {
- 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 (PRESENT(cap)) {
- _nc_warning("sgr(%d) missing, but %s present", num, name);
- }
-}
-
-#define CHECK_SGR(num,name) check_sgr(tp, zero, num, name, #name)
-
-/* other sanity-checks (things that we don't want in the normal
- * logic that reads a terminfo entry)
- */
-static void
-check_termtype(TERMTYPE * tp)
-{
- bool conflict = FALSE;
- unsigned j, k;
- char fkeys[STRCOUNT];
-
- /*
- * A terminal entry may contain more than one keycode assigned to
- * a given string (e.g., KEY_END and KEY_LL). But curses will only
- * return one (the last one assigned).
- */
- memset(fkeys, 0, sizeof(fkeys));
- for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
- char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
- bool first = TRUE;
- if (!VALID_STRING(a))
- continue;
- for (k = j + 1; _nc_tinfo_fkeys[k].code; k++) {
- char *b = tp->Strings[_nc_tinfo_fkeys[k].offset];
- if (!VALID_STRING(b)
- || fkeys[k])
- continue;
- if (!strcmp(a, b)) {
- fkeys[j] = 1;
- fkeys[k] = 1;
- if (first) {
- if (!conflict) {
- _nc_warning("Conflicting key definitions (using the last)");
- conflict = TRUE;
- }
- fprintf(stderr, "... %s is the same as %s",
- keyname(_nc_tinfo_fkeys[j].code),
- keyname(_nc_tinfo_fkeys[k].code));
- first = FALSE;
- } else {
- fprintf(stderr, ", %s",
- keyname(_nc_tinfo_fkeys[k].code));
- }
- }
- }
- if (!first)
- fprintf(stderr, "\n");
- }
-
- for (j = 0; j < NUM_STRINGS(tp); j++) {
- char *a = tp->Strings[j];
- if (VALID_STRING(a))
- check_params(tp, ExtStrname(tp, j, strnames), a);
- }
-
- /*
- * Quick check for color. We could also check if the ANSI versus
- * non-ANSI strings are misused.
- */
- if ((max_colors > 0) != (max_pairs > 0)
- || ((max_colors > max_pairs) && (initialize_pair == 0)))
- _nc_warning("inconsistent values for max_colors (%d) and max_pairs (%d)",
- max_colors, max_pairs);
-
- PAIRED(set_foreground, set_background);
- PAIRED(set_a_foreground, set_a_background);
-
- /*
- * These may be mismatched because the terminal description relies on
- * restoring the cursor visibility by resetting it.
- */
- ANDMISSING(cursor_invisible, cursor_normal);
- ANDMISSING(cursor_visible, cursor_normal);
-
- if (PRESENT(cursor_visible) && PRESENT(cursor_normal)
- && !strcmp(cursor_visible, cursor_normal))
- _nc_warning("cursor_visible is same as cursor_normal");
-
- /*
- * From XSI & O'Reilly, we gather that sc/rc are required if csr is
- * given, because the cursor position after the scrolling operation is
- * performed is undefined.
- */
- ANDMISSING(change_scroll_region, save_cursor);
- ANDMISSING(change_scroll_region, restore_cursor);
-
- tparm_errs = 0;
- if (PRESENT(set_attributes)) {
- char *zero = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-
- zero = strdup(zero);
- CHECK_SGR(1, enter_standout_mode);
- CHECK_SGR(2, enter_underline_mode);
- CHECK_SGR(3, enter_reverse_mode);
- CHECK_SGR(4, enter_blink_mode);
- CHECK_SGR(5, enter_dim_mode);
- CHECK_SGR(6, enter_bold_mode);
- CHECK_SGR(7, enter_secure_mode);
- CHECK_SGR(8, enter_protected_mode);
- CHECK_SGR(9, enter_alt_charset_mode);
- free(zero);
- if (tparm_errs)
- _nc_warning("stack error in sgr string");
- }
-
- /*
- * Some standard applications (e.g., vi) and some non-curses
- * 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))
- && PRESENT(parm_ich)) {
- _nc_warning("non-curses applications may be confused by ich1 with smir/rmir");
- }
-
- /*
- * Finally, do the non-verbose checks
- */
- if (save_check_termtype != 0)
- save_check_termtype(tp);
-}
diff --git a/ncurses-5.3/progs/toe.c b/ncurses-5.3/progs/toe.c
deleted file mode 100644
index 6eb860e..0000000
--- a/ncurses-5.3/progs/toe.c
+++ /dev/null
@@ -1,308 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * toe.c --- table of entries report generator
- *
- */
-
-#include <progs.priv.h>
-
-#include <sys/stat.h>
-
-#include <dump_entry.h>
-#include <term_entry.h>
-
-MODULE_ID("$Id$")
-
-#define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
-
-const char *_nc_progname;
-
-static int typelist(int eargc, char *eargv[], bool,
- void (*)(const char *, TERMTYPE *));
-static void deschook(const char *, TERMTYPE *);
-
-#if NO_LEAKS
-#undef ExitProgram
-static void
-ExitProgram(int code) GCC_NORETURN;
- static void ExitProgram(int code)
-{
- _nc_free_entries(_nc_head);
- _nc_leaks_dump_entry();
- _nc_free_and_exit(code);
-}
-#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) {
- if (!is_a_directory(path)
- || access(path, R_OK | X_OK) != 0)
- path = 0;
- }
- return path;
-}
-
-int
-main(int argc, char *argv[])
-{
- bool direct_dependencies = FALSE;
- bool invert_dependencies = FALSE;
- bool header = FALSE;
- int i, c;
- int code;
-
- _nc_progname = _nc_rootname(argv[0]);
-
- while ((c = getopt(argc, argv, "huv:UV")) != EOF)
- switch (c) {
- case 'h':
- header = TRUE;
- break;
- case 'u':
- direct_dependencies = TRUE;
- break;
- case 'v':
- set_trace_level(atoi(optarg));
- break;
- case 'U':
- invert_dependencies = TRUE;
- break;
- case 'V':
- puts(curses_version());
- ExitProgram(EXIT_SUCCESS);
- default:
- (void) fprintf(stderr, "usage: toe [-huUV] [-v n] [file...]\n");
- ExitProgram(EXIT_FAILURE);
- }
-
- if (direct_dependencies || invert_dependencies) {
- if (freopen(argv[optind], "r", stdin) == 0) {
- (void) fflush(stdout);
- fprintf(stderr, "%s: can't open %s\n", _nc_progname, argv[optind]);
- ExitProgram(EXIT_FAILURE);
- }
-
- /* parse entries out of the source file */
- _nc_set_source(argv[optind]);
- _nc_read_entry_source(stdin, 0, FALSE, FALSE, NULLHOOK);
- }
-
- /* maybe we want a direct-dependency listing? */
- if (direct_dependencies) {
- ENTRY *qp;
-
- for_entry_list(qp) {
- if (qp->nuses) {
- 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');
- }
- }
-
- ExitProgram(EXIT_SUCCESS);
- }
-
- /* maybe we want a reverse-dependency listing? */
- if (invert_dependencies) {
- ENTRY *qp, *rp;
- int matchcount;
-
- for_entry_list(qp) {
- matchcount = 0;
- for_entry_list(rp) {
- if (rp->nuses == 0)
- continue;
-
- for (i = 0; i < rp->nuses; i++)
- if (_nc_name_match(qp->tterm.term_names,
- rp->uses[i].name, "|")) {
- if (matchcount++ == 0)
- (void) printf("%s:",
- _nc_first_name(qp->tterm.term_names));
- (void) printf(" %s",
- _nc_first_name(rp->tterm.term_names));
- }
- }
- if (matchcount)
- putchar('\n');
- }
-
- ExitProgram(EXIT_SUCCESS);
- }
-
- /*
- * If we get this far, user wants a simple terminal type listing.
- */
- if (optind < argc) {
- code = typelist(argc - optind, argv + optind, header, deschook);
- } else {
- char *home, *eargv[3];
- char personal[PATH_MAX];
- int j;
-
- j = 0;
- if ((eargv[j] = get_directory(getenv("TERMINFO"))) != 0) {
- j++;
- } else {
- if ((home = getenv("HOME")) != 0) {
- (void) sprintf(personal, PRIVATE_INFO, home);
- if ((eargv[j] = get_directory(personal)) != 0)
- j++;
- }
- if ((eargv[j] = get_directory(strcpy(personal, TERMINFO))) != 0)
- j++;
- }
- eargv[j] = 0;
-
- code = typelist(j, eargv, header, deschook);
- }
-
- ExitProgram(code);
-}
-
-static void
-deschook(const char *cn, TERMTYPE * tp)
-/* display a description for the type */
-{
- const char *desc;
-
- if ((desc = strrchr(tp->term_names, '|')) == 0)
- desc = "(No description)";
- else
- ++desc;
-
- (void) printf("%-10s\t%s\n", cn, desc);
-}
-
-static int
-typelist(int eargc, char *eargv[],
- bool verbosity,
- void (*hook) (const char *, TERMTYPE * tp))
-/* apply a function to each entry in given terminfo directories */
-{
- int i;
-
- for (i = 0; i < eargc; i++) {
- DIR *termdir;
- struct dirent *subdir;
-
- if ((termdir = opendir(eargv[i])) == 0) {
- (void) fflush(stdout);
- (void) fprintf(stderr,
- "%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]);
-
- while ((subdir = readdir(termdir)) != 0) {
- size_t len = NAMLEN(subdir);
- char buf[PATH_MAX];
- char name_1[PATH_MAX];
- DIR *entrydir;
- struct dirent *entry;
-
- strncpy(name_1, subdir->d_name, len)[len] = '\0';
- if (isDotname(name_1))
- continue;
-
- (void) sprintf(buf, "%s/%s/", eargv[i], name_1);
- if (chdir(buf) != 0)
- continue;
-
- entrydir = opendir(".");
- while ((entry = readdir(entrydir)) != 0) {
- char name_2[PATH_MAX];
- TERMTYPE lterm;
- char *cn;
- int status;
-
- len = NAMLEN(entry);
- strncpy(name_2, entry->d_name, len)[len] = '\0';
- 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,
- "toe: couldn't open terminfo file %s.\n",
- name_2);
- return (EXIT_FAILURE);
- }
-
- /* only visit things once, by primary name */
- cn = _nc_first_name(lterm.term_names);
- if (!strcmp(cn, name_2)) {
- /* apply the selected hook function */
- (*hook) (cn, &lterm);
- }
- if (lterm.term_names) {
- free(lterm.term_names);
- lterm.term_names = 0;
- }
- if (lterm.str_table) {
- free(lterm.str_table);
- lterm.str_table = 0;
- }
- }
- closedir(entrydir);
- }
- closedir(termdir);
- }
-
- return (EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/progs/tput.c b/ncurses-5.3/progs/tput.c
deleted file mode 100644
index 27fc299..0000000
--- a/ncurses-5.3/progs/tput.c
+++ /dev/null
@@ -1,428 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * tput.c -- shellscript access to terminal capabilities
- *
- * by Eric S. Raymond <esr@snark.thyrsus.com>, portions based on code from
- * Ross Ridge's mytinfo package.
- */
-
-#include <progs.priv.h>
-
-#if !PURE_TERMINFO
-#include <termsort.c>
-#endif
-#include <transform.h>
-
-MODULE_ID("$Id$")
-
-#define PUTS(s) fputs(s, stdout)
-#define PUTCHAR(c) putchar(c)
-#define FLUSH fflush(stdout)
-
-typedef enum {
- Numbers = 0
- ,Num_Str
- ,Num_Str_Str
-} TParams;
-
-static char *prg_name;
-static bool is_init = FALSE;
-static bool is_reset = FALSE;
-
-static void
-quit(int status, const char *fmt,...)
-{
- va_list argp;
-
- va_start(argp, fmt);
- vfprintf(stderr, fmt, argp);
- fprintf(stderr, "\n");
- va_end(argp);
- exit(status);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr, "usage: %s [-V] [-S] [-T term] capname\n", prg_name);
- exit(EXIT_FAILURE);
-}
-
-static void
-check_aliases(const char *name)
-{
- is_init = (strcmp(name, PROG_INIT) == 0);
- is_reset = (strcmp(name, PROG_RESET) == 0);
-}
-
-/*
- * Lookup the type of call we should make to tparm(). This ignores the actual
- * terminfo capability (bad, because it is not extensible), but makes this
- * code portable to platforms where sizeof(int) != sizeof(char *).
- *
- * FIXME: If we want extensibility, analyze the capability string as we do
- * in tparm() to decide how to parse the varargs list.
- */
-static TParams
-tparm_type(const char *name)
-{
-#define TD(code, longname, ti, tc) {code,longname},{code,ti},{code,tc}
- TParams result = Numbers;
- /* *INDENT-OFF* */
- static const struct {
- TParams code;
- const char *name;
- } table[] = {
- TD(Num_Str, "pkey_key", "pfkey", "pk"),
- TD(Num_Str, "pkey_local", "pfloc", "pl"),
- TD(Num_Str, "pkey_xmit", "pfx", "px"),
- TD(Num_Str, "plab_norm", "pln", "pn"),
- TD(Num_Str_Str, "pkey_plab", "pfxl", "xl"),
- };
- /* *INDENT-ON* */
-
- unsigned n;
- for (n = 0; n < SIZEOF(table); n++) {
- if (!strcmp(name, table[n].name)) {
- result = table[n].code;
- break;
- }
- }
- return result;
-}
-
-static int
-exit_code(int token, int value)
-{
- 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[])
-{
- NCURSES_CONST char *name;
- char *s;
- int i, j, c;
- int status;
- FILE *f;
- int token = UNDEF;
-
- if ((name = argv[0]) == 0)
- name = "";
- check_aliases(name);
- if (is_reset || is_init) {
- if (init_prog != 0) {
- system(init_prog);
- }
- FLUSH;
-
- if (is_reset && reset_1string != 0) {
- PUTS(reset_1string);
- } else if (init_1string != 0) {
- PUTS(init_1string);
- }
- FLUSH;
-
- if (is_reset && reset_2string != 0) {
- PUTS(reset_2string);
- } else if (init_2string != 0) {
- PUTS(init_2string);
- }
- FLUSH;
-
-#ifdef set_lr_margin
- if (set_lr_margin != 0) {
- PUTS(tparm(set_lr_margin, 0, columns - 1));
- } 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));
- } else
-#endif
- if (clear_margins != 0
- && set_left_margin != 0
- && set_right_margin != 0) {
- PUTS(clear_margins);
- if (carriage_return != 0) {
- PUTS(carriage_return);
- } else {
- PUTCHAR('\r');
- }
- PUTS(set_left_margin);
- if (parm_right_cursor) {
- PUTS(tparm(parm_right_cursor, columns - 1));
- } else {
- for (i = 0; i < columns - 1; i++) {
- PUTCHAR(' ');
- }
- }
- PUTS(set_right_margin);
- if (carriage_return != 0) {
- PUTS(carriage_return);
- } else {
- PUTCHAR('\r');
- }
- }
- FLUSH;
-
- if (init_tabs != 8) {
- if (clear_all_tabs != 0 && set_tab != 0) {
- for (i = 0; i < columns - 1; i += 8) {
- if (parm_right_cursor) {
- PUTS(tparm(parm_right_cursor, 8));
- } else {
- for (j = 0; j < 8; j++)
- PUTCHAR(' ');
- }
- PUTS(set_tab);
- }
- FLUSH;
- }
- }
-
- if (is_reset && reset_file != 0) {
- f = fopen(reset_file, "r");
- if (f == 0) {
- quit(4 + errno, "Can't open reset_file: '%s'", reset_file);
- }
- while ((c = fgetc(f)) != EOF) {
- PUTCHAR(c);
- }
- fclose(f);
- } else if (init_file != 0) {
- f = fopen(init_file, "r");
- if (f == 0) {
- quit(4 + errno, "Can't open init_file: '%s'", init_file);
- }
- while ((c = fgetc(f)) != EOF) {
- PUTCHAR(c);
- }
- fclose(f);
- }
- FLUSH;
-
- if (is_reset && reset_3string != 0) {
- PUTS(reset_3string);
- } else if (init_2string != 0) {
- PUTS(init_2string);
- }
- FLUSH;
- return 0;
- }
-
- if (strcmp(name, "longname") == 0) {
- PUTS(longname());
- return 0;
- }
-#if !PURE_TERMINFO
- {
- const struct name_table_entry *np;
-
- if ((np = _nc_find_entry(name, _nc_get_hash_table(1))) != 0)
- switch (np->nte_type) {
- case BOOLEAN:
- if (bool_from_termcap[np->nte_index])
- name = boolnames[np->nte_index];
- break;
-
- case NUMBER:
- if (num_from_termcap[np->nte_index])
- name = numnames[np->nte_index];
- break;
-
- case STRING:
- if (str_from_termcap[np->nte_index])
- name = strnames[np->nte_index];
- break;
- }
- }
-#endif
-
- if ((status = tigetflag(name)) != -1) {
- return exit_code(BOOLEAN, status);
- } else if ((status = tigetnum(name)) != CANCELLED_NUMERIC) {
- (void) printf("%d\n", status);
- 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) {
- token = STRING;
- if (argc > 1) {
- int k;
- int numbers[10];
- char *strings[10];
-
- /* Nasty hack time. The tparm function needs to see numeric
- * parameters as numbers, not as pointers to their string
- * representations
- */
-
- for (k = 1; k < argc; k++) {
- char *tmp = 0;
- strings[k] = argv[k];
- numbers[k] = strtol(argv[k], &tmp, 0);
- if (tmp == 0 || *tmp != 0)
- numbers[k] = 0;
- }
- for (k = argc; k <= 9; k++) {
- numbers[k] = 0;
- strings[k] = 0;
- }
-
- switch (tparm_type(name)) {
- case Num_Str:
- s = tparm(s, numbers[1], strings[2]);
- break;
- case Num_Str_Str:
- s = tparm(s, numbers[1], strings[2], strings[3]);
- break;
- default:
- s = tparm(s,
- numbers[1], numbers[2], numbers[3],
- numbers[4], numbers[5], numbers[6],
- numbers[7], numbers[8], numbers[9]);
- break;
- }
- }
-
- /* use putp() in order to perform padding */
- putp(s);
- return exit_code(STRING, 0);
- }
- return exit_code(STRING, 1);
-}
-
-int
-main(int argc, char **argv)
-{
- char *term;
- int errret;
- bool cmdline = TRUE;
- int c;
- char buf[BUFSIZ];
- int result = 0;
- int err;
-
- check_aliases(prg_name = _nc_rootname(argv[0]));
-
- term = getenv("TERM");
-
- while ((c = getopt(argc, argv, "ST:V")) != EOF) {
- switch (c) {
- case 'S':
- cmdline = FALSE;
- break;
- case 'T':
- use_env(FALSE);
- term = optarg;
- break;
- case 'V':
- puts(curses_version());
- return EXIT_SUCCESS;
- default:
- usage();
- /* NOTREACHED */
- }
- }
-
- /*
- * Modify the argument list to omit the options we processed.
- */
- if (is_reset || is_init) {
- if (optind-- < argc) {
- argc -= optind;
- argv += optind;
- }
- argv[0] = prg_name;
- } else {
- argc -= optind;
- argv += optind;
- }
-
- if (term == 0 || *term == '\0')
- quit(2, "No value for $TERM and no -T specified");
-
- if (setupterm(term, STDOUT_FILENO, &errret) != OK && errret <= 0)
- quit(3, "unknown terminal \"%s\"", term);
-
- if (cmdline) {
- if ((argc <= 0) && !is_reset && !is_init)
- usage();
- return tput(argc, argv);
- }
-
- while (fgets(buf, sizeof(buf), stdin) != 0) {
- char *argvec[16]; /* command, 9 parms, null, & slop */
- int argnum = 0;
- char *cp;
-
- /* crack the argument list into a dope vector */
- for (cp = buf; *cp; cp++) {
- if (isspace(UChar(*cp))) {
- *cp = '\0';
- } else if (cp == buf || cp[-1] == 0) {
- argvec[argnum++] = cp;
- if (argnum >= (int) SIZEOF(argvec) - 1)
- break;
- }
- }
- argvec[argnum] = 0;
-
- if (argnum != 0
- && (err = tput(argnum, argvec)) != 0) {
- if (result == 0)
- result = 4; /* will return value >4 */
- ++result;
- }
- }
-
- return result;
-}
diff --git a/ncurses-5.3/progs/tset.c b/ncurses-5.3/progs/tset.c
deleted file mode 100644
index 3e082e2..0000000
--- a/ncurses-5.3/progs/tset.c
+++ /dev/null
@@ -1,1211 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
- ****************************************************************************/
-
-/*
- * tset.c - terminal initialization utility
- *
- * This code was mostly swiped from 4.4BSD tset, with some obsolescent
- * cruft removed and substantial portions rewritten. A Regents of the
- * University of California copyright applies to some portions of the
- * code, and is reproduced below:
- */
-/*-
- * Copyright (c) 1980, 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#define __INTERNAL_CAPS_VISIBLE /* we need to see has_hardware_tabs */
-#include <progs.priv.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <termcap.h>
-#include <fcntl.h>
-
-#if HAVE_GETTTYNAM && HAVE_TTYENT_H
-#include <ttyent.h>
-#endif
-#ifdef NeXT
-char *ttyname(int fd);
-#endif
-
-/* this is just to stifle a missing-prototype warning */
-#ifdef linux
-# include <sys/ioctl.h>
-#endif
-
-#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>
-#endif
-
-#include <curses.h> /* for bool typedef */
-#include <dump_entry.h>
-#include <transform.h>
-
-MODULE_ID("$Id$")
-
-extern char **environ;
-
-#undef CTRL
-#define CTRL(x) ((x) & 0x1f)
-
-const char *_nc_progname = "tset";
-
-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 */
-
-#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
-
-static int
-CaselessCmp(const char *a, const char *b)
-{ /* strcasecmp isn't portable */
- while (*a && *b) {
- int cmp = LOWERCASE(*a) - LOWERCASE(*b);
- if (cmp != 0)
- break;
- a++, 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,...)
-{
- va_list ap;
- va_start(ap, fmt);
- (void) fprintf(stderr, "tset: ");
- (void) vfprintf(stderr, fmt, ap);
- va_end(ap);
- exit_error();
- /* NOTREACHED */
-}
-
-static void
-failed(const char *msg)
-{
- char temp[BUFSIZ];
- perror(strncat(strcpy(temp, "tset: "), msg, sizeof(temp) - 10));
- exit_error();
- /* NOTREACHED */
-}
-
-static void
-cat(char *file)
-{
- FILE *fp;
- size_t nr;
- char buf[BUFSIZ];
-
- if ((fp = fopen(file, "r")) == 0)
- failed(file);
-
- 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
-outc(int c)
-{
- return putc(c, stderr);
-}
-
-/* Prompt the user for a terminal type. */
-static const char *
-askuser(const char *dflt)
-{
- static char answer[256];
- char *p;
-
- /* We can get recalled; if so, don't continue uselessly. */
- clearerr(stdin);
- if (feof(stdin) || ferror(stdin)) {
- (void) fprintf(stderr, "\n");
- exit_error();
- /* NOTREACHED */
- }
- for (;;) {
- if (dflt)
- (void) fprintf(stderr, "Terminal type? [%s] ", dflt);
- else
- (void) fprintf(stderr, "Terminal type? ");
- (void) fflush(stderr);
-
- if (fgets(answer, sizeof(answer), stdin) == 0) {
- if (dflt == 0) {
- exit_error();
- /* NOTREACHED */
- }
- return (dflt);
- }
-
- if ((p = strchr(answer, '\n')) != 0)
- *p = '\0';
- if (answer[0])
- return (answer);
- if (dflt != 0)
- return (dflt);
- }
-}
-
-/**************************************************************************
- *
- * Mapping logic begins here
- *
- **************************************************************************/
-
-/* Baud rate conditionals for mapping. */
-#define GT 0x01
-#define EQ 0x02
-#define LT 0x04
-#define NOT 0x08
-#define GE (GT | EQ)
-#define LE (LT | EQ)
-
-typedef struct map {
- struct map *next; /* Linked list of maps. */
- const char *porttype; /* Port type, or "" for any. */
- const char *type; /* Terminal type to select. */
- int conditional; /* Baud rate conditionals bitmask. */
- int speed; /* Baud rate to compare against. */
-} MAP;
-
-static MAP *cur, *maplist;
-
-typedef struct speeds {
- const char *string;
- int speed;
-} SPEEDS;
-
-static const SPEEDS speeds[] =
-{
- {"0", B0},
- {"50", B50},
- {"75", B75},
- {"110", B110},
- {"134", B134},
- {"134.5", B134},
- {"150", B150},
- {"200", B200},
- {"300", B300},
- {"600", B600},
- {"1200", B1200},
- {"1800", B1800},
- {"2400", B2400},
- {"4800", B4800},
- {"9600", B9600},
- /* sgttyb may define up to this point */
-#ifdef B19200
- {"19200", B19200},
-#endif
-#ifdef B38400
- {"38400", B38400},
-#endif
-#ifdef B19200
- {"19200", B19200},
-#endif
-#ifdef B38400
- {"38400", B38400},
-#endif
-#ifdef B19200
- {"19200", B19200},
-#else
-#ifdef EXTA
- {"19200", EXTA},
-#endif
-#endif
-#ifdef B38400
- {"38400", B38400},
-#else
-#ifdef EXTB
- {"38400", EXTB},
-#endif
-#endif
-#ifdef B57600
- {"57600", B57600},
-#endif
-#ifdef B115200
- {"115200", B115200},
-#endif
-#ifdef B230400
- {"230400", B230400},
-#endif
-#ifdef B460800
- {"460800", B460800},
-#endif
- {(char *) 0, 0}
-};
-
-static int
-tbaudrate(char *rate)
-{
- const SPEEDS *sp;
- int found = FALSE;
-
- /* The baudrate number can be preceded by a 'B', which is ignored. */
- if (*rate == 'B')
- ++rate;
-
- for (sp = speeds; sp->string; ++sp) {
- if (!CaselessCmp(rate, sp->string)) {
- found = TRUE;
- break;
- }
- }
- if (!found)
- err("unknown baud rate %s", rate);
- return (sp->speed);
-}
-
-/*
- * Syntax for -m:
- * [port-type][test baudrate]:terminal-type
- * The baud rate tests are: >, <, @, =, !
- */
-static void
-add_mapping(const char *port, char *arg)
-{
- MAP *mapp;
- char *copy, *p;
- const char *termp;
- char *base = 0;
-
- copy = strdup(arg);
- mapp = malloc(sizeof(MAP));
- if (copy == 0 || mapp == 0)
- failed("malloc");
- mapp->next = 0;
- if (maplist == 0)
- cur = maplist = mapp;
- else {
- cur->next = mapp;
- cur = mapp;
- }
-
- mapp->porttype = arg;
- mapp->conditional = 0;
-
- arg = strpbrk(arg, "><@=!:");
-
- if (arg == 0) { /* [?]term */
- mapp->type = mapp->porttype;
- mapp->porttype = 0;
- goto done;
- }
-
- if (arg == mapp->porttype) /* [><@=! baud]:term */
- termp = mapp->porttype = 0;
- else
- termp = base = arg;
-
- for (;; ++arg) { /* Optional conditionals. */
- switch (*arg) {
- case '<':
- if (mapp->conditional & GT)
- goto badmopt;
- mapp->conditional |= LT;
- break;
- case '>':
- if (mapp->conditional & LT)
- goto badmopt;
- mapp->conditional |= GT;
- break;
- case '@':
- case '=': /* Not documented. */
- mapp->conditional |= EQ;
- break;
- case '!':
- mapp->conditional |= NOT;
- break;
- default:
- goto next;
- }
- }
-
- next:
- if (*arg == ':') {
- if (mapp->conditional)
- goto badmopt;
- ++arg;
- } else { /* Optional baudrate. */
- arg = strchr(p = arg, ':');
- if (arg == 0)
- goto badmopt;
- *arg++ = '\0';
- mapp->speed = tbaudrate(p);
- }
-
- if (arg == (char *) 0) /* Non-optional type. */
- goto badmopt;
-
- mapp->type = arg;
-
- /* Terminate porttype, if specified. */
- if (termp != 0)
- *base = '\0';
-
- /* If a NOT conditional, reverse the test. */
- if (mapp->conditional & NOT)
- mapp->conditional = ~mapp->conditional & (EQ | GT | LT);
-
- /* If user specified a port with an option flag, set it. */
- done:if (port) {
- if (mapp->porttype)
- badmopt:err("illegal -m option format: %s", copy);
- mapp->porttype = port;
- }
-#ifdef MAPDEBUG
- (void) printf("port: %s\n", mapp->porttype ? mapp->porttype : "ANY");
- (void) printf("type: %s\n", mapp->type);
- (void) printf("conditional: ");
- p = "";
- if (mapp->conditional & GT) {
- (void) printf("GT");
- p = "/";
- }
- if (mapp->conditional & EQ) {
- (void) printf("%sEQ", p);
- p = "/";
- }
- if (mapp->conditional & LT)
- (void) printf("%sLT", p);
- (void) printf("\nspeed: %d\n", mapp->speed);
-#endif
-}
-
-/*
- * Return the type of terminal to use for a port of type 'type', as specified
- * by the first applicable mapping in 'map'. If no mappings apply, return
- * 'type'.
- */
-static const char *
-mapped(const char *type)
-{
- MAP *mapp;
- int match;
-
- for (mapp = maplist; mapp; mapp = mapp->next)
- if (mapp->porttype == 0 || !strcmp(mapp->porttype, type)) {
- switch (mapp->conditional) {
- case 0: /* No test specified. */
- match = TRUE;
- break;
- case EQ:
- match = (ospeed == mapp->speed);
- break;
- case GE:
- match = (ospeed >= mapp->speed);
- break;
- case GT:
- match = (ospeed > mapp->speed);
- break;
- case LE:
- match = (ospeed <= mapp->speed);
- break;
- case LT:
- match = (ospeed < mapp->speed);
- break;
- default:
- match = FALSE;
- }
- if (match)
- return (mapp->type);
- }
- /* No match found; return given type. */
- return (type);
-}
-
-/**************************************************************************
- *
- * Entry fetching
- *
- **************************************************************************/
-
-/*
- * Figure out what kind of terminal we're dealing with, and then read in
- * its termcap entry.
- */
-static const char *
-get_termcap_entry(char *userarg)
-{
- int errret;
- char *p;
- const char *ttype;
-#if HAVE_GETTTYNAM
- struct ttyent *t;
-#else
- FILE *fp;
-#endif
- char *ttypath;
-
- if (userarg) {
- ttype = userarg;
- goto found;
- }
-
- /* Try the environment. */
- if ((ttype = getenv("TERM")) != 0)
- goto map;
-
- if ((ttypath = ttyname(STDERR_FILENO)) != 0) {
- p = _nc_basename(ttypath);
-#if HAVE_GETTTYNAM
- /*
- * We have the 4.3BSD library call getttynam(3); that means
- * there's an /etc/ttys to look up device-to-type mappings in.
- * Try ttyname(3); check for dialup or other mapping.
- */
- if ((t = getttynam(p))) {
- ttype = t->ty_type;
- goto map;
- }
-#else
- if ((fp = fopen("/etc/ttytype", "r")) != 0
- || (fp = fopen("/etc/ttys", "r")) != 0) {
- char buffer[BUFSIZ];
- char *s, *t, *d;
-
- while (fgets(buffer, sizeof(buffer) - 1, fp) != 0) {
- for (s = buffer, t = d = 0; *s; s++) {
- if (isspace(UChar(*s)))
- *s = '\0';
- else if (t == 0)
- t = s;
- else if (d == 0 && s != buffer && s[-1] == '\0')
- d = s;
- }
- if (t != 0 && d != 0 && !strcmp(d, p)) {
- ttype = strdup(t);
- fclose(fp);
- goto map;
- }
- }
- fclose(fp);
- }
-#endif /* HAVE_GETTTYNAM */
- }
-
- /* If still undefined, use "unknown". */
- ttype = "unknown";
-
- map:ttype = mapped(ttype);
-
- /*
- * If not a path, remove TERMCAP from the environment so we get a
- * real entry from /etc/termcap. This prevents us from being fooled
- * by out of date stuff in the environment.
- */
- found:if ((p = getenv("TERMCAP")) != 0 && *p != '/') {
- /* 'unsetenv("TERMCAP")' is not portable.
- * The 'environ' array is better.
- */
- int n;
- for (n = 0; environ[n] != 0; n++) {
- if (!strncmp("TERMCAP=", environ[n], 8)) {
- while ((environ[n] = environ[n + 1]) != 0) {
- n++;
- }
- break;
- }
- }
- }
-
- /*
- * ttype now contains a pointer to the type of the terminal.
- * If the first character is '?', ask the user.
- */
- if (ttype[0] == '?') {
- if (ttype[1] != '\0')
- ttype = askuser(ttype + 1);
- else
- ttype = askuser(0);
- }
- /* Find the terminfo entry. If it doesn't exist, ask the user. */
- while (setupterm((NCURSES_CONST char *) ttype, STDOUT_FILENO, &errret)
- != OK) {
- if (errret == 0) {
- (void) fprintf(stderr, "tset: unknown terminal type %s\n",
- ttype);
- ttype = 0;
- } else {
- (void) fprintf(stderr,
- "tset: can't initialize terminal type %s (error %d)\n",
- ttype, errret);
- ttype = 0;
- }
- ttype = askuser(ttype);
- }
-#if BROKEN_LINKER
- tgetflag("am"); /* force lib_termcap.o to be linked for 'ospeed' */
-#endif
- return (ttype);
-}
-
-/**************************************************************************
- *
- * Mode-setting logic
- *
- **************************************************************************/
-
-/* some BSD systems have these built in, some systems are missing
- * one or more definitions. The safest solution is to override.
- */
-#undef CEOF
-#undef CERASE
-#undef CINTR
-#undef CKILL
-#undef CLNEXT
-#undef CRPRNT
-#undef CQUIT
-#undef CSTART
-#undef CSTOP
-#undef CSUSP
-
-/* control-character defaults */
-#define CEOF CTRL('D')
-#define CERASE CTRL('H')
-#define CINTR 127 /* ^? */
-#define CKILL CTRL('U')
-#define CLNEXT CTRL('v')
-#define CRPRNT CTRL('r')
-#define CQUIT CTRL('\\')
-#define CSTART CTRL('Q')
-#define CSTOP CTRL('S')
-#define CSUSP CTRL('Z')
-
-#define CHK(val, dft) ((int)val <= 0 ? dft : val)
-
-static bool set_tabs(void);
-
-/*
- * Reset the terminal mode bits to a sensible state. Very useful after
- * a child program dies in raw mode.
- */
-static void
-reset_mode(void)
-{
-#ifdef TERMIOS
- tcgetattr(STDERR_FILENO, &mode);
-#else
- stty(STDERR_FILENO, &mode);
-#endif
-
-#ifdef TERMIOS
-#if defined(VDISCARD) && defined(CDISCARD)
- mode.c_cc[VDISCARD] = CHK(mode.c_cc[VDISCARD], CDISCARD);
-#endif
- mode.c_cc[VEOF] = CHK(mode.c_cc[VEOF], CEOF);
- mode.c_cc[VERASE] = CHK(mode.c_cc[VERASE], CERASE);
-#if defined(VFLUSH) && defined(CFLUSH)
- mode.c_cc[VFLUSH] = CHK(mode.c_cc[VFLUSH], CFLUSH);
-#endif
- mode.c_cc[VINTR] = CHK(mode.c_cc[VINTR], CINTR);
- mode.c_cc[VKILL] = CHK(mode.c_cc[VKILL], CKILL);
-#if defined(VLNEXT) && defined(CLNEXT)
- mode.c_cc[VLNEXT] = CHK(mode.c_cc[VLNEXT], CLNEXT);
-#endif
- mode.c_cc[VQUIT] = CHK(mode.c_cc[VQUIT], CQUIT);
-#if defined(VREPRINT) && defined(CRPRNT)
- mode.c_cc[VREPRINT] = CHK(mode.c_cc[VREPRINT], CRPRNT);
-#endif
-#if defined(VSTART) && defined(CSTART)
- mode.c_cc[VSTART] = CHK(mode.c_cc[VSTART], CSTART);
-#endif
-#if defined(VSTOP) && defined(CSTOP)
- mode.c_cc[VSTOP] = CHK(mode.c_cc[VSTOP], CSTOP);
-#endif
-#if defined(VSUSP) && defined(CSUSP)
- mode.c_cc[VSUSP] = CHK(mode.c_cc[VSUSP], CSUSP);
-#endif
-#if defined(VWERASE) && defined(CWERASE)
- mode.c_cc[VWERASE] = CHK(mode.c_cc[VWERASE], CWERASE);
-#endif
-
- mode.c_iflag &= ~(IGNBRK | PARMRK | INPCK | ISTRIP | INLCR | IGNCR
-#ifdef IUCLC
- | IUCLC
-#endif
-#ifdef IXANY
- | IXANY
-#endif
- | IXOFF);
-
- mode.c_iflag |= (BRKINT | IGNPAR | ICRNL | IXON
-#ifdef IMAXBEL
- | IMAXBEL
-#endif
- );
-
- mode.c_oflag &= ~(0
-#ifdef OLCUC
- | OLCUC
-#endif
-#ifdef OCRNL
- | OCRNL
-#endif
-#ifdef ONOCR
- | ONOCR
-#endif
-#ifdef ONLRET
- | ONLRET
-#endif
-#ifdef OFILL
- | OFILL
-#endif
-#ifdef OFDEL
- | OFDEL
-#endif
-#ifdef NLDLY
- | NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY
-#endif
- );
-
- mode.c_oflag |= (OPOST
-#ifdef ONLCR
- | ONLCR
-#endif
- );
-
- mode.c_cflag &= ~(CSIZE | CSTOPB | PARENB | PARODD | CLOCAL);
- mode.c_cflag |= (CS8 | CREAD);
- mode.c_lflag &= ~(ECHONL | NOFLSH
-#ifdef TOSTOP
- | TOSTOP
-#endif
-#ifdef ECHOPTR
- | ECHOPRT
-#endif
-#ifdef XCASE
- | XCASE
-#endif
- );
-
- mode.c_lflag |= (ISIG | ICANON | ECHO | ECHOE | ECHOK
-#ifdef ECHOCTL
- | ECHOCTL
-#endif
-#ifdef ECHOKE
- | ECHOKE
-#endif
- );
-#endif
-
- SET_TTY(STDERR_FILENO, &mode);
-}
-
-/*
- * Returns a "good" value for the erase character. This is loosely based on
- * the BSD4.4 logic.
- */
-#ifdef TERMIOS
-static int
-default_erase(void)
-{
- int result;
-
- if (over_strike
- && key_backspace != 0
- && strlen(key_backspace) == 1)
- result = key_backspace[0];
- else
- result = CERASE;
-
- return result;
-}
-#endif
-
-/*
- * Update the values of the erase, interrupt, and kill characters in 'mode'.
- *
- * SVr4 tset (e.g., Solaris 2.5) only modifies the intr, quit or erase
- * characters if they're unset, or if we specify them as options. This differs
- * from BSD 4.4 tset, which always sets erase.
- */
-static void
-set_control_chars(void)
-{
-#ifdef TERMIOS
- if (mode.c_cc[VERASE] == 0 || terasechar >= 0)
- mode.c_cc[VERASE] = terasechar >= 0 ? terasechar : default_erase();
-
- if (mode.c_cc[VINTR] == 0 || intrchar >= 0)
- mode.c_cc[VINTR] = intrchar >= 0 ? intrchar : CINTR;
-
- if (mode.c_cc[VKILL] == 0 || tkillchar >= 0)
- mode.c_cc[VKILL] = tkillchar >= 0 ? tkillchar : CKILL;
-#endif
-}
-
-/*
- * Set up various conversions in 'mode', including parity, tabs, returns,
- * echo, and case, according to the termcap entry. If the program we're
- * running was named with a leading upper-case character, map external
- * uppercase to internal lowercase.
- */
-static void
-set_conversions(void)
-{
-#ifdef __OBSOLETE__
- /*
- * Conversion logic for some *really* ancient terminal glitches,
- * not supported in terminfo. Left here for succeeding generations
- * to marvel at.
- */
- if (tgetflag("UC")) {
-#ifdef IUCLC
- mode.c_iflag |= IUCLC;
- mode.c_oflag |= OLCUC;
-#endif
- } else if (tgetflag("LC")) {
-#ifdef IUCLC
- mode.c_iflag &= ~IUCLC;
- mode.c_oflag &= ~OLCUC;
-#endif
- }
- mode.c_iflag &= ~(PARMRK | INPCK);
- mode.c_lflag |= ICANON;
- if (tgetflag("EP")) {
- mode.c_cflag |= PARENB;
- mode.c_cflag &= ~PARODD;
- }
- if (tgetflag("OP")) {
- mode.c_cflag |= PARENB;
- mode.c_cflag |= PARODD;
- }
-#endif /* __OBSOLETE__ */
-
-#ifdef TERMIOS
-#ifdef ONLCR
- mode.c_oflag |= ONLCR;
-#endif
- mode.c_iflag |= ICRNL;
- mode.c_lflag |= ECHO;
-#ifdef OXTABS
- mode.c_oflag |= OXTABS;
-#endif /* OXTABS */
-
- /* test used to be tgetflag("NL") */
- if (newline != (char *) 0 && newline[0] == '\n' && !newline[1]) {
- /* Newline, not linefeed. */
-#ifdef ONLCR
- mode.c_oflag &= ~ONLCR;
-#endif
- mode.c_iflag &= ~ICRNL;
- }
-#ifdef __OBSOLETE__
- if (tgetflag("HD")) /* Half duplex. */
- mode.c_lflag &= ~ECHO;
-#endif /* __OBSOLETE__ */
-#ifdef OXTABS
- /* test used to be tgetflag("pt") */
- if (has_hardware_tabs) /* Print tabs. */
- mode.c_oflag &= ~OXTABS;
-#endif /* OXTABS */
- mode.c_lflag |= (ECHOE | ECHOK);
-#endif
-}
-
-/* Output startup string. */
-static void
-set_init(void)
-{
- char *p;
- bool settle;
-
-#ifdef __OBSOLETE__
- if (pad_char != (char *) 0) /* Get/set pad character. */
- PC = pad_char[0];
-#endif /* OBSOLETE */
-
-#ifdef TAB3
- if (oldmode.c_oflag & (TAB3 | ONLCR | OCRNL | ONLRET)) {
- oldmode.c_oflag &= (TAB3 | ONLCR | OCRNL | ONLRET);
- SET_TTY(STDERR_FILENO, &oldmode);
- }
-#endif
- settle = set_tabs();
-
- if (isreset) {
- if ((p = reset_1string) != 0) {
- tputs(p, 0, outc);
- settle = TRUE;
- }
- if ((p = reset_2string) != 0) {
- tputs(p, 0, outc);
- settle = TRUE;
- }
- /* What about rf, rs3, as per terminfo man page? */
- /* also might be nice to send rmacs, rmul, rmm */
- if ((p = reset_file) != 0
- || (p = init_file) != 0) {
- cat(p);
- settle = TRUE;
- }
- }
-
- if (settle) {
- (void) putc('\r', stderr);
- (void) fflush(stderr);
- (void) napms(1000); /* Settle the terminal. */
- }
-}
-
-/*
- * Set the hardware tabs on the terminal, using the ct (clear all tabs),
- * st (set one tab) and ch (horizontal cursor addressing) capabilities.
- * This is done before if and is, so they can patch in case we blow this.
- * Return TRUE if we set any tab stops, FALSE if not.
- */
-static bool
-set_tabs()
-{
- if (set_tab && clear_all_tabs) {
- int c;
-
- (void) putc('\r', stderr); /* Force to left margin. */
- tputs(clear_all_tabs, 0, outc);
-
- for (c = 8; c < tcolumns; c += 8) {
- /* Get to the right column. In BSD tset, this
- * used to try a bunch of half-clever things
- * with cup and hpa, for an average saving of
- * somewhat less than two character times per
- * tab stop, less that .01 sec at 2400cps. We
- * lost all this cruft because it seemed to be
- * introducing some odd bugs.
- * ----------12345678----------- */
- (void) fputs(" ", stderr);
- tputs(set_tab, 0, outc);
- }
- putc('\r', stderr);
- return (TRUE);
- }
- return (FALSE);
-}
-
-/**************************************************************************
- *
- * Main sequence
- *
- **************************************************************************/
-
-/*
- * Tell the user if a control key has been changed from the default value.
- */
-#ifdef TERMIOS
-static void
-report(const char *name, int which, unsigned def)
-{
- unsigned older, newer;
- char *p;
-
- newer = mode.c_cc[which];
- older = oldmode.c_cc[which];
-
- if (older == newer && older == def)
- return;
-
- (void) fprintf(stderr, "%s %s ", name, older == newer ? "is" : "set to");
-
- /*
- * Check 'delete' before 'backspace', since the key_backspace value
- * is ambiguous.
- */
- if (newer == 0177)
- (void) fprintf(stderr, "delete.\n");
- else if ((p = key_backspace) != 0
- && newer == (unsigned char) p[0]
- && p[1] == '\0')
- (void) fprintf(stderr, "backspace.\n");
- else if (newer < 040) {
- newer ^= 0100;
- (void) fprintf(stderr, "control-%c (^%c).\n", newer, newer);
- } else
- (void) fprintf(stderr, "%c.\n", newer);
-}
-#endif
-
-/*
- * Convert the obsolete argument forms into something that getopt can handle.
- * This means that -e, -i and -k get default arguments supplied for them.
- */
-static void
-obsolete(char **argv)
-{
- for (; *argv; ++argv) {
- char *parm = argv[0];
-
- if (parm[0] == '-' && parm[1] == '\0') {
- argv[0] = strdup("-q");
- continue;
- }
-
- if ((parm[0] != '-')
- || (argv[1] && argv[1][0] != '-')
- || (parm[1] != 'e' && parm[1] != 'i' && parm[1] != 'k')
- || (parm[2] != '\0'))
- continue;
- switch (argv[0][1]) {
- case 'e':
- argv[0] = strdup("-e^H");
- break;
- case 'i':
- argv[0] = strdup("-i^C");
- break;
- case 'k':
- argv[0] = strdup("-k^U");
- break;
- }
- }
-}
-
-static void
-usage(const char *pname)
-{
- (void) fprintf(stderr,
- "usage: %s [-IQVrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]", pname);
- exit_error();
- /* NOTREACHED */
-}
-
-static char
-arg_to_char(void)
-{
- return (optarg[0] == '^' && optarg[1] != '\0')
- ? ((optarg[1] == '?') ? '\177' : CTRL(optarg[1]))
- : optarg[0];
-}
-
-int
-main(int argc, char **argv)
-{
-#if defined(TIOCGWINSZ) && defined(TIOCSWINSZ)
- struct winsize win;
-#endif
- int ch, noinit, noset, quiet, Sflag, sflag, showterm;
- const char *p;
- const char *ttype;
-
- if (GET_TTY(STDERR_FILENO, &mode) < 0)
- failed("standard error");
- can_restore = TRUE;
- original = oldmode = mode;
-#ifdef TERMIOS
- ospeed = cfgetospeed(&mode);
-#else
- ospeed = mode.sg_ospeed;
-#endif
-
- p = _nc_rootname(*argv);
- if (!strcmp(p, PROG_RESET)) {
- isreset = TRUE;
- reset_mode();
- }
-
- obsolete(argv);
- noinit = noset = quiet = Sflag = sflag = showterm = 0;
- while ((ch = getopt(argc, argv, "a:d:e:Ii:k:m:np:qQSrsV")) != EOF) {
- switch (ch) {
- case 'q': /* display term only */
- noset = 1;
- break;
- case 'a': /* OBSOLETE: map identifier to type */
- add_mapping("arpanet", optarg);
- break;
- case 'd': /* OBSOLETE: map identifier to type */
- add_mapping("dialup", optarg);
- break;
- case 'e': /* erase character */
- terasechar = arg_to_char();
- break;
- case 'I': /* no initialization strings */
- noinit = 1;
- break;
- case 'i': /* interrupt character */
- intrchar = arg_to_char();
- break;
- case 'k': /* kill character */
- tkillchar = arg_to_char();
- break;
- case 'm': /* map identifier to type */
- add_mapping(0, optarg);
- break;
- case 'n': /* OBSOLETE: set new tty driver */
- break;
- case 'p': /* OBSOLETE: map identifier to type */
- add_mapping("plugboard", optarg);
- break;
- case 'Q': /* don't output control key settings */
- quiet = 1;
- break;
- case 'S': /* OBSOLETE: output TERM & TERMCAP */
- Sflag = 1;
- break;
- case 'r': /* display term on stderr */
- showterm = 1;
- break;
- case 's': /* output TERM set command */
- sflag = 1;
- break;
- case 'V':
- puts(curses_version());
- return EXIT_SUCCESS;
- case '?':
- default:
- usage(*argv);
- }
- }
- argc -= optind;
- argv += optind;
-
- if (argc > 1)
- usage(*argv);
-
- ttype = get_termcap_entry(*argv);
-
- if (!noset) {
- tcolumns = columns;
- tlines = lines;
-
-#if defined(TIOCGWINSZ) && defined(TIOCSWINSZ)
- /* Set window size */
- (void) ioctl(STDERR_FILENO, TIOCGWINSZ, &win);
- if (win.ws_row == 0 && win.ws_col == 0 &&
- tlines > 0 && tcolumns > 0) {
- win.ws_row = tlines;
- win.ws_col = tcolumns;
- (void) ioctl(STDERR_FILENO, TIOCSWINSZ, &win);
- }
-#endif
- set_control_chars();
- set_conversions();
-
- if (!noinit)
- set_init();
-
- /* Set the modes if they've changed. */
- if (memcmp(&mode, &oldmode, sizeof(mode))) {
- SET_TTY(STDERR_FILENO, &mode);
- }
- }
-
- /* Get the terminal name from the entry. */
- ttype = _nc_first_name(cur_term->type.term_names);
-
- if (noset)
- (void) printf("%s\n", ttype);
- else {
- if (showterm)
- (void) fprintf(stderr, "Terminal type is %s.\n", ttype);
- /*
- * If erase, kill and interrupt characters could have been
- * modified and not -Q, display the changes.
- */
-#ifdef TERMIOS
- if (!quiet) {
- report("Erase", VERASE, CERASE);
- report("Kill", VKILL, CINTR);
- report("Interrupt", VINTR, CKILL);
- }
-#endif
- }
-
- if (Sflag)
- err("The -S option is not supported under terminfo.");
-
- if (sflag) {
- /*
- * Figure out what shell we're using. A hack, we look for an
- * environmental variable SHELL ending in "csh".
- */
- if ((p = getenv("SHELL")) != 0
- && !strcmp(p + strlen(p) - 3, "csh"))
- p = "set noglob;\nsetenv TERM %s;\nunset noglob;\n";
- else
- p = "TERM=%s;\n";
- (void) printf(p, ttype);
- }
-
- return EXIT_SUCCESS;
-}
-
-/* tset.c ends here */
diff --git a/ncurses-5.3/sysdeps/unix/sysv/linux/Makefile b/ncurses-5.3/sysdeps/unix/sysv/linux/Makefile
deleted file mode 100644
index 9489c19..0000000
--- a/ncurses-5.3/sysdeps/unix/sysv/linux/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-ifeq ($(subdir),ncurses)
-
-CPPFLAGS += -DNDEBUG -DHAVE_CONFIG_H
-
-edit_man-sed = sysdeps/unix/sysv/linux/edit_man.sed
-edit_man-sh = sysdeps/unix/sysv/linux/edit_man.sh
-
-run_tic-sh = sysdeps/unix/sysv/linux/run_tic.sh
-
-endif
diff --git a/ncurses-5.3/sysdeps/unix/sysv/linux/alpha/configure b/ncurses-5.3/sysdeps/unix/sysv/linux/alpha/configure
deleted file mode 100755
index 6fa2519..0000000
--- a/ncurses-5.3/sysdeps/unix/sysv/linux/alpha/configure
+++ /dev/null
@@ -1,2 +0,0 @@
-# Alpha uses long as bool.
-nc_cv_type_of_bool=long
diff --git a/ncurses-5.3/sysdeps/unix/sysv/linux/configure b/ncurses-5.3/sysdeps/unix/sysv/linux/configure
deleted file mode 100755
index e83e080..0000000
--- a/ncurses-5.3/sysdeps/unix/sysv/linux/configure
+++ /dev/null
@@ -1,407 +0,0 @@
-# Local configure fragment for ncurses/sysdeps/unix/sysv/linux.
-
-nc_given_srcdir=${srcdir}/ncurses
-
-NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[ ]*=' $nc_given_srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-NCURSES_MINOR="`egrep '^NCURSES_MINOR[ ]*=' $nc_given_srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-NCURSES_PATCH="`egrep '^NCURSES_PATCH[ ]*=' $nc_given_srcdir/dist.mk | sed -e 's/^[^0-9]*//'`"
-cf_cv_abi_version=${NCURSES_MAJOR}
-cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
-
-# Default to char
-if [ x${cf_cv_type_of_bool} = x ]
-then
- cf_cv_type_of_bool=char
-fi
-
-rm -f ncurses/MKterm.h.awk \
- ncurses/codes.c \
- ncurses/comp_captab.c \
- ncurses/confdefs.h \
- ncurses/config.log \
- ncurses/curses.h \
- ncurses/expanded.c \
- ncurses/fallback.c \
- ncurses/hashsize.h \
- ncurses/init_keytry.h \
- ncurses/lib_gen.c \
- ncurses/lib_keyname.c \
- ncurses/names.c \
- ncurses/ncurses_cfg.h \
- ncurses/nomacros.h \
- ncurses/parametrized.h \
- ncurses/term.h \
- ncurses/termcap.h \
- ncurses/terminfo.5 \
- ncurses/termsort.c \
- ncurses/unctrl.c \
- ncurses/unctrl.h
-
-# 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 <<EOF
-
-
-s%@DEFS@%-DHAVE_CONFIG_H%g
-s%@NCURSES_MAJOR@%$NCURSES_MAJOR%g
-s%@NCURSES_MINOR@%$NCURSES_MINOR%g
-s%@NCURSES_PATCH@%$NCURSES_PATCH%g
-s%@NCURSES_CONST@%%g
-s%@NCURSES_XNAMES@%1%g
-s%@OSPEED_TYPE@%speed_t%g
-s%@OSPEED_INCLUDES@%#include <termios.h>%g
-s%@cf_cv_rel_version@%$cf_cv_rel_version%g
-s%@cf_cv_abi_version@%$cf_cv_abi_version%g
-s%@cf_cv_builtin_bool@%1%g
-s%@cf_cv_type_of_bool@%$cf_cv_type_of_bool%g
-s%@cf_cv_shift_limit@%32%g
-s%@cf_cv_widec_shift@%8%g
-s%@cf_cv_typeof_chtype@%long%g
-s%@cf_cv_1UL@%1UL%g
-s%@cf_cv_cc_bool_type@%0%g
-
-EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-nc_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-nc_file=1 # Number of current file.
-nc_beg=1 # First line for current file.
-nc_end=$nc_max_sed_cmds # Line after last line for current file.
-nc_more_lines=:
-nc_sed_cmds=""
-while $nc_more_lines; do
- if test $nc_beg -gt 1; then
- sed "1,${nc_beg}d; ${nc_end}q" conftest.subs > conftest.s$nc_file
- else
- sed "${nc_end}q" conftest.subs > conftest.s$nc_file
- fi
- if test ! -s conftest.s$nc_file; then
- nc_more_lines=false
- rm -f conftest.s$nc_file
- else
- if test -z "$nc_sed_cmds"; then
- nc_sed_cmds="sed -f conftest.s$nc_file"
- else
- nc_sed_cmds="$nc_sed_cmds | sed -f conftest.s$nc_file"
- fi
- nc_file=`expr $nc_file + 1`
- nc_beg=$nc_end
- nc_end=`expr $nc_end + $nc_max_sed_cmds`
- fi
-done
-if test -z "$nc_sed_cmds"; then
- nc_sed_cmds=cat
-fi
-
-NC_CONFIG_FILES=${NC_CONFIG_FILES-"ncurses/MKterm.h.awk ncurses/curses.h ncurses/termcap.h ncurses/unctrl.h"}
-for nc_file in .. $NC_CONFIG_FILES; do if test "x$nc_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$nc_file" in
- *:*) nc_file_in=`echo "$nc_file"|sed 's%[^:]*:%%'`
- nc_file=`echo "$nc_file"|sed 's%:.*%%'` ;;
- *) nc_file_in=`echo "${nc_file}" | sed 's%ncurses%include%'`.in ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- nc_dir=`echo $nc_file|sed 's%/[^/][^/]*$%%'`
- if test "$nc_dir" != "$nc_file" && test "$nc_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$nc_dir" && mkdir "$nc_dir"
- nc_dir_suffix="/`echo $nc_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $nc_dir_suffix.
- nc_dots=`echo $nc_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- nc_dir_suffix= nc_dots=
- fi
-
- case "$nc_given_srcdir" in
- .) nc_srcdir=.
- if test -z "$nc_dots"; then nc_top_srcdir=.
- else nc_top_srcdir=`echo $nc_dots|sed 's%/$%%'`; fi ;;
- /*) nc_srcdir="$nc_given_srcdir$nc_dir_suffix"; nc_top_srcdir="$nc_given_srcdir" ;;
- *) # Relative path.
- nc_srcdir="$nc_dots$nc_given_srcdir$nc_dir_suffix"
- nc_top_srcdir="$nc_dots$nc_given_srcdir" ;;
- esac
-
- case "$ac_given_INSTALL" in
- [/$]*) NC_INSTALL="$ac_given_INSTALL" ;;
- *) NC_INSTALL="$nc_dots$ac_given_INSTALL" ;;
- esac
-
- echo creating "$nc_file"
- rm -f "$nc_file"
- configure_input="Generated automatically from `echo $nc_file_in|sed 's%.*/%%'` by configure."
- case "$nc_file" in
- *Makefile*) nc_comsub="1i\\
-# $configure_input" ;;
- *) nc_comsub= ;;
- esac
-
- nc_file_inputs=`echo $nc_file_in|sed -e "s%^%$nc_given_srcdir/%" -e "s%:% $nc_given_srcdir/%g"`
- sed -e "$nc_comsub
-s%@configure_input@%$configure_input%g
-s%@nc_srcdir@%$nc_srcdir%g
-s%@nc_top_srcdir@%$nc_top_srcdir%g
-s%@INSTALL@%$NC_INSTALL%g
-" $nc_file_inputs | (eval "$nc_sed_cmds") > $nc_file
-fi; done
-rm -f conftest.s*
-
-# 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.
-#
-# nc_d sets the value in "#define NAME VALUE" lines.
-nc_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-nc_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-nc_dC='\3'
-nc_dD='%g'
-# nc_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-nc_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-nc_uB='\([ ]\)%\1#\2define\3'
-nc_uC=' '
-nc_uD='\4%g'
-# nc_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-nc_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-nc_eB='$%\1#\2define\3'
-nc_eC=' '
-nc_eD='%g'
-
-NC_CONFIG_HEADERS="ncurses/ncurses_cfg.h:include/ncurses_cfg.hin"
-for nc_file in .. $NC_CONFIG_HEADERS; do if test "x$nc_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$nc_file" in
- *:*) nc_file_in=`echo "$nc_file"|sed 's%[^:]*:%%'`
- nc_file=`echo "$nc_file"|sed 's%:.*%%'` ;;
- *) nc_file_in="${nc_file}.in" ;;
- esac
-
- echo creating $nc_file
-
- rm -f conftest.frag conftest.in conftest.out
- nc_file_inputs=`echo $nc_file_in|sed -e "s%^%$nc_given_srcdir/%" -e "s%:% $nc_given_srcdir/%g"`
- cat $nc_file_inputs > conftest.in
-
- rm -f conftest.frag
- cat >> conftest.frag <<CEOF
-
-#define CC_HAS_INLINE_FUNCS 1
-#define GCC_NORETURN __attribute__((noreturn))
-#define GCC_PRINTF 1
-#define GCC_SCANF 1
-#define GCC_UNUSED __attribute__((unused))
-#define GOOD_SELECT 1
-#define HAVE_BUILTIN_H 1
-#define HAVE_DIRENT_H 1
-#define HAVE_ERRNO 1
-#define HAVE_FCNTL_H 1
-#define HAVE_FORM_H 1
-#define HAVE_GETOPT_H 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define HAVE_GETTIMEOFDAY 1
-#define HAVE_GETTTYNAM 1
-#define HAVE_ISASCII 1
-#define HAVE_LIBFORM 1
-#define HAVE_LIBMENU 1
-#define HAVE_LIBPANEL 1
-#define HAVE_LIMITS_H 1
-#define HAVE_LINK 1
-#define HAVE_LOCALE_H 1
-#define HAVE_LONG_FILE_NAMES 1
-#define HAVE_MEMCCPY 1
-#define HAVE_MENU_H 1
-#define HAVE_NANOSLEEP 1
-#define HAVE_NC_ALLOC_H 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define HAVE_PANEL_H 1
-#define HAVE_POLL 1
-#define HAVE_POLL_H 1
-#define HAVE_REGEX_H_FUNCS 1
-#define HAVE_REMOVE 1
-#define HAVE_SELECT 1
-#define HAVE_SETBUF 1
-#define HAVE_SETBUFFER 1
-#define HAVE_SETVBUF 1
-#define HAVE_SIGACTION 1
-#define HAVE_SIGVEC 1
-#define HAVE_SIZECHANGE 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define HAVE_STRDUP 1
-#define HAVE_SYMLINK 1
-#define HAVE_SYS_IOCTL_H 1
-#define HAVE_SYS_PARAM_H 1
-#define HAVE_SYS_SELECT_H 1
-#define HAVE_SYS_TIMES_H 1
-#define HAVE_SYS_TIME_H 1
-#define HAVE_SYS_TIME_SELECT 1
-#define HAVE_TCGETATTR 1
-#define HAVE_TERMIOS_H 1
-#define HAVE_TERMIO_H 1
-#define HAVE_TIMES 1
-#define HAVE_TTYENT_H 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define HAVE_TYPEINFO 1
-#define HAVE_UNISTD_H 1
-#define HAVE_VALUES_H 1
-#define HAVE_VFSCANF 1
-#define HAVE_VSNPRINTF 1
-#define HAVE_VSSCANF 1
-#define NCURSES_EXT_FUNCS 1
-#define NDEBUG 1
-#define PURE_TERMINFO 1
-#define RETSIGTYPE void
-#define STDC_HEADERS 1
-CEOF
- cat >> conftest.frag <<CEOF
-#define SYSTEM_NAME "linux-gnu"
-#define TYPEOF_CHTYPE long
-#define USE_DATABASE 1
-#define USE_HASHMAP 1
-#define USE_LINKS 1
-#define NCURSES_NO_PADDING 1
-#define USE_SIGWINCH 1
-CEOF
- 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
-rm -f conftest.edit conftest.frag
-
- rm -f conftest.frag conftest.h
- echo "/* $nc_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $nc_file conftest.h 2>/dev/null; then
- echo "$nc_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- nc_dir=`echo $nc_file|sed 's%/[^/][^/]*$%%'`
- if test "$nc_dir" != "$nc_file" && test "$nc_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$nc_dir" && mkdir "$nc_dir"
- fi
- rm -f $nc_file
- mv conftest.h $nc_file
- fi
-fi; done
-
-
-SYS_NAME=`uname -a`
-if test -z "$SYS_NAME"; then SYS_NAME=unknown;fi
-
-NC_AWK=awk
-BUILD_CC=${BUILD_CC-gcc}
-NC_CC="${BUILD_CC} -I${nc_given_srcdir}/ncurses -Incurses -I${nc_given_srcdir}/include"
-NC_CPP="${NC_CC} -E"
-CF_LIST_MODELS="normal"
-#WITH_ECHO="yes"
-#WITH_OVERWRITE="yes"
-nc_cxx_library="yes"
-cf_cv_systype="Linux"
-cf_cv_rel_version="4.2"
-cf_cv_abi_version="4"
-cf_cv_do_symlinks="yes"
-cf_cv_rm_so_locs="no"
-
-
-rm -f headers.sed headers.sh
-
-echo creating headers.sh
-cat >headers.sh <<NC_EOF
-#!/bin/sh
-# This shell script is generated by the 'configure' script. It is invoked in a
-# subdirectory of the build tree. It generates a sed-script in the parent
-# directory that is used to adjust includes for header files that reside in a
-# subdirectory of /usr/include, etc.
-PRG=""
-while test \$# != 3
-do
-PRG="\$PRG \$1"; shift
-done
-DST=\$1
-REF=\$2
-SRC=\$3
-echo installing \$SRC in \$DST
-case \$DST in
-/*/include/*)
- TMP=\${TMPDIR-/tmp}/\`basename \$SRC\`
- if test ! -f ../headers.sed ; then
- END=\`basename \$DST\`
- for i in \`cat \$REF/../*/headers |fgrep -v "#"\`
- do
- NAME=\`basename \$i\`
- echo "s/<\$NAME>/<\$END\/\$NAME>/" >> ../headers.sed
- done
- fi
- rm -f \$TMP
- sed -f ../headers.sed \$SRC > \$TMP
- eval \$PRG \$TMP \$DST
- rm -f \$TMP
- ;;
-*)
- eval \$PRG \$SRC \$DST
- ;;
-esac
-NC_EOF
-
-chmod 0755 headers.sh
-
-echo creating ncurses/term.h
-${NC_AWK} -f ncurses/MKterm.h.awk ${nc_given_srcdir}/include/Caps > ncurses/term.h
-sh ${nc_given_srcdir}/include/edit_cfg.sh ncurses/ncurses_cfg.h ncurses/term.h
-
-echo creating ncurses/hashsize.h
-sh ${nc_given_srcdir}/include/MKhashsize.sh ${nc_given_srcdir}/include/Caps > ncurses/hashsize.h
-
-echo creating ncurses/parametrized.h
-sh ${nc_given_srcdir}/include/MKparametrized.sh ${nc_given_srcdir}/include/Caps > ncurses/parametrized.h
-
-echo creating ncurses/termsort.c
-sh ${nc_given_srcdir}/progs/MKtermsort.sh "${NC_AWK}" ${nc_given_srcdir}/include/Caps > ncurses/termsort.c
-
-echo creating ncurses/fallback.c
-sh ${nc_given_srcdir}/ncurses/tinfo/MKfallback.sh > ncurses/fallback.c
-
-echo creating ncurses/lib_gen.c
-sh ${nc_given_srcdir}/ncurses/base/MKlib_gen.sh "${NC_CPP}" "${NC_AWK}" < ncurses/curses.h > ncurses/lib_gen.c
-
-echo creating ncurses/nomacros.h
-sh ${nc_given_srcdir}/ncurses/base/MKlib_gen.sh "${NC_CPP}" "${NC_AWK}" < ncurses/curses.h | fgrep undef > ncurses/nomacros.h
-
-echo creating ncurses/expanded.c
-sh ${nc_given_srcdir}/ncurses/tty/MKexpanded.sh "${NC_CPP}" >ncurses/expanded.c
-
-echo creating ncurses/comp_captab.c
-${NC_CC} -o make_hash -DMAIN_PROGRAM ${nc_given_srcdir}/ncurses/tinfo/comp_hash.c
-sh ${nc_given_srcdir}/ncurses/tinfo/MKcaptab.awk "${NC_AWK}" ${nc_given_srcdir}/include/Caps > ncurses/comp_captab.c
-rm -f make_hash
-
-echo creating ncurses/lib_keyname.c
-${NC_AWK} -f ${nc_given_srcdir}/ncurses/base/MKkeyname.awk ${nc_given_srcdir}/ncurses/tinfo/keys.list > ncurses/lib_keyname.c
-
-echo creating ncurses/names.c and ncurses/codes.c
-${NC_AWK} -f ${nc_given_srcdir}/ncurses/tinfo/MKnames.awk ${nc_given_srcdir}/include/Caps
-cat namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr >ncurses/names.c
-cat namehdr boolcodes numcodes strcodes codeftr > ncurses/codes.c
-rm -f namehdr nameftr codeftr boolnames boolfnames boolcodes numnames numfnames numcodes strnames strfnames strcodes
-
-echo creating ncurses/init_keytry.h
-${NC_CC} -o make_key ${nc_given_srcdir}/ncurses/tinfo/make_keys.c
-./make_key ${nc_given_srcdir}/ncurses/keys.list > ncurses/init_keytry.h
-rm -f make_key
-
-echo creating ncurses/unctrl.c
-echo | ${NC_AWK} -f ${nc_given_srcdir}/ncurses/base/MKunctrl.awk > ncurses/unctrl.c
-echo creating ncurses/terminfo.5
-sh ${nc_given_srcdir}/man/MKterminfo.sh ${nc_given_srcdir}/man/terminfo.head ${nc_given_srcdir}/include/Caps ${nc_given_srcdir}/man/terminfo.tail > ncurses/terminfo.5
diff --git a/ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sed b/ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sed
deleted file mode 100644
index 163eb7b..0000000
--- a/ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sed
+++ /dev/null
@@ -1,100 +0,0 @@
-s/captoinfo\.1m/captoinfo.1m/g
-s/clear\.1/clear.1m/g
-s/curs_addch\.3x/addch.3ncurses/g
-s/curs_addchstr\.3x/addchstr.3ncurses/g
-s/curs_addstr\.3x/addstr.3ncurses/g
-s/curs_attr\.3x/attr.3ncurses/g
-s/curs_beep\.3x/beep.3ncurses/g
-s/curs_bkgd\.3x/bkgd.3ncurses/g
-s/curs_border\.3x/border.3ncurses/g
-s/curs_clear\.3x/clear.3ncurses/g
-s/curs_color\.3x/color.3ncurses/g
-s/curs_delch\.3x/delch.3ncurses/g
-s/curs_deleteln\.3x/deleteln.3ncurses/g
-s/curs_getch\.3x/getch.3ncurses/g
-s/curs_getstr\.3x/getstr.3ncurses/g
-s/curs_getyx\.3x/getyx.3ncurses/g
-s/curs_inch\.3x/inch.3ncurses/g
-s/curs_inchstr\.3x/inchstr.3ncurses/g
-s/curs_initscr\.3x/initscr.3ncurses/g
-s/curs_inopts\.3x/inopts.3ncurses/g
-s/curs_insch\.3x/insch.3ncurses/g
-s/curs_insstr\.3x/insstr.3ncurses/g
-s/curs_instr\.3x/instr.3ncurses/g
-s/curs_kernel\.3x/kernel.3ncurses/g
-s/curs_mouse\.3x/mouse.3ncurses/g
-s/curs_move\.3x/move.3ncurses/g
-s/curs_outopts\.3x/outopts.3ncurses/g
-s/curs_overlay\.3x/overlay.3ncurses/g
-s/curs_pad\.3x/pad.3ncurses/g
-s/curs_print\.3x/print.3ncurses/g
-s/curs_printw\.3x/printw.3ncurses/g
-s/curs_refresh\.3x/refresh.3ncurses/g
-s/curs_scanw\.3x/scanw.3ncurses/g
-s/curs_scr_dmp\.3x/scr_dmp.3ncurses/g
-s/curs_scroll\.3x/scroll.3ncurses/g
-s/curs_slk\.3x/slk.3ncurses/g
-s/curs_termattrs\.3x/termattrs.3ncurses/g
-s/curs_termcap\.3x/termcap.3ncurses/g
-s/curs_terminfo\.3x/terminfo.3ncurses/g
-s/curs_touch\.3x/touch.3ncurses/g
-s/curs_util\.3x/util.3ncurses/g
-s/curs_window\.3x/window.3ncurses/g
-s/form\.3x/form.3form/g
-s/form_cursor\.3x/cursor.3form/g
-s/form_data\.3x/data.3form/g
-s/form_driver\.3x/driver.3form/g
-s/form_field\.3x/field.3form/g
-s/form_field_attributes\.3x/field_attributes.3form/g
-s/form_field_buffer\.3x/field_buffer.3form/g
-s/form_field_info\.3x/field_info.3form/g
-s/form_field_just\.3x/field_just.3form/g
-s/form_field_new\.3x/field_new.3form/g
-s/form_field_opts\.3x/field_opts.3form/g
-s/form_field_userptr\.3x/field_userptr.3form/g
-s/form_field_validation\.3x/field_validation.3form/g
-s/form_fieldtype\.3x/fieldtype.3form/g
-s/form_hook\.3x/hook.3form/g
-s/form_new\.3x/new.3form/g
-s/form_new_page\.3x/new_page.3form/g
-s/form_opts\.3x/opts.3form/g
-s/form_page\.3x/page.3form/g
-s/form_post\.3x/post.3form/g
-s/form_requestname\.3x/requestname.3form/g
-s/form_userptr\.3x/userptr.3form/g
-s/form_win\.3x/win.3form/g
-s/infocmp\.1m/infocmp.1m/g
-s/menu\.3x/menu.3menu/g
-s/menu_attribs\.3x/attribs.3menu/g
-s/menu_cursor\.3x/cursor.3menu/g
-s/menu_driver\.3x/driver.3menu/g
-s/menu_format\.3x/format.3menu/g
-s/menu_hook\.3x/hook.3menu/g
-s/menu_items\.3x/items.3menu/g
-s/menu_mark\.3x/mark.3menu/g
-s/menu_new\.3x/new.3menu/g
-s/menu_opts\.3x/opts.3menu/g
-s/menu_pattern\.3x/pattern.3menu/g
-s/menu_post\.3x/post.3menu/g
-s/menu_requestname\.3x/requestname.3menu/g
-s/menu_spacing\.3x/spacing.3menu/g
-s/menu_userptr\.3x/userptr.3menu/g
-s/menu_win\.3x/win.3menu/g
-s/mitem_current\.3x/menu_current.3menu/g
-s/mitem_name\.3x/menu_name.3menu/g
-s/mitem_new\.3x/menu_new.3menu/g
-s/mitem_opts\.3x/menu_opts.3menu/g
-s/mitem_userptr\.3x/menu_userptr.3menu/g
-s/mitem_value\.3x/menu_value.3menu/g
-s/mitem_visible\.3x/menu_visible.3menu/g
-s/ncurses\.3x/ncurses.3ncurses/g
-s/panel\.3x/panel.3curses/g
-s/resizeterm\.3x/resizeterm.3ncurses/g
-s/term\.5/term.5/g
-s/term\.7/term.7/g
-s/terminfo\.5/terminfo.5/g
-s/tic\.1m/tic.1m/g
-s/toe\.1m/toe.1m/g
-s/tput\.1/tput.1/g
-s/tset\.1/tset.1/g
-s/wresize\.3x/wresize.3ncurses/g
diff --git a/ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sh b/ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sh
deleted file mode 100755
index 558fff8..0000000
--- a/ncurses-5.3/sysdeps/unix/sysv/linux/edit_man.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-# this script is generated by the configure-script
-prefix=$1
-shift
-mandir=$1
-shift
-edit_man_sed=$1
-shift
-
-datadir="${prefix}/share"
-MKDIRS="mkinstalldirs"
-INSTALL="/usr/bin/install -c"
-INSTALL_DATA="${INSTALL} -m 644"
-TMP=${TMPDIR-/tmp}/man$$
-trap "rm -f $TMP" 0 1 2 5 15
-
-for i in $*
-do
-case $i in
-*.[0-9]*)
- section=`expr "$i" : '.*\.\([0-9]\)[xm]*'`;
- if [ ! -d $mandir/man${section} ]; then
- $MKDIRS $mandir/man$section
- fi
- source=`basename $i`
- target=`grep "^$source" man/man_db.renames | awk '{print $2}'`
- if test -z "$target" ; then
- echo '? missing rename for '$source
- target="$source"
- fi
- target="$mandir/man$section/$target"
- sed -e 's,@DATADIR@,$datadir,' < $i | sed -f ${edit_man_sed} >$TMP
- echo installing $target
- $INSTALL_DATA $TMP $target
- ;;
-esac
-done
diff --git a/ncurses-5.3/sysdeps/unix/sysv/linux/run_tic.sh b/ncurses-5.3/sysdeps/unix/sysv/linux/run_tic.sh
deleted file mode 100755
index aff8cc5..0000000
--- a/ncurses-5.3/sysdeps/unix/sysv/linux/run_tic.sh
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/bin/sh
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996
-#
-# $Id$
-# 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.
-#
-# Parameters:
-# $1 = the common object directory.
-# $2 = source-directory, i.e., $(srcdir)
-# $3 = destination-directory path, i.e., $(ticdir)
-# $4 = install-prefix, if any
-#
-# Assumes:
-# The leaf directory names (bin, lib, shared, tabset, terminfo)
-#
-echo '** Building terminfo database, please wait...'
-#
-# Parameter parsing is primarily for debugging. The script is designed to
-# be run from the misc/Makefile as
-# make install.data
-
-prefix=/usr
-if test $# != 0 ; then
- common_objpfx=$1
- shift
-fi
-
-if test $# != 0 ; then
- srcdir=$1
- shift
-else
- srcdir=.
-fi
-
-if test $# != 0 ; then
- ticdir=$1
- shift
-else
- ticdir=$prefix/share/terminfo
-fi
-
-if test $# != 0 ; then
- IP=$1
- shift
-else
- IP=""
-fi
-
-TERMINFO=$IP$ticdir ; export TERMINFO
-umask 022
-
-# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's/\/share\//\/lib\//'`
-
-# Remove the old terminfo stuff; we don't care if it existed before, and it
-# would generate a lot of confusing error messages if we tried to overwrite it.
-# We explicitly remove its contents rather than the directory itself, in case
-# the directory is actually a symbolic link.
-( rm -fr $TERMINFO/[0-9A-Za-z] 2>/dev/null )
-
-# If we're not installing into /usr/share/, we'll have to adjust the location
-# of the tabset files in terminfo.src (which are in a parallel directory).
-TABSET=`echo $ticdir | sed -e 's/\/terminfo$/\/tabset/'`
-SRC=$srcdir/terminfo.src
-if test "x$TABSET" != "x/usr/share/tabset" ; then
- echo '** adjusting tabset paths'
- TMP=${TMPDIR-/tmp}/$$
- sed -e s:/usr/share/tabset:$TABSET:g $SRC >$TMP
- trap "rm -f $TMP" 0 1 2 5 15
- SRC=$TMP
-fi
-
-LD_LIBRARY_PATH=$common_objpfx:$common_objpfx/nss:$common_objpfx/ncurses \
- $common_objpfx/elf/ld.so \
- $common_objpfx/ncurses/tic -s $SRC
-if [ $? = 0 ]
-then
- echo '** built new '$TERMINFO
-else
- echo '? tic could not build '$TERMINFO
- exit 1
-fi
-
-# Make a symbolic link to provide compatibility with applications that expect
-# to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not
-# all systems support symbolic links, and those that do provide a variety
-# of options for 'test'.
-if test "$TICDIR" != "$TERMINFO" ; then
- ( rm -f $TICDIR 2>/dev/null )
- if ( cd $TICDIR 2>/dev/null )
- then
- cd $TICDIR
- TICDIR=`pwd`
- if test $TICDIR != $TERMINFO ; then
- # Well, we tried. Some systems lie to us, so the
- # installer will have to double-check.
- echo "Verify if $TICDIR and $TERMINFO are the same."
- echo "The new terminfo is in $TERMINFO; the other should be a link to it."
- echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
- fi
- else
- cd $IP$prefix
- # Construct a symbolic link that only assumes $ticdir has the
- # same $prefix as the other installed directories.
- RELATIVE=`echo $ticdir|sed -e 's:^'$prefix'/::'`
- if test "$RELATIVE" != "$ticdir" ; then
- RELATIVE=../`echo $ticdir|sed -e 's:^'$prefix'/::' -e 's:^/::'`
- fi
- if ( ln -s $RELATIVE $TICDIR )
- then
- echo '** linked '$TICDIR' for compatibility'
- fi
- fi
-fi
diff --git a/ncurses-5.3/tack/COPYING b/ncurses-5.3/tack/COPYING
deleted file mode 100644
index 60549be..0000000
--- a/ncurses-5.3/tack/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/ncurses-5.3/tack/HISTORY b/ncurses-5.3/tack/HISTORY
deleted file mode 100644
index 3fe2cab..0000000
--- a/ncurses-5.3/tack/HISTORY
+++ /dev/null
@@ -1,44 +0,0 @@
-
-Current history:
-
-2000/03/04 Fix a few spelling errors
-1999/09/04 Minor fix to build/link on BeOS
-1999/05/16 Minor fix to build/link on CLIX
-1999/05/09 Update to build/link on NeXT
-1999/04/17 Update to work with ncurses 5.0 beta1 (TERMTYPE struct)
-1999/02/07 Build with ncurses 4.2 981219 (renamed function)
-1998/01/09 1.00 First release under GPL
-1997/12/24 0.02 First version that requires ncurses
-1997/10/29 0.01 Second beta release to the ncurses mailing list.
-1997/10/06 0.00 First beta release to the ncurses mailing list.
-
-Ancient history: TACK -- the terminfo action checker
-
- The purpose of this program is to verify the correctness of
-terminfos and to calculate the pads needed for each capability.
-This program is not designed to test curses and therefore uses
-as little of curses as possible.
-
- This program was originally called TED. In 1991 it was
-released to USENET in comp.sources. TED was originally written to
-test both terminfos and termcaps. The original intent was to
-create a terminfo editor. This code fell quite short of its goal.
-Tests were controlled by command line switches and editing was done
-with pen and paper.
-
- In 1995 Eric S. Raymond got interested in the program and added
-a first cut at making the program menu driven. He also converted
-the code from K&R C to an ANSI/POSIX-conforming C. He re-christened
-the program TAC (Terminfo Action Checker). Eric also wrote a man
-page for TAC.
-
- In 1997 I decided to dust off the code and make it easier to
-use by the novice. I totally rewrote the menu system and added
-the editing features I originally planned for TED. I also did
-a total rewrite of the code that does the timings. In the process
-of rewriting the code I changed it to be more tightly coupled
-with ncurses. By this time someone had taken the name TAC so
-I re-christened the program TACK.
-
-Daniel Weaver
-<danw@znyx.com>
diff --git a/ncurses-5.3/tack/Makefile.in b/ncurses-5.3/tack/Makefile.in
deleted file mode 100644
index 78b5f49..0000000
--- a/ncurses-5.3/tack/Makefile.in
+++ /dev/null
@@ -1,170 +0,0 @@
-# $Id$
-# Makefile for tack
-#
-# The variable 'srcdir' refers to the source-distribution, and can be set with
-# the configure script by "--srcdir=DIR".
-#
-# The rules are organized to produce the libraries for the configured models,
-# and the programs with the configured default model.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-CF_MFLAGS = @cf_cv_makeflags@
-@SET_MAKE@
-x = @PROG_EXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-DESTDIR = @DESTDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-bindir = @bindir@
-libdir = @libdir@
-mandir = @mandir@/man1
-includedir = @includedir@
-datadir = @datadir@
-
-LIBTOOL = @LIBTOOL@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CPP = @CPP@
-CFLAGS = @CFLAGS@
-
-INCDIR = $(srcdir)/../include
-CPPFLAGS = -DHAVE_CONFIG_H -I../tack -I$(srcdir) @CPPFLAGS@
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LD = @LD@
-LINK = @LINK_PROGS@ $(LIBTOOL) $(CC)
-LDFLAGS = @EXTRA_LDFLAGS@ \
- @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
-
-LDFLAGS_LIBTOOL = $(LDFLAGS)
-LDFLAGS_NORMAL = $(LDFLAGS)
-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
-LDFLAGS_PROFILE = $(LDFLAGS) -pg
-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lncurses@LIB_SUFFIX@ @LIBS@
-
-PROGS = tack$x
-
-# Default library, for linking applications
-DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
-
-################################################################################
-all: $(PROGS)
-
-sources:
-
-install: install.tack
-uninstall: uninstall.tack
-
-# this line simplifies the configure-script
-libs \
-install.libs \
-uninstall.libs:
-
-install.tack: $(PROGS) \
- $(DESTDIR)$(bindir) \
- $(DESTDIR)$(mandir)
- $(LIBTOOL) $(INSTALL_PROGRAM) tack$x $(DESTDIR)$(bindir)/tack$x
- $(INSTALL_DATA) $(srcdir)/tack.1 $(DESTDIR)$(mandir)/tack.1
-
-uninstall.tack:
- -@$(LIBTOOL) rm -f $(DESTDIR)$(bindir)/tack$x
- -@rm -f $(DESTDIR)$(mandir)/tack.1
-
-$(DESTDIR)$(bindir) \
-$(DESTDIR)$(mandir) :
- sh $(srcdir)/../mkinstalldirs $@
-
-#
-# Rules for building tack
-#
-
-DEPS_TACK = \
- $(MODEL)/ansi.o \
- $(MODEL)/charset.o \
- $(MODEL)/color.o \
- $(MODEL)/control.o \
- $(MODEL)/crum.o \
- $(MODEL)/edit.o \
- $(MODEL)/fun.o \
- $(MODEL)/init.o \
- $(MODEL)/menu.o \
- $(MODEL)/modes.o \
- $(MODEL)/output.o \
- $(MODEL)/pad.o \
- $(MODEL)/scan.o \
- $(MODEL)/sync.o \
- $(MODEL)/sysdep.o \
- $(MODEL)/tack.o
-
-tack$x: $(DEPS_TACK) $(DEPS_CURSES)
- @ECHO_LINK@ $(LINK) $(DEPS_TACK) $(LDFLAGS_DEFAULT) -o $@
-
-#
-# Utility productions start here
-#
-
-tags:
- ctags *.[ch]
-
-@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.atac trace
-
-clean :: mostlyclean
- -rm -f $(PROGS)
- -rm -rf .libs
-
-distclean :: clean
- -rm -f Makefile
-
-realclean :: distclean
-
-tack.tar: Makefile.in modules *.[ch] tack.1 HISTORY COPYING
- tar -cvf tack.tar Makefile.in modules *.[ch] tack.1 HISTORY COPYING
-
-# These rules are used to allow "make -n" to work on a clean directory-tree
-../include/hashsize.h \
-../include/parametrized.h \
-../include/term.h :
- cd ../include; $(MAKE) $(CF_MFLAGS)
-
-$(DEPS_CURSES) :
- cd ../ncurses; $(MAKE) $(CF_MFLAGS)
-
-lint:
- $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/*.c $(LINT_LIBS)
-
-###############################################################################
-# The remainder of this file is automatically generated during configuration
-###############################################################################
diff --git a/ncurses-5.3/tack/README b/ncurses-5.3/tack/README
deleted file mode 100644
index 231f8a4..0000000
--- a/ncurses-5.3/tack/README
+++ /dev/null
@@ -1,14 +0,0 @@
--- $Id$
-
-The 'tack' program is a diagnostic that is designed to create and
-verify the correctness of terminfo's. This program can be used to
-create new terminal descriptions that are not included in the standard
-release. Although 'tack' is distributed with ncurses, it is not an
-integral part of ncurses. It may be removed from the release without
-limiting the usefulness of ncurses on those terminals described in the
-terminfo data base. The best way to remove 'tack' from the build is
-to delete or rename the 'tack' directory before running the configure
-script.
-
-Unlike most of ncurses the 'tack' program is covered under the GNU
-Public License.
diff --git a/ncurses-5.3/tack/ansi.c b/ncurses-5.3/tack/ansi.c
deleted file mode 100644
index 8696c5f..0000000
--- a/ncurses-5.3/tack/ansi.c
+++ /dev/null
@@ -1,854 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Standalone tests for ANSI terminals. Three entry points:
- * test_ansi_graphics(), test_ansi_reports() and test_ansi_sgr().
- */
-
-/*****************************************************************************
- *
- * Test ANSI status reports
- *
- *****************************************************************************/
-
-/* ASCII control characters */
-#define A_DC1 0x11 /* Control Q */
-#define A_DC3 0x13 /* Control S */
-#define A_ESC 0x1b
-#define A_DCS 0x90
-#define A_CSI 0x9b
-#define A_ST 0x9c
-
-#define MAX_MODES 256
-
-static char default_bank[] = "\033(B\017";
-static int private_use, ape, terminal_class;
-static short ansi_value[256];
-static unsigned char ansi_buf[512], pack_buf[512];
-
-struct ansi_reports {
- int lvl, final;
- const char *text;
- const char *request;
-};
-
-static struct ansi_reports report_list[] = {
- {0, 'c', "(DA) Primary device attributes", "\033[0c"},
- {1, 0, "(DSR) Terminal status", "\033[5n"},
- {1, 'R', "(DSR) Cursor position", "\033[6n"},
- {62, 0, "(DA) Secondary device attributes", "\033[>0c"},
- {62, 0, "(DSR) Printer status", "\033[?15n"},
- {62, 0, "(DSR) Function key definition", "\033[?25n"},
- {62, 0, "(DSR) Keyboard language", "\033[?26n"},
- {63, 0, "(DECRQSS) Data destination", "\033P$q$}\033\\"},
- {63, 0, "(DECRQSS) Status line type", "\033P$q$~\033\\"},
- {63, 0, "(DECRQSS) Erase attribute", "\033P$q\"q\033\\"},
- {63, 0, "(DECRQSS) Personality", "\033P$q\"p\033\\"},
- {63, 0, "(DECRQSS) Top and bottom margins", "\033P$qr\033\\"},
- {63, 0, "(DECRQSS) Character attributes", "\033P$qm\033\\"},
- {63, 0, "(DECRQSS) Illegal request", "\033P$q@\033\\"},
- {63, 0, "(DECRQUPSS) User pref supplemental set", "\033[&u"},
- {63, 0, "(DECRQPSR) Cursor information", "\033[1$w"},
- {63, 0, "(DECRQPSR) Tab stop information", "\033[2$w"},
- {64, 0, "(DA) Tertiary device attributes", "\033[=0c"},
- {64, 0, "(DSR) Extended cursor position", "\033[?6n"},
- {64, 0, "(DSR) Macro space", "\033[?62n"},
- {64, 0, "(DSR) Memory checksum", "\033[?63n"},
- {64, 0, "(DSR) Data integrity", "\033[?75n"},
- {64, 0, "(DSR) Multiple session status", "\033[?85n"},
- {64, 0, "(DECRQSS) Attribute change extent", "\033P$q*x\033\\"},
- {64, 0, "(DECRQSS) Columns per page", "\033P$q$|\033\\"},
- {64, 0, "(DECRQSS) Lines per page", "\033P$qt\033\\"},
- {64, 0, "(DECRQSS) Lines per screen", "\033P$q*|\033\\"},
- {64, 0, "(DECRQSS) Left and right margins", "\033P$qs\033\\"},
- {64, 0, "(DECRQSS) Local functions", "\033P$q+q\033\\"},
- {64, 0, "(DECRQSS) Local function key control", "\033P$q=}\033\\"},
- {64, 0, "(DECRQSS) Select modifier key reporting", "\033P$q+r\033\\"},
- {64, 0, "(DECRQDE) Window report", "\033[\"v"},
- {0, 0, 0, 0}
-};
-
-struct request_control {
- const char *text;
- const char *expect;
- const char *request;
- const char *set_mode;
- const char *reset_mode;
-};
-
-/* Request control function selection or setting */
-static const struct request_control rqss[] = {
- {"Data sent to screen", "0", "$}", "\033[0$}", 0},
- {"Data sent to disabled status line", "0", "$}", 0, 0},
- {"\033[0$~\033[1$}", "\033[0$}", 0, 0, 0},
- {"Data sent to enabled status line", "1", "$}", 0, 0},
- {"\033[2$~\033[1$}", "\033[0$}", 0, 0, 0},
- {"Disable status line", "0", "$~", "\033[0$~", 0},
- {"Top status line", "1", "$~", "\033[1$~", 0},
- {"Bottom status line", "2", "$~", "\033[2$~", 0},
- {"Erasable character", "0", "\"q", "\033[0\"q", 0},
- {"Nonerasable character", "1", "\"q", "\033[1\"q", "\033[0\"q"},
- {"Top and bottom margins", "3;10", "r", "\0337\033[3;10r", 0},
- {"\033[r\0338", 0, 0, 0, 0},
- {"Top and bottom margins", "default", "r", "\0337\033[r", "\0338"},
- {"Character attributes, dim, bold", "1", "m", "\033[2;1m", "\033[m"},
- {"Character attributes, bold, dim", "2", "m", "\033[1;2m", "\033[m"},
- {"Character attributes, under, rev", "4;7", "m", "\033[4;7m", "\033[m"},
- {"Character attributes, color", "35;42", "m", "\033[35;42m", "\033[m"},
- {"All character attributes", "", "m", "\033[1;2;3;4;5;6;7;8;9m", 0},
- {"\033[m", 0, 0, 0, 0},
- {0, 0, 0, 0, 0}
-};
-
-
-/*
-** read_ansi()
-**
-** read an ANSI status report from terminal
-*/
-static void
-read_ansi(void)
-{
- int ch, i, j, last_escape;
-
- fflush(stdout);
- 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++) {
- if (ch == A_ESC) {
- if (last_escape == A_ESC) {
- pack_buf[j++] = A_ESC;
- }
- last_escape = A_ESC;
- } else
- if (last_escape == A_ESC && ch >= '@' && ch <= '_') {
- pack_buf[j++] = last_escape = ch + 0x40;
- } else
- if (last_escape != A_CSI || (ch > 0x20 && ch != 0x80)) {
- if (last_escape == A_ESC) {
- pack_buf[j++] = A_ESC;
- }
- if (ch > 0x80 && ch < 0xa0) {
- last_escape = ch;
- }
- pack_buf[j++] = ch;
- }
- }
- if (last_escape == A_ESC) {
- pack_buf[j++] = A_ESC;
- }
- pack_buf[j] = '\0';
- return;
-}
-
-/*
-** valid_mode(expected)
-**
-** read a terminal mode status report and parse the result
-** Return TRUE if we got the expected terminating character.
-*/
-static int
-valid_mode(int expected)
-{
- unsigned char *s;
- int ch, terminator;
-
- read_ansi();
-
- ape = 0;
- ch = UChar(pack_buf[0]);
- ansi_value[0] = 0;
- if (ch != A_CSI && ch != A_DCS)
- return FALSE;
-
- s = pack_buf + 1;
- private_use = 0;
- if ((*s >= '<') & (*s <= '?')) {
- private_use = *s++;
- }
- terminator = 0;
- for (; (ch = *s); s++) {
- if (ch >= '0' && ch <= '9')
- ansi_value[ape] = ansi_value[ape] * 10 + ch - '0';
- else if (ch == ';' || ch == ':')
- ansi_value[++ape] = 0;
- else if (ch >= '<' && ch <= '?')
- private_use = ch;
- else if (ch >= ' ')
- terminator = (terminator << 8) | ch;
- else
- break;
- }
- return terminator == expected;
-}
-
-/*
-** read_reports()
-**
-** read all the reports in the ANSI report structure
-*/
-static int
-read_reports(void)
-{
- int i, j, k, tc, vcr, lc;
- char *s;
- const char *t;
-
- lc = 5;
- terminal_class = tc = 0;
- for (i = 0; report_list[i].text; i++, lc++) {
- if (terminal_class < report_list[i].lvl &&
- tc < report_list[i].lvl) {
- put_crlf();
- menu_prompt();
- ptext("/status [q] > ");
- j = wait_here();
- if (j != 'n' && j != 'N')
- return 0;
- tc = report_list[i].lvl;
- lc = 1;
- } else if (lc + 2 >= lines) {
- put_crlf();
- ptext("Hit any key to continue ");
- (void) wait_here();
- lc = 1;
- }
- sprintf(temp, "%s (%s) ", report_list[i].text,
- expand_command(report_list[i].request));
- ptext(temp);
- for (j = strlen(temp); j < 49; j++)
- putchp(' ');
- tc_putp(report_list[i].request);
- vcr = 0;
- if (report_list[i].final == 0) {
- read_ansi();
- } else if (valid_mode(report_list[i].final))
- switch (report_list[i].final) {
- case 'c':
- terminal_class = ansi_value[0];
- break;
- case 'R':
- vcr = TRUE;
- break;
- }
- j = UChar(pack_buf[0]);
- if (j != A_CSI && j != A_DCS) {
- put_crlf();
- t = "*** The above request gives illegal response ***";
- ptext(t);
- for (j = strlen(t); j < 49; j++)
- putchp(' ');
- }
- s = expand((const char *)ansi_buf);
- if (char_count + expand_chars >= columns) {
- put_str("\r\n ");
- lc++;
- }
- putln(s);
- if (vcr) { /* find out how big the screen is */
- tc_putp(report_list[i].request);
- if (!valid_mode('R'))
- continue;
- j = ansi_value[0];
- k = ansi_value[1];
- tc_putp("\033[255B\033[255C\033[6n");
- if (!valid_mode('R'))
- continue;
- sprintf(temp, "\033[%d;%dH", j, k);
- tc_putp(temp);
- ptext("(DSR) Screen size (CSI 6 n)");
- for (j = char_count; j < 50; j++)
- putchp(' ');
- sprintf(temp, "%d x %d", ansi_value[1], ansi_value[0]);
- ptextln(temp);
-
- }
- }
- menu_prompt();
- ptext("/status r->repeat test, <return> to continue > ");
- return wait_here();
-}
-
-/*
-** request_cfss()
-**
-** Request Control function selection or settings
-*/
-static int
-request_cfss(void)
-{
- int i, j, k, l, ch;
- char *s;
-
- put_clear();
- ptextln("Request Expected Received");
- put_crlf();
- for (i = 0; rqss[i].text; i++) {
- ptext(rqss[i].text);
- j = strlen(rqss[i].text) + strlen(rqss[i].expect);
- putchp(' ');
- for (j++; j < 40; j++)
- putchp(' ');
- ptext(rqss[i].expect);
- putchp(' ');
- tc_putp(rqss[i].set_mode);
- sprintf(temp, "\033P$q%s\033\\", rqss[i].request);
- tc_putp(temp);
- read_ansi();
- tc_putp(rqss[i].reset_mode);
- putchp(' ');
- for (j = 0; ansi_buf[j]; j++) {
- if (ansi_buf[j] == 'r') {
- 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';
- s = expand((const char *)&ansi_buf[j]);
- if (char_count + expand_chars >= columns)
- put_str("\r\n ");
- put_str(s);
- }
- }
- put_crlf();
- }
- /* calculate the valid attributes */
- ptext("Valid attributes: 0");
- j = 0;
- for (i = 1; i < 20; i++) {
- sprintf(temp, "\033[0;%dm\033P$qm\033\\", i);
- tc_putp(temp);
- (void) valid_mode('m');
- if (ape > 0) {
- j = i;
- sprintf(temp, "\033[0m; %d", i);
- tc_putp(temp);
- }
- }
- put_crlf();
- /* calculate how many parameters can be sent */
- ptext("Max number of parameters: ");
- sprintf(temp, "%dm\033P$qm\033\\", j);
- l = -1;
- if (j > 0)
- for (l = 1; l < 33; l++) {
- tc_putp("\033[0");
- for (ch = 1; ch <= l; ch++)
- put_this(';');
- tc_putp(temp);
- (void) valid_mode('m');
- if (ape == 0)
- break;
- }
- tc_putp("\033[m");
- if (l >= 0) {
- sprintf(temp, "%d", l);
- ptext(temp);
- } else
- ptext("unknown");
- put_crlf();
- return wait_here();
-}
-
-/*
-** mode_display(puc, mode, initial, set, reset)
-**
-** print the mode display entry
-*/
-static void
-mode_display(const char *p, int n, int c, char s, char r)
-{
- int k;
-
- sprintf(temp, "%s%d (%c, %c, %c)", p, n, c, s, r);
- k = strlen(temp);
- if (char_count + k >= columns)
- put_crlf();
- for (; k < 14; k++)
- putchp(' ');
- put_str(temp);
-}
-
-/*
-** terminal_state()
-**
-** test DECRQM status reports
-*/
-static void
-terminal_state(void)
-{
- static const char *puc[] = {"", "<", "=", ">", "?", 0};
-
- int i, j, k, l, modes_found;
- char *s;
- char buf[256], tms[256];
- int mode_puc[MAX_MODES], mode_number[MAX_MODES];
- char set_value[MAX_MODES], reset_value[MAX_MODES];
- char current_value[MAX_MODES];
-
- ptext("Testing terminal mode status. (CSI 0 $ p)");
- tc_putp("\033[0$p");
- modes_found = 0;
- tms[0] = '\0';
- if (valid_mode(('$' << 8) | 'y')) {
- for (i = 0; puc[i]; i++) {
- put_crlf();
- if (i) {
- sprintf(temp, "Private use: %c", puc[i][0]);
- } else {
- strcpy(temp, "Standard modes:");
- }
- k = strlen(temp);
- ptext(temp);
- for (j = 0; j < (int) sizeof(buf); buf[j++] = ' ')
- ;
- for (j = l = 0; j < 255 && j - l < 50; j++) {
- sprintf(temp, "\033[%s%d$p", puc[i], j);
- tc_putp(temp);
- if (!valid_mode(('$' << 8) | 'y')) {
- /* not valid, save terminating value */
- s = expand((const char *)ansi_buf);
- sprintf(tms, "%s%s%d %s ", tms,
- puc[i], j, s);
- break;
- }
- if (private_use != puc[i][0])
- break;
- if (ansi_value[0] != j)
- break;
- if (ansi_value[1]) {
- l = j;
- if (k > 70) {
- buf[k] = '\0';
- put_crlf();
- ptextln(buf);
- for (k = 0; k < (int) sizeof(buf);) {
- buf[k++] = ' ';
- }
- k = 0;
- }
- sprintf(temp, " %d", j);
- ptext(temp);
- k += strlen(temp);
- buf[k - 1] = ansi_value[1] + '0';
- if (modes_found >= MAX_MODES)
- continue;
- current_value[modes_found] =
- ansi_value[1] + '0';
- /* some modes never return */
- if ((i == 0 && j == 13) /* control execution */
- || (puc[i][0] == '?' && j == 2)) /* VT52 */
- set_value[modes_found] =
- reset_value[modes_found] = '-';
- else
- set_value[modes_found] =
- reset_value[modes_found] = ' ';
- mode_puc[modes_found] = i;
- mode_number[modes_found++] = j;
- }
- }
- buf[k] = '\0';
- if (buf[k - 1] != ' ') {
- put_crlf();
- ptext(buf);
- }
- }
-
- if ((i = modes_found) != 0) {
- put_crlf();
- put_crlf();
- if (tms[0]) {
- ptextln(tms);
- }
- ptext("Hit 'Y' to test mode set/reset states: ");
- i = wait_here();
- }
- if (i == 'y' || i == 'Y')
- while (1) {
-#ifdef STATUSFIX
- FILE *fp;
-
-#ifdef TEDANSI
- fp = fopen("ted.ansi", "w");
-#else
- fp = fopen("/dev/console", "w");
-#endif
-#endif
- for (i = j = 0; j < modes_found; j = ++i >> 1) {
- if (set_value[j] == '-')
- continue;
- k = (current_value[j] ^ i) & 1;
- sprintf(temp, "\033[%s%d%c\033[%s%d$p",
- puc[mode_puc[j]], mode_number[j],
- k ? 'l' : 'h',
- puc[mode_puc[j]], mode_number[j]);
-#ifdef STATUSFIX
- if (fp) {
- fprintf(fp, "%s\n", expand(temp));
- fflush(fp);
- }
-#endif
- tc_putp(temp);
- if (!valid_mode(('$' << 8) | 'y'))
- continue;
- if (k) {
- reset_value[j] = ansi_value[1] + '0';
- } else {
- set_value[j] = ansi_value[1] + '0';
- }
- }
- put_str("\033[30l"); /* added for GORT bug
- (WY-185) */
-#ifdef STATUSFIX
- if (fp)
- fclose(fp);
-#endif
- tty_set();
- /* print the results */
- put_clear();
- putln("mode (initial, set, reset)");
- for (j = 0; j < modes_found; j++) {
- mode_display(puc[mode_puc[j]], mode_number[j],
- current_value[j], set_value[j], reset_value[j]);
- }
- ptext("\n\nHit 'R' to repeat test. 'S' to sort results: ");
- i = wait_here();
- if (i == 's' || i == 'S') { /* print the same stuff,
- sorted by
- current_value */
- put_crlf();
- for (i = '1'; i <= '4'; i++) {
- for (j = 0; j < modes_found; j++) {
- if (current_value[j] == i)
- mode_display(puc[mode_puc[j]],
- mode_number[j], current_value[j],
- set_value[j], reset_value[j]);
- }
- }
- ptext("\n\nHit 'R' to repeat test: ");
- i = wait_here();
- }
- if (i != 'r' && i != 'R')
- break;
- tty_raw(1, char_mask);
- }
- } else {
- tty_set();
- }
-}
-
-
-/*
-** ansi_report_help()
-**
-** Display the informational data for the ANSI report test.
-*/
-static void
-ansi_report_help(void)
-{
- ptext("Begin ANSI status report testing. ");
- ptext(" Parity bit set will be displayed in reverse video. ");
- ptext(" If the terminal hangs, hit any alphabetic key. ");
- ptextln(" Use n to continue testing. Use q to quit.");
- put_crlf();
-}
-
-/*
-** test_ansi_reports()
-**
-** Test the ANSI status report functions
-*/
-void
-tools_status(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i;
-
- put_clear();
- ansi_report_help();
- tty_raw(1, char_mask);
-
- do {
- i = read_reports();
- if (i != 'r' && i != 'R') {
- *ch = i;
- return;
- }
- } while (i);
-
- if (terminal_class >= 63) {
- do {
- i = request_cfss();
- } while (i == 'r' || i == 'R');
- *ch = i;
- terminal_state();
- } else {
- tty_set();
- }
-}
-
-
-/*
-** display_sgr()
-**
-** Test a range of ANSI sgr attributes
-** puc -> Private Use Character
-*/
-static void
-display_sgr(int puc)
-{
- int k;
-
- temp[0] = puc;
- temp[1] = '\0';
- for (k = 0; k < 80; k++) {
- if (char_count + 8 > 80)
- put_crlf();
- else if (char_count + 8 > columns)
- put_crlf();
- else if (k > 0)
- printf(" ");
- printf("\033[%s%dmMode %2d\033[0m", temp, k, k);
- char_count += 8;
- if (puc == '\0') {
- if (k == 19)
- printf("\033[10m");
- if (k == 39)
- printf("\033[37m");
- if (k == 49)
- printf("\033[40m");
- }
- }
- put_crlf();
- if (puc == '<')
- printf("\033[<1m");
- else if (puc)
- printf("\033[%s0m", temp);
- set_attr(0);
-}
-
-/*
-** print_sgr20(on, off)
-**
-** print the sgr line for sgr20()
-*/
-static void
-print_sgr20(int on, int off)
-{
- if (char_count > columns - 13) {
- put_crlf();
- } else if (char_count) {
- put_str(" ");
- }
- char_count += 11;
- printf("%d/%d \033[%dmon\033[%dm off\033[0m", on, off, on, off);
-}
-
-/*
-** sgr20(void)
-**
-** display the enter/exit attributes 1-9 and 20-29
-*/
-static void
-sgr20(void)
-{
- int k;
-
- put_crlf();
- ptextln("Test enter/exit attributes 1-9 and 21-29.");
- for (k = 1; k < 10; k++) {
- print_sgr20(k, k + 20);
- }
- print_sgr20(1, 22); /* bold */
- print_sgr20(2, 22); /* dim */
- print_sgr20(8, 22); /* blank */
- printf("\033[0m");
- set_attr(0);
-}
-
-/*
-** tools_sgr(testlist, state, ch)
-**
-** Run the ANSI graphics rendition mode tool
-** Return the last character typed.
-*/
-void
-tools_sgr(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int k;
-
- put_clear();
- for (k = 0;;) {
- display_sgr(k);
- put_crlf();
- menu_prompt();
- ptext("/sgr Enter =><?r [<cr>] > ");
- k = wait_here();
- if ((k == 'r') || (k == 'R')) {
- k = 0;
- } else if ((k < '<') || (k > '?')) {
- break;
- }
- }
- sgr20();
-
- put_newlines(2);
- *ch = REQUEST_PROMPT;
-}
-
-/*****************************************************************************
- *
- * Test ANSI graphics
- *
- *****************************************************************************/
-/*
-** select_bank(bank)
-**
-** select a graphics character set for ANSI terminals
-*/
-static void
-select_bank(char *bank)
-{
- tc_putp(bank);
- switch (bank[1] & 3) {
- case 0:
- putchp('O' & 0x1f); /* control O */
- break;
- case 1:
- putchp('N' & 0x1f); /* control N */
- tc_putp("\033~");
- break;
- case 2:
- tc_putp("\033n\033}");
- break;
- case 3:
- tc_putp("\033o\033|");
- break;
- }
-}
-
-/*
-** show_characters(bank, bias)
-**
-** print the ANSI graphics characters
-*/
-static void
-show_characters(char *bank, int bias)
-{
- int i;
-
- sprintf(temp, "G%d GL ", bank[1] & 3);
- ptext(temp);
- select_bank(bank);
- for (i = ' '; i < 0x80; i++) {
- if (char_count >= columns ||
- (i != ' ' && (i & 31) == 0))
- put_str("\n ");
- putchp(i + bias);
- }
- select_bank(default_bank);
- put_str(" DEL <");
- select_bank(bank);
- putchp(0x7f + bias);
- select_bank(default_bank);
- putchp('>');
- put_crlf();
- put_crlf();
-}
-
-
-/* ANSI graphics test
- 94 96 character sets
- G0 ( ,
- G1 ) -
- G2 * .
- G3 + /
-
-Standard Definitions
- A UK
- B US ASCII
-
-Dec extended definitions
- 0 Special graphics
-
- */
-
-/*
-** tools_charset(testlist, state, ch)
-**
-** Run the ANSI alt-charset mode tool
-*/
-void
-tools_charset(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *chp GCC_UNUSED)
-{
- int j, ch;
- char bank[32];
-
- put_clear();
- ptext("Enter the bank ()*+,-./ followed by the character set");
- ptext(" 0123456789:;<=>? for private use, and");
- ptextln(" @A...Z[\\]^_`a...z{|}~ for standard sets.");
- strcpy(bank, "\033)0");
- for (; bank[0];) {
- put_crlf();
- show_characters(bank, 0);
-
- /* G0 will not print in GR */
- if (bank[1] & 3) {
- show_characters(bank, 0x80);
- }
- ptext("bank+set> ");
- for (j = 1; (ch = getchp(char_mask)); j++) {
- if (ch == EOF)
- break;
- putchp(ch);
- if (j == 1 && ch > '/')
- j++;
- bank[j] = ch;
- if (ch < ' ' || ch > '/')
- break;
- if (j + 1 >= (int) sizeof(bank))
- break;
- }
- if (j == 1)
- break;
- if (bank[j] < '0' || bank[j] > '~')
- break;
- bank[j + 1] = '\0';
- }
- put_crlf();
-}
diff --git a/ncurses-5.3/tack/charset.c b/ncurses-5.3/tack/charset.c
deleted file mode 100644
index 3b08f35..0000000
--- a/ncurses-5.3/tack/charset.c
+++ /dev/null
@@ -1,711 +0,0 @@
-/*
-** Copyright (C) 1991, 1997-2000 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- Menu definitions for alternate character set and SGR tests.
-*/
-
-static void charset_bel(struct test_list *t, int *state, int *ch);
-static void charset_flash(struct test_list *t, int *state, int *ch);
-static void charset_civis(struct test_list *t, int *state, int *ch);
-static void charset_cvvis(struct test_list *t, int *state, int *ch);
-static void charset_cnorm(struct test_list *t, int *state, int *ch);
-static void charset_hs(struct test_list *t, int *state, int *ch);
-static void charset_status(struct test_list *t, int *state, int *ch);
-static void charset_dsl(struct test_list *t, int *state, int *ch);
-static void charset_enacs(struct test_list *t, int *state, int *ch);
-static void charset_smacs(struct test_list *t, int *state, int *ch);
-static void charset_attributes(struct test_list *t, int *state, int *ch);
-static void charset_sgr(struct test_list *t, int *state, int *ch);
-
-struct test_list acs_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT, 3, "bel", 0, 0, charset_bel, 0},
- {MENU_NEXT, 3, "flash", 0, 0, charset_flash, 0},
- {MENU_NEXT, 3, "civis", 0, 0, charset_civis, 0},
- {MENU_NEXT, 3, "cvvis", 0, 0, charset_cvvis, 0},
- {MENU_NEXT, 3, "cnorm", 0, 0, charset_cnorm, 0},
- {MENU_NEXT, 3, "hs", 0, 0, charset_hs, 0},
- {MENU_NEXT, 3, "tsl) (fsl) (wsl", "hs", 0, charset_status, 0},
- {MENU_NEXT, 3, "dsl", "hs", 0, charset_dsl, 0},
- {MENU_NEXT, 0, "acsc) (enacs) (smacs) (rmacs", 0, 0, charset_enacs, 0},
- {MENU_NEXT, 0, "smacs) (rmacs", 0, 0, charset_smacs, 0},
- {MENU_NEXT, 11, 0, 0, 0, charset_attributes, 0},
- {MENU_NEXT, 11, "sgr) (sgr0", "ma", 0, charset_sgr, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-const struct mode_list alt_modes[] = {
- {"normal", "(sgr0)", "(sgr0)", 1},
- {"standout", "(smso)", "(rmso)", 2},
- {"underline", "(smul)", "(rmul)", 4},
- {"reverse", "(rev)", "(sgr0)", 8},
- {"blink", "(blink)", "(sgr0)", 16},
- {"dim", "(dim)", "(sgr0)", 32},
- {"bold", "(bold)", "(sgr0)", 64},
- {"invis", "(invis)", "(sgr0)", 128},
- {"protect", "(prot)", "(sgr0)", 256},
- {"altcharset", "(smacs)", "(rmacs)", 512}
-};
-
-/* On many terminals the underline attribute is the last scan line.
- This is OK unless the following line is reverse video.
- Then the underline attribute does not show up. The following map
- will reorder the display so that the underline attribute will
- show up. */
-const int mode_map[10] = {0, 1, 3, 4, 5, 6, 7, 8, 9, 2};
-
-struct graphics_pair {
- unsigned char c;
- const char *name;
-};
-
-static struct graphics_pair glyph[] = {
- {'+', "arrow pointing right"},
- {',', "arrow pointing left"},
- {'.', "arrow pointing down"},
- {'0', "solid square block"},
- {'i', "lantern symbol"},
- {'-', "arrow pointing up"},
- {'`', "diamond"},
- {'a', "checker board (stipple)"},
- {'f', "degree symbol"},
- {'g', "plus/minus"},
- {'h', "board of squares"},
- {'j', "lower right corner"},
- {'k', "upper right corner"},
- {'l', "upper left corner"},
- {'m', "lower left corner"},
- {'n', "plus"},
- {'o', "scan line 1"},
- {'p', "scan line 3"},
- {'q', "horizontal line"},
- {'r', "scan line 7"},
- {'s', "scan line 9"},
- {'t', "left tee (|-)"},
- {'u', "right tee (-|)"},
- {'v', "bottom tee(_|_)"},
- {'w', "top tee (T)"},
- {'x', "vertical line"},
- {'y', "less/equal"},
- {'z', "greater/equal"},
- {'{', "Pi"},
- {'|', "not equal"},
- {'}', "UK pound sign"},
- {'~', "bullet"},
- {'\0', "\0"}
-};
-
-/*
-** charset_hs(test_list, status, ch)
-**
-** (hs) test Has status line
-*/
-static void
-charset_hs(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (has_status_line != 1) {
- ptext("(hs) Has-status line is not defined. ");
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** charset_status(test_list, status, ch)
-**
-** (tsl) (fsl) (wsl) test Status line
-*/
-static void
-charset_status(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, max;
- char *s;
- static char m[] = "*** status line *** 123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.";
-
- if (has_status_line != 1) {
- return;
- }
- put_clear();
- max = width_status_line == -1 ? columns : width_status_line;
- sprintf(temp, "Terminal has status line of %d characters", max);
- ptextln(temp);
-
- put_str("This line s");
- s = tparm(to_status_line, 0);
- tc_putp(s);
- for (i = 0; i < max; i++)
- putchp(m[i]);
- tc_putp(from_status_line);
- putln("hould not be broken.");
- ptextln("If the previous line is not a complete sentence then (tsl) to-status-line, (fsl) from-status-line, or (wsl) width-of-status-line is incorrect." );
- generic_done_message(t, state, ch);
-}
-
-/*
-** charset_dsl(test_list, status, ch)
-**
-** (dsl) test Disable status line
-*/
-static void
-charset_dsl(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (has_status_line != 1) {
- return;
- }
- if (dis_status_line) {
- ptextln("Disable status line (dsl)");
- tc_putp(dis_status_line);
- ptext("If you can still see the status line then (dsl) disable-status-line has failed. ");
- } else {
- ptext("(dsl) Disable-status-line is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-
-void
-eat_cookie(void)
-{ /* put a blank if this is not a magic cookie
- terminal */
- if (magic_cookie_glitch < 1)
- putchp(' ');
-}
-
-
-void
-put_mode(char *s)
-{ /* send the attribute string (with or without
- % execution) */
- tc_putp(tparm(s)); /* allow % execution */
-}
-
-
-void
-set_attr(int a)
-{ /* set the attribute from the bits in a */
- int i, b[32];
-
- if (magic_cookie_glitch > 0) {
- char_count += magic_cookie_glitch;
- }
- if (a == 0 && exit_attribute_mode) {
- put_mode(exit_attribute_mode);
- return;
- }
- for (i = 0; i < 31; i++) {
- b[i] = (a >> i) & 1;
- }
- tc_putp(tparm(set_attributes, b[1], b[2], b[3], b[4], b[5],
- b[6], b[7], b[8], b[9]));
-}
-
-/*
-** charset_sgr(test_list, status, ch)
-**
-** (sgr) test Set Graphics Rendition
-*/
-static void
-charset_sgr(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!set_attributes) {
- ptext("(sgr) Set-graphics-rendition is not defined. ");
- generic_done_message(t, state, ch);
- return;
- }
- if (!exit_attribute_mode) {
- ptextln("(sgr0) Set-graphics-rendition-zero is not defined.");
- /* go ahead and test anyway */
- }
- ptext("Test video attributes (sgr)");
-
- for (i = 0; i < (int) (sizeof(alt_modes) / sizeof(struct mode_list));
- i++) {
- put_crlf();
- sprintf(temp, "%d %-20s", i, alt_modes[i].name);
- put_str(temp);
- set_attr(alt_modes[i].number);
- sprintf(temp, "%s", alt_modes[i].name);
- put_str(temp);
- set_attr(0);
- }
-
- putln("\n\nDouble mode test");
- for (i = 0; i <= 9; i++) {
- sprintf(temp, " %2d ", mode_map[i]);
- put_str(temp);
- }
- for (i = 0; i <= 9; i++) {
- put_crlf();
- sprintf(temp, "%d", mode_map[i]);
- put_str(temp);
- for (j = 0; j <= 9; j++) {
- eat_cookie();
- set_attr((1 << mode_map[i]) | (1 << mode_map[j]));
- put_str("Aa");
- set_attr(0);
- if (j < 9)
- eat_cookie();
- }
- }
- put_crlf();
-
-#ifdef max_attributes
- if (max_attributes >= 0) {
- sprintf(temp, "(ma) Maximum attributes %d ", max_attributes);
- ptext(temp);
- }
-#endif
- generic_done_message(t, state, ch);
-}
-
-/*
-** test_one_attr(mode-number, begin-string, end-string)
-**
-** Display one attribute line.
-*/
-static void
-test_one_attr(
- int n,
- char *begin_mode,
- char *end_mode)
-{
- int i;
-
- sprintf(temp, "%-10s %s ", alt_modes[n].name, alt_modes[n].begin_mode);
- ptext(temp);
- for (; char_count < 19;) {
- putchp(' ');
- }
- if (begin_mode) {
- putchp('.');
- put_mode(begin_mode);
- put_str(alt_modes[n].name);
- for (i = strlen(alt_modes[n].name); i < 13; i++) {
- putchp(' ');
- }
- if (end_mode) {
- put_mode(end_mode);
- sprintf(temp, ". %s", alt_modes[n].end_mode);
- } else {
- set_attr(0);
- strcpy(temp, ". (sgr)");
- }
- ptextln(temp);
- } else {
- for (i = 0; i < magic_cookie_glitch; i++)
- putchp('*');
- put_str("*** missing ***");
- for (i = 0; i < magic_cookie_glitch; i++)
- putchp('*');
- put_crlf();
- }
-}
-
-/*
-** charset_attributes(test_list, status, ch)
-**
-** Test SGR
-*/
-static void
-charset_attributes(
- struct test_list *t,
- int *state,
- int *ch)
-{
- putln("Test video attributes");
- test_one_attr(1, enter_standout_mode, exit_standout_mode);
- test_one_attr(2, enter_underline_mode, exit_underline_mode);
- test_one_attr(9, enter_alt_charset_mode, exit_alt_charset_mode);
- if (!exit_attribute_mode && !set_attributes) {
- ptextln("(sgr0) exit attribute mode is not defined.");
- generic_done_message(t, state, ch);
- return;
- }
- test_one_attr(3, enter_reverse_mode, exit_attribute_mode);
- test_one_attr(4, enter_blink_mode, exit_attribute_mode);
- test_one_attr(5, enter_dim_mode, exit_attribute_mode);
- test_one_attr(6, enter_bold_mode, exit_attribute_mode);
- test_one_attr(7, enter_secure_mode, exit_attribute_mode);
- test_one_attr(8, enter_protected_mode, exit_attribute_mode);
- generic_done_message(t, state, ch);
-}
-
-#define GLYPHS 256
-
-/*
-** charset_smacs(test_list, status, ch)
-**
-** display all possible acs characters
-** (smacs) (rmacs)
-*/
-static void
-charset_smacs(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, c;
-
- if (enter_alt_charset_mode) {
- put_clear();
- ptextln("The following characters are available. (smacs) (rmacs)");
- for (i = ' '; i <= '`'; i += 32) {
- put_crlf();
- put_mode(exit_alt_charset_mode);
- for (c = 0; c < 32; c++) {
- putchp(c + i);
- }
- put_crlf();
- put_mode(enter_alt_charset_mode);
- for (c = 0; c < 32; c++) {
- putchp(c + i);
- }
- put_mode(exit_alt_charset_mode);
- put_crlf();
- }
- put_mode(exit_alt_charset_mode);
- put_crlf();
- generic_done_message(t, state, ch);
- }
-}
-
-
-static void
-test_acs(
- int attr)
-{ /* alternate character set */
- int i, j;
- char valid_glyph[GLYPHS];
- char acs_table[GLYPHS];
- static unsigned char vt100[] = "`afgjklmnopqrstuvwxyz{|}~";
-
- line_count = 0;
- for (i = 0; i < GLYPHS; i++) {
- valid_glyph[i] = FALSE;
- acs_table[i] = i;
- }
- if (acs_chars) {
- sprintf(temp, "Alternate character set map: %s",
- expand(acs_chars));
- putln(temp);
- for (i = 0; acs_chars[i]; i += 2) {
- if (acs_chars[i + 1] == 0) {
- break;
- }
- for (j = 0;; j++) {
- if (glyph[j].c == (unsigned char) acs_chars[i]) {
- acs_table[glyph[j].c] = acs_chars[i + 1];
- valid_glyph[glyph[j].c] = TRUE;
- break;
- }
- if (glyph[j].name[0] == '\0') {
- if (isgraph(UChar(acs_chars[i]))) {
- sprintf(temp, " %c",
- acs_chars[i]);
- } else {
- sprintf(temp, " 0x%02x",
- UChar(acs_chars[i]));
- }
- strcpy(&temp[5], " *** has no mapping ***");
- putln(temp);
- break;
- }
- }
- }
- } else {
- ptextln("acs_chars not defined (acsc)");
- /* enable the VT-100 graphics characters (default) */
- for (i = 0; vt100[i]; i++) {
- valid_glyph[vt100[i]] = TRUE;
- }
- }
- if (attr) {
- set_attr(attr);
- }
- _nc_init_acs(); /* puts 'ena_acs' and incidentally links acs_map[] */
- for (i = 0; glyph[i].name[0]; i++) {
- if (valid_glyph[glyph[i].c]) {
- put_mode(enter_alt_charset_mode);
- put_this(acs_table[glyph[i].c]);
- char_count++;
- put_mode(exit_alt_charset_mode);
- if (magic_cookie_glitch >= 1) {
- sprintf(temp, " %-30.30s", glyph[i].name);
- put_str(temp);
- if (char_count + 33 >= columns)
- put_crlf();
- } else {
- sprintf(temp, " %-24.24s", glyph[i].name);
- put_str(temp);
- if (char_count + 26 >= columns)
- put_crlf();
- }
- if (line_count >= lines) {
- (void) wait_here();
- put_clear();
- }
- }
- }
- if (char_count > 1) {
- put_crlf();
- }
-#ifdef ACS_ULCORNER
- maybe_wait(5);
- put_mode(enter_alt_charset_mode);
- put_this(ACS_ULCORNER);
- put_this(ACS_TTEE);
- put_this(ACS_URCORNER);
- put_this(ACS_ULCORNER);
- put_this(ACS_HLINE);
- put_this(ACS_URCORNER);
- char_count += 6;
- put_mode(exit_alt_charset_mode);
- put_crlf();
- put_mode(enter_alt_charset_mode);
- put_this(ACS_LTEE);
- put_this(ACS_PLUS);
- put_this(ACS_RTEE);
- put_this(ACS_VLINE);
- if (magic_cookie_glitch >= 1)
- put_this(' ');
- else {
- put_mode(exit_alt_charset_mode);
- put_this(' ');
- put_mode(enter_alt_charset_mode);
- }
- put_this(ACS_VLINE);
- char_count += 6;
- put_mode(exit_alt_charset_mode);
- put_str(" Here are 2 boxes");
- put_crlf();
- put_mode(enter_alt_charset_mode);
- put_this(ACS_LLCORNER);
- put_this(ACS_BTEE);
- put_this(ACS_LRCORNER);
- put_this(ACS_LLCORNER);
- put_this(ACS_HLINE);
- put_this(ACS_LRCORNER);
- char_count += 6;
- put_mode(exit_alt_charset_mode);
- put_crlf();
-#endif
-}
-
-/*
-** charset_bel(test_list, status, ch)
-**
-** (bel) test Bell
-*/
-static void
-charset_bel(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (bell) {
- ptextln("Testing bell (bel)");
- tc_putp(bell);
- ptext("If you did not hear the Bell then (bel) has failed. ");
- } else {
- ptext("(bel) Bell is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** charset_flash(test_list, status, ch)
-**
-** (flash) test Visual bell
-*/
-static void
-charset_flash(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (flash_screen) {
- ptextln("Testing visual bell (flash)");
- tc_putp(flash_screen);
- ptext("If you did not see the screen flash then (flash) has failed. ");
- } else {
- ptext("(flash) Flash is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** charset_civis(test_list, status, ch)
-**
-** (civis) test Cursor invisible
-*/
-static void
-charset_civis(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (cursor_normal) {
- if (cursor_invisible) {
- ptext("(civis) Turn off the cursor. ");
- tc_putp(cursor_invisible);
- ptext("If you can still see the cursor then (civis) has failed. ");
- } else {
- ptext("(civis) Cursor-invisible is not defined. ");
- }
- generic_done_message(t, state, ch);
- tc_putp(cursor_normal);
- }
-}
-
-/*
-** charset_cvvis(test_list, status, ch)
-**
-** (cvvis) test Cursor very visible
-*/
-static void
-charset_cvvis(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (cursor_normal) {
- if (cursor_visible) {
- ptext("(cvvis) Make cursor very visible. ");
- tc_putp(cursor_visible);
- ptext("If the cursor is not very visible then (cvvis) has failed. ");
- } else {
- ptext("(cvvis) Cursor-very-visible is not defined. ");
- }
- generic_done_message(t, state, ch);
- tc_putp(cursor_normal);
- }
-}
-
-/*
-** charset_cnorm(test_list, status, ch)
-**
-** (cnorm) test Cursor normal
-*/
-static void
-charset_cnorm(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (cursor_normal) {
- ptext("(cnorm) Normal cursor. ");
- tc_putp(cursor_normal);
- ptext("If the cursor is not normal then (cnorm) has failed. ");
- } else {
- ptext("(cnorm) Cursor-normal is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** charset_enacs(test_list, status, ch)
-**
-** test Alternate character set mode and alternate characters
-** (acsc) (enacs) (smacs) (rmacs)
-*/
-static void
-charset_enacs(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int c, i;
-
- if (enter_alt_charset_mode || acs_chars) {
- c = 0;
- while (1) {
- put_clear();
- /*
- for terminals that use separate fonts for
- attributes (such as X windows) the line
- drawing characters must be checked for
- each font.
- */
- if (c >= '0' && c <= '9') {
- test_acs(alt_modes[c - '0'].number);
- set_attr(0);
- } else {
- test_acs(0);
- }
-
- while (1) {
- ptextln("[r] to repeat, [012345789] to test with attributes on, [?] for a list of attributes, anything else to go to next test. ");
- generic_done_message(t, state, ch);
- if (*ch != '?') {
- break;
- }
- for (i = 0; i <= 9; i++) {
- sprintf(temp, " %d %s %s", i, alt_modes[i].begin_mode,
- alt_modes[i].name);
- ptextln(temp);
- }
- }
- if (*ch >= '0' && *ch <= '9') {
- c = *ch;
- } else
- if (*ch != 'r') {
- break;
- }
- }
- } else {
- ptext("(smacs) Enter-alt-char-set-mode and (acsc) Alternate-char-set are not defined. ");
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** charset_can_test()
-**
-** Initialize the can_test data base
-*/
-void
-charset_can_test(void)
-{
- int i;
-
- for (i = 0; i < 9; i++) {
- can_test(alt_modes[i].begin_mode, FLAG_CAN_TEST);
- can_test(alt_modes[i].end_mode, FLAG_CAN_TEST);
- }
-}
diff --git a/ncurses-5.3/tack/color.c b/ncurses-5.3/tack/color.c
deleted file mode 100644
index 3dc1955..0000000
--- a/ncurses-5.3/tack/color.c
+++ /dev/null
@@ -1,767 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Color terminal tests. Has only one entry point: test_color().
- */
-
-static void color_check(struct test_list *, int *, int *);
-static void color_setf(struct test_list *, int *, int *);
-static void color_matrix(struct test_list *, int *, int *);
-static void color_ncv(struct test_list *, int *, int *);
-static void color_ccc(struct test_list *, int *, int *);
-static void color_bce(struct test_list *, int *, int *);
-
-struct test_list color_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT, 2, "colors) (pairs", 0, 0, color_check, 0},
- {MENU_NEXT, 12, "setf) (setb) (scp", 0, 0, color_setf, 0},
- {MENU_NEXT, 24, "op", 0, 0, color_matrix, 0},
- {MENU_NEXT, 16, "ncv", 0, 0, color_ncv, 0},
- {MENU_NEXT, 0, "bce", 0, 0, color_bce, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "ccc) (initc) (initp", "hls op oc", 0, color_ccc, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-#ifndef COLOR_BLACK
-#define COLOR_BLACK 0
-#define COLOR_BLUE 1
-#define COLOR_GREEN 2
-#define COLOR_CYAN 3
-#define COLOR_RED 4
-#define COLOR_MAGENTA 5
-#define COLOR_YELLOW 6
-#define COLOR_WHITE 7
-#endif
-
-struct color_table {
- const char *name;
- int index;
- int r, g, b;
- int h, l, s;
-};
-
-static struct color_table def_colors[8] = {
- {"black ", COLOR_BLACK, 0, 0, 0, 0, 0, 0},
- {"blue ", COLOR_BLUE, 0, 0, 1000, 330, 50, 100},
- {"green ", COLOR_GREEN, 0, 1000, 0, 240, 50, 100},
- {"cyan ", COLOR_CYAN, 0, 1000, 1000, 300, 50, 100},
- {"red ", COLOR_RED, 1000, 0, 0, 120, 50, 100},
- {"magenta", COLOR_MAGENTA, 1000, 0, 1000, 60, 50, 100},
- {"yellow ", COLOR_YELLOW, 1000, 1000, 0, 180, 50, 100},
- {"white ", COLOR_WHITE, 1000, 1000, 1000, 0, 100, 0}
-};
-
-#define MAX_PAIR 256
-static int fg_color[MAX_PAIR] = {COLOR_BLACK, COLOR_BLUE, COLOR_GREEN,
-COLOR_CYAN, COLOR_RED, COLOR_MAGENTA, COLOR_YELLOW, COLOR_WHITE};
-static int bg_color[MAX_PAIR] = {COLOR_BLACK, COLOR_BLACK, COLOR_BLACK,
-COLOR_BLACK, COLOR_BLACK, COLOR_BLACK, COLOR_BLACK, COLOR_BLACK};
-static int pairs_used = 8;
-static int a_bright_color, bright_value;
-static int cookie_monster, color_step, colors_per_line;
-static int R, G, B;
-
-static int
-color_trans(int c)
-{ /* translate or load the color */
- int i;
-
- for (i = 0; i < pairs_used; i++) {
- if (fg_color[i] == c) {
- return i;
- }
- }
- if (!can_change) {
- return 0;
- }
- if (pairs_used > max_colors || pairs_used >= MAX_PAIR) {
- pairs_used = 0;
- ptextln("Ran out of colors");
- }
- fg_color[pairs_used] = c;
- bg_color[pairs_used] = c;
- if (hue_lightness_saturation) {
- tc_putp(tparm(initialize_color, pairs_used,
- def_colors[c].h, def_colors[c].l, def_colors[c].s));
- } else {
- tc_putp(tparm(initialize_color, pairs_used,
- def_colors[c].r, def_colors[c].g, def_colors[c].b));
- }
- return pairs_used++;
-}
-
-static void
-new_color(
- int fg,
- int bg,
- int hungry)
-{ /* change the color to fg and bg. */
- int i;
-
- if (hungry) {
- eat_cookie();
- }
- if (set_a_foreground) {
- /* set ANSI color (setaf) (setab) */
- tc_putp(tparm(set_a_foreground, fg));
- tc_putp(tparm(set_a_background, bg));
- } else if (set_foreground) {
- /* make sure black is zero */
- (void) color_trans(COLOR_BLACK);
- tc_putp(tparm(set_foreground, color_trans(fg)));
- tc_putp(tparm(set_background, color_trans(bg)));
- } else { /* set color pair */
- for (i = 0; i < pairs_used; i++) {
- if (fg_color[i] == fg && bg_color[i] == bg) {
- tc_putp(tparm(set_color_pair, i));
- if (hungry) {
- eat_cookie();
- }
- return;
- }
- }
- if (!can_change) {
- /* try to set just the foreground */
- for (i = pairs_used - 1; i; i--) {
- if (fg_color[i] == fg)
- break;
- }
- tc_putp(tparm(set_color_pair, i));
- if (hungry) {
- eat_cookie();
- }
- return;
- }
- if (pairs_used > max_pairs || pairs_used >= MAX_PAIR) {
- pairs_used = 0;
- ptextln("Ran out of color pairs");
- }
- fg_color[pairs_used] = fg;
- bg_color[pairs_used] = bg;
- if (hue_lightness_saturation) {
- tc_putp(tparm(initialize_pair, pairs_used,
- def_colors[fg].h, def_colors[fg].l, def_colors[fg].s,
- def_colors[bg].h, def_colors[bg].l, def_colors[bg].s));
- } else {
- tc_putp(tparm(initialize_pair, pairs_used,
- def_colors[fg].r, def_colors[fg].g, def_colors[fg].b,
- def_colors[bg].r, def_colors[bg].g, def_colors[bg].b));
- }
- tc_putp(tparm(set_color_pair, pairs_used));
- pairs_used++;
- }
- if (hungry) {
- eat_cookie();
- }
-}
-
-
-static void
-set_color_step(void)
-{ /* set the color_step for the (ccc) display */
- int i;
-
- for (i = 2; i < 1000; i++) {
- if ((i * i * i) >= max_colors) {
- break;
- }
- }
- color_step = 1000 / (i - 1);
-}
-
-
-static void
-rgb_2_hls(int r, int g, int b, int *h, int *l, int *s)
-{ /* convert RGB to HLS system */
- int min, max, t;
-
- if ((min = g < r ? g : r) > b) {
- min = b;
- }
- if ((max = g > r ? g : r) < b) {
- max = b;
- }
-
- /* calculate lightness */
- *l = (min + max) / 20;
-
- if (min == max) { /* black, white and all shades of gray */
- *h = 0;
- *s = 0;
- return;
- }
- /* calculate saturation */
- if (*l < 50) {
- *s = ((max - min) * 100) / (max + min);
- } else {
- *s = ((max - min) * 100) / (2000 - max - min);
- }
-
- /* calculate hue */
- if (r == max) {
- t = 120 + ((g - b) * 60) / (max - min);
- } else if (g == max) {
- t = 240 + ((b - r) * 60) / (max - min);
- } else {
- t = 360 + ((r - g) * 60) / (max - min);
- }
- *h = t % 360;
-}
-
-
-static void
-send_color(int p, int r, int g, int b)
-{ /* send the initialize_color (initc) command */
- int h, l, s;
-
- if (hue_lightness_saturation) {
- rgb_2_hls(r, g, b, &h, &l, &s);
- tc_putp(tparm(initialize_color, p, h, l, s));
- } else {
- tc_putp(tparm(initialize_color, p, r, g, b));
- }
-}
-
-
-static void
-send_pair(int p, int fr, int fg, int fb, int br, int bg, int bb)
-{ /* send the initialize_pair (initp) command */
- int fh, fl, fs, bh, bl, bs;
-
- if (hue_lightness_saturation) {
- rgb_2_hls(fr, fg, fb, &fh, &fl, &fs);
- rgb_2_hls(br, bg, bb, &bh, &bl, &bs);
- tc_putp(tparm(initialize_pair, p, fh, fl, fs, bh, bl, bs));
- } else {
- tc_putp(tparm(initialize_pair, p, fr, fg, fb, bb, bg, bb));
- }
-}
-
-
-static int
-load_palette(int n)
-{ /* load the color palette */
- int rgb;
-
- for (;;) {
- if (pairs_used >= n) {
- return FALSE;
- }
- if (set_a_foreground || set_foreground) {
- if (pairs_used >= max_colors) {
- return FALSE;
- }
- send_color(pairs_used, R, G, B);
- rgb = R + G + B;
- if (rgb > bright_value) {
- bright_value = rgb;
- a_bright_color = pairs_used;
- }
- } else {
- if (pairs_used >= max_pairs) {
- return FALSE;
- }
- if (pairs_used == 0) {
- send_pair(pairs_used, 1000, 1000, 1000, R, G, B);
- } else {
- send_pair(pairs_used, R, G, B, R, G, B);
- }
- }
- pairs_used++;
- if ((B += color_step) > 1000) {
- B = 0;
- if ((G += color_step) > 1000) {
- G = 0;
- if ((R += color_step) > 1000) {
- return TRUE;
- }
- }
- }
- }
-}
-
-
-static int
-rainbow(int n)
-{ /* print the programmable color display */
- int i, c, d, palette_full, initial_pair;
- static const struct {
- const char *name;
- char ch;
- } splat[] = {
- {"Bg normal", ' '},
- {"Fg normal", ' '},
- {0, 0}
- };
-
- if ((set_a_foreground || set_foreground)
- ? pairs_used >= max_colors
- : pairs_used >= max_pairs) {
- ptext("New palette: ");
- (void) wait_here();
- initial_pair = pairs_used = 1;
- bright_value = 0;
- } else if (line_count + 3 >= lines) {
- ptext("Go: ");
- (void) wait_here();
- put_clear();
- initial_pair = pairs_used = 1;
- bright_value = 0;
- n++;
- } else {
- initial_pair = pairs_used;
- n += initial_pair;
- }
- palette_full = load_palette(n);
- for (d = 0; splat[d].name; d++) {
- c = splat[d].ch;
- if (d == 1) {
- put_mode(enter_reverse_mode);
- }
- for (i = initial_pair; i < n; i++) {
- if (i >= pairs_used) {
- break;
- }
- if (set_a_foreground) {
- if (i >= max_colors) {
- break;
- }
- tc_putp(tparm(set_a_foreground, i));
- tc_putp(tparm(set_a_background, i));
- } else if (set_foreground) {
- if (i >= max_colors) {
- break;
- }
- tc_putp(tparm(set_foreground, i));
- tc_putp(tparm(set_background, i));
- } else {
- if (i >= max_pairs) {
- break;
- }
- tc_putp(tparm(set_color_pair, i));
- }
- putchp(c);
- }
- if (d == 1) {
- put_mode(exit_attribute_mode);
- }
- if (set_a_foreground) {
- tc_putp(tparm(set_a_foreground, a_bright_color));
- tc_putp(tparm(set_a_background, 0));
- } else if (set_foreground) {
- tc_putp(tparm(set_foreground, a_bright_color));
- tc_putp(tparm(set_background, 0));
- } else {
- tc_putp(tparm(set_color_pair, 0));
- }
- put_str(" ");
- put_str(splat[d].name);
- put_crlf();
- }
- return palette_full;
-}
-
-
-static void
-ncv_display(int m)
-{ /* print the no_color_video (ncv) test line */
- putchp('0' + m);
- putchp(' ');
- eat_cookie();
- set_attr(1 << m);
- sprintf(temp, "%-11s", alt_modes[m].name);
- put_str(temp);
-
- new_color(COLOR_BLUE, COLOR_BLACK, TRUE);
- put_str("blue");
-
- new_color(COLOR_BLACK, COLOR_GREEN, TRUE);
- put_str("green");
-
- new_color(COLOR_WHITE, COLOR_BLACK, TRUE);
- put_str(alt_modes[m].name);
- eat_cookie();
- set_attr(0);
- put_crlf();
-}
-
-
-static void
-dump_colors(void)
-{ /* display the colors in some esthetic
- pattern */
- static int xmap[8] = {0, 3, 4, 7, 1, 2, 5, 6};
- int i, j, k, xi, xj, width, p, cs;
- int found_one;
-
- cs = color_step <= 125 ? 125 : color_step;
- width = (1000 / cs) + 1;
- for (xi = 0; xi < 16; xi++) {
- i = (xi & 8) ? xi ^ 15 : xi;
- R = i * cs;
- if (R <= 1000) {
- found_one = FALSE;
- for (xj = 0; xj < 32; xj++) {
- j = ((xj & 8) ? xj ^ 15 : xj) & 7;
- k = xmap[((xi >> 1) & 4) + (xj >> 3)];
- G = j * cs;
- B = k * cs;
- if (G <= 1000 && B <= 1000) {
- p = (k * width + j) * width + i;
- if (set_a_background) {
- if (p >= max_colors) {
- continue;
- }
- send_color(p, R, G, B);
- tc_putp(tparm(set_a_background, p));
- } else if (set_background) {
- if (p >= max_colors) {
- continue;
- }
- send_color(p, R, G, B);
- tc_putp(tparm(set_background, p));
- } else {
- if (p >= max_pairs) {
- continue;
- }
- send_pair(p, R, G, B, R, G, B);
- tc_putp(tparm(set_color_pair, p));
- }
- found_one = TRUE;
- putchp(' ');
- putchp(' ');
- }
- }
- if (found_one) {
- put_crlf();
- }
- }
- }
-}
-
-/*
-** color_check(test_list, status, ch)
-**
-** test (colors) and (pairs)
-*/
-static void
-color_check(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (max_colors <= 0 && max_pairs <= 0) {
- ptext("This is not a color terminal; (colors) and (pairs) are missing. ");
- *state |= MENU_STOP;
- } else {
- sprintf(temp, "This terminal can display %d colors and %d color pairs. (colors) (pairs)",
- max_colors, max_pairs);
- ptextln(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_setf(test_list, status, ch)
-**
-** test (setf) (setb) and (scp)
-*/
-static void
-color_setf(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (max_colors <= 0 && max_pairs <= 0) {
- ptext("This is not a color terminal; (colors) and (pairs) are missing. ");
- generic_done_message(t, state, ch);
- *state |= MENU_STOP;
- return;
- }
- if ((set_a_foreground == NULL || set_a_background == NULL)
- && (set_foreground == NULL || set_background == NULL)
- && set_color_pair == NULL) {
- ptextln("Both set foreground (setaf/setf) and set color pair (scp) are not present.");
- if (!set_a_background || !set_background) {
- ptextln("(setab/setb) set background not present");
- }
- ptext("These must be defined for color testing. ");
- generic_done_message(t, state, ch);
- *state |= MENU_STOP;
- return;
- }
- /* initialize the color palette */
- pairs_used = max_colors >= 8 ? 8 : max_colors;
- if (can_change) {
- tc_putp(orig_colors);
- }
- tc_putp(tparm(orig_pair));
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
-
- ptextln("(setf) (setb) (scp) The following colors are predefined:");
- ptextln("\n Foreground Background");
- put_crlf();
- j = max_colors > 8 ? 8 : max_colors;
- /*
- the black on white test is the same as the white on black test.
- */
- for (i = 1; i < j; i++) {
- putchp('0' + def_colors[i].index);
- putchp(' ');
- sprintf(temp, " %s ", def_colors[i].name);
-
- new_color(def_colors[i].index, COLOR_BLACK, TRUE);
- put_str(temp);
-
- new_color(COLOR_BLACK, COLOR_BLACK, TRUE);
- put_str(" ");
-
- new_color(COLOR_BLACK, def_colors[i].index, TRUE);
- put_str(temp);
-
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
- put_crlf();
- }
- put_crlf();
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_matrix(test_list, status, ch)
-**
-** test (pairs) (op)
-*/
-static void
-color_matrix(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, matrix_size, matrix_area, brightness;
-
- matrix_size = max_colors > 8 ? 8 : max_colors;
-
- sprintf(temp, "(pairs) There are %d color pairs.", max_pairs);
- ptextln(temp);
-
- for ( ; matrix_size; matrix_size--) {
- if (matrix_size * matrix_size <= max_pairs) {
- break;
- }
- }
- matrix_area = matrix_size * matrix_size;
- for (brightness = 0; brightness < 2; brightness++) {
- put_crlf();
- sprintf(temp,
- "%dx%d matrix of foreground/background colors, bright *o%s*",
- matrix_size, matrix_size, brightness ? "n" : "ff");
- put_str(temp);
-
- put_str("\n ");
- for (i = 0; i < matrix_size; i++) {
- (void) sprintf(temp, "%-8s", def_colors[i].name);
- put_str(temp);
- }
- for (j = 0; j < matrix_area; j++) {
- if (j % matrix_size == 0) {
- tc_putp(tparm(orig_pair));
- put_crlf();
- if (brightness) {
- tc_putp(exit_standout_mode);
- }
- (void) sprintf(temp, "%-8s", def_colors[j / matrix_size].name);
- put_str(temp);
- if (brightness) {
- put_mode(enter_bold_mode);
- }
- }
- new_color(def_colors[j % matrix_size].index,
- def_colors[j / matrix_size].index,
- FALSE);
- put_str(" Hello ");
- }
- tc_putp(tparm(orig_pair));
- if (brightness) {
- tc_putp(exit_standout_mode);
- }
- put_crlf();
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_ncv(test_list, status, ch)
-**
-** test (ncv)
-*/
-static void
-color_ncv(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (no_color_video == -1) {
- /* I have no idea what this means */
- return;
- }
- sprintf(temp, "According to no_color_video (ncv) which is %d, the following attributes should work correctly with color.", no_color_video);
- ptextln(temp);
- put_crlf();
- set_attr(0);
- ncv_display(0);
- for (i = 1; i <= 9; i++) {
- if (((no_color_video >> (mode_map[i] - 1)) & 1) == 0) {
- ncv_display(mode_map[i]);
- }
- }
- if (no_color_video & 0x3ff) {
- ptextln("\nThe following attributes should not work correctly with color. (ncv)\n");
- for (i = 1; i <= 9; i++) {
- if ((no_color_video >> (mode_map[i] - 1)) & 1) {
- ncv_display(mode_map[i]);
- }
- }
- }
- tc_putp(orig_pair);
- put_crlf();
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_bce(test_list, status, ch)
-**
-** test (bce) background color erase
-*/
-static void
-color_bce(
- struct test_list *t,
- int *state,
- int *ch)
-{
- new_color(COLOR_BLACK, COLOR_WHITE, FALSE);
- put_clear();
- put_newlines(2);
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
- ptextln("If the two lines above are black then back_color_erase (bce) should be false.");
- sprintf(temp, "(bce) is %s in the data base.", back_color_erase ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** color_ccc(test_list, status, ch)
-**
-** test (ccc) color palette test (oc) (op) (initc) (initp)
-*/
-static void
-color_ccc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!can_change) {
- ptextln("Terminal can not change colors (ccc)");
- generic_done_message(t, state, ch);
- return;
- }
- tc_putp(orig_colors);
- pairs_used = 0;
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
- sprintf(temp, "Reloading colors (init%c) using %s method",
- set_foreground ? 'c' : 'p',
- hue_lightness_saturation ? "HLS" : "RGB");
- ptextln(temp);
- put_crlf();
- j = max_colors > 7 ? 7 : max_colors;
- /* redisplay the above test with reinitialized colors */
- /* If these colors don't look right to you... */
- for (i = 0; i < j; i++) {
- sprintf(temp, " %s ", def_colors[i ^ 7].name);
-
- new_color(i ^ 7, COLOR_BLACK, TRUE);
- put_str(temp);
-
- new_color(COLOR_BLACK, COLOR_BLACK, TRUE);
- put_str(" ");
-
- new_color(COLOR_BLACK, i ^ 7, TRUE);
- put_str(temp);
-
- new_color(COLOR_WHITE, COLOR_BLACK, FALSE);
- put_crlf();
- }
- generic_done_message(t, state, ch);
- if (*ch != 0 && *ch != 'n') {
- tc_putp(orig_colors);
- tc_putp(tparm(orig_pair));
- return;
- }
-
- pairs_used = 0;
- cookie_monster = 0;
- if (magic_cookie_glitch > 0) {
- cookie_monster =
- ((set_a_foreground || set_foreground)
- ? magic_cookie_glitch : 0) +
- ((set_a_background || set_background)
- ? magic_cookie_glitch : 0) +
- (set_color_pair ? magic_cookie_glitch : 0);
- }
- set_color_step();
- colors_per_line = max_colors > max_pairs
- ? max_pairs : max_colors;
- j = (columns - 14) / (cookie_monster + 1);
- if (colors_per_line > j) {
- colors_per_line = (j / i) * i;
- }
- sprintf(temp, "RGB color step %d, cookies %d", color_step,
- cookie_monster);
- ptextln(temp);
-
- R = G = B = 0;
- pairs_used = 0;
- for (;;) {
- if (rainbow(colors_per_line)) {
- break;
- }
- }
- generic_done_message(t, state, ch);
- if (*ch != 0 && *ch != 'n') {
- tc_putp(orig_colors);
- tc_putp(tparm(orig_pair));
- return;
- }
- dump_colors();
- tc_putp(orig_colors);
- tc_putp(tparm(orig_pair));
- generic_done_message(t, state, ch);
-}
diff --git a/ncurses-5.3/tack/control.c b/ncurses-5.3/tack/control.c
deleted file mode 100644
index 4ae7282..0000000
--- a/ncurses-5.3/tack/control.c
+++ /dev/null
@@ -1,657 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
-MODULE_ID("$Id$")
-
-/* terminfo test program control subroutines */
-
-#if HAVE_GETTIMEOFDAY
-#define MY_TIMER struct timeval
-#else
-#define MY_TIMER time_t
-#endif
-
-/* globals */
-int test_complete; /* counts number of tests completed */
-
-char txt_longer_test_time[80]; /* +) use longer time */
-char txt_shorter_test_time[80]; /* -) use shorter time */
-int pad_test_duration = 1; /* number of seconds for a pad test */
-int auto_pad_mode; /* run the time tests */
-int no_alarm_event; /* TRUE if the alarm has not gone off yet */
-int usec_run_time; /* length of last test in microseconds */
-MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
-
-char txt_longer_augment[80]; /* >) use bigger augment */
-char txt_shorter_augment[80]; /* <) use smaller augment */
-
-/* caps under test data base */
-int tt_delay_max; /* max number of milliseconds we can delay */
-int tt_delay_used; /* number of milliseconds consumed in delay */
-const char *tt_cap[TT_MAX]; /* value of string */
-int tt_affected[TT_MAX]; /* lines or columns effected (repetition factor) */
-int tt_count[TT_MAX]; /* Number of times sent */
-int tt_delay[TT_MAX]; /* Number of milliseconds delay */
-int ttp; /* number of entries used */
-
-/* Saved value of the above data base */
-const char *tx_cap[TT_MAX]; /* value of string */
-int tx_affected[TT_MAX]; /* lines or columns effected (repetition factor) */
-int tx_count[TT_MAX]; /* Number of times sent */
-int tx_index[TT_MAX]; /* String index */
-int tx_delay[TT_MAX]; /* Number of milliseconds delay */
-int txp; /* number of entries used */
-int tx_characters; /* printing characters sent by test */
-int tx_cps; /* characters per second */
-struct test_list *tx_source; /* The test that generated this data */
-
-extern struct test_menu pad_menu; /* Pad menu structure */
-extern struct test_list pad_test_list[];
-
-#define RESULT_BLOCK 1024
-static int blocks; /* number of result blocks available */
-static struct test_results *results; /* pointer to next available */
-struct test_results *pads[STRCOUNT]; /* save pad results here */
-
-/*
-** event_start(number)
-**
-** Begin the stopwatch at the current time-of-day.
-*/
-void
-event_start(int n)
-{
-#if HAVE_GETTIMEOFDAY
- (void) gettimeofday(&stop_watch[n], (struct timezone *)0);
-#else
- stop_watch[n] = time((time_t *)0);
-#endif
-}
-
-/*
-** event_time(number)
-**
-** Return the number of milliseconds since this stop watch began.
-*/
-long
-event_time(int n)
-{
-#if HAVE_GETTIMEOFDAY
- MY_TIMER current_time;
-
- (void) gettimeofday(&current_time, (struct timezone *)0);
- return ((current_time.tv_sec - stop_watch[n].tv_sec) * 1000000)
- + current_time.tv_usec - stop_watch[n].tv_usec;
-#else
- return (time((time_t *)0) - stop_watch[n]) * 1000;
-#endif
-}
-
-/*****************************************************************************
- *
- * Execution control for string capability tests
- *
- *****************************************************************************/
-
-/*
-** get_next_block()
-**
-** Get a results block for pad test data.
-*/
-static struct test_results *
-get_next_block(void)
-{
- if (blocks <= 0) {
- results = (struct test_results *)
- malloc(sizeof(struct test_results) * RESULT_BLOCK);
- if (!results) {
- ptextln("Malloc failed");
- return (struct test_results *) 0;
- }
- blocks = RESULT_BLOCK;
- }
- blocks--;
- return results++;
-}
-
-/*
-** set_augment_txt()
-**
-** Initialize the augment menu selections
-*/
-void
-set_augment_txt(void)
-{
- sprintf(txt_longer_augment,
- ">) Change lines/characters effected to %d", augment << 1);
- sprintf(txt_shorter_augment,
- "<) Change lines/characters effected to %d", augment >> 1);
-}
-
-void
-control_init(void)
-{
- sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
- pad_test_duration + 1);
- sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
- pad_test_duration - 1);
- set_augment_txt();
-}
-
-/*
-** msec_cost(cap, affected-count)
-**
-** Return the number of milliseconds delay needed by the cap.
-*/
-int
-msec_cost(
- const char *const cap,
- int affcnt)
-{
- int dec, value, total, star, ch;
- const char *cp;
-
- if (!cap) {
- return 0;
- }
- total = 0;
- for (cp = cap; *cp; cp++) {
- if (*cp == '$' && cp[1] == '<') {
- star = 1;
- value = dec = 0;
- for (cp += 2; (ch = *cp); cp++) {
- if (ch >= '0' && ch <= '9') {
- value = value * 10 + (ch - '0');
- dec *= 10;
- } else
- if (ch == '.') {
- dec = 1;
- } else
- if (ch == '*') {
- star = affcnt;
- } else
- if (ch == '>') {
- break;
- }
- }
- if (dec > 1) {
- total += (value * star) / dec;
- } else {
- total += (value * star);
- }
- }
- }
- return total;
-}
-
-/*
-** liberated(cap)
-**
-** Return the cap without padding
-*/
-char *
-liberated(char *cap)
-{
- static char cb[1024];
- char *ts, *ls;
-
- cb[0] = '\0';
- ls = NULL;
- if (cap) {
- for (ts = cb; (*ts = *cap); ++cap) {
- if (*cap == '$' && cap[1] == '<') {
- ls = ts;
- }
- ++ts;
- if (*cap == '>') {
- if (ls) {
- ts = ls;
- ls = NULL;
- }
- }
- }
- }
- return cb;
-}
-
-/*
-** page_loop()
-**
-** send CR/LF or go home and bump letter
-*/
-void
-page_loop(void)
-{
- if (line_count + 2 >= lines) {
- NEXT_LETTER;
- go_home();
- } else {
- put_crlf();
- }
-}
-
-/*
-** skip_pad_test(test-list-entry, state, ch, text)
-**
-** Print the start test line. Handle start up commands.
-** Return TRUE if a return is requested.
-*/
-int
-skip_pad_test(
- struct test_list *test,
- int *state,
- int *ch,
- const char *text)
-{
- char rep_text[16];
-
- while(1) {
- if (text) {
- ptext(text);
- }
- if ((test->flags & MENU_LC_MASK)) {
- sprintf(rep_text, " *%d", augment);
- ptext(rep_text);
- }
- ptext(" [n] > ");
- *ch = wait_here();
- if (*ch == 's') {
- /* Skip is converted to next */
- *ch = 'n';
- return TRUE;
- }
- if (*ch == 'q') {
- /* Quit is converted to help */
- *ch = '?';
- return TRUE;
- }
- if (*ch == '\r' || *ch == '\n' || *ch == 'n' || *ch == 'r') {
- /* this is the only response that allows the test to run */
- *ch = 0;
- }
- if (subtest_menu(pad_test_list, state, ch)) {
- continue;
- }
- return (*ch != 0);
- }
-}
-
-/*
-** pad_done_message(test_list)
-**
-** Print the Done message and request input.
-*/
-void
-pad_done_message(
- struct test_list *test,
- int *state,
- int *ch)
-{
- int default_action = 0;
- char done_message[128];
- char rep_text[16];
-
- while (1) {
- if ((test->flags & MENU_LC_MASK)) {
- sprintf(rep_text, "*%d", augment);
- } else {
- rep_text[0] = '\0';
- }
- if (test->caps_done) {
- sprintf(done_message, "(%s)%s Done ", test->caps_done,
- rep_text);
- ptext(done_message);
- } else {
- if (rep_text[0]) {
- ptext(rep_text);
- ptext(" ");
- }
- ptext("Done ");
- }
- if (debug_level & 2) {
- dump_test_stats(test, state, ch);
- } else {
- *ch = wait_here();
- }
- if (*ch == '\r' || *ch == '\n') {
- *ch = default_action;
- return;
- }
- if (*ch == 's' || *ch == 'n') {
- *ch = 0;
- return;
- }
- if (strchr(pad_repeat_test, *ch)) {
- /* default action is now repeat */
- default_action = 'r';
- }
- if (subtest_menu(pad_test_list, state, ch)) {
- continue;
- }
- return;
- }
-}
-
-/*
-** sliding_scale(dividend, factor, divisor)
-**
-** Return (dividend * factor) / divisor
-*/
-int
-sliding_scale(
- int dividend,
- int factor,
- int divisor)
-{
- double d = dividend;
-
- if (divisor) {
- d = (d * (double) factor) / (double) divisor;
- return (int) (d + 0.5);
- }
- return 0;
-}
-
-/*
-** pad_test_startup()
-**
-** Do the stuff needed to begin a test.
-*/
-void
-pad_test_startup(
- int do_clear)
-{
- if (do_clear) {
- put_clear();
- }
- repeats = augment;
- raw_characters_sent = 0;
- test_complete = ttp = char_count = tt_delay_used = 0;
- letter = letters[letter_number = 0];
- if (pad_test_duration <= 0) {
- pad_test_duration = 1;
- }
- tt_delay_max = pad_test_duration * 1000;
- set_alarm_clock(pad_test_duration);
- event_start(TIME_TEST);
-}
-
-/*
-** still_testing()
-**
-** This function is called to see if the test loop should be terminated.
-*/
-int
-still_testing(void)
-{
- fflush(stdout);
- test_complete++;
- return EXIT_CONDITION;
-}
-
-/*
-** pad_test_shutdown()
-**
-** Do the stuff needed to end a test.
-*/
-void
-pad_test_shutdown(
- struct test_list *t,
- int crlf)
-{
- int i;
- int counts; /* total counts */
- int ss; /* Save string index */
- int cpo; /* characters per operation */
- int delta; /* difference in characters */
- int bogus; /* Time is inaccurate */
- struct test_results *r; /* Results of current test */
- int ss_index[TT_MAX]; /* String index */
-
- if (tty_can_sync == SYNC_TESTED) {
- bogus = tty_sync_error();
- } else {
- bogus = 1;
- }
- usec_run_time = event_time(TIME_TEST);
- tx_source = t;
- tx_characters = raw_characters_sent;
- tx_cps = sliding_scale(tx_characters, 1000000, usec_run_time);
-
- /* save the data base */
- for (txp = ss = counts = 0; txp < ttp; txp++) {
- tx_cap[txp] = tt_cap[txp];
- tx_count[txp] = tt_count[txp];
- tx_delay[txp] = tt_delay[txp];
- tx_affected[txp] = tt_affected[txp];
- tx_index[txp] = get_string_cap_byvalue(tt_cap[txp]);
- if (tx_index[txp] >= 0) {
- if (cap_match(t->caps_done, strnames[tx_index[txp]])) {
- ss_index[ss++] = txp;
- counts += tx_count[txp];
- }
- }
- }
-
- if (crlf) {
- put_crlf();
- }
- if (counts == 0 || tty_cps == 0 || bogus) {
- /* nothing to do */
- return;
- }
- /* calculate the suggested pad times */
- delta = usec_run_time - sliding_scale(tx_characters, 1000000, tty_cps);
- if (delta < 0) {
- /* probably should bump tx_characters */
- delta = 0;
- }
- cpo = delta / counts;
- for (i = 0; i < ss; i++) {
- if (!(r = get_next_block())) {
- return;
- }
- r->next = pads[tx_index[ss_index[i]]];
- pads[tx_index[ss_index[i]]] = r;
- r->test = t;
- r->reps = tx_affected[ss_index[i]];
- r->delay = cpo;
- }
-}
-
-/*
-** show_cap_results(index)
-**
-** Display the previous results
-*/
-static void
-show_cap_results(
- int x)
-{
- struct test_results *r; /* a result */
- int delay;
-
- if ((r = pads[x])) {
- sprintf(temp, "(%s)", strnames[x]);
- ptext(temp);
- while (r) {
- sprintf(temp, "$<%d>", r->delay / 1000);
- put_columns(temp, strlen(temp), 10);
- r = r->next;
- }
- r = pads[x];
- while (r) {
- if (r->reps > 1) {
- delay = r->delay / (r->reps * 100);
- sprintf(temp, "$<%d.%d*>", delay / 10, delay % 10);
- put_columns(temp, strlen(temp), 10);
- }
- r = r->next;
- }
- put_crlf();
- }
-}
-
-/*
-** dump_test_stats(test_list, status, ch)
-**
-** Dump the statistics about the last test
-*/
-void
-dump_test_stats(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
- char tbuf[32];
- int x[32];
-
- put_crlf();
- if (tx_source && tx_source->caps_done) {
- cap_index(tx_source->caps_done, x);
- if (x[0] >= 0) {
- sprintf(temp, "Caps summary for (%s)",
- tx_source->caps_done);
- ptextln(temp);
- for (i = 0; x[i] >= 0; i++) {
- show_cap_results(x[i]);
- }
- put_crlf();
- }
- }
- sprintf(tbuf, "%011u", usec_run_time);
- sprintf(temp, "Test time: %d.%s, characters per second %d, characters %d",
- usec_run_time / 1000000, &tbuf[5], tx_cps, tx_characters);
- ptextln(temp);
- for (i = 0; i < txp; i++) {
- if ((j = get_string_cap_byvalue(tx_cap[i])) >= 0) {
- sprintf(tbuf, "(%s)", strnames[j]);
- } else {
- strcpy(tbuf, "(?)");
- }
- sprintf(temp, "%8d %3d $<%3d> %8s %s",
- tx_count[i], tx_affected[i], tx_delay[i],
- tbuf, expand(tx_cap[i]));
- putln(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** longer_test_time(test_list, status, ch)
-**
-** Extend the number of seconds for each test.
-*/
-void
-longer_test_time(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- pad_test_duration += 1;
- sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
- pad_test_duration + 1);
- sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
- pad_test_duration - 1);
- sprintf(temp, "Tests will run for %d seconds", pad_test_duration);
- ptext(temp);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** shorter_test_time(test_list, status, ch)
-**
-** Shorten the number of seconds for each test.
-*/
-void
-shorter_test_time(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- if (pad_test_duration > 1) {
- pad_test_duration -= 1;
- sprintf(txt_longer_test_time, "+) Change test time to %d seconds",
- pad_test_duration + 1);
- sprintf(txt_shorter_test_time, "-) Change test time to %d seconds",
- pad_test_duration - 1);
- }
- sprintf(temp, "Tests will run for %d second%s", pad_test_duration,
- pad_test_duration > 1 ? "s" : "");
- ptext(temp);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** longer_augment(test_list, status, ch)
-**
-** Lengthen the number of lines/characters effected
-*/
-void
-longer_augment(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- augment <<= 1;
- set_augment_txt();
- if (augment_test) {
- t = augment_test;
- }
- sprintf(temp, "The pad tests will effect %d %s.", augment,
- ((t->flags & MENU_LC_MASK) == MENU_lines) ?
- "lines" : "characters");
- ptextln(temp);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** shorter_augment(test_list, status, ch)
-**
-** Shorten the number of lines/characters effected
-*/
-void
-shorter_augment(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- if (augment > 1) {
- /* don't let the augment go to zero */
- augment >>= 1;
- }
- set_augment_txt();
- if (augment_test) {
- t = augment_test;
- }
- sprintf(temp, "The pad tests will effect %d %s.", augment,
- ((t->flags & MENU_LC_MASK) == MENU_lines) ?
- "lines" : "characters");
- ptextln(temp);
- *ch = REQUEST_PROMPT;
-}
diff --git a/ncurses-5.3/tack/crum.c b/ncurses-5.3/tack/crum.c
deleted file mode 100644
index f0eaf1f..0000000
--- a/ncurses-5.3/tack/crum.c
+++ /dev/null
@@ -1,426 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Test cursor movement.
- */
-
-static void crum_clear(struct test_list *t, int *state, int *ch);
-static void crum_home(struct test_list *t, int *state, int *ch);
-static void crum_ll(struct test_list *t, int *state, int *ch);
-static void crum_move(struct test_list *t, int *state, int *ch);
-static void crum_os(struct test_list *t, int *state, int *ch);
-
-static char crum_text[5][80];
-
-struct test_list crum_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT, 0, "clear", 0, 0, crum_clear, 0},
- {MENU_NEXT, 0, "home", 0, 0, crum_home, 0},
- {MENU_NEXT, 0, "ll", 0, 0, crum_ll, 0},
- {MENU_NEXT, 0, crum_text[0], "home cuu1", 0, crum_move, 0},
- {MENU_NEXT + 1, 0, crum_text[1], "cub1 cud1 cuf1 cuu1", 0, crum_move, 0},
- {MENU_NEXT + 2, 0, crum_text[2], "cub cud cuf cuu", 0, crum_move, 0},
- {MENU_NEXT + 3, 0, crum_text[3], "vpa hpa", 0, crum_move, 0},
- {MENU_NEXT + 4, 0, crum_text[4], "cup", 0, crum_move, 0},
- {MENU_NEXT, 0, "cup", "os", 0, crum_os, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*
-** move_to(from-row, from-column, to-row, to-column, selection)
-**
-** move the cursor from (rf, cf) to (rt, ct) using sel
-*/
-static void
-move_to(
- int rf,
- int cf,
- int rt,
- int ct,
- int sel)
-{
- char *s;
-
- if (sel & 16) { /* use (cup) */
- s = tparm(cursor_address, rt, ct);
- tputs(s, lines, tc_putch);
- return;
- }
- if (sel & 8) { /* use (hpa) (vpa) */
- if (column_address) {
- s = tparm(column_address, ct);
- tputs(s, 1, tc_putch);
- cf = ct;
- }
- if (row_address) {
- s = tparm(row_address, rt);
- tputs(s, 1, tc_putch);
- rf = rt;
- }
- }
- if (sel & 4) { /* parameterized relative cursor movement */
- if (parm_right_cursor)
- if (cf < ct) {
- s = tparm(parm_right_cursor, ct - cf);
- tputs(s, ct - cf, tc_putch);
- cf = ct;
- }
- if (parm_left_cursor)
- if (cf > ct) {
- s = tparm(parm_left_cursor, cf - ct);
- tputs(s, cf - ct, tc_putch);
- cf = ct;
- }
- if (parm_down_cursor)
- if (rf < rt) {
- s = tparm(parm_down_cursor, rt - rf);
- tputs(s, rt - rf, tc_putch);
- rf = rt;
- }
- if (parm_up_cursor)
- if (rf > rt) {
- s = tparm(parm_up_cursor, rf - rt);
- tputs(s, rf - rt, tc_putch);
- rf = rt;
- }
- }
- if (sel & 2) {
- if (cursor_left)
- while (cf > ct) {
- tc_putp(cursor_left);
- cf--;
- }
- /*
- do vertical motion next. Just in case cursor_down has a
- side effect of changing the column. This could happen if
- the tty handler translates NL to CRNL.
- */
- if (cursor_down)
- while (rf < rt) {
- tc_putp(cursor_down);
- rf++;
- }
- if (cursor_up)
- while (rf > rt) {
- tc_putp(cursor_up);
- rf--;
- }
- if (cursor_right)
- while (cf < ct) {
- tc_putp(cursor_right);
- cf++;
- }
- }
- /* last chance */
- if (rf > rt) {
- if (can_go_home) { /* a bit drastic but ... */
- go_home();
- cf = 0;
- rf = 0;
- } else if (cursor_up) {
- while (rf > rt) {
- tc_putp(cursor_up);
- rf--;
- }
- }
- }
- if (ct == 0 && rt > rf) {
- put_crlf();
- cf = 0;
- rf++;
- }
- if (ct == 0 && cf != 0) {
- put_cr();
- cf = 0;
- }
- while (rf < rt) {
- put_lf();
- rf++;
- }
- while (cf > ct) {
- put_str("\b");
- cf--;
- }
- if (cursor_right) {
- while (cf < ct) {
- tc_putp(cursor_right);
- cf++;
- }
- } else {
- /* go ahead and trash my display */
- while (cf < ct) {
- putchp(' ');
- cf++;
- }
- }
-}
-
-/*
-** display_it(selection, text)
-**
-** print the display using sel
-*/
-static void
-display_it(
- int sel,
- char *txt)
-{
- int i, done_line;
-
- put_clear();
- go_home();
- put_newlines(2);
- ptextln(" The top line should be alternating <'s and >'s");
- ptextln(" The left side should be alternating A's and V's");
- ptext(" Testing ");
- ptext(txt);
- put_cr();
-
- /* horizontal */
- move_to(done_line = line_count, 0, 0, 2, sel);
- for (i = 4; i < columns - 2; i += 2) {
- putchp('>');
- move_to(0, i - 1, 0, i, sel);
- }
- putchp('>');
- i -= 2;
- move_to(0, i + 1, 0, i - 1, sel);
- for (; i > 2; i -= 2) {
- putchp('<');
- move_to(0, i, 0, i - 3, sel);
- }
- putchp('<');
-
- /* vertical */
- move_to(0, 2, 0, 0, sel);
- for (i = 2; i < lines - 1; i += 2) {
- putchp('V');
- move_to(i - 2, 1, i, 0, sel);
- }
- putchp('V');
- i -= 2;
- move_to(i, 1, i + 1, 0, sel);
- for (; i > 0; i -= 2) {
- putchp('A');
- move_to(i + 1, 1, i - 1, 0, sel);
- }
- putchp('A');
- move_to(i + 1, 1, 0, 0, sel); /* go home first */
- move_to(0, 0, done_line + 1, 3, sel);
- put_str(txt);
- put_str(" Done. ");
-}
-
-/*
-** crum_clear(test_list, status, ch)
-**
-** (clear) test Clear screen
-*/
-static void
-crum_clear(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (clear_screen) {
- for (i = lines; i > 1; i--) {
- putln("garbage");
- }
- put_clear();
- ptextln("This line should start in the home position.");
- ptext("The rest of the screen should be clear. ");
- } else {
- ptextln("(clear) Clear screen is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** crum_home(test_list, status, ch)
-**
-** (home) test Home cursor
-*/
-static void
-crum_home(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (cursor_home) {
- put_clear();
- put_newlines(lines / 2);
- go_home();
- put_crlf();
- ptext("The bottom line should have text.");
- go_home();
- put_newlines(lines - 1);
- ptext("This line is on the bottom.");
- go_home();
- ptextln("This line starts in the home position.");
- put_crlf();
- } else {
- ptextln("(home) Home cursor is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** crum_ll(test_list, status, ch)
-**
-** (ll) test Last line
-*/
-static void
-crum_ll(
- struct test_list *t,
- int *state,
- int *ch)
-{
- /*
- (ll) may be simulated with (cup). Don't complain if (cup) is present.
- */
- if (cursor_to_ll) {
- put_clear();
- put_str("This line could be anywhere.");
- tc_putp(cursor_to_ll);
- ptext("This line should be on the bottom");
- go_home();
- put_crlf();
- } else
- if (cursor_address) {
- return;
- } else {
- ptextln("(ll) Move to last line is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** crum_move(test_list, status, ch)
-**
-** (*) test all cursor move commands
-*/
-static void
-crum_move(
- struct test_list *t,
- int *state,
- int *ch)
-{
- char buf[80];
- int n;
-
- switch (n = (t->flags & 15)) {
- case 0:
- sprintf(buf, " (cr) (nel) (cub1)%s",
- cursor_home ? " (home)" : (cursor_up ? " (cuu1)" : ""));
- break;
- case 1:
- sprintf(buf, "%s%s%s%s", cursor_left ? " (cub1)" : "",
- cursor_down ? " (cud1)" : "", cursor_right ? " (cuf1)" : "",
- cursor_up ? " (cuu1)" : "");
- if (buf[0] == '\0') {
- ptext(" (cub1) (cud1) (cuf1) (cuu1) not defined.");
- }
- break;
- case 2:
- sprintf(buf, "%s%s%s%s", parm_left_cursor ? " (cub)" : "",
- parm_down_cursor ? " (cud)" : "",
- parm_right_cursor ? " (cuf)" : "",
- parm_up_cursor ? " (cuu)" : "");
- if (buf[0] == '\0') {
- ptext(" (cub) (cud) (cuf) (cuu) not defined.");
- }
- break;
- case 3:
- sprintf(buf, "%s%s", row_address ? " (vpa)" : "",
- column_address ? " (hpa)" : "");
- if (buf[0] == '\0') {
- ptext(" (vpa) (hpa) not defined.");
- }
- break;
- case 4:
- if (!cursor_address) {
- ptext(" (cup) not defined. ");
- generic_done_message(t, state, ch);
- return;
- }
- strcpy(buf, " (cup)");
- break;
- }
- if (buf[0] == '\0') {
- put_str(" Done. ");
- } else {
- can_test(buf, FLAG_TESTED);
- strcpy(crum_text[n], &buf[2]);
- crum_text[n][strlen(buf) - 3] = '\0';
-
- display_it(1 << n, buf);
- }
- *ch = wait_here();
- if (*ch != 'r') {
- put_clear();
- }
-}
-
-/*
-** crum_os(test_list, status, ch)
-**
-** (cup) test Cursor position on overstrike terminals
-*/
-static void
-crum_os(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (cursor_address && over_strike) {
- put_clear();
- for (i = 0; i < columns - 2; i++) {
- tc_putch('|');
- }
- for (i = 1; i < lines - 2; i++) {
- put_crlf();
- tc_putch('_');
- }
- for (i = 0; i < columns - 2; i++) {
- tputs(tparm(cursor_address, 0, i), lines, tc_putch);
- tc_putch('+');
- }
- for (i = 0; i < lines - 2; i++) {
- tputs(tparm(cursor_address, i, 0), lines, tc_putch);
- tc_putch(']');
- tc_putch('_');
- }
- go_home();
- put_newlines(3);
- ptext(" All the characters should look the same. ");
- generic_done_message(t, state, ch);
- put_clear();
- }
-}
diff --git a/ncurses-5.3/tack/edit.c b/ncurses-5.3/tack/edit.c
deleted file mode 100644
index 28bdb69..0000000
--- a/ncurses-5.3/tack/edit.c
+++ /dev/null
@@ -1,977 +0,0 @@
-/*
-** Copyright (C) 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-#include <time.h>
-#include <tic.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Terminfo edit features
- */
-static void show_info(struct test_list *, int *, int *);
-static void show_value(struct test_list *, int *, int *);
-static void show_untested(struct test_list *, int *, int *);
-static void show_changed(struct test_list *, int *, int *);
-
-#define SHOW_VALUE 1
-#define SHOW_EDIT 2
-#define SHOW_DELETE 3
-
-struct test_list edit_test_list[] = {
- {MENU_CLEAR, 0, 0, 0, "i) display current terminfo", show_info, 0},
- {0, 0, 0, 0, "w) write the current terminfo to a file", save_info, 0},
- {SHOW_VALUE, 3, 0, 0, "v) show value of a selected cap", show_value, 0},
- {SHOW_EDIT, 4, 0, 0, "e) edit value of a selected cap", show_value, 0},
- {SHOW_DELETE, 3, 0, 0, "d) delete string", show_value, 0},
- {0, 3, 0, 0, "m) show caps that have been modified", show_changed, 0},
- {MENU_CLEAR + FLAG_CAN_TEST, 0, 0, 0, "c) show caps that can be tested", show_report, 0},
- {MENU_CLEAR + FLAG_TESTED, 0, 0, 0, "t) show caps that have been tested", show_report, 0},
- {MENU_CLEAR + FLAG_FUNCTION_KEY, 0, 0, 0, "f) show a list of function keys", show_report, 0},
- {MENU_CLEAR, 0, 0, 0, "u) show caps defined that can not be tested", show_untested, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static char change_pad_text[MAX_CHANGES][80];
-struct test_list change_pad_list[MAX_CHANGES] = {
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static void build_change_menu(struct test_menu *);
-static void change_one_entry(struct test_list *, int *, int *);
-
-struct test_menu change_pad_menu = {
- 0, 'q', 0,
- "Select cap name", "change", 0,
- build_change_menu, change_pad_list, 0, 0, 0
-};
-
-extern struct test_results *pads[STRCOUNT]; /* save pad results here */
-
-static TERMTYPE original_term; /* terminal type description */
-
-static char flag_boolean[BOOLCOUNT]; /* flags for booleans */
-static char flag_numerics[NUMCOUNT]; /* flags for numerics */
-static char flag_strings[STRCOUNT]; /* flags for strings */
-static int xon_index; /* Subscript for (xon) */
-int xon_shadow;
-
-static int start_display; /* the display has just started */
-static int display_lines; /* number of lines displayed */
-
-/*
-** send_info_string(str)
-**
-** Return the terminfo string prefixed by the correct separator
-*/
-static void
-send_info_string(
- const char *str,
- int *ch)
-{
- int len;
-
- if (display_lines == -1) {
- return;
- }
- len = strlen(str);
- if (len + char_count + 3 >= columns) {
- if (start_display == 0) {
- put_str(",");
- }
- put_crlf();
- if (++display_lines > lines) {
- ptext("-- more -- ");
- *ch = wait_here();
- if (*ch == 'q') {
- display_lines = -1;
- return;
- }
- display_lines = 0;
- }
- if (len >= columns) {
- /* if the terminal does not (am) then this loses */
- if (columns) {
- display_lines += ((strlen(str) + 3) / columns) + 1;
- }
- put_str(" ");
- put_str(str);
- start_display = 0;
- return;
- }
- ptext(" ");
- } else
- if (start_display == 0) {
- ptext(", ");
- } else {
- ptext(" ");
- }
- ptext(str);
- start_display = 0;
-}
-
-/*
-** show_info(test_list, status, ch)
-**
-** Display the current terminfo
-*/
-static void
-show_info(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i;
- char buf[1024];
-
- display_lines = 1;
- start_display = 1;
- for (i = 0; i < BOOLCOUNT; i++) {
- if ((i == xon_index) ? xon_shadow : CUR Booleans[i]) {
- send_info_string(boolnames[i], ch);
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (CUR Numbers[i] >= 0) {
- sprintf(buf, "%s#%d", numnames[i], CUR Numbers[i]);
- send_info_string(buf, ch);
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- if (CUR Strings[i]) {
- sprintf(buf, "%s=%s", strnames[i],
- print_expand(CUR Strings[i]));
- send_info_string(buf, ch);
- }
- }
- put_newlines(2);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** save_info_string(str, fp)
-**
-** Write the terminfo string prefixed by the correct separator
-*/
-static void
-save_info_string(
- const char *str,
- FILE *fp)
-{
- int len;
-
- len = strlen(str);
- if (len + display_lines >= 77) {
- if (display_lines > 0) {
- (void) fprintf(fp, "\n\t");
- }
- display_lines = 8;
- } else
- if (display_lines > 0) {
- (void) fprintf(fp, " ");
- display_lines++;
- } else {
- (void) fprintf(fp, "\t");
- display_lines = 8;
- }
- (void) fprintf(fp, "%s,", str);
- display_lines += len + 1;
-}
-
-/*
-** save_info(test_list, status, ch)
-**
-** Write the current terminfo to a file
-*/
-void
-save_info(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- FILE *fp;
- time_t now;
- char buf[1024];
-
- if ((fp = fopen(tty_basename, "w")) == (FILE *) NULL) {
- (void) sprintf(temp, "can't open: %s", tty_basename);
- ptextln(temp);
- generic_done_message(t, state, ch);
- return;
- }
- time(&now);
- /* Note: ctime() returns a newline at the end of the string */
- (void) fprintf(fp, "# Terminfo created by TACK for TERM=%s on %s",
- tty_basename, ctime(&now));
- (void) fprintf(fp, "%s|%s,\n", tty_basename, longname());
-
- display_lines = 0;
- for (i = 0; i < BOOLCOUNT; i++) {
- if (i == xon_index ? xon_shadow : CUR Booleans[i]) {
- save_info_string(boolnames[i], fp);
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (CUR Numbers[i] >= 0) {
- sprintf(buf, "%s#%d", numnames[i], CUR Numbers[i]);
- save_info_string(buf, fp);
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- if (CUR Strings[i]) {
- sprintf(buf, "%s=%s", strnames[i],
- _nc_tic_expand(CUR Strings[i], TRUE, TRUE));
- save_info_string(buf, fp);
- }
- }
- (void) fprintf(fp, "\n");
- (void) fclose(fp);
- sprintf(temp, "Terminfo saved as file: %s", tty_basename);
- ptextln(temp);
-}
-
-/*
-** show_value(test_list, status, ch)
-**
-** Display the value of a selected cap
-*/
-static void
-show_value(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- struct name_table_entry const *nt;
- char *s;
- int n, op, b;
- char buf[1024];
- char tmp[1024];
-
- ptext("enter name: ");
- read_string(buf, 80);
- if (buf[0] == '\0' || buf[1] == '\0') {
- *ch = buf[0];
- return;
- }
- if (line_count + 2 >= lines) {
- put_clear();
- }
- op = t->flags & 255;
- if ((nt = _nc_find_entry(buf, _nc_info_hash_table))) {
- switch (nt->nte_type) {
- case BOOLEAN:
- if (op == SHOW_DELETE) {
- if (nt->nte_index == xon_index) {
- xon_shadow = 0;
- } else {
- CUR Booleans[nt->nte_index] = 0;
- }
- return;
- }
- b = nt->nte_index == xon_index ? xon_shadow :
- CUR Booleans[nt->nte_index];
- sprintf(temp, "boolean %s %s", buf,
- b ? "True" : "False");
- break;
- case STRING:
- if (op == SHOW_DELETE) {
- CUR Strings[nt->nte_index] = (char *) 0;
- return;
- }
- if (CUR Strings[nt->nte_index]) {
- sprintf(temp, "string %s %s", buf,
- expand(CUR Strings[nt->nte_index]));
- } else {
- sprintf(temp, "undefined string %s", buf);
- }
- break;
- case NUMBER:
- if (op == SHOW_DELETE) {
- CUR Numbers[nt->nte_index] = -1;
- return;
- }
- sprintf(temp, "numeric %s %d", buf,
- CUR Numbers[nt->nte_index]);
- break;
- default:
- sprintf(temp, "unknown");
- break;
- }
- ptextln(temp);
- } else {
- sprintf(temp, "Cap not found: %s", buf);
- ptextln(temp);
- return;
- }
- if (op != SHOW_EDIT) {
- return;
- }
- if (nt->nte_type == BOOLEAN) {
- ptextln("Value flipped");
- if (nt->nte_index == xon_index) {
- xon_shadow = !xon_shadow;
- } else {
- CUR Booleans[nt->nte_index] = !CUR Booleans[nt->nte_index];
- }
- return;
- }
- ptextln("Enter new value");
- read_string(buf, sizeof(buf));
-
- switch (nt->nte_type) {
- case STRING:
- _nc_reset_input((FILE *) 0, buf);
- _nc_trans_string(tmp, tmp + sizeof(tmp));
- s = (char *)malloc(strlen(tmp) + 1);
- strcpy(s, tmp);
- CUR Strings[nt->nte_index] = s;
- sprintf(temp, "new string value %s", nt->nte_name);
- ptextln(temp);
- ptextln(expand(CUR Strings[nt->nte_index]));
- break;
- case NUMBER:
- if (sscanf(buf, "%d", &n) == 1) {
- CUR Numbers[nt->nte_index] = n;
- sprintf(temp, "new numeric value %s %d",
- nt->nte_name, n);
- ptextln(temp);
- } else {
- sprintf(temp, "Illegal number: %s", buf);
- ptextln(temp);
- }
- break;
- default:
- break;
- }
-}
-
-/*
-** get_string_cap_byname(name, long_name)
-**
-** Given a cap name, find the value
-** Errors are quietly ignored.
-*/
-char *
-get_string_cap_byname(
- const char *name,
- const char **long_name)
-{
- struct name_table_entry const *nt;
-
- if ((nt = _nc_find_entry(name, _nc_info_hash_table))) {
- if (nt->nte_type == STRING) {
- *long_name = strfnames[nt->nte_index];
- return (CUR Strings[nt->nte_index]);
- }
- }
- *long_name = "??";
- return (char *) 0;
-}
-
-/*
-** get_string_cap_byvalue(value)
-**
-** Given a capability string, find its position in the data base.
-** Return the index or -1 if not found.
-*/
-int
-get_string_cap_byvalue(
- const char *value)
-{
- int i;
-
- if (value) {
- for (i = 0; i < STRCOUNT; i++) {
- if (CUR Strings[i] == value) {
- return i;
- }
- }
- /* search for translated strings */
- for (i = 0; i < TM_last; i++) {
- if (TM_string[i].value == value) {
- return TM_string[i].index;
- }
- }
- }
- return -1;
-}
-
-/*
-** show_changed(test_list, status, ch)
-**
-** Display a list of caps that have been changed.
-*/
-static void
-show_changed(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i, header = 1, v;
- const char *a;
- const char *b;
- static char title[] = " old value cap new value";
- char abuf[1024];
-
- for (i = 0; i < BOOLCOUNT; i++) {
- v = (i == xon_index) ? xon_shadow : CUR Booleans[i];
- if (original_term.Booleans[i] != v) {
- if (header) {
- ptextln(title);
- header = 0;
- }
- sprintf(temp, "%30d %6s %d",
- original_term.Booleans[i], boolnames[i], v);
- ptextln(temp);
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (original_term.Numbers[i] != CUR Numbers[i]) {
- if (header) {
- ptextln(title);
- header = 0;
- }
- sprintf(temp, "%30d %6s %d",
- original_term.Numbers[i], numnames[i],
- CUR Numbers[i]);
- ptextln(temp);
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- a = original_term.Strings[i] ? original_term.Strings[i] : "";
- b = CUR Strings[i] ? CUR Strings[i] : "";
- if (strcmp(a, b)) {
- if (header) {
- ptextln(title);
- header = 0;
- }
- strcpy(abuf, _nc_tic_expand(a, TRUE, TRUE));
- sprintf(temp, "%30s %6s %s", abuf, strnames[i],
- _nc_tic_expand(b, TRUE, TRUE));
- putln(temp);
- }
- }
- if (header) {
- ptextln("No changes");
- }
- put_crlf();
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** user_modified()
-**
-** Return TRUE if the user has modified the terminfo
-*/
-int
-user_modified(void)
-{
- const char *a, *b;
- int i, v;
-
- for (i = 0; i < BOOLCOUNT; i++) {
- v = (i == xon_index) ? xon_shadow : CUR Booleans[i];
- if (original_term.Booleans[i] != v) {
- return TRUE;
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (original_term.Numbers[i] != CUR Numbers[i]) {
- return TRUE;
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- a = original_term.Strings[i] ? original_term.Strings[i] : "";
- b = CUR Strings[i] ? CUR Strings[i] : "";
- if (strcmp(a, b)) {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-/*****************************************************************************
- *
- * Maintain the list of capabilities that can be tested
- *
- *****************************************************************************/
-
-/*
-** mark_cap(name, flag)
-**
-** Mark the cap data base with the flag provided.
-*/
-static void
-mark_cap(
- char *name,
- int flag)
-{
- struct name_table_entry const *nt;
-
- if ((nt = _nc_find_entry(name, _nc_info_hash_table))) {
- switch (nt->nte_type) {
- case BOOLEAN:
- flag_boolean[nt->nte_index] |= flag;
- break;
- case STRING:
- flag_strings[nt->nte_index] |= flag;
- break;
- case NUMBER:
- flag_numerics[nt->nte_index] |= flag;
- break;
- default:
- sprintf(temp, "unknown cap type (%s)", name);
- ptextln(temp);
- break;
- }
- } else {
- sprintf(temp, "Cap not found: %s", name);
- ptextln(temp);
- (void) wait_here();
- }
-}
-
-/*
-** can_test(name-list, flags)
-**
-** Scan the name list and get the names.
-** Enter each name into the can-test data base.
-** <space> ( and ) may be used as separators.
-*/
-void
-can_test(
- const char *s,
- int flags)
-{
- int ch, j;
- char name[32];
-
- if (s) {
- for (j = 0; (name[j] = ch = *s); s++) {
- if (ch == ' ' || ch == ')' || ch == '(') {
- if (j) {
- name[j] = '\0';
- mark_cap(name, flags);
- }
- j = 0;
- } else {
- j++;
- }
- }
- if (j) {
- mark_cap(name, flags);
- }
- }
-}
-
-/*
-** cap_index(name-list, index-list)
-**
-** Scan the name list and return a list of indexes.
-** <space> ( and ) may be used as separators.
-** This list is terminated with -1.
-*/
-void
-cap_index(
- const char *s,
- int *inx)
-{
- struct name_table_entry const *nt;
- int ch, j;
- char name[32];
-
- if (s) {
- for (j = 0; ; s++) {
- name[j] = ch = *s;
- if (ch == ' ' || ch == ')' || ch == '(' || ch == 0) {
- if (j) {
- name[j] = '\0';
- if ((nt = _nc_find_entry(name,
- _nc_info_hash_table)) &&
- (nt->nte_type == STRING)) {
- *inx++ = nt->nte_index;
- }
- }
- if (ch == 0) {
- break;
- }
- j = 0;
- } else {
- j++;
- }
- }
- }
- *inx = -1;
-}
-
-/*
-** cap_match(name-list, cap)
-**
-** Scan the name list and see if the cap is in the list.
-** Return TRUE if we find an exact match.
-** <space> ( and ) may be used as separators.
-*/
-int
-cap_match(
- const char *names,
- const char *cap)
-{
- char *s;
- int c, l, t;
-
- if (names) {
- l = strlen(cap);
- while ((s = strstr(names, cap))) {
- c = (names == s) ? 0 : *(s - 1);
- t = s[l];
- if ((c == 0 || c == ' ' || c == '(') &&
- (t == 0 || t == ' ' || t == ')')) {
- return TRUE;
- }
- if (t == 0) {
- break;
- }
- names = s + l;
- }
- }
- return FALSE;
-}
-
-/*
-** show_report(test_list, status, ch)
-**
-** Display a list of caps that can be tested
-*/
-void
-show_report(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i, j, nc, flag;
- const char *s;
- const char *nx[BOOLCOUNT + NUMCOUNT + STRCOUNT];
-
- flag = t->flags & 255;
- nc = 0;
- for (i = 0; i < BOOLCOUNT; i++) {
- if (flag_boolean[i] & flag) {
- nx[nc++] = boolnames[i];
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (flag_numerics[i] & flag) {
- nx[nc++] = numnames[i];
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- if (flag_strings[i] & flag) {
- nx[nc++] = strnames[i];
- }
- }
- /* sort */
- for (i = 0; i < nc - 1; i++) {
- for (j = i + 1; j < nc; j++) {
- if (strcmp(nx[i], nx[j]) > 0) {
- s = nx[i];
- nx[i] = nx[j];
- nx[j] = s;
- }
- }
- }
- if (flag & FLAG_FUNCTION_KEY) {
- ptextln("The following function keys can be tested:");
- } else
- if (flag & FLAG_CAN_TEST) {
- ptextln("The following capabilities can be tested:");
- } else
- if (flag & FLAG_TESTED) {
- ptextln("The following capabilities have been tested:");
- }
- put_crlf();
- for (i = 0; i < nc; i++) {
- sprintf(temp, "%s ", nx[i]);
- ptext(temp);
- }
- put_newlines(1);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** show_untested(test_list, status, ch)
-**
-** Display a list of caps that are defined but cannot be tested.
-** Don't bother to sort this list.
-*/
-static void
-show_untested(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- int i;
-
- ptextln("Caps that are defined but cannot be tested:");
- for (i = 0; i < BOOLCOUNT; i++) {
- if (flag_boolean[i] == 0 && CUR Booleans[i]) {
- sprintf(temp, "%s ", boolnames[i]);
- ptext(temp);
- }
- }
- for (i = 0; i < NUMCOUNT; i++) {
- if (flag_numerics[i] == 0 && CUR Numbers[i] >= 0) {
- sprintf(temp, "%s ", numnames[i]);
- ptext(temp);
- }
- }
- for (i = 0; i < STRCOUNT; i++) {
- if (flag_strings[i] == 0 && CUR Strings[i]) {
- sprintf(temp, "%s ", strnames[i]);
- ptext(temp);
- }
- }
- put_newlines(1);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** edit_init()
-**
-** Initialize the function key data base
-*/
-void
-edit_init(void)
-{
- int i, j, lc;
- char *lab;
- struct name_table_entry const *nt;
- int label_strings[STRCOUNT];
-
- _nc_copy_termtype(&original_term, &cur_term->type);
- for (i = 0; i < BOOLCOUNT; i++) {
- original_term.Booleans[i] = CUR Booleans[i];
- }
- for (i = 0; i < NUMCOUNT; i++) {
- original_term.Numbers[i] = CUR Numbers[i];
- }
- /* scan for labels */
- for (i = lc = 0; i < STRCOUNT; i++) {
- original_term.Strings[i] = CUR Strings[i];
- if (strncmp(strnames[i], "lf", 2) == 0) {
- flag_strings[i] |= FLAG_LABEL;
- if (CUR Strings[i]) {
- label_strings[lc++] = i;
- }
- }
- }
- /* scan for function keys */
- for (i = 0; i < STRCOUNT; i++) {
- if ((strnames[i][0] == 'k') && strcmp(strnames[i], "kmous")) {
- flag_strings[i] |= FLAG_FUNCTION_KEY;
- lab = (char *) 0;
- for (j = 0; j < lc; j++) {
- if (!strcmp(&strnames[i][1],
- &strnames[label_strings[j]][1])) {
- lab = CUR Strings[label_strings[j]];
- break;
- }
- }
- enter_key(strnames[i], CUR Strings[i], lab);
- }
- }
- /* Lookup the translated strings */
- for (i = 0; i < TM_last; i++) {
- if ((nt = _nc_find_entry(TM_string[i].name,
- _nc_info_hash_table)) && (nt->nte_type == STRING)) {
- TM_string[i].index = nt->nte_index;
- } else {
- sprintf(temp, "TM_string lookup failed for: %s",
- TM_string[i].name);
- ptextln(temp);
- }
- }
- if ((nt = _nc_find_entry("xon", _nc_info_hash_table)) != 0) {
- xon_index = nt->nte_index;
- }
- xon_shadow = xon_xoff;
-}
-
-/*
-** change_one_entry(test_list, status, ch)
-**
-** Change the padding on the selected cap
-*/
-static void
-change_one_entry(
- struct test_list *test,
- int *state,
- int *chp)
-{
- struct name_table_entry const *nt;
- int i, j, x, star, slash, v, dot, ch;
- const char *s;
- char *t, *p;
- const char *current_string;
- char buf[1024];
- char pad[1024];
-
- i = test->flags & 255;
- if (i == 255) {
- /* read the cap name from the user */
- ptext("enter name: ");
- read_string(pad, 32);
- if (pad[0] == '\0' || pad[1] == '\0') {
- *chp = pad[0];
- return;
- }
- if ((nt = _nc_find_entry(pad, _nc_info_hash_table)) &&
- (nt->nte_type == STRING)) {
- x = nt->nte_index;
- current_string = CUR Strings[x];
- } else {
- sprintf(temp, "%s is not a string capability", pad);
- ptext(temp);
- generic_done_message(test, state, chp);
- return;
- }
- } else {
- x = tx_index[i];
- current_string = tx_cap[i];
- strcpy(pad, strnames[x]);
- }
- if (!current_string) {
- ptextln("That string is not currently defined. Please enter a new value, including the padding delay:");
- read_string(buf, sizeof(buf));
- _nc_reset_input((FILE *) 0, buf);
- _nc_trans_string(pad, pad + sizeof(pad));
- t = (char *)malloc(strlen(pad) + 1);
- strcpy(t, pad);
- CUR Strings[x] = t;
- sprintf(temp, "new string value %s", strnames[x]);
- ptextln(temp);
- ptextln(expand(t));
- return;
- }
- sprintf(buf, "Current value: (%s) %s", pad, _nc_tic_expand(current_string, TRUE, TRUE));
- 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(UChar(buf[0])))) {
- *chp = buf[0];
- return;
- }
- star = slash = FALSE;
- for (j = v = dot = 0; (ch = buf[j]); j++) {
- if (ch >= '0' && ch <= '9') {
- v = ch - '0' + v * 10;
- if (dot) {
- dot++;
- }
- } else if (ch == '*') {
- star = TRUE;
- } else if (ch == '/') {
- slash = TRUE;
- } else if (ch == '.') {
- dot = 1;
- } else {
- sprintf(temp, "Illegal character: %c", ch);
- ptextln(temp);
- ptext("General format: 99.9*/ ");
- generic_done_message(test, state, chp);
- return;
- }
- }
- while (dot > 2) {
- v /= 10;
- dot--;
- }
- if (dot == 2) {
- sprintf(pad, "%d.%d%s%s", v / 10, v % 10,
- star ? "*" : "", slash ? "/" : "");
- } else {
- sprintf(pad, "%d%s%s",
- v, star ? "*" : "", slash ? "/" : "");
- }
- s = current_string;
- t = buf;
- for (v = 0; (ch = *t = *s++); t++) {
- if (v == '$' && ch == '<') {
- while ((ch = *s++) && (ch != '>'));
- for (p = pad; (*++t = *p++); );
- *t++ = '>';
- while ((*t++ = *s++));
- pad[0] = '\0';
- break;
- }
- v = ch;
- }
- if (pad[0]) {
- sprintf(t, "$<%s>", pad);
- }
- if ((t = (char *)malloc(strlen(buf) + 1))) {
- strcpy(t, buf);
- CUR Strings[x] = t;
- if (i != 255) {
- tx_cap[i] = t;
- }
- }
- generic_done_message(test, state, chp);
-}
-
-/*
-** build_change_menu(menu_list)
-**
-** Build the change pad menu list
-*/
-static void
-build_change_menu(
- struct test_menu *m)
-{
- int i, j, k;
- char *s;
-
- for (i = j = 0; i < txp; i++) {
- if ((k = tx_index[i]) >= 0) {
- s = _nc_tic_expand(tx_cap[i], TRUE, TRUE);
- s[40] = '\0';
- sprintf(change_pad_text[j], "%c) (%s) %s",
- 'a' + j, strnames[k], s);
- change_pad_list[j].flags = i;
- change_pad_list[j].lines_needed = 4;
- change_pad_list[j].menu_entry = change_pad_text[j];
- change_pad_list[j].test_procedure = change_one_entry;
- j++;
- }
- }
- strcpy(change_pad_text[j], "z) enter name");
- change_pad_list[j].flags = 255;
- change_pad_list[j].lines_needed = 4;
- change_pad_list[j].menu_entry = change_pad_text[j];
- change_pad_list[j].test_procedure = change_one_entry;
- j++;
- change_pad_list[j].flags = MENU_LAST;
- if (m->menu_title) {
- put_crlf();
- ptextln(m->menu_title);
- }
-}
diff --git a/ncurses-5.3/tack/fun.c b/ncurses-5.3/tack/fun.c
deleted file mode 100644
index 807c641..0000000
--- a/ncurses-5.3/tack/fun.c
+++ /dev/null
@@ -1,912 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Test the function keys on the terminal. The code for echo tests
- * lives here too.
- */
-
-static void funkey_keys(struct test_list *, int *, int *);
-static void funkey_meta(struct test_list *, int *, int *);
-static void funkey_label(struct test_list *, int *, int *);
-static void funkey_prog(struct test_list *, int *, int *);
-static void funkey_local(struct test_list *, int *, int *);
-
-struct test_list funkey_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_CLEAR + FLAG_FUNCTION_KEY, 0, 0, 0, "f) show a list of function keys", show_report, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "smkx) (rmkx", 0,
- "k) test function keys", funkey_keys, 0},
- {MENU_NEXT, 10, "km", "smm rmm", 0, funkey_meta, 0},
- {MENU_NEXT, 8, "nlab) (smln) (pln) (rmln", "lw lh", 0, funkey_label, 0},
- {MENU_NEXT, 2, "pfx", 0, 0, funkey_prog, 0},
- {MENU_NEXT, 2, "pfloc", 0, 0, funkey_local, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static void printer_on(struct test_list *, int *, int *);
-static void printer_mc0(struct test_list *, int *, int *);
-
-struct test_list printer_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT | MENU_CLEAR, 0, "mc4) (mc5) (mc5i", 0, 0, printer_on, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "mc0", 0, 0, printer_mc0, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-#define MAX_STRINGS STRCOUNT
-
-/* scan code externals */
-extern int scan_max; /* length of longest scan code */
-extern char **scan_up, **scan_down, **scan_name;
-extern int *scan_tested, *scan_length;
-
-/* local definitions */
-static const char *fk_name[MAX_STRINGS];
-static char *fkval[MAX_STRINGS];
-static char *fk_label[MAX_STRINGS]; /* function key labels (if any) */
-static int fk_tested[MAX_STRINGS];
-static int fkmax = 1; /* length of longest key */
-static int got_labels = 0; /* true if we have some labels */
-static int key_count = 0;
-static int end_state;
-
-/* unknown function keys */
-#define MAX_FK_UNK 50
-static char *fk_unknown[MAX_FK_UNK];
-static int fk_length[MAX_FK_UNK];
-static int funk;
-
-/*
-** keys_tested(first-time, show-help, hex-output)
-**
-** Display a list of the keys not tested.
-*/
-static void
-keys_tested(
- int first_time,
- int show_help,
- int hex_output)
-{
- int i, l;
- char outbuf[256];
-
- put_clear();
- tty_set();
- flush_input();
- if (got_labels) {
- putln("Function key labels:");
- for (i = 0; i < key_count; ++i) {
- if (fk_label[i]) {
- sprintf(outbuf, "%s %s",
- fk_name[i] ? fk_name[i] : "??", fk_label[i]);
- put_columns(outbuf, strlen(outbuf), 16);
- }
- }
- put_newlines(2);
- }
- if (funk) {
- putln("The following keys are not defined:");
- for (i = 0; i < funk; ++i) {
- put_columns(fk_unknown[i], fk_length[i], 16);
- }
- put_mode(exit_attribute_mode);
- put_newlines(2);
- }
- if (first_time) {
- putln("The following keys are defined:");
- } else {
- putln("The following keys have not been tested:");
- }
- if (scan_mode) {
- for (i = 0; scan_down[i]; i++) {
- if (!scan_tested[i]) {
- if (hex_output) {
- strcpy(outbuf, hex_expand_to(scan_down[i], 3));
- } else {
- strcpy(outbuf, expand(scan_down[i]));
- }
- l = expand_chars;
- if (hex_output) {
- strcat(outbuf, hex_expand_to(scan_up[i], 3));
- } else {
- strcat(outbuf, expand(scan_up[i]));
- }
- expand_chars += l;
- l = strlen(scan_name[i]);
- if (((char_count + 16) & ~15) +
- ((expand_chars + 7) & ~7) + l >= columns) {
- put_crlf();
- } else
- if (char_count + 24 > columns) {
- put_crlf();
- } else if (char_count) {
- putchp(' ');
- }
- put_columns(outbuf, expand_chars, 16);
- put_columns(scan_name[i], l, 8);
- }
- }
- } else {
- for (i = 0; i < key_count; i++) {
- if (!fk_tested[i]) {
- if (hex_output) {
- strcpy(outbuf, hex_expand_to(fkval[i], 3));
- } else {
- strcpy(outbuf, expand(fkval[i]));
- }
- l = strlen(fk_name[i]);
- if (((char_count + 16) & ~15) +
- ((expand_chars + 7) & ~7) + l >= columns) {
- put_crlf();
- } else
- if (char_count + 24 > columns) {
- put_crlf();
- } else
- if (char_count) {
- putchp(' ');
- }
- put_columns(outbuf, expand_chars, 16);
- put_columns(fk_name[i], l, 8);
- }
- }
- }
- put_newlines(2);
- if (show_help) {
- ptextln("Hit any function key. Type 'end' to quit. Type ? to update the display.");
- put_crlf();
- }
-}
-
-/*
-** enter_key(name, value, label)
-**
-** Enter a function key into the data base
-*/
-void
-enter_key(
- const char *name,
- char *value,
- char *lab)
-{
- int j;
-
- if (value) {
- j = strlen(value);
- fkmax = fkmax > j ? fkmax : j;
- /* do not permit duplicates */
- for (j = 0; j < key_count; j++) {
- if (!strcmp(fk_name[j], name)) {
- return;
- }
- }
- fkval[key_count] = value;
- fk_tested[key_count] = 0;
- fk_label[key_count] = lab;
- fk_name[key_count++] = name;
- if (lab) {
- got_labels = TRUE;
- }
- }
-}
-
-
-static void
-fresh_line(void)
-{ /* clear the line for a new function key line */
- if (over_strike) {
- put_crlf();
- } else {
- put_cr();
- if (clr_eol) {
- tc_putp(clr_eol);
- } else {
- put_str(" \r");
- }
- }
-}
-
-
-static int
-end_funky(int ch)
-{ /* return true if this is the end */
- switch (ch) {
- case 'e':
- case 'E':
- end_state = 'e';
- break;
- case 'n':
- case 'N':
- if (end_state == 'e') {
- end_state = 'n';
- } else {
- end_state = 0;
- }
- break;
- case 'd':
- case 'D':
- if (end_state == 'n') {
- end_state = 'd';
- } else {
- end_state = 0;
- }
- break;
- case 'l':
- case 'L':
- if (end_state == 'l') {
- end_state = '?';
- } else {
- end_state = 'l';
- }
- break;
- default:
- end_state = 0;
- break;
- }
- return end_state == 'd';
-}
-
-
-static int
-found_match(char *s, int hx, int cc)
-{ /* return true if this string is a match */
- int j, f;
- char outbuf[256];
-
- if (!*s) {
- return 0;
- }
- if (scan_mode) {
- for (j = f = 0; scan_down[j]; j++) {
- if (scan_length[j] == 0) {
- continue;
- }
- if (!strncmp(s, scan_down[j], scan_length[j])) {
- if (!f) { /* first match */
- put_cr();
- if (hx) {
- put_str(hex_expand_to(s, 10));
- } else {
- put_str(expand_to(s, 10));
- }
- f = 1;
- }
- (void) end_funky(scan_name[j][0]);
- put_str(" ");
- put_str(scan_name[j]);
- scan_tested[j] = 1;
- s += scan_length[j];
- if (strncmp(s, scan_up[j], scan_length[j])) {
- put_str(" scan down");
- } else {
- s += scan_length[j];
- }
- if (!*s) {
- break;
- }
- j = -1;
- }
- if (!strncmp(s, scan_up[j], scan_length[j])) {
- if (!f) { /* first match */
- put_cr();
- if (hx) {
- put_str(hex_expand_to(s, 10));
- } else {
- put_str(expand_to(s, 10));
- }
- f = 1;
- }
- put_str(" ");
- put_str(scan_name[j]);
- put_str(" scan up");
- s += scan_length[j];
- if (!*s) {
- break;
- }
- j = -1;
- }
- }
- } else {
- for (j = f = 0; j < key_count; j++) {
- if (!strcmp(s, fkval[j])) {
- if (!f) { /* first match */
- put_cr();
- if (hx) {
- put_str(hex_expand_to(s, 10));
- } else {
- put_str(expand_to(s, 10));
- }
- f = 1;
- }
- sprintf(outbuf, " (%s)", fk_name[j]);
- put_str(outbuf);
- if (fk_label[j]) {
- sprintf(outbuf, " <%s>", fk_label[j]);
- put_str(outbuf);
- }
- fk_tested[j] = 1;
- }
- }
- }
- if (end_state == '?') {
- keys_tested(0, 1, hx);
- tty_raw(cc, char_mask);
- end_state = 0;
- }
- return f;
-}
-
-
-static int
-found_exit(char *keybuf, int hx, int cc)
-{ /* return true if the user wants to exit */
- int j, k;
- char *s;
-
-
- if (scan_mode) {
- if (*keybuf == '\0') {
- return TRUE;
- }
- } else {
- /* break is a special case */
- if (*keybuf == '\0') {
- fresh_line();
- tty_set();
- ptext("Hit X to exit: ");
- if (wait_here() == 'X') {
- return TRUE;
- }
- keys_tested(0, 1, hx);
- tty_raw(cc, char_mask);
- return FALSE;
- }
- /* is this the end? */
- for (k = 0; (j = (keybuf[k] & STRIP_PARITY)); k++) {
- if (end_funky(j)) {
- return TRUE;
- }
- }
-
- j = TRUE; /* does he need an updated list? */
- for (k = 0; keybuf[k]; k++) {
- j &= (keybuf[k] & STRIP_PARITY) == '?';
- }
- if (j || end_state == '?') {
- keys_tested(0, 1, hx);
- tty_raw(cc, char_mask);
- end_state = 0;
- return FALSE;
- }
- }
-
- put_cr();
- if (hx) {
- s = hex_expand_to(keybuf, 10);
- } else {
- s = expand_to(keybuf, 10);
- }
- sprintf(temp, "%s Unknown", s);
- put_str(temp);
- for (j = 0; j < MAX_FK_UNK; j++) {
- if (j == funk) {
- fk_length[funk] = expand_chars;
- if ((fk_unknown[funk] = (char *)malloc(strlen(s) + 1))) {
- strcpy(fk_unknown[funk++], s);
- }
- break;
- }
- if (fk_length[j] == expand_chars) {
- if (!strcmp(fk_unknown[j], s)) {
- break;
- }
- }
- }
- return FALSE;
-}
-
-/*
-** funkey_keys(test_list, status, ch)
-**
-** Test function keys
-*/
-static void
-funkey_keys(
- struct test_list *t,
- int *state,
- int *ch)
-{
- char keybuf[256];
-
- if (keypad_xmit) {
- tc_putp(keypad_xmit);
- }
- keys_tested(1, 1, hex_out); /* also clears screen */
- keybuf[0] = '\0';
- end_state = 0;
- if (scan_mode) {
- fkmax = scan_max;
- }
- tty_raw(0, char_mask);
- while (end_state != 'd') {
- read_key(keybuf, sizeof(keybuf));
- fresh_line();
- if (found_match(keybuf, hex_out, 0)) {
- continue;
- }
- if (found_exit(keybuf, hex_out, 0)) {
- break;
- }
- }
- if (keypad_local) {
- tc_putp(keypad_local);
- }
- keys_tested(0, 0, hex_out);
- ptext("Function key test ");
- generic_done_message(t, state, ch);
-}
-
-int
-tty_meta_prep(void)
-{ /* print a warning before the meta key test */
- if (not_a_tty) {
- return 0;
- }
- if (initial_stty_query(TTY_8_BIT)) {
- return 0;
- }
- ptext("The meta key test must be run with the");
- ptext(" terminal set for 8 data bits. Two stop bits");
- ptext(" may also be needed for correct display. I will");
- ptext(" transmit 8 bit data but if the terminal is set for");
- ptextln(" 7 bit data, garbage may appear on the screen.");
- return 1;
-}
-
-/*
-** funkey_meta(test_list, status, ch)
-**
-** Test meta key (km) (smm) (rmm)
-*/
-static void
-funkey_meta(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, k, len;
- char outbuf[256];
-
- if (has_meta_key) {
- put_crlf();
- if (char_mask != ALLOW_PARITY) {
- if (tty_meta_prep()) {
- ptext("\nHit any key to continue > ");
- (void) wait_here();
- put_crlf();
- }
- }
- ptext("Begin meta key test. (km) (smm) (rmm) Hit any key");
- ptext(" with the meta key. The character will be");
- ptext(" displayed in hex. If the meta key is working");
- ptext(" then the most significant bit will be set. Type");
- ptextln(" 'end' to exit.");
- tty_raw(1, ALLOW_PARITY);
- tc_putp(meta_on);
-
- for (i = j = k = len = 0; i != 'e' || j != 'n' || k != 'd';) {
- i = j;
- j = k;
- k = getchp(ALLOW_PARITY);
- if (k == EOF) {
- break;
- }
- if ((len += 3) >= columns) {
- put_crlf();
- len = 3;
- }
- sprintf(outbuf, "%02X ", k);
- put_str(outbuf);
- k &= STRIP_PARITY;
- }
- tc_putp(meta_off);
- put_crlf();
- tty_set();
- put_crlf();
- } else {
- ptext("(km) Has-meta-key is not set. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** funkey_label(test_list, status, ch)
-**
-** Test labels (nlab) (smln) (pln) (rmln) (lw) (lh)
-*/
-static void
-funkey_label(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- char outbuf[256];
-
- if (num_labels == -1) {
- ptextln("Your terminal has no labels. (nlab)");
- } else {
- sprintf(temp, "Your terminal has %d labels (nlab) that are %d characters wide (lw) and %d lines high (lh)",
- num_labels, label_width, label_height);
- ptext(temp);
- ptextln(" Testing (smln) (pln) (rmln)");
- if (label_on) {
- tc_putp(label_on);
- }
- if (label_width <= 0) {
- label_width = sizeof(outbuf) - 1;
- }
- for (i = 1; i <= num_labels; i++) {
- sprintf(outbuf, "L%d..............................", i);
- outbuf[label_width] = '\0';
- tc_putp(tparm(plab_norm, i, outbuf));
- }
- if (label_off) {
- ptext("Hit any key to remove the labels: ");
- (void) wait_here();
- tc_putp(label_off);
- }
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** funkey_prog(test_list, status, ch)
-**
-** Test program function keys (pfx)
-*/
-static void
-funkey_prog(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, fk;
- char mm[256];
-
- fk = 1; /* use function key 1 for now */
- if (pkey_xmit) {
- /* test program function key */
- sprintf(temp,
- "(pfx) Set function key %d to transmit abc\\n", fk);
- ptextln(temp);
- tc_putp(tparm(pkey_xmit, fk, "abc\n"));
- sprintf(temp, "Hit function key %d\n", fk);
- ptextln(temp);
- for (i = 0; i < 4; ++i)
- mm[i] = getchp(STRIP_PARITY);
- mm[i] = '\0';
- put_crlf();
- if (mm[0] != 'a' || mm[1] != 'b' || mm[2] != 'c') {
- sprintf(temp, "Error string received was: %s", expand(mm));
- ptextln(temp);
- } else {
- putln("Thank you\n");
- }
- flush_input();
- if (key_f1) {
- tc_putp(tparm(pkey_xmit, fk, key_f1));
- }
- } else {
- ptextln("Function key transmit (pfx), not present.");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** funkey_local(test_list, status, ch)
-**
-** Test program local function keys (pfloc)
-*/
-static void
-funkey_local(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int fk;
-
- fk = 1;
- if (pkey_local) {
- /* test local function key */
- sprintf(temp,
- "(pfloc) Set function key %d to execute a clear and print \"Done!\"", fk);
- ptextln(temp);
- sprintf(temp, "%sDone!", liberated(clear_screen));
- tc_putp(tparm(pkey_local, fk, temp));
- sprintf(temp, "Hit function key %d. Then hit return.", fk);
- ptextln(temp);
- (void) wait_here();
- flush_input();
- if (key_f1 && pkey_xmit) {
- tc_putp(tparm(pkey_xmit, fk, key_f1));
- }
- } else {
- ptextln("Function key execute local (pfloc), not present.");
- }
-
- generic_done_message(t, state, ch);
-}
-
-/*
-** printer_on(test_list, status, ch)
-**
-** Test printer on/off (mc4) (mc5) (mc5i)
-*/
-static void
-printer_on(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (!prtr_on || !prtr_off) {
- ptextln("Printer on/off missing. (mc5) (mc4)");
- } else if (prtr_silent) {
- ptextln("Your printer is silent. (mc5i) is set.");
- tc_putp(prtr_on);
- ptextln("This line should be on the printer but not your screen. (mc5)");
- tc_putp(prtr_off);
- ptextln("This line should be only on the screen. (mc4)");
- } else {
- ptextln("Your printer is not silent. (mc5i) is reset.");
- tc_putp(prtr_on);
- ptextln("This line should be on the printer and the screen. (mc5)");
- tc_putp(prtr_off);
- ptextln("This line should only be on the screen. (mc4)");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** printer_mc0(test_list, status, ch)
-**
-** Test screen print (mc0)
-*/
-static void
-printer_mc0(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (print_screen) {
- ptext("I am going to send the contents of the screen to");
- ptext(" the printer, then wait for a keystroke from you.");
- ptext(" All of the text that appears on the screen");
- ptextln(" should be printed. (mc0)");
- tc_putp(print_screen);
- } else {
- ptext("(mc0) Print-screen is not present. ");
- }
- generic_done_message(t, state, ch);
-}
-
-
-static void
-line_pattern(void)
-{ /* put up a pattern that will help count the
- number of lines */
- int i, j;
-
- put_clear();
- if (over_strike) {
- for (i = 0; i < 100; i++) {
- if (i) {
- put_crlf();
- }
- for (j = i / 10; j; j--) {
- put_this(' ');
- }
- put_this('0' + ((i + 1) % 10));
- }
- } else /* I assume it will scroll */ {
- for (i = 100; i; i--) {
- sprintf(temp, "\r\n%d", i);
- put_str(temp);
- }
- }
-}
-
-
-static void
-column_pattern(void)
-{ /* put up a pattern that will help count the
- number of columns */
- int i, j;
-
- put_clear();
- for (i = 0; i < 20; i++) {
- for (j = 1; j < 10; j++) {
- put_this('0' + j);
- }
- put_this('.');
- }
-}
-
-/*
-** report_help()
-**
-** Print the help text for the echo tests
-*/
-static void
-report_help(int crx)
-{
- ptextln("The following commands may also be entered:");
- ptextln(" clear clear screen.");
- ptextln(" columns print a test pattern to help count screen width.");
- ptextln(" lines print a test pattern to help count screen length.");
- ptextln(" end exit.");
- ptextln(" echo redisplay last report.");
- if (crx) {
- ptextln(" hex redisplay last report in hex.");
- } else {
- ptextln(" hex toggle hex display mode.");
- }
- ptextln(" help display this list.");
- ptextln(" high toggle forced high bit (0x80).");
- ptextln(" scan toggle scan mode.");
- ptextln(" one echo one character after <cr> or <lf> as is. (report mode)");
- ptextln(" two echo two characters after <cr> or <lf> as is.");
- ptextln(" all echo all characters after <cr> or <lf> as is. (echo mode)");
-}
-
-/*
-** tools_report(testlist, state, ch)
-**
-** Run the echo tool and report tool
-*/
-void
-tools_report(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *pch GCC_UNUSED)
-{
- int i, j, ch, crp, crx, high_bit, save_scan_mode, hex_display;
- char buf[1024];
- char txt[8];
-
- hex_display = hex_out;
- put_clear();
- if ((crx = (t->flags & 255)) == 1) {
- ptext("Characters after a CR or LF will be echoed as");
- ptextln(" is. All other characters will be expanded.");
- report_help(crx);
- } else { /* echo test */
- ptextln("Begin echo test.");
- report_help(crx);
- }
- txt[sizeof(txt) - 1] = '\0';
- save_scan_mode = scan_mode;
- tty_raw(1, char_mask);
- for (i = crp = high_bit = 0;;) {
- ch = getchp(char_mask);
- if (ch == EOF) {
- break;
- }
- if (i >= (int) sizeof(buf) - 1) {
- i = 0;
- }
- buf[i++] = ch;
- buf[i] = '\0';
- for (j = 0; j < (int) sizeof(txt) - 1; j++) {
- txt[j] = txt[j + 1];
- }
- txt[sizeof(txt) - 1] = ch & STRIP_PARITY;
- if (crx == 0) { /* echo test */
- if (hex_display) {
- ptext(hex_expand_to(&buf[i - 1], 3));
- } else {
- tc_putch(ch | high_bit);
- }
- } else /* status report test */
- if (ch == '\n' || ch == '\r') {
- put_crlf();
- crp = 0;
- } else if (crp++ < crx) {
- tc_putch(ch | high_bit);
- } else {
- put_str(expand(&buf[i - 1]));
- }
- if (!strncmp(&txt[sizeof(txt) - 7], "columns", 7)) {
- column_pattern();
- buf[i = 0] = '\0';
- crp = 0;
- }
- if (!strncmp(&txt[sizeof(txt) - 5], "lines", 5)) {
- line_pattern();
- buf[i = 0] = '\0';
- crp = 0;
- }
- if (!strncmp(&txt[sizeof(txt) - 5], "clear", 5)) {
- put_clear();
- buf[i = 0] = '\0';
- crp = 0;
- }
- if (!strncmp(&txt[sizeof(txt) - 4], "high", 4)) {
- high_bit ^= 0x80;
- if (high_bit) {
- ptextln("\nParity bit set");
- } else {
- ptextln("\nParity bit reset");
- }
- }
- if (!strncmp(&txt[sizeof(txt) - 4], "help", 4)) {
- put_crlf();
- report_help(crx);
- }
- if (!strncmp(&txt[sizeof(txt) - 4], "echo", 4)) {
- /* display the last status report */
- /* clear bypass condition on Tek terminals */
- put_crlf();
- if (i >= 4) {
- buf[i -= 4] = '\0';
- }
- put_str(expand(buf));
- }
- if (save_scan_mode &&
- !strncmp(&txt[sizeof(txt) - 4], "scan", 4)) {
- /* toggle scan mode */
- scan_mode = !scan_mode;
- }
- if (!strncmp(&txt[sizeof(txt) - 3], "end", 3))
- break;
- if (!strncmp(&txt[sizeof(txt) - 3], "hex", 3)) {
- if (crx) {
- /* display the last status report in hex */
- /* clear bypass condition on Tek terminals */
- put_crlf();
- if (i >= 3) {
- buf[i -= 3] = '\0';
- }
- put_str(hex_expand_to(buf, 3));
- } else {
- hex_display = !hex_display;
- }
- }
- if (!strncmp(&txt[sizeof(txt) - 3], "two", 3))
- crx = 2;
- if (!strncmp(&txt[sizeof(txt) - 3], "one", 3))
- crx = 1;
- if (!strncmp(&txt[sizeof(txt) - 3], "all", 3))
- crx = 0;
- }
- scan_mode = save_scan_mode;
- put_crlf();
- tty_set();
- if (crx) {
- ptextln("End of status report test.");
- } else {
- ptextln("End of echo test.");
- }
-}
diff --git a/ncurses-5.3/tack/init.c b/ncurses-5.3/tack/init.c
deleted file mode 100644
index 9b94ccc..0000000
--- a/ncurses-5.3/tack/init.c
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-/* initialization and wrapup code */
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-#if NCURSES_VERSION_MAJOR >= 5 || NCURSES_VERSION_PATCH >= 981219
-#define _nc_get_curterm(p) _nc_get_tty_mode(p)
-#endif
-
-FILE *debug_fp;
-char temp[1024];
-char tty_basename[64];
-
-void
-put_name(const char *cap, const char *name)
-{ /* send the cap name followed by the cap */
- if (cap) {
- ptext(name);
- tc_putp(cap);
- }
-}
-
-static void
-report_cap(const char *tag, const char *s)
-{ /* expand the cap or print *** missing *** */
- int i;
-
- ptext(tag);
- for (i = char_count; i < 13; i++) {
- putchp(' ');
- }
- put_str(" = ");
- if (s) {
- putln(expand(s));
- } else {
- putln("*** missing ***");
- }
-}
-
-
-void
-reset_init(void)
-{ /* send the reset and init strings */
- int i;
-
- ptext("Terminal reset");
- i = char_count;
- put_name(reset_1string, " (rs1)");
- put_name(reset_2string, " (rs2)");
- /* run the reset file */
- if (reset_file && reset_file[0]) {
- FILE *fp;
- int ch;
-
- can_test("rf", FLAG_TESTED);
- if ((fp = fopen(reset_file, "r"))) { /* send the reset file */
- sprintf(temp, " (rf) %s", reset_file);
- ptextln(temp);
- while (1) {
- ch = getc(fp);
- if (ch == EOF)
- break;
- put_this(ch);
- }
- fclose(fp);
- } else {
- sprintf(temp, "\nCannot open reset file (rf) %s", reset_file);
- ptextln(temp);
- }
- }
- put_name(reset_3string, " (rs3)");
- if (i != char_count) {
- put_crlf();
- }
- ptext(" init");
- put_name(init_1string, " (is1)");
- put_name(init_2string, " (is2)");
- if (set_tab && clear_all_tabs && init_tabs != 8) {
- put_crlf();
- tc_putp(clear_all_tabs);
- for (char_count = 0; char_count < columns; char_count++) {
- put_this(' ');
- if ((char_count & 7) == 7) {
- tc_putp(set_tab);
- }
- }
- put_cr();
- }
- /* run the initialization file */
- if (init_file && init_file[0]) {
- FILE *fp;
- int ch;
-
- can_test("if", FLAG_TESTED);
- if ((fp = fopen(init_file, "r"))) { /* send the init file */
- sprintf(temp, " (if) %s", init_file);
- ptextln(temp);
- while (1) {
- ch = getc(fp);
- if (ch == EOF)
- break;
- put_this(ch);
- }
- fclose(fp);
- } else {
- sprintf(temp, "\nCannot open init file (if) %s", init_file);
- ptextln(temp);
- }
- }
- if (init_prog) {
- can_test("iprog", FLAG_TESTED);
- (void) system(init_prog);
- }
- put_name(init_3string, " (is3)");
-
- fflush(stdout);
-}
-
-/*
-** display_basic()
-**
-** display the basic terminal definitions
-*/
-void
-display_basic(void)
-{
- put_str("Name: ");
- putln(ttytype);
-
- report_cap("\\r ^M (cr)", carriage_return);
- report_cap("\\n ^J (ind)", scroll_forward);
- report_cap("\\b ^H (cub1)", cursor_left);
- report_cap("\\t ^I (ht)", tab);
-/* report_cap("\\f ^L (ff)", form_feed); */
- if (newline) {
- /* OK if missing */
- report_cap(" (nel)", newline);
- }
- report_cap(" (clear)", clear_screen);
- if (!cursor_home && cursor_address) {
- report_cap("(cup) (home)", tparm(cursor_address, 0, 0));
- } else {
- report_cap(" (home)", cursor_home);
- }
-#ifdef user9
- report_cap("ENQ (u9)", user9);
-#endif
-#ifdef 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);
-}
-
-/*
-** curses_setup(exec_name)
-**
-** Startup ncurses
-*/
-void
-curses_setup(
- char *exec_name)
-{
- int status;
- static TERMTYPE term;
- char tty_filename[2048];
-
- tty_init();
-
- /**
- See if the terminal is in the terminfo data base. This call has
- two useful benefits, 1) it returns the filename of the terminfo entry,
- and 2) it searches only terminfo's. This allows us to abort before
- ncurses starts scanning the termcap file.
- **/
- if ((status = _nc_read_entry(tty_basename, tty_filename, &term)) == 0) {
- fprintf(stderr, "Terminal not found: TERM=%s\n", tty_basename);
- show_usage(exec_name);
- exit(1);
- }
- if (status == -1) {
- fprintf(stderr, "Terminfo database is inaccessible\n");
- exit(1);
- }
-
- /**
- This call will load the terminfo data base and set the cur-term
- variable. Only terminals that actually exist will get here so its
- OK to ignore errors. This is a good thing since ncurses does not
- permit (os) or (gn) to be set.
- **/
- setupterm(tty_basename, 1, &status);
-
- /**
- Get the current terminal definitions. This must be done before
- getting the baudrate.
- **/
- _nc_get_curterm(&cur_term->Nttyb);
- tty_baud_rate = baudrate();
- tty_cps = (tty_baud_rate << 1) / tty_frame_size;
-
- /* set up the defaults */
- replace_mode = TRUE;
- scan_mode = 0;
- char_count = 0;
- select_delay_type = debug_level = 0;
- char_mask = (meta_on && meta_on[0] == '\0') ? ALLOW_PARITY : STRIP_PARITY;
- /* Don't change the XON/XOFF modes yet. */
- select_xon_xoff = initial_stty_query(TTY_XON_XOFF) ? 1 : needs_xon_xoff;
-
- fflush(stdout); /* flush any output */
- tty_set();
-
- go_home(); /* set can_go_home */
- put_clear(); /* set can_clear_screen */
-
- if (send_reset_init) {
- reset_init();
- }
-
- /*
- I assume that the reset and init strings may not have the correct
- pads. (Because that part of the test comes much later.) Because
- of this, I allow the terminal some time to catch up.
- */
- fflush(stdout); /* waste some time */
- sleep(1); /* waste more time */
- charset_can_test();
- can_test("lines cols cr nxon rf if iprog rmp smcup rmcup", FLAG_CAN_TEST);
- edit_init(); /* initialize the edit data base */
-
- if (send_reset_init && enter_ca_mode) {
- tc_putp(enter_ca_mode);
- put_clear(); /* just in case we switched pages */
- }
- put_crlf();
- ptext("Using terminfo from: ");
- ptextln(tty_filename);
- put_crlf();
-
- if (tty_can_sync == SYNC_NEEDED) {
- verify_time();
- }
-
- display_basic();
-}
-
-/*
-** bye_kids(exit-condition)
-**
-** Shutdown the terminal, clear the signals, and exit
-*/
-void
-bye_kids(int n)
-{ /* reset the tty and exit */
- ignoresig();
- if (send_reset_init) {
- if (exit_ca_mode) {
- tc_putp(exit_ca_mode);
- }
- if (initial_stty_query(TTY_XON_XOFF)) {
- if (enter_xon_mode) {
- tc_putp(enter_xon_mode);
- }
- } else if (exit_xon_mode) {
- tc_putp(exit_xon_mode);
- }
- }
- if (debug_fp) {
- fclose(debug_fp);
- }
- if (log_fp) {
- fclose(log_fp);
- }
- tty_reset();
- fclose(stdin);
- fclose(stdout);
- fclose(stderr);
- if (not_a_tty)
- sleep(1);
- exit(n);
-}
diff --git a/ncurses-5.3/tack/menu.c b/ncurses-5.3/tack/menu.c
deleted file mode 100644
index d5e0f68..0000000
--- a/ncurses-5.3/tack/menu.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- Menu control
- */
-
-static void test_byname(struct test_menu *, int *, int *);
-
-struct test_list *augment_test;
-char prompt_string[80]; /* menu prompt storage */
-
-/*
-** menu_prompt()
-**
-** Print the menu prompt string.
-*/
-void
-menu_prompt(void)
-{
- ptext(&prompt_string[1]);
-}
-
-/*
-** menu_test_loop(test-structure, state, control-character)
-**
-** This function implements the repeat test function.
-*/
-static void
-menu_test_loop(
- struct test_list *test,
- int *state,
- int *ch)
-{
- int nch, p;
-
- if ((test->flags & MENU_REP_MASK) && (augment_test != test)) {
- /* set the augment variable (first time only) */
- p = (test->flags >> 8) & 15;
- if ((test->flags & MENU_REP_MASK) == MENU_LM1) {
- augment = lines - 1;
- } else
- if ((test->flags & MENU_ONE_MASK) == MENU_ONE) {
- augment = 1;
- } else
- if ((test->flags & MENU_LC_MASK) == MENU_lines) {
- augment = lines * p / 10;
- } else
- if ((test->flags & MENU_LC_MASK) == MENU_columns) {
- augment = columns * p / 10;
- } else {
- augment = 1;
- }
- augment_test = test;
- set_augment_txt();
- }
- do {
- if ((test->flags | *state) & MENU_CLEAR) {
- put_clear();
- } else
- if (line_count + test->lines_needed >= lines) {
- put_clear();
- }
- nch = 0;
- if (test->test_procedure) {
- /* The procedure takes precedence so I can pass
- the menu entry as an argument.
- */
- can_test(test->caps_done, FLAG_TESTED);
- can_test(test->caps_tested, FLAG_TESTED);
- test->test_procedure(test, state, &nch);
- } else
- if (test->sub_menu) {
- /* nested menu's */
- menu_display(test->sub_menu, &nch);
- *state = 0;
- if (nch == 'q' || nch == 's') {
- /* Quit and skip are killed here */
- nch = '?';
- }
- } else {
- break; /* cya */
- }
- if (nch == '\r' || nch == '\n' || nch == 'n') {
- nch = 0;
- break;
- }
- } while (nch == 'r');
- *ch = nch;
-}
-
-/*
-** menu_display(menu-structure, flags)
-**
-** This function implements menu control.
-*/
-void
-menu_display(
- struct test_menu *menu,
- int *last_ch)
-{
- int test_state = 0, run_standard_tests;
- int hot_topic, ch = 0, nch = 0;
- struct test_list *mt;
- struct test_list *repeat_tests = 0;
- int repeat_state = 0;
- int prompt_length;
-
- prompt_length = strlen(prompt_string);
- if (menu->ident) {
- sprintf(&prompt_string[prompt_length], "/%s", menu->ident);
- }
- hot_topic = menu->default_action;
- run_standard_tests = menu->standard_tests ?
- menu->standard_tests[0] : -1;
- if (!last_ch) {
- last_ch = &ch;
- }
- while (1) {
- if (ch == 0) {
- /* Display the menu */
- put_crlf();
- if (menu->menu_function) {
- /*
- this function may be used to restrict menu
- entries. If used it must print the title.
- */
- menu->menu_function(menu);
- } else
- if (menu->menu_title) {
- ptextln(menu->menu_title);
- }
- for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
- if (mt->menu_entry) {
- ptext(" ");
- ptextln(mt->menu_entry);
- }
- }
- if (menu->standard_tests) {
- ptext(" ");
- ptextln(menu->standard_tests);
- ptextln(" r) repeat test");
- ptextln(" s) skip to next test");
- }
- ptextln(" q) quit");
- ptextln(" ?) help");
- }
- if (ch == 0 || ch == REQUEST_PROMPT) {
- put_crlf();
- ptext(&prompt_string[1]);
- if (hot_topic) {
- ptext(" [");
- putchp(hot_topic);
- ptext("]");
- }
- ptext(" > ");
- /* read a character */
- ch = wait_here();
- }
- if (ch == '\r' || ch == '\n') {
- ch = hot_topic;
- }
- if (ch == 'q') {
- break;
- }
- if (ch == '?') {
- ch = 0;
- continue;
- }
- nch = ch;
- ch = 0;
- /* Run one of the standard tests (by request) */
- for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
- if (mt->menu_entry && (nch == mt->menu_entry[0])) {
- if (mt->flags & MENU_MENU) {
- test_byname(menu, &test_state, &nch);
- } else {
- menu_test_loop(mt, &test_state, &nch);
- }
- ch = nch;
- if ((mt->flags & MENU_COMPLETE) && ch == 0) {
- /* top level */
- hot_topic = 'q';
- ch = '?';
- }
- }
- }
- if (menu->standard_tests && nch == 'r') {
- menu->resume_tests = repeat_tests;
- test_state = repeat_state;
- nch = run_standard_tests;
- }
- if (nch == run_standard_tests) {
- if (!(mt = menu->resume_tests)) {
- mt = menu->tests;
- }
- if (mt->flags & MENU_LAST) {
- mt = menu->tests;
- }
- /* Run the standard test suite */
- for ( ; (mt->flags & MENU_LAST) == 0; ) {
- if ((mt->flags & MENU_NEXT) == MENU_NEXT) {
- repeat_tests = mt;
- repeat_state = test_state;
- nch = run_standard_tests;
- menu_test_loop(mt, &test_state, &nch);
- if (nch != 0 && nch != 'n') {
- ch = nch;
- break;
- }
- if (test_state & MENU_STOP) {
- break;
- }
- }
- mt++;
- }
- if (ch == 0) {
- ch = hot_topic;
- }
- menu->resume_tests = mt;
- menu->resume_state = test_state;
- menu->resume_char = ch;
-
- if (ch == run_standard_tests) {
- /* pop up a level */
- break;
- }
- }
- }
- *last_ch = ch;
- prompt_string[prompt_length] = '\0';
-}
-
-/*
-** generic_done_message(test_list)
-**
-** Print the Done message and request input.
-*/
-void
-generic_done_message(
- struct test_list *test,
- int *state,
- int *ch)
-{
- char done_message[128];
-
- if (test->caps_done) {
- sprintf(done_message, "(%s) Done ", test->caps_done);
- ptext(done_message);
- } else {
- ptext("Done ");
- }
- *ch = wait_here();
- if (*ch == '\r' || *ch == '\n' || *ch == 'n') {
- *ch = 0;
- }
- if (*ch == 's') {
- *state |= MENU_STOP;
- *ch = 0;
- }
-}
-
-/*
-** menu_clear_screen(test, state, ch)
-**
-** Just clear the screen.
-*/
-void
-menu_clear_screen(
- struct test_list *test GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- put_clear();
-}
-
-/*
-** menu_reset_init(test, state, ch)
-**
-** Send the reset and init strings.
-*/
-void
-menu_reset_init(
- struct test_list *test GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- reset_init();
- put_crlf();
-}
-
-/*
-** subtest_menu(test, state, ch)
-**
-** Scan the menu looking for something to execute
-** Return TRUE if we found anything.
-*/
-int
-subtest_menu(
- struct test_list *test,
- int *state,
- int *ch)
-{
- struct test_list *mt;
-
- if (*ch) {
- for (mt = test; (mt->flags & MENU_LAST) == 0; mt++) {
- if (mt->menu_entry && (*ch == mt->menu_entry[0])) {
- *ch = 0;
- menu_test_loop(mt, state, ch);
- return TRUE;
- }
- }
- }
- return FALSE;
-}
-
-/*
-** menu_can_scan(menu-structure)
-**
-** Recursively scan the menu tree and find which cap names can be tested.
-*/
-void
-menu_can_scan(
- const struct test_menu *menu)
-{
- struct test_list *mt;
-
- for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
- can_test(mt->caps_done, FLAG_CAN_TEST);
- can_test(mt->caps_tested, FLAG_CAN_TEST);
- if (!(mt->test_procedure)) {
- if (mt->sub_menu) {
- menu_can_scan(mt->sub_menu);
- }
- }
- }
-}
-
-/*
-** menu_search(menu-structure, cap)
-**
-** Recursively search the menu tree and execute any tests that use cap.
-*/
-static void
-menu_search(
- struct test_menu *menu,
- int *state,
- int *ch,
- char *cap)
-{
- struct test_list *mt;
- int nch;
-
- for (mt = menu->tests; (mt->flags & MENU_LAST) == 0; mt++) {
- nch = 0;
- if (cap_match(mt->caps_done, cap)
- || cap_match(mt->caps_tested, cap)) {
- menu_test_loop(mt, state, &nch);
- }
- if (!(mt->test_procedure)) {
- if (mt->sub_menu) {
- menu_search(mt->sub_menu, state, &nch, cap);
- }
- }
- if (*state & MENU_STOP) {
- break;
- }
- if (nch != 0 && nch != 'n') {
- *ch = nch;
- break;
- }
- }
-}
-
-/*
-** test_byname(menu, state, ch)
-**
-** Get a cap name then run all tests that use that cap.
-*/
-static void
-test_byname(
- struct test_menu *menu,
- int *state GCC_UNUSED,
- int *ch)
-{
- int test_state = 0;
- char cap[32];
-
- if (tty_can_sync == SYNC_NOT_TESTED) {
- verify_time();
- }
- ptext("enter name: ");
- read_string(cap, sizeof(cap));
- if (cap[0]) {
- menu_search(menu, &test_state, ch, cap);
- }
- *ch = '?';
-}
diff --git a/ncurses-5.3/tack/modes.c b/ncurses-5.3/tack/modes.c
deleted file mode 100644
index dbc1643..0000000
--- a/ncurses-5.3/tack/modes.c
+++ /dev/null
@@ -1,913 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- * Tests boolean flags and terminal modes.
- */
-static void subtest_os(struct test_list *, int *, int *);
-static void subtest_rmam(struct test_list *, int *, int *);
-static void subtest_smam(struct test_list *, int *, int *);
-static void subtest_am(struct test_list *, int *, int *);
-static void subtest_ul(struct test_list *, int *, int *);
-static void subtest_uc(struct test_list *, int *, int *);
-static void subtest_bw(struct test_list *, int *, int *);
-static void subtest_xenl(struct test_list *, int *, int *);
-static void subtest_eo(struct test_list *, int *, int *);
-static void subtest_xmc(struct test_list *, int *, int *);
-static void subtest_xhp(struct test_list *, int *, int *);
-static void subtest_mir(struct test_list *, int *, int *);
-static void subtest_msgr(struct test_list *, int *, int *);
-static void subtest_tbc(struct test_list *, int *, int *);
-static void subtest_xt(struct test_list *, int *, int *);
-static void subtest_hts(struct test_list *, int *, int *);
-static void subtest_cbt(struct test_list *, int *, int *);
-static void subtest_in(struct test_list *, int *, int *);
-static void subtest_dadb(struct test_list *, int *, int *);
-
-struct test_list mode_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {MENU_NEXT, 3, "os", 0, 0, subtest_os, 0},
- {MENU_NEXT, 1, "rmam", 0, 0, subtest_rmam, 0},
- {MENU_NEXT, 1, "smam", 0, 0, subtest_smam, 0},
- {MENU_NEXT, 1, "am", 0, 0, subtest_am, 0},
- {MENU_NEXT, 3, "ul", 0, 0, subtest_ul, 0},
- {MENU_NEXT, 3, "uc", 0, 0, subtest_uc, 0},
- {MENU_NEXT, 3, "bw", 0, 0, subtest_bw, 0},
- {MENU_NEXT, 4, "xenl", 0, 0, subtest_xenl, 0},
- {MENU_NEXT, 3, "eo", 0, 0, subtest_eo, 0},
- {MENU_NEXT, 3, "xmc", 0, 0, subtest_xmc, 0},
- {MENU_NEXT, 3, "xhp", 0, 0, subtest_xhp, 0},
- {MENU_NEXT, 6, "mir", 0, 0, subtest_mir, 0},
- {MENU_NEXT, 6, "msgr", 0, 0, subtest_msgr, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "tbc", "it", 0, subtest_tbc, 0},
- {MENU_NEXT | MENU_CLEAR, 0, "hts", "it", 0, subtest_hts, 0},
- {MENU_NEXT, 4, "xt", "it", 0, subtest_xt, 0},
- {MENU_NEXT, 1, "cbt", "it", 0, subtest_cbt, 0},
- {MENU_NEXT, 6, "in", 0, 0, subtest_in, 0},
- {MENU_NEXT, 1, "da) (db", 0, 0, subtest_dadb, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*
-** subtest_os(test_list, status, ch)
-**
-** test over strike mode (os)
-*/
-static void
-subtest_os(
- struct test_list *t,
- int *state,
- int *ch)
-{
- ptext("(os) should be true, not false.");
- put_cr();
- ptextln("(os) should be false.");
- sprintf(temp, "(os) over-strike is %s in the data base. ",
- over_strike ? "true" : "false");
- ptext(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_rmam(test_list, status, ch)
-**
-** test exit automatic margins mode (rmam)
-*/
-static void
-subtest_rmam(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j;
-
- if (!exit_am_mode) {
- ptext("(rmam) not present. ");
- } else
- if (!can_go_home) {
- ptext("(rmam) not tested, no way to home cursor. ");
- } else
- if (over_strike) {
- put_clear();
- go_home();
- tc_putp(exit_am_mode);
- ptext("\n(rmam) will reset (am)");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- ptext("(rmam) will not reset (am)");
- go_home();
- put_newlines(2);
- } else {
- put_clear();
- go_home();
- tc_putp(exit_am_mode);
- ptext("\n(rmam) will reset (am)");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- ptext("(rmam) will not reset (am) ");
- go_home();
- put_str(" ");
- go_home();
- put_newlines(2);
- }
- ptext("Exit-automatic-margins ");
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_smam(test_list, status, ch)
-**
-** test enter automatic margins mode (smam)
-*/
-static void
-subtest_smam(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!enter_am_mode) {
- ptext("(smam) not present. ");
- } else
- if (!can_go_home) {
- ptext("(smam) not tested, no way to home cursor. ");
- } else
- if (over_strike) {
- put_clear();
- go_home();
- tc_putp(enter_am_mode);
- ptext("\n(smam) will ");
- i = char_count;
- ptext("not set (am)");
- go_home();
- for (j = -i; j < columns; j++)
- put_this(' ');
- put_str("@@@");
- put_newlines(2);
- } else {
- put_clear();
- go_home();
- tc_putp(enter_am_mode);
- ptext("\n(smam) will not set (am)");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- ptext("(smam) will set (am) ");
- go_home();
- put_str(" ");
- put_newlines(2);
- }
- ptext("Enter-automatic-margins ");
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_am(test_list, status, ch)
-**
-** test automatic margins (am)
-*/
-static void
-subtest_am(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!can_go_home) {
- ptextln("(am) not tested, no way to home cursor. ");
- } else
- if (over_strike) {
- put_clear();
- go_home();
- ptext("\n(am) should ");
- i = char_count;
- ptext("not be set");
- go_home();
- for (j = -i; j < columns; j++)
- put_this(' ');
- put_str("@@@");
- go_home();
- put_newlines(2);
- sprintf(temp, "(am) is %s in the data base",
- auto_right_margin ? "true" : "false");
- ptextln(temp);
- } else {
- put_clear();
- go_home();
- ptext("\n(am) should not be set");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- ptext("(am) should be set ");
- go_home();
- put_str(" \n\n");
- sprintf(temp, "(am) is %s in the data base",
- auto_right_margin ? "true" : "false");
- ptextln(temp);
- }
- ptext("Automatic-right-margin ");
- generic_done_message(t, state, ch);
-}
-
-/* Note: uprint() sends underscore back-space character, and
- ucprint() sends character back-space underscore. */
-
-/*
-** uprint(string)
-**
-** underline string for (ul) test
-*/
-static void
-uprint(const char *s)
-{
- if (s) {
- while (*s) {
- put_str("_\b");
- putchp(*s++);
- }
- }
-}
-
-/*
-** ucprint(string)
-**
-** underline string for (uc) test
-*/
-static void
-ucprint(const char *s)
-{
- if (s) {
- while (*s) {
- putchp(*s++);
- putchp('\b');
- tc_putp(underline_char);
- }
- }
-}
-
-/*
-** subtest_ul(test_list, status, ch)
-**
-** test transparent underline (ul)
-*/
-static void
-subtest_ul(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (!over_strike) {
- /* (ul) is used only if (os) is reset */
- put_crlf();
- sprintf(temp, "This text should %sbe underlined.",
- transparent_underline ? "" : "not ");
- uprint(temp);
- put_crlf();
- ptextln("If the above line is not underlined the (ul) should be false.");
- sprintf(temp, "(ul) Transparent-underline is %s in the data base",
- transparent_underline ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_uc(test_list, status, ch)
-**
-** test underline character (uc)
-*/
-static void
-subtest_uc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (!over_strike) {
- if (underline_char) {
- ucprint("This text should be underlined.");
- put_crlf();
- ptextln("If the above text is not underlined the (uc) has failed.");
- ptext("Underline-character ");
- } else {
- ptext("(uc) underline-character is not defined. ");
- }
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_bw(test_list, status, ch)
-**
-** test auto left margin (bw)
-*/
-static void
-subtest_bw(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (over_strike) {
- /* test (bw) */
- ptext("\n(bw) should ");
- i = char_count;
- ptextln("not be set.");
- for (j = i; j < columns; j++)
- put_str("\b");
- put_str("@@@");
- put_crlf();
- sprintf(temp, "(bw) Auto-left-margin is %s in the data base",
- auto_left_margin ? "true" : "false");
- ptextln(temp);
- } else {
- /* test (bw) */
- ptextln("(bw) should not be set.");
- for (i = 12; i < columns; i++)
- put_str("\b");
- if (delete_character) {
- for (i = 0; i < 4; i++)
- tc_putp(delete_character);
- } else {
- put_str(" ");
- }
- put_crlf();
- sprintf(temp, "(bw) Auto-left-margin is %s in the data base",
- auto_left_margin ? "true" : "false");
- ptextln(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_tbc(test_list, status, ch)
-**
-** test clear tabs (tbc)
-*/
-static void
-subtest_tbc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int tabat; /* the tab spacing we end up with */
- int i;
-
- if (clear_all_tabs && !set_tab) {
- ptext("(tbc) Clear-all-tabs is defined but (hts) set-tab is not. ");
- ptext("Once the tabs are cleared there is no way to set them. ");
- } else
- if (clear_all_tabs) {
- tabat = set_tab ? 8 : init_tabs;
- tc_putp(clear_all_tabs);
- ptext("Clear tabs (tbc)");
- go_home();
- put_crlf();
- putchp('\t');
- putchp('T');
- go_home();
- put_newlines(2);
- for (i = 0; i < columns; i++) {
- if (i == tabat) {
- putchp('T');
- } else {
- putchp('.');
- }
- }
- go_home();
- ptext("\n\n\nIf the above two lines have T's in the same column then (tbc) has failed. ");
- } else {
- ptext("(tbc) Clear-all-tabs is not defined. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_hts(test_list, status, ch)
-**
-** (ht) and set tabs with (hts)
-*/
-static void
-subtest_hts(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int tabat; /* the tab spacing we end up with */
- int i;
-
- tabat = init_tabs;
- if (set_tab) {
- ptext("Tabs set with (hts)");
- put_crlf();
- for (i = 1; i < columns; i++) {
- if (i % 8 == 1) {
- tc_putp(set_tab);
- }
- putchp(' ');
- }
- tabat = 8;
- } else {
- sprintf(temp, "(hts) Set-tabs not defined. (it) Initial-tabs at %d", init_tabs);
- ptext(temp);
- }
- go_home();
- put_newlines(2);
- if (tabat <= 0) {
- tabat = 8;
- }
- for (i = tabat; i < columns; i += tabat) {
- putchp('\t');
- putchp('T');
- }
- go_home();
- put_newlines(3);
- for (i = 1; i < columns; i++) {
- putchp('.');
- }
- go_home();
- put_newlines(3);
- for (i = tabat; i < columns; i += tabat) {
- putchp('\t');
- putchp('T');
- }
- go_home();
- put_newlines(4);
- putchp('.');
- for (i = 2; i < columns; i++) {
- if (i % tabat == 1) {
- putchp('T');
- } else {
- putchp('.');
- }
- }
- go_home();
- put_newlines(5);
- if (set_tab) {
- ptextln("If the last two lines are not the same then (hts) has failed.");
- } else
- if (init_tabs > 0) {
- ptextln("If the last two lines are not the same then (it) is wrong.");
- } else {
- ptextln("If the last two lines are the same then maybe you do have tabs and (it) should be changed.");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_xt(test_list, status, ch)
-**
-** (xt) glitch
-*/
-static void
-subtest_xt(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int tabat; /* the tab spacing we end up with */
- int cc;
-
- tabat = set_tab ? 8 : init_tabs;
- if (!over_strike && (tabat > 0)) {
- ptext("(xt) should not ");
- put_cr();
- ptext("(xt) should");
- cc = char_count;
- while (cc < 16) {
- putchp('\t');
- cc = ((cc / tabat) + 1) * tabat;
- }
- putln("be set.");
- sprintf(temp, "(xt) Destructive-tab is %s in the data base.",
- dest_tabs_magic_smso ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_cbt(test_list, status, ch)
-**
-** (cbt) back tab
-*/
-static void
-subtest_cbt(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (back_tab) {
- put_clear();
- ptext("Back-tab (cbt)");
- go_home();
- put_crlf();
- for (i = 1; i < columns; i++) {
- putchp(' ');
- }
- for (i = 0; i < columns; i += 8) {
- tc_putp(back_tab);
- putchp('T');
- tc_putp(back_tab);
- }
- go_home();
- put_newlines(2);
- for (i = 1; i < columns; i++) {
- if (i % 8 == 1) {
- putchp('T');
- } else {
- putchp(' ');
- }
- }
- go_home();
- put_newlines(3);
- ptextln("The preceding two lines should be the same.");
- } else {
- ptextln("(cbt) Back-tab not present");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_xenl(test_list, status, ch)
-**
-** (xenl) eat newline glitch
-*/
-static void
-subtest_xenl(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, k;
-
- if (over_strike) {
- /* test (xenl) on overstrike terminals */
- if (!can_go_home || !can_clear_screen) {
- ptextln("(xenl) Newline-glitch not tested, can't home cursor and clear.");
- generic_done_message(t, state, ch);
- return;
- }
- put_clear();
- /*
- this test must be done in raw mode. Otherwise UNIX will
- translate CR to CRLF.
- */
- if (stty_query(TTY_OUT_TRANS))
- tty_raw(1, char_mask);
- ptext("\nreset (xenl). Does ");
- i = char_count;
- put_str("not ignore CR, does ");
- k = char_count;
- put_str("not ignore LF");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_cr();
- for (j = 0; j < i; j++)
- putchp(' ');
- put_str("@@@\n@@");
- go_home();
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_lf();
- for (j = 0; j < k; j++)
- putchp(' ');
- put_str("@@@\r@@");
- tty_set();
- go_home();
- put_newlines(4);
- sprintf(temp, "(xenl) Newline-glitch is %s in the data base",
- eat_newline_glitch ? "true" : "false");
- ptextln(temp);
- } else {
- /* test (xenl) when (os) is reset */
- if (!can_go_home) {
- ptextln("(xenl) Newline-glitch not tested, can't home cursor");
- generic_done_message(t, state, ch);
- return;
- }
- /* (xenl) test */
- put_clear();
- /*
- this test must be done in raw mode. Otherwise
- UNIX will translate CR to CRLF.
- */
- if (stty_query(TTY_OUT_TRANS))
- tty_raw(1, char_mask);
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_cr();
- ptext("(xenl) should be set. Does not ignore CR");
- go_home();
- put_crlf();
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_lf(); /* test (cud1) */
- ptext("(xenl) should be set. Ignores (cud1)");
- go_home();
- put_newlines(3);
- if (scroll_forward && cursor_down &&
- strcmp(scroll_forward, cursor_down)) {
- for (j = 0; j < columns; j++)
- put_this(' ');
- put_ind(); /* test (ind) */
- ptext("(xenl) should be set. Ignores (ind)");
- go_home();
- put_newlines(5);
- }
- tty_set();
- ptextln("If you don't see text above telling you to set it, (xenl) should be false");
- sprintf(temp, "(xenl) Newline-glitch is %s in the data base",
- eat_newline_glitch ? "true" : "false");
- ptextln(temp);
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_eo(test_list, status, ch)
-**
-** (eo) erase overstrike
-*/
-static void
-subtest_eo(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (transparent_underline || over_strike || underline_char) {
- ptext("(eo) should ");
- if (underline_char) {
- ucprint("not");
- } else {
- uprint("not");
- }
- put_cr();
- ptextln("(eo) should be set");
- sprintf(temp, "\n(eo) Erase-overstrike is %s in the data base",
- erase_overstrike ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_xmc(test_list, status, ch)
-**
-** (xmc) magic cookie glitch
-*/
-static void
-subtest_xmc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (enter_standout_mode) {
- sprintf(temp, "\n(xmc) Magic-cookie-glitch is %d in the data base", magic_cookie_glitch);
- ptextln(temp);
- j = magic_cookie_glitch * 8;
- for (i = 0; i < j; i++) {
- put_str(" ");
- }
- ptextln(" These two lines should line up.");
- if (j > 0) {
- char_count += j;
- }
- for (i = 0; i < 4; i++) {
- put_mode(enter_standout_mode);
- putchp(' ');
- put_mode(exit_standout_mode);
- putchp(' ');
- }
- ptextln("These two lines should line up.");
- ptext("If they don't line up then (xmc) magic-cookie-glitch should be greater than zero. ");
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_xhp(test_list, status, ch)
-**
-** (xhp) erase does not clear standout mode
-*/
-static void
-subtest_xhp(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (enter_standout_mode) {
- put_crlf();
- put_mode(enter_standout_mode);
- put_str("Stand out");
- put_mode(exit_standout_mode);
- put_cr();
- ptextln("If any part of this line is standout then (xhp) should be set.");
- sprintf(temp, "(xhp) Erase-standout-glitch is %s in the data base",
- ceol_standout_glitch ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_mir(test_list, status, ch)
-**
-** (mir) move in insert mode
-*/
-static void
-subtest_mir(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- char *s;
-
- if (enter_insert_mode && exit_insert_mode && cursor_address) {
- put_clear();
- i = line_count;
- put_str("\nXXX\nXXX\nXXX\nXXX");
- tc_putp(enter_insert_mode);
- s = tparm(cursor_address, i + 1, 0);
- tputs(s, lines, tc_putch);
- putchp('X');
- s = tparm(cursor_address, i + 2, 1);
- tputs(s, lines, tc_putch);
- putchp('X');
- s = tparm(cursor_address, i + 3, 2);
- tputs(s, lines, tc_putch);
- putchp('X');
- s = tparm(cursor_address, i + 4, 3);
- tputs(s, lines, tc_putch);
- putchp('X');
- tc_putp(exit_insert_mode);
- put_newlines(2);
- ptextln("If you see a 4 by 4 block of X's then (mir) should be true.");
- sprintf(temp, "(mir) Move-in-insert-mode is %s in the data base",
- move_insert_mode ? "true" : "false");
- ptextln(temp);
- } else {
- ptext("(mir) Move-in-insert-mode not tested, ");
- if (!enter_insert_mode) {
- ptext("(smir) ");
- }
- if (!exit_insert_mode) {
- ptext("(rmir) ");
- }
- if (!cursor_address) {
- ptext("(cup) ");
- }
- ptext("not present. ");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_msgr(test_list, status, ch)
-**
-** (msgr) move in sgr mode
-*/
-static void
-subtest_msgr(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (cursor_address &&
- ((enter_standout_mode && exit_standout_mode) ||
- (enter_alt_charset_mode && exit_alt_charset_mode))) {
- put_crlf();
- i = line_count + 1;
- tputs(tparm(cursor_address, i, 0), lines, tc_putch);
- put_mode(enter_alt_charset_mode);
- put_crlf();
- /*
- some versions of the wy-120 can not clear lines or
- screen when in alt charset mode. If (el) and (ed)
- are defined then I can test them. If they are not
- defined then they can not break (msgr)
- */
- tc_putp(clr_eos);
- tc_putp(clr_eol);
- put_mode(exit_alt_charset_mode);
- put_mode(enter_standout_mode);
- putchp('X');
- tputs(tparm(cursor_address, i + 2, 1), lines, tc_putch);
- putchp('X');
- tputs(tparm(cursor_address, i + 3, 2), lines, tc_putch);
- putchp('X');
- tputs(tparm(cursor_address, i + 4, 3), lines, tc_putch);
- putchp('X');
- put_mode(exit_standout_mode);
- put_crlf();
- tc_putp(clr_eos); /* OK if missing */
- put_crlf();
- ptextln("If you see a diagonal line of standout X's then (msgr) should be true. If any of the blanks are standout then (msgr) should be false.");
- sprintf(temp, "(msgr) Move-in-SGR-mode is %s in the data base",
- move_standout_mode ? "true" : "false");
- ptextln(temp);
- } else {
- ptextln("(smso) (rmso) (smacs) (rmacs) missing; (msgr) Move-in-SGR-mode not tested.");
- }
- generic_done_message(t, state, ch);
-}
-
-/*
-** subtest_in(test_list, status, ch)
-**
-** (in) insert null glitch
-*/
-static void
-subtest_in(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (enter_insert_mode && exit_insert_mode) {
- ptextln("\nTesting (in) with (smir) and (rmir)");
- putln("\tIf these two lines line up ...");
- put_str("\tIf these two lines line up ...");
- put_cr();
- tc_putp(enter_insert_mode);
- putchp(' ');
- tc_putp(exit_insert_mode);
- ptext("\nthen (in) should be set. ");
- sprintf(temp,
- "(in) Insert-null-glitch is %s in the data base.",
- insert_null_glitch ? "true" : "false");
- ptextln(temp);
- generic_done_message(t, state, ch);
- }
-}
-
-/*
-** subtest_dadb(test_list, status, ch)
-**
-** (da) (db) data above, (db) data below
-*/
-static void
-subtest_dadb(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (can_clear_screen && scroll_reverse && scroll_forward) {
- put_clear();
- if (scroll_reverse)
- ptext("(da) Data-above should be set\r");
- home_down();
- if (scroll_forward)
- ptext("(db) Data-below should be set\r");
- tc_putp(scroll_forward);
- go_home();
- tc_putp(scroll_reverse);
- tc_putp(scroll_reverse);
- home_down();
- tc_putp(scroll_forward);
- go_home();
- ptextln("\n\n\n\n\nIf the top line is blank then (da) should be false.");
- ptextln("If the bottom line is blank then (db) should be false.");
- sprintf(temp, "\n(da) Data-above is %s, and (db) Data-below is %s, in the data base.",
- memory_above ? "true" : "false",
- memory_below ? "true" : "false");
- ptextln(temp);
- line_count = lines;
- } else {
- ptextln("(da) Data-above, (db) Data-below not tested, scrolls or (clear) is missing.");
- }
- generic_done_message(t, state, ch);
-}
diff --git a/ncurses-5.3/tack/modules b/ncurses-5.3/tack/modules
deleted file mode 100644
index b36ebf3..0000000
--- a/ncurses-5.3/tack/modules
+++ /dev/null
@@ -1,18 +0,0 @@
-# $Id$
-@ base
-ansi progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-charset progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-color progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-control progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-crum progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-edit progs $(srcdir) $(srcdir)/tack.h ../include/term.h $(INCDIR)/tic.h
-fun progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-init progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-menu progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-modes progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-output progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-pad progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-scan progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-sync progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-sysdep progs $(srcdir) $(srcdir)/tack.h ../include/term.h
-tack progs $(srcdir) $(srcdir)/tack.h ../include/term.h
diff --git a/ncurses-5.3/tack/output.c b/ncurses-5.3/tack/output.c
deleted file mode 100644
index be371a8..0000000
--- a/ncurses-5.3/tack/output.c
+++ /dev/null
@@ -1,818 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-/* screen formatting and I/O utility functions */
-
-#include <tack.h>
-#include <time.h>
-
-MODULE_ID("$Id$")
-
-/* globals */
-long char_sent; /* number of characters sent */
-int char_count; /* counts characters */
-int line_count; /* counts line feeds */
-int expand_chars; /* length of expand() string */
-int replace_mode; /* used to output replace mode padding */
-int can_go_home; /* TRUE if we can fashion a home command */
-int can_clear_screen; /* TRUE if we can somehow clear the screen */
-int raw_characters_sent; /* Total output characters */
-int log_count; /* Number of characters on a log line */
-
-/* translate mode default strings */
-#define TM_carriage_return TM_string[0].value
-#define TM_cursor_down TM_string[1].value
-#define TM_scroll_forward TM_string[2].value
-#define TM_newline TM_string[3].value
-#define TM_cursor_left TM_string[4].value
-#define TM_bell TM_string[5].value
-#define TM_form_feed TM_string[6].value
-#define TM_tab TM_string[7].value
-
-struct default_string_list TM_string[TM_last] = {
- {"cr", "\r", 0},
- {"cud1", "\n", 0},
- {"ind", "\n", 0},
- {"nel", "\r\n", 0},
- {"cub1", "\b", 0},
- {"bel", "\007", 0},
- {"ff", "\f", 0},
- {"ht", "\t", 0}
-};
-
-static const char *c0[32] = {
- "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK",
- "BEL", "BS", "HT", "LF", "VT", "FF", "CR", "SO", "SI",
- "DLE", "DC1", "DC2", "DC3", "DC4", "NAK", "SYN", "ETB",
- "CAN", "EM", "SUB", "ESC", "FS", "GS", "RS", "US"
-};
-
-static const char *c1[32] = {
- "", "", "", "", "IND", "NEL", "SSA", "ESA",
- "HTS", "HTJ", "VTS", "PLD", "PLU", "RI", "SS2", "SS3",
- "DCS", "PU1", "PU2", "STS", "CCH", "MW", "SPA", "EPA",
- "", "", "", "CSI", "ST", "OSC", "PM", "APC"
-};
-
-int
-getnext(int mask)
-{ /* get the next character without scan mode
- conversion */
- int ch;
- unsigned char buf;
-
- tc_putp(req_for_input);
- fflush(stdout);
- if (nodelay_read)
- while (1) {
- ch = read(fileno(stdin), &buf, 1);
- if (ch == -1)
- return EOF;
- if (ch == 1)
- return buf;
- }
- ch = getchar();
- if (ch == EOF)
- return EOF;
- return ch & mask;
-}
-
-
-int
-getchp(int mask)
-{ /* read a character with scan mode conversion */
- if (scan_mode) {
- tc_putp(req_for_input);
- fflush(stdout);
- return scan_key();
- } else
- return getnext(mask);
-}
-
-/*
-** tc_putch(c)
-**
-** Output one character
-*/
-int
-tc_putch(int c)
-{
- char_sent++;
- raw_characters_sent++;
- putchar(c);
- if ((raw_characters_sent & 31) == 31) {
- fflush(stdout);
- }
- if (log_fp) {
- /* terminal output logging */
- c = UChar(c);
- if (c < 32) {
- fprintf(log_fp, "<%s>", c0[c]);
- log_count += 5;
- } else
- if (c < 127) {
- fprintf(log_fp, "%c", c);
- log_count += 1;
- } else {
- fprintf(log_fp, "<%02x>", c);
- log_count += 4;
- }
- if (c == '\n' || log_count >= 80) {
- fprintf(log_fp, "\n");
- log_count = 0;
- }
- }
- return (c);
-}
-
-/*
-** tt_tputs(string, reps)
-**
-** Output a string with tputs() translation.
-** Use this function inside timing tests.
-*/
-void
-tt_tputs(const char *string, int reps)
-{
- int i;
-
- if (string) {
- for (i = 0; i < TT_MAX; i++) {
- if (i >= ttp) {
- tt_cap[i] = string;
- tt_affected[i] = reps;
- tt_count[i] = 1;
- tt_delay[i] = msec_cost(string, reps);
- ttp++;
- break;
- }
- if (string == tt_cap[i] && reps == tt_affected[i]) {
- tt_count[i]++;
- tt_delay_used += tt_delay[i];
- break;
- }
- }
- (void) tputs(string, reps, tc_putch);
- }
-}
-
-/*
-** tt_putp(string)
-**
-** Output a string with tputs() translation.
-** Use this function inside timing tests.
-*/
-void
-tt_putp(const char *string)
-{
- tt_tputs(string, 1);
-}
-
-/*
-** tt_putparm(string, reps, arg1, arg2, ...)
-**
-** Send tt_tputs(tparm(string, args...), reps)
-** Use this function inside timing tests.
-*/
-void
-tt_putparm(
- NCURSES_CONST char *string,
- int reps,
- int arg1,
- int arg2)
-{
- int i;
-
- if (string) {
- for (i = 0; i < TT_MAX; i++) {
- if (i >= ttp) {
- tt_cap[i] = string;
- tt_affected[i] = reps;
- tt_count[i] = 1;
- tt_delay[i] = msec_cost(string, reps);
- ttp++;
- break;
- }
- if (string == tt_cap[i] && reps == tt_affected[i]) {
- tt_count[i]++;
- tt_delay_used += tt_delay[i];
- break;
- }
- }
- (void) tputs(tparm((NCURSES_CONST char *)string, arg1, arg2), reps, tc_putch);
- }
-}
-
-/*
-** tc_putp(string)
-**
-** Output a string with tputs() translation.
-** Use this function instead of putp() so we can track
-** the actual number of characters sent.
-*/
-int
-tc_putp(const char *string)
-{
- return tputs(string, 1, tc_putch);
-}
-
-
-void
-put_this(int c)
-{ /* output one character (with padding) */
- tc_putch(c);
- if (char_padding && replace_mode)
- tt_putp(char_padding);
-}
-
-
-void
-put_cr(void)
-{
- if (translate_mode && carriage_return) {
- tt_putp(carriage_return);
- } else {
- tt_putp(TM_carriage_return);
- }
- char_count = 0;
-}
-
-
-void
-put_lf(void)
-{ /* send a linefeed (only works in RAW or
- CBREAK mode) */
- if (translate_mode && cursor_down) {
- tt_putp(cursor_down);
- } else {
- tt_putp(TM_cursor_down);
- }
- line_count++;
-}
-
-
-void
-put_ind(void)
-{ /* scroll forward (only works in RAW or
- CBREAK mode) */
- if (translate_mode && scroll_forward) {
- tt_putp(scroll_forward);
- } else {
- tt_putp(TM_scroll_forward);
- }
- line_count++;
-}
-
-/*
-** put_crlf()
-**
-** Send (nel) or <cr> <lf>
-*/
-void
-put_crlf(void)
-{
- if (translate_mode && newline) {
- tt_putp(newline);
- } else {
- tt_putp(TM_newline);
- }
- char_count = 0;
- line_count++;
-}
-
-/*
-** put_new_lines(count)
-**
-** Send a number of newlines. (nel)
-*/
-void
-put_newlines(int n)
-{
- while (n-- > 0) {
- put_crlf();
- }
-}
-
-/*
-** putchp(character)
-**
-** Send one character to the terminal.
-** This function does translation of control characters.
-*/
-void
-putchp(int c)
-{
- switch (c) {
- case '\b':
- if (translate_mode && cursor_left) {
- tt_putp(cursor_left);
- } else {
- tt_putp(TM_cursor_left);
- }
- char_count--;
- break;
- case 7:
- if (translate_mode && bell) {
- tt_putp(bell);
- } else {
- tt_putp(TM_bell);
- }
- break;
- case '\f':
- if (translate_mode && form_feed) {
- tt_putp(form_feed);
- } else {
- tt_putp(TM_form_feed);
- }
- char_count = 0;
- line_count++;
- break;
- case '\n':
- put_crlf();
- break;
- case '\r':
- put_cr();
- break;
- case '\t':
- if (translate_mode && tab) {
- tt_putp(tab);
- } else {
- tt_putp(TM_tab);
- }
- char_count = ((char_count / 8) + 1) * 8;
- break;
- default:
- put_this(c);
- char_count++;
- break;
- }
-}
-
-
-void
-put_str(const char *s)
-{ /* send the string to the terminal */
- for (; *s; putchp(*s++));
-}
-
-
-void
-putln(const char *s)
-{ /* output a string followed by a CR LF */
- for (; *s; putchp(*s++));
- put_crlf();
-}
-
-
-void
-put_columns(const char *s, int len, int w)
-{ /* put out s in column format */
- int l;
-
- if (char_count + w > columns) {
- put_crlf();
- }
- l = char_count % w;
- if (l) {
- while (l < w) {
- putchp(' ');
- l++;
- }
- }
- if (char_count && char_count + len >= columns) {
- put_crlf();
- }
- l = char_count;
- put_str(s);
- char_count = l + len;
-}
-
-
-/*
-** ptext(string)
-**
-** Output a string but do not assume the terminal will wrap to a
-** new line. Break the line at a word boundary then send a CR LF.
-** This is more esthetic on 40 column terminals.
-*/
-void
-ptext(const char *s)
-{
- const char *t;
-
- while (*s) {
- for (t = s + 1; *t > ' '; t++);
- if ((char_count != 0) && ((t - s) + char_count >= columns)) {
- put_crlf();
- while (*s == ' ')
- s++;
- }
- while (s < t) {
- putchp(*s++);
- }
- }
-}
-
-
-void
-put_dec(char *f, int i)
-{ /* print a line with a decimal number in it */
- char tm[128];
-
- sprintf(tm, f, i / 10, i % 10);
- ptext(tm);
-}
-
-
-void
-three_digit(char *tx, int i)
-{ /* convert the decimal number to a string of
- at least 3 digits */
- if (i < 1000)
- sprintf(tx, "%d.%d", i / 10, i % 10);
- else
- sprintf(tx, "%d", i / 10);
-}
-
-
-void
-ptextln(const char *s)
-{ /* print the text using ptext() then add a CR
- LF */
- ptext(s);
- put_crlf();
-}
-
-
-static void
-expand_one(int ch, char **v)
-{ /* expand one character */
- char *t = *v;
-
- if (ch & 0x80) { /* dump it in octal (yuck) */
- *t++ = '\\';
- *t++ = '0' + ((ch >> 6) & 3);
- *t++ = '0' + ((ch >> 3) & 7);
- *t++ = '0' + (ch & 7);
- expand_chars += 4;
- } else if (ch == 127) { /* DEL */
- *t++ = '^';
- *t++ = '?';
- expand_chars += 2;
- } else if (ch >= ' ') {
- *t++ = ch;
- expand_chars++;
- } else { /* control characters */
- *t++ = '^';
- *t++ = ch + '@';
- expand_chars += 2;
- }
- *v = t;
-}
-
-
-char *
-expand(const char *s)
-{ /* convert the string to printable form */
- static char buf[4096];
- char *t, *v;
- int ch;
-
- if (magic_cookie_glitch <= 0 && exit_attribute_mode) {
- v = enter_reverse_mode;
- } else {
- v = NULL;
- }
- expand_chars = 0;
- t = buf;
- if (s) {
- for (; (ch = *s); s++) {
- if ((ch & 0x80) && v) { /* print it in reverse video
- mode */
- strcpy(t, liberated(tparm(v)));
- for (; *t; t++);
- expand_one(ch & 0x7f, &t);
- strcpy(t, liberated(tparm(exit_attribute_mode)));
- for (; *t; t++);
- } else {
- expand_one(ch, &t);
- }
- }
- }
- *t = '\0';
- return buf;
-}
-
-
-char *
-print_expand(char *s)
-{ /* convert the string to 7-bit printable form */
- static char buf[4096];
- char *t;
- int ch;
-
- expand_chars = 0;
- t = buf;
- if (s) {
- for (; (ch = *s); s++) {
- expand_one(ch, &t);
- }
- }
- *t = '\0';
- return buf;
-}
-
-
-char *
-expand_to(char *s, int l)
-{ /* expand s to length l */
- char *t;
-
- for (s = t = expand(s); *t; t++);
- for (; expand_chars < l; expand_chars++) {
- *t++ = ' ';
- }
- *t = '\0';
- return s;
-}
-
-
-char *
-hex_expand_to(char *s, int l)
-{ /* expand s to length l in hex */
- static char buf[4096];
- char *t;
-
- for (t = buf; *s; s++) {
- sprintf(t, "%02X ", UChar(*s));
- t += 3;
- if (t - buf > (int) sizeof(buf) - 4) {
- break;
- }
- }
- for (; t - buf < l;) {
- *t++ = ' ';
- }
- *t = '\0';
- expand_chars = t - buf;
- return buf;
-}
-
-
-char *
-expand_command(const char *c)
-{ /* expand an ANSI escape sequence */
- static char buf[256];
- int i, j, ch;
- char *s;
-
- s = buf;
- for (i = FALSE; (ch = UChar(*c)) != 0; c++) {
- if (i) {
- *s++ = ' ';
- }
- i = TRUE;
- if (ch < 32) {
- j = UChar(c[1]);
- if (ch == '\033' && j >= '@' && j <= '_') {
- ch = j - '@';
- c++;
- for (j = 0; (*s = c1[ch][j++]); s++);
- } else
- for (j = 0; (*s = c0[ch][j++]); s++);
- } else {
- *s++ = ch;
- j = UChar(c[1]);
- if (ch >= '0' && ch <= '9' &&
- j >= '0' && j <= '9') {
- i = FALSE;
- }
- }
- }
- *s = '\0';
- return buf;
-}
-
-/*
-** go_home()
-**
-** Move the cursor to the home position
-*/
-void
-go_home(void)
-{
- int i;
-
- if (cursor_home)
- tt_putp(cursor_home);
- else if (cursor_address)
- tt_putparm(cursor_address, lines, 0, 0);
- else if (row_address) { /* use (vpa) */
- put_cr();
- tt_putparm(row_address, 1, 0, 0);
- } else if (cursor_up && cursor_to_ll) {
- tt_putp(cursor_to_ll);
- for (i = 1; i < lines; i++) {
- tt_putp(cursor_up);
- }
- } else {
- can_go_home = FALSE;
- return;
- }
- char_count = line_count = 0;
- can_go_home = TRUE;
-}
-
-
-void
-home_down(void)
-{ /* move the cursor to the lower left hand
- corner */
- int i;
-
- if (cursor_to_ll)
- tt_putp(cursor_to_ll);
- else if (cursor_address)
- tt_putparm(cursor_address, lines, lines - 1, 0);
- else if (row_address) { /* use (vpa) */
- put_cr();
- tt_putparm(row_address, 1, lines - 1, 0);
- } else if (cursor_down && cursor_home) {
- tt_putp(cursor_home);
- for (i = 1; i < lines; i++)
- tt_putp(cursor_down);
- } else
- return;
- char_count = 0;
- line_count = lines - 1;
-}
-
-
-void
-put_clear(void)
-{ /* clear the screen */
- int i;
-
- if (clear_screen)
- tt_tputs(clear_screen, lines);
- else if (clr_eos && can_go_home) {
- go_home();
- tt_tputs(clr_eos, lines);
- } else if (scroll_forward && !over_strike && (can_go_home || cursor_up)) {
- /* clear the screen by scrolling */
- put_cr();
- if (cursor_to_ll) {
- tt_putp(cursor_to_ll);
- } else if (cursor_address) {
- tt_putparm(cursor_address, lines, lines - 1, 0);
- } else if (row_address) {
- tt_putparm(row_address, 1, lines - 1, 0);
- } else {
- for (i = 1; i < lines; i++) {
- tt_putp(scroll_forward);
- }
- }
- for (i = 1; i < lines; i++) {
- tt_putp(scroll_forward);
- }
- if (can_go_home) {
- go_home();
- } else {
- for (i = 1; i < lines; i++) {
- tt_putp(cursor_up);
- }
- }
- } else {
- can_clear_screen = FALSE;
- return;
- }
- char_count = line_count = 0;
- can_clear_screen = TRUE;
-}
-
-/*
-** wait_here()
-**
-** read one character from the input stream
-** If the terminal is not in RAW mode then this function will
-** wait for a <cr> or <lf>.
-*/
-int
-wait_here(void)
-{
- char ch, cc[64];
- char message[16];
- int i, j;
-
- for (i = 0; i < (int) sizeof(cc); i++) {
- cc[i] = ch = getchp(STRIP_PARITY);
- if (ch == '\r' || ch == '\n') {
- put_crlf();
- char_sent = 0;
- return cc[i ? i - 1 : 0];
- }
- if (ch >= ' ') {
- if (stty_query(TTY_CHAR_MODE)) {
- put_crlf();
- char_sent = 0;
- return ch;
- }
- continue;
- }
- if (ch == 023) { /* Control S */
- /* ignore control S, but tell me about it */
- while (ch == 023 || ch == 021) {
- ch = getchp(STRIP_PARITY);
- if (i < (int) sizeof(cc))
- cc[++i] = ch;
- }
- put_str("\nThe terminal sent a ^S -");
- for (j = 0; j <= i; j++) {
- sprintf(message, " %02X", cc[j] & 0xFF);
- put_str(message);
- }
- put_crlf();
- i = -1;
- } else if (ch != 021) { /* Not Control Q */
- /* could be abort character */
- spin_flush();
- if (tty_can_sync == SYNC_TESTED) {
- (void) tty_sync_error();
- } else {
- put_str("\n? ");
- }
- }
- }
- return '?';
-}
-
-
-/*
-** read_string(buffer, length)
-**
-** Read a string of characters from the input stream.
-*/
-void
-read_string(
- char *buf,
- int length)
-{
- int ch, i;
-
- for (i = 0; i < length - 1; ) {
- ch = getchp(STRIP_PARITY);
- if (ch == '\r' || ch == '\n') {
- break;
- }
- if (ch == '\b' || ch == 127) {
- if (i) {
- putchp('\b');
- putchp(' ');
- putchp('\b');
- i--;
- }
- } else {
- buf[i++] = ch;
- putchp(ch);
- }
- }
- buf[i] = '\0';
- put_crlf();
- char_sent = 0;
-}
-
-/*
-** maybe_wait(lines)
-**
-** wait if near the end of the screen, then clear screen
-*/
-void
-maybe_wait(int n)
-{
- if (line_count + n >= lines) {
- if (char_sent != 0) {
- ptext("Go? ");
- (void) wait_here();
- }
- put_clear();
- } else {
- put_crlf();
- }
-}
diff --git a/ncurses-5.3/tack/pad.c b/ncurses-5.3/tack/pad.c
deleted file mode 100644
index 32357be..0000000
--- a/ncurses-5.3/tack/pad.c
+++ /dev/null
@@ -1,1957 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/* test the pad counts on the terminal */
-
-static void pad_standard(struct test_list *, int *, int *);
-static void init_xon_xoff(struct test_list *, int *, int *);
-static void init_cup(struct test_list *, int *, int *);
-static void pad_rmxon(struct test_list *, int *, int *);
-static void pad_home1(struct test_list *, int *, int *);
-static void pad_home2(struct test_list *, int *, int *);
-static void pad_clear(struct test_list *, int *, int *);
-static void pad_ech(struct test_list *, int *, int *);
-static void pad_el1(struct test_list *, int *, int *);
-static void pad_el(struct test_list *, int *, int *);
-static void pad_smdc(struct test_list *, int *, int *);
-static void pad_dch(struct test_list *, int *, int *);
-static void pad_dch1(struct test_list *, int *, int *);
-static void pad_smir(struct test_list *, int *, int *);
-static void pad_ich(struct test_list *, int *, int *);
-static void pad_ich1(struct test_list *, int *, int *);
-static void pad_xch1(struct test_list *, int *, int *);
-static void pad_rep(struct test_list *, int *, int *);
-static void pad_cup(struct test_list *, int *, int *);
-static void pad_hd(struct test_list *, int *, int *);
-static void pad_hu(struct test_list *, int *, int *);
-static void pad_rin(struct test_list *, int *, int *);
-static void pad_il(struct test_list *, int *, int *);
-static void pad_indn(struct test_list *, int *, int *);
-static void pad_dl(struct test_list *, int *, int *);
-static void pad_xl(struct test_list *, int *, int *);
-static void pad_scrc(struct test_list *, int *, int *);
-static void pad_csrind(struct test_list *, int *, int *);
-static void pad_sccsrrc(struct test_list *, int *, int *);
-static void pad_csr_nel(struct test_list *, int *, int *);
-static void pad_csr_cup(struct test_list *, int *, int *);
-static void pad_ht(struct test_list *, int *, int *);
-static void pad_smso(struct test_list *, int *, int *);
-static void pad_smacs(struct test_list *, int *, int *);
-static void pad_crash(struct test_list *, int *, int *);
-
-extern struct test_menu change_pad_menu;
-
-/*
- Any command found in this list, executed from a "Done" prompt
- will force the default action to repeat rather than next.
-*/
-const char *pad_repeat_test = {"ep-+<>"};
-
-struct test_list pad_test_list[] = {
- {0, 0, 0, 0, "e) edit terminfo", 0, &edit_menu},
- {0, 0, 0, 0, "p) change padding", 0, &change_pad_menu},
- {0, 0, 0, 0, "@) display statistics about the last test", dump_test_stats, 0},
- {0, 0, 0, 0, "c) clear screen", menu_clear_screen, 0},
- {0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
- {0, 0, 0, 0, txt_longer_test_time, longer_test_time, 0},
- {0, 0, 0, 0, txt_shorter_test_time, shorter_test_time, 0},
- {0, 0, 0, 0, txt_longer_augment, longer_augment, 0},
- {0, 0, 0, 0, txt_shorter_augment, shorter_augment, 0},
- /***
- Phase 1: Test initialization and reset strings.
-
- (rs1) (rs2) (rs3) (is1) (is2) (is3) are very difficult to test.
- They have no defined output. To make matters worse, the cap
- builder could partition (rs1) (rs2) (rs3) by length, leaving the
- terminal in some unknown state between (rs1) and (rs2) or between
- (r2) and (rs3). Some reset strings clear the screen when done.
-
- We have no control over this. The only thing we can do for
- certain is to test the pad times by checking for overruns.
- ***/
- {MENU_NEXT, 3, "rs1", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rs2", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rs3", 0, 0, pad_standard, 0},
- {MENU_NEXT | MENU_INIT, 0, 0, 0, 0, init_xon_xoff, 0},
- {MENU_NEXT, 3, "is1", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "is2", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "is3", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rmxon", "smxon", 0, pad_rmxon, 0},
- {MENU_NEXT | MENU_INIT, 0, 0, 0, 0, init_cup, 0},
- /*
- Phase 2: Test home, screen clears and erases.
- */
- {MENU_NEXT, 0, "home", 0, 0, pad_home1, 0},
- {MENU_NEXT, 0, "home) (nel", 0, 0, pad_home2, 0},
- {MENU_NEXT | 1, 0, "clear", 0, 0, pad_clear, 0},
- {MENU_NEXT | MENU_LM1, 0, "ed", 0, 0, pad_clear, 0},
- {MENU_NEXT | MENU_80c, 0, "ech", 0, 0, pad_ech, 0},
- {MENU_NEXT | MENU_80c, 0, "el1", "cub1 nel", 0, pad_el1, 0},
- {MENU_NEXT | MENU_10c, 0, "el", "nel", 0, pad_el, 0},
- /*
- Phase 3: Character deletions and insertions
- */
- {MENU_NEXT, 0, "smdc) (rmdc", 0, 0, pad_smdc, 0},
- {MENU_NEXT | MENU_80c, 0, "dch", "smdc rmdc", 0, pad_dch, 0},
- {MENU_NEXT | MENU_80c, 0, "dch1", "smdc rmdc", 0, pad_dch1, 0},
- {MENU_NEXT, 0, "smir) (rmir", 0, 0, pad_smir, 0},
- {MENU_NEXT | MENU_90c, 0, "ich) (ip", "smir rmir", 0, pad_ich, 0},
- {MENU_NEXT | MENU_90c, 0, "ich1) (ip", "smir rmir", 0, pad_ich1, 0},
- {MENU_NEXT, 4, "ich1) (dch1", "smir rmir", 0, pad_xch1, 0},
- {MENU_NEXT | MENU_90c, 0, "rep", 0, 0, pad_rep, 0},
- /*
- Phase 4: Test cursor addressing pads.
- */
- {MENU_NEXT, 0, "cup", 0, 0, pad_cup, 0},
- /*
- Phase 5: Test scrolling and cursor save/restore.
- */
- {MENU_NEXT, 0, "hd", 0, 0, pad_hd, 0},
- {MENU_NEXT, 0, "hu", 0, 0, pad_hu, 0},
- {MENU_NEXT | MENU_LM1 | 1, 0, "rin", 0, 0, pad_rin, 0},
- {MENU_NEXT, 0, "ri", 0, 0, pad_rin, 0},
- {MENU_NEXT | MENU_LM1 | 1, 0, "il", 0, 0, pad_il, 0},
- {MENU_NEXT, 0, "il1", 0, 0, pad_il, 0},
- {MENU_NEXT | MENU_LM1 | 1, 0, "indn", 0, 0, pad_indn, 0},
- {MENU_NEXT, 0, "ind", 0, 0, pad_indn, 0},
- {MENU_NEXT | MENU_LM1 | 1, 0, "dl", 0, 0, pad_dl, 0},
- {MENU_NEXT, 0, "dl1", 0, 0, pad_dl, 0},
- {MENU_NEXT, 0, "il1) (dl1", 0, 0, pad_xl, 0},
- {MENU_NEXT, 0, "sc) (rc", 0, 0, pad_scrc, 0},
- {MENU_NEXT | MENU_50l, 0, "csr) (ind", 0, 0, pad_csrind, 0},
- {MENU_NEXT, 0, "sc) (csr) (rc", 0, 0, pad_sccsrrc, 0},
- {MENU_NEXT, 0, "csr) (nel", "sc rc", 0, pad_csr_nel, 0},
- {MENU_NEXT, 0, "csr) (cup", 0, 0, pad_csr_cup, 0},
- /*
- Phase 6: Test tabs.
- */
- {MENU_NEXT, 0, "ht", 0, 0, pad_ht, 0},
- /*
- Phase 7: Test character-set-switch pads.
- */
- {MENU_NEXT, 0, "smso) (rmso", 0, 0, pad_smso, 0},
- {MENU_NEXT, 0, "smacs) (rmacs", 0, 0, pad_smacs, 0},
- /*
- Phase 8: Tests for miscellaneous mode-switch pads.
- */
- {MENU_NEXT, 3, "flash", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "smkx", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rmkx", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "smm", 0, 0, pad_standard, 0},
- {MENU_NEXT, 3, "rmm", 0, 0, pad_standard, 0},
- /*
- Phase 9: Test crash-and-burn properties of unpadded (clear).
- */
- {0, 0, "clear", "xon", "k) run clear test with no padding", pad_crash, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-extern int test_complete; /* counts number of tests completed */
-
-/* globals */
-int hzcc; /* horizontal character count */
-char letter; /* current character being displayed */
-int letter_number; /* points into letters[] */
-int augment, repeats; /* number of characters (or lines) effected */
-char letters[] = "AbCdefghiJklmNopQrStuVwXyZ";
-
-static char every_line[] = "This text should be on every line.";
-static char all_lines[] = "Each char on any line should be the same. ";
-static char above_line[] = "The above lines should be all Xs. ";
-static char no_visual[] = "This loop test has no visual failure indicator. ";
-
-/*
-** pad_standard(test_list, status, ch)
-**
-** Run a single cap pad test.
-*/
-static void
-pad_standard(
- struct test_list *t,
- int *state,
- int *ch)
-{
- const char *long_name;
- char *cap;
- int l = 2, i;
- char tbuf[128];
-
- if ((cap = get_string_cap_byname(t->caps_done, &long_name))) {
- sprintf(tbuf, "(%s) %s, start testing", t->caps_done,
- long_name);
- if (skip_pad_test(t, state, ch, tbuf)) {
- return;
- }
- i = 1;
- pad_test_startup(1);
- do {
- if (i >= columns) {
- page_loop();
- l++;
- i = 1;
- }
- tt_putp(cap);
- putchp(letter);
- i++;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- if (l >= lines) {
- home_down();
- } else {
- put_crlf();
- }
- ptextln(no_visual);
- } else {
- CAP_NOT_FOUND;
- /* Note: get_string_cap_byname() always sets long_name */
- sprintf(temp, "(%s) %s, not present. ", t->caps_done,
- long_name);
- ptext(temp);
- }
- pad_done_message(t, state, ch);
-}
-
-/*
-** init_xon_xoff(test_list, status, ch)
-**
-** Initialize the xon_xoff values
-*/
-static void
-init_xon_xoff(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- /* the reset strings may dink with the XON/XOFF modes */
- if (select_xon_xoff == 0 && exit_xon_mode) {
- tc_putp(exit_xon_mode);
- }
- if (select_xon_xoff == 1 && enter_xon_mode) {
- tc_putp(enter_xon_mode);
- }
-}
-
-/*
-** pad_rmxon(test_list, status, ch)
-**
-** Test (rmxon) exit XON/XOFF mode
-*/
-static void
-pad_rmxon(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (select_xon_xoff == 0 && exit_xon_mode) {
- pad_standard(t, state, ch);
- }
-}
-
-/*
-** init_cup(test_list, status, ch)
-**
-** Send the initialization strings for XON/XOFF and (smcup)
-** Stop pad testing if clear screen is missing.
-*/
-static void
-init_cup(
- struct test_list *t,
- int *state,
- int *ch)
-{
- init_xon_xoff(t, state, ch);
- if (enter_ca_mode) {
- tc_putp(enter_ca_mode);
- }
- if (!can_clear_screen) {
- ptext("(clear) clear screen not present,");
- ptext(" pad processing terminated. ");
- pad_done_message(t, state, ch);
- if (*ch == 0 || *ch == 'n' || *ch == 's' || *ch == 'r') {
- *ch = '?';
- }
- return;
- }
-}
-
-/*
-** pad_home1(test_list, status, ch)
-**
-** Test (home) when (am) is set.
-*/
-static void
-pad_home1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j, k;
-
- if (can_go_home && auto_right_margin) {
- /*
- truly brain damaged terminals will fail this test because
- they cannot accept data at full rate
- */
- if (skip_pad_test(t, state, ch, "(home) Home start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (j = 1; j < lines; j++) {
- for (k = 0; k < columns; k++) {
- if (k & 0xF) {
- put_this(letter);
- } else {
- put_this('.');
- }
- }
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext("All the dots should line up. ");
- pad_done_message(t, state, ch);
- put_clear();
- }
-}
-
-/*
-** pad_home2(test_list, status, ch)
-**
-** Test (home) and (nel). (am) is reset.
-*/
-static void
-pad_home2(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j, k;
-
- if (can_go_home) {
- if (skip_pad_test(t, state, ch,
- "(home) Home, (nel) newline start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (j = 1; j < lines; j++) {
- for (k = 2; k < columns; k++) {
- if (k & 0xF) {
- put_this(letter);
- } else {
- put_this('.');
- }
- }
- put_crlf(); /* this does the (nel) */
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext("All the dots should line up. ");
- pad_done_message(t, state, ch);
- put_clear();
- }
-}
-
-/*
-** pad_clear(test_list, status, ch)
-**
-** Test (clear) and (ed)
-** run the clear screen tests (also clear-to-end-of-screen)
-**
-** 0) full page
-** 1) sparse page
-** 2) short lines
-** 3) one full line
-** 4) one short line
-*/
-static void
-pad_clear(
- struct test_list *t,
- int *state,
- int *ch)
-{
- const char *end_message = 0;
- const char *txt;
- int j, k, is_clear;
- int clear_select; /* select the test number */
-
- is_clear = t->flags & 1;
- clear_select = auto_right_margin ? 0 : 1;
- if (is_clear) {
- txt = "(clear) clear-screen start testing";
- } else {
- if (!clr_eos) {
- CAP_NOT_FOUND;
- ptext("(ed) erase-to-end-of-display, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- txt = "(ed) erase-to-end-of-display start testing";
- }
- if (skip_pad_test(t, state, ch, txt)) {
- return;
- }
- if (enter_am_mode) {
- tc_putp(enter_am_mode);
- clear_select = 0;
- }
- for (; clear_select < 5; clear_select++) {
- if (augment > lines || is_clear || !cursor_address) {
- augment = lines;
- } else {
- if (augment <= 1) {
- augment = 2;
- }
- if (augment < lines) {
- put_clear();
- tt_putparm(cursor_address, 1,
- lines - augment - 1, 0);
- ptextln("This line should not be erased (ed)");
- }
- }
- repeats = augment;
- switch (clear_select) {
- case 0:
- end_message = "Clear full screen. ";
- break;
- case 1:
- end_message = "Clear sparse screen. ";
- if (cursor_down) {
- break;
- }
- clear_select++;
- /* FALLTHRU */
- case 2:
- end_message = "Clear one character per line. ";
- if (newline) {
- break;
- }
- clear_select++;
- /* FALLTHRU */
- case 3:
- end_message = "Clear one full line. ";
- break;
- case 4:
- end_message = "Clear single short line. ";
- break;
- }
- pad_test_startup(0);
- do {
- switch (clear_select) {
- case 0: /* full screen test */
- for (j = 1; j < repeats; j++) {
- for (k = 0; k < columns; k++) {
- if (k & 0xF) {
- put_this(letter);
- } else {
- put_this('.');
- }
- }
- SLOW_TERMINAL_EXIT;
- }
- break;
- case 1: /* sparse screen test */
- for (j = columns - repeats; j > 2; j--) {
- put_this(letter);
- }
- for (j = 2; j < repeats; j++) {
- tt_putp(cursor_down);
- put_this(letter);
- }
- break;
- case 2: /* short lines */
- for (j = 2; j < repeats; j++) {
- put_this(letter);
- tt_putp(newline);
- }
- put_this(letter);
- break;
- case 3: /* one full line */
- for (j = columns - 5; j > 1; j--) {
- put_this(letter);
- }
- break;
- case 4: /* one short line */
- put_str("Erase this!");
- break;
- }
- if (is_clear) {
- put_clear();
- } else {
- if (augment == lines) {
- go_home();
- } else {
- tt_putparm(cursor_address, 1,
- lines - repeats, 0);
- }
- tt_tputs(clr_eos, repeats);
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 1);
- ptext(end_message);
-
- pad_done_message(t, state, ch);
-
- if (*ch != 0 && *ch != 'n') {
- return;
- }
- }
-}
-
-/*
-** pad_ech(test_list, status, ch)
-**
-** Test (ech) erase characters
-*/
-static void
-pad_ech(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!erase_chars) {
- CAP_NOT_FOUND;
- ptext("(ech) Erase-characters, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(ech) Erase-characters start testing")) {
- return;
- }
- if (augment > columns - 2) {
- augment = columns - 2;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = 0; j <= repeats; j++) {
- putchp(letter);
- }
- put_cr();
- tt_putparm(erase_chars, repeats, repeats, 0);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- for (i = 1; i <= repeats; i++) {
- putchp(' ');
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_el1(test_list, status, ch)
-**
-** Test (el1) erase to start of line also (cub1) and (nel)
-*/
-static void
-pad_el1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!clr_bol) {
- CAP_NOT_FOUND;
- ptext("(el1) Erase-to-beginning-of-line, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(el1) Erase-to-beginning-of-line start testing")) {
- return;
- }
- if (augment > columns - 2) {
- augment = columns - 2;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = 0; j <= repeats; j++) {
- putchp(letter);
- }
- tt_putp(cursor_left);
- tt_putp(cursor_left);
- tt_tputs(clr_bol, repeats);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- for (i = 1; i <= repeats; i++) {
- putchp(' ');
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_el(test_list, status, ch)
-**
-** Test (el) clear to end of line also (nel)
-*/
-static void
-pad_el(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!clr_eol) {
- CAP_NOT_FOUND;
- ptext("(el) Clear-to-end-of-line, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(el) Clear-to-end-of-line start testing")) {
- return;
- }
- hzcc = columns * 8 / 10; /* horizontal character count */
- if (augment > hzcc) {
- augment = hzcc;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = -1; j < augment; j++) {
- putchp(letter);
- }
- put_cr();
- putchp(letter);
- tt_putp(clr_eol);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_smdc(test_list, status, ch)
-**
-** Test (smdc) (rmdc) Delete mode
-*/
-static void
-pad_smdc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!enter_delete_mode) {
- CAP_NOT_FOUND;
- ptext("(smdc) Enter-delete-mode");
- if (!exit_delete_mode) {
- ptext(", (rmdc) Exit-delete-mode");
- }
- ptext(", not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(smdc) (rmdc) Enter/Exit-delete-mode start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- for (i = 1; i < columns; i++) {
- tt_putp(enter_delete_mode);
- tt_putp(exit_delete_mode);
- putchp(letter);
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(no_visual);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_dch(test_list, status, ch)
-**
-** Test (smdc) (rmdc) Delete mode and (dch)
-*/
-static void
-pad_dch(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!parm_dch) {
- CAP_NOT_FOUND;
- ptext("(dch) Delete-characters, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(dch) Delete-characters start testing")) {
- return;
- }
- hzcc = columns * 8 / 10; /* horizontal character count */
- if (augment > hzcc) {
- augment = hzcc;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = 0; j <= repeats; j++) {
- putchp(letter);
- }
- put_cr();
- tt_putp(enter_delete_mode);
- tt_putparm(parm_dch, repeats, repeats, 0);
- tt_putp(exit_delete_mode);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_dch1(test_list, status, ch)
-**
-** Test (smdc) (rmdc) Delete mode and (dch1)
-*/
-static void
-pad_dch1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!delete_character) {
- if (parm_dch) {
- /* if the other one is defined then its OK */
- return;
- }
- CAP_NOT_FOUND;
- ptext("(dch1) Delete-character, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(dch1) Delete-character start testing")) {
- return;
- }
- hzcc = columns * 8 / 10; /* horizontal character count */
- if (augment > hzcc) {
- augment = hzcc;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- for (j = -1; j < augment; j++) {
- putchp(letter);
- }
- put_cr();
- tt_putp(enter_delete_mode);
- for (j = 0; j < augment; j++) {
- tt_putp(delete_character);
- }
- tt_putp(exit_delete_mode);
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- putchp(letter);
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_smir(test_list, status, ch)
-**
-** Test (smir) (rmir) Insert mode
-*/
-static void
-pad_smir(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!enter_insert_mode) {
- CAP_NOT_FOUND;
- ptext("(smir) Enter-insert-mode");
- if (!exit_insert_mode) {
- ptext(", (rmir) Exit-insert-mode");
- }
- ptext(", not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(smir) (rmir) Enter/Exit-insert-mode start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- for (i = 1; i < columns; i++) {
- tt_putp(enter_insert_mode);
- tt_putp(exit_insert_mode);
- putchp(letter);
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(no_visual);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_ich(test_list, status, ch)
-**
-** Test (smir) (rmir) Insert mode and (ich) and (ip)
-*/
-static void
-pad_ich(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!parm_ich) {
- CAP_NOT_FOUND;
- ptext("(ich) Insert-characters, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(ich) Insert-characters, (ip) Insert-padding start testing")) {
- return;
- }
- j = columns * 9 / 10;
- if (augment > j) {
- augment = j;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- putchp(letter);
- put_cr();
- tt_putp(enter_insert_mode);
- replace_mode = 0;
- tt_putparm(parm_ich, repeats, repeats, 0);
- tt_putp(exit_insert_mode);
- replace_mode = 1;
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- for (i = 0; i < repeats; i++) {
- putchp(' ');
- }
- putchp(letter);
- NEXT_LETTER;
- put_crlf();
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- tc_putp(exit_insert_mode);
-}
-
-/*
-** pad_ich1(test_list, status, ch)
-**
-** Test (smir) (rmir) Insert mode and (ich1) and (ip)
-*/
-static void
-pad_ich1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!insert_character) {
- CAP_NOT_FOUND;
- ptext("(ich1) Insert-character, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(ich1) Insert-character, (ip) Insert-padding start testing")) {
- return;
- }
- if (augment > columns - 2) {
- augment = columns - 2;
- }
- pad_test_startup(1);
- do {
- put_clear();
- for (i = 2; i < lines; i++) {
- putchp(letter);
- put_cr();
- tt_putp(enter_insert_mode);
- replace_mode = 0;
- if (!insert_padding && !insert_character) {
- /* only enter/exit is needed */
- for (j = 0; j < augment; j++) {
- putchp('.');
- }
- } else {
- for (j = 0; j < augment; j++) {
- tt_putp(insert_character);
- putchp('.');
- tt_putp(insert_padding);
- }
- }
- tt_putp(exit_insert_mode);
- replace_mode = 1;
- put_crlf();
- SLOW_TERMINAL_EXIT;
- }
- for (j = 0; j < augment; j++) {
- putchp('.');
- }
- putchp(letter);
- NEXT_LETTER;
- put_crlf();
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptext(all_lines);
- pad_done_message(t, state, ch);
- tc_putp(exit_insert_mode);
-}
-
-/*
-** pad_xch1(test_list, status, ch)
-**
-** Test (ich1) (ip) (dch1)
-*/
-static void
-pad_xch1(
- struct test_list *t,
- int *state,
- int *ch)
-{
- static char xch1[] =
- "This line should not be garbled. It should be left justified.";
-
- if (enter_insert_mode || exit_insert_mode ||
- enter_delete_mode || exit_delete_mode ||
- !insert_character || !delete_character) {
- /* this test is quietly ignored */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(ich1) Insert-character, (dch1) Delete-character start testing")) {
- return;
- }
- put_crlf();
- ptext(xch1);
- put_cr();
- pad_test_startup(0);
- do {
- tt_putp(insert_character);
- tt_putp(delete_character);
- } while(still_testing());
- pad_test_shutdown(t, 1);
- ptextln(xch1);
- ptext("The preceding two lines should be the same. ");
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_rep(test_list, status, ch)
-**
-** Test (rep) repeat character
-*/
-static void
-pad_rep(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!repeat_char) {
- CAP_NOT_FOUND;
- ptext("(rep) Repeat-character, not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(rep) Repeat-character start testing")) {
- return;
- }
- if (augment > columns - 2) {
- augment = columns - 2;
- }
- if (augment < 2) {
- augment = 2;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (i = 2; i < lines; i++) {
- tt_putparm(repeat_char, repeats, letter, repeats);
- put_crlf();
- }
- for (j = 0; j < repeats; j++) {
- putchp(letter);
- }
- put_crlf();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptextln(all_lines);
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_cup(test_list, status, ch)
-**
-** Test (cup) Cursor address
-*/
-static void
-pad_cup(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, l, r, c;
-
- if (!cursor_address) {
- CAP_NOT_FOUND;
- ptext("(cup) Cursor-address not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(cup) Cursor-address start testing")) {
- return;
- }
- put_clear();
- ptext("Each line should be filled with the same letter. There should");
- ptext(" be no gaps, or single letters scattered over the screen. ");
- if (char_count + 15 > columns) {
- put_crlf();
- }
- if (((lines - line_count) & 1) == 0) {
- /* this removes the gap in the middle of the test when the
- number of lines is odd. */
- put_crlf();
- }
- r = line_count;
- c = char_count;
- l = (columns - 4) >> 1;
- pad_test_startup(0);
- do {
- for (i = 1; i + i + r < lines; i++) {
- for (j = 0; j <= l; j++) {
- tt_putparm(cursor_address, 1, r + i, j);
- putchp(letter);
- tt_putparm(cursor_address, 1, r + i, l + l + 1 - j);
- putchp(letter);
- tt_putparm(cursor_address, 1, lines - i, j);
- putchp(letter);
- tt_putparm(cursor_address, 1, lines - i, l + l + 1 - j);
- putchp(letter);
- }
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- tt_putparm(cursor_address, 1, line_count = r, char_count = c);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_hd(test_list, status, ch)
-**
-** Test (hd) Half down
-*/
-static void
-pad_hd(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, k;
-
- if (!down_half_line) {
- CAP_NOT_FOUND;
- ptext("(hd) Half-line-down not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(hd) Half-line-down start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- for (i = 1; i < columns; i += 2) {
- for (j = 1; j < i; ++j) {
- putchp(' ');
- }
- tt_putp(down_half_line);
- for (k = lines + lines; k > 4; k--) {
- if (j++ >= columns) {
- break;
- }
- tt_putp(down_half_line);
- putchp(letter);
- }
- go_home();
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_hu(test_list, status, ch)
-**
-** Test (hu) Half line up
-*/
-static void
-pad_hu(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j, k;
-
- if (!up_half_line) {
- CAP_NOT_FOUND;
- ptext("(hu) Half-line-up not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(hu) Half-line-up start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- for (i = 1; i < columns; i += 2) {
- home_down();
- for (j = 1; j < i; ++j) {
- putchp(' ');
- }
- tt_putp(up_half_line);
- for (k = lines + lines; k > 4; k--) {
- if (j++ >= columns) {
- break;
- }
- tt_putp(up_half_line);
- putchp(letter);
- }
- SLOW_TERMINAL_EXIT;
- }
- go_home();
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_rin(test_list, status, ch)
-**
-** Test (rin) and (ri) Reverse index
-*/
-static void
-pad_rin(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- const char *start_message;
-
- if (t->flags & 1) {
- /* rin */
- if (!parm_rindex) {
- CAP_NOT_FOUND;
- ptext("(rin) Scroll-reverse-n-lines not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(rin) Scroll-reverse-n-lines start testing";
- } else {
- /* ri */
- if (!scroll_reverse) {
- CAP_NOT_FOUND;
- ptext("(ri) Scroll-reverse not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(ri) Scroll-reverse start testing";
- augment = 1;
- }
- if (skip_pad_test(t, state, ch, start_message)) {
- return;
- }
- pad_test_startup(1);
- do {
- sprintf(temp, "%d\r", test_complete);
- put_str(temp);
- if (scroll_reverse && augment == 1) {
- tt_putp(scroll_reverse);
- } else {
- tt_putparm(parm_rindex, repeats, repeats, 0);
- }
- } while(still_testing());
- put_str("This line should be on the bottom.\r");
- if (scroll_reverse && augment == 1) {
- for (i = 1; i < lines; i++) {
- tt_putp(scroll_reverse);
- }
- } else {
- tt_putparm(parm_rindex, lines - 1, lines - 1, 0);
- }
- putln("The screen should have text on the bottom line.");
- sprintf(temp, "Scroll reverse %d line%s. ", augment,
- augment == 1 ? "" : "s");
- put_str(temp);
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_il(test_list, status, ch)
-**
-** Test (il) and (il1) Insert line
-*/
-static void
-pad_il(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- const char *start_message;
-
- if (t->flags & 1) {
- /* il */
- if (!parm_insert_line) {
- CAP_NOT_FOUND;
- ptext("(il) Insert-lines not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(il) Insert-lines start testing";
- } else {
- /* il1 */
- if (!insert_line) {
- CAP_NOT_FOUND;
- ptext("(il1) Insert-line not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(il1) Insert-line start testing";
- augment = 1;
- }
- if (skip_pad_test(t, state, ch, start_message)) {
- return;
- }
- pad_test_startup(1);
- do {
- sprintf(temp, "%d\r", test_complete);
- put_str(temp);
- if (insert_line && repeats == 1) {
- tt_putp(insert_line);
- } else {
- tt_putparm(parm_insert_line, repeats, repeats, 0);
- }
- } while(still_testing());
- put_str("This line should be on the bottom.\r");
- if (scroll_reverse && augment == 1) {
- for (i = 1; i < lines; i++) {
- tt_putp(insert_line);
- }
- } else {
- tt_putparm(parm_insert_line, lines - 1, lines - 1, 0);
- }
- putln("The screen should have text on the bottom line.");
- sprintf(temp, "Insert %d line%s. ", augment,
- augment == 1 ? "" : "s");
- put_str(temp);
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
- put_clear();
-}
-
-/*
-** pad_indn(test_list, status, ch)
-**
-** Test (indn) and (ind) Scroll forward
-*/
-static void
-pad_indn(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
- const char *start_message;
-
- if (t->flags & 1) {
- /* indn */
- if (!parm_index) {
- CAP_NOT_FOUND;
- ptext("(indn) Scroll-forward-n-lines not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(indn) Scroll-forward-n-lines start testing";
- } else {
- /* ind */
- if (!scroll_forward && over_strike) {
- CAP_NOT_FOUND;
- ptext("(ind) Scroll-forward not tested on overstrike terminals. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(ind) Scroll-forward start testing";
- augment = 1;
- }
- if (skip_pad_test(t, state, ch, start_message)) {
- return;
- }
- pad_test_startup(1);
- /* go to the bottom of the screen */
- home_down();
- do {
- sprintf(temp, "%d\r", test_complete);
- put_str(temp);
- if (augment > 1) {
- tt_putparm(parm_index, repeats, repeats, 0);
- } else {
- put_ind();
- }
- } while(still_testing());
- put_str("This line should be on the top.\r");
- if (augment == 1) {
- for (i = 1; i < lines; i++) {
- put_ind();
- }
- } else {
- tt_putparm(parm_index, lines - 1, lines - 1, 0);
- }
- go_home();
- sprintf(temp, "\nScroll forward %d line%s. ", augment,
- augment == 1 ? "" : "s");
- put_str(temp);
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_dl(test_list, status, ch)
-**
-** Test (dl) and (dl1) Delete lines
-*/
-static void
-pad_dl(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i = 0;
- const char *start_message;
-
- if (t->flags & 1) {
- /* dl */
- if (!parm_delete_line) {
- CAP_NOT_FOUND;
- ptext("(dl) Delete-lines not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(dl) Delete-lines start testing";
- } else {
- /* dl1 */
- if (!delete_line) {
- CAP_NOT_FOUND;
- ptext("(dl1) Delete-line not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- start_message = "(dl1) Delete-line start testing";
- augment = 1;
- }
- if (skip_pad_test(t, state, ch, start_message)) {
- return;
- }
- pad_test_startup(1);
- do {
- sprintf(temp, "%d\r", test_complete);
- if ((i & 0x7f) == 0 && augment < lines - 1) {
- go_home();
- putln(temp);
- }
- put_str(temp);
- if (repeats || !delete_line) {
- tt_putparm(parm_delete_line, repeats, repeats, 0);
- } else {
- tt_putp(delete_line);
- }
- } while(still_testing());
- home_down();
- put_str("This line should be on the top.");
- go_home();
- if (repeats || !delete_line) {
- tt_putparm(parm_delete_line, lines - 1, lines - 1, 0);
- } else {
- for (i = 1; i < lines; i++) {
- tt_putp(delete_line);
- }
- }
- sprintf(temp, "\nDelete %d line%s. ", augment,
- augment == 1 ? "" : "s");
- put_str(temp);
- pad_test_shutdown(t, 0);
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_xl(test_list, status, ch)
-**
-** Test (il1) Insert and (dl1) Delete lines
-*/
-static void
-pad_xl(
- struct test_list *t,
- int *state,
- int *ch)
-{
- if (!insert_line && !delete_line) {
- /* quietly skip this test */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(il1) Insert-line, (dl1) Delete-line start testing")) {
- return;
- }
- put_clear();
- putln("\rThis text is written on the first line.");
- ptext("This sentence begins on the second line. As this");
- ptext(" test runs the bottom part of this paragraph will");
- ptext(" jump up and down. Don't worry, that's normal. When");
- ptext(" the jumping stops, the entire paragraph should");
- ptext(" still be on the screen and in the same place as when");
- ptext(" the test started. If this paragraph has scrolled");
- ptext(" off the top or bottom of the screen then the test");
- ptext(" has failed. Scrolling off the top of the screen");
- ptext(" usually means that the delete line capability is");
- ptext(" working better than the insert line capability. If");
- ptext(" the text scrolls off the bottom then delete line may");
- ptext(" be broken. If parts of the text are missing then");
- ptext(" you should get professional help.");
- put_crlf();
- go_home();
- put_newlines(2);
- pad_test_startup(0);
- do {
- tt_putp(insert_line);
- put_cr();
- tt_putp(delete_line);
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext("The top of the screen should have a paragraph of text. ");
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_scrc(test_list, status, ch)
-**
-** Test (sc) (rc) Save/restore cursor
-*/
-static void
-pad_scrc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!save_cursor || !restore_cursor) {
- CAP_NOT_FOUND;
- if (save_cursor) {
- ptext("(rc) Restore-cursor");
- } else
- if (restore_cursor) {
- ptext("(sc) Save-cursor");
- } else {
- ptext("(sc) Save-cursor, (rc) Restore-cursor");
- }
- ptext(" not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(sc) (rc) Save/Restore-cursor start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- for (i = 1; i < columns; i++) {
- tt_putp(save_cursor);
- putchp(letter);
- tt_putp(restore_cursor);
- putchp('X');
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(above_line);
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_csrind(test_list, status, ch)
-**
-** Test (csr) and (ind) Change scroll region and index.
-*/
-static void
-pad_csrind(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!change_scroll_region) {
- CAP_NOT_FOUND;
- ptext("(csr) Change-scroll-region not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(csr) Save/Restore-cursor, (ind) index start testing")) {
- return;
- }
- if (augment < 2) {
- augment = 2;
- }
- if (augment > lines - 1) {
- augment = lines - 1;
- }
- put_clear();
- ptext("This text is on the top line.");
- tt_putparm(change_scroll_region, 1, lines - augment, lines - 1);
- /* go to the bottom of the screen */
- home_down();
- pad_test_startup(0);
- do {
- sprintf(temp, "%d\r", test_complete);
- put_str(temp);
- put_ind();
- } while(still_testing());
- ptextln("(csr) is broken.");
- for (i = augment; i > 1; i--) {
- put_ind();
- }
- pad_test_shutdown(t, 0);
- ptext("All but top and bottom lines should be blank. ");
- pad_done_message(t, state, ch);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
- put_clear();
-}
-
-/*
-** pad_sccsrrc(test_list, status, ch)
-**
-** Test (sc) (csr) and (rc) Save/Change/Restore scroll region
-*/
-static void
-pad_sccsrrc(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i;
-
- if (!save_cursor || !change_scroll_region || !restore_cursor) {
- /* quietly ignore this test */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(sc) (csr) (rc) Save/Change/Restore-cursor, start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- for (i = 1; i < columns; i++) {
- tt_putp(save_cursor);
- putchp(letter);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
- tt_putp(restore_cursor);
- putchp('X');
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(above_line);
- pad_done_message(t, state, ch);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-** pad_csr_nel(test_list, status, ch)
-**
-** Test (sc) (csr) (nel) and (rc) Save/Change/Restore scroll region
-*/
-static void
-pad_csr_nel(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!save_cursor || !change_scroll_region || !restore_cursor) {
- /* quietly ignore this test */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(csr) Change-scroll-region, (nel) newline start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- for (i = 0; i < lines; i++) {
- for (j = lines - i; j > 0; j--) {
- put_crlf();
- }
- tt_putp(save_cursor);
- tt_putparm(change_scroll_region, 1, i, lines - 1);
- tt_putp(restore_cursor);
- put_str(every_line);
- }
- tt_putp(save_cursor);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
- tt_putp(restore_cursor);
- } while(still_testing());
- pad_test_shutdown(t, 0);
- put_str(" ");
- pad_done_message(t, state, ch);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-** pad_csr_cup(test_list, status, ch)
-**
-** Test (csr) (cup) Change scroll region and cursor address
-*/
-static void
-pad_csr_cup(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!change_scroll_region || !cursor_address) {
- /* quietly ignore this test */
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(csr) Change-scroll-region, (cup) cursor-address start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- for (i = 0; i < lines; i++) {
- for (j = lines - i; j > 0; j--) {
- put_crlf();
- }
- tt_putparm(change_scroll_region, 1, i, lines - 1);
- tt_putparm(cursor_address, 1, lines - 1, 0);
- put_str(every_line);
- }
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
- tt_putparm(cursor_address, 1, lines - 1, strlen(every_line));
- } while(still_testing());
- pad_test_shutdown(t, 0);
- put_str(" ");
- pad_done_message(t, state, ch);
- tt_putparm(change_scroll_region, 1, 0, lines - 1);
-}
-
-/*
-** pad_ht(test_list, status, ch)
-**
-** Test (ht) Tabs
-*/
-static void
-pad_ht(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!set_tab && init_tabs <= 0) {
- CAP_NOT_FOUND;
- ptext("(ht) Tab not tested. (hts) Set-tabs and (it) initial-tabs not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch, "(ht) Tab start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- /*
- it is not always possible to test tabs with caps
- that do not already have padding. The following
- test uses a mixed bag of tests in order to avoid
- this problem. Note: I do not scroll
- */
- if (auto_right_margin && can_go_home)
- for (i = 1, go_home(); i < lines - 2; i++) {
- for (j = 8; j < columns; j += 8) {
- putchp('\t');
- }
- put_str("A ");
- }
- if (cursor_down && can_go_home)
- for (i = 1, go_home(); i < lines - 2; i++) {
- for (j = 8; j < columns; j += 8) {
- putchp('\t');
- }
- put_str("D\r");
- tt_putp(cursor_down);
- }
- if (cursor_address)
- for (i = 1; i < lines - 2; i++) {
- tt_putparm(cursor_address, 1, i - 1, 0);
- for (j = 8; j < columns; j += 8) {
- putchp('\t');
- }
- put_str("C");
- }
- go_home();
- for (i = 1; i < lines - 2; i++) {
- for (j = 8; j < columns; j += 8) {
- putchp('\t');
- }
- putln("N");
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- ptextln("Letters on the screen other than Ns at the right margin indicate failure.");
- ptext("A-(am) D-(cud1) C-(cup) N-(nel) ");
- pad_done_message(t, state, ch);
-}
-
-/*
-** pad_smso(test_list, status, ch)
-**
-** Test (smso) (rmso) Enter/exit mode
-*/
-static void
-pad_smso(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- if (!enter_standout_mode || !exit_standout_mode) {
- CAP_NOT_FOUND;
- ptext("(smso) (rmso) Enter/Exit-standout-mode not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(smso) (rmso) Enter/Exit-standout-mode start testing")) {
- return;
- }
- /*
- In terminals that emulate non-hidden attributes with hidden
- attributes, the amount of time that it takes to fill the screen
- with an attribute is nontrivial. The following test is designed to
- catch those delays
- */
- pad_test_startup(1);
- do {
- page_loop();
- j = magic_cookie_glitch > 0 ? magic_cookie_glitch : 0;
- for (i = 2 + j + j; i < columns;) {
- put_mode(enter_standout_mode);
- i += j + j + 2;
- putchp('X');
- put_mode(exit_standout_mode);
- putchp('X');
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext(above_line);
- pad_done_message(t, state, ch);
- put_mode(exit_standout_mode);
-}
-
-/*
-** pad_smacs(test_list, status, ch)
-**
-** Test (smacs) (rmacs) Enter/exit altcharset mode
-*/
-static void
-pad_smacs(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int i, j;
-
- /* test enter even if exit is missing */
- if (!enter_alt_charset_mode) {
- CAP_NOT_FOUND;
- ptext("(smacs) Enter-altcharset-mode not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(smacs) (rmacs) Enter/Exit-altcharset-mode start testing")) {
- return;
- }
- pad_test_startup(1);
- do {
- page_loop();
- j = magic_cookie_glitch > 0 ? magic_cookie_glitch : 0;
- for (i = 2 + j + j; i < columns;) {
- put_mode(enter_alt_charset_mode);
- i += j + j + 2;
- putchp(letter);
- put_mode(exit_alt_charset_mode);
- putchp(letter);
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- home_down();
- ptext("Every other character is from the alternate character set. ");
- pad_done_message(t, state, ch);
- put_mode(exit_alt_charset_mode);
-}
-
-/*
-** pad_crash(test_list, status, ch)
-**
-** Test (clear) without padding
-*/
-static void
-pad_crash(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int save_xon_xoff;
-
- if (!clear_screen) {
- ptext("(clear) Clear-screen not present. ");
- pad_done_message(t, state, ch);
- return;
- }
- ptext("If you would like to see if the terminal will really lock up.");
- ptextln(" I will send the clear screen sequence without the pads.");
- if (skip_pad_test(t, state, ch,
- "(clear) Clear-screen start crash testing")) {
- return;
- }
- save_xon_xoff = xon_xoff;
- xon_xoff = 1;
- pad_test_startup(0);
- do {
- put_str("Erase this!");
- tt_putp(clear_screen);
- } while(still_testing());
- xon_xoff = save_xon_xoff;
- pad_test_shutdown(t, 1);
- pad_done_message(t, state, ch);
-}
diff --git a/ncurses-5.3/tack/scan.c b/ncurses-5.3/tack/scan.c
deleted file mode 100644
index 83b884f..0000000
--- a/ncurses-5.3/tack/scan.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-/* scan mode keyboard support */
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-int scan_max; /* length of longest scan code */
-char **scan_up, **scan_down, **scan_name;
-int *scan_tested, *scan_length, *scan_value;
-
-static int shift_state;
-static char *str;
-static int debug_char_count;
-
-#define SHIFT_KEY 0x100
-#define CONTROL_KEY 0x200
-#define META_KEY 0x400
-#define CAPS_LOCK 0x800
-
-static const struct {
- const char *name;
- int type;
-} scan_special[] = {
- {"<shift>", SHIFT_KEY},
- {"<left shift>", SHIFT_KEY},
- {"<right shift>", SHIFT_KEY},
- {"<control>", CONTROL_KEY},
- {"<left control>", CONTROL_KEY},
- {"<right control>", CONTROL_KEY},
- {"<meta>", META_KEY},
- {"<left meta>", META_KEY},
- {"<right meta>", META_KEY},
- {"<caps lock>", CAPS_LOCK},
- {"<tab>", '\t'},
- {"<space>", ' '},
- {"<return>", '\r'},
- {"<linefeed>", '\n'},
- {"<formfeed>", '\f'},
- {"<backspace>", '\b'},
- {0, 0}
-};
-
-static void
-scan_blanks(void)
-{ /* scan past the white space */
- while (*str == ' ' || *str == '\t')
- str++;
-}
-
-static char *
-smash(void)
-{ /* convert a string to hex */
- char *s, *t;
- int ch, i, j;
-
- t = s = str;
- for (i = 0; (ch = *str); str++) {
- if (ch >= '0' && ch <= '9')
- j = ch - '0';
- else if (ch >= 'a' && ch <= 'f')
- j = 10 - 'a' + ch;
- else if (ch >= 'A' && ch <= 'F')
- j = 10 - 'A' + ch;
- else if (ch == ' ' || ch == '\t')
- break;
- else
- continue;
- if (i) {
- *s |= j;
- s++;
- } else
- *s = j << 4;
- i ^= 1;
- }
- *s = '\0';
- return t;
-}
-
-void
-scan_init(char *fn)
-{ /* read the scan mode key definitions */
- char *s, *sl;
- FILE *fp;
- int ch, i, j;
- char home[512];
-
- if ((str = getenv("HOME")))
- strcpy(home, str);
- else
- home[0] = '\0';
- fp = NULL;
- if ((str = getenv("KEYBOARD"))) {
- if (!(fp = fopen(str, "r")) && home[0]) {
- sprintf(temp, "%s/.scan.%s", home, str);
- fp = fopen(temp, "r");
- }
- }
- if (!fp) {
- sprintf(temp, ".scan.%s", fn);
- fp = fopen(temp, "r");
- }
- if (!fp && home[0]) {
- sprintf(temp, "%s/.scan.%s", home, fn);
- fp = fopen(temp, "r");
- }
- if (!fp) {
- ptext("Unable to open scanfile: ");
- ptextln(temp);
- bye_kids(1);
- return;
- }
- /*
- scan file format:
-
- <down value> <up value> <name>
-
- values are in hex. <name> may be any string of characters
-
- */
- scan_up = (char **) malloc(sizeof(char *) * MAX_SCAN);
- scan_down = (char **) malloc(sizeof(char *) * MAX_SCAN);
- scan_name = (char **) malloc(sizeof(char *) * MAX_SCAN);
- scan_tested = (int *) malloc(sizeof(int *) * MAX_SCAN);
- scan_length = (int *) malloc(sizeof(int *) * MAX_SCAN);
- scan_value = (int *) malloc(sizeof(int *) * MAX_SCAN);
- scan_up[0] = scan_down[0] = scan_name[0] = (char *) 0;
- str = (char *) malloc(4096); /* buffer space */
- sl = str + 4000; /* an upper limit */
- scan_max = 1;
- for (i = 0;;) {
- for (s = str; (ch = getc(fp)) != EOF;) {
- if (ch == '\n' || ch == '\r')
- break;
- *s++ = ch;
- }
- *s++ = '\0';
- if (ch == EOF)
- break;
- if (*str == '#' || *str == '\0')
- continue;
- scan_down[i] = smash();
- scan_blanks();
- scan_up[i] = smash();
- scan_blanks();
- scan_name[i] = str;
-
- scan_length[i] = strlen(scan_down[i]);
- ch = strlen(scan_up[i]) + scan_length[i];
- if (ch > scan_max)
- scan_max = ch;
-
- scan_value[i] = scan_name[i][0];
- if (scan_name[i][1]) /* multi-character name */
- for (j = 0; scan_special[j].name; j++) {
- if (!strcmp(scan_name[i], scan_special[j].name)) {
- scan_value[i] = scan_special[j].type;
- break;
- }
- }
-
- i++;
- if (str > sl) {
- str = (char *) malloc(4096);
- sl = str + 4000;
- } else
- str = s;
- }
- fclose(fp);
-#ifdef notdef
- for (i = 0; scan_down[i]; i++) {
- put_str(hex_expand_to(scan_down[i], 3));
- put_str(hex_expand_to(scan_up[i], 3));
- put_str(" ");
- put_str(scan_name[i]);
- put_crlf();
- }
- (void) wait_here();
-#endif
-}
-
-int
-scan_key(void)
-{ /* read a key and translate scan mode to
- ASCII */
- int i, j, ch;
- char buf[64];
-
- for (i = 1;; i++) {
- ch = getchar();
- if (ch == EOF)
- return EOF;
- if (debug_fp) {
- fprintf(debug_fp, "%02X ", ch);
- debug_char_count += 3;
- if (debug_char_count > 72) {
- fprintf(debug_fp, "\n");
- debug_char_count = 0;
- }
- }
- buf[i - 1] = ch;
- buf[i] = '\0';
- if (buf[0] & 0x80) { /* scan up */
- for (j = 0; scan_up[j]; j++) {
- if (i == scan_length[j] &&
- !strcmp(buf, scan_up[j])) {
- i = 0;
- shift_state &= ~scan_value[j];
- break;
- }
- }
- continue;
- }
- for (j = 0; scan_down[j]; j++) {
- if (i == scan_length[j] && !strcmp(buf, scan_down[j])) {
- i = 0;
- shift_state |= scan_value[j];
- ch = scan_value[j];
- if (ch == CAPS_LOCK)
- shift_state ^= SHIFT_KEY;
- if (ch >= 256)
- break;
- if (shift_state & SHIFT_KEY) {
- if (ch >= 0x60)
- ch -= 0x20;
- else if (ch >= 0x30 && ch <= 0x3f)
- ch -= 0x10;
- }
- if (shift_state & CONTROL_KEY) {
- if ((ch | 0x20) >= 0x60 &&
- (ch | 0x20) <= 0x7f)
- ch = (ch | 0x20) - 0x60;
- }
- if (shift_state & META_KEY)
- ch |= 0x80;
- return ch;
- }
- }
- if (i > scan_max)
- i = 1;
- }
-}
diff --git a/ncurses-5.3/tack/sync.c b/ncurses-5.3/tack/sync.c
deleted file mode 100644
index 5f52676..0000000
--- a/ncurses-5.3/tack/sync.c
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-#include <time.h>
-
-MODULE_ID("$Id$")
-
-/* terminal-synchronization and performance tests */
-
-static void sync_home(struct test_list *, int *, int *);
-static void sync_lines(struct test_list *, int *, int *);
-static void sync_clear(struct test_list *, int *, int *);
-static void sync_summary(struct test_list *, int *, int *);
-
-struct test_list sync_test_list[] = {
- {MENU_NEXT, 0, 0, 0, "b) baud rate test", sync_home, 0},
- {MENU_NEXT, 0, 0, 0, "l) scroll performance", sync_lines, 0},
- {MENU_NEXT, 0, 0, 0, "c) clear screen performance", sync_clear, 0},
- {MENU_NEXT, 0, 0, 0, "p) summary of results", sync_summary, 0},
- {0, 0, 0, 0, txt_longer_test_time, longer_test_time, 0},
- {0, 0, 0, 0, txt_shorter_test_time, shorter_test_time, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-struct test_menu sync_menu = {
- 0, 'n', 0,
- "Performance tests", "perf", "n) run standard tests",
- sync_test, sync_test_list, 0, 0, 0
-};
-
-int tty_can_sync; /* TRUE if tty_sync_error() returned FALSE */
-int tty_newline_rate; /* The number of newlines per second */
-int tty_clear_rate; /* The number of clear-screens per second */
-int tty_cps; /* The number of characters per second */
-
-#define TTY_ACK_SIZE 64
-
-int ACK_terminator; /* terminating ACK character */
-int ACK_length; /* length of ACK string */
-const char *tty_ENQ; /* enquire string */
-char tty_ACK[TTY_ACK_SIZE]; /* ACK response, set by tty_sync_error() */
-
-/*****************************************************************************
- *
- * Terminal synchronization.
- *
- * These functions handle the messy business of enq-ack handshaking
- * for timing purposes.
- *
- *****************************************************************************/
-
-int
-tty_sync_error(void)
-{
- int ch, trouble, ack;
-
- trouble = FALSE;
- for (;;) {
- tt_putp(tty_ENQ); /* send ENQ */
- ch = getnext(STRIP_PARITY);
- event_start(TIME_SYNC); /* start the timer */
-
- /*
- The timer doesn't start until we get the first character.
- After that I expect to get the remaining characters of
- the acknowledge string in a short period of time. If
- that is not true then these characters are coming from
- the user and we need to send the ENQ sequence out again.
- */
- for (ack = 0; ; ) {
- if (ack < TTY_ACK_SIZE - 2) {
- tty_ACK[ack] = ch;
- tty_ACK[ack + 1] = '\0';
- }
- if (ch == ACK_terminator) {
- return trouble;
- }
- if (++ack >= ACK_length) {
- return trouble;
- }
- ch = getnext(STRIP_PARITY);
- if (event_time(TIME_SYNC) > 400000) {
- break;
- }
- }
-
- set_attr(0); /* just in case */
- put_crlf();
- if (trouble) {
- /* The terminal won't sync. Life is not good. */
- return TRUE;
- }
- put_str(" -- sync -- ");
- trouble = TRUE;
- }
-}
-
-/*
-** flush_input()
-**
-** Throw away any output.
-*/
-void
-flush_input(void)
-{
- if (tty_can_sync == SYNC_TESTED && ACK_terminator >= 0) {
- (void) tty_sync_error();
- } else {
- spin_flush();
- }
-}
-
-/*
-** probe_enq_ok()
-**
-** does the terminal do enq/ack handshaking?
-*/
-static void
-probe_enq_ok(void)
-{
- int tc, len, ulen;
-
- put_str("Testing ENQ/ACK, standby...");
- fflush(stdout);
- can_test("u8 u9", FLAG_TESTED);
-
-#ifdef user9
- 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);
-
- if (event_time(TIME_SYNC) > 400000 || tty_ACK[0] == '\0') {
- /* These characters came from the user. Sigh. */
- tty_can_sync = SYNC_FAILED;
- ptext("\nThis program expects the ENQ sequence to be");
- ptext(" answered with the ACK character. This will help");
- ptext(" the program reestablish synchronization when");
- ptextln(" the terminal is overrun with data.");
- ptext("\nENQ sequence from (u9): ");
- putln(expand(tty_ENQ));
- ptext("ACK received: ");
- putln(expand(tty_ACK));
-#ifdef user8
- 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);
-#ifdef user8
- if (len) {
- temp[0] = user8[len - 1];
- temp[1] = '\0';
- ptext("Terminating character found in (u8): ");
- putln(expand(temp));
- }
-#endif
- return;
- }
-
- tty_can_sync = SYNC_TESTED;
- if ((len = strlen(tty_ACK)) == 1) {
- /* single character acknowledge string */
- ACK_terminator = tty_ACK[0];
- ACK_length = 4096;
- return;
- }
- tc = tty_ACK[len - 1];
-#ifdef user8
- if (user8) {
- ulen = strlen(user8);
- if (tc == user8[ulen - 1]) {
- /* ANSI style acknowledge string */
- ACK_terminator = tc;
- ACK_length = 4096;
- return;
- }
- }
-#endif
- /* fixed length acknowledge string */
- ACK_length = len;
- ACK_terminator = -2;
-}
-
-/*
-** verify_time()
-**
-** verify that the time tests are ready to run.
-** If the baud rate is not set then compute it.
-*/
-void
-verify_time(void)
-{
- int status, ch;
-
- if (tty_can_sync == SYNC_FAILED) {
- return;
- }
- probe_enq_ok();
- put_crlf();
- if (tty_can_sync == SYNC_TESTED) {
- put_crlf();
- if (ACK_terminator >= 0) {
- ptext("ACK terminating character: ");
- temp[0] = ACK_terminator;
- temp[1] = '\0';
- ptextln(expand(temp));
- } else {
- sprintf(temp, "Fixed length ACK, %d characters",
- ACK_length);
- ptextln(temp);
- }
- }
- if (tty_baud_rate == 0) {
- sync_home(&sync_test_list[0], &status, &ch);
- }
-}
-
-/*****************************************************************************
- *
- * Terminal performance tests
- *
- * Find out how fast the terminal can:
- * 1) accept characters
- * 2) scroll the screen
- * 3) clear the screen
- *
- *****************************************************************************/
-
-/*
-** sync_home(test_list, status, ch)
-**
-** Baudrate test
-*/
-void
-sync_home(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j, k;
- unsigned long rate;
-
- if (!cursor_home && !cursor_address && !row_address) {
- ptext("Terminal can not home cursor. ");
- generic_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(home) Start baudrate search")) {
- return;
- }
- pad_test_startup(1);
- do {
- go_home();
- for (j = 1; j < lines; j++) {
- for (k = 0; k < columns; k++) {
- if (k & 0xF) {
- put_this(letter);
- } else {
- put_this('.');
- }
- }
- SLOW_TERMINAL_EXIT;
- }
- NEXT_LETTER;
- } while(still_testing());
- pad_test_shutdown(t, auto_right_margin == 0);
- /* note: tty_frame_size is the real framesize times two.
- This takes care of half bits. */
- rate = (tx_cps * tty_frame_size) >> 1;
- if (rate > tty_baud_rate) {
- tty_baud_rate = rate;
- }
- if (tx_cps > tty_cps) {
- tty_cps = tx_cps;
- }
- sprintf(temp, "%d characters per second. Baudrate %d ", tx_cps, j);
- ptext(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** sync_lines(test_list, status, ch)
-**
-** How many newlines/second?
-*/
-static void
-sync_lines(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j;
-
- if (skip_pad_test(t, state, ch,
- "(nel) Start scroll performance test")) {
- return;
- }
- pad_test_startup(0);
- repeats = 100;
- do {
- sprintf(temp, "%d", test_complete);
- put_str(temp);
- put_newlines(repeats);
- } while(still_testing());
- pad_test_shutdown(t, 0);
- j = sliding_scale(tx_count[0], 1000000, usec_run_time);
- if (j > tty_newline_rate) {
- tty_newline_rate = j;
- }
- sprintf(temp, "%d linefeeds per second. ", j);
- ptext(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** sync_clear(test_list, status, ch)
-**
-** How many clear-screens/second?
-*/
-static void
-sync_clear(
- struct test_list *t,
- int *state,
- int *ch)
-{
- int j;
-
- if (!clear_screen) {
- ptext("Terminal can not clear-screen. ");
- generic_done_message(t, state, ch);
- return;
- }
- if (skip_pad_test(t, state, ch,
- "(clear) Start clear-screen performance test")) {
- return;
- }
- pad_test_startup(0);
- repeats = 20;
- do {
- sprintf(temp, "%d", test_complete);
- put_str(temp);
- for (j = 0; j < repeats; j++) {
- put_clear();
- }
- } while(still_testing());
- pad_test_shutdown(t, 0);
- j = sliding_scale(tx_count[0], 1000000, usec_run_time);
- if (j > tty_clear_rate) {
- tty_clear_rate = j;
- }
- sprintf(temp, "%d clear-screens per second. ", j);
- ptext(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** sync_summary(test_list, status, ch)
-**
-** Print out the test results.
-*/
-static void
-sync_summary(
- struct test_list *t,
- int *state,
- int *ch)
-{
- char size[32];
-
- put_crlf();
- ptextln("Terminal size characters/sec linefeeds/sec clears/sec");
- sprintf(size, "%dx%d", columns, lines);
- sprintf(temp, "%-10s%-11s%11d %11d %11d", tty_basename, size,
- tty_cps, tty_newline_rate, tty_clear_rate);
- ptextln(temp);
- generic_done_message(t, state, ch);
-}
-
-/*
-** sync_test(menu)
-**
-** Run at the beginning of the pad tests and function key tests
-*/
-void
-sync_test(
- struct test_menu *menu)
-{
- control_init();
- if (tty_can_sync == SYNC_NOT_TESTED) {
- verify_time();
- }
- if (menu->menu_title) {
- put_crlf();
- ptextln(menu->menu_title);
- }
-}
-
-/*
-** sync_handshake(test_list, status, ch)
-**
-** Test or retest the ENQ/ACK handshake
-*/
-void
-sync_handshake(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- tty_can_sync = SYNC_NOT_TESTED;
- verify_time();
-}
diff --git a/ncurses-5.3/tack/sysdep.c b/ncurses-5.3/tack/sysdep.c
deleted file mode 100644
index c073460..0000000
--- a/ncurses-5.3/tack/sysdep.c
+++ /dev/null
@@ -1,501 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-/*
- * Operating system dependent functions. We assume the POSIX API.
- * Note: on strict-POSIX systems (including BSD/OS) the select_delay_type
- * global has no effect.
- */
-
-#include <signal.h> /* include before curses.h to work around glibc bug */
-
-#include <tack.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>
-#endif
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#endif
-
-MODULE_ID("$Id$")
-
-#if DECL_ERRNO
-extern int errno;
-#endif
-
-#ifdef TERMIOS
-#define PUT_TTY(fd, buf) tcsetattr(fd, TCSAFLUSH, buf)
-#else
-#define PUT_TTY(fd, buf) stty(fd, buf)
-#endif
-
-/* globals */
-int tty_frame_size; /* asynch frame size times 2 */
-unsigned long tty_baud_rate; /* baud rate - bits per second */
-int not_a_tty; /* TRUE if output is not a tty (i.e. pipe) */
-int nodelay_read; /* TRUE if NDELAY is set */
-
-#ifdef TERMIOS
-#define TTY_IS_NOECHO !(new_modes.c_lflag & ECHO)
-#define TTY_IS_OUT_TRANS (new_modes.c_oflag & OPOST)
-#define TTY_IS_CHAR_MODE !(new_modes.c_lflag & ICANON)
-#define TTY_WAS_CS8 ((old_modes.c_cflag & CSIZE) == CS8)
-#define TTY_WAS_XON_XOFF (old_modes.c_iflag & (IXON|IXOFF))
-#else
-#define TTY_IS_NOECHO !(new_modes.sg_flags & (ECHO))
-#define TTY_IS_OUT_TRANS (new_modes.sg_flags & (CRMOD))
-#define TTY_IS_CHAR_MODE (new_modes.sg_flags & (RAW|CBREAK))
-#define TTY_WAS_CS8 (old_modes.sg_flags & (PASS8))
-#define TTY_WAS_XON_XOFF (old_modes.sg_flags & (TANDEM|MDMBUF|DECCTQ))
-#endif
-
-static TTY old_modes, new_modes;
-
-void catchsig(void);
-
-/*
- * These are a sneaky way of conditionalizing bit unsets so strict-POSIX
- * systems won't see them.
- */
-#ifndef XCASE
-#define XCASE 0
-#endif
-#ifndef OLCUC
-#define OLCUC 0
-#endif
-#ifndef IUCLC
-#define IUCLC 0
-#endif
-#ifndef TABDLY
-#define TABDLY 0
-#endif
-#ifndef IXANY
-#define IXANY 0
-#endif
-
-void
-tty_raw(int minch GCC_UNUSED, int mask)
-{ /* set tty to raw noecho */
- new_modes = old_modes;
-#ifdef TERMIOS
-#if HAVE_SELECT
- new_modes.c_cc[VMIN] = 1;
-#else
- new_modes.c_cc[VMIN] = minch;
-#endif
- new_modes.c_cc[VTIME] = 2;
- new_modes.c_lflag &=
- ~(ISIG | ICANON | XCASE | ECHO | ECHOE | ECHOK | ECHONL);
-#ifdef LOBLK
- new_modes.c_lflag &= ~LOBLK;
-#endif
- new_modes.c_oflag &= ~(OPOST | OLCUC | TABDLY);
- if (mask == ALLOW_PARITY) {
- new_modes.c_cflag &= ~(CSIZE | PARENB | HUPCL);
- new_modes.c_cflag |= CS8;
- }
- new_modes.c_iflag &=
- ~(IGNBRK | BRKINT | IGNPAR | PARMRK | INPCK | ISTRIP | INLCR | IGNCR | ICRNL |
- IUCLC | IXON | IXANY | IXOFF);
-#else
- new_modes.sg_flags |= RAW;
-#endif
- if (not_a_tty)
- return;
- PUT_TTY(fileno(stdin), &new_modes);
-}
-
-void
-tty_set(void)
-{ /* set tty to special modes */
- new_modes = old_modes;
-#ifdef TERMIOS
- new_modes.c_cc[VMIN] = 1;
- new_modes.c_cc[VTIME] = 1;
- new_modes.c_lflag &= ~(ISIG | ICANON | ECHO | ECHOE | ECHOK | ECHONL);
-#if defined(ONLCR) && defined(OCRNL) && defined(ONLRET) && defined(OFILL)
- new_modes.c_oflag &= ~(ONLCR | OCRNL | ONLRET | OFILL);
-#else
- new_modes.c_oflag &= ~(OPOST);
-#endif
- if (char_mask == ALLOW_PARITY)
- new_modes.c_iflag &= ~ISTRIP;
- switch (select_xon_xoff) {
- case 0:
- new_modes.c_iflag &= ~(IXON | IXOFF);
- break;
- case 1:
-#if defined(sequent) && sequent
- /* the sequent System V emulation is broken */
- new_modes = old_modes;
- new_modes.c_cc[VEOL] = 6; /* control F (ACK) */
-#endif
- new_modes.c_iflag |= IXON | IXOFF;
- break;
- }
- switch (select_delay_type) {
- case 0:
-#ifdef NLDLY
- new_modes.c_oflag &=
- ~(NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY);
-#endif /* NLDLY */
- break;
- case 1:
-#ifdef NLDLY
- new_modes.c_oflag &=
- ~(NLDLY | CRDLY | TABDLY | BSDLY | VTDLY | FFDLY);
-#endif /* NLDLY */
-#ifdef NL1
- new_modes.c_oflag |= NL1 | CR2;
-#endif /* NL1 */
- break;
- }
- if (!(new_modes.c_oflag & ~OPOST))
- new_modes.c_oflag &= ~OPOST;
-#else
- new_modes.sg_flags |= RAW;
- if (not_a_tty)
- return;
-#endif
- PUT_TTY(fileno(stdin), &new_modes);
-}
-
-
-void
-tty_reset(void)
-{ /* reset the tty to the original modes */
- fflush(stdout);
- if (not_a_tty)
- return;
- PUT_TTY(fileno(stdin), &old_modes);
-}
-
-
-void
-tty_init(void)
-{ /* ATT terminal init */
-#if defined(F_GETFL) && defined(O_NDELAY)
- int flags;
-
- flags = fcntl(fileno(stdin), F_GETFL, 0);
- nodelay_read = flags & O_NDELAY;
-#else
- nodelay_read = FALSE;
-#endif
- not_a_tty = FALSE;
- if (GET_TTY(fileno(stdin), &old_modes) == -1) {
- if (errno == ENOTTY) {
- tty_frame_size = 20;
- not_a_tty = TRUE;
- return;
- }
- printf("tcgetattr error: %d\n", errno);
- exit(1);
- }
- /* if TAB3 is set then setterm() wipes out tabs (ht) */
- new_modes = old_modes;
-#ifdef TERMIOS
-#ifdef TABDLY
- new_modes.c_oflag &= ~TABDLY;
-#endif /* TABDLY */
-#endif
- if (PUT_TTY(fileno(stdin), &new_modes) == -1) {
- printf("tcsetattr error: %d\n", errno);
- exit(1);
- }
-#ifdef sequent
- /* the sequent ATT emulation is broken soooo. */
- old_modes.c_cflag &= ~(CSIZE | CSTOPB);
- old_modes.c_cflag |= CS7 | PARENB;
-#endif
- catchsig();
-#ifdef TERMIOS
- switch (old_modes.c_cflag & CSIZE) {
-#if defined(CS5) && (CS5 != 0)
- case CS5:
- tty_frame_size = 10;
- break;
-#endif
-#if defined(CS6) && (CS6 != 0)
- case CS6:
- tty_frame_size = 12;
- break;
-#endif
-#if defined(CS7) && (CS7 != 0)
- case CS7:
- tty_frame_size = 14;
- break;
-#endif
-#if defined(CS8) && (CS8 != 0)
- case CS8:
- tty_frame_size = 16;
- break;
-#endif
- }
- tty_frame_size += 2 +
- ((old_modes.c_cflag & PARENB) ? 2 : 0) +
- ((old_modes.c_cflag & CSTOPB) ? 4 : 2);
-#else
- tty_frame_size = 6 +
- (old_modes.sg_flags & PASS8) ? 16 : 14;
-#endif
-}
-
-/*
-** stty_query(question)
-**
-** Does the current driver settings have this property?
-*/
-int
-stty_query(int q)
-{
- switch (q) {
- case TTY_NOECHO:
- return TTY_IS_NOECHO;
- case TTY_OUT_TRANS:
- return TTY_IS_OUT_TRANS;
- case TTY_CHAR_MODE:
- return TTY_IS_CHAR_MODE;
- }
- return (-1);
-}
-
-/*
-** initial_stty_query(question)
-**
-** Did the initial driver settings have this property?
-*/
-int
-initial_stty_query(int q)
-{
- switch (q) {
- case TTY_8_BIT:
- return TTY_WAS_CS8;
- case TTY_XON_XOFF:
- return TTY_WAS_XON_XOFF;
- }
- return (-1);
-}
-
-#if HAVE_SELECT && defined(FD_ZERO)
-static int
-char_ready(void)
-{
- int n;
- fd_set ifds;
- struct timeval tv;
-
- FD_ZERO(&ifds);
- FD_SET(fileno(stdin), &ifds);
- tv.tv_sec = 0;
- tv.tv_usec = 200000;
- n = select(fileno(stdin)+1, &ifds, NULL, NULL, &tv);
- return (n != 0);
-}
-
-#else
-#ifdef FIONREAD
-int
-char_ready(void)
-{
- int i, j;
-
- /* the following loop has to be tuned for each computer */
- for (j = 0; j < 1000; j++) {
- ioctl(fileno(stdin), FIONREAD, &i);
- if (i)
- return i;
- }
- return i;
-}
-
-#else
-#if defined(__BEOS__)
-int
-char_ready(void)
-{
- int n = 0;
- int howmany = ioctl(0, 'ichr', &n);
- return (howmany >= 0 && n > 0);
-}
-#else
-#define char_ready() 1
-#endif
-#endif
-#endif
-
-/*
-** spin_flush()
-**
-** Wait for the input stream to stop.
-** Throw away all input characters.
-*/
-void
-spin_flush(void)
-{
- unsigned char buf[64];
-
- fflush(stdout);
- event_start(TIME_FLUSH); /* start the timer */
- do {
- if (char_ready()) {
- (void) read(fileno(stdin), &buf, sizeof(buf));
- }
- } while (event_time(TIME_FLUSH) < 400000);
-}
-
-/*
-** read_key(input-buffer, length-of-buffer)
-**
-** read one function key from the input stream.
-** A null character is converted to 0x80.
-*/
-void
-read_key(char *buf, int max)
-{
- int got, ask, i, l;
- char *s;
-
- *buf = '\0';
- s = buf;
- fflush(stdout);
- /* ATT unix may return 0 or 1, Berkeley Unix should be 1 */
- while (read(fileno(stdin), s, 1) == 0);
- ++s;
- --max;
- while (max > 0 && (ask = char_ready())) {
- if (ask > max) {
- ask = max;
- }
- if ((got = read(fileno(stdin), s, ask))) {
- s += got;
- } else {
- break;
- }
- max -= got;
- }
- *s = '\0';
- l = s - buf;
- for (s = buf, i = 0; i < l; i++) {
- if ((*s & 0x7f) == 0) {
- /* convert nulls to 0x80 */
- *(unsigned char *)s = 128;
- } else {
- /* strip high order bits (if any) */
- *s &= char_mask;
- }
- }
-}
-
-
-void
-ignoresig(void)
-{
- /* ignore signals */
- signal(SIGINT, SIG_IGN);
- signal(SIGHUP, SIG_IGN);
- signal(SIGQUIT, SIG_IGN);
- signal(SIGTERM, SIG_IGN);
- signal(SIGALRM, SIG_IGN);
-}
-
- /*
- onintr( )
-
- is the interrupt handling routine onintr turns off interrupts while doing
- clean-up
-
- onintr always exits fatally
- */
-
-
-static RETSIGTYPE
-onintr(int sig GCC_UNUSED)
-{
- ignoresig();
- tty_reset();
- exit(1);
-}
-
-
- /*
- catchsig( )
-
- set up to field interrupts (via function onintr( )) so that if interrupted
- we can restore the correct terminal modes
-
- catchsig simply returns
- */
-
-
-void
-catchsig(void)
-{
- if ((signal(SIGINT, SIG_IGN)) == SIG_DFL)
- signal(SIGINT, onintr);
-
- if ((signal(SIGHUP, SIG_IGN)) == SIG_DFL)
- signal(SIGHUP, onintr);
-
- if ((signal(SIGQUIT, SIG_IGN)) == SIG_DFL)
- signal(SIGQUIT, onintr);
-
- if ((signal(SIGTERM, SIG_IGN)) == SIG_DFL)
- signal(SIGTERM, onintr);
-
-}
-
-/*
-** alarm_event(sig)
-**
-** Come here for an alarm event
-*/
-static void
-alarm_event(
- int sig GCC_UNUSED)
-{
- no_alarm_event = 0;
-}
-
-/*
-** set_alarm_clock(seconds)
-**
-** Set the alarm clock to fire in <seconds>
-*/
-void
-set_alarm_clock(
- int seconds)
-{
- signal(SIGALRM, alarm_event);
- no_alarm_event = 1;
- (void) alarm(seconds);
-}
diff --git a/ncurses-5.3/tack/tack.1 b/ncurses-5.3/tack/tack.1
deleted file mode 100644
index be74e58..0000000
--- a/ncurses-5.3/tack/tack.1
+++ /dev/null
@@ -1,311 +0,0 @@
-.TH tack 1M ""
-.ds n 5
-.ds d @TERMINFO@
-.SH NAME
-\fBtack\fR - \fIterminfo\fR action checker
-.SH SYNOPSIS
-\fBtack\fR [-itV] [term]
-.br
-.SH DESCRIPTION
-The \fBtack\fR program has three purposes:
-(1) to help you build a new terminfo entry describing an unknown terminal,
-(2) to test the correctness of an existing entry, and
-(3) to develop the correct pad timings needed to ensure that screen updates
-don't fall behind the incoming data stream.
-.PP
-\fBTack\fR presents a series of screen-painting and interactive
-tests in ways which are intended to make any mismatches between the
-terminfo entry and reality visually obvious.
-\fBTack\fR also provides tools that can help in understanding how
-the terminal operates.
-.SS OPTIONS
-.TP
-.I "\-i"
-Usually \fBtack\fR will send the reset and init strings to the terminal
-when the program starts up. The \fI-i\fR option will inhibit the
-terminal initialization.
-.TP
-.I "\-t"
-Tell \fBtack\fR to override the terminfo settings for basic terminal
-functions. When this option is set \fBtack\fR will translate
-(cr) to \\r, (cud1) to \\n, (ind) to \\n, (nel) to \\r\\n,
-(cub1) to \\b, (bel) to \\007, (ff) to \\f and (ht) to \\t.
-.TP
-.I "\-V"
-Display the version information and exit.
-.TP
-.I "term"
-Terminfo terminal name to be tested. If not present then the $TERM
-environment variable will be used.
-.SH OVERVIEW
-Since \fBtack\fR is designed to test terminfo's it is not possible
-to rely on the correctness of the terminfo data base. Because of this
-the menuing system used with \fBtack\fR is vary primitive. When a
-menu is printed it will scroll the entire screen. To compensate
-for this verbose menu system \fBtack\fR permits menu selection
-type ahead.
-If you already know what action you would like \fBtack\fR to perform
-then you can enter that value immediately and avoid the menu display.
-When in doubt the question mark (?) is a good character to type.
-A carriage return will execute the default action. These default
-actions are designed to run all the standard tests.
-.PP
-When \fBtack\fR first comes up it will display some basic information
-about the terminal. Take some time to verify this information.
-If it is wrong many of the subsequent tests will fail. The most
-important item is the screen size. If the screen size is wrong there
-is no point in proceeding. (home) and (clear) are also critical
-to the success of subsequent tests. The values of (cr) (ind)
-(cub1) and (ht) may effect the tests if they are defined incorrectly.
-If they are undefined \fBtack\fR will set them to reasonable defaults.
-The last two entries on the display are the enquire and acknowledge strings.
-These strings are taken from the user strings (u9) and (u8).
-.PP
-By now you must be wondering why the terminfo names are enclosed
-in parenthesis. This has no profound meaning other than it makes
-them stand out. The \fBtack\fR program uses this convention any time
-it displays a terminfo name. Remember \fBtack\fR is designed to
-rely on as little of the terminfo entry as possible.
-.SH CREATING NEW ENTRIES
-\fBTack\fR has a number of tools that are designed to help gather
-information about the terminal. Although these functions are not
-dependent on terminal type, you may wish to execute \fBtack\fR
-with options \fI\-it\fR. This will turn off initialization
-and default the standard entries.
-.PP
-These tools may be reached from the main menu by selecting
-the 'tools' entry.
-.PP
-\fBEcho tool\fR: All data typed from the keyboard will be echoed back
-to the terminal. Control characters are not translated to the up arrow format
-but are sent as control characters. This allows you to test an escape
-sequence and see what it actually does. You may also elect to
-\fBenable hex output on echo tool\fR this will echo the characters in
-hexadecimal. Once the test is running you may enter the 'lines'
-or 'columns' keywords which will display a pattern that will help
-you determine your screen size. A complete list of keywords will
-be displayed when the test starts. Type 'help' to redisplay
-the list of available commands.
-.PP
-\fBReply tool\fR: This tool acts much like the echo tool, but
-control characters that are sent from the terminal more than one character
-after a carriage return will be expanded to the up arrow format. For example
-on a standard ANSI terminal you may type:
-
- CR ESC [ c
-
-and the response will be echoed as something like:
-
- ^[ [ ? 6 c
-.PP
-\fBANSI sgr display\fR: This test assumes you have an ANSI terminal. It
-goes through attribute numbers 0 to 79, displaying each in turn and using that
-SGR number to write the text. This shows you which of the SGR
-modes are actually implemented by the terminal. Note: some terminals (such as
-Tektronix color) use the private use characters to augment the functionality of
-the SGR command. These private use characters may be interjected into the
-escape sequence by typing the character ( <, =, >, ? ) after the original
-display has been shown.
-.PP
-\fBANSI status reports\fR: This test queries the terminal in standard
-ANSI/VT-100 fashion. The results of this test may help
-determine what options are supported by your terminal.
-.PP
-\fBANSI character sets\fR: This test displays the character sets
-available on a ANSI/VT-100 style terminal.
-Character sets on a real VT-100 terminal are usually defined
-with smacs=\\E(0 and rmacs=\\E(B. The first character after the
-escape defines the font bank. The second character defines the
-character set. This test allows you to view any of the possible
-combinations. Private use character sets are defined by the digits.
-Standard character sets are located in the alphabetic range.
-.SH VERIFYING AN EXISTING ENTRY
-.PP
-You can verify the correctness of an entry with the `begin testing'
-function. This entry is the default action and will be chosen
-if you hit carriage return (or enter). This will bring up a
-secondary menu that allows you to select more specific tests.
-.PP
-The general philosophy of the program is, for each capability, to send an
-appropriate test pattern to the terminal then send a description of
-what the user should expect. Occasionally (as when checking function-key
-capabilities) the program will ask you to enter input for it to check.
-.PP
-If the test fails then you have the option of dynamically changing
-the terminfo entry and re-running the test. This is done with
-the 'edit terminfo' menu item. The edit submenu allows you to change
-the offending terminfo entry and immediately retest the capability.
-The edit menu lets you do other things with the terminfo, such as;
-display the entire terminfo entry,
-display which caps have been tested and display which caps cannot
-be tested. This menu also allows you to write the newly modified
-terminfo to disc. If you have made any modifications to the
-terminfo \fBtack\fR will ask you if you want to save the file
-to disc before it exits. The filename will be the same as the terminal name.
-After the program exits you can run the tic(1M) compiler on the
-new terminfo to install it in the terminfo data base.
-.PP
-.SH CORRECTING PAD TIMINGS
-.SS Theory of Overruns and Padding
-.PP
-Some terminals require significant amounts of time (that is, more than one
-transmitted-character interval) to do screen updates that change large
-portions of the screen, such as screen clears, line insertions,
-line deletions, and scrolls (including scrolls triggered by line feeds
-or a write to the lowest, right-hand-most cell of the screen).
-.PP
-If the computer continues to send characters to the terminal while one
-of these time-consuming operations is going on, the screen may be garbled.
-Since the length of a character transmission time varies inversely with
-transmission speed in cps, entries which function at lower speeds may
-break at higher speeds.
-.PP
-Similar problems result if the host machine is simply sending characters at a
-sustained rate faster than the terminal can buffer and process them. In either
-case, when the terminal cannot process them and can't tell the host to stop
-soon enough, it will just drop them. The dropped characters could be text,
-escape sequences or the escape character itself, causing some really
-strange-looking displays. This kind of glitch is called an \fIoverrun\fR.
-.PP
-In terminfo entries, you can attach a \fBpad time\fR to each string capability
-that is a number of milliseconds to delay after sending it. This will give
-the terminal time to catch up and avoid overruns.
-.PP
-If you are running a software terminal emulator, or you are on an X pseudo-tty,
-or your terminal is on an RS-232C line which correctly handles RTS/CTS
-hardware flow control, then pads are not strictly necessary. However, some
-display packages (such as ncurses(3X)) use the pad counts to calculate
-the fastest way to implement certain functions.
-For example: scrolling the screen may be faster than deleting the top line.
-.PP
-One common way to avoid overruns is with XON/XOFF handshaking.
-But even this handshake may have problems at high baud rates.
-This is a result of the way XON/XOFF works. The terminal tells
-the host to stop with an XOFF. When the host gets this character, it stops
-sending. However, there is a small amount of time between the stop request and
-the actual stop. During this window, the terminal must continue to accept
-characters even though it has told the host to stop. If the terminal sends
-the stop request too late, then its internal buffer will overflow. If it sends
-the stop character too early, then the terminal is not getting the most
-efficient use out of its internal buffers. In a real application at high baud
-rates, a terminal could get a dozen or more characters before the host gets
-around to suspending transmission. Connecting the terminal over a network
-will make the problem much worse.
-.PP
-(RTS/CTS handshaking does not have this problem because the UARTs are
-signal-connected and the "stop flow" is done at the lowest level, without
-software intervention).
-.PP
-.SS Timing your terminal
-.PP
-In order to get accurate timings from your terminal \fBtack\fR
-needs to know when the terminal has finished processing all the
-characters that were sent. This requires a different type of handshaking
-than the XON/XOFF that is supported by most terminals. \fBTack\fR
-needs to send a request to the terminal and wait for its reply.
-Many terminals will respond with an ACK when they receive an ENQ.
-This is the preferred method since the sequence is short.
-ANSI/VT-100 style terminals can mimic this handshake with the
-escape sequence that requests 'primary device attributes'.
-
- ESC [ c
-
-The terminal will respond with a sequence like:
-
- ESC [ ? 1 ; 0 c
-
-\fBTack\fR assumes that (u9) is the enquire sequence and that (u8) is the
-acknowledge string. A VT-100 style terminal could set u9=\\E[c
-and u8=\\E[?1;0c.
-Acknowledge strings fall into two categories.
-1) Strings with a unique terminating character and,
-2) strings of fixed length.
-The acknowledge string for the VT-100 is of the first type since
-it always ends with the letter 'c'. Some Tektronics terminals
-have fixed length acknowledge strings. \fBTack\fR supports both
-types of strings by scanning for the terminating character until
-the length of the expected acknowledge string has arrived.
-(u8) should be set to some typical acknowledge that will be
-returned when (u9) is sent.
-.PP
-\fBTack\fR will test this sequence before running any of the pad
-tests or the function key tests. \fBTack\fR will ask you the following:
-
- Hit lower case g to start testing...
-
-After it sends this message it will send the enquire string.
-It will then read characters from the terminal until it sees the
-letter g.
-.PP
-.SS Testing and Repairing Pad Timings
-.PP
-The pad timings in distributed terminfo entries are often incorrect. One
-major motivation for this program is to make it relatively easy to tune these
-timings.
-.PP
-You can verify and edit the pad timings for a terminal with
-the `test string capabilities'
-function (this is also part of the `normal test sequence' function).
-.PP
-The key to determining pad times is to find out the effective baud rate of
-the terminal. The effective baud rate determines the number of characters
-per second that the terminal can accept without either handshaking or
-losing data. This rate is frequently less than the nominal cps rate on the
-RS-232 line.
-.PP
-\fBTack\fR uses the effective baud rate to judge the duration of the test and
-how much a particular escape sequence will perturb the terminal.
-.PP
-Each pad test has two associated variables that can be tweaked to help verify
-the correctness of the pad timings. One is the pad test length. The other is
-the pad multiplier, which is used if the pad prefix includes `*'. In curses
-use, it is often the first parameter of the capability (if there is one).
-For a capability like (dch) or (il) this will be the number of character
-positions or lines affected, respectively.
-.PP
-\fBTack\fR will run the pad tests and display the results to the terminal.
-On capabilities that have multipliers \fBtack\fR will not tell you
-if the pad needs the multiplier or not. You must make this decision
-yourself by rerunning the test with a different multiplier.
-If the padding changes in proportion to the multiplier than the
-multiplier is required. If the multiplier has little or no effect on
-the suggested padding then the multiplier is not needed.
-Some capabilities will take several runs to get a good feel for
-the correct values. You may wish to make the test longer
-to get more accurate results. System load will also effect the
-results (a heavily loaded system will not stress the
-terminal as much, possibly leading to pad timings that are too short).
-.PP
-.SH NOTE
-The tests done at the beginning of the program are assumed to be correct later
-in the code. In particular, \fBtack\fR displays the number of lines and
-columns indicated in the terminfo entry as part of its initial output.
-If these values are wrong a large number of tests will fail or give incorrect
-results.
-.SH FILES
-.TP 12
-tack.log
-If logging is enabled then all characters written to the terminal
-will also be written to the log file. This gives you the ability
-to see how the tests were performed. This feature is disabled by default.
-.TP 12
-.I "term"
-If you make changes to the terminfo entry \fBtack\fR will save
-the new terminfo to a file. The file will have the same name
-as the terminal name.
-.SH SEE ALSO
-\fBterminfo\fR(\*n), \fBncurses\fR(3X), \fBtic\fR(1m), \fBinfocmp\fR(1m).
-You should also have the documentation supplied by the terminal
-manufacturer.
-.SH BUGS
-If the screen size is incorrect, many of the tests will fail.
-.SH AUTHOR
-Concept, design, and original implementation by
-Daniel Weaver <danw@znyx.com>. Portions of the code and
-documentation are by Eric S. Raymond <esr@snark.thyrsus.com>.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
diff --git a/ncurses-5.3/tack/tack.c b/ncurses-5.3/tack/tack.c
deleted file mode 100644
index 38fb336..0000000
--- a/ncurses-5.3/tack/tack.c
+++ /dev/null
@@ -1,620 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-#include <tack.h>
-
-MODULE_ID("$Id$")
-
-/*
- This program is designed to test terminfo, not curses. Therefore
- I have used as little of curses as possible.
-
- Pads associated with the following capabilities are used to set
- delay times in the handler: (cr), (ind), (cub1), (ff), (tab).
-
- I use the (nxon) capability to set the tty handler with/without
- xon/xoff. If (smxon)/(rmxon) is defined I will change the terminal
- too.
-
- (xon) inhibits the sending of delay characters in putp().
- If the terminal is defined with no padding then the (xon) boolean
- is a don't care. In this case I recommend that it be reset.
- */
-
-/*****************************************************************************
- *
- * Option processing
- *
- *****************************************************************************/
-
-/* options and modes */
-int debug_level; /* debugging level */
-int translate_mode; /* translate tab, bs, cr, lf, ff */
-int scan_mode; /* use scan codes */
-int char_mask; /* either 0xFF else 0x7F, eight bit data mask */
-int select_delay_type; /* set handler delays for <cr><lf> */
-int select_xon_xoff; /* TTY driver XON/XOFF mode select */
-int hex_out; /* Display output in hex */
-int send_reset_init; /* Send the reset and initialization strings */
-FILE *log_fp; /* Terminal logfile */
-
-/*****************************************************************************
- *
- * Menu definitions
- *
- *****************************************************************************/
-
-extern struct test_menu sync_menu;
-
-static void tools_hex_echo(struct test_list *, int *, int *);
-static void tools_debug(struct test_list *, int *, int *);
-
-static char hex_echo_menu_entry[80];
-
-struct test_list tools_test_list[] = {
- {0, 0, 0, 0, "s) ANSI status reports", tools_status, 0},
- {0, 0, 0, 0, "g) ANSI SGR modes (bold, underline, reverse)", tools_sgr, 0},
- {0, 0, 0, 0, "c) ANSI character sets", tools_charset, 0},
- {0, 0, 0, 0, hex_echo_menu_entry, tools_hex_echo, 0},
- {0, 0, 0, 0, "e) echo tool", tools_report, 0},
- {1, 0, 0, 0, "r) reply tool", tools_report, 0},
- {0, 0, 0, 0, "p) performance testing", 0, &sync_menu},
- {0, 0, 0, 0, "i) send reset and init", menu_reset_init, 0},
- {0, 0, "u8) (u9", 0, "u) test ENQ/ACK handshake", sync_handshake, 0},
- {0, 0, 0, 0, "d) change debug level", tools_debug, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-struct test_menu tools_menu = {
- 0, 'q', 0, "Tools Menu", "tools",
- 0, 0, tools_test_list, 0, 0, 0
-};
-
-static void tty_width(struct test_list *, int *, int *);
-static void tty_delay(struct test_list *, int *, int *);
-static void tty_xon(struct test_list *, int *, int *);
-static void tty_trans(struct test_list *, int *, int *);
-static void tty_show_state(struct test_menu *);
-
-static char tty_width_menu[80];
-static char tty_delay_menu[80];
-static char tty_xon_menu[80];
-static char tty_trans_menu[80];
-static char enable_xon_xoff[] = {"x) enable xon/xoff"};
-static char disable_xon_xoff[] = {"x) disable xon/xoff"};
-
-static struct test_list tty_test_list[] = {
- {0, 0, 0, 0, tty_width_menu, tty_width, 0},
- {0, 0, 0, 0, tty_delay_menu, tty_delay, 0},
- {0, 0, 0, 0, tty_xon_menu, tty_xon, 0},
- {0, 0, 0, 0, tty_trans_menu, tty_trans, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-static struct test_menu tty_menu = {
- 0, 'q', 0, "Terminal and driver configuration",
- "tty", 0,
- tty_show_state, tty_test_list, 0, 0, 0
-};
-
-extern struct test_list edit_test_list[];
-
-struct test_menu edit_menu = {
- 0, 'q', 0, "Edit terminfo menu",
- "edit", 0,
- 0, edit_test_list, 0, 0, 0
-};
-
-extern struct test_list mode_test_list[];
-
-struct test_menu mode_menu = {
- 0, 'n', 0, "Test modes and glitches:",
- "mode", "n) run standard tests",
- 0, mode_test_list, 0, 0, 0
-};
-
-extern struct test_list acs_test_list[];
-
-static struct test_menu acs_menu = {
- 0, 'n', 0,
- "Test alternate character set and graphics rendition:",
- "acs", "n) run standard tests",
- 0, acs_test_list, 0, 0, 0
-};
-
-extern struct test_list color_test_list[];
-
-struct test_menu color_menu = {
- 0, 'n', 0,
- "Test color:",
- "color", "n) run standard tests",
- 0, color_test_list, 0, 0, 0
-};
-
-extern struct test_list crum_test_list[];
-
-static struct test_menu crum_menu = {
- 0, 'n', 0,
- "Test cursor movement:",
- "move", "n) run standard tests",
- 0, crum_test_list, 0, 0, 0
-};
-
-extern struct test_list funkey_test_list[];
-
-static struct test_menu funkey_menu = {
- 0, 'n', 0,
- "Test function keys:",
- "fkey", "n) run standard tests",
- sync_test, funkey_test_list, 0, 0, 0
-};
-
-extern struct test_list printer_test_list[];
-
-static struct test_menu printer_menu = {
- 0, 'n', 0,
- "Test printer:",
- "printer", "n) run standard tests",
- 0, printer_test_list, 0, 0, 0
-};
-
-static void pad_gen(struct test_list *, int *, int *);
-extern struct test_list pad_test_list[];
-
-static struct test_menu pad_menu = {
- 0, 'n', 0,
- "Test padding and string capabilities:",
- "pad", "n) run standard tests",
- sync_test, pad_test_list, 0, 0, 0
-};
-
-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},
- {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, "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, "u8) (u9", 0, 0, sync_handshake, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-
-struct test_menu normal_menu = {
- 0, 'n', 0, "Main test menu",
- "test", "n) run standard tests",
- 0, normal_test_list, 0, 0, 0
-};
-
-static void start_tools(struct test_list *, int *, int *);
-static void start_modes(struct test_list *, int *, int *);
-static void start_basic(struct test_list *, int *, int *);
-static void start_log(struct test_list *, int *, int *);
-
-static char logging_menu_entry[80] = "l) start logging";
-
-struct test_list start_test_list[] = {
- {0, 0, 0, 0, "b) display basic information", start_basic, 0},
- {0, 0, 0, 0, "m) change modes", start_modes, 0},
- {0, 0, 0, 0, "t) tools", start_tools, 0},
- {MENU_COMPLETE, 0, 0, 0, "n) begin testing", 0, &normal_menu},
- {0, 0, 0, 0, logging_menu_entry, start_log, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-
-struct test_menu start_menu = {
- 0, 'n', 0, "Main Menu", "tack", 0,
- 0, start_test_list, 0, 0, 0
-};
-
-static struct test_list write_terminfo_list[] = {
- {0, 0, 0, 0, "w) write the current terminfo to a file", save_info, 0},
- {MENU_LAST, 0, 0, 0, 0, 0, 0}
-};
-
-/*****************************************************************************
- *
- * Menu command interpretation.
- *
- *****************************************************************************/
-
-/*
-** tools_hex_echo(testlist, state, ch)
-**
-** Flip the hex echo flag.
-*/
-static void
-tools_hex_echo(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (hex_out) {
- hex_out = FALSE;
- strcpy(hex_echo_menu_entry,
- "h) enable hex output on echo tool");
- } else {
- hex_out = TRUE;
- strcpy(hex_echo_menu_entry,
- "h) disable hex output on echo tool");
- }
-}
-
-/*
-** tools_debug(testlist, state, ch)
-**
-** Change the debug level.
-*/
-static void
-tools_debug(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- char buf[32];
-
- ptext("Enter a new value: ");
- read_string(buf, sizeof(buf));
- if (buf[0]) {
- sscanf(buf, "%d", &debug_level);
- }
- sprintf(temp, "Debug level is now %d", debug_level);
- ptext(temp);
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** start_tools(testlist, state, ch)
-**
-** Run the generic test tools
-*/
-static void
-start_tools(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (hex_out) {
- strcpy(hex_echo_menu_entry,
- "h) disable hex output on echo tool");
- } else {
- strcpy(hex_echo_menu_entry,
- "h) enable hex output on echo tool");
- }
- menu_display(&tools_menu, 0);
-}
-
-/*
-** tty_show_state()
-**
-** Display the current state on the tty driver settings
-*/
-static void
-tty_show_state(
- struct test_menu *menu GCC_UNUSED)
-{
- put_crlf();
- (void) sprintf(temp,
- "Accepting %d bits, UNIX delays %d, XON/XOFF %sabled, speed %ld, translate %s, scan-code mode %s.",
- (char_mask == ALLOW_PARITY) ? 8 : 7,
- select_delay_type,
- select_xon_xoff ? "en" : "dis",
- tty_baud_rate,
- translate_mode ? "on" : "off",
- scan_mode ? "on" : "off");
- ptextln(temp);
- put_crlf();
-}
-
-/*
-** tty_width(testlist, state, ch)
-**
-** Change the character width
-*/
-static void
-tty_width(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (char_mask == STRIP_PARITY) {
- char_mask = ALLOW_PARITY;
- strcpy(tty_width_menu, "7) treat terminal as 7-bit");
- } else {
- char_mask = STRIP_PARITY;
- strcpy(tty_width_menu, "8) treat terminal as 8-bit");
- }
-}
-
-/*
-** tty_delay(testlist, state, ch)
-**
-** Change the delay for <cr><lf> in the TTY driver
-*/
-static void
-tty_delay(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (select_delay_type) {
- select_delay_type = FALSE;
- strcpy(tty_delay_menu,
- "d) enable UNIX tty driver delays for <cr><lf>");
- } else {
- select_delay_type = TRUE;
- strcpy(tty_delay_menu,
- "d) disable UNIX tty driver delays for <cr><lf>");
- }
-}
-
-/*
-** tty_xon(testlist, state, ch)
-**
-** Change the XON/XOFF flags in the TTY driver
-*/
-static void
-tty_xon(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (select_xon_xoff) {
- if (needs_xon_xoff) {
- ptextln("This terminal is marked as needing XON/XOFF protocol with (nxon)");
- }
- if (exit_xon_mode) {
- tc_putp(exit_xon_mode);
- }
- xon_xoff = select_xon_xoff = FALSE;
- strcpy(tty_xon_menu, enable_xon_xoff);
- } else {
- if (enter_xon_mode) {
- tc_putp(enter_xon_mode);
- }
- xon_xoff = select_xon_xoff = TRUE;
- strcpy(tty_xon_menu, disable_xon_xoff);
- }
- tty_set();
-}
-
-/*
-** tty_trans(testlist, state, ch)
-**
-** Change the translation mode for special characters
-*/
-static void
-tty_trans(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (translate_mode) {
- translate_mode = FALSE;
- strcpy(tty_trans_menu,
- "t) use terminfo values for \\b\\f\\n\\r\\t");
- } else {
- translate_mode = TRUE;
- strcpy(tty_trans_menu,
- "t) override terminfo values for \\b\\f\\n\\r\\t");
- }
-}
-
-/*
-** pad_gen(testlist, state, ch)
-**
-** Menu function for automatic pad generation
-*/
-static void
-pad_gen(
- struct test_list *t,
- int *state GCC_UNUSED,
- int *ch)
-{
- control_init();
- if (tty_can_sync == SYNC_NOT_TESTED) {
- verify_time();
- }
- auto_pad_mode = TRUE;
- menu_display(t->sub_menu, ch);
- auto_pad_mode = FALSE;
-}
-
-/*
-** start_modes(testlist, state, ch)
-**
-** Change the TTY modes
-*/
-static void
-start_modes(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
-
- if (select_delay_type) {
- strcpy(tty_delay_menu,
- "d) disable UNIX tty driver delays for <cr><lf>");
- } else {
- strcpy(tty_delay_menu,
- "d) enable UNIX tty driver delays for <cr><lf>");
- }
- if (char_mask == ALLOW_PARITY) {
- strcpy(tty_width_menu,
- "7) treat terminal as 7-bit");
- } else {
- strcpy(tty_width_menu,
- "8) treat terminal as 8-bit");
- }
- if (select_xon_xoff) {
- strcpy(tty_xon_menu, disable_xon_xoff);
- } else {
- strcpy(tty_xon_menu, enable_xon_xoff);
- }
- if (translate_mode) {
- strcpy(tty_trans_menu,
- "t) override terminfo values for \\b\\f\\n\\r\\t");
- } else {
- strcpy(tty_trans_menu,
- "t) use terminfo values for \\b\\f\\n\\r\\t");
- }
- menu_display(&tty_menu, 0);
- tty_set();
-}
-
-/*
-** start_basic(testlist, state, ch)
-**
-** Display basic terminal information
-*/
-static void
-start_basic(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch)
-{
- display_basic();
- *ch = REQUEST_PROMPT;
-}
-
-/*
-** start_log(testlist, state, ch)
-**
-** Start/stop in logging function
-*/
-static void
-start_log(
- struct test_list *t GCC_UNUSED,
- int *state GCC_UNUSED,
- int *ch GCC_UNUSED)
-{
- if (logging_menu_entry[5] == 'a') {
- ptextln("The log file will capture all characters sent to the terminal.");
- if ((log_fp = fopen("tack.log", "w"))) {
- ptextln("Start logging to file: tack.log");
- strcpy(logging_menu_entry, "l) stop logging");
- } else {
- ptextln("File open error: tack.log");
- }
- } else {
- if (log_fp) {
- fclose(log_fp);
- log_fp = 0;
- }
- ptextln("Terminal output logging stopped.");
- strcpy(logging_menu_entry, "l) start logging");
- }
-}
-
-/*
-** show_usage()
-**
-** Tell the user how its done.
-*/
-void
-show_usage(
- char *name)
-{
- (void) fprintf(stderr, "usage: %s [-itV] [term]\n", name);
-}
-
-/*
-** print_version()
-**
-** Print version and other useful information.
-*/
-void
-print_version(void)
-{
- printf("tack version %d.%02d\n", MAJOR_VERSION, MINOR_VERSION);
- printf("Copyright (C) 1997 Free Software Foundation, Inc.\n");
- printf("Tack comes with NO WARRANTY, to the extent permitted by law.\n");
- printf("You may redistribute copies of Tack under the terms of the\n");
- printf("GNU General Public License. For more information about\n");
- printf("these matters, see the file named COPYING.\n");
-}
-
-
-/*****************************************************************************
- *
- * Main sequence
- *
- *****************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
- int i, j;
- char *term_variable;
-
- /* scan the option flags */
- send_reset_init = TRUE;
- translate_mode = FALSE;
- term_variable = getenv("TERM");
- tty_can_sync = SYNC_NOT_TESTED;
- for (i = 1; i < argc; i++) {
- if (argv[i][0] == '-') {
- for (j = 1; argv[i][j]; j++) {
- switch (argv[i][j]) {
- case 'V':
- print_version();
- return (1);
- case 'i':
- send_reset_init = FALSE;
- break;
- case 't':
- translate_mode = FALSE;
- break;
- default:
- show_usage(argv[0]);
- return (0);
- }
- }
- } else {
- term_variable = argv[i];
- }
- }
- (void) strcpy(tty_basename, term_variable);
-
- curses_setup(argv[0]);
-
- menu_can_scan(&normal_menu); /* extract which caps can be tested */
- menu_display(&start_menu, 0);
-
- if (user_modified()) {
- sprintf(temp, "Hit y to save changes to file: %s ? ",
- tty_basename);
- ptext(temp);
- if (wait_here() == 'y') {
- save_info(write_terminfo_list, &i, &j);
- }
- }
-
- put_str("\nTerminal test complete\n");
- bye_kids(0);
- return (0);
-}
diff --git a/ncurses-5.3/tack/tack.h b/ncurses-5.3/tack/tack.h
deleted file mode 100644
index 6c2e4fb..0000000
--- a/ncurses-5.3/tack/tack.h
+++ /dev/null
@@ -1,405 +0,0 @@
-/*
-** Copyright (C) 1991, 1997 Free Software Foundation, Inc.
-**
-** This file is part of TACK.
-**
-** TACK is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2, or (at your option)
-** any later version.
-**
-** TACK is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-**
-** You should have received a copy of the GNU General Public License
-** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
-*/
-
-/* $Id$ */
-
-#ifndef NCURSES_TACK_H_incl
-#define NCURSES_TACK_H_incl 1
-
-/* terminfo action checker include file */
-
-#define MAJOR_VERSION 1
-#define MINOR_VERSION 0
-
-#ifdef HAVE_CONFIG_H
-#include <ncurses_cfg.h>
-#else
-#define RETSIGTYPE void
-#define GCC_UNUSED /*nothing*/
-#define HAVE_GETTIMEOFDAY 1
-#define HAVE_SELECT 1
-#define HAVE_SYS_TIME_H 1
-#define HAVE_SYS_TIME_SELECT 1
-#endif
-
-#include <sys/types.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <ctype.h>
-#include <string.h>
-
-#include <curses.h>
-#include <term_entry.h>
-
-#if USE_RCS_IDS
-#define MODULE_ID(id) static const char Ident[] = id;
-#else
-#define MODULE_ID(id) /*nothing*/
-#endif
-
-#if !HAVE_STRSTR
-extern char *_nc_strstr(const char *, const char *);
-#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 char temp[];
-extern char tty_basename[];
-extern char tty_shortname[];
-
-#define SYNC_FAILED 0
-#define SYNC_TESTED 1
-#define SYNC_NOT_TESTED 2
-#define SYNC_NEEDED 3
-
-extern int tty_can_sync;
-extern int total_pads_sent; /* count pad characters sent */
-extern int total_caps_sent; /* count caps sent */
-extern int total_printing_characters; /* count printing characters sent */
-extern int no_alarm_event; /* TRUE if the alarm has not gone off yet */
-extern int usec_run_time; /* length of last test in microseconds */
-extern int raw_characters_sent; /* Total output characters */
-
-/* Stopwatch event timers */
-#define TIME_TEST 0
-#define TIME_SYNC 1
-#define TIME_FLUSH 2
-#define MAX_TIMERS 3
-
-/* definitions for pad.c */
-
-#define EXIT_CONDITION (no_alarm_event && (tt_delay_used < tt_delay_max))
-#define SLOW_TERMINAL_EXIT if (!test_complete && !EXIT_CONDITION) { break; }
-#define CAP_NOT_FOUND if (auto_pad_mode) return
-
-extern char letters[26+1];
-#define NEXT_LETTER letter = letters[letter_number =\
- letters[letter_number + 1] ? letter_number + 1 : 0]
-
-extern int test_complete; /* counts number of tests completed */
-extern char letter;
-extern int letter_number;
-extern int augment, repeats;
-extern long char_sent;
-extern const char *pad_repeat_test; /* commands that force repeat */
-
-extern int replace_mode;
-extern int char_count, line_count, expand_chars;
-extern int can_go_home, can_clear_screen;
-
-extern int translate_mode, scan_mode;
-extern int auto_pad_mode; /* TRUE for auto time tests */
-extern int char_mask;
-extern int hex_out; /* Display output in hex */
-
-/* Parity bit macros */
-#define STRIP_PARITY 0x7f
-#define ALLOW_PARITY 0xff
-
-/* select_delay_type: 0 -> reset all delays
- 1 -> force long delays
- 2 -> do not change the delays */
-extern int select_delay_type;
-
-/* select_xon_xoff: 0 -> reset xon/xoff
- 1 -> set xon/xoff
- 2 -> do not change xon/xoff */
-extern int select_xon_xoff;
-
-extern int tty_frame_size;
-extern unsigned long tty_baud_rate;
-extern int tty_cps; /* The number of characters per second */
-extern int not_a_tty, nodelay_read;
-extern int send_reset_init;
-
-/* definitions for stty_query() and initial_stty_query() */
-#define TTY_CHAR_MODE 0
-#define TTY_NOECHO 1
-#define TTY_OUT_TRANS 2
-#define TTY_8_BIT 3
-#define TTY_XON_XOFF 4
-
-/* scan code definitions */
-#define MAX_SCAN 256
-
-/* translate mode default strings */
-struct default_string_list {
- const char *name; /* terminfo name */
- const char *value; /* value of default string */
- int index; /* index into the strfname[] array */
-};
-
-#define TM_last 8
-extern struct default_string_list TM_string[TM_last];
-
-/* attribute structure definition */
-struct mode_list {
- const char *name;
- const char *begin_mode;
- const char *end_mode;
- int number;
-};
-
-extern const struct mode_list alt_modes[];
-extern const int mode_map[];
-
-/* Test data base */
-
-#define FLAG_CAN_TEST 1
-#define FLAG_TESTED 2
-#define FLAG_LABEL 4
-#define FLAG_FUNCTION_KEY 8
-
-/* caps under test data base */
-
-#define TT_MAX 8
-#define MAX_CHANGES (TT_MAX+2)
-
-extern int tt_delay_max; /* max number of milliseconds we can delay */
-extern int tt_delay_used; /* number of milliseconds consumed in delay */
-extern const char *tt_cap[TT_MAX]; /* value of string */
-extern int tt_affected[TT_MAX]; /* lines or columns effected (repetition
- factor) */
-extern int tt_count[TT_MAX]; /* Number of times sent */
-extern int tt_delay[TT_MAX]; /* Number of milliseconds delay */
-extern int ttp; /* number of entries used */
-
-extern const char *tx_cap[TT_MAX]; /* value of string */
-extern int tx_affected[TT_MAX]; /* lines or columns effected (repetition
- factor) */
-extern int tx_count[TT_MAX]; /* Number of times sent */
-extern int tx_delay[TT_MAX]; /* Number of milliseconds delay */
-extern int tx_index[TT_MAX]; /* String index */
-extern int txp; /* number of entries used */
-extern int tx_characters; /* printing characters sent by test */
-extern int tx_cps; /* characters per second */
-
-/*
- Menu control for tack.
-*/
-
-struct test_results {
- struct test_results *next; /* point to next entry */
- struct test_list *test; /* Test which got these results */
- int reps; /* repeat count */
- int delay; /* delay times 10 */
-};
-
-struct test_list {
- int flags; /* Test description flags */
- int lines_needed; /* Lines needed for test (0->no action) */
- const char *caps_done; /* Caps shown in Done message */
- const char *caps_tested; /* Other caps also being tested */
- const char *menu_entry; /* Menu entry text (optional) */
- /* Function that does testing */
- void (*test_procedure)(struct test_list *, int *, int *);
- struct test_menu *sub_menu; /* Nested sub-menu */
-};
-
-struct test_menu {
- int flags; /* Menu feature flag */
- int default_action; /* Default command if <cr> <lf> entered */
- const char *menu_text; /* Describe this test_menu */
- const char *menu_title; /* Title for the menu */
- const char *ident; /* short menu name */
- const char *standard_tests; /* Standard test text */
- /* print current settings (optional) */
- void (*menu_function)(struct test_menu *);
- struct test_list *tests; /* Pointer to the menu/function pairs */
- struct test_list *resume_tests; /* Standard test resume point */
- int resume_state; /* resume state of test group */
- int resume_char; /* resume ch of test group */
-};
-
-
-/* menu flags */
-#define MENU_100c 0x00001a00 /* Augment 100% of columns */
-#define MENU_90c 0x00001900 /* Augment 90% of columns */
-#define MENU_80c 0x00001800 /* Augment 80% of columns */
-#define MENU_70c 0x00001700 /* Augment 70% of columns */
-#define MENU_60c 0x00001600 /* Augment 60% of columns */
-#define MENU_50c 0x00001500 /* Augment 50% of columns */
-#define MENU_40c 0x00001400 /* Augment 40% of columns */
-#define MENU_30c 0x00001300 /* Augment 30% of columns */
-#define MENU_20c 0x00001200 /* Augment 20% of columns */
-#define MENU_10c 0x00001100 /* Augment 10% of columns */
-#define MENU_LM1 0x00002e00 /* Augment lines - 1 */
-#define MENU_100l 0x00002a00 /* Augment 100% of lines */
-#define MENU_90l 0x00002900 /* Augment 90% of lines */
-#define MENU_50l 0x00002500 /* Augment 50% of lines */
-#define MENU_lines 0x00002000 /* Augment of lines */
-#define MENU_columns 0x00001000 /* Augment of columns */
-#define MENU_LC_MASK 0x00003000 /* Augment mask for lines and columns */
-#define MENU_1L 0x00002f00 /* Augment == one */
-#define MENU_1C 0x00001f00 /* Augment == one */
-#define MENU_ONE 0x00000f00 /* Augment == one */
-#define MENU_ONE_MASK 0x00000f00 /* Augment == one mask */
-#define MENU_REP_MASK 0x00003f00 /* Augment mask */
-
-#define MENU_CLEAR 0x00010000 /* clear screen */
-#define MENU_INIT 0x00020000 /* Initialization function */
-#define MENU_NEXT 0x00040000 /* Next test in sequence */
-#define MENU_LAST 0x00080000 /* End of menu list */
-#define MENU_STOP 0x00100000 /* Stop testing next-in-sequence */
-#define MENU_COMPLETE 0x00200000 /* Test complete after this */
-#define MENU_MENU 0x00400000 /* Pass the menu name not test name */
-
-#define REQUEST_PROMPT 256
-
-extern char prompt_string[80]; /* menu prompt storage */
-extern struct test_menu edit_menu;
-extern struct test_list *augment_test;
-
-/* tack.c */
-extern void show_usage(char *);
-extern void print_version(void);
-
-/* output.c */
-extern void tt_tputs(const char *, int);
-extern void tt_putp(const char *);
-extern void tt_putparm(NCURSES_CONST char *, int, int, int);
-extern int tc_putp(const char *);
-extern int tc_putch(int);
-extern void putchp(int);
-extern void put_cr(void);
-extern void put_crlf(void);
-extern void put_clear(void);
-extern void put_dec(char *, int);
-extern void put_str(const char *);
-extern void put_lf(void);
-extern void put_ind(void);
-extern void put_newlines(int);
-extern void put_columns(const char *, int, int);
-extern void put_this(int);
-extern void putln(const char *);
-extern void ptext(const char *);
-extern void ptextln(const char *);
-extern void home_down(void);
-extern void go_home(void);
-extern void three_digit(char *, int);
-extern int getchp(int);
-extern char *expand(const char *);
-extern char *expand_to(char *, int);
-extern char *expand_command(const char *);
-extern char *hex_expand_to(char *, int);
-extern char *print_expand(char *);
-extern void maybe_wait(int);
-extern int wait_here(void);
-extern void read_string(char *, int);
-extern int getnext(int);
-
-/* control.c */
-extern void event_start(int);
-extern long event_time(int);
-extern char *liberated(char *);
-extern void page_loop(void);
-extern void control_init(void);
-extern int msec_cost(const char *const, int);
-extern int skip_pad_test(struct test_list *, int *, int *, const char *);
-extern void pad_test_startup(int);
-extern int still_testing(void);
-extern void pad_test_shutdown(struct test_list *, int);
-extern void dump_test_stats(struct test_list *, int *, int *);
-extern void longer_test_time(struct test_list *, int *, int *);
-extern void shorter_test_time(struct test_list *, int *, int *);
-extern char txt_longer_test_time[80];
-extern char txt_shorter_test_time[80];
-extern void set_augment_txt(void);
-extern void longer_augment(struct test_list *, int *, int *);
-extern void shorter_augment(struct test_list *, int *, int *);
-extern char txt_longer_augment[80];
-extern char txt_shorter_augment[80];
-extern int sliding_scale(int, int, int);
-
-/* sync.c */
-extern void verify_time(void);
-extern int tty_sync_error(void);
-extern void flush_input(void);
-extern void sync_test(struct test_menu *);
-extern void sync_handshake(struct test_list *, int *, int *);
-
-/* charset.c */
-extern void set_attr(int);
-extern void eat_cookie(void);
-extern void put_mode(char *);
-
-/* init.c */
-extern void reset_init(void);
-extern void display_basic(void);
-extern void put_name(const char *, const char *);
-extern void charset_can_test(void);
-extern void curses_setup(char *);
-extern void bye_kids(int);
-
-/* scan.c */
-extern int scan_key(void);
-extern void scan_init(char *fn);
-
-/* ansi.c */
-extern void tools_status(struct test_list *, int *, int *);
-extern void tools_charset(struct test_list *, int *, int *);
-extern void tools_sgr(struct test_list *, int *, int *);
-
-/* pad.c */
-
-/* fun.c */
-extern void enter_key(const char *, char *, char *);
-extern int tty_meta_prep(void);
-extern void tools_report(struct test_list *, int *, int *);
-
-/* sysdep.c */
-extern void tty_set(void);
-extern void tty_raw(int, int);
-extern void tty_init(void);
-extern void tty_reset(void);
-extern void spin_flush(void);
-extern void read_key(char *, int);
-extern void set_alarm_clock(int);
-extern void ignoresig(void);
-extern int stty_query(int);
-extern int initial_stty_query(int);
-
-/* edit.c */
-extern int user_modified(void);
-extern void save_info(struct test_list *, int *, int *);
-extern void can_test(const char *, int);
-extern void cap_index(const char *, int *);
-extern int cap_match(const char *names, const char *cap);
-extern void edit_init(void);
-extern char *get_string_cap_byname(const char *, const char **);
-extern int get_string_cap_byvalue(const char *);
-extern void show_report(struct test_list *, int *, int *);
-
-/* menu.c */
-extern void menu_prompt(void);
-extern void menu_can_scan(const struct test_menu *);
-extern void menu_display(struct test_menu *, int *);
-extern void generic_done_message(struct test_list *, int *, int *);
-extern void pad_done_message(struct test_list *, int *, int *);
-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 *);
-
-#endif /* NCURSES_TACK_H_incl */
diff --git a/ncurses-5.3/tar-copy.sh b/ncurses-5.3/tar-copy.sh
deleted file mode 100755
index 3629825..0000000
--- a/ncurses-5.3/tar-copy.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/sh
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1997,1998
-#
-# Copy a collection of files using 'tar', so that their dates and links are
-# preserved
-#
-# Parameters:
-# $1 = files to copy
-# $2 = source directory
-# $3 = destination directory
-#
-#DOIT=echo
-DOIT=eval
-
-if test $# != 3 ; then
- echo "Usage: $0 files source target"
- exit 1
-elif test ! -d "$2" ; then
- echo "Source directory not found: $2"
- exit 1
-elif test ! -d "$3" ; then
- echo "Target directory not found: $3"
- exit 1
-fi
-
-WD=`pwd`
-
-TMP=$WD/copy$$
-trap "rm -f $TMP" 0 1 2 5 15
-
-cd $2
-if ( tar cf $TMP $1 )
-then
- cd $3
- LIST=`tar tf $TMP 2>&1`
- $DOIT rm -rf $LIST 2>/dev/null
- $DOIT tar xvf $TMP
-else
- echo "Cannot create tar of $1 files"
- exit 1
-fi
diff --git a/ncurses-5.3/test/Makefile.in b/ncurses-5.3/test/Makefile.in
deleted file mode 100644
index 2ce2321..0000000
--- a/ncurses-5.3/test/Makefile.in
+++ /dev/null
@@ -1,221 +0,0 @@
-# $Id$
-##############################################################################
-# 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. #
-##############################################################################
-#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,1998
-#
-# Makefile for ncurses tests.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-
-x = @PROG_EXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-
-CC = @CC@
-CPP = @CPP@
-
-CFLAGS = @CFLAGS@
-CPPFLAGS = -I../test -I$(srcdir) @CPPFLAGS@ -DHAVE_CONFIG_H
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-LOCAL_LIBS = @TEST_DEPS@
-MATH_LIB = @MATH_LIB@
-
-LD = @LD@
-LINK = @LINK_TESTS@ $(LIBTOOL) $(CC) $(CFLAGS)
-
-LDFLAGS = @LD_MODEL@ @TEST_ARGS@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
-
-LDFLAGS_LIBTOOL = $(LDFLAGS)
-LDFLAGS_NORMAL = $(LDFLAGS)
-LDFLAGS_DEBUG = $(LDFLAGS) @CC_G_OPT@
-LDFLAGS_PROFILE = $(LDFLAGS) -pg
-LDFLAGS_SHARED = $(LDFLAGS) @LD_SHARED_OPTS@
-
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lform -lmenu -lpanel -lncurses @LIBS@
-
-TESTS = \
- blue$x \
- bs$x \
- cardfile$x \
- ditto$x \
- dots$x \
- filter$x \
- firework$x \
- firstlast$x \
- gdc$x \
- hanoi$x \
- hashtest$x \
- keynames$x \
- knight$x \
- lrtest$x \
- ncurses$x \
- newdemo$x \
- rain$x \
- railroad$x \
- tclock$x \
- testaddch$x \
- testcurs$x \
- testscanw$x \
- view$x \
- worm$x \
- xmas$x
-
-all: $(TESTS)
-
-sources:
-
-blue$x: $(MODEL)/blue.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/blue.o $(LDFLAGS_DEFAULT)
-
-bs$x: $(MODEL)/bs.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/bs.o $(LDFLAGS_DEFAULT)
-
-cardfile$x: $(MODEL)/cardfile.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/cardfile.o $(LDFLAGS_DEFAULT)
-
-ditto$x: $(MODEL)/ditto.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ditto.o $(LDFLAGS_DEFAULT)
-
-dots$x: $(MODEL)/dots.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/dots.o $(LDFLAGS_DEFAULT)
-
-filter$x: $(MODEL)/filter.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/filter.o $(LDFLAGS_DEFAULT)
-
-firework$x: $(MODEL)/firework.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firework.o $(LDFLAGS_DEFAULT)
-
-firstlast$x: $(MODEL)/firstlast.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firstlast.o $(LDFLAGS_DEFAULT)
-
-gdc$x: $(MODEL)/gdc.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/gdc.o $(LDFLAGS_DEFAULT)
-
-hanoi$x: $(MODEL)/hanoi.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hanoi.o $(LDFLAGS_DEFAULT)
-
-hashtest$x: $(MODEL)/hashtest.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hashtest.o $(LDFLAGS_DEFAULT)
-
-keynames$x: $(MODEL)/keynames.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/keynames.o $(LDFLAGS_DEFAULT)
-
-knight$x: $(MODEL)/knight.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/knight.o $(LDFLAGS_DEFAULT)
-
-lrtest$x: $(MODEL)/lrtest.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/lrtest.o $(LDFLAGS_DEFAULT)
-
-ncurses$x: $(MODEL)/ncurses.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ncurses.o $(LDFLAGS_DEFAULT)
-
-newdemo$x: $(MODEL)/newdemo.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/newdemo.o $(LDFLAGS_DEFAULT)
-
-rain$x: $(MODEL)/rain.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/rain.o $(LDFLAGS_DEFAULT)
-
-railroad$x: $(MODEL)/railroad.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/railroad.o $(LDFLAGS_DEFAULT)
-
-tclock$x: $(MODEL)/tclock.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/tclock.o $(LDFLAGS_DEFAULT) $(MATH_LIB)
-
-testaddch$x: $(MODEL)/testaddch.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testaddch.o $(LDFLAGS_DEFAULT)
-
-testcurs$x: $(MODEL)/testcurs.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testcurs.o $(LDFLAGS_DEFAULT)
-
-testscanw$x: $(MODEL)/testscanw.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testscanw.o $(LDFLAGS_DEFAULT)
-
-view$x: $(MODEL)/view.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/view.o $(LDFLAGS_DEFAULT)
-
-worm$x: $(MODEL)/worm.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/worm.o $(LDFLAGS_DEFAULT)
-
-xmas$x: $(MODEL)/xmas.o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/xmas.o $(LDFLAGS_DEFAULT)
-
-libs \
-install \
-install.libs \
-install.test:
-
-uninstall:
-uninstall.libs:
-uninstall.test:
-
-mostlyclean ::
- -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
-
-clean :: mostlyclean
- -rm -rf *.o screendump *.lis $(TESTS) .libs
-
-distclean :: clean
- -rm -f Makefile ncurses_cfg.h config.*
-
-realclean :: distclean
-
-lint:
- sh -c 'for N in $(TESTS); do echo LINT:$$N; $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/$$N.c $(LINT_LIBS); done'
-
-# Use this to get a list of test-programs for the standalone configure script.
-echo_tests :
- @echo "$(TESTS)"
-echo_suffix :
- @echo "$x"
diff --git a/ncurses-5.3/test/README b/ncurses-5.3/test/README
deleted file mode 100644
index cd1767a..0000000
--- a/ncurses-5.3/test/README
+++ /dev/null
@@ -1,22 +0,0 @@
-The programs in this directory are designed to test your newest toy :-)
-Check the sources for any further details.
-
-blue - Blue Moon, a nifty solitaire (uses color)
-bs.c - the game of Battleships (uses color)
-firework.c - multi-colored fireworks (uses color)
-gdc.c - Great Digital Clock (uses color)
-hanoi.c - the game of hanoi (uses color essentially)
-knight.c - the game of Knight's Tour (uses color)
-lrtest.c - test of access to the lower-right corner
-ncurses.c - multi-test program (uses color)
-newdemo.c - another test from PDCurses (uses color)
-rain.c - rain drops keep falling on my head...
-tclock.c - analog/digital clock
-testcurs.c - a test from the PDCurses people (uses color)
-worm.c - worms run all over your screen (uses color)
-xmas.c - Xmas greeting card
-
-The bs and knight games demonstrate processing of mouse events under xterm.
-This directory also contains:
-
-tracemunch - Perl script to crunch trace scripts to make them easier to read
diff --git a/ncurses-5.3/test/blue.c b/ncurses-5.3/test/blue.c
deleted file mode 100644
index 3af4bfa..0000000
--- a/ncurses-5.3/test/blue.c
+++ /dev/null
@@ -1,432 +0,0 @@
-/*****************************************************************************
- * *
- * B l u e M o o n *
- * ================= *
- * V2.2 *
- * A patience game by T.A.Lister *
- * Integral screen support by Eric S. Raymond *
- * *
- *****************************************************************************/
-
-/*
- * Compile this with the command `cc -O blue.c -lcurses -o blue'. For best
- * results, use the ncurses(3) library. On non-Intel machines, SVr4 curses is
- * just as good.
- *
- * $Id$
- */
-
-#include <time.h>
-
-#include <test.priv.h>
-
-#define NOCARD (-1)
-
-#define ACE 0
-#define KING 12
-#define SUIT_LENGTH 13
-
-#define HEARTS 0
-#define SPADES 1
-#define DIAMONDS 2
-#define CLUBS 3
-#define NSUITS 4
-
-#define GRID_WIDTH 14 /* 13+1 */
-#define GRID_LENGTH 56 /* 4*(13+1) */
-#define PACK_SIZE 52
-
-#define BASEROW 1
-#define PROMPTROW 11
-
-#define RED_ON_WHITE 1
-#define BLACK_ON_WHITE 2
-#define BLUE_ON_WHITE 3
-
-static RETSIGTYPE die(int onsig) GCC_NORETURN;
-
-static int deck_size = PACK_SIZE; /* initial deck */
-static int deck[PACK_SIZE];
-
-static int grid[GRID_LENGTH]; /* card layout grid */
-static int freeptr[4]; /* free card space pointers */
-
-static int deal_number = 0;
-
-static chtype ranks[SUIT_LENGTH][2] =
-{
- {' ', 'A'},
- {' ', '2'},
- {' ', '3'},
- {' ', '4'},
- {' ', '5'},
- {' ', '6'},
- {' ', '7'},
- {' ', '8'},
- {' ', '9'},
- {'1', '0'},
- {' ', 'J'},
- {' ', 'Q'},
- {' ', 'K'}
-};
-
-/* Please note, that this is a bad example.
- Color values should not be or'ed in. This
- only works, because the characters used here
- are plain and have no color attribute themselves. */
-#ifdef COLOR_PAIR
-#define OR_COLORS(value,pair) ((value) | COLOR_PAIR(pair))
-#else
-#define OR_COLORS(value,pair) (value)
-#endif
-
-#define PC_COLORS(value,pair) (OR_COLORS(value,pair) | A_ALTCHARSET)
-
-static chtype letters[4] =
-{
- OR_COLORS('h', RED_ON_WHITE), /* hearts */
- OR_COLORS('s', BLACK_ON_WHITE), /* spades */
- OR_COLORS('d', RED_ON_WHITE), /* diamonds */
- OR_COLORS('c', BLACK_ON_WHITE), /* clubs */
-};
-
-#if defined(__i386__)
-static chtype glyphs[] =
-{
- PC_COLORS('\003', RED_ON_WHITE), /* hearts */
- PC_COLORS('\006', BLACK_ON_WHITE), /* spades */
- PC_COLORS('\004', RED_ON_WHITE), /* diamonds */
- PC_COLORS('\005', BLACK_ON_WHITE), /* clubs */
-};
-#endif /* __i386__ */
-
-static chtype *suits = letters; /* this may change to glyphs below */
-
-static RETSIGTYPE
-die(int onsig)
-{
- (void) signal(onsig, SIG_IGN);
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-static void
-init_vars(void)
-{
- int i;
-
- deck_size = PACK_SIZE;
- for (i = 0; i < PACK_SIZE; i++)
- deck[i] = i;
- for (i = 0; i < 4; i++)
- freeptr[i] = i * GRID_WIDTH;
-}
-
-static void
-shuffle(int size)
-{
- int i, j, numswaps, swapnum, temp;
-
- 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;
- }
-}
-
-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;
- }
- }
-
- 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[aces[suit]] = NOCARD;
- freeptr[suit] = aces[suit];
- }
-}
-
-static void
-printcard(int value)
-{
- (void) addch(' ');
- if (value == NOCARD)
- (void) addstr(" ");
- else {
- addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE));
- addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE));
- addch(suits[value / SUIT_LENGTH]);
- }
- (void) addch(' ');
-}
-
-static void
-display_cards(int deal)
-{
- 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++) {
- move(BASEROW + row + row + 2, 1);
- for (card = 0; card < GRID_WIDTH; card++)
- printcard(grid[row * GRID_WIDTH + card]);
- }
-
- move(PROMPTROW + 2, 0);
- refresh();
-#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. ");
-#undef P
- refresh();
-}
-
-static int
-find(int card)
-{
- int i;
-
- if ((card < 0) || (card >= PACK_SIZE))
- return (NOCARD);
- for (i = 0; i < GRID_LENGTH; i++)
- if (grid[i] == card)
- return i;
- return (NOCARD);
-}
-
-static void
-movecard(int src, int dst)
-{
- grid[dst] = grid[src];
- grid[src] = NOCARD;
-
- move(BASEROW + (dst / GRID_WIDTH) * 2 + 2, (dst % GRID_WIDTH) * 5 + 1);
- printcard(grid[dst]);
-
- move(BASEROW + (src / GRID_WIDTH) * 2 + 2, (src % GRID_WIDTH) * 5 + 1);
- printcard(grid[src]);
-
- refresh();
-}
-
-static void
-play_game(void)
-{
- int dead = 0, i, j;
- char c;
- int selection[4], card;
-
- while (dead < 4) {
- dead = 0;
- for (i = 0; i < 4; i++) {
- card = grid[freeptr[i] - 1];
-
- if (((card % SUIT_LENGTH) == KING)
- ||
- (card == NOCARD))
- selection[i] = NOCARD;
- else
- selection[i] = find(card + 1);
-
- if (selection[i] == NOCARD)
- 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);
- }
- };
- *lp = '\0';
-
- if (strlen(live) == 1) {
- move(PROMPTROW, 0);
- (void) printw(
- "Making forced moves... ");
- refresh();
- (void) sleep(1);
- c = live[0];
- } else {
- char buf[BUFSIZ];
-
- (void) sprintf(buf,
- "Type [%s] to move, r to redraw, q or INTR to quit: ",
- live);
-
- do {
- move(PROMPTROW, 0);
- (void) addstr(buf);
- move(PROMPTROW, (int) strlen(buf));
- clrtoeol();
- (void) addch(' ');
- } while
- (((c = getch()) < 'a' || c > 'd') && (c != 'r') && (c != 'q'));
- }
-
- 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 (c == 'r')
- display_cards(deal_number);
- else if (c == 'q')
- die(SIGINT);
- else {
- i = c - 'a';
- if (selection[i] == NOCARD)
- beep();
- else {
- movecard(selection[i], freeptr[i]);
- freeptr[i] = selection[i];
- }
- }
- }
- }
-
- move(PROMPTROW, 0);
- standout();
- (void) printw("Finished deal %d - type any character to continue...", deal_number);
- standend();
- (void) getch();
-}
-
-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;
- };
-
- if ((finish != 0) && (grid[gridno] != NOCARD))
- deck[cardno++] = grid[gridno];
- }
- }
- return cardno;
-}
-
-static void
-game_finished(int deal)
-{
- clear();
- (void) printw("You finished the game in %d deals. This is ", deal);
- standout();
- if (deal < 2)
- (void) addstr("excellent");
- else if (deal < 4)
- (void) addstr("good");
- else if (deal < 8)
- (void) addstr("average");
- else
- (void) addstr("poor");
- standend();
- (void) addstr(". ");
- refresh();
-}
-
-int
-main(int argc, char *argv[])
-{
- (void) signal(SIGINT, die);
-
- setlocale(LC_ALL, "");
-
- 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);
-
-#ifndef COLOR_PAIR
- letters[0] = OR_COLORS('h', RED_ON_WHITE); /* hearts */
- letters[1] = OR_COLORS('s', BLACK_ON_WHITE); /* spades */
- letters[2] = OR_COLORS('d', RED_ON_WHITE); /* diamonds */
- 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 */
-#endif
-#endif
-
-#if defined(__i386__) && defined(A_ALTCHARSET)
- if (tigetstr("smpch"))
- suits = glyphs;
-#endif /* __i386__ && A_ALTCHARSET */
-
- cbreak();
-
- if (argc == 2)
- srand((unsigned) atoi(argv[1]));
- else
- srand((unsigned) time((time_t *) 0));
-
- init_vars();
-
- do {
- deal_number++;
- shuffle(deck_size);
- deal_cards();
- display_cards(deal_number);
- play_game();
- }
- while
- ((deck_size = collect_discards()) != 0);
-
- game_finished(deal_number);
-
- die(SIGINT);
- /*NOTREACHED */
-}
-
-/* blue.c ends here */
diff --git a/ncurses-5.3/test/bs.6 b/ncurses-5.3/test/bs.6
deleted file mode 100644
index 38cfe82..0000000
--- a/ncurses-5.3/test/bs.6
+++ /dev/null
@@ -1,42 +0,0 @@
-.TH BATTLESHIPS 6 "Aug 23, 1989"
-.SH NAME
-bs \- battleships game
-.SH SYNOPSIS
-battle [ -b | -s ] [ -c ]
-.SH DESCRIPTION
-This program allows you to play the familiar Battleships game against the
-computer on a 10x10 board. The interface is visual and largely
-self-explanatory; you place your ships and pick your shots by moving the
-cursor around the `sea' with the rogue/hack motion keys hjklyubn.
-.PP
-Note that when selecting a ship to place, you must type the capital letter
-(these are, after all, capital ships). During ship placement, the `r' command
-may be used to ignore the current position and randomly place your currently
-selected ship. The `R' command will place all remaining ships randomly. The ^L
-command (form feed, ASCII 12) will force a screen redraw).
-.PP
-The command-line arguments control game modes.
-
-.nf
- -b selects a `blitz' variant
- -s selects a `salvo' variant
- -c permits ships to be placed adjacently
-.fi
-
-The `blitz' variant allows a side to shoot for as long as it continues to
-score hits.
-.PP
-The `salvo' game allows a player one shot per turn for each of his/her ships
-still afloat. This puts a premium scoring hits early and knocking out some
-ships and also makes much harder the situation where you face a superior force
-with only your PT-boat.
-.PP
-Normally, ships must be separated by at least one square of open water. The
--c option disables this check and allows them to close-pack.
-.PP
-The algorithm the computer uses once it has found a ship to sink is provably
-optimal. The dispersion criterion for the random-fire algorithm may not be.
-.SH AUTHORS
-Originally written by one Bruce Holloway in 1986. Salvo mode added by Chuck A.
-DeGaul (cbosgd!cad). Visual user interface, `closepack' option, code rewrite
-and manual page by Eric S. Raymond <esr@snark.thyrsus.com> August 1989.
diff --git a/ncurses-5.3/test/bs.c b/ncurses-5.3/test/bs.c
deleted file mode 100644
index 17e1444..0000000
--- a/ncurses-5.3/test/bs.c
+++ /dev/null
@@ -1,1228 +0,0 @@
-/*
- * bs.c - original author: Bruce Holloway
- * salvo option by: Chuck A DeGaul
- * with improved user interface, autoconfiguration and code cleanup
- * by Eric S. Raymond <esr@snark.thyrsus.com>
- * v1.2 with color support and minor portability fixes, November 1990
- * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
- * v2.1 with ncurses mouse support, September 1995
- *
- * $Id$
- */
-
-#include <ctype.h>
-#include <assert.h>
-#include <time.h>
-
-#include <test.priv.h>
-
-#ifndef SIGIOT
-#define SIGIOT SIGABRT
-#endif
-
-static int getcoord(int);
-
-/*
- * Constants for tuning the random-fire algorithm. It prefers moves that
- * diagonal-stripe the board with a stripe separation of srchstep. If
- * no such preferred moves are found, srchstep is decremented.
- */
-#define BEGINSTEP 3 /* initial value of srchstep */
-
-/* miscellaneous constants */
-#define SHIPTYPES 5
-#define OTHER (1-turn)
-#define PLAYER 0
-#define COMPUTER 1
-#define MARK_HIT 'H'
-#define MARK_MISS 'o'
-#define CTRLC '\003' /* used as terminate command */
-#define FF '\014' /* used as redraw command */
-
-/* coordinate handling */
-#define BWIDTH 10
-#define BDEPTH 10
-
-/* display symbols */
-#define SHOWHIT '*'
-#define SHOWSPLASH ' '
-#define IS_SHIP(c) (isupper(UChar(c)) ? TRUE : FALSE)
-
-/* how to position us on player board */
-#define PYBASE 3
-#define PXBASE 3
-#define PY(y) (PYBASE + (y))
-#define PX(x) (PXBASE + (x)*3)
-#define pgoto(y, x) (void)move(PY(y), PX(x))
-
-/* how to position us on cpu board */
-#define CYBASE 3
-#define CXBASE 48
-#define CY(y) (CYBASE + (y))
-#define CX(x) (CXBASE + (x)*3)
-#define CYINV(y) ((y) - CYBASE)
-#define CXINV(x) (((x) - CXBASE) / 3)
-#define cgoto(y, x) (void)move(CY(y), CX(x))
-
-#define ONBOARD(x, y) (x >= 0 && x < BWIDTH && y >= 0 && y < BDEPTH)
-
-/* other board locations */
-#define COLWIDTH 80
-#define PROMPTLINE 21 /* prompt line */
-#define SYBASE CYBASE + BDEPTH + 3 /* move key diagram */
-#define SXBASE 63
-#define MYBASE SYBASE - 1 /* diagram caption */
-#define MXBASE 64
-#define HYBASE SYBASE - 1 /* help area */
-#define HXBASE 0
-
-/* this will need to be changed if BWIDTH changes */
-static char numbers[] = " 0 1 2 3 4 5 6 7 8 9";
-
-static char carrier[] = "Aircraft Carrier";
-static char battle[] = "Battleship";
-static char sub[] = "Submarine";
-static char destroy[] = "Destroyer";
-static char ptboat[] = "PT Boat";
-
-static char name[40];
-static char dftname[] = "stranger";
-
-/* direction constants */
-#define E 0
-#define SE 1
-#define S 2
-#define SW 3
-#define W 4
-#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};
-
-/* current ship position and direction */
-static int curx = (BWIDTH / 2);
-static int cury = (BDEPTH / 2);
-
-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 */
- int x, y; /* coordinates of ship start point */
- int dir; /* direction of `bow' */
- bool placed; /* has it been placed on the board? */
-} ship_t;
-
-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] =
-{
- 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] =
-{
- 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];
-
-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 RETSIGTYPE uninitgame(int sig) GCC_NORETURN;
-
-static RETSIGTYPE uninitgame(int sig GCC_UNUSED)
-/* end the game, either normally or due to signal */
-{
- clear();
- (void) refresh();
- (void) reset_shell_mode();
- (void) echo();
- (void) endwin();
- ExitProgram(sig ? EXIT_FAILURE : EXIT_SUCCESS);
-}
-
-static void
-announceopts(void)
-/* announce which game options are enabled */
-{
- if (salvo || blitz || closepack) {
- (void) printw("Playing optional game (");
- if (salvo)
- (void) printw("salvo, ");
- else
- (void) printw("nosalvo, ");
- if (blitz)
- (void) printw("blitz ");
- else
- (void) printw("noblitz, ");
- if (closepack)
- (void) printw("closepack)");
- else
- (void) printw("noclosepack)");
- } else
- (void) printw(
- "Playing standard game (noblitz, nosalvo, noclosepack)");
-}
-
-static void
-intro(void)
-{
- char *tmpname;
-
- 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);
-
- if ((tmpname = getlogin()) != 0) {
- (void) strcpy(name, tmpname);
- name[0] = toupper(name[0]);
- } else
- (void) strcpy(name, dftname);
-
- (void) initscr();
- keypad(stdscr, TRUE);
- (void) def_prog_mode();
- (void) nonl();
- (void) cbreak();
- (void) noecho();
-
-#ifdef PENGUIN
- (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");
- PR(" ________________/ |\n");
- PR(" \\ S.S. Penguin |\n");
- PR(" \\ /\n");
- PR(" \\___________________________________________________/\n");
-
- (void) mvaddstr(22, 27, "Hit any key to continue...");
- (void) refresh();
- (void) getch();
-#endif /* PENGUIN */
-
-#ifdef A_COLOR
- start_color();
-
- init_pair(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK);
- init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK);
- init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK);
- init_pair(COLOR_CYAN, COLOR_CYAN, COLOR_BLACK);
- init_pair(COLOR_WHITE, COLOR_WHITE, COLOR_BLACK);
- init_pair(COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
- init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK);
- init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK);
-#endif /* A_COLOR */
-
-#ifdef NCURSES_MOUSE_VERSION
- (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
-#endif /* NCURSES_MOUSE_VERSION */
-}
-
-/* VARARGS1 */
-static void
-prompt(int n, NCURSES_CONST char *f, const char *s)
-/* print a message at the prompt line */
-{
- (void) move(PROMPTLINE + n, 0);
- (void) clrtoeol();
- (void) printw(f, s);
- (void) refresh();
-}
-
-static void
-error(NCURSES_CONST char *s)
-{
- (void) move(PROMPTLINE + 2, 0);
- (void) clrtoeol();
- if (s) {
- (void) addstr(s);
- (void) beep();
- }
-}
-
-static void
-placeship(int b, ship_t * ss, int vis)
-{
- int 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;
- if (vis) {
- pgoto(newy, newx);
- (void) addch((chtype) ss->symbol);
- }
- }
- ss->hits = 0;
-}
-
-static int
-rnd(int n)
-{
- return (((rand() & 0x7FFF) % n));
-}
-
-static void
-randomplace(int b, ship_t * ss)
-/* generate a valid random ship placement into px,py */
-{
-
- do {
- 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));
-}
-
-static void
-initgame(void)
-{
- int i, j, unplaced;
- ship_t *ss;
-
- (void) clear();
- (void) mvaddstr(0, 35, "BATTLESHIPS");
- (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++) {
- ss = cpuship + i;
-
- ss->x =
- ss->y =
- ss->dir =
- ss->hits = 0;
- ss->placed = FALSE;
-
- ss = plyship + i;
-
- ss->x =
- ss->y =
- ss->dir =
- ss->hits = 0;
- 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'));
-#ifdef A_COLOR
- if (has_colors())
- attron(COLOR_PAIR(COLOR_BLUE));
-#endif /* A_COLOR */
- (void) addch(' ');
- for (j = 0; j < BWIDTH; j++)
- (void) addstr(" . ");
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- (void) addch(' ');
- (void) addch((chtype) (i + 'A'));
- }
- (void) mvaddstr(PYBASE + BDEPTH, PXBASE - 3, numbers);
- (void) mvaddstr(CYBASE - 2, CXBASE + 7, "Hit/Miss Board");
- (void) mvaddstr(CYBASE - 1, CXBASE - 3, numbers);
- 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));
-#endif /* A_COLOR */
- (void) addch(' ');
- for (j = 0; j < BWIDTH; j++)
- (void) addstr(" . ");
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- (void) addch(' ');
- (void) addch((chtype) (i + 'A'));
- }
-
- (void) mvaddstr(CYBASE + BDEPTH, CXBASE - 3, numbers);
-
- (void) mvprintw(HYBASE, HXBASE,
- "To position your ships: move the cursor to a spot, then");
- (void) mvprintw(HYBASE + 1, HXBASE,
- "type the first letter of a ship type to select it, then");
- (void) mvprintw(HYBASE + 2, HXBASE,
- "type a direction ([hjkl] or [4862]), indicating how the");
- (void) mvprintw(HYBASE + 3, HXBASE,
- "ship should be pointed. You may also type a ship letter");
- (void) mvprintw(HYBASE + 4, HXBASE,
- "followed by `r' to position it randomly, or type `R' to");
- (void) mvprintw(HYBASE + 5, HXBASE,
- "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");
-
- /* have the computer place ships */
- for (ss = cpuship; ss < cpuship + SHIPTYPES; ss++) {
- randomplace(COMPUTER, ss);
- placeship(COMPUTER, ss, FALSE);
- }
-
- ss = (ship_t *) NULL;
- do {
- char c, docked[SHIPTYPES + 2], *cp = docked;
-
- /* figure which ships still wait to be placed */
- *cp++ = 'R';
- for (i = 0; i < SHIPTYPES; i++)
- if (!plyship[i].placed)
- *cp++ = plyship[i].symbol;
- *cp = '\0';
-
- /* get a command letter */
- prompt(1, "Type one of [%s] to pick a ship.", docked + 1);
- do {
- c = getcoord(PLAYER);
- } while
- (!strchr(docked, c));
-
- if (c == 'R')
- (void) ungetch('R');
- else {
- /* map that into the corresponding symbol */
- for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
- if (ss->symbol == c)
- break;
-
- prompt(1, "Type one of [hjklrR] to place your %s.", ss->name);
- pgoto(cury, curx);
- }
-
- do {
- c = getch();
- } while
- (!strchr("hjklrR", c) || c == FF);
-
- 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);
- error((char *) NULL);
- ss->placed = TRUE;
- } else if (c == 'R') {
- prompt(1, "Placing the rest of your fleet at random...", "");
- for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
- if (!ss->placed) {
- randomplace(PLAYER, ss);
- placeship(PLAYER, ss, TRUE);
- ss->placed = TRUE;
- }
- error((char *) NULL);
- } else if (strchr("hjkl8462", c)) {
- 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;
- }
-
- if (checkplace(PLAYER, ss, TRUE)) {
- placeship(PLAYER, ss, TRUE);
- error((char *) NULL);
- ss->placed = TRUE;
- }
- }
-
- for (unplaced = i = 0; i < SHIPTYPES; i++)
- unplaced += !plyship[i].placed;
- } while
- (unplaced);
-
- turn = rnd(2);
-
- (void) mvprintw(HYBASE, HXBASE,
- "To fire, move the cursor to your chosen aiming point ");
- (void) mvprintw(HYBASE + 1, HXBASE,
- "and strike any key other than a motion key. ");
- (void) mvprintw(HYBASE + 2, HXBASE,
- " ");
- (void) mvprintw(HYBASE + 3, HXBASE,
- " ");
- (void) mvprintw(HYBASE + 4, HXBASE,
- " ");
- (void) mvprintw(HYBASE + 5, HXBASE,
- " ");
-
- (void) prompt(0, "Press any key to start...", "");
- (void) getch();
-}
-
-static int
-getcoord(int atcpu)
-{
- int ny, nx, c;
-
- if (atcpu)
- cgoto(cury, curx);
- else
- pgoto(cury, curx);
- (void) refresh();
- for (;;) {
- if (atcpu) {
- (void) mvprintw(CYBASE + BDEPTH + 1, CXBASE + 11, "(%d, %c)",
- curx, 'A' + cury);
- cgoto(cury, curx);
- } else {
- (void) mvprintw(PYBASE + BDEPTH + 1, PXBASE + 11, "(%d, %c)",
- curx, 'A' + cury);
- pgoto(cury, curx);
- }
-
- switch (c = getch()) {
- case 'k':
- case '8':
- case KEY_UP:
- ny = cury + BDEPTH - 1;
- nx = curx;
- break;
- case 'j':
- case '2':
- case KEY_DOWN:
- ny = cury + 1;
- nx = curx;
- break;
- case 'h':
- case '4':
- case KEY_LEFT:
- ny = cury;
- nx = curx + BWIDTH - 1;
- break;
- case 'l':
- case '6':
- case KEY_RIGHT:
- ny = cury;
- nx = curx + 1;
- break;
- case 'y':
- case '7':
- case KEY_A1:
- ny = cury + BDEPTH - 1;
- nx = curx + BWIDTH - 1;
- break;
- case 'b':
- case '1':
- case KEY_C1:
- ny = cury + 1;
- nx = curx + BWIDTH - 1;
- break;
- case 'u':
- case '9':
- case KEY_A3:
- ny = cury + BDEPTH - 1;
- nx = curx + 1;
- break;
- case 'n':
- case '3':
- case KEY_C3:
- ny = cury + 1;
- nx = curx + 1;
- break;
- case FF:
- nx = curx;
- ny = cury;
- (void) clearok(stdscr, TRUE);
- (void) refresh();
- break;
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT myevent;
-
- getmouse(&myevent);
- if (atcpu
- && myevent.y >= CY(0) && myevent.y <= CY(BDEPTH)
- && myevent.x >= CX(0) && myevent.x <= CX(BDEPTH)) {
- curx = CXINV(myevent.x);
- cury = CYINV(myevent.y);
- return (' ');
- } else {
- beep();
- continue;
- }
- }
- /* no fall through */
-#endif /* NCURSES_MOUSE_VERSION */
-
- default:
- if (atcpu)
- (void) mvaddstr(CYBASE + BDEPTH + 1, CXBASE + 11, " ");
- else
- (void) mvaddstr(PYBASE + BDEPTH + 1, PXBASE + 11, " ");
- return (c);
- }
-
- curx = nx % BWIDTH;
- cury = ny % BDEPTH;
- }
-}
-
-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)
- return (collide);
-
- /* anything on the neighbors */
- if (!closepack) {
- int i;
-
- for (i = 0; i < 8; i++) {
- int xend, yend;
-
- yend = y + yincr[i];
- xend = x + xincr[i];
- if (ONBOARD(xend, yend)
- && IS_SHIP(board[b][xend][yend])) {
- collide = TRUE;
- break;
- }
- }
- }
- return (collide);
-}
-
-static bool
-checkplace(int b, ship_t * ss, int vis)
-{
- int l, xend, yend;
-
- /* first, check for board edges */
- xend = ss->x + (ss->length - 1) * xincr[ss->dir];
- yend = ss->y + (ss->length - 1) * yincr[ss->dir];
- if (!ONBOARD(xend, yend)) {
- if (vis)
- switch (rnd(3)) {
- case 0:
- error("Ship is hanging from the edge of the world");
- break;
- case 1:
- error("Try fitting it on the board");
- break;
- case 2:
- error("Figure I won't find it if you put it there?");
- break;
- }
- return (FALSE);
- }
-
- for (l = 0; l < ss->length; ++l) {
- if (collidecheck(b, ss->y + l * yincr[ss->dir], ss->x + l * xincr[ss->dir])) {
- 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);
- }
- }
- return (TRUE);
-}
-
-static int
-awinna(void)
-{
- int i, j;
- ship_t *ss;
-
- for (i = 0; i < 2; ++i) {
- ss = (i) ? cpuship : plyship;
- for (j = 0; j < SHIPTYPES; ++j, ++ss)
- if (ss->length > ss->hits)
- break;
- if (j == SHIPTYPES)
- return (OTHER);
- }
- return (-1);
-}
-
-static ship_t *
-hitship(int x, int y)
-/* register a hit on the targeted ship */
-{
- ship_t *sb, *ss;
- char sym;
- int oldx, oldy;
-
- 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 (++ss->hits < ss->length) /* still afloat? */
- return ((ship_t *) NULL);
- else { /* sunk! */
- int i, j;
-
- if (!closepack)
- 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];
-
- for (i = -1; i <= ss->length; ++i) {
- int x1, y1;
-
- x1 = bx + i * xincr[ss->dir];
- y1 = by + i * yincr[ss->dir];
- if (ONBOARD(x1, y1)) {
- hits[turn][x1][y1] = MARK_MISS;
- if (turn % 2 == PLAYER) {
- cgoto(y1, x1);
-#ifdef A_COLOR
- if (has_colors())
- attron(COLOR_PAIR(COLOR_GREEN));
-#endif /* A_COLOR */
- (void) addch(MARK_MISS);
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- } else {
- pgoto(y1, x1);
- (void) addch(SHOWSPLASH);
- }
- }
- }
- }
-
- 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;
- if (turn % 2 == PLAYER) {
- cgoto(y1, x1);
- (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);
- return (ss);
- }
- }
- (void) move(oldy, oldx);
- return ((ship_t *) NULL);
-}
-
-static bool
-plyturn(void)
-{
- ship_t *ss;
- bool hit;
- NCURSES_CONST char *m = NULL;
-
- prompt(1, "Where do you want to shoot? ", "");
- for (;;) {
- (void) getcoord(COMPUTER);
- if (hits[PLAYER][curx][cury]) {
- prompt(1, "You shelled this spot already! Try again.", "");
- beep();
- } else
- break;
- }
- hit = IS_SHIP(board[COMPUTER][curx][cury]);
- hits[PLAYER][curx][cury] = (hit ? MARK_HIT : MARK_MISS);
- cgoto(cury, curx);
-#ifdef A_COLOR
- if (has_colors()) {
- if (hit)
- attron(COLOR_PAIR(COLOR_RED));
- else
- attron(COLOR_PAIR(COLOR_GREEN));
- }
-#endif /* A_COLOR */
- (void) addch((chtype) hits[PLAYER][curx][cury]);
-#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)) {
- case 0:
- m = " You sank my %s!";
- break;
- case 1:
- m = " I have this sinking feeling about my %s....";
- break;
- case 2:
- m = " My %s has gone to Davy Jones's locker!";
- break;
- case 3:
- m = " Glub, glub -- my %s is headed for the bottom!";
- break;
- case 4:
- m = " You'll pick up survivors from my %s, I hope...!";
- break;
- }
- (void) printw(m, ss->name);
- (void) beep();
- return (awinna() == -1);
- }
- return (hit);
-}
-
-static int
-sgetc(const char *s)
-{
- const char *s1;
- int ch;
-
- (void) refresh();
- for (;;) {
- ch = getch();
- if (islower(ch))
- ch = toupper(ch);
- if (ch == CTRLC)
- uninitgame(0);
- for (s1 = s; *s1 && ch != *s1; ++s1)
- continue;
- if (*s1) {
- (void) addch((chtype) ch);
- (void) refresh();
- return (ch);
- }
- }
-}
-
-static void
-randomfire(int *px, int *py)
-/* random-fire routine -- implements simple diagonal-striping strategy */
-{
- static int turncount = 0;
- static int srchstep = BEGINSTEP;
- 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;
-
- if (turncount++ == 0)
- huntoffs = rnd(srchstep);
-
- /* first, list all possible moves */
- nposs = npref = 0;
- for (x = 0; x < BWIDTH; x++)
- for (y = 0; y < BDEPTH; y++)
- if (!hits[COMPUTER][x][y]) {
- xpossible[nposs] = x;
- ypossible[nposs] = y;
- nposs++;
- if (((x + huntoffs) % srchstep) != (y % srchstep)) {
- xpreferred[npref] = x;
- ypreferred[npref] = y;
- npref++;
- }
- }
-
- if (npref) {
- i = rnd(npref);
-
- *px = xpreferred[i];
- *py = ypreferred[i];
- } else if (nposs) {
- i = rnd(nposs);
-
- *px = xpossible[i];
- *py = ypossible[i];
-
- if (srchstep > 1)
- --srchstep;
- } else {
- error("No moves possible?? Help!");
- ExitProgram(EXIT_FAILURE);
- /*NOTREACHED */
- }
-}
-
-#define S_MISS 0
-#define S_HIT 1
-#define S_SUNK -1
-
-static int
-cpufire(int x, int y)
-/* fire away at given location */
-{
- bool hit, sunk;
- ship_t *ss = NULL;
-
- 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");
- if ((sunk = (hit && (ss = hitship(x, y)))) != 0)
- (void) printw(" I've sunk your %s", ss->name);
- (void) clrtoeol();
-
- pgoto(y, x);
-#ifdef A_COLOR
- if (has_colors()) {
- if (hit)
- attron(COLOR_PAIR(COLOR_RED));
- else
- attron(COLOR_PAIR(COLOR_GREEN));
- }
-#endif /* A_COLOR */
- (void) addch((chtype) (hit ? SHOWHIT : SHOWSPLASH));
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
-
- return ((hit ? (sunk ? S_SUNK : S_HIT) : S_MISS) ? TRUE : FALSE);
-}
-
-/*
- * This code implements a fairly irregular FSM, so please forgive the rampant
- * unstructuredness below. The five labels are states which need to be held
- * between computer turns.
- */
-static bool
-cputurn(void)
-{
-#define POSSIBLE(x, y) (ONBOARD(x, y) && !hits[COMPUTER][x][y])
-#define RANDOM_FIRE 0
-#define RANDOM_HIT 1
-#define HUNT_DIRECT 2
-#define FIRST_PASS 3
-#define REVERSE_JUMP 4
-#define SECOND_PASS 5
- static int next = RANDOM_FIRE;
- static bool used[4];
- static ship_t ts;
- int navail, x, y, d, n;
- int hit = S_MISS;
-
- switch (next) {
- case RANDOM_FIRE: /* last shot was random and missed */
- refire:
- randomfire(&x, &y);
- if (!(hit = cpufire(x, y)))
- next = RANDOM_FIRE;
- else {
- ts.x = x;
- ts.y = y;
- 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;
- /* 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];
- if (!used[d] && POSSIBLE(x, y))
- navail++;
- else
- used[d] = TRUE;
- }
- if (navail == 0) /* no valid places for shots adjacent... */
- goto refire; /* ...so we must random-fire */
- else {
- for (d = 0, n = rnd(navail) + 1; n; n--)
- while (used[d])
- d++;
-
- assert(d <= 4);
-
- used[d] = FALSE;
- x = ts.x + xincr[d * 2];
- y = ts.y + yincr[d * 2];
-
- 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++;
- next = (hit == S_SUNK) ? RANDOM_FIRE : FIRST_PASS;
- }
- }
- break;
-
- case FIRST_PASS: /* we have a start and a direction now */
- 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 : FIRST_PASS;
- } else
- next = REVERSE_JUMP;
- break;
-
- 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];
- 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;
- } else
- next = RANDOM_FIRE;
- break;
-
- case SECOND_PASS: /* kill squares not caught on first pass */
- 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;
- break;
- } else
- next = RANDOM_FIRE;
- break;
- }
-
- /* check for continuation and/or winner */
- if (salvo) {
- (void) refresh();
- (void) sleep(1);
- }
- if (awinna() != -1)
- return (FALSE);
-
-#ifdef DEBUG
- (void) mvprintw(PROMPTLINE + 2, 0,
- "New state %d, x=%d, y=%d, d=%d",
- next, x, y, d);
-#endif /* DEBUG */
- return ((hit) ? TRUE : FALSE);
-}
-
-static int
-playagain(void)
-{
- int j;
- ship_t *ss;
-
- for (ss = cpuship; ss < cpuship + SHIPTYPES; ss++)
- for (j = 0; j < ss->length; j++) {
- cgoto(ss->y + j * yincr[ss->dir], ss->x + j * xincr[ss->dir]);
- (void) addch((chtype) ss->symbol);
- }
-
- if (awinna())
- ++cpuwon;
- else
- ++plywon;
- j = 18 + strlen(name);
- if (plywon >= 10)
- ++j;
- if (cpuwon >= 10)
- ++j;
- (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');
-}
-
-static void
-do_options(int c, char *op[])
-{
- register int i;
-
- if (c > 1) {
- for (i = 1; i < c; i++) {
- switch (op[i][0]) {
- default:
- case '?':
- (void) fprintf(stderr, "Usage: battle [-s | -b] [-c]\n");
- (void) fprintf(stderr, "\tWhere the options are:\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");
- ExitProgram(EXIT_FAILURE);
- break;
- case '-':
- switch (op[i][1]) {
- case 'b':
- blitz = 1;
- if (salvo == 1) {
- (void) fprintf(stderr,
- "Bad Arg: -b and -s are mutually exclusive\n");
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 's':
- salvo = 1;
- if (blitz == 1) {
- (void) fprintf(stderr,
- "Bad Arg: -s and -b are mutually exclusive\n");
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 'c':
- closepack = 1;
- break;
- default:
- (void) fprintf(stderr,
- "Bad arg: type \"%s ?\" for usage message\n",
- op[0]);
- ExitProgram(EXIT_FAILURE);
- }
- }
- }
- }
-}
-
-static int
-scount(int who)
-{
- register int i, shots;
- register ship_t *sp;
-
- if (who)
- sp = cpuship; /* count cpu shots */
- else
- sp = plyship; /* count player shots */
-
- for (i = 0, shots = 0; i < SHIPTYPES; i++, sp++) {
- if (sp->hits >= sp->length)
- continue; /* dead ship */
- else
- shots++;
- }
- return (shots);
-}
-
-int
-main(int argc, char *argv[])
-{
- setlocale(LC_ALL, "");
-
- do_options(argc, argv);
-
- intro();
- do {
- initgame();
- while (awinna() == -1) {
- if (!blitz) {
- if (!salvo) {
- if (turn)
- (void) cputurn();
- else
- (void) plyturn();
- } else {
- register int i;
-
- i = scount(turn);
- while (i--) {
- if (turn) {
- if (cputurn() && awinna() != -1)
- i = 0;
- } else {
- if (plyturn() && awinna() != -1)
- i = 0;
- }
- }
- }
- } else
- while (turn ? cputurn() : plyturn())
- continue;
- turn = OTHER;
- }
- } while
- (playagain());
- uninitgame(0);
- /*NOTREACHED */
-}
-
-/* bs.c ends here */
diff --git a/ncurses-5.3/test/cardfile.c b/ncurses-5.3/test/cardfile.c
deleted file mode 100644
index f9d5dcf..0000000
--- a/ncurses-5.3/test/cardfile.c
+++ /dev/null
@@ -1,534 +0,0 @@
-/****************************************************************************
- * 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"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999
- *
- * $Id$
- *
- * 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 <ctype.h>
-
-#define VISIBLE_CARDS 10
-#define OFFSET_CARD 2
-
-#ifndef CTRL
-#define CTRL(x) ((x) & 0x1f)
-#endif
-
-typedef struct _card {
- struct _card *link;
- PANEL *panel;
- FORM *form;
- char *title;
- char *content;
-} CARD;
-
-static CARD *all_cards;
-static char default_name[] = "cardfile.dat";
-
-#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 */
-
-static const char *
-skip(const char *buffer)
-{
- while (isspace(UChar(*buffer)))
- buffer++;
- return buffer;
-}
-
-static void
-trim(char *buffer)
-{
- unsigned n = strlen(buffer);
- while (n-- && isspace(UChar(buffer[n])))
- buffer[n] = 0;
-}
-
-/*******************************************************************************/
-
-static CARD *
-add_title(const char *title)
-{
- CARD *card, *p, *q;
-
- for (p = all_cards, q = 0; p != 0; q = p, p = p->link) {
- int cmp = strcmp(p->title, title);
- if (cmp == 0)
- return p;
- if (cmp > 0)
- break;
- }
-
- card = (CARD *) calloc(1, sizeof(CARD));
- card->title = strdup(title);
- card->content = strdup("");
-
- if (q == 0) {
- card->link = all_cards;
- all_cards = card;
- } else {
- card->link = q->link;
- q->link = card;
- }
-
- return card;
-}
-
-static void
-add_content(CARD * card, const char *content)
-{
- unsigned total, offset;
-
- content = skip(content);
- if ((total = strlen(content)) != 0) {
- if ((offset = strlen(card->content)) != 0) {
- total += 1 + offset;
- 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);
- }
-}
-
-static CARD *
-new_card(void)
-{
- CARD *card = add_title("");
- add_content(card, "");
- return card;
-}
-
-static CARD *
-find_card(char *title)
-{
- CARD *card;
-
- for (card = all_cards; card != 0; card = card->link)
- if (!strcmp(card->title, title))
- break;
-
- return card;
-}
-
-static void
-read_data(char *fname)
-{
- FILE *fp;
- CARD *card = 0;
- char buffer[BUFSIZ];
-
- if ((fp = fopen(fname, "r")) != 0) {
- while (fgets(buffer, sizeof(buffer), fp)) {
- trim(buffer);
- if (isspace(UChar(*buffer))) {
- if (card == 0)
- card = add_title("");
- add_content(card, buffer);
- } else if ((card = find_card(buffer)) == 0) {
- card = add_title(buffer);
- }
- }
- fclose(fp);
- }
-}
-
-/*******************************************************************************/
-
-static void
-write_data(const char *fname)
-{
- FILE *fp;
- CARD *p = 0;
- int n;
-
- if (!strcmp(fname, default_name))
- fname = "cardfile.out";
-
- if ((fp = fopen(fname, "w")) != 0) {
- for (p = all_cards; p != 0; p = p->link) {
- FIELD **f = form_fields(p->form);
- for (n = 0; f[n] != 0; n++) {
- char *s = field_buffer(f[n], 0);
- if (s != 0
- && (s = strdup(s)) != 0) {
- trim(s);
- fprintf(fp, "%s%s\n", n ? "\t" : "", s);
- free(s);
- }
- }
- }
- fclose(fp);
- }
-}
-
-/*******************************************************************************/
-
-/*
- * Count the cards
- */
-static int
-count_cards(void)
-{
- CARD *p;
- int count = 0;
-
- for (p = all_cards; p != 0; p = p->link)
- count++;
-
- return count;
-}
-
-/*
- * Shuffle the panels to keep them in a natural hierarchy.
- */
-static void
-order_cards(CARD * first, int depth)
-{
- if (first) {
- if (depth && first->link)
- order_cards(first->link, depth - 1);
- top_panel(first->panel);
- }
-}
-
-/*
- * Return the next card in the list
- */
-static CARD *
-next_card(CARD * now)
-{
- if (now->link)
- now = now->link;
- return now;
-}
-
-/*
- * Return the previous card in the list
- */
-static CARD *
-prev_card(CARD * now)
-{
- CARD *p;
- for (p = all_cards; p != 0; p = p->link)
- if (p->link == now)
- return p;
- return now;
-}
-
-/*******************************************************************************/
-
-static int
-form_virtualize(WINDOW *w)
-{
- int c = wgetch(w);
-
- switch (c) {
- case CTRL('W'):
- return (MAX_FORM_COMMAND + 4);
- case CTRL('N'):
- return (MAX_FORM_COMMAND + 3);
- case CTRL('P'):
- return (MAX_FORM_COMMAND + 2);
- case CTRL('Q'):
- case 033:
- return (MAX_FORM_COMMAND + 1);
-
- case KEY_BACKSPACE:
- return (REQ_DEL_PREV);
- case KEY_DC:
- return (REQ_DEL_CHAR);
- case KEY_LEFT:
- return (REQ_LEFT_CHAR);
- case KEY_RIGHT:
- return (REQ_RIGHT_CHAR);
-
- case KEY_DOWN:
- case KEY_NEXT:
- return (REQ_NEXT_FIELD);
- case KEY_UP:
- case KEY_PREVIOUS:
- return (REQ_PREV_FIELD);
-
- default:
- return (c);
- }
-}
-
-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
-cardfile(char *fname)
-{
- WINDOW *win;
- CARD *p;
- CARD *top_card;
- int visible_cards = count_cards();
- int panel_wide = COLS - (visible_cards * OFFSET_CARD);
- int panel_high = LINES - (visible_cards * OFFSET_CARD) - 5;
- int form_wide = panel_wide - 2;
- int form_high = panel_high - 2;
- int y = (visible_cards - 1) * OFFSET_CARD;
- int x = 0;
- int ch = ERR;
- int last_ch;
- int finished = FALSE;
-
- show_legend();
-
- /* make a panel for each CARD */
- for (p = all_cards; p != 0; p = p->link) {
-
- win = newwin(panel_high, panel_wide, y, x);
- keypad(win, TRUE);
- p->panel = new_panel(win);
- box(win, 0, 0);
-
- 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);
-
- y -= OFFSET_CARD;
- x += OFFSET_CARD;
- }
-
- order_cards(top_card = all_cards, visible_cards);
-
- while (!finished) {
- update_panels();
- doupdate();
-
- 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:
- switch (ch) {
- case MAX_FORM_COMMAND + 1:
- finished = TRUE;
- break;
- case MAX_FORM_COMMAND + 2:
- top_card = prev_card(top_card);
- order_cards(top_card, visible_cards);
- break;
- case MAX_FORM_COMMAND + 3:
- top_card = next_card(top_card);
- order_cards(top_card, visible_cards);
- 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;
- }
- break;
- default:
- flash();
- 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
-}
-
-/*******************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
- int n;
-
- setlocale(LC_ALL, "");
-
- initscr();
- cbreak();
- noecho();
-
- if (argc > 1) {
- for (n = 1; n < argc; n++)
- read_data(argv[n]);
- if (count_cards() == 0)
- new_card();
- cardfile(argv[1]);
- } else {
- read_data(default_name);
- if (count_cards() == 0)
- new_card();
- cardfile(default_name);
- }
-
- endwin();
-
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the curses form and panel libraries\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/ncurses-5.3/test/cardfile.dat b/ncurses-5.3/test/cardfile.dat
deleted file mode 100644
index deb4b76..0000000
--- a/ncurses-5.3/test/cardfile.dat
+++ /dev/null
@@ -1,13 +0,0 @@
-title 1
- Some text for title1
- and some more text
-title 2
- The quicker brown fox ran all over the lazy dog.
-put a card before the first two
- This is an example of a simple cardfile.
-show a fourth card
- The fourth card
- has a large amount of data,
- more than the other cards.
- At least, that is what I thought it should do, since I want to see how well
- the forms package handles justification.
diff --git a/ncurses-5.3/test/configure b/ncurses-5.3/test/configure
deleted file mode 100755
index 8d44c2b..0000000
--- a/ncurses-5.3/test/configure
+++ /dev/null
@@ -1,2401 +0,0 @@
-#! /bin/sh
-
-# 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.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# 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
-
-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"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$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="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # 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" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # 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
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -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-5lib use SunOS sysv-libraries
- --with-ncursesw use wide ncurses-libraries (installed)
- --with-ncurses use ncurses-libraries (installed)
-EOF
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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="$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="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13.20000819"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # 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'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # 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" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -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-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" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- 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"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-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
-
-# 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
-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" ;;
- 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
-
-# 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
-
-# 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.c
-
-# 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%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-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; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-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
-
-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
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-
-
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:533: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-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 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_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"
-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
- # 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" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-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: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 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"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-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; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:646: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-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
-
-cat > conftest.$ac_ext << EOF
-
-#line 657 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- 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
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_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_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: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 "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
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:702: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-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: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
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-
-CC_G_OPT="-g"
-CC_SHARED_OPTS=unknown
-CPPFLAGS="$CPPFLAGS"
-DFT_DEP_SUFFIX=""
-DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`
-DFT_UPR_MODEL="NORMAL"
-ECHO_LINK='@ echo linking $@ ... ;'
-EXTRA_LIBS=""
-LD="ld"
-LDFLAGS_SHARED=""
-LD_MODEL=""
-LD_SHARED_OPTS=""
-LIBTOOL=""
-LIB_NAME=curses
-LIB_PREFIX="-l"
-LINK_TESTS=""
-LINT=lint
-LINT_OPTS=""
-LOCAL_LDFLAGS=""
-MATH_LIB="-lm"
-PROG_EXT=""
-TEST_ARGS=""
-TEST_DEPS=""
-cf_cv_abi_version=""
-cf_cv_rel_version=""
-
-
-# Check whether --with-5lib or --without-5lib was given.
-if test "${with_5lib+set}" = set; then
- withval="$with_5lib"
- LIBS="-L/usr/5lib $LIBS"
- CPPFLAGS="$CPPFLAGS -I/usr/5include"
-fi
-
-
-
-
-# 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
-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
-#line 1021 "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: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
- 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: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
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lgpm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#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
- builtin and then its argument prototype would still apply. */
-char Gpm_Open();
-
-int main() {
-Gpm_Open()
-; return 0; }
-EOF
-if { (eval echo configure:1082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- 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=ncurses
- for p in $HOME /usr/local /usr
- do
- if test -f $p/include/ncurses/curses.h
- then
- CPPFLAGS="$CPPFLAGS -I$p/include/ncurses"
- test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
- test $p != /usr && LIBS="-L$p/lib $LIBS"
- break
- elif test $p != /usr
- then
- if test -f $p/include/curses.h
- then
- CPPFLAGS="$CPPFLAGS -I$p/include"
- LIBS="-L$p/lib $LIBS"
- break
- fi
- fi
- done
-
-fi
-
-fi
-
-
-
-
-echo $ac_n "checking for initscr""... $ac_c" 1>&6
-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
-#line 1142 "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: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
- 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 initscr in -l$LIB_NAME""... $ac_c" 1>&6
-echo "configure:1184: checking for initscr in -l$LIB_NAME" >&5
-ac_lib_var=`echo $LIB_NAME'_'initscr | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-l$LIB_NAME $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1192 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure: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
- 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 $LIB_NAME | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-l$LIB_NAME $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-echo $ac_n "checking for form_driver in -lform""... $ac_c" 1>&6
-echo "configure:1233: checking for form_driver in -lform" >&5
-ac_lib_var=`echo form'_'form_driver | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lform $LIBS"
-cat > conftest.$ac_ext <<EOF
-#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
- builtin and then its argument prototype would still apply. */
-char form_driver();
-
-int main() {
-form_driver()
-; return 0; }
-EOF
-if { (eval echo configure:1252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- 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 form | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lform $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for menu_driver in -lmenu""... $ac_c" 1>&6
-echo "configure:1280: checking for menu_driver in -lmenu" >&5
-ac_lib_var=`echo menu'_'menu_driver | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lmenu $LIBS"
-cat > conftest.$ac_ext <<EOF
-#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
- builtin and then its argument prototype would still apply. */
-char menu_driver();
-
-int main() {
-menu_driver()
-; return 0; }
-EOF
-if { (eval echo configure:1299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- 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 menu | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lmenu $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for new_panel in -lpanel""... $ac_c" 1>&6
-echo "configure:1327: checking for new_panel in -lpanel" >&5
-ac_lib_var=`echo panel'_'new_panel | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lpanel $LIBS"
-cat > conftest.$ac_ext <<EOF
-#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
- builtin and then its argument prototype would still apply. */
-char new_panel();
-
-int main() {
-new_panel()
-; return 0; }
-EOF
-if { (eval echo configure:1346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- 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 panel | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lpanel $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-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
-#line 1380 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() {
-int i;
-; return 0; }
-EOF
-if { (eval echo configure:1397: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- 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
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1417: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1432 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1438: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1449 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 1466 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1472: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:1497: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1502 "configure"
-#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: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_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1527 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-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*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 1545 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-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*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 1566 "configure"
-#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); }
-
-EOF
-if { (eval echo configure:1577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:1601: checking whether time.h and sys/time.h may both be included" >&5
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1606 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:1615: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-for ac_hdr in \
-form.h \
-getopt.h \
-locale.h \
-menu.h \
-nc_alloc.h \
-nomacros.h \
-panel.h \
-sys/ioctl.h \
-sys/select.h \
-sys/time.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: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
-#line 1657 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1662: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-for ac_func in \
-getnstr \
-gettimeofday \
-napms \
-resize_term \
-resizeterm \
-strdup \
-use_default_colors \
-vsscanf \
-wresize \
-
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-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
-#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 <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 $ac_func();
-
-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
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-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
- 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
-
-
-echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
-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 test "$cross_compiling" = yes; then
- cf_cv_func_curses_version=unknown
-else
- cat > conftest.$ac_ext <<EOF
-#line 1765 "configure"
-#include "confdefs.h"
-
-#include <curses.h>
-int main()
-{
- char temp[1024];
- sprintf(temp, "%s\n", curses_version());
- exit(0);
-}
-
-EOF
-if { (eval echo configure:1777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- cf_cv_func_curses_version=yes
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- cf_cv_func_curses_version=no
-
-fi
-rm -fr conftest*
-fi
-
-rm -f core
-fi
-
-echo "$ac_t""$cf_cv_func_curses_version" 1>&6
-test "$cf_cv_func_curses_version" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_CURSES_VERSION 1
-EOF
-
-
-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
-#line 1980 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:1995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_sys_time_select=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_sys_time_select=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_sys_time_select" 1>&6
-test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_SYS_TIME_SELECT 1
-EOF
-
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# 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.
-#
-# 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.
-#
-EOF
-# 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
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- 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}'
-
-# 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.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# 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
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -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 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "Makefile ncurses_cfg.h:ncurses_tst.hin" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# 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%@CC@%$CC%g
-s%@CC_G_OPT@%$CC_G_OPT%g
-s%@CC_SHARED_OPTS@%$CC_SHARED_OPTS%g
-s%@DFT_DEP_SUFFIX@%$DFT_DEP_SUFFIX%g
-s%@DFT_OBJ_SUBDIR@%$DFT_OBJ_SUBDIR%g
-s%@DFT_UPR_MODEL@%$DFT_UPR_MODEL%g
-s%@ECHO_LINK@%$ECHO_LINK%g
-s%@EXTRA_LIBS@%$EXTRA_LIBS%g
-s%@LD@%$LD%g
-s%@LDFLAGS_SHARED@%$LDFLAGS_SHARED%g
-s%@LD_MODEL@%$LD_MODEL%g
-s%@LD_SHARED_OPTS@%$LD_SHARED_OPTS%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@LIB_NAME@%$LIB_NAME%g
-s%@LIB_PREFIX@%$LIB_PREFIX%g
-s%@LINK_TESTS@%$LINK_TESTS%g
-s%@LINT@%$LINT%g
-s%@LINT_OPTS@%$LINT_OPTS%g
-s%@LOCAL_LDFLAGS@%$LOCAL_LDFLAGS%g
-s%@MATH_LIB@%$MATH_LIB%g
-s%@PROG_EXT@%$PROG_EXT%g
-s%@TEST_ARGS@%$TEST_ARGS%g
-s%@TEST_DEPS@%$TEST_DEPS%g
-s%@cf_cv_abi_version@%$cf_cv_abi_version%g
-s%@cf_cv_rel_version@%$cf_cv_rel_version%g
-s%@CPP@%$CPP%g
-
-CEOF
-EOF
-
-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_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
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # 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" ;;
- 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%/[^/][^/]*$%%'`
- 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%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- 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" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- 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
-
- 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
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# 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_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'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="ncurses_cfg.h:ncurses_tst.hin"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # 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" ;;
- 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
-
-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'.
-sort confdefs.h >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
-while :
-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
- echo 'CEOF' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-# Run sed to substitute the contents of conftest.frag into conftest.in at the
-# 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
-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
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-# Extra initialization commands, if any
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-# Extra commands, if any
-
- cat >>Makefile <<TEST_EOF
-
-# These rules are generated so we do not rely on suffix rules, which do not
-# work consistently for different make-programs (the '\$(MODEL)/' confuses
-# some, and the '\$x' confuses others).
-TEST_EOF
-LIST=`make echo_tests`
-LAST=`make echo_suffix`
-for n in $LIST
-do
- N=`echo $n | sed -e s/${LAST}\$//`
- cat >>Makefile <<TEST_EOF
-
-\$(MODEL)/$N.o : $N.c \\
- test.priv.h \\
- ncurses_cfg.h
- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
-TEST_EOF
-done
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/ncurses-5.3/test/configure.in b/ncurses-5.3/test/configure.in
deleted file mode 100644
index afaba4f..0000000
--- a/ncurses-5.3/test/configure.in
+++ /dev/null
@@ -1,327 +0,0 @@
-dnl***************************************************************************
-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 "Software"), to deal in the Software without restriction, including *
-dnl without limitation the rights to use, copy, modify, merge, publish, *
-dnl distribute, distribute with modifications, sublicense, and/or sell *
-dnl copies of the Software, and to permit persons to whom the Software is *
-dnl furnished to do so, subject to the following conditions: *
-dnl *
-dnl The above copyright notice and this permission notice shall be included *
-dnl in all copies or substantial portions of the Software. *
-dnl *
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-dnl *
-dnl Except as contained in this notice, the name(s) of the above copyright *
-dnl holders shall not be used in advertising or otherwise to promote the *
-dnl sale, use or other dealings in this Software without prior written *
-dnl authorization. *
-dnl***************************************************************************
-dnl
-dnl Author: Thomas E. Dickey 1996, etc.
-dnl
-dnl $Id$
-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
-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://invisible-island.net/autoconf/ for additional information.
-dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.13.20000819)
-AC_INIT(ncurses.c)
-AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
-
-AC_PROG_CC
-
-dnl Things that we don't need (or must override) if we're not building ncurses
-CC_G_OPT="-g" AC_SUBST(CC_G_OPT)
-CC_SHARED_OPTS=unknown AC_SUBST(CC_SHARED_OPTS)
-CPPFLAGS="$CPPFLAGS" AC_SUBST(CPPFLAGS)
-DFT_DEP_SUFFIX="" AC_SUBST(DFT_DEP_SUFFIX)
-DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'` AC_SUBST(DFT_OBJ_SUBDIR)
-DFT_UPR_MODEL="NORMAL" AC_SUBST(DFT_UPR_MODEL)
-ECHO_LINK='@ echo linking $@ ... ;' AC_SUBST(ECHO_LINK)
-EXTRA_LIBS="" AC_SUBST(EXTRA_LIBS)
-LD="ld" AC_SUBST(LD)
-LDFLAGS_SHARED="" AC_SUBST(LDFLAGS_SHARED)
-LD_MODEL="" AC_SUBST(LD_MODEL)
-LD_SHARED_OPTS="" AC_SUBST(LD_SHARED_OPTS)
-LIBTOOL="" AC_SUBST(LIBTOOL)
-LIB_NAME=curses AC_SUBST(LIB_NAME)
-LIB_PREFIX="-l" AC_SUBST(LIB_PREFIX)
-LINK_TESTS="" AC_SUBST(LINK_TESTS)
-LINT=lint AC_SUBST(LINT)
-LINT_OPTS="" AC_SUBST(LINT_OPTS)
-LOCAL_LDFLAGS="" AC_SUBST(LOCAL_LDFLAGS)
-MATH_LIB="-lm" AC_SUBST(MATH_LIB)
-PROG_EXT="" AC_SUBST(PROG_EXT)
-TEST_ARGS="" AC_SUBST(TEST_ARGS)
-TEST_DEPS="" AC_SUBST(TEST_DEPS)
-cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version)
-cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version)
-
-dnl SunOS 4.x
-AC_ARG_WITH(5lib,
- [ --with-5lib use SunOS sysv-libraries],
- [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)],
- [AC_CHECK_FUNC(initscr,,[
- AC_CHECK_LIB(gpm,Gpm_Open)
- LIB_NAME=ncurses
- for p in $HOME /usr/local /usr
- do
- if test -f $p/include/ncurses/curses.h
- then
- CPPFLAGS="$CPPFLAGS -I$p/include/ncurses"
- test $p != /usr && CPPFLAGS="$CPPFLAGS -I$p/include"
- test $p != /usr && LIBS="-L$p/lib $LIBS"
- break
- elif test $p != /usr
- then
- if test -f $p/include/curses.h
- then
- CPPFLAGS="$CPPFLAGS -I$p/include"
- LIBS="-L$p/lib $LIBS"
- break
- fi
- fi
- done
- ],[test -d /usr/ccs/lib && LIBS="-L/usr/ccs/lib $LIBS"])])
-
-dnl If we've not specified a library, assume we're using sysvr4 libraries
-dnl installed conventionally (e.g., SunOS 5.x - solaris).
-
-dnl Autoconf builds up the $LIBS in reverse order
-
-AC_CHECK_FUNC(initscr,,[
-AC_CHECK_LIB($LIB_NAME,initscr)])
-AC_CHECK_LIB(form,form_driver)
-AC_CHECK_LIB(menu,menu_driver)
-AC_CHECK_LIB(panel,new_panel)
-
-AC_TYPE_SIGNAL
-
-AC_STDC_HEADERS
-AC_HEADER_TIME
-AC_CHECK_HEADERS( \
-form.h \
-getopt.h \
-locale.h \
-menu.h \
-nc_alloc.h \
-nomacros.h \
-panel.h \
-sys/ioctl.h \
-sys/select.h \
-sys/time.h \
-termios.h \
-unistd.h \
-)
-
-AC_CHECK_FUNCS( \
-getnstr \
-gettimeofday \
-napms \
-resize_term \
-resizeterm \
-strdup \
-use_default_colors \
-vsscanf \
-wresize \
-)
-
-dnl ---------------------------------------------------------------------------
-dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
-dnl It's a character string "SVR4", not documented.
-AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
-AC_TRY_RUN([
-#include <curses.h>
-int main()
-{
- char temp[1024];
- sprintf(temp, "%s\n", curses_version());
- exit(0);
-}]
-,[cf_cv_func_curses_version=yes]
-,[cf_cv_func_curses_version=no]
-,[cf_cv_func_curses_version=unknown])
-rm -f core])
-test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
-
-dnl ---------------------------------------------------------------------------
-dnl Check for likely values of acs_map[]:
-AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
-cf_cv_curses_acs_map=unknown
-for name in acs_map _acs_map __acs_map _nc_acs_map
-do
-AC_TRY_LINK([
-#include <curses.h>
-],[
-$name['k'] = ACS_PLUS
-],[cf_cv_curses_acs_map=$name; break])
-done
-])
-
-test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map)
-
-dnl ---------------------------------------------------------------------------
-dnl Check for likely values of wacs_map[]:
-AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
-cf_cv_curses_wacs_map=unknown
-for name in wacs_map _wacs_map __wacs_map _nc_wacs
-do
-AC_TRY_LINK([
-#ifndef _XOPEN_SOURCE_EXTENDED
-#define _XOPEN_SOURCE_EXTENDED
-#endif
-#include <curses.h>
-],[
-$name['k'] = *WACS_PLUS
-],[cf_cv_curses_wacs_map=$name; break])
-done
-])
-
-test "$cf_cv_curses_wacs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_WACS_ARRAY,$cf_cv_curses_wacs_map)
-
-dnl ---------------------------------------------------------------------------
-dnl Make an uppercase version of a variable
-dnl $1=uppercase($2)
-AC_DEFUN([CF_UPPER],
-[
-$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-])dnl
-
-dnl ---------------------------------------------------------------------------
-dnl Check if curses.h defines the given type
-AC_DEFUN([CF_CURSES_TYPE],
-[
-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]
-
-AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
-AC_CACHE_VAL(cf_cv_sys_time_select,[
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-],[],[cf_cv_sys_time_select=yes],
- [cf_cv_sys_time_select=no])
- ])
-AC_MSG_RESULT($cf_cv_sys_time_select)
-test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
-
-dnl ---------------------------------------------------------------------------
-
-AC_OUTPUT(Makefile,[
- cat >>Makefile <<TEST_EOF
-
-# These rules are generated so we do not rely on suffix rules, which do not
-# work consistently for different make-programs (the '\$(MODEL)/' confuses
-# some, and the '\$x' confuses others).
-TEST_EOF
-LIST=`make echo_tests`
-LAST=`make echo_suffix`
-for n in $LIST
-do
- N=`echo $n | sed -e s/${LAST}\$//`
- cat >>Makefile <<TEST_EOF
-
-\$(MODEL)/$N.o : $N.c \\
- test.priv.h \\
- ncurses_cfg.h
- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
-TEST_EOF
-done
-],[],sort)
diff --git a/ncurses-5.3/test/ditto.c b/ncurses-5.3/test/ditto.c
deleted file mode 100644
index ddd7806..0000000
--- a/ncurses-5.3/test/ditto.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1998
- *
- * $Id$
- *
- * The program illustrates how to set up multiple screens from a single
- * program. Invoke the program by specifying another terminal on the same
- * machine by specifying its device, e.g.,
- * ditto /dev/ttyp1
- */
-#include <test.priv.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-typedef struct {
- FILE *input;
- FILE *output;
- SCREEN *screen;
-} DITTO;
-
-static void
-failed(const char *s)
-{
- perror(s);
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr, "usage: ditto [terminal1 ...]\n");
- ExitProgram(EXIT_FAILURE);
-}
-
-static FILE *
-open_tty(char *path)
-{
- 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;
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int j;
- int active_tty = 0;
- DITTO *data;
-
- if (argc <= 1)
- usage();
-
- 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]);
- }
-
- /*
- * 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();
- }
- }
-
- /*
- * Cleanup and exit
- */
- for (j = argc - 1; j >= 0; j--) {
- set_term(data[j].screen);
- endwin();
- }
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/test/dots.c b/ncurses-5.3/test/dots.c
deleted file mode 100644
index 7739de2..0000000
--- a/ncurses-5.3/test/dots.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
- * 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"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 1999
- *
- * $Id$
- *
- * A simple demo of the terminfo interface.
- */
-#include <time.h>
-
-#include <test.priv.h>
-
-#define valid(s) ((s != 0) && s != (char *)-1)
-
-static bool interrupted = FALSE;
-
-static int
-outc(int c)
-{
- if (interrupted) {
- char tmp = c;
- write(STDOUT_FILENO, &tmp, 1);
- } else {
- putc(c, stdout);
- }
- return 0;
-}
-
-static bool
-outs(char *s)
-{
- if (valid(s)) {
- tputs(s, 1, outc);
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-cleanup(void)
-{
- outs(exit_attribute_mode);
- if (!outs(orig_colors))
- outs(orig_pair);
- outs(clear_screen);
- outs(cursor_normal);
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int x, y, z, j, p;
- float r;
- float c;
-
- for (j = SIGHUP; j <= SIGTERM; j++)
- if (signal(j, SIG_IGN) != SIG_IGN)
- signal(j, onsig);
-
- srand(time(0));
- setupterm((char *) 0, 1, (int *) 0);
- outs(clear_screen);
- outs(cursor_invisible);
- if (max_colors > 1) {
- if (!valid(set_a_foreground)
- || !valid(set_a_background)
- || (!valid(orig_colors) && !valid(orig_pair)))
- max_colors = -1;
- }
-
- r = (float) (lines - 4);
- c = (float) (columns - 4);
-
- for (;;) {
- x = (int) (c * ranf()) + 2;
- y = (int) (r * ranf()) + 2;
- p = (ranf() > 0.9) ? '*' : ' ';
-
- tputs(tparm3(cursor_address, y, x), 1, outc);
- if (max_colors > 0) {
- z = (int) (ranf() * max_colors);
- if (ranf() > 0.01) {
- tputs(tparm2(set_a_foreground, z), 1, outc);
- } else {
- tputs(tparm2(set_a_background, z), 1, outc);
- }
- } else if (valid(exit_attribute_mode)
- && valid(enter_reverse_mode)) {
- if (ranf() <= 0.01)
- outs((ranf() > 0.6) ? enter_reverse_mode :
- exit_attribute_mode);
- }
- outc(p);
- fflush(stdout);
- }
-}
diff --git a/ncurses-5.3/test/filter.c b/ncurses-5.3/test/filter.c
deleted file mode 100644
index 1a6f620..0000000
--- a/ncurses-5.3/test/filter.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1998
- *
- * $Id$
- */
-#include <test.priv.h>
-
-/*
- * An example of the 'filter()' function in ncurses, this program prompts
- * for commands and executes them (like a command shell). It illustrates
- * how ncurses can be used to implement programs that are not full-screen.
- *
- * Ncurses differs slightly from SVr4 curses. The latter does not flush its
- * state when exiting program mode, so the attributes on the command lines of
- * this program 'bleed' onto the executed commands. Rather than use the
- * reset_shell_mode() and reset_prog_mode() functions, we could invoke endwin()
- * and refresh(), but that does not work any better.
- */
-
-static int
-new_command(char *buffer, int length, attr_t underline)
-{
- int code;
-
- attron(A_BOLD);
- printw("Command: ");
- attron(underline);
- code = getnstr(buffer, length);
- attroff(underline);
- attroff(A_BOLD);
- printw("\n");
-
- return code;
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- char buffer[80];
- attr_t underline;
-
- filter();
- (void) newterm((char *) 0, stdout, stdin);
- cbreak();
- keypad(stdscr, TRUE);
-
- if (has_colors()) {
- int background = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() != ERR)
- background = -1;
-#endif
- init_pair(1, COLOR_CYAN, background);
- underline = COLOR_PAIR(1);
- } else {
- underline = A_UNDERLINE;
- }
-
- while (new_command(buffer, sizeof(buffer) - 1, underline) != ERR
- && strlen(buffer) != 0) {
- reset_shell_mode();
- printf("\n");
- fflush(stdout);
- system(buffer);
- reset_prog_mode();
- touchwin(stdscr);
- erase();
- refresh();
- }
- printw("done");
- refresh();
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/test/firework.c b/ncurses-5.3/test/firework.c
deleted file mode 100644
index 5c99815..0000000
--- a/ncurses-5.3/test/firework.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * $Id$
- */
-#include <time.h>
-
-#include <test.priv.h>
-
-static int my_bg = COLOR_BLACK;
-
-static void
-cleanup(void)
-{
- curs_set(1);
- endwin();
-}
-
-static RETSIGTYPE
-onsig(int n GCC_UNUSED)
-{
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-showit(void)
-{
- int ch;
- napms(120);
- if ((ch = getch()) != ERR) {
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- erase();
- } else
-#endif
- if (ch == 'q') {
- cleanup();
- ExitProgram(EXIT_SUCCESS);
- } else if (ch == 's') {
- nodelay(stdscr, FALSE);
- } else if (ch == ' ') {
- nodelay(stdscr, TRUE);
- }
- }
-}
-
-static
-int
-get_colour(chtype * bold)
-{
- int attr;
- attr = (rand() % 16) + 1;
-
- *bold = A_NORMAL;
- if (attr > 8) {
- *bold = A_BOLD;
- attr &= 7;
- }
- return (attr);
-}
-
-static
-void
-explode(int row, int col)
-{
- chtype bold;
- erase();
- mvprintw(row, col, "-");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 1, col - 1, " - ");
- mvprintw(row + 0, col - 1, "-+-");
- mvprintw(row + 1, col - 1, " - ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " --- ");
- mvprintw(row - 1, col - 2, "-+++-");
- mvprintw(row + 0, col - 2, "-+#+-");
- mvprintw(row + 1, col - 2, "-+++-");
- mvprintw(row + 2, col - 2, " --- ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " +++ ");
- mvprintw(row - 1, col - 2, "++#++");
- mvprintw(row + 0, col - 2, "+# #+");
- mvprintw(row + 1, col - 2, "++#++");
- mvprintw(row + 2, col - 2, " +++ ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " # ");
- mvprintw(row - 1, col - 2, "## ##");
- mvprintw(row + 0, col - 2, "# #");
- mvprintw(row + 1, col - 2, "## ##");
- mvprintw(row + 2, col - 2, " # ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " # # ");
- mvprintw(row - 1, col - 2, "# #");
- mvprintw(row + 0, col - 2, " ");
- mvprintw(row + 1, col - 2, "# #");
- mvprintw(row + 2, col - 2, " # # ");
- showit();
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int j;
- int start, end, row, diff, flag = 0, direction;
- unsigned seed;
-
- for (j = SIGHUP; j <= SIGTERM; j++)
- if (signal(j, SIG_IGN) != SIG_IGN)
- signal(j, onsig);
-
- initscr();
- noecho();
- cbreak();
- keypad(stdscr, TRUE);
- nodelay(stdscr, TRUE);
-
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- }
- curs_set(0);
-
- seed = time((time_t *) 0);
- srand(seed);
- for (;;) {
- do {
- start = rand() % (COLS - 3);
- end = rand() % (COLS - 3);
- start = (start < 2) ? 2 : start;
- end = (end < 2) ? 2 : end;
- direction = (start > end) ? -1 : 1;
- diff = abs(start - end);
- } while (diff < 2 || diff >= LINES - 2);
- attrset(A_NORMAL);
- for (row = 0; row < diff; row++) {
- mvprintw(LINES - row, start + (row * direction),
- (direction < 0) ? "\\" : "/");
- if (flag++) {
- showit();
- erase();
- flag = 0;
- }
- }
- if (flag++) {
- showit();
- flag = 0;
- }
- seed = time((time_t *) 0);
- srand(seed);
- explode(LINES - row, start + (diff * direction));
- erase();
- showit();
- }
-}
diff --git a/ncurses-5.3/test/firstlast.c b/ncurses-5.3/test/firstlast.c
deleted file mode 100644
index 02c848e..0000000
--- a/ncurses-5.3/test/firstlast.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * This test was written by Alexander V. Lukyanov to demonstrate difference
- * between ncurses 4.1 and SVR4 curses
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-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;
- }
- }
- }
-}
-
-int
-main(
- int argc 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();
-
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/test/gdc.6 b/ncurses-5.3/test/gdc.6
deleted file mode 100644
index 7fa60de..0000000
--- a/ncurses-5.3/test/gdc.6
+++ /dev/null
@@ -1,22 +0,0 @@
-.TH GDC 6
-.SH NAME
-gdc \- grand digital clock (curses)
-.SH SYNOPSIS
-.B gdc
-[-s] [
-.I n
-]
-.SH DESCRIPTION
-.I Gdc
-runs a digital clock made of reverse-video blanks on a curses
-compatible VDU screen. With an optional numeric argument
-.I n
-it stops after
-.I n
-seconds (default never).
-The optional
-.B -s
-flag makes digits scroll as they change. In this curses mode implementation,
-the scrolling option has trouble keeping up.
-.SH AUTHOR
-Amos Shapir, modified for curses by John Lupien.
diff --git a/ncurses-5.3/test/gdc.c b/ncurses-5.3/test/gdc.c
deleted file mode 100644
index f107475..0000000
--- a/ncurses-5.3/test/gdc.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Grand digital clock for curses compatible terminals
- * Usage: gdc [-s] [n] -- run for n seconds (default infinity)
- * Flags: -s: scroll
- *
- * modified 10-18-89 for curses (jrl)
- * 10-18-89 added signal handling
- *
- * $Id$
- */
-
-#include <time.h>
-
-#include <test.priv.h>
-
-#define YBASE 10
-#define XBASE 10
-#define XLENGTH 54
-#define YDEPTH 5
-
-static short disp[11] =
-{
- 075557, 011111, 071747, 071717, 055711,
- 074717, 074757, 071111, 075757, 075717, 002020
-};
-static long older[6], next[6], newer[6], mask;
-
-static int sigtermed = 0;
-static bool redirected = FALSE;
-static bool hascolor = FALSE;
-
-static RETSIGTYPE
-sighndl(int signo)
-{
- signal(signo, sighndl);
- sigtermed = signo;
- if (redirected) {
- endwin();
- ExitProgram(EXIT_FAILURE);
- }
-}
-
-static void
-drawbox(void)
-{
- chtype bottom[XLENGTH + 1];
- int n;
-
- if (hascolor)
- attrset(COLOR_PAIR(3));
-
- mvaddch(YBASE - 1, XBASE - 1, ACS_ULCORNER);
- hline(ACS_HLINE, XLENGTH);
- mvaddch(YBASE - 1, XBASE + XLENGTH, ACS_URCORNER);
-
- mvaddch(YBASE + YDEPTH, XBASE - 1, ACS_LLCORNER);
- mvinchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
- for (n = 0; n < XLENGTH; n++)
- bottom[n] = ACS_HLINE | (bottom[n] & (A_ATTRIBUTES | A_COLOR));
- mvaddchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
- mvaddch(YBASE + YDEPTH, XBASE + XLENGTH, ACS_LRCORNER);
-
- move(YBASE, XBASE - 1);
- vline(ACS_VLINE, YDEPTH);
-
- move(YBASE, XBASE + XLENGTH);
- vline(ACS_VLINE, YDEPTH);
-
- if (hascolor)
- attrset(COLOR_PAIR(2));
-}
-
-static void
-standt(int on)
-{
- if (on) {
- if (hascolor) {
- attron(COLOR_PAIR(1));
- } else {
- attron(A_STANDOUT);
- }
- } else {
- if (hascolor) {
- attron(COLOR_PAIR(2));
- } else {
- attroff(A_STANDOUT);
- }
- }
-}
-
-static void
-set(int t, int n)
-{
- int i, m;
-
- m = 7 << n;
- for (i = 0; i < 5; i++) {
- next[i] |= ((disp[t] >> ((4 - i) * 3)) & 07) << n;
- mask |= (next[i] ^ older[i]) & m;
- }
- if (mask & m)
- mask |= m;
-}
-
-static void
-usage(void)
-{
- static const char *msg[] =
- {
- "Usage: gdc [options] [count]"
- ,""
- ,"Options:"
- ," -n redirect input to /dev/null"
- ," -s scroll each number into place, rather than flipping"
- ,""
- ,"If you specify a count, gdc runs for that number of seconds"
- };
- unsigned j;
- for (j = 0; j < SIZEOF(msg); j++)
- fprintf(stderr, "%s\n", msg[j]);
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- time_t now;
- struct tm *tm;
- long t, a;
- int i, j, s, k;
- int count = 0;
- FILE *ofp = stdout;
- FILE *ifp = stdin;
- bool scrol = FALSE;
-
- setlocale(LC_ALL, "");
-
- signal(SIGINT, sighndl);
- signal(SIGTERM, sighndl);
-
- while ((k = getopt(argc, argv, "sn")) != EOF) {
- switch (k) {
- case 's':
- scrol = TRUE;
- break;
- case 'n':
- ifp = fopen("/dev/null", "r");
- redirected = TRUE;
- break;
- default:
- usage();
- }
- }
- if (optind < argc) {
- count = atoi(argv[optind++]);
- }
- if (optind < argc)
- usage();
-
- if (redirected) {
- char *name = getenv("TERM");
- if (name == 0
- || newterm(name, ofp, ifp) == 0) {
- fprintf(stderr, "cannot open terminal\n");
- ExitProgram(EXIT_FAILURE);
- }
-
- } else {
- initscr();
- }
- cbreak();
- noecho();
- nodelay(stdscr, 1);
- curs_set(0);
-
- hascolor = has_colors();
-
- if (hascolor) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- init_pair(1, COLOR_BLACK, COLOR_RED);
- init_pair(2, COLOR_RED, bg);
- init_pair(3, COLOR_WHITE, bg);
- attrset(COLOR_PAIR(2));
- }
-
- restart:
- for (j = 0; j < 5; j++)
- older[j] = newer[j] = next[j] = 0;
-
- clear();
- drawbox();
-
- do {
- char buf[30];
-
- time(&now);
- tm = localtime(&now);
-
- mask = 0;
- set(tm->tm_sec % 10, 0);
- set(tm->tm_sec / 10, 4);
- set(tm->tm_min % 10, 10);
- set(tm->tm_min / 10, 14);
- set(tm->tm_hour % 10, 20);
- set(tm->tm_hour / 10, 24);
- set(10, 7);
- set(10, 17);
-
- for (k = 0; k < 6; k++) {
- if (scrol) {
- for (i = 0; i < 5; i++)
- newer[i] = (newer[i] & ~mask) | (newer[i + 1] & mask);
- newer[5] = (newer[5] & ~mask) | (next[k] & mask);
- } else
- newer[k] = (newer[k] & ~mask) | (next[k] & mask);
- next[k] = 0;
- for (s = 1; s >= 0; s--) {
- standt(s);
- for (i = 0; i < 6; i++) {
- if ((a = (newer[i] ^ older[i]) & (s ? newer : older)[i])
- != 0) {
- for (j = 0, t = 1 << 26; t; t >>= 1, j++) {
- if (a & t) {
- if (!(a & (t << 1))) {
- move(YBASE + i, XBASE + 2 * j);
- }
- addstr(" ");
- }
- }
- }
- if (!s) {
- older[i] = newer[i];
- }
- }
- if (!s) {
- if (scrol)
- drawbox();
- refresh();
- /*
- * If we're scrolling, space out the refreshes to fake
- * movement. That's 7 frames, or 6 intervals, which would
- * be 166 msec if we spread it out over a second. It looks
- * better (but will well on a slow terminal, e.g., less
- * than 9600bd) to squeeze that into a half-second, and use
- * half of 170 msec to ensure that the program doesn't eat
- * a lot of time when asking what time it is, at the top of
- * this loop -TD
- */
- if (scrol)
- napms(85);
- }
- }
- }
-
- /* this depends on the detailed format of ctime(3) */
- (void) strcpy(buf, ctime(&now));
- (void) strcpy(buf + 10, buf + 19);
- mvaddstr(16, 30, buf);
-
- move(6, 0);
- drawbox();
- refresh();
-
- /*
- * If we're not scrolling, wait 1000 msec (1 sec). Use napms() rather
- * than sleep() because the latter does odd things on some systems,
- * e.g., suspending output as well.
- */
- if (scrol)
- napms(500);
- else
- napms(1000);
-
- /*
- * This is a safe way to check if we're interrupted - making the signal
- * handler set a flag that we can check. Since we're running
- * nodelay(), the wgetch() call returns immediately, and in particular
- * will return an error if interrupted. This works only if we can
- * read from the input, of course.
- */
- switch (wgetch(stdscr)) {
- case 'q':
- count = 1;
- break;
- case 's':
- nodelay(stdscr, FALSE);
- break;
- case ' ':
- nodelay(stdscr, TRUE);
- break;
-#ifdef KEY_RESIZE
- case KEY_RESIZE:
-#endif
- case '?':
- goto restart;
- case ERR:
- if (sigtermed) {
- standend();
- endwin();
- fprintf(stderr, "gdc terminated by signal %d\n", sigtermed);
- ExitProgram(EXIT_FAILURE);
- }
- /* FALLTHRU */
- default:
- continue;
- }
- } while (--count);
- standend();
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/test/hanoi.c b/ncurses-5.3/test/hanoi.c
deleted file mode 100644
index 3901a54..0000000
--- a/ncurses-5.3/test/hanoi.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
- * Name: Towers of Hanoi.
- *
- * Desc:
- * This is a playable copy of towers of hanoi.
- * Its sole purpose is to demonstrate my Amiga Curses package.
- * This program should compile on any system that has Curses.
- * 'hanoi' will give a manual game with 7 playing pieces.
- * 'hanoi n' will give a manual game with n playing pieces.
- * 'hanoi n a' will give an auto solved game with n playing pieces.
- *
- * Author: Simon J Raybould (sie@fulcrum.bt.co.uk).
- * (This version has been slightly modified by the ncurses maintainers.)
- *
- * Date: 05.Nov.90
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-#define NPEGS 3 /* This is not configurable !! */
-#define MINTILES 3
-#define MAXTILES 9
-#define DEFAULTTILES 7
-#define TOPLINE 6
-#define BASELINE 16
-#define STATUSLINE (LINES-3)
-#define LEFTPEG 19
-#define MIDPEG 39
-#define RIGHTPEG 59
-
-#define LENTOIND(x) (((x)-1)/2)
-#define OTHER(a,b) (3-((a)+(b)))
-
-struct Peg {
- size_t Length[MAXTILES];
- int Count;
-};
-
-static struct Peg Pegs[NPEGS];
-static int PegPos[] =
-{LEFTPEG, MIDPEG, RIGHTPEG};
-static int TileColour[] =
-{
- COLOR_GREEN, /* Length 3 */
- COLOR_MAGENTA, /* Length 5 */
- COLOR_RED, /* Length 7 */
- COLOR_BLUE, /* Length 9 */
- COLOR_CYAN, /* Length 11 */
- COLOR_YELLOW, /* Length 13 */
- COLOR_GREEN, /* Length 15 */
- COLOR_MAGENTA, /* Length 17 */
- COLOR_RED, /* Length 19 */
-};
-static int NMoves = 0;
-
-static void InitTiles(int NTiles);
-static void DisplayTiles(void);
-static void MakeMove(int From, int To);
-static void AutoMove(int From, int To, int Num);
-static void Usage(void);
-static int Solved(int NumTiles);
-static int GetMove(int *From, int *To);
-static int InvalidMove(int From, int To);
-
-int
-main(int argc, char **argv)
-{
- int NTiles, FromCol, ToCol;
- bool AutoFlag = 0;
-
- setlocale(LC_ALL, "");
-
- switch (argc) {
- case 1:
- NTiles = DEFAULTTILES;
- break;
- case 2:
- NTiles = atoi(argv[1]);
- if (NTiles > MAXTILES || NTiles < MINTILES) {
- fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 3:
- if (strcmp(argv[2], "a")) {
- Usage();
- ExitProgram(EXIT_FAILURE);
- }
- NTiles = atoi(argv[1]);
- if (NTiles > MAXTILES || NTiles < MINTILES) {
- fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
- ExitProgram(EXIT_FAILURE);
- }
- AutoFlag = TRUE;
- break;
- default:
- Usage();
- ExitProgram(EXIT_FAILURE);
- }
-#ifdef TRACE
- trace(TRACE_MAXIMUM);
-#endif
- initscr();
- if (has_colors()) {
- int i;
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- for (i = 0; i < 9; i++)
- init_pair(i + 1, bg, TileColour[i]);
- }
- cbreak();
- if (LINES < 24) {
- endwin();
- fprintf(stderr, "Min screen length 24 lines\n");
- ExitProgram(EXIT_FAILURE);
- }
- if (AutoFlag) {
- curs_set(0);
- leaveok(stdscr, TRUE); /* Attempt to remove cursor */
- }
- InitTiles(NTiles);
- DisplayTiles();
- if (AutoFlag) {
- do {
- noecho();
- AutoMove(0, 2, NTiles);
- } while (!Solved(NTiles));
- sleep(2);
- } else {
- echo();
- for (;;) {
- if (GetMove(&FromCol, &ToCol))
- break;
- if (InvalidMove(FromCol, ToCol)) {
- mvaddstr(STATUSLINE, 0, "Invalid Move !!");
- refresh();
- beep();
- continue;
- }
- MakeMove(FromCol, ToCol);
- if (Solved(NTiles)) {
- mvprintw(STATUSLINE, 0,
- "Well Done !! You did it in %d moves", NMoves);
- refresh();
- sleep(5);
- break;
- }
- }
- }
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-static int
-InvalidMove(int From, int To)
-{
- if (From >= NPEGS)
- return TRUE;
- if (From < 0)
- return TRUE;
- if (To >= NPEGS)
- return TRUE;
- if (To < 0)
- return TRUE;
- if (From == To)
- return TRUE;
- if (!Pegs[From].Count)
- return TRUE;
- if (Pegs[To].Count &&
- Pegs[From].Length[Pegs[From].Count - 1] >
- Pegs[To].Length[Pegs[To].Count - 1])
- return TRUE;
- return FALSE;
-}
-
-static void
-InitTiles(int NTiles)
-{
- int Size, SlotNo;
-
- for (Size = NTiles * 2 + 1, SlotNo = 0; Size >= 3; Size -= 2)
- Pegs[0].Length[SlotNo++] = Size;
-
- Pegs[0].Count = NTiles;
- Pegs[1].Count = 0;
- Pegs[2].Count = 0;
-}
-
-static void
-DisplayTiles(void)
-{
- int Line, peg, SlotNo;
- char TileBuf[BUFSIZ];
-
- erase();
- mvaddstr(1, 24, "T O W E R S O F H A N O I");
- mvaddstr(3, 34, "SJR 1990");
- mvprintw(19, 5, "Moves : %d", NMoves);
- attrset(A_REVERSE);
- mvaddstr(BASELINE, 8,
- " ");
-
- for (Line = TOPLINE; Line < BASELINE; Line++) {
- mvaddch(Line, LEFTPEG, ' ');
- mvaddch(Line, MIDPEG, ' ');
- mvaddch(Line, RIGHTPEG, ' ');
- }
- mvaddch(BASELINE, LEFTPEG, '1');
- mvaddch(BASELINE, MIDPEG, '2');
- mvaddch(BASELINE, RIGHTPEG, '3');
- attrset(A_NORMAL);
-
- /* Draw tiles */
- for (peg = 0; peg < NPEGS; peg++) {
- for (SlotNo = 0; SlotNo < Pegs[peg].Count; SlotNo++) {
- memset(TileBuf, ' ', Pegs[peg].Length[SlotNo]);
- TileBuf[Pegs[peg].Length[SlotNo]] = '\0';
- if (has_colors())
- attrset(COLOR_PAIR(LENTOIND(Pegs[peg].Length[SlotNo])));
- else
- attrset(A_REVERSE);
- mvaddstr(BASELINE - (SlotNo + 1),
- (int) (PegPos[peg] - Pegs[peg].Length[SlotNo] / 2),
- TileBuf);
- }
- }
- attrset(A_NORMAL);
- refresh();
-}
-
-static int
-GetMove(int *From, int *To)
-{
- mvaddstr(STATUSLINE, 0, "Next move ('q' to quit) from ");
- clrtoeol();
- refresh();
- if ((*From = getch()) == 'q')
- return TRUE;
- *From -= ('0' + 1);
- addstr(" to ");
- clrtoeol();
- refresh();
-
- if ((*To = getch()) == 'q')
- return TRUE;
- *To -= ('0' + 1);
- refresh();
- napms(500);
-
- move(STATUSLINE, 0);
- clrtoeol();
- refresh();
- return FALSE;
-}
-
-static void
-MakeMove(int From, int To)
-{
- Pegs[From].Count--;
- Pegs[To].Length[Pegs[To].Count] = Pegs[From].Length[Pegs[From].Count];
- Pegs[To].Count++;
- NMoves++;
- DisplayTiles();
-}
-
-static void
-AutoMove(int From, int To, int Num)
-{
- if (Num == 1) {
- MakeMove(From, To);
- napms(500);
- return;
- }
- AutoMove(From, OTHER(From, To), Num - 1);
- MakeMove(From, To);
- napms(500);
- AutoMove(OTHER(From, To), To, Num - 1);
-}
-
-static int
-Solved(int NumTiles)
-{
- int i;
-
- for (i = 1; i < NPEGS; i++)
- if (Pegs[i].Count == NumTiles)
- return TRUE;
- return FALSE;
-}
-
-static void
-Usage(void)
-{
- fprintf(stderr, "Usage: hanoi [<No Of Tiles>] [a]\n");
- fprintf(stderr,
- "The 'a' option causes the tower to be solved automatically\n");
-}
diff --git a/ncurses-5.3/test/hashtest.c b/ncurses-5.3/test/hashtest.c
deleted file mode 100644
index aa5a7f0..0000000
--- a/ncurses-5.3/test/hashtest.c
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * hashtest.c -- test hash mapping
- *
- * Generate timing statistics for vertical-motion optimization.
- *
- * $Id$
- */
-
-#ifdef TRACE
-#define Trace(p) _tracef p
-#define USE_TRACE 1
-#else
-#define Trace(p) /* nothing */
-#define USE_TRACE 0
-#endif
-
-#include <ctype.h>
-
-#include <test.priv.h>
-
-#define LO_CHAR ' '
-#define HI_CHAR '~'
-
-static bool continuous = FALSE;
-static bool reverse_loops = FALSE;
-static bool single_step = FALSE;
-static bool extend_corner = FALSE;
-static int foot_lines = 0;
-static int head_lines = 0;
-
-static void
-cleanup(void)
-{
- move(LINES - 1, 0);
- clrtoeol();
- refresh();
- endwin();
-}
-
-static RETSIGTYPE
-finish(int sig GCC_UNUSED)
-{
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-genlines(int base)
-{
- int i, j;
-
-#if USE_TRACE
- if (base == 'a')
- Trace(("Resetting screen"));
- else
- Trace(("Painting `%c' screen", base));
-#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();
-}
-
-static void
-one_cycle(int ch)
-{
- if (continuous) {
- genlines(ch);
- } else if (ch != 'a') {
- genlines('a');
- genlines(ch);
- }
-}
-
-static void
-run_test(bool optimized GCC_UNUSED)
-{
- 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 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;
- }
-#endif
-
- 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 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 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
- trace(TRACE_TIMES);
-#endif
-
- (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);
-
- while (test_loops-- > 0) {
- if (test_normal)
- run_test(FALSE);
- if (test_optimize)
- run_test(TRUE);
- }
-
- cleanup(); /* we're done */
- ExitProgram(EXIT_SUCCESS);
-}
-/* hashtest.c ends here */
diff --git a/ncurses-5.3/test/keynames.c b/ncurses-5.3/test/keynames.c
deleted file mode 100644
index 7ab38ad..0000000
--- a/ncurses-5.3/test/keynames.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * $Id$
- */
-
-#include <test.priv.h>
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- 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);
-}
diff --git a/ncurses-5.3/test/knight.c b/ncurses-5.3/test/knight.c
deleted file mode 100644
index 974c6b5..0000000
--- a/ncurses-5.3/test/knight.c
+++ /dev/null
@@ -1,702 +0,0 @@
-/*
- * Knight's Tour - a brain game
- *
- * The original of this game was anonymous. It had an unbelievably bogus
- * interface, you actually had to enter square coordinates! Redesign by
- * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995. Mouse support
- * added September 20th 1995.
- *
- * $Id$
- */
-
-#include <ctype.h>
-
-#include <test.priv.h>
-
-/* board size */
-#define BDEPTH 8
-#define BWIDTH 8
-
-/* where to start the instructions */
-#define INSTRY 2
-#define INSTRX 35
-
-/* corner of board */
-#define BOARDY 2
-#define BOARDX 0
-
-/* notification line */
-#define NOTIFYY 21
-
-/* virtual color values */
-#define TRAIL_COLOR 1
-#define PLUS_COLOR 2
-#define MINUS_COLOR 3
-
-#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)
-
-typedef struct {
- short x, y;
-} cell;
-
-static WINDOW *boardwin; /* the board window */
-static WINDOW *helpwin; /* the help window */
-static WINDOW *msgwin; /* the message window */
-static cell history[BDEPTH * BWIDTH + 1]; /* choice history */
-static chtype minus = '-'; /* possible-move character */
-static chtype oldch;
-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
-init_program(void)
-{
- setlocale(LC_ALL, "");
-
- srand((unsigned) getpid());
- initscr();
- cbreak(); /* immediate char return */
- noecho(); /* no immediate echo */
- boardwin = newwin(BDEPTH * 2 + 1, BWIDTH * 4 + 1, BOARDY, BOARDX);
- helpwin = newwin(0, 0, INSTRY, INSTRX);
- msgwin = newwin(1, INSTRX - 1, NOTIFYY, 0);
- scrollok(msgwin, TRUE);
- keypad(boardwin, TRUE);
-
- if (has_colors()) {
- int bg = COLOR_BLACK;
-
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
-
- (void) init_pair(TRAIL_COLOR, COLOR_CYAN, bg);
- (void) init_pair(PLUS_COLOR, COLOR_RED, bg);
- (void) init_pair(MINUS_COLOR, COLOR_GREEN, bg);
-
- trail |= COLOR_PAIR(TRAIL_COLOR);
- plus |= COLOR_PAIR(PLUS_COLOR);
- minus |= COLOR_PAIR(MINUS_COLOR);
- }
-#ifdef NCURSES_MOUSE_VERSION
- (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
-#endif /* NCURSES_MOUSE_VERSION */
-
- oldch = minus;
-}
-
-static void
-help1(void)
-/* game explanation -- initial help screen */
-{
- (void) waddstr(helpwin, "Knight's move is a solitaire puzzle. Your\n");
- (void) waddstr(helpwin, "objective is to visit each square of the \n");
- (void) waddstr(helpwin, "chessboard exactly once by making knight's\n");
- (void) waddstr(helpwin, "moves (one square right or left followed \n");
- (void) waddstr(helpwin, "by two squares up or down, or two squares \n");
- (void) waddstr(helpwin, "right or left followed by one square up or\n");
- (void) waddstr(helpwin, "down). You may start anywhere.\n\n");
-
- (void) waddstr(helpwin, "Use arrow keys to move the cursor around.\n");
- (void) waddstr(helpwin, "When you want to move your knight to the \n");
- (void) waddstr(helpwin, "cursor location, press <space> or Enter.\n");
- (void) waddstr(helpwin, "Illegal moves will be rejected with an \n");
- (void) waddstr(helpwin, "audible beep.\n\n");
- (void) waddstr(helpwin, "The program will detect if you solve the\n");
- (void) waddstr(helpwin, "puzzle; also inform you when you run out\n");
- (void) waddstr(helpwin, "of legal moves.\n\n");
-
- (void) mvwaddstr(helpwin, NOTIFYY - INSTRY, 0,
- "Press `?' to go to keystroke help.");
-}
-
-static void
-help2(void)
-/* keystroke help screen */
-{
- (void) waddstr(helpwin, "Possible moves are shown with `-'.\n\n");
-
- (void) waddstr(helpwin, "You can move around with the arrow keys or\n");
- (void) waddstr(helpwin, "with the rogue/hack movement keys. Other\n");
- (void) waddstr(helpwin, "commands allow you to undo moves or redraw.\n");
- (void) waddstr(helpwin, "Your mouse may work; try left-button to\n");
- (void) waddstr(helpwin, "move to the square under the pointer.\n\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, "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, "center key. Use F/B to review the path.\n");
-
- (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 */
- 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 */
- werase(boardwin);
- werase(helpwin);
- werase(msgwin);
- dosquares();
- help1();
- wnoutrefresh(stdscr);
- wnoutrefresh(helpwin);
- wnoutrefresh(msgwin);
- wnoutrefresh(boardwin);
- doupdate();
-
- movecount = 0;
- for (i = 0; i < BDEPTH; i++) {
- for (j = 0; j < BWIDTH; j++) {
- board[i][j] = FALSE;
- unmarkcell(i, j);
- }
- }
- memset(history, 0, sizeof(history));
- history[0].y = history[0].x = -1;
- history[1].y = history[1].x = -1;
- lastrow = lastcol = -2;
- movecount = 1;
- trialcount = 1;
- keyhelp = FALSE;
- show_help(&keyhelp);
-
- for (;;) {
- if (rw != lastrow || col != lastcol) {
- if (lastrow >= 0 && lastcol >= 0) {
- cellmove(lastrow, lastcol);
- if (board[lastrow][lastcol])
- waddch(boardwin, trail);
- else
- waddch(boardwin, oldch);
- }
-
- cellmove(rw, col);
- oldch = winch(boardwin);
-
- lastrow = rw;
- lastcol = col;
- }
- cellmove(rw, col);
- waddch(boardwin, plus);
- cellmove(rw, col);
-
- wrefresh(msgwin);
-
- switch (wgetch(boardwin)) {
- case 'k':
- case '8':
- case KEY_UP:
- ny = rw + BDEPTH - 1;
- nx = col;
- break;
- case 'j':
- case '2':
- case KEY_DOWN:
- ny = rw + 1;
- nx = col;
- break;
- case 'h':
- case '4':
- case KEY_LEFT:
- ny = rw;
- nx = col + BWIDTH - 1;
- break;
- case 'l':
- case '6':
- case KEY_RIGHT:
- ny = rw;
- nx = col + 1;
- break;
- case 'y':
- case '7':
- case KEY_A1:
- ny = rw + BDEPTH - 1;
- nx = col + BWIDTH - 1;
- break;
- case 'b':
- case '1':
- case KEY_C1:
- ny = rw + 1;
- nx = col + BWIDTH - 1;
- break;
- case 'u':
- case '9':
- case KEY_A3:
- ny = rw + BDEPTH - 1;
- nx = col + 1;
- break;
- case 'n':
- case '3':
- case KEY_C3:
- ny = rw + 1;
- nx = col + 1;
- break;
-
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT myevent;
-
- getmouse(&myevent);
- if (myevent.y >= CY(0) && myevent.y <= CY(BDEPTH)
- && myevent.x >= CX(0) && myevent.x <= CX(BWIDTH)) {
- nx = CXINV(myevent.x);
- ny = CYINV(myevent.y);
- ungetch('\n');
- break;
- } else {
- beep();
- continue;
- }
- }
-#endif /* NCURSES_MOUSE_VERSION */
-
- case KEY_B2:
- case '\n':
- case ' ':
- review = 0;
- if (evalmove(rw, col)) {
- drawmove(trail,
- history[movecount - 1].y,
- history[movecount - 1].x,
- rw, col);
- history[movecount].y = rw;
- history[movecount].x = col;
- movecount++;
- trialcount++;
-
- if (!chkmoves(rw, col)) {
- if (completed() < 0) {
- waddstr(msgwin, "\nYou won.");
- } else {
- waddstr(msgwin,
- "\nNo further moves are possible.");
- }
- }
- } else {
- beep();
- }
- break;
-
- case KEY_UNDO:
- case KEY_BACKSPACE:
- case '\b':
- 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;
-
- if (!board[rw][col]) {
- cellmove(rw, col);
- waddch(boardwin, ' ');
- }
-
- 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 */
- cellmove(lastrow, lastcol);
- oldch = winch(boardwin);
- }
- 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 '?':
- show_help(&keyhelp);
- break;
-
- default:
- beep();
- break;
- }
-
- col = nx % BWIDTH;
- rw = ny % BDEPTH;
- }
-
- dropout:
- if ((count = completed()) < 0)
- 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');
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- init_program();
-
- play();
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* knight.c ends here */
diff --git a/ncurses-5.3/test/lrtest.c b/ncurses-5.3/test/lrtest.c
deleted file mode 100644
index f47694d..0000000
--- a/ncurses-5.3/test/lrtest.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Test lower-right-hand corner access
- *
- * 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.
- *
- * $Id$
- */
-
-#include <test.priv.h>
-
-typedef struct {
- int y, x, mode, dir, inc;
- chtype value;
-} MARK;
-
-/*
- * Make a couple of markers go 'round the border to demonstrate that we can
- * really write to all positions properly.
- */
-static void
-show(MARK * m)
-{
- mvaddch(m->y, m->x, m->value);
- if (m->mode == 0) { /* along the x-direction */
- m->x += m->inc;
- if (m->x >= COLS) {
- m->x = COLS - 1;
- m->inc = -m->dir * m->inc;
- m->y += m->inc;
- m->mode = 1;
- } else if (m->x < 0) {
- m->x = 0;
- m->inc = -m->dir * m->inc;
- m->y += m->inc;
- m->mode = 1;
- }
- } else { /* along the y-direction */
- m->y += m->inc;
- if (m->y >= LINES) {
- m->y = LINES - 1;
- m->inc = m->dir * m->inc;
- m->x += m->inc;
- m->mode = 0;
- } else if (m->y < 0) {
- m->y = 0;
- m->inc = m->dir * m->inc;
- m->x += m->inc;
- m->mode = 0;
- }
- }
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- static MARK marks[] =
- {
- {0, 0, 0, -1, 1, '+' | A_BOLD},
- {0, 0, 1, 1, 2, 'X'},
- {0, 0, 1, -1, 3, 'Y'},
- {0, 8, 0, -1, 1, '+' | A_BOLD},
- {0, 9, 0, -1, 1, '+' | A_BOLD},
- {1, 0, 1, 1, 1, '*' | A_REVERSE},
- {2, 0, 1, 1, 1, '*' | A_REVERSE}
- };
-
- setlocale(LC_ALL, "");
-
- initscr();
- noecho();
- cbreak();
- nodelay(stdscr, TRUE);
- curs_set(0);
-
-#ifdef KEY_RESIZE
- keypad(stdscr, TRUE);
- restart:
-#endif
- move(LINES / 2 - 1, 4);
- if (!(has_ic()
- /* see PutCharLR() */
- || 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");
- } else {
- addstr("This is a test of access to the lower right corner.\n");
- move(LINES / 2, 4);
- addstr("If the top of the box is missing, the test failed.\n");
- move(LINES / 2 + 1, 4);
- addstr("Please report this (with a copy of your terminfo entry).\n");
- move(LINES / 2 + 2, 4);
- addstr("to the ncurses maintainers, at bug-ncurses@gnu.org.\n");
- }
-
- for (;;) {
- int ch;
- unsigned n;
-
- box(stdscr, 0, 0);
- for (n = 0; n < SIZEOF(marks); n++) {
- show(&marks[n]);
- }
-
- if ((ch = getch()) > 0) {
- if (ch == 'q')
- break;
- else if (ch == 's')
- 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) {
- 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();
- wrefresh(curscr);
- goto restart;
- }
-#endif
- }
- napms(50);
- refresh();
- }
-
- curs_set(1);
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* lrtest.c ends here */
diff --git a/ncurses-5.3/test/modules b/ncurses-5.3/test/modules
deleted file mode 100644
index 8e61243..0000000
--- a/ncurses-5.3/test/modules
+++ /dev/null
@@ -1,59 +0,0 @@
-# Test-Program modules
-# $Id$
-##############################################################################
-# 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 "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# 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> 1997
-#
-
-@ base
-blue progs $(srcdir) ../include/term.h
-bs progs $(srcdir)
-cardfile progs $(srcdir) ../include/panel.h ../include/menu.h ../include/form.h
-ditto progs $(srcdir)
-dots progs $(srcdir) ../include/term.h
-filter progs $(srcdir)
-firework progs $(srcdir) ../include/term.h
-firstlast progs $(srcdir)
-gdc progs $(srcdir)
-hanoi progs $(srcdir)
-hashtest progs $(srcdir)
-keynames progs $(srcdir)
-knight progs $(srcdir)
-lrtest progs $(srcdir)
-ncurses progs $(srcdir) ../include/panel.h ../include/menu.h ../include/form.h
-newdemo progs $(srcdir)
-rain progs $(srcdir) ../include/term.h
-railroad progs $(srcdir) ../include/termcap.h
-tclock progs $(srcdir)
-testaddch progs $(srcdir)
-testcurs progs $(srcdir)
-testscanw progs $(srcdir)
-view progs $(srcdir)
-worm progs $(srcdir)
-xmas progs $(srcdir)
diff --git a/ncurses-5.3/test/ncurses.c b/ncurses-5.3/test/ncurses.c
deleted file mode 100644
index 64e7d68..0000000
--- a/ncurses-5.3/test/ncurses.c
+++ /dev/null
@@ -1,4333 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-/****************************************************************************
-
-NAME
- ncurses.c --- ncurses library exerciser
-
-SYNOPSIS
- ncurses
-
-DESCRIPTION
- An interactive test module for the ncurses library.
-
-AUTHOR
- Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
- Thomas E. Dickey (beginning revision 1.27 in 1996).
-
-$Id$
-
-***************************************************************************/
-
-#include <stdio.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include <test.priv.h>
-
-#if HAVE_GETTIMEOFDAY
-#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
-
-#if HAVE_PANEL_H && HAVE_LIBPANEL
-#define USE_LIBPANEL 1
-#include <panel.h>
-#else
-#define USE_LIBPANEL 0
-#endif
-
-#if HAVE_MENU_H && HAVE_LIBMENU
-#define USE_LIBMENU 1
-#include <menu.h>
-#else
-#define USE_LIBMENU 0
-#endif
-
-#if HAVE_FORM_H && HAVE_LIBFORM
-#define USE_LIBFORM 1
-#include <form.h>
-#else
-#define USE_LIBFORM 0
-#endif
-
-#ifdef NCURSES_VERSION
-
-#ifdef TRACE
-static int save_trace = TRACE_ORDINARY | TRACE_CALLS;
-extern int _nc_tracing;
-#endif
-
-#else
-
-#define mmask_t chtype /* not specified in XSI */
-
-#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)
-#ifdef CTRL
-#undef CTRL
-#endif
-#define CTRL(x) ((x) & 0x1f)
-
-#define QUIT CTRL('Q')
-#define ESCAPE CTRL('[')
-#define BLANK ' ' /* this is the background character */
-
-#undef max_colors
-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.
- */
-static void
-do_h_line(int y, int x, chtype c, int to)
-{
- if ((to) > (x))
- mvhline(y, x, c, (to) - (x));
-}
-
-static void
-do_v_line(int y, int x, chtype c, int to)
-{
- if ((to) > (y))
- mvvline(y, x, c, (to) - (y));
-}
-
-/* Common function to allow ^T to toggle trace-mode in the middle of a test
- * so that trace-files can be made smaller.
- */
-static int
-wGetchar(WINDOW *win)
-{
- int c;
-#ifdef TRACE
- while ((c = wgetch(win)) == CTRL('T')) {
- if (_nc_tracing) {
- save_trace = _nc_tracing;
- _tracef("TOGGLE-TRACING OFF");
- _nc_tracing = 0;
- } else {
- _nc_tracing = save_trace;
- }
- trace(_nc_tracing);
- if (_nc_tracing)
- _tracef("TOGGLE-TRACING ON");
- }
-#else
- c = wgetch(win);
-#endif
- return c;
-}
-#define Getchar() wGetchar(stdscr)
-
-#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)
-{
- move(LINES - 1, 0);
- addstr("Press any key to continue... ");
- (void) Getchar();
-}
-
-static void
-Cannot(const char *what)
-{
- printw("\nThis %s terminal %s\n\n", getenv("TERM"), what);
- Pause();
-}
-
-static void
-ShellOut(bool message)
-{
- if (message)
- addstr("Shelling out...");
- def_prog_mode();
- endwin();
- system("sh");
- if (message)
- addstr("returned from shellout.\n");
- refresh();
-}
-
-#ifdef NCURSES_MOUSE_VERSION
-static const char *
-mouse_decode(MEVENT const *ep)
-{
- 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);
-
-#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");
-#undef SHOW
-
- if (buf[strlen(buf) - 1] == ' ')
- buf[strlen(buf) - 2] = '\0';
- (void) strcat(buf, "}");
- return (buf);
-}
-#endif /* NCURSES_MOUSE_VERSION */
-
-/****************************************************************************
- *
- * Character input test
- *
- ****************************************************************************/
-
-static void
-setup_getch(WINDOW *win, bool flags[])
-{
- 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;
- unsigned chk = ((SIZEOF(help) + 1) / 2);
- unsigned n;
-
- 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);
-}
-
-static void
-wgetch_wrap(WINDOW *win, int first_y)
-{
- int last_y = getmaxy(win) - 1;
- int y = getcury(win) + 1;
-
- 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;
-
-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);
-
- for (;;) {
- 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);
- 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) {
-#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))
- (void) wprintw(win, "M-%c", c2);
- else
- (void) wprintw(win, "M-%s", unctrl(c2));
- waddstr(win, " (high-half character)");
- } else {
- if (isprint(c))
- (void) wprintw(win, "%c (ASCII printable character)", c);
- else
- (void) wprintw(win, "%s (ASCII control character)",
- unctrl(c));
- }
- wgetch_wrap(win, first_y);
- }
- }
-
- wtimeout(win, -1);
-}
-
-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
- 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 const char *string = "abcde fghij klmno pqrst uvwxy z";
- int ncv = tigetnum("ncv");
-
- mvprintw(row, 8, "%s mode:", name);
- mvprintw(row, 24, "|");
- if (skip)
- printw("%*s", skip, " ");
- attrset(attr);
- /*
- * If we're to write a string in the alternate character set, it is not
- * sufficient to just set A_ALTCHARSET. We have to perform the mapping
- * that corresponds. This is not needed for vt100-compatible devices
- * because the acs_map[] is 1:1, but for PC-style devices such as Linux
- * console, the acs_map[] is scattered about the range.
- *
- * The addch/addstr functions do not themselves do this mapping, since it
- * is possible to turn off the A_ALTCHARSET flag for the characters which
- * are added, and it would be an unexpected result to have the mapped
- * characters visible on the screen.
- *
- * This example works because the indices into acs_map[] are mostly from
- * the lowercase characters.
- */
- if (attr & A_ALTCHARSET) {
- const char *s = string;
- while (*s) {
- int ch = *s++;
-#ifdef CURSES_ACS_ARRAY
- if ((ch = CURSES_ACS_ARRAY[ch]) == 0)
- ch = ' ';
-#endif
- addch(ch);
- }
- } else {
- addstr(string);
- }
- attroff(attr);
- if (skip)
- printw("%*s", skip, " ");
- printw("|");
- if (attr != A_NORMAL) {
- if (!(termattrs() & attr)) {
- printw(" (N/A)");
- } else if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
- static const chtype table[] =
- {
- A_STANDOUT,
- A_UNDERLINE,
- A_REVERSE,
- A_BLINK,
- A_DIM,
- A_BOLD,
- A_INVIS,
- A_PROTECT,
- A_ALTCHARSET
- };
- unsigned n;
- bool found = FALSE;
- for (n = 0; n < SIZEOF(table); n++) {
- if ((table[n] & attr) != 0
- && ((1 << n) & ncv) != 0) {
- found = TRUE;
- break;
- }
- }
- if (found)
- printw(" (NCV)");
- }
- }
- return row + 2;
-}
-
-static bool
-attr_getc(int *skip, int *fg, int *bg, int *ac)
-{
- int ch = Getchar();
-
- if (isdigit(ch)) {
- *skip = (ch - '0');
- } else if (ch == CTRL('L')) {
- touchwin(stdscr);
- touchwin(curscr);
- } else if (has_colors()) {
- switch (ch) {
- case 'a':
- *ac = 0;
- break;
- case 'A':
- *ac = A_ALTCHARSET;
- break;
- case 'f':
- *fg = (*fg + 1);
- break;
- case 'F':
- *fg = (*fg - 1);
- break;
- case 'b':
- *bg = (*bg + 1);
- break;
- case 'B':
- *bg = (*bg - 1);
- break;
- default:
- return FALSE;
- }
- if (*fg >= max_colors)
- *fg = 0;
- if (*fg < 0)
- *fg = max_colors - 1;
- if (*bg >= max_colors)
- *bg = 0;
- if (*bg < 0)
- *bg = max_colors - 1;
- } else {
- switch (ch) {
- case 'a':
- *ac = 0;
- break;
- case 'A':
- *ac = A_ALTCHARSET;
- break;
- default:
- return FALSE;
- }
- }
- return TRUE;
-}
-
-static void
-attr_test(void)
-/* test text attributes */
-{
- int n;
- int skip = tigetnum("xmc");
- int fg = COLOR_BLACK; /* color pair 0 is special */
- int bg = COLOR_BLACK;
- int ac = 0;
- bool *pairs = (bool *) calloc(max_pairs, sizeof(bool));
- pairs[0] = TRUE;
-
- if (skip < 0)
- skip = 0;
-
- n = skip; /* make it easy */
-
- do {
- int row = 2;
- int normal = A_NORMAL | BLANK;
-
- if (has_colors()) {
- int pair = (fg * max_colors) + bg;
- if (!pairs[pair]) {
- init_pair(pair, fg, bg);
- pairs[pair] = TRUE;
- }
- normal |= COLOR_PAIR(pair);
- }
- bkgd(normal);
- bkgdset(normal);
- erase();
-
- box(stdscr, 0, 0);
- mvaddstr(0, 20, "Character attribute test display");
-
- row = show_attr(row, n, ac | A_STANDOUT, "STANDOUT");
- row = show_attr(row, n, ac | A_REVERSE, "REVERSE");
- row = show_attr(row, n, ac | A_BOLD, "BOLD");
- row = show_attr(row, n, ac | A_UNDERLINE, "UNDERLINE");
- row = show_attr(row, n, ac | A_DIM, "DIM");
- row = show_attr(row, n, ac | A_BLINK, "BLINK");
- row = show_attr(row, n, ac | A_PROTECT, "PROTECT");
- row = show_attr(row, n, ac | A_INVIS, "INVISIBLE");
- row = show_attr(row, n, ac | A_NORMAL, "NORMAL");
-
- mvprintw(row, 8,
- "This terminal does %shave the magic-cookie glitch",
- tigetnum("xmc") > -1 ? "" : "not ");
- mvprintw(row + 1, 8,
- "Enter a digit to set gaps on each side of displayed attributes");
- mvprintw(row + 2, 8,
- "^L = repaint");
- if (has_colors())
- printw(". f/F/b/F toggle colors (now %d/%d), a/A altcharset (%d)",
- fg, bg, ac != 0);
- else
- printw(". a/A altcharset (%d)", ac != 0);
-
- refresh();
- } while (attr_getc(&n, &fg, &bg, &ac));
-
- free((char *) pairs);
- bkgdset(A_NORMAL | BLANK);
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Color support tests
- *
- ****************************************************************************/
-
-static NCURSES_CONST char *the_color_names[] =
-{
- "black",
- "red",
- "green",
- "yellow",
- "blue",
- "magenta",
- "cyan",
- "white",
- "BLACK",
- "RED",
- "GREEN",
- "YELLOW",
- "BLUE",
- "MAGENTA",
- "CYAN",
- "WHITE"
-};
-
-static void
-show_color_name(int y, int x, int color)
-{
- if (max_colors > 8)
- mvprintw(y, x, "%02d ", color);
- else
- mvaddstr(y, x, the_color_names[color]);
-}
-
-static void
-color_test(void)
-/* generate a color test pattern */
-{
- int i;
- int base, top, width;
- NCURSES_CONST char *hello;
-
- refresh();
- (void) printw("There are %d color pairs\n", COLOR_PAIRS);
-
- width = (max_colors > 8) ? 4 : 8;
- hello = (max_colors > 8) ? "Test" : "Hello";
-
- for (base = 0; base < 2; base++) {
- top = (max_colors > 8) ? 0 : base * (max_colors + 3);
- clrtobot();
- (void) mvprintw(top + 1, 0,
- "%dx%d matrix of foreground/background colors, bright *%s*\n",
- max_colors, max_colors,
- base ? "on" : "off");
- for (i = 0; i < max_colors; i++)
- show_color_name(top + 2, (i + 1) * width, i);
- for (i = 0; i < max_colors; i++)
- show_color_name(top + 3 + i, 0, i);
- for (i = 1; i < max_pairs; i++) {
- init_pair(i, i % max_colors, i / max_colors);
- attron((attr_t) COLOR_PAIR(i));
- if (base)
- attron((attr_t) A_BOLD);
- mvaddstr(top + 3 + (i / max_colors), (i % max_colors + 1) *
- width, hello);
- attrset(A_NORMAL);
- }
- if ((max_colors > 8) || base)
- Pause();
- }
-
- erase();
- endwin();
-}
-
-static void
-change_color(int current, int field, int value, int usebase)
-{
- short red, green, blue;
-
- if (usebase)
- color_content(current, &red, &green, &blue);
- else
- red = green = blue = 0;
-
- switch (field) {
- case 0:
- red += value;
- break;
- case 1:
- green += value;
- break;
- case 2:
- blue += value;
- break;
- }
-
- if (init_color(current, red, green, blue) == ERR)
- beep();
-}
-
-static void
-color_edit(void)
-/* display the color test pattern, without trying to edit colors */
-{
- int i, this_c = 0, value = 0, current = 0, field = 0;
- int last_c;
-
- refresh();
-
- for (i = 0; i < max_colors; i++)
- init_pair(i, COLOR_WHITE, i);
-
- mvprintw(LINES - 2, 0, "Number: %d", value);
-
- do {
- short red, green, blue;
-
- attron(A_BOLD);
- mvaddstr(0, 20, "Color RGB Value Editing");
- attroff(A_BOLD);
-
- for (i = 0; i < max_colors; i++) {
- mvprintw(2 + i, 0, "%c %-8s:",
- (i == current ? '>' : ' '),
- (i < (int) SIZEOF(the_color_names)
- ? the_color_names[i] : ""));
- attrset(COLOR_PAIR(i));
- addstr(" ");
- attrset(A_NORMAL);
-
- /*
- * Note: this refresh should *not* be necessary! It works around
- * a bug in attribute handling that apparently causes the A_NORMAL
- * attribute sets to interfere with the actual emission of the
- * color setting somehow. This needs to be fixed.
- */
- refresh();
-
- color_content(i, &red, &green, &blue);
- addstr(" R = ");
- if (current == i && field == 0)
- attron(A_STANDOUT);
- printw("%04d", red);
- if (current == i && field == 0)
- attrset(A_NORMAL);
- addstr(", G = ");
- if (current == i && field == 1)
- attron(A_STANDOUT);
- printw("%04d", green);
- if (current == i && field == 1)
- attrset(A_NORMAL);
- addstr(", B = ");
- if (current == i && field == 2)
- attron(A_STANDOUT);
- printw("%04d", blue);
- if (current == i && field == 2)
- attrset(A_NORMAL);
- attrset(A_NORMAL);
- addstr(")");
- }
-
- mvaddstr(max_colors + 3, 0,
- "Use up/down to select a color, left/right to change fields.");
- mvaddstr(max_colors + 4, 0,
- "Modify field by typing nnn=, nnn-, or nnn+. ? for help.");
-
- move(2 + current, 0);
-
- last_c = this_c;
- this_c = Getchar();
- if (isdigit(this_c) && !isdigit(last_c))
- value = 0;
-
- switch (this_c) {
- case KEY_UP:
- current = (current == 0 ? (max_colors - 1) : current - 1);
- break;
-
- case KEY_DOWN:
- current = (current == (max_colors - 1) ? 0 : current + 1);
- break;
-
- case KEY_RIGHT:
- field = (field == 2 ? 0 : field + 1);
- break;
-
- case KEY_LEFT:
- field = (field == 0 ? 2 : field - 1);
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- value = value * 10 + (this_c - '0');
- break;
-
- case '+':
- change_color(current, field, value, 1);
- break;
-
- case '-':
- change_color(current, field, -value, 1);
- break;
-
- case '=':
- change_color(current, field, value, 0);
- break;
-
- case '?':
- 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();
- break;
-
- case 'x':
- case 'q':
- break;
-
- default:
- beep();
- break;
- }
- mvprintw(LINES - 2, 0, "Number: %d", value);
- clrtoeol();
- } while
- (this_c != 'x' && this_c != 'q');
-
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Soft-key label test
- *
- ****************************************************************************/
-
-static void
-slk_test(void)
-/* exercise the soft keys */
-{
- int c, fmt = 1;
- char buf[9];
-
- c = CTRL('l');
- do {
- move(0, 0);
- switch (c) {
- case CTRL('l'):
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Soft Key Exerciser");
- attroff(A_BOLD);
-
- move(2, 0);
- P("Available commands are:");
- P("");
- P("^L -- refresh screen");
- P("a -- activate or restore soft keys");
- P("d -- disable soft keys");
- P("c -- set centered format for labels");
- P("l -- set left-justified format for labels");
- P("r -- set right-justified format for labels");
- P("[12345678] -- set label; labels are numbered 1 through 8");
- P("e -- erase stdscr (should not erase labels)");
- P("s -- test scrolling of shortened screen");
- P("x, q -- return to main menu");
- P("");
- P("Note: if activating the soft keys causes your terminal to");
- P("scroll up one line, your terminal auto-scrolls when anything");
- P("is written to the last screen position. The ncurses code");
- P("does not yet handle this gracefully.");
- refresh();
- /* fall through */
-
- case 'a':
- slk_restore();
- break;
-
- case 'e':
- wclear(stdscr);
- break;
-
- case 's':
- mvprintw(20, 0, "Press Q to stop the scrolling-test: ");
- while ((c = Getchar()) != 'Q' && (c != ERR))
- addch((chtype) c);
- break;
-
- case 'd':
- slk_clear();
- break;
-
- case 'l':
- fmt = 0;
- break;
-
- case 'c':
- fmt = 1;
- break;
-
- case 'r':
- fmt = 2;
- break;
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- (void) mvaddstr(20, 0, "Please enter the label value: ");
- echo();
- wgetnstr(stdscr, buf, 8);
- noecho();
- slk_set((c - '0'), buf, fmt);
- slk_refresh();
- move(20, 0);
- clrtoeol();
- break;
-
- case 'x':
- case 'q':
- goto done;
-
- default:
- beep();
- }
- } while
- ((c = Getchar()) != EOF);
-
- done:
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Alternate character-set stuff
- *
- ****************************************************************************/
-
-/* ISO 6429: codes 0x80 to 0x9f may be control characters that cause the
- * terminal to perform functions. The remaining codes can be graphic.
- */
-static void
-show_upper_chars(int first)
-{
- bool C1 = (first == 128);
- int code;
- int last = first + 31;
- int reply;
-
- erase();
- attron(A_BOLD);
- mvprintw(0, 20, "Display of %s Character Codes %d to %d",
- C1 ? "C1" : "GR", 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;
- char tmp[80];
- sprintf(tmp, "%3d (0x%x)", code, code);
- mvprintw(row, col, "%*s: ", COLS / 4, tmp);
- if (C1)
- nodelay(stdscr, TRUE);
- echochar(code);
- if (C1) {
- /* (yes, this _is_ crude) */
- while ((reply = Getchar()) != ERR) {
- addch(reply);
- napms(10);
- }
- nodelay(stdscr, FALSE);
- }
- }
-}
-
-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)
-{
- const int height = 16;
- int row = 4 + (n % height);
- int col = (n / height) * COLS / 2;
- mvprintw(row, col, "%*s : ", COLS / 4, name);
- addch(code);
- return n + 1;
-}
-
-static void
-show_acs_chars(void)
-/* display the ACS character set */
-{
- int n;
-
-#define BOTH(name) #name, name
-
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Display of the ACS Character Set");
- attroff(A_BOLD);
- refresh();
-
- n = show_1_acs(0, BOTH(ACS_ULCORNER));
- 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_LTEE));
- n = show_1_acs(n, BOTH(ACS_RTEE));
- 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_LARROW));
- n = show_1_acs(n, BOTH(ACS_RARROW));
- 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_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_NEQUAL));
- n = show_1_acs(n, BOTH(ACS_LEQUAL));
-
- 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
-acs_display(void)
-{
- int c = 'a';
-
- do {
- switch (c) {
- case 'a':
- show_acs_chars();
- break;
- case 'b':
- show_box_chars();
- break;
- case '0':
- case '1':
- case '2':
- case '3':
- show_upper_chars((c - '0') * 32 + 128);
- break;
- }
- mvprintw(LINES - 3, 0,
- "Note: ANSI terminals may not display C1 characters.");
- mvprintw(LINES - 2, 0,
- "Select: a=ACS, b=box, 0=C1, 1,2,3=GR characters, q=quit");
- refresh();
- } while ((c = Getchar()) != 'x' && c != 'q');
-
- Pause();
- erase();
- 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)
- */
-static void
-test_sgr_attributes(void)
-{
- int pass;
-
- for (pass = 0; pass < 2; pass++) {
- int normal = ((pass == 0 ? A_NORMAL : A_REVERSE)) | BLANK;
-
- /* Use non-default colors if possible to exercise bce a little */
- if (has_colors()) {
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- normal |= COLOR_PAIR(1);
- }
- bkgdset(normal);
- erase();
- mvprintw(1, 20, "Graphic rendition test pattern:");
-
- mvprintw(4, 1, "vanilla");
-
-#define set_sgr(mask) bkgdset((normal^(mask)));
- set_sgr(A_BOLD);
- mvprintw(4, 40, "bold");
-
- set_sgr(A_UNDERLINE);
- mvprintw(6, 6, "underline");
-
- set_sgr(A_BOLD | A_UNDERLINE);
- mvprintw(6, 45, "bold underline");
-
- set_sgr(A_BLINK);
- mvprintw(8, 1, "blink");
-
- set_sgr(A_BLINK | A_BOLD);
- mvprintw(8, 40, "bold blink");
-
- set_sgr(A_UNDERLINE | A_BLINK);
- mvprintw(10, 6, "underline blink");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_BLINK);
- mvprintw(10, 45, "bold underline blink");
-
- set_sgr(A_REVERSE);
- mvprintw(12, 1, "negative");
-
- set_sgr(A_BOLD | A_REVERSE);
- mvprintw(12, 40, "bold negative");
-
- set_sgr(A_UNDERLINE | A_REVERSE);
- mvprintw(14, 6, "underline negative");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_REVERSE);
- mvprintw(14, 45, "bold underline negative");
-
- set_sgr(A_BLINK | A_REVERSE);
- mvprintw(16, 1, "blink negative");
-
- set_sgr(A_BOLD | A_BLINK | A_REVERSE);
- mvprintw(16, 40, "bold blink negative");
-
- set_sgr(A_UNDERLINE | A_BLINK | A_REVERSE);
- mvprintw(18, 6, "underline blink negative");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_BLINK | A_REVERSE);
- mvprintw(18, 45, "bold underline blink negative");
-
- bkgdset(normal);
- mvprintw(LINES - 2, 1, "%s background. ", pass == 0 ? "Dark" :
- "Light");
- clrtoeol();
- Pause();
- }
-
- bkgdset(A_NORMAL | BLANK);
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Windows and scrolling tester.
- *
- ****************************************************************************/
-
-#define BOTLINES 4 /* number of line stolen from screen bottom */
-
-typedef struct {
- int y, x;
-} pair;
-
-#define FRAME struct frame
-FRAME
-{
- FRAME *next, *last;
- bool do_scroll;
- bool do_keypad;
- 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.
- * 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);
- return keypad_active(win);
-}
-
-static bool
-HaveScroll(FRAME * curp)
-{
- WINDOW *win = (curp ? curp->wind : stdscr);
- return scroll_active(win);
-}
-
-static void
-newwin_legend(FRAME * curp)
-{
- static const struct {
- const char *msg;
- int code;
- } legend[] = {
- {
- "^C = create window", 0
- },
- {
- "^N = next window", 0
- },
- {
- "^P = previous window", 0
- },
- {
- "^F = scroll forward", 0
- },
- {
- "^B = scroll backward", 0
- },
- {
- "^K = keypad(%s)", 1
- },
- {
- "^S = scrollok(%s)", 2
- },
- {
- "^W = save window to file", 0
- },
- {
- "^R = restore window", 0
- },
-#if HAVE_WRESIZE
- {
- "^X = resize", 0
- },
-#endif
- {
- "^Q%s = exit", 3
- }
- };
- size_t n;
- int x;
- bool do_keypad = HaveKeypad(curp);
- bool do_scroll = HaveScroll(curp);
- char buf[BUFSIZ];
-
- move(LINES - 4, 0);
- for (n = 0; n < SIZEOF(legend); n++) {
- switch (legend[n].code) {
- default:
- strcpy(buf, legend[n].msg);
- break;
- case 1:
- sprintf(buf, legend[n].msg, do_keypad ? "yes" : "no");
- break;
- case 2:
- sprintf(buf, legend[n].msg, do_scroll ? "yes" : "no");
- break;
- case 3:
- sprintf(buf, legend[n].msg, do_keypad ? "/ESC" : "");
- break;
- }
- x = getcurx(stdscr);
- addstr((COLS < (x + 3 + (int) strlen(buf))) ? "\n" : (n ? ", " : ""));
- addstr(buf);
- }
- clrtoeol();
-}
-
-static void
-transient(FRAME * curp, NCURSES_CONST char *msg)
-{
- newwin_legend(curp);
- if (msg) {
- mvaddstr(LINES - 1, 0, msg);
- refresh();
- napms(1000);
- }
-
- move(LINES - 1, 0);
- printw("%s characters are echoed, window should %sscroll.",
- HaveKeypad(curp) ? "Non-arrow" : "All other",
- HaveScroll(curp) ? "" : "not ");
- clrtoeol();
-}
-
-static void
-newwin_report(FRAME * curp)
-/* report on the cursor's current position, then restore it */
-{
- WINDOW *win = (curp != 0) ? curp->wind : stdscr;
- int y, x;
-
- if (win != stdscr)
- transient(curp, (char *) 0);
- getyx(win, y, x);
- move(LINES - 1, COLS - 17);
- printw("Y = %2d X = %2d", y, x);
- if (win != stdscr)
- refresh();
- else
- wmove(win, y, x);
-}
-
-static pair *
-selectcell(int uli, int ulj, int lri, int lrj)
-/* arrows keys move cursor, return location at current on non-arrow key */
-{
- static pair res; /* result cell */
- int si = lri - uli + 1; /* depth of the select area */
- int sj = lrj - ulj + 1; /* width of the select area */
- int i = 0, j = 0; /* offsets into the select area */
-
- res.y = uli;
- res.x = ulj;
- for (;;) {
- move(uli + i, ulj + j);
- newwin_report((FRAME *) 0);
-
- switch (Getchar()) {
- case KEY_UP:
- i += si - 1;
- break;
- case KEY_DOWN:
- i++;
- break;
- case KEY_LEFT:
- j += sj - 1;
- break;
- case KEY_RIGHT:
- j++;
- break;
- case QUIT:
- case ESCAPE:
- return ((pair *) 0);
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT event;
-
- getmouse(&event);
- if (event.y > uli && event.x > ulj) {
- i = event.y - uli;
- j = event.x - ulj;
- } else {
- beep();
- break;
- }
- }
- /* FALLTHRU */
-#endif
- default:
- res.y = uli + i;
- res.x = ulj + j;
- return (&res);
- }
- i %= si;
- j %= sj;
- }
-}
-
-static void
-outerbox(pair ul, pair lr, bool onoff)
-/* draw or erase a box *outside* the given pair of corners */
-{
- mvaddch(ul.y - 1, lr.x - 1, onoff ? ACS_ULCORNER : ' ');
- mvaddch(ul.y - 1, lr.x + 1, onoff ? ACS_URCORNER : ' ');
- mvaddch(lr.y + 1, lr.x + 1, onoff ? ACS_LRCORNER : ' ');
- mvaddch(lr.y + 1, ul.x - 1, onoff ? ACS_LLCORNER : ' ');
- move(ul.y - 1, ul.x);
- hline(onoff ? ACS_HLINE : ' ', lr.x - ul.x + 1);
- move(ul.y, ul.x - 1);
- vline(onoff ? ACS_VLINE : ' ', lr.y - ul.y + 1);
- move(lr.y + 1, ul.x);
- hline(onoff ? ACS_HLINE : ' ', lr.x - ul.x + 1);
- move(ul.y, lr.x + 1);
- vline(onoff ? ACS_VLINE : ' ', lr.y - ul.y + 1);
-}
-
-static WINDOW *
-getwindow(void)
-/* Ask user for a window definition */
-{
- WINDOW *rwindow;
- pair ul, lr, *tmp;
-
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark corner 1");
- refresh();
- if ((tmp = selectcell(2, 1, LINES - BOTLINES - 2, COLS - 2)) == (pair *) 0)
- return ((WINDOW *) 0);
- memcpy(&ul, tmp, sizeof(pair));
- mvaddch(ul.y - 1, ul.x - 1, ACS_ULCORNER);
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark corner 2");
- refresh();
- if ((tmp = selectcell(ul.y, ul.x, LINES - BOTLINES - 2, COLS - 2)) ==
- (pair *) 0)
- return ((WINDOW *) 0);
- memcpy(&lr, tmp, sizeof(pair));
-
- rwindow = subwin(stdscr, lr.y - ul.y + 1, lr.x - ul.x + 1, ul.y, ul.x);
-
- outerbox(ul, lr, TRUE);
- refresh();
-
- wrefresh(rwindow);
-
- move(0, 0);
- clrtoeol();
- return (rwindow);
-}
-
-static void
-newwin_move(FRAME * curp, int dy, int dx)
-{
- WINDOW *win = (curp != 0) ? curp->wind : stdscr;
- int cur_y, cur_x;
- int max_y, max_x;
-
- getyx(win, cur_y, cur_x);
- getmaxyx(win, max_y, max_x);
- if ((cur_x += dx) < 0)
- cur_x = 0;
- else if (cur_x >= max_x)
- cur_x = max_x - 1;
- if ((cur_y += dy) < 0)
- cur_y = 0;
- else if (cur_y >= max_y)
- cur_y = max_y - 1;
- wmove(win, cur_y, cur_x);
-}
-
-static FRAME *
-delete_framed(FRAME * fp, bool showit)
-{
- FRAME *np;
-
- fp->last->next = fp->next;
- fp->next->last = fp->last;
-
- if (showit) {
- werase(fp->wind);
- wrefresh(fp->wind);
- }
- delwin(fp->wind);
-
- np = (fp == fp->next) ? 0 : fp->next;
- free(fp);
- return np;
-}
-
-static void
-acs_and_scroll(void)
-/* Demonstrate windows */
-{
- int c, i;
- FILE *fp;
- FRAME *current = (FRAME *) 0, *neww;
- WINDOW *usescr = stdscr;
-
-#define DUMPFILE "screendump"
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(BUTTON1_CLICKED, (mmask_t *) 0);
-#endif
- c = CTRL('C');
- raw();
- do {
- transient((FRAME *) 0, (char *) 0);
- switch (c) {
- case CTRL('C'):
- neww = (FRAME *) calloc(1, sizeof(FRAME));
- if ((neww->wind = getwindow()) == (WINDOW *) 0)
- goto breakout;
-
- if (current == 0) { /* First element, */
- neww->next = neww; /* so point it at itself */
- neww->last = neww;
- } else {
- neww->next = current->next;
- neww->last = current;
- neww->last->next = neww;
- neww->next->last = neww;
- }
- current = neww;
- /* SVr4 curses sets the keypad on all newly-created windows to
- * false. Someone reported that PDCurses makes new windows inherit
- * this flag. Remove the following 'keypad()' call to test this
- */
- keypad(current->wind, TRUE);
- current->do_keypad = HaveKeypad(current);
- current->do_scroll = HaveScroll(current);
- break;
-
- case CTRL('N'): /* go to next window */
- if (current)
- current = current->next;
- break;
-
- case CTRL('P'): /* go to previous window */
- if (current)
- current = current->last;
- break;
-
- case CTRL('F'): /* scroll current window forward */
- if (current)
- wscrl(current->wind, 1);
- break;
-
- case CTRL('B'): /* scroll current window backwards */
- if (current)
- wscrl(current->wind, -1);
- break;
-
- case CTRL('K'): /* toggle keypad mode for current */
- if (current) {
- current->do_keypad = !current->do_keypad;
- keypad(current->wind, current->do_keypad);
- }
- break;
-
- case CTRL('S'):
- if (current) {
- current->do_scroll = !current->do_scroll;
- scrollok(current->wind, current->do_scroll);
- }
- break;
-
- case CTRL('W'): /* save and delete window */
- if (current == current->next) {
- transient(current, "Will not save/delete ONLY window");
- break;
- } else if ((fp = fopen(DUMPFILE, "w")) == (FILE *) 0) {
- transient(current, "Can't open screen dump file");
- } else {
- (void) putwin(current->wind, fp);
- (void) fclose(fp);
-
- current = delete_framed(current, TRUE);
- }
- break;
-
- case CTRL('R'): /* restore window */
- if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0) {
- transient(current, "Can't open screen dump file");
- } else {
- neww = (FRAME *) calloc(1, sizeof(FRAME));
-
- neww->next = current->next;
- neww->last = current;
- neww->last->next = neww;
- neww->next->last = neww;
-
- neww->wind = getwin(fp);
- (void) fclose(fp);
-
- wrefresh(neww->wind);
- }
- break;
-
-#if HAVE_WRESIZE
- case CTRL('X'): /* resize window */
- if (current) {
- pair *tmp, ul, lr;
- int mx, my;
-
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark new corner");
- refresh();
-
- getbegyx(current->wind, ul.y, ul.x);
-
- tmp = selectcell(ul.y, ul.x, LINES - BOTLINES - 2, COLS - 2);
- if (tmp == (pair *) 0) {
- beep();
- break;
- }
-
- getmaxyx(current->wind, lr.y, lr.x);
- lr.y += (ul.y - 1);
- lr.x += (ul.x - 1);
- outerbox(ul, lr, FALSE);
- wnoutrefresh(stdscr);
-
- /* strictly cosmetic hack for the test */
- getmaxyx(current->wind, my, mx);
- if (my > tmp->y - ul.y) {
- getyx(current->wind, lr.y, lr.x);
- wmove(current->wind, tmp->y - ul.y + 1, 0);
- wclrtobot(current->wind);
- wmove(current->wind, lr.y, lr.x);
- }
- if (mx > tmp->x - ul.x)
- for (i = 0; i < my; i++) {
- wmove(current->wind, i, tmp->x - ul.x + 1);
- wclrtoeol(current->wind);
- }
- wnoutrefresh(current->wind);
-
- memcpy(&lr, tmp, sizeof(pair));
- (void) wresize(current->wind, lr.y - ul.y + 0, lr.x - ul.x + 0);
-
- getbegyx(current->wind, ul.y, ul.x);
- getmaxyx(current->wind, lr.y, lr.x);
- lr.y += (ul.y - 1);
- lr.x += (ul.x - 1);
- outerbox(ul, lr, TRUE);
- wnoutrefresh(stdscr);
-
- wnoutrefresh(current->wind);
- move(0, 0);
- clrtoeol();
- doupdate();
- }
- break;
-#endif /* HAVE_WRESIZE */
-
- case KEY_F(10): /* undocumented --- use this to test area clears */
- selectcell(0, 0, LINES - 1, COLS - 1);
- clrtobot();
- refresh();
- break;
-
- case KEY_UP:
- newwin_move(current, -1, 0);
- break;
- case KEY_DOWN:
- newwin_move(current, 1, 0);
- break;
- case KEY_LEFT:
- newwin_move(current, 0, -1);
- break;
- case KEY_RIGHT:
- newwin_move(current, 0, 1);
- break;
-
- case KEY_BACKSPACE:
- /* FALLTHROUGH */
- case KEY_DC:
- {
- int y, x;
- getyx(current->wind, y, x);
- if (--x < 0) {
- if (--y < 0)
- break;
- x = getmaxx(current->wind) - 1;
- }
- mvwdelch(current->wind, y, x);
- }
- break;
-
- case '\r':
- c = '\n';
- /* FALLTHROUGH */
-
- default:
- if (current)
- waddch(current->wind, (chtype) c);
- else
- beep();
- break;
- }
- newwin_report(current);
- usescr = (current ? current->wind : stdscr);
- wrefresh(usescr);
- } while
- ((c = wGetchar(usescr)) != QUIT
- && !((c == ESCAPE) && (keypad_active(usescr)))
- && (c != ERR));
-
- breakout:
- while (current != 0)
- current = delete_framed(current, FALSE);
-
- scrollok(stdscr, TRUE); /* reset to driver's default */
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
- noraw();
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Panels tester
- *
- ****************************************************************************/
-
-#if USE_LIBPANEL
-static unsigned long nap_msec = 1;
-
-static NCURSES_CONST char *mod[] =
-{
- "test ",
- "TEST ",
- "(**) ",
- "*()* ",
- "<--> ",
- "LAST "
-};
-
-/*+-------------------------------------------------------------------------
- wait_a_while(msec)
---------------------------------------------------------------------------*/
-static void
-wait_a_while(unsigned long msec GCC_UNUSED)
-{
-#if HAVE_NAPMS
- if (nap_msec == 1)
- wGetchar(stdscr);
- else
- napms(nap_msec);
-#else
- if (nap_msec == 1)
- wGetchar(stdscr);
- else if (msec > 1000L)
- sleep((int) msec / 1000L);
- else
- sleep(1);
-#endif
-} /* end of wait_a_while */
-
-/*+-------------------------------------------------------------------------
- saywhat(text)
---------------------------------------------------------------------------*/
-static void
-saywhat(NCURSES_CONST char *text)
-{
- wmove(stdscr, LINES - 1, 0);
- wclrtoeol(stdscr);
- waddstr(stdscr, text);
-} /* end of saywhat */
-
-/*+-------------------------------------------------------------------------
- mkpanel(rows,cols,tly,tlx) - alloc a win and panel and associate them
---------------------------------------------------------------------------*/
-static PANEL *
-mkpanel(int color, int rows, int cols, int tly, int tlx)
-{
- WINDOW *win;
- PANEL *pan = 0;
-
- if ((win = newwin(rows, cols, tly, tlx)) != 0) {
- if ((pan = new_panel(win)) == 0) {
- delwin(win);
- } else if (has_colors()) {
- int fg = (color == COLOR_BLUE) ? COLOR_WHITE : COLOR_BLACK;
- int bg = color;
- init_pair(color, fg, bg);
- wbkgdset(win, COLOR_PAIR(color) | ' ');
- } else {
- wbkgdset(win, A_BOLD | ' ');
- }
- }
- return pan;
-} /* end of mkpanel */
-
-/*+-------------------------------------------------------------------------
- rmpanel(pan)
---------------------------------------------------------------------------*/
-static void
-rmpanel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- del_panel(pan);
- delwin(win);
-} /* end of rmpanel */
-
-/*+-------------------------------------------------------------------------
- pflush()
---------------------------------------------------------------------------*/
-static void
-pflush(void)
-{
- update_panels();
- doupdate();
-} /* end of pflush */
-
-/*+-------------------------------------------------------------------------
- fill_panel(win)
---------------------------------------------------------------------------*/
-static void
-fill_panel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- int num = ((const char *) panel_userptr(pan))[1];
- int y, x;
-
- wmove(win, 1, 1);
- wprintw(win, "-pan%c-", num);
- wclrtoeol(win);
- box(win, 0, 0);
- for (y = 2; y < getmaxy(win) - 1; y++) {
- for (x = 1; x < getmaxx(win) - 1; x++) {
- wmove(win, y, x);
- waddch(win, num);
- }
- }
-} /* end of fill_panel */
-
-static void
-demo_panels(void)
-{
- int itmp;
- register int y, x;
-
- refresh();
-
- for (y = 0; y < LINES - 1; y++) {
- for (x = 0; x < COLS; x++)
- wprintw(stdscr, "%d", (y + x) % 10);
- }
- for (y = 0; y < 5; y++) {
- PANEL *p1;
- PANEL *p2;
- PANEL *p3;
- PANEL *p4;
- PANEL *p5;
-
- p1 = mkpanel(COLOR_RED,
- LINES / 2 - 2,
- COLS / 8 + 1,
- 0,
- 0);
- set_panel_userptr(p1, "p1");
-
- p2 = mkpanel(COLOR_GREEN,
- LINES / 2 + 1,
- COLS / 7,
- LINES / 4,
- COLS / 10);
- set_panel_userptr(p2, "p2");
-
- p3 = mkpanel(COLOR_YELLOW,
- LINES / 4,
- COLS / 10,
- LINES / 2,
- COLS / 9);
- set_panel_userptr(p3, "p3");
-
- p4 = mkpanel(COLOR_BLUE,
- LINES / 2 - 2,
- COLS / 8,
- LINES / 2 - 2,
- COLS / 3);
- set_panel_userptr(p4, "p4");
-
- p5 = mkpanel(COLOR_MAGENTA,
- LINES / 2 - 2,
- COLS / 8,
- LINES / 2,
- COLS / 2 - 2);
- set_panel_userptr(p5, "p5");
-
- fill_panel(p1);
- fill_panel(p2);
- fill_panel(p3);
- fill_panel(p4);
- fill_panel(p5);
- hide_panel(p4);
- hide_panel(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_panel(p1, 0, 0);
- hide_panel(p3);
- show_panel(p1);
- show_panel(p2);
- show_panel(p4);
- show_panel(p5);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s1; press any key to continue");
- show_panel(p1);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s2; press any key to continue");
- show_panel(p2);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("m2; press any key to continue");
- move_panel(p2, LINES / 3 + 1, COLS / 8);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s3;");
- show_panel(p3);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("m3; press any key to continue");
- move_panel(p3, LINES / 4 + 1, COLS / 15);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("b3; press any key to continue");
- bottom_panel(p3);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s4; press any key to continue");
- show_panel(p4);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("s5; press any key to continue");
- show_panel(p5);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t3; press any key to continue");
- top_panel(p3);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t1; press any key to continue");
- top_panel(p1);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t2; press any key to continue");
- top_panel(p2);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t3; press any key to continue");
- top_panel(p3);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t4; press any key to continue");
- top_panel(p4);
- pflush();
- wait_a_while(nap_msec);
-
- for (itmp = 0; itmp < 6; itmp++) {
- WINDOW *w4 = panel_window(p4);
- WINDOW *w5 = panel_window(p5);
-
- saywhat("m4; press any key to continue");
- wmove(w4, LINES / 8, 1);
- waddstr(w4, mod[itmp]);
- move_panel(p4, LINES / 6, itmp * (COLS / 8));
- wmove(w5, LINES / 6, 1);
- waddstr(w5, mod[itmp]);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("m5; press any key to continue");
- wmove(w4, LINES / 6, 1);
- waddstr(w4, mod[itmp]);
- move_panel(p5, LINES / 3 - 1, (itmp * 10) + 6);
- wmove(w5, LINES / 8, 1);
- waddstr(w5, mod[itmp]);
- pflush();
- wait_a_while(nap_msec);
- }
-
- saywhat("m4; press any key to continue");
- move_panel(p4, LINES / 6, itmp * (COLS / 8));
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t5; press any key to continue");
- top_panel(p5);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t2; press any key to continue");
- top_panel(p2);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("t1; press any key to continue");
- top_panel(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_panel(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)
- break;
- nap_msec = 100L;
- }
-
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Pad tester
- *
- ****************************************************************************/
-
-#define GRIDSIZE 3
-
-static bool pending_pan = FALSE;
-static bool show_panner_legend = TRUE;
-
-static int
-panner_legend(int line)
-{
- static const char *const legend[] =
- {
- "Use arrow keys (or U,D,L,R) to pan, q to quit, ! to shell-out.",
- "Use +,- (or j,k) to grow/shrink the panner vertically.",
- "Use <,> (or h,l) to grow/shrink the panner horizontally.",
- "Number repeats. Toggle legend:?, timer:t, scroll mark:s."
- };
- int n = (SIZEOF(legend) - (LINES - line));
- if (line < LINES && (n >= 0)) {
- move(line, 0);
- if (show_panner_legend)
- printw("%s", legend[n]);
- clrtoeol();
- return show_panner_legend;
- }
- return FALSE;
-}
-
-static void
-panner_h_cleanup(int from_y, int from_x, int to_x)
-{
- if (!panner_legend(from_y))
- do_h_line(from_y, from_x, ' ', to_x);
-}
-
-static void
-panner_v_cleanup(int from_y, int from_x, int to_y)
-{
- if (!panner_legend(from_y))
- do_v_line(from_y, from_x, ' ', to_y);
-}
-
-static void
-panner(WINDOW *pad,
- int top_x, int top_y, int porty, int portx,
- int (*pgetc) (WINDOW *))
-{
-#if HAVE_GETTIMEOFDAY
- struct timeval before, after;
- bool timing = TRUE;
-#endif
- bool scrollers = TRUE;
- int basex = 0;
- int basey = 0;
- int pxmax, pymax, lowend, highend, c;
-
- getmaxyx(pad, pymax, pxmax);
- scrollok(stdscr, FALSE); /* we don't want stdscr to scroll! */
-
- c = KEY_REFRESH;
- do {
-#ifdef NCURSES_VERSION
- /*
- * 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 > COLS)
- top_x = COLS;
- if (portx > COLS)
- portx = COLS;
- if (top_y > LINES)
- top_y = LINES;
- if (porty > LINES)
- porty = LINES;
-#endif
- switch (c) {
- case KEY_REFRESH:
- erase();
-
- /* FALLTHRU */
- case '?':
- if (c == '?')
- show_panner_legend = !show_panner_legend;
- panner_legend(LINES - 4);
- panner_legend(LINES - 3);
- panner_legend(LINES - 2);
- panner_legend(LINES - 1);
- break;
-#if HAVE_GETTIMEOFDAY
- case 't':
- timing = !timing;
- if (!timing)
- panner_legend(LINES - 1);
- break;
-#endif
- case 's':
- scrollers = !scrollers;
- break;
-
- /* Move the top-left corner of the pad, keeping the bottom-right
- * corner fixed.
- */
- case 'h': /* increase-columns: move left edge to left */
- if (top_x <= 0)
- beep();
- else {
- panner_v_cleanup(top_y, top_x, porty);
- top_x--;
- }
- break;
-
- case 'j': /* decrease-lines: move top-edge down */
- if (top_y >= porty)
- beep();
- else {
- panner_h_cleanup(top_y - 1, top_x - (top_x > 0), portx);
- top_y++;
- }
- break;
-
- case 'k': /* increase-lines: move top-edge up */
- if (top_y <= 0)
- beep();
- else {
- top_y--;
- panner_h_cleanup(top_y, top_x, portx);
- }
- break;
-
- case 'l': /* decrease-columns: move left-edge to right */
- if (top_x >= portx)
- beep();
- else {
- panner_v_cleanup(top_y - (top_y > 0), top_x - 1, porty);
- top_x++;
- }
- break;
-
- /* Move the bottom-right corner of the pad, keeping the top-left
- * corner fixed.
- */
- case KEY_IC: /* increase-columns: move right-edge to right */
- if (portx >= pxmax || portx >= COLS)
- beep();
- else {
- panner_v_cleanup(top_y - (top_y > 0), portx - 1, porty);
- ++portx;
- }
- break;
-
- case KEY_IL: /* increase-lines: move bottom-edge down */
- if (porty >= pymax || porty >= LINES)
- beep();
- else {
- panner_h_cleanup(porty - 1, top_x - (top_x > 0), portx);
- ++porty;
- }
- break;
-
- case KEY_DC: /* decrease-columns: move bottom edge up */
- if (portx <= top_x)
- beep();
- else {
- portx--;
- panner_v_cleanup(top_y - (top_y > 0), portx, porty);
- }
- break;
-
- case KEY_DL: /* decrease-lines */
- if (porty <= top_y)
- beep();
- else {
- porty--;
- panner_h_cleanup(porty, top_x - (top_x > 0), portx);
- }
- break;
-
- case KEY_LEFT: /* pan leftwards */
- if (basex > 0)
- basex--;
- else
- beep();
- break;
-
- case KEY_RIGHT: /* pan rightwards */
- if (basex + portx - (pymax > porty) < pxmax)
- basex++;
- else
- beep();
- break;
-
- case KEY_UP: /* pan upwards */
- if (basey > 0)
- basey--;
- else
- beep();
- break;
-
- case KEY_DOWN: /* pan downwards */
- if (basey + porty - (pxmax > portx) < pymax)
- basey++;
- else
- beep();
- break;
-
- case 'H':
- case KEY_HOME:
- case KEY_FIND:
- basey = 0;
- break;
-
- case 'E':
- case KEY_END:
- case KEY_SELECT:
- basey = pymax - porty;
- if (basey < 0)
- basey = 0;
- break;
-
- default:
- beep();
- break;
- }
-
- mvaddch(top_y - 1, top_x - 1, ACS_ULCORNER);
- do_v_line(top_y, top_x - 1, ACS_VLINE, porty);
- do_h_line(top_y - 1, top_x, ACS_HLINE, portx);
-
- if (scrollers && (pxmax > portx - 1)) {
- int length = (portx - top_x - 1);
- float ratio = ((float) length) / ((float) pxmax);
-
- lowend = (int) (top_x + (basex * ratio));
- highend = (int) (top_x + ((basex + length) * ratio));
-
- do_h_line(porty - 1, top_x, ACS_HLINE, lowend);
- if (highend < portx) {
- attron(A_REVERSE);
- do_h_line(porty - 1, lowend, ' ', highend + 1);
- attroff(A_REVERSE);
- do_h_line(porty - 1, highend + 1, ACS_HLINE, portx);
- }
- } else
- do_h_line(porty - 1, top_x, ACS_HLINE, portx);
-
- if (scrollers && (pymax > porty - 1)) {
- int length = (porty - top_y - 1);
- float ratio = ((float) length) / ((float) pymax);
-
- lowend = (int) (top_y + (basey * ratio));
- highend = (int) (top_y + ((basey + length) * ratio));
-
- do_v_line(top_y, portx - 1, ACS_VLINE, lowend);
- if (highend < porty) {
- attron(A_REVERSE);
- do_v_line(lowend, portx - 1, ' ', highend + 1);
- attroff(A_REVERSE);
- do_v_line(highend + 1, portx - 1, ACS_VLINE, porty);
- }
- } else
- do_v_line(top_y, portx - 1, ACS_VLINE, porty);
-
- mvaddch(top_y - 1, portx - 1, ACS_URCORNER);
- mvaddch(porty - 1, top_x - 1, ACS_LLCORNER);
- mvaddch(porty - 1, portx - 1, ACS_LRCORNER);
-
- if (!pending_pan) {
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&before, 0);
-#endif
- wnoutrefresh(stdscr);
-
- pnoutrefresh(pad,
- basey, basex,
- top_y, top_x,
- porty - (pxmax > portx) - 1,
- portx - (pymax > porty) - 1);
-
- doupdate();
-#if HAVE_GETTIMEOFDAY
- if (timing) {
- double elapsed;
- gettimeofday(&after, 0);
- elapsed = (after.tv_sec + after.tv_usec / 1.0e6)
- - (before.tv_sec + before.tv_usec / 1.0e6);
- move(LINES - 1, COLS - 20);
- printw("Secs: %2.03f", elapsed);
- refresh();
- }
-#endif
- }
-
- } while
- ((c = pgetc(pad)) != KEY_EXIT);
-
- scrollok(stdscr, TRUE); /* reset to driver's default */
-}
-
-static int
-padgetch(WINDOW *win)
-{
- static int count;
- static int last;
- int c;
-
- if ((pending_pan = (count > 0)) != FALSE) {
- count--;
- pending_pan = (count != 0);
- } else {
- for (;;) {
- switch (c = wGetchar(win)) {
- case '!':
- ShellOut(FALSE);
- /* FALLTHRU */
- case CTRL('r'):
- endwin();
- refresh();
- c = KEY_REFRESH;
- break;
- case CTRL('l'):
- c = KEY_REFRESH;
- break;
- case 'U':
- c = KEY_UP;
- break;
- case 'D':
- c = KEY_DOWN;
- break;
- case 'R':
- c = KEY_RIGHT;
- break;
- case 'L':
- c = KEY_LEFT;
- break;
- case '+':
- c = KEY_IL;
- break;
- case '-':
- c = KEY_DL;
- break;
- case '>':
- c = KEY_IC;
- break;
- case '<':
- c = KEY_DC;
- break;
- case ERR: /* FALLTHRU */
- case 'q':
- count = 0;
- c = KEY_EXIT;
- break;
- default:
- if (c >= '0' && c <= '9') {
- count = count * 10 + (c - '0');
- continue;
- }
- break;
- }
- last = c;
- break;
- }
- if (count > 0)
- count--;
- }
- return (last);
-}
-
-#define PAD_HIGH 200
-#define PAD_WIDE 200
-
-static void
-demo_pad(void)
-/* Demonstrate pads. */
-{
- int i, j;
- unsigned gridcount = 0;
- WINDOW *panpad = newpad(PAD_HIGH, PAD_WIDE);
-
- if (panpad == 0) {
- Cannot("cannot create requested pad");
- return;
- }
-
- for (i = 0; i < PAD_HIGH; i++) {
- for (j = 0; j < PAD_WIDE; j++)
- if (i % GRIDSIZE == 0 && j % GRIDSIZE == 0) {
- if (i == 0 || j == 0)
- waddch(panpad, '+');
- else
- waddch(panpad, (chtype) ('A' + (gridcount++ % 26)));
- } else if (i % GRIDSIZE == 0)
- waddch(panpad, '-');
- else if (j % GRIDSIZE == 0)
- waddch(panpad, '|');
- else
- waddch(panpad, ' ');
- }
- panner_legend(LINES - 4);
- panner_legend(LINES - 3);
- panner_legend(LINES - 2);
- panner_legend(LINES - 1);
-
- keypad(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, COLS - 15, padgetch);
-
- delwin(panpad);
- endwin();
- erase();
-}
-#endif /* USE_LIBPANEL */
-
-/****************************************************************************
- *
- * Tests from John Burnell's PDCurses tester
- *
- ****************************************************************************/
-
-static void
-Continue(WINDOW *win)
-{
- noecho();
- wmove(win, 10, 1);
- mvwaddstr(win, 10, 1, " Press any key to continue");
- wrefresh(win);
- wGetchar(win);
-}
-
-static void
-flushinp_test(WINDOW *win)
-/* Input test, adapted from John Burnell's PDCurses tester */
-{
- int w, h, bx, by, sw, sh, i;
-
- WINDOW *subWin;
- wclear(win);
-
- getmaxyx(win, h, w);
- getbegyx(win, by, bx);
- sw = w / 3;
- sh = h / 3;
- if ((subWin = subwin(win, sh, sw, by + h - sh - 2, bx + w - sw - 2)) == 0)
- return;
-
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(2, COLOR_CYAN, COLOR_BLUE);
- wbkgd(subWin, COLOR_PAIR(2) | ' ');
- }
-#endif
- wattrset(subWin, A_BOLD);
- box(subWin, ACS_VLINE, ACS_HLINE);
- mvwaddstr(subWin, 2, 1, "This is a subwindow");
- wrefresh(win);
-
- /*
- * This used to set 'nocbreak()'. However, Alexander Lukyanov says that
- * it only happened to "work" on SVr4 because that implementation does not
- * emulate nocbreak+noecho mode, whereas ncurses does. To get the desired
- * test behavior, we're using 'cbreak()', which will allow a single
- * character to return without needing a newline. - T.Dickey 1997/10/11.
- */
- cbreak();
- mvwaddstr(win, 0, 1, "This is a test of the flushinp() call.");
-
- mvwaddstr(win, 2, 1, "Type random keys for 5 seconds.");
- mvwaddstr(win, 3, 1,
- "These should be discarded (not echoed) after the subwindow goes away.");
- wrefresh(win);
-
- for (i = 0; i < 5; i++) {
- mvwprintw(subWin, 1, 1, "Time = %d", i);
- wrefresh(subWin);
- napms(1000);
- flushinp();
- }
-
- delwin(subWin);
- werase(win);
- flash();
- wrefresh(win);
- napms(1000);
-
- mvwaddstr(win, 2, 1,
- "If you were still typing when the window timer expired,");
- mvwaddstr(win, 3, 1,
- "or else you typed nothing at all while it was running,");
- mvwaddstr(win, 4, 1,
- "test was invalid. You'll see garbage or nothing at all. ");
- mvwaddstr(win, 6, 1, "Press a key");
- wmove(win, 9, 10);
- wrefresh(win);
- echo();
- wGetchar(win);
- flushinp();
- mvwaddstr(win, 12, 0,
- "If you see any key other than what you typed, flushinp() is broken.");
- Continue(win);
-
- wmove(win, 9, 10);
- wdelch(win);
- wrefresh(win);
- wmove(win, 12, 0);
- clrtoeol();
- waddstr(win,
- "What you typed should now have been deleted; if not, wdelch() failed.");
- Continue(win);
-
- cbreak();
-}
-
-/****************************************************************************
- *
- * Menu test
- *
- ****************************************************************************/
-
-#if USE_LIBMENU
-
-#define MENU_Y 8
-#define MENU_X 8
-
-static int
-menu_virtualize(int c)
-{
- if (c == '\n' || c == KEY_EXIT)
- return (MAX_COMMAND + 1);
- else if (c == 'u')
- return (REQ_SCR_ULINE);
- else if (c == 'd')
- return (REQ_SCR_DLINE);
- else if (c == 'b' || c == KEY_NPAGE)
- return (REQ_SCR_UPAGE);
- else if (c == 'f' || c == KEY_PPAGE)
- return (REQ_SCR_DPAGE);
- else if (c == 'n' || c == KEY_DOWN)
- return (REQ_NEXT_ITEM);
- else if (c == 'p' || c == KEY_UP)
- return (REQ_PREV_ITEM);
- else if (c == ' ')
- return (REQ_TOGGLE_ITEM);
- else {
- if (c != KEY_MOUSE)
- beep();
- return (c);
- }
-}
-
-static const char *animals[] =
-{
- "Lions", "Tigers", "Bears", "(Oh my!)", "Newts", "Platypi", "Lemurs",
- (char *) 0
-};
-
-static void
-menu_test(void)
-{
- MENU *m;
- ITEM *items[SIZEOF(animals)];
- ITEM **ip = items;
- const char **ap;
- int mrows, mcols, c;
- WINDOW *menuwin;
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
- mvaddstr(0, 0, "This is the menu test:");
- mvaddstr(2, 0, " Use up and down arrow to move the select bar.");
- mvaddstr(3, 0, " 'n' and 'p' act like arrows.");
- mvaddstr(4, 0,
- " 'b' and 'f' scroll up/down (page), 'u' and 'd' (line).");
- mvaddstr(5, 0, " Press return to exit.");
- refresh();
-
- for (ap = animals; *ap; ap++)
- *ip++ = new_item(*ap, "");
- *ip = (ITEM *) 0;
-
- m = new_menu(items);
-
- set_menu_format(m, (SIZEOF(animals) + 1) / 2, 1);
- scale_menu(m, &mrows, &mcols);
-
- menuwin = newwin(mrows + 2, mcols + 2, MENU_Y, MENU_X);
- set_menu_win(m, menuwin);
- keypad(menuwin, TRUE);
- box(menuwin, 0, 0);
-
- set_menu_sub(m, derwin(menuwin, mrows, mcols, 1, 1));
-
- post_menu(m);
-
- while ((c = menu_driver(m, menu_virtualize(wGetchar(menuwin)))) != E_UNKNOWN_COMMAND) {
- if (c == E_REQUEST_DENIED)
- beep();
- continue;
- }
-
- (void) mvprintw(LINES - 2, 0,
- "You chose: %s\n", item_name(current_item(m)));
- (void) addstr("Press any key to continue...");
- wGetchar(stdscr);
-
- unpost_menu(m);
- delwin(menuwin);
-
- free_menu(m);
- for (ip = items; *ip; ip++)
- free_item(*ip);
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
-}
-
-#ifdef TRACE
-#define T_TBL(name) { #name, name }
-static struct {
- const char *name;
- int mask;
-} t_tbl[] = {
-
- T_TBL(TRACE_DISABLE),
- T_TBL(TRACE_TIMES),
- T_TBL(TRACE_TPUTS),
- T_TBL(TRACE_UPDATE),
- T_TBL(TRACE_MOVE),
- T_TBL(TRACE_CHARPUT),
- T_TBL(TRACE_ORDINARY),
- T_TBL(TRACE_CALLS),
- T_TBL(TRACE_VIRTPUT),
- T_TBL(TRACE_IEVENT),
- T_TBL(TRACE_BITS),
- T_TBL(TRACE_ICALLS),
- T_TBL(TRACE_CCALLS),
- T_TBL(TRACE_DATABASE),
- T_TBL(TRACE_ATTRS),
- T_TBL(TRACE_MAXIMUM),
- {
- (char *) 0, 0
- }
-};
-
-static char *
-tracetrace(int tlevel)
-{
- static char *buf;
- int n;
-
- if (buf == 0) {
- size_t need = 12;
- for (n = 0; t_tbl[n].name != 0; n++)
- need += strlen(t_tbl[n].name) + 2;
- buf = (char *) malloc(need);
- }
- sprintf(buf, "0x%02x = {", tlevel);
- if (tlevel == 0) {
- sprintf(buf + strlen(buf), "%s, ", t_tbl[0].name);
- } else {
- for (n = 1; t_tbl[n].name != 0; n++)
- if ((tlevel & t_tbl[n].mask) == t_tbl[n].mask) {
- strcat(buf, t_tbl[n].name);
- strcat(buf, ", ");
- }
- }
- if (buf[strlen(buf) - 2] == ',')
- buf[strlen(buf) - 2] = '\0';
- return (strcat(buf, "}"));
-}
-
-/* fake a dynamically reconfigurable menu using the 0th entry to deselect
- * the others
- */
-static int
-run_trace_menu(MENU * m)
-{
- ITEM **items;
- ITEM *i, **p;
-
- for (;;) {
- bool changed = FALSE;
- switch (menu_driver(m, menu_virtualize(wGetchar(menu_win(m))))) {
- case E_UNKNOWN_COMMAND:
- return FALSE;
- default:
- items = menu_items(m);
- i = current_item(m);
- if (i == items[0]) {
- if (item_value(i)) {
- for (p = items + 1; *p != 0; p++)
- if (item_value(*p)) {
- set_item_value(*p, FALSE);
- changed = TRUE;
- }
- }
- } else {
- for (p = items + 1; *p != 0; p++)
- if (item_value(*p)) {
- set_item_value(items[0], FALSE);
- changed = TRUE;
- break;
- }
- }
- if (!changed)
- return TRUE;
- }
- }
-}
-
-static void
-trace_set(void)
-/* interactively set the trace level */
-{
- MENU *m;
- ITEM *items[SIZEOF(t_tbl)];
- ITEM **ip = items;
- int mrows, mcols, newtrace;
- int n;
- WINDOW *menuwin;
-
- mvaddstr(0, 0, "Interactively set trace level:");
- mvaddstr(2, 0, " Press space bar to toggle a selection.");
- mvaddstr(3, 0, " Use up and down arrow to move the select bar.");
- mvaddstr(4, 0, " Press return to set the trace level.");
- mvprintw(6, 0, "(Current trace level is %s)", tracetrace(_nc_tracing));
-
- refresh();
-
- for (n = 0; t_tbl[n].name != 0; n++)
- *ip++ = new_item(t_tbl[n].name, "");
- *ip = (ITEM *) 0;
-
- m = new_menu(items);
-
- set_menu_format(m, 0, 2);
- scale_menu(m, &mrows, &mcols);
-
- menu_opts_off(m, O_ONEVALUE);
- menuwin = newwin(mrows + 2, mcols + 2, MENU_Y, MENU_X);
- set_menu_win(m, menuwin);
- keypad(menuwin, TRUE);
- box(menuwin, 0, 0);
-
- set_menu_sub(m, derwin(menuwin, mrows, mcols, 1, 1));
-
- post_menu(m);
-
- for (ip = menu_items(m); *ip; ip++) {
- int mask = t_tbl[item_index(*ip)].mask;
- if (mask == 0)
- set_item_value(*ip, _nc_tracing == 0);
- else if ((mask & _nc_tracing) == mask)
- set_item_value(*ip, TRUE);
- }
-
- while (run_trace_menu(m))
- continue;
-
- newtrace = 0;
- for (ip = menu_items(m); *ip; ip++)
- if (item_value(*ip))
- newtrace |= t_tbl[item_index(*ip)].mask;
- trace(newtrace);
- _tracef("trace level interactively set to %s", tracetrace(_nc_tracing));
-
- (void) mvprintw(LINES - 2, 0,
- "Trace level is %s\n", tracetrace(_nc_tracing));
- (void) addstr("Press any key to continue...");
- wGetchar(stdscr);
-
- unpost_menu(m);
- delwin(menuwin);
-
- free_menu(m);
- for (ip = items; *ip; ip++)
- free_item(*ip);
-}
-#endif /* TRACE */
-#endif /* USE_LIBMENU */
-
-/****************************************************************************
- *
- * Forms test
- *
- ****************************************************************************/
-#if USE_LIBFORM
-static FIELD *
-make_label(int frow, int fcol, NCURSES_CONST char *label)
-{
- FIELD *f = new_field(1, strlen(label), frow, fcol, 0, 0);
-
- if (f) {
- set_field_buffer(f, 0, label);
- set_field_opts(f, field_opts(f) & ~O_ACTIVE);
- }
- return (f);
-}
-
-static FIELD *
-make_field(int frow, int fcol, int rows, int cols, bool secure)
-{
- FIELD *f = new_field(rows, cols, frow, fcol, 0, secure ? 1 : 0);
-
- if (f) {
- set_field_back(f, A_UNDERLINE);
- set_field_userptr(f, (void *) 0);
- }
- return (f);
-}
-
-static void
-display_form(FORM * f)
-{
- WINDOW *w;
- int rows, cols;
-
- scale_form(f, &rows, &cols);
-
- if ((w = newwin(rows + 2, cols + 4, 0, 0)) != (WINDOW *) 0) {
- set_form_win(f, w);
- set_form_sub(f, derwin(w, rows, cols, 1, 2));
- box(w, 0, 0);
- keypad(w, TRUE);
- }
-
- if (post_form(f) != E_OK)
- wrefresh(w);
-}
-
-static void
-erase_form(FORM * f)
-{
- WINDOW *w = form_win(f);
- WINDOW *s = form_sub(f);
-
- unpost_form(f);
- werase(w);
- wrefresh(w);
- delwin(s);
- delwin(w);
-}
-
-static int
-edit_secure(FIELD * me, int c)
-{
- int rows, cols, frow, fcol, nrow, nbuf;
-
- if (field_info(me, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK
- && nbuf > 0) {
- char temp[80];
- long len;
-
- strcpy(temp, field_buffer(me, 1));
- len = (long) (char *) field_userptr(me);
- if (c <= KEY_MAX) {
- if (isgraph(c)) {
- temp[len++] = c;
- temp[len] = 0;
- set_field_buffer(me, 1, temp);
- c = '*';
- } else {
- c = 0;
- }
- } else {
- switch (c) {
- case REQ_BEG_FIELD:
- case REQ_CLR_EOF:
- case REQ_CLR_EOL:
- case REQ_DEL_LINE:
- case REQ_DEL_WORD:
- case REQ_DOWN_CHAR:
- case REQ_END_FIELD:
- case REQ_INS_CHAR:
- case REQ_INS_LINE:
- case REQ_LEFT_CHAR:
- case REQ_NEW_LINE:
- case REQ_NEXT_WORD:
- case REQ_PREV_WORD:
- case REQ_RIGHT_CHAR:
- case REQ_UP_CHAR:
- c = 0; /* we don't want to do inline editing */
- break;
- case REQ_CLR_FIELD:
- if (len) {
- temp[0] = 0;
- set_field_buffer(me, 1, temp);
- }
- break;
- case REQ_DEL_CHAR:
- case REQ_DEL_PREV:
- if (len) {
- temp[--len] = 0;
- set_field_buffer(me, 1, temp);
- }
- break;
- }
- }
- set_field_userptr(me, (void *) len);
- }
- return c;
-}
-
-static int
-form_virtualize(FORM * f, WINDOW *w)
-{
- static const struct {
- int code;
- int result;
- } lookup[] = {
- {
- CTRL('A'), REQ_NEXT_CHOICE
- },
- {
- CTRL('B'), REQ_PREV_WORD
- },
- {
- CTRL('C'), REQ_CLR_EOL
- },
- {
- CTRL('D'), REQ_DOWN_FIELD
- },
- {
- CTRL('E'), REQ_END_FIELD
- },
- {
- CTRL('F'), REQ_NEXT_PAGE
- },
- {
- CTRL('G'), REQ_DEL_WORD
- },
- {
- CTRL('H'), REQ_DEL_PREV
- },
- {
- CTRL('I'), REQ_INS_CHAR
- },
- {
- CTRL('K'), REQ_CLR_EOF
- },
- {
- CTRL('L'), REQ_LEFT_FIELD
- },
- {
- CTRL('M'), REQ_NEW_LINE
- },
- {
- CTRL('N'), REQ_NEXT_FIELD
- },
- {
- CTRL('O'), REQ_INS_LINE
- },
- {
- CTRL('P'), REQ_PREV_FIELD
- },
- {
- CTRL('R'), REQ_RIGHT_FIELD
- },
- {
- CTRL('S'), REQ_BEG_FIELD
- },
- {
- CTRL('U'), REQ_UP_FIELD
- },
- {
- CTRL('V'), REQ_DEL_CHAR
- },
- {
- CTRL('W'), REQ_NEXT_WORD
- },
- {
- CTRL('X'), REQ_CLR_FIELD
- },
- {
- CTRL('Y'), REQ_DEL_LINE
- },
- {
- CTRL('Z'), REQ_PREV_CHOICE
- },
- {
- ESCAPE, MAX_FORM_COMMAND + 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
- },
- {
- QUIT, MAX_FORM_COMMAND + 1
- }
- };
-
- static int mode = REQ_INS_MODE;
- int c = wGetchar(w);
- unsigned n;
- FIELD *me = current_field(f);
-
- if (c == CTRL(']')) {
- if (mode == REQ_INS_MODE)
- mode = REQ_OVL_MODE;
- else
- mode = REQ_INS_MODE;
- c = mode;
- } else {
- for (n = 0; n < SIZEOF(lookup); n++) {
- if (lookup[n].code == c) {
- c = lookup[n].result;
- break;
- }
- }
- }
-
- /*
- * 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) {
- c = edit_secure(me, c);
- set_field_back(me, A_REVERSE);
- } else if (c <= MAX_FORM_COMMAND) {
- c = edit_secure(me, c);
- set_field_back(me, A_UNDERLINE);
- }
- return c;
-}
-
-static int
-my_form_driver(FORM * form, int c)
-{
- if (c == (MAX_FORM_COMMAND + 1)
- && form_driver(form, REQ_VALIDATION) == E_OK)
- return (TRUE);
- else {
- beep();
- return (FALSE);
- }
-}
-
-static void
-demo_forms(void)
-{
- WINDOW *w;
- FORM *form;
- FIELD *f[12], *secure;
- int finished = 0, c;
- unsigned n = 0;
-
- move(18, 0);
- addstr("Defined form-traversal keys: ^Q/ESC- exit form\n");
- addstr("^N -- go to next field ^P -- go to previous field\n");
- addstr("Home -- go to first field End -- go to last field\n");
- addstr("^L -- go to field to left ^R -- go to field to right\n");
- addstr("^U -- move upward to field ^D -- move downward to field\n");
- addstr("^W -- go to next word ^B -- go to previous word\n");
- addstr("^S -- go to start of field ^E -- go to end of field\n");
- addstr("^H -- delete previous char ^Y -- delete line\n");
- addstr("^G -- delete current word ^C -- clear to end of line\n");
- addstr("^K -- clear to end of field ^X -- clear field\n");
- addstr("Arrow keys move within a field as you would expect.");
-
- mvaddstr(4, 57, "Forms Entry Test");
-
- refresh();
-
- /* describe the form */
- f[n++] = make_label(0, 15, "Sample Form");
- f[n++] = make_label(2, 0, "Last Name");
- f[n++] = make_field(3, 0, 1, 18, FALSE);
- f[n++] = make_label(2, 20, "First Name");
- f[n++] = make_field(3, 20, 1, 12, FALSE);
- f[n++] = make_label(2, 34, "Middle Name");
- f[n++] = make_field(3, 34, 1, 12, FALSE);
- f[n++] = make_label(5, 0, "Comments");
- f[n++] = make_field(6, 0, 4, 46, FALSE);
- f[n++] = make_label(5, 20, "Password:");
- secure =
- f[n++] = make_field(5, 30, 1, 9, TRUE);
- f[n++] = (FIELD *) 0;
-
- form = new_form(f);
-
- display_form(form);
-
- w = form_win(form);
- raw();
- nonl(); /* lets us read ^M's */
- while (!finished) {
- switch (form_driver(form, c = form_virtualize(form, w))) {
- case E_OK:
- mvaddstr(5, 57, field_buffer(secure, 1));
- clrtoeol();
- refresh();
- break;
- case E_UNKNOWN_COMMAND:
- finished = my_form_driver(form, c);
- break;
- default:
- beep();
- break;
- }
- }
-
- erase_form(form);
-
- free_form(form);
- for (c = 0; f[c] != 0; c++)
- free_field(f[c]);
- noraw();
- nl();
-}
-#endif /* USE_LIBFORM */
-
-/****************************************************************************
- *
- * Overlap test
- *
- ****************************************************************************/
-
-static void
-fillwin(WINDOW *win, char ch)
-{
- int y, x;
- int y1, x1;
-
- getmaxyx(win, y1, x1);
- for (y = 0; y < y1; y++) {
- wmove(win, y, 0);
- for (x = 0; x < x1; x++)
- waddch(win, ch);
- }
-}
-
-static void
-crosswin(WINDOW *win, char ch)
-{
- int y, x;
- int y1, x1;
-
- getmaxyx(win, y1, x1);
- for (y = 0; y < y1; y++) {
- for (x = 0; x < x1; x++)
- if (((x > (x1 - 1) / 3) && (x <= (2 * (x1 - 1)) / 3))
- || (((y > (y1 - 1) / 3) && (y <= (2 * (y1 - 1)) / 3)))) {
- wmove(win, y, x);
- waddch(win, ch);
- }
- }
-}
-
-static void
-overlap_test(void)
-/* test effects of overlapping windows */
-{
- int ch;
-
- WINDOW *win1 = newwin(9, 20, 3, 3);
- WINDOW *win2 = newwin(9, 20, 9, 16);
-
- raw();
- refresh();
- move(0, 0);
- printw("This test shows the behavior of wnoutrefresh() with respect to\n");
- printw("the shared region of two overlapping windows A and B. The cross\n");
- printw("pattern in each window does not overlap the other.\n");
-
- move(18, 0);
- printw("a = refresh A, then B, then doupdate. b = refresh B, then A, then doupdaute\n");
- printw("c = fill window A with letter A. d = fill window B with letter B.\n");
- printw("e = cross pattern in window A. f = cross pattern in window B.\n");
- printw("g = clear window A. h = clear window B.\n");
- printw("i = overwrite A onto B. j = overwrite B onto A.\n");
- printw("^Q/ESC = terminate test.");
-
- while ((ch = Getchar()) != QUIT && ch != ESCAPE)
- switch (ch) {
- case 'a': /* refresh window A first, then B */
- wnoutrefresh(win1);
- wnoutrefresh(win2);
- doupdate();
- break;
-
- case 'b': /* refresh window B first, then A */
- wnoutrefresh(win2);
- wnoutrefresh(win1);
- doupdate();
- break;
-
- case 'c': /* fill window A so it's visible */
- fillwin(win1, 'A');
- break;
-
- case 'd': /* fill window B so it's visible */
- fillwin(win2, 'B');
- break;
-
- case 'e': /* cross test pattern in window A */
- crosswin(win1, 'A');
- break;
-
- case 'f': /* cross test pattern in window A */
- crosswin(win2, 'B');
- break;
-
- case 'g': /* clear window A */
- wclear(win1);
- wmove(win1, 0, 0);
- break;
-
- case 'h': /* clear window B */
- wclear(win2);
- wmove(win2, 0, 0);
- break;
-
- case 'i': /* overwrite A onto B */
- overwrite(win1, win2);
- break;
-
- case 'j': /* overwrite B onto A */
- overwrite(win2, win1);
- break;
- }
-
- delwin(win2);
- delwin(win1);
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Main sequence
- *
- ****************************************************************************/
-
-static bool
-do_single_test(const char c)
-/* perform a single specified test */
-{
- switch (c) {
- case 'a':
- getch_test();
- break;
-
-#if USE_WIDEC_SUPPORT
- case 'A':
- get_wch_test();
- break;
-#endif
-
- case 'b':
- attr_test();
- break;
-
- case 'c':
- if (!has_colors())
- Cannot("does not support color.");
- else
- color_test();
- break;
-
- case 'd':
- if (!has_colors())
- Cannot("does not support color.");
- else if (!can_change_color())
- Cannot("has hardwired color values.");
- else
- color_edit();
- break;
-
- case 'e':
- slk_test();
- break;
-
- case 'f':
- acs_display();
- break;
-
-#if USE_WIDEC_SUPPORT
- case 'F':
- wide_acs_display();
- break;
-#endif
-
-#if USE_LIBPANEL
- case 'o':
- demo_panels();
- break;
-#endif
-
- case 'g':
- acs_and_scroll();
- break;
-
- case 'i':
- flushinp_test(stdscr);
- break;
-
- case 'k':
- test_sgr_attributes();
- break;
-
-#if USE_LIBMENU
- case 'm':
- menu_test();
- break;
-#endif
-
-#if USE_LIBPANEL
- case 'p':
- demo_pad();
- break;
-#endif
-
-#if USE_LIBFORM
- case 'r':
- demo_forms();
- break;
-#endif
-
- case 's':
- overlap_test();
- break;
-
-#if USE_LIBMENU && defined(TRACE)
- case 't':
- trace_set();
- break;
-#endif
-
- case '?':
- break;
-
- default:
- return FALSE;
- }
-
- return TRUE;
-}
-
-static void
-usage(void)
-{
- static const char *const tbl[] =
- {
- "Usage: ncurses [options]"
- ,""
- ,"Options:"
-#ifdef NCURSES_VERSION
- ," -a f,b set default-colors (assumed white-on-black)"
- ," -d use default-colors if terminal supports them"
-#endif
- ," -e fmt specify format for soft-keys test (e)"
- ," -f rip-off footer line (can repeat)"
- ," -h rip-off header line (can repeat)"
- ," -s msec specify nominal time for panel-demo (default: 1, to hold)"
-#ifdef TRACE
- ," -t mask specify default trace-level (may toggle with ^T)"
-#endif
- };
- size_t n;
- for (n = 0; n < SIZEOF(tbl); n++)
- fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-set_terminal_modes(void)
-{
- noraw();
- cbreak();
- noecho();
- scrollok(stdscr, TRUE);
- idlok(stdscr, TRUE);
- keypad(stdscr, TRUE);
-}
-
-#ifdef SIGUSR1
-static RETSIGTYPE
-announce_sig(int sig)
-{
- (void) fprintf(stderr, "Handled signal %d\r\n", sig);
-}
-#endif
-
-static int
-rip_footer(WINDOW *win, int cols)
-{
- wbkgd(win, A_REVERSE);
- werase(win);
- wmove(win, 0, 0);
- wprintw(win, "footer: %d columns", cols);
- wnoutrefresh(win);
- return OK;
-}
-
-static int
-rip_header(WINDOW *win, int cols)
-{
- wbkgd(win, A_REVERSE);
- werase(win);
- wmove(win, 0, 0);
- wprintw(win, "header: %d columns", cols);
- wnoutrefresh(win);
- return OK;
-}
-
-/*+-------------------------------------------------------------------------
- main(argc,argv)
---------------------------------------------------------------------------*/
-
-int
-main(int argc, char *argv[])
-{
- int command, c;
- int my_e_param = 1;
-#ifdef NCURSES_VERSION
- int default_fg = COLOR_WHITE;
- int default_bg = COLOR_BLACK;
- bool assumed_colors = FALSE;
- bool default_colors = FALSE;
-#endif
-
- setlocale(LC_ALL, "");
-
- while ((c = getopt(argc, argv, "a:de:fhs:t:")) != EOF) {
- switch (c) {
-#ifdef NCURSES_VERSION
- case 'a':
- assumed_colors = TRUE;
- sscanf(optarg, "%d,%d", &default_fg, &default_bg);
- break;
- case 'd':
- default_colors = TRUE;
- break;
-#endif
- case 'e':
- my_e_param = atoi(optarg);
-#ifdef NCURSES_VERSION
- if (my_e_param > 3) /* allow extended layouts */
- usage();
-#else
- if (my_e_param > 1)
- usage();
-#endif
- break;
- case 'f':
- ripoffline(-1, rip_footer);
- break;
- case 'h':
- ripoffline(1, rip_header);
- break;
-#if USE_LIBPANEL
- case 's':
- nap_msec = atol(optarg);
- break;
-#endif
-#ifdef TRACE
- case 't':
- save_trace = atoi(optarg);
- break;
-#endif
- default:
- usage();
- }
- }
-
- /*
- * If there's no menus (unlikely for ncurses!), then we'll have to set
- * tracing on initially, just in case the user wants to test something that
- * doesn't involve wGetchar.
- */
-#ifdef TRACE
- /* enable debugging */
-#if !USE_LIBMENU
- trace(save_trace);
-#else
- if (!isatty(fileno(stdin)))
- trace(save_trace);
-#endif /* USE_LIBMENU */
-#endif /* TRACE */
-
- /* tell it we're going to play with soft keys */
- slk_init(my_e_param);
-
-#ifdef SIGUSR1
- /* set up null signal catcher so we can see what interrupts to getch do */
- signal(SIGUSR1, announce_sig);
-#endif
-
- /* we must initialize the curses data structure only once */
- initscr();
- bkgdset(BLANK);
-
- /* tests, in general, will want these modes */
- if (has_colors()) {
- start_color();
-#ifdef NCURSES_VERSION_PATCH
- max_colors = COLORS > 16 ? 16 : COLORS;
-#if HAVE_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
-#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();
-
- /*
- * Return to terminal mode, so we're guaranteed of being able to
- * select terminal commands even if the capabilities are wrong.
- */
- endwin();
-
-#if HAVE_CURSES_VERSION
- (void) printf("Welcome to %s. Press ? for help.\n", curses_version());
-#elif defined(NCURSES_VERSION_MAJOR) && defined(NCURSES_VERSION_MINOR) && defined(NCURSES_VERSION_PATCH)
- (void) printf("Welcome to ncurses %d.%d.%d. Press ? for help.\n",
- NCURSES_VERSION_MAJOR,
- NCURSES_VERSION_MINOR,
- NCURSES_VERSION_PATCH);
-#else
- (void) puts("Welcome to ncurses. Press ? for help.");
-#endif
-
- do {
- (void) puts("This is the ncurses main menu");
- (void) puts("a = keyboard and mouse input test");
-#if USE_WIDEC_SUPPORT
- (void) puts("A = wide-character keyboard and mouse input test");
-#endif
- (void) puts("b = character attribute test");
- (void) puts("c = color test pattern");
- (void) puts("d = edit RGB color values");
- (void) puts("e = exercise soft keys");
- (void) puts("f = display ACS characters");
-#if USE_WIDEC_SUPPORT
- (void) puts("F = display Wide-ACS characters");
-#endif
- (void) puts("g = display windows and scrolling");
- (void) puts("i = test of flushinp()");
- (void) puts("k = display character attributes");
-#if USE_LIBMENU
- (void) puts("m = menu code test");
-#endif
-#if USE_LIBPANEL
- (void) puts("o = exercise panels library");
- (void) puts("p = exercise pad features");
- (void) puts("q = quit");
-#endif
-#if USE_LIBFORM
- (void) puts("r = exercise forms code");
-#endif
- (void) puts("s = overlapping-refresh test");
-#if USE_LIBMENU && defined(TRACE)
- (void) puts("t = set trace level");
-#endif
- (void) puts("? = repeat this command summary");
-
- (void) fputs("> ", stdout);
- (void) fflush(stdout); /* necessary under SVr4 curses */
-
- /*
- * This used to be an 'fgets()' call. However (on Linux, at least)
- * mixing stream I/O and 'read()' (used in the library) causes the
- * input stream to be flushed when switching between the two.
- */
- command = 0;
- for (;;) {
- char ch;
- if (read(fileno(stdin), &ch, 1) <= 0) {
- if (command == 0)
- command = 'q';
- break;
- } else if (command == 0 && !isspace(UChar(ch))) {
- command = ch;
- } else if (ch == '\n' || ch == '\r') {
- if (command != 0)
- break;
- (void) fputs("> ", stdout);
- (void) fflush(stdout);
- }
- }
-
- if (do_single_test(command)) {
- /*
- * This may be overkill; it's intended to reset everything back
- * to the initial terminal modes so that tests don't get in
- * each other's way.
- */
- flushinp();
- set_terminal_modes();
- reset_prog_mode();
- clear();
- refresh();
- endwin();
- if (command == '?') {
- (void) puts("This is the ncurses capability tester.");
- (void)
- puts("You may select a test from the main menu by typing the");
- (void)
- puts("key letter of the choice (the letter to left of the =)");
- (void)
- puts("at the > prompt. The commands `x' or `q' will exit.");
- }
- continue;
- }
- } while
- (command != 'q');
-
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* ncurses.c ends here */
diff --git a/ncurses-5.3/test/ncurses_tst.hin b/ncurses-5.3/test/ncurses_tst.hin
deleted file mode 100644
index 5444487..0000000
--- a/ncurses-5.3/test/ncurses_tst.hin
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-/*
- * $Id$
- *
- * This is a template-file used to generate the "ncurses_cfg.h" file.
- *
- * Rather than list every definition, the configuration script substitutes
- * the definitions that it finds using 'sed'. You need a patch (971222)
- * to autoconf 2.12 to do this.
- */
-#ifndef NC_CONFIG_H
-#define NC_CONFIG_H
-@DEFS@
-
- /* The C compiler may not treat these properly but C++ has to */
-#ifdef __cplusplus
-#undef const
-#undef inline
-#else
-#if defined(lint) || defined(TRACE)
-#undef inline
-#define inline /* nothing */
-#endif
-#endif
-
-#endif /* NC_CONFIG_H */
diff --git a/ncurses-5.3/test/newdemo.c b/ncurses-5.3/test/newdemo.c
deleted file mode 100644
index ee7e8a2..0000000
--- a/ncurses-5.3/test/newdemo.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * newdemo.c - A demo program using PDCurses. The program illustrate
- * the use of colours for text output.
- *
- * $Id$
- */
-
-#include <time.h>
-
-#include <test.priv.h>
-
-#define delay_output(x) napms(x)
-
-/*
- * The Australian map
- */
-const char *AusMap[16] =
-{
- " A A ",
- " N.T. AAAAA AAAA ",
- " AAAAAAAAAAA AAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAA Qld.",
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAA N.S.W.",
- "W.A. AAAAAAAAA AAAAAA Vic.",
- " AAA S.A. AA",
- " A Tas.",
- ""
-};
-
-/*
- * Funny messages
- */
-#define NMESSAGES 6
-
-NCURSES_CONST char *messages[] =
-{
- "Hello from the Land Down Under",
- "The Land of crocs. and a big Red Rock",
- "Where the sunflower runs along the highways",
- "the dusty red roads lead one to loneliness",
- "Blue sky in the morning and",
- "freezing nights and twinkling stars",
- ""
-};
-
-/*
- * Trap interrupt
- */
-static RETSIGTYPE
-trap(int sig GCC_UNUSED)
-{
- endwin();
- ExitProgram(EXIT_FAILURE);
-}
-
-/*
- * 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;
- }
-}
-
-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));
- }
-}
-
-static int
-use_colors(WINDOW *win, int pair, int attrs)
-{
- if (has_colors()) {
- if (pair > COLOR_PAIRS)
- pair = COLOR_PAIRS;
- attrs |= COLOR_PAIR(pair);
- }
- wattrset(win, attrs);
- return attrs;
-}
-
-/*
- * Test sub windows
- */
-static int
-SubWinTest(WINDOW *win)
-{
- int w, h, sw, sh, bx, by;
- WINDOW *swin1, *swin2, *swin3;
-
- getmaxyx(win, h, w);
- 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;
-
- set_colors(swin1, 8, COLOR_RED, COLOR_BLUE);
- werase(swin1);
- mvwaddstr(swin1, 0, 3, "Sub-window 1");
- wrefresh(swin1);
-
- set_colors(swin2, 9, COLOR_CYAN, COLOR_MAGENTA);
- werase(swin2);
- mvwaddstr(swin2, 0, 3, "Sub-window 2");
- wrefresh(swin2);
-
- set_colors(swin3, 10, COLOR_YELLOW, COLOR_GREEN);
- werase(swin3);
- mvwaddstr(swin3, 0, 3, "Sub-window 3");
- wrefresh(swin3);
-
- delwin(swin1);
- delwin(swin2);
- delwin(swin3);
- WaitForUser(win);
- 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;
-}
-
-/*
- * Bouncing balls
- */
-static int
-BouncingBalls(WINDOW *win)
-{
- int w, h;
- int x1, y1, xd1, yd1;
- int x2, y2, xd2, yd2;
- int x3, y3, xd3, yd3;
-
- 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 = 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');
-
- 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;
-}
-
-/*
- * Main driver
- */
-int
-main(int argc GCC_UNUSED, char *argv[]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;
-
- 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();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/test/railroad.c b/ncurses-5.3/test/railroad.c
deleted file mode 100644
index ff79d4c..0000000
--- a/ncurses-5.3/test/railroad.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/****************************************************************************
- * 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"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * 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> 2000
- *
- * $Id$
- *
- * A simple demo of the termcap interface.
- */
-#include <test.priv.h>
-
-#include <ctype.h>
-
-static char *wipeit;
-static char *moveit;
-static int length;
-static int height;
-
-static char *finisC;
-static char *finisS;
-static char *finisU;
-
-static char *startC;
-static char *startS;
-static char *startU;
-
-static char *backup;
-
-static bool interrupted = FALSE;
-
-static int
-outc(int c)
-{
- if (interrupted) {
- char tmp = c;
- write(STDOUT_FILENO, &tmp, 1);
- } else {
- putc(c, stdout);
- }
- return 0;
-}
-
-static void
-PutChar(int ch)
-{
- putchar(ch);
- fflush(stdout);
- napms(moveit ? 10 : 50); /* not really termcap... */
-}
-
-static void
-Backup(void)
-{
- tputs(backup != 0 ? backup : "\b", 1, outc);
-}
-
-static void
-ShowCursor(int flag)
-{
- if (startC != 0 && finisC != 0) {
- tputs(flag ? startC : finisC, 1, outc);
- }
-}
-
-static void
-StandOut(int flag)
-{
- if (startS != 0 && finisS != 0) {
- tputs(flag ? startS : finisS, 1, outc);
- }
-}
-
-static void
-Underline(int flag)
-{
- if (startU != 0 && finisU != 0) {
- tputs(flag ? startU : finisU, 1, outc);
- }
-}
-
-static void
-ShowSign(char *string)
-{
- char *base = string;
- int ch, first, last;
-
- if (moveit != 0) {
- tputs(tgoto(moveit, 0, height - 1), 1, outc);
- tputs(wipeit, 1, outc);
- }
-
- while (*string != 0) {
- ch = *string;
- 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);
- }
- } else {
- 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);
- }
- }
- if (moveit != 0)
- Backup();
- }
- StandOut(1);
- PutChar(ch);
- StandOut(0);
- fflush(stdout);
- string++;
- }
- if (moveit != 0)
- tputs(wipeit, 1, outc);
- putchar('\n');
-}
-
-static void
-cleanup(void)
-{
- Underline(0);
- StandOut(0);
- ShowCursor(1);
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-railroad(char **args)
-{
- NCURSES_CONST char *name = getenv("TERM");
- char buffer[1024];
- char area[1024], *ap = area;
- int j;
-
- if (name == 0)
- name = "dumb";
- if (tgetent(buffer, name)) {
-
- wipeit = tgetstr("ce", &ap);
- height = tgetnum("li");
- length = tgetnum("co");
- moveit = tgetstr("cm", &ap);
-
- if (wipeit == 0
- || moveit == 0
- || height <= 0
- || length <= 0) {
- wipeit = 0;
- moveit = 0;
- height = 0;
- length = 0;
- }
-
- startS = tgetstr("so", &ap);
- finisS = tgetstr("se", &ap);
-
- startU = tgetstr("us", &ap);
- finisU = tgetstr("ue", &ap);
-
- backup = tgetstr("le", &ap);
-
- startC = tgetstr("ve", &ap);
- finisC = tgetstr("vi", &ap);
-
- ShowCursor(0);
-
- for (j = SIGHUP; j <= SIGTERM; j++)
- if (signal(j, SIG_IGN) != SIG_IGN)
- signal(j, onsig);
-
- while (*args) {
- ShowSign(*args++);
- }
- ShowCursor(1);
- }
-}
-
-int
-main(int argc, char *argv[])
-{
- if (argc > 1) {
- railroad(argv + 1);
- } else {
- static char world[] = "Hello World";
- static char *hello[] =
- {world, 0};
- railroad(hello);
- }
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/test/rain.c b/ncurses-5.3/test/rain.c
deleted file mode 100644
index 3092af8..0000000
--- a/ncurses-5.3/test/rain.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * $Id$
- */
-#include <test.priv.h>
-
-/* rain 11/3/1980 EPS/CITHEP */
-
-static float ranf(void);
-static void onsig(int sig);
-
-static int
-next_j(int j)
-{
- if (j == 0)
- j = 4;
- else
- --j;
- if (has_colors()) {
- int z = (int) (3 * ranf());
- chtype color = COLOR_PAIR(z);
- if (z)
- color |= A_BOLD;
- attrset(color);
- }
- return j;
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- 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);
-
- initscr();
- if (has_colors()) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- init_pair(1, COLOR_BLUE, bg);
- init_pair(2, COLOR_CYAN, bg);
- }
- nl();
- noecho();
- 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;
- }
-
- for (j = 0;;) {
- x = (int) (c * ranf()) + 2;
- y = (int) (r * ranf()) + 2;
-
- mvaddch(y, x, '.');
-
- 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], '-');
-
- 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], '-');
-
- 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'):
- curs_set(1);
- endwin();
- ExitProgram(EXIT_SUCCESS);
- case 's':
- nodelay(stdscr, FALSE);
- break;
- case ' ':
- nodelay(stdscr, TRUE);
- break;
-#ifdef KEY_RESIZE
- case (KEY_RESIZE):
- r = (float) (LINES - 4);
- c = (float) (COLS - 4);
- break;
-#endif
- }
- napms(50);
- }
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- curs_set(1);
- endwin();
- ExitProgram(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
diff --git a/ncurses-5.3/test/tclock.c b/ncurses-5.3/test/tclock.c
deleted file mode 100644
index 4b1a5af..0000000
--- a/ncurses-5.3/test/tclock.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/* $Id$ */
-
-#include "test.priv.h"
-
-#include <math.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.
- If it gives you joy, then
- (a) I'm glad
- (b) you need to get out more :-)
-
- This program is copyright Howard Jones, September 1994
- (ha.jones@ic.ac.uk). It may be freely distributed as
- long as this copyright message remains intact, and any
- modifications are clearly marked as such. [In fact, if
- you modify it, I wouldn't mind the modifications back,
- especially if they add any nice features. A good one
- would be a precalc table for the 60 hand positions, so
- that the floating point stuff can be ditched. As I said,
- it was a 20 hackup minute job.]
-
- COMING SOON: tfishtank. Be the envy of your mac-owning
- colleagues.
-*/
-
-/* To compile: cc -o tclock tclock.c -lcurses -lm */
-
-#ifndef PI
-#define PI 3.141592654
-#endif
-
-#define sign(_x) (_x<0?-1:1)
-
-#define ASPECT 2.2
-#define ROUND(value) ((int)((value) + 0.5))
-
-#define A2X(angle,radius) ROUND(ASPECT * radius * sin(angle))
-#define A2Y(angle,radius) ROUND(radius * cos(angle))
-
-/* Plot a point */
-static void
-plot(int x, int y, char col)
-{
- mvaddch(y, x, (chtype) col);
-}
-
-/* Draw a diagonal(arbitrary) line using Bresenham's alogrithm. */
-static void
-dline(int pair, int from_x, int from_y, int x2, int y2, char ch)
-{
- int dx, dy;
- int ax, ay;
- int sx, sy;
- int x, y;
- int d;
-
- if (has_colors())
- attrset(COLOR_PAIR(pair));
-
- dx = x2 - from_x;
- dy = y2 - from_y;
-
- ax = abs(dx * 2);
- ay = abs(dy * 2);
-
- sx = sign(dx);
- sy = sign(dy);
-
- x = from_x;
- y = from_y;
-
- if (ax > ay) {
- d = ay - (ax / 2);
-
- while (1) {
- plot(x, y, ch);
- if (x == x2)
- return;
-
- if (d >= 0) {
- y += sy;
- d -= ax;
- }
- x += sx;
- d += ay;
- }
- } else {
- d = ax - (ay / 2);
-
- while (1) {
- plot(x, y, ch);
- if (y == y2)
- return;
-
- if (d >= 0) {
- x += sx;
- d -= ay;
- }
- y += sy;
- d += ax;
- }
- }
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- int i, cx, cy;
- double cr, mradius, hradius, mangle, hangle;
- double sangle, sradius, hours;
- int hdx, hdy;
- int mdx, mdy;
- int sdx, sdy;
- int ch;
- int lastbeep = -1;
- time_t tim;
- 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();
- cbreak();
- nodelay(stdscr, TRUE);
- curs_set(0);
-
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- init_pair(1, COLOR_RED, my_bg);
- init_pair(2, COLOR_MAGENTA, my_bg);
- init_pair(3, COLOR_GREEN, my_bg);
- }
-#ifdef KEY_RESIZE
- keypad(stdscr, TRUE);
- restart:
-#endif
- cx = (COLS - 1) / 2; /* 39 */
- cy = LINES / 2; /* 12 */
- 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;
- sdx = A2X(sangle, sradius);
- sdy = A2Y(sangle, sradius);
- sprintf(szChar, "%d", i + 1);
-
- mvaddstr(cy - sdy, cx + sdx, szChar);
- }
-
- mvaddstr(0, 0, "ASCII Clock by Howard Jones (ha.jones@ic.ac.uk),1994");
-
- sradius = (4 * sradius) / 5;
- for (;;) {
- napms(100);
-
- tim = time(0);
- t = localtime(&tim);
-
- hours = (t->tm_hour + (t->tm_min / 60.0));
- if (hours > 12.0)
- hours -= 12.0;
-
- mangle = ((t->tm_min + (t->tm_sec / 60.0)) * (2 * PI) / 60.0);
- mdx = A2X(mangle, mradius);
- mdy = A2Y(mangle, mradius);
-
- hangle = ((hours) * (2.0 * PI) / 12.0);
- hdx = A2X(hangle, hradius);
- hdy = A2Y(hangle, hradius);
-
-#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);
-
- dline(3, cx, cy, cx + mdx, cy - mdy, '#');
-
- attrset(A_REVERSE);
- dline(2, cx, cy, cx + hdx, cy - hdy, '.');
- attroff(A_REVERSE);
-
- if (has_colors())
- attrset(COLOR_PAIR(1));
-
- dline(1, cx, cy, cx + sdx, cy - sdy, 'O');
-
- if (has_colors())
- attrset(COLOR_PAIR(0));
-
- mvaddstr(LINES - 2, 0, ctime(&tim));
- refresh();
- if ((t->tm_sec % 5) == 0
- && t->tm_sec != lastbeep) {
- lastbeep = t->tm_sec;
- beep();
- }
-
- if ((ch = getch()) != ERR) {
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- flash();
- erase();
- wrefresh(curscr);
- goto restart;
- }
-#endif
- break;
- }
-
- 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();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/test/test.priv.h b/ncurses-5.3/test/test.priv.h
deleted file mode 100644
index 148e1d6..0000000
--- a/ncurses-5.3/test/test.priv.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/****************************************************************************
- * 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. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996 *
- ****************************************************************************/
-/* $Id$ */
-
-#if HAVE_CONFIG_H
-#include <ncurses_cfg.h>
-#else
-#define HAVE_CURSES_VERSION 0
-#define HAVE_RESIZETERM 0
-#define HAVE_USE_DEFAULT_COLORS 0
-#define HAVE_WRESIZE 0
-#endif
-
-#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
-
-#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 NEED_PTEM_H
-#define NEED_PTEM_H 0
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <signal.h> /* include before curses.h to work around glibc bug */
-
-#include <curses.h>
-#include <term.h>
-
-#if NCURSES_NOMACROS
-#include <nomacros.h>
-#endif
-
-#if HAVE_GETOPT_H
-#include <getopt.h>
-#else
-/* 'getopt()' may be prototyped in <stdlib.h>, but declaring its variables
- * doesn't hurt.
- */
-extern char *optarg;
-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_UNUSED
-#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 typeMalloc(type,n) (type *) malloc((n) * sizeof(type))
-#define typeRealloc(type,n,p) (type *) realloc(p, (n) * sizeof(type))
-#endif
-
-#ifndef ExitProgram
-#define ExitProgram(code) exit(code)
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-/* Use this to quiet gcc's -Wwrite-strings warnings, but accommodate SVr4
- * curses which doesn't have const parameters declared (so far) in the places
- * that XSI shows.
- */
-#ifndef NCURSES_CONST
-#define NCURSES_CONST /* nothing */
-#endif
diff --git a/ncurses-5.3/test/testaddch.c b/ncurses-5.3/test/testaddch.c
deleted file mode 100644
index 13830d7..0000000
--- a/ncurses-5.3/test/testaddch.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
- * to demonstrate an inconsistency between ncurses and SVr4 curses.
- *
- * $Id$
- */
-#include <test.priv.h>
-
-static void
-attr_addstr(const char *s, chtype a)
-{
- while (*s)
- addch(((unsigned char) (*s++)) | a);
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- 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);
-}
diff --git a/ncurses-5.3/test/testcurs.c b/ncurses-5.3/test/testcurs.c
deleted file mode 100644
index 6230c86..0000000
--- a/ncurses-5.3/test/testcurs.c
+++ /dev/null
@@ -1,708 +0,0 @@
-/*
- *
- * This is a test program for the PDCurses screen package for IBM PC type
- * machines.
- *
- * This program was written by John Burnell (johnb@kea.am.dsir.govt.nz)
- * wrs(5/28/93) -- modified to be consistent (perform identically) with either
- * PDCurses or under Unix System V, R4
- *
- * $Id$
- */
-
-#include <test.priv.h>
-#include <ctype.h>
-
-#if defined(XCURSES)
-char *XCursesProgramName = "testcurs";
-#endif
-
-static int initTest(WINDOW **);
-static void display_menu(int, int);
-static void inputTest(WINDOW *);
-static void introTest(WINDOW *);
-static void outputTest(WINDOW *);
-static void padTest(WINDOW *);
-static void scrollTest(WINDOW *);
-#if defined(PDCURSES) && !defined(XCURSES)
-static void resizeTest(WINDOW *);
-#endif
-
-struct commands {
- NCURSES_CONST char *text;
- void (*function) (WINDOW *);
-};
-typedef struct commands COMMAND;
-
-const COMMAND command[] =
-{
- {"General Test", introTest},
- {"Pad Test", padTest},
-#if defined(PDCURSES) && !defined(XCURSES)
- {"Resize Test", resizeTest},
-#endif
- {"Scroll Test", scrollTest},
- {"Input Test", inputTest},
- {"Output Test", outputTest}
-};
-#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 argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- WINDOW *win;
- int key;
- int old_option = (-1);
- int new_option = 0;
- bool quit = FALSE;
- unsigned n;
-
- setlocale(LC_ALL, "");
-
-#ifdef PDCDEBUG
- PDC_debug("testcurs started\n");
-#endif
- if (!initTest(&win))
- ExitProgram(EXIT_FAILURE);
-
- erase();
- display_menu(old_option, new_option);
- for (;;) {
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- wbkgd(win, COLOR_PAIR(1));
- } else
- wbkgd(win, A_REVERSE);
-#else
- wbkgd(win, A_REVERSE);
-#endif
- werase(win);
-
- noecho();
- 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:
- case KEY_ENTER:
- erase();
- refresh();
- (*command[new_option].function) (win);
- erase();
- display_menu(old_option, new_option);
- break;
- case KEY_UP:
- new_option = (new_option == 0) ? new_option : new_option - 1;
- display_menu(old_option, new_option);
- break;
- case KEY_DOWN:
- new_option = (new_option == MAX_OPTIONS - 1) ? new_option :
- new_option + 1;
- display_menu(old_option, new_option);
- break;
- case 'Q':
- case 'q':
- quit = TRUE;
- break;
- default:
- beep();
- break;
- case ' ':
- break;
- }
- if (quit == TRUE)
- break;
- }
-
- delwin(win);
-
- endwin();
-#ifdef XCURSES
- XCursesExit();
-#endif
- ExitProgram(EXIT_SUCCESS);
-}
-
-static void
-Continue(WINDOW *win)
-{
- int y1 = getmaxy(win);
- int x1 = getmaxx(win);
- int y0 = y1 < 10 ? y1 : 10;
- int x0 = 1;
- long save;
-
- save = mvwinch(win, y0, x1 - 1);
-
- mvwaddstr(win, y0, x0, " Press any key to continue");
- wclrtoeol(win);
- getyx(win, y0, x0);
-
- mvwaddch(win, y0, x1 - 1, save);
-
- wmove(win, y0, x0);
- raw();
- wgetch(win);
-}
-
-static int
-initTest(WINDOW **win)
-{
-#ifdef PDCDEBUG
- PDC_debug("initTest called\n");
-#endif
-#ifdef TRACE
- trace(TRACE_MAXIMUM);
-#endif
- initscr();
-#ifdef PDCDEBUG
- PDC_debug("after initscr()\n");
-#endif
-#ifdef A_COLOR
- if (has_colors())
- start_color();
-#endif
- width = 60;
- height = 13; /* Create a drawing window */
- *win = newwin(height, width, (LINES - height) / 2, (COLS - width) / 2);
- if (*win == NULL) {
- endwin();
- return 0;
- }
- return 1;
-}
-
-static void
-introTest(WINDOW *win)
-{
- wmove(win, height / 2 - 5, width / 2);
- wvline(win, ACS_VLINE, 10);
- wmove(win, height / 2, width / 2 - 10);
- whline(win, ACS_HLINE, 20);
- Continue(win);
-
- beep();
- werase(win);
-
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- cbreak();
- mvwaddstr(win, 1, 1,
- "You should have rectangle in the middle of the screen");
- mvwaddstr(win, 2, 1, "You should have heard a beep");
- Continue(win);
- return;
-}
-
-static void
-scrollTest(WINDOW *win)
-{
- int i;
- int half;
- int OldY;
- NCURSES_CONST char *Message = "The window will now scroll slowly";
-
- wclear(win);
- OldY = getmaxy(win);
- half = OldY / 2;
- mvwprintw(win, OldY - 2, 1, Message);
- wrefresh(win);
- scrollok(win, TRUE);
- for (i = 1; i <= OldY; i++) {
- napms(600);
- scroll(win);
- wrefresh(win);
- }
-
- werase(win);
- for (i = 1; i < OldY; i++) {
- mvwprintw(win, i, 1, "Line %d", i);
- }
- mvwprintw(win, OldY - 2, 1, "The top of the window will scroll");
- wmove(win, 1, 1);
- wsetscrreg(win, 0, half - 1);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- for (i = 1; i <= half; i++) {
- napms(600);
- scroll(win);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- }
-
- werase(win);
- for (i = 1; i < OldY; i++) {
- mvwprintw(win, i, 1, "Line %d", i);
- }
- mvwprintw(win, 1, 1, "The bottom of the window will scroll");
- wmove(win, OldY - 2, 1);
- wsetscrreg(win, half, --OldY);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- for (i = half; i <= OldY; i++) {
- napms(600);
- wscrl(win, -1);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- }
- wsetscrreg(win, 0, OldY);
-}
-
-static void
-inputTest(WINDOW *win)
-{
- int answered;
- int repeat;
- int w, h, bx, by, sw, sh, i, c, num;
- char buffer[80];
- WINDOW *subWin;
- wclear(win);
-
- getmaxyx(win, h, w);
- getbegyx(win, by, bx);
- sw = w / 3;
- sh = h / 3;
- if ((subWin = subwin(win, sh, sw, by + h - sh - 2, bx + w - sw - 2)) == NULL)
- return;
-
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(2, COLOR_WHITE, COLOR_RED);
- wbkgd(subWin, COLOR_PAIR(2) | A_BOLD);
- } else
- wbkgd(subWin, A_BOLD);
-#else
- wbkgd(subWin, A_BOLD);
-#endif
- box(subWin, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
-
- nocbreak();
- mvwaddstr(win, 2, 1, "Press some keys for 5 seconds");
- mvwaddstr(win, 1, 1, "Pressing ^C should do nothing");
- wrefresh(win);
-
- werase(subWin);
- box(subWin, ACS_VLINE, ACS_HLINE);
- for (i = 0; i < 5; i++) {
- mvwprintw(subWin, 1, 1, "Time = %d", i);
- wrefresh(subWin);
- napms(1000);
- flushinp();
- }
-
- delwin(subWin);
- werase(win);
- flash();
- wrefresh(win);
- napms(500);
-
- mvwaddstr(win, 2, 1, "Press a key, followed by ENTER");
- wmove(win, 9, 10);
- wrefresh(win);
- echo();
- noraw();
- wgetch(win);
- flushinp();
-
- wmove(win, 9, 10);
- wdelch(win);
- mvwaddstr(win, 4, 1, "The character should now have been deleted");
- Continue(win);
-
- wclear(win);
- mvwaddstr(win, 1, 1, "Press keys (or mouse buttons) to show their names");
- mvwaddstr(win, 2, 1, "Press spacebar to finish");
- wrefresh(win);
- keypad(win, TRUE);
- raw();
- noecho();
- typeahead(-1);
-#if defined(PDCURSES)
- mouse_set(ALL_MOUSE_EVENTS);
-#endif
- for (;;) {
- wmove(win, 3, 5);
- c = wgetch(win);
- wclrtobot(win);
- if (c >= KEY_MIN)
- wprintw(win, "Key Pressed: %s", keyname(c));
- else if (isprint(c))
- wprintw(win, "Key Pressed: %c", c);
- else
- wprintw(win, "Key Pressed: %s", unctrl(c));
-#if defined(PDCURSES)
- if (c == KEY_MOUSE) {
- int button = 0;
- request_mouse_pos();
- if (BUTTON_CHANGED(1))
- button = 1;
- else if (BUTTON_CHANGED(2))
- button = 2;
- else if (BUTTON_CHANGED(3))
- button = 3;
- else
- button = 0;
- wmove(win, 4, 18);
- wprintw(win, "Button %d: ", button);
- if (MOUSE_MOVED)
- wprintw(win, "moved: ");
- else if ((BUTTON_STATUS(button) & BUTTON_ACTION_MASK) == BUTTON_PRESSED)
- wprintw(win, "pressed: ");
- else if ((BUTTON_STATUS(button) & BUTTON_ACTION_MASK) == BUTTON_DOUBLE_CLICKED)
- wprintw(win, "double: ");
- else
- wprintw(win, "released: ");
- wprintw(win, " Position: Y: %d X: %d", MOUSE_Y_POS, MOUSE_X_POS);
- }
-#endif
- wrefresh(win);
- if (c == ' ')
- break;
- }
-#if 0
- nodelay(win, TRUE);
- wgetch(win);
- nodelay(win, FALSE);
-#endif
-#if defined(PDCURSES)
- mouse_set(0L);
-#endif
- refresh();
-
- 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
-outputTest(WINDOW *win)
-{
- WINDOW *win1;
- char Buffer[80];
- chtype ch;
- int by, bx;
-
- nl();
- wclear(win);
- mvwaddstr(win, 1, 1,
- "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 ^");
- Continue(win);
-
- wclear(win);
- wattron(win, A_BOLD);
- mvwaddstr(win, 1, 1, "A new window will appear with this text in it");
- mvwaddstr(win, 8, 1, "Press any key to continue");
- wrefresh(win);
- wgetch(win);
-
- getbegyx(win, by, bx);
-
- if (LINES < 24 || COLS < 75) {
- mvwaddstr(win, 5, 1,
- "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 {
- win1 = newwin(10, 50, 14, 25);
- if (win1 == NULL) {
- endwin();
- return;
- }
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(3, COLOR_BLUE, COLOR_WHITE);
- wbkgd(win1, COLOR_PAIR(3));
- } else
- wbkgd(win1, A_NORMAL);
-#else
- wbkgd(win1, A_NORMAL);
-#endif
- wclear(win1);
- mvwaddstr(win1, 5, 1,
- "This text should appear; using overlay option");
- copywin(win, win1, 0, 0, 0, 0, 9, 49, TRUE);
-
-#if defined(PDCURSES) && !defined(XCURSES)
- box(win1, 0xb3, 0xc4);
-#else
- box(win1, ACS_VLINE, ACS_HLINE);
-#endif
- wmove(win1, 8, 26);
- wrefresh(win1);
- wgetch(win1);
-
- wclear(win1);
- wattron(win1, A_BLINK);
- mvwaddstr(win1, 4, 1,
- "This blinking text should appear in only the second window");
- wattroff(win1, A_BLINK);
- mvwin(win1, by, bx);
- overlay(win, win1);
- mvwin(win1, 14, 25);
- wmove(win1, 8, 26);
- wrefresh(win1);
- wgetch(win1);
- delwin(win1);
- }
-
- clear();
- wclear(win);
- wrefresh(win);
- mvwaddstr(win, 6, 2, "This line shouldn't appear");
- mvwaddstr(win, 4, 2, "Only half of the next line is visible");
- mvwaddstr(win, 5, 2, "Only half of the next line is visible");
- wmove(win, 6, 1);
- wclrtobot(win);
- wmove(win, 5, 20);
- wclrtoeol(win);
- mvwaddstr(win, 8, 2, "This line also shouldn't appear");
- wmove(win, 8, 1);
- wdeleteln(win);
- Continue(win);
-
- wmove(win, 5, 9);
- ch = winch(win);
-
- wclear(win);
- wmove(win, 6, 2);
- waddstr(win, "The next char should be l: ");
- winsch(win, ch);
- Continue(win);
-
- mvwinsstr(win, 6, 2, "A1B2C3D4E5");
- Continue(win);
-
- wmove(win, 5, 1);
- winsertln(win);
- mvwaddstr(win, 5, 2, "The lines below should have moved down");
- Continue(win);
-
- wclear(win);
- wmove(win, 2, 2);
- wprintw(win, "This is a formatted string in a window: %d %s\n", 42,
- "is it");
- mvwaddstr(win, 10, 1, "Enter a string: ");
- wrefresh(win);
- noraw();
- echo();
- *Buffer = 0;
- wscanw(win, "%s", Buffer);
-
- printw("This is a formatted string in stdscr: %d %s\n", 42, "is it");
- mvaddstr(10, 1, "Enter a string: ");
- *Buffer = 0;
- scanw("%s", Buffer);
-
- if (tigetstr("cvvis") != 0) {
- wclear(win);
- curs_set(2);
- mvwaddstr(win, 1, 1, "The cursor should appear as a block (visible)");
- Continue(win);
- }
-
- if (tigetstr("civis") != 0) {
- wclear(win);
- curs_set(0);
- mvwaddstr(win, 1, 1,
- "The cursor should have disappeared (invisible)");
- Continue(win);
- }
-
- if (tigetstr("cnorm") != 0) {
- wclear(win);
- curs_set(1);
- mvwaddstr(win, 1, 1, "The cursor should be an underline (normal)");
- Continue(win);
- }
-#ifdef A_COLOR
- if (has_colors()) {
- wclear(win);
- mvwaddstr(win, 1, 1, "Colors should change after you press a key");
- Continue(win);
- init_pair(1, COLOR_RED, COLOR_WHITE);
- wrefresh(win);
- }
-#endif
-
- werase(win);
- mvwaddstr(win, 1, 1, "Information About Your Terminal");
- mvwaddstr(win, 3, 1, termname());
- mvwaddstr(win, 4, 1, longname());
- if (termattrs() & A_BLINK)
- mvwaddstr(win, 5, 1, "This terminal supports blinking.");
- else
- mvwaddstr(win, 5, 1, "This terminal does NOT support blinking.");
-
- mvwaddnstr(win, 7, 5, "Have a nice day!ok", 16);
- wrefresh(win);
-
- mvwinnstr(win, 7, 5, Buffer, 18);
- mvaddstr(LINES - 2, 10, Buffer);
- refresh();
- Continue(win);
-}
-
-#if defined(PDCURSES) && !defined(XCURSES)
-static void
-resizeTest(WINDOW *dummy GCC_UNUSED)
-{
- WINDOW *win1;
-
- savetty();
-
- clear();
- refresh();
-# if defined(OS2)
- resize_term(50, 120);
-# else
- resize_term(50, 80);
-# endif
-
- win1 = newwin(10, 50, 14, 25);
- if (win1 == NULL) {
- endwin();
- return;
- }
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(3, COLOR_BLUE, COLOR_WHITE);
- wattrset(win1, COLOR_PAIR(3));
- }
-#endif
- wclear(win1);
-
- mvwaddstr(win1, 1, 1, "The screen may now have 50 lines");
- Continue(win1);
-
- wclear(win1);
- resetty();
-
- mvwaddstr(win1, 1, 1, "The screen should now be reset");
- Continue(win1);
-
- delwin(win1);
-
- clear();
- refresh();
-
-}
-#endif
-
-static void
-padTest(WINDOW *dummy GCC_UNUSED)
-{
- WINDOW *pad, *spad;
-
- pad = newpad(50, 100);
- wattron(pad, A_REVERSE);
- 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");
- mvwaddstr(pad, 11, 1, "This line should not appear.It will now");
- wmove(pad, 10, 1);
- wclrtoeol(pad);
- mvwaddstr(pad, 10, 1, " Press any key to continue");
- prefresh(pad, 0, 0, 0, 0, 10, 45);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- spad = subpad(pad, 12, 25, 6, 52);
- mvwaddstr(spad, 2, 2, "This is a new subpad");
- box(spad, 0, 0);
- prefresh(pad, 0, 0, 0, 0, 15, 75);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- mvwaddstr(pad, 35, 2, "This is displayed at line 35 in the pad");
- mvwaddstr(pad, 40, 1, " Press any key to continue");
- prefresh(pad, 30, 0, 0, 0, 10, 45);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- delwin(pad);
-}
-
-static void
-display_menu(int old_option, int new_option)
-{
- register size_t i;
-
- attrset(A_NORMAL);
- mvaddstr(3, 20, "PDCurses Test Program");
-
- for (i = 0; i < MAX_OPTIONS; i++)
- mvaddstr(5 + i, 25, command[i].text);
- if (old_option != (-1))
- mvaddstr(5 + old_option, 25, command[old_option].text);
- attrset(A_REVERSE);
- 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");
- refresh();
-}
diff --git a/ncurses-5.3/test/testscanw.c b/ncurses-5.3/test/testscanw.c
deleted file mode 100644
index 668fca4..0000000
--- a/ncurses-5.3/test/testscanw.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* gleaned from a web-search, shows a bug combining scanw and implicit scroll.
- * Date: 1997/03/17
- * From: bayern@morpheus.cis.yale.edu
- *
- * $Id$
- */
-#include <test.priv.h>
-#include <ctype.h>
-
-int
-main(int argc, char *argv[])
-{
- long badanswer = 1;
- long *response = &badanswer;
-
- setlocale(LC_ALL, "");
-
- initscr();
- scrollok(stdscr, TRUE);
- idlok(stdscr, TRUE);
- echo();
-
-#if 0
- trace(TRACE_UPDATE | TRACE_CALLS);
-#endif
- 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();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/ncurses-5.3/test/tracemunch b/ncurses-5.3/test/tracemunch
deleted file mode 100755
index fd89ff6..0000000
--- a/ncurses-5.3/test/tracemunch
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/usr/bin/perl -w
-# $Id$
-##############################################################################
-# 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.
-#
-
-$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];
-
- $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;
-}
-
-while (<STDIN>)
-{
-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 ($_ =~ /^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 = "";
- } 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)
- if ($_ =~ /$putattr/)
- {
- $putattr_chars = $1;
- $starty = $2;
- $startx = $3;
- while (<STDIN>)
- {
- if ($_ =~ /$putattr/) {
- $putattr_chars .= $1;
- } else {
- last;
- }
- }
- print "RUN of PutAttrChar()s: \"$putattr_chars\" from ${starty}, ${startx}\n";
- redo CLASSIFY;
- }
-
- # Compactify runs of waddnstr calls (TR_CALLS)
- if ($_ =~ /$waddnstr/)
- {
- $waddnstr_chars = $2;
- $winaddr = $1;
- while (<STDIN>)
- {
- if ($_ =~ /$waddnstr/ && $1 eq $winaddr) {
- $waddnstr_chars .= $2;
- } else {
- last;
- }
- }
- $winaddstr = &transaddr($winaddr);
- print "RUN of waddnstr()s: $winaddr, \"$waddnstr_chars\"\n";
- redo CLASSIFY;
- }
-
- # More transformations can go here
-
- # Repeated runs of anything
- $anyline = &transaddr($_);
- $repeatcount = 1;
- while (<STDIN>) {
- if (&transaddr($_) eq $anyline) {
- $repeatcount++;
- } else {
- last;
- }
- }
- if ($repeatcount > 1) {
- print "${repeatcount} REPEATS OF $anyline";
- } else {
- print $anyline
- }
- redo CLASSIFY if $_;
-
- } # :CLASSIFY
-}
-
-# tracemunch ends here
diff --git a/ncurses-5.3/test/view.c b/ncurses-5.3/test/view.c
deleted file mode 100644
index 73c64d6..0000000
--- a/ncurses-5.3/test/view.c
+++ /dev/null
@@ -1,512 +0,0 @@
-/*
- * view.c -- a silly little viewer program
- *
- * written by Eric S. Raymond <esr@snark.thyrsus.com> December 1994
- * to test the scrolling code in ncurses.
- *
- * modified by Thomas Dickey <dickey@clark.net> July 1995 to demonstrate
- * the use of 'resizeterm()', and May 2000 to illustrate wide-character
- * handling.
- *
- * Takes a filename argument. It's a simple file-viewer with various
- * scroll-up and scroll-down commands.
- *
- * n -- scroll one line forward
- * p -- scroll one line back
- *
- * Either command accepts a numeric prefix interpreted as a repeat count.
- * Thus, typing `5n' should scroll forward 5 lines in the file.
- *
- * The way you can tell this is working OK is that, in the trace file,
- * there should be one scroll operation plus a small number of line
- * updates, as opposed to a whole-page update. This means the physical
- * scroll operation worked, and the refresh() code only had to do a
- * partial repaint.
- *
- * $Id$
- */
-
-#include <ctype.h>
-#include <time.h>
-
-#include <test.priv.h>
-
-#if HAVE_TERMIOS_H
-# include <termios.h>
-#else
-# include <sgtty.h>
-#endif
-
-#if !defined(sun) || !HAVE_TERMIOS_H
-# if HAVE_SYS_IOCTL_H
-# include <sys/ioctl.h>
-# endif
-#endif
-
-#define my_pair 1
-
-/* This is needed to compile 'struct winsize' */
-#if NEED_PTEM_H
-#include <sys/stream.h>
-#include <sys/ptem.h>
-#endif
-
-static RETSIGTYPE finish(int sig) GCC_NORETURN;
-static void show_all(const char *tag);
-
-#if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZETERM
-#define CAN_RESIZE 1
-#else
-#define CAN_RESIZE 0
-#endif
-
-#if CAN_RESIZE
-static RETSIGTYPE adjust(int sig);
-static int interrupted;
-#endif
-
-static bool waiting = FALSE;
-static int shift = 0;
-static bool try_color = FALSE;
-
-static char *fname;
-static NCURSES_CH_T **my_lines;
-static NCURSES_CH_T **lptr;
-
-static void
-usage(void)
-{
- static const char *msg[] =
- {
- "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)
- ," -r use old-style sigwinch handler rather than KEY_RESIZE"
-#endif
-#ifdef TRACE
- ," -t trace screen updates"
- ," -T NUM specify trace mask"
-#endif
- };
- size_t n;
- for (n = 0; n < SIZEOF(msg); n++)
- fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-static int
-ch_len(NCURSES_CH_T * src)
-{
- 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++;
-#endif
- return result;
-}
-
-/*
- * Allocate a string into an array of chtype's. If UTF-8 mode is
- * active, translate the string accordingly.
- */
-static NCURSES_CH_T *
-ch_dup(char *src)
-{
- unsigned len = strlen(src);
- NCURSES_CH_T *dst = typeMalloc(NCURSES_CH_T, len + 1);
- unsigned j, k;
-#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++) {
-#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;
-#endif
- return dst;
-}
-
-int
-main(int argc, char *argv[])
-{
- int MAXLINES = 1000;
- FILE *fp;
- char buf[BUFSIZ];
- int i;
- int my_delay = 0;
- NCURSES_CH_T **olptr;
- int length = 0;
- int value = 0;
- bool done = FALSE;
- bool got_number = FALSE;
-#if CAN_RESIZE
- 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
-
- while ((i = getopt(argc, argv, "cin:rtT:")) != EOF) {
- 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':
- nonposix_resize = TRUE;
- break;
-#endif
-#ifdef TRACE
- case 'T':
- trace(atoi(optarg));
- break;
- case 't':
- trace(TRACE_CALLS);
- break;
-#endif
- default:
- usage();
- }
- }
- if (optind + 1 != argc)
- usage();
-
- if ((my_lines = typeMalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0)
- usage();
-
- fname = argv[optind];
- if ((fp = fopen(fname, "r")) == 0) {
- perror(fname);
- ExitProgram(EXIT_FAILURE);
- }
-#if CAN_RESIZE
- if (nonposix_resize)
- (void) signal(SIGWINCH, adjust); /* arrange interrupts to resize */
-#endif
-
- /* slurp the file */
- for (lptr = &my_lines[0]; (lptr - my_lines) < MAXLINES; lptr++) {
- char temp[BUFSIZ], *s, *d;
- int col;
-
- if (fgets(buf, sizeof(buf), fp) == 0)
- break;
-
- /* convert tabs so that shift will work properly */
- for (s = buf, d = temp, col = 0; (*d = *s) != '\0'; s++) {
- if (*d == '\n') {
- *d = '\0';
- break;
- } else if (*d == '\t') {
- col = (col | 7) + 1;
- while ((d - temp) != col)
- *d++ = ' ';
- } else
-#if USE_WIDEC_SUPPORT
- col++, d++;
-#else
- if (isprint(UChar(*d))) {
- col++;
- d++;
- } else {
- sprintf(d, "\\%03o", UChar(*s));
- d += strlen(d);
- col = (d - temp);
- }
-#endif
- }
- *lptr = ch_dup(temp);
- }
- (void) fclose(fp);
- 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 */
- nodelay(stdscr, TRUE);
- idlok(stdscr, TRUE); /* allow use of insert/delete line */
-
- if (try_color) {
- if (has_colors()) {
- start_color();
- init_pair(my_pair, COLOR_WHITE, COLOR_BLUE);
- bkgd(COLOR_PAIR(my_pair));
- } else {
- try_color = FALSE;
- }
- }
-
- lptr = my_lines;
- while (!done) {
- int n, c;
-
- if (!got_number)
- show_all(my_label);
-
- n = 0;
- for (;;) {
-#if CAN_RESIZE
- if (interrupted) {
- adjust(0);
- my_label = "interrupt";
- }
-#endif
- waiting = TRUE;
- c = getch();
- waiting = FALSE;
- if ((c < 127) && isdigit(c)) {
- if (!got_number) {
- mvprintw(0, 0, "Count: ");
- clrtoeol();
- }
- addch(c);
- value = 10 * value + (c - '0');
- got_number = TRUE;
- } else
- break;
- }
- if (got_number && value) {
- n = value;
- } else {
- n = 1;
- }
-
- if (c != ERR)
- my_label = keyname(c);
- switch (c) {
- case KEY_DOWN:
- case 'n':
- olptr = lptr;
- for (i = 0; i < n; i++)
- if ((lptr - my_lines) < (length - LINES + 1))
- lptr++;
- else
- break;
- wscrl(stdscr, lptr - olptr);
- break;
-
- case KEY_UP:
- case 'p':
- olptr = lptr;
- for (i = 0; i < n; i++)
- if (lptr > my_lines)
- lptr--;
- else
- break;
- wscrl(stdscr, lptr - olptr);
- break;
-
- case 'h':
- case KEY_HOME:
- lptr = my_lines;
- break;
-
- case 'e':
- case KEY_END:
- if (length > LINES)
- lptr = my_lines + length - LINES + 1;
- else
- lptr = my_lines;
- break;
-
- case 'r':
- case KEY_RIGHT:
- shift += n;
- break;
-
- case 'l':
- case KEY_LEFT:
- shift -= n;
- if (shift < 0) {
- shift = 0;
- beep();
- }
- break;
-
- case 'q':
- done = TRUE;
- break;
-
-#ifdef KEY_RESIZE
- case KEY_RESIZE: /* ignore this; ncurses will repaint */
- break;
-#endif
- 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:
- if (!my_delay)
- napms(50);
- break;
- default:
- beep();
- break;
- }
- if (c >= KEY_MIN || (c > 0 && !isdigit(c))) {
- got_number = FALSE;
- value = 0;
- }
- }
-
- finish(0); /* we're done */
-}
-
-static RETSIGTYPE
-finish(int sig)
-{
- endwin();
- ExitProgram(sig != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
-}
-
-#if CAN_RESIZE
-/*
- * This uses functions that are "unsafe", but it seems to work on SunOS and
- * 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)
-{
- if (waiting || sig == 0) {
- struct winsize size;
-
- if (ioctl(fileno(stdout), TIOCGWINSZ, &size) == 0) {
- resize_term(size.ws_row, size.ws_col);
- wrefresh(curscr); /* Linux needs this */
- show_all(sig ? "SIGWINCH" : "interrupt");
- }
- interrupted = FALSE;
- } else {
- interrupted = TRUE;
- }
- (void) signal(SIGWINCH, adjust); /* some systems need this */
-}
-#endif /* CAN_RESIZE */
-
-static void
-show_all(const char *tag)
-{
- int i;
- char temp[BUFSIZ];
- NCURSES_CH_T *s;
- time_t this_time;
-
-#if CAN_RESIZE
- 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
- sprintf(temp, "view %.*s", (int) sizeof(temp) - 7, fname);
-#endif
- 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);
- printw("%3ld:", (long) (lptr + i - my_lines));
- 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);
-#endif
- if (try_color)
- wchgat(stdscr, -1, A_NORMAL, my_pair, NULL);
- }
- }
- setscrreg(1, LINES - 1);
- scrollok(stdscr, TRUE);
- refresh();
-}
diff --git a/ncurses-5.3/test/worm.c b/ncurses-5.3/test/worm.c
deleted file mode 100644
index 4fd8cf5..0000000
--- a/ncurses-5.3/test/worm.c
+++ /dev/null
@@ -1,427 +0,0 @@
-/*
-
- @@@ @@@ @@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@
- @@@ @@@ @@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@
- @@@ @@@ @@@@ @@@@ @@@@ @@@@ @@@ @@@@
- @@@ @@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@ @@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@@ @@@@ @@@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@@@@@@@@@@ @@@@ @@@@ @@@ @@@ @@@ @@@
- @@@@ @@@@ @@@@@@@@@@@@ @@@ @@@ @@@ @@@
- @@ @@ @@@@@@@@@@ @@@ @@@ @@@ @@@
-
- Eric P. Scott
- Caltech High Energy Physics
- October, 1980
-
- Hacks to turn this into a test frame for cursor movement:
- Eric S. Raymond <esr@snark.thyrsus.com>
- January, 1995
-
- July 1995 (esr): worms is now in living color! :-)
-
-Options:
- -f fill screen with copies of 'WORM' at start.
- -l <n> set worm length
- -n <n> set number of worms
- -t make worms leave droppings
- -T <start> <end> set trace interval
- -S set single-stepping during trace interval
- -N suppress cursor-movement optimization
-
- This program makes a good torture-test for the ncurses cursor-optimization
- code. You can use -T to set the worm move interval over which movement
- traces will be dumped. The program stops and waits for one character of
- input at the beginning and end of the interval.
-
- $Id$
-*/
-
-#include <test.priv.h>
-
-static chtype flavor[] =
-{
- 'O', '*', '#', '$', '%', '0', '@',
-};
-static const short xinc[] =
-{
- 1, 1, 1, 0, -1, -1, -1, 0
-}, yinc[] =
-{
- -1, 0, 1, 1, 1, 0, -1, -1
-};
-static struct worm {
- int orientation, head;
- short *xpos, *ypos;
-} worm[40];
-
-static const char *field;
-static int length = 16, number = 3;
-static chtype trail = ' ';
-
-#ifdef TRACE
-int generation, trace_start, trace_end, singlestep;
-#endif /* TRACE */
-/* *INDENT-OFF* */
-static const struct options {
- int nopts;
- int opts[3];
-} normal[8]={
- { 3, { 7, 0, 1 } },
- { 3, { 0, 1, 2 } },
- { 3, { 1, 2, 3 } },
- { 3, { 2, 3, 4 } },
- { 3, { 3, 4, 5 } },
- { 3, { 4, 5, 6 } },
- { 3, { 5, 6, 7 } },
- { 3, { 6, 7, 0 } }
-}, upper[8]={
- { 1, { 1, 0, 0 } },
- { 2, { 1, 2, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 4, 5, 0 } },
- { 1, { 5, 0, 0 } },
- { 2, { 1, 5, 0 } }
-}, left[8]={
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 2, 3, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 3, 7, 0 } },
- { 1, { 7, 0, 0 } },
- { 2, { 7, 0, 0 } }
-}, right[8]={
- { 1, { 7, 0, 0 } },
- { 2, { 3, 7, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 3, 4, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 6, 7, 0 } }
-}, lower[8]={
- { 0, { 0, 0, 0 } },
- { 2, { 0, 1, 0 } },
- { 1, { 1, 0, 0 } },
- { 2, { 1, 5, 0 } },
- { 1, { 5, 0, 0 } },
- { 2, { 5, 6, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-}, upleft[8]={
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 1, 3, 0 } },
- { 1, { 1, 0, 0 } }
-}, upright[8]={
- { 2, { 3, 5, 0 } },
- { 1, { 3, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 5, 0, 0 } }
-}, lowleft[8]={
- { 3, { 7, 0, 1 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 1, 0, 0 } },
- { 2, { 1, 7, 0 } },
- { 1, { 7, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-}, lowright[8]={
- { 0, { 0, 0, 0 } },
- { 1, { 7, 0, 0 } },
- { 2, { 5, 7, 0 } },
- { 1, { 5, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-};
-/* *INDENT-ON* */
-
-static void
-cleanup(void)
-{
- standend();
- refresh();
- curs_set(1);
- endwin();
-}
-
-static RETSIGTYPE
-onsig(int sig GCC_UNUSED)
-{
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-int
-main(int argc, char *argv[])
-{
- short **ref;
- int x, y;
- int n;
- struct worm *w;
- const struct options *op;
- int h;
- short *ip;
- int last, bottom;
-
- setlocale(LC_ALL, "");
-
- for (x = 1; x < argc; x++) {
- char *p;
- p = argv[x];
- if (*p == '-')
- p++;
- switch (*p) {
- case 'f':
- field = "WORM";
- break;
- case 'l':
- if (++x == argc)
- goto usage;
- if ((length = atoi(argv[x])) < 2 || length > 1024) {
- fprintf(stderr, "%s: Invalid length\n", *argv);
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 'n':
- if (++x == argc)
- goto usage;
- if ((number = atoi(argv[x])) < 1 || number > 40) {
- fprintf(stderr, "%s: Invalid number of worms\n", *argv);
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 't':
- trail = '.';
- break;
-#ifdef TRACE
- case 'S':
- singlestep = TRUE;
- break;
- case 'T':
- trace_start = atoi(argv[++x]);
- trace_end = atoi(argv[++x]);
- break;
- case 'N':
- _nc_optimize_enable ^= OPTIMIZE_ALL; /* declared by ncurses */
- break;
-#endif /* TRACE */
- default:
- usage:
- fprintf(stderr,
- "usage: %s [-field] [-length #] [-number #] [-trail]\n", *argv);
- ExitProgram(EXIT_FAILURE);
- }
- }
-
- signal(SIGINT, onsig);
- initscr();
- noecho();
- cbreak();
- nonl();
-
- curs_set(0);
-
- bottom = LINES - 1;
- last = COLS - 1;
-
-#ifdef A_COLOR
- if (has_colors()) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
-
-#define SET_COLOR(num, fg) \
- init_pair(num+1, fg, bg); \
- flavor[num] |= COLOR_PAIR(num+1) | A_BOLD
-
- SET_COLOR(0, COLOR_GREEN);
- SET_COLOR(1, COLOR_RED);
- SET_COLOR(2, COLOR_CYAN);
- SET_COLOR(3, COLOR_WHITE);
- SET_COLOR(4, COLOR_MAGENTA);
- SET_COLOR(5, COLOR_BLUE);
- SET_COLOR(6, COLOR_YELLOW);
- }
-#endif /* A_COLOR */
-
- ref = typeMalloc(short *, LINES);
- for (y = 0; y < LINES; y++) {
- ref[y] = typeMalloc(short, COLS);
- for (x = 0; x < COLS; x++) {
- ref[y][x] = 0;
- }
- }
-
-#ifdef BADCORNER
- /* if addressing the lower right corner doesn't work in your curses */
- ref[bottom][last] = 1;
-#endif /* BADCORNER */
-
- for (n = number, w = &worm[0]; --n >= 0; w++) {
- w->orientation = w->head = 0;
- if (!(ip = typeMalloc(short, (length + 1)))) {
- fprintf(stderr, "%s: out of memory\n", *argv);
- 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);
- ExitProgram(EXIT_FAILURE);
- }
- w->ypos = ip;
- for (y = length; --y >= 0;)
- *ip++ = -1;
- }
- if (field) {
- const char *p;
- p = field;
- for (y = bottom; --y >= 0;) {
- for (x = COLS; --x >= 0;) {
- addch((chtype) (*p++));
- if (!*p)
- p = field;
- }
- }
- }
- napms(10);
- refresh();
-#ifndef TRACE
- nodelay(stdscr, TRUE);
-#endif
-
- for (;;) {
-#ifdef TRACE
- if (trace_start || trace_end) {
- if (generation == trace_start) {
- trace(TRACE_CALLS);
- getch();
- } else if (generation == trace_end) {
- trace(0);
- getch();
- }
-
- if (singlestep && generation > trace_start && generation < trace_end)
- getch();
-
- generation++;
- }
-#else
- int ch;
-
- if ((ch = getch()) > 0) {
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- if (last != COLS - 1) {
- for (y = 0; y <= bottom; y++) {
- ref[y] = typeRealloc(short, COLS, ref[y]);
- for (x = last + 1; x < COLS; x++)
- ref[y][x] = 0;
- }
- last = COLS - 1;
- }
- if (bottom != LINES - 1) {
- for (y = LINES; y <= bottom; y++)
- free(ref[y]);
- ref = typeRealloc(short *, LINES, ref);
- for (y = bottom + 1; y < LINES; y++) {
- ref[y] = typeMalloc(short, COLS);
- for (x = 0; x < COLS; x++)
- ref[y][x] = 0;
- }
- bottom = LINES - 1;
- }
- }
-#endif
- /*
- * Make it simple to put this into single-step mode, or resume
- * normal operation -TD
- */
- if (ch == 'q') {
- cleanup();
- ExitProgram(EXIT_SUCCESS);
- } else if (ch == 's') {
- nodelay(stdscr, FALSE);
- } else if (ch == ' ') {
- nodelay(stdscr, TRUE);
- }
- }
-#endif /* TRACE */
-
- 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 % SIZEOF(flavor)]);
- ref[y][x]++;
- } else {
- y = w->ypos[h];
- }
- if (x > last)
- x = last;
- if (y > bottom)
- y = bottom;
- if (++h == length)
- h = 0;
- if (w->xpos[w->head = h] >= 0) {
- int x1, y1;
- x1 = w->xpos[h];
- y1 = w->ypos[h];
- if (y1 < LINES
- && x1 < COLS
- && --ref[y1][x1] == 0) {
- move(y1, x1);
- addch(trail);
- }
- }
- op = &(x == 0 ? (y == 0 ? upleft : (y == bottom ? lowleft :
- 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();
- ExitProgram(EXIT_SUCCESS);
- case 1:
- w->orientation = op->opts[0];
- break;
- default:
- w->orientation = op->opts[(int) (ranf() * (float) op->nopts)];
- }
- move(y += yinc[w->orientation], x += xinc[w->orientation]);
-
- if (y < 0)
- y = 0;
- addch(flavor[n % SIZEOF(flavor)]);
- ref[w->ypos[h] = y][w->xpos[h] = x]++;
- }
- napms(10);
- refresh();
- }
-}
diff --git a/ncurses-5.3/test/xmas.c b/ncurses-5.3/test/xmas.c
deleted file mode 100644
index 90183ff..0000000
--- a/ncurses-5.3/test/xmas.c
+++ /dev/null
@@ -1,1159 +0,0 @@
-/******************************************************************************/
-/* asciixmas */
-/* December 1989 Larry Bartz Indianapolis, IN */
-/* */
-/* */
-/* I'm dreaming of an ascii character-based monochrome Christmas, */
-/* Just like the one's I used to know! */
-/* Via a full duplex communications channel, */
-/* At 9600 bits per second, */
-/* Even though it's kinda slow. */
-/* */
-/* I'm dreaming of an ascii character-based monochrome Christmas, */
-/* With ev'ry C program I write! */
-/* May your screen be merry and bright! */
-/* And may all your Christmases be amber or green, */
-/* (for reduced eyestrain and improved visibility)! */
-/* */
-/* */
-/* */
-/* */
-/* */
-/* IMPLEMENTATION */
-/* */
-/* Feel free to modify the defined string FROMWHO to reflect you, your */
-/* organization, your site, whatever. */
-/* */
-/* This really looks a lot better if you can turn off your cursor before */
-/* execution. I wanted to do that here but very few termcap entries or */
-/* terminfo definitions have the appropriate string defined. If you know */
-/* the string(s) for the terminal(s) you use or which your site supports, */
-/* you could call asciixmas from within a shell in which you issue the */
-/* string to the terminal. The cursor is distracting but it doesn't really */
-/* ruin the show. */
-/* */
-/* At our site, we invoke this for our users just after login and the */
-/* determination of terminal type. */
-/* */
-/* */
-/* PORTABILITY */
-/* */
-/* I wrote this using only the very simplest curses functions so that it */
-/* might be the most portable. I was personally able to test on five */
-/* different cpu/UNIX combinations. */
-/* */
-/* */
-/* COMPILE */
-/* */
-/* usually this: */
-/* */
-/* cc -O asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* Zilog S8000 models 11, 21, 31, etc with ZEUS variant of SYSTEM III */
-/* maybe other SYSTEM III also: */
-/* */
-/* cc asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* as above with optional "peephole optimizer" installed: */
-/* */
-/* cc -O asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* */
-/* Zilog S8000 models 32, 130 with WE32100 chip and SYS V, REL2 */
-/* maybe 3B2 also? */
-/* */
-/* cc -f -O -K sd asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* Pyramid, Sequent, any other "dual universe" types compile and execute */
-/* under either universe. The compile line for the ucb universe (as you */
-/* might expect) is the same as for SYS III UNIX: */
-/* */
-/* cc -O asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* The above compile will also hold true for other BSD systems. (I hope) */
-/* */
-/* */
-/* */
-/* */
-/* For the Scrooges out there among you who don't want this thing to loop */
-/* forever (or until the user hits a key), insert this into your compile */
-/* line just after "cc" : */
-/* */
-/* -DNOLOOP */
-/* */
-/* like so: */
-/* */
-/* cc -DNOLOOP -O asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* */
-/******************************************************************************/
-
-/*
- * $Id$
- */
-#include <test.priv.h>
-
-#define FROMWHO "Mark Hessling - (M.Hessling@gu.edu.au)"
-
-static int my_bg = COLOR_BLACK;
-static int y_pos, x_pos;
-
-static WINDOW *treescrn;
-static WINDOW *treescrn2;
-static WINDOW *treescrn3;
-static WINDOW *treescrn4;
-static WINDOW *treescrn5;
-static WINDOW *treescrn6;
-static WINDOW *treescrn7;
-static WINDOW *treescrn8;
-static WINDOW *dotdeer0;
-static WINDOW *stardeer0;
-static WINDOW *lildeer0;
-static WINDOW *lildeer1;
-static WINDOW *lildeer2;
-static WINDOW *lildeer3;
-static WINDOW *middeer0;
-static WINDOW *middeer1;
-static WINDOW *middeer2;
-static WINDOW *middeer3;
-static WINDOW *bigdeer0;
-static WINDOW *bigdeer1;
-static WINDOW *bigdeer2;
-static WINDOW *bigdeer3;
-static WINDOW *bigdeer4;
-static WINDOW *lookdeer0;
-static WINDOW *lookdeer1;
-static WINDOW *lookdeer2;
-static WINDOW *lookdeer3;
-static WINDOW *lookdeer4;
-static WINDOW *w_holiday;
-static WINDOW *w_del_msg;
-
-static int boxit(void);
-static int seas(void);
-static int greet(void);
-static int fromwho(void);
-static int tree(void);
-static int balls(void);
-static int star(void);
-static int strng1(void);
-static int strng2(void);
-static int strng3(void);
-static int strng4(void);
-static int strng5(void);
-static int reindeer(void);
-static int blinkit(void);
-
-static RETSIGTYPE done(int sig) GCC_NORETURN;
-
-static void
-set_color(WINDOW *win, chtype color)
-{
- if (has_colors()) {
- static bool *pairs;
- int n = (color + 1);
- if (pairs == 0)
- pairs = (bool *) calloc(COLORS + 1, sizeof(bool));
- if (!pairs[n]) {
- init_pair(n, color, my_bg);
- pairs[n] = TRUE;
- }
- wattroff(win, A_COLOR);
- wattron(win, COLOR_PAIR(n));
- }
-}
-
-static void
-unset_color(WINDOW *win)
-{
- if (has_colors())
- wattrset(win, COLOR_PAIR(0));
-}
-
-static void
-look_out(int msecs)
-{
- napms(msecs);
- if (getch() != ERR) {
- beep();
- done(0);
- }
-}
-
-int
-main(int argc GCC_UNUSED, char **argv GCC_UNUSED)
-{
- int loopy;
-
- setlocale(LC_ALL, "");
-
- initscr();
- noecho();
- nonl();
- refresh();
- signal(SIGINT, done);
- signal(SIGTERM, done);
-#if !defined DOS && !defined OS2
- signal(SIGHUP, done);
- signal(SIGQUIT, done);
-#endif
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- }
- curs_set(0);
-
- treescrn = newwin(16, 27, 3, 53);
- treescrn2 = newwin(16, 27, 3, 53);
- treescrn3 = newwin(16, 27, 3, 53);
- treescrn4 = newwin(16, 27, 3, 53);
- treescrn5 = newwin(16, 27, 3, 53);
- treescrn6 = newwin(16, 27, 3, 53);
- treescrn7 = newwin(16, 27, 3, 53);
- treescrn8 = newwin(16, 27, 3, 53);
-
- dotdeer0 = newwin(3, 71, 0, 8);
-
- stardeer0 = newwin(4, 56, 0, 8);
-
- lildeer0 = newwin(7, 53, 0, 8);
- lildeer1 = newwin(2, 4, 0, 0);
- lildeer2 = newwin(2, 4, 0, 0);
- lildeer3 = newwin(2, 4, 0, 0);
-
- middeer0 = newwin(15, 42, 0, 8);
- middeer1 = newwin(3, 7, 0, 0);
- middeer2 = newwin(3, 7, 0, 0);
- middeer3 = newwin(3, 7, 0, 0);
-
- bigdeer0 = newwin(10, 23, 0, 0);
- bigdeer1 = newwin(10, 23, 0, 0);
- bigdeer2 = newwin(10, 23, 0, 0);
- bigdeer3 = newwin(10, 23, 0, 0);
- bigdeer4 = newwin(10, 23, 0, 0);
-
- lookdeer0 = newwin(10, 25, 0, 0);
- lookdeer1 = newwin(10, 25, 0, 0);
- lookdeer2 = newwin(10, 25, 0, 0);
- lookdeer3 = newwin(10, 25, 0, 0);
- lookdeer4 = newwin(10, 25, 0, 0);
-
- w_holiday = newwin(1, 26, 3, 27);
-
- w_del_msg = newwin(1, 19, 23, 60);
-
- mvwaddstr(w_del_msg, 0, 0, "Hit any key to quit");
-
- mvwaddstr(w_holiday, 0, 0, "H A P P Y H O L I D A Y S");
-
- /* set up the windows for our various reindeer */
-
- /* lildeer1 */
- mvwaddch(lildeer1, 0, 0, (chtype) 'V');
- mvwaddch(lildeer1, 1, 0, (chtype) '@');
- mvwaddch(lildeer1, 1, 1, (chtype) '<');
- mvwaddch(lildeer1, 1, 2, (chtype) '>');
- mvwaddch(lildeer1, 1, 3, (chtype) '~');
-
- /* lildeer2 */
- mvwaddch(lildeer2, 0, 0, (chtype) 'V');
- mvwaddch(lildeer2, 1, 0, (chtype) '@');
- mvwaddch(lildeer2, 1, 1, (chtype) '|');
- mvwaddch(lildeer2, 1, 2, (chtype) '|');
- mvwaddch(lildeer2, 1, 3, (chtype) '~');
-
- /* lildeer3 */
- mvwaddch(lildeer3, 0, 0, (chtype) 'V');
- mvwaddch(lildeer3, 1, 0, (chtype) '@');
- mvwaddch(lildeer3, 1, 1, (chtype) '>');
- mvwaddch(lildeer3, 1, 2, (chtype) '<');
- mvwaddch(lildeer2, 1, 3, (chtype) '~');
-
- /* middeer1 */
- mvwaddch(middeer1, 0, 2, (chtype) 'y');
- mvwaddch(middeer1, 0, 3, (chtype) 'y');
- mvwaddch(middeer1, 1, 2, (chtype) '0');
- mvwaddch(middeer1, 1, 3, (chtype) '(');
- mvwaddch(middeer1, 1, 4, (chtype) '=');
- mvwaddch(middeer1, 1, 5, (chtype) ')');
- mvwaddch(middeer1, 1, 6, (chtype) '~');
- mvwaddch(middeer1, 2, 3, (chtype) '\\');
- mvwaddch(middeer1, 2, 4, (chtype) '/');
-
- /* middeer2 */
- mvwaddch(middeer2, 0, 2, (chtype) 'y');
- mvwaddch(middeer2, 0, 3, (chtype) 'y');
- mvwaddch(middeer2, 1, 2, (chtype) '0');
- mvwaddch(middeer2, 1, 3, (chtype) '(');
- mvwaddch(middeer2, 1, 4, (chtype) '=');
- mvwaddch(middeer2, 1, 5, (chtype) ')');
- mvwaddch(middeer2, 1, 6, (chtype) '~');
- mvwaddch(middeer2, 2, 3, (chtype) '|');
- mvwaddch(middeer2, 2, 5, (chtype) '|');
-
- /* middeer3 */
- mvwaddch(middeer3, 0, 2, (chtype) 'y');
- mvwaddch(middeer3, 0, 3, (chtype) 'y');
- mvwaddch(middeer3, 1, 2, (chtype) '0');
- mvwaddch(middeer3, 1, 3, (chtype) '(');
- mvwaddch(middeer3, 1, 4, (chtype) '=');
- mvwaddch(middeer3, 1, 5, (chtype) ')');
- mvwaddch(middeer3, 1, 6, (chtype) '~');
- mvwaddch(middeer3, 2, 2, (chtype) '/');
- mvwaddch(middeer3, 2, 6, (chtype) '\\');
-
- /* bigdeer1 */
- mvwaddch(bigdeer1, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer1, 0, 18, (chtype) '/');
- mvwaddch(bigdeer1, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer1, 0, 21, (chtype) '/');
- mvwaddch(bigdeer1, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer1, 1, 20, (chtype) '/');
- mvwaddch(bigdeer1, 2, 19, (chtype) '|');
- mvwaddch(bigdeer1, 2, 20, (chtype) '_');
- mvwaddch(bigdeer1, 3, 18, (chtype) '/');
- mvwaddch(bigdeer1, 3, 19, (chtype) '^');
- mvwaddch(bigdeer1, 3, 20, (chtype) '0');
- mvwaddch(bigdeer1, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer1, 4, 17, (chtype) '/');
- mvwaddch(bigdeer1, 4, 18, (chtype) '/');
- mvwaddch(bigdeer1, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer1, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer1, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer1, 6, 7, "( \\_____( /");
- mvwaddstr(bigdeer1, 7, 8, "( ) /");
- mvwaddstr(bigdeer1, 8, 9, "\\\\ /");
- mvwaddstr(bigdeer1, 9, 11, "\\>/>");
-
- /* bigdeer2 */
- mvwaddch(bigdeer2, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer2, 0, 18, (chtype) '/');
- mvwaddch(bigdeer2, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer2, 0, 21, (chtype) '/');
- mvwaddch(bigdeer2, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer2, 1, 20, (chtype) '/');
- mvwaddch(bigdeer2, 2, 19, (chtype) '|');
- mvwaddch(bigdeer2, 2, 20, (chtype) '_');
- mvwaddch(bigdeer2, 3, 18, (chtype) '/');
- mvwaddch(bigdeer2, 3, 19, (chtype) '^');
- mvwaddch(bigdeer2, 3, 20, (chtype) '0');
- mvwaddch(bigdeer2, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer2, 4, 17, (chtype) '/');
- mvwaddch(bigdeer2, 4, 18, (chtype) '/');
- mvwaddch(bigdeer2, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer2, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer2, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer2, 6, 7, "(( )____( /");
- mvwaddstr(bigdeer2, 7, 7, "( / |");
- mvwaddstr(bigdeer2, 8, 8, "\\/ |");
- mvwaddstr(bigdeer2, 9, 9, "|> |>");
-
- /* bigdeer3 */
- mvwaddch(bigdeer3, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer3, 0, 18, (chtype) '/');
- mvwaddch(bigdeer3, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer3, 0, 21, (chtype) '/');
- mvwaddch(bigdeer3, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer3, 1, 20, (chtype) '/');
- mvwaddch(bigdeer3, 2, 19, (chtype) '|');
- mvwaddch(bigdeer3, 2, 20, (chtype) '_');
- mvwaddch(bigdeer3, 3, 18, (chtype) '/');
- mvwaddch(bigdeer3, 3, 19, (chtype) '^');
- mvwaddch(bigdeer3, 3, 20, (chtype) '0');
- mvwaddch(bigdeer3, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer3, 4, 17, (chtype) '/');
- mvwaddch(bigdeer3, 4, 18, (chtype) '/');
- mvwaddch(bigdeer3, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer3, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer3, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer3, 6, 6, "( ()_____( /");
- mvwaddstr(bigdeer3, 7, 6, "/ / /");
- mvwaddstr(bigdeer3, 8, 5, "|/ \\");
- mvwaddstr(bigdeer3, 9, 5, "/> \\>");
-
- /* bigdeer4 */
- mvwaddch(bigdeer4, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer4, 0, 18, (chtype) '/');
- mvwaddch(bigdeer4, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer4, 0, 21, (chtype) '/');
- mvwaddch(bigdeer4, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer4, 1, 20, (chtype) '/');
- mvwaddch(bigdeer4, 2, 19, (chtype) '|');
- mvwaddch(bigdeer4, 2, 20, (chtype) '_');
- mvwaddch(bigdeer4, 3, 18, (chtype) '/');
- mvwaddch(bigdeer4, 3, 19, (chtype) '^');
- mvwaddch(bigdeer4, 3, 20, (chtype) '0');
- mvwaddch(bigdeer4, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer4, 4, 17, (chtype) '/');
- mvwaddch(bigdeer4, 4, 18, (chtype) '/');
- mvwaddch(bigdeer4, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer4, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer4, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer4, 6, 6, "( )______( /");
- mvwaddstr(bigdeer4, 7, 5, "(/ \\");
- mvwaddstr(bigdeer4, 8, 0, "v___= ----^");
-
- /* lookdeer1 */
- mvwaddstr(lookdeer1, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer1, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer1, 2, 19, "\\=/");
- mvwaddstr(lookdeer1, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer1, 4, 17, "//( )");
- mvwaddstr(lookdeer1, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer1, 6, 7, "( \\_____( /");
- mvwaddstr(lookdeer1, 7, 8, "( ) /");
- mvwaddstr(lookdeer1, 8, 9, "\\\\ /");
- mvwaddstr(lookdeer1, 9, 11, "\\>/>");
-
- /* lookdeer2 */
- mvwaddstr(lookdeer2, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer2, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer2, 2, 19, "\\=/");
- mvwaddstr(lookdeer2, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer2, 4, 17, "//( )");
- mvwaddstr(lookdeer2, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer2, 6, 7, "(( )____( /");
- mvwaddstr(lookdeer2, 7, 7, "( / |");
- mvwaddstr(lookdeer2, 8, 8, "\\/ |");
- mvwaddstr(lookdeer2, 9, 9, "|> |>");
-
- /* lookdeer3 */
- mvwaddstr(lookdeer3, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer3, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer3, 2, 19, "\\=/");
- mvwaddstr(lookdeer3, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer3, 4, 17, "//( )");
- mvwaddstr(lookdeer3, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer3, 6, 6, "( ()_____( /");
- mvwaddstr(lookdeer3, 7, 6, "/ / /");
- mvwaddstr(lookdeer3, 8, 5, "|/ \\");
- mvwaddstr(lookdeer3, 9, 5, "/> \\>");
-
- /* lookdeer4 */
- mvwaddstr(lookdeer4, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer4, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer4, 2, 19, "\\=/");
- mvwaddstr(lookdeer4, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer4, 4, 17, "//( )");
- mvwaddstr(lookdeer4, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer4, 6, 6, "( )______( /");
- mvwaddstr(lookdeer4, 7, 5, "(/ \\");
- mvwaddstr(lookdeer4, 8, 0, "v___= ----^");
-
- /***********************************************/
- cbreak();
- nodelay(stdscr, TRUE);
- for (;;) {
- clear();
- werase(treescrn);
- touchwin(w_del_msg);
- touchwin(treescrn);
- werase(treescrn2);
- touchwin(treescrn2);
- werase(treescrn8);
- touchwin(treescrn8);
- refresh();
- look_out(150);
- boxit();
- refresh();
- look_out(150);
- seas();
- refresh();
- look_out(150);
- greet();
- refresh();
- look_out(150);
- fromwho();
- refresh();
- look_out(150);
- tree();
- look_out(150);
- balls();
- look_out(150);
- star();
- look_out(150);
- strng1();
- strng2();
- strng3();
- strng4();
- strng5();
-
- /* set up the windows for our blinking trees */
- /* **************************************** */
- /* treescrn3 */
-
- overlay(treescrn, treescrn3);
-
- /*balls */
- mvwaddch(treescrn3, 4, 18, ' ');
- mvwaddch(treescrn3, 7, 6, ' ');
- mvwaddch(treescrn3, 8, 19, ' ');
- mvwaddch(treescrn3, 11, 22, ' ');
-
- /*star */
- mvwaddch(treescrn3, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn3, 3, 11, ' ');
-
- /*strng2 */
- mvwaddch(treescrn3, 5, 13, ' ');
- mvwaddch(treescrn3, 6, 10, ' ');
-
- /*strng3 */
- mvwaddch(treescrn3, 7, 16, ' ');
- mvwaddch(treescrn3, 7, 14, ' ');
-
- /*strng4 */
- mvwaddch(treescrn3, 10, 13, ' ');
- mvwaddch(treescrn3, 10, 10, ' ');
- mvwaddch(treescrn3, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn3, 11, 18, ' ');
- mvwaddch(treescrn3, 12, 13, ' ');
-
- /* treescrn4 */
-
- overlay(treescrn, treescrn4);
-
- /*balls */
- mvwaddch(treescrn4, 3, 9, ' ');
- mvwaddch(treescrn4, 4, 16, ' ');
- mvwaddch(treescrn4, 7, 6, ' ');
- mvwaddch(treescrn4, 8, 19, ' ');
- mvwaddch(treescrn4, 11, 2, ' ');
- mvwaddch(treescrn4, 12, 23, ' ');
-
- /*star */
- wstandout(treescrn4);
- mvwaddch(treescrn4, 0, 12, '*');
- wstandend(treescrn4);
-
- /*strng1 */
- mvwaddch(treescrn4, 3, 13, ' ');
-
- /*strng2 */
-
- /*strng3 */
- mvwaddch(treescrn4, 7, 15, ' ');
- mvwaddch(treescrn4, 8, 11, ' ');
-
- /*strng4 */
- mvwaddch(treescrn4, 9, 16, ' ');
- mvwaddch(treescrn4, 10, 12, ' ');
- mvwaddch(treescrn4, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn4, 11, 18, ' ');
- mvwaddch(treescrn4, 12, 14, ' ');
-
- /* treescrn5 */
-
- overlay(treescrn, treescrn5);
-
- /*balls */
- mvwaddch(treescrn5, 3, 15, ' ');
- mvwaddch(treescrn5, 10, 20, ' ');
- mvwaddch(treescrn5, 12, 1, ' ');
-
- /*star */
- mvwaddch(treescrn5, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn5, 3, 11, ' ');
-
- /*strng2 */
- mvwaddch(treescrn5, 5, 12, ' ');
-
- /*strng3 */
- mvwaddch(treescrn5, 7, 14, ' ');
- mvwaddch(treescrn5, 8, 10, ' ');
-
- /*strng4 */
- mvwaddch(treescrn5, 9, 15, ' ');
- mvwaddch(treescrn5, 10, 11, ' ');
- mvwaddch(treescrn5, 11, 7, ' ');
-
- /*strng5 */
- mvwaddch(treescrn5, 11, 17, ' ');
- mvwaddch(treescrn5, 12, 13, ' ');
-
- /* treescrn6 */
-
- overlay(treescrn, treescrn6);
-
- /*balls */
- mvwaddch(treescrn6, 6, 7, ' ');
- mvwaddch(treescrn6, 7, 18, ' ');
- mvwaddch(treescrn6, 10, 4, ' ');
- mvwaddch(treescrn6, 11, 23, ' ');
-
- /*star */
- wstandout(treescrn6);
- mvwaddch(treescrn6, 0, 12, '*');
- wstandend(treescrn6);
-
- /*strng1 */
-
- /*strng2 */
- mvwaddch(treescrn6, 5, 11, ' ');
-
- /*strng3 */
- mvwaddch(treescrn6, 7, 13, ' ');
- mvwaddch(treescrn6, 8, 9, ' ');
-
- /*strng4 */
- mvwaddch(treescrn6, 9, 14, ' ');
- mvwaddch(treescrn6, 10, 10, ' ');
- mvwaddch(treescrn6, 11, 6, ' ');
-
- /*strng5 */
- mvwaddch(treescrn6, 11, 16, ' ');
- mvwaddch(treescrn6, 12, 12, ' ');
-
- /* treescrn7 */
-
- overlay(treescrn, treescrn7);
-
- /*balls */
- mvwaddch(treescrn7, 3, 15, ' ');
- mvwaddch(treescrn7, 6, 7, ' ');
- mvwaddch(treescrn7, 7, 18, ' ');
- mvwaddch(treescrn7, 10, 4, ' ');
- mvwaddch(treescrn7, 11, 22, ' ');
-
- /*star */
- mvwaddch(treescrn7, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn7, 3, 12, ' ');
-
- /*strng2 */
- mvwaddch(treescrn7, 5, 13, ' ');
- mvwaddch(treescrn7, 6, 9, ' ');
-
- /*strng3 */
- mvwaddch(treescrn7, 7, 15, ' ');
- mvwaddch(treescrn7, 8, 11, ' ');
-
- /*strng4 */
- mvwaddch(treescrn7, 9, 16, ' ');
- mvwaddch(treescrn7, 10, 12, ' ');
- mvwaddch(treescrn7, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn7, 11, 18, ' ');
- mvwaddch(treescrn7, 12, 14, ' ');
-
- look_out(150);
- reindeer();
-
- touchwin(w_holiday);
- wrefresh(w_holiday);
- wrefresh(w_del_msg);
-
- look_out(500);
- for (loopy = 0; loopy < 100; loopy++) {
- blinkit();
- }
-
-#ifdef NOLOOP
- done(0);
-#endif
- }
- /*NOTREACHED */
-}
-
-static int
-boxit(void)
-{
- int x = 0;
-
- while (x < 20) {
- mvaddch(x, 7, '|');
- ++x;
- }
-
- x = 8;
-
- while (x < 80) {
- mvaddch(19, x, '_');
- ++x;
- }
-
- x = 0;
-
- while (x < 80) {
- mvaddch(22, x, '_');
- ++x;
- }
-
- return (0);
-}
-
-static int
-seas(void)
-{
- mvaddch(4, 1, 'S');
- mvaddch(6, 1, 'E');
- mvaddch(8, 1, 'A');
- mvaddch(10, 1, 'S');
- mvaddch(12, 1, 'O');
- mvaddch(14, 1, 'N');
- mvaddch(16, 1, '`');
- mvaddch(18, 1, 'S');
-
- return (0);
-}
-
-static int
-greet(void)
-{
- mvaddch(3, 5, 'G');
- mvaddch(5, 5, 'R');
- mvaddch(7, 5, 'E');
- mvaddch(9, 5, 'E');
- mvaddch(11, 5, 'T');
- mvaddch(13, 5, 'I');
- mvaddch(15, 5, 'N');
- mvaddch(17, 5, 'G');
- mvaddch(19, 5, 'S');
-
- return (0);
-}
-
-static int
-fromwho(void)
-{
- mvaddstr(21, 13, FROMWHO);
- return (0);
-}
-
-static int
-tree(void)
-{
- set_color(treescrn, COLOR_GREEN);
- mvwaddch(treescrn, 1, 11, (chtype) '/');
- mvwaddch(treescrn, 2, 11, (chtype) '/');
- mvwaddch(treescrn, 3, 10, (chtype) '/');
- mvwaddch(treescrn, 4, 9, (chtype) '/');
- mvwaddch(treescrn, 5, 9, (chtype) '/');
- mvwaddch(treescrn, 6, 8, (chtype) '/');
- mvwaddch(treescrn, 7, 7, (chtype) '/');
- mvwaddch(treescrn, 8, 6, (chtype) '/');
- mvwaddch(treescrn, 9, 6, (chtype) '/');
- mvwaddch(treescrn, 10, 5, (chtype) '/');
- mvwaddch(treescrn, 11, 3, (chtype) '/');
- mvwaddch(treescrn, 12, 2, (chtype) '/');
-
- mvwaddch(treescrn, 1, 13, (chtype) '\\');
- mvwaddch(treescrn, 2, 13, (chtype) '\\');
- mvwaddch(treescrn, 3, 14, (chtype) '\\');
- mvwaddch(treescrn, 4, 15, (chtype) '\\');
- mvwaddch(treescrn, 5, 15, (chtype) '\\');
- mvwaddch(treescrn, 6, 16, (chtype) '\\');
- mvwaddch(treescrn, 7, 17, (chtype) '\\');
- mvwaddch(treescrn, 8, 18, (chtype) '\\');
- mvwaddch(treescrn, 9, 18, (chtype) '\\');
- mvwaddch(treescrn, 10, 19, (chtype) '\\');
- mvwaddch(treescrn, 11, 21, (chtype) '\\');
- mvwaddch(treescrn, 12, 22, (chtype) '\\');
-
- mvwaddch(treescrn, 4, 10, (chtype) '_');
- mvwaddch(treescrn, 4, 14, (chtype) '_');
- mvwaddch(treescrn, 8, 7, (chtype) '_');
- mvwaddch(treescrn, 8, 17, (chtype) '_');
-
- mvwaddstr(treescrn, 13, 0, "//////////// \\\\\\\\\\\\\\\\\\\\\\\\");
-
- mvwaddstr(treescrn, 14, 11, "| |");
- mvwaddstr(treescrn, 15, 11, "|_|");
-
- unset_color(treescrn);
- wrefresh(treescrn);
- wrefresh(w_del_msg);
-
- return (0);
-}
-
-static int
-balls(void)
-{
- overlay(treescrn, treescrn2);
-
- set_color(treescrn2, COLOR_BLUE);
- mvwaddch(treescrn2, 3, 9, (chtype) '@');
- mvwaddch(treescrn2, 3, 15, (chtype) '@');
- mvwaddch(treescrn2, 4, 8, (chtype) '@');
- mvwaddch(treescrn2, 4, 16, (chtype) '@');
- mvwaddch(treescrn2, 5, 7, (chtype) '@');
- mvwaddch(treescrn2, 5, 17, (chtype) '@');
- mvwaddch(treescrn2, 7, 6, (chtype) '@');
- mvwaddch(treescrn2, 7, 18, (chtype) '@');
- mvwaddch(treescrn2, 8, 5, (chtype) '@');
- mvwaddch(treescrn2, 8, 19, (chtype) '@');
- mvwaddch(treescrn2, 10, 4, (chtype) '@');
- mvwaddch(treescrn2, 10, 20, (chtype) '@');
- mvwaddch(treescrn2, 11, 2, (chtype) '@');
- mvwaddch(treescrn2, 11, 22, (chtype) '@');
- mvwaddch(treescrn2, 12, 1, (chtype) '@');
- mvwaddch(treescrn2, 12, 23, (chtype) '@');
-
- unset_color(treescrn2);
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-star(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_YELLOW);
-
- mvwaddch(treescrn2, 0, 12, (chtype) '*');
- wstandend(treescrn2);
-
- unset_color(treescrn2);
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng1(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 3, 13, (chtype) '\'');
- mvwaddch(treescrn2, 3, 12, (chtype) ':');
- mvwaddch(treescrn2, 3, 11, (chtype) '.');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng2(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 5, 14, (chtype) '\'');
- mvwaddch(treescrn2, 5, 13, (chtype) ':');
- mvwaddch(treescrn2, 5, 12, (chtype) '.');
- mvwaddch(treescrn2, 5, 11, (chtype) ',');
- mvwaddch(treescrn2, 6, 10, (chtype) '\'');
- mvwaddch(treescrn2, 6, 9, (chtype) ':');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng3(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 7, 16, (chtype) '\'');
- mvwaddch(treescrn2, 7, 15, (chtype) ':');
- mvwaddch(treescrn2, 7, 14, (chtype) '.');
- mvwaddch(treescrn2, 7, 13, (chtype) ',');
- mvwaddch(treescrn2, 8, 12, (chtype) '\'');
- mvwaddch(treescrn2, 8, 11, (chtype) ':');
- mvwaddch(treescrn2, 8, 10, (chtype) '.');
- mvwaddch(treescrn2, 8, 9, (chtype) ',');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng4(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 9, 17, (chtype) '\'');
- mvwaddch(treescrn2, 9, 16, (chtype) ':');
- mvwaddch(treescrn2, 9, 15, (chtype) '.');
- mvwaddch(treescrn2, 9, 14, (chtype) ',');
- mvwaddch(treescrn2, 10, 13, (chtype) '\'');
- mvwaddch(treescrn2, 10, 12, (chtype) ':');
- mvwaddch(treescrn2, 10, 11, (chtype) '.');
- mvwaddch(treescrn2, 10, 10, (chtype) ',');
- mvwaddch(treescrn2, 11, 9, (chtype) '\'');
- mvwaddch(treescrn2, 11, 8, (chtype) ':');
- mvwaddch(treescrn2, 11, 7, (chtype) '.');
- mvwaddch(treescrn2, 11, 6, (chtype) ',');
- mvwaddch(treescrn2, 12, 5, (chtype) '\'');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng5(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 11, 19, (chtype) '\'');
- mvwaddch(treescrn2, 11, 18, (chtype) ':');
- mvwaddch(treescrn2, 11, 17, (chtype) '.');
- mvwaddch(treescrn2, 11, 16, (chtype) ',');
- mvwaddch(treescrn2, 12, 15, (chtype) '\'');
- mvwaddch(treescrn2, 12, 14, (chtype) ':');
- mvwaddch(treescrn2, 12, 13, (chtype) '.');
- mvwaddch(treescrn2, 12, 12, (chtype) ',');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- /* save a fully lit tree */
- overlay(treescrn2, treescrn);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-blinkit(void)
-{
- static int cycle;
-
- if (cycle > 4) {
- cycle = 0;
- }
-
- touchwin(treescrn8);
-
- switch (cycle) {
- case 0:
- overlay(treescrn3, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 1:
- overlay(treescrn4, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 2:
- overlay(treescrn5, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 3:
- overlay(treescrn6, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 4:
- overlay(treescrn7, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- }
- touchwin(treescrn8);
-
- /*ALL ON************************************************** */
-
- overlay(treescrn, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
-
- ++cycle;
- return (0);
-}
-
-static void
-deer_step(WINDOW *win, int y, int x)
-{
- mvwin(win, y, x);
- wrefresh(win);
- wrefresh(w_del_msg);
- look_out(5);
-}
-
-static int
-reindeer(void)
-{
- int looper;
- y_pos = 0;
-
- for (x_pos = 70; x_pos > 62; x_pos--) {
- if (x_pos < 62) {
- y_pos = 1;
- }
- for (looper = 0; looper < 4; looper++) {
- mvwaddch(dotdeer0, y_pos, x_pos, (chtype) '.');
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- werase(dotdeer0);
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- look_out(50);
- }
- }
-
- y_pos = 2;
-
- for (; x_pos > 50; x_pos--) {
- for (looper = 0; looper < 4; looper++) {
-
- if (x_pos < 56) {
- y_pos = 3;
-
- mvwaddch(stardeer0, y_pos, x_pos, (chtype) '*');
- wrefresh(stardeer0);
- wrefresh(w_del_msg);
- werase(stardeer0);
- wrefresh(stardeer0);
- wrefresh(w_del_msg);
- } else {
- mvwaddch(dotdeer0, y_pos, x_pos, (chtype) '*');
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- werase(dotdeer0);
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- }
- }
- }
-
- x_pos = 58;
-
- for (y_pos = 2; y_pos < 5; y_pos++) {
-
- touchwin(lildeer0);
- wrefresh(lildeer0);
- wrefresh(w_del_msg);
-
- for (looper = 0; looper < 4; looper++) {
- deer_step(lildeer3, y_pos, x_pos);
- deer_step(lildeer2, y_pos, x_pos);
- deer_step(lildeer1, y_pos, x_pos);
- deer_step(lildeer2, y_pos, x_pos);
- deer_step(lildeer3, y_pos, x_pos);
-
- touchwin(lildeer0);
- wrefresh(lildeer0);
- wrefresh(w_del_msg);
-
- x_pos -= 2;
- }
- }
-
- x_pos = 35;
-
- for (y_pos = 5; y_pos < 10; y_pos++) {
-
- touchwin(middeer0);
- wrefresh(middeer0);
- wrefresh(w_del_msg);
-
- for (looper = 0; looper < 2; looper++) {
- deer_step(middeer3, y_pos, x_pos);
- deer_step(middeer2, y_pos, x_pos);
- deer_step(middeer1, y_pos, x_pos);
- deer_step(middeer2, y_pos, x_pos);
- deer_step(middeer3, y_pos, x_pos);
-
- touchwin(middeer0);
- wrefresh(middeer0);
- wrefresh(w_del_msg);
-
- x_pos -= 3;
- }
- }
-
- look_out(300);
-
- y_pos = 1;
-
- for (x_pos = 8; x_pos < 16; x_pos++) {
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer1, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer0, y_pos, x_pos);
- }
-
- --x_pos;
-
- for (looper = 0; looper < 6; looper++) {
- deer_step(lookdeer4, y_pos, x_pos);
- deer_step(lookdeer3, y_pos, x_pos);
- deer_step(lookdeer2, y_pos, x_pos);
- deer_step(lookdeer1, y_pos, x_pos);
- deer_step(lookdeer2, y_pos, x_pos);
- deer_step(lookdeer3, y_pos, x_pos);
- deer_step(lookdeer4, y_pos, x_pos);
- }
-
- deer_step(lookdeer0, y_pos, x_pos);
-
- for (; y_pos < 10; y_pos++) {
- for (looper = 0; looper < 2; looper++) {
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer1, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer4, y_pos, x_pos);
- }
- deer_step(bigdeer0, y_pos, x_pos);
- }
-
- --y_pos;
-
- deer_step(lookdeer3, y_pos, x_pos);
- return (0);
-}
-
-static RETSIGTYPE
-done(int sig GCC_UNUSED)
-{
- signal(SIGINT, done);
- signal(SIGTERM, done);
-#if !defined DOS && !defined OS2
- signal(SIGHUP, done);
- signal(SIGQUIT, done);
-#endif
- move(LINES - 1, 0);
- refresh();
- endwin();
- curs_set(1);
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/readline-4.3.orig/CHANGELOG b/readline-4.3.orig/CHANGELOG
deleted file mode 100644
index 350defa..0000000
--- a/readline-4.3.orig/CHANGELOG
+++ /dev/null
@@ -1,699 +0,0 @@
-[Readline-specific changelog. Descriptions of changes to the source are
- found in the bash changelog.]
-
- 6/9
- ---
-Makefile.in
- - quote value of ${INSTALL_DATA} when passing it to makes in
- subdirectories
-
- 7/1
- ---
-Makefile.in
- - don't pass INSTALL_DATA to a make in the `doc' subdirectory; let
- autoconf set the value itself in the Makefile
- - removed a stray `-' before $(RANLIB) in the `install' recipe
-
-doc/Makefile.in
- - add a VPATH assignment so the documentation is not remade if it's
- already up-to-date in the distribution
-
-configure.in
- - call AC_SUBST(LOCAL_LDFLAGS), since Makefile.in contains
- @LOCAL_LDFLAGS@
-
- 7/9
- ---
-
-config.h.in
- - add define lines for STRUCT_WINSIZE_IN_SYS_IOCTL and
- STRUCT_WINSIZE_IN_TERMIOS
-
-configure.in
- - call BASH_STRUCT_WINSIZE to look for the definition of
- `struct winsize'
-
- 7/17
- ----
-configure.in
- - call AC_MINIX
-
-config.h.in
- - add define line for AC_MINIX
-
- 7/18
- ----
-Makefile.in
- - add `install-shared' and `uninstall-shared' targets
-
- 8/4
- ---
-Makefile.in
- - install and uninstall libhistory.a in the `install' and
- `uninstall' targets
-
- 9/4
- ---
-configure.in
- - bumped LIBVERSION up to 2.1.1, indicating that this is patch
- level 1 to release 2.1
-
-
- 9/16
- ----
-Makefile.in
- - `make distclean' now descends into the `examples' subdir
-
-doc/Makefile.in
- - the `distclean' and `maintainer-clean' targets should remove
- Makefile
-
-examples/Makefile.in
- - added the various clean targets
-
- 4/2
- ---
-configure.in
- - bumped LIBVERSION up to 2.2
-
- 4/18
- ----
-[readline-2.2 released]
-
- 4/20
- ----
-Makefile.in
- - make `libhistory.a' a dependency of `install'
- - fixed a typo in the recipe for `install' that copied libreadline.a
- to libhistory.old right after installing it
-
- 4/27
- ----
-doc/Makefile.in
- - install {readline,history}.info out of the source directory if
- they are not found in the current (build) directory -- only an
- issue if the libraries are built in a different directory than
- the source directory
-
- 5/1
- ---
-support/shobj-conf
- - script from the bash distribution to do shared object and library
- configuration
-
-shlib/Makefile.in
- - new directory and makefile to handle building shared versions of
- libreadline and libhistory, controlled by support/shobj-conf
-
- 5/7
- ---
-doc/Makefile.in
- - set SHELL to /bin/sh, rather than relying on make to be correct
-
- 5/14
- ----
-savestring.c
- - new file, moved from shell.c, for backwards compatibility
-
-Makefile.in, shlib/Makefile.in
- - make sure savestring.c is compiled and added to libreadline and
- libhistory
-
-[THERE ARE NO MORE #ifdef SHELL LINES IN THE C SOURCE FILES.]
-
- 5/15
- ----
-README
- - updated description of shared library creation for the new scheme
-
-[THERE ARE NO MORE #ifdef SHELL LINES IN ANY OF THE SOURCE FILES.]
-
-Makefile.in
- - bumped SHLIB_MAJOR up to 4 since we've augmented the library
- API
- - rlconf.h is now one of the installed headers, so applications can
- find out whether things like vi-mode are available in the installed
- libreadline
-
- 5/20
- ----
-configure.in
- - changed RL_LIBRARY_VERSION to 4.0 to match the version of the
- installed shared libraries
-
- 6/5
- ---
-rlstdc.h
- - new file
-
-Makefile.in
- - rlstdc.h is now one of the installed headers
-
- 8/3
- ---
-shlib/Makefile.in
- - made the suffix rule that creates xx.so from xx.c write the
- compiler output to `a.o', which is then mv'd to xx.so, because
- some compilers (Sun WSpro 4.2, for example) don't allow any
- suffixes other than `.o' for `cc -c' (not even `a.out')
-
- 9/15
- ----
-
-Makefile.in
- - AR and ARFLAGS are now substituted by configure, used in recipes
- that build the libraries
-
-configure.in
- - use AC_CHECK_PROG to check for ar
- - set ARFLAGS if it has not already been set in the environment
-
- 10/5
- ----
-Makefile.in
- - removed savestring.o from object file list
-
- 10/28
- -----
-shlib/Makefile.in
- - don't use a fixed filename in the .c.so suffix rule to avoid
- problems with parallel makes
-
- 12/21
- -----
-support/shlib-install
- - new script to install shared readline and history libraries
-
-shlib/Makefile.in
- - changed to call shlib-install for install and uninstall targets
-
-[readline-4.0-beta1 frozen]
-
- 12/22
- -----
-configure.in
- - call AC_SUBST for SHOBJ_XLDFLAGS and SHLIB_LIBS
-
-shlib/Makefile.in
- - SHOBJ_XLDFLAGS and SHLIB_LIBS are now substituted by configure
- - add $(SHLIB_LIBS) at end of command line that builds the shared
- libraries (currently needed only by AIX 4.2)
-
- 12/31
- -----
-MANIFEST, MANIFEST.doc
- - the TOC html files are no longer generated and no longer part of
- the distribution
-
- 2/18/1999
- ---------
-configure.in
- - set MAKE_SHELL to /bin/sh and substitute into the Makefiles
-
-Makefile.in,{doc,examples,shlib}/Makefile.in
- - set SHELL from @MAKE_SHELL@
-
-[readline-4.0 released]
-
- 3/11
- ----
-doc/Makefile.in
- - removed references to HTMLTOC, since separate HTML table-of-contents
- files are no longer created
-
-examples/Makefile.in
- - remove `*.exe' in clean target for MS-DOS
-
-Makefile.in
- - make `readline' target depend on ./libreadline.a
- - configure now substitutes TERMCAP_LIB into Makefile.in
- - use ${TERMCAP_LIB} instead of -ltermcap in recipe for `readline'
- - clean target now removes readline and readline.exe in case they
- get built
-
-configure.in
- - use `pwd.exe' to set BUILD_DIR on MS-DOS DJGPP
-
- 3/15
- ----
-support/shlib-install
- - Irix 5.x and Irix 6.x should install shared libraries like Solaris 2
- - changes for installing on hp-ux 1[01].x
-
- 3/23
- ----
-configure.in
- - make sure that the $CC argument to shobj-conf is quoted
-
- 4/8
- ---
-
-xmalloc.h, rlprivate.h, rlshell.h
- - new files
-
-Makefile.in,shlib/Makefile.in
- - add dependencies on xmalloc.h, rlshell.h
- - add xmalloc.h, rlprivate.h, rlshell.h to list of header files
-
-MANIFEST
- - add xmalloc.h, rlprivate.h, rlshell.h
-
- 4/9
- ---
-Makefile.in,shlib/Makefile.in
- - add dependencies on rlprivate.h
-
- 4/13
- ----
-doc/Makefile.in
- - add variable, PSDVI, which is the desired resolution of the
- generated postscript files. Set to 300 because I don't have
- any 600-dpi printers
- - set LANGUAGE= before calling makeinfo, so messages are in English
- - add rluserman.{info,dvi,ps,html} to appropriate variables
- - add rules to create rluserman.{info,dvi,ps,html}
- - install and uninstall rluserman.info, but don't update the directory
- file in $(infodir) yet
-
-MANIFEST
- - add doc/rluserman.{texinfo,info,dvi,ps,html}
-
- 4/30
- ----
-configure.in
- - updated library version to 4.1
-
- 5/3
- ---
-configure.in
- - SHLIB_MAJOR and SHLIB_MINOR shared library version numbers are
- constructed from $LIBRARY_VERSION and substituted into Makefiles
-
- 5/5
- ---
-support/shlib-install
- - OSF/1 installs shared libraries like Solaris
-
-Makefile.in
- - broke the header file install and uninstall into two new targets:
- install-headers and uninstall-headers
- - install and uninstall depend on install-headers and uninstall-headers
- respectively
- - changed install-shared and uninstall-shared targets to depend on
- install-headers and uninstall-headers, respectively, so users may
- choose to install only the shared libraries. I'm not sure about
- the uninstall one yet -- maybe it should check whether or not
- the static libraries are installed and not remove the header files
- if they are
-
- 9/3
- ---
-configure.in, config.h.in
- - added test for memmove (for later use)
- - changed version to 4.1-beta1
-
- 9/13
- ----
-examples/rlfe.c
- - Per Bothner's `rlfe' readline front-end program
-
-examples/Makefile.in
- - added rules to build rlfe
-
- 9/21
- ----
-support/shlib-install
- - changes to handle FreeBSD-3.x elf or a.out shared libraries, which
- have different semantics and need different naming conventions
-
- 1/24/2000
- ---------
-doc/Makefile.in
- - remove *.bt and *.bts on `make clean'
-
- 2/4
- ---
-
-
-configure.in
- - changed LIBVERSION to 4.1-beta5
-
- 3/17/2000
- ---------
-[readline-4.1 released]
-
- 3/23
- ----
-Makefile.in
- - remove the `-t' argument to ranlib in the install recipe; some
- ranlibs don't have it and attempt to create a file named `-t'
-
- 3/27
- ----
-support/shlib-install
- - install shared libraries unwritable by anyone on HP-UX
- - changed symlinks to relative pathnames on all platforms
-
-shlib/Makefile.in
- - added missing `includedir' assignment, substituted by configure
-
-Makefile.in
- - added missing @SET_MAKE@ so configure can set $MAKE appropriately
-
-configure.in
- - add call to AC_PROG_MAKE_SET
-
- 8/30
- ----
-shlib/Makefile.in
- - change the soname bound into the shared libraries, so it includes
- only the major version number. If it includes the minor version,
- programs depending on it must be rebuilt (which may or may not be
- a bad thing)
-
- 9/6
- ---
-examples/rlfe.c
- - add -l option to log input and output (-a option appends to logfile)
- - add -n option to set readline application name
- - add -v, -h options for version and help information
- - change a few things because getopt() is now used to parse arguments
-
- 9/12
- ----
-support/shlib-install
- - fix up the libname on HPUX 11
-
- 10/18
- -----
-configure.in
- - changed library version to 4.2-alpha
-
- 10/30
- -----
-configure.in
- - add -fsigned-char to LOCAL_CFLAGS for Linux running on the IBM
- S/390
-
-Makefile.in
- - added new file, rltypedefs.h, installed by default with `make install'
-
- 11/2
- ----
-compat.c
- - new file, with backwards-compatibility function definitions
-
-Makefile.in,shlib/Makefile.in
- - make sure that compat.o/compat.so are built and linked apppropriately
-
-support/shobj-conf
- - picked up bash version, which means that shared libs built on
- linux and BSD/OS 4.x will have an soname that does not include
- the minor version number
-
- 11/13
- -----
-examples/rlfe.c
- - rlfe can perform filename completion for relative pathnames in the
- inferior process's context if the OS supports /proc/PID/cwd (linux
- does it OK, Solaris is slightly warped, none of the BSDs have it)
-
- 11/17/2000
- ----------
-[readline-4.2-alpha released]
-
- 11/27
- -----
-Makefile.in,shlib/Makefile.in
- - added dependencies for rltypedefs.h
-
-shlib/Makefile.in
- - changed dependencies on histlib.h to $(topdir)/histlib.h
-
- 1/22
- ----
-configure.in
- - changed release version to 4.2-beta
-
- 2/2
- ---
-examples/Makefile.in
- - build histexamp as part of the examples
-
- 2/5
- ---
-doc/Makefile.in
- - don't remove the dvi, postscript, html, info, and text `objects'
- on a `make distclean', only on a `make maintainer-clean'
-
- 3/6
- ---
-doc/history.{0,3}, doc/history_3.ps
- - new manual page for history library
-
-doc/Makefile.in
- - rules to install and uninstall history.3 in ${man3dir}
- - rules to build history.0 and history_3.ps
-
- 4/2
- ---
-configure.in
- - changed LIBVERSION to `4.2'
-
- 4/5
- ---
-[readline-4.2 frozen]
-
- 4/9
- ---
-[readline-4.2 released]
-
- 5/2
- ---
-Makefile.in,{doc,examples,shlib}/Makefile.in
- - added support for DESTDIR installation root prefix, to support
- building packages
-
-doc/Makefile.in
- - add an info `dir' file entry for rluserman.info on `make install'
- - change man1ext to `.1' and man3ext to `.3'
- - install man pages with a $(man3ext) extension in the target directory
- - add support for installing html documentation if `htmldir' has a
- value
-
-Makefile.in
- - on `make install', install from the `shlib' directory, too
- - on `make uninstall', uninstall in the `doc' and `shlib'
- subdirectories, too
-
-support/shlib-install
- - add `freebsdelf*', `freebsdaout*', Hurd, `sysv4*', `sysv5*', `dgux*'
- targets for symlink creation
-
- 5/7
- ---
-configure.in, config.h.in
- - check for <limits.h>, define HAVE_LIMITS_H if found
-
- 5/8
- ---
-aclocal.m4
- - pick up change to BASH_CHECK_LIB_TERMCAP that adds check for
- libtinfo (termcap-specific portion of ncurses-5.2)
-
- 5/9
- ---
-configure.in
- - call AC_C_CONST to find out whether or not the compiler supports
- `const'
-
-config.h.in
- - placeholder for `const' define, if any
-
- 5/10
- ----
-configure.in
- - fix AC_CHECK_PROG(ar, ...) test to specify right value for the
- case where ar is not found; should produce a better error message
-
- 5/14
- ----
-configure.in,config.h.in
- - check for vsnprintf, define HAVE_VSNPRINTF if found
-
- 5/21
- ----
-configure.in, config.h.in
- - add checks for size_t, ssize_t
-
- 5/30
- ----
-configure.in
- - update autoconf to version 2.50, use in AC_PREREQ
- - changed AC_INIT to new flavor
- - added AC_CONFIG_SRCDIR
- - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS
- - call AC_C_PROTOTYPES
- - AC_RETSIGTYPE -> AC_TYPE_SIGNAL
-
- 8/22
- ----
-configure.in
- - updated the version number to 4.2a
-
-Makefile.in,shlib/Makefile.in
- - make sure tilde.o is built -DREADLINE_LIBRARY when being built as
- part of the standalone library, so it picks up the right include
- files
-
- 8/23
- ----
-support/shlib-install
- - support for Darwin/MacOS X shared library installation
-
- 9/24
- ----
-examples/readlinebuf.h
- - a new file, a C++ streambuf interface that uses readline for I/O.
- Donated by Dimitris Vyzovitis <vyzo@media.mit.edu>
-
- 10/9
- ----
-configure.in
- - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ
-
-[readline-4.2a-beta1 frozen]
-
- 10/15
- -----
-configure.in, config.h.in
- - check for <memory.h>, define HAVE_MEMORY_H if found
- - check for <strings.h>, define HAVE_STRINGS_H if found
-
- 10/18
- -----
-configure.in, config.h.in
- - check for isascii, define HAVE_ISASCII if found
-
-configure.in
- - changed the macro names from bash as appropriate:
- BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE
- BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS
- BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T
-
- 10/22
- -----
-configure.in
- - check for isxdigit with AC_CHECK_FUNCS
-
-config.h.in
- - new define for HAVE_ISXDIGIT
-
- 10/29
- -----
-configure.in, config.h.in
- - check for strpbrk with AC_CHECK_FUNCS, define HAVE_STRPBRK if found
-
- 11/1
- ----
-Makefile.in
- - make sure DESTDIR is passed to install and uninstall makes in
- subdirectories
- - when saving old copies of installed libraries, make sure we use
- DESTDIR for the old installation tree
-
-[readline-4.2a-rc1 frozen]
-
- 11/2
- ----
-Makefile.in, shlib/Makefile.in
- - don't put -I$(includedir) into CFLAGS
-
- 11/15
- -----
-[readline-4.2a released]
-
- 11/20
- -----
-examples/rlcat.c
- - new file
-
-examples/Makefile.in
- - changes for rlcat
-
- 11/28
- -----
-configure.in
- - default TERMCAP_LIB to -lcurses if $prefer_curses == yes (as when
- --with-curses is supplied)
-
-examples/Makefile.in
- - substitute @LDFLAGS@ in LDFLAGS assignment
-
- 11/29
- -----
-config.h.in
- - add necessary defines for multibyte include files and functions
- - add code to define HANDLE_MULTIBYTE if prerequisites are met
-
-configure.in
- - call BASH_CHECK_MULTIBYTE
-
- 12/14
- -----
-config.h.in
- - add #undef PROTOTYPES, filled in by AC_C_PROTOTYPES
-
- 12/17
- -----
-config.h.in
- - moved HANDLE_MULTIBYTE code to rlmbutil.h
-
-rlmbutil.h, mbutil.c
- - new files
-
-Makefile.in, shlib/Makefile.in
- - added rules for mbutil.c
-
- 12/20
- -----
-configure.in
- - added --enable-shared, --enable-static options to configure to
- say which libraries are built by default (both default to yes)
- - if SHLIB_STATUS == 'unsupported', turn off default shared library
- building
- - substitute new STATIC_TARGET, SHARED_TARGET, STATIC_INSTALL_TARGET,
- and SHARED_INSTALL_TARGET
-
-Makefile.in
- - `all' target now depends on (substituted) @STATIC_TARGET@ and
- @SHARED_TARGET@
- - `install' target now depends on (substituted) @STATIC_INSTALL_TARGET@
- and @SHARED_INSTALL_TARGET@
-
-INSTALL, README
- - updated with new info about --enable-shared and --enable-static
-
- 1/10/2002
- ---------
-configure.in
- - bumped the library version number to 4.3
-
- 1/24
- ----
-Makefile.in,shlib/Makefile.in
- - changes for new file, text.c, with character and text handling
- functions from readline.c
-
- 2/20
- ----
-{configure.config.h}.in
- - call AC_C_CHAR_UNSIGNED, define __CHAR_UNSIGNED__ if chars are
- unsigned by default
-
- 5/20
- ----
-doc/Makefile.in
- - new maybe-clean target that removes the generated documentation if
- the build directory differs from the source directory
- - distclean target now depends on maybe-clean
diff --git a/readline-4.3.orig/CHANGES b/readline-4.3.orig/CHANGES
deleted file mode 100644
index bc9fe94..0000000
--- a/readline-4.3.orig/CHANGES
+++ /dev/null
@@ -1,612 +0,0 @@
-This document details the changes between this version, readline-4.3,
-and the previous version, readline-4.2a.
-
-1. Changes to Readline
-
-a. Fixed output of comment-begin character when listing variable values.
-
-b. Added some default key bindings for common escape sequences produced by
- HOME and END keys.
-
-c. Fixed the mark handling code to be more emacs-compatible.
-
-d. A bug was fixed in the code that prints possible completions to keep it
- from printing empty strings in certain circumstances.
-
-e. Change the key sequence printing code to print ESC as M\- if ESC is a
- meta-prefix character -- it's easier for users to understand than \e.
-
-f. Fixed unstifle_history() to return values that match the documentation.
-
-g. Fixed the event loop (rl_event_hook) to handle the case where the input
- file descriptor is invalidated.
-
-h. Fixed the prompt display code to work better when the application has a
- custom redisplay function.
-
-i. Changes to make reading and writing the history file a little faster, and
- to cope with huge history files without calling abort(3) from xmalloc.
-
-j. The vi-mode `S' and `s' commands are now undone correctly.
-
-k. Fixed a problem which caused the display to be messed up when the last
- line of a multi-line prompt (possibly containing invisible characters)
- was longer than the screen width.
-
-2. New Features in Readline
-
-a. Support for key `subsequences': allows, e.g., ESC and ESC-a to both
- be bound to readline functions. Now the arrow keys may be used in vi
- insert mode.
-
-b. When listing completions, and the number of lines displayed is more than
- the screen length, readline uses an internal pager to display the results.
- This is controlled by the `page-completions' variable (default on).
-
-c. New code to handle editing and displaying multibyte characters.
-
-d. The behavior introduced in bash-2.05a of deciding whether or not to
- append a slash to a completed name that is a symlink to a directory has
- been made optional, controlled by the `mark-symlinked-directories'
- variable (default is the 2.05a behavior).
-
-e. The `insert-comment' command now acts as a toggle if given a numeric
- argument: if the first characters on the line don't specify a
- comment, insert one; if they do, delete the comment text
-
-f. New application-settable completion variable:
- rl_completion_mark_symlink_dirs, allows an application's completion
- function to temporarily override the user's preference for appending
- slashes to names which are symlinks to directories.
-
-g. New function available to application completion functions:
- rl_completion_mode, to tell how the completion function was invoked
- and decide which argument to supply to rl_complete_internal (to list
- completions, etc.).
-
-h. Readline now has an overwrite mode, toggled by the `overwrite-mode'
- bindable command, which could be bound to `Insert'.
-
-i. New application-settable completion variable:
- rl_completion_suppress_append, inhibits appending of
- rl_completion_append_character to completed words.
-
-j. New key bindings when reading an incremental search string: ^W yanks
- the currently-matched word out of the current line into the search
- string; ^Y yanks the rest of the current line into the search string,
- DEL or ^H deletes characters from the search string.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-4.2a,
-and the previous version, readline-4.2.
-
-1. Changes to Readline
-
-a. More `const' and type casting fixes.
-
-b. Changed rl_message() to use vsnprintf(3) (if available) to fix buffer
- overflow problems.
-
-c. The completion code no longer appends a `/' or ` ' to a match when
- completing a symbolic link that resolves to a directory name, unless
- the match does not add anything to the word being completed. This
- means that a tab will complete the word up to the full name, but not
- add anything, and a subsequent tab will add a slash.
-
-d. Fixed a trivial typo that made the vi-mode `dT' command not work.
-
-e. Fixed the tty code so that ^S and ^Q can be inserted with rl_quoted_insert.
-
-f. Fixed the tty code so that ^V works more than once.
-
-g. Changed the use of __P((...)) for function prototypes to PARAMS((...))
- because the use of __P in typedefs conflicted g++ and glibc.
-
-h. The completion code now attempts to do a better job of preserving the
- case of the word the user typed if ignoring case in completions.
-
-i. Readline defaults to not echoing the input and lets the terminal
- initialization code enable echoing if there is a controlling terminal.
-
-j. The key binding code now processes only two hex digits after a `\x'
- escape sequence, and the documentation was changed to note that the
- octal and hex escape sequences result in an eight-bit value rather
- than strict ASCII.
-
-k. Fixed a few places where negative array subscripts could have occurred.
-
-l. Fixed the vi-mode code to use a better method to determine the bounds of
- the array used to hold the marks, and to avoid out-of-bounds references.
-
-m. Fixed the defines in chardefs.h to work better when chars are signed.
-
-n. Fixed configure.in to use the new names for bash autoconf macros.
-
-o. Readline no longer attempts to define its own versions of some ctype
- macros if they are implemented as functions in libc but not as macros in
- <ctype.h>.
-
-p. Fixed a problem where rl_backward could possibly set point to before
- the beginning of the line.
-
-q. Fixed Makefile to not put -I/usr/include into CFLAGS, since it can cause
- include file problems.
-
-2. New Features in Readline
-
-a. Added extern declaration for rl_get_termcap to readline.h, making it a
- public function (it was always there, just not in readline.h).
-
-b. New #defines in readline.h: RL_READLINE_VERSION, currently 0x0402,
- RL_VERSION_MAJOR, currently 4, and RL_VERSION_MINOR, currently 2.
-
-c. New readline variable: rl_readline_version, mirrors RL_READLINE_VERSION.
-
-d. New bindable boolean readline variable: match-hidden-files. Controls
- completion of files beginning with a `.' (on Unix). Enabled by default.
-
-e. The history expansion code now allows any character to terminate a
- `:first-' modifier, like csh.
-
-f. The incremental search code remembers the last search string and uses
- it if ^R^R is typed without a search string.
-
-h. New bindable variable `history-preserve-point'. If set, the history
- code attempts to place the user at the same location on each history
- line retrived with previous-history or next-history.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-4.2,
-and the previous version, readline-4.1.
-
-1. Changes to Readline
-
-a. When setting the terminal attributes on systems using `struct termio',
- readline waits for output to drain before changing the attributes.
-
-b. A fix was made to the history word tokenization code to avoid attempts to
- dereference a null pointer.
-
-c. Readline now defaults rl_terminal_name to $TERM if the calling application
- has left it unset, and tries to initialize with the resultant value.
-
-d. Instead of calling (*rl_getc_function)() directly to get input in certain
- places, readline now calls rl_read_key() consistently.
-
-e. Fixed a bug in the completion code that allowed a backslash to quote a
- single quote inside a single-quoted string.
-
-f. rl_prompt is no longer assigned directly from the argument to readline(),
- but uses memory allocated by readline. This allows constant strings to
- be passed to readline without problems arising when the prompt processing
- code wants to modify the string.
-
-g. Fixed a bug that caused non-interactive history searches to return the
- wrong line when performing multiple searches backward for the same string.
-
-h. Many variables, function arguments, and function return values are now
- declared `const' where appropriate, to improve behavior when linking with
- C++ code.
-
-i. The control character detection code now works better on systems where
- `char' is unsigned by default.
-
-j. The vi-mode numeric argument is now capped at 999999, just like emacs mode.
-
-k. The Function, CPFunction, CPPFunction, and VFunction typedefs have been
- replaced with a set of specific prototyped typedefs, though they are
- still in the readline header files for backwards compatibility.
-
-m. Nearly all of the (undocumented) internal global variables in the library
- now have an _rl_ prefix -- there were a number that did not, like
- screenheight, screenwidth, alphabetic, etc.
-
-n. The ding() convenience function has been renamed to rl_ding(), though the
- old function is still defined for backwards compatibility.
-
-o. The completion convenience functions filename_completion_function,
- username_completion_function, and completion_matches now have an rl_
- prefix, though the old names are still defined for backwards compatibility.
-
-p. The functions shared by readline and bash (linkage is satisfied from bash
- when compiling with bash, and internally otherwise) now have an sh_ prefix.
-
-q. Changed the shared library creation procedure on Linux and BSD/OS 4.x so
- that the `soname' contains only the major version number rather than the
- major and minor numbers.
-
-r. Fixed a redisplay bug that occurred when the prompt spanned more than one
- physical line and contained invisible characters.
-
-s. Added a missing `includedir' variable to the Makefile.
-
-t. When installing the shared libraries, make sure symbolic links are relative.
-
-u. Added configure test so that it can set `${MAKE}' appropriately.
-
-v. Fixed a bug in rl_forward that could cause the point to be set to before
- the beginning of the line in vi mode.
-
-w. Fixed a bug in the callback read-char interface to make it work when a
- readline function pushes some input onto the input stream with
- rl_execute_next (like the incremental search functions).
-
-x. Fixed a file descriptor leak in the history file manipulation code that
- was tripped when attempting to truncate a non-regular file (like
- /dev/null).
-
-y. Changes to make all of the exported readline functions declared in
- readline.h have an rl_ prefix (rltty_set_default_bindings is now
- rl_tty_set_default_bindings, crlf is now rl_crlf, etc.)
-
-z. The formatted documentation included in the base readline distribution
- is no longer removed on a `make distclean'.
-
-aa. Some changes were made to avoid gcc warnings with -Wall.
-
-bb. rl_get_keymap_by_name now finds keymaps case-insensitively, so
- `set keymap EMACS' works.
-
-cc. The history file writing and truncation functions now return a useful
- status on error.
-
-dd. Fixed a bug that could cause applications to dereference a NULL pointer
- if a NULL second argument was passed to history_expand().
-
-ee. If a hook function assigned to rl_event_hook sets rl_done to a non-zero
- value, rl_read_key() now immediately returns '\n' (which is assumed to
- be bound to accept-line).
-
-2. New Features in Readline
-
-a. The blink timeout for paren matching is now settable by applications,
- via the rl_set_paren_blink_timeout() function.
-
-b. _rl_executing_macro has been renamed to rl_executing_macro, which means
- it's now part of the public interface.
-
-c. Readline has a new variable, rl_readline_state, which is a bitmap that
- encapsulates the current state of the library; intended for use by
- callbacks and hook functions.
-
-d. rlfe has a new -l option to log input and output (-a appends to logfile),
- a new -n option to set the readline application name, and -v and -h
- options for version and help information.
-
-e. rlfe can now perform filename completion for the inferior process if the
- OS has a /proc/<PID>/cwd that can be read with readlink(2) to get the
- inferior's current working directory.
-
-f. A new file, rltypedefs.h, contains the new typedefs for function pointers
- and is installed by `make install'.
-
-g. New application-callable function rl_set_prompt(const char *prompt):
- expands its prompt string argument and sets rl_prompt to the result.
-
-h. New application-callable function rl_set_screen_size(int rows, int cols):
- public method for applications to set readline's idea of the screen
- dimensions.
-
-i. The history example program (examples/histexamp.c) is now built as one
- of the examples.
-
-j. The documentation has been updated to cover nearly all of the public
- functions and variables declared in readline.h.
-
-k. New function, rl_get_screen_size (int *rows, int *columns), returns
- readline's idea of the screen dimensions.
-
-l. The timeout in rl_gather_tyi (readline keyboard input polling function)
- is now settable via a function (rl_set_keyboard_input_timeout()).
-
-m. Renamed the max_input_history variable to history_max_entries; the old
- variable is maintained for backwards compatibility.
-
-n. The list of characters that separate words for the history tokenizer is
- now settable with a variable: history_word_delimiters. The default
- value is as before.
-
-o. There is a new history.3 manual page documenting the history library.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-4.1,
-and the previous version, readline-4.0.
-
-1. Changes to Readline
-
-a. Changed the HTML documents so that the table-of-contents is no longer
- a separate file.
-
-b. Changes to the shared object configuration for: Irix 5.x, Irix 6.x,
- OSF/1.
-
-c. The shared library major and minor versions are now constructed
- automatically by configure and substituted into the makefiles.
-
-d. It's now possible to install the shared libraries separately from the
- static libraries.
-
-e. The history library tries to truncate the history file only if it is a
- regular file.
-
-f. A bug that caused _rl_dispatch to address negative array indices on
- systems with signed chars was fixed.
-
-g. rl-yank-nth-arg now leaves the history position the same as when it was
- called.
-
-h. Changes to the completion code to handle MS-DOS drive-letter:pathname
- filenames.
-
-i. Completion is now case-insensitive by default on MS-DOS.
-
-j. Fixes to the history file manipulation code for MS-DOS.
-
-k. Readline attempts to bind the arrow keys to appropriate defaults on MS-DOS.
-
-l. Some fixes were made to the redisplay code for better operation on MS-DOS.
-
-m. The quoted-insert code will now insert tty special chars like ^C.
-
-n. A bug was fixed that caused the display code to reference memory before
- the start of the prompt string.
-
-o. More support for __EMX__ (OS/2).
-
-p. A bug was fixed in readline's signal handling that could cause infinite
- recursion in signal handlers.
-
-q. A bug was fixed that caused the point to be less than zero when rl_forward
- was given a very large numeric argument.
-
-r. The vi-mode code now gets characters via the application-settable value
- of rl_getc_function rather than calling rl_getc directly.
-
-s. The history file code now uses O_BINARY mode when reading and writing
- the history file on cygwin32.
-
-t. Fixed a bug in the redisplay code for lines with more than 256 line
- breaks.
-
-u. A bug was fixed which caused invisible character markers to not be
- stripped from the prompt string if the terminal was in no-echo mode.
-
-v. Readline no longer tries to get the variables it needs for redisplay
- from the termcap entry if the calling application has specified its
- own redisplay function. Readline treats the terminal as `dumb' in
- this case.
-
-w. Fixes to the SIGWINCH code so that a multiple-line prompt with escape
- sequences is redrawn correctly.
-
-x. Changes to the install and install-shared targets so that the libraries
- and header files are installed separately.
-
-2. New Features in Readline
-
-a. A new Readline `user manual' is in doc/rluserman.texinfo.
-
-b. Parentheses matching is now always compiled into readline, and enabled
- or disabled when the value of the `blink-matching-paren' variable is
- changed.
-
-c. MS-DOS systems now use ~/_inputrc as the last-ditch inputrc filename.
-
-d. MS-DOS systems now use ~/_history as the default history file.
-
-e. history-search-{forward,backward} now leave the point at the end of the
- line when the string to search for is empty, like
- {reverse,forward}-search-history.
-
-f. history-search-{forward,backward} now leave the last history line found
- in the readline buffer if the second or subsequent search fails.
-
-g. New function for use by applications: rl_on_new_line_with_prompt, used
- when an application displays the prompt itself before calling readline().
-
-h. New variable for use by applications: rl_already_prompted. An application
- that displays the prompt itself before calling readline() must set this to
- a non-zero value.
-
-i. A new variable, rl_gnu_readline_p, always 1. The intent is that an
- application can verify whether or not it is linked with the `real'
- readline library or some substitute.
-
-j. Per Bothner's `rlfe' (pronounced `Ralphie') readline front-end program
- is included in the examples subdirectory, though it is not built
- by default.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-4.0,
-and the previous version, readline-2.2.
-
-1. Changes to Readline
-
-a. The version number is now 4.0, to match the major and minor version
- numbers on the shared readline and history libraries. Future
- releases will maintain the identical numbering.
-
-b. Fixed a typo in the `make install' recipe that copied libreadline.a
- to libhistory.old right after installing it.
-
-c. The readline and history info files are now installed out of the source
- directory if they are not found in the build directory.
-
-d. The library no longer exports a function named `savestring' -- backwards
- compatibility be damned.
-
-e. There is no longer any #ifdef SHELL code in the source files.
-
-f. Some changes were made to the key binding code to fix memory leaks and
- better support Win32 systems.
-
-g. Fixed a silly typo in the paren matching code -- it's microseconds, not
- milliseconds.
-
-h. The readline library should be compilable by C++ compilers.
-
-i. The readline.h public header file now includes function prototypes for
- all readline functions, and some changes were made to fix errors in the
- source files uncovered by the use of prototypes.
-
-j. The maximum numeric argument is now clamped at 1000000.
-
-k. Fixes to rl_yank_last_arg to make it behave better.
-
-l. Fixed a bug in the display code that caused core dumps if the prompt
- string length exceeded 1024 characters.
-
-m. The menu completion code was fixed to properly insert a single completion
- if there is only one match.
-
-n. A bug was fixed that caused the display code to improperly display tabs
- after newlines.
-
-o. A fix was made to the completion code in which a typo caused the wrong
- value to be passed to the function that computed the longest common
- prefix of the list of matches.
-
-p. The completion code now checks the value of rl_filename_completion_desired,
- which is set by application-supplied completion functions to indicate
- that filename completion is being performed, to decide whether or not to
- call an application-supplied `ignore completions' function.
-
-q. Code was added to the history library to catch history substitutions
- using `&' without a previous history substitution or search having been
- performed.
-
-
-2. New Features in Readline
-
-a. There is a new script, support/shobj-conf, to do system-specific shared
- object and library configuration. It generates variables for configure
- to substitute into makefiles. The README file provides a detailed
- explanation of the shared library creation process.
-
-b. Shared libraries and objects are now built in the `shlib' subdirectory.
- There is a shlib/Makefile.in to control the build process. `make shared'
- from the top-level directory is still the right way to build shared
- versions of the libraries.
-
-c. rlconf.h is now installed, so applications can find out which features
- have been compiled into the installed readline and history libraries.
-
-d. rlstdc.h is now an installed header file.
-
-e. Many changes to the signal handling:
- o Readline now catches SIGQUIT and cleans up the tty before returning;
- o A new variable, rl_catch_signals, is available to application writers
- to indicate to readline whether or not it should install its own
- signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP,
- SIGTTIN, and SIGTTOU;
- o A new variable, rl_catch_sigwinch, is available to application
- writers to indicate to readline whether or not it should install its
- own signal handler for SIGWINCH, which will chain to the calling
- applications's SIGWINCH handler, if one is installed;
- o There is a new function, rl_free_line_state, for application signal
- handlers to call to free up the state associated with the current
- line after receiving a signal;
- o There is a new function, rl_cleanup_after_signal, to clean up the
- display and terminal state after receiving a signal;
- o There is a new function, rl_reset_after_signal, to reinitialize the
- terminal and display state after an application signal handler
- returns and readline continues
-
-f. There is a new function, rl_resize_terminal, to reset readline's idea of
- the screen size after a SIGWINCH.
-
-g. New public functions: rl_save_prompt and rl_restore_prompt. These were
- previously private functions with a `_' prefix. These functions are
- used when an application wants to write a message to the `message area'
- with rl_message and have the prompt restored correctly when the message
- is erased.
-
-h. New function hook: rl_pre_input_hook, called just before readline starts
- reading input, after initialization.
-
-i. New function hook: rl_display_matches_hook, called when readline would
- display the list of completion matches. The new function
- rl_display_match_list is what readline uses internally, and is available
- for use by application functions called via this hook.
-
-j. New bindable function, delete-char-or-list, like tcsh.
-
-k. A new variable, rl_erase_empty_line, which, if set by an application using
- readline, will cause readline to erase, prompt and all, lines on which the
- only thing typed was a newline.
-
-l. There is a new script, support/shlib-install, to install and uninstall
- the shared readline and history libraries.
-
-m. A new bindable variable, `isearch-terminators', which is a string
- containing the set of characters that should terminate an incremental
- search without being executed as a command.
-
-n. A new bindable function, forward-backward-delete-char.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-2.2,
-and the previous version, readline-2.1.
-
-1. Changes to Readline
-
-a. Added a missing `extern' to a declaration in readline.h that kept
- readline from compiling cleanly on some systems.
-
-b. The history file is now opened with mode 0600 when it is written for
- better security.
-
-c. Changes were made to the SIGWINCH handling code so that prompt redisplay
- is done better.
-
-d. ^G now interrupts incremental searches correctly.
-
-e. A bug that caused a core dump when the set of characters to be quoted
- when completing words was empty was fixed.
-
-f. Fixed a problem in the readline test program rltest.c that caused a core
- dump.
-
-g. The code that handles parser directives in inputrc files now displays
- more error messages.
-
-h. The history expansion code was fixed so that the appearance of the
- history comment character at the beginning of a word inhibits history
- expansion for that word and the rest of the input line.
-
-i. The code that prints completion listings now behaves better if one or
- more of the filenames contains non-printable characters.
-
-j. The time delay when showing matching parentheses is now 0.5 seconds.
-
-
-2. New Features in Readline
-
-a. There is now an option for `iterative' yank-last-arg handline, so a user
- can keep entering `M-.', yanking the last argument of successive history
- lines.
-
-b. New variable, `print-completions-horizontally', which causes completion
- matches to be displayed across the screen (like `ls -x') rather than up
- and down the screen (like `ls').
-
-c. New variable, `completion-ignore-case', which causes filename completion
- and matching to be performed case-insensitively.
-
-d. There is a new bindable command, `magic-space', which causes history
- expansion to be performed on the current readline buffer and a space to
- be inserted into the result.
-
-e. There is a new bindable command, `menu-complete', which enables tcsh-like
- menu completion (successive executions of menu-complete insert a single
- completion match, cycling through the list of possible completions).
-
-f. There is a new bindable command, `paste-from-clipboard', for use on Win32
- systems, to insert the text from the Win32 clipboard into the editing
- buffer.
-
-g. The key sequence translation code now understands printf-style backslash
- escape sequences, including \NNN octal escapes. These escape sequences
- may be used in key sequence definitions or macro values.
-
-h. An `$include' inputrc file parser directive has been added.
diff --git a/readline-4.3.orig/COPYING b/readline-4.3.orig/COPYING
deleted file mode 100644
index 1bf1526..0000000
--- a/readline-4.3.orig/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/readline-4.3.orig/INSTALL b/readline-4.3.orig/INSTALL
deleted file mode 100644
index adb27a9..0000000
--- a/readline-4.3.orig/INSTALL
+++ /dev/null
@@ -1,273 +0,0 @@
-Basic Installation
-==================
-
-These are installation instructions for Readline-4.3.
-
-The simplest way to compile readline is:
-
- 1. `cd' to the directory containing the readline source code and type
- `./configure' to configure readline for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes some time. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile readline and build the static readline
- and history libraries. If supported, the shared readline and history
- libraries will be built also. See below for instructions on compiling
- the other parts of the distribution. Typing `make everything' will
- cause the static and shared libraries (if supported) and the example
- programs to be built.
-
- 3. Type `make install' to install the static readline and history
- libraries, the readline include files, the documentation, and, if
- supported, the shared readline and history libraries.
-
- 4. You can remove the created libraries and object files from the
- build directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile readline for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the readline developers, and should be used with care.
-
-The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It
-uses those values to create a `Makefile' in the build directory,
-and Makefiles in the `doc', `shlib', and `examples'
-subdirectories. It also creates a `config.h' file containing
-system-dependent definitions. Finally, it creates a shell script
-`config.status' that you can run in the future to recreate the
-current configuration, a file `config.cache' that saves the
-results of its tests to speed up reconfiguring, and a file
-`config.log' containing compiler output (useful mainly for
-debugging `configure').
-
-If you need to do unusual things to compile readline, please try
-to figure out how `configure' could check whether to do them, and
-mail diffs or instructions to <bug-readline@gnu.org> so they can
-be considered for the next release. If at some point
-`config.cache' contains results you don't want to keep, you may
-remove or edit it.
-
-The file `configure.in' is used to create `configure' by a
-program called `autoconf'. You only need `configure.in' if you
-want to change it or regenerate `configure' using a newer version
-of `autoconf'. The readline `configure.in' requires autoconf
-version 2.50 or newer.
-
-Compilers and Options
-=====================
-
-Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
-
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
-You can compile readline for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile readline for one architecture at a
-time in the source code directory. After you have installed
-readline for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
-Installation Names
-==================
-
-By default, `make install' will install the readline libraries in
-`/usr/local/lib', the include files in
-`/usr/local/include/readline', the man pages in `/usr/local/man',
-and the info files in `/usr/local/info'. You can specify an
-installation prefix other than `/usr/local' by giving `configure'
-the option `--prefix=PATH' or by supplying a value for the
-DESTDIR variable when running `make install'.
-
-You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.
-If you give `configure' the option `--exec-prefix=PATH', the
-readline Makefiles will use PATH as the prefix for installing the
-libraries. Documentation and other data files will still use the
-regular prefix.
-
-Specifying the System Type
-==========================
-
-There may be some features `configure' can not figure out
-automatically, but need to determine by the type of host readline
-will run on. Usually `configure' can figure that out, but if it
-prints a message saying it can not guess the host type, give it
-the `--host=TYPE' option. TYPE can either be a short name for
-the system type, such as `sun4', or a canonical name with three
-fields: CPU-COMPANY-SYSTEM (e.g., i386-unknown-freebsd4.2).
-
-See the file `config.sub' for the possible values of each field.
-
-Sharing Defaults
-================
-
-If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: the readline `configure' looks for a site script, but not
-all `configure' scripts do.
-
-Operation Controls
-==================
-
-`configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made.
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
-
-Optional Features
-=================
-
-The readline `configure' recognizes a single `--with-PACKAGE' option:
-
-`--with-curses'
- This tells readline that it can find the termcap library functions
- (tgetent, et al.) in the curses library, rather than a separate
- termcap library. Readline uses the termcap functions, but does not
- link with the termcap or curses library itself, allowing applications
- which link with readline the to choose an appropriate library.
- This option tells readline to link the example programs with the
- curses library rather than libtermcap.
-
-`configure' also recognizes two `--enable-FEATURE' options:
-
-`--enable-shared'
- Build the shared libraries by default on supported platforms. The
- default is `yes'.
-
-`--enable-static'
- Build the static libraries by default. The default is `yes'.
-
-Shared Libraries
-================
-
-There is support for building shared versions of the readline and
-history libraries. The configure script creates a Makefile in
-the `shlib' subdirectory, and typing `make shared' will cause
-shared versions of the readline and history libraries to be built
-on supported platforms.
-
-If `configure' is given the `--enable-shared' option, it will attempt
-to build the shared libraries by default on supported platforms.
-
-Configure calls the script support/shobj-conf to test whether or
-not shared library creation is supported and to generate the values
-of variables that are substituted into shlib/Makefile. If you
-try to build shared libraries on an unsupported platform, `make'
-will display a message asking you to update support/shobj-conf for
-your platform.
-
-If you need to update support/shobj-conf, you will need to create
-a `stanza' for your operating system and compiler. The script uses
-the value of host_os and ${CC} as determined by configure. For
-instance, FreeBSD 4.2 with any version of gcc is identified as
-`freebsd4.2-gcc*'.
-
-In the stanza for your operating system-compiler pair, you will need to
-define several variables. They are:
-
-SHOBJ_CC The C compiler used to compile source files into shareable
- object files. This is normally set to the value of ${CC}
- by configure, and should not need to be changed.
-
-SHOBJ_CFLAGS Flags to pass to the C compiler ($SHOBJ_CC) to create
- position-independent code. If you are using gcc, this
- should probably be set to `-fpic'.
-
-SHOBJ_LD The link editor to be used to create the shared library from
- the object files created by $SHOBJ_CC. If you are using
- gcc, a value of `gcc' will probably work.
-
-SHOBJ_LDFLAGS Flags to pass to SHOBJ_LD to enable shared object creation.
- If you are using gcc, `-shared' may be all that is necessary.
- These should be the flags needed for generic shared object
- creation.
-
-SHLIB_XLDFLAGS Additional flags to pass to SHOBJ_LD for shared library
- creation. Many systems use the -R option to the link
- editor to embed a path within the library for run-time
- library searches. A reasonable value for such systems would
- be `-R$(libdir)'.
-
-SHLIB_LIBS Any additional libraries that shared libraries should be
- linked against when they are created.
-
-SHLIB_LIBSUFF The suffix to add to `libreadline' and `libhistory' when
- generating the filename of the shared library. Many systems
- use `so'; HP-UX uses `sl'.
-
-SHLIB_LIBVERSION The string to append to the filename to indicate the version
- of the shared library. It should begin with $(SHLIB_LIBSUFF),
- and possibly include version information that allows the
- run-time loader to load the version of the shared library
- appropriate for a particular program. Systems using shared
- libraries similar to SunOS 4.x use major and minor library
- version numbers; for those systems a value of
- `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' is appropriate.
- Systems based on System V Release 4 don't use minor version
- numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems.
- Other Unix versions use different schemes.
-
-SHLIB_STATUS Set this to `supported' when you have defined the other
- necessary variables. Make uses this to determine whether
- or not shared library creation should be attempted. If
- shared libraries are not supported, this will be set to
- `unsupported'.
-
-You should look at the existing stanzas in support/shobj-conf for ideas.
-
-Once you have updated support/shobj-conf, re-run configure and type
-`make shared' or `make'. The shared libraries will be created in the
-shlib subdirectory.
-
-If shared libraries are created, `make install' will install them.
-You may install only the shared libraries by running `make
-install-shared' from the top-level build directory. Running `make
-install' in the shlib subdirectory will also work. If you don't want
-to install any created shared libraries, run `make install-static'.
diff --git a/readline-4.3.orig/MANIFEST b/readline-4.3.orig/MANIFEST
deleted file mode 100644
index 1507eda..0000000
--- a/readline-4.3.orig/MANIFEST
+++ /dev/null
@@ -1,126 +0,0 @@
-#
-# Master distribution manifest for the standalone readline distribution
-#
-doc d
-examples d
-support d
-shlib d
-COPYING f
-README f
-MANIFEST f
-INSTALL f
-CHANGELOG f
-CHANGES f
-USAGE f
-aclocal.m4 f
-config.h.in f
-configure f
-configure.in f
-Makefile.in f
-ansi_stdlib.h f
-chardefs.h f
-history.h f
-histlib.h f
-keymaps.h f
-posixdir.h f
-posixjmp.h f
-posixstat.h f
-readline.h f
-rlconf.h f
-rldefs.h f
-rlmbutil.h f
-rlprivate.h f
-rlshell.h f
-rlstdc.h f
-rltty.h f
-rltypedefs.h f
-rlwinsize.h f
-tcap.h f
-tilde.h f
-xmalloc.h f
-bind.c f
-callback.c f
-compat.c f
-complete.c f
-display.c f
-emacs_keymap.c f
-funmap.c f
-input.c f
-isearch.c f
-keymaps.c f
-kill.c f
-macro.c f
-mbutil.c f
-misc.c f
-nls.c f
-parens.c f
-readline.c f
-rltty.c f
-savestring.c f
-search.c f
-shell.c f
-signals.c f
-terminal.c f
-text.c f
-tilde.c f
-undo.c f
-util.c f
-vi_keymap.c f
-vi_mode.c f
-xmalloc.c f
-history.c f
-histexpand.c f
-histfile.c f
-histsearch.c f
-shlib/Makefile.in f
-support/config.guess f
-support/config.sub f
-support/install.sh f
-support/mkdirs f
-support/mkdist f
-support/shobj-conf f
-support/shlib-install f
-support/wcwidth.c f
-doc/Makefile.in f
-doc/texinfo.tex f
-doc/manvers.texinfo f
-doc/rlman.texinfo f
-doc/rltech.texinfo f
-doc/rluser.texinfo f
-doc/rluserman.texinfo f
-doc/hist.texinfo f
-doc/hstech.texinfo f
-doc/hsuser.texinfo f
-doc/readline.3 f
-doc/history.3 f
-doc/texi2dvi f
-doc/texi2html f
-examples/Makefile.in f
-examples/excallback.c f
-examples/fileman.c f
-examples/manexamp.c f
-examples/readlinebuf.h f
-examples/rlcat.c f
-examples/rlfe.c f
-examples/rltest.c f
-examples/rl.c f
-examples/rlversion.c f
-examples/histexamp.c f
-examples/Inputrc f
-# formatted documentation, from MANIFEST.doc
-doc/readline.ps f
-doc/history.ps f
-doc/rluserman.ps f
-doc/readline.dvi f
-doc/history.dvi f
-doc/rluserman.dvi f
-doc/readline.info f
-doc/history.info f
-doc/rluserman.info f
-doc/readline.html f
-doc/history.html f
-doc/rluserman.html f
-doc/readline.0 f
-doc/history.0 f
-doc/readline_3.ps f
-doc/history_3.ps f
diff --git a/readline-4.3.orig/Makefile.in b/readline-4.3.orig/Makefile.in
deleted file mode 100644
index 0ff0c31..0000000
--- a/readline-4.3.orig/Makefile.in
+++ /dev/null
@@ -1,520 +0,0 @@
-## -*- text -*- ##
-# Master Makefile for the GNU readline library.
-# Copyright (C) 1994 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-RL_LIBRARY_VERSION = @LIBVERSION@
-RL_LIBRARY_NAME = readline
-
-srcdir = @srcdir@
-VPATH = .:@srcdir@
-top_srcdir = @top_srcdir@
-BUILD_DIR = @BUILD_DIR@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-CC = @CC@
-RANLIB = @RANLIB@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-RM = rm -f
-CP = cp
-MV = mv
-
-@SET_MAKE@
-SHELL = @MAKE_SHELL@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-libdir = @libdir@
-mandir = @mandir@
-includedir = @includedir@
-
-infodir = @infodir@
-
-man3dir = $(mandir)/man3
-
-# Support an alternate destination root directory for package building
-DESTDIR =
-
-# Programs to make tags files.
-ETAGS = etags -tw
-CTAGS = ctags -tw
-
-CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
-CPPFLAGS = @CPPFLAGS@
-
-DEFS = @DEFS@
-LOCAL_DEFS = @LOCAL_DEFS@
-
-TERMCAP_LIB = @TERMCAP_LIB@
-
-# For libraries which include headers from other libraries.
-INCLUDES = -I. -I$(srcdir)
-
-XCCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES)
-CCFLAGS = $(XCCFLAGS) $(LOCAL_CFLAGS) $(CFLAGS)
-
-# could add -Werror here
-GCC_LINT_FLAGS = -ansi -Wall -Wshadow -Wpointer-arith -Wcast-qual \
- -Wwrite-strings -Wstrict-prototypes \
- -Wmissing-prototypes -Wno-implicit -pedantic
-GCC_LINT_CFLAGS = $(XCCFLAGS) $(GCC_LINT_FLAGS) @CFLAGS@ @LOCAL_CFLAGS@
-
-.c.o:
- ${RM} $@
- $(CC) -c $(CCFLAGS) $<
-
-# The name of the main library target.
-LIBRARY_NAME = libreadline.a
-STATIC_LIBS = libreadline.a libhistory.a
-
-# The C code source files for this library.
-CSOURCES = $(srcdir)/readline.c $(srcdir)/funmap.c $(srcdir)/keymaps.c \
- $(srcdir)/vi_mode.c $(srcdir)/parens.c $(srcdir)/rltty.c \
- $(srcdir)/complete.c $(srcdir)/bind.c $(srcdir)/isearch.c \
- $(srcdir)/display.c $(srcdir)/signals.c $(srcdir)/emacs_keymap.c \
- $(srcdir)/vi_keymap.c $(srcdir)/util.c $(srcdir)/kill.c \
- $(srcdir)/undo.c $(srcdir)/macro.c $(srcdir)/input.c \
- $(srcdir)/callback.c $(srcdir)/terminal.c $(srcdir)/xmalloc.c \
- $(srcdir)/history.c $(srcdir)/histsearch.c $(srcdir)/histexpand.c \
- $(srcdir)/histfile.c $(srcdir)/nls.c $(srcdir)/search.c \
- $(srcdir)/shell.c $(srcdir)/savestring.c $(srcdir)/tilde.c \
- $(srcdir)/text.c $(srcdir)/misc.c $(srcdir)/compat.c \
- $(srcdir)/mbutil.c
-
-# The header files for this library.
-HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
- posixstat.h posixdir.h posixjmp.h tilde.h rlconf.h rltty.h \
- ansi_stdlib.h tcap.h rlstdc.h xmalloc.h rlprivate.h rlshell.h \
- rltypedefs.h rlmbutil.h
-
-HISTOBJ = history.o histexpand.o histfile.o histsearch.o shell.o mbutil.o
-TILDEOBJ = tilde.o
-OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \
- rltty.o complete.o bind.o isearch.o display.o signals.o \
- util.o kill.o undo.o macro.o input.o callback.o terminal.o \
- text.o nls.o misc.o compat.o xmalloc.o $(HISTOBJ) $(TILDEOBJ)
-
-# The texinfo files which document this library.
-DOCSOURCE = doc/rlman.texinfo doc/rltech.texinfo doc/rluser.texinfo
-DOCOBJECT = doc/readline.dvi
-DOCSUPPORT = doc/Makefile
-DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT)
-
-CREATED_MAKEFILES = Makefile doc/Makefile examples/Makefile shlib/Makefile
-CREATED_CONFIGURE = config.status config.h config.cache config.log \
- stamp-config stamp-h
-CREATED_TAGS = TAGS tags
-
-INSTALLED_HEADERS = readline.h chardefs.h keymaps.h history.h tilde.h \
- rlstdc.h rlconf.h rltypedefs.h
-
-##########################################################################
-TARGETS = @STATIC_TARGET@ @SHARED_TARGET@
-INSTALL_TARGETS = @STATIC_INSTALL_TARGET@ @SHARED_INSTALL_TARGET@
-
-all: $(TARGETS)
-
-everything: all examples
-
-static: $(STATIC_LIBS)
-
-libreadline.a: $(OBJECTS)
- $(RM) $@
- $(AR) $(ARFLAGS) $@ $(OBJECTS)
- -test -n "$(RANLIB)" && $(RANLIB) $@
-
-libhistory.a: $(HISTOBJ) xmalloc.o
- $(RM) $@
- $(AR) $(ARFLAGS) $@ $(HISTOBJ) xmalloc.o
- -test -n "$(RANLIB)" && $(RANLIB) $@
-
-# Since tilde.c is shared between readline and bash, make sure we compile
-# it with the right flags when it's built as part of readline
-tilde.o: tilde.c
- rm -f $@
- $(CC) $(CCFLAGS) -DREADLINE_LIBRARY -c $(srcdir)/tilde.c
-
-readline: $(OBJECTS) readline.h rldefs.h chardefs.h ./libreadline.a
- $(CC) $(CCFLAGS) -o $@ ./examples/rl.c ./libreadline.a ${TERMCAP_LIB}
-
-lint: force
- $(MAKE) $(MFLAGS) CCFLAGS='$(GCC_LINT_CFLAGS)' static
-
-Makefile makefile: config.status $(srcdir)/Makefile.in
- CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status
-
-Makefiles makefiles: config.status $(srcdir)/Makefile.in
- @for mf in $(CREATED_MAKEFILES); do \
- CONFIG_FILES=$$mf CONFIG_HEADERS= $(SHELL) ./config.status ; \
- done
-
-config.status: configure
- $(SHELL) ./config.status --recheck
-
-config.h: stamp-h
-
-stamp-h: config.status $(srcdir)/config.h.in
- CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status
- echo > $@
-
-#$(srcdir)/configure: $(srcdir)/configure.in ## Comment-me-out in distribution
-# cd $(srcdir) && autoconf ## Comment-me-out in distribution
-
-
-shared: force
- -test -d shlib || mkdir shlib
- -( cd shlib ; ${MAKE} ${MFLAGS} all )
-
-documentation: force
- -test -d doc || mkdir doc
- -( cd doc && $(MAKE) $(MFLAGS) )
-
-examples: force
- -test -d examples || mkdir examples
- -(cd examples && ${MAKE} ${MFLAGS} all )
-
-force:
-
-install-headers: installdirs ${INSTALLED_HEADERS}
- for f in ${INSTALLED_HEADERS}; do \
- $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(includedir)/readline ; \
- done
-
-uninstall-headers:
- -test -n "$(includedir)" && cd $(DESTDIR)$(includedir)/readline && \
- ${RM} ${INSTALLED_HEADERS}
-
-maybe-uninstall-headers: uninstall-headers
-
-install: $(INSTALL_TARGETS)
-
-install-static: installdirs $(STATIC_LIBS) install-headers
- -$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old
- $(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a
- -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libreadline.a
- -$(MV) $(DESTDIR)$(libdir)/libhistory.a $(DESTDIR)$(libdir)/libhistory.old
- $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a
- -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a
- -( if test -d doc ; then \
- cd doc && \
- ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \
- fi )
-
-installdirs: $(srcdir)/support/mkdirs
- -$(SHELL) $(srcdir)/support/mkdirs $(DESTDIR)$(includedir) \
- $(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \
- $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir)
-
-uninstall: uninstall-headers
- -test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \
- ${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS)
- -( if test -d doc ; then \
- cd doc && \
- ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} $@; \
- fi )
- -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
-
-install-shared: installdirs install-headers shared
- -( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install )
-
-uninstall-shared: maybe-uninstall-headers
- -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
-
-TAGS: force
- $(ETAGS) $(CSOURCES) $(HSOURCES)
-
-tags: force
- $(CTAGS) $(CSOURCES) $(HSOURCES)
-
-clean: force
- $(RM) $(OBJECTS) $(STATIC_LIBS)
- $(RM) readline readline.exe
- -( cd shlib && $(MAKE) $(MFLAGS) $@ )
- -( cd doc && $(MAKE) $(MFLAGS) $@ )
- -( cd examples && $(MAKE) $(MFLAGS) $@ )
-
-mostlyclean: clean
- -( cd shlib && $(MAKE) $(MFLAGS) $@ )
- -( cd doc && $(MAKE) $(MFLAGS) $@ )
- -( cd examples && $(MAKE) $(MFLAGS) $@ )
-
-distclean maintainer-clean: clean
- -( cd shlib && $(MAKE) $(MFLAGS) $@ )
- -( cd doc && $(MAKE) $(MFLAGS) $@ )
- -( cd examples && $(MAKE) $(MFLAGS) $@ )
- $(RM) Makefile
- $(RM) $(CREATED_CONFIGURE)
- $(RM) $(CREATED_TAGS)
-
-info dvi:
- -( cd doc && $(MAKE) $(MFLAGS) $@ )
-
-install-info:
-check:
-installcheck:
-
-dist: force
- @echo Readline distributions are created using $(srcdir)/support/mkdist.
- @echo Here is a sample of the necessary commands:
- @echo bash $(srcdir)/support/mkdist -m $(srcdir)/MANIFEST -s $(srcdir) -r $(RL_LIBRARY_NAME) $(RL_LIBRARY_VERSION)
- @echo tar cf $(RL_LIBRARY_NAME)-${RL_LIBRARY_VERSION}.tar ${RL_LIBRARY_NAME}-$(RL_LIBRARY_VERSION)
- @echo gzip $(RL_LIBRARY_NAME)-$(RL_LIBRARY_VERSION).tar
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-# Dependencies
-bind.o: ansi_stdlib.h posixstat.h
-bind.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-bind.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-bind.o: history.h
-callback.o: rlconf.h
-callback.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-callback.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-compat.o: rlstdc.h
-complete.o: ansi_stdlib.h posixdir.h posixstat.h
-complete.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-complete.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-display.o: ansi_stdlib.h posixstat.h
-display.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-display.o: tcap.h
-display.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-display.o: history.h rlstdc.h
-funmap.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-funmap.o: rlconf.h ansi_stdlib.h rlstdc.h
-funmap.o: ${BUILD_DIR}/config.h
-histexpand.o: ansi_stdlib.h
-histexpand.o: history.h histlib.h rlstdc.h rltypedefs.h
-histexpand.o: ${BUILD_DIR}/config.h
-histfile.o: ansi_stdlib.h
-histfile.o: history.h histlib.h rlstdc.h rltypedefs.h
-histfile.o: ${BUILD_DIR}/config.h
-history.o: ansi_stdlib.h
-history.o: history.h histlib.h rlstdc.h rltypedefs.h
-history.o: ${BUILD_DIR}/config.h
-histsearch.o: ansi_stdlib.h
-histsearch.o: history.h histlib.h rlstdc.h rltypedefs.h
-histsearch.o: ${BUILD_DIR}/config.h
-input.o: ansi_stdlib.h
-input.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-input.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-isearch.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-isearch.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-isearch.o: ansi_stdlib.h history.h rlstdc.h
-keymaps.o: emacs_keymap.c vi_keymap.c
-keymaps.o: keymaps.h rltypedefs.h chardefs.h rlconf.h ansi_stdlib.h
-keymaps.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-keymaps.o: ${BUILD_DIR}/config.h rlstdc.h
-kill.o: ansi_stdlib.h
-kill.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-kill.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-kill.o: history.h rlstdc.h
-macro.o: ansi_stdlib.h
-macro.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-macro.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-macro.o: history.h rlstdc.h
-mbutil.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-mbutil.o: readline.h keymaps.h rltypedefs.h chardefs.h rlstdc.h
-misc.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-misc.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-misc.o: history.h rlstdc.h ansi_stdlib.h
-nls.o: ansi_stdlib.h
-nls.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-nls.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-nls.o: history.h rlstdc.h
-parens.o: rlconf.h
-parens.o: ${BUILD_DIR}/config.h
-parens.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-readline.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-readline.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-readline.o: history.h rlstdc.h
-readline.o: posixstat.h ansi_stdlib.h posixjmp.h
-rltty.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-rltty.o: rltty.h
-rltty.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-search.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-search.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-search.o: ansi_stdlib.h history.h rlstdc.h
-shell.o: ${BUILD_DIR}/config.h
-shell.o: ansi_stdlib.h
-signals.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-signals.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-signals.o: history.h rlstdc.h
-terminal.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-terminal.o: tcap.h
-terminal.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-terminal.o: history.h rlstdc.h
-text.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-text.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-text.o: history.h rlstdc.h ansi_stdlib.h
-tilde.o: ansi_stdlib.h
-tilde.o: ${BUILD_DIR}/config.h
-tilde.o: tilde.h
-undo.o: ansi_stdlib.h
-undo.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-undo.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-undo.o: history.h rlstdc.h
-util.o: posixjmp.h ansi_stdlib.h
-util.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-util.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-vi_mode.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-vi_mode.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-vi_mode.o: history.h ansi_stdlib.h rlstdc.h
-xmalloc.o: ${BUILD_DIR}/config.h
-xmalloc.o: ansi_stdlib.h
-
-bind.o: rlshell.h
-histfile.o: rlshell.h
-nls.o: rlshell.h
-readline.o: rlshell.h
-shell.o: rlshell.h
-terminal.o: rlshell.h
-histexpand.o: rlshell.h
-
-bind.o: rlprivate.h
-callback.o: rlprivate.h
-complete.o: rlprivate.h
-display.o: rlprivate.h
-input.o: rlprivate.h
-isearch.o: rlprivate.h
-kill.o: rlprivate.h
-macro.o: rlprivate.h
-mbutil.o: rlprivate.h
-misc.o: rlprivate.h
-nls.o: rlprivate.h
-parens.o: rlprivate.h
-readline.o: rlprivate.h
-rltty.o: rlprivate.h
-search.o: rlprivate.h
-signals.o: rlprivate.h
-terminal.o: rlprivate.h
-text.o: rlprivate.h
-undo.o: rlprivate.h
-util.o: rlprivate.h
-vi_mode.o: rlprivate.h
-
-bind.o: xmalloc.h
-complete.o: xmalloc.h
-display.o: xmalloc.h
-funmap.o: xmalloc.h
-histexpand.o: xmalloc.h
-histfile.o: xmalloc.h
-history.o: xmalloc.h
-input.o: xmalloc.h
-isearch.o: xmalloc.h
-keymaps.o: xmalloc.h
-kill.o: xmalloc.h
-macro.o: xmalloc.h
-mbutil.o: xmalloc.h
-misc.o: xmalloc.h
-readline.o: xmalloc.h
-savestring.o: xmalloc.h
-search.o: xmalloc.h
-shell.o: xmalloc.h
-terminal.o: xmalloc.h
-text.o: xmalloc.h
-tilde.o: xmalloc.h
-undo.o: xmalloc.h
-util.o: xmalloc.h
-vi_mode.o: xmalloc.h
-xmalloc.o: xmalloc.h
-
-complete.o: rlmbutil.h
-display.o: rlmbutil.h
-histexpand.o: rlmbutil.h
-input.o: rlmbutil.h
-isearch.o: rlmbutil.h
-mbutil.o: rlmbutil.h
-misc.o: rlmbutil.h
-readline.o: rlmbutil.h
-search.o: rlmbutil.h
-text.o: rlmbutil.h
-vi_mode.o: rlmbutil.h
-
-bind.o: $(srcdir)/bind.c
-callback.o: $(srcdir)/callback.c
-compat.o: $(srcdir)/compat.c
-complete.o: $(srcdir)/complete.c
-display.o: $(srcdir)/display.c
-funmap.o: $(srcdir)/funmap.c
-input.o: $(srcdir)/input.c
-isearch.o: $(srcdir)/isearch.c
-keymaps.o: $(srcdir)/keymaps.c $(srcdir)/emacs_keymap.c $(srcdir)/vi_keymap.c
-kill.o: $(srcdir)/kill.c
-macro.o: $(srcdir)/macro.c
-mbutil.o: $(srcdir)/mbutil.c
-misc.o: $(srcdir)/misc.c
-nls.o: $(srcdir)/nls.c
-parens.o: $(srcdir)/parens.c
-readline.o: $(srcdir)/readline.c
-rltty.o: $(srcdir)/rltty.c
-savestring.o: $(srcdir)/savestring.c
-search.o: $(srcdir)/search.c
-shell.o: $(srcdir)/shell.c
-signals.o: $(srcdir)/signals.c
-terminal.o: $(srcdir)/terminal.c
-text.o: $(srcdir)/text.c
-tilde.o: $(srcdir)/tilde.c
-undo.o: $(srcdir)/undo.c
-util.o: $(srcdir)/util.c
-vi_mode.o: $(srcdir)/vi_mode.c
-xmalloc.o: $(srcdir)/xmalloc.c
-
-histexpand.o: $(srcdir)/histexpand.c
-histfile.o: $(srcdir)/histfile.c
-history.o: $(srcdir)/history.c
-histsearch.o: $(srcdir)/histsearch.c
-
-bind.o: bind.c
-callback.o: callback.c
-compat.o: compat.c
-complete.o: complete.c
-display.o: display.c
-funmap.o: funmap.c
-input.o: input.c
-isearch.o: isearch.c
-keymaps.o: keymaps.c emacs_keymap.c vi_keymap.c
-kill.o: kill.c
-macro.o: macro.c
-mbutil.o: mbutil.c
-misc.o: misc.c
-nls.o: nls.c
-parens.o: parens.c
-readline.o: readline.c
-rltty.o: rltty.c
-savestring.o: savestring.c
-search.o: search.c
-shell.o: shell.c
-signals.o: signals.c
-terminal.o: terminal.c
-text.o: text.c
-tilde.o: tilde.c
-undo.o: undo.c
-util.o: util.c
-vi_mode.o: vi_mode.c
-xmalloc.o: xmalloc.c
-
-histexpand.o: histexpand.c
-histfile.o: histfile.c
-history.o: history.c
-histsearch.o: histsearch.c
diff --git a/readline-4.3.orig/README b/readline-4.3.orig/README
deleted file mode 100644
index 7aa9394..0000000
--- a/readline-4.3.orig/README
+++ /dev/null
@@ -1,172 +0,0 @@
-Introduction
-============
-
-This is the Gnu Readline library, version 4.3.
-
-The Readline library provides a set of functions for use by applications
-that allow users to edit command lines as they are typed in. Both
-Emacs and vi editing modes are available. The Readline library includes
-additional functions to maintain a list of previously-entered command
-lines, to recall and perhaps reedit those lines, and perform csh-like
-history expansion on previous commands.
-
-The history facilites are also placed into a separate library, the
-History library, as part of the build process. The History library
-may be used without Readline in applications which desire its
-capabilities.
-
-The Readline library is free software, distributed under the terms of
-the [GNU] General Public License, version 2. For more information, see
-the file COPYING.
-
-To build the library, try typing `./configure', then `make'. The
-configuration process is automated, so no further intervention should
-be necessary. Readline builds with `gcc' by default if it is
-available. If you want to use `cc' instead, type
-
- CC=cc ./configure
-
-if you are using a Bourne-style shell. If you are not, the following
-may work:
-
- env CC=cc ./configure
-
-Read the file INSTALL in this directory for more information about how
-to customize and control the build process.
-
-The file rlconf.h contains C preprocessor defines that enable and disable
-certain Readline features.
-
-The special make target `everything' will build the static and shared
-libraries (if the target platform supports them) and the examples.
-
-Examples
-========
-
-There are several example programs that use Readline features in the
-examples directory. The `rl' program is of particular interest. It
-is a command-line interface to Readline, suitable for use in shell
-scripts in place of `read'.
-
-Shared Libraries
-================
-
-There is skeletal support for building shared versions of the
-Readline and History libraries. The configure script creates
-a Makefile in the `shlib' subdirectory, and typing `make shared'
-will cause shared versions of the Readline and History libraries
-to be built on supported platforms.
-
-If `configure' is given the `--enable-shared' option, it will attempt
-to build the shared libraries by default on supported platforms.
-
-Configure calls the script support/shobj-conf to test whether or
-not shared library creation is supported and to generate the values
-of variables that are substituted into shlib/Makefile. If you
-try to build shared libraries on an unsupported platform, `make'
-will display a message asking you to update support/shobj-conf for
-your platform.
-
-If you need to update support/shobj-conf, you will need to create
-a `stanza' for your operating system and compiler. The script uses
-the value of host_os and ${CC} as determined by configure. For
-instance, FreeBSD 4.2 with any version of gcc is identified as
-`freebsd4.2-gcc*'.
-
-In the stanza for your operating system-compiler pair, you will need to
-define several variables. They are:
-
-SHOBJ_CC The C compiler used to compile source files into shareable
- object files. This is normally set to the value of ${CC}
- by configure, and should not need to be changed.
-
-SHOBJ_CFLAGS Flags to pass to the C compiler ($SHOBJ_CC) to create
- position-independent code. If you are using gcc, this
- should probably be set to `-fpic'.
-
-SHOBJ_LD The link editor to be used to create the shared library from
- the object files created by $SHOBJ_CC. If you are using
- gcc, a value of `gcc' will probably work.
-
-SHOBJ_LDFLAGS Flags to pass to SHOBJ_LD to enable shared object creation.
- If you are using gcc, `-shared' may be all that is necessary.
- These should be the flags needed for generic shared object
- creation.
-
-SHLIB_XLDFLAGS Additional flags to pass to SHOBJ_LD for shared library
- creation. Many systems use the -R option to the link
- editor to embed a path within the library for run-time
- library searches. A reasonable value for such systems would
- be `-R$(libdir)'.
-
-SHLIB_LIBS Any additional libraries that shared libraries should be
- linked against when they are created.
-
-SHLIB_LIBSUFF The suffix to add to `libreadline' and `libhistory' when
- generating the filename of the shared library. Many systems
- use `so'; HP-UX uses `sl'.
-
-SHLIB_LIBVERSION The string to append to the filename to indicate the version
- of the shared library. It should begin with $(SHLIB_LIBSUFF),
- and possibly include version information that allows the
- run-time loader to load the version of the shared library
- appropriate for a particular program. Systems using shared
- libraries similar to SunOS 4.x use major and minor library
- version numbers; for those systems a value of
- `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' is appropriate.
- Systems based on System V Release 4 don't use minor version
- numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems.
- Other Unix versions use different schemes.
-
-SHLIB_STATUS Set this to `supported' when you have defined the other
- necessary variables. Make uses this to determine whether
- or not shared library creation should be attempted.
-
-You should look at the existing stanzas in support/shobj-conf for ideas.
-
-Once you have updated support/shobj-conf, re-run configure and type
-`make shared'. The shared libraries will be created in the shlib
-subdirectory.
-
-If shared libraries are created, `make install' will install them.
-You may install only the shared libraries by running `make
-install-shared' from the top-level build directory. Running `make
-install' in the shlib subdirectory will also work. If you don't want
-to install any created shared libraries, run `make install-static'.
-
-Documentation
-=============
-
-The documentation for the Readline and History libraries appears in
-the `doc' subdirectory. There are three texinfo files and a
-Unix-style manual page describing the facilities available in the
-Readline library. The texinfo files include both user and
-programmer's manuals. HTML versions of the manuals appear in the
-`doc' subdirectory as well.
-
-Reporting Bugs
-==============
-
-Bug reports for Readline should be sent to:
-
- bug-readline@gnu.org
-
-When reporting a bug, please include the following information:
-
- * the version number and release status of Readline (e.g., 4.2-release)
- * the machine and OS that it is running on
- * a list of the compilation flags or the contents of `config.h', if
- appropriate
- * a description of the bug
- * a recipe for recreating the bug reliably
- * a fix for the bug if you have one!
-
-If you would like to contact the Readline maintainer directly, send mail
-to bash-maintainers@gnu.org.
-
-Since Readline is developed along with bash, the bug-bash@gnu.org mailing
-list (mirrored to the Usenet newsgroup gnu.bash.bug) often contains
-Readline bug reports and fixes.
-
-Chet Ramey
-chet@po.cwru.edu
diff --git a/readline-4.3.orig/USAGE b/readline-4.3.orig/USAGE
deleted file mode 100644
index edc9f54..0000000
--- a/readline-4.3.orig/USAGE
+++ /dev/null
@@ -1,37 +0,0 @@
-From rms@gnu.org Thu Jul 22 20:37:55 1999
-Flags: 10
-Return-Path: rms@gnu.org
-Received: from arthur.INS.CWRU.Edu (root@arthur.INS.CWRU.Edu [129.22.8.215]) by odin.INS.CWRU.Edu with ESMTP (8.8.6+cwru/CWRU-2.4-ins)
- id UAA25349; Thu, 22 Jul 1999 20:37:54 -0400 (EDT) (from rms@gnu.org for <chet@odin.INS.CWRU.Edu>)
-Received: from nike.ins.cwru.edu (root@nike.INS.CWRU.Edu [129.22.8.219]) by arthur.INS.CWRU.Edu with ESMTP (8.8.8+cwru/CWRU-3.6)
- id UAA05311; Thu, 22 Jul 1999 20:37:51 -0400 (EDT) (from rms@gnu.org for <chet@po.cwru.edu>)
-Received: from pele.santafe.edu (pele.santafe.edu [192.12.12.119]) by nike.ins.cwru.edu with ESMTP (8.8.7/CWRU-2.5-bsdi)
- id UAA13350; Thu, 22 Jul 1999 20:37:50 -0400 (EDT) (from rms@gnu.org for <chet@nike.ins.cwru.edu>)
-Received: from wijiji.santafe.edu (wijiji [192.12.12.5])
- by pele.santafe.edu (8.9.1/8.9.1) with ESMTP id SAA10831
- for <chet@nike.ins.cwru.edu>; Thu, 22 Jul 1999 18:37:47 -0600 (MDT)
-Received: (from rms@localhost)
- by wijiji.santafe.edu (8.9.1b+Sun/8.9.1) id SAA01089;
- Thu, 22 Jul 1999 18:37:46 -0600 (MDT)
-Date: Thu, 22 Jul 1999 18:37:46 -0600 (MDT)
-Message-Id: <199907230037.SAA01089@wijiji.santafe.edu>
-X-Authentication-Warning: wijiji.santafe.edu: rms set sender to rms@gnu.org using -f
-From: Richard Stallman <rms@gnu.org>
-To: chet@nike.ins.cwru.edu
-Subject: Use of Readline
-Reply-to: rms@gnu.org
-
-I think Allbery's suggestion is a good one. So please add this text
-in a suitable place. Please don't put it in the GPL itself; that
-should be the same as the GPL everywhere else. Putting it in the
-README and/or the documentation would be a good idea.
-
-
-======================================================================
-Our position on the use of Readline through a shared-library linking
-mechanism is that there is no legal difference between shared-library
-linking and static linking--either kind of linking combines various
-modules into a single larger work. The conditions for using Readline
-in a larger work are stated in section 3 of the GNU GPL.
-
-
diff --git a/readline-4.3.orig/aclocal.m4 b/readline-4.3.orig/aclocal.m4
deleted file mode 100644
index d1ad025..0000000
--- a/readline-4.3.orig/aclocal.m4
+++ /dev/null
@@ -1,1792 +0,0 @@
-dnl
-dnl Bash specific tests
-dnl
-dnl Some derived from PDKSH 5.1.3 autoconf tests
-dnl
-
-AC_DEFUN(BASH_C_LONG_LONG,
-[AC_CACHE_CHECK(for long long, ac_cv_c_long_long,
-[if test "$GCC" = yes; then
- ac_cv_c_long_long=yes
-else
-AC_TRY_RUN([
-int
-main()
-{
-long long foo = 0;
-exit(sizeof(long long) < sizeof(long));
-}
-], ac_cv_c_long_long=yes, ac_cv_c_long_long=no)
-fi])
-if test $ac_cv_c_long_long = yes; then
- AC_DEFINE(HAVE_LONG_LONG, 1, [Define if the `long long' type works.])
-fi
-])
-
-dnl
-dnl This is very similar to AC_C_LONG_DOUBLE, with the fix for IRIX
-dnl (< changed to <=) added.
-dnl
-AC_DEFUN(BASH_C_LONG_DOUBLE,
-[AC_CACHE_CHECK(for long double, ac_cv_c_long_double,
-[if test "$GCC" = yes; then
- ac_cv_c_long_double=yes
-else
-AC_TRY_RUN([
-int
-main()
-{
- /* The Stardent Vistra knows sizeof(long double), but does not
- support it. */
- long double foo = 0.0;
- /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
- /* On IRIX 5.3, the compiler converts long double to double with a warning,
- but compiles this successfully. */
- exit(sizeof(long double) <= sizeof(double));
-}
-], ac_cv_c_long_double=yes, ac_cv_c_long_double=no)
-fi])
-if test $ac_cv_c_long_double = yes; then
- AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if the `long double' type works.])
-fi
-])
-
-dnl
-dnl Check for <inttypes.h>. This is separated out so that it can be
-dnl AC_REQUIREd.
-dnl
-dnl BASH_HEADER_INTTYPES
-AC_DEFUN(BASH_HEADER_INTTYPES,
-[
- AC_CHECK_HEADERS(inttypes.h)
-])
-
-dnl
-dnl check for typedef'd symbols in header files, but allow the caller to
-dnl specify the include files to be checked in addition to the default
-dnl
-dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
-AC_DEFUN(BASH_CHECK_TYPE,
-[
-AC_REQUIRE([AC_HEADER_STDC])dnl
-AC_REQUIRE([BASH_HEADER_INTTYPES])
-AC_MSG_CHECKING(for $1)
-AC_CACHE_VAL(bash_cv_type_$1,
-[AC_EGREP_CPP($1, [#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#if HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-$2
-], bash_cv_type_$1=yes, bash_cv_type_$1=no)])
-AC_MSG_RESULT($bash_cv_type_$1)
-ifelse($#, 4, [if test $bash_cv_type_$1 = yes; then
- AC_DEFINE($4)
- fi])
-if test $bash_cv_type_$1 = no; then
- AC_DEFINE_UNQUOTED($1, $3)
-fi
-])
-
-dnl
-dnl BASH_CHECK_DECL(FUNC)
-dnl
-dnl Check for a declaration of FUNC in stdlib.h and inttypes.h like
-dnl AC_CHECK_DECL
-dnl
-AC_DEFUN(BASH_CHECK_DECL,
-[
-AC_REQUIRE([AC_HEADER_STDC])
-AC_REQUIRE([BASH_HEADER_INTTYPES])
-AC_CACHE_CHECK([for declaration of $1], bash_cv_decl_$1,
-[AC_TRY_LINK(
-[
-#if STDC_HEADERS
-# include <stdlib.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-],
-[return !$1;],
-bash_cv_decl_$1=yes, bash_cv_decl_$1=no)])
-bash_tr_func=HAVE_DECL_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-if test $bash_cv_decl_$1 = yes; then
- AC_DEFINE_UNQUOTED($bash_tr_func, 1)
-else
- AC_DEFINE_UNQUOTED($bash_tr_func, 0)
-fi
-])
-
-AC_DEFUN(BASH_DECL_PRINTF,
-[AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
-AC_CACHE_VAL(bash_cv_printf_declared,
-[AC_TRY_RUN([
-#include <stdio.h>
-#ifdef __STDC__
-typedef int (*_bashfunc)(const char *, ...);
-#else
-typedef int (*_bashfunc)();
-#endif
-main()
-{
-_bashfunc pf;
-pf = (_bashfunc) printf;
-exit(pf == 0);
-}
-], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
- [AC_MSG_WARN(cannot check printf declaration if cross compiling -- defaulting to yes)
- bash_cv_printf_declared=yes]
-)])
-AC_MSG_RESULT($bash_cv_printf_declared)
-if test $bash_cv_printf_declared = yes; then
-AC_DEFINE(PRINTF_DECLARED)
-fi
-])
-
-AC_DEFUN(BASH_DECL_SBRK,
-[AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
-AC_CACHE_VAL(bash_cv_sbrk_declared,
-[AC_EGREP_HEADER(sbrk, unistd.h,
- bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
-AC_MSG_RESULT($bash_cv_sbrk_declared)
-if test $bash_cv_sbrk_declared = yes; then
-AC_DEFINE(SBRK_DECLARED)
-fi
-])
-
-dnl
-dnl Check for sys_siglist[] or _sys_siglist[]
-dnl
-AC_DEFUN(BASH_DECL_UNDER_SYS_SIGLIST,
-[AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
-AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
-[AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif], [ char *msg = _sys_siglist[2]; ],
- bash_cv_decl_under_sys_siglist=yes, bash_cv_decl_under_sys_siglist=no,
- [AC_MSG_WARN(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)])])dnl
-AC_MSG_RESULT($bash_cv_decl_under_sys_siglist)
-if test $bash_cv_decl_under_sys_siglist = yes; then
-AC_DEFINE(UNDER_SYS_SIGLIST_DECLARED)
-fi
-])
-
-AC_DEFUN(BASH_UNDER_SYS_SIGLIST,
-[AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
-AC_MSG_CHECKING([for _sys_siglist in system C library])
-AC_CACHE_VAL(bash_cv_under_sys_siglist,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifndef UNDER_SYS_SIGLIST_DECLARED
-extern char *_sys_siglist[];
-#endif
-main()
-{
-char *msg = (char *)_sys_siglist[2];
-exit(msg == 0);
-}],
- bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
- [AC_MSG_WARN(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)
- bash_cv_under_sys_siglist=no])])
-AC_MSG_RESULT($bash_cv_under_sys_siglist)
-if test $bash_cv_under_sys_siglist = yes; then
-AC_DEFINE(HAVE_UNDER_SYS_SIGLIST)
-fi
-])
-
-AC_DEFUN(BASH_SYS_SIGLIST,
-[AC_REQUIRE([AC_DECL_SYS_SIGLIST])
-AC_MSG_CHECKING([for sys_siglist in system C library])
-AC_CACHE_VAL(bash_cv_sys_siglist,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifndef SYS_SIGLIST_DECLARED
-extern char *sys_siglist[];
-#endif
-main()
-{
-char *msg = sys_siglist[2];
-exit(msg == 0);
-}],
- bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
- [AC_MSG_WARN(cannot check for sys_siglist if cross compiling -- defaulting to no)
- bash_cv_sys_siglist=no])])
-AC_MSG_RESULT($bash_cv_sys_siglist)
-if test $bash_cv_sys_siglist = yes; then
-AC_DEFINE(HAVE_SYS_SIGLIST)
-fi
-])
-
-dnl Check for the various permutations of sys_siglist and make sure we
-dnl compile in siglist.o if they're not defined
-AC_DEFUN(BASH_CHECK_SYS_SIGLIST, [
-AC_REQUIRE([BASH_SYS_SIGLIST])
-AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
-AC_REQUIRE([BASH_FUNC_STRSIGNAL])
-if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then
- SIGLIST_O=siglist.o
-else
- SIGLIST_O=
-fi
-AC_SUBST([SIGLIST_O])
-])
-
-dnl Check for sys_errlist[] and sys_nerr, check for declaration
-AC_DEFUN(BASH_SYS_ERRLIST,
-[AC_MSG_CHECKING([for sys_errlist and sys_nerr])
-AC_CACHE_VAL(bash_cv_sys_errlist,
-[AC_TRY_LINK([#include <errno.h>],
-[extern char *sys_errlist[];
- extern int sys_nerr;
- char *msg = sys_errlist[sys_nerr - 1];],
- bash_cv_sys_errlist=yes, bash_cv_sys_errlist=no)])dnl
-AC_MSG_RESULT($bash_cv_sys_errlist)
-if test $bash_cv_sys_errlist = yes; then
-AC_DEFINE(HAVE_SYS_ERRLIST)
-fi
-])
-
-dnl
-dnl Check if dup2() does not clear the close on exec flag
-dnl
-AC_DEFUN(BASH_FUNC_DUP2_CLOEXEC_CHECK,
-[AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
-AC_CACHE_VAL(bash_cv_dup2_broken,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <fcntl.h>
-main()
-{
- int fd1, fd2, fl;
- fd1 = open("/dev/null", 2);
- if (fcntl(fd1, 2, 1) < 0)
- exit(1);
- fd2 = dup2(fd1, 1);
- if (fd2 < 0)
- exit(2);
- fl = fcntl(fd2, 1, 0);
- /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
- exit(fl != 1);
-}
-], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
- [AC_MSG_WARN(cannot check dup2 if cross compiling -- defaulting to no)
- bash_cv_dup2_broken=no])
-])
-AC_MSG_RESULT($bash_cv_dup2_broken)
-if test $bash_cv_dup2_broken = yes; then
-AC_DEFINE(DUP2_BROKEN)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_STRSIGNAL,
-[AC_MSG_CHECKING([for the existence of strsignal])
-AC_CACHE_VAL(bash_cv_have_strsignal,
-[AC_TRY_LINK([#include <sys/types.h>
-#include <signal.h>],
-[char *s = (char *)strsignal(2);],
- bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
-AC_MSG_RESULT($bash_cv_have_strsignal)
-if test $bash_cv_have_strsignal = yes; then
-AC_DEFINE(HAVE_STRSIGNAL)
-fi
-])
-
-dnl Check to see if opendir will open non-directories (not a nice thing)
-AC_DEFUN(BASH_FUNC_OPENDIR_CHECK,
-[AC_REQUIRE([AC_HEADER_DIRENT])dnl
-AC_MSG_CHECKING(if opendir() opens non-directories)
-AC_CACHE_VAL(bash_cv_opendir_not_robust,
-[AC_TRY_RUN([
-#include <stdio.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-main()
-{
-DIR *dir;
-int fd, err;
-err = mkdir("/tmp/bash-aclocal", 0700);
-if (err < 0) {
- perror("mkdir");
- exit(1);
-}
-unlink("/tmp/bash-aclocal/not_a_directory");
-fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666);
-write(fd, "\n", 1);
-close(fd);
-dir = opendir("/tmp/bash-aclocal/not_a_directory");
-unlink("/tmp/bash-aclocal/not_a_directory");
-rmdir("/tmp/bash-aclocal");
-exit (dir == 0);
-}], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
- [AC_MSG_WARN(cannot check opendir if cross compiling -- defaulting to no)
- bash_cv_opendir_not_robust=no]
-)])
-AC_MSG_RESULT($bash_cv_opendir_not_robust)
-if test $bash_cv_opendir_not_robust = yes; then
-AC_DEFINE(OPENDIR_NOT_ROBUST)
-fi
-])
-
-dnl
-AC_DEFUN(BASH_TYPE_SIGHANDLER,
-[AC_MSG_CHECKING([whether signal handlers are of type void])
-AC_CACHE_VAL(bash_cv_void_sighandler,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C"
-#endif
-void (*signal ()) ();],
-[int i;], bash_cv_void_sighandler=yes, bash_cv_void_sighandler=no)])dnl
-AC_MSG_RESULT($bash_cv_void_sighandler)
-if test $bash_cv_void_sighandler = yes; then
-AC_DEFINE(VOID_SIGHANDLER)
-fi
-])
-
-dnl
-dnl A signed 16-bit integer quantity
-dnl
-AC_DEFUN(BASH_TYPE_BITS16_T,
-[
-if test "$ac_cv_sizeof_short" = 2; then
- AC_CHECK_TYPE(bits16_t, short)
-elif test "$ac_cv_sizeof_char" = 2; then
- AC_CHECK_TYPE(bits16_t, char)
-else
- AC_CHECK_TYPE(bits16_t, short)
-fi
-])
-
-dnl
-dnl An unsigned 16-bit integer quantity
-dnl
-AC_DEFUN(BASH_TYPE_U_BITS16_T,
-[
-if test "$ac_cv_sizeof_short" = 2; then
- AC_CHECK_TYPE(u_bits16_t, unsigned short)
-elif test "$ac_cv_sizeof_char" = 2; then
- AC_CHECK_TYPE(u_bits16_t, unsigned char)
-else
- AC_CHECK_TYPE(u_bits16_t, unsigned short)
-fi
-])
-
-dnl
-dnl A signed 32-bit integer quantity
-dnl
-AC_DEFUN(BASH_TYPE_BITS32_T,
-[
-if test "$ac_cv_sizeof_int" = 4; then
- AC_CHECK_TYPE(bits32_t, int)
-elif test "$ac_cv_sizeof_long" = 4; then
- AC_CHECK_TYPE(bits32_t, long)
-else
- AC_CHECK_TYPE(bits32_t, int)
-fi
-])
-
-dnl
-dnl An unsigned 32-bit integer quantity
-dnl
-AC_DEFUN(BASH_TYPE_U_BITS32_T,
-[
-if test "$ac_cv_sizeof_int" = 4; then
- AC_CHECK_TYPE(u_bits32_t, unsigned int)
-elif test "$ac_cv_sizeof_long" = 4; then
- AC_CHECK_TYPE(u_bits32_t, unsigned long)
-else
- AC_CHECK_TYPE(u_bits32_t, unsigned int)
-fi
-])
-
-AC_DEFUN(BASH_TYPE_PTRDIFF_T,
-[
-if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
- AC_CHECK_TYPE(ptrdiff_t, int)
-elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
- AC_CHECK_TYPE(ptrdiff_t, long)
-elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
- AC_CHECK_TYPE(ptrdiff_t, [long long])
-else
- AC_CHECK_TYPE(ptrdiff_t, int)
-fi
-])
-
-dnl
-dnl A signed 64-bit quantity
-dnl
-AC_DEFUN(BASH_TYPE_BITS64_T,
-[
-if test "$ac_cv_sizeof_char_p" = 8; then
- AC_CHECK_TYPE(bits64_t, char *)
-elif test "$ac_cv_sizeof_double" = 8; then
- AC_CHECK_TYPE(bits64_t, double)
-elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then
- AC_CHECK_TYPE(bits64_t, [long long])
-elif test "$ac_cv_sizeof_long" = 8; then
- AC_CHECK_TYPE(bits64_t, long)
-else
- AC_CHECK_TYPE(bits64_t, double)
-fi
-])
-
-AC_DEFUN(BASH_TYPE_LONG_LONG,
-[
-AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
-[AC_TRY_LINK([
-long long ll = 1; int i = 63;],
-[
-long long llm = (long long) -1;
-return ll << i | ll >> i | llm / ll | llm % ll;
-], bash_cv_type_long_long='long long', bash_cv_type_long_long='long')])
-if test "$bash_cv_type_long_long" = 'long long'; then
- AC_DEFINE(HAVE_LONG_LONG, 1)
-fi
-])
-
-AC_DEFUN(BASH_TYPE_UNSIGNED_LONG_LONG,
-[
-AC_CACHE_CHECK([for unsigned long long], bash_cv_type_unsigned_long_long,
-[AC_TRY_LINK([
-unsigned long long ull = 1; int i = 63;],
-[
-unsigned long long ullmax = (unsigned long long) -1;
-return ull << i | ull >> i | ullmax / ull | ullmax % ull;
-], bash_cv_type_unsigned_long_long='unsigned long long',
- bash_cv_type_unsigned_long_long='unsigned long')])
-if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then
- AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1)
-fi
-])
-
-dnl
-dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
-dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
-dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3). To simplify
-dnl matters, this just checks for rlim_t, quad_t, or long.
-dnl
-AC_DEFUN(BASH_TYPE_RLIMIT,
-[AC_MSG_CHECKING(for size and type of struct rlimit fields)
-AC_CACHE_VAL(bash_cv_type_rlimit,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/resource.h>],
-[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
-AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-main()
-{
-#ifdef HAVE_QUAD_T
- struct rlimit rl;
- if (sizeof(rl.rlim_cur) == sizeof(quad_t))
- exit(0);
-#endif
- exit(1);
-}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
- [AC_MSG_WARN(cannot check quad_t if cross compiling -- defaulting to long)
- bash_cv_type_rlimit=long])])
-])
-AC_MSG_RESULT($bash_cv_type_rlimit)
-if test $bash_cv_type_rlimit = quad_t; then
-AC_DEFINE(RLIMTYPE, quad_t)
-elif test $bash_cv_type_rlimit = rlim_t; then
-AC_DEFINE(RLIMTYPE, rlim_t)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_LSTAT,
-[dnl Cannot use AC_CHECK_FUNCS(lstat) because Linux defines lstat() as an
-dnl inline function in <sys/stat.h>.
-AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
-[AC_TRY_LINK([
-#include <sys/types.h>
-#include <sys/stat.h>
-],[ lstat(".",(struct stat *)0); ],
-bash_cv_func_lstat=yes, bash_cv_func_lstat=no)])
-if test $bash_cv_func_lstat = yes; then
- AC_DEFINE(HAVE_LSTAT)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_INET_ATON,
-[
-AC_CACHE_CHECK([for inet_aton], bash_cv_func_inet_aton,
-[AC_TRY_LINK([
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-struct in_addr ap;], [ inet_aton("127.0.0.1", &ap); ],
-bash_cv_func_inet_aton=yes, bash_cv_func_inet_aton=no)])
-if test $bash_cv_func_inet_aton = yes; then
- AC_DEFINE(HAVE_INET_ATON)
-else
- AC_LIBOBJ(inet_aton)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_GETENV,
-[AC_MSG_CHECKING(to see if getenv can be redefined)
-AC_CACHE_VAL(bash_cv_getenv_redef,
-[AC_TRY_RUN([
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#ifndef __STDC__
-# ifndef const
-# define const
-# endif
-#endif
-char *
-getenv (name)
-#if defined (__linux__) || defined (__bsdi__) || defined (convex)
- const char *name;
-#else
- char const *name;
-#endif /* !__linux__ && !__bsdi__ && !convex */
-{
-return "42";
-}
-main()
-{
-char *s;
-/* The next allows this program to run, but does not allow bash to link
- when it redefines getenv. I'm not really interested in figuring out
- why not. */
-#if defined (NeXT)
-exit(1);
-#endif
-s = getenv("ABCDE");
-exit(s == 0); /* force optimizer to leave getenv in */
-}
-], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
- [AC_MSG_WARN(cannot check getenv redefinition if cross compiling -- defaulting to yes)
- bash_cv_getenv_redef=yes]
-)])
-AC_MSG_RESULT($bash_cv_getenv_redef)
-if test $bash_cv_getenv_redef = yes; then
-AC_DEFINE(CAN_REDEFINE_GETENV)
-fi
-])
-
-# We should check for putenv before calling this
-AC_DEFUN(BASH_FUNC_STD_PUTENV,
-[
-AC_REQUIRE([AC_HEADER_STDC])
-AC_REQUIRE([AC_C_PROTOTYPES])
-AC_CACHE_CHECK([for standard-conformant putenv declaration], bash_cv_std_putenv,
-[AC_TRY_LINK([
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#ifndef __STDC__
-# ifndef const
-# define const
-# endif
-#endif
-#ifdef PROTOTYPES
-extern int putenv (char *);
-#else
-extern int putenv ();
-#endif
-],
-[return (putenv == 0);],
-bash_cv_std_putenv=yes, bash_cv_std_putenv=no
-)])
-if test $bash_cv_std_putenv = yes; then
-AC_DEFINE(HAVE_STD_PUTENV)
-fi
-])
-
-# We should check for unsetenv before calling this
-AC_DEFUN(BASH_FUNC_STD_UNSETENV,
-[
-AC_REQUIRE([AC_HEADER_STDC])
-AC_REQUIRE([AC_C_PROTOTYPES])
-AC_CACHE_CHECK([for standard-conformant unsetenv declaration], bash_cv_std_unsetenv,
-[AC_TRY_LINK([
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#ifndef __STDC__
-# ifndef const
-# define const
-# endif
-#endif
-#ifdef PROTOTYPES
-extern int unsetenv (const char *);
-#else
-extern int unsetenv ();
-#endif
-],
-[return (unsetenv == 0);],
-bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
-)])
-if test $bash_cv_std_unsetenv = yes; then
-AC_DEFINE(HAVE_STD_UNSETENV)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_ULIMIT_MAXFDS,
-[AC_MSG_CHECKING(whether ulimit can substitute for getdtablesize)
-AC_CACHE_VAL(bash_cv_ulimit_maxfds,
-[AC_TRY_RUN([
-main()
-{
-long maxfds = ulimit(4, 0L);
-exit (maxfds == -1L);
-}
-], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
- [AC_MSG_WARN(cannot check ulimit if cross compiling -- defaulting to no)
- bash_cv_ulimit_maxfds=no]
-)])
-AC_MSG_RESULT($bash_cv_ulimit_maxfds)
-if test $bash_cv_ulimit_maxfds = yes; then
-AC_DEFINE(ULIMIT_MAXFDS)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_GETCWD,
-[AC_MSG_CHECKING([if getcwd() calls popen()])
-AC_CACHE_VAL(bash_cv_getcwd_calls_popen,
-[AC_TRY_RUN([
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifndef __STDC__
-#ifndef const
-#define const
-#endif
-#endif
-
-int popen_called;
-
-FILE *
-popen(command, type)
- const char *command;
- const char *type;
-{
- popen_called = 1;
- return (FILE *)NULL;
-}
-
-FILE *_popen(command, type)
- const char *command;
- const char *type;
-{
- return (popen (command, type));
-}
-
-int
-pclose(stream)
-FILE *stream;
-{
- return 0;
-}
-
-int
-_pclose(stream)
-FILE *stream;
-{
- return 0;
-}
-
-main()
-{
- char lbuf[32];
- popen_called = 0;
- getcwd(lbuf, 32);
- exit (popen_called);
-}
-], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
- [AC_MSG_WARN(cannot check whether getcwd calls popen if cross compiling -- defaulting to no)
- bash_cv_getcwd_calls_popen=no]
-)])
-AC_MSG_RESULT($bash_cv_getcwd_calls_popen)
-if test $bash_cv_getcwd_calls_popen = yes; then
-AC_DEFINE(GETCWD_BROKEN)
-AC_LIBOBJ(getcwd)
-fi
-])
-
-dnl
-dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
-dnl system, we can't use AC_PREREQ
-dnl
-AC_DEFUN(BASH_FUNC_GETHOSTBYNAME,
-[if test "X$bash_cv_have_gethostbyname" = "X"; then
-_bash_needmsg=yes
-else
-AC_MSG_CHECKING(for gethostbyname in socket library)
-_bash_needmsg=
-fi
-AC_CACHE_VAL(bash_cv_have_gethostbyname,
-[AC_TRY_LINK([#include <netdb.h>],
-[ struct hostent *hp;
- hp = gethostbyname("localhost");
-], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
-)
-if test "X$_bash_needmsg" = Xyes; then
- AC_MSG_CHECKING(for gethostbyname in socket library)
-fi
-AC_MSG_RESULT($bash_cv_have_gethostbyname)
-if test "$bash_cv_have_gethostbyname" = yes; then
-AC_DEFINE(HAVE_GETHOSTBYNAME)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_FNMATCH_EXTMATCH,
-[AC_MSG_CHECKING(if fnmatch does extended pattern matching with FNM_EXTMATCH)
-AC_CACHE_VAL(bash_cv_fnm_extmatch,
-[AC_TRY_RUN([
-#include <fnmatch.h>
-
-main()
-{
-#ifdef FNM_EXTMATCH
- exit (0);
-#else
- exit (1);
-#endif
-}
-], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
- [AC_MSG_WARN(cannot check FNM_EXTMATCH if cross compiling -- defaulting to no)
- bash_cv_fnm_extmatch=no])
-])
-AC_MSG_RESULT($bash_cv_fnm_extmatch)
-if test $bash_cv_fnm_extmatch = yes; then
-AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_POSIX_SETJMP,
-[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
-AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
-AC_CACHE_VAL(bash_cv_func_sigsetjmp,
-[AC_TRY_RUN([
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-#include <setjmp.h>
-
-main()
-{
-#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
-exit (1);
-#else
-
-int code;
-sigset_t set, oset;
-sigjmp_buf xx;
-
-/* get the mask */
-sigemptyset(&set);
-sigemptyset(&oset);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
-
-/* save it */
-code = sigsetjmp(xx, 1);
-if (code)
- exit(0); /* could get sigmask and compare to oset here. */
-
-/* change it */
-sigaddset(&set, SIGINT);
-sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
-
-/* and siglongjmp */
-siglongjmp(xx, 10);
-exit(1);
-#endif
-}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
- [AC_MSG_WARN(cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing)
- bash_cv_func_sigsetjmp=missing]
-)])
-AC_MSG_RESULT($bash_cv_func_sigsetjmp)
-if test $bash_cv_func_sigsetjmp = present; then
-AC_DEFINE(HAVE_POSIX_SIGSETJMP)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_STRCOLL,
-[
-AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
-AC_CACHE_VAL(bash_cv_func_strcoll_broken,
-[AC_TRY_RUN([
-#include <stdio.h>
-#if defined (HAVE_LOCALE_H)
-#include <locale.h>
-#endif
-
-main(c, v)
-int c;
-char *v[];
-{
- int r1, r2;
- char *deflocale, *defcoll;
-
-#ifdef HAVE_SETLOCALE
- deflocale = setlocale(LC_ALL, "");
- defcoll = setlocale(LC_COLLATE, "");
-#endif
-
-#ifdef HAVE_STRCOLL
- /* These two values are taken from tests/glob-test. */
- r1 = strcoll("abd", "aXd");
-#else
- r1 = 0;
-#endif
- r2 = strcmp("abd", "aXd");
-
- /* These two should both be greater than 0. It is permissible for
- a system to return different values, as long as the sign is the
- same. */
-
- /* Exit with 1 (failure) if these two values are both > 0, since
- this tests whether strcoll(3) is broken with respect to strcmp(3)
- in the default locale. */
- exit (r1 > 0 && r2 > 0);
-}
-], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
- [AC_MSG_WARN(cannot check strcoll if cross compiling -- defaulting to no)
- bash_cv_func_strcoll_broken=no]
-)])
-AC_MSG_RESULT($bash_cv_func_strcoll_broken)
-if test $bash_cv_func_strcoll_broken = yes; then
-AC_DEFINE(STRCOLL_BROKEN)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_PRINTF_A_FORMAT,
-[AC_MSG_CHECKING([for printf floating point output in hex notation])
-AC_CACHE_VAL(bash_cv_printf_a_format,
-[AC_TRY_RUN([
-#include <stdio.h>
-#include <string.h>
-
-int
-main()
-{
- double y = 0.0;
- char abuf[1024];
-
- sprintf(abuf, "%A", y);
- exit(strchr(abuf, 'P') == (char *)0);
-}
-], bash_cv_printf_a_format=yes, bash_cv_printf_a_format=no,
- [AC_MSG_WARN(cannot check printf if cross compiling -- defaulting to no)
- bash_cv_printf_a_format=no]
-)])
-AC_MSG_RESULT($bash_cv_printf_a_format)
-if test $bash_cv_printf_a_format = yes; then
-AC_DEFINE(HAVE_PRINTF_A_FORMAT)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_TERMIOS_LDISC,
-[
-AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
-#include <sys/types.h>
-#include <termios.h>
-])
-])
-
-AC_DEFUN(BASH_STRUCT_TERMIO_LDISC,
-[
-AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
-#include <sys/types.h>
-#include <termio.h>
-])
-])
-
-dnl
-dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
-dnl
-dnl sets bash_cv_struct_stat_st_blocks
-dnl
-dnl unused for now; we'll see how AC_CHECK_MEMBERS works
-dnl
-AC_DEFUN(BASH_STRUCT_ST_BLOCKS,
-[
-AC_MSG_CHECKING([for struct stat.st_blocks])
-AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
-[AC_TRY_COMPILE(
-[
-#include <sys/types.h>
-#include <sys/stat.h>
-],
-[
-main()
-{
-static struct stat a;
-if (a.st_blocks) return 0;
-return 0;
-}
-], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
-])
-AC_MSG_RESULT($bash_cv_struct_stat_st_blocks)
-if test "$bash_cv_struct_stat_st_blocks" = "yes"; then
-AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
-fi
-])
-
-AC_DEFUN(BASH_CHECK_LIB_TERMCAP,
-[
-if test "X$bash_cv_termcap_lib" = "X"; then
-_bash_needmsg=yes
-else
-AC_MSG_CHECKING(which library has the termcap functions)
-_bash_needmsg=
-fi
-AC_CACHE_VAL(bash_cv_termcap_lib,
-[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
- [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
- [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
- [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
- bash_cv_termcap_lib=gnutermcap)])])])])
-if test "X$_bash_needmsg" = "Xyes"; then
-AC_MSG_CHECKING(which library has the termcap functions)
-fi
-AC_MSG_RESULT(using $bash_cv_termcap_lib)
-if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
-LDFLAGS="$LDFLAGS -L./lib/termcap"
-TERMCAP_LIB="./lib/termcap/libtermcap.a"
-TERMCAP_DEP="./lib/termcap/libtermcap.a"
-elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
-TERMCAP_LIB=-ltermcap
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libtinfo; then
-TERMCAP_LIB=-ltinfo
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libncurses; then
-TERMCAP_LIB=-lncurses
-TERMCAP_DEP=
-else
-TERMCAP_LIB=-lcurses
-TERMCAP_DEP=
-fi
-])
-
-dnl
-dnl Check for the presence of getpeername in libsocket.
-dnl If libsocket is present, check for libnsl and add it to LIBS if
-dnl it's there, since most systems with libsocket require linking
-dnl with libnsl as well. This should only be called if getpeername
-dnl was not found in libc.
-dnl
-dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
-dnl AS WELL
-dnl
-AC_DEFUN(BASH_CHECK_LIB_SOCKET,
-[
-if test "X$bash_cv_have_socklib" = "X"; then
-_bash_needmsg=
-else
-AC_MSG_CHECKING(for socket library)
-_bash_needmsg=yes
-fi
-AC_CACHE_VAL(bash_cv_have_socklib,
-[AC_CHECK_LIB(socket, getpeername,
- bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
-if test "X$_bash_needmsg" = Xyes; then
- AC_MSG_RESULT($bash_cv_have_socklib)
- _bash_needmsg=
-fi
-if test $bash_cv_have_socklib = yes; then
- # check for libnsl, add it to LIBS if present
- if test "X$bash_cv_have_libnsl" = "X"; then
- _bash_needmsg=
- else
- AC_MSG_CHECKING(for libnsl)
- _bash_needmsg=yes
- fi
- AC_CACHE_VAL(bash_cv_have_libnsl,
- [AC_CHECK_LIB(nsl, t_open,
- bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
- if test "X$_bash_needmsg" = Xyes; then
- AC_MSG_RESULT($bash_cv_have_libnsl)
- _bash_needmsg=
- fi
- if test $bash_cv_have_libnsl = yes; then
- LIBS="-lsocket -lnsl $LIBS"
- else
- LIBS="-lsocket $LIBS"
- fi
- AC_DEFINE(HAVE_LIBSOCKET)
- AC_DEFINE(HAVE_GETPEERNAME)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_DIRENT_D_INO,
-[AC_REQUIRE([AC_HEADER_DIRENT])
-AC_MSG_CHECKING(if struct dirent has a d_ino member)
-AC_CACHE_VAL(bash_cv_dirent_has_dino,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-],[
-struct dirent d; int z; z = d.d_ino;
-], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
-AC_MSG_RESULT($bash_cv_dirent_has_dino)
-if test $bash_cv_dirent_has_dino = yes; then
-AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO,
-[AC_REQUIRE([AC_HEADER_DIRENT])
-AC_MSG_CHECKING(if struct dirent has a d_fileno member)
-AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-],[
-struct dirent d; int z; z = d.d_fileno;
-], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
-AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
-if test $bash_cv_dirent_has_d_fileno = yes; then
-AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_TIMEVAL,
-[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
-AC_CACHE_VAL(bash_cv_struct_timeval,
-[
-AC_EGREP_HEADER(struct timeval, sys/time.h,
- bash_cv_struct_timeval=yes,
- AC_EGREP_HEADER(struct timeval, time.h,
- bash_cv_struct_timeval=yes,
- bash_cv_struct_timeval=no))
-])
-AC_MSG_RESULT($bash_cv_struct_timeval)
-if test $bash_cv_struct_timeval = yes; then
- AC_DEFINE(HAVE_TIMEVAL)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_WINSIZE,
-[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
-AC_CACHE_VAL(bash_cv_struct_winsize_header,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [struct winsize x;],
- bash_cv_struct_winsize_header=ioctl_h,
- [AC_TRY_COMPILE([#include <sys/types.h>
-#include <termios.h>], [struct winsize x;],
- bash_cv_struct_winsize_header=termios_h, bash_cv_struct_winsize_header=other)
-])])
-if test $bash_cv_struct_winsize_header = ioctl_h; then
- AC_MSG_RESULT(sys/ioctl.h)
- AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
-elif test $bash_cv_struct_winsize_header = termios_h; then
- AC_MSG_RESULT(termios.h)
- AC_DEFINE(STRUCT_WINSIZE_IN_TERMIOS)
-else
- AC_MSG_RESULT(not found)
-fi
-])
-
-dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
-AC_DEFUN(BASH_SYS_SIGNAL_VINTAGE,
-[AC_REQUIRE([AC_TYPE_SIGNAL])
-AC_MSG_CHECKING(for type of signal functions)
-AC_CACHE_VAL(bash_cv_signal_vintage,
-[
- AC_TRY_LINK([#include <signal.h>],[
- sigset_t ss;
- struct sigaction sa;
- sigemptyset(&ss); sigsuspend(&ss);
- sigaction(SIGINT, &sa, (struct sigaction *) 0);
- sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
- ], bash_cv_signal_vintage=posix,
- [
- AC_TRY_LINK([#include <signal.h>], [
- int mask = sigmask(SIGINT);
- sigsetmask(mask); sigblock(mask); sigpause(mask);
- ], bash_cv_signal_vintage=4.2bsd,
- [
- AC_TRY_LINK([
- #include <signal.h>
- RETSIGTYPE foo() { }], [
- int mask = sigmask(SIGINT);
- sigset(SIGINT, foo); sigrelse(SIGINT);
- sighold(SIGINT); sigpause(SIGINT);
- ], bash_cv_signal_vintage=svr3, bash_cv_signal_vintage=v7
- )]
- )]
-)
-])
-AC_MSG_RESULT($bash_cv_signal_vintage)
-if test "$bash_cv_signal_vintage" = posix; then
-AC_DEFINE(HAVE_POSIX_SIGNALS)
-elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
-AC_DEFINE(HAVE_BSD_SIGNALS)
-elif test "$bash_cv_signal_vintage" = svr3; then
-AC_DEFINE(HAVE_USG_SIGHOLD)
-fi
-])
-
-dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
-AC_DEFUN(BASH_SYS_PGRP_SYNC,
-[AC_REQUIRE([AC_FUNC_GETPGRP])
-AC_MSG_CHECKING(whether pgrps need synchronization)
-AC_CACHE_VAL(bash_cv_pgrp_pipe,
-[AC_TRY_RUN([
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-main()
-{
-# ifdef GETPGRP_VOID
-# define getpgID() getpgrp()
-# else
-# define getpgID() getpgrp(0)
-# define setpgid(x,y) setpgrp(x,y)
-# endif
- int pid1, pid2, fds[2];
- int status;
- char ok;
-
- switch (pid1 = fork()) {
- case -1:
- exit(1);
- case 0:
- setpgid(0, getpid());
- exit(0);
- }
- setpgid(pid1, pid1);
-
- sleep(2); /* let first child die */
-
- if (pipe(fds) < 0)
- exit(2);
-
- switch (pid2 = fork()) {
- case -1:
- exit(3);
- case 0:
- setpgid(0, pid1);
- ok = getpgID() == pid1;
- write(fds[1], &ok, 1);
- exit(0);
- }
- setpgid(pid2, pid1);
-
- close(fds[1]);
- if (read(fds[0], &ok, 1) != 1)
- exit(4);
- wait(&status);
- wait(&status);
- exit(ok ? 0 : 5);
-}
-], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
- [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no)
- bash_cv_pgrp_pipe=no])
-])
-AC_MSG_RESULT($bash_cv_pgrp_pipe)
-if test $bash_cv_pgrp_pipe = yes; then
-AC_DEFINE(PGRP_PIPE)
-fi
-])
-
-AC_DEFUN(BASH_SYS_REINSTALL_SIGHANDLERS,
-[AC_REQUIRE([AC_TYPE_SIGNAL])
-AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
-AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
-AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
-[AC_TRY_RUN([
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-typedef RETSIGTYPE sigfunc();
-
-int nsigint;
-
-#ifdef HAVE_POSIX_SIGNALS
-sigfunc *
-set_signal_handler(sig, handler)
- int sig;
- sigfunc *handler;
-{
- struct sigaction act, oact;
- act.sa_handler = handler;
- act.sa_flags = 0;
- sigemptyset (&act.sa_mask);
- sigemptyset (&oact.sa_mask);
- sigaction (sig, &act, &oact);
- return (oact.sa_handler);
-}
-#else
-#define set_signal_handler(s, h) signal(s, h)
-#endif
-
-RETSIGTYPE
-sigint(s)
-int s;
-{
- nsigint++;
-}
-
-main()
-{
- nsigint = 0;
- set_signal_handler(SIGINT, sigint);
- kill((int)getpid(), SIGINT);
- kill((int)getpid(), SIGINT);
- exit(nsigint != 2);
-}
-], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
- [AC_MSG_WARN(cannot check signal handling if cross compiling -- defaulting to no)
- bash_cv_must_reinstall_sighandlers=no]
-)])
-AC_MSG_RESULT($bash_cv_must_reinstall_sighandlers)
-if test $bash_cv_must_reinstall_sighandlers = yes; then
-AC_DEFINE(MUST_REINSTALL_SIGHANDLERS)
-fi
-])
-
-dnl check that some necessary job control definitions are present
-AC_DEFUN(BASH_SYS_JOB_CONTROL_MISSING,
-[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
-AC_MSG_CHECKING(for presence of necessary job control definitions)
-AC_CACHE_VAL(bash_cv_job_control_missing,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <signal.h>
-
-/* Add more tests in here as appropriate. */
-main()
-{
-/* signal type */
-#if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS)
-exit(1);
-#endif
-
-/* signals and tty control. */
-#if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT)
-exit (1);
-#endif
-
-/* process control */
-#if !defined (WNOHANG) || !defined (WUNTRACED)
-exit(1);
-#endif
-
-/* Posix systems have tcgetpgrp and waitpid. */
-#if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP)
-exit(1);
-#endif
-
-#if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID)
-exit(1);
-#endif
-
-/* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */
-#if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3)
-exit(1);
-#endif
-
-exit(0);
-}], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
- [AC_MSG_WARN(cannot check job control if cross-compiling -- defaulting to missing)
- bash_cv_job_control_missing=missing]
-)])
-AC_MSG_RESULT($bash_cv_job_control_missing)
-if test $bash_cv_job_control_missing = missing; then
-AC_DEFINE(JOB_CONTROL_MISSING)
-fi
-])
-
-dnl check whether named pipes are present
-dnl this requires a previous check for mkfifo, but that is awkward to specify
-AC_DEFUN(BASH_SYS_NAMED_PIPES,
-[AC_MSG_CHECKING(for presence of named pipes)
-AC_CACHE_VAL(bash_cv_sys_named_pipes,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-/* Add more tests in here as appropriate. */
-main()
-{
-int fd, err;
-
-#if defined (HAVE_MKFIFO)
-exit (0);
-#endif
-
-#if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO))
-exit (1);
-#endif
-
-#if defined (NeXT)
-exit (1);
-#endif
-err = mkdir("/tmp/bash-aclocal", 0700);
-if (err < 0) {
- perror ("mkdir");
- exit(1);
-}
-fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0);
-if (fd == -1) {
- rmdir ("/tmp/bash-aclocal");
- exit (1);
-}
-close(fd);
-unlink ("/tmp/bash-aclocal/sh-np-autoconf");
-rmdir ("/tmp/bash-aclocal");
-exit(0);
-}], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
- [AC_MSG_WARN(cannot check for named pipes if cross-compiling -- defaulting to missing)
- bash_cv_sys_named_pipes=missing]
-)])
-AC_MSG_RESULT($bash_cv_sys_named_pipes)
-if test $bash_cv_sys_named_pipes = missing; then
-AC_DEFINE(NAMED_PIPES_MISSING)
-fi
-])
-
-AC_DEFUN(BASH_SYS_DEFAULT_MAIL_DIR,
-[AC_MSG_CHECKING(for default mail directory)
-AC_CACHE_VAL(bash_cv_mail_dir,
-[if test -d /var/mail; then
- bash_cv_mail_dir=/var/mail
- elif test -d /var/spool/mail; then
- bash_cv_mail_dir=/var/spool/mail
- elif test -d /usr/mail; then
- bash_cv_mail_dir=/usr/mail
- elif test -d /usr/spool/mail; then
- bash_cv_mail_dir=/usr/spool/mail
- else
- bash_cv_mail_dir=unknown
- fi
-])
-AC_MSG_RESULT($bash_cv_mail_dir)
-AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
-])
-
-AC_DEFUN(BASH_HAVE_TIOCGWINSZ,
-[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
-AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
- bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
-AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
-if test $bash_cv_tiocgwinsz_in_ioctl = yes; then
-AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
-fi
-])
-
-AC_DEFUN(BASH_HAVE_TIOCSTAT,
-[AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h)
-AC_CACHE_VAL(bash_cv_tiocstat_in_ioctl,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [int x = TIOCSTAT;],
- bash_cv_tiocstat_in_ioctl=yes,bash_cv_tiocstat_in_ioctl=no)])
-AC_MSG_RESULT($bash_cv_tiocstat_in_ioctl)
-if test $bash_cv_tiocstat_in_ioctl = yes; then
-AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL)
-fi
-])
-
-AC_DEFUN(BASH_HAVE_FIONREAD,
-[AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h)
-AC_CACHE_VAL(bash_cv_fionread_in_ioctl,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [int x = FIONREAD;],
- bash_cv_fionread_in_ioctl=yes,bash_cv_fionread_in_ioctl=no)])
-AC_MSG_RESULT($bash_cv_fionread_in_ioctl)
-if test $bash_cv_fionread_in_ioctl = yes; then
-AC_DEFINE(FIONREAD_IN_SYS_IOCTL)
-fi
-])
-
-dnl
-dnl See if speed_t is declared in <sys/types.h>. Some versions of linux
-dnl require a definition of speed_t each time <termcap.h> is included,
-dnl but you can only get speed_t if you include <termios.h> (on some
-dnl versions) or <sys/types.h> (on others).
-dnl
-AC_DEFUN(BASH_CHECK_SPEED_T,
-[AC_MSG_CHECKING(for speed_t in sys/types.h)
-AC_CACHE_VAL(bash_cv_speed_t_in_sys_types,
-[AC_TRY_COMPILE([#include <sys/types.h>], [speed_t x;],
- bash_cv_speed_t_in_sys_types=yes,bash_cv_speed_t_in_sys_types=no)])
-AC_MSG_RESULT($bash_cv_speed_t_in_sys_types)
-if test $bash_cv_speed_t_in_sys_types = yes; then
-AC_DEFINE(SPEED_T_IN_SYS_TYPES)
-fi
-])
-
-AC_DEFUN(BASH_CHECK_GETPW_FUNCS,
-[AC_MSG_CHECKING(whether getpw functions are declared in pwd.h)
-AC_CACHE_VAL(bash_cv_getpw_declared,
-[AC_EGREP_CPP(getpwuid,
-[
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#include <pwd.h>
-],
-bash_cv_getpw_declared=yes,bash_cv_getpw_declared=no)])
-AC_MSG_RESULT($bash_cv_getpw_declared)
-if test $bash_cv_getpw_declared = yes; then
-AC_DEFINE(HAVE_GETPW_DECLS)
-fi
-])
-
-AC_DEFUN(BASH_CHECK_DEV_FD,
-[AC_MSG_CHECKING(whether /dev/fd is available)
-AC_CACHE_VAL(bash_cv_dev_fd,
-[if test -d /dev/fd && test -r /dev/fd/0; then
- bash_cv_dev_fd=standard
- elif test -d /proc/self/fd && test -r /proc/self/fd/0; then
- bash_cv_dev_fd=whacky
- else
- bash_cv_dev_fd=absent
- fi
-])
-AC_MSG_RESULT($bash_cv_dev_fd)
-if test $bash_cv_dev_fd = "standard"; then
- AC_DEFINE(HAVE_DEV_FD)
- AC_DEFINE(DEV_FD_PREFIX, "/dev/fd/")
-elif test $bash_cv_dev_fd = "whacky"; then
- AC_DEFINE(HAVE_DEV_FD)
- AC_DEFINE(DEV_FD_PREFIX, "/proc/self/fd/")
-fi
-])
-
-AC_DEFUN(BASH_CHECK_DEV_STDIN,
-[AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
-AC_CACHE_VAL(bash_cv_dev_stdin,
-[if test -d /dev/fd && test -r /dev/stdin; then
- bash_cv_dev_stdin=present
- elif test -d /proc/self/fd && test -r /dev/stdin; then
- bash_cv_dev_stdin=present
- else
- bash_cv_dev_stdin=absent
- fi
-])
-AC_MSG_RESULT($bash_cv_dev_stdin)
-if test $bash_cv_dev_stdin = "present"; then
- AC_DEFINE(HAVE_DEV_STDIN)
-fi
-])
-
-dnl
-dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
-dnl
-AC_DEFUN(BASH_CHECK_KERNEL_RLIMIT,
-[AC_MSG_CHECKING([whether $host_os needs _KERNEL for RLIMIT defines])
-AC_CACHE_VAL(bash_cv_kernel_rlimit,
-[AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/resource.h>
-],
-[
- int f;
- f = RLIMIT_DATA;
-], bash_cv_kernel_rlimit=no,
-[AC_TRY_COMPILE([
-#include <sys/types.h>
-#define _KERNEL
-#include <sys/resource.h>
-#undef _KERNEL
-],
-[
- int f;
- f = RLIMIT_DATA;
-], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
-)])
-AC_MSG_RESULT($bash_cv_kernel_rlimit)
-if test $bash_cv_kernel_rlimit = yes; then
-AC_DEFINE(RLIMIT_NEEDS_KERNEL)
-fi
-])
-
-dnl
-dnl Check for 64-bit off_t -- used for malloc alignment
-dnl
-dnl C does not allow duplicate case labels, so the compile will fail if
-dnl sizeof(off_t) is > 4.
-dnl
-AC_DEFUN(BASH_CHECK_OFF_T_64,
-[AC_CACHE_CHECK(for 64-bit off_t, bash_cv_off_t_64,
-AC_TRY_COMPILE([
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-],[
-switch (0) case 0: case (sizeof (off_t) <= 4):;
-], bash_cv_off_t_64=no, bash_cv_off_t_64=yes))
-if test $bash_cv_off_t_64 = yes; then
- AC_DEFINE(HAVE_OFF_T_64)
-fi])
-
-AC_DEFUN(BASH_CHECK_RTSIGS,
-[AC_MSG_CHECKING(for unusable real-time signals due to large values)
-AC_CACHE_VAL(bash_cv_unusable_rtsigs,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <signal.h>
-
-#ifndef NSIG
-# define NSIG 64
-#endif
-
-main ()
-{
- int n_sigs = 2 * NSIG;
-#ifdef SIGRTMIN
- int rtmin = SIGRTMIN;
-#else
- int rtmin = 0;
-#endif
-
- exit(rtmin < n_sigs);
-}], bash_cv_unusable_rtsigs=yes, bash_cv_unusable_rtsigs=no,
- [AC_MSG_WARN(cannot check real-time signals if cross compiling -- defaulting to yes)
- bash_cv_unusable_rtsigs=yes]
-)])
-AC_MSG_RESULT($bash_cv_unusable_rtsigs)
-if test $bash_cv_unusable_rtsigs = yes; then
-AC_DEFINE(UNUSABLE_RT_SIGNALS)
-fi
-])
-
-dnl
-dnl check for availability of multibyte characters and functions
-dnl
-AC_DEFUN(BASH_CHECK_MULTIBYTE,
-[
-AC_CHECK_HEADERS(wctype.h)
-AC_CHECK_HEADERS(wchar.h)
-AC_CHECK_HEADERS(langinfo.h)
-
-AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
-AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
-
-AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
-[AC_TRY_RUN([
-#include <wchar.h>
-int
-main ()
-{
- mbstate_t ps;
- return 0;
-}], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
-if test $bash_cv_have_mbstate_t = yes; then
- AC_DEFINE(HAVE_MBSTATE_T)
-fi
-
-AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
-[AC_TRY_LINK(
-[#include <langinfo.h>],
-[char* cs = nl_langinfo(CODESET);],
-bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
-if test $bash_cv_langinfo_codeset = yes; then
- AC_DEFINE(HAVE_LANGINFO_CODESET)
-fi
-
-])
-
-dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
-dnl require:
-dnl AC_PROG_CC
-dnl BASH_CHECK_LIB_TERMCAP
-
-AC_DEFUN(RL_LIB_READLINE_VERSION,
-[
-AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
-
-AC_MSG_CHECKING([version of installed readline library])
-
-# What a pain in the ass this is.
-
-# save cpp and ld options
-_save_CFLAGS="$CFLAGS"
-_save_LDFLAGS="$LDFLAGS"
-_save_LIBS="$LIBS"
-
-# Don't set ac_cv_rl_prefix if the caller has already assigned a value. This
-# allows the caller to do something like $_rl_prefix=$withval if the user
-# specifies --with-installed-readline=PREFIX as an argument to configure
-
-if test -z "$ac_cv_rl_prefix"; then
-test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
-fi
-
-eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
-eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
-
-LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
-CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
-LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
-
-AC_TRY_RUN([
-#include <stdio.h>
-#include <readline/readline.h>
-
-main()
-{
- FILE *fp;
- fp = fopen("conftest.rlv", "w");
- if (fp == 0) exit(1);
- fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
- fclose(fp);
- exit(0);
-}
-],
-ac_cv_rl_version=`cat conftest.rlv`,
-ac_cv_rl_version='0.0',
-ac_cv_rl_version='4.2')
-
-CFLAGS="$_save_CFLAGS"
-LDFLAGS="$_save_LDFLAGS"
-LIBS="$_save_LIBS"
-
-RL_MAJOR=0
-RL_MINOR=0
-
-# (
-case "$ac_cv_rl_version" in
-2*|3*|4*|5*|6*|7*|8*|9*)
- RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
- RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
- ;;
-esac
-
-# (((
-case $RL_MAJOR in
-[[0-9][0-9]]) _RL_MAJOR=$RL_MAJOR ;;
-[[0-9]]) _RL_MAJOR=0$RL_MAJOR ;;
-*) _RL_MAJOR=00 ;;
-esac
-
-# (((
-case $RL_MINOR in
-[[0-9][0-9]]) _RL_MINOR=$RL_MINOR ;;
-[[0-9]]) _RL_MINOR=0$RL_MINOR ;;
-*) _RL_MINOR=00 ;;
-esac
-
-RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
-
-# Readline versions greater than 4.2 have these defines in readline.h
-
-if test $ac_cv_rl_version = '0.0' ; then
- AC_MSG_WARN([Could not test version of installed readline library.])
-elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
- # set these for use by the caller
- RL_PREFIX=$ac_cv_rl_prefix
- RL_LIBDIR=$ac_cv_rl_libdir
- RL_INCLUDEDIR=$ac_cv_rl_includedir
- AC_MSG_RESULT($ac_cv_rl_version)
-else
-
-AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
-AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
-AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
-
-AC_SUBST(RL_VERSION)
-AC_SUBST(RL_MAJOR)
-AC_SUBST(RL_MINOR)
-
-# set these for use by the caller
-RL_PREFIX=$ac_cv_rl_prefix
-RL_LIBDIR=$ac_cv_rl_libdir
-RL_INCLUDEDIR=$ac_cv_rl_includedir
-
-AC_MSG_RESULT($ac_cv_rl_version)
-
-fi
-])
diff --git a/readline-4.3.orig/ansi_stdlib.h b/readline-4.3.orig/ansi_stdlib.h
deleted file mode 100644
index db13cd2..0000000
--- a/readline-4.3.orig/ansi_stdlib.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* ansi_stdlib.h -- An ANSI Standard stdlib.h. */
-/* A minimal stdlib.h containing extern declarations for those functions
- that bash uses. */
-
-/* Copyright (C) 1993 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2, or (at your option) any later
- version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- You should have received a copy of the GNU General Public License along
- with Bash; see the file COPYING. If not, write to the Free Software
- Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_STDLIB_H_)
-#define _STDLIB_H_ 1
-
-/* String conversion functions. */
-extern int atoi ();
-
-extern double atof ();
-extern double strtod ();
-
-/* Memory allocation functions. */
-/* Generic pointer type. */
-#ifndef PTR_T
-
-#if defined (__STDC__)
-# define PTR_T void *
-#else
-# define PTR_T char *
-#endif
-
-#endif /* PTR_T */
-
-extern PTR_T malloc ();
-extern PTR_T realloc ();
-extern void free ();
-
-/* Other miscellaneous functions. */
-extern void abort ();
-extern void exit ();
-extern char *getenv ();
-extern void qsort ();
-
-#endif /* _STDLIB_H */
diff --git a/readline-4.3.orig/bind.c b/readline-4.3.orig/bind.c
deleted file mode 100644
index 65ef401..0000000
--- a/readline-4.3.orig/bind.c
+++ /dev/null
@@ -1,2150 +0,0 @@
-/* bind.c -- key binding and startup file support for the readline library. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-# include <sys/file.h>
-#endif /* HAVE_SYS_FILE_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <errno.h>
-
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-#include "posixstat.h"
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strchr (), *strrchr ();
-#endif /* !strchr && !__STDC__ */
-
-/* Variables exported by this file. */
-Keymap rl_binding_keymap;
-
-static char *_rl_read_file PARAMS((char *, size_t *));
-static void _rl_init_file_error PARAMS((const char *));
-static int _rl_read_init_file PARAMS((const char *, int));
-static int glean_key_from_name PARAMS((char *));
-static int substring_member_of_array PARAMS((char *, const char **));
-
-static int currently_reading_init_file;
-
-/* used only in this file */
-static int _rl_prefer_visible_bell = 1;
-
-/* **************************************************************** */
-/* */
-/* Binding keys */
-/* */
-/* **************************************************************** */
-
-/* rl_add_defun (char *name, rl_command_func_t *function, int key)
- Add NAME to the list of named functions. Make FUNCTION be the function
- that gets called. If KEY is not -1, then bind it. */
-int
-rl_add_defun (name, function, key)
- const char *name;
- rl_command_func_t *function;
- int key;
-{
- if (key != -1)
- rl_bind_key (key, function);
- rl_add_funmap_entry (name, function);
- return 0;
-}
-
-/* Bind KEY to FUNCTION. Returns non-zero if KEY is out of range. */
-int
-rl_bind_key (key, function)
- int key;
- rl_command_func_t *function;
-{
- if (key < 0)
- return (key);
-
- if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)
- {
- if (_rl_keymap[ESC].type == ISKMAP)
- {
- Keymap escmap;
-
- escmap = FUNCTION_TO_KEYMAP (_rl_keymap, ESC);
- key = UNMETA (key);
- escmap[key].type = ISFUNC;
- escmap[key].function = function;
- return (0);
- }
- return (key);
- }
-
- _rl_keymap[key].type = ISFUNC;
- _rl_keymap[key].function = function;
- rl_binding_keymap = _rl_keymap;
- return (0);
-}
-
-/* Bind KEY to FUNCTION in MAP. Returns non-zero in case of invalid
- KEY. */
-int
-rl_bind_key_in_map (key, function, map)
- int key;
- rl_command_func_t *function;
- Keymap map;
-{
- int result;
- Keymap oldmap;
-
- oldmap = _rl_keymap;
- _rl_keymap = map;
- result = rl_bind_key (key, function);
- _rl_keymap = oldmap;
- return (result);
-}
-
-/* Make KEY do nothing in the currently selected keymap.
- Returns non-zero in case of error. */
-int
-rl_unbind_key (key)
- int key;
-{
- return (rl_bind_key (key, (rl_command_func_t *)NULL));
-}
-
-/* Make KEY do nothing in MAP.
- Returns non-zero in case of error. */
-int
-rl_unbind_key_in_map (key, map)
- int key;
- Keymap map;
-{
- return (rl_bind_key_in_map (key, (rl_command_func_t *)NULL, map));
-}
-
-/* Unbind all keys bound to FUNCTION in MAP. */
-int
-rl_unbind_function_in_map (func, map)
- rl_command_func_t *func;
- Keymap map;
-{
- register int i, rval;
-
- for (i = rval = 0; i < KEYMAP_SIZE; i++)
- {
- if (map[i].type == ISFUNC && map[i].function == func)
- {
- map[i].function = (rl_command_func_t *)NULL;
- rval = 1;
- }
- }
- return rval;
-}
-
-int
-rl_unbind_command_in_map (command, map)
- const char *command;
- Keymap map;
-{
- rl_command_func_t *func;
-
- func = rl_named_function (command);
- if (func == 0)
- return 0;
- return (rl_unbind_function_in_map (func, map));
-}
-
-/* Bind the key sequence represented by the string KEYSEQ to
- FUNCTION. This makes new keymaps as necessary. The initial
- place to do bindings is in MAP. */
-int
-rl_set_key (keyseq, function, map)
- const char *keyseq;
- rl_command_func_t *function;
- Keymap map;
-{
- return (rl_generic_bind (ISFUNC, keyseq, (char *)function, map));
-}
-
-/* Bind the key sequence represented by the string KEYSEQ to
- the string of characters MACRO. This makes new keymaps as
- necessary. The initial place to do bindings is in MAP. */
-int
-rl_macro_bind (keyseq, macro, map)
- const char *keyseq, *macro;
- Keymap map;
-{
- char *macro_keys;
- int macro_keys_len;
-
- macro_keys = (char *)xmalloc ((2 * strlen (macro)) + 1);
-
- if (rl_translate_keyseq (macro, macro_keys, &macro_keys_len))
- {
- free (macro_keys);
- return -1;
- }
- rl_generic_bind (ISMACR, keyseq, macro_keys, map);
- return 0;
-}
-
-/* Bind the key sequence represented by the string KEYSEQ to
- the arbitrary pointer DATA. TYPE says what kind of data is
- pointed to by DATA, right now this can be a function (ISFUNC),
- a macro (ISMACR), or a keymap (ISKMAP). This makes new keymaps
- as necessary. The initial place to do bindings is in MAP. */
-int
-rl_generic_bind (type, keyseq, data, map)
- int type;
- const char *keyseq;
- char *data;
- Keymap map;
-{
- char *keys;
- int keys_len;
- register int i;
- KEYMAP_ENTRY k;
-
- k.function = 0;
-
- /* If no keys to bind to, exit right away. */
- if (!keyseq || !*keyseq)
- {
- if (type == ISMACR)
- free (data);
- return -1;
- }
-
- keys = (char *)xmalloc (1 + (2 * strlen (keyseq)));
-
- /* Translate the ASCII representation of KEYSEQ into an array of
- characters. Stuff the characters into KEYS, and the length of
- KEYS into KEYS_LEN. */
- if (rl_translate_keyseq (keyseq, keys, &keys_len))
- {
- free (keys);
- return -1;
- }
-
- /* Bind keys, making new keymaps as necessary. */
- for (i = 0; i < keys_len; i++)
- {
- unsigned char uc = keys[i];
- int ic;
-
- ic = uc;
- if (ic < 0 || ic >= KEYMAP_SIZE)
- return -1;
-
- if (_rl_convert_meta_chars_to_ascii && META_CHAR (ic))
- {
- ic = UNMETA (ic);
- if (map[ESC].type == ISKMAP)
- map = FUNCTION_TO_KEYMAP (map, ESC);
- }
-
- if ((i + 1) < keys_len)
- {
- if (map[ic].type != ISKMAP)
- {
- /* We allow subsequences of keys. If a keymap is being
- created that will `shadow' an existing function or macro
- key binding, we save that keybinding into the ANYOTHERKEY
- index in the new map. The dispatch code will look there
- to find the function to execute if the subsequence is not
- matched. ANYOTHERKEY was chosen to be greater than
- UCHAR_MAX. */
- k = map[ic];
-
- map[ic].type = ISKMAP;
- map[ic].function = KEYMAP_TO_FUNCTION (rl_make_bare_keymap());
- }
- map = FUNCTION_TO_KEYMAP (map, ic);
- /* The dispatch code will return this function if no matching
- key sequence is found in the keymap. This (with a little
- help from the dispatch code in readline.c) allows `a' to be
- mapped to something, `abc' to be mapped to something else,
- and the function bound to `a' to be executed when the user
- types `abx', leaving `bx' in the input queue. */
- if (k.function /* && k.type == ISFUNC */)
- {
- map[ANYOTHERKEY] = k;
- k.function = 0;
- }
- }
- else
- {
- if (map[ic].type == ISMACR)
- free ((char *)map[ic].function);
- else if (map[ic].type == ISKMAP)
- {
- map = FUNCTION_TO_KEYMAP (map, ic);
- ic = ANYOTHERKEY;
- }
-
- map[ic].function = KEYMAP_TO_FUNCTION (data);
- map[ic].type = type;
- }
-
- rl_binding_keymap = map;
- }
- free (keys);
- return 0;
-}
-
-/* Translate the ASCII representation of SEQ, stuffing the values into ARRAY,
- an array of characters. LEN gets the final length of ARRAY. Return
- non-zero if there was an error parsing SEQ. */
-int
-rl_translate_keyseq (seq, array, len)
- const char *seq;
- char *array;
- int *len;
-{
- register int i, c, l, temp;
-
- for (i = l = 0; c = seq[i]; i++)
- {
- if (c == '\\')
- {
- c = seq[++i];
-
- if (c == 0)
- break;
-
- /* Handle \C- and \M- prefixes. */
- if ((c == 'C' || c == 'M') && seq[i + 1] == '-')
- {
- /* Handle special case of backwards define. */
- if (strncmp (&seq[i], "C-\\M-", 5) == 0)
- {
- array[l++] = ESC; /* ESC is meta-prefix */
- i += 5;
- array[l++] = CTRL (_rl_to_upper (seq[i]));
- if (seq[i] == '\0')
- i--;
- }
- else if (c == 'M')
- {
- i++;
- array[l++] = ESC; /* ESC is meta-prefix */
- }
- else if (c == 'C')
- {
- i += 2;
- /* Special hack for C-?... */
- array[l++] = (seq[i] == '?') ? RUBOUT : CTRL (_rl_to_upper (seq[i]));
- }
- continue;
- }
-
- /* Translate other backslash-escaped characters. These are the
- same escape sequences that bash's `echo' and `printf' builtins
- handle, with the addition of \d -> RUBOUT. A backslash
- preceding a character that is not special is stripped. */
- switch (c)
- {
- case 'a':
- array[l++] = '\007';
- break;
- case 'b':
- array[l++] = '\b';
- break;
- case 'd':
- array[l++] = RUBOUT; /* readline-specific */
- break;
- case 'e':
- array[l++] = ESC;
- break;
- case 'f':
- array[l++] = '\f';
- break;
- case 'n':
- array[l++] = NEWLINE;
- break;
- case 'r':
- array[l++] = RETURN;
- break;
- case 't':
- array[l++] = TAB;
- break;
- case 'v':
- array[l++] = 0x0B;
- break;
- case '\\':
- array[l++] = '\\';
- break;
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- i++;
- for (temp = 2, c -= '0'; ISOCTAL (seq[i]) && temp--; i++)
- c = (c * 8) + OCTVALUE (seq[i]);
- i--; /* auto-increment in for loop */
- array[l++] = c & largest_char;
- break;
- case 'x':
- i++;
- for (temp = 2, c = 0; ISXDIGIT ((unsigned char)seq[i]) && temp--; i++)
- c = (c * 16) + HEXVALUE (seq[i]);
- if (temp == 2)
- c = 'x';
- i--; /* auto-increment in for loop */
- array[l++] = c & largest_char;
- break;
- default: /* backslashes before non-special chars just add the char */
- array[l++] = c;
- break; /* the backslash is stripped */
- }
- continue;
- }
-
- array[l++] = c;
- }
-
- *len = l;
- array[l] = '\0';
- return (0);
-}
-
-char *
-rl_untranslate_keyseq (seq)
- int seq;
-{
- static char kseq[16];
- int i, c;
-
- i = 0;
- c = seq;
- if (META_CHAR (c))
- {
- kseq[i++] = '\\';
- kseq[i++] = 'M';
- kseq[i++] = '-';
- c = UNMETA (c);
- }
- else if (CTRL_CHAR (c))
- {
- kseq[i++] = '\\';
- kseq[i++] = 'C';
- kseq[i++] = '-';
- c = _rl_to_lower (UNCTRL (c));
- }
- else if (c == RUBOUT)
- {
- kseq[i++] = '\\';
- kseq[i++] = 'C';
- kseq[i++] = '-';
- c = '?';
- }
-
- if (c == ESC)
- {
- kseq[i++] = '\\';
- c = 'e';
- }
- else if (c == '\\' || c == '"')
- {
- kseq[i++] = '\\';
- }
-
- kseq[i++] = (unsigned char) c;
- kseq[i] = '\0';
- return kseq;
-}
-
-static char *
-_rl_untranslate_macro_value (seq)
- char *seq;
-{
- char *ret, *r, *s;
- int c;
-
- r = ret = (char *)xmalloc (7 * strlen (seq) + 1);
- for (s = seq; *s; s++)
- {
- c = *s;
- if (META_CHAR (c))
- {
- *r++ = '\\';
- *r++ = 'M';
- *r++ = '-';
- c = UNMETA (c);
- }
- else if (CTRL_CHAR (c) && c != ESC)
- {
- *r++ = '\\';
- *r++ = 'C';
- *r++ = '-';
- c = _rl_to_lower (UNCTRL (c));
- }
- else if (c == RUBOUT)
- {
- *r++ = '\\';
- *r++ = 'C';
- *r++ = '-';
- c = '?';
- }
-
- if (c == ESC)
- {
- *r++ = '\\';
- c = 'e';
- }
- else if (c == '\\' || c == '"')
- *r++ = '\\';
-
- *r++ = (unsigned char)c;
- }
- *r = '\0';
- return ret;
-}
-
-/* Return a pointer to the function that STRING represents.
- If STRING doesn't have a matching function, then a NULL pointer
- is returned. */
-rl_command_func_t *
-rl_named_function (string)
- const char *string;
-{
- register int i;
-
- rl_initialize_funmap ();
-
- for (i = 0; funmap[i]; i++)
- if (_rl_stricmp (funmap[i]->name, string) == 0)
- return (funmap[i]->function);
- return ((rl_command_func_t *)NULL);
-}
-
-/* Return the function (or macro) definition which would be invoked via
- KEYSEQ if executed in MAP. If MAP is NULL, then the current keymap is
- used. TYPE, if non-NULL, is a pointer to an int which will receive the
- type of the object pointed to. One of ISFUNC (function), ISKMAP (keymap),
- or ISMACR (macro). */
-rl_command_func_t *
-rl_function_of_keyseq (keyseq, map, type)
- const char *keyseq;
- Keymap map;
- int *type;
-{
- register int i;
-
- if (!map)
- map = _rl_keymap;
-
- for (i = 0; keyseq && keyseq[i]; i++)
- {
- unsigned char ic = keyseq[i];
-
- if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii)
- {
- if (map[ESC].type != ISKMAP)
- {
- if (type)
- *type = map[ESC].type;
-
- return (map[ESC].function);
- }
- else
- {
- map = FUNCTION_TO_KEYMAP (map, ESC);
- ic = UNMETA (ic);
- }
- }
-
- if (map[ic].type == ISKMAP)
- {
- /* If this is the last key in the key sequence, return the
- map. */
- if (!keyseq[i + 1])
- {
- if (type)
- *type = ISKMAP;
-
- return (map[ic].function);
- }
- else
- map = FUNCTION_TO_KEYMAP (map, ic);
- }
- else
- {
- if (type)
- *type = map[ic].type;
-
- return (map[ic].function);
- }
- }
- return ((rl_command_func_t *) NULL);
-}
-
-/* The last key bindings file read. */
-static char *last_readline_init_file = (char *)NULL;
-
-/* The file we're currently reading key bindings from. */
-static const char *current_readline_init_file;
-static int current_readline_init_include_level;
-static int current_readline_init_lineno;
-
-/* Read FILENAME into a locally-allocated buffer and return the buffer.
- The size of the buffer is returned in *SIZEP. Returns NULL if any
- errors were encountered. */
-static char *
-_rl_read_file (filename, sizep)
- char *filename;
- size_t *sizep;
-{
- struct stat finfo;
- size_t file_size;
- char *buffer;
- int i, file;
-
- if ((stat (filename, &finfo) < 0) || (file = open (filename, O_RDONLY, 0666)) < 0)
- return ((char *)NULL);
-
- file_size = (size_t)finfo.st_size;
-
- /* check for overflow on very large files */
- if (file_size != finfo.st_size || file_size + 1 < file_size)
- {
- if (file >= 0)
- close (file);
-#if defined (EFBIG)
- errno = EFBIG;
-#endif
- return ((char *)NULL);
- }
-
- /* Read the file into BUFFER. */
- buffer = (char *)xmalloc (file_size + 1);
- i = read (file, buffer, file_size);
- close (file);
-
- if (i < 0)
- {
- free (buffer);
- return ((char *)NULL);
- }
-
- buffer[i] = '\0';
- if (sizep)
- *sizep = i;
-
- return (buffer);
-}
-
-/* Re-read the current keybindings file. */
-int
-rl_re_read_init_file (count, ignore)
- int count, ignore;
-{
- int r;
- r = rl_read_init_file ((const char *)NULL);
- rl_set_keymap_from_edit_mode ();
- return r;
-}
-
-/* Do key bindings from a file. If FILENAME is NULL it defaults
- to the first non-null filename from this list:
- 1. the filename used for the previous call
- 2. the value of the shell variable `INPUTRC'
- 3. ~/.inputrc
- If the file existed and could be opened and read, 0 is returned,
- otherwise errno is returned. */
-int
-rl_read_init_file (filename)
- const char *filename;
-{
- /* Default the filename. */
- if (filename == 0)
- {
- filename = last_readline_init_file;
- if (filename == 0)
- filename = sh_get_env_value ("INPUTRC");
- if (filename == 0)
- filename = DEFAULT_INPUTRC;
- }
-
- if (*filename == 0)
- filename = DEFAULT_INPUTRC;
-
-#if defined (__MSDOS__)
- if (_rl_read_init_file (filename, 0) == 0)
- return 0;
- filename = "~/_inputrc";
-#endif
- return (_rl_read_init_file (filename, 0));
-}
-
-static int
-_rl_read_init_file (filename, include_level)
- const char *filename;
- int include_level;
-{
- register int i;
- char *buffer, *openname, *line, *end;
- size_t file_size;
-
- current_readline_init_file = filename;
- current_readline_init_include_level = include_level;
-
- openname = tilde_expand (filename);
- buffer = _rl_read_file (openname, &file_size);
- free (openname);
-
- if (buffer == 0)
- return (errno);
-
- if (include_level == 0 && filename != last_readline_init_file)
- {
- FREE (last_readline_init_file);
- last_readline_init_file = savestring (filename);
- }
-
- currently_reading_init_file = 1;
-
- /* Loop over the lines in the file. Lines that start with `#' are
- comments; all other lines are commands for readline initialization. */
- current_readline_init_lineno = 1;
- line = buffer;
- end = buffer + file_size;
- while (line < end)
- {
- /* Find the end of this line. */
- for (i = 0; line + i != end && line[i] != '\n'; i++);
-
-#if defined (__CYGWIN__)
- /* ``Be liberal in what you accept.'' */
- if (line[i] == '\n' && line[i-1] == '\r')
- line[i - 1] = '\0';
-#endif
-
- /* Mark end of line. */
- line[i] = '\0';
-
- /* Skip leading whitespace. */
- while (*line && whitespace (*line))
- {
- line++;
- i--;
- }
-
- /* If the line is not a comment, then parse it. */
- if (*line && *line != '#')
- rl_parse_and_bind (line);
-
- /* Move to the next line. */
- line += i + 1;
- current_readline_init_lineno++;
- }
-
- free (buffer);
- currently_reading_init_file = 0;
- return (0);
-}
-
-static void
-_rl_init_file_error (msg)
- const char *msg;
-{
- if (currently_reading_init_file)
- fprintf (stderr, "readline: %s: line %d: %s\n", current_readline_init_file,
- current_readline_init_lineno, msg);
- else
- fprintf (stderr, "readline: %s\n", msg);
-}
-
-/* **************************************************************** */
-/* */
-/* Parser Directives */
-/* */
-/* **************************************************************** */
-
-typedef int _rl_parser_func_t PARAMS((char *));
-
-/* Things that mean `Control'. */
-const char *_rl_possible_control_prefixes[] = {
- "Control-", "C-", "CTRL-", (const char *)NULL
-};
-
-const char *_rl_possible_meta_prefixes[] = {
- "Meta", "M-", (const char *)NULL
-};
-
-/* Conditionals. */
-
-/* Calling programs set this to have their argv[0]. */
-const char *rl_readline_name = "other";
-
-/* Stack of previous values of parsing_conditionalized_out. */
-static unsigned char *if_stack = (unsigned char *)NULL;
-static int if_stack_depth;
-static int if_stack_size;
-
-/* Push _rl_parsing_conditionalized_out, and set parser state based
- on ARGS. */
-static int
-parser_if (args)
- char *args;
-{
- register int i;
-
- /* Push parser state. */
- if (if_stack_depth + 1 >= if_stack_size)
- {
- if (!if_stack)
- if_stack = (unsigned char *)xmalloc (if_stack_size = 20);
- else
- if_stack = (unsigned char *)xrealloc (if_stack, if_stack_size += 20);
- }
- if_stack[if_stack_depth++] = _rl_parsing_conditionalized_out;
-
- /* If parsing is turned off, then nothing can turn it back on except
- for finding the matching endif. In that case, return right now. */
- if (_rl_parsing_conditionalized_out)
- return 0;
-
- /* Isolate first argument. */
- for (i = 0; args[i] && !whitespace (args[i]); i++);
-
- if (args[i])
- args[i++] = '\0';
-
- /* Handle "$if term=foo" and "$if mode=emacs" constructs. If this
- isn't term=foo, or mode=emacs, then check to see if the first
- word in ARGS is the same as the value stored in rl_readline_name. */
- if (rl_terminal_name && _rl_strnicmp (args, "term=", 5) == 0)
- {
- char *tem, *tname;
-
- /* Terminals like "aaa-60" are equivalent to "aaa". */
- tname = savestring (rl_terminal_name);
- tem = strchr (tname, '-');
- if (tem)
- *tem = '\0';
-
- /* Test the `long' and `short' forms of the terminal name so that
- if someone has a `sun-cmd' and does not want to have bindings
- that will be executed if the terminal is a `sun', they can put
- `$if term=sun-cmd' into their .inputrc. */
- _rl_parsing_conditionalized_out = _rl_stricmp (args + 5, tname) &&
- _rl_stricmp (args + 5, rl_terminal_name);
- free (tname);
- }
-#if defined (VI_MODE)
- else if (_rl_strnicmp (args, "mode=", 5) == 0)
- {
- int mode;
-
- if (_rl_stricmp (args + 5, "emacs") == 0)
- mode = emacs_mode;
- else if (_rl_stricmp (args + 5, "vi") == 0)
- mode = vi_mode;
- else
- mode = no_mode;
-
- _rl_parsing_conditionalized_out = mode != rl_editing_mode;
- }
-#endif /* VI_MODE */
- /* Check to see if the first word in ARGS is the same as the
- value stored in rl_readline_name. */
- else if (_rl_stricmp (args, rl_readline_name) == 0)
- _rl_parsing_conditionalized_out = 0;
- else
- _rl_parsing_conditionalized_out = 1;
- return 0;
-}
-
-/* Invert the current parser state if there is anything on the stack. */
-static int
-parser_else (args)
- char *args;
-{
- register int i;
-
- if (if_stack_depth == 0)
- {
- _rl_init_file_error ("$else found without matching $if");
- return 0;
- }
-
- /* Check the previous (n - 1) levels of the stack to make sure that
- we haven't previously turned off parsing. */
- for (i = 0; i < if_stack_depth - 1; i++)
- if (if_stack[i] == 1)
- return 0;
-
- /* Invert the state of parsing if at top level. */
- _rl_parsing_conditionalized_out = !_rl_parsing_conditionalized_out;
- return 0;
-}
-
-/* Terminate a conditional, popping the value of
- _rl_parsing_conditionalized_out from the stack. */
-static int
-parser_endif (args)
- char *args;
-{
- if (if_stack_depth)
- _rl_parsing_conditionalized_out = if_stack[--if_stack_depth];
- else
- _rl_init_file_error ("$endif without matching $if");
- return 0;
-}
-
-static int
-parser_include (args)
- char *args;
-{
- const char *old_init_file;
- char *e;
- int old_line_number, old_include_level, r;
-
- if (_rl_parsing_conditionalized_out)
- return (0);
-
- old_init_file = current_readline_init_file;
- old_line_number = current_readline_init_lineno;
- old_include_level = current_readline_init_include_level;
-
- e = strchr (args, '\n');
- if (e)
- *e = '\0';
- r = _rl_read_init_file ((const char *)args, old_include_level + 1);
-
- current_readline_init_file = old_init_file;
- current_readline_init_lineno = old_line_number;
- current_readline_init_include_level = old_include_level;
-
- return r;
-}
-
-/* Associate textual names with actual functions. */
-static struct {
- const char *name;
- _rl_parser_func_t *function;
-} parser_directives [] = {
- { "if", parser_if },
- { "endif", parser_endif },
- { "else", parser_else },
- { "include", parser_include },
- { (char *)0x0, (_rl_parser_func_t *)0x0 }
-};
-
-/* Handle a parser directive. STATEMENT is the line of the directive
- without any leading `$'. */
-static int
-handle_parser_directive (statement)
- char *statement;
-{
- register int i;
- char *directive, *args;
-
- /* Isolate the actual directive. */
-
- /* Skip whitespace. */
- for (i = 0; whitespace (statement[i]); i++);
-
- directive = &statement[i];
-
- for (; statement[i] && !whitespace (statement[i]); i++);
-
- if (statement[i])
- statement[i++] = '\0';
-
- for (; statement[i] && whitespace (statement[i]); i++);
-
- args = &statement[i];
-
- /* Lookup the command, and act on it. */
- for (i = 0; parser_directives[i].name; i++)
- if (_rl_stricmp (directive, parser_directives[i].name) == 0)
- {
- (*parser_directives[i].function) (args);
- return (0);
- }
-
- /* display an error message about the unknown parser directive */
- _rl_init_file_error ("unknown parser directive");
- return (1);
-}
-
-/* Read the binding command from STRING and perform it.
- A key binding command looks like: Keyname: function-name\0,
- a variable binding command looks like: set variable value.
- A new-style keybinding looks like "\C-x\C-x": exchange-point-and-mark. */
-int
-rl_parse_and_bind (string)
- char *string;
-{
- char *funname, *kname;
- register int c, i;
- int key, equivalency;
-
- while (string && whitespace (*string))
- string++;
-
- if (!string || !*string || *string == '#')
- return 0;
-
- /* If this is a parser directive, act on it. */
- if (*string == '$')
- {
- handle_parser_directive (&string[1]);
- return 0;
- }
-
- /* If we aren't supposed to be parsing right now, then we're done. */
- if (_rl_parsing_conditionalized_out)
- return 0;
-
- i = 0;
- /* If this keyname is a complex key expression surrounded by quotes,
- advance to after the matching close quote. This code allows the
- backslash to quote characters in the key expression. */
- if (*string == '"')
- {
- int passc = 0;
-
- for (i = 1; c = string[i]; i++)
- {
- if (passc)
- {
- passc = 0;
- continue;
- }
-
- if (c == '\\')
- {
- passc++;
- continue;
- }
-
- if (c == '"')
- break;
- }
- /* If we didn't find a closing quote, abort the line. */
- if (string[i] == '\0')
- {
- _rl_init_file_error ("no closing `\"' in key binding");
- return 1;
- }
- }
-
- /* Advance to the colon (:) or whitespace which separates the two objects. */
- for (; (c = string[i]) && c != ':' && c != ' ' && c != '\t'; i++ );
-
- equivalency = (c == ':' && string[i + 1] == '=');
-
- /* Mark the end of the command (or keyname). */
- if (string[i])
- string[i++] = '\0';
-
- /* If doing assignment, skip the '=' sign as well. */
- if (equivalency)
- string[i++] = '\0';
-
- /* If this is a command to set a variable, then do that. */
- if (_rl_stricmp (string, "set") == 0)
- {
- char *var = string + i;
- char *value;
-
- /* Make VAR point to start of variable name. */
- while (*var && whitespace (*var)) var++;
-
- /* Make VALUE point to start of value string. */
- value = var;
- while (*value && !whitespace (*value)) value++;
- if (*value)
- *value++ = '\0';
- while (*value && whitespace (*value)) value++;
-
- rl_variable_bind (var, value);
- return 0;
- }
-
- /* Skip any whitespace between keyname and funname. */
- for (; string[i] && whitespace (string[i]); i++);
- funname = &string[i];
-
- /* Now isolate funname.
- For straight function names just look for whitespace, since
- that will signify the end of the string. But this could be a
- macro definition. In that case, the string is quoted, so skip
- to the matching delimiter. We allow the backslash to quote the
- delimiter characters in the macro body. */
- /* This code exists to allow whitespace in macro expansions, which
- would otherwise be gobbled up by the next `for' loop.*/
- /* XXX - it may be desirable to allow backslash quoting only if " is
- the quoted string delimiter, like the shell. */
- if (*funname == '\'' || *funname == '"')
- {
- int delimiter = string[i++], passc;
-
- for (passc = 0; c = string[i]; i++)
- {
- if (passc)
- {
- passc = 0;
- continue;
- }
-
- if (c == '\\')
- {
- passc = 1;
- continue;
- }
-
- if (c == delimiter)
- break;
- }
- if (c)
- i++;
- }
-
- /* Advance to the end of the string. */
- for (; string[i] && !whitespace (string[i]); i++);
-
- /* No extra whitespace at the end of the string. */
- string[i] = '\0';
-
- /* Handle equivalency bindings here. Make the left-hand side be exactly
- whatever the right-hand evaluates to, including keymaps. */
- if (equivalency)
- {
- return 0;
- }
-
- /* If this is a new-style key-binding, then do the binding with
- rl_set_key (). Otherwise, let the older code deal with it. */
- if (*string == '"')
- {
- char *seq;
- register int j, k, passc;
-
- seq = (char *)xmalloc (1 + strlen (string));
- for (j = 1, k = passc = 0; string[j]; j++)
- {
- /* Allow backslash to quote characters, but leave them in place.
- This allows a string to end with a backslash quoting another
- backslash, or with a backslash quoting a double quote. The
- backslashes are left in place for rl_translate_keyseq (). */
- if (passc || (string[j] == '\\'))
- {
- seq[k++] = string[j];
- passc = !passc;
- continue;
- }
-
- if (string[j] == '"')
- break;
-
- seq[k++] = string[j];
- }
- seq[k] = '\0';
-
- /* Binding macro? */
- if (*funname == '\'' || *funname == '"')
- {
- j = strlen (funname);
-
- /* Remove the delimiting quotes from each end of FUNNAME. */
- if (j && funname[j - 1] == *funname)
- funname[j - 1] = '\0';
-
- rl_macro_bind (seq, &funname[1], _rl_keymap);
- }
- else
- rl_set_key (seq, rl_named_function (funname), _rl_keymap);
-
- free (seq);
- return 0;
- }
-
- /* Get the actual character we want to deal with. */
- kname = strrchr (string, '-');
- if (!kname)
- kname = string;
- else
- kname++;
-
- key = glean_key_from_name (kname);
-
- /* Add in control and meta bits. */
- if (substring_member_of_array (string, _rl_possible_control_prefixes))
- key = CTRL (_rl_to_upper (key));
-
- if (substring_member_of_array (string, _rl_possible_meta_prefixes))
- key = META (key);
-
- /* Temporary. Handle old-style keyname with macro-binding. */
- if (*funname == '\'' || *funname == '"')
- {
- char useq[2];
- int fl = strlen (funname);
-
- useq[0] = key; useq[1] = '\0';
- if (fl && funname[fl - 1] == *funname)
- funname[fl - 1] = '\0';
-
- rl_macro_bind (useq, &funname[1], _rl_keymap);
- }
-#if defined (PREFIX_META_HACK)
- /* Ugly, but working hack to keep prefix-meta around. */
- else if (_rl_stricmp (funname, "prefix-meta") == 0)
- {
- char seq[2];
-
- seq[0] = key;
- seq[1] = '\0';
- rl_generic_bind (ISKMAP, seq, (char *)emacs_meta_keymap, _rl_keymap);
- }
-#endif /* PREFIX_META_HACK */
- else
- rl_bind_key (key, rl_named_function (funname));
- return 0;
-}
-
-/* Simple structure for boolean readline variables (i.e., those that can
- have one of two values; either "On" or 1 for truth, or "Off" or 0 for
- false. */
-
-#define V_SPECIAL 0x1
-
-static struct {
- const char *name;
- int *value;
- int flags;
-} boolean_varlist [] = {
- { "blink-matching-paren", &rl_blink_matching_paren, V_SPECIAL },
- { "byte-oriented", &rl_byte_oriented, 0 },
- { "completion-ignore-case", &_rl_completion_case_fold, 0 },
- { "convert-meta", &_rl_convert_meta_chars_to_ascii, 0 },
- { "disable-completion", &rl_inhibit_completion, 0 },
- { "enable-keypad", &_rl_enable_keypad, 0 },
- { "expand-tilde", &rl_complete_with_tilde_expansion, 0 },
- { "history-preserve-point", &_rl_history_preserve_point, 0 },
- { "horizontal-scroll-mode", &_rl_horizontal_scroll_mode, 0 },
- { "input-meta", &_rl_meta_flag, 0 },
- { "mark-directories", &_rl_complete_mark_directories, 0 },
- { "mark-modified-lines", &_rl_mark_modified_lines, 0 },
- { "mark-symlinked-directories", &_rl_complete_mark_symlink_dirs, 0 },
- { "match-hidden-files", &_rl_match_hidden_files, 0 },
- { "meta-flag", &_rl_meta_flag, 0 },
- { "output-meta", &_rl_output_meta_chars, 0 },
- { "page-completions", &_rl_page_completions, 0 },
- { "prefer-visible-bell", &_rl_prefer_visible_bell, V_SPECIAL },
- { "print-completions-horizontally", &_rl_print_completions_horizontally, 0 },
- { "show-all-if-ambiguous", &_rl_complete_show_all, 0 },
-#if defined (VISIBLE_STATS)
- { "visible-stats", &rl_visible_stats, 0 },
-#endif /* VISIBLE_STATS */
- { (char *)NULL, (int *)NULL }
-};
-
-static int
-find_boolean_var (name)
- const char *name;
-{
- register int i;
-
- for (i = 0; boolean_varlist[i].name; i++)
- if (_rl_stricmp (name, boolean_varlist[i].name) == 0)
- return i;
- return -1;
-}
-
-/* Hooks for handling special boolean variables, where a
- function needs to be called or another variable needs
- to be changed when they're changed. */
-static void
-hack_special_boolean_var (i)
- int i;
-{
- const char *name;
-
- name = boolean_varlist[i].name;
-
- if (_rl_stricmp (name, "blink-matching-paren") == 0)
- _rl_enable_paren_matching (rl_blink_matching_paren);
- else if (_rl_stricmp (name, "prefer-visible-bell") == 0)
- {
- if (_rl_prefer_visible_bell)
- _rl_bell_preference = VISIBLE_BELL;
- else
- _rl_bell_preference = AUDIBLE_BELL;
- }
-}
-
-typedef int _rl_sv_func_t PARAMS((const char *));
-
-/* These *must* correspond to the array indices for the appropriate
- string variable. (Though they're not used right now.) */
-#define V_BELLSTYLE 0
-#define V_COMBEGIN 1
-#define V_EDITMODE 2
-#define V_ISRCHTERM 3
-#define V_KEYMAP 4
-
-#define V_STRING 1
-#define V_INT 2
-
-/* Forward declarations */
-static int sv_bell_style PARAMS((const char *));
-static int sv_combegin PARAMS((const char *));
-static int sv_compquery PARAMS((const char *));
-static int sv_editmode PARAMS((const char *));
-static int sv_isrchterm PARAMS((const char *));
-static int sv_keymap PARAMS((const char *));
-
-static struct {
- const char *name;
- int flags;
- _rl_sv_func_t *set_func;
-} string_varlist[] = {
- { "bell-style", V_STRING, sv_bell_style },
- { "comment-begin", V_STRING, sv_combegin },
- { "completion-query-items", V_INT, sv_compquery },
- { "editing-mode", V_STRING, sv_editmode },
- { "isearch-terminators", V_STRING, sv_isrchterm },
- { "keymap", V_STRING, sv_keymap },
- { (char *)NULL, 0 }
-};
-
-static int
-find_string_var (name)
- const char *name;
-{
- register int i;
-
- for (i = 0; string_varlist[i].name; i++)
- if (_rl_stricmp (name, string_varlist[i].name) == 0)
- return i;
- return -1;
-}
-
-/* A boolean value that can appear in a `set variable' command is true if
- the value is null or empty, `on' (case-insenstive), or "1". Any other
- values result in 0 (false). */
-static int
-bool_to_int (value)
- char *value;
-{
- return (value == 0 || *value == '\0' ||
- (_rl_stricmp (value, "on") == 0) ||
- (value[0] == '1' && value[1] == '\0'));
-}
-
-int
-rl_variable_bind (name, value)
- const char *name, *value;
-{
- register int i;
- int v;
-
- /* Check for simple variables first. */
- i = find_boolean_var (name);
- if (i >= 0)
- {
- *boolean_varlist[i].value = bool_to_int (value);
- if (boolean_varlist[i].flags & V_SPECIAL)
- hack_special_boolean_var (i);
- return 0;
- }
-
- i = find_string_var (name);
-
- /* For the time being, unknown variable names or string names without a
- handler function are simply ignored. */
- if (i < 0 || string_varlist[i].set_func == 0)
- return 0;
-
- v = (*string_varlist[i].set_func) (value);
- return v;
-}
-
-static int
-sv_editmode (value)
- const char *value;
-{
- if (_rl_strnicmp (value, "vi", 2) == 0)
- {
-#if defined (VI_MODE)
- _rl_keymap = vi_insertion_keymap;
- rl_editing_mode = vi_mode;
-#endif /* VI_MODE */
- return 0;
- }
- else if (_rl_strnicmp (value, "emacs", 5) == 0)
- {
- _rl_keymap = emacs_standard_keymap;
- rl_editing_mode = emacs_mode;
- return 0;
- }
- return 1;
-}
-
-static int
-sv_combegin (value)
- const char *value;
-{
- if (value && *value)
- {
- FREE (_rl_comment_begin);
- _rl_comment_begin = savestring (value);
- return 0;
- }
- return 1;
-}
-
-static int
-sv_compquery (value)
- const char *value;
-{
- int nval = 100;
-
- if (value && *value)
- {
- nval = atoi (value);
- if (nval < 0)
- nval = 0;
- }
- rl_completion_query_items = nval;
- return 0;
-}
-
-static int
-sv_keymap (value)
- const char *value;
-{
- Keymap kmap;
-
- kmap = rl_get_keymap_by_name (value);
- if (kmap)
- {
- rl_set_keymap (kmap);
- return 0;
- }
- return 1;
-}
-
-static int
-sv_bell_style (value)
- const char *value;
-{
- if (value == 0 || *value == '\0')
- _rl_bell_preference = AUDIBLE_BELL;
- else if (_rl_stricmp (value, "none") == 0 || _rl_stricmp (value, "off") == 0)
- _rl_bell_preference = NO_BELL;
- else if (_rl_stricmp (value, "audible") == 0 || _rl_stricmp (value, "on") == 0)
- _rl_bell_preference = AUDIBLE_BELL;
- else if (_rl_stricmp (value, "visible") == 0)
- _rl_bell_preference = VISIBLE_BELL;
- else
- return 1;
- return 0;
-}
-
-static int
-sv_isrchterm (value)
- const char *value;
-{
- int beg, end, delim;
- char *v;
-
- if (value == 0)
- return 1;
-
- /* Isolate the value and translate it into a character string. */
- v = savestring (value);
- FREE (_rl_isearch_terminators);
- if (v[0] == '"' || v[0] == '\'')
- {
- delim = v[0];
- for (beg = end = 1; v[end] && v[end] != delim; end++)
- ;
- }
- else
- {
- for (beg = end = 0; whitespace (v[end]) == 0; end++)
- ;
- }
-
- v[end] = '\0';
-
- /* The value starts at v + beg. Translate it into a character string. */
- _rl_isearch_terminators = (char *)xmalloc (2 * strlen (v) + 1);
- rl_translate_keyseq (v + beg, _rl_isearch_terminators, &end);
- _rl_isearch_terminators[end] = '\0';
-
- free (v);
- return 0;
-}
-
-/* Return the character which matches NAME.
- For example, `Space' returns ' '. */
-
-typedef struct {
- const char *name;
- int value;
-} assoc_list;
-
-static assoc_list name_key_alist[] = {
- { "DEL", 0x7f },
- { "ESC", '\033' },
- { "Escape", '\033' },
- { "LFD", '\n' },
- { "Newline", '\n' },
- { "RET", '\r' },
- { "Return", '\r' },
- { "Rubout", 0x7f },
- { "SPC", ' ' },
- { "Space", ' ' },
- { "Tab", 0x09 },
- { (char *)0x0, 0 }
-};
-
-static int
-glean_key_from_name (name)
- char *name;
-{
- register int i;
-
- for (i = 0; name_key_alist[i].name; i++)
- if (_rl_stricmp (name, name_key_alist[i].name) == 0)
- return (name_key_alist[i].value);
-
- return (*(unsigned char *)name); /* XXX was return (*name) */
-}
-
-/* Auxiliary functions to manage keymaps. */
-static struct {
- const char *name;
- Keymap map;
-} keymap_names[] = {
- { "emacs", emacs_standard_keymap },
- { "emacs-standard", emacs_standard_keymap },
- { "emacs-meta", emacs_meta_keymap },
- { "emacs-ctlx", emacs_ctlx_keymap },
-#if defined (VI_MODE)
- { "vi", vi_movement_keymap },
- { "vi-move", vi_movement_keymap },
- { "vi-command", vi_movement_keymap },
- { "vi-insert", vi_insertion_keymap },
-#endif /* VI_MODE */
- { (char *)0x0, (Keymap)0x0 }
-};
-
-Keymap
-rl_get_keymap_by_name (name)
- const char *name;
-{
- register int i;
-
- for (i = 0; keymap_names[i].name; i++)
- if (_rl_stricmp (name, keymap_names[i].name) == 0)
- return (keymap_names[i].map);
- return ((Keymap) NULL);
-}
-
-char *
-rl_get_keymap_name (map)
- Keymap map;
-{
- register int i;
- for (i = 0; keymap_names[i].name; i++)
- if (map == keymap_names[i].map)
- return ((char *)keymap_names[i].name);
- return ((char *)NULL);
-}
-
-void
-rl_set_keymap (map)
- Keymap map;
-{
- if (map)
- _rl_keymap = map;
-}
-
-Keymap
-rl_get_keymap ()
-{
- return (_rl_keymap);
-}
-
-void
-rl_set_keymap_from_edit_mode ()
-{
- if (rl_editing_mode == emacs_mode)
- _rl_keymap = emacs_standard_keymap;
-#if defined (VI_MODE)
- else if (rl_editing_mode == vi_mode)
- _rl_keymap = vi_insertion_keymap;
-#endif /* VI_MODE */
-}
-
-char *
-rl_get_keymap_name_from_edit_mode ()
-{
- if (rl_editing_mode == emacs_mode)
- return "emacs";
-#if defined (VI_MODE)
- else if (rl_editing_mode == vi_mode)
- return "vi";
-#endif /* VI_MODE */
- else
- return "none";
-}
-
-/* **************************************************************** */
-/* */
-/* Key Binding and Function Information */
-/* */
-/* **************************************************************** */
-
-/* Each of the following functions produces information about the
- state of keybindings and functions known to Readline. The info
- is always printed to rl_outstream, and in such a way that it can
- be read back in (i.e., passed to rl_parse_and_bind (). */
-
-/* Print the names of functions known to Readline. */
-void
-rl_list_funmap_names ()
-{
- register int i;
- const char **funmap_names;
-
- funmap_names = rl_funmap_names ();
-
- if (!funmap_names)
- return;
-
- for (i = 0; funmap_names[i]; i++)
- fprintf (rl_outstream, "%s\n", funmap_names[i]);
-
- free (funmap_names);
-}
-
-static char *
-_rl_get_keyname (key)
- int key;
-{
- char *keyname;
- int i, c;
-
- keyname = (char *)xmalloc (8);
-
- c = key;
- /* Since this is going to be used to write out keysequence-function
- pairs for possible inclusion in an inputrc file, we don't want to
- do any special meta processing on KEY. */
-
-#if 1
- /* XXX - Experimental */
- /* We might want to do this, but the old version of the code did not. */
-
- /* If this is an escape character, we don't want to do any more processing.
- Just add the special ESC key sequence and return. */
- if (c == ESC)
- {
- keyname[0] = '\\';
- keyname[1] = 'e';
- keyname[2] = '\0';
- return keyname;
- }
-#endif
-
- /* RUBOUT is translated directly into \C-? */
- if (key == RUBOUT)
- {
- keyname[0] = '\\';
- keyname[1] = 'C';
- keyname[2] = '-';
- keyname[3] = '?';
- keyname[4] = '\0';
- return keyname;
- }
-
- i = 0;
- /* Now add special prefixes needed for control characters. This can
- potentially change C. */
- if (CTRL_CHAR (c))
- {
- keyname[i++] = '\\';
- keyname[i++] = 'C';
- keyname[i++] = '-';
- c = _rl_to_lower (UNCTRL (c));
- }
-
- /* XXX experimental code. Turn the characters that are not ASCII or
- ISO Latin 1 (128 - 159) into octal escape sequences (\200 - \237).
- This changes C. */
- if (c >= 128 && c <= 159)
- {
- keyname[i++] = '\\';
- keyname[i++] = '2';
- c -= 128;
- keyname[i++] = (c / 8) + '0';
- c = (c % 8) + '0';
- }
-
- /* Now, if the character needs to be quoted with a backslash, do that. */
- if (c == '\\' || c == '"')
- keyname[i++] = '\\';
-
- /* Now add the key, terminate the string, and return it. */
- keyname[i++] = (char) c;
- keyname[i] = '\0';
-
- return keyname;
-}
-
-/* Return a NULL terminated array of strings which represent the key
- sequences that are used to invoke FUNCTION in MAP. */
-char **
-rl_invoking_keyseqs_in_map (function, map)
- rl_command_func_t *function;
- Keymap map;
-{
- register int key;
- char **result;
- int result_index, result_size;
-
- result = (char **)NULL;
- result_index = result_size = 0;
-
- for (key = 0; key < KEYMAP_SIZE; key++)
- {
- switch (map[key].type)
- {
- case ISMACR:
- /* Macros match, if, and only if, the pointers are identical.
- Thus, they are treated exactly like functions in here. */
- case ISFUNC:
- /* If the function in the keymap is the one we are looking for,
- then add the current KEY to the list of invoking keys. */
- if (map[key].function == function)
- {
- char *keyname;
-
- keyname = _rl_get_keyname (key);
-
- if (result_index + 2 > result_size)
- {
- result_size += 10;
- result = (char **)xrealloc (result, result_size * sizeof (char *));
- }
-
- result[result_index++] = keyname;
- result[result_index] = (char *)NULL;
- }
- break;
-
- case ISKMAP:
- {
- char **seqs;
- register int i;
-
- /* Find the list of keyseqs in this map which have FUNCTION as
- their target. Add the key sequences found to RESULT. */
- if (map[key].function)
- seqs =
- rl_invoking_keyseqs_in_map (function, FUNCTION_TO_KEYMAP (map, key));
- else
- break;
-
- if (seqs == 0)
- break;
-
- for (i = 0; seqs[i]; i++)
- {
- char *keyname = (char *)xmalloc (6 + strlen (seqs[i]));
-
- if (key == ESC)
-#if 0
- sprintf (keyname, "\\e");
-#else
- /* XXX - experimental */
- sprintf (keyname, "\\M-");
-#endif
- else if (CTRL_CHAR (key))
- sprintf (keyname, "\\C-%c", _rl_to_lower (UNCTRL (key)));
- else if (key == RUBOUT)
- sprintf (keyname, "\\C-?");
- else if (key == '\\' || key == '"')
- {
- keyname[0] = '\\';
- keyname[1] = (char) key;
- keyname[2] = '\0';
- }
- else
- {
- keyname[0] = (char) key;
- keyname[1] = '\0';
- }
-
- strcat (keyname, seqs[i]);
- free (seqs[i]);
-
- if (result_index + 2 > result_size)
- {
- result_size += 10;
- result = (char **)xrealloc (result, result_size * sizeof (char *));
- }
-
- result[result_index++] = keyname;
- result[result_index] = (char *)NULL;
- }
-
- free (seqs);
- }
- break;
- }
- }
- return (result);
-}
-
-/* Return a NULL terminated array of strings which represent the key
- sequences that can be used to invoke FUNCTION using the current keymap. */
-char **
-rl_invoking_keyseqs (function)
- rl_command_func_t *function;
-{
- return (rl_invoking_keyseqs_in_map (function, _rl_keymap));
-}
-
-/* Print all of the functions and their bindings to rl_outstream. If
- PRINT_READABLY is non-zero, then print the output in such a way
- that it can be read back in. */
-void
-rl_function_dumper (print_readably)
- int print_readably;
-{
- register int i;
- const char **names;
- const char *name;
-
- names = rl_funmap_names ();
-
- fprintf (rl_outstream, "\n");
-
- for (i = 0; name = names[i]; i++)
- {
- rl_command_func_t *function;
- char **invokers;
-
- function = rl_named_function (name);
- invokers = rl_invoking_keyseqs_in_map (function, _rl_keymap);
-
- if (print_readably)
- {
- if (!invokers)
- fprintf (rl_outstream, "# %s (not bound)\n", name);
- else
- {
- register int j;
-
- for (j = 0; invokers[j]; j++)
- {
- fprintf (rl_outstream, "\"%s\": %s\n",
- invokers[j], name);
- free (invokers[j]);
- }
-
- free (invokers);
- }
- }
- else
- {
- if (!invokers)
- fprintf (rl_outstream, "%s is not bound to any keys\n",
- name);
- else
- {
- register int j;
-
- fprintf (rl_outstream, "%s can be found on ", name);
-
- for (j = 0; invokers[j] && j < 5; j++)
- {
- fprintf (rl_outstream, "\"%s\"%s", invokers[j],
- invokers[j + 1] ? ", " : ".\n");
- }
-
- if (j == 5 && invokers[j])
- fprintf (rl_outstream, "...\n");
-
- for (j = 0; invokers[j]; j++)
- free (invokers[j]);
-
- free (invokers);
- }
- }
- }
-}
-
-/* Print all of the current functions and their bindings to
- rl_outstream. If an explicit argument is given, then print
- the output in such a way that it can be read back in. */
-int
-rl_dump_functions (count, key)
- int count, key;
-{
- if (rl_dispatching)
- fprintf (rl_outstream, "\r\n");
- rl_function_dumper (rl_explicit_arg);
- rl_on_new_line ();
- return (0);
-}
-
-static void
-_rl_macro_dumper_internal (print_readably, map, prefix)
- int print_readably;
- Keymap map;
- char *prefix;
-{
- register int key;
- char *keyname, *out;
- int prefix_len;
-
- for (key = 0; key < KEYMAP_SIZE; key++)
- {
- switch (map[key].type)
- {
- case ISMACR:
- keyname = _rl_get_keyname (key);
- out = _rl_untranslate_macro_value ((char *)map[key].function);
-
- if (print_readably)
- fprintf (rl_outstream, "\"%s%s\": \"%s\"\n", prefix ? prefix : "",
- keyname,
- out ? out : "");
- else
- fprintf (rl_outstream, "%s%s outputs %s\n", prefix ? prefix : "",
- keyname,
- out ? out : "");
- free (keyname);
- free (out);
- break;
- case ISFUNC:
- break;
- case ISKMAP:
- prefix_len = prefix ? strlen (prefix) : 0;
- if (key == ESC)
- {
- keyname = (char *)xmalloc (3 + prefix_len);
- if (prefix)
- strcpy (keyname, prefix);
- keyname[prefix_len] = '\\';
- keyname[prefix_len + 1] = 'e';
- keyname[prefix_len + 2] = '\0';
- }
- else
- {
- keyname = _rl_get_keyname (key);
- if (prefix)
- {
- out = (char *)xmalloc (strlen (keyname) + prefix_len + 1);
- strcpy (out, prefix);
- strcpy (out + prefix_len, keyname);
- free (keyname);
- keyname = out;
- }
- }
-
- _rl_macro_dumper_internal (print_readably, FUNCTION_TO_KEYMAP (map, key), keyname);
- free (keyname);
- break;
- }
- }
-}
-
-void
-rl_macro_dumper (print_readably)
- int print_readably;
-{
- _rl_macro_dumper_internal (print_readably, _rl_keymap, (char *)NULL);
-}
-
-int
-rl_dump_macros (count, key)
- int count, key;
-{
- if (rl_dispatching)
- fprintf (rl_outstream, "\r\n");
- rl_macro_dumper (rl_explicit_arg);
- rl_on_new_line ();
- return (0);
-}
-
-void
-rl_variable_dumper (print_readably)
- int print_readably;
-{
- int i;
- const char *kname;
-
- for (i = 0; boolean_varlist[i].name; i++)
- {
- if (print_readably)
- fprintf (rl_outstream, "set %s %s\n", boolean_varlist[i].name,
- *boolean_varlist[i].value ? "on" : "off");
- else
- fprintf (rl_outstream, "%s is set to `%s'\n", boolean_varlist[i].name,
- *boolean_varlist[i].value ? "on" : "off");
- }
-
- /* bell-style */
- switch (_rl_bell_preference)
- {
- case NO_BELL:
- kname = "none"; break;
- case VISIBLE_BELL:
- kname = "visible"; break;
- case AUDIBLE_BELL:
- default:
- kname = "audible"; break;
- }
- if (print_readably)
- fprintf (rl_outstream, "set bell-style %s\n", kname);
- else
- fprintf (rl_outstream, "bell-style is set to `%s'\n", kname);
-
- /* comment-begin */
- if (print_readably)
- fprintf (rl_outstream, "set comment-begin %s\n", _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT);
- else
- fprintf (rl_outstream, "comment-begin is set to `%s'\n", _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT);
-
- /* completion-query-items */
- if (print_readably)
- fprintf (rl_outstream, "set completion-query-items %d\n", rl_completion_query_items);
- else
- fprintf (rl_outstream, "completion-query-items is set to `%d'\n", rl_completion_query_items);
-
- /* editing-mode */
- if (print_readably)
- fprintf (rl_outstream, "set editing-mode %s\n", (rl_editing_mode == emacs_mode) ? "emacs" : "vi");
- else
- fprintf (rl_outstream, "editing-mode is set to `%s'\n", (rl_editing_mode == emacs_mode) ? "emacs" : "vi");
-
- /* isearch-terminators */
- if (_rl_isearch_terminators)
- {
- char *disp;
-
- disp = _rl_untranslate_macro_value (_rl_isearch_terminators);
-
- if (print_readably)
- fprintf (rl_outstream, "set isearch-terminators \"%s\"\n", disp);
- else
- fprintf (rl_outstream, "isearch-terminators is set to \"%s\"\n", disp);
-
- free (disp);
- }
-
- /* keymap */
- kname = rl_get_keymap_name (_rl_keymap);
- if (kname == 0)
- kname = rl_get_keymap_name_from_edit_mode ();
- if (print_readably)
- fprintf (rl_outstream, "set keymap %s\n", kname ? kname : "none");
- else
- fprintf (rl_outstream, "keymap is set to `%s'\n", kname ? kname : "none");
-}
-
-/* Print all of the current variables and their values to
- rl_outstream. If an explicit argument is given, then print
- the output in such a way that it can be read back in. */
-int
-rl_dump_variables (count, key)
- int count, key;
-{
- if (rl_dispatching)
- fprintf (rl_outstream, "\r\n");
- rl_variable_dumper (rl_explicit_arg);
- rl_on_new_line ();
- return (0);
-}
-
-/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right
- now, this is always used to attempt to bind the arrow keys, hence the
- check for rl_vi_movement_mode. */
-void
-_rl_bind_if_unbound (keyseq, default_func)
- const char *keyseq;
- rl_command_func_t *default_func;
-{
- rl_command_func_t *func;
-
- if (keyseq)
- {
- func = rl_function_of_keyseq (keyseq, _rl_keymap, (int *)NULL);
-#if defined (VI_MODE)
- if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode)
-#else
- if (!func || func == rl_do_lowercase_version)
-#endif
- rl_set_key (keyseq, default_func, _rl_keymap);
- }
-}
-
-/* Return non-zero if any members of ARRAY are a substring in STRING. */
-static int
-substring_member_of_array (string, array)
- char *string;
- const char **array;
-{
- while (*array)
- {
- if (_rl_strindex (string, *array))
- return (1);
- array++;
- }
- return (0);
-}
diff --git a/readline-4.3.orig/callback.c b/readline-4.3.orig/callback.c
deleted file mode 100644
index a8f4323..0000000
--- a/readline-4.3.orig/callback.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* callback.c -- functions to use readline as an X `callback' mechanism. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include "rlconf.h"
-
-#if defined (READLINE_CALLBACKS)
-
-#include <sys/types.h>
-
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "readline.h"
-#include "rlprivate.h"
-
-/* **************************************************************** */
-/* */
-/* Callback Readline Functions */
-/* */
-/* **************************************************************** */
-
-/* Allow using readline in situations where a program may have multiple
- things to handle at once, and dispatches them via select(). Call
- rl_callback_handler_install() with the prompt and a function to call
- whenever a complete line of input is ready. The user must then
- call rl_callback_read_char() every time some input is available, and
- rl_callback_read_char() will call the user's function with the complete
- text read in at each end of line. The terminal is kept prepped and
- signals handled all the time, except during calls to the user's function. */
-
-rl_vcpfunc_t *rl_linefunc; /* user callback function */
-static int in_handler; /* terminal_prepped and signals set? */
-
-/* Make sure the terminal is set up, initialize readline, and prompt. */
-static void
-_rl_callback_newline ()
-{
- rl_initialize ();
-
- if (in_handler == 0)
- {
- in_handler = 1;
-
- (*rl_prep_term_function) (_rl_meta_flag);
-
-#if defined (HANDLE_SIGNALS)
- rl_set_signals ();
-#endif
- }
-
- readline_internal_setup ();
-}
-
-/* Install a readline handler, set up the terminal, and issue the prompt. */
-void
-rl_callback_handler_install (prompt, linefunc)
- const char *prompt;
- rl_vcpfunc_t *linefunc;
-{
- rl_set_prompt (prompt);
- rl_linefunc = linefunc;
- _rl_callback_newline ();
-}
-
-/* Read one character, and dispatch to the handler if it ends the line. */
-void
-rl_callback_read_char ()
-{
- char *line;
- int eof;
-
- if (rl_linefunc == NULL)
- {
- fprintf (stderr, "readline: readline_callback_read_char() called with no handler!\r\n");
- abort ();
- }
-
- eof = readline_internal_char ();
-
- /* We loop in case some function has pushed input back with rl_execute_next. */
- for (;;)
- {
- if (rl_done)
- {
- line = readline_internal_teardown (eof);
-
- (*rl_deprep_term_function) ();
-#if defined (HANDLE_SIGNALS)
- rl_clear_signals ();
-#endif
- in_handler = 0;
- (*rl_linefunc) (line);
-
- /* If the user did not clear out the line, do it for him. */
- if (rl_line_buffer[0])
- _rl_init_line_state ();
-
- /* Redisplay the prompt if readline_handler_{install,remove}
- not called. */
- if (in_handler == 0 && rl_linefunc)
- _rl_callback_newline ();
- }
- if (rl_pending_input)
- eof = readline_internal_char ();
- else
- break;
- }
-}
-
-/* Remove the handler, and make sure the terminal is in its normal state. */
-void
-rl_callback_handler_remove ()
-{
- rl_linefunc = NULL;
- if (in_handler)
- {
- in_handler = 0;
- (*rl_deprep_term_function) ();
-#if defined (HANDLE_SIGNALS)
- rl_clear_signals ();
-#endif
- }
-}
-
-#endif
diff --git a/readline-4.3.orig/chardefs.h b/readline-4.3.orig/chardefs.h
deleted file mode 100644
index a537be2..0000000
--- a/readline-4.3.orig/chardefs.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* chardefs.h -- Character definitions for readline. */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _CHARDEFS_H_
-#define _CHARDEFS_H_
-
-#include <ctype.h>
-
-#if defined (HAVE_CONFIG_H)
-# if defined (HAVE_STRING_H)
-# if ! defined (STDC_HEADERS) && defined (HAVE_MEMORY_H)
-# include <memory.h>
-# endif
-# include <string.h>
-# endif /* HAVE_STRING_H */
-# if defined (HAVE_STRINGS_H)
-# include <strings.h>
-# endif /* HAVE_STRINGS_H */
-#else
-# include <string.h>
-#endif /* !HAVE_CONFIG_H */
-
-#ifndef whitespace
-#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
-#endif
-
-#ifdef CTRL
-# undef CTRL
-#endif
-#ifdef UNCTRL
-# undef UNCTRL
-#endif
-
-/* Some character stuff. */
-#define control_character_threshold 0x020 /* Smaller than this is control. */
-#define control_character_mask 0x1f /* 0x20 - 1 */
-#define meta_character_threshold 0x07f /* Larger than this is Meta. */
-#define control_character_bit 0x40 /* 0x000000, must be off. */
-#define meta_character_bit 0x080 /* x0000000, must be on. */
-#define largest_char 255 /* Largest character value. */
-
-#define CTRL_CHAR(c) ((c) < control_character_threshold && (((c) & 0x80) == 0))
-#define META_CHAR(c) ((c) > meta_character_threshold && (c) <= largest_char)
-
-#define CTRL(c) ((c) & control_character_mask)
-#define META(c) ((c) | meta_character_bit)
-
-#define UNMETA(c) ((c) & (~meta_character_bit))
-#define UNCTRL(c) _rl_to_upper(((c)|control_character_bit))
-
-#if defined STDC_HEADERS || (!defined (isascii) && !defined (HAVE_ISASCII))
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) isascii(c)
-#endif
-
-#if !defined (isxdigit) && !defined (HAVE_ISXDIGIT)
-# define isxdigit(c) (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
-#endif
-
-#define NON_NEGATIVE(c) ((unsigned char)(c) == (c))
-
-/* Some systems define these; we want our definitions. */
-#undef ISPRINT
-
-#define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c))
-#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c))
-#define ISDIGIT(c) (IN_CTYPE_DOMAIN (c) && isdigit (c))
-#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (c))
-#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
-#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
-#define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (c))
-
-#define _rl_lowercase_p(c) (NON_NEGATIVE(c) && ISLOWER(c))
-#define _rl_uppercase_p(c) (NON_NEGATIVE(c) && ISUPPER(c))
-#define _rl_digit_p(c) ((c) >= '0' && (c) <= '9')
-
-#define _rl_pure_alphabetic(c) (NON_NEGATIVE(c) && ISALPHA(c))
-#define ALPHABETIC(c) (NON_NEGATIVE(c) && ISALNUM(c))
-
-#ifndef _rl_to_upper
-# define _rl_to_upper(c) (_rl_lowercase_p(c) ? toupper((unsigned char)c) : (c))
-# define _rl_to_lower(c) (_rl_uppercase_p(c) ? tolower((unsigned char)c) : (c))
-#endif
-
-#ifndef _rl_digit_value
-# define _rl_digit_value(x) ((x) - '0')
-#endif
-
-#ifndef _rl_isident
-# define _rl_isident(c) (ISALNUM(c) || (c) == '_')
-#endif
-
-#ifndef ISOCTAL
-# define ISOCTAL(c) ((c) >= '0' && (c) <= '7')
-#endif
-#define OCTVALUE(c) ((c) - '0')
-
-#define HEXVALUE(c) \
- (((c) >= 'a' && (c) <= 'f') \
- ? (c)-'a'+10 \
- : (c) >= 'A' && (c) <= 'F' ? (c)-'A'+10 : (c)-'0')
-
-#ifndef NEWLINE
-#define NEWLINE '\n'
-#endif
-
-#ifndef RETURN
-#define RETURN CTRL('M')
-#endif
-
-#ifndef RUBOUT
-#define RUBOUT 0x7f
-#endif
-
-#ifndef TAB
-#define TAB '\t'
-#endif
-
-#ifdef ABORT_CHAR
-#undef ABORT_CHAR
-#endif
-#define ABORT_CHAR CTRL('G')
-
-#ifdef PAGE
-#undef PAGE
-#endif
-#define PAGE CTRL('L')
-
-#ifdef SPACE
-#undef SPACE
-#endif
-#define SPACE ' ' /* XXX - was 0x20 */
-
-#ifdef ESC
-#undef ESC
-#endif
-#define ESC CTRL('[')
-
-#endif /* _CHARDEFS_H_ */
diff --git a/readline-4.3.orig/compat.c b/readline-4.3.orig/compat.c
deleted file mode 100644
index a66d210..0000000
--- a/readline-4.3.orig/compat.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* compat.c -- backwards compatibility functions. */
-
-/* Copyright (C) 2000 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#include "rlstdc.h"
-#include "rltypedefs.h"
-
-extern void rl_free_undo_list PARAMS((void));
-extern int rl_maybe_save_line PARAMS((void));
-extern int rl_maybe_unsave_line PARAMS((void));
-extern int rl_maybe_replace_line PARAMS((void));
-
-extern int rl_crlf PARAMS((void));
-extern int rl_ding PARAMS((void));
-extern int rl_alphabetic PARAMS((int));
-
-extern char **rl_completion_matches PARAMS((const char *, rl_compentry_func_t *));
-extern char *rl_username_completion_function PARAMS((const char *, int));
-extern char *rl_filename_completion_function PARAMS((const char *, int));
-
-/* Provide backwards-compatible entry points for old function names. */
-
-void
-free_undo_list ()
-{
- rl_free_undo_list ();
-}
-
-int
-maybe_replace_line ()
-{
- return rl_maybe_replace_line ();
-}
-
-int
-maybe_save_line ()
-{
- return rl_maybe_save_line ();
-}
-
-int
-maybe_unsave_line ()
-{
- return rl_maybe_unsave_line ();
-}
-
-int
-ding ()
-{
- return rl_ding ();
-}
-
-int
-crlf ()
-{
- return rl_crlf ();
-}
-
-int
-alphabetic (c)
- int c;
-{
- return rl_alphabetic (c);
-}
-
-char **
-completion_matches (s, f)
- const char *s;
- rl_compentry_func_t *f;
-{
- return rl_completion_matches (s, f);
-}
-
-char *
-username_completion_function (s, i)
- const char *s;
- int i;
-{
- return rl_username_completion_function (s, i);
-}
-
-char *
-filename_completion_function (s, i)
- const char *s;
- int i;
-{
- return rl_filename_completion_function (s, i);
-}
diff --git a/readline-4.3.orig/complete.c b/readline-4.3.orig/complete.c
deleted file mode 100644
index 21a9d70..0000000
--- a/readline-4.3.orig/complete.c
+++ /dev/null
@@ -1,2004 +0,0 @@
-/* complete.c -- filename completion for readline. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-#include <sys/file.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-#include <errno.h>
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-#include <pwd.h>
-
-#include "posixdir.h"
-#include "posixstat.h"
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "xmalloc.h"
-#include "rlprivate.h"
-
-#ifdef __STDC__
-typedef int QSFUNC (const void *, const void *);
-#else
-typedef int QSFUNC ();
-#endif
-
-#ifdef HAVE_LSTAT
-# define LSTAT lstat
-#else
-# define LSTAT stat
-#endif
-
-/* Unix version of a hidden file. Could be different on other systems. */
-#define HIDDEN_FILE(fname) ((fname)[0] == '.')
-
-/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
- defined. */
-#if !defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE)
-extern struct passwd *getpwent PARAMS((void));
-#endif /* !HAVE_GETPW_DECLS || _POSIX_SOURCE */
-
-/* If non-zero, then this is the address of a function to call when
- completing a word would normally display the list of possible matches.
- This function is called instead of actually doing the display.
- It takes three arguments: (char **matches, int num_matches, int max_length)
- where MATCHES is the array of strings that matched, NUM_MATCHES is the
- number of strings in that array, and MAX_LENGTH is the length of the
- longest string in that array. */
-rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;
-
-#if defined (VISIBLE_STATS)
-# if !defined (X_OK)
-# define X_OK 1
-# endif
-static int stat_char PARAMS((char *));
-#endif
-
-static char *rl_quote_filename PARAMS((char *, int, char *));
-
-static void set_completion_defaults PARAMS((int));
-static int get_y_or_n PARAMS((int));
-static int _rl_internal_pager PARAMS((int));
-static char *printable_part PARAMS((char *));
-static int print_filename PARAMS((char *, char *));
-
-static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
-
-static char **remove_duplicate_matches PARAMS((char **));
-static void insert_match PARAMS((char *, int, int, char *));
-static int append_to_match PARAMS((char *, int, int, int));
-static void insert_all_matches PARAMS((char **, int, char *));
-static void display_matches PARAMS((char **));
-static int compute_lcd_of_matches PARAMS((char **, int, const char *));
-static int postprocess_matches PARAMS((char ***, int));
-
-static char *make_quoted_replacement PARAMS((char *, int, char *));
-
-/* **************************************************************** */
-/* */
-/* Completion matching, from readline's point of view. */
-/* */
-/* **************************************************************** */
-
-/* Variables known only to the readline library. */
-
-/* If non-zero, non-unique completions always show the list of matches. */
-int _rl_complete_show_all = 0;
-
-/* If non-zero, completed directory names have a slash appended. */
-int _rl_complete_mark_directories = 1;
-
-/* If non-zero, the symlinked directory completion behavior introduced in
- readline-4.2a is disabled, and symlinks that point to directories have
- a slash appended (subject to the value of _rl_complete_mark_directories).
- This is user-settable via the mark-symlinked-directories variable. */
-int _rl_complete_mark_symlink_dirs = 0;
-
-/* If non-zero, completions are printed horizontally in alphabetical order,
- like `ls -x'. */
-int _rl_print_completions_horizontally;
-
-/* Non-zero means that case is not significant in filename completion. */
-#if defined (__MSDOS__) && !defined (__DJGPP__)
-int _rl_completion_case_fold = 1;
-#else
-int _rl_completion_case_fold;
-#endif
-
-/* If non-zero, don't match hidden files (filenames beginning with a `.' on
- Unix) when doing filename completion. */
-int _rl_match_hidden_files = 1;
-
-/* Global variables available to applications using readline. */
-
-#if defined (VISIBLE_STATS)
-/* Non-zero means add an additional character to each filename displayed
- during listing completion iff rl_filename_completion_desired which helps
- to indicate the type of file being listed. */
-int rl_visible_stats = 0;
-#endif /* VISIBLE_STATS */
-
-/* If non-zero, then this is the address of a function to call when
- completing on a directory name. The function is called with
- the address of a string (the current directory name) as an arg. */
-rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
-
-rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
-
-/* Non-zero means readline completion functions perform tilde expansion. */
-int rl_complete_with_tilde_expansion = 0;
-
-/* Pointer to the generator function for completion_matches ().
- NULL means to use rl_filename_completion_function (), the default filename
- completer. */
-rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL;
-
-/* Pointer to alternative function to create matches.
- Function is called with TEXT, START, and END.
- START and END are indices in RL_LINE_BUFFER saying what the boundaries
- of TEXT are.
- If this function exists and returns NULL then call the value of
- rl_completion_entry_function to try to match, otherwise use the
- array of strings returned. */
-rl_completion_func_t *rl_attempted_completion_function = (rl_completion_func_t *)NULL;
-
-/* Non-zero means to suppress normal filename completion after the
- user-specified completion function has been called. */
-int rl_attempted_completion_over = 0;
-
-/* Set to a character indicating the type of completion being performed
- by rl_complete_internal, available for use by application completion
- functions. */
-int rl_completion_type = 0;
-
-/* Up to this many items will be displayed in response to a
- possible-completions call. After that, we ask the user if
- she is sure she wants to see them all. */
-int rl_completion_query_items = 100;
-
-int _rl_page_completions = 1;
-
-/* The basic list of characters that signal a break between words for the
- completer routine. The contents of this variable is what breaks words
- in the shell, i.e. " \t\n\"\\'`@$><=" */
-const char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{("; /* }) */
-
-/* List of basic quoting characters. */
-const char *rl_basic_quote_characters = "\"'";
-
-/* The list of characters that signal a break between words for
- rl_complete_internal. The default list is the contents of
- rl_basic_word_break_characters. */
-const char *rl_completer_word_break_characters = (const char *)NULL;
-
-/* List of characters which can be used to quote a substring of the line.
- Completion occurs on the entire substring, and within the substring
- rl_completer_word_break_characters are treated as any other character,
- unless they also appear within this list. */
-const char *rl_completer_quote_characters = (const char *)NULL;
-
-/* List of characters that should be quoted in filenames by the completer. */
-const char *rl_filename_quote_characters = (const char *)NULL;
-
-/* List of characters that are word break characters, but should be left
- in TEXT when it is passed to the completion function. The shell uses
- this to help determine what kind of completing to do. */
-const char *rl_special_prefixes = (const char *)NULL;
-
-/* If non-zero, then disallow duplicates in the matches. */
-int rl_ignore_completion_duplicates = 1;
-
-/* Non-zero means that the results of the matches are to be treated
- as filenames. This is ALWAYS zero on entry, and can only be changed
- within a completion entry finder function. */
-int rl_filename_completion_desired = 0;
-
-/* Non-zero means that the results of the matches are to be quoted using
- double quotes (or an application-specific quoting mechanism) if the
- filename contains any characters in rl_filename_quote_chars. This is
- ALWAYS non-zero on entry, and can only be changed within a completion
- entry finder function. */
-int rl_filename_quoting_desired = 1;
-
-/* This function, if defined, is called by the completer when real
- filename completion is done, after all the matching names have been
- generated. It is passed a (char**) known as matches in the code below.
- It consists of a NULL-terminated array of pointers to potential
- matching strings. The 1st element (matches[0]) is the maximal
- substring that is common to all matches. This function can re-arrange
- the list of matches as required, but all elements of the array must be
- free()'d if they are deleted. The main intent of this function is
- to implement FIGNORE a la SunOS csh. */
-rl_compignore_func_t *rl_ignore_some_completions_function = (rl_compignore_func_t *)NULL;
-
-/* Set to a function to quote a filename in an application-specific fashion.
- Called with the text to quote, the type of match found (single or multiple)
- and a pointer to the quoting character to be used, which the function can
- reset if desired. */
-rl_quote_func_t *rl_filename_quoting_function = rl_quote_filename;
-
-/* Function to call to remove quoting characters from a filename. Called
- before completion is attempted, so the embedded quotes do not interfere
- with matching names in the file system. Readline doesn't do anything
- with this; it's set only by applications. */
-rl_dequote_func_t *rl_filename_dequoting_function = (rl_dequote_func_t *)NULL;
-
-/* Function to call to decide whether or not a word break character is
- quoted. If a character is quoted, it does not break words for the
- completer. */
-rl_linebuf_func_t *rl_char_is_quoted_p = (rl_linebuf_func_t *)NULL;
-
-/* If non-zero, the completion functions don't append anything except a
- possible closing quote. This is set to 0 by rl_complete_internal and
- may be changed by an application-specific completion function. */
-int rl_completion_suppress_append = 0;
-
-/* Character appended to completed words when at the end of the line. The
- default is a space. */
-int rl_completion_append_character = ' ';
-
-/* If non-zero, a slash will be appended to completed filenames that are
- symbolic links to directory names, subject to the value of the
- mark-directories variable (which is user-settable). This exists so
- that application completion functions can override the user's preference
- (set via the mark-symlinked-directories variable) if appropriate.
- It's set to the value of _rl_complete_mark_symlink_dirs in
- rl_complete_internal before any application-specific completion
- function is called, so without that function doing anything, the user's
- preferences are honored. */
-int rl_completion_mark_symlink_dirs;
-
-/* If non-zero, inhibit completion (temporarily). */
-int rl_inhibit_completion;
-
-/* Variables local to this file. */
-
-/* Local variable states what happened during the last completion attempt. */
-static int completion_changed_buffer;
-
-/*************************************/
-/* */
-/* Bindable completion functions */
-/* */
-/*************************************/
-
-/* Complete the word at or before point. You have supplied the function
- that does the initial simple matching selection algorithm (see
- rl_completion_matches ()). The default is to do filename completion. */
-int
-rl_complete (ignore, invoking_key)
- int ignore, invoking_key;
-{
- if (rl_inhibit_completion)
- return (_rl_insert_char (ignore, invoking_key));
- else if (rl_last_func == rl_complete && !completion_changed_buffer)
- return (rl_complete_internal ('?'));
- else if (_rl_complete_show_all)
- return (rl_complete_internal ('!'));
- else
- return (rl_complete_internal (TAB));
-}
-
-/* List the possible completions. See description of rl_complete (). */
-int
-rl_possible_completions (ignore, invoking_key)
- int ignore, invoking_key;
-{
- return (rl_complete_internal ('?'));
-}
-
-int
-rl_insert_completions (ignore, invoking_key)
- int ignore, invoking_key;
-{
- return (rl_complete_internal ('*'));
-}
-
-/* Return the correct value to pass to rl_complete_internal performing
- the same tests as rl_complete. This allows consecutive calls to an
- application's completion function to list possible completions and for
- an application-specific completion function to honor the
- show-all-if-ambiguous readline variable. */
-int
-rl_completion_mode (cfunc)
- rl_command_func_t *cfunc;
-{
- if (rl_last_func == cfunc && !completion_changed_buffer)
- return '?';
- else if (_rl_complete_show_all)
- return '!';
- else
- return TAB;
-}
-
-/************************************/
-/* */
-/* Completion utility functions */
-/* */
-/************************************/
-
-/* Set default values for readline word completion. These are the variables
- that application completion functions can change or inspect. */
-static void
-set_completion_defaults (what_to_do)
- int what_to_do;
-{
- /* Only the completion entry function can change these. */
- rl_filename_completion_desired = 0;
- rl_filename_quoting_desired = 1;
- rl_completion_type = what_to_do;
- rl_completion_suppress_append = 0;
-
- /* The completion entry function may optionally change this. */
- rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
-}
-
-/* The user must press "y" or "n". Non-zero return means "y" pressed. */
-static int
-get_y_or_n (for_pager)
- int for_pager;
-{
- int c;
-
- for (;;)
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (c == 'y' || c == 'Y' || c == ' ')
- return (1);
- if (c == 'n' || c == 'N' || c == RUBOUT)
- return (0);
- if (c == ABORT_CHAR)
- _rl_abort_internal ();
- if (for_pager && (c == NEWLINE || c == RETURN))
- return (2);
- if (for_pager && (c == 'q' || c == 'Q'))
- return (0);
- rl_ding ();
- }
-}
-
-static int
-_rl_internal_pager (lines)
- int lines;
-{
- int i;
-
- fprintf (rl_outstream, "--More--");
- fflush (rl_outstream);
- i = get_y_or_n (1);
- _rl_erase_entire_line ();
- if (i == 0)
- return -1;
- else if (i == 2)
- return (lines - 1);
- else
- return 0;
-}
-
-#if defined (VISIBLE_STATS)
-/* Return the character which best describes FILENAME.
- `@' for symbolic links
- `/' for directories
- `*' for executables
- `=' for sockets
- `|' for FIFOs
- `%' for character special devices
- `#' for block special devices */
-static int
-stat_char (filename)
- char *filename;
-{
- struct stat finfo;
- int character, r;
-
-#if defined (HAVE_LSTAT) && defined (S_ISLNK)
- r = lstat (filename, &finfo);
-#else
- r = stat (filename, &finfo);
-#endif
-
- if (r == -1)
- return (0);
-
- character = 0;
- if (S_ISDIR (finfo.st_mode))
- character = '/';
-#if defined (S_ISCHR)
- else if (S_ISCHR (finfo.st_mode))
- character = '%';
-#endif /* S_ISCHR */
-#if defined (S_ISBLK)
- else if (S_ISBLK (finfo.st_mode))
- character = '#';
-#endif /* S_ISBLK */
-#if defined (S_ISLNK)
- else if (S_ISLNK (finfo.st_mode))
- character = '@';
-#endif /* S_ISLNK */
-#if defined (S_ISSOCK)
- else if (S_ISSOCK (finfo.st_mode))
- character = '=';
-#endif /* S_ISSOCK */
-#if defined (S_ISFIFO)
- else if (S_ISFIFO (finfo.st_mode))
- character = '|';
-#endif
- else if (S_ISREG (finfo.st_mode))
- {
- if (access (filename, X_OK) == 0)
- character = '*';
- }
- return (character);
-}
-#endif /* VISIBLE_STATS */
-
-/* Return the portion of PATHNAME that should be output when listing
- possible completions. If we are hacking filename completion, we
- are only interested in the basename, the portion following the
- final slash. Otherwise, we return what we were passed. Since
- printing empty strings is not very informative, if we're doing
- filename completion, and the basename is the empty string, we look
- for the previous slash and return the portion following that. If
- there's no previous slash, we just return what we were passed. */
-static char *
-printable_part (pathname)
- char *pathname;
-{
- char *temp, *x;
-
- if (rl_filename_completion_desired == 0) /* don't need to do anything */
- return (pathname);
-
- temp = strrchr (pathname, '/');
-#if defined (__MSDOS__)
- if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
- temp = pathname + 1;
-#endif
-
- if (temp == 0 || *temp == '\0')
- return (pathname);
- /* If the basename is NULL, we might have a pathname like '/usr/src/'.
- Look for a previous slash and, if one is found, return the portion
- following that slash. If there's no previous slash, just return the
- pathname we were passed. */
- else if (temp[1] == '\0')
- {
- for (x = temp - 1; x > pathname; x--)
- if (*x == '/')
- break;
- return ((*x == '/') ? x + 1 : pathname);
- }
- else
- return ++temp;
-}
-
-/* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and we
- are using it, check for and output a single character for `special'
- filenames. Return the number of characters we output. */
-
-#define PUTX(c) \
- do { \
- if (CTRL_CHAR (c)) \
- { \
- putc ('^', rl_outstream); \
- putc (UNCTRL (c), rl_outstream); \
- printed_len += 2; \
- } \
- else if (c == RUBOUT) \
- { \
- putc ('^', rl_outstream); \
- putc ('?', rl_outstream); \
- printed_len += 2; \
- } \
- else \
- { \
- putc (c, rl_outstream); \
- printed_len++; \
- } \
- } while (0)
-
-static int
-print_filename (to_print, full_pathname)
- char *to_print, *full_pathname;
-{
- int printed_len = 0;
-#if !defined (VISIBLE_STATS)
- char *s;
-
- for (s = to_print; *s; s++)
- {
- PUTX (*s);
- }
-#else
- char *s, c, *new_full_pathname;
- int extension_char, slen, tlen;
-
- for (s = to_print; *s; s++)
- {
- PUTX (*s);
- }
-
- if (rl_filename_completion_desired && rl_visible_stats)
- {
- /* If to_print != full_pathname, to_print is the basename of the
- path passed. In this case, we try to expand the directory
- name before checking for the stat character. */
- if (to_print != full_pathname)
- {
- /* Terminate the directory name. */
- c = to_print[-1];
- to_print[-1] = '\0';
-
- /* If setting the last slash in full_pathname to a NUL results in
- full_pathname being the empty string, we are trying to complete
- files in the root directory. If we pass a null string to the
- bash directory completion hook, for example, it will expand it
- to the current directory. We just want the `/'. */
- s = tilde_expand (full_pathname && *full_pathname ? full_pathname : "/");
- if (rl_directory_completion_hook)
- (*rl_directory_completion_hook) (&s);
-
- slen = strlen (s);
- tlen = strlen (to_print);
- new_full_pathname = (char *)xmalloc (slen + tlen + 2);
- strcpy (new_full_pathname, s);
- new_full_pathname[slen] = '/';
- strcpy (new_full_pathname + slen + 1, to_print);
-
- extension_char = stat_char (new_full_pathname);
-
- free (new_full_pathname);
- to_print[-1] = c;
- }
- else
- {
- s = tilde_expand (full_pathname);
- extension_char = stat_char (s);
- }
-
- free (s);
- if (extension_char)
- {
- putc (extension_char, rl_outstream);
- printed_len++;
- }
- }
-#endif /* VISIBLE_STATS */
- return printed_len;
-}
-
-static char *
-rl_quote_filename (s, rtype, qcp)
- char *s;
- int rtype;
- char *qcp;
-{
- char *r;
-
- r = (char *)xmalloc (strlen (s) + 2);
- *r = *rl_completer_quote_characters;
- strcpy (r + 1, s);
- if (qcp)
- *qcp = *rl_completer_quote_characters;
- return r;
-}
-
-/* Find the bounds of the current word for completion purposes, and leave
- rl_point set to the end of the word. This function skips quoted
- substrings (characters between matched pairs of characters in
- rl_completer_quote_characters). First we try to find an unclosed
- quoted substring on which to do matching. If one is not found, we use
- the word break characters to find the boundaries of the current word.
- We call an application-specific function to decide whether or not a
- particular word break character is quoted; if that function returns a
- non-zero result, the character does not break a word. This function
- returns the opening quote character if we found an unclosed quoted
- substring, '\0' otherwise. FP, if non-null, is set to a value saying
- which (shell-like) quote characters we found (single quote, double
- quote, or backslash) anywhere in the string. DP, if non-null, is set to
- the value of the delimiter character that caused a word break. */
-
-char
-_rl_find_completion_word (fp, dp)
- int *fp, *dp;
-{
- int scan, end, found_quote, delimiter, pass_next, isbrk;
- char quote_char;
-
- end = rl_point;
- found_quote = delimiter = 0;
- quote_char = '\0';
-
- if (rl_completer_quote_characters)
- {
- /* We have a list of characters which can be used in pairs to
- quote substrings for the completer. Try to find the start
- of an unclosed quoted substring. */
- /* FOUND_QUOTE is set so we know what kind of quotes we found. */
- for (scan = pass_next = 0; scan < end; scan++)
- {
- if (pass_next)
- {
- pass_next = 0;
- continue;
- }
-
- /* Shell-like semantics for single quotes -- don't allow backslash
- to quote anything in single quotes, especially not the closing
- quote. If you don't like this, take out the check on the value
- of quote_char. */
- if (quote_char != '\'' && rl_line_buffer[scan] == '\\')
- {
- pass_next = 1;
- found_quote |= RL_QF_BACKSLASH;
- continue;
- }
-
- if (quote_char != '\0')
- {
- /* Ignore everything until the matching close quote char. */
- if (rl_line_buffer[scan] == quote_char)
- {
- /* Found matching close. Abandon this substring. */
- quote_char = '\0';
- rl_point = end;
- }
- }
- else if (strchr (rl_completer_quote_characters, rl_line_buffer[scan]))
- {
- /* Found start of a quoted substring. */
- quote_char = rl_line_buffer[scan];
- rl_point = scan + 1;
- /* Shell-like quoting conventions. */
- if (quote_char == '\'')
- found_quote |= RL_QF_SINGLE_QUOTE;
- else if (quote_char == '"')
- found_quote |= RL_QF_DOUBLE_QUOTE;
- else
- found_quote |= RL_QF_OTHER_QUOTE;
- }
- }
- }
-
- if (rl_point == end && quote_char == '\0')
- {
- /* We didn't find an unclosed quoted substring upon which to do
- completion, so use the word break characters to find the
- substring on which to complete. */
-#if defined (HANDLE_MULTIBYTE)
- while (rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_ANY))
-#else
- while (--rl_point)
-#endif
- {
- scan = rl_line_buffer[rl_point];
-
- if (strchr (rl_completer_word_break_characters, scan) == 0)
- continue;
-
- /* Call the application-specific function to tell us whether
- this word break character is quoted and should be skipped. */
- if (rl_char_is_quoted_p && found_quote &&
- (*rl_char_is_quoted_p) (rl_line_buffer, rl_point))
- continue;
-
- /* Convoluted code, but it avoids an n^2 algorithm with calls
- to char_is_quoted. */
- break;
- }
- }
-
- /* If we are at an unquoted word break, then advance past it. */
- scan = rl_line_buffer[rl_point];
-
- /* If there is an application-specific function to say whether or not
- a character is quoted and we found a quote character, let that
- function decide whether or not a character is a word break, even
- if it is found in rl_completer_word_break_characters. Don't bother
- if we're at the end of the line, though. */
- if (scan)
- {
- if (rl_char_is_quoted_p)
- isbrk = (found_quote == 0 ||
- (*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) &&
- strchr (rl_completer_word_break_characters, scan) != 0;
- else
- isbrk = strchr (rl_completer_word_break_characters, scan) != 0;
-
- if (isbrk)
- {
- /* If the character that caused the word break was a quoting
- character, then remember it as the delimiter. */
- if (rl_basic_quote_characters &&
- strchr (rl_basic_quote_characters, scan) &&
- (end - rl_point) > 1)
- delimiter = scan;
-
- /* If the character isn't needed to determine something special
- about what kind of completion to perform, then advance past it. */
- if (rl_special_prefixes == 0 || strchr (rl_special_prefixes, scan) == 0)
- rl_point++;
- }
- }
-
- if (fp)
- *fp = found_quote;
- if (dp)
- *dp = delimiter;
-
- return (quote_char);
-}
-
-static char **
-gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
- char *text;
- int start, end;
- rl_compentry_func_t *our_func;
- int found_quote, quote_char;
-{
- char **matches, *temp;
-
- /* If the user wants to TRY to complete, but then wants to give
- up and use the default completion function, they set the
- variable rl_attempted_completion_function. */
- if (rl_attempted_completion_function)
- {
- matches = (*rl_attempted_completion_function) (text, start, end);
-
- if (matches || rl_attempted_completion_over)
- {
- rl_attempted_completion_over = 0;
- return (matches);
- }
- }
-
- /* Beware -- we're stripping the quotes here. Do this only if we know
- we are doing filename completion and the application has defined a
- filename dequoting function. */
- temp = (char *)NULL;
-
- if (found_quote && our_func == rl_filename_completion_function &&
- rl_filename_dequoting_function)
- {
- /* delete single and double quotes */
- temp = (*rl_filename_dequoting_function) (text, quote_char);
- text = temp; /* not freeing text is not a memory leak */
- }
-
- matches = rl_completion_matches (text, our_func);
- FREE (temp);
- return matches;
-}
-
-/* Filter out duplicates in MATCHES. This frees up the strings in
- MATCHES. */
-static char **
-remove_duplicate_matches (matches)
- char **matches;
-{
- char *lowest_common;
- int i, j, newlen;
- char dead_slot;
- char **temp_array;
-
- /* Sort the items. */
- for (i = 0; matches[i]; i++)
- ;
-
- /* Sort the array without matches[0], since we need it to
- stay in place no matter what. */
- if (i)
- qsort (matches+1, i-1, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
-
- /* Remember the lowest common denominator for it may be unique. */
- lowest_common = savestring (matches[0]);
-
- for (i = newlen = 0; matches[i + 1]; i++)
- {
- if (strcmp (matches[i], matches[i + 1]) == 0)
- {
- free (matches[i]);
- matches[i] = (char *)&dead_slot;
- }
- else
- newlen++;
- }
-
- /* We have marked all the dead slots with (char *)&dead_slot.
- Copy all the non-dead entries into a new array. */
- temp_array = (char **)xmalloc ((3 + newlen) * sizeof (char *));
- for (i = j = 1; matches[i]; i++)
- {
- if (matches[i] != (char *)&dead_slot)
- temp_array[j++] = matches[i];
- }
- temp_array[j] = (char *)NULL;
-
- if (matches[0] != (char *)&dead_slot)
- free (matches[0]);
-
- /* Place the lowest common denominator back in [0]. */
- temp_array[0] = lowest_common;
-
- /* If there is one string left, and it is identical to the
- lowest common denominator, then the LCD is the string to
- insert. */
- if (j == 2 && strcmp (temp_array[0], temp_array[1]) == 0)
- {
- free (temp_array[1]);
- temp_array[1] = (char *)NULL;
- }
- return (temp_array);
-}
-
-/* Find the common prefix of the list of matches, and put it into
- matches[0]. */
-static int
-compute_lcd_of_matches (match_list, matches, text)
- char **match_list;
- int matches;
- const char *text;
-{
- register int i, c1, c2, si;
- int low; /* Count of max-matched characters. */
-#if defined (HANDLE_MULTIBYTE)
- int v;
- mbstate_t ps1, ps2;
- wchar_t wc1, wc2;
-#endif
-
- /* If only one match, just use that. Otherwise, compare each
- member of the list with the next, finding out where they
- stop matching. */
- if (matches == 1)
- {
- match_list[0] = match_list[1];
- match_list[1] = (char *)NULL;
- return 1;
- }
-
- for (i = 1, low = 100000; i < matches; i++)
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- memset (&ps1, 0, sizeof (mbstate_t));
- memset (&ps2, 0, sizeof (mbstate_t));
- }
-#endif
- if (_rl_completion_case_fold)
- {
- for (si = 0;
- (c1 = _rl_to_lower(match_list[i][si])) &&
- (c2 = _rl_to_lower(match_list[i + 1][si]));
- si++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- v = mbrtowc (&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
- mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
- wc1 = towlower (wc1);
- wc2 = towlower (wc2);
- if (wc1 != wc2)
- break;
- else if (v > 1)
- si += v - 1;
- }
- else
-#endif
- if (c1 != c2)
- break;
- }
- else
- {
- for (si = 0;
- (c1 = match_list[i][si]) &&
- (c2 = match_list[i + 1][si]);
- si++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- mbstate_t ps_back = ps1;
- if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
- break;
- else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
- si += v - 1;
- }
- else
-#endif
- if (c1 != c2)
- break;
- }
-
- if (low > si)
- low = si;
- }
-
- /* If there were multiple matches, but none matched up to even the
- first character, and the user typed something, use that as the
- value of matches[0]. */
- if (low == 0 && text && *text)
- {
- match_list[0] = (char *)xmalloc (strlen (text) + 1);
- strcpy (match_list[0], text);
- }
- else
- {
- match_list[0] = (char *)xmalloc (low + 1);
-
- /* XXX - this might need changes in the presence of multibyte chars */
-
- /* If we are ignoring case, try to preserve the case of the string
- the user typed in the face of multiple matches differing in case. */
- if (_rl_completion_case_fold)
- {
- /* sort the list to get consistent answers. */
- qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
-
- si = strlen (text);
- if (si <= low)
- {
- for (i = 1; i <= matches; i++)
- if (strncmp (match_list[i], text, si) == 0)
- {
- strncpy (match_list[0], match_list[i], low);
- break;
- }
- /* no casematch, use first entry */
- if (i > matches)
- strncpy (match_list[0], match_list[1], low);
- }
- else
- /* otherwise, just use the text the user typed. */
- strncpy (match_list[0], text, low);
- }
- else
- strncpy (match_list[0], match_list[1], low);
-
- match_list[0][low] = '\0';
- }
-
- return matches;
-}
-
-static int
-postprocess_matches (matchesp, matching_filenames)
- char ***matchesp;
- int matching_filenames;
-{
- char *t, **matches, **temp_matches;
- int nmatch, i;
-
- matches = *matchesp;
-
- if (matches == 0)
- return 0;
-
- /* It seems to me that in all the cases we handle we would like
- to ignore duplicate possiblilities. Scan for the text to
- insert being identical to the other completions. */
- if (rl_ignore_completion_duplicates)
- {
- temp_matches = remove_duplicate_matches (matches);
- free (matches);
- matches = temp_matches;
- }
-
- /* If we are matching filenames, then here is our chance to
- do clever processing by re-examining the list. Call the
- ignore function with the array as a parameter. It can
- munge the array, deleting matches as it desires. */
- if (rl_ignore_some_completions_function && matching_filenames)
- {
- for (nmatch = 1; matches[nmatch]; nmatch++)
- ;
- (void)(*rl_ignore_some_completions_function) (matches);
- if (matches == 0 || matches[0] == 0)
- {
- FREE (matches);
- *matchesp = (char **)0;
- return 0;
- }
- else
- {
- /* If we removed some matches, recompute the common prefix. */
- for (i = 1; matches[i]; i++)
- ;
- if (i > 1 && i < nmatch)
- {
- t = matches[0];
- compute_lcd_of_matches (matches, i - 1, t);
- FREE (t);
- }
- }
- }
-
- *matchesp = matches;
- return (1);
-}
-
-/* A convenience function for displaying a list of strings in
- columnar format on readline's output stream. MATCHES is the list
- of strings, in argv format, LEN is the number of strings in MATCHES,
- and MAX is the length of the longest string in MATCHES. */
-void
-rl_display_match_list (matches, len, max)
- char **matches;
- int len, max;
-{
- int count, limit, printed_len, lines;
- int i, j, k, l;
- char *temp;
-
- /* How many items of MAX length can we fit in the screen window? */
- max += 2;
- limit = _rl_screenwidth / max;
- if (limit != 1 && (limit * max == _rl_screenwidth))
- limit--;
-
- /* Avoid a possible floating exception. If max > _rl_screenwidth,
- limit will be 0 and a divide-by-zero fault will result. */
- if (limit == 0)
- limit = 1;
-
- /* How many iterations of the printing loop? */
- count = (len + (limit - 1)) / limit;
-
- /* Watch out for special case. If LEN is less than LIMIT, then
- just do the inner printing loop.
- 0 < len <= limit implies count = 1. */
-
- /* Sort the items if they are not already sorted. */
- if (rl_ignore_completion_duplicates == 0)
- qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
-
- rl_crlf ();
-
- lines = 0;
- if (_rl_print_completions_horizontally == 0)
- {
- /* Print the sorted items, up-and-down alphabetically, like ls. */
- for (i = 1; i <= count; i++)
- {
- for (j = 0, l = i; j < limit; j++)
- {
- if (l > len || matches[l] == 0)
- break;
- else
- {
- temp = printable_part (matches[l]);
- printed_len = print_filename (temp, matches[l]);
-
- if (j + 1 < limit)
- for (k = 0; k < max - printed_len; k++)
- putc (' ', rl_outstream);
- }
- l += count;
- }
- rl_crlf ();
- lines++;
- if (_rl_page_completions && lines >= (_rl_screenheight - 1) && i < count)
- {
- lines = _rl_internal_pager (lines);
- if (lines < 0)
- return;
- }
- }
- }
- else
- {
- /* Print the sorted items, across alphabetically, like ls -x. */
- for (i = 1; matches[i]; i++)
- {
- temp = printable_part (matches[i]);
- printed_len = print_filename (temp, matches[i]);
- /* Have we reached the end of this line? */
- if (matches[i+1])
- {
- if (i && (limit > 1) && (i % limit) == 0)
- {
- rl_crlf ();
- lines++;
- if (_rl_page_completions && lines >= _rl_screenheight - 1)
- {
- lines = _rl_internal_pager (lines);
- if (lines < 0)
- return;
- }
- }
- else
- for (k = 0; k < max - printed_len; k++)
- putc (' ', rl_outstream);
- }
- }
- rl_crlf ();
- }
-}
-
-/* Display MATCHES, a list of matching filenames in argv format. This
- handles the simple case -- a single match -- first. If there is more
- than one match, we compute the number of strings in the list and the
- length of the longest string, which will be needed by the display
- function. If the application wants to handle displaying the list of
- matches itself, it sets RL_COMPLETION_DISPLAY_MATCHES_HOOK to the
- address of a function, and we just call it. If we're handling the
- display ourselves, we just call rl_display_match_list. We also check
- that the list of matches doesn't exceed the user-settable threshold,
- and ask the user if he wants to see the list if there are more matches
- than RL_COMPLETION_QUERY_ITEMS. */
-static void
-display_matches (matches)
- char **matches;
-{
- int len, max, i;
- char *temp;
-
- /* Move to the last visible line of a possibly-multiple-line command. */
- _rl_move_vert (_rl_vis_botlin);
-
- /* Handle simple case first. What if there is only one answer? */
- if (matches[1] == 0)
- {
- temp = printable_part (matches[0]);
- rl_crlf ();
- print_filename (temp, matches[0]);
- rl_crlf ();
-
- rl_forced_update_display ();
- rl_display_fixed = 1;
-
- return;
- }
-
- /* There is more than one answer. Find out how many there are,
- and find the maximum printed length of a single entry. */
- for (max = 0, i = 1; matches[i]; i++)
- {
- temp = printable_part (matches[i]);
- len = strlen (temp);
-
- if (len > max)
- max = len;
- }
-
- len = i - 1;
-
- /* If the caller has defined a display hook, then call that now. */
- if (rl_completion_display_matches_hook)
- {
- (*rl_completion_display_matches_hook) (matches, len, max);
- return;
- }
-
- /* If there are many items, then ask the user if she really wants to
- see them all. */
- if (len >= rl_completion_query_items)
- {
- rl_crlf ();
- fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len);
- fflush (rl_outstream);
- if (get_y_or_n (0) == 0)
- {
- rl_crlf ();
-
- rl_forced_update_display ();
- rl_display_fixed = 1;
-
- return;
- }
- }
-
- rl_display_match_list (matches, len, max);
-
- rl_forced_update_display ();
- rl_display_fixed = 1;
-}
-
-static char *
-make_quoted_replacement (match, mtype, qc)
- char *match;
- int mtype;
- char *qc; /* Pointer to quoting character, if any */
-{
- int should_quote, do_replace;
- char *replacement;
-
- /* If we are doing completion on quoted substrings, and any matches
- contain any of the completer_word_break_characters, then auto-
- matically prepend the substring with a quote character (just pick
- the first one from the list of such) if it does not already begin
- with a quote string. FIXME: Need to remove any such automatically
- inserted quote character when it no longer is necessary, such as
- if we change the string we are completing on and the new set of
- matches don't require a quoted substring. */
- replacement = match;
-
- should_quote = match && rl_completer_quote_characters &&
- rl_filename_completion_desired &&
- rl_filename_quoting_desired;
-
- if (should_quote)
- should_quote = should_quote && (!qc || !*qc ||
- (rl_completer_quote_characters && strchr (rl_completer_quote_characters, *qc)));
-
- if (should_quote)
- {
- /* If there is a single match, see if we need to quote it.
- This also checks whether the common prefix of several
- matches needs to be quoted. */
- should_quote = rl_filename_quote_characters
- ? (_rl_strpbrk (match, rl_filename_quote_characters) != 0)
- : 0;
-
- do_replace = should_quote ? mtype : NO_MATCH;
- /* Quote the replacement, since we found an embedded
- word break character in a potential match. */
- if (do_replace != NO_MATCH && rl_filename_quoting_function)
- replacement = (*rl_filename_quoting_function) (match, do_replace, qc);
- }
- return (replacement);
-}
-
-static void
-insert_match (match, start, mtype, qc)
- char *match;
- int start, mtype;
- char *qc;
-{
- char *replacement;
- char oqc;
-
- oqc = qc ? *qc : '\0';
- replacement = make_quoted_replacement (match, mtype, qc);
-
- /* Now insert the match. */
- if (replacement)
- {
- /* Don't double an opening quote character. */
- if (qc && *qc && start && rl_line_buffer[start - 1] == *qc &&
- replacement[0] == *qc)
- start--;
- /* If make_quoted_replacement changed the quoting character, remove
- the opening quote and insert the (fully-quoted) replacement. */
- else if (qc && (*qc != oqc) && start && rl_line_buffer[start - 1] == oqc &&
- replacement[0] != oqc)
- start--;
- _rl_replace_text (replacement, start, rl_point - 1);
- if (replacement != match)
- free (replacement);
- }
-}
-
-/* Append any necessary closing quote and a separator character to the
- just-inserted match. If the user has specified that directories
- should be marked by a trailing `/', append one of those instead. The
- default trailing character is a space. Returns the number of characters
- appended. If NONTRIVIAL_MATCH is set, we test for a symlink (if the OS
- has them) and don't add a suffix for a symlink to a directory. A
- nontrivial match is one that actually adds to the word being completed.
- The variable rl_completion_mark_symlink_dirs controls this behavior
- (it's initially set to the what the user has chosen, indicated by the
- value of _rl_complete_mark_symlink_dirs, but may be modified by an
- application's completion function). */
-static int
-append_to_match (text, delimiter, quote_char, nontrivial_match)
- char *text;
- int delimiter, quote_char, nontrivial_match;
-{
- char temp_string[4], *filename;
- int temp_string_index, s;
- struct stat finfo;
-
- temp_string_index = 0;
- if (quote_char && rl_point && rl_line_buffer[rl_point - 1] != quote_char)
- temp_string[temp_string_index++] = quote_char;
-
- if (delimiter)
- temp_string[temp_string_index++] = delimiter;
- else if (rl_completion_suppress_append == 0 && rl_completion_append_character)
- temp_string[temp_string_index++] = rl_completion_append_character;
-
- temp_string[temp_string_index++] = '\0';
-
- if (rl_filename_completion_desired)
- {
- filename = tilde_expand (text);
- s = (nontrivial_match && rl_completion_mark_symlink_dirs == 0)
- ? LSTAT (filename, &finfo)
- : stat (filename, &finfo);
- if (s == 0 && S_ISDIR (finfo.st_mode))
- {
- if (_rl_complete_mark_directories)
- {
- /* This is clumsy. Avoid putting in a double slash if point
- is at the end of the line and the previous character is a
- slash. */
- if (rl_point && rl_line_buffer[rl_point] == '\0' && rl_line_buffer[rl_point - 1] == '/')
- ;
- else if (rl_line_buffer[rl_point] != '/')
- rl_insert_text ("/");
- }
- }
-#ifdef S_ISLNK
- /* Don't add anything if the filename is a symlink and resolves to a
- directory. */
- else if (s == 0 && S_ISLNK (finfo.st_mode) &&
- stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode))
- ;
-#endif
- else
- {
- if (rl_point == rl_end && temp_string_index)
- rl_insert_text (temp_string);
- }
- free (filename);
- }
- else
- {
- if (rl_point == rl_end && temp_string_index)
- rl_insert_text (temp_string);
- }
-
- return (temp_string_index);
-}
-
-static void
-insert_all_matches (matches, point, qc)
- char **matches;
- int point;
- char *qc;
-{
- int i;
- char *rp;
-
- rl_begin_undo_group ();
- /* remove any opening quote character; make_quoted_replacement will add
- it back. */
- if (qc && *qc && point && rl_line_buffer[point - 1] == *qc)
- point--;
- rl_delete_text (point, rl_point);
- rl_point = point;
-
- if (matches[1])
- {
- for (i = 1; matches[i]; i++)
- {
- rp = make_quoted_replacement (matches[i], SINGLE_MATCH, qc);
- rl_insert_text (rp);
- rl_insert_text (" ");
- if (rp != matches[i])
- free (rp);
- }
- }
- else
- {
- rp = make_quoted_replacement (matches[0], SINGLE_MATCH, qc);
- rl_insert_text (rp);
- rl_insert_text (" ");
- if (rp != matches[0])
- free (rp);
- }
- rl_end_undo_group ();
-}
-
-void
-_rl_free_match_list (matches)
- char **matches;
-{
- register int i;
-
- if (matches == 0)
- return;
-
- for (i = 0; matches[i]; i++)
- free (matches[i]);
- free (matches);
-}
-
-/* Complete the word at or before point.
- WHAT_TO_DO says what to do with the completion.
- `?' means list the possible completions.
- TAB means do standard completion.
- `*' means insert all of the possible completions.
- `!' means to do standard completion, and list all possible completions if
- there is more than one. */
-int
-rl_complete_internal (what_to_do)
- int what_to_do;
-{
- char **matches;
- rl_compentry_func_t *our_func;
- int start, end, delimiter, found_quote, i, nontrivial_lcd;
- char *text, *saved_line_buffer;
- char quote_char;
-
- RL_SETSTATE(RL_STATE_COMPLETING);
-
- set_completion_defaults (what_to_do);
-
- saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
- our_func = rl_completion_entry_function
- ? rl_completion_entry_function
- : rl_filename_completion_function;
-
- /* We now look backwards for the start of a filename/variable word. */
- end = rl_point;
- found_quote = delimiter = 0;
- quote_char = '\0';
-
- if (rl_point)
- /* This (possibly) changes rl_point. If it returns a non-zero char,
- we know we have an open quote. */
- quote_char = _rl_find_completion_word (&found_quote, &delimiter);
-
- start = rl_point;
- rl_point = end;
-
- text = rl_copy_text (start, end);
- matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
- /* nontrivial_lcd is set if the common prefix adds something to the word
- being completed. */
- nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
- free (text);
-
- if (matches == 0)
- {
- rl_ding ();
- FREE (saved_line_buffer);
- completion_changed_buffer = 0;
- RL_UNSETSTATE(RL_STATE_COMPLETING);
- return (0);
- }
-
- /* If we are matching filenames, the attempted completion function will
- have set rl_filename_completion_desired to a non-zero value. The basic
- rl_filename_completion_function does this. */
- i = rl_filename_completion_desired;
-
- if (postprocess_matches (&matches, i) == 0)
- {
- rl_ding ();
- FREE (saved_line_buffer);
- completion_changed_buffer = 0;
- RL_UNSETSTATE(RL_STATE_COMPLETING);
- return (0);
- }
-
- switch (what_to_do)
- {
- case TAB:
- case '!':
- /* Insert the first match with proper quoting. */
- if (*matches[0])
- insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
-
- /* If there are more matches, ring the bell to indicate.
- If we are in vi mode, Posix.2 says to not ring the bell.
- If the `show-all-if-ambiguous' variable is set, display
- all the matches immediately. Otherwise, if this was the
- only match, and we are hacking files, check the file to
- see if it was a directory. If so, and the `mark-directories'
- variable is set, add a '/' to the name. If not, and we
- are at the end of the line, then add a space. */
- if (matches[1])
- {
- if (what_to_do == '!')
- {
- display_matches (matches);
- break;
- }
- else if (rl_editing_mode != vi_mode)
- rl_ding (); /* There are other matches remaining. */
- }
- else
- append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
-
- break;
-
- case '*':
- insert_all_matches (matches, start, &quote_char);
- break;
-
- case '?':
- display_matches (matches);
- break;
-
- default:
- fprintf (stderr, "\r\nreadline: bad value %d for what_to_do in rl_complete\n", what_to_do);
- rl_ding ();
- FREE (saved_line_buffer);
- RL_UNSETSTATE(RL_STATE_COMPLETING);
- return 1;
- }
-
- _rl_free_match_list (matches);
-
- /* Check to see if the line has changed through all of this manipulation. */
- if (saved_line_buffer)
- {
- completion_changed_buffer = strcmp (rl_line_buffer, saved_line_buffer) != 0;
- free (saved_line_buffer);
- }
-
- RL_UNSETSTATE(RL_STATE_COMPLETING);
- return 0;
-}
-
-/***************************************************************/
-/* */
-/* Application-callable completion match generator functions */
-/* */
-/***************************************************************/
-
-/* Return an array of (char *) which is a list of completions for TEXT.
- If there are no completions, return a NULL pointer.
- The first entry in the returned array is the substitution for TEXT.
- The remaining entries are the possible completions.
- The array is terminated with a NULL pointer.
-
- ENTRY_FUNCTION is a function of two args, and returns a (char *).
- The first argument is TEXT.
- The second is a state argument; it should be zero on the first call, and
- non-zero on subsequent calls. It returns a NULL pointer to the caller
- when there are no more matches.
- */
-char **
-rl_completion_matches (text, entry_function)
- const char *text;
- rl_compentry_func_t *entry_function;
-{
- /* Number of slots in match_list. */
- int match_list_size;
-
- /* The list of matches. */
- char **match_list;
-
- /* Number of matches actually found. */
- int matches;
-
- /* Temporary string binder. */
- char *string;
-
- matches = 0;
- match_list_size = 10;
- match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
- match_list[1] = (char *)NULL;
-
- while (string = (*entry_function) (text, matches))
- {
- if (matches + 1 == match_list_size)
- match_list = (char **)xrealloc
- (match_list, ((match_list_size += 10) + 1) * sizeof (char *));
-
- match_list[++matches] = string;
- match_list[matches + 1] = (char *)NULL;
- }
-
- /* If there were any matches, then look through them finding out the
- lowest common denominator. That then becomes match_list[0]. */
- if (matches)
- compute_lcd_of_matches (match_list, matches, text);
- else /* There were no matches. */
- {
- free (match_list);
- match_list = (char **)NULL;
- }
- return (match_list);
-}
-
-/* A completion function for usernames.
- TEXT contains a partial username preceded by a random
- character (usually `~'). */
-char *
-rl_username_completion_function (text, state)
- const char *text;
- int state;
-{
-#if defined (__WIN32__) || defined (__OPENNT)
- return (char *)NULL;
-#else /* !__WIN32__ && !__OPENNT) */
- static char *username = (char *)NULL;
- static struct passwd *entry;
- static int namelen, first_char, first_char_loc;
- char *value;
-
- if (state == 0)
- {
- FREE (username);
-
- first_char = *text;
- first_char_loc = first_char == '~';
-
- username = savestring (&text[first_char_loc]);
- namelen = strlen (username);
- setpwent ();
- }
-
- while (entry = getpwent ())
- {
- /* Null usernames should result in all users as possible completions. */
- if (namelen == 0 || (STREQN (username, entry->pw_name, namelen)))
- break;
- }
-
- if (entry == 0)
- {
- endpwent ();
- return ((char *)NULL);
- }
- else
- {
- value = (char *)xmalloc (2 + strlen (entry->pw_name));
-
- *value = *text;
-
- strcpy (value + first_char_loc, entry->pw_name);
-
- if (first_char == '~')
- rl_filename_completion_desired = 1;
-
- return (value);
- }
-#endif /* !__WIN32__ && !__OPENNT */
-}
-
-/* Okay, now we write the entry_function for filename completion. In the
- general case. Note that completion in the shell is a little different
- because of all the pathnames that must be followed when looking up the
- completion for a command. */
-char *
-rl_filename_completion_function (text, state)
- const char *text;
- int state;
-{
- static DIR *directory = (DIR *)NULL;
- static char *filename = (char *)NULL;
- static char *dirname = (char *)NULL;
- static char *users_dirname = (char *)NULL;
- static int filename_len;
- char *temp;
- int dirlen;
- struct dirent *entry;
-
- /* If we don't have any state, then do some initialization. */
- if (state == 0)
- {
- /* If we were interrupted before closing the directory or reading
- all of its contents, close it. */
- if (directory)
- {
- closedir (directory);
- directory = (DIR *)NULL;
- }
- FREE (dirname);
- FREE (filename);
- FREE (users_dirname);
-
- filename = savestring (text);
- if (*text == 0)
- text = ".";
- dirname = savestring (text);
-
- temp = strrchr (dirname, '/');
-
-#if defined (__MSDOS__)
- /* special hack for //X/... */
- if (dirname[0] == '/' && dirname[1] == '/' && ISALPHA ((unsigned char)dirname[2]) && dirname[3] == '/')
- temp = strrchr (dirname + 3, '/');
-#endif
-
- if (temp)
- {
- strcpy (filename, ++temp);
- *temp = '\0';
- }
-#if defined (__MSDOS__)
- /* searches from current directory on the drive */
- else if (ISALPHA ((unsigned char)dirname[0]) && dirname[1] == ':')
- {
- strcpy (filename, dirname + 2);
- dirname[2] = '\0';
- }
-#endif
- else
- {
- dirname[0] = '.';
- dirname[1] = '\0';
- }
-
- /* We aren't done yet. We also support the "~user" syntax. */
-
- /* Save the version of the directory that the user typed. */
- users_dirname = savestring (dirname);
-
- if (*dirname == '~')
- {
- temp = tilde_expand (dirname);
- free (dirname);
- dirname = temp;
- }
-
- if (rl_directory_rewrite_hook)
- (*rl_directory_rewrite_hook) (&dirname);
-
- if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
- {
- free (users_dirname);
- users_dirname = savestring (dirname);
- }
-
- directory = opendir (dirname);
- filename_len = strlen (filename);
-
- rl_filename_completion_desired = 1;
- }
-
- /* At this point we should entertain the possibility of hacking wildcarded
- filenames, like /usr/man/man<WILD>/te<TAB>. If the directory name
- contains globbing characters, then build an array of directories, and
- then map over that list while completing. */
- /* *** UNIMPLEMENTED *** */
-
- /* Now that we have some state, we can read the directory. */
-
- entry = (struct dirent *)NULL;
- while (directory && (entry = readdir (directory)))
- {
- /* Special case for no filename. If the user has disabled the
- `match-hidden-files' variable, skip filenames beginning with `.'.
- All other entries except "." and ".." match. */
- if (filename_len == 0)
- {
- if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
- continue;
-
- if (entry->d_name[0] != '.' ||
- (entry->d_name[1] &&
- (entry->d_name[1] != '.' || entry->d_name[2])))
- break;
- }
- else
- {
- /* Otherwise, if these match up to the length of filename, then
- it is a match. */
- if (_rl_completion_case_fold)
- {
- if ((_rl_to_lower (entry->d_name[0]) == _rl_to_lower (filename[0])) &&
- (((int)D_NAMLEN (entry)) >= filename_len) &&
- (_rl_strnicmp (filename, entry->d_name, filename_len) == 0))
- break;
- }
- else
- {
- if ((entry->d_name[0] == filename[0]) &&
- (((int)D_NAMLEN (entry)) >= filename_len) &&
- (strncmp (filename, entry->d_name, filename_len) == 0))
- break;
- }
- }
- }
-
- if (entry == 0)
- {
- if (directory)
- {
- closedir (directory);
- directory = (DIR *)NULL;
- }
- if (dirname)
- {
- free (dirname);
- dirname = (char *)NULL;
- }
- if (filename)
- {
- free (filename);
- filename = (char *)NULL;
- }
- if (users_dirname)
- {
- free (users_dirname);
- users_dirname = (char *)NULL;
- }
-
- return (char *)NULL;
- }
- else
- {
- /* dirname && (strcmp (dirname, ".") != 0) */
- if (dirname && (dirname[0] != '.' || dirname[1]))
- {
- if (rl_complete_with_tilde_expansion && *users_dirname == '~')
- {
- dirlen = strlen (dirname);
- temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
- strcpy (temp, dirname);
- /* Canonicalization cuts off any final slash present. We
- may need to add it back. */
- if (dirname[dirlen - 1] != '/')
- {
- temp[dirlen++] = '/';
- temp[dirlen] = '\0';
- }
- }
- else
- {
- dirlen = strlen (users_dirname);
- temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
- strcpy (temp, users_dirname);
- /* Make sure that temp has a trailing slash here. */
- if (users_dirname[dirlen - 1] != '/')
- temp[dirlen++] = '/';
- }
-
- strcpy (temp + dirlen, entry->d_name);
- }
- else
- temp = savestring (entry->d_name);
-
- return (temp);
- }
-}
-
-/* An initial implementation of a menu completion function a la tcsh. The
- first time (if the last readline command was not rl_menu_complete), we
- generate the list of matches. This code is very similar to the code in
- rl_complete_internal -- there should be a way to combine the two. Then,
- for each item in the list of matches, we insert the match in an undoable
- fashion, with the appropriate character appended (this happens on the
- second and subsequent consecutive calls to rl_menu_complete). When we
- hit the end of the match list, we restore the original unmatched text,
- ring the bell, and reset the counter to zero. */
-int
-rl_menu_complete (count, ignore)
- int count, ignore;
-{
- rl_compentry_func_t *our_func;
- int matching_filenames, found_quote;
-
- static char *orig_text;
- static char **matches = (char **)0;
- static int match_list_index = 0;
- static int match_list_size = 0;
- static int orig_start, orig_end;
- static char quote_char;
- static int delimiter;
-
- /* The first time through, we generate the list of matches and set things
- up to insert them. */
- if (rl_last_func != rl_menu_complete)
- {
- /* Clean up from previous call, if any. */
- FREE (orig_text);
- if (matches)
- _rl_free_match_list (matches);
-
- match_list_index = match_list_size = 0;
- matches = (char **)NULL;
-
- /* Only the completion entry function can change these. */
- set_completion_defaults ('%');
-
- our_func = rl_completion_entry_function
- ? rl_completion_entry_function
- : rl_filename_completion_function;
-
- /* We now look backwards for the start of a filename/variable word. */
- orig_end = rl_point;
- found_quote = delimiter = 0;
- quote_char = '\0';
-
- if (rl_point)
- /* This (possibly) changes rl_point. If it returns a non-zero char,
- we know we have an open quote. */
- quote_char = _rl_find_completion_word (&found_quote, &delimiter);
-
- orig_start = rl_point;
- rl_point = orig_end;
-
- orig_text = rl_copy_text (orig_start, orig_end);
- matches = gen_completion_matches (orig_text, orig_start, orig_end,
- our_func, found_quote, quote_char);
-
- /* If we are matching filenames, the attempted completion function will
- have set rl_filename_completion_desired to a non-zero value. The basic
- rl_filename_completion_function does this. */
- matching_filenames = rl_filename_completion_desired;
-
- if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
- {
- rl_ding ();
- FREE (matches);
- matches = (char **)0;
- FREE (orig_text);
- orig_text = (char *)0;
- completion_changed_buffer = 0;
- return (0);
- }
-
- for (match_list_size = 0; matches[match_list_size]; match_list_size++)
- ;
- /* matches[0] is lcd if match_list_size > 1, but the circular buffer
- code below should take care of it. */
- }
-
- /* Now we have the list of matches. Replace the text between
- rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
- matches[match_list_index], and add any necessary closing char. */
-
- if (matches == 0 || match_list_size == 0)
- {
- rl_ding ();
- FREE (matches);
- matches = (char **)0;
- completion_changed_buffer = 0;
- return (0);
- }
-
- match_list_index = (match_list_index + count) % match_list_size;
- if (match_list_index < 0)
- match_list_index += match_list_size;
-
- if (match_list_index == 0 && match_list_size > 1)
- {
- rl_ding ();
- insert_match (orig_text, orig_start, MULT_MATCH, &quote_char);
- }
- else
- {
- insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
- append_to_match (matches[match_list_index], delimiter, quote_char,
- strcmp (orig_text, matches[match_list_index]));
- }
-
- completion_changed_buffer = 1;
- return (0);
-}
diff --git a/readline-4.3.orig/config.h.in b/readline-4.3.orig/config.h.in
deleted file mode 100644
index c53c2a1..0000000
--- a/readline-4.3.orig/config.h.in
+++ /dev/null
@@ -1,200 +0,0 @@
-/* config.h.in. Maintained by hand. */
-
-/* Define if on MINIX. */
-#undef _MINIX
-
-/* Define as the return type of signal handlers (int or void). */
-#undef RETSIGTYPE
-
-/* Characteristics of the compiler. */
-#undef const
-
-#undef size_t
-
-#undef ssize_t
-
-#undef PROTOTYPES
-
-#undef __CHAR_UNSIGNED__
-
-/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */
-#undef STAT_MACROS_BROKEN
-
-#undef VOID_SIGHANDLER
-
-/* Define if you have the isascii function. */
-#undef HAVE_ISASCII
-
-/* Define if you have the isxdigit function. */
-#undef HAVE_ISXDIGIT
-
-/* Define if you have the lstat function. */
-#undef HAVE_LSTAT
-
-/* Define if you have the mbsrtowcs function. */
-#undef HAVE_MBSRTOWCS
-
-/* Define if you have the memmove function. */
-#undef HAVE_MEMMOVE
-
-/* Define if you have the putenv function. */
-#undef HAVE_PUTENV
-
-/* Define if you have the select function. */
-#undef HAVE_SELECT
-
-/* Define if you have the setenv function. */
-#undef HAVE_SETENV
-
-/* Define if you have the setlocale function. */
-#undef HAVE_SETLOCALE
-
-/* Define if you have the strcasecmp function. */
-#undef HAVE_STRCASECMP
-
-/* Define if you have the strcoll function. */
-#undef HAVE_STRCOLL
-
-#undef STRCOLL_BROKEN
-
-/* Define if you have the strpbrk function. */
-#undef HAVE_STRPBRK
-
-/* Define if you have the tcgetattr function. */
-#undef HAVE_TCGETATTR
-
-/* Define if you have the vsnprintf function. */
-#undef HAVE_VSNPRINTF
-
-/* Define if you have the wcwidth function. */
-#undef HAVE_WCWIDTH
-
-/* Define if you have the <dirent.h> header file. */
-#undef HAVE_DIRENT_H
-
-/* Define if you have the <langinfo.h> header file. */
-#undef HAVE_LANGINFO_H
-
-/* Define if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define if you have the <locale.h> header file. */
-#undef HAVE_LOCALE_H
-
-/* Define if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define if you have the <ndir.h> header file. */
-#undef HAVE_NDIR_H
-
-/* Define if you have the <stdarg.h> header file. */
-#undef HAVE_STDARG_H
-
-/* Define if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define if you have the <sys/dir.h> header file. */
-#undef HAVE_SYS_DIR_H
-
-/* Define if you have the <sys/file.h> header file. */
-#undef HAVE_SYS_FILE_H
-
-/* Define if you have the <sys/ndir.h> header file. */
-#undef HAVE_SYS_NDIR_H
-
-/* Define if you have the <sys/pte.h> header file. */
-#undef HAVE_SYS_PTE_H
-
-/* Define if you have the <sys/ptem.h> header file. */
-#undef HAVE_SYS_PTEM_H
-
-/* Define if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define if you have the <sys/stream.h> header file. */
-#undef HAVE_SYS_STREAM_H
-
-/* Define if you have the <termcap.h> header file. */
-#undef HAVE_TERMCAP_H
-
-/* Define if you have the <termio.h> header file. */
-#undef HAVE_TERMIO_H
-
-/* Define if you have the <termios.h> header file. */
-#undef HAVE_TERMIOS_H
-
-/* Define if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if you have the <varargs.h> header file. */
-#undef HAVE_VARARGS_H
-
-/* Define if you have the <wchar.h> header file. */
-#undef HAVE_WCHAR_H
-
-/* Define if you have the <varargs.h> header file. */
-#undef HAVE_WCTYPE_H
-
-#undef HAVE_MBSTATE_T
-
-/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
-#undef HAVE_LANGINFO_CODESET
-
-/* Definitions pulled in from aclocal.m4. */
-#undef VOID_SIGHANDLER
-
-#undef GWINSZ_IN_SYS_IOCTL
-
-#undef STRUCT_WINSIZE_IN_SYS_IOCTL
-
-#undef STRUCT_WINSIZE_IN_TERMIOS
-
-#undef TIOCSTAT_IN_SYS_IOCTL
-
-#undef FIONREAD_IN_SYS_IOCTL
-
-#undef SPEED_T_IN_SYS_TYPES
-
-#undef HAVE_GETPW_DECLS
-
-#undef STRUCT_DIRENT_HAS_D_INO
-
-#undef STRUCT_DIRENT_HAS_D_FILENO
-
-#undef HAVE_BSD_SIGNALS
-
-#undef HAVE_POSIX_SIGNALS
-
-#undef HAVE_USG_SIGHOLD
-
-#undef MUST_REINSTALL_SIGHANDLERS
-
-#undef HAVE_POSIX_SIGSETJMP
-
-/* modify settings or make new ones based on what autoconf tells us. */
-
-/* Ultrix botches type-ahead when switching from canonical to
- non-canonical mode, at least through version 4.3 */
-#if !defined (HAVE_TERMIOS_H) || !defined (HAVE_TCGETATTR) || defined (ultrix)
-# define TERMIOS_MISSING
-#endif
-
-#if defined (STRCOLL_BROKEN)
-# undef HAVE_STRCOLL
-#endif
-
-#if defined (__STDC__) && defined (HAVE_STDARG_H)
-# define PREFER_STDARG
-# define USE_VARARGS
-#else
-# if defined (HAVE_VARARGS_H)
-# define PREFER_VARARGS
-# define USE_VARARGS
-# endif
-#endif
diff --git a/readline-4.3.orig/configure b/readline-4.3.orig/configure
deleted file mode 100755
index fc3769f..0000000
--- a/readline-4.3.orig/configure
+++ /dev/null
@@ -1,5865 +0,0 @@
-#! /bin/sh
-# From configure.in for Readline 4.3, version 2.45, from autoconf version 2.52.
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52 for readline 4.3.
-#
-# Report bugs to <bug-readline@gnu.org>.
-#
-# 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.
-
-# 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
-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="readline.h"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-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'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Identity of this package.
-PACKAGE_NAME='readline'
-PACKAGE_TARNAME='readline'
-PACKAGE_VERSION='4.3'
-PACKAGE_STRING='readline 4.3'
-PACKAGE_BUGREPORT='bug-readline@gnu.org'
-
-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"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- 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=$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=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- 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-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- 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
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -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)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- 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=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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=$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=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- 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'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- 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.
- with_x=yes ;;
-
- -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-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 ;;
-
- -*) { 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 ;;
-
- *)
- # 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
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# 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
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- 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
-
-# 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
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-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
- 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
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-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
-
-#
-# 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 readline 4.3 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
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST build programs to run on HOST [BUILD]
-EOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of readline 4.3:";;
- esac
- cat <<\EOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-shared build shared libraries [default=YES]
- --enable-static build static libraries [default=YES]
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-curses use the curses library instead of the termcap
- library
-
-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
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <bug-readline@gnu.org>.
-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
-readline configure 4.3
-generated by GNU Autoconf 2.52
-
-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 readline $as_me 4.3, which was
-generated by GNU Autoconf 2.52. 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
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:879: 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
- # 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:890: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:898: 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:914: 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:918: 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:924: 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:926: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:928: 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:947: 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:949: 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
-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
-
-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:969: PATH=\".;.\"; conftest.sh") >&5
- (PATH=".;."; conftest.sh) 2>&5
- ac_status=$?
- echo "$as_me:972: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- ac_path_separator=';'
-else
- ac_path_separator=:
-fi
-PATH_SEPARATOR="$ac_path_separator"
-rm -f conftest.sh
-
-ac_aux_dir=
-for ac_dir in ./support $srcdir/./support; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- 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
- { { echo "$as_me:998: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&2;}
- { (exit 1); exit 1; }; }
-fi
-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.
-
-ac_config_headers="$ac_config_headers config.h"
-
-LIBVERSION=4.3
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:1012: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:1016: 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:1025: 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:1029: 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:1034: 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:1041: 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:1050: 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:1055: 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/'`
-
-opt_curses=no
-
-# Check whether --with-curses or --without-curses was given.
-if test "${with_curses+set}" = set; then
- withval="$with_curses"
- opt_curses=$withval
-fi;
-
-if test "$opt_curses" = "yes"; then
- prefer_curses=yes
-fi
-
-opt_static_libs=yes
-opt_shared_libs=yes
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- opt_shared_libs=$enableval
-fi;
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- opt_static_libs=$enableval
-fi;
-
-echo ""
-echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
-echo ""
-
-# We want these before the checks, so the checks can modify their values.
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
-
-echo "$as_me:1095: 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
- cat >conftest.make <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-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
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:1115: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:1119: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-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
-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:1132: 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:1147: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1155: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1158: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:1167: 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:1182: 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:1190: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1193: 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:1206: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_CC="${ac_tool_prefix}cc"
-echo "$as_me:1221: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1229: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1232: 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:1241: 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:1256: 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:1264: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1267: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:1280: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
-fi
-ac_cv_prog_CC="cc"
-echo "$as_me:1300: found $ac_dir/$ac_word" >&5
-break
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" ${1+"$@"}
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1322: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1325: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- 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:1336: 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$ac_prog"
-echo "$as_me:1351: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1359: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1362: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- 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:1375: 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:1390: 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:1398: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1401: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-test -z "$CC" && { { echo "$as_me:1413: 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:1418:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:1421: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1424: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:1426: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1429: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:1431: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1434: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 1438 "configure"
-#include "confdefs.h"
-
-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:1454: 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:1457: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:1460: \$? = $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:1483: 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:1489: 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:1494: 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:1500: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1503: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:1510: 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
-echo "$as_me:1518: 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:1525: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1527: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:1530: checking for executable suffix" >&5
-echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1532: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:1535: \$? = $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
- { { echo "$as_me:1551: error: cannot compute EXEEXT: cannot compile and link" >&5
-echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:1557: 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:1563: 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 1569 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1581: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1584: \$? = $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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:1596: error: cannot compute OBJEXT: cannot compile" >&5
-echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:1603: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:1607: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 1613 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1628: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1631: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1634: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1637: \$? = $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:1649: 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:1655: 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 1661 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1673: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1676: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1679: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1682: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:1692: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- 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:1719: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1722: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1725: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1728: \$? = $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 1740 "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:1753: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1756: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1759: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1762: \$? = $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 1772 "configure"
-#include "confdefs.h"
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1784: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1787: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1790: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1793: \$? = $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
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-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
-
-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:1825: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-#line 1846 "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:1851: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:1857: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-#line 1880 "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:1884: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:1890: \$? = $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
- 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_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:1927: 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 1937 "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:1942: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:1948: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-#line 1971 "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:1975: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:1981: \$? = $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
- 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
- :
-else
- { { echo "$as_me:2009: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-echo "$as_me:2020: checking for minix/config.h" >&5
-echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6
-if test "${ac_cv_header_minix_config_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2026 "configure"
-#include "confdefs.h"
-#include <minix/config.h>
-_ACEOF
-if { (eval echo "$as_me:2030: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2036: \$? = $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_minix_config_h=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_minix_config_h=no
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:2055: result: $ac_cv_header_minix_config_h" >&5
-echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6
-if test $ac_cv_header_minix_config_h = yes; then
- MINIX=yes
-else
- MINIX=
-fi
-
-if test "$MINIX" = yes; then
-
-cat >>confdefs.h <<\EOF
-#define _POSIX_SOURCE 1
-EOF
-
-cat >>confdefs.h <<\EOF
-#define _POSIX_1_SOURCE 2
-EOF
-
-cat >>confdefs.h <<\EOF
-#define _MINIX 1
-EOF
-
-fi
-
-# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
-test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
-
-if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:2083: checking whether $CC needs -traditional" >&5
-echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
-if test "${ac_cv_prog_gcc_traditional+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_pattern="Autoconf.*'x'"
- cat >conftest.$ac_ext <<_ACEOF
-#line 2090 "configure"
-#include "confdefs.h"
-#include <sgtty.h>
-Autoconf TIOCGETP
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-else
- ac_cv_prog_gcc_traditional=no
-fi
-rm -f conftest*
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat >conftest.$ac_ext <<_ACEOF
-#line 2105 "configure"
-#include "confdefs.h"
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-fi
-rm -f conftest*
-
- fi
-fi
-echo "$as_me:2118: 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
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/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.
-echo "$as_me:2137: checking for a BSD compatible install" >&5
-echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
- for ac_dir in $PATH; do
- IFS=$ac_save_IFS
- # Account for people who put trailing slashes in PATH elements.
- 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
- if $as_executable_p "$ac_dir/$ac_prog"; then
- if test $ac_prog = install &&
- grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
- # 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
- fi
- fi
- done
- ;;
- esac
- done
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- 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.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:2186: 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}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-# Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-echo "$as_me:2199: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_AR=""
-echo "$as_me:2214: found $ac_dir/$ac_word" >&5
-break
-done
-
- test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- echo "$as_me:2223: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
- echo "$as_me:2226: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-test -n "$ARFLAGS" || ARFLAGS="cr"
-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:2234: 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
- 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:2249: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:2257: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:2260: result: no" >&5
-echo "${ECHO_T}no" >&6
-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:2269: 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:2284: 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:2293: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:2296: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-MAKE_SHELL=/bin/sh
-
-echo "$as_me:2307: 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 2315 "configure"
-#include "confdefs.h"
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2364: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2367: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2370: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2373: \$? = $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:2390: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:2393: 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:2398: 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 2404 "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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2462: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2465: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2468: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2471: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_const=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_c_const=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2481: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-echo "$as_me:2491: checking for function prototypes" >&5
-echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6
-if test "$ac_cv_prog_cc_stdc" != no; then
- echo "$as_me:2494: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\EOF
-#define PROTOTYPES 1
-EOF
-
-else
- echo "$as_me:2502: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-echo "$as_me:2506: 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 2512 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:2520: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2526: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-#line 2548 "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-#line 2566 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2587 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- 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:2613: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:2616: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:2618: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2621: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_header_stdc=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:2634: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:2650: 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 2656 "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2662: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2665: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2668: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2671: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2681: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:2691: checking whether char is unsigned" >&5
-echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6
-if test "${ac_cv_c_char_unsigned+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2697 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-int _array_ [1 - 2 * !(((char) -1) < 0)]
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2709: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2712: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2715: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2718: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_char_unsigned=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_c_char_unsigned=yes
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2728: result: $ac_cv_c_char_unsigned" >&5
-echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6
-if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
- cat >>confdefs.h <<\EOF
-#define __CHAR_UNSIGNED__ 1
-EOF
-
-fi
-
-echo "$as_me:2737: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
-if test "${ac_cv_type_signal+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2743 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int
-main ()
-{
-int i;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2765: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2768: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2771: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2774: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_signal=void
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_signal=int
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2784: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6
-
-cat >>confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-echo "$as_me:2791: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6
-if test "${ac_cv_type_size_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2797 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-if ((size_t *) 0)
- return 0;
-if (sizeof (size_t))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2812: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2815: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2818: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2821: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_size_t=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_size_t=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2831: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6
-if test $ac_cv_type_size_t = yes; then
- :
-else
-
-cat >>confdefs.h <<EOF
-#define size_t unsigned
-EOF
-
-fi
-
-echo "$as_me:2843: checking for ssize_t" >&5
-echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
-if test "${ac_cv_type_ssize_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2849 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-if ((ssize_t *) 0)
- return 0;
-if (sizeof (ssize_t))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2864: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2867: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2870: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2873: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_ssize_t=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_ssize_t=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2883: result: $ac_cv_type_ssize_t" >&5
-echo "${ECHO_T}$ac_cv_type_ssize_t" >&6
-if test $ac_cv_type_ssize_t = yes; then
- :
-else
-
-cat >>confdefs.h <<EOF
-#define ssize_t int
-EOF
-
-fi
-
-echo "$as_me:2895: checking whether stat file-mode macros are broken" >&5
-echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6
-if test "${ac_cv_header_stat_broken+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2901 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined(S_ISBLK) && defined(S_IFDIR)
-# if S_ISBLK (S_IFDIR)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISBLK) && defined(S_IFCHR)
-# if S_ISBLK (S_IFCHR)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISLNK) && defined(S_IFREG)
-# if S_ISLNK (S_IFREG)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISSOCK) && defined(S_IFREG)
-# if S_ISSOCK (S_IFREG)
-You lose.
-# endif
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "You lose" >/dev/null 2>&1; then
- ac_cv_header_stat_broken=yes
-else
- ac_cv_header_stat_broken=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:2940: result: $ac_cv_header_stat_broken" >&5
-echo "${ECHO_T}$ac_cv_header_stat_broken" >&6
-if test $ac_cv_header_stat_broken = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STAT_MACROS_BROKEN 1
-EOF
-
-fi
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
- as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:2953: 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 2959 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main ()
-{
-if ((DIR *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2974: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2977: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2980: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2983: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2993: 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
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
- echo "$as_me:3006: 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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldir $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 3014 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char opendir ();
-int
-main ()
-{
-opendir ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3033: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3036: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3039: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3042: \$? = $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:3053: result: $ac_cv_lib_dir_opendir" >&5
-echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
-if test $ac_cv_lib_dir_opendir = yes; then
- LIBS="$LIBS -ldir"
-fi
-
-else
- echo "$as_me:3060: 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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lx $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 3068 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char opendir ();
-int
-main ()
-{
-opendir ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3087: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3090: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3093: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3096: \$? = $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:3107: 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
-
-for ac_func in lstat memmove putenv select setenv setlocale \
- strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:3119: 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 3125 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-char (*f) ();
-
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3156: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3159: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3162: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3165: \$? = $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:3175: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:3185: checking for working strcoll" >&5
-echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6
-if test "${ac_cv_func_strcoll_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_strcoll_works=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3194 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-exit (strcoll ("abc", "def") >= 0 ||
- strcoll ("ABC", "DEF") >= 0 ||
- strcoll ("123", "456") >= 0)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3208: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3211: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3213: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3216: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_strcoll_works=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_strcoll_works=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:3228: result: $ac_cv_func_strcoll_works" >&5
-echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6
-if test $ac_cv_func_strcoll_works = yes; then
-
-cat >>confdefs.h <<\EOF
-#define HAVE_STRCOLL 1
-EOF
-
-fi
-
-for ac_header in unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
- limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
- termcap.h termios.h termio.h sys/file.h locale.h memory.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:3243: 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 3249 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:3253: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:3259: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:3278: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:3288: checking for type of signal functions" >&5
-echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6
-if test "${bash_cv_signal_vintage+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 3295 "configure"
-#include "confdefs.h"
-#include <signal.h>
-int
-main ()
-{
-
- sigset_t ss;
- struct sigaction sa;
- sigemptyset(&ss); sigsuspend(&ss);
- sigaction(SIGINT, &sa, (struct sigaction *) 0);
- sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3313: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3316: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3319: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3322: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_signal_vintage=posix
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 3330 "configure"
-#include "confdefs.h"
-#include <signal.h>
-int
-main ()
-{
-
- int mask = sigmask(SIGINT);
- sigsetmask(mask); sigblock(mask); sigpause(mask);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3345: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3348: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3351: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3354: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_signal_vintage=4.2bsd
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 3362 "configure"
-#include "confdefs.h"
-
- #include <signal.h>
- RETSIGTYPE foo() { }
-int
-main ()
-{
-
- int mask = sigmask(SIGINT);
- sigset(SIGINT, foo); sigrelse(SIGINT);
- sighold(SIGINT); sigpause(SIGINT);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3380: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3383: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3386: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3389: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_signal_vintage=svr3
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_signal_vintage=v7
-
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-echo "$as_me:3408: result: $bash_cv_signal_vintage" >&5
-echo "${ECHO_T}$bash_cv_signal_vintage" >&6
-if test "$bash_cv_signal_vintage" = posix; then
-cat >>confdefs.h <<\EOF
-#define HAVE_POSIX_SIGNALS 1
-EOF
-
-elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
-cat >>confdefs.h <<\EOF
-#define HAVE_BSD_SIGNALS 1
-EOF
-
-elif test "$bash_cv_signal_vintage" = svr3; then
-cat >>confdefs.h <<\EOF
-#define HAVE_USG_SIGHOLD 1
-EOF
-
-fi
-
-echo "$as_me:3427: checking if signal handlers must be reinstalled when invoked" >&5
-echo $ECHO_N "checking if signal handlers must be reinstalled when invoked... $ECHO_C" >&6
-if test "${bash_cv_must_reinstall_sighandlers+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- { echo "$as_me:3433: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5
-echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;}
- bash_cv_must_reinstall_sighandlers=no
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3439 "configure"
-#include "confdefs.h"
-
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-typedef RETSIGTYPE sigfunc();
-
-int nsigint;
-
-#ifdef HAVE_POSIX_SIGNALS
-sigfunc *
-set_signal_handler(sig, handler)
- int sig;
- sigfunc *handler;
-{
- struct sigaction act, oact;
- act.sa_handler = handler;
- act.sa_flags = 0;
- sigemptyset (&act.sa_mask);
- sigemptyset (&oact.sa_mask);
- sigaction (sig, &act, &oact);
- return (oact.sa_handler);
-}
-#else
-#define set_signal_handler(s, h) signal(s, h)
-#endif
-
-RETSIGTYPE
-sigint(s)
-int s;
-{
- nsigint++;
-}
-
-main()
-{
- nsigint = 0;
- set_signal_handler(SIGINT, sigint);
- kill((int)getpid(), SIGINT);
- kill((int)getpid(), SIGINT);
- exit(nsigint != 2);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3487: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3490: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3492: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3495: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_must_reinstall_sighandlers=no
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_must_reinstall_sighandlers=yes
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-
-echo "$as_me:3508: result: $bash_cv_must_reinstall_sighandlers" >&5
-echo "${ECHO_T}$bash_cv_must_reinstall_sighandlers" >&6
-if test $bash_cv_must_reinstall_sighandlers = yes; then
-cat >>confdefs.h <<\EOF
-#define MUST_REINSTALL_SIGHANDLERS 1
-EOF
-
-fi
-
-echo "$as_me:3517: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
-echo $ECHO_N "checking for presence of POSIX-style sigsetjmp/siglongjmp... $ECHO_C" >&6
-if test "${bash_cv_func_sigsetjmp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- { echo "$as_me:3523: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5
-echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;}
- bash_cv_func_sigsetjmp=missing
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3529 "configure"
-#include "confdefs.h"
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-#include <setjmp.h>
-
-main()
-{
-#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
-exit (1);
-#else
-
-int code;
-sigset_t set, oset;
-sigjmp_buf xx;
-
-/* get the mask */
-sigemptyset(&set);
-sigemptyset(&oset);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
-
-/* save it */
-code = sigsetjmp(xx, 1);
-if (code)
- exit(0); /* could get sigmask and compare to oset here. */
-
-/* change it */
-sigaddset(&set, SIGINT);
-sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
-
-/* and siglongjmp */
-siglongjmp(xx, 10);
-exit(1);
-#endif
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3571: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3574: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3576: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3579: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_func_sigsetjmp=present
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_func_sigsetjmp=missing
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-
-echo "$as_me:3592: result: $bash_cv_func_sigsetjmp" >&5
-echo "${ECHO_T}$bash_cv_func_sigsetjmp" >&6
-if test $bash_cv_func_sigsetjmp = present; then
-cat >>confdefs.h <<\EOF
-#define HAVE_POSIX_SIGSETJMP 1
-EOF
-
-fi
-
-echo "$as_me:3601: checking for lstat" >&5
-echo $ECHO_N "checking for lstat... $ECHO_C" >&6
-if test "${bash_cv_func_lstat+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3607 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-int
-main ()
-{
- lstat(".",(struct stat *)0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3622: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3625: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3628: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3631: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_func_lstat=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_func_lstat=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:3641: result: $bash_cv_func_lstat" >&5
-echo "${ECHO_T}$bash_cv_func_lstat" >&6
-if test $bash_cv_func_lstat = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_LSTAT 1
-EOF
-
-fi
-
-echo "$as_me:3650: checking whether or not strcoll and strcmp differ" >&5
-echo $ECHO_N "checking whether or not strcoll and strcmp differ... $ECHO_C" >&6
-if test "${bash_cv_func_strcoll_broken+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- { echo "$as_me:3656: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5
-echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;}
- bash_cv_func_strcoll_broken=no
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3662 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#if defined (HAVE_LOCALE_H)
-#include <locale.h>
-#endif
-
-main(c, v)
-int c;
-char *v[];
-{
- int r1, r2;
- char *deflocale, *defcoll;
-
-#ifdef HAVE_SETLOCALE
- deflocale = setlocale(LC_ALL, "");
- defcoll = setlocale(LC_COLLATE, "");
-#endif
-
-#ifdef HAVE_STRCOLL
- /* These two values are taken from tests/glob-test. */
- r1 = strcoll("abd", "aXd");
-#else
- r1 = 0;
-#endif
- r2 = strcmp("abd", "aXd");
-
- /* These two should both be greater than 0. It is permissible for
- a system to return different values, as long as the sign is the
- same. */
-
- /* Exit with 1 (failure) if these two values are both > 0, since
- this tests whether strcoll(3) is broken with respect to strcmp(3)
- in the default locale. */
- exit (r1 > 0 && r2 > 0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3702: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3705: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3707: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3710: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_func_strcoll_broken=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_func_strcoll_broken=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-
-echo "$as_me:3723: result: $bash_cv_func_strcoll_broken" >&5
-echo "${ECHO_T}$bash_cv_func_strcoll_broken" >&6
-if test $bash_cv_func_strcoll_broken = yes; then
-cat >>confdefs.h <<\EOF
-#define STRCOLL_BROKEN 1
-EOF
-
-fi
-
-echo "$as_me:3732: checking whether getpw functions are declared in pwd.h" >&5
-echo $ECHO_N "checking whether getpw functions are declared in pwd.h... $ECHO_C" >&6
-if test "${bash_cv_getpw_declared+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3738 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#include <pwd.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "getpwuid" >/dev/null 2>&1; then
- bash_cv_getpw_declared=yes
-else
- bash_cv_getpw_declared=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$as_me:3758: result: $bash_cv_getpw_declared" >&5
-echo "${ECHO_T}$bash_cv_getpw_declared" >&6
-if test $bash_cv_getpw_declared = yes; then
-cat >>confdefs.h <<\EOF
-#define HAVE_GETPW_DECLS 1
-EOF
-
-fi
-
-echo "$as_me:3767: checking POSIX termios" >&5
-echo $ECHO_N "checking POSIX termios... $ECHO_C" >&6
-if test "${ac_cv_sys_posix_termios+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3773 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <unistd.h>
-#include <termios.h>
-int
-main ()
-{
-/* SunOS 4.0.3 has termios.h but not the library calls. */
- tcgetattr(0, 0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3788: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3791: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3794: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3797: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_posix_termios=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_sys_posix_termios=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:3807: result: $ac_cv_sys_posix_termios" >&5
-echo "${ECHO_T}$ac_cv_sys_posix_termios" >&6
-
-if test $ac_cv_sys_posix_termios = yes; then
- echo "$as_me:3811: checking whether termios.h defines TIOCGWINSZ" >&5
-echo $ECHO_N "checking whether termios.h defines TIOCGWINSZ... $ECHO_C" >&6
-if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3817 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <termios.h>
-#ifdef TIOCGWINSZ
- yes
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- ac_cv_sys_tiocgwinsz_in_termios_h=yes
-else
- ac_cv_sys_tiocgwinsz_in_termios_h=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:3835: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
-echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_termios_h" >&6
-
-fi
-if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then
- echo "$as_me:3840: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
-echo $ECHO_N "checking whether sys/ioctl.h defines TIOCGWINSZ... $ECHO_C" >&6
-if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3846 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#ifdef TIOCGWINSZ
- yes
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes
-else
- ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:3864: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
-echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6
-
- if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then
-
-cat >>confdefs.h <<\EOF
-#define GWINSZ_IN_SYS_IOCTL 1
-EOF
-
- fi
-fi
-
-echo "$as_me:3876: checking whether signal handlers are of type void" >&5
-echo $ECHO_N "checking whether signal handlers are of type void... $ECHO_C" >&6
-if test "${bash_cv_void_sighandler+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3882 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C"
-#endif
-void (*signal ()) ();
-int
-main ()
-{
-int i;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:3902: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:3905: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:3908: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3911: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_void_sighandler=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_void_sighandler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:3921: result: $bash_cv_void_sighandler" >&5
-echo "${ECHO_T}$bash_cv_void_sighandler" >&6
-if test $bash_cv_void_sighandler = yes; then
-cat >>confdefs.h <<\EOF
-#define VOID_SIGHANDLER 1
-EOF
-
-fi
-
-echo "$as_me:3930: checking for TIOCSTAT in sys/ioctl.h" >&5
-echo $ECHO_N "checking for TIOCSTAT in sys/ioctl.h... $ECHO_C" >&6
-if test "${bash_cv_tiocstat_in_ioctl+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3936 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-int
-main ()
-{
-int x = TIOCSTAT;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:3949: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:3952: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:3955: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3958: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_tiocstat_in_ioctl=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_tiocstat_in_ioctl=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:3969: result: $bash_cv_tiocstat_in_ioctl" >&5
-echo "${ECHO_T}$bash_cv_tiocstat_in_ioctl" >&6
-if test $bash_cv_tiocstat_in_ioctl = yes; then
-cat >>confdefs.h <<\EOF
-#define TIOCSTAT_IN_SYS_IOCTL 1
-EOF
-
-fi
-
-echo "$as_me:3978: checking for FIONREAD in sys/ioctl.h" >&5
-echo $ECHO_N "checking for FIONREAD in sys/ioctl.h... $ECHO_C" >&6
-if test "${bash_cv_fionread_in_ioctl+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3984 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-int
-main ()
-{
-int x = FIONREAD;
- ;
- 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
- bash_cv_fionread_in_ioctl=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_fionread_in_ioctl=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:4017: result: $bash_cv_fionread_in_ioctl" >&5
-echo "${ECHO_T}$bash_cv_fionread_in_ioctl" >&6
-if test $bash_cv_fionread_in_ioctl = yes; then
-cat >>confdefs.h <<\EOF
-#define FIONREAD_IN_SYS_IOCTL 1
-EOF
-
-fi
-
-echo "$as_me:4026: checking for speed_t in sys/types.h" >&5
-echo $ECHO_N "checking for speed_t in sys/types.h... $ECHO_C" >&6
-if test "${bash_cv_speed_t_in_sys_types+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4032 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int
-main ()
-{
-speed_t x;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4044: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4047: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4050: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4053: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_speed_t_in_sys_types=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_speed_t_in_sys_types=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:4064: result: $bash_cv_speed_t_in_sys_types" >&5
-echo "${ECHO_T}$bash_cv_speed_t_in_sys_types" >&6
-if test $bash_cv_speed_t_in_sys_types = yes; then
-cat >>confdefs.h <<\EOF
-#define SPEED_T_IN_SYS_TYPES 1
-EOF
-
-fi
-
-echo "$as_me:4073: checking for struct winsize in sys/ioctl.h and termios.h" >&5
-echo $ECHO_N "checking for struct winsize in sys/ioctl.h and termios.h... $ECHO_C" >&6
-if test "${bash_cv_struct_winsize_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4079 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-int
-main ()
-{
-struct winsize x;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4092: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4095: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4098: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4101: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_struct_winsize_header=ioctl_h
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 4108 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <termios.h>
-int
-main ()
-{
-struct winsize x;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4121: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4124: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4127: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4130: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_struct_winsize_header=termios_h
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_struct_winsize_header=other
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-if test $bash_cv_struct_winsize_header = ioctl_h; then
- echo "$as_me:4145: result: sys/ioctl.h" >&5
-echo "${ECHO_T}sys/ioctl.h" >&6
- cat >>confdefs.h <<\EOF
-#define STRUCT_WINSIZE_IN_SYS_IOCTL 1
-EOF
-
-elif test $bash_cv_struct_winsize_header = termios_h; then
- echo "$as_me:4152: result: termios.h" >&5
-echo "${ECHO_T}termios.h" >&6
- cat >>confdefs.h <<\EOF
-#define STRUCT_WINSIZE_IN_TERMIOS 1
-EOF
-
-else
- echo "$as_me:4159: result: not found" >&5
-echo "${ECHO_T}not found" >&6
-fi
-
-echo "$as_me:4163: checking if struct dirent has a d_ino member" >&5
-echo $ECHO_N "checking if struct dirent has a d_ino member... $ECHO_C" >&6
-if test "${bash_cv_dirent_has_dino+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4169 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-
-int
-main ()
-{
-
-struct dirent d; int z; z = d.d_ino;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4203: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4206: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4209: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4212: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_dirent_has_dino=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_dirent_has_dino=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:4223: result: $bash_cv_dirent_has_dino" >&5
-echo "${ECHO_T}$bash_cv_dirent_has_dino" >&6
-if test $bash_cv_dirent_has_dino = yes; then
-cat >>confdefs.h <<\EOF
-#define STRUCT_DIRENT_HAS_D_INO 1
-EOF
-
-fi
-
-echo "$as_me:4232: checking if struct dirent has a d_fileno member" >&5
-echo $ECHO_N "checking if struct dirent has a d_fileno member... $ECHO_C" >&6
-if test "${bash_cv_dirent_has_d_fileno+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4238 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-
-int
-main ()
-{
-
-struct dirent d; int z; z = d.d_fileno;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4272: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4275: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4278: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4281: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_dirent_has_d_fileno=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_dirent_has_d_fileno=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:4292: result: $bash_cv_dirent_has_d_fileno" >&5
-echo "${ECHO_T}$bash_cv_dirent_has_d_fileno" >&6
-if test $bash_cv_dirent_has_d_fileno = yes; then
-cat >>confdefs.h <<\EOF
-#define STRUCT_DIRENT_HAS_D_FILENO 1
-EOF
-
-fi
-
-case "$host_os" in
-aix*) prefer_curses=yes ;;
-esac
-
-if test "X$bash_cv_termcap_lib" = "X"; then
-_bash_needmsg=yes
-else
-echo "$as_me:4308: checking which library has the termcap functions" >&5
-echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6
-_bash_needmsg=
-fi
-if test "${bash_cv_termcap_lib+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- echo "$as_me:4315: checking for tgetent in -ltermcap" >&5
-echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6
-if test "${ac_cv_lib_termcap_tgetent+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ltermcap $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4323 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main ()
-{
-tgetent ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4342: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4345: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4348: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4351: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_termcap_tgetent=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_termcap_tgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4362: result: $ac_cv_lib_termcap_tgetent" >&5
-echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6
-if test $ac_cv_lib_termcap_tgetent = yes; then
- bash_cv_termcap_lib=libtermcap
-else
- echo "$as_me:4367: checking for tgetent in -ltinfo" >&5
-echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6
-if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ltinfo $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4375 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main ()
-{
-tgetent ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4394: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4397: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4400: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4403: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_tinfo_tgetent=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_tinfo_tgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4414: result: $ac_cv_lib_tinfo_tgetent" >&5
-echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6
-if test $ac_cv_lib_tinfo_tgetent = yes; then
- bash_cv_termcap_lib=libtinfo
-else
- echo "$as_me:4419: checking for tgetent in -lcurses" >&5
-echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6
-if test "${ac_cv_lib_curses_tgetent+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4427 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main ()
-{
-tgetent ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4446: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4449: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4452: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4455: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_curses_tgetent=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_curses_tgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4466: result: $ac_cv_lib_curses_tgetent" >&5
-echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6
-if test $ac_cv_lib_curses_tgetent = yes; then
- bash_cv_termcap_lib=libcurses
-else
- echo "$as_me:4471: checking for tgetent in -lncurses" >&5
-echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6
-if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lncurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4479 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main ()
-{
-tgetent ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4498: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4501: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4504: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4507: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_ncurses_tgetent=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_ncurses_tgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4518: result: $ac_cv_lib_ncurses_tgetent" >&5
-echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6
-if test $ac_cv_lib_ncurses_tgetent = yes; then
- bash_cv_termcap_lib=libncurses
-else
- bash_cv_termcap_lib=gnutermcap
-fi
-
-fi
-
-fi
-
-fi
-
-fi
-
-if test "X$_bash_needmsg" = "Xyes"; then
-echo "$as_me:4535: checking which library has the termcap functions" >&5
-echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6
-fi
-echo "$as_me:4538: result: using $bash_cv_termcap_lib" >&5
-echo "${ECHO_T}using $bash_cv_termcap_lib" >&6
-if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
-LDFLAGS="$LDFLAGS -L./lib/termcap"
-TERMCAP_LIB="./lib/termcap/libtermcap.a"
-TERMCAP_DEP="./lib/termcap/libtermcap.a"
-elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
-TERMCAP_LIB=-ltermcap
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libtinfo; then
-TERMCAP_LIB=-ltinfo
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libncurses; then
-TERMCAP_LIB=-lncurses
-TERMCAP_DEP=
-else
-TERMCAP_LIB=-lcurses
-TERMCAP_DEP=
-fi
-
-if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
- if test "$prefer_curses" = yes; then
- TERMCAP_LIB=-lcurses
- else
- TERMCAP_LIB=-ltermcap #default
- fi
-fi
-
-for ac_header in wctype.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4569: 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 4575 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:4579: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:4585: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:4604: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-for ac_header in wchar.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4617: 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 4623 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:4627: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:4633: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:4652: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-for ac_header in langinfo.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4665: 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 4671 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:4675: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:4681: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:4700: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:4710: checking for mbsrtowcs" >&5
-echo $ECHO_N "checking for mbsrtowcs... $ECHO_C" >&6
-if test "${ac_cv_func_mbsrtowcs+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4716 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbsrtowcs (); 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 mbsrtowcs ();
-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_mbsrtowcs) || defined (__stub___mbsrtowcs)
-choke me
-#else
-f = mbsrtowcs;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4747: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4750: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4753: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4756: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_mbsrtowcs=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_mbsrtowcs=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:4766: result: $ac_cv_func_mbsrtowcs" >&5
-echo "${ECHO_T}$ac_cv_func_mbsrtowcs" >&6
-if test $ac_cv_func_mbsrtowcs = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_MBSRTOWCS 1
-EOF
-
-fi
-
-echo "$as_me:4775: checking for wcwidth" >&5
-echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6
-if test "${ac_cv_func_wcwidth+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4781 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wcwidth (); 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 wcwidth ();
-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_wcwidth) || defined (__stub___wcwidth)
-choke me
-#else
-f = wcwidth;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4812: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4815: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4818: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4821: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_wcwidth=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_wcwidth=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:4831: result: $ac_cv_func_wcwidth" >&5
-echo "${ECHO_T}$ac_cv_func_wcwidth" >&6
-if test $ac_cv_func_wcwidth = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_WCWIDTH 1
-EOF
-
-fi
-
-echo "$as_me:4840: checking for mbstate_t" >&5
-echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
-if test "${bash_cv_have_mbstate_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:4846: error: cannot run test program while cross compiling" >&5
-echo "$as_me: error: cannot run test program while cross compiling" >&2;}
- { (exit 1); exit 1; }; }
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4851 "configure"
-#include "confdefs.h"
-
-#include <wchar.h>
-int
-main ()
-{
- mbstate_t ps;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:4863: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4866: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:4868: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4871: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_have_mbstate_t=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_have_mbstate_t=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:4883: result: $bash_cv_have_mbstate_t" >&5
-echo "${ECHO_T}$bash_cv_have_mbstate_t" >&6
-if test $bash_cv_have_mbstate_t = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_MBSTATE_T 1
-EOF
-
-fi
-
-echo "$as_me:4892: checking for nl_langinfo and CODESET" >&5
-echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
-if test "${bash_cv_langinfo_codeset+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4898 "configure"
-#include "confdefs.h"
-#include <langinfo.h>
-int
-main ()
-{
-char* cs = nl_langinfo(CODESET);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4910: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4913: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4916: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4919: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_langinfo_codeset=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_langinfo_codeset=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:4929: result: $bash_cv_langinfo_codeset" >&5
-echo "${ECHO_T}$bash_cv_langinfo_codeset" >&6
-if test $bash_cv_langinfo_codeset = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_LANGINFO_CODESET 1
-EOF
-
-fi
-
-case "$host_cpu" in
-*cray*) LOCAL_CFLAGS=-DCRAY ;;
-*s390*) LOCAL_CFLAGS=-fsigned-char ;;
-esac
-
-case "$host_os" in
-isc*) LOCAL_CFLAGS=-Disc386 ;;
-esac
-
-# shared library configuration section
-#
-# Shared object configuration section. These values are generated by
-# ${srcdir}/support/shobj-conf
-#
-if test -f ${srcdir}/support/shobj-conf; then
- echo "$as_me:4953: checking configuration for building shared libraries" >&5
-echo $ECHO_N "checking configuration for building shared libraries... $ECHO_C" >&6
- eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
-
- echo "$as_me:4957: result: $SHLIB_STATUS" >&5
-echo "${ECHO_T}$SHLIB_STATUS" >&6
-
- # SHLIB_STATUS is either `supported' or `unsupported'. If it's
- # `unsupported', turn off any default shared library building
- if test "$SHLIB_STATUS" = 'unsupported'; then
- opt_shared_libs=no
- fi
-
- # shared library versioning
- # quoted for m4 so I can use character classes
- SHLIB_MAJOR=`expr "$LIBVERSION" : '\([0-9]\)\..*'`
- SHLIB_MINOR=`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`
-
-fi
-
-if test "$opt_static_libs" = "yes"; then
- STATIC_TARGET=static
- STATIC_INSTALL_TARGET=install-static
-fi
-if test "$opt_shared_libs" = "yes"; then
- SHARED_TARGET=shared
- SHARED_INSTALL_TARGET=install-shared
-fi
-
-case "$host_os" in
-msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file
-*) BUILD_DIR=`pwd` ;;
-esac
-
-ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/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
-# 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.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `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.
-{
- (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
- 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
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# 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
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:5068: 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.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-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="\\
-readline config.status 4.3
-configured by $0, generated by GNU Autoconf 2.52,
- 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
- 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)
- 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:5244: 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:5263: 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
- shift
-done
-
-exec 5>>config.log
-cat >&5 << _ACEOF
-
-## ----------------------- ##
-## Running config.status. ##
-## ----------------------- ##
-
-This file was extended by $as_me (readline 4.3) 2.52, 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`
-
-_ACEOF
-EOF
-
-cat >>$CONFIG_STATUS <<\EOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
- "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
- "shlib/Makefile" ) CONFIG_FILES="$CONFIG_FILES shlib/Makefile" ;;
- "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- *) { { echo "$as_me:5304: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# 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
-
-# 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,@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,@SET_MAKE@,$SET_MAKE,;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,@CPP@,$CPP,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@AR@,$AR,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@MAKE_SHELL@,$MAKE_SHELL,;t t
-s,@SHOBJ_CC@,$SHOBJ_CC,;t t
-s,@SHOBJ_CFLAGS@,$SHOBJ_CFLAGS,;t t
-s,@SHOBJ_LD@,$SHOBJ_LD,;t t
-s,@SHOBJ_LDFLAGS@,$SHOBJ_LDFLAGS,;t t
-s,@SHOBJ_XLDFLAGS@,$SHOBJ_XLDFLAGS,;t t
-s,@SHOBJ_LIBS@,$SHOBJ_LIBS,;t t
-s,@SHOBJ_STATUS@,$SHOBJ_STATUS,;t t
-s,@SHLIB_STATUS@,$SHLIB_STATUS,;t t
-s,@SHLIB_XLDFLAGS@,$SHLIB_XLDFLAGS,;t t
-s,@SHLIB_LIBSUFF@,$SHLIB_LIBSUFF,;t t
-s,@SHLIB_LIBVERSION@,$SHLIB_LIBVERSION,;t t
-s,@SHLIB_LIBS@,$SHLIB_LIBS,;t t
-s,@SHLIB_MAJOR@,$SHLIB_MAJOR,;t t
-s,@SHLIB_MINOR@,$SHLIB_MINOR,;t t
-s,@STATIC_TARGET@,$STATIC_TARGET,;t t
-s,@SHARED_TARGET@,$SHARED_TARGET,;t t
-s,@STATIC_INSTALL_TARGET@,$STATIC_INSTALL_TARGET,;t t
-s,@SHARED_INSTALL_TARGET@,$SHARED_INSTALL_TARGET,;t t
-s,@BUILD_DIR@,$BUILD_DIR,;t t
-s,@LOCAL_CFLAGS@,$LOCAL_CFLAGS,;t t
-s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t
-s,@LOCAL_DEFS@,$LOCAL_DEFS,;t t
-s,@ARFLAGS@,$ARFLAGS,;t t
-s,@LIBVERSION@,$LIBVERSION,;t t
-s,@TERMCAP_LIB@,$TERMCAP_LIB,;t t
-CEOF
-
-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"
-
-EOF
-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".
- 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
-
- # 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
- { 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.
- ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- 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.
- ac_srcdir=$ac_dots$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_dots$srcdir ;;
- esac
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_dots$INSTALL ;;
- esac
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:5549: 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:5567: 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:5580: 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
-
-#
-# 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.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;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_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.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
-
- test x"$ac_file" != x- && { echo "$as_me:5641: 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:5652: 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:5665: 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
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h. The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status. Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\EOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\(\([^ (][^ (]*\)([^)]*)\)[ ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp
-t end
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-EOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless. Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\EOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-EOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo ' :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
- # Write a limited-size here document to $tmp/defines.sed.
- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#define' lines.
- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/defines.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
- rm -f conftest.defines
- mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo ' fi # egrep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
- # Write a limited-size here document to $tmp/undefs.sed.
- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#undef'
- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
- rm -f conftest.undefs
- mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-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
- 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:5782: $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
- { 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
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-done
-EOF
-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 )
-# Makefile uses this timestamp file to record whether config.h is up to date.
-echo > stamp-h
- ;;
- esac
-done
-EOF
-
-cat >>$CONFIG_STATUS <<\EOF
-
-{ (exit 0); exit 0; }
-EOF
-chmod +x $CONFIG_STATUS
-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
-
diff --git a/readline-4.3.orig/configure.in b/readline-4.3.orig/configure.in
deleted file mode 100644
index bc78f8a..0000000
--- a/readline-4.3.orig/configure.in
+++ /dev/null
@@ -1,206 +0,0 @@
-dnl
-dnl Configure script for readline library
-dnl
-dnl report bugs to chet@po.cwru.edu
-dnl
-dnl Process this file with autoconf to produce a configure script.
-AC_REVISION([for Readline 4.3, version 2.45, from autoconf version] AC_ACVERSION)
-
-AC_INIT(readline, 4.3, bug-readline@gnu.org)
-
-dnl make sure we are using a recent autoconf version
-AC_PREREQ(2.50)
-
-AC_CONFIG_SRCDIR(readline.h)
-AC_CONFIG_AUX_DIR(./support)
-AC_CONFIG_HEADERS(config.h)
-
-dnl update the value of RL_READLINE_VERSION in readline.h when this changes
-LIBVERSION=4.3
-
-AC_CANONICAL_HOST
-
-dnl configure defaults
-opt_curses=no
-
-dnl arguments to configure
-AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
-
-if test "$opt_curses" = "yes"; then
- prefer_curses=yes
-fi
-
-dnl option parsing for optional features
-opt_static_libs=yes
-opt_shared_libs=yes
-
-AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval)
-AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval)
-
-echo ""
-echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
-echo ""
-
-# We want these before the checks, so the checks can modify their values.
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
-
-AC_PROG_MAKE_SET
-AC_PROG_CC
-dnl AC_AIX
-AC_MINIX
-
-# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
-test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
-
-AC_PROG_GCC_TRADITIONAL
-AC_PROG_INSTALL
-AC_CHECK_PROG(AR, ar, , ar)
-dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
-dnl This allows people to set it when running configure or make
-test -n "$ARFLAGS" || ARFLAGS="cr"
-AC_PROG_RANLIB
-
-MAKE_SHELL=/bin/sh
-AC_SUBST(MAKE_SHELL)
-
-AC_C_CONST
-AC_C_PROTOTYPES
-AC_C_CHAR_UNSIGNED
-
-AC_TYPE_SIGNAL
-
-AC_TYPE_SIZE_T
-AC_CHECK_TYPE(ssize_t, int)
-
-AC_HEADER_STAT
-AC_HEADER_DIRENT
-
-AC_CHECK_FUNCS(lstat memmove putenv select setenv setlocale \
- strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit)
-
-AC_FUNC_STRCOLL
-
-AC_CHECK_HEADERS(unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
- limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
- termcap.h termios.h termio.h sys/file.h locale.h memory.h )
-
-BASH_SYS_SIGNAL_VINTAGE
-BASH_SYS_REINSTALL_SIGHANDLERS
-
-BASH_FUNC_POSIX_SETJMP
-BASH_FUNC_LSTAT
-BASH_FUNC_STRCOLL
-
-BASH_CHECK_GETPW_FUNCS
-
-AC_HEADER_TIOCGWINSZ
-
-BASH_TYPE_SIGHANDLER
-BASH_HAVE_TIOCSTAT
-BASH_HAVE_FIONREAD
-BASH_CHECK_SPEED_T
-BASH_STRUCT_WINSIZE
-BASH_STRUCT_DIRENT_D_INO
-BASH_STRUCT_DIRENT_D_FILENO
-
-dnl yuck
-case "$host_os" in
-aix*) prefer_curses=yes ;;
-esac
-BASH_CHECK_LIB_TERMCAP
-if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
- if test "$prefer_curses" = yes; then
- TERMCAP_LIB=-lcurses
- else
- TERMCAP_LIB=-ltermcap #default
- fi
-fi
-
-BASH_CHECK_MULTIBYTE
-
-case "$host_cpu" in
-*cray*) LOCAL_CFLAGS=-DCRAY ;;
-*s390*) LOCAL_CFLAGS=-fsigned-char ;;
-esac
-
-case "$host_os" in
-isc*) LOCAL_CFLAGS=-Disc386 ;;
-esac
-
-# shared library configuration section
-#
-# Shared object configuration section. These values are generated by
-# ${srcdir}/support/shobj-conf
-#
-if test -f ${srcdir}/support/shobj-conf; then
- AC_MSG_CHECKING(configuration for building shared libraries)
- eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
- AC_SUBST(SHOBJ_CC)
- AC_SUBST(SHOBJ_CFLAGS)
- AC_SUBST(SHOBJ_LD)
- AC_SUBST(SHOBJ_LDFLAGS)
- AC_SUBST(SHOBJ_XLDFLAGS)
- AC_SUBST(SHOBJ_LIBS)
- AC_SUBST(SHOBJ_STATUS)
- AC_SUBST(SHLIB_STATUS)
- AC_SUBST(SHLIB_XLDFLAGS)
- AC_SUBST(SHLIB_LIBSUFF)
- AC_SUBST(SHLIB_LIBVERSION)
- AC_SUBST(SHLIB_LIBS)
- AC_MSG_RESULT($SHLIB_STATUS)
-
- # SHLIB_STATUS is either `supported' or `unsupported'. If it's
- # `unsupported', turn off any default shared library building
- if test "$SHLIB_STATUS" = 'unsupported'; then
- opt_shared_libs=no
- fi
-
- # shared library versioning
- # quoted for m4 so I can use character classes
- SHLIB_MAJOR=[`expr "$LIBVERSION" : '\([0-9]\)\..*'`]
- SHLIB_MINOR=[`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`]
- AC_SUBST(SHLIB_MAJOR)
- AC_SUBST(SHLIB_MINOR)
-fi
-
-if test "$opt_static_libs" = "yes"; then
- STATIC_TARGET=static
- STATIC_INSTALL_TARGET=install-static
-fi
-if test "$opt_shared_libs" = "yes"; then
- SHARED_TARGET=shared
- SHARED_INSTALL_TARGET=install-shared
-fi
-
-AC_SUBST(STATIC_TARGET)
-AC_SUBST(SHARED_TARGET)
-AC_SUBST(STATIC_INSTALL_TARGET)
-AC_SUBST(SHARED_INSTALL_TARGET)
-
-case "$host_os" in
-msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file
-*) BUILD_DIR=`pwd` ;;
-esac
-
-AC_SUBST(BUILD_DIR)
-
-AC_SUBST(CFLAGS)
-AC_SUBST(LOCAL_CFLAGS)
-AC_SUBST(LOCAL_LDFLAGS)
-AC_SUBST(LOCAL_DEFS)
-
-AC_SUBST(AR)
-AC_SUBST(ARFLAGS)
-
-AC_SUBST(host_cpu)
-AC_SUBST(host_os)
-
-AC_SUBST(LIBVERSION)
-
-AC_SUBST(TERMCAP_LIB)
-
-AC_OUTPUT([Makefile doc/Makefile examples/Makefile shlib/Makefile],
-[
-# Makefile uses this timestamp file to record whether config.h is up to date.
-echo > stamp-h
-])
diff --git a/readline-4.3.orig/display.c b/readline-4.3.orig/display.c
deleted file mode 100644
index 5150ea6..0000000
--- a/readline-4.3.orig/display.c
+++ /dev/null
@@ -1,2196 +0,0 @@
-/* display.c -- readline redisplay facility. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include "posixstat.h"
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-/* Termcap library stuff. */
-#include "tcap.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strchr (), *strrchr ();
-#endif /* !strchr && !__STDC__ */
-
-#if defined (HACK_TERMCAP_MOTION)
-extern char *_rl_term_forward_char;
-#endif
-
-static void update_line PARAMS((char *, char *, int, int, int, int));
-static void space_to_eol PARAMS((int));
-static void delete_chars PARAMS((int));
-static void insert_some_chars PARAMS((char *, int, int));
-static void cr PARAMS((void));
-
-#if defined (HANDLE_MULTIBYTE)
-static int _rl_col_width PARAMS((char *, int, int));
-static int *_rl_wrapped_line;
-#else
-# define _rl_col_width(l, s, e) (((e) <= (s)) ? 0 : (e) - (s))
-#endif
-
-static int *inv_lbreaks, *vis_lbreaks;
-static int inv_lbsize, vis_lbsize;
-
-/* Heuristic used to decide whether it is faster to move from CUR to NEW
- by backing up or outputting a carriage return and moving forward. */
-#define CR_FASTER(new, cur) (((new) + 1) < ((cur) - (new)))
-
-/* **************************************************************** */
-/* */
-/* Display stuff */
-/* */
-/* **************************************************************** */
-
-/* This is the stuff that is hard for me. I never seem to write good
- display routines in C. Let's see how I do this time. */
-
-/* (PWP) Well... Good for a simple line updater, but totally ignores
- the problems of input lines longer than the screen width.
-
- update_line and the code that calls it makes a multiple line,
- automatically wrapping line update. Careful attention needs
- to be paid to the vertical position variables. */
-
-/* Keep two buffers; one which reflects the current contents of the
- screen, and the other to draw what we think the new contents should
- be. Then compare the buffers, and make whatever changes to the
- screen itself that we should. Finally, make the buffer that we
- just drew into be the one which reflects the current contents of the
- screen, and place the cursor where it belongs.
-
- Commands that want to can fix the display themselves, and then let
- this function know that the display has been fixed by setting the
- RL_DISPLAY_FIXED variable. This is good for efficiency. */
-
-/* Application-specific redisplay function. */
-rl_voidfunc_t *rl_redisplay_function = rl_redisplay;
-
-/* Global variables declared here. */
-/* What YOU turn on when you have handled all redisplay yourself. */
-int rl_display_fixed = 0;
-
-int _rl_suppress_redisplay = 0;
-
-/* The stuff that gets printed out before the actual text of the line.
- This is usually pointing to rl_prompt. */
-char *rl_display_prompt = (char *)NULL;
-
-/* Pseudo-global variables declared here. */
-/* The visible cursor position. If you print some text, adjust this. */
-int _rl_last_c_pos = 0;
-int _rl_last_v_pos = 0;
-
-/* Number of lines currently on screen minus 1. */
-int _rl_vis_botlin = 0;
-
-/* Variables used only in this file. */
-/* The last left edge of text that was displayed. This is used when
- doing horizontal scrolling. It shifts in thirds of a screenwidth. */
-static int last_lmargin;
-
-/* The line display buffers. One is the line currently displayed on
- the screen. The other is the line about to be displayed. */
-static char *visible_line = (char *)NULL;
-static char *invisible_line = (char *)NULL;
-
-/* A buffer for `modeline' messages. */
-static char msg_buf[128];
-
-/* Non-zero forces the redisplay even if we thought it was unnecessary. */
-static int forced_display;
-
-/* Default and initial buffer size. Can grow. */
-static int line_size = 1024;
-
-/* Variables to keep track of the expanded prompt string, which may
- include invisible characters. */
-
-static char *local_prompt, *local_prompt_prefix;
-static int prompt_visible_length, prompt_prefix_length;
-
-/* The number of invisible characters in the line currently being
- displayed on the screen. */
-static int visible_wrap_offset;
-
-/* The number of invisible characters in the prompt string. Static so it
- can be shared between rl_redisplay and update_line */
-static int wrap_offset;
-
-/* The index of the last invisible character in the prompt string. */
-static int prompt_last_invisible;
-
-/* The length (buffer offset) of the first line of the last (possibly
- multi-line) buffer displayed on the screen. */
-static int visible_first_line_len;
-
-/* Number of invisible characters on the first physical line of the prompt.
- Only valid when the number of physical characters in the prompt exceeds
- (or is equal to) _rl_screenwidth. */
-static int prompt_invis_chars_first_line;
-
-static int prompt_last_screen_line;
-
-/* Expand the prompt string S and return the number of visible
- characters in *LP, if LP is not null. This is currently more-or-less
- a placeholder for expansion. LIP, if non-null is a place to store the
- index of the last invisible character in the returned string. NIFLP,
- if non-zero, is a place to store the number of invisible characters in
- the first prompt line. */
-
-/* Current implementation:
- \001 (^A) start non-visible characters
- \002 (^B) end non-visible characters
- all characters except \001 and \002 (following a \001) are copied to
- the returned string; all characters except those between \001 and
- \002 are assumed to be `visible'. */
-
-static char *
-expand_prompt (pmt, lp, lip, niflp)
- char *pmt;
- int *lp, *lip, *niflp;
-{
- char *r, *ret, *p;
- int l, rl, last, ignoring, ninvis, invfl;
-
- /* Short-circuit if we can. */
- if (strchr (pmt, RL_PROMPT_START_IGNORE) == 0)
- {
- r = savestring (pmt);
- if (lp)
- *lp = strlen (r);
- return r;
- }
-
- l = strlen (pmt);
- r = ret = (char *)xmalloc (l + 1);
-
- invfl = 0; /* invisible chars in first line of prompt */
-
- for (rl = ignoring = last = ninvis = 0, p = pmt; p && *p; p++)
- {
- /* This code strips the invisible character string markers
- RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */
- if (*p == RL_PROMPT_START_IGNORE)
- {
- ignoring++;
- continue;
- }
- else if (ignoring && *p == RL_PROMPT_END_IGNORE)
- {
- ignoring = 0;
- last = r - ret - 1;
- continue;
- }
- else
- {
- *r++ = *p;
- if (!ignoring)
- rl++;
- else
- ninvis++;
- if (rl == _rl_screenwidth)
- invfl = ninvis;
- }
- }
-
- if (rl < _rl_screenwidth)
- invfl = ninvis;
-
- *r = '\0';
- if (lp)
- *lp = rl;
- if (lip)
- *lip = last;
- if (niflp)
- *niflp = invfl;
- return ret;
-}
-
-/* Just strip out RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE from
- PMT and return the rest of PMT. */
-char *
-_rl_strip_prompt (pmt)
- char *pmt;
-{
- char *ret;
-
- ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL);
- return ret;
-}
-
-/*
- * Expand the prompt string into the various display components, if
- * necessary.
- *
- * local_prompt = expanded last line of string in rl_display_prompt
- * (portion after the final newline)
- * local_prompt_prefix = portion before last newline of rl_display_prompt,
- * expanded via expand_prompt
- * prompt_visible_length = number of visible characters in local_prompt
- * prompt_prefix_length = number of visible characters in local_prompt_prefix
- *
- * This function is called once per call to readline(). It may also be
- * called arbitrarily to expand the primary prompt.
- *
- * The return value is the number of visible characters on the last line
- * of the (possibly multi-line) prompt.
- */
-int
-rl_expand_prompt (prompt)
- char *prompt;
-{
- char *p, *t;
- int c;
-
- /* Clear out any saved values. */
- FREE (local_prompt);
- FREE (local_prompt_prefix);
-
- local_prompt = local_prompt_prefix = (char *)0;
- prompt_last_invisible = prompt_visible_length = 0;
-
- if (prompt == 0 || *prompt == 0)
- return (0);
-
- p = strrchr (prompt, '\n');
- if (!p)
- {
- /* The prompt is only one logical line, though it might wrap. */
- local_prompt = expand_prompt (prompt, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line);
- local_prompt_prefix = (char *)0;
- return (prompt_visible_length);
- }
- else
- {
- /* The prompt spans multiple lines. */
- t = ++p;
- local_prompt = expand_prompt (p, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line);
- c = *t; *t = '\0';
- /* The portion of the prompt string up to and including the
- final newline is now null-terminated. */
- local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
- (int *)NULL,
- &prompt_invis_chars_first_line);
- *t = c;
- return (prompt_prefix_length);
- }
-}
-
-/* Initialize the VISIBLE_LINE and INVISIBLE_LINE arrays, and their associated
- arrays of line break markers. MINSIZE is the minimum size of VISIBLE_LINE
- and INVISIBLE_LINE; if it is greater than LINE_SIZE, LINE_SIZE is
- increased. If the lines have already been allocated, this ensures that
- they can hold at least MINSIZE characters. */
-static void
-init_line_structures (minsize)
- int minsize;
-{
- register int n;
-
- if (invisible_line == 0) /* initialize it */
- {
- if (line_size < minsize)
- line_size = minsize;
- visible_line = (char *)xmalloc (line_size);
- invisible_line = (char *)xmalloc (line_size);
- }
- else if (line_size < minsize) /* ensure it can hold MINSIZE chars */
- {
- line_size *= 2;
- if (line_size < minsize)
- line_size = minsize;
- visible_line = (char *)xrealloc (visible_line, line_size);
- invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
-
- for (n = minsize; n < line_size; n++)
- {
- visible_line[n] = 0;
- invisible_line[n] = 1;
- }
-
- if (vis_lbreaks == 0)
- {
- /* should be enough. */
- inv_lbsize = vis_lbsize = 256;
- inv_lbreaks = (int *)xmalloc (inv_lbsize * sizeof (int));
- vis_lbreaks = (int *)xmalloc (vis_lbsize * sizeof (int));
-#if defined (HANDLE_MULTIBYTE)
- _rl_wrapped_line = (int *)xmalloc (vis_lbsize * sizeof (int));
-#endif
- inv_lbreaks[0] = vis_lbreaks[0] = 0;
- }
-}
-
-/* Basic redisplay algorithm. */
-void
-rl_redisplay ()
-{
- register int in, out, c, linenum, cursor_linenum;
- register char *line;
- int c_pos, inv_botlin, lb_botlin, lb_linenum;
- int newlines, lpos, temp;
- char *prompt_this_line;
-#if defined (HANDLE_MULTIBYTE)
- wchar_t wc;
- size_t wc_bytes;
- int wc_width;
- mbstate_t ps;
- int _rl_wrapped_multicolumn = 0;
-#endif
-
- if (!readline_echoing_p)
- return;
-
- if (!rl_display_prompt)
- rl_display_prompt = "";
-
- if (invisible_line == 0)
- {
- init_line_structures (0);
- rl_on_new_line ();
- }
-
- /* Draw the line into the buffer. */
- c_pos = -1;
-
- line = invisible_line;
- out = inv_botlin = 0;
-
- /* Mark the line as modified or not. We only do this for history
- lines. */
- if (_rl_mark_modified_lines && current_history () && rl_undo_list)
- {
- line[out++] = '*';
- line[out] = '\0';
- }
-
- /* If someone thought that the redisplay was handled, but the currently
- visible line has a different modification state than the one about
- to become visible, then correct the caller's misconception. */
- if (visible_line[0] != invisible_line[0])
- rl_display_fixed = 0;
-
- /* If the prompt to be displayed is the `primary' readline prompt (the
- one passed to readline()), use the values we have already expanded.
- If not, use what's already in rl_display_prompt. WRAP_OFFSET is the
- number of non-visible characters in the prompt string. */
- if (rl_display_prompt == rl_prompt || local_prompt)
- {
- int local_len = local_prompt ? strlen (local_prompt) : 0;
- if (local_prompt_prefix && forced_display)
- _rl_output_some_chars (local_prompt_prefix, strlen (local_prompt_prefix));
-
- if (local_len > 0)
- {
- temp = local_len + out + 2;
- if (temp >= line_size)
- {
- line_size = (temp + 1024) - (temp % 1024);
- visible_line = (char *)xrealloc (visible_line, line_size);
- line = invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
- strncpy (line + out, local_prompt, local_len);
- out += local_len;
- }
- line[out] = '\0';
- wrap_offset = local_len - prompt_visible_length;
- }
- else
- {
- int pmtlen;
- prompt_this_line = strrchr (rl_display_prompt, '\n');
- if (!prompt_this_line)
- prompt_this_line = rl_display_prompt;
- else
- {
- prompt_this_line++;
- pmtlen = prompt_this_line - rl_display_prompt; /* temp var */
- if (forced_display)
- {
- _rl_output_some_chars (rl_display_prompt, pmtlen);
- /* Make sure we are at column zero even after a newline,
- regardless of the state of terminal output processing. */
- if (pmtlen < 2 || prompt_this_line[-2] != '\r')
- cr ();
- }
- }
-
- pmtlen = strlen (prompt_this_line);
- temp = pmtlen + out + 2;
- if (temp >= line_size)
- {
- line_size = (temp + 1024) - (temp % 1024);
- visible_line = (char *)xrealloc (visible_line, line_size);
- line = invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
- strncpy (line + out, prompt_this_line, pmtlen);
- out += pmtlen;
- line[out] = '\0';
- wrap_offset = prompt_invis_chars_first_line = 0;
- }
-
-#define CHECK_INV_LBREAKS() \
- do { \
- if (newlines >= (inv_lbsize - 2)) \
- { \
- inv_lbsize *= 2; \
- inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
- } \
- } while (0)
-
-#if defined (HANDLE_MULTIBYTE)
-#define CHECK_LPOS() \
- do { \
- lpos++; \
- if (lpos >= _rl_screenwidth) \
- { \
- if (newlines >= (inv_lbsize - 2)) \
- { \
- inv_lbsize *= 2; \
- inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
- _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
- } \
- inv_lbreaks[++newlines] = out; \
- _rl_wrapped_line[newlines] = _rl_wrapped_multicolumn; \
- lpos = 0; \
- } \
- } while (0)
-#else
-#define CHECK_LPOS() \
- do { \
- lpos++; \
- if (lpos >= _rl_screenwidth) \
- { \
- if (newlines >= (inv_lbsize - 2)) \
- { \
- inv_lbsize *= 2; \
- inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
- } \
- inv_lbreaks[++newlines] = out; \
- lpos = 0; \
- } \
- } while (0)
-#endif
-
- /* inv_lbreaks[i] is where line i starts in the buffer. */
- inv_lbreaks[newlines = 0] = 0;
- lpos = out - wrap_offset;
-#if defined (HANDLE_MULTIBYTE)
- memset (_rl_wrapped_line, 0, vis_lbsize);
-#endif
-
- /* prompt_invis_chars_first_line is the number of invisible characters in
- the first physical line of the prompt.
- wrap_offset - prompt_invis_chars_first_line is the number of invis
- chars on the second line. */
-
- /* what if lpos is already >= _rl_screenwidth before we start drawing the
- contents of the command line? */
- while (lpos >= _rl_screenwidth)
- {
- /* fix from Darin Johnson <darin@acuson.com> for prompt string with
- invisible characters that is longer than the screen width. The
- prompt_invis_chars_first_line variable could be made into an array
- saying how many invisible characters there are per line, but that's
- probably too much work for the benefit gained. How many people have
- prompts that exceed two physical lines? */
- temp = ((newlines + 1) * _rl_screenwidth) +
-#if 0
- ((newlines == 0) ? prompt_invis_chars_first_line : 0) +
-#else
- ((newlines == 0 && local_prompt_prefix == 0) ? prompt_invis_chars_first_line : 0) +
-#endif
- ((newlines == 1) ? wrap_offset : 0);
-
- inv_lbreaks[++newlines] = temp;
- lpos -= _rl_screenwidth;
- }
-
- prompt_last_screen_line = newlines;
-
- /* Draw the rest of the line (after the prompt) into invisible_line, keeping
- track of where the cursor is (c_pos), the number of the line containing
- the cursor (lb_linenum), the last line number (lb_botlin and inv_botlin).
- It maintains an array of line breaks for display (inv_lbreaks).
- This handles expanding tabs for display and displaying meta characters. */
- lb_linenum = 0;
-#if defined (HANDLE_MULTIBYTE)
- in = 0;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- memset (&ps, 0, sizeof (mbstate_t));
- wc_bytes = mbrtowc (&wc, rl_line_buffer, rl_end, &ps);
- }
- else
- wc_bytes = 1;
- while (in < rl_end)
-#else
- for (in = 0; in < rl_end; in++)
-#endif
- {
- c = (unsigned char)rl_line_buffer[in];
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- if (wc_bytes == (size_t)-1 || wc_bytes == (size_t)-2)
- {
- /* Byte sequence is invalid or shortened. Assume that the
- first byte represents a character. */
- wc_bytes = 1;
- /* Assume that a character occupies a single column. */
- wc_width = 1;
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else if (wc_bytes == (size_t)0)
- break; /* Found '\0' */
- else
- {
- temp = wcwidth (wc);
- wc_width = (temp < 0) ? 1 : temp;
- }
- }
-#endif
-
- if (out + 8 >= line_size) /* XXX - 8 for \t */
- {
- line_size *= 2;
- visible_line = (char *)xrealloc (visible_line, line_size);
- invisible_line = (char *)xrealloc (invisible_line, line_size);
- line = invisible_line;
- }
-
- if (in == rl_point)
- {
- c_pos = out;
- lb_linenum = newlines;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- if (META_CHAR (c) && _rl_output_meta_chars == 0) /* XXX - clean up */
-#else
- if (META_CHAR (c))
-#endif
- {
- if (_rl_output_meta_chars == 0)
- {
- sprintf (line + out, "\\%o", c);
-
- if (lpos + 4 >= _rl_screenwidth)
- {
- temp = _rl_screenwidth - lpos;
- CHECK_INV_LBREAKS ();
- inv_lbreaks[++newlines] = out + temp;
- lpos = 4 - temp;
- }
- else
- lpos += 4;
-
- out += 4;
- }
- else
- {
- line[out++] = c;
- CHECK_LPOS();
- }
- }
-#if defined (DISPLAY_TABS)
- else if (c == '\t')
- {
- register int newout;
-
-#if 0
- newout = (out | (int)7) + 1;
-#else
- newout = out + 8 - lpos % 8;
-#endif
- temp = newout - out;
- if (lpos + temp >= _rl_screenwidth)
- {
- register int temp2;
- temp2 = _rl_screenwidth - lpos;
- CHECK_INV_LBREAKS ();
- inv_lbreaks[++newlines] = out + temp2;
- lpos = temp - temp2;
- while (out < newout)
- line[out++] = ' ';
- }
- else
- {
- while (out < newout)
- line[out++] = ' ';
- lpos += temp;
- }
- }
-#endif
- else if (c == '\n' && _rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
- {
- line[out++] = '\0'; /* XXX - sentinel */
- CHECK_INV_LBREAKS ();
- inv_lbreaks[++newlines] = out;
- lpos = 0;
- }
- else if (CTRL_CHAR (c) || c == RUBOUT)
- {
- line[out++] = '^';
- CHECK_LPOS();
- line[out++] = CTRL_CHAR (c) ? UNCTRL (c) : '?';
- CHECK_LPOS();
- }
- else
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- register int i;
-
- _rl_wrapped_multicolumn = 0;
-
- if (_rl_screenwidth < lpos + wc_width)
- for (i = lpos; i < _rl_screenwidth; i++)
- {
- /* The space will be removed in update_line() */
- line[out++] = ' ';
- _rl_wrapped_multicolumn++;
- CHECK_LPOS();
- }
- if (in == rl_point)
- {
- c_pos = out;
- lb_linenum = newlines;
- }
- for (i = in; i < in+wc_bytes; i++)
- line[out++] = rl_line_buffer[i];
- for (i = 0; i < wc_width; i++)
- CHECK_LPOS();
- }
- else
- {
- line[out++] = c;
- CHECK_LPOS();
- }
-#else
- line[out++] = c;
- CHECK_LPOS();
-#endif
- }
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- in += wc_bytes;
- wc_bytes = mbrtowc (&wc, rl_line_buffer + in, rl_end - in, &ps);
- }
- else
- in++;
-#endif
-
- }
- line[out] = '\0';
- if (c_pos < 0)
- {
- c_pos = out;
- lb_linenum = newlines;
- }
-
- inv_botlin = lb_botlin = newlines;
- CHECK_INV_LBREAKS ();
- inv_lbreaks[newlines+1] = out;
- cursor_linenum = lb_linenum;
-
- /* C_POS == position in buffer where cursor should be placed.
- CURSOR_LINENUM == line number where the cursor should be placed. */
-
- /* PWP: now is when things get a bit hairy. The visible and invisible
- line buffers are really multiple lines, which would wrap every
- (screenwidth - 1) characters. Go through each in turn, finding
- the changed region and updating it. The line order is top to bottom. */
-
- /* If we can move the cursor up and down, then use multiple lines,
- otherwise, let long lines display in a single terminal line, and
- horizontally scroll it. */
-
- if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
- {
- int nleft, pos, changed_screen_line;
-
- if (!rl_display_fixed || forced_display)
- {
- forced_display = 0;
-
- /* If we have more than a screenful of material to display, then
- only display a screenful. We should display the last screen,
- not the first. */
- if (out >= _rl_screenchars)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- out = _rl_find_prev_mbchar (line, _rl_screenchars, MB_FIND_ANY);
- else
- out = _rl_screenchars - 1;
- }
-
- /* The first line is at character position 0 in the buffer. The
- second and subsequent lines start at inv_lbreaks[N], offset by
- OFFSET (which has already been calculated above). */
-
-#define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
-#define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l]))
-#define INV_LLEN(l) (inv_lbreaks[l+1] - inv_lbreaks[l])
-#define VIS_CHARS(line) (visible_line + vis_lbreaks[line])
-#define VIS_LINE(line) ((line) > _rl_vis_botlin) ? "" : VIS_CHARS(line)
-#define INV_LINE(line) (invisible_line + inv_lbreaks[line])
-
- /* For each line in the buffer, do the updating display. */
- for (linenum = 0; linenum <= inv_botlin; linenum++)
- {
- update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum,
- VIS_LLEN(linenum), INV_LLEN(linenum), inv_botlin);
-
- /* If this is the line with the prompt, we might need to
- compensate for invisible characters in the new line. Do
- this only if there is not more than one new line (which
- implies that we completely overwrite the old visible line)
- and the new line is shorter than the old. Make sure we are
- at the end of the new line before clearing. */
- if (linenum == 0 &&
- inv_botlin == 0 && _rl_last_c_pos == out &&
- (wrap_offset > visible_wrap_offset) &&
- (_rl_last_c_pos < visible_first_line_len))
- {
- nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos;
- if (nleft)
- _rl_clear_to_eol (nleft);
- }
-
- /* Since the new first line is now visible, save its length. */
- if (linenum == 0)
- visible_first_line_len = (inv_botlin > 0) ? inv_lbreaks[1] : out - wrap_offset;
- }
-
- /* We may have deleted some lines. If so, clear the left over
- blank ones at the bottom out. */
- if (_rl_vis_botlin > inv_botlin)
- {
- char *tt;
- for (; linenum <= _rl_vis_botlin; linenum++)
- {
- tt = VIS_CHARS (linenum);
- _rl_move_vert (linenum);
- _rl_move_cursor_relative (0, tt);
- _rl_clear_to_eol
- ((linenum == _rl_vis_botlin) ? strlen (tt) : _rl_screenwidth);
- }
- }
- _rl_vis_botlin = inv_botlin;
-
- /* CHANGED_SCREEN_LINE is set to 1 if we have moved to a
- different screen line during this redisplay. */
- changed_screen_line = _rl_last_v_pos != cursor_linenum;
- if (changed_screen_line)
- {
- _rl_move_vert (cursor_linenum);
- /* If we moved up to the line with the prompt using _rl_term_up,
- the physical cursor position on the screen stays the same,
- but the buffer position needs to be adjusted to account
- for invisible characters. */
- if (cursor_linenum == 0 && wrap_offset)
- _rl_last_c_pos += wrap_offset;
- }
-
- /* We have to reprint the prompt if it contains invisible
- characters, since it's not generally OK to just reprint
- the characters from the current cursor position. But we
- only need to reprint it if the cursor is before the last
- invisible character in the prompt string. */
- nleft = prompt_visible_length + wrap_offset;
- if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&
- _rl_last_c_pos <= prompt_last_invisible && local_prompt)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- if (_rl_term_cr)
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_output_some_chars (local_prompt, nleft);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width(local_prompt, 0, nleft);
- else
- _rl_last_c_pos = nleft;
- }
-
- /* Where on that line? And where does that line start
- in the buffer? */
- pos = inv_lbreaks[cursor_linenum];
- /* nleft == number of characters in the line buffer between the
- start of the line and the cursor position. */
- nleft = c_pos - pos;
-
- /* Since _rl_backspace() doesn't know about invisible characters in the
- prompt, and there's no good way to tell it, we compensate for
- those characters here and call _rl_backspace() directly. */
- if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
- {
- _rl_backspace (_rl_last_c_pos - nleft);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width (&visible_line[pos], 0, nleft);
- else
- _rl_last_c_pos = nleft;
- }
-
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_move_cursor_relative (nleft, &invisible_line[pos]);
- else if (nleft != _rl_last_c_pos)
- _rl_move_cursor_relative (nleft, &invisible_line[pos]);
- }
- }
- else /* Do horizontal scrolling. */
- {
-#define M_OFFSET(margin, offset) ((margin) == 0 ? offset : 0)
- int lmargin, ndisp, nleft, phys_c_pos, t;
-
- /* Always at top line. */
- _rl_last_v_pos = 0;
-
- /* Compute where in the buffer the displayed line should start. This
- will be LMARGIN. */
-
- /* The number of characters that will be displayed before the cursor. */
- ndisp = c_pos - wrap_offset;
- nleft = prompt_visible_length + wrap_offset;
- /* Where the new cursor position will be on the screen. This can be
- longer than SCREENWIDTH; if it is, lmargin will be adjusted. */
- phys_c_pos = c_pos - (last_lmargin ? last_lmargin : wrap_offset);
- t = _rl_screenwidth / 3;
-
- /* If the number of characters had already exceeded the screenwidth,
- last_lmargin will be > 0. */
-
- /* If the number of characters to be displayed is more than the screen
- width, compute the starting offset so that the cursor is about
- two-thirds of the way across the screen. */
- if (phys_c_pos > _rl_screenwidth - 2)
- {
- lmargin = c_pos - (2 * t);
- if (lmargin < 0)
- lmargin = 0;
- /* If the left margin would be in the middle of a prompt with
- invisible characters, don't display the prompt at all. */
- if (wrap_offset && lmargin > 0 && lmargin < nleft)
- lmargin = nleft;
- }
- else if (ndisp < _rl_screenwidth - 2) /* XXX - was -1 */
- lmargin = 0;
- else if (phys_c_pos < 1)
- {
- /* If we are moving back towards the beginning of the line and
- the last margin is no longer correct, compute a new one. */
- lmargin = ((c_pos - 1) / t) * t; /* XXX */
- if (wrap_offset && lmargin > 0 && lmargin < nleft)
- lmargin = nleft;
- }
- else
- lmargin = last_lmargin;
-
- /* If the first character on the screen isn't the first character
- in the display line, indicate this with a special character. */
- if (lmargin > 0)
- line[lmargin] = '<';
-
- /* If SCREENWIDTH characters starting at LMARGIN do not encompass
- the whole line, indicate that with a special character at the
- right edge of the screen. If LMARGIN is 0, we need to take the
- wrap offset into account. */
- t = lmargin + M_OFFSET (lmargin, wrap_offset) + _rl_screenwidth;
- if (t < out)
- line[t - 1] = '>';
-
- if (!rl_display_fixed || forced_display || lmargin != last_lmargin)
- {
- forced_display = 0;
- update_line (&visible_line[last_lmargin],
- &invisible_line[lmargin],
- 0,
- _rl_screenwidth + visible_wrap_offset,
- _rl_screenwidth + (lmargin ? 0 : wrap_offset),
- 0);
-
- /* If the visible new line is shorter than the old, but the number
- of invisible characters is greater, and we are at the end of
- the new line, we need to clear to eol. */
- t = _rl_last_c_pos - M_OFFSET (lmargin, wrap_offset);
- if ((M_OFFSET (lmargin, wrap_offset) > visible_wrap_offset) &&
- (_rl_last_c_pos == out) &&
- t < visible_first_line_len)
- {
- nleft = _rl_screenwidth - t;
- _rl_clear_to_eol (nleft);
- }
- visible_first_line_len = out - lmargin - M_OFFSET (lmargin, wrap_offset);
- if (visible_first_line_len > _rl_screenwidth)
- visible_first_line_len = _rl_screenwidth;
-
- _rl_move_cursor_relative (c_pos - lmargin, &invisible_line[lmargin]);
- last_lmargin = lmargin;
- }
- }
- fflush (rl_outstream);
-
- /* Swap visible and non-visible lines. */
- {
- char *vtemp = visible_line;
- int *itemp = vis_lbreaks, ntemp = vis_lbsize;
-
- visible_line = invisible_line;
- invisible_line = vtemp;
-
- vis_lbreaks = inv_lbreaks;
- inv_lbreaks = itemp;
-
- vis_lbsize = inv_lbsize;
- inv_lbsize = ntemp;
-
- rl_display_fixed = 0;
- /* If we are displaying on a single line, and last_lmargin is > 0, we
- are not displaying any invisible characters, so set visible_wrap_offset
- to 0. */
- if (_rl_horizontal_scroll_mode && last_lmargin)
- visible_wrap_offset = 0;
- else
- visible_wrap_offset = wrap_offset;
- }
-}
-
-/* PWP: update_line() is based on finding the middle difference of each
- line on the screen; vis:
-
- /old first difference
- /beginning of line | /old last same /old EOL
- v v v v
-old: eddie> Oh, my little gruntle-buggy is to me, as lurgid as
-new: eddie> Oh, my little buggy says to me, as lurgid as
- ^ ^ ^ ^
- \beginning of line | \new last same \new end of line
- \new first difference
-
- All are character pointers for the sake of speed. Special cases for
- no differences, as well as for end of line additions must be handled.
-
- Could be made even smarter, but this works well enough */
-static void
-update_line (old, new, current_line, omax, nmax, inv_botlin)
- register char *old, *new;
- int current_line, omax, nmax, inv_botlin;
-{
- register char *ofd, *ols, *oe, *nfd, *nls, *ne;
- int temp, lendiff, wsatend, od, nd;
- int current_invis_chars;
- int col_lendiff, col_temp;
-#if defined (HANDLE_MULTIBYTE)
- mbstate_t ps_new, ps_old;
- int new_offset, old_offset, tmp;
-#endif
-
- /* If we're at the right edge of a terminal that supports xn, we're
- ready to wrap around, so do so. This fixes problems with knowing
- the exact cursor position and cut-and-paste with certain terminal
- emulators. In this calculation, TEMP is the physical screen
- position of the cursor. */
- temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
- if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
- && _rl_last_v_pos == current_line - 1)
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- wchar_t wc;
- mbstate_t ps;
- int tempwidth, bytes;
- size_t ret;
-
- /* This fixes only double-column characters, but if the wrapped
- character comsumes more than three columns, spaces will be
- inserted in the string buffer. */
- if (_rl_wrapped_line[current_line] > 0)
- _rl_clear_to_eol (_rl_wrapped_line[current_line]);
-
- memset (&ps, 0, sizeof (mbstate_t));
- ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps);
- if (ret == (size_t)-1 || ret == (size_t)-2)
- {
- tempwidth = 1;
- ret = 1;
- }
- else if (ret == 0)
- tempwidth = 0;
- else
- tempwidth = wcwidth (wc);
-
- if (tempwidth > 0)
- {
- int count;
- bytes = ret;
- for (count = 0; count < bytes; count++)
- putc (new[count], rl_outstream);
- _rl_last_c_pos = tempwidth;
- _rl_last_v_pos++;
- memset (&ps, 0, sizeof (mbstate_t));
- ret = mbrtowc (&wc, old, MB_CUR_MAX, &ps);
- if (ret != 0 && bytes != 0)
- {
- if (ret == (size_t)-1 || ret == (size_t)-2)
- memmove (old+bytes, old+1, strlen (old+1));
- else
- memmove (old+bytes, old+ret, strlen (old+ret));
- memcpy (old, new, bytes);
- }
- }
- else
- {
- putc (' ', rl_outstream);
- _rl_last_c_pos = 1;
- _rl_last_v_pos++;
- if (old[0] && new[0])
- old[0] = new[0];
- }
- }
- else
-#endif
- {
- if (new[0])
- putc (new[0], rl_outstream);
- else
- putc (' ', rl_outstream);
- _rl_last_c_pos = 1; /* XXX */
- _rl_last_v_pos++;
- if (old[0] && new[0])
- old[0] = new[0];
- }
- }
-
-
- /* Find first difference. */
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- memset (&ps_new, 0, sizeof(mbstate_t));
- memset (&ps_old, 0, sizeof(mbstate_t));
-
- new_offset = old_offset = 0;
- for (ofd = old, nfd = new;
- (ofd - old < omax) && *ofd &&
- _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); )
- {
- old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY);
- new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY);
- ofd = old + old_offset;
- nfd = new + new_offset;
- }
- }
- else
-#endif
- for (ofd = old, nfd = new;
- (ofd - old < omax) && *ofd && (*ofd == *nfd);
- ofd++, nfd++)
- ;
-
- /* Move to the end of the screen line. ND and OD are used to keep track
- of the distance between ne and new and oe and old, respectively, to
- move a subtraction out of each loop. */
- for (od = ofd - old, oe = ofd; od < omax && *oe; oe++, od++);
- for (nd = nfd - new, ne = nfd; nd < nmax && *ne; ne++, nd++);
-
- /* If no difference, continue to next line. */
- if (ofd == oe && nfd == ne)
- return;
-
- wsatend = 1; /* flag for trailing whitespace */
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- ols = old + _rl_find_prev_mbchar (old, oe - old, MB_FIND_ANY);
- nls = new + _rl_find_prev_mbchar (new, ne - new, MB_FIND_ANY);
- while ((ols > ofd) && (nls > nfd))
- {
- memset (&ps_old, 0, sizeof (mbstate_t));
- memset (&ps_new, 0, sizeof (mbstate_t));
-
- _rl_adjust_point (old, ols - old, &ps_old);
- _rl_adjust_point (new, nls - new, &ps_new);
-
- if (_rl_compare_chars (old, ols - old, &ps_old, new, nls - new, &ps_new) == 0)
- break;
-
- if (*ols == ' ')
- wsatend = 0;
-
- ols = old + _rl_find_prev_mbchar (old, ols - old, MB_FIND_ANY);
- nls = new + _rl_find_prev_mbchar (new, nls - new, MB_FIND_ANY);
- }
- }
- else
- {
-#endif /* HANDLE_MULTIBYTE */
- ols = oe - 1; /* find last same */
- nls = ne - 1;
- while ((ols > ofd) && (nls > nfd) && (*ols == *nls))
- {
- if (*ols != ' ')
- wsatend = 0;
- ols--;
- nls--;
- }
-#if defined (HANDLE_MULTIBYTE)
- }
-#endif
-
- if (wsatend)
- {
- ols = oe;
- nls = ne;
- }
-#if defined (HANDLE_MULTIBYTE)
- /* This may not work for stateful encoding, but who cares? To handle
- stateful encoding properly, we have to scan each string from the
- beginning and compare. */
- else if (_rl_compare_chars (ols, 0, NULL, nls, 0, NULL) == 0)
-#else
- else if (*ols != *nls)
-#endif
- {
- if (*ols) /* don't step past the NUL */
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- ols = old + _rl_find_next_mbchar (old, ols - old, 1, MB_FIND_ANY);
- else
- ols++;
- }
- if (*nls)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- nls = new + _rl_find_next_mbchar (new, nls - new, 1, MB_FIND_ANY);
- else
- nls++;
- }
- }
-
- /* count of invisible characters in the current invisible line. */
- current_invis_chars = W_OFFSET (current_line, wrap_offset);
- if (_rl_last_v_pos != current_line)
- {
- _rl_move_vert (current_line);
- if (current_line == 0 && visible_wrap_offset)
- _rl_last_c_pos += visible_wrap_offset;
- }
-
- /* If this is the first line and there are invisible characters in the
- prompt string, and the prompt string has not changed, and the current
- cursor position is before the last invisible character in the prompt,
- and the index of the character to move to is past the end of the prompt
- string, then redraw the entire prompt string. We can only do this
- reliably if the terminal supports a `cr' capability.
-
- This is not an efficiency hack -- there is a problem with redrawing
- portions of the prompt string if they contain terminal escape
- sequences (like drawing the `unbold' sequence without a corresponding
- `bold') that manifests itself on certain terminals. */
-
- lendiff = local_prompt ? strlen (local_prompt) : 0;
- od = ofd - old; /* index of first difference in visible line */
- if (current_line == 0 && !_rl_horizontal_scroll_mode &&
- _rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 &&
- od >= lendiff && _rl_last_c_pos <= prompt_last_invisible)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_output_some_chars (local_prompt, lendiff);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff);
- else
- _rl_last_c_pos = lendiff;
- }
-
- _rl_move_cursor_relative (od, old);
-
- /* if (len (new) > len (old))
- lendiff == difference in buffer
- col_lendiff == difference on screen
- When not using multibyte characters, these are equal */
- lendiff = (nls - nfd) - (ols - ofd);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- col_lendiff = _rl_col_width (new, nfd - new, nls - new) - _rl_col_width (old, ofd - old, ols - old);
- else
- col_lendiff = lendiff;
-
- /* If we are changing the number of invisible characters in a line, and
- the spot of first difference is before the end of the invisible chars,
- lendiff needs to be adjusted. */
- if (current_line == 0 && !_rl_horizontal_scroll_mode &&
- current_invis_chars != visible_wrap_offset)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- lendiff += visible_wrap_offset - current_invis_chars;
- col_lendiff += visible_wrap_offset - current_invis_chars;
- }
- else
- {
- lendiff += visible_wrap_offset - current_invis_chars;
- col_lendiff = lendiff;
- }
- }
-
- /* Insert (diff (len (old), len (new)) ch. */
- temp = ne - nfd;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- col_temp = _rl_col_width (new, nfd - new, ne - new);
- else
- col_temp = temp;
-
- if (col_lendiff > 0) /* XXX - was lendiff */
- {
- /* Non-zero if we're increasing the number of lines. */
- int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
- /* Sometimes it is cheaper to print the characters rather than
- use the terminal's capabilities. If we're growing the number
- of lines, make sure we actually cause the new line to wrap
- around on auto-wrapping terminals. */
- if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
- {
- /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
- _rl_horizontal_scroll_mode == 1, inserting the characters with
- _rl_term_IC or _rl_term_ic will screw up the screen because of the
- invisible characters. We need to just draw them. */
- if (*ols && (!_rl_horizontal_scroll_mode || _rl_last_c_pos > 0 ||
- lendiff <= prompt_visible_length || !current_invis_chars))
- {
- insert_some_chars (nfd, lendiff, col_lendiff);
- _rl_last_c_pos += col_lendiff;
- }
- else if (*ols == 0)
- {
- /* At the end of a line the characters do not have to
- be "inserted". They can just be placed on the screen. */
- /* However, this screws up the rest of this block, which
- assumes you've done the insert because you can. */
- _rl_output_some_chars (nfd, lendiff);
- _rl_last_c_pos += col_lendiff;
- }
- else
- {
- /* We have horizontal scrolling and we are not inserting at
- the end. We have invisible characters in this line. This
- is a dumb update. */
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp;
- return;
- }
- /* Copy (new) chars to screen from first diff to last match. */
- temp = nls - nfd;
- if ((temp - lendiff) > 0)
- {
- _rl_output_some_chars (nfd + lendiff, temp - lendiff);
-#if 0
- _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff) - col_lendiff;
-#else
- _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
-#endif
- }
- }
- else
- {
- /* cannot insert chars, write to EOL */
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp;
- }
- }
- else /* Delete characters from line. */
- {
- /* If possible and inexpensive to use terminal deletion, then do so. */
- if (_rl_term_dc && (2 * col_temp) >= -col_lendiff)
- {
- /* If all we're doing is erasing the invisible characters in the
- prompt string, don't bother. It screws up the assumptions
- about what's on the screen. */
- if (_rl_horizontal_scroll_mode && _rl_last_c_pos == 0 &&
- -lendiff == visible_wrap_offset)
- col_lendiff = 0;
-
- if (col_lendiff)
- delete_chars (-col_lendiff); /* delete (diff) characters */
-
- /* Copy (new) chars to screen from first diff to last match */
- temp = nls - nfd;
- if (temp > 0)
- {
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
- }
- }
- /* Otherwise, print over the existing material. */
- else
- {
- if (temp > 0)
- {
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp;
- }
- lendiff = (oe - old) - (ne - new);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- col_lendiff = _rl_col_width (old, 0, oe - old) - _rl_col_width (new, 0, ne - new);
- else
- col_lendiff = lendiff;
-
- if (col_lendiff)
- {
- if (_rl_term_autowrap && current_line < inv_botlin)
- space_to_eol (col_lendiff);
- else
- _rl_clear_to_eol (col_lendiff);
- }
- }
- }
-}
-
-/* Tell the update routines that we have moved onto a new (empty) line. */
-int
-rl_on_new_line ()
-{
- if (visible_line)
- visible_line[0] = '\0';
-
- _rl_last_c_pos = _rl_last_v_pos = 0;
- _rl_vis_botlin = last_lmargin = 0;
- if (vis_lbreaks)
- vis_lbreaks[0] = vis_lbreaks[1] = 0;
- visible_wrap_offset = 0;
- return 0;
-}
-
-/* Tell the update routines that we have moved onto a new line with the
- prompt already displayed. Code originally from the version of readline
- distributed with CLISP. */
-int
-rl_on_new_line_with_prompt ()
-{
- int prompt_size, i, l, real_screenwidth, newlines;
- char *prompt_last_line;
-
- /* Initialize visible_line and invisible_line to ensure that they can hold
- the already-displayed prompt. */
- prompt_size = strlen (rl_prompt) + 1;
- init_line_structures (prompt_size);
-
- /* Make sure the line structures hold the already-displayed prompt for
- redisplay. */
- strcpy (visible_line, rl_prompt);
- strcpy (invisible_line, rl_prompt);
-
- /* If the prompt contains newlines, take the last tail. */
- prompt_last_line = strrchr (rl_prompt, '\n');
- if (!prompt_last_line)
- prompt_last_line = rl_prompt;
-
- l = strlen (prompt_last_line);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l);
- else
- _rl_last_c_pos = l;
-
- /* Dissect prompt_last_line into screen lines. Note that here we have
- to use the real screenwidth. Readline's notion of screenwidth might be
- one less, see terminal.c. */
- real_screenwidth = _rl_screenwidth + (_rl_term_autowrap ? 0 : 1);
- _rl_last_v_pos = l / real_screenwidth;
- /* If the prompt length is a multiple of real_screenwidth, we don't know
- whether the cursor is at the end of the last line, or already at the
- beginning of the next line. Output a newline just to be safe. */
- if (l > 0 && (l % real_screenwidth) == 0)
- _rl_output_some_chars ("\n", 1);
- last_lmargin = 0;
-
- newlines = 0; i = 0;
- while (i <= l)
- {
- _rl_vis_botlin = newlines;
- vis_lbreaks[newlines++] = i;
- i += real_screenwidth;
- }
- vis_lbreaks[newlines] = l;
- visible_wrap_offset = 0;
-
- return 0;
-}
-
-/* Actually update the display, period. */
-int
-rl_forced_update_display ()
-{
- if (visible_line)
- {
- register char *temp = visible_line;
-
- while (*temp)
- *temp++ = '\0';
- }
- rl_on_new_line ();
- forced_display++;
- (*rl_redisplay_function) ();
- return 0;
-}
-
-/* Move the cursor from _rl_last_c_pos to NEW, which are buffer indices.
- DATA is the contents of the screen line of interest; i.e., where
- the movement is being done. */
-void
-_rl_move_cursor_relative (new, data)
- int new;
- const char *data;
-{
- register int i;
-
- /* If we don't have to do anything, then return. */
-#if defined (HANDLE_MULTIBYTE)
- /* If we have multibyte characters, NEW is indexed by the buffer point in
- a multibyte string, but _rl_last_c_pos is the display position. In
- this case, NEW's display position is not obvious. */
- if ((MB_CUR_MAX == 1 || rl_byte_oriented ) && _rl_last_c_pos == new) return;
-#else
- if (_rl_last_c_pos == new) return;
-#endif
-
- /* It may be faster to output a CR, and then move forwards instead
- of moving backwards. */
- /* i == current physical cursor position. */
- i = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
- if (new == 0 || CR_FASTER (new, _rl_last_c_pos) ||
- (_rl_term_autowrap && i == _rl_screenwidth))
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif /* !__MSDOS__ */
- _rl_last_c_pos = 0;
- }
-
- if (_rl_last_c_pos < new)
- {
- /* Move the cursor forward. We do it by printing the command
- to move the cursor forward if there is one, else print that
- portion of the output buffer again. Which is cheaper? */
-
- /* The above comment is left here for posterity. It is faster
- to print one character (non-control) than to print a control
- sequence telling the terminal to move forward one character.
- That kind of control is for people who don't know what the
- data is underneath the cursor. */
-#if defined (HACK_TERMCAP_MOTION)
- if (_rl_term_forward_char)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int width;
- width = _rl_col_width (data, _rl_last_c_pos, new);
- for (i = 0; i < width; i++)
- tputs (_rl_term_forward_char, 1, _rl_output_character_function);
- }
- else
- {
- for (i = _rl_last_c_pos; i < new; i++)
- tputs (_rl_term_forward_char, 1, _rl_output_character_function);
- }
- }
- else if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- for (i = 0; i < new; i++)
- putc (data[i], rl_outstream);
- }
- else
- for (i = _rl_last_c_pos; i < new; i++)
- putc (data[i], rl_outstream);
-
-#else /* !HACK_TERMCAP_MOTION */
-
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- for (i = 0; i < new; i++)
- putc (data[i], rl_outstream);
- }
- else
- for (i = _rl_last_c_pos; i < new; i++)
- putc (data[i], rl_outstream);
-
-#endif /* !HACK_TERMCAP_MOTION */
-
- }
-#if defined (HANDLE_MULTIBYTE)
- /* NEW points to the buffer point, but _rl_last_c_pos is the display point.
- The byte length of the string is probably bigger than the column width
- of the string, which means that if NEW == _rl_last_c_pos, then NEW's
- display point is less than _rl_last_c_pos. */
- else if (_rl_last_c_pos >= new)
-#else
- else if (_rl_last_c_pos > new)
-#endif
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- for (i = 0; i < new; i++)
- putc (data[i], rl_outstream);
- }
- else
- _rl_backspace (_rl_last_c_pos - new);
- }
-
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width (data, 0, new);
- else
- _rl_last_c_pos = new;
-}
-
-/* PWP: move the cursor up or down. */
-void
-_rl_move_vert (to)
- int to;
-{
- register int delta, i;
-
- if (_rl_last_v_pos == to || to > _rl_screenheight)
- return;
-
- if ((delta = to - _rl_last_v_pos) > 0)
- {
- for (i = 0; i < delta; i++)
- putc ('\n', rl_outstream);
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_last_c_pos = 0;
- }
- else
- { /* delta < 0 */
- if (_rl_term_up && *_rl_term_up)
- for (i = 0; i < -delta; i++)
- tputs (_rl_term_up, 1, _rl_output_character_function);
- }
-
- _rl_last_v_pos = to; /* Now TO is here */
-}
-
-/* Physically print C on rl_outstream. This is for functions which know
- how to optimize the display. Return the number of characters output. */
-int
-rl_show_char (c)
- int c;
-{
- int n = 1;
- if (META_CHAR (c) && (_rl_output_meta_chars == 0))
- {
- fprintf (rl_outstream, "M-");
- n += 2;
- c = UNMETA (c);
- }
-
-#if defined (DISPLAY_TABS)
- if ((CTRL_CHAR (c) && c != '\t') || c == RUBOUT)
-#else
- if (CTRL_CHAR (c) || c == RUBOUT)
-#endif /* !DISPLAY_TABS */
- {
- fprintf (rl_outstream, "C-");
- n += 2;
- c = CTRL_CHAR (c) ? UNCTRL (c) : '?';
- }
-
- putc (c, rl_outstream);
- fflush (rl_outstream);
- return n;
-}
-
-int
-rl_character_len (c, pos)
- register int c, pos;
-{
- unsigned char uc;
-
- uc = (unsigned char)c;
-
- if (META_CHAR (uc))
- return ((_rl_output_meta_chars == 0) ? 4 : 1);
-
- if (uc == '\t')
- {
-#if defined (DISPLAY_TABS)
- return (((pos | 7) + 1) - pos);
-#else
- return (2);
-#endif /* !DISPLAY_TABS */
- }
-
- if (CTRL_CHAR (c) || c == RUBOUT)
- return (2);
-
- return ((ISPRINT (uc)) ? 1 : 2);
-}
-
-/* How to print things in the "echo-area". The prompt is treated as a
- mini-modeline. */
-
-#if defined (USE_VARARGS)
-int
-#if defined (PREFER_STDARG)
-rl_message (const char *format, ...)
-#else
-rl_message (va_alist)
- va_dcl
-#endif
-{
- va_list args;
-#if defined (PREFER_VARARGS)
- char *format;
-#endif
-
-#if defined (PREFER_STDARG)
- va_start (args, format);
-#else
- va_start (args);
- format = va_arg (args, char *);
-#endif
-
-#if defined (HAVE_VSNPRINTF)
- vsnprintf (msg_buf, sizeof (msg_buf) - 1, format, args);
-#else
- vsprintf (msg_buf, format, args);
- msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
-#endif
- va_end (args);
-
- rl_display_prompt = msg_buf;
- (*rl_redisplay_function) ();
- return 0;
-}
-#else /* !USE_VARARGS */
-int
-rl_message (format, arg1, arg2)
- char *format;
-{
- sprintf (msg_buf, format, arg1, arg2);
- msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
- rl_display_prompt = msg_buf;
- (*rl_redisplay_function) ();
- return 0;
-}
-#endif /* !USE_VARARGS */
-
-/* How to clear things from the "echo-area". */
-int
-rl_clear_message ()
-{
- rl_display_prompt = rl_prompt;
- (*rl_redisplay_function) ();
- return 0;
-}
-
-int
-rl_reset_line_state ()
-{
- rl_on_new_line ();
-
- rl_display_prompt = rl_prompt ? rl_prompt : "";
- forced_display = 1;
- return 0;
-}
-
-static char *saved_local_prompt;
-static char *saved_local_prefix;
-static int saved_last_invisible;
-static int saved_visible_length;
-
-void
-rl_save_prompt ()
-{
- saved_local_prompt = local_prompt;
- saved_local_prefix = local_prompt_prefix;
- saved_last_invisible = prompt_last_invisible;
- saved_visible_length = prompt_visible_length;
-
- local_prompt = local_prompt_prefix = (char *)0;
- prompt_last_invisible = prompt_visible_length = 0;
-}
-
-void
-rl_restore_prompt ()
-{
- FREE (local_prompt);
- FREE (local_prompt_prefix);
-
- local_prompt = saved_local_prompt;
- local_prompt_prefix = saved_local_prefix;
- prompt_last_invisible = saved_last_invisible;
- prompt_visible_length = saved_visible_length;
-}
-
-char *
-_rl_make_prompt_for_search (pchar)
- int pchar;
-{
- int len;
- char *pmt;
-
- rl_save_prompt ();
-
- if (saved_local_prompt == 0)
- {
- len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
- pmt = (char *)xmalloc (len + 2);
- if (len)
- strcpy (pmt, rl_prompt);
- pmt[len] = pchar;
- pmt[len+1] = '\0';
- }
- else
- {
- len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
- pmt = (char *)xmalloc (len + 2);
- if (len)
- strcpy (pmt, saved_local_prompt);
- pmt[len] = pchar;
- pmt[len+1] = '\0';
- local_prompt = savestring (pmt);
- prompt_last_invisible = saved_last_invisible;
- prompt_visible_length = saved_visible_length + 1;
- }
- return pmt;
-}
-
-/* Quick redisplay hack when erasing characters at the end of the line. */
-void
-_rl_erase_at_end_of_line (l)
- int l;
-{
- register int i;
-
- _rl_backspace (l);
- for (i = 0; i < l; i++)
- putc (' ', rl_outstream);
- _rl_backspace (l);
- for (i = 0; i < l; i++)
- visible_line[--_rl_last_c_pos] = '\0';
- rl_display_fixed++;
-}
-
-/* Clear to the end of the line. COUNT is the minimum
- number of character spaces to clear, */
-void
-_rl_clear_to_eol (count)
- int count;
-{
- if (_rl_term_clreol)
- tputs (_rl_term_clreol, 1, _rl_output_character_function);
- else if (count)
- space_to_eol (count);
-}
-
-/* Clear to the end of the line using spaces. COUNT is the minimum
- number of character spaces to clear, */
-static void
-space_to_eol (count)
- int count;
-{
- register int i;
-
- for (i = 0; i < count; i++)
- putc (' ', rl_outstream);
-
- _rl_last_c_pos += count;
-}
-
-void
-_rl_clear_screen ()
-{
- if (_rl_term_clrpag)
- tputs (_rl_term_clrpag, 1, _rl_output_character_function);
- else
- rl_crlf ();
-}
-
-/* Insert COUNT characters from STRING to the output stream at column COL. */
-static void
-insert_some_chars (string, count, col)
- char *string;
- int count, col;
-{
- /* DEBUGGING */
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- if (count != col)
- fprintf(stderr, "readline: debug: insert_some_chars: count (%d) != col (%d)\n", count, col);
-
- /* If IC is defined, then we do not have to "enter" insert mode. */
- if (_rl_term_IC)
- {
- char *buffer;
-
- buffer = tgoto (_rl_term_IC, 0, col);
- tputs (buffer, 1, _rl_output_character_function);
- _rl_output_some_chars (string, count);
- }
- else
- {
- register int i;
-
- /* If we have to turn on insert-mode, then do so. */
- if (_rl_term_im && *_rl_term_im)
- tputs (_rl_term_im, 1, _rl_output_character_function);
-
- /* If there is a special command for inserting characters, then
- use that first to open up the space. */
- if (_rl_term_ic && *_rl_term_ic)
- {
- for (i = col; i--; )
- tputs (_rl_term_ic, 1, _rl_output_character_function);
- }
-
- /* Print the text. */
- _rl_output_some_chars (string, count);
-
- /* If there is a string to turn off insert mode, we had best use
- it now. */
- if (_rl_term_ei && *_rl_term_ei)
- tputs (_rl_term_ei, 1, _rl_output_character_function);
- }
-}
-
-/* Delete COUNT characters from the display line. */
-static void
-delete_chars (count)
- int count;
-{
- if (count > _rl_screenwidth) /* XXX */
- return;
-
- if (_rl_term_DC && *_rl_term_DC)
- {
- char *buffer;
- buffer = tgoto (_rl_term_DC, count, count);
- tputs (buffer, count, _rl_output_character_function);
- }
- else
- {
- if (_rl_term_dc && *_rl_term_dc)
- while (count--)
- tputs (_rl_term_dc, 1, _rl_output_character_function);
- }
-}
-
-void
-_rl_update_final ()
-{
- int full_lines;
-
- full_lines = 0;
- /* If the cursor is the only thing on an otherwise-blank last line,
- compensate so we don't print an extra CRLF. */
- if (_rl_vis_botlin && _rl_last_c_pos == 0 &&
- visible_line[vis_lbreaks[_rl_vis_botlin]] == 0)
- {
- _rl_vis_botlin--;
- full_lines = 1;
- }
- _rl_move_vert (_rl_vis_botlin);
- /* If we've wrapped lines, remove the final xterm line-wrap flag. */
- if (full_lines && _rl_term_autowrap && (VIS_LLEN(_rl_vis_botlin) == _rl_screenwidth))
- {
- char *last_line;
-
- last_line = &visible_line[vis_lbreaks[_rl_vis_botlin]];
- _rl_move_cursor_relative (_rl_screenwidth - 1, last_line);
- _rl_clear_to_eol (0);
- putc (last_line[_rl_screenwidth - 1], rl_outstream);
- }
- _rl_vis_botlin = 0;
- rl_crlf ();
- fflush (rl_outstream);
- rl_display_fixed++;
-}
-
-/* Move to the start of the current line. */
-static void
-cr ()
-{
- if (_rl_term_cr)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_last_c_pos = 0;
- }
-}
-
-/* Redraw the last line of a multi-line prompt that may possibly contain
- terminal escape sequences. Called with the cursor at column 0 of the
- line to draw the prompt on. */
-static void
-redraw_prompt (t)
- char *t;
-{
- char *oldp, *oldl, *oldlprefix;
- int oldlen, oldlast, oldplen, oldninvis;
-
- /* Geez, I should make this a struct. */
- oldp = rl_display_prompt;
- oldl = local_prompt;
- oldlprefix = local_prompt_prefix;
- oldlen = prompt_visible_length;
- oldplen = prompt_prefix_length;
- oldlast = prompt_last_invisible;
- oldninvis = prompt_invis_chars_first_line;
-
- rl_display_prompt = t;
- local_prompt = expand_prompt (t, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line);
- local_prompt_prefix = (char *)NULL;
- rl_forced_update_display ();
-
- rl_display_prompt = oldp;
- local_prompt = oldl;
- local_prompt_prefix = oldlprefix;
- prompt_visible_length = oldlen;
- prompt_prefix_length = oldplen;
- prompt_last_invisible = oldlast;
- prompt_invis_chars_first_line = oldninvis;
-}
-
-/* Redisplay the current line after a SIGWINCH is received. */
-void
-_rl_redisplay_after_sigwinch ()
-{
- char *t;
-
- /* Clear the current line and put the cursor at column 0. Make sure
- the right thing happens if we have wrapped to a new screen line. */
- if (_rl_term_cr)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_last_c_pos = 0;
-#if defined (__MSDOS__)
- space_to_eol (_rl_screenwidth);
- putc ('\r', rl_outstream);
-#else
- if (_rl_term_clreol)
- tputs (_rl_term_clreol, 1, _rl_output_character_function);
- else
- {
- space_to_eol (_rl_screenwidth);
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- }
-#endif
- if (_rl_last_v_pos > 0)
- _rl_move_vert (0);
- }
- else
- rl_crlf ();
-
- /* Redraw only the last line of a multi-line prompt. */
- t = strrchr (rl_display_prompt, '\n');
- if (t)
- redraw_prompt (++t);
- else
- rl_forced_update_display ();
-}
-
-void
-_rl_clean_up_for_exit ()
-{
- if (readline_echoing_p)
- {
- _rl_move_vert (_rl_vis_botlin);
- _rl_vis_botlin = 0;
- fflush (rl_outstream);
- rl_restart_output (1, 0);
- }
-}
-
-void
-_rl_erase_entire_line ()
-{
- cr ();
- _rl_clear_to_eol (0);
- cr ();
- fflush (rl_outstream);
-}
-
-/* return the `current display line' of the cursor -- the number of lines to
- move up to get to the first screen line of the current readline line. */
-int
-_rl_current_display_line ()
-{
- int ret, nleft;
-
- /* Find out whether or not there might be invisible characters in the
- editing buffer. */
- if (rl_display_prompt == rl_prompt)
- nleft = _rl_last_c_pos - _rl_screenwidth - rl_visible_prompt_length;
- else
- nleft = _rl_last_c_pos - _rl_screenwidth;
-
- if (nleft > 0)
- ret = 1 + nleft / _rl_screenwidth;
- else
- ret = 0;
-
- return ret;
-}
-
-#if defined (HANDLE_MULTIBYTE)
-/* Calculate the number of screen columns occupied by STR from START to END.
- In the case of multibyte characters with stateful encoding, we have to
- scan from the beginning of the string to take the state into account. */
-static int
-_rl_col_width (str, start, end)
- char *str;
- int start, end;
-{
- wchar_t wc;
- mbstate_t ps = {0};
- int tmp, point, width, max;
-
- if (end <= start)
- return 0;
-
- point = 0;
- max = end;
-
- while (point < start)
- {
- tmp = mbrlen (str + point, max, &ps);
- if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2)
- {
- /* In this case, the bytes are invalid or too short to compose a
- multibyte character, so we assume that the first byte represents
- a single character. */
- point++;
- max--;
-
- /* Clear the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else if (tmp == 0)
- break; /* Found '\0' */
- else
- {
- point += tmp;
- max -= tmp;
- }
- }
-
- /* If START is not a byte that starts a character, then POINT will be
- greater than START. In this case, assume that (POINT - START) gives
- a byte count that is the number of columns of difference. */
- width = point - start;
-
- while (point < end)
- {
- tmp = mbrtowc (&wc, str + point, max, &ps);
- if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2)
- {
- /* In this case, the bytes are invalid or too short to compose a
- multibyte character, so we assume that the first byte represents
- a single character. */
- point++;
- max--;
-
- /* and assume that the byte occupies a single column. */
- width++;
-
- /* Clear the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else if (tmp == 0)
- break; /* Found '\0' */
- else
- {
- point += tmp;
- max -= tmp;
- tmp = wcwidth(wc);
- width += (tmp >= 0) ? tmp : 1;
- }
- }
-
- width += point - end;
-
- return width;
-}
-#endif /* HANDLE_MULTIBYTE */
-
diff --git a/readline-4.3.orig/doc/Makefile.in b/readline-4.3.orig/doc/Makefile.in
deleted file mode 100644
index 8a85ae1..0000000
--- a/readline-4.3.orig/doc/Makefile.in
+++ /dev/null
@@ -1,234 +0,0 @@
-# This makefile for Readline library documentation is in -*- text -*- mode.
-# Emacs likes it that way.
-
-# Copyright (C) 1996 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-topdir = @top_srcdir@
-srcdir = @srcdir@
-VPATH = .:@srcdir@
-
-prefix = @prefix@
-infodir = @infodir@
-
-mandir = @mandir@
-manpfx = man
-
-man1ext = .1
-man1dir = $(mandir)/$(manpfx)1
-man3ext = .3
-man3dir = $(mandir)/$(manpfx)3
-
-# set this to a value to have the HTML documentation installed
-htmldir =
-
-# Support an alternate destination root directory for package building
-DESTDIR =
-
-SHELL = @MAKE_SHELL@
-RM = rm -f
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-BUILD_DIR = @BUILD_DIR@
-TEXINPUTDIR = $(srcdir)
-
-MAKEINFO = LANGUAGE= makeinfo
-TEXI2DVI = $(srcdir)/texi2dvi
-TEXI2HTML = $(srcdir)/texi2html
-QUIETPS = #set this to -q to shut up dvips
-PAPERSIZE = letter
-PSDPI = 300 # I don't have any 600-dpi printers
-DVIPS = dvips -D ${PSDPI} $(QUIETPS) -t ${PAPERSIZE} -o $@ # tricky
-
-RLSRC = $(srcdir)/rlman.texinfo $(srcdir)/rluser.texinfo \
- $(srcdir)/rltech.texinfo $(srcdir)/manvers.texinfo \
- $(srcdir)/rluserman.texinfo
-HISTSRC = $(srcdir)/hist.texinfo $(srcdir)/hsuser.texinfo \
- $(srcdir)/hstech.texinfo $(srcdir)/manvers.texinfo
-
-# This should be a program that converts troff to an ascii-readable format
-NROFF = groff -Tascii
-
-# This should be a program that converts troff to postscript
-GROFF = groff
-
-DVIOBJ = readline.dvi history.dvi rluserman.dvi
-INFOOBJ = readline.info history.info rluserman.info
-PSOBJ = readline.ps history.ps rluserman.ps readline_3.ps history_3.ps
-HTMLOBJ = readline.html history.html rluserman.html
-TEXTOBJ = readline.0 history.0
-
-INTERMEDIATE_OBJ = rlman.dvi hist.dvi rluserman.dvi
-
-DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ) $(INFOOBJ) $(TEXTOBJ)
-
-.SUFFIXES: .0 .3 .ps .txt .dvi
-
-.3.0:
- $(RM) $@
- -${NROFF} -man $< > $@
-
-all: info dvi html ps text
-nodvi: info html text
-
-readline.dvi: $(RLSRC)
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rlman.texinfo
- mv rlman.dvi readline.dvi
-
-readline.info: $(RLSRC)
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rlman.texinfo
-
-rluserman.dvi: $(RLSRC)
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rluserman.texinfo
-
-rluserman.info: $(RLSRC)
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rluserman.texinfo
-
-history.dvi: ${HISTSRC}
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/hist.texinfo
- mv hist.dvi history.dvi
-
-history.info: ${HISTSRC}
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/hist.texinfo
-
-readline.ps: readline.dvi
- $(RM) $@
- $(DVIPS) readline.dvi
-
-rluserman.ps: rluserman.dvi
- $(RM) $@
- $(DVIPS) rluserman.dvi
-
-history.ps: history.dvi
- $(RM) $@
- $(DVIPS) history.dvi
-
-#
-# This leaves readline.html and rlman.html -- rlman.html is for www.gnu.org
-#
-readline.html: ${RLSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rlman.texinfo
- sed -e 's:rlman.html:readline.html:g' rlman.html > readline.html
-
-rluserman.html: ${RLSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rluserman.texinfo
-
-history.html: ${HISTSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/hist.texinfo
- sed -e 's:hist.html:history.html:g' hist.html > history.html
- $(RM) hist.html
-
-info: $(INFOOBJ)
-dvi: $(DVIOBJ)
-ps: $(PSOBJ)
-html: $(HTMLOBJ)
-text: $(TEXTOBJ)
-
-readline.0: readline.3
-
-readline_3.ps: readline.3
- ${RM} $@
- ${GROFF} -man < $(srcdir)/readline.3 > $@
-
-history.0: history.3
-
-history_3.ps: history.3
- ${RM} $@
- ${GROFF} -man < $(srcdir)/history.3 > $@
-
-clean:
- $(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \
- *.fns *.kys *.tps *.vrs *.bt *.bts *.o core *.core
-
-mostlyclean: clean
-
-distclean: clean maybe-clean
- $(RM) $(INTERMEDIATE_OBJ)
- $(RM) Makefile
-
-maybe-clean:
- -if test "X$(topdir)" != "X$(BUILD_DIR)"; then \
- $(RM) $(DIST_DOCS); \
- fi
-
-maintainer-clean: clean
- $(RM) $(DIST_DOCS)
- $(RM) $(INTERMEDIATE_OBJ)
- $(RM) Makefile
-
-installdirs: $(topdir)/support/mkdirs
- -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir)
- -if test -n "${htmldir}" ; then \
- $(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(htmldir) ; \
- fi
-
-install: installdirs
- if test -f readline.info; then \
- ${INSTALL_DATA} readline.info $(DESTDIR)$(infodir)/readline.info; \
- else \
- ${INSTALL_DATA} $(srcdir)/readline.info $(DESTDIR)$(infodir)/readline.info; \
- fi
- if test -f rluserman.info; then \
- ${INSTALL_DATA} rluserman.info $(DESTDIR)$(infodir)/rluserman.info; \
- else \
- ${INSTALL_DATA} $(srcdir)/rluserman.info $(DESTDIR)$(infodir)/rluserman.info; \
- fi
- if test -f history.info; then \
- ${INSTALL_DATA} history.info $(DESTDIR)$(infodir)/history.info; \
- else \
- ${INSTALL_DATA} $(srcdir)/history.info $(DESTDIR)$(infodir)/history.info; \
- fi
- -if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
- install-info --dir-file=$(DESTDIR)$(infodir)/dir \
- $(DESTDIR)$(infodir)/readline.info ; \
- install-info --dir-file=$(DESTDIR)$(infodir)/dir \
- $(DESTDIR)$(infodir)/history.info ; \
- install-info --dir-file=$(DESTDIR)$(infodir)/dir \
- $(DESTDIR)$(infodir)/rluserman.info ; \
- else true; fi
- -${INSTALL_DATA} $(srcdir)/readline.3 $(DESTDIR)$(man3dir)/readline$(man3ext)
- -${INSTALL_DATA} $(srcdir)/history.3 $(DESTDIR)$(man3dir)/history$(man3ext)
- -if test -n "${htmldir}" ; then \
- if test -f readline.html; then \
- ${INSTALL_DATA} readline.html $(DESTDIR)$(htmldir)/readline.html; \
- else \
- ${INSTALL_DATA} $(srcdir)/readline.html $(DESTDIR)$(htmldir)/readline.html; \
- fi ; \
- if test -f history.html; then \
- ${INSTALL_DATA} history.html $(DESTDIR)$(htmldir)/history.html; \
- else \
- ${INSTALL_DATA} $(srcdir)/history.html $(DESTDIR)$(htmldir)/history.html; \
- fi ; \
- if test -f rluserman.html; then \
- ${INSTALL_DATA} rluserman.html $(DESTDIR)$(htmldir)/rluserman.html; \
- else \
- ${INSTALL_DATA} $(srcdir)/rluserman.html $(DESTDIR)$(htmldir)/rluserman.html; \
- fi ; \
- fi
-
-uninstall:
- $(RM) $(DESTDIR)$(infodir)/readline.info
- $(RM) $(DESTDIR)$(infodir)/rluserman.info
- $(RM) $(DESTDIR)$(infodir)/history.info
- $(RM) $(DESTDIR)$(man3dir)/readline$(man3ext)
- $(RM) $(DESTDIR)$(man3dir)/history$(man3ext)
- -if test -n "${htmldir}" ; then \
- $(RM) $(DESTDIR)$(htmldir)/readline.html ; \
- $(RM) $(DESTDIR)$(htmldir)/rluserman.html ; \
- $(RM) $(DESTDIR)$(htmldir)/history.html ; \
- fi
diff --git a/readline-4.3.orig/doc/hist.texinfo b/readline-4.3.orig/doc/hist.texinfo
deleted file mode 100644
index 63ceb16..0000000
--- a/readline-4.3.orig/doc/hist.texinfo
+++ /dev/null
@@ -1,110 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header (This is for running Texinfo on a region.)
-@setfilename history.info
-@settitle GNU History Library
-@c %**end of header (This is for running Texinfo on a region.)
-
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* History: (history). The GNU history library API
-@end direntry
-
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage
-@title GNU History Library
-@subtitle Edition @value{EDITION}, for @code{History Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU History Library
-
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-@menu
-* Using History Interactively:: GNU History User's Manual.
-* Programming with GNU History:: GNU History Programmer's Manual.
-* Concept Index:: Index of concepts described in this manual.
-* Function and Variable Index:: Index of externally visible functions
- and variables.
-@end menu
-@end ifinfo
-
-@syncodeindex fn vr
-
-@include hsuser.texinfo
-@include hstech.texinfo
-
-@node Concept Index
-@appendix Concept Index
-@printindex cp
-
-@node Function and Variable Index
-@appendix Function and Variable Index
-@printindex vr
-
-@contents
-@bye
diff --git a/readline-4.3.orig/doc/history.0 b/readline-4.3.orig/doc/history.0
deleted file mode 100644
index 324c363..0000000
--- a/readline-4.3.orig/doc/history.0
+++ /dev/null
@@ -1,660 +0,0 @@
-
-
-
-HISTORY(3) HISTORY(3)
-
-
-NNAAMMEE
- history - GNU History Library
-
-CCOOPPYYRRIIGGHHTT
- The GNU History Library is Copyright (C) 1989-2002 by the
- Free Software Foundation, Inc.
-
-DDEESSCCRRIIPPTTIIOONN
- Many programs read input from the user a line at a time.
- The GNU History library is able to keep track of those
- lines, associate arbitrary data with each line, and uti-
- lize information from previous lines in composing new
- ones.
-
-
-HHIISSTTOORRYY EEXXPPAANNSSIIOONN
- The history library supports a history expansion feature
- that is identical to the history expansion in bbaasshh.. This
- section describes what syntax features are available.
-
- History expansions introduce words from the history list
- into the input stream, making it easy to repeat commands,
- insert the arguments to a previous command into the cur-
- rent input line, or fix errors in previous commands
- quickly.
-
- History expansion is usually performed immediately after a
- complete line is read. It takes place in two parts. The
- first is to determine which line from the history list to
- use during substitution. The second is to select portions
- of that line for inclusion into the current one. The line
- selected from the history is the _e_v_e_n_t, and the portions
- of that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_-
- _f_i_e_r_s are available to manipulate the selected words. The
- line is broken into words in the same fashion as bbaasshh does
- when reading input, so that several words that would oth-
- erwise be separated are considered one word when sur-
- rounded by quotes (see the description of hhiissttoorryy__ttookk--
- eenniizzee(()) below). History expansions are introduced by the
- appearance of the history expansion character, which is !!
- by default. Only backslash (\\) and single quotes can
- quote the history expansion character.
-
- EEvveenntt DDeessiiggnnaattoorrss
- An event designator is a reference to a command line entry
- in the history list.
-
- !! Start a history substitution, except when followed
- by a bbllaannkk, newline, = or (.
- !!_n Refer to command line _n.
- !!--_n Refer to the current command line minus _n.
- !!!! Refer to the previous command. This is a synonym
- for `!-1'.
-
-
-
-
-GNU History 4.3 2002 January 31 1
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- !!_s_t_r_i_n_g
- Refer to the most recent command starting with
- _s_t_r_i_n_g.
- !!??_s_t_r_i_n_g[[??]]
- Refer to the most recent command containing _s_t_r_i_n_g.
- The trailing ?? may be omitted if _s_t_r_i_n_g is followed
- immediately by a newline.
- ^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^
- Quick substitution. Repeat the last command,
- replacing _s_t_r_i_n_g_1 with _s_t_r_i_n_g_2. Equivalent to
- ``!!:s/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/'' (see MMooddiiffiieerrss below).
- !!## The entire command line typed so far.
-
- WWoorrdd DDeessiiggnnaattoorrss
- Word designators are used to select desired words from the
- event. A :: separates the event specification from the
- word designator. It may be omitted if the word designator
- begins with a ^^, $$, **, --, or %%. Words are numbered from
- the beginning of the line, with the first word being
- denoted by 0 (zero). Words are inserted into the current
- line separated by single spaces.
-
- 00 ((zzeerroo))
- The zeroth word. For the shell, this is the com-
- mand word.
- _n The _nth word.
- ^^ The first argument. That is, word 1.
- $$ The last argument.
- %% The word matched by the most recent `?_s_t_r_i_n_g?'
- search.
- _x--_y A range of words; `-_y' abbreviates `0-_y'.
- ** All of the words but the zeroth. This is a synonym
- for `_1_-_$'. It is not an error to use ** if there is
- just one word in the event; the empty string is
- returned in that case.
- xx** Abbreviates _x_-_$.
- xx-- Abbreviates _x_-_$ like xx**, but omits the last word.
-
- If a word designator is supplied without an event specifi-
- cation, the previous command is used as the event.
-
- MMooddiiffiieerrss
- After the optional word designator, there may appear a
- sequence of one or more of the following modifiers, each
- preceded by a `:'.
-
- hh Remove a trailing file name component, leaving only
- the head.
- tt Remove all leading file name components, leaving
- the tail.
- rr Remove a trailing suffix of the form _._x_x_x, leaving
- the basename.
- ee Remove all but the trailing suffix.
- pp Print the new command but do not execute it.
-
-
-
-GNU History 4.3 2002 January 31 2
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- qq Quote the substituted words, escaping further sub-
- stitutions.
- xx Quote the substituted words as with qq, but break
- into words at bbllaannkkss and newlines.
- ss//_o_l_d//_n_e_w//
- Substitute _n_e_w for the first occurrence of _o_l_d in
- the event line. Any delimiter can be used in place
- of /. The final delimiter is optional if it is the
- last character of the event line. The delimiter
- may be quoted in _o_l_d and _n_e_w with a single back-
- slash. If & appears in _n_e_w, it is replaced by _o_l_d.
- A single backslash will quote the &. If _o_l_d is
- null, it is set to the last _o_l_d substituted, or, if
- no previous history substitutions took place, the
- last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search.
- && Repeat the previous substitution.
- gg Cause changes to be applied over the entire event
- line. This is used in conjunction with `::ss' (e.g.,
- `::ggss//_o_l_d//_n_e_w//') or `::&&'. If used with `::ss', any
- delimiter can be used in place of /, and the final
- delimiter is optional if it is the last character
- of the event line.
-
-PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS
- This section describes how to use the History library in
- other programs.
-
- IInnttrroodduuccttiioonn ttoo HHiissttoorryy
- The programmer using the History library has available
- functions for remembering lines on a history list, associ-
- ating arbitrary data with a line, removing lines from the
- list, searching through the list for a line containing an
- arbitrary text string, and referencing any line in the
- list directly. In addition, a history _e_x_p_a_n_s_i_o_n function
- is available which provides for a consistent user inter-
- face across different programs.
-
- The user using programs written with the History library
- has the benefit of a consistent user interface with a set
- of well-known commands for manipulating the text of previ-
- ous lines and using that text in new commands. The basic
- history manipulation commands are identical to the history
- substitution provided by bbaasshh.
-
- If the programmer desires, he can use the Readline
- library, which includes some history manipulation by
- default, and has the added advantage of command line edit-
- ing.
-
- Before declaring any functions using any functionality the
- History library provides in other code, an application
- writer should include the file _<_r_e_a_d_l_i_n_e_/_h_i_s_t_o_r_y_._h_> in any
- file that uses the History library's features. It sup-
- plies extern declarations for all of the library's public
-
-
-
-GNU History 4.3 2002 January 31 3
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- functions and variables, and declares all of the public
- data structures.
-
-
- HHiissttoorryy SSttoorraaggee
- The history list is an array of history entries. A his-
- tory entry is declared as follows:
-
- _t_y_p_e_d_e_f _v_o_i_d _* hhiissttddaattaa__tt;;
-
- typedef struct _hist_entry {
- char *line;
- histdata_t data;
- } HIST_ENTRY;
-
- The history list itself might therefore be declared as
-
- _H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;;
-
- The state of the History library is encapsulated into a
- single structure:
-
- /*
- * A structure used to pass around the current state of the history.
- */
- typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
- } HISTORY_STATE;
-
- If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has
- been stifled.
-
-HHiissttoorryy FFuunnccttiioonnss
- This section describes the calling sequence for the vari-
- ous functions exported by the GNU History library.
-
- IInniittiiaalliizziinngg HHiissttoorryy aanndd SSttaattee MMaannaaggeemmeenntt
- This section describes functions used to initialize and
- manage the state of the History library when you want to
- use the history functions in your program.
-
- _v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d)
- Begin a session in which the history functions might be
- used. This initializes the interactive variables.
-
- _H_I_S_T_O_R_Y___S_T_A_T_E _* hhiissttoorryy__ggeett__hhiissttoorryy__ssttaattee (_v_o_i_d)
- Return a structure describing the current state of the
- input history.
-
- _v_o_i_d hhiissttoorryy__sseett__hhiissttoorryy__ssttaattee (_H_I_S_T_O_R_Y___S_T_A_T_E _*_s_t_a_t_e)
-
-
-
-GNU History 4.3 2002 January 31 4
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- Set the state of the history list according to _s_t_a_t_e.
-
-
- HHiissttoorryy LLiisstt MMaannaaggeemmeenntt
- These functions manage individual entries on the history
- list, or set parameters managing the list itself.
-
- _v_o_i_d aadddd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
- Place _s_t_r_i_n_g at the end of the history list. The associ-
- ated data field (if any) is set to NNUULLLL.
-
- _H_I_S_T___E_N_T_R_Y _* rreemmoovvee__hhiissttoorryy (_i_n_t _w_h_i_c_h)
- Remove history entry at offset _w_h_i_c_h from the history.
- The removed element is returned so you can free the line,
- data, and containing structure.
-
- _H_I_S_T___E_N_T_R_Y _* rreeppllaaccee__hhiissttoorryy__eennttrryy (_i_n_t _w_h_i_c_h_, _c_o_n_s_t _c_h_a_r
- _*_l_i_n_e_, _h_i_s_t_d_a_t_a___t _d_a_t_a)
- Make the history entry at offset _w_h_i_c_h have _l_i_n_e and _d_a_t_a.
- This returns the old entry so you can dispose of the data.
- In the case of an invalid _w_h_i_c_h, a NNUULLLL pointer is
- returned.
-
- _v_o_i_d cclleeaarr__hhiissttoorryy (_v_o_i_d)
- Clear the history list by deleting all the entries.
-
- _v_o_i_d ssttiiffllee__hhiissttoorryy (_i_n_t _m_a_x)
- Stifle the history list, remembering only the last _m_a_x
- entries.
-
- _i_n_t uunnssttiiffllee__hhiissttoorryy (_v_o_i_d)
- Stop stifling the history. This returns the previously-
- set maximum number of history entries (as set by ssttii--
- ffllee__hhiissttoorryy(())). history was stifled. The value is posi-
- tive if the history was stifled, negative if it wasn't.
-
- _i_n_t hhiissttoorryy__iiss__ssttiifflleedd (_v_o_i_d)
- Returns non-zero if the history is stifled, zero if it is
- not.
-
-
- IInnffoorrmmaattiioonn AAbboouutt tthhee HHiissttoorryy LLiisstt
- These functions return information about the entire his-
- tory list or individual list entries.
-
- _H_I_S_T___E_N_T_R_Y _*_* hhiissttoorryy__lliisstt (_v_o_i_d)
- Return a NNUULLLL terminated array of _H_I_S_T___E_N_T_R_Y _* which is
- the current input history. Element 0 of this list is the
- beginning of time. If there is no history, return NNUULLLL.
-
- _i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d)
- Returns the offset of the current history element.
-
- _H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d)
-
-
-
-GNU History 4.3 2002 January 31 5
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- Return the history entry at the current position, as
- determined by wwhheerree__hhiissttoorryy(()). If there is no entry
- there, return a NNUULLLL pointer.
-
- _H_I_S_T___E_N_T_R_Y _* hhiissttoorryy__ggeett (_i_n_t _o_f_f_s_e_t)
- Return the history entry at position _o_f_f_s_e_t, starting from
- hhiissttoorryy__bbaassee. If there is no entry there, or if _o_f_f_s_e_t is
- greater than the history length, return a NNUULLLL pointer.
-
- _i_n_t hhiissttoorryy__ttoottaall__bbyytteess (_v_o_i_d)
- Return the number of bytes that the primary history
- entries are using. This function returns the sum of the
- lengths of all the lines in the history.
-
-
- MMoovviinngg AArroouunndd tthhee HHiissttoorryy LLiisstt
- These functions allow the current index into the history
- list to be set or changed.
-
- _i_n_t hhiissttoorryy__sseett__ppooss (_i_n_t _p_o_s)
- Set the current history offset to _p_o_s, an absolute index
- into the list. Returns 1 on success, 0 if _p_o_s is less
- than zero or greater than the number of history entries.
-
- _H_I_S_T___E_N_T_R_Y _* pprreevviioouuss__hhiissttoorryy (_v_o_i_d)
- Back up the current history offset to the previous history
- entry, and return a pointer to that entry. If there is no
- previous entry, return a NNUULLLL pointer.
-
- _H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d)
- Move the current history offset forward to the next his-
- tory entry, and return the a pointer to that entry. If
- there is no next entry, return a NNUULLLL pointer.
-
-
- SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt
- These functions allow searching of the history list for
- entries containing a specific string. Searching may be
- performed both forward and backward from the current his-
- tory position. The search may be _a_n_c_h_o_r_e_d, meaning that
- the string must match at the beginning of the history
- entry.
-
- _i_n_t hhiissttoorryy__sseeaarrcchh (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n)
- Search the history for _s_t_r_i_n_g, starting at the current
- history offset. If _d_i_r_e_c_t_i_o_n is less than 0, then the
- search is through previous entries, otherwise through sub-
- sequent entries. If _s_t_r_i_n_g is found, then the current
- history index is set to that history entry, and the value
- returned is the offset in the line of the entry where
- _s_t_r_i_n_g was found. Otherwise, nothing is changed, and a -1
- is returned.
-
- _i_n_t hhiissttoorryy__sseeaarrcchh__pprreeffiixx (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t
-
-
-
-GNU History 4.3 2002 January 31 6
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- _d_i_r_e_c_t_i_o_n)
- Search the history for _s_t_r_i_n_g, starting at the current
- history offset. The search is anchored: matching lines
- must begin with _s_t_r_i_n_g. If _d_i_r_e_c_t_i_o_n is less than 0, then
- the search is through previous entries, otherwise through
- subsequent entries. If _s_t_r_i_n_g is found, then the current
- history index is set to that entry, and the return value
- is 0. Otherwise, nothing is changed, and a -1 is
- returned.
-
- _i_n_t hhiissttoorryy__sseeaarrcchh__ppooss (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n_,
- _i_n_t _p_o_s)
- Search for _s_t_r_i_n_g in the history list, starting at _p_o_s, an
- absolute index into the list. If _d_i_r_e_c_t_i_o_n is negative,
- the search proceeds backward from _p_o_s, otherwise forward.
- Returns the absolute index of the history element where
- _s_t_r_i_n_g was found, or -1 otherwise.
-
-
- MMaannaaggiinngg tthhee HHiissttoorryy FFiillee
- The History library can read the history from and write it
- to a file. This section documents the functions for man-
- aging a history file.
-
- _i_n_t rreeaadd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Add the contents of _f_i_l_e_n_a_m_e to the history list, a line
- at a time. If _f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_-
- _t_o_r_y. Returns 0 if successful, or eerrrrnnoo if not.
-
- _i_n_t rreeaadd__hhiissttoorryy__rraannggee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _f_r_o_m_,
- _i_n_t _t_o)
- Read a range of lines from _f_i_l_e_n_a_m_e, adding them to the
- history list. Start reading at line _f_r_o_m and end at _t_o.
- If _f_r_o_m is zero, start at the beginning. If _t_o is less
- than _f_r_o_m, then read until the end of the file. If _f_i_l_e_-
- _n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if
- successful, or eerrrrnnoo if not.
-
- _i_n_t wwrriittee__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Write the current history to _f_i_l_e_n_a_m_e, overwriting _f_i_l_e_-
- _n_a_m_e if necessary. If _f_i_l_e_n_a_m_e is NNUULLLL, then write the
- history list to _~_/_._h_i_s_t_o_r_y. Returns 0 on success, or
- eerrrrnnoo on a read or write error.
-
-
- _i_n_t aappppeenndd__hhiissttoorryy (_i_n_t _n_e_l_e_m_e_n_t_s_, _c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Append the last _n_e_l_e_m_e_n_t_s of the history list to _f_i_l_e_n_a_m_e.
- If _f_i_l_e_n_a_m_e is NNUULLLL, then append to _~_/_._h_i_s_t_o_r_y. Returns 0
- on success, or eerrrrnnoo on a read or write error.
-
- _i_n_t hhiissttoorryy__ttrruunnccaattee__ffiillee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t
- _n_l_i_n_e_s)
- Truncate the history file _f_i_l_e_n_a_m_e, leaving only the last
- _n_l_i_n_e_s lines. If _f_i_l_e_n_a_m_e is NNUULLLL, then _~_/_._h_i_s_t_o_r_y is
-
-
-
-GNU History 4.3 2002 January 31 7
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- truncated. Returns 0 on success, or eerrrrnnoo on failure.
-
-
- HHiissttoorryy EExxppaannssiioonn
- These functions implement history expansion.
-
- _i_n_t hhiissttoorryy__eexxppaanndd (_c_h_a_r _*_s_t_r_i_n_g_, _c_h_a_r _*_*_o_u_t_p_u_t)
- Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, a pointer
- to a string. Returns:
- 0 If no expansions took place (or, if the only
- change in the text was the removal of escape
- characters preceding the history expansion
- character);
- 1 if expansions did take place;
- -1 if there was an error in expansion;
- 2 if the returned line should be displayed,
- but not executed, as with the ::pp modifier.
- If an error ocurred in expansion, then _o_u_t_p_u_t contains a
- descriptive error message.
-
- _c_h_a_r _* ggeett__hhiissttoorryy__eevveenntt (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _*_c_i_n_d_e_x_,
- _i_n_t _q_c_h_a_r)
- Returns the text of the history event beginning at _s_t_r_i_n_g
- + _*_c_i_n_d_e_x. _*_c_i_n_d_e_x is modified to point to after the
- event specifier. At function entry, _c_i_n_d_e_x points to the
- index into _s_t_r_i_n_g where the history event specification
- begins. _q_c_h_a_r is a character that is allowed to end the
- event specification in addition to the ``normal'' termi-
- nating characters.
-
- _c_h_a_r _*_* hhiissttoorryy__ttookkeenniizzee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
- Return an array of tokens parsed out of _s_t_r_i_n_g, much as
- the shell might. The tokens are split on the characters
- in the hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss variable, and shell quoting
- conventions are obeyed.
-
- _c_h_a_r _* hhiissttoorryy__aarrgg__eexxttrraacctt (_i_n_t _f_i_r_s_t_, _i_n_t _l_a_s_t_, _c_o_n_s_t
- _c_h_a_r _*_s_t_r_i_n_g)
- Extract a string segment consisting of the _f_i_r_s_t through
- _l_a_s_t arguments present in _s_t_r_i_n_g. Arguments are split
- using hhiissttoorryy__ttookkeenniizzee(()).
-
-
- HHiissttoorryy VVaarriiaabblleess
- This section describes the externally-visible variables
- exported by the GNU History Library.
-
- _i_n_t hhiissttoorryy__bbaassee
- The logical offset of the first entry in the history list.
-
- _i_n_t hhiissttoorryy__lleennggtthh
- The number of entries currently stored in the history
- list.
-
-
-
-
-GNU History 4.3 2002 January 31 8
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- _i_n_t hhiissttoorryy__mmaaxx__eennttrriieess
- The maximum number of history entries. This must be
- changed using ssttiiffllee__hhiissttoorryy(()).
-
- _c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr
- The character that introduces a history event. The
- default is !!. Setting this to 0 inhibits history expan-
- sion.
-
- _c_h_a_r hhiissttoorryy__ssuubbsstt__cchhaarr
- The character that invokes word substitution if found at
- the start of a line. The default is ^^.
-
- _c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr
- During tokenization, if this character is seen as the
- first character of a word, then it and all subsequent
- characters up to a newline are ignored, suppressing his-
- tory expansion for the remainder of the line. This is
- disabled by default.
-
- _c_h_a_r _* hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss
- The characters that separate tokens for hhiissttoorryy__ttookk--
- eenniizzee(()). The default value is "" \\tt\\nn(())<<>>;;&&||"".
-
- _c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss
- The list of characters which inhibit history expansion if
- found immediately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The
- default is space, tab, newline, \\rr, and ==.
-
- _c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss
- The list of additional characters which can delimit a his-
- tory search string, in addition to space, tab, _: and _? in
- the case of a substring search. The default is empty.
-
- _i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn
- If non-zero, single-quoted words are not scanned for the
- history expansion character. The default value is 0.
-
- _r_l___l_i_n_e_b_u_f___f_u_n_c___t _* hhiissttoorryy__iinnhhiibbiitt__eexxppaannssiioonn__ffuunnccttiioonn
- This should be set to the address of a function that takes
- two arguments: a cchhaarr ** (_s_t_r_i_n_g) and an iinntt index into
- that string (_i). It should return a non-zero value if the
- history expansion starting at _s_t_r_i_n_g_[_i_] should not be per-
- formed; zero if the expansion should be done. It is
- intended for use by applications like bbaasshh that use the
- history expansion character for additional purposes. By
- default, this variable is set to NNUULLLL.
-
-FFIILLEESS
- _~_/_._h_i_s_t_o_r_y
- Default filename for reading and writing saved his-
- tory
-
-
-
-
-
-GNU History 4.3 2002 January 31 9
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
-SSEEEE AALLSSOO
- _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _b_a_s_h(1)
- _r_e_a_d_l_i_n_e(3)
-
-AAUUTTHHOORRSS
- Brian Fox, Free Software Foundation
- bfox@gnu.org
-
- Chet Ramey, Case Western Reserve University
- chet@ins.CWRU.Edu
-
-BBUUGG RREEPPOORRTTSS
- If you find a bug in the hhiissttoorryy library, you should
- report it. But first, you should make sure that it really
- is a bug, and that it appears in the latest version of the
- hhiissttoorryy library that you have.
-
- Once you have determined that a bug actually exists, mail
- a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix,
- you are welcome to mail that as well! Suggestions and
- `philosophical' bug reports may be mailed to _b_u_g_-_r_e_a_d_-
- _l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup
- ggnnuu..bbaasshh..bbuugg.
-
- Comments and bug reports concerning this manual page
- should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GNU History 4.3 2002 January 31 10
-
-
diff --git a/readline-4.3.orig/doc/history.3 b/readline-4.3.orig/doc/history.3
deleted file mode 100644
index ed0cb9f..0000000
--- a/readline-4.3.orig/doc/history.3
+++ /dev/null
@@ -1,640 +0,0 @@
-.\"
-.\" MAN PAGE COMMENTS to
-.\"
-.\" Chet Ramey
-.\" Information Network Services
-.\" Case Western Reserve University
-.\" chet@ins.CWRU.Edu
-.\"
-.\" Last Change: Thu Jan 31 16:08:07 EST 2002
-.\"
-.TH HISTORY 3 "2002 January 31" "GNU History 4.3"
-.\"
-.\" File Name macro. This used to be `.PN', for Path Name,
-.\" but Sun doesn't seem to like that very much.
-.\"
-.de FN
-\fI\|\\$1\|\fP
-..
-.ds lp \fR\|(\fP
-.ds rp \fR\|)\fP
-.\" FnN return-value fun-name N arguments
-.de Fn1
-\fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3\fP\\*(rp
-.br
-..
-.de Fn2
-.if t \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3,\|\\$4\fP\\*(rp
-.if n \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3, \\$4\fP\\*(rp
-.br
-..
-.de Fn3
-.if t \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3,\|\\$4,\|\\$5\fP\|\\*(rp
-.if n \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3, \\$4, \\$5\fP\\*(rp
-.br
-..
-.de Vb
-\fI\\$1\fP \fB\\$2\fP
-.br
-..
-.SH NAME
-history \- GNU History Library
-.SH COPYRIGHT
-.if t The GNU History Library is Copyright \(co 1989-2002 by the Free Software Foundation, Inc.
-.if n The GNU History Library is Copyright (C) 1989-2002 by the Free Software Foundation, Inc.
-.SH DESCRIPTION
-Many programs read input from the user a line at a time. The GNU
-History library is able to keep track of those lines, associate arbitrary
-data with each line, and utilize information from previous lines in
-composing new ones.
-.PP
-.SH "HISTORY EXPANSION"
-.PP
-The history library supports a history expansion feature that
-is identical to the history expansion in
-.BR bash.
-This section describes what syntax features are available.
-.PP
-History expansions introduce words from the history list into
-the input stream, making it easy to repeat commands, insert the
-arguments to a previous command into the current input line, or
-fix errors in previous commands quickly.
-.PP
-History expansion is usually performed immediately after a complete line
-is read.
-It takes place in two parts.
-The first is to determine which line from the history list
-to use during substitution.
-The second is to select portions of that line for inclusion into
-the current one.
-The line selected from the history is the \fIevent\fP,
-and the portions of that line that are acted upon are \fIwords\fP.
-Various \fImodifiers\fP are available to manipulate the selected words.
-The line is broken into words in the same fashion as \fBbash\fP
-does when reading input,
-so that several words that would otherwise be separated
-are considered one word when surrounded by quotes (see the
-description of \fBhistory_tokenize()\fP below).
-History expansions are introduced by the appearance of the
-history expansion character, which is \^\fB!\fP\^ by default.
-Only backslash (\^\fB\e\fP\^) and single quotes can quote
-the history expansion character.
-.SS Event Designators
-.PP
-An event designator is a reference to a command line entry in the
-history list.
-.PP
-.PD 0
-.TP
-.B !
-Start a history substitution, except when followed by a
-.BR blank ,
-newline, = or (.
-.TP
-.B !\fIn\fR
-Refer to command line
-.IR n .
-.TP
-.B !\-\fIn\fR
-Refer to the current command line minus
-.IR n .
-.TP
-.B !!
-Refer to the previous command. This is a synonym for `!\-1'.
-.TP
-.B !\fIstring\fR
-Refer to the most recent command starting with
-.IR string .
-.TP
-.B !?\fIstring\fR\fB[?]\fR
-Refer to the most recent command containing
-.IR string .
-The trailing \fB?\fP may be omitted if
-.I string
-is followed immediately by a newline.
-.TP
-.B \d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u
-Quick substitution. Repeat the last command, replacing
-.I string1
-with
-.IR string2 .
-Equivalent to
-``!!:s/\fIstring1\fP/\fIstring2\fP/''
-(see \fBModifiers\fP below).
-.TP
-.B !#
-The entire command line typed so far.
-.PD
-.SS Word Designators
-.PP
-Word designators are used to select desired words from the event.
-A
-.B :
-separates the event specification from the word designator.
-It may be omitted if the word designator begins with a
-.BR ^ ,
-.BR $ ,
-.BR * ,
-.BR \- ,
-or
-.BR % .
-Words are numbered from the beginning of the line,
-with the first word being denoted by 0 (zero).
-Words are inserted into the current line separated by single spaces.
-.PP
-.PD 0
-.TP
-.B 0 (zero)
-The zeroth word. For the shell, this is the command
-word.
-.TP
-.I n
-The \fIn\fRth word.
-.TP
-.B ^
-The first argument. That is, word 1.
-.TP
-.B $
-The last argument.
-.TP
-.B %
-The word matched by the most recent `?\fIstring\fR?' search.
-.TP
-.I x\fB\-\fPy
-A range of words; `\-\fIy\fR' abbreviates `0\-\fIy\fR'.
-.TP
-.B *
-All of the words but the zeroth. This is a synonym
-for `\fI1\-$\fP'. It is not an error to use
-.B *
-if there is just one
-word in the event; the empty string is returned in that case.
-.TP
-.B x*
-Abbreviates \fIx\-$\fP.
-.TP
-.B x\-
-Abbreviates \fIx\-$\fP like \fBx*\fP, but omits the last word.
-.PD
-.PP
-If a word designator is supplied without an event specification, the
-previous command is used as the event.
-.SS Modifiers
-.PP
-After the optional word designator, there may appear a sequence of
-one or more of the following modifiers, each preceded by a `:'.
-.PP
-.PD 0
-.PP
-.TP
-.B h
-Remove a trailing file name component, leaving only the head.
-.TP
-.B t
-Remove all leading file name components, leaving the tail.
-.TP
-.B r
-Remove a trailing suffix of the form \fI.xxx\fP, leaving the
-basename.
-.TP
-.B e
-Remove all but the trailing suffix.
-.TP
-.B p
-Print the new command but do not execute it.
-.TP
-.B q
-Quote the substituted words, escaping further substitutions.
-.TP
-.B x
-Quote the substituted words as with
-.BR q ,
-but break into words at
-.B blanks
-and newlines.
-.TP
-.B s/\fIold\fP/\fInew\fP/
-Substitute
-.I new
-for the first occurrence of
-.I old
-in the event line. Any delimiter can be used in place of /. The
-final delimiter is optional if it is the last character of the
-event line. The delimiter may be quoted in
-.I old
-and
-.I new
-with a single backslash. If & appears in
-.IR new ,
-it is replaced by
-.IR old .
-A single backslash will quote the &. If
-.I old
-is null, it is set to the last
-.I old
-substituted, or, if no previous history substitutions took place,
-the last
-.I string
-in a
-.B !?\fIstring\fR\fB[?]\fR
-search.
-.TP
-.B &
-Repeat the previous substitution.
-.TP
-.B g
-Cause changes to be applied over the entire event line. This is
-used in conjunction with `\fB:s\fP' (e.g., `\fB:gs/\fIold\fP/\fInew\fP/\fR')
-or `\fB:&\fP'. If used with
-`\fB:s\fP', any delimiter can be used
-in place of /, and the final delimiter is optional
-if it is the last character of the event line.
-.PD
-.SH "PROGRAMMING WITH HISTORY FUNCTIONS"
-This section describes how to use the History library in other programs.
-.SS Introduction to History
-.PP
-The programmer using the History library has available functions
-for remembering lines on a history list, associating arbitrary data
-with a line, removing lines from the list, searching through the list
-for a line containing an arbitrary text string, and referencing any line
-in the list directly. In addition, a history \fIexpansion\fP function
-is available which provides for a consistent user interface across
-different programs.
-.PP
-The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are
-identical to
-the history substitution provided by \fBbash\fP.
-.PP
-If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-.PP
-Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file
-.FN <readline/history.h>
-in any file that uses the
-History library's features. It supplies extern declarations for all
-of the library's public functions and variables, and declares all of
-the public data structures.
-
-.SS History Storage
-.PP
-The history list is an array of history entries. A history entry is
-declared as follows:
-.PP
-.Vb "typedef void *" histdata_t;
-.PP
-.nf
-typedef struct _hist_entry {
- char *line;
- histdata_t data;
-} HIST_ENTRY;
-.fi
-.PP
-The history list itself might therefore be declared as
-.PP
-.Vb "HIST_ENTRY **" the_history_list;
-.PP
-The state of the History library is encapsulated into a single structure:
-.PP
-.nf
-/*
- * A structure used to pass around the current state of the history.
- */
-typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
-} HISTORY_STATE;
-.fi
-.PP
-If the flags member includes \fBHS_STIFLED\fP, the history has been
-stifled.
-.SH "History Functions"
-.PP
-This section describes the calling sequence for the various functions
-exported by the GNU History library.
-.SS Initializing History and State Management
-This section describes functions used to initialize and manage
-the state of the History library when you want to use the history
-functions in your program.
-
-.Fn1 void using_history void
-Begin a session in which the history functions might be used. This
-initializes the interactive variables.
-
-.Fn1 "HISTORY_STATE *" history_get_history_state void
-Return a structure describing the current state of the input history.
-
-.Fn1 void history_set_history_state "HISTORY_STATE *state"
-Set the state of the history list according to \fIstate\fP.
-
-.SS History List Management
-
-These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-
-.Fn1 void add_history "const char *string"
-Place \fIstring\fP at the end of the history list. The associated data
-field (if any) is set to \fBNULL\fP.
-
-.Fn1 "HIST_ENTRY *" remove_history "int which"
-Remove history entry at offset \fIwhich\fP from the history. The
-removed element is returned so you can free the line, data,
-and containing structure.
-
-.Fn3 "HIST_ENTRY *" replace_history_entry "int which" "const char *line" "histdata_t data"
-Make the history entry at offset \fIwhich\fP have \fIline\fP and \fIdata\fP.
-This returns the old entry so you can dispose of the data. In the case
-of an invalid \fIwhich\fP, a \fBNULL\fP pointer is returned.
-
-.Fn1 void clear_history "void"
-Clear the history list by deleting all the entries.
-
-.Fn1 void stifle_history "int max"
-Stifle the history list, remembering only the last \fImax\fP entries.
-
-.Fn1 int unstifle_history "void"
-Stop stifling the history. This returns the previously-set
-maximum number of history entries (as set by \fBstifle_history()\fP).
-history was stifled. The value is positive if the history was
-stifled, negative if it wasn't.
-
-.Fn1 int history_is_stifled "void"
-Returns non-zero if the history is stifled, zero if it is not.
-
-.SS Information About the History List
-
-These functions return information about the entire history list or
-individual list entries.
-
-.Fn1 "HIST_ENTRY **" history_list "void"
-Return a \fBNULL\fP terminated array of \fIHIST_ENTRY *\fP which is the
-current input history. Element 0 of this list is the beginning of time.
-If there is no history, return \fBNULL\fP.
-
-.Fn1 int where_history "void"
-Returns the offset of the current history element.
-
-.Fn1 "HIST_ENTRY *" current_history "void"
-Return the history entry at the current position, as determined by
-\fBwhere_history()\fP. If there is no entry there, return a \fBNULL\fP
-pointer.
-
-.Fn1 "HIST_ENTRY *" history_get "int offset"
-Return the history entry at position \fIoffset\fP, starting from
-\fBhistory_base\fP.
-If there is no entry there, or if \fIoffset\fP
-is greater than the history length, return a \fBNULL\fP pointer.
-
-.Fn1 int history_total_bytes "void"
-Return the number of bytes that the primary history entries are using.
-This function returns the sum of the lengths of all the lines in the
-history.
-
-.SS Moving Around the History List
-
-These functions allow the current index into the history list to be
-set or changed.
-
-.Fn1 int history_set_pos "int pos"
-Set the current history offset to \fIpos\fP, an absolute index
-into the list.
-Returns 1 on success, 0 if \fIpos\fP is less than zero or greater
-than the number of history entries.
-
-.Fn1 "HIST_ENTRY *" previous_history "void"
-Back up the current history offset to the previous history entry, and
-return a pointer to that entry. If there is no previous entry, return
-a \fBNULL\fP pointer.
-
-.Fn1 "HIST_ENTRY *" next_history "void"
-Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a \fBNULL\fP pointer.
-
-.SS Searching the History List
-
-These functions allow searching of the history list for entries containing
-a specific string. Searching may be performed both forward and backward
-from the current history position. The search may be \fIanchored\fP,
-meaning that the string must match at the beginning of the history entry.
-
-.Fn2 int history_search "const char *string" "int direction"
-Search the history for \fIstring\fP, starting at the current history offset.
-If \fIdirection\fP is less than 0, then the search is through
-previous entries, otherwise through subsequent entries.
-If \fIstring\fP is found, then
-the current history index is set to that history entry, and the value
-returned is the offset in the line of the entry where
-\fIstring\fP was found. Otherwise, nothing is changed, and a -1 is
-returned.
-
-.Fn2 int history_search_prefix "const char *string" "int direction"
-Search the history for \fIstring\fP, starting at the current history
-offset. The search is anchored: matching lines must begin with
-\fIstring\fP. If \fIdirection\fP is less than 0, then the search is
-through previous entries, otherwise through subsequent entries.
-If \fIstring\fP is found, then the
-current history index is set to that entry, and the return value is 0.
-Otherwise, nothing is changed, and a -1 is returned.
-
-.Fn3 int history_search_pos "const char *string" "int direction" "int pos"
-Search for \fIstring\fP in the history list, starting at \fIpos\fP, an
-absolute index into the list. If \fIdirection\fP is negative, the search
-proceeds backward from \fIpos\fP, otherwise forward. Returns the absolute
-index of the history element where \fIstring\fP was found, or -1 otherwise.
-
-.SS Managing the History File
-The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-
-.Fn1 int read_history "const char *filename"
-Add the contents of \fIfilename\fP to the history list, a line at a time.
-If \fIfilename\fP is \fBNULL\fP, then read from \fI~/.history\fP.
-Returns 0 if successful, or \fBerrno\fP if not.
-
-.Fn3 int read_history_range "const char *filename" "int from" "int to"
-Read a range of lines from \fIfilename\fP, adding them to the history list.
-Start reading at line \fIfrom\fP and end at \fIto\fP.
-If \fIfrom\fP is zero, start at the beginning. If \fIto\fP is less than
-\fIfrom\fP, then read until the end of the file. If \fIfilename\fP is
-\fBNULL\fP, then read from \fI~/.history\fP. Returns 0 if successful,
-or \fBerrno\fP if not.
-
-.Fn1 int write_history "const char *filename"
-Write the current history to \fIfilename\fP, overwriting \fIfilename\fP
-if necessary.
-If \fIfilename\fP is \fBNULL\fP, then write the history list to \fI~/.history\fP.
-Returns 0 on success, or \fBerrno\fP on a read or write error.
-
-
-.Fn2 int append_history "int nelements" "const char *filename"
-Append the last \fInelements\fP of the history list to \fIfilename\fP.
-If \fIfilename\fP is \fBNULL\fP, then append to \fI~/.history\fP.
-Returns 0 on success, or \fBerrno\fP on a read or write error.
-
-.Fn2 int history_truncate_file "const char *filename" "int nlines"
-Truncate the history file \fIfilename\fP, leaving only the last
-\fInlines\fP lines.
-If \fIfilename\fP is \fBNULL\fP, then \fI~/.history\fP is truncated.
-Returns 0 on success, or \fBerrno\fP on failure.
-
-.SS History Expansion
-
-These functions implement history expansion.
-
-.Fn2 int history_expand "char *string" "char **output"
-Expand \fIstring\fP, placing the result into \fIoutput\fP, a pointer
-to a string. Returns:
-.RS
-.PD 0
-.TP
-0
-If no expansions took place (or, if the only change in
-the text was the removal of escape characters preceding the history expansion
-character);
-.TP
-1
-if expansions did take place;
-.TP
--1
-if there was an error in expansion;
-.TP
-2
-if the returned line should be displayed, but not executed,
-as with the \fB:p\fP modifier.
-.PD
-.RE
-If an error ocurred in expansion, then \fIoutput\fP contains a descriptive
-error message.
-
-.Fn3 "char *" get_history_event "const char *string" "int *cindex" "int qchar"
-Returns the text of the history event beginning at \fIstring\fP +
-\fI*cindex\fP. \fI*cindex\fP is modified to point to after the event
-specifier. At function entry, \fIcindex\fP points to the index into
-\fIstring\fP where the history event specification begins. \fIqchar\fP
-is a character that is allowed to end the event specification in addition
-to the ``normal'' terminating characters.
-
-.Fn1 "char **" history_tokenize "const char *string"
-Return an array of tokens parsed out of \fIstring\fP, much as the
-shell might.
-The tokens are split on the characters in the
-\fBhistory_word_delimiters\fP variable,
-and shell quoting conventions are obeyed.
-
-.Fn3 "char *" history_arg_extract "int first" "int last" "const char *string"
-Extract a string segment consisting of the \fIfirst\fP through \fIlast\fP
-arguments present in \fIstring\fP. Arguments are split using
-\fBhistory_tokenize()\fP.
-
-.SS History Variables
-
-This section describes the externally-visible variables exported by
-the GNU History Library.
-
-.Vb int history_base
-The logical offset of the first entry in the history list.
-
-.Vb int history_length
-The number of entries currently stored in the history list.
-
-.Vb int history_max_entries
-The maximum number of history entries. This must be changed using
-\fBstifle_history()\fP.
-
-.Vb char history_expansion_char
-The character that introduces a history event. The default is \fB!\fP.
-Setting this to 0 inhibits history expansion.
-
-.Vb char history_subst_char
-The character that invokes word substitution if found at the start of
-a line. The default is \fB^\fP.
-
-.Vb char history_comment_char
-During tokenization, if this character is seen as the first character
-of a word, then it and all subsequent characters up to a newline are
-ignored, suppressing history expansion for the remainder of the line.
-This is disabled by default.
-
-.Vb "char *" history_word_delimiters
-The characters that separate tokens for \fBhistory_tokenize()\fP.
-The default value is \fB"\ \et\en()<>;&|"\fP.
-
-.Vb "char *" history_no_expand_chars
-The list of characters which inhibit history expansion if found immediately
-following \fBhistory_expansion_char\fP. The default is space, tab, newline,
-\fB\er\fP, and \fB=\fP.
-
-.Vb "char *" history_search_delimiter_chars
-The list of additional characters which can delimit a history search
-string, in addition to space, tab, \fI:\fP and \fI?\fP in the case of
-a substring search. The default is empty.
-
-.Vb int history_quotes_inhibit_expansion
-If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
-
-.Vb "rl_linebuf_func_t *" history_inhibit_expansion_function
-This should be set to the address of a function that takes two arguments:
-a \fBchar *\fP (\fIstring\fP)
-and an \fBint\fP index into that string (\fIi\fP).
-It should return a non-zero value if the history expansion starting at
-\fIstring[i]\fP should not be performed; zero if the expansion should
-be done.
-It is intended for use by applications like \fBbash\fP that use the history
-expansion character for additional purposes.
-By default, this variable is set to \fBNULL\fP.
-.SH FILES
-.PD 0
-.TP
-.FN ~/.history
-Default filename for reading and writing saved history
-.PD
-.SH "SEE ALSO"
-.PD 0
-.TP
-\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
-.TP
-\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
-.TP
-\fIbash\fP(1)
-.TP
-\fIreadline\fP(3)
-.PD
-.SH AUTHORS
-Brian Fox, Free Software Foundation
-.br
-bfox@gnu.org
-.PP
-Chet Ramey, Case Western Reserve University
-.br
-chet@ins.CWRU.Edu
-.SH BUG REPORTS
-If you find a bug in the
-.B history
-library, you should report it. But first, you should
-make sure that it really is a bug, and that it appears in the latest
-version of the
-.B history
-library that you have.
-.PP
-Once you have determined that a bug actually exists, mail a
-bug report to \fIbug\-readline\fP@\fIgnu.org\fP.
-If you have a fix, you are welcome to mail that
-as well! Suggestions and `philosophical' bug reports may be mailed
-to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet
-newsgroup
-.BR gnu.bash.bug .
-.PP
-Comments and bug reports concerning
-this manual page should be directed to
-.IR chet@ins.CWRU.Edu .
diff --git a/readline-4.3.orig/doc/history.dvi b/readline-4.3.orig/doc/history.dvi
deleted file mode 100644
index bf7444e..0000000
--- a/readline-4.3.orig/doc/history.dvi
+++ /dev/null
Binary files differ
diff --git a/readline-4.3.orig/doc/history.html b/readline-4.3.orig/doc/history.html
deleted file mode 100644
index 5afe15b..0000000
--- a/readline-4.3.orig/doc/history.html
+++ /dev/null
@@ -1,1639 +0,0 @@
-<HTML>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on June, 27 2002 by texi2html 1.64 -->
-<!--
-Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
- Karl Berry <karl@freefriends.org>
- Olaf Bachmann <obachman@mathematik.uni-kl.de>
- and many others.
-Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
-Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-
--->
-<HEAD>
-<TITLE>GNU History Library: </TITLE>
-
-<META NAME="description" CONTENT="GNU History Library: ">
-<META NAME="keywords" CONTENT="GNU History Library: ">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="texi2html 1.64">
-
-</HEAD>
-
-<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
-
-<A NAME="SEC_Top"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>GNU History Library</H1></P><P>
-
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC1">1. Using History Interactively</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU History User's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC6">2. Programming with GNU History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU History Programmer's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC19">A. Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of concepts described in this manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC20">B. Function and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of externally visible functions
- and variables.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<HR SIZE=1>
-<A NAME="SEC1"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<A NAME="Using History Interactively"></A>
-<H1> 1. Using History Interactively </H1>
-<!--docid::SEC1::-->
-<P>
-
-This chapter describes how to use the GNU History Library interactively,
-from a user's standpoint. It should be considered a user's guide. For
-information on using the GNU History Library in your own programs,
-see section <A HREF="history.html#SEC6">2. Programming with GNU History</A>.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC2">1.1 History Expansion</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What it feels like using History as a user.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="History Interaction"></A>
-<HR SIZE="6">
-<A NAME="SEC2"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC1"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC3"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.1 History Expansion </H2>
-<!--docid::SEC2::-->
-<P>
-
-The History library provides a history expansion feature that is similar
-to the history expansion provided by <CODE>csh</CODE>. This section
-describes the syntax used to manipulate the history information.
-</P><P>
-
-History expansions introduce words from the history list into
-the input stream, making it easy to repeat commands, insert the
-arguments to a previous command into the current input line, or
-fix errors in previous commands quickly.
-</P><P>
-
-History expansion takes place in two parts. The first is to determine
-which line from the history list should be used during substitution.
-The second is to select portions of that line for inclusion into the
-current one. The line selected from the history is called the
-<EM>event</EM>, and the portions of that line that are acted upon are
-called <EM>words</EM>. Various <EM>modifiers</EM> are available to manipulate
-the selected words. The line is broken into words in the same fashion
-that Bash does, so that several words
-surrounded by quotes are considered one word.
-History expansions are introduced by the appearance of the
-history expansion character, which is <SAMP>`!'</SAMP> by default.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC3">1.1.1 Event Designators</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to specify which history line to use.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC4">1.1.2 Word Designators</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying which words are of interest.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC5">1.1.3 Modifiers</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Modifying the results of substitution.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Event Designators"></A>
-<HR SIZE="6">
-<A NAME="SEC3"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC4"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.1.1 Event Designators </H3>
-<!--docid::SEC3::-->
-<P>
-
-An event designator is a reference to a command line entry in the
-history list.
-<A NAME="IDX1"></A>
-</P><P>
-
-<DL COMPACT>
-
-<DT><CODE>!</CODE>
-<DD>Start a history substitution, except when followed by a space, tab,
-the end of the line, <SAMP>`='</SAMP> or <SAMP>`('</SAMP>.
-<P>
-
-<DT><CODE>!<VAR>n</VAR></CODE>
-<DD>Refer to command line <VAR>n</VAR>.
-<P>
-
-<DT><CODE>!-<VAR>n</VAR></CODE>
-<DD>Refer to the command <VAR>n</VAR> lines back.
-<P>
-
-<DT><CODE>!!</CODE>
-<DD>Refer to the previous command. This is a synonym for <SAMP>`!-1'</SAMP>.
-<P>
-
-<DT><CODE>!<VAR>string</VAR></CODE>
-<DD>Refer to the most recent command starting with <VAR>string</VAR>.
-<P>
-
-<DT><CODE>!?<VAR>string</VAR>[?]</CODE>
-<DD>Refer to the most recent command containing <VAR>string</VAR>. The trailing
-<SAMP>`?'</SAMP> may be omitted if the <VAR>string</VAR> is followed immediately by
-a newline.
-<P>
-
-<DT><CODE>^<VAR>string1</VAR>^<VAR>string2</VAR>^</CODE>
-<DD>Quick Substitution. Repeat the last command, replacing <VAR>string1</VAR>
-with <VAR>string2</VAR>. Equivalent to
-<CODE>!!:s/<VAR>string1</VAR>/<VAR>string2</VAR>/</CODE>.
-<P>
-
-<DT><CODE>!#</CODE>
-<DD>The entire command line typed so far.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Word Designators"></A>
-<HR SIZE="6">
-<A NAME="SEC4"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC3"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC5"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC5"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.1.2 Word Designators </H3>
-<!--docid::SEC4::-->
-<P>
-
-Word designators are used to select desired words from the event.
-A <SAMP>`:'</SAMP> separates the event specification from the word designator. It
-may be omitted if the word designator begins with a <SAMP>`^'</SAMP>, <SAMP>`$'</SAMP>,
-<SAMP>`*'</SAMP>, <SAMP>`-'</SAMP>, or <SAMP>`%'</SAMP>. Words are numbered from the beginning
-of the line, with the first word being denoted by 0 (zero). Words are
-inserted into the current line separated by single spaces.
-</P><P>
-
-For example,
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>!!</CODE>
-<DD>designates the preceding command. When you type this, the preceding
-command is repeated in toto.
-<P>
-
-<DT><CODE>!!:$</CODE>
-<DD>designates the last argument of the preceding command. This may be
-shortened to <CODE>!$</CODE>.
-<P>
-
-<DT><CODE>!fi:2</CODE>
-<DD>designates the second argument of the most recent command starting with
-the letters <CODE>fi</CODE>.
-</DL>
-<P>
-
-Here are the word designators:
-
-<DL COMPACT>
-
-<DT><CODE>0 (zero)</CODE>
-<DD>The <CODE>0</CODE>th word. For many applications, this is the command word.
-<P>
-
-<DT><CODE><VAR>n</VAR></CODE>
-<DD>The <VAR>n</VAR>th word.
-<P>
-
-<DT><CODE>^</CODE>
-<DD>The first argument; that is, word 1.
-<P>
-
-<DT><CODE>$</CODE>
-<DD>The last argument.
-<P>
-
-<DT><CODE>%</CODE>
-<DD>The word matched by the most recent <SAMP>`?<VAR>string</VAR>?'</SAMP> search.
-<P>
-
-<DT><CODE><VAR>x</VAR>-<VAR>y</VAR></CODE>
-<DD>A range of words; <SAMP>`-<VAR>y</VAR>'</SAMP> abbreviates <SAMP>`0-<VAR>y</VAR>'</SAMP>.
-<P>
-
-<DT><CODE>*</CODE>
-<DD>All of the words, except the <CODE>0</CODE>th. This is a synonym for <SAMP>`1-$'</SAMP>.
-It is not an error to use <SAMP>`*'</SAMP> if there is just one word in the event;
-the empty string is returned in that case.
-<P>
-
-<DT><CODE><VAR>x</VAR>*</CODE>
-<DD>Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP>
-<P>
-
-<DT><CODE><VAR>x</VAR>-</CODE>
-<DD>Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP> like <SAMP>`<VAR>x</VAR>*'</SAMP>, but omits the last word.
-<P>
-
-</DL>
-<P>
-
-If a word designator is supplied without an event specification, the
-previous command is used as the event.
-</P><P>
-
-<A NAME="Modifiers"></A>
-<HR SIZE="6">
-<A NAME="SEC5"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC4"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.1.3 Modifiers </H3>
-<!--docid::SEC5::-->
-<P>
-
-After the optional word designator, you can add a sequence of one or more
-of the following modifiers, each preceded by a <SAMP>`:'</SAMP>.
-</P><P>
-
-<DL COMPACT>
-
-<DT><CODE>h</CODE>
-<DD>Remove a trailing pathname component, leaving only the head.
-<P>
-
-<DT><CODE>t</CODE>
-<DD>Remove all leading pathname components, leaving the tail.
-<P>
-
-<DT><CODE>r</CODE>
-<DD>Remove a trailing suffix of the form <SAMP>`.<VAR>suffix</VAR>'</SAMP>, leaving
-the basename.
-<P>
-
-<DT><CODE>e</CODE>
-<DD>Remove all but the trailing suffix.
-<P>
-
-<DT><CODE>p</CODE>
-<DD>Print the new command but do not execute it.
-<P>
-
-<DT><CODE>s/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>
-<DD>Substitute <VAR>new</VAR> for the first occurrence of <VAR>old</VAR> in the
-event line. Any delimiter may be used in place of <SAMP>`/'</SAMP>.
-The delimiter may be quoted in <VAR>old</VAR> and <VAR>new</VAR>
-with a single backslash. If <SAMP>`&#38;'</SAMP> appears in <VAR>new</VAR>,
-it is replaced by <VAR>old</VAR>. A single backslash will quote
-the <SAMP>`&#38;'</SAMP>. The final delimiter is optional if it is the last
-character on the input line.
-<P>
-
-<DT><CODE>&#38;</CODE>
-<DD>Repeat the previous substitution.
-<P>
-
-<DT><CODE>g</CODE>
-<DD>Cause changes to be applied over the entire event line. Used in
-conjunction with <SAMP>`s'</SAMP>, as in <CODE>gs/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>,
-or with <SAMP>`&#38;'</SAMP>.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Programming with GNU History"></A>
-<HR SIZE="6">
-<A NAME="SEC6"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC5"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC7"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 2. Programming with GNU History </H1>
-<!--docid::SEC6::-->
-<P>
-
-This chapter describes how to interface programs that you write
-with the GNU History Library.
-It should be considered a technical guide.
-For information on the interactive use of GNU History, see section <A HREF="history.html#SEC1">1. Using History Interactively</A>.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC7">2.1 Introduction to History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What is the GNU History library for?</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC8">2.2 History Storage</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How information is stored.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC9">2.3 History Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions that you can use.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC17">2.4 History Variables</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Variables that control behaviour.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC18">2.5 History Programming Example</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Example of using the GNU History Library.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Introduction to History"></A>
-<HR SIZE="6">
-<A NAME="SEC7"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC8"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.1 Introduction to History </H2>
-<!--docid::SEC7::-->
-<P>
-
-Many programs read input from the user a line at a time. The GNU
-History library is able to keep track of those lines, associate arbitrary
-data with each line, and utilize information from previous lines in
-composing new ones.
-</P><P>
-
-The programmer using the History library has available functions
-for remembering lines on a history list, associating arbitrary data
-with a line, removing lines from the list, searching through the list
-for a line containing an arbitrary text string, and referencing any line
-in the list directly. In addition, a history <EM>expansion</EM> function
-is available which provides for a consistent user interface across
-different programs.
-</P><P>
-
-The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are similar to
-the history substitution provided by <CODE>csh</CODE>.
-</P><P>
-
-If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-</P><P>
-
-Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file <CODE>&#60;readline/history.h&#62;</CODE> in any file that uses the
-History library's features. It supplies extern declarations for all
-of the library's public functions and variables, and declares all of
-the public data structures.
-</P><P>
-
-<A NAME="History Storage"></A>
-<HR SIZE="6">
-<A NAME="SEC8"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC7"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.2 History Storage </H2>
-<!--docid::SEC8::-->
-<P>
-
-The history list is an array of history entries. A history entry is
-declared as follows:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>typedef void *histdata_t;
-
-typedef struct _hist_entry {
- char *line;
- histdata_t data;
-} HIST_ENTRY;
-</pre></td></tr></table></P><P>
-
-The history list itself might therefore be declared as
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>HIST_ENTRY **the_history_list;
-</pre></td></tr></table></P><P>
-
-The state of the History library is encapsulated into a single structure:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>/*
- * A structure used to pass around the current state of the history.
- */
-typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
-} HISTORY_STATE;
-</pre></td></tr></table></P><P>
-
-If the flags member includes <CODE>HS_STIFLED</CODE>, the history has been
-stifled.
-</P><P>
-
-<A NAME="History Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC9"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC8"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC10"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.3 History Functions </H2>
-<!--docid::SEC9::-->
-<P>
-
-This section describes the calling sequence for the various functions
-exported by the GNU History library.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to call when you
- want to use history in a
- program.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions used to manage the list
- of history entries.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions returning information about
- the history list.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions used to change the position
- in the history list.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to search the history list
- for entries containing a string.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions that read and write a file
- containing the history list.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to perform csh-like history
- expansion.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Initializing History and State Management"></A>
-<HR SIZE="6">
-<A NAME="SEC10"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC11"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.1 Initializing History and State Management </H3>
-<!--docid::SEC10::-->
-<P>
-
-This section describes functions used to initialize and manage
-the state of the History library when you want to use the history
-functions in your program.
-</P><P>
-
-<A NAME="IDX2"></A>
-<DL>
-<DT><U>Function:</U> void <B>using_history</B> <I>(void)</I>
-<DD>Begin a session in which the history functions might be used. This
-initializes the interactive variables.
-</DL>
-</P><P>
-
-<A NAME="IDX3"></A>
-<DL>
-<DT><U>Function:</U> HISTORY_STATE * <B>history_get_history_state</B> <I>(void)</I>
-<DD>Return a structure describing the current state of the input history.
-</DL>
-</P><P>
-
-<A NAME="IDX4"></A>
-<DL>
-<DT><U>Function:</U> void <B>history_set_history_state</B> <I>(HISTORY_STATE *state)</I>
-<DD>Set the state of the history list according to <VAR>state</VAR>.
-</DL>
-</P><P>
-
-<A NAME="History List Management"></A>
-<HR SIZE="6">
-<A NAME="SEC11"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC10"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC12"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC12"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.2 History List Management </H3>
-<!--docid::SEC11::-->
-<P>
-
-These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-</P><P>
-
-<A NAME="IDX5"></A>
-<DL>
-<DT><U>Function:</U> void <B>add_history</B> <I>(const char *string)</I>
-<DD>Place <VAR>string</VAR> at the end of the history list. The associated data
-field (if any) is set to <CODE>NULL</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX6"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>remove_history</B> <I>(int which)</I>
-<DD>Remove history entry at offset <VAR>which</VAR> from the history. The
-removed element is returned so you can free the line, data,
-and containing structure.
-</DL>
-</P><P>
-
-<A NAME="IDX7"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>replace_history_entry</B> <I>(int which, const char *line, histdata_t data)</I>
-<DD>Make the history entry at offset <VAR>which</VAR> have <VAR>line</VAR> and <VAR>data</VAR>.
-This returns the old entry so you can dispose of the data. In the case
-of an invalid <VAR>which</VAR>, a <CODE>NULL</CODE> pointer is returned.
-</DL>
-</P><P>
-
-<A NAME="IDX8"></A>
-<DL>
-<DT><U>Function:</U> void <B>clear_history</B> <I>(void)</I>
-<DD>Clear the history list by deleting all the entries.
-</DL>
-</P><P>
-
-<A NAME="IDX9"></A>
-<DL>
-<DT><U>Function:</U> void <B>stifle_history</B> <I>(int max)</I>
-<DD>Stifle the history list, remembering only the last <VAR>max</VAR> entries.
-</DL>
-</P><P>
-
-<A NAME="IDX10"></A>
-<DL>
-<DT><U>Function:</U> int <B>unstifle_history</B> <I>(void)</I>
-<DD>Stop stifling the history. This returns the previously-set
-maximum number of history entries (as set by <CODE>stifle_history()</CODE>).
-The value is positive if the history was
-stifled, negative if it wasn't.
-</DL>
-</P><P>
-
-<A NAME="IDX11"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_is_stifled</B> <I>(void)</I>
-<DD>Returns non-zero if the history is stifled, zero if it is not.
-</DL>
-</P><P>
-
-<A NAME="Information About the History List"></A>
-<HR SIZE="6">
-<A NAME="SEC12"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC11"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC13"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.3 Information About the History List </H3>
-<!--docid::SEC12::-->
-<P>
-
-These functions return information about the entire history list or
-individual list entries.
-</P><P>
-
-<A NAME="IDX12"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY ** <B>history_list</B> <I>(void)</I>
-<DD>Return a <CODE>NULL</CODE> terminated array of <CODE>HIST_ENTRY *</CODE> which is the
-current input history. Element 0 of this list is the beginning of time.
-If there is no history, return <CODE>NULL</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX13"></A>
-<DL>
-<DT><U>Function:</U> int <B>where_history</B> <I>(void)</I>
-<DD>Returns the offset of the current history element.
-</DL>
-</P><P>
-
-<A NAME="IDX14"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>current_history</B> <I>(void)</I>
-<DD>Return the history entry at the current position, as determined by
-<CODE>where_history()</CODE>. If there is no entry there, return a <CODE>NULL</CODE>
-pointer.
-</DL>
-</P><P>
-
-<A NAME="IDX15"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>history_get</B> <I>(int offset)</I>
-<DD>Return the history entry at position <VAR>offset</VAR>, starting from
-<CODE>history_base</CODE> (see section <A HREF="history.html#SEC17">2.4 History Variables</A>).
-If there is no entry there, or if <VAR>offset</VAR>
-is greater than the history length, return a <CODE>NULL</CODE> pointer.
-</DL>
-</P><P>
-
-<A NAME="IDX16"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_total_bytes</B> <I>(void)</I>
-<DD>Return the number of bytes that the primary history entries are using.
-This function returns the sum of the lengths of all the lines in the
-history.
-</DL>
-</P><P>
-
-<A NAME="Moving Around the History List"></A>
-<HR SIZE="6">
-<A NAME="SEC13"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC12"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC14"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC14"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.4 Moving Around the History List </H3>
-<!--docid::SEC13::-->
-<P>
-
-These functions allow the current index into the history list to be
-set or changed.
-</P><P>
-
-<A NAME="IDX17"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_set_pos</B> <I>(int pos)</I>
-<DD>Set the current history offset to <VAR>pos</VAR>, an absolute index
-into the list.
-Returns 1 on success, 0 if <VAR>pos</VAR> is less than zero or greater
-than the number of history entries.
-</DL>
-</P><P>
-
-<A NAME="IDX18"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>previous_history</B> <I>(void)</I>
-<DD>Back up the current history offset to the previous history entry, and
-return a pointer to that entry. If there is no previous entry, return
-a <CODE>NULL</CODE> pointer.
-</DL>
-</P><P>
-
-<A NAME="IDX19"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>next_history</B> <I>(void)</I>
-<DD>Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a <CODE>NULL</CODE> pointer.
-</DL>
-</P><P>
-
-<A NAME="Searching the History List"></A>
-<HR SIZE="6">
-<A NAME="SEC14"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC13"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC15"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC15"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.5 Searching the History List </H3>
-<!--docid::SEC14::-->
-<P>
-
-These functions allow searching of the history list for entries containing
-a specific string. Searching may be performed both forward and backward
-from the current history position. The search may be <EM>anchored</EM>,
-meaning that the string must match at the beginning of the history entry.
-<A NAME="IDX20"></A>
-</P><P>
-
-<A NAME="IDX21"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_search</B> <I>(const char *string, int direction)</I>
-<DD>Search the history for <VAR>string</VAR>, starting at the current history offset.
-If <VAR>direction</VAR> is less than 0, then the search is through
-previous entries, otherwise through subsequent entries.
-If <VAR>string</VAR> is found, then
-the current history index is set to that history entry, and the value
-returned is the offset in the line of the entry where
-<VAR>string</VAR> was found. Otherwise, nothing is changed, and a -1 is
-returned.
-</DL>
-</P><P>
-
-<A NAME="IDX22"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_search_prefix</B> <I>(const char *string, int direction)</I>
-<DD>Search the history for <VAR>string</VAR>, starting at the current history
-offset. The search is anchored: matching lines must begin with
-<VAR>string</VAR>. If <VAR>direction</VAR> is less than 0, then the search is
-through previous entries, otherwise through subsequent entries.
-If <VAR>string</VAR> is found, then the
-current history index is set to that entry, and the return value is 0.
-Otherwise, nothing is changed, and a -1 is returned.
-</DL>
-</P><P>
-
-<A NAME="IDX23"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_search_pos</B> <I>(const char *string, int direction, int pos)</I>
-<DD>Search for <VAR>string</VAR> in the history list, starting at <VAR>pos</VAR>, an
-absolute index into the list. If <VAR>direction</VAR> is negative, the search
-proceeds backward from <VAR>pos</VAR>, otherwise forward. Returns the absolute
-index of the history element where <VAR>string</VAR> was found, or -1 otherwise.
-</DL>
-</P><P>
-
-<A NAME="Managing the History File"></A>
-<HR SIZE="6">
-<A NAME="SEC15"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC14"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC16"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC16"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.6 Managing the History File </H3>
-<!--docid::SEC15::-->
-<P>
-
-The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-</P><P>
-
-<A NAME="IDX24"></A>
-<DL>
-<DT><U>Function:</U> int <B>read_history</B> <I>(const char *filename)</I>
-<DD>Add the contents of <VAR>filename</VAR> to the history list, a line at a time.
-If <VAR>filename</VAR> is <CODE>NULL</CODE>, then read from <TT>`~/.history'</TT>.
-Returns 0 if successful, or <CODE>errno</CODE> if not.
-</DL>
-</P><P>
-
-<A NAME="IDX25"></A>
-<DL>
-<DT><U>Function:</U> int <B>read_history_range</B> <I>(const char *filename, int from, int to)</I>
-<DD>Read a range of lines from <VAR>filename</VAR>, adding them to the history list.
-Start reading at line <VAR>from</VAR> and end at <VAR>to</VAR>.
-If <VAR>from</VAR> is zero, start at the beginning. If <VAR>to</VAR> is less than
-<VAR>from</VAR>, then read until the end of the file. If <VAR>filename</VAR> is
-<CODE>NULL</CODE>, then read from <TT>`~/.history'</TT>. Returns 0 if successful,
-or <CODE>errno</CODE> if not.
-</DL>
-</P><P>
-
-<A NAME="IDX26"></A>
-<DL>
-<DT><U>Function:</U> int <B>write_history</B> <I>(const char *filename)</I>
-<DD>Write the current history to <VAR>filename</VAR>, overwriting <VAR>filename</VAR>
-if necessary.
-If <VAR>filename</VAR> is <CODE>NULL</CODE>, then write the history list to
-<TT>`~/.history'</TT>.
-Returns 0 on success, or <CODE>errno</CODE> on a read or write error.
-</DL>
-</P><P>
-
-<A NAME="IDX27"></A>
-<DL>
-<DT><U>Function:</U> int <B>append_history</B> <I>(int nelements, const char *filename)</I>
-<DD>Append the last <VAR>nelements</VAR> of the history list to <VAR>filename</VAR>.
-If <VAR>filename</VAR> is <CODE>NULL</CODE>, then append to <TT>`~/.history'</TT>.
-Returns 0 on success, or <CODE>errno</CODE> on a read or write error.
-</DL>
-</P><P>
-
-<A NAME="IDX28"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_truncate_file</B> <I>(const char *filename, int nlines)</I>
-<DD>Truncate the history file <VAR>filename</VAR>, leaving only the last
-<VAR>nlines</VAR> lines.
-If <VAR>filename</VAR> is <CODE>NULL</CODE>, then <TT>`~/.history'</TT> is truncated.
-Returns 0 on success, or <CODE>errno</CODE> on failure.
-</DL>
-</P><P>
-
-<A NAME="History Expansion"></A>
-<HR SIZE="6">
-<A NAME="SEC16"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC15"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.7 History Expansion </H3>
-<!--docid::SEC16::-->
-<P>
-
-These functions implement history expansion.
-</P><P>
-
-<A NAME="IDX29"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_expand</B> <I>(char *string, char **output)</I>
-<DD>Expand <VAR>string</VAR>, placing the result into <VAR>output</VAR>, a pointer
-to a string (see section <A HREF="history.html#SEC2">1.1 History Expansion</A>). Returns:
-<DL COMPACT>
-<DT><CODE>0</CODE>
-<DD>If no expansions took place (or, if the only change in
-the text was the removal of escape characters preceding the history expansion
-character);
-<DT><CODE>1</CODE>
-<DD>if expansions did take place;
-<DT><CODE>-1</CODE>
-<DD>if there was an error in expansion;
-<DT><CODE>2</CODE>
-<DD>if the returned line should be displayed, but not executed,
-as with the <CODE>:p</CODE> modifier (see section <A HREF="history.html#SEC5">1.1.3 Modifiers</A>).
-</DL>
-<P>
-
-If an error ocurred in expansion, then <VAR>output</VAR> contains a descriptive
-error message.
-</DL>
-</P><P>
-
-<A NAME="IDX30"></A>
-<DL>
-<DT><U>Function:</U> char * <B>get_history_event</B> <I>(const char *string, int *cindex, int qchar)</I>
-<DD>Returns the text of the history event beginning at <VAR>string</VAR> +
-<VAR>*cindex</VAR>. <VAR>*cindex</VAR> is modified to point to after the event
-specifier. At function entry, <VAR>cindex</VAR> points to the index into
-<VAR>string</VAR> where the history event specification begins. <VAR>qchar</VAR>
-is a character that is allowed to end the event specification in addition
-to the "normal" terminating characters.
-</DL>
-</P><P>
-
-<A NAME="IDX31"></A>
-<DL>
-<DT><U>Function:</U> char ** <B>history_tokenize</B> <I>(const char *string)</I>
-<DD>Return an array of tokens parsed out of <VAR>string</VAR>, much as the
-shell might. The tokens are split on the characters in the
-<VAR>history_word_delimiters</VAR> variable,
-and shell quoting conventions are obeyed.
-</DL>
-</P><P>
-
-<A NAME="IDX32"></A>
-<DL>
-<DT><U>Function:</U> char * <B>history_arg_extract</B> <I>(int first, int last, const char *string)</I>
-<DD>Extract a string segment consisting of the <VAR>first</VAR> through <VAR>last</VAR>
-arguments present in <VAR>string</VAR>. Arguments are split using
-<CODE>history_tokenize</CODE>.
-</DL>
-</P><P>
-
-<A NAME="History Variables"></A>
-<HR SIZE="6">
-<A NAME="SEC17"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC16"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC18"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC18"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.4 History Variables </H2>
-<!--docid::SEC17::-->
-<P>
-
-This section describes the externally-visible variables exported by
-the GNU History Library.
-</P><P>
-
-<A NAME="IDX33"></A>
-<DL>
-<DT><U>Variable:</U> int <B>history_base</B>
-<DD>The logical offset of the first entry in the history list.
-</DL>
-</P><P>
-
-<A NAME="IDX34"></A>
-<DL>
-<DT><U>Variable:</U> int <B>history_length</B>
-<DD>The number of entries currently stored in the history list.
-</DL>
-</P><P>
-
-<A NAME="IDX35"></A>
-<DL>
-<DT><U>Variable:</U> int <B>history_max_entries</B>
-<DD>The maximum number of history entries. This must be changed using
-<CODE>stifle_history()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX36"></A>
-<DL>
-<DT><U>Variable:</U> char <B>history_expansion_char</B>
-<DD>The character that introduces a history event. The default is <SAMP>`!'</SAMP>.
-Setting this to 0 inhibits history expansion.
-</DL>
-</P><P>
-
-<A NAME="IDX37"></A>
-<DL>
-<DT><U>Variable:</U> char <B>history_subst_char</B>
-<DD>The character that invokes word substitution if found at the start of
-a line. The default is <SAMP>`^'</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX38"></A>
-<DL>
-<DT><U>Variable:</U> char <B>history_comment_char</B>
-<DD>During tokenization, if this character is seen as the first character
-of a word, then it and all subsequent characters up to a newline are
-ignored, suppressing history expansion for the remainder of the line.
-This is disabled by default.
-</DL>
-</P><P>
-
-<A NAME="IDX39"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>history_word_delimiters</B>
-<DD>The characters that separate tokens for <CODE>history_tokenize()</CODE>.
-The default value is <CODE>" \t\n()<>;&|"</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX40"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>history_no_expand_chars</B>
-<DD>The list of characters which inhibit history expansion if found immediately
-following <VAR>history_expansion_char</VAR>. The default is space, tab, newline,
-carriage return, and <SAMP>`='</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX41"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>history_search_delimiter_chars</B>
-<DD>The list of additional characters which can delimit a history search
-string, in addition to space, TAB, <SAMP>`:'</SAMP> and <SAMP>`?'</SAMP> in the case of
-a substring search. The default is empty.
-</DL>
-</P><P>
-
-<A NAME="IDX42"></A>
-<DL>
-<DT><U>Variable:</U> int <B>history_quotes_inhibit_expansion</B>
-<DD>If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
-</DL>
-</P><P>
-
-<A NAME="IDX43"></A>
-<DL>
-<DT><U>Variable:</U> rl_linebuf_func_t * <B>history_inhibit_expansion_function</B>
-<DD>This should be set to the address of a function that takes two arguments:
-a <CODE>char *</CODE> (<VAR>string</VAR>)
-and an <CODE>int</CODE> index into that string (<VAR>i</VAR>).
-It should return a non-zero value if the history expansion starting at
-<VAR>string[i]</VAR> should not be performed; zero if the expansion should
-be done.
-It is intended for use by applications like Bash that use the history
-expansion character for additional purposes.
-By default, this variable is set to <CODE>NULL</CODE>.
-</DL>
-</P><P>
-
-<A NAME="History Programming Example"></A>
-<HR SIZE="6">
-<A NAME="SEC18"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.5 History Programming Example </H2>
-<!--docid::SEC18::-->
-<P>
-
-The following program demonstrates simple use of the GNU History Library.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre>#include &#60;stdio.h&#62;
-#include &#60;readline/history.h&#62;
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char line[1024], *t;
- int len, done = 0;
-
- line[0] = 0;
-
- using_history ();
- while (!done)
- {
- printf ("history$ ");
- fflush (stdout);
- t = fgets (line, sizeof (line) - 1, stdin);
- if (t &#38;&#38; *t)
- {
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- }
-
- if (!t)
- strcpy (line, "quit");
-
- if (line[0])
- {
- char *expansion;
- int result;
-
- result = history_expand (line, &#38;expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
-
- if (result &#60; 0 || result == 2)
- {
- free (expansion);
- continue;
- }
-
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- }
-
- if (strcmp (line, "quit") == 0)
- done = 1;
- else if (strcmp (line, "save") == 0)
- write_history ("history_file");
- else if (strcmp (line, "read") == 0)
- read_history ("history_file");
- else if (strcmp (line, "list") == 0)
- {
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]-&#62;line);
- }
- else if (strncmp (line, "delete", 6) == 0)
- {
- int which;
- if ((sscanf (line + 6, "%d", &#38;which)) == 1)
- {
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- {
- free (entry-&#62;line);
- free (entry);
- }
- }
- else
- {
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- }
- }
- }
-}
-</FONT></pre></td></tr></table></P><P>
-
-<A NAME="Concept Index"></A>
-<HR SIZE="6">
-<A NAME="SEC19"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC18"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC20"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC20"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> A. Concept Index </H1>
-<!--docid::SEC19::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#cp_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="history.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="history.html#cp_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX20">anchored search</A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#SEC3">event designators</A></TD><TD valign=top><A HREF="history.html#SEC3">1.1.1 Event Designators</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX1">history events</A></TD><TD valign=top><A HREF="history.html#SEC3">1.1.1 Event Designators</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#SEC2">history expansion</A></TD><TD valign=top><A HREF="history.html#SEC2">1.1 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#SEC14">History Searching</A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#cp_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="history.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="history.html#cp_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-</td></tr></table><br><P>
-
-<A NAME="Function and Variable Index"></A>
-<HR SIZE="6">
-<A NAME="SEC20"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> B. Function and Variable Index </H1>
-<!--docid::SEC20::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#vr_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="history.html#vr_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="history.html#vr_G" style="text-decoration:none"><b>G</b></A>
- &nbsp;
-<A HREF="history.html#vr_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-<A HREF="history.html#vr_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="history.html#vr_P" style="text-decoration:none"><b>P</b></A>
- &nbsp;
-<A HREF="history.html#vr_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="history.html#vr_S" style="text-decoration:none"><b>S</b></A>
- &nbsp;
-<A HREF="history.html#vr_U" style="text-decoration:none"><b>U</b></A>
- &nbsp;
-<A HREF="history.html#vr_W" style="text-decoration:none"><b>W</b></A>
- &nbsp;
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX5"><CODE>add_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX27"><CODE>append_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX8"><CODE>clear_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX14"><CODE>current_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_G"></A>G</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX30"><CODE>get_history_event</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX32"><CODE>history_arg_extract</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX33"><CODE>history_base</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX38"><CODE>history_comment_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX29"><CODE>history_expand</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX36"><CODE>history_expansion_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX15"><CODE>history_get</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX3"><CODE>history_get_history_state</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX43"><CODE>history_inhibit_expansion_function</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX11"><CODE>history_is_stifled</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX34"><CODE>history_length</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX12"><CODE>history_list</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX35"><CODE>history_max_entries</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX40"><CODE>history_no_expand_chars</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX42"><CODE>history_quotes_inhibit_expansion</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX21"><CODE>history_search</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX41"><CODE>history_search_delimiter_chars</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX23"><CODE>history_search_pos</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX22"><CODE>history_search_prefix</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX4"><CODE>history_set_history_state</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX17"><CODE>history_set_pos</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX37"><CODE>history_subst_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX31"><CODE>history_tokenize</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX16"><CODE>history_total_bytes</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX28"><CODE>history_truncate_file</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX39"><CODE>history_word_delimiters</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX19"><CODE>next_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX18"><CODE>previous_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX24"><CODE>read_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX25"><CODE>read_history_range</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX6"><CODE>remove_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX7"><CODE>replace_history_entry</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX9"><CODE>stifle_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX10"><CODE>unstifle_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX2"><CODE>using_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_W"></A>W</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX13"><CODE>where_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX26"><CODE>write_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#vr_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="history.html#vr_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="history.html#vr_G" style="text-decoration:none"><b>G</b></A>
- &nbsp;
-<A HREF="history.html#vr_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-<A HREF="history.html#vr_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="history.html#vr_P" style="text-decoration:none"><b>P</b></A>
- &nbsp;
-<A HREF="history.html#vr_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="history.html#vr_S" style="text-decoration:none"><b>S</b></A>
- &nbsp;
-<A HREF="history.html#vr_U" style="text-decoration:none"><b>U</b></A>
- &nbsp;
-<A HREF="history.html#vr_W" style="text-decoration:none"><b>W</b></A>
- &nbsp;
-</td></tr></table><br><P>
-
-<HR SIZE="6">
-<A NAME="SEC_Contents"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Table of Contents</H1>
-<UL>
-<A NAME="TOC1" HREF="history.html#SEC1">1. Using History Interactively</A>
-<BR>
-<UL>
-<A NAME="TOC2" HREF="history.html#SEC2">1.1 History Expansion</A>
-<BR>
-<UL>
-<A NAME="TOC3" HREF="history.html#SEC3">1.1.1 Event Designators</A>
-<BR>
-<A NAME="TOC4" HREF="history.html#SEC4">1.1.2 Word Designators</A>
-<BR>
-<A NAME="TOC5" HREF="history.html#SEC5">1.1.3 Modifiers</A>
-<BR>
-</UL>
-</UL>
-<A NAME="TOC6" HREF="history.html#SEC6">2. Programming with GNU History</A>
-<BR>
-<UL>
-<A NAME="TOC7" HREF="history.html#SEC7">2.1 Introduction to History</A>
-<BR>
-<A NAME="TOC8" HREF="history.html#SEC8">2.2 History Storage</A>
-<BR>
-<A NAME="TOC9" HREF="history.html#SEC9">2.3 History Functions</A>
-<BR>
-<UL>
-<A NAME="TOC10" HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A>
-<BR>
-<A NAME="TOC11" HREF="history.html#SEC11">2.3.2 History List Management</A>
-<BR>
-<A NAME="TOC12" HREF="history.html#SEC12">2.3.3 Information About the History List</A>
-<BR>
-<A NAME="TOC13" HREF="history.html#SEC13">2.3.4 Moving Around the History List</A>
-<BR>
-<A NAME="TOC14" HREF="history.html#SEC14">2.3.5 Searching the History List</A>
-<BR>
-<A NAME="TOC15" HREF="history.html#SEC15">2.3.6 Managing the History File</A>
-<BR>
-<A NAME="TOC16" HREF="history.html#SEC16">2.3.7 History Expansion</A>
-<BR>
-</UL>
-<A NAME="TOC17" HREF="history.html#SEC17">2.4 History Variables</A>
-<BR>
-<A NAME="TOC18" HREF="history.html#SEC18">2.5 History Programming Example</A>
-<BR>
-</UL>
-<A NAME="TOC19" HREF="history.html#SEC19">A. Concept Index</A>
-<BR>
-<A NAME="TOC20" HREF="history.html#SEC20">B. Function and Variable Index</A>
-<BR>
-</UL>
-<HR SIZE=1>
-<A NAME="SEC_OVERVIEW"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Short Table of Contents</H1>
-<BLOCKQUOTE>
-<A NAME="TOC1" HREF="history.html#SEC1">1. Using History Interactively</A>
-<BR>
-<A NAME="TOC6" HREF="history.html#SEC6">2. Programming with GNU History</A>
-<BR>
-<A NAME="TOC19" HREF="history.html#SEC19">A. Concept Index</A>
-<BR>
-<A NAME="TOC20" HREF="history.html#SEC20">B. Function and Variable Index</A>
-<BR>
-
-</BLOCKQUOTE>
-<HR SIZE=1>
-<A NAME="SEC_About"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-<P></P>
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt; ] </TD>
-<TD ALIGN="CENTER">
-Back
-</TD>
-<TD>
-previous section in reading order
-</TD>
-<TD>
-1.2.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt; ] </TD>
-<TD ALIGN="CENTER">
-Forward
-</TD>
-<TD>
-next section in reading order
-</TD>
-<TD>
-1.2.4
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt;&lt; ] </TD>
-<TD ALIGN="CENTER">
-FastBack
-</TD>
-<TD>
-previous or up-and-previous section
-</TD>
-<TD>
-1.1
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ Up ] </TD>
-<TD ALIGN="CENTER">
-Up
-</TD>
-<TD>
-up section
-</TD>
-<TD>
-1.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt;&gt; ] </TD>
-<TD ALIGN="CENTER">
-FastForward
-</TD>
-<TD>
-next or up-and-next section
-</TD>
-<TD>
-1.3
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Top] </TD>
-<TD ALIGN="CENTER">
-Top
-</TD>
-<TD>
-cover (top) of document
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Contents] </TD>
-<TD ALIGN="CENTER">
-Contents
-</TD>
-<TD>
-table of contents
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Index] </TD>
-<TD ALIGN="CENTER">
-Index
-</TD>
-<TD>
-concept index
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ ? ] </TD>
-<TD ALIGN="CENTER">
-About
-</TD>
-<TD>
-this page
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
-the following structure:
-<UL>
-<LI> 1. Section One </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-
-<HR SIZE=1>
-<BR>
-<FONT SIZE="-1">
-This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-
-</BODY>
-</HTML>
diff --git a/readline-4.3.orig/doc/history.info b/readline-4.3.orig/doc/history.info
deleted file mode 100644
index 98c0002..0000000
--- a/readline-4.3.orig/doc/history.info
+++ /dev/null
@@ -1,840 +0,0 @@
-This is history.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/hist.texinfo.
-
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* History: (history). The GNU history library API
-END-INFO-DIR-ENTRY
-
- This document describes the GNU History library, a programming tool
-that provides a consistent user interface for recalling lines of
-previously typed input.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice pare
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
-
-
-File: history.info, Node: Top, Next: Using History Interactively, Up: (dir)
-
-GNU History Library
-*******************
-
- This document describes the GNU History library, a programming tool
-that provides a consistent user interface for recalling lines of
-previously typed input.
-
-* Menu:
-
-* Using History Interactively:: GNU History User's Manual.
-* Programming with GNU History:: GNU History Programmer's Manual.
-* Concept Index:: Index of concepts described in this manual.
-* Function and Variable Index:: Index of externally visible functions
- and variables.
-
-
-File: history.info, Node: Using History Interactively, Next: Programming with GNU History, Prev: Top, Up: Top
-
-Using History Interactively
-***************************
-
- This chapter describes how to use the GNU History Library
-interactively, from a user's standpoint. It should be considered a
-user's guide. For information on using the GNU History Library in your
-own programs, *note Programming with GNU History::.
-
-* Menu:
-
-* History Interaction:: What it feels like using History as a user.
-
-
-File: history.info, Node: History Interaction, Up: Using History Interactively
-
-History Expansion
-=================
-
- The History library provides a history expansion feature that is
-similar to the history expansion provided by `csh'. This section
-describes the syntax used to manipulate the history information.
-
- History expansions introduce words from the history list into the
-input stream, making it easy to repeat commands, insert the arguments
-to a previous command into the current input line, or fix errors in
-previous commands quickly.
-
- History expansion takes place in two parts. The first is to
-determine which line from the history list should be used during
-substitution. The second is to select portions of that line for
-inclusion into the current one. The line selected from the history is
-called the "event", and the portions of that line that are acted upon
-are called "words". Various "modifiers" are available to manipulate
-the selected words. The line is broken into words in the same fashion
-that Bash does, so that several words surrounded by quotes are
-considered one word. History expansions are introduced by the
-appearance of the history expansion character, which is `!' by default.
-
-* Menu:
-
-* Event Designators:: How to specify which history line to use.
-* Word Designators:: Specifying which words are of interest.
-* Modifiers:: Modifying the results of substitution.
-
-
-File: history.info, Node: Event Designators, Next: Word Designators, Up: History Interaction
-
-Event Designators
------------------
-
- An event designator is a reference to a command line entry in the
-history list.
-
-`!'
- Start a history substitution, except when followed by a space, tab,
- the end of the line, `=' or `('.
-
-`!N'
- Refer to command line N.
-
-`!-N'
- Refer to the command N lines back.
-
-`!!'
- Refer to the previous command. This is a synonym for `!-1'.
-
-`!STRING'
- Refer to the most recent command starting with STRING.
-
-`!?STRING[?]'
- Refer to the most recent command containing STRING. The trailing
- `?' may be omitted if the STRING is followed immediately by a
- newline.
-
-`^STRING1^STRING2^'
- Quick Substitution. Repeat the last command, replacing STRING1
- with STRING2. Equivalent to `!!:s/STRING1/STRING2/'.
-
-`!#'
- The entire command line typed so far.
-
-
-File: history.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction
-
-Word Designators
-----------------
-
- Word designators are used to select desired words from the event. A
-`:' separates the event specification from the word designator. It may
-be omitted if the word designator begins with a `^', `$', `*', `-', or
-`%'. Words are numbered from the beginning of the line, with the first
-word being denoted by 0 (zero). Words are inserted into the current
-line separated by single spaces.
-
- For example,
-
-`!!'
- designates the preceding command. When you type this, the
- preceding command is repeated in toto.
-
-`!!:$'
- designates the last argument of the preceding command. This may be
- shortened to `!$'.
-
-`!fi:2'
- designates the second argument of the most recent command starting
- with the letters `fi'.
-
- Here are the word designators:
-
-`0 (zero)'
- The `0'th word. For many applications, this is the command word.
-
-`N'
- The Nth word.
-
-`^'
- The first argument; that is, word 1.
-
-`$'
- The last argument.
-
-`%'
- The word matched by the most recent `?STRING?' search.
-
-`X-Y'
- A range of words; `-Y' abbreviates `0-Y'.
-
-`*'
- All of the words, except the `0'th. This is a synonym for `1-$'.
- It is not an error to use `*' if there is just one word in the
- event; the empty string is returned in that case.
-
-`X*'
- Abbreviates `X-$'
-
-`X-'
- Abbreviates `X-$' like `X*', but omits the last word.
-
- If a word designator is supplied without an event specification, the
-previous command is used as the event.
-
-
-File: history.info, Node: Modifiers, Prev: Word Designators, Up: History Interaction
-
-Modifiers
----------
-
- After the optional word designator, you can add a sequence of one or
-more of the following modifiers, each preceded by a `:'.
-
-`h'
- Remove a trailing pathname component, leaving only the head.
-
-`t'
- Remove all leading pathname components, leaving the tail.
-
-`r'
- Remove a trailing suffix of the form `.SUFFIX', leaving the
- basename.
-
-`e'
- Remove all but the trailing suffix.
-
-`p'
- Print the new command but do not execute it.
-
-`s/OLD/NEW/'
- Substitute NEW for the first occurrence of OLD in the event line.
- Any delimiter may be used in place of `/'. The delimiter may be
- quoted in OLD and NEW with a single backslash. If `&' appears in
- NEW, it is replaced by OLD. A single backslash will quote the
- `&'. The final delimiter is optional if it is the last character
- on the input line.
-
-`&'
- Repeat the previous substitution.
-
-`g'
- Cause changes to be applied over the entire event line. Used in
- conjunction with `s', as in `gs/OLD/NEW/', or with `&'.
-
-
-File: history.info, Node: Programming with GNU History, Next: Concept Index, Prev: Using History Interactively, Up: Top
-
-Programming with GNU History
-****************************
-
- This chapter describes how to interface programs that you write with
-the GNU History Library. It should be considered a technical guide.
-For information on the interactive use of GNU History, *note Using
-History Interactively::.
-
-* Menu:
-
-* Introduction to History:: What is the GNU History library for?
-* History Storage:: How information is stored.
-* History Functions:: Functions that you can use.
-* History Variables:: Variables that control behaviour.
-* History Programming Example:: Example of using the GNU History Library.
-
-
-File: history.info, Node: Introduction to History, Next: History Storage, Up: Programming with GNU History
-
-Introduction to History
-=======================
-
- Many programs read input from the user a line at a time. The GNU
-History library is able to keep track of those lines, associate
-arbitrary data with each line, and utilize information from previous
-lines in composing new ones.
-
- The programmer using the History library has available functions for
-remembering lines on a history list, associating arbitrary data with a
-line, removing lines from the list, searching through the list for a
-line containing an arbitrary text string, and referencing any line in
-the list directly. In addition, a history "expansion" function is
-available which provides for a consistent user interface across
-different programs.
-
- The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are similar to
-the history substitution provided by `csh'.
-
- If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-
- Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file `<readline/history.h>' in any file that uses the History
-library's features. It supplies extern declarations for all of the
-library's public functions and variables, and declares all of the
-public data structures.
-
-
-File: history.info, Node: History Storage, Next: History Functions, Prev: Introduction to History, Up: Programming with GNU History
-
-History Storage
-===============
-
- The history list is an array of history entries. A history entry is
-declared as follows:
-
- typedef void *histdata_t;
-
- typedef struct _hist_entry {
- char *line;
- histdata_t data;
- } HIST_ENTRY;
-
- The history list itself might therefore be declared as
-
- HIST_ENTRY **the_history_list;
-
- The state of the History library is encapsulated into a single
-structure:
-
- /*
- * A structure used to pass around the current state of the history.
- */
- typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
- } HISTORY_STATE;
-
- If the flags member includes `HS_STIFLED', the history has been
-stifled.
-
-
-File: history.info, Node: History Functions, Next: History Variables, Prev: History Storage, Up: Programming with GNU History
-
-History Functions
-=================
-
- This section describes the calling sequence for the various functions
-exported by the GNU History library.
-
-* Menu:
-
-* Initializing History and State Management:: Functions to call when you
- want to use history in a
- program.
-* History List Management:: Functions used to manage the list
- of history entries.
-* Information About the History List:: Functions returning information about
- the history list.
-* Moving Around the History List:: Functions used to change the position
- in the history list.
-* Searching the History List:: Functions to search the history list
- for entries containing a string.
-* Managing the History File:: Functions that read and write a file
- containing the history list.
-* History Expansion:: Functions to perform csh-like history
- expansion.
-
-
-File: history.info, Node: Initializing History and State Management, Next: History List Management, Up: History Functions
-
-Initializing History and State Management
------------------------------------------
-
- This section describes functions used to initialize and manage the
-state of the History library when you want to use the history functions
-in your program.
-
- - Function: void using_history (void)
- Begin a session in which the history functions might be used. This
- initializes the interactive variables.
-
- - Function: HISTORY_STATE * history_get_history_state (void)
- Return a structure describing the current state of the input
- history.
-
- - Function: void history_set_history_state (HISTORY_STATE *state)
- Set the state of the history list according to STATE.
-
-
-File: history.info, Node: History List Management, Next: Information About the History List, Prev: Initializing History and State Management, Up: History Functions
-
-History List Management
------------------------
-
- These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-
- - Function: void add_history (const char *string)
- Place STRING at the end of the history list. The associated data
- field (if any) is set to `NULL'.
-
- - Function: HIST_ENTRY * remove_history (int which)
- Remove history entry at offset WHICH from the history. The
- removed element is returned so you can free the line, data, and
- containing structure.
-
- - Function: HIST_ENTRY * replace_history_entry (int which, const char
- *line, histdata_t data)
- Make the history entry at offset WHICH have LINE and DATA. This
- returns the old entry so you can dispose of the data. In the case
- of an invalid WHICH, a `NULL' pointer is returned.
-
- - Function: void clear_history (void)
- Clear the history list by deleting all the entries.
-
- - Function: void stifle_history (int max)
- Stifle the history list, remembering only the last MAX entries.
-
- - Function: int unstifle_history (void)
- Stop stifling the history. This returns the previously-set
- maximum number of history entries (as set by `stifle_history()').
- The value is positive if the history was stifled, negative if it
- wasn't.
-
- - Function: int history_is_stifled (void)
- Returns non-zero if the history is stifled, zero if it is not.
-
-
-File: history.info, Node: Information About the History List, Next: Moving Around the History List, Prev: History List Management, Up: History Functions
-
-Information About the History List
-----------------------------------
-
- These functions return information about the entire history list or
-individual list entries.
-
- - Function: HIST_ENTRY ** history_list (void)
- Return a `NULL' terminated array of `HIST_ENTRY *' which is the
- current input history. Element 0 of this list is the beginning of
- time. If there is no history, return `NULL'.
-
- - Function: int where_history (void)
- Returns the offset of the current history element.
-
- - Function: HIST_ENTRY * current_history (void)
- Return the history entry at the current position, as determined by
- `where_history()'. If there is no entry there, return a `NULL'
- pointer.
-
- - Function: HIST_ENTRY * history_get (int offset)
- Return the history entry at position OFFSET, starting from
- `history_base' (*note History Variables::). If there is no entry
- there, or if OFFSET is greater than the history length, return a
- `NULL' pointer.
-
- - Function: int history_total_bytes (void)
- Return the number of bytes that the primary history entries are
- using. This function returns the sum of the lengths of all the
- lines in the history.
-
-
-File: history.info, Node: Moving Around the History List, Next: Searching the History List, Prev: Information About the History List, Up: History Functions
-
-Moving Around the History List
-------------------------------
-
- These functions allow the current index into the history list to be
-set or changed.
-
- - Function: int history_set_pos (int pos)
- Set the current history offset to POS, an absolute index into the
- list. Returns 1 on success, 0 if POS is less than zero or greater
- than the number of history entries.
-
- - Function: HIST_ENTRY * previous_history (void)
- Back up the current history offset to the previous history entry,
- and return a pointer to that entry. If there is no previous
- entry, return a `NULL' pointer.
-
- - Function: HIST_ENTRY * next_history (void)
- Move the current history offset forward to the next history entry,
- and return the a pointer to that entry. If there is no next
- entry, return a `NULL' pointer.
-
-
-File: history.info, Node: Searching the History List, Next: Managing the History File, Prev: Moving Around the History List, Up: History Functions
-
-Searching the History List
---------------------------
-
- These functions allow searching of the history list for entries
-containing a specific string. Searching may be performed both forward
-and backward from the current history position. The search may be
-"anchored", meaning that the string must match at the beginning of the
-history entry.
-
- - Function: int history_search (const char *string, int direction)
- Search the history for STRING, starting at the current history
- offset. If DIRECTION is less than 0, then the search is through
- previous entries, otherwise through subsequent entries. If STRING
- is found, then the current history index is set to that history
- entry, and the value returned is the offset in the line of the
- entry where STRING was found. Otherwise, nothing is changed, and
- a -1 is returned.
-
- - Function: int history_search_prefix (const char *string, int
- direction)
- Search the history for STRING, starting at the current history
- offset. The search is anchored: matching lines must begin with
- STRING. If DIRECTION is less than 0, then the search is through
- previous entries, otherwise through subsequent entries. If STRING
- is found, then the current history index is set to that entry, and
- the return value is 0. Otherwise, nothing is changed, and a -1 is
- returned.
-
- - Function: int history_search_pos (const char *string, int direction,
- int pos)
- Search for STRING in the history list, starting at POS, an
- absolute index into the list. If DIRECTION is negative, the search
- proceeds backward from POS, otherwise forward. Returns the
- absolute index of the history element where STRING was found, or
- -1 otherwise.
-
-
-File: history.info, Node: Managing the History File, Next: History Expansion, Prev: Searching the History List, Up: History Functions
-
-Managing the History File
--------------------------
-
- The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-
- - Function: int read_history (const char *filename)
- Add the contents of FILENAME to the history list, a line at a time.
- If FILENAME is `NULL', then read from `~/.history'. Returns 0 if
- successful, or `errno' if not.
-
- - Function: int read_history_range (const char *filename, int from,
- int to)
- Read a range of lines from FILENAME, adding them to the history
- list. Start reading at line FROM and end at TO. If FROM is zero,
- start at the beginning. If TO is less than FROM, then read until
- the end of the file. If FILENAME is `NULL', then read from
- `~/.history'. Returns 0 if successful, or `errno' if not.
-
- - Function: int write_history (const char *filename)
- Write the current history to FILENAME, overwriting FILENAME if
- necessary. If FILENAME is `NULL', then write the history list to
- `~/.history'. Returns 0 on success, or `errno' on a read or write
- error.
-
- - Function: int append_history (int nelements, const char *filename)
- Append the last NELEMENTS of the history list to FILENAME. If
- FILENAME is `NULL', then append to `~/.history'. Returns 0 on
- success, or `errno' on a read or write error.
-
- - Function: int history_truncate_file (const char *filename, int
- nlines)
- Truncate the history file FILENAME, leaving only the last NLINES
- lines. If FILENAME is `NULL', then `~/.history' is truncated.
- Returns 0 on success, or `errno' on failure.
-
-
-File: history.info, Node: History Expansion, Prev: Managing the History File, Up: History Functions
-
-History Expansion
------------------
-
- These functions implement history expansion.
-
- - Function: int history_expand (char *string, char **output)
- Expand STRING, placing the result into OUTPUT, a pointer to a
- string (*note History Interaction::). Returns:
- `0'
- If no expansions took place (or, if the only change in the
- text was the removal of escape characters preceding the
- history expansion character);
-
- `1'
- if expansions did take place;
-
- `-1'
- if there was an error in expansion;
-
- `2'
- if the returned line should be displayed, but not executed,
- as with the `:p' modifier (*note Modifiers::).
-
- If an error ocurred in expansion, then OUTPUT contains a
- descriptive error message.
-
- - Function: char * get_history_event (const char *string, int *cindex,
- int qchar)
- Returns the text of the history event beginning at STRING +
- *CINDEX. *CINDEX is modified to point to after the event
- specifier. At function entry, CINDEX points to the index into
- STRING where the history event specification begins. QCHAR is a
- character that is allowed to end the event specification in
- addition to the "normal" terminating characters.
-
- - Function: char ** history_tokenize (const char *string)
- Return an array of tokens parsed out of STRING, much as the shell
- might. The tokens are split on the characters in the
- HISTORY_WORD_DELIMITERS variable, and shell quoting conventions
- are obeyed.
-
- - Function: char * history_arg_extract (int first, int last, const
- char *string)
- Extract a string segment consisting of the FIRST through LAST
- arguments present in STRING. Arguments are split using
- `history_tokenize'.
-
-
-File: history.info, Node: History Variables, Next: History Programming Example, Prev: History Functions, Up: Programming with GNU History
-
-History Variables
-=================
-
- This section describes the externally-visible variables exported by
-the GNU History Library.
-
- - Variable: int history_base
- The logical offset of the first entry in the history list.
-
- - Variable: int history_length
- The number of entries currently stored in the history list.
-
- - Variable: int history_max_entries
- The maximum number of history entries. This must be changed using
- `stifle_history()'.
-
- - Variable: char history_expansion_char
- The character that introduces a history event. The default is `!'.
- Setting this to 0 inhibits history expansion.
-
- - Variable: char history_subst_char
- The character that invokes word substitution if found at the start
- of a line. The default is `^'.
-
- - Variable: char history_comment_char
- During tokenization, if this character is seen as the first
- character of a word, then it and all subsequent characters up to a
- newline are ignored, suppressing history expansion for the
- remainder of the line. This is disabled by default.
-
- - Variable: char * history_word_delimiters
- The characters that separate tokens for `history_tokenize()'. The
- default value is `" \t\n()<>;&|"'.
-
- - Variable: char * history_no_expand_chars
- The list of characters which inhibit history expansion if found
- immediately following HISTORY_EXPANSION_CHAR. The default is
- space, tab, newline, carriage return, and `='.
-
- - Variable: char * history_search_delimiter_chars
- The list of additional characters which can delimit a history
- search string, in addition to space, TAB, `:' and `?' in the case
- of a substring search. The default is empty.
-
- - Variable: int history_quotes_inhibit_expansion
- If non-zero, single-quoted words are not scanned for the history
- expansion character. The default value is 0.
-
- - Variable: rl_linebuf_func_t * history_inhibit_expansion_function
- This should be set to the address of a function that takes two
- arguments: a `char *' (STRING) and an `int' index into that string
- (I). It should return a non-zero value if the history expansion
- starting at STRING[I] should not be performed; zero if the
- expansion should be done. It is intended for use by applications
- like Bash that use the history expansion character for additional
- purposes. By default, this variable is set to `NULL'.
-
-
-File: history.info, Node: History Programming Example, Prev: History Variables, Up: Programming with GNU History
-
-History Programming Example
-===========================
-
- The following program demonstrates simple use of the GNU History
-Library.
-
- #include <stdio.h>
- #include <readline/history.h>
-
- main (argc, argv)
- int argc;
- char **argv;
- {
- char line[1024], *t;
- int len, done = 0;
-
- line[0] = 0;
-
- using_history ();
- while (!done)
- {
- printf ("history$ ");
- fflush (stdout);
- t = fgets (line, sizeof (line) - 1, stdin);
- if (t && *t)
- {
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- }
-
- if (!t)
- strcpy (line, "quit");
-
- if (line[0])
- {
- char *expansion;
- int result;
-
- result = history_expand (line, &expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
-
- if (result < 0 || result == 2)
- {
- free (expansion);
- continue;
- }
-
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- }
-
- if (strcmp (line, "quit") == 0)
- done = 1;
- else if (strcmp (line, "save") == 0)
- write_history ("history_file");
- else if (strcmp (line, "read") == 0)
- read_history ("history_file");
- else if (strcmp (line, "list") == 0)
- {
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]->line);
- }
- else if (strncmp (line, "delete", 6) == 0)
- {
- int which;
- if ((sscanf (line + 6, "%d", &which)) == 1)
- {
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- {
- free (entry->line);
- free (entry);
- }
- }
- else
- {
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- }
- }
- }
- }
-
-
-File: history.info, Node: Concept Index, Next: Function and Variable Index, Prev: Programming with GNU History, Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-* anchored search: Searching the History List.
-* event designators: Event Designators.
-* history events: Event Designators.
-* history expansion: History Interaction.
-* History Searching: Searching the History List.
-
-
-File: history.info, Node: Function and Variable Index, Prev: Concept Index, Up: Top
-
-Function and Variable Index
-***************************
-
-* Menu:
-
-* add_history: History List Management.
-* append_history: Managing the History File.
-* clear_history: History List Management.
-* current_history: Information About the History List.
-* get_history_event: History Expansion.
-* history_arg_extract: History Expansion.
-* history_base: History Variables.
-* history_comment_char: History Variables.
-* history_expand: History Expansion.
-* history_expansion_char: History Variables.
-* history_get: Information About the History List.
-* history_get_history_state: Initializing History and State Management.
-* history_inhibit_expansion_function: History Variables.
-* history_is_stifled: History List Management.
-* history_length: History Variables.
-* history_list: Information About the History List.
-* history_max_entries: History Variables.
-* history_no_expand_chars: History Variables.
-* history_quotes_inhibit_expansion: History Variables.
-* history_search: Searching the History List.
-* history_search_delimiter_chars: History Variables.
-* history_search_pos: Searching the History List.
-* history_search_prefix: Searching the History List.
-* history_set_history_state: Initializing History and State Management.
-* history_set_pos: Moving Around the History List.
-* history_subst_char: History Variables.
-* history_tokenize: History Expansion.
-* history_total_bytes: Information About the History List.
-* history_truncate_file: Managing the History File.
-* history_word_delimiters: History Variables.
-* next_history: Moving Around the History List.
-* previous_history: Moving Around the History List.
-* read_history: Managing the History File.
-* read_history_range: Managing the History File.
-* remove_history: History List Management.
-* replace_history_entry: History List Management.
-* stifle_history: History List Management.
-* unstifle_history: History List Management.
-* using_history: Initializing History and State Management.
-* where_history: Information About the History List.
-* write_history: Managing the History File.
-
-
-
-Tag Table:
-Node: Top1136
-Node: Using History Interactively1716
-Node: History Interaction2223
-Node: Event Designators3642
-Node: Word Designators4569
-Node: Modifiers6198
-Node: Programming with GNU History7336
-Node: Introduction to History8061
-Node: History Storage9746
-Node: History Functions10857
-Node: Initializing History and State Management11841
-Node: History List Management12641
-Node: Information About the History List14235
-Node: Moving Around the History List15591
-Node: Searching the History List16580
-Node: Managing the History File18498
-Node: History Expansion20304
-Node: History Variables22199
-Node: History Programming Example24766
-Node: Concept Index27488
-Node: Function and Variable Index27974
-
-End Tag Table
diff --git a/readline-4.3.orig/doc/history.ps b/readline-4.3.orig/doc/history.ps
deleted file mode 100644
index a35bcf4..0000000
--- a/readline-4.3.orig/doc/history.ps
+++ /dev/null
@@ -1,1658 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: history.dvi
-%%Pages: 20
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o history.ps history.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (history.dvi)
-@start
-%DVIPSBitmapFont: Fa cmti10 10.95 1
-/Fa 1 47 df<127012F8A212F012E005057B840E>46 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmbxti10 14.4 1
-/Fb 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmtt9 9 26
-/Fc 26 123 df<EAFFFEA30F037E7E14>95 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA
-07FC121FEA3C1C127012E0A3EA707C383FFF80EA0F8F11107E8F14>97
-D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0E
-EA1DFCEA0CF81217809614>I<EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A4126012
-70EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA
-301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0
-EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F0
-0F107E8F14>I<13FCEA01FEEA038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F17
-7F9614>I<EA07CF381FFF80EA383B38301800EA701CA3EA3018EA3838EA3FF0EA37C000
-70C7FCA2EA3FF86C7E487EEA700F38E00380A438700700EA3C1EEA1FFCEA07F011197F8F
-14>I<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206
-120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I<12FCA2121CA5EBFF80A2EB
-1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>107
-D<EAFF80A21203B3EAFFFEA20F177E9614>I<EAFB8EEAFFDF383CF380A2EA38E3AA38FE
-FBE013791310808F14>I<EAFC78EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310808F14>
-I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E
-8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1D
-FCEA1CF890C7FCA6B47EA21218808F14>I<EA03E7EA0FF7EA1C1FEA300F1270487EA6EA
-700F1230EA1C3FEA0FF7EA07C7EA0007A6EB3FE0A213187F8F14>I<EAFE1FEB7F80EA0E
-E3380F810090C7FCA2120EA8EAFFF0A211107F8F14>I<EA0FD8EA3FF8EA603812C0A2EA
-F000EA7F80EA3FF0EA07F8EA001CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>
-I<1206120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3F
-A2EA1C07AB131F380FFFE0EA03E71310808F14>I<38FE3F80A2383C1E00EA1C1CA36C5A
-A3EA0630EA0770A36C5AA311107F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA
-1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<EA7E3FA2EA1E3CEA0E78EA07705B12036C
-5A12037FEA0770EA0E781338487E38FE3F80A211107F8F14>I<38FE3F80A2381C0E005B
-A2120E5BA212071330A2EA0370A25B1201A25BA3485A12730077C7FC127E123C11187F8F
-14>I<EA3FFF5AEA700E131C1338EA007013E0EA01C0EA0380EA0700120EEA1C07123812
-70B5FCA210107F8F14>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmti9 9 1
-/Fd 1 47 df<1230127812F0126005047C830C>46 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmr9 9 24
-/Fe 24 122 df<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA6006A2EA70
-0EEA300CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA7FF80D187D
-9713>I<EA01F8EA0704EA0C06EA180E123013001270126012E0EAE3E0EAE418EAE80CEA
-F00EEAE0061307A31260A2EA7006EA300EEA180CEA0C38EA07E010187F9713>54
-D<1240EA7FFF13FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206A2
-120EA5120410197E9813>I<EA07E0EA1818EA300CEA20061260A21270EA780CEA3E18EA
-1F30EA07C0EA03E0EA0CF8EA307CEA601E130FEAC0071303A3EA6002EA2004EA1818EA07
-E010187F9713>I<EA07E0EA1C30EA3018EA700CEA600EEAE006A21307A31260EA700FEA
-3017EA1827EA07C7EA00071306130E130C12701318EA6030EA3060EA0F8010187F9713>
-I<39FFE1FFC0390E001C00AB380FFFFC380E001CAC39FFE1FFC01A1A7F991D>72
-D<EA0FC2EA1836EA200EEA600612C01302A3EAE0001270127EEA3FE0EA1FF8EA03FCEA00
-7E130E130713031280A3EAC0021306EAE004EAD818EA87E0101A7E9915>83
-D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C1238127012E01480A2133CEA705F381F
-8F0011107F8F13>97 D<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA
-07E00E107F8F11>99 D<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C
-5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE0
-00A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA0FCF3818718038303000EA70
-38A4EA30306C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA38
-1CEA07E011187F8F13>103 D<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF014
-1A809915>I<1218123CA212181200A612FC121CAE12FF081A80990A>I<EAFC7CEA1D8738
-1E0380A2121CAB38FF9FF01410808F15>110 D<EA07E0EA1C38EA300CEA700EEA6006EA
-E007A6EA6006EA700EEA381CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E038038
-1C01C0A2EB00E0A6EB01C01480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15>I<
-EAFC78EA1D9CEA1E1C1308EA1C00ABEAFF800E10808F0F>114 D<EA1F20EA60E0EA4020
-12C0A2EAF000127FEA3FC0EA1FE0EA00F0EA8070133012C01320EAF040EA8F800C107F8F
-0F>I<1208A41218A21238EAFFC0EA3800A81320A41218EA1C40EA07800B177F960F>I<38
-FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14>
-118 D<38FE3F80383C1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA
-181CEA381E38FC3FC012107F8F14>120 D<38FF0F80383C0700EA1C061304A26C5AA26C
-5AA3EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmss10 10.95 2
-/Ff 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0
-AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmbx10 12 27
-/Fg 27 123 df<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2
-ECFF80B6FCA2380FC01FB2397FF8FFF0A21C237FA220>12 D<90380FFF80137F3801FC1F
-3803F03FEA07E0EA0FC0141FA7B6FCA2380FC01FB2397FF8FFF0A21C237FA220>I<EA07
-FE381FFF80383F07E06D7E130180121E1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA
-7C02EA7E0C391FF87F803807E03F19167E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF0
-3EEBC01F9038800F8015C0140715E0A715C0A2140F15809038C01F00381E707E381C3FFC
-38180FE01B237EA220>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC
-12FCA6127C127EA2003E13186C1330380FC0603807FFC0C6130015167E9519>I<49B4FC
-A2EB003FAB13FE3807FFBF380FC1FF48C67E003E7F127E127CA212FCA7127C127E123E6C
-5B380F81FF3907FF3FE0EA01FC1B237EA220>I<13FE3807FF80380F83C0381E01E0383E
-00F0127E007C13F8147812FCB512F8A200FCC7FCA3127CA26C1318A26C1330380F80E038
-03FFC0C6130015167E951A>I<EB1F80EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC0
-00A6EAFFFEA2EA0FC0B2EA7FFCA214237EA212>I<9038FE0F803903FF9FC0380F83E338
-1F01F3391E00F000003E7FA5001E5BEA1F01380F83E0380BFF80D808FEC7FC0018C8FCA2
-121C381FFFE014FC6C13FF7E001F1480397C001FC00078130F00F81307A3007CEB0F806C
-EB1F00381F807E6CB45A000113E01A217F951D>I<B47EA2121FABEB83F0EB8FFCEB987E
-EBA03EEBC03FA21380AE39FFF1FFE0A21B237DA220>I<121E123FEA7F80A4EA3F00121E
-C7FCA6EAFF80A2121FB2EAFFF0A20C247EA30F>I<B47EA2121FABECFF80A2EC3C001430
-14E0EB81C00183C7FC1386139E13BE13FFEBDF80EB8FC01307806D7E6D7E130080147E39
-FFE1FFC0A21A237EA21E>107 D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F8
-03F890390FFE0FFE3A1F183F183F9039201F201F014001C01380A201801380AE3BFFF0FF
-F0FFF0A22C167D9531>I<38FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FF
-E0A21B167D9520>I<13FF000713E0380F81F0381F00F8003E137C48133EA300FC133FA7
-007C133E007E137E003E137C6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87
-F0EBBFFC381FF07EEBC01F9038800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EB
-F07EEBBFFCEB8FE00180C7FCA8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF38
-1F00DF48137F007E7FA2127C12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8
-903801FFE0A21B207E951E>I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000AD
-EAFFF8A214167E9518>I<3807F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA
-7FFE6C7E6C1380120738003FC0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812
-167E9517>I<487EA41203A21207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3
-EA07FEEA01F811207F9F16>I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01
-FC1B167D9520>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA2
-6C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3
-FF83FCA23A1F807C00E0D80FC014C08001E013010007017F1380A2D803F0EB0300ECCF83
-01F81387D801F913C61487D800FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118
-136026167F9529>I<39FFF07FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD8013
-7F91C7FC7F6D7E497EEB37E0EB67F013C33801C1F8380380FC48487E000E137F39FF81FF
-E0A21B167F951E>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035B
-A26C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC38
-13305BEA69C0EA7F80001FC8FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F
-00E0138038C03F005B137EC65A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB
-00E0EA7E03B5FCA214167E9519>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmtt10 12 27
-/Fh 27 119 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
-FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<1338137CA2136C13EEA313
-C6A2EA01C7A438038380A4380701C0A213FFA24813E0EA0E00A4481370387F01FC38FF83
-FE387F01FC171E7F9D1A>65 D<B512F8A3381C0038A51400A2130EA3EA1FFEA3EA1C0EA3
-90C7FCA3141CA5B512FCA3161E7E9D1A>69 D<38FF83FEA3381C0070AA381FFFF0A3381C
-0070AB38FF83FEA3171E7F9D1A>72 D<B51280A33801C000B3A6B51280A3111E7C9D1A>
-I<38FE03FE12FFA2381D8070A213C0121CA213E0A213601370A213301338A21318131CA2
-130C130EA21306A213071303A238FF81F0A21380171E7F9D1A>78
-D<EA0FFE383FFF804813C0EA7C07EA700100F013E0EAE000B1EAF001A2007013C0EA7C07
-EA7FFF6C1380380FFE00131E7D9D1A>I<EAFFFC13FF1480381C07C0EB01E0EB00F01470
-A414F0EB01E0EB07C0381FFF8014001480381C07C01301EB00E0A514E214E7A338FF807E
-A21438181E7F9D1A>82 D<3803F1C0EA0FFDEA3FFFEA7C0FEA700312E01301A390C7FC12
-701278123FEA1FF0EA07FE3800FF80EB0FC0EB01E013001470A2126012E0A214E0EAF001
-38FC03C0B5128000EF1300EAE3FC141E7D9D1A>I<387FFFFEB5FCA238E0380EA5000013
-00B33803FF80A3171E7F9D1A>I<38FF01FEA3381C00706C13E0A2380701C0A213830003
-138013C700011300A2EA00EEA2137CA21338AA48B4FCA3171E7F9D1A>89
-D<387FFFC0B512E0A26C13C013047D7E1A>95 D<EA1FF0EA3FFC487EEA780FEA30073800
-0380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA1FFDEA07
-F016157D941A>97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB0038120E14
-1CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<EBFF8000
-0313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F01F0380F
-FFE0000313C03800FE0014157D941A>I<EB1FC0A31301A6EA01F1EA07FDEA0FFFEA1E0F
-EA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA01F1161E7E9D
-1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7
-FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<EB07E0EB
-1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF804813C06C13
-80151E7F9D1A>I<12FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3
-FE13E713E3171E7F9D1A>104 D<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80
-B512C06C1380121F7C9E1A>I<EAFFE0A31200B3A6B512E0A3131E7D9D1A>108
-D<EAFE3EEBFF80B512C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>
-110 D<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA700138E000E0A6EAF0010070
-13C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F013157D941A>I<387F81F838FF8F
-FC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>114
-D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F
-9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387F
-C7FC00FF13FE007F13FC380E00E0A3380701C0A338038380A33801C700A3EA00EEA3137C
-A2133817157F941A>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmbx12 13.14 41
-/Fi 41 123 df<EB07FCEB3FFF9038FE0780D803F013C03807E00FA2EA0FC0A3EC030091
-C7FCA3EC7FE0B6FCA2380FC007B3A239FFFC7FFEA21F267FA522>12
-D<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA21200B3AA387FFF
-FCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14
-FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370
-EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48
-B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8
-EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214
-FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F8
-1301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A12
-705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF8
-14F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC712
-7EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE0018
-237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA2007E13
-3C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E123F
-6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512C0A2
-15804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25B
-A213F8A41201A66C5A13601A257DA41F>I<141CA2143EA3147FA24A7EA39038019FC0A2
-9038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FCA290
-39E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229257E
-A42E>65 D<B612E015FC3903F800FFED1FC0ED07E06F7E6F7E82150082A2167FA31780AA
-1700A316FEA24B5A5E4B5A4B5AED1FC0EDFF80B648C7FC15E029257EA42F>68
-D<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFE
-A2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428
->I<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F
-8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F800AF90B6FC
-A29038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3AFB512E0A2
-13257EA417>I<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FC
-B6FCA220257EA425>76 D<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C
-130CA26D6C1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3
-EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>
-I<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
-EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
-C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>83
-D<B53B81FFFE01FFF0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D49
-6C1338000017304B7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E013
-8190280FE0C03F83C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14
-FC6D486D5AA24A130301005DA24A130102785CA202306D5A3C257FA43F>87
-D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0EA1F
-00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
-D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
-A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
-7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
-EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
-0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
-FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
-12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
-17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
-C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
-007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
-13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
-FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
-07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
-C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FB3B0EAFFFCA20E26
-7EA511>108 D<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E8
-03F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80
-390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803
-FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A238
-1F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F0
-07E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038
-CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC
-13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA70
-01EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212
-E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F
-121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39
-FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<
-39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC0000
-5B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A239
-0FC00F003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F8
-1361EBE0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120
-D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00
-005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B
-1370EA68E0EA7FC0001FC8FC1D237F9720>I<387FFFF8A2387C03F0EA700738600FE000
-E013C0EB1F80EAC03F1400137EEA00FE5B485A0003130C13F0EA07E0120FEBC01C381F80
-18003F1338387F0078387E01F8B5FCA216187E971B>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmsl10 10.95 30
-/Fj 30 122 df<903803F07C90381E0DC69038380F0FEB701E01E0130EEC0C003801C01C
-A548485A007FB512C03903803800A448485AA6000E5BA648485A001E7F38FF8FFC20207E
-9F1B>11 D<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF038038070A4
-380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>I<903803F03F9039
-1E09E0809039380F80C09039701F01E0EBE03E021E13C02601C01CC7FCA548485A007FB6
-12803903803803A43A0700700700A6000EEBE00EA64848485A001EEBE01E3AFF8FF8FFC0
-23207E9F26>14 D<13201360A4383061C0383C4380380E4E00EA0778EA01E0A2EA07B8EA
-1C9CEA708FEAE083EA0180A490C7FC12147AA117>42 D<13181338EA01F8EA0E701200A5
-13E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B9D17>49 D<EB3F80EBC1E0380100
-70000213785AA2000F137C1380A2EB00781206C712F814F0EB01E014C0EB0380EB070013
-0E5B5B13605B485A380300201206000813405A383FFFC0481380B5FC161E7E9D17>I<13
-FFEA01FE1380A5EA0300A61206A65AA65AA65AA65AA6B4FCA2102D7EA10D>91
-D<13FFEA01FEEA0006A5130CA61318A61330A61360A613C0A6EA0180A6EAFF00A2102D82
-A10D>93 D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7EA1E07EA3C0E127800F0
-1310A3131EEB2E2038784F40381F878014147D9317>97 D<13FEEA0383380E0780121C00
-38130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D9314>99
-D<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121CEA3C00383801C01278
-12F0A438E00380A412F0EA700738380F00381C37803807C7E015207D9F19>I<13F8EA07
-0EEA0E07381C038012381278127012F0B5FC00F0C7FCA25AA46C5AEA7002EA3004EA1C18
-EA07E011147D9314>I<EB07C0EB1C60EB30F01360EBE0E0EBC0001201A5485AEA3FFCEA
-0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB3E11EBE1A33801C1C238
-0381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C0
-14E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F809417>I<13E012
-0712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01C0A6
-381C0380001E13C038FF8FF014207E9F19>I<EA01C0EA03E0A213C0EA0180C7FCA6EA03
-80121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>I<13E0120712011200
-A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C>108
-D<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5000EEB
-E00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07A0
-3803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E9319>
-I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0130300F013
-8038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383801F01C6C487E140F
-48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90C8FCA3120E
-A4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C003813C0127812
-F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4131EEBFFC0
-131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120EA65A121EEA
-FFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13F0EA07FCEA
-01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<1380EA0100
-A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<38
-1C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F8011147B
-9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075BA25BEA0390
-13A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C030060148015
-401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C48
-5A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0C0EBE180EB
-73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03E038FE07FC
-18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B143014205C13705CA2
-0171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E61278
-191D809318>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmcsc10 10.95 3
-/Fk 3 118 df<EB7E083803819838070078000C1338001C13185A00781308127000F013
-00A5EB03FEEB00381270127812387E120C1207380380D838007F0817177E961D>103
-D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C130E1307A2
-EB03A0EB01E0A213001460123800FE132016177E961C>110 D<38FF81FC381C00701420
-B0000C1340120E6C138038018300EA007C16177E961C>117 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmbx12 17.28 36
-/Fl 36 122 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF000
-7CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215
-F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49
-131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<1578A215FCA34A7E
-A24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F151F02787FEC700FA202E07F1507
-010180ECC003A249486C7EA201078191C7FC498191B6FCA24981011CC7123F013C810138
-141FA24981160F01F081491407A2484881486C1403B549B512FCA336317DB03D>65
-D<B712C016FC16FFD801FEC77FEE7FE0707E161F707EA2831607A4160FA25FA24C5A4C5A
-4C5A4B485ADB1FFEC7FC90B65AEEFF8049C7EA3FE0EE0FF0EE07FCA2707E83821880A718
-005E5F16074C5A4C5AEEFFF0B812C094C7FC16F831317DB039>I<913A03FF800180023F
-EBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C8127F
-4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127FA2
-7FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93FC0
-5CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>I<
-B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A21700A35D5D5D
-91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70 D<DA03FF1303027FEBF0
-0749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49487F4848C87E485A0007
-824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B512F8127F7FDB00011300
-123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497ED907FFEB3E3F01019038
-FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B6D8807FB512C0A3C60180C7387FC000
-B391B7FCA30280C7127FB3A3B6D8807FB512C0A33A317EB03F>I<B61280A3C6EB8000B3
-B3A7B61280A319317EB01E>I<B56C49B512C08080C66D90390003E0006E6E5AEBEFFC13
-E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E16806E13C0ED7FE0ED3F
-F0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1EE1FF9EE0FFD160717FF
-828282177F173FA2171F170F486C1507B500E014031701A23A317EB03F>78
-D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FFA717FEA2EE
-07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB037>80
-D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603
-A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807C000
-715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801FC002
-3FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C1780
-6E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075DA26E
-130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C021F13
-3815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA238317EB0
-3D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FC
-A414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F800D39
-3FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97 D<EA01F812FFA3120F12
-07ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E049EB07F016F8A2ED03FC
-A316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F809039C3C0FE00903880FFF8
-9038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803F0033907E007F8120FEA
-1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2001F14386C7E00071470
-3903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED0FC0EC07FFA3EC007F15
-3FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F4848133F123FA2485AA312
-FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F3FFE38007FFEEB0F
-F027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E03907E001F0000F14F839
-1FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7FCA4127FA36C6C130712
-1F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807FE0020207E9F25>I<EB
-01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC1203EC07E0EC018091C7
-FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90391FF007C09039FFFE3F
-E03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF000A2003F80A5001F5CA2
-000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC121EA2121F7F90B57E6C
-14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C140F00FC1407A4007EEC
-0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0D8001F90C7FC242F7E9F
-28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013809039F9801FC0EBFB00
-01FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E487E487EA46C5A6C5A6C
-5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA01F812FFA3120F1207B3
-B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01
-E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3
-B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1
-801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFF
-C03901FC07F03903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300
-FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF0
-39007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFFFC9038FBE07F9039FF00
-3F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2
-ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A3
-272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07
-E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C
-133E48131E140E12F8A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA00
-3F01001380143F0060131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C0
-7F8019207D9F20>I<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FC
-C7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I<D801F8EB07
-E000FFEB03FFA3000FEB003F0007141FB3153FA20003147FA26C6CEBDFF03A00FE039FFF
-90387FFF1FEB0FFC28207D9F2D>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315
-007F0001140E7F6C5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14
-F9903807FB80A214FF6D90C7FCA26D5AA26D5AA21478A226207E9F2B>I<B53A1FFFE03F
-F8A33C0FF000FE0007806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15
-DF01FF153C6C9039038FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEB
-F9C09138FC01FD16FF010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E
-9F3A>I<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B90
-381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF081
-90380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA3
-28207F9F2B>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315007F0001140E7F6C
-5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14F9903807FB80A214
-FF6D90C7FCA26D5AA26D5AA21478A21470A214F05C1301007C5BEAFE035C49C8FC5BEAFC
-1EEA787CEA3FF0EA0FC0262E7E9F2B>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmsy10 10.95 1
-/Fm 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmbx12 14.4 44
-/Fn 44 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F14
-80A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F080491303
-000181491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8
-001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EA
-FE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1F
-F8B712E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF0
-0F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290
-C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F09039
-7FF007C0011FB512800107EBFE009038007FF028297CA831>I<B712E0A33903FC001FED
-07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3EBFC0F1403A202
-01130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327297EA82C>69
-D<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A316001403A2140F
-90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387FE003903907
-FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880485A82
-485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E6C7E6C
-B45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5D8F00FB5FC
-A3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835>I<B512F0
-A33803FC00B3B1B512F0A314297EA819>I<D8FFFCEC7FFF7F7F00036DEB01C080EBBFE0
-139F80EB8FF8EB87FCEB83FEEB81FF01801380147F15C0EC3FE0EC1FF0EC0FF8EC07FC14
-0315FEEC01FF6E1381ED7FC1ED3FE1ED1FF1150F16F9ED07FDED03FF8181167FA2163F16
-1F160F1607D8FFFE14031601A230297EA835>78 D<B612F815FF16C03A03FC003FE0ED07
-F0ED03F816FC150116FEA716FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B5
-12F0A327297EA82E>80 D<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A65E
-4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170EA2
-1503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>82 D<9038FF80600003EBF0E0
-000F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7F
-FCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E0
-1303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA8
-25>I<B500F0EBFFFEA3D803FCC7EA0380B3AA0001ED07007F0000150E137F6D143CD91F
-C05B90390FF003F06DB55A01001480DA1FFCC7FC2F297EA834>85
-D<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B017F140E80013F
-5CA26E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE0301015CECFF076D
-91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA230297FA833>I<B5
-3CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13016C604B1380
-02801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E17F09126F01C
-0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035BA2913AFEE001
-FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E141EA242297F
-A845>I<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801
-FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B
-7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F001F8
-9038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380F
-FF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A2
-48133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C
-3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F380FC0
-0F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FF
-E738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80
-127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007
-003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813
-F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F000
-03EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E
-6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C
-14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512
-0038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EB
-E80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0
-A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3
-120FB3B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0
-C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFF
-E0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013
-D0A213E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F
-800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC039
-0FC01F803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE
-0FE0390FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013
-F89038F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>
-I<38FFC1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>
-114 D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14
-C06C13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038
-E7FFC000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380F
-E000AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A300
-0F1307B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FF
-A3390FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0E
-A2149EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B
-0FE00FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC
-2600FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C
-5AA2EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F00
-3801FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038
-F03F803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E13
-1C5BEA74F0EA3FE0EA0F8020277F9A23>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fo cmtt10 10.95 76
-/Fo 76 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780A2EAEE0F1400A25B131EA213
-3EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA21207EB8380EB87C0120FEB0EE0
-A2121F121EA2123E383C07C0A23818038013247E9F18>I<EA01C0EA07E0487EEA0E7048
-7EA4EB73F813F313E3380FC1C0EBC38013831303381F0700EA3F87EA7B8EEA71CEEAE1FC
-12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C7F9B18>I<1238127CA2127E
-123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780
-EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
-24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01
-C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EA
-FDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A41114
-7D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C
-123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0
-A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F
-14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12
-1E123E123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C
-0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C07
-00EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12
-431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF387C0F80387003
-C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B485AEA07C0
-485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B1377A213E7120113C7EA038712
-071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52
-D<137E48B4FC00071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC
-38FE078038F803C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5A
-EA01F8131C7E9B18>54 D<1230127812FCA2127812301200A81230127812FCA212781230
-0614779318>58 D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E12
-1C123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07
-F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E013
-03EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0
-130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2
-EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0F
-F0EA3FFC48B4FCEA700F38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5
-EA0380487EA36C5A111C7D9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707
-A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>65
-D<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114
-C01303EB0F80387FFF00485AEA7FF8141C7F9B18>68 D<B512F0A3381C0070A41400A213
-0EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B512F0A3381C0070
-A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0A3141C7E9B18>I<387F07F038FF
-8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18
->72 D<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<EAFFC0
-A3001CC7FCB114E0A5B5FCA3131C7E9B18>76 D<387E07F038FF0FF8387F07F0381D81C0
-A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03
-151C7F9B18>78 D<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF00100
-7013C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01
-E013001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<
-EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB
-0380A5149CA3387F01F8EAFF81387F00F0161C7F9B18>82 D<3803F1C0EA1FFF5AEA7C0F
-EA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2
-126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA2
-38E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F
-01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03381C01C0
-EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC487E6C
-5A151C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>91
-D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F12007F
-1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<EAFFF8A3EA00
-38B3ACEAFFF8A30D247F9F18>I<EA0180EA07C0EA1FF0EA7EFCEAF83EEAE00E0F067C9B
-18>I<387FFFC0B512E0A26C13C013047E7F18>I<1206121E123E12381270A212E0A312F8
-12FC127CA21238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF12
-07121FEA7F03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E
-12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80
-E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838
-030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<
-EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007
-A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA
-3E0F38380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF80
-00071300EA01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0
-B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00
-487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F03870
-0070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE12
-7E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC17
-1C809B18>I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C
-18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA
-0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>107 D<EAFFC0A31201B3A4B51280
-A3111C7D9B18>I<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E
-7EEB3E3E1714809318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7
-FC38FFE7FE387FC7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A2
-38E000E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318
->I<EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013
-C1EBFFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FB
-EA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3
-EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060
-EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A300
-7CC7FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F0
-11147D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C
-1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C
-13FE3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A33807
-0700A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F13073838
-00E0A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F93
-18>I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DC
-EA039E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000
-FF13F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013
-DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2
-387001E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512
-F0A314147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E012
-00AB1378EB7FE0131F130713247E9F18>I<126012F0B3B012600424769F18>I<127CB4FC
-13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E
-9F18>I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA60C00F067C9B18>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fp cmr10 10.95 74
-/Fp 74 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA07
-00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903
-80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<EA7038
-EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7F9F17>34
-D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
-D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
-30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
-0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
-5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
-D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<EA03F0EA0E1C487EEA1806
-EA380738700380A400F013C0AD00701380A3EA780700381300EA1806EA1C0E6C5AEA03F0
-121F7E9D17>48 D<13801203120F12F31203B3A6EA07C0EA7FFE0F1E7C9D17>I<EA03F0
-EA0C1CEA100E487E00401380128000F013C0EAF803A3EA200712001480A2EB0F00130E5B
-5B5B13605B485A48C7FC000613405A5A00101380EA3FFF5AB5FC121E7E9D17>I<EA03F0
-EA0C1CEA100EEA200F007813801307A2EA380F12001400A2131E131C1370EA07F0EA003C
-130E130FEB0780A214C0122012F8A300F013801240EB0F00EA200EEA183CEA07F0121F7E
-9D17>I<1306A2130EA2131E132EA2134E138EA2EA010E1202A212041208A212101220A2
-124012C0B512F038000E00A7EBFFE0141E7F9D17>I<EA1803EA1FFE5B5B13E00010C7FC
-A6EA11F0EA161CEA180EEA10071480EA0003A214C0A3127012F0A200E013801240EB0700
-EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA0182EA0701380E0380EA0C07121838
-38030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200F013C0A51270A214
-801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFFE014C0A238400080
-38800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C5A131F7E9D17>I<
-EA03F0EA0C0CEA1006EA3003382001801260A3127038780300123EEA3F06EA1FC8EA0FF0
-EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300A31480EA600100201300EA
-1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18487E487E13071270EB038012F0A214
-C0A5EA7007A21238EA180BEA0E13EA03E338000380A3EB07001230EA7806130EEA700CEA
-2018EA1070EA0FC0121F7E9D17>I<127012F8A312701200AA127012F8A3127005147C93
-0D>I<127012F8A312701200AA127012F012F8A212781208A31210A31220A21240051D7C
-930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801EA248B5FC
-EB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22>65
-D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F80EC07C0
-140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE0109038381C30
-9038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A91278
-007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E9F21
->I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA8153CA215
-7C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B61280380F000F14
-031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A31540A315
-C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C01540A4EC20
-00A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<90380FE02090
-387818609038E004E03803800238070001481300001E1460A25A1520127C127800F81400
-A7EC7FFCEC03E000781301127C123CA27EA27E7E380380023900E0046090387818209038
-0FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF81D1F7E
-9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<EAFFF8EA0F8090C7FCB21402A41406
-1404A2140C141C147CB512FC171F7E9E1C>76 D<B46CEB07FE000715C0A2D805C0130BA2
-D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3EB0384A2EB01C8
-A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F8003E0EC0080EA0B
-C0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F01478A2143C141E
-A2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB70383801C00E48487E
-39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8147CA900781478
-007C14F8A2003C14F0003E1301001E14E06CEB03C06C148039038007003801E01E380070
-38EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A41580A2EC0F00141E
-147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<EB1FE0EB70383801C00E48487E39070003
-804814C0001EEB01E0003E14F0003C1300007C14F8A20078147800F8147CA90078147800
-7C14F8A2003C14F0383E0781391E0841E0390F1023C00007148039039017003801D01E39
-00783804EB1FF8EB001CEC0C0CEC0E1CEC0FF8A2140715F0EC01E01E297E9F23>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>I<38
-03F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF86CB4
-FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F8018038C6
-0300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C0143000
-801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC0080B3
-A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003FE39
-1F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213F8EB
-7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF8
-1FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C000035DEC
-19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C144090
-383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<12FFA2
-12C0B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA8040A3EAB8
-5CEAFC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80A10D>I<12
-0812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fq cmbx12 20.736 13
-/Fq 13 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B6D8F803B612E0A426007FF0C70001EBC000B3A491B8FCA402F0C71201B3A7
-B6D8F803B612E0A4433B7CBA4C>I<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3
-170FA3171FA2173F177F17FF5E04071300163FB9FCA4323B7DBA3A>76
-D<B500F00207B512E0808080D8007F92390007E0006E6F5A81017B7F81137901787F6E7E
-6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F7E816F13806F13C017E06F13F081EE
-7FF8EE3FFC17FEEE1FFF827013837013C318E37013F382EF7FFBEF3FFFA283838383A283
-83187F183FA201FC161FB500FC150F18071803A2433B7CBA4C>78
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EA01E0EA
-07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512F0A4143D
-7DBC1A>105 D<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE0D807F8EB0FF0
-48486D7EA248486D7E003F81A248486D7EA400FF1680A9007F1600A36C6C495AA2001F5D
-6D1307000F5D6C6C495AD803FEEB3FE03A00FF80FF806DB5C7FC010F13F8010113C02926
-7DA530>111 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000
-035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
-0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
-07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
-12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
-B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
-01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
-7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
-C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
-1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
-1FFCEA07F02E377EA533>121 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%BeginPaperSize: Letter
-letter
-%%EndPaperSize
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 75 659 a Fq(GNU)33 b(History)f(Library)p 75 709
-1800 17 v 960 757 a Fp(Edition)16 b(4.3,)e(for)h Fo(History)f(Library)g
-Fp(V)l(ersion)i(4.3.)1643 811 y(Marc)o(h)e(2002)75 2467
-y Fn(Brian)23 b(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)
--6 b(oundation)75 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6
-b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570
-1800 9 v eop
-%%Page: 2 2
-2 1 bop 75 217 a Fp(This)21 b(do)q(cumen)o(t)g(describ)q(es)h(the)f
-(GNU)f(History)g(library)l(,)j(a)d(programming)g(to)q(ol)g(that)g(pro)o
-(vides)h(a)75 271 y(consisten)o(t)15 b(user)h(in)o(terface)f(for)g
-(recalling)i(lines)f(of)f(previously)i(t)o(yp)q(ed)e(input.)75
-339 y(Published)i(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
-(oundation)75 394 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75
-448 y(Boston,)d(MA)h(02111)f(USA)75 516 y(P)o(ermission)j(is)f(gran)o
-(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f
-(this)h(man)o(ual)f(pro)o(vided)h(the)75 570 y(cop)o(yrigh)o(t)e
-(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h
-(on)f(all)h(copies.)75 638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g
-(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h
-(man)o(ual)g(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h
-(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g
-(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g
-(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fm(\015)h Fp(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1007 b(1)75 149 y Fl(1)41 b(Using)26 b(History)h(In)n(teractiv)n
-(ely)137 289 y Fp(This)17 b(c)o(hapter)g(describ)q(es)h(ho)o(w)e(to)g
-(use)h(the)g Fk(gnu)f Fp(History)g(Library)h(in)o(teractiv)o(ely)l(,)h
-(from)e(a)g(user's)75 344 y(standp)q(oin)o(t.)38 b(It)21
-b(should)h(b)q(e)g(considered)g(a)f(user's)g(guide.)38
-b(F)l(or)21 b(information)g(on)g(using)h(the)f Fk(gnu)75
-398 y Fp(History)c(Library)h(in)h(y)o(our)e(o)o(wn)g(programs,)f(see)i
-(Chapter)f(2)h([Programming)e(with)i(GNU)f(History],)75
-453 y(page)e(5.)75 600 y Fn(1.1)33 b(History)22 b(Expansion)137
-704 y Fp(The)c(History)g(library)h(pro)o(vides)f(a)f(history)h
-(expansion)h(feature)e(that)h(is)g(similar)h(to)e(the)h(history)75
-759 y(expansion)12 b(pro)o(vided)g(b)o(y)f Fo(csh)p Fp(.)18
-b(This)11 b(section)h(describ)q(es)g(the)g(syn)o(tax)e(used)h(to)g
-(manipulate)h(the)f(history)75 814 y(information.)137
-888 y(History)k(expansions)h(in)o(tro)q(duce)h(w)o(ords)d(from)g(the)i
-(history)f(list)h(in)o(to)f(the)h(input)g(stream,)e(making)75
-943 y(it)h(easy)g(to)g(rep)q(eat)g(commands,)g(insert)h(the)f(argumen)o
-(ts)f(to)h(a)g(previous)h(command)f(in)o(to)g(the)g(curren)o(t)75
-998 y(input)h(line,)h(or)d(\014x)i(errors)e(in)i(previous)g(commands)f
-(quic)o(kly)l(.)137 1072 y(History)j(expansion)i(tak)o(es)d(place)i(in)
-h(t)o(w)o(o)d(parts.)28 b(The)19 b(\014rst)f(is)g(to)g(determine)i
-(whic)o(h)f(line)h(from)75 1127 y(the)h(history)f(list)i(should)g(b)q
-(e)f(used)g(during)h(substitution.)37 b(The)21 b(second)g(is)g(to)f
-(select)i(p)q(ortions)e(of)75 1182 y(that)15 b(line)i(for)d(inclusion)k
-(in)o(to)d(the)h(curren)o(t)f(one.)20 b(The)c(line)g(selected)h(from)e
-(the)g(history)g(is)h(called)h(the)75 1237 y Fj(ev)o(en)o(t)p
-Fp(,)c(and)h(the)g(p)q(ortions)g(of)f(that)g(line)i(that)e(are)g(acted)
-h(up)q(on)g(are)f(called)j Fj(w)o(ords)p Fp(.)i(V)l(arious)c
-Fj(mo)q(di\014ers)75 1292 y Fp(are)i(a)o(v)m(ailable)i(to)e(manipulate)
-i(the)e(selected)i(w)o(ords.)23 b(The)17 b(line)h(is)f(brok)o(en)f(in)o
-(to)h(w)o(ords)e(in)j(the)e(same)75 1346 y(fashion)c(that)e(Bash)i(do)q
-(es,)g(so)f(that)g(sev)o(eral)g(w)o(ords)g(surrounded)h(b)o(y)f(quotes)
-h(are)f(considered)h(one)g(w)o(ord.)75 1401 y(History)18
-b(expansions)h(are)g(in)o(tro)q(duced)g(b)o(y)f(the)h(app)q(earance)g
-(of)f(the)g(history)h(expansion)g(c)o(haracter,)75 1456
-y(whic)o(h)d(is)g(`)p Fo(!)p Fp(')e(b)o(y)h(default.)75
-1583 y Fi(1.1.1)30 b(Ev)n(en)n(t)21 b(Designators)137
-1687 y Fp(An)16 b(ev)o(en)o(t)f(designator)g(is)g(a)g(reference)h(to)f
-(a)g(command)g(line)i(en)o(try)d(in)i(the)g(history)f(list.)75
-1777 y Fo(!)216 b Fp(Start)16 b(a)g(history)h(substitution,)g(except)h
-(when)f(follo)o(w)o(ed)g(b)o(y)f(a)h(space,)g(tab,)f(the)h(end)g(of)315
-1832 y(the)e(line,)i(`)p Fo(=)p Fp(')d(or)h(`)p Fo(\()p
-Fp('.)75 1919 y Fo(!)p Fj(n)191 b Fp(Refer)15 b(to)f(command)h(line)i
-Fj(n)p Fp(.)75 2006 y Fo(!-)p Fj(n)167 b Fp(Refer)15
-b(to)f(the)i(command)f Fj(n)g Fp(lines)i(bac)o(k.)75
-2094 y Fo(!!)192 b Fp(Refer)15 b(to)f(the)i(previous)f(command.)20
-b(This)c(is)g(a)f(synon)o(ym)g(for)f(`)p Fo(!-1)p Fp('.)75
-2181 y Fo(!)p Fj(string)102 b Fp(Refer)15 b(to)f(the)i(most)e(recen)o
-(t)h(command)g(starting)g(with)g Fj(string)p Fp(.)75
-2268 y Fo(!?)p Fj(string)t Fo([?])315 2323 y Fp(Refer)h(to)g(the)h
-(most)f(recen)o(t)h(command)g(con)o(taining)g Fj(string)p
-Fp(.)25 b(The)17 b(trailing)g(`)p Fo(?)p Fp(')f(ma)o(y)g(b)q(e)315
-2377 y(omitted)f(if)h(the)f Fj(string)k Fp(is)d(follo)o(w)o(ed)f
-(immediately)i(b)o(y)e(a)g(newline.)75 2464 y Fo(^)p
-Fj(string1)t Fo(^)p Fj(string2)t Fo(^)315 2519 y Fp(Quic)o(k)i
-(Substitution.)23 b(Rep)q(eat)16 b(the)g(last)f(command,)h(replacing)h
-Fj(string1)i Fp(with)e Fj(string2)p Fp(.)315 2574 y(Equiv)m(alen)o(t)g
-(to)d Fo(!!:s/)p Fj(string1)t Fo(/)p Fj(string2)t Fo(/)p
-Fp(.)75 2661 y Fo(!#)192 b Fp(The)15 b(en)o(tire)h(command)f(line)i(t)o
-(yp)q(ed)f(so)e(far.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fp(2)1347 b(GNU)15 b(History)g(Library)75
-149 y Fi(1.1.2)30 b(W)-5 b(ord)20 b(Designators)137 247
-y Fp(W)l(ord)d(designators)g(are)g(used)h(to)f(select)h(desired)h(w)o
-(ords)d(from)h(the)g(ev)o(en)o(t.)26 b(A)18 b(`)p Fo(:)p
-Fp(')e(separates)h(the)75 302 y(ev)o(en)o(t)j(sp)q(eci\014cation)h
-(from)e(the)h(w)o(ord)f(designator.)34 b(It)20 b(ma)o(y)f(b)q(e)h
-(omitted)g(if)g(the)g(w)o(ord)f(designator)75 357 y(b)q(egins)f(with)g
-(a)e(`)p Fo(^)p Fp(',)h(`)p Fo($)p Fp(',)f(`)p Fo(*)p
-Fp(',)g(`)p Fo(-)p Fp(',)g(or)h(`)p Fo(\045)p Fp('.)24
-b(W)l(ords)17 b(are)g(n)o(um)o(b)q(ered)g(from)g(the)g(b)q(eginning)i
-(of)e(the)g(line,)75 411 y(with)j(the)g(\014rst)f(w)o(ord)h(b)q(eing)h
-(denoted)f(b)o(y)g(0)f(\(zero\).)33 b(W)l(ords)20 b(are)f(inserted)i
-(in)o(to)f(the)g(curren)o(t)f(line)75 466 y(separated)c(b)o(y)g(single)
-i(spaces.)137 535 y(F)l(or)e(example,)75 616 y Fo(!!)192
-b Fp(designates)18 b(the)g(preceding)i(command.)28 b(When)18
-b(y)o(ou)g(t)o(yp)q(e)g(this,)h(the)f(preceding)h(com-)315
-671 y(mand)c(is)h(rep)q(eated)g(in)g(toto.)75 752 y Fo(!!:$)144
-b Fp(designates)12 b(the)f(last)g(argumen)o(t)f(of)h(the)g(preceding)i
-(command.)19 b(This)11 b(ma)o(y)g(b)q(e)h(shortened)315
-807 y(to)j Fo(!$)p Fp(.)75 887 y Fo(!fi:2)120 b Fp(designates)15
-b(the)g(second)g(argumen)o(t)f(of)g(the)h(most)f(recen)o(t)g(command)h
-(starting)f(with)h(the)315 942 y(letters)g Fo(fi)p Fp(.)137
-1024 y(Here)h(are)f(the)g(w)o(ord)f(designators:)75 1105
-y Fo(0)h(\(zero\))57 b Fp(The)15 b Fo(0)p Fp(th)g(w)o(ord.)20
-b(F)l(or)14 b(man)o(y)h(applications,)h(this)g(is)g(the)f(command)g(w)o
-(ord.)75 1186 y Fj(n)215 b Fp(The)15 b Fj(n)p Fp(th)h(w)o(ord.)75
-1267 y Fo(^)216 b Fp(The)15 b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o
-(ord)g(1.)75 1348 y Fo($)216 b Fp(The)15 b(last)h(argumen)o(t.)75
-1429 y Fo(\045)216 b Fp(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g
-(most)g(recen)o(t)g(`)p Fo(?)p Fj(string)t Fo(?)p Fp(')f(searc)o(h.)75
-1510 y Fj(x)p Fo(-)p Fj(y)168 b Fp(A)15 b(range)g(of)g(w)o(ords;)f(`)p
-Fo(-)p Fj(y)t Fp(')g(abbreviates)i(`)p Fo(0-)p Fj(y)t
-Fp('.)75 1591 y Fo(*)216 b Fp(All)15 b(of)f(the)f(w)o(ords,)g(except)i
-(the)f Fo(0)p Fp(th.)19 b(This)14 b(is)h(a)e(synon)o(ym)h(for)f(`)p
-Fo(1-$)p Fp('.)18 b(It)c(is)g(not)g(an)g(error)315 1645
-y(to)g(use)h(`)p Fo(*)p Fp(')f(if)i(there)e(is)i(just)e(one)h(w)o(ord)f
-(in)i(the)f(ev)o(en)o(t;)f(the)h(empt)o(y)g(string)g(is)g(returned)g
-(in)315 1700 y(that)f(case.)75 1781 y Fj(x)s Fo(*)189
-b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p Fp(')75 1862
-y Fj(x)p Fo(-)192 b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p
-Fp(')e(lik)o(e)i(`)p Fj(x)s Fo(*)p Fp(',)e(but)i(omits)f(the)g(last)g
-(w)o(ord.)137 1943 y(If)i(a)g(w)o(ord)f(designator)h(is)h(supplied)h
-(without)e(an)g(ev)o(en)o(t)f(sp)q(eci\014cation,)j(the)e(previous)h
-(command)75 1998 y(is)e(used)f(as)g(the)h(ev)o(en)o(t.)75
-2113 y Fi(1.1.3)30 b(Mo)r(di\014ers)137 2210 y Fp(After)10
-b(the)h(optional)g(w)o(ord)e(designator,)i(y)o(ou)f(can)h(add)f(a)g
-(sequence)i(of)e(one)g(or)g(more)g(of)g(the)g(follo)o(wing)75
-2265 y(mo)q(di\014ers,)16 b(eac)o(h)f(preceded)i(b)o(y)e(a)g(`)p
-Fo(:)p Fp('.)75 2346 y Fo(h)216 b Fp(Remo)o(v)o(e)14
-b(a)h(trailing)h(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the)
-f(head.)75 2427 y Fo(t)216 b Fp(Remo)o(v)o(e)14 b(all)i(leading)h
-(pathname)e(comp)q(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)75
-2508 y Fo(r)216 b Fp(Remo)o(v)o(e)14 b(a)h(trailing)h(su\016x)f(of)g
-(the)g(form)g(`)p Fo(.)p Fj(su\016x)s Fp(',)f(lea)o(ving)i(the)f
-(basename.)75 2589 y Fo(e)216 b Fp(Remo)o(v)o(e)14 b(all)i(but)g(the)f
-(trailing)h(su\016x.)75 2670 y Fo(p)216 b Fp(Prin)o(t)15
-b(the)g(new)h(command)f(but)g(do)g(not)g(execute)h(it.)p
-eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1007 b(3)75 149 y Fo(s/)p Fj(old)r Fo(/)p Fj(new)t
-Fo(/)315 204 y Fp(Substitute)17 b Fj(new)j Fp(for)c(the)h(\014rst)e(o)q
-(ccurrence)j(of)e Fj(old)i Fp(in)f(the)g(ev)o(en)o(t)f(line.)25
-b(An)o(y)16 b(delimiter)315 259 y(ma)o(y)c(b)q(e)h(used)g(in)g(place)g
-(of)f(`)p Fo(/)p Fp('.)18 b(The)13 b(delimiter)h(ma)o(y)e(b)q(e)h
-(quoted)f(in)i Fj(old)g Fp(and)f Fj(new)k Fp(with)12
-b(a)315 314 y(single)j(bac)o(kslash.)20 b(If)15 b(`)p
-Fo(&)p Fp(')e(app)q(ears)h(in)h Fj(new)p Fp(,)f(it)g(is)h(replaced)g(b)
-o(y)f Fj(old)p Fp(.)20 b(A)14 b(single)i(bac)o(kslash)315
-369 y(will)j(quote)e(the)h(`)p Fo(&)p Fp('.)25 b(The)17
-b(\014nal)i(delimiter)g(is)f(optional)g(if)f(it)h(is)g(the)f(last)g(c)o
-(haracter)g(on)315 423 y(the)e(input)h(line.)75 503 y
-Fo(&)216 b Fp(Rep)q(eat)15 b(the)g(previous)h(substitution.)75
-583 y Fo(g)216 b Fp(Cause)19 b(c)o(hanges)h(to)e(b)q(e)i(applied)h(o)o
-(v)o(er)e(the)g(en)o(tire)h(ev)o(en)o(t)f(line.)34 b(Used)20
-b(in)g(conjunction)315 638 y(with)c(`)p Fo(s)p Fp(',)d(as)i(in)h
-Fo(gs/)p Fj(old)r Fo(/)p Fj(new)t Fo(/)p Fp(,)f(or)g(with)g(`)p
-Fo(&)p Fp('.)p eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fp(4)1347 b(GNU)15 b(History)g(Library)p
-eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(5)75 149 y Fl(2)41 b(Programming)28 b(with)e(GNU)i
-(History)137 269 y Fp(This)17 b(c)o(hapter)f(describ)q(es)i(ho)o(w)e
-(to)f(in)o(terface)i(programs)e(that)g(y)o(ou)h(write)g(with)h(the)f
-Fk(gnu)g Fp(History)75 324 y(Library)l(.)24 b(It)17 b(should)g(b)q(e)g
-(considered)h(a)e(tec)o(hnical)i(guide.)25 b(F)l(or)15
-b(information)i(on)f(the)h(in)o(teractiv)o(e)g(use)75
-379 y(of)e Fk(gnu)g Fp(History)l(,)g(see)g(Chapter)g(1)g([Using)g
-(History)g(In)o(teractiv)o(ely],)h(page)f(1.)75 509 y
-Fn(2.1)33 b(In)n(tro)r(duction)24 b(to)e(History)137
-607 y Fp(Man)o(y)11 b(programs)f(read)h(input)i(from)d(the)i(user)f(a)g
-(line)i(at)e(a)g(time.)19 b(The)12 b Fk(gnu)f Fp(History)g(library)h
-(is)g(able)75 661 y(to)i(k)o(eep)g(trac)o(k)g(of)g(those)g(lines,)i
-(asso)q(ciate)e(arbitrary)g(data)g(with)g(eac)o(h)h(line,)h(and)e
-(utilize)j(information)75 716 y(from)d(previous)i(lines)h(in)f(comp)q
-(osing)g(new)f(ones.)137 784 y(The)f(programmer)f(using)h(the)g
-(History)g(library)g(has)g(a)o(v)m(ailable)h(functions)g(for)e(remem)o
-(b)q(ering)h(lines)75 839 y(on)c(a)g(history)h(list,)g(asso)q(ciating)g
-(arbitrary)f(data)f(with)i(a)f(line,)j(remo)o(ving)d(lines)i(from)d
-(the)i(list,)h(searc)o(hing)75 894 y(through)17 b(the)h(list)g(for)f(a)
-h(line)h(con)o(taining)f(an)g(arbitrary)f(text)g(string,)h(and)g
-(referencing)h(an)o(y)e(line)i(in)75 949 y(the)c(list)i(directly)l(.)22
-b(In)16 b(addition,)g(a)f(history)g Fj(expansion)h Fp(function)h(is)e
-(a)o(v)m(ailable)i(whic)o(h)g(pro)o(vides)f(for)e(a)75
-1003 y(consisten)o(t)h(user)h(in)o(terface)f(across)g(di\013eren)o(t)g
-(programs.)137 1072 y(The)f(user)h(using)f(programs)f(written)h(with)g
-(the)g(History)g(library)h(has)f(the)g(b)q(ene\014t)h(of)e(a)h
-(consisten)o(t)75 1126 y(user)20 b(in)o(terface)f(with)h(a)f(set)h(of)f
-(w)o(ell-kno)o(wn)h(commands)g(for)e(manipulating)k(the)d(text)g(of)g
-(previous)75 1181 y(lines)c(and)f(using)h(that)e(text)g(in)i(new)f
-(commands.)19 b(The)14 b(basic)h(history)e(manipulation)j(commands)d
-(are)75 1236 y(similar)j(to)f(the)g(history)g(substitution)h(pro)o
-(vided)g(b)o(y)g Fo(csh)p Fp(.)137 1304 y(If)f(the)g(programmer)f
-(desires,)h(he)g(can)g(use)g(the)g(Readline)h(library)l(,)g(whic)o(h)f
-(includes)j(some)c(history)75 1359 y(manipulation)j(b)o(y)e(default,)g
-(and)h(has)f(the)g(added)h(adv)m(an)o(tage)f(of)f(command)h(line)i
-(editing.)137 1427 y(Before)i(declaring)i(an)o(y)d(functions)i(using)g
-(an)o(y)f(functionalit)o(y)h(the)f(History)g(library)h(pro)o(vides)f
-(in)75 1482 y(other)14 b(co)q(de,)h(an)f(application)i(writer)e(should)
-i(include)g(the)f(\014le)g Fo(<readline/history.h>)d
-Fp(in)j(an)o(y)f(\014le)75 1537 y(that)d(uses)h(the)h(History)e
-(library's)i(features.)18 b(It)12 b(supplies)i(extern)e(declarations)h
-(for)e(all)i(of)f(the)g(library's)75 1591 y(public)17
-b(functions)f(and)g(v)m(ariables,)g(and)f(declares)h(all)g(of)f(the)h
-(public)h(data)d(structures.)75 1722 y Fn(2.2)33 b(History)22
-b(Storage)137 1819 y Fp(The)16 b(history)f(list)h(is)g(an)f(arra)o(y)f
-(of)g(history)i(en)o(tries.)k(A)15 b(history)g(en)o(try)g(is)h
-(declared)g(as)f(follo)o(ws:)195 1885 y Fo(typedef)23
-b(void)g(*histdata_t;)195 1988 y(typedef)g(struct)g(_hist_entry)f({)243
-2040 y(char)h(*line;)243 2092 y(histdata_t)f(data;)195
-2144 y(})i(HIST_ENTRY;)137 2212 y Fp(The)16 b(history)f(list)h(itself)g
-(migh)o(t)f(therefore)g(b)q(e)h(declared)g(as)195 2277
-y Fo(HIST_ENTRY)22 b(**the_history_list;)137 2345 y Fp(The)16
-b(state)e(of)h(the)g(History)g(library)h(is)g(encapsulated)g(in)o(to)f
-(a)g(single)i(structure:)195 2411 y Fo(/*)219 2462 y(*)24
-b(A)f(structure)g(used)g(to)h(pass)f(around)g(the)h(current)f(state)g
-(of)g(the)h(history.)219 2514 y(*/)195 2566 y(typedef)f(struct)g
-(_hist_state)f({)243 2618 y(HIST_ENTRY)g(**entries;)h(/*)g(Pointer)g
-(to)h(the)f(entries)g(themselves.)g(*/)243 2670 y(int)g(offset;)262
-b(/*)23 b(The)h(location)f(pointer)f(within)h(this)h(array.)f(*/)p
-eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fp(6)1347 b(GNU)15 b(History)g(Library)243
-149 y Fo(int)23 b(length;)262 b(/*)23 b(Number)g(of)h(elements)f
-(within)g(this)g(array.)g(*/)243 201 y(int)g(size;)310
-b(/*)23 b(Number)g(of)h(slots)f(allocated)g(to)g(this)h(array.)f(*/)243
-253 y(int)g(flags;)195 305 y(})h(HISTORY_STATE;)137 372
-y Fp(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g(includes)j
-Fo(HS_STIFLED)p Fp(,)13 b(the)i(history)h(has)f(b)q(een)h(sti\015ed.)75
-498 y Fn(2.3)33 b(History)22 b(F)-6 b(unctions)137 593
-y Fp(This)13 b(section)g(describ)q(es)h(the)e(calling)i(sequence)g(for)
-e(the)g(v)m(arious)h(functions)g(exp)q(orted)f(b)o(y)h(the)f
-Fk(gnu)75 648 y Fp(History)j(library)l(.)75 758 y Fi(2.3.1)30
-b(Initializing)20 b(History)h(and)f(State)g(Managemen)n(t)137
-853 y Fp(This)e(section)g(describ)q(es)h(functions)f(used)g(to)e
-(initialize)21 b(and)c(manage)g(the)g(state)g(of)g(the)g(History)75
-908 y(library)f(when)g(y)o(ou)f(w)o(an)o(t)f(to)g(use)i(the)f(history)g
-(functions)h(in)g(y)o(our)f(program.)1762 1021 y(F)l(unction)-1861
-b Fh(void)20 b Fg(using)p 333 1021 18 3 v 20 w(history)j
-Ff(\()p Fo(void)p Ff(\))195 1075 y Fp(Begin)e(a)f(session)g(in)h(whic)o
-(h)g(the)f(history)g(functions)g(migh)o(t)g(b)q(e)h(used.)34
-b(This)21 b(initializes)i(the)195 1130 y(in)o(teractiv)o(e)16
-b(v)m(ariables.)1762 1243 y(F)l(unction)-1861 b Fh(HISTORY_STATE)21
-b(*)e Fg(history)p 657 1243 V 21 w(get)p 755 1243 V 21
-w(history)p 951 1243 V 21 w(state)j Ff(\()p Fo(void)p
-Ff(\))195 1298 y Fp(Return)15 b(a)g(structure)g(describing)i(the)e
-(curren)o(t)g(state)f(of)h(the)g(input)i(history)l(.)1762
-1411 y(F)l(unction)-1861 b Fh(void)20 b Fg(history)p
-377 1411 V 20 w(set)p 468 1411 V 21 w(history)p 664 1411
-V 21 w(state)j Ff(\()p Fo(HISTORY_STATE)13 b(*state)p
-Ff(\))195 1466 y Fp(Set)i(the)h(state)e(of)h(the)g(history)g(list)h
-(according)g(to)e Fj(state)p Fp(.)75 1575 y Fi(2.3.2)30
-b(History)20 b(List)h(Managemen)n(t)137 1671 y Fp(These)11
-b(functions)h(manage)e(individual)k(en)o(tries)d(on)g(the)g(history)f
-(list,)i(or)f(set)f(parameters)g(managing)75 1725 y(the)15
-b(list)h(itself.)1762 1838 y(F)l(unction)-1861 b Fh(void)20
-b Fg(add)p 294 1838 V 20 w(history)j Ff(\()p Fo(const)14
-b(char)g(*string)p Ff(\))195 1893 y Fp(Place)i Fj(string)i
-Fp(at)d(the)g(end)h(of)e(the)h(history)g(list.)21 b(The)15
-b(asso)q(ciated)g(data)g(\014eld)h(\(if)f(an)o(y\))f(is)i(set)f(to)195
-1948 y Fo(NULL)p Fp(.)1762 2061 y(F)l(unction)-1861 b
-Fh(HIST_ENTRY)21 b(*)e Fg(remo)n(v)n(e)p 584 2061 V 20
-w(history)k Ff(\()p Fo(int)14 b(which)p Ff(\))195 2115
-y Fp(Remo)o(v)o(e)22 b(history)g(en)o(try)h(at)f(o\013set)g
-Fj(whic)o(h)h Fp(from)f(the)h(history)l(.)43 b(The)23
-b(remo)o(v)o(ed)f(elemen)o(t)h(is)195 2170 y(returned)16
-b(so)e(y)o(ou)h(can)h(free)f(the)g(line,)i(data,)d(and)h(con)o(taining)
-h(structure.)1762 2283 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
-b(*)e Fg(replace)p 580 2283 V 22 w(history)p 777 2283
-V 20 w(en)n(try)24 b Ff(\()p Fo(int)14 b(which,)g(const)h(char)283
-2338 y(*line,)f(histdata_t)g(data)p Ff(\))195 2393 y
-Fp(Mak)o(e)f(the)h(history)g(en)o(try)f(at)g(o\013set)g
-Fj(whic)o(h)i Fp(ha)o(v)o(e)e Fj(line)18 b Fp(and)c Fj(data)p
-Fp(.)19 b(This)14 b(returns)g(the)g(old)g(en)o(try)195
-2448 y(so)19 b(y)o(ou)f(can)i(disp)q(ose)g(of)e(the)i(data.)30
-b(In)20 b(the)f(case)g(of)g(an)g(in)o(v)m(alid)i Fj(whic)o(h)p
-Fp(,)g(a)d Fo(NULL)h Fp(p)q(oin)o(ter)g(is)195 2502 y(returned.)1762
-2615 y(F)l(unction)-1861 b Fh(void)20 b Fg(clear)p 320
-2615 V 21 w(history)j Ff(\()p Fo(void)p Ff(\))195 2670
-y Fp(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f
-(en)o(tries.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(7)1762 149 y(F)l(unction)-1861 b Fh(void)20
-b Fg(sti\015e)p 320 149 18 3 v 21 w(history)j Ff(\()p
-Fo(int)14 b(max)p Ff(\))195 204 y Fp(Sti\015e)i(the)f(history)h(list,)f
-(remem)o(b)q(ering)h(only)g(the)f(last)g Fj(max)j Fp(en)o(tries.)1762
-302 y(F)l(unction)-1861 b Fh(int)20 b Fg(unsti\015e)p
-358 302 V 21 w(history)i Ff(\()p Fo(void)p Ff(\))195
-357 y Fp(Stop)14 b(sti\015ing)g(the)g(history)l(.)20
-b(This)14 b(returns)f(the)h(previously-set)h(maxim)o(um)f(n)o(um)o(b)q
-(er)g(of)f(history)195 411 y(en)o(tries)h(\(as)e(set)i(b)o(y)f
-Fo(stifle_history\(\))p Fp(\).)k(The)c(v)m(alue)i(is)f(p)q(ositiv)o(e)g
-(if)g(the)g(history)f(w)o(as)f(sti\015ed,)195 466 y(negativ)o(e)j(if)h
-(it)f(w)o(asn't.)1762 564 y(F)l(unction)-1861 b Fh(int)20
-b Fg(history)p 351 564 V 20 w(is)p 409 564 V 21 w(sti\015ed)k
-Ff(\()p Fo(void)p Ff(\))195 619 y Fp(Returns)15 b(non-zero)g(if)h(the)f
-(history)g(is)h(sti\015ed,)g(zero)f(if)g(it)h(is)g(not.)75
-719 y Fi(2.3.3)30 b(Information)19 b(Ab)r(out)i(the)f(History)h(List)
-137 811 y Fp(These)13 b(functions)h(return)f(information)g(ab)q(out)f
-(the)h(en)o(tire)h(history)e(list)i(or)e(individual)k(list)e(en)o
-(tries.)1762 909 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
-b(**)e Fg(history)p 605 909 V 21 w(list)24 b Ff(\()p
-Fo(void)p Ff(\))195 964 y Fp(Return)15 b(a)g Fo(NULL)f
-Fp(terminated)i(arra)o(y)e(of)h Fo(HIST_ENTRY)f(*)h Fp(whic)o(h)h(is)f
-(the)h(curren)o(t)f(input)h(history)l(.)195 1018 y(Elemen)o(t)g(0)f(of)
-f(this)i(list)g(is)g(the)f(b)q(eginning)i(of)e(time.)20
-b(If)c(there)f(is)h(no)f(history)l(,)g(return)g Fo(NULL)p
-Fp(.)1762 1116 y(F)l(unction)-1861 b Fh(int)20 b Fg(where)p
-325 1116 V 20 w(history)j Ff(\()p Fo(void)p Ff(\))195
-1171 y Fp(Returns)15 b(the)g(o\013set)f(of)h(the)g(curren)o(t)g
-(history)g(elemen)o(t.)1762 1268 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(curren)n(t)p 587 1268 V 21
-w(history)k Ff(\()p Fo(void)p Ff(\))195 1323 y Fp(Return)12
-b(the)h(history)f(en)o(try)g(at)g(the)g(curren)o(t)h(p)q(osition,)g(as)
-f(determined)i(b)o(y)e Fo(where_history\(\))p Fp(.)195
-1378 y(If)j(there)h(is)f(no)h(en)o(try)e(there,)h(return)g(a)g
-Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1475 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(history)p 579 1475 V 21 w(get)j
-Ff(\()p Fo(int)15 b(offset)p Ff(\))195 1530 y Fp(Return)20
-b(the)h(history)g(en)o(try)f(at)h(p)q(osition)g Fj(o\013set)p
-Fp(,)g(starting)f(from)g Fo(history_base)f Fp(\(see)i(Sec-)195
-1585 y(tion)15 b(2.4)f([History)g(V)l(ariables],)h(page)g(10\).)j(If)d
-(there)g(is)g(no)g(en)o(try)f(there,)h(or)f(if)h Fj(o\013set)g
-Fp(is)g(greater)195 1640 y(than)g(the)g(history)g(length,)h(return)f(a)
-g Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1737 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 1737 V 20 w(total)p 487
-1737 V 22 w(b)n(ytes)j Ff(\()p Fo(void)p Ff(\))195 1792
-y Fp(Return)13 b(the)h(n)o(um)o(b)q(er)g(of)g(b)o(ytes)f(that)g(the)h
-(primary)g(history)g(en)o(tries)g(are)g(using.)20 b(This)14
-b(function)195 1847 y(returns)h(the)g(sum)h(of)e(the)i(lengths)f(of)g
-(all)h(the)g(lines)g(in)g(the)g(history)l(.)75 1947 y
-Fi(2.3.4)30 b(Mo)n(ving)21 b(Around)f(the)h(History)g(List)137
-2040 y Fp(These)16 b(functions)g(allo)o(w)f(the)g(curren)o(t)h(index)g
-(in)o(to)f(the)h(history)f(list)h(to)e(b)q(e)i(set)f(or)g(c)o(hanged.)
-1762 2137 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
-351 2137 V 20 w(set)p 442 2137 V 21 w(p)r(os)h Ff(\()p
-Fo(int)15 b(pos)p Ff(\))195 2192 y Fp(Set)j(the)h(curren)o(t)f(history)
-g(o\013set)g(to)f Fj(p)q(os)p Fp(,)i(an)f(absolute)h(index)h(in)o(to)e
-(the)g(list.)30 b(Returns)18 b(1)g(on)195 2247 y(success,)d(0)g(if)h
-Fj(p)q(os)h Fp(is)f(less)g(than)f(zero)g(or)g(greater)f(than)h(the)g(n)
-o(um)o(b)q(er)h(of)e(history)i(en)o(tries.)1762 2344
-y(F)l(unction)-1861 b Fh(HIST_ENTRY)21 b(*)e Fg(previous)p
-615 2344 V 20 w(history)k Ff(\()p Fo(void)p Ff(\))195
-2399 y Fp(Bac)o(k)14 b(up)h(the)g(curren)o(t)f(history)g(o\013set)g(to)
-f(the)i(previous)g(history)f(en)o(try)l(,)g(and)h(return)f(a)g(p)q(oin)
-o(ter)195 2454 y(to)h(that)f(en)o(try)l(.)20 b(If)15
-b(there)g(is)h(no)f(previous)h(en)o(try)l(,)f(return)g(a)g
-Fo(NULL)g Fp(p)q(oin)o(ter.)1762 2552 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(next)p 514 2552 V 21 w(history)k
-Ff(\()p Fo(void)p Ff(\))195 2606 y Fp(Mo)o(v)o(e)17 b(the)h(curren)o(t)
-f(history)h(o\013set)f(forw)o(ard)f(to)h(the)h(next)g(history)g(en)o
-(try)l(,)g(and)g(return)f(the)h(a)195 2661 y(p)q(oin)o(ter)e(to)e(that)
-h(en)o(try)l(.)k(If)d(there)f(is)h(no)f(next)g(en)o(try)l(,)g(return)g
-(a)g Fo(NULL)g Fp(p)q(oin)o(ter.)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fp(8)1347 b(GNU)15 b(History)g(Library)75
-149 y Fi(2.3.5)30 b(Searc)n(hing)21 b(the)f(History)h(List)137
-245 y Fp(These)14 b(functions)g(allo)o(w)g(searc)o(hing)g(of)e(the)i
-(history)f(list)h(for)f(en)o(tries)h(con)o(taining)g(a)f(sp)q(eci\014c)
-i(string.)75 300 y(Searc)o(hing)f(ma)o(y)g(b)q(e)g(p)q(erformed)g(b)q
-(oth)g(forw)o(ard)e(and)i(bac)o(kw)o(ard)f(from)g(the)h(curren)o(t)g
-(history)f(p)q(osition.)75 355 y(The)j(searc)o(h)f(ma)o(y)g(b)q(e)i
-Fj(anc)o(hored)p Fp(,)e(meaning)h(that)f(the)h(string)g(m)o(ust)f(matc)
-o(h)g(at)g(the)h(b)q(eginning)i(of)d(the)75 410 y(history)g(en)o(try)l
-(.)1762 524 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
-351 524 18 3 v 20 w(searc)n(h)j Ff(\()p Fo(const)14 b(char)h(*string,)f
-(int)h(direction)p Ff(\))195 578 y Fp(Searc)o(h)g(the)f(history)g(for)g
-Fj(string)p Fp(,)g(starting)g(at)g(the)h(curren)o(t)f(history)g
-(o\013set.)19 b(If)c Fj(direction)g Fp(is)g(less)195
-633 y(than)20 b(0,)g(then)h(the)f(searc)o(h)f(is)i(through)f(previous)g
-(en)o(tries,)i(otherwise)e(through)f(subsequen)o(t)195
-688 y(en)o(tries.)h(If)c Fj(string)j Fp(is)d(found,)f(then)g(the)h
-(curren)o(t)f(history)g(index)h(is)g(set)f(to)g(that)f(history)h(en)o
-(try)l(,)195 743 y(and)i(the)g(v)m(alue)h(returned)f(is)g(the)g
-(o\013set)e(in)j(the)f(line)h(of)e(the)h(en)o(try)g(where)g
-Fj(string)j Fp(w)o(as)c(found.)195 798 y(Otherwise,)g(nothing)f(is)h(c)
-o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 912 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 912 V 20 w(searc)n(h)p
-527 912 V 21 w(pre\014x)i Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h
-(direction)p Ff(\))195 966 y Fp(Searc)o(h)20 b(the)h(history)f(for)g
-Fj(string)p Fp(,)h(starting)e(at)h(the)g(curren)o(t)h(history)f
-(o\013set.)34 b(The)20 b(searc)o(h)g(is)195 1021 y(anc)o(hored:)g(matc)
-o(hing)14 b(lines)j(m)o(ust)d(b)q(egin)i(with)f Fj(string)p
-Fp(.)20 b(If)15 b Fj(direction)h Fp(is)f(less)g(than)g(0,)f(then)h(the)
-195 1076 y(searc)o(h)g(is)i(through)e(previous)h(en)o(tries,)g
-(otherwise)g(through)f(subsequen)o(t)h(en)o(tries.)22
-b(If)16 b Fj(string)j Fp(is)195 1131 y(found,)e(then)g(the)f(curren)o
-(t)h(history)f(index)i(is)f(set)f(to)g(that)g(en)o(try)l(,)g(and)h(the)
-f(return)h(v)m(alue)h(is)f(0.)195 1186 y(Otherwise,)f(nothing)f(is)h(c)
-o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 1300 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 1300 V 20 w(searc)n(h)p
-527 1300 V 21 w(p)r(os)h Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h
-(direction,)f(int)283 1355 y(pos)p Ff(\))195 1409 y Fp(Searc)o(h)j(for)
-g Fj(string)k Fp(in)d(the)f(history)g(list,)h(starting)e(at)h
-Fj(p)q(os)p Fp(,)g(an)g(absolute)h(index)g(in)o(to)f(the)h(list.)195
-1464 y(If)g Fj(direction)i Fp(is)e(negativ)o(e,)h(the)f(searc)o(h)g
-(pro)q(ceeds)g(bac)o(kw)o(ard)g(from)f Fj(p)q(os)p Fp(,)h(otherwise)h
-(forw)o(ard.)195 1519 y(Returns)j(the)g(absolute)g(index)h(of)f(the)g
-(history)g(elemen)o(t)h(where)f Fj(string)k Fp(w)o(as)21
-b(found,)j(or)d(-1)195 1574 y(otherwise.)75 1684 y Fi(2.3.6)30
-b(Managing)20 b(the)g(History)h(File)137 1780 y Fp(The)16
-b(History)g(library)h(can)e(read)h(the)g(history)g(from)f(and)h(write)g
-(it)g(to)f(a)h(\014le.)22 b(This)17 b(section)f(do)q(cu-)75
-1835 y(men)o(ts)f(the)g(functions)h(for)f(managing)g(a)g(history)g
-(\014le.)1762 1949 y(F)l(unction)-1861 b Fh(int)20 b
-Fg(read)p 286 1949 V 20 w(history)i Ff(\()p Fo(const)15
-b(char)f(*filename)p Ff(\))195 2003 y Fp(Add)h(the)g(con)o(ten)o(ts)f
-(of)h Fj(\014lename)j Fp(to)c(the)h(history)g(list,)g(a)g(line)h(at)f
-(a)f(time.)20 b(If)15 b Fj(\014lename)k Fp(is)c Fo(NULL)p
-Fp(,)195 2058 y(then)h(read)f(from)f(`)p Fo(~/.history)p
-Fp('.)k(Returns)d(0)f(if)i(successful,)g(or)f Fo(errno)f
-Fp(if)i(not.)1762 2172 y(F)l(unction)-1861 b Fh(int)20
-b Fg(read)p 286 2172 V 20 w(history)p 481 2172 V 20 w(range)i
-Ff(\()p Fo(const)14 b(char)h(*filename,)f(int)h(from,)f(int)h(to)p
-Ff(\))195 2227 y Fp(Read)f(a)f(range)h(of)f(lines)j(from)d
-Fj(\014lename)p Fp(,)i(adding)g(them)f(to)f(the)h(history)g(list.)20
-b(Start)13 b(reading)i(at)195 2282 y(line)g Fj(from)d
-Fp(and)h(end)h(at)f Fj(to)p Fp(.)18 b(If)c Fj(from)e
-Fp(is)i(zero,)f(start)f(at)g(the)h(b)q(eginning.)22 b(If)13
-b Fj(to)i Fp(is)e(less)h(than)f Fj(from)p Fp(,)195 2337
-y(then)i(read)g(un)o(til)i(the)e(end)g(of)g(the)g(\014le.)21
-b(If)15 b Fj(\014lename)k Fp(is)d Fo(NULL)p Fp(,)e(then)h(read)g(from)f
-(`)p Fo(~/.history)p Fp('.)195 2392 y(Returns)h(0)g(if)g(successful,)h
-(or)f Fo(errno)g Fp(if)g(not.)1762 2506 y(F)l(unction)-1861
-b Fh(int)20 b Fg(write)p 304 2506 V 22 w(history)i Ff(\()p
-Fo(const)15 b(char)f(*filename)p Ff(\))195 2560 y Fp(W)l(rite)k(the)f
-(curren)o(t)g(history)h(to)f Fj(\014lename)p Fp(,)h(o)o(v)o(erwriting)f
-Fj(\014lename)k Fp(if)d(necessary)l(.)27 b(If)18 b Fj(\014lename)195
-2615 y Fp(is)f Fo(NULL)p Fp(,)e(then)h(write)h(the)f(history)g(list)h
-(to)e(`)p Fo(~/.history)p Fp('.)21 b(Returns)16 b(0)f(on)h(success,)h
-(or)f Fo(errno)195 2670 y Fp(on)f(a)g(read)g(or)g(write)g(error.)p
-eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(9)1762 149 y(F)l(unction)-1861 b Fh(int)20
-b Fg(app)r(end)p 360 149 18 3 v 19 w(history)j Ff(\()p
-Fo(int)14 b(nelements,)g(const)h(char)f(*filename)p Ff(\))195
-204 y Fp(App)q(end)19 b(the)e(last)g Fj(nelemen)o(ts)k
-Fp(of)16 b(the)i(history)f(list)h(to)f Fj(\014lename)p
-Fp(.)27 b(If)18 b Fj(\014lename)j Fp(is)d Fo(NULL)p Fp(,)f(then)195
-259 y(app)q(end)f(to)f(`)p Fo(~/.history)p Fp('.)j(Returns)c(0)h(on)g
-(success,)h(or)e Fo(errno)h Fp(on)g(a)g(read)g(or)g(write)g(error.)1762
-404 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p 351
-404 V 20 w(truncate)p 582 404 V 21 w(\014le)k Ff(\()p
-Fo(const)14 b(char)h(*filename,)e(int)i(nlines)p Ff(\))195
-459 y Fp(T)l(runcate)k(the)h(history)f(\014le)h Fj(\014lename)p
-Fp(,)h(lea)o(ving)f(only)g(the)f(last)g Fj(nlines)k Fp(lines.)34
-b(If)20 b Fj(\014lename)i Fp(is)195 513 y Fo(NULL)p Fp(,)14
-b(then)i(`)p Fo(~/.history)p Fp(')d(is)j(truncated.)j(Returns)c(0)g(on)
-g(success,)h(or)e Fo(errno)h Fp(on)g(failure.)75 644
-y Fi(2.3.7)30 b(History)20 b(Expansion)137 750 y Fp(These)c(functions)g
-(implemen)o(t)g(history)f(expansion.)1762 895 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 895 V 20 w(expand)j Ff(\()p
-Fo(char)14 b(*string,)g(char)h(**output)p Ff(\))195 949
-y Fp(Expand)j Fj(string)p Fp(,)f(placing)h(the)g(result)f(in)o(to)g
-Fj(output)p Fp(,)h(a)e(p)q(oin)o(ter)i(to)f(a)g(string)g(\(see)g
-(Section)h(1.1)195 1004 y([History)d(In)o(teraction],)f(page)h(1\).)20
-b(Returns:)195 1098 y Fo(0)216 b Fp(If)19 b(no)g(expansions)g(to)q(ok)f
-(place)i(\(or,)e(if)i(the)e(only)i(c)o(hange)e(in)i(the)f(text)f(w)o
-(as)g(the)435 1152 y(remo)o(v)m(al)d(of)g(escap)q(e)h(c)o(haracters)e
-(preceding)i(the)f(history)g(expansion)h(c)o(haracter\);)195
-1241 y Fo(1)216 b Fp(if)16 b(expansions)g(did)g(tak)o(e)e(place;)195
-1330 y Fo(-1)192 b Fp(if)16 b(there)f(w)o(as)f(an)h(error)g(in)h
-(expansion;)195 1419 y Fo(2)216 b Fp(if)14 b(the)g(returned)g(line)i
-(should)f(b)q(e)f(displa)o(y)o(ed,)h(but)f(not)f(executed,)i(as)e(with)
-h(the)g Fo(:p)435 1474 y Fp(mo)q(di\014er)i(\(see)f(Section)h(1.1.3)e
-([Mo)q(di\014ers],)h(page)g(2\).)195 1568 y(If)g(an)h(error)e(o)q
-(curred)i(in)g(expansion,)f(then)h Fj(output)g Fp(con)o(tains)f(a)g
-(descriptiv)o(e)i(error)d(message.)1762 1713 y(F)l(unction)-1861
-b Fh(char)20 b(*)f Fg(get)p 324 1713 V 21 w(history)p
-520 1713 V 20 w(ev)n(en)n(t)25 b Ff(\()p Fo(const)14
-b(char)h(*string,)f(int)g(*cindex,)g(int)283 1767 y(qchar)p
-Ff(\))195 1822 y Fp(Returns)22 b(the)h(text)f(of)h(the)f(history)h(ev)o
-(en)o(t)g(b)q(eginning)h(at)f Fj(string)j Fo(+)d Fj(*cindex)p
-Fp(.)43 b Fj(*cindex)27 b Fp(is)195 1877 y(mo)q(di\014ed)16
-b(to)e(p)q(oin)o(t)h(to)f(after)g(the)h(ev)o(en)o(t)f(sp)q(eci\014er.)
-22 b(A)o(t)14 b(function)h(en)o(try)l(,)g Fj(cindex)k
-Fp(p)q(oin)o(ts)c(to)f(the)195 1932 y(index)19 b(in)o(to)f
-Fj(string)k Fp(where)c(the)g(history)g(ev)o(en)o(t)g(sp)q
-(eci\014cation)h(b)q(egins.)30 b Fj(qc)o(har)21 b Fp(is)d(a)g(c)o
-(haracter)195 1987 y(that)13 b(is)h(allo)o(w)o(ed)g(to)e(end)i(the)g
-(ev)o(en)o(t)f(sp)q(eci\014cation)j(in)e(addition)g(to)f(the)h
-(\\normal")f(terminating)195 2041 y(c)o(haracters.)1762
-2186 y(F)l(unction)-1861 b Fh(char)20 b(**)f Fg(history)p
-448 2186 V 21 w(tok)n(enize)25 b Ff(\()p Fo(const)14
-b(char)h(*string)p Ff(\))195 2241 y Fp(Return)g(an)g(arra)o(y)g(of)g
-(tok)o(ens)g(parsed)g(out)g(of)g Fj(string)p Fp(,)g(m)o(uc)o(h)h(as)f
-(the)g(shell)i(migh)o(t.)k(The)15 b(tok)o(ens)195 2296
-y(are)h(split)h(on)e(the)h(c)o(haracters)g(in)g(the)g
-Fj(history)p 1007 2296 14 2 v 17 w(w)o(ord)p 1122 2296
-V 15 w(delimiters)k Fp(v)m(ariable,)d(and)f(shell)i(quoting)195
-2351 y(con)o(v)o(en)o(tions)d(are)g(ob)q(ey)o(ed.)1762
-2496 y(F)l(unction)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 2496 18 3 v 21 w(arg)p 524 2496 V 19 w(extract)24
-b Ff(\()p Fo(int)14 b(first,)h(int)g(last,)f(const)g(char)283
-2550 y(*string)p Ff(\))195 2605 y Fp(Extract)19 b(a)h(string)g(segmen)o
-(t)g(consisting)h(of)f(the)g Fj(\014rst)h Fp(through)f
-Fj(last)h Fp(argumen)o(ts)e(presen)o(t)h(in)195 2660
-y Fj(string)p Fp(.)g(Argumen)o(ts)15 b(are)f(split)j(using)f
-Fo(history_tokenize)p Fp(.)p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fp(10)1324 b(GNU)15 b(History)g(Library)75
-149 y Fn(2.4)33 b(History)22 b(V)-6 b(ariables)137 251
-y Fp(This)18 b(section)f(describ)q(es)i(the)e(externally-visible)k(v)m
-(ariables)d(exp)q(orted)f(b)o(y)g(the)g Fk(gnu)g Fp(History)g(Li-)75
-306 y(brary)l(.)1773 438 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 438 18 3 v 20 w(base)195 493 y Fp(The)15
-b(logical)i(o\013set)d(of)h(the)g(\014rst)g(en)o(try)g(in)h(the)f
-(history)g(list.)1773 625 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 625 V 20 w(length)195 680 y Fp(The)15
-b(n)o(um)o(b)q(er)h(of)f(en)o(tries)g(curren)o(tly)h(stored)f(in)h(the)
-f(history)g(list.)1773 812 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 812 V 20 w(max)p 478 812 V 20 w(en)n(tries)195
-867 y Fp(The)j(maxim)o(um)g(n)o(um)o(b)q(er)g(of)g(history)g(en)o
-(tries.)43 b(This)24 b(m)o(ust)e(b)q(e)i(c)o(hanged)f(using)h
-Fo(stifle_)195 922 y(history\(\))p Fp(.)1773 1054 y(V)l(ariable)-1861
-b Fh(char)20 b Fg(history)p 377 1054 V 20 w(expansion)p
-644 1054 V 21 w(c)n(har)195 1109 y Fp(The)e(c)o(haracter)f(that)g(in)o
-(tro)q(duces)h(a)f(history)h(ev)o(en)o(t.)27 b(The)18
-b(default)g(is)g(`)p Fo(!)p Fp('.)26 b(Setting)18 b(this)g(to)f(0)195
-1164 y(inhibits)g(history)f(expansion.)1773 1296 y(V)l(ariable)-1861
-b Fh(char)20 b Fg(history)p 377 1296 V 20 w(subst)p 529
-1296 V 20 w(c)n(har)195 1351 y Fp(The)h(c)o(haracter)e(that)h(in)o(v)o
-(ok)o(es)g(w)o(ord)g(substitution)h(if)g(found)f(at)g(the)h(start)e(of)
-h(a)g(line.)37 b(The)195 1406 y(default)16 b(is)f(`)p
-Fo(^)p Fp('.)1773 1538 y(V)l(ariable)-1861 b Fh(char)20
-b Fg(history)p 377 1538 V 20 w(commen)n(t)p 627 1538
-V 19 w(c)n(har)195 1593 y Fp(During)f(tok)o(enization,)h(if)f(this)h(c)
-o(haracter)e(is)h(seen)h(as)e(the)h(\014rst)g(c)o(haracter)f(of)g(a)h
-(w)o(ord,)g(then)195 1648 y(it)j(and)g(all)g(subsequen)o(t)h(c)o
-(haracters)d(up)j(to)e(a)g(newline)i(are)f(ignored,)h(suppressing)g
-(history)195 1702 y(expansion)16 b(for)f(the)g(remainder)h(of)f(the)g
-(line.)21 b(This)16 b(is)g(disabled)h(b)o(y)e(default.)1773
-1835 y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 1835 V 21 w(w)n(ord)p 567 1835 V 20 w(delimiters)195
-1889 y Fp(The)14 b(c)o(haracters)f(that)g(separate)g(tok)o(ens)h(for)f
-Fo(history_tokenize\(\))p Fp(.)k(The)d(default)g(v)m(alue)h(is)f
-Fo(")195 1944 y(\\t\\n\(\)<>;&|")p Fp(.)1773 2077 y(V)l(ariable)-1861
-b Fh(char)20 b(*)f Fg(history)p 422 2077 V 21 w(no)p
-504 2077 V 20 w(expand)p 704 2077 V 20 w(c)n(hars)195
-2131 y Fp(The)c(list)h(of)e(c)o(haracters)g(whic)o(h)i(inhibit)h
-(history)e(expansion)h(if)f(found)h(immediately)g(follo)o(wing)195
-2186 y Fj(history)p 336 2186 14 2 v 16 w(expansion)p
-547 2186 V 18 w(c)o(har)p Fp(.)j(The)d(default)f(is)h(space,)f(tab,)g
-(newline,)h(carriage)f(return,)g(and)h(`)p Fo(=)p Fp('.)1773
-2318 y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 2318 18 3 v 21 w(searc)n(h)p 599 2318 V 20 w(delimiter)p
-843 2318 V 23 w(c)n(hars)195 2373 y Fp(The)13 b(list)h(of)f(additional)
-h(c)o(haracters)e(whic)o(h)i(can)g(delimit)g(a)f(history)g(searc)o(h)g
-(string,)g(in)h(addition)195 2428 y(to)h(space,)g(T)l(AB,)g(`)p
-Fo(:)p Fp(')f(and)h(`)p Fo(?)p Fp(')g(in)h(the)f(case)g(of)g(a)g
-(substring)g(searc)o(h.)20 b(The)c(default)f(is)h(empt)o(y)l(.)1773
-2560 y(V)l(ariable)-1861 b Fh(int)20 b Fg(history)p 351
-2560 V 20 w(quotes)p 533 2560 V 21 w(inhibit)p 717 2560
-V 23 w(expansion)195 2615 y Fp(If)15 b(non-zero,)f(single-quoted)j(w)o
-(ords)c(are)i(not)f(scanned)h(for)f(the)h(history)g(expansion)g(c)o
-(haracter.)195 2670 y(The)g(default)h(v)m(alue)h(is)e(0.)p
-eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)867 b(11)1773 149 y(V)l(ariable)-1861 b Fh(rl_linebuf_func_t)
-22 b(*)d Fg(history)p 762 149 18 3 v 21 w(inhibit)p 946
-149 V 23 w(expansion)p 1216 149 V 20 w(function)195 204
-y Fp(This)e(should)h(b)q(e)f(set)g(to)f(the)g(address)h(of)f(a)h
-(function)g(that)f(tak)o(es)g(t)o(w)o(o)f(argumen)o(ts:)22
-b(a)17 b Fo(char)d(*)195 259 y Fp(\()p Fj(string)t Fp(\))e(and)i(an)f
-Fo(int)g Fp(index)i(in)o(to)e(that)f(string)i(\()p Fj(i)r
-Fp(\).)19 b(It)14 b(should)g(return)f(a)g(non-zero)h(v)m(alue)g(if)g
-(the)195 314 y(history)h(expansion)g(starting)f(at)g
-Fj(string[i])i Fp(should)g(not)e(b)q(e)h(p)q(erformed;)g(zero)f(if)h
-(the)g(expansion)195 369 y(should)i(b)q(e)g(done.)22
-b(It)16 b(is)h(in)o(tended)g(for)e(use)i(b)o(y)f(applications)h(lik)o
-(e)g(Bash)f(that)g(use)g(the)g(history)195 423 y(expansion)g(c)o
-(haracter)f(for)f(additional)j(purp)q(oses.)j(By)c(default,)f(this)h(v)
-m(ariable)g(is)g(set)f(to)f Fo(NULL)p Fp(.)75 543 y Fn(2.5)33
-b(History)22 b(Programming)h(Example)137 637 y Fp(The)16
-b(follo)o(wing)g(program)e(demonstrates)g(simple)j(use)e(of)g(the)g
-Fk(gnu)g Fp(History)g(Library)l(.)195 698 y Fo(#include)23
-b(<stdio.h>)195 750 y(#include)g(<readline/history.h>)195
-854 y(main)g(\(argc,)g(argv\))314 906 y(int)h(argc;)314
-958 y(char)g(**argv;)195 1010 y({)243 1061 y(char)f(line[1024],)f(*t;)
-243 1113 y(int)h(len,)g(done)h(=)g(0;)243 1217 y(line[0])f(=)g(0;)243
-1321 y(using_history)f(\(\);)243 1373 y(while)h(\(!done\))290
-1425 y({)338 1477 y(printf)g(\("history$)g("\);)338 1528
-y(fflush)g(\(stdout\);)338 1580 y(t)h(=)g(fgets)f(\(line,)g(sizeof)g
-(\(line\))g(-)h(1,)f(stdin\);)338 1632 y(if)h(\(t)f(&&)h(*t\))386
-1684 y({)434 1736 y(len)f(=)h(strlen)f(\(t\);)434 1788
-y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))481 1840 y(t[len)h(-)f(1])h(=)g
-('\\0';)386 1892 y(})338 1995 y(if)g(\(!t\))386 2047
-y(strcpy)f(\(line,)g("quit"\);)338 2151 y(if)h(\(line[0]\))386
-2203 y({)434 2255 y(char)f(*expansion;)434 2307 y(int)g(result;)434
-2411 y(result)g(=)g(history_expand)f(\(line,)h(&expansion\);)434
-2462 y(if)g(\(result\))481 2514 y(fprintf)g(\(stderr,)g("\045s\\n",)g
-(expansion\);)434 2618 y(if)g(\(result)g(<)h(0)g(||)f(result)g(==)h
-(2\))481 2670 y({)p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fp(12)1324 b(GNU)15 b(History)g(Library)529
-149 y Fo(free)23 b(\(expansion\);)529 201 y(continue;)481
-253 y(})434 357 y(add_history)f(\(expansion\);)434 409
-y(strncpy)h(\(line,)g(expansion,)f(sizeof)h(\(line\))g(-)h(1\);)434
-461 y(free)f(\(expansion\);)386 513 y(})338 616 y(if)h(\(strcmp)f
-(\(line,)g("quit"\))g(==)g(0\))386 668 y(done)g(=)h(1;)338
-720 y(else)f(if)h(\(strcmp)f(\(line,)g("save"\))g(==)h(0\))386
-772 y(write_history)e(\("history_file"\);)338 824 y(else)h(if)h
-(\(strcmp)f(\(line,)g("read"\))g(==)h(0\))386 876 y(read_history)e
-(\("history_file"\);)338 928 y(else)h(if)h(\(strcmp)f(\(line,)g
-("list"\))g(==)h(0\))386 980 y({)434 1032 y(register)e(HIST_ENTRY)h
-(**the_list;)434 1083 y(register)f(int)i(i;)434 1187
-y(the_list)e(=)i(history_list)e(\(\);)434 1239 y(if)h(\(the_list\))481
-1291 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e(i++\))529
-1343 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g(history_base,)e
-(the_list[i]->line\);)386 1395 y(})338 1447 y(else)h(if)h(\(strncmp)f
-(\(line,)g("delete",)g(6\))g(==)h(0\))386 1499 y({)434
-1550 y(int)f(which;)434 1602 y(if)g(\(\(sscanf)g(\(line)g(+)h(6,)f
-("\045d",)h(&which\)\))e(==)i(1\))481 1654 y({)529 1706
-y(HIST_ENTRY)f(*entry)g(=)g(remove_history)f(\(which\);)529
-1758 y(if)i(\(!entry\))577 1810 y(fprintf)f(\(stderr,)f("No)i(such)f
-(entry)g(\045d\\n",)g(which\);)529 1862 y(else)577 1914
-y({)625 1966 y(free)g(\(entry->line\);)625 2017 y(free)g(\(entry\);)577
-2069 y(})481 2121 y(})434 2173 y(else)481 2225 y({)529
-2277 y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f
-(`delete'\\n"\);)481 2329 y(})386 2381 y(})290 2433 y(})195
-2484 y(})p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fp(App)q(endix)17 b(A:)e(Concept)g(Index)1196
-b(13)75 149 y Fl(App)r(endix)25 b(A)41 b(Concept)27 b(Index)75
-321 y Fn(A)75 383 y Fe(anc)o(hored)14 b(searc)o(h)s Fd(.)8
-b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)16
-b Fe(8)75 507 y Fn(E)75 568 y Fe(ev)o(en)o(t)d(designators)g
-Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b
-Fe(1)1012 321 y Fn(H)1012 431 y Fe(history)15 b(ev)o(en)o(ts)d
-Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Fe(1)1012 500 y(history)15 b(expansion)8 b Fd(.)g(.)e(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)21 b Fe(1)1012 568 y(History)14 b(Searc)o(hing)6
-b Fd(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b
-Fe(8)p eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fp(14)1324 b(GNU)15 b(History)g(Library)p
-eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fp(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l
-(ariable)g(Index)919 b(15)75 149 y Fl(App)r(endix)25
-b(B)41 b(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
-b(Index)75 321 y Fn(A)75 382 y Fc(add_histor)o(y)8 b
-Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(6)75 428 y Fc(append_his)o(to)o(ry)8 b Fd(.)s(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)21 b Fe(9)75 557 y Fn(C)75 618
-y Fc(clear_hist)o(or)o(y)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)22 b Fe(6)75 664 y Fc(current_hi)o(st)o(ory)7
-b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b
-Fe(7)75 793 y Fn(G)75 854 y Fc(get_histor)o(y_)o(eve)o(nt)5
-b Fd(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fe(9)75
-984 y Fn(H)75 1044 y Fc(history_ar)o(g_)o(ext)o(ra)o(ct)5
-b Fd(.)s(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(9)75 1090 y Fc(history_ba)o(se)
-6 b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Fe(10)75 1136 y Fc(history_co)o(mm)o(ent)o(_c)o(har)s
-Fd(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)16 b Fe(10)75 1182 y Fc(history_ex)o(pa)o(nd)8
-b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Fe(9)75 1227 y Fc(history_ex)o(pa)o(nsi)o(on)o(_ch)o(ar)8
-b Fd(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)24 b Fe(10)75 1273 y Fc(history_ge)o(t)8
-b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(7)75 1319 y Fc(history_ge)o(t_)o(his)o(to)o(ry_)o(sta)o(te)6
-b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)22 b Fe(6)75 1364 y Fc(history_in)o(hi)o(bit)o(_e)o(xpa)o(nsi)o(on)
-o(_fu)o(nc)o(tio)o(n)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)24
-b Fe(11)75 1410 y Fc(history_is)o(_s)o(tif)o(le)o(d)6
-b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(7)75 1456
-y Fc(history_le)o(ng)o(th)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)21 b Fe(10)75 1501 y Fc(history_li)o(st)6 b Fd(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fe(7)75
-1547 y Fc(history_ma)o(x_)o(ent)o(ri)o(es)t Fd(.)s(.)6
-b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)17 b Fe(10)75 1593 y Fc(history_no)o(_e)o(xpa)o(nd)o
-(_ch)o(ars)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)23 b Fe(10)75 1638 y Fc(history_qu)o(ot)o(es_)o
-(in)o(hib)o(it_)o(ex)o(pan)o(si)o(on)t Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Fe(10)75 1684 y Fc(history_se)o(ar)o(ch)8
-b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Fe(8)75 1730 y Fc(history_se)o(ar)o(ch_)o(de)o(lim)o(ite)o(r_)o(cha)o
-(rs)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Fe(10)75 1776 y Fc(history_se)o(ar)o(ch_)o(po)o(s)6
-b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(8)75 1821
-y Fc(history_se)o(ar)o(ch_)o(pr)o(efi)o(x)s Fd(.)t(.)6
-b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)16 b Fe(8)75 1867 y Fc(history_se)o(t_)o(his)o(to)o(ry_)
-o(sta)o(te)6 b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)22 b Fe(6)75 1913 y Fc(history_se)o(t_)o(pos)7
-b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b
-Fe(7)1012 321 y Fc(history_sub)o(st)o(_ch)o(ar)t Fd(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(10)1012 368 y Fc(history_tok)o(en)o(ize)
-6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)20 b Fe(9)1012
-414 y Fc(history_tot)o(al)o(_by)o(te)o(s)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)18 b Fe(7)1012 460 y Fc(history_tru)o(nc)o(ate)o(_f)o(ile)s
-Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(9)1012 507 y Fc(history_wor)o(d_)o(del)
-o(im)o(ite)o(rs)7 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Fe(10)1012 640 y Fn(N)1012
-702 y Fc(next_histor)o(y)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)23 b Fe(7)1012 836 y Fn(P)1012 898 y
-Fc(previous_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)20 b Fe(7)1012 1031 y Fn(R)1012 1094 y Fc(read_histor)o(y)7
-b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(8)1012 1140 y Fc(read_histor)o(y_)o(ran)o(ge)5 b
-Fd(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Fe(8)1012 1186
-y Fc(remove_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)22 b Fe(6)1012 1233 y Fc(replace_his)o(to)o(ry_)o(en)o(try)s
-Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(6)1012 1366 y Fn(S)1012
-1429 y Fc(stifle_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)22 b Fe(7)1012 1562 y Fn(U)1012 1624
-y Fc(unstifle_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)20 b Fe(7)1012 1671 y Fc(using_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(6)1012 1804
-y Fn(W)1012 1866 y Fc(where_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(7)1012 1913 y Fc(write_histo)o(ry)6
-b Fd(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Fe(8)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fp(16)1324 b(GNU)15 b(History)g(Library)p
-eop
-%%Page: -1 19
--1 18 bop 1862 -58 a Fp(i)75 149 y Fl(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fn(1)67 b(Using)22 b(History)h(In)n
-(teractiv)n(ely)9 b Fb(.)k(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)h(.)31 b Fn(1)224 389 y Fp(1.1)45 b(History)15
-b(Expansion)5 b Fa(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fp(1)374 444 y(1.1.1)44
-b(Ev)o(en)o(t)14 b(Designators)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)26 b Fp(1)374 499 y(1.1.2)44 b(W)l(ord)15
-b(Designators)5 b Fa(.)h(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)19 b Fp(2)374 553 y(1.1.3)44 b(Mo)q(di\014ers)t Fa(.)8
-b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)19 b Fp(2)75 675 y Fn(2)67 b(Programming)23
-b(with)g(GNU)f(History)16 b Fb(.)10 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)38 b Fn(5)224 743 y Fp(2.1)45 b(In)o(tro)q(duction)16
-b(to)f(History)10 b Fa(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)24 b Fp(5)224 798 y(2.2)45 b(History)15
-b(Storage)c Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 b Fp(5)224 853
-y(2.3)45 b(History)15 b(F)l(unctions)d Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26
-b Fp(6)374 907 y(2.3.1)44 b(Initializing)18 b(History)d(and)h(State)e
-(Managemen)o(t)g Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)29 b
-Fp(6)374 962 y(2.3.2)44 b(History)15 b(List)h(Managemen)o(t)d
-Fa(.)7 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)29 b Fp(6)374 1017 y(2.3.3)44
-b(Information)15 b(Ab)q(out)g(the)h(History)f(List)c
-Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
-b Fp(7)374 1072 y(2.3.4)44 b(Mo)o(ving)15 b(Around)g(the)g(History)g
-(List)c Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)25 b Fp(7)374 1127 y(2.3.5)44 b(Searc)o(hing)16
-b(the)f(History)g(List)7 b Fa(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fp(8)374 1181 y(2.3.6)44 b(Managing)15 b(the)g(History)g(File)6
-b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)20 b Fp(8)374 1236 y(2.3.7)44
-b(History)15 b(Expansion)9 b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)24 b Fp(9)224 1291 y(2.4)45 b(History)15 b(V)l(ariables)6
-b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)21 b Fp(10)224 1346 y(2.5)45 b(History)15
-b(Programming)f(Example)7 b Fa(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fp(11)75 1467 y Fn(App)r(endix)i(A)67 b(Concept)22
-b(Index)17 b Fb(.)10 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)h(.)f(.)g(.)38 b Fn(13)75 1602 y(App)r(endix)24 b(B)67
-b(F)-6 b(unction)25 b(and)e(V)-6 b(ariable)24 b(Index)16
-b Fb(.)10 b(.)g(.)g(.)38 b Fn(15)p eop
-%%Page: -2 20
--2 19 bop 75 -58 a Fp(ii)1346 b(GNU)15 b(History)g(Library)p
-eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/readline-4.3.orig/doc/history_3.ps b/readline-4.3.orig/doc/history_3.ps
deleted file mode 100644
index f5231a5..0000000
--- a/readline-4.3.orig/doc/history_3.ps
+++ /dev/null
@@ -1,800 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: groff version 1.16.1
-%%CreationDate: Mon Mar 18 10:17:27 2002
-%%DocumentNeededResources: font Times-Roman
-%%+ font Times-Bold
-%%+ font Times-Italic
-%%DocumentSuppliedResources: procset grops 1.16 1
-%%Pages: 7
-%%PageOrder: Ascend
-%%Orientation: Portrait
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset grops 1.16 1
-/setpacking where{
-pop
-currentpacking
-true setpacking
-}if
-/grops 120 dict dup begin
-/SC 32 def
-/A/show load def
-/B{0 SC 3 -1 roll widthshow}bind def
-/C{0 exch ashow}bind def
-/D{0 exch 0 SC 5 2 roll awidthshow}bind def
-/E{0 rmoveto show}bind def
-/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
-/G{0 rmoveto 0 exch ashow}bind def
-/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/I{0 exch rmoveto show}bind def
-/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
-/K{0 exch rmoveto 0 exch ashow}bind def
-/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/M{rmoveto show}bind def
-/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
-/O{rmoveto 0 exch ashow}bind def
-/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/Q{moveto show}bind def
-/R{moveto 0 SC 3 -1 roll widthshow}bind def
-/S{moveto 0 exch ashow}bind def
-/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/SF{
-findfont exch
-[exch dup 0 exch 0 exch neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/MF{
-findfont
-[5 2 roll
-0 3 1 roll
-neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/level0 0 def
-/RES 0 def
-/PL 0 def
-/LS 0 def
-/MANUAL{
-statusdict begin/manualfeed true store end
-}bind def
-/PLG{
-gsave newpath clippath pathbbox grestore
-exch pop add exch pop
-}bind def
-/BP{
-/level0 save def
-1 setlinecap
-1 setlinejoin
-72 RES div dup scale
-LS{
-90 rotate
-}{
-0 PL translate
-}ifelse
-1 -1 scale
-}bind def
-/EP{
-level0 restore
-showpage
-}bind def
-/DA{
-newpath arcn stroke
-}bind def
-/SN{
-transform
-.25 sub exch .25 sub exch
-round .25 add exch round .25 add exch
-itransform
-}bind def
-/DL{
-SN
-moveto
-SN
-lineto stroke
-}bind def
-/DC{
-newpath 0 360 arc closepath
-}bind def
-/TM matrix def
-/DE{
-TM currentmatrix pop
-translate scale newpath 0 0 .5 0 360 arc closepath
-TM setmatrix
-}bind def
-/RC/rcurveto load def
-/RL/rlineto load def
-/ST/stroke load def
-/MT/moveto load def
-/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
-}bind def
-/BL/fill load def
-/LW/setlinewidth load def
-/RE{
-findfont
-dup maxlength 1 index/FontName known not{1 add}if dict begin
-{
-1 index/FID ne{def}{pop pop}ifelse
-}forall
-/Encoding exch def
-dup/FontName exch def
-currentdict end definefont pop
-}bind def
-/DEFS 0 def
-/EBEGIN{
-moveto
-DEFS begin
-}bind def
-/EEND/end load def
-/CNT 0 def
-/level1 0 def
-/PBEGIN{
-/level1 save def
-translate
-div 3 1 roll div exch scale
-neg exch neg exch translate
-0 setgray
-0 setlinecap
-1 setlinewidth
-0 setlinejoin
-10 setmiterlimit
-[]0 setdash
-/setstrokeadjust where{
-pop
-false setstrokeadjust
-}if
-/setoverprint where{
-pop
-false setoverprint
-}if
-newpath
-/CNT countdictstack def
-userdict begin
-/showpage{}def
-}bind def
-/PEND{
-clear
-countdictstack CNT sub{end}repeat
-level1 restore
-}bind def
-end def
-/setpacking where{
-pop
-setpacking
-}if
-%%EndResource
-%%IncludeResource: font Times-Roman
-%%IncludeResource: font Times-Bold
-%%IncludeResource: font Times-Italic
-grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
-/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
-/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
-/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
-/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
-/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
-/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
-/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
-/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
-/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
-/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
-/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
-/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
-/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
-/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
-/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
-/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
-/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
-/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
-/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
-/Times-Roman@0 ENC0/Times-Roman RE
-%%EndProlog
-%%Page: 1 1
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME)
-.219 E F0(history \255 GNU History Library)108 96 Q F1(COPYRIGHT)72
-112.8 Q F0(The GNU History Library is Cop)108 124.8 Q
-(yright \251 1989-2002 by the Free Softw)-.1 E(are F)-.1 E
-(oundation, Inc.)-.15 E F1(DESCRIPTION)72 141.6 Q F0(Man)108 153.6 Q
-2.81(yp)-.15 G .31(rograms read input from the user a line at a time.)
--2.81 F .309(The GNU History library is able to k)5.309 F .309
-(eep track of)-.1 F .024(those lines, associate arbitrary data with eac\
-h line, and utilize information from pre)108 165.6 R .024
-(vious lines in composing)-.25 F(ne)108 177.6 Q 2.5(wo)-.25 G(nes.)-2.5
-E F1(HIST)72 199.2 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E(ANSION)-.81
-E F0 .823(The history library supports a history e)108 211.2 R .822
-(xpansion feature that is identical to the history e)-.15 F .822
-(xpansion in)-.15 F/F2 10/Times-Bold@0 SF(bash.)3.322 E F0
-(This section describes what syntax features are a)108 223.2 Q -.25(va)
--.2 G(ilable.).25 E 1.305(History e)108 240 R 1.305
-(xpansions introduce w)-.15 F 1.306(ords from the history list into the\
- input stream, making it easy to repeat)-.1 F .21
-(commands, insert the ar)108 252 R .21(guments to a pre)-.18 F .209
-(vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(commands quickly)108 264 Q(.)-.65 E 1.296(History e)108
-280.8 R 1.297(xpansion is usually performed immediately after a complet\
-e line is read.)-.15 F 1.297(It tak)6.297 F 1.297(es place in tw)-.1 F
-(o)-.1 E 2.855(parts. The)108 292.8 R .354(\214rst is to determine whic\
-h line from the history list to use during substitution.)2.855 F .354
-(The second is to)5.354 F .116
-(select portions of that line for inclusion into the current one.)108
-304.8 R .117(The line selected from the history is the)5.116 F/F3 10
-/Times-Italic@0 SF -.15(ev)2.617 G(ent).15 E F0(,)A .846
-(and the portions of that line that are acted upon are)108 316.8 R F3
-(wor)3.346 E(ds)-.37 E F0 5.846(.V)C(arious)-6.956 E F3(modi\214er)3.346
-E(s)-.1 E F0 .846(are a)3.346 F -.25(va)-.2 G .845(ilable to manipulate)
-.25 F .304(the selected w)108 328.8 R 2.804(ords. The)-.1 F .304
-(line is brok)2.804 F .304(en into w)-.1 F .304(ords in the same f)-.1 F
-.304(ashion as)-.1 F F2(bash)2.804 E F0 .305
-(does when reading input, so)2.804 F .539(that se)108 340.8 R -.15(ve)
--.25 G .539(ral w).15 F .539(ords that w)-.1 F .539
-(ould otherwise be separated are considered one w)-.1 F .538
-(ord when surrounded by quotes)-.1 F .307(\(see the description of)108
-352.8 R F2(history_tok)2.807 E(enize\(\))-.1 E F0(belo)2.807 E 2.807
-(w\). History)-.25 F -.15(ex)2.807 G .307
-(pansions are introduced by the appearance of).15 F .52(the history e)
-108 364.8 R .52(xpansion character)-.15 F 3.02(,w)-.4 G .52(hich is)
--3.02 F F2(!)3.853 E F0 .52(by def)3.853 F 3.02(ault. Only)-.1 F .52
-(backslash \()3.02 F F2(\\).833 E F0 3.02(\)a).833 G .52
-(nd single quotes can quote the)-3.02 F(history e)108 376.8 Q
-(xpansion character)-.15 E(.)-.55 E F2(Ev)87 393.6 Q(ent Designators)-.1
-E F0(An e)108 405.6 Q -.15(ve)-.25 G(nt designator is a reference to a \
-command line entry in the history list.).15 E F2(!)108 422.4 Q F0
-(Start a history substitution, e)32.67 E(xcept when follo)-.15 E
-(wed by a)-.25 E F2(blank)2.5 E F0 2.5(,n)C -.25(ew)-2.5 G
-(line, = or \(.).25 E F2(!)108 434.4 Q F3(n)A F0(Refer to command line)
-27.67 E F3(n)2.5 E F0(.).24 E F2<21ad>108 446.4 Q F3(n)A F0
-(Refer to the current command line minus)21.97 E F3(n)2.5 E F0(.).24 E
-F2(!!)108 458.4 Q F0(Refer to the pre)29.34 E(vious command.)-.25 E
-(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 470.4 Q F3(string)
-A F0(Refer to the most recent command starting with)9.33 E F3(string)2.5
-E F0(.).22 E F2(!?)108 482.4 Q F3(string)A F2([?])A F0 1.057
-(Refer to the most recent command containing)144 494.4 R F3(string)3.557
-E F0 6.057(.T).22 G 1.057(he trailing)-6.057 F F2(?)3.557 E F0 1.057
-(may be omitted if)3.557 F F3(string)3.557 E F0(is)3.557 E(follo)144
-506.4 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F4 12/Times-Bold@0
-SF(^)108 523.4 Q F3(string1)-5 I F4(^)5 I F3(string2)-5 I F4(^)5 I F0
-2.66(Quick substitution.)144 530.4 R 2.66
-(Repeat the last command, replacing)7.66 F F3(string1)5.16 E F0(with)
-5.16 E F3(string2)5.16 E F0 7.66(.E).02 G(qui)-7.66 E -.25(va)-.25 G
-2.66(lent to).25 F -.74(``)144 542.4 S(!!:s/).74 E F3(string1)A F0(/)A
-F3(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0
-(belo)2.5 E(w\).)-.25 E F2(!#)108 554.4 Q F0
-(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75
-(Wo)87 571.2 S(rd Designators).75 E F0 -.8(Wo)108 583.2 S 1.313
-(rd designators are used to select desired w).8 F 1.314(ords from the e)
--.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.314
-(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation).15 F
-.53(from the w)108 595.2 R .529(ord designator)-.1 F 5.529(.I)-.55 G
-3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
-(ord designator be)-.1 F .529(gins with a)-.15 F F2(^)3.029 E F0(,)A F2
-($)3.029 E F0(,)A F2(*)3.029 E F0(,)A F2<ad>3.029 E F0 3.029(,o)C(r)
--3.029 E F2(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3
-(are numbered from the be)108 607.2 R 1.3
-(ginning of the line, with the \214rst w)-.15 F 1.301
-(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.301 G 1.301(rds are).8
-F(inserted into the current line separated by single spaces.)108 619.2 Q
-F2 2.5(0\()108 636 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 648 Q 2.5
-(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E F3
-(n)108 660 Q F0(The)31 E F3(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)108 672 Q
-F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5 E(ord 1.)-.1
-E F2($)108 684 Q F0(The last ar)31 E(gument.)-.18 E F2(%)108 696 Q F0
-(The w)26 E(ord matched by the most recent `?)-.1 E F3(string)A F0
-(?' search.)A F3(x)108 708 Q F2<ad>A F3(y)A F0 2.5(Ar)21.42 G(ange of w)
--2.5 E(ords; `\255)-.1 E F3(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)
--.25 E F3(y)A F0('.)A(GNU History 4.3)72 768 Q(2002 January 31)131.79 E
-(1)195.95 E EP
-%%Page: 2 2
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Bold@0 SF(*)108 84 Q F0 .316
-(All of the w)31 F .316(ords b)-.1 F .316(ut the zeroth.)-.2 F .315
-(This is a synon)5.315 F .315(ym for `)-.15 F/F2 10/Times-Italic@0 SF
-(1\255$)A F0 2.815('. It)B .315(is not an error to use)2.815 F F1(*)
-2.815 E F0 .315(if there is)2.815 F(just one w)144 96 Q(ord in the e)-.1
-E -.15(ve)-.25 G(nt; the empty string is returned in that case.).15 E F1
-(x*)108 108 Q F0(Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1
-<78ad>108 120 Q F0(Abbre)25.3 E(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5
-E(e)-.1 E F1(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E
-(If a w)108 136.8 Q(ord designator is supplied without an e)-.1 E -.15
-(ve)-.25 G(nt speci\214cation, the pre).15 E
-(vious command is used as the e)-.25 E -.15(ve)-.25 G(nt.).15 E F1
-(Modi\214ers)87 153.6 Q F0 .183(After the optional w)108 165.6 R .183
-(ord designator)-.1 F 2.683(,t)-.4 G .184
-(here may appear a sequence of one or more of the follo)-2.683 F .184
-(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 177.6 Q F1(h)108
-194.4 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
-(railing \214le name component, lea).15 E(ving only the head.)-.2 E F1
-(t)108 206.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
-(ll leading \214le name components, lea).15 E(ving the tail.)-.2 E F1(r)
-108 218.4 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
-(\214x of the form)-.25 E F2(.xxx)2.5 E F0 2.5(,l)C(ea)-2.5 E
-(ving the basename.)-.2 E F1(e)108 230.4 Q F0(Remo)31.56 E .3 -.15(ve a)
--.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108 242.4
-Q F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
-E -.15(xe)-.15 G(cute it.).15 E F1(q)108 254.4 Q F0
-(Quote the substituted w)30.44 E(ords, escaping further substitutions.)
--.1 E F1(x)108 266.4 Q F0(Quote the substituted w)31 E(ords as with)-.1
-E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks)
-2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 278.4 Q F2(old)A F1(/)A
-F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 290.4 Q F2(ne)2.814 E(w)-.15 E
-F0 .314(for the \214rst occurrence of)2.814 F F2(old)2.814 E F0 .314
-(in the e)2.814 F -.15(ve)-.25 G .314(nt line.).15 F(An)5.314 E 2.814
-(yd)-.15 G .314(elimiter can be used in place)-2.814 F .616(of /.)144
-302.4 R .617
-(The \214nal delimiter is optional if it is the last character of the e)
-5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617
-F .75(be quoted in)144 314.4 R F2(old)3.25 E F0(and)3.25 E F2(ne)3.25 E
-(w)-.15 E F0 .75(with a single backslash.)3.25 F .749(If & appears in)
-5.75 F F2(ne)3.249 E(w)-.15 E F0 3.249(,i).31 G 3.249(ti)-3.249 G 3.249
-(sr)-3.249 G .749(eplaced by)-3.249 F F2(old)3.249 E F0 5.749(.A).77 G
-.369(single backslash will quote the &.)144 326.4 R(If)5.369 E F2(old)
-2.869 E F0 .37(is null, it is set to the last)2.869 F F2(old)2.87 E F0
-.37(substituted, or)2.87 F 2.87(,i)-.4 G 2.87(fn)-2.87 G 2.87(op)-2.87 G
-(re)-2.87 E(vi-)-.25 E(ous history substitutions took place, the last)
-144 338.4 Q F2(string)2.5 E F0(in a)2.5 E F1(!?)2.5 E F2(string)A F1
-([?])A F0(search.)5 E F1(&)108 350.4 Q F0(Repeat the pre)27.67 E
-(vious substitution.)-.25 E F1(g)108 362.4 Q F0 .398
-(Cause changes to be applied o)31 F -.15(ve)-.15 G 2.898(rt).15 G .398
-(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.).15 F .397
-(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897('\()C
-(e.g.,)-2.897 E(`)144 374.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)-.15 E
-F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218(used with `)
-3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219
-(elimiter can be used in place of /, and the \214nal)-3.718 F
-(delimiter is optional if it is the last character of the e)144 386.4 Q
--.15(ve)-.25 G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(PR)72 403.2 Q
-(OGRAMMING WITH HIST)-.329 E(OR)-.197 E 2.738(YF)-.383 G(UNCTIONS)-2.738
-E F0(This section describes ho)108 415.2 Q 2.5(wt)-.25 G 2.5(ou)-2.5 G
-(se the History library in other programs.)-2.5 E F1(Intr)87 432 Q
-(oduction to History)-.18 E F0 .797
-(The programmer using the History library has a)108 444 R -.25(va)-.2 G
-.796(ilable functions for remembering lines on a history list,).25 F
-.307(associating arbitrary data with a line, remo)108 456 R .308
-(ving lines from the list, searching through the list for a line con-)
--.15 F .303(taining an arbitrary te)108 468 R .303
-(xt string, and referencing an)-.15 F 2.803(yl)-.15 G .303
-(ine in the list directly)-2.803 F 5.303(.I)-.65 G 2.803(na)-5.303 G
-.303(ddition, a history)-2.803 F F2 -.2(ex)2.802 G(pansion).2 E F0
-(function is a)108 480 Q -.25(va)-.2 G(ilable which pro).25 E
-(vides for a consistent user interf)-.15 E(ace across dif)-.1 E
-(ferent programs.)-.25 E .059(The user using programs written with the \
-History library has the bene\214t of a consistent user interf)108 496.8
-R .059(ace with a)-.1 F .918(set of well-kno)108 508.8 R .917
-(wn commands for manipulating the te)-.25 F .917(xt of pre)-.15 F .917
-(vious lines and using that te)-.25 F .917(xt in ne)-.15 F 3.417(wc)-.25
-G(om-)-3.417 E 4.183(mands. The)108 520.8 R 1.684(basic history manipul\
-ation commands are identical to the history substitution pro)4.183 F
-1.684(vided by)-.15 F F1(bash)108 532.8 Q F0(.)A .904
-(If the programmer desires, he can use the Readline library)108 549.6 R
-3.403(,w)-.65 G .903(hich includes some history manipulation by)-3.403 F
-(def)108 561.6 Q(ault, and has the added adv)-.1 E
-(antage of command line editing.)-.25 E .39(Before declaring an)108
-578.4 R 2.89(yf)-.15 G .39(unctions using an)-2.89 F 2.89(yf)-.15 G .39
-(unctionality the History library pro)-2.89 F .39
-(vides in other code, an appli-)-.15 F .067
-(cation writer should include the \214le)108 590.4 R F2(<r)4.233 E
-(eadline/history)-.37 E(.h>)-.55 E F0 .067(in an)4.233 F 2.566<798c>-.15
-G .066(le that uses the History library')-2.566 F 2.566(sf)-.55 G
-(eatures.)-2.566 E .538(It supplies e)108 602.4 R .538
-(xtern declarations for all of the library')-.15 F 3.038(sp)-.55 G .538
-(ublic functions and v)-3.038 F .539(ariables, and declares all of the)
--.25 F(public data structures.)108 614.4 Q F1(History Storage)87 643.2 Q
-F0(The history list is an array of history entries.)108 655.2 Q 2.5(Ah)5
-G(istory entry is declared as follo)-2.5 E(ws:)-.25 E F2(typedef void *)
-108 672 Q F1(histdata_t;)2.5 E F0(typedef struct _hist_entry {)108 688.8
-Q(char *line;)113 700.8 Q(histdata_t data;)113 712.8 Q 2.5(}H)108 724.8
-S(IST_ENTR)-2.5 E -.92(Y;)-.65 G(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(2)195.95 E EP
-%%Page: 3 3
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E
-(The history list itself might therefore be declared as)108 84 Q/F1 10
-/Times-Italic@0 SF(HIST_ENTR)108 100.8 Q 2.5(Y*)-.18 G(*)-2.5 E/F2 10
-/Times-Bold@0 SF(the_history_list;)2.5 E F0(The state of the History li\
-brary is encapsulated into a single structure:)108 117.6 Q(/*)108 134.4
-Q 2.5(*As)110.5 146.4 S
-(tructure used to pass around the current state of the history)-2.5 E(.)
--.65 E(*/)110.5 158.4 Q(typedef struct _hist_state {)108 170.4 Q
-(HIST_ENTR)113 182.4 Q 2.5(Y*)-.65 G
-(*entries; /* Pointer to the entries themselv)-2.5 E(es. */)-.15 E
-(int of)113 194.4 Q 25(fset; /*)-.25 F
-(The location pointer within this array)2.5 E 2.5(.*)-.65 G(/)-2.5 E
-(int length;)113 206.4 Q(/* Number of elements within this array)27.5 E
-2.5(.*)-.65 G(/)-2.5 E(int size;)113 218.4 Q
-(/* Number of slots allocated to this array)32.5 E 2.5(.*)-.65 G(/)-2.5
-E(int \215ags;)113 230.4 Q 2.5(}H)108 242.4 S(IST)-2.5 E(OR)-.18 E(Y_ST)
--.65 E -1.11(AT)-.93 G(E;)1.11 E(If the \215ags member includes)108
-259.2 Q F2(HS_STIFLED)2.5 E F0 2.5(,t)C(he history has been sti\215ed.)
--2.5 E/F3 10.95/Times-Bold@0 SF(History Functions)72 276 Q F0
-(This section describes the calling sequence for the v)108 288 Q
-(arious functions e)-.25 E(xported by the GNU History library)-.15 E(.)
--.65 E F2(Initializing History and State Management)87 304.8 Q F0 1.274
-(This section describes functions used to initialize and manage the sta\
-te of the History library when you)108 316.8 R -.1(wa)108 328.8 S
-(nt to use the history functions in your program.).1 E F1(void)108 352.8
-Q F2(using_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E(Be)108
-364.8 Q(gin a session in which the history functions might be used.)-.15
-E(This initializes the interacti)5 E .3 -.15(ve v)-.25 H(ariables.)-.1 E
-F1(HIST)108 388.8 Q(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5(E*).37 G F2
-(history_get_history_state)A F0(\()4.166 E F1(void)A F0(\))1.666 E
-(Return a structure describing the current state of the input history)
-108 400.8 Q(.)-.65 E F1(void)108 424.8 Q F2(history_set_history_state)
-2.5 E F0(\()4.166 E F1(HIST)A(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5
-(E*).37 G(state)-2.5 E F0(\))1.666 E
-(Set the state of the history list according to)108 436.8 Q F1(state)2.5
-E F0(.)A F2(History List Management)87 465.6 Q F0
-(These functions manage indi)108 477.6 Q(vidual entries on the history \
-list, or set parameters managing the list itself.)-.25 E F1(void)108
-501.6 Q F2(add_history)2.5 E F0(\()4.166 E F1(const c)A(har *string)-.15
-E F0(\))1.666 E(Place)108 513.6 Q F1(string)2.5 E F0
-(at the end of the history list.)2.5 E
-(The associated data \214eld \(if an)5 E(y\) is set to)-.15 E F2(NULL)
-2.5 E F0(.)A F1(HIST_ENTR)108 537.6 Q 2.5(Y*)-.18 G F2 -.18(re)C(mo).18
-E -.1(ve)-.1 G(_history).1 E F0(\()4.166 E F1(int whic)A(h)-.15 E F0(\))
-1.666 E(Remo)108 549.6 Q .352 -.15(ve h)-.15 H .052(istory entry at of)
-.15 F(fset)-.25 E F1(whic)2.553 E(h)-.15 E F0 .053(from the history)
-2.553 F 5.053(.T)-.65 G .053(he remo)-5.053 F -.15(ve)-.15 G 2.553(de)
-.15 G .053(lement is returned so you can free the)-2.553 F
-(line, data, and containing structure.)108 561.6 Q F1(HIST_ENTR)108
-585.6 Q 2.5(Y*)-.18 G F2 -.18(re)C(place_history_entry).18 E F0(\()4.166
-E F1(int whic)A -.834(h, const)-.15 F -.15(ch)2.5 G(ar *line).15 E 1.666
-(,h)-.1 G(istdata_t data)-1.666 E F0(\))3.332 E(Mak)108 597.6 Q 2.868
-(et)-.1 G .368(he history entry at of)-2.868 F(fset)-.25 E F1(whic)2.868
-E(h)-.15 E F0(ha)2.868 E -.15(ve)-.2 G F1(line)3.018 E F0(and)2.868 E F1
-(data)2.868 E F0 5.367(.T)C .367
-(his returns the old entry so you can dispose of)-5.367 F(the data.)108
-609.6 Q(In the case of an in)5 E -.25(va)-.4 G(lid).25 E F1(whic)2.5 E
-(h)-.15 E F0 2.5(,a)C F2(NULL)A F0(pointer is returned.)2.5 E F1(void)
-108 633.6 Q F2(clear_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
-(Clear the history list by deleting all the entries.)108 645.6 Q F1
-(void)108 669.6 Q F2(sti\215e_history)2.5 E F0(\()4.166 E F1(int max)A
-F0(\))1.666 E(Sti\215e the history list, remembering only the last)108
-681.6 Q F1(max)2.5 E F0(entries.)2.5 E F1(int)108 705.6 Q F2
-(unsti\215e_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E .46
-(Stop sti\215ing the history)108 717.6 R 5.46(.T)-.65 G .46
-(his returns the pre)-5.46 F .46
-(viously-set maximum number of history entries \(as set by)-.25 F F2
-(sti-)2.96 E(\215e_history\(\))108 729.6 Q F0 2.5(\). history)B -.1(wa)
-2.5 G 2.5(ss).1 G 2.5(ti\215ed. The)-2.5 F -.25(va)2.5 G(lue is positi)
-.25 E .3 -.15(ve i)-.25 H 2.5(ft).15 G(he history w)-2.5 E
-(as sti\215ed, ne)-.1 E -.05(ga)-.15 G(ti).05 E .3 -.15(ve i)-.25 H 2.5
-(fi).15 G 2.5(tw)-2.5 G(asn')-2.6 E(t.)-.18 E(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(3)195.95 E EP
-%%Page: 4 4
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Italic@0 SF(int)108 84 Q/F2 10
-/Times-Bold@0 SF(history_is_sti\215ed)2.5 E F0(\()4.166 E F1(void)A F0
-(\))1.666 E
-(Returns non-zero if the history is sti\215ed, zero if it is not.)108 96
-Q F2(Inf)87 124.8 Q(ormation About the History List)-.25 E F0(These fun\
-ctions return information about the entire history list or indi)108
-136.8 Q(vidual list entries.)-.25 E F1(HIST_ENTR)108 160.8 Q 2.5(Y*)-.18
-G(*)-2.5 E F2(history_list)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
-.708(Return a)108 172.8 R F2(NULL)3.208 E F0 .708(terminated array of)
-3.208 F F1(HIST_ENTR)3.208 E 3.208(Y*)-.18 G F0 .708
-(which is the current input history)B 5.707(.E)-.65 G .707
-(lement 0 of this)-5.707 F(list is the be)108 184.8 Q(ginning of time.)
--.15 E(If there is no history)5 E 2.5(,r)-.65 G(eturn)-2.5 E F2(NULL)2.5
-E F0(.)A F1(int)108 208.8 Q F2(wher)2.5 E(e_history)-.18 E F0(\()4.166 E
-F1(void)A F0(\))1.666 E(Returns the of)108 220.8 Q
-(fset of the current history element.)-.25 E F1(HIST_ENTR)108 244.8 Q
-2.5(Y*)-.18 G F2(curr)A(ent_history)-.18 E F0(\()4.166 E F1(void)A F0
-(\))1.666 E 1.373
-(Return the history entry at the current position, as determined by)108
-256.8 R F2(wher)3.873 E(e_history\(\))-.18 E F0 6.373(.I)C 3.873(ft)
--6.373 G 1.374(here is no entry)-3.873 F(there, return a)108 268.8 Q F2
-(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(HIST_ENTR)108 292.8 Q 2.5(Y*)
--.18 G F2(history_get)A F0(\()4.166 E F1(int of)A(fset)-.18 E F0(\))
-1.666 E .288(Return the history entry at position)108 304.8 R F1(of)
-2.787 E(fset)-.18 E F0 2.787(,s)C .287(tarting from)-2.787 F F2
-(history_base)2.787 E F0 5.287(.I)C 2.787(ft)-5.287 G .287
-(here is no entry there, or if)-2.787 F F1(of)2.787 E(fset)-.18 E F0
-(is greater than the history length, return a)108 316.8 Q F2(NULL)2.5 E
-F0(pointer)2.5 E(.)-.55 E F1(int)108 340.8 Q F2(history_total_bytes)2.5
-E F0(\()4.166 E F1(void)A F0(\))1.666 E .391
-(Return the number of bytes that the primary history entries are using.)
-108 352.8 R .392(This function returns the sum of the)5.392 F
-(lengths of all the lines in the history)108 364.8 Q(.)-.65 E F2(Mo)87
-393.6 Q(ving Ar)-.1 E(ound the History List)-.18 E F0
-(These functions allo)108 405.6 Q 2.5(wt)-.25 G(he current inde)-2.5 E
-2.5(xi)-.15 G(nto the history list to be set or changed.)-2.5 E F1(int)
-108 429.6 Q F2(history_set_pos)2.5 E F0(\()4.166 E F1(int pos)A F0(\))
-1.666 E .79(Set the current history of)108 441.6 R .79(fset to)-.25 F F1
-(pos)3.29 E F0 3.29(,a)C 3.29(na)-3.29 G .79(bsolute inde)-3.29 F 3.29
-(xi)-.15 G .79(nto the list.)-3.29 F .79(Returns 1 on success, 0 if)5.79
-F F1(pos)3.29 E F0 .79(is less)3.29 F
-(than zero or greater than the number of history entries.)108 453.6 Q F1
-(HIST_ENTR)108 477.6 Q 2.5(Y*)-.18 G F2(pr)A -.15(ev)-.18 G
-(ious_history).15 E F0(\()4.166 E F1(void)A F0(\))1.666 E .207
-(Back up the current history of)108 489.6 R .207(fset to the pre)-.25 F
-.207(vious history entry)-.25 F 2.708(,a)-.65 G .208
-(nd return a pointer to that entry)-2.708 F 5.208(.I)-.65 G 2.708(ft)
--5.208 G .208(here is)-2.708 F(no pre)108 501.6 Q(vious entry)-.25 E 2.5
-(,r)-.65 G(eturn a)-2.5 E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1
-(HIST_ENTR)108 525.6 Q 2.5(Y*)-.18 G F2(next_history)A F0(\()4.166 E F1
-(void)A F0(\))1.666 E(Mo)108 537.6 Q 1.047 -.15(ve t)-.15 H .747
-(he current history of).15 F .747(fset forw)-.25 F .746(ard to the ne)
--.1 F .746(xt history entry)-.15 F 3.246(,a)-.65 G .746
-(nd return the a pointer to that entry)-3.246 F 5.746(.I)-.65 G(f)-5.746
-E(there is no ne)108 549.6 Q(xt entry)-.15 E 2.5(,r)-.65 G(eturn a)-2.5
-E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F2(Sear)87 578.4 Q
-(ching the History List)-.18 E F0 .005(These functions allo)108 590.4 R
-2.505(ws)-.25 G .006(earching of the history list for entries containin\
-g a speci\214c string.)-2.505 F .006(Searching may be)5.006 F 1.452
-(performed both forw)108 602.4 R 1.452(ard and backw)-.1 F 1.451
-(ard from the current history position.)-.1 F 1.451(The search may be)
-6.451 F F1(anc)3.951 E(hor)-.15 E(ed)-.37 E F0(,)A
-(meaning that the string must match at the be)108 614.4 Q
-(ginning of the history entry)-.15 E(.)-.65 E F1(int)108 638.4 Q F2
-(history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F1(const c)A(har *string)
--.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))1.666 E .155
-(Search the history for)108 650.4 R F1(string)2.655 E F0 2.656(,s)C .156
-(tarting at the current history of)-2.656 F 2.656(fset. If)-.25 F F1
-(dir)2.656 E(ection)-.37 E F0 .156(is less than 0, then the search)2.656
-F .802(is through pre)108 662.4 R .802
-(vious entries, otherwise through subsequent entries.)-.25 F(If)5.801 E
-F1(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064
-(tory inde)108 674.4 R 2.564(xi)-.15 G 2.564(ss)-2.564 G .064
-(et to that history entry)-2.564 F 2.564(,a)-.65 G .064(nd the v)-2.564
-F .064(alue returned is the of)-.25 F .064
-(fset in the line of the entry where)-.25 F F1(string)2.565 E F0 -.1(wa)
-108 686.4 S 2.5(sf).1 G 2.5(ound. Otherwise,)-2.5 F
-(nothing is changed, and a -1 is returned.)2.5 E F1(int)108 710.4 Q F2
-(history_sear)2.5 E(ch_pr)-.18 E(e\214x)-.18 E F0(\()4.166 E F1(const c)
-A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))
-1.666 E .684(Search the history for)108 722.4 R F1(string)3.183 E F0
-3.183(,s)C .683(tarting at the current history of)-3.183 F 3.183
-(fset. The)-.25 F .683(search is anchored: matching lines)3.183 F
-(GNU History 4.3)72 768 Q(2002 January 31)131.79 E(4)195.95 E EP
-%%Page: 5 5
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E 1.063(must be)108 84 R 1.063(gin with)-.15 F/F1
-10/Times-Italic@0 SF(string)3.563 E F0 6.063(.I)C(f)-6.063 E F1(dir)
-3.563 E(ection)-.37 E F0 1.064
-(is less than 0, then the search is through pre)3.563 F 1.064
-(vious entries, otherwise)-.25 F 1.115(through subsequent entries.)108
-96 R(If)6.115 E F1(string)3.615 E F0 1.115
-(is found, then the current history inde)3.615 F 3.614(xi)-.15 G 3.614
-(ss)-3.614 G 1.114(et to that entry)-3.614 F 3.614(,a)-.65 G 1.114
-(nd the)-3.614 F(return v)108 108 Q(alue is 0.)-.25 E
-(Otherwise, nothing is changed, and a -1 is returned.)5 E F1(int)108 132
-Q/F2 10/Times-Bold@0 SF(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E
-F1(const c)A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E -.834
-(ection, int)-.37 F(pos)2.5 E F0(\))3.332 E .603(Search for)108 144 R F1
-(string)3.103 E F0 .603(in the history list, starting at)3.103 F F1(pos)
-3.104 E F0 3.104(,a)C 3.104(na)-3.104 G .604(bsolute inde)-3.104 F 3.104
-(xi)-.15 G .604(nto the list.)-3.104 F(If)5.604 E F1(dir)3.104 E(ection)
--.37 E F0 .604(is ne)3.104 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(,)
-.15 E .608(the search proceeds backw)108 156 R .608(ard from)-.1 F F1
-(pos)3.108 E F0 3.108(,o)C .608(therwise forw)-3.108 F 3.108
-(ard. Returns)-.1 F .608(the absolute inde)3.108 F 3.108(xo)-.15 G 3.108
-(ft)-3.108 G .608(he history ele-)-3.108 F(ment where)108 168 Q F1
-(string)2.5 E F0 -.1(wa)2.5 G 2.5(sf).1 G(ound, or -1 otherwise.)-2.5 E
-F2(Managing the History File)87 196.8 Q F0 .035(The History library can\
- read the history from and write it to a \214le.)108 208.8 R .036
-(This section documents the functions for)5.035 F
-(managing a history \214le.)108 220.8 Q F1(int)108 244.8 Q F2 -.18(re)
-2.5 G(ad_history).18 E F0(\()4.166 E F1(const c)A(har *\214lename)-.15 E
-F0(\))1.666 E .151(Add the contents of)108 256.8 R F1(\214lename)2.651 E
-F0 .151(to the history list, a line at a time.)2.651 F(If)5.15 E F1
-(\214lename)2.65 E F0(is)2.65 E F2(NULL)2.65 E F0 2.65(,t)C .15
-(hen read from)-2.65 F F1(~/.his-)2.65 E(tory)108 268.8 Q F0 5(.R)C
-(eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E
-F1(int)108 292.8 Q F2 -.18(re)2.5 G(ad_history_range).18 E F0(\()4.166 E
-F1(const c)A(har *\214lename)-.15 E 1.666(,i)-.1 G(nt fr)-1.666 E -.834
-(om, int)-.45 F(to)2.5 E F0(\))3.332 E .052(Read a range of lines from)
-108 304.8 R F1(\214lename)2.553 E F0 2.553(,a)C .053
-(dding them to the history list.)-2.553 F .053(Start reading at line)
-5.053 F F1(fr)2.553 E(om)-.45 E F0 .053(and end at)2.553 F F1(to)2.553 E
-F0(.)A(If)108 316.8 Q F1(fr)2.889 E(om)-.45 E F0 .389
-(is zero, start at the be)2.889 F 2.889(ginning. If)-.15 F F1(to)2.889 E
-F0 .389(is less than)2.889 F F1(fr)2.889 E(om)-.45 E F0 2.889(,t)C .388
-(hen read until the end of the \214le.)-2.889 F(If)5.388 E F1
-(\214lename)2.888 E F0(is)108 328.8 Q F2(NULL)2.5 E F0 2.5(,t)C
-(hen read from)-2.5 E F1(~/.history)2.5 E F0 5(.R)C
-(eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E
-F1(int)108 352.8 Q F2(write_history)2.5 E F0(\()4.166 E F1(const c)A
-(har *\214lename)-.15 E F0(\))1.666 E .961(Write the current history to)
-108 364.8 R F1(\214lename)3.461 E F0 3.461(,o)C -.15(ve)-3.611 G
-(rwriting).15 E F1(\214lename)3.461 E F0 .961(if necessary)3.461 F 5.961
-(.I)-.65 G(f)-5.961 E F1(\214lename)3.462 E F0(is)3.462 E F2(NULL)3.462
-E F0 3.462(,t)C .962(hen write)-3.462 F(the history list to)108 376.8 Q
-F1(~/.history)2.5 E F0 5(.R)C(eturns 0 on success, or)-5 E F2(err)2.5 E
-(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108 412.8 Q
-F2(append_history)2.5 E F0(\()4.166 E F1(int nelements,)A(const c)1.666
-E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 424.8 R
-F1(nelements)3.339 E F0 .839(of the history list to)3.339 F F1
-(\214lename)3.339 E F0 5.839(.I)C(f)-5.839 E F1(\214lename)3.339 E F0
-(is)3.339 E F2(NULL)3.339 E F0 3.339(,t)C .838(hen append to)-3.339 F F1
-(~/.history)3.338 E F0(.)A(Returns 0 on success, or)108 436.8 Q F2(err)
-2.5 E(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108
-460.8 Q F2(history_truncate_\214le)2.5 E F0(\()4.166 E F1(const c)A
-(har *\214lename)-.15 E 1.666(,i)-.1 G(nt nlines)-1.666 E F0(\))1.666 E
--.35(Tr)108 472.8 S .38(uncate the history \214le).35 F F1(\214lename)
-2.88 E F0 2.88(,l)C(ea)-2.88 E .38(ving only the last)-.2 F F1(nlines)
-2.881 E F0 2.881(lines. If)2.881 F F1(\214lename)2.881 E F0(is)2.881 E
-F2(NULL)2.881 E F0 2.881(,t)C(hen)-2.881 E F1(~/.history)2.881 E F0(is)
-2.881 E 2.5(truncated. Returns)108 484.8 R 2.5(0o)2.5 G 2.5(ns)-2.5 G
-(uccess, or)-2.5 E F2(err)2.5 E(no)-.15 E F0(on f)2.5 E(ailure.)-.1 E F2
-(History Expansion)87 513.6 Q F0(These functions implement history e)108
-525.6 Q(xpansion.)-.15 E F1(int)108 549.6 Q F2(history_expand)2.5 E F0
-(\()4.166 E F1 -.15(ch)C(ar *string).15 E 1.666(,c)-.1 G(har **output)
--1.816 E F0(\))1.666 E(Expand)108 561.6 Q F1(string)2.5 E F0 2.5(,p)C
-(lacing the result into)-2.5 E F1(output)2.5 E F0 2.5(,ap)C
-(ointer to a string.)-2.5 E(Returns:)5 E 31(0I)144 573.6 S 3.066(fn)-31
-G 3.066(oe)-3.066 G .566(xpansions took place \(or)-3.216 F 3.065(,i)-.4
-G 3.065(ft)-3.065 G .565(he only change in the te)-3.065 F .565(xt w)
--.15 F .565(as the remo)-.1 F -.25(va)-.15 G 3.065(lo).25 G 3.065(fe)
--3.065 G(scape)-3.065 E(characters preceding the history e)180 585.6 Q
-(xpansion character\);)-.15 E 31(1i)144 597.6 S 2.5(fe)-31 G
-(xpansions did tak)-2.65 E 2.5(ep)-.1 G(lace;)-2.5 E 25.17(-1 if)144
-609.6 R(there w)2.5 E(as an error in e)-.1 E(xpansion;)-.15 E 31(2i)144
-621.6 S 2.5(ft)-31 G(he returned line should be displayed, b)-2.5 E
-(ut not e)-.2 E -.15(xe)-.15 G(cuted, as with the).15 E F2(:p)2.5 E F0
-(modi\214er)2.5 E(.)-.55 E(If an error ocurred in e)108 633.6 Q
-(xpansion, then)-.15 E F1(output)2.5 E F0(contains a descripti)2.5 E .3
--.15(ve e)-.25 H(rror message.).15 E F1 -.15(ch)108 657.6 S(ar *).15 E
-F2(get_history_e)2.5 E -.1(ve)-.15 G(nt).1 E F0(\()4.166 E F1(const c)A
-(har *string)-.15 E 1.666(,i)-.1 G(nt *cinde)-1.666 E -.834(x, int)-.2 F
-(qc)2.5 E(har)-.15 E F0(\))3.332 E .262(Returns the te)108 669.6 R .262
-(xt of the history e)-.15 F -.15(ve)-.25 G .262(nt be).15 F .263
-(ginning at)-.15 F F1(string)2.763 E F0(+)2.763 E F1(*cinde)2.763 E(x)
--.2 E F0(.)A F1(*cinde)5.263 E(x)-.2 E F0 .263
-(is modi\214ed to point to after the)2.763 F -2.15 -.25(ev e)108 681.6 T
-.71(nt speci\214er).25 F 5.71(.A)-.55 G 3.21(tf)-5.71 G .71
-(unction entry)-3.21 F(,)-.65 E F1(cinde)3.21 E(x)-.2 E F0 .709
-(points to the inde)3.21 F 3.209(xi)-.15 G(nto)-3.209 E F1(string)3.209
-E F0 .709(where the history e)3.209 F -.15(ve)-.25 G .709
-(nt speci\214ca-).15 F .527(tion be)108 693.6 R(gins.)-.15 E F1(qc)5.527
-E(har)-.15 E F0 .527(is a character that is allo)3.027 F .527
-(wed to end the e)-.25 F -.15(ve)-.25 G .528
-(nt speci\214cation in addition to the `).15 F(`normal')-.74 E(')-.74 E
-(terminating characters.)108 705.6 Q F1 -.15(ch)108 729.6 S(ar **).15 E
-F2(history_tok)2.5 E(enize)-.1 E F0(\()4.166 E F1(const c)A(har *string)
--.15 E F0(\))1.666 E(GNU History 4.3)72 768 Q(2002 January 31)131.79 E
-(5)195.95 E EP
-%%Page: 6 6
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E .239(Return an array of tok)108 84 R .239
-(ens parsed out of)-.1 F/F1 10/Times-Italic@0 SF(string)2.739 E F0 2.739
-(,m)C .238(uch as the shell might.)-2.739 F .238(The tok)5.238 F .238
-(ens are split on the charac-)-.1 F(ters in the)108 96 Q/F2 10
-/Times-Bold@0 SF(history_w)2.5 E(ord_delimiters)-.1 E F0 -.25(va)2.5 G
-(riable, and shell quoting con).25 E -.15(ve)-.4 G(ntions are obe).15 E
-(yed.)-.15 E F1 -.15(ch)108 120 S(ar *).15 E F2(history_ar)2.5 E
-(g_extract)-.1 E F0(\()4.166 E F1(int \214r)A -.834(st, int)-.1 F -.834
-(last, const)2.5 F -.15(ch)2.5 G(ar *string).15 E F0(\))3.332 E .025
-(Extract a string se)108 132 R .025(gment consisting of the)-.15 F F1
-<8c72>2.526 E(st)-.1 E F0(through)2.526 E F1(last)2.526 E F0(ar)2.526 E
-.026(guments present in)-.18 F F1(string)2.526 E F0 5.026(.A)C -.18(rg)
--5.026 G .026(uments are split).18 F(using)108 144 Q F2(history_tok)2.5
-E(enize\(\))-.1 E F0(.)A F2(History V)87 172.8 Q(ariables)-.92 E F0
-(This section describes the e)108 184.8 Q(xternally-visible v)-.15 E
-(ariables e)-.25 E(xported by the GNU History Library)-.15 E(.)-.65 E F1
-(int)108 208.8 Q F2(history_base)2.5 E F0(The logical of)108 220.8 Q
-(fset of the \214rst entry in the history list.)-.25 E F1(int)108 244.8
-Q F2(history_length)2.5 E F0
-(The number of entries currently stored in the history list.)108 256.8 Q
-F1(int)108 280.8 Q F2(history_max_entries)2.5 E F0
-(The maximum number of history entries.)108 292.8 Q
-(This must be changed using)5 E F2(sti\215e_history\(\))2.5 E F0(.)A F1
--.15(ch)108 316.8 S(ar).15 E F2(history_expansion_char)2.5 E F0
-(The character that introduces a history e)108 328.8 Q -.15(ve)-.25 G
-2.5(nt. The).15 F(def)2.5 E(ault is)-.1 E F2(!)2.5 E F0 5(.S)C
-(etting this to 0 inhibits history e)-5 E(xpansion.)-.15 E F1 -.15(ch)
-108 352.8 S(ar).15 E F2(history_subst_char)2.5 E F0
-(The character that in)108 364.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(sw).1 G
-(ord substitution if found at the start of a line.)-2.6 E(The def)5 E
-(ault is)-.1 E F2(^)2.5 E F0(.)A F1 -.15(ch)108 388.8 S(ar).15 E F2
-(history_comment_char)2.5 E F0 .117(During tok)108 400.8 R .117
-(enization, if this character is seen as the \214rst character of a w)
--.1 F .117(ord, then it and all subsequent char)-.1 F(-)-.2 E .276
-(acters up to a ne)108 412.8 R .276
-(wline are ignored, suppressing history e)-.25 F .276
-(xpansion for the remainder of the line.)-.15 F .277(This is dis-)5.276
-F(abled by def)108 424.8 Q(ault.)-.1 E F1 -.15(ch)108 448.8 S(ar *).15 E
-F2(history_w)2.5 E(ord_delimiters)-.1 E F0
-(The characters that separate tok)108 460.8 Q(ens for)-.1 E F2
-(history_tok)2.5 E(enize\(\))-.1 E F0 5(.T)C(he def)-5 E(ault v)-.1 E
-(alue is)-.25 E F2 2.5("\\)2.5 G(t\\n\(\)<>;&|")-2.5 E F0(.)A F1 -.15
-(ch)108 484.8 S(ar *).15 E F2(history_no_expand_chars)2.5 E F0 2.054
-(The list of characters which inhibit history e)108 496.8 R 2.054
-(xpansion if found immediately follo)-.15 F(wing)-.25 E F2
-(history_expan-)4.554 E(sion_char)108 508.8 Q F0 5(.T)C(he def)-5 E
-(ault is space, tab, ne)-.1 E(wline,)-.25 E F2(\\r)2.5 E F0 2.5(,a)C(nd)
--2.5 E F2(=)2.5 E F0(.)A F1 -.15(ch)108 532.8 S(ar *).15 E F2
-(history_sear)2.5 E(ch_delimiter_chars)-.18 E F0 .401(The list of addit\
-ional characters which can delimit a history search string, in addition\
- to space, tab,)108 544.8 R F1(:)2.901 E F0(and)2.901 E F1(?)2.902 E F0
-(in the case of a substring search.)108 556.8 Q(The def)5 E
-(ault is empty)-.1 E(.)-.65 E F1(int)108 580.8 Q F2
-(history_quotes_inhibit_expansion)2.5 E F0 .625
-(If non-zero, single-quoted w)108 592.8 R .625
-(ords are not scanned for the history e)-.1 F .624(xpansion character)
--.15 F 5.624(.T)-.55 G .624(he def)-5.624 F .624(ault v)-.1 F .624
-(alue is)-.25 F(0.)108 604.8 Q F1(rl_lineb)108 628.8 Q(uf_func_t *)-.2 E
-F2(history_inhibit_expansion_function)2.5 E F0 .347
-(This should be set to the address of a function that tak)108 640.8 R
-.348(es tw)-.1 F 2.848(oa)-.1 G -.18(rg)-2.848 G .348(uments: a).18 F F2
-.348(char *)2.848 F F0(\()2.848 E F1(string)A F0 2.848(\)a)C .348(nd an)
--2.848 F F2(int)2.848 E F0(inde)2.848 E(x)-.15 E .228
-(into that string \()108 652.8 R F1(i)A F0 2.728(\). It)B .227
-(should return a non-zero v)2.727 F .227(alue if the history e)-.25 F
-.227(xpansion starting at)-.15 F F1(string[i])2.727 E F0 .227
-(should not)2.727 F .019(be performed; zero if the e)108 664.8 R .019
-(xpansion should be done.)-.15 F .019
-(It is intended for use by applications lik)5.019 F(e)-.1 E F2(bash)
-2.519 E F0 .019(that use)2.519 F(the history e)108 676.8 Q
-(xpansion character for additional purposes.)-.15 E(By def)5 E
-(ault, this v)-.1 E(ariable is set to)-.25 E F2(NULL)2.5 E F0(.)A/F3
-10.95/Times-Bold@0 SF(FILES)72 693.6 Q F1(~/.history)109.666 705.6 Q F0
-(Def)144 717.6 Q(ault \214lename for reading and writing sa)-.1 E -.15
-(ve)-.2 G 2.5(dh).15 G(istory)-2.5 E(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(6)195.95 E EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10.95/Times-Bold@0 SF(SEE ALSO)72 84 Q/F2 10
-/Times-Italic@0 SF(The Gnu Readline Libr)108 96 Q(ary)-.15 E F0 2.5(,B)C
-(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu History Libr)
-108 108 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E
-(y)-.15 E F2(bash)108 120 Q F0(\(1\))A F2 -.37(re)108 132 S(adline).37 E
-F0(\(3\))A F1 -.548(AU)72 148.8 S(THORS).548 E F0(Brian F)108 160.8 Q
-(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108
-172.8 Q(g)-.18 E(Chet Rame)108 189.6 Q 1.3 -.65(y, C)-.15 H(ase W).65 E
-(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E
-(chet@ins.CWR)108 201.6 Q(U.Edu)-.4 E F1 -.11(BU)72 218.4 S 2.738(GR).11
-G(EPOR)-2.738 E(TS)-.438 E F0 .16(If you \214nd a b)108 230.4 R .16
-(ug in the)-.2 F/F3 10/Times-Bold@0 SF(history)2.66 E F0(library)2.66 E
-2.66(,y)-.65 G .16(ou should report it.)-2.66 F .16
-(But \214rst, you should mak)5.16 F 2.66(es)-.1 G .16
-(ure that it really is)-2.66 F 2.5(ab)108 242.4 S
-(ug, and that it appears in the latest v)-2.7 E(ersion of the)-.15 E F3
-(history)2.5 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.).15 E .704
-(Once you ha)108 259.2 R 1.004 -.15(ve d)-.2 H .704(etermined that a b)
-.15 F .704(ug actually e)-.2 F .704(xists, mail a b)-.15 F .705
-(ug report to)-.2 F F2 -.2(bu)3.205 G(g\255r).2 E(eadline)-.37 E F0(@)A
-F2(gnu.or)A(g)-.37 E F0 5.705(.I)C 3.205(fy)-5.705 G(ou)-3.205 E(ha)108
-271.2 Q 1.81 -.15(ve a \214)-.2 H 1.51
-(x, you are welcome to mail that as well!).15 F 1.509
-(Suggestions and `philosophical' b)6.509 F 1.509(ug reports may be)-.2 F
-(mailed to)108 283.2 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2
-(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3
-(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 300 Q
-(ug reports concerning this manual page should be directed to)-.2 E F2
--.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E
-(GNU History 4.3)72 768 Q(2002 January 31)131.79 E(7)195.95 E EP
-%%Trailer
-end
-%%EOF
diff --git a/readline-4.3.orig/doc/hstech.texinfo b/readline-4.3.orig/doc/hstech.texinfo
deleted file mode 100644
index 9494446..0000000
--- a/readline-4.3.orig/doc/hstech.texinfo
+++ /dev/null
@@ -1,550 +0,0 @@
-@ignore
-This file documents the user interface to the GNU History library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@node Programming with GNU History
-@chapter Programming with GNU History
-
-This chapter describes how to interface programs that you write
-with the @sc{gnu} History Library.
-It should be considered a technical guide.
-For information on the interactive use of @sc{gnu} History, @pxref{Using
-History Interactively}.
-
-@menu
-* Introduction to History:: What is the GNU History library for?
-* History Storage:: How information is stored.
-* History Functions:: Functions that you can use.
-* History Variables:: Variables that control behaviour.
-* History Programming Example:: Example of using the GNU History Library.
-@end menu
-
-@node Introduction to History
-@section Introduction to History
-
-Many programs read input from the user a line at a time. The @sc{gnu}
-History library is able to keep track of those lines, associate arbitrary
-data with each line, and utilize information from previous lines in
-composing new ones.
-
-The programmer using the History library has available functions
-for remembering lines on a history list, associating arbitrary data
-with a line, removing lines from the list, searching through the list
-for a line containing an arbitrary text string, and referencing any line
-in the list directly. In addition, a history @dfn{expansion} function
-is available which provides for a consistent user interface across
-different programs.
-
-The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are similar to
-the history substitution provided by @code{csh}.
-
-If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-
-Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file @code{<readline/history.h>} in any file that uses the
-History library's features. It supplies extern declarations for all
-of the library's public functions and variables, and declares all of
-the public data structures.
-
-@node History Storage
-@section History Storage
-
-The history list is an array of history entries. A history entry is
-declared as follows:
-
-@example
-typedef void *histdata_t;
-
-typedef struct _hist_entry @{
- char *line;
- histdata_t data;
-@} HIST_ENTRY;
-@end example
-
-The history list itself might therefore be declared as
-
-@example
-HIST_ENTRY **the_history_list;
-@end example
-
-The state of the History library is encapsulated into a single structure:
-
-@example
-/*
- * A structure used to pass around the current state of the history.
- */
-typedef struct _hist_state @{
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
-@} HISTORY_STATE;
-@end example
-
-If the flags member includes @code{HS_STIFLED}, the history has been
-stifled.
-
-@node History Functions
-@section History Functions
-
-This section describes the calling sequence for the various functions
-exported by the @sc{gnu} History library.
-
-@menu
-* Initializing History and State Management:: Functions to call when you
- want to use history in a
- program.
-* History List Management:: Functions used to manage the list
- of history entries.
-* Information About the History List:: Functions returning information about
- the history list.
-* Moving Around the History List:: Functions used to change the position
- in the history list.
-* Searching the History List:: Functions to search the history list
- for entries containing a string.
-* Managing the History File:: Functions that read and write a file
- containing the history list.
-* History Expansion:: Functions to perform csh-like history
- expansion.
-@end menu
-
-@node Initializing History and State Management
-@subsection Initializing History and State Management
-
-This section describes functions used to initialize and manage
-the state of the History library when you want to use the history
-functions in your program.
-
-@deftypefun void using_history (void)
-Begin a session in which the history functions might be used. This
-initializes the interactive variables.
-@end deftypefun
-
-@deftypefun {HISTORY_STATE *} history_get_history_state (void)
-Return a structure describing the current state of the input history.
-@end deftypefun
-
-@deftypefun void history_set_history_state (HISTORY_STATE *state)
-Set the state of the history list according to @var{state}.
-@end deftypefun
-
-@node History List Management
-@subsection History List Management
-
-These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-
-@deftypefun void add_history (const char *string)
-Place @var{string} at the end of the history list. The associated data
-field (if any) is set to @code{NULL}.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} remove_history (int which)
-Remove history entry at offset @var{which} from the history. The
-removed element is returned so you can free the line, data,
-and containing structure.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} replace_history_entry (int which, const char *line, histdata_t data)
-Make the history entry at offset @var{which} have @var{line} and @var{data}.
-This returns the old entry so you can dispose of the data. In the case
-of an invalid @var{which}, a @code{NULL} pointer is returned.
-@end deftypefun
-
-@deftypefun void clear_history (void)
-Clear the history list by deleting all the entries.
-@end deftypefun
-
-@deftypefun void stifle_history (int max)
-Stifle the history list, remembering only the last @var{max} entries.
-@end deftypefun
-
-@deftypefun int unstifle_history (void)
-Stop stifling the history. This returns the previously-set
-maximum number of history entries (as set by @code{stifle_history()}).
-The value is positive if the history was
-stifled, negative if it wasn't.
-@end deftypefun
-
-@deftypefun int history_is_stifled (void)
-Returns non-zero if the history is stifled, zero if it is not.
-@end deftypefun
-
-@node Information About the History List
-@subsection Information About the History List
-
-These functions return information about the entire history list or
-individual list entries.
-
-@deftypefun {HIST_ENTRY **} history_list (void)
-Return a @code{NULL} terminated array of @code{HIST_ENTRY *} which is the
-current input history. Element 0 of this list is the beginning of time.
-If there is no history, return @code{NULL}.
-@end deftypefun
-
-@deftypefun int where_history (void)
-Returns the offset of the current history element.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} current_history (void)
-Return the history entry at the current position, as determined by
-@code{where_history()}. If there is no entry there, return a @code{NULL}
-pointer.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} history_get (int offset)
-Return the history entry at position @var{offset}, starting from
-@code{history_base} (@pxref{History Variables}).
-If there is no entry there, or if @var{offset}
-is greater than the history length, return a @code{NULL} pointer.
-@end deftypefun
-
-@deftypefun int history_total_bytes (void)
-Return the number of bytes that the primary history entries are using.
-This function returns the sum of the lengths of all the lines in the
-history.
-@end deftypefun
-
-@node Moving Around the History List
-@subsection Moving Around the History List
-
-These functions allow the current index into the history list to be
-set or changed.
-
-@deftypefun int history_set_pos (int pos)
-Set the current history offset to @var{pos}, an absolute index
-into the list.
-Returns 1 on success, 0 if @var{pos} is less than zero or greater
-than the number of history entries.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} previous_history (void)
-Back up the current history offset to the previous history entry, and
-return a pointer to that entry. If there is no previous entry, return
-a @code{NULL} pointer.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} next_history (void)
-Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a @code{NULL} pointer.
-@end deftypefun
-
-@node Searching the History List
-@subsection Searching the History List
-@cindex History Searching
-
-These functions allow searching of the history list for entries containing
-a specific string. Searching may be performed both forward and backward
-from the current history position. The search may be @dfn{anchored},
-meaning that the string must match at the beginning of the history entry.
-@cindex anchored search
-
-@deftypefun int history_search (const char *string, int direction)
-Search the history for @var{string}, starting at the current history offset.
-If @var{direction} is less than 0, then the search is through
-previous entries, otherwise through subsequent entries.
-If @var{string} is found, then
-the current history index is set to that history entry, and the value
-returned is the offset in the line of the entry where
-@var{string} was found. Otherwise, nothing is changed, and a -1 is
-returned.
-@end deftypefun
-
-@deftypefun int history_search_prefix (const char *string, int direction)
-Search the history for @var{string}, starting at the current history
-offset. The search is anchored: matching lines must begin with
-@var{string}. If @var{direction} is less than 0, then the search is
-through previous entries, otherwise through subsequent entries.
-If @var{string} is found, then the
-current history index is set to that entry, and the return value is 0.
-Otherwise, nothing is changed, and a -1 is returned.
-@end deftypefun
-
-@deftypefun int history_search_pos (const char *string, int direction, int pos)
-Search for @var{string} in the history list, starting at @var{pos}, an
-absolute index into the list. If @var{direction} is negative, the search
-proceeds backward from @var{pos}, otherwise forward. Returns the absolute
-index of the history element where @var{string} was found, or -1 otherwise.
-@end deftypefun
-
-@node Managing the History File
-@subsection Managing the History File
-
-The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-
-@deftypefun int read_history (const char *filename)
-Add the contents of @var{filename} to the history list, a line at a time.
-If @var{filename} is @code{NULL}, then read from @file{~/.history}.
-Returns 0 if successful, or @code{errno} if not.
-@end deftypefun
-
-@deftypefun int read_history_range (const char *filename, int from, int to)
-Read a range of lines from @var{filename}, adding them to the history list.
-Start reading at line @var{from} and end at @var{to}.
-If @var{from} is zero, start at the beginning. If @var{to} is less than
-@var{from}, then read until the end of the file. If @var{filename} is
-@code{NULL}, then read from @file{~/.history}. Returns 0 if successful,
-or @code{errno} if not.
-@end deftypefun
-
-@deftypefun int write_history (const char *filename)
-Write the current history to @var{filename}, overwriting @var{filename}
-if necessary.
-If @var{filename} is @code{NULL}, then write the history list to
-@file{~/.history}.
-Returns 0 on success, or @code{errno} on a read or write error.
-@end deftypefun
-
-@deftypefun int append_history (int nelements, const char *filename)
-Append the last @var{nelements} of the history list to @var{filename}.
-If @var{filename} is @code{NULL}, then append to @file{~/.history}.
-Returns 0 on success, or @code{errno} on a read or write error.
-@end deftypefun
-
-@deftypefun int history_truncate_file (const char *filename, int nlines)
-Truncate the history file @var{filename}, leaving only the last
-@var{nlines} lines.
-If @var{filename} is @code{NULL}, then @file{~/.history} is truncated.
-Returns 0 on success, or @code{errno} on failure.
-@end deftypefun
-
-@node History Expansion
-@subsection History Expansion
-
-These functions implement history expansion.
-
-@deftypefun int history_expand (char *string, char **output)
-Expand @var{string}, placing the result into @var{output}, a pointer
-to a string (@pxref{History Interaction}). Returns:
-@table @code
-@item 0
-If no expansions took place (or, if the only change in
-the text was the removal of escape characters preceding the history expansion
-character);
-@item 1
-if expansions did take place;
-@item -1
-if there was an error in expansion;
-@item 2
-if the returned line should be displayed, but not executed,
-as with the @code{:p} modifier (@pxref{Modifiers}).
-@end table
-
-If an error ocurred in expansion, then @var{output} contains a descriptive
-error message.
-@end deftypefun
-
-@deftypefun {char *} get_history_event (const char *string, int *cindex, int qchar)
-Returns the text of the history event beginning at @var{string} +
-@var{*cindex}. @var{*cindex} is modified to point to after the event
-specifier. At function entry, @var{cindex} points to the index into
-@var{string} where the history event specification begins. @var{qchar}
-is a character that is allowed to end the event specification in addition
-to the ``normal'' terminating characters.
-@end deftypefun
-
-@deftypefun {char **} history_tokenize (const char *string)
-Return an array of tokens parsed out of @var{string}, much as the
-shell might. The tokens are split on the characters in the
-@var{history_word_delimiters} variable,
-and shell quoting conventions are obeyed.
-@end deftypefun
-
-@deftypefun {char *} history_arg_extract (int first, int last, const char *string)
-Extract a string segment consisting of the @var{first} through @var{last}
-arguments present in @var{string}. Arguments are split using
-@code{history_tokenize}.
-@end deftypefun
-
-@node History Variables
-@section History Variables
-
-This section describes the externally-visible variables exported by
-the @sc{gnu} History Library.
-
-@deftypevar int history_base
-The logical offset of the first entry in the history list.
-@end deftypevar
-
-@deftypevar int history_length
-The number of entries currently stored in the history list.
-@end deftypevar
-
-@deftypevar int history_max_entries
-The maximum number of history entries. This must be changed using
-@code{stifle_history()}.
-@end deftypevar
-
-@deftypevar char history_expansion_char
-The character that introduces a history event. The default is @samp{!}.
-Setting this to 0 inhibits history expansion.
-@end deftypevar
-
-@deftypevar char history_subst_char
-The character that invokes word substitution if found at the start of
-a line. The default is @samp{^}.
-@end deftypevar
-
-@deftypevar char history_comment_char
-During tokenization, if this character is seen as the first character
-of a word, then it and all subsequent characters up to a newline are
-ignored, suppressing history expansion for the remainder of the line.
-This is disabled by default.
-@end deftypevar
-
-@deftypevar {char *} history_word_delimiters
-The characters that separate tokens for @code{history_tokenize()}.
-The default value is @code{" \t\n()<>;&|"}.
-@end deftypevar
-
-@deftypevar {char *} history_no_expand_chars
-The list of characters which inhibit history expansion if found immediately
-following @var{history_expansion_char}. The default is space, tab, newline,
-carriage return, and @samp{=}.
-@end deftypevar
-
-@deftypevar {char *} history_search_delimiter_chars
-The list of additional characters which can delimit a history search
-string, in addition to space, TAB, @samp{:} and @samp{?} in the case of
-a substring search. The default is empty.
-@end deftypevar
-
-@deftypevar int history_quotes_inhibit_expansion
-If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
-@end deftypevar
-
-@deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
-This should be set to the address of a function that takes two arguments:
-a @code{char *} (@var{string})
-and an @code{int} index into that string (@var{i}).
-It should return a non-zero value if the history expansion starting at
-@var{string[i]} should not be performed; zero if the expansion should
-be done.
-It is intended for use by applications like Bash that use the history
-expansion character for additional purposes.
-By default, this variable is set to @code{NULL}.
-@end deftypevar
-
-@node History Programming Example
-@section History Programming Example
-
-The following program demonstrates simple use of the @sc{gnu} History Library.
-
-@smallexample
-#include <stdio.h>
-#include <readline/history.h>
-
-main (argc, argv)
- int argc;
- char **argv;
-@{
- char line[1024], *t;
- int len, done = 0;
-
- line[0] = 0;
-
- using_history ();
- while (!done)
- @{
- printf ("history$ ");
- fflush (stdout);
- t = fgets (line, sizeof (line) - 1, stdin);
- if (t && *t)
- @{
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- @}
-
- if (!t)
- strcpy (line, "quit");
-
- if (line[0])
- @{
- char *expansion;
- int result;
-
- result = history_expand (line, &expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
-
- if (result < 0 || result == 2)
- @{
- free (expansion);
- continue;
- @}
-
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- @}
-
- if (strcmp (line, "quit") == 0)
- done = 1;
- else if (strcmp (line, "save") == 0)
- write_history ("history_file");
- else if (strcmp (line, "read") == 0)
- read_history ("history_file");
- else if (strcmp (line, "list") == 0)
- @{
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]->line);
- @}
- else if (strncmp (line, "delete", 6) == 0)
- @{
- int which;
- if ((sscanf (line + 6, "%d", &which)) == 1)
- @{
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- @{
- free (entry->line);
- free (entry);
- @}
- @}
- else
- @{
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- @}
- @}
- @}
-@}
-@end smallexample
diff --git a/readline-4.3.orig/doc/hsuser.texinfo b/readline-4.3.orig/doc/hsuser.texinfo
deleted file mode 100644
index 418bfa8..0000000
--- a/readline-4.3.orig/doc/hsuser.texinfo
+++ /dev/null
@@ -1,437 +0,0 @@
-@ignore
-This file documents the user interface to the GNU History library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@node Using History Interactively
-@chapter Using History Interactively
-
-@ifclear BashFeatures
-@defcodeindex bt
-@end ifclear
-
-@ifset BashFeatures
-This chapter describes how to use the @sc{gnu} History Library
-interactively, from a user's standpoint.
-It should be considered a user's guide.
-For information on using the @sc{gnu} History Library in other programs,
-see the @sc{gnu} Readline Library Manual.
-@end ifset
-@ifclear BashFeatures
-This chapter describes how to use the @sc{gnu} History Library interactively,
-from a user's standpoint. It should be considered a user's guide. For
-information on using the @sc{gnu} History Library in your own programs,
-@pxref{Programming with GNU History}.
-@end ifclear
-
-@ifset BashFeatures
-@menu
-* Bash History Facilities:: How Bash lets you manipulate your command
- history.
-* Bash History Builtins:: The Bash builtin commands that manipulate
- the command history.
-* History Interaction:: What it feels like using History as a user.
-@end menu
-@end ifset
-@ifclear BashFeatures
-@menu
-* History Interaction:: What it feels like using History as a user.
-@end menu
-@end ifclear
-
-@ifset BashFeatures
-@node Bash History Facilities
-@section Bash History Facilities
-@cindex command history
-@cindex history list
-
-When the @option{-o history} option to the @code{set} builtin
-is enabled (@pxref{The Set Builtin}),
-the shell provides access to the @dfn{command history},
-the list of commands previously typed.
-The value of the @env{HISTSIZE} shell variable is used as the
-number of commands to save in a history list.
-The text of the last @env{$HISTSIZE}
-commands (default 500) is saved.
-The shell stores each command in the history list prior to
-parameter and variable expansion
-but after history expansion is performed, subject to the
-values of the shell variables
-@env{HISTIGNORE} and @env{HISTCONTROL}.
-
-When the shell starts up, the history is initialized from the
-file named by the @env{HISTFILE} variable (default @file{~/.bash_history}).
-The file named by the value of @env{HISTFILE} is truncated, if
-necessary, to contain no more than the number of lines specified by
-the value of the @env{HISTFILESIZE} variable.
-When an interactive shell exits, the last
-@env{$HISTSIZE} lines are copied from the history list to the file
-named by @env{$HISTFILE}.
-If the @code{histappend} shell option is set (@pxref{Bash Builtins}),
-the lines are appended to the history file,
-otherwise the history file is overwritten.
-If @env{HISTFILE}
-is unset, or if the history file is unwritable, the history is
-not saved. After saving the history, the history file is truncated
-to contain no more than @env{$HISTFILESIZE}
-lines. If @env{HISTFILESIZE} is not set, no truncation is performed.
-
-The builtin command @code{fc} may be used to list or edit and re-execute
-a portion of the history list.
-The @code{history} builtin may be used to display or modify the history
-list and manipulate the history file.
-When using command-line editing, search commands
-are available in each editing mode that provide access to the
-history list (@pxref{Commands For History}).
-
-The shell allows control over which commands are saved on the history
-list. The @env{HISTCONTROL} and @env{HISTIGNORE}
-variables may be set to cause the shell to save only a subset of the
-commands entered.
-The @code{cmdhist}
-shell option, if enabled, causes the shell to attempt to save each
-line of a multi-line command in the same history entry, adding
-semicolons where necessary to preserve syntactic correctness.
-The @code{lithist}
-shell option causes the shell to save the command with embedded newlines
-instead of semicolons.
-The @code{shopt} builtin is used to set these options.
-@xref{Bash Builtins}, for a description of @code{shopt}.
-
-@node Bash History Builtins
-@section Bash History Builtins
-@cindex history builtins
-
-Bash provides two builtin commands which manipulate the
-history list and history file.
-
-@table @code
-
-@item fc
-@btindex fc
-@example
-@code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]}
-@code{fc -s [@var{pat}=@var{rep}] [@var{command}]}
-@end example
-
-Fix Command. In the first form, a range of commands from @var{first} to
-@var{last} is selected from the history list. Both @var{first} and
-@var{last} may be specified as a string (to locate the most recent
-command beginning with that string) or as a number (an index into the
-history list, where a negative number is used as an offset from the
-current command number). If @var{last} is not specified it is set to
-@var{first}. If @var{first} is not specified it is set to the previous
-command for editing and @minus{}16 for listing. If the @option{-l} flag is
-given, the commands are listed on standard output. The @option{-n} flag
-suppresses the command numbers when listing. The @option{-r} flag
-reverses the order of the listing. Otherwise, the editor given by
-@var{ename} is invoked on a file containing those commands. If
-@var{ename} is not given, the value of the following variable expansion
-is used: @code{$@{FCEDIT:-$@{EDITOR:-vi@}@}}. This says to use the
-value of the @env{FCEDIT} variable if set, or the value of the
-@env{EDITOR} variable if that is set, or @code{vi} if neither is set.
-When editing is complete, the edited commands are echoed and executed.
-
-In the second form, @var{command} is re-executed after each instance
-of @var{pat} in the selected command is replaced by @var{rep}.
-
-A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so
-that typing @samp{r cc} runs the last command beginning with @code{cc}
-and typing @samp{r} re-executes the last command (@pxref{Aliases}).
-
-@item history
-@btindex history
-@example
-history [@var{n}]
-history -c
-history -d @var{offset}
-history [-anrw] [@var{filename}]
-history -ps @var{arg}
-@end example
-
-With no options, display the history list with line numbers.
-Lines prefixed with a @samp{*} have been modified.
-An argument of @var{n} lists only the last @var{n} lines.
-Options, if supplied, have the following meanings:
-
-@table @code
-@item -c
-Clear the history list. This may be combined
-with the other options to replace the history list completely.
-
-@item -d @var{offset}
-Delete the history entry at position @var{offset}.
-@var{offset} should be specified as it appears when the history is
-displayed.
-
-@item -a
-Append the new
-history lines (history lines entered since the beginning of the
-current Bash session) to the history file.
-
-@item -n
-Append the history lines not already read from the history file
-to the current history list. These are lines appended to the history
-file since the beginning of the current Bash session.
-
-@item -r
-Read the current history file and append its contents to
-the history list.
-
-@item -w
-Write out the current history to the history file.
-
-@item -p
-Perform history substitution on the @var{arg}s and display the result
-on the standard output, without storing the results in the history list.
-
-@item -s
-The @var{arg}s are added to the end of
-the history list as a single entry.
-
-@end table
-
-When any of the @option{-w}, @option{-r}, @option{-a}, or @option{-n} options is
-used, if @var{filename}
-is given, then it is used as the history file. If not, then
-the value of the @env{HISTFILE} variable is used.
-
-@end table
-@end ifset
-
-@node History Interaction
-@section History Expansion
-@cindex history expansion
-
-The History library provides a history expansion feature that is similar
-to the history expansion provided by @code{csh}. This section
-describes the syntax used to manipulate the history information.
-
-History expansions introduce words from the history list into
-the input stream, making it easy to repeat commands, insert the
-arguments to a previous command into the current input line, or
-fix errors in previous commands quickly.
-
-History expansion takes place in two parts. The first is to determine
-which line from the history list should be used during substitution.
-The second is to select portions of that line for inclusion into the
-current one. The line selected from the history is called the
-@dfn{event}, and the portions of that line that are acted upon are
-called @dfn{words}. Various @dfn{modifiers} are available to manipulate
-the selected words. The line is broken into words in the same fashion
-that Bash does, so that several words
-surrounded by quotes are considered one word.
-History expansions are introduced by the appearance of the
-history expansion character, which is @samp{!} by default.
-@ifset BashFeatures
-Only @samp{\} and @samp{'} may be used to escape the history expansion
-character.
-@end ifset
-
-@ifset BashFeatures
-Several shell options settable with the @code{shopt}
-builtin (@pxref{Bash Builtins}) may be used to tailor
-the behavior of history expansion. If the
-@code{histverify} shell option is enabled, and Readline
-is being used, history substitutions are not immediately passed to
-the shell parser.
-Instead, the expanded line is reloaded into the Readline
-editing buffer for further modification.
-If Readline is being used, and the @code{histreedit}
-shell option is enabled, a failed history expansion will be
-reloaded into the Readline editing buffer for correction.
-The @option{-p} option to the @code{history} builtin command
-may be used to see what a history expansion will do before using it.
-The @option{-s} option to the @code{history} builtin may be used to
-add commands to the end of the history list without actually executing
-them, so that they are available for subsequent recall.
-This is most useful in conjunction with Readline.
-
-The shell allows control of the various characters used by the
-history expansion mechanism with the @code{histchars} variable.
-@end ifset
-
-@menu
-* Event Designators:: How to specify which history line to use.
-* Word Designators:: Specifying which words are of interest.
-* Modifiers:: Modifying the results of substitution.
-@end menu
-
-@node Event Designators
-@subsection Event Designators
-@cindex event designators
-
-An event designator is a reference to a command line entry in the
-history list.
-@cindex history events
-
-@table @asis
-
-@item @code{!}
-Start a history substitution, except when followed by a space, tab,
-the end of the line, @samp{=} or @samp{(}.
-
-@item @code{!@var{n}}
-Refer to command line @var{n}.
-
-@item @code{!-@var{n}}
-Refer to the command @var{n} lines back.
-
-@item @code{!!}
-Refer to the previous command. This is a synonym for @samp{!-1}.
-
-@item @code{!@var{string}}
-Refer to the most recent command starting with @var{string}.
-
-@item @code{!?@var{string}[?]}
-Refer to the most recent command containing @var{string}. The trailing
-@samp{?} may be omitted if the @var{string} is followed immediately by
-a newline.
-
-@item @code{^@var{string1}^@var{string2}^}
-Quick Substitution. Repeat the last command, replacing @var{string1}
-with @var{string2}. Equivalent to
-@code{!!:s/@var{string1}/@var{string2}/}.
-
-@item @code{!#}
-The entire command line typed so far.
-
-@end table
-
-@node Word Designators
-@subsection Word Designators
-
-Word designators are used to select desired words from the event.
-A @samp{:} separates the event specification from the word designator. It
-may be omitted if the word designator begins with a @samp{^}, @samp{$},
-@samp{*}, @samp{-}, or @samp{%}. Words are numbered from the beginning
-of the line, with the first word being denoted by 0 (zero). Words are
-inserted into the current line separated by single spaces.
-
-@need 0.75
-For example,
-
-@table @code
-@item !!
-designates the preceding command. When you type this, the preceding
-command is repeated in toto.
-
-@item !!:$
-designates the last argument of the preceding command. This may be
-shortened to @code{!$}.
-
-@item !fi:2
-designates the second argument of the most recent command starting with
-the letters @code{fi}.
-@end table
-
-@need 0.75
-Here are the word designators:
-
-@table @code
-
-@item 0 (zero)
-The @code{0}th word. For many applications, this is the command word.
-
-@item @var{n}
-The @var{n}th word.
-
-@item ^
-The first argument; that is, word 1.
-
-@item $
-The last argument.
-
-@item %
-The word matched by the most recent @samp{?@var{string}?} search.
-
-@item @var{x}-@var{y}
-A range of words; @samp{-@var{y}} abbreviates @samp{0-@var{y}}.
-
-@item *
-All of the words, except the @code{0}th. This is a synonym for @samp{1-$}.
-It is not an error to use @samp{*} if there is just one word in the event;
-the empty string is returned in that case.
-
-@item @var{x}*
-Abbreviates @samp{@var{x}-$}
-
-@item @var{x}-
-Abbreviates @samp{@var{x}-$} like @samp{@var{x}*}, but omits the last word.
-
-@end table
-
-If a word designator is supplied without an event specification, the
-previous command is used as the event.
-
-@node Modifiers
-@subsection Modifiers
-
-After the optional word designator, you can add a sequence of one or more
-of the following modifiers, each preceded by a @samp{:}.
-
-@table @code
-
-@item h
-Remove a trailing pathname component, leaving only the head.
-
-@item t
-Remove all leading pathname components, leaving the tail.
-
-@item r
-Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving
-the basename.
-
-@item e
-Remove all but the trailing suffix.
-
-@item p
-Print the new command but do not execute it.
-
-@ifset BashFeatures
-@item q
-Quote the substituted words, escaping further substitutions.
-
-@item x
-Quote the substituted words as with @samp{q},
-but break into words at spaces, tabs, and newlines.
-@end ifset
-
-@item s/@var{old}/@var{new}/
-Substitute @var{new} for the first occurrence of @var{old} in the
-event line. Any delimiter may be used in place of @samp{/}.
-The delimiter may be quoted in @var{old} and @var{new}
-with a single backslash. If @samp{&} appears in @var{new},
-it is replaced by @var{old}. A single backslash will quote
-the @samp{&}. The final delimiter is optional if it is the last
-character on the input line.
-
-@item &
-Repeat the previous substitution.
-
-@item g
-Cause changes to be applied over the entire event line. Used in
-conjunction with @samp{s}, as in @code{gs/@var{old}/@var{new}/},
-or with @samp{&}.
-
-@end table
diff --git a/readline-4.3.orig/doc/manvers.texinfo b/readline-4.3.orig/doc/manvers.texinfo
deleted file mode 100644
index 1206cf0..0000000
--- a/readline-4.3.orig/doc/manvers.texinfo
+++ /dev/null
@@ -1,10 +0,0 @@
-@ignore
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-@end ignore
-
-@set EDITION 4.3
-@set VERSION 4.3
-@set UPDATED 2002 March 4
-@set UPDATE-MONTH March 2002
-
-@set LASTCHANGE Mon Mar 4 12:00:16 EST 2002
diff --git a/readline-4.3.orig/doc/readline.0 b/readline-4.3.orig/doc/readline.0
deleted file mode 100644
index 87beeac..0000000
--- a/readline-4.3.orig/doc/readline.0
+++ /dev/null
@@ -1,997 +0,0 @@
-READLINE(3) READLINE(3)
-
-
-
-NNAAMMEE
- readline - get a line from a user with editing
-
-SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssttddiioo..hh>>
- ##iinncclluuddee <<rreeaaddlliinnee//rreeaaddlliinnee..hh>>
- ##iinncclluuddee <<rreeaaddlliinnee//hhiissttoorryy..hh>>
-
- _c_h_a_r _*
- rreeaaddlliinnee (_c_o_n_s_t _c_h_a_r _*_p_r_o_m_p_t);
-
-CCOOPPYYRRIIGGHHTT
- Readline is Copyright (C) 1989-2002 by the Free Software
- Foundation, Inc.
-
-DDEESSCCRRIIPPTTIIOONN
- rreeaaddlliinnee will read a line from the terminal and return it,
- using pprroommpptt as a prompt. If pprroommpptt is NNUULLLL or the empty
- string, no prompt is issued. The line returned is allo-
- cated with _m_a_l_l_o_c(3); the caller must free it when fin-
- ished. The line returned has the final newline removed,
- so only the text of the line remains.
-
- rreeaaddlliinnee offers editing capabilities while the user is
- entering the line. By default, the line editing commands
- are similar to those of emacs. A vi-style line editing
- interface is also available.
-
- This manual page describes only the most basic use of
- rreeaaddlliinnee. Much more functionality is available; see _T_h_e
- _G_N_U _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y and _T_h_e _G_N_U _H_i_s_t_o_r_y _L_i_b_r_a_r_y for addi-
- tional information.
-
-RREETTUURRNN VVAALLUUEE
- rreeaaddlliinnee returns the text of the line read. A blank line
- returns the empty string. If EEOOFF is encountered while
- reading a line, and the line is empty, NNUULLLL is returned.
- If an EEOOFF is read with a non-empty line, it is treated as
- a newline.
-
-NNOOTTAATTIIOONN
- An emacs-style notation is used to denote keystrokes.
- Control keys are denoted by C-_k_e_y, e.g., C-n means Con-
- trol-N. Similarly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x
- means Meta-X. (On keyboards without a _m_e_t_a key, M-_x means
- ESC _x, i.e., press the Escape key then the _x key. This
- makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x means
- ESC-Control-_x, or press the Escape key then hold the Con-
- trol key while pressing the _x key.)
-
- Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which
- normally act as a repeat count. Sometimes, however, it is
- the sign of the argument that is significant. Passing a
- negative argument to a command that acts in the forward
- direction (e.g., kkiillll--lliinnee) causes that command to act in
- a backward direction. Commands whose behavior with argu-
- ments deviates from this are noted.
-
- When a command is described as _k_i_l_l_i_n_g text, the text
- deleted is saved for possible future retrieval (_y_a_n_k_i_n_g).
- The killed text is saved in a _k_i_l_l _r_i_n_g. Consecutive
- kills cause the text to be accumulated into one unit,
- which can be yanked all at once. Commands which do not
- kill text separate the chunks of text on the kill ring.
-
-IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
- Readline is customized by putting commands in an initial-
- ization file (the _i_n_p_u_t_r_c file). The name of this file is
- taken from the value of the IINNPPUUTTRRCC environment variable.
- If that variable is unset, the default is _~_/_._i_n_p_u_t_r_c.
- When a program which uses the readline library starts up,
- the init file is read, and the key bindings and variables
- are set. There are only a few basic constructs allowed in
- the readline init file. Blank lines are ignored. Lines
- beginning with a ## are comments. Lines beginning with a $$
- indicate conditional constructs. Other lines denote key
- bindings and variable settings. Each program using this
- library may add its own commands and bindings.
-
- For example, placing
-
- M-Control-u: universal-argument
- or
- C-Meta-u: universal-argument
-
- into the _i_n_p_u_t_r_c would make M-C-u execute the readline
- command _u_n_i_v_e_r_s_a_l_-_a_r_g_u_m_e_n_t.
-
- The following symbolic character names are recognized
- while processing key bindings: _D_E_L, _E_S_C, _E_S_C_A_P_E, _L_F_D, _N_E_W_-
- _L_I_N_E, _R_E_T, _R_E_T_U_R_N, _R_U_B_O_U_T, _S_P_A_C_E, _S_P_C, and _T_A_B.
-
- In addition to command names, readline allows keys to be
- bound to a string that is inserted when the key is pressed
- (a _m_a_c_r_o).
-
-
- KKeeyy BBiinnddiinnggss
- The syntax for controlling key bindings in the _i_n_p_u_t_r_c
- file is simple. All that is required is the name of the
- command or the text of a macro and a key sequence to which
- it should be bound. The name may be specified in one of
- two ways: as a symbolic key name, possibly with _M_e_t_a_- or
- _C_o_n_t_r_o_l_- prefixes, or as a key sequence.
-
- When using the form kkeeyynnaammee:_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, _k_e_y_-
- _n_a_m_e is the name of a key spelled out in English. For
- example:
-
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the above example, _C_-_u is bound to the function uunniivveerr--
- ssaall--aarrgguummeenntt, _M_-_D_E_L is bound to the function bbaacckk--
- wwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to run the macro
- expressed on the right hand side (that is, to insert the
- text ``> output'' into the line).
-
- In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyy--
- sseeqq differs from kkeeyynnaammee above in that strings denoting an
- entire key sequence may be specified by placing the
- sequence within double quotes. Some GNU Emacs style key
- escapes can be used, as in the following example, but the
- symbolic character names are not recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In this example, _C_-_u is again bound to the function uunnii--
- vveerrssaall--aarrgguummeenntt. _C_-_x _C_-_r is bound to the function
- rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is bound to insert the
- text ``Function Key 1''.
-
- The full set of GNU Emacs style escape sequences available
- when specifying key sequences is
- \\CC-- control prefix
- \\MM-- meta prefix
- \\ee an escape character
- \\\\ backslash
- \\"" literal ", a double quote
- \\'' literal ', a single quote
-
- In addition to the GNU Emacs style escape sequences, a
- second set of backslash escapes is available:
- \\aa alert (bell)
- \\bb backspace
- \\dd delete
- \\ff form feed
- \\nn newline
- \\rr carriage return
- \\tt horizontal tab
- \\vv vertical tab
- \\_n_n_n the eight-bit character whose value is the
- octal value _n_n_n (one to three digits)
- \\xx_H_H the eight-bit character whose value is the
- hexadecimal value _H_H (one or two hex digits)
-
- When entering the text of a macro, single or double quotes
- should be used to indicate a macro definition. Unquoted
- text is assumed to be a function name. In the macro body,
- the backslash escapes described above are expanded. Back-
- slash will quote any other character in the macro text,
- including " and '.
-
- BBaasshh allows the current readline key bindings to be dis-
- played or modified with the bbiinndd builtin command. The
- editing mode may be switched during interactive use by
- using the --oo option to the sseett builtin command. Other
- programs using this library provide similar mechanisms.
- The _i_n_p_u_t_r_c file may be edited and re-read if a program
- does not provide any other means to incorporate new bind-
- ings.
-
- VVaarriiaabblleess
- Readline has variables that can be used to further cus-
- tomize its behavior. A variable may be set in the _i_n_p_u_t_r_c
- file with a statement of the form
-
- sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e
-
- Except where noted, readline variables can take the values
- OOnn or OOffff (without regard to case). The variables and
- their default values are:
-
- bbeellll--ssttyyllee ((aauuddiibbllee))
- Controls what happens when readline wants to ring
- the terminal bell. If set to nnoonnee, readline never
- rings the bell. If set to vviissiibbllee, readline uses a
- visible bell if one is available. If set to aauuddii--
- bbllee, readline attempts to ring the terminal's bell.
- ccoommmmeenntt--bbeeggiinn ((````##''''))
- The string that is inserted in vvii mode when the
- iinnsseerrtt--ccoommmmeenntt command is executed. This command
- is bound to MM--## in emacs mode and to ## in vi com-
- mand mode.
- ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff))
- If set to OOnn, readline performs filename matching
- and completion in a case-insensitive fashion.
- ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000))
- This determines when the user is queried about
- viewing the number of possible completions gener-
- ated by the ppoossssiibbllee--ccoommpplleettiioonnss command. It may
- be set to any integer value greater than or equal
- to zero. If the number of possible completions is
- greater than or equal to the value of this vari-
- able, the user is asked whether or not he wishes to
- view them; otherwise they are simply listed on the
- terminal.
- ccoonnvveerrtt--mmeettaa ((OOnn))
- If set to OOnn, readline will convert characters with
- the eighth bit set to an ASCII key sequence by
- stripping the eighth bit and prefixing it with an
- escape character (in effect, using escape as the
- _m_e_t_a _p_r_e_f_i_x).
- ddiissaabbllee--ccoommpplleettiioonn ((OOffff))
- If set to OOnn, readline will inhibit word comple-
- tion. Completion characters will be inserted into
- the line as if they had been mapped to sseellff--iinnsseerrtt.
- eeddiittiinngg--mmooddee ((eemmaaccss))
- Controls whether readline begins with a set of key
- bindings similar to emacs or vi. eeddiittiinngg--mmooddee can
- be set to either eemmaaccss or vvii.
- eennaabbllee--kkeeyyppaadd ((OOffff))
- When set to OOnn, readline will try to enable the
- application keypad when it is called. Some systems
- need this to enable the arrow keys.
- eexxppaanndd--ttiillddee ((OOffff))
- If set to oonn, tilde expansion is performed when
- readline attempts word completion.
- hhiissttoorryy--pprreesseerrvvee--ppooiinntt
- If set to oonn, the history code attempts to place
- point at the same location on each history line
- retrived with pprreevviioouuss--hhiissttoorryy or nneexxtt--hhiissttoorryy.
- hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
- When set to OOnn, makes readline use a single line
- for display, scrolling the input horizontally on a
- single screen line when it becomes longer than the
- screen width rather than wrapping to a new line.
- iinnppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will enable eight-bit input
- (that is, it will not clear the eighth bit in the
- characters it reads), regardless of what the termi-
- nal claims it can support. The name mmeettaa--ffllaagg is a
- synonym for this variable.
- iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[ CC--JJ''''))
- The string of characters that should terminate an
- incremental search without subsequently executing
- the character as a command. If this variable has
- not been given a value, the characters _E_S_C and _C_-_J
- will terminate an incremental search.
- kkeeyymmaapp ((eemmaaccss))
- Set the current readline keymap. The set of legal
- keymap names is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_,
- _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d, and _v_i_-_i_n_s_e_r_t.
- _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is equivalent
- to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s.
- The value of eeddiittiinngg--mmooddee also affects the default
- keymap.
- mmaarrkk--ddiirreeccttoorriieess ((OOnn))
- If set to OOnn, completed directory names have a
- slash appended.
- mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
- If set to OOnn, history lines that have been modified
- are displayed with a preceding asterisk (**).
- mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff))
- If set to OOnn, completed names which are symbolic
- links to directories have a slash appended (subject
- to the value of mmaarrkk--ddiirreeccttoorriieess).
- mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn))
- This variable, when set to OOnn, causes readline to
- match files whose names begin with a `.' (hidden
- files) when performing filename completion, unless
- the leading `.' is supplied by the user in the
- filename to be completed.
- oouuttppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will display characters with
- the eighth bit set directly rather than as a meta-
- prefixed escape sequence.
- ppaaggee--ccoommpplleettiioonnss ((OOnn))
- If set to OOnn, readline uses an internal _m_o_r_e-like
- pager to display a screenful of possible comple-
- tions at a time.
- pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff))
- If set to OOnn, readline will display completions
- with matches sorted horizontally in alphabetical
- order, rather than down the screen.
- sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff))
- This alters the default behavior of the completion
- functions. If set to oonn, words which have more
- than one possible completion cause the matches to
- be listed immediately instead of ringing the bell.
- vviissiibbllee--ssttaattss ((OOffff))
- If set to OOnn, a character denoting a file's type as
- reported by _s_t_a_t(2) is appended to the filename
- when listing possible completions.
-
- CCoonnddiittiioonnaall CCoonnssttrruuccttss
- Readline implements a facility similar in spirit to the
- conditional compilation features of the C preprocessor
- which allows key bindings and variable settings to be per-
- formed as the result of tests. There are four parser
- directives used.
-
- $$iiff The $$iiff construct allows bindings to be made based
- on the editing mode, the terminal being used, or
- the application using readline. The text of the
- test extends to the end of the line; no characters
- are required to isolate it.
-
- mmooddee The mmooddee== form of the $$iiff directive is used
- to test whether readline is in emacs or vi
- mode. This may be used in conjunction with
- the sseett kkeeyymmaapp command, for instance, to set
- bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and _e_m_a_c_s_-
- _c_t_l_x keymaps only if readline is starting
- out in emacs mode.
-
- tteerrmm The tteerrmm== form may be used to include termi-
- nal-specific key bindings, perhaps to bind
- the key sequences output by the terminal's
- function keys. The word on the right side
- of the == is tested against the full name of
- the terminal and the portion of the terminal
- name before the first --. This allows _s_u_n to
- match both _s_u_n and _s_u_n_-_c_m_d, for instance.
-
- aapppplliiccaattiioonn
- The aapppplliiccaattiioonn construct is used to include
- application-specific settings. Each program
- using the readline library sets the _a_p_p_l_i_c_a_-
- _t_i_o_n _n_a_m_e, and an initialization file can
- test for a particular value. This could be
- used to bind key sequences to functions use-
- ful for a specific program. For instance,
- the following command adds a key sequence
- that quotes the current or previous word in
- Bash:
-
- $$iiff Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $$eennddiiff
-
- $$eennddiiff This command, as seen in the previous example, ter-
- minates an $$iiff command.
-
- $$eellssee Commands in this branch of the $$iiff directive are
- executed if the test fails.
-
- $$iinncclluuddee
- This directive takes a single filename as an argu-
- ment and reads commands and bindings from that
- file. For example, the following directive would
- read _/_e_t_c_/_i_n_p_u_t_r_c:
-
- $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c
-
-SSEEAARRCCHHIINNGG
- Readline provides commands for searching through the com-
- mand history for lines containing a specified string.
- There are two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_-
- _t_a_l.
-
- Incremental searches begin before the user has finished
- typing the search string. As each character of the search
- string is typed, readline displays the next entry from the
- history matching the string typed so far. An incremental
- search requires only as many characters as needed to find
- the desired history entry. To search backward in the his-
- tory for a particular string, type CC--rr. Typing CC--ss
- searches forward through the history. The characters pre-
- sent in the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are
- used to terminate an incremental search. If that variable
- has not been assigned a value the _E_s_c_a_p_e and CC--JJ charac-
- ters will terminate an incremental search. CC--GG will abort
- an incremental search and restore the original line. When
- the search is terminated, the history entry containing the
- search string becomes the current line.
-
- To find other matching entries in the history list, type
- CC--ss or CC--rr as appropriate. This will search backward or
- forward in the history for the next line matching the
- search string typed so far. Any other key sequence bound
- to a readline command will terminate the search and exe-
- cute that command. For instance, a newline will terminate
- the search and accept the line, thereby executing the com-
- mand from the history list. A movement command will ter-
- minate the search, make the last line found the current
- line, and begin editing.
-
- Non-incremental searches read the entire search string
- before starting to search for matching history lines. The
- search string may be typed by the user or be part of the
- contents of the current line.
-
-EEDDIITTIINNGG CCOOMMMMAANNDDSS
- The following is a list of the names of the commands and
- the default key sequences to which they are bound. Com-
- mand names without an accompanying key sequence are
- unbound by default.
-
- In the following descriptions, _p_o_i_n_t refers to the current
- cursor position, and _m_a_r_k refers to a cursor position
- saved by the sseett--mmaarrkk command. The text between the point
- and mark is referred to as the _r_e_g_i_o_n.
-
- CCoommmmaannddss ffoorr MMoovviinngg
- bbeeggiinnnniinngg--ooff--lliinnee ((CC--aa))
- Move to the start of the current line.
- eenndd--ooff--lliinnee ((CC--ee))
- Move to the end of the line.
- ffoorrwwaarrdd--cchhaarr ((CC--ff))
- Move forward a character.
- bbaacckkwwaarrdd--cchhaarr ((CC--bb))
- Move back a character.
- ffoorrwwaarrdd--wwoorrdd ((MM--ff))
- Move forward to the end of the next word. Words
- are composed of alphanumeric characters (letters
- and digits).
- bbaacckkwwaarrdd--wwoorrdd ((MM--bb))
- Move back to the start of the current or previous
- word. Words are composed of alphanumeric charac-
- ters (letters and digits).
- cclleeaarr--ssccrreeeenn ((CC--ll))
- Clear the screen leaving the current line at the
- top of the screen. With an argument, refresh the
- current line without clearing the screen.
- rreeddrraaww--ccuurrrreenntt--lliinnee
- Refresh the current line.
-
- CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy
- aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn))
- Accept the line regardless of where the cursor is.
- If this line is non-empty, it may be added to the
- history list for future recall with aadddd__hhiissttoorryy(()).
- If the line is a modified history line, the history
- line is restored to its original state.
- pprreevviioouuss--hhiissttoorryy ((CC--pp))
- Fetch the previous command from the history list,
- moving back in the list.
- nneexxtt--hhiissttoorryy ((CC--nn))
- Fetch the next command from the history list, mov-
- ing forward in the list.
- bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<))
- Move to the first line in the history.
- eenndd--ooff--hhiissttoorryy ((MM-->>))
- Move to the end of the input history, i.e., the
- line currently being entered.
- rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr))
- Search backward starting at the current line and
- moving `up' through the history as necessary. This
- is an incremental search.
- ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss))
- Search forward starting at the current line and
- moving `down' through the history as necessary.
- This is an incremental search.
- nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp))
- Search backward through the history starting at the
- current line using a non-incremental search for a
- string supplied by the user.
- nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn))
- Search forward through the history using a non-
- incremental search for a string supplied by the
- user.
- hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd
- Search forward through the history for the string
- of characters between the start of the current line
- and the current cursor position (the _p_o_i_n_t). This
- is a non-incremental search.
- hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd
- Search backward through the history for the string
- of characters between the start of the current line
- and the point. This is a non-incremental search.
- yyaannkk--nntthh--aarrgg ((MM--CC--yy))
- Insert the first argument to the previous command
- (usually the second word on the previous line) at
- point. With an argument _n, insert the _nth word
- from the previous command (the words in the previ-
- ous command begin with word 0). A negative argu-
- ment inserts the _nth word from the end of the pre-
- vious command.
- yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__))
- Insert the last argument to the previous command
- (the last word of the previous history entry).
- With an argument, behave exactly like yyaannkk--nntthh--aarrgg.
- Successive calls to yyaannkk--llaasstt--aarrgg move back through
- the history list, inserting the last argument of
- each line in turn.
-
- CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt
- ddeelleettee--cchhaarr ((CC--dd))
- Delete the character at point. If point is at the
- beginning of the line, there are no characters in
- the line, and the last character typed was not
- bound to ddeelleettee--cchhaarr, then return EEOOFF.
- bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
- Delete the character behind the cursor. When given
- a numeric argument, save the deleted text on the
- kill ring.
- ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr
- Delete the character under the cursor, unless the
- cursor is at the end of the line, in which case the
- character behind the cursor is deleted.
- qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv))
- Add the next character that you type to the line
- verbatim. This is how to insert characters like
- CC--qq, for example.
- ttaabb--iinnsseerrtt ((MM--TTAABB))
- Insert a tab character.
- sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......))
- Insert the character typed.
- ttrraannssppoossee--cchhaarrss ((CC--tt))
- Drag the character before point forward over the
- character at point, moving point forward as well.
- If point is at the end of the line, then this
- transposes the two characters before point. Nega-
- tive arguments have no effect.
- ttrraannssppoossee--wwoorrddss ((MM--tt))
- Drag the word before point past the word after
- point, moving point over that word as well. If
- point is at the end of the line, this transposes
- the last two words on the line.
- uuppccaassee--wwoorrdd ((MM--uu))
- Uppercase the current (or following) word. With a
- negative argument, uppercase the previous word, but
- do not move point.
- ddoowwnnccaassee--wwoorrdd ((MM--ll))
- Lowercase the current (or following) word. With a
- negative argument, lowercase the previous word, but
- do not move point.
- ccaappiittaalliizzee--wwoorrdd ((MM--cc))
- Capitalize the current (or following) word. With a
- negative argument, capitalize the previous word,
- but do not move point.
- oovveerrwwrriittee--mmooddee
- Toggle overwrite mode. With an explicit positive
- numeric argument, switches to overwrite mode. With
- an explicit non-positive numeric argument, switches
- to insert mode. This command affects only eemmaaccss
- mode; vvii mode does overwrite differently. Each
- call to _r_e_a_d_l_i_n_e_(_) starts in insert mode. In over-
- write mode, characters bound to sseellff--iinnsseerrtt replace
- the text at point rather than pushing the text to
- the right. Characters bound to bbaacckk--
- wwaarrdd--ddeelleettee--cchhaarr replace the character before point
- with a space. By default, this command is unbound.
-
- KKiilllliinngg aanndd YYaannkkiinngg
- kkiillll--lliinnee ((CC--kk))
- Kill the text from point to the end of the line.
- bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt))
- Kill backward to the beginning of the line.
- uunniixx--lliinnee--ddiissccaarrdd ((CC--uu))
- Kill backward from point to the beginning of the
- line. The killed text is saved on the kill-ring.
- kkiillll--wwhhoollee--lliinnee
- Kill all characters on the current line, no matter
- where point is.
- kkiillll--wwoorrdd ((MM--dd))
- Kill from point the end of the current word, or if
- between words, to the end of the next word. Word
- boundaries are the same as those used by ffoorr--
- wwaarrdd--wwoorrdd.
- bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt))
- Kill the word behind point. Word boundaries are
- the same as those used by bbaacckkwwaarrdd--wwoorrdd.
- uunniixx--wwoorrdd--rruubboouutt ((CC--ww))
- Kill the word behind point, using white space as a
- word boundary. The killed text is saved on the
- kill-ring.
- ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\))
- Delete all spaces and tabs around point.
- kkiillll--rreeggiioonn
- Kill the text between the point and _m_a_r_k (saved
- cursor position). This text is referred to as the
- _r_e_g_i_o_n.
- ccooppyy--rreeggiioonn--aass--kkiillll
- Copy the text in the region to the kill buffer.
- ccooppyy--bbaacckkwwaarrdd--wwoorrdd
- Copy the word before point to the kill buffer. The
- word boundaries are the same as bbaacckkwwaarrdd--wwoorrdd.
- ccooppyy--ffoorrwwaarrdd--wwoorrdd
- Copy the word following point to the kill buffer.
- The word boundaries are the same as ffoorrwwaarrdd--wwoorrdd.
- yyaannkk ((CC--yy))
- Yank the top of the kill ring into the buffer at
- point.
- yyaannkk--ppoopp ((MM--yy))
- Rotate the kill ring, and yank the new top. Only
- works following yyaannkk or yyaannkk--ppoopp.
-
- NNuummeerriicc AArrgguummeennttss
- ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----))
- Add this digit to the argument already accumulat-
- ing, or start a new argument. M-- starts a nega-
- tive argument.
- uunniivveerrssaall--aarrgguummeenntt
- This is another way to specify an argument. If
- this command is followed by one or more digits,
- optionally with a leading minus sign, those digits
- define the argument. If the command is followed by
- digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the
- numeric argument, but is otherwise ignored. As a
- special case, if this command is immediately fol-
- lowed by a character that is neither a digit or
- minus sign, the argument count for the next command
- is multiplied by four. The argument count is ini-
- tially one, so executing this function the first
- time makes the argument count four, a second time
- makes the argument count sixteen, and so on.
-
- CCoommpplleettiinngg
- ccoommpplleettee ((TTAABB))
- Attempt to perform completion on the text before
- point. The actual completion performed is applica-
- tion-specific. BBaasshh, for instance, attempts com-
- pletion treating the text as a variable (if the
- text begins with $$), username (if the text begins
- with ~~), hostname (if the text begins with @@), or
- command (including aliases and functions) in turn.
- If none of these produces a match, filename comple-
- tion is attempted. GGddbb, on the other hand, allows
- completion of program functions and variables, and
- only attempts filename completion under certain
- circumstances.
- ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??))
- List the possible completions of the text before
- point.
- iinnsseerrtt--ccoommpplleettiioonnss ((MM--**))
- Insert all completions of the text before point
- that would have been generated by ppoossssiibbllee--ccoommppllee--
- ttiioonnss.
- mmeennuu--ccoommpplleettee
- Similar to ccoommpplleettee, but replaces the word to be
- completed with a single match from the list of pos-
- sible completions. Repeated execution of mmeennuu--ccoomm--
- pplleettee steps through the list of possible comple-
- tions, inserting each match in turn. At the end of
- the list of completions, the bell is rung (subject
- to the setting of 00aanndd tthhee oorriiggiinnaall tteexxtt iiss
- rreessttoorreedd.. AAnn aarrgguummeenntt ooff _n mmoovveess _n ppoossiittiioonnss ffoorr--
- wwaarrdd iinn tthhee lliisstt ooff mmaattcchheess;; aa nneeggaattiivvee aarrgguummeenntt
- mmaayy bbee uusseedd ttoo mmoovvee bbaacckkwwaarrdd tthhrroouugghh tthhee lliisstt..
- TThhiiss ccoommmmaanndd iiss iinntteennddeedd ttoo bbee bboouunndd ttoo TTAABB,, bbuutt iiss
- uunnbboouunndd bbyy ddeeffaauulltt..
- ddeelleettee--cchhaarr--oorr--lliisstt
- Deletes the character under the cursor if not at
- the beginning or end of the line (like ddeelleettee--
- cchhaarr). If at the end of the line, behaves identi-
- cally to ppoossssiibbllee--ccoommpplleettiioonnss.
-
- KKeeyybbooaarrdd MMaaccrrooss
- ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (())
- Begin saving the characters typed into the current
- keyboard macro.
- eenndd--kkbbdd--mmaaccrroo ((CC--xx ))))
- Stop saving the characters typed into the current
- keyboard macro and store the definition.
- ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee))
- Re-execute the last keyboard macro defined, by mak-
- ing the characters in the macro appear as if typed
- at the keyboard.
-
- MMiisscceellllaanneeoouuss
- rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr))
- Read in the contents of the _i_n_p_u_t_r_c file, and
- incorporate any bindings or variable assignments
- found there.
- aabboorrtt ((CC--gg))
- Abort the current editing command and ring the ter-
- minal's bell (subject to the setting of
- bbeellll--ssttyyllee).
- ddoo--uuppppeerrccaassee--vveerrssiioonn ((MM--aa,, MM--bb,, MM--_x,, ......))
- If the metafied character _x is lowercase, run the
- command that is bound to the corresponding upper-
- case character.
- pprreeffiixx--mmeettaa ((EESSCC))
- Metafy the next character typed. EESSCC ff is equiva-
- lent to MMeettaa--ff.
- uunnddoo ((CC--__,, CC--xx CC--uu))
- Incremental undo, separately remembered for each
- line.
- rreevveerrtt--lliinnee ((MM--rr))
- Undo all changes made to this line. This is like
- executing the uunnddoo command enough times to return
- the line to its initial state.
- ttiillddee--eexxppaanndd ((MM--&&))
- Perform tilde expansion on the current word.
- sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>))
- Set the mark to the point. If a numeric argument
- is supplied, the mark is set to that position.
- eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx))
- Swap the point with the mark. The current cursor
- position is set to the saved position, and the old
- cursor position is saved as the mark.
- cchhaarraacctteerr--sseeaarrcchh ((CC--]]))
- A character is read and point is moved to the next
- occurrence of that character. A negative count
- searches for previous occurrences.
- cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]]))
- A character is read and point is moved to the pre-
- vious occurrence of that character. A negative
- count searches for subsequent occurrences.
- iinnsseerrtt--ccoommmmeenntt ((MM--##))
- Without a numeric argument, the value of the read-
- line ccoommmmeenntt--bbeeggiinn variable is inserted at the
- beginning of the current line. If a numeric argu-
- ment is supplied, this command acts as a toggle:
- if the characters at the beginning of the line do
- not match the value of ccoommmmeenntt--bbeeggiinn, the value is
- inserted, otherwise the characters in ccoommmmeenntt--bbeeggiinn
- are deleted from the beginning of the line. In
- either case, the line is accepted as if a newline
- had been typed. The default value of ccoommmmeenntt--bbeeggiinn
- makes the current line a shell comment. If a
- numeric argument causes the comment character to be
- removed, the line will be executed by the shell.
- dduummpp--ffuunnccttiioonnss
- Print all of the functions and their key bindings
- to the readline output stream. If a numeric
- argument is supplied, the output is formatted in
- such a way that it can be made part of an _i_n_p_u_t_r_c
- file.
- dduummpp--vvaarriiaabblleess
- Print all of the settable variables and their val-
- ues to the readline output stream. If a numeric
- argument is supplied, the output is formatted in
- such a way that it can be made part of an _i_n_p_u_t_r_c
- file.
- dduummpp--mmaaccrrooss
- Print all of the readline key sequences bound to
- macros and the strings they ouput. If a numeric
- argument is supplied, the output is formatted in
- such a way that it can be made part of an _i_n_p_u_t_r_c
- file.
- eemmaaccss--eeddiittiinngg--mmooddee ((CC--ee))
- When in vvii command mode, this causes a switch to
- eemmaaccss editing mode.
- vvii--eeddiittiinngg--mmooddee ((MM--CC--jj))
- When in eemmaaccss editing mode, this causes a switch to
- vvii editing mode.
-
-DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
- The following is a list of the default emacs and vi bind-
- ings. Characters with the eighth bit set are written as
- M-<character>, and are referred to as _m_e_t_a_f_i_e_d characters.
- The printable ASCII characters not mentioned in the list
- of emacs standard bindings are bound to the sseellff--iinnsseerrtt
- function, which just inserts the given character into the
- input line. In vi insertion mode, all characters not
- specifically mentioned are bound to sseellff--iinnsseerrtt. Charac-
- ters assigned to signal generation by _s_t_t_y(1) or the ter-
- minal driver, such as C-Z or C-C, retain that function.
- Upper and lower case metafied characters are bound to the
- same function in the emacs mode meta keymap. The remain-
- ing characters are unbound, which causes readline to ring
- the bell (subject to the setting of the bbeellll--ssttyyllee vari-
- able).
-
- EEmmaaccss MMooddee
- Emacs Standard bindings
-
- "C-@" set-mark
- "C-A" beginning-of-line
- "C-B" backward-char
- "C-D" delete-char
- "C-E" end-of-line
- "C-F" forward-char
- "C-G" abort
- "C-H" backward-delete-char
- "C-I" complete
- "C-J" accept-line
- "C-K" kill-line
- "C-L" clear-screen
- "C-M" accept-line
- "C-N" next-history
- "C-P" previous-history
- "C-Q" quoted-insert
- "C-R" reverse-search-history
- "C-S" forward-search-history
- "C-T" transpose-chars
- "C-U" unix-line-discard
- "C-V" quoted-insert
- "C-W" unix-word-rubout
- "C-Y" yank
- "C-]" character-search
- "C-_" undo
- " " to "/" self-insert
- "0" to "9" self-insert
- ":" to "~" self-insert
- "C-?" backward-delete-char
-
- Emacs Meta bindings
-
- "M-C-G" abort
- "M-C-H" backward-kill-word
- "M-C-I" tab-insert
- "M-C-J" vi-editing-mode
- "M-C-M" vi-editing-mode
- "M-C-R" revert-line
- "M-C-Y" yank-nth-arg
- "M-C-[" complete
- "M-C-]" character-search-backward
- "M-space" set-mark
- "M-#" insert-comment
- "M-&" tilde-expand
- "M-*" insert-completions
- "M--" digit-argument
- "M-." yank-last-arg
- "M-0" digit-argument
- "M-1" digit-argument
- "M-2" digit-argument
- "M-3" digit-argument
- "M-4" digit-argument
- "M-5" digit-argument
- "M-6" digit-argument
- "M-7" digit-argument
- "M-8" digit-argument
- "M-9" digit-argument
- "M-<" beginning-of-history
- "M-=" possible-completions
- "M->" end-of-history
- "M-?" possible-completions
- "M-B" backward-word
- "M-C" capitalize-word
- "M-D" kill-word
- "M-F" forward-word
- "M-L" downcase-word
- "M-N" non-incremental-forward-search-history
- "M-P" non-incremental-reverse-search-history
- "M-R" revert-line
- "M-T" transpose-words
- "M-U" upcase-word
- "M-Y" yank-pop
- "M-\" delete-horizontal-space
- "M-~" tilde-expand
- "M-C-?" backward-kill-word
- "M-_" yank-last-arg
-
- Emacs Control-X bindings
-
- "C-XC-G" abort
- "C-XC-R" re-read-init-file
- "C-XC-U" undo
- "C-XC-X" exchange-point-and-mark
- "C-X(" start-kbd-macro
- "C-X)" end-kbd-macro
- "C-XE" call-last-kbd-macro
- "C-XC-?" backward-kill-line
-
-
- VVII MMooddee bbiinnddiinnggss
- VI Insert Mode functions
-
- "C-D" vi-eof-maybe
- "C-H" backward-delete-char
- "C-I" complete
- "C-J" accept-line
- "C-M" accept-line
- "C-R" reverse-search-history
- "C-S" forward-search-history
- "C-T" transpose-chars
- "C-U" unix-line-discard
- "C-V" quoted-insert
- "C-W" unix-word-rubout
- "C-Y" yank
- "C-[" vi-movement-mode
- "C-_" undo
- " " to "~" self-insert
- "C-?" backward-delete-char
-
- VI Command Mode functions
-
- "C-D" vi-eof-maybe
- "C-E" emacs-editing-mode
- "C-G" abort
- "C-H" backward-char
- "C-J" accept-line
- "C-K" kill-line
- "C-L" clear-screen
- "C-M" accept-line
- "C-N" next-history
- "C-P" previous-history
- "C-Q" quoted-insert
- "C-R" reverse-search-history
- "C-S" forward-search-history
- "C-T" transpose-chars
- "C-U" unix-line-discard
- "C-V" quoted-insert
- "C-W" unix-word-rubout
- "C-Y" yank
- "C-_" vi-undo
- " " forward-char
- "#" insert-comment
- "$" end-of-line
- "%" vi-match
- "&" vi-tilde-expand
- "*" vi-complete
- "+" next-history
- "," vi-char-search
- "-" previous-history
- "." vi-redo
- "/" vi-search
- "0" beginning-of-line
- "1" to "9" vi-arg-digit
- ";" vi-char-search
- "=" vi-complete
- "?" vi-search
- "A" vi-append-eol
- "B" vi-prev-word
- "C" vi-change-to
- "D" vi-delete-to
- "E" vi-end-word
- "F" vi-char-search
- "G" vi-fetch-history
- "I" vi-insert-beg
- "N" vi-search-again
- "P" vi-put
- "R" vi-replace
- "S" vi-subst
- "T" vi-char-search
- "U" revert-line
- "W" vi-next-word
- "X" backward-delete-char
- "Y" vi-yank-to
- "\" vi-complete
- "^" vi-first-print
- "_" vi-yank-arg
- "`" vi-goto-mark
- "a" vi-append-mode
- "b" vi-prev-word
- "c" vi-change-to
- "d" vi-delete-to
- "e" vi-end-word
- "f" vi-char-search
- "h" backward-char
- "i" vi-insertion-mode
- "j" next-history
- "k" prev-history
- "l" forward-char
- "m" vi-set-mark
- "n" vi-search-again
- "p" vi-put
- "r" vi-change-char
- "s" vi-subst
- "t" vi-char-search
- "u" vi-undo
- "w" vi-next-word
- "x" vi-delete
- "y" vi-yank-to
- "|" vi-column
- "~" vi-change-case
-
-SSEEEE AALLSSOO
- _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _b_a_s_h(1)
-
-FFIILLEESS
- _~_/_._i_n_p_u_t_r_c
- Individual rreeaaddlliinnee initialization file
-
-AAUUTTHHOORRSS
- Brian Fox, Free Software Foundation
- bfox@gnu.org
-
- Chet Ramey, Case Western Reserve University
- chet@ins.CWRU.Edu
-
-BBUUGG RREEPPOORRTTSS
- If you find a bug in rreeaaddlliinnee,, you should report it. But
- first, you should make sure that it really is a bug, and
- that it appears in the latest version of the rreeaaddlliinnee
- library that you have.
-
- Once you have determined that a bug actually exists, mail
- a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix,
- you are welcome to mail that as well! Suggestions and
- `philosophical' bug reports may be mailed to _b_u_g_-_r_e_a_d_-
- _l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup
- ggnnuu..bbaasshh..bbuugg.
-
- Comments and bug reports concerning this manual page
- should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
-
-BBUUGGSS
- It's too big and too slow.
-
-
-
-GNU Readline 4.3 2002 January 22 READLINE(3)
diff --git a/readline-4.3.orig/doc/readline.3 b/readline-4.3.orig/doc/readline.3
deleted file mode 100644
index afd6ba2..0000000
--- a/readline-4.3.orig/doc/readline.3
+++ /dev/null
@@ -1,1272 +0,0 @@
-.\"
-.\" MAN PAGE COMMENTS to
-.\"
-.\" Chet Ramey
-.\" Information Network Services
-.\" Case Western Reserve University
-.\" chet@ins.CWRU.Edu
-.\"
-.\" Last Change: Tue Jan 22 09:18:25 EST 2002
-.\"
-.TH READLINE 3 "2002 January 22" "GNU Readline 4.3"
-.\"
-.\" File Name macro. This used to be `.PN', for Path Name,
-.\" but Sun doesn't seem to like that very much.
-.\"
-.de FN
-\fI\|\\$1\|\fP
-..
-.SH NAME
-readline \- get a line from a user with editing
-.SH SYNOPSIS
-.LP
-.nf
-.ft B
-#include <stdio.h>
-#include <readline/readline.h>
-#include <readline/history.h>
-.ft
-.fi
-.LP
-.nf
-\fIchar *\fP
-.br
-\fBreadline\fP (\fIconst char *prompt\fP);
-.fi
-.SH COPYRIGHT
-.if n Readline is Copyright (C) 1989\-2002 by the Free Software Foundation, Inc.
-.if t Readline is Copyright \(co 1989\-2002 by the Free Software Foundation, Inc.
-.SH DESCRIPTION
-.LP
-.B readline
-will read a line from the terminal
-and return it, using
-.B prompt
-as a prompt. If
-.B prompt
-is \fBNULL\fP or the empty string, no prompt is issued.
-The line returned is allocated with
-.IR malloc (3);
-the caller must free it when finished. The line returned
-has the final newline removed, so only the text of the line
-remains.
-.LP
-.B readline
-offers editing capabilities while the user is entering the
-line.
-By default, the line editing commands
-are similar to those of emacs.
-A vi\-style line editing interface is also available.
-.LP
-This manual page describes only the most basic use of \fBreadline\fP.
-Much more functionality is available; see
-\fIThe GNU Readline Library\fP and \fIThe GNU History Library\fP
-for additional information.
-.SH RETURN VALUE
-.LP
-.B readline
-returns the text of the line read. A blank line
-returns the empty string. If
-.B EOF
-is encountered while reading a line, and the line is empty,
-.B NULL
-is returned. If an
-.B EOF
-is read with a non\-empty line, it is
-treated as a newline.
-.SH NOTATION
-.LP
-An emacs-style notation is used to denote
-keystrokes. Control keys are denoted by C\-\fIkey\fR, e.g., C\-n
-means Control\-N. Similarly,
-.I meta
-keys are denoted by M\-\fIkey\fR, so M\-x means Meta\-X. (On keyboards
-without a
-.I meta
-key, M\-\fIx\fP means ESC \fIx\fP, i.e., press the Escape key
-then the
-.I x
-key. This makes ESC the \fImeta prefix\fP.
-The combination M\-C\-\fIx\fP means ESC\-Control\-\fIx\fP,
-or press the Escape key
-then hold the Control key while pressing the
-.I x
-key.)
-.PP
-Readline commands may be given numeric
-.IR arguments ,
-which normally act as a repeat count. Sometimes, however, it is the
-sign of the argument that is significant. Passing a negative argument
-to a command that acts in the forward direction (e.g., \fBkill\-line\fP)
-causes that command to act in a backward direction. Commands whose
-behavior with arguments deviates from this are noted.
-.PP
-When a command is described as \fIkilling\fP text, the text
-deleted is saved for possible future retrieval
-(\fIyanking\fP). The killed text is saved in a
-\fIkill ring\fP. Consecutive kills cause the text to be
-accumulated into one unit, which can be yanked all at once.
-Commands which do not kill text separate the chunks of text
-on the kill ring.
-.SH INITIALIZATION FILE
-.LP
-Readline is customized by putting commands in an initialization
-file (the \fIinputrc\fP file).
-The name of this file is taken from the value of the
-.B INPUTRC
-environment variable. If that variable is unset, the default is
-.IR ~/.inputrc .
-When a program which uses the readline library starts up, the
-init file is read, and the key bindings and variables are set.
-There are only a few basic constructs allowed in the
-readline init file. Blank lines are ignored.
-Lines beginning with a \fB#\fP are comments.
-Lines beginning with a \fB$\fP indicate conditional constructs.
-Other lines denote key bindings and variable settings.
-Each program using this library may add its own commands
-and bindings.
-.PP
-For example, placing
-.RS
-.PP
-M\-Control\-u: universal\-argument
-.RE
-or
-.RS
-C\-Meta\-u: universal\-argument
-.RE
-.sp
-into the
-.I inputrc
-would make M\-C\-u execute the readline command
-.IR universal\-argument .
-.PP
-The following symbolic character names are recognized while
-processing key bindings:
-.IR DEL ,
-.IR ESC ,
-.IR ESCAPE ,
-.IR LFD ,
-.IR NEWLINE ,
-.IR RET ,
-.IR RETURN ,
-.IR RUBOUT ,
-.IR SPACE ,
-.IR SPC ,
-and
-.IR TAB .
-.PP
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a \fImacro\fP).
-.PP
-.SS Key Bindings
-.PP
-The syntax for controlling key bindings in the
-.I inputrc
-file is simple. All that is required is the name of the
-command or the text of a macro and a key sequence to which
-it should be bound. The name may be specified in one of two ways:
-as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP
-prefixes, or as a key sequence.
-.PP
-When using the form \fBkeyname\fP:\^\fIfunction-name\fP or \fImacro\fP,
-.I keyname
-is the name of a key spelled out in English. For example:
-.sp
-.RS
-Control\-u: universal\-argument
-.br
-Meta\-Rubout: backward\-kill\-word
-.br
-Control\-o: "> output"
-.RE
-.LP
-In the above example,
-.I C\-u
-is bound to the function
-.BR universal\-argument ,
-.I M-DEL
-is bound to the function
-.BR backward\-kill\-word ,
-and
-.I C\-o
-is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-.if t \f(CW> output\fP
-.if n ``> output''
-into the line).
-.PP
-In the second form, \fB"keyseq"\fP:\^\fIfunction\-name\fP or \fImacro\fP,
-.B keyseq
-differs from
-.B keyname
-above in that strings denoting
-an entire key sequence may be specified by placing the sequence
-within double quotes. Some GNU Emacs style key escapes can be
-used, as in the following example, but the symbolic character names
-are not recognized.
-.sp
-.RS
-"\eC\-u": universal\-argument
-.br
-"\eC\-x\eC\-r": re\-read\-init\-file
-.br
-"\ee[11~": "Function Key 1"
-.RE
-.PP
-In this example,
-.I C-u
-is again bound to the function
-.BR universal\-argument .
-.I "C-x C-r"
-is bound to the function
-.BR re\-read\-init\-file ,
-and
-.I "ESC [ 1 1 ~"
-is bound to insert the text
-.if t \f(CWFunction Key 1\fP.
-.if n ``Function Key 1''.
-.PP
-The full set of GNU Emacs style escape sequences available when specifying
-key sequences is
-.RS
-.PD 0
-.TP
-.B \eC\-
-control prefix
-.TP
-.B \eM\-
-meta prefix
-.TP
-.B \ee
-an escape character
-.TP
-.B \e\e
-backslash
-.TP
-.B \e"
-literal ", a double quote
-.TP
-.B \e'
-literal ', a single quote
-.RE
-.PD
-.PP
-In addition to the GNU Emacs style escape sequences, a second
-set of backslash escapes is available:
-.RS
-.PD 0
-.TP
-.B \ea
-alert (bell)
-.TP
-.B \eb
-backspace
-.TP
-.B \ed
-delete
-.TP
-.B \ef
-form feed
-.TP
-.B \en
-newline
-.TP
-.B \er
-carriage return
-.TP
-.B \et
-horizontal tab
-.TP
-.B \ev
-vertical tab
-.TP
-.B \e\fInnn\fP
-the eight-bit character whose value is the octal value \fInnn\fP
-(one to three digits)
-.TP
-.B \ex\fIHH\fP
-the eight-bit character whose value is the hexadecimal value \fIHH\fP
-(one or two hex digits)
-.RE
-.PD
-.PP
-When entering the text of a macro, single or double quotes should
-be used to indicate a macro definition. Unquoted text
-is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including " and '.
-.PP
-.B Bash
-allows the current readline key bindings to be displayed or modified
-with the
-.B bind
-builtin command. The editing mode may be switched during interactive
-use by using the
-.B \-o
-option to the
-.B set
-builtin command. Other programs using this library provide
-similar mechanisms. The
-.I inputrc
-file may be edited and re-read if a program does not provide
-any other means to incorporate new bindings.
-.SS Variables
-.PP
-Readline has variables that can be used to further customize its
-behavior. A variable may be set in the
-.I inputrc
-file with a statement of the form
-.RS
-.PP
-\fBset\fP \fIvariable\-name\fP \fIvalue\fP
-.RE
-.PP
-Except where noted, readline variables can take the values
-.B On
-or
-.B Off
-(without regard to case).
-The variables and their default values are:
-.PP
-.PD 0
-.TP
-.B bell\-style (audible)
-Controls what happens when readline wants to ring the terminal bell.
-If set to \fBnone\fP, readline never rings the bell. If set to
-\fBvisible\fP, readline uses a visible bell if one is available.
-If set to \fBaudible\fP, readline attempts to ring the terminal's bell.
-.TP
-.B comment\-begin (``#'')
-The string that is inserted in \fBvi\fP mode when the
-.B insert\-comment
-command is executed.
-This command is bound to
-.B M\-#
-in emacs mode and to
-.B #
-in vi command mode.
-.TP
-.B completion\-ignore\-case (Off)
-If set to \fBOn\fP, readline performs filename matching and completion
-in a case\-insensitive fashion.
-.TP
-.B completion\-query\-items (100)
-This determines when the user is queried about viewing
-the number of possible completions
-generated by the \fBpossible\-completions\fP command.
-It may be set to any integer value greater than or equal to
-zero. If the number of possible completions is greater than
-or equal to the value of this variable, the user is asked whether
-or not he wishes to view them; otherwise they are simply listed
-on the terminal.
-.TP
-.B convert\-meta (On)
-If set to \fBOn\fP, readline will convert characters with the
-eighth bit set to an ASCII key sequence
-by stripping the eighth bit and prefixing it with an
-escape character (in effect, using escape as the \fImeta prefix\fP).
-.TP
-.B disable\-completion (Off)
-If set to \fBOn\fP, readline will inhibit word completion. Completion
-characters will be inserted into the line as if they had been
-mapped to \fBself-insert\fP.
-.TP
-.B editing\-mode (emacs)
-Controls whether readline begins with a set of key bindings similar
-to emacs or vi.
-.B editing\-mode
-can be set to either
-.B emacs
-or
-.BR vi .
-.TP
-.B enable\-keypad (Off)
-When set to \fBOn\fP, readline will try to enable the application
-keypad when it is called. Some systems need this to enable the
-arrow keys.
-.TP
-.B expand\-tilde (Off)
-If set to \fBon\fP, tilde expansion is performed when readline
-attempts word completion.
-.TP
-.B history-preserve-point
-If set to \fBon\fP, the history code attempts to place point at the
-same location on each history line retrived with \fBprevious-history\fP
-or \fBnext-history\fP.
-.TP
-.B horizontal\-scroll\-mode (Off)
-When set to \fBOn\fP, makes readline use a single line for display,
-scrolling the input horizontally on a single screen line when it
-becomes longer than the screen width rather than wrapping to a new line.
-.TP
-.B input\-meta (Off)
-If set to \fBOn\fP, readline will enable eight-bit input (that is,
-it will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support. The name
-.B meta\-flag
-is a synonym for this variable.
-.TP
-.B isearch\-terminators (``C\-[ C\-J'')
-The string of characters that should terminate an incremental
-search without subsequently executing the character as a command.
-If this variable has not been given a value, the characters
-\fIESC\fP and \fIC\-J\fP will terminate an incremental search.
-.TP
-.B keymap (emacs)
-Set the current readline keymap. The set of legal keymap names is
-\fIemacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,
-vi-command\fP, and
-.IR vi-insert .
-\fIvi\fP is equivalent to \fIvi-command\fP; \fIemacs\fP is
-equivalent to \fIemacs-standard\fP. The default value is
-.IR emacs .
-The value of
-.B editing\-mode
-also affects the default keymap.
-.TP
-.B mark\-directories (On)
-If set to \fBOn\fP, completed directory names have a slash
-appended.
-.TP
-.B mark\-modified\-lines (Off)
-If set to \fBOn\fP, history lines that have been modified are displayed
-with a preceding asterisk (\fB*\fP).
-.TP
-.B mark\-symlinked\-directories (Off)
-If set to \fBOn\fP, completed names which are symbolic links to directories
-have a slash appended (subject to the value of
-\fBmark\-directories\fP).
-.TP
-.B match\-hidden\-files (On)
-This variable, when set to \fBOn\fP, causes readline to match files whose
-names begin with a `.' (hidden files) when performing filename
-completion, unless the leading `.' is
-supplied by the user in the filename to be completed.
-.TP
-.B output\-meta (Off)
-If set to \fBOn\fP, readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence.
-.TP
-.B page\-completions (On)
-If set to \fBOn\fP, readline uses an internal \fImore\fP-like pager
-to display a screenful of possible completions at a time.
-.TP
-.B print\-completions\-horizontally (Off)
-If set to \fBOn\fP, readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-.TP
-.B show\-all\-if\-ambiguous (Off)
-This alters the default behavior of the completion functions. If
-set to
-.BR on ,
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-.TP
-.B visible\-stats (Off)
-If set to \fBOn\fP, a character denoting a file's type as reported
-by \fIstat\fP(2) is appended to the filename when listing possible
-completions.
-.PD
-.SS Conditional Constructs
-.PP
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests. There are four parser directives used.
-.IP \fB$if\fP
-The
-.B $if
-construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-readline. The text of the test extends to the end of the line;
-no characters are required to isolate it.
-.RS
-.IP \fBmode\fP
-The \fBmode=\fP form of the \fB$if\fP directive is used to test
-whether readline is in emacs or vi mode.
-This may be used in conjunction
-with the \fBset keymap\fP command, for instance, to set bindings in
-the \fIemacs-standard\fP and \fIemacs-ctlx\fP keymaps only if
-readline is starting out in emacs mode.
-.IP \fBterm\fP
-The \fBterm=\fP form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys. The word on the right side of the
-.B =
-is tested against the full name of the terminal and the portion
-of the terminal name before the first \fB\-\fP. This allows
-.I sun
-to match both
-.I sun
-and
-.IR sun\-cmd ,
-for instance.
-.IP \fBapplication\fP
-The \fBapplication\fP construct is used to include
-application-specific settings. Each program using the readline
-library sets the \fIapplication name\fP, and an initialization
-file can test for a particular value.
-This could be used to bind key sequences to functions useful for
-a specific program. For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-.sp 1
-.RS
-.nf
-\fB$if\fP Bash
-# Quote the current or previous word
-"\eC-xq": "\eeb\e"\eef\e""
-\fB$endif\fP
-.fi
-.RE
-.RE
-.IP \fB$endif\fP
-This command, as seen in the previous example, terminates an
-\fB$if\fP command.
-.IP \fB$else\fP
-Commands in this branch of the \fB$if\fP directive are executed if
-the test fails.
-.IP \fB$include\fP
-This directive takes a single filename as an argument and reads commands
-and bindings from that file. For example, the following directive
-would read \fI/etc/inputrc\fP:
-.sp 1
-.RS
-.nf
-\fB$include\fP \^ \fI/etc/inputrc\fP
-.fi
-.RE
-.SH SEARCHING
-.PP
-Readline provides commands for searching through the command history
-for lines containing a specified string.
-There are two search modes:
-.I incremental
-and
-.IR non-incremental .
-.PP
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-\fBC\-r\fP. Typing \fBC\-s\fP searches forward through the history.
-The characters present in the value of the \fBisearch-terminators\fP
-variable are used to terminate an incremental search.
-If that variable has not been assigned a value the \fIEscape\fP and
-\fBC\-J\fP characters will terminate an incremental search.
-\fBC\-G\fP will abort an incremental search and restore the original
-line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-.PP
-To find other matching entries in the history list, type \fBC\-s\fP or
-\fBC\-r\fP as appropriate.
-This will search backward or forward in the history for the next
-line matching the search string typed so far.
-Any other key sequence bound to a readline command will terminate
-the search and execute that command.
-For instance, a newline will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-.PP
-Non-incremental searches read the entire search string before starting
-to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-.SH EDITING COMMANDS
-.PP
-The following is a list of the names of the commands and the default
-key sequences to which they are bound.
-Command names without an accompanying key sequence are unbound by default.
-.PP
-In the following descriptions, \fIpoint\fP refers to the current cursor
-position, and \fImark\fP refers to a cursor position saved by the
-\fBset\-mark\fP command.
-The text between the point and mark is referred to as the \fIregion\fP.
-.SS Commands for Moving
-.PP
-.PD 0
-.TP
-.B beginning\-of\-line (C\-a)
-Move to the start of the current line.
-.TP
-.B end\-of\-line (C\-e)
-Move to the end of the line.
-.TP
-.B forward\-char (C\-f)
-Move forward a character.
-.TP
-.B backward\-char (C\-b)
-Move back a character.
-.TP
-.B forward\-word (M\-f)
-Move forward to the end of the next word. Words are composed of
-alphanumeric characters (letters and digits).
-.TP
-.B backward\-word (M\-b)
-Move back to the start of the current or previous word. Words are
-composed of alphanumeric characters (letters and digits).
-.TP
-.B clear\-screen (C\-l)
-Clear the screen leaving the current line at the top of the screen.
-With an argument, refresh the current line without clearing the
-screen.
-.TP
-.B redraw\-current\-line
-Refresh the current line.
-.PD
-.SS Commands for Manipulating the History
-.PP
-.PD 0
-.TP
-.B accept\-line (Newline, Return)
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-\fBadd_history()\fP.
-If the line is a modified history line, the history line is restored to its original state.
-.TP
-.B previous\-history (C\-p)
-Fetch the previous command from the history list, moving back in
-the list.
-.TP
-.B next\-history (C\-n)
-Fetch the next command from the history list, moving forward in the
-list.
-.TP
-.B beginning\-of\-history (M\-<)
-Move to the first line in the history.
-.TP
-.B end\-of\-history (M\->)
-Move to the end of the input history, i.e., the line currently being
-entered.
-.TP
-.B reverse\-search\-history (C\-r)
-Search backward starting at the current line and moving `up' through
-the history as necessary. This is an incremental search.
-.TP
-.B forward\-search\-history (C\-s)
-Search forward starting at the current line and moving `down' through
-the history as necessary. This is an incremental search.
-.TP
-.B non\-incremental\-reverse\-search\-history (M\-p)
-Search backward through the history starting at the current line
-using a non-incremental search for a string supplied by the user.
-.TP
-.B non\-incremental\-forward\-search\-history (M\-n)
-Search forward through the history using a non-incremental search
-for a string supplied by the user.
-.TP
-.B history\-search\-forward
-Search forward through the history for the string of characters
-between the start of the current line and the current cursor
-position (the \fIpoint\fP).
-This is a non-incremental search.
-.TP
-.B history\-search\-backward
-Search backward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-.TP
-.B yank\-nth\-arg (M\-C\-y)
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument
-.IR n ,
-insert the \fIn\fPth word from the previous command (the words
-in the previous command begin with word 0). A negative argument
-inserts the \fIn\fPth word from the end of the previous command.
-.TP
-.B
-yank\-last\-arg (M\-.\^, M\-_\^)
-Insert the last argument to the previous command (the last word of
-the previous history entry). With an argument,
-behave exactly like \fByank\-nth\-arg\fP.
-Successive calls to \fByank\-last\-arg\fP move back through the history
-list, inserting the last argument of each line in turn.
-.PD
-.SS Commands for Changing Text
-.PP
-.PD 0
-.TP
-.B delete\-char (C\-d)
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to \fBdelete\-char\fP, then return
-.SM
-.BR EOF .
-.TP
-.B backward\-delete\-char (Rubout)
-Delete the character behind the cursor. When given a numeric argument,
-save the deleted text on the kill ring.
-.TP
-.B forward\-backward\-delete\-char
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted.
-.TP
-.B quoted\-insert (C\-q, C\-v)
-Add the next character that you type to the line verbatim. This is
-how to insert characters like \fBC\-q\fP, for example.
-.TP
-.B tab\-insert (M-TAB)
-Insert a tab character.
-.TP
-.B self\-insert (a,\ b,\ A,\ 1,\ !,\ ...)
-Insert the character typed.
-.TP
-.B transpose\-chars (C\-t)
-Drag the character before point forward over the character at point,
-moving point forward as well.
-If point is at the end of the line, then this transposes
-the two characters before point.
-Negative arguments have no effect.
-.TP
-.B transpose\-words (M\-t)
-Drag the word before point past the word after point,
-moving point over that word as well.
-If point is at the end of the line, this transposes
-the last two words on the line.
-.TP
-.B upcase\-word (M\-u)
-Uppercase the current (or following) word. With a negative argument,
-uppercase the previous word, but do not move point.
-.TP
-.B downcase\-word (M\-l)
-Lowercase the current (or following) word. With a negative argument,
-lowercase the previous word, but do not move point.
-.TP
-.B capitalize\-word (M\-c)
-Capitalize the current (or following) word. With a negative argument,
-capitalize the previous word, but do not move point.
-.TP
-.B overwrite\-mode
-Toggle overwrite mode. With an explicit positive numeric argument,
-switches to overwrite mode. With an explicit non-positive numeric
-argument, switches to insert mode. This command affects only
-\fBemacs\fP mode; \fBvi\fP mode does overwrite differently.
-Each call to \fIreadline()\fP starts in insert mode.
-In overwrite mode, characters bound to \fBself\-insert\fP replace
-the text at point rather than pushing the text to the right.
-Characters bound to \fBbackward\-delete\-char\fP replace the character
-before point with a space. By default, this command is unbound.
-.PD
-.SS Killing and Yanking
-.PP
-.PD 0
-.TP
-.B kill\-line (C\-k)
-Kill the text from point to the end of the line.
-.TP
-.B backward\-kill\-line (C\-x Rubout)
-Kill backward to the beginning of the line.
-.TP
-.B unix\-line\-discard (C\-u)
-Kill backward from point to the beginning of the line.
-The killed text is saved on the kill-ring.
-.\" There is no real difference between this and backward-kill-line
-.TP
-.B kill\-whole\-line
-Kill all characters on the current line, no matter where point is.
-.TP
-.B kill\-word (M\-d)
-Kill from point the end of the current word, or if between
-words, to the end of the next word. Word boundaries are the same as
-those used by \fBforward\-word\fP.
-.TP
-.B backward\-kill\-word (M\-Rubout)
-Kill the word behind point.
-Word boundaries are the same as those used by \fBbackward\-word\fP.
-.TP
-.B unix\-word\-rubout (C\-w)
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-.TP
-.B delete\-horizontal\-space (M\-\e)
-Delete all spaces and tabs around point.
-.TP
-.B kill\-region
-Kill the text between the point and \fImark\fP (saved cursor position).
-This text is referred to as the \fIregion\fP.
-.TP
-.B copy\-region\-as\-kill
-Copy the text in the region to the kill buffer.
-.TP
-.B copy\-backward\-word
-Copy the word before point to the kill buffer.
-The word boundaries are the same as \fBbackward\-word\fP.
-.TP
-.B copy\-forward\-word
-Copy the word following point to the kill buffer.
-The word boundaries are the same as \fBforward\-word\fP.
-.TP
-.B yank (C\-y)
-Yank the top of the kill ring into the buffer at point.
-.TP
-.B yank\-pop (M\-y)
-Rotate the kill ring, and yank the new top. Only works following
-.B yank
-or
-.BR yank\-pop .
-.PD
-.SS Numeric Arguments
-.PP
-.PD 0
-.TP
-.B digit\-argument (M\-0, M\-1, ..., M\-\-)
-Add this digit to the argument already accumulating, or start a new
-argument. M\-\- starts a negative argument.
-.TP
-.B universal\-argument
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing
-.B universal\-argument
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-.PD
-.SS Completing
-.PP
-.PD 0
-.TP
-.B complete (TAB)
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-.BR Bash ,
-for instance, attempts completion treating the text as a variable
-(if the text begins with \fB$\fP), username (if the text begins with
-\fB~\fP), hostname (if the text begins with \fB@\fP), or
-command (including aliases and functions) in turn. If none
-of these produces a match, filename completion is attempted.
-.BR Gdb ,
-on the other hand,
-allows completion of program functions and variables, and
-only attempts filename completion under certain circumstances.
-.TP
-.B possible\-completions (M\-?)
-List the possible completions of the text before point.
-.TP
-.B insert\-completions (M\-*)
-Insert all completions of the text before point
-that would have been generated by
-\fBpossible\-completions\fP.
-.TP
-.B menu\-complete
-Similar to \fBcomplete\fP, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of \fBmenu\-complete\fP steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of \Bbell\-style\fP)
-and the original text is restored.
-An argument of \fIn\fP moves \fIn\fP positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to \fBTAB\fP, but is unbound
-by default.
-.TP
-.B delete\-char\-or\-list
-Deletes the character under the cursor if not at the beginning or
-end of the line (like \fBdelete-char\fP).
-If at the end of the line, behaves identically to
-\fBpossible-completions\fP.
-.PD
-.SS Keyboard Macros
-.PP
-.PD 0
-.TP
-.B start\-kbd\-macro (C\-x (\^)
-Begin saving the characters typed into the current keyboard macro.
-.TP
-.B end\-kbd\-macro (C\-x )\^)
-Stop saving the characters typed into the current keyboard macro
-and store the definition.
-.TP
-.B call\-last\-kbd\-macro (C\-x e)
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-.PD
-.SS Miscellaneous
-.PP
-.PD 0
-.TP
-.B re\-read\-init\-file (C\-x C\-r)
-Read in the contents of the \fIinputrc\fP file, and incorporate
-any bindings or variable assignments found there.
-.TP
-.B abort (C\-g)
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-.BR bell\-style ).
-.TP
-.B do\-uppercase\-version (M\-a, M\-b, M\-\fIx\fP, ...)
-If the metafied character \fIx\fP is lowercase, run the command
-that is bound to the corresponding uppercase character.
-.TP
-.B prefix\-meta (ESC)
-Metafy the next character typed.
-.SM
-.B ESC
-.B f
-is equivalent to
-.BR Meta\-f .
-.TP
-.B undo (C\-_, C\-x C\-u)
-Incremental undo, separately remembered for each line.
-.TP
-.B revert\-line (M\-r)
-Undo all changes made to this line. This is like executing the
-.B undo
-command enough times to return the line to its initial state.
-.TP
-.B tilde\-expand (M\-&)
-Perform tilde expansion on the current word.
-.TP
-.B set\-mark (C\-@, M\-<space>)
-Set the mark to the point. If a
-numeric argument is supplied, the mark is set to that position.
-.TP
-.B exchange\-point\-and\-mark (C\-x C\-x)
-Swap the point with the mark. The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-.TP
-.B character\-search (C\-])
-A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
-.TP
-.B character\-search\-backward (M\-C\-])
-A character is read and point is moved to the previous occurrence of that
-character. A negative count searches for subsequent occurrences.
-.TP
-.B insert\-comment (M\-#)
-Without a numeric argument, the value of the readline
-.B comment\-begin
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
-the characters at the beginning of the line do not match the value
-of \fBcomment\-begin\fP, the value is inserted, otherwise
-the characters in \fBcomment-begin\fP are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-The default value of
-.B comment\-begin
-makes the current line a shell comment.
-If a numeric argument causes the comment character to be removed, the line
-will be executed by the shell.
-.TP
-.B dump\-functions
-Print all of the functions and their key bindings to the
-readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an \fIinputrc\fP file.
-.TP
-.B dump\-variables
-Print all of the settable variables and their values to the
-readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an \fIinputrc\fP file.
-.TP
-.B dump\-macros
-Print all of the readline key sequences bound to macros and the
-strings they ouput. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an \fIinputrc\fP file.
-.TP
-.B emacs\-editing\-mode (C\-e)
-When in
-.B vi
-command mode, this causes a switch to
-.B emacs
-editing mode.
-.TP
-.B vi\-editing\-mode (M\-C\-j)
-When in
-.B emacs
-editing mode, this causes a switch to
-.B vi
-editing mode.
-.PD
-.SH DEFAULT KEY BINDINGS
-.LP
-The following is a list of the default emacs and vi bindings.
-Characters with the eighth bit set are written as M\-<character>, and
-are referred to as
-.I metafied
-characters.
-The printable ASCII characters not mentioned in the list of emacs
-standard bindings are bound to the
-.B self\-insert
-function, which just inserts the given character into the input line.
-In vi insertion mode, all characters not specifically mentioned are
-bound to
-.BR self\-insert .
-Characters assigned to signal generation by
-.IR stty (1)
-or the terminal driver, such as C-Z or C-C,
-retain that function.
-Upper and lower case metafied characters are bound to the same function in
-the emacs mode meta keymap.
-The remaining characters are unbound, which causes readline
-to ring the bell (subject to the setting of the
-.B bell\-style
-variable).
-.SS Emacs Mode
-.RS +.6i
-.nf
-.ta 2.5i
-.sp
-Emacs Standard bindings
-.sp
-"C-@" set-mark
-"C-A" beginning-of-line
-"C-B" backward-char
-"C-D" delete-char
-"C-E" end-of-line
-"C-F" forward-char
-"C-G" abort
-"C-H" backward-delete-char
-"C-I" complete
-"C-J" accept-line
-"C-K" kill-line
-"C-L" clear-screen
-"C-M" accept-line
-"C-N" next-history
-"C-P" previous-history
-"C-Q" quoted-insert
-"C-R" reverse-search-history
-"C-S" forward-search-history
-"C-T" transpose-chars
-"C-U" unix-line-discard
-"C-V" quoted-insert
-"C-W" unix-word-rubout
-"C-Y" yank
-"C-]" character-search
-"C-_" undo
-"\^ " to "/" self-insert
-"0" to "9" self-insert
-":" to "~" self-insert
-"C-?" backward-delete-char
-.PP
-Emacs Meta bindings
-.sp
-"M-C-G" abort
-"M-C-H" backward-kill-word
-"M-C-I" tab-insert
-"M-C-J" vi-editing-mode
-"M-C-M" vi-editing-mode
-"M-C-R" revert-line
-"M-C-Y" yank-nth-arg
-"M-C-[" complete
-"M-C-]" character-search-backward
-"M-space" set-mark
-"M-#" insert-comment
-"M-&" tilde-expand
-"M-*" insert-completions
-"M--" digit-argument
-"M-." yank-last-arg
-"M-0" digit-argument
-"M-1" digit-argument
-"M-2" digit-argument
-"M-3" digit-argument
-"M-4" digit-argument
-"M-5" digit-argument
-"M-6" digit-argument
-"M-7" digit-argument
-"M-8" digit-argument
-"M-9" digit-argument
-"M-<" beginning-of-history
-"M-=" possible-completions
-"M->" end-of-history
-"M-?" possible-completions
-"M-B" backward-word
-"M-C" capitalize-word
-"M-D" kill-word
-"M-F" forward-word
-"M-L" downcase-word
-"M-N" non-incremental-forward-search-history
-"M-P" non-incremental-reverse-search-history
-"M-R" revert-line
-"M-T" transpose-words
-"M-U" upcase-word
-"M-Y" yank-pop
-"M-\e" delete-horizontal-space
-"M-~" tilde-expand
-"M-C-?" backward-kill-word
-"M-_" yank-last-arg
-.PP
-Emacs Control-X bindings
-.sp
-"C-XC-G" abort
-"C-XC-R" re-read-init-file
-"C-XC-U" undo
-"C-XC-X" exchange-point-and-mark
-"C-X(" start-kbd-macro
-"C-X)" end-kbd-macro
-"C-XE" call-last-kbd-macro
-"C-XC-?" backward-kill-line
-.sp
-.RE
-.SS VI Mode bindings
-.RS +.6i
-.nf
-.ta 2.5i
-.sp
-.PP
-VI Insert Mode functions
-.sp
-"C-D" vi-eof-maybe
-"C-H" backward-delete-char
-"C-I" complete
-"C-J" accept-line
-"C-M" accept-line
-"C-R" reverse-search-history
-"C-S" forward-search-history
-"C-T" transpose-chars
-"C-U" unix-line-discard
-"C-V" quoted-insert
-"C-W" unix-word-rubout
-"C-Y" yank
-"C-[" vi-movement-mode
-"C-_" undo
-"\^ " to "~" self-insert
-"C-?" backward-delete-char
-.PP
-VI Command Mode functions
-.sp
-"C-D" vi-eof-maybe
-"C-E" emacs-editing-mode
-"C-G" abort
-"C-H" backward-char
-"C-J" accept-line
-"C-K" kill-line
-"C-L" clear-screen
-"C-M" accept-line
-"C-N" next-history
-"C-P" previous-history
-"C-Q" quoted-insert
-"C-R" reverse-search-history
-"C-S" forward-search-history
-"C-T" transpose-chars
-"C-U" unix-line-discard
-"C-V" quoted-insert
-"C-W" unix-word-rubout
-"C-Y" yank
-"C-_" vi-undo
-"\^ " forward-char
-"#" insert-comment
-"$" end-of-line
-"%" vi-match
-"&" vi-tilde-expand
-"*" vi-complete
-"+" next-history
-"," vi-char-search
-"-" previous-history
-"." vi-redo
-"/" vi-search
-"0" beginning-of-line
-"1" to "9" vi-arg-digit
-";" vi-char-search
-"=" vi-complete
-"?" vi-search
-"A" vi-append-eol
-"B" vi-prev-word
-"C" vi-change-to
-"D" vi-delete-to
-"E" vi-end-word
-"F" vi-char-search
-"G" vi-fetch-history
-"I" vi-insert-beg
-"N" vi-search-again
-"P" vi-put
-"R" vi-replace
-"S" vi-subst
-"T" vi-char-search
-"U" revert-line
-"W" vi-next-word
-"X" backward-delete-char
-"Y" vi-yank-to
-"\e" vi-complete
-"^" vi-first-print
-"_" vi-yank-arg
-"`" vi-goto-mark
-"a" vi-append-mode
-"b" vi-prev-word
-"c" vi-change-to
-"d" vi-delete-to
-"e" vi-end-word
-"f" vi-char-search
-"h" backward-char
-"i" vi-insertion-mode
-"j" next-history
-"k" prev-history
-"l" forward-char
-"m" vi-set-mark
-"n" vi-search-again
-"p" vi-put
-"r" vi-change-char
-"s" vi-subst
-"t" vi-char-search
-"u" vi-undo
-"w" vi-next-word
-"x" vi-delete
-"y" vi-yank-to
-"|" vi-column
-"~" vi-change-case
-.RE
-.SH "SEE ALSO"
-.PD 0
-.TP
-\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
-.TP
-\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
-.TP
-\fIbash\fP(1)
-.PD
-.SH FILES
-.PD 0
-.TP
-.FN ~/.inputrc
-Individual \fBreadline\fP initialization file
-.PD
-.SH AUTHORS
-Brian Fox, Free Software Foundation
-.br
-bfox@gnu.org
-.PP
-Chet Ramey, Case Western Reserve University
-.br
-chet@ins.CWRU.Edu
-.SH BUG REPORTS
-If you find a bug in
-.B readline,
-you should report it. But first, you should
-make sure that it really is a bug, and that it appears in the latest
-version of the
-.B readline
-library that you have.
-.PP
-Once you have determined that a bug actually exists, mail a
-bug report to \fIbug\-readline\fP@\fIgnu.org\fP.
-If you have a fix, you are welcome to mail that
-as well! Suggestions and `philosophical' bug reports may be mailed
-to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet
-newsgroup
-.BR gnu.bash.bug .
-.PP
-Comments and bug reports concerning
-this manual page should be directed to
-.IR chet@ins.CWRU.Edu .
-.SH BUGS
-.PP
-It's too big and too slow.
diff --git a/readline-4.3.orig/doc/readline.dvi b/readline-4.3.orig/doc/readline.dvi
deleted file mode 100644
index 3c1c30f..0000000
--- a/readline-4.3.orig/doc/readline.dvi
+++ /dev/null
Binary files differ
diff --git a/readline-4.3.orig/doc/readline.html b/readline-4.3.orig/doc/readline.html
deleted file mode 100644
index 42485f5..0000000
--- a/readline-4.3.orig/doc/readline.html
+++ /dev/null
@@ -1,5908 +0,0 @@
-<HTML>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on June, 27 2002 by texi2html 1.64 -->
-<!--
-Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
- Karl Berry <karl@freefriends.org>
- Olaf Bachmann <obachman@mathematik.uni-kl.de>
- and many others.
-Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
-Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-
--->
-<HEAD>
-<TITLE>GNU Readline Library: </TITLE>
-
-<META NAME="description" CONTENT="GNU Readline Library: ">
-<META NAME="keywords" CONTENT="GNU Readline Library: ">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="texi2html 1.64">
-
-</HEAD>
-
-<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
-
-<A NAME="SEC_Top"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>GNU Readline Library</H1></P><P>
-
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC1">1. Command Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline User's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC23">2. Programming with GNU Readline</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline Programmer's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC49">Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of concepts described in this manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC50">Function and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of externally visible functions
- and variables.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<HR SIZE=1>
-<A NAME="SEC1"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC2"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<A NAME="Command Line Editing"></A>
-<H1> 1. Command Line Editing </H1>
-<!--docid::SEC1::-->
-<P>
-
-This chapter describes the basic features of the GNU
-command line editing interface.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC2">1.1 Introduction to Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Notation used in this text.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC3">1.2 Readline Interaction</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The minimum set of commands for editing a line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC9">1.3 Readline Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Customizing Readline from a user's view.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC13">1.4 Bindable Readline Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A description of most of the Readline commands
- available for binding</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC22">1.5 Readline vi Mode</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A short description of how to make Readline
- behave like the vi editor.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Introduction and Notation"></A>
-<HR SIZE="6">
-<A NAME="SEC2"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.1 Introduction to Line Editing </H2>
-<!--docid::SEC2::-->
-<P>
-
-The following paragraphs describe the notation used to represent
-keystrokes.
-</P><P>
-
-The text <KBD>C-k</KBD> is read as `Control-K' and describes the character
-produced when the <KBD>k</KBD> key is pressed while the Control key
-is depressed.
-</P><P>
-
-The text <KBD>M-k</KBD> is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the <KBD>k</KBD>
-key is pressed.
-The Meta key is labeled <KBD>ALT</KBD> on many keyboards.
-On keyboards with two keys labeled <KBD>ALT</KBD> (usually to either side of
-the space bar), the <KBD>ALT</KBD> on the left side is generally set to
-work as a Meta key.
-The <KBD>ALT</KBD> key on the right may also be configured to work as a
-Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-</P><P>
-
-If you do not have a Meta or <KBD>ALT</KBD> key, or another key working as
-a Meta key, the identical keystroke can be generated by typing <KBD>ESC</KBD>
-<EM>first</EM>, and then typing <KBD>k</KBD>.
-Either process is known as <EM>metafying</EM> the <KBD>k</KBD> key.
-</P><P>
-
-The text <KBD>M-C-k</KBD> is read as `Meta-Control-k' and describes the
-character produced by <EM>metafying</EM> <KBD>C-k</KBD>.
-</P><P>
-
-In addition, several keys have their own names. Specifically,
-<KBD>DEL</KBD>, <KBD>ESC</KBD>, <KBD>LFD</KBD>, <KBD>SPC</KBD>, <KBD>RET</KBD>, and <KBD>TAB</KBD> all
-stand for themselves when seen in this text, or in an init file
-(see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-If your keyboard lacks a <KBD>LFD</KBD> key, typing <KBD>C-j</KBD> will
-produce the desired character.
-The <KBD>RET</KBD> key may be labeled <KBD>Return</KBD> or <KBD>Enter</KBD> on
-some keyboards.
-</P><P>
-
-<A NAME="Readline Interaction"></A>
-<HR SIZE="6">
-<A NAME="SEC3"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC2"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC4"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.2 Readline Interaction </H2>
-<!--docid::SEC3::-->
-<P>
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <KBD>RET</KBD>. You do not have to be at the
-end of the line to press <KBD>RET</KBD>; the entire line is accepted
-regardless of the location of the cursor within the line.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The least you need to know about Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC5">1.2.2 Readline Movement Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Moving about the input line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to delete text, and how to get it back!</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC7">1.2.4 Readline Arguments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Giving numeric arguments to commands.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC8">1.2.5 Searching for Commands in the History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Searching through previous lines.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Bare Essentials"></A>
-<HR SIZE="6">
-<A NAME="SEC4"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC5"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.1 Readline Bare Essentials </H3>
-<!--docid::SEC4::-->
-<P>
-
-In order to enter characters into the line, simply type them. The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-</P><P>
-
-Sometimes you may mistype a character, and
-not notice the error until you have typed several other characters. In
-that case, you can type <KBD>C-b</KBD> to move the cursor to the left, and then
-correct your mistake. Afterwards, you can move the cursor to the right
-with <KBD>C-f</KBD>.
-</P><P>
-
-When you add text in the middle of a line, you will notice that characters
-to the right of the cursor are `pushed over' to make room for the text
-that you have inserted. Likewise, when you delete text behind the cursor,
-characters to the right of the cursor are `pulled back' to fill in the
-blank space created by the removal of the text. A list of the bare
-essentials for editing the text of an input line follows.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-b</KBD>
-<DD>Move back one character.
-<DT><KBD>C-f</KBD>
-<DD>Move forward one character.
-<DT><KBD>DEL</KBD> or <KBD>Backspace</KBD>
-<DD>Delete the character to the left of the cursor.
-<DT><KBD>C-d</KBD>
-<DD>Delete the character underneath the cursor.
-<DT>Printing characters
-<DD>Insert the character into the line at the cursor.
-<DT><KBD>C-_</KBD> or <KBD>C-x C-u</KBD>
-<DD>Undo the last editing command. You can undo all the way back to an
-empty line.
-</DL>
-<P>
-
-(Depending on your configuration, the <KBD>Backspace</KBD> key be set to
-delete the character to the left of the cursor and the <KBD>DEL</KBD> key set
-to delete the character underneath the cursor, like <KBD>C-d</KBD>, rather
-than the character to the left of the cursor.)
-</P><P>
-
-<A NAME="Readline Movement Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC5"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC4"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC6"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC6"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.2 Readline Movement Commands </H3>
-<!--docid::SEC5::-->
-<P>
-
-The above table describes the most basic keystrokes that you need
-in order to do editing of the input line. For your convenience, many
-other commands have been added in addition to <KBD>C-b</KBD>, <KBD>C-f</KBD>,
-<KBD>C-d</KBD>, and <KBD>DEL</KBD>. Here are some commands for moving more rapidly
-about the line.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-a</KBD>
-<DD>Move to the start of the line.
-<DT><KBD>C-e</KBD>
-<DD>Move to the end of the line.
-<DT><KBD>M-f</KBD>
-<DD>Move forward a word, where a word is composed of letters and digits.
-<DT><KBD>M-b</KBD>
-<DD>Move backward a word.
-<DT><KBD>C-l</KBD>
-<DD>Clear the screen, reprinting the current line at the top.
-</DL>
-<P>
-
-Notice how <KBD>C-f</KBD> moves forward a character, while <KBD>M-f</KBD> moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-</P><P>
-
-<A NAME="Readline Killing Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC6"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC5"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC7"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC7"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.3 Readline Killing Commands </H3>
-<!--docid::SEC6::-->
-<P>
-
-<A NAME="IDX1"></A>
-<A NAME="IDX2"></A>
-</P><P>
-
-<EM>Killing</EM> text means to delete the text from the line, but to save
-it away for later use, usually by <EM>yanking</EM> (re-inserting)
-it back into the line.
-(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
-</P><P>
-
-If the description for a command says that it `kills' text, then you can
-be sure that you can get the text back in a different (or the same)
-place later.
-</P><P>
-
-When you use a kill command, the text is saved in a <EM>kill-ring</EM>.
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill
-ring is not line specific; the text that you killed on a previously
-typed line is available to be yanked back later, when you are typing
-another line.
-<A NAME="IDX3"></A>
-</P><P>
-
-Here is the list of commands for killing text.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-k</KBD>
-<DD>Kill the text from the current cursor position to the end of the line.
-<P>
-
-<DT><KBD>M-d</KBD>
-<DD>Kill from the cursor to the end of the current word, or, if between
-words, to the end of the next word.
-Word boundaries are the same as those used by <KBD>M-f</KBD>.
-<P>
-
-<DT><KBD>M-<KBD>DEL</KBD></KBD>
-<DD>Kill from the cursor the start of the current word, or, if between
-words, to the start of the previous word.
-Word boundaries are the same as those used by <KBD>M-b</KBD>.
-<P>
-
-<DT><KBD>C-w</KBD>
-<DD>Kill from the cursor to the previous whitespace. This is different than
-<KBD>M-<KBD>DEL</KBD></KBD> because the word boundaries differ.
-<P>
-
-</DL>
-<P>
-
-Here is how to <EM>yank</EM> the text back into the line. Yanking
-means to copy the most-recently-killed text from the kill buffer.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-y</KBD>
-<DD>Yank the most recently killed text back into the buffer at the cursor.
-<P>
-
-<DT><KBD>M-y</KBD>
-<DD>Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is <KBD>C-y</KBD> or <KBD>M-y</KBD>.
-</DL>
-<P>
-
-<A NAME="Readline Arguments"></A>
-<HR SIZE="6">
-<A NAME="SEC7"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC6"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC8"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC8"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.4 Readline Arguments </H3>
-<!--docid::SEC7::-->
-<P>
-
-You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the <I>sign</I> of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type <SAMP>`M-- C-k'</SAMP>.
-</P><P>
-
-The general way to pass numeric arguments to a command is to type meta
-digits before the command. If the first `digit' typed is a minus
-sign (<SAMP>`-'</SAMP>), then the sign of the argument will be negative. Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command. For example, to give
-the <KBD>C-d</KBD> command an argument of 10, you could type <SAMP>`M-1 0 C-d'</SAMP>,
-which will delete the next ten characters on the input line.
-</P><P>
-
-<A NAME="Searching"></A>
-<HR SIZE="6">
-<A NAME="SEC8"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC7"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.5 Searching for Commands in the History </H3>
-<!--docid::SEC8::-->
-<P>
-
-Readline provides commands for searching through the command history
-for lines containing a specified string.
-There are two search modes: <EM>incremental</EM> and <EM>non-incremental</EM>.
-</P><P>
-
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, Readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-<KBD>C-r</KBD>. Typing <KBD>C-s</KBD> searches forward through the history.
-The characters present in the value of the <CODE>isearch-terminators</CODE> variable
-are used to terminate an incremental search.
-If that variable has not been assigned a value, the <KBD>ESC</KBD> and
-<KBD>C-J</KBD> characters will terminate an incremental search.
-<KBD>C-g</KBD> will abort an incremental search and restore the original line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-</P><P>
-
-To find other matching entries in the history list, type <KBD>C-r</KBD> or
-<KBD>C-s</KBD> as appropriate.
-This will search backward or forward in the history for the next
-entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate
-the search and execute that command.
-For instance, a <KBD>RET</KBD> will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-</P><P>
-
-Readline remembers the last incremental search string. If two
-<KBD>C-r</KBD>s are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-</P><P>
-
-Non-incremental searches read the entire search string before starting
-to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-</P><P>
-
-<A NAME="Readline Init File"></A>
-<HR SIZE="6">
-<A NAME="SEC9"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC8"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC10"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.3 Readline Init File </H2>
-<!--docid::SEC9::-->
-<P>
-
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings.
-Any user can customize programs that use Readline by putting
-commands in an <EM>inputrc</EM> file, conventionally in his home directory.
-The name of this
-file is taken from the value of the environment variable <CODE>INPUTRC</CODE>. If
-that variable is unset, the default is <TT>`~/.inputrc'</TT>.
-</P><P>
-
-When a program which uses the Readline library starts up, the
-init file is read, and the key bindings are set.
-</P><P>
-
-In addition, the <CODE>C-x C-r</CODE> command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Syntax for the commands in the inputrc file.</TD></TR>
-</TABLE>
-
-<br>
-<TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC11">1.3.2 Conditional Init Constructs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Conditional key bindings in the inputrc file.</TD></TR>
-</TABLE>
-
-<br>
-<TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC12">1.3.3 Sample Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example inputrc file.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Init File Syntax"></A>
-<HR SIZE="6">
-<A NAME="SEC10"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC11"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.1 Readline Init File Syntax </H3>
-<!--docid::SEC10::-->
-<P>
-
-There are only a few basic constructs allowed in the
-Readline init file. Blank lines are ignored.
-Lines beginning with a <SAMP>`#'</SAMP> are comments.
-Lines beginning with a <SAMP>`$'</SAMP> indicate conditional
-constructs (see section <A HREF="readline.html#SEC11">1.3.2 Conditional Init Constructs</A>). Other lines
-denote variable settings and key bindings.
-</P><P>
-
-<DL COMPACT>
-<DT>Variable Settings
-<DD>You can modify the run-time behavior of Readline by
-altering the values of variables in Readline
-using the <CODE>set</CODE> command within the init file.
-The syntax is simple:
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>set <VAR>variable</VAR> <VAR>value</VAR>
-</pre></td></tr></table></P><P>
-
-Here, for example, is how to
-change from the default Emacs-like key binding to use
-<CODE>vi</CODE> line editing commands:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>set editing-mode vi
-</pre></td></tr></table></P><P>
-
-Variable names and values, where appropriate, are recognized without regard
-to case.
-</P><P>
-
-A great deal of run-time behavior is changeable with the following
-variables.
-</P><P>
-
-<A NAME="IDX4"></A>
-<DL COMPACT>
-
-<DT><CODE>bell-style</CODE>
-<DD><A NAME="IDX5"></A>
-Controls what happens when Readline wants to ring the terminal bell.
-If set to <SAMP>`none'</SAMP>, Readline never rings the bell. If set to
-<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available.
-If set to <SAMP>`audible'</SAMP> (the default), Readline attempts to ring
-the terminal's bell.
-<P>
-
-<DT><CODE>comment-begin</CODE>
-<DD><A NAME="IDX6"></A>
-The string to insert at the beginning of the line when the
-<CODE>insert-comment</CODE> command is executed. The default value
-is <CODE>"#"</CODE>.
-<P>
-
-<DT><CODE>completion-ignore-case</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
-in a case-insensitive fashion.
-The default value is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>completion-query-items</CODE>
-<DD><A NAME="IDX7"></A>
-The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities. If the
-number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
-This variable must be set to an integer value greater than or equal to 0.
-The default limit is <CODE>100</CODE>.
-<P>
-
-<DT><CODE>convert-meta</CODE>
-<DD><A NAME="IDX8"></A>
-If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
-eighth bit set to an ASCII key sequence by stripping the eighth
-bit and prefixing an <KBD>ESC</KBD> character, converting them to a
-meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>.
-<P>
-
-<DT><CODE>disable-completion</CODE>
-<DD><A NAME="IDX9"></A>
-If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
-Completion characters will be inserted into the line as if they had
-been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>editing-mode</CODE>
-<DD><A NAME="IDX10"></A>
-The <CODE>editing-mode</CODE> variable controls which default set of
-key bindings is used. By default, Readline starts up in Emacs editing
-mode, where the keystrokes are most similar to Emacs. This variable can be
-set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
-<P>
-
-<DT><CODE>enable-keypad</CODE>
-<DD><A NAME="IDX11"></A>
-When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
-keypad when it is called. Some systems need this to enable the
-arrow keys. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>expand-tilde</CODE>
-<DD><A NAME="IDX12"></A>
-If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
-attempts word completion. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<A NAME="IDX13"></A>
-If set to <SAMP>`on'</SAMP>, the history code attempts to place point at the
-same location on each history line retrived with <CODE>previous-history</CODE>
-or <CODE>next-history</CODE>.
-</P><P>
-
-<DT><CODE>horizontal-scroll-mode</CODE>
-<DD><A NAME="IDX14"></A>
-This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it
-to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
-horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>input-meta</CODE>
-<DD><A NAME="IDX15"></A>
-<A NAME="IDX16"></A>
-If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
-will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support. The
-default value is <SAMP>`off'</SAMP>. The name <CODE>meta-flag</CODE> is a
-synonym for this variable.
-<P>
-
-<DT><CODE>isearch-terminators</CODE>
-<DD><A NAME="IDX17"></A>
-The string of characters that should terminate an incremental search without
-subsequently executing the character as a command (see section <A HREF="readline.html#SEC8">1.2.5 Searching for Commands in the History</A>).
-If this variable has not been given a value, the characters <KBD>ESC</KBD> and
-<KBD>C-J</KBD> will terminate an incremental search.
-<P>
-
-<DT><CODE>keymap</CODE>
-<DD><A NAME="IDX18"></A>
-Sets Readline's idea of the current keymap for key binding commands.
-Acceptable <CODE>keymap</CODE> names are
-<CODE>emacs</CODE>,
-<CODE>emacs-standard</CODE>,
-<CODE>emacs-meta</CODE>,
-<CODE>emacs-ctlx</CODE>,
-<CODE>vi</CODE>,
-<CODE>vi-move</CODE>,
-<CODE>vi-command</CODE>, and
-<CODE>vi-insert</CODE>.
-<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
-equivalent to <CODE>emacs-standard</CODE>. The default value is <CODE>emacs</CODE>.
-The value of the <CODE>editing-mode</CODE> variable also affects the
-default keymap.
-<P>
-
-<DT><CODE>mark-directories</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, completed directory names have a slash
-appended. The default is <SAMP>`on'</SAMP>.
-<P>
-
-<DT><CODE>mark-modified-lines</CODE>
-<DD><A NAME="IDX19"></A>
-This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
-asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
-This variable is <SAMP>`off'</SAMP> by default.
-<P>
-
-<DT><CODE>mark-symlinked-directories</CODE>
-<DD><A NAME="IDX20"></A>
-If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
-to directories have a slash appended (subject to the value of
-<CODE>mark-directories</CODE>).
-The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>match-hidden-files</CODE>
-<DD><A NAME="IDX21"></A>
-This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
-names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
-completion, unless the leading <SAMP>`.'</SAMP> is
-supplied by the user in the filename to be completed.
-This variable is <SAMP>`on'</SAMP> by default.
-<P>
-
-<DT><CODE>output-meta</CODE>
-<DD><A NAME="IDX22"></A>
-If set to <SAMP>`on'</SAMP>, Readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>page-completions</CODE>
-<DD><A NAME="IDX23"></A>
-If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
-to display a screenful of possible completions at a time.
-This variable is <SAMP>`on'</SAMP> by default.
-<P>
-
-<DT><CODE>print-completions-horizontally</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, Readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>show-all-if-ambiguous</CODE>
-<DD><A NAME="IDX24"></A>
-This alters the default behavior of the completion functions. If
-set to <SAMP>`on'</SAMP>,
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-The default value is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>visible-stats</CODE>
-<DD><A NAME="IDX25"></A>
-If set to <SAMP>`on'</SAMP>, a character denoting a file's type
-is appended to the filename when listing possible
-completions. The default is <SAMP>`off'</SAMP>.
-<P>
-
-</DL>
-<P>
-
-<DT>Key Bindings
-<DD>The syntax for controlling key bindings in the init file is
-simple. First you need to find the name of the command that you
-want to change. The following sections contain tables of the command
-name, the default keybinding, if any, and a short description of what
-the command does.
-<P>
-
-Once you know the name of the command, simply place on a line
-in the init file the name of the key
-you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
-</P><P>
-
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a <VAR>macro</VAR>).
-</P><P>
-
-<DL COMPACT>
-<DT><VAR>keyname</VAR>: <VAR>function-name</VAR> or <VAR>macro</VAR>
-<DD><VAR>keyname</VAR> is the name of a key spelled out in English. For example:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "&#62; output"
-</pre></td></tr></table><P>
-
-In the above example, <KBD>C-u</KBD> is bound to the function
-<CODE>universal-argument</CODE>,
-<KBD>M-DEL</KBD> is bound to the function <CODE>backward-kill-word</CODE>, and
-<KBD>C-o</KBD> is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-<SAMP>`&#62; output'</SAMP> into the line).
-</P><P>
-
-A number of symbolic character names are recognized while
-processing this key binding syntax:
-<VAR>DEL</VAR>,
-<VAR>ESC</VAR>,
-<VAR>ESCAPE</VAR>,
-<VAR>LFD</VAR>,
-<VAR>NEWLINE</VAR>,
-<VAR>RET</VAR>,
-<VAR>RETURN</VAR>,
-<VAR>RUBOUT</VAR>,
-<VAR>SPACE</VAR>,
-<VAR>SPC</VAR>,
-and
-<VAR>TAB</VAR>.
-</P><P>
-
-<DT>"<VAR>keyseq</VAR>": <VAR>function-name</VAR> or <VAR>macro</VAR>
-<DD><VAR>keyseq</VAR> differs from <VAR>keyname</VAR> above in that strings
-denoting an entire key sequence can be specified, by placing
-the key sequence in double quotes. Some GNU Emacs style key
-escapes can be used, as in the following example, but the
-special character names are not recognized.
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-</pre></td></tr></table></P><P>
-
-In the above example, <KBD>C-u</KBD> is again bound to the function
-<CODE>universal-argument</CODE> (just as it was in the first example),
-<SAMP>`<KBD>C-x</KBD> <KBD>C-r</KBD>'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>,
-and <SAMP>`<KBD>ESC</KBD> <KBD>[</KBD> <KBD>1</KBD> <KBD>1</KBD> <KBD>~</KBD>'</SAMP> is bound to insert
-the text <SAMP>`Function Key 1'</SAMP>.
-</P><P>
-
-</DL>
-<P>
-
-The following GNU Emacs style escape sequences are available when
-specifying key sequences:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE><KBD>\C-</KBD></CODE>
-<DD>control prefix
-<DT><CODE><KBD>\M-</KBD></CODE>
-<DD>meta prefix
-<DT><CODE><KBD>\e</KBD></CODE>
-<DD>an escape character
-<DT><CODE><KBD>\\</KBD></CODE>
-<DD>backslash
-<DT><CODE><KBD>\"</KBD></CODE>
-<DD><KBD>"</KBD>, a double quotation mark
-<DT><CODE><KBD>\'</KBD></CODE>
-<DD><KBD>'</KBD>, a single quote or apostrophe
-</DL>
-<P>
-
-In addition to the GNU Emacs style escape sequences, a second
-set of backslash escapes is available:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>\a</CODE>
-<DD>alert (bell)
-<DT><CODE>\b</CODE>
-<DD>backspace
-<DT><CODE>\d</CODE>
-<DD>delete
-<DT><CODE>\f</CODE>
-<DD>form feed
-<DT><CODE>\n</CODE>
-<DD>newline
-<DT><CODE>\r</CODE>
-<DD>carriage return
-<DT><CODE>\t</CODE>
-<DD>horizontal tab
-<DT><CODE>\v</CODE>
-<DD>vertical tab
-<DT><CODE>\<VAR>nnn</VAR></CODE>
-<DD>the eight-bit character whose value is the octal value <VAR>nnn</VAR>
-(one to three digits)
-<DT><CODE>\x<VAR>HH</VAR></CODE>
-<DD>the eight-bit character whose value is the hexadecimal value <VAR>HH</VAR>
-(one or two hex digits)
-</DL>
-<P>
-
-When entering the text of a macro, single or double quotes must
-be used to indicate a macro definition.
-Unquoted text is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including <SAMP>`"'</SAMP> and <SAMP>`''</SAMP>.
-For example, the following binding will make <SAMP>`<KBD>C-x</KBD> \'</SAMP>
-insert a single <SAMP>`\'</SAMP> into the line:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-x\\": "\\"
-</pre></td></tr></table></P><P>
-
-</DL>
-<P>
-
-<A NAME="Conditional Init Constructs"></A>
-<HR SIZE="6">
-<A NAME="SEC11"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC10"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC12"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC12"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.2 Conditional Init Constructs </H3>
-<!--docid::SEC11::-->
-<P>
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests. There are four parser directives used.
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>$if</CODE>
-<DD>The <CODE>$if</CODE> construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-Readline. The text of the test extends to the end of the line;
-no characters are required to isolate it.
-<P>
-
-<DL COMPACT>
-<DT><CODE>mode</CODE>
-<DD>The <CODE>mode=</CODE> form of the <CODE>$if</CODE> directive is used to test
-whether Readline is in <CODE>emacs</CODE> or <CODE>vi</CODE> mode.
-This may be used in conjunction
-with the <SAMP>`set keymap'</SAMP> command, for instance, to set bindings in
-the <CODE>emacs-standard</CODE> and <CODE>emacs-ctlx</CODE> keymaps only if
-Readline is starting out in <CODE>emacs</CODE> mode.
-<P>
-
-<DT><CODE>term</CODE>
-<DD>The <CODE>term=</CODE> form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys. The word on the right side of the
-<SAMP>`='</SAMP> is tested against both the full name of the terminal and
-the portion of the terminal name before the first <SAMP>`-'</SAMP>. This
-allows <CODE>sun</CODE> to match both <CODE>sun</CODE> and <CODE>sun-cmd</CODE>,
-for instance.
-<P>
-
-<DT><CODE>application</CODE>
-<DD>The <VAR>application</VAR> construct is used to include
-application-specific settings. Each program using the Readline
-library sets the <VAR>application name</VAR>, and you can test for
-a particular value.
-This could be used to bind key sequences to functions useful for
-a specific program. For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-</pre></td></tr></table></DL>
-<P>
-
-<DT><CODE>$endif</CODE>
-<DD>This command, as seen in the previous example, terminates an
-<CODE>$if</CODE> command.
-<P>
-
-<DT><CODE>$else</CODE>
-<DD>Commands in this branch of the <CODE>$if</CODE> directive are executed if
-the test fails.
-<P>
-
-<DT><CODE>$include</CODE>
-<DD>This directive takes a single filename as an argument and reads commands
-and bindings from that file.
-For example, the following directive reads from <TT>`/etc/inputrc'</TT>:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>$include /etc/inputrc
-</pre></td></tr></table></DL>
-<P>
-
-<A NAME="Sample Init File"></A>
-<HR SIZE="6">
-<A NAME="SEC12"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC11"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.3 Sample Init File </H3>
-<!--docid::SEC12::-->
-<P>
-
-Here is an example of an <VAR>inputrc</VAR> file. This illustrates key
-binding, variable assignment, and conditional syntax.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre># This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library. Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs
-
-$if mode=emacs
-
-Meta-Control-h: backward-kill-word Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD": backward-char
-#"\M-OC": forward-char
-#"\M-OA": previous-history
-#"\M-OB": next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D": backward-char
-"\M-[C": forward-char
-"\M-[A": previous-history
-"\M-[B": next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD": backward-char
-#"\M-\C-OC": forward-char
-#"\M-\C-OA": previous-history
-#"\M-\C-OB": next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D": backward-char
-#"\M-\C-[C": forward-char
-#"\M-\C-[A": previous-history
-#"\M-\C-[B": next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding. This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-</pre></td></tr></table></P><P>
-
-<A NAME="Bindable Readline Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC13"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC12"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC14"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.4 Bindable Readline Commands </H2>
-<!--docid::SEC13::-->
-<P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Moving about the line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting at previous lines.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for changing text.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for killing and yanking.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying numeric arguments, repeat counts.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting Readline to do the typing for you.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Saving and re-executing typed characters</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Other miscellaneous commands.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-This section describes Readline commands that may be bound to key
-sequences.
-Command names without an accompanying key sequence are unbound by default.
-</P><P>
-
-In the following descriptions, <EM>point</EM> refers to the current cursor
-position, and <EM>mark</EM> refers to a cursor position saved by the
-<CODE>set-mark</CODE> command.
-The text between the point and mark is referred to as the <EM>region</EM>.
-</P><P>
-
-<A NAME="Commands For Moving"></A>
-<HR SIZE="6">
-<A NAME="SEC14"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC15"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.1 Commands For Moving </H3>
-<!--docid::SEC14::-->
-<DL COMPACT>
-<A NAME="IDX26"></A>
-<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX27"></A>
-Move to the start of the current line.
-<P>
-
-<A NAME="IDX28"></A>
-<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX29"></A>
-Move to the end of the line.
-<P>
-
-<A NAME="IDX30"></A>
-<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX31"></A>
-Move forward a character.
-<P>
-
-<A NAME="IDX32"></A>
-<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX33"></A>
-Move back a character.
-<P>
-
-<A NAME="IDX34"></A>
-<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX35"></A>
-Move forward to the end of the next word. Words are composed of
-letters and digits.
-<P>
-
-<A NAME="IDX36"></A>
-<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX37"></A>
-Move back to the start of the current or previous word. Words are
-composed of letters and digits.
-<P>
-
-<A NAME="IDX38"></A>
-<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX39"></A>
-Clear the screen and redraw the current line,
-leaving the current line at the top of the screen.
-<P>
-
-<A NAME="IDX40"></A>
-<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX41"></A>
-Refresh the current line. By default, this is unbound.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Commands For History"></A>
-<HR SIZE="6">
-<A NAME="SEC15"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC14"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC16"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC16"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.2 Commands For Manipulating The History </H3>
-<!--docid::SEC15::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX42"></A>
-<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX43"></A>
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-<CODE>add_history()</CODE>.
-If this line is a modified history line, the history line is restored
-to its original state.
-<P>
-
-<A NAME="IDX44"></A>
-<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX45"></A>
-Move `back' through the history list, fetching the previous command.
-<P>
-
-<A NAME="IDX46"></A>
-<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX47"></A>
-Move `forward' through the history list, fetching the next command.
-<P>
-
-<A NAME="IDX48"></A>
-<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX49"></A>
-Move to the first line in the history.
-<P>
-
-<A NAME="IDX50"></A>
-<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX51"></A>
-Move to the end of the input history, i.e., the line currently
-being entered.
-<P>
-
-<A NAME="IDX52"></A>
-<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX53"></A>
-Search backward starting at the current line and moving `up' through
-the history as necessary. This is an incremental search.
-<P>
-
-<A NAME="IDX54"></A>
-<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX55"></A>
-Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
-<P>
-
-<A NAME="IDX56"></A>
-<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX57"></A>
-Search backward starting at the current line and moving `up'
-through the history as necessary using a non-incremental search
-for a string supplied by the user.
-<P>
-
-<A NAME="IDX58"></A>
-<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX59"></A>
-Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
-for a string supplied by the user.
-<P>
-
-<A NAME="IDX60"></A>
-<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX61"></A>
-Search forward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX62"></A>
-<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX63"></A>
-Search backward through the history for the string of characters
-between the start of the current line and the point. This
-is a non-incremental search. By default, this command is unbound.
-<P>
-
-<A NAME="IDX64"></A>
-<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX65"></A>
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument <VAR>n</VAR>,
-insert the <VAR>n</VAR>th word from the previous command (the words
-in the previous command begin with word 0). A negative argument
-inserts the <VAR>n</VAR>th word from the end of the previous command.
-<P>
-
-<A NAME="IDX66"></A>
-<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX67"></A>
-Insert last argument to the previous command (the last word of the
-previous history entry). With an
-argument, behave exactly like <CODE>yank-nth-arg</CODE>.
-Successive calls to <CODE>yank-last-arg</CODE> move back through the history
-list, inserting the last argument of each line in turn.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Commands For Text"></A>
-<HR SIZE="6">
-<A NAME="SEC16"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC15"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC17"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.3 Commands For Changing Text </H3>
-<!--docid::SEC16::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX68"></A>
-<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX69"></A>
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to <CODE>delete-char</CODE>, then
-return EOF.
-<P>
-
-<A NAME="IDX70"></A>
-<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX71"></A>
-Delete the character behind the cursor. A numeric argument means
-to kill the characters instead of deleting them.
-<P>
-
-<A NAME="IDX72"></A>
-<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX73"></A>
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted. By default, this is not bound to a key.
-<P>
-
-<A NAME="IDX74"></A>
-<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX75"></A>
-Add the next character typed to the line verbatim. This is
-how to insert key sequences like <KBD>C-q</KBD>, for example.
-<P>
-
-<A NAME="IDX76"></A>
-<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX77"></A>
-Insert a tab character.
-<P>
-
-<A NAME="IDX78"></A>
-<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX79"></A>
-Insert yourself.
-<P>
-
-<A NAME="IDX80"></A>
-<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX81"></A>
-Drag the character before the cursor forward over
-the character at the cursor, moving the
-cursor forward as well. If the insertion point
-is at the end of the line, then this
-transposes the last two characters of the line.
-Negative arguments have no effect.
-<P>
-
-<A NAME="IDX82"></A>
-<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX83"></A>
-Drag the word before point past the word after point,
-moving point past that word as well.
-If the insertion point is at the end of the line, this transposes
-the last two words on the line.
-<P>
-
-<A NAME="IDX84"></A>
-<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX85"></A>
-Uppercase the current (or following) word. With a negative argument,
-uppercase the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX86"></A>
-<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX87"></A>
-Lowercase the current (or following) word. With a negative argument,
-lowercase the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX88"></A>
-<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX89"></A>
-Capitalize the current (or following) word. With a negative argument,
-capitalize the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX90"></A>
-<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX91"></A>
-Toggle overwrite mode. With an explicit positive numeric argument,
-switches to overwrite mode. With an explicit non-positive numeric
-argument, switches to insert mode. This command affects only
-<CODE>emacs</CODE> mode; <CODE>vi</CODE> mode does overwrite differently.
-Each call to <CODE>readline()</CODE> starts in insert mode.
-<P>
-
-In overwrite mode, characters bound to <CODE>self-insert</CODE> replace
-the text at point rather than pushing the text to the right.
-Characters bound to <CODE>backward-delete-char</CODE> replace the character
-before point with a space.
-</P><P>
-
-By default, this command is unbound.
-</P><P>
-
-</DL>
-<P>
-
-<A NAME="Commands For Killing"></A>
-<HR SIZE="6">
-<A NAME="SEC17"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC16"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC18"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC18"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.4 Killing And Yanking </H3>
-<!--docid::SEC17::-->
-<P>
-
-<DL COMPACT>
-
-<A NAME="IDX92"></A>
-<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX93"></A>
-Kill the text from point to the end of the line.
-<P>
-
-<A NAME="IDX94"></A>
-<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX95"></A>
-Kill backward to the beginning of the line.
-<P>
-
-<A NAME="IDX96"></A>
-<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX97"></A>
-Kill backward from the cursor to the beginning of the current line.
-<P>
-
-<A NAME="IDX98"></A>
-<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX99"></A>
-Kill all characters on the current line, no matter where point is.
-By default, this is unbound.
-<P>
-
-<A NAME="IDX100"></A>
-<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX101"></A>
-Kill from point to the end of the current word, or if between
-words, to the end of the next word.
-Word boundaries are the same as <CODE>forward-word</CODE>.
-<P>
-
-<A NAME="IDX102"></A>
-<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX103"></A>
-Kill the word behind point.
-Word boundaries are the same as <CODE>backward-word</CODE>.
-<P>
-
-<A NAME="IDX104"></A>
-<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX105"></A>
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-<P>
-
-<A NAME="IDX106"></A>
-<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX107"></A>
-Delete all spaces and tabs around point. By default, this is unbound.
-<P>
-
-<A NAME="IDX108"></A>
-<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX109"></A>
-Kill the text in the current region.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX110"></A>
-<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX111"></A>
-Copy the text in the region to the kill buffer, so it can be yanked
-right away. By default, this command is unbound.
-<P>
-
-<A NAME="IDX112"></A>
-<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX113"></A>
-Copy the word before point to the kill buffer.
-The word boundaries are the same as <CODE>backward-word</CODE>.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX114"></A>
-<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX115"></A>
-Copy the word following point to the kill buffer.
-The word boundaries are the same as <CODE>forward-word</CODE>.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX116"></A>
-<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX117"></A>
-Yank the top of the kill ring into the buffer at point.
-<P>
-
-<A NAME="IDX118"></A>
-<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX119"></A>
-Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
-</DL>
-<P>
-
-<A NAME="Numeric Arguments"></A>
-<HR SIZE="6">
-<A NAME="SEC18"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC17"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC19"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC19"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.5 Specifying Numeric Arguments </H3>
-<!--docid::SEC18::-->
-<DL COMPACT>
-
-<A NAME="IDX120"></A>
-<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX121"></A>
-Add this digit to the argument already accumulating, or start a new
-argument. <KBD>M--</KBD> starts a negative argument.
-<P>
-
-<A NAME="IDX122"></A>
-<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX123"></A>
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing <CODE>universal-argument</CODE>
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-By default, this is not bound to a key.
-</DL>
-<P>
-
-<A NAME="Commands For Completion"></A>
-<HR SIZE="6">
-<A NAME="SEC19"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC18"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC20"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC20"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.6 Letting Readline Type For You </H3>
-<!--docid::SEC19::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX124"></A>
-<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX125"></A>
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-The default is filename completion.
-<P>
-
-<A NAME="IDX126"></A>
-<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX127"></A>
-List the possible completions of the text before point.
-<P>
-
-<A NAME="IDX128"></A>
-<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX129"></A>
-Insert all completions of the text before point that would have
-been generated by <CODE>possible-completions</CODE>.
-<P>
-
-<A NAME="IDX130"></A>
-<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX131"></A>
-Similar to <CODE>complete</CODE>, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of <CODE>menu-complete</CODE> steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of <CODE>bell-style</CODE>)
-and the original text is restored.
-An argument of <VAR>n</VAR> moves <VAR>n</VAR> positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
-by default.
-<P>
-
-<A NAME="IDX132"></A>
-<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX133"></A>
-Deletes the character under the cursor if not at the beginning or
-end of the line (like <CODE>delete-char</CODE>).
-If at the end of the line, behaves identically to
-<CODE>possible-completions</CODE>.
-This command is unbound by default.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Keyboard Macros"></A>
-<HR SIZE="6">
-<A NAME="SEC20"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC19"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC21"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC21"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.7 Keyboard Macros </H3>
-<!--docid::SEC20::-->
-<DL COMPACT>
-
-<A NAME="IDX134"></A>
-<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX135"></A>
-Begin saving the characters typed into the current keyboard macro.
-<P>
-
-<A NAME="IDX136"></A>
-<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX137"></A>
-Stop saving the characters typed into the current keyboard macro
-and save the definition.
-<P>
-
-<A NAME="IDX138"></A>
-<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX139"></A>
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Miscellaneous Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC21"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC20"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.8 Some Miscellaneous Commands </H3>
-<!--docid::SEC21::-->
-<DL COMPACT>
-
-<A NAME="IDX140"></A>
-<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX141"></A>
-Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
-any bindings or variable assignments found there.
-<P>
-
-<A NAME="IDX142"></A>
-<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX143"></A>
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-<CODE>bell-style</CODE>).
-<P>
-
-<A NAME="IDX144"></A>
-<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX145"></A>
-If the metafied character <VAR>x</VAR> is lowercase, run the command
-that is bound to the corresponding uppercase character.
-<P>
-
-<A NAME="IDX146"></A>
-<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX147"></A>
-Metafy the next character typed. This is for keyboards
-without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
-<KBD>M-f</KBD>.
-<P>
-
-<A NAME="IDX148"></A>
-<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX149"></A>
-Incremental undo, separately remembered for each line.
-<P>
-
-<A NAME="IDX150"></A>
-<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX151"></A>
-Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
-command enough times to get back to the beginning.
-<P>
-
-<A NAME="IDX152"></A>
-<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX153"></A>
-Perform tilde expansion on the current word.
-<P>
-
-<A NAME="IDX154"></A>
-<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX155"></A>
-Set the mark to the point. If a
-numeric argument is supplied, the mark is set to that position.
-<P>
-
-<A NAME="IDX156"></A>
-<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX157"></A>
-Swap the point with the mark. The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-<P>
-
-<A NAME="IDX158"></A>
-<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX159"></A>
-A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
-<P>
-
-<A NAME="IDX160"></A>
-<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX161"></A>
-A character is read and point is moved to the previous occurrence
-of that character. A negative count searches for subsequent
-occurrences.
-<P>
-
-<A NAME="IDX162"></A>
-<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX163"></A>
-Without a numeric argument, the value of the <CODE>comment-begin</CODE>
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
-the characters at the beginning of the line do not match the value
-of <CODE>comment-begin</CODE>, the value is inserted, otherwise
-the characters in <CODE>comment-begin</CODE> are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-<P>
-
-<A NAME="IDX164"></A>
-<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX165"></A>
-Print all of the functions and their key bindings to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX166"></A>
-<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX167"></A>
-Print all of the settable variables and their values to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX168"></A>
-<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX169"></A>
-Print all of the Readline key sequences bound to macros and the
-strings they output. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX170"></A>
-<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX171"></A>
-When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
-editing mode.
-<P>
-
-<A NAME="IDX172"></A>
-<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX173"></A>
-When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
-editing mode.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Readline vi Mode"></A>
-<HR SIZE="6">
-<A NAME="SEC22"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC21"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.5 Readline vi Mode </H2>
-<!--docid::SEC22::-->
-<P>
-
-While the Readline library does not have a full set of <CODE>vi</CODE>
-editing functions, it does contain enough to allow simple editing
-of the line. The Readline <CODE>vi</CODE> mode behaves as specified in
-the POSIX 1003.2 standard.
-</P><P>
-
-In order to switch interactively between <CODE>emacs</CODE> and <CODE>vi</CODE>
-editing modes, use the command <KBD>M-C-j</KBD> (bound to emacs-editing-mode
-when in <CODE>vi</CODE> mode and to vi-editing-mode in <CODE>emacs</CODE> mode).
-The Readline default is <CODE>emacs</CODE> mode.
-</P><P>
-
-When you enter a line in <CODE>vi</CODE> mode, you are already placed in
-`insertion' mode, as if you had typed an <SAMP>`i'</SAMP>. Pressing <KBD>ESC</KBD>
-switches you into `command' mode, where you can edit the text of the
-line with the standard <CODE>vi</CODE> movement keys, move to previous
-history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>, and
-so forth.
-</P><P>
-
-This document describes the GNU Readline Library, a utility for aiding
-in the consitency of user interface across discrete programs that need
-to provide a command line interface.
-</P><P>
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-</P><P>
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-</P><P>
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-</P><P>
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Foundation.
-</P><P>
-
-<A NAME="Programming with GNU Readline"></A>
-<HR SIZE="6">
-<A NAME="SEC23"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC24"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 2. Programming with GNU Readline </H1>
-<!--docid::SEC23::-->
-<P>
-
-This chapter describes the interface between the GNU Readline Library and
-other programs. If you are a programmer, and you wish to include the
-features found in GNU Readline
-such as completion, line editing, and interactive history manipulation
-in your own programs, this section is for you.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Using the default behavior of Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC25">2.2 Custom Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Adding your own functions to Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Variables accessible to custom
- functions.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC29">2.4 Readline Convenience Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions which Readline supplies to
- aid in writing your own custom
- functions.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How Readline behaves when it receives signals.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC44">2.6 Custom Completers</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Supplanting or supplementing Readline's
- completion functions.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Basic Behavior"></A>
-<HR SIZE="6">
-<A NAME="SEC24"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.1 Basic Behavior </H2>
-<!--docid::SEC24::-->
-<P>
-
-Many programs provide a command line interface, such as <CODE>mail</CODE>,
-<CODE>ftp</CODE>, and <CODE>sh</CODE>. For such programs, the default behaviour of
-Readline is sufficient. This section describes how to use Readline in
-the simplest way possible, perhaps to replace calls in your code to
-<CODE>gets()</CODE> or <CODE>fgets()</CODE>.
-</P><P>
-
-<A NAME="IDX174"></A>
-<A NAME="IDX175"></A>
-</P><P>
-
-The function <CODE>readline()</CODE> prints a prompt <VAR>prompt</VAR>
-and then reads and returns a single line of text from the user.
-If <VAR>prompt</VAR> is <CODE>NULL</CODE> or the empty string, no prompt is displayed.
-The line <CODE>readline</CODE> returns is allocated with <CODE>malloc()</CODE>;
-the caller should <CODE>free()</CODE> the line when it has finished with it.
-The declaration for <CODE>readline</CODE> in ANSI C is
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>char *readline (const char *<VAR>prompt</VAR>);</CODE>
-</pre></td></tr></table></P><P>
-
-So, one might say
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>char *line = readline ("Enter a line: ");</CODE>
-</pre></td></tr></table>in order to read a line of text from the user.
-The line returned has the final newline removed, so only the
-text remains.
-</P><P>
-
-If <CODE>readline</CODE> encounters an <CODE>EOF</CODE> while reading the line, and the
-line is empty at that point, then <CODE>(char *)NULL</CODE> is returned.
-Otherwise, the line is ended just as if a newline had been typed.
-</P><P>
-
-If you want the user to be able to get at the line later, (with
-<KBD>C-p</KBD> for example), you must call <CODE>add_history()</CODE> to save the
-line away in a <EM>history</EM> list of such lines.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>add_history (line)</CODE>;
-</pre></td></tr></table></P><P>
-
-For full details on the GNU History Library, see the associated manual.
-</P><P>
-
-It is preferable to avoid saving empty lines on the history list, since
-users rarely have a burning need to reuse a blank line. Here is
-a function which usefully replaces the standard <CODE>gets()</CODE> library
-function, and has the advantage of no static buffer to overflow:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>/* A static variable for holding the line. */
-static char *line_read = (char *)NULL;
-
-/* Read a string, and return a pointer to it.
- Returns NULL on EOF. */
-char *
-rl_gets ()
-{
- /* If the buffer has already been allocated,
- return the memory to the free pool. */
- if (line_read)
- {
- free (line_read);
- line_read = (char *)NULL;
- }
-
- /* Get a line from the user. */
- line_read = readline ("");
-
- /* If the line has any text in it,
- save it on the history. */
- if (line_read &#38;&#38; *line_read)
- add_history (line_read);
-
- return (line_read);
-}
-</pre></td></tr></table></P><P>
-
-This function gives the user the default behaviour of <KBD>TAB</KBD>
-completion: completion on file names. If you do not want Readline to
-complete on filenames, you can change the binding of the <KBD>TAB</KBD> key
-with <CODE>rl_bind_key()</CODE>.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>int rl_bind_key (int <VAR>key</VAR>, rl_command_func_t *<VAR>function</VAR>);</CODE>
-</pre></td></tr></table></P><P>
-
-<CODE>rl_bind_key()</CODE> takes two arguments: <VAR>key</VAR> is the character that
-you want to bind, and <VAR>function</VAR> is the address of the function to
-call when <VAR>key</VAR> is pressed. Binding <KBD>TAB</KBD> to <CODE>rl_insert()</CODE>
-makes <KBD>TAB</KBD> insert itself.
-<CODE>rl_bind_key()</CODE> returns non-zero if <VAR>key</VAR> is not a valid
-ASCII character code (between 0 and 255).
-</P><P>
-
-Thus, to disable the default <KBD>TAB</KBD> behavior, the following suffices:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>rl_bind_key ('\t', rl_insert);</CODE>
-</pre></td></tr></table></P><P>
-
-This code should be executed once at the start of your program; you
-might write a function called <CODE>initialize_readline()</CODE> which
-performs this and other desired initializations, such as installing
-custom completers (see section <A HREF="readline.html#SEC44">2.6 Custom Completers</A>).
-</P><P>
-
-<A NAME="Custom Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC25"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC24"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC26"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.2 Custom Functions </H2>
-<!--docid::SEC25::-->
-<P>
-
-Readline provides many functions for manipulating the text of
-the line, but it isn't possible to anticipate the needs of all
-programs. This section describes the various functions and variables
-defined within the Readline library which allow a user program to add
-customized functionality to Readline.
-</P><P>
-
-Before declaring any functions that customize Readline's behavior, or
-using any functionality Readline provides in other code, an
-application writer should include the file <CODE>&#60;readline/readline.h&#62;</CODE>
-in any file that uses Readline's features. Since some of the definitions
-in <CODE>readline.h</CODE> use the <CODE>stdio</CODE> library, the file
-<CODE>&#60;stdio.h&#62;</CODE> should be included before <CODE>readline.h</CODE>.
-</P><P>
-
-<CODE>readline.h</CODE> defines a C preprocessor variable that should
-be treated as an integer, <CODE>RL_READLINE_VERSION</CODE>, which may
-be used to conditionally compile application code depending on
-the installed Readline version. The value is a hexadecimal
-encoding of the major and minor version numbers of the library,
-of the form 0x<VAR>MMmm</VAR>. <VAR>MM</VAR> is the two-digit major
-version number; <VAR>mm</VAR> is the two-digit minor version number.
-For Readline 4.2, for example, the value of
-<CODE>RL_READLINE_VERSION</CODE> would be <CODE>0x0402</CODE>.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC26">2.2.1 Readline Typedefs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">C declarations to make code readable.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC27">2.2.2 Writing a New Function</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Variables and calling conventions.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Typedefs"></A>
-<HR SIZE="6">
-<A NAME="SEC26"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC27"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.2.1 Readline Typedefs </H3>
-<!--docid::SEC26::-->
-<P>
-
-For readabilty, we declare a number of new object types, all pointers
-to functions.
-</P><P>
-
-The reason for declaring these new types is to make it easier to write
-code describing pointers to C functions with appropriately prototyped
-arguments and return values.
-</P><P>
-
-For instance, say we want to declare a variable <VAR>func</VAR> as a pointer
-to a function which takes two <CODE>int</CODE> arguments and returns an
-<CODE>int</CODE> (this is the type of all of the Readline bindable functions).
-Instead of the classic C declaration
-</P><P>
-
-<CODE>int (*func)();</CODE>
-</P><P>
-
-or the ANSI-C style declaration
-</P><P>
-
-<CODE>int (*func)(int, int);</CODE>
-</P><P>
-
-we may write
-</P><P>
-
-<CODE>rl_command_func_t *func;</CODE>
-</P><P>
-
-The full list of function pointer types available is
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>typedef int rl_command_func_t (int, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef char *rl_compentry_func_t (const char *, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef char **rl_completion_func_t (const char *, int, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef char *rl_quote_func_t (char *, int, char *);</CODE>
-<DD><P>
-
-<DT><CODE>typedef char *rl_dequote_func_t (char *, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_compignore_func_t (char **);</CODE>
-<DD><P>
-
-<DT><CODE>typedef void rl_compdisp_func_t (char **, int, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_hook_func_t (void);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_getc_func_t (FILE *);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_linebuf_func_t (char *, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_intfunc_t (int);</CODE>
-<DD><DT><CODE>#define rl_ivoidfunc_t rl_hook_func_t</CODE>
-<DD><DT><CODE>typedef int rl_icpfunc_t (char *);</CODE>
-<DD><DT><CODE>typedef int rl_icppfunc_t (char **);</CODE>
-<DD><P>
-
-<DT><CODE>typedef void rl_voidfunc_t (void);</CODE>
-<DD><DT><CODE>typedef void rl_vintfunc_t (int);</CODE>
-<DD><DT><CODE>typedef void rl_vcpfunc_t (char *);</CODE>
-<DD><DT><CODE>typedef void rl_vcppfunc_t (char **);</CODE>
-<DD><P>
-
-</DL>
-<P>
-
-<A NAME="Function Writing"></A>
-<HR SIZE="6">
-<A NAME="SEC27"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC26"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.2.2 Writing a New Function </H3>
-<!--docid::SEC27::-->
-<P>
-
-In order to write new functions for Readline, you need to know the
-calling conventions for keyboard-invoked functions, and the names of the
-variables that describe the current state of the line read so far.
-</P><P>
-
-The calling sequence for a command <CODE>foo</CODE> looks like
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>int foo (int count, int key)</CODE>
-</pre></td></tr></table></P><P>
-
-where <VAR>count</VAR> is the numeric argument (or 1 if defaulted) and
-<VAR>key</VAR> is the key that invoked this function.
-</P><P>
-
-It is completely up to the function as to what should be done with the
-numeric argument. Some functions use it as a repeat count, some
-as a flag, and others to choose alternate behavior (refreshing the current
-line as opposed to refreshing the screen, for example). Some choose to
-ignore it. In general, if a
-function uses the numeric argument as a repeat count, it should be able
-to do something useful with both negative and positive arguments.
-At the very least, it should be aware that it can be passed a
-negative argument.
-</P><P>
-
-A command function should return 0 if its action completes successfully,
-and a non-zero value if some error occurs.
-</P><P>
-
-<A NAME="Readline Variables"></A>
-<HR SIZE="6">
-<A NAME="SEC28"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC27"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.3 Readline Variables </H2>
-<!--docid::SEC28::-->
-<P>
-
-These variables are available to function writers.
-</P><P>
-
-<A NAME="IDX176"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_line_buffer</B>
-<DD>This is the line gathered so far. You are welcome to modify the
-contents of the line, but see <A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A>. The
-function <CODE>rl_extend_line_buffer</CODE> is available to increase
-the memory allocated to <CODE>rl_line_buffer</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX177"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_point</B>
-<DD>The offset of the current cursor position in <CODE>rl_line_buffer</CODE>
-(the <EM>point</EM>).
-</DL>
-</P><P>
-
-<A NAME="IDX178"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_end</B>
-<DD>The number of characters present in <CODE>rl_line_buffer</CODE>. When
-<CODE>rl_point</CODE> is at the end of the line, <CODE>rl_point</CODE> and
-<CODE>rl_end</CODE> are equal.
-</DL>
-</P><P>
-
-<A NAME="IDX179"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_mark</B>
-<DD>The <VAR>mark</VAR> (saved position) in the current line. If set, the mark
-and point define a <EM>region</EM>.
-</DL>
-</P><P>
-
-<A NAME="IDX180"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_done</B>
-<DD>Setting this to a non-zero value causes Readline to return the current
-line immediately.
-</DL>
-</P><P>
-
-<A NAME="IDX181"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_num_chars_to_read</B>
-<DD>Setting this to a positive value before calling <CODE>readline()</CODE> causes
-Readline to return after accepting that many characters, rather
-than reading up to a character bound to <CODE>accept-line</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX182"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_pending_input</B>
-<DD>Setting this to a value makes it the next keystroke read. This is a
-way to stuff a single character into the input stream.
-</DL>
-</P><P>
-
-<A NAME="IDX183"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_dispatching</B>
-<DD>Set to a non-zero value if a function is being called from a key binding;
-zero otherwise. Application functions can test this to discover whether
-they were called directly or by Readline's dispatching mechanism.
-</DL>
-</P><P>
-
-<A NAME="IDX184"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_erase_empty_line</B>
-<DD>Setting this to a non-zero value causes Readline to completely erase
-the current line, including any prompt, any time a newline is typed as
-the only character on an otherwise-empty line. The cursor is moved to
-the beginning of the newly-blank line.
-</DL>
-</P><P>
-
-<A NAME="IDX185"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_prompt</B>
-<DD>The prompt Readline uses. This is set from the argument to
-<CODE>readline()</CODE>, and should not be assigned to directly.
-The <CODE>rl_set_prompt()</CODE> function (see section <A HREF="readline.html#SEC35">2.4.6 Redisplay</A>) may
-be used to modify the prompt string after calling <CODE>readline()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX186"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_already_prompted</B>
-<DD>If an application wishes to display the prompt itself, rather than have
-Readline do it the first time <CODE>readline()</CODE> is called, it should set
-this variable to a non-zero value after displaying the prompt.
-The prompt must also be passed as the argument to <CODE>readline()</CODE> so
-the redisplay functions can update the display properly.
-The calling application is responsible for managing the value; Readline
-never sets it.
-</DL>
-</P><P>
-
-<A NAME="IDX187"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_library_version</B>
-<DD>The version number of this revision of the library.
-</DL>
-</P><P>
-
-<A NAME="IDX188"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_readline_version</B>
-<DD>An integer encoding the current version of the library. The encoding is
-of the form 0x<VAR>MMmm</VAR>, where <VAR>MM</VAR> is the two-digit major version
-number, and <VAR>mm</VAR> is the two-digit minor version number.
-For example, for Readline-4.2, <CODE>rl_readline_version</CODE> would have the
-value 0x0402.
-</DL>
-</P><P>
-
-<A NAME="IDX189"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_gnu_readline_p</B>
-<DD>Always set to 1, denoting that this is GNU readline rather than some
-emulation.
-</DL>
-</P><P>
-
-<A NAME="IDX190"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_terminal_name</B>
-<DD>The terminal type, used for initialization. If not set by the application,
-Readline sets this to the value of the <CODE>TERM</CODE> environment variable
-the first time it is called.
-</DL>
-</P><P>
-
-<A NAME="IDX191"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_readline_name</B>
-<DD>This variable is set to a unique name by each application using Readline.
-The value allows conditional parsing of the inputrc file
-(see section <A HREF="readline.html#SEC11">1.3.2 Conditional Init Constructs</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX192"></A>
-<DL>
-<DT><U>Variable:</U> FILE * <B>rl_instream</B>
-<DD>The stdio stream from which Readline reads input.
-If <CODE>NULL</CODE>, Readline defaults to <VAR>stdin</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX193"></A>
-<DL>
-<DT><U>Variable:</U> FILE * <B>rl_outstream</B>
-<DD>The stdio stream to which Readline performs output.
-If <CODE>NULL</CODE>, Readline defaults to <VAR>stdout</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX194"></A>
-<DL>
-<DT><U>Variable:</U> rl_command_func_t * <B>rl_last_func</B>
-<DD>The address of the last command function Readline executed. May be used to
-test whether or not a function is being executed twice in succession, for
-example.
-</DL>
-</P><P>
-
-<A NAME="IDX195"></A>
-<DL>
-<DT><U>Variable:</U> rl_hook_func_t * <B>rl_startup_hook</B>
-<DD>If non-zero, this is the address of a function to call just
-before <CODE>readline</CODE> prints the first prompt.
-</DL>
-</P><P>
-
-<A NAME="IDX196"></A>
-<DL>
-<DT><U>Variable:</U> rl_hook_func_t * <B>rl_pre_input_hook</B>
-<DD>If non-zero, this is the address of a function to call after
-the first prompt has been printed and just before <CODE>readline</CODE>
-starts reading input characters.
-</DL>
-</P><P>
-
-<A NAME="IDX197"></A>
-<DL>
-<DT><U>Variable:</U> rl_hook_func_t * <B>rl_event_hook</B>
-<DD>If non-zero, this is the address of a function to call periodically
-when Readline is waiting for terminal input.
-By default, this will be called at most ten times a second if there
-is no keyboard input.
-</DL>
-</P><P>
-
-<A NAME="IDX198"></A>
-<DL>
-<DT><U>Variable:</U> rl_getc_func_t * <B>rl_getc_function</B>
-<DD>If non-zero, Readline will call indirectly through this pointer
-to get a character from the input stream. By default, it is set to
-<CODE>rl_getc</CODE>, the default Readline character input function
-(see section <A HREF="readline.html#SEC37">2.4.8 Character Input</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX199"></A>
-<DL>
-<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_redisplay_function</B>
-<DD>If non-zero, Readline will call indirectly through this pointer
-to update the display with the current contents of the editing buffer.
-By default, it is set to <CODE>rl_redisplay</CODE>, the default Readline
-redisplay function (see section <A HREF="readline.html#SEC35">2.4.6 Redisplay</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX200"></A>
-<DL>
-<DT><U>Variable:</U> rl_vintfunc_t * <B>rl_prep_term_function</B>
-<DD>If non-zero, Readline will call indirectly through this pointer
-to initialize the terminal. The function takes a single argument, an
-<CODE>int</CODE> flag that says whether or not to use eight-bit characters.
-By default, this is set to <CODE>rl_prep_terminal</CODE>
-(see section <A HREF="readline.html#SEC38">2.4.9 Terminal Management</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX201"></A>
-<DL>
-<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_deprep_term_function</B>
-<DD>If non-zero, Readline will call indirectly through this pointer
-to reset the terminal. This function should undo the effects of
-<CODE>rl_prep_term_function</CODE>.
-By default, this is set to <CODE>rl_deprep_terminal</CODE>
-(see section <A HREF="readline.html#SEC38">2.4.9 Terminal Management</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX202"></A>
-<DL>
-<DT><U>Variable:</U> Keymap <B>rl_executing_keymap</B>
-<DD>This variable is set to the keymap (see section <A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>) in which the
-currently executing readline function was found.
-</DL>
-</P><P>
-
-<A NAME="IDX203"></A>
-<DL>
-<DT><U>Variable:</U> Keymap <B>rl_binding_keymap</B>
-<DD>This variable is set to the keymap (see section <A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>) in which the
-last key binding occurred.
-</DL>
-</P><P>
-
-<A NAME="IDX204"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_executing_macro</B>
-<DD>This variable is set to the text of any currently-executing macro.
-</DL>
-</P><P>
-
-<A NAME="IDX205"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_readline_state</B>
-<DD>A variable with bit values that encapsulate the current Readline state.
-A bit is set with the <CODE>RL_SETSTATE</CODE> macro, and unset with the
-<CODE>RL_UNSETSTATE</CODE> macro. Use the <CODE>RL_ISSTATE</CODE> macro to test
-whether a particular state bit is set. Current state bits include:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>RL_STATE_NONE</CODE>
-<DD>Readline has not yet been called, nor has it begun to intialize.
-<DT><CODE>RL_STATE_INITIALIZING</CODE>
-<DD>Readline is initializing its internal data structures.
-<DT><CODE>RL_STATE_INITIALIZED</CODE>
-<DD>Readline has completed its initialization.
-<DT><CODE>RL_STATE_TERMPREPPED</CODE>
-<DD>Readline has modified the terminal modes to do its own input and redisplay.
-<DT><CODE>RL_STATE_READCMD</CODE>
-<DD>Readline is reading a command from the keyboard.
-<DT><CODE>RL_STATE_METANEXT</CODE>
-<DD>Readline is reading more input after reading the meta-prefix character.
-<DT><CODE>RL_STATE_DISPATCHING</CODE>
-<DD>Readline is dispatching to a command.
-<DT><CODE>RL_STATE_MOREINPUT</CODE>
-<DD>Readline is reading more input while executing an editing command.
-<DT><CODE>RL_STATE_ISEARCH</CODE>
-<DD>Readline is performing an incremental history search.
-<DT><CODE>RL_STATE_NSEARCH</CODE>
-<DD>Readline is performing a non-incremental history search.
-<DT><CODE>RL_STATE_SEARCH</CODE>
-<DD>Readline is searching backward or forward through the history for a string.
-<DT><CODE>RL_STATE_NUMERICARG</CODE>
-<DD>Readline is reading a numeric argument.
-<DT><CODE>RL_STATE_MACROINPUT</CODE>
-<DD>Readline is currently getting its input from a previously-defined keyboard
-macro.
-<DT><CODE>RL_STATE_MACRODEF</CODE>
-<DD>Readline is currently reading characters defining a keyboard macro.
-<DT><CODE>RL_STATE_OVERWRITE</CODE>
-<DD>Readline is in overwrite mode.
-<DT><CODE>RL_STATE_COMPLETING</CODE>
-<DD>Readline is performing word completion.
-<DT><CODE>RL_STATE_SIGHANDLER</CODE>
-<DD>Readline is currently executing the readline signal handler.
-<DT><CODE>RL_STATE_UNDOING</CODE>
-<DD>Readline is performing an undo.
-<DT><CODE>RL_STATE_DONE</CODE>
-<DD>Readline has read a key sequence bound to <CODE>accept-line</CODE>
-and is about to return the line to the caller.
-</DL>
-<P>
-
-</DL>
-</P><P>
-
-<A NAME="IDX206"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_explicit_arg</B>
-<DD>Set to a non-zero value if an explicit numeric argument was specified by
-the user. Only valid in a bindable command function.
-</DL>
-</P><P>
-
-<A NAME="IDX207"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_numeric_arg</B>
-<DD>Set to the value of any numeric argument explicitly specified by the user
-before executing the current Readline function. Only valid in a bindable
-command function.
-</DL>
-</P><P>
-
-<A NAME="IDX208"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_editing_mode</B>
-<DD>Set to a value denoting Readline's current editing mode. A value of
-<VAR>1</VAR> means Readline is currently in emacs mode; <VAR>0</VAR>
-means that vi mode is active.
-</DL>
-</P><P>
-
-<A NAME="Readline Convenience Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC29"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC30"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.4 Readline Convenience Functions </H2>
-<!--docid::SEC29::-->
-<P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC30">2.4.1 Naming a Function</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to give a function you write a name.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Making keymaps.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Changing Keymaps.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Translate function names to
- key sequences.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to make your functions undoable.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to control line display.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to modify <CODE>rl_line_buffer</CODE>.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to read keyboard input.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to manage terminal settings.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Generally useful functions and hooks.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions that don't fall into any category.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Using Readline in a `callback' fashion.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC42">2.4.13 A Readline Example</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example Readline function.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Function Naming"></A>
-<HR SIZE="6">
-<A NAME="SEC30"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.1 Naming a Function </H3>
-<!--docid::SEC30::-->
-<P>
-
-The user can dynamically change the bindings of keys while using
-Readline. This is done by representing the function with a descriptive
-name. The user is able to type the descriptive name when referring to
-the function. Thus, in an init file, one might find
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>Meta-Rubout: backward-kill-word
-</pre></td></tr></table></P><P>
-
-This binds the keystroke <KBD>Meta-Rubout</KBD> to the function
-<EM>descriptively</EM> named <CODE>backward-kill-word</CODE>. You, as the
-programmer, should bind the functions you write to descriptive names as
-well. Readline provides a function for doing that:
-</P><P>
-
-<A NAME="IDX209"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_add_defun</B> <I>(const char *name, rl_command_func_t *function, int key)</I>
-<DD>Add <VAR>name</VAR> to the list of named functions. Make <VAR>function</VAR> be
-the function that gets called. If <VAR>key</VAR> is not -1, then bind it to
-<VAR>function</VAR> using <CODE>rl_bind_key()</CODE>.
-</DL>
-</P><P>
-
-Using this function alone is sufficient for most applications. It is
-the recommended way to add a few functions to the default functions that
-Readline has built in. If you need to do something other
-than adding a function to Readline, you may need to use the
-underlying functions described below.
-</P><P>
-
-<A NAME="Keymaps"></A>
-<HR SIZE="6">
-<A NAME="SEC31"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC30"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC32"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC32"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.2 Selecting a Keymap </H3>
-<!--docid::SEC31::-->
-<P>
-
-Key bindings take place on a <EM>keymap</EM>. The keymap is the
-association between the keys that the user types and the functions that
-get run. You can make your own keymaps, copy existing keymaps, and tell
-Readline which keymap to use.
-</P><P>
-
-<A NAME="IDX210"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_make_bare_keymap</B> <I>(void)</I>
-<DD>Returns a new, empty keymap. The space for the keymap is allocated with
-<CODE>malloc()</CODE>; the caller should free it by calling
-<CODE>rl_discard_keymap()</CODE> when done.
-</DL>
-</P><P>
-
-<A NAME="IDX211"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_copy_keymap</B> <I>(Keymap map)</I>
-<DD>Return a new keymap which is a copy of <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX212"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_make_keymap</B> <I>(void)</I>
-<DD>Return a new keymap with the printing characters bound to rl_insert,
-the lowercase Meta characters bound to run their equivalents, and
-the Meta digits bound to produce numeric arguments.
-</DL>
-</P><P>
-
-<A NAME="IDX213"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_discard_keymap</B> <I>(Keymap keymap)</I>
-<DD>Free the storage associated with <VAR>keymap</VAR>.
-</DL>
-</P><P>
-
-Readline has several internal keymaps. These functions allow you to
-change which keymap is active.
-</P><P>
-
-<A NAME="IDX214"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_get_keymap</B> <I>(void)</I>
-<DD>Returns the currently active keymap.
-</DL>
-</P><P>
-
-<A NAME="IDX215"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_set_keymap</B> <I>(Keymap keymap)</I>
-<DD>Makes <VAR>keymap</VAR> the currently active keymap.
-</DL>
-</P><P>
-
-<A NAME="IDX216"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_get_keymap_by_name</B> <I>(const char *name)</I>
-<DD>Return the keymap matching <VAR>name</VAR>. <VAR>name</VAR> is one which would
-be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX217"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_get_keymap_name</B> <I>(Keymap keymap)</I>
-<DD>Return the name matching <VAR>keymap</VAR>. <VAR>name</VAR> is one which would
-be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-</DL>
-</P><P>
-
-<A NAME="Binding Keys"></A>
-<HR SIZE="6">
-<A NAME="SEC32"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC33"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC33"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.3 Binding Keys </H3>
-<!--docid::SEC32::-->
-<P>
-
-Key sequences are associate with functions through the keymap.
-Readline has several internal keymaps: <CODE>emacs_standard_keymap</CODE>,
-<CODE>emacs_meta_keymap</CODE>, <CODE>emacs_ctlx_keymap</CODE>,
-<CODE>vi_movement_keymap</CODE>, and <CODE>vi_insertion_keymap</CODE>.
-<CODE>emacs_standard_keymap</CODE> is the default, and the examples in
-this manual assume that.
-</P><P>
-
-Since <CODE>readline()</CODE> installs a set of default key bindings the first
-time it is called, there is always the danger that a custom binding
-installed before the first call to <CODE>readline()</CODE> will be overridden.
-An alternate mechanism is to install custom key bindings in an
-initialization function assigned to the <CODE>rl_startup_hook</CODE> variable
-(see section <A HREF="readline.html#SEC28">2.3 Readline Variables</A>).
-</P><P>
-
-These functions manage key bindings.
-</P><P>
-
-<A NAME="IDX218"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_bind_key</B> <I>(int key, rl_command_func_t *function)</I>
-<DD>Binds <VAR>key</VAR> to <VAR>function</VAR> in the currently active keymap.
-Returns non-zero in the case of an invalid <VAR>key</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX219"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_bind_key_in_map</B> <I>(int key, rl_command_func_t *function, Keymap map)</I>
-<DD>Bind <VAR>key</VAR> to <VAR>function</VAR> in <VAR>map</VAR>. Returns non-zero in the case
-of an invalid <VAR>key</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX220"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_unbind_key</B> <I>(int key)</I>
-<DD>Bind <VAR>key</VAR> to the null function in the currently active keymap.
-Returns non-zero in case of error.
-</DL>
-</P><P>
-
-<A NAME="IDX221"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_unbind_key_in_map</B> <I>(int key, Keymap map)</I>
-<DD>Bind <VAR>key</VAR> to the null function in <VAR>map</VAR>.
-Returns non-zero in case of error.
-</DL>
-</P><P>
-
-<A NAME="IDX222"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_unbind_function_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
-<DD>Unbind all keys that execute <VAR>function</VAR> in <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX223"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_unbind_command_in_map</B> <I>(const char *command, Keymap map)</I>
-<DD>Unbind all keys that are bound to <VAR>command</VAR> in <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX224"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_key</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
-<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the function
-<VAR>function</VAR>. This makes new keymaps as
-necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX225"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_generic_bind</B> <I>(int type, const char *keyseq, char *data, Keymap map)</I>
-<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the arbitrary
-pointer <VAR>data</VAR>. <VAR>type</VAR> says what kind of data is pointed to by
-<VAR>data</VAR>; this can be a function (<CODE>ISFUNC</CODE>), a macro
-(<CODE>ISMACR</CODE>), or a keymap (<CODE>ISKMAP</CODE>). This makes new keymaps as
-necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX226"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_parse_and_bind</B> <I>(char *line)</I>
-<DD>Parse <VAR>line</VAR> as if it had been read from the <CODE>inputrc</CODE> file and
-perform any key bindings and variable assignments found
-(see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX227"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_read_init_file</B> <I>(const char *filename)</I>
-<DD>Read keybindings and variable assignments from <VAR>filename</VAR>
-(see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-</DL>
-</P><P>
-
-<A NAME="Associating Function Names and Bindings"></A>
-<HR SIZE="6">
-<A NAME="SEC33"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC32"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC34"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC34"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.4 Associating Function Names and Bindings </H3>
-<!--docid::SEC33::-->
-<P>
-
-These functions allow you to find out what keys invoke named functions
-and the functions invoked by a particular key sequence. You may also
-associate a new function name with an arbitrary function.
-</P><P>
-
-<A NAME="IDX228"></A>
-<DL>
-<DT><U>Function:</U> rl_command_func_t * <B>rl_named_function</B> <I>(const char *name)</I>
-<DD>Return the function with name <VAR>name</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX229"></A>
-<DL>
-<DT><U>Function:</U> rl_command_func_t * <B>rl_function_of_keyseq</B> <I>(const char *keyseq, Keymap map, int *type)</I>
-<DD>Return the function invoked by <VAR>keyseq</VAR> in keymap <VAR>map</VAR>.
-If <VAR>map</VAR> is <CODE>NULL</CODE>, the current keymap is used. If <VAR>type</VAR> is
-not <CODE>NULL</CODE>, the type of the object is returned in the <CODE>int</CODE> variable
-it points to (one of <CODE>ISFUNC</CODE>, <CODE>ISKMAP</CODE>, or <CODE>ISMACR</CODE>).
-</DL>
-</P><P>
-
-<A NAME="IDX230"></A>
-<DL>
-<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(rl_command_func_t *function)</I>
-<DD>Return an array of strings representing the key sequences used to
-invoke <VAR>function</VAR> in the current keymap.
-</DL>
-</P><P>
-
-<A NAME="IDX231"></A>
-<DL>
-<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
-<DD>Return an array of strings representing the key sequences used to
-invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX232"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_function_dumper</B> <I>(int readable)</I>
-<DD>Print the readline function names and the key sequences currently
-bound to them to <CODE>rl_outstream</CODE>. If <VAR>readable</VAR> is non-zero,
-the list is formatted in such a way that it can be made part of an
-<CODE>inputrc</CODE> file and re-read.
-</DL>
-</P><P>
-
-<A NAME="IDX233"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_list_funmap_names</B> <I>(void)</I>
-<DD>Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX234"></A>
-<DL>
-<DT><U>Function:</U> const char ** <B>rl_funmap_names</B> <I>(void)</I>
-<DD>Return a NULL terminated array of known function names. The array is
-sorted. The array itself is allocated, but not the strings inside. You
-should <CODE>free()</CODE> the array when you are done, but not the pointers.
-</DL>
-</P><P>
-
-<A NAME="IDX235"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_add_funmap_entry</B> <I>(const char *name, rl_command_func_t *function)</I>
-<DD>Add <VAR>name</VAR> to the list of bindable Readline command names, and make
-<VAR>function</VAR> the function to be called when <VAR>name</VAR> is invoked.
-</DL>
-</P><P>
-
-<A NAME="Allowing Undoing"></A>
-<HR SIZE="6">
-<A NAME="SEC34"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC33"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC35"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC35"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.5 Allowing Undoing </H3>
-<!--docid::SEC34::-->
-<P>
-
-Supporting the undo command is a painless thing, and makes your
-functions much more useful. It is certainly easy to try
-something if you know you can undo it.
-</P><P>
-
-If your function simply inserts text once, or deletes text once, and
-uses <CODE>rl_insert_text()</CODE> or <CODE>rl_delete_text()</CODE> to do it, then
-undoing is already done for you automatically.
-</P><P>
-
-If you do multiple insertions or multiple deletions, or any combination
-of these operations, you should group them together into one operation.
-This is done with <CODE>rl_begin_undo_group()</CODE> and
-<CODE>rl_end_undo_group()</CODE>.
-</P><P>
-
-The types of events that can be undone are:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre>enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
-</FONT></pre></td></tr></table></P><P>
-
-Notice that <CODE>UNDO_DELETE</CODE> means to insert some text, and
-<CODE>UNDO_INSERT</CODE> means to delete some text. That is, the undo code
-tells what to undo, not how to undo it. <CODE>UNDO_BEGIN</CODE> and
-<CODE>UNDO_END</CODE> are tags added by <CODE>rl_begin_undo_group()</CODE> and
-<CODE>rl_end_undo_group()</CODE>.
-</P><P>
-
-<A NAME="IDX236"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_begin_undo_group</B> <I>(void)</I>
-<DD>Begins saving undo information in a group construct. The undo
-information usually comes from calls to <CODE>rl_insert_text()</CODE> and
-<CODE>rl_delete_text()</CODE>, but could be the result of calls to
-<CODE>rl_add_undo()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX237"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_end_undo_group</B> <I>(void)</I>
-<DD>Closes the current undo group started with <CODE>rl_begin_undo_group
-()</CODE>. There should be one call to <CODE>rl_end_undo_group()</CODE>
-for each call to <CODE>rl_begin_undo_group()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX238"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_add_undo</B> <I>(enum undo_code what, int start, int end, char *text)</I>
-<DD>Remember how to undo an event (according to <VAR>what</VAR>). The affected
-text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX239"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_free_undo_list</B> <I>(void)</I>
-<DD>Free the existing undo list.
-</DL>
-</P><P>
-
-<A NAME="IDX240"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_do_undo</B> <I>(void)</I>
-<DD>Undo the first thing on the undo list. Returns <CODE>0</CODE> if there was
-nothing to undo, non-zero if something was undone.
-</DL>
-</P><P>
-
-Finally, if you neither insert nor delete text, but directly modify the
-existing text (e.g., change its case), call <CODE>rl_modifying()</CODE>
-once, just before you modify the text. You must supply the indices of
-the text range that you are going to modify.
-</P><P>
-
-<A NAME="IDX241"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_modifying</B> <I>(int start, int end)</I>
-<DD>Tell Readline to save the text between <VAR>start</VAR> and <VAR>end</VAR> as a
-single undo unit. It is assumed that you will subsequently modify
-that text.
-</DL>
-</P><P>
-
-<A NAME="Redisplay"></A>
-<HR SIZE="6">
-<A NAME="SEC35"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC34"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC36"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC36"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.6 Redisplay </H3>
-<!--docid::SEC35::-->
-<P>
-
-<A NAME="IDX242"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_redisplay</B> <I>(void)</I>
-<DD>Change what's displayed on the screen to reflect the current contents
-of <CODE>rl_line_buffer</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX243"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_forced_update_display</B> <I>(void)</I>
-<DD>Force the line to be updated and redisplayed, whether or not
-Readline thinks the screen display is correct.
-</DL>
-</P><P>
-
-<A NAME="IDX244"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_on_new_line</B> <I>(void)</I>
-<DD>Tell the update functions that we have moved onto a new (empty) line,
-usually after ouputting a newline.
-</DL>
-</P><P>
-
-<A NAME="IDX245"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_on_new_line_with_prompt</B> <I>(void)</I>
-<DD>Tell the update functions that we have moved onto a new line, with
-<VAR>rl_prompt</VAR> already displayed.
-This could be used by applications that want to output the prompt string
-themselves, but still need Readline to know the prompt string length for
-redisplay.
-It should be used after setting <VAR>rl_already_prompted</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX246"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_reset_line_state</B> <I>(void)</I>
-<DD>Reset the display state to a clean state and redisplay the current line
-starting on a new line.
-</DL>
-</P><P>
-
-<A NAME="IDX247"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_crlf</B> <I>(void)</I>
-<DD>Move the cursor to the start of the next screen line.
-</DL>
-</P><P>
-
-<A NAME="IDX248"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_show_char</B> <I>(int c)</I>
-<DD>Display character <VAR>c</VAR> on <CODE>rl_outstream</CODE>.
-If Readline has not been set to display meta characters directly, this
-will convert meta characters to a meta-prefixed key sequence.
-This is intended for use by applications which wish to do their own
-redisplay.
-</DL>
-</P><P>
-
-<A NAME="IDX249"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_message</B> <I>(const char *, <small>...</small>)</I>
-<DD>The arguments are a format string as would be supplied to <CODE>printf</CODE>,
-possibly containing conversion specifications such as <SAMP>`%d'</SAMP>, and
-any additional arguments necessary to satisfy the conversion specifications.
-The resulting string is displayed in the <EM>echo area</EM>. The echo area
-is also used to display numeric arguments and search strings.
-</DL>
-</P><P>
-
-<A NAME="IDX250"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_clear_message</B> <I>(void)</I>
-<DD>Clear the message in the echo area.
-</DL>
-</P><P>
-
-<A NAME="IDX251"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_save_prompt</B> <I>(void)</I>
-<DD>Save the local Readline prompt display state in preparation for
-displaying a new message in the message area with <CODE>rl_message()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX252"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_restore_prompt</B> <I>(void)</I>
-<DD>Restore the local Readline prompt display state saved by the most
-recent call to <CODE>rl_save_prompt</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX253"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_expand_prompt</B> <I>(char *prompt)</I>
-<DD>Expand any special character sequences in <VAR>prompt</VAR> and set up the
-local Readline prompt redisplay variables.
-This function is called by <CODE>readline()</CODE>. It may also be called to
-expand the primary prompt if the <CODE>rl_on_new_line_with_prompt()</CODE>
-function or <CODE>rl_already_prompted</CODE> variable is used.
-It returns the number of visible characters on the last line of the
-(possibly multi-line) prompt.
-</DL>
-</P><P>
-
-<A NAME="IDX254"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_prompt</B> <I>(const char *prompt)</I>
-<DD>Make Readline use <VAR>prompt</VAR> for subsequent redisplay. This calls
-<CODE>rl_expand_prompt()</CODE> to expand the prompt and sets <CODE>rl_prompt</CODE>
-to the result.
-</DL>
-</P><P>
-
-<A NAME="Modifying Text"></A>
-<HR SIZE="6">
-<A NAME="SEC36"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC35"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC37"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC37"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.7 Modifying Text </H3>
-<!--docid::SEC36::-->
-<P>
-
-<A NAME="IDX255"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_insert_text</B> <I>(const char *text)</I>
-<DD>Insert <VAR>text</VAR> into the line at the current cursor position.
-Returns the number of characters inserted.
-</DL>
-</P><P>
-
-<A NAME="IDX256"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_delete_text</B> <I>(int start, int end)</I>
-<DD>Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line.
-Returns the number of characters deleted.
-</DL>
-</P><P>
-
-<A NAME="IDX257"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_copy_text</B> <I>(int start, int end)</I>
-<DD>Return a copy of the text between <VAR>start</VAR> and <VAR>end</VAR> in
-the current line.
-</DL>
-</P><P>
-
-<A NAME="IDX258"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_kill_text</B> <I>(int start, int end)</I>
-<DD>Copy the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line
-to the kill ring, appending or prepending to the last kill if the
-last command was a kill command. The text is deleted.
-If <VAR>start</VAR> is less than <VAR>end</VAR>,
-the text is appended, otherwise prepended. If the last command was
-not a kill, a new kill ring slot is used.
-</DL>
-</P><P>
-
-<A NAME="IDX259"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_push_macro_input</B> <I>(char *macro)</I>
-<DD>Cause <VAR>macro</VAR> to be inserted into the line, as if it had been invoked
-by a key bound to a macro. Not especially useful; use
-<CODE>rl_insert_text()</CODE> instead.
-</DL>
-</P><P>
-
-<A NAME="Character Input"></A>
-<HR SIZE="6">
-<A NAME="SEC37"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC36"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC38"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC38"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.8 Character Input </H3>
-<!--docid::SEC37::-->
-<P>
-
-<A NAME="IDX260"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_read_key</B> <I>(void)</I>
-<DD>Return the next character available from Readline's current input stream.
-This handles input inserted into
-the input stream via <VAR>rl_pending_input</VAR> (see section <A HREF="readline.html#SEC28">2.3 Readline Variables</A>)
-and <CODE>rl_stuff_char()</CODE>, macros, and characters read from the keyboard.
-While waiting for input, this function will call any function assigned to
-the <CODE>rl_event_hook</CODE> variable.
-</DL>
-</P><P>
-
-<A NAME="IDX261"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *stream)</I>
-<DD>Return the next character available from <VAR>stream</VAR>, which is assumed to
-be the keyboard.
-</DL>
-</P><P>
-
-<A NAME="IDX262"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I>
-<DD>Insert <VAR>c</VAR> into the Readline input stream. It will be "read"
-before Readline attempts to read characters from the terminal with
-<CODE>rl_read_key()</CODE>. Up to 512 characters may be pushed back.
-<CODE>rl_stuff_char</CODE> returns 1 if the character was successfully inserted;
-0 otherwise.
-</DL>
-</P><P>
-
-<A NAME="IDX263"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_execute_next</B> <I>(int c)</I>
-<DD>Make <VAR>c</VAR> be the next command to be executed when <CODE>rl_read_key()</CODE>
-is called. This sets <VAR>rl_pending_input</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX264"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_clear_pending_input</B> <I>(void)</I>
-<DD>Unset <VAR>rl_pending_input</VAR>, effectively negating the effect of any
-previous call to <CODE>rl_execute_next()</CODE>. This works only if the
-pending input has not already been read with <CODE>rl_read_key()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX265"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_keyboard_input_timeout</B> <I>(int u)</I>
-<DD>While waiting for keyboard input in <CODE>rl_read_key()</CODE>, Readline will
-wait for <VAR>u</VAR> microseconds for input before calling any function
-assigned to <CODE>rl_event_hook</CODE>. The default waiting period is
-one-tenth of a second. Returns the old timeout value.
-</DL>
-</P><P>
-
-<A NAME="Terminal Management"></A>
-<HR SIZE="6">
-<A NAME="SEC38"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC37"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC39"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.9 Terminal Management </H3>
-<!--docid::SEC38::-->
-<P>
-
-<A NAME="IDX266"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_prep_terminal</B> <I>(int meta_flag)</I>
-<DD>Modify the terminal settings for Readline's use, so <CODE>readline()</CODE>
-can read a single character at a time from the keyboard.
-The <VAR>meta_flag</VAR> argument should be non-zero if Readline should
-read eight-bit input.
-</DL>
-</P><P>
-
-<A NAME="IDX267"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_deprep_terminal</B> <I>(void)</I>
-<DD>Undo the effects of <CODE>rl_prep_terminal()</CODE>, leaving the terminal in
-the state in which it was before the most recent call to
-<CODE>rl_prep_terminal()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX268"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_tty_set_default_bindings</B> <I>(Keymap kmap)</I>
-<DD>Read the operating system's terminal editing characters (as would be displayed
-by <CODE>stty</CODE>) to their Readline equivalents. The bindings are performed
-in <VAR>kmap</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX269"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(const char *terminal_name)</I>
-<DD>Reinitialize Readline's idea of the terminal settings using
-<VAR>terminal_name</VAR> as the terminal type (e.g., <CODE>vt100</CODE>).
-If <VAR>terminal_name</VAR> is <CODE>NULL</CODE>, the value of the <CODE>TERM</CODE>
-environment variable is used.
-</DL>
-</P><P>
-
-<A NAME="Utility Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC39"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC38"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC40"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.10 Utility Functions </H3>
-<!--docid::SEC39::-->
-<P>
-
-<A NAME="IDX270"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_replace_line</B> <I>(const char *text, int clear_undo)</I>
-<DD>Replace the contents of <CODE>rl_line_buffer</CODE> with <VAR>text</VAR>.
-The point and mark are preserved, if possible.
-If <VAR>clear_undo</VAR> is non-zero, the undo list associated with the
-current line is cleared.
-</DL>
-</P><P>
-
-<A NAME="IDX271"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_extend_line_buffer</B> <I>(int len)</I>
-<DD>Ensure that <CODE>rl_line_buffer</CODE> has enough space to hold <VAR>len</VAR>
-characters, possibly reallocating it if necessary.
-</DL>
-</P><P>
-
-<A NAME="IDX272"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
-<DD>Initialize or re-initialize Readline's internal state.
-It's not strictly necessary to call this; <CODE>readline()</CODE> calls it before
-reading any input.
-</DL>
-</P><P>
-
-<A NAME="IDX273"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_ding</B> <I>(void)</I>
-<DD>Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX274"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_alphabetic</B> <I>(int c)</I>
-<DD>Return 1 if <VAR>c</VAR> is an alphabetic character.
-</DL>
-</P><P>
-
-<A NAME="IDX275"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_display_match_list</B> <I>(char **matches, int len, int max)</I>
-<DD>A convenience function for displaying a list of strings in
-columnar format on Readline's output stream. <CODE>matches</CODE> is the list
-of strings, in argv format, such as a list of completion matches.
-<CODE>len</CODE> is the number of strings in <CODE>matches</CODE>, and <CODE>max</CODE>
-is the length of the longest string in <CODE>matches</CODE>. This function uses
-the setting of <CODE>print-completions-horizontally</CODE> to select how the
-matches are displayed (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A>).
-</DL>
-</P><P>
-
-The following are implemented as macros, defined in <CODE>chardefs.h</CODE>.
-Applications should refrain from using them.
-</P><P>
-
-<A NAME="IDX276"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_uppercase_p</B> <I>(int c)</I>
-<DD>Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
-</DL>
-</P><P>
-
-<A NAME="IDX277"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_lowercase_p</B> <I>(int c)</I>
-<DD>Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
-</DL>
-</P><P>
-
-<A NAME="IDX278"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_digit_p</B> <I>(int c)</I>
-<DD>Return 1 if <VAR>c</VAR> is a numeric character.
-</DL>
-</P><P>
-
-<A NAME="IDX279"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_to_upper</B> <I>(int c)</I>
-<DD>If <VAR>c</VAR> is a lowercase alphabetic character, return the corresponding
-uppercase character.
-</DL>
-</P><P>
-
-<A NAME="IDX280"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_to_lower</B> <I>(int c)</I>
-<DD>If <VAR>c</VAR> is an uppercase alphabetic character, return the corresponding
-lowercase character.
-</DL>
-</P><P>
-
-<A NAME="IDX281"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_digit_value</B> <I>(int c)</I>
-<DD>If <VAR>c</VAR> is a number, return the value it represents.
-</DL>
-</P><P>
-
-<A NAME="Miscellaneous Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC40"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC39"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC41"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.11 Miscellaneous Functions </H3>
-<!--docid::SEC40::-->
-<P>
-
-<A NAME="IDX282"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_macro_bind</B> <I>(const char *keyseq, const char *macro, Keymap map)</I>
-<DD>Bind the key sequence <VAR>keyseq</VAR> to invoke the macro <VAR>macro</VAR>.
-The binding is performed in <VAR>map</VAR>. When <VAR>keyseq</VAR> is invoked, the
-<VAR>macro</VAR> will be inserted into the line. This function is deprecated;
-use <CODE>rl_generic_bind()</CODE> instead.
-</DL>
-</P><P>
-
-<A NAME="IDX283"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_macro_dumper</B> <I>(int readable)</I>
-<DD>Print the key sequences bound to macros and their values, using
-the current keymap, to <CODE>rl_outstream</CODE>.
-If <VAR>readable</VAR> is non-zero, the list is formatted in such a way
-that it can be made part of an <CODE>inputrc</CODE> file and re-read.
-</DL>
-</P><P>
-
-<A NAME="IDX284"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_variable_bind</B> <I>(const char *variable, const char *value)</I>
-<DD>Make the Readline variable <VAR>variable</VAR> have <VAR>value</VAR>.
-This behaves as if the readline command
-<SAMP>`set <VAR>variable</VAR> <VAR>value</VAR>'</SAMP> had been executed in an <CODE>inputrc</CODE>
-file (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX285"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_variable_dumper</B> <I>(int readable)</I>
-<DD>Print the readline variable names and their current values
-to <CODE>rl_outstream</CODE>.
-If <VAR>readable</VAR> is non-zero, the list is formatted in such a way
-that it can be made part of an <CODE>inputrc</CODE> file and re-read.
-</DL>
-</P><P>
-
-<A NAME="IDX286"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_paren_blink_timeout</B> <I>(int u)</I>
-<DD>Set the time interval (in microseconds) that Readline waits when showing
-a balancing character when <CODE>blink-matching-paren</CODE> has been enabled.
-</DL>
-</P><P>
-
-<A NAME="IDX287"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_get_termcap</B> <I>(const char *cap)</I>
-<DD>Retrieve the string value of the termcap capability <VAR>cap</VAR>.
-Readline fetches the termcap entry for the current terminal name and
-uses those capabilities to move around the screen line and perform other
-terminal-specific operations, like erasing a line. Readline does not
-use all of a terminal's capabilities, and this function will return
-values for only those capabilities Readline uses.
-</DL>
-</P><P>
-
-<A NAME="Alternate Interface"></A>
-<HR SIZE="6">
-<A NAME="SEC41"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC40"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC42"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.12 Alternate Interface </H3>
-<!--docid::SEC41::-->
-<P>
-
-An alternate interface is available to plain <CODE>readline()</CODE>. Some
-applications need to interleave keyboard I/O with file, device, or
-window system I/O, typically by using a main loop to <CODE>select()</CODE>
-on various file descriptors. To accomodate this need, readline can
-also be invoked as a `callback' function from an event loop. There
-are functions available to make this easy.
-</P><P>
-
-<A NAME="IDX288"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_callback_handler_install</B> <I>(const char *prompt, rl_vcpfunc_t *lhandler)</I>
-<DD>Set up the terminal for readline I/O and display the initial
-expanded value of <VAR>prompt</VAR>. Save the value of <VAR>lhandler</VAR> to
-use as a function to call when a complete line of input has been entered.
-The function takes the text of the line as an argument.
-</DL>
-</P><P>
-
-<A NAME="IDX289"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>(void)</I>
-<DD>Whenever an application determines that keyboard input is available, it
-should call <CODE>rl_callback_read_char()</CODE>, which will read the next
-character from the current input source.
-If that character completes the line, <CODE>rl_callback_read_char</CODE> will
-invoke the <VAR>lhandler</VAR> function saved by <CODE>rl_callback_handler_install</CODE>
-to process the line.
-Before calling the <VAR>lhandler</VAR> function, the terminal settings are
-reset to the values they had before calling
-<CODE>rl_callback_handler_install</CODE>.
-If the <VAR>lhandler</VAR> function returns,
-the terminal settings are modified for Readline's use again.
-<CODE>EOF</CODE> is indicated by calling <VAR>lhandler</VAR> with a
-<CODE>NULL</CODE> line.
-</DL>
-</P><P>
-
-<A NAME="IDX290"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_callback_handler_remove</B> <I>(void)</I>
-<DD>Restore the terminal to its initial state and remove the line handler.
-This may be called from within a callback as well as independently.
-If the <VAR>lhandler</VAR> installed by <CODE>rl_callback_handler_install</CODE>
-does not exit the program, either this function or the function referred
-to by the value of <CODE>rl_deprep_term_function</CODE> should be called before
-the program exits to reset the terminal settings.
-</DL>
-</P><P>
-
-<A NAME="A Readline Example"></A>
-<HR SIZE="6">
-<A NAME="SEC42"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC41"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.13 A Readline Example </H3>
-<!--docid::SEC42::-->
-<P>
-
-Here is a function which changes lowercase characters to their uppercase
-equivalents, and uppercase characters to lowercase. If
-this function was bound to <SAMP>`M-c'</SAMP>, then typing <SAMP>`M-c'</SAMP> would
-change the case of the character under point. Typing <SAMP>`M-1 0 M-c'</SAMP>
-would change the case of the following 10 characters, leaving the cursor on
-the last character changed.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>/* Invert the case of the COUNT following characters. */
-int
-invert_case_line (count, key)
- int count, key;
-{
- register int start, end, i;
-
- start = rl_point;
-
- if (rl_point &#62;= rl_end)
- return (0);
-
- if (count &#60; 0)
- {
- direction = -1;
- count = -count;
- }
- else
- direction = 1;
-
- /* Find the end of the range to modify. */
- end = start + (count * direction);
-
- /* Force it to be within range. */
- if (end &#62; rl_end)
- end = rl_end;
- else if (end &#60; 0)
- end = 0;
-
- if (start == end)
- return (0);
-
- if (start &#62; end)
- {
- int temp = start;
- start = end;
- end = temp;
- }
-
- /* Tell readline that we are modifying the line,
- so it will save the undo information. */
- rl_modifying (start, end);
-
- for (i = start; i != end; i++)
- {
- if (_rl_uppercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
- else if (_rl_lowercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
- }
- /* Move point to on top of the last character changed. */
- rl_point = (direction == 1) ? end - 1 : start;
- return (0);
-}
-</pre></td></tr></table></P><P>
-
-<A NAME="Readline Signal Handling"></A>
-<HR SIZE="6">
-<A NAME="SEC43"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC42"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.5 Readline Signal Handling </H2>
-<!--docid::SEC43::-->
-<P>
-
-Signals are asynchronous events sent to a process by the Unix kernel,
-sometimes on behalf of another process. They are intended to indicate
-exceptional events, like a user pressing the interrupt key on his terminal,
-or a network connection being broken. There is a class of signals that can
-be sent to the process currently reading input from the keyboard. Since
-Readline changes the terminal attributes when it is called, it needs to
-perform special processing when such a signal is received in order to
-restore the terminal to a sane state, or provide application writers with
-functions to do so manually.
-</P><P>
-
-Readline contains an internal signal handler that is installed for a
-number of signals (<CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, <CODE>SIGTERM</CODE>,
-<CODE>SIGALRM</CODE>, <CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>, and <CODE>SIGTTOU</CODE>).
-When one of these signals is received, the signal handler
-will reset the terminal attributes to those that were in effect before
-<CODE>readline()</CODE> was called, reset the signal handling to what it was
-before <CODE>readline()</CODE> was called, and resend the signal to the calling
-application.
-If and when the calling application's signal handler returns, Readline
-will reinitialize the terminal and continue to accept input.
-When a <CODE>SIGINT</CODE> is received, the Readline signal handler performs
-some additional work, which will cause any partially-entered line to be
-aborted (see the description of <CODE>rl_free_line_state()</CODE> below).
-</P><P>
-
-There is an additional Readline signal handler, for <CODE>SIGWINCH</CODE>, which
-the kernel sends to a process whenever the terminal's size changes (for
-example, if a user resizes an <CODE>xterm</CODE>). The Readline <CODE>SIGWINCH</CODE>
-handler updates Readline's internal screen size information, and then calls
-any <CODE>SIGWINCH</CODE> signal handler the calling application has installed.
-Readline calls the application's <CODE>SIGWINCH</CODE> signal handler without
-resetting the terminal to its original state. If the application's signal
-handler does more than update its idea of the terminal size and return (for
-example, a <CODE>longjmp</CODE> back to a main processing loop), it <EM>must</EM>
-call <CODE>rl_cleanup_after_signal()</CODE> (described below), to restore the
-terminal state.
-</P><P>
-
-Readline provides two variables that allow application writers to
-control whether or not it will catch certain signals and act on them
-when they are received. It is important that applications change the
-values of these variables only when calling <CODE>readline()</CODE>, not in
-a signal handler, so Readline's internal signal state is not corrupted.
-</P><P>
-
-<A NAME="IDX291"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_catch_signals</B>
-<DD>If this variable is non-zero, Readline will install signal handlers for
-<CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, <CODE>SIGTERM</CODE>, <CODE>SIGALRM</CODE>,
-<CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>, and <CODE>SIGTTOU</CODE>.
-</P><P>
-
-The default value of <CODE>rl_catch_signals</CODE> is 1.
-</DL>
-</P><P>
-
-<A NAME="IDX292"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
-<DD>If this variable is non-zero, Readline will install a signal handler for
-<CODE>SIGWINCH</CODE>.
-</P><P>
-
-The default value of <CODE>rl_catch_sigwinch</CODE> is 1.
-</DL>
-</P><P>
-
-If an application does not wish to have Readline catch any signals, or
-to handle signals other than those Readline catches (<CODE>SIGHUP</CODE>,
-for example),
-Readline provides convenience functions to do the necessary terminal
-and internal state cleanup upon receipt of a signal.
-</P><P>
-
-<A NAME="IDX293"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_cleanup_after_signal</B> <I>(void)</I>
-<DD>This function will reset the state of the terminal to what it was before
-<CODE>readline()</CODE> was called, and remove the Readline signal handlers for
-all signals, depending on the values of <CODE>rl_catch_signals</CODE> and
-<CODE>rl_catch_sigwinch</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX294"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_free_line_state</B> <I>(void)</I>
-<DD>This will free any partial state associated with the current input line
-(undo information, any partial history entry, any partially-entered
-keyboard macro, and any partially-entered numeric argument). This
-should be called before <CODE>rl_cleanup_after_signal()</CODE>. The
-Readline signal handler for <CODE>SIGINT</CODE> calls this to abort the
-current input line.
-</DL>
-</P><P>
-
-<A NAME="IDX295"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_reset_after_signal</B> <I>(void)</I>
-<DD>This will reinitialize the terminal and reinstall any Readline signal
-handlers, depending on the values of <CODE>rl_catch_signals</CODE> and
-<CODE>rl_catch_sigwinch</CODE>.
-</DL>
-</P><P>
-
-If an application does not wish Readline to catch <CODE>SIGWINCH</CODE>, it may
-call <CODE>rl_resize_terminal()</CODE> or <CODE>rl_set_screen_size()</CODE> to force
-Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
-is received.
-</P><P>
-
-<A NAME="IDX296"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_resize_terminal</B> <I>(void)</I>
-<DD>Update Readline's internal screen size by reading values from the kernel.
-</DL>
-</P><P>
-
-<A NAME="IDX297"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_set_screen_size</B> <I>(int rows, int cols)</I>
-<DD>Set Readline's idea of the terminal size to <VAR>rows</VAR> rows and
-<VAR>cols</VAR> columns.
-</DL>
-</P><P>
-
-If an application does not want to install a <CODE>SIGWINCH</CODE> handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
-</P><P>
-
-<A NAME="IDX298"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_get_screen_size</B> <I>(int *rows, int *cols)</I>
-<DD>Return Readline's idea of the terminal's size in the
-variables pointed to by the arguments.
-</DL>
-</P><P>
-
-The following functions install and remove Readline's signal handlers.
-</P><P>
-
-<A NAME="IDX299"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_signals</B> <I>(void)</I>
-<DD>Install Readline's signal handler for <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>,
-<CODE>SIGTERM</CODE>, <CODE>SIGALRM</CODE>, <CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>,
-<CODE>SIGTTOU</CODE>, and <CODE>SIGWINCH</CODE>, depending on the values of
-<CODE>rl_catch_signals</CODE> and <CODE>rl_catch_sigwinch</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX300"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_clear_signals</B> <I>(void)</I>
-<DD>Remove all of the Readline signal handlers installed by
-<CODE>rl_set_signals()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="Custom Completers"></A>
-<HR SIZE="6">
-<A NAME="SEC44"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC45"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.6 Custom Completers </H2>
-<!--docid::SEC44::-->
-<P>
-
-Typically, a program that reads commands from the user has a way of
-disambiguating commands and data. If your program is one of these, then
-it can provide completion for commands, data, or both.
-The following sections describe how your program and Readline
-cooperate to provide this service.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The logic used to do completion.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions provided by Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Variables which control completion.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC48">2.6.4 A Short Completion Example</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example of writing completer subroutines.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="How Completing Works"></A>
-<HR SIZE="6">
-<A NAME="SEC45"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC46"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.6.1 How Completing Works </H3>
-<!--docid::SEC45::-->
-<P>
-
-In order to complete some text, the full list of possible completions
-must be available. That is, it is not possible to accurately
-expand a partial word without knowing all of the possible words
-which make sense in that context. The Readline library provides
-the user interface to completion, and two of the most common
-completion functions: filename and username. For completing other types
-of text, you must write your own completion function. This section
-describes exactly what such functions must do, and provides an example.
-</P><P>
-
-There are three major functions used to perform completion:
-</P><P>
-
-<OL>
-<LI>
-The user-interface function <CODE>rl_complete()</CODE>. This function is
-called with the same arguments as other bindable Readline functions:
-<VAR>count</VAR> and <VAR>invoking_key</VAR>.
-It isolates the word to be completed and calls
-<CODE>rl_completion_matches()</CODE> to generate a list of possible completions.
-It then either lists the possible completions, inserts the possible
-completions, or actually performs the
-completion, depending on which behavior is desired.
-<P>
-
-<LI>
-The internal function <CODE>rl_completion_matches()</CODE> uses an
-application-supplied <EM>generator</EM> function to generate the list of
-possible matches, and then returns the array of these matches.
-The caller should place the address of its generator function in
-<CODE>rl_completion_entry_function</CODE>.
-<P>
-
-<LI>
-The generator function is called repeatedly from
-<CODE>rl_completion_matches()</CODE>, returning a string each time. The
-arguments to the generator function are <VAR>text</VAR> and <VAR>state</VAR>.
-<VAR>text</VAR> is the partial word to be completed. <VAR>state</VAR> is zero the
-first time the function is called, allowing the generator to perform
-any necessary initialization, and a positive non-zero integer for
-each subsequent call. The generator function returns
-<CODE>(char *)NULL</CODE> to inform <CODE>rl_completion_matches()</CODE> that there are
-no more possibilities left. Usually the generator function computes the
-list of possible completions when <VAR>state</VAR> is zero, and returns them
-one at a time on subsequent calls. Each string the generator function
-returns as a match must be allocated with <CODE>malloc()</CODE>; Readline
-frees the strings when it has finished with them.
-<P>
-
-</OL>
-<P>
-
-<A NAME="IDX301"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
-<DD>Complete the word at or before point. You have supplied the function
-that does the initial simple matching selection algorithm (see
-<CODE>rl_completion_matches()</CODE>). The default is to do filename completion.
-</DL>
-</P><P>
-
-<A NAME="IDX302"></A>
-<DL>
-<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
-<DD>This is a pointer to the generator function for
-<CODE>rl_completion_matches()</CODE>.
-If the value of <CODE>rl_completion_entry_function</CODE> is
-<CODE>NULL</CODE> then the default filename generator
-function, <CODE>rl_filename_completion_function()</CODE>, is used.
-</DL>
-</P><P>
-
-<A NAME="Completion Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC46"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC45"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC47"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC47"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.6.2 Completion Functions </H3>
-<!--docid::SEC46::-->
-<P>
-
-Here is the complete list of callable completion functions present in
-Readline.
-</P><P>
-
-<A NAME="IDX303"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_complete_internal</B> <I>(int what_to_do)</I>
-<DD>Complete the word at or before point. <VAR>what_to_do</VAR> says what to do
-with the completion. A value of <SAMP>`?'</SAMP> means list the possible
-completions. <SAMP>`TAB'</SAMP> means do standard completion. <SAMP>`*'</SAMP> means
-insert all of the possible completions. <SAMP>`!'</SAMP> means to display
-all of the possible completions, if there is more than one, as well as
-performing partial completion.
-</DL>
-</P><P>
-
-<A NAME="IDX304"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
-<DD>Complete the word at or before point. You have supplied the function
-that does the initial simple matching selection algorithm (see
-<CODE>rl_completion_matches()</CODE> and <CODE>rl_completion_entry_function</CODE>).
-The default is to do filename
-completion. This calls <CODE>rl_complete_internal()</CODE> with an
-argument depending on <VAR>invoking_key</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX305"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_possible_completions</B> <I>(int count, int invoking_key)</I>
-<DD>List the possible completions. See description of <CODE>rl_complete
-()</CODE>. This calls <CODE>rl_complete_internal()</CODE> with an argument of
-<SAMP>`?'</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX306"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_insert_completions</B> <I>(int count, int invoking_key)</I>
-<DD>Insert the list of possible completions into the line, deleting the
-partially-completed word. See description of <CODE>rl_complete()</CODE>.
-This calls <CODE>rl_complete_internal()</CODE> with an argument of <SAMP>`*'</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX307"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_completion_mode</B> <I>(rl_command_func_t *cfunc)</I>
-<DD>Returns the apppriate value to pass to <CODE>rl_complete_internal()</CODE>
-depending on whether <VAR>cfunc</VAR> was called twice in succession and
-the value of the <CODE>show-all-if-ambiguous</CODE> variable.
-Application-specific completion functions may use this function to present
-the same interface as <CODE>rl_complete()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX308"></A>
-<DL>
-<DT><U>Function:</U> char ** <B>rl_completion_matches</B> <I>(const char *text, rl_compentry_func_t *entry_func)</I>
-<DD>Returns an array of strings which is a list of completions for
-<VAR>text</VAR>. If there are no completions, returns <CODE>NULL</CODE>.
-The first entry in the returned array is the substitution for <VAR>text</VAR>.
-The remaining entries are the possible completions. The array is
-terminated with a <CODE>NULL</CODE> pointer.
-</P><P>
-
-<VAR>entry_func</VAR> is a function of two args, and returns a
-<CODE>char *</CODE>. The first argument is <VAR>text</VAR>. The second is a
-state argument; it is zero on the first call, and non-zero on subsequent
-calls. <VAR>entry_func</VAR> returns a <CODE>NULL</CODE> pointer to the caller
-when there are no more matches.
-</DL>
-</P><P>
-
-<A NAME="IDX309"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_filename_completion_function</B> <I>(const char *text, int state)</I>
-<DD>A generator function for filename completion in the general case.
-<VAR>text</VAR> is a partial filename.
-The Bash source is a useful reference for writing custom
-completion functions (the Bash completion functions call this and other
-Readline functions).
-</DL>
-</P><P>
-
-<A NAME="IDX310"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_username_completion_function</B> <I>(const char *text, int state)</I>
-<DD>A completion generator for usernames. <VAR>text</VAR> contains a partial
-username preceded by a random character (usually <SAMP>`~'</SAMP>). As with all
-completion generators, <VAR>state</VAR> is zero on the first call and non-zero
-for subsequent calls.
-</DL>
-</P><P>
-
-<A NAME="Completion Variables"></A>
-<HR SIZE="6">
-<A NAME="SEC47"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC46"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.6.3 Completion Variables </H3>
-<!--docid::SEC47::-->
-<P>
-
-<A NAME="IDX311"></A>
-<DL>
-<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
-<DD>A pointer to the generator function for <CODE>rl_completion_matches()</CODE>.
-<CODE>NULL</CODE> means to use <CODE>rl_filename_completion_function()</CODE>, the default
-filename completer.
-</DL>
-</P><P>
-
-<A NAME="IDX312"></A>
-<DL>
-<DT><U>Variable:</U> rl_completion_func_t * <B>rl_attempted_completion_function</B>
-<DD>A pointer to an alternative function to create matches.
-The function is called with <VAR>text</VAR>, <VAR>start</VAR>, and <VAR>end</VAR>.
-<VAR>start</VAR> and <VAR>end</VAR> are indices in <CODE>rl_line_buffer</CODE> defining
-the boundaries of <VAR>text</VAR>, which is a character string.
-If this function exists and returns <CODE>NULL</CODE>, or if this variable is
-set to <CODE>NULL</CODE>, then <CODE>rl_complete()</CODE> will call the value of
-<CODE>rl_completion_entry_function</CODE> to generate matches, otherwise the
-array of strings returned will be used.
-If this function sets the <CODE>rl_attempted_completion_over</CODE>
-variable to a non-zero value, Readline will not perform its default
-completion even if this function returns no matches.
-</DL>
-</P><P>
-
-<A NAME="IDX313"></A>
-<DL>
-<DT><U>Variable:</U> rl_quote_func_t * <B>rl_filename_quoting_function</B>
-<DD>A pointer to a function that will quote a filename in an
-application-specific fashion. This is called if filename completion is being
-attempted and one of the characters in <CODE>rl_filename_quote_characters</CODE>
-appears in a completed filename. The function is called with
-<VAR>text</VAR>, <VAR>match_type</VAR>, and <VAR>quote_pointer</VAR>. The <VAR>text</VAR>
-is the filename to be quoted. The <VAR>match_type</VAR> is either
-<CODE>SINGLE_MATCH</CODE>, if there is only one completion match, or
-<CODE>MULT_MATCH</CODE>. Some functions use this to decide whether or not to
-insert a closing quote character. The <VAR>quote_pointer</VAR> is a pointer
-to any opening quote character the user typed. Some functions choose
-to reset this character.
-</DL>
-</P><P>
-
-<A NAME="IDX314"></A>
-<DL>
-<DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_dequoting_function</B>
-<DD>A pointer to a function that will remove application-specific quoting
-characters from a filename before completion is attempted, so those
-characters do not interfere with matching the text against names in
-the filesystem. It is called with <VAR>text</VAR>, the text of the word
-to be dequoted, and <VAR>quote_char</VAR>, which is the quoting character
-that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>). If
-<VAR>quote_char</VAR> is zero, the filename was not in an embedded string.
-</DL>
-</P><P>
-
-<A NAME="IDX315"></A>
-<DL>
-<DT><U>Variable:</U> rl_linebuf_func_t * <B>rl_char_is_quoted_p</B>
-<DD>A pointer to a function to call that determines whether or not a specific
-character in the line buffer is quoted, according to whatever quoting
-mechanism the program calling Readline uses. The function is called with
-two arguments: <VAR>text</VAR>, the text of the line, and <VAR>index</VAR>, the
-index of the character in the line. It is used to decide whether a
-character found in <CODE>rl_completer_word_break_characters</CODE> should be
-used to break words for the completer.
-</DL>
-</P><P>
-
-<A NAME="IDX316"></A>
-<DL>
-<DT><U>Variable:</U> rl_compignore_func_t * <B>rl_ignore_some_completions_function</B>
-<DD>This function, if defined, is called by the completer when real filename
-completion is done, after all the matching names have been generated.
-It is passed a <CODE>NULL</CODE> terminated array of matches.
-The first element (<CODE>matches[0]</CODE>) is the
-maximal substring common to all matches. This function can
-re-arrange the list of matches as required, but each element deleted
-from the array must be freed.
-</DL>
-</P><P>
-
-<A NAME="IDX317"></A>
-<DL>
-<DT><U>Variable:</U> rl_icppfunc_t * <B>rl_directory_completion_hook</B>
-<DD>This function, if defined, is allowed to modify the directory portion
-of filenames Readline completes. It is called with the address of a
-string (the current directory name) as an argument, and may modify that string.
-If the string is replaced with a new string, the old value should be freed.
-Any modified directory name should have a trailing slash.
-The modified value will be displayed as part of the completion, replacing
-the directory portion of the pathname the user typed.
-It returns an integer that should be non-zero if the function modifies
-its directory argument.
-It could be used to expand symbolic links or shell variables in pathnames.
-</DL>
-</P><P>
-
-<A NAME="IDX318"></A>
-<DL>
-<DT><U>Variable:</U> rl_compdisp_func_t * <B>rl_completion_display_matches_hook</B>
-<DD>If non-zero, then this is the address of a function to call when
-completing a word would normally display the list of possible matches.
-This function is called in lieu of Readline displaying the list.
-It takes three arguments:
-(<CODE>char **</CODE><VAR>matches</VAR>, <CODE>int</CODE> <VAR>num_matches</VAR>, <CODE>int</CODE> <VAR>max_length</VAR>)
-where <VAR>matches</VAR> is the array of matching strings,
-<VAR>num_matches</VAR> is the number of strings in that array, and
-<VAR>max_length</VAR> is the length of the longest string in that array.
-Readline provides a convenience function, <CODE>rl_display_match_list</CODE>,
-that takes care of doing the display to Readline's output stream. That
-function may be called from this hook.
-</DL>
-</P><P>
-
-<A NAME="IDX319"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_basic_word_break_characters</B>
-<DD>The basic list of characters that signal a break between words for the
-completer routine. The default value of this variable is the characters
-which break words for completion in Bash:
-<CODE>" \t\n\"\\'`@$>&#60;=;|&#38;{("</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX320"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_basic_quote_characters</B>
-<DD>A list of quote characters which can cause a word break.
-</DL>
-</P><P>
-
-<A NAME="IDX321"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_completer_word_break_characters</B>
-<DD>The list of characters that signal a break between words for
-<CODE>rl_complete_internal()</CODE>. The default list is the value of
-<CODE>rl_basic_word_break_characters</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX322"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_completer_quote_characters</B>
-<DD>A list of characters which can be used to quote a substring of the line.
-Completion occurs on the entire substring, and within the substring
-<CODE>rl_completer_word_break_characters</CODE> are treated as any other character,
-unless they also appear within this list.
-</DL>
-</P><P>
-
-<A NAME="IDX323"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_filename_quote_characters</B>
-<DD>A list of characters that cause a filename to be quoted by the completer
-when they appear in a completed filename. The default is the null string.
-</DL>
-</P><P>
-
-<A NAME="IDX324"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_special_prefixes</B>
-<DD>The list of characters that are word break characters, but should be
-left in <VAR>text</VAR> when it is passed to the completion function.
-Programs can use this to help determine what kind of completing to do.
-For instance, Bash sets this variable to "$@" so that it can complete
-shell variables and hostnames.
-</DL>
-</P><P>
-
-<A NAME="IDX325"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_query_items</B>
-<DD>Up to this many items will be displayed in response to a
-possible-completions call. After that, we ask the user if she is sure
-she wants to see them all. The default value is 100.
-</DL>
-</P><P>
-
-<A NAME="IDX326"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_append_character</B>
-<DD>When a single completion alternative matches at the end of the command
-line, this character is appended to the inserted completion text. The
-default is a space character (<SAMP>` '</SAMP>). Setting this to the null
-character (<SAMP>`\0'</SAMP>) prevents anything being appended automatically.
-This can be changed in custom completion functions to
-provide the "most sensible word separator character" according to
-an application-specific command line syntax specification.
-</DL>
-</P><P>
-
-<A NAME="IDX327"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_suppress_append</B>
-<DD>If non-zero, <VAR>rl_completion_append_character</VAR> is not appended to
-matches at the end of the command line, as described above. It is
-set to 0 before any application-specific completion function is called.
-</DL>
-</P><P>
-
-<A NAME="IDX328"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_mark_symlink_dirs</B>
-<DD>If non-zero, a slash will be appended to completed filenames that are
-symbolic links to directory names, subject to the value of the
-user-settable <VAR>mark-directories</VAR> variable.
-This variable exists so that application completion functions can
-override the user's global preference (set via the
-<VAR>mark-symlinked-directories</VAR> Readline variable) if appropriate.
-This variable is set to the user's preference before any
-application completion function is called, so unless that function
-modifies the value, the user's preferences are honored.
-</DL>
-</P><P>
-
-<A NAME="IDX329"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
-<DD>If non-zero, then duplicates in the matches are removed.
-The default is 1.
-</DL>
-</P><P>
-
-<A NAME="IDX330"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_filename_completion_desired</B>
-<DD>Non-zero means that the results of the matches are to be treated as
-filenames. This is <EM>always</EM> zero on entry, and can only be changed
-within a completion entry generator function. If it is set to a non-zero
-value, directory names have a slash appended and Readline attempts to
-quote completed filenames if they contain any characters in
-<CODE>rl_filename_quote_characters</CODE> and <CODE>rl_filename_quoting_desired</CODE>
-is set to a non-zero value.
-</DL>
-</P><P>
-
-<A NAME="IDX331"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B>
-<DD>Non-zero means that the results of the matches are to be quoted using
-double quotes (or an application-specific quoting mechanism) if the
-completed filename contains any characters in
-<CODE>rl_filename_quote_chars</CODE>. This is <EM>always</EM> non-zero
-on entry, and can only be changed within a completion entry generator
-function. The quoting is effected via a call to the function pointed to
-by <CODE>rl_filename_quoting_function</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX332"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
-<DD>If an application-specific completion function assigned to
-<CODE>rl_attempted_completion_function</CODE> sets this variable to a non-zero
-value, Readline will not perform its default filename completion even
-if the application's completion function returns no matches.
-It should be set only by an application's completion function.
-</DL>
-</P><P>
-
-<A NAME="IDX333"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_type</B>
-<DD>Set to a character describing the type of completion Readline is currently
-attempting; see the description of <CODE>rl_complete_internal()</CODE>
-(see section <A HREF="readline.html#SEC46">2.6.2 Completion Functions</A>) for the list of characters.
-</DL>
-</P><P>
-
-<A NAME="IDX334"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
-<DD>If this variable is non-zero, completion is inhibited. The completion
-character will be inserted as any other bound to <CODE>self-insert</CODE>.
-</DL>
-</P><P>
-
-<A NAME="A Short Completion Example"></A>
-<HR SIZE="6">
-<A NAME="SEC48"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC47"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.6.4 A Short Completion Example </H3>
-<!--docid::SEC48::-->
-<P>
-
-Here is a small application demonstrating the use of the GNU Readline
-library. It is called <CODE>fileman</CODE>, and the source code resides in
-<TT>`examples/fileman.c'</TT>. This sample application provides
-completion of command names, line editing features, and access to the
-history list.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre>/* fileman.c -- A tiny application which demonstrates how to use the
- GNU Readline library. This application interactively allows users
- to manipulate files and their modes. */
-
-#include &#60;stdio.h&#62;
-#include &#60;sys/types.h&#62;
-#include &#60;sys/file.h&#62;
-#include &#60;sys/stat.h&#62;
-#include &#60;sys/errno.h&#62;
-
-#include &#60;readline/readline.h&#62;
-#include &#60;readline/history.h&#62;
-
-extern char *xmalloc ();
-
-/* The names of functions that actually do the manipulation. */
-int com_list __P((char *));
-int com_view __P((char *));
-int com_rename __P((char *));
-int com_stat __P((char *));
-int com_pwd __P((char *));
-int com_delete __P((char *));
-int com_help __P((char *));
-int com_cd __P((char *));
-int com_quit __P((char *));
-
-/* A structure which contains information on the commands this program
- can understand. */
-
-typedef struct {
- char *name; /* User printable name of the function. */
- rl_icpfunc_t *func; /* Function to call to do the job. */
- char *doc; /* Documentation for this function. */
-} COMMAND;
-
-COMMAND commands[] = {
- { "cd", com_cd, "Change to directory DIR" },
- { "delete", com_delete, "Delete FILE" },
- { "help", com_help, "Display this text" },
- { "?", com_help, "Synonym for `help'" },
- { "list", com_list, "List files in DIR" },
- { "ls", com_list, "Synonym for `list'" },
- { "pwd", com_pwd, "Print the current working directory" },
- { "quit", com_quit, "Quit using Fileman" },
- { "rename", com_rename, "Rename FILE to NEWNAME" },
- { "stat", com_stat, "Print out statistics on FILE" },
- { "view", com_view, "View the contents of FILE" },
- { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
-};
-
-/* Forward declarations. */
-char *stripwhite ();
-COMMAND *find_command ();
-
-/* The name of this program, as taken from argv[0]. */
-char *progname;
-
-/* When non-zero, this means the user is done using this program. */
-int done;
-
-char *
-dupstr (s)
- int s;
-{
- char *r;
-
- r = xmalloc (strlen (s) + 1);
- strcpy (r, s);
- return (r);
-}
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *line, *s;
-
- progname = argv[0];
-
- initialize_readline (); /* Bind our completer. */
-
- /* Loop reading and executing lines until the user quits. */
- for ( ; done == 0; )
- {
- line = readline ("FileMan: ");
-
- if (!line)
- break;
-
- /* Remove leading and trailing whitespace from the line.
- Then, if there is anything left, add it to the history list
- and execute it. */
- s = stripwhite (line);
-
- if (*s)
- {
- add_history (s);
- execute_line (s);
- }
-
- free (line);
- }
- exit (0);
-}
-
-/* Execute a command line. */
-int
-execute_line (line)
- char *line;
-{
- register int i;
- COMMAND *command;
- char *word;
-
- /* Isolate the command word. */
- i = 0;
- while (line[i] &#38;&#38; whitespace (line[i]))
- i++;
- word = line + i;
-
- while (line[i] &#38;&#38; !whitespace (line[i]))
- i++;
-
- if (line[i])
- line[i++] = '\0';
-
- command = find_command (word);
-
- if (!command)
- {
- fprintf (stderr, "%s: No such command for FileMan.\n", word);
- return (-1);
- }
-
- /* Get argument to command, if any. */
- while (whitespace (line[i]))
- i++;
-
- word = line + i;
-
- /* Call the function. */
- return ((*(command-&#62;func)) (word));
-}
-
-/* Look up NAME as the name of a command, and return a pointer to that
- command. Return a NULL pointer if NAME isn't a command name. */
-COMMAND *
-find_command (name)
- char *name;
-{
- register int i;
-
- for (i = 0; commands[i].name; i++)
- if (strcmp (name, commands[i].name) == 0)
- return (&#38;commands[i]);
-
- return ((COMMAND *)NULL);
-}
-
-/* Strip whitespace from the start and end of STRING. Return a pointer
- into STRING. */
-char *
-stripwhite (string)
- char *string;
-{
- register char *s, *t;
-
- for (s = string; whitespace (*s); s++)
- ;
-
- if (*s == 0)
- return (s);
-
- t = s + strlen (s) - 1;
- while (t &#62; s &#38;&#38; whitespace (*t))
- t--;
- *++t = '\0';
-
- return s;
-}
-
-/* **************************************************************** */
-/* */
-/* Interface to Readline Completion */
-/* */
-/* **************************************************************** */
-
-char *command_generator __P((const char *, int));
-char **fileman_completion __P((const char *, int, int));
-
-/* Tell the GNU Readline library how to complete. We want to try to
- complete on command names if this is the first word in the line, or
- on filenames if not. */
-initialize_readline ()
-{
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "FileMan";
-
- /* Tell the completer that we want a crack first. */
- rl_attempted_completion_function = fileman_completion;
-}
-
-/* Attempt to complete on the contents of TEXT. START and END
- bound the region of rl_line_buffer that contains the word to
- complete. TEXT is the word to complete. We can use the entire
- contents of rl_line_buffer in case we want to do some simple
- parsing. Returnthe array of matches, or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
- const char *text;
- int start, end;
-{
- char **matches;
-
- matches = (char **)NULL;
-
- /* If this word is at the start of the line, then it is a command
- to complete. Otherwise it is the name of a file in the current
- directory. */
- if (start == 0)
- matches = rl_completion_matches (text, command_generator);
-
- return (matches);
-}
-
-/* Generator function for command completion. STATE lets us
- know whether to start from scratch; without any state
- (i.e. STATE == 0), then we start at the top of the list. */
-char *
-command_generator (text, state)
- const char *text;
- int state;
-{
- static int list_index, len;
- char *name;
-
- /* If this is a new word to complete, initialize now. This
- includes saving the length of TEXT for efficiency, and
- initializing the index variable to 0. */
- if (!state)
- {
- list_index = 0;
- len = strlen (text);
- }
-
- /* Return the next name which partially matches from the
- command list. */
- while (name = commands[list_index].name)
- {
- list_index++;
-
- if (strncmp (name, text, len) == 0)
- return (dupstr(name));
- }
-
- /* If no names matched, then return NULL. */
- return ((char *)NULL);
-}
-
-/* **************************************************************** */
-/* */
-/* FileMan Commands */
-/* */
-/* **************************************************************** */
-
-/* String to pass to system (). This is for the LIST, VIEW and RENAME
- commands. */
-static char syscom[1024];
-
-/* List the file(s) named in arg. */
-com_list (arg)
- char *arg;
-{
- if (!arg)
- arg = "";
-
- sprintf (syscom, "ls -FClg %s", arg);
- return (system (syscom));
-}
-
-com_view (arg)
- char *arg;
-{
- if (!valid_argument ("view", arg))
- return 1;
-
- sprintf (syscom, "more %s", arg);
- return (system (syscom));
-}
-
-com_rename (arg)
- char *arg;
-{
- too_dangerous ("rename");
- return (1);
-}
-
-com_stat (arg)
- char *arg;
-{
- struct stat finfo;
-
- if (!valid_argument ("stat", arg))
- return (1);
-
- if (stat (arg, &#38;finfo) == -1)
- {
- perror (arg);
- return (1);
- }
-
- printf ("Statistics for `%s':\n", arg);
-
- printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
- finfo.st_nlink,
- (finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
- (finfo.st_size == 1) ? "" : "s");
- printf ("Inode Last Change at: %s", ctime (&#38;finfo.st_ctime));
- printf (" Last access at: %s", ctime (&#38;finfo.st_atime));
- printf (" Last modified at: %s", ctime (&#38;finfo.st_mtime));
- return (0);
-}
-
-com_delete (arg)
- char *arg;
-{
- too_dangerous ("delete");
- return (1);
-}
-
-/* Print out help for ARG, or for all of the commands if ARG is
- not present. */
-com_help (arg)
- char *arg;
-{
- register int i;
- int printed = 0;
-
- for (i = 0; commands[i].name; i++)
- {
- if (!*arg || (strcmp (arg, commands[i].name) == 0))
- {
- printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
- printed++;
- }
- }
-
- if (!printed)
- {
- printf ("No commands match `%s'. Possibilties are:\n", arg);
-
- for (i = 0; commands[i].name; i++)
- {
- /* Print in six columns. */
- if (printed == 6)
- {
- printed = 0;
- printf ("\n");
- }
-
- printf ("%s\t", commands[i].name);
- printed++;
- }
-
- if (printed)
- printf ("\n");
- }
- return (0);
-}
-
-/* Change to the directory ARG. */
-com_cd (arg)
- char *arg;
-{
- if (chdir (arg) == -1)
- {
- perror (arg);
- return 1;
- }
-
- com_pwd ("");
- return (0);
-}
-
-/* Print out the current working directory. */
-com_pwd (ignore)
- char *ignore;
-{
- char dir[1024], *s;
-
- s = getcwd (dir, sizeof(dir) - 1);
- if (s == 0)
- {
- printf ("Error getting pwd: %s\n", dir);
- return 1;
- }
-
- printf ("Current directory is %s\n", dir);
- return 0;
-}
-
-/* The user wishes to quit using this program. Just set DONE
- non-zero. */
-com_quit (arg)
- char *arg;
-{
- done = 1;
- return (0);
-}
-
-/* Function which tells you that you can't do this. */
-too_dangerous (caller)
- char *caller;
-{
- fprintf (stderr,
- "%s: Too dangerous for me to distribute.\n"
- caller);
- fprintf (stderr, "Write it yourself.\n");
-}
-
-/* Return non-zero if ARG is a valid argument for CALLER,
- else print an error message and return zero. */
-int
-valid_argument (caller, arg)
- char *caller, *arg;
-{
- if (!arg || !*arg)
- {
- fprintf (stderr, "%s: Argument required.\n", caller);
- return (0);
- }
-
- return (1);
-}
-</FONT></pre></td></tr></table></P><P>
-
-<A NAME="Concept Index"></A>
-<HR SIZE="6">
-<A NAME="SEC49"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC50"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> Concept Index </H1>
-<!--docid::SEC49::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#cp_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="readline.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="readline.html#cp_I" style="text-decoration:none"><b>I</b></A>
- &nbsp;
-<A HREF="readline.html#cp_K" style="text-decoration:none"><b>K</b></A>
- &nbsp;
-<A HREF="readline.html#cp_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="readline.html#cp_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="readline.html#cp_V" style="text-decoration:none"><b>V</b></A>
- &nbsp;
-<A HREF="readline.html#cp_Y" style="text-decoration:none"><b>Y</b></A>
- &nbsp;
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">command editing</A></TD><TD valign=top><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">editing command lines</A></TD><TD valign=top><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_I"></A>I</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC9">initialization file, readline</A></TD><TD valign=top><A HREF="readline.html#SEC9">1.3 Readline Init File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC3">interaction, readline</A></TD><TD valign=top><A HREF="readline.html#SEC3">1.2 Readline Interaction</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX3">kill ring</A></TD><TD valign=top><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX1">killing text</A></TD><TD valign=top><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">notation, readline</A></TD><TD valign=top><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX175">readline, function</A></TD><TD valign=top><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_V"></A>V</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX4">variables, readline</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX2">yanking text</A></TD><TD valign=top><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#cp_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="readline.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="readline.html#cp_I" style="text-decoration:none"><b>I</b></A>
- &nbsp;
-<A HREF="readline.html#cp_K" style="text-decoration:none"><b>K</b></A>
- &nbsp;
-<A HREF="readline.html#cp_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="readline.html#cp_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="readline.html#cp_V" style="text-decoration:none"><b>V</b></A>
- &nbsp;
-<A HREF="readline.html#cp_Y" style="text-decoration:none"><b>Y</b></A>
- &nbsp;
-</td></tr></table><br><P>
-
-<A NAME="Function and Variable Index"></A>
-<HR SIZE="6">
-<A NAME="SEC50"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> Function and Variable Index </H1>
-<!--docid::SEC50::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#fn__" style="text-decoration:none"><b>_</b></A>
- &nbsp;
-<BR>
-<A HREF="readline.html#fn_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="readline.html#fn_B" style="text-decoration:none"><b>B</b></A>
- &nbsp;
-<A HREF="readline.html#fn_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="readline.html#fn_D" style="text-decoration:none"><b>D</b></A>
- &nbsp;
-<A HREF="readline.html#fn_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="readline.html#fn_F" style="text-decoration:none"><b>F</b></A>
- &nbsp;
-<A HREF="readline.html#fn_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-<A HREF="readline.html#fn_I" style="text-decoration:none"><b>I</b></A>
- &nbsp;
-<A HREF="readline.html#fn_K" style="text-decoration:none"><b>K</b></A>
- &nbsp;
-<A HREF="readline.html#fn_M" style="text-decoration:none"><b>M</b></A>
- &nbsp;
-<A HREF="readline.html#fn_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="readline.html#fn_O" style="text-decoration:none"><b>O</b></A>
- &nbsp;
-<A HREF="readline.html#fn_P" style="text-decoration:none"><b>P</b></A>
- &nbsp;
-<A HREF="readline.html#fn_Q" style="text-decoration:none"><b>Q</b></A>
- &nbsp;
-<A HREF="readline.html#fn_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="readline.html#fn_S" style="text-decoration:none"><b>S</b></A>
- &nbsp;
-<A HREF="readline.html#fn_T" style="text-decoration:none"><b>T</b></A>
- &nbsp;
-<A HREF="readline.html#fn_U" style="text-decoration:none"><b>U</b></A>
- &nbsp;
-<A HREF="readline.html#fn_V" style="text-decoration:none"><b>V</b></A>
- &nbsp;
-<A HREF="readline.html#fn_Y" style="text-decoration:none"><b>Y</b></A>
- &nbsp;
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn__"></A>_</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX278"><CODE>_rl_digit_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX281"><CODE>_rl_digit_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX277"><CODE>_rl_lowercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX280"><CODE>_rl_to_lower</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX279"><CODE>_rl_to_upper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX276"><CODE>_rl_uppercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX142"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX143"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX42"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX43"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_B"></A>B</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX32"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX33"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX70"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX71"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX94"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX95"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX102"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX103"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX36"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX37"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX48"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX49"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX26"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX27"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX5">bell-style</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX138"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX139"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX88"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX89"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX158"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX159"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX160"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX161"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX38"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX39"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX6">comment-begin</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX124"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX125"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX7">completion-query-items</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX8">convert-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX112"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX113"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX114"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX115"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX110"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX111"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX68"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX69"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX132"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX133"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX106"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX107"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX120"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX121"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX9">disable-completion</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX144"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX145"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX86"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX87"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX164"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX165"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX168"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX169"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX166"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX167"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX10">editing-mode</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX170"><CODE>emacs-editing-mode (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX171"><CODE>emacs-editing-mode (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX11">enable-keypad</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX136"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX137"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX50"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX51"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX28"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX29"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX156"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX157"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX12">expand-tilde</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX72"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX73"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX30"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX31"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX54"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX55"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX34"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX35"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX13">history-preserve-point</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX62"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX63"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX60"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX61"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX14">horizontal-scroll-mode</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_I"></A>I</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX15">input-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX162"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX163"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX128"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX129"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX17">isearch-terminators</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX18">keymap</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX92"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX93"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX108"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX109"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX98"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX99"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX100"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX101"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_M"></A>M</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX19">mark-modified-lines</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX20">mark-symlinked-directories</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX21">match-hidden-files</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX130"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX131"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX16">meta-flag</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX46"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX47"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX58"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX59"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX56"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX57"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_O"></A>O</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX22">output-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX90"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX91"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX23">page-completions</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX126"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX127"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX146"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX147"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX44"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX45"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_Q"></A>Q</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX74"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX75"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX140"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX141"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX174"><CODE>readline</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX40"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX41"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX52"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX53"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX150"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX151"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX209"><CODE>rl_add_defun</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC30">2.4.1 Naming a Function</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX235"><CODE>rl_add_funmap_entry</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX238"><CODE>rl_add_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX274"><CODE>rl_alphabetic</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX186">rl_already_prompted</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX312">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX320">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX319">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX236"><CODE>rl_begin_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX218"><CODE>rl_bind_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX219"><CODE>rl_bind_key_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX203">rl_binding_keymap</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX288"><CODE>rl_callback_handler_install</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX290"><CODE>rl_callback_handler_remove</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX289"><CODE>rl_callback_read_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX291">rl_catch_signals</A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX315">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX250"><CODE>rl_clear_message</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX264"><CODE>rl_clear_pending_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX300"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326">rl_completion_append_character</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX328">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325">rl_completion_query_items</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX327">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333">rl_completion_type</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX211"><CODE>rl_copy_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX257"><CODE>rl_copy_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX247"><CODE>rl_crlf</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX256"><CODE>rl_delete_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX201">rl_deprep_term_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX267"><CODE>rl_deprep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX273"><CODE>rl_ding</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX317">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX213"><CODE>rl_discard_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX183">rl_dispatching</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX275"><CODE>rl_display_match_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX240"><CODE>rl_do_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX180">rl_done</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX208">rl_editing_mode</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX178">rl_end</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX237"><CODE>rl_end_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX184">rl_erase_empty_line</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX197">rl_event_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX263"><CODE>rl_execute_next</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX202">rl_executing_keymap</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX204">rl_executing_macro</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX253"><CODE>rl_expand_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX206">rl_explicit_arg</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX271"><CODE>rl_extend_line_buffer</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX330">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX309"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX243"><CODE>rl_forced_update_display</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX239"><CODE>rl_free_undo_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX232"><CODE>rl_function_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX229"><CODE>rl_function_of_keyseq</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX234"><CODE>rl_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX225"><CODE>rl_generic_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX214"><CODE>rl_get_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX216"><CODE>rl_get_keymap_by_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX217"><CODE>rl_get_keymap_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX298"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><CODE>rl_get_termcap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX261"><CODE>rl_getc</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX198">rl_getc_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX189">rl_gnu_readline_p</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX329">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX316">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334">rl_inhibit_completion</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX272"><CODE>rl_initialize</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX306"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX255"><CODE>rl_insert_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX192">rl_instream</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX230"><CODE>rl_invoking_keyseqs</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX231"><CODE>rl_invoking_keyseqs_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX258"><CODE>rl_kill_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX194">rl_last_func</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX187">rl_library_version</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX176">rl_line_buffer</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX233"><CODE>rl_list_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX282"><CODE>rl_macro_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX283"><CODE>rl_macro_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX210"><CODE>rl_make_bare_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX212"><CODE>rl_make_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX179">rl_mark</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX249"><CODE>rl_message</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX241"><CODE>rl_modifying</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX228"><CODE>rl_named_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX181">rl_num_chars_to_read</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX207">rl_numeric_arg</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX244"><CODE>rl_on_new_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX245"><CODE>rl_on_new_line_with_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX193">rl_outstream</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX226"><CODE>rl_parse_and_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX182">rl_pending_input</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX177">rl_point</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX305"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX196">rl_pre_input_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX200">rl_prep_term_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_prep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX185">rl_prompt</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX259"><CODE>rl_push_macro_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX227"><CODE>rl_read_init_file</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX260"><CODE>rl_read_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX191">rl_readline_name</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX205">rl_readline_state</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX188">rl_readline_version</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX242"><CODE>rl_redisplay</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX199">rl_redisplay_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX270"><CODE>rl_replace_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX295"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX246"><CODE>rl_reset_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX269"><CODE>rl_reset_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX296"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX252"><CODE>rl_restore_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX251"><CODE>rl_save_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX224"><CODE>rl_set_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX265"><CODE>rl_set_keyboard_input_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX215"><CODE>rl_set_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX286"><CODE>rl_set_paren_blink_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX254"><CODE>rl_set_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX297"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX299"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX248"><CODE>rl_show_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324">rl_special_prefixes</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX195">rl_startup_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX262"><CODE>rl_stuff_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX190">rl_terminal_name</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX268"><CODE>rl_tty_set_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX223"><CODE>rl_unbind_command_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX222"><CODE>rl_unbind_function_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX220"><CODE>rl_unbind_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX221"><CODE>rl_unbind_key_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX310"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><CODE>rl_variable_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX285"><CODE>rl_variable_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX78"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX79"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX154"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX155"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX24">show-all-if-ambiguous</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX134"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX135"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_T"></A>T</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX76"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX77"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX152"><CODE>tilde-expand (M-~)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX153"><CODE>tilde-expand (M-~)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX80"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX81"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX82"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX83"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX148"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX149"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX122"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX123"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX96"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX97"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX104"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX105"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX84"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX85"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_V"></A>V</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX172"><CODE>vi-editing-mode (M-C-j)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX173"><CODE>vi-editing-mode (M-C-j)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX25">visible-stats</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX116"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX117"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX66"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX67"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX64"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX65"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX118"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX119"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#fn__" style="text-decoration:none"><b>_</b></A>
- &nbsp;
-<BR>
-<A HREF="readline.html#fn_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="readline.html#fn_B" style="text-decoration:none"><b>B</b></A>
- &nbsp;
-<A HREF="readline.html#fn_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="readline.html#fn_D" style="text-decoration:none"><b>D</b></A>
- &nbsp;
-<A HREF="readline.html#fn_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="readline.html#fn_F" style="text-decoration:none"><b>F</b></A>
- &nbsp;
-<A HREF="readline.html#fn_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-<A HREF="readline.html#fn_I" style="text-decoration:none"><b>I</b></A>
- &nbsp;
-<A HREF="readline.html#fn_K" style="text-decoration:none"><b>K</b></A>
- &nbsp;
-<A HREF="readline.html#fn_M" style="text-decoration:none"><b>M</b></A>
- &nbsp;
-<A HREF="readline.html#fn_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="readline.html#fn_O" style="text-decoration:none"><b>O</b></A>
- &nbsp;
-<A HREF="readline.html#fn_P" style="text-decoration:none"><b>P</b></A>
- &nbsp;
-<A HREF="readline.html#fn_Q" style="text-decoration:none"><b>Q</b></A>
- &nbsp;
-<A HREF="readline.html#fn_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="readline.html#fn_S" style="text-decoration:none"><b>S</b></A>
- &nbsp;
-<A HREF="readline.html#fn_T" style="text-decoration:none"><b>T</b></A>
- &nbsp;
-<A HREF="readline.html#fn_U" style="text-decoration:none"><b>U</b></A>
- &nbsp;
-<A HREF="readline.html#fn_V" style="text-decoration:none"><b>V</b></A>
- &nbsp;
-<A HREF="readline.html#fn_Y" style="text-decoration:none"><b>Y</b></A>
- &nbsp;
-</td></tr></table><br><P>
-
-<HR SIZE="6">
-<A NAME="SEC_Contents"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Table of Contents</H1>
-<UL>
-<A NAME="TOC1" HREF="readline.html#SEC1">1. Command Line Editing</A>
-<BR>
-<UL>
-<A NAME="TOC2" HREF="readline.html#SEC2">1.1 Introduction to Line Editing</A>
-<BR>
-<A NAME="TOC3" HREF="readline.html#SEC3">1.2 Readline Interaction</A>
-<BR>
-<UL>
-<A NAME="TOC4" HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A>
-<BR>
-<A NAME="TOC5" HREF="readline.html#SEC5">1.2.2 Readline Movement Commands</A>
-<BR>
-<A NAME="TOC6" HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A>
-<BR>
-<A NAME="TOC7" HREF="readline.html#SEC7">1.2.4 Readline Arguments</A>
-<BR>
-<A NAME="TOC8" HREF="readline.html#SEC8">1.2.5 Searching for Commands in the History</A>
-<BR>
-</UL>
-<A NAME="TOC9" HREF="readline.html#SEC9">1.3 Readline Init File</A>
-<BR>
-<UL>
-<A NAME="TOC10" HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A>
-<BR>
-<A NAME="TOC11" HREF="readline.html#SEC11">1.3.2 Conditional Init Constructs</A>
-<BR>
-<A NAME="TOC12" HREF="readline.html#SEC12">1.3.3 Sample Init File</A>
-<BR>
-</UL>
-<A NAME="TOC13" HREF="readline.html#SEC13">1.4 Bindable Readline Commands</A>
-<BR>
-<UL>
-<A NAME="TOC14" HREF="readline.html#SEC14">1.4.1 Commands For Moving</A>
-<BR>
-<A NAME="TOC15" HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A>
-<BR>
-<A NAME="TOC16" HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A>
-<BR>
-<A NAME="TOC17" HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A>
-<BR>
-<A NAME="TOC18" HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A>
-<BR>
-<A NAME="TOC19" HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A>
-<BR>
-<A NAME="TOC20" HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A>
-<BR>
-<A NAME="TOC21" HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A>
-<BR>
-</UL>
-<A NAME="TOC22" HREF="readline.html#SEC22">1.5 Readline vi Mode</A>
-<BR>
-</UL>
-<A NAME="TOC23" HREF="readline.html#SEC23">2. Programming with GNU Readline</A>
-<BR>
-<UL>
-<A NAME="TOC24" HREF="readline.html#SEC24">2.1 Basic Behavior</A>
-<BR>
-<A NAME="TOC25" HREF="readline.html#SEC25">2.2 Custom Functions</A>
-<BR>
-<UL>
-<A NAME="TOC26" HREF="readline.html#SEC26">2.2.1 Readline Typedefs</A>
-<BR>
-<A NAME="TOC27" HREF="readline.html#SEC27">2.2.2 Writing a New Function</A>
-<BR>
-</UL>
-<A NAME="TOC28" HREF="readline.html#SEC28">2.3 Readline Variables</A>
-<BR>
-<A NAME="TOC29" HREF="readline.html#SEC29">2.4 Readline Convenience Functions</A>
-<BR>
-<UL>
-<A NAME="TOC30" HREF="readline.html#SEC30">2.4.1 Naming a Function</A>
-<BR>
-<A NAME="TOC31" HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>
-<BR>
-<A NAME="TOC32" HREF="readline.html#SEC32">2.4.3 Binding Keys</A>
-<BR>
-<A NAME="TOC33" HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A>
-<BR>
-<A NAME="TOC34" HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A>
-<BR>
-<A NAME="TOC35" HREF="readline.html#SEC35">2.4.6 Redisplay</A>
-<BR>
-<A NAME="TOC36" HREF="readline.html#SEC36">2.4.7 Modifying Text</A>
-<BR>
-<A NAME="TOC37" HREF="readline.html#SEC37">2.4.8 Character Input</A>
-<BR>
-<A NAME="TOC38" HREF="readline.html#SEC38">2.4.9 Terminal Management</A>
-<BR>
-<A NAME="TOC39" HREF="readline.html#SEC39">2.4.10 Utility Functions</A>
-<BR>
-<A NAME="TOC40" HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A>
-<BR>
-<A NAME="TOC41" HREF="readline.html#SEC41">2.4.12 Alternate Interface</A>
-<BR>
-<A NAME="TOC42" HREF="readline.html#SEC42">2.4.13 A Readline Example</A>
-<BR>
-</UL>
-<A NAME="TOC43" HREF="readline.html#SEC43">2.5 Readline Signal Handling</A>
-<BR>
-<A NAME="TOC44" HREF="readline.html#SEC44">2.6 Custom Completers</A>
-<BR>
-<UL>
-<A NAME="TOC45" HREF="readline.html#SEC45">2.6.1 How Completing Works</A>
-<BR>
-<A NAME="TOC46" HREF="readline.html#SEC46">2.6.2 Completion Functions</A>
-<BR>
-<A NAME="TOC47" HREF="readline.html#SEC47">2.6.3 Completion Variables</A>
-<BR>
-<A NAME="TOC48" HREF="readline.html#SEC48">2.6.4 A Short Completion Example</A>
-<BR>
-</UL>
-</UL>
-<A NAME="TOC49" HREF="readline.html#SEC49">Concept Index</A>
-<BR>
-<A NAME="TOC50" HREF="readline.html#SEC50">Function and Variable Index</A>
-<BR>
-</UL>
-<HR SIZE=1>
-<A NAME="SEC_OVERVIEW"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Short Table of Contents</H1>
-<BLOCKQUOTE>
-<A NAME="TOC1" HREF="readline.html#SEC1">1. Command Line Editing</A>
-<BR>
-<A NAME="TOC23" HREF="readline.html#SEC23">2. Programming with GNU Readline</A>
-<BR>
-<A NAME="TOC49" HREF="readline.html#SEC49">Concept Index</A>
-<BR>
-<A NAME="TOC50" HREF="readline.html#SEC50">Function and Variable Index</A>
-<BR>
-
-</BLOCKQUOTE>
-<HR SIZE=1>
-<A NAME="SEC_About"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-<P></P>
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt; ] </TD>
-<TD ALIGN="CENTER">
-Back
-</TD>
-<TD>
-previous section in reading order
-</TD>
-<TD>
-1.2.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt; ] </TD>
-<TD ALIGN="CENTER">
-Forward
-</TD>
-<TD>
-next section in reading order
-</TD>
-<TD>
-1.2.4
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt;&lt; ] </TD>
-<TD ALIGN="CENTER">
-FastBack
-</TD>
-<TD>
-previous or up-and-previous section
-</TD>
-<TD>
-1.1
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ Up ] </TD>
-<TD ALIGN="CENTER">
-Up
-</TD>
-<TD>
-up section
-</TD>
-<TD>
-1.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt;&gt; ] </TD>
-<TD ALIGN="CENTER">
-FastForward
-</TD>
-<TD>
-next or up-and-next section
-</TD>
-<TD>
-1.3
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Top] </TD>
-<TD ALIGN="CENTER">
-Top
-</TD>
-<TD>
-cover (top) of document
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Contents] </TD>
-<TD ALIGN="CENTER">
-Contents
-</TD>
-<TD>
-table of contents
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Index] </TD>
-<TD ALIGN="CENTER">
-Index
-</TD>
-<TD>
-concept index
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ ? ] </TD>
-<TD ALIGN="CENTER">
-About
-</TD>
-<TD>
-this page
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
-the following structure:
-<UL>
-<LI> 1. Section One </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-
-<HR SIZE=1>
-<BR>
-<FONT SIZE="-1">
-This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-
-</BODY>
-</HTML>
diff --git a/readline-4.3.orig/doc/readline.info b/readline-4.3.orig/doc/readline.info
deleted file mode 100644
index 57dbdfa..0000000
--- a/readline-4.3.orig/doc/readline.info
+++ /dev/null
@@ -1,3638 +0,0 @@
-This is readline.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/rlman.texinfo.
-
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* Readline: (readline). The GNU readline library API
-END-INFO-DIR-ENTRY
-
- This document describes the GNU Readline Library, a utility which
-aids in the consistency of user interface across discrete programs that
-need to provide a command line interface.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice pare
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
-
-
-File: readline.info, Node: Top, Next: Command Line Editing, Up: (dir)
-
-GNU Readline Library
-********************
-
- This document describes the GNU Readline Library, a utility which
-aids in the consistency of user interface across discrete programs that
-need to provide a command line interface.
-
-* Menu:
-
-* Command Line Editing:: GNU Readline User's Manual.
-* Programming with GNU Readline:: GNU Readline Programmer's Manual.
-* Concept Index:: Index of concepts described in this manual.
-* Function and Variable Index:: Index of externally visible functions
- and variables.
-
-
-File: readline.info, Node: Command Line Editing, Next: Programming with GNU Readline, Prev: Top, Up: Top
-
-Command Line Editing
-********************
-
- This chapter describes the basic features of the GNU command line
-editing interface.
-
-* Menu:
-
-* Introduction and Notation:: Notation used in this text.
-* Readline Interaction:: The minimum set of commands for editing a line.
-* Readline Init File:: Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
- available for binding
-* Readline vi Mode:: A short description of how to make Readline
- behave like the vi editor.
-
-
-File: readline.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing
-
-Introduction to Line Editing
-============================
-
- The following paragraphs describe the notation used to represent
-keystrokes.
-
- The text `C-k' is read as `Control-K' and describes the character
-produced when the <k> key is pressed while the Control key is depressed.
-
- The text `M-k' is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the <k>
-key is pressed. The Meta key is labeled <ALT> on many keyboards. On
-keyboards with two keys labeled <ALT> (usually to either side of the
-space bar), the <ALT> on the left side is generally set to work as a
-Meta key. The <ALT> key on the right may also be configured to work as
-a Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
- If you do not have a Meta or <ALT> key, or another key working as a
-Meta key, the identical keystroke can be generated by typing <ESC>
-_first_, and then typing <k>. Either process is known as "metafying"
-the <k> key.
-
- The text `M-C-k' is read as `Meta-Control-k' and describes the
-character produced by "metafying" `C-k'.
-
- In addition, several keys have their own names. Specifically,
-<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
-when seen in this text, or in an init file (*note Readline Init File::).
-If your keyboard lacks a <LFD> key, typing <C-j> will produce the
-desired character. The <RET> key may be labeled <Return> or <Enter> on
-some keyboards.
-
-
-File: readline.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
-
-Readline Interaction
-====================
-
- Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <RET>. You do not have to be at the end of
-the line to press <RET>; the entire line is accepted regardless of the
-location of the cursor within the line.
-
-* Menu:
-
-* Readline Bare Essentials:: The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands:: How to delete text, and how to get it back!
-* Readline Arguments:: Giving numeric arguments to commands.
-* Searching:: Searching through previous lines.
-
-
-File: readline.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction
-
-Readline Bare Essentials
-------------------------
-
- In order to enter characters into the line, simply type them. The
-typed character appears where the cursor was, and then the cursor moves
-one space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-
- Sometimes you may mistype a character, and not notice the error
-until you have typed several other characters. In that case, you can
-type `C-b' to move the cursor to the left, and then correct your
-mistake. Afterwards, you can move the cursor to the right with `C-f'.
-
- When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are `pushed over' to make room
-for the text that you have inserted. Likewise, when you delete text
-behind the cursor, characters to the right of the cursor are `pulled
-back' to fill in the blank space created by the removal of the text. A
-list of the bare essentials for editing the text of an input line
-follows.
-
-`C-b'
- Move back one character.
-
-`C-f'
- Move forward one character.
-
-<DEL> or <Backspace>
- Delete the character to the left of the cursor.
-
-`C-d'
- Delete the character underneath the cursor.
-
-Printing characters
- Insert the character into the line at the cursor.
-
-`C-_' or `C-x C-u'
- Undo the last editing command. You can undo all the way back to an
- empty line.
-
-(Depending on your configuration, the <Backspace> key be set to delete
-the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like `C-d', rather than the
-character to the left of the cursor.)
-
-
-File: readline.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction
-
-Readline Movement Commands
---------------------------
-
- The above table describes the most basic keystrokes that you need in
-order to do editing of the input line. For your convenience, many
-other commands have been added in addition to `C-b', `C-f', `C-d', and
-<DEL>. Here are some commands for moving more rapidly about the line.
-
-`C-a'
- Move to the start of the line.
-
-`C-e'
- Move to the end of the line.
-
-`M-f'
- Move forward a word, where a word is composed of letters and
- digits.
-
-`M-b'
- Move backward a word.
-
-`C-l'
- Clear the screen, reprinting the current line at the top.
-
- Notice how `C-f' moves forward a character, while `M-f' moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-
-
-File: readline.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
-
-Readline Killing Commands
--------------------------
-
- "Killing" text means to delete the text from the line, but to save
-it away for later use, usually by "yanking" (re-inserting) it back into
-the line. (`Cut' and `paste' are more recent jargon for `kill' and
-`yank'.)
-
- If the description for a command says that it `kills' text, then you
-can be sure that you can get the text back in a different (or the same)
-place later.
-
- When you use a kill command, the text is saved in a "kill-ring".
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill ring is not line
-specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
-
- Here is the list of commands for killing text.
-
-`C-k'
- Kill the text from the current cursor position to the end of the
- line.
-
-`M-d'
- Kill from the cursor to the end of the current word, or, if between
- words, to the end of the next word. Word boundaries are the same
- as those used by `M-f'.
-
-`M-<DEL>'
- Kill from the cursor the start of the current word, or, if between
- words, to the start of the previous word. Word boundaries are the
- same as those used by `M-b'.
-
-`C-w'
- Kill from the cursor to the previous whitespace. This is
- different than `M-<DEL>' because the word boundaries differ.
-
- Here is how to "yank" the text back into the line. Yanking means to
-copy the most-recently-killed text from the kill buffer.
-
-`C-y'
- Yank the most recently killed text back into the buffer at the
- cursor.
-
-`M-y'
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `C-y' or `M-y'.
-
-
-File: readline.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
-
-Readline Arguments
-------------------
-
- You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the sign of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type `M-- C-k'.
-
- The general way to pass numeric arguments to a command is to type
-meta digits before the command. If the first `digit' typed is a minus
-sign (`-'), then the sign of the argument will be negative. Once you
-have typed one meta digit to get the argument started, you can type the
-remainder of the digits, and then the command. For example, to give
-the `C-d' command an argument of 10, you could type `M-1 0 C-d', which
-will delete the next ten characters on the input line.
-
-
-File: readline.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
-
-Searching for Commands in the History
--------------------------------------
-
- Readline provides commands for searching through the command history
-for lines containing a specified string. There are two search modes:
-"incremental" and "non-incremental".
-
- Incremental searches begin before the user has finished typing the
-search string. As each character of the search string is typed,
-Readline displays the next entry from the history matching the string
-typed so far. An incremental search requires only as many characters
-as needed to find the desired history entry. To search backward in the
-history for a particular string, type `C-r'. Typing `C-s' searches
-forward through the history. The characters present in the value of
-the `isearch-terminators' variable are used to terminate an incremental
-search. If that variable has not been assigned a value, the <ESC> and
-`C-J' characters will terminate an incremental search. `C-g' will
-abort an incremental search and restore the original line. When the
-search is terminated, the history entry containing the search string
-becomes the current line.
-
- To find other matching entries in the history list, type `C-r' or
-`C-s' as appropriate. This will search backward or forward in the
-history for the next entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate the
-search and execute that command. For instance, a <RET> will terminate
-the search and accept the line, thereby executing the command from the
-history list. A movement command will terminate the search, make the
-last line found the current line, and begin editing.
-
- Readline remembers the last incremental search string. If two
-`C-r's are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-
- Non-incremental searches read the entire search string before
-starting to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-
-
-File: readline.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing
-
-Readline Init File
-==================
-
- Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings. Any user can customize programs that use Readline by
-putting commands in an "inputrc" file, conventionally in his home
-directory. The name of this file is taken from the value of the
-environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'.
-
- When a program which uses the Readline library starts up, the init
-file is read, and the key bindings are set.
-
- In addition, the `C-x C-r' command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-* Menu:
-
-* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
-
-* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
-
-* Sample Init File:: An example inputrc file.
-
-
-File: readline.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File
-
-Readline Init File Syntax
--------------------------
-
- There are only a few basic constructs allowed in the Readline init
-file. Blank lines are ignored. Lines beginning with a `#' are
-comments. Lines beginning with a `$' indicate conditional constructs
-(*note Conditional Init Constructs::). Other lines denote variable
-settings and key bindings.
-
-Variable Settings
- You can modify the run-time behavior of Readline by altering the
- values of variables in Readline using the `set' command within the
- init file. The syntax is simple:
-
- set VARIABLE VALUE
-
- Here, for example, is how to change from the default Emacs-like
- key binding to use `vi' line editing commands:
-
- set editing-mode vi
-
- Variable names and values, where appropriate, are recognized
- without regard to case.
-
- A great deal of run-time behavior is changeable with the following
- variables.
-
- `bell-style'
- Controls what happens when Readline wants to ring the
- terminal bell. If set to `none', Readline never rings the
- bell. If set to `visible', Readline uses a visible bell if
- one is available. If set to `audible' (the default),
- Readline attempts to ring the terminal's bell.
-
- `comment-begin'
- The string to insert at the beginning of the line when the
- `insert-comment' command is executed. The default value is
- `"#"'.
-
- `completion-ignore-case'
- If set to `on', Readline performs filename matching and
- completion in a case-insensitive fashion. The default value
- is `off'.
-
- `completion-query-items'
- The number of possible completions that determines when the
- user is asked whether he wants to see the list of
- possibilities. If the number of possible completions is
- greater than this value, Readline will ask the user whether
- or not he wishes to view them; otherwise, they are simply
- listed. This variable must be set to an integer value
- greater than or equal to 0. The default limit is `100'.
-
- `convert-meta'
- If set to `on', Readline will convert characters with the
- eighth bit set to an ASCII key sequence by stripping the
- eighth bit and prefixing an <ESC> character, converting them
- to a meta-prefixed key sequence. The default value is `on'.
-
- `disable-completion'
- If set to `On', Readline will inhibit word completion.
- Completion characters will be inserted into the line as if
- they had been mapped to `self-insert'. The default is `off'.
-
- `editing-mode'
- The `editing-mode' variable controls which default set of key
- bindings is used. By default, Readline starts up in Emacs
- editing mode, where the keystrokes are most similar to Emacs.
- This variable can be set to either `emacs' or `vi'.
-
- `enable-keypad'
- When set to `on', Readline will try to enable the application
- keypad when it is called. Some systems need this to enable
- the arrow keys. The default is `off'.
-
- `expand-tilde'
- If set to `on', tilde expansion is performed when Readline
- attempts word completion. The default is `off'.
-
- If set to `on', the history code attempts to place point at
- the same location on each history line retrived with
- `previous-history' or `next-history'.
-
- `horizontal-scroll-mode'
- This variable can be set to either `on' or `off'. Setting it
- to `on' means that the text of the lines being edited will
- scroll horizontally on a single screen line when they are
- longer than the width of the screen, instead of wrapping onto
- a new screen line. By default, this variable is set to `off'.
-
- `input-meta'
- If set to `on', Readline will enable eight-bit input (it will
- not clear the eighth bit in the characters it reads),
- regardless of what the terminal claims it can support. The
- default value is `off'. The name `meta-flag' is a synonym
- for this variable.
-
- `isearch-terminators'
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a
- command (*note Searching::). If this variable has not been
- given a value, the characters <ESC> and `C-J' will terminate
- an incremental search.
-
- `keymap'
- Sets Readline's idea of the current keymap for key binding
- commands. Acceptable `keymap' names are `emacs',
- `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move',
- `vi-command', and `vi-insert'. `vi' is equivalent to
- `vi-command'; `emacs' is equivalent to `emacs-standard'. The
- default value is `emacs'. The value of the `editing-mode'
- variable also affects the default keymap.
-
- `mark-directories'
- If set to `on', completed directory names have a slash
- appended. The default is `on'.
-
- `mark-modified-lines'
- This variable, when set to `on', causes Readline to display an
- asterisk (`*') at the start of history lines which have been
- modified. This variable is `off' by default.
-
- `mark-symlinked-directories'
- If set to `on', completed names which are symbolic links to
- directories have a slash appended (subject to the value of
- `mark-directories'). The default is `off'.
-
- `match-hidden-files'
- This variable, when set to `on', causes Readline to match
- files whose names begin with a `.' (hidden files) when
- performing filename completion, unless the leading `.' is
- supplied by the user in the filename to be completed. This
- variable is `on' by default.
-
- `output-meta'
- If set to `on', Readline will display characters with the
- eighth bit set directly rather than as a meta-prefixed escape
- sequence. The default is `off'.
-
- `page-completions'
- If set to `on', Readline uses an internal `more'-like pager
- to display a screenful of possible completions at a time.
- This variable is `on' by default.
-
- `print-completions-horizontally'
- If set to `on', Readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down
- the screen. The default is `off'.
-
- `show-all-if-ambiguous'
- This alters the default behavior of the completion functions.
- If set to `on', words which have more than one possible
- completion cause the matches to be listed immediately instead
- of ringing the bell. The default value is `off'.
-
- `visible-stats'
- If set to `on', a character denoting a file's type is
- appended to the filename when listing possible completions.
- The default is `off'.
-
-Key Bindings
- The syntax for controlling key bindings in the init file is
- simple. First you need to find the name of the command that you
- want to change. The following sections contain tables of the
- command name, the default keybinding, if any, and a short
- description of what the command does.
-
- Once you know the name of the command, simply place on a line in
- the init file the name of the key you wish to bind the command to,
- a colon, and then the name of the command. The name of the key
- can be expressed in different ways, depending on what you find most
- comfortable.
-
- In addition to command names, readline allows keys to be bound to
- a string that is inserted when the key is pressed (a MACRO).
-
- KEYNAME: FUNCTION-NAME or MACRO
- KEYNAME is the name of a key spelled out in English. For
- example:
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the above example, `C-u' is bound to the function
- `universal-argument', `M-DEL' is bound to the function
- `backward-kill-word', and `C-o' is bound to run the macro
- expressed on the right hand side (that is, to insert the text
- `> output' into the line).
-
- A number of symbolic character names are recognized while
- processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
- NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
-
- "KEYSEQ": FUNCTION-NAME or MACRO
- KEYSEQ differs from KEYNAME above in that strings denoting an
- entire key sequence can be specified, by placing the key
- sequence in double quotes. Some GNU Emacs style key escapes
- can be used, as in the following example, but the special
- character names are not recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In the above example, `C-u' is again bound to the function
- `universal-argument' (just as it was in the first example),
- `C-x C-r' is bound to the function `re-read-init-file', and
- `<ESC> <[> <1> <1> <~>' is bound to insert the text `Function
- Key 1'.
-
- The following GNU Emacs style escape sequences are available when
- specifying key sequences:
-
- `\C-'
- control prefix
-
- `\M-'
- meta prefix
-
- `\e'
- an escape character
-
- `\\'
- backslash
-
- `\"'
- <">, a double quotation mark
-
- `\''
- <'>, a single quote or apostrophe
-
- In addition to the GNU Emacs style escape sequences, a second set
- of backslash escapes is available:
-
- `\a'
- alert (bell)
-
- `\b'
- backspace
-
- `\d'
- delete
-
- `\f'
- form feed
-
- `\n'
- newline
-
- `\r'
- carriage return
-
- `\t'
- horizontal tab
-
- `\v'
- vertical tab
-
- `\NNN'
- the eight-bit character whose value is the octal value NNN
- (one to three digits)
-
- `\xHH'
- the eight-bit character whose value is the hexadecimal value
- HH (one or two hex digits)
-
- When entering the text of a macro, single or double quotes must be
- used to indicate a macro definition. Unquoted text is assumed to
- be a function name. In the macro body, the backslash escapes
- described above are expanded. Backslash will quote any other
- character in the macro text, including `"' and `''. For example,
- the following binding will make `C-x \' insert a single `\' into
- the line:
- "\C-x\\": "\\"
-
-
-File: readline.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
-
-Conditional Init Constructs
----------------------------
-
- Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key bindings
-and variable settings to be performed as the result of tests. There
-are four parser directives used.
-
-`$if'
- The `$if' construct allows bindings to be made based on the
- editing mode, the terminal being used, or the application using
- Readline. The text of the test extends to the end of the line; no
- characters are required to isolate it.
-
- `mode'
- The `mode=' form of the `$if' directive is used to test
- whether Readline is in `emacs' or `vi' mode. This may be
- used in conjunction with the `set keymap' command, for
- instance, to set bindings in the `emacs-standard' and
- `emacs-ctlx' keymaps only if Readline is starting out in
- `emacs' mode.
-
- `term'
- The `term=' form may be used to include terminal-specific key
- bindings, perhaps to bind the key sequences output by the
- terminal's function keys. The word on the right side of the
- `=' is tested against both the full name of the terminal and
- the portion of the terminal name before the first `-'. This
- allows `sun' to match both `sun' and `sun-cmd', for instance.
-
- `application'
- The APPLICATION construct is used to include
- application-specific settings. Each program using the
- Readline library sets the APPLICATION NAME, and you can test
- for a particular value. This could be used to bind key
- sequences to functions useful for a specific program. For
- instance, the following command adds a key sequence that
- quotes the current or previous word in Bash:
- $if Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $endif
-
-`$endif'
- This command, as seen in the previous example, terminates an `$if'
- command.
-
-`$else'
- Commands in this branch of the `$if' directive are executed if the
- test fails.
-
-`$include'
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the following
- directive reads from `/etc/inputrc':
- $include /etc/inputrc
-
-
-File: readline.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File
-
-Sample Init File
-----------------
-
- Here is an example of an INPUTRC file. This illustrates key
-binding, variable assignment, and conditional syntax.
-
-
- # This file controls the behaviour of line input editing for
- # programs that use the GNU Readline library. Existing
- # programs include FTP, Bash, and GDB.
- #
- # You can re-read the inputrc file with C-x C-r.
- # Lines beginning with '#' are comments.
- #
- # First, include any systemwide bindings and variable
- # assignments from /etc/Inputrc
- $include /etc/Inputrc
-
- #
- # Set various bindings for emacs mode.
-
- set editing-mode emacs
-
- $if mode=emacs
-
- Meta-Control-h: backward-kill-word Text after the function name is ignored
-
- #
- # Arrow keys in keypad mode
- #
- #"\M-OD": backward-char
- #"\M-OC": forward-char
- #"\M-OA": previous-history
- #"\M-OB": next-history
- #
- # Arrow keys in ANSI mode
- #
- "\M-[D": backward-char
- "\M-[C": forward-char
- "\M-[A": previous-history
- "\M-[B": next-history
- #
- # Arrow keys in 8 bit keypad mode
- #
- #"\M-\C-OD": backward-char
- #"\M-\C-OC": forward-char
- #"\M-\C-OA": previous-history
- #"\M-\C-OB": next-history
- #
- # Arrow keys in 8 bit ANSI mode
- #
- #"\M-\C-[D": backward-char
- #"\M-\C-[C": forward-char
- #"\M-\C-[A": previous-history
- #"\M-\C-[B": next-history
-
- C-q: quoted-insert
-
- $endif
-
- # An old-style binding. This happens to be the default.
- TAB: complete
-
- # Macros that are convenient for shell interaction
- $if Bash
- # edit the path
- "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
- # prepare to type a quoted word --
- # insert open and close double quotes
- # and move to just after the open quote
- "\C-x\"": "\"\"\C-b"
- # insert a backslash (testing backslash escapes
- # in sequences and macros)
- "\C-x\\": "\\"
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- # Add a binding to refresh the line, which is unbound
- "\C-xr": redraw-current-line
- # Edit variable on current line.
- "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
- $endif
-
- # use a visible bell if one is available
- set bell-style visible
-
- # don't strip characters to 7 bits when reading
- set input-meta on
-
- # allow iso-latin1 characters to be inserted rather
- # than converted to prefix-meta sequences
- set convert-meta off
-
- # display characters with the eighth bit set directly
- # rather than as meta-prefixed characters
- set output-meta on
-
- # if there are more than 150 possible completions for
- # a word, ask the user if he wants to see all of them
- set completion-query-items 150
-
- # For FTP
- $if Ftp
- "\C-xg": "get \M-?"
- "\C-xt": "put \M-?"
- "\M-.": yank-last-arg
- $endif
-
-
-File: readline.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing
-
-Bindable Readline Commands
-==========================
-
-* Menu:
-
-* Commands For Moving:: Moving about the line.
-* Commands For History:: Getting at previous lines.
-* Commands For Text:: Commands for changing text.
-* Commands For Killing:: Commands for killing and yanking.
-* Numeric Arguments:: Specifying numeric arguments, repeat counts.
-* Commands For Completion:: Getting Readline to do the typing for you.
-* Keyboard Macros:: Saving and re-executing typed characters
-* Miscellaneous Commands:: Other miscellaneous commands.
-
- This section describes Readline commands that may be bound to key
-sequences. Command names without an accompanying key sequence are
-unbound by default.
-
- In the following descriptions, "point" refers to the current cursor
-position, and "mark" refers to a cursor position saved by the
-`set-mark' command. The text between the point and mark is referred to
-as the "region".
-
-
-File: readline.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands
-
-Commands For Moving
--------------------
-
-`beginning-of-line (C-a)'
- Move to the start of the current line.
-
-`end-of-line (C-e)'
- Move to the end of the line.
-
-`forward-char (C-f)'
- Move forward a character.
-
-`backward-char (C-b)'
- Move back a character.
-
-`forward-word (M-f)'
- Move forward to the end of the next word. Words are composed of
- letters and digits.
-
-`backward-word (M-b)'
- Move back to the start of the current or previous word. Words are
- composed of letters and digits.
-
-`clear-screen (C-l)'
- Clear the screen and redraw the current line, leaving the current
- line at the top of the screen.
-
-`redraw-current-line ()'
- Refresh the current line. By default, this is unbound.
-
-
-File: readline.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands
-
-Commands For Manipulating The History
--------------------------------------
-
-`accept-line (Newline or Return)'
- Accept the line regardless of where the cursor is. If this line is
- non-empty, it may be added to the history list for future recall
- with `add_history()'. If this line is a modified history line,
- the history line is restored to its original state.
-
-`previous-history (C-p)'
- Move `back' through the history list, fetching the previous
- command.
-
-`next-history (C-n)'
- Move `forward' through the history list, fetching the next command.
-
-`beginning-of-history (M-<)'
- Move to the first line in the history.
-
-`end-of-history (M->)'
- Move to the end of the input history, i.e., the line currently
- being entered.
-
-`reverse-search-history (C-r)'
- Search backward starting at the current line and moving `up'
- through the history as necessary. This is an incremental search.
-
-`forward-search-history (C-s)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary. This is an incremental
- search.
-
-`non-incremental-reverse-search-history (M-p)'
- Search backward starting at the current line and moving `up'
- through the history as necessary using a non-incremental search
- for a string supplied by the user.
-
-`non-incremental-forward-search-history (M-n)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary using a non-incremental search
- for a string supplied by the user.
-
-`history-search-forward ()'
- Search forward through the history for the string of characters
- between the start of the current line and the point. This is a
- non-incremental search. By default, this command is unbound.
-
-`history-search-backward ()'
- Search backward through the history for the string of characters
- between the start of the current line and the point. This is a
- non-incremental search. By default, this command is unbound.
-
-`yank-nth-arg (M-C-y)'
- Insert the first argument to the previous command (usually the
- second word on the previous line) at point. With an argument N,
- insert the Nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument inserts
- the Nth word from the end of the previous command.
-
-`yank-last-arg (M-. or M-_)'
- Insert last argument to the previous command (the last word of the
- previous history entry). With an argument, behave exactly like
- `yank-nth-arg'. Successive calls to `yank-last-arg' move back
- through the history list, inserting the last argument of each line
- in turn.
-
-
-File: readline.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
-
-Commands For Changing Text
---------------------------
-
-`delete-char (C-d)'
- Delete the character at point. If point is at the beginning of
- the line, there are no characters in the line, and the last
- character typed was not bound to `delete-char', then return EOF.
-
-`backward-delete-char (Rubout)'
- Delete the character behind the cursor. A numeric argument means
- to kill the characters instead of deleting them.
-
-`forward-backward-delete-char ()'
- Delete the character under the cursor, unless the cursor is at the
- end of the line, in which case the character behind the cursor is
- deleted. By default, this is not bound to a key.
-
-`quoted-insert (C-q or C-v)'
- Add the next character typed to the line verbatim. This is how to
- insert key sequences like `C-q', for example.
-
-`tab-insert (M-<TAB>)'
- Insert a tab character.
-
-`self-insert (a, b, A, 1, !, ...)'
- Insert yourself.
-
-`transpose-chars (C-t)'
- Drag the character before the cursor forward over the character at
- the cursor, moving the cursor forward as well. If the insertion
- point is at the end of the line, then this transposes the last two
- characters of the line. Negative arguments have no effect.
-
-`transpose-words (M-t)'
- Drag the word before point past the word after point, moving point
- past that word as well. If the insertion point is at the end of
- the line, this transposes the last two words on the line.
-
-`upcase-word (M-u)'
- Uppercase the current (or following) word. With a negative
- argument, uppercase the previous word, but do not move the cursor.
-
-`downcase-word (M-l)'
- Lowercase the current (or following) word. With a negative
- argument, lowercase the previous word, but do not move the cursor.
-
-`capitalize-word (M-c)'
- Capitalize the current (or following) word. With a negative
- argument, capitalize the previous word, but do not move the cursor.
-
-`overwrite-mode ()'
- Toggle overwrite mode. With an explicit positive numeric argument,
- switches to overwrite mode. With an explicit non-positive numeric
- argument, switches to insert mode. This command affects only
- `emacs' mode; `vi' mode does overwrite differently. Each call to
- `readline()' starts in insert mode.
-
- In overwrite mode, characters bound to `self-insert' replace the
- text at point rather than pushing the text to the right.
- Characters bound to `backward-delete-char' replace the character
- before point with a space.
-
- By default, this command is unbound.
-
-
-File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
-
-Killing And Yanking
--------------------
-
-`kill-line (C-k)'
- Kill the text from point to the end of the line.
-
-`backward-kill-line (C-x Rubout)'
- Kill backward to the beginning of the line.
-
-`unix-line-discard (C-u)'
- Kill backward from the cursor to the beginning of the current line.
-
-`kill-whole-line ()'
- Kill all characters on the current line, no matter where point is.
- By default, this is unbound.
-
-`kill-word (M-d)'
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the same
- as `forward-word'.
-
-`backward-kill-word (M-<DEL>)'
- Kill the word behind point. Word boundaries are the same as
- `backward-word'.
-
-`unix-word-rubout (C-w)'
- Kill the word behind point, using white space as a word boundary.
- The killed text is saved on the kill-ring.
-
-`delete-horizontal-space ()'
- Delete all spaces and tabs around point. By default, this is
- unbound.
-
-`kill-region ()'
- Kill the text in the current region. By default, this command is
- unbound.
-
-`copy-region-as-kill ()'
- Copy the text in the region to the kill buffer, so it can be yanked
- right away. By default, this command is unbound.
-
-`copy-backward-word ()'
- Copy the word before point to the kill buffer. The word
- boundaries are the same as `backward-word'. By default, this
- command is unbound.
-
-`copy-forward-word ()'
- Copy the word following point to the kill buffer. The word
- boundaries are the same as `forward-word'. By default, this
- command is unbound.
-
-`yank (C-y)'
- Yank the top of the kill ring into the buffer at point.
-
-`yank-pop (M-y)'
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `yank' or `yank-pop'.
-
-
-File: readline.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands
-
-Specifying Numeric Arguments
-----------------------------
-
-`digit-argument (M-0, M-1, ... M--)'
- Add this digit to the argument already accumulating, or start a new
- argument. `M--' starts a negative argument.
-
-`universal-argument ()'
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is
- followed by digits, executing `universal-argument' again ends the
- numeric argument, but is otherwise ignored. As a special case, if
- this command is immediately followed by a character that is
- neither a digit or minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argument
- count four, a second time makes the argument count sixteen, and so
- on. By default, this is not bound to a key.
-
-
-File: readline.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
-
-Letting Readline Type For You
------------------------------
-
-`complete (<TAB>)'
- Attempt to perform completion on the text before point. The
- actual completion performed is application-specific. The default
- is filename completion.
-
-`possible-completions (M-?)'
- List the possible completions of the text before point.
-
-`insert-completions (M-*)'
- Insert all completions of the text before point that would have
- been generated by `possible-completions'.
-
-`menu-complete ()'
- Similar to `complete', but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of `menu-complete' steps through the list of possible
- completions, inserting each match in turn. At the end of the list
- of completions, the bell is rung (subject to the setting of
- `bell-style') and the original text is restored. An argument of N
- moves N positions forward in the list of matches; a negative
- argument may be used to move backward through the list. This
- command is intended to be bound to <TAB>, but is unbound by
- default.
-
-`delete-char-or-list ()'
- Deletes the character under the cursor if not at the beginning or
- end of the line (like `delete-char'). If at the end of the line,
- behaves identically to `possible-completions'. This command is
- unbound by default.
-
-
-File: readline.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
-
-Keyboard Macros
----------------
-
-`start-kbd-macro (C-x ()'
- Begin saving the characters typed into the current keyboard macro.
-
-`end-kbd-macro (C-x ))'
- Stop saving the characters typed into the current keyboard macro
- and save the definition.
-
-`call-last-kbd-macro (C-x e)'
- Re-execute the last keyboard macro defined, by making the
- characters in the macro appear as if typed at the keyboard.
-
-
-File: readline.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
-
-Some Miscellaneous Commands
----------------------------
-
-`re-read-init-file (C-x C-r)'
- Read in the contents of the INPUTRC file, and incorporate any
- bindings or variable assignments found there.
-
-`abort (C-g)'
- Abort the current editing command and ring the terminal's bell
- (subject to the setting of `bell-style').
-
-`do-uppercase-version (M-a, M-b, M-X, ...)'
- If the metafied character X is lowercase, run the command that is
- bound to the corresponding uppercase character.
-
-`prefix-meta (<ESC>)'
- Metafy the next character typed. This is for keyboards without a
- meta key. Typing `<ESC> f' is equivalent to typing `M-f'.
-
-`undo (C-_ or C-x C-u)'
- Incremental undo, separately remembered for each line.
-
-`revert-line (M-r)'
- Undo all changes made to this line. This is like executing the
- `undo' command enough times to get back to the beginning.
-
-`tilde-expand (M-~)'
- Perform tilde expansion on the current word.
-
-`set-mark (C-@)'
- Set the mark to the point. If a numeric argument is supplied, the
- mark is set to that position.
-
-`exchange-point-and-mark (C-x C-x)'
- Swap the point with the mark. The current cursor position is set
- to the saved position, and the old cursor position is saved as the
- mark.
-
-`character-search (C-])'
- A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous
- occurrences.
-
-`character-search-backward (M-C-])'
- A character is read and point is moved to the previous occurrence
- of that character. A negative count searches for subsequent
- occurrences.
-
-`insert-comment (M-#)'
- Without a numeric argument, the value of the `comment-begin'
- variable is inserted at the beginning of the current line. If a
- numeric argument is supplied, this command acts as a toggle: if
- the characters at the beginning of the line do not match the value
- of `comment-begin', the value is inserted, otherwise the
- characters in `comment-begin' are deleted from the beginning of
- the line. In either case, the line is accepted as if a newline
- had been typed.
-
-`dump-functions ()'
- Print all of the functions and their key bindings to the Readline
- output stream. If a numeric argument is supplied, the output is
- formatted in such a way that it can be made part of an INPUTRC
- file. This command is unbound by default.
-
-`dump-variables ()'
- Print all of the settable variables and their values to the
- Readline output stream. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-`dump-macros ()'
- Print all of the Readline key sequences bound to macros and the
- strings they output. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-`emacs-editing-mode (C-e)'
- When in `vi' command mode, this causes a switch to `emacs' editing
- mode.
-
-`vi-editing-mode (M-C-j)'
- When in `emacs' editing mode, this causes a switch to `vi' editing
- mode.
-
-
-File: readline.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing
-
-Readline vi Mode
-================
-
- While the Readline library does not have a full set of `vi' editing
-functions, it does contain enough to allow simple editing of the line.
-The Readline `vi' mode behaves as specified in the POSIX 1003.2
-standard.
-
- In order to switch interactively between `emacs' and `vi' editing
-modes, use the command `M-C-j' (bound to emacs-editing-mode when in
-`vi' mode and to vi-editing-mode in `emacs' mode). The Readline
-default is `emacs' mode.
-
- When you enter a line in `vi' mode, you are already placed in
-`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
-you into `command' mode, where you can edit the text of the line with
-the standard `vi' movement keys, move to previous history lines with
-`k' and subsequent lines with `j', and so forth.
-
- This document describes the GNU Readline Library, a utility for
-aiding in the consitency of user interface across discrete programs
-that need to provide a command line interface.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice pare
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Foundation.
-
-
-File: readline.info, Node: Programming with GNU Readline, Next: Concept Index, Prev: Command Line Editing, Up: Top
-
-Programming with GNU Readline
-*****************************
-
- This chapter describes the interface between the GNU Readline
-Library and other programs. If you are a programmer, and you wish to
-include the features found in GNU Readline such as completion, line
-editing, and interactive history manipulation in your own programs,
-this section is for you.
-
-* Menu:
-
-* Basic Behavior:: Using the default behavior of Readline.
-* Custom Functions:: Adding your own functions to Readline.
-* Readline Variables:: Variables accessible to custom
- functions.
-* Readline Convenience Functions:: Functions which Readline supplies to
- aid in writing your own custom
- functions.
-* Readline Signal Handling:: How Readline behaves when it receives signals.
-* Custom Completers:: Supplanting or supplementing Readline's
- completion functions.
-
-
-File: readline.info, Node: Basic Behavior, Next: Custom Functions, Up: Programming with GNU Readline
-
-Basic Behavior
-==============
-
- Many programs provide a command line interface, such as `mail',
-`ftp', and `sh'. For such programs, the default behaviour of Readline
-is sufficient. This section describes how to use Readline in the
-simplest way possible, perhaps to replace calls in your code to
-`gets()' or `fgets()'.
-
- The function `readline()' prints a prompt PROMPT and then reads and
-returns a single line of text from the user. If PROMPT is `NULL' or
-the empty string, no prompt is displayed. The line `readline' returns
-is allocated with `malloc()'; the caller should `free()' the line when
-it has finished with it. The declaration for `readline' in ANSI C is
-
- `char *readline (const char *PROMPT);'
-
-So, one might say
- `char *line = readline ("Enter a line: ");'
-
-in order to read a line of text from the user. The line returned has
-the final newline removed, so only the text remains.
-
- If `readline' encounters an `EOF' while reading the line, and the
-line is empty at that point, then `(char *)NULL' is returned.
-Otherwise, the line is ended just as if a newline had been typed.
-
- If you want the user to be able to get at the line later, (with
-<C-p> for example), you must call `add_history()' to save the line away
-in a "history" list of such lines.
-
- `add_history (line)';
-
-For full details on the GNU History Library, see the associated manual.
-
- It is preferable to avoid saving empty lines on the history list,
-since users rarely have a burning need to reuse a blank line. Here is
-a function which usefully replaces the standard `gets()' library
-function, and has the advantage of no static buffer to overflow:
-
- /* A static variable for holding the line. */
- static char *line_read = (char *)NULL;
-
- /* Read a string, and return a pointer to it.
- Returns NULL on EOF. */
- char *
- rl_gets ()
- {
- /* If the buffer has already been allocated,
- return the memory to the free pool. */
- if (line_read)
- {
- free (line_read);
- line_read = (char *)NULL;
- }
-
- /* Get a line from the user. */
- line_read = readline ("");
-
- /* If the line has any text in it,
- save it on the history. */
- if (line_read && *line_read)
- add_history (line_read);
-
- return (line_read);
- }
-
- This function gives the user the default behaviour of <TAB>
-completion: completion on file names. If you do not want Readline to
-complete on filenames, you can change the binding of the <TAB> key with
-`rl_bind_key()'.
-
- `int rl_bind_key (int KEY, rl_command_func_t *FUNCTION);'
-
- `rl_bind_key()' takes two arguments: KEY is the character that you
-want to bind, and FUNCTION is the address of the function to call when
-KEY is pressed. Binding <TAB> to `rl_insert()' makes <TAB> insert
-itself. `rl_bind_key()' returns non-zero if KEY is not a valid ASCII
-character code (between 0 and 255).
-
- Thus, to disable the default <TAB> behavior, the following suffices:
- `rl_bind_key ('\t', rl_insert);'
-
- This code should be executed once at the start of your program; you
-might write a function called `initialize_readline()' which performs
-this and other desired initializations, such as installing custom
-completers (*note Custom Completers::).
-
-
-File: readline.info, Node: Custom Functions, Next: Readline Variables, Prev: Basic Behavior, Up: Programming with GNU Readline
-
-Custom Functions
-================
-
- Readline provides many functions for manipulating the text of the
-line, but it isn't possible to anticipate the needs of all programs.
-This section describes the various functions and variables defined
-within the Readline library which allow a user program to add
-customized functionality to Readline.
-
- Before declaring any functions that customize Readline's behavior, or
-using any functionality Readline provides in other code, an application
-writer should include the file `<readline/readline.h>' in any file that
-uses Readline's features. Since some of the definitions in
-`readline.h' use the `stdio' library, the file `<stdio.h>' should be
-included before `readline.h'.
-
- `readline.h' defines a C preprocessor variable that should be
-treated as an integer, `RL_READLINE_VERSION', which may be used to
-conditionally compile application code depending on the installed
-Readline version. The value is a hexadecimal encoding of the major and
-minor version numbers of the library, of the form 0xMMMM. MM is the
-two-digit major version number; MM is the two-digit minor version
-number. For Readline 4.2, for example, the value of
-`RL_READLINE_VERSION' would be `0x0402'.
-
-* Menu:
-
-* Readline Typedefs:: C declarations to make code readable.
-* Function Writing:: Variables and calling conventions.
-
-
-File: readline.info, Node: Readline Typedefs, Next: Function Writing, Up: Custom Functions
-
-Readline Typedefs
------------------
-
- For readabilty, we declare a number of new object types, all pointers
-to functions.
-
- The reason for declaring these new types is to make it easier to
-write code describing pointers to C functions with appropriately
-prototyped arguments and return values.
-
- For instance, say we want to declare a variable FUNC as a pointer to
-a function which takes two `int' arguments and returns an `int' (this
-is the type of all of the Readline bindable functions). Instead of the
-classic C declaration
-
- `int (*func)();'
-
-or the ANSI-C style declaration
-
- `int (*func)(int, int);'
-
-we may write
-
- `rl_command_func_t *func;'
-
- The full list of function pointer types available is
-
-`typedef int rl_command_func_t (int, int);'
-
-`typedef char *rl_compentry_func_t (const char *, int);'
-
-`typedef char **rl_completion_func_t (const char *, int, int);'
-
-`typedef char *rl_quote_func_t (char *, int, char *);'
-
-`typedef char *rl_dequote_func_t (char *, int);'
-
-`typedef int rl_compignore_func_t (char **);'
-
-`typedef void rl_compdisp_func_t (char **, int, int);'
-
-`typedef int rl_hook_func_t (void);'
-
-`typedef int rl_getc_func_t (FILE *);'
-
-`typedef int rl_linebuf_func_t (char *, int);'
-
-`typedef int rl_intfunc_t (int);'
-
-`#define rl_ivoidfunc_t rl_hook_func_t'
-
-`typedef int rl_icpfunc_t (char *);'
-
-`typedef int rl_icppfunc_t (char **);'
-
-`typedef void rl_voidfunc_t (void);'
-
-`typedef void rl_vintfunc_t (int);'
-
-`typedef void rl_vcpfunc_t (char *);'
-
-`typedef void rl_vcppfunc_t (char **);'
-
-File: readline.info, Node: Function Writing, Prev: Readline Typedefs, Up: Custom Functions
-
-Writing a New Function
-----------------------
-
- In order to write new functions for Readline, you need to know the
-calling conventions for keyboard-invoked functions, and the names of the
-variables that describe the current state of the line read so far.
-
- The calling sequence for a command `foo' looks like
-
- `int foo (int count, int key)'
-
-where COUNT is the numeric argument (or 1 if defaulted) and KEY is the
-key that invoked this function.
-
- It is completely up to the function as to what should be done with
-the numeric argument. Some functions use it as a repeat count, some as
-a flag, and others to choose alternate behavior (refreshing the current
-line as opposed to refreshing the screen, for example). Some choose to
-ignore it. In general, if a function uses the numeric argument as a
-repeat count, it should be able to do something useful with both
-negative and positive arguments. At the very least, it should be aware
-that it can be passed a negative argument.
-
- A command function should return 0 if its action completes
-successfully, and a non-zero value if some error occurs.
-
-
-File: readline.info, Node: Readline Variables, Next: Readline Convenience Functions, Prev: Custom Functions, Up: Programming with GNU Readline
-
-Readline Variables
-==================
-
- These variables are available to function writers.
-
- - Variable: char * rl_line_buffer
- This is the line gathered so far. You are welcome to modify the
- contents of the line, but see *Note Allowing Undoing::. The
- function `rl_extend_line_buffer' is available to increase the
- memory allocated to `rl_line_buffer'.
-
- - Variable: int rl_point
- The offset of the current cursor position in `rl_line_buffer' (the
- _point_).
-
- - Variable: int rl_end
- The number of characters present in `rl_line_buffer'. When
- `rl_point' is at the end of the line, `rl_point' and `rl_end' are
- equal.
-
- - Variable: int rl_mark
- The MARK (saved position) in the current line. If set, the mark
- and point define a _region_.
-
- - Variable: int rl_done
- Setting this to a non-zero value causes Readline to return the
- current line immediately.
-
- - Variable: int rl_num_chars_to_read
- Setting this to a positive value before calling `readline()' causes
- Readline to return after accepting that many characters, rather
- than reading up to a character bound to `accept-line'.
-
- - Variable: int rl_pending_input
- Setting this to a value makes it the next keystroke read. This is
- a way to stuff a single character into the input stream.
-
- - Variable: int rl_dispatching
- Set to a non-zero value if a function is being called from a key
- binding; zero otherwise. Application functions can test this to
- discover whether they were called directly or by Readline's
- dispatching mechanism.
-
- - Variable: int rl_erase_empty_line
- Setting this to a non-zero value causes Readline to completely
- erase the current line, including any prompt, any time a newline
- is typed as the only character on an otherwise-empty line. The
- cursor is moved to the beginning of the newly-blank line.
-
- - Variable: char * rl_prompt
- The prompt Readline uses. This is set from the argument to
- `readline()', and should not be assigned to directly. The
- `rl_set_prompt()' function (*note Redisplay::) may be used to
- modify the prompt string after calling `readline()'.
-
- - Variable: int rl_already_prompted
- If an application wishes to display the prompt itself, rather than
- have Readline do it the first time `readline()' is called, it
- should set this variable to a non-zero value after displaying the
- prompt. The prompt must also be passed as the argument to
- `readline()' so the redisplay functions can update the display
- properly. The calling application is responsible for managing the
- value; Readline never sets it.
-
- - Variable: const char * rl_library_version
- The version number of this revision of the library.
-
- - Variable: int rl_readline_version
- An integer encoding the current version of the library. The
- encoding is of the form 0xMMMM, where MM is the two-digit major
- version number, and MM is the two-digit minor version number. For
- example, for Readline-4.2, `rl_readline_version' would have the
- value 0x0402.
-
- - Variable: int rl_gnu_readline_p
- Always set to 1, denoting that this is GNU readline rather than
- some emulation.
-
- - Variable: const char * rl_terminal_name
- The terminal type, used for initialization. If not set by the
- application, Readline sets this to the value of the `TERM'
- environment variable the first time it is called.
-
- - Variable: const char * rl_readline_name
- This variable is set to a unique name by each application using
- Readline. The value allows conditional parsing of the inputrc file
- (*note Conditional Init Constructs::).
-
- - Variable: FILE * rl_instream
- The stdio stream from which Readline reads input. If `NULL',
- Readline defaults to STDIN.
-
- - Variable: FILE * rl_outstream
- The stdio stream to which Readline performs output. If `NULL',
- Readline defaults to STDOUT.
-
- - Variable: rl_command_func_t * rl_last_func
- The address of the last command function Readline executed. May
- be used to test whether or not a function is being executed twice
- in succession, for example.
-
- - Variable: rl_hook_func_t * rl_startup_hook
- If non-zero, this is the address of a function to call just before
- `readline' prints the first prompt.
-
- - Variable: rl_hook_func_t * rl_pre_input_hook
- If non-zero, this is the address of a function to call after the
- first prompt has been printed and just before `readline' starts
- reading input characters.
-
- - Variable: rl_hook_func_t * rl_event_hook
- If non-zero, this is the address of a function to call periodically
- when Readline is waiting for terminal input. By default, this
- will be called at most ten times a second if there is no keyboard
- input.
-
- - Variable: rl_getc_func_t * rl_getc_function
- If non-zero, Readline will call indirectly through this pointer to
- get a character from the input stream. By default, it is set to
- `rl_getc', the default Readline character input function (*note
- Character Input::).
-
- - Variable: rl_voidfunc_t * rl_redisplay_function
- If non-zero, Readline will call indirectly through this pointer to
- update the display with the current contents of the editing buffer.
- By default, it is set to `rl_redisplay', the default Readline
- redisplay function (*note Redisplay::).
-
- - Variable: rl_vintfunc_t * rl_prep_term_function
- If non-zero, Readline will call indirectly through this pointer to
- initialize the terminal. The function takes a single argument, an
- `int' flag that says whether or not to use eight-bit characters.
- By default, this is set to `rl_prep_terminal' (*note Terminal
- Management::).
-
- - Variable: rl_voidfunc_t * rl_deprep_term_function
- If non-zero, Readline will call indirectly through this pointer to
- reset the terminal. This function should undo the effects of
- `rl_prep_term_function'. By default, this is set to
- `rl_deprep_terminal' (*note Terminal Management::).
-
- - Variable: Keymap rl_executing_keymap
- This variable is set to the keymap (*note Keymaps::) in which the
- currently executing readline function was found.
-
- - Variable: Keymap rl_binding_keymap
- This variable is set to the keymap (*note Keymaps::) in which the
- last key binding occurred.
-
- - Variable: char * rl_executing_macro
- This variable is set to the text of any currently-executing macro.
-
- - Variable: int rl_readline_state
- A variable with bit values that encapsulate the current Readline
- state. A bit is set with the `RL_SETSTATE' macro, and unset with
- the `RL_UNSETSTATE' macro. Use the `RL_ISSTATE' macro to test
- whether a particular state bit is set. Current state bits include:
-
- `RL_STATE_NONE'
- Readline has not yet been called, nor has it begun to
- intialize.
-
- `RL_STATE_INITIALIZING'
- Readline is initializing its internal data structures.
-
- `RL_STATE_INITIALIZED'
- Readline has completed its initialization.
-
- `RL_STATE_TERMPREPPED'
- Readline has modified the terminal modes to do its own input
- and redisplay.
-
- `RL_STATE_READCMD'
- Readline is reading a command from the keyboard.
-
- `RL_STATE_METANEXT'
- Readline is reading more input after reading the meta-prefix
- character.
-
- `RL_STATE_DISPATCHING'
- Readline is dispatching to a command.
-
- `RL_STATE_MOREINPUT'
- Readline is reading more input while executing an editing
- command.
-
- `RL_STATE_ISEARCH'
- Readline is performing an incremental history search.
-
- `RL_STATE_NSEARCH'
- Readline is performing a non-incremental history search.
-
- `RL_STATE_SEARCH'
- Readline is searching backward or forward through the history
- for a string.
-
- `RL_STATE_NUMERICARG'
- Readline is reading a numeric argument.
-
- `RL_STATE_MACROINPUT'
- Readline is currently getting its input from a
- previously-defined keyboard macro.
-
- `RL_STATE_MACRODEF'
- Readline is currently reading characters defining a keyboard
- macro.
-
- `RL_STATE_OVERWRITE'
- Readline is in overwrite mode.
-
- `RL_STATE_COMPLETING'
- Readline is performing word completion.
-
- `RL_STATE_SIGHANDLER'
- Readline is currently executing the readline signal handler.
-
- `RL_STATE_UNDOING'
- Readline is performing an undo.
-
- `RL_STATE_DONE'
- Readline has read a key sequence bound to `accept-line' and
- is about to return the line to the caller.
-
-
- - Variable: int rl_explicit_arg
- Set to a non-zero value if an explicit numeric argument was
- specified by the user. Only valid in a bindable command function.
-
- - Variable: int rl_numeric_arg
- Set to the value of any numeric argument explicitly specified by
- the user before executing the current Readline function. Only
- valid in a bindable command function.
-
- - Variable: int rl_editing_mode
- Set to a value denoting Readline's current editing mode. A value
- of 1 means Readline is currently in emacs mode; 0 means that vi
- mode is active.
-
-
-File: readline.info, Node: Readline Convenience Functions, Next: Readline Signal Handling, Prev: Readline Variables, Up: Programming with GNU Readline
-
-Readline Convenience Functions
-==============================
-
-* Menu:
-
-* Function Naming:: How to give a function you write a name.
-* Keymaps:: Making keymaps.
-* Binding Keys:: Changing Keymaps.
-* Associating Function Names and Bindings:: Translate function names to
- key sequences.
-* Allowing Undoing:: How to make your functions undoable.
-* Redisplay:: Functions to control line display.
-* Modifying Text:: Functions to modify `rl_line_buffer'.
-* Character Input:: Functions to read keyboard input.
-* Terminal Management:: Functions to manage terminal settings.
-* Utility Functions:: Generally useful functions and hooks.
-* Miscellaneous Functions:: Functions that don't fall into any category.
-* Alternate Interface:: Using Readline in a `callback' fashion.
-* A Readline Example:: An example Readline function.
-
-
-File: readline.info, Node: Function Naming, Next: Keymaps, Up: Readline Convenience Functions
-
-Naming a Function
------------------
-
- The user can dynamically change the bindings of keys while using
-Readline. This is done by representing the function with a descriptive
-name. The user is able to type the descriptive name when referring to
-the function. Thus, in an init file, one might find
-
- Meta-Rubout: backward-kill-word
-
- This binds the keystroke <Meta-Rubout> to the function
-_descriptively_ named `backward-kill-word'. You, as the programmer,
-should bind the functions you write to descriptive names as well.
-Readline provides a function for doing that:
-
- - Function: int rl_add_defun (const char *name, rl_command_func_t
- *function, int key)
- Add NAME to the list of named functions. Make FUNCTION be the
- function that gets called. If KEY is not -1, then bind it to
- FUNCTION using `rl_bind_key()'.
-
- Using this function alone is sufficient for most applications. It is
-the recommended way to add a few functions to the default functions that
-Readline has built in. If you need to do something other than adding a
-function to Readline, you may need to use the underlying functions
-described below.
-
-
-File: readline.info, Node: Keymaps, Next: Binding Keys, Prev: Function Naming, Up: Readline Convenience Functions
-
-Selecting a Keymap
-------------------
-
- Key bindings take place on a "keymap". The keymap is the
-association between the keys that the user types and the functions that
-get run. You can make your own keymaps, copy existing keymaps, and tell
-Readline which keymap to use.
-
- - Function: Keymap rl_make_bare_keymap (void)
- Returns a new, empty keymap. The space for the keymap is
- allocated with `malloc()'; the caller should free it by calling
- `rl_discard_keymap()' when done.
-
- - Function: Keymap rl_copy_keymap (Keymap map)
- Return a new keymap which is a copy of MAP.
-
- - Function: Keymap rl_make_keymap (void)
- Return a new keymap with the printing characters bound to
- rl_insert, the lowercase Meta characters bound to run their
- equivalents, and the Meta digits bound to produce numeric
- arguments.
-
- - Function: void rl_discard_keymap (Keymap keymap)
- Free the storage associated with KEYMAP.
-
- Readline has several internal keymaps. These functions allow you to
-change which keymap is active.
-
- - Function: Keymap rl_get_keymap (void)
- Returns the currently active keymap.
-
- - Function: void rl_set_keymap (Keymap keymap)
- Makes KEYMAP the currently active keymap.
-
- - Function: Keymap rl_get_keymap_by_name (const char *name)
- Return the keymap matching NAME. NAME is one which would be
- supplied in a `set keymap' inputrc line (*note Readline Init
- File::).
-
- - Function: char * rl_get_keymap_name (Keymap keymap)
- Return the name matching KEYMAP. NAME is one which would be
- supplied in a `set keymap' inputrc line (*note Readline Init
- File::).
-
-
-File: readline.info, Node: Binding Keys, Next: Associating Function Names and Bindings, Prev: Keymaps, Up: Readline Convenience Functions
-
-Binding Keys
-------------
-
- Key sequences are associate with functions through the keymap.
-Readline has several internal keymaps: `emacs_standard_keymap',
-`emacs_meta_keymap', `emacs_ctlx_keymap', `vi_movement_keymap', and
-`vi_insertion_keymap'. `emacs_standard_keymap' is the default, and the
-examples in this manual assume that.
-
- Since `readline()' installs a set of default key bindings the first
-time it is called, there is always the danger that a custom binding
-installed before the first call to `readline()' will be overridden. An
-alternate mechanism is to install custom key bindings in an
-initialization function assigned to the `rl_startup_hook' variable
-(*note Readline Variables::).
-
- These functions manage key bindings.
-
- - Function: int rl_bind_key (int key, rl_command_func_t *function)
- Binds KEY to FUNCTION in the currently active keymap. Returns
- non-zero in the case of an invalid KEY.
-
- - Function: int rl_bind_key_in_map (int key, rl_command_func_t
- *function, Keymap map)
- Bind KEY to FUNCTION in MAP. Returns non-zero in the case of an
- invalid KEY.
-
- - Function: int rl_unbind_key (int key)
- Bind KEY to the null function in the currently active keymap.
- Returns non-zero in case of error.
-
- - Function: int rl_unbind_key_in_map (int key, Keymap map)
- Bind KEY to the null function in MAP. Returns non-zero in case of
- error.
-
- - Function: int rl_unbind_function_in_map (rl_command_func_t
- *function, Keymap map)
- Unbind all keys that execute FUNCTION in MAP.
-
- - Function: int rl_unbind_command_in_map (const char *command, Keymap
- map)
- Unbind all keys that are bound to COMMAND in MAP.
-
- - Function: int rl_set_key (const char *keyseq, rl_command_func_t
- *function, Keymap map)
- Bind the key sequence represented by the string KEYSEQ to the
- function FUNCTION. This makes new keymaps as necessary. The
- initial keymap in which to do bindings is MAP.
-
- - Function: int rl_generic_bind (int type, const char *keyseq, char
- *data, Keymap map)
- Bind the key sequence represented by the string KEYSEQ to the
- arbitrary pointer DATA. TYPE says what kind of data is pointed to
- by DATA; this can be a function (`ISFUNC'), a macro (`ISMACR'), or
- a keymap (`ISKMAP'). This makes new keymaps as necessary. The
- initial keymap in which to do bindings is MAP.
-
- - Function: int rl_parse_and_bind (char *line)
- Parse LINE as if it had been read from the `inputrc' file and
- perform any key bindings and variable assignments found (*note
- Readline Init File::).
-
- - Function: int rl_read_init_file (const char *filename)
- Read keybindings and variable assignments from FILENAME (*note
- Readline Init File::).
-
-
-File: readline.info, Node: Associating Function Names and Bindings, Next: Allowing Undoing, Prev: Binding Keys, Up: Readline Convenience Functions
-
-Associating Function Names and Bindings
----------------------------------------
-
- These functions allow you to find out what keys invoke named
-functions and the functions invoked by a particular key sequence. You
-may also associate a new function name with an arbitrary function.
-
- - Function: rl_command_func_t * rl_named_function (const char *name)
- Return the function with name NAME.
-
- - Function: rl_command_func_t * rl_function_of_keyseq (const char
- *keyseq, Keymap map, int *type)
- Return the function invoked by KEYSEQ in keymap MAP. If MAP is
- `NULL', the current keymap is used. If TYPE is not `NULL', the
- type of the object is returned in the `int' variable it points to
- (one of `ISFUNC', `ISKMAP', or `ISMACR').
-
- - Function: char ** rl_invoking_keyseqs (rl_command_func_t *function)
- Return an array of strings representing the key sequences used to
- invoke FUNCTION in the current keymap.
-
- - Function: char ** rl_invoking_keyseqs_in_map (rl_command_func_t
- *function, Keymap map)
- Return an array of strings representing the key sequences used to
- invoke FUNCTION in the keymap MAP.
-
- - Function: void rl_function_dumper (int readable)
- Print the readline function names and the key sequences currently
- bound to them to `rl_outstream'. If READABLE is non-zero, the
- list is formatted in such a way that it can be made part of an
- `inputrc' file and re-read.
-
- - Function: void rl_list_funmap_names (void)
- Print the names of all bindable Readline functions to
- `rl_outstream'.
-
- - Function: const char ** rl_funmap_names (void)
- Return a NULL terminated array of known function names. The array
- is sorted. The array itself is allocated, but not the strings
- inside. You should `free()' the array when you are done, but not
- the pointers.
-
- - Function: int rl_add_funmap_entry (const char *name,
- rl_command_func_t *function)
- Add NAME to the list of bindable Readline command names, and make
- FUNCTION the function to be called when NAME is invoked.
-
-
-File: readline.info, Node: Allowing Undoing, Next: Redisplay, Prev: Associating Function Names and Bindings, Up: Readline Convenience Functions
-
-Allowing Undoing
-----------------
-
- Supporting the undo command is a painless thing, and makes your
-functions much more useful. It is certainly easy to try something if
-you know you can undo it.
-
- If your function simply inserts text once, or deletes text once, and
-uses `rl_insert_text()' or `rl_delete_text()' to do it, then undoing is
-already done for you automatically.
-
- If you do multiple insertions or multiple deletions, or any
-combination of these operations, you should group them together into
-one operation. This is done with `rl_begin_undo_group()' and
-`rl_end_undo_group()'.
-
- The types of events that can be undone are:
-
- enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
-
- Notice that `UNDO_DELETE' means to insert some text, and
-`UNDO_INSERT' means to delete some text. That is, the undo code tells
-what to undo, not how to undo it. `UNDO_BEGIN' and `UNDO_END' are tags
-added by `rl_begin_undo_group()' and `rl_end_undo_group()'.
-
- - Function: int rl_begin_undo_group (void)
- Begins saving undo information in a group construct. The undo
- information usually comes from calls to `rl_insert_text()' and
- `rl_delete_text()', but could be the result of calls to
- `rl_add_undo()'.
-
- - Function: int rl_end_undo_group (void)
- Closes the current undo group started with `rl_begin_undo_group
- ()'. There should be one call to `rl_end_undo_group()' for each
- call to `rl_begin_undo_group()'.
-
- - Function: void rl_add_undo (enum undo_code what, int start, int end,
- char *text)
- Remember how to undo an event (according to WHAT). The affected
- text runs from START to END, and encompasses TEXT.
-
- - Function: void rl_free_undo_list (void)
- Free the existing undo list.
-
- - Function: int rl_do_undo (void)
- Undo the first thing on the undo list. Returns `0' if there was
- nothing to undo, non-zero if something was undone.
-
- Finally, if you neither insert nor delete text, but directly modify
-the existing text (e.g., change its case), call `rl_modifying()' once,
-just before you modify the text. You must supply the indices of the
-text range that you are going to modify.
-
- - Function: int rl_modifying (int start, int end)
- Tell Readline to save the text between START and END as a single
- undo unit. It is assumed that you will subsequently modify that
- text.
-
-
-File: readline.info, Node: Redisplay, Next: Modifying Text, Prev: Allowing Undoing, Up: Readline Convenience Functions
-
-Redisplay
----------
-
- - Function: void rl_redisplay (void)
- Change what's displayed on the screen to reflect the current
- contents of `rl_line_buffer'.
-
- - Function: int rl_forced_update_display (void)
- Force the line to be updated and redisplayed, whether or not
- Readline thinks the screen display is correct.
-
- - Function: int rl_on_new_line (void)
- Tell the update functions that we have moved onto a new (empty)
- line, usually after ouputting a newline.
-
- - Function: int rl_on_new_line_with_prompt (void)
- Tell the update functions that we have moved onto a new line, with
- RL_PROMPT already displayed. This could be used by applications
- that want to output the prompt string themselves, but still need
- Readline to know the prompt string length for redisplay. It
- should be used after setting RL_ALREADY_PROMPTED.
-
- - Function: int rl_reset_line_state (void)
- Reset the display state to a clean state and redisplay the current
- line starting on a new line.
-
- - Function: int rl_crlf (void)
- Move the cursor to the start of the next screen line.
-
- - Function: int rl_show_char (int c)
- Display character C on `rl_outstream'. If Readline has not been
- set to display meta characters directly, this will convert meta
- characters to a meta-prefixed key sequence. This is intended for
- use by applications which wish to do their own redisplay.
-
- - Function: int rl_message (const char *, ...)
- The arguments are a format string as would be supplied to `printf',
- possibly containing conversion specifications such as `%d', and
- any additional arguments necessary to satisfy the conversion
- specifications. The resulting string is displayed in the "echo
- area". The echo area is also used to display numeric arguments
- and search strings.
-
- - Function: int rl_clear_message (void)
- Clear the message in the echo area.
-
- - Function: void rl_save_prompt (void)
- Save the local Readline prompt display state in preparation for
- displaying a new message in the message area with `rl_message()'.
-
- - Function: void rl_restore_prompt (void)
- Restore the local Readline prompt display state saved by the most
- recent call to `rl_save_prompt'.
-
- - Function: int rl_expand_prompt (char *prompt)
- Expand any special character sequences in PROMPT and set up the
- local Readline prompt redisplay variables. This function is
- called by `readline()'. It may also be called to expand the
- primary prompt if the `rl_on_new_line_with_prompt()' function or
- `rl_already_prompted' variable is used. It returns the number of
- visible characters on the last line of the (possibly multi-line)
- prompt.
-
- - Function: int rl_set_prompt (const char *prompt)
- Make Readline use PROMPT for subsequent redisplay. This calls
- `rl_expand_prompt()' to expand the prompt and sets `rl_prompt' to
- the result.
-
-
-File: readline.info, Node: Modifying Text, Next: Character Input, Prev: Redisplay, Up: Readline Convenience Functions
-
-Modifying Text
---------------
-
- - Function: int rl_insert_text (const char *text)
- Insert TEXT into the line at the current cursor position. Returns
- the number of characters inserted.
-
- - Function: int rl_delete_text (int start, int end)
- Delete the text between START and END in the current line.
- Returns the number of characters deleted.
-
- - Function: char * rl_copy_text (int start, int end)
- Return a copy of the text between START and END in the current
- line.
-
- - Function: int rl_kill_text (int start, int end)
- Copy the text between START and END in the current line to the
- kill ring, appending or prepending to the last kill if the last
- command was a kill command. The text is deleted. If START is
- less than END, the text is appended, otherwise prepended. If the
- last command was not a kill, a new kill ring slot is used.
-
- - Function: int rl_push_macro_input (char *macro)
- Cause MACRO to be inserted into the line, as if it had been invoked
- by a key bound to a macro. Not especially useful; use
- `rl_insert_text()' instead.
-
-
-File: readline.info, Node: Character Input, Next: Terminal Management, Prev: Modifying Text, Up: Readline Convenience Functions
-
-Character Input
----------------
-
- - Function: int rl_read_key (void)
- Return the next character available from Readline's current input
- stream. This handles input inserted into the input stream via
- RL_PENDING_INPUT (*note Readline Variables::) and
- `rl_stuff_char()', macros, and characters read from the keyboard.
- While waiting for input, this function will call any function
- assigned to the `rl_event_hook' variable.
-
- - Function: int rl_getc (FILE *stream)
- Return the next character available from STREAM, which is assumed
- to be the keyboard.
-
- - Function: int rl_stuff_char (int c)
- Insert C into the Readline input stream. It will be "read" before
- Readline attempts to read characters from the terminal with
- `rl_read_key()'. Up to 512 characters may be pushed back.
- `rl_stuff_char' returns 1 if the character was successfully
- inserted; 0 otherwise.
-
- - Function: int rl_execute_next (int c)
- Make C be the next command to be executed when `rl_read_key()' is
- called. This sets RL_PENDING_INPUT.
-
- - Function: int rl_clear_pending_input (void)
- Unset RL_PENDING_INPUT, effectively negating the effect of any
- previous call to `rl_execute_next()'. This works only if the
- pending input has not already been read with `rl_read_key()'.
-
- - Function: int rl_set_keyboard_input_timeout (int u)
- While waiting for keyboard input in `rl_read_key()', Readline will
- wait for U microseconds for input before calling any function
- assigned to `rl_event_hook'. The default waiting period is
- one-tenth of a second. Returns the old timeout value.
-
-
-File: readline.info, Node: Terminal Management, Next: Utility Functions, Prev: Character Input, Up: Readline Convenience Functions
-
-Terminal Management
--------------------
-
- - Function: void rl_prep_terminal (int meta_flag)
- Modify the terminal settings for Readline's use, so `readline()'
- can read a single character at a time from the keyboard. The
- META_FLAG argument should be non-zero if Readline should read
- eight-bit input.
-
- - Function: void rl_deprep_terminal (void)
- Undo the effects of `rl_prep_terminal()', leaving the terminal in
- the state in which it was before the most recent call to
- `rl_prep_terminal()'.
-
- - Function: void rl_tty_set_default_bindings (Keymap kmap)
- Read the operating system's terminal editing characters (as would
- be displayed by `stty') to their Readline equivalents. The
- bindings are performed in KMAP.
-
- - Function: int rl_reset_terminal (const char *terminal_name)
- Reinitialize Readline's idea of the terminal settings using
- TERMINAL_NAME as the terminal type (e.g., `vt100'). If
- TERMINAL_NAME is `NULL', the value of the `TERM' environment
- variable is used.
-
-
-File: readline.info, Node: Utility Functions, Next: Miscellaneous Functions, Prev: Terminal Management, Up: Readline Convenience Functions
-
-Utility Functions
------------------
-
- - Function: void rl_replace_line (const char *text, int clear_undo)
- Replace the contents of `rl_line_buffer' with TEXT. The point and
- mark are preserved, if possible. If CLEAR_UNDO is non-zero, the
- undo list associated with the current line is cleared.
-
- - Function: int rl_extend_line_buffer (int len)
- Ensure that `rl_line_buffer' has enough space to hold LEN
- characters, possibly reallocating it if necessary.
-
- - Function: int rl_initialize (void)
- Initialize or re-initialize Readline's internal state. It's not
- strictly necessary to call this; `readline()' calls it before
- reading any input.
-
- - Function: int rl_ding (void)
- Ring the terminal bell, obeying the setting of `bell-style'.
-
- - Function: int rl_alphabetic (int c)
- Return 1 if C is an alphabetic character.
-
- - Function: void rl_display_match_list (char **matches, int len, int
- max)
- A convenience function for displaying a list of strings in
- columnar format on Readline's output stream. `matches' is the list
- of strings, in argv format, such as a list of completion matches.
- `len' is the number of strings in `matches', and `max' is the
- length of the longest string in `matches'. This function uses the
- setting of `print-completions-horizontally' to select how the
- matches are displayed (*note Readline Init File Syntax::).
-
- The following are implemented as macros, defined in `chardefs.h'.
-Applications should refrain from using them.
-
- - Function: int _rl_uppercase_p (int c)
- Return 1 if C is an uppercase alphabetic character.
-
- - Function: int _rl_lowercase_p (int c)
- Return 1 if C is a lowercase alphabetic character.
-
- - Function: int _rl_digit_p (int c)
- Return 1 if C is a numeric character.
-
- - Function: int _rl_to_upper (int c)
- If C is a lowercase alphabetic character, return the corresponding
- uppercase character.
-
- - Function: int _rl_to_lower (int c)
- If C is an uppercase alphabetic character, return the corresponding
- lowercase character.
-
- - Function: int _rl_digit_value (int c)
- If C is a number, return the value it represents.
-
-
-File: readline.info, Node: Miscellaneous Functions, Next: Alternate Interface, Prev: Utility Functions, Up: Readline Convenience Functions
-
-Miscellaneous Functions
------------------------
-
- - Function: int rl_macro_bind (const char *keyseq, const char *macro,
- Keymap map)
- Bind the key sequence KEYSEQ to invoke the macro MACRO. The
- binding is performed in MAP. When KEYSEQ is invoked, the MACRO
- will be inserted into the line. This function is deprecated; use
- `rl_generic_bind()' instead.
-
- - Function: void rl_macro_dumper (int readable)
- Print the key sequences bound to macros and their values, using
- the current keymap, to `rl_outstream'. If READABLE is non-zero,
- the list is formatted in such a way that it can be made part of an
- `inputrc' file and re-read.
-
- - Function: int rl_variable_bind (const char *variable, const char
- *value)
- Make the Readline variable VARIABLE have VALUE. This behaves as
- if the readline command `set VARIABLE VALUE' had been executed in
- an `inputrc' file (*note Readline Init File Syntax::).
-
- - Function: void rl_variable_dumper (int readable)
- Print the readline variable names and their current values to
- `rl_outstream'. If READABLE is non-zero, the list is formatted in
- such a way that it can be made part of an `inputrc' file and
- re-read.
-
- - Function: int rl_set_paren_blink_timeout (int u)
- Set the time interval (in microseconds) that Readline waits when
- showing a balancing character when `blink-matching-paren' has been
- enabled.
-
- - Function: char * rl_get_termcap (const char *cap)
- Retrieve the string value of the termcap capability CAP. Readline
- fetches the termcap entry for the current terminal name and uses
- those capabilities to move around the screen line and perform other
- terminal-specific operations, like erasing a line. Readline does
- not use all of a terminal's capabilities, and this function will
- return values for only those capabilities Readline uses.
-
-
-File: readline.info, Node: Alternate Interface, Next: A Readline Example, Prev: Miscellaneous Functions, Up: Readline Convenience Functions
-
-Alternate Interface
--------------------
-
- An alternate interface is available to plain `readline()'. Some
-applications need to interleave keyboard I/O with file, device, or
-window system I/O, typically by using a main loop to `select()' on
-various file descriptors. To accomodate this need, readline can also
-be invoked as a `callback' function from an event loop. There are
-functions available to make this easy.
-
- - Function: void rl_callback_handler_install (const char *prompt,
- rl_vcpfunc_t *lhandler)
- Set up the terminal for readline I/O and display the initial
- expanded value of PROMPT. Save the value of LHANDLER to use as a
- function to call when a complete line of input has been entered.
- The function takes the text of the line as an argument.
-
- - Function: void rl_callback_read_char (void)
- Whenever an application determines that keyboard input is
- available, it should call `rl_callback_read_char()', which will
- read the next character from the current input source. If that
- character completes the line, `rl_callback_read_char' will invoke
- the LHANDLER function saved by `rl_callback_handler_install' to
- process the line. Before calling the LHANDLER function, the
- terminal settings are reset to the values they had before calling
- `rl_callback_handler_install'. If the LHANDLER function returns,
- the terminal settings are modified for Readline's use again.
- `EOF' is indicated by calling LHANDLER with a `NULL' line.
-
- - Function: void rl_callback_handler_remove (void)
- Restore the terminal to its initial state and remove the line
- handler. This may be called from within a callback as well as
- independently. If the LHANDLER installed by
- `rl_callback_handler_install' does not exit the program, either
- this function or the function referred to by the value of
- `rl_deprep_term_function' should be called before the program
- exits to reset the terminal settings.
-
-
-File: readline.info, Node: A Readline Example, Prev: Alternate Interface, Up: Readline Convenience Functions
-
-A Readline Example
-------------------
-
- Here is a function which changes lowercase characters to their
-uppercase equivalents, and uppercase characters to lowercase. If this
-function was bound to `M-c', then typing `M-c' would change the case of
-the character under point. Typing `M-1 0 M-c' would change the case of
-the following 10 characters, leaving the cursor on the last character
-changed.
-
- /* Invert the case of the COUNT following characters. */
- int
- invert_case_line (count, key)
- int count, key;
- {
- register int start, end, i;
-
- start = rl_point;
-
- if (rl_point >= rl_end)
- return (0);
-
- if (count < 0)
- {
- direction = -1;
- count = -count;
- }
- else
- direction = 1;
-
- /* Find the end of the range to modify. */
- end = start + (count * direction);
-
- /* Force it to be within range. */
- if (end > rl_end)
- end = rl_end;
- else if (end < 0)
- end = 0;
-
- if (start == end)
- return (0);
-
- if (start > end)
- {
- int temp = start;
- start = end;
- end = temp;
- }
-
- /* Tell readline that we are modifying the line,
- so it will save the undo information. */
- rl_modifying (start, end);
-
- for (i = start; i != end; i++)
- {
- if (_rl_uppercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
- else if (_rl_lowercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
- }
- /* Move point to on top of the last character changed. */
- rl_point = (direction == 1) ? end - 1 : start;
- return (0);
- }
-
-
-File: readline.info, Node: Readline Signal Handling, Next: Custom Completers, Prev: Readline Convenience Functions, Up: Programming with GNU Readline
-
-Readline Signal Handling
-========================
-
- Signals are asynchronous events sent to a process by the Unix kernel,
-sometimes on behalf of another process. They are intended to indicate
-exceptional events, like a user pressing the interrupt key on his
-terminal, or a network connection being broken. There is a class of
-signals that can be sent to the process currently reading input from
-the keyboard. Since Readline changes the terminal attributes when it
-is called, it needs to perform special processing when such a signal is
-received in order to restore the terminal to a sane state, or provide
-application writers with functions to do so manually.
-
- Readline contains an internal signal handler that is installed for a
-number of signals (`SIGINT', `SIGQUIT', `SIGTERM', `SIGALRM',
-`SIGTSTP', `SIGTTIN', and `SIGTTOU'). When one of these signals is
-received, the signal handler will reset the terminal attributes to
-those that were in effect before `readline()' was called, reset the
-signal handling to what it was before `readline()' was called, and
-resend the signal to the calling application. If and when the calling
-application's signal handler returns, Readline will reinitialize the
-terminal and continue to accept input. When a `SIGINT' is received,
-the Readline signal handler performs some additional work, which will
-cause any partially-entered line to be aborted (see the description of
-`rl_free_line_state()' below).
-
- There is an additional Readline signal handler, for `SIGWINCH', which
-the kernel sends to a process whenever the terminal's size changes (for
-example, if a user resizes an `xterm'). The Readline `SIGWINCH'
-handler updates Readline's internal screen size information, and then
-calls any `SIGWINCH' signal handler the calling application has
-installed. Readline calls the application's `SIGWINCH' signal handler
-without resetting the terminal to its original state. If the
-application's signal handler does more than update its idea of the
-terminal size and return (for example, a `longjmp' back to a main
-processing loop), it _must_ call `rl_cleanup_after_signal()' (described
-below), to restore the terminal state.
-
- Readline provides two variables that allow application writers to
-control whether or not it will catch certain signals and act on them
-when they are received. It is important that applications change the
-values of these variables only when calling `readline()', not in a
-signal handler, so Readline's internal signal state is not corrupted.
-
- - Variable: int rl_catch_signals
- If this variable is non-zero, Readline will install signal
- handlers for `SIGINT', `SIGQUIT', `SIGTERM', `SIGALRM', `SIGTSTP',
- `SIGTTIN', and `SIGTTOU'.
-
- The default value of `rl_catch_signals' is 1.
-
- - Variable: int rl_catch_sigwinch
- If this variable is non-zero, Readline will install a signal
- handler for `SIGWINCH'.
-
- The default value of `rl_catch_sigwinch' is 1.
-
- If an application does not wish to have Readline catch any signals,
-or to handle signals other than those Readline catches (`SIGHUP', for
-example), Readline provides convenience functions to do the necessary
-terminal and internal state cleanup upon receipt of a signal.
-
- - Function: void rl_cleanup_after_signal (void)
- This function will reset the state of the terminal to what it was
- before `readline()' was called, and remove the Readline signal
- handlers for all signals, depending on the values of
- `rl_catch_signals' and `rl_catch_sigwinch'.
-
- - Function: void rl_free_line_state (void)
- This will free any partial state associated with the current input
- line (undo information, any partial history entry, any
- partially-entered keyboard macro, and any partially-entered
- numeric argument). This should be called before
- `rl_cleanup_after_signal()'. The Readline signal handler for
- `SIGINT' calls this to abort the current input line.
-
- - Function: void rl_reset_after_signal (void)
- This will reinitialize the terminal and reinstall any Readline
- signal handlers, depending on the values of `rl_catch_signals' and
- `rl_catch_sigwinch'.
-
- If an application does not wish Readline to catch `SIGWINCH', it may
-call `rl_resize_terminal()' or `rl_set_screen_size()' to force Readline
-to update its idea of the terminal size when a `SIGWINCH' is received.
-
- - Function: void rl_resize_terminal (void)
- Update Readline's internal screen size by reading values from the
- kernel.
-
- - Function: void rl_set_screen_size (int rows, int cols)
- Set Readline's idea of the terminal size to ROWS rows and COLS
- columns.
-
- If an application does not want to install a `SIGWINCH' handler, but
-is still interested in the screen dimensions, Readline's idea of the
-screen size may be queried.
-
- - Function: void rl_get_screen_size (int *rows, int *cols)
- Return Readline's idea of the terminal's size in the variables
- pointed to by the arguments.
-
- The following functions install and remove Readline's signal
-handlers.
-
- - Function: int rl_set_signals (void)
- Install Readline's signal handler for `SIGINT', `SIGQUIT',
- `SIGTERM', `SIGALRM', `SIGTSTP', `SIGTTIN', `SIGTTOU', and
- `SIGWINCH', depending on the values of `rl_catch_signals' and
- `rl_catch_sigwinch'.
-
- - Function: int rl_clear_signals (void)
- Remove all of the Readline signal handlers installed by
- `rl_set_signals()'.
-
-
-File: readline.info, Node: Custom Completers, Prev: Readline Signal Handling, Up: Programming with GNU Readline
-
-Custom Completers
-=================
-
- Typically, a program that reads commands from the user has a way of
-disambiguating commands and data. If your program is one of these, then
-it can provide completion for commands, data, or both. The following
-sections describe how your program and Readline cooperate to provide
-this service.
-
-* Menu:
-
-* How Completing Works:: The logic used to do completion.
-* Completion Functions:: Functions provided by Readline.
-* Completion Variables:: Variables which control completion.
-* A Short Completion Example:: An example of writing completer subroutines.
-
-
-File: readline.info, Node: How Completing Works, Next: Completion Functions, Up: Custom Completers
-
-How Completing Works
---------------------
-
- In order to complete some text, the full list of possible completions
-must be available. That is, it is not possible to accurately expand a
-partial word without knowing all of the possible words which make sense
-in that context. The Readline library provides the user interface to
-completion, and two of the most common completion functions: filename
-and username. For completing other types of text, you must write your
-own completion function. This section describes exactly what such
-functions must do, and provides an example.
-
- There are three major functions used to perform completion:
-
- 1. The user-interface function `rl_complete()'. This function is
- called with the same arguments as other bindable Readline
- functions: COUNT and INVOKING_KEY. It isolates the word to be
- completed and calls `rl_completion_matches()' to generate a list
- of possible completions. It then either lists the possible
- completions, inserts the possible completions, or actually
- performs the completion, depending on which behavior is desired.
-
- 2. The internal function `rl_completion_matches()' uses an
- application-supplied "generator" function to generate the list of
- possible matches, and then returns the array of these matches.
- The caller should place the address of its generator function in
- `rl_completion_entry_function'.
-
- 3. The generator function is called repeatedly from
- `rl_completion_matches()', returning a string each time. The
- arguments to the generator function are TEXT and STATE. TEXT is
- the partial word to be completed. STATE is zero the first time
- the function is called, allowing the generator to perform any
- necessary initialization, and a positive non-zero integer for each
- subsequent call. The generator function returns `(char *)NULL' to
- inform `rl_completion_matches()' that there are no more
- possibilities left. Usually the generator function computes the
- list of possible completions when STATE is zero, and returns them
- one at a time on subsequent calls. Each string the generator
- function returns as a match must be allocated with `malloc()';
- Readline frees the strings when it has finished with them.
-
-
- - Function: int rl_complete (int ignore, int invoking_key)
- Complete the word at or before point. You have supplied the
- function that does the initial simple matching selection algorithm
- (see `rl_completion_matches()'). The default is to do filename
- completion.
-
- - Variable: rl_compentry_func_t * rl_completion_entry_function
- This is a pointer to the generator function for
- `rl_completion_matches()'. If the value of
- `rl_completion_entry_function' is `NULL' then the default filename
- generator function, `rl_filename_completion_function()', is used.
-
-
-File: readline.info, Node: Completion Functions, Next: Completion Variables, Prev: How Completing Works, Up: Custom Completers
-
-Completion Functions
---------------------
-
- Here is the complete list of callable completion functions present in
-Readline.
-
- - Function: int rl_complete_internal (int what_to_do)
- Complete the word at or before point. WHAT_TO_DO says what to do
- with the completion. A value of `?' means list the possible
- completions. `TAB' means do standard completion. `*' means
- insert all of the possible completions. `!' means to display all
- of the possible completions, if there is more than one, as well as
- performing partial completion.
-
- - Function: int rl_complete (int ignore, int invoking_key)
- Complete the word at or before point. You have supplied the
- function that does the initial simple matching selection algorithm
- (see `rl_completion_matches()' and `rl_completion_entry_function').
- The default is to do filename completion. This calls
- `rl_complete_internal()' with an argument depending on
- INVOKING_KEY.
-
- - Function: int rl_possible_completions (int count, int invoking_key)
- List the possible completions. See description of `rl_complete
- ()'. This calls `rl_complete_internal()' with an argument of `?'.
-
- - Function: int rl_insert_completions (int count, int invoking_key)
- Insert the list of possible completions into the line, deleting the
- partially-completed word. See description of `rl_complete()'.
- This calls `rl_complete_internal()' with an argument of `*'.
-
- - Function: int rl_completion_mode (rl_command_func_t *cfunc)
- Returns the apppriate value to pass to `rl_complete_internal()'
- depending on whether CFUNC was called twice in succession and the
- value of the `show-all-if-ambiguous' variable.
- Application-specific completion functions may use this function to
- present the same interface as `rl_complete()'.
-
- - Function: char ** rl_completion_matches (const char *text,
- rl_compentry_func_t *entry_func)
- Returns an array of strings which is a list of completions for
- TEXT. If there are no completions, returns `NULL'. The first
- entry in the returned array is the substitution for TEXT. The
- remaining entries are the possible completions. The array is
- terminated with a `NULL' pointer.
-
- ENTRY_FUNC is a function of two args, and returns a `char *'. The
- first argument is TEXT. The second is a state argument; it is
- zero on the first call, and non-zero on subsequent calls.
- ENTRY_FUNC returns a `NULL' pointer to the caller when there are
- no more matches.
-
- - Function: char * rl_filename_completion_function (const char *text,
- int state)
- A generator function for filename completion in the general case.
- TEXT is a partial filename. The Bash source is a useful reference
- for writing custom completion functions (the Bash completion
- functions call this and other Readline functions).
-
- - Function: char * rl_username_completion_function (const char *text,
- int state)
- A completion generator for usernames. TEXT contains a partial
- username preceded by a random character (usually `~'). As with all
- completion generators, STATE is zero on the first call and non-zero
- for subsequent calls.
-
-
-File: readline.info, Node: Completion Variables, Next: A Short Completion Example, Prev: Completion Functions, Up: Custom Completers
-
-Completion Variables
---------------------
-
- - Variable: rl_compentry_func_t * rl_completion_entry_function
- A pointer to the generator function for `rl_completion_matches()'.
- `NULL' means to use `rl_filename_completion_function()', the
- default filename completer.
-
- - Variable: rl_completion_func_t * rl_attempted_completion_function
- A pointer to an alternative function to create matches. The
- function is called with TEXT, START, and END. START and END are
- indices in `rl_line_buffer' defining the boundaries of TEXT, which
- is a character string. If this function exists and returns
- `NULL', or if this variable is set to `NULL', then `rl_complete()'
- will call the value of `rl_completion_entry_function' to generate
- matches, otherwise the array of strings returned will be used. If
- this function sets the `rl_attempted_completion_over' variable to
- a non-zero value, Readline will not perform its default completion
- even if this function returns no matches.
-
- - Variable: rl_quote_func_t * rl_filename_quoting_function
- A pointer to a function that will quote a filename in an
- application-specific fashion. This is called if filename
- completion is being attempted and one of the characters in
- `rl_filename_quote_characters' appears in a completed filename.
- The function is called with TEXT, MATCH_TYPE, and QUOTE_POINTER.
- The TEXT is the filename to be quoted. The MATCH_TYPE is either
- `SINGLE_MATCH', if there is only one completion match, or
- `MULT_MATCH'. Some functions use this to decide whether or not to
- insert a closing quote character. The QUOTE_POINTER is a pointer
- to any opening quote character the user typed. Some functions
- choose to reset this character.
-
- - Variable: rl_dequote_func_t * rl_filename_dequoting_function
- A pointer to a function that will remove application-specific
- quoting characters from a filename before completion is attempted,
- so those characters do not interfere with matching the text
- against names in the filesystem. It is called with TEXT, the text
- of the word to be dequoted, and QUOTE_CHAR, which is the quoting
- character that delimits the filename (usually `'' or `"'). If
- QUOTE_CHAR is zero, the filename was not in an embedded string.
-
- - Variable: rl_linebuf_func_t * rl_char_is_quoted_p
- A pointer to a function to call that determines whether or not a
- specific character in the line buffer is quoted, according to
- whatever quoting mechanism the program calling Readline uses. The
- function is called with two arguments: TEXT, the text of the line,
- and INDEX, the index of the character in the line. It is used to
- decide whether a character found in
- `rl_completer_word_break_characters' should be used to break words
- for the completer.
-
- - Variable: rl_compignore_func_t * rl_ignore_some_completions_function
- This function, if defined, is called by the completer when real
- filename completion is done, after all the matching names have
- been generated. It is passed a `NULL' terminated array of matches.
- The first element (`matches[0]') is the maximal substring common
- to all matches. This function can re-arrange the list of matches
- as required, but each element deleted from the array must be freed.
-
- - Variable: rl_icppfunc_t * rl_directory_completion_hook
- This function, if defined, is allowed to modify the directory
- portion of filenames Readline completes. It is called with the
- address of a string (the current directory name) as an argument,
- and may modify that string. If the string is replaced with a new
- string, the old value should be freed. Any modified directory
- name should have a trailing slash. The modified value will be
- displayed as part of the completion, replacing the directory
- portion of the pathname the user typed. It returns an integer
- that should be non-zero if the function modifies its directory
- argument. It could be used to expand symbolic links or shell
- variables in pathnames.
-
- - Variable: rl_compdisp_func_t * rl_completion_display_matches_hook
- If non-zero, then this is the address of a function to call when
- completing a word would normally display the list of possible
- matches. This function is called in lieu of Readline displaying
- the list. It takes three arguments: (`char **'MATCHES, `int'
- NUM_MATCHES, `int' MAX_LENGTH) where MATCHES is the array of
- matching strings, NUM_MATCHES is the number of strings in that
- array, and MAX_LENGTH is the length of the longest string in that
- array. Readline provides a convenience function,
- `rl_display_match_list', that takes care of doing the display to
- Readline's output stream. That function may be called from this
- hook.
-
- - Variable: const char * rl_basic_word_break_characters
- The basic list of characters that signal a break between words for
- the completer routine. The default value of this variable is the
- characters which break words for completion in Bash: `"
- \t\n\"\\'`@$><=;|&{("'.
-
- - Variable: const char * rl_basic_quote_characters
- A list of quote characters which can cause a word break.
-
- - Variable: const char * rl_completer_word_break_characters
- The list of characters that signal a break between words for
- `rl_complete_internal()'. The default list is the value of
- `rl_basic_word_break_characters'.
-
- - Variable: const char * rl_completer_quote_characters
- A list of characters which can be used to quote a substring of the
- line. Completion occurs on the entire substring, and within the
- substring `rl_completer_word_break_characters' are treated as any
- other character, unless they also appear within this list.
-
- - Variable: const char * rl_filename_quote_characters
- A list of characters that cause a filename to be quoted by the
- completer when they appear in a completed filename. The default
- is the null string.
-
- - Variable: const char * rl_special_prefixes
- The list of characters that are word break characters, but should
- be left in TEXT when it is passed to the completion function.
- Programs can use this to help determine what kind of completing to
- do. For instance, Bash sets this variable to "$@" so that it can
- complete shell variables and hostnames.
-
- - Variable: int rl_completion_query_items
- Up to this many items will be displayed in response to a
- possible-completions call. After that, we ask the user if she is
- sure she wants to see them all. The default value is 100.
-
- - Variable: int rl_completion_append_character
- When a single completion alternative matches at the end of the
- command line, this character is appended to the inserted
- completion text. The default is a space character (` '). Setting
- this to the null character (`\0') prevents anything being appended
- automatically. This can be changed in custom completion functions
- to provide the "most sensible word separator character" according
- to an application-specific command line syntax specification.
-
- - Variable: int rl_completion_suppress_append
- If non-zero, RL_COMPLETION_APPEND_CHARACTER is not appended to
- matches at the end of the command line, as described above. It is
- set to 0 before any application-specific completion function is
- called.
-
- - Variable: int rl_completion_mark_symlink_dirs
- If non-zero, a slash will be appended to completed filenames that
- are symbolic links to directory names, subject to the value of the
- user-settable MARK-DIRECTORIES variable. This variable exists so
- that application completion functions can override the user's
- global preference (set via the MARK-SYMLINKED-DIRECTORIES Readline
- variable) if appropriate. This variable is set to the user's
- preference before any application completion function is called,
- so unless that function modifies the value, the user's preferences
- are honored.
-
- - Variable: int rl_ignore_completion_duplicates
- If non-zero, then duplicates in the matches are removed. The
- default is 1.
-
- - Variable: int rl_filename_completion_desired
- Non-zero means that the results of the matches are to be treated as
- filenames. This is _always_ zero on entry, and can only be changed
- within a completion entry generator function. If it is set to a
- non-zero value, directory names have a slash appended and Readline
- attempts to quote completed filenames if they contain any
- characters in `rl_filename_quote_characters' and
- `rl_filename_quoting_desired' is set to a non-zero value.
-
- - Variable: int rl_filename_quoting_desired
- Non-zero means that the results of the matches are to be quoted
- using double quotes (or an application-specific quoting mechanism)
- if the completed filename contains any characters in
- `rl_filename_quote_chars'. This is _always_ non-zero on entry,
- and can only be changed within a completion entry generator
- function. The quoting is effected via a call to the function
- pointed to by `rl_filename_quoting_function'.
-
- - Variable: int rl_attempted_completion_over
- If an application-specific completion function assigned to
- `rl_attempted_completion_function' sets this variable to a non-zero
- value, Readline will not perform its default filename completion
- even if the application's completion function returns no matches.
- It should be set only by an application's completion function.
-
- - Variable: int rl_completion_type
- Set to a character describing the type of completion Readline is
- currently attempting; see the description of
- `rl_complete_internal()' (*note Completion Functions::) for the
- list of characters.
-
- - Variable: int rl_inhibit_completion
- If this variable is non-zero, completion is inhibited. The
- completion character will be inserted as any other bound to
- `self-insert'.
-
-
-File: readline.info, Node: A Short Completion Example, Prev: Completion Variables, Up: Custom Completers
-
-A Short Completion Example
---------------------------
-
- Here is a small application demonstrating the use of the GNU Readline
-library. It is called `fileman', and the source code resides in
-`examples/fileman.c'. This sample application provides completion of
-command names, line editing features, and access to the history list.
-
- /* fileman.c -- A tiny application which demonstrates how to use the
- GNU Readline library. This application interactively allows users
- to manipulate files and their modes. */
-
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/file.h>
- #include <sys/stat.h>
- #include <sys/errno.h>
-
- #include <readline/readline.h>
- #include <readline/history.h>
-
- extern char *xmalloc ();
-
- /* The names of functions that actually do the manipulation. */
- int com_list __P((char *));
- int com_view __P((char *));
- int com_rename __P((char *));
- int com_stat __P((char *));
- int com_pwd __P((char *));
- int com_delete __P((char *));
- int com_help __P((char *));
- int com_cd __P((char *));
- int com_quit __P((char *));
-
- /* A structure which contains information on the commands this program
- can understand. */
-
- typedef struct {
- char *name; /* User printable name of the function. */
- rl_icpfunc_t *func; /* Function to call to do the job. */
- char *doc; /* Documentation for this function. */
- } COMMAND;
-
- COMMAND commands[] = {
- { "cd", com_cd, "Change to directory DIR" },
- { "delete", com_delete, "Delete FILE" },
- { "help", com_help, "Display this text" },
- { "?", com_help, "Synonym for `help'" },
- { "list", com_list, "List files in DIR" },
- { "ls", com_list, "Synonym for `list'" },
- { "pwd", com_pwd, "Print the current working directory" },
- { "quit", com_quit, "Quit using Fileman" },
- { "rename", com_rename, "Rename FILE to NEWNAME" },
- { "stat", com_stat, "Print out statistics on FILE" },
- { "view", com_view, "View the contents of FILE" },
- { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
- };
-
- /* Forward declarations. */
- char *stripwhite ();
- COMMAND *find_command ();
-
- /* The name of this program, as taken from argv[0]. */
- char *progname;
-
- /* When non-zero, this means the user is done using this program. */
- int done;
-
- char *
- dupstr (s)
- int s;
- {
- char *r;
-
- r = xmalloc (strlen (s) + 1);
- strcpy (r, s);
- return (r);
- }
-
- main (argc, argv)
- int argc;
- char **argv;
- {
- char *line, *s;
-
- progname = argv[0];
-
- initialize_readline (); /* Bind our completer. */
-
- /* Loop reading and executing lines until the user quits. */
- for ( ; done == 0; )
- {
- line = readline ("FileMan: ");
-
- if (!line)
- break;
-
- /* Remove leading and trailing whitespace from the line.
- Then, if there is anything left, add it to the history list
- and execute it. */
- s = stripwhite (line);
-
- if (*s)
- {
- add_history (s);
- execute_line (s);
- }
-
- free (line);
- }
- exit (0);
- }
-
- /* Execute a command line. */
- int
- execute_line (line)
- char *line;
- {
- register int i;
- COMMAND *command;
- char *word;
-
- /* Isolate the command word. */
- i = 0;
- while (line[i] && whitespace (line[i]))
- i++;
- word = line + i;
-
- while (line[i] && !whitespace (line[i]))
- i++;
-
- if (line[i])
- line[i++] = '\0';
-
- command = find_command (word);
-
- if (!command)
- {
- fprintf (stderr, "%s: No such command for FileMan.\n", word);
- return (-1);
- }
-
- /* Get argument to command, if any. */
- while (whitespace (line[i]))
- i++;
-
- word = line + i;
-
- /* Call the function. */
- return ((*(command->func)) (word));
- }
-
- /* Look up NAME as the name of a command, and return a pointer to that
- command. Return a NULL pointer if NAME isn't a command name. */
- COMMAND *
- find_command (name)
- char *name;
- {
- register int i;
-
- for (i = 0; commands[i].name; i++)
- if (strcmp (name, commands[i].name) == 0)
- return (&commands[i]);
-
- return ((COMMAND *)NULL);
- }
-
- /* Strip whitespace from the start and end of STRING. Return a pointer
- into STRING. */
- char *
- stripwhite (string)
- char *string;
- {
- register char *s, *t;
-
- for (s = string; whitespace (*s); s++)
- ;
-
- if (*s == 0)
- return (s);
-
- t = s + strlen (s) - 1;
- while (t > s && whitespace (*t))
- t--;
- *++t = '\0';
-
- return s;
- }
-
- /* **************************************************************** */
- /* */
- /* Interface to Readline Completion */
- /* */
- /* **************************************************************** */
-
- char *command_generator __P((const char *, int));
- char **fileman_completion __P((const char *, int, int));
-
- /* Tell the GNU Readline library how to complete. We want to try to
- complete on command names if this is the first word in the line, or
- on filenames if not. */
- initialize_readline ()
- {
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "FileMan";
-
- /* Tell the completer that we want a crack first. */
- rl_attempted_completion_function = fileman_completion;
- }
-
- /* Attempt to complete on the contents of TEXT. START and END
- bound the region of rl_line_buffer that contains the word to
- complete. TEXT is the word to complete. We can use the entire
- contents of rl_line_buffer in case we want to do some simple
- parsing. Returnthe array of matches, or NULL if there aren't any. */
- char **
- fileman_completion (text, start, end)
- const char *text;
- int start, end;
- {
- char **matches;
-
- matches = (char **)NULL;
-
- /* If this word is at the start of the line, then it is a command
- to complete. Otherwise it is the name of a file in the current
- directory. */
- if (start == 0)
- matches = rl_completion_matches (text, command_generator);
-
- return (matches);
- }
-
- /* Generator function for command completion. STATE lets us
- know whether to start from scratch; without any state
- (i.e. STATE == 0), then we start at the top of the list. */
- char *
- command_generator (text, state)
- const char *text;
- int state;
- {
- static int list_index, len;
- char *name;
-
- /* If this is a new word to complete, initialize now. This
- includes saving the length of TEXT for efficiency, and
- initializing the index variable to 0. */
- if (!state)
- {
- list_index = 0;
- len = strlen (text);
- }
-
- /* Return the next name which partially matches from the
- command list. */
- while (name = commands[list_index].name)
- {
- list_index++;
-
- if (strncmp (name, text, len) == 0)
- return (dupstr(name));
- }
-
- /* If no names matched, then return NULL. */
- return ((char *)NULL);
- }
-
- /* **************************************************************** */
- /* */
- /* FileMan Commands */
- /* */
- /* **************************************************************** */
-
- /* String to pass to system (). This is for the LIST, VIEW and RENAME
- commands. */
- static char syscom[1024];
-
- /* List the file(s) named in arg. */
- com_list (arg)
- char *arg;
- {
- if (!arg)
- arg = "";
-
- sprintf (syscom, "ls -FClg %s", arg);
- return (system (syscom));
- }
-
- com_view (arg)
- char *arg;
- {
- if (!valid_argument ("view", arg))
- return 1;
-
- sprintf (syscom, "more %s", arg);
- return (system (syscom));
- }
-
- com_rename (arg)
- char *arg;
- {
- too_dangerous ("rename");
- return (1);
- }
-
- com_stat (arg)
- char *arg;
- {
- struct stat finfo;
-
- if (!valid_argument ("stat", arg))
- return (1);
-
- if (stat (arg, &finfo) == -1)
- {
- perror (arg);
- return (1);
- }
-
- printf ("Statistics for `%s':\n", arg);
-
- printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
- finfo.st_nlink,
- (finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
- (finfo.st_size == 1) ? "" : "s");
- printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
- printf (" Last access at: %s", ctime (&finfo.st_atime));
- printf (" Last modified at: %s", ctime (&finfo.st_mtime));
- return (0);
- }
-
- com_delete (arg)
- char *arg;
- {
- too_dangerous ("delete");
- return (1);
- }
-
- /* Print out help for ARG, or for all of the commands if ARG is
- not present. */
- com_help (arg)
- char *arg;
- {
- register int i;
- int printed = 0;
-
- for (i = 0; commands[i].name; i++)
- {
- if (!*arg || (strcmp (arg, commands[i].name) == 0))
- {
- printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
- printed++;
- }
- }
-
- if (!printed)
- {
- printf ("No commands match `%s'. Possibilties are:\n", arg);
-
- for (i = 0; commands[i].name; i++)
- {
- /* Print in six columns. */
- if (printed == 6)
- {
- printed = 0;
- printf ("\n");
- }
-
- printf ("%s\t", commands[i].name);
- printed++;
- }
-
- if (printed)
- printf ("\n");
- }
- return (0);
- }
-
- /* Change to the directory ARG. */
- com_cd (arg)
- char *arg;
- {
- if (chdir (arg) == -1)
- {
- perror (arg);
- return 1;
- }
-
- com_pwd ("");
- return (0);
- }
-
- /* Print out the current working directory. */
- com_pwd (ignore)
- char *ignore;
- {
- char dir[1024], *s;
-
- s = getcwd (dir, sizeof(dir) - 1);
- if (s == 0)
- {
- printf ("Error getting pwd: %s\n", dir);
- return 1;
- }
-
- printf ("Current directory is %s\n", dir);
- return 0;
- }
-
- /* The user wishes to quit using this program. Just set DONE
- non-zero. */
- com_quit (arg)
- char *arg;
- {
- done = 1;
- return (0);
- }
-
- /* Function which tells you that you can't do this. */
- too_dangerous (caller)
- char *caller;
- {
- fprintf (stderr,
- "%s: Too dangerous for me to distribute.\n"
- caller);
- fprintf (stderr, "Write it yourself.\n");
- }
-
- /* Return non-zero if ARG is a valid argument for CALLER,
- else print an error message and return zero. */
- int
- valid_argument (caller, arg)
- char *caller, *arg;
- {
- if (!arg || !*arg)
- {
- fprintf (stderr, "%s: Argument required.\n", caller);
- return (0);
- }
-
- return (1);
- }
-
-
-File: readline.info, Node: Concept Index, Next: Function and Variable Index, Prev: Programming with GNU Readline, Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-* command editing: Readline Bare Essentials.
-* editing command lines: Readline Bare Essentials.
-* initialization file, readline: Readline Init File.
-* interaction, readline: Readline Interaction.
-* kill ring: Readline Killing Commands.
-* killing text: Readline Killing Commands.
-* notation, readline: Readline Bare Essentials.
-* readline, function: Basic Behavior.
-* variables, readline: Readline Init File Syntax.
-* yanking text: Readline Killing Commands.
-
-
-File: readline.info, Node: Function and Variable Index, Prev: Concept Index, Up: Top
-
-Function and Variable Index
-***************************
-
-* Menu:
-
-* _rl_digit_p: Utility Functions.
-* _rl_digit_value: Utility Functions.
-* _rl_lowercase_p: Utility Functions.
-* _rl_to_lower: Utility Functions.
-* _rl_to_upper: Utility Functions.
-* _rl_uppercase_p: Utility Functions.
-* abort (C-g): Miscellaneous Commands.
-* accept-line (Newline or Return): Commands For History.
-* backward-char (C-b): Commands For Moving.
-* backward-delete-char (Rubout): Commands For Text.
-* backward-kill-line (C-x Rubout): Commands For Killing.
-* backward-kill-word (M-<DEL>): Commands For Killing.
-* backward-word (M-b): Commands For Moving.
-* beginning-of-history (M-<): Commands For History.
-* beginning-of-line (C-a): Commands For Moving.
-* bell-style: Readline Init File Syntax.
-* call-last-kbd-macro (C-x e): Keyboard Macros.
-* capitalize-word (M-c): Commands For Text.
-* character-search (C-]): Miscellaneous Commands.
-* character-search-backward (M-C-]): Miscellaneous Commands.
-* clear-screen (C-l): Commands For Moving.
-* comment-begin: Readline Init File Syntax.
-* complete (<TAB>): Commands For Completion.
-* completion-query-items: Readline Init File Syntax.
-* convert-meta: Readline Init File Syntax.
-* copy-backward-word (): Commands For Killing.
-* copy-forward-word (): Commands For Killing.
-* copy-region-as-kill (): Commands For Killing.
-* delete-char (C-d): Commands For Text.
-* delete-char-or-list (): Commands For Completion.
-* delete-horizontal-space (): Commands For Killing.
-* digit-argument (M-0, M-1, ... M--): Numeric Arguments.
-* disable-completion: Readline Init File Syntax.
-* do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands.
-* downcase-word (M-l): Commands For Text.
-* dump-functions (): Miscellaneous Commands.
-* dump-macros (): Miscellaneous Commands.
-* dump-variables (): Miscellaneous Commands.
-* editing-mode: Readline Init File Syntax.
-* enable-keypad: Readline Init File Syntax.
-* end-kbd-macro (C-x )): Keyboard Macros.
-* end-of-history (M->): Commands For History.
-* end-of-line (C-e): Commands For Moving.
-* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
-* expand-tilde: Readline Init File Syntax.
-* forward-backward-delete-char (): Commands For Text.
-* forward-char (C-f): Commands For Moving.
-* forward-search-history (C-s): Commands For History.
-* forward-word (M-f): Commands For Moving.
-* history-preserve-point: Readline Init File Syntax.
-* history-search-backward (): Commands For History.
-* history-search-forward (): Commands For History.
-* horizontal-scroll-mode: Readline Init File Syntax.
-* input-meta: Readline Init File Syntax.
-* insert-comment (M-#): Miscellaneous Commands.
-* insert-completions (M-*): Commands For Completion.
-* isearch-terminators: Readline Init File Syntax.
-* keymap: Readline Init File Syntax.
-* kill-line (C-k): Commands For Killing.
-* kill-region (): Commands For Killing.
-* kill-whole-line (): Commands For Killing.
-* kill-word (M-d): Commands For Killing.
-* mark-modified-lines: Readline Init File Syntax.
-* mark-symlinked-directories: Readline Init File Syntax.
-* match-hidden-files: Readline Init File Syntax.
-* menu-complete (): Commands For Completion.
-* meta-flag: Readline Init File Syntax.
-* next-history (C-n): Commands For History.
-* non-incremental-forward-search-history (M-n): Commands For History.
-* non-incremental-reverse-search-history (M-p): Commands For History.
-* output-meta: Readline Init File Syntax.
-* overwrite-mode (): Commands For Text.
-* page-completions: Readline Init File Syntax.
-* possible-completions (M-?): Commands For Completion.
-* prefix-meta (<ESC>): Miscellaneous Commands.
-* previous-history (C-p): Commands For History.
-* quoted-insert (C-q or C-v): Commands For Text.
-* re-read-init-file (C-x C-r): Miscellaneous Commands.
-* readline: Basic Behavior.
-* redraw-current-line (): Commands For Moving.
-* reverse-search-history (C-r): Commands For History.
-* revert-line (M-r): Miscellaneous Commands.
-* rl_add_defun: Function Naming.
-* rl_add_funmap_entry: Associating Function Names and Bindings.
-* rl_add_undo: Allowing Undoing.
-* rl_alphabetic: Utility Functions.
-* rl_already_prompted: Readline Variables.
-* rl_attempted_completion_function: Completion Variables.
-* rl_attempted_completion_over: Completion Variables.
-* rl_basic_quote_characters: Completion Variables.
-* rl_basic_word_break_characters: Completion Variables.
-* rl_begin_undo_group: Allowing Undoing.
-* rl_bind_key: Binding Keys.
-* rl_bind_key_in_map: Binding Keys.
-* rl_binding_keymap: Readline Variables.
-* rl_callback_handler_install: Alternate Interface.
-* rl_callback_handler_remove: Alternate Interface.
-* rl_callback_read_char: Alternate Interface.
-* rl_catch_signals: Readline Signal Handling.
-* rl_catch_sigwinch: Readline Signal Handling.
-* rl_char_is_quoted_p: Completion Variables.
-* rl_cleanup_after_signal: Readline Signal Handling.
-* rl_clear_message: Redisplay.
-* rl_clear_pending_input: Character Input.
-* rl_clear_signals: Readline Signal Handling.
-* rl_complete <1>: How Completing Works.
-* rl_complete: Completion Functions.
-* rl_complete_internal: Completion Functions.
-* rl_completer_quote_characters: Completion Variables.
-* rl_completer_word_break_characters: Completion Variables.
-* rl_completion_append_character: Completion Variables.
-* rl_completion_display_matches_hook: Completion Variables.
-* rl_completion_entry_function <1>: Completion Variables.
-* rl_completion_entry_function: How Completing Works.
-* rl_completion_mark_symlink_dirs: Completion Variables.
-* rl_completion_matches: Completion Functions.
-* rl_completion_mode: Completion Functions.
-* rl_completion_query_items: Completion Variables.
-* rl_completion_suppress_append: Completion Variables.
-* rl_completion_type: Completion Variables.
-* rl_copy_keymap: Keymaps.
-* rl_copy_text: Modifying Text.
-* rl_crlf: Redisplay.
-* rl_delete_text: Modifying Text.
-* rl_deprep_term_function: Readline Variables.
-* rl_deprep_terminal: Terminal Management.
-* rl_ding: Utility Functions.
-* rl_directory_completion_hook: Completion Variables.
-* rl_discard_keymap: Keymaps.
-* rl_dispatching: Readline Variables.
-* rl_display_match_list: Utility Functions.
-* rl_do_undo: Allowing Undoing.
-* rl_done: Readline Variables.
-* rl_editing_mode: Readline Variables.
-* rl_end: Readline Variables.
-* rl_end_undo_group: Allowing Undoing.
-* rl_erase_empty_line: Readline Variables.
-* rl_event_hook: Readline Variables.
-* rl_execute_next: Character Input.
-* rl_executing_keymap: Readline Variables.
-* rl_executing_macro: Readline Variables.
-* rl_expand_prompt: Redisplay.
-* rl_explicit_arg: Readline Variables.
-* rl_extend_line_buffer: Utility Functions.
-* rl_filename_completion_desired: Completion Variables.
-* rl_filename_completion_function: Completion Functions.
-* rl_filename_dequoting_function: Completion Variables.
-* rl_filename_quote_characters: Completion Variables.
-* rl_filename_quoting_desired: Completion Variables.
-* rl_filename_quoting_function: Completion Variables.
-* rl_forced_update_display: Redisplay.
-* rl_free_line_state: Readline Signal Handling.
-* rl_free_undo_list: Allowing Undoing.
-* rl_function_dumper: Associating Function Names and Bindings.
-* rl_function_of_keyseq: Associating Function Names and Bindings.
-* rl_funmap_names: Associating Function Names and Bindings.
-* rl_generic_bind: Binding Keys.
-* rl_get_keymap: Keymaps.
-* rl_get_keymap_by_name: Keymaps.
-* rl_get_keymap_name: Keymaps.
-* rl_get_screen_size: Readline Signal Handling.
-* rl_get_termcap: Miscellaneous Functions.
-* rl_getc: Character Input.
-* rl_getc_function: Readline Variables.
-* rl_gnu_readline_p: Readline Variables.
-* rl_ignore_completion_duplicates: Completion Variables.
-* rl_ignore_some_completions_function: Completion Variables.
-* rl_inhibit_completion: Completion Variables.
-* rl_initialize: Utility Functions.
-* rl_insert_completions: Completion Functions.
-* rl_insert_text: Modifying Text.
-* rl_instream: Readline Variables.
-* rl_invoking_keyseqs: Associating Function Names and Bindings.
-* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings.
-* rl_kill_text: Modifying Text.
-* rl_last_func: Readline Variables.
-* rl_library_version: Readline Variables.
-* rl_line_buffer: Readline Variables.
-* rl_list_funmap_names: Associating Function Names and Bindings.
-* rl_macro_bind: Miscellaneous Functions.
-* rl_macro_dumper: Miscellaneous Functions.
-* rl_make_bare_keymap: Keymaps.
-* rl_make_keymap: Keymaps.
-* rl_mark: Readline Variables.
-* rl_message: Redisplay.
-* rl_modifying: Allowing Undoing.
-* rl_named_function: Associating Function Names and Bindings.
-* rl_num_chars_to_read: Readline Variables.
-* rl_numeric_arg: Readline Variables.
-* rl_on_new_line: Redisplay.
-* rl_on_new_line_with_prompt: Redisplay.
-* rl_outstream: Readline Variables.
-* rl_parse_and_bind: Binding Keys.
-* rl_pending_input: Readline Variables.
-* rl_point: Readline Variables.
-* rl_possible_completions: Completion Functions.
-* rl_pre_input_hook: Readline Variables.
-* rl_prep_term_function: Readline Variables.
-* rl_prep_terminal: Terminal Management.
-* rl_prompt: Readline Variables.
-* rl_push_macro_input: Modifying Text.
-* rl_read_init_file: Binding Keys.
-* rl_read_key: Character Input.
-* rl_readline_name: Readline Variables.
-* rl_readline_state: Readline Variables.
-* rl_readline_version: Readline Variables.
-* rl_redisplay: Redisplay.
-* rl_redisplay_function: Readline Variables.
-* rl_replace_line: Utility Functions.
-* rl_reset_after_signal: Readline Signal Handling.
-* rl_reset_line_state: Redisplay.
-* rl_reset_terminal: Terminal Management.
-* rl_resize_terminal: Readline Signal Handling.
-* rl_restore_prompt: Redisplay.
-* rl_save_prompt: Redisplay.
-* rl_set_key: Binding Keys.
-* rl_set_keyboard_input_timeout: Character Input.
-* rl_set_keymap: Keymaps.
-* rl_set_paren_blink_timeout: Miscellaneous Functions.
-* rl_set_prompt: Redisplay.
-* rl_set_screen_size: Readline Signal Handling.
-* rl_set_signals: Readline Signal Handling.
-* rl_show_char: Redisplay.
-* rl_special_prefixes: Completion Variables.
-* rl_startup_hook: Readline Variables.
-* rl_stuff_char: Character Input.
-* rl_terminal_name: Readline Variables.
-* rl_tty_set_default_bindings: Terminal Management.
-* rl_unbind_command_in_map: Binding Keys.
-* rl_unbind_function_in_map: Binding Keys.
-* rl_unbind_key: Binding Keys.
-* rl_unbind_key_in_map: Binding Keys.
-* rl_username_completion_function: Completion Functions.
-* rl_variable_bind: Miscellaneous Functions.
-* rl_variable_dumper: Miscellaneous Functions.
-* self-insert (a, b, A, 1, !, ...): Commands For Text.
-* set-mark (C-@): Miscellaneous Commands.
-* show-all-if-ambiguous: Readline Init File Syntax.
-* start-kbd-macro (C-x (): Keyboard Macros.
-* transpose-chars (C-t): Commands For Text.
-* transpose-words (M-t): Commands For Text.
-* undo (C-_ or C-x C-u): Miscellaneous Commands.
-* universal-argument (): Numeric Arguments.
-* unix-line-discard (C-u): Commands For Killing.
-* unix-word-rubout (C-w): Commands For Killing.
-* upcase-word (M-u): Commands For Text.
-* visible-stats: Readline Init File Syntax.
-* yank (C-y): Commands For Killing.
-* yank-last-arg (M-. or M-_): Commands For History.
-* yank-nth-arg (M-C-y): Commands For History.
-* yank-pop (M-y): Commands For Killing.
-
-
-
-Tag Table:
-Node: Top1164
-Node: Command Line Editing1763
-Node: Introduction and Notation2414
-Node: Readline Interaction4032
-Node: Readline Bare Essentials5219
-Node: Readline Movement Commands7000
-Node: Readline Killing Commands7957
-Node: Readline Arguments9866
-Node: Searching10902
-Node: Readline Init File13045
-Node: Readline Init File Syntax14106
-Node: Conditional Init Constructs24989
-Node: Sample Init File27514
-Node: Bindable Readline Commands30698
-Node: Commands For Moving31748
-Node: Commands For History32597
-Node: Commands For Text35455
-Node: Commands For Killing38169
-Node: Numeric Arguments40120
-Node: Commands For Completion41248
-Node: Keyboard Macros42780
-Node: Miscellaneous Commands43339
-Node: Readline vi Mode46688
-Node: Programming with GNU Readline48506
-Node: Basic Behavior49474
-Node: Custom Functions52904
-Node: Readline Typedefs54382
-Node: Function Writing56011
-Node: Readline Variables57219
-Node: Readline Convenience Functions66642
-Node: Function Naming67624
-Node: Keymaps68876
-Node: Binding Keys70632
-Node: Associating Function Names and Bindings73558
-Node: Allowing Undoing75803
-Node: Redisplay78338
-Node: Modifying Text81409
-Node: Character Input82638
-Node: Terminal Management84418
-Node: Utility Functions85593
-Node: Miscellaneous Functions87932
-Node: Alternate Interface89996
-Node: A Readline Example92141
-Node: Readline Signal Handling94078
-Node: Custom Completers99681
-Node: How Completing Works100396
-Node: Completion Functions103394
-Node: Completion Variables106778
-Node: A Short Completion Example117049
-Node: Concept Index129602
-Node: Function and Variable Index130424
-
-End Tag Table
diff --git a/readline-4.3.orig/doc/readline.ps b/readline-4.3.orig/doc/readline.ps
deleted file mode 100644
index 21ca2ca..0000000
--- a/readline-4.3.orig/doc/readline.ps
+++ /dev/null
@@ -1,5200 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: readline.dvi
-%%Pages: 66
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o readline.ps readline.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (readline.dvi)
-@start
-%DVIPSBitmapFont: Fa cmbxti10 14.4 1
-/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmsl9 9 1
-/Fb 1 121 df<383FC7E038078380EB0200EA038413C8EA01D8EA00F05B7F1201133812
-02487EEA081E123838FC3FC013107F8F14>120 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmsltt10 9 4
-/Fc 4 78 df<EAFFFC13FE13FC0F037C8C14>45 D<EA01E0EA07F8EA0E3CEA1C1CEA180E
-12381270A312E0A4131CA31338A21370EA70E01271EA3F80EA1F000F177C9614>48
-D<134013E0EA01C01203120F123D12111201EA0380A6EA0700A6120EEAFFE0A20B177B96
-14>I<381F81F813C1380FC3E0EA0EC213C6A213CE13CC381CCDC013DD13D9A213F1A238
-38E3801303A53870070038FC0FC0A215177F9614>77 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmtt9 9 47
-/Fd 47 127 df<126012F0AD12601200A4126012F0A212600417789614>33
-D<EA071CA5B51280A27E380E3800A7387FFF80B5FCA2381C7000A511177F9614>35
-D<EA01801203EA06005A121C121812385AA35AA91270A37E1218121C120C7EEA03801201
-091D799914>40 D<128012C01260123012381218121C120EA31207A9120EA3121C121812
-381230126012C01280081D7C9914>I<EA0380A3EA638CEAF39EEA7FFCEA3FF8EA0FE0A2
-EA3FF8EA7FFCEAF39EEA638CEA0380A30F107E9214>I<127012F812FCA2127C120C1218
-123012E012C0060A798414>44 D<EAFFFEA30F037E8C14>I<127012F8A3127005057984
-14>I<1203A25A5A123F12F712471207AEEA7FF0A20C177C9614>49
-D<1306131E133E13F8EA01F0EA03C0EA0F80EA1F00123C12F85A7E123C121FEA0F80EA03
-C0EA01F0EA00F8133E131E13060F157E9514>60 D<12C012F07E123E7EEA0780EA03E0EA
-01F0EA0078133E131E133E1378EA01F0EA03E0EA0780EA1F00123E12F85A12C00F157E95
-14>62 D<EA1FE0EA3FF8EA701CEAE00EA21240EA003C137013E0EA01C0EA0380A41300C7
-FCA41203EA0780A2EA03000F177E9614>I<EA01E0EA07F0EA0E38EA181CEA38FC1271EA
-731E1277EAEE0EA7EA771CEA7318EA71F0EA38E0EA1806EA0E1EEA07F8EA01F00F177E96
-14>I<EA01C0487EA21360A2EA0770A4EA0630EA0E38A4487EEA1FFCA2EA1C1CA2487EA2
-38FE3F80A211177F9614>I<3801F180EA07FFEA0E1FEA1C071238EA7003A348C7FCA738
-700380A338380700121CEA0E0EEA07FCEA01F011177F9614>67 D<38FC1F80A2007C1300
-EA7637A4EA7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>77
-D<38FE3F80A2383E0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA21117
-7F9614>I<EAFFE013F8EA383C131C7FA45B133CEA3FF85BEA38387FA51480EB1DC0A238
-FE0F80EB070012177F9614>82 D<EAFFE0A21200B3A712FFA20B1D7F9914>93
-D<EAFFFEA30F037E7E14>95 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C
-1C127012E0A3EA707C383FFF80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA
-1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<
-EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F0
-0F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301E
-EA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2
-EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA
-038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA
-383B38301800EA701CA3EA3018EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA70
-0F38E00380A438700700EA3C1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1D
-FEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA212
-07ACEAFFF8A20D187C9714>I<136013F0A213601300A4EA1FF0A2EA0070B2EA40E0EAE0
-C0EA7F80EA3F000C207E9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0
-A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>I<EAFF80A21203B3EAFFFEA20F
-177E9614>I<EAFB8EEAFFDF383CF380A2EA38E3AA38FEFBE013791310808F14>I<EAFC78
-EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA701C
-A2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07
-EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218
-808F14>I<EA03E7EA0FF7EA1C1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07C7
-EA0007A6EB3FE0A213187F8F14>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8EA
-FFF0A211107F8F14>I<EA0FD8EA3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA00
-1CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA0E
-00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA03
-E71310808F14>I<38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA31110
-7F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811
-107F8F14>I<EA7E3FA2EA1E3CEA0E78EA07705B12036C5A12037FEA0770EA0E78133848
-7E38FE3F80A211107F8F14>I<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370
-A25B1201A25BA3485A12730077C7FC127E123C11187F8F14>I<EA3FFF5AEA700E131C13
-38EA007013E0EA01C0EA0380EA0700120EEA1C0712381270B5FCA210107F8F14>I<EA1C
-10EA3F38EAE7E0EA41C00D047D9614>126 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmti9 9 1
-/Fe 1 47 df<1230127812F0126005047C830C>46 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmr9 9 39
-/Ff 39 123 df<13FEEA038138060180EA0E03381C010090C7FCA5B51280EA1C03AE38FF
-8FF0141A809915>12 D<EBFF80EA0383EA0603120E121CA6B5FCEA1C03AE38FF9FF0141A
-809915>I<126012F0A212701210A31220A21240A2040B7D830B>44
-D<EAFFC0A20A0280880D>I<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA
-6006A2EA700EEA300CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA
-7FF80D187D9713>I<EA0F80EA1060EA2030EA4038EA803CEAC01C12E01240EA003C1338
-A21370136013C0EA018013001202EA040412081210EA3008EA3FF8127F12FF0E187E9713
->I<EA07E0EA1838EA201CEA601EEA700EEA201E1200131CA213381370EA07E0EA003813
-1C130E130FA212E0A212C0EA400EEA601CEA1838EA07E010187F9713>I<1318A2133813
-7813F813B8EA01381202A212041208121812101220124012C0B5FCEA0038A6EA03FF1018
-7F9713>I<EA3018EA3FF013E01380EA2000A5EA2FC0EA3060EA2030EA00381318131CA2
-124012E0A2EA8018EA40381330EA30E0EA0F800E187E9713>I<EA01F8EA0704EA0C06EA
-180E123013001270126012E0EAE3E0EAE418EAE80CEAF00EEAE0061307A31260A2EA7006
-EA300EEA180CEA0C38EA07E010187F9713>I<1240EA7FFF13FEA2EA4004EA80081310A2
-EA00201340A21380120113005AA25A1206A2120EA5120410197E9813>I<EA07E0EA1818
-EA300CEA20061260A21270EA780CEA3E18EA1F30EA07C0EA03E0EA0CF8EA307CEA601E13
-0FEAC0071303A3EA6002EA2004EA1818EA07E010187F9713>I<EA07E0EA1C30EA3018EA
-700CEA600EEAE006A21307A31260EA700FEA3017EA1827EA07C7EA00071306130E130C12
-701318EA6030EA3060EA0F8010187F9713>I<EA1FC0EA38707FEA101C1200A2EA03FCEA
-1E1C1238127012E01480A2133CEA705F381F8F0011107F8F13>97
-D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA1906
-EA10F8131A809915>I<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA
-07E00E107F8F11>I<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5A
-EA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE000
-A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA01F0EA0718EA0E38EA1C101300
-A6EAFFC0EA1C00AEEAFF800D1A80990C>I<EA0FCF3818718038303000EA7038A4EA3030
-6C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA381CEA07E011
-187F8F13>I<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218
-123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F00130C5B
-13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>107
-D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301
-AB39FF9FE7F81D107F8F20>I<EAFC7CEA1D87381E0380A2121CAB38FF9FF01410808F15>
-I<EA07E0EA1C38EA300CEA700EEA6006EAE007A6EA6006EA700EEA381CEA1C38EA07E010
-107F8F13>I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6EB01C01480381E0300EA1D
-06EA1CF890C7FCA6B47E1317808F15>I<EA03E1EA0C13EA180BEA300FEA700712E0A612
-70A26C5AEA1C37EA07C7EA0007A6EB3FE013177F8F14>I<EAFC78EA1D9CEA1E1C1308EA
-1C00ABEAFF800E10808F0F>I<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0EA1FE0
-EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1208A41218A21238EAFFC0
-EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E
-0B3803F3F01410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2
-EA01C0A36C5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16
-081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C
-1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC0
-12107F8F14>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C
-5AA248C7FCA212E112E212E4127811177F8F14>I<EAFFF8EAE07012C0EA80E0EA81C0A2
-EA0380EA0700A2EA0E04121CA2EA380812701338EAFFF80E107F8F11>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmss10 10.95 2
-/Fg 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0
-AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmbx10 12 27
-/Fh 27 123 df<90380FF83F90397FFDFFC03A01FC1FE3E03903F03FC7EA07E0D80FC013
-87ED83C091381F8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11
-D<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2ECFF80B6FCA2
-380FC01FB2397FF8FFF0A21C237FA220>I<EA07FE381FFF80383F07E06D7E130180121E
-1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA7C02EA7E0C391FF87F803807E03F1916
-7E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF03EEBC01F9038800F8015C0140715E0A7
-15C0A2140F15809038C01F00381E707E381C3FFC38180FE01B237EA220>I<EBFF800007
-13E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6127C127EA2003E13186C133038
-0FC0603807FFC0C6130015167E9519>I<49B4FCA2EB003FAB13FE3807FFBF380FC1FF48
-C67E003E7F127E127CA212FCA7127C127E123E6C5B380F81FF3907FF3FE0EA01FC1B237E
-A220>I<13FE3807FF80380F83C0381E01E0383E00F0127E007C13F8147812FCB512F8A2
-00FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0C6130015167E951A>I<EB1F80
-EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC000A6EAFFFEA2EA0FC0B2EA7FFCA21423
-7EA212>I<9038FE0F803903FF9FC0380F83E3381F01F3391E00F000003E7FA5001E5BEA
-1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C381FFFE014FC6C13FF7E001F1480
-397C001FC00078130F00F81307A3007CEB0F806CEB1F00381F807E6CB45A000113E01A21
-7F951D>I<B47EA2121FABEB83F0EB8FFCEB987EEBA03EEBC03FA21380AE39FFF1FFE0A2
-1B237DA220>I<121E123FEA7F80A4EA3F00121EC7FCA6EAFF80A2121FB2EAFFF0A20C24
-7EA30F>I<B47EA2121FABECFF80A2EC3C00143014E0EB81C00183C7FC1386139E13BE13
-FFEBDF80EB8FC01307806D7E6D7E130080147E39FFE1FFC0A21A237EA21E>107
-D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F803F890390FFE0FFE3A1F183F
-183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0A22C167D9531>I<38
-FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B167D9520>I<13FF00
-0713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C133E007E137E003E137C
-6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBFFC381FF07EEBC01F90
-38800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEBBFFCEB8FE00180C7FC
-A8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF381F00DF48137F007E7FA2127C
-12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8903801FFE0A21B207E951E>
-I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8A214167E9518>I<38
-07F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C7E6C1380120738003F
-C0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E9517>I<487EA41203A2
-1207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FEEA01F811207F9F16>
-I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B167D9520>I<39FFF01F
-E0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0EB
-7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FCA23A1F807C00E0D80F
-C014C08001E013010007017F1380A2D803F0EB0300ECCF8301F81387D801F913C61487D8
-00FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026167F9529>I<39FFF0
-7FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7FC7F6D7E497EEB37E0
-EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B167F951E>I<39FFF0
-1FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0
-EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8
-FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E0138038C03F005B137EC6
-5A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA7E03B5FCA214167E95
-19>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmtt10 12 29
-/Fi 29 122 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
-FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<B512F8A3381C0038A51400
-A2130EA3EA1FFEA3EA1C0EA390C7FCA3141CA5B512FCA3161E7E9D1A>69
-D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7FCA8EA7FE012
-FF127F161E7F9D1A>I<B51280A33801C000B3A6B51280A3111E7C9D1A>73
-D<387F03F838FF87FC387F03F8381C01E0EB03C01480EB07005B131E131C5B13785B7F12
-1DEA1FDC139C130EEA1E0F7F001C13801303EB01C0A2EB00E0A21470007F13FC38FF81FE
-387F00FC171E7F9D1A>75 D<EA7FE0487E6C5A000EC7FCB3141CA5387FFFFCB5FC7E161E
-7F9D1A>I<387FFFC0B512E0A26C13C013047D7E1A>95 D<EA1FF0EA3FFC487EEA780FEA
-300738000380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA
-1FFDEA07F016157D941A>97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB00
-38120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<
-EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F
-01F0380FFFE0000313C03800FE0014157D941A>I<EB1FC0A31301A6EA01F1EA07FDEA0F
-FFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA01F1
-161E7E9D1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0
-A300E0C7FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<
-EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF8048
-13C06C1380151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C0380383801C0A5381C
-0380EA1E07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F83878007C0070131C
-48130EA40070131C0078133C003E13F8381FFFF0000713C00001130017217F941A>I<12
-FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3FE13E713E3171E7F9D
-1A>I<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80B512C06C1380121F7C9E1A>
-I<12FEA3120EA6EB0FFCEB1FFEEB0FFCEB03C0EB0780EB0F00131E5B5B13FC120F13DE13
-8F380E07801303EB01C014E0EB00F038FFE3FE14FF14FE181E7F9D1A>107
-D<EAFFE0A31200B3A6B512E0A3131E7D9D1A>I<387CE0E038FFFBF8EA7FFF381F1F1CEA
-1E1EA2EA1C1CAC387F1F1F39FF9F9F80397F1F1F00191580941A>I<EAFE3EEBFF80B512
-C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>I<EA01F0EA07FCEA1FFF
-383E0F80EA3C07387803C0EA700138E000E0A6EAF001007013C0EA7803383C0780EA3E0F
-381FFF00EA07FCEA01F013157D941A>I<EAFE3EEBFF80B512E0380FC1F0EB8070EB0038
-120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E1380EB3E0090C7FCA8EAFFE0A316
-207F941A>I<3801F8E0EA07FEEA0FFFEA1E07EA3C03EA78011270EAE000A613011270EA
-7803123CEA1E0FEA0FFFEA07FCEA01F0C7FCA8EB0FFEA317207E941A>I<387F81F838FF
-8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>I<3807FB
-80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA07FE38003F801307386001C0
-12E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A>I<487E1203A6387FFFE0B5
-FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F9B1A>I<38FE0FE0A3EA0E
-00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387FC7FC00FF13FE007F13FC380E
-00E0A3380701C0A338038380A33801C700A3EA00EEA3137CA2133817157F941A>I<387F
-C7FC00FF13FE007F13FC380E00E0A27EEB01C013811203EB8380EA01C3A2EBC700EA00E7
-A213E61366136E133CA31338A3137813701230EA78E01271EA7FC06C5A001EC7FC17207F
-941A>121 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmbx12 13.14 52
-/Fj 52 122 df<123C127E12FFA4127E123C08087C8711>46 D<EB7F803803FFF03807E1
-F8380F807C48487E48133F003E7F007E1480A400FE14C0AD007E1480A46CEB3F00A26C13
-3E6C6C5A3807E1F86CB45A38007F801A237EA21F>48 D<131C133C13FC12FFA21200B3AA
-387FFFFCA216237CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12
-FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B
-1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>
-I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB
-03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FE
-A214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A2
-14F81301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A1218
-5A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEB
-FFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FC
-C7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE
-0018237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA200
-7E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E
-123F6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512
-C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133C
-A25BA213F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F8381C007C48
-133C141E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313E014F800
-0F13FCEA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C1338381F80
-F03807FFE00001130018237DA21F>I<13FF000313C0380F83E0381F00F04813F8007E13
-7CA2147E12FEA3147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C
-007E13FCA214F814F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141C
-A2143EA3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F140301
-1C7FEB1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C712
-0FA2486E7ED8FFF090B51280A229257EA42E>65 D<B612E015FC3903F0007FED3F80ED1F
-C0ED0FE0A216F0A21507150FA216E0151F16C0ED7F80913801FE0090B512F815FF9039F0
-003FC0ED0FE0ED07F016F8150316FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F82625
-7EA42C>I<9138FF8008010FEBF01890393FC03C789039FE0006F8D801F8130348481301
-4848130048481478121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C
-1430120F6C6C14606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013
-C025257DA42C>I<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2
-140E141EEBFFFEA2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7
-FCA223257EA428>69 D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C
-5C90B5FCA2EBF80F8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F8
-0003F800AF90B6FCA29038F80003B0B500E0B512E0A22B257EA430>72
-D<B512E0A23803F800B3AFB512E0A213257EA417>I<B539E007FF80A2D803F8C7EA7800
-16605E4B5A0307C7FC150E15185D5D5DEC03804AC8FC140E141F4A7E147FECDFC09038FB
-8FE09038FF0FF0EBFC07496C7E816E7E1400157F82153F6F7E6F7E8215076F7E82B539E0
-3FFFC0A22A257EA430>75 D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E
-157CEC03FCB6FCA220257EA425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D14
-06A26D6C130CA26D6C1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A29138
-7E0300A3EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A23525
-7EA43A>I<D8FFF8903807FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13
-036D7E6D7E80EC7F80EC3FC0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3F
-D8ED1FF8150F15071503A2150115001678486C1438D8FFFC1418A22B257EA430>I<B67E
-15F83903F801FEEC007F6F7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F8
-03F06E7E6E7E157EA2157FA482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B
-257EA42E>82 D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A2
-7E91C7FCB4FCEA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC
-0FE01407A200C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B
-257DA422>I<007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C16
-0C5AA4C71400B3A390B512FEA226247EA32B>I<B539E00FFFC0A2D803F8C7EA78001630
-B3A700015D7F00005D137C6D495A6D0107C7FC90380FE03E903803FFF89038007FC02A25
-7EA42F>I<B5398001FFE0A2D807F8C7EA1C0000031518A26D1438000115306D14700000
-15607F6D5C80013F495AA2ECC003011F91C7FC6E5A010F130614F001075BA26D6C5AA2EC
-FC3801011330ECFE700100136014FF6E5AA26E5AA36EC8FCA2140EA22B257FA42E>I<B5
-3B81FFFE01FFF0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D496C13
-38000017304B7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E0138190
-280FE0C03F83C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14FC6D
-486D5AA24A130301005DA24A130102785CA202306D5A3C257FA43F>I<B539C001FFE0A2
-D807F8C7EA1C006C6C141816386C6C14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7
-FC90380FF006150E903807F80C6D6C5A15386D6C5A903800FF6015E06E5A6E5AAE90380F
-FFFCA22B257FA42E>89 D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1F
-FE3803FE7EEA0FC0EA1F00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B
-187E971E>97 D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2
-EC01F8A215FCA815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E26
-7FA522>I<EB7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F
-6C130CEA1F80EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC13
-7F3803FFCF380FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380F
-C0EF3903FFCFFC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048
-137C127E147E12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803
-FFE038007F8017187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400
-A7B5FCA2EA0FC0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F
-01393E00F800007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA2123812
-3C383FFFE06C13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00
-381F807E3807FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0F
-C013D89038D007E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4
-EA1F80EA0F00C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC
-1FF0A2EC0780EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB
-80FC147E80A2EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EA
-FFFCA20E267EA511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A
-9007E803F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE9038
-83FF80390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F
-803803FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F
-00A2381F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC0
-9038F007E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F
-809038CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7C
-EB90FC13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C
-07EA7001EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC0
-01A212E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A3120312
-07120F121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218
->I<39FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E97
-22>I<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13
-FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<3BFFF9FF
-E0FF80A23B1FC03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015
-E02601F8635BA29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA201
-1E133CA3010C131829187F972C>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C
-6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F39
-07003F8048131F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E0
-0300A26D5A00031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D
-5AA26DC7FCA21306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720
->I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmsl10 10.95 48
-/Fk 48 122 df<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF0380380
-70A4380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>12
-D<EB03F4EB1C1CEB383C137013E01438EA01C0A538038070387FFFF038038070A4380700
-E0A6380E01C0A6381C0380001E13C038FF9FF016207E9F19>I<EAFFF0A20C027E8A0F>
-45 D<137EEA01C338030180000713C0EA0E0014E05AA2EA3C0112381278A538F003C0A5
-1480130712E01400A2130E1260EA701CEA3038EA3870EA0FC0131F7C9D17>48
-D<13181338EA01F8EA0E701200A513E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B
-9D17>I<1408140C141C143CA2147C147E149EA2EB011EA21302801304A21308A2011013
-8014071320A2EB7FFF90384007C0EB8003A2EA0100A21202EC01E01206001F130339FF80
-1FFE1F207F9F22>65 D<0007B5FC3900F803C090387801E0EC00F04913F8A515F03801E0
-01EC03E015C0EC0F809038FFFE009038E00F803903C003C0EC01E015F0A21400A2485A14
-01A215E01403EC07C0390F000F80EC3E00B512F01D1F7E9E20>I<ECFE02903807018690
-381C004E0170133E49131E4848131C4848130C120748C7FC5A121E003E1408003C140012
-7CA45AA4127815101520A27E1540001C14806CEB01006C13023803800C3800E030EB3FC0
-1F217C9F21>I<0007B57E3900F801E0903878007081497F151E150E150FA348481480A6
-484814005DA3151E153E4848133C5DA25D4A5A4A5A260F000FC7FC143CB512F0211F7E9E
-23>I<0007B512FC3900F8007C0178131C150C5B1504A414043901E00800A31438EBFFF8
-EBE0383803C010A4EC00081510485AA21520A2156015C0380F00011407B612801E1F7E9E
-1F>I<0007B512F83900F800780178133815185B1508A53901E00800A314181438EBFFF8
-3803C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E>I<3A07FF83FFC03A00F8
-007C000178133CA2495BA648485BA490B5FCEBE0004848485AA64848485AA64848485A01
-807F39FFF07FF8221F7E9E22>72 D<3807FF803800F8001378A25BA6485AA6485AA6485A
-A648C7FC7FEAFFF0111F7E9E10>I<3A07FF803FE03A00F8001F000178130C5D4913205D
-5D4AC7FC1402140848485A5C146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E
-141F48487E81140781140381380F00016D487E39FFF00FFE231F7E9E23>75
-D<3807FFE0D800FCC7FC1378A25BA6485AA6485AA41580EC0100EA0780A25C1402140614
-0E380F001E147CB512FC191F7E9E1C>I<D807F8EC7FE00000ED7C00017814BCA2019C49
-5AA21502A2018E13041508D8010E5C1510A26D1320A215400002EC41E09038038081EC81
-01A21482A23A0401C403C0A214C8A2EB00F0000C13E04B5A001E01C07FD8FFC0EB7FFC2B
-1F7E9E2A>I<D807F8EB7FC0D8007CEB1F00150C015E1304019E5B138FA2EB8780A2EB83
-C0D801035BEB01E0A2EB00F0A2147800025C143CA2141EA2140F485CEC07C0A21403A214
-01000C5C001E1300B47E221F7E9E22>I<EB01FCEB0E0790383801C090387000E0484813
-F048481378485A153C48C7FC5A001E143E123E123C127CA448147CA3157815F81278EC01
-F0007C14E01403003C14C0001CEB0780001EEB0F006C131E380780383801C0E038007F80
-1F217C9F23>I<0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC
-01E0EC03C0EC0F00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807
-FFFE3900F8078090387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00
-EBFFF03803C03880141E140EA2140F48485AA51501D80F0013029038800F8239FFF8078C
-C7EA01F020207E9E22>82 D<EB1F82EB7066EBC01E3801800EEA030048130C0006130412
-0EA3000F1300A27FEA07F013FF6C13C06C13E038003FF0EB03F813001478143CA2004013
-38A3143000601370146000F013C038E8018038C60300EA81FC17217E9F19>I<003FB512
-F0383C078000301430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383F
-FFE01C1F7A9E21>I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A648
-5BA600705BA25CA200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFF
-F07FF81FF03B1F000FC007C0001E903907800380001FED01006C1502140F5EEC17C00213
-5B142301805C000713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C4
-15F2EBC80015F4EA01F015F85B5D5B15605B000014402C207A9E2F>87
-D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7EA1E07EA3C0E127800F01310A313
-1EEB2E2038784F40381F878014147D9317>97 D<1207123F120F7EA2120EA65A137CEA1D
-83381E0180001C13C0EB00E05A14F0A5387001E0A214C013031480EB0700EAE80EEACC38
-EA83E014207B9F19>I<13FEEA0383380E0780121C0038130090C7FC12785AA45AA37E5B
-EA70026C5AEA1C18EA07E011147D9314>I<1438EB01F8EB00781438A21470A614E013FC
-EA0382EA0601121CEA3C00383801C0127812F0A438E00380A412F0EA700738380F00381C
-37803807C7E015207D9F19>I<13F8EA070EEA0E07381C038012381278127012F0B5FC00
-F0C7FCA25AA46C5AEA7002EA3004EA1C18EA07E011147D9314>I<EB07C0EB1C60EB30F0
-1360EBE0E0EBC0001201A5485AEA3FFCEA0380A448C7FCA6120EA65A121EEAFFC014207F
-9F0E>I<140EEB3E11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB87
-00EA04FC48C7FCA21218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0
-381C0700EA07FC181F809417>I<13E0120712011200A2485AA6485AEB8F80EB90E013A0
-EBC0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014207E9F19>I<
-EA01C0EA03E0A213C0EA0180C7FCA6EA0380121F12071203A2EA0700A6120EA65A121EEA
-FF800B1F7F9E0C>I<13E0120712011200A2485AA6485AEB81FCEB80F014C0EB81801400
-EA07045B13181338137C131C120E7FA2130F7F1480EA1C03381E07C038FF8FF016207E9F
-18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B
-207F9F0C>I<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB00
-70A5000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F
-90E0EA07A03803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014
-147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0
-130300F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383801F01C
-6C487E140F48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90
-C8FCA3120EA4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C0038
-13C0127812F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4
-131EEBFFC0131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120E
-A65A121EEAFFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13
-F0EA07FCEA01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<
-1380EA0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C
-9B12>I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F
-9F8011147B9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075B
-A25BEA039013A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C03
-0060148015401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB
-80F0A26C485A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0
-C0EBE180EB73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03
-E038FE07FC18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B14301420
-5C13705CA20171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8
-FC12E61278191D809318>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmti10 10.95 20
-/Fl 20 122 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B5
-12E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E0
-0640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
-D<127012F8A212F012E005057B840E>46 D<EBF180380389C038070780EA0E03121C123C
-383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F070013147C9317>
-97 D<137EEA01C138030080EA0E07121E001C1300003CC7FC5AA35AA45B12701302EA30
-0CEA1830EA07C011147C9315>99 D<1478EB03F8EB0070A414E0A4EB01C0A213F1EA0389
-38070780EA0E03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C
-80380F070015207C9F17>I<137CEA01C2EA0701120E121C123CEA3802EA780CEA7FF0EA
-78005AA4EA7001A21302EA380CEA1830EA07C010147C9315>I<EB3C60EBE2703801C1E0
-EA0380EA07005A380E01C0121EA3383C0380A4EB0700A2EA1C0F1317EA0C2EEA03CEEA00
-0EA25BA21230EA7838485AEA60E0EA3F80141D7E9315>103 D<13C0EA01E0A213C0C7FC
-A7120E12131223EA4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C
-0B1F7C9E0E>105 D<EA03C0121FEA0380A4EA0700A4120EA45AA45AA45AA3127112E2A4
-126412380A207C9F0C>108 D<391C0F80F0392630C318394740640C903880680EEB0070
-A2008E495A120EA34848485AA3ED70803A3803807100A215E115623970070064D8300313
-3821147C9325>I<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01
-C0A3EB038400381388A2EB0708EB031000701330383001C016147C931A>I<137CEA01C3
-38030180000E13C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F130EEA30
-18EA1870EA07C013147C9317>I<3801C1E0380262183804741C1378EB701EA2EA08E012
-00A33801C03CA3143838038078147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2
-B47E171D809317>I<EA1C1EEA266138278380EA47871307EB0300008EC7FC120EA35AA4
-5AA45A123011147C9313>114 D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0
-EA07F8EA03FCEA003E130E1270EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I<
-EA018013C0EA0380A4EA0700A2EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA
-3100121E0C1C7C9B0F>I<000E13C0001313E0382301C0EA4381EA4701A238870380120E
-A3381C0700A31410EB0E201218A2381C1E40EA0C263807C38014147C9318>I<380E0380
-EA1307002313C0EA4383EA4701130000871380120EA3381C0100A31302A25BA25BEA0E30
-EA03C012147C9315>I<000EEBC1C0001313E3392301C3E0384381C1384701C015603987
-038040120EA3391C070080A3EC0100A21306EB0F02000C5B380E13083803E1F01B147C93
-1E>I<000E13C0001313E0382301C0EA4381EA4701A238870380120EA3381C0700A4130E
-1218A2EA1C1EEA0C3CEA07DCEA001CA25B12F05BEAE060485AEA4380003EC7FC131D7C93
-16>121 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmr8 8 29
-/Fm 29 118 df<126012F0A212701210A21220A21240A2040A7D960A>39
-D<EAFF80A2090280870C>45 D<1206120E12FE120EB1EAFFE00B157D9412>49
-D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018
-13F0123838FE03FE17177F961A>65 D<EAFFFE381C0380EB00E014601470A414E0EB01C0
-381FFF8014C0381C00E0147014301438A4147014E0EB01C0B5120015177F9619>I<EBFC
-1038038330380E00B0481370481330123000701310126012E01400A51410126012700030
-132012386C13406C138038038300EA00FC14177E9619>I<B5FC381C01C0EB00E0143014
-381418141C140C140EA7140C141CA2143814301460EB01C0B5120017177F961B>I<B512
-E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A2130014181410A214
-3014F0B5FC15177F9618>I<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C
-0C1304A390C7FCA6EAFFC014177F9617>I<EAFFC0001CC7FCAD1420A31460A2144014C0
-1303B5FC13177F9616>76 D<00FEEB03F8001E14C000171305A338138009A23811C011A3
-3810E021A2EB7041A3EB3881A2EB1D01A2130EA2123839FE040FF81D177F9620>I<EAFF
-FE381C0380EB00C014601470A4146014C0EB0380381FFE00001CC7FCAAB47E14177F9618
->80 D<EAFFFC381C0380EB00C014E01470A414E014C0EB0380381FFE00381C0780EB01C0
-EB00E0A514E1A2147238FF803C18177F961A>82 D<EA0FC4EA302CEA601CEA400CEAC004
-A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C130E13061280A3EAC004EAE008EAD810
-EA87E00F177E9614>I<387FFFF83860381800401308A200801304A300001300AF3803FF
-8016177F9619>I<12FCA212C0B3AB12FCA206217D980A>91 D<EA3FC0EA70601330EA20
-381200EA03F8EA1E3812301270EAE039A21379EA70FFEA1F1E100E7F8D12>97
-D<12F81238A8EA39F0EA3E0CEA380613077F1480A414005B1306EA361CEA21F011177F96
-14>I<EA07F0EA18381230EA7010EA600012E0A41260EA70081230EA1830EA07C00D0E7F
-8D10>I<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000A31260EA7008EA3010EA18
-30EA07C00D0E7F8D10>101 D<1203EA0780A2EA0300C7FCA5EA1F801203AF1243EAE300
-12E7127C091D82960B>106 D<12F81238A8133E13381330134013801239EA3FC0EA39E0
-123813F01378133CA2EAFE7F10177F9613>I<EAF8F8EA3B1CEA3C0E1238AA38FE3F8011
-0E7F8D14>110 D<EA07C0EA1830EA3018EA600CA2EAE00EA5EA701CEA3018EA1830EA07
-C00F0E7F8D12>I<EAF9F0EA3E1CEA380613077F1480A414005B130EEA3E1CEA39F00038
-C7FCA512FE11147F8D14>I<EAF9E0EA3A70123CEA38201300A9B4FC0C0E7F8D0E>114
-D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA01E0EA8060A212C0EAE0C0EA9F
-000B0E7F8D0E>I<1208A31218A21238EAFFC0EA3800A71340A4EA1C80EA0F000A147F93
-0E>I<EAF83EEA380EAA131EEA1C2E3807CF80110E7F8D14>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmsy9 9 2
-/Fn 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E
-A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA
-0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fo cmsltt10 10.95 29
-/Fo 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E
-769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3
-C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA
-7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203
-120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I<EB3E18EBFFB8
-4813F8EA07C1EB8078EA0E00121E001C137048133014005AA35AA614C0EA7001A2130338
-380780383C0F00EA1FFE6C5AEA03F0151C7C9B18>67 D<3807FFC014E014F03801C0F814
-78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013
-07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000
-A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18
-1C7F9B18>I<EB1FF8EB3FFCEB1FF8EB01C0A4EB0380A6EB0700A6130EA2124012E06C5A
-EAE03CEAFFF86C5AEA1FC0161C7C9B18>74 D<EA07FC487E6C5AEA01C0A4485AA648C7FC
-A6120E14301470A4B512E0A3141C7E9B18>76 D<3907E01F80000FEB3FC0000714803903
-B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6
-5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12
-1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92
-D<387FFFC0B512E0A26C13C013047E7F18>95 D<EA03FC48B4FC4813801303380601C012
-00A2137FEA07FF121FEA3F813878038012F012E0A21307EA701F387FFFF0EA3FFBEA0FE1
-14147D9318>97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012
-38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I<EB07E0
-A31300A4EB01C0EA01F1EA07FDEA0FFFEA1E0FEA3C0738780380127012E0A4EB0700A25B
-5B6C5AEA787F383FFFC0381FEFE0380F87C0131C7C9B18>100 D<13F8EA07FE487E381F
-0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F
-FE6C5AEA07F012147B9318>I<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A
-7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<EB1E1F90387FFF8090B5FC
-3901E1E3003803C0E01380EA0700A3495AA238038780EA07FF49C7FCEA0E7890C8FCA26C
-B47E4813E0487F383C007848133812705AA2147800705B387C03E0383FFFC0000F90C7FC
-EA03FC191F809318>I<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6
-EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106
-D<EA07E0120F12071200A4485AEBC7FEA3EBC1E0EBC3C038038780EB8F00139E13BC13FE
-13EEEA07CF1387EB0780130314C01301387FC7F838FFE7FC387FC7F8171C7F9B18>I<EA
-0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>I<13FCEA03FF000F1380
-EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F
-FC6C5AEA07E013147C9318>111 D<EBF8C0EA03FDEA0FFFEA1F0FEA3C07387803801270
-12E0A4EB0700A25BA26C5AEA787FEA3FFEEA1FEEEA078EEA000EA35BA43801FF80A3121E
-7C9318>113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA
-FFFC7F5B17147E9318>I<EBFE603807FFE05AEA1F01121C003813C0EA3C00001F1300EA
-0FF8EA07FE3800FF801307383001C01270A238780380EA7C07B51200EAEFFEEA63F81314
-7D9318>I<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF
-E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013
-E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119
-D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC
-EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F
-F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13
-78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fp cmcsc10 10.95 12
-/Fp 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807
-FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97
-D<EB7E083803819838070078000C1338001C13185A00781308127000F01300A700701308
-127812386C1310120C000713603803818038007E0015177E961B>99
-D<B512C0EA1C011300144014601420A213081400A21318EA1FF8EA1C1813081410A21300
-14301420A21460EB01E0B5FC14177E9619>101 D<B512C0EA1C011300144014601420A2
-13081400A21318EA1FF8EA1C181308A390C7FCA6EAFFC013177E9618>I<EB7E08380381
-9838070078000C1338001C13185A00781308127000F01300A5EB03FEEB00381270127812
-387E120C1207380380D838007F0817177E961D>I<EAFF80EA1C00B3A3EAFF8009177E96
-0E>105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13
-0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110
-D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700
-70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D>
-I<EAFFFCEA1C07EB03C0130114E0A414C01303EB0700EA1FFC001CC7FCAAB47E13177E96
-19>I<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA
-001C130E13061280A3EAC004EAE008EAD810EA87E00F177E9615>115
-D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117
-D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F
-133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF
-18177F961C>120 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fq cmbx12 17.28 34
-/Fq 34 121 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF000
-7CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215
-F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49
-131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<913A03FF80018002
-3FEBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C812
-7F4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127F
-A27FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93F
-C05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>
-67 D<B812F0A3C6903880003FEE07F816031600A21778A21738A3171C1507A31700A25D
-5D5D91B5FCA3EC803F818181A21707A392C7120EA4171EA2173CA2177C17FC1601160716
-3FB812F8A330317EB035>69 D<B812E0A3C6903880007FEE0FF016031601A21600A21770
-A31738A21507A21700A35D5D5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB0
-33>I<DA03FF1303027FEBF00749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03
-FF49487F4848C87E485A0007824848815B001F82A2484881A2127FA24992C7FC12FFAA03
-07B512F8127F7FDB00011300123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8
-497ED907FFEB3E3F01019038FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B61280A3
-C6EB8000B3B3A7B61280A319317EB01E>73 D<B67EA3000190C9FCB3A9EE0380A4160717
-00A25EA35E5E5E5E4B5A150FB7FCA329317DB030>76 D<B56C49B512C08080C66D903900
-03E0006E6E5AEBEFFC13E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E
-16806E13C0ED7FE0ED3FF0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1
-EE1FF9EE0FFD160717FF828282177F173FA2171F170F486C1507B500E014031701A23A31
-7EB03F>78 D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FF
-A717FEA2EE07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB0
-37>80 D<B77E16F816FEC690398003FF809238007FE0EE1FF0707EA283160783A65F160F
-5F4C5A4C5A4C5ADB03FFC8FC91B512F816E091388007F8ED01FC6F7E167F83707EA283A5
-83A4F0038017F8161F1900706C5AB6398003FE0E933801FFFC9338001FF039317EB03C>
-82 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A348
-1603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807
-C000715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801F
-C0023FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C
-17806E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075D
-A26E130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C02
-1F133815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA23831
-7EB03D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780
-C7FCA414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F80
-0D393FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97
-D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E0
-49EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F8090
-39C3C0FE00903880FFF89038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803
-F0033907E007F8120FEA1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2
-001F14386C7E000714703903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED
-0FC0EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F48
-48133F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01
-FC0F3FFE38007FFEEB0FF027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E0
-3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
-FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
-FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
-1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
-391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
-00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
-121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
-140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
-D8001F90C7FC242F7E9F28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013
-809039F9801FC0EBFB0001FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E
-487E487EA46C5A6C5A6C5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA
-01F812FFA3120F1207B3B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD9
-3FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602
-F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE
-EC783F02C013803A0FF1801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F
-2D>I<EB07FC90387FFFC03901FC07F03903F001F848486C7E4848137E001F147F003F15
-8049133F007F15C0A300FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C
-3903F803F83901FE0FF039007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFF
-FC9038FBE07F9039FF003F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216
-FEA816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC
-3FC091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF3
-0FF0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114
-D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0
-6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13
-1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201
-12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB
-07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000FEB003F0007141FB3153FA20003
-147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28207D9F2D>I<B53A1FFFE03FF8
-A33C0FF000FE0007806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15DF
-01FF153C6C9039038FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEBF9
-C09138FC01FD16FF010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E9F
-3A>119 D<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B
-90381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF0
-8190380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FC
-A328207F9F2B>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fr cmsy10 10.95 1
-/Fr 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fs cmbx12 14.4 55
-/Fs 55 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<EB07F8EB3FFE90B5FC3901FC07803903F00FC03807C01FEA0F80121F130048EB0F
-8091C7FC127EA3EAFE02EB1FF0EB3FFCEB603EEB801F00FF14809038000FC0A24814E0A4
-127EA4123E003F14C07EEC1F80D80F8013003807E07E6CB45A6C5B38003FC01B277DA622
->I<1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5CC6485AA249
-5A130791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA822>I<EB
-7F803801FFF000077F380FC0FC381F803E48487E007E1480A2140F00FE14C0A315E0A500
-7E131FA26C133F6C132F380F80CF3807FF8F0001130FEA0008010013C0A3EC1F80123E12
-7FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7FC1B277DA622>57
-D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F1480A2
-49486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F0804913030001
-81491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8001F
-E0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EAFE00
-EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1FF8B7
-12E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF00F9F
-9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290C9FC
-5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF0
-07C0011FB512800107EBFE009038007FF028297CA831>I<B612FCEDFF8016E03A03FC00
-1FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2EE07F0A417F8AA17F0A3EE0FE0A217
-C0161FEE3F80EE7F005EED03FCED1FF8B75A168003FCC7FC2D297EA834>I<B712E0A339
-03FC001FED07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3EBFC
-0F1403A20201130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327297E
-A82C>I<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A316001403
-A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387FE003
-903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880
-485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E
-6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5D8F0
-0FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835>I<
-B512F0A33803FC00B3B1B512F0A314297EA819>I<B500F0EBFFFEA3D803FCC7EA0F0016
-1E5E5E16E0ED03C04B5A4BC7FC151E5D15F04A5A4A5A1407140F4A7EEC7FF04A7EEBFDE7
-9038FFC3FCEC83FE9038FE01FF497E6F7E826F7E151F6F7E8215076F7E6F7E8281EE7F80
-B539F00FFFFEA32F297EA835>75 D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A215
-07A2150FA2151F157F913801FF00B7FCA322297EA828>I<D8FFFE92383FFF80A26D5D00
-03EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F813
-0EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0A391381FC1C0A291380FE380
-A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>I<D8FF
-FCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF0180138014
-7F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1ED1FF1150F
-16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE14031601A230297EA835>I<
-ECFFC0010F13FC90383F807F9039FE001FC0D801F8EB07E048486D7E48486D7E000F8148
-486D7EA24848147FA2007F168090C8123FA34816C0AA6C16806D147FA2003F1600A26C6C
-14FEA26C6C495A6C6C495A6C6C495A6C6C495A6C6C495A90263FC0FFC7FC90380FFFFC01
-0013C02A297CA833>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA7
-16FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<EC
-FFC0010F13FC90383FC0FF9039FE001FC048486D7ED803F0EB03F000078148486D7E4848
-6D7EA24848147FA2007F1680A290C8123FA24816C0AA6C16806D147FA2003F1600A26C6C
-14FE143E3A0FE07F81FC00079038C1C1F83A03F18063F0D801F9EB67E0D800FFEB3FC090
-263FC07FC7FC90380FFFFC01004913C0EC003C811601ED1F8316FF6F1380A21700816F5A
-6F5A6F5A2A357CA833>I<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A65E
-4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170EA2
-1503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>I<9038FF80600003EBF0E000
-0F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7FFC
-EBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E013
-03A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA825
->I<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A2481501
-A5C791C7FCB3A490B612C0A32A287EA72F>I<B500F0EBFFFEA3D803FCC7EA0380B3AA00
-01ED07007F0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7FC
-2F297EA834>I<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B01
-7F140E80013F5CA26E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE0301
-015CECFF076D91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA23029
-7FA833>I<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13
-016C604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E
-17F09126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035B
-A2913AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E
-141EA242297FA845>I<B500F0EB3FFFA3D803FEC7EA03C06C6C15806C6DEB07005E6D6C
-130E6E5B013F143C6D6C13386E5B010F14F06D6C5B6E485A01031303D901FF5B0387C7FC
-6D138FEC7FCE15FC143F6E5A5D140FAE0103B512C0A330297FA833>89
-D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA
-0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21
->97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F001F89038E0
-00FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380FFF8039
-0E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A248133E
-007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C3801FF
-F838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F380FC00F381F
-8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FFE73800
-7F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15
-C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803
-F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813F01207
-143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F00003EBE3
-F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C
-380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F012
-1F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512003800
-7FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701
-F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1F
-C0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FB3
-B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D8
-0FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A333
-1B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213
-E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0
-393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F
-803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE039
-0FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038
-F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FF
-C1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
-D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
-13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
-C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
-AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
-07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
-0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
-FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
-EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
-FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
-803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
-00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
-3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
-EA74F0EA3FE0EA0F8020277F9A23>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ft cmtt10 10.95 91
-/Ft 91 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780A2EAEE0F1400A25B131EA213
-3EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA21207EB8380EB87C0120FEB0EE0
-A2121F121EA2123E383C07C0A23818038013247E9F18>I<EA01C0EA07E0487EEA0E7048
-7EA4EB73F813F313E3380FC1C0EBC38013831303381F0700EA3F87EA7B8EEA71CEEAE1FC
-12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C7F9B18>I<1238127CA2127E
-123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780
-EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
-24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01
-C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EA
-FDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A41114
-7D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C
-123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0
-A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F
-14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12
-1E123E123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C
-0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C07
-00EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12
-431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF387C0F80387003
-C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B485AEA07C0
-485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B1377A213E7120113C7EA038712
-071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52
-D<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C0780383003C0EA0001EB00E0A2126012
-F0A238E001C0EA7003387C0F80383FFF00EA1FFCEA03F0131C7E9B18>I<137E48B4FC00
-071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC38FE078038F803
-C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5AEA01F8131C7E9B
-18>I<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13F05BA2485AA3485A
-A448C7FCA7131D7E9C18>I<EA03F8EA0FFE487E383E0F80EA3803387001C0A438380380
-EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F013E0EAE000A4387001C0EA
-7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<1230127812FCA2127812301200A8
-1230127812FCA2127812300614779318>58 D<1218123C127EA2123C12181200A8121812
-3C127EA2123E121E120E121C123C127812F01260071A789318>I<14C0EB03E01307EB1F
-C0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C
-7EEB3F80EB1FC0EB07E01303EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4
-387FFFC0B512E0A26C13C0130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C
-7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A
-126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F38F00380A2EA600738000F00133E5B
-EA01F05B485AA55BC8FCA5EA0380487EA36C5A111C7D9B18>I<137CEA01FEEA07FF380F
-8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380A638E1C1C0127113E338
-70FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038007E00131C7E9B18>I<
-137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA0E03381C01C0A338
-7F07F000FF13F8007F13F0151C7F9B18>I<EA7FFCB5FC6C1380381C03C01301EB00E0A4
-130114C01307381FFF80140014C0EA1C03EB00E014F01470A414F014E01303387FFFC0B5
-1280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07FFEA0F07EA1E03EA3C01EA38005AA2
-14005AA8127014E0A27E123C381E01C0EA0F073807FF803803FE00EA00F8131C7E9B18>
-I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114
-C01303EB0F80387FFF00485AEA7FF8141C7F9B18>I<B512F0A3381C0070A41400A2130E
-A3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B512F0A3381C0070A4
-1400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0A3141C7E9B18>I<3801F1C0EA03FD
-EA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F130F387001C0A2130312
-38A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F07F038FF8FF8387F07F0
-381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>I<EA7FFFB5
-12806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<3801FFC0A338000E00B3
-12F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF87F8387F07F0381C03
-C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380
-A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>I<EAFFC0A3001CC7FCB114E0A5B5
-FCA3131C7E9B18>I<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A2
-13F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0FF8387F07F0381D81C0
-A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03
-151C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF0010070
-13C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E0
-13001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA
-0FFE383FFF804813C0EA7803EA700100F013E0EAE000AE1370A2EAF079387039C0EA783F
-EA7FFF6C1380380FFE00EA000FEB0780A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE
-6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB0380A5149CA3
-387F01F8EAFF81387F00F0161C7F9B18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A3
-90C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2126012E0130100
-F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E07038A40000
-1300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F01380783C03803
-FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C01E0001C13C0A3EA1E
-03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A21370151C7F9B18>I<
-38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3138CA2EA1D8DA31305
-000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F380E0700120FEA070E13
-8EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138EEA070F7F000E138013
-03001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03F8EAFF07EAFE03381C
-01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC48
-7E6C5A151C7F9B18>I<383FFFE05AA2387001C01303EB07801400C65A131E131C133C5B
-137013F0485A5B1203485A90C7FC5A001E13E0121C123C5A1270B5FCA3131C7E9B18>I<
-EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>I<126012F0A27E1278127C123CA2123E12
-1E121F7EA27F12077F1203A27F12017F12007F1378A2137C133C133E131EA2131F7F1480
-1307A2EB030011247D9F18>I<EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0
-B512E0A26C13C013047E7F18>95 D<1206121E123E12381270A212E0A312F812FC127CA2
-1238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA7F
-03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E12FE127E12
-0EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFF
-C0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838030048C7FC
-A25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<EB1F80133F
-131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA
-3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F383807
-80EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF8000071300EA
-01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801
-C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C
-0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338
-A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA513
-3EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>
-I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338
-137CA313381300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C
-18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA
-0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201B3A4B51280A311
-1C7D9B18>I<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB
-3E3E1714809318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38
-FFE7FE387FC7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E0
-00E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<
-EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EB
-FFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1F
-FFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA00
-03A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0
-005BA290C7FCA9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7
-FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F01114
-7D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380
-EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE
-3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700
-A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0
-A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>
-I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA03
-9E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13
-F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC13
-78A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA23870
-01E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A3
-14147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB
-1378EB7FE0131F130713247E9F18>I<126012F0B3B012600424769F18>I<127CB4FC13C0
-1203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18
->I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA60C00F067C9B18>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fu cmr10 10.95 77
-/Fu 77 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA07
-00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903
-80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<EA7038
-EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7F9F17>34
-D<1340A2EA03F0EA0C4EEA10413820408012600040134038C041C01343A238E04180EB40
-001270127CEA3FC0EA1FF86C7EEA03FEEA007FEB4F801343EB41C0A2EAF040A312801480
-EA404100201300EA3042EA0C4CEA03F0EA0040A312257EA117>36
-D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
-D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
-30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
-0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
-5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
-D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300
-A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D
-7EA117>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
-0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>I<13801203120F12F31203B3A6EA
-07C0EA7FFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF803
-A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380EA
-3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F1200
-1400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F013801240
-EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2EA
-010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>
-I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214C0
-A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA
-0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EA
-F807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17
->I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B
-1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A31270
-38780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01C0
-12C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18
-487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E338000380
-A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A312
-701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212
-781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB20
-78A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E0
-39FF801FFE1F207F9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEBFF
-F0EB007C141FEC0F80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E20
->I<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A15
-10127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E003
-00EB380CEB0FF01C217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F0157015
-78A2153CA3153EA8153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F
-9E23>I<B61280380F000F14031401140015C01540A314401500A214C0130113FF130113
-001440A3EC0020A31540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B6128038078007
-1401A2140015C01540A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE1A
-1F7F9E1E>I<90380FE02090387818609038E004E03803800238070001481300001E1460
-A25A1520127C127800F81400A7EC7FFCEC03E000781301127C123CA27EA27E7E38038002
-3900E00460903878182090380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FC
-EB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<39FFF0
-07FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E01341
-EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75
-D<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>I<B4
-6CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A29038
-0E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>
-I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03
-C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22
->I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14
-F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C0
-6C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80
-EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>82
-D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8
-6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180
-38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014
-3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00
-80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003
-FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213
-F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0
-7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003
-5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14
-4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39
-FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06
-EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89
-D<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA80
-40A3EAB85CEAFC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80
-A10D>I<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fv cmbx12 20.736 14
-/Fv 14 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3170FA3171FA2173F177F
-17FF5E04071300163FB9FCA4323B7DBA3A>76 D<B500F00207B512E0808080D8007F9239
-0007E0006E6F5A81017B7F81137901787F6E7E6E7E81141F6E7E6E7F6E7F82806E7F6F7E
-6F7E826F7E816F13806F13C017E06F13F081EE7FF8EE3FFC17FEEE1FFF827013837013C3
-18E37013F382EF7FFBEF3FFFA283838383A28383187F183FA201FC161FB500FC150F1807
-1803A2433B7CBA4C>78 D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F71
-7E717EA284171FA284A660A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A291
-39F0007FF0EE1FF8707E707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B6
-00F890393FFC078094381FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EE3F80ED
-3FFFA4150181B0ECFF80010F13F0013F13FC9038FFC03F3901FE000F4848130348487F48
-487F121F485AA2127F5BA312FFA9127FA36C7EA2121F6C6C5B6C6C5B00035CD801FE011F
-13C02700FF807E13FE90387FFFF8010F13E0010113002F3C7DBB36>100
-D<49B47E010F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0
-485A003F15F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F00
-0F15F06C6C13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013
-C025267DA52C>I<EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA4
-12071203B3AAB512F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A415
-3C7DBB1A>108 D<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701
-607F0003497E01FD15805C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>110
-D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2
-01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E137C017F14786E13F801
-3F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391C7FC6E5A6D131E15BE
-6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C141E0008133E007F133C
-147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA1FFCEA07F02E377EA5
-33>121 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%BeginPaperSize: Letter
-letter
-%%EndPaperSize
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 75 659 a Fv(GNU)33 b(Readline)h(Library)p 75
-709 1800 17 v 936 757 a Fu(Edition)17 b(4.3,)c(for)i
-Ft(Readline)f(Library)g Fu(V)l(ersion)i(4.3.)1643 811
-y(Marc)o(h)e(2002)75 2467 y Fs(Brian)23 b(F)-6 b(o)n(x,)23
-b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75
-2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
-b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop
-%%Page: 2 2
-2 1 bop 75 217 a Fu(This)14 b(do)q(cumen)o(t)h(describ)q(es)g(the)f
-(GNU)g(Readline)h(Library)l(,)f(a)g(utilit)o(y)h(whic)o(h)f(aids)g(in)h
-(the)f(consistency)75 271 y(of)h(user)g(in)o(terface)h(across)e
-(discrete)i(programs)e(that)h(need)h(to)e(pro)o(vide)i(a)f(command)g
-(line)i(in)o(terface.)75 339 y(Published)g(b)o(y)f(the)f(F)l(ree)g
-(Soft)o(w)o(are)f(F)l(oundation)75 394 y(59)h(T)l(emple)h(Place,)f
-(Suite)i(330,)75 448 y(Boston,)d(MA)h(02111)f(USA)75
-516 y(P)o(ermission)j(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g
-(distribute)i(v)o(erbatim)d(copies)i(of)f(this)h(man)o(ual)f(pro)o
-(vided)h(the)75 570 y(cop)o(yrigh)o(t)e(notice)h(and)f(this)h(p)q
-(ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h(copies.)75
-638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g(cop)o(y)h(and)g
-(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h(man)o(ual)g
-(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h(cop)o(ying,)
-g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g(deriv)o(ed)g(w)o
-(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g(of)g(a)f(p)q
-(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fr(\015)h Fu(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(1)75 149 y Fq(1)41 b(Command)28 b(Line)e(Editing)137
-271 y Fu(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
-(of)g(the)g Fp(gnu)g Fu(command)g(line)i(editing)f(in)o(terface.)75
-403 y Fs(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
-501 y Fu(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
-(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137
-569 y(The)h(text)f Fo(C-k)h Fu(is)g(read)g(as)f(`Con)o(trol-K')g(and)h
-(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831
-567 y Fn(h)p 1844 541 19 2 v 1844 569 a Fm(k)p 1844 577
-V 1860 567 a Fn(i)75 624 y Fu(k)o(ey)d(is)h(pressed)g(while)g(the)f
-(Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g
-Fo(M-k)f Fu(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o
-(haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y)
-o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930
-745 y Fn(h)p 942 719 V 942 747 a Fm(k)p 942 755 V 958
-745 a Fn(i)987 747 y Fu(k)o(ey)g(is)h(pressed.)20 b(The)15
-b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Fn(h)p 1791
-719 72 2 v 1791 747 a Fm(AL)m(T)p 1791 755 V 1860 745
-a Fn(i)75 802 y Fu(on)e(man)o(y)g(k)o(eyb)q(oards.)19
-b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled)
-1213 800 y Fn(h)p 1225 774 V 1225 802 a Fm(AL)m(T)p 1225
-810 V 1294 800 a Fn(i)1322 802 y Fu(\(usually)i(to)e(either)i(side)g
-(of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Fn(h)p
-400 829 V 400 857 a Fm(AL)m(T)p 400 865 V 469 855 a Fn(i)499
-857 y Fu(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g
-(as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Fn(h)p
-1709 829 V 1709 857 a Fm(AL)m(T)p 1709 865 V 1778 855
-a Fn(i)1808 857 y Fu(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f
-(also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g
-(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967
-y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g
-(for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035
-y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694
-1033 y Fn(h)p 706 1007 V 706 1035 a Fm(AL)m(T)p 706 1043
-V 775 1033 a Fn(i)801 1035 y Fu(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w)
-o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75
-1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping)
-809 1088 y Fn(h)p 822 1062 70 2 v 822 1090 a Fm(ESC)p
-822 1098 V 888 1088 a Fn(i)915 1090 y Fl(\014rst)p Fu(,)g(and)g(then)h
-(t)o(yping)1339 1088 y Fn(h)p 1351 1062 19 2 v 1351 1090
-a Fm(k)p 1351 1098 V 1368 1088 a Fn(i)1383 1090 y Fu(.)18
-b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j
-Fk(metafying)k Fu(the)425 1143 y Fn(h)p 437 1117 V 437
-1145 a Fm(k)p 437 1153 V 454 1143 a Fn(i)484 1145 y Fu(k)o(ey)l(.)137
-1214 y(The)i(text)e Fo(M-C-k)h Fu(is)h(read)f(as)f(`Meta-Con)o(trol-k')
-g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75
-1268 y Fk(metafying)e Fo(C-k)p Fu(.)137 1337 y(In)g(addition,)h(sev)o
-(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30
-b(Sp)q(eci\014cally)l(,)1384 1335 y Fn(h)p 1396 1309
-73 2 v 1396 1337 a Fm(DEL)p 1396 1345 V 1467 1335 a Fn(i)1482
-1337 y Fu(,)1514 1335 y Fn(h)p 1526 1309 70 2 v 1526
-1337 a Fm(ESC)p 1526 1345 V 1593 1335 a Fn(i)1608 1337
-y Fu(,)1640 1335 y Fn(h)p 1652 1309 72 2 v 1652 1337
-a Fm(LFD)p 1652 1345 V 1722 1335 a Fn(i)1737 1337 y Fu(,)1768
-1335 y Fn(h)p 1780 1309 70 2 v 1780 1337 a Fm(SPC)p 1780
-1345 V 1847 1335 a Fn(i)1862 1337 y Fu(,)75 1390 y Fn(h)p
-87 1364 76 2 v 87 1392 a Fm(RET)p 87 1399 V 160 1390
-a Fn(i)175 1392 y Fu(,)23 b(and)306 1390 y Fn(h)p 318
-1364 74 2 v 318 1392 a Fm(T)m(AB)p 318 1399 V 390 1390
-a Fn(i)427 1392 y Fu(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f
-(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75
-1447 y(Section)d(1.3)f([Readline)h(Init)g(File],)h(page)e(4\).)32
-b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444
-1445 y Fn(h)p 1456 1419 72 2 v 1456 1447 a Fm(LFD)p 1456
-1454 V 1526 1445 a Fn(i)1560 1447 y Fu(k)o(ey)l(,)h(t)o(yping)1802
-1445 y Fn(h)p 1814 1419 49 2 v 1814 1447 a Fm(C-j)p 1814
-1454 V 1860 1445 a Fn(i)75 1501 y Fu(will)c(pro)q(duce)g(the)f(desired)
-h(c)o(haracter.)j(The)874 1499 y Fn(h)p 886 1473 76 2
-v 886 1501 a Fm(RET)p 886 1509 V 959 1499 a Fn(i)989
-1501 y Fu(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499
-y Fn(h)p 1397 1473 109 2 v 1397 1501 a Fm(Return)p 1397
-1509 V 1503 1499 a Fn(i)1533 1501 y Fu(or)1588 1499 y
-Fn(h)p 1600 1473 86 2 v 1600 1501 a Fm(En)o(ter)p 1600
-1509 V 1684 1499 a Fn(i)1714 1501 y Fu(on)f(some)75 1556
-y(k)o(eyb)q(oards.)75 1688 y Fs(1.2)33 b(Readline)23
-b(In)n(teraction)137 1786 y Fu(Often)13 b(during)h(an)e(in)o(teractiv)o
-(e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)
-h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h
-(the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)i(library)f
-(giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75
-1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)
-g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g
-(and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s
-(jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h
-(commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005
-y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f
-(insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75
-2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o
-(ou)e(simply)i(press)1160 2058 y Fn(h)p 1172 2032 76
-2 v 1172 2060 a Fm(RET)p 1172 2068 V 1245 2058 a Fn(i)1260
-2060 y Fu(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f
-(the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563
-2113 y Fn(h)p 575 2087 V 575 2115 a Fm(RET)p 575 2122
-V 648 2113 a Fn(i)663 2115 y Fu(;)i(the)f(en)o(tire)h(line)g(is)g
-(accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75
-2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fj(1.2.1)30
-b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fu(In)12
-b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h
-(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f
-(app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h
-(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23
-b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h
-(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h
-(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560
-y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f
-(and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t)
-o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19
-b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fo(C-b)f
-Fu(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75
-2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13
-b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g
-(with)g Fo(C-f)p Fu(.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fu(2)1322 b(GNU)15 b(Readline)h(Library)137
-149 y(When)h(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j
-(y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75
-204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h
-(ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21
-b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j
-(the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h
-(cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e
-(blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h
-(text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75
-369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o
-(ws.)75 449 y Fo(C-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o
-(haracter.)75 530 y Fo(C-f)168 b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h
-(c)o(haracter.)75 608 y Fn(h)p 87 582 73 2 v 87 610 a
-Fm(DEL)p 87 618 V 158 608 a Fn(i)188 610 y Fu(or)244
-608 y Fn(h)p 256 582 159 2 v 256 610 a Fm(Bac)o(kspace)p
-256 618 V 412 608 a Fn(i)315 665 y Fu(Delete)h(the)f(c)o(haracter)g(to)
-f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fo(C-d)168
-b Fu(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
-825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o
-(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
-961 y Fo(C-_)g Fu(or)f Fo(C-x)h(C-u)315 1015 y Fu(Undo)i(the)g(last)f
-(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o
-(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75
-1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863
-1149 y Fn(h)p 875 1123 V 875 1151 a Fm(Bac)o(kspace)p
-875 1159 V 1032 1149 a Fn(i)1063 1151 y Fu(k)o(ey)g(b)q(e)h(set)f(to)f
-(delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h
-(cursor)f(and)g(the)596 1204 y Fn(h)p 608 1178 73 2 v
-608 1206 a Fm(DEL)p 608 1213 V 679 1204 a Fn(i)710 1206
-y Fu(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h
-(the)g(cursor,)f(lik)o(e)75 1260 y Fo(C-d)p Fu(,)e(rather)h(than)g(the)
-g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75
-1374 y Fj(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
-1471 y Fu(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e
-(basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g
-(do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12
-b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o
-(e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fo(C-b)p
-Fu(,)h Fo(C-f)p Fu(,)f Fo(C-d)p Fu(,)g(and)522 1578 y
-Fn(h)p 534 1552 V 534 1580 a Fm(DEL)p 534 1588 V 605
-1578 a Fn(i)619 1580 y Fu(.)23 b(Here)16 b(are)g(some)f(commands)h(for)
-f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635
-y(line.)75 1716 y Fo(C-a)168 b Fu(Mo)o(v)o(e)14 b(to)h(the)g(start)f
-(of)h(the)g(line.)75 1796 y Fo(C-e)168 b Fu(Mo)o(v)o(e)14
-b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fo(M-f)168
-b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h
-(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957
-y Fo(M-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75
-2037 y Fo(C-l)168 b Fu(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f
-(curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f
-Fo(C-f)g Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i
-Fo(M-f)e Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18
-b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con)
-o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h
-(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75
-2341 y Fj(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137
-2438 y Fk(Killing)26 b Fu(text)18 b(means)g(to)g(delete)i(the)f(text)f
-(from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)
-h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fk(y)o(anking)22
-b Fu(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27
-b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75
-2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137
-2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h
-(it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o
-(ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o
-(t)g(\(or)g(the)g(same\))g(place)h(later.)p eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g
-(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fk(kill-ring)p Fu(.)21
-b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75
-204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d
-(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o
-(ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i
-(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g
-(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75
-314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f
-(are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g
-(of)e(commands)h(for)g(killing)j(text.)75 458 y Fo(C-k)168
-b Fu(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q
-(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y
-Fo(M-d)168 b Fu(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e
-(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)
-e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q
-(oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f
-Fo(M-f)p Fu(.)75 668 y Fo(M-)123 666 y Fn(h)p 135 640
-73 2 v 135 668 a Fm(DEL)p 135 675 V 206 666 a Fn(i)315
-668 y Fu(Kill)i(from)e(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o
-(t)g(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)e(to)h(the)315
-723 y(start)j(of)h(the)g(previous)h(w)o(ord.)31 b(W)l(ord)19
-b(b)q(oundaries)h(are)f(the)h(same)e(as)h(those)g(used)h(b)o(y)315
-777 y Fo(M-b)p Fu(.)75 855 y Fo(C-w)168 b Fu(Kill)18
-b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22
-b(This)16 b(is)g(di\013eren)o(t)g(than)f Fo(M-)1777 853
-y Fn(h)p 1789 827 V 1789 855 a Fm(DEL)p 1789 863 V 1860
-853 a Fn(i)315 910 y Fu(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h
-(di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fk(y)o(ank)j
-Fu(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21
-b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d
-(text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fo(C-y)168
-b Fu(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g
-(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198
-y Fo(M-y)168 b Fu(Rotate)16 b(the)h(kill-ring,)j(and)d(y)o(ank)g(the)h
-(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h(prior)
-315 1252 y(command)d(is)h Fo(C-y)f Fu(or)f Fo(M-y)p Fu(.)75
-1361 y Fj(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457
-y Fu(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g
-(Readline)h(commands.)20 b(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
-1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f
-(the)g Fl(sign)j Fu(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o
-(t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)
-f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g
-(direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o
-(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o
-(k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g
-(t)o(yp)q(e)g(`)p Ft(M--)f(C-k)p Fu('.)137 1742 y(The)h(general)f(w)o
-(a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)
-h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797
-y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a)
-g(min)o(us)g(sign)g(\(`)p Ft(-)p Fu('\),)d(then)j(the)f(sign)h(of)f
-(the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31
-b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h
-(to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75
-1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g
-(then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f
-Fo(C-d)75 1961 y Fu(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f
-(could)i(t)o(yp)q(e)f(`)p Ft(M-1)14 b(0)h(C-d)p Fu(',)k(whic)o(h)g
-(will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14
-b(on)i(the)f(input)h(line.)75 2125 y Fj(1.2.5)30 b(Searc)n(hing)21
-b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fu(Readline)d(pro)o
-(vides)e(commands)g(for)g(searc)o(hing)g(through)g(the)g(command)g
-(history)g(for)g(lines)i(con-)75 2275 y(taining)e(a)f(sp)q(eci\014ed)i
-(string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20
-b Fk(incremen)o(tal)e Fu(and)e Fk(non-incremen)o(tal)p
-Fu(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f
-(the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.)
-19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g
-(string)f(is)h(t)o(yp)q(ed,)h(Readline)g(displa)o(ys)f(the)g(next)g(en)
-o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12
-b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g
-(searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75
-2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l
-(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g
-(a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fo(C-r)p
-Fu(.)k(T)o(yping)d Fo(C-s)e Fu(searc)o(hes)h(forw)o(ard)e(through)h
-(the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75
-2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Ft(isearch-terminators)d
-Fu(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75
-2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q
-(een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Fn(h)p
-1301 2642 70 2 v 1301 2670 a Fm(ESC)p 1301 2678 V 1368
-2668 a Fn(i)1402 2670 y Fu(and)e Fo(C-J)f Fu(c)o(haracters)g(will)p
-eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fu(4)1322 b(GNU)15 b(Readline)h(Library)75
-149 y(terminate)21 b(an)g(incremen)o(tal)i(searc)o(h.)37
-b Fo(C-g)21 b Fu(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f
-(and)g(restore)g(the)75 204 y(original)16 b(line.)21
-b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o
-(try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259
-y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 325 y(T)l(o)g(\014nd)i
-(other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o
-(yp)q(e)f Fo(C-r)g Fu(or)g Fo(C-s)g Fu(as)h(appropriate.)k(This)75
-380 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i
-(the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g
-(searc)o(h)g(string)75 434 y(t)o(yp)q(ed)19 b(so)g(far.)30
-b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
-h(command)e(will)j(terminate)e(the)75 489 y(searc)o(h)10
-b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063
-487 y Fn(h)p 1076 461 76 2 v 1076 489 a Fm(RET)p 1076
-497 V 1149 487 a Fn(i)1174 489 y Fu(will)g(terminate)f(the)g(searc)o(h)
-f(and)h(accept)75 544 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g
-(command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f
-(command)g(will)75 599 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g
-(last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g
-(editing.)137 665 y(Readline)j(remem)o(b)q(ers)e(the)h(last)f(incremen)
-o(tal)i(searc)o(h)e(string.)27 b(If)17 b(t)o(w)o(o)f
-Fo(C-r)p Fu(s)h(are)g(t)o(yp)q(ed)h(without)75 719 y(an)o(y)g(in)o
-(terv)o(ening)h(c)o(haracters)f(de\014ning)h(a)f(new)h(searc)o(h)f
-(string,)g(an)o(y)g(remem)o(b)q(ered)h(searc)o(h)f(string)g(is)75
-774 y(used.)137 840 y(Non-incremen)o(tal)25 b(searc)o(hes)e(read)h(the)
-f(en)o(tire)h(searc)o(h)f(string)g(b)q(efore)h(starting)f(to)f(searc)o
-(h)i(for)75 895 y(matc)o(hing)d(history)h(lines.)39 b(The)22
-b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f
-(user)h(or)e(b)q(e)i(part)f(of)g(the)75 950 y(con)o(ten)o(ts)15
-b(of)f(the)i(curren)o(t)f(line.)75 1074 y Fs(1.3)33 b(Readline)23
-b(Init)h(File)137 1169 y Fu(Although)f(the)g(Readline)h(library)f
-(comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g
-(installed)75 1224 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e
-(use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39
-b(An)o(y)20 b(user)h(can)g(customize)75 1278 y(programs)15
-b(that)h(use)g(Readline)i(b)o(y)e(putting)g(commands)g(in)i(an)e
-Fk(inputrc)k Fu(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75
-1333 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g
-(is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g
-(v)m(ariable)75 1388 y Ft(INPUTRC)p Fu(.)i(If)c(that)g(v)m(ariable)h
-(is)g(unset,)f(the)g(default)h(is)g(`)p Ft(~/.inputrc)p
-Fu('.)137 1454 y(When)f(a)g(program)f(whic)o(h)h(uses)g(the)g(Readline)
-h(library)g(starts)d(up,)i(the)g(init)h(\014le)g(is)f(read,)g(and)g
-(the)75 1509 y(k)o(ey)g(bindings)i(are)e(set.)137 1574
-y(In)f(addition,)h(the)e Ft(C-x)i(C-r)e Fu(command)g(re-reads)h(this)g
-(init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75
-1629 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75
-1737 y Fj(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
-1832 y Fu(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w)
-o(ed)i(in)f(the)g(Readline)h(init)g(\014le.)26 b(Blank)18
-b(lines)g(are)75 1886 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d
-(a)h(`)p Ft(#)p Fu(')e(are)h(commen)o(ts.)35 b(Lines)22
-b(b)q(eginning)h(with)e(a)f(`)p Ft($)p Fu(')f(indicate)75
-1941 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f
-([Conditional)h(Init)h(Constructs],)e(page)h(9\).)k(Other)c(lines)75
-1996 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75
-2073 y(V)l(ariable)h(Settings)315 2128 y(Y)l(ou)k(can)h(mo)q(dify)g
-(the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)j(b)o(y)e(altering)h
-(the)f(v)m(alues)h(of)315 2182 y(v)m(ariables)d(in)g(Readline)g(using)f
-(the)g Ft(set)g Fu(command)f(within)i(the)f(init)h(\014le.)26
-b(The)17 b(syn)o(tax)315 2237 y(is)f(simple:)435 2300
-y Ft(set)23 b Fk(v)m(ariable)28 b(v)m(alue)315 2366 y
-Fu(Here,)14 b(for)f(example,)h(is)g(ho)o(w)f(to)g(c)o(hange)h(from)f
-(the)h(default)g(Emacs-lik)o(e)h(k)o(ey)e(binding)j(to)315
-2421 y(use)g Ft(vi)e Fu(line)j(editing)g(commands:)435
-2484 y Ft(set)23 b(editing-mode)g(vi)315 2549 y Fu(V)l(ariable)c(names)
-e(and)h(v)m(alues,)h(where)e(appropriate,)h(are)f(recognized)i(without)
-e(regard)315 2604 y(to)e(case.)315 2670 y(A)g(great)g(deal)g(of)g
-(run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)h(follo)o
-(wing)f(v)m(ariables.)p eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(5)315 149 y Ft(bell-style)555 204 y Fu(Con)o(trols)21
-b(what)h(happ)q(ens)h(when)f(Readline)h(w)o(an)o(ts)e(to)g(ring)i(the)f
-(termi-)555 259 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p
-Ft(none)p Fu(',)g(Readline)i(nev)o(er)f(rings)g(the)f(b)q(ell.)32
-b(If)19 b(set)g(to)555 314 y(`)p Ft(visible)p Fu(',)c(Readline)i(uses)g
-(a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26
-b(If)16 b(set)h(to)555 369 y(`)p Ft(audible)p Fu(')g(\(the)h
-(default\),)i(Readline)g(attempts)e(to)g(ring)h(the)g(terminal's)555
-423 y(b)q(ell.)315 504 y Ft(comment-begin)555 559 y Fu(The)c(string)f
-(to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g
-Ft(insert-)555 614 y(comment)f Fu(command)h(is)h(executed.)21
-b(The)15 b(default)h(v)m(alue)g(is)g Ft("#")p Fu(.)315
-694 y Ft(completion-ignore-case)555 749 y Fu(If)e(set)f(to)g(`)p
-Ft(on)p Fu(',)g(Readline)i(p)q(erforms)e(\014lename)i(matc)o(hing)f
-(and)g(completion)555 804 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k
-(The)15 b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)315
-884 y Ft(completion-query-items)555 939 y Fu(The)d(n)o(um)o(b)q(er)h
-(of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f
-(user)555 994 y(is)21 b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i
-(see)g(the)g(list)h(of)e(p)q(ossibilitie)q(s.)40 b(If)21
-b(the)555 1049 y(n)o(um)o(b)q(er)14 b(of)f(p)q(ossible)i(completions)f
-(is)g(greater)f(than)g(this)h(v)m(alue,)h(Readline)555
-1104 y(will)g(ask)e(the)g(user)h(whether)f(or)g(not)g(he)g(wishes)h(to)
-f(view)h(them;)f(otherwise,)555 1158 y(they)f(are)g(simply)i(listed.)20
-b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger)
-h(v)m(alue)555 1213 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d
-(default)f(limit)i(is)f Ft(100)p Fu(.)315 1294 y Ft(convert-meta)555
-1348 y Fu(If)11 b(set)g(to)g(`)p Ft(on)p Fu(',)f(Readline)i(will)h(con)
-o(v)o(ert)d(c)o(haracters)h(with)g(the)g(eigh)o(th)h(bit)f(set)555
-1403 y(to)f(an)h Fp(asci)q(i)e Fu(k)o(ey)i(sequence)g(b)o(y)g
-(stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555
-1456 y Fn(h)p 567 1430 70 2 v 567 1458 a Fm(ESC)p 567
-1466 V 634 1456 a Fn(i)666 1458 y Fu(c)o(haracter,)k(con)o(v)o(erting)h
-(them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555
-1513 y(The)e(default)h(v)m(alue)h(is)e(`)p Ft(on)p Fu('.)315
-1593 y Ft(disable-completion)555 1648 y Fu(If)k(set)f(to)f(`)p
-Ft(On)p Fu(',)h(Readline)i(will)g(inhibit)g(w)o(ord)e(completion.)30
-b(Completion)555 1703 y(c)o(haracters)12 b(will)j(b)q(e)f(inserted)g
-(in)o(to)f(the)g(line)h(as)f(if)h(they)f(had)g(b)q(een)h(mapp)q(ed)555
-1758 y(to)h Ft(self-insert)p Fu(.)j(The)d(default)h(is)g(`)p
-Ft(off)p Fu('.)315 1838 y Ft(editing-mode)555 1893 y
-Fu(The)f Ft(editing-mode)d Fu(v)m(ariable)k(con)o(trols)e(whic)o(h)h
-(default)g(set)f(of)g(k)o(ey)g(bind-)555 1948 y(ings)f(is)g(used.)20
-b(By)12 b(default,)i(Readline)f(starts)f(up)h(in)g(Emacs)f(editing)i
-(mo)q(de,)555 2003 y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g
-(similar)i(to)d(Emacs.)20 b(This)15 b(v)m(ariable)h(can)555
-2058 y(b)q(e)g(set)f(to)f(either)i(`)p Ft(emacs)p Fu(')e(or)h(`)p
-Ft(vi)p Fu('.)315 2138 y Ft(enable-keypad)555 2193 y
-Fu(When)d(set)f(to)h(`)p Ft(on)p Fu(',)e(Readline)j(will)h(try)d(to)g
-(enable)i(the)f(application)h(k)o(eypad)555 2248 y(when)h(it)f(is)h
-(called.)21 b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g
-(arro)o(w)e(k)o(eys.)555 2303 y(The)j(default)h(is)g(`)p
-Ft(off)p Fu('.)315 2383 y Ft(expand-tilde)555 2438 y
-Fu(If)e(set)g(to)f(`)p Ft(on)p Fu(',)f(tilde)k(expansion)e(is)h(p)q
-(erformed)f(when)g(Readline)h(attempts)555 2493 y(w)o(ord)g
-(completion.)21 b(The)15 b(default)h(is)f(`)p Ft(off)p
-Fu('.)555 2560 y(If)g(set)g(to)f(`)p Ft(on)p Fu(',)g(the)g(history)h
-(co)q(de)h(attempts)e(to)g(place)i(p)q(oin)o(t)f(at)f(the)h(same)555
-2615 y(lo)q(cation)20 b(on)f(eac)o(h)g(history)h(line)g(retriv)o(ed)g
-(with)f Ft(previous-history)e Fu(or)555 2670 y Ft(next-history)p
-Fu(.)p eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fu(6)1322 b(GNU)15 b(Readline)h(Library)315
-149 y Ft(horizontal-scroll-mode)555 204 y Fu(This)j(v)m(ariable)g(can)f
-(b)q(e)g(set)g(to)f(either)i(`)p Ft(on)p Fu(')e(or)g(`)p
-Ft(off)p Fu('.)27 b(Setting)19 b(it)f(to)f(`)p Ft(on)p
-Fu(')555 259 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q(eing)
-f(edited)g(will)h(scroll)f(horizon)o(tally)555 314 y(on)i(a)f(single)i
-(screen)g(line)g(when)g(they)f(are)f(longer)h(than)g(the)g(width)g(of)g
-(the)555 369 y(screen,)e(instead)f(of)g(wrapping)g(on)o(to)f(a)h(new)g
-(screen)h(line.)21 b(By)13 b(default,)h(this)555 423
-y(v)m(ariable)j(is)e(set)g(to)g(`)p Ft(off)p Fu('.)315
-506 y Ft(input-meta)555 560 y Fu(If)h(set)f(to)g(`)p
-Ft(on)p Fu(',)f(Readline)j(will)h(enable)e(eigh)o(t-bit)h(input)f(\(it)
-g(will)h(not)e(clear)555 615 y(the)20 b(eigh)o(th)g(bit)g(in)h(the)f(c)
-o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)555
-670 y(terminal)i(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20
-b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)33 b(The)555
-725 y(name)15 b Ft(meta-flag)f Fu(is)i(a)f(synon)o(ym)g(for)f(this)i(v)
-m(ariable.)315 807 y Ft(isearch-terminators)555 862 y
-Fu(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f
-(an)g(incremen)o(tal)555 917 y(searc)o(h)12 b(without)h(subsequen)o
-(tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555
-971 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40
-b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 1026 y(b)q(een)17
-b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247
-1024 y Fn(h)p 1259 998 70 2 v 1259 1026 a Fm(ESC)p 1259
-1034 V 1326 1024 a Fn(i)1357 1026 y Fu(and)g Fo(C-J)f
-Fu(will)i(terminate)f(an)555 1081 y(incremen)o(tal)g(searc)o(h.)315
-1163 y Ft(keymap)96 b Fu(Sets)19 b(Readline's)i(idea)f(of)f(the)g
-(curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555
-1218 y(mands.)41 b(Acceptable)23 b Ft(keymap)f Fu(names)g(are)f
-Ft(emacs)p Fu(,)i Ft(emacs-standard)p Fu(,)555 1273 y
-Ft(emacs-meta)p Fu(,)49 b Ft(emacs-ctlx)p Fu(,)g Ft(vi)p
-Fu(,)h Ft(vi-move)p Fu(,)f Ft(vi-command)p Fu(,)g(and)555
-1328 y Ft(vi-insert)p Fu(.)31 b Ft(vi)20 b Fu(is)g(equiv)m(alen)o(t)h
-(to)e Ft(vi-command)p Fu(;)g Ft(emacs)g Fu(is)h(equiv)m(alen)o(t)555
-1382 y(to)15 b Ft(emacs-standard)p Fu(.)20 b(The)d(default)f(v)m(alue)h
-(is)g Ft(emacs)p Fu(.)k(The)16 b(v)m(alue)h(of)f(the)555
-1437 y Ft(editing-mode)e Fu(v)m(ariable)i(also)f(a\013ects)g(the)g
-(default)h(k)o(eymap.)315 1519 y Ft(mark-directories)555
-1574 y Fu(If)j(set)g(to)g(`)p Ft(on)p Fu(',)f(completed)i(directory)g
-(names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1629
-y(The)15 b(default)h(is)g(`)p Ft(on)p Fu('.)315 1711
-y Ft(mark-modified-lines)555 1766 y Fu(This)j(v)m(ariable,)g(when)g
-(set)e(to)h(`)p Ft(on)p Fu(',)f(causes)h(Readline)h(to)e(displa)o(y)i
-(an)f(as-)555 1821 y(terisk)f(\(`)p Ft(*)p Fu('\))e(at)i(the)f(start)g
-(of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q
-(di\014ed.)555 1875 y(This)e(v)m(ariable)g(is)g(`)p Ft(off)p
-Fu(')e(b)o(y)h(default.)315 1958 y Ft(mark-symlinked-directories)555
-2012 y Fu(If)23 b(set)f(to)f(`)p Ft(on)p Fu(',)i(completed)g(names)g
-(whic)o(h)g(are)f(sym)o(b)q(olic)i(links)f(to)f(di-)555
-2067 y(rectories)h(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(\(sub)s(ject)
-e(to)f(the)i(v)m(alue)g(of)f Ft(mark-)555 2122 y(directories)p
-Fu(\).)18 b(The)d(default)h(is)g(`)p Ft(off)p Fu('.)315
-2204 y Ft(match-hidden-files)555 2259 y Fu(This)c(v)m(ariable,)h(when)e
-(set)g(to)g(`)p Ft(on)p Fu(',)f(causes)h(Readline)i(to)d(matc)o(h)h
-(\014les)h(whose)555 2314 y(names)22 b(b)q(egin)h(with)g(a)e(`)p
-Ft(.)p Fu(')h(\(hidden)h(\014les\))g(when)f(p)q(erforming)h(\014lename)
-555 2369 y(completion,)g(unless)f(the)f(leading)h(`)p
-Ft(.)p Fu(')e(is)h(supplied)i(b)o(y)e(the)f(user)h(in)h(the)555
-2423 y(\014lename)16 b(to)f(b)q(e)h(completed.)21 b(This)15
-b(v)m(ariable)i(is)f(`)p Ft(on)p Fu(')e(b)o(y)h(default.)315
-2506 y Ft(output-meta)555 2560 y Fu(If)j(set)f(to)g(`)p
-Ft(on)p Fu(',)g(Readline)i(will)h(displa)o(y)f(c)o(haracters)d(with)j
-(the)e(eigh)o(th)h(bit)555 2615 y(set)g(directly)i(rather)d(than)h(as)g
-(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555
-2670 y(default)16 b(is)f(`)p Ft(off)p Fu('.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(7)315 149 y Ft(page-completions)555 204 y Fu(If)17
-b(set)g(to)f(`)p Ft(on)p Fu(',)g(Readline)i(uses)g(an)e(in)o(ternal)i
-Ft(more)p Fu(-lik)o(e)g(pager)f(to)f(displa)o(y)555 259
-y(a)g(screenful)h(of)f(p)q(ossible)i(completions)f(at)f(a)g(time.)23
-b(This)17 b(v)m(ariable)g(is)g(`)p Ft(on)p Fu(')555 314
-y(b)o(y)e(default.)315 395 y Ft(print-completions-horizont)o(ally)555
-450 y Fu(If)d(set)g(to)f(`)p Ft(on)p Fu(',)h(Readline)h(will)g(displa)o
-(y)h(completions)f(with)f(matc)o(hes)f(sorted)555 505
-y(horizon)o(tally)23 b(in)f(alphab)q(etical)i(order,)f(rather)e(than)g
-(do)o(wn)h(the)g(screen.)555 560 y(The)15 b(default)h(is)g(`)p
-Ft(off)p Fu('.)315 641 y Ft(show-all-if-ambiguous)555
-696 y Fu(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h
-(completion)h(functions.)21 b(If)15 b(set)555 751 y(to)e(`)p
-Ft(on)p Fu(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h
-(p)q(ossible)i(completion)f(cause)555 806 y(the)20 b(matc)o(hes)f(to)f
-(b)q(e)j(listed)f(immediately)h(instead)f(of)f(ringing)i(the)e(b)q
-(ell.)555 861 y(The)c(default)h(v)m(alue)h(is)e(`)p Ft(off)p
-Fu('.)315 942 y Ft(visible-stats)555 997 y Fu(If)h(set)g(to)f(`)p
-Ft(on)p Fu(',)g(a)h(c)o(haracter)f(denoting)h(a)g(\014le's)h(t)o(yp)q
-(e)f(is)g(app)q(ended)i(to)d(the)555 1052 y(\014lename)h(when)g
-(listing)h(p)q(ossible)g(completions.)j(The)c(default)g(is)f(`)p
-Ft(off)p Fu('.)75 1133 y(Key)h(Bindings)315 1188 y(The)21
-b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h(in)g(the)f
-(init)h(\014le)g(is)g(simple.)39 b(First)20 b(y)o(ou)315
-1243 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f(command)h(that)f
-(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 b(The)14 b(follo)o(wing)315
-1298 y(sections)k(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g
-(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315
-1353 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q
-(es.)315 1421 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
-(command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315
-1476 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e
-(bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315
-1530 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g
-(k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315
-1585 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most)
-e(comfortable.)315 1653 y(In)19 b(addition)g(to)e(command)h(names,)g
-(readline)i(allo)o(ws)e(k)o(eys)g(to)f(b)q(e)i(b)q(ound)g(to)e(a)h
-(string)315 1708 y(that)c(is)i(inserted)g(when)g(the)f(k)o(ey)g(is)h
-(pressed)g(\(a)e Fk(macro)r Fu(\).)315 1790 y Fk(k)o(eyname)s
-Fu(:)19 b Fk(function-name)g Fu(or)c Fk(macro)555 1845
-y(k)o(eyname)i Fu(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out)
-d(in)h(English.)21 b(F)l(or)13 b(example:)675 1910 y
-Ft(Control-u:)22 b(universal-argument)675 1962 y(Meta-Rubout:)g
-(backward-kill-word)675 2014 y(Control-o:)g(">)i(output")555
-2082 y Fu(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i Fo(C-u)e
-Fu(is)h(b)q(ound)g(to)f(the)g(function)h Ft(universal-)555
-2137 y(argument)p Fu(,)e Fo(M-DEL)h Fu(is)g(b)q(ound)h(to)e(the)h
-(function)h Ft(backward-kill-word)p Fu(,)555 2191 y(and)g
-Fo(C-o)f Fu(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g
-(the)f(righ)o(t)h(hand)555 2246 y(side)c(\(that)e(is,)i(to)e(insert)i
-(the)f(text)g(`)p Ft(>)f(output)p Fu(')g(in)o(to)i(the)f(line\).)555
-2314 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e
-(names)g(are)g(recognized)i(while)g(pro-)555 2369 y(cessing)13
-b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fk(DEL)p
-Fu(,)11 b Fk(ESC)p Fu(,)h Fk(ESCAPE)p Fu(,)f Fk(LFD)p
-Fu(,)g Fk(NEW-)555 2424 y(LINE)p Fu(,)16 b Fk(RET)p Fu(,)e
-Fk(RETURN)p Fu(,)f Fk(R)o(UBOUT)p Fu(,)i Fk(SP)l(A)o(CE)p
-Fu(,)g Fk(SPC)p Fu(,)f(and)i Fk(T)l(AB)p Fu(.)315 2506
-y Ft(")p Fk(k)o(eyseq)q Ft(")p Fu(:)k Fk(function-name)e
-Fu(or)d Fk(macro)555 2560 y(k)o(eyseq)i Fu(di\013ers)e(from)g
-Fk(k)o(eyname)j Fu(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g
-(an)f(en-)555 2615 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q
-(eci\014ed,)i(b)o(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555
-2670 y(double)e(quotes.)j(Some)c Fp(gnu)g Fu(Emacs)f(st)o(yle)h(k)o(ey)
-g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fu(8)1322 b(GNU)15 b(Readline)h(Library)555
-149 y(in)i(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o
-(haracter)d(names)h(are)f(not)555 204 y(recognized.)675
-270 y Ft("\\C-u":)23 b(universal-argument)675 322 y("\\C-x\\C-r":)f
-(re-read-init-file)675 373 y("\\e[11~":)h("Function)f(Key)i(1")555
-442 y Fu(In)33 b(the)f(ab)q(o)o(v)o(e)g(example,)37 b
-Fo(C-u)32 b Fu(is)h(again)f(b)q(ound)h(to)f(the)g(function)555
-497 y Ft(universal-argument)19 b Fu(\(just)j(as)f(it)h(w)o(as)f(in)i
-(the)f(\014rst)f(example\),)j(`)p Fo(C-x)555 551 y(C-r)p
-Fu(')c(is)h(b)q(ound)g(to)f(the)h(function)g Ft(re-read-init-file)p
-Fu(,)f(and)g(`)1731 549 y Fn(h)p 1743 523 70 2 v 1743
-551 a Fm(ESC)p 1743 559 V 1810 549 a Fn(i)15 b(h)p 1852
-523 10 2 v 1852 551 a Fm([)p 1852 560 V 1860 549 a Fn(i)555
-604 y(h)p 567 578 18 2 v 567 606 a Fm(1)p 567 614 V 583
-604 a Fn(i)g(h)p 625 578 V 625 606 a Fm(1)p 625 614 V
-640 604 a Fn(i)g(h)p 683 578 24 2 v 683 606 a Ft(~)p
-683 614 V 704 604 a Fn(i)719 606 y Fu(')g(is)h(b)q(ound)g(to)e(insert)i
-(the)f(text)g(`)p Ft(Function)f(Key)g(1)p Fu('.)315 688
-y(The)h(follo)o(wing)h Fp(gnu)e Fu(Emacs)h(st)o(yle)g(escap)q(e)h
-(sequences)g(are)e(a)o(v)m(ailable)j(when)e(sp)q(ecifying)315
-743 y(k)o(ey)g(sequences:)315 825 y Fo(\\C-)168 b Fu(con)o(trol)15
-b(pre\014x)315 907 y Fo(\\M-)168 b Fu(meta)15 b(pre\014x)315
-989 y Fo(\\e)192 b Fu(an)15 b(escap)q(e)h(c)o(haracter)315
-1071 y Fo(\\\\)192 b Fu(bac)o(kslash)315 1152 y Fo(\\)p
-Ft(")555 1150 y Fn(h)p 567 1124 V 567 1152 a Ft(")p 567
-1160 V 589 1150 a Fn(i)604 1152 y Fu(,)15 b(a)f(double)j(quotation)e
-(mark)315 1234 y Fo(\\')555 1232 y Fn(h)p 567 1206 10
-2 v 567 1234 a Fm(')p 567 1242 V 575 1232 a Fn(i)590
-1234 y Fu(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315
-1316 y(In)f(addition)h(to)f(the)f Fp(gnu)h Fu(Emacs)g(st)o(yle)f(escap)
-q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315
-1371 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 1453 y
-Ft(\\a)192 b Fu(alert)15 b(\(b)q(ell\))315 1535 y Ft(\\b)192
-b Fu(bac)o(kspace)315 1617 y Ft(\\d)g Fu(delete)315 1699
-y Ft(\\f)g Fu(form)14 b(feed)315 1781 y Ft(\\n)192 b
-Fu(newline)315 1862 y Ft(\\r)g Fu(carriage)15 b(return)315
-1944 y Ft(\\t)192 b Fu(horizon)o(tal)16 b(tab)315 2026
-y Ft(\\v)192 b Fu(v)o(ertical)16 b(tab)315 2108 y Ft(\\)p
-Fk(nnn)141 b Fu(the)17 b(eigh)o(t-bit)h(c)o(haracter)f(whose)g(v)m
-(alue)i(is)e(the)h(o)q(ctal)f(v)m(alue)i Fk(nnn)f Fu(\(one)f(to)555
-2163 y(three)e(digits\))315 2245 y Ft(\\x)p Fk(HH)124
-b Fu(the)20 b(eigh)o(t-bit)g(c)o(haracter)f(whose)h(v)m(alue)h(is)f
-(the)g(hexadecimal)h(v)m(alue)g Fk(HH)555 2300 y Fu(\(one)15
-b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2382 y(When)k(en)o(tering)g(the)g
-(text)f(of)g(a)h(macro,)f(single)i(or)e(double)i(quotes)f(m)o(ust)f(b)q
-(e)h(used)h(to)315 2436 y(indicate)12 b(a)f(macro)f(de\014nition.)20
-b(Unquoted)11 b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i
-(name.)18 b(In)315 2491 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o
-(kslash)g(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.)
-20 b(Bac)o(kslash)315 2546 y(will)i(quote)d(an)o(y)h(other)g(c)o
-(haracter)f(in)i(the)f(macro)f(text,)h(including)j(`)p
-Ft(")p Fu(')c(and)h(`)p Ft(')p Fu('.)34 b(F)l(or)315
-2601 y(example,)14 b(the)f(follo)o(wing)g(binding)i(will)g(mak)o(e)d(`)
-p Fo(C-x)i Ft(\\)p Fu(')f(insert)g(a)g(single)h(`)p Ft(\\)p
-Fu(')e(in)o(to)h(the)g(line:)435 2666 y Ft("\\C-x\\\\":)23
-b("\\\\")p eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(9)75 149 y Fj(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)137
-246 y Fu(Readline)f(implemen)o(ts)g(a)f(facilit)o(y)g(similar)h(in)g
-(spirit)f(to)f(the)h(conditional)h(compilation)g(features)75
-301 y(of)e(the)g(C)g(prepro)q(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g
-(bindings)i(and)f(v)m(ariable)g(settings)f(to)g(b)q(e)h(p)q(erformed)f
-(as)75 355 y(the)e(result)h(of)f(tests.)k(There)c(are)g(four)g(parser)g
-(directiv)o(es)h(used.)75 435 y Ft($if)168 b Fu(The)16
-b Ft($if)f Fu(construct)g(allo)o(ws)h(bindings)i(to)d(b)q(e)h(made)g
-(based)g(on)f(the)h(editing)h(mo)q(de,)f(the)315 490
-y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i(using)e
-(Readline.)33 b(The)19 b(text)g(of)f(the)i(test)315 545
-y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters)f
-(are)h(required)i(to)d(isolate)i(it.)315 624 y Ft(mode)144
-b Fu(The)11 b Ft(mode=)e Fu(form)h(of)g(the)h Ft($if)f
-Fu(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555
-679 y(is)k(in)h Ft(emacs)e Fu(or)g Ft(vi)g Fu(mo)q(de.)20
-b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555
-734 y(`)p Ft(set)f(keymap)p Fu(')f(command,)g(for)h(instance,)g(to)f
-(set)h(bindings)h(in)g(the)f Ft(emacs-)555 789 y(standard)d
-Fu(and)i Ft(emacs-ctlx)e Fu(k)o(eymaps)h(only)i(if)f(Readline)g(is)g
-(starting)f(out)555 844 y(in)k Ft(emacs)f Fu(mo)q(de.)315
-923 y Ft(term)144 b Fu(The)14 b Ft(term=)e Fu(form)h(ma)o(y)g(b)q(e)h
-(used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555
-978 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j
-(output)e(b)o(y)g(the)g(terminal's)555 1033 y(function)13
-b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g
-(the)g(`)p Ft(=)p Fu(')f(is)h(tested)g(against)555 1088
-y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q
-(ortion)h(of)e(the)h(terminal)555 1142 y(name)i(b)q(efore)g(the)g
-(\014rst)f(`)p Ft(-)p Fu('.)24 b(This)17 b(allo)o(ws)g
-Ft(sun)f Fu(to)g(matc)o(h)h(b)q(oth)f Ft(sun)h Fu(and)555
-1197 y Ft(sun-cmd)p Fu(,)d(for)g(instance.)315 1277 y
-Ft(application)555 1332 y Fu(The)d Fk(application)i Fu(construct)e(is)g
-(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
-1386 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)i
-(library)f(sets)f(the)g Fk(application)555 1441 y(name)p
-Fu(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)h(v)m(alue.)20
-b(This)12 b(could)h(b)q(e)f(used)h(to)555 1496 y(bind)18
-b(k)o(ey)e(sequences)i(to)d(functions)j(useful)f(for)f(a)g(sp)q
-(eci\014c)i(program.)23 b(F)l(or)555 1551 y(instance,)17
-b(the)g(follo)o(wing)g(command)g(adds)f(a)g(k)o(ey)h(sequence)g(that)f
-(quotes)555 1606 y(the)f(curren)o(t)g(or)g(previous)h(w)o(ord)e(in)j
-(Bash:)675 1670 y Ft($if)23 b(Bash)675 1722 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)675 1774 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")675 1826 y($endif)75 1905 y($endif)96
-b Fu(This)16 b(command,)e(as)h(seen)h(in)g(the)f(previous)h(example,)g
-(terminates)f(an)g Ft($if)f Fu(command.)75 1985 y Ft($else)120
-b Fu(Commands)15 b(in)h(this)f(branc)o(h)h(of)e(the)i
-Ft($if)e Fu(directiv)o(e)j(are)e(executed)h(if)g(the)f(test)g(fails.)75
-2065 y Ft($include)48 b Fu(This)22 b(directiv)o(e)h(tak)o(es)e(a)h
-(single)h(\014lename)g(as)e(an)h(argumen)o(t)f(and)h(reads)f(commands)
-315 2120 y(and)e(bindings)j(from)c(that)h(\014le.)33
-b(F)l(or)19 b(example,)i(the)e(follo)o(wing)h(directiv)o(e)h(reads)e
-(from)315 2174 y(`)p Ft(/etc/inputrc)p Fu(':)435 2239
-y Ft($include)k(/etc/inputrc)75 2351 y Fj(1.3.3)30 b(Sample)20
-b(Init)h(File)137 2447 y Fu(Here)16 b(is)g(an)f(example)h(of)f(an)g
-Fk(inputrc)k Fu(\014le.)i(This)16 b(illustrates)g(k)o(ey)f(binding,)i
-(v)m(ariable)f(assignmen)o(t,)75 2502 y(and)f(conditional)i(syn)o(tax.)
-p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fu(10)1299 b(GNU)15 b(Readline)h(Library)195
-201 y Ft(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
-(input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(GNU)
-f(Readline)g(library.)47 b(Existing)195 305 y(#)24 b(programs)e
-(include)h(FTP,)h(Bash,)f(and)g(GDB.)195 357 y(#)195
-409 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h(C-x)f
-(C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h(comments.)
-195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g(systemwide)g
-(bindings)f(and)i(variable)195 616 y(#)g(assignments)e(from)h
-(/etc/Inputrc)195 668 y($include)g(/etc/Inputrc)195 772
-y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)195
-928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195
-1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the)
-f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v
-195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
-1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195
-1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g
-(previous-history)195 1550 y(#"\\M-OB":)g(next-history)195
-1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
-1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195
-1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g
-(previous-history)195 1914 y("\\M-[B":)g(next-history)195
-1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
-195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195
-2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g
-(previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195
-2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
-195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195
-2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g
-(previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p
-eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(11)195 201 y Ft(C-q:)23 b(quoted-insert)195 305 y($endif)195
-409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h
-(the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g
-(are)h(convenient)e(for)h(shell)h(interaction)195 616
-y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720
-y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195
-772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)195
-824 y(#)g(insert)f(open)g(and)h(close)f(double)g(quotes)195
-876 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g(quote)195
-928 y("\\C-x\\"":)g("\\"\\"\\C-b")195 980 y(#)h(insert)f(a)g(backslash)
-g(\(testing)g(backslash)g(escapes)195 1032 y(#)h(in)f(sequences)g(and)g
-(macros\))195 1083 y("\\C-x\\\\":)g("\\\\")195 1135 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)195 1187 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")195 1239 y(#)h(Add)f(a)h(binding)f(to)g(refresh)g
-(the)h(line,)f(which)g(is)h(unbound)195 1291 y("\\C-xr":)f
-(redraw-current-line)195 1343 y(#)h(Edit)f(variable)g(on)g(current)g
-(line.)195 1395 y("\\M-\\C-v":)f("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)
-o(")195 1447 y($endif)195 1550 y(#)i(use)f(a)h(visible)f(bell)g(if)h
-(one)f(is)h(available)195 1602 y(set)f(bell-style)g(visible)195
-1706 y(#)h(don't)f(strip)g(characters)g(to)g(7)h(bits)f(when)h(reading)
-195 1758 y(set)f(input-meta)g(on)195 1862 y(#)h(allow)f(iso-latin1)f
-(characters)h(to)g(be)h(inserted)f(rather)195 1914 y(#)h(than)f
-(converted)g(to)g(prefix-meta)g(sequences)195 1966 y(set)g
-(convert-meta)g(off)195 2069 y(#)h(display)f(characters)f(with)h(the)h
-(eighth)f(bit)g(set)h(directly)195 2121 y(#)g(rather)f(than)g(as)h
-(meta-prefixed)e(characters)195 2173 y(set)h(output-meta)g(on)195
-2277 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g
-(completions)f(for)195 2329 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g
-(he)h(wants)f(to)h(see)f(all)h(of)f(them)195 2381 y(set)g
-(completion-query-items)e(150)195 2484 y(#)j(For)f(FTP)195
-2536 y($if)g(Ftp)195 2588 y("\\C-xg":)g("get)g(\\M-?")195
-2640 y("\\C-xt":)g("put)g(\\M-?")p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fu(12)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft("\\M-.":)23 b(yank-last-arg)195 201 y($endif)75
-329 y Fs(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
-425 y Fu(This)17 b(section)f(describ)q(es)h(Readline)g(commands)f(that)
-e(ma)o(y)h(b)q(e)i(b)q(ound)f(to)f(k)o(ey)h(sequences.)22
-b(Com-)75 480 y(mand)15 b(names)g(without)h(an)f(accompan)o(ying)g(k)o
-(ey)g(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)f(default.)137
-547 y(In)f(the)f(follo)o(wing)h(descriptions,)h Fk(p)q(oin)o(t)f
-Fu(refers)f(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)j(and)e
-Fk(mark)i Fu(refers)75 601 y(to)k(a)g(cursor)g(p)q(osition)h(sa)o(v)o
-(ed)f(b)o(y)h(the)f Ft(set-mark)g Fu(command.)32 b(The)20
-b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)g(and)75
-656 y(mark)15 b(is)g(referred)h(to)e(as)h(the)g Fk(region)p
-Fu(.)75 767 y Fj(1.4.1)30 b(Commands)21 b(F)-5 b(or)19
-b(Mo)n(ving)75 888 y Ft(beginning-of-line)13 b(\(C-a\))315
-942 y Fu(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g(line.)
-75 1034 y Ft(end-of-line)f(\(C-e\))315 1088 y Fu(Mo)o(v)o(e)g(to)h(the)
-g(end)h(of)f(the)g(line.)75 1179 y Ft(forward-char)f(\(C-f\))315
-1234 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75
-1325 y Ft(backward-char)e(\(C-b\))315 1380 y Fu(Mo)o(v)o(e)h(bac)o(k)h
-(a)g(c)o(haracter.)75 1471 y Ft(forward-word)f(\(M-f\))315
-1526 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h
-(w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315
-1581 y(digits.)75 1672 y Ft(backward-word)e(\(M-b\))315
-1727 y Fu(Mo)o(v)o(e)j(bac)o(k)g(to)h(the)f(start)g(of)g(the)h(curren)o
-(t)g(or)f(previous)i(w)o(ord.)24 b(W)l(ords)16 b(are)h(comp)q(osed)315
-1782 y(of)e(letters)g(and)g(digits.)75 1873 y Ft(clear-screen)f
-(\(C-l\))315 1928 y Fu(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g
-(curren)o(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g
-(top)315 1982 y(of)i(the)g(screen.)75 2074 y Ft(redraw-current-line)e
-(\(\))315 2128 y Fu(Refresh)i(the)g(curren)o(t)g(line.)22
-b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 2239
-y Fj(1.4.2)30 b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f
-(History)75 2360 y Ft(accept-line)14 b(\(Newline)g(or)h(Return\))315
-2414 y Fu(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor)
-f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315
-2469 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g
-(future)g(recall)h(with)f Ft(add_history\(\))p Fu(.)k(If)d(this)315
-2524 y(line)g(is)f(a)e(mo)q(di\014ed)j(history)e(line,)i(the)e(history)
-g(line)i(is)f(restored)e(to)h(its)g(original)i(state.)75
-2615 y Ft(previous-history)c(\(C-p\))315 2670 y Fu(Mo)o(v)o(e)h(`bac)o
-(k')h(through)f(the)i(history)f(list,)g(fetc)o(hing)h(the)f(previous)h
-(command.)p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(13)75 149 y Ft(next-history)14 b(\(C-n\))315 204 y
-Fu(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)f(list,)g(fetc)o
-(hing)h(the)f(next)h(command.)75 307 y Ft(beginning-of-history)c
-(\(M-<\))315 362 y Fu(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f
-(the)f(history)l(.)75 465 y Ft(end-of-history)e(\(M->\))315
-520 y Fu(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h(history)l(,)f
-(i.e.,)g(the)g(line)i(curren)o(tly)f(b)q(eing)g(en)o(tered.)75
-624 y Ft(reverse-search-history)c(\(C-r\))315 678 y Fu(Searc)o(h)k(bac)
-o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving)
-h(`up')f(through)g(the)h(his-)315 733 y(tory)e(as)h(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 836
-y Ft(forward-search-history)c(\(C-s\))315 891 y Fu(Searc)o(h)j(forw)o
-(ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)
-o(wn')f(through)g(the)h(the)315 946 y(history)g(as)g(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 1049
-y Ft(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315
-1104 y Fu(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o
-(t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315
-1159 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o(tal)j(searc)o
-(h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 1214
-y(user.)75 1317 y Ft(non-incremental-forward-se)o(arch-hi)o(story)12
-b(\(M-n\))315 1372 y Fu(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f
-(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the)
-315 1426 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i
-(searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315
-1481 y(user.)75 1584 y Ft(history-search-forward)f(\(\))315
-1639 y Fu(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f
-(the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315
-1694 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o
-(t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27
-b(By)315 1749 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-1852 y Ft(history-search-backward)c(\(\))315 1907 y Fu(Searc)o(h)18
-b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f
-(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1962 y(start)e(of)h(the)h
-(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18
-b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315
-2016 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-2120 y Ft(yank-nth-arg)e(\(M-C-y\))315 2174 y Fu(Insert)f(the)g
-(\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h
-(the)f(second)h(w)o(ord)e(on)315 2229 y(the)j(previous)h(line\))g(at)e
-(p)q(oin)o(t.)21 b(With)15 b(an)g(argumen)o(t)f Fk(n)p
-Fu(,)h(insert)g(the)g Fk(n)p Fu(th)g(w)o(ord)g(from)f(the)315
-2284 y(previous)g(command)g(\(the)f(w)o(ords)f(in)j(the)e(previous)i
-(command)e(b)q(egin)i(with)e(w)o(ord)g(0\).)19 b(A)315
-2339 y(negativ)o(e)13 b(argumen)o(t)f(inserts)h(the)g
-Fk(n)p Fu(th)g(w)o(ord)f(from)g(the)h(end)h(of)e(the)h(previous)g
-(command.)75 2442 y Ft(yank-last-arg)g(\(M-.)i(or)g(M-_\))315
-2497 y Fu(Insert)j(last)f(argumen)o(t)g(to)g(the)g(previous)i(command)e
-(\(the)g(last)h(w)o(ord)f(of)g(the)g(previous)315 2552
-y(history)e(en)o(try\).)20 b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v)
-o(e)g(exactly)h(lik)o(e)g Ft(yank-nth-arg)p Fu(.)j(Succes-)315
-2606 y(siv)o(e)f(calls)g(to)f Ft(yank-last-arg)e Fu(mo)o(v)o(e)i(bac)o
-(k)g(through)g(the)g(history)g(list,)i(inserting)f(the)315
-2661 y(last)d(argumen)o(t)g(of)f(eac)o(h)i(line)g(in)g(turn.)p
-eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fu(14)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(1.4.3)30 b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5
-b(ext)75 286 y Ft(delete-char)14 b(\(C-d\))315 341 y
-Fu(Delete)20 b(the)g(c)o(haracter)e(at)h(p)q(oin)o(t.)33
-b(If)20 b(p)q(oin)o(t)g(is)g(at)e(the)i(b)q(eginning)i(of)d(the)g
-(line,)j(there)315 396 y(are)c(no)h(c)o(haracters)e(in)j(the)e(line,)j
-(and)e(the)f(last)h(c)o(haracter)e(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q
-(ound)i(to)315 450 y Ft(delete-char)p Fu(,)13 b(then)j(return)f
-Fp(eof)p Fu(.)75 552 y Ft(backward-delete-char)d(\(Rubout\))315
-607 y Fu(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c
-(n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315
-661 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
-763 y Ft(forward-backward-delete-ch)o(ar)12 b(\(\))315
-818 y Fu(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h
-(unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315
-872 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h
-(the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315
-927 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1029
-y Ft(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1083 y Fu(Add)j(the)f(next)
-g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26
-b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 1138
-y(sequences)f(lik)o(e)h Fo(C-q)p Fu(,)d(for)h(example.)75
-1240 y Ft(tab-insert)f(\(M-)401 1238 y Fn(h)p 412 1212
-74 2 v 412 1240 a Fm(T)m(AB)p 412 1247 V 484 1238 a Fn(i)499
-1240 y Ft(\))315 1294 y Fu(Insert)h(a)g(tab)g(c)o(haracter.)75
-1396 y Ft(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315
-1451 y Fu(Insert)g(y)o(ourself.)75 1552 y Ft(transpose-chars)e(\(C-t\))
-315 1607 y Fu(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e
-(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315
-1662 y(mo)o(ving)i(the)f(cursor)h(forw)o(ard)e(as)i(w)o(ell.)28
-b(If)18 b(the)g(insertion)h(p)q(oin)o(t)f(is)g(at)f(the)h(end)h(of)e
-(the)315 1716 y(line,)c(then)e(this)h(transp)q(oses)e(the)h(last)g(t)o
-(w)o(o)f(c)o(haracters)g(of)h(the)g(line.)20 b(Negativ)o(e)11
-b(argumen)o(ts)315 1771 y(ha)o(v)o(e)k(no)g(e\013ect.)75
-1873 y Ft(transpose-words)e(\(M-t\))315 1927 y Fu(Drag)i(the)h(w)o(ord)
-g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o
-(t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1982
-y(w)o(ord)d(as)h(w)o(ell.)21 b(If)14 b(the)g(insertion)i(p)q(oin)o(t)e
-(is)h(at)f(the)g(end)h(of)e(the)i(line,)g(this)g(transp)q(oses)f(the)
-315 2037 y(last)h(t)o(w)o(o)f(w)o(ords)g(on)i(the)f(line.)75
-2138 y Ft(upcase-word)f(\(M-u\))315 2193 y Fu(Upp)q(ercase)j(the)f
-(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o(ord.)22 b(With)16
-b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 2248
-y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f(the)
-i(cursor.)75 2349 y Ft(downcase-word)d(\(M-l\))315 2404
-y Fu(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o
-(ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o(ercase)
-315 2459 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)75 2560 y Ft(capitalize-word)e(\(M-c\))315
-2615 y Fu(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o
-(ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315
-2670 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)p eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(15)75 149 y Ft(overwrite-mode)13 b(\(\))315 204 y Fu(T)l(oggle)j(o)o
-(v)o(erwrite)g(mo)q(de.)24 b(With)17 b(an)f(explicit)j(p)q(ositiv)o(e)f
-(n)o(umeric)f(argumen)o(t,)f(switc)o(hes)315 259 y(to)10
-b(o)o(v)o(erwrite)g(mo)q(de.)19 b(With)11 b(an)g(explicit)i(non-p)q
-(ositiv)o(e)f(n)o(umeric)g(argumen)o(t,)e(switc)o(hes)i(to)315
-314 y(insert)k(mo)q(de.)k(This)c(command)f(a\013ects)g(only)h
-Ft(emacs)e Fu(mo)q(de;)h Ft(vi)g Fu(mo)q(de)h(do)q(es)g(o)o(v)o
-(erwrite)315 369 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15
-b(call)h(to)f Ft(readline\(\))f Fu(starts)f(in)k(insert)e(mo)q(de.)315
-436 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f
-Ft(self-insert)f Fu(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315
-491 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36
-b(Characters)20 b(b)q(ound)i(to)e Ft(backward-)315 546
-y(delete-char)14 b Fu(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q
-(oin)o(t)h(with)f(a)g(space.)315 614 y(By)g(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 729 y Fj(1.4.4)30 b(Killing)20
-b(And)h(Y)-5 b(anking)75 853 y Ft(kill-line)14 b(\(C-k\))315
-908 y Fu(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
-(the)g(line.)75 1002 y Ft(backward-kill-line)e(\(C-x)h(Rubout\))315
-1057 y Fu(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
-(line.)75 1151 y Ft(unix-line-discard)e(\(C-u\))315 1205
-y Fu(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
-(eginning)j(of)c(the)i(curren)o(t)f(line.)75 1299 y Ft(kill-whole-line)
-e(\(\))315 1354 y Fu(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren)
-o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29
-b(By)19 b(default,)315 1409 y(this)d(is)f(un)o(b)q(ound.)75
-1503 y Ft(kill-word)f(\(M-d\))315 1558 y Fu(Kill)j(from)d(p)q(oin)o(t)h
-(to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o
-(w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1613 y(of)h(the)g(next)g(w)o
-(ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
-Ft(forward-word)p Fu(.)75 1707 y Ft(backward-kill-word)e(\(M-)592
-1705 y Fn(h)p 603 1679 73 2 v 603 1707 a Fm(DEL)p 603
-1714 V 674 1705 a Fn(i)689 1707 y Ft(\))315 1761 y Fu(Kill)k(the)d(w)o
-(ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f
-(the)h(same)f(as)g Ft(backward-word)p Fu(.)75 1855 y
-Ft(unix-word-rubout)f(\(C-w\))315 1910 y Fu(Kill)18 b(the)e(w)o(ord)f
-(b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g
-(b)q(oundary)l(.)23 b(The)16 b(killed)315 1965 y(text)f(is)g(sa)o(v)o
-(ed)g(on)g(the)h(kill-ring.)75 2059 y Ft(delete-horizontal-space)c
-(\(\))315 2114 y Fu(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q
-(oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75
-2208 y Ft(kill-region)e(\(\))315 2263 y Fu(Kill)j(the)f(text)e(in)i
-(the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 2357 y Ft(copy-region-as-kill)d(\(\))315
-2412 y Fu(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h
-(bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o
-(a)o(y)l(.)315 2466 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 2560 y Ft(copy-backward-word)d(\(\))315 2615
-y Fu(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i
-(kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
-2670 y(same)c(as)g Ft(backward-word)p Fu(.)j(By)d(default,)g(this)h
-(command)f(is)h(un)o(b)q(ound.)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fu(16)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Ft(copy-forward-word)d(\(\))315 204 y Fu(Cop)o(y)i(the)h(w)o(ord)
-e(follo)o(wing)j(p)q(oin)o(t)f(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o
-(ord)f(b)q(oundaries)i(are)e(the)315 259 y(same)g(as)g
-Ft(forward-word)p Fu(.)j(By)d(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 342 y Ft(yank)f(\(C-y\))315 397 y Fu(Y)l(ank)g(the)h(top)f
-(of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.)
-75 481 y Ft(yank-pop)g(\(M-y\))315 535 y Fu(Rotate)i(the)h(kill-ring,)j
-(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f
-(this)h(if)f(the)h(prior)315 590 y(command)d(is)h Ft(yank)e
-Fu(or)h Ft(yank-pop)p Fu(.)75 693 y Fj(1.4.5)30 b(Sp)r(ecifying)20
-b(Numeric)h(Argumen)n(ts)75 806 y Ft(digit-argument)13
-b(\()p Fo(M-0)p Ft(,)i Fo(M-1)p Ft(,)f(...)h Fo(M--)p
-Ft(\))315 861 y Fu(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e
-(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315
-915 y Fo(M--)h Fu(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75
-999 y Ft(universal-argument)e(\(\))315 1054 y Fu(This)g(is)h(another)e
-(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13
-b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
-1108 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o
-(us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315
-1163 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g
-(digits,)g(executing)g Ft(universal-argument)315 1218
-y Fu(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h
-(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315
-1273 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y)
-f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315
-1328 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h
-(the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315
-1382 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
-(executing)i(this)f(function)h(the)e(\014rst)h(time)315
-1437 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
-(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
-1492 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f
-(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1595 y Fj(1.4.6)30
-b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
-b(ou)75 1708 y Ft(complete)14 b(\()305 1706 y Fn(h)p
-317 1680 74 2 v 317 1708 a Fm(T)m(AB)p 317 1715 V 389
-1706 a Fn(i)404 1708 y Ft(\))315 1762 y Fu(A)o(ttempt)c(to)h(p)q
-(erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
-b(The)11 b(actual)h(completion)315 1817 y(p)q(erformed)j(is)h
-(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
-g(completion.)75 1901 y Ft(possible-completions)c(\(M-?\))315
-1955 y Fu(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
-q(efore)h(p)q(oin)o(t.)75 2039 y Ft(insert-completions)d(\(M-*\))315
-2093 y Fu(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
-q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315
-2148 y(b)o(y)f Ft(possible-completions)p Fu(.)75 2232
-y Ft(menu-complete)e(\(\))315 2286 y Fu(Similar)g(to)f
-Ft(complete)p Fu(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i
-(completed)f(with)h(a)e(single)j(matc)o(h)315 2341 y(from)k(the)h(list)
-h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19
-b(execution)h(of)f Ft(menu-complete)315 2396 y Fu(steps)h(through)g
-(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f
-(matc)o(h)f(in)i(turn.)315 2451 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g
-(of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f
-(the)i(setting)315 2506 y(of)f Ft(bell-style)p Fu(\))e(and)i(the)g
-(original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g
-Fk(n)i Fu(mo)o(v)o(es)e Fk(n)315 2560 y Fu(p)q(ositions)h(forw)o(ard)e
-(in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g
-(ma)o(y)g(b)q(e)h(used)g(to)315 2615 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
-(through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f
-(b)q(e)h(b)q(ound)g(to)315 2668 y Fn(h)p 327 2642 V 327
-2670 a Fm(T)m(AB)p 327 2678 V 399 2668 a Fn(i)414 2670
-y Fu(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)p
-eop
-%%Page: 17 19
-17 18 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(17)75 149 y Ft(delete-char-or-list)13 b(\(\))315 204
-y Fu(Deletes)h(the)f(c)o(haracter)g(under)h(the)g(cursor)f(if)h(not)f
-(at)g(the)g(b)q(eginning)j(or)d(end)h(of)f(the)g(line)315
-259 y(\(lik)o(e)i Ft(delete-char)p Fu(\).)j(If)d(at)f(the)h(end)g(of)f
-(the)g(line,)i(b)q(eha)o(v)o(es)f(iden)o(tically)i(to)d
-Ft(possible-)315 314 y(completions)p Fu(.)k(This)e(command)f(is)h(un)o
-(b)q(ound)g(b)o(y)f(default.)75 428 y Fj(1.4.7)30 b(Keyb)r(oard)20
-b(Macros)75 551 y Ft(start-kbd-macro)13 b(\(C-x)i(\(\))315
-606 y Fu(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o
-(to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 699
-y Ft(end-kbd-macro)e(\(C-x)i(\)\))315 754 y Fu(Stop)f(sa)o(ving)f(the)h
-(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q
-(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 809 y(de\014nition.)75
-902 y Ft(call-last-kbd-macro)g(\(C-x)h(e\))315 957 y
-Fu(Re-execute)k(the)g(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i(b)o
-(y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 1012
-y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o(eyb)q
-(oard.)75 1126 y Fj(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
-1249 y Ft(re-read-init-file)13 b(\(C-x)h(C-r\))315 1304
-y Fu(Read)d(in)g(the)g(con)o(ten)o(ts)g(of)f(the)h Fk(inputrc)k
-Fu(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m
-(ariable)315 1358 y(assignmen)o(ts)k(found)h(there.)75
-1452 y Ft(abort)e(\(C-g\))315 1507 y Fu(Ab)q(ort)f(the)g(curren)o(t)h
-(editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s
-(ject)e(to)g(the)315 1561 y(setting)i(of)g Ft(bell-style)p
-Fu(\).)75 1655 y Ft(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
-Fk(x)p Ft(,)h(...\))315 1710 y Fu(If)f(the)g(meta\014ed)g(c)o(haracter)
-f Fk(x)k Fu(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g
-(b)q(ound)h(to)e(the)315 1764 y(corresp)q(onding)j(upp)q(ercase)g(c)o
-(haracter.)75 1858 y Ft(prefix-meta)e(\()377 1856 y Fn(h)p
-389 1830 70 2 v 389 1858 a Fm(ESC)p 389 1866 V 456 1856
-a Fn(i)471 1858 y Ft(\))315 1913 y Fu(Metafy)k(the)h(next)g(c)o
-(haracter)f(t)o(yp)q(ed.)30 b(This)20 b(is)f(for)f(k)o(eyb)q(oards)h
-(without)g(a)f(meta)g(k)o(ey)l(.)315 1968 y(T)o(yping)e(`)485
-1966 y Fn(h)p 496 1939 V 496 1968 a Fm(ESC)p 496 1975
-V 563 1966 a Fn(i)593 1968 y Ft(f)p Fu(')f(is)h(equiv)m(alen)o(t)h(to)d
-(t)o(yping)i Fo(M-f)p Fu(.)75 2061 y Ft(undo)f(\(C-_)f(or)h(C-x)g
-(C-u\))315 2116 y Fu(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
-(ered)g(for)e(eac)o(h)h(line.)75 2209 y Ft(revert-line)f(\(M-r\))315
-2264 y Fu(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26
-b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Ft(undo)f
-Fu(command)315 2319 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
-(b)q(eginning.)75 2412 y Ft(tilde-expand)f(\(M-~\))315
-2467 y Fu(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
-(ord.)75 2560 y Ft(set-mark)f(\(C-@\))315 2615 y Fu(Set)i(the)h(mark)f
-(to)f(the)i(p)q(oin)o(t.)24 b(If)17 b(a)f(n)o(umeric)h(argumen)o(t)f
-(is)g(supplied,)j(the)e(mark)e(is)i(set)315 2670 y(to)e(that)f(p)q
-(osition.)p eop
-%%Page: 18 20
-18 19 bop 75 -58 a Fu(18)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Ft(exchange-point-and-mark)c(\(C-x)j(C-x\))315
-204 y Fu(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k(The)c
-(curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o(v)o(ed)
-315 259 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q(osition)h(is)g
-(sa)o(v)o(ed)f(as)g(the)g(mark.)75 347 y Ft(character-search)e(\(C-]\))
-315 402 y Fu(A)f(c)o(haracter)g(is)h(read)g(and)f(p)q(oin)o(t)h(is)g
-(mo)o(v)o(ed)f(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g(c)o
-(haracter.)315 456 y(A)j(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f
-(previous)i(o)q(ccurrences.)75 544 y Ft(character-search-backward)c
-(\(M-C-]\))315 599 y Fu(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q
-(oin)o(t)g(is)g(mo)o(v)o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of)
-e(that)315 654 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o
-(hes)g(for)f(subsequen)o(t)i(o)q(ccurrences.)75 741 y
-Ft(insert-comment)d(\(M-#\))315 796 y Fu(Without)18 b(a)f(n)o(umeric)i
-(argumen)o(t,)e(the)h(v)m(alue)h(of)f(the)f Ft(comment-begin)f
-Fu(v)m(ariable)k(is)e(in-)315 851 y(serted)e(at)f(the)h(b)q(eginning)i
-(of)d(the)h(curren)o(t)g(line.)23 b(If)16 b(a)g(n)o(umeric)h(argumen)o
-(t)e(is)h(supplied,)315 906 y(this)j(command)f(acts)g(as)f(a)h(toggle:)
-26 b(if)19 b(the)f(c)o(haracters)g(at)f(the)i(b)q(eginning)h(of)e(the)g
-(line)315 960 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)i(of)e
-Ft(comment-begin)p Fu(,)e(the)i(v)m(alue)i(is)f(inserted,)f(otherwise)h
-(the)315 1015 y(c)o(haracters)j(in)i Ft(comment-begin)d
-Fu(are)i(deleted)i(from)d(the)h(b)q(eginning)i(of)e(the)g(line.)36
-b(In)315 1070 y(either)16 b(case,)f(the)g(line)i(is)f(accepted)f(as)g
-(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)75 1158
-y Ft(dump-functions)c(\(\))315 1213 y Fu(Prin)o(t)g(all)h(of)f(the)g
-(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)g
-(output)f(stream.)315 1267 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i
-(supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o
-(y)f(that)315 1322 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
-Fk(inputrc)k Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
-(y)f(default.)75 1410 y Ft(dump-variables)e(\(\))315
-1465 y Fu(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f
-(their)g(v)m(alues)h(to)e(the)h(Readline)h(output)e(stream.)315
-1519 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e
-(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315
-1574 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fk(inputrc)k
-Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)
-75 1662 y Ft(dump-macros)f(\(\))315 1717 y Fu(Prin)o(t)j(all)h(of)e
-(the)h(Readline)h(k)o(ey)f(sequences)h(b)q(ound)g(to)e(macros)g(and)h
-(the)g(strings)g(they)315 1771 y(output.)26 b(If)18 b(a)f(n)o(umeric)h
-(argumen)o(t)f(is)h(supplied,)i(the)d(output)g(is)h(formatted)e(in)j
-(suc)o(h)e(a)315 1826 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g
-(part)g(of)f(an)h Fk(inputrc)k Fu(\014le.)i(This)15 b(command)g(is)h
-(un)o(b)q(ound)g(b)o(y)315 1881 y(default.)75 1969 y
-Ft(emacs-editing-mode)d(\(C-e\))315 2024 y Fu(When)j(in)g
-Ft(vi)e Fu(command)i(mo)q(de,)f(this)g(causes)h(a)f(switc)o(h)g(to)g
-Ft(emacs)f Fu(editing)j(mo)q(de.)75 2111 y Ft(vi-editing-mode)c
-(\(M-C-j\))315 2166 y Fu(When)j(in)g Ft(emacs)e Fu(editing)j(mo)q(de,)e
-(this)g(causes)h(a)f(switc)o(h)g(to)g Ft(vi)f Fu(editing)j(mo)q(de.)75
-2290 y Fs(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 2385
-y Fu(While)13 b(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o(e)f
-(a)h(full)h(set)f(of)f Ft(vi)g Fu(editing)j(functions,)f(it)f(do)q(es)g
-(con)o(tain)75 2440 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing)h
-(of)d(the)i(line.)27 b(The)17 b(Readline)h Ft(vi)f Fu(mo)q(de)g(b)q
-(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 2495 y(the)c
-Fp(posix)g Fu(1003.2)f(standard.)137 2560 y(In)h(order)g(to)f(switc)o
-(h)g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Ft(emacs)e
-Fu(and)i Ft(vi)f Fu(editing)i(mo)q(des,)f(use)f(the)h(command)75
-2615 y Fo(M-C-j)j Fu(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)j(when)e
-(in)h Ft(vi)f Fu(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)k(in)e
-Ft(emacs)75 2670 y Fu(mo)q(de\).)g(The)15 b(Readline)i(default)f(is)f
-Ft(emacs)g Fu(mo)q(de.)p eop
-%%Page: 19 21
-19 20 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(19)137 149 y(When)16 b(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e
-Ft(vi)g Fu(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g
-(`insertion')f(mo)q(de,)g(as)g(if)g(y)o(ou)75 204 y(had)e(t)o(yp)q(ed)h
-(an)f(`)p Ft(i)p Fu('.)18 b(Pressing)608 202 y Fn(h)p
-620 176 70 2 v 620 204 a Fm(ESC)p 620 212 V 687 202 a
-Fn(i)715 204 y Fu(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q
-(de,)i(where)f(y)o(ou)g(can)g(edit)h(the)75 259 y(text)i(of)h(the)g
-(line)h(with)g(the)f(standard)f Ft(vi)h Fu(mo)o(v)o(emen)o(t)f(k)o
-(eys,)g(mo)o(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75
-314 y(`)p Ft(k)p Fu(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p
-Ft(j)p Fu(',)e(and)h(so)g(forth.)p eop
-%%Page: 20 22
-20 21 bop 75 -58 a Fu(20)1299 b(GNU)15 b(Readline)h(Library)p
-eop
-%%Page: 21 23
-21 22 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(21)75 149 y Fq(2)41 b(Programming)28
-b(with)e(GNU)i(Readline)137 267 y Fu(This)18 b(c)o(hapter)f(describ)q
-(es)h(the)f(in)o(terface)g(b)q(et)o(w)o(een)h(the)f Fp(gnu)g
-Fu(Readline)h(Library)f(and)g(other)g(pro-)75 322 y(grams.)h(If)11
-b(y)o(ou)g(are)g(a)g(programmer,)f(and)i(y)o(ou)f(wish)g(to)g(include)j
-(the)d(features)g(found)g(in)i Fp(gnu)e Fu(Readline)75
-377 y(suc)o(h)h(as)f(completion,)h(line)h(editing,)g(and)f(in)o
-(teractiv)o(e)g(history)f(manipulation)i(in)f(y)o(our)f(o)o(wn)g
-(programs,)75 432 y(this)16 b(section)f(is)h(for)f(y)o(ou.)75
-561 y Fs(2.1)33 b(Basic)22 b(Beha)n(vior)137 658 y Fu(Man)o(y)15
-b(programs)f(pro)o(vide)i(a)f(command)g(line)i(in)o(terface,)e(suc)o(h)
-h(as)f Ft(mail)p Fu(,)f Ft(ftp)p Fu(,)h(and)g Ft(sh)p
-Fu(.)20 b(F)l(or)15 b(suc)o(h)75 713 y(programs,)e(the)h(default)h(b)q
-(eha)o(viour)g(of)f(Readline)i(is)e(su\016cien)o(t.)21
-b(This)14 b(section)h(describ)q(es)h(ho)o(w)e(to)g(use)75
-768 y(Readline)k(in)h(the)e(simplest)h(w)o(a)o(y)e(p)q(ossible,)j(p)q
-(erhaps)f(to)f(replace)h(calls)g(in)g(y)o(our)f(co)q(de)h(to)e
-Ft(gets\(\))g Fu(or)75 822 y Ft(fgets\(\))p Fu(.)137
-890 y(The)h(function)g Ft(readline\(\))e Fu(prin)o(ts)h(a)g(prompt)g
-Fk(prompt)h Fu(and)f(then)h(reads)f(and)h(returns)f(a)g(single)75
-945 y(line)i(of)e(text)g(from)f(the)i(user.)23 b(If)17
-b Fk(prompt)g Fu(is)g Ft(NULL)e Fu(or)h(the)h(empt)o(y)f(string,)g(no)g
-(prompt)g(is)h(displa)o(y)o(ed.)75 1000 y(The)i(line)h
-Ft(readline)d Fu(returns)i(is)g(allo)q(cated)g(with)g
-Ft(malloc\(\))p Fu(;)g(the)g(caller)g(should)h Ft(free\(\))e
-Fu(the)g(line)75 1054 y(when)e(it)f(has)g(\014nished)i(with)f(it.)k
-(The)15 b(declaration)h(for)f Ft(readline)f Fu(in)i(ANSI)g(C)f(is)195
-1119 y Ft(char)23 b(*readline)g(\(const)g(char)g(*)p
-Fk(prompt)q Ft(\);)75 1187 y Fu(So,)15 b(one)g(migh)o(t)g(sa)o(y)195
-1251 y Ft(char)23 b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);)
-75 1319 y Fu(in)12 b(order)f(to)g(read)h(a)f(line)i(of)e(text)g(from)f
-(the)i(user.)19 b(The)11 b(line)j(returned)d(has)h(the)f(\014nal)h
-(newline)i(remo)o(v)o(ed,)75 1374 y(so)h(only)h(the)f(text)g(remains.)
-137 1441 y(If)21 b Ft(readline)e Fu(encoun)o(ters)h(an)g
-Ft(EOF)g Fu(while)i(reading)f(the)f(line,)j(and)d(the)h(line)g(is)g
-(empt)o(y)f(at)g(that)75 1496 y(p)q(oin)o(t,)15 b(then)g
-Ft(\(char)f(*\)NULL)g Fu(is)h(returned.)21 b(Otherwise,)15
-b(the)g(line)h(is)f(ended)h(just)e(as)h(if)g(a)f(newline)j(had)75
-1551 y(b)q(een)f(t)o(yp)q(ed.)137 1618 y(If)d(y)o(ou)g(w)o(an)o(t)f
-(the)h(user)g(to)f(b)q(e)i(able)g(to)e(get)g(at)h(the)g(line)h(later,)f
-(\(with)1325 1616 y Fn(h)p 1338 1590 57 2 v 1338 1618
-a Fm(C-p)p 1338 1626 V 1392 1616 a Fn(i)1420 1618 y Fu(for)f
-(example\),)i(y)o(ou)f(m)o(ust)75 1673 y(call)j Ft(add_history\(\))e
-Fu(to)g(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)d(in)i(a)e
-Fk(history)19 b Fu(list)d(of)f(suc)o(h)h(lines.)195 1738
-y Ft(add_history)22 b(\(line\);)75 1805 y Fu(F)l(or)15
-b(full)h(details)g(on)f(the)h(GNU)f(History)g(Library)l(,)g(see)h(the)f
-(asso)q(ciated)g(man)o(ual.)137 1873 y(It)h(is)g(preferable)h(to)e(a)o
-(v)o(oid)g(sa)o(ving)h(empt)o(y)f(lines)i(on)f(the)g(history)f(list,)i
-(since)f(users)g(rarely)g(ha)o(v)o(e)f(a)75 1928 y(burning)h(need)g(to)
-e(reuse)h(a)g(blank)g(line.)22 b(Here)15 b(is)g(a)g(function)g(whic)o
-(h)h(usefully)h(replaces)e(the)g(standard)75 1983 y Ft(gets\(\))f
-Fu(library)i(function,)g(and)f(has)g(the)h(adv)m(an)o(tage)e(of)h(no)g
-(static)g(bu\013er)g(to)g(o)o(v)o(er\015o)o(w:)195 2047
-y Ft(/*)24 b(A)f(static)g(variable)g(for)h(holding)e(the)i(line.)f(*/)
-195 2099 y(static)g(char)g(*line_read)g(=)h(\(char)f(*\)NULL;)195
-2203 y(/*)h(Read)f(a)h(string,)f(and)g(return)g(a)h(pointer)f(to)g(it.)
-267 2255 y(Returns)f(NULL)i(on)f(EOF.)h(*/)195 2307 y(char)f(*)195
-2359 y(rl_gets)g(\(\))195 2411 y({)243 2462 y(/*)g(If)h(the)f(buffer)g
-(has)h(already)f(been)g(allocated,)314 2514 y(return)g(the)h(memory)f
-(to)g(the)h(free)f(pool.)g(*/)243 2566 y(if)g(\(line_read\))290
-2618 y({)338 2670 y(free)g(\(line_read\);)p eop
-%%Page: 22 24
-22 23 bop 75 -58 a Fu(22)1299 b(GNU)15 b(Readline)h(Library)338
-149 y Ft(line_read)23 b(=)h(\(char)f(*\)NULL;)290 201
-y(})243 305 y(/*)g(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)243
-357 y(line_read)f(=)i(readline)f(\(""\);)243 461 y(/*)g(If)h(the)f
-(line)h(has)f(any)h(text)f(in)g(it,)314 513 y(save)h(it)f(on)h(the)f
-(history.)g(*/)243 565 y(if)g(\(line_read)g(&&)g(*line_read\))290
-616 y(add_history)g(\(line_read\);)243 720 y(return)g(\(line_read\);)
-195 772 y(})137 848 y Fu(This)13 b(function)f(giv)o(es)h(the)e(user)h
-(the)g(default)h(b)q(eha)o(viour)g(of)1169 846 y Fn(h)p
-1181 820 74 2 v 1181 848 a Fm(T)m(AB)p 1181 856 V 1253
-846 a Fn(i)1280 848 y Fu(completion:)19 b(completion)13
-b(on)f(\014le)75 903 y(names.)20 b(If)c(y)o(ou)f(do)g(not)g(w)o(an)o(t)
-f(Readline)j(to)d(complete)j(on)e(\014lenames,)h(y)o(ou)f(can)g(c)o
-(hange)h(the)f(binding)75 958 y(of)g(the)205 956 y Fn(h)p
-217 930 V 217 958 a Fm(T)m(AB)p 217 965 V 289 956 a Fn(i)319
-958 y Fu(k)o(ey)g(with)h Ft(rl_bind_key\(\))p Fu(.)195
-1031 y Ft(int)23 b(rl_bind_key)g(\(int)g Fk(k)o(ey)p
-Ft(,)h(rl_command_func_t)d(*)p Fk(function)p Ft(\);)137
-1107 y(rl_bind_key\(\))15 b Fu(tak)o(es)h(t)o(w)o(o)g(argumen)o(ts:)22
-b Fk(k)o(ey)e Fu(is)e(the)e(c)o(haracter)g(that)g(y)o(ou)h(w)o(an)o(t)f
-(to)g(bind,)i(and)75 1161 y Fk(function)h Fu(is)f(the)g(address)g(of)g
-(the)g(function)g(to)g(call)h(when)f Fk(k)o(ey)k Fu(is)c(pressed.)29
-b(Binding)1628 1159 y Fn(h)p 1641 1133 V 1641 1161 a
-Fm(T)m(AB)p 1641 1169 V 1712 1159 a Fn(i)1745 1161 y
-Fu(to)17 b Ft(rl_)75 1216 y(insert\(\))f Fu(mak)o(es)422
-1214 y Fn(h)p 434 1188 V 434 1216 a Fm(T)m(AB)p 434 1224
-V 506 1214 a Fn(i)539 1216 y Fu(insert)i(itself.)28 b
-Ft(rl_bind_key\(\))15 b Fu(returns)j(non-zero)g(if)g
-Fk(k)o(ey)j Fu(is)d(not)f(a)g(v)m(alid)75 1271 y(ASCI)q(I)f(c)o
-(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)f(0)g(and)g(255\).)137
-1347 y(Th)o(us,)g(to)g(disable)h(the)g(default)703 1345
-y Fn(h)p 716 1319 V 716 1347 a Fm(T)m(AB)p 716 1354 V
-787 1345 a Fn(i)817 1347 y Fu(b)q(eha)o(vior,)g(the)f(follo)o(wing)h
-(su\016ces:)195 1420 y Ft(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)137
-1496 y Fu(This)14 b(co)q(de)g(should)g(b)q(e)g(executed)g(once)g(at)e
-(the)h(start)f(of)h(y)o(our)g(program;)f(y)o(ou)h(migh)o(t)g(write)g(a)
-g(func-)75 1551 y(tion)k(called)h Ft(initialize_readline\(\))13
-b Fu(whic)o(h)k(p)q(erforms)f(this)h(and)g(other)f(desired)h
-(initializations,)75 1605 y(suc)o(h)f(as)e(installing)k(custom)c
-(completers)i(\(see)f(Section)h(2.6)f([Custom)f(Completers],)g(page)h
-(41\).)75 1756 y Fs(2.2)33 b(Custom)21 b(F)-6 b(unctions)137
-1861 y Fu(Readline)14 b(pro)o(vides)f(man)o(y)e(functions)i(for)f
-(manipulating)i(the)e(text)g(of)g(the)g(line,)i(but)e(it)h(isn't)f(p)q
-(ossi-)75 1915 y(ble)i(to)f(an)o(ticipate)h(the)f(needs)h(of)f(all)h
-(programs.)k(This)13 b(section)h(describ)q(es)h(the)e(v)m(arious)h
-(functions)g(and)75 1970 y(v)m(ariables)g(de\014ned)h(within)f(the)f
-(Readline)i(library)e(whic)o(h)h(allo)o(w)g(a)e(user)h(program)f(to)h
-(add)g(customized)75 2025 y(functionalit)o(y)j(to)f(Readline.)137
-2101 y(Before)j(declaring)i(an)o(y)e(functions)h(that)f(customize)g
-(Readline's)h(b)q(eha)o(vior,)h(or)d(using)i(an)o(y)f(func-)75
-2156 y(tionalit)o(y)23 b(Readline)h(pro)o(vides)g(in)f(other)g(co)q
-(de,)h(an)f(application)i(writer)d(should)i(include)h(the)e(\014le)75
-2211 y Ft(<readline/readline.h>)14 b Fu(in)j(an)o(y)g(\014le)h(that)e
-(uses)h(Readline's)g(features.)24 b(Since)19 b(some)d(of)g(the)h
-(de\014-)75 2265 y(nitions)g(in)f Ft(readline.h)e Fu(use)i(the)g
-Ft(stdio)f Fu(library)l(,)h(the)g(\014le)g Ft(<stdio.h>)f
-Fu(should)h(b)q(e)g(included)j(b)q(efore)75 2320 y Ft(readline.h)p
-Fu(.)137 2396 y Ft(readline.h)14 b Fu(de\014nes)i(a)f(C)h(prepro)q
-(cessor)f(v)m(ariable)i(that)d(should)i(b)q(e)g(treated)f(as)g(an)g(in)
-o(teger,)g Ft(RL_)75 2451 y(READLINE_VERSION)p Fu(,)9
-b(whic)o(h)j(ma)o(y)f(b)q(e)g(used)h(to)e(conditionally)k(compile)e
-(application)h(co)q(de)f(dep)q(ending)75 2506 y(on)17
-b(the)h(installed)h(Readline)g(v)o(ersion.)27 b(The)18
-b(v)m(alue)h(is)f(a)f(hexadecimal)i(enco)q(ding)g(of)e(the)h(ma)s(jor)e
-(and)75 2560 y(minor)h(v)o(ersion)h(n)o(um)o(b)q(ers)f(of)g(the)g
-(library)l(,)h(of)f(the)g(form)f(0x)p Fk(MMmm)p Fu(.)25
-b Fk(MM)c Fu(is)c(the)h(t)o(w)o(o-digit)e(ma)s(jor)75
-2615 y(v)o(ersion)f(n)o(um)o(b)q(er;)f Fk(mm)h Fu(is)g(the)f(t)o(w)o
-(o-digit)g(minor)h(v)o(ersion)g(n)o(um)o(b)q(er.)20 b(F)l(or)14
-b(Readline)h(4.2,)f(for)f(example,)75 2670 y(the)i(v)m(alue)i(of)d
-Ft(RL_READLINE_VERSION)f Fu(w)o(ould)j(b)q(e)f Ft(0x0402)p
-Fu(.)p eop
-%%Page: 23 25
-23 24 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(23)75 149 y Fj(2.2.1)30 b(Readline)20
-b(T)n(yp)r(edefs)137 251 y Fu(F)l(or)15 b(readabilt)o(y)l(,)g(w)o(e)g
-(declare)i(a)d(n)o(um)o(b)q(er)i(of)f(new)g(ob)s(ject)g(t)o(yp)q(es,)g
-(all)h(p)q(oin)o(ters)f(to)g(functions.)137 324 y(The)j(reason)g(for)f
-(declaring)i(these)f(new)g(t)o(yp)q(es)g(is)h(to)e(mak)o(e)g(it)h
-(easier)h(to)e(write)h(co)q(de)g(describing)75 379 y(p)q(oin)o(ters)e
-(to)e(C)h(functions)h(with)g(appropriately)f(protot)o(yp)q(ed)g
-(argumen)o(ts)g(and)g(return)g(v)m(alues.)137 452 y(F)l(or)j(instance,)
-i(sa)o(y)e(w)o(e)g(w)o(an)o(t)f(to)h(declare)h(a)f(v)m(ariable)i
-Fk(func)i Fu(as)c(a)g(p)q(oin)o(ter)h(to)f(a)g(function)h(whic)o(h)75
-507 y(tak)o(es)12 b(t)o(w)o(o)g Ft(int)g Fu(argumen)o(ts)g(and)h
-(returns)g(an)g Ft(int)f Fu(\(this)h(is)g(the)g(t)o(yp)q(e)g(of)g(all)g
-(of)g(the)g(Readline)h(bindable)75 561 y(functions\).)20
-b(Instead)c(of)f(the)g(classic)h(C)f(declaration)137
-634 y Ft(int)g(\(*func\)\(\);)75 707 y Fu(or)g(the)g(ANSI-C)h(st)o(yle)
-f(declaration)137 780 y Ft(int)g(\(*func\)\(int,)f(int\);)75
-853 y Fu(w)o(e)h(ma)o(y)f(write)137 926 y Ft(rl_command_func_t)f
-(*func;)137 999 y Fu(The)j(full)g(list)g(of)f(function)h(p)q(oin)o(ter)
-g(t)o(yp)q(es)f(a)o(v)m(ailable)i(is)75 1087 y Ft(typedef)d(int)h
-(rl_command_func_t)e(\(int,)h(int\);)75 1157 y(typedef)g(char)h
-(*rl_compentry_func_t)d(\(const)j(char)f(*,)h(int\);)75
-1227 y(typedef)f(char)h(**rl_completion_func_t)d(\(const)i(char)h(*,)g
-(int,)f(int\);)75 1297 y(typedef)g(char)h(*rl_quote_func_t)e(\(char)h
-(*,)h(int,)g(char)f(*\);)75 1367 y(typedef)g(char)h(*rl_dequote_func_t)
-d(\(char)j(*,)g(int\);)75 1437 y(typedef)f(int)h(rl_compignore_func_t)d
-(\(char)j(**\);)75 1507 y(typedef)f(void)h(rl_compdisp_func_t)d(\(char)
-j(**,)g(int,)f(int\);)75 1577 y(typedef)g(int)h(rl_hook_func_t)e
-(\(void\);)75 1647 y(typedef)h(int)h(rl_getc_func_t)e(\(FILE)i(*\);)75
-1717 y(typedef)f(int)h(rl_linebuf_func_t)e(\(char)h(*,)h(int\);)75
-1787 y(typedef)f(int)h(rl_intfunc_t)e(\(int\);)75 1857
-y(#define)h(rl_ivoidfunc_t)f(rl_hook_func_t)75 1927 y(typedef)h(int)h
-(rl_icpfunc_t)e(\(char)i(*\);)75 1997 y(typedef)f(int)h(rl_icppfunc_t)e
-(\(char)i(**\);)75 2067 y(typedef)f(void)h(rl_voidfunc_t)e(\(void\);)75
-2137 y(typedef)h(void)h(rl_vintfunc_t)e(\(int\);)75 2208
-y(typedef)h(void)h(rl_vcpfunc_t)e(\(char)i(*\);)75 2278
-y(typedef)f(void)h(rl_vcppfunc_t)e(\(char)i(**\);)75
-2386 y Fj(2.2.2)30 b(W)-5 b(riting)20 b(a)h(New)f(F)-5
-b(unction)137 2488 y Fu(In)17 b(order)f(to)f(write)h(new)h(functions)g
-(for)e(Readline,)i(y)o(ou)f(need)h(to)e(kno)o(w)h(the)g(calling)i(con)o
-(v)o(en)o(tions)75 2542 y(for)g(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)h
-(functions,)g(and)g(the)f(names)h(of)f(the)g(v)m(ariables)i(that)d
-(describ)q(e)k(the)d(curren)o(t)75 2597 y(state)c(of)h(the)g(line)i
-(read)e(so)g(far.)137 2670 y(The)h(calling)h(sequence)f(for)f(a)f
-(command)i Ft(foo)e Fu(lo)q(oks)i(lik)o(e)p eop
-%%Page: 24 26
-24 25 bop 75 -58 a Fu(24)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(int)23 b(foo)h(\(int)f(count,)g(int)h(key\))75
-221 y Fu(where)18 b Fk(coun)o(t)h Fu(is)f(the)g(n)o(umeric)h(argumen)o
-(t)e(\(or)h(1)f(if)i(defaulted\))f(and)g Fk(k)o(ey)k
-Fu(is)d(the)f(k)o(ey)g(that)f(in)o(v)o(ok)o(ed)75 276
-y(this)f(function.)137 348 y(It)c(is)g(completely)h(up)f(to)f(the)g
-(function)i(as)e(to)g(what)g(should)h(b)q(e)g(done)g(with)g(the)g(n)o
-(umeric)g(argumen)o(t.)75 403 y(Some)20 b(functions)h(use)f(it)g(as)g
-(a)g(rep)q(eat)g(coun)o(t,)g(some)g(as)g(a)f(\015ag,)i(and)f(others)g
-(to)f(c)o(ho)q(ose)h(alternate)75 457 y(b)q(eha)o(vior)i(\(refreshing)g
-(the)g(curren)o(t)f(line)j(as)d(opp)q(osed)h(to)f(refreshing)i(the)e
-(screen,)j(for)d(example\).)75 512 y(Some)c(c)o(ho)q(ose)f(to)g(ignore)
-h(it.)24 b(In)18 b(general,)f(if)g(a)f(function)h(uses)g(the)g(n)o
-(umeric)h(argumen)o(t)d(as)i(a)f(rep)q(eat)75 567 y(coun)o(t,)e(it)g
-(should)h(b)q(e)f(able)h(to)e(do)h(something)h(useful)g(with)f(b)q(oth)
-g(negativ)o(e)g(and)g(p)q(ositiv)o(e)h(argumen)o(ts.)75
-622 y(A)o(t)g(the)g(v)o(ery)g(least,)g(it)g(should)h(b)q(e)g(a)o(w)o
-(are)e(that)h(it)g(can)g(b)q(e)h(passed)g(a)f(negativ)o(e)g(argumen)o
-(t.)137 693 y(A)f(command)g(function)h(should)g(return)e(0)h(if)g(its)g
-(action)h(completes)f(successfully)l(,)i(and)e(a)g(non-zero)75
-748 y(v)m(alue)i(if)g(some)f(error)f(o)q(ccurs.)75 888
-y Fs(2.3)33 b(Readline)23 b(V)-6 b(ariables)137 989 y
-Fu(These)16 b(v)m(ariables)g(are)f(a)o(v)m(ailable)i(to)e(function)h
-(writers.)1773 1120 y(V)l(ariable)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 1120 18 3 v 21 w(line)p 395 1120 V
-23 w(bu\013er)195 1174 y Fu(This)d(is)g(the)g(line)h(gathered)f(so)f
-(far.)20 b(Y)l(ou)c(are)f(w)o(elcome)h(to)f(mo)q(dify)h(the)g(con)o
-(ten)o(ts)f(of)g(the)h(line,)195 1229 y(but)i(see)g(Section)h(2.4.5)d
-([Allo)o(wing)i(Undoing],)h(page)e(32.)27 b(The)18 b(function)h
-Ft(rl_extend_line_)195 1284 y(buffer)14 b Fu(is)i(a)o(v)m(ailable)h(to)
-d(increase)j(the)e(memory)f(allo)q(cated)j(to)d Ft(rl_line_buffer)p
-Fu(.)1773 1414 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p
-215 1414 V 21 w(p)r(oin)n(t)195 1469 y Fu(The)15 b(o\013set)g(of)f(the)
-i(curren)o(t)f(cursor)g(p)q(osition)h(in)g Ft(rl_line_buffer)d
-Fu(\(the)i Fl(p)n(oint)t Fu(\).)1773 1600 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1600 V 21 w(end)195 1655 y
-Fu(The)14 b(n)o(um)o(b)q(er)g(of)g(c)o(haracters)f(presen)o(t)h(in)h
-Ft(rl_line_buffer)p Fu(.)i(When)e Ft(rl_point)e Fu(is)h(at)f(the)h(end)
-195 1709 y(of)h(the)g(line,)i Ft(rl_point)d Fu(and)h
-Ft(rl_end)f Fu(are)h(equal.)1773 1840 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1840 V 21 w(mark)195 1895 y
-Fu(The)f Fk(mark)h Fu(\(sa)o(v)o(ed)e(p)q(osition\))h(in)g(the)g
-(curren)o(t)f(line.)31 b(If)19 b(set,)g(the)f(mark)g(and)h(p)q(oin)o(t)
-g(de\014ne)g(a)195 1950 y Fl(r)n(e)n(gion)p Fu(.)1773
-2080 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2080
-V 21 w(done)195 2135 y Fu(Setting)11 b(this)g(to)g(a)f(non-zero)h(v)m
-(alue)h(causes)f(Readline)h(to)f(return)f(the)h(curren)o(t)g(line)h
-(immediately)l(.)1773 2265 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 2265 V 21 w(n)n(um)p 347 2265 V 19 w(c)n(hars)p
-496 2265 V 20 w(to)p 567 2265 V 21 w(read)195 2320 y
-Fu(Setting)d(this)g(to)f(a)g(p)q(ositiv)o(e)h(v)m(alue)h(b)q(efore)f
-(calling)h Ft(readline\(\))d Fu(causes)h(Readline)i(to)e(return)195
-2375 y(after)h(accepting)i(that)e(man)o(y)g(c)o(haracters,)h(rather)f
-(than)h(reading)g(up)g(to)f(a)h(c)o(haracter)f(b)q(ound)195
-2430 y(to)e Ft(accept-line)p Fu(.)1773 2560 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 2560 V 21 w(p)r(ending)p 436
-2560 V 20 w(input)195 2615 y Fu(Setting)13 b(this)g(to)f(a)g(v)m(alue)i
-(mak)o(es)e(it)h(the)f(next)h(k)o(eystrok)o(e)f(read.)19
-b(This)13 b(is)g(a)f(w)o(a)o(y)g(to)f(stu\013)h(a)h(single)195
-2670 y(c)o(haracter)h(in)o(to)i(the)f(input)h(stream.)p
-eop
-%%Page: 25 27
-25 26 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(25)1773 149 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(dispatc)n(hing)195 204
-y Fu(Set)12 b(to)g(a)f(non-zero)i(v)m(alue)g(if)g(a)f(function)h(is)f
-(b)q(eing)i(called)f(from)f(a)f(k)o(ey)h(binding;)j(zero)d(otherwise.)
-195 259 y(Application)20 b(functions)e(can)g(test)g(this)g(to)f(disco)o
-(v)o(er)h(whether)g(they)g(w)o(ere)g(called)h(directly)g(or)195
-314 y(b)o(y)c(Readline's)h(dispatc)o(hing)h(mec)o(hanism.)1773
-423 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 423
-V 21 w(erase)p 363 423 V 20 w(empt)n(y)p 540 423 V 20
-w(line)195 478 y Fu(Setting)j(this)h(to)e(a)h(non-zero)g(v)m(alue)h
-(causes)f(Readline)i(to)d(completely)i(erase)f(the)g(curren)o(t)195
-533 y(line,)g(including)h(an)o(y)c(prompt,)h(an)o(y)g(time)g(a)f
-(newline)j(is)e(t)o(yp)q(ed)g(as)f(the)h(only)g(c)o(haracter)f(on)195
-588 y(an)e(otherwise-empt)o(y)g(line.)31 b(The)18 b(cursor)g(is)h(mo)o
-(v)o(ed)e(to)h(the)g(b)q(eginning)i(of)e(the)g(newly-blank)195
-643 y(line.)1773 752 y(V)l(ariable)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 752 V 21 w(prompt)195 807 y Fu(The)13
-b(prompt)g(Readline)h(uses.)20 b(This)13 b(is)h(set)f(from)f(the)h
-(argumen)o(t)g(to)f Ft(readline\(\))p Fu(,)g(and)h(should)195
-862 y(not)g(b)q(e)h(assigned)g(to)f(directly)l(.)21 b(The)14
-b Ft(rl_set_prompt\(\))d Fu(function)j(\(see)g(Section)g(2.4.6)e
-([Redis-)195 917 y(pla)o(y],)j(page)g(33\))f(ma)o(y)h(b)q(e)g(used)h
-(to)f(mo)q(dify)h(the)f(prompt)g(string)g(after)f(calling)j
-Ft(readline\(\))p Fu(.)1773 1026 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1026 V 21 w(already)p 419 1026
-V 21 w(prompted)195 1081 y Fu(If)e(an)g(application)i(wishes)f(to)f
-(displa)o(y)h(the)f(prompt)g(itself,)h(rather)f(than)g(ha)o(v)o(e)g
-(Readline)h(do)195 1136 y(it)e(the)f(\014rst)g(time)h
-Ft(readline\(\))e Fu(is)i(called,)h(it)e(should)i(set)e(this)h(v)m
-(ariable)g(to)f(a)g(non-zero)h(v)m(alue)195 1191 y(after)h(displa)o
-(ying)j(the)e(prompt.)31 b(The)19 b(prompt)g(m)o(ust)f(also)h(b)q(e)h
-(passed)f(as)f(the)h(argumen)o(t)g(to)195 1245 y Ft(readline\(\))c
-Fu(so)h(the)h(redispla)o(y)g(functions)h(can)e(up)q(date)h(the)g
-(displa)o(y)h(prop)q(erly)l(.)24 b(The)17 b(calling)195
-1300 y(application)g(is)f(resp)q(onsible)h(for)d(managing)h(the)h(v)m
-(alue;)g(Readline)g(nev)o(er)g(sets)e(it.)1773 1410 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 1410 V 21 w(library)p
-625 1410 V 21 w(v)n(ersion)195 1465 y Fu(The)c(v)o(ersion)h(n)o(um)o(b)
-q(er)f(of)g(this)h(revision)g(of)f(the)g(library)l(.)1773
-1574 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1574
-V 21 w(readline)p 434 1574 V 22 w(v)n(ersion)195 1629
-y Fu(An)d(in)o(teger)h(enco)q(ding)g(the)f(curren)o(t)g(v)o(ersion)g
-(of)g(the)g(library)l(.)27 b(The)17 b(enco)q(ding)h(is)g(of)f(the)g
-(form)195 1684 y(0x)p Fk(MMmm)p Fu(,)g(where)i Fk(MM)j
-Fu(is)d(the)f(t)o(w)o(o-digit)g(ma)s(jor)f(v)o(ersion)i(n)o(um)o(b)q
-(er,)g(and)f Fk(mm)g Fu(is)h(the)f(t)o(w)o(o-)195 1738
-y(digit)i(minor)e(v)o(ersion)h(n)o(um)o(b)q(er.)31 b(F)l(or)18
-b(example,)i(for)e(Readline-4.2,)i Ft(rl_readline_version)195
-1793 y Fu(w)o(ould)c(ha)o(v)o(e)e(the)i(v)m(alue)g(0x0402.)1773
-1903 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1903
-V 21 w(gn)n(u)p 327 1903 V 20 w(readline)p 545 1903 V
-22 w(p)195 1958 y Fu(Alw)o(a)o(ys)15 b(set)g(to)f(1,)h(denoting)h(that)
-e(this)i(is)g Fp(gnu)f Fu(readline)h(rather)f(than)g(some)g(em)o
-(ulation.)1773 2067 y(V)l(ariable)-1861 b Fi(const)20
-b(char)g(*)f Fh(rl)p 436 2067 V 21 w(terminal)p 668 2067
-V 21 w(name)195 2122 y Fu(The)14 b(terminal)h(t)o(yp)q(e,)f(used)h(for)
-e(initialization.)23 b(If)14 b(not)f(set)h(b)o(y)g(the)g(application,)i
-(Readline)f(sets)195 2177 y(this)h(to)e(the)h(v)m(alue)i(of)e(the)g
-Ft(TERM)g Fu(en)o(vironmen)o(t)g(v)m(ariable)i(the)e(\014rst)g(time)g
-(it)h(is)f(called.)1773 2286 y(V)l(ariable)-1861 b Fi(const)20
-b(char)g(*)f Fh(rl)p 436 2286 V 21 w(readline)p 655 2286
-V 22 w(name)195 2341 y Fu(This)d(v)m(ariable)h(is)f(set)g(to)f(a)g
-(unique)i(name)f(b)o(y)f(eac)o(h)h(application)h(using)f(Readline.)23
-b(The)16 b(v)m(alue)195 2396 y(allo)o(ws)e(conditional)i(parsing)e(of)g
-(the)g(inputrc)h(\014le)g(\(see)f(Section)h(1.3.2)d([Conditional)j
-(Init)g(Con-)195 2451 y(structs],)f(page)h(9\).)1773
-2560 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286
-2560 V 21 w(instream)195 2615 y Fu(The)i(stdio)f(stream)g(from)g(whic)o
-(h)h(Readline)h(reads)e(input.)37 b(If)21 b Ft(NULL)p
-Fu(,)g(Readline)h(defaults)f(to)195 2670 y Fk(stdin)p
-Fu(.)p eop
-%%Page: 26 28
-26 27 bop 75 -58 a Fu(26)1299 b(GNU)15 b(Readline)h(Library)1773
-149 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286
-149 18 3 v 21 w(outstream)195 204 y Fu(The)e(stdio)h(stream)e(to)h
-(whic)o(h)h(Readline)g(p)q(erforms)f(output.)26 b(If)18
-b Ft(NULL)p Fu(,)e(Readline)j(defaults)f(to)195 259 y
-Fk(stdout)p Fu(.)1773 381 y(V)l(ariable)-1861 b Fi(rl_command_func_t)22
-b(*)d Fh(rl)p 626 381 V 21 w(last)p 735 381 V 21 w(func)195
-436 y Fu(The)f(address)f(of)g(the)g(last)h(command)f(function)h
-(Readline)h(executed.)27 b(Ma)o(y)17 b(b)q(e)h(used)g(to)f(test)195
-490 y(whether)e(or)g(not)g(a)g(function)h(is)f(b)q(eing)i(executed)f(t)
-o(wice)g(in)g(succession,)g(for)e(example.)1773 612 y(V)l(ariable)-1861
-b Fi(rl_hook_func_t)21 b(*)e Fh(rl)p 547 612 V 22 w(startup)p
-752 612 V 19 w(ho)r(ok)195 667 y Fu(If)e(non-zero,)h(this)g(is)f(the)h
-(address)f(of)f(a)h(function)h(to)f(call)h(just)f(b)q(efore)g
-Ft(readline)f Fu(prin)o(ts)i(the)195 722 y(\014rst)d(prompt.)1773
-844 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e
-Fh(rl)p 547 844 V 22 w(pre)p 651 844 V 20 w(input)p 804
-844 V 21 w(ho)r(ok)195 898 y Fu(If)f(non-zero,)g(this)g(is)h(the)f
-(address)f(of)h(a)f(function)i(to)e(call)i(after)e(the)h(\014rst)f
-(prompt)g(has)h(b)q(een)195 953 y(prin)o(ted)e(and)f(just)g(b)q(efore)h
-Ft(readline)e Fu(starts)g(reading)h(input)i(c)o(haracters.)1773
-1075 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e
-Fh(rl)p 547 1075 V 22 w(ev)n(en)n(t)p 701 1075 V 22 w(ho)r(ok)195
-1130 y Fu(If)i(non-zero,)g(this)g(is)g(the)f(address)g(of)g(a)g
-(function)h(to)f(call)i(p)q(erio)q(dically)h(when)e(Readline)g(is)195
-1184 y(w)o(aiting)15 b(for)f(terminal)h(input.)21 b(By)14
-b(default,)h(this)g(will)i(b)q(e)e(called)h(at)e(most)g(ten)g(times)h
-(a)f(second)195 1239 y(if)i(there)f(is)h(no)f(k)o(eyb)q(oard)g(input.)
-1773 1361 y(V)l(ariable)-1861 b Fi(rl_getc_func_t)21
-b(*)e Fh(rl)p 547 1361 V 22 w(getc)p 671 1361 V 21 w(function)195
-1416 y Fu(If)c(non-zero,)h(Readline)g(will)h(call)f(indirectly)i
-(through)d(this)g(p)q(oin)o(ter)h(to)f(get)f(a)h(c)o(haracter)g(from)
-195 1471 y(the)k(input)i(stream.)31 b(By)19 b(default,)h(it)g(is)g(set)
-f(to)f Ft(rl_getc)p Fu(,)h(the)g(default)h(Readline)h(c)o(haracter)195
-1525 y(input)16 b(function)g(\(see)f(Section)h(2.4.8)e([Character)g
-(Input],)h(page)g(34\).)1773 1647 y(V)l(ariable)-1861
-b Fi(rl_voidfunc_t)21 b(*)e Fh(rl)p 521 1647 V 21 w(redispla)n(y)p
-765 1647 V 22 w(function)195 1702 y Fu(If)f(non-zero,)h(Readline)g
-(will)h(call)f(indirectly)h(through)e(this)g(p)q(oin)o(ter)h(to)e(up)q
-(date)i(the)f(displa)o(y)195 1757 y(with)c(the)f(curren)o(t)h(con)o
-(ten)o(ts)f(of)g(the)g(editing)i(bu\013er.)k(By)14 b(default,)g(it)g
-(is)g(set)f(to)g Ft(rl_redisplay)p Fu(,)195 1812 y(the)i(default)h
-(Readline)h(redispla)o(y)f(function)g(\(see)f(Section)h(2.4.6)e
-([Redispla)o(y],)h(page)g(33\).)1773 1933 y(V)l(ariable)-1861
-b Fi(rl_vintfunc_t)21 b(*)e Fh(rl)p 521 1933 V 21 w(prep)p
-656 1933 V 21 w(term)p 798 1933 V 19 w(function)195 1988
-y Fu(If)12 b(non-zero,)h(Readline)g(will)h(call)f(indirectly)h(through)
-e(this)g(p)q(oin)o(ter)h(to)e(initialize)k(the)e(terminal.)195
-2043 y(The)19 b(function)g(tak)o(es)f(a)g(single)i(argumen)o(t,)e(an)h
-Ft(int)f Fu(\015ag)g(that)g(sa)o(ys)g(whether)g(or)h(not)f(to)g(use)195
-2098 y(eigh)o(t-bit)g(c)o(haracters.)25 b(By)17 b(default,)h(this)f(is)
-h(set)e(to)h Ft(rl_prep_terminal)e Fu(\(see)i(Section)h(2.4.9)195
-2152 y([T)l(erminal)e(Managemen)o(t],)d(page)i(35\).)1773
-2274 y(V)l(ariable)-1861 b Fi(rl_voidfunc_t)21 b(*)e
-Fh(rl)p 521 2274 V 21 w(deprep)p 714 2274 V 21 w(term)p
-856 2274 V 19 w(function)195 2329 y Fu(If)g(non-zero,)g(Readline)g
-(will)h(call)g(indirectly)g(through)e(this)h(p)q(oin)o(ter)f(to)g
-(reset)g(the)h(terminal.)195 2384 y(This)f(function)g(should)h(undo)f
-(the)f(e\013ects)h(of)f Ft(rl_prep_term_function)p Fu(.)24
-b(By)17 b(default,)i(this)195 2439 y(is)d(set)f(to)f
-Ft(rl_deprep_terminal)f Fu(\(see)i(Section)h(2.4.9)e([T)l(erminal)i
-(Managemen)o(t],)d(page)i(35\).)1773 2560 y(V)l(ariable)-1861
-b Fi(Keymap)20 b Fh(rl)p 293 2560 V 21 w(executing)p
-551 2560 V 22 w(k)n(eymap)195 2615 y Fu(This)f(v)m(ariable)g(is)f(set)g
-(to)g(the)g(k)o(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h
-(29\))f(in)i(whic)o(h)195 2670 y(the)c(curren)o(tly)h(executing)g
-(readline)h(function)f(w)o(as)f(found.)p eop
-%%Page: 27 29
-27 28 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(27)1773 149 y(V)l(ariable)-1861 b Fi(Keymap)20
-b Fh(rl)p 293 149 18 3 v 21 w(binding)p 501 149 V 22
-w(k)n(eymap)195 204 y Fu(This)f(v)m(ariable)g(is)f(set)g(to)g(the)g(k)o
-(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h(29\))f(in)i
-(whic)o(h)195 259 y(the)c(last)g(k)o(ey)g(binding)j(o)q(ccurred.)1773
-383 y(V)l(ariable)-1861 b Fi(char)20 b(*)f Fh(rl)p 286
-383 V 21 w(executing)p 544 383 V 22 w(macro)195 438 y
-Fu(This)d(v)m(ariable)g(is)g(set)f(to)g(the)g(text)g(of)f(an)o(y)h
-(curren)o(tly-executing)i(macro.)1773 562 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 562 V 21 w(readline)p 434 562
-V 22 w(state)195 617 y Fu(A)d(v)m(ariable)i(with)e(bit)h(v)m(alues)h
-(that)d(encapsulate)i(the)g(curren)o(t)f(Readline)h(state.)25
-b(A)18 b(bit)f(is)h(set)195 671 y(with)h(the)g Ft(RL_SETSTATE)f
-Fu(macro,)h(and)g(unset)g(with)g(the)g Ft(RL_UNSETSTATE)e
-Fu(macro.)31 b(Use)19 b(the)195 726 y Ft(RL_ISSTATE)e
-Fu(macro)h(to)g(test)g(whether)h(a)f(particular)i(state)d(bit)j(is)f
-(set.)30 b(Curren)o(t)18 b(state)g(bits)195 781 y(include:)195
-864 y Ft(RL_STATE_NONE)435 919 y Fu(Readline)e(has)g(not)e(y)o(et)h(b)q
-(een)h(called,)h(nor)e(has)g(it)g(b)q(egun)h(to)f(in)o(tialize.)195
-1001 y Ft(RL_STATE_INITIALIZING)435 1056 y Fu(Readline)h(is)g
-(initializi)q(ng)i(its)d(in)o(ternal)h(data)f(structures.)195
-1138 y Ft(RL_STATE_INITIALIZED)435 1192 y Fu(Readline)h(has)g
-(completed)g(its)f(initialization.)195 1274 y Ft(RL_STATE_TERMPREPPED)
-435 1329 y Fu(Readline)h(has)e(mo)q(di\014ed)i(the)e(terminal)h(mo)q
-(des)g(to)e(do)i(its)f(o)o(wn)g(input)h(and)g(redis-)435
-1384 y(pla)o(y)l(.)195 1466 y Ft(RL_STATE_READCMD)435
-1521 y Fu(Readline)h(is)g(reading)g(a)f(command)g(from)f(the)i(k)o(eyb)
-q(oard.)195 1603 y Ft(RL_STATE_METANEXT)435 1658 y Fu(Readline)g(is)g
-(reading)g(more)f(input)h(after)e(reading)i(the)f(meta-pre\014x)h(c)o
-(haracter.)195 1740 y Ft(RL_STATE_DISPATCHING)435 1794
-y Fu(Readline)g(is)g(dispatc)o(hing)h(to)d(a)h(command.)195
-1876 y Ft(RL_STATE_MOREINPUT)435 1931 y Fu(Readline)h(is)g(reading)g
-(more)f(input)h(while)h(executing)f(an)f(editing)i(command.)195
-2013 y Ft(RL_STATE_ISEARCH)435 2068 y Fu(Readline)f(is)g(p)q(erforming)
-g(an)f(incremen)o(tal)h(history)f(searc)o(h.)195 2150
-y Ft(RL_STATE_NSEARCH)435 2205 y Fu(Readline)h(is)g(p)q(erforming)g(a)f
-(non-incremen)o(tal)h(history)g(searc)o(h.)195 2287 y
-Ft(RL_STATE_SEARCH)435 2342 y Fu(Readline)11 b(is)g(searc)o(hing)g(bac)
-o(kw)o(ard)e(or)h(forw)o(ard)f(through)h(the)g(history)g(for)f(a)h
-(string.)195 2424 y Ft(RL_STATE_NUMERICARG)435 2478 y
-Fu(Readline)16 b(is)g(reading)g(a)f(n)o(umeric)h(argumen)o(t.)195
-2560 y Ft(RL_STATE_MACROINPUT)435 2615 y Fu(Readline)d(is)g(curren)o
-(tly)g(getting)f(its)g(input)h(from)e(a)h(previously-de\014ned)j(k)o
-(eyb)q(oard)435 2670 y(macro.)p eop
-%%Page: 28 30
-28 29 bop 75 -58 a Fu(28)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(RL_STATE_MACRODEF)435 204 y Fu(Readline)g(is)g(curren)o(tly)g
-(reading)g(c)o(haracters)e(de\014ning)j(a)e(k)o(eyb)q(oard)g(macro.)195
-286 y Ft(RL_STATE_OVERWRITE)435 341 y Fu(Readline)h(is)g(in)g(o)o(v)o
-(erwrite)f(mo)q(de.)195 423 y Ft(RL_STATE_COMPLETING)435
-478 y Fu(Readline)h(is)g(p)q(erforming)g(w)o(ord)e(completion.)195
-560 y Ft(RL_STATE_SIGHANDLER)435 615 y Fu(Readline)i(is)g(curren)o(tly)
-g(executing)g(the)f(readline)i(signal)f(handler.)195
-697 y Ft(RL_STATE_UNDOING)435 752 y Fu(Readline)g(is)g(p)q(erforming)g
-(an)f(undo.)195 834 y Ft(RL_STATE_DONE)435 889 y Fu(Readline)g(has)f
-(read)g(a)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e Ft(accept-line)f
-Fu(and)i(is)h(ab)q(out)f(to)435 944 y(return)h(the)g(line)i(to)e(the)g
-(caller.)1773 1068 y(V)l(ariable)-1861 b Fi(int)20 b
-Fh(rl)p 215 1068 18 3 v 21 w(explicit)p 417 1068 V 24
-w(arg)195 1123 y Fu(Set)f(to)g(a)g(non-zero)h(v)m(alue)h(if)e(an)h
-(explicit)h(n)o(umeric)g(argumen)o(t)d(w)o(as)h(sp)q(eci\014ed)i(b)o(y)
-f(the)f(user.)195 1178 y(Only)d(v)m(alid)h(in)f(a)f(bindable)i(command)
-f(function.)1773 1302 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 1302 V 21 w(n)n(umeric)p 437 1302 V 20
-w(arg)195 1357 y Fu(Set)j(to)f(the)g(v)m(alue)i(of)f(an)o(y)f(n)o
-(umeric)h(argumen)o(t)f(explicitly)k(sp)q(eci\014ed)f(b)o(y)d(the)h
-(user)g(b)q(efore)195 1412 y(executing)14 b(the)f(curren)o(t)g
-(Readline)h(function.)20 b(Only)14 b(v)m(alid)h(in)f(a)f(bindable)i
-(command)d(function.)1773 1536 y(V)l(ariable)-1861 b
-Fi(int)20 b Fh(rl)p 215 1536 V 21 w(editing)p 407 1536
-V 22 w(mo)r(de)195 1591 y Fu(Set)13 b(to)f(a)g(v)m(alue)i(denoting)f
-(Readline's)g(curren)o(t)g(editing)h(mo)q(de.)19 b(A)12
-b(v)m(alue)i(of)e Fk(1)k Fu(means)d(Readline)195 1646
-y(is)j(curren)o(tly)f(in)h(emacs)g(mo)q(de;)f Fk(0)j
-Fu(means)d(that)g(vi)h(mo)q(de)f(is)h(activ)o(e.)75 1781
-y Fs(2.4)33 b(Readline)23 b(Con)n(v)n(enience)g(F)-6
-b(unctions)75 1927 y Fj(2.4.1)30 b(Naming)20 b(a)g(F)-5
-b(unction)137 2025 y Fu(The)20 b(user)g(can)g(dynamically)i(c)o(hange)e
-(the)g(bindings)i(of)d(k)o(eys)h(while)h(using)g(Readline.)35
-b(This)20 b(is)75 2080 y(done)f(b)o(y)f(represen)o(ting)h(the)g
-(function)g(with)g(a)f(descriptiv)o(e)i(name.)29 b(The)19
-b(user)f(is)h(able)h(to)d(t)o(yp)q(e)i(the)75 2135 y(descriptiv)o(e)e
-(name)e(when)h(referring)f(to)g(the)g(function.)21 b(Th)o(us,)14
-b(in)i(an)f(init)i(\014le,)f(one)f(migh)o(t)g(\014nd)195
-2202 y Ft(Meta-Rubout:)46 b(backward-kill-word)137 2272
-y Fu(This)21 b(binds)g(the)f(k)o(eystrok)o(e)661 2270
-y Fn(h)p 673 2244 209 2 v 673 2272 a Fm(Meta-Rub)q(out)p
-673 2279 V 879 2270 a Fn(i)914 2272 y Fu(to)g(the)g(function)g
-Fl(descriptively)k Fu(named)c Ft(backward-)75 2326 y(kill-word)p
-Fu(.)29 b(Y)l(ou,)19 b(as)f(the)h(programmer,)f(should)i(bind)f(the)g
-(functions)h(y)o(ou)e(write)h(to)e(descriptiv)o(e)75
-2381 y(names)e(as)g(w)o(ell.)21 b(Readline)16 b(pro)o(vides)g(a)f
-(function)h(for)e(doing)i(that:)1762 2506 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 18 3 v 21 w(add)p 328
-2506 V 20 w(defun)i Fg(\()p Ft(const)14 b(char)h(*name,)f
-(rl_command_func_t)283 2560 y(*function,)f(int)i(key)p
-Fg(\))195 2615 y Fu(Add)j Fk(name)i Fu(to)d(the)h(list)h(of)e(named)h
-(functions.)28 b(Mak)o(e)17 b Fk(function)h Fu(b)q(e)g(the)g(function)h
-(that)d(gets)195 2670 y(called.)21 b(If)16 b Fk(k)o(ey)j
-Fu(is)d(not)e(-1,)h(then)h(bind)g(it)g(to)e Fk(function)i
-Fu(using)g Ft(rl_bind_key\(\))p Fu(.)p eop
-%%Page: 29 31
-29 30 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(29)137 149 y(Using)16 b(this)f(function)h(alone)g(is)f
-(su\016cien)o(t)h(for)f(most)f(applications.)21 b(It)15
-b(is)h(the)f(recommended)h(w)o(a)o(y)75 204 y(to)d(add)h(a)f(few)g
-(functions)h(to)f(the)h(default)g(functions)g(that)f(Readline)i(has)e
-(built)i(in.)20 b(If)14 b(y)o(ou)f(need)h(to)f(do)75
-259 y(something)k(other)g(than)f(adding)i(a)e(function)i(to)e
-(Readline,)i(y)o(ou)f(ma)o(y)f(need)i(to)e(use)h(the)g(underlying)75
-314 y(functions)f(describ)q(ed)h(b)q(elo)o(w.)75 442
-y Fj(2.4.2)30 b(Selecting)20 b(a)h(Keymap)137 546 y Fu(Key)16
-b(bindings)i(tak)o(e)c(place)j(on)e(a)g Fk(k)o(eymap)p
-Fu(.)21 b(The)15 b(k)o(eymap)h(is)f(the)h(asso)q(ciation)g(b)q(et)o(w)o
-(een)g(the)f(k)o(eys)75 601 y(that)f(the)g(user)g(t)o(yp)q(es)g(and)h
-(the)f(functions)h(that)f(get)g(run.)19 b(Y)l(ou)c(can)f(mak)o(e)g(y)o
-(our)g(o)o(wn)f(k)o(eymaps,)h(cop)o(y)75 656 y(existing)i(k)o(eymaps,)f
-(and)g(tell)h(Readline)h(whic)o(h)f(k)o(eymap)f(to)f(use.)1762
-797 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-797 18 3 v 21 w(mak)n(e)p 445 797 V 20 w(bare)p 575 797
-V 20 w(k)n(eymap)j Fg(\()p Ft(void)p Fg(\))195 851 y
-Fu(Returns)12 b(a)f(new,)i(empt)o(y)f(k)o(eymap.)18 b(The)13
-b(space)f(for)f(the)i(k)o(eymap)e(is)i(allo)q(cated)g(with)f
-Ft(malloc\(\))p Fu(;)195 906 y(the)j(caller)i(should)f(free)f(it)h(b)o
-(y)f(calling)i Ft(rl_discard_keymap\(\))12 b Fu(when)k(done.)1762
-1047 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-1047 V 21 w(cop)n(y)p 428 1047 V 21 w(k)n(eymap)j Fg(\()p
-Ft(Keymap)14 b(map)p Fg(\))195 1102 y Fu(Return)h(a)g(new)g(k)o(eymap)g
-(whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fk(map)p Fu(.)1762
-1243 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-1243 V 21 w(mak)n(e)p 445 1243 V 20 w(k)n(eymap)j Fg(\()p
-Ft(void)p Fg(\))195 1298 y Fu(Return)16 b(a)f(new)i(k)o(eymap)e(with)i
-(the)f(prin)o(ting)h(c)o(haracters)e(b)q(ound)i(to)e(rl)p
-1457 1298 14 2 v 17 w(insert,)h(the)g(lo)o(w)o(ercase)195
-1353 y(Meta)11 b(c)o(haracters)f(b)q(ound)i(to)f(run)h(their)f(equiv)m
-(alen)o(ts,)j(and)d(the)h(Meta)e(digits)i(b)q(ound)g(to)f(pro)q(duce)
-195 1407 y(n)o(umeric)16 b(argumen)o(ts.)1762 1548 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 1548 18 3 v 21 w(discard)p
-441 1548 V 21 w(k)n(eymap)i Fg(\()p Ft(Keymap)14 b(keymap)p
-Fg(\))195 1603 y Fu(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f
-Fk(k)o(eymap)p Fu(.)137 1711 y(Readline)24 b(has)f(sev)o(eral)g(in)o
-(ternal)g(k)o(eymaps.)42 b(These)23 b(functions)g(allo)o(w)g(y)o(ou)f
-(to)g(c)o(hange)h(whic)o(h)75 1766 y(k)o(eymap)15 b(is)h(activ)o(e.)
-1762 1907 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p
-293 1907 V 21 w(get)p 391 1907 V 21 w(k)n(eymap)i Fg(\()p
-Ft(void)p Fg(\))195 1962 y Fu(Returns)15 b(the)g(curren)o(tly)h(activ)o
-(e)f(k)o(eymap.)1762 2103 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 2103 V 21 w(set)p 333 2103 V 21 w(k)n(eymap)i
-Fg(\()p Ft(Keymap)14 b(keymap)p Fg(\))195 2158 y Fu(Mak)o(es)g
-Fk(k)o(eymap)j Fu(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1762
-2298 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-2298 V 21 w(get)p 391 2298 V 21 w(k)n(eymap)p 605 2298
-V 20 w(b)n(y)p 685 2298 V 21 w(name)i Fg(\()p Ft(const)14
-b(char)g(*name)p Fg(\))195 2353 y Fu(Return)i(the)h(k)o(eymap)f(matc)o
-(hing)h Fk(name)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o
-(ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 2408 y(keymap)e
-Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)i(Init)g(File],)g
-(page)f(4\).)1762 2549 y(F)l(unction)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 2549 V 21 w(get)p 384 2549 V 21 w(k)n(eymap)p
-598 2549 V 20 w(name)i Fg(\()p Ft(Keymap)14 b(keymap)p
-Fg(\))195 2604 y Fu(Return)i(the)h(name)g(matc)o(hing)f
-Fk(k)o(eymap)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o
-(ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 2659 y(keymap)e
-Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)i(Init)g(File],)g
-(page)f(4\).)p eop
-%%Page: 30 32
-30 31 bop 75 -58 a Fu(30)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.3)30 b(Binding)20 b(Keys)137 244 y Fu(Key)13
-b(sequences)g(are)e(asso)q(ciate)h(with)h(functions)f(through)g(the)g
-(k)o(eymap.)19 b(Readline)13 b(has)f(sev)o(eral)g(in-)75
-299 y(ternal)j(k)o(eymaps:)k Ft(emacs_standard_keymap)p
-Fu(,)11 b Ft(emacs_meta_keymap)p Fu(,)h Ft(emacs_ctlx_keymap)p
-Fu(,)g Ft(vi_)75 354 y(movement_keymap)p Fu(,)20 b(and)i
-Ft(vi_insertion_keymap)p Fu(.)35 b Ft(emacs_standard_keymap)18
-b Fu(is)k(the)f(default,)75 408 y(and)15 b(the)h(examples)g(in)g(this)f
-(man)o(ual)h(assume)f(that.)137 474 y(Since)h Ft(readline\(\))c
-Fu(installs)j(a)f(set)f(of)h(default)g(k)o(ey)g(bindings)h(the)f
-(\014rst)g(time)g(it)g(is)g(called,)i(there)d(is)75 529
-y(alw)o(a)o(ys)j(the)g(danger)g(that)g(a)g(custom)g(binding)i
-(installed)g(b)q(efore)f(the)f(\014rst)g(call)i(to)d
-Ft(readline\(\))g Fu(will)75 584 y(b)q(e)f(o)o(v)o(erridden.)19
-b(An)13 b(alternate)g(mec)o(hanism)h(is)f(to)f(install)i(custom)f(k)o
-(ey)g(bindings)h(in)g(an)f(initialization)75 638 y(function)19
-b(assigned)h(to)d(the)i Ft(rl_startup_hook)e Fu(v)m(ariable)j(\(see)e
-(Section)h(2.3)f([Readline)i(V)l(ariables],)75 693 y(page)15
-b(24\).)137 759 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1762
-868 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 868
-18 3 v 21 w(bind)p 347 868 V 21 w(k)n(ey)k Fg(\()p Ft(int)14
-b(key,)h(rl_command_func_t)d(*function)p Fg(\))195 922
-y Fu(Binds)18 b Fk(k)o(ey)i Fu(to)c Fk(function)h Fu(in)h(the)e(curren)
-o(tly)h(activ)o(e)g(k)o(eymap.)23 b(Returns)16 b(non-zero)h(in)g(the)g
-(case)195 977 y(of)e(an)g(in)o(v)m(alid)i Fk(k)o(ey)p
-Fu(.)1762 1086 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1086 V 21 w(bind)p 347 1086 V 21 w(k)n(ey)p 452 1086
-V 21 w(in)p 520 1086 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h
-(rl_command_func_t)e(*function,)283 1141 y(Keymap)h(map)p
-Fg(\))195 1196 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c Fk(function)h
-Fu(in)g Fk(map)p Fu(.)k(Returns)14 b(non-zero)i(in)g(the)f(case)g(of)g
-(an)g(in)o(v)m(alid)j Fk(k)o(ey)p Fu(.)1762 1304 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1304 V 21 w(un)n(bind)p 409
-1304 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 b(key)p Fg(\))195
-1359 y Fu(Bind)19 b Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i(function)f(in)g
-(the)f(curren)o(tly)g(activ)o(e)h(k)o(eymap.)28 b(Returns)18
-b(non-zero)g(in)195 1414 y(case)d(of)g(error.)1762 1523
-y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1523 V
-21 w(un)n(bind)p 409 1523 V 21 w(k)n(ey)p 514 1523 V
-21 w(in)p 582 1523 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Keymap)f
-(map)p Fg(\))195 1577 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i
-(function)f(in)g Fk(map)p Fu(.)k(Returns)14 b(non-zero)i(in)g(case)f
-(of)g(error.)1762 1686 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 1686 V 21 w(un)n(bind)p 409 1686 V 21 w(function)p
-635 1686 V 21 w(in)p 703 1686 V 21 w(map)h Fg(\()p Ft
-(rl_command_func_t)13 b(*function,)283 1741 y(Keymap)h(map)p
-Fg(\))195 1796 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(execute)i
-Fk(function)g Fu(in)g Fk(map)p Fu(.)1762 1905 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1905 V 21 w(un)n(bind)p 409
-1905 V 21 w(command)p 674 1905 V 17 w(in)p 738 1905 V
-22 w(map)h Fg(\()p Ft(const)14 b(char)h(*command,)f(Keymap)283
-1959 y(map)p Fg(\))195 2014 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f
-(are)h(b)q(ound)h(to)f Fk(command)i Fu(in)f Fk(map)p
-Fu(.)1762 2123 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2123 V 21 w(set)p 307 2123 V 20 w(k)n(ey)k Fg(\()p
-Ft(const)14 b(char)h(*keyseq,)f(rl_command_func_t)f(*function,)283
-2178 y(Keymap)h(map)p Fg(\))195 2232 y Fu(Bind)g(the)e(k)o(ey)h
-(sequence)h(represen)o(ted)f(b)o(y)f(the)h(string)f Fk(k)o(eyseq)i
-Fu(to)e(the)g(function)i Fk(function)p Fu(.)19 b(This)195
-2287 y(mak)o(es)13 b(new)g(k)o(eymaps)g(as)f(necessary)l(.)20
-b(The)13 b(initial)j(k)o(eymap)c(in)i(whic)o(h)g(to)f(do)g(bindings)i
-(is)f Fk(map)p Fu(.)1762 2396 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 2396 V 21 w(generic)p 413 2396 V 21 w(bind)j
-Fg(\()p Ft(int)15 b(type,)f(const)h(char)f(*keyseq,)g(char)h(*data,)283
-2451 y(Keymap)f(map)p Fg(\))195 2506 y Fu(Bind)h(the)e(k)o(ey)h
-(sequence)h(represen)o(ted)e(b)o(y)h(the)g(string)f Fk(k)o(eyseq)i
-Fu(to)d(the)i(arbitrary)f(p)q(oin)o(ter)h Fk(data)p Fu(.)195
-2560 y Fk(t)o(yp)q(e)j Fu(sa)o(ys)c(what)h(kind)h(of)f(data)g(is)g(p)q
-(oin)o(ted)i(to)d(b)o(y)h Fk(data)p Fu(;)g(this)h(can)f(b)q(e)h(a)f
-(function)h(\()p Ft(ISFUNC)p Fu(\),)d(a)195 2615 y(macro)i(\()p
-Ft(ISMACR)p Fu(\),)f(or)h(a)h(k)o(eymap)f(\()p Ft(ISKMAP)p
-Fu(\).)k(This)e(mak)o(es)e(new)h(k)o(eymaps)f(as)h(necessary)l(.)20
-b(The)195 2670 y(initial)d(k)o(eymap)e(in)h(whic)o(h)g(to)f(do)g
-(bindings)i(is)f Fk(map)p Fu(.)p eop
-%%Page: 31 33
-31 32 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(31)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(parse)p 369 149 V 19 w(and)p
-480 149 V 21 w(bind)j Fg(\()p Ft(char)14 b(*line)p Fg(\))195
-204 y Fu(P)o(arse)g Fk(line)19 b Fu(as)14 b(if)h(it)g(had)g(b)q(een)h
-(read)f(from)f(the)g Ft(inputrc)g Fu(\014le)i(and)f(p)q(erform)f(an)o
-(y)h(k)o(ey)f(bindings)195 259 y(and)h(v)m(ariable)i(assignmen)o(ts)e
-(found)h(\(see)f(Section)h(1.3)e([Readline)i(Init)g(File],)g(page)f
-(4\).)1762 359 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 359 V 21 w(read)p 346 359 V 20 w(init)p 450 359 V
-22 w(\014le)k Fg(\()p Ft(const)14 b(char)h(*filename)p
-Fg(\))195 414 y Fu(Read)g(k)o(eybindings)j(and)e(v)m(ariable)h
-(assignmen)o(ts)f(from)f Fk(\014lename)k Fu(\(see)d(Section)g(1.3)f
-([Readline)195 469 y(Init)h(File],)g(page)f(4\).)75 571
-y Fj(2.4.4)30 b(Asso)r(ciating)20 b(F)-5 b(unction)20
-b(Names)h(and)f(Bindings)137 664 y Fu(These)11 b(functions)h(allo)o(w)e
-(y)o(ou)h(to)f(\014nd)h(out)f(what)g(k)o(eys)h(in)o(v)o(ok)o(e)f(named)
-h(functions)h(and)e(the)h(functions)75 718 y(in)o(v)o(ok)o(ed)j(b)o(y)g
-(a)f(particular)h(k)o(ey)g(sequence.)21 b(Y)l(ou)14 b(ma)o(y)f(also)g
-(asso)q(ciate)h(a)g(new)g(function)g(name)g(with)g(an)75
-773 y(arbitrary)h(function.)1762 873 y(F)l(unction)-1861
-b Fi(rl_command_func_t)22 b(*)d Fh(rl)p 626 873 V 21
-w(named)p 814 873 V 19 w(function)k Fg(\()p Ft(const)14
-b(char)h(*name)p Fg(\))195 928 y Fu(Return)g(the)g(function)h(with)g
-(name)f Fk(name)p Fu(.)1762 1028 y(F)l(unction)-1861
-b Fi(rl_command_func_t)22 b(*)d Fh(rl)p 626 1028 V 21
-w(function)p 852 1028 V 21 w(of)p 920 1028 V 20 w(k)n(eyseq)24
-b Fg(\()p Ft(const)14 b(char)283 1083 y(*keyseq,)g(Keymap)g(map,)h(int)
-f(*type)p Fg(\))195 1138 y Fu(Return)i(the)g(function)h(in)o(v)o(ok)o
-(ed)g(b)o(y)f Fk(k)o(eyseq)h Fu(in)g(k)o(eymap)f Fk(map)p
-Fu(.)23 b(If)17 b Fk(map)g Fu(is)g Ft(NULL)p Fu(,)f(the)g(curren)o(t)
-195 1193 y(k)o(eymap)i(is)h(used.)31 b(If)18 b Fk(t)o(yp)q(e)j
-Fu(is)e(not)g Ft(NULL)p Fu(,)f(the)g(t)o(yp)q(e)h(of)f(the)h(ob)s(ject)
-f(is)h(returned)g(in)g(the)f Ft(int)195 1247 y Fu(v)m(ariable)f(it)e(p)
-q(oin)o(ts)h(to)e(\(one)h(of)g Ft(ISFUNC)p Fu(,)f Ft(ISKMAP)p
-Fu(,)g(or)h Ft(ISMACR)p Fu(\).)1762 1347 y(F)l(unction)-1861
-b Fi(char)20 b(**)f Fh(rl)p 312 1347 V 21 w(in)n(v)n(oking)p
-541 1347 V 23 w(k)n(eyseqs)k Fg(\()p Ft(rl_command_func_t)13
-b(*function)p Fg(\))195 1402 y Fu(Return)i(an)h(arra)o(y)e(of)h
-(strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in)
-o(v)o(ok)o(e)h Fk(function)g Fu(in)195 1457 y(the)f(curren)o(t)g(k)o
-(eymap.)1762 1557 y(F)l(unction)-1861 b Fi(char)20 b(**)f
-Fh(rl)p 312 1557 V 21 w(in)n(v)n(oking)p 541 1557 V 23
-w(k)n(eyseqs)p 750 1557 V 21 w(in)p 818 1557 V 22 w(map)i
-Fg(\()p Ft(rl_command_func_t)283 1612 y(*function,)13
-b(Keymap)i(map)p Fg(\))195 1667 y Fu(Return)g(an)h(arra)o(y)e(of)h
-(strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in)
-o(v)o(ok)o(e)h Fk(function)g Fu(in)195 1722 y(the)f(k)o(eymap)g
-Fk(map)p Fu(.)1762 1822 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1822 V 21 w(function)p 467 1822 V 21 w(dump)r(er)g
-Fg(\()p Ft(int)15 b(readable)p Fg(\))195 1876 y Fu(Prin)o(t)g(the)f
-(readline)j(function)e(names)g(and)f(the)h(k)o(ey)g(sequences)g(curren)
-o(tly)g(b)q(ound)h(to)e(them)h(to)195 1931 y Ft(rl_outstream)p
-Fu(.)j(If)c Fk(readable)j Fu(is)d(non-zero,)g(the)g(list)g(is)h
-(formatted)d(in)j(suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)h(can)195
-1986 y(b)q(e)i(made)f(part)g(of)f(an)i Ft(inputrc)e Fu(\014le)i(and)f
-(re-read.)1762 2086 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 2086 V 21 w(list)p 337 2086 V 22 w(funmap)p
-550 2086 V 18 w(names)h Fg(\()p Ft(void)p Fg(\))195 2141
-y Fu(Prin)o(t)15 b(the)g(names)h(of)e(all)j(bindable)g(Readline)f
-(functions)g(to)f Ft(rl_outstream)p Fu(.)1762 2241 y(F)l(unction)-1861
-b Fi(const)20 b(char)g(**)f Fh(rl)p 462 2241 V 21 w(funmap)p
-674 2241 V 18 w(names)i Fg(\()p Ft(void)p Fg(\))195 2296
-y Fu(Return)13 b(a)f(NULL)i(terminated)g(arra)o(y)d(of)i(kno)o(wn)g
-(function)g(names.)20 b(The)13 b(arra)o(y)f(is)h(sorted.)19
-b(The)195 2351 y(arra)o(y)11 b(itself)j(is)f(allo)q(cated,)h(but)f(not)
-f(the)h(strings)f(inside.)21 b(Y)l(ou)13 b(should)h Ft(free\(\))d
-Fu(the)i(arra)o(y)e(when)195 2405 y(y)o(ou)k(are)g(done,)g(but)g(not)g
-(the)g(p)q(oin)o(ters.)1762 2506 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(add)p 328 2506
-V 20 w(funmap)p 539 2506 V 18 w(en)n(try)j Fg(\()p Ft(const)14
-b(char)h(*name,)f(rl_command_func_t)283 2560 y(*function)p
-Fg(\))195 2615 y Fu(Add)j Fk(name)i Fu(to)d(the)g(list)h(of)f(bindable)
-j(Readline)f(command)e(names,)g(and)h(mak)o(e)f Fk(function)h
-Fu(the)195 2670 y(function)f(to)f(b)q(e)g(called)i(when)f
-Fk(name)i Fu(is)d(in)o(v)o(ok)o(ed.)p eop
-%%Page: 32 34
-32 33 bop 75 -58 a Fu(32)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.5)30 b(Allo)n(wing)21 b(Undoing)137 251
-y Fu(Supp)q(orting)14 b(the)g(undo)f(command)g(is)h(a)f(painless)h
-(thing,)g(and)f(mak)o(es)g(y)o(our)f(functions)i(m)o(uc)o(h)f(more)75
-306 y(useful.)21 b(It)15 b(is)h(certainly)g(easy)f(to)g(try)f
-(something)i(if)f(y)o(ou)g(kno)o(w)g(y)o(ou)g(can)g(undo)h(it.)137
-378 y(If)21 b(y)o(our)f(function)h(simply)h(inserts)f(text)e(once,)j
-(or)e(deletes)h(text)f(once,)i(and)f(uses)f Ft(rl_insert_)75
-433 y(text\(\))13 b Fu(or)h Ft(rl_delete_text\(\))d Fu(to)j(do)f(it,)h
-(then)h(undoing)g(is)f(already)g(done)h(for)e(y)o(ou)h(automatically)l
-(.)137 506 y(If)d(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o
-(ultiple)i(deletions,)g(or)e(an)o(y)g(com)o(bination)h(of)f(these)g(op)
-q(erations,)75 560 y(y)o(ou)19 b(should)h(group)e(them)h(together)g(in)
-o(to)g(one)g(op)q(eration.)31 b(This)20 b(is)f(done)h(with)f
-Ft(rl_begin_undo_)75 615 y(group\(\))14 b Fu(and)i Ft
-(rl_end_undo_group\(\))p Fu(.)137 688 y(The)g(t)o(yp)q(es)f(of)g(ev)o
-(en)o(ts)g(that)f(can)h(b)q(e)h(undone)g(are:)195 757
-y Ft(enum)23 b(undo_code)g({)h(UNDO_DELETE,)e(UNDO_INSERT,)g
-(UNDO_BEGIN,)g(UNDO_END)h(};)137 830 y Fu(Notice)16 b(that)e
-Ft(UNDO_DELETE)g Fu(means)h(to)g(insert)g(some)g(text,)f(and)i
-Ft(UNDO_INSERT)d Fu(means)i(to)g(delete)75 885 y(some)e(text.)19
-b(That)14 b(is,)g(the)g(undo)g(co)q(de)g(tells)h(what)e(to)h(undo,)g
-(not)f(ho)o(w)g(to)g(undo)i(it.)k Ft(UNDO_BEGIN)13 b
-Fu(and)75 939 y Ft(UNDO_END)h Fu(are)h(tags)f(added)i(b)o(y)f
-Ft(rl_begin_undo_group\(\))d Fu(and)k Ft(rl_end_undo_group\(\))p
-Fu(.)1762 1072 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1072 18 3 v 21 w(b)r(egin)p 372 1072 V 20 w(undo)p
-517 1072 V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 1127
-y Fu(Begins)16 b(sa)o(ving)g(undo)g(information)f(in)i(a)e(group)g
-(construct.)20 b(The)c(undo)g(information)g(usually)195
-1182 y(comes)21 b(from)f(calls)i(to)e Ft(rl_insert_text\(\))e
-Fu(and)j Ft(rl_delete_text\(\))p Fu(,)f(but)h(could)g(b)q(e)h(the)195
-1237 y(result)16 b(of)e(calls)j(to)d Ft(rl_add_undo\(\))p
-Fu(.)1762 1370 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1370 V 21 w(end)p 326 1370 V 20 w(undo)p 471 1370
-V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 1424 y Fu(Closes)15
-b(the)f(curren)o(t)h(undo)g(group)f(started)g(with)g
-Ft(rl_begin_undo_group)f(\(\))p Fu(.)19 b(There)c(should)195
-1479 y(b)q(e)h(one)f(call)i(to)d Ft(rl_end_undo_group\(\))f
-Fu(for)h(eac)o(h)h(call)i(to)d Ft(rl_begin_undo_group\(\))p
-Fu(.)1762 1612 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p
-241 1612 V 21 w(add)p 354 1612 V 20 w(undo)i Fg(\()p
-Ft(enum)14 b(undo_code)g(what,)g(int)h(start,)g(int)f(end,)h(char)283
-1667 y(*text)p Fg(\))195 1722 y Fu(Remem)o(b)q(er)i(ho)o(w)f(to)h(undo)
-g(an)g(ev)o(en)o(t)g(\(according)g(to)g Fk(what)q Fu(\).)24
-b(The)17 b(a\013ected)g(text)f(runs)i(from)195 1776 y
-Fk(start)d Fu(to)g Fk(end)p Fu(,)g(and)g(encompasses)h
-Fk(text)p Fu(.)1762 1909 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1909 V 21 w(free)p 356 1909 V 20 w(undo)p
-501 1909 V 20 w(list)k Fg(\()p Ft(void)p Fg(\))195 1964
-y Fu(F)l(ree)15 b(the)h(existing)g(undo)f(list.)1762
-2097 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2097
-V 21 w(do)p 297 2097 V 20 w(undo)i Fg(\()p Ft(void)p
-Fg(\))195 2152 y Fu(Undo)12 b(the)f(\014rst)g(thing)h(on)g(the)f(undo)h
-(list.)19 b(Returns)11 b Ft(0)h Fu(if)g(there)f(w)o(as)g(nothing)h(to)e
-(undo,)j(non-zero)195 2206 y(if)j(something)f(w)o(as)f(undone.)137
-2309 y(Finally)l(,)j(if)f(y)o(ou)f(neither)i(insert)f(nor)f(delete)i
-(text,)e(but)g(directly)i(mo)q(dify)f(the)g(existing)g(text)g(\(e.g.,)
-75 2364 y(c)o(hange)j(its)h(case\),)g(call)g Ft(rl_modifying\(\))e
-Fu(once,)i(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)f(text.)32
-b(Y)l(ou)20 b(m)o(ust)75 2419 y(supply)c(the)g(indices)h(of)e(the)g
-(text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q(dify)l(.)1762
-2552 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2552
-V 21 w(mo)r(difying)h Fg(\()p Ft(int)15 b(start,)f(int)h(end)p
-Fg(\))195 2606 y Fu(T)l(ell)22 b(Readline)f(to)e(sa)o(v)o(e)h(the)g
-(text)g(b)q(et)o(w)o(een)g Fk(start)g Fu(and)g Fk(end)j
-Fu(as)c(a)h(single)h(undo)g(unit.)35 b(It)20 b(is)195
-2661 y(assumed)15 b(that)g(y)o(ou)g(will)i(subsequen)o(tly)f(mo)q(dify)
-g(that)e(text.)p eop
-%%Page: 33 35
-33 34 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(33)75 149 y Fj(2.4.6)30 b(Redispla)n(y)1762
-302 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241
-302 18 3 v 21 w(redispla)n(y)k Fg(\()p Ft(void)p Fg(\))195
-356 y Fu(Change)19 b(what's)f(displa)o(y)o(ed)i(on)f(the)g(screen)g(to)
-f(re\015ect)i(the)f(curren)o(t)f(con)o(ten)o(ts)h(of)f
-Ft(rl_line_)195 411 y(buffer)p Fu(.)1762 534 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 534 V 21 w(forced)p 390 534
-V 20 w(up)r(date)p 584 534 V 20 w(displa)n(y)k Fg(\()p
-Ft(void)p Fg(\))195 589 y Fu(F)l(orce)c(the)g(line)h(to)e(b)q(e)i(up)q
-(dated)f(and)g(redispla)o(y)o(ed,)i(whether)e(or)g(not)f(Readline)i
-(thinks)g(the)195 644 y(screen)16 b(displa)o(y)g(is)g(correct.)1762
-767 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 767
-V 21 w(on)p 297 767 V 20 w(new)p 416 767 V 21 w(line)k
-Fg(\()p Ft(void)p Fg(\))195 822 y Fu(T)l(ell)16 b(the)f(up)q(date)h
-(functions)g(that)e(w)o(e)g(ha)o(v)o(e)h(mo)o(v)o(ed)f(on)o(to)g(a)h
-(new)g(\(empt)o(y\))f(line,)i(usually)h(after)195 877
-y(ouputting)f(a)e(newline.)1762 1000 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1000 V 21 w(on)p 297 1000 V
-20 w(new)p 416 1000 V 21 w(line)p 525 1000 V 22 w(with)p
-657 1000 V 22 w(prompt)h Fg(\()p Ft(void)p Fg(\))195
-1055 y Fu(T)l(ell)14 b(the)e(up)q(date)h(functions)g(that)f(w)o(e)g(ha)
-o(v)o(e)g(mo)o(v)o(ed)f(on)o(to)h(a)g(new)g(line,)i(with)f
-Fk(rl)p 1556 1055 14 2 v 17 w(prompt)g Fu(already)195
-1109 y(displa)o(y)o(ed.)21 b(This)15 b(could)g(b)q(e)g(used)g(b)o(y)f
-(applications)i(that)e(w)o(an)o(t)f(to)h(output)g(the)g(prompt)g
-(string)195 1164 y(themselv)o(es,)g(but)g(still)h(need)g(Readline)g(to)
-e(kno)o(w)g(the)h(prompt)f(string)h(length)g(for)f(redispla)o(y)l(.)21
-b(It)195 1219 y(should)16 b(b)q(e)g(used)g(after)e(setting)i
-Fk(rl)p 795 1219 V 16 w(already)p 956 1219 V 17 w(prompted)p
-Fu(.)1762 1342 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1342 18 3 v 21 w(reset)p 357 1342 V 20 w(line)p 465
-1342 V 23 w(state)j Fg(\()p Ft(void)p Fg(\))195 1397
-y Fu(Reset)17 b(the)g(displa)o(y)i(state)d(to)h(a)g(clean)h(state)f
-(and)g(redispla)o(y)i(the)e(curren)o(t)g(line)i(starting)e(on)g(a)195
-1452 y(new)e(line.)1762 1575 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 1575 V 21 w(crlf)j Fg(\()p Ft(void)p Fg(\))195
-1630 y Fu(Mo)o(v)o(e)14 b(the)h(cursor)g(to)g(the)g(start)f(of)h(the)g
-(next)g(screen)h(line.)1762 1753 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1753 V 21 w(sho)n(w)p 359 1753
-V 20 w(c)n(har)j Fg(\()p Ft(int)14 b(c)p Fg(\))195 1807
-y Fu(Displa)o(y)j(c)o(haracter)e Fk(c)20 b Fu(on)c Ft(rl_outstream)p
-Fu(.)21 b(If)c(Readline)g(has)f(not)g(b)q(een)i(set)e(to)f(displa)o(y)j
-(meta)195 1862 y(c)o(haracters)12 b(directly)l(,)j(this)e(will)i(con)o
-(v)o(ert)d(meta)h(c)o(haracters)f(to)g(a)h(meta-pre\014xed)g(k)o(ey)g
-(sequence.)195 1917 y(This)j(is)f(in)o(tended)i(for)e(use)g(b)o(y)g
-(applications)i(whic)o(h)f(wish)g(to)f(do)g(their)g(o)o(wn)g(redispla)o
-(y)l(.)1762 2040 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2040 V 21 w(message)g Fg(\()p Ft(const)14 b(char)h(*,)g(...)p
-Fg(\))195 2095 y Fu(The)c(argumen)o(ts)e(are)h(a)g(format)f(string)h
-(as)g(w)o(ould)h(b)q(e)g(supplied)i(to)c Ft(printf)p
-Fu(,)h(p)q(ossibly)i(con)o(taining)195 2150 y(con)o(v)o(ersion)22
-b(sp)q(eci\014cations)i(suc)o(h)f(as)e(`)p Ft(\045d)p
-Fu(',)i(and)f(an)o(y)g(additional)h(argumen)o(ts)e(necessary)i(to)195
-2205 y(satisfy)d(the)h(con)o(v)o(ersion)g(sp)q(eci\014cations.)38
-b(The)21 b(resulting)h(string)e(is)i(displa)o(y)o(ed)g(in)f(the)g
-Fk(ec)o(ho)195 2259 y(area)p Fu(.)e(The)d(ec)o(ho)f(area)g(is)g(also)g
-(used)h(to)f(displa)o(y)h(n)o(umeric)g(argumen)o(ts)f(and)g(searc)o(h)g
-(strings.)1762 2382 y(F)l(unction)-1861 b Fi(int)20 b
-Fh(rl)p 215 2382 V 21 w(clear)p 354 2382 V 21 w(message)h
-Fg(\()p Ft(void)p Fg(\))195 2437 y Fu(Clear)15 b(the)h(message)e(in)i
-(the)g(ec)o(ho)f(area.)1762 2560 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2560 V 21 w(sa)n(v)n(e)p 365
-2560 V 21 w(prompt)h Fg(\()p Ft(void)p Fg(\))195 2615
-y Fu(Sa)o(v)o(e)g(the)h(lo)q(cal)g(Readline)h(prompt)e(displa)o(y)i
-(state)e(in)h(preparation)f(for)g(displa)o(ying)j(a)d(new)195
-2670 y(message)15 b(in)h(the)f(message)g(area)f(with)i
-Ft(rl_message\(\))p Fu(.)p eop
-%%Page: 34 36
-34 35 bop 75 -58 a Fu(34)1299 b(GNU)15 b(Readline)h(Library)1762
-149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149
-18 3 v 21 w(restore)p 436 149 V 20 w(prompt)g Fg(\()p
-Ft(void)p Fg(\))195 204 y Fu(Restore)g(the)i(lo)q(cal)g(Readline)h
-(prompt)e(displa)o(y)h(state)f(sa)o(v)o(ed)g(b)o(y)g(the)g(most)g
-(recen)o(t)g(call)i(to)195 259 y Ft(rl_save_prompt)p
-Fu(.)1762 369 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 369 V 21 w(expand)p 416 369 V 20 w(prompt)h Fg(\()p
-Ft(char)14 b(*prompt)p Fg(\))195 423 y Fu(Expand)22 b(an)o(y)f(sp)q
-(ecial)i(c)o(haracter)e(sequences)h(in)g Fk(prompt)g
-Fu(and)g(set)f(up)h(the)f(lo)q(cal)i(Readline)195 478
-y(prompt)17 b(redispla)o(y)i(v)m(ariables.)30 b(This)18
-b(function)h(is)f(called)i(b)o(y)e Ft(readline\(\))p
-Fu(.)26 b(It)18 b(ma)o(y)f(also)h(b)q(e)195 533 y(called)12
-b(to)e(expand)h(the)g(primary)g(prompt)f(if)h(the)f Ft
-(rl_on_new_line_with_prompt\(\))d Fu(function)195 588
-y(or)12 b Ft(rl_already_prompted)e Fu(v)m(ariable)k(is)g(used.)19
-b(It)13 b(returns)g(the)f(n)o(um)o(b)q(er)i(of)e(visible)j(c)o
-(haracters)195 643 y(on)g(the)g(last)h(line)g(of)f(the)g(\(p)q(ossibly)
-i(m)o(ulti-line\))g(prompt.)1762 752 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 752 V 21 w(set)p 307 752 V
-20 w(prompt)h Fg(\()p Ft(const)14 b(char)h(*prompt)p
-Fg(\))195 807 y Fu(Mak)o(e)e(Readline)i(use)e Fk(prompt)h
-Fu(for)f(subsequen)o(t)h(redispla)o(y)l(.)21 b(This)14
-b(calls)g Ft(rl_expand_prompt\(\))195 862 y Fu(to)h(expand)g(the)h
-(prompt)e(and)i(sets)f Ft(rl_prompt)f Fu(to)g(the)h(result.)75
-970 y Fj(2.4.7)30 b(Mo)r(difying)20 b(T)-5 b(ext)1762
-1108 y Fu(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1108 V 21 w(insert)p 378 1108 V 21 w(text)k Fg(\()p Ft(const)14
-b(char)g(*text)p Fg(\))195 1163 y Fu(Insert)i Fk(text)g
-Fu(in)o(to)g(the)g(line)h(at)f(the)g(curren)o(t)f(cursor)h(p)q
-(osition.)22 b(Returns)16 b(the)g(n)o(um)o(b)q(er)g(of)f(c)o(har-)195
-1218 y(acters)g(inserted.)1762 1328 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1328 V 21 w(delete)p 383 1328
-V 22 w(text)k Fg(\()p Ft(int)14 b(start,)h(int)f(end)p
-Fg(\))195 1382 y Fu(Delete)19 b(the)g(text)g(b)q(et)o(w)o(een)g
-Fk(start)g Fu(and)g Fk(end)i Fu(in)f(the)f(curren)o(t)f(line.)33
-b(Returns)18 b(the)h(n)o(um)o(b)q(er)g(of)195 1437 y(c)o(haracters)14
-b(deleted.)1762 1547 y(F)l(unction)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 1547 V 21 w(cop)n(y)p 421 1547 V 21
-w(text)24 b Fg(\()p Ft(int)14 b(start,)h(int)g(end)p
-Fg(\))195 1602 y Fu(Return)g(a)g(cop)o(y)g(of)g(the)g(text)f(b)q(et)o
-(w)o(een)i Fk(start)f Fu(and)g Fk(end)j Fu(in)e(the)f(curren)o(t)g
-(line.)1762 1711 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1711 V 21 w(kill)p 311 1711 V 23 w(text)k Fg(\()p
-Ft(int)14 b(start,)h(int)g(end)p Fg(\))195 1766 y Fu(Cop)o(y)i(the)g
-(text)f(b)q(et)o(w)o(een)i Fk(start)f Fu(and)g Fk(end)i
-Fu(in)f(the)f(curren)o(t)g(line)i(to)e(the)g(kill)i(ring,)e(app)q
-(ending)195 1821 y(or)f(prep)q(ending)k(to)c(the)h(last)g(kill)i(if)e
-(the)g(last)g(command)g(w)o(as)f(a)h(kill)i(command.)25
-b(The)17 b(text)f(is)195 1876 y(deleted.)26 b(If)17 b
-Fk(start)g Fu(is)g(less)g(than)g Fk(end)p Fu(,)g(the)g(text)g(is)g(app)
-q(ended,)h(otherwise)f(prep)q(ended.)27 b(If)17 b(the)195
-1930 y(last)e(command)g(w)o(as)g(not)f(a)h(kill,)i(a)e(new)g(kill)i
-(ring)f(slot)f(is)h(used.)1762 2040 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2040 V 21 w(push)p 355 2040
-V 19 w(macro)p 529 2040 V 19 w(input)k Fg(\()p Ft(char)14
-b(*macro)p Fg(\))195 2095 y Fu(Cause)g Fk(macro)i Fu(to)d(b)q(e)i
-(inserted)g(in)o(to)f(the)g(line,)i(as)e(if)g(it)h(had)f(b)q(een)h(in)o
-(v)o(ok)o(ed)g(b)o(y)f(a)g(k)o(ey)g(b)q(ound)h(to)195
-2150 y(a)g(macro.)k(Not)c(esp)q(ecially)i(useful;)f(use)g
-Ft(rl_insert_text\(\))d Fu(instead.)75 2257 y Fj(2.4.8)30
-b(Character)21 b(Input)1762 2396 y Fu(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2396 V 21 w(read)p 346 2396
-V 20 w(k)n(ey)k Fg(\()p Ft(void)p Fg(\))195 2451 y Fu(Return)14
-b(the)h(next)g(c)o(haracter)f(a)o(v)m(ailable)i(from)e(Readline's)i
-(curren)o(t)f(input)g(stream.)k(This)d(han-)195 2506
-y(dles)f(input)g(inserted)f(in)o(to)g(the)g(input)h(stream)e(via)h
-Fk(rl)p 1117 2506 14 2 v 17 w(p)q(ending)p 1290 2506
-V 18 w(input)i Fu(\(see)e(Section)h(2.3)e([Read-)195
-2560 y(line)21 b(V)l(ariables],)g(page)f(24\))f(and)h
-Ft(rl_stuff_char\(\))p Fu(,)e(macros,)h(and)h(c)o(haracters)f(read)h
-(from)195 2615 y(the)d(k)o(eyb)q(oard.)25 b(While)19
-b(w)o(aiting)e(for)f(input,)j(this)e(function)h(will)h(call)f(an)o(y)e
-(function)i(assigned)195 2670 y(to)d(the)g Ft(rl_event_hook)e
-Fu(v)m(ariable.)p eop
-%%Page: 35 37
-35 36 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(35)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(getc)j Fg(\()p Ft(FILE)14
-b(*stream)p Fg(\))195 204 y Fu(Return)c(the)h(next)g(c)o(haracter)f(a)o
-(v)m(ailable)i(from)e Fk(stream)p Fu(,)g(whic)o(h)i(is)f(assumed)f(to)g
-(b)q(e)i(the)e(k)o(eyb)q(oard.)1762 342 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 342 V 21 w(stu\013)p 346 342
-V 20 w(c)n(har)j Fg(\()p Ft(int)15 b(c)p Fg(\))195 397
-y Fu(Insert)i Fk(c)i Fu(in)o(to)d(the)h(Readline)h(input)f(stream.)23
-b(It)16 b(will)i(b)q(e)f Ft(")p Fu(read)p Ft(")g Fu(b)q(efore)f
-(Readline)i(attempts)195 452 y(to)13 b(read)g(c)o(haracters)g(from)f
-(the)i(terminal)g(with)g Ft(rl_read_key\(\))p Fu(.)j(Up)d(to)f(512)f(c)
-o(haracters)h(ma)o(y)195 507 y(b)q(e)j(pushed)g(bac)o(k.)k
-Ft(rl_stuff_char)14 b Fu(returns)h(1)g(if)h(the)f(c)o(haracter)g(w)o
-(as)f(successfully)j(inserted;)195 562 y(0)e(otherwise.)1762
-700 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 700
-V 21 w(execute)p 423 700 V 22 w(next)j Fg(\()p Ft(int)15
-b(c)p Fg(\))195 754 y Fu(Mak)o(e)i Fk(c)k Fu(b)q(e)d(the)g(next)g
-(command)g(to)f(b)q(e)i(executed)f(when)h Ft(rl_read_key\(\))d
-Fu(is)i(called.)29 b(This)195 809 y(sets)15 b Fk(rl)p
-317 809 14 2 v 17 w(p)q(ending)p 490 809 V 18 w(input)p
-Fu(.)1762 947 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 947 18 3 v 21 w(clear)p 354 947 V 21 w(p)r(ending)p
-575 947 V 21 w(input)j Fg(\()p Ft(void)p Fg(\))195 1002
-y Fu(Unset)f Fk(rl)p 365 1002 14 2 v 16 w(p)q(ending)p
-537 1002 V 19 w(input)p Fu(,)h(e\013ectiv)o(ely)g(negating)e(the)h
-(e\013ect)f(of)g(an)o(y)h(previous)g(call)h(to)d Ft(rl_)195
-1057 y(execute_next\(\))p Fu(.)29 b(This)19 b(w)o(orks)f(only)h(if)h
-(the)e(p)q(ending)j(input)f(has)f(not)f(already)h(b)q(een)h(read)195
-1112 y(with)c Ft(rl_read_key\(\))p Fu(.)1762 1250 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1250 18 3 v 21 w(set)p 307
-1250 V 20 w(k)n(eyb)r(oard)p 558 1250 V 21 w(input)p
-712 1250 V 21 w(timeout)i Fg(\()p Ft(int)15 b(u)p Fg(\))195
-1305 y Fu(While)21 b(w)o(aiting)g(for)e(k)o(eyb)q(oard)h(input)h(in)g
-Ft(rl_read_key\(\))p Fu(,)e(Readline)i(will)h(w)o(ait)e(for)f
-Fk(u)h Fu(mi-)195 1360 y(croseconds)h(for)e(input)j(b)q(efore)f
-(calling)h(an)o(y)e(function)h(assigned)g(to)f Ft(rl_event_hook)p
-Fu(.)34 b(The)195 1414 y(default)16 b(w)o(aiting)f(p)q(erio)q(d)i(is)e
-(one-ten)o(th)h(of)e(a)h(second.)21 b(Returns)14 b(the)i(old)f(timeout)
-h(v)m(alue.)75 1540 y Fj(2.4.9)30 b(T)-5 b(erminal)20
-b(Managemen)n(t)1762 1708 y Fu(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1708 V 21 w(prep)p 376 1708 V 20 w(terminal)j
-Fg(\()p Ft(int)14 b(meta_flag)p Fg(\))195 1762 y Fu(Mo)q(dify)22
-b(the)f(terminal)h(settings)f(for)g(Readline's)h(use,)h(so)d
-Ft(readline\(\))g Fu(can)i(read)f(a)g(single)195 1817
-y(c)o(haracter)15 b(at)g(a)g(time)i(from)d(the)i(k)o(eyb)q(oard.)22
-b(The)16 b Fk(meta)p 1192 1817 14 2 v 15 w(\015ag)k Fu(argumen)o(t)15
-b(should)h(b)q(e)h(non-zero)195 1872 y(if)f(Readline)g(should)g(read)f
-(eigh)o(t-bit)i(input.)1762 2010 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2010 18 3 v 21 w(deprep)p
-434 2010 V 20 w(terminal)j Fg(\()p Ft(void)p Fg(\))195
-2065 y Fu(Undo)16 b(the)g(e\013ects)f(of)h Ft(rl_prep_terminal\(\))p
-Fu(,)d(lea)o(ving)k(the)e(terminal)i(in)g(the)e(state)g(in)i(whic)o(h)
-195 2120 y(it)e(w)o(as)g(b)q(efore)g(the)h(most)e(recen)o(t)h(call)i
-(to)d Ft(rl_prep_terminal\(\))p Fu(.)1762 2258 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2258 V 21 w(tt)n(y)p 334 2258
-V 22 w(set)p 427 2258 V 20 w(default)p 620 2258 V 21
-w(bindings)k Fg(\()p Ft(Keymap)14 b(kmap)p Fg(\))195
-2313 y Fu(Read)k(the)h(op)q(erating)f(system's)g(terminal)h(editing)h
-(c)o(haracters)e(\(as)f(w)o(ould)i(b)q(e)g(displa)o(y)o(ed)h(b)o(y)195
-2367 y Ft(stty)p Fu(\))14 b(to)h(their)h(Readline)g(equiv)m(alen)o(ts.)
-22 b(The)15 b(bindings)i(are)e(p)q(erformed)g(in)h Fk(kmap)p
-Fu(.)1762 2506 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2506 V 21 w(reset)p 357 2506 V 20 w(terminal)j Fg(\()p
-Ft(const)15 b(char)f(*terminal_name)p Fg(\))195 2560
-y Fu(Reinitialize)h(Readline's)e(idea)g(of)f(the)g(terminal)h(settings)
-g(using)g Fk(terminal)p 1491 2560 14 2 v 17 w(name)h
-Fu(as)e(the)h(termi-)195 2615 y(nal)k(t)o(yp)q(e)f(\(e.g.,)f
-Ft(vt100)p Fu(\).)21 b(If)c Fk(terminal)p 878 2615 V
-17 w(name)i Fu(is)d Ft(NULL)p Fu(,)g(the)g(v)m(alue)h(of)f(the)g
-Ft(TERM)g Fu(en)o(vironmen)o(t)195 2670 y(v)m(ariable)h(is)e(used.)p
-eop
-%%Page: 36 38
-36 37 bop 75 -58 a Fu(36)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.10)29 b(Utilit)n(y)22 b(F)-5 b(unctions)1762
-287 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241
-287 18 3 v 21 w(replace)p 438 287 V 22 w(line)k Fg(\()p
-Ft(const)14 b(char)h(*text,)f(int)h(clear_undo)p Fg(\))195
-342 y Fu(Replace)20 b(the)g(con)o(ten)o(ts)f(of)g Ft(rl_line_buffer)f
-Fu(with)i Fk(text)p Fu(.)33 b(The)20 b(p)q(oin)o(t)g(and)g(mark)f(are)h
-(pre-)195 397 y(serv)o(ed,)13 b(if)h(p)q(ossible.)21
-b(If)13 b Fk(clear)p 712 397 14 2 v 17 w(undo)j Fu(is)d(non-zero,)h
-(the)f(undo)g(list)h(asso)q(ciated)g(with)f(the)g(curren)o(t)195
-452 y(line)k(is)f(cleared.)1762 561 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 561 18 3 v 21 w(extend)p 404
-561 V 21 w(line)p 513 561 V 22 w(bu\013er)j Fg(\()p Ft(int)15
-b(len)p Fg(\))195 616 y Fu(Ensure)g(that)g Ft(rl_line_buffer)e
-Fu(has)i(enough)g(space)h(to)e(hold)i Fk(len)g Fu(c)o(haracters,)e(p)q
-(ossibly)i(real-)195 670 y(lo)q(cating)g(it)f(if)h(necessary)l(.)1762
-779 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 779
-V 21 w(initiali)q(z)q(e)26 b Fg(\()p Ft(void)p Fg(\))195
-834 y Fu(Initialize)21 b(or)d(re-initialize)k(Readline's)d(in)o(ternal)
-h(state.)28 b(It's)18 b(not)g(strictly)h(necessary)g(to)f(call)195
-889 y(this;)d Ft(readline\(\))f Fu(calls)i(it)g(b)q(efore)f(reading)h
-(an)o(y)f(input.)1762 998 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 998 V 21 w(ding)j Fg(\()p Ft(void)p Fg(\))195
-1053 y Fu(Ring)15 b(the)g(terminal)h(b)q(ell,)h(ob)q(eying)f(the)g
-(setting)f(of)g Ft(bell-style)p Fu(.)1762 1162 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1162 V 21 w(alphab)r(etic)k
-Fg(\()p Ft(int)14 b(c)p Fg(\))195 1217 y Fu(Return)h(1)g(if)g
-Fk(c)j Fu(is)e(an)f(alphab)q(etic)i(c)o(haracter.)1762
-1325 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1325
-V 21 w(displa)n(y)p 435 1325 V 22 w(matc)n(h)p 611 1325
-V 20 w(list)25 b Fg(\()p Ft(char)14 b(**matches,)g(int)g(len,)h(int)g
-(max)p Fg(\))195 1380 y Fu(A)i(con)o(v)o(enience)i(function)f(for)f
-(displa)o(ying)i(a)e(list)h(of)e(strings)h(in)i(columnar)e(format)f(on)
-h(Read-)195 1435 y(line's)h(output)f(stream.)23 b Ft(matches)16
-b Fu(is)h(the)g(list)h(of)e(strings,)h(in)g(argv)f(format,)g(suc)o(h)h
-(as)f(a)h(list)g(of)195 1490 y(completion)c(matc)o(hes.)19
-b Ft(len)11 b Fu(is)i(the)f(n)o(um)o(b)q(er)h(of)e(strings)h(in)h
-Ft(matches)p Fu(,)f(and)g Ft(max)g Fu(is)g(the)h(length)f(of)195
-1545 y(the)h(longest)g(string)g(in)h Ft(matches)p Fu(.)19
-b(This)13 b(function)h(uses)f(the)h(setting)f(of)f Ft
-(print-completions-)195 1599 y(horizontally)k Fu(to)i(select)h(ho)o(w)e
-(the)i(matc)o(hes)e(are)h(displa)o(y)o(ed)h(\(see)g(Section)g(1.3.1)d
-([Readline)195 1654 y(Init)g(File)g(Syn)o(tax],)e(page)h(4\).)137
-1742 y(The)i(follo)o(wing)f(are)g(implemen)o(ted)i(as)e(macros,)f
-(de\014ned)i(in)g Ft(chardefs.h)p Fu(.)k(Applications)d(should)75
-1796 y(refrain)d(from)g(using)h(them.)1762 1905 y(F)l(unction)-1861
-b Fi(int)p 176 1905 V 40 w Fh(rl)p 235 1905 V 21 w(upp)r(ercase)p
-506 1905 V 20 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195
-1960 y Fu(Return)h(1)g(if)g Fk(c)j Fu(is)e(an)f(upp)q(ercase)i(alphab)q
-(etic)f(c)o(haracter.)1762 2069 y(F)l(unction)-1861 b
-Fi(int)p 176 2069 V 40 w Fh(rl)p 235 2069 V 21 w(lo)n(w)n(ercase)p
-489 2069 V 23 w(p)22 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-2124 y Fu(Return)g(1)g(if)g Fk(c)j Fu(is)e(a)f(lo)o(w)o(ercase)g
-(alphab)q(etic)i(c)o(haracter.)1762 2233 y(F)l(unction)-1861
-b Fi(int)p 176 2233 V 40 w Fh(rl)p 235 2233 V 21 w(digit)p
-369 2233 V 22 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195
-2288 y Fu(Return)h(1)g(if)g Fk(c)j Fu(is)e(a)f(n)o(umeric)h(c)o
-(haracter.)1762 2397 y(F)l(unction)-1861 b Fi(int)p 176
-2397 V 40 w Fh(rl)p 235 2397 V 21 w(to)p 307 2397 V 21
-w(upp)r(er)21 b Fg(\()p Ft(int)15 b(c)p Fg(\))195 2451
-y Fu(If)d Fk(c)j Fu(is)d(a)g(lo)o(w)o(ercase)f(alphab)q(etic)j(c)o
-(haracter,)d(return)h(the)g(corresp)q(onding)h(upp)q(ercase)g(c)o
-(haracter.)1762 2560 y(F)l(unction)-1861 b Fi(int)p 176
-2560 V 40 w Fh(rl)p 235 2560 V 21 w(to)p 307 2560 V 21
-w(lo)n(w)n(er)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-2615 y Fu(If)g Fk(c)i Fu(is)e(an)f(upp)q(ercase)i(alphab)q(etic)g(c)o
-(haracter,)e(return)g(the)h(corresp)q(onding)g(lo)o(w)o(ercase)f(c)o
-(harac-)195 2670 y(ter.)p eop
-%%Page: 37 39
-37 38 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(37)1762 149 y(F)l(unction)-1861 b Fi(int)p
-176 149 18 3 v 40 w Fh(rl)p 235 149 V 21 w(digit)p 369
-149 V 22 w(v)m(alue)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-204 y Fu(If)g Fk(c)k Fu(is)c(a)g(n)o(um)o(b)q(er,)g(return)g(the)h(v)m
-(alue)g(it)g(represen)o(ts.)75 325 y Fj(2.4.11)29 b(Miscellaneous)22
-b(F)-5 b(unctions)1762 484 y Fu(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 484 V 21 w(macro)p 391 484 V 19 w(bind)j
-Fg(\()p Ft(const)14 b(char)g(*keyseq,)h(const)f(char)h(*macro,)283
-539 y(Keymap)f(map)p Fg(\))195 593 y Fu(Bind)f(the)f(k)o(ey)f(sequence)
-i Fk(k)o(eyseq)g Fu(to)e(in)o(v)o(ok)o(e)g(the)h(macro)f
-Fk(macro)p Fu(.)18 b(The)12 b(binding)h(is)f(p)q(erformed)g(in)195
-648 y Fk(map)p Fu(.)19 b(When)14 b Fk(k)o(eyseq)h Fu(is)f(in)o(v)o(ok)o
-(ed,)g(the)g Fk(macro)i Fu(will)f(b)q(e)f(inserted)h(in)o(to)f(the)g
-(line.)21 b(This)14 b(function)195 703 y(is)i(deprecated;)f(use)h
-Ft(rl_generic_bind\(\))d Fu(instead.)1762 833 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 833 V 21 w(macro)p 417 833
-V 19 w(dump)r(er)g Fg(\()p Ft(int)15 b(readable)p Fg(\))195
-888 y Fu(Prin)o(t)f(the)f(k)o(ey)h(sequences)g(b)q(ound)h(to)e(macros)g
-(and)g(their)h(v)m(alues,)h(using)f(the)g(curren)o(t)g(k)o(eymap,)195
-943 y(to)h Ft(rl_outstream)p Fu(.)k(If)d Fk(readable)j
-Fu(is)d(non-zero,)g(the)g(list)g(is)g(formatted)f(in)h(suc)o(h)g(a)f(w)
-o(a)o(y)g(that)g(it)195 997 y(can)g(b)q(e)h(made)f(part)g(of)g(an)g
-Ft(inputrc)f Fu(\014le)i(and)g(re-read.)1762 1127 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1127 V 21 w(v)m(ariable)p 431
-1127 V 22 w(bind)j Fg(\()p Ft(const)14 b(char)g(*variable,)g(const)h
-(char)f(*value)p Fg(\))195 1182 y Fu(Mak)o(e)22 b(the)g(Readline)i(v)m
-(ariable)g Fk(v)m(ariable)j Fu(ha)o(v)o(e)22 b Fk(v)m(alue)p
-Fu(.)43 b(This)23 b(b)q(eha)o(v)o(es)g(as)f(if)h(the)f(readline)195
-1237 y(command)12 b(`)p Ft(set)j Fk(v)m(ariable)k(v)m(alue)s
-Fu(')12 b(had)h(b)q(een)g(executed)h(in)f(an)f Ft(inputrc)g
-Fu(\014le)h(\(see)f(Section)i(1.3.1)195 1292 y([Readline)i(Init)g(File)
-h(Syn)o(tax],)d(page)h(4\).)1762 1422 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 1422 V 21 w(v)m(ariable)p
-457 1422 V 22 w(dump)r(er)g Fg(\()p Ft(int)14 b(readable)p
-Fg(\))195 1476 y Fu(Prin)o(t)g(the)h(readline)h(v)m(ariable)f(names)g
-(and)f(their)h(curren)o(t)f(v)m(alues)i(to)d Ft(rl_outstream)p
-Fu(.)18 b(If)d Fk(read-)195 1531 y(able)20 b Fu(is)e(non-zero,)f(the)g
-(list)h(is)g(formatted)e(in)h(suc)o(h)h(a)e(w)o(a)o(y)g(that)h(it)g
-(can)g(b)q(e)h(made)f(part)f(of)h(an)195 1586 y Ft(inputrc)d
-Fu(\014le)i(and)g(re-read.)1762 1716 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1716 V 21 w(set)p 307 1716
-V 20 w(paren)p 469 1716 V 20 w(blink)p 613 1716 V 23
-w(timeout)i Fg(\()p Ft(int)15 b(u)p Fg(\))195 1771 y
-Fu(Set)e(the)f(time)h(in)o(terv)m(al)h(\(in)f(microseconds\))g(that)f
-(Readline)i(w)o(aits)e(when)h(sho)o(wing)f(a)h(balancing)195
-1826 y(c)o(haracter)h(when)i Ft(blink-matching-paren)d
-Fu(has)i(b)q(een)h(enabled.)1762 1956 y(F)l(unction)-1861
-b Fi(char)20 b(*)f Fh(rl)p 286 1956 V 21 w(get)p 384
-1956 V 21 w(termcap)j Fg(\()p Ft(const)14 b(char)g(*cap)p
-Fg(\))195 2010 y Fu(Retriev)o(e)f(the)h(string)f(v)m(alue)i(of)e(the)h
-(termcap)f(capabilit)o(y)i Fk(cap)p Fu(.)k(Readline)c(fetc)o(hes)f(the)
-f(termcap)195 2065 y(en)o(try)j(for)h(the)f(curren)o(t)h(terminal)h
-(name)e(and)h(uses)g(those)g(capabilities)i(to)d(mo)o(v)o(e)g(around)h
-(the)195 2120 y(screen)11 b(line)h(and)f(p)q(erform)f(other)g
-(terminal-sp)q(eci\014c)k(op)q(erations,)d(lik)o(e)h(erasing)e(a)h
-(line.)20 b(Readline)195 2175 y(do)q(es)e(not)f(use)h(all)g(of)f(a)g
-(terminal's)h(capabilities,)i(and)e(this)g(function)g(will)h(return)f
-(v)m(alues)h(for)195 2230 y(only)d(those)f(capabilities)i(Readline)g
-(uses.)75 2350 y Fj(2.4.12)29 b(Alternate)21 b(In)n(terface)137
-2451 y Fu(An)i(alternate)f(in)o(terface)h(is)g(a)o(v)m(ailable)h(to)d
-(plain)j Ft(readline\(\))p Fu(.)40 b(Some)22 b(applications)i(need)g
-(to)75 2506 y(in)o(terlea)o(v)o(e)15 b(k)o(eyb)q(oard)f(I/O)h(with)g
-(\014le,)h(device,)f(or)f(windo)o(w)h(system)f(I/O,)h(t)o(ypically)h(b)
-o(y)e(using)h(a)g(main)75 2560 y(lo)q(op)f(to)g Ft(select\(\))e
-Fu(on)i(v)m(arious)g(\014le)h(descriptors.)20 b(T)l(o)14
-b(accomo)q(date)f(this)h(need,)h(readline)g(can)f(also)g(b)q(e)75
-2615 y(in)o(v)o(ok)o(ed)i(as)f(a)g(`callbac)o(k')h(function)h(from)d
-(an)i(ev)o(en)o(t)f(lo)q(op.)22 b(There)16 b(are)f(functions)h(a)o(v)m
-(ailable)i(to)c(mak)o(e)75 2670 y(this)i(easy)l(.)p eop
-%%Page: 38 40
-38 39 bop 75 -58 a Fu(38)1299 b(GNU)15 b(Readline)h(Library)1762
-149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149
-18 3 v 21 w(callbac)n(k)p 458 149 V 23 w(handler)p 670
-149 V 21 w(install)25 b Fg(\()p Ft(const)14 b(char)h(*prompt,)283
-204 y(rl_vcpfunc_t)e(*lhandler)p Fg(\))195 259 y Fu(Set)f(up)h(the)g
-(terminal)g(for)f(readline)i(I/O)f(and)f(displa)o(y)i(the)e(initial)j
-(expanded)e(v)m(alue)h(of)e Fk(prompt)p Fu(.)195 314
-y(Sa)o(v)o(e)j(the)h(v)m(alue)h(of)f Fk(lhandler)21 b
-Fu(to)15 b(use)h(as)f(a)h(function)h(to)e(call)i(when)f(a)g(complete)g
-(line)i(of)d(input)195 369 y(has)g(b)q(een)h(en)o(tered.)21
-b(The)15 b(function)h(tak)o(es)e(the)i(text)e(of)h(the)g(line)i(as)e
-(an)g(argumen)o(t.)1762 480 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 480 V 21 w(callbac)n(k)p 458 480 V 23 w(read)p
-591 480 V 20 w(c)n(har)j Fg(\()p Ft(void)p Fg(\))195
-535 y Fu(Whenev)o(er)17 b(an)g(application)h(determines)g(that)e(k)o
-(eyb)q(oard)h(input)h(is)f(a)o(v)m(ailable,)i(it)e(should)h(call)195
-590 y Ft(rl_callback_read_char\(\))p Fu(,)8 b(whic)o(h)k(will)g(read)f
-(the)g(next)g(c)o(haracter)f(from)g(the)h(curren)o(t)g(input)195
-645 y(source.)38 b(If)21 b(that)g(c)o(haracter)f(completes)i(the)f
-(line,)j Ft(rl_callback_read_char)18 b Fu(will)23 b(in)o(v)o(ok)o(e)195
-699 y(the)18 b Fk(lhandler)k Fu(function)d(sa)o(v)o(ed)e(b)o(y)h
-Ft(rl_callback_handler_insta)o(ll)d Fu(to)i(pro)q(cess)h(the)g(line.)
-195 754 y(Before)13 b(calling)i(the)f Fk(lhandler)k Fu(function,)c(the)
-g(terminal)g(settings)f(are)g(reset)g(to)g(the)g(v)m(alues)i(they)195
-809 y(had)g(b)q(efore)g(calling)i Ft(rl_callback_handler_insta)o(ll)p
-Fu(.)g(If)e(the)g Fk(lhandler)20 b Fu(function)15 b(returns,)195
-864 y(the)d(terminal)i(settings)e(are)g(mo)q(di\014ed)i(for)d
-(Readline's)i(use)g(again.)19 b Ft(EOF)12 b Fu(is)h(indicated)h(b)o(y)e
-(calling)195 919 y Fk(lhandler)20 b Fu(with)c(a)f Ft(NULL)f
-Fu(line.)1762 1030 y(F)l(unction)-1861 b Fi(void)20 b
-Fh(rl)p 241 1030 V 21 w(callbac)n(k)p 458 1030 V 23 w(handler)p
-670 1030 V 21 w(remo)n(v)n(e)i Fg(\()p Ft(void)p Fg(\))195
-1085 y Fu(Restore)c(the)g(terminal)i(to)d(its)i(initial)i(state)d(and)g
-(remo)o(v)o(e)g(the)h(line)h(handler.)31 b(This)19 b(ma)o(y)f(b)q(e)195
-1140 y(called)i(from)d(within)j(a)d(callbac)o(k)j(as)d(w)o(ell)i(as)f
-(indep)q(enden)o(tly)m(.)31 b(If)19 b(the)f Fk(lhandler)23
-b Fu(installed)d(b)o(y)195 1195 y Ft(rl_callback_handler_instal)o(l)d
-Fu(do)q(es)i(not)g(exit)h(the)g(program,)e(either)i(this)g(function)g
-(or)195 1249 y(the)c(function)g(referred)g(to)f(b)o(y)h(the)g(v)m(alue)
-h(of)e Ft(rl_deprep_term_function)d Fu(should)17 b(b)q(e)f(called)195
-1304 y(b)q(efore)f(the)h(program)e(exits)h(to)g(reset)g(the)g(terminal)
-h(settings.)75 1413 y Fj(2.4.13)29 b(A)21 b(Readline)g(Example)137
-1508 y Fu(Here)f(is)g(a)f(function)i(whic)o(h)f(c)o(hanges)f(lo)o(w)o
-(ercase)h(c)o(haracters)e(to)h(their)h(upp)q(ercase)h(equiv)m(alen)o
-(ts,)75 1563 y(and)e(upp)q(ercase)i(c)o(haracters)d(to)h(lo)o(w)o
-(ercase.)31 b(If)20 b(this)f(function)h(w)o(as)f(b)q(ound)h(to)f(`)p
-Ft(M-c)p Fu(',)f(then)i(t)o(yping)75 1618 y(`)p Ft(M-c)p
-Fu(')12 b(w)o(ould)h(c)o(hange)h(the)f(case)g(of)g(the)g(c)o(haracter)g
-(under)g(p)q(oin)o(t.)20 b(T)o(yping)14 b(`)p Ft(M-1)g(0)h(M-c)p
-Fu(')d(w)o(ould)i(c)o(hange)75 1673 y(the)h(case)g(of)g(the)h(follo)o
-(wing)f(10)g(c)o(haracters,)f(lea)o(ving)i(the)f(cursor)g(on)g(the)h
-(last)f(c)o(haracter)f(c)o(hanged.)195 1736 y Ft(/*)24
-b(Invert)f(the)g(case)g(of)h(the)f(COUNT)h(following)e(characters.)h
-(*/)195 1788 y(int)195 1840 y(invert_case_line)f(\(count,)h(key\))314
-1892 y(int)h(count,)f(key;)195 1944 y({)243 1995 y(register)f(int)i
-(start,)f(end,)g(i;)243 2099 y(start)g(=)h(rl_point;)243
-2203 y(if)f(\(rl_point)g(>=)h(rl_end\))290 2255 y(return)f(\(0\);)243
-2359 y(if)g(\(count)g(<)h(0\))290 2411 y({)338 2462 y(direction)f(=)h
-(-1;)338 2514 y(count)f(=)h(-count;)290 2566 y(})243
-2618 y(else)290 2670 y(direction)f(=)h(1;)p eop
-%%Page: 39 41
-39 40 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(39)243 201 y Ft(/*)23 b(Find)h(the)f(end)h(of)f(the)h
-(range)f(to)g(modify.)g(*/)243 253 y(end)g(=)h(start)f(+)h(\(count)f(*)
-h(direction\);)243 357 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g
-(*/)243 409 y(if)g(\(end)h(>)f(rl_end\))290 461 y(end)h(=)g(rl_end;)243
-513 y(else)f(if)h(\(end)f(<)h(0\))290 565 y(end)g(=)g(0;)243
-668 y(if)f(\(start)g(==)h(end\))290 720 y(return)f(\(0\);)243
-824 y(if)g(\(start)g(>)h(end\))290 876 y({)338 928 y(int)g(temp)f(=)h
-(start;)338 980 y(start)f(=)h(end;)338 1032 y(end)g(=)f(temp;)290
-1083 y(})243 1187 y(/*)g(Tell)h(readline)e(that)i(we)f(are)h(modifying)
-e(the)i(line,)314 1239 y(so)g(it)f(will)h(save)f(the)h(undo)f
-(information.)f(*/)243 1291 y(rl_modifying)g(\(start,)h(end\);)243
-1395 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))290
-1447 y({)338 1499 y(if)h(\(_rl_uppercase_p)d(\(rl_line_buffer[i]\)\))
-386 1550 y(rl_line_buffer[i])g(=)j(_rl_to_lower)e
-(\(rl_line_buffer[i]\);)338 1602 y(else)h(if)h(\(_rl_lowercase_p)e
-(\(rl_line_buffer[i]\)\))386 1654 y(rl_line_buffer[i])f(=)j
-(_rl_to_upper)e(\(rl_line_buffer[i]\);)290 1706 y(})243
-1758 y(/*)h(Move)h(point)f(to)g(on)h(top)f(of)h(the)f(last)h(character)
-e(changed.)h(*/)243 1810 y(rl_point)f(=)i(\(direction)f(==)g(1\))h(?)g
-(end)f(-)h(1)g(:)f(start;)243 1862 y(return)g(\(0\);)195
-1914 y(})75 2057 y Fs(2.5)33 b(Readline)23 b(Signal)h(Handling)137
-2159 y Fu(Signals)e(are)f(async)o(hronous)f(ev)o(en)o(ts)h(sen)o(t)f
-(to)h(a)f(pro)q(cess)h(b)o(y)g(the)g(Unix)h(k)o(ernel,)g(sometimes)f
-(on)75 2213 y(b)q(ehalf)g(of)e(another)h(pro)q(cess.)34
-b(They)20 b(are)g(in)o(tended)h(to)e(indicate)j(exceptional)f(ev)o(en)o
-(ts,)f(lik)o(e)h(a)f(user)75 2268 y(pressing)c(the)f(in)o(terrupt)g(k)o
-(ey)g(on)g(his)h(terminal,)f(or)g(a)f(net)o(w)o(ork)g(connection)i(b)q
-(eing)g(brok)o(en.)k(There)15 b(is)75 2323 y(a)e(class)g(of)g(signals)h
-(that)f(can)g(b)q(e)h(sen)o(t)f(to)f(the)i(pro)q(cess)f(curren)o(tly)h
-(reading)f(input)i(from)d(the)h(k)o(eyb)q(oard.)75 2378
-y(Since)i(Readline)f(c)o(hanges)g(the)f(terminal)h(attributes)f(when)h
-(it)g(is)g(called,)h(it)e(needs)h(to)f(p)q(erform)g(sp)q(ecial)75
-2433 y(pro)q(cessing)i(when)f(suc)o(h)g(a)g(signal)g(is)g(receiv)o(ed)h
-(in)g(order)f(to)f(restore)g(the)h(terminal)g(to)f(a)h(sane)g(state,)e
-(or)75 2487 y(pro)o(vide)k(application)h(writers)e(with)g(functions)h
-(to)f(do)g(so)g(man)o(ually)l(.)137 2560 y(Readline)22
-b(con)o(tains)e(an)g(in)o(ternal)h(signal)g(handler)g(that)f(is)h
-(installed)h(for)d(a)h(n)o(um)o(b)q(er)g(of)g(signals)75
-2615 y(\()p Ft(SIGINT)p Fu(,)h Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p
-Fu(,)g Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)g Ft(SIGTTIN)p
-Fu(,)h(and)f Ft(SIGTTOU)p Fu(\).)36 b(When)21 b(one)g(of)75
-2670 y(these)16 b(signals)h(is)f(receiv)o(ed,)h(the)f(signal)h(handler)
-f(will)i(reset)e(the)g(terminal)g(attributes)g(to)f(those)h(that)p
-eop
-%%Page: 40 42
-40 41 bop 75 -58 a Fu(40)1299 b(GNU)15 b(Readline)h(Library)75
-149 y(w)o(ere)d(in)i(e\013ect)e(b)q(efore)h Ft(readline\(\))e
-Fu(w)o(as)h(called,)i(reset)f(the)f(signal)i(handling)g(to)e(what)g(it)
-h(w)o(as)f(b)q(efore)75 204 y Ft(readline\(\))21 b Fu(w)o(as)h(called,)
-j(and)e(resend)g(the)g(signal)g(to)f(the)h(calling)h(application.)44
-b(If)23 b(and)f(when)75 259 y(the)17 b(calling)i(application's)f
-(signal)g(handler)g(returns,)f(Readline)h(will)h(reinitialize)h(the)d
-(terminal)h(and)75 314 y(con)o(tin)o(ue)d(to)e(accept)i(input.)20
-b(When)15 b(a)e Ft(SIGINT)h Fu(is)g(receiv)o(ed,)h(the)g(Readline)g
-(signal)g(handler)g(p)q(erforms)75 369 y(some)k(additional)i(w)o(ork,)e
-(whic)o(h)h(will)h(cause)f(an)o(y)f(partially-en)o(tered)i(line)g(to)d
-(b)q(e)i(ab)q(orted)g(\(see)f(the)75 423 y(description)e(of)d
-Ft(rl_free_line_state\(\))f Fu(b)q(elo)o(w\).)137 488
-y(There)g(is)f(an)g(additional)i(Readline)g(signal)f(handler,)g(for)f
-Ft(SIGWINCH)p Fu(,)f(whic)o(h)i(the)f(k)o(ernel)h(sends)g(to)e(a)75
-543 y(pro)q(cess)k(whenev)o(er)g(the)f(terminal's)h(size)g(c)o(hanges)f
-(\(for)g(example,)h(if)g(a)f(user)h(resizes)g(an)f Ft(xterm)p
-Fu(\).)19 b(The)75 598 y(Readline)g Ft(SIGWINCH)e Fu(handler)i(up)q
-(dates)f(Readline's)h(in)o(ternal)f(screen)h(size)f(information,)h(and)
-f(then)75 653 y(calls)g(an)o(y)f Ft(SIGWINCH)e Fu(signal)j(handler)g
-(the)f(calling)i(application)f(has)f(installed.)27 b(Readline)18
-b(calls)g(the)75 708 y(application's)h Ft(SIGWINCH)d
-Fu(signal)j(handler)f(without)g(resetting)g(the)f(terminal)i(to)e(its)g
-(original)i(state.)75 762 y(If)d(the)g(application's)h(signal)g
-(handler)g(do)q(es)g(more)e(than)h(up)q(date)h(its)f(idea)h(of)e(the)h
-(terminal)h(size)g(and)75 817 y(return)e(\(for)f(example,)h(a)f
-Ft(longjmp)g Fu(bac)o(k)h(to)f(a)h(main)g(pro)q(cessing)g(lo)q(op\),)g
-(it)g Fl(must)20 b Fu(call)c Ft(rl_cleanup_)75 872 y(after_signal\(\))d
-Fu(\(describ)q(ed)k(b)q(elo)o(w\),)e(to)g(restore)f(the)h(terminal)h
-(state.)137 937 y(Readline)g(pro)o(vides)f(t)o(w)o(o)e(v)m(ariables)i
-(that)f(allo)o(w)g(application)i(writers)e(to)g(con)o(trol)g(whether)h
-(or)e(not)75 992 y(it)k(will)h(catc)o(h)e(certain)h(signals)h(and)f
-(act)f(on)g(them)h(when)g(they)f(are)h(receiv)o(ed.)25
-b(It)16 b(is)i(imp)q(ortan)o(t)e(that)75 1047 y(applications)k(c)o
-(hange)e(the)h(v)m(alues)g(of)f(these)h(v)m(ariables)g(only)g(when)g
-(calling)h Ft(readline\(\))p Fu(,)d(not)h(in)h(a)75 1101
-y(signal)d(handler,)g(so)f(Readline's)h(in)o(ternal)g(signal)g(state)e
-(is)i(not)f(corrupted.)1773 1208 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1208 18 3 v 21 w(catc)n(h)p
-366 1208 V 22 w(signals)195 1262 y Fu(If)15 b(this)g(v)m(ariable)g(is)g
-(non-zero,)g(Readline)h(will)g(install)f(signal)h(handlers)f(for)f
-Ft(SIGINT)p Fu(,)f Ft(SIGQUIT)p Fu(,)195 1317 y Ft(SIGTERM)p
-Fu(,)h Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)f Ft(SIGTTIN)p
-Fu(,)h(and)i Ft(SIGTTOU)p Fu(.)195 1382 y(The)f(default)h(v)m(alue)h
-(of)d Ft(rl_catch_signals)f Fu(is)j(1.)1773 1488 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1488 V 21 w(catc)n(h)p 366
-1488 V 22 w(sigwinc)n(h)195 1543 y Fu(If)15 b(this)h(v)m(ariable)h(is)e
-(non-zero,)g(Readline)i(will)g(install)f(a)f(signal)h(handler)h(for)d
-Ft(SIGWINCH)p Fu(.)195 1608 y(The)h(default)h(v)m(alue)h(of)d
-Ft(rl_catch_sigwinch)f Fu(is)j(1.)137 1694 y(If)g(an)f(application)j
-(do)q(es)d(not)g(wish)i(to)d(ha)o(v)o(e)h(Readline)i(catc)o(h)f(an)o(y)
-f(signals,)h(or)f(to)f(handle)j(signals)75 1749 y(other)i(than)g(those)
-g(Readline)i(catc)o(hes)e(\()p Ft(SIGHUP)p Fu(,)g(for)g(example\),)h
-(Readline)h(pro)o(vides)e(con)o(v)o(enience)75 1804 y(functions)d(to)f
-(do)g(the)g(necessary)g(terminal)h(and)g(in)o(ternal)g(state)e(clean)o
-(up)i(up)q(on)g(receipt)g(of)f(a)g(signal.)1762 1910
-y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1910 V
-21 w(clean)n(up)p 450 1910 V 22 w(after)p 590 1910 V
-20 w(signal)j Fg(\()p Ft(void)p Fg(\))195 1965 y Fu(This)18
-b(function)f(will)i(reset)e(the)g(state)f(of)g(the)h(terminal)h(to)e
-(what)h(it)g(w)o(as)f(b)q(efore)h Ft(readline\(\))195
-2019 y Fu(w)o(as)d(called,)i(and)f(remo)o(v)o(e)f(the)g(Readline)i
-(signal)g(handlers)g(for)e(all)h(signals,)g(dep)q(ending)i(on)e(the)195
-2074 y(v)m(alues)h(of)f Ft(rl_catch_signals)e Fu(and)i
-Ft(rl_catch_sigwinch)p Fu(.)1762 2180 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2180 V 21 w(free)p 356 2180
-V 20 w(line)p 464 2180 V 23 w(state)j Fg(\()p Ft(void)p
-Fg(\))195 2235 y Fu(This)d(will)h(free)f(an)o(y)f(partial)h(state)f
-(asso)q(ciated)h(with)g(the)g(curren)o(t)f(input)i(line)g(\(undo)f
-(infor-)195 2290 y(mation,)i(an)o(y)f(partial)h(history)f(en)o(try)l(,)
-h(an)o(y)f(partially-en)o(tered)i(k)o(eyb)q(oard)e(macro,)h(and)f(an)o
-(y)195 2345 y(partially-en)o(tered)k(n)o(umeric)g(argumen)o(t\).)45
-b(This)24 b(should)h(b)q(e)g(called)g(b)q(efore)g Ft(rl_cleanup_)195
-2399 y(after_signal\(\))p Fu(.)36 b(The)22 b(Readline)h(signal)f
-(handler)g(for)f Ft(SIGINT)f Fu(calls)j(this)e(to)g(ab)q(ort)g(the)195
-2454 y(curren)o(t)15 b(input)h(line.)1762 2560 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2560 V 21 w(reset)p 383 2560
-V 20 w(after)p 521 2560 V 21 w(signal)j Fg(\()p Ft(void)p
-Fg(\))195 2615 y Fu(This)15 b(will)h(reinitialize)h(the)d(terminal)h
-(and)g(reinstall)h(an)o(y)d(Readline)j(signal)f(handlers,)g(dep)q(end-)
-195 2670 y(ing)h(on)f(the)g(v)m(alues)i(of)d Ft(rl_catch_signals)f
-Fu(and)j Ft(rl_catch_sigwinch)p Fu(.)p eop
-%%Page: 41 43
-41 42 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(41)137 149 y(If)20 b(an)g(application)h(do)q(es)f(not)g
-(wish)g(Readline)h(to)e(catc)o(h)g Ft(SIGWINCH)p Fu(,)h(it)g(ma)o(y)f
-(call)h Ft(rl_resize_)75 204 y(terminal\(\))12 b Fu(or)h
-Ft(rl_set_screen_size\(\))e Fu(to)i(force)g(Readline)i(to)e(up)q(date)h
-(its)g(idea)g(of)g(the)f(terminal)75 259 y(size)j(when)g(a)f
-Ft(SIGWINCH)f Fu(is)h(receiv)o(ed.)1762 360 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 360 18 3 v 21 w(resize)p 401
-360 V 22 w(terminal)j Fg(\()p Ft(void)p Fg(\))195 415
-y Fu(Up)q(date)16 b(Readline's)g(in)o(ternal)g(screen)f(size)i(b)o(y)e
-(reading)g(v)m(alues)i(from)d(the)i(k)o(ernel.)1762 516
-y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 516 V
-21 w(set)p 333 516 V 21 w(screen)p 510 516 V 20 w(size)k
-Fg(\()p Ft(int)15 b(rows,)f(int)h(cols)p Fg(\))195 571
-y Fu(Set)g(Readline's)h(idea)g(of)f(the)g(terminal)h(size)g(to)f
-Fk(ro)o(ws)h Fu(ro)o(ws)e(and)i Fk(cols)h Fu(columns.)137
-653 y(If)g(an)g(application)h(do)q(es)f(not)f(w)o(an)o(t)g(to)g
-(install)i(a)f Ft(SIGWINCH)e Fu(handler,)j(but)f(is)g(still)h(in)o
-(terested)f(in)75 708 y(the)e(screen)h(dimensions,)g(Readline's)h(idea)
-e(of)g(the)h(screen)f(size)h(ma)o(y)f(b)q(e)h(queried.)1762
-809 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 809
-V 21 w(get)p 339 809 V 21 w(screen)p 516 809 V 20 w(size)k
-Fg(\()p Ft(int)15 b(*rows,)f(int)h(*cols)p Fg(\))195
-864 y Fu(Return)g(Readline's)h(idea)f(of)g(the)g(terminal's)g(size)h
-(in)g(the)f(v)m(ariables)i(p)q(oin)o(ted)f(to)e(b)o(y)h(the)g(argu-)195
-918 y(men)o(ts.)137 1001 y(The)h(follo)o(wing)g(functions)g(install)g
-(and)g(remo)o(v)o(e)e(Readline's)i(signal)g(handlers.)1762
-1102 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1102
-V 21 w(set)p 307 1102 V 20 w(signals)j Fg(\()p Ft(void)p
-Fg(\))195 1157 y Fu(Install)c(Readline's)f(signal)h(handler)f(for)f
-Ft(SIGINT)p Fu(,)g Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p Fu(,)g
-Ft(SIGALRM)p Fu(,)f Ft(SIGTSTP)p Fu(,)195 1211 y Ft(SIGTTIN)p
-Fu(,)11 b Ft(SIGTTOU)p Fu(,)g(and)h Ft(SIGWINCH)p Fu(,)e(dep)q(ending)k
-(on)e(the)f(v)m(alues)i(of)e Ft(rl_catch_signals)f Fu(and)195
-1266 y Ft(rl_catch_sigwinch)p Fu(.)1762 1367 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1367 V 21 w(clear)p 354 1367
-V 21 w(signals)j Fg(\()p Ft(void)p Fg(\))195 1422 y Fu(Remo)o(v)o(e)14
-b(all)i(of)f(the)g(Readline)i(signal)f(handlers)g(installed)h(b)o(y)e
-Ft(rl_set_signals\(\))p Fu(.)75 1541 y Fs(2.6)33 b(Custom)21
-b(Completers)137 1634 y Fu(T)o(ypically)l(,)e(a)d(program)f(that)h
-(reads)h(commands)f(from)g(the)h(user)f(has)h(a)f(w)o(a)o(y)g(of)g
-(disam)o(biguating)75 1689 y(commands)i(and)f(data.)27
-b(If)18 b(y)o(our)f(program)g(is)h(one)g(of)f(these,)i(then)f(it)g(can)
-f(pro)o(vide)i(completion)g(for)75 1744 y(commands,)14
-b(data,)g(or)g(b)q(oth.)20 b(The)15 b(follo)o(wing)g(sections)g
-(describ)q(e)h(ho)o(w)e(y)o(our)g(program)g(and)h(Readline)75
-1798 y(co)q(op)q(erate)g(to)g(pro)o(vide)g(this)h(service.)75
-1901 y Fj(2.6.1)30 b(Ho)n(w)21 b(Completing)f(W)-5 b(orks)137
-1994 y Fu(In)18 b(order)f(to)f(complete)i(some)f(text,)g(the)g(full)i
-(list)e(of)g(p)q(ossible)i(completions)f(m)o(ust)f(b)q(e)h(a)o(v)m
-(ailable.)75 2049 y(That)e(is,)i(it)f(is)h(not)f(p)q(ossible)h(to)f
-(accurately)g(expand)h(a)e(partial)i(w)o(ord)e(without)h(kno)o(wing)g
-(all)h(of)f(the)75 2104 y(p)q(ossible)i(w)o(ords)e(whic)o(h)h(mak)o(e)f
-(sense)h(in)h(that)d(con)o(text.)26 b(The)18 b(Readline)h(library)f
-(pro)o(vides)g(the)g(user)75 2158 y(in)o(terface)f(to)f(completion,)i
-(and)e(t)o(w)o(o)g(of)g(the)h(most)f(common)g(completion)i(functions:)
-23 b(\014lename)18 b(and)75 2213 y(username.)h(F)l(or)10
-b(completing)i(other)e(t)o(yp)q(es)h(of)f(text,)h(y)o(ou)g(m)o(ust)f
-(write)h(y)o(our)f(o)o(wn)h(completion)g(function.)75
-2268 y(This)16 b(section)g(describ)q(es)g(exactly)g(what)f(suc)o(h)g
-(functions)h(m)o(ust)f(do,)f(and)i(pro)o(vides)f(an)h(example.)137
-2332 y(There)g(are)f(three)g(ma)s(jor)f(functions)i(used)f(to)g(p)q
-(erform)g(completion:)100 2396 y(1.)29 b(The)22 b(user-in)o(terface)g
-(function)h Ft(rl_complete\(\))p Fu(.)37 b(This)22 b(function)h(is)f
-(called)h(with)f(the)g(same)165 2451 y(argumen)o(ts)17
-b(as)h(other)g(bindable)i(Readline)f(functions:)27 b
-Fk(coun)o(t)19 b Fu(and)f Fk(in)o(v)o(oking)p 1556 2451
-14 2 v 17 w(k)o(ey)p Fu(.)28 b(It)19 b(isolates)165 2506
-y(the)g(w)o(ord)f(to)g(b)q(e)i(completed)f(and)g(calls)h
-Ft(rl_completion_matches\(\))c Fu(to)i(generate)g(a)h(list)g(of)165
-2560 y(p)q(ossible)e(completions.)22 b(It)16 b(then)g(either)g(lists)g
-(the)g(p)q(ossible)h(completions,)g(inserts)f(the)f(p)q(ossible)165
-2615 y(completions,)25 b(or)d(actually)i(p)q(erforms)e(the)g
-(completion,)k(dep)q(ending)e(on)f(whic)o(h)g(b)q(eha)o(vior)g(is)165
-2670 y(desired.)p eop
-%%Page: 42 44
-42 43 bop 75 -58 a Fu(42)1299 b(GNU)15 b(Readline)h(Library)100
-149 y(2.)29 b(The)17 b(in)o(ternal)h(function)f Ft
-(rl_completion_matches\(\))d Fu(uses)j(an)g(application-supplie)q(d)j
-Fk(gener-)165 204 y(ator)h Fu(function)e(to)f(generate)g(the)h(list)g
-(of)f(p)q(ossible)i(matc)o(hes,)f(and)f(then)h(returns)g(the)f(arra)o
-(y)f(of)165 259 y(these)j(matc)o(hes.)32 b(The)20 b(caller)g(should)h
-(place)f(the)g(address)f(of)h(its)f(generator)g(function)h(in)g
-Ft(rl_)165 314 y(completion_entry_function)p Fu(.)100
-383 y(3.)29 b(The)12 b(generator)e(function)i(is)g(called)h(rep)q
-(eatedly)g(from)e Ft(rl_completion_matches\(\))p Fu(,)d(returning)165
-438 y(a)16 b(string)g(eac)o(h)h(time.)24 b(The)17 b(argumen)o(ts)e(to)h
-(the)g(generator)g(function)h(are)f Fk(text)h Fu(and)g
-Fk(state)p Fu(.)22 b Fk(text)165 493 y Fu(is)17 b(the)f(partial)g(w)o
-(ord)f(to)h(b)q(e)h(completed.)23 b Fk(state)18 b Fu(is)e(zero)g(the)g
-(\014rst)g(time)g(the)g(function)h(is)g(called,)165 547
-y(allo)o(wing)23 b(the)f(generator)f(to)g(p)q(erform)h(an)o(y)g
-(necessary)g(initialization,)k(and)c(a)g(p)q(ositiv)o(e)h(non-)165
-602 y(zero)14 b(in)o(teger)h(for)f(eac)o(h)h(subsequen)o(t)g(call.)21
-b(The)15 b(generator)e(function)j(returns)e Ft(\(char)h(*\)NULL)f
-Fu(to)165 657 y(inform)19 b Ft(rl_completion_matches\(\))d
-Fu(that)i(there)h(are)g(no)g(more)g(p)q(ossibilities)j(left.)32
-b(Usually)165 712 y(the)19 b(generator)g(function)h(computes)g(the)f
-(list)h(of)f(p)q(ossible)i(completions)g(when)e Fk(state)j
-Fu(is)d(zero,)165 767 y(and)13 b(returns)g(them)f(one)h(at)f(a)h(time)g
-(on)g(subsequen)o(t)g(calls.)20 b(Eac)o(h)13 b(string)f(the)h
-(generator)f(function)165 821 y(returns)k(as)f(a)h(matc)o(h)f(m)o(ust)h
-(b)q(e)g(allo)q(cated)h(with)g Ft(malloc\(\))p Fu(;)d(Readline)k(frees)
-e(the)g(strings)f(when)165 876 y(it)g(has)h(\014nished)g(with)g(them.)
-1762 1005 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1005 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
-(invoking_key)p Fg(\))195 1059 y Fu(Complete)h(the)f(w)o(ord)g(at)f(or)
-h(b)q(efore)h(p)q(oin)o(t.)21 b(Y)l(ou)15 b(ha)o(v)o(e)g(supplied)j
-(the)d(function)i(that)d(do)q(es)i(the)195 1114 y(initial)23
-b(simple)f(matc)o(hing)e(selection)i(algorithm)f(\(see)f
-Ft(rl_completion_matches\(\))p Fu(\).)33 b(The)195 1169
-y(default)16 b(is)f(to)g(do)g(\014lename)h(completion.)1773
-1298 y(V)l(ariable)-1861 b Fi(rl_compentry_func_t)22
-b(*)d Fh(rl)p 678 1298 V 21 w(completion)p 973 1298 V
-21 w(en)n(try)p 1126 1298 V 22 w(function)195 1352 y
-Fu(This)i(is)f(a)g(p)q(oin)o(ter)g(to)f(the)h(generator)g(function)g
-(for)g Ft(rl_completion_matches\(\))p Fu(.)31 b(If)20
-b(the)195 1407 y(v)m(alue)13 b(of)f Ft(rl_completion_entry_fun)o(ction)
-d Fu(is)j Ft(NULL)f Fu(then)h(the)g(default)h(\014lename)g(generator)
-195 1462 y(function,)j Ft(rl_filename_completion_f)o(unction)o(\(\))p
-Fu(,)c(is)k(used.)75 1582 y Fj(2.6.2)30 b(Completion)20
-b(F)-5 b(unctions)137 1682 y Fu(Here)16 b(is)f(the)h(complete)g(list)g
-(of)e(callable)k(completion)e(functions)g(presen)o(t)f(in)h(Readline.)
-1762 1810 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1810 V 21 w(complete)p 460 1810 V 21 w(in)n(ternal)k
-Fg(\()p Ft(int)15 b(what_to_do)p Fg(\))195 1865 y Fu(Complete)k(the)g
-(w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)31 b Fk(what)p
-1108 1865 14 2 v 16 w(to)p 1165 1865 V 16 w(do)21 b Fu(sa)o(ys)d(what)g
-(to)g(do)h(with)g(the)g(com-)195 1920 y(pletion.)j(A)16
-b(v)m(alue)h(of)e(`)p Ft(?)p Fu(')g(means)g(list)i(the)e(p)q(ossible)j
-(completions.)k(`)p Ft(TAB)p Fu(')14 b(means)i(do)f(standard)195
-1975 y(completion.)22 b(`)p Ft(*)p Fu(')15 b(means)g(insert)h(all)h(of)
-e(the)h(p)q(ossible)h(completions.)22 b(`)p Ft(!)p Fu(')15
-b(means)g(to)g(displa)o(y)i(all)195 2029 y(of)g(the)g(p)q(ossible)i
-(completions,)f(if)g(there)f(is)h(more)f(than)g(one,)g(as)g(w)o(ell)h
-(as)f(p)q(erforming)h(partial)195 2084 y(completion.)1762
-2213 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2213
-18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
-(invoking_key)p Fg(\))195 2268 y Fu(Complete)21 b(the)g(w)o(ord)e(at)h
-(or)g(b)q(efore)h(p)q(oin)o(t.)37 b(Y)l(ou)21 b(ha)o(v)o(e)f(supplied)j
-(the)d(function)i(that)e(do)q(es)195 2322 y(the)d(initial)h(simple)g
-(matc)o(hing)f(selection)h(algorithm)e(\(see)g Ft
-(rl_completion_matches\(\))e Fu(and)195 2377 y Ft
-(rl_completion_entry_functi)o(on)p Fu(\).)25 b(The)18
-b(default)h(is)f(to)f(do)h(\014lename)h(completion.)29
-b(This)195 2432 y(calls)16 b Ft(rl_complete_internal\(\))c
-Fu(with)k(an)f(argumen)o(t)f(dep)q(ending)k(on)d Fk(in)o(v)o(oking)p
-1657 2432 14 2 v 17 w(k)o(ey)p Fu(.)1762 2560 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2560 18 3 v 21 w(p)r(ossible)p
-433 2560 V 20 w(completions)j Fg(\()p Ft(int)15 b(count,)f(int)h
-(invoking_key)p Fg(\))195 2615 y Fu(List)21 b(the)f(p)q(ossible)i
-(completions.)36 b(See)21 b(description)h(of)e Ft(rl_complete)13
-b(\(\))p Fu(.)35 b(This)21 b(calls)g Ft(rl_)195 2670
-y(complete_internal\(\))13 b Fu(with)i(an)g(argumen)o(t)g(of)f(`)p
-Ft(?)p Fu('.)p eop
-%%Page: 43 45
-43 44 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(43)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(insert)p 378 149 V 21 w(completions)j
-Fg(\()p Ft(int)14 b(count,)g(int)h(invoking_key)p Fg(\))195
-204 y Fu(Insert)i(the)g(list)h(of)e(p)q(ossible)j(completions)e(in)o
-(to)g(the)g(line,)i(deleting)f(the)f(partially-completed)195
-259 y(w)o(ord.)k(See)c(description)g(of)e Ft(rl_complete\(\))p
-Fu(.)20 b(This)d(calls)g Ft(rl_complete_internal\(\))c
-Fu(with)195 314 y(an)i(argumen)o(t)g(of)f(`)p Ft(*)p
-Fu('.)1762 434 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 434 V 21 w(completion)p 510 434 V 21 w(mo)r(de)h
-Fg(\()p Ft(rl_command_func_t)12 b(*cfunc)p Fg(\))195
-489 y Fu(Returns)25 b(the)g(apppriate)h(v)m(alue)g(to)f(pass)g(to)f
-Ft(rl_complete_internal\(\))f Fu(dep)q(ending)k(on)195
-543 y(whether)22 b Fk(cfunc)j Fu(w)o(as)d(called)h(t)o(wice)f(in)h
-(succession)g(and)f(the)g(v)m(alue)h(of)f(the)g Ft(show-all-if-)195
-598 y(ambiguous)14 b Fu(v)m(ariable.)21 b(Application-sp)q(ec)q(i\014c)
-e(completion)d(functions)g(ma)o(y)f(use)g(this)h(function)195
-653 y(to)f(presen)o(t)g(the)g(same)g(in)o(terface)g(as)g
-Ft(rl_complete\(\))p Fu(.)1762 773 y(F)l(unction)-1861
-b Fi(char)20 b(**)f Fh(rl)p 312 773 V 21 w(completion)p
-607 773 V 21 w(matc)n(hes)j Fg(\()p Ft(const)15 b(char)f(*text,)283
-828 y(rl_compentry_func_t)e(*entry_func)p Fg(\))195 883
-y Fu(Returns)18 b(an)h(arra)o(y)f(of)g(strings)h(whic)o(h)h(is)g(a)e
-(list)i(of)e(completions)i(for)f Fk(text)p Fu(.)30 b(If)19
-b(there)g(are)g(no)195 937 y(completions,)f(returns)g
-Ft(NULL)p Fu(.)25 b(The)17 b(\014rst)g(en)o(try)g(in)h(the)f(returned)h
-(arra)o(y)e(is)i(the)f(substitution)195 992 y(for)c Fk(text)p
-Fu(.)18 b(The)c(remaining)g(en)o(tries)f(are)g(the)h(p)q(ossible)g
-(completions.)21 b(The)13 b(arra)o(y)f(is)i(terminated)195
-1047 y(with)i(a)e Ft(NULL)h Fu(p)q(oin)o(ter.)195 1115
-y Fk(en)o(try)p 302 1115 14 2 v 16 w(func)h Fu(is)e(a)f(function)h(of)e
-(t)o(w)o(o)g(args,)g(and)i(returns)f(a)f Ft(char)j(*)p
-Fu(.)k(The)13 b(\014rst)g(argumen)o(t)f(is)i Fk(text)p
-Fu(.)195 1170 y(The)f(second)g(is)f(a)h(state)e(argumen)o(t;)h(it)h(is)
-g(zero)f(on)g(the)h(\014rst)f(call,)i(and)e(non-zero)h(on)f(subsequen)o
-(t)195 1225 y(calls.)20 b Fk(en)o(try)p 420 1225 V 16
-w(func)15 b Fu(returns)e(a)e Ft(NULL)h Fu(p)q(oin)o(ter)h(to)e(the)i
-(caller)g(when)g(there)f(are)g(no)g(more)g(matc)o(hes.)1762
-1345 y(F)l(unction)-1861 b Fi(char)20 b(*)f Fh(rl)p 286
-1345 18 3 v 21 w(\014lename)p 515 1345 V 20 w(completion)p
-809 1345 V 21 w(function)k Fg(\()p Ft(const)15 b(char)f(*text,)h(int)
-283 1400 y(state)p Fg(\))195 1454 y Fu(A)e(generator)f(function)h(for)g
-(\014lename)h(completion)f(in)h(the)f(general)g(case.)19
-b Fk(text)14 b Fu(is)f(a)g(partial)g(\014le-)195 1509
-y(name.)20 b(The)15 b(Bash)f(source)h(is)g(a)g(useful)g(reference)h
-(for)e(writing)h(custom)f(completion)i(functions)195
-1564 y(\(the)f(Bash)g(completion)i(functions)e(call)i(this)e(and)h
-(other)f(Readline)h(functions\).)1762 1684 y(F)l(unction)-1861
-b Fi(char)20 b(*)f Fh(rl)p 286 1684 V 21 w(username)p
-547 1684 V 19 w(completion)p 840 1684 V 21 w(function)k
-Fg(\()p Ft(const)14 b(char)g(*text,)283 1739 y(int)g(state)p
-Fg(\))195 1794 y Fu(A)g(completion)i(generator)d(for)h(usernames.)19
-b Fk(text)c Fu(con)o(tains)f(a)g(partial)h(username)f(preceded)i(b)o(y)
-195 1848 y(a)f(random)g(c)o(haracter)f(\(usually)j(`)p
-Ft(~)p Fu('\).)i(As)c(with)g(all)i(completion)f(generators,)e
-Fk(state)j Fu(is)f(zero)f(on)195 1903 y(the)g(\014rst)g(call)h(and)g
-(non-zero)f(for)g(subsequen)o(t)h(calls.)75 2017 y Fj(2.6.3)30
-b(Completion)20 b(V)-5 b(ariables)1773 2166 y Fu(V)l(ariable)-1861
-b Fi(rl_compentry_func_t)22 b(*)d Fh(rl)p 678 2166 V
-21 w(completion)p 973 2166 V 21 w(en)n(try)p 1126 2166
-V 22 w(function)195 2221 y Fu(A)e(p)q(oin)o(ter)g(to)f(the)h(generator)
-f(function)h(for)f Ft(rl_completion_matches\(\))p Fu(.)22
-b Ft(NULL)16 b Fu(means)h(to)195 2276 y(use)f Ft
-(rl_filename_completion_)o(functio)o(n\(\))p Fu(,)c(the)j(default)h
-(\014lename)g(completer.)1773 2396 y(V)l(ariable)-1861
-b Fi(rl_completion_func_t)22 b(*)d Fh(rl)p 704 2396 V
-22 w(attempted)p 985 2396 V 20 w(completion)p 1279 2396
-V 21 w(function)195 2451 y Fu(A)e(p)q(oin)o(ter)h(to)f(an)g(alternativ)
-o(e)h(function)g(to)f(create)g(matc)o(hes.)26 b(The)18
-b(function)g(is)g(called)h(with)195 2506 y Fk(text)p
-Fu(,)11 b Fk(start)p Fu(,)g(and)h Fk(end)p Fu(.)19 b
-Fk(start)11 b Fu(and)h Fk(end)i Fu(are)d(indices)i(in)g
-Ft(rl_line_buffer)c Fu(de\014ning)k(the)f(b)q(ound-)195
-2560 y(aries)h(of)g Fk(text)p Fu(,)f(whic)o(h)i(is)g(a)e(c)o(haracter)h
-(string.)19 b(If)13 b(this)g(function)h(exists)g(and)f(returns)g
-Ft(NULL)p Fu(,)f(or)g(if)195 2615 y(this)f(v)m(ariable)i(is)e(set)g(to)
-f Ft(NULL)p Fu(,)h(then)g Ft(rl_complete\(\))e Fu(will)k(call)f(the)f
-(v)m(alue)h(of)f Ft(rl_completion_)195 2670 y(entry_function)h
-Fu(to)i(generate)g(matc)o(hes,)f(otherwise)i(the)f(arra)o(y)f(of)h
-(strings)g(returned)g(will)i(b)q(e)p eop
-%%Page: 44 46
-44 45 bop 75 -58 a Fu(44)1299 b(GNU)15 b(Readline)h(Library)195
-149 y(used.)j(If)12 b(this)f(function)h(sets)f(the)g
-Ft(rl_attempted_completion_over)d Fu(v)m(ariable)k(to)f(a)g(non-zero)
-195 204 y(v)m(alue,)18 b(Readline)h(will)f(not)f(p)q(erform)f(its)i
-(default)f(completion)h(ev)o(en)f(if)h(this)f(function)h(returns)195
-259 y(no)d(matc)o(hes.)1773 380 y(V)l(ariable)-1861 b
-Fi(rl_quote_func_t)21 b(*)f Fh(rl)p 574 380 18 3 v 21
-w(\014lename)p 803 380 V 20 w(quoting)p 1012 380 V 21
-w(function)195 434 y Fu(A)c(p)q(oin)o(ter)h(to)f(a)g(function)h(that)e
-(will)j(quote)e(a)g(\014lename)i(in)f(an)f(application-sp)q(eci\014)q
-(c)j(fashion.)195 489 y(This)h(is)g(called)i(if)e(\014lename)g
-(completion)h(is)f(b)q(eing)h(attempted)e(and)h(one)g(of)f(the)h(c)o
-(haracters)195 544 y(in)d Ft(rl_filename_quote_characters)c
-Fu(app)q(ears)k(in)g(a)g(completed)g(\014lename.)25 b(The)17
-b(function)195 599 y(is)i(called)i(with)e Fk(text)p Fu(,)g
-Fk(matc)o(h)p 722 599 14 2 v 16 w(t)o(yp)q(e)p Fu(,)g(and)g
-Fk(quote)p 1059 599 V 17 w(p)q(oin)o(ter)p Fu(.)31 b(The)19
-b Fk(text)h Fu(is)f(the)g(\014lename)h(to)e(b)q(e)195
-654 y(quoted.)39 b(The)21 b Fk(matc)o(h)p 607 654 V 16
-w(t)o(yp)q(e)j Fu(is)e(either)g Ft(SINGLE_MATCH)p Fu(,)f(if)h(there)f
-(is)h(only)g(one)g(completion)195 708 y(matc)o(h,)15
-b(or)g Ft(MULT_MATCH)p Fu(.)20 b(Some)c(functions)g(use)g(this)g(to)f
-(decide)j(whether)e(or)f(not)g(to)g(insert)h(a)195 763
-y(closing)c(quote)e(c)o(haracter.)18 b(The)11 b Fk(quote)p
-877 763 V 16 w(p)q(oin)o(ter)k Fu(is)c(a)f(p)q(oin)o(ter)i(to)e(an)o(y)
-g(op)q(ening)i(quote)f(c)o(haracter)195 818 y(the)k(user)h(t)o(yp)q
-(ed.)k(Some)15 b(functions)h(c)o(ho)q(ose)f(to)g(reset)g(this)g(c)o
-(haracter.)1773 938 y(V)l(ariable)-1861 b Fi(rl_dequote_func_t)22
-b(*)d Fh(rl)p 626 938 18 3 v 21 w(\014lename)p 855 938
-V 20 w(dequoting)p 1122 938 V 21 w(function)195 993 y
-Fu(A)c(p)q(oin)o(ter)g(to)f(a)h(function)g(that)g(will)h(remo)o(v)o(e)e
-(application-sp)q(eci\014)q(c)k(quoting)d(c)o(haracters)f(from)195
-1048 y(a)i(\014lename)h(b)q(efore)g(completion)g(is)g(attempted,)f(so)f
-(those)h(c)o(haracters)g(do)g(not)g(in)o(terfere)h(with)195
-1103 y(matc)o(hing)i(the)g(text)g(against)f(names)h(in)h(the)f
-(\014lesystem.)33 b(It)19 b(is)g(called)i(with)e Fk(text)p
-Fu(,)g(the)g(text)195 1158 y(of)i(the)g(w)o(ord)g(to)g(b)q(e)h
-(dequoted,)h(and)e Fk(quote)p 1009 1158 14 2 v 17 w(c)o(har)p
-Fu(,)h(whic)o(h)g(is)g(the)f(quoting)h(c)o(haracter)f(that)195
-1212 y(delimits)d(the)e(\014lename)i(\(usually)f(`)p
-Ft(')p Fu(')f(or)f(`)p Ft(")p Fu('\).)22 b(If)17 b Fk(quote)p
-1187 1212 V 16 w(c)o(har)i Fu(is)e(zero,)f(the)g(\014lename)i(w)o(as)d
-(not)195 1267 y(in)h(an)f(em)o(b)q(edded)i(string.)1773
-1388 y(V)l(ariable)-1861 b Fi(rl_linebuf_func_t)22 b(*)d
-Fh(rl)p 626 1388 18 3 v 21 w(c)n(har)p 754 1388 V 21
-w(is)p 813 1388 V 21 w(quoted)p 1005 1388 V 21 w(p)195
-1443 y Fu(A)f(p)q(oin)o(ter)h(to)f(a)g(function)h(to)f(call)i(that)d
-(determines)j(whether)e(or)g(not)g(a)g(sp)q(eci\014c)j(c)o(haracter)195
-1497 y(in)d(the)f(line)i(bu\013er)e(is)h(quoted,)g(according)f(to)g
-(whatev)o(er)f(quoting)i(mec)o(hanism)g(the)f(program)195
-1552 y(calling)d(Readline)g(uses.)19 b(The)13 b(function)g(is)g(called)
-h(with)f(t)o(w)o(o)e(argumen)o(ts:)17 b Fk(text)p Fu(,)12
-b(the)h(text)f(of)g(the)195 1607 y(line,)17 b(and)e Fk(index)p
-Fu(,)i(the)e(index)i(of)e(the)g(c)o(haracter)g(in)h(the)g(line.)22
-b(It)15 b(is)h(used)g(to)f(decide)i(whether)e(a)195 1662
-y(c)o(haracter)f(found)i(in)g Ft(rl_completer_word_break_)o(charact)o
-(ers)c Fu(should)k(b)q(e)g(used)g(to)e(break)195 1717
-y(w)o(ords)g(for)h(the)g(completer.)1773 1837 y(V)l(ariable)-1861
-b Fi(rl_compignore_func_t)22 b(*)d Fh(rl)p 704 1837 V
-22 w(ignore)p 881 1837 V 20 w(some)p 1028 1837 V 19 w(completions)p
-1344 1837 V 21 w(function)195 1892 y Fu(This)g(function,)i(if)e
-(de\014ned,)i(is)e(called)h(b)o(y)f(the)g(completer)g(when)h(real)f
-(\014lename)h(completion)195 1947 y(is)e(done,)f(after)f(all)i(the)f
-(matc)o(hing)g(names)g(ha)o(v)o(e)g(b)q(een)h(generated.)25
-b(It)17 b(is)h(passed)f(a)g Ft(NULL)f Fu(ter-)195 2001
-y(minated)g(arra)o(y)e(of)h(matc)o(hes.)20 b(The)c(\014rst)f(elemen)o
-(t)h(\()p Ft(matches[0])p Fu(\))d(is)j(the)g(maximal)g(substring)195
-2056 y(common)e(to)g(all)h(matc)o(hes.)k(This)c(function)g(can)g
-(re-arrange)f(the)g(list)h(of)f(matc)o(hes)g(as)g(required,)195
-2111 y(but)h(eac)o(h)h(elemen)o(t)g(deleted)g(from)f(the)g(arra)o(y)f
-(m)o(ust)g(b)q(e)i(freed.)1773 2232 y(V)l(ariable)-1861
-b Fi(rl_icppfunc_t)21 b(*)e Fh(rl)p 521 2232 V 21 w(directory)p
-769 2232 V 22 w(completion)p 1065 2232 V 21 w(ho)r(ok)195
-2286 y Fu(This)k(function,)i(if)e(de\014ned,)j(is)d(allo)o(w)o(ed)g(to)
-f(mo)q(dify)h(the)g(directory)g(p)q(ortion)g(of)f(\014lenames)195
-2341 y(Readline)e(completes.)29 b(It)19 b(is)f(called)i(with)f(the)f
-(address)h(of)e(a)h(string)h(\(the)f(curren)o(t)g(directory)195
-2396 y(name\))g(as)g(an)h(argumen)o(t,)f(and)h(ma)o(y)f(mo)q(dify)h
-(that)f(string.)30 b(If)19 b(the)f(string)h(is)g(replaced)h(with)195
-2451 y(a)g(new)g(string,)h(the)f(old)g(v)m(alue)h(should)g(b)q(e)g
-(freed.)34 b(An)o(y)20 b(mo)q(di\014ed)i(directory)e(name)g(should)195
-2506 y(ha)o(v)o(e)14 b(a)g(trailing)i(slash.)k(The)15
-b(mo)q(di\014ed)h(v)m(alue)g(will)g(b)q(e)f(displa)o(y)o(ed)h(as)e
-(part)g(of)h(the)f(completion,)195 2560 y(replacing)h(the)g(directory)f
-(p)q(ortion)g(of)g(the)g(pathname)g(the)h(user)f(t)o(yp)q(ed.)20
-b(It)14 b(returns)g(an)g(in)o(teger)195 2615 y(that)i(should)h(b)q(e)g
-(non-zero)g(if)g(the)g(function)g(mo)q(di\014es)h(its)e(directory)h
-(argumen)o(t.)23 b(It)17 b(could)g(b)q(e)195 2670 y(used)f(to)e(expand)
-i(sym)o(b)q(olic)h(links)f(or)f(shell)i(v)m(ariables)f(in)g(pathnames.)
-p eop
-%%Page: 45 47
-45 46 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(45)1773 149 y(V)l(ariable)-1861 b Fi
-(rl_compdisp_func_t)22 b(*)d Fh(rl)p 652 149 18 3 v 21
-w(completion)p 947 149 V 21 w(displa)n(y)p 1141 149 V
-22 w(matc)n(hes)p 1366 149 V 21 w(ho)r(ok)195 204 y Fu(If)11
-b(non-zero,)h(then)f(this)h(is)f(the)g(address)g(of)g(a)g(function)g
-(to)g(call)h(when)f(completing)i(a)d(w)o(ord)h(w)o(ould)195
-259 y(normally)h(displa)o(y)g(the)f(list)h(of)f(p)q(ossible)h(matc)o
-(hes.)18 b(This)12 b(function)g(is)g(called)g(in)g(lieu)h(of)e
-(Readline)195 314 y(displa)o(ying)21 b(the)d(list.)32
-b(It)19 b(tak)o(es)f(three)h(argumen)o(ts:)26 b(\()p
-Ft(char)14 b(**)p Fk(matc)o(hes)p Fu(,)19 b Ft(int)f
-Fk(n)o(um)p 1688 314 14 2 v 17 w(matc)o(hes)p Fu(,)195
-369 y Ft(int)13 b Fk(max)p 368 369 V 16 w(length)p Fu(\))i(where)f
-Fk(matc)o(hes)h Fu(is)f(the)g(arra)o(y)f(of)g(matc)o(hing)h(strings,)g
-Fk(n)o(um)p 1578 369 V 16 w(matc)o(hes)i Fu(is)e(the)195
-423 y(n)o(um)o(b)q(er)h(of)f(strings)h(in)h(that)e(arra)o(y)l(,)f(and)i
-Fk(max)p 1012 423 V 16 w(length)h Fu(is)f(the)g(length)g(of)g(the)f
-(longest)h(string)g(in)195 478 y(that)e(arra)o(y)l(.)19
-b(Readline)c(pro)o(vides)g(a)e(con)o(v)o(enience)j(function,)f
-Ft(rl_display_match_list)p Fu(,)c(that)195 533 y(tak)o(es)17
-b(care)g(of)g(doing)h(the)f(displa)o(y)i(to)d(Readline's)j(output)e
-(stream.)26 b(That)16 b(function)j(ma)o(y)d(b)q(e)195
-588 y(called)h(from)d(this)i(ho)q(ok.)1773 704 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 704 18 3 v 21
-w(basic)p 580 704 V 21 w(w)n(ord)p 725 704 V 21 w(break)p
-886 704 V 20 w(c)n(haracters)195 759 y Fu(The)j(basic)h(list)g(of)f(c)o
-(haracters)f(that)g(signal)i(a)f(break)g(b)q(et)o(w)o(een)g(w)o(ords)g
-(for)f(the)h(completer)195 814 y(routine.)30 b(The)19
-b(default)g(v)m(alue)h(of)e(this)h(v)m(ariable)h(is)f(the)g(c)o
-(haracters)f(whic)o(h)h(break)g(w)o(ords)f(for)195 869
-y(completion)e(in)g(Bash:)k Ft(")15 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p
-Fu(.)1773 985 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f
-Fh(rl)p 436 985 V 21 w(basic)p 580 985 V 21 w(quote)p
-740 985 V 21 w(c)n(haracters)195 1040 y Fu(A)c(list)h(of)f(quote)g(c)o
-(haracters)f(whic)o(h)i(can)g(cause)f(a)g(w)o(ord)g(break.)1773
-1156 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1156 V 21 w(completer)p 705 1156 V 21 w(w)n(ord)p
-850 1156 V 20 w(break)p 1010 1156 V 20 w(c)n(haracters)195
-1211 y Fu(The)33 b(list)g(of)f(c)o(haracters)g(that)f(signal)j(a)e
-(break)g(b)q(et)o(w)o(een)h(w)o(ords)f(for)g Ft(rl_complete_)195
-1266 y(internal\(\))p Fu(.)18 b(The)e(default)g(list)g(is)f(the)h(v)m
-(alue)g(of)f Ft(rl_basic_word_break_chara)o(cters)p Fu(.)1773
-1382 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1382 V 21 w(completer)p 705 1382 V 21 w(quote)p 865
-1382 V 20 w(c)n(haracters)195 1437 y Fu(A)e(list)h(of)e(c)o(haracters)g
-(whic)o(h)i(can)f(b)q(e)g(used)h(to)e(quote)h(a)f(substring)h(of)g(the)
-g(line.)26 b(Completion)195 1492 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)
-g(substring,)h(and)f(within)i(the)e(substring)g Ft
-(rl_completer_word_break_)195 1547 y(characters)j Fu(are)h(treated)g
-(as)h(an)o(y)f(other)g(c)o(haracter,)g(unless)i(they)e(also)h(app)q
-(ear)g(within)h(this)195 1601 y(list.)1773 1718 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 1718 V 21 w(\014lename)p
-665 1718 V 20 w(quote)p 824 1718 V 21 w(c)n(haracters)195
-1773 y Fu(A)e(list)h(of)e(c)o(haracters)g(that)g(cause)h(a)g
-(\014lename)h(to)e(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)h(when)f
-(they)195 1828 y(app)q(ear)e(in)h(a)f(completed)h(\014lename.)21
-b(The)16 b(default)g(is)f(the)h(n)o(ull)g(string.)1773
-1944 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1944 V 21 w(sp)r(ecial)p 623 1944 V 22 w(pre\014xes)195
-1999 y Fu(The)14 b(list)h(of)e(c)o(haracters)g(that)g(are)h(w)o(ord)f
-(break)h(c)o(haracters,)f(but)h(should)h(b)q(e)f(left)g(in)h
-Fk(text)f Fu(when)195 2054 y(it)f(is)f(passed)h(to)f(the)g(completion)h
-(function.)20 b(Programs)11 b(can)h(use)h(this)g(to)f(help)h(determine)
-h(what)195 2108 y(kind)i(of)e(completing)i(to)e(do.)19
-b(F)l(or)14 b(instance,)i(Bash)e(sets)h(this)g(v)m(ariable)h(to)e
-Ft(")p Fu($)p Ft(@")g Fu(so)g(that)g(it)h(can)195 2163
-y(complete)h(shell)h(v)m(ariables)f(and)g(hostnames.)1773
-2280 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2280
-V 21 w(completion)p 510 2280 V 21 w(query)p 673 2280
-V 21 w(items)195 2334 y Fu(Up)e(to)g(this)g(man)o(y)g(items)g(will)i(b)
-q(e)f(displa)o(y)o(ed)g(in)g(resp)q(onse)g(to)e(a)h(p)q
-(ossible-completions)j(call.)195 2389 y(After)14 b(that,)f(w)o(e)h(ask)
-g(the)h(user)f(if)h(she)f(is)h(sure)g(she)f(w)o(an)o(ts)f(to)h(see)h
-(them)f(all.)20 b(The)15 b(default)g(v)m(alue)195 2444
-y(is)h(100.)1773 2560 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 2560 V 21 w(completion)p 510 2560 V 21
-w(app)r(end)p 715 2560 V 19 w(c)n(haracter)195 2615 y
-Fu(When)d(a)f(single)i(completion)g(alternativ)o(e)f(matc)o(hes)f(at)g
-(the)h(end)g(of)f(the)h(command)f(line,)j(this)195 2670
-y(c)o(haracter)10 b(is)h(app)q(ended)i(to)d(the)g(inserted)i
-(completion)g(text.)18 b(The)11 b(default)g(is)g(a)g(space)g(c)o
-(haracter)p eop
-%%Page: 46 48
-46 47 bop 75 -58 a Fu(46)1299 b(GNU)15 b(Readline)h(Library)195
-149 y(\(`)e('\).)19 b(Setting)14 b(this)f(to)g(the)g(n)o(ull)i(c)o
-(haracter)e(\(`)p Ft(\\0)p Fu('\))e(prev)o(en)o(ts)i(an)o(ything)h(b)q
-(eing)h(app)q(ended)f(auto-)195 204 y(matically)l(.)21
-b(This)15 b(can)f(b)q(e)h(c)o(hanged)g(in)g(custom)f(completion)i
-(functions)f(to)f(pro)o(vide)h(the)f(\\most)195 259 y(sensible)i(w)o
-(ord)c(separator)h(c)o(haracter")f(according)i(to)f(an)h
-(application-sp)q(eci\014c)j(command)c(line)195 314 y(syn)o(tax)h(sp)q
-(eci\014cation.)1773 423 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 423 18 3 v 21 w(completion)p 510 423 V
-21 w(suppress)p 746 423 V 19 w(app)r(end)195 478 y Fu(If)e(non-zero,)g
-Fk(rl)p 476 478 14 2 v 17 w(completion)p 709 478 V 18
-w(app)q(end)p 871 478 V 17 w(c)o(haracter)i Fu(is)f(not)e(app)q(ended)i
-(to)e(matc)o(hes)g(at)h(the)f(end)195 533 y(of)c(the)h(command)g(line,)
-h(as)f(describ)q(ed)h(ab)q(o)o(v)o(e.)k(It)14 b(is)h(set)e(to)g(0)h(b)q
-(efore)g(an)o(y)f(application-sp)q(eci)q(\014c)195 588
-y(completion)j(function)g(is)g(called.)1773 697 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 697 18 3 v 21 w(completion)p
-510 697 V 21 w(mark)p 662 697 V 19 w(symlink)p 875 697
-V 21 w(dirs)195 752 y Fu(If)c(non-zero,)g(a)g(slash)g(will)i(b)q(e)e
-(app)q(ended)i(to)d(completed)i(\014lenames)g(that)e(are)g(sym)o(b)q
-(olic)j(links)195 807 y(to)11 b(directory)i(names,)f(sub)s(ject)g(to)f
-(the)i(v)m(alue)g(of)f(the)g(user-settable)g Fk(mark-directories)j
-Fu(v)m(ariable.)195 862 y(This)i(v)m(ariable)h(exists)f(so)g(that)e
-(application)k(completion)f(functions)f(can)g(o)o(v)o(erride)g(the)f
-(user's)195 917 y(global)f(preference)g(\(set)e(via)h(the)g
-Fk(mark-symlink)o(ed-directories)k Fu(Readline)e(v)m(ariable\))f(if)f
-(appro-)195 971 y(priate.)20 b(This)15 b(v)m(ariable)g(is)g(set)f(to)f
-(the)i(user's)e(preference)j(b)q(efore)e(an)o(y)g(application)i
-(completion)195 1026 y(function)j(is)g(called,)h(so)e(unless)h(that)f
-(function)h(mo)q(di\014es)g(the)f(v)m(alue,)i(the)e(user's)g
-(preferences)195 1081 y(are)d(honored.)1773 1191 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1191 V 21 w(ignore)p 391 1191
-V 20 w(completion)p 685 1191 V 21 w(duplicates)195 1245
-y Fu(If)15 b(non-zero,)h(then)f(duplicates)i(in)f(the)f(matc)o(hes)g
-(are)g(remo)o(v)o(ed.)k(The)d(default)g(is)f(1.)1773
-1355 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1355
-V 21 w(\014lename)p 444 1355 V 20 w(completion)p 738
-1355 V 21 w(desired)195 1410 y Fu(Non-zero)c(means)g(that)f(the)h
-(results)g(of)g(the)g(matc)o(hes)f(are)h(to)f(b)q(e)i(treated)e(as)g
-(\014lenames.)23 b(This)195 1465 y(is)14 b Fl(always)j
-Fu(zero)c(on)g(en)o(try)l(,)g(and)h(can)f(only)h(b)q(e)g(c)o(hanged)f
-(within)i(a)e(completion)h(en)o(try)f(generator)195 1519
-y(function.)38 b(If)21 b(it)g(is)g(set)g(to)f(a)g(non-zero)h(v)m(alue,)
-i(directory)e(names)g(ha)o(v)o(e)g(a)f(slash)h(app)q(ended)195
-1574 y(and)d(Readline)h(attempts)d(to)h(quote)g(completed)i
-(\014lenames)f(if)g(they)g(con)o(tain)g(an)o(y)f(c)o(haracters)195
-1629 y(in)f Ft(rl_filename_quote_character)o(s)d Fu(and)i
-Ft(rl_filename_quoting_desired)d Fu(is)k(set)f(to)f(a)195
-1684 y(non-zero)h(v)m(alue.)1773 1793 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1793 V 21 w(\014lename)p 444
-1793 V 20 w(quoting)p 653 1793 V 21 w(desired)195 1848
-y Fu(Non-zero)14 b(means)g(that)f(the)i(results)f(of)g(the)g(matc)o
-(hes)f(are)h(to)f(b)q(e)i(quoted)f(using)h(double)g(quotes)195
-1903 y(\(or)c(an)h(application-sp)q(eci\014)q(c)j(quoting)d(mec)o
-(hanism\))g(if)h(the)f(completed)h(\014lename)g(con)o(tains)f(an)o(y)
-195 1958 y(c)o(haracters)i(in)i Ft(rl_filename_quote_chars)p
-Fu(.)h(This)f(is)f Fl(always)k Fu(non-zero)d(on)f(en)o(try)l(,)f(and)i
-(can)195 2012 y(only)c(b)q(e)g(c)o(hanged)g(within)h(a)f(completion)g
-(en)o(try)g(generator)e(function.)20 b(The)12 b(quoting)g(is)g
-(e\013ected)195 2067 y(via)j(a)g(call)i(to)d(the)i(function)g(p)q(oin)o
-(ted)g(to)e(b)o(y)h Ft(rl_filename_quoting_function)p
-Fu(.)1773 2177 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p
-215 2177 V 21 w(attempted)p 495 2177 V 20 w(completion)p
-789 2177 V 21 w(o)n(v)n(er)195 2232 y Fu(If)47 b(an)g(application-sp)q
-(eci\014)q(c)j(completion)e(function)g(assigned)f(to)g
-Ft(rl_attempted_)195 2286 y(completion_function)24 b
-Fu(sets)i(this)h(v)m(ariable)h(to)e(a)g(non-zero)h(v)m(alue,)j
-(Readline)e(will)g(not)195 2341 y(p)q(erform)15 b(its)g(default)g
-(\014lename)h(completion)g(ev)o(en)f(if)g(the)g(application's)h
-(completion)g(function)195 2396 y(returns)f(no)g(matc)o(hes.)20
-b(It)15 b(should)h(b)q(e)g(set)f(only)h(b)o(y)f(an)g(application's)h
-(completion)h(function.)1773 2506 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(completion)p 510
-2506 V 21 w(t)n(yp)r(e)195 2560 y Fu(Set)e(to)e(a)i(c)o(haracter)f
-(describing)i(the)e(t)o(yp)q(e)h(of)f(completion)i(Readline)g(is)f
-(curren)o(tly)g(attempt-)195 2615 y(ing;)g(see)f(the)f(description)i
-(of)f Ft(rl_complete_internal\(\))c Fu(\(see)k(Section)h(2.6.2)d
-([Completion)195 2670 y(F)l(unctions],)g(page)g(42\))g(for)f(the)h
-(list)h(of)f(c)o(haracters.)p eop
-%%Page: 47 49
-47 48 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(47)1773 149 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(inhibit)p 399 149 V 23
-w(completion)195 204 y Fu(If)14 b(this)h(v)m(ariable)g(is)g(non-zero,)f
-(completion)i(is)e(inhibited.)22 b(The)15 b(completion)g(c)o(haracter)e
-(will)j(b)q(e)195 259 y(inserted)g(as)f(an)o(y)g(other)g(b)q(ound)h(to)
-e Ft(self-insert)p Fu(.)75 371 y Fj(2.6.4)30 b(A)21 b(Short)f
-(Completion)g(Example)137 467 y Fu(Here)11 b(is)f(a)g(small)h
-(application)h(demonstrating)e(the)g(use)h(of)e(the)i(GNU)f(Readline)h
-(library)l(.)19 b(It)11 b(is)f(called)75 522 y Ft(fileman)p
-Fu(,)17 b(and)h(the)g(source)g(co)q(de)g(resides)h(in)f(`)p
-Ft(examples/fileman.c)p Fu('.)25 b(This)18 b(sample)g(application)75
-577 y(pro)o(vides)c(completion)g(of)e(command)h(names,)g(line)i
-(editing)g(features,)d(and)i(access)f(to)f(the)h(history)h(list.)p
-eop
-%%Page: 48 50
-48 49 bop 75 -58 a Fu(48)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(/*)24 b(fileman.c)e(--)i(A)g(tiny)f(application)f(which)h
-(demonstrates)g(how)g(to)h(use)f(the)267 201 y(GNU)g(Readline)g
-(library.)46 b(This)24 b(application)e(interactively)g(allows)h(users)
-267 253 y(to)g(manipulate)g(files)g(and)g(their)g(modes.)h(*/)195
-357 y(#include)f(<stdio.h>)195 409 y(#include)g(<sys/types.h>)195
-461 y(#include)g(<sys/file.h>)195 513 y(#include)g(<sys/stat.h>)195
-565 y(#include)g(<sys/errno.h>)195 668 y(#include)g
-(<readline/readline.h>)195 720 y(#include)g(<readline/history.h>)195
-824 y(extern)g(char)g(*xmalloc)g(\(\);)195 928 y(/*)h(The)f(names)g(of)
-h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)195
-980 y(int)h(com_list)g(__P\(\(char)g(*\)\);)195 1032
-y(int)g(com_view)g(__P\(\(char)g(*\)\);)195 1083 y(int)g(com_rename)g
-(__P\(\(char)g(*\)\);)195 1135 y(int)g(com_stat)g(__P\(\(char)g(*\)\);)
-195 1187 y(int)g(com_pwd)g(__P\(\(char)g(*\)\);)195 1239
-y(int)g(com_delete)g(__P\(\(char)g(*\)\);)195 1291 y(int)g(com_help)g
-(__P\(\(char)g(*\)\);)195 1343 y(int)g(com_cd)g(__P\(\(char)g(*\)\);)
-195 1395 y(int)g(com_quit)g(__P\(\(char)g(*\)\);)195
-1499 y(/*)h(A)f(structure)g(which)g(contains)g(information)f(on)i(the)f
-(commands)g(this)g(program)267 1550 y(can)g(understand.)f(*/)195
-1654 y(typedef)h(struct)g({)243 1706 y(char)g(*name;)g(/*)h(User)f
-(printable)g(name)g(of)h(the)f(function.)g(*/)243 1758
-y(rl_icpfunc_t)f(*func;)h(/*)h(Function)e(to)i(call)f(to)h(do)f(the)h
-(job.)f(*/)243 1810 y(char)g(*doc;)g(/*)h(Documentation)e(for)h(this)h
-(function.)46 b(*/)195 1862 y(})24 b(COMMAND;)195 1966
-y(COMMAND)f(commands[])f(=)i({)243 2017 y({)f("cd",)h(com_cd,)f
-("Change)f(to)i(directory)f(DIR")g(},)243 2069 y({)g("delete",)g
-(com_delete,)f("Delete)h(FILE")h(},)243 2121 y({)f("help",)g(com_help,)
-g("Display)g(this)g(text")g(},)243 2173 y({)g("?",)h(com_help,)e
-("Synonym)h(for)h(`help'")f(},)243 2225 y({)g("list",)g(com_list,)g
-("List)g(files)g(in)h(DIR")f(},)243 2277 y({)g("ls",)h(com_list,)e
-("Synonym)h(for)g(`list'")g(},)243 2329 y({)g("pwd",)g(com_pwd,)g
-("Print)g(the)h(current)f(working)g(directory")f(},)243
-2381 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)243
-2433 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)h(to)f(NEWNAME")g
-(},)243 2484 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g
-(on)h(FILE")f(},)243 2536 y({)g("view",)g(com_view,)g("View)g(the)h
-(contents)e(of)i(FILE")f(},)243 2588 y({)g(\(char)h(*\)NULL,)f
-(\(rl_icpfunc_t)f(*\)NULL,)h(\(char)g(*\)NULL)g(})195
-2640 y(};)p eop
-%%Page: 49 51
-49 50 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(49)195 201 y Ft(/*)24 b(Forward)e(declarations.)h(*/)
-195 253 y(char)g(*stripwhite)g(\(\);)195 305 y(COMMAND)g(*find_command)
-f(\(\);)195 409 y(/*)i(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f
-(from)g(argv[0].)g(*/)195 461 y(char)g(*progname;)195
-565 y(/*)h(When)f(non-zero,)g(this)g(means)g(the)g(user)h(is)f(done)h
-(using)f(this)g(program.)g(*/)195 616 y(int)g(done;)195
-720 y(char)g(*)195 772 y(dupstr)g(\(s\))314 824 y(int)h(s;)195
-876 y({)243 928 y(char)f(*r;)243 1032 y(r)g(=)h(xmalloc)f(\(strlen)g
-(\(s\))g(+)h(1\);)243 1083 y(strcpy)f(\(r,)g(s\);)243
-1135 y(return)g(\(r\);)195 1187 y(})195 1291 y(main)g(\(argc,)g(argv\))
-314 1343 y(int)h(argc;)314 1395 y(char)g(**argv;)195
-1447 y({)243 1499 y(char)f(*line,)g(*s;)243 1602 y(progname)f(=)i
-(argv[0];)243 1706 y(initialize_readline)d(\(\);)i(/*)h(Bind)f(our)h
-(completer.)e(*/)243 1810 y(/*)h(Loop)h(reading)f(and)g(executing)g
-(lines)g(until)g(the)g(user)h(quits.)f(*/)243 1862 y(for)g(\()h(;)g
-(done)f(==)h(0;)f(\))290 1914 y({)338 1966 y(line)g(=)h(readline)f
-(\("FileMan:)f("\);)338 2069 y(if)i(\(!line\))386 2121
-y(break;)338 2225 y(/*)g(Remove)f(leading)g(and)g(trailing)g
-(whitespace)f(from)i(the)f(line.)410 2277 y(Then,)g(if)h(there)f(is)g
-(anything)g(left,)g(add)h(it)f(to)h(the)f(history)g(list)410
-2329 y(and)g(execute)g(it.)h(*/)338 2381 y(s)g(=)g(stripwhite)e
-(\(line\);)338 2484 y(if)i(\(*s\))386 2536 y({)434 2588
-y(add_history)e(\(s\);)434 2640 y(execute_line)g(\(s\);)p
-eop
-%%Page: 50 52
-50 51 bop 75 -58 a Fu(50)1299 b(GNU)15 b(Readline)h(Library)386
-149 y Ft(})338 253 y(free)23 b(\(line\);)290 305 y(})243
-357 y(exit)g(\(0\);)195 409 y(})195 513 y(/*)h(Execute)e(a)i(command)f
-(line.)g(*/)195 565 y(int)195 616 y(execute_line)f(\(line\))314
-668 y(char)i(*line;)195 720 y({)243 772 y(register)e(int)i(i;)243
-824 y(COMMAND)f(*command;)243 876 y(char)g(*word;)243
-980 y(/*)g(Isolate)g(the)h(command)f(word.)g(*/)243 1032
-y(i)g(=)h(0;)243 1083 y(while)f(\(line[i])g(&&)g(whitespace)g
-(\(line[i]\)\))290 1135 y(i++;)243 1187 y(word)g(=)h(line)f(+)h(i;)243
-1291 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))290
-1343 y(i++;)243 1447 y(if)g(\(line[i]\))290 1499 y(line[i++])g(=)h
-('\\0';)243 1602 y(command)f(=)g(find_command)g(\(word\);)243
-1706 y(if)g(\(!command\))290 1758 y({)338 1810 y(fprintf)g(\(stderr,)g
-("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)338
-1862 y(return)g(\(-1\);)290 1914 y(})243 2017 y(/*)g(Get)h(argument)f
-(to)g(command,)g(if)g(any.)h(*/)243 2069 y(while)f(\(whitespace)f
-(\(line[i]\)\))290 2121 y(i++;)243 2225 y(word)h(=)h(line)f(+)h(i;)243
-2329 y(/*)f(Call)h(the)f(function.)g(*/)243 2381 y(return)g
-(\(\(*\(command->func\)\))e(\(word\)\);)195 2433 y(})195
-2536 y(/*)j(Look)f(up)g(NAME)h(as)f(the)h(name)f(of)h(a)f(command,)g
-(and)h(return)f(a)g(pointer)g(to)h(that)267 2588 y(command.)46
-b(Return)23 b(a)h(NULL)f(pointer)g(if)h(NAME)f(isn't)g(a)h(command)f
-(name.)g(*/)195 2640 y(COMMAND)g(*)p eop
-%%Page: 51 53
-51 52 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(51)195 149 y Ft(find_command)22 b(\(name\))314
-201 y(char)i(*name;)195 253 y({)243 305 y(register)e(int)i(i;)243
-409 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290
-461 y(if)i(\(strcmp)f(\(name,)g(commands[i].name\))f(==)h(0\))338
-513 y(return)g(\(&commands[i]\);)243 616 y(return)g(\(\(COMMAND)f
-(*\)NULL\);)195 668 y(})195 772 y(/*)i(Strip)f(whitespace)f(from)i(the)
-f(start)g(and)h(end)f(of)h(STRING.)46 b(Return)24 b(a)f(pointer)267
-824 y(into)g(STRING.)g(*/)195 876 y(char)g(*)195 928
-y(stripwhite)f(\(string\))314 980 y(char)i(*string;)195
-1032 y({)243 1083 y(register)e(char)i(*s,)f(*t;)243 1187
-y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\))290
-1239 y(;)243 1343 y(if)g(\(*s)h(==)f(0\))290 1395 y(return)g(\(s\);)243
-1499 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;)243 1550
-y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))290
-1602 y(t--;)243 1654 y(*++t)h(=)h('\\0';)243 1758 y(return)f(s;)195
-1810 y(})195 1914 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)195 1966 y(/*)1575
-b(*/)195 2017 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381
-b(*/)195 2069 y(/*)1575 b(*/)195 2121 y(/*)24 b
-(***********************)o(*******)o(********)o(*******)o(*******)o
-(********)o(****)d(*/)195 2225 y(char)i(*command_generator)f
-(__P\(\(const)g(char)i(*,)f(int\)\);)195 2277 y(char)g
-(**fileman_completion)e(__P\(\(const)i(char)g(*,)h(int,)f(int\)\);)195
-2381 y(/*)h(Tell)f(the)g(GNU)h(Readline)f(library)f(how)i(to)g
-(complete.)46 b(We)24 b(want)f(to)h(try)f(to)267 2433
-y(complete)f(on)i(command)f(names)g(if)h(this)f(is)h(the)f(first)g
-(word)g(in)h(the)g(line,)f(or)267 2484 y(on)g(filenames)g(if)g(not.)h
-(*/)195 2536 y(initialize_readline)d(\(\))195 2588 y({)243
-2640 y(/*)i(Allow)g(conditional)g(parsing)g(of)g(the)h(~/.inputrc)e
-(file.)h(*/)p eop
-%%Page: 52 54
-52 53 bop 75 -58 a Fu(52)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(rl_readline_name)21 b(=)j("FileMan";)243 253
-y(/*)f(Tell)h(the)f(completer)g(that)g(we)h(want)f(a)h(crack)f(first.)g
-(*/)243 305 y(rl_attempted_completion_)o(functio)o(n)e(=)j
-(fileman_completion;)195 357 y(})195 461 y(/*)g(Attempt)e(to)i
-(complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23
-b(and)h(END)267 513 y(bound)f(the)g(region)g(of)h(rl_line_buffer)e
-(that)h(contains)g(the)g(word)h(to)267 565 y(complete.)46
-b(TEXT)23 b(is)h(the)f(word)h(to)f(complete.)47 b(We)23
-b(can)h(use)f(the)h(entire)267 616 y(contents)e(of)i(rl_line_buffer)e
-(in)h(case)h(we)f(want)h(to)f(do)h(some)f(simple)267
-668 y(parsing.)46 b(Returnthe)23 b(array)g(of)h(matches,)e(or)i(NULL)f
-(if)h(there)f(aren't)g(any.)g(*/)195 720 y(char)g(**)195
-772 y(fileman_completion)e(\(text,)i(start,)g(end\))314
-824 y(const)g(char)h(*text;)314 876 y(int)g(start,)f(end;)195
-928 y({)243 980 y(char)g(**matches;)243 1083 y(matches)g(=)g(\(char)h
-(**\)NULL;)243 1187 y(/*)f(If)h(this)f(word)h(is)f(at)h(the)f(start)g
-(of)h(the)f(line,)h(then)f(it)g(is)h(a)g(command)314
-1239 y(to)g(complete.)46 b(Otherwise)23 b(it)h(is)f(the)h(name)f(of)h
-(a)f(file)h(in)f(the)h(current)314 1291 y(directory.)f(*/)243
-1343 y(if)g(\(start)g(==)h(0\))290 1395 y(matches)f(=)h
-(rl_completion_matches)d(\(text,)i(command_generator\);)243
-1499 y(return)g(\(matches\);)195 1550 y(})195 1654 y(/*)h(Generator)e
-(function)h(for)g(command)g(completion.)47 b(STATE)23
-b(lets)g(us)267 1706 y(know)g(whether)g(to)g(start)h(from)f(scratch;)g
-(without)g(any)g(state)267 1758 y(\(i.e.)g(STATE)g(==)h(0\),)f(then)g
-(we)h(start)f(at)h(the)f(top)h(of)f(the)h(list.)f(*/)195
-1810 y(char)g(*)195 1862 y(command_generator)f(\(text,)h(state\))314
-1914 y(const)g(char)h(*text;)314 1966 y(int)g(state;)195
-2017 y({)243 2069 y(static)f(int)g(list_index,)g(len;)243
-2121 y(char)g(*name;)243 2225 y(/*)g(If)h(this)f(is)h(a)g(new)f(word)g
-(to)h(complete,)f(initialize)f(now.)47 b(This)314 2277
-y(includes)23 b(saving)g(the)h(length)f(of)g(TEXT)h(for)f(efficiency,)f
-(and)314 2329 y(initializing)h(the)g(index)g(variable)g(to)h(0.)f(*/)
-243 2381 y(if)g(\(!state\))290 2433 y({)338 2484 y(list_index)g(=)g(0;)
-338 2536 y(len)h(=)f(strlen)g(\(text\);)290 2588 y(})p
-eop
-%%Page: 53 55
-53 54 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(53)243 149 y Ft(/*)23 b(Return)g(the)h(next)f(name)g
-(which)h(partially)e(matches)h(from)g(the)314 201 y(command)g(list.)g
-(*/)243 253 y(while)g(\(name)g(=)h(commands[list_index].name)o(\))290
-305 y({)338 357 y(list_index++;)338 461 y(if)g(\(strncmp)f(\(name,)g
-(text,)g(len\))g(==)h(0\))386 513 y(return)f(\(dupstr\(name\)\);)290
-565 y(})243 668 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f
-(NULL.)g(*/)243 720 y(return)g(\(\(char)g(*\)NULL\);)195
-772 y(})195 876 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)195 928 y(/*)1575
-b(*/)195 980 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)195
-1032 y(/*)1575 b(*/)195 1083 y(/*)24 b(***********************)o
-(*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)195
-1187 y(/*)j(String)f(to)g(pass)h(to)f(system)g(\(\).)47
-b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)267
-1239 y(commands.)f(*/)195 1291 y(static)h(char)g(syscom[1024];)195
-1395 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)195
-1447 y(com_list)g(\(arg\))314 1499 y(char)h(*arg;)195
-1550 y({)243 1602 y(if)f(\(!arg\))290 1654 y(arg)h(=)g("";)243
-1758 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)243
-1810 y(return)g(\(system)g(\(syscom\)\);)195 1862 y(})195
-1966 y(com_view)g(\(arg\))314 2017 y(char)h(*arg;)195
-2069 y({)243 2121 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))290
-2173 y(return)g(1;)243 2277 y(sprintf)g(\(syscom,)f("more)i(\045s",)f
-(arg\);)243 2329 y(return)g(\(system)g(\(syscom\)\);)195
-2381 y(})195 2484 y(com_rename)f(\(arg\))314 2536 y(char)i(*arg;)195
-2588 y({)243 2640 y(too_dangerous)e(\("rename"\);)p eop
-%%Page: 54 56
-54 55 bop 75 -58 a Fu(54)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(return)23 b(\(1\);)195 201 y(})195 305 y(com_stat)g(\(arg\))
-314 357 y(char)h(*arg;)195 409 y({)243 461 y(struct)f(stat)g(finfo;)243
-565 y(if)g(\(!valid_argument)f(\("stat",)h(arg\)\))290
-616 y(return)g(\(1\);)243 720 y(if)g(\(stat)g(\(arg,)h(&finfo\))f(==)g
-(-1\))290 772 y({)338 824 y(perror)g(\(arg\);)338 876
-y(return)g(\(1\);)290 928 y(})243 1032 y(printf)g(\("Statistics)f(for)h
-(`\045s':\\n",)g(arg\);)243 1135 y(printf)g(\("\045s)g(has)h(\045d)f
-(link\045s,)g(and)g(is)h(\045d)g(byte\045s)f(in)g(length.\\n",)g(arg,)
-434 1187 y(finfo.st_nlink,)434 1239 y(\(finfo.st_nlink)e(==)j(1\))g(?)f
-("")h(:)g("s",)434 1291 y(finfo.st_size,)434 1343 y(\(finfo.st_size)e
-(==)h(1\))h(?)f("")h(:)g("s"\);)243 1395 y(printf)f(\("Inode)g(Last)g
-(Change)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_ctime\)\);)243
-1447 y(printf)g(\(")143 b(Last)23 b(access)g(at:)g(\045s",)h(ctime)f
-(\(&finfo.st_atime\)\);)243 1499 y(printf)g(\(")95 b(Last)23
-b(modified)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_mtime\)\);)243
-1550 y(return)g(\(0\);)195 1602 y(})195 1706 y(com_delete)f(\(arg\))314
-1758 y(char)i(*arg;)195 1810 y({)243 1862 y(too_dangerous)e
-(\("delete"\);)243 1914 y(return)h(\(1\);)195 1966 y(})195
-2069 y(/*)h(Print)f(out)g(help)h(for)f(ARG,)g(or)h(for)f(all)h(of)f
-(the)h(commands)f(if)g(ARG)h(is)267 2121 y(not)f(present.)g(*/)195
-2173 y(com_help)g(\(arg\))314 2225 y(char)h(*arg;)195
-2277 y({)243 2329 y(register)e(int)i(i;)243 2381 y(int)f(printed)g(=)h
-(0;)243 2484 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290
-2536 y({)338 2588 y(if)i(\(!*arg)f(||)g(\(strcmp)g(\(arg,)g
-(commands[i].name\))f(==)i(0\)\))386 2640 y({)p eop
-%%Page: 55 57
-55 56 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(55)434 149 y Ft(printf)23 b(\("\045s\\t\\t\045s.\\n",)e
-(commands[i].name,)h(commands[i].doc\);)434 201 y(printed++;)386
-253 y(})290 305 y(})243 409 y(if)h(\(!printed\))290 461
-y({)338 513 y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48
-b(Possibilties)22 b(are:\\n",)h(arg\);)338 616 y(for)h(\(i)f(=)h(0;)g
-(commands[i].name;)d(i++\))386 668 y({)434 720 y(/*)i(Print)g(in)h(six)
-f(columns.)g(*/)434 772 y(if)g(\(printed)g(==)h(6\))481
-824 y({)529 876 y(printed)f(=)h(0;)529 928 y(printf)f(\("\\n"\);)481
-980 y(})434 1083 y(printf)g(\("\045s\\t",)f(commands[i].name\);)434
-1135 y(printed++;)386 1187 y(})338 1291 y(if)i(\(printed\))386
-1343 y(printf)f(\("\\n"\);)290 1395 y(})243 1447 y(return)g(\(0\);)195
-1499 y(})195 1602 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)195
-1654 y(com_cd)f(\(arg\))314 1706 y(char)h(*arg;)195 1758
-y({)243 1810 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))290
-1862 y({)338 1914 y(perror)g(\(arg\);)338 1966 y(return)g(1;)290
-2017 y(})243 2121 y(com_pwd)g(\(""\);)243 2173 y(return)g(\(0\);)195
-2225 y(})195 2329 y(/*)h(Print)f(out)g(the)h(current)f(working)f
-(directory.)h(*/)195 2381 y(com_pwd)g(\(ignore\))314
-2433 y(char)h(*ignore;)195 2484 y({)243 2536 y(char)f(dir[1024],)g(*s;)
-243 2640 y(s)g(=)h(getcwd)f(\(dir,)g(sizeof\(dir\))g(-)g(1\);)p
-eop
-%%Page: 56 58
-56 57 bop 75 -58 a Fu(56)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(if)23 b(\(s)h(==)f(0\))290 201 y({)338 253 y(printf)g
-(\("Error)g(getting)g(pwd:)g(\045s\\n",)g(dir\);)338
-305 y(return)g(1;)290 357 y(})243 461 y(printf)g(\("Current)f
-(directory)h(is)h(\045s\\n",)f(dir\);)243 513 y(return)g(0;)195
-565 y(})195 668 y(/*)h(The)f(user)g(wishes)g(to)h(quit)f(using)g(this)h
-(program.)46 b(Just)24 b(set)f(DONE)267 720 y(non-zero.)f(*/)195
-772 y(com_quit)h(\(arg\))314 824 y(char)h(*arg;)195 876
-y({)243 928 y(done)f(=)h(1;)243 980 y(return)f(\(0\);)195
-1032 y(})195 1135 y(/*)h(Function)e(which)i(tells)f(you)g(that)g(you)h
-(can't)f(do)h(this.)f(*/)195 1187 y(too_dangerous)f(\(caller\))314
-1239 y(char)i(*caller;)195 1291 y({)243 1343 y(fprintf)f(\(stderr,)457
-1395 y("\045s:)h(Too)f(dangerous)g(for)g(me)h(to)g(distribute.\\n")457
-1447 y(caller\);)243 1499 y(fprintf)f(\(stderr,)f("Write)h(it)h
-(yourself.\\n"\);)195 1550 y(})195 1654 y(/*)g(Return)f(non-zero)f(if)i
-(ARG)f(is)h(a)g(valid)f(argument)g(for)g(CALLER,)267
-1706 y(else)g(print)g(an)h(error)f(message)g(and)g(return)g(zero.)g(*/)
-195 1758 y(int)195 1810 y(valid_argument)f(\(caller,)h(arg\))314
-1862 y(char)h(*caller,)e(*arg;)195 1914 y({)243 1966
-y(if)h(\(!arg)g(||)h(!*arg\))290 2017 y({)338 2069 y(fprintf)f
-(\(stderr,)g("\045s:)g(Argument)g(required.\\n",)f(caller\);)338
-2121 y(return)h(\(0\);)290 2173 y(})243 2277 y(return)g(\(1\);)195
-2329 y(})p eop
-%%Page: 57 59
-57 58 bop 75 -58 a Fu(Concept)15 b(Index)1466 b(57)75
-149 y Fq(Concept)27 b(Index)75 321 y Fs(C)75 382 y Ff(command)14
-b(editing)e Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(1)75 511 y Fs(E)75 572 y Ff(editing)15 b(command)f(lines)f
-Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Ff(1)75 702 y Fs(I)75
-763 y Ff(initiali)q(zati)q(on)16 b(\014le,)e(readline)t
-Fe(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)17 b Ff(4)75 808 y(in)o(teraction,)e(readline)5
-b Fe(.)j(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(1)75
-938 y Fs(K)75 999 y Ff(kill)d(ring)8 b Fe(.)f(.)f(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20
-b Ff(3)75 1044 y(killing)c(text)9 b Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(2)1012 321
-y Fs(N)1012 390 y Ff(notation,)15 b(readline)7 b Fe(.)h(.)e(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(1)1012 539 y Fs(R)1012
-608 y Ff(readline,)15 b(function)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)21 b Ff(21)1012 757 y Fs(V)1012 826 y Ff(v)n(ariables,)15
-b(readline)t Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17
-b Ff(4)1012 976 y Fs(Y)1012 1044 y Ff(y)o(anking)e(text)t
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17
-b Ff(2)p eop
-%%Page: 58 60
-58 59 bop 75 -58 a Fu(58)1299 b(GNU)15 b(Readline)h(Library)p
-eop
-%%Page: 59 61
-59 60 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
-b(59)75 149 y Fq(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
-b(Index)p 79 307 21 3 v 75 369 a Fd(_rl_digit_)o(p)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(36)75 415 y Fd(_rl_digit_)o(va)o(lue)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)20 b Ff(37)75 462 y Fd(_rl_lowerc)o(as)o(e_p)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(36)75
-508 y Fd(_rl_to_low)o(er)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)22 b Ff(36)75 554 y Fd(_rl_to_upp)o(er)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(36)75 600 y Fd(_rl_upperc)o(as)o(e_p)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)20 b Ff(36)75 733 y Fs(A)75 794 y
-Fd(abort)11 b(\(C-g\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)17 b Ff(17)75 841 y Fd(accept-lin)o(e)10
-b(\(Newline)f(or)j(Return\))6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)19 b Ff(12)75 973 y Fs(B)75 1035 y Fd(backward-c)o(ha)o(r)10
-b(\(C-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(12)75
-1081 y Fd(backward-d)o(el)o(ete)o(-c)o(har)9 b(\(Rubout\))e
-Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(14)75 1127 y Fd(backward-k)o(il)o(l-l)o(in)o(e)10
-b(\(C-x)h(Rubout\))e Fe(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(15)75 1174 y Fd(backward-k)o(il)o(l-w)o(or)o(d)10
-b(\(M-)501 1172 y Fn(h)p 512 1146 73 2 v 512 1174 a Fm(DEL)p
-512 1181 V 583 1172 a Fn(i)598 1174 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23 b Ff(15)75 1220 y
-Fd(backward-w)o(or)o(d)10 b(\(M-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21
-b Ff(12)75 1266 y Fd(beginning-)o(of)o(-hi)o(st)o(ory)9
-b(\(M-<\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)25 b Ff(13)75 1312 y Fd(beginning-)o(of)o(-li)o(ne)9
-b(\(C-a\))c Fe(.)t(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(12)75 1359 y(b)q(ell-st)o(yle)7
-b Fe(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)20 b Ff(5)75 1490 y Fs(C)75 1552 y Fd(call-last-)o(kb)o(d-m)
-o(ac)o(ro)9 b(\(C-x)j(e\))5 b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)18 b Ff(17)75 1598 y Fd(capitalize)o(-w)o(ord)9
-b(\(M-c\))d Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(14)75 1644 y Fd(character-)o(se)
-o(arc)o(h)10 b(\(C-]\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(18)75
-1691 y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9
-b(\(M-C-]\))e Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)20
-b Ff(18)75 1737 y Fd(clear-scre)o(en)9 b(\(C-l\))g Fe(.)t(.)d(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)21 b Ff(12)75 1783 y(commen)o(t-b)q(egin)9
-b Fe(.)f(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)21
-b Ff(5)75 1829 y Fd(complete)10 b(\()265 1827 y Fn(h)p
-276 1801 74 2 v 276 1829 a Fm(T)m(AB)p 276 1837 V 348
-1827 a Fn(i)363 1829 y Fd(\))f Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-22 b Ff(16)75 1875 y(completion-query-i)q(tems)t Fe(.)9
-b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(5)75 1922 y(con)o(v)o(ert-meta)10
-b Fe(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
-b Ff(5)75 1968 y Fd(copy-backw)o(ar)o(d-w)o(or)o(d)10
-b(\(\))c Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)75 2014 y Fd(copy-forwa)o(rd)o
-(-wo)o(rd)9 b(\(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(16)75
-2060 y Fd(copy-regio)o(n-)o(as-)o(ki)o(ll)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(15)75 2193 y Fs(D)75 2255 y Fd(delete-cha)o(r)10
-b(\(C-d\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(14)75
-2301 y Fd(delete-cha)o(r-)o(or-)o(li)o(st)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(17)75 2347 y Fd(delete-hor)o(iz)o(ont)o(al)o
-(-sp)o(ace)9 b(\(\))i Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)25 b Ff(15)75 2393 y Fd(digit-argu)o(me)o(nt)9
-b(\()p Fc(M-0)p Fd(,)i Fc(M-1)p Fd(,)h(...)f Fc(M--)p
-Fd(\))c Fe(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(16)75
-2439 y(disable-comple)q(tion)9 b Fe(.)g(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)21 b Ff(5)75 2486 y Fd(do-upperca)o(se)o(-ve)o(rs)o(ion)9
-b(\(M-a,)i(M-b,)g(M-)p Fb(x)p Fd(,)h(...)o(\))159 2531
-y Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(17)75 2578 y Fd(downcase-w)o(or)o(d)10
-b(\(M-l\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(14)75
-2624 y Fd(dump-funct)o(io)o(ns)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)22 b Ff(18)75 2670 y Fd(dump-macro)o(s)10 b(\(\))g
-Fe(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Ff(18)1012
-307 y Fd(dump-variab)o(le)o(s)10 b(\(\))e Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)23 b Ff(18)1012 449 y Fs(E)1012 514 y Ff(editing-mo)q(de)12
-b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(5)1012 562 y Fd(emacs-editi)o(ng)o(-mo)o(de)9 b(\(C-e\))t
-Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)18 b Ff(18)1012 610 y(enable-k)o(eypad)9 b Fe(.)g(.)d(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(5)1012
-658 y Fd(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))e Fe(.)e(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23
-b Ff(17)1012 706 y Fd(end-of-hist)o(or)o(y)10 b(\(M->\))d
-Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 754 y Fd(end-of-line)9
-b(\(C-e\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(12)1012
-802 y Fd(exchange-po)o(in)o(t-a)o(nd)o(-ma)o(rk)9 b(\(C-x)j(C-x\))c
-Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(18)1012
-850 y(expand-tilde)6 b Fe(.)j(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)19 b Ff(5)1012 991 y Fs(F)1012 1056
-y Fd(forward-bac)o(kw)o(ard)o(-d)o(ele)o(te)o(-ch)o(ar)9
-b(\(\))f Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
-b Ff(14)1012 1104 y Fd(forward-cha)o(r)10 b(\(C-f\))f
-Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1152 y
-Fd(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 b(\(C-s\))e
-Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
-b Ff(13)1012 1200 y Fd(forward-wor)o(d)10 b(\(M-f\))f
-Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1334 y
-Fs(H)1012 1400 y Ff(history-preserv)o(e-p)q(oi)q(n)o(t)8
-b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Ff(5)1012 1448 y
-Fd(history-sea)o(rc)o(h-b)o(ac)o(kwa)o(rd)9 b(\(\))i
-Fe(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)25
-b Ff(13)1012 1496 y Fd(history-sea)o(rc)o(h-f)o(or)o(war)o(d)10
-b(\(\))s Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Ff(13)1012 1543 y(horizon)o(tal-scrol)q(l-mo)r(de)6
-b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(6)1012 1678 y
-Fs(I)1012 1743 y Ff(input-meta)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012 1791
-y Fd(insert-comm)o(en)o(t)10 b(\(M-#\))d Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(18)1012 1839 y Fd(insert-comp)o(le)o(tio)o(ns)9
-b(\(M-*\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)18 b Ff(16)1012 1887 y(isearc)o(h-terminators)t
-Fe(.)8 b(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)16 b Ff(6)1012
-2021 y Fs(K)1012 2087 y Ff(k)o(eymap)9 b Fe(.)e(.)f(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
-b Ff(6)1012 2135 y Fd(kill-line)10 b(\(C-k\))f Fe(.)d(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)24 b Ff(15)1012 2183 y Fd(kill-region)9
-b(\(\))i Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(15)1012 2231 y Fd(kill-whole-)o(li)o(ne)9 b(\(\))g
-Fe(.)c(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(15)1012 2278 y
-Fd(kill-word)10 b(\(M-d\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-24 b Ff(15)1012 2413 y Fs(M)1012 2478 y Ff(mark-mo)q(di\014ed-li)q(nes)
-8 b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012
-2526 y(mark-symlink)o(ed-di)q(rectori)q(es)14 b Fe(.)6
-b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)23 b Ff(6)1012 2574 y(matc)o(h-hidden-\014l)q(es)14
-b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Ff(6)1012
-2622 y Fd(menu-comple)o(te)9 b(\(\))g Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)23 b Ff(16)1012 2670 y(meta-\015ag)t Fe(.)8 b(.)e(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18
-b Ff(6)p eop
-%%Page: 60 62
-60 61 bop 75 -58 a Fu(60)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fs(N)75 210 y Fd(next-histo)o(ry)9 b(\(C-n\))g
-Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(13)75 256 y Fd(non-increm)o(en)o
-(tal)o(-f)o(orw)o(ard)o(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9
-b(\(M-n\))159 302 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(13)75
-347 y Fd(non-increm)o(en)o(tal)o(-r)o(eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o
-(st)o(ory)9 b(\(M-p\))159 393 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(13)75 515 y Fs(O)75 576 y Ff(output-meta)5 b Fe(.)i(.)f(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(6)75
-622 y Fd(overwrite-)o(mo)o(de)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)22 b Ff(15)75 744 y Fs(P)75 805 y Ff(page-completions)14
-b Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23
-b Ff(7)75 851 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9
-b(\(M-?\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)25 b Ff(16)75 897 y Fd(prefix-met)o(a)10 b(\()324
-895 y Fn(h)p 335 868 70 2 v 335 897 a Fm(ESC)p 335 904
-V 402 895 a Fn(i)417 897 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23
-b Ff(17)75 942 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))c
-Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(12)75 1072 y Fs(Q)75 1133 y Fd(quoted-ins)o(er)o
-(t)10 b(\(C-q)h(or)h(C-v\))c Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(14)75 1263 y Fs(R)75
-1323 y Fd(re-read-in)o(it)o(-fi)o(le)9 b(\(C-x)i(C-r\))5
-b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Ff(17)75 1369 y Fd(readline)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(21)75
-1415 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(12)75 1461 y Fd(reverse-se)o(ar)o(ch-)o(hi)o
-(sto)o(ry)9 b(\(C-r\))g Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)23 b Ff(13)75 1506 y Fd(revert-lin)o(e)10
-b(\(M-r\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(17)75
-1552 y Fd(rl_add_def)o(un)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)22 b Ff(28)75 1598 y Fd(rl_add_fun)o(ma)o(p_e)o(nt)o(ry)
-t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(31)75 1643 y Fd(rl_add_und)o(o)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(32)75 1689 y Fd(rl_alphabe)o(ti)o(c)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(36)75 1735 y Fd(rl_already)o(_p)o(rom)o
-(pt)o(ed)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(25)75
-1781 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_f)o(unc)o(ti)o(on)t
-Fe(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(43)75
-1826 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_o)o(ver)6
-b Fe(.)s(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(46)75 1872 y Fd(rl_basic_q)o(uo)o(te_)o(ch)o(ara)o(cte)o(rs)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-22 b Ff(45)75 1918 y Fd(rl_basic_w)o(or)o(d_b)o(re)o(ak_)o(cha)o(ra)o
-(cte)o(rs)5 b Fe(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Ff(45)75 1964 y Fd(rl_begin_u)o(nd)o(o_g)o(ro)o(up)t
-Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(32)75 2009 y Fd(rl_bind_ke)o(y)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(30)75 2055 y Fd(rl_bind_ke)o(y_)o(in_)o(ma)o(p)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(30)75 2101 y
-Fd(rl_binding)o(_k)o(eym)o(ap)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
-b Ff(27)75 2146 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(ins)o(ta)o(ll)7
-b Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(38)75 2192 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
-b Ff(38)75 2238 y Fd(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(38)75 2284 y Fd(rl_catch_s)o(ig)o(nal)o(s)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(40)75
-2329 y Fd(rl_catch_s)o(ig)o(win)o(ch)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)19 b Ff(40)75 2375 y Fd(rl_char_is)o(_q)o(uot)o(ed)o(_p)t
-Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(44)75 2421 y Fd(rl_cleanup)o(_a)o
-(fte)o(r_)o(sig)o(nal)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(40)75 2467 y
-Fd(rl_clear_m)o(es)o(sag)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-19 b Ff(33)75 2512 y Fd(rl_clear_p)o(en)o(din)o(g_)o(inp)o(ut)8
-b Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)24 b Ff(35)1012 149 y Fd(rl_clear_si)o(gn)o(als)6
-b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(41)1012
-196 y Fd(rl_complete)6 b Fe(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)24 b Ff(42)1012 242 y Fd(rl_complete)o(_i)o(nte)o(rn)o(al)s
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(42)1012 288 y Fd(rl_complete)o(r_)o
-(quo)o(te)o(_ch)o(ar)o(act)o(ers)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)20 b Ff(45)1012 335 y Fd(rl_complete)o(r_)o(wor)o
-(d_)o(bre)o(ak)o(_ch)o(ara)o(ct)o(ers)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)
-25 b Ff(45)1012 381 y Fd(rl_completi)o(on)o(_ap)o(pe)o(nd_)o(ch)o(ara)o
-(cte)o(r)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(45)1012 427 y Fd(rl_completi)o(on)o(_di)o(sp)o(lay)o(_m)o(atc)o
-(hes)o(_h)o(ook)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)25 b
-Ff(45)1012 474 y Fd(rl_completi)o(on)o(_en)o(tr)o(y_f)o(un)o(cti)o(on)s
-Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(42,)c(43)1012
-520 y Fd(rl_completi)o(on)o(_ma)o(rk)o(_sy)o(ml)o(ink)o(_di)o(rs)t
-Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Ff(46)1012
-566 y Fd(rl_completi)o(on)o(_ma)o(tc)o(hes)8 b Fe(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(43)1012 613 y Fd(rl_completi)o(on)o(_mo)o(de)t Fe(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(43)1012 659 y Fd(rl_completi)o(on)o(_qu)
-o(er)o(y_i)o(te)o(ms)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(45)1012 705 y Fd(rl_completi)o(on)o(_su)
-o(pp)o(res)o(s_)o(app)o(end)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)20 b Ff(46)1012 752 y Fd(rl_completi)o(on)o(_ty)o(pe)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(46)1012 798 y
-Fd(rl_copy_key)o(ma)o(p)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)21 b Ff(29)1012 844 y Fd(rl_copy_tex)o(t)6 b Fe(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(34)1012 891 y
-Fd(rl_crlf)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(33)1012 937 y Fd(rl_delete_t)o(ex)o(t)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b
-Ff(34)1012 983 y Fd(rl_deprep_t)o(er)o(m_f)o(un)o(cti)o(on)7
-b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)24 b Ff(26)1012 1030 y Fd(rl_deprep_t)o(er)o(min)o(al)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(35)1012 1076
-y Fd(rl_ding)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(36)1012 1122 y Fd(rl_director)o(y_)o
-(com)o(pl)o(eti)o(on)o(_ho)o(ok)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(44)1012 1169 y Fd(rl_discard_)o(ke)o
-(yma)o(p)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(29)1012
-1215 y Fd(rl_dispatch)o(in)o(g)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)21 b Ff(25)1012 1261 y Fd(rl_display_)o(ma)o(tch)o(_l)o
-(ist)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)25 b Ff(36)1012 1308 y Fd(rl_do_undo)8
-b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(32)1012 1354 y Fd(rl_done)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(24)1012
-1400 y Fd(rl_editing_)o(mo)o(de)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)21 b Ff(28)1012 1447 y Fd(rl_end)5 b Fe(.)t(.)h(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
-b Ff(24)1012 1493 y Fd(rl_end_undo)o(_g)o(rou)o(p)6 b
-Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(32)1012 1539
-y Fd(rl_erase_em)o(pt)o(y_l)o(in)o(e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18
-b Ff(25)1012 1586 y Fd(rl_event_ho)o(ok)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(26)1012 1632 y Fd(rl_execute_)o(ne)o
-(xt)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(35)1012 1678 y Fd(rl_executin)o(g_)o(key)o(ma)o(p)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(26)1012 1725 y Fd(rl_executin)o(g_)
-o(mac)o(ro)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(27)1012
-1771 y Fd(rl_expand_p)o(ro)o(mpt)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)20 b Ff(34)1012 1817 y Fd(rl_explicit)o(_a)o(rg)7
-b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(28)1012
-1864 y Fd(rl_extend_l)o(in)o(e_b)o(uf)o(fer)8 b Fe(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(36)1012 1910 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(des)o
-(ire)o(d)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(46)1012 1956 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(fun)o
-(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
-b Ff(43)1012 2003 y Fd(rl_filename)o(_d)o(equ)o(ot)o(ing)o(_f)o(unc)o
-(tio)o(n)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(44)1012 2049 y Fd(rl_filename)o(_q)o(uot)o(e_)o(cha)o(ra)o(cte)o
-(rs)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(45)1012 2095 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_d)o(es)o(ire)o
-(d)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Ff(46)1012 2142 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_f)o(un)o(cti)o
-(on)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(44)1012 2188 y Fd(rl_forced_u)o(pd)o(ate)o(_d)o(isp)o(la)o(y)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)23 b Ff(33)1012 2234 y Fd(rl_free_lin)o(e_)o(sta)o(te)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(40)1012 2281
-y Fd(rl_free_und)o(o_)o(lis)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-19 b Ff(32)1012 2327 y Fd(rl_function)o(_d)o(ump)o(er)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(31)1012 2373
-y Fd(rl_function)o(_o)o(f_k)o(ey)o(seq)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(31)1012 2420 y Fd(rl_funmap_n)o(am)o(es)7 b Fe(.)s(.)f(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)21 b Ff(31)1012 2466 y Fd(rl_generic_)o(bi)o(nd)7
-b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(30)1012
-2512 y Fd(rl_get_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)22 b Ff(29)p eop
-%%Page: 61 63
-61 62 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
-b(61)75 149 y Fd(rl_get_key)o(ma)o(p_b)o(y_)o(nam)o(e)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(29)75 196 y Fd(rl_get_key)o(ma)o(p_n)o(am)o(e)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(29)75 242 y Fd(rl_get_scr)o(ee)
-o(n_s)o(iz)o(e)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18
-b Ff(41)75 288 y Fd(rl_get_ter)o(mc)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)21 b Ff(37)75 335 y Fd(rl_getc)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Ff(35)75 381 y Fd(rl_getc_fu)o(nc)o(tio)o(n)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(26)75
-427 y Fd(rl_gnu_rea)o(dl)o(ine)o(_p)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)19 b Ff(25)75 474 y Fd(rl_ignore_)o(co)o(mpl)o(et)o(ion)o(_du)o(pl)
-o(ica)o(te)o(s)5 b Fe(.)s(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18
-b Ff(46)75 520 y Fd(rl_ignore_)o(so)o(me_)o(co)o(mpl)o(eti)o(on)o(s_f)o
-(un)o(cti)o(on)7 b Fe(.)g(.)f(.)g(.)g(.)g(.)24 b Ff(44)75
-566 y Fd(rl_inhibit)o(_c)o(omp)o(le)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(47)75 613 y Fd(rl_initial)o(iz)o(e)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(36)75 659 y Fd(rl_insert_)o(co)o(mpl)o
-(et)o(ion)o(s)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(43)75 705 y Fd(rl_insert_)o(te)
-o(xt)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(34)75 752 y Fd(rl_instrea)o(m)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(25)75 798 y Fd(rl_invokin)o(g_)o
-(key)o(se)o(qs)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(31)75
-844 y Fd(rl_invokin)o(g_)o(key)o(se)o(qs_)o(in_)o(ma)o(p)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
-b Ff(31)75 891 y Fd(rl_kill_te)o(xt)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(34)75 937 y Fd(rl_last_fu)o(nc)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(26)75 983 y Fd(rl_library)o(_v)o(ers)o(io)o(n)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(25)75 1030 y
-Fd(rl_line_bu)o(ff)o(er)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)21 b Ff(24)75 1076 y Fd(rl_list_fu)o(nm)o(ap_)o(na)o(mes)s
-Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(31)75 1122 y Fd(rl_macro_b)o(in)o(d)9
-b Fe(.)s(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
-b Ff(37)75 1169 y Fd(rl_macro_d)o(um)o(per)6 b Fe(.)t(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)20 b Ff(37)75 1215 y Fd(rl_make_ba)o(re)o(_ke)o(ym)
-o(ap)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(29)75 1261
-y Fd(rl_make_ke)o(ym)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)21 b Ff(29)75 1308 y Fd(rl_mark)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17
-b Ff(24)75 1354 y Fd(rl_message)7 b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Ff(33)75 1400 y Fd(rl_modifyi)o(ng)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(32)75 1447 y Fd(rl_named_f)o(un)o(cti)o(on)5 b Fe(.)s(.)i(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)19 b Ff(31)75 1493 y Fd(rl_num_cha)o(rs)o(_to)o(_r)o
-(ead)s Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(24)75 1539 y Fd(rl_numeric)o(_a)
-o(rg)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(28)75 1586 y Fd(rl_on_new_)o(li)o(ne)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(33)75 1632 y Fd(rl_on_new_)o(li)o(ne_)o
-(wi)o(th_)o(pro)o(mp)o(t)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(33)75 1678 y Fd(rl_outstre)o(am)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(26)75 1725 y Fd(rl_parse_a)o(nd)o(_bi)o(nd)5 b Fe(.)s(.)i(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)19 b Ff(31)75 1771 y Fd(rl_pending)o(_i)o(npu)o(t)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(24)75
-1817 y Fd(rl_point)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(24)75 1864 y Fd(rl_possibl)o(e_)o
-(com)o(pl)o(eti)o(ons)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(42)75 1910 y
-Fd(rl_pre_inp)o(ut)o(_ho)o(ok)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
-b Ff(26)75 1956 y Fd(rl_prep_te)o(rm)o(_fu)o(nc)o(tio)o(n)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(26)75 2003 y Fd(rl_prep_te)o(rm)o(ina)o(l)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(35)75
-2049 y Fd(rl_prompt)8 b Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)24 b Ff(25)75 2095 y Fd(rl_push_ma)o(cr)o(o_i)o(np)
-o(ut)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(34)75 2142
-y Fd(rl_read_in)o(it)o(_fi)o(le)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-19 b Ff(31)75 2188 y Fd(rl_read_ke)o(y)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(34)75 2234 y
-Fd(rl_readlin)o(e_)o(nam)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-19 b Ff(25)75 2281 y Fd(rl_readlin)o(e_)o(sta)o(te)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(27)75 2327
-y Fd(rl_readlin)o(e_)o(ver)o(si)o(on)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17
-b Ff(25)75 2373 y Fd(rl_redispl)o(ay)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(33)75 2420 y Fd(rl_redispl)o(ay)o(_fu)o
-(nc)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(26)75 2466 y
-Fd(rl_replace)o(_l)o(ine)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-20 b Ff(36)75 2512 y Fd(rl_reset_a)o(ft)o(er_)o(si)o(gna)o(l)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(40)1012 149 y Fd(rl_reset_li)o(ne)o(_st)o(at)o
-(e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(33)1012 195
-y Fd(rl_reset_te)o(rm)o(ina)o(l)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-19 b Ff(35)1012 241 y Fd(rl_resize_t)o(er)o(min)o(al)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 287 y
-Fd(rl_restore_)o(pr)o(omp)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19
-b Ff(34)1012 333 y Fd(rl_save_pro)o(mp)o(t)8 b Fe(.)s(.)e(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)21 b Ff(33)1012 379 y Fd(rl_set_key)8
-b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(30)1012 424 y Fd(rl_set_keyb)o(oa)o(rd_)o(in)o(put)o(_t)o(ime)o
-(out)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20
-b Ff(35)1012 470 y Fd(rl_set_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(29)1012 516 y Fd(rl_set_pare)o(n_)o
-(bli)o(nk)o(_ti)o(me)o(out)7 b Fe(.)t(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)22 b Ff(37)1012 562 y Fd(rl_set_prom)o(pt)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(34)1012 608 y Fd(rl_set_scre)o(en)o(_si)o(ze)t Fe(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 654 y Fd(rl_set_sign)o(al)o(s)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b
-Ff(41)1012 700 y Fd(rl_show_cha)o(r)6 b Fe(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(33)1012 745 y Fd(rl_special_)o(pr)o
-(efi)o(xe)o(s)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(45)1012
-791 y Fd(rl_startup_)o(ho)o(ok)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)21 b Ff(26)1012 837 y Fd(rl_stuff_ch)o(ar)8 b
-Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(35)1012 883 y Fd(rl_terminal)o(_n)o(ame)6 b Fe(.)s(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)20 b Ff(25)1012 929 y Fd(rl_tty_set_)o(de)o(fau)o(lt)o
-(_bi)o(nd)o(ing)o(s)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)21 b Ff(35)1012 975 y Fd(rl_unbind_c)o(om)o(man)o(d_)o
-(in_)o(ma)o(p)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)23 b Ff(30)1012 1020 y Fd(rl_unbind_f)o(un)o(cti)o
-(on)o(_in)o(_m)o(ap)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(30)1012 1066 y Fd(rl_unbind_k)o(ey)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(30)1012 1112 y Fd(rl_unbind_k)o(ey)o(_in)o(_m)o(ap)s
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(30)1012 1158 y Fd(rl_username)o(_c)o
-(omp)o(le)o(tio)o(n_)o(fun)o(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)18 b Ff(43)1012 1204 y Fd(rl_variable)o(_b)o(ind)6
-b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(37)1012
-1250 y Fd(rl_variable)o(_d)o(ump)o(er)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)19 b Ff(37)1012 1380 y Fs(S)1012 1441 y Fd(self-insert)9
-b(\(a,)j(b,)g(A,)g(1,)g(!,)g(...)o(\))6 b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1487 y Fd(set-mark)10
-b(\(C-@\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(17)1012 1533 y(sho)o(w-all-if-am)o(bigu)q(ous)14
-b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(7)1012 1579
-y Fd(start-kbd-m)o(ac)o(ro)9 b(\(C-x)j(\(\))c Fe(.)d(.)i(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
-b Ff(17)1012 1701 y Fs(T)1012 1763 y Fd(tab-insert)9
-b(\(M-)1281 1761 y Fn(h)p 1292 1735 74 2 v 1292 1763
-a Fm(T)m(AB)p 1292 1770 V 1364 1761 a Fn(i)1379 1763
-y Fd(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(14)1012 1808
-y Fd(tilde-expan)o(d)10 b(\(M-~\))f Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
-b Ff(17)1012 1854 y Fd(transpose-c)o(ha)o(rs)9 b(\(C-t\))d
-Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1900 y Fd(transpose-w)o(or)o(ds)9
-b(\(M-t\))d Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 2030 y
-Fs(U)1012 2092 y Fd(undo)12 b(\(C-_)f(or)h(C-x)g(C-u\))c
-Fe(.)t(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(17)1012 2137 y Fd(universal-a)o(rg)o
-(ume)o(nt)9 b(\(\))d Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(16)1012
-2183 y Fd(unix-line-d)o(is)o(car)o(d)10 b(\(C-u\))5 b
-Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)18 b Ff(15)1012 2229 y Fd(unix-word-r)o(ub)o(out)9
-b(\(C-w\))d Fe(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)1012 2275 y Fd(upcase-word)9
-b(\(M-u\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(14)1012
-2405 y Fs(V)1012 2466 y Fd(vi-editing-)o(mo)o(de)9 b(\(M-C-j\))c
-Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)18 b Ff(18)1012 2512 y(visible-stats)c Fe(.)6
-b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
-b Ff(7)p eop
-%%Page: 62 64
-62 63 bop 75 -58 a Fu(62)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fs(Y)75 242 y Fd(yank)11 b(\(C-y\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Ff(16)1012
-149 y Fd(yank-last-a)o(rg)9 b(\(M-.)i(or)h(M-_\))c Fe(.)f(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(13)1012 196 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))d
-Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 242 y Fd(yank-pop)10
-b(\(M-y\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(16)p eop
-%%Page: -1 65
--1 64 bop 1862 -58 a Fu(i)75 149 y Fq(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fs(1)67 b(Command)22 b(Line)i(Editing)d
-Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h
-(.)f(.)g(.)g(.)42 b Fs(1)224 389 y Fu(1.1)j(In)o(tro)q(duction)16
-b(to)f(Line)h(Editing)e Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)27 b Fu(1)224 444 y(1.2)45 b(Readline)16 b(In)o(teraction)8
-b Fl(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)23 b Fu(1)374 499 y(1.2.1)44 b(Readline)16
-b(Bare)f(Essen)o(tials)f Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fu(1)374 553 y(1.2.2)44 b(Readline)16 b(Mo)o(v)o(emen)o(t)e(Commands)
-7 b Fl(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)21 b Fu(2)374 608 y(1.2.3)44 b(Readline)16 b(Killing)i(Commands)
-11 b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)25 b Fu(2)374 663 y(1.2.4)44 b(Readline)16
-b(Argumen)o(ts)c Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
-b Fu(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
-(the)f(History)e Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fu(3)224 773 y(1.3)45 b(Readline)16 b(Init)h(File)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)29 b Fu(4)374 827 y(1.3.1)44 b(Readline)16
-b(Init)g(File)h(Syn)o(tax)7 b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fu(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
-b Fl(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)19 b Fu(9)374 937 y(1.3.3)44 b(Sample)16
-b(Init)g(File)11 b Fl(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)26 b Fu(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)g(Commands)
-6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(12)374
-1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fu(12)374 1101 y(1.4.2)44
-b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
-b Fl(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fu(12)374 1156 y(1.4.3)44
-b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fl(.)8
-b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
-b Fu(14)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
-b Fl(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fu(15)374
-1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
-Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
-b Fu(16)374 1320 y(1.4.6)44 b(Letting)15 b(Readline)i(T)o(yp)q(e)e(F)l
-(or)g(Y)l(ou)10 b Fl(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)25 b Fu(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15
-b(Macros)6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
-b Fu(17)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
-b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-22 b Fu(17)224 1485 y(1.5)45 b(Readline)16 b(vi)g(Mo)q(de)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)28 b Fu(18)75 1606 y Fs(2)67 b(Programming)23
-b(with)g(GNU)f(Readline)12 b Fa(.)f(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)35
-b Fs(21)224 1675 y Fu(2.1)45 b(Basic)16 b(Beha)o(vior)8
-b Fl(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Fu(21)224 1729 y(2.2)45
-b(Custom)14 b(F)l(unctions)7 b Fl(.)i(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22 b Fu(22)374
-1784 y(2.2.1)44 b(Readline)16 b(T)o(yp)q(edefs)9 b Fl(.)g(.)e(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)24 b Fu(23)374 1839 y(2.2.2)44
-b(W)l(riting)16 b(a)e(New)i(F)l(unction)6 b Fl(.)i(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-21 b Fu(23)224 1894 y(2.3)45 b(Readline)16 b(V)l(ariables)g
-Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)29 b Fu(24)224 1949 y(2.4)45 b(Readline)16
-b(Con)o(v)o(enience)h(F)l(unctions)7 b Fl(.)i(.)e(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-23 b Fu(28)374 2003 y(2.4.1)44 b(Naming)15 b(a)g(F)l(unction)e
-Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fu(28)374
-2058 y(2.4.2)44 b(Selecting)17 b(a)e(Keymap)6 b Fl(.)h(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)21 b Fu(29)374 2113 y(2.4.3)44 b(Binding)17
-b(Keys)5 b Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)20 b Fu(30)374 2168 y(2.4.4)44 b(Asso)q(ciating)16
-b(F)l(unction)g(Names)f(and)g(Bindings)8 b Fl(.)h(.)f(.)f(.)h(.)f(.)h
-(.)23 b Fu(31)374 2222 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f
-Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b
-Fu(32)374 2277 y(2.4.6)44 b(Redispla)o(y)10 b Fl(.)e(.)g(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
-b Fu(33)374 2332 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)7
-b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fu(34)374 2387 y(2.4.8)44 b(Character)14 b(Input)c
-Fl(.)f(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25
-b Fu(34)374 2442 y(2.4.9)44 b(T)l(erminal)16 b(Managemen)o(t)11
-b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(35)374 2496 y(2.4.10)43
-b(Utilit)o(y)17 b(F)l(unctions)c Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)28 b Fu(36)374 2551 y(2.4.11)43 b(Miscellaneous)18
-b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(37)374
-2606 y(2.4.12)43 b(Alternate)16 b(In)o(terface)f Fl(.)7
-b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 b Fu(37)374 2661
-y(2.4.13)43 b(A)16 b(Readline)g(Example)9 b Fl(.)f(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)24 b Fu(38)p eop
-%%Page: -2 66
--2 65 bop 75 -58 a Fu(ii)1321 b(GNU)15 b(Readline)h(Library)224
-42 y(2.5)45 b(Readline)16 b(Signal)h(Handling)12 b Fl(.)c(.)g(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(39)224 96
-y(2.6)45 b(Custom)14 b(Completers)f Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)28 b Fu(41)374
-151 y(2.6.1)44 b(Ho)o(w)14 b(Completing)i(W)l(orks)10
-b Fl(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fu(41)374 206 y(2.6.2)44
-b(Completion)16 b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-21 b Fu(42)374 261 y(2.6.3)44 b(Completion)16 b(V)l(ariables)c
-Fl(.)c(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(43)374 315
-y(2.6.4)44 b(A)15 b(Short)g(Completion)h(Example)5 b
-Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)20 b Fu(47)75 437 y Fs(Concept)i(Index)10 b Fa(.)i(.)e(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)33 b Fs(57)75 572
-y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)9
-b Fa(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)32 b Fs(59)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/readline-4.3.orig/doc/readline_3.ps b/readline-4.3.orig/doc/readline_3.ps
deleted file mode 100644
index 7d20e17..0000000
--- a/readline-4.3.orig/doc/readline_3.ps
+++ /dev/null
@@ -1,1294 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: groff version 1.17.2
-%%CreationDate: Thu Jun 27 13:54:44 2002
-%%DocumentNeededResources: font Times-Roman
-%%+ font Times-Bold
-%%+ font Times-Italic
-%%+ font Courier
-%%DocumentSuppliedResources: procset grops 1.17 2
-%%Pages: 14
-%%PageOrder: Ascend
-%%Orientation: Portrait
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset grops 1.17 2
-/setpacking where{
-pop
-currentpacking
-true setpacking
-}if
-/grops 120 dict dup begin
-/SC 32 def
-/A/show load def
-/B{0 SC 3 -1 roll widthshow}bind def
-/C{0 exch ashow}bind def
-/D{0 exch 0 SC 5 2 roll awidthshow}bind def
-/E{0 rmoveto show}bind def
-/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
-/G{0 rmoveto 0 exch ashow}bind def
-/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/I{0 exch rmoveto show}bind def
-/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
-/K{0 exch rmoveto 0 exch ashow}bind def
-/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/M{rmoveto show}bind def
-/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
-/O{rmoveto 0 exch ashow}bind def
-/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/Q{moveto show}bind def
-/R{moveto 0 SC 3 -1 roll widthshow}bind def
-/S{moveto 0 exch ashow}bind def
-/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/SF{
-findfont exch
-[exch dup 0 exch 0 exch neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/MF{
-findfont
-[5 2 roll
-0 3 1 roll
-neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/level0 0 def
-/RES 0 def
-/PL 0 def
-/LS 0 def
-/MANUAL{
-statusdict begin/manualfeed true store end
-}bind def
-/PLG{
-gsave newpath clippath pathbbox grestore
-exch pop add exch pop
-}bind def
-/BP{
-/level0 save def
-1 setlinecap
-1 setlinejoin
-72 RES div dup scale
-LS{
-90 rotate
-}{
-0 PL translate
-}ifelse
-1 -1 scale
-}bind def
-/EP{
-level0 restore
-showpage
-}bind def
-/DA{
-newpath arcn stroke
-}bind def
-/SN{
-transform
-.25 sub exch .25 sub exch
-round .25 add exch round .25 add exch
-itransform
-}bind def
-/DL{
-SN
-moveto
-SN
-lineto stroke
-}bind def
-/DC{
-newpath 0 360 arc closepath
-}bind def
-/TM matrix def
-/DE{
-TM currentmatrix pop
-translate scale newpath 0 0 .5 0 360 arc closepath
-TM setmatrix
-}bind def
-/RC/rcurveto load def
-/RL/rlineto load def
-/ST/stroke load def
-/MT/moveto load def
-/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
-}bind def
-/BL/fill load def
-/LW/setlinewidth load def
-/RE{
-findfont
-dup maxlength 1 index/FontName known not{1 add}if dict begin
-{
-1 index/FID ne{def}{pop pop}ifelse
-}forall
-/Encoding exch def
-dup/FontName exch def
-currentdict end definefont pop
-}bind def
-/DEFS 0 def
-/EBEGIN{
-moveto
-DEFS begin
-}bind def
-/EEND/end load def
-/CNT 0 def
-/level1 0 def
-/PBEGIN{
-/level1 save def
-translate
-div 3 1 roll div exch scale
-neg exch neg exch translate
-0 setgray
-0 setlinecap
-1 setlinewidth
-0 setlinejoin
-10 setmiterlimit
-[]0 setdash
-/setstrokeadjust where{
-pop
-false setstrokeadjust
-}if
-/setoverprint where{
-pop
-false setoverprint
-}if
-newpath
-/CNT countdictstack def
-userdict begin
-/showpage{}def
-}bind def
-/PEND{
-clear
-countdictstack CNT sub{end}repeat
-level1 restore
-}bind def
-end def
-/setpacking where{
-pop
-setpacking
-}if
-%%EndResource
-%%IncludeResource: font Times-Roman
-%%IncludeResource: font Times-Bold
-%%IncludeResource: font Times-Italic
-%%IncludeResource: font Courier
-grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
-/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
-/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
-/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
-/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
-/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
-/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
-/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
-/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
-/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
-/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
-/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
-/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
-/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
-/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
-/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
-/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
-/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
-/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
-/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE
-/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
-%%EndProlog
-%%Page: 1 1
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1
-10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
-(readline \255 get a line from a user with editing)108 96 Q F1(SYNOPSIS)
-72 112.8 Q/F2 10/Times-Bold@0 SF(#include <stdio.h>)108 124.8 Q
-(#include <r)108 136.8 Q(eadline/r)-.18 E(eadline.h>)-.18 E(#include <r)
-108 148.8 Q(eadline/history)-.18 E(.h>)-.7 E/F3 10/Times-Italic@0 SF
--.15(ch)108 165.6 S(ar *).15 E F2 -.18(re)108 177.6 S(adline).18 E F0
-(\()2.5 E F3(const c)A(har *pr)-.15 E(ompt)-.45 E F0(\);)A F1(COPYRIGHT)
-72 194.4 Q F0(Readline is Cop)108 206.4 Q
-(yright \251 1989\2552002 by the Free Softw)-.1 E(are F)-.1 E
-(oundation, Inc.)-.15 E F1(DESCRIPTION)72 223.2 Q F2 -.18(re)108 235.2 S
-(adline).18 E F0 .088
-(will read a line from the terminal and return it, using)2.588 F F2(pr)
-2.587 E(ompt)-.18 E F0 .087(as a prompt.)2.587 F(If)5.087 E F2(pr)2.587
-E(ompt)-.18 E F0(is)2.587 E F2(NULL)2.587 E F0(or)2.587 E .42
-(the empty string, no prompt is issued.)108 247.2 R .421
-(The line returned is allocated with)5.42 F F3(malloc)2.921 E F0 .421
-(\(3\); the caller must free it).31 F(when \214nished.)108 259.2 Q
-(The line returned has the \214nal ne)5 E(wline remo)-.25 E -.15(ve)-.15
-G(d, so only the te).15 E(xt of the line remains.)-.15 E F2 -.18(re)108
-276 S(adline).18 E F0(of)3.79 E 1.29
-(fers editing capabilities while the user is entering the line.)-.25 F
-1.289(By def)6.289 F 1.289(ault, the line editing com-)-.1 F
-(mands are similar to those of emacs.)108 288 Q 2.5(Av)5 G
-(i\255style line editing interf)-2.5 E(ace is also a)-.1 E -.25(va)-.2 G
-(ilable.).25 E .272
-(This manual page describes only the most basic use of)108 304.8 R F2
--.18(re)2.772 G(adline).18 E F0 5.272(.M)C .272
-(uch more functionality is a)-5.272 F -.25(va)-.2 G .272(ilable; see).25
-F F3(The GNU Readline Libr)108 316.8 Q(ary)-.15 E F0(and)2.5 E F3
-(The GNU History Libr)2.5 E(ary)-.15 E F0(for additional information.)
-2.5 E F1(RETURN V)72 333.6 Q(ALUE)-1.478 E F2 -.18(re)108 345.6 S
-(adline).18 E F0 1.09(returns the te)3.59 F 1.09(xt of the line read.)
--.15 F 3.589(Ab)6.09 G 1.089(lank line returns the empty string.)-3.589
-F(If)6.089 E F2(EOF)3.589 E F0 1.089(is encountered)3.589 F .283
-(while reading a line, and the line is empty)108 357.6 R(,)-.65 E F2
-(NULL)2.783 E F0 .283(is returned.)2.783 F .283(If an)5.283 F F2(EOF)
-2.783 E F0 .283(is read with a non\255empty line, it)2.783 F
-(is treated as a ne)108 369.6 Q(wline.)-.25 E F1(NO)72 386.4 Q -.986(TA)
--.438 G(TION)-.054 E F0 .181
-(An emacs-style notation is used to denote k)108 398.4 R -.15(ey)-.1 G
-(strok).15 E 2.681(es. Control)-.1 F -.1(ke)2.681 G .18
-(ys are denoted by C\255)-.05 F F3 -.1(ke)C(y)-.2 E F0 2.68(,e)C .18
-(.g., C\255n means)-2.68 F 2.625(Control\255N. Similarly)108 410.4 R(,)
--.65 E F3(meta)2.625 E F0 -.1(ke)2.625 G .125(ys are denoted by M\255)
--.05 F F3 -.1(ke)C(y)-.2 E F0 2.625(,s)C 2.625(oM)-2.625 G .125
-(\255x means Meta\255X.)-2.625 F .126(\(On k)5.126 F -.15(ey)-.1 G .126
-(boards without a).15 F F3(meta)108 422.4 Q F0 -.1(ke)3.309 G 2.109 -.65
-(y, M)-.05 H<ad>.65 E F3(x)A F0 .809(means ESC)3.309 F F3(x)3.309 E F0
-3.309(,i)C .809(.e., press the Escape k)-3.309 F 1.108 -.15(ey t)-.1 H
-.808(hen the).15 F F3(x)3.308 E F0 -.1(ke)3.308 G 4.608 -.65(y. T)-.05 H
-.808(his mak).65 F .808(es ESC the)-.1 F F3 .808(meta pr)3.308 F(e\214x)
--.37 E F0(.)A .48(The combination M\255C\255)108 434.4 R F3(x)A F0 .48
-(means ESC\255Control\255)2.98 F F3(x)A F0 2.98(,o)C 2.98(rp)-2.98 G .48
-(ress the Escape k)-2.98 F .78 -.15(ey t)-.1 H .48
-(hen hold the Control k).15 F .78 -.15(ey w)-.1 H(hile).15 E
-(pressing the)108 446.4 Q F3(x)2.5 E F0 -.1(ke)2.5 G -.65(y.)-.05 G(\))
-.65 E .62(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G 3.119
-(nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G
-.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E
-(ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti)
-.4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
-(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
-.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
-(ument to a command that).18 F 1.019(acts in the forw)108 487.2 R 1.018
-(ard direction \(e.g.,)-.1 F F2(kill\255line)3.518 E F0 3.518(\)c)C
-1.018(auses that command to act in a backw)-3.518 F 1.018
-(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 499.2 Q
-(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted.)-.25 E
-.811(When a command is described as)108 516 R F3(killing)3.311 E F0(te)
-3.311 E .811(xt, the te)-.15 F .811(xt deleted is sa)-.15 F -.15(ve)-.2
-G 3.311(df).15 G .812(or possible future retrie)-3.311 F -.25(va)-.25 G
-3.312(l\().25 G F3(yank-)-3.312 E(ing)108 528 Q F0 2.529(\). The)B .029
-(killed te)2.529 F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G
-2.529(na)-2.529 G F3 .029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E
-.329 -.15(ve k)-.25 H .029(ills cause the te).15 F .029
-(xt to be accumulated into one unit,)-.15 F .567(which can be yank)108
-540 R .567(ed all at once.)-.1 F .567(Commands which do not kill te)
-5.567 F .567(xt separate the chunks of te)-.15 F .567(xt on the kill)
--.15 F(ring.)108 552 Q F1(INITIALIZA)72 568.8 Q(TION FILE)-1.04 E F0
-.091(Readline is customized by putting commands in an initialization \
-\214le \(the)108 580.8 R F3(inputr)2.591 E(c)-.37 E F0 2.591
-(\214le\). The)2.591 F .091(name of this \214le)2.591 F 1.442(is tak)108
-592.8 R 1.443(en from the v)-.1 F 1.443(alue of the)-.25 F F2(INPUTRC)
-3.943 E F0(en)3.943 E 1.443(vironment v)-.4 F 3.943(ariable. If)-.25 F
-1.443(that v)3.943 F 1.443(ariable is unset, the def)-.25 F 1.443
-(ault is)-.1 F F3(~/.inputr)108 604.8 Q(c)-.37 E F0 5.359(.W).31 G .359
-(hen a program which uses the readline library starts up, the init \214\
-le is read, and the k)-5.359 F .658 -.15(ey b)-.1 H(ind-).15 E 1.083
-(ings and v)108 616.8 R 1.083(ariables are set.)-.25 F 1.083
-(There are only a fe)6.083 F 3.583(wb)-.25 G 1.083(asic constructs allo)
--3.583 F 1.084(wed in the readline init \214le.)-.25 F(Blank)6.084 E
-.737(lines are ignored.)108 628.8 R .737(Lines be)5.737 F .737
-(ginning with a)-.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737
-(Lines be)5.737 F .737(ginning with a)-.15 F F2($)3.237 E F0 .736
-(indicate conditional)3.236 F 2.614(constructs. Other)108 640.8 R .114
-(lines denote k)2.614 F .414 -.15(ey b)-.1 H .115(indings and v).15 F
-.115(ariable settings.)-.25 F .115
-(Each program using this library may add)5.115 F(its o)108 652.8 Q
-(wn commands and bindings.)-.25 E -.15(Fo)108 669.6 S 2.5(re).15 G
-(xample, placing)-2.65 E(M\255Control\255u: uni)144 686.4 Q -.15(ve)-.25
-G(rsal\255ar).15 E(gument)-.18 E(or)108 698.4 Q(C\255Meta\255u: uni)144
-710.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(GNU Readline 4.3)
-72 768 Q(2002 January 22)126.24 E(1)195.95 E EP
-%%Page: 2 2
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R
-(into the)108 84 Q/F1 10/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0 -.1
-(wo)2.5 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G
-(cute the readline command).15 E F1(univer)2.5 E(sal\255ar)-.1 E(gument)
--.37 E F0(.).68 E 2.795(The follo)108 100.8 R 2.795
-(wing symbolic character names are recognized while processing k)-.25 F
-3.095 -.15(ey b)-.1 H(indings:).15 E F1(DEL)5.295 E F0(,).53 E F1(ESC)
-5.295 E F0(,).72 E F1(ESCAPE)108 112.8 Q F0(,).73 E F1(LFD)2.5 E F0(,)
-.28 E F1(NEWLINE)2.5 E F0(,).73 E F1(RET)2.5 E F0(,)1.27 E F1(RETURN)2.5
-E F0(,)1.1 E F1 -.4(RU)2.5 G(BOUT).4 E F0(,)1.27 E F1(SP)2.5 E -.3(AC)
--.9 G(E).3 E F0(,).73 E F1(SPC)2.5 E F0 2.5(,a).72 G(nd)-2.5 E F1 -.5
-(TA)2.5 G(B).5 E F0(.).27 E .209
-(In addition to command names, readline allo)108 129.6 R .209(ws k)-.25
-F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
-(ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i)
--.1 H(s).15 E(pressed \(a)108 141.6 Q F1(macr)2.5 E(o)-.45 E F0(\).)A/F2
-10/Times-Bold@0 SF -.25(Ke)87 163.2 S 2.5(yB).25 G(indings)-2.5 E F0
-.382(The syntax for controlling k)108 175.2 R .682 -.15(ey b)-.1 H .382
-(indings in the).15 F F1(inputr)2.882 E(c)-.37 E F0 .382
-(\214le is simple.)2.882 F .382(All that is required is the name of the)
-5.382 F .382(command or the te)108 187.2 R .383(xt of a macro and a k)
--.15 F .683 -.15(ey s)-.1 H .383
-(equence to which it should be bound. The name may be speci-).15 F .853
-(\214ed in one of tw)108 199.2 R 3.353(ow)-.1 G .853
-(ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853
-(ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr)
-3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15
-(ey)-.1 G(sequence.)108 211.2 Q 1.766(When using the form)108 228 R F2
--.1(ke)4.266 G(yname).1 E F0(:)A F1(function-name).833 E F0(or)4.266 E
-F1(macr)4.267 E(o)-.45 E F0(,)A F1 -.1(ke)4.267 G(yname)-.2 E F0 1.767
-(is the name of a k)4.267 F 2.067 -.15(ey s)-.1 H 1.767(pelled out in)
-.15 F 2.5(English. F)108 240 R(or e)-.15 E(xample:)-.15 E
-(Control\255u: uni)144 264 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18
-E(Meta\255Rubout: backw)144 276 Q(ard\255kill\255w)-.1 E(ord)-.1 E
-(Control\255o: "> output")144 288 Q .229(In the abo)108 304.8 R .529
--.15(ve ex)-.15 H(ample,).15 E F1(C\255u)2.729 E F0 .229
-(is bound to the function)2.729 F F2(uni)2.729 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)2.729 E F0 .228
-(is bound to the function)2.729 F F2(backward\255kill\255w)108 316.8 Q
-(ord)-.1 E F0 3.837(,a)C(nd)-3.837 E F1(C\255o)3.837 E F0 1.337
-(is bound to run the macro e)3.837 F 1.337
-(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-328.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
-(into the line\).)2.5 E .056(In the second form,)108 345.6 R F2("k)2.556
-E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
-2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
-(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
-(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
-(denoting an entire k)108 357.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
-ay be speci\214ed by placing the sequence within double quotes.).15 F
-(Some)6.284 E .386(GNU Emacs style k)108 369.6 R .686 -.15(ey e)-.1 H
-.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
-(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
-(are not recognized.)108 381.6 Q("\\C\255u": uni)144 405.6 Q -.15(ve)
--.25 G(rsal\255ar).15 E(gument)-.18 E
-("\\C\255x\\C\255r": re\255read\255init\255\214le)144 417.6 Q
-("\\e[11~": "Function K)144 429.6 Q .3 -.15(ey 1)-.25 H(").15 E .237
-(In this e)108 446.4 R(xample,)-.15 E F1(C-u)2.737 E F0 .237(is ag)2.737
-F .238(ain bound to the function)-.05 F F2(uni)2.738 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .238(C-x C-r)5.238 F F0 .238
-(is bound to the function)2.738 F F2 -.18(re)108 458.4 S<ad72>.18 E
-(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)2.5 E
-F0(is bound to insert the te)2.5 E(xt)-.15 E F3(Function Key 1)2.5 E F0
-(.)A(The full set of GNU Emacs style escape sequences a)108 475.2 Q -.25
-(va)-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H(equences is)
-.15 E F2<5c43ad>144 487.2 Q F0(control pre\214x)20.3 E F2<5c4dad>144
-499.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 511.2 Q F0
-(an escape character)28.78 E F2(\\\\)144 523.2 Q F0(backslash)30.44 E F2
-(\\")144 535.2 Q F0(literal ", a double quote)27.67 E F2(\\')144 547.2 Q
-F0(literal ', a single quote)29.89 E(In addition to the GNU Emacs style\
- escape sequences, a second set of backslash escapes is a)108 564 Q -.25
-(va)-.2 G(ilable:).25 E F2(\\a)144 576 Q F0(alert \(bell\))28.22 E F2
-(\\b)144 588 Q F0(backspace)27.66 E F2(\\d)144 600 Q F0(delete)27.66 E
-F2(\\f)144 612 Q F0(form feed)29.89 E F2(\\n)144 624 Q F0(ne)27.66 E
-(wline)-.25 E F2(\\r)144 636 Q F0(carriage return)28.78 E F2(\\t)144 648
-Q F0(horizontal tab)29.89 E F2(\\v)144 660 Q F0 -.15(ve)28.22 G
-(rtical tab).15 E F2(\\)144 672 Q F1(nnn)A F0
-(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E
-(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)144
-684 Q F1(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
--.25 E(xadecimal v)-.15 E(alue)-.25 E F1(HH)2.5 E F0(\(one or tw)2.5 E
-2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E .74(When entering the te)
-108 700.8 R .74(xt of a macro, single or double quotes should be used t\
-o indicate a macro de\214nition.)-.15 F .089(Unquoted te)108 712.8 R
-.089(xt is assumed to be a function name.)-.15 F .09(In the macro body)
-5.089 F 2.59(,t)-.65 G .09(he backslash escapes described abo)-2.59 F
--.15(ve)-.15 G(are e)108 724.8 Q 2.5(xpanded. Backslash)-.15 F
-(will quote an)2.5 E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E
-(xt, including " and '.)-.15 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(2)195.95 E EP
-%%Page: 3 3
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(Bash)108 84 Q F0(allo)2.93 E .43
-(ws the current readline k)-.25 F .73 -.15(ey b)-.1 H .429
-(indings to be displayed or modi\214ed with the).15 F F1(bind)2.929 E F0
--.2(bu)2.929 G .429(iltin command.).2 F 1.095
-(The editing mode may be switched during interacti)108 96 R 1.395 -.15
-(ve u)-.25 H 1.095(se by using the).15 F F1<ad6f>3.595 E F0 1.095
-(option to the)3.595 F F1(set)3.595 E F0 -.2(bu)3.595 G 1.095
-(iltin com-).2 F 3.097(mand. Other)108 108 R .597
-(programs using this library pro)3.097 F .597(vide similar mechanisms.)
--.15 F(The)5.597 E/F2 10/Times-Italic@0 SF(inputr)3.097 E(c)-.37 E F0
-.596(\214le may be edited and)3.096 F(re-read if a program does not pro)
-108 120 Q(vide an)-.15 E 2.5(yo)-.15 G(ther means to incorporate ne)-2.5
-E 2.5(wb)-.25 G(indings.)-2.5 E F1 -.92(Va)87 136.8 S(riables).92 E F0
-.043(Readline has v)108 148.8 R .044
-(ariables that can be used to further customize its beha)-.25 F(vior)-.2
-E 5.044(.A)-.55 G -.25(va)-2.5 G .044(riable may be set in the).25 F F2
-(inpu-)2.544 E(tr)108 160.8 Q(c)-.37 E F0
-(\214le with a statement of the form)2.5 E F1(set)144 177.6 Q F2
-(variable\255name value)2.5 E F0 .807(Except where noted, readline v)108
-194.4 R .807(ariables can tak)-.25 F 3.307(et)-.1 G .807(he v)-3.307 F
-(alues)-.25 E F1(On)3.307 E F0(or)3.307 E F1(Off)3.307 E F0 .807
-(\(without re)3.307 F -.05(ga)-.15 G .807(rd to case\).).05 F .807
-(The v)5.807 F(ari-)-.25 E(ables and their def)108 206.4 Q(ault v)-.1 E
-(alues are:)-.25 E F1(bell\255style \(audible\))108 223.2 Q F0 .01
-(Controls what happens when readline w)144 235.2 R .011
-(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F1(none)
-2.511 E F0 2.511(,r)C .011(eadline ne)-2.511 F -.15(ve)-.25 G(r).15 E
-.94(rings the bell.)144 247.2 R .94(If set to)5.94 F F1(visible)3.44 E
-F0 3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25
-(va)-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0
-(,)A(readline attempts to ring the terminal')144 259.2 Q 2.5(sb)-.55 G
-(ell.)-2.5 E F1(comment\255begin \(`)108 271.2 Q(`#')-.63 E('\))-.63 E
-F0 .062(The string that is inserted in)144 283.2 R F1(vi)2.562 E F0 .062
-(mode when the)2.562 F F1(insert\255comment)2.562 E F0 .062
-(command is e)2.562 F -.15(xe)-.15 G 2.562(cuted. This).15 F(com-)2.562
-E(mand is bound to)144 295.2 Q F1(M\255#)2.5 E F0(in emacs mode and to)
-2.5 E F1(#)2.5 E F0(in vi command mode.)2.5 E F1(completion\255ignor)108
-307.2 Q(e\255case \(Off\))-.18 E F0(If set to)144 319.2 Q F1(On)2.5 E F0
-2.5(,r)C(eadline performs \214lename matching and completion in a case\
-\255insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
-(completion\255query\255items \(100\))108 331.2 Q F0 .53
-(This determines when the user is queried about vie)144 343.2 R .529
-(wing the number of possible completions gen-)-.25 F .56(erated by the)
-144 355.2 R F1(possible\255completions)3.06 E F0 3.06(command. It)3.06 F
-.561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)-3.061 E .561(ger v)
--.15 F .561(alue greater than or)-.25 F .783(equal to zero.)144 367.2 R
-.783(If the number of possible completions is greater than or equal to \
-the v)5.783 F .782(alue of this)-.25 F -.25(va)144 379.2 S .237
-(riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
--.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
-.237(re simply listed)-2.737 F(on the terminal.)144 391.2 Q F1(con)108
-403.2 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 415.2
-R F1(On)3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)-.4
-G .613(rt characters with the eighth bit set to an ASCII k).15 F .912
--.15(ey s)-.1 H .612(equence by).15 F 1.315(stripping the eighth bit an\
-d pre\214xing it with an escape character \(in ef)144 427.2 R 1.316
-(fect, using escape as the)-.25 F F2(meta pr)144 439.2 Q(e\214x)-.37 E
-F0(\).)A F1(disable\255completion \(Off\))108 451.2 Q F0 .038(If set to)
-144 463.2 R F1(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)
--2.538 F .038(ord completion.)-.1 F .038
-(Completion characters will be inserted into the)5.038 F(line as if the)
-144 475.2 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E
-F0(.)A F1(editing\255mode \(emacs\))108 487.2 Q F0 .215
-(Controls whether readline be)144 499.2 R .215(gins with a set of k)-.15
-F .515 -.15(ey b)-.1 H .216(indings similar to emacs or vi.).15 F F1
-(editing\255mode)5.216 E F0(can be set to either)144 511.2 Q F1(emacs)
-2.5 E F0(or)2.5 E F1(vi)2.5 E F0(.)A F1(enable\255k)108 523.2 Q
-(eypad \(Off\))-.1 E F0 .893(When set to)144 535.2 R F1(On)3.393 E F0
-3.393(,r)C .893(eadline will try to enable the application k)-3.393 F
--.15(ey)-.1 G .893(pad when it is called.).15 F .892(Some sys-)5.893 F
-(tems need this to enable the arro)144 547.2 Q 2.5(wk)-.25 G -.15(ey)
--2.6 G(s.).15 E F1(expand\255tilde \(Off\))108 559.2 Q F0(If set to)144
-571.2 Q F1(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E
-(xpansion is performed when readline attempts w)-.15 E(ord completion.)
--.1 E F1(history-pr)108 583.2 Q(eser)-.18 E -.1(ve)-.1 G(-point).1 E F0
-1.492(If set to)144 595.2 R F1(on)3.992 E F0 3.992(,t)C 1.493(he histor\
-y code attempts to place point at the same location on each history lin\
-e)-3.992 F(retri)144 607.2 Q -.15(ve)-.25 G 2.5(dw).15 G(ith)-2.5 E F1
-(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0(or)2.5 E F1(next-history)
-2.5 E F0(.)A F1(horizontal\255scr)108 619.2 Q(oll\255mode \(Off\))-.18 E
-F0 .449(When set to)144 631.2 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E
-.448(es readline use a single line for display)-.1 F 2.948(,s)-.65 G
-.448(crolling the input horizontally on a)-2.948 F 1.194(single screen \
-line when it becomes longer than the screen width rather than wrapping \
-to a ne)144 643.2 R(w)-.25 E(line.)144 655.2 Q F1(input\255meta \(Off\))
-108 667.2 Q F0 .367(If set to)144 679.2 R F1(On)2.867 E F0 2.867(,r)C
-.367(eadline will enable eight-bit input \(that is, it will not clear t\
-he eighth bit in the char)-2.867 F(-)-.2 E .956(acters it reads\), re)
-144 691.2 R -.05(ga)-.15 G .956
-(rdless of what the terminal claims it can support.).05 F .957(The name)
-5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F(synon)144 703.2 Q
-(ym for this v)-.15 E(ariable.)-.25 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(3)195.95 E EP
-%%Page: 4 4
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(isear)108 84 Q(ch\255terminators \(`)-.18 E
-(`C\255[ C\255J')-.63 E('\))-.63 E F0 .439(The string of characters tha\
-t should terminate an incremental search without subsequently e)144 96 R
--.15(xe)-.15 G(cut-).15 E .934(ing the character as a command.)144 108 R
-.935(If this v)5.935 F .935(ariable has not been gi)-.25 F -.15(ve)-.25
-G 3.435(nav).15 G .935(alue, the characters)-3.685 F/F2 10
-/Times-Italic@0 SF(ESC)3.435 E F0(and)144 120 Q F2(C\255J)2.5 E F0
-(will terminate an incremental search.)2.5 E F1 -.1(ke)108 132 S
-(ymap \(emacs\)).1 E F0 2.323(Set the current readline k)144 144 R -.15
-(ey)-.1 G 4.823(map. The).15 F 2.323(set of le)4.823 F -.05(ga)-.15 G
-4.823(lk).05 G -.15(ey)-4.923 G 2.323(map names is).15 F F2 2.323
-(emacs, emacs-standar)4.823 F(d,)-.37 E .808
-(emacs-meta, emacs-ctlx, vi, vi-mo)144 156 R(ve)-.1 E 3.308(,v)-.1 G
-(i-command)-3.308 E F0 3.308(,a)C(nd)-3.308 E F2(vi-insert)3.308 E F0(.)
-.68 E F2(vi)5.808 E F0 .808(is equi)3.308 F -.25(va)-.25 G .809(lent to)
-.25 F F2(vi-command)3.309 E F0(;)A F2(emacs)144 168 Q F0 .697(is equi)
-3.197 F -.25(va)-.25 G .697(lent to).25 F F2(emacs-standar)3.197 E(d)
--.37 E F0 5.697(.T)C .697(he def)-5.697 F .697(ault v)-.1 F .697
-(alue is)-.25 F F2(emacs)3.197 E F0 5.697(.T).27 G .697(he v)-5.697 F
-.697(alue of)-.25 F F1(editing\255mode)3.196 E F0(also af)144 180 Q
-(fects the def)-.25 E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1
-(mark\255dir)108 192 Q(ectories \(On\))-.18 E F0(If set to)144 204 Q F1
-(On)2.5 E F0 2.5(,c)C(ompleted directory names ha)-2.5 E .3 -.15(ve a s)
--.2 H(lash appended.).15 E F1(mark\255modi\214ed\255lines \(Off\))108
-216 Q F0(If set to)144 228 Q F1(On)2.5 E F0 2.5(,h)C
-(istory lines that ha)-2.5 E .3 -.15(ve b)-.2 H
-(een modi\214ed are displayed with a preceding asterisk \().15 E F1(*)A
-F0(\).)A F1(mark\255symlink)108 240 Q(ed\255dir)-.1 E(ectories \(Off\))
--.18 E F0 .175(If set to)144 252 R F1(On)2.675 E F0 2.675(,c)C .175
-(ompleted names which are symbolic links to directories ha)-2.675 F .475
--.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 264
-Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
-(match\255hidden\255\214les \(On\))108 276 Q F0 .193(This v)144 288 R
-.193(ariable, when set to)-.25 F F1(On)2.693 E F0 2.693(,c)C .192
-(auses readline to match \214les whose names be)-2.693 F .192
-(gin with a `.)-.15 F 2.692('\()-.7 G(hidden)-2.692 E 1.023
-(\214les\) when performing \214lename completion, unless the leading `.)
-144 300 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.024
-(upplied by the user in the)-3.523 F(\214lename to be completed.)144 312
-Q F1(output\255meta \(Off\))108 324 Q F0 .507(If set to)144 336 R F1(On)
-3.007 E F0 3.007(,r)C .507(eadline will display characters with the eig\
-hth bit set directly rather than as a meta-)-3.007 F(pre\214x)144 348 Q
-(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 360 Q F0
-.808(If set to)144 372 R F1(On)3.308 E F0 3.308(,r)C .808
-(eadline uses an internal)-3.308 F F2(mor)3.308 E(e)-.37 E F0(-lik)A
-3.308(ep)-.1 G .808(ager to display a screenful of possible comple-)
--3.308 F(tions at a time.)144 384 Q F1
-(print\255completions\255horizontally \(Off\))108 396 Q F0 1.319
-(If set to)144 408 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will dis\
-play completions with matches sorted horizontally in alphabetical)-3.819
-F(order)144 420 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F1(sho)108 432 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .477
-(This alters the def)144 444 R .477(ault beha)-.1 F .477
-(vior of the completion functions.)-.2 F .478(If set to)5.478 F F1(on)
-2.978 E F0 2.978(,w)C .478(ords which ha)-3.078 F .778 -.15(ve m)-.2 H
-(ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 456 R(bell.)144 468 Q F1
-(visible\255stats \(Off\))108 480 Q F0 .846(If set to)144 492 R F1(On)
-3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346
-(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846
-(\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 504 Q F1(Conditional Constructs)
-87 520.8 Q F0 .05(Readline implements a f)108 532.8 R .05(acility simil\
-ar in spirit to the conditional compilation features of the C preproces\
-sor)-.1 F .096(which allo)108 544.8 R .096(ws k)-.25 F .396 -.15(ey b)
--.1 H .096(indings and v).15 F .096
-(ariable settings to be performed as the result of tests.)-.25 F .097
-(There are four parser)5.096 F(directi)108 556.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 573.6 Q F0(The)24.89 E F1($if)2.963 E
-F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\
- editing mode, the terminal being used,)-.25 F .477
-(or the application using readline.)144 585.6 R .477(The te)5.477 F .477
-(xt of the test e)-.15 F .477
-(xtends to the end of the line; no characters)-.15 F
-(are required to isolate it.)144 597.6 Q F1(mode)144 614.4 Q F0(The)
-12.67 E F1(mode=)3.712 E F0 1.212(form of the)3.712 F F1($if)3.711 E F0
-(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211
-(sed to test whether readline is in emacs or vi)-3.711 F 3.065
-(mode. This)180 626.4 R .565(may be used in conjunction with the)3.065 F
-F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
-3.065 F .03(set bindings in the)180 638.4 R F2(emacs-standar)2.529 E(d)
--.37 E F0(and)2.529 E F2(emacs-ctlx)2.529 E F0 -.1(ke)2.529 G .029
-(ymaps only if readline is starting out)-.05 F(in emacs mode.)180 650.4
-Q F1(term)144 667.2 Q F0(The)15.46 E F1(term=)3.196 E F0 .696
-(form may be used to include terminal-speci\214c k)3.196 F .996 -.15
-(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 679.2 R
-.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
-(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
-(wo)3.154 G .654(rd on the right side of).1 F(the)180 691.2 Q F1(=)3.003
-E F0 .503(is tested ag)3.003 F .504(ainst the full name of the terminal\
- and the portion of the terminal name)-.05 F(before the \214rst)180
-703.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.5 E F0
-(to match both)2.5 E F2(sun)2.5 E F0(and)2.5 E F2(sun\255cmd)2.5 E F0
-2.5(,f).77 G(or instance.)-2.5 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(4)195.95 E EP
-%%Page: 5 5
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(application)144 84 Q F0(The)180 96 Q F1(application)
-3.003 E F0 .503
-(construct is used to include application-speci\214c settings.)3.003 F
-.503(Each program)5.503 F .114(using the readline library sets the)180
-108 R/F2 10/Times-Italic@0 SF .114(application name)2.614 F F0 2.614(,a)
-C .114(nd an initialization \214le can test for a)-2.614 F .501
-(particular v)180 120 R 3.001(alue. This)-.25 F .501
-(could be used to bind k)3.001 F .801 -.15(ey s)-.1 H .5
-(equences to functions useful for a spe-).15 F .396(ci\214c program.)180
-132 R -.15(Fo)5.396 G 2.896(ri).15 G .396(nstance, the follo)-2.896 F
-.396(wing command adds a k)-.25 F .696 -.15(ey s)-.1 H .397
-(equence that quotes the).15 F(current or pre)180 144 Q(vious w)-.25 E
-(ord in Bash:)-.1 E F1($if)180 168 Q F0(Bash)2.5 E 2.5(#Q)180 180 S
-(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
-("\\C-xq": "\\eb\\"\\ef\\"")180 192 Q F1($endif)180 204 Q($endif)108
-220.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
-(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else)
-108 237.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
-(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
-(cuted if the test f).15 E(ails.)-.1 E F1($include)108 254.4 Q F0 .357
-(This directi)144 266.4 R .657 -.15(ve t)-.25 H(ak).15 E .357
-(es a single \214lename as an ar)-.1 F .356
-(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 278.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
--.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1
-($include)144 302.4 Q F2(/etc/inputr)5.833 E(c)-.37 E/F3 10.95
-/Times-Bold@0 SF(SEARCHING)72 319.2 Q F0 1.003(Readline pro)108 331.2 R
-1.003(vides commands for searching through the command history for line\
-s containing a speci\214ed)-.15 F 2.5(string. There)108 343.2 R(are tw)
-2.5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.5 E(emental)-.37 E F0
-(and)2.5 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51 E .698
-(Incremental searches be)108 360 R .698
-(gin before the user has \214nished typing the search string.)-.15 F
-.697(As each character of the)5.697 F .112
-(search string is typed, readline displays the ne)108 372 R .112
-(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
-E 5.113(.A)-.55 G(n)-5.113 E .545
-(incremental search requires only as man)108 384 R 3.045(yc)-.15 G .544
-(haracters as needed to \214nd the desired history entry)-3.045 F 5.544
-(.T)-.65 G 3.044(os)-6.344 G(earch)-3.044 E(backw)108 396 Q .18
-(ard in the history for a particular string, type)-.1 F F1(C\255r)2.681
-E F0 5.181(.T)C(yping)-5.981 E F1(C\255s)2.681 E F0 .181(searches forw)
-2.681 F .181(ard through the history)-.1 F(.)-.65 E .354
-(The characters present in the v)108 408 R .354(alue of the)-.25 F F1
-(isear)2.854 E(ch-terminators)-.18 E F0 -.25(va)2.854 G .354
-(riable are used to terminate an incremen-).25 F .6(tal search.)108 420
-R .6(If that v)5.6 F .6(ariable has not been assigned a v)-.25 F .6
-(alue the)-.25 F F2(Escape)3.1 E F0(and)3.1 E F1(C\255J)3.1 E F0 .6
-(characters will terminate an)3.1 F .123(incremental search.)108 432 R
-F1(C\255G)5.123 E F0 .123
-(will abort an incremental search and restore the original line.)2.623 F
-.122(When the search is)5.122 F(terminated, the history entry containin\
-g the search string becomes the current line.)108 444 Q 2.406 -.8
-(To \214)108 460.8 T .806
-(nd other matching entries in the history list, type).8 F F1(C\255s)
-3.306 E F0(or)3.306 E F1(C\255r)3.306 E F0 .806(as appropriate.)3.306 F
-.807(This will search back-)5.806 F -.1(wa)108 472.8 S 1.309(rd or forw)
-.1 F 1.309(ard in the history for the ne)-.1 F 1.309
-(xt line matching the search string typed so f)-.15 F(ar)-.1 E 6.309(.A)
--.55 G 1.609 -.15(ny o)-6.309 H 1.308(ther k).15 F -.15(ey)-.1 G .317
-(sequence bound to a readline command will terminate the search and e)
-108 484.8 R -.15(xe)-.15 G .318(cute that command.).15 F -.15(Fo)5.318 G
-2.818(ri).15 G(nstance,)-2.818 E 3.481(an)108 496.8 S -.25(ew)-3.481 G
-.981(line will terminate the search and accept the line, thereby e).25 F
--.15(xe)-.15 G .98(cuting the command from the history).15 F 3.061
-(list. A)108 508.8 R(mo)3.061 E -.15(ve)-.15 G .562
-(ment command will terminate the search, mak).15 F 3.062(et)-.1 G .562
-(he last line found the current line, and be)-3.062 F(gin)-.15 E
-(editing.)108 520.8 Q .567(Non-incremental searches read the entire sea\
-rch string before starting to search for matching history lines.)108
-537.6 R(The search string may be typed by the user or be part of the co\
-ntents of the current line.)108 549.6 Q F3(EDITING COMMANDS)72 566.4 Q
-F0 1.391(The follo)108 578.4 R 1.391
-(wing is a list of the names of the commands and the def)-.25 F 1.391
-(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
-3.892(ya)-.15 G(re)-3.892 E 2.5(bound. Command)108 590.4 R
-(names without an accompan)2.5 E(ying k)-.15 E .3 -.15(ey s)-.1 H
-(equence are unbound by def).15 E(ault.)-.1 E .055(In the follo)108
-607.2 R .055(wing descriptions,)-.25 F F2(point)2.555 E F0 .055
-(refers to the current cursor position, and)2.555 F F2(mark)2.555 E F0
-.054(refers to a cursor position)2.554 F(sa)108 619.2 Q -.15(ve)-.2 G
-2.5(db).15 G 2.5(yt)-2.5 G(he)-2.5 E F1(set\255mark)2.5 E F0 2.5
-(command. The)2.5 F(te)2.5 E
-(xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
-2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 636 Q(or Mo)-.25 E(ving)-.1 E
-(beginning\255of\255line \(C\255a\))108 648 Q F0(Mo)144 660 Q .3 -.15
-(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
-(end\255of\255line \(C\255e\))108 672 Q F0(Mo)144 684 Q .3 -.15(ve t)
--.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 696 S
-(rward\255char \(C\255f\)).25 E F0(Mo)144 708 Q .3 -.15(ve f)-.15 H(orw)
-.15 E(ard a character)-.1 E(.)-.55 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(5)195.95 E EP
-%%Page: 6 6
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(backward\255char \(C\255b\))108 84 Q F0(Mo)144 96 Q .3
--.15(ve b)-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 108 S
-(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 120 Q .822 -.15(ve f)
--.15 H(orw).15 E .522(ard to the end of the ne)-.1 F .523(xt w)-.15 F
-3.023(ord. W)-.1 F .523
-(ords are composed of alphanumeric characters \(let-)-.8 F
-(ters and digits\).)144 132 Q F1(backward\255w)108 144 Q(ord \(M\255b\))
--.1 E F0(Mo)144 156 Q 1.71 -.15(ve b)-.15 H 1.41
-(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
-(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
-(characters \(letters and digits\).)144 168 Q F1(clear\255scr)108 180 Q
-(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 192 R .993
-(ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G
-.993(th an ar).4 F .993(gument, refresh the)-.18 F
-(current line without clearing the screen.)144 204 Q F1 -.18(re)108 216
-S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-228 Q F1(Commands f)87 244.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 256.8 Q(n\))-.15 E F0 .365
-(Accept the line re)144 268.8 R -.05(ga)-.15 G .364
-(rdless of where the cursor is.).05 F .364(If this line is non-empty)
-5.364 F 2.864(,i)-.65 G 2.864(tm)-2.864 G .364(ay be added to the)-2.864
-F .74(history list for future recall with)144 280.8 R F1
-(add_history\(\))3.24 E F0 5.741(.I)C 3.241(ft)-5.741 G .741
-(he line is a modi\214ed history line, the history)-3.241 F
-(line is restored to its original state.)144 292.8 Q F1(pr)108 304.8 Q
--.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144
-316.8 Q(vious command from the history list, mo)-.25 E
-(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 328.8 Q
-F0(Fetch the ne)144 340.8 Q(xt command from the history list, mo)-.15 E
-(ving forw)-.15 E(ard in the list.)-.1 E F1
-(beginning\255of\255history \(M\255<\))108 352.8 Q F0(Mo)144 364.8 Q .3
--.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)
--.65 E F1(end\255of\255history \(M\255>\))108 376.8 Q F0(Mo)144 388.8 Q
-.3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5
-(,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18
-(re v)108 400.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
-1.471(Search backw)144 412.8 R 1.471
-(ard starting at the current line and mo)-.1 F 1.47
-(ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 424.8 Q F1 -.25(fo)108 436.8 S
-(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
-(Search forw)144 448.8 R 1.131(ard starting at the current line and mo)
--.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)
--.25 F(.)-.65 E(This is an incremental search.)144 460.8 Q F1
-(non\255incr)108 472.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
-(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)
-144 484.8 R .164(ard through the history starting at the current line u\
-sing a non-incremental search for)-.1 F 2.5(as)144 496.8 S
-(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 508.8 Q
-(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
-E F0 1.353(Search forw)144 520.8 R 1.354(ard through the history using \
-a non-incremental search for a string supplied by the)-.1 F(user)144
-532.8 Q(.)-.55 E F1(history\255sear)108 544.8 Q(ch\255f)-.18 E(orward)
--.25 E F0 .249(Search forw)144 556.8 R .249(ard through the history for\
- the string of characters between the start of the current line)-.1 F
-(and the current cursor position \(the)144 568.8 Q/F2 10/Times-Italic@0
-SF(point)2.5 E F0 2.5(\). This)B(is a non-incremental search.)2.5 E F1
-(history\255sear)108 580.8 Q(ch\255backward)-.18 E F0 .95(Search backw)
-144 592.8 R .951(ard through the history for the string of characters b\
-etween the start of the current)-.1 F(line and the point.)144 604.8 Q
-(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 616.8 Q
-2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144
-628.8 R .622(gument to the pre)-.18 F .622
-(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
-.622(vious line\))-.25 F .794(at point.)144 640.8 R -.4(Wi)5.794 G .794
-(th an ar).4 F(gument)-.18 E F2(n)3.294 E F0 3.294(,i).24 G .794
-(nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794(ord from the pre)
--.1 F .794(vious command \(the w)-.25 F .795(ords in the)-.1 F(pre)144
-652.8 Q .292(vious command be)-.25 F .292(gin with w)-.15 F .291
-(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)-2.791 H(ti).15 E .591
--.15(ve a)-.25 H -.18(rg).15 G .291(ument inserts the).18 F F2(n)2.791 E
-F0 .291(th w)B .291(ord from the end of)-.1 F(the pre)144 664.8 Q
-(vious command.)-.25 E F1(yank\255last\255ar)108 676.8 Q 2.5(g\()-.1 G
--1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307
-(Insert the last ar)144 688.8 R 1.307(gument to the pre)-.18 F 1.307
-(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308
-(vious history entry\).)-.25 F -.4(Wi)144 700.8 S .736(th an ar).4 F
-.736(gument, beha)-.18 F 1.036 -.15(ve ex)-.2 H .736(actly lik).15 F(e)
--.1 E F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.735(.S)C(uccessi)-5.735
-E 1.035 -.15(ve c)-.25 H .735(alls to).15 F F1(yank\255last\255ar)3.235
-E(g)-.1 E F0(mo)3.235 E -.15(ve)-.15 G
-(back through the history list, inserting the last ar)144 712.8 Q
-(gument of each line in turn.)-.18 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(6)195.95 E EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(Commands f)87 84 Q(or Changing T)-.25 E(ext)-.92 E
-(delete\255char \(C\255d\))108 96 Q F0 .357
-(Delete the character at point.)144 108 R .358(If point is at the be)
-5.358 F .358(ginning of the line, there are no characters in the)-.15 F
-(line, and the last character typed w)144 120 Q(as not bound to)-.1 E F1
-(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E/F2 9/Times-Bold@0 SF
-(EOF)2.5 E/F3 9/Times-Roman@0 SF(.)A F1
-(backward\255delete\255char \(Rubout\))108 132 Q F0 .553
-(Delete the character behind the cursor)144 144 R 5.553(.W)-.55 G .553
-(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F
-.552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552(he deleted te).15 F
-.552(xt on)-.15 F(the kill ring.)144 156 Q F1 -.25(fo)108 168 S
-(rward\255backward\255delete\255char).25 E F0 .473
-(Delete the character under the cursor)144 180 R 2.973(,u)-.4 G .474
-(nless the cursor is at the end of the line, in which case the)-2.973 F
-(character behind the cursor is deleted.)144 192 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 204 Q F0 1.229(Add the ne)144
-216 R 1.228(xt character that you type to the line v)-.15 F 3.728
-(erbatim. This)-.15 F 1.228(is ho)3.728 F 3.728(wt)-.25 G 3.728(oi)
--3.728 G 1.228(nsert characters lik)-3.728 F(e)-.1 E F1(C\255q)144 228 Q
-F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108 240 Q
-(AB\))-.9 E F0(Insert a tab character)144 252 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 264 Q F0
-(Insert the character typed.)144 276 Q F1(transpose\255chars \(C\255t\))
-108 288 Q F0 .321(Drag the character before point forw)144 300 R .321
-(ard o)-.1 F -.15(ve)-.15 G 2.821(rt).15 G .321
-(he character at point, mo)-2.821 F .322(ving point forw)-.15 F .322
-(ard as well.)-.1 F 1.182
-(If point is at the end of the line, then this transposes the tw)144 312
-R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E -.05
-(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 324 Q(guments ha)-.18 E .3
--.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
-(transpose\255w)108 336 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
-348 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
--.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w)
--2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F
-(is at the end of the line, this transposes the last tw)144 360 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 372 Q
-(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144 384
-R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga)
--.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
-(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 396 S(rd, b).1 E
-(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 408 Q
-(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 420 Q 1.647
-(wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147
-(ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15
-(ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre)
--.25 F(vious)-.25 E -.1(wo)144 432 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 444 Q
-(ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144 456
-R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga)
--.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974
-(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 468 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 480
-S(rwrite\255mode).1 E F0 -.8(To)144 492 S .437(ggle o).8 F -.15(ve)-.15
-G .437(rwrite mode.).15 F -.4(Wi)5.437 G .437(th an e).4 F .437
-(xplicit positi)-.15 F .738 -.15(ve n)-.25 H .438(umeric ar).15 F .438
-(gument, switches to o)-.18 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4
-(Wi)144 504 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
--.15(ve n)-.25 H .781(umeric ar).15 F .781
-(gument, switches to insert mode.)-.18 F .78(This command af)5.781 F
-(fects)-.25 E(only)144 516 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
-4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15
-F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F4 10
-/Times-Italic@0 SF -.37(re)4.395 G(adline\(\)).37 E F0 1.895
-(starts in insert)4.395 F 3.969(mode. In)144 528 R -.15(ove)3.969 G
-1.469(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
-F0 1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F
-.957(pushing the te)144 540 R .957(xt to the right.)-.15 F .958
-(Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0
-.958(replace the character)3.458 F(before point with a space.)144 552 Q
-(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
-568.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 580.8 Q F0
-(Kill the te)144 592.8 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 604.8 Q F0(Kill backw)
-144 616.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 628.8 Q F0(Kill backw)144 640.8
-Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
-(The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
--2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 652.8 Q F0
-(Kill all characters on the current line, no matter where point is.)144
-664.8 Q F1(kill\255w)108 676.8 Q(ord \(M\255d\))-.1 E F0 1.308
-(Kill from point the end of the current w)144 688.8 R 1.308
-(ord, or if between w)-.1 F 1.308(ords, to the end of the ne)-.1 F 1.307
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 700.8 S
-(rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G
-(rward\255w).25 E(ord)-.1 E F0(.)A(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(7)195.95 E EP
-%%Page: 8 8
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(backward\255kill\255w)108 84 Q(ord \(M\255Rubout\))-.1
-E F0(Kill the w)144 96 Q(ord behind point.)-.1 E -.8(Wo)5 G
-(rd boundaries are the same as those used by).8 E F1(backward\255w)2.5 E
-(ord)-.1 E F0(.)A F1(unix\255w)108 108 Q(ord\255rubout \(C\255w\))-.1 E
-F0 .364(Kill the w)144 120 R .364
-(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1
-F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
-(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144
-132 Q F1(delete\255horizontal\255space \(M\255\\\))108 144 Q F0
-(Delete all spaces and tabs around point.)144 156 Q F1(kill\255r)108 168
-Q(egion)-.18 E F0 1.13(Kill the te)144 180 R 1.13
-(xt between the point and)-.15 F/F2 10/Times-Italic@0 SF(mark)3.63 E F0
-(\(sa)3.63 E -.15(ve)-.2 G 3.63(dc).15 G 1.13(ursor position\).)-3.63 F
-1.13(This te)6.13 F 1.13(xt is referred to as the)-.15 F F2 -.37(re)144
-192 S(gion)-.03 E F0(.)A F1(copy\255r)108 204 Q(egion\255as\255kill)-.18
-E F0(Cop)144 216 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
-(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
-(copy\255backward\255w)108 228 Q(ord)-.1 E F0(Cop)144 240 Q 4.8(yt)-.1 G
-2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E(fer)
--.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301
-(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144 252
-Q(ord)-.1 E F0(.)A F1(copy\255f)108 264 Q(orward\255w)-.25 E(ord)-.1 E
-F0(Cop)144 276 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008(ord follo)-.1
-F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.007(.T)
--.55 G 2.007(he w)-7.007 F 2.007(ord boundaries are the same as)-.1 F F1
--.25(fo)4.507 G -.37(r-).25 G(ward\255w)144 288 Q(ord)-.1 E F0(.)A F1
-(yank \(C\255y\))108 300 Q F0 -1(Ya)144 312 S
-(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25
-E F1(yank\255pop \(M\255y\))108 324 Q F0
-(Rotate the kill ring, and yank the ne)144 336 Q 2.5(wt)-.25 G 2.5
-(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
-F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 352.8 Q
-(guments)-.1 E(digit\255ar)108 364.8 Q
-(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641
-(Add this digit to the ar)144 376.8 R .641
-(gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
-(rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-)
--.15 E(ati)144 388.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
-(uni)108 400.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
-(This is another w)144 412.8 R .779(ay to specify an ar)-.1 F 3.279
-(gument. If)-.18 F .779(this command is follo)3.279 F .778
-(wed by one or more digits,)-.25 F 1.376
-(optionally with a leading minus sign, those digits de\214ne the ar)144
-424.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-436.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
-3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
-(ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
--.2 F(-)-.2 E .898(wise ignored.)144 448.8 R .898
-(As a special case, if this command is immediately follo)5.898 F .898
-(wed by a character that is)-.25 F .243
-(neither a digit or minus sign, the ar)144 460.8 R .243
-(gument count for the ne)-.18 F .243(xt command is multiplied by four)
--.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 472.8 Q .378
-(gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378
-(cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F
-.378(gument count)-.18 F(four)144 484.8 Q 2.5(,as)-.4 G(econd time mak)
--2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1
-(Completing)87 501.6 Q(complete \(T)108 513.6 Q(AB\))-.9 E F0 1.909
-(Attempt to perform completion on the te)144 525.6 R 1.908
-(xt before point.)-.15 F 1.908(The actual completion performed is)6.908
-F(application-speci\214c.)144 537.6 Q F1(Bash)5.517 E F0 3.017(,f)C .518
-(or instance, attempts completion treating the te)-3.017 F .518
-(xt as a v)-.15 F .518(ariable \(if the)-.25 F(te)144 549.6 Q .657
-(xt be)-.15 F .657(gins with)-.15 F F1($)3.156 E F0 .656
-(\), username \(if the te)B .656(xt be)-.15 F .656(gins with)-.15 F F1
-(~)3.156 E F0 .656(\), hostname \(if the te)B .656(xt be)-.15 F .656
-(gins with)-.15 F F1(@)3.156 E F0 .656(\), or)B .929
-(command \(including aliases and functions\) in turn.)144 561.6 R .93
-(If none of these produces a match, \214lename)5.929 F 1.274
-(completion is attempted.)144 573.6 R F1(Gdb)6.273 E F0 3.773(,o)C 3.773
-(nt)-3.773 G 1.273(he other hand, allo)-3.773 F 1.273
-(ws completion of program functions and)-.25 F -.25(va)144 585.6 S(riab\
-les, and only attempts \214lename completion under certain circumstance\
-s.).25 E F1(possible\255completions \(M\255?\))108 597.6 Q F0
-(List the possible completions of the te)144 609.6 Q(xt before point.)
--.15 E F1(insert\255completions \(M\255*\))108 621.6 Q F0 .783
-(Insert all completions of the te)144 633.6 R .783
-(xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
-.783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144
-645.6 Q F0(.)A F1(menu\255complete)108 657.6 Q F0 .929(Similar to)144
-669.6 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
-F .929(ord to be completed with a single match from the list of)-.1 F
-1.193(possible completions.)144 681.6 R 1.193(Repeated e)6.193 F -.15
-(xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194
-(steps through the list of possible)3.694 F .829
-(completions, inserting each match in turn.)144 693.6 R .828
-(At the end of the list of completions, the bell is rung)5.828 F .965
-(\(subject to the setting of)144 705.6 R F1 .965
-(0and the original text is r)3.465 F(estor)-.18 E 3.465(ed. An)-.18 F
-(ar)3.465 E .966(gument of)-.1 F F2(n)3.466 E F1(mo)3.466 E -.1(ve)-.1 G
-(s).1 E F2(n)3.466 E F1(posi-)3.466 E 1.249(tions f)144 717.6 R 1.249
-(orward in the list of matches; a negati)-.25 F 1.449 -.1(ve a)-.1 H -.1
-(rg).1 G 1.248(ument may be used to mo).1 F 1.448 -.1(ve b)-.1 H
-(ackward).1 E(thr)144 729.6 Q(ough the list.)-.18 E
-(This command is intended to be bound to T)5 E(AB, b)-.9 E
-(ut is unbound by default.)-.2 E F0(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(8)195.95 E EP
-%%Page: 9 9
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(delete\255char\255or\255list)108 84 Q F0 .373
-(Deletes the character under the cursor if not at the be)144 96 R .374
-(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete-char)2.874 E
-F0(\).)A(If at the end of the line, beha)144 108 Q -.15(ve)-.2 G 2.5(si)
-.15 G(dentically to)-2.5 E F1(possible-completions)2.5 E F0(.)A F1 -.25
-(Ke)87 124.8 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)108
-136.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 148.8 Q
-(gin sa)-.15 E(ving the characters typed into the current k)-.2 E -.15
-(ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 160.8 Q 2.5(o\()
--.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 172.8 Q
-(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
-(board macro and store the de\214nition.).15 E F1
-(call\255last\255kbd\255macr)108 184.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
-E F0(Re-e)144 196.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
-G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F(typed at the k)144 208.8 Q -.15(ey)-.1 G(board.).15 E F1
-(Miscellaneous)87 225.6 Q -.18(re)108 237.6 S<ad72>.18 E
-(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776
-(Read in the contents of the)144 249.6 R/F2 10/Times-Italic@0 SF(inputr)
-4.276 E(c)-.37 E F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb)
--.15 G 1.777(indings or v)-4.277 F 1.777(ariable assignments)-.25 F
-(found there.)144 261.6 Q F1(abort \(C\255g\))108 273.6 Q F0 3.249
-(Abort the current editing command and ring the terminal')144 285.6 R
-5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
-(bell\255style)144 297.6 Q F0(\).)A F1(do\255upper)108 309.6 Q
-(case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.)
-C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 321.6 R F2(x)
-4.255 E F0 1.755(is lo)4.255 F 1.756
-(wercase, run the command that is bound to the corresponding)-.25 F
-(uppercase character)144 333.6 Q(.)-.55 E F1(pr)108 345.6 Q
-(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 357.6 Q
-(xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0
-(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1
-(undo \(C\255_, C\255x C\255u\))108 369.6 Q F0
-(Incremental undo, separately remembered for each line.)144 381.6 Q F1
--2.29 -.18(re v)108 393.6 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 405.6 R 1.095(This is lik)6.095
-F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
-F0 1.095(command enough times to)3.595 F
-(return the line to its initial state.)144 417.6 Q F1
-(tilde\255expand \(M\255&\))108 429.6 Q F0(Perform tilde e)144 441.6 Q
-(xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 453.6 Q F0
-(Set the mark to the point.)144 465.6 Q(If a numeric ar)5 E
-(gument is supplied, the mark is set to that position.)-.18 E F1
-(exchange\255point\255and\255mark \(C\255x C\255x\))108 477.6 Q F0(Sw)
-144 489.6 Q .282(ap the point with the mark.)-.1 F .283
-(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
-2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
-144 501.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
-(character\255sear)108 513.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144
-525.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G
-3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
-(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05
-(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre)
-144 537.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 549.6 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 561.6 S 1.043
-(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
-3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
-(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
--.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
-(count searches for subsequent occurrences.)144 573.6 Q F1
-(insert\255comment \(M\255#\))108 585.6 Q F0 -.4(Wi)144 597.6 S .481
-(thout a numeric ar).4 F .481(gument, the v)-.18 F .481
-(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va)
-2.981 G .48(riable is inserted at the).25 F(be)144 609.6 Q .097
-(ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098
-(gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E
-.322(the characters at the be)144 621.6 R .321
-(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
-(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is)
--.25 F 1.013(inserted, otherwise the characters in)144 633.6 R F1
-(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.014
-(ginning of the line.)-.15 F 1.469
-(In either case, the line is accepted as if a ne)144 645.6 R 1.468
-(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F
-1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 657.6 Q F0(mak)
-2.982 E .483(es the current line a shell comment.)-.1 F .483
-(If a numeric ar)5.483 F .483(gument causes the comment)-.18 F
-(character to be remo)144 669.6 Q -.15(ve)-.15 G(d, the line will be e)
-.15 E -.15(xe)-.15 G(cuted by the shell.).15 E F1(dump\255functions)108
-681.6 Q F0 .627(Print all of the functions and their k)144 693.6 R .927
--.15(ey b)-.1 H .626(indings to the readline output stream.).15 F .626
-(If a numeric ar)5.626 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 705.6 Q
-(ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0
-(\214le.)2.5 E(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(9)
-195.95 E EP
-%%Page: 10 10
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(dump\255v)108 84 Q(ariables)-.1 E F0 .283
-(Print all of the settable v)144 96 R .283(ariables and their v)-.25 F
-.283(alues to the readline output stream.)-.25 F .283(If a numeric ar)
-5.283 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 108 Q
-(ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr)
-2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255macr)108 120 Q(os)-.18 E F0
-.756(Print all of the readline k)144 132 R 1.056 -.15(ey s)-.1 H .756
-(equences bound to macros and the strings the).15 F 3.256(yo)-.15 G
-3.256(uput. If)-3.256 F 3.255(an)3.255 G(umeric)-3.255 E(ar)144 144 Q
-.528(gument is supplied, the output is formatted in such a w)-.18 F .528
-(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
-(\214le.)144 156 Q F1(emacs\255editing\255mode \(C\255e\))108 168 Q F0
-(When in)144 180 Q F1(vi)2.5 E F0(command mode, this causes a switch to)
-2.5 E F1(emacs)2.5 E F0(editing mode.)2.5 E F1
-(vi\255editing\255mode \(M\255C\255j\))108 192 Q F0(When in)144 204 Q F1
-(emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E
-F0(editing mode.)2.5 E/F3 10.95/Times-Bold@0 SF(DEF)72 220.8 Q -.548(AU)
--.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo)
-108 232.8 R .065(wing is a list of the def)-.25 F .065
-(ault emacs and vi bindings.)-.1 F .064
-(Characters with the eighth bit set are written as)5.064 F .615
-(M\255<character>, and are referred to as)108 244.8 R F2(meta\214ed)
-3.115 E F0 3.115(characters. The)3.115 F .616
-(printable ASCII characters not mentioned)3.116 F 1.116
-(in the list of emacs standard bindings are bound to the)108 256.8 R F1
-(self\255insert)3.615 E F0 1.115(function, which just inserts the gi)
-3.615 F -.15(ve)-.25 G(n).15 E .945(character into the input line.)108
-268.8 R .945(In vi insertion mode, all characters not speci\214cally me\
-ntioned are bound to)5.945 F F1(self\255insert)108 280.8 Q F0 5.359(.C)C
-.359(haracters assigned to signal generation by)-5.359 F F2(stty)2.859 E
-F0 .359(\(1\) or the terminal dri).32 F -.15(ve)-.25 G 1.159 -.4(r, s)
-.15 H .358(uch as C-Z or C-C,).4 F .187(retain that function.)108 292.8
-R .187(Upper and lo)5.187 F .188(wer case meta\214ed characters are bou\
-nd to the same function in the emacs)-.25 F .305(mode meta k)108 304.8 R
--.15(ey)-.1 G 2.805(map. The).15 F .305(remaining characters are unboun\
-d, which causes readline to ring the bell \(subject)2.805 F
-(to the setting of the)108 316.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5
-G(riable\).).25 E F1(Emacs Mode)87 333.6 Q F0(Emacs Standard bindings)
-151.2 345.6 Q 2.5("C-@" set-mark)151.2 369.6 R 2.5("C-A" be)151.2 381.6
-R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 393.6 R(ard-char)-.1 E
-2.5("C-D" delete-char)151.2 405.6 R 2.5("C-E" end-of-line)151.2 417.6 R
-2.5("C-F" forw)151.2 429.6 R(ard-char)-.1 E 2.5("C-G" abort)151.2 441.6
-R 2.5("C-H" backw)151.2 453.6 R(ard-delete-char)-.1 E 2.5
-("C-I" complete)151.2 465.6 R 2.5("C-J" accept-line)151.2 477.6 R 2.5
-("C-K" kill-line)151.2 489.6 R 2.5("C-L" clear)151.2 501.6 R(-screen)-.2
-E 2.5("C-M" accept-line)151.2 513.6 R 2.5("C-N" ne)151.2 525.6 R
-(xt-history)-.15 E 2.5("C-P" pre)151.2 537.6 R(vious-history)-.25 E 2.5
-("C-Q" quoted-insert)151.2 549.6 R 2.5("C-R" re)151.2 561.6 R -.15(ve)
--.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 573.6 R
-(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 585.6 R 2.5
-("C-U" unix-line-discard)151.2 597.6 R 2.5("C-V" quoted-insert)151.2
-609.6 R 2.5("C-W" unix-w)151.2 621.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)
-151.2 633.6 R 2.5("C-]" character)151.2 645.6 R(-search)-.2 E 2.5
-("C-_" undo)151.2 657.6 R 3.333("")151.2 669.6 S(to "/")-.833 E
-(self-insert)5 E 2.5("0" to)151.2 681.6 R 2.5("9" self-insert)2.5 F 2.5
-(":" to)151.2 693.6 R 2.5("~" self-insert)2.5 F 2.5("C-?" backw)151.2
-705.6 R(ard-delete-char)-.1 E(Emacs Meta bindings)151.2 722.4 Q
-(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(10)190.95 E EP
-%%Page: 11 11
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
-("M-C-G" abort)151.2 84 R 2.5("M-C-H" backw)151.2 96 R(ard-kill-w)-.1 E
-(ord)-.1 E 2.5("M-C-I" tab-insert)151.2 108 R 2.5
-("M-C-J" vi-editing-mode)151.2 120 R 2.5("M-C-M" vi-editing-mode)151.2
-132 R 2.5("M-C-R" re)151.2 144 R -.15(ve)-.25 G(rt-line).15 E 2.5
-("M-C-Y" yank-nth-ar)151.2 156 R(g)-.18 E 2.5("M-C-[" complete)151.2 168
-R 2.5("M-C-]" character)151.2 180 R(-search-backw)-.2 E(ard)-.1 E 2.5
-("M-space" set-mark)151.2 192 R 2.5("M-#" insert-comment)151.2 204 R 2.5
-("M-&" tilde-e)151.2 216 R(xpand)-.15 E 2.5("M-*" insert-completions)
-151.2 228 R 2.5("M--" digit-ar)151.2 240 R(gument)-.18 E 2.5
-("M-." yank-last-ar)151.2 252 R(g)-.18 E 2.5("M-0" digit-ar)151.2 264 R
-(gument)-.18 E 2.5("M-1" digit-ar)151.2 276 R(gument)-.18 E 2.5
-("M-2" digit-ar)151.2 288 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 300 R
-(gument)-.18 E 2.5("M-4" digit-ar)151.2 312 R(gument)-.18 E 2.5
-("M-5" digit-ar)151.2 324 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 336 R
-(gument)-.18 E 2.5("M-7" digit-ar)151.2 348 R(gument)-.18 E 2.5
-("M-8" digit-ar)151.2 360 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 372 R
-(gument)-.18 E 2.5("M-<" be)151.2 384 R(ginning-of-history)-.15 E 2.5
-("M-=" possible-completions)151.2 396 R 2.5("M->" end-of-history)151.2
-408 R 2.5("M-?" possible-completions)151.2 420 R 2.5("M-B" backw)151.2
-432 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 444 R(ord)-.1 E
-2.5("M-D" kill-w)151.2 456 R(ord)-.1 E 2.5("M-F" forw)151.2 468 R(ard-w)
--.1 E(ord)-.1 E 2.5("M-L" do)151.2 480 R(wncase-w)-.25 E(ord)-.1 E 2.5
-("M-N" non-incremental-forw)151.2 492 R(ard-search-history)-.1 E 2.5
-("M-P" non-incremental-re)151.2 504 R -.15(ve)-.25 G(rse-search-history)
-.15 E 2.5("M-R" re)151.2 516 R -.15(ve)-.25 G(rt-line).15 E 2.5
-("M-T" transpose-w)151.2 528 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 540 R
-(ord)-.1 E 2.5("M-Y" yank-pop)151.2 552 R 2.5
-("M-\\" delete-horizontal-space)151.2 564 R 2.5("M-~" tilde-e)151.2 576
-R(xpand)-.15 E 2.5("M-C-?" backw)151.2 588 R(ard-kill-w)-.1 E(ord)-.1 E
-2.5("M-_" yank-last-ar)151.2 600 R(g)-.18 E(Emacs Control-X bindings)
-151.2 616.8 Q 2.5("C-XC-G" abort)151.2 640.8 R 2.5
-("C-XC-R" re-read-init-\214le)151.2 652.8 R 2.5("C-XC-U" undo)151.2
-664.8 R 2.5("C-XC-X" e)151.2 676.8 R(xchange-point-and-mark)-.15 E 2.5
-("C-X\(" start-kbd-macro)151.2 688.8 R 2.5("C-X\)" end-kbd-macro)151.2
-700.8 R 2.5("C-XE" call-last-kbd-macro)151.2 712.8 R 2.5("C-XC-?" backw)
-151.2 724.8 R(ard-kill-line)-.1 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(11)190.95 E EP
-%%Page: 12 12
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(VI Mode bindings)87 84 Q F0(VI Insert Mode functions)
-151.2 96 Q 2.5("C-D" vi-eof-maybe)151.2 120 R 2.5("C-H" backw)151.2 132
-R(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 144 R 2.5
-("C-J" accept-line)151.2 156 R 2.5("C-M" accept-line)151.2 168 R 2.5
-("C-R" re)151.2 180 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
-("C-S" forw)151.2 192 R(ard-search-history)-.1 E 2.5
-("C-T" transpose-chars)151.2 204 R 2.5("C-U" unix-line-discard)151.2 216
-R 2.5("C-V" quoted-insert)151.2 228 R 2.5("C-W" unix-w)151.2 240 R
-(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 252 R 2.5("C-[" vi-mo)151.2 264 R
--.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 276 R 3.333("")151.2
-288 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)151.2 300 R
-(ard-delete-char)-.1 E(VI Command Mode functions)151.2 316.8 Q 2.5
-("C-D" vi-eof-maybe)151.2 340.8 R 2.5("C-E" emacs-editing-mode)151.2
-352.8 R 2.5("C-G" abort)151.2 364.8 R 2.5("C-H" backw)151.2 376.8 R
-(ard-char)-.1 E 2.5("C-J" accept-line)151.2 388.8 R 2.5("C-K" kill-line)
-151.2 400.8 R 2.5("C-L" clear)151.2 412.8 R(-screen)-.2 E 2.5
-("C-M" accept-line)151.2 424.8 R 2.5("C-N" ne)151.2 436.8 R(xt-history)
--.15 E 2.5("C-P" pre)151.2 448.8 R(vious-history)-.25 E 2.5
-("C-Q" quoted-insert)151.2 460.8 R 2.5("C-R" re)151.2 472.8 R -.15(ve)
--.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 484.8 R
-(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 496.8 R 2.5
-("C-U" unix-line-discard)151.2 508.8 R 2.5("C-V" quoted-insert)151.2
-520.8 R 2.5("C-W" unix-w)151.2 532.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)
-151.2 544.8 R 2.5("C-_" vi-undo)151.2 556.8 R -4.166 3.333("" f)151.2
-568.8 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 580.8 R
-2.5("$" end-of-line)151.2 592.8 R 2.5("%" vi-match)151.2 604.8 R 2.5
-("&" vi-tilde-e)151.2 616.8 R(xpand)-.15 E 2.5("*" vi-complete)151.2
-628.8 R 2.5("+" ne)151.2 640.8 R(xt-history)-.15 E 2.5("," vi-char)151.2
-652.8 R(-search)-.2 E 2.5("-" pre)151.2 664.8 R(vious-history)-.25 E 2.5
-("." vi-redo)151.2 676.8 R 2.5("/" vi-search)151.2 688.8 R 2.5("0" be)
-151.2 700.8 R(ginning-of-line)-.15 E("1" to "9")151.2 712.8 Q(vi-ar)5 E
-(g-digit)-.18 E 2.5(";" vi-char)151.2 724.8 R(-search)-.2 E
-(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(12)190.95 E EP
-%%Page: 13 13
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
-("=" vi-complete)151.2 84 R 2.5("?" vi-search)151.2 96 R 2.5
-("A" vi-append-eol)151.2 108 R 2.5("B" vi-pre)151.2 120 R(v-w)-.25 E
-(ord)-.1 E 2.5("C" vi-change-to)151.2 132 R 2.5("D" vi-delete-to)151.2
-144 R 2.5("E" vi-end-w)151.2 156 R(ord)-.1 E 2.5("F" vi-char)151.2 168 R
-(-search)-.2 E 2.5("G" vi-fetch-history)151.2 180 R 2.5
-("I" vi-insert-be)151.2 192 R(g)-.15 E 2.5("N" vi-search-ag)151.2 204 R
-(ain)-.05 E 2.5("P" vi-put)151.2 216 R 2.5("R" vi-replace)151.2 228 R
-2.5("S" vi-subst)151.2 240 R 2.5("T" vi-char)151.2 252 R(-search)-.2 E
-2.5("U" re)151.2 264 R -.15(ve)-.25 G(rt-line).15 E 2.5("W" vi-ne)151.2
-276 R(xt-w)-.15 E(ord)-.1 E 2.5("X" backw)151.2 288 R(ard-delete-char)
--.1 E 2.5("Y" vi-yank-to)151.2 300 R 2.5("\\" vi-complete)151.2 312 R
-2.5("^" vi-\214rst-print)151.2 324 R 2.5("_" vi-yank-ar)151.2 336 R(g)
--.18 E 2.5("`" vi-goto-mark)151.2 348 R 2.5("a" vi-append-mode)151.2 360
-R 2.5("b" vi-pre)151.2 372 R(v-w)-.25 E(ord)-.1 E 2.5("c" vi-change-to)
-151.2 384 R 2.5("d" vi-delete-to)151.2 396 R 2.5("e" vi-end-w)151.2 408
-R(ord)-.1 E 2.5("f" vi-char)151.2 420 R(-search)-.2 E 2.5("h" backw)
-151.2 432 R(ard-char)-.1 E 2.5("i" vi-insertion-mode)151.2 444 R 2.5
-("j" ne)151.2 456 R(xt-history)-.15 E 2.5("k" pre)151.2 468 R(v-history)
--.25 E 2.5("l" forw)151.2 480 R(ard-char)-.1 E 2.5("m" vi-set-mark)151.2
-492 R 2.5("n" vi-search-ag)151.2 504 R(ain)-.05 E 2.5("p" vi-put)151.2
-516 R 2.5("r" vi-change-char)151.2 528 R 2.5("s" vi-subst)151.2 540 R
-2.5("t" vi-char)151.2 552 R(-search)-.2 E 2.5("u" vi-undo)151.2 564 R
-2.5("w" vi-ne)151.2 576 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2
-588 R 2.5("y" vi-yank-to)151.2 600 R 2.5("|" vi-column)151.2 612 R 2.5
-("~" vi-change-case)151.2 624 R/F1 10.95/Times-Bold@0 SF(SEE ALSO)72
-640.8 Q/F2 10/Times-Italic@0 SF(The Gnu Readline Libr)108 652.8 Q(ary)
--.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2
-(The Gnu History Libr)108 664.8 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F2(bash)108 676.8 Q F0(\(1\))A F1
-(FILES)72 693.6 Q F2(~/.inputr)109.666 705.6 Q(c)-.37 E F0(Indi)144
-717.6 Q(vidual)-.25 E/F3 10/Times-Bold@0 SF -.18(re)2.5 G(adline).18 E
-F0(initialization \214le)2.5 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(13)190.95 E EP
-%%Page: 14 14
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1
-10.95/Times-Bold@0 SF -.548(AU)72 84 S(THORS).548 E F0(Brian F)108 96 Q
-(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 108
-Q(g)-.18 E(Chet Rame)108 124.8 Q 1.3 -.65(y, C)-.15 H(ase W).65 E
-(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E
-(chet@ins.CWR)108 136.8 Q(U.Edu)-.4 E F1 -.11(BU)72 153.6 S 2.738(GR).11
-G(EPOR)-2.738 E(TS)-.438 E F0 .69(If you \214nd a b)108 165.6 R .69
-(ug in)-.2 F/F2 10/Times-Bold@0 SF -.18(re)3.19 G(adline,).18 E F0 .69
-(you should report it.)3.19 F .691(But \214rst, you should mak)5.69 F
-3.191(es)-.1 G .691(ure that it really is a b)-3.191 F(ug,)-.2 E
-(and that it appears in the latest v)108 177.6 Q(ersion of the)-.15 E F2
--.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.)
-.15 E .705(Once you ha)108 194.4 R 1.005 -.15(ve d)-.2 H .705
-(etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b)
--.15 F .704(ug report to)-.2 F/F3 10/Times-Italic@0 SF -.2(bu)3.204 G
-(g\255r).2 E(eadline)-.37 E F0(@)A F3(gnu.or)A(g)-.37 E F0 5.704(.I)C
-3.204(fy)-5.704 G(ou)-3.204 E(ha)108 206.4 Q 1.809 -.15(ve a \214)-.2 H
-1.509(x, you are welcome to mail that as well!).15 F 1.51
-(Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F
-(mailed to)108 218.4 Q F3 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F3
-(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2
-(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 235.2 Q
-(ug reports concerning this manual page should be directed to)-.2 E F3
--.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E F1
--.11(BU)72 252 S(GS).11 E F0(It')108 264 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(14)190.95 E EP
-%%Trailer
-end
-%%EOF
diff --git a/readline-4.3.orig/doc/rlman.texinfo b/readline-4.3.orig/doc/rlman.texinfo
deleted file mode 100644
index 1ffebad..0000000
--- a/readline-4.3.orig/doc/rlman.texinfo
+++ /dev/null
@@ -1,108 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename readline.info
-@settitle GNU Readline Library
-@comment %**end of header (This is for running Texinfo on a region.)
-@synindex vr fn
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* Readline: (readline). The GNU readline library API
-@end direntry
-
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage
-@title GNU Readline Library
-@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU Readline Library
-
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-
-@menu
-* Command Line Editing:: GNU Readline User's Manual.
-* Programming with GNU Readline:: GNU Readline Programmer's Manual.
-* Concept Index:: Index of concepts described in this manual.
-* Function and Variable Index:: Index of externally visible functions
- and variables.
-@end menu
-@end ifinfo
-
-@include rluser.texinfo
-@include rltech.texinfo
-
-@node Concept Index
-@unnumbered Concept Index
-@printindex cp
-
-@node Function and Variable Index
-@unnumbered Function and Variable Index
-@printindex fn
-
-@contents
-@bye
diff --git a/readline-4.3.orig/doc/rltech.texinfo b/readline-4.3.orig/doc/rltech.texinfo
deleted file mode 100644
index 037e824..0000000
--- a/readline-4.3.orig/doc/rltech.texinfo
+++ /dev/null
@@ -1,2165 +0,0 @@
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rltech.info
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@ifinfo
-This document describes the GNU Readline Library, a utility for aiding
-in the consitency of user interface across discrete programs that need
-to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Foundation.
-@end ifinfo
-
-@node Programming with GNU Readline
-@chapter Programming with GNU Readline
-
-This chapter describes the interface between the @sc{gnu} Readline Library and
-other programs. If you are a programmer, and you wish to include the
-features found in @sc{gnu} Readline
-such as completion, line editing, and interactive history manipulation
-in your own programs, this section is for you.
-
-@menu
-* Basic Behavior:: Using the default behavior of Readline.
-* Custom Functions:: Adding your own functions to Readline.
-* Readline Variables:: Variables accessible to custom
- functions.
-* Readline Convenience Functions:: Functions which Readline supplies to
- aid in writing your own custom
- functions.
-* Readline Signal Handling:: How Readline behaves when it receives signals.
-* Custom Completers:: Supplanting or supplementing Readline's
- completion functions.
-@end menu
-
-@node Basic Behavior
-@section Basic Behavior
-
-Many programs provide a command line interface, such as @code{mail},
-@code{ftp}, and @code{sh}. For such programs, the default behaviour of
-Readline is sufficient. This section describes how to use Readline in
-the simplest way possible, perhaps to replace calls in your code to
-@code{gets()} or @code{fgets()}.
-
-@findex readline
-@cindex readline, function
-
-The function @code{readline()} prints a prompt @var{prompt}
-and then reads and returns a single line of text from the user.
-If @var{prompt} is @code{NULL} or the empty string, no prompt is displayed.
-The line @code{readline} returns is allocated with @code{malloc()};
-the caller should @code{free()} the line when it has finished with it.
-The declaration for @code{readline} in ANSI C is
-
-@example
-@code{char *readline (const char *@var{prompt});}
-@end example
-
-@noindent
-So, one might say
-@example
-@code{char *line = readline ("Enter a line: ");}
-@end example
-@noindent
-in order to read a line of text from the user.
-The line returned has the final newline removed, so only the
-text remains.
-
-If @code{readline} encounters an @code{EOF} while reading the line, and the
-line is empty at that point, then @code{(char *)NULL} is returned.
-Otherwise, the line is ended just as if a newline had been typed.
-
-If you want the user to be able to get at the line later, (with
-@key{C-p} for example), you must call @code{add_history()} to save the
-line away in a @dfn{history} list of such lines.
-
-@example
-@code{add_history (line)};
-@end example
-
-@noindent
-For full details on the GNU History Library, see the associated manual.
-
-It is preferable to avoid saving empty lines on the history list, since
-users rarely have a burning need to reuse a blank line. Here is
-a function which usefully replaces the standard @code{gets()} library
-function, and has the advantage of no static buffer to overflow:
-
-@example
-/* A static variable for holding the line. */
-static char *line_read = (char *)NULL;
-
-/* Read a string, and return a pointer to it.
- Returns NULL on EOF. */
-char *
-rl_gets ()
-@{
- /* If the buffer has already been allocated,
- return the memory to the free pool. */
- if (line_read)
- @{
- free (line_read);
- line_read = (char *)NULL;
- @}
-
- /* Get a line from the user. */
- line_read = readline ("");
-
- /* If the line has any text in it,
- save it on the history. */
- if (line_read && *line_read)
- add_history (line_read);
-
- return (line_read);
-@}
-@end example
-
-This function gives the user the default behaviour of @key{TAB}
-completion: completion on file names. If you do not want Readline to
-complete on filenames, you can change the binding of the @key{TAB} key
-with @code{rl_bind_key()}.
-
-@example
-@code{int rl_bind_key (int @var{key}, rl_command_func_t *@var{function});}
-@end example
-
-@code{rl_bind_key()} takes two arguments: @var{key} is the character that
-you want to bind, and @var{function} is the address of the function to
-call when @var{key} is pressed. Binding @key{TAB} to @code{rl_insert()}
-makes @key{TAB} insert itself.
-@code{rl_bind_key()} returns non-zero if @var{key} is not a valid
-ASCII character code (between 0 and 255).
-
-Thus, to disable the default @key{TAB} behavior, the following suffices:
-@example
-@code{rl_bind_key ('\t', rl_insert);}
-@end example
-
-This code should be executed once at the start of your program; you
-might write a function called @code{initialize_readline()} which
-performs this and other desired initializations, such as installing
-custom completers (@pxref{Custom Completers}).
-
-@node Custom Functions
-@section Custom Functions
-
-Readline provides many functions for manipulating the text of
-the line, but it isn't possible to anticipate the needs of all
-programs. This section describes the various functions and variables
-defined within the Readline library which allow a user program to add
-customized functionality to Readline.
-
-Before declaring any functions that customize Readline's behavior, or
-using any functionality Readline provides in other code, an
-application writer should include the file @code{<readline/readline.h>}
-in any file that uses Readline's features. Since some of the definitions
-in @code{readline.h} use the @code{stdio} library, the file
-@code{<stdio.h>} should be included before @code{readline.h}.
-
-@code{readline.h} defines a C preprocessor variable that should
-be treated as an integer, @code{RL_READLINE_VERSION}, which may
-be used to conditionally compile application code depending on
-the installed Readline version. The value is a hexadecimal
-encoding of the major and minor version numbers of the library,
-of the form 0x@var{MMmm}. @var{MM} is the two-digit major
-version number; @var{mm} is the two-digit minor version number.
-For Readline 4.2, for example, the value of
-@code{RL_READLINE_VERSION} would be @code{0x0402}.
-
-@menu
-* Readline Typedefs:: C declarations to make code readable.
-* Function Writing:: Variables and calling conventions.
-@end menu
-
-@node Readline Typedefs
-@subsection Readline Typedefs
-
-For readabilty, we declare a number of new object types, all pointers
-to functions.
-
-The reason for declaring these new types is to make it easier to write
-code describing pointers to C functions with appropriately prototyped
-arguments and return values.
-
-For instance, say we want to declare a variable @var{func} as a pointer
-to a function which takes two @code{int} arguments and returns an
-@code{int} (this is the type of all of the Readline bindable functions).
-Instead of the classic C declaration
-
-@code{int (*func)();}
-
-@noindent
-or the ANSI-C style declaration
-
-@code{int (*func)(int, int);}
-
-@noindent
-we may write
-
-@code{rl_command_func_t *func;}
-
-The full list of function pointer types available is
-
-@table @code
-@item typedef int rl_command_func_t (int, int);
-
-@item typedef char *rl_compentry_func_t (const char *, int);
-
-@item typedef char **rl_completion_func_t (const char *, int, int);
-
-@item typedef char *rl_quote_func_t (char *, int, char *);
-
-@item typedef char *rl_dequote_func_t (char *, int);
-
-@item typedef int rl_compignore_func_t (char **);
-
-@item typedef void rl_compdisp_func_t (char **, int, int);
-
-@item typedef int rl_hook_func_t (void);
-
-@item typedef int rl_getc_func_t (FILE *);
-
-@item typedef int rl_linebuf_func_t (char *, int);
-
-@item typedef int rl_intfunc_t (int);
-@item #define rl_ivoidfunc_t rl_hook_func_t
-@item typedef int rl_icpfunc_t (char *);
-@item typedef int rl_icppfunc_t (char **);
-
-@item typedef void rl_voidfunc_t (void);
-@item typedef void rl_vintfunc_t (int);
-@item typedef void rl_vcpfunc_t (char *);
-@item typedef void rl_vcppfunc_t (char **);
-
-@end table
-
-@node Function Writing
-@subsection Writing a New Function
-
-In order to write new functions for Readline, you need to know the
-calling conventions for keyboard-invoked functions, and the names of the
-variables that describe the current state of the line read so far.
-
-The calling sequence for a command @code{foo} looks like
-
-@example
-@code{int foo (int count, int key)}
-@end example
-
-@noindent
-where @var{count} is the numeric argument (or 1 if defaulted) and
-@var{key} is the key that invoked this function.
-
-It is completely up to the function as to what should be done with the
-numeric argument. Some functions use it as a repeat count, some
-as a flag, and others to choose alternate behavior (refreshing the current
-line as opposed to refreshing the screen, for example). Some choose to
-ignore it. In general, if a
-function uses the numeric argument as a repeat count, it should be able
-to do something useful with both negative and positive arguments.
-At the very least, it should be aware that it can be passed a
-negative argument.
-
-A command function should return 0 if its action completes successfully,
-and a non-zero value if some error occurs.
-
-@node Readline Variables
-@section Readline Variables
-
-These variables are available to function writers.
-
-@deftypevar {char *} rl_line_buffer
-This is the line gathered so far. You are welcome to modify the
-contents of the line, but see @ref{Allowing Undoing}. The
-function @code{rl_extend_line_buffer} is available to increase
-the memory allocated to @code{rl_line_buffer}.
-@end deftypevar
-
-@deftypevar int rl_point
-The offset of the current cursor position in @code{rl_line_buffer}
-(the @emph{point}).
-@end deftypevar
-
-@deftypevar int rl_end
-The number of characters present in @code{rl_line_buffer}. When
-@code{rl_point} is at the end of the line, @code{rl_point} and
-@code{rl_end} are equal.
-@end deftypevar
-
-@deftypevar int rl_mark
-The @var{mark} (saved position) in the current line. If set, the mark
-and point define a @emph{region}.
-@end deftypevar
-
-@deftypevar int rl_done
-Setting this to a non-zero value causes Readline to return the current
-line immediately.
-@end deftypevar
-
-@deftypevar int rl_num_chars_to_read
-Setting this to a positive value before calling @code{readline()} causes
-Readline to return after accepting that many characters, rather
-than reading up to a character bound to @code{accept-line}.
-@end deftypevar
-
-@deftypevar int rl_pending_input
-Setting this to a value makes it the next keystroke read. This is a
-way to stuff a single character into the input stream.
-@end deftypevar
-
-@deftypevar int rl_dispatching
-Set to a non-zero value if a function is being called from a key binding;
-zero otherwise. Application functions can test this to discover whether
-they were called directly or by Readline's dispatching mechanism.
-@end deftypevar
-
-@deftypevar int rl_erase_empty_line
-Setting this to a non-zero value causes Readline to completely erase
-the current line, including any prompt, any time a newline is typed as
-the only character on an otherwise-empty line. The cursor is moved to
-the beginning of the newly-blank line.
-@end deftypevar
-
-@deftypevar {char *} rl_prompt
-The prompt Readline uses. This is set from the argument to
-@code{readline()}, and should not be assigned to directly.
-The @code{rl_set_prompt()} function (@pxref{Redisplay}) may
-be used to modify the prompt string after calling @code{readline()}.
-@end deftypevar
-
-@deftypevar int rl_already_prompted
-If an application wishes to display the prompt itself, rather than have
-Readline do it the first time @code{readline()} is called, it should set
-this variable to a non-zero value after displaying the prompt.
-The prompt must also be passed as the argument to @code{readline()} so
-the redisplay functions can update the display properly.
-The calling application is responsible for managing the value; Readline
-never sets it.
-@end deftypevar
-
-@deftypevar {const char *} rl_library_version
-The version number of this revision of the library.
-@end deftypevar
-
-@deftypevar int rl_readline_version
-An integer encoding the current version of the library. The encoding is
-of the form 0x@var{MMmm}, where @var{MM} is the two-digit major version
-number, and @var{mm} is the two-digit minor version number.
-For example, for Readline-4.2, @code{rl_readline_version} would have the
-value 0x0402.
-@end deftypevar
-
-@deftypevar {int} rl_gnu_readline_p
-Always set to 1, denoting that this is @sc{gnu} readline rather than some
-emulation.
-@end deftypevar
-
-@deftypevar {const char *} rl_terminal_name
-The terminal type, used for initialization. If not set by the application,
-Readline sets this to the value of the @env{TERM} environment variable
-the first time it is called.
-@end deftypevar
-
-@deftypevar {const char *} rl_readline_name
-This variable is set to a unique name by each application using Readline.
-The value allows conditional parsing of the inputrc file
-(@pxref{Conditional Init Constructs}).
-@end deftypevar
-
-@deftypevar {FILE *} rl_instream
-The stdio stream from which Readline reads input.
-If @code{NULL}, Readline defaults to @var{stdin}.
-@end deftypevar
-
-@deftypevar {FILE *} rl_outstream
-The stdio stream to which Readline performs output.
-If @code{NULL}, Readline defaults to @var{stdout}.
-@end deftypevar
-
-@deftypevar {rl_command_func_t *} rl_last_func
-The address of the last command function Readline executed. May be used to
-test whether or not a function is being executed twice in succession, for
-example.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_startup_hook
-If non-zero, this is the address of a function to call just
-before @code{readline} prints the first prompt.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_pre_input_hook
-If non-zero, this is the address of a function to call after
-the first prompt has been printed and just before @code{readline}
-starts reading input characters.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_event_hook
-If non-zero, this is the address of a function to call periodically
-when Readline is waiting for terminal input.
-By default, this will be called at most ten times a second if there
-is no keyboard input.
-@end deftypevar
-
-@deftypevar {rl_getc_func_t *} rl_getc_function
-If non-zero, Readline will call indirectly through this pointer
-to get a character from the input stream. By default, it is set to
-@code{rl_getc}, the default Readline character input function
-(@pxref{Character Input}).
-@end deftypevar
-
-@deftypevar {rl_voidfunc_t *} rl_redisplay_function
-If non-zero, Readline will call indirectly through this pointer
-to update the display with the current contents of the editing buffer.
-By default, it is set to @code{rl_redisplay}, the default Readline
-redisplay function (@pxref{Redisplay}).
-@end deftypevar
-
-@deftypevar {rl_vintfunc_t *} rl_prep_term_function
-If non-zero, Readline will call indirectly through this pointer
-to initialize the terminal. The function takes a single argument, an
-@code{int} flag that says whether or not to use eight-bit characters.
-By default, this is set to @code{rl_prep_terminal}
-(@pxref{Terminal Management}).
-@end deftypevar
-
-@deftypevar {rl_voidfunc_t *} rl_deprep_term_function
-If non-zero, Readline will call indirectly through this pointer
-to reset the terminal. This function should undo the effects of
-@code{rl_prep_term_function}.
-By default, this is set to @code{rl_deprep_terminal}
-(@pxref{Terminal Management}).
-@end deftypevar
-
-@deftypevar {Keymap} rl_executing_keymap
-This variable is set to the keymap (@pxref{Keymaps}) in which the
-currently executing readline function was found.
-@end deftypevar
-
-@deftypevar {Keymap} rl_binding_keymap
-This variable is set to the keymap (@pxref{Keymaps}) in which the
-last key binding occurred.
-@end deftypevar
-
-@deftypevar {char *} rl_executing_macro
-This variable is set to the text of any currently-executing macro.
-@end deftypevar
-
-@deftypevar {int} rl_readline_state
-A variable with bit values that encapsulate the current Readline state.
-A bit is set with the @code{RL_SETSTATE} macro, and unset with the
-@code{RL_UNSETSTATE} macro. Use the @code{RL_ISSTATE} macro to test
-whether a particular state bit is set. Current state bits include:
-
-@table @code
-@item RL_STATE_NONE
-Readline has not yet been called, nor has it begun to intialize.
-@item RL_STATE_INITIALIZING
-Readline is initializing its internal data structures.
-@item RL_STATE_INITIALIZED
-Readline has completed its initialization.
-@item RL_STATE_TERMPREPPED
-Readline has modified the terminal modes to do its own input and redisplay.
-@item RL_STATE_READCMD
-Readline is reading a command from the keyboard.
-@item RL_STATE_METANEXT
-Readline is reading more input after reading the meta-prefix character.
-@item RL_STATE_DISPATCHING
-Readline is dispatching to a command.
-@item RL_STATE_MOREINPUT
-Readline is reading more input while executing an editing command.
-@item RL_STATE_ISEARCH
-Readline is performing an incremental history search.
-@item RL_STATE_NSEARCH
-Readline is performing a non-incremental history search.
-@item RL_STATE_SEARCH
-Readline is searching backward or forward through the history for a string.
-@item RL_STATE_NUMERICARG
-Readline is reading a numeric argument.
-@item RL_STATE_MACROINPUT
-Readline is currently getting its input from a previously-defined keyboard
-macro.
-@item RL_STATE_MACRODEF
-Readline is currently reading characters defining a keyboard macro.
-@item RL_STATE_OVERWRITE
-Readline is in overwrite mode.
-@item RL_STATE_COMPLETING
-Readline is performing word completion.
-@item RL_STATE_SIGHANDLER
-Readline is currently executing the readline signal handler.
-@item RL_STATE_UNDOING
-Readline is performing an undo.
-@item RL_STATE_DONE
-Readline has read a key sequence bound to @code{accept-line}
-and is about to return the line to the caller.
-@end table
-
-@end deftypevar
-
-@deftypevar {int} rl_explicit_arg
-Set to a non-zero value if an explicit numeric argument was specified by
-the user. Only valid in a bindable command function.
-@end deftypevar
-
-@deftypevar {int} rl_numeric_arg
-Set to the value of any numeric argument explicitly specified by the user
-before executing the current Readline function. Only valid in a bindable
-command function.
-@end deftypevar
-
-@deftypevar {int} rl_editing_mode
-Set to a value denoting Readline's current editing mode. A value of
-@var{1} means Readline is currently in emacs mode; @var{0}
-means that vi mode is active.
-@end deftypevar
-
-
-@node Readline Convenience Functions
-@section Readline Convenience Functions
-
-@menu
-* Function Naming:: How to give a function you write a name.
-* Keymaps:: Making keymaps.
-* Binding Keys:: Changing Keymaps.
-* Associating Function Names and Bindings:: Translate function names to
- key sequences.
-* Allowing Undoing:: How to make your functions undoable.
-* Redisplay:: Functions to control line display.
-* Modifying Text:: Functions to modify @code{rl_line_buffer}.
-* Character Input:: Functions to read keyboard input.
-* Terminal Management:: Functions to manage terminal settings.
-* Utility Functions:: Generally useful functions and hooks.
-* Miscellaneous Functions:: Functions that don't fall into any category.
-* Alternate Interface:: Using Readline in a `callback' fashion.
-* A Readline Example:: An example Readline function.
-@end menu
-
-@node Function Naming
-@subsection Naming a Function
-
-The user can dynamically change the bindings of keys while using
-Readline. This is done by representing the function with a descriptive
-name. The user is able to type the descriptive name when referring to
-the function. Thus, in an init file, one might find
-
-@example
-Meta-Rubout: backward-kill-word
-@end example
-
-This binds the keystroke @key{Meta-Rubout} to the function
-@emph{descriptively} named @code{backward-kill-word}. You, as the
-programmer, should bind the functions you write to descriptive names as
-well. Readline provides a function for doing that:
-
-@deftypefun int rl_add_defun (const char *name, rl_command_func_t *function, int key)
-Add @var{name} to the list of named functions. Make @var{function} be
-the function that gets called. If @var{key} is not -1, then bind it to
-@var{function} using @code{rl_bind_key()}.
-@end deftypefun
-
-Using this function alone is sufficient for most applications. It is
-the recommended way to add a few functions to the default functions that
-Readline has built in. If you need to do something other
-than adding a function to Readline, you may need to use the
-underlying functions described below.
-
-@node Keymaps
-@subsection Selecting a Keymap
-
-Key bindings take place on a @dfn{keymap}. The keymap is the
-association between the keys that the user types and the functions that
-get run. You can make your own keymaps, copy existing keymaps, and tell
-Readline which keymap to use.
-
-@deftypefun Keymap rl_make_bare_keymap (void)
-Returns a new, empty keymap. The space for the keymap is allocated with
-@code{malloc()}; the caller should free it by calling
-@code{rl_discard_keymap()} when done.
-@end deftypefun
-
-@deftypefun Keymap rl_copy_keymap (Keymap map)
-Return a new keymap which is a copy of @var{map}.
-@end deftypefun
-
-@deftypefun Keymap rl_make_keymap (void)
-Return a new keymap with the printing characters bound to rl_insert,
-the lowercase Meta characters bound to run their equivalents, and
-the Meta digits bound to produce numeric arguments.
-@end deftypefun
-
-@deftypefun void rl_discard_keymap (Keymap keymap)
-Free the storage associated with @var{keymap}.
-@end deftypefun
-
-Readline has several internal keymaps. These functions allow you to
-change which keymap is active.
-
-@deftypefun Keymap rl_get_keymap (void)
-Returns the currently active keymap.
-@end deftypefun
-
-@deftypefun void rl_set_keymap (Keymap keymap)
-Makes @var{keymap} the currently active keymap.
-@end deftypefun
-
-@deftypefun Keymap rl_get_keymap_by_name (const char *name)
-Return the keymap matching @var{name}. @var{name} is one which would
-be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
-@end deftypefun
-
-@deftypefun {char *} rl_get_keymap_name (Keymap keymap)
-Return the name matching @var{keymap}. @var{name} is one which would
-be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
-@end deftypefun
-
-@node Binding Keys
-@subsection Binding Keys
-
-Key sequences are associate with functions through the keymap.
-Readline has several internal keymaps: @code{emacs_standard_keymap},
-@code{emacs_meta_keymap}, @code{emacs_ctlx_keymap},
-@code{vi_movement_keymap}, and @code{vi_insertion_keymap}.
-@code{emacs_standard_keymap} is the default, and the examples in
-this manual assume that.
-
-Since @code{readline()} installs a set of default key bindings the first
-time it is called, there is always the danger that a custom binding
-installed before the first call to @code{readline()} will be overridden.
-An alternate mechanism is to install custom key bindings in an
-initialization function assigned to the @code{rl_startup_hook} variable
-(@pxref{Readline Variables}).
-
-These functions manage key bindings.
-
-@deftypefun int rl_bind_key (int key, rl_command_func_t *function)
-Binds @var{key} to @var{function} in the currently active keymap.
-Returns non-zero in the case of an invalid @var{key}.
-@end deftypefun
-
-@deftypefun int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map)
-Bind @var{key} to @var{function} in @var{map}. Returns non-zero in the case
-of an invalid @var{key}.
-@end deftypefun
-
-@deftypefun int rl_unbind_key (int key)
-Bind @var{key} to the null function in the currently active keymap.
-Returns non-zero in case of error.
-@end deftypefun
-
-@deftypefun int rl_unbind_key_in_map (int key, Keymap map)
-Bind @var{key} to the null function in @var{map}.
-Returns non-zero in case of error.
-@end deftypefun
-
-@deftypefun int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map)
-Unbind all keys that execute @var{function} in @var{map}.
-@end deftypefun
-
-@deftypefun int rl_unbind_command_in_map (const char *command, Keymap map)
-Unbind all keys that are bound to @var{command} in @var{map}.
-@end deftypefun
-
-@deftypefun int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map)
-Bind the key sequence represented by the string @var{keyseq} to the function
-@var{function}. This makes new keymaps as
-necessary. The initial keymap in which to do bindings is @var{map}.
-@end deftypefun
-
-@deftypefun int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
-Bind the key sequence represented by the string @var{keyseq} to the arbitrary
-pointer @var{data}. @var{type} says what kind of data is pointed to by
-@var{data}; this can be a function (@code{ISFUNC}), a macro
-(@code{ISMACR}), or a keymap (@code{ISKMAP}). This makes new keymaps as
-necessary. The initial keymap in which to do bindings is @var{map}.
-@end deftypefun
-
-@deftypefun int rl_parse_and_bind (char *line)
-Parse @var{line} as if it had been read from the @code{inputrc} file and
-perform any key bindings and variable assignments found
-(@pxref{Readline Init File}).
-@end deftypefun
-
-@deftypefun int rl_read_init_file (const char *filename)
-Read keybindings and variable assignments from @var{filename}
-(@pxref{Readline Init File}).
-@end deftypefun
-
-@node Associating Function Names and Bindings
-@subsection Associating Function Names and Bindings
-
-These functions allow you to find out what keys invoke named functions
-and the functions invoked by a particular key sequence. You may also
-associate a new function name with an arbitrary function.
-
-@deftypefun {rl_command_func_t *} rl_named_function (const char *name)
-Return the function with name @var{name}.
-@end deftypefun
-
-@deftypefun {rl_command_func_t *} rl_function_of_keyseq (const char *keyseq, Keymap map, int *type)
-Return the function invoked by @var{keyseq} in keymap @var{map}.
-If @var{map} is @code{NULL}, the current keymap is used. If @var{type} is
-not @code{NULL}, the type of the object is returned in the @code{int} variable
-it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}).
-@end deftypefun
-
-@deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
-Return an array of strings representing the key sequences used to
-invoke @var{function} in the current keymap.
-@end deftypefun
-
-@deftypefun {char **} rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map)
-Return an array of strings representing the key sequences used to
-invoke @var{function} in the keymap @var{map}.
-@end deftypefun
-
-@deftypefun void rl_function_dumper (int readable)
-Print the readline function names and the key sequences currently
-bound to them to @code{rl_outstream}. If @var{readable} is non-zero,
-the list is formatted in such a way that it can be made part of an
-@code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun void rl_list_funmap_names (void)
-Print the names of all bindable Readline functions to @code{rl_outstream}.
-@end deftypefun
-
-@deftypefun {const char **} rl_funmap_names (void)
-Return a NULL terminated array of known function names. The array is
-sorted. The array itself is allocated, but not the strings inside. You
-should @code{free()} the array when you are done, but not the pointers.
-@end deftypefun
-
-@deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function)
-Add @var{name} to the list of bindable Readline command names, and make
-@var{function} the function to be called when @var{name} is invoked.
-@end deftypefun
-
-@node Allowing Undoing
-@subsection Allowing Undoing
-
-Supporting the undo command is a painless thing, and makes your
-functions much more useful. It is certainly easy to try
-something if you know you can undo it.
-
-If your function simply inserts text once, or deletes text once, and
-uses @code{rl_insert_text()} or @code{rl_delete_text()} to do it, then
-undoing is already done for you automatically.
-
-If you do multiple insertions or multiple deletions, or any combination
-of these operations, you should group them together into one operation.
-This is done with @code{rl_begin_undo_group()} and
-@code{rl_end_undo_group()}.
-
-The types of events that can be undone are:
-
-@smallexample
-enum undo_code @{ UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END @};
-@end smallexample
-
-Notice that @code{UNDO_DELETE} means to insert some text, and
-@code{UNDO_INSERT} means to delete some text. That is, the undo code
-tells what to undo, not how to undo it. @code{UNDO_BEGIN} and
-@code{UNDO_END} are tags added by @code{rl_begin_undo_group()} and
-@code{rl_end_undo_group()}.
-
-@deftypefun int rl_begin_undo_group (void)
-Begins saving undo information in a group construct. The undo
-information usually comes from calls to @code{rl_insert_text()} and
-@code{rl_delete_text()}, but could be the result of calls to
-@code{rl_add_undo()}.
-@end deftypefun
-
-@deftypefun int rl_end_undo_group (void)
-Closes the current undo group started with @code{rl_begin_undo_group
-()}. There should be one call to @code{rl_end_undo_group()}
-for each call to @code{rl_begin_undo_group()}.
-@end deftypefun
-
-@deftypefun void rl_add_undo (enum undo_code what, int start, int end, char *text)
-Remember how to undo an event (according to @var{what}). The affected
-text runs from @var{start} to @var{end}, and encompasses @var{text}.
-@end deftypefun
-
-@deftypefun void rl_free_undo_list (void)
-Free the existing undo list.
-@end deftypefun
-
-@deftypefun int rl_do_undo (void)
-Undo the first thing on the undo list. Returns @code{0} if there was
-nothing to undo, non-zero if something was undone.
-@end deftypefun
-
-Finally, if you neither insert nor delete text, but directly modify the
-existing text (e.g., change its case), call @code{rl_modifying()}
-once, just before you modify the text. You must supply the indices of
-the text range that you are going to modify.
-
-@deftypefun int rl_modifying (int start, int end)
-Tell Readline to save the text between @var{start} and @var{end} as a
-single undo unit. It is assumed that you will subsequently modify
-that text.
-@end deftypefun
-
-@node Redisplay
-@subsection Redisplay
-
-@deftypefun void rl_redisplay (void)
-Change what's displayed on the screen to reflect the current contents
-of @code{rl_line_buffer}.
-@end deftypefun
-
-@deftypefun int rl_forced_update_display (void)
-Force the line to be updated and redisplayed, whether or not
-Readline thinks the screen display is correct.
-@end deftypefun
-
-@deftypefun int rl_on_new_line (void)
-Tell the update functions that we have moved onto a new (empty) line,
-usually after ouputting a newline.
-@end deftypefun
-
-@deftypefun int rl_on_new_line_with_prompt (void)
-Tell the update functions that we have moved onto a new line, with
-@var{rl_prompt} already displayed.
-This could be used by applications that want to output the prompt string
-themselves, but still need Readline to know the prompt string length for
-redisplay.
-It should be used after setting @var{rl_already_prompted}.
-@end deftypefun
-
-@deftypefun int rl_reset_line_state (void)
-Reset the display state to a clean state and redisplay the current line
-starting on a new line.
-@end deftypefun
-
-@deftypefun int rl_crlf (void)
-Move the cursor to the start of the next screen line.
-@end deftypefun
-
-@deftypefun int rl_show_char (int c)
-Display character @var{c} on @code{rl_outstream}.
-If Readline has not been set to display meta characters directly, this
-will convert meta characters to a meta-prefixed key sequence.
-This is intended for use by applications which wish to do their own
-redisplay.
-@end deftypefun
-
-@deftypefun int rl_message (const char *, @dots{})
-The arguments are a format string as would be supplied to @code{printf},
-possibly containing conversion specifications such as @samp{%d}, and
-any additional arguments necessary to satisfy the conversion specifications.
-The resulting string is displayed in the @dfn{echo area}. The echo area
-is also used to display numeric arguments and search strings.
-@end deftypefun
-
-@deftypefun int rl_clear_message (void)
-Clear the message in the echo area.
-@end deftypefun
-
-@deftypefun void rl_save_prompt (void)
-Save the local Readline prompt display state in preparation for
-displaying a new message in the message area with @code{rl_message()}.
-@end deftypefun
-
-@deftypefun void rl_restore_prompt (void)
-Restore the local Readline prompt display state saved by the most
-recent call to @code{rl_save_prompt}.
-@end deftypefun
-
-@deftypefun int rl_expand_prompt (char *prompt)
-Expand any special character sequences in @var{prompt} and set up the
-local Readline prompt redisplay variables.
-This function is called by @code{readline()}. It may also be called to
-expand the primary prompt if the @code{rl_on_new_line_with_prompt()}
-function or @code{rl_already_prompted} variable is used.
-It returns the number of visible characters on the last line of the
-(possibly multi-line) prompt.
-@end deftypefun
-
-@deftypefun int rl_set_prompt (const char *prompt)
-Make Readline use @var{prompt} for subsequent redisplay. This calls
-@code{rl_expand_prompt()} to expand the prompt and sets @code{rl_prompt}
-to the result.
-@end deftypefun
-
-@node Modifying Text
-@subsection Modifying Text
-
-@deftypefun int rl_insert_text (const char *text)
-Insert @var{text} into the line at the current cursor position.
-Returns the number of characters inserted.
-@end deftypefun
-
-@deftypefun int rl_delete_text (int start, int end)
-Delete the text between @var{start} and @var{end} in the current line.
-Returns the number of characters deleted.
-@end deftypefun
-
-@deftypefun {char *} rl_copy_text (int start, int end)
-Return a copy of the text between @var{start} and @var{end} in
-the current line.
-@end deftypefun
-
-@deftypefun int rl_kill_text (int start, int end)
-Copy the text between @var{start} and @var{end} in the current line
-to the kill ring, appending or prepending to the last kill if the
-last command was a kill command. The text is deleted.
-If @var{start} is less than @var{end},
-the text is appended, otherwise prepended. If the last command was
-not a kill, a new kill ring slot is used.
-@end deftypefun
-
-@deftypefun int rl_push_macro_input (char *macro)
-Cause @var{macro} to be inserted into the line, as if it had been invoked
-by a key bound to a macro. Not especially useful; use
-@code{rl_insert_text()} instead.
-@end deftypefun
-
-@node Character Input
-@subsection Character Input
-
-@deftypefun int rl_read_key (void)
-Return the next character available from Readline's current input stream.
-This handles input inserted into
-the input stream via @var{rl_pending_input} (@pxref{Readline Variables})
-and @code{rl_stuff_char()}, macros, and characters read from the keyboard.
-While waiting for input, this function will call any function assigned to
-the @code{rl_event_hook} variable.
-@end deftypefun
-
-@deftypefun int rl_getc (FILE *stream)
-Return the next character available from @var{stream}, which is assumed to
-be the keyboard.
-@end deftypefun
-
-@deftypefun int rl_stuff_char (int c)
-Insert @var{c} into the Readline input stream. It will be "read"
-before Readline attempts to read characters from the terminal with
-@code{rl_read_key()}. Up to 512 characters may be pushed back.
-@code{rl_stuff_char} returns 1 if the character was successfully inserted;
-0 otherwise.
-@end deftypefun
-
-@deftypefun int rl_execute_next (int c)
-Make @var{c} be the next command to be executed when @code{rl_read_key()}
-is called. This sets @var{rl_pending_input}.
-@end deftypefun
-
-@deftypefun int rl_clear_pending_input (void)
-Unset @var{rl_pending_input}, effectively negating the effect of any
-previous call to @code{rl_execute_next()}. This works only if the
-pending input has not already been read with @code{rl_read_key()}.
-@end deftypefun
-
-@deftypefun int rl_set_keyboard_input_timeout (int u)
-While waiting for keyboard input in @code{rl_read_key()}, Readline will
-wait for @var{u} microseconds for input before calling any function
-assigned to @code{rl_event_hook}. The default waiting period is
-one-tenth of a second. Returns the old timeout value.
-@end deftypefun
-
-@node Terminal Management
-@subsection Terminal Management
-
-@deftypefun void rl_prep_terminal (int meta_flag)
-Modify the terminal settings for Readline's use, so @code{readline()}
-can read a single character at a time from the keyboard.
-The @var{meta_flag} argument should be non-zero if Readline should
-read eight-bit input.
-@end deftypefun
-
-@deftypefun void rl_deprep_terminal (void)
-Undo the effects of @code{rl_prep_terminal()}, leaving the terminal in
-the state in which it was before the most recent call to
-@code{rl_prep_terminal()}.
-@end deftypefun
-
-@deftypefun void rl_tty_set_default_bindings (Keymap kmap)
-Read the operating system's terminal editing characters (as would be displayed
-by @code{stty}) to their Readline equivalents. The bindings are performed
-in @var{kmap}.
-@end deftypefun
-
-@deftypefun int rl_reset_terminal (const char *terminal_name)
-Reinitialize Readline's idea of the terminal settings using
-@var{terminal_name} as the terminal type (e.g., @code{vt100}).
-If @var{terminal_name} is @code{NULL}, the value of the @code{TERM}
-environment variable is used.
-@end deftypefun
-
-@node Utility Functions
-@subsection Utility Functions
-
-@deftypefun void rl_replace_line (const char *text, int clear_undo)
-Replace the contents of @code{rl_line_buffer} with @var{text}.
-The point and mark are preserved, if possible.
-If @var{clear_undo} is non-zero, the undo list associated with the
-current line is cleared.
-@end deftypefun
-
-@deftypefun int rl_extend_line_buffer (int len)
-Ensure that @code{rl_line_buffer} has enough space to hold @var{len}
-characters, possibly reallocating it if necessary.
-@end deftypefun
-
-@deftypefun int rl_initialize (void)
-Initialize or re-initialize Readline's internal state.
-It's not strictly necessary to call this; @code{readline()} calls it before
-reading any input.
-@end deftypefun
-
-@deftypefun int rl_ding (void)
-Ring the terminal bell, obeying the setting of @code{bell-style}.
-@end deftypefun
-
-@deftypefun int rl_alphabetic (int c)
-Return 1 if @var{c} is an alphabetic character.
-@end deftypefun
-
-@deftypefun void rl_display_match_list (char **matches, int len, int max)
-A convenience function for displaying a list of strings in
-columnar format on Readline's output stream. @code{matches} is the list
-of strings, in argv format, such as a list of completion matches.
-@code{len} is the number of strings in @code{matches}, and @code{max}
-is the length of the longest string in @code{matches}. This function uses
-the setting of @code{print-completions-horizontally} to select how the
-matches are displayed (@pxref{Readline Init File Syntax}).
-@end deftypefun
-
-The following are implemented as macros, defined in @code{chardefs.h}.
-Applications should refrain from using them.
-
-@deftypefun int _rl_uppercase_p (int c)
-Return 1 if @var{c} is an uppercase alphabetic character.
-@end deftypefun
-
-@deftypefun int _rl_lowercase_p (int c)
-Return 1 if @var{c} is a lowercase alphabetic character.
-@end deftypefun
-
-@deftypefun int _rl_digit_p (int c)
-Return 1 if @var{c} is a numeric character.
-@end deftypefun
-
-@deftypefun int _rl_to_upper (int c)
-If @var{c} is a lowercase alphabetic character, return the corresponding
-uppercase character.
-@end deftypefun
-
-@deftypefun int _rl_to_lower (int c)
-If @var{c} is an uppercase alphabetic character, return the corresponding
-lowercase character.
-@end deftypefun
-
-@deftypefun int _rl_digit_value (int c)
-If @var{c} is a number, return the value it represents.
-@end deftypefun
-
-@node Miscellaneous Functions
-@subsection Miscellaneous Functions
-
-@deftypefun int rl_macro_bind (const char *keyseq, const char *macro, Keymap map)
-Bind the key sequence @var{keyseq} to invoke the macro @var{macro}.
-The binding is performed in @var{map}. When @var{keyseq} is invoked, the
-@var{macro} will be inserted into the line. This function is deprecated;
-use @code{rl_generic_bind()} instead.
-@end deftypefun
-
-@deftypefun void rl_macro_dumper (int readable)
-Print the key sequences bound to macros and their values, using
-the current keymap, to @code{rl_outstream}.
-If @var{readable} is non-zero, the list is formatted in such a way
-that it can be made part of an @code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun int rl_variable_bind (const char *variable, const char *value)
-Make the Readline variable @var{variable} have @var{value}.
-This behaves as if the readline command
-@samp{set @var{variable} @var{value}} had been executed in an @code{inputrc}
-file (@pxref{Readline Init File Syntax}).
-@end deftypefun
-
-@deftypefun void rl_variable_dumper (int readable)
-Print the readline variable names and their current values
-to @code{rl_outstream}.
-If @var{readable} is non-zero, the list is formatted in such a way
-that it can be made part of an @code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun int rl_set_paren_blink_timeout (int u)
-Set the time interval (in microseconds) that Readline waits when showing
-a balancing character when @code{blink-matching-paren} has been enabled.
-@end deftypefun
-
-@deftypefun {char *} rl_get_termcap (const char *cap)
-Retrieve the string value of the termcap capability @var{cap}.
-Readline fetches the termcap entry for the current terminal name and
-uses those capabilities to move around the screen line and perform other
-terminal-specific operations, like erasing a line. Readline does not
-use all of a terminal's capabilities, and this function will return
-values for only those capabilities Readline uses.
-@end deftypefun
-
-@node Alternate Interface
-@subsection Alternate Interface
-
-An alternate interface is available to plain @code{readline()}. Some
-applications need to interleave keyboard I/O with file, device, or
-window system I/O, typically by using a main loop to @code{select()}
-on various file descriptors. To accomodate this need, readline can
-also be invoked as a `callback' function from an event loop. There
-are functions available to make this easy.
-
-@deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler)
-Set up the terminal for readline I/O and display the initial
-expanded value of @var{prompt}. Save the value of @var{lhandler} to
-use as a function to call when a complete line of input has been entered.
-The function takes the text of the line as an argument.
-@end deftypefun
-
-@deftypefun void rl_callback_read_char (void)
-Whenever an application determines that keyboard input is available, it
-should call @code{rl_callback_read_char()}, which will read the next
-character from the current input source.
-If that character completes the line, @code{rl_callback_read_char} will
-invoke the @var{lhandler} function saved by @code{rl_callback_handler_install}
-to process the line.
-Before calling the @var{lhandler} function, the terminal settings are
-reset to the values they had before calling
-@code{rl_callback_handler_install}.
-If the @var{lhandler} function returns,
-the terminal settings are modified for Readline's use again.
-@code{EOF} is indicated by calling @var{lhandler} with a
-@code{NULL} line.
-@end deftypefun
-
-@deftypefun void rl_callback_handler_remove (void)
-Restore the terminal to its initial state and remove the line handler.
-This may be called from within a callback as well as independently.
-If the @var{lhandler} installed by @code{rl_callback_handler_install}
-does not exit the program, either this function or the function referred
-to by the value of @code{rl_deprep_term_function} should be called before
-the program exits to reset the terminal settings.
-@end deftypefun
-
-@node A Readline Example
-@subsection A Readline Example
-
-Here is a function which changes lowercase characters to their uppercase
-equivalents, and uppercase characters to lowercase. If
-this function was bound to @samp{M-c}, then typing @samp{M-c} would
-change the case of the character under point. Typing @samp{M-1 0 M-c}
-would change the case of the following 10 characters, leaving the cursor on
-the last character changed.
-
-@example
-/* Invert the case of the COUNT following characters. */
-int
-invert_case_line (count, key)
- int count, key;
-@{
- register int start, end, i;
-
- start = rl_point;
-
- if (rl_point >= rl_end)
- return (0);
-
- if (count < 0)
- @{
- direction = -1;
- count = -count;
- @}
- else
- direction = 1;
-
- /* Find the end of the range to modify. */
- end = start + (count * direction);
-
- /* Force it to be within range. */
- if (end > rl_end)
- end = rl_end;
- else if (end < 0)
- end = 0;
-
- if (start == end)
- return (0);
-
- if (start > end)
- @{
- int temp = start;
- start = end;
- end = temp;
- @}
-
- /* Tell readline that we are modifying the line,
- so it will save the undo information. */
- rl_modifying (start, end);
-
- for (i = start; i != end; i++)
- @{
- if (_rl_uppercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
- else if (_rl_lowercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
- @}
- /* Move point to on top of the last character changed. */
- rl_point = (direction == 1) ? end - 1 : start;
- return (0);
-@}
-@end example
-
-@node Readline Signal Handling
-@section Readline Signal Handling
-
-Signals are asynchronous events sent to a process by the Unix kernel,
-sometimes on behalf of another process. They are intended to indicate
-exceptional events, like a user pressing the interrupt key on his terminal,
-or a network connection being broken. There is a class of signals that can
-be sent to the process currently reading input from the keyboard. Since
-Readline changes the terminal attributes when it is called, it needs to
-perform special processing when such a signal is received in order to
-restore the terminal to a sane state, or provide application writers with
-functions to do so manually.
-
-Readline contains an internal signal handler that is installed for a
-number of signals (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM},
-@code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}).
-When one of these signals is received, the signal handler
-will reset the terminal attributes to those that were in effect before
-@code{readline()} was called, reset the signal handling to what it was
-before @code{readline()} was called, and resend the signal to the calling
-application.
-If and when the calling application's signal handler returns, Readline
-will reinitialize the terminal and continue to accept input.
-When a @code{SIGINT} is received, the Readline signal handler performs
-some additional work, which will cause any partially-entered line to be
-aborted (see the description of @code{rl_free_line_state()} below).
-
-There is an additional Readline signal handler, for @code{SIGWINCH}, which
-the kernel sends to a process whenever the terminal's size changes (for
-example, if a user resizes an @code{xterm}). The Readline @code{SIGWINCH}
-handler updates Readline's internal screen size information, and then calls
-any @code{SIGWINCH} signal handler the calling application has installed.
-Readline calls the application's @code{SIGWINCH} signal handler without
-resetting the terminal to its original state. If the application's signal
-handler does more than update its idea of the terminal size and return (for
-example, a @code{longjmp} back to a main processing loop), it @emph{must}
-call @code{rl_cleanup_after_signal()} (described below), to restore the
-terminal state.
-
-Readline provides two variables that allow application writers to
-control whether or not it will catch certain signals and act on them
-when they are received. It is important that applications change the
-values of these variables only when calling @code{readline()}, not in
-a signal handler, so Readline's internal signal state is not corrupted.
-
-@deftypevar int rl_catch_signals
-If this variable is non-zero, Readline will install signal handlers for
-@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGALRM},
-@code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}.
-
-The default value of @code{rl_catch_signals} is 1.
-@end deftypevar
-
-@deftypevar int rl_catch_sigwinch
-If this variable is non-zero, Readline will install a signal handler for
-@code{SIGWINCH}.
-
-The default value of @code{rl_catch_sigwinch} is 1.
-@end deftypevar
-
-If an application does not wish to have Readline catch any signals, or
-to handle signals other than those Readline catches (@code{SIGHUP},
-for example),
-Readline provides convenience functions to do the necessary terminal
-and internal state cleanup upon receipt of a signal.
-
-@deftypefun void rl_cleanup_after_signal (void)
-This function will reset the state of the terminal to what it was before
-@code{readline()} was called, and remove the Readline signal handlers for
-all signals, depending on the values of @code{rl_catch_signals} and
-@code{rl_catch_sigwinch}.
-@end deftypefun
-
-@deftypefun void rl_free_line_state (void)
-This will free any partial state associated with the current input line
-(undo information, any partial history entry, any partially-entered
-keyboard macro, and any partially-entered numeric argument). This
-should be called before @code{rl_cleanup_after_signal()}. The
-Readline signal handler for @code{SIGINT} calls this to abort the
-current input line.
-@end deftypefun
-
-@deftypefun void rl_reset_after_signal (void)
-This will reinitialize the terminal and reinstall any Readline signal
-handlers, depending on the values of @code{rl_catch_signals} and
-@code{rl_catch_sigwinch}.
-@end deftypefun
-
-If an application does not wish Readline to catch @code{SIGWINCH}, it may
-call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force
-Readline to update its idea of the terminal size when a @code{SIGWINCH}
-is received.
-
-@deftypefun void rl_resize_terminal (void)
-Update Readline's internal screen size by reading values from the kernel.
-@end deftypefun
-
-@deftypefun void rl_set_screen_size (int rows, int cols)
-Set Readline's idea of the terminal size to @var{rows} rows and
-@var{cols} columns.
-@end deftypefun
-
-If an application does not want to install a @code{SIGWINCH} handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
-
-@deftypefun void rl_get_screen_size (int *rows, int *cols)
-Return Readline's idea of the terminal's size in the
-variables pointed to by the arguments.
-@end deftypefun
-
-The following functions install and remove Readline's signal handlers.
-
-@deftypefun int rl_set_signals (void)
-Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT},
-@code{SIGTERM}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN},
-@code{SIGTTOU}, and @code{SIGWINCH}, depending on the values of
-@code{rl_catch_signals} and @code{rl_catch_sigwinch}.
-@end deftypefun
-
-@deftypefun int rl_clear_signals (void)
-Remove all of the Readline signal handlers installed by
-@code{rl_set_signals()}.
-@end deftypefun
-
-@node Custom Completers
-@section Custom Completers
-
-Typically, a program that reads commands from the user has a way of
-disambiguating commands and data. If your program is one of these, then
-it can provide completion for commands, data, or both.
-The following sections describe how your program and Readline
-cooperate to provide this service.
-
-@menu
-* How Completing Works:: The logic used to do completion.
-* Completion Functions:: Functions provided by Readline.
-* Completion Variables:: Variables which control completion.
-* A Short Completion Example:: An example of writing completer subroutines.
-@end menu
-
-@node How Completing Works
-@subsection How Completing Works
-
-In order to complete some text, the full list of possible completions
-must be available. That is, it is not possible to accurately
-expand a partial word without knowing all of the possible words
-which make sense in that context. The Readline library provides
-the user interface to completion, and two of the most common
-completion functions: filename and username. For completing other types
-of text, you must write your own completion function. This section
-describes exactly what such functions must do, and provides an example.
-
-There are three major functions used to perform completion:
-
-@enumerate
-@item
-The user-interface function @code{rl_complete()}. This function is
-called with the same arguments as other bindable Readline functions:
-@var{count} and @var{invoking_key}.
-It isolates the word to be completed and calls
-@code{rl_completion_matches()} to generate a list of possible completions.
-It then either lists the possible completions, inserts the possible
-completions, or actually performs the
-completion, depending on which behavior is desired.
-
-@item
-The internal function @code{rl_completion_matches()} uses an
-application-supplied @dfn{generator} function to generate the list of
-possible matches, and then returns the array of these matches.
-The caller should place the address of its generator function in
-@code{rl_completion_entry_function}.
-
-@item
-The generator function is called repeatedly from
-@code{rl_completion_matches()}, returning a string each time. The
-arguments to the generator function are @var{text} and @var{state}.
-@var{text} is the partial word to be completed. @var{state} is zero the
-first time the function is called, allowing the generator to perform
-any necessary initialization, and a positive non-zero integer for
-each subsequent call. The generator function returns
-@code{(char *)NULL} to inform @code{rl_completion_matches()} that there are
-no more possibilities left. Usually the generator function computes the
-list of possible completions when @var{state} is zero, and returns them
-one at a time on subsequent calls. Each string the generator function
-returns as a match must be allocated with @code{malloc()}; Readline
-frees the strings when it has finished with them.
-
-@end enumerate
-
-@deftypefun int rl_complete (int ignore, int invoking_key)
-Complete the word at or before point. You have supplied the function
-that does the initial simple matching selection algorithm (see
-@code{rl_completion_matches()}). The default is to do filename completion.
-@end deftypefun
-
-@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
-This is a pointer to the generator function for
-@code{rl_completion_matches()}.
-If the value of @code{rl_completion_entry_function} is
-@code{NULL} then the default filename generator
-function, @code{rl_filename_completion_function()}, is used.
-@end deftypevar
-
-@node Completion Functions
-@subsection Completion Functions
-
-Here is the complete list of callable completion functions present in
-Readline.
-
-@deftypefun int rl_complete_internal (int what_to_do)
-Complete the word at or before point. @var{what_to_do} says what to do
-with the completion. A value of @samp{?} means list the possible
-completions. @samp{TAB} means do standard completion. @samp{*} means
-insert all of the possible completions. @samp{!} means to display
-all of the possible completions, if there is more than one, as well as
-performing partial completion.
-@end deftypefun
-
-@deftypefun int rl_complete (int ignore, int invoking_key)
-Complete the word at or before point. You have supplied the function
-that does the initial simple matching selection algorithm (see
-@code{rl_completion_matches()} and @code{rl_completion_entry_function}).
-The default is to do filename
-completion. This calls @code{rl_complete_internal()} with an
-argument depending on @var{invoking_key}.
-@end deftypefun
-
-@deftypefun int rl_possible_completions (int count, int invoking_key)
-List the possible completions. See description of @code{rl_complete
-()}. This calls @code{rl_complete_internal()} with an argument of
-@samp{?}.
-@end deftypefun
-
-@deftypefun int rl_insert_completions (int count, int invoking_key)
-Insert the list of possible completions into the line, deleting the
-partially-completed word. See description of @code{rl_complete()}.
-This calls @code{rl_complete_internal()} with an argument of @samp{*}.
-@end deftypefun
-
-@deftypefun int rl_completion_mode (rl_command_func_t *cfunc)
-Returns the apppriate value to pass to @code{rl_complete_internal()}
-depending on whether @var{cfunc} was called twice in succession and
-the value of the @code{show-all-if-ambiguous} variable.
-Application-specific completion functions may use this function to present
-the same interface as @code{rl_complete()}.
-@end deftypefun
-
-@deftypefun {char **} rl_completion_matches (const char *text, rl_compentry_func_t *entry_func)
-Returns an array of strings which is a list of completions for
-@var{text}. If there are no completions, returns @code{NULL}.
-The first entry in the returned array is the substitution for @var{text}.
-The remaining entries are the possible completions. The array is
-terminated with a @code{NULL} pointer.
-
-@var{entry_func} is a function of two args, and returns a
-@code{char *}. The first argument is @var{text}. The second is a
-state argument; it is zero on the first call, and non-zero on subsequent
-calls. @var{entry_func} returns a @code{NULL} pointer to the caller
-when there are no more matches.
-@end deftypefun
-
-@deftypefun {char *} rl_filename_completion_function (const char *text, int state)
-A generator function for filename completion in the general case.
-@var{text} is a partial filename.
-The Bash source is a useful reference for writing custom
-completion functions (the Bash completion functions call this and other
-Readline functions).
-@end deftypefun
-
-@deftypefun {char *} rl_username_completion_function (const char *text, int state)
-A completion generator for usernames. @var{text} contains a partial
-username preceded by a random character (usually @samp{~}). As with all
-completion generators, @var{state} is zero on the first call and non-zero
-for subsequent calls.
-@end deftypefun
-
-@node Completion Variables
-@subsection Completion Variables
-
-@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
-A pointer to the generator function for @code{rl_completion_matches()}.
-@code{NULL} means to use @code{rl_filename_completion_function()}, the default
-filename completer.
-@end deftypevar
-
-@deftypevar {rl_completion_func_t *} rl_attempted_completion_function
-A pointer to an alternative function to create matches.
-The function is called with @var{text}, @var{start}, and @var{end}.
-@var{start} and @var{end} are indices in @code{rl_line_buffer} defining
-the boundaries of @var{text}, which is a character string.
-If this function exists and returns @code{NULL}, or if this variable is
-set to @code{NULL}, then @code{rl_complete()} will call the value of
-@code{rl_completion_entry_function} to generate matches, otherwise the
-array of strings returned will be used.
-If this function sets the @code{rl_attempted_completion_over}
-variable to a non-zero value, Readline will not perform its default
-completion even if this function returns no matches.
-@end deftypevar
-
-@deftypevar {rl_quote_func_t *} rl_filename_quoting_function
-A pointer to a function that will quote a filename in an
-application-specific fashion. This is called if filename completion is being
-attempted and one of the characters in @code{rl_filename_quote_characters}
-appears in a completed filename. The function is called with
-@var{text}, @var{match_type}, and @var{quote_pointer}. The @var{text}
-is the filename to be quoted. The @var{match_type} is either
-@code{SINGLE_MATCH}, if there is only one completion match, or
-@code{MULT_MATCH}. Some functions use this to decide whether or not to
-insert a closing quote character. The @var{quote_pointer} is a pointer
-to any opening quote character the user typed. Some functions choose
-to reset this character.
-@end deftypevar
-
-@deftypevar {rl_dequote_func_t *} rl_filename_dequoting_function
-A pointer to a function that will remove application-specific quoting
-characters from a filename before completion is attempted, so those
-characters do not interfere with matching the text against names in
-the filesystem. It is called with @var{text}, the text of the word
-to be dequoted, and @var{quote_char}, which is the quoting character
-that delimits the filename (usually @samp{'} or @samp{"}). If
-@var{quote_char} is zero, the filename was not in an embedded string.
-@end deftypevar
-
-@deftypevar {rl_linebuf_func_t *} rl_char_is_quoted_p
-A pointer to a function to call that determines whether or not a specific
-character in the line buffer is quoted, according to whatever quoting
-mechanism the program calling Readline uses. The function is called with
-two arguments: @var{text}, the text of the line, and @var{index}, the
-index of the character in the line. It is used to decide whether a
-character found in @code{rl_completer_word_break_characters} should be
-used to break words for the completer.
-@end deftypevar
-
-@deftypevar {rl_compignore_func_t *} rl_ignore_some_completions_function
-This function, if defined, is called by the completer when real filename
-completion is done, after all the matching names have been generated.
-It is passed a @code{NULL} terminated array of matches.
-The first element (@code{matches[0]}) is the
-maximal substring common to all matches. This function can
-re-arrange the list of matches as required, but each element deleted
-from the array must be freed.
-@end deftypevar
-
-@deftypevar {rl_icppfunc_t *} rl_directory_completion_hook
-This function, if defined, is allowed to modify the directory portion
-of filenames Readline completes. It is called with the address of a
-string (the current directory name) as an argument, and may modify that string.
-If the string is replaced with a new string, the old value should be freed.
-Any modified directory name should have a trailing slash.
-The modified value will be displayed as part of the completion, replacing
-the directory portion of the pathname the user typed.
-It returns an integer that should be non-zero if the function modifies
-its directory argument.
-It could be used to expand symbolic links or shell variables in pathnames.
-@end deftypevar
-
-@deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook
-If non-zero, then this is the address of a function to call when
-completing a word would normally display the list of possible matches.
-This function is called in lieu of Readline displaying the list.
-It takes three arguments:
-(@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length})
-where @var{matches} is the array of matching strings,
-@var{num_matches} is the number of strings in that array, and
-@var{max_length} is the length of the longest string in that array.
-Readline provides a convenience function, @code{rl_display_match_list},
-that takes care of doing the display to Readline's output stream. That
-function may be called from this hook.
-@end deftypevar
-
-@deftypevar {const char *} rl_basic_word_break_characters
-The basic list of characters that signal a break between words for the
-completer routine. The default value of this variable is the characters
-which break words for completion in Bash:
-@code{" \t\n\"\\'`@@$><=;|&@{("}.
-@end deftypevar
-
-@deftypevar {const char *} rl_basic_quote_characters
-A list of quote characters which can cause a word break.
-@end deftypevar
-
-@deftypevar {const char *} rl_completer_word_break_characters
-The list of characters that signal a break between words for
-@code{rl_complete_internal()}. The default list is the value of
-@code{rl_basic_word_break_characters}.
-@end deftypevar
-
-@deftypevar {const char *} rl_completer_quote_characters
-A list of characters which can be used to quote a substring of the line.
-Completion occurs on the entire substring, and within the substring
-@code{rl_completer_word_break_characters} are treated as any other character,
-unless they also appear within this list.
-@end deftypevar
-
-@deftypevar {const char *} rl_filename_quote_characters
-A list of characters that cause a filename to be quoted by the completer
-when they appear in a completed filename. The default is the null string.
-@end deftypevar
-
-@deftypevar {const char *} rl_special_prefixes
-The list of characters that are word break characters, but should be
-left in @var{text} when it is passed to the completion function.
-Programs can use this to help determine what kind of completing to do.
-For instance, Bash sets this variable to "$@@" so that it can complete
-shell variables and hostnames.
-@end deftypevar
-
-@deftypevar int rl_completion_query_items
-Up to this many items will be displayed in response to a
-possible-completions call. After that, we ask the user if she is sure
-she wants to see them all. The default value is 100.
-@end deftypevar
-
-@deftypevar {int} rl_completion_append_character
-When a single completion alternative matches at the end of the command
-line, this character is appended to the inserted completion text. The
-default is a space character (@samp{ }). Setting this to the null
-character (@samp{\0}) prevents anything being appended automatically.
-This can be changed in custom completion functions to
-provide the ``most sensible word separator character'' according to
-an application-specific command line syntax specification.
-@end deftypevar
-
-@deftypevar int rl_completion_suppress_append
-If non-zero, @var{rl_completion_append_character} is not appended to
-matches at the end of the command line, as described above. It is
-set to 0 before any application-specific completion function is called.
-@end deftypevar
-
-@deftypevar int rl_completion_mark_symlink_dirs
-If non-zero, a slash will be appended to completed filenames that are
-symbolic links to directory names, subject to the value of the
-user-settable @var{mark-directories} variable.
-This variable exists so that application completion functions can
-override the user's global preference (set via the
-@var{mark-symlinked-directories} Readline variable) if appropriate.
-This variable is set to the user's preference before any
-application completion function is called, so unless that function
-modifies the value, the user's preferences are honored.
-@end deftypevar
-
-@deftypevar int rl_ignore_completion_duplicates
-If non-zero, then duplicates in the matches are removed.
-The default is 1.
-@end deftypevar
-
-@deftypevar int rl_filename_completion_desired
-Non-zero means that the results of the matches are to be treated as
-filenames. This is @emph{always} zero on entry, and can only be changed
-within a completion entry generator function. If it is set to a non-zero
-value, directory names have a slash appended and Readline attempts to
-quote completed filenames if they contain any characters in
-@code{rl_filename_quote_characters} and @code{rl_filename_quoting_desired}
-is set to a non-zero value.
-@end deftypevar
-
-@deftypevar int rl_filename_quoting_desired
-Non-zero means that the results of the matches are to be quoted using
-double quotes (or an application-specific quoting mechanism) if the
-completed filename contains any characters in
-@code{rl_filename_quote_chars}. This is @emph{always} non-zero
-on entry, and can only be changed within a completion entry generator
-function. The quoting is effected via a call to the function pointed to
-by @code{rl_filename_quoting_function}.
-@end deftypevar
-
-@deftypevar int rl_attempted_completion_over
-If an application-specific completion function assigned to
-@code{rl_attempted_completion_function} sets this variable to a non-zero
-value, Readline will not perform its default filename completion even
-if the application's completion function returns no matches.
-It should be set only by an application's completion function.
-@end deftypevar
-
-@deftypevar int rl_completion_type
-Set to a character describing the type of completion Readline is currently
-attempting; see the description of @code{rl_complete_internal()}
-(@pxref{Completion Functions}) for the list of characters.
-@end deftypevar
-
-@deftypevar int rl_inhibit_completion
-If this variable is non-zero, completion is inhibited. The completion
-character will be inserted as any other bound to @code{self-insert}.
-@end deftypevar
-
-@node A Short Completion Example
-@subsection A Short Completion Example
-
-Here is a small application demonstrating the use of the GNU Readline
-library. It is called @code{fileman}, and the source code resides in
-@file{examples/fileman.c}. This sample application provides
-completion of command names, line editing features, and access to the
-history list.
-
-@page
-@smallexample
-/* fileman.c -- A tiny application which demonstrates how to use the
- GNU Readline library. This application interactively allows users
- to manipulate files and their modes. */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/errno.h>
-
-#include <readline/readline.h>
-#include <readline/history.h>
-
-extern char *xmalloc ();
-
-/* The names of functions that actually do the manipulation. */
-int com_list __P((char *));
-int com_view __P((char *));
-int com_rename __P((char *));
-int com_stat __P((char *));
-int com_pwd __P((char *));
-int com_delete __P((char *));
-int com_help __P((char *));
-int com_cd __P((char *));
-int com_quit __P((char *));
-
-/* A structure which contains information on the commands this program
- can understand. */
-
-typedef struct @{
- char *name; /* User printable name of the function. */
- rl_icpfunc_t *func; /* Function to call to do the job. */
- char *doc; /* Documentation for this function. */
-@} COMMAND;
-
-COMMAND commands[] = @{
- @{ "cd", com_cd, "Change to directory DIR" @},
- @{ "delete", com_delete, "Delete FILE" @},
- @{ "help", com_help, "Display this text" @},
- @{ "?", com_help, "Synonym for `help'" @},
- @{ "list", com_list, "List files in DIR" @},
- @{ "ls", com_list, "Synonym for `list'" @},
- @{ "pwd", com_pwd, "Print the current working directory" @},
- @{ "quit", com_quit, "Quit using Fileman" @},
- @{ "rename", com_rename, "Rename FILE to NEWNAME" @},
- @{ "stat", com_stat, "Print out statistics on FILE" @},
- @{ "view", com_view, "View the contents of FILE" @},
- @{ (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL @}
-@};
-
-/* Forward declarations. */
-char *stripwhite ();
-COMMAND *find_command ();
-
-/* The name of this program, as taken from argv[0]. */
-char *progname;
-
-/* When non-zero, this means the user is done using this program. */
-int done;
-
-char *
-dupstr (s)
- int s;
-@{
- char *r;
-
- r = xmalloc (strlen (s) + 1);
- strcpy (r, s);
- return (r);
-@}
-
-main (argc, argv)
- int argc;
- char **argv;
-@{
- char *line, *s;
-
- progname = argv[0];
-
- initialize_readline (); /* Bind our completer. */
-
- /* Loop reading and executing lines until the user quits. */
- for ( ; done == 0; )
- @{
- line = readline ("FileMan: ");
-
- if (!line)
- break;
-
- /* Remove leading and trailing whitespace from the line.
- Then, if there is anything left, add it to the history list
- and execute it. */
- s = stripwhite (line);
-
- if (*s)
- @{
- add_history (s);
- execute_line (s);
- @}
-
- free (line);
- @}
- exit (0);
-@}
-
-/* Execute a command line. */
-int
-execute_line (line)
- char *line;
-@{
- register int i;
- COMMAND *command;
- char *word;
-
- /* Isolate the command word. */
- i = 0;
- while (line[i] && whitespace (line[i]))
- i++;
- word = line + i;
-
- while (line[i] && !whitespace (line[i]))
- i++;
-
- if (line[i])
- line[i++] = '\0';
-
- command = find_command (word);
-
- if (!command)
- @{
- fprintf (stderr, "%s: No such command for FileMan.\n", word);
- return (-1);
- @}
-
- /* Get argument to command, if any. */
- while (whitespace (line[i]))
- i++;
-
- word = line + i;
-
- /* Call the function. */
- return ((*(command->func)) (word));
-@}
-
-/* Look up NAME as the name of a command, and return a pointer to that
- command. Return a NULL pointer if NAME isn't a command name. */
-COMMAND *
-find_command (name)
- char *name;
-@{
- register int i;
-
- for (i = 0; commands[i].name; i++)
- if (strcmp (name, commands[i].name) == 0)
- return (&commands[i]);
-
- return ((COMMAND *)NULL);
-@}
-
-/* Strip whitespace from the start and end of STRING. Return a pointer
- into STRING. */
-char *
-stripwhite (string)
- char *string;
-@{
- register char *s, *t;
-
- for (s = string; whitespace (*s); s++)
- ;
-
- if (*s == 0)
- return (s);
-
- t = s + strlen (s) - 1;
- while (t > s && whitespace (*t))
- t--;
- *++t = '\0';
-
- return s;
-@}
-
-/* **************************************************************** */
-/* */
-/* Interface to Readline Completion */
-/* */
-/* **************************************************************** */
-
-char *command_generator __P((const char *, int));
-char **fileman_completion __P((const char *, int, int));
-
-/* Tell the GNU Readline library how to complete. We want to try to
- complete on command names if this is the first word in the line, or
- on filenames if not. */
-initialize_readline ()
-@{
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "FileMan";
-
- /* Tell the completer that we want a crack first. */
- rl_attempted_completion_function = fileman_completion;
-@}
-
-/* Attempt to complete on the contents of TEXT. START and END
- bound the region of rl_line_buffer that contains the word to
- complete. TEXT is the word to complete. We can use the entire
- contents of rl_line_buffer in case we want to do some simple
- parsing. Returnthe array of matches, or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
- const char *text;
- int start, end;
-@{
- char **matches;
-
- matches = (char **)NULL;
-
- /* If this word is at the start of the line, then it is a command
- to complete. Otherwise it is the name of a file in the current
- directory. */
- if (start == 0)
- matches = rl_completion_matches (text, command_generator);
-
- return (matches);
-@}
-
-/* Generator function for command completion. STATE lets us
- know whether to start from scratch; without any state
- (i.e. STATE == 0), then we start at the top of the list. */
-char *
-command_generator (text, state)
- const char *text;
- int state;
-@{
- static int list_index, len;
- char *name;
-
- /* If this is a new word to complete, initialize now. This
- includes saving the length of TEXT for efficiency, and
- initializing the index variable to 0. */
- if (!state)
- @{
- list_index = 0;
- len = strlen (text);
- @}
-
- /* Return the next name which partially matches from the
- command list. */
- while (name = commands[list_index].name)
- @{
- list_index++;
-
- if (strncmp (name, text, len) == 0)
- return (dupstr(name));
- @}
-
- /* If no names matched, then return NULL. */
- return ((char *)NULL);
-@}
-
-/* **************************************************************** */
-/* */
-/* FileMan Commands */
-/* */
-/* **************************************************************** */
-
-/* String to pass to system (). This is for the LIST, VIEW and RENAME
- commands. */
-static char syscom[1024];
-
-/* List the file(s) named in arg. */
-com_list (arg)
- char *arg;
-@{
- if (!arg)
- arg = "";
-
- sprintf (syscom, "ls -FClg %s", arg);
- return (system (syscom));
-@}
-
-com_view (arg)
- char *arg;
-@{
- if (!valid_argument ("view", arg))
- return 1;
-
- sprintf (syscom, "more %s", arg);
- return (system (syscom));
-@}
-
-com_rename (arg)
- char *arg;
-@{
- too_dangerous ("rename");
- return (1);
-@}
-
-com_stat (arg)
- char *arg;
-@{
- struct stat finfo;
-
- if (!valid_argument ("stat", arg))
- return (1);
-
- if (stat (arg, &finfo) == -1)
- @{
- perror (arg);
- return (1);
- @}
-
- printf ("Statistics for `%s':\n", arg);
-
- printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
- finfo.st_nlink,
- (finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
- (finfo.st_size == 1) ? "" : "s");
- printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
- printf (" Last access at: %s", ctime (&finfo.st_atime));
- printf (" Last modified at: %s", ctime (&finfo.st_mtime));
- return (0);
-@}
-
-com_delete (arg)
- char *arg;
-@{
- too_dangerous ("delete");
- return (1);
-@}
-
-/* Print out help for ARG, or for all of the commands if ARG is
- not present. */
-com_help (arg)
- char *arg;
-@{
- register int i;
- int printed = 0;
-
- for (i = 0; commands[i].name; i++)
- @{
- if (!*arg || (strcmp (arg, commands[i].name) == 0))
- @{
- printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
- printed++;
- @}
- @}
-
- if (!printed)
- @{
- printf ("No commands match `%s'. Possibilties are:\n", arg);
-
- for (i = 0; commands[i].name; i++)
- @{
- /* Print in six columns. */
- if (printed == 6)
- @{
- printed = 0;
- printf ("\n");
- @}
-
- printf ("%s\t", commands[i].name);
- printed++;
- @}
-
- if (printed)
- printf ("\n");
- @}
- return (0);
-@}
-
-/* Change to the directory ARG. */
-com_cd (arg)
- char *arg;
-@{
- if (chdir (arg) == -1)
- @{
- perror (arg);
- return 1;
- @}
-
- com_pwd ("");
- return (0);
-@}
-
-/* Print out the current working directory. */
-com_pwd (ignore)
- char *ignore;
-@{
- char dir[1024], *s;
-
- s = getcwd (dir, sizeof(dir) - 1);
- if (s == 0)
- @{
- printf ("Error getting pwd: %s\n", dir);
- return 1;
- @}
-
- printf ("Current directory is %s\n", dir);
- return 0;
-@}
-
-/* The user wishes to quit using this program. Just set DONE
- non-zero. */
-com_quit (arg)
- char *arg;
-@{
- done = 1;
- return (0);
-@}
-
-/* Function which tells you that you can't do this. */
-too_dangerous (caller)
- char *caller;
-@{
- fprintf (stderr,
- "%s: Too dangerous for me to distribute.\n"
- caller);
- fprintf (stderr, "Write it yourself.\n");
-@}
-
-/* Return non-zero if ARG is a valid argument for CALLER,
- else print an error message and return zero. */
-int
-valid_argument (caller, arg)
- char *caller, *arg;
-@{
- if (!arg || !*arg)
- @{
- fprintf (stderr, "%s: Argument required.\n", caller);
- return (0);
- @}
-
- return (1);
-@}
-@end smallexample
diff --git a/readline-4.3.orig/doc/rluser.texinfo b/readline-4.3.orig/doc/rluser.texinfo
deleted file mode 100644
index 94f851e..0000000
--- a/readline-4.3.orig/doc/rluser.texinfo
+++ /dev/null
@@ -1,1796 +0,0 @@
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rluser.info
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@ignore
-This file documents the end user interface to the GNU command line
-editing features. It is to be an appendix to manuals for programs which
-use these features. There is a document entitled "readline.texinfo"
-which contains both end-user and programmer documentation for the
-GNU Readline Library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@comment If you are including this manual as an appendix, then set the
-@comment variable readline-appendix.
-
-@ifclear BashFeatures
-@defcodeindex bt
-@end ifclear
-
-@node Command Line Editing
-@chapter Command Line Editing
-
-This chapter describes the basic features of the @sc{gnu}
-command line editing interface.
-@ifset BashFeatures
-Command line editing is provided by the Readline library, which is
-used by several different programs, including Bash.
-@end ifset
-
-@menu
-* Introduction and Notation:: Notation used in this text.
-* Readline Interaction:: The minimum set of commands for editing a line.
-* Readline Init File:: Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
- available for binding
-* Readline vi Mode:: A short description of how to make Readline
- behave like the vi editor.
-@ifset BashFeatures
-* Programmable Completion:: How to specify the possible completions for
- a specific command.
-* Programmable Completion Builtins:: Builtin commands to specify how to
- complete arguments for a particular command.
-@end ifset
-@end menu
-
-@node Introduction and Notation
-@section Introduction to Line Editing
-
-The following paragraphs describe the notation used to represent
-keystrokes.
-
-The text @kbd{C-k} is read as `Control-K' and describes the character
-produced when the @key{k} key is pressed while the Control key
-is depressed.
-
-The text @kbd{M-k} is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the @key{k}
-key is pressed.
-The Meta key is labeled @key{ALT} on many keyboards.
-On keyboards with two keys labeled @key{ALT} (usually to either side of
-the space bar), the @key{ALT} on the left side is generally set to
-work as a Meta key.
-The @key{ALT} key on the right may also be configured to work as a
-Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
-If you do not have a Meta or @key{ALT} key, or another key working as
-a Meta key, the identical keystroke can be generated by typing @key{ESC}
-@emph{first}, and then typing @key{k}.
-Either process is known as @dfn{metafying} the @key{k} key.
-
-The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the
-character produced by @dfn{metafying} @kbd{C-k}.
-
-In addition, several keys have their own names. Specifically,
-@key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all
-stand for themselves when seen in this text, or in an init file
-(@pxref{Readline Init File}).
-If your keyboard lacks a @key{LFD} key, typing @key{C-j} will
-produce the desired character.
-The @key{RET} key may be labeled @key{Return} or @key{Enter} on
-some keyboards.
-
-@node Readline Interaction
-@section Readline Interaction
-@cindex interaction, readline
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press @key{RET}. You do not have to be at the
-end of the line to press @key{RET}; the entire line is accepted
-regardless of the location of the cursor within the line.
-
-@menu
-* Readline Bare Essentials:: The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands:: How to delete text, and how to get it back!
-* Readline Arguments:: Giving numeric arguments to commands.
-* Searching:: Searching through previous lines.
-@end menu
-
-@node Readline Bare Essentials
-@subsection Readline Bare Essentials
-@cindex notation, readline
-@cindex command editing
-@cindex editing command lines
-
-In order to enter characters into the line, simply type them. The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-
-Sometimes you may mistype a character, and
-not notice the error until you have typed several other characters. In
-that case, you can type @kbd{C-b} to move the cursor to the left, and then
-correct your mistake. Afterwards, you can move the cursor to the right
-with @kbd{C-f}.
-
-When you add text in the middle of a line, you will notice that characters
-to the right of the cursor are `pushed over' to make room for the text
-that you have inserted. Likewise, when you delete text behind the cursor,
-characters to the right of the cursor are `pulled back' to fill in the
-blank space created by the removal of the text. A list of the bare
-essentials for editing the text of an input line follows.
-
-@table @asis
-@item @kbd{C-b}
-Move back one character.
-@item @kbd{C-f}
-Move forward one character.
-@item @key{DEL} or @key{Backspace}
-Delete the character to the left of the cursor.
-@item @kbd{C-d}
-Delete the character underneath the cursor.
-@item @w{Printing characters}
-Insert the character into the line at the cursor.
-@item @kbd{C-_} or @kbd{C-x C-u}
-Undo the last editing command. You can undo all the way back to an
-empty line.
-@end table
-
-@noindent
-(Depending on your configuration, the @key{Backspace} key be set to
-delete the character to the left of the cursor and the @key{DEL} key set
-to delete the character underneath the cursor, like @kbd{C-d}, rather
-than the character to the left of the cursor.)
-
-@node Readline Movement Commands
-@subsection Readline Movement Commands
-
-
-The above table describes the most basic keystrokes that you need
-in order to do editing of the input line. For your convenience, many
-other commands have been added in addition to @kbd{C-b}, @kbd{C-f},
-@kbd{C-d}, and @key{DEL}. Here are some commands for moving more rapidly
-about the line.
-
-@table @kbd
-@item C-a
-Move to the start of the line.
-@item C-e
-Move to the end of the line.
-@item M-f
-Move forward a word, where a word is composed of letters and digits.
-@item M-b
-Move backward a word.
-@item C-l
-Clear the screen, reprinting the current line at the top.
-@end table
-
-Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-
-@node Readline Killing Commands
-@subsection Readline Killing Commands
-
-@cindex killing text
-@cindex yanking text
-
-@dfn{Killing} text means to delete the text from the line, but to save
-it away for later use, usually by @dfn{yanking} (re-inserting)
-it back into the line.
-(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
-
-If the description for a command says that it `kills' text, then you can
-be sure that you can get the text back in a different (or the same)
-place later.
-
-When you use a kill command, the text is saved in a @dfn{kill-ring}.
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill
-ring is not line specific; the text that you killed on a previously
-typed line is available to be yanked back later, when you are typing
-another line.
-@cindex kill ring
-
-Here is the list of commands for killing text.
-
-@table @kbd
-@item C-k
-Kill the text from the current cursor position to the end of the line.
-
-@item M-d
-Kill from the cursor to the end of the current word, or, if between
-words, to the end of the next word.
-Word boundaries are the same as those used by @kbd{M-f}.
-
-@item M-@key{DEL}
-Kill from the cursor the start of the current word, or, if between
-words, to the start of the previous word.
-Word boundaries are the same as those used by @kbd{M-b}.
-
-@item C-w
-Kill from the cursor to the previous whitespace. This is different than
-@kbd{M-@key{DEL}} because the word boundaries differ.
-
-@end table
-
-Here is how to @dfn{yank} the text back into the line. Yanking
-means to copy the most-recently-killed text from the kill buffer.
-
-@table @kbd
-@item C-y
-Yank the most recently killed text back into the buffer at the cursor.
-
-@item M-y
-Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is @kbd{C-y} or @kbd{M-y}.
-@end table
-
-@node Readline Arguments
-@subsection Readline Arguments
-
-You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the @i{sign} of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type @samp{M-- C-k}.
-
-The general way to pass numeric arguments to a command is to type meta
-digits before the command. If the first `digit' typed is a minus
-sign (@samp{-}), then the sign of the argument will be negative. Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command. For example, to give
-the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d},
-which will delete the next ten characters on the input line.
-
-@node Searching
-@subsection Searching for Commands in the History
-
-Readline provides commands for searching through the command history
-@ifset BashFeatures
-(@pxref{Bash History Facilities})
-@end ifset
-for lines containing a specified string.
-There are two search modes: @dfn{incremental} and @dfn{non-incremental}.
-
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, Readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-@kbd{C-r}. Typing @kbd{C-s} searches forward through the history.
-The characters present in the value of the @code{isearch-terminators} variable
-are used to terminate an incremental search.
-If that variable has not been assigned a value, the @key{ESC} and
-@kbd{C-J} characters will terminate an incremental search.
-@kbd{C-g} will abort an incremental search and restore the original line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-
-To find other matching entries in the history list, type @kbd{C-r} or
-@kbd{C-s} as appropriate.
-This will search backward or forward in the history for the next
-entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate
-the search and execute that command.
-For instance, a @key{RET} will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-
-Readline remembers the last incremental search string. If two
-@kbd{C-r}s are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-
-Non-incremental searches read the entire search string before starting
-to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-
-@node Readline Init File
-@section Readline Init File
-@cindex initialization file, readline
-
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings.
-Any user can customize programs that use Readline by putting
-commands in an @dfn{inputrc} file, conventionally in his home directory.
-The name of this
-@ifset BashFeatures
-file is taken from the value of the shell variable @env{INPUTRC}. If
-@end ifset
-@ifclear BashFeatures
-file is taken from the value of the environment variable @env{INPUTRC}. If
-@end ifclear
-that variable is unset, the default is @file{~/.inputrc}.
-
-When a program which uses the Readline library starts up, the
-init file is read, and the key bindings are set.
-
-In addition, the @code{C-x C-r} command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-@menu
-* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
-
-* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
-
-* Sample Init File:: An example inputrc file.
-@end menu
-
-@node Readline Init File Syntax
-@subsection Readline Init File Syntax
-
-There are only a few basic constructs allowed in the
-Readline init file. Blank lines are ignored.
-Lines beginning with a @samp{#} are comments.
-Lines beginning with a @samp{$} indicate conditional
-constructs (@pxref{Conditional Init Constructs}). Other lines
-denote variable settings and key bindings.
-
-@table @asis
-@item Variable Settings
-You can modify the run-time behavior of Readline by
-altering the values of variables in Readline
-using the @code{set} command within the init file.
-The syntax is simple:
-
-@example
-set @var{variable} @var{value}
-@end example
-
-@noindent
-Here, for example, is how to
-change from the default Emacs-like key binding to use
-@code{vi} line editing commands:
-
-@example
-set editing-mode vi
-@end example
-
-Variable names and values, where appropriate, are recognized without regard
-to case.
-
-@ifset BashFeatures
-The @w{@code{bind -V}} command lists the current Readline variable names
-and values. @xref{Bash Builtins}.
-@end ifset
-
-A great deal of run-time behavior is changeable with the following
-variables.
-
-@cindex variables, readline
-@table @code
-
-@item bell-style
-@vindex bell-style
-Controls what happens when Readline wants to ring the terminal bell.
-If set to @samp{none}, Readline never rings the bell. If set to
-@samp{visible}, Readline uses a visible bell if one is available.
-If set to @samp{audible} (the default), Readline attempts to ring
-the terminal's bell.
-
-@item comment-begin
-@vindex comment-begin
-The string to insert at the beginning of the line when the
-@code{insert-comment} command is executed. The default value
-is @code{"#"}.
-
-@item completion-ignore-case
-If set to @samp{on}, Readline performs filename matching and completion
-in a case-insensitive fashion.
-The default value is @samp{off}.
-
-@item completion-query-items
-@vindex completion-query-items
-The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities. If the
-number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
-This variable must be set to an integer value greater than or equal to 0.
-The default limit is @code{100}.
-
-@item convert-meta
-@vindex convert-meta
-If set to @samp{on}, Readline will convert characters with the
-eighth bit set to an @sc{ascii} key sequence by stripping the eighth
-bit and prefixing an @key{ESC} character, converting them to a
-meta-prefixed key sequence. The default value is @samp{on}.
-
-@item disable-completion
-@vindex disable-completion
-If set to @samp{On}, Readline will inhibit word completion.
-Completion characters will be inserted into the line as if they had
-been mapped to @code{self-insert}. The default is @samp{off}.
-
-@item editing-mode
-@vindex editing-mode
-The @code{editing-mode} variable controls which default set of
-key bindings is used. By default, Readline starts up in Emacs editing
-mode, where the keystrokes are most similar to Emacs. This variable can be
-set to either @samp{emacs} or @samp{vi}.
-
-@item enable-keypad
-@vindex enable-keypad
-When set to @samp{on}, Readline will try to enable the application
-keypad when it is called. Some systems need this to enable the
-arrow keys. The default is @samp{off}.
-
-@item expand-tilde
-@vindex expand-tilde
-If set to @samp{on}, tilde expansion is performed when Readline
-attempts word completion. The default is @samp{off}.
-
-@vindex history-preserve-point
-If set to @samp{on}, the history code attempts to place point at the
-same location on each history line retrived with @code{previous-history}
-or @code{next-history}.
-
-@item horizontal-scroll-mode
-@vindex horizontal-scroll-mode
-This variable can be set to either @samp{on} or @samp{off}. Setting it
-to @samp{on} means that the text of the lines being edited will scroll
-horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to @samp{off}.
-
-@item input-meta
-@vindex input-meta
-@vindex meta-flag
-If set to @samp{on}, Readline will enable eight-bit input (it
-will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support. The
-default value is @samp{off}. The name @code{meta-flag} is a
-synonym for this variable.
-
-@item isearch-terminators
-@vindex isearch-terminators
-The string of characters that should terminate an incremental search without
-subsequently executing the character as a command (@pxref{Searching}).
-If this variable has not been given a value, the characters @key{ESC} and
-@kbd{C-J} will terminate an incremental search.
-
-@item keymap
-@vindex keymap
-Sets Readline's idea of the current keymap for key binding commands.
-Acceptable @code{keymap} names are
-@code{emacs},
-@code{emacs-standard},
-@code{emacs-meta},
-@code{emacs-ctlx},
-@code{vi},
-@code{vi-move},
-@code{vi-command}, and
-@code{vi-insert}.
-@code{vi} is equivalent to @code{vi-command}; @code{emacs} is
-equivalent to @code{emacs-standard}. The default value is @code{emacs}.
-The value of the @code{editing-mode} variable also affects the
-default keymap.
-
-@item mark-directories
-If set to @samp{on}, completed directory names have a slash
-appended. The default is @samp{on}.
-
-@item mark-modified-lines
-@vindex mark-modified-lines
-This variable, when set to @samp{on}, causes Readline to display an
-asterisk (@samp{*}) at the start of history lines which have been modified.
-This variable is @samp{off} by default.
-
-@item mark-symlinked-directories
-@vindex mark-symlinked-directories
-If set to @samp{on}, completed names which are symbolic links
-to directories have a slash appended (subject to the value of
-@code{mark-directories}).
-The default is @samp{off}.
-
-@item match-hidden-files
-@vindex match-hidden-files
-This variable, when set to @samp{on}, causes Readline to match files whose
-names begin with a @samp{.} (hidden files) when performing filename
-completion, unless the leading @samp{.} is
-supplied by the user in the filename to be completed.
-This variable is @samp{on} by default.
-
-@item output-meta
-@vindex output-meta
-If set to @samp{on}, Readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is @samp{off}.
-
-@item page-completions
-@vindex page-completions
-If set to @samp{on}, Readline uses an internal @code{more}-like pager
-to display a screenful of possible completions at a time.
-This variable is @samp{on} by default.
-
-@item print-completions-horizontally
-If set to @samp{on}, Readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-The default is @samp{off}.
-
-@item show-all-if-ambiguous
-@vindex show-all-if-ambiguous
-This alters the default behavior of the completion functions. If
-set to @samp{on},
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-The default value is @samp{off}.
-
-@item visible-stats
-@vindex visible-stats
-If set to @samp{on}, a character denoting a file's type
-is appended to the filename when listing possible
-completions. The default is @samp{off}.
-
-@end table
-
-@item Key Bindings
-The syntax for controlling key bindings in the init file is
-simple. First you need to find the name of the command that you
-want to change. The following sections contain tables of the command
-name, the default keybinding, if any, and a short description of what
-the command does.
-
-Once you know the name of the command, simply place on a line
-in the init file the name of the key
-you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
-
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a @var{macro}).
-
-@ifset BashFeatures
-The @w{@code{bind -p}} command displays Readline function names and
-bindings in a format that can put directly into an initialization file.
-@xref{Bash Builtins}.
-@end ifset
-
-@table @asis
-@item @w{@var{keyname}: @var{function-name} or @var{macro}}
-@var{keyname} is the name of a key spelled out in English. For example:
-@example
-Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "> output"
-@end example
-
-In the above example, @kbd{C-u} is bound to the function
-@code{universal-argument},
-@kbd{M-DEL} is bound to the function @code{backward-kill-word}, and
-@kbd{C-o} is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-@samp{> output} into the line).
-
-A number of symbolic character names are recognized while
-processing this key binding syntax:
-@var{DEL},
-@var{ESC},
-@var{ESCAPE},
-@var{LFD},
-@var{NEWLINE},
-@var{RET},
-@var{RETURN},
-@var{RUBOUT},
-@var{SPACE},
-@var{SPC},
-and
-@var{TAB}.
-
-@item @w{"@var{keyseq}": @var{function-name} or @var{macro}}
-@var{keyseq} differs from @var{keyname} above in that strings
-denoting an entire key sequence can be specified, by placing
-the key sequence in double quotes. Some @sc{gnu} Emacs style key
-escapes can be used, as in the following example, but the
-special character names are not recognized.
-
-@example
-"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-@end example
-
-In the above example, @kbd{C-u} is again bound to the function
-@code{universal-argument} (just as it was in the first example),
-@samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file},
-and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert
-the text @samp{Function Key 1}.
-
-@end table
-
-The following @sc{gnu} Emacs style escape sequences are available when
-specifying key sequences:
-
-@table @code
-@item @kbd{\C-}
-control prefix
-@item @kbd{\M-}
-meta prefix
-@item @kbd{\e}
-an escape character
-@item @kbd{\\}
-backslash
-@item @kbd{\"}
-@key{"}, a double quotation mark
-@item @kbd{\'}
-@key{'}, a single quote or apostrophe
-@end table
-
-In addition to the @sc{gnu} Emacs style escape sequences, a second
-set of backslash escapes is available:
-
-@table @code
-@item \a
-alert (bell)
-@item \b
-backspace
-@item \d
-delete
-@item \f
-form feed
-@item \n
-newline
-@item \r
-carriage return
-@item \t
-horizontal tab
-@item \v
-vertical tab
-@item \@var{nnn}
-the eight-bit character whose value is the octal value @var{nnn}
-(one to three digits)
-@item \x@var{HH}
-the eight-bit character whose value is the hexadecimal value @var{HH}
-(one or two hex digits)
-@end table
-
-When entering the text of a macro, single or double quotes must
-be used to indicate a macro definition.
-Unquoted text is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including @samp{"} and @samp{'}.
-For example, the following binding will make @samp{@kbd{C-x} \}
-insert a single @samp{\} into the line:
-@example
-"\C-x\\": "\\"
-@end example
-
-@end table
-
-@node Conditional Init Constructs
-@subsection Conditional Init Constructs
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests. There are four parser directives used.
-
-@table @code
-@item $if
-The @code{$if} construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-Readline. The text of the test extends to the end of the line;
-no characters are required to isolate it.
-
-@table @code
-@item mode
-The @code{mode=} form of the @code{$if} directive is used to test
-whether Readline is in @code{emacs} or @code{vi} mode.
-This may be used in conjunction
-with the @samp{set keymap} command, for instance, to set bindings in
-the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if
-Readline is starting out in @code{emacs} mode.
-
-@item term
-The @code{term=} form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys. The word on the right side of the
-@samp{=} is tested against both the full name of the terminal and
-the portion of the terminal name before the first @samp{-}. This
-allows @code{sun} to match both @code{sun} and @code{sun-cmd},
-for instance.
-
-@item application
-The @var{application} construct is used to include
-application-specific settings. Each program using the Readline
-library sets the @var{application name}, and you can test for
-a particular value.
-This could be used to bind key sequences to functions useful for
-a specific program. For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-@example
-$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-@end example
-@end table
-
-@item $endif
-This command, as seen in the previous example, terminates an
-@code{$if} command.
-
-@item $else
-Commands in this branch of the @code{$if} directive are executed if
-the test fails.
-
-@item $include
-This directive takes a single filename as an argument and reads commands
-and bindings from that file.
-For example, the following directive reads from @file{/etc/inputrc}:
-@example
-$include /etc/inputrc
-@end example
-@end table
-
-@node Sample Init File
-@subsection Sample Init File
-
-Here is an example of an @var{inputrc} file. This illustrates key
-binding, variable assignment, and conditional syntax.
-
-@example
-@page
-# This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library. Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs
-
-$if mode=emacs
-
-Meta-Control-h: backward-kill-word Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD": backward-char
-#"\M-OC": forward-char
-#"\M-OA": previous-history
-#"\M-OB": next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D": backward-char
-"\M-[C": forward-char
-"\M-[A": previous-history
-"\M-[B": next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD": backward-char
-#"\M-\C-OC": forward-char
-#"\M-\C-OA": previous-history
-#"\M-\C-OB": next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D": backward-char
-#"\M-\C-[C": forward-char
-#"\M-\C-[A": previous-history
-#"\M-\C-[B": next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding. This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-@end example
-
-@node Bindable Readline Commands
-@section Bindable Readline Commands
-
-@menu
-* Commands For Moving:: Moving about the line.
-* Commands For History:: Getting at previous lines.
-* Commands For Text:: Commands for changing text.
-* Commands For Killing:: Commands for killing and yanking.
-* Numeric Arguments:: Specifying numeric arguments, repeat counts.
-* Commands For Completion:: Getting Readline to do the typing for you.
-* Keyboard Macros:: Saving and re-executing typed characters
-* Miscellaneous Commands:: Other miscellaneous commands.
-@end menu
-
-This section describes Readline commands that may be bound to key
-sequences.
-@ifset BashFeatures
-You can list your key bindings by executing
-@w{@code{bind -P}} or, for a more terse format, suitable for an
-@var{inputrc} file, @w{@code{bind -p}}. (@xref{Bash Builtins}.)
-@end ifset
-Command names without an accompanying key sequence are unbound by default.
-
-In the following descriptions, @dfn{point} refers to the current cursor
-position, and @dfn{mark} refers to a cursor position saved by the
-@code{set-mark} command.
-The text between the point and mark is referred to as the @dfn{region}.
-
-@node Commands For Moving
-@subsection Commands For Moving
-@ftable @code
-@item beginning-of-line (C-a)
-Move to the start of the current line.
-
-@item end-of-line (C-e)
-Move to the end of the line.
-
-@item forward-char (C-f)
-Move forward a character.
-
-@item backward-char (C-b)
-Move back a character.
-
-@item forward-word (M-f)
-Move forward to the end of the next word. Words are composed of
-letters and digits.
-
-@item backward-word (M-b)
-Move back to the start of the current or previous word. Words are
-composed of letters and digits.
-
-@item clear-screen (C-l)
-Clear the screen and redraw the current line,
-leaving the current line at the top of the screen.
-
-@item redraw-current-line ()
-Refresh the current line. By default, this is unbound.
-
-@end ftable
-
-@node Commands For History
-@subsection Commands For Manipulating The History
-
-@ftable @code
-@item accept-line (Newline or Return)
-@ifset BashFeatures
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, add it to the history list according to the setting of
-the @env{HISTCONTROL} and @env{HISTIGNORE} variables.
-If this line is a modified history line, then restore the history line
-to its original state.
-@end ifset
-@ifclear BashFeatures
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-@code{add_history()}.
-If this line is a modified history line, the history line is restored
-to its original state.
-@end ifclear
-
-@item previous-history (C-p)
-Move `back' through the history list, fetching the previous command.
-
-@item next-history (C-n)
-Move `forward' through the history list, fetching the next command.
-
-@item beginning-of-history (M-<)
-Move to the first line in the history.
-
-@item end-of-history (M->)
-Move to the end of the input history, i.e., the line currently
-being entered.
-
-@item reverse-search-history (C-r)
-Search backward starting at the current line and moving `up' through
-the history as necessary. This is an incremental search.
-
-@item forward-search-history (C-s)
-Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
-
-@item non-incremental-reverse-search-history (M-p)
-Search backward starting at the current line and moving `up'
-through the history as necessary using a non-incremental search
-for a string supplied by the user.
-
-@item non-incremental-forward-search-history (M-n)
-Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
-for a string supplied by the user.
-
-@item history-search-forward ()
-Search forward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-By default, this command is unbound.
-
-@item history-search-backward ()
-Search backward through the history for the string of characters
-between the start of the current line and the point. This
-is a non-incremental search. By default, this command is unbound.
-
-@item yank-nth-arg (M-C-y)
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument @var{n},
-insert the @var{n}th word from the previous command (the words
-in the previous command begin with word 0). A negative argument
-inserts the @var{n}th word from the end of the previous command.
-
-@item yank-last-arg (M-. or M-_)
-Insert last argument to the previous command (the last word of the
-previous history entry). With an
-argument, behave exactly like @code{yank-nth-arg}.
-Successive calls to @code{yank-last-arg} move back through the history
-list, inserting the last argument of each line in turn.
-
-@end ftable
-
-@node Commands For Text
-@subsection Commands For Changing Text
-
-@ftable @code
-@item delete-char (C-d)
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to @code{delete-char}, then
-return @sc{eof}.
-
-@item backward-delete-char (Rubout)
-Delete the character behind the cursor. A numeric argument means
-to kill the characters instead of deleting them.
-
-@item forward-backward-delete-char ()
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted. By default, this is not bound to a key.
-
-@item quoted-insert (C-q or C-v)
-Add the next character typed to the line verbatim. This is
-how to insert key sequences like @kbd{C-q}, for example.
-
-@ifclear BashFeatures
-@item tab-insert (M-@key{TAB})
-Insert a tab character.
-@end ifclear
-
-@item self-insert (a, b, A, 1, !, @dots{})
-Insert yourself.
-
-@item transpose-chars (C-t)
-Drag the character before the cursor forward over
-the character at the cursor, moving the
-cursor forward as well. If the insertion point
-is at the end of the line, then this
-transposes the last two characters of the line.
-Negative arguments have no effect.
-
-@item transpose-words (M-t)
-Drag the word before point past the word after point,
-moving point past that word as well.
-If the insertion point is at the end of the line, this transposes
-the last two words on the line.
-
-@item upcase-word (M-u)
-Uppercase the current (or following) word. With a negative argument,
-uppercase the previous word, but do not move the cursor.
-
-@item downcase-word (M-l)
-Lowercase the current (or following) word. With a negative argument,
-lowercase the previous word, but do not move the cursor.
-
-@item capitalize-word (M-c)
-Capitalize the current (or following) word. With a negative argument,
-capitalize the previous word, but do not move the cursor.
-
-@item overwrite-mode ()
-Toggle overwrite mode. With an explicit positive numeric argument,
-switches to overwrite mode. With an explicit non-positive numeric
-argument, switches to insert mode. This command affects only
-@code{emacs} mode; @code{vi} mode does overwrite differently.
-Each call to @code{readline()} starts in insert mode.
-
-In overwrite mode, characters bound to @code{self-insert} replace
-the text at point rather than pushing the text to the right.
-Characters bound to @code{backward-delete-char} replace the character
-before point with a space.
-
-By default, this command is unbound.
-
-@end ftable
-
-@node Commands For Killing
-@subsection Killing And Yanking
-
-@ftable @code
-
-@item kill-line (C-k)
-Kill the text from point to the end of the line.
-
-@item backward-kill-line (C-x Rubout)
-Kill backward to the beginning of the line.
-
-@item unix-line-discard (C-u)
-Kill backward from the cursor to the beginning of the current line.
-
-@item kill-whole-line ()
-Kill all characters on the current line, no matter where point is.
-By default, this is unbound.
-
-@item kill-word (M-d)
-Kill from point to the end of the current word, or if between
-words, to the end of the next word.
-Word boundaries are the same as @code{forward-word}.
-
-@item backward-kill-word (M-@key{DEL})
-Kill the word behind point.
-Word boundaries are the same as @code{backward-word}.
-
-@item unix-word-rubout (C-w)
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-
-@item delete-horizontal-space ()
-Delete all spaces and tabs around point. By default, this is unbound.
-
-@item kill-region ()
-Kill the text in the current region.
-By default, this command is unbound.
-
-@item copy-region-as-kill ()
-Copy the text in the region to the kill buffer, so it can be yanked
-right away. By default, this command is unbound.
-
-@item copy-backward-word ()
-Copy the word before point to the kill buffer.
-The word boundaries are the same as @code{backward-word}.
-By default, this command is unbound.
-
-@item copy-forward-word ()
-Copy the word following point to the kill buffer.
-The word boundaries are the same as @code{forward-word}.
-By default, this command is unbound.
-
-@item yank (C-y)
-Yank the top of the kill ring into the buffer at point.
-
-@item yank-pop (M-y)
-Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is @code{yank} or @code{yank-pop}.
-@end ftable
-
-@node Numeric Arguments
-@subsection Specifying Numeric Arguments
-@ftable @code
-
-@item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--})
-Add this digit to the argument already accumulating, or start a new
-argument. @kbd{M--} starts a negative argument.
-
-@item universal-argument ()
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing @code{universal-argument}
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-By default, this is not bound to a key.
-@end ftable
-
-@node Commands For Completion
-@subsection Letting Readline Type For You
-
-@ftable @code
-@item complete (@key{TAB})
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-@ifset BashFeatures
-Bash attempts completion treating the text as a variable (if the
-text begins with @samp{$}), username (if the text begins with
-@samp{~}), hostname (if the text begins with @samp{@@}), or
-command (including aliases and functions) in turn. If none
-of these produces a match, filename completion is attempted.
-@end ifset
-@ifclear BashFeatures
-The default is filename completion.
-@end ifclear
-
-@item possible-completions (M-?)
-List the possible completions of the text before point.
-
-@item insert-completions (M-*)
-Insert all completions of the text before point that would have
-been generated by @code{possible-completions}.
-
-@item menu-complete ()
-Similar to @code{complete}, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of @code{menu-complete} steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of @code{bell-style})
-and the original text is restored.
-An argument of @var{n} moves @var{n} positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to @key{TAB}, but is unbound
-by default.
-
-@item delete-char-or-list ()
-Deletes the character under the cursor if not at the beginning or
-end of the line (like @code{delete-char}).
-If at the end of the line, behaves identically to
-@code{possible-completions}.
-This command is unbound by default.
-
-@ifset BashFeatures
-@item complete-filename (M-/)
-Attempt filename completion on the text before point.
-
-@item possible-filename-completions (C-x /)
-List the possible completions of the text before point,
-treating it as a filename.
-
-@item complete-username (M-~)
-Attempt completion on the text before point, treating
-it as a username.
-
-@item possible-username-completions (C-x ~)
-List the possible completions of the text before point,
-treating it as a username.
-
-@item complete-variable (M-$)
-Attempt completion on the text before point, treating
-it as a shell variable.
-
-@item possible-variable-completions (C-x $)
-List the possible completions of the text before point,
-treating it as a shell variable.
-
-@item complete-hostname (M-@@)
-Attempt completion on the text before point, treating
-it as a hostname.
-
-@item possible-hostname-completions (C-x @@)
-List the possible completions of the text before point,
-treating it as a hostname.
-
-@item complete-command (M-!)
-Attempt completion on the text before point, treating
-it as a command name. Command completion attempts to
-match the text against aliases, reserved words, shell
-functions, shell builtins, and finally executable filenames,
-in that order.
-
-@item possible-command-completions (C-x !)
-List the possible completions of the text before point,
-treating it as a command name.
-
-@item dynamic-complete-history (M-@key{TAB})
-Attempt completion on the text before point, comparing
-the text against lines from the history list for possible
-completion matches.
-
-@item complete-into-braces (M-@{)
-Perform filename completion and insert the list of possible completions
-enclosed within braces so the list is available to the shell
-(@pxref{Brace Expansion}).
-
-@end ifset
-@end ftable
-
-@node Keyboard Macros
-@subsection Keyboard Macros
-@ftable @code
-
-@item start-kbd-macro (C-x ()
-Begin saving the characters typed into the current keyboard macro.
-
-@item end-kbd-macro (C-x ))
-Stop saving the characters typed into the current keyboard macro
-and save the definition.
-
-@item call-last-kbd-macro (C-x e)
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-
-@end ftable
-
-@node Miscellaneous Commands
-@subsection Some Miscellaneous Commands
-@ftable @code
-
-@item re-read-init-file (C-x C-r)
-Read in the contents of the @var{inputrc} file, and incorporate
-any bindings or variable assignments found there.
-
-@item abort (C-g)
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-@code{bell-style}).
-
-@item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{})
-If the metafied character @var{x} is lowercase, run the command
-that is bound to the corresponding uppercase character.
-
-@item prefix-meta (@key{ESC})
-Metafy the next character typed. This is for keyboards
-without a meta key. Typing @samp{@key{ESC} f} is equivalent to typing
-@kbd{M-f}.
-
-@item undo (C-_ or C-x C-u)
-Incremental undo, separately remembered for each line.
-
-@item revert-line (M-r)
-Undo all changes made to this line. This is like executing the @code{undo}
-command enough times to get back to the beginning.
-
-@ifset BashFeatures
-@item tilde-expand (M-&)
-@end ifset
-@ifclear BashFeatures
-@item tilde-expand (M-~)
-@end ifclear
-Perform tilde expansion on the current word.
-
-@item set-mark (C-@@)
-Set the mark to the point. If a
-numeric argument is supplied, the mark is set to that position.
-
-@item exchange-point-and-mark (C-x C-x)
-Swap the point with the mark. The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-
-@item character-search (C-])
-A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
-
-@item character-search-backward (M-C-])
-A character is read and point is moved to the previous occurrence
-of that character. A negative count searches for subsequent
-occurrences.
-
-@item insert-comment (M-#)
-Without a numeric argument, the value of the @code{comment-begin}
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
-the characters at the beginning of the line do not match the value
-of @code{comment-begin}, the value is inserted, otherwise
-the characters in @code{comment-begin} are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-@ifset BashFeatures
-The default value of @code{comment-begin} causes this command
-to make the current line a shell comment.
-If a numeric argument causes the comment character to be removed, the line
-will be executed by the shell.
-@end ifset
-
-@item dump-functions ()
-Print all of the functions and their key bindings to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file. This command is unbound by default.
-
-@item dump-variables ()
-Print all of the settable variables and their values to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file. This command is unbound by default.
-
-@item dump-macros ()
-Print all of the Readline key sequences bound to macros and the
-strings they output. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file. This command is unbound by default.
-
-@ifset BashFeatures
-@item glob-complete-word (M-g)
-The word before point is treated as a pattern for pathname expansion,
-with an asterisk implicitly appended. This pattern is used to
-generate a list of matching file names for possible completions.
-
-@item glob-expand-word (C-x *)
-The word before point is treated as a pattern for pathname expansion,
-and the list of matching file names is inserted, replacing the word.
-If a numeric argument is supplied, a @samp{*} is appended before
-pathname expansion.
-
-@item glob-list-expansions (C-x g)
-The list of expansions that would have been generated by
-@code{glob-expand-word} is displayed, and the line is redrawn.
-If a numeric argument is supplied, a @samp{*} is appended before
-pathname expansion.
-
-@item display-shell-version (C-x C-v)
-Display version information about the current instance of Bash.
-
-@item shell-expand-line (M-C-e)
-Expand the line as the shell does.
-This performs alias and history expansion as well as all of the shell
-word expansions (@pxref{Shell Expansions}).
-
-@item history-expand-line (M-^)
-Perform history expansion on the current line.
-
-@item magic-space ()
-Perform history expansion on the current line and insert a space
-(@pxref{History Interaction}).
-
-@item alias-expand-line ()
-Perform alias expansion on the current line (@pxref{Aliases}).
-
-@item history-and-alias-expand-line ()
-Perform history and alias expansion on the current line.
-
-@item insert-last-argument (M-. or M-_)
-A synonym for @code{yank-last-arg}.
-
-@item operate-and-get-next (C-o)
-Accept the current line for execution and fetch the next line
-relative to the current line from the history for editing. Any
-argument is ignored.
-
-@item edit-and-execute-command (C-xC-e)
-Invoke an editor on the current command line, and execute the result as shell
-commands.
-Bash attempts to invoke
-@code{$FCEDIT}, @code{$EDITOR}, and @code{emacs}
-as the editor, in that order.
-
-@end ifset
-
-@ifclear BashFeatures
-@item emacs-editing-mode (C-e)
-When in @code{vi} command mode, this causes a switch to @code{emacs}
-editing mode.
-
-@item vi-editing-mode (M-C-j)
-When in @code{emacs} editing mode, this causes a switch to @code{vi}
-editing mode.
-
-@end ifclear
-
-@end ftable
-
-@node Readline vi Mode
-@section Readline vi Mode
-
-While the Readline library does not have a full set of @code{vi}
-editing functions, it does contain enough to allow simple editing
-of the line. The Readline @code{vi} mode behaves as specified in
-the @sc{posix} 1003.2 standard.
-
-@ifset BashFeatures
-In order to switch interactively between @code{emacs} and @code{vi}
-editing modes, use the @samp{set -o emacs} and @samp{set -o vi}
-commands (@pxref{The Set Builtin}).
-@end ifset
-@ifclear BashFeatures
-In order to switch interactively between @code{emacs} and @code{vi}
-editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode
-when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode).
-@end ifclear
-The Readline default is @code{emacs} mode.
-
-When you enter a line in @code{vi} mode, you are already placed in
-`insertion' mode, as if you had typed an @samp{i}. Pressing @key{ESC}
-switches you into `command' mode, where you can edit the text of the
-line with the standard @code{vi} movement keys, move to previous
-history lines with @samp{k} and subsequent lines with @samp{j}, and
-so forth.
-
-@ifset BashFeatures
-@node Programmable Completion
-@section Programmable Completion
-@cindex programmable completion
-
-When word completion is attempted for an argument to a command for
-which a completion specification (a @var{compspec}) has been defined
-using the @code{complete} builtin (@pxref{Programmable Completion Builtins}),
-the programmable completion facilities are invoked.
-
-First, the command name is identified.
-If a compspec has been defined for that command, the
-compspec is used to generate the list of possible completions for the word.
-If the command word is a full pathname, a compspec for the full
-pathname is searched for first.
-If no compspec is found for the full pathname, an attempt is made to
-find a compspec for the portion following the final slash.
-
-Once a compspec has been found, it is used to generate the list of
-matching words.
-If a compspec is not found, the default Bash completion
-described above (@pxref{Commands For Completion}) is performed.
-
-First, the actions specified by the compspec are used.
-Only matches which are prefixed by the word being completed are
-returned.
-When the @option{-f} or @option{-d} option is used for filename or
-directory name completion, the shell variable @env{FIGNORE} is
-used to filter the matches.
-@xref{Bash Variables}, for a description of @env{FIGNORE}.
-
-Any completions specified by a filename expansion pattern to the
-@option{-G} option are generated next.
-The words generated by the pattern need not match the word being completed.
-The @env{GLOBIGNORE} shell variable is not used to filter the matches,
-but the @env{FIGNORE} shell variable is used.
-
-Next, the string specified as the argument to the @option{-W} option
-is considered.
-The string is first split using the characters in the @env{IFS}
-special variable as delimiters.
-Shell quoting is honored.
-Each word is then expanded using
-brace expansion, tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and pathname expansion,
-as described above (@pxref{Shell Expansions}).
-The results are split using the rules described above
-(@pxref{Word Splitting}).
-The results of the expansion are prefix-matched against the word being
-completed, and the matching words become the possible completions.
-
-After these matches have been generated, any shell function or command
-specified with the @option{-F} and @option{-C} options is invoked.
-When the command or function is invoked, the @env{COMP_LINE} and
-@env{COMP_POINT} variables are assigned values as described above
-(@pxref{Bash Variables}).
-If a shell function is being invoked, the @env{COMP_WORDS} and
-@env{COMP_CWORD} variables are also set.
-When the function or command is invoked, the first argument is the
-name of the command whose arguments are being completed, the
-second argument is the word being completed, and the third argument
-is the word preceding the word being completed on the current command line.
-No filtering of the generated completions against the word being completed
-is performed; the function or command has complete freedom in generating
-the matches.
-
-Any function specified with @option{-F} is invoked first.
-The function may use any of the shell facilities, including the
-@code{compgen} builtin described below
-(@pxref{Programmable Completion Builtins}), to generate the matches.
-It must put the possible completions in the @env{COMPREPLY} array
-variable.
-
-Next, any command specified with the @option{-C} option is invoked
-in an environment equivalent to command substitution.
-It should print a list of completions, one per line, to
-the standard output.
-Backslash may be used to escape a newline, if necessary.
-
-After all of the possible completions are generated, any filter
-specified with the @option{-X} option is applied to the list.
-The filter is a pattern as used for pathname expansion; a @samp{&}
-in the pattern is replaced with the text of the word being completed.
-A literal @samp{&} may be escaped with a backslash; the backslash
-is removed before attempting a match.
-Any completion that matches the pattern will be removed from the list.
-A leading @samp{!} negates the pattern; in this case any completion
-not matching the pattern will be removed.
-
-Finally, any prefix and suffix specified with the @option{-P} and @option{-S}
-options are added to each member of the completion list, and the result is
-returned to the Readline completion code as the list of possible
-completions.
-
-If the previously-applied actions do not generate any matches, and the
-@option{-o dirnames} option was supplied to @code{complete} when the
-compspec was defined, directory name completion is attempted.
-
-By default, if a compspec is found, whatever it generates is returned to
-the completion code as the full set of possible completions.
-The default Bash completions are not attempted, and the Readline default
-of filename completion is disabled.
-If the @option{-o default} option was supplied to @code{complete} when the
-compspec was defined, Readline's default completion will be performed
-if the compspec generates no matches.
-
-When a compspec indicates that directory name completion is desired,
-the programmable completion functions force Readline to append a slash
-to completed names which are symbolic links to directories, subject to
-the value of the @var{mark-directories} Readline variable, regardless
-of the setting of the @var{mark-symlinked-directories} Readline variable.
-
-@node Programmable Completion Builtins
-@section Programmable Completion Builtins
-@cindex completion builtins
-
-Two builtin commands are available to manipulate the programmable completion
-facilities.
-
-@table @code
-@item compgen
-@btindex compgen
-@example
-@code{compgen [@var{option}] [@var{word}]}
-@end example
-
-Generate possible completion matches for @var{word} according to
-the @var{option}s, which may be any option accepted by the
-@code{complete}
-builtin with the exception of @option{-p} and @option{-r}, and write
-the matches to the standard output.
-When using the @option{-F} or @option{-C} options, the various shell variables
-set by the programmable completion facilities, while available, will not
-have useful values.
-
-The matches will be generated in the same way as if the programmable
-completion code had generated them directly from a completion specification
-with the same flags.
-If @var{word} is specified, only those completions matching @var{word}
-will be displayed.
-
-The return value is true unless an invalid option is supplied, or no
-matches were generated.
-
-@item complete
-@btindex complete
-@example
-@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
-[-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}]
-[-C @var{command}] @var{name} [@var{name} @dots{}]}
-@code{complete -pr [@var{name} @dots{}]}
-@end example
-
-Specify how arguments to each @var{name} should be completed.
-If the @option{-p} option is supplied, or if no options are supplied, existing
-completion specifications are printed in a way that allows them to be
-reused as input.
-The @option{-r} option removes a completion specification for
-each @var{name}, or, if no @var{name}s are supplied, all
-completion specifications.
-
-The process of applying these completion specifications when word completion
-is attempted is described above (@pxref{Programmable Completion}).
-
-Other options, if specified, have the following meanings.
-The arguments to the @option{-G}, @option{-W}, and @option{-X} options
-(and, if necessary, the @option{-P} and @option{-S} options)
-should be quoted to protect them from expansion before the
-@code{complete} builtin is invoked.
-
-
-@table @code
-@item -o @var{comp-option}
-The @var{comp-option} controls several aspects of the compspec's behavior
-beyond the simple generation of completions.
-@var{comp-option} may be one of:
-
-@table @code
-
-@item default
-Use Readline's default filename completion if the compspec generates
-no matches.
-
-@item dirnames
-Perform directory name completion if the compspec generates no matches.
-
-@item filenames
-Tell Readline that the compspec generates filenames, so it can perform any
-filename\-specific processing (like adding a slash to directory names or
-suppressing trailing spaces). This option is intended to be used with
-shell functions specified with @option{-F}.
-
-@item nospace
-Tell Readline not to append a space (the default) to words completed at
-the end of the line.
-@end table
-
-@item -A @var{action}
-The @var{action} may be one of the following to generate a list of possible
-completions:
-
-@table @code
-@item alias
-Alias names. May also be specified as @option{-a}.
-
-@item arrayvar
-Array variable names.
-
-@item binding
-Readline key binding names (@pxref{Bindable Readline Commands}).
-
-@item builtin
-Names of shell builtin commands. May also be specified as @option{-b}.
-
-@item command
-Command names. May also be specified as @option{-c}.
-
-@item directory
-Directory names. May also be specified as @option{-d}.
-
-@item disabled
-Names of disabled shell builtins.
-
-@item enabled
-Names of enabled shell builtins.
-
-@item export
-Names of exported shell variables. May also be specified as @option{-e}.
-
-@item file
-File names. May also be specified as @option{-f}.
-
-@item function
-Names of shell functions.
-
-@item group
-Group names. May also be specified as @option{-g}.
-
-@item helptopic
-Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}).
-
-@item hostname
-Hostnames, as taken from the file specified by the
-@env{HOSTFILE} shell variable (@pxref{Bash Variables}).
-
-@item job
-Job names, if job control is active. May also be specified as @option{-j}.
-
-@item keyword
-Shell reserved words. May also be specified as @option{-k}.
-
-@item running
-Names of running jobs, if job control is active.
-
-@item service
-Service names. May also be specified as @option{-s}.
-
-@item setopt
-Valid arguments for the @option{-o} option to the @code{set} builtin
-(@pxref{The Set Builtin}).
-
-@item shopt
-Shell option names as accepted by the @code{shopt} builtin
-(@pxref{Bash Builtins}).
-
-@item signal
-Signal names.
-
-@item stopped
-Names of stopped jobs, if job control is active.
-
-@item user
-User names. May also be specified as @option{-u}.
-
-@item variable
-Names of all shell variables. May also be specified as @option{-v}.
-@end table
-
-@item -G @var{globpat}
-The filename expansion pattern @var{globpat} is expanded to generate
-the possible completions.
-
-@item -W @var{wordlist}
-The @var{wordlist} is split using the characters in the
-@env{IFS} special variable as delimiters, and each resultant word
-is expanded.
-The possible completions are the members of the resultant list which
-match the word being completed.
-
-@item -C @var{command}
-@var{command} is executed in a subshell environment, and its output is
-used as the possible completions.
-
-@item -F @var{function}
-The shell function @var{function} is executed in the current shell
-environment.
-When it finishes, the possible completions are retrieved from the value
-of the @env{COMPREPLY} array variable.
-
-@item -X @var{filterpat}
-@var{filterpat} is a pattern as used for filename expansion.
-It is applied to the list of possible completions generated by the
-preceding options and arguments, and each completion matching
-@var{filterpat} is removed from the list.
-A leading @samp{!} in @var{filterpat} negates the pattern; in this
-case, any completion not matching @var{filterpat} is removed.
-
-@item -P @var{prefix}
-@var{prefix} is added at the beginning of each possible completion
-after all other options have been applied.
-
-@item -S @var{suffix}
-@var{suffix} is appended to each possible completion
-after all other options have been applied.
-@end table
-
-The return value is true unless an invalid option is supplied, an option
-other than @option{-p} or @option{-r} is supplied without a @var{name}
-argument, an attempt is made to remove a completion specification for
-a @var{name} for which no specification exists, or
-an error occurs adding a completion specification.
-
-@end table
-@end ifset
diff --git a/readline-4.3.orig/doc/rluserman.dvi b/readline-4.3.orig/doc/rluserman.dvi
deleted file mode 100644
index a2339aa..0000000
--- a/readline-4.3.orig/doc/rluserman.dvi
+++ /dev/null
Binary files differ
diff --git a/readline-4.3.orig/doc/rluserman.html b/readline-4.3.orig/doc/rluserman.html
deleted file mode 100644
index ac8bfbd..0000000
--- a/readline-4.3.orig/doc/rluserman.html
+++ /dev/null
@@ -1,2184 +0,0 @@
-<HTML>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on June, 27 2002 by texi2html 1.64 -->
-<!--
-Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
- Karl Berry <karl@freefriends.org>
- Olaf Bachmann <obachman@mathematik.uni-kl.de>
- and many others.
-Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
-Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-
--->
-<HEAD>
-<TITLE>GNU Readline Library: </TITLE>
-
-<META NAME="description" CONTENT="GNU Readline Library: ">
-<META NAME="keywords" CONTENT="GNU Readline Library: ">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="texi2html 1.64">
-
-</HEAD>
-
-<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
-
-<A NAME="SEC_Top"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>GNU Readline Library</H1></P><P>
-
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC1">1. Command Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline User's Manual.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<HR SIZE=1>
-<A NAME="SEC1"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC2"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<A NAME="Command Line Editing"></A>
-<H1> 1. Command Line Editing </H1>
-<!--docid::SEC1::-->
-<P>
-
-This chapter describes the basic features of the GNU
-command line editing interface.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC2">1.1 Introduction to Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Notation used in this text.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC3">1.2 Readline Interaction</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The minimum set of commands for editing a line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC9">1.3 Readline Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Customizing Readline from a user's view.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC13">1.4 Bindable Readline Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A description of most of the Readline commands
- available for binding</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC22">1.5 Readline vi Mode</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A short description of how to make Readline
- behave like the vi editor.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Introduction and Notation"></A>
-<HR SIZE="6">
-<A NAME="SEC2"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.1 Introduction to Line Editing </H2>
-<!--docid::SEC2::-->
-<P>
-
-The following paragraphs describe the notation used to represent
-keystrokes.
-</P><P>
-
-The text <KBD>C-k</KBD> is read as `Control-K' and describes the character
-produced when the <KBD>k</KBD> key is pressed while the Control key
-is depressed.
-</P><P>
-
-The text <KBD>M-k</KBD> is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the <KBD>k</KBD>
-key is pressed.
-The Meta key is labeled <KBD>ALT</KBD> on many keyboards.
-On keyboards with two keys labeled <KBD>ALT</KBD> (usually to either side of
-the space bar), the <KBD>ALT</KBD> on the left side is generally set to
-work as a Meta key.
-The <KBD>ALT</KBD> key on the right may also be configured to work as a
-Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-</P><P>
-
-If you do not have a Meta or <KBD>ALT</KBD> key, or another key working as
-a Meta key, the identical keystroke can be generated by typing <KBD>ESC</KBD>
-<EM>first</EM>, and then typing <KBD>k</KBD>.
-Either process is known as <EM>metafying</EM> the <KBD>k</KBD> key.
-</P><P>
-
-The text <KBD>M-C-k</KBD> is read as `Meta-Control-k' and describes the
-character produced by <EM>metafying</EM> <KBD>C-k</KBD>.
-</P><P>
-
-In addition, several keys have their own names. Specifically,
-<KBD>DEL</KBD>, <KBD>ESC</KBD>, <KBD>LFD</KBD>, <KBD>SPC</KBD>, <KBD>RET</KBD>, and <KBD>TAB</KBD> all
-stand for themselves when seen in this text, or in an init file
-(see section <A HREF="rluserman.html#SEC9">1.3 Readline Init File</A>).
-If your keyboard lacks a <KBD>LFD</KBD> key, typing <KBD>C-j</KBD> will
-produce the desired character.
-The <KBD>RET</KBD> key may be labeled <KBD>Return</KBD> or <KBD>Enter</KBD> on
-some keyboards.
-</P><P>
-
-<A NAME="Readline Interaction"></A>
-<HR SIZE="6">
-<A NAME="SEC3"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC2"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC4"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.2 Readline Interaction </H2>
-<!--docid::SEC3::-->
-<P>
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <KBD>RET</KBD>. You do not have to be at the
-end of the line to press <KBD>RET</KBD>; the entire line is accepted
-regardless of the location of the cursor within the line.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC4">1.2.1 Readline Bare Essentials</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The least you need to know about Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC5">1.2.2 Readline Movement Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Moving about the input line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC6">1.2.3 Readline Killing Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to delete text, and how to get it back!</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC7">1.2.4 Readline Arguments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Giving numeric arguments to commands.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC8">1.2.5 Searching for Commands in the History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Searching through previous lines.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Bare Essentials"></A>
-<HR SIZE="6">
-<A NAME="SEC4"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC5"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.1 Readline Bare Essentials </H3>
-<!--docid::SEC4::-->
-<P>
-
-In order to enter characters into the line, simply type them. The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-</P><P>
-
-Sometimes you may mistype a character, and
-not notice the error until you have typed several other characters. In
-that case, you can type <KBD>C-b</KBD> to move the cursor to the left, and then
-correct your mistake. Afterwards, you can move the cursor to the right
-with <KBD>C-f</KBD>.
-</P><P>
-
-When you add text in the middle of a line, you will notice that characters
-to the right of the cursor are `pushed over' to make room for the text
-that you have inserted. Likewise, when you delete text behind the cursor,
-characters to the right of the cursor are `pulled back' to fill in the
-blank space created by the removal of the text. A list of the bare
-essentials for editing the text of an input line follows.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-b</KBD>
-<DD>Move back one character.
-<DT><KBD>C-f</KBD>
-<DD>Move forward one character.
-<DT><KBD>DEL</KBD> or <KBD>Backspace</KBD>
-<DD>Delete the character to the left of the cursor.
-<DT><KBD>C-d</KBD>
-<DD>Delete the character underneath the cursor.
-<DT>Printing characters
-<DD>Insert the character into the line at the cursor.
-<DT><KBD>C-_</KBD> or <KBD>C-x C-u</KBD>
-<DD>Undo the last editing command. You can undo all the way back to an
-empty line.
-</DL>
-<P>
-
-(Depending on your configuration, the <KBD>Backspace</KBD> key be set to
-delete the character to the left of the cursor and the <KBD>DEL</KBD> key set
-to delete the character underneath the cursor, like <KBD>C-d</KBD>, rather
-than the character to the left of the cursor.)
-</P><P>
-
-<A NAME="Readline Movement Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC5"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC4"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC6"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC6"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.2 Readline Movement Commands </H3>
-<!--docid::SEC5::-->
-<P>
-
-The above table describes the most basic keystrokes that you need
-in order to do editing of the input line. For your convenience, many
-other commands have been added in addition to <KBD>C-b</KBD>, <KBD>C-f</KBD>,
-<KBD>C-d</KBD>, and <KBD>DEL</KBD>. Here are some commands for moving more rapidly
-about the line.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-a</KBD>
-<DD>Move to the start of the line.
-<DT><KBD>C-e</KBD>
-<DD>Move to the end of the line.
-<DT><KBD>M-f</KBD>
-<DD>Move forward a word, where a word is composed of letters and digits.
-<DT><KBD>M-b</KBD>
-<DD>Move backward a word.
-<DT><KBD>C-l</KBD>
-<DD>Clear the screen, reprinting the current line at the top.
-</DL>
-<P>
-
-Notice how <KBD>C-f</KBD> moves forward a character, while <KBD>M-f</KBD> moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-</P><P>
-
-<A NAME="Readline Killing Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC6"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC5"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC7"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC7"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.3 Readline Killing Commands </H3>
-<!--docid::SEC6::-->
-<P>
-
-<A NAME="IDX1"></A>
-<A NAME="IDX2"></A>
-</P><P>
-
-<EM>Killing</EM> text means to delete the text from the line, but to save
-it away for later use, usually by <EM>yanking</EM> (re-inserting)
-it back into the line.
-(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
-</P><P>
-
-If the description for a command says that it `kills' text, then you can
-be sure that you can get the text back in a different (or the same)
-place later.
-</P><P>
-
-When you use a kill command, the text is saved in a <EM>kill-ring</EM>.
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill
-ring is not line specific; the text that you killed on a previously
-typed line is available to be yanked back later, when you are typing
-another line.
-<A NAME="IDX3"></A>
-</P><P>
-
-Here is the list of commands for killing text.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-k</KBD>
-<DD>Kill the text from the current cursor position to the end of the line.
-<P>
-
-<DT><KBD>M-d</KBD>
-<DD>Kill from the cursor to the end of the current word, or, if between
-words, to the end of the next word.
-Word boundaries are the same as those used by <KBD>M-f</KBD>.
-<P>
-
-<DT><KBD>M-<KBD>DEL</KBD></KBD>
-<DD>Kill from the cursor the start of the current word, or, if between
-words, to the start of the previous word.
-Word boundaries are the same as those used by <KBD>M-b</KBD>.
-<P>
-
-<DT><KBD>C-w</KBD>
-<DD>Kill from the cursor to the previous whitespace. This is different than
-<KBD>M-<KBD>DEL</KBD></KBD> because the word boundaries differ.
-<P>
-
-</DL>
-<P>
-
-Here is how to <EM>yank</EM> the text back into the line. Yanking
-means to copy the most-recently-killed text from the kill buffer.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-y</KBD>
-<DD>Yank the most recently killed text back into the buffer at the cursor.
-<P>
-
-<DT><KBD>M-y</KBD>
-<DD>Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is <KBD>C-y</KBD> or <KBD>M-y</KBD>.
-</DL>
-<P>
-
-<A NAME="Readline Arguments"></A>
-<HR SIZE="6">
-<A NAME="SEC7"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC6"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC8"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC8"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.4 Readline Arguments </H3>
-<!--docid::SEC7::-->
-<P>
-
-You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the <I>sign</I> of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type <SAMP>`M-- C-k'</SAMP>.
-</P><P>
-
-The general way to pass numeric arguments to a command is to type meta
-digits before the command. If the first `digit' typed is a minus
-sign (<SAMP>`-'</SAMP>), then the sign of the argument will be negative. Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command. For example, to give
-the <KBD>C-d</KBD> command an argument of 10, you could type <SAMP>`M-1 0 C-d'</SAMP>,
-which will delete the next ten characters on the input line.
-</P><P>
-
-<A NAME="Searching"></A>
-<HR SIZE="6">
-<A NAME="SEC8"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC7"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.5 Searching for Commands in the History </H3>
-<!--docid::SEC8::-->
-<P>
-
-Readline provides commands for searching through the command history
-for lines containing a specified string.
-There are two search modes: <EM>incremental</EM> and <EM>non-incremental</EM>.
-</P><P>
-
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, Readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-<KBD>C-r</KBD>. Typing <KBD>C-s</KBD> searches forward through the history.
-The characters present in the value of the <CODE>isearch-terminators</CODE> variable
-are used to terminate an incremental search.
-If that variable has not been assigned a value, the <KBD>ESC</KBD> and
-<KBD>C-J</KBD> characters will terminate an incremental search.
-<KBD>C-g</KBD> will abort an incremental search and restore the original line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-</P><P>
-
-To find other matching entries in the history list, type <KBD>C-r</KBD> or
-<KBD>C-s</KBD> as appropriate.
-This will search backward or forward in the history for the next
-entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate
-the search and execute that command.
-For instance, a <KBD>RET</KBD> will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-</P><P>
-
-Readline remembers the last incremental search string. If two
-<KBD>C-r</KBD>s are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-</P><P>
-
-Non-incremental searches read the entire search string before starting
-to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-</P><P>
-
-<A NAME="Readline Init File"></A>
-<HR SIZE="6">
-<A NAME="SEC9"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC8"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC10"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.3 Readline Init File </H2>
-<!--docid::SEC9::-->
-<P>
-
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings.
-Any user can customize programs that use Readline by putting
-commands in an <EM>inputrc</EM> file, conventionally in his home directory.
-The name of this
-file is taken from the value of the environment variable <CODE>INPUTRC</CODE>. If
-that variable is unset, the default is <TT>`~/.inputrc'</TT>.
-</P><P>
-
-When a program which uses the Readline library starts up, the
-init file is read, and the key bindings are set.
-</P><P>
-
-In addition, the <CODE>C-x C-r</CODE> command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Syntax for the commands in the inputrc file.</TD></TR>
-</TABLE>
-
-<br>
-<TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC11">1.3.2 Conditional Init Constructs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Conditional key bindings in the inputrc file.</TD></TR>
-</TABLE>
-
-<br>
-<TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC12">1.3.3 Sample Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example inputrc file.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Init File Syntax"></A>
-<HR SIZE="6">
-<A NAME="SEC10"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC11"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.1 Readline Init File Syntax </H3>
-<!--docid::SEC10::-->
-<P>
-
-There are only a few basic constructs allowed in the
-Readline init file. Blank lines are ignored.
-Lines beginning with a <SAMP>`#'</SAMP> are comments.
-Lines beginning with a <SAMP>`$'</SAMP> indicate conditional
-constructs (see section <A HREF="rluserman.html#SEC11">1.3.2 Conditional Init Constructs</A>). Other lines
-denote variable settings and key bindings.
-</P><P>
-
-<DL COMPACT>
-<DT>Variable Settings
-<DD>You can modify the run-time behavior of Readline by
-altering the values of variables in Readline
-using the <CODE>set</CODE> command within the init file.
-The syntax is simple:
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>set <VAR>variable</VAR> <VAR>value</VAR>
-</pre></td></tr></table></P><P>
-
-Here, for example, is how to
-change from the default Emacs-like key binding to use
-<CODE>vi</CODE> line editing commands:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>set editing-mode vi
-</pre></td></tr></table></P><P>
-
-Variable names and values, where appropriate, are recognized without regard
-to case.
-</P><P>
-
-A great deal of run-time behavior is changeable with the following
-variables.
-</P><P>
-
-<A NAME="IDX4"></A>
-<DL COMPACT>
-
-<DT><CODE>bell-style</CODE>
-<DD><A NAME="IDX5"></A>
-Controls what happens when Readline wants to ring the terminal bell.
-If set to <SAMP>`none'</SAMP>, Readline never rings the bell. If set to
-<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available.
-If set to <SAMP>`audible'</SAMP> (the default), Readline attempts to ring
-the terminal's bell.
-<P>
-
-<DT><CODE>comment-begin</CODE>
-<DD><A NAME="IDX6"></A>
-The string to insert at the beginning of the line when the
-<CODE>insert-comment</CODE> command is executed. The default value
-is <CODE>"#"</CODE>.
-<P>
-
-<DT><CODE>completion-ignore-case</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
-in a case-insensitive fashion.
-The default value is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>completion-query-items</CODE>
-<DD><A NAME="IDX7"></A>
-The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities. If the
-number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
-This variable must be set to an integer value greater than or equal to 0.
-The default limit is <CODE>100</CODE>.
-<P>
-
-<DT><CODE>convert-meta</CODE>
-<DD><A NAME="IDX8"></A>
-If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
-eighth bit set to an ASCII key sequence by stripping the eighth
-bit and prefixing an <KBD>ESC</KBD> character, converting them to a
-meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>.
-<P>
-
-<DT><CODE>disable-completion</CODE>
-<DD><A NAME="IDX9"></A>
-If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
-Completion characters will be inserted into the line as if they had
-been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>editing-mode</CODE>
-<DD><A NAME="IDX10"></A>
-The <CODE>editing-mode</CODE> variable controls which default set of
-key bindings is used. By default, Readline starts up in Emacs editing
-mode, where the keystrokes are most similar to Emacs. This variable can be
-set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
-<P>
-
-<DT><CODE>enable-keypad</CODE>
-<DD><A NAME="IDX11"></A>
-When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
-keypad when it is called. Some systems need this to enable the
-arrow keys. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>expand-tilde</CODE>
-<DD><A NAME="IDX12"></A>
-If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
-attempts word completion. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<A NAME="IDX13"></A>
-If set to <SAMP>`on'</SAMP>, the history code attempts to place point at the
-same location on each history line retrived with <CODE>previous-history</CODE>
-or <CODE>next-history</CODE>.
-</P><P>
-
-<DT><CODE>horizontal-scroll-mode</CODE>
-<DD><A NAME="IDX14"></A>
-This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it
-to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
-horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>input-meta</CODE>
-<DD><A NAME="IDX15"></A>
-<A NAME="IDX16"></A>
-If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
-will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support. The
-default value is <SAMP>`off'</SAMP>. The name <CODE>meta-flag</CODE> is a
-synonym for this variable.
-<P>
-
-<DT><CODE>isearch-terminators</CODE>
-<DD><A NAME="IDX17"></A>
-The string of characters that should terminate an incremental search without
-subsequently executing the character as a command (see section <A HREF="rluserman.html#SEC8">1.2.5 Searching for Commands in the History</A>).
-If this variable has not been given a value, the characters <KBD>ESC</KBD> and
-<KBD>C-J</KBD> will terminate an incremental search.
-<P>
-
-<DT><CODE>keymap</CODE>
-<DD><A NAME="IDX18"></A>
-Sets Readline's idea of the current keymap for key binding commands.
-Acceptable <CODE>keymap</CODE> names are
-<CODE>emacs</CODE>,
-<CODE>emacs-standard</CODE>,
-<CODE>emacs-meta</CODE>,
-<CODE>emacs-ctlx</CODE>,
-<CODE>vi</CODE>,
-<CODE>vi-move</CODE>,
-<CODE>vi-command</CODE>, and
-<CODE>vi-insert</CODE>.
-<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
-equivalent to <CODE>emacs-standard</CODE>. The default value is <CODE>emacs</CODE>.
-The value of the <CODE>editing-mode</CODE> variable also affects the
-default keymap.
-<P>
-
-<DT><CODE>mark-directories</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, completed directory names have a slash
-appended. The default is <SAMP>`on'</SAMP>.
-<P>
-
-<DT><CODE>mark-modified-lines</CODE>
-<DD><A NAME="IDX19"></A>
-This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
-asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
-This variable is <SAMP>`off'</SAMP> by default.
-<P>
-
-<DT><CODE>mark-symlinked-directories</CODE>
-<DD><A NAME="IDX20"></A>
-If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
-to directories have a slash appended (subject to the value of
-<CODE>mark-directories</CODE>).
-The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>match-hidden-files</CODE>
-<DD><A NAME="IDX21"></A>
-This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
-names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
-completion, unless the leading <SAMP>`.'</SAMP> is
-supplied by the user in the filename to be completed.
-This variable is <SAMP>`on'</SAMP> by default.
-<P>
-
-<DT><CODE>output-meta</CODE>
-<DD><A NAME="IDX22"></A>
-If set to <SAMP>`on'</SAMP>, Readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>page-completions</CODE>
-<DD><A NAME="IDX23"></A>
-If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
-to display a screenful of possible completions at a time.
-This variable is <SAMP>`on'</SAMP> by default.
-<P>
-
-<DT><CODE>print-completions-horizontally</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, Readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>show-all-if-ambiguous</CODE>
-<DD><A NAME="IDX24"></A>
-This alters the default behavior of the completion functions. If
-set to <SAMP>`on'</SAMP>,
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-The default value is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>visible-stats</CODE>
-<DD><A NAME="IDX25"></A>
-If set to <SAMP>`on'</SAMP>, a character denoting a file's type
-is appended to the filename when listing possible
-completions. The default is <SAMP>`off'</SAMP>.
-<P>
-
-</DL>
-<P>
-
-<DT>Key Bindings
-<DD>The syntax for controlling key bindings in the init file is
-simple. First you need to find the name of the command that you
-want to change. The following sections contain tables of the command
-name, the default keybinding, if any, and a short description of what
-the command does.
-<P>
-
-Once you know the name of the command, simply place on a line
-in the init file the name of the key
-you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
-</P><P>
-
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a <VAR>macro</VAR>).
-</P><P>
-
-<DL COMPACT>
-<DT><VAR>keyname</VAR>: <VAR>function-name</VAR> or <VAR>macro</VAR>
-<DD><VAR>keyname</VAR> is the name of a key spelled out in English. For example:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "&#62; output"
-</pre></td></tr></table><P>
-
-In the above example, <KBD>C-u</KBD> is bound to the function
-<CODE>universal-argument</CODE>,
-<KBD>M-DEL</KBD> is bound to the function <CODE>backward-kill-word</CODE>, and
-<KBD>C-o</KBD> is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-<SAMP>`&#62; output'</SAMP> into the line).
-</P><P>
-
-A number of symbolic character names are recognized while
-processing this key binding syntax:
-<VAR>DEL</VAR>,
-<VAR>ESC</VAR>,
-<VAR>ESCAPE</VAR>,
-<VAR>LFD</VAR>,
-<VAR>NEWLINE</VAR>,
-<VAR>RET</VAR>,
-<VAR>RETURN</VAR>,
-<VAR>RUBOUT</VAR>,
-<VAR>SPACE</VAR>,
-<VAR>SPC</VAR>,
-and
-<VAR>TAB</VAR>.
-</P><P>
-
-<DT>"<VAR>keyseq</VAR>": <VAR>function-name</VAR> or <VAR>macro</VAR>
-<DD><VAR>keyseq</VAR> differs from <VAR>keyname</VAR> above in that strings
-denoting an entire key sequence can be specified, by placing
-the key sequence in double quotes. Some GNU Emacs style key
-escapes can be used, as in the following example, but the
-special character names are not recognized.
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-</pre></td></tr></table></P><P>
-
-In the above example, <KBD>C-u</KBD> is again bound to the function
-<CODE>universal-argument</CODE> (just as it was in the first example),
-<SAMP>`<KBD>C-x</KBD> <KBD>C-r</KBD>'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>,
-and <SAMP>`<KBD>ESC</KBD> <KBD>[</KBD> <KBD>1</KBD> <KBD>1</KBD> <KBD>~</KBD>'</SAMP> is bound to insert
-the text <SAMP>`Function Key 1'</SAMP>.
-</P><P>
-
-</DL>
-<P>
-
-The following GNU Emacs style escape sequences are available when
-specifying key sequences:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE><KBD>\C-</KBD></CODE>
-<DD>control prefix
-<DT><CODE><KBD>\M-</KBD></CODE>
-<DD>meta prefix
-<DT><CODE><KBD>\e</KBD></CODE>
-<DD>an escape character
-<DT><CODE><KBD>\\</KBD></CODE>
-<DD>backslash
-<DT><CODE><KBD>\"</KBD></CODE>
-<DD><KBD>"</KBD>, a double quotation mark
-<DT><CODE><KBD>\'</KBD></CODE>
-<DD><KBD>'</KBD>, a single quote or apostrophe
-</DL>
-<P>
-
-In addition to the GNU Emacs style escape sequences, a second
-set of backslash escapes is available:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>\a</CODE>
-<DD>alert (bell)
-<DT><CODE>\b</CODE>
-<DD>backspace
-<DT><CODE>\d</CODE>
-<DD>delete
-<DT><CODE>\f</CODE>
-<DD>form feed
-<DT><CODE>\n</CODE>
-<DD>newline
-<DT><CODE>\r</CODE>
-<DD>carriage return
-<DT><CODE>\t</CODE>
-<DD>horizontal tab
-<DT><CODE>\v</CODE>
-<DD>vertical tab
-<DT><CODE>\<VAR>nnn</VAR></CODE>
-<DD>the eight-bit character whose value is the octal value <VAR>nnn</VAR>
-(one to three digits)
-<DT><CODE>\x<VAR>HH</VAR></CODE>
-<DD>the eight-bit character whose value is the hexadecimal value <VAR>HH</VAR>
-(one or two hex digits)
-</DL>
-<P>
-
-When entering the text of a macro, single or double quotes must
-be used to indicate a macro definition.
-Unquoted text is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including <SAMP>`"'</SAMP> and <SAMP>`''</SAMP>.
-For example, the following binding will make <SAMP>`<KBD>C-x</KBD> \'</SAMP>
-insert a single <SAMP>`\'</SAMP> into the line:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-x\\": "\\"
-</pre></td></tr></table></P><P>
-
-</DL>
-<P>
-
-<A NAME="Conditional Init Constructs"></A>
-<HR SIZE="6">
-<A NAME="SEC11"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC10"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC12"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC12"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.2 Conditional Init Constructs </H3>
-<!--docid::SEC11::-->
-<P>
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests. There are four parser directives used.
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>$if</CODE>
-<DD>The <CODE>$if</CODE> construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-Readline. The text of the test extends to the end of the line;
-no characters are required to isolate it.
-<P>
-
-<DL COMPACT>
-<DT><CODE>mode</CODE>
-<DD>The <CODE>mode=</CODE> form of the <CODE>$if</CODE> directive is used to test
-whether Readline is in <CODE>emacs</CODE> or <CODE>vi</CODE> mode.
-This may be used in conjunction
-with the <SAMP>`set keymap'</SAMP> command, for instance, to set bindings in
-the <CODE>emacs-standard</CODE> and <CODE>emacs-ctlx</CODE> keymaps only if
-Readline is starting out in <CODE>emacs</CODE> mode.
-<P>
-
-<DT><CODE>term</CODE>
-<DD>The <CODE>term=</CODE> form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys. The word on the right side of the
-<SAMP>`='</SAMP> is tested against both the full name of the terminal and
-the portion of the terminal name before the first <SAMP>`-'</SAMP>. This
-allows <CODE>sun</CODE> to match both <CODE>sun</CODE> and <CODE>sun-cmd</CODE>,
-for instance.
-<P>
-
-<DT><CODE>application</CODE>
-<DD>The <VAR>application</VAR> construct is used to include
-application-specific settings. Each program using the Readline
-library sets the <VAR>application name</VAR>, and you can test for
-a particular value.
-This could be used to bind key sequences to functions useful for
-a specific program. For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-</pre></td></tr></table></DL>
-<P>
-
-<DT><CODE>$endif</CODE>
-<DD>This command, as seen in the previous example, terminates an
-<CODE>$if</CODE> command.
-<P>
-
-<DT><CODE>$else</CODE>
-<DD>Commands in this branch of the <CODE>$if</CODE> directive are executed if
-the test fails.
-<P>
-
-<DT><CODE>$include</CODE>
-<DD>This directive takes a single filename as an argument and reads commands
-and bindings from that file.
-For example, the following directive reads from <TT>`/etc/inputrc'</TT>:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>$include /etc/inputrc
-</pre></td></tr></table></DL>
-<P>
-
-<A NAME="Sample Init File"></A>
-<HR SIZE="6">
-<A NAME="SEC12"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC11"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.3 Sample Init File </H3>
-<!--docid::SEC12::-->
-<P>
-
-Here is an example of an <VAR>inputrc</VAR> file. This illustrates key
-binding, variable assignment, and conditional syntax.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre># This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library. Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs
-
-$if mode=emacs
-
-Meta-Control-h: backward-kill-word Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD": backward-char
-#"\M-OC": forward-char
-#"\M-OA": previous-history
-#"\M-OB": next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D": backward-char
-"\M-[C": forward-char
-"\M-[A": previous-history
-"\M-[B": next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD": backward-char
-#"\M-\C-OC": forward-char
-#"\M-\C-OA": previous-history
-#"\M-\C-OB": next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D": backward-char
-#"\M-\C-[C": forward-char
-#"\M-\C-[A": previous-history
-#"\M-\C-[B": next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding. This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-</pre></td></tr></table></P><P>
-
-<A NAME="Bindable Readline Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC13"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC12"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC14"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.4 Bindable Readline Commands </H2>
-<!--docid::SEC13::-->
-<P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC14">1.4.1 Commands For Moving</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Moving about the line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting at previous lines.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC16">1.4.3 Commands For Changing Text</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for changing text.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC17">1.4.4 Killing And Yanking</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for killing and yanking.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying numeric arguments, repeat counts.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting Readline to do the typing for you.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC20">1.4.7 Keyboard Macros</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Saving and re-executing typed characters</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Other miscellaneous commands.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-This section describes Readline commands that may be bound to key
-sequences.
-Command names without an accompanying key sequence are unbound by default.
-</P><P>
-
-In the following descriptions, <EM>point</EM> refers to the current cursor
-position, and <EM>mark</EM> refers to a cursor position saved by the
-<CODE>set-mark</CODE> command.
-The text between the point and mark is referred to as the <EM>region</EM>.
-</P><P>
-
-<A NAME="Commands For Moving"></A>
-<HR SIZE="6">
-<A NAME="SEC14"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC15"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.1 Commands For Moving </H3>
-<!--docid::SEC14::-->
-<DL COMPACT>
-<A NAME="IDX26"></A>
-<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX27"></A>
-Move to the start of the current line.
-<P>
-
-<A NAME="IDX28"></A>
-<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX29"></A>
-Move to the end of the line.
-<P>
-
-<A NAME="IDX30"></A>
-<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX31"></A>
-Move forward a character.
-<P>
-
-<A NAME="IDX32"></A>
-<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX33"></A>
-Move back a character.
-<P>
-
-<A NAME="IDX34"></A>
-<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX35"></A>
-Move forward to the end of the next word. Words are composed of
-letters and digits.
-<P>
-
-<A NAME="IDX36"></A>
-<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX37"></A>
-Move back to the start of the current or previous word. Words are
-composed of letters and digits.
-<P>
-
-<A NAME="IDX38"></A>
-<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX39"></A>
-Clear the screen and redraw the current line,
-leaving the current line at the top of the screen.
-<P>
-
-<A NAME="IDX40"></A>
-<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX41"></A>
-Refresh the current line. By default, this is unbound.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Commands For History"></A>
-<HR SIZE="6">
-<A NAME="SEC15"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC14"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC16"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC16"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.2 Commands For Manipulating The History </H3>
-<!--docid::SEC15::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX42"></A>
-<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX43"></A>
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-<CODE>add_history()</CODE>.
-If this line is a modified history line, the history line is restored
-to its original state.
-<P>
-
-<A NAME="IDX44"></A>
-<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX45"></A>
-Move `back' through the history list, fetching the previous command.
-<P>
-
-<A NAME="IDX46"></A>
-<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX47"></A>
-Move `forward' through the history list, fetching the next command.
-<P>
-
-<A NAME="IDX48"></A>
-<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX49"></A>
-Move to the first line in the history.
-<P>
-
-<A NAME="IDX50"></A>
-<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX51"></A>
-Move to the end of the input history, i.e., the line currently
-being entered.
-<P>
-
-<A NAME="IDX52"></A>
-<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX53"></A>
-Search backward starting at the current line and moving `up' through
-the history as necessary. This is an incremental search.
-<P>
-
-<A NAME="IDX54"></A>
-<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX55"></A>
-Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
-<P>
-
-<A NAME="IDX56"></A>
-<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX57"></A>
-Search backward starting at the current line and moving `up'
-through the history as necessary using a non-incremental search
-for a string supplied by the user.
-<P>
-
-<A NAME="IDX58"></A>
-<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX59"></A>
-Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
-for a string supplied by the user.
-<P>
-
-<A NAME="IDX60"></A>
-<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX61"></A>
-Search forward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX62"></A>
-<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX63"></A>
-Search backward through the history for the string of characters
-between the start of the current line and the point. This
-is a non-incremental search. By default, this command is unbound.
-<P>
-
-<A NAME="IDX64"></A>
-<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX65"></A>
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument <VAR>n</VAR>,
-insert the <VAR>n</VAR>th word from the previous command (the words
-in the previous command begin with word 0). A negative argument
-inserts the <VAR>n</VAR>th word from the end of the previous command.
-<P>
-
-<A NAME="IDX66"></A>
-<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX67"></A>
-Insert last argument to the previous command (the last word of the
-previous history entry). With an
-argument, behave exactly like <CODE>yank-nth-arg</CODE>.
-Successive calls to <CODE>yank-last-arg</CODE> move back through the history
-list, inserting the last argument of each line in turn.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Commands For Text"></A>
-<HR SIZE="6">
-<A NAME="SEC16"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC15"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC17"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.3 Commands For Changing Text </H3>
-<!--docid::SEC16::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX68"></A>
-<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX69"></A>
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to <CODE>delete-char</CODE>, then
-return EOF.
-<P>
-
-<A NAME="IDX70"></A>
-<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX71"></A>
-Delete the character behind the cursor. A numeric argument means
-to kill the characters instead of deleting them.
-<P>
-
-<A NAME="IDX72"></A>
-<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX73"></A>
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted. By default, this is not bound to a key.
-<P>
-
-<A NAME="IDX74"></A>
-<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX75"></A>
-Add the next character typed to the line verbatim. This is
-how to insert key sequences like <KBD>C-q</KBD>, for example.
-<P>
-
-<A NAME="IDX76"></A>
-<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX77"></A>
-Insert a tab character.
-<P>
-
-<A NAME="IDX78"></A>
-<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX79"></A>
-Insert yourself.
-<P>
-
-<A NAME="IDX80"></A>
-<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX81"></A>
-Drag the character before the cursor forward over
-the character at the cursor, moving the
-cursor forward as well. If the insertion point
-is at the end of the line, then this
-transposes the last two characters of the line.
-Negative arguments have no effect.
-<P>
-
-<A NAME="IDX82"></A>
-<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX83"></A>
-Drag the word before point past the word after point,
-moving point past that word as well.
-If the insertion point is at the end of the line, this transposes
-the last two words on the line.
-<P>
-
-<A NAME="IDX84"></A>
-<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX85"></A>
-Uppercase the current (or following) word. With a negative argument,
-uppercase the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX86"></A>
-<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX87"></A>
-Lowercase the current (or following) word. With a negative argument,
-lowercase the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX88"></A>
-<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX89"></A>
-Capitalize the current (or following) word. With a negative argument,
-capitalize the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX90"></A>
-<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX91"></A>
-Toggle overwrite mode. With an explicit positive numeric argument,
-switches to overwrite mode. With an explicit non-positive numeric
-argument, switches to insert mode. This command affects only
-<CODE>emacs</CODE> mode; <CODE>vi</CODE> mode does overwrite differently.
-Each call to <CODE>readline()</CODE> starts in insert mode.
-<P>
-
-In overwrite mode, characters bound to <CODE>self-insert</CODE> replace
-the text at point rather than pushing the text to the right.
-Characters bound to <CODE>backward-delete-char</CODE> replace the character
-before point with a space.
-</P><P>
-
-By default, this command is unbound.
-</P><P>
-
-</DL>
-<P>
-
-<A NAME="Commands For Killing"></A>
-<HR SIZE="6">
-<A NAME="SEC17"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC16"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC18"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC18"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.4 Killing And Yanking </H3>
-<!--docid::SEC17::-->
-<P>
-
-<DL COMPACT>
-
-<A NAME="IDX92"></A>
-<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX93"></A>
-Kill the text from point to the end of the line.
-<P>
-
-<A NAME="IDX94"></A>
-<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX95"></A>
-Kill backward to the beginning of the line.
-<P>
-
-<A NAME="IDX96"></A>
-<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX97"></A>
-Kill backward from the cursor to the beginning of the current line.
-<P>
-
-<A NAME="IDX98"></A>
-<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX99"></A>
-Kill all characters on the current line, no matter where point is.
-By default, this is unbound.
-<P>
-
-<A NAME="IDX100"></A>
-<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX101"></A>
-Kill from point to the end of the current word, or if between
-words, to the end of the next word.
-Word boundaries are the same as <CODE>forward-word</CODE>.
-<P>
-
-<A NAME="IDX102"></A>
-<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX103"></A>
-Kill the word behind point.
-Word boundaries are the same as <CODE>backward-word</CODE>.
-<P>
-
-<A NAME="IDX104"></A>
-<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX105"></A>
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-<P>
-
-<A NAME="IDX106"></A>
-<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX107"></A>
-Delete all spaces and tabs around point. By default, this is unbound.
-<P>
-
-<A NAME="IDX108"></A>
-<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX109"></A>
-Kill the text in the current region.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX110"></A>
-<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX111"></A>
-Copy the text in the region to the kill buffer, so it can be yanked
-right away. By default, this command is unbound.
-<P>
-
-<A NAME="IDX112"></A>
-<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX113"></A>
-Copy the word before point to the kill buffer.
-The word boundaries are the same as <CODE>backward-word</CODE>.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX114"></A>
-<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX115"></A>
-Copy the word following point to the kill buffer.
-The word boundaries are the same as <CODE>forward-word</CODE>.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX116"></A>
-<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX117"></A>
-Yank the top of the kill ring into the buffer at point.
-<P>
-
-<A NAME="IDX118"></A>
-<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX119"></A>
-Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
-</DL>
-<P>
-
-<A NAME="Numeric Arguments"></A>
-<HR SIZE="6">
-<A NAME="SEC18"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC17"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC19"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC19"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.5 Specifying Numeric Arguments </H3>
-<!--docid::SEC18::-->
-<DL COMPACT>
-
-<A NAME="IDX120"></A>
-<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX121"></A>
-Add this digit to the argument already accumulating, or start a new
-argument. <KBD>M--</KBD> starts a negative argument.
-<P>
-
-<A NAME="IDX122"></A>
-<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX123"></A>
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing <CODE>universal-argument</CODE>
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-By default, this is not bound to a key.
-</DL>
-<P>
-
-<A NAME="Commands For Completion"></A>
-<HR SIZE="6">
-<A NAME="SEC19"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC18"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC20"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC20"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.6 Letting Readline Type For You </H3>
-<!--docid::SEC19::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX124"></A>
-<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX125"></A>
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-The default is filename completion.
-<P>
-
-<A NAME="IDX126"></A>
-<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX127"></A>
-List the possible completions of the text before point.
-<P>
-
-<A NAME="IDX128"></A>
-<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX129"></A>
-Insert all completions of the text before point that would have
-been generated by <CODE>possible-completions</CODE>.
-<P>
-
-<A NAME="IDX130"></A>
-<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX131"></A>
-Similar to <CODE>complete</CODE>, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of <CODE>menu-complete</CODE> steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of <CODE>bell-style</CODE>)
-and the original text is restored.
-An argument of <VAR>n</VAR> moves <VAR>n</VAR> positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
-by default.
-<P>
-
-<A NAME="IDX132"></A>
-<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX133"></A>
-Deletes the character under the cursor if not at the beginning or
-end of the line (like <CODE>delete-char</CODE>).
-If at the end of the line, behaves identically to
-<CODE>possible-completions</CODE>.
-This command is unbound by default.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Keyboard Macros"></A>
-<HR SIZE="6">
-<A NAME="SEC20"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC19"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC21"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC21"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.7 Keyboard Macros </H3>
-<!--docid::SEC20::-->
-<DL COMPACT>
-
-<A NAME="IDX134"></A>
-<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX135"></A>
-Begin saving the characters typed into the current keyboard macro.
-<P>
-
-<A NAME="IDX136"></A>
-<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX137"></A>
-Stop saving the characters typed into the current keyboard macro
-and save the definition.
-<P>
-
-<A NAME="IDX138"></A>
-<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX139"></A>
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Miscellaneous Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC21"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC20"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.8 Some Miscellaneous Commands </H3>
-<!--docid::SEC21::-->
-<DL COMPACT>
-
-<A NAME="IDX140"></A>
-<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX141"></A>
-Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
-any bindings or variable assignments found there.
-<P>
-
-<A NAME="IDX142"></A>
-<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX143"></A>
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-<CODE>bell-style</CODE>).
-<P>
-
-<A NAME="IDX144"></A>
-<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX145"></A>
-If the metafied character <VAR>x</VAR> is lowercase, run the command
-that is bound to the corresponding uppercase character.
-<P>
-
-<A NAME="IDX146"></A>
-<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX147"></A>
-Metafy the next character typed. This is for keyboards
-without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
-<KBD>M-f</KBD>.
-<P>
-
-<A NAME="IDX148"></A>
-<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX149"></A>
-Incremental undo, separately remembered for each line.
-<P>
-
-<A NAME="IDX150"></A>
-<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX151"></A>
-Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
-command enough times to get back to the beginning.
-<P>
-
-<A NAME="IDX152"></A>
-<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX153"></A>
-Perform tilde expansion on the current word.
-<P>
-
-<A NAME="IDX154"></A>
-<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX155"></A>
-Set the mark to the point. If a
-numeric argument is supplied, the mark is set to that position.
-<P>
-
-<A NAME="IDX156"></A>
-<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX157"></A>
-Swap the point with the mark. The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-<P>
-
-<A NAME="IDX158"></A>
-<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX159"></A>
-A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
-<P>
-
-<A NAME="IDX160"></A>
-<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX161"></A>
-A character is read and point is moved to the previous occurrence
-of that character. A negative count searches for subsequent
-occurrences.
-<P>
-
-<A NAME="IDX162"></A>
-<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX163"></A>
-Without a numeric argument, the value of the <CODE>comment-begin</CODE>
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
-the characters at the beginning of the line do not match the value
-of <CODE>comment-begin</CODE>, the value is inserted, otherwise
-the characters in <CODE>comment-begin</CODE> are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-<P>
-
-<A NAME="IDX164"></A>
-<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX165"></A>
-Print all of the functions and their key bindings to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX166"></A>
-<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX167"></A>
-Print all of the settable variables and their values to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX168"></A>
-<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX169"></A>
-Print all of the Readline key sequences bound to macros and the
-strings they output. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX170"></A>
-<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX171"></A>
-When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
-editing mode.
-<P>
-
-<A NAME="IDX172"></A>
-<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX173"></A>
-When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
-editing mode.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Readline vi Mode"></A>
-<HR SIZE="6">
-<A NAME="SEC22"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC21"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.5 Readline vi Mode </H2>
-<!--docid::SEC22::-->
-<P>
-
-While the Readline library does not have a full set of <CODE>vi</CODE>
-editing functions, it does contain enough to allow simple editing
-of the line. The Readline <CODE>vi</CODE> mode behaves as specified in
-the POSIX 1003.2 standard.
-</P><P>
-
-In order to switch interactively between <CODE>emacs</CODE> and <CODE>vi</CODE>
-editing modes, use the command <KBD>M-C-j</KBD> (bound to emacs-editing-mode
-when in <CODE>vi</CODE> mode and to vi-editing-mode in <CODE>emacs</CODE> mode).
-The Readline default is <CODE>emacs</CODE> mode.
-</P><P>
-
-When you enter a line in <CODE>vi</CODE> mode, you are already placed in
-`insertion' mode, as if you had typed an <SAMP>`i'</SAMP>. Pressing <KBD>ESC</KBD>
-switches you into `command' mode, where you can edit the text of the
-line with the standard <CODE>vi</CODE> movement keys, move to previous
-history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>, and
-so forth.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC_Contents"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Table of Contents</H1>
-<UL>
-<A NAME="TOC1" HREF="rluserman.html#SEC1">1. Command Line Editing</A>
-<BR>
-<UL>
-<A NAME="TOC2" HREF="rluserman.html#SEC2">1.1 Introduction to Line Editing</A>
-<BR>
-<A NAME="TOC3" HREF="rluserman.html#SEC3">1.2 Readline Interaction</A>
-<BR>
-<UL>
-<A NAME="TOC4" HREF="rluserman.html#SEC4">1.2.1 Readline Bare Essentials</A>
-<BR>
-<A NAME="TOC5" HREF="rluserman.html#SEC5">1.2.2 Readline Movement Commands</A>
-<BR>
-<A NAME="TOC6" HREF="rluserman.html#SEC6">1.2.3 Readline Killing Commands</A>
-<BR>
-<A NAME="TOC7" HREF="rluserman.html#SEC7">1.2.4 Readline Arguments</A>
-<BR>
-<A NAME="TOC8" HREF="rluserman.html#SEC8">1.2.5 Searching for Commands in the History</A>
-<BR>
-</UL>
-<A NAME="TOC9" HREF="rluserman.html#SEC9">1.3 Readline Init File</A>
-<BR>
-<UL>
-<A NAME="TOC10" HREF="rluserman.html#SEC10">1.3.1 Readline Init File Syntax</A>
-<BR>
-<A NAME="TOC11" HREF="rluserman.html#SEC11">1.3.2 Conditional Init Constructs</A>
-<BR>
-<A NAME="TOC12" HREF="rluserman.html#SEC12">1.3.3 Sample Init File</A>
-<BR>
-</UL>
-<A NAME="TOC13" HREF="rluserman.html#SEC13">1.4 Bindable Readline Commands</A>
-<BR>
-<UL>
-<A NAME="TOC14" HREF="rluserman.html#SEC14">1.4.1 Commands For Moving</A>
-<BR>
-<A NAME="TOC15" HREF="rluserman.html#SEC15">1.4.2 Commands For Manipulating The History</A>
-<BR>
-<A NAME="TOC16" HREF="rluserman.html#SEC16">1.4.3 Commands For Changing Text</A>
-<BR>
-<A NAME="TOC17" HREF="rluserman.html#SEC17">1.4.4 Killing And Yanking</A>
-<BR>
-<A NAME="TOC18" HREF="rluserman.html#SEC18">1.4.5 Specifying Numeric Arguments</A>
-<BR>
-<A NAME="TOC19" HREF="rluserman.html#SEC19">1.4.6 Letting Readline Type For You</A>
-<BR>
-<A NAME="TOC20" HREF="rluserman.html#SEC20">1.4.7 Keyboard Macros</A>
-<BR>
-<A NAME="TOC21" HREF="rluserman.html#SEC21">1.4.8 Some Miscellaneous Commands</A>
-<BR>
-</UL>
-<A NAME="TOC22" HREF="rluserman.html#SEC22">1.5 Readline vi Mode</A>
-<BR>
-</UL>
-</UL>
-<HR SIZE=1>
-<A NAME="SEC_OVERVIEW"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Short Table of Contents</H1>
-<BLOCKQUOTE>
-<A NAME="TOC1" HREF="rluserman.html#SEC1">1. Command Line Editing</A>
-<BR>
-
-</BLOCKQUOTE>
-<HR SIZE=1>
-<A NAME="SEC_About"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-<P></P>
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt; ] </TD>
-<TD ALIGN="CENTER">
-Back
-</TD>
-<TD>
-previous section in reading order
-</TD>
-<TD>
-1.2.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt; ] </TD>
-<TD ALIGN="CENTER">
-Forward
-</TD>
-<TD>
-next section in reading order
-</TD>
-<TD>
-1.2.4
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt;&lt; ] </TD>
-<TD ALIGN="CENTER">
-FastBack
-</TD>
-<TD>
-previous or up-and-previous section
-</TD>
-<TD>
-1.1
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ Up ] </TD>
-<TD ALIGN="CENTER">
-Up
-</TD>
-<TD>
-up section
-</TD>
-<TD>
-1.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt;&gt; ] </TD>
-<TD ALIGN="CENTER">
-FastForward
-</TD>
-<TD>
-next or up-and-next section
-</TD>
-<TD>
-1.3
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Top] </TD>
-<TD ALIGN="CENTER">
-Top
-</TD>
-<TD>
-cover (top) of document
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Contents] </TD>
-<TD ALIGN="CENTER">
-Contents
-</TD>
-<TD>
-table of contents
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Index] </TD>
-<TD ALIGN="CENTER">
-Index
-</TD>
-<TD>
-concept index
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ ? ] </TD>
-<TD ALIGN="CENTER">
-About
-</TD>
-<TD>
-this page
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
-the following structure:
-<UL>
-<LI> 1. Section One </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-
-<HR SIZE=1>
-<BR>
-<FONT SIZE="-1">
-This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-
-</BODY>
-</HTML>
diff --git a/readline-4.3.orig/doc/rluserman.info b/readline-4.3.orig/doc/rluserman.info
deleted file mode 100644
index 3fccbd4..0000000
--- a/readline-4.3.orig/doc/rluserman.info
+++ /dev/null
@@ -1,1260 +0,0 @@
-This is rluserman.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/rluserman.texinfo.
-
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* RLuserman: (rluserman). The GNU readline library User's Manual.
-END-INFO-DIR-ENTRY
-
- This document describes the end user interface of the GNU Readline
-Library, a utility which aids in the consistency of user interface
-across discrete programs that need to provide a command line interface.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice pare
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
-
-
-File: rluserman.info, Node: Top, Next: Command Line Editing, Up: (dir)
-
-GNU Readline Library
-********************
-
- This document describes the end user interface of the GNU Readline
-Library, a utility which aids in the consistency of user interface
-across discrete programs that need to provide a command line interface.
-
-* Menu:
-
-* Command Line Editing:: GNU Readline User's Manual.
-
-
-File: rluserman.info, Node: Command Line Editing, Prev: Top, Up: Top
-
-Command Line Editing
-********************
-
- This chapter describes the basic features of the GNU command line
-editing interface.
-
-* Menu:
-
-* Introduction and Notation:: Notation used in this text.
-* Readline Interaction:: The minimum set of commands for editing a line.
-* Readline Init File:: Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
- available for binding
-* Readline vi Mode:: A short description of how to make Readline
- behave like the vi editor.
-
-
-File: rluserman.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing
-
-Introduction to Line Editing
-============================
-
- The following paragraphs describe the notation used to represent
-keystrokes.
-
- The text `C-k' is read as `Control-K' and describes the character
-produced when the <k> key is pressed while the Control key is depressed.
-
- The text `M-k' is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the <k>
-key is pressed. The Meta key is labeled <ALT> on many keyboards. On
-keyboards with two keys labeled <ALT> (usually to either side of the
-space bar), the <ALT> on the left side is generally set to work as a
-Meta key. The <ALT> key on the right may also be configured to work as
-a Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
- If you do not have a Meta or <ALT> key, or another key working as a
-Meta key, the identical keystroke can be generated by typing <ESC>
-_first_, and then typing <k>. Either process is known as "metafying"
-the <k> key.
-
- The text `M-C-k' is read as `Meta-Control-k' and describes the
-character produced by "metafying" `C-k'.
-
- In addition, several keys have their own names. Specifically,
-<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
-when seen in this text, or in an init file (*note Readline Init File::).
-If your keyboard lacks a <LFD> key, typing <C-j> will produce the
-desired character. The <RET> key may be labeled <Return> or <Enter> on
-some keyboards.
-
-
-File: rluserman.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
-
-Readline Interaction
-====================
-
- Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <RET>. You do not have to be at the end of
-the line to press <RET>; the entire line is accepted regardless of the
-location of the cursor within the line.
-
-* Menu:
-
-* Readline Bare Essentials:: The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands:: How to delete text, and how to get it back!
-* Readline Arguments:: Giving numeric arguments to commands.
-* Searching:: Searching through previous lines.
-
-
-File: rluserman.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction
-
-Readline Bare Essentials
-------------------------
-
- In order to enter characters into the line, simply type them. The
-typed character appears where the cursor was, and then the cursor moves
-one space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-
- Sometimes you may mistype a character, and not notice the error
-until you have typed several other characters. In that case, you can
-type `C-b' to move the cursor to the left, and then correct your
-mistake. Afterwards, you can move the cursor to the right with `C-f'.
-
- When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are `pushed over' to make room
-for the text that you have inserted. Likewise, when you delete text
-behind the cursor, characters to the right of the cursor are `pulled
-back' to fill in the blank space created by the removal of the text. A
-list of the bare essentials for editing the text of an input line
-follows.
-
-`C-b'
- Move back one character.
-
-`C-f'
- Move forward one character.
-
-<DEL> or <Backspace>
- Delete the character to the left of the cursor.
-
-`C-d'
- Delete the character underneath the cursor.
-
-Printing characters
- Insert the character into the line at the cursor.
-
-`C-_' or `C-x C-u'
- Undo the last editing command. You can undo all the way back to an
- empty line.
-
-(Depending on your configuration, the <Backspace> key be set to delete
-the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like `C-d', rather than the
-character to the left of the cursor.)
-
-
-File: rluserman.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction
-
-Readline Movement Commands
---------------------------
-
- The above table describes the most basic keystrokes that you need in
-order to do editing of the input line. For your convenience, many
-other commands have been added in addition to `C-b', `C-f', `C-d', and
-<DEL>. Here are some commands for moving more rapidly about the line.
-
-`C-a'
- Move to the start of the line.
-
-`C-e'
- Move to the end of the line.
-
-`M-f'
- Move forward a word, where a word is composed of letters and
- digits.
-
-`M-b'
- Move backward a word.
-
-`C-l'
- Clear the screen, reprinting the current line at the top.
-
- Notice how `C-f' moves forward a character, while `M-f' moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-
-
-File: rluserman.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
-
-Readline Killing Commands
--------------------------
-
- "Killing" text means to delete the text from the line, but to save
-it away for later use, usually by "yanking" (re-inserting) it back into
-the line. (`Cut' and `paste' are more recent jargon for `kill' and
-`yank'.)
-
- If the description for a command says that it `kills' text, then you
-can be sure that you can get the text back in a different (or the same)
-place later.
-
- When you use a kill command, the text is saved in a "kill-ring".
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill ring is not line
-specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
-
- Here is the list of commands for killing text.
-
-`C-k'
- Kill the text from the current cursor position to the end of the
- line.
-
-`M-d'
- Kill from the cursor to the end of the current word, or, if between
- words, to the end of the next word. Word boundaries are the same
- as those used by `M-f'.
-
-`M-<DEL>'
- Kill from the cursor the start of the current word, or, if between
- words, to the start of the previous word. Word boundaries are the
- same as those used by `M-b'.
-
-`C-w'
- Kill from the cursor to the previous whitespace. This is
- different than `M-<DEL>' because the word boundaries differ.
-
- Here is how to "yank" the text back into the line. Yanking means to
-copy the most-recently-killed text from the kill buffer.
-
-`C-y'
- Yank the most recently killed text back into the buffer at the
- cursor.
-
-`M-y'
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `C-y' or `M-y'.
-
-
-File: rluserman.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
-
-Readline Arguments
-------------------
-
- You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the sign of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type `M-- C-k'.
-
- The general way to pass numeric arguments to a command is to type
-meta digits before the command. If the first `digit' typed is a minus
-sign (`-'), then the sign of the argument will be negative. Once you
-have typed one meta digit to get the argument started, you can type the
-remainder of the digits, and then the command. For example, to give
-the `C-d' command an argument of 10, you could type `M-1 0 C-d', which
-will delete the next ten characters on the input line.
-
-
-File: rluserman.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
-
-Searching for Commands in the History
--------------------------------------
-
- Readline provides commands for searching through the command history
-for lines containing a specified string. There are two search modes:
-"incremental" and "non-incremental".
-
- Incremental searches begin before the user has finished typing the
-search string. As each character of the search string is typed,
-Readline displays the next entry from the history matching the string
-typed so far. An incremental search requires only as many characters
-as needed to find the desired history entry. To search backward in the
-history for a particular string, type `C-r'. Typing `C-s' searches
-forward through the history. The characters present in the value of
-the `isearch-terminators' variable are used to terminate an incremental
-search. If that variable has not been assigned a value, the <ESC> and
-`C-J' characters will terminate an incremental search. `C-g' will
-abort an incremental search and restore the original line. When the
-search is terminated, the history entry containing the search string
-becomes the current line.
-
- To find other matching entries in the history list, type `C-r' or
-`C-s' as appropriate. This will search backward or forward in the
-history for the next entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate the
-search and execute that command. For instance, a <RET> will terminate
-the search and accept the line, thereby executing the command from the
-history list. A movement command will terminate the search, make the
-last line found the current line, and begin editing.
-
- Readline remembers the last incremental search string. If two
-`C-r's are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-
- Non-incremental searches read the entire search string before
-starting to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-
-
-File: rluserman.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing
-
-Readline Init File
-==================
-
- Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings. Any user can customize programs that use Readline by
-putting commands in an "inputrc" file, conventionally in his home
-directory. The name of this file is taken from the value of the
-environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'.
-
- When a program which uses the Readline library starts up, the init
-file is read, and the key bindings are set.
-
- In addition, the `C-x C-r' command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-* Menu:
-
-* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
-
-* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
-
-* Sample Init File:: An example inputrc file.
-
-
-File: rluserman.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File
-
-Readline Init File Syntax
--------------------------
-
- There are only a few basic constructs allowed in the Readline init
-file. Blank lines are ignored. Lines beginning with a `#' are
-comments. Lines beginning with a `$' indicate conditional constructs
-(*note Conditional Init Constructs::). Other lines denote variable
-settings and key bindings.
-
-Variable Settings
- You can modify the run-time behavior of Readline by altering the
- values of variables in Readline using the `set' command within the
- init file. The syntax is simple:
-
- set VARIABLE VALUE
-
- Here, for example, is how to change from the default Emacs-like
- key binding to use `vi' line editing commands:
-
- set editing-mode vi
-
- Variable names and values, where appropriate, are recognized
- without regard to case.
-
- A great deal of run-time behavior is changeable with the following
- variables.
-
- `bell-style'
- Controls what happens when Readline wants to ring the
- terminal bell. If set to `none', Readline never rings the
- bell. If set to `visible', Readline uses a visible bell if
- one is available. If set to `audible' (the default),
- Readline attempts to ring the terminal's bell.
-
- `comment-begin'
- The string to insert at the beginning of the line when the
- `insert-comment' command is executed. The default value is
- `"#"'.
-
- `completion-ignore-case'
- If set to `on', Readline performs filename matching and
- completion in a case-insensitive fashion. The default value
- is `off'.
-
- `completion-query-items'
- The number of possible completions that determines when the
- user is asked whether he wants to see the list of
- possibilities. If the number of possible completions is
- greater than this value, Readline will ask the user whether
- or not he wishes to view them; otherwise, they are simply
- listed. This variable must be set to an integer value
- greater than or equal to 0. The default limit is `100'.
-
- `convert-meta'
- If set to `on', Readline will convert characters with the
- eighth bit set to an ASCII key sequence by stripping the
- eighth bit and prefixing an <ESC> character, converting them
- to a meta-prefixed key sequence. The default value is `on'.
-
- `disable-completion'
- If set to `On', Readline will inhibit word completion.
- Completion characters will be inserted into the line as if
- they had been mapped to `self-insert'. The default is `off'.
-
- `editing-mode'
- The `editing-mode' variable controls which default set of key
- bindings is used. By default, Readline starts up in Emacs
- editing mode, where the keystrokes are most similar to Emacs.
- This variable can be set to either `emacs' or `vi'.
-
- `enable-keypad'
- When set to `on', Readline will try to enable the application
- keypad when it is called. Some systems need this to enable
- the arrow keys. The default is `off'.
-
- `expand-tilde'
- If set to `on', tilde expansion is performed when Readline
- attempts word completion. The default is `off'.
-
- If set to `on', the history code attempts to place point at
- the same location on each history line retrived with
- `previous-history' or `next-history'.
-
- `horizontal-scroll-mode'
- This variable can be set to either `on' or `off'. Setting it
- to `on' means that the text of the lines being edited will
- scroll horizontally on a single screen line when they are
- longer than the width of the screen, instead of wrapping onto
- a new screen line. By default, this variable is set to `off'.
-
- `input-meta'
- If set to `on', Readline will enable eight-bit input (it will
- not clear the eighth bit in the characters it reads),
- regardless of what the terminal claims it can support. The
- default value is `off'. The name `meta-flag' is a synonym
- for this variable.
-
- `isearch-terminators'
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a
- command (*note Searching::). If this variable has not been
- given a value, the characters <ESC> and `C-J' will terminate
- an incremental search.
-
- `keymap'
- Sets Readline's idea of the current keymap for key binding
- commands. Acceptable `keymap' names are `emacs',
- `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move',
- `vi-command', and `vi-insert'. `vi' is equivalent to
- `vi-command'; `emacs' is equivalent to `emacs-standard'. The
- default value is `emacs'. The value of the `editing-mode'
- variable also affects the default keymap.
-
- `mark-directories'
- If set to `on', completed directory names have a slash
- appended. The default is `on'.
-
- `mark-modified-lines'
- This variable, when set to `on', causes Readline to display an
- asterisk (`*') at the start of history lines which have been
- modified. This variable is `off' by default.
-
- `mark-symlinked-directories'
- If set to `on', completed names which are symbolic links to
- directories have a slash appended (subject to the value of
- `mark-directories'). The default is `off'.
-
- `match-hidden-files'
- This variable, when set to `on', causes Readline to match
- files whose names begin with a `.' (hidden files) when
- performing filename completion, unless the leading `.' is
- supplied by the user in the filename to be completed. This
- variable is `on' by default.
-
- `output-meta'
- If set to `on', Readline will display characters with the
- eighth bit set directly rather than as a meta-prefixed escape
- sequence. The default is `off'.
-
- `page-completions'
- If set to `on', Readline uses an internal `more'-like pager
- to display a screenful of possible completions at a time.
- This variable is `on' by default.
-
- `print-completions-horizontally'
- If set to `on', Readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down
- the screen. The default is `off'.
-
- `show-all-if-ambiguous'
- This alters the default behavior of the completion functions.
- If set to `on', words which have more than one possible
- completion cause the matches to be listed immediately instead
- of ringing the bell. The default value is `off'.
-
- `visible-stats'
- If set to `on', a character denoting a file's type is
- appended to the filename when listing possible completions.
- The default is `off'.
-
-Key Bindings
- The syntax for controlling key bindings in the init file is
- simple. First you need to find the name of the command that you
- want to change. The following sections contain tables of the
- command name, the default keybinding, if any, and a short
- description of what the command does.
-
- Once you know the name of the command, simply place on a line in
- the init file the name of the key you wish to bind the command to,
- a colon, and then the name of the command. The name of the key
- can be expressed in different ways, depending on what you find most
- comfortable.
-
- In addition to command names, readline allows keys to be bound to
- a string that is inserted when the key is pressed (a MACRO).
-
- KEYNAME: FUNCTION-NAME or MACRO
- KEYNAME is the name of a key spelled out in English. For
- example:
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the above example, `C-u' is bound to the function
- `universal-argument', `M-DEL' is bound to the function
- `backward-kill-word', and `C-o' is bound to run the macro
- expressed on the right hand side (that is, to insert the text
- `> output' into the line).
-
- A number of symbolic character names are recognized while
- processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
- NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
-
- "KEYSEQ": FUNCTION-NAME or MACRO
- KEYSEQ differs from KEYNAME above in that strings denoting an
- entire key sequence can be specified, by placing the key
- sequence in double quotes. Some GNU Emacs style key escapes
- can be used, as in the following example, but the special
- character names are not recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In the above example, `C-u' is again bound to the function
- `universal-argument' (just as it was in the first example),
- `C-x C-r' is bound to the function `re-read-init-file', and
- `<ESC> <[> <1> <1> <~>' is bound to insert the text `Function
- Key 1'.
-
- The following GNU Emacs style escape sequences are available when
- specifying key sequences:
-
- `\C-'
- control prefix
-
- `\M-'
- meta prefix
-
- `\e'
- an escape character
-
- `\\'
- backslash
-
- `\"'
- <">, a double quotation mark
-
- `\''
- <'>, a single quote or apostrophe
-
- In addition to the GNU Emacs style escape sequences, a second set
- of backslash escapes is available:
-
- `\a'
- alert (bell)
-
- `\b'
- backspace
-
- `\d'
- delete
-
- `\f'
- form feed
-
- `\n'
- newline
-
- `\r'
- carriage return
-
- `\t'
- horizontal tab
-
- `\v'
- vertical tab
-
- `\NNN'
- the eight-bit character whose value is the octal value NNN
- (one to three digits)
-
- `\xHH'
- the eight-bit character whose value is the hexadecimal value
- HH (one or two hex digits)
-
- When entering the text of a macro, single or double quotes must be
- used to indicate a macro definition. Unquoted text is assumed to
- be a function name. In the macro body, the backslash escapes
- described above are expanded. Backslash will quote any other
- character in the macro text, including `"' and `''. For example,
- the following binding will make `C-x \' insert a single `\' into
- the line:
- "\C-x\\": "\\"
-
-
-File: rluserman.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
-
-Conditional Init Constructs
----------------------------
-
- Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key bindings
-and variable settings to be performed as the result of tests. There
-are four parser directives used.
-
-`$if'
- The `$if' construct allows bindings to be made based on the
- editing mode, the terminal being used, or the application using
- Readline. The text of the test extends to the end of the line; no
- characters are required to isolate it.
-
- `mode'
- The `mode=' form of the `$if' directive is used to test
- whether Readline is in `emacs' or `vi' mode. This may be
- used in conjunction with the `set keymap' command, for
- instance, to set bindings in the `emacs-standard' and
- `emacs-ctlx' keymaps only if Readline is starting out in
- `emacs' mode.
-
- `term'
- The `term=' form may be used to include terminal-specific key
- bindings, perhaps to bind the key sequences output by the
- terminal's function keys. The word on the right side of the
- `=' is tested against both the full name of the terminal and
- the portion of the terminal name before the first `-'. This
- allows `sun' to match both `sun' and `sun-cmd', for instance.
-
- `application'
- The APPLICATION construct is used to include
- application-specific settings. Each program using the
- Readline library sets the APPLICATION NAME, and you can test
- for a particular value. This could be used to bind key
- sequences to functions useful for a specific program. For
- instance, the following command adds a key sequence that
- quotes the current or previous word in Bash:
- $if Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $endif
-
-`$endif'
- This command, as seen in the previous example, terminates an `$if'
- command.
-
-`$else'
- Commands in this branch of the `$if' directive are executed if the
- test fails.
-
-`$include'
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the following
- directive reads from `/etc/inputrc':
- $include /etc/inputrc
-
-
-File: rluserman.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File
-
-Sample Init File
-----------------
-
- Here is an example of an INPUTRC file. This illustrates key
-binding, variable assignment, and conditional syntax.
-
-
- # This file controls the behaviour of line input editing for
- # programs that use the GNU Readline library. Existing
- # programs include FTP, Bash, and GDB.
- #
- # You can re-read the inputrc file with C-x C-r.
- # Lines beginning with '#' are comments.
- #
- # First, include any systemwide bindings and variable
- # assignments from /etc/Inputrc
- $include /etc/Inputrc
-
- #
- # Set various bindings for emacs mode.
-
- set editing-mode emacs
-
- $if mode=emacs
-
- Meta-Control-h: backward-kill-word Text after the function name is ignored
-
- #
- # Arrow keys in keypad mode
- #
- #"\M-OD": backward-char
- #"\M-OC": forward-char
- #"\M-OA": previous-history
- #"\M-OB": next-history
- #
- # Arrow keys in ANSI mode
- #
- "\M-[D": backward-char
- "\M-[C": forward-char
- "\M-[A": previous-history
- "\M-[B": next-history
- #
- # Arrow keys in 8 bit keypad mode
- #
- #"\M-\C-OD": backward-char
- #"\M-\C-OC": forward-char
- #"\M-\C-OA": previous-history
- #"\M-\C-OB": next-history
- #
- # Arrow keys in 8 bit ANSI mode
- #
- #"\M-\C-[D": backward-char
- #"\M-\C-[C": forward-char
- #"\M-\C-[A": previous-history
- #"\M-\C-[B": next-history
-
- C-q: quoted-insert
-
- $endif
-
- # An old-style binding. This happens to be the default.
- TAB: complete
-
- # Macros that are convenient for shell interaction
- $if Bash
- # edit the path
- "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
- # prepare to type a quoted word --
- # insert open and close double quotes
- # and move to just after the open quote
- "\C-x\"": "\"\"\C-b"
- # insert a backslash (testing backslash escapes
- # in sequences and macros)
- "\C-x\\": "\\"
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- # Add a binding to refresh the line, which is unbound
- "\C-xr": redraw-current-line
- # Edit variable on current line.
- "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
- $endif
-
- # use a visible bell if one is available
- set bell-style visible
-
- # don't strip characters to 7 bits when reading
- set input-meta on
-
- # allow iso-latin1 characters to be inserted rather
- # than converted to prefix-meta sequences
- set convert-meta off
-
- # display characters with the eighth bit set directly
- # rather than as meta-prefixed characters
- set output-meta on
-
- # if there are more than 150 possible completions for
- # a word, ask the user if he wants to see all of them
- set completion-query-items 150
-
- # For FTP
- $if Ftp
- "\C-xg": "get \M-?"
- "\C-xt": "put \M-?"
- "\M-.": yank-last-arg
- $endif
-
-
-File: rluserman.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing
-
-Bindable Readline Commands
-==========================
-
-* Menu:
-
-* Commands For Moving:: Moving about the line.
-* Commands For History:: Getting at previous lines.
-* Commands For Text:: Commands for changing text.
-* Commands For Killing:: Commands for killing and yanking.
-* Numeric Arguments:: Specifying numeric arguments, repeat counts.
-* Commands For Completion:: Getting Readline to do the typing for you.
-* Keyboard Macros:: Saving and re-executing typed characters
-* Miscellaneous Commands:: Other miscellaneous commands.
-
- This section describes Readline commands that may be bound to key
-sequences. Command names without an accompanying key sequence are
-unbound by default.
-
- In the following descriptions, "point" refers to the current cursor
-position, and "mark" refers to a cursor position saved by the
-`set-mark' command. The text between the point and mark is referred to
-as the "region".
-
-
-File: rluserman.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands
-
-Commands For Moving
--------------------
-
-`beginning-of-line (C-a)'
- Move to the start of the current line.
-
-`end-of-line (C-e)'
- Move to the end of the line.
-
-`forward-char (C-f)'
- Move forward a character.
-
-`backward-char (C-b)'
- Move back a character.
-
-`forward-word (M-f)'
- Move forward to the end of the next word. Words are composed of
- letters and digits.
-
-`backward-word (M-b)'
- Move back to the start of the current or previous word. Words are
- composed of letters and digits.
-
-`clear-screen (C-l)'
- Clear the screen and redraw the current line, leaving the current
- line at the top of the screen.
-
-`redraw-current-line ()'
- Refresh the current line. By default, this is unbound.
-
-
-File: rluserman.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands
-
-Commands For Manipulating The History
--------------------------------------
-
-`accept-line (Newline or Return)'
- Accept the line regardless of where the cursor is. If this line is
- non-empty, it may be added to the history list for future recall
- with `add_history()'. If this line is a modified history line,
- the history line is restored to its original state.
-
-`previous-history (C-p)'
- Move `back' through the history list, fetching the previous
- command.
-
-`next-history (C-n)'
- Move `forward' through the history list, fetching the next command.
-
-`beginning-of-history (M-<)'
- Move to the first line in the history.
-
-`end-of-history (M->)'
- Move to the end of the input history, i.e., the line currently
- being entered.
-
-`reverse-search-history (C-r)'
- Search backward starting at the current line and moving `up'
- through the history as necessary. This is an incremental search.
-
-`forward-search-history (C-s)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary. This is an incremental
- search.
-
-`non-incremental-reverse-search-history (M-p)'
- Search backward starting at the current line and moving `up'
- through the history as necessary using a non-incremental search
- for a string supplied by the user.
-
-`non-incremental-forward-search-history (M-n)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary using a non-incremental search
- for a string supplied by the user.
-
-`history-search-forward ()'
- Search forward through the history for the string of characters
- between the start of the current line and the point. This is a
- non-incremental search. By default, this command is unbound.
-
-`history-search-backward ()'
- Search backward through the history for the string of characters
- between the start of the current line and the point. This is a
- non-incremental search. By default, this command is unbound.
-
-`yank-nth-arg (M-C-y)'
- Insert the first argument to the previous command (usually the
- second word on the previous line) at point. With an argument N,
- insert the Nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument inserts
- the Nth word from the end of the previous command.
-
-`yank-last-arg (M-. or M-_)'
- Insert last argument to the previous command (the last word of the
- previous history entry). With an argument, behave exactly like
- `yank-nth-arg'. Successive calls to `yank-last-arg' move back
- through the history list, inserting the last argument of each line
- in turn.
-
-
-File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
-
-Commands For Changing Text
---------------------------
-
-`delete-char (C-d)'
- Delete the character at point. If point is at the beginning of
- the line, there are no characters in the line, and the last
- character typed was not bound to `delete-char', then return EOF.
-
-`backward-delete-char (Rubout)'
- Delete the character behind the cursor. A numeric argument means
- to kill the characters instead of deleting them.
-
-`forward-backward-delete-char ()'
- Delete the character under the cursor, unless the cursor is at the
- end of the line, in which case the character behind the cursor is
- deleted. By default, this is not bound to a key.
-
-`quoted-insert (C-q or C-v)'
- Add the next character typed to the line verbatim. This is how to
- insert key sequences like `C-q', for example.
-
-`tab-insert (M-<TAB>)'
- Insert a tab character.
-
-`self-insert (a, b, A, 1, !, ...)'
- Insert yourself.
-
-`transpose-chars (C-t)'
- Drag the character before the cursor forward over the character at
- the cursor, moving the cursor forward as well. If the insertion
- point is at the end of the line, then this transposes the last two
- characters of the line. Negative arguments have no effect.
-
-`transpose-words (M-t)'
- Drag the word before point past the word after point, moving point
- past that word as well. If the insertion point is at the end of
- the line, this transposes the last two words on the line.
-
-`upcase-word (M-u)'
- Uppercase the current (or following) word. With a negative
- argument, uppercase the previous word, but do not move the cursor.
-
-`downcase-word (M-l)'
- Lowercase the current (or following) word. With a negative
- argument, lowercase the previous word, but do not move the cursor.
-
-`capitalize-word (M-c)'
- Capitalize the current (or following) word. With a negative
- argument, capitalize the previous word, but do not move the cursor.
-
-`overwrite-mode ()'
- Toggle overwrite mode. With an explicit positive numeric argument,
- switches to overwrite mode. With an explicit non-positive numeric
- argument, switches to insert mode. This command affects only
- `emacs' mode; `vi' mode does overwrite differently. Each call to
- `readline()' starts in insert mode.
-
- In overwrite mode, characters bound to `self-insert' replace the
- text at point rather than pushing the text to the right.
- Characters bound to `backward-delete-char' replace the character
- before point with a space.
-
- By default, this command is unbound.
-
-
-File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
-
-Killing And Yanking
--------------------
-
-`kill-line (C-k)'
- Kill the text from point to the end of the line.
-
-`backward-kill-line (C-x Rubout)'
- Kill backward to the beginning of the line.
-
-`unix-line-discard (C-u)'
- Kill backward from the cursor to the beginning of the current line.
-
-`kill-whole-line ()'
- Kill all characters on the current line, no matter where point is.
- By default, this is unbound.
-
-`kill-word (M-d)'
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the same
- as `forward-word'.
-
-`backward-kill-word (M-<DEL>)'
- Kill the word behind point. Word boundaries are the same as
- `backward-word'.
-
-`unix-word-rubout (C-w)'
- Kill the word behind point, using white space as a word boundary.
- The killed text is saved on the kill-ring.
-
-`delete-horizontal-space ()'
- Delete all spaces and tabs around point. By default, this is
- unbound.
-
-`kill-region ()'
- Kill the text in the current region. By default, this command is
- unbound.
-
-`copy-region-as-kill ()'
- Copy the text in the region to the kill buffer, so it can be yanked
- right away. By default, this command is unbound.
-
-`copy-backward-word ()'
- Copy the word before point to the kill buffer. The word
- boundaries are the same as `backward-word'. By default, this
- command is unbound.
-
-`copy-forward-word ()'
- Copy the word following point to the kill buffer. The word
- boundaries are the same as `forward-word'. By default, this
- command is unbound.
-
-`yank (C-y)'
- Yank the top of the kill ring into the buffer at point.
-
-`yank-pop (M-y)'
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `yank' or `yank-pop'.
-
-
-File: rluserman.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands
-
-Specifying Numeric Arguments
-----------------------------
-
-`digit-argument (M-0, M-1, ... M--)'
- Add this digit to the argument already accumulating, or start a new
- argument. `M--' starts a negative argument.
-
-`universal-argument ()'
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is
- followed by digits, executing `universal-argument' again ends the
- numeric argument, but is otherwise ignored. As a special case, if
- this command is immediately followed by a character that is
- neither a digit or minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argument
- count four, a second time makes the argument count sixteen, and so
- on. By default, this is not bound to a key.
-
-
-File: rluserman.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
-
-Letting Readline Type For You
------------------------------
-
-`complete (<TAB>)'
- Attempt to perform completion on the text before point. The
- actual completion performed is application-specific. The default
- is filename completion.
-
-`possible-completions (M-?)'
- List the possible completions of the text before point.
-
-`insert-completions (M-*)'
- Insert all completions of the text before point that would have
- been generated by `possible-completions'.
-
-`menu-complete ()'
- Similar to `complete', but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of `menu-complete' steps through the list of possible
- completions, inserting each match in turn. At the end of the list
- of completions, the bell is rung (subject to the setting of
- `bell-style') and the original text is restored. An argument of N
- moves N positions forward in the list of matches; a negative
- argument may be used to move backward through the list. This
- command is intended to be bound to <TAB>, but is unbound by
- default.
-
-`delete-char-or-list ()'
- Deletes the character under the cursor if not at the beginning or
- end of the line (like `delete-char'). If at the end of the line,
- behaves identically to `possible-completions'. This command is
- unbound by default.
-
-
-File: rluserman.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
-
-Keyboard Macros
----------------
-
-`start-kbd-macro (C-x ()'
- Begin saving the characters typed into the current keyboard macro.
-
-`end-kbd-macro (C-x ))'
- Stop saving the characters typed into the current keyboard macro
- and save the definition.
-
-`call-last-kbd-macro (C-x e)'
- Re-execute the last keyboard macro defined, by making the
- characters in the macro appear as if typed at the keyboard.
-
-
-File: rluserman.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
-
-Some Miscellaneous Commands
----------------------------
-
-`re-read-init-file (C-x C-r)'
- Read in the contents of the INPUTRC file, and incorporate any
- bindings or variable assignments found there.
-
-`abort (C-g)'
- Abort the current editing command and ring the terminal's bell
- (subject to the setting of `bell-style').
-
-`do-uppercase-version (M-a, M-b, M-X, ...)'
- If the metafied character X is lowercase, run the command that is
- bound to the corresponding uppercase character.
-
-`prefix-meta (<ESC>)'
- Metafy the next character typed. This is for keyboards without a
- meta key. Typing `<ESC> f' is equivalent to typing `M-f'.
-
-`undo (C-_ or C-x C-u)'
- Incremental undo, separately remembered for each line.
-
-`revert-line (M-r)'
- Undo all changes made to this line. This is like executing the
- `undo' command enough times to get back to the beginning.
-
-`tilde-expand (M-~)'
- Perform tilde expansion on the current word.
-
-`set-mark (C-@)'
- Set the mark to the point. If a numeric argument is supplied, the
- mark is set to that position.
-
-`exchange-point-and-mark (C-x C-x)'
- Swap the point with the mark. The current cursor position is set
- to the saved position, and the old cursor position is saved as the
- mark.
-
-`character-search (C-])'
- A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous
- occurrences.
-
-`character-search-backward (M-C-])'
- A character is read and point is moved to the previous occurrence
- of that character. A negative count searches for subsequent
- occurrences.
-
-`insert-comment (M-#)'
- Without a numeric argument, the value of the `comment-begin'
- variable is inserted at the beginning of the current line. If a
- numeric argument is supplied, this command acts as a toggle: if
- the characters at the beginning of the line do not match the value
- of `comment-begin', the value is inserted, otherwise the
- characters in `comment-begin' are deleted from the beginning of
- the line. In either case, the line is accepted as if a newline
- had been typed.
-
-`dump-functions ()'
- Print all of the functions and their key bindings to the Readline
- output stream. If a numeric argument is supplied, the output is
- formatted in such a way that it can be made part of an INPUTRC
- file. This command is unbound by default.
-
-`dump-variables ()'
- Print all of the settable variables and their values to the
- Readline output stream. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-`dump-macros ()'
- Print all of the Readline key sequences bound to macros and the
- strings they output. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-`emacs-editing-mode (C-e)'
- When in `vi' command mode, this causes a switch to `emacs' editing
- mode.
-
-`vi-editing-mode (M-C-j)'
- When in `emacs' editing mode, this causes a switch to `vi' editing
- mode.
-
-
-File: rluserman.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing
-
-Readline vi Mode
-================
-
- While the Readline library does not have a full set of `vi' editing
-functions, it does contain enough to allow simple editing of the line.
-The Readline `vi' mode behaves as specified in the POSIX 1003.2
-standard.
-
- In order to switch interactively between `emacs' and `vi' editing
-modes, use the command `M-C-j' (bound to emacs-editing-mode when in
-`vi' mode and to vi-editing-mode in `emacs' mode). The Readline
-default is `emacs' mode.
-
- When you enter a line in `vi' mode, you are already placed in
-`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
-you into `command' mode, where you can edit the text of the line with
-the standard `vi' movement keys, move to previous history lines with
-`k' and subsequent lines with `j', and so forth.
-
-
-
-Tag Table:
-Node: Top1208
-Node: Command Line Editing1604
-Node: Introduction and Notation2218
-Node: Readline Interaction3837
-Node: Readline Bare Essentials5025
-Node: Readline Movement Commands6807
-Node: Readline Killing Commands7765
-Node: Readline Arguments9675
-Node: Searching10712
-Node: Readline Init File12856
-Node: Readline Init File Syntax13918
-Node: Conditional Init Constructs24802
-Node: Sample Init File27328
-Node: Bindable Readline Commands30513
-Node: Commands For Moving31564
-Node: Commands For History32414
-Node: Commands For Text35273
-Node: Commands For Killing37988
-Node: Numeric Arguments39940
-Node: Commands For Completion41069
-Node: Keyboard Macros42602
-Node: Miscellaneous Commands43162
-Node: Readline vi Mode46512
-
-End Tag Table
diff --git a/readline-4.3.orig/doc/rluserman.ps b/readline-4.3.orig/doc/rluserman.ps
deleted file mode 100644
index b46417a..0000000
--- a/readline-4.3.orig/doc/rluserman.ps
+++ /dev/null
@@ -1,2001 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: rluserman.dvi
-%%Pages: 24
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o rluserman.ps rluserman.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (rluserman.dvi)
-@start
-%DVIPSBitmapFont: Fa cmbxti10 14.4 1
-/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmbx12 13.14 46
-/Fb 46 122 df<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA212
-00B3AA387FFFFCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC38
-7C00FE12FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F
-00131E5B1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA21823
-7DA21F>I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C010000
-13FCA2EB03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210
-127C12FEA214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14
-381478A214F81301130313071306130C131C13381330136013E0EA01C01380EA03005A12
-0E5A12185A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C00
-1F137CEBFFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8
-000813FCC7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FF
-C03801FE0018237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F
-005AA2007E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4
-003E137E123F6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C
-003FB512C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA2
-5BA2133CA25BA213F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F838
-1C007C48133C141E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313
-E014F8000F13FCEA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C13
-38381F80F03807FFE00001130018237DA21F>I<141CA2143EA3147FA24A7EA39038019F
-C0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FC
-A29039E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229
-257EA42E>65 D<B612E015FC3903F0007FED3F80ED1FC0ED0FE0A216F0A21507150FA216
-E0151F16C0ED7F80913801FE0090B512F815FF9039F0003FC0ED0FE0ED07F016F8150316
-FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F826257EA42C>I<9138FF8008010FEBF0
-1890393FC03C789039FE0006F8D801F81303484813014848130048481478121F48481438
-A2007F151890C8FCA2481500A97E16187F123FA26C6C1430120F6C6C14606C6C14C06C6C
-EB0180D800FEEB070090383FC01E90380FFFF8010013C025257DA42C>I<B7FCA23903F8
-007FED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFEA2EBF81E140E14
-06A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428>69
-D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F80
-80A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F800AF90B6FCA2
-9038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3AFB512E0A213
-257EA417>I<B539E007FF80A2D803F8C7EA780016605E4B5A0307C7FC150E15185D5D5D
-EC03804AC8FC140E141F4A7E147FECDFC09038FB8FE09038FF0FF0EBFC07496C7E816E7E
-1400157F82153F6F7E6F7E8215076F7E82B539E03FFFC0A22A257EA430>75
-D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FCB6FCA220257E
-A425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C130CA26D6C1318
-A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3EC3F06A2EC1F8C
-A2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>I<D8FFF8903807
-FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13036D7E6D7E80EC7F80EC3F
-C0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3FD8ED1FF8150F15071503A2
-150115001678486C1438D8FFFC1418A22B257EA430>I<B67E15F83903F801FEEC007F6F
-7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F803F06E7E6E7E157EA2157F
-A482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B257EA42E>82
-D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
-EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
-C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I<
-007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C160C5AA4C71400
-B3A390B512FEA226247EA32B>I<B539C001FFE0A2D807F8C7EA1C006C6C141816386C6C
-14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7FC90380FF006150E903807F80C6D6C
-5A15386D6C5A903800FF6015E06E5A6E5AAE90380FFFFCA22B257FA42E>89
-D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0EA1F
-00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
-D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
-A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
-7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
-EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
-0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
-FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
-12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
-17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
-C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
-007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
-13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
-FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
-07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
-C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC1FF0A2EC0780
-EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB80FC147E80A2
-EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EAFFFCA20E267E
-A511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001
-A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E
-0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803FFF038
-07C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A2381F807E
-6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F007E001
-C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038CFFF00
-EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC13B013
-A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA7001EAF0
-00A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212E014C0
-EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F121FB5
-12C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39FFC07F
-E0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<39FFF8
-0FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00005B13FE
-EB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A2390FC00F
-003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EB
-E0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120
-D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00
-005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B
-1370EA68E0EA7FC0001FC8FC1D237F9720>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmsl10 10.95 40
-/Fc 40 122 df<EAFFF0A20C027E8A0F>45 D<1408140C141C143CA2147C147E149EA2EB
-011EA21302801304A21308A20110138014071320A2EB7FFF90384007C0EB8003A2EA0100
-A21202EC01E01206001F130339FF801FFE1F207F9F22>65 D<0007B5FC3900F803C09038
-7801E0EC00F04913F8A515F03801E001EC03E015C0EC0F809038FFFE009038E00F803903
-C003C0EC01E015F0A21400A2485A1401A215E01403EC07C0390F000F80EC3E00B512F01D
-1F7E9E20>I<ECFE02903807018690381C004E0170133E49131E4848131C4848130C1207
-48C7FC5A121E003E1408003C1400127CA45AA4127815101520A27E1540001C14806CEB01
-006C13023803800C3800E030EB3FC01F217C9F21>I<0007B57E3900F801E09038780070
-81497F151E150E150FA348481480A6484814005DA3151E153E4848133C5DA25D4A5A4A5A
-260F000FC7FC143CB512F0211F7E9E23>I<0007B512FC3900F8007C0178131C150C5B15
-04A414043901E00800A31438EBFFF8EBE0383803C010A4EC00081510485AA21520A21560
-15C0380F00011407B612801E1F7E9E1F>I<0007B512F83900F800780178133815185B15
-08A53901E00800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D
-1F7E9E1E>I<3A07FF83FFC03A00F8007C000178133CA2495BA648485BA490B5FCEBE000
-4848485AA64848485AA64848485A01807F39FFF07FF8221F7E9E22>72
-D<3807FF803800F8001378A25BA6485AA6485AA6485AA648C7FC7FEAFFF0111F7E9E10>
-I<3A07FF803FE03A00F8001F000178130C5D4913205D5D4AC7FC1402140848485A5C1460
-14F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F48487E81140781140381380F
-00016D487E39FFF00FFE231F7E9E23>75 D<3807FFE0D800FCC7FC1378A25BA6485AA648
-5AA41580EC0100EA0780A25C14021406140E380F001E147CB512FC191F7E9E1C>I<D807
-F8EB7FC0D8007CEB1F00150C015E1304019E5B138FA2EB8780A2EB83C0D801035BEB01E0
-A2EB00F0A2147800025C143CA2141EA2140F485CEC07C0A21403A21401000C5C001E1300
-B47E221F7E9E22>78 D<EB01FCEB0E0790383801C090387000E0484813F048481378485A
-153C48C7FC5A001E143E123E123C127CA448147CA3157815F81278EC01F0007C14E01403
-003C14C0001CEB0780001EEB0F006C131E380780383801C0E038007F801F217C9F23>I<
-0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC01E0EC03C0EC0F
-00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807FFFE3900F80780
-90387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00EBFFF03803C038
-80141E140EA2140F48485AA51501D80F0013029038800F8239FFF8078CC7EA01F020207E
-9E22>82 D<EB1F82EB7066EBC01E3801800EEA030048130C00061304120EA3000F1300A2
-7FEA07F013FF6C13C06C13E038003FF0EB03F813001478143CA200401338A31430006013
-70146000F013C038E8018038C60300EA81FC17217E9F19>I<003FB512F0383C07800030
-1430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383FFFE01C1F7A9E21
->I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A6485BA600705BA25C
-A200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFFF07FF81FF03B1F
-000FC007C0001E903907800380001FED01006C1502140F5EEC17C002135B142301805C00
-0713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C415F2EBC80015F4
-EA01F015F85B5D5B15605B000014402C207A9E2F>87 D<EA07F8EA0C0CEA1E061307121C
-1200A313FFEA07C7EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F87801414
-7D9317>97 D<1207123F120F7EA2120EA65A137CEA1D83381E0180001C13C0EB00E05A14
-F0A5387001E0A214C013031480EB0700EAE80EEACC38EA83E014207B9F19>I<13FEEA03
-83380E0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D
-9314>I<13F8EA070EEA0E07381C038012381278127012F0B5FC00F0C7FCA25AA46C5AEA
-7002EA3004EA1C18EA07E011147D9314>101 D<EB07C0EB1C60EB30F01360EBE0E0EBC0
-001201A5485AEA3FFCEA0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB
-3E11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FC
-A21218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0381C0700EA07FC
-181F809417>I<EA01C0EA03E0A213C0EA0180C7FCA6EA0380121F12071203A2EA0700A6
-120EA65A121EEAFF800B1F7F9E0C>105 D<13E0120712011200A2485AA6485AEB81FCEB
-80F014C0EB81801400EA07045B13181338137C131C120E7FA2130F7F1480EA1C03381E07
-C038FF8FF016207E9F18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A612
-0EA65A121EEAFF800B207F9F0C>I<390387C07C391F9861863907A072073903C03403EB
-80380007EB7807EB0070A5000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E93
-26>I<38038F80381F90E0EA07A03803C0601380000713E01300A5380E01C0A6381C0380
-001E13C038FF8FF014147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012
-F0A438E001E0A214C0130300F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3
-E03807EC383801F01C6C487E140F48487E1580A53903800F00A2140E141E141C5C380740
-70EB61C0011FC7FC90C8FCA3120EA4121EEAFFC0191D809319>I<EBFC2038038260EA07
-02381E01E0123C003813C0127812F0A438E00380A212F0A21307127038380F00EA1C37EA
-07C7EA0007A3130EA4131EEBFFC0131D7D9318>I<EA038E381FB380EA07C71203EB8300
-EA078090C7FCA5120EA65A121EEAFFC011147E9312>I<EA01F9EA0607EA080312181301
-EA3802EA3C00121F13F0EA07FCEA01FEEA001FEA40071303A212601306EAF004EAC818EA
-87E010147F9312>I<1380EA0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2
-EA1840EA0F800D1C7C9B12>I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4
-131EA25BEA305E381F9F8011147B9319>I<38FF83F8381E00E0001C13C01480121E380E
-01005B13025B12075BA25BEA039013A013E05B5B120190C7FC15147C9318>I<381FF0FF
-3803C0780001137014403800E0C0EBE180EB73001376133CA2131C132E134E1387EA0107
-380203801204380C01C0383C03E038FE07FC18147F9318>120 D<390FF83F803901E00E
-00EBC00C140813E000005B143014205C13705CA20171C7FC1339133A133E133C13381318
-1310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmti10 10.95 8
-/Fd 8 117 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B5
-12E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E0
-0640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
-D<127012F8A212F012E005057B840E>46 D<EB3C60EBE2703801C1E0EA0380EA07005A38
-0E01C0121EA3383C0380A4EB0700A2EA1C0F1317EA0C2EEA03CEEA000EA25BA21230EA78
-38485AEA60E0EA3F80141D7E9315>103 D<13C0EA01E0A213C0C7FCA7120E12131223EA
-4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C0B1F7C9E0E>105
-D<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB03840038
-1388A2EB0708EB031000701330383001C016147C931A>110 D<EA1C1EEA266138278380
-EA47871307EB0300008EC7FC120EA35AA45AA45A123011147C9313>114
-D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0EA07F8EA03FCEA003E130E1270
-EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I<EA018013C0EA0380A4EA0700A2
-EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA3100121E0C1C7C9B0F>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmr8 8 26
-/Fe 26 118 df<126012F0A212701210A21220A21240A2040A7D960A>39
-D<EAFF80A2090280870C>45 D<1206120E12FE120EB1EAFFE00B157D9412>49
-D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018
-13F0123838FE03FE17177F961A>65 D<EAFFFE381C0380EB00E014601470A414E0EB01C0
-381FFF8014C0381C00E0147014301438A4147014E0EB01C0B5120015177F9619>I<EBFC
-1038038330380E00B0481370481330123000701310126012E01400A51410126012700030
-132012386C13406C138038038300EA00FC14177E9619>I<B5FC381C01C0EB00E0143014
-381418141C140C140EA7140C141CA2143814301460EB01C0B5120017177F961B>I<B512
-E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A2130014181410A214
-3014F0B5FC15177F9618>I<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C
-0C1304A390C7FCA6EAFFC014177F9617>I<EAFFC0001CC7FCAD1420A31460A2144014C0
-1303B5FC13177F9616>76 D<EAFFFE381C0380EB00C014601470A4146014C0EB0380381F
-FE00001CC7FCAAB47E14177F9618>80 D<EAFFFC381C0380EB00C014E01470A414E014C0
-EB0380381FFE00381C0780EB01C0EB00E0A514E1A2147238FF803C18177F961A>82
-D<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C
-130E13061280A3EAC004EAE008EAD810EA87E00F177E9614>I<387FFFF8386038180040
-1308A200801304A300001300AF3803FF8016177F9619>I<12FCA212C0B3AB12FCA20621
-7D980A>91 D<EA3FC0EA70601330EA20381200EA03F8EA1E3812301270EAE039A21379EA
-70FFEA1F1E100E7F8D12>97 D<EA07F0EA18381230EA7010EA600012E0A41260EA700812
-30EA1830EA07C00D0E7F8D10>99 D<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000
-A31260EA7008EA3010EA1830EA07C00D0E7F8D10>101 D<1203EA0780A2EA0300C7FCA5
-EA1F801203AF1243EAE30012E7127C091D82960B>106 D<12F81238A8133E1338133013
-4013801239EA3FC0EA39E0123813F01378133CA2EAFE7F10177F9613>I<EAF8F8EA3B1C
-EA3C0E1238AA38FE3F80110E7F8D14>110 D<EAF9F0EA3E1CEA380613077F1480A41400
-5B130EEA3E1CEA39F00038C7FCA512FE11147F8D14>112 D<EAF9E0EA3A70123CEA3820
-1300A9B4FC0C0E7F8D0E>114 D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA
-01E0EA8060A212C0EAE0C0EA9F000B0E7F8D0E>I<1208A31218A21238EAFFC0EA3800A7
-1340A4EA1C80EA0F000A147F930E>I<EAF83EEA380EAA131EEA1C2E3807CF80110E7F8D
-14>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmsy9 9 2
-/Ff 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E
-A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA
-0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmsltt10 10.95 29
-/Fg 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E
-769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3
-C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA
-7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203
-120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I<EB3E18EBFFB8
-4813F8EA07C1EB8078EA0E00121E001C137048133014005AA35AA614C0EA7001A2130338
-380780383C0F00EA1FFE6C5AEA03F0151C7C9B18>67 D<3807FFC014E014F03801C0F814
-78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013
-07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000
-A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18
-1C7F9B18>I<EB1FF8EB3FFCEB1FF8EB01C0A4EB0380A6EB0700A6130EA2124012E06C5A
-EAE03CEAFFF86C5AEA1FC0161C7C9B18>74 D<EA07FC487E6C5AEA01C0A4485AA648C7FC
-A6120E14301470A4B512E0A3141C7E9B18>76 D<3907E01F80000FEB3FC0000714803903
-B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6
-5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12
-1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92
-D<387FFFC0B512E0A26C13C013047E7F18>95 D<EA03FC48B4FC4813801303380601C012
-00A2137FEA07FF121FEA3F813878038012F012E0A21307EA701F387FFFF0EA3FFBEA0FE1
-14147D9318>97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012
-38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I<EB07E0
-A31300A4EB01C0EA01F1EA07FDEA0FFFEA1E0FEA3C0738780380127012E0A4EB0700A25B
-5B6C5AEA787F383FFFC0381FEFE0380F87C0131C7C9B18>100 D<13F8EA07FE487E381F
-0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F
-FE6C5AEA07F012147B9318>I<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A
-7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<EB1E1F90387FFF8090B5FC
-3901E1E3003803C0E01380EA0700A3495AA238038780EA07FF49C7FCEA0E7890C8FCA26C
-B47E4813E0487F383C007848133812705AA2147800705B387C03E0383FFFC0000F90C7FC
-EA03FC191F809318>I<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6
-EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106
-D<EA07E0120F12071200A4485AEBC7FEA3EBC1E0EBC3C038038780EB8F00139E13BC13FE
-13EEEA07CF1387EB0780130314C01301387FC7F838FFE7FC387FC7F8171C7F9B18>I<EA
-0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>I<13FCEA03FF000F1380
-EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F
-FC6C5AEA07E013147C9318>111 D<EBF8C0EA03FDEA0FFFEA1F0FEA3C07387803801270
-12E0A4EB0700A25BA26C5AEA787FEA3FFEEA1FEEEA078EEA000EA35BA43801FF80A3121E
-7C9318>113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA
-FFFC7F5B17147E9318>I<EBFE603807FFE05AEA1F01121C003813C0EA3C00001F1300EA
-0FF8EA07FE3800FF801307383001C01270A238780380EA7C07B51200EAEFFEEA63F81314
-7D9318>I<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF
-E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013
-E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119
-D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC
-EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F
-F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13
-78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmcsc10 10.95 12
-/Fh 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807
-FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97
-D<EB7E083803819838070078000C1338001C13185A00781308127000F01300A700701308
-127812386C1310120C000713603803818038007E0015177E961B>99
-D<B512C0EA1C011300144014601420A213081400A21318EA1FF8EA1C1813081410A21300
-14301420A21460EB01E0B5FC14177E9619>101 D<B512C0EA1C011300144014601420A2
-13081400A21318EA1FF8EA1C181308A390C7FCA6EAFFC013177E9618>I<EB7E08380381
-9838070078000C1338001C13185A00781308127000F01300A5EB03FEEB00381270127812
-387E120C1207380380D838007F0817177E961D>I<EAFF80EA1C00B3A3EAFF8009177E96
-0E>105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13
-0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110
-D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700
-70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D>
-I<EAFFFCEA1C07EB03C0130114E0A414C01303EB0700EA1FFC001CC7FCAAB47E13177E96
-19>I<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA
-001C130E13061280A3EAC004EAE008EAD810EA87E00F177E9615>115
-D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117
-D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F
-133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF
-18177F961C>120 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmbx12 17.28 18
-/Fi 18 117 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91FF8EB
-079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607A248
-5A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E6D15
-0E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7
-FCD9003F13F80203138031317CB03A>67 D<B812F0A3C6903880003FEE07F816031600A2
-1778A21738A3171C1507A31700A25D5D5D91B5FCA3EC803F818181A21707A392C7120EA4
-171EA2173CA2177C17FC16011607163FB812F8A330317EB035>69
-D<B67EA3000190C9FCB3A9EE0380A416071700A25EA35E5E5E5E4B5A150FB7FCA329317D
-B030>76 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780
-A3481603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<EBFFF0000313FF390F803F80
-9038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FCA414FF131FEBFFE33803FC03EA0FF0
-EA1FC0123FEA7F80A2EAFF00A31407A2387F800D393FC01DFE3A1FE078FFF03907FFE07F
-C6EB803F24207E9F27>97 D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039
-FF001F8049EB0FC04914E049EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB
-0FE06D14C001E7EB3F809039C3C0FE00903880FFF89038003FC027327EB12D>I<ED0FC0
-EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F484813
-3F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F
-3FFE38007FFEEB0FF027327DB12D>100 D<EB0FFC90387FFF803901FC0FC03903F003E0
-3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
-FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
-FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
-1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
-391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
-00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
-121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
-140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
-D8001F90C7FC242F7E9F28>I<EA03C0487E487E487EA46C5A6C5A6C5AC8FCA9EA01F812
-7FA31207B3A7B51280A311337DB217>105 D<EA01F812FFA3120F1207B3B3A6B512C0A3
-12327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01E0FC02C09038
-8300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3B500C3B5380F
-FFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1801FC03807F3
-0001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFFC03901FC07F0
-3903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300FF15E0A8007F
-15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF039007FFFC0D9
-07FCC7FC23207E9F28>I<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90
-C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F01001380143F0060131F00
-E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F8019207D9F20>115
-D<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7FCB0EC0380A712
-01EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmsy10 10.95 1
-/Fj 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmbx12 14.4 39
-/Fk 39 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED
-07F0150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216
-FFA616FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>66
-D<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484814
-7F4848143F4848141F485A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E
-6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE0090
-38007FF028297CA831>I<B712E0A33903FC001FED07F01501A215001670A3913801C078
-1638A302031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C163816
-7816F815011503151FB712F0A327297EA82C>69 D<B712C0A33903FC003FED0FE0150315
-01A21500A316F0913801C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FC
-A9B512FCA324297EA82A>I<B512F0A33803FC00B3B1B512F0A314297EA819>73
-D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A21507A2150FA2151F157F913801FF00
-B7FCA322297EA828>76 D<D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014EFA2D99F
-C0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE1338
-A2027F1370A291383F80E0A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5A
-A26E5AD8FFFE0203B51280A2157039297DA840>I<B612E015FE6F7E3A03FC003FE0ED0F
-F06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC0
-6F7E6F7E6F7EA9170EA21503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>82
-D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200FC1301A2
-14007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB
-007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE00
-00E15B38C01FF01C297CA825>I<B500F0EBFFFEA3D803FCC7EA0380B3AA0001ED07007F
-0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7FC2F297EA834
->85 D<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13016C
-604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E17F0
-9126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035BA291
-3AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E141E
-A242297FA845>87 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4
-EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F38
-03FC031E1B7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F0
-9038F001F89038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C
-0FE090380FFF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F
-80EA3F00A248133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE0
-0E3803F83C3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807
-F03F380FC00F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E0
-7FFF3801FFE738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F13
-0048EB0F80127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003
-803907C007003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC
-7FEA03F813F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<90
-38FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E13
-3E003F137E6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14
-C06C14E06C14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC0
-1F806CB5120038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC0
-01E413E0EBE80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA
-1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>
-I<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0
-903AC307E0C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFF
-FE3FFF8FFFE0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC807
-01D813F013D0A213E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390F
-C01F80391F800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A239
-1F800FC0390FC01F803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFC1F0EBC7FC
-EBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
-D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
-13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
-C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
-AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
-07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
-0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
-FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
-EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
-FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
-803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
-00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
-3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
-EA74F0EA3FE0EA0F8020277F9A23>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmtt10 10.95 77
-/Fl 77 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<1238127CA2127E123E120EA3121CA2123812F8
-12F012C0070E789B18>39 D<137013F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA4
-5AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C24799F18>I<126012F012
-787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01C0A2EA03801207EA0F0012
-1E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EAFDDF387FFF00EA1FFCEA07
-F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A411147D9718>I<121C123E127E
-127F123F121F1207120E121E127C12F81260080C788518>44 D<387FFFC0B512E0A26C13
-C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F14005B
-131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A121E123E
-123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C073838
-0380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C0700EA1F
-1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12431203
-B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C
-0780383003C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA1FFC
-EA03F0131C7E9B18>53 D<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13
-F05BA2485AA3485AA448C7FCA7131D7E9C18>55 D<EA03F8EA0FFE487E383E0F80EA3803
-387001C0A438380380EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F013E0
-EAE000A4387001C0EA7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<1230127812
-FCA2127812301200A81230127812FCA2127812300614779318>58
-D<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C
-7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E9918>60
-D<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0130C7E9318>I<126012
-F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE0048
-5AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F
-38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A111C
-7D9B18>I<137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C1
-12E1EAE380A638E1C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC0
-0001138038007E00131C7E9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707
-A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>I<EA7FFC
-B5FC6C1380381C03C01301EB00E0A4130114C01307381FFF80140014C0EA1C03EB00E014
-F01470A414F014E01303387FFFC0B51280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07
-FFEA0F07EA1E03EA3C01EA38005AA214005AA8127014E0A27E123C381E01C0EA0F073807
-FF803803FE00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E013
-00A214F01470A814F014E0A2130114C01303EB0F80387FFF00485AEA7FF8141C7F9B18>
-I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A315
-1C7F9B18>I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0
-A3141C7E9B18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5
-EB0FF0131F130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B
-18>I<387F07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8
-387F07F0151C7F9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C
-7D9B18>I<387F07F038FF87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0
-121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0
-151C7F9B18>75 D<EAFFC0A3001CC7FCB114E0A5B5FCA3131C7E9B18>I<38FC01F8EAFE
-03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C
-7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121CA213E1A313611371A213
-311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18>I<EA0FFE383FFF8048
-13C0EA7803EA700100F013E0EAE000B0EAF001007013C0EA7C07EA7FFF6C1380380FFE00
-131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF
-1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA0FFE383FFF804813C0EA7803EA7001
-00F013E0EAE000AE1370A2EAF079387039C0EA783FEA7FFF6C1380380FFE00EA000FEB07
-80A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE6C7E381C0F80130314C01301A31303
-1480130F381FFF005BA2EA1C0F7FEB0380A5149CA3387F01F8EAFF81387F00F0161C7F9B
-18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FE
-C67EEB0F80EB03C01301EB00E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8
-131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF
-83FEA3381C0070B36C13E0EA0F01380783C03803FF806C1300EA007C171C809B18>I<38
-FE03F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3
-EA00F8A21370A9EA01FC487E6C5A151C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D
-24779F18>91 D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F
-12017F12007F1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<
-EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0B512E0A26C13C013047E7F18>
-95 D<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA7F03127812E0A3
-EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>97 D<127E12FE127E120EA5133EEB
-FF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380
-38063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838030048C7FCA25AA61270
-EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<EB1F80133F131F1303A5
-EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA3C1F381FFF
-F0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F38380780EA7003A2
-38E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF8000071300EA01F812147D
-9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801C000AEEA7F
-FFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA
-1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0
-EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF8000
-0F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>I<EA0380EA
-07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338137CA31338
-1300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<127E
-12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB03
-8014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>I<
-38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E17148093
-18>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7
-FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E000E0A5EAF001
-007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF
-80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380
-EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA38
-0FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB
-3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FC
-A9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1F
-FCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F011147D9318>I<48
-7E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F
-9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714
-809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038E
-A3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0A4381C01C013
-7113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF013
-9F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707
-000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F038
-0E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313
-F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB
-078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A314147F9318>
-I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7FE013
-1F130713247E9F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005B
-ABEA03C012FF90C7FC127C13247E9F18>125 D<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA
-60C00F067C9B18>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmr10 10.95 71
-/Fm 71 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<127012F812FCA212741204A312
-08A21210A212201240060E7C9F0D>39 D<13401380EA01005A12061204120C5AA2123812
-30A212701260A412E0AC1260A412701230A212381218A27E120412067E7EEA008013400A
-2E7BA112>I<7E12407E12307E1208120C7EA212077EA213801201A413C0AC1380A41203
-1300A25A1206A25A120812185A12205A5A0A2E7EA112>I<127012F012F8A212781208A3
-1210A31220A21240050E7C840D>44 D<EAFFF0A20C02808A0F>I<127012F8A312700505
-7C840D>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
-0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>48 D<13801203120F12F31203B3A6
-EA07C0EA7FFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF8
-03A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380
-EA3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F12
-001400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F0138012
-40EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2
-EA010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17
->I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214
-C0A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137C
-EA0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406
-EAF807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D
-17>I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E0
-5B1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A312
-7038780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01
-C012C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E
-18487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E3380003
-80A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A3
-12701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A2
-12781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB
-2078A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14
-E039FF801FFE1F207F9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEB
-FFF0EB007C141FEC0F80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E
-20>I<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A
-1510127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E0
-0300EB380CEB0FF01C217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F01570
-1578A2153CA3153EA8153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F
-7F9E23>I<B61280380F000F14031401140015C01540A314401500A214C0130113FF1301
-13001440A3EC0020A31540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780
-071401A2140015C01540A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE
-1A1F7F9E1E>I<90380FE02090387818609038E004E03803800238070001481300001E14
-60A25A1520127C127800F81400A7EC7FFCEC03E000781301127C123CA27EA27E7E380380
-023900E00460903878182090380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5
-FCEB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<39FF
-F007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E013
-41EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75
-D<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>I<B4
-6CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A29038
-0E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>
-I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03
-C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22
->I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14
-F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C0
-6C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80
-EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>82
-D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8
-6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180
-38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014
-3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00
-80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003
-FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213
-F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0
-7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003
-5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14
-4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39
-FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06
-EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89
-D<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<12FFA21203B3B3A512FFA2082D80A10D
->93 D<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmbx12 20.736 19
-/Fn 19 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B612F8A439007FF000B3B3AFB612F8A41D3B7DBA24>73
-D<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3170FA3171FA2173F177F17FF5E04
-071300163FB9FCA4323B7DBA3A>76 D<B500F00207B512E0808080D8007F92390007E000
-6E6F5A81017B7F81137901787F6E7E6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F
-7E816F13806F13C017E06F13F081EE7FF8EE3FFC17FEEE1FFF827013837013C318E37013
-F382EF7FFBEF3FFFA283838383A28383187F183FA201FC161FB500FC150F18071803A243
-3B7CBA4C>78 D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F717E717EA2
-84171FA284A660A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A29139F0007F
-F0EE1FF8707E707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B600F89039
-3FFC078094381FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<903801FF
-F0010F13FE013FEBFF809039FF801FC03901FE003F4848EB7FE0485A485A121F4848EB3F
-C0ED1F80007FEC0F004990C7FCA212FFAA127F7FA2123F6D14F0121F6C6CEB01E012076C
-6CEB03C06CB4EB0F806C9038C03F0090383FFFFE010F13F8010113C024267DA52B>I<EE
-3F80ED3FFFA4150181B0ECFF80010F13F0013F13FC9038FFC03F3901FE000F4848130348
-487F48487F121F485AA2127F5BA312FFA9127FA36C7EA2121F6C6C5B6C6C5B00035CD801
-FE011F13C02700FF807E13FE90387FFFF8010F13E0010113002F3C7DBB36>I<49B47E01
-0F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0485A003F15
-F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F000F15F06C6C
-13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013C025267DA5
-2C>I<EC1FF0ECFFFC010313FF90390FF83F8090381FE07F90393FC0FFC0495A13FFA248
-9038007F80ED3F00151E92C7FCAAB67EA4000190C8FCB3AC007F13FEA4223C7DBB1E>I<
-EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512
-F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108
-D<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701607F0003497E01
-FD15805C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>110
-D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2
-01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
-0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
-07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
-12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
-B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
-01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
-7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
-C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
-1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
-1FFCEA07F02E377EA533>121 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%BeginPaperSize: Letter
-letter
-%%EndPaperSize
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 75 659 a Fn(GNU)33 b(Readline)h(Library)e(User)h(In)m(terface)p
-75 709 1800 17 v 936 757 a Fm(Edition)17 b(4.3,)c(for)i
-Fl(Readline)f(Library)g Fm(V)l(ersion)i(4.3.)1643 811
-y(Marc)o(h)e(2002)75 2467 y Fk(Brian)23 b(F)-6 b(o)n(x,)23
-b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75
-2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
-b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop
-%%Page: 2 2
-2 1 bop 75 217 a Fm(This)22 b(do)q(cumen)o(t)f(describ)q(es)i(the)f
-(end)f(user)h(in)o(terface)f(of)g(the)g(GNU)g(Readline)i(Library)l(,)g
-(a)e(utilit)o(y)75 271 y(whic)o(h)14 b(aids)f(in)g(the)g(consistency)h
-(of)e(user)h(in)o(terface)g(across)f(discrete)h(programs)f(that)g(need)
-h(to)f(pro)o(vide)75 326 y(a)j(command)g(line)i(in)o(terface.)75
-394 y(Published)g(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
-(oundation)75 448 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75
-503 y(Boston,)d(MA)h(02111)f(USA)75 570 y(P)o(ermission)j(is)f(gran)o
-(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f
-(this)h(man)o(ual)f(pro)o(vided)h(the)75 625 y(cop)o(yrigh)o(t)e
-(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h
-(on)f(all)h(copies.)75 692 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g
-(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h
-(man)o(ual)g(under)h(the)f(con-)75 747 y(ditions)k(for)e(v)o(erbatim)h
-(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g
-(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 802 y(under)h(the)f(terms)g
-(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-869 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 924 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 979 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fj(\015)h Fm(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(1)75 149 y Fi(1)41 b(Command)28 b(Line)e(Editing)137
-271 y Fm(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
-(of)g(the)g Fh(gnu)g Fm(command)g(line)i(editing)f(in)o(terface.)75
-403 y Fk(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
-501 y Fm(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
-(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137
-569 y(The)h(text)f Fg(C-k)h Fm(is)g(read)g(as)f(`Con)o(trol-K')g(and)h
-(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831
-567 y Ff(h)p 1844 541 19 2 v 1844 569 a Fe(k)p 1844 577
-V 1860 567 a Ff(i)75 624 y Fm(k)o(ey)d(is)h(pressed)g(while)g(the)f
-(Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g
-Fg(M-k)f Fm(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o
-(haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y)
-o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930
-745 y Ff(h)p 942 719 V 942 747 a Fe(k)p 942 755 V 958
-745 a Ff(i)987 747 y Fm(k)o(ey)g(is)h(pressed.)20 b(The)15
-b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Ff(h)p 1791
-719 72 2 v 1791 747 a Fe(AL)m(T)p 1791 755 V 1860 745
-a Ff(i)75 802 y Fm(on)e(man)o(y)g(k)o(eyb)q(oards.)19
-b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled)
-1213 800 y Ff(h)p 1225 774 V 1225 802 a Fe(AL)m(T)p 1225
-810 V 1294 800 a Ff(i)1322 802 y Fm(\(usually)i(to)e(either)i(side)g
-(of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Ff(h)p
-400 829 V 400 857 a Fe(AL)m(T)p 400 865 V 469 855 a Ff(i)499
-857 y Fm(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g
-(as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Ff(h)p
-1709 829 V 1709 857 a Fe(AL)m(T)p 1709 865 V 1778 855
-a Ff(i)1808 857 y Fm(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f
-(also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g
-(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967
-y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g
-(for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035
-y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694
-1033 y Ff(h)p 706 1007 V 706 1035 a Fe(AL)m(T)p 706 1043
-V 775 1033 a Ff(i)801 1035 y Fm(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w)
-o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75
-1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping)
-809 1088 y Ff(h)p 822 1062 70 2 v 822 1090 a Fe(ESC)p
-822 1098 V 888 1088 a Ff(i)915 1090 y Fd(\014rst)p Fm(,)g(and)g(then)h
-(t)o(yping)1339 1088 y Ff(h)p 1351 1062 19 2 v 1351 1090
-a Fe(k)p 1351 1098 V 1368 1088 a Ff(i)1383 1090 y Fm(.)18
-b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j
-Fc(metafying)k Fm(the)425 1143 y Ff(h)p 437 1117 V 437
-1145 a Fe(k)p 437 1153 V 454 1143 a Ff(i)484 1145 y Fm(k)o(ey)l(.)137
-1214 y(The)i(text)e Fg(M-C-k)h Fm(is)h(read)f(as)f(`Meta-Con)o(trol-k')
-g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75
-1268 y Fc(metafying)e Fg(C-k)p Fm(.)137 1337 y(In)g(addition,)h(sev)o
-(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30
-b(Sp)q(eci\014cally)l(,)1384 1335 y Ff(h)p 1396 1309
-73 2 v 1396 1337 a Fe(DEL)p 1396 1345 V 1467 1335 a Ff(i)1482
-1337 y Fm(,)1514 1335 y Ff(h)p 1526 1309 70 2 v 1526
-1337 a Fe(ESC)p 1526 1345 V 1593 1335 a Ff(i)1608 1337
-y Fm(,)1640 1335 y Ff(h)p 1652 1309 72 2 v 1652 1337
-a Fe(LFD)p 1652 1345 V 1722 1335 a Ff(i)1737 1337 y Fm(,)1768
-1335 y Ff(h)p 1780 1309 70 2 v 1780 1337 a Fe(SPC)p 1780
-1345 V 1847 1335 a Ff(i)1862 1337 y Fm(,)75 1390 y Ff(h)p
-87 1364 76 2 v 87 1392 a Fe(RET)p 87 1399 V 160 1390
-a Ff(i)175 1392 y Fm(,)23 b(and)306 1390 y Ff(h)p 318
-1364 74 2 v 318 1392 a Fe(T)m(AB)p 318 1399 V 390 1390
-a Ff(i)427 1392 y Fm(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f
-(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75
-1447 y(Section)d(1.3)f([Readline)h(Init)g(File],)h(page)e(4\).)32
-b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444
-1445 y Ff(h)p 1456 1419 72 2 v 1456 1447 a Fe(LFD)p 1456
-1454 V 1526 1445 a Ff(i)1560 1447 y Fm(k)o(ey)l(,)h(t)o(yping)1802
-1445 y Ff(h)p 1814 1419 49 2 v 1814 1447 a Fe(C-j)p 1814
-1454 V 1860 1445 a Ff(i)75 1501 y Fm(will)c(pro)q(duce)g(the)f(desired)
-h(c)o(haracter.)j(The)874 1499 y Ff(h)p 886 1473 76 2
-v 886 1501 a Fe(RET)p 886 1509 V 959 1499 a Ff(i)989
-1501 y Fm(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499
-y Ff(h)p 1397 1473 109 2 v 1397 1501 a Fe(Return)p 1397
-1509 V 1503 1499 a Ff(i)1533 1501 y Fm(or)1588 1499 y
-Ff(h)p 1600 1473 86 2 v 1600 1501 a Fe(En)o(ter)p 1600
-1509 V 1684 1499 a Ff(i)1714 1501 y Fm(on)f(some)75 1556
-y(k)o(eyb)q(oards.)75 1688 y Fk(1.2)33 b(Readline)23
-b(In)n(teraction)137 1786 y Fm(Often)13 b(during)h(an)e(in)o(teractiv)o
-(e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)
-h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h
-(the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)i(library)f
-(giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75
-1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)
-g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g
-(and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s
-(jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h
-(commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005
-y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f
-(insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75
-2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o
-(ou)e(simply)i(press)1160 2058 y Ff(h)p 1172 2032 76
-2 v 1172 2060 a Fe(RET)p 1172 2068 V 1245 2058 a Ff(i)1260
-2060 y Fm(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f
-(the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563
-2113 y Ff(h)p 575 2087 V 575 2115 a Fe(RET)p 575 2122
-V 648 2113 a Ff(i)663 2115 y Fm(;)i(the)f(en)o(tire)h(line)g(is)g
-(accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75
-2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fb(1.2.1)30
-b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fm(In)12
-b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h
-(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f
-(app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h
-(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23
-b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h
-(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h
-(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560
-y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f
-(and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t)
-o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19
-b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fg(C-b)f
-Fm(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75
-2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13
-b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g
-(with)g Fg(C-f)p Fm(.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fm(2)1322 b(GNU)15 b(Readline)h(Library)137
-149 y(When)h(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j
-(y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75
-204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h
-(ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21
-b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j
-(the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h
-(cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e
-(blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h
-(text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75
-369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o
-(ws.)75 449 y Fg(C-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o
-(haracter.)75 530 y Fg(C-f)168 b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h
-(c)o(haracter.)75 608 y Ff(h)p 87 582 73 2 v 87 610 a
-Fe(DEL)p 87 618 V 158 608 a Ff(i)188 610 y Fm(or)244
-608 y Ff(h)p 256 582 159 2 v 256 610 a Fe(Bac)o(kspace)p
-256 618 V 412 608 a Ff(i)315 665 y Fm(Delete)h(the)f(c)o(haracter)g(to)
-f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fg(C-d)168
-b Fm(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
-825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o
-(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
-961 y Fg(C-_)g Fm(or)f Fg(C-x)h(C-u)315 1015 y Fm(Undo)i(the)g(last)f
-(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o
-(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75
-1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863
-1149 y Ff(h)p 875 1123 V 875 1151 a Fe(Bac)o(kspace)p
-875 1159 V 1032 1149 a Ff(i)1063 1151 y Fm(k)o(ey)g(b)q(e)h(set)f(to)f
-(delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h
-(cursor)f(and)g(the)596 1204 y Ff(h)p 608 1178 73 2 v
-608 1206 a Fe(DEL)p 608 1213 V 679 1204 a Ff(i)710 1206
-y Fm(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h
-(the)g(cursor,)f(lik)o(e)75 1260 y Fg(C-d)p Fm(,)e(rather)h(than)g(the)
-g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75
-1374 y Fb(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
-1471 y Fm(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e
-(basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g
-(do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12
-b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o
-(e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fg(C-b)p
-Fm(,)h Fg(C-f)p Fm(,)f Fg(C-d)p Fm(,)g(and)522 1578 y
-Ff(h)p 534 1552 V 534 1580 a Fe(DEL)p 534 1588 V 605
-1578 a Ff(i)619 1580 y Fm(.)23 b(Here)16 b(are)g(some)f(commands)h(for)
-f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635
-y(line.)75 1716 y Fg(C-a)168 b Fm(Mo)o(v)o(e)14 b(to)h(the)g(start)f
-(of)h(the)g(line.)75 1796 y Fg(C-e)168 b Fm(Mo)o(v)o(e)14
-b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fg(M-f)168
-b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h
-(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957
-y Fg(M-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75
-2037 y Fg(C-l)168 b Fm(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f
-(curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f
-Fg(C-f)g Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i
-Fg(M-f)e Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18
-b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con)
-o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h
-(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75
-2341 y Fb(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137
-2438 y Fc(Killing)26 b Fm(text)18 b(means)g(to)g(delete)i(the)f(text)f
-(from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)
-h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fc(y)o(anking)22
-b Fm(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27
-b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75
-2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137
-2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h
-(it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o
-(ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o
-(t)g(\(or)g(the)g(same\))g(place)h(later.)p eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g
-(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fc(kill-ring)p Fm(.)21
-b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75
-204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d
-(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o
-(ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i
-(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g
-(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75
-314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f
-(are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g
-(of)e(commands)h(for)g(killing)j(text.)75 458 y Fg(C-k)168
-b Fm(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q
-(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y
-Fg(M-d)168 b Fm(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e
-(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)
-e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q
-(oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f
-Fg(M-f)p Fm(.)75 668 y Fg(M-)123 666 y Ff(h)p 135 640
-73 2 v 135 668 a Fe(DEL)p 135 675 V 206 666 a Ff(i)315
-668 y Fm(Kill)i(from)e(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o
-(t)g(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)e(to)h(the)315
-723 y(start)j(of)h(the)g(previous)h(w)o(ord.)31 b(W)l(ord)19
-b(b)q(oundaries)h(are)f(the)h(same)e(as)h(those)g(used)h(b)o(y)315
-777 y Fg(M-b)p Fm(.)75 855 y Fg(C-w)168 b Fm(Kill)18
-b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22
-b(This)16 b(is)g(di\013eren)o(t)g(than)f Fg(M-)1777 853
-y Ff(h)p 1789 827 V 1789 855 a Fe(DEL)p 1789 863 V 1860
-853 a Ff(i)315 910 y Fm(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h
-(di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fc(y)o(ank)j
-Fm(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21
-b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d
-(text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fg(C-y)168
-b Fm(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g
-(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198
-y Fg(M-y)168 b Fm(Rotate)16 b(the)h(kill-ring,)j(and)d(y)o(ank)g(the)h
-(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h(prior)
-315 1252 y(command)d(is)h Fg(C-y)f Fm(or)f Fg(M-y)p Fm(.)75
-1361 y Fb(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457
-y Fm(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g
-(Readline)h(commands.)20 b(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
-1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f
-(the)g Fd(sign)j Fm(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o
-(t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)
-f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g
-(direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o
-(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o
-(k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g
-(t)o(yp)q(e)g(`)p Fl(M--)f(C-k)p Fm('.)137 1742 y(The)h(general)f(w)o
-(a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)
-h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797
-y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a)
-g(min)o(us)g(sign)g(\(`)p Fl(-)p Fm('\),)d(then)j(the)f(sign)h(of)f
-(the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31
-b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h
-(to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75
-1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g
-(then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f
-Fg(C-d)75 1961 y Fm(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f
-(could)i(t)o(yp)q(e)f(`)p Fl(M-1)14 b(0)h(C-d)p Fm(',)k(whic)o(h)g
-(will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14
-b(on)i(the)f(input)h(line.)75 2125 y Fb(1.2.5)30 b(Searc)n(hing)21
-b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fm(Readline)d(pro)o
-(vides)e(commands)g(for)g(searc)o(hing)g(through)g(the)g(command)g
-(history)g(for)g(lines)i(con-)75 2275 y(taining)e(a)f(sp)q(eci\014ed)i
-(string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20
-b Fc(incremen)o(tal)e Fm(and)e Fc(non-incremen)o(tal)p
-Fm(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f
-(the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.)
-19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g
-(string)f(is)h(t)o(yp)q(ed,)h(Readline)g(displa)o(ys)f(the)g(next)g(en)
-o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12
-b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g
-(searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75
-2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l
-(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g
-(a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fg(C-r)p
-Fm(.)k(T)o(yping)d Fg(C-s)e Fm(searc)o(hes)h(forw)o(ard)e(through)h
-(the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75
-2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Fl(isearch-terminators)d
-Fm(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75
-2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q
-(een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Ff(h)p
-1301 2642 70 2 v 1301 2670 a Fe(ESC)p 1301 2678 V 1368
-2668 a Ff(i)1402 2670 y Fm(and)e Fg(C-J)f Fm(c)o(haracters)g(will)p
-eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fm(4)1322 b(GNU)15 b(Readline)h(Library)75
-149 y(terminate)21 b(an)g(incremen)o(tal)i(searc)o(h.)37
-b Fg(C-g)21 b Fm(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f
-(and)g(restore)g(the)75 204 y(original)16 b(line.)21
-b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o
-(try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259
-y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 325 y(T)l(o)g(\014nd)i
-(other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o
-(yp)q(e)f Fg(C-r)g Fm(or)g Fg(C-s)g Fm(as)h(appropriate.)k(This)75
-380 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i
-(the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g
-(searc)o(h)g(string)75 434 y(t)o(yp)q(ed)19 b(so)g(far.)30
-b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
-h(command)e(will)j(terminate)e(the)75 489 y(searc)o(h)10
-b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063
-487 y Ff(h)p 1076 461 76 2 v 1076 489 a Fe(RET)p 1076
-497 V 1149 487 a Ff(i)1174 489 y Fm(will)g(terminate)f(the)g(searc)o(h)
-f(and)h(accept)75 544 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g
-(command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f
-(command)g(will)75 599 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g
-(last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g
-(editing.)137 665 y(Readline)j(remem)o(b)q(ers)e(the)h(last)f(incremen)
-o(tal)i(searc)o(h)e(string.)27 b(If)17 b(t)o(w)o(o)f
-Fg(C-r)p Fm(s)h(are)g(t)o(yp)q(ed)h(without)75 719 y(an)o(y)g(in)o
-(terv)o(ening)h(c)o(haracters)f(de\014ning)h(a)f(new)h(searc)o(h)f
-(string,)g(an)o(y)g(remem)o(b)q(ered)h(searc)o(h)f(string)g(is)75
-774 y(used.)137 840 y(Non-incremen)o(tal)25 b(searc)o(hes)e(read)h(the)
-f(en)o(tire)h(searc)o(h)f(string)g(b)q(efore)h(starting)f(to)f(searc)o
-(h)i(for)75 895 y(matc)o(hing)d(history)h(lines.)39 b(The)22
-b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f
-(user)h(or)e(b)q(e)i(part)f(of)g(the)75 950 y(con)o(ten)o(ts)15
-b(of)f(the)i(curren)o(t)f(line.)75 1074 y Fk(1.3)33 b(Readline)23
-b(Init)h(File)137 1169 y Fm(Although)f(the)g(Readline)h(library)f
-(comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g
-(installed)75 1224 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e
-(use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39
-b(An)o(y)20 b(user)h(can)g(customize)75 1278 y(programs)15
-b(that)h(use)g(Readline)i(b)o(y)e(putting)g(commands)g(in)i(an)e
-Fc(inputrc)k Fm(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75
-1333 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g
-(is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g
-(v)m(ariable)75 1388 y Fl(INPUTRC)p Fm(.)i(If)c(that)g(v)m(ariable)h
-(is)g(unset,)f(the)g(default)h(is)g(`)p Fl(~/.inputrc)p
-Fm('.)137 1454 y(When)f(a)g(program)f(whic)o(h)h(uses)g(the)g(Readline)
-h(library)g(starts)d(up,)i(the)g(init)h(\014le)g(is)f(read,)g(and)g
-(the)75 1509 y(k)o(ey)g(bindings)i(are)e(set.)137 1574
-y(In)f(addition,)h(the)e Fl(C-x)i(C-r)e Fm(command)g(re-reads)h(this)g
-(init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75
-1629 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75
-1737 y Fb(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
-1832 y Fm(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w)
-o(ed)i(in)f(the)g(Readline)h(init)g(\014le.)26 b(Blank)18
-b(lines)g(are)75 1886 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d
-(a)h(`)p Fl(#)p Fm(')e(are)h(commen)o(ts.)35 b(Lines)22
-b(b)q(eginning)h(with)e(a)f(`)p Fl($)p Fm(')f(indicate)75
-1941 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f
-([Conditional)h(Init)h(Constructs],)e(page)h(9\).)k(Other)c(lines)75
-1996 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75
-2073 y(V)l(ariable)h(Settings)315 2128 y(Y)l(ou)k(can)h(mo)q(dify)g
-(the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)j(b)o(y)e(altering)h
-(the)f(v)m(alues)h(of)315 2182 y(v)m(ariables)d(in)g(Readline)g(using)f
-(the)g Fl(set)g Fm(command)f(within)i(the)f(init)h(\014le.)26
-b(The)17 b(syn)o(tax)315 2237 y(is)f(simple:)435 2300
-y Fl(set)23 b Fc(v)m(ariable)28 b(v)m(alue)315 2366 y
-Fm(Here,)14 b(for)f(example,)h(is)g(ho)o(w)f(to)g(c)o(hange)h(from)f
-(the)h(default)g(Emacs-lik)o(e)h(k)o(ey)e(binding)j(to)315
-2421 y(use)g Fl(vi)e Fm(line)j(editing)g(commands:)435
-2484 y Fl(set)23 b(editing-mode)g(vi)315 2549 y Fm(V)l(ariable)c(names)
-e(and)h(v)m(alues,)h(where)e(appropriate,)h(are)f(recognized)i(without)
-e(regard)315 2604 y(to)e(case.)315 2670 y(A)g(great)g(deal)g(of)g
-(run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)h(follo)o
-(wing)f(v)m(ariables.)p eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(5)315 149 y Fl(bell-style)555 204 y Fm(Con)o(trols)21
-b(what)h(happ)q(ens)h(when)f(Readline)h(w)o(an)o(ts)e(to)g(ring)i(the)f
-(termi-)555 259 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p
-Fl(none)p Fm(',)g(Readline)i(nev)o(er)f(rings)g(the)f(b)q(ell.)32
-b(If)19 b(set)g(to)555 314 y(`)p Fl(visible)p Fm(',)c(Readline)i(uses)g
-(a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26
-b(If)16 b(set)h(to)555 369 y(`)p Fl(audible)p Fm(')g(\(the)h
-(default\),)i(Readline)g(attempts)e(to)g(ring)h(the)g(terminal's)555
-423 y(b)q(ell.)315 504 y Fl(comment-begin)555 559 y Fm(The)c(string)f
-(to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g
-Fl(insert-)555 614 y(comment)f Fm(command)h(is)h(executed.)21
-b(The)15 b(default)h(v)m(alue)g(is)g Fl("#")p Fm(.)315
-694 y Fl(completion-ignore-case)555 749 y Fm(If)e(set)f(to)g(`)p
-Fl(on)p Fm(',)g(Readline)i(p)q(erforms)e(\014lename)i(matc)o(hing)f
-(and)g(completion)555 804 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k
-(The)15 b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)315
-884 y Fl(completion-query-items)555 939 y Fm(The)d(n)o(um)o(b)q(er)h
-(of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f
-(user)555 994 y(is)21 b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i
-(see)g(the)g(list)h(of)e(p)q(ossibilitie)q(s.)40 b(If)21
-b(the)555 1049 y(n)o(um)o(b)q(er)14 b(of)f(p)q(ossible)i(completions)f
-(is)g(greater)f(than)g(this)h(v)m(alue,)h(Readline)555
-1104 y(will)g(ask)e(the)g(user)h(whether)f(or)g(not)g(he)g(wishes)h(to)
-f(view)h(them;)f(otherwise,)555 1158 y(they)f(are)g(simply)i(listed.)20
-b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger)
-h(v)m(alue)555 1213 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d
-(default)f(limit)i(is)f Fl(100)p Fm(.)315 1294 y Fl(convert-meta)555
-1348 y Fm(If)11 b(set)g(to)g(`)p Fl(on)p Fm(',)f(Readline)i(will)h(con)
-o(v)o(ert)d(c)o(haracters)h(with)g(the)g(eigh)o(th)h(bit)f(set)555
-1403 y(to)f(an)h Fh(asci)q(i)e Fm(k)o(ey)i(sequence)g(b)o(y)g
-(stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555
-1456 y Ff(h)p 567 1430 70 2 v 567 1458 a Fe(ESC)p 567
-1466 V 634 1456 a Ff(i)666 1458 y Fm(c)o(haracter,)k(con)o(v)o(erting)h
-(them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555
-1513 y(The)e(default)h(v)m(alue)h(is)e(`)p Fl(on)p Fm('.)315
-1593 y Fl(disable-completion)555 1648 y Fm(If)k(set)f(to)f(`)p
-Fl(On)p Fm(',)h(Readline)i(will)g(inhibit)g(w)o(ord)e(completion.)30
-b(Completion)555 1703 y(c)o(haracters)12 b(will)j(b)q(e)f(inserted)g
-(in)o(to)f(the)g(line)h(as)f(if)h(they)f(had)g(b)q(een)h(mapp)q(ed)555
-1758 y(to)h Fl(self-insert)p Fm(.)j(The)d(default)h(is)g(`)p
-Fl(off)p Fm('.)315 1838 y Fl(editing-mode)555 1893 y
-Fm(The)f Fl(editing-mode)d Fm(v)m(ariable)k(con)o(trols)e(whic)o(h)h
-(default)g(set)f(of)g(k)o(ey)g(bind-)555 1948 y(ings)f(is)g(used.)20
-b(By)12 b(default,)i(Readline)f(starts)f(up)h(in)g(Emacs)f(editing)i
-(mo)q(de,)555 2003 y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g
-(similar)i(to)d(Emacs.)20 b(This)15 b(v)m(ariable)h(can)555
-2058 y(b)q(e)g(set)f(to)f(either)i(`)p Fl(emacs)p Fm(')e(or)h(`)p
-Fl(vi)p Fm('.)315 2138 y Fl(enable-keypad)555 2193 y
-Fm(When)d(set)f(to)h(`)p Fl(on)p Fm(',)e(Readline)j(will)h(try)d(to)g
-(enable)i(the)f(application)h(k)o(eypad)555 2248 y(when)h(it)f(is)h
-(called.)21 b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g
-(arro)o(w)e(k)o(eys.)555 2303 y(The)j(default)h(is)g(`)p
-Fl(off)p Fm('.)315 2383 y Fl(expand-tilde)555 2438 y
-Fm(If)e(set)g(to)f(`)p Fl(on)p Fm(',)f(tilde)k(expansion)e(is)h(p)q
-(erformed)f(when)g(Readline)h(attempts)555 2493 y(w)o(ord)g
-(completion.)21 b(The)15 b(default)h(is)f(`)p Fl(off)p
-Fm('.)555 2560 y(If)g(set)g(to)f(`)p Fl(on)p Fm(',)g(the)g(history)h
-(co)q(de)h(attempts)e(to)g(place)i(p)q(oin)o(t)f(at)f(the)h(same)555
-2615 y(lo)q(cation)20 b(on)f(eac)o(h)g(history)h(line)g(retriv)o(ed)g
-(with)f Fl(previous-history)e Fm(or)555 2670 y Fl(next-history)p
-Fm(.)p eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fm(6)1322 b(GNU)15 b(Readline)h(Library)315
-149 y Fl(horizontal-scroll-mode)555 204 y Fm(This)j(v)m(ariable)g(can)f
-(b)q(e)g(set)g(to)f(either)i(`)p Fl(on)p Fm(')e(or)g(`)p
-Fl(off)p Fm('.)27 b(Setting)19 b(it)f(to)f(`)p Fl(on)p
-Fm(')555 259 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q(eing)
-f(edited)g(will)h(scroll)f(horizon)o(tally)555 314 y(on)i(a)f(single)i
-(screen)g(line)g(when)g(they)f(are)f(longer)h(than)g(the)g(width)g(of)g
-(the)555 369 y(screen,)e(instead)f(of)g(wrapping)g(on)o(to)f(a)h(new)g
-(screen)h(line.)21 b(By)13 b(default,)h(this)555 423
-y(v)m(ariable)j(is)e(set)g(to)g(`)p Fl(off)p Fm('.)315
-506 y Fl(input-meta)555 560 y Fm(If)h(set)f(to)g(`)p
-Fl(on)p Fm(',)f(Readline)j(will)h(enable)e(eigh)o(t-bit)h(input)f(\(it)
-g(will)h(not)e(clear)555 615 y(the)20 b(eigh)o(th)g(bit)g(in)h(the)f(c)
-o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)555
-670 y(terminal)i(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20
-b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)33 b(The)555
-725 y(name)15 b Fl(meta-flag)f Fm(is)i(a)f(synon)o(ym)g(for)f(this)i(v)
-m(ariable.)315 807 y Fl(isearch-terminators)555 862 y
-Fm(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f
-(an)g(incremen)o(tal)555 917 y(searc)o(h)12 b(without)h(subsequen)o
-(tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555
-971 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40
-b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 1026 y(b)q(een)17
-b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247
-1024 y Ff(h)p 1259 998 70 2 v 1259 1026 a Fe(ESC)p 1259
-1034 V 1326 1024 a Ff(i)1357 1026 y Fm(and)g Fg(C-J)f
-Fm(will)i(terminate)f(an)555 1081 y(incremen)o(tal)g(searc)o(h.)315
-1163 y Fl(keymap)96 b Fm(Sets)19 b(Readline's)i(idea)f(of)f(the)g
-(curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555
-1218 y(mands.)41 b(Acceptable)23 b Fl(keymap)f Fm(names)g(are)f
-Fl(emacs)p Fm(,)i Fl(emacs-standard)p Fm(,)555 1273 y
-Fl(emacs-meta)p Fm(,)49 b Fl(emacs-ctlx)p Fm(,)g Fl(vi)p
-Fm(,)h Fl(vi-move)p Fm(,)f Fl(vi-command)p Fm(,)g(and)555
-1328 y Fl(vi-insert)p Fm(.)31 b Fl(vi)20 b Fm(is)g(equiv)m(alen)o(t)h
-(to)e Fl(vi-command)p Fm(;)g Fl(emacs)g Fm(is)h(equiv)m(alen)o(t)555
-1382 y(to)15 b Fl(emacs-standard)p Fm(.)20 b(The)d(default)f(v)m(alue)h
-(is)g Fl(emacs)p Fm(.)k(The)16 b(v)m(alue)h(of)f(the)555
-1437 y Fl(editing-mode)e Fm(v)m(ariable)i(also)f(a\013ects)g(the)g
-(default)h(k)o(eymap.)315 1519 y Fl(mark-directories)555
-1574 y Fm(If)j(set)g(to)g(`)p Fl(on)p Fm(',)f(completed)i(directory)g
-(names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1629
-y(The)15 b(default)h(is)g(`)p Fl(on)p Fm('.)315 1711
-y Fl(mark-modified-lines)555 1766 y Fm(This)j(v)m(ariable,)g(when)g
-(set)e(to)h(`)p Fl(on)p Fm(',)f(causes)h(Readline)h(to)e(displa)o(y)i
-(an)f(as-)555 1821 y(terisk)f(\(`)p Fl(*)p Fm('\))e(at)i(the)f(start)g
-(of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q
-(di\014ed.)555 1875 y(This)e(v)m(ariable)g(is)g(`)p Fl(off)p
-Fm(')e(b)o(y)h(default.)315 1958 y Fl(mark-symlinked-directories)555
-2012 y Fm(If)23 b(set)f(to)f(`)p Fl(on)p Fm(',)i(completed)g(names)g
-(whic)o(h)g(are)f(sym)o(b)q(olic)i(links)f(to)f(di-)555
-2067 y(rectories)h(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(\(sub)s(ject)
-e(to)f(the)i(v)m(alue)g(of)f Fl(mark-)555 2122 y(directories)p
-Fm(\).)18 b(The)d(default)h(is)g(`)p Fl(off)p Fm('.)315
-2204 y Fl(match-hidden-files)555 2259 y Fm(This)c(v)m(ariable,)h(when)e
-(set)g(to)g(`)p Fl(on)p Fm(',)f(causes)h(Readline)i(to)d(matc)o(h)h
-(\014les)h(whose)555 2314 y(names)22 b(b)q(egin)h(with)g(a)e(`)p
-Fl(.)p Fm(')h(\(hidden)h(\014les\))g(when)f(p)q(erforming)h(\014lename)
-555 2369 y(completion,)g(unless)f(the)f(leading)h(`)p
-Fl(.)p Fm(')e(is)h(supplied)i(b)o(y)e(the)f(user)h(in)h(the)555
-2423 y(\014lename)16 b(to)f(b)q(e)h(completed.)21 b(This)15
-b(v)m(ariable)i(is)f(`)p Fl(on)p Fm(')e(b)o(y)h(default.)315
-2506 y Fl(output-meta)555 2560 y Fm(If)j(set)f(to)g(`)p
-Fl(on)p Fm(',)g(Readline)i(will)h(displa)o(y)f(c)o(haracters)d(with)j
-(the)e(eigh)o(th)h(bit)555 2615 y(set)g(directly)i(rather)d(than)h(as)g
-(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555
-2670 y(default)16 b(is)f(`)p Fl(off)p Fm('.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(7)315 149 y Fl(page-completions)555 204 y Fm(If)17
-b(set)g(to)f(`)p Fl(on)p Fm(',)g(Readline)i(uses)g(an)e(in)o(ternal)i
-Fl(more)p Fm(-lik)o(e)g(pager)f(to)f(displa)o(y)555 259
-y(a)g(screenful)h(of)f(p)q(ossible)i(completions)f(at)f(a)g(time.)23
-b(This)17 b(v)m(ariable)g(is)g(`)p Fl(on)p Fm(')555 314
-y(b)o(y)e(default.)315 395 y Fl(print-completions-horizont)o(ally)555
-450 y Fm(If)d(set)g(to)f(`)p Fl(on)p Fm(',)h(Readline)h(will)g(displa)o
-(y)h(completions)f(with)f(matc)o(hes)f(sorted)555 505
-y(horizon)o(tally)23 b(in)f(alphab)q(etical)i(order,)f(rather)e(than)g
-(do)o(wn)h(the)g(screen.)555 560 y(The)15 b(default)h(is)g(`)p
-Fl(off)p Fm('.)315 641 y Fl(show-all-if-ambiguous)555
-696 y Fm(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h
-(completion)h(functions.)21 b(If)15 b(set)555 751 y(to)e(`)p
-Fl(on)p Fm(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h
-(p)q(ossible)i(completion)f(cause)555 806 y(the)20 b(matc)o(hes)f(to)f
-(b)q(e)j(listed)f(immediately)h(instead)f(of)f(ringing)i(the)e(b)q
-(ell.)555 861 y(The)c(default)h(v)m(alue)h(is)e(`)p Fl(off)p
-Fm('.)315 942 y Fl(visible-stats)555 997 y Fm(If)h(set)g(to)f(`)p
-Fl(on)p Fm(',)g(a)h(c)o(haracter)f(denoting)h(a)g(\014le's)h(t)o(yp)q
-(e)f(is)g(app)q(ended)i(to)d(the)555 1052 y(\014lename)h(when)g
-(listing)h(p)q(ossible)g(completions.)j(The)c(default)g(is)f(`)p
-Fl(off)p Fm('.)75 1133 y(Key)h(Bindings)315 1188 y(The)21
-b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h(in)g(the)f
-(init)h(\014le)g(is)g(simple.)39 b(First)20 b(y)o(ou)315
-1243 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f(command)h(that)f
-(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 b(The)14 b(follo)o(wing)315
-1298 y(sections)k(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g
-(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315
-1353 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q
-(es.)315 1421 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
-(command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315
-1476 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e
-(bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315
-1530 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g
-(k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315
-1585 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most)
-e(comfortable.)315 1653 y(In)19 b(addition)g(to)e(command)h(names,)g
-(readline)i(allo)o(ws)e(k)o(eys)g(to)f(b)q(e)i(b)q(ound)g(to)e(a)h
-(string)315 1708 y(that)c(is)i(inserted)g(when)g(the)f(k)o(ey)g(is)h
-(pressed)g(\(a)e Fc(macro)r Fm(\).)315 1790 y Fc(k)o(eyname)s
-Fm(:)19 b Fc(function-name)g Fm(or)c Fc(macro)555 1845
-y(k)o(eyname)i Fm(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out)
-d(in)h(English.)21 b(F)l(or)13 b(example:)675 1910 y
-Fl(Control-u:)22 b(universal-argument)675 1962 y(Meta-Rubout:)g
-(backward-kill-word)675 2014 y(Control-o:)g(">)i(output")555
-2082 y Fm(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i Fg(C-u)e
-Fm(is)h(b)q(ound)g(to)f(the)g(function)h Fl(universal-)555
-2137 y(argument)p Fm(,)e Fg(M-DEL)h Fm(is)g(b)q(ound)h(to)e(the)h
-(function)h Fl(backward-kill-word)p Fm(,)555 2191 y(and)g
-Fg(C-o)f Fm(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g
-(the)f(righ)o(t)h(hand)555 2246 y(side)c(\(that)e(is,)i(to)e(insert)i
-(the)f(text)g(`)p Fl(>)f(output)p Fm(')g(in)o(to)i(the)f(line\).)555
-2314 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e
-(names)g(are)g(recognized)i(while)g(pro-)555 2369 y(cessing)13
-b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fc(DEL)p
-Fm(,)11 b Fc(ESC)p Fm(,)h Fc(ESCAPE)p Fm(,)f Fc(LFD)p
-Fm(,)g Fc(NEW-)555 2424 y(LINE)p Fm(,)16 b Fc(RET)p Fm(,)e
-Fc(RETURN)p Fm(,)f Fc(R)o(UBOUT)p Fm(,)i Fc(SP)l(A)o(CE)p
-Fm(,)g Fc(SPC)p Fm(,)f(and)i Fc(T)l(AB)p Fm(.)315 2506
-y Fl(")p Fc(k)o(eyseq)q Fl(")p Fm(:)k Fc(function-name)e
-Fm(or)d Fc(macro)555 2560 y(k)o(eyseq)i Fm(di\013ers)e(from)g
-Fc(k)o(eyname)j Fm(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g
-(an)f(en-)555 2615 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q
-(eci\014ed,)i(b)o(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555
-2670 y(double)e(quotes.)j(Some)c Fh(gnu)g Fm(Emacs)f(st)o(yle)h(k)o(ey)
-g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fm(8)1322 b(GNU)15 b(Readline)h(Library)555
-149 y(in)i(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o
-(haracter)d(names)h(are)f(not)555 204 y(recognized.)675
-270 y Fl("\\C-u":)23 b(universal-argument)675 322 y("\\C-x\\C-r":)f
-(re-read-init-file)675 373 y("\\e[11~":)h("Function)f(Key)i(1")555
-442 y Fm(In)33 b(the)f(ab)q(o)o(v)o(e)g(example,)37 b
-Fg(C-u)32 b Fm(is)h(again)f(b)q(ound)h(to)f(the)g(function)555
-497 y Fl(universal-argument)19 b Fm(\(just)j(as)f(it)h(w)o(as)f(in)i
-(the)f(\014rst)f(example\),)j(`)p Fg(C-x)555 551 y(C-r)p
-Fm(')c(is)h(b)q(ound)g(to)f(the)h(function)g Fl(re-read-init-file)p
-Fm(,)f(and)g(`)1731 549 y Ff(h)p 1743 523 70 2 v 1743
-551 a Fe(ESC)p 1743 559 V 1810 549 a Ff(i)15 b(h)p 1852
-523 10 2 v 1852 551 a Fe([)p 1852 560 V 1860 549 a Ff(i)555
-604 y(h)p 567 578 18 2 v 567 606 a Fe(1)p 567 614 V 583
-604 a Ff(i)g(h)p 625 578 V 625 606 a Fe(1)p 625 614 V
-640 604 a Ff(i)g(h)p 683 578 24 2 v 683 606 a Fl(~)p
-683 614 V 704 604 a Ff(i)719 606 y Fm(')g(is)h(b)q(ound)g(to)e(insert)i
-(the)f(text)g(`)p Fl(Function)f(Key)g(1)p Fm('.)315 688
-y(The)h(follo)o(wing)h Fh(gnu)e Fm(Emacs)h(st)o(yle)g(escap)q(e)h
-(sequences)g(are)e(a)o(v)m(ailable)j(when)e(sp)q(ecifying)315
-743 y(k)o(ey)g(sequences:)315 825 y Fg(\\C-)168 b Fm(con)o(trol)15
-b(pre\014x)315 907 y Fg(\\M-)168 b Fm(meta)15 b(pre\014x)315
-989 y Fg(\\e)192 b Fm(an)15 b(escap)q(e)h(c)o(haracter)315
-1071 y Fg(\\\\)192 b Fm(bac)o(kslash)315 1152 y Fg(\\)p
-Fl(")555 1150 y Ff(h)p 567 1124 V 567 1152 a Fl(")p 567
-1160 V 589 1150 a Ff(i)604 1152 y Fm(,)15 b(a)f(double)j(quotation)e
-(mark)315 1234 y Fg(\\')555 1232 y Ff(h)p 567 1206 10
-2 v 567 1234 a Fe(')p 567 1242 V 575 1232 a Ff(i)590
-1234 y Fm(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315
-1316 y(In)f(addition)h(to)f(the)f Fh(gnu)h Fm(Emacs)g(st)o(yle)f(escap)
-q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315
-1371 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 1453 y
-Fl(\\a)192 b Fm(alert)15 b(\(b)q(ell\))315 1535 y Fl(\\b)192
-b Fm(bac)o(kspace)315 1617 y Fl(\\d)g Fm(delete)315 1699
-y Fl(\\f)g Fm(form)14 b(feed)315 1781 y Fl(\\n)192 b
-Fm(newline)315 1862 y Fl(\\r)g Fm(carriage)15 b(return)315
-1944 y Fl(\\t)192 b Fm(horizon)o(tal)16 b(tab)315 2026
-y Fl(\\v)192 b Fm(v)o(ertical)16 b(tab)315 2108 y Fl(\\)p
-Fc(nnn)141 b Fm(the)17 b(eigh)o(t-bit)h(c)o(haracter)f(whose)g(v)m
-(alue)i(is)e(the)h(o)q(ctal)f(v)m(alue)i Fc(nnn)f Fm(\(one)f(to)555
-2163 y(three)e(digits\))315 2245 y Fl(\\x)p Fc(HH)124
-b Fm(the)20 b(eigh)o(t-bit)g(c)o(haracter)f(whose)h(v)m(alue)h(is)f
-(the)g(hexadecimal)h(v)m(alue)g Fc(HH)555 2300 y Fm(\(one)15
-b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2382 y(When)k(en)o(tering)g(the)g
-(text)f(of)g(a)h(macro,)f(single)i(or)e(double)i(quotes)f(m)o(ust)f(b)q
-(e)h(used)h(to)315 2436 y(indicate)12 b(a)f(macro)f(de\014nition.)20
-b(Unquoted)11 b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i
-(name.)18 b(In)315 2491 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o
-(kslash)g(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.)
-20 b(Bac)o(kslash)315 2546 y(will)i(quote)d(an)o(y)h(other)g(c)o
-(haracter)f(in)i(the)f(macro)f(text,)h(including)j(`)p
-Fl(")p Fm(')c(and)h(`)p Fl(')p Fm('.)34 b(F)l(or)315
-2601 y(example,)14 b(the)f(follo)o(wing)g(binding)i(will)g(mak)o(e)d(`)
-p Fg(C-x)i Fl(\\)p Fm(')f(insert)g(a)g(single)h(`)p Fl(\\)p
-Fm(')e(in)o(to)h(the)g(line:)435 2666 y Fl("\\C-x\\\\":)23
-b("\\\\")p eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(9)75 149 y Fb(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)137
-246 y Fm(Readline)f(implemen)o(ts)g(a)f(facilit)o(y)g(similar)h(in)g
-(spirit)f(to)f(the)h(conditional)h(compilation)g(features)75
-301 y(of)e(the)g(C)g(prepro)q(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g
-(bindings)i(and)f(v)m(ariable)g(settings)f(to)g(b)q(e)h(p)q(erformed)f
-(as)75 355 y(the)e(result)h(of)f(tests.)k(There)c(are)g(four)g(parser)g
-(directiv)o(es)h(used.)75 435 y Fl($if)168 b Fm(The)16
-b Fl($if)f Fm(construct)g(allo)o(ws)h(bindings)i(to)d(b)q(e)h(made)g
-(based)g(on)f(the)h(editing)h(mo)q(de,)f(the)315 490
-y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i(using)e
-(Readline.)33 b(The)19 b(text)g(of)f(the)i(test)315 545
-y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters)f
-(are)h(required)i(to)d(isolate)i(it.)315 624 y Fl(mode)144
-b Fm(The)11 b Fl(mode=)e Fm(form)h(of)g(the)h Fl($if)f
-Fm(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555
-679 y(is)k(in)h Fl(emacs)e Fm(or)g Fl(vi)g Fm(mo)q(de.)20
-b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555
-734 y(`)p Fl(set)f(keymap)p Fm(')f(command,)g(for)h(instance,)g(to)f
-(set)h(bindings)h(in)g(the)f Fl(emacs-)555 789 y(standard)d
-Fm(and)i Fl(emacs-ctlx)e Fm(k)o(eymaps)h(only)i(if)f(Readline)g(is)g
-(starting)f(out)555 844 y(in)k Fl(emacs)f Fm(mo)q(de.)315
-923 y Fl(term)144 b Fm(The)14 b Fl(term=)e Fm(form)h(ma)o(y)g(b)q(e)h
-(used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555
-978 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j
-(output)e(b)o(y)g(the)g(terminal's)555 1033 y(function)13
-b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g
-(the)g(`)p Fl(=)p Fm(')f(is)h(tested)g(against)555 1088
-y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q
-(ortion)h(of)e(the)h(terminal)555 1142 y(name)i(b)q(efore)g(the)g
-(\014rst)f(`)p Fl(-)p Fm('.)24 b(This)17 b(allo)o(ws)g
-Fl(sun)f Fm(to)g(matc)o(h)h(b)q(oth)f Fl(sun)h Fm(and)555
-1197 y Fl(sun-cmd)p Fm(,)d(for)g(instance.)315 1277 y
-Fl(application)555 1332 y Fm(The)d Fc(application)i Fm(construct)e(is)g
-(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
-1386 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)i
-(library)f(sets)f(the)g Fc(application)555 1441 y(name)p
-Fm(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)h(v)m(alue.)20
-b(This)12 b(could)h(b)q(e)f(used)h(to)555 1496 y(bind)18
-b(k)o(ey)e(sequences)i(to)d(functions)j(useful)f(for)f(a)g(sp)q
-(eci\014c)i(program.)23 b(F)l(or)555 1551 y(instance,)17
-b(the)g(follo)o(wing)g(command)g(adds)f(a)g(k)o(ey)h(sequence)g(that)f
-(quotes)555 1606 y(the)f(curren)o(t)g(or)g(previous)h(w)o(ord)e(in)j
-(Bash:)675 1670 y Fl($if)23 b(Bash)675 1722 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)675 1774 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")675 1826 y($endif)75 1905 y($endif)96
-b Fm(This)16 b(command,)e(as)h(seen)h(in)g(the)f(previous)h(example,)g
-(terminates)f(an)g Fl($if)f Fm(command.)75 1985 y Fl($else)120
-b Fm(Commands)15 b(in)h(this)f(branc)o(h)h(of)e(the)i
-Fl($if)e Fm(directiv)o(e)j(are)e(executed)h(if)g(the)f(test)g(fails.)75
-2065 y Fl($include)48 b Fm(This)22 b(directiv)o(e)h(tak)o(es)e(a)h
-(single)h(\014lename)g(as)e(an)h(argumen)o(t)f(and)h(reads)f(commands)
-315 2120 y(and)e(bindings)j(from)c(that)h(\014le.)33
-b(F)l(or)19 b(example,)i(the)e(follo)o(wing)h(directiv)o(e)h(reads)e
-(from)315 2174 y(`)p Fl(/etc/inputrc)p Fm(':)435 2239
-y Fl($include)k(/etc/inputrc)75 2351 y Fb(1.3.3)30 b(Sample)20
-b(Init)h(File)137 2447 y Fm(Here)16 b(is)g(an)f(example)h(of)f(an)g
-Fc(inputrc)k Fm(\014le.)i(This)16 b(illustrates)g(k)o(ey)f(binding,)i
-(v)m(ariable)f(assignmen)o(t,)75 2502 y(and)f(conditional)i(syn)o(tax.)
-p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fm(10)1299 b(GNU)15 b(Readline)h(Library)195
-201 y Fl(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
-(input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(GNU)
-f(Readline)g(library.)47 b(Existing)195 305 y(#)24 b(programs)e
-(include)h(FTP,)h(Bash,)f(and)g(GDB.)195 357 y(#)195
-409 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h(C-x)f
-(C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h(comments.)
-195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g(systemwide)g
-(bindings)f(and)i(variable)195 616 y(#)g(assignments)e(from)h
-(/etc/Inputrc)195 668 y($include)g(/etc/Inputrc)195 772
-y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)195
-928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195
-1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the)
-f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v
-195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
-1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195
-1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g
-(previous-history)195 1550 y(#"\\M-OB":)g(next-history)195
-1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
-1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195
-1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g
-(previous-history)195 1914 y("\\M-[B":)g(next-history)195
-1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
-195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195
-2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g
-(previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195
-2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
-195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195
-2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g
-(previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p
-eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(11)195 201 y Fl(C-q:)23 b(quoted-insert)195 305 y($endif)195
-409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h
-(the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g
-(are)h(convenient)e(for)h(shell)h(interaction)195 616
-y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720
-y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195
-772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)195
-824 y(#)g(insert)f(open)g(and)h(close)f(double)g(quotes)195
-876 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g(quote)195
-928 y("\\C-x\\"":)g("\\"\\"\\C-b")195 980 y(#)h(insert)f(a)g(backslash)
-g(\(testing)g(backslash)g(escapes)195 1032 y(#)h(in)f(sequences)g(and)g
-(macros\))195 1083 y("\\C-x\\\\":)g("\\\\")195 1135 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)195 1187 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")195 1239 y(#)h(Add)f(a)h(binding)f(to)g(refresh)g
-(the)h(line,)f(which)g(is)h(unbound)195 1291 y("\\C-xr":)f
-(redraw-current-line)195 1343 y(#)h(Edit)f(variable)g(on)g(current)g
-(line.)195 1395 y("\\M-\\C-v":)f("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)
-o(")195 1447 y($endif)195 1550 y(#)i(use)f(a)h(visible)f(bell)g(if)h
-(one)f(is)h(available)195 1602 y(set)f(bell-style)g(visible)195
-1706 y(#)h(don't)f(strip)g(characters)g(to)g(7)h(bits)f(when)h(reading)
-195 1758 y(set)f(input-meta)g(on)195 1862 y(#)h(allow)f(iso-latin1)f
-(characters)h(to)g(be)h(inserted)f(rather)195 1914 y(#)h(than)f
-(converted)g(to)g(prefix-meta)g(sequences)195 1966 y(set)g
-(convert-meta)g(off)195 2069 y(#)h(display)f(characters)f(with)h(the)h
-(eighth)f(bit)g(set)h(directly)195 2121 y(#)g(rather)f(than)g(as)h
-(meta-prefixed)e(characters)195 2173 y(set)h(output-meta)g(on)195
-2277 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g
-(completions)f(for)195 2329 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g
-(he)h(wants)f(to)h(see)f(all)h(of)f(them)195 2381 y(set)g
-(completion-query-items)e(150)195 2484 y(#)j(For)f(FTP)195
-2536 y($if)g(Ftp)195 2588 y("\\C-xg":)g("get)g(\\M-?")195
-2640 y("\\C-xt":)g("put)g(\\M-?")p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fm(12)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Fl("\\M-.":)23 b(yank-last-arg)195 201 y($endif)75
-329 y Fk(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
-425 y Fm(This)17 b(section)f(describ)q(es)h(Readline)g(commands)f(that)
-e(ma)o(y)h(b)q(e)i(b)q(ound)f(to)f(k)o(ey)h(sequences.)22
-b(Com-)75 480 y(mand)15 b(names)g(without)h(an)f(accompan)o(ying)g(k)o
-(ey)g(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)f(default.)137
-547 y(In)f(the)f(follo)o(wing)h(descriptions,)h Fc(p)q(oin)o(t)f
-Fm(refers)f(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)j(and)e
-Fc(mark)i Fm(refers)75 601 y(to)k(a)g(cursor)g(p)q(osition)h(sa)o(v)o
-(ed)f(b)o(y)h(the)f Fl(set-mark)g Fm(command.)32 b(The)20
-b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)g(and)75
-656 y(mark)15 b(is)g(referred)h(to)e(as)h(the)g Fc(region)p
-Fm(.)75 767 y Fb(1.4.1)30 b(Commands)21 b(F)-5 b(or)19
-b(Mo)n(ving)75 888 y Fl(beginning-of-line)13 b(\(C-a\))315
-942 y Fm(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g(line.)
-75 1034 y Fl(end-of-line)f(\(C-e\))315 1088 y Fm(Mo)o(v)o(e)g(to)h(the)
-g(end)h(of)f(the)g(line.)75 1179 y Fl(forward-char)f(\(C-f\))315
-1234 y Fm(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75
-1325 y Fl(backward-char)e(\(C-b\))315 1380 y Fm(Mo)o(v)o(e)h(bac)o(k)h
-(a)g(c)o(haracter.)75 1471 y Fl(forward-word)f(\(M-f\))315
-1526 y Fm(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h
-(w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315
-1581 y(digits.)75 1672 y Fl(backward-word)e(\(M-b\))315
-1727 y Fm(Mo)o(v)o(e)j(bac)o(k)g(to)h(the)f(start)g(of)g(the)h(curren)o
-(t)g(or)f(previous)i(w)o(ord.)24 b(W)l(ords)16 b(are)h(comp)q(osed)315
-1782 y(of)e(letters)g(and)g(digits.)75 1873 y Fl(clear-screen)f
-(\(C-l\))315 1928 y Fm(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g
-(curren)o(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g
-(top)315 1982 y(of)i(the)g(screen.)75 2074 y Fl(redraw-current-line)e
-(\(\))315 2128 y Fm(Refresh)i(the)g(curren)o(t)g(line.)22
-b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 2239
-y Fb(1.4.2)30 b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f
-(History)75 2360 y Fl(accept-line)14 b(\(Newline)g(or)h(Return\))315
-2414 y Fm(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor)
-f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315
-2469 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g
-(future)g(recall)h(with)f Fl(add_history\(\))p Fm(.)k(If)d(this)315
-2524 y(line)g(is)f(a)e(mo)q(di\014ed)j(history)e(line,)i(the)e(history)
-g(line)i(is)f(restored)e(to)h(its)g(original)i(state.)75
-2615 y Fl(previous-history)c(\(C-p\))315 2670 y Fm(Mo)o(v)o(e)h(`bac)o
-(k')h(through)f(the)i(history)f(list,)g(fetc)o(hing)h(the)f(previous)h
-(command.)p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(13)75 149 y Fl(next-history)14 b(\(C-n\))315 204 y
-Fm(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)f(list,)g(fetc)o
-(hing)h(the)f(next)h(command.)75 307 y Fl(beginning-of-history)c
-(\(M-<\))315 362 y Fm(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f
-(the)f(history)l(.)75 465 y Fl(end-of-history)e(\(M->\))315
-520 y Fm(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h(history)l(,)f
-(i.e.,)g(the)g(line)i(curren)o(tly)f(b)q(eing)g(en)o(tered.)75
-624 y Fl(reverse-search-history)c(\(C-r\))315 678 y Fm(Searc)o(h)k(bac)
-o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving)
-h(`up')f(through)g(the)h(his-)315 733 y(tory)e(as)h(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 836
-y Fl(forward-search-history)c(\(C-s\))315 891 y Fm(Searc)o(h)j(forw)o
-(ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)
-o(wn')f(through)g(the)h(the)315 946 y(history)g(as)g(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 1049
-y Fl(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315
-1104 y Fm(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o
-(t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315
-1159 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o(tal)j(searc)o
-(h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 1214
-y(user.)75 1317 y Fl(non-incremental-forward-se)o(arch-hi)o(story)12
-b(\(M-n\))315 1372 y Fm(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f
-(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the)
-315 1426 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i
-(searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315
-1481 y(user.)75 1584 y Fl(history-search-forward)f(\(\))315
-1639 y Fm(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f
-(the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315
-1694 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o
-(t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27
-b(By)315 1749 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-1852 y Fl(history-search-backward)c(\(\))315 1907 y Fm(Searc)o(h)18
-b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f
-(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1962 y(start)e(of)h(the)h
-(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18
-b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315
-2016 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-2120 y Fl(yank-nth-arg)e(\(M-C-y\))315 2174 y Fm(Insert)f(the)g
-(\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h
-(the)f(second)h(w)o(ord)e(on)315 2229 y(the)j(previous)h(line\))g(at)e
-(p)q(oin)o(t.)21 b(With)15 b(an)g(argumen)o(t)f Fc(n)p
-Fm(,)h(insert)g(the)g Fc(n)p Fm(th)g(w)o(ord)g(from)f(the)315
-2284 y(previous)g(command)g(\(the)f(w)o(ords)f(in)j(the)e(previous)i
-(command)e(b)q(egin)i(with)e(w)o(ord)g(0\).)19 b(A)315
-2339 y(negativ)o(e)13 b(argumen)o(t)f(inserts)h(the)g
-Fc(n)p Fm(th)g(w)o(ord)f(from)g(the)h(end)h(of)e(the)h(previous)g
-(command.)75 2442 y Fl(yank-last-arg)g(\(M-.)i(or)g(M-_\))315
-2497 y Fm(Insert)j(last)f(argumen)o(t)g(to)g(the)g(previous)i(command)e
-(\(the)g(last)h(w)o(ord)f(of)g(the)g(previous)315 2552
-y(history)e(en)o(try\).)20 b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v)
-o(e)g(exactly)h(lik)o(e)g Fl(yank-nth-arg)p Fm(.)j(Succes-)315
-2606 y(siv)o(e)f(calls)g(to)f Fl(yank-last-arg)e Fm(mo)o(v)o(e)i(bac)o
-(k)g(through)g(the)g(history)g(list,)i(inserting)f(the)315
-2661 y(last)d(argumen)o(t)g(of)f(eac)o(h)i(line)g(in)g(turn.)p
-eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fm(14)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fb(1.4.3)30 b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5
-b(ext)75 286 y Fl(delete-char)14 b(\(C-d\))315 341 y
-Fm(Delete)20 b(the)g(c)o(haracter)e(at)h(p)q(oin)o(t.)33
-b(If)20 b(p)q(oin)o(t)g(is)g(at)e(the)i(b)q(eginning)i(of)d(the)g
-(line,)j(there)315 396 y(are)c(no)h(c)o(haracters)e(in)j(the)e(line,)j
-(and)e(the)f(last)h(c)o(haracter)e(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q
-(ound)i(to)315 450 y Fl(delete-char)p Fm(,)13 b(then)j(return)f
-Fh(eof)p Fm(.)75 552 y Fl(backward-delete-char)d(\(Rubout\))315
-607 y Fm(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c
-(n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315
-661 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
-763 y Fl(forward-backward-delete-ch)o(ar)12 b(\(\))315
-818 y Fm(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h
-(unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315
-872 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h
-(the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315
-927 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1029
-y Fl(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1083 y Fm(Add)j(the)f(next)
-g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26
-b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 1138
-y(sequences)f(lik)o(e)h Fg(C-q)p Fm(,)d(for)h(example.)75
-1240 y Fl(tab-insert)f(\(M-)401 1238 y Ff(h)p 412 1212
-74 2 v 412 1240 a Fe(T)m(AB)p 412 1247 V 484 1238 a Ff(i)499
-1240 y Fl(\))315 1294 y Fm(Insert)h(a)g(tab)g(c)o(haracter.)75
-1396 y Fl(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315
-1451 y Fm(Insert)g(y)o(ourself.)75 1552 y Fl(transpose-chars)e(\(C-t\))
-315 1607 y Fm(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e
-(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315
-1662 y(mo)o(ving)i(the)f(cursor)h(forw)o(ard)e(as)i(w)o(ell.)28
-b(If)18 b(the)g(insertion)h(p)q(oin)o(t)f(is)g(at)f(the)h(end)h(of)e
-(the)315 1716 y(line,)c(then)e(this)h(transp)q(oses)e(the)h(last)g(t)o
-(w)o(o)f(c)o(haracters)g(of)h(the)g(line.)20 b(Negativ)o(e)11
-b(argumen)o(ts)315 1771 y(ha)o(v)o(e)k(no)g(e\013ect.)75
-1873 y Fl(transpose-words)e(\(M-t\))315 1927 y Fm(Drag)i(the)h(w)o(ord)
-g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o
-(t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1982
-y(w)o(ord)d(as)h(w)o(ell.)21 b(If)14 b(the)g(insertion)i(p)q(oin)o(t)e
-(is)h(at)f(the)g(end)h(of)e(the)i(line,)g(this)g(transp)q(oses)f(the)
-315 2037 y(last)h(t)o(w)o(o)f(w)o(ords)g(on)i(the)f(line.)75
-2138 y Fl(upcase-word)f(\(M-u\))315 2193 y Fm(Upp)q(ercase)j(the)f
-(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o(ord.)22 b(With)16
-b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 2248
-y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f(the)
-i(cursor.)75 2349 y Fl(downcase-word)d(\(M-l\))315 2404
-y Fm(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o
-(ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o(ercase)
-315 2459 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)75 2560 y Fl(capitalize-word)e(\(M-c\))315
-2615 y Fm(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o
-(ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315
-2670 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)p eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(15)75 149 y Fl(overwrite-mode)13 b(\(\))315 204 y Fm(T)l(oggle)j(o)o
-(v)o(erwrite)g(mo)q(de.)24 b(With)17 b(an)f(explicit)j(p)q(ositiv)o(e)f
-(n)o(umeric)f(argumen)o(t,)f(switc)o(hes)315 259 y(to)10
-b(o)o(v)o(erwrite)g(mo)q(de.)19 b(With)11 b(an)g(explicit)i(non-p)q
-(ositiv)o(e)f(n)o(umeric)g(argumen)o(t,)e(switc)o(hes)i(to)315
-314 y(insert)k(mo)q(de.)k(This)c(command)f(a\013ects)g(only)h
-Fl(emacs)e Fm(mo)q(de;)h Fl(vi)g Fm(mo)q(de)h(do)q(es)g(o)o(v)o
-(erwrite)315 369 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15
-b(call)h(to)f Fl(readline\(\))f Fm(starts)f(in)k(insert)e(mo)q(de.)315
-436 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f
-Fl(self-insert)f Fm(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315
-491 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36
-b(Characters)20 b(b)q(ound)i(to)e Fl(backward-)315 546
-y(delete-char)14 b Fm(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q
-(oin)o(t)h(with)f(a)g(space.)315 614 y(By)g(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 729 y Fb(1.4.4)30 b(Killing)20
-b(And)h(Y)-5 b(anking)75 853 y Fl(kill-line)14 b(\(C-k\))315
-908 y Fm(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
-(the)g(line.)75 1002 y Fl(backward-kill-line)e(\(C-x)h(Rubout\))315
-1057 y Fm(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
-(line.)75 1151 y Fl(unix-line-discard)e(\(C-u\))315 1205
-y Fm(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
-(eginning)j(of)c(the)i(curren)o(t)f(line.)75 1299 y Fl(kill-whole-line)
-e(\(\))315 1354 y Fm(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren)
-o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29
-b(By)19 b(default,)315 1409 y(this)d(is)f(un)o(b)q(ound.)75
-1503 y Fl(kill-word)f(\(M-d\))315 1558 y Fm(Kill)j(from)d(p)q(oin)o(t)h
-(to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o
-(w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1613 y(of)h(the)g(next)g(w)o
-(ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
-Fl(forward-word)p Fm(.)75 1707 y Fl(backward-kill-word)e(\(M-)592
-1705 y Ff(h)p 603 1679 73 2 v 603 1707 a Fe(DEL)p 603
-1714 V 674 1705 a Ff(i)689 1707 y Fl(\))315 1761 y Fm(Kill)k(the)d(w)o
-(ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f
-(the)h(same)f(as)g Fl(backward-word)p Fm(.)75 1855 y
-Fl(unix-word-rubout)f(\(C-w\))315 1910 y Fm(Kill)18 b(the)e(w)o(ord)f
-(b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g
-(b)q(oundary)l(.)23 b(The)16 b(killed)315 1965 y(text)f(is)g(sa)o(v)o
-(ed)g(on)g(the)h(kill-ring.)75 2059 y Fl(delete-horizontal-space)c
-(\(\))315 2114 y Fm(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q
-(oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75
-2208 y Fl(kill-region)e(\(\))315 2263 y Fm(Kill)j(the)f(text)e(in)i
-(the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 2357 y Fl(copy-region-as-kill)d(\(\))315
-2412 y Fm(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h
-(bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o
-(a)o(y)l(.)315 2466 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 2560 y Fl(copy-backward-word)d(\(\))315 2615
-y Fm(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i
-(kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
-2670 y(same)c(as)g Fl(backward-word)p Fm(.)j(By)d(default,)g(this)h
-(command)f(is)h(un)o(b)q(ound.)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fm(16)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fl(copy-forward-word)d(\(\))315 204 y Fm(Cop)o(y)i(the)h(w)o(ord)
-e(follo)o(wing)j(p)q(oin)o(t)f(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o
-(ord)f(b)q(oundaries)i(are)e(the)315 259 y(same)g(as)g
-Fl(forward-word)p Fm(.)j(By)d(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 342 y Fl(yank)f(\(C-y\))315 397 y Fm(Y)l(ank)g(the)h(top)f
-(of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.)
-75 481 y Fl(yank-pop)g(\(M-y\))315 535 y Fm(Rotate)i(the)h(kill-ring,)j
-(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f
-(this)h(if)f(the)h(prior)315 590 y(command)d(is)h Fl(yank)e
-Fm(or)h Fl(yank-pop)p Fm(.)75 693 y Fb(1.4.5)30 b(Sp)r(ecifying)20
-b(Numeric)h(Argumen)n(ts)75 806 y Fl(digit-argument)13
-b(\()p Fg(M-0)p Fl(,)i Fg(M-1)p Fl(,)f(...)h Fg(M--)p
-Fl(\))315 861 y Fm(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e
-(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315
-915 y Fg(M--)h Fm(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75
-999 y Fl(universal-argument)e(\(\))315 1054 y Fm(This)g(is)h(another)e
-(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13
-b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
-1108 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o
-(us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315
-1163 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g
-(digits,)g(executing)g Fl(universal-argument)315 1218
-y Fm(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h
-(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315
-1273 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y)
-f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315
-1328 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h
-(the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315
-1382 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
-(executing)i(this)f(function)h(the)e(\014rst)h(time)315
-1437 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
-(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
-1492 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f
-(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1595 y Fb(1.4.6)30
-b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
-b(ou)75 1708 y Fl(complete)14 b(\()305 1706 y Ff(h)p
-317 1680 74 2 v 317 1708 a Fe(T)m(AB)p 317 1715 V 389
-1706 a Ff(i)404 1708 y Fl(\))315 1762 y Fm(A)o(ttempt)c(to)h(p)q
-(erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
-b(The)11 b(actual)h(completion)315 1817 y(p)q(erformed)j(is)h
-(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
-g(completion.)75 1901 y Fl(possible-completions)c(\(M-?\))315
-1955 y Fm(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
-q(efore)h(p)q(oin)o(t.)75 2039 y Fl(insert-completions)d(\(M-*\))315
-2093 y Fm(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
-q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315
-2148 y(b)o(y)f Fl(possible-completions)p Fm(.)75 2232
-y Fl(menu-complete)e(\(\))315 2286 y Fm(Similar)g(to)f
-Fl(complete)p Fm(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i
-(completed)f(with)h(a)e(single)j(matc)o(h)315 2341 y(from)k(the)h(list)
-h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19
-b(execution)h(of)f Fl(menu-complete)315 2396 y Fm(steps)h(through)g
-(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f
-(matc)o(h)f(in)i(turn.)315 2451 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g
-(of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f
-(the)i(setting)315 2506 y(of)f Fl(bell-style)p Fm(\))e(and)i(the)g
-(original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g
-Fc(n)i Fm(mo)o(v)o(es)e Fc(n)315 2560 y Fm(p)q(ositions)h(forw)o(ard)e
-(in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g
-(ma)o(y)g(b)q(e)h(used)g(to)315 2615 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
-(through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f
-(b)q(e)h(b)q(ound)g(to)315 2668 y Ff(h)p 327 2642 V 327
-2670 a Fe(T)m(AB)p 327 2678 V 399 2668 a Ff(i)414 2670
-y Fm(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)p
-eop
-%%Page: 17 19
-17 18 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(17)75 149 y Fl(delete-char-or-list)13 b(\(\))315 204
-y Fm(Deletes)h(the)f(c)o(haracter)g(under)h(the)g(cursor)f(if)h(not)f
-(at)g(the)g(b)q(eginning)j(or)d(end)h(of)f(the)g(line)315
-259 y(\(lik)o(e)i Fl(delete-char)p Fm(\).)j(If)d(at)f(the)h(end)g(of)f
-(the)g(line,)i(b)q(eha)o(v)o(es)f(iden)o(tically)i(to)d
-Fl(possible-)315 314 y(completions)p Fm(.)k(This)e(command)f(is)h(un)o
-(b)q(ound)g(b)o(y)f(default.)75 428 y Fb(1.4.7)30 b(Keyb)r(oard)20
-b(Macros)75 551 y Fl(start-kbd-macro)13 b(\(C-x)i(\(\))315
-606 y Fm(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o
-(to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 699
-y Fl(end-kbd-macro)e(\(C-x)i(\)\))315 754 y Fm(Stop)f(sa)o(ving)f(the)h
-(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q
-(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 809 y(de\014nition.)75
-902 y Fl(call-last-kbd-macro)g(\(C-x)h(e\))315 957 y
-Fm(Re-execute)k(the)g(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i(b)o
-(y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 1012
-y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o(eyb)q
-(oard.)75 1126 y Fb(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
-1249 y Fl(re-read-init-file)13 b(\(C-x)h(C-r\))315 1304
-y Fm(Read)d(in)g(the)g(con)o(ten)o(ts)g(of)f(the)h Fc(inputrc)k
-Fm(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m
-(ariable)315 1358 y(assignmen)o(ts)k(found)h(there.)75
-1452 y Fl(abort)e(\(C-g\))315 1507 y Fm(Ab)q(ort)f(the)g(curren)o(t)h
-(editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s
-(ject)e(to)g(the)315 1561 y(setting)i(of)g Fl(bell-style)p
-Fm(\).)75 1655 y Fl(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
-Fc(x)p Fl(,)h(...\))315 1710 y Fm(If)f(the)g(meta\014ed)g(c)o(haracter)
-f Fc(x)k Fm(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g
-(b)q(ound)h(to)e(the)315 1764 y(corresp)q(onding)j(upp)q(ercase)g(c)o
-(haracter.)75 1858 y Fl(prefix-meta)e(\()377 1856 y Ff(h)p
-389 1830 70 2 v 389 1858 a Fe(ESC)p 389 1866 V 456 1856
-a Ff(i)471 1858 y Fl(\))315 1913 y Fm(Metafy)k(the)h(next)g(c)o
-(haracter)f(t)o(yp)q(ed.)30 b(This)20 b(is)f(for)f(k)o(eyb)q(oards)h
-(without)g(a)f(meta)g(k)o(ey)l(.)315 1968 y(T)o(yping)e(`)485
-1966 y Ff(h)p 496 1939 V 496 1968 a Fe(ESC)p 496 1975
-V 563 1966 a Ff(i)593 1968 y Fl(f)p Fm(')f(is)h(equiv)m(alen)o(t)h(to)d
-(t)o(yping)i Fg(M-f)p Fm(.)75 2061 y Fl(undo)f(\(C-_)f(or)h(C-x)g
-(C-u\))315 2116 y Fm(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
-(ered)g(for)e(eac)o(h)h(line.)75 2209 y Fl(revert-line)f(\(M-r\))315
-2264 y Fm(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26
-b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Fl(undo)f
-Fm(command)315 2319 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
-(b)q(eginning.)75 2412 y Fl(tilde-expand)f(\(M-~\))315
-2467 y Fm(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
-(ord.)75 2560 y Fl(set-mark)f(\(C-@\))315 2615 y Fm(Set)i(the)h(mark)f
-(to)f(the)i(p)q(oin)o(t.)24 b(If)17 b(a)f(n)o(umeric)h(argumen)o(t)f
-(is)g(supplied,)j(the)e(mark)e(is)i(set)315 2670 y(to)e(that)f(p)q
-(osition.)p eop
-%%Page: 18 20
-18 19 bop 75 -58 a Fm(18)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fl(exchange-point-and-mark)c(\(C-x)j(C-x\))315
-204 y Fm(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k(The)c
-(curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o(v)o(ed)
-315 259 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q(osition)h(is)g
-(sa)o(v)o(ed)f(as)g(the)g(mark.)75 347 y Fl(character-search)e(\(C-]\))
-315 402 y Fm(A)f(c)o(haracter)g(is)h(read)g(and)f(p)q(oin)o(t)h(is)g
-(mo)o(v)o(ed)f(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g(c)o
-(haracter.)315 456 y(A)j(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f
-(previous)i(o)q(ccurrences.)75 544 y Fl(character-search-backward)c
-(\(M-C-]\))315 599 y Fm(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q
-(oin)o(t)g(is)g(mo)o(v)o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of)
-e(that)315 654 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o
-(hes)g(for)f(subsequen)o(t)i(o)q(ccurrences.)75 741 y
-Fl(insert-comment)d(\(M-#\))315 796 y Fm(Without)18 b(a)f(n)o(umeric)i
-(argumen)o(t,)e(the)h(v)m(alue)h(of)f(the)f Fl(comment-begin)f
-Fm(v)m(ariable)k(is)e(in-)315 851 y(serted)e(at)f(the)h(b)q(eginning)i
-(of)d(the)h(curren)o(t)g(line.)23 b(If)16 b(a)g(n)o(umeric)h(argumen)o
-(t)e(is)h(supplied,)315 906 y(this)j(command)f(acts)g(as)f(a)h(toggle:)
-26 b(if)19 b(the)f(c)o(haracters)g(at)f(the)i(b)q(eginning)h(of)e(the)g
-(line)315 960 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)i(of)e
-Fl(comment-begin)p Fm(,)e(the)i(v)m(alue)i(is)f(inserted,)f(otherwise)h
-(the)315 1015 y(c)o(haracters)j(in)i Fl(comment-begin)d
-Fm(are)i(deleted)i(from)d(the)h(b)q(eginning)i(of)e(the)g(line.)36
-b(In)315 1070 y(either)16 b(case,)f(the)g(line)i(is)f(accepted)f(as)g
-(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)75 1158
-y Fl(dump-functions)c(\(\))315 1213 y Fm(Prin)o(t)g(all)h(of)f(the)g
-(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)g
-(output)f(stream.)315 1267 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i
-(supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o
-(y)f(that)315 1322 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
-Fc(inputrc)k Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
-(y)f(default.)75 1410 y Fl(dump-variables)e(\(\))315
-1465 y Fm(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f
-(their)g(v)m(alues)h(to)e(the)h(Readline)h(output)e(stream.)315
-1519 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e
-(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315
-1574 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fc(inputrc)k
-Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)
-75 1662 y Fl(dump-macros)f(\(\))315 1717 y Fm(Prin)o(t)j(all)h(of)e
-(the)h(Readline)h(k)o(ey)f(sequences)h(b)q(ound)g(to)e(macros)g(and)h
-(the)g(strings)g(they)315 1771 y(output.)26 b(If)18 b(a)f(n)o(umeric)h
-(argumen)o(t)f(is)h(supplied,)i(the)d(output)g(is)h(formatted)e(in)j
-(suc)o(h)e(a)315 1826 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g
-(part)g(of)f(an)h Fc(inputrc)k Fm(\014le.)i(This)15 b(command)g(is)h
-(un)o(b)q(ound)g(b)o(y)315 1881 y(default.)75 1969 y
-Fl(emacs-editing-mode)d(\(C-e\))315 2024 y Fm(When)j(in)g
-Fl(vi)e Fm(command)i(mo)q(de,)f(this)g(causes)h(a)f(switc)o(h)g(to)g
-Fl(emacs)f Fm(editing)j(mo)q(de.)75 2111 y Fl(vi-editing-mode)c
-(\(M-C-j\))315 2166 y Fm(When)j(in)g Fl(emacs)e Fm(editing)j(mo)q(de,)e
-(this)g(causes)h(a)f(switc)o(h)g(to)g Fl(vi)f Fm(editing)j(mo)q(de.)75
-2290 y Fk(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 2385
-y Fm(While)13 b(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o(e)f
-(a)h(full)h(set)f(of)f Fl(vi)g Fm(editing)j(functions,)f(it)f(do)q(es)g
-(con)o(tain)75 2440 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing)h
-(of)d(the)i(line.)27 b(The)17 b(Readline)h Fl(vi)f Fm(mo)q(de)g(b)q
-(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 2495 y(the)c
-Fh(posix)g Fm(1003.2)f(standard.)137 2560 y(In)h(order)g(to)f(switc)o
-(h)g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Fl(emacs)e
-Fm(and)i Fl(vi)f Fm(editing)i(mo)q(des,)f(use)f(the)h(command)75
-2615 y Fg(M-C-j)j Fm(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)j(when)e
-(in)h Fl(vi)f Fm(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)k(in)e
-Fl(emacs)75 2670 y Fm(mo)q(de\).)g(The)15 b(Readline)i(default)f(is)f
-Fl(emacs)g Fm(mo)q(de.)p eop
-%%Page: 19 21
-19 20 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(19)137 149 y(When)16 b(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e
-Fl(vi)g Fm(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g
-(`insertion')f(mo)q(de,)g(as)g(if)g(y)o(ou)75 204 y(had)e(t)o(yp)q(ed)h
-(an)f(`)p Fl(i)p Fm('.)18 b(Pressing)608 202 y Ff(h)p
-620 176 70 2 v 620 204 a Fe(ESC)p 620 212 V 687 202 a
-Ff(i)715 204 y Fm(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q
-(de,)i(where)f(y)o(ou)g(can)g(edit)h(the)75 259 y(text)i(of)h(the)g
-(line)h(with)g(the)f(standard)f Fl(vi)h Fm(mo)o(v)o(emen)o(t)f(k)o
-(eys,)g(mo)o(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75
-314 y(`)p Fl(k)p Fm(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p
-Fl(j)p Fm(',)e(and)h(so)g(forth.)p eop
-%%Page: 20 22
-20 21 bop 75 -58 a Fm(20)1299 b(GNU)15 b(Readline)h(Library)p
-eop
-%%Page: -1 23
--1 22 bop 1862 -58 a Fm(i)75 149 y Fi(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fk(1)67 b(Command)22 b(Line)i(Editing)d
-Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h
-(.)f(.)g(.)g(.)42 b Fk(1)224 389 y Fm(1.1)j(In)o(tro)q(duction)16
-b(to)f(Line)h(Editing)e Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)27 b Fm(1)224 444 y(1.2)45 b(Readline)16 b(In)o(teraction)8
-b Fd(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)23 b Fm(1)374 499 y(1.2.1)44 b(Readline)16
-b(Bare)f(Essen)o(tials)f Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fm(1)374 553 y(1.2.2)44 b(Readline)16 b(Mo)o(v)o(emen)o(t)e(Commands)
-7 b Fd(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)21 b Fm(2)374 608 y(1.2.3)44 b(Readline)16 b(Killing)i(Commands)
-11 b Fd(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)25 b Fm(2)374 663 y(1.2.4)44 b(Readline)16
-b(Argumen)o(ts)c Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
-b Fm(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
-(the)f(History)e Fd(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fm(3)224 773 y(1.3)45 b(Readline)16 b(Init)h(File)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)29 b Fm(4)374 827 y(1.3.1)44 b(Readline)16
-b(Init)g(File)h(Syn)o(tax)7 b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fm(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
-b Fd(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)19 b Fm(9)374 937 y(1.3.3)44 b(Sample)16
-b(Init)g(File)11 b Fd(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)26 b Fm(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)g(Commands)
-6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fm(12)374
-1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fm(12)374 1101 y(1.4.2)44
-b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
-b Fd(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fm(12)374 1156 y(1.4.3)44
-b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fd(.)8
-b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
-b Fm(14)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
-b Fd(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fm(15)374
-1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
-Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
-b Fm(16)374 1320 y(1.4.6)44 b(Letting)15 b(Readline)i(T)o(yp)q(e)e(F)l
-(or)g(Y)l(ou)10 b Fd(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)25 b Fm(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15
-b(Macros)6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
-b Fm(17)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
-b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-22 b Fm(17)224 1485 y(1.5)45 b(Readline)16 b(vi)g(Mo)q(de)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)28 b Fm(18)p eop
-%%Page: -2 24
--2 23 bop 75 -58 a Fm(ii)1321 b(GNU)15 b(Readline)h(Library)p
-eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/readline-4.3.orig/doc/rluserman.texinfo b/readline-4.3.orig/doc/rluserman.texinfo
deleted file mode 100644
index 89abe31..0000000
--- a/readline-4.3.orig/doc/rluserman.texinfo
+++ /dev/null
@@ -1,94 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rluserman.info
-@settitle GNU Readline Library
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* RLuserman: (rluserman). The GNU readline library User's Manual.
-@end direntry
-
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage
-@title GNU Readline Library User Interface
-@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU Readline Library
-
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-@menu
-* Command Line Editing:: GNU Readline User's Manual.
-@end menu
-@end ifinfo
-
-@include rluser.texinfo
-
-@contents
-@bye
diff --git a/readline-4.3.orig/doc/texi2dvi b/readline-4.3.orig/doc/texi2dvi
deleted file mode 100755
index c186848..0000000
--- a/readline-4.3.orig/doc/texi2dvi
+++ /dev/null
@@ -1,568 +0,0 @@
-#! /bin/sh
-# texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources.
-# $Id$
-#
-# Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, you can either send email to this
-# program's maintainer or write to: The Free Software Foundation,
-# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
-#
-# Original author: Noah Friedman <friedman@gnu.org>.
-#
-# Please send bug reports, etc. to bug-texinfo@gnu.org.
-# If possible, please send a copy of the output of the script called with
-# the `--debug' option when making a bug report.
-
-# This string is expanded by rcs automatically when this file is checked out.
-rcs_revision='$Revision$'
-rcs_version=`set - $rcs_revision; echo $2`
-program=`echo $0 | sed -e 's!.*/!!'`
-version="texi2dvi (GNU Texinfo 4.0) $rcs_version
-
-Copyright (C) 1999 Free Software Foundation, Inc.
-There is NO warranty. You may redistribute this software
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING."
-
-usage="Usage: $program [OPTION]... FILE...
-
-Run each Texinfo or LaTeX FILE through TeX in turn until all
-cross-references are resolved, building all indices. The directory
-containing each FILE is searched for included files. The suffix of FILE
-is used to determine its language (LaTeX or Texinfo).
-
-Makeinfo is used to perform Texinfo macro expansion before running TeX
-when needed.
-
-Options:
- -@ Use @input instead of \input; for preloaded Texinfo.
- -b, --batch No interaction.
- -c, --clean Remove all auxiliary files.
- -D, --debug Turn on shell debugging (set -x).
- -e, --expand Force macro expansion using makeinfo.
- -I DIR Search DIR for Texinfo files.
- -h, --help Display this help and exit successfully.
- -l, --language=LANG Specify the LANG of FILE: LaTeX or Texinfo.
- -p, --pdf Use pdftex or pdflatex for processing.
- -q, --quiet No output unless errors (implies --batch).
- -s, --silent Same as --quiet.
- -t, --texinfo=CMD Insert CMD after @setfilename in copy of input file.
- Multiple values accumulate.
- -v, --version Display version information and exit successfully.
- -V, --verbose Report on what is done.
-
-The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO,
-TEX (or PDFTEX), and TEXINDEX environment variables are used to run
-those commands, if they are set.
-
-Email bug reports to <bug-texinfo@gnu.org>,
-general questions and discussion to <help-texinfo@gnu.org>."
-
-# Initialize variables for option overriding and otherwise.
-# Don't use `unset' since old bourne shells don't have this command.
-# Instead, assign them an empty value.
-escape='\'
-batch=false # eval for batch mode
-clean=
-debug=
-expand= # t for expansion via makeinfo
-oformat=dvi
-set_language=
-miincludes= # makeinfo include path
-textra=
-tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems.
-txincludes= # TEXINPUTS extensions
-txiprereq=19990129 # minimum texinfo.tex version to have macro expansion
-quiet= # by default let the tools' message be displayed
-verbose=false # echo for verbose mode
-
-orig_pwd=`pwd`
-
-# Systems which define $COMSPEC or $ComSpec use semicolons to separate
-# directories in TEXINPUTS.
-if test -n "$COMSPEC$ComSpec"; then
- path_sep=";"
-else
- path_sep=":"
-fi
-
-# Save this so we can construct a new TEXINPUTS path for each file.
-TEXINPUTS_orig="$TEXINPUTS"
-# Unfortunately makeindex does not read TEXINPUTS.
-INDEXSTYLE_orig="$INDEXSTYLE"
-export TEXINPUTS INDEXSTYLE
-
-# Push a token among the arguments that will be used to notice when we
-# ended options/arguments parsing.
-# Use "set dummy ...; shift" rather than 'set - ..." because on
-# Solaris set - turns off set -x (but keeps set -e).
-# Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3
-# still expand "$@" to a single argument (the empty string) rather
-# than nothing at all.
-arg_sep="$$--$$"
-set dummy ${1+"$@"} "$arg_sep"; shift
-
-#
-# Parse command line arguments.
-while test x"$1" != x"$arg_sep"; do
-
- # Handle --option=value by splitting apart and putting back on argv.
- case "$1" in
- --*=*)
- opt=`echo "$1" | sed -e 's/=.*//'`
- val=`echo "$1" | sed -e 's/[^=]*=//'`
- shift
- set dummy "$opt" "$val" ${1+"$@"}; shift
- ;;
- esac
-
- # This recognizes --quark as --quiet. So what.
- case "$1" in
- -@ ) escape=@;;
- # Silently and without documentation accept -b and --b[atch] as synonyms.
- -b | --b*) batch=eval;;
- -q | -s | --q* | --s*) quiet=t; batch=eval;;
- -c | --c*) clean=t;;
- -D | --d*) debug=t;;
- -e | --e*) expand=t;;
- -h | --h*) echo "$usage"; exit 0;;
- -I | --I*)
- shift
- miincludes="$miincludes -I $1"
- txincludes="$txincludes$path_sep$1"
- ;;
- -l | --l*) shift; set_language=$1;;
- -p | --p*) oformat=pdf;;
- -t | --t*) shift; textra="$textra\\
-$1";;
- -v | --vers*) echo "$version"; exit 0;;
- -V | --verb*) verbose=echo;;
- --) # What remains are not options.
- shift
- while test x"$1" != x"$arg_sep"; do
- set dummy ${1+"$@"} "$1"; shift
- shift
- done
- break;;
- -*)
- echo "$0: Unknown or ambiguous option \`$1'." >&2
- echo "$0: Try \`--help' for more information." >&2
- exit 1;;
- *) set dummy ${1+"$@"} "$1"; shift;;
- esac
- shift
-done
-# Pop the token
-shift
-
-# Interpret remaining command line args as filenames.
-if test $# = 0; then
- echo "$0: Missing file arguments." >&2
- echo "$0: Try \`--help' for more information." >&2
- exit 2
-fi
-
-# Prepare the temporary directory. Remove it at exit, unless debugging.
-if test -z "$debug"; then
- trap "cd / && rm -rf $tmpdir" 0 1 2 15
-fi
-
-# Create the temporary directory with strict rights
-(umask 077 && mkdir $tmpdir) || exit 1
-
-# Prepare the tools we might need. This may be extra work in some
-# cases, but improves the readibility of the script.
-utildir=$tmpdir/utils
-mkdir $utildir || exit 1
-
-# A sed script that preprocesses Texinfo sources in order to keep the
-# iftex sections only. We want to remove non TeX sections, and
-# comment (with `@c texi2dvi') TeX sections so that makeinfo does not
-# try to parse them. Nevertheless, while commenting TeX sections,
-# don't comment @macro/@end macro so that makeinfo does propagate
-# them. Unfortunately makeinfo --iftex --no-ifhtml --no-ifinfo
-# doesn't work well enough (yet) to use that, so work around with sed.
-comment_iftex_sed=$utildir/comment.sed
-cat <<EOF >$comment_iftex_sed
-/^@tex/,/^@end tex/{
- s/^/@c texi2dvi/
-}
-/^@iftex/,/^@end iftex/{
- s/^/@c texi2dvi/
- /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{
- s/^@c texi2dvi//
- }
-}
-/^@html/,/^@end html/d
-/^@ifhtml/,/^@end ifhtml/d
-/^@ifnottex/,/^@end ifnottex/d
-/^@ifinfo/,/^@end ifinfo/{
- /^@node/p
- /^@menu/,/^@end menu/p
- d
-}
-EOF
-# Uncommenting is simple: Remove any leading `@c texi2dvi'.
-uncomment_iftex_sed=$utildir/uncomment.sed
-cat <<EOF >$uncomment_iftex_sed
-s/^@c texi2dvi//
-EOF
-
-# A shell script that computes the list of xref files.
-# Takes the filename (without extension) of which we look for xref
-# files as argument. The index files must be reported last.
-get_xref_files=$utildir/get_xref.sh
-cat <<\EOF >$get_xref_files
-#! /bin/sh
-
-# Get list of xref files (indexes, tables and lists).
-# Find all files having root filename with a two-letter extension,
-# saves the ones that are really Texinfo-related files. .?o? catches
-# LaTeX tables and lists.
-for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do
- # If file is empty, skip it.
- test -s "$this_file" || continue
- # If the file is not suitable to be an index or xref file, don't
- # process it. The file can't be if its first character is not a
- # backslash or single quote.
- first_character=`sed -n '1s/^\(.\).*$/\1/p;q' $this_file`
- if test "x$first_character" = "x\\" \
- || test "x$first_character" = "x'"; then
- xref_files="$xref_files ./$this_file"
- fi
-done
-echo "$xref_files"
-EOF
-chmod 500 $get_xref_files
-
-# File descriptor usage:
-# 0 standard input
-# 1 standard output (--verbose messages)
-# 2 standard error
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 5 tools output (turned off by --quiet)
-
-# Tools' output. If quiet, discard, else redirect to the message flow.
-if test "$quiet" = t; then
- exec 5>/dev/null
-else
- exec 5>&1
-fi
-
-# Enable tracing
-test "$debug" = t && set -x
-
-#
-# TeXify files.
-
-for command_line_filename in ${1+"$@"}; do
- $verbose "Processing $command_line_filename ..."
-
- # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex),
- # prepend `./' in order to avoid that the tools take it as an option.
- echo "$command_line_filename" | egrep '^(/|[A-z]:/)' >/dev/null \
- || command_line_filename="./$command_line_filename"
-
- # See if the file exists. If it doesn't we're in trouble since, even
- # though the user may be able to reenter a valid filename at the tex
- # prompt (assuming they're attending the terminal), this script won't
- # be able to find the right xref files and so forth.
- if test ! -r "$command_line_filename"; then
- echo "$0: Could not read $command_line_filename, skipping." >&2
- continue
- fi
-
- # Get the name of the current directory. We want the full path
- # because in clean mode we are in tmp, in which case a relative
- # path has no meaning.
- filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'`
- filename_dir=`cd "$filename_dir" >/dev/null && pwd`
-
- # Strip directory part but leave extension.
- filename_ext=`basename "$command_line_filename"`
- # Strip extension.
- filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'`
- ext=`echo "$filename_ext" | sed 's/^.*\.//'`
-
- # _src. Use same basename since we want to generate aux files with
- # the same basename as the manual. If --expand, then output the
- # macro-expanded file to here, else copy the original file.
- tmpdir_src=$tmpdir/src
- filename_src=$tmpdir_src/$filename_noext.$ext
-
- # _xtr. The file with the user's extra commands.
- tmpdir_xtr=$tmpdir/xtr
- filename_xtr=$tmpdir_xtr/$filename_noext.$ext
-
- # _bak. Copies of the previous xref files (another round is run if
- # they differ from the new one).
- tmpdir_bak=$tmpdir/bak
-
- # Make all those directories and give up if we can't succeed.
- mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1
-
- # Source file might include additional sources. Put `.' and
- # directory where source file(s) reside in TEXINPUTS before anything
- # else. `.' goes first to ensure that any old .aux, .cps,
- # etc. files in ${directory} don't get used in preference to fresher
- # files in `.'. Include orig_pwd in case we are in clean mode, where
- # we've cd'd to a temp directory.
- common=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep"
- TEXINPUTS="$common$TEXINPUTS_orig"
- INDEXSTYLE="$common$INDEXSTYLE_orig"
-
- # If the user explicitly specified the language, use that.
- # Otherwise, if the first line is \input texinfo, assume it's texinfo.
- # Otherwise, guess from the file extension.
- if test -n "$set_language"; then
- language=$set_language
- elif sed 1q "$command_line_filename" | fgrep 'input texinfo' >/dev/null; then
- language=texinfo
- else
- language=
- fi
-
- # Get the type of the file (latex or texinfo) from the given language
- # we just guessed, or from the file extension if not set yet.
- case ${language:-$filename_ext} in
- [lL]a[tT]e[xX] | *.ltx | *.tex)
- # Assume a LaTeX file. LaTeX needs bibtex and uses latex for
- # compilation. No makeinfo.
- bibtex=${BIBTEX:-bibtex}
- makeinfo= # no point in running makeinfo on latex source.
- texindex=${MAKEINDEX:-makeindex}
- if test $oformat = dvi; then
- tex=${LATEX:-latex}
- else
- tex=${PDFLATEX:-pdflatex}
- fi
- ;;
-
- *)
- # Assume a Texinfo file. Texinfo files need makeinfo, texindex and tex.
- bibtex=
- texindex=${TEXINDEX:-texindex}
- if test $oformat = dvi; then
- tex=${TEX:-tex}
- else
- tex=${PDFTEX:-pdftex}
- fi
- # Unless required by the user, makeinfo expansion is wanted only
- # if texinfo.tex is too old.
- if test "$expand" = t; then
- makeinfo=${MAKEINFO:-makeinfo}
- else
- # Check if texinfo.tex performs macro expansion by looking for
- # its version. The version is a date of the form YEAR-MO-DA.
- # We don't need to use [0-9] to match the digits since anyway
- # the comparison with $txiprereq, a number, will fail with non
- # digits.
- txiversion_tex=txiversion.tex
- echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex
- # Run in the tmpdir to avoid leaving files.
- eval `cd $tmpdir >/dev/null \
- && $tex $txiversion_tex 2>/dev/null \
-| sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'`
- $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..."
- if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then
- makeinfo=
- else
- makeinfo=${MAKEINFO:-makeinfo}
- fi
- # As long as we had to run TeX, offer the user this convenience
- if test "$txiformat" = Texinfo; then
- escape=@
- fi
- fi
- ;;
- esac
-
- # Expand macro commands in the original source file using Makeinfo.
- # Always use `end' footnote style, since the `separate' style
- # generates different output (arguably this is a bug in -E).
- # Discard main info output, the user asked to run TeX, not makeinfo.
- if test -n "$makeinfo"; then
- $verbose "Macro-expanding $command_line_filename to $filename_src ..."
- sed -f $comment_iftex_sed "$command_line_filename" \
- | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \
- -o /dev/null --macro-expand=- \
- | sed -f $uncomment_iftex_sed >"$filename_src"
- filename_input=$filename_src
- fi
-
- # If makeinfo failed (or was not even run), use the original file as input.
- if test $? -ne 0 \
- || test ! -r "$filename_src"; then
- $verbose "Reverting to $command_line_filename ..."
- filename_input=$filename_dir/$filename_ext
- fi
-
- # Used most commonly for @finalout, @smallbook, etc.
- if test -n "$textra"; then
- $verbose "Inserting extra commands: $textra"
- sed '/^@setfilename/a\
-'"$textra" "$filename_input" >$filename_xtr
- filename_input=$filename_xtr
- fi
-
- # If clean mode was specified, then move to the temporary directory.
- if test "$clean" = t; then
- $verbose "cd $tmpdir_src"
- cd "$tmpdir_src" || exit 1
- fi
-
- while :; do # will break out of loop below
- orig_xref_files=`$get_xref_files "$filename_noext"`
-
- # Save copies of originals for later comparison.
- if test -n "$orig_xref_files"; then
- $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`"
- cp $orig_xref_files $tmpdir_bak
- fi
-
- # Run bibtex on current file.
- # - If its input (AUX) exists.
- # - If AUX contains both `\bibdata' and `\bibstyle'.
- # - If some citations are missing (LOG contains `Citation').
- # or the LOG complains of a missing .bbl
- #
- # We run bibtex first, because I can see reasons for the indexes
- # to change after bibtex is run, but I see no reason for the
- # converse.
- #
- # Don't try to be too smart. Running bibtex only if the bbl file
- # exists and is older than the LaTeX file is wrong, since the
- # document might include files that have changed. Because there
- # can be several AUX (if there are \include's), but a single LOG,
- # looking for missing citations in LOG is easier, though we take
- # the risk to match false messages.
- if test -n "$bibtex" \
- && test -r "$filename_noext.aux" \
- && test -r "$filename_noext.log" \
- && (grep '^\\bibdata[{]' "$filename_noext.aux" \
- && grep '^\\bibstyle[{]' "$filename_noext.aux" \
- && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \
- || grep 'No file .*\.bbl\.' "$filename_noext.log")) \
- >/dev/null 2>&1; \
- then
- $verbose "Running $bibtex $filename_noext ..."
- if $bibtex "$filename_noext" >&5; then :; else
- echo "$0: $bibtex exited with bad status, quitting." >&2
- exit 1
- fi
- fi
-
- # What we'll run texindex on -- exclude non-index files.
- # Since we know index files are last, it is correct to remove everything
- # before .aux and .?o?.
- index_files=`echo "$orig_xref_files" \
- | sed "s!.*\.aux!!g;
- s!./$filename_noext\..o.!!g;
- s/^[ ]*//;s/[ ]*$//"`
- # Run texindex (or makeindex) on current index files. If they
- # already exist, and after running TeX a first time the index
- # files don't change, then there's no reason to run TeX again.
- # But we won't know that if the index files are out of date or
- # nonexistent.
- if test -n "$texindex" && test -n "$index_files"; then
- $verbose "Running $texindex $index_files ..."
- if $texindex $index_files 2>&5 1>&2; then :; else
- echo "$0: $texindex exited with bad status, quitting." >&2
- exit 1
- fi
- fi
-
- # Finally, run TeX.
- # Prevent $ESCAPE from being interpreted by the shell if it happens
- # to be `/'.
- $batch tex_args="\\${escape}nonstopmode\ \\${escape}input"
- $verbose "Running $cmd ..."
- cmd="$tex $tex_args $filename_input"
- if $cmd >&5; then :; else
- echo "$0: $tex exited with bad status, quitting." >&2
- echo "$0: see $filename_noext.log for errors." >&2
- test "$clean" = t \
- && cp "$filename_noext.log" "$orig_pwd"
- exit 1
- fi
-
-
- # Decide if looping again is needed.
- finished=t
-
- # LaTeX (and the package changebar) report in the LOG file if it
- # should be rerun. This is needed for files included from
- # subdirs, since texi2dvi does not try to compare xref files in
- # subdirs. Performing xref files test is still good since LaTeX
- # does not report changes in xref files.
- if fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then
- finished=
- fi
-
- # Check if xref files changed.
- new_xref_files=`$get_xref_files "$filename_noext"`
- $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`"
- $verbose "New xref files = `echo $new_xref_files | sed 's|\./||g'`"
-
- # If old and new lists don't at least have the same file list,
- # then one file or another has definitely changed.
- test "x$orig_xref_files" != "x$new_xref_files" && finished=
-
- # File list is the same. We must compare each file until we find
- # a difference.
- if test -n "$finished"; then
- for this_file in $new_xref_files; do
- $verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..."
- # cmp -s returns nonzero exit status if files differ.
- if cmp -s "$this_file" "$tmpdir_bak/$this_file"; then :; else
- # We only need to keep comparing until we find one that
- # differs, because we'll have to run texindex & tex again no
- # matter how many more there might be.
- finished=
- $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..."
- test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file"
- break
- fi
- done
- fi
-
- # If finished, exit the loop, else rerun the loop.
- test -n "$finished" && break
- done
-
- # If we were in clean mode, compilation was in a tmp directory.
- # Copy the DVI (or PDF) file into the directory where the compilation
- # has been done. (The temp dir is about to get removed anyway.)
- # We also return to the original directory so that
- # - the next file is processed in correct conditions
- # - the temporary file can be removed
- if test -n "$clean"; then
- $verbose "Copying $oformat file from `pwd` to $orig_pwd"
- cp -p "./$filename_noext.$oformat" "$orig_pwd"
- cd / # in case $orig_pwd is on a different drive (for DOS)
- cd $orig_pwd || exit 1
- fi
-
- # Remove temporary files.
- if test "x$debug" = "x"; then
- $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..."
- cd /
- rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak
- fi
-done
-
-$verbose "$0 done."
-exit 0 # exit successfully, not however we ended the loop.
diff --git a/readline-4.3.orig/doc/texi2html b/readline-4.3.orig/doc/texi2html
deleted file mode 100755
index 7bb8493..0000000
--- a/readline-4.3.orig/doc/texi2html
+++ /dev/null
@@ -1,5429 +0,0 @@
-#! /usr/bin/perl
-'di ';
-'ig 00 ';
-#+##############################################################################
-#
-# texi2html: Program to transform Texinfo documents to HTML
-#
-# Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-#-##############################################################################
-
-# This requires perl version 5 or higher
-require 5.0;
-
-#++##############################################################################
-#
-# NOTE FOR DEBUGGING THIS SCRIPT:
-# You can run 'perl texi2html.pl' directly, provided you have
-# the environment variable T2H_HOME set to the directory containing
-# the texi2html.init file
-#
-#--##############################################################################
-
-# CVS version:
-# $Id$
-
-# Homepage:
-$T2H_HOMEPAGE = <<EOT;
-http://www.mathematik.uni-kl.de/~obachman/Texi2html
-EOT
-
-# Authors:
-$T2H_AUTHORS = <<EOT;
-Written by: Lionel Cons <Lionel.Cons\@cern.ch> (original author)
- Karl Berry <karl\@freefriends.org>
- Olaf Bachmann <obachman\@mathematik.uni-kl.de>
- and many others.
-Maintained by: Olaf Bachmann <obachman\@mathematik.uni-kl.de>
-Send bugs and suggestions to <texi2html\@mathematik.uni-kl.de>
-EOT
-
-# Version: set in configure.in
-$THISVERSION = '1.64';
-$THISPROG = "texi2html $THISVERSION"; # program name and version
-
-# The man page for this program is included at the end of this file and can be
-# viewed using the command 'nroff -man texi2html'.
-
-# Identity:
-
-$T2H_TODAY = &pretty_date; # like "20 September 1993"
-# the eval prevents this from breaking on system which do not have
-# a proper getpwuid implemented
-eval { ($T2H_USER = (getpwuid ($<))[6]) =~ s/,.*//;}; # Who am i
-
-#+++############################################################################
-# #
-# Initialization #
-# Pasted content of File $(srcdir)/texi2html.init: Default initializations #
-# #
-#---############################################################################
-
-# leave this within comments, and keep the require statement
-# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init
-# exists.
-
-#
-# -*-perl-*-
-######################################################################
-# File: texi2html.init
-#
-# Sets default values for command-line arguments and for various customizable
-# procedures
-#
-# A copy of this file is pasted into the beginning of texi2html by
-# 'make texi2html'
-#
-# Copy this file and make changes to it, if you like.
-# Afterwards, either, load it with command-line option -init_file <your_init_file>
-#
-# $Id$
-
-######################################################################
-# stuff which can also be set by command-line options
-#
-#
-# Note: values set here, overwrite values set by the command-line
-# options before -init_file and might still be overwritten by
-# command-line arguments following the -init_file option
-#
-
-# T2H_OPTIONS is a hash whose keys are the (long) names of valid
-# command-line options and whose values are a hash with the following keys:
-# type ==> one of !|=i|:i|=s|:s (see GetOpt::Long for more info)
-# linkage ==> ref to scalar, array, or subroutine (see GetOpt::Long for more info)
-# verbose ==> short description of option (displayed by -h)
-# noHelp ==> if 1 -> for "not so important options": only print description on -h 1
-# 2 -> for obsolete options: only print description on -h 2
-
-$T2H_DEBUG = 0;
-$T2H_OPTIONS -> {debug} =
-{
- type => '=i',
- linkage => \$main::T2H_DEBUG,
- verbose => 'output HTML with debuging information',
-};
-
-$T2H_DOCTYPE = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">';
-$T2H_OPTIONS -> {doctype} =
-{
- type => '=s',
- linkage => \$main::T2H_DOCTYPE,
- verbose => 'document type which is output in header of HTML files',
- noHelp => 1
-};
-
-$T2H_CHECK = 0;
-$T2H_OPTIONS -> {check} =
-{
- type => '!',
- linkage => \$main::T2H_CHECK,
- verbose => 'if set, only check files and output all things that may be Texinfo commands',
- noHelp => 1
-};
-
-# -expand
-# if set to "tex" (or, "info") expand @iftex and @tex (or, @ifinfo) sections
-# else, neither expand @iftex, @tex, nor @ifinfo sections
-$T2H_EXPAND = "info";
-$T2H_OPTIONS -> {expand} =
-{
- type => '=s',
- linkage => \$T2H_EXPAND,
- verbose => 'Expand info|tex|none section of texinfo source',
-};
-
-# - glossary
-#if set, uses section named `Footnotes' for glossary
-$T2H_USE_GLOSSARY = 0;
-T2H_OPTIONS -> {glossary} =
-{
- type => '!',
- linkage => \$T2H_USE_GLOSSARY,
- verbose => "if set, uses section named `Footnotes' for glossary",
- noHelp => 1,
-};
-
-
-# -invisible
-# $T2H_INVISIBLE_MARK is the text used to create invisible destination
-# anchors for index links (you can for instance use the invisible.xbm
-# file shipped with this program). This is a workaround for a known
-# bug of many WWW browsers, including netscape.
-# For me, it works fine without it -- on the contrary: if there, it
-# inserts space between headers and start of text (obachman 3/99)
-$T2H_INVISIBLE_MARK = '';
-# $T2H_INVISIBLE_MARK = '&#160;';
-$T2H_OPTIONS -> {invisible} =
-{
- type => '=s',
- linkage => \$T2H_INVISIBLE_MARK,
- verbose => 'use text in invisble anchot',
- noHelp => 1,
-};
-
-# -iso
-# if set, ISO8879 characters are used for special symbols (like copyright, etc)
-$T2H_USE_ISO = 0;
-$T2H_OPTIONS -> {iso} =
-{
- type => 'iso',
- linkage => \$T2H_USE_ISO,
- verbose => 'if set, ISO8879 characters are used for special symbols (like copyright, etc)',
- noHelp => 1,
-};
-
-# -I
-# list directories where @include files are searched for (besides the
-# directory of the doc file) additional '-I' args add to this list
-@T2H_INCLUDE_DIRS = (".");
-$T2H_OPTIONS -> {I} =
-{
- type => '=s',
- linkage => \@T2H_INCLUDE_DIRS,
- verbose => 'append $s to the @include search path',
-};
-
-# -top_file
-# uses file of this name for top-level file
-# extension is manipulated appropriately, if necessary.
-# If empty, <basename of document>.html is used
-# Typically, you would set this to "index.html".
-$T2H_TOP_FILE = '';
-$T2H_OPTIONS -> {top_file} =
-{
- type => '=s',
- linkage => \$T2H_TOP_FILE,
- verbose => 'use $s as top file, instead of <docname>.html',
-};
-
-
-# -toc_file
-# uses file of this name for table of contents file
-# extension is manipulated appropriately, if necessary.
-# If empty, <basename of document>_toc.html is used
-$T2H_TOC_FILE = '';
-$T2H_OPTIONS -> {toc_file} =
-{
- type => '=s',
- linkage => \$T2H_TOC_FILE,
- verbose => 'use $s as ToC file, instead of <docname>_toc.html',
-};
-
-# -frames
-# if set, output two additional files which use HTML 4.0 "frames".
-$T2H_FRAMES = 0;
-$T2H_OPTIONS -> {frames} =
-{
- type => '!',
- linkage => \$T2H_FRAMES,
- verbose => 'output files which use HTML 4.0 frames (experimental)',
- noHelp => 1,
-};
-
-
-# -menu | -nomenu
-# if set, show the Texinfo menus
-$T2H_SHOW_MENU = 1;
-$T2H_OPTIONS -> {menu} =
-{
- type => '!',
- linkage => \$T2H_SHOW_MENU,
- verbose => 'ouput Texinfo menus',
-};
-
-# -number | -nonumber
-# if set, number sections and show section names and numbers in references
-# and menus
-$T2H_NUMBER_SECTIONS = 1;
-$T2H_OPTIONS -> {number} =
-{
- type => '!',
- linkage => \$T2H_NUMBER_SECTIONS,
- verbose => 'use numbered sections'
-};
-
-# if set, and T2H_NUMBER_SECTIONS is set, then use node names in menu
-# entries, instead of section names
-$T2H_NODE_NAME_IN_MENU = 0;
-
-# if set and menu entry equals menu descr, then do not print menu descr.
-# Likewise, if node name equals entry name, do not print entry name.
-$T2H_AVOID_MENU_REDUNDANCY = 1;
-
-# -split section|chapter|none
-# if set to 'section' (resp. 'chapter') create one html file per (sub)section
-# (resp. chapter) and separate pages for Top, ToC, Overview, Index,
-# Glossary, About.
-# otherwise, create monolithic html file which contains whole document
-#$T2H_SPLIT = 'section';
-$T2H_SPLIT = '';
-$T2H_OPTIONS -> {split} =
-{
- type => '=s',
- linkage => \$T2H_SPLIT,
- verbose => 'split document on section|chapter else no splitting',
-};
-
-# -section_navigation|-no-section_navigation
-# if set, then navigation panels are printed at the beginning of each section
-# and, possibly at the end (depending on whether or not there were more than
-# $T2H_WORDS_IN_PAGE words on page
-# This is most useful if you do not want to have section navigation
-# on -split chapter
-$T2H_SECTION_NAVIGATION = 1;
-$T2H_OPTIONS -> {sec_nav} =
-{
- type => '!',
- linkage => \$T2H_SECTION_NAVIGATION,
- verbose => 'output navigation panels for each section',
-};
-
-# -subdir
-# if set put result files in this directory
-# if not set result files are put into current directory
-#$T2H_SUBDIR = 'html';
-$T2H_SUBDIR = '';
-$T2H_OPTIONS -> {subdir} =
-{
- type => '=s',
- linkage => \$T2H_SUBDIR,
- verbose => 'put HTML files in directory $s, instead of $cwd',
-};
-
-# -short_extn
-# If this is set all HTML file will have extension ".htm" instead of
-# ".html". This is helpful when shipping the document to PC systems.
-$T2H_SHORTEXTN = 0;
-$T2H_OPTIONS -> {short_ext} =
-{
- type => '!',
- linkage => \$T2H_SHORTEXTN,
- verbose => 'use "htm" extension for output HTML files',
-};
-
-
-# -prefix
-# Set the output file prefix, prepended to all .html, .gif and .pl files.
-# By default, this is the basename of the document
-$T2H_PREFIX = '';
-$T2H_OPTIONS -> {prefix} =
-{
- type => '=s',
- linkage => \$T2H_PREFIX,
- verbose => 'use as prefix for output files, instead of <docname>',
-};
-
-# -o filename
-# If set, generate monolithic document output html into $filename
-$T2H_OUT = '';
-$T2H_OPTIONS -> {out_file} =
-{
- type => '=s',
- linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';},
- verbose => 'if set, all HTML output goes into file $s',
-};
-
-# -short_ref
-#if set cross-references are given without section numbers
-$T2H_SHORT_REF = '';
-$T2H_OPTIONS -> {short_ref} =
-{
- type => '!',
- linkage => \$T2H_SHORT_REF,
- verbose => 'if set, references are without section numbers',
-};
-
-# -idx_sum
-# if value is set, then for each @prinindex $what
-# $docu_name_$what.idx is created which contains lines of the form
-# $key\t$ref sorted alphabetically (case matters)
-$T2H_IDX_SUMMARY = 0;
-$T2H_OPTIONS -> {idx_sum} =
-{
- type => '!',
- linkage => \$T2H_IDX_SUMMARY,
- verbose => 'if set, also output index summary',
- noHelp => 1,
-};
-
-# -verbose
-# if set, chatter about what we are doing
-$T2H_VERBOSE = '';
-$T2H_OPTIONS -> {Verbose} =
-{
- type => '!',
- linkage => \$T2H_VERBOSE,
- verbose => 'print progress info to stdout',
-};
-
-# -lang
-# For page titles use $T2H_WORDS->{$T2H_LANG}->{...} as title.
-# To add a new language, supply list of titles (see $T2H_WORDS below).
-# and use ISO 639 language codes (see e.g. perl module Locale-Codes-1.02
-# for definitions)
-# Default's to 'en' if not set or no @documentlanguage is specified
-$T2H_LANG = '';
-$T2H_OPTIONS -> {lang} =
-{
- type => '=s',
- linkage => sub {SetDocumentLanguage($_[1])},
- verbose => 'use $s as document language (ISO 639 encoding)',
-};
-
-# -l2h
-# if set, uses latex2html for generation of math content
-$T2H_L2H = '';
-$T2H_OPTIONS -> {l2h} =
-{
- type => '!',
- linkage => \$T2H_L2H,
- verbose => 'if set, uses latex2html for @math and @tex',
-};
-
-######################
-# The following options are only relevant if $T2H_L2H is set
-#
-# -l2h_l2h
-# name/location of latex2html progam
-$T2H_L2H_L2H = "latex2html";
-$T2H_OPTIONS -> {l2h_l2h} =
-{
- type => '=s',
- linkage => \$T2H_L2H_L2H,
- verbose => 'program to use for latex2html translation',
- noHelp => 1,
-};
-
-# -l2h_skip
-# if set, skips actual call to latex2html tries to reuse previously generated
-# content, instead
-$T2H_L2H_SKIP = '';
-$T2H_OPTIONS -> {l2h_skip} =
-{
- type => '!',
- linkage => \$T2H_L2H_SKIP,
- verbose => 'if set, tries to reuse previously latex2html output',
- noHelp => 1,
-};
-
-# -l2h_tmp
-# if set, l2h uses this directory for temporarary files. The path
-# leading to this directory may not contain a dot (i.e., a "."),
-# otherwise, l2h will fail
-$T2H_L2H_TMP = '';
-$T2H_OPTIONS -> {l2h_tmp} =
-{
- type => '=s',
- linkage => \$T2H_L2H_TMP,
- verbose => 'if set, uses $s as temporary latex2html directory',
- noHelp => 1,
-};
-
-# if set, cleans intermediate files (they all have the prefix $doc_l2h_)
-# of l2h
-$T2H_L2H_CLEAN = 1;
-$T2H_OPTIONS -> {l2h_clean} =
-{
- type => '!',
- linkage => \$T2H_L2H_CLEAN,
- verbose => 'if set, do not keep intermediate latex2html files for later reuse',
- noHelp => 1,
-};
-
-$T2H_OPTIONS -> {D} =
-{
- type => '=s',
- linkage => sub {$main::value{@_[1]} = 1;},
- verbose => 'equivalent to Texinfo "@set $s 1"',
- noHelp => 1,
-};
-
-$T2H_OPTIONS -> {init_file} =
-{
- type => '=s',
- linkage => \&LoadInitFile,
- verbose => 'load init file $s'
-};
-
-
-##############################################################################
-#
-# The following can only be set in the init file
-#
-##############################################################################
-
-# if set, center @image by default
-# otherwise, do not center by default
-$T2H_CENTER_IMAGE = 1;
-
-# used as identation for block enclosing command @example, etc
-# If not empty, must be enclosed in <td></td>
-$T2H_EXAMPLE_INDENT_CELL = '<td>&nbsp;</td>';
-# same as above, only for @small
-$T2H_SMALL_EXAMPLE_INDENT_CELL = '<td>&nbsp;</td>';
-# font size for @small
-$T2H_SMALL_FONT_SIZE = '-1';
-
-# if non-empty, and no @..heading appeared in Top node, then
-# use this as header for top node/section, otherwise use value of
-# @settitle or @shorttitle (in that order)
-$T2H_TOP_HEADING = '';
-
-# if set, use this chapter for 'Index' button, else
-# use first chapter whose name matches 'index' (case insensitive)
-$T2H_INDEX_CHAPTER = '';
-
-# if set and $T2H_SPLIT is set, then split index pages at the next letter
-# after they have more than that many entries
-$T2H_SPLIT_INDEX = 100;
-
-# if set (e.g., to index.html) replace hrefs to this file
-# (i.e., to index.html) by ./
-$T2H_HREF_DIR_INSTEAD_FILE = '';
-
-########################################################################
-# Language dependencies:
-# To add a new language extend T2H_WORDS hash and create $T2H_<...>_WORDS hash
-# To redefine one word, simply do:
-# $T2H_WORDS->{<language>}->{<word>} = 'whatever' in your personal init file.
-#
-$T2H_WORDS_EN =
-{
- # titles of pages
- 'ToC_Title' => 'Table of Contents',
- 'Overview_Title' => 'Short Table of Contents',
- 'Index_Title' => 'Index',
- 'About_Title' => 'About this document',
- 'Footnotes_Title' => 'Footnotes',
- 'See' => 'See',
- 'see' => 'see',
- 'section' => 'section',
-# If necessary, we could extend this as follows:
-# # text for buttons
-# 'Top_Button' => 'Top',
-# 'ToC_Button' => 'Contents',
-# 'Overview_Button' => 'Overview',
-# 'Index_button' => 'Index',
-# 'Back_Button' => 'Back',
-# 'FastBack_Button' => 'FastBack',
-# 'Prev_Button' => 'Prev',
-# 'Up_Button' => 'Up',
-# 'Next_Button' => 'Next',
-# 'Forward_Button' =>'Forward',
-# 'FastWorward_Button' => 'FastForward',
-# 'First_Button' => 'First',
-# 'Last_Button' => 'Last',
-# 'About_Button' => 'About'
-};
-
-$T2H_WORD_DE =
-{
- 'ToC_Title' => 'Inhaltsverzeichniss',
- 'Overview_Title' => 'Kurzes Inhaltsverzeichniss',
- 'Index_Title' => 'Index',
- 'About_Title' => '&Uuml;ber dieses Dokument',
- 'Footnotes_Title' => 'Fu&szlig;noten',
- 'See' => 'Siehe',
- 'see' => 'siehe',
- 'section' => 'Abschnitt',
-};
-
-$T2H_WORD_NL =
-{
- 'ToC_Title' => 'Inhoudsopgave',
- 'Overview_Title' => 'Korte inhoudsopgave',
- 'Index_Title' => 'Index', #Not sure ;-)
- 'About_Title' => 'No translation available!', #No translation available!
- 'Footnotes_Title' => 'No translation available!', #No translation available!
- 'See' => 'Zie',
- 'see' => 'zie',
- 'section' => 'sectie',
-};
-
-$T2H_WORD_ES =
-{
- 'ToC_Title' => '&iacute;ndice General',
- 'Overview_Title' => 'Resumen del Contenido',
- 'Index_Title' => 'Index', #Not sure ;-)
- 'About_Title' => 'No translation available!', #No translation available!
- 'Footnotes_Title' => 'Fu&szlig;noten',
- 'See' => 'V&eacute;ase',
- 'see' => 'v&eacute;ase',
- 'section' => 'secci&oacute;n',
-};
-
-$T2H_WORD_NO =
-{
- 'ToC_Title' => 'Innholdsfortegnelse',
- 'Overview_Title' => 'Kort innholdsfortegnelse',
- 'Index_Title' => 'Indeks', #Not sure ;-)
- 'About_Title' => 'No translation available!', #No translation available!
- 'Footnotes_Title' => 'No translation available!',
- 'See' => 'Se',
- 'see' => 'se',
- 'section' => 'avsnitt',
-};
-
-$T2H_WORD_PT =
-{
- 'ToC_Title' => 'Sum&aacute;rio',
- 'Overview_Title' => 'Breve Sum&aacute;rio',
- 'Index_Title' => '&Iacute;ndice', #Not sure ;-)
- 'About_Title' => 'No translation available!', #No translation available!
- 'Footnotes_Title' => 'No translation available!',
- 'See' => 'Veja',
- 'see' => 'veja',
- 'section' => 'Se&ccedil;&atilde;o',
-};
-
-$T2H_WORDS =
-{
- 'en' => $T2H_WORDS_EN,
- 'de' => $T2H_WORDS_DE,
- 'nl' => $T2H_WORDS_NL,
- 'es' => $T2H_WORDS_ES,
- 'no' => $T2H_WORDS_NO,
- 'pt' => $T2H_WORDS_PT
-};
-
-@MONTH_NAMES_EN =
-(
- 'January', 'February', 'March', 'April', 'May',
- 'June', 'July', 'August', 'September', 'October',
- 'November', 'December'
-);
-
-@MONTH_NAMES_DE =
-(
- 'Januar', 'Februar', 'M&auml;rz', 'April', 'Mai',
- 'Juni', 'Juli', 'August', 'September', 'Oktober',
- 'November', 'Dezember'
-);
-
-@MONTH_NAMES_NL =
-(
- 'Januari', 'Februari', 'Maart', 'April', 'Mei',
- 'Juni', 'Juli', 'Augustus', 'September', 'Oktober',
- 'November', 'December'
-);
-
-@MONTH_NAMES_ES =
-(
- 'enero', 'febrero', 'marzo', 'abril', 'mayo',
- 'junio', 'julio', 'agosto', 'septiembre', 'octubre',
- 'noviembre', 'diciembre'
-);
-
-@MONTH_NAMES_NO =
-(
-
- 'januar', 'februar', 'mars', 'april', 'mai',
- 'juni', 'juli', 'august', 'september', 'oktober',
- 'november', 'desember'
-);
-
-@MONTH_NAMES_PT =
-(
- 'Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio',
- 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro',
- 'Novembro', 'Dezembro'
-);
-
-
-$MONTH_NAMES =
-{
- 'en' => \@MONTH_NAMES_EN,
- 'de' => \@MONTH_NAMES_DE,
- 'es' => \@MONTH_NAMES_ES,
- 'nl' => \@MONTH_NAMES_NL,
- 'no' => \@MONTH_NAMES_NO,
- 'pt' => \@MONTH_NAMES_PT
-};
-########################################################################
-# Control of Page layout:
-# You can make changes of the Page layout at two levels:
-# 1.) For small changes, it is often enough to change the value of
-# some global string/hash/array variables
-# 2.) For larger changes, reimplement one of the T2H_DEFAULT_<fnc>* routines,
-# give them another name, and assign them to the respective
-# $T2H_<fnc> variable.
-
-# As a general interface, the hashes T2H_HREF, T2H_NAME, T2H_NODE hold
-# href, html-name, node-name of
-# This -- current section (resp. html page)
-# Top -- top page ($T2H_TOP_FILE)
-# Contents -- Table of contents
-# Overview -- Short table of contents
-# Index -- Index page
-# About -- page which explain "navigation buttons"
-# First -- first node
-# Last -- last node
-#
-# Whether or not the following hash values are set, depends on the context
-# (all values are w.r.t. 'This' section)
-# Next -- next node of texinfo
-# Prev -- previous node of texinfo
-# Up -- up node of texinfo
-# Forward -- next node in reading order
-# Back -- previous node in reading order
-# FastForward -- if leave node, up and next, else next node
-# FastBackward-- if leave node, up and prev, else prev node
-#
-# Furthermore, the following global variabels are set:
-# $T2H_THISDOC{title} -- title as set by @setttile
-# $T2H_THISDOC{fulltitle} -- full title as set by @title...
-# $T2H_THISDOC{subtitle} -- subtitle as set by @subtitle
-# $T2H_THISDOC{author} -- author as set by @author
-#
-# and pointer to arrays of lines which need to be printed by t2h_print_lines
-# $T2H_OVERVIEW -- lines of short table of contents
-# $T2H_TOC -- lines of table of contents
-# $T2H_TOP -- lines of Top texinfo node
-# $T2H_THIS_SECTION -- lines of 'This' section
-
-#
-# There are the following subs which control the layout:
-#
-$T2H_print_section = \&T2H_DEFAULT_print_section;
-$T2H_print_Top_header = \&T2H_DEFAULT_print_Top_header;
-$T2H_print_Top_footer = \&T2H_DEFAULT_print_Top_footer;
-$T2H_print_Top = \&T2H_DEFAULT_print_Top;
-$T2H_print_Toc = \&T2H_DEFAULT_print_Toc;
-$T2H_print_Overview = \&T2H_DEFAULT_print_Overview;
-$T2H_print_Footnotes = \&T2H_DEFAULT_print_Footnotes;
-$T2H_print_About = \&T2H_DEFAULT_print_About;
-$T2H_print_misc_header = \&T2H_DEFAULT_print_misc_header;
-$T2H_print_misc_footer = \&T2H_DEFAULT_print_misc_footer;
-$T2H_print_misc = \&T2H_DEFAULT_print_misc;
-$T2H_print_chapter_header = \&T2H_DEFAULT_print_chapter_header;
-$T2H_print_chapter_footer = \&T2H_DEFAULT_print_chapter_footer;
-$T2H_print_page_head = \&T2H_DEFAULT_print_page_head;
-$T2H_print_page_foot = \&T2H_DEFAULT_print_page_foot;
-$T2H_print_head_navigation = \&T2H_DEFAULT_print_head_navigation;
-$T2H_print_foot_navigation = \&T2H_DEFAULT_print_foot_navigation;
-$T2H_button_icon_img = \&T2H_DEFAULT_button_icon_img;
-$T2H_print_navigation = \&T2H_DEFAULT_print_navigation;
-$T2H_about_body = \&T2H_DEFAULT_about_body;
-$T2H_print_frame = \&T2H_DEFAULT_print_frame;
-$T2H_print_toc_frame = \&T2H_DEFAULT_print_toc_frame;
-
-########################################################################
-# Layout for html for every sections
-#
-sub T2H_DEFAULT_print_section
-{
- my $fh = shift;
- local $T2H_BUTTONS = \@T2H_SECTION_BUTTONS;
- &$T2H_print_head_navigation($fh) if $T2H_SECTION_NAVIGATION;
- my $nw = t2h_print_lines($fh);
- if ($T2H_SPLIT eq 'section' && $T2H_SECTION_NAVIGATION)
- {
- &$T2H_print_foot_navigation($fh, $nw);
- }
- else
- {
- print $fh '<HR SIZE="6">' . "\n";
- }
-}
-
-###################################################################
-# Layout of top-page I recommend that you use @ifnothtml, @ifhtml,
-# @html within the Top texinfo node to specify content of top-level
-# page.
-#
-# If you enclose everything in @ifnothtml, then title, subtitle,
-# author and overview is printed
-# T2H_HREF of Next, Prev, Up, Forward, Back are not defined
-# if $T2H_SPLIT then Top page is in its own html file
-sub T2H_DEFAULT_print_Top_header
-{
- &$T2H_print_page_head(@_) if $T2H_SPLIT;
- t2h_print_label(@_); # this needs to be called, otherwise no label set
- &$T2H_print_head_navigation(@_);
-}
-sub T2H_DEFAULT_print_Top_footer
-{
- &$T2H_print_foot_navigation(@_);
- &$T2H_print_page_foot(@_) if $T2H_SPLIT;
-}
-sub T2H_DEFAULT_print_Top
-{
- my $fh = shift;
-
- # for redefining navigation buttons use:
- # local $T2H_BUTTONS = [...];
- # as it is, 'Top', 'Contents', 'Index', 'About' are printed
- local $T2H_BUTTONS = \@T2H_MISC_BUTTONS;
- &$T2H_print_Top_header($fh);
- if ($T2H_THIS_SECTION)
- {
- # if top-level node has content, then print it with extra header
- print $fh "<H1>$T2H_NAME{Top}</H1>"
- unless ($T2H_HAS_TOP_HEADING);
- t2h_print_lines($fh, $T2H_THIS_SECTION)
- }
- else
- {
- # top-level node is fully enclosed in @ifnothtml
- # print fulltitle, subtitle, author, Overview
- print $fh
- "<CENTER>\n<H1>" .
- join("</H1>\n<H1>", split(/\n/, $T2H_THISDOC{fulltitle})) .
- "</H1>\n";
- print $fh "<H2>$T2H_THISDOC{subtitle}</H2>\n" if $T2H_THISDOC{subtitle};
- print $fh "$T2H_THISDOC{author}\n" if $T2H_THISDOC{author};
- print $fh <<EOT;
-</CENTER>
-<HR>
-<P></P>
-<H2> Overview: </H2>
-<BLOCKQUOTE>
-EOT
- t2h_print_lines($fh, $T2H_OVERVIEW);
- print $fh "</BLOCKQUOTE>\n";
- }
- &$T2H_print_Top_footer($fh);
-}
-
-###################################################################
-# Layout of Toc, Overview, and Footnotes pages
-# By default, we use "normal" layout
-# T2H_HREF of Next, Prev, Up, Forward, Back, etc are not defined
-# use: local $T2H_BUTTONS = [...] to redefine navigation buttons
-sub T2H_DEFAULT_print_Toc
-{
- return &$T2H_print_misc(@_);
-}
-sub T2H_DEFAULT_print_Overview
-{
- return &$T2H_print_misc(@_);
-}
-sub T2H_DEFAULT_print_Footnotes
-{
- return &$T2H_print_misc(@_);
-}
-sub T2H_DEFAULT_print_About
-{
- return &$T2H_print_misc(@_);
-}
-
-sub T2H_DEFAULT_print_misc_header
-{
- &$T2H_print_page_head(@_) if $T2H_SPLIT;
- # this needs to be called, otherwise, no labels are set
- t2h_print_label(@_);
- &$T2H_print_head_navigation(@_);
-}
-sub T2H_DEFAULT_print_misc_footer
-{
- &$T2H_print_foot_navigation(@_);
- &$T2H_print_page_foot(@_) if $T2H_SPLIT;
-}
-sub T2H_DEFAULT_print_misc
-{
- my $fh = shift;
- local $T2H_BUTTONS = \@T2H_MISC_BUTTONS;
- &$T2H_print_misc_header($fh);
- print $fh "<H1>$T2H_NAME{This}</H1>\n";
- t2h_print_lines($fh);
- &$T2H_print_misc_footer($fh);
-}
-
-###################################################################
-# chapter_header and chapter_footer are only called if
-# T2H_SPLIT eq 'chapter'
-# chapter_header: after print_page_header, before print_section
-# chapter_footer: after print_section of last section, before print_page_footer
-#
-# If you want to get rid of navigation stuff after each section,
-# redefine print_section such that it does not call print_navigation,
-# and put print_navigation into print_chapter_header
-@T2H_CHAPTER_BUTTONS =
- (
- 'FastBack', 'FastForward', ' ',
- ' ', ' ', ' ', ' ',
- 'Top', 'Contents', 'Index', 'About',
- );
-
-sub T2H_DEFAULT_print_chapter_header
-{
- # nothing to do there, by default
- if (! $T2H_SECTION_NAVIGATION)
- {
- my $fh = shift;
- local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS;
- &$T2H_print_navigation($fh);
- print $fh "\n<HR SIZE=2>\n";
- }
-}
-
-sub T2H_DEFAULT_print_chapter_footer
-{
- local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS;
- &$T2H_print_navigation(@_);
-}
-###################################################################
-$T2H_TODAY = &pretty_date; # like "20 September 1993"
-
-sub pretty_date {
- local($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
-
- ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
- $year += ($year < 70) ? 2000 : 1900;
- # obachman: Let's do it as the Americans do
- return($MONTH_NAMES->{$T2H_LANG}[$mon] . ", " . $mday . " " . $year);
-}
-
-
-###################################################################
-# Layout of standard header and footer
-#
-
-# Set the default body text, inserted between <BODY ... >
-###$T2H_BODYTEXT = 'LANG="EN" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"';
-$T2H_BODYTEXT = 'LANG="' . $T2H_LANG . '" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"';
-# text inserted after <BODY ...>
-$T2H_AFTER_BODY_OPEN = '';
-#text inserted before </BODY>
-$T2H_PRE_BODY_CLOSE = '';
-# this is used in footer
-$T2H_ADDRESS = "by <I>$T2H_USER</I> " if $T2H_USER;
-$T2H_ADDRESS .= "on <I>$T2H_TODAY</I>";
-# this is added inside <HEAD></HEAD> after <TITLE> and some META NAME stuff
-# can be used for <style> <script>, <meta> tags
-$T2H_EXTRA_HEAD = '';
-
-sub T2H_DEFAULT_print_page_head
-{
- my $fh = shift;
- my $longtitle = "$T2H_THISDOC{title}: $T2H_NAME{This}";
- print $fh <<EOT;
-<HTML>
-$T2H_DOCTYPE
-<!-- Created on $T2H_TODAY by $THISPROG -->
-<!--
-$T2H_AUTHORS
--->
-<HEAD>
-<TITLE>$longtitle</TITLE>
-
-<META NAME="description" CONTENT="$longtitle">
-<META NAME="keywords" CONTENT="$longtitle">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="$THISPROG">
-$T2H_EXTRA_HEAD
-</HEAD>
-
-<BODY $T2H_BODYTEXT>
-$T2H_AFTER_BODY_OPEN
-EOT
-}
-
-sub T2H_DEFAULT_print_page_foot
-{
- my $fh = shift;
- print $fh <<EOT;
-<BR>
-<FONT SIZE="-1">
-This document was generated
-$T2H_ADDRESS
-using <A HREF="$T2H_HOMEPAGE"><I>texi2html</I></A>
-$T2H_PRE_BODY_CLOSE
-</BODY>
-</HTML>
-EOT
-}
-
-###################################################################
-# Layout of navigation panel
-
-# if this is set, then a vertical navigation panel is used
-$T2H_VERTICAL_HEAD_NAVIGATION = 0;
-sub T2H_DEFAULT_print_head_navigation
-{
- my $fh = shift;
- if ($T2H_VERTICAL_HEAD_NAVIGATION)
- {
- print $fh <<EOT;
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
-<TR VALIGN="TOP">
-<TD ALIGN="LEFT">
-EOT
- }
- &$T2H_print_navigation($fh, $T2H_VERTICAL_HEAD_NAVIGATION);
- if ($T2H_VERTICAL_HEAD_NAVIGATION)
- {
- print $fh <<EOT;
-</TD>
-<TD ALIGN="LEFT">
-EOT
- }
- elsif ($T2H_SPLIT eq 'section')
- {
- print $fh "<HR SIZE=1>\n";
- }
-}
-
-# Specifies the minimum page length required before a navigation panel
-# is placed at the bottom of a page (the default is that of latex2html)
-# T2H_THIS_WORDS_IN_PAGE holds number of words of current page
-$T2H_WORDS_IN_PAGE = 300;
-sub T2H_DEFAULT_print_foot_navigation
-{
- my $fh = shift;
- my $nwords = shift;
- if ($T2H_VERTICAL_HEAD_NAVIGATION)
- {
- print $fh <<EOT;
-</TD>
-</TR>
-</TABLE>
-EOT
- }
- print $fh "<HR SIZE=1>\n";
- &$T2H_print_navigation($fh) if ($nwords >= $T2H_WORDS_IN_PAGE)
-}
-
-######################################################################
-# navigation panel
-#
-# specify in this array which "buttons" should appear in which order
-# in the navigation panel for sections; use ' ' for empty buttons (space)
-@T2H_SECTION_BUTTONS =
- (
- 'Back', 'Forward', ' ', 'FastBack', 'Up', 'FastForward',
- ' ', ' ', ' ', ' ',
- 'Top', 'Contents', 'Index', 'About',
- );
-
-# buttons for misc stuff
-@T2H_MISC_BUTTONS = ('Top', 'Contents', 'Index', 'About');
-
-# insert here name of icon images for buttons
-# Icons are used, if $T2H_ICONS and resp. value are set
-%T2H_ACTIVE_ICONS =
- (
- 'Top', '',
- 'Contents', '',
- 'Overview', '',
- 'Index', '',
- 'Back', '',
- 'FastBack', '',
- 'Prev', '',
- 'Up', '',
- 'Next', '',
- 'Forward', '',
- 'FastForward', '',
- 'About' , '',
- 'First', '',
- 'Last', '',
- ' ', ''
- );
-
-# insert here name of icon images for these, if button is inactive
-%T2H_PASSIVE_ICONS =
- (
- 'Top', '',
- 'Contents', '',
- 'Overview', '',
- 'Index', '',
- 'Back', '',
- 'FastBack', '',
- 'Prev', '',
- 'Up', '',
- 'Next', '',
- 'Forward', '',
- 'FastForward', '',
- 'About', '',
- 'First', '',
- 'Last', '',
- );
-
-# how to create IMG tag
-sub T2H_DEFAULT_button_icon_img
-{
- my $button = shift;
- my $icon = shift;
- my $name = shift;
- return qq{<IMG SRC="$icon" BORDER="0" ALT="$button: $name" ALIGN="MIDDLE">};
-}
-
-# Names of text as alternative for icons
-%T2H_NAVIGATION_TEXT =
- (
- 'Top', 'Top',
- 'Contents', 'Contents',
- 'Overview', 'Overview',
- 'Index', 'Index',
- ' ', ' &nbsp; ',
- 'Back', ' &lt; ',
- 'FastBack', ' &lt;&lt; ',
- 'Prev', 'Prev',
- 'Up', ' Up ',
- 'Next', 'Next',
- 'Forward', ' &gt; ',
- 'FastForward', ' &gt;&gt; ',
- 'About', ' ? ',
- 'First', ' |&lt; ',
- 'Last', ' &gt;| '
- );
-
-sub T2H_DEFAULT_print_navigation
-{
- my $fh = shift;
- my $vertical = shift;
- my $spacing = 1;
- print $fh "<TABLE CELLPADDING=$spacing CELLSPACING=$spacing BORDER=0>\n";
-
- print $fh "<TR>" unless $vertical;
- for $button (@$T2H_BUTTONS)
- {
- print $fh qq{<TR VALIGN="TOP" ALIGN="LEFT">\n} if $vertical;
- print $fh qq{<TD VALIGN="MIDDLE" ALIGN="LEFT">};
-
- if (ref($button) eq 'CODE')
- {
- &$button($fh, $vertical);
- }
- elsif ($button eq ' ')
- { # handle space button
- print $fh
- $T2H_ICONS && $T2H_ACTIVE_ICONS{' '} ?
- &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{' '}) :
- $T2H_NAVIGATION_TEXT{' '};
- next;
- }
- elsif ($T2H_HREF{$button})
- { # button is active
- print $fh
- $T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ? # use icon ?
- t2h_anchor('', $T2H_HREF{$button}, # yes
- &$T2H_button_icon_img($button,
- $T2H_ACTIVE_ICONS{$button},
- $T2H_NAME{$button}))
- : # use text
- "[" .
- t2h_anchor('', $T2H_HREF{$button}, $T2H_NAVIGATION_TEXT{$button}) .
- "]";
- }
- else
- { # button is passive
- print $fh
- $T2H_ICONS && $T2H_PASSIVE_ICONS{$button} ?
- &$T2H_button_icon_img($button,
- $T2H_PASSIVE_ICONS{$button},
- $T2H_NAME{$button}) :
-
- "[" . $T2H_NAVIGATION_TEXT{$button} . "]";
- }
- print $fh "</TD>\n";
- print $fh "</TR>\n" if $vertical;
- }
- print $fh "</TR>" unless $vertical;
- print $fh "</TABLE>\n";
-}
-
-######################################################################
-# Frames: this is from "Richard Y. Kim" <ryk@coho.net>
-# Should be improved to be more conforming to other _print* functions
-
-sub T2H_DEFAULT_print_frame
-{
- my $fh = shift;
- print $fh <<EOT;
-<HTML>
-<HEAD><TITLE>$T2H_THISDOC{title}</TITLE></HEAD>
-<FRAMESET cols="140,*">
- <FRAME name=toc src="$docu_toc_frame_file">
- <FRAME name=main src="$docu_doc">
-</FRAMESET>
-</HTML>
-EOT
-}
-
-sub T2H_DEFAULT_print_toc_frame
-{
- my $fh = shift;
- &$T2H_print_page_head($fh);
- print $fh <<EOT;
-<H2>Content</H2>
-EOT
- print $fh map {s/HREF=/target=\"main\" HREF=/; $_;} @stoc_lines;
- print $fh "</BODY></HTML>\n";
-}
-
-######################################################################
-# About page
-#
-
-# T2H_PRE_ABOUT might be a function
-$T2H_PRE_ABOUT = <<EOT;
-This document was generated $T2H_ADDRESS
-using <A HREF="$T2H_HOMEPAGE"><I>texi2html</I></A>
-<P></P>
-EOT
-$T2H_AFTER_ABOUT = '';
-
-sub T2H_DEFAULT_about_body
-{
- my $about;
- if (ref($T2H_PRE_ABOUT) eq 'CODE')
- {
- $about = &$T2H_PRE_ABOUT();
- }
- else
- {
- $about = $T2H_PRE_ABOUT;
- }
- $about .= <<EOT;
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-EOT
-
- for $button (@T2H_SECTION_BUTTONS)
- {
- next if $button eq ' ' || ref($button) eq 'CODE';
- $about .= <<EOT;
-<TR>
-<TD ALIGN="CENTER">
-EOT
- $about .=
- ($T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ?
- &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{$button}) :
- " [" . $T2H_NAVIGATION_TEXT{$button} . "] ");
- $about .= <<EOT;
-</TD>
-<TD ALIGN="CENTER">
-$button
-</TD>
-<TD>
-$T2H_BUTTONS_GOTO{$button}
-</TD>
-<TD>
-$T2H_BUTTONS_EXAMPLE{$button}
-</TD>
-</TR>
-EOT
- }
-
- $about .= <<EOT;
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
-the following structure:
-<UL>
-<LI> 1. Section One </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-$T2H_AFTER_ABOUT
-EOT
- return $about;
-}
-
-
-%T2H_BUTTONS_GOTO =
- (
- 'Top', 'cover (top) of document',
- 'Contents', 'table of contents',
- 'Overview', 'short table of contents',
- 'Index', 'concept index',
- 'Back', 'previous section in reading order',
- 'FastBack', 'previous or up-and-previous section ',
- 'Prev', 'previous section same level',
- 'Up', 'up section',
- 'Next', 'next section same level',
- 'Forward', 'next section in reading order',
- 'FastForward', 'next or up-and-next section',
- 'About' , 'this page',
- 'First', 'first section in reading order',
- 'Last', 'last section in reading order',
- );
-
-%T2H_BUTTONS_EXAMPLE =
-(
- 'Top', ' &nbsp; ',
- 'Contents', ' &nbsp; ',
- 'Overview', ' &nbsp; ',
- 'Index', ' &nbsp; ',
- 'Back', '1.2.2',
- 'FastBack', '1.1',
- 'Prev', '1.2.2',
- 'Up', '1.2',
- 'Next', '1.2.4',
- 'Forward', '1.2.4',
- 'FastForward', '1.3',
- 'About', ' &nbsp; ',
- 'First', '1.',
- 'Last', '1.2.4',
-);
-
-
-######################################################################
-# from here on, its l2h init stuff
-#
-
-## initialization for latex2html as for Singular manual generation
-## obachman 3/99
-
-#
-# Options controlling Titles, File-Names, Tracing and Sectioning
-#
-$TITLE = '';
-
-$SHORTEXTN = 0;
-
-$LONG_TITLES = 0;
-
-$DESTDIR = ''; # should be overwritten by cmd-line argument
-
-$NO_SUBDIR = 0;# should be overwritten by cmd-line argument
-
-$PREFIX = ''; # should be overwritten by cmd-line argument
-
-$AUTO_PREFIX = 0; # this is needed, so that prefix settings are used
-
-$AUTO_LINK = 0;
-
-$SPLIT = 0;
-
-$MAX_LINK_DEPTH = 0;
-
-$TMP = ''; # should be overwritten by cmd-line argument
-
-$DEBUG = 0;
-
-$VERBOSE = 1;
-
-#
-# Options controlling Extensions and Special Features
-#
-$HTML_VERSION = "3.2";
-
-$TEXDEFS = 1; # we absolutely need that
-
-$EXTERNAL_FILE = '';
-
-$SCALABLE_FONTS = 1;
-
-$NO_SIMPLE_MATH = 1;
-
-$LOCAL_ICONS = 1;
-
-$SHORT_INDEX = 0;
-
-$NO_FOOTNODE = 1;
-
-$ADDRESS = '';
-
-$INFO = '';
-
-#
-# Switches controlling Image Generation
-#
-$ASCII_MODE = 0;
-
-$NOLATEX = 0;
-
-$EXTERNAL_IMAGES = 0;
-
-$PS_IMAGES = 0;
-
-$NO_IMAGES = 0;
-
-$IMAGES_ONLY = 0;
-
-$REUSE = 2;
-
-$ANTI_ALIAS = 1;
-
-$ANTI_ALIAS_TEXT = 1;
-
-#
-#Switches controlling Navigation Panels
-#
-$NO_NAVIGATION = 1;
-$ADDRESS = '';
-$INFO = 0; # 0 = do not make a "About this document..." section
-
-#
-#Switches for Linking to other documents
-#
-# actuall -- we don't care
-
-$MAX_SPLIT_DEPTH = 0; # Stop making separate files at this depth
-
-$MAX_LINK_DEPTH = 0; # Stop showing child nodes at this depth
-
-$NOLATEX = 0; # 1 = do not pass unknown environments to Latex
-
-$EXTERNAL_IMAGES = 0; # 1 = leave the images outside the document
-
-$ASCII_MODE = 0; # 1 = do not use any icons or internal images
-
-# 1 = use links to external postscript images rather than inlined bitmap
-# images.
-$PS_IMAGES = 0;
-$SHOW_SECTION_NUMBERS = 0;
-
-### Other global variables ###############################################
-$CHILDLINE = "";
-
-# This is the line width measured in pixels and it is used to right justify
-# equations and equation arrays;
-$LINE_WIDTH = 500;
-
-# Used in conjunction with AUTO_NAVIGATION
-$WORDS_IN_PAGE = 300;
-
-# Affects ONLY the way accents are processed
-$default_language = 'english';
-
-# The value of this variable determines how many words to use in each
-# title that is added to the navigation panel (see below)
-#
-$WORDS_IN_NAVIGATION_PANEL_TITLES = 0;
-
-# This number will determine the size of the equations, special characters,
-# and anything which will be converted into an inlined image
-# *except* "image generating environments" such as "figure", "table"
-# or "minipage".
-# Effective values are those greater than 0.
-# Sensible values are between 0.1 - 4.
-$MATH_SCALE_FACTOR = 1.5;
-
-# This number will determine the size of
-# image generating environments such as "figure", "table" or "minipage".
-# Effective values are those greater than 0.
-# Sensible values are between 0.1 - 4.
-$FIGURE_SCALE_FACTOR = 1.6;
-
-
-# If both of the following two variables are set then the "Up" button
-# of the navigation panel in the first node/page of a converted document
-# will point to $EXTERNAL_UP_LINK. $EXTERNAL_UP_TITLE should be set
-# to some text which describes this external link.
-$EXTERNAL_UP_LINK = "";
-$EXTERNAL_UP_TITLE = "";
-
-# If this is set then the resulting HTML will look marginally better if viewed
-# with Netscape.
-$NETSCAPE_HTML = 1;
-
-# Valid paper sizes are "letter", "legal", "a4","a3","a2" and "a0"
-# Paper sizes has no effect other than in the time it takes to create inlined
-# images and in whether large images can be created at all ie
-# - larger paper sizes *MAY* help with large image problems
-# - smaller paper sizes are quicker to handle
-$PAPERSIZE = "a4";
-
-# Replace "english" with another language in order to tell LaTeX2HTML that you
-# want some generated section titles (eg "Table of Contents" or "References")
-# to appear in a different language. Currently only "english" and "french"
-# is supported but it is very easy to add your own. See the example in the
-# file "latex2html.config"
-$TITLES_LANGUAGE = "english";
-
-1; # This must be the last non-comment line
-
-# End File texi2html.init
-######################################################################
-
-
-require "$ENV{T2H_HOME}/texi2html.init"
- if ($0 =~ /\.pl$/ &&
- -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init");
-
-#+++############################################################################
-# #
-# Initialization #
-# Pasted content of File $(srcdir)/MySimple.pm: Command-line processing #
-# #
-#---############################################################################
-
-# leave this within comments, and keep the require statement
-# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init
-# exists.
-
-#
-package Getopt::MySimple;
-
-# Name:
-# Getopt::MySimple.
-#
-# Documentation:
-# POD-style (incomplete) documentation is in file MySimple.pod
-#
-# Tabs:
-# 4 spaces || die.
-#
-# Author:
-# Ron Savage rpsavage@ozemail.com.au.
-# 1.00 19-Aug-97 Initial version.
-# 1.10 13-Oct-97 Add arrays of switches (eg '=s@').
-# 1.20 3-Dec-97 Add 'Help' on a per-switch basis.
-# 1.30 11-Dec-97 Change 'Help' to 'verbose'. Make all hash keys lowercase.
-# 1.40 10-Nov-98 Change width of help report. Restructure tests.
-# 1-Jul-00 Modifications for Texi2html
-
-# --------------------------------------------------------------------------
-# Locally modified by obachman (Display type instead of env, order by cmp)
-# $Id$
-
-# use strict;
-# no strict 'refs';
-
-use vars qw(@EXPORT @EXPORT_OK @ISA);
-use vars qw($fieldWidth $opt $VERSION);
-
-use Exporter();
-use Getopt::Long;
-
-@ISA = qw(Exporter);
-@EXPORT = qw();
-@EXPORT_OK = qw($opt); # An alias for $self -> {'opt'}.
-
-# --------------------------------------------------------------------------
-
-$fieldWidth = 20;
-$VERSION = '1.41';
-
-# --------------------------------------------------------------------------
-
-sub byOrder
-{
- my($self) = @_;
-
- return uc($a) cmp (uc($b));
-}
-
-# --------------------------------------------------------------------------
-
-sub dumpOptions
-{
- my($self) = @_;
-
- print 'Option', ' ' x ($fieldWidth - length('Option') ), "Value\n";
-
- for (sort byOrder keys(%{$self -> {'opt'} }) )
- {
- print "-$_", ' ' x ($fieldWidth - (1 + length) ), "${$self->{'opt'} }{$_}\n";
- }
-
- print "\n";
-
-} # End of dumpOptions.
-
-# --------------------------------------------------------------------------
-# Return:
-# 0 -> Error.
-# 1 -> Ok.
-
-sub getOptions
-{
- push(@_, 0) if ($#_ == 2); # Default for $ignoreCase is 0.
- push(@_, 1) if ($#_ == 3); # Default for $helpThenExit is 1.
-
- my($self, $default, $helpText, $versionText,
- $helpThenExit, $versionThenExit, $ignoreCase) = @_;
-
- $helpThenExit = 1 unless (defined($helpThenExit));
- $versionThenExit = 1 unless (defined($versionThenExit));
- $ignoreCase = 0 unless (defined($ignoreCase));
-
- $self -> {'default'} = $default;
- $self -> {'helpText'} = $helpText;
- $self -> {'versionText'} = $versionText;
- $Getopt::Long::ignorecase = $ignoreCase;
-
- unless (defined($self -> {'default'}{'help'}))
- {
- $self -> {'default'}{'help'} =
- {
- type => ':i',
- default => '',
- linkage => sub {$self->helpOptions($_[1]); exit (0) if $helpThenExit;},
- verbose => "print help and exit"
- };
- }
-
- unless (defined($self -> {'default'}{'version'}))
- {
- $self -> {'default'}{'version'} =
- {
- type => '',
- default => '',
- linkage => sub {print $self->{'versionText'}; exit (0) if versionTheExit;},
- verbose => "print version and exit"
- };
- }
-
- for (keys(%{$self -> {'default'} }) )
- {
- my $type = ${$self -> {'default'} }{$_}{'type'};
- push(@{$self -> {'type'} }, "$_$type");
- $self->{'opt'}->{$_} = ${$self -> {'default'} }{$_}{'linkage'}
- if ${$self -> {'default'} }{$_}{'linkage'};
- }
-
- my($result) = &GetOptions($self -> {'opt'}, @{$self -> {'type'} });
-
- return $result unless $result;
-
- for (keys(%{$self -> {'default'} }) )
- {
- if (! defined(${$self -> {'opt'} }{$_})) #{
- {
- ${$self -> {'opt'} }{$_} = ${$self -> {'default'} }{$_}{'default'};
- }
- }
-
- $result;
-} # End of getOptions.
-
-# --------------------------------------------------------------------------
-
-sub helpOptions
-{
- my($self) = shift;
- my($noHelp) = shift;
- $noHelp = 0 unless $noHelp;
- my($optwidth, $typewidth, $defaultwidth, $maxlinewidth, $valind, $valwidth)
- = (10, 5, 9, 78, 4, 11);
-
- print "$self->{'helpText'}" if ($self -> {'helpText'});
-
- print ' Option', ' ' x ($optwidth - length('Option') -1 ),
- 'Type', ' ' x ($typewidth - length('Type') + 1),
- 'Default', ' ' x ($defaultwidth - length('Default') ),
- "Description\n";
-
- for (sort byOrder keys(%{$self -> {'default'} }) )
- {
- my($line, $help, $option, $val);
- $option = $_;
- next if ${$self->{'default'} }{$_}{'noHelp'} && ${$self->{'default'} }{$_}{'noHelp'} > $noHelp;
- $line = " -$_ " . ' ' x ($optwidth - (2 + length) ) .
- "${$self->{'default'} }{$_}{'type'} ".
- ' ' x ($typewidth - (1+length(${$self -> {'default'} }{$_}{'type'}) ));
-
- $val = ${$self->{'default'} }{$_}{'linkage'};
- if ($val)
- {
- if (ref($val) eq 'SCALAR')
- {
- $val = $$val;
- }
- else
- {
- $val = '';
- }
- }
- else
- {
- $val = ${$self->{'default'} }{$_}{'default'};
- }
- $line .= "$val ";
- $line .= ' ' x ($optwidth + $typewidth + $defaultwidth + 1 - length($line));
-
- if (defined(${$self -> {'default'} }{$_}{'verbose'}) &&
- ${$self -> {'default'} }{$_}{'verbose'} ne '')
- {
- $help = "${$self->{'default'} }{$_}{'verbose'}";
- }
- else
- {
- $help = ' ';
- }
- if ((length("$line") + length($help)) < $maxlinewidth)
- {
- print $line , $help, "\n";
- }
- else
- {
- print $line, "\n", ' ' x $valind, $help, "\n";
- }
- for $val (sort byOrder keys(%{${$self->{'default'}}{$option}{'values'}}))
- {
- print ' ' x ($valind + 2);
- print $val, ' ', ' ' x ($valwidth - length($val) - 2);
- print ${$self->{'default'}}{$option}{'values'}{$val}, "\n";
- }
- }
-
- print <<EOT;
-Note: 'Options' may be abbreviated. 'Type' specifications mean:
- <none>| ! no argument: variable is set to 1 on -foo (or, to 0 on -nofoo)
- =s | :s mandatory (or, optional) string argument
- =i | :i mandatory (or, optional) integer argument
-EOT
-} # End of helpOptions.
-
-#-------------------------------------------------------------------
-
-sub new
-{
- my($class) = @_;
- my($self) = {};
- $self -> {'default'} = {};
- $self -> {'helpText'} = '';
- $self -> {'opt'} = {};
- $opt = $self -> {'opt'}; # An alias for $self -> {'opt'}.
- $self -> {'type'} = ();
-
- return bless $self, $class;
-
-} # End of new.
-
-# --------------------------------------------------------------------------
-
-1;
-
-# End MySimple.pm
-
-require "$ENV{T2H_HOME}/MySimple.pm"
- if ($0 =~ /\.pl$/ &&
- -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init");
-
-package main;
-
-#+++############################################################################
-# #
-# Constants #
-# #
-#---############################################################################
-
-$DEBUG_TOC = 1;
-$DEBUG_INDEX = 2;
-$DEBUG_BIB = 4;
-$DEBUG_GLOSS = 8;
-$DEBUG_DEF = 16;
-$DEBUG_HTML = 32;
-$DEBUG_USER = 64;
-$DEBUG_L2H = 128;
-
-
-$BIBRE = '\[[\w\/-]+\]'; # RE for a bibliography reference
-$FILERE = '[\/\w.+-]+'; # RE for a file name
-$VARRE = '[^\s\{\}]+'; # RE for a variable name
-$NODERE = '[^,:]+'; # RE for a node name
-$NODESRE = '[^:]+'; # RE for a list of node names
-
-$ERROR = "***"; # prefix for errors
-$WARN = "**"; # prefix for warnings
-
- # program home page
-$PROTECTTAG = "_ThisIsProtected_"; # tag to recognize protected sections
-
-$CHAPTEREND = "<!-- End chapter -->\n"; # to know where a chpater ends
-$SECTIONEND = "<!-- End section -->\n"; # to know where section ends
-$TOPEND = "<!-- End top -->\n"; # to know where top ends
-
-
-
-#
-# pre-defined indices
-#
-$index_properties =
-{
- 'c' => { name => 'cp'},
- 'f' => { name => 'fn', code => 1},
- 'v' => { name => 'vr', code => 1},
- 'k' => { name => 'ky', code => 1},
- 'p' => { name => 'pg', code => 1},
- 't' => { name => 'tp', code => 1}
-};
-
-
-%predefined_index = (
- 'cp', 'c',
- 'fn', 'f',
- 'vr', 'v',
- 'ky', 'k',
- 'pg', 'p',
- 'tp', 't',
- );
-
-#
-# valid indices
-#
-%valid_index = (
- 'c', 1,
- 'f', 1,
- 'v', 1,
- 'k', 1,
- 'p', 1,
- 't', 1,
- );
-
-#
-# texinfo section names to level
-#
-%sec2level = (
- 'top', 0,
- 'chapter', 1,
- 'unnumbered', 1,
- 'majorheading', 1,
- 'chapheading', 1,
- 'appendix', 1,
- 'section', 2,
- 'unnumberedsec', 2,
- 'heading', 2,
- 'appendixsec', 2,
- 'appendixsection', 2,
- 'subsection', 3,
- 'unnumberedsubsec', 3,
- 'subheading', 3,
- 'appendixsubsec', 3,
- 'subsubsection', 4,
- 'unnumberedsubsubsec', 4,
- 'subsubheading', 4,
- 'appendixsubsubsec', 4,
- );
-
-#
-# accent map, TeX command to ISO name
-#
-%accent_map = (
- '"', 'uml',
- '~', 'tilde',
- '^', 'circ',
- '`', 'grave',
- '\'', 'acute',
- );
-
-#
-# texinfo "simple things" (@foo) to HTML ones
-#
-%simple_map = (
- # cf. makeinfo.c
- "*", "<BR>", # HTML+
- " ", " ",
- "\t", " ",
- "-", "&#173;", # soft hyphen
- "\n", "\n",
- "|", "",
- 'tab', '<\/TD><TD>',
- # spacing commands
- ":", "",
- "!", "!",
- "?", "?",
- ".", ".",
- "-", "",
- );
-
-#
-# texinfo "things" (@foo{}) to HTML ones
-#
-%things_map = (
- 'TeX', 'TeX',
- 'br', '<P>', # paragraph break
- 'bullet', '*',
- 'copyright', '(C)',
- 'dots', '<small>...<\/small>',
- 'enddots', '<small>....<\/small>',
- 'equiv', '==',
- 'error', 'error-->',
- 'expansion', '==>',
- 'minus', '-',
- 'point', '-!-',
- 'print', '-|',
- 'result', '=>',
- 'today', $T2H_TODAY,
- 'aa', '&aring;',
- 'AA', '&Aring;',
- 'ae', '&aelig;',
- 'oe', '&#156;',
- 'AE', '&AElig;',
- 'OE', '&#140;',
- 'o', '&oslash;',
- 'O', '&Oslash;',
- 'ss', '&szlig;',
- 'l', '\/l',
- 'L', '\/L',
- 'exclamdown', '&iexcl;',
- 'questiondown', '&iquest;',
- 'pounds', '&pound;'
- );
-
-#
-# texinfo styles (@foo{bar}) to HTML ones
-#
-%style_map = (
- 'acronym', '&do_acronym',
- 'asis', '',
- 'b', 'B',
- 'cite', 'CITE',
- 'code', 'CODE',
- 'command', 'CODE',
- 'ctrl', '&do_ctrl', # special case
- 'dfn', 'EM', # DFN tag is illegal in the standard
- 'dmn', '', # useless
- 'email', '&do_email', # insert a clickable email address
- 'emph', 'EM',
- 'env', 'CODE',
- 'file', '"TT', # will put quotes, cf. &apply_style
- 'i', 'I',
- 'kbd', 'KBD',
- 'key', 'KBD',
- 'math', '&do_math',
- 'option', '"SAMP', # will put quotes, cf. &apply_style
- 'r', '', # unsupported
- 'samp', '"SAMP', # will put quotes, cf. &apply_style
- 'sc', '&do_sc', # special case
- 'strong', 'STRONG',
- 't', 'TT',
- 'titlefont', '', # useless
- 'uref', '&do_uref', # insert a clickable URL
- 'url', '&do_url', # insert a clickable URL
- 'var', 'VAR',
- 'w', '', # unsupported
- 'H', '&do_accent',
- 'dotaccent', '&do_accent',
- 'ringaccent','&do_accent',
- 'tieaccent', '&do_accent',
- 'u','&do_accent',
- 'ubaraccent','&do_accent',
- 'udotaccent','&do_accent',
- 'v', '&do_accent',
- ',', '&do_accent',
- 'dotless', '&do_accent'
- );
-
-#
-# texinfo format (@foo/@end foo) to HTML ones
-#
-%format_map = (
- 'quotation', 'BLOCKQUOTE',
- # lists
- 'itemize', 'UL',
- 'enumerate', 'OL',
- # poorly supported
- 'flushleft', 'PRE',
- 'flushright', 'PRE',
- );
-
-#
-# an eval of these $complex_format_map->{what}->[0] yields beginning
-# an eval of these $complex_format_map->{what}->[1] yieleds end
-$complex_format_map =
-{
- example =>
- [
- q{"<TABLE><tr>$T2H_EXAMPLE_INDENT_CELL<td class=example><pre>"},
- q{'</pre></td></tr></table>'}
- ],
- smallexample =>
- [
- q{"<TABLE><tr>$T2H_SMALL_EXAMPLE_INDENT_CELL<td class=smallexample><FONT SIZE=$T2H_SMALL_FONT_SIZE><pre>"},
- q{'</FONT></pre></td></tr></table>'}
- ],
- display =>
- [
- q{"<TABLE><tr>$T2H_EXAMPLE_INDENT_CELL<td class=display><pre " . 'style="font-family: serif">'},
- q{'</pre></td></tr></table>'}
- ],
- smalldisplay =>
- [
- q{"<TABLE><tr>$T2H_SMALL_EXAMPLE_INDENT_CELL<td class=smalldisplay><FONT SIZE=$T2H_SMALL_FONT_SIZE><pre " . 'style="font-family: serif">'},
- q{'</pre></FONT></td></tr></table>'}
- ]
-};
-
-$complex_format_map->{lisp} = $complex_format_map->{example};
-$complex_format_map->{smalllisp} = $complex_format_map->{smallexample};
-$complex_format_map->{format} = $complex_format_map->{display};
-$complex_format_map->{smallformat} = $complex_format_map->{smalldisplay};
-
-#
-# texinfo definition shortcuts to real ones
-#
-%def_map = (
- # basic commands
- 'deffn', 0,
- 'defvr', 0,
- 'deftypefn', 0,
- 'deftypevr', 0,
- 'defcv', 0,
- 'defop', 0,
- 'deftp', 0,
- # basic x commands
- 'deffnx', 0,
- 'defvrx', 0,
- 'deftypefnx', 0,
- 'deftypevrx', 0,
- 'defcvx', 0,
- 'defopx', 0,
- 'deftpx', 0,
- # shortcuts
- 'defun', 'deffn Function',
- 'defmac', 'deffn Macro',
- 'defspec', 'deffn {Special Form}',
- 'defvar', 'defvr Variable',
- 'defopt', 'defvr {User Option}',
- 'deftypefun', 'deftypefn Function',
- 'deftypevar', 'deftypevr Variable',
- 'defivar', 'defcv {Instance Variable}',
- 'deftypeivar', 'defcv {Instance Variable}', # NEW: FIXME
- 'defmethod', 'defop Method',
- 'deftypemethod', 'defop Method', # NEW:FIXME
- # x shortcuts
- 'defunx', 'deffnx Function',
- 'defmacx', 'deffnx Macro',
- 'defspecx', 'deffnx {Special Form}',
- 'defvarx', 'defvrx Variable',
- 'defoptx', 'defvrx {User Option}',
- 'deftypefunx', 'deftypefnx Function',
- 'deftypevarx', 'deftypevrx Variable',
- 'defivarx', 'defcvx {Instance Variable}',
- 'defmethodx', 'defopx Method',
- );
-
-#
-# things to skip
-#
-%to_skip = (
- # comments
- 'c', 1,
- 'comment', 1,
- 'ifnotinfo', 1,
- 'ifnottex', 1,
- 'ifhtml', 1,
- 'end ifhtml', 1,
- 'end ifnotinfo', 1,
- 'end ifnottex', 1,
- # useless
- 'detailmenu', 1,
- 'direntry', 1,
- 'contents', 1,
- 'shortcontents', 1,
- 'summarycontents', 1,
- 'footnotestyle', 1,
- 'end ifclear', 1,
- 'end ifset', 1,
- 'titlepage', 1,
- 'end titlepage', 1,
- # unsupported commands (formatting)
- 'afourpaper', 1,
- 'cropmarks', 1,
- 'finalout', 1,
- 'headings', 1,
- 'sp', 1,
- 'need', 1,
- 'page', 1,
- 'setchapternewpage', 1,
- 'everyheading', 1,
- 'everyfooting', 1,
- 'evenheading', 1,
- 'evenfooting', 1,
- 'oddheading', 1,
- 'oddfooting', 1,
- 'smallbook', 1,
- 'vskip', 1,
- 'filbreak', 1,
- 'paragraphindent', 1,
- # unsupported formats
- 'cartouche', 1,
- 'end cartouche', 1,
- 'group', 1,
- 'end group', 1,
- );
-
-#+++############################################################################
-# #
-# Argument parsing, initialisation #
-# #
-#---############################################################################
-
-#
-# flush stdout and stderr after every write
-#
-select(STDERR);
-$| = 1;
-select(STDOUT);
-$| = 1;
-
-
-%value = (); # hold texinfo variables, see also -D
-$use_bibliography = 1;
-$use_acc = 1;
-
-#
-# called on -init-file
-sub LoadInitFile
-{
- my $init_file = shift;
- # second argument is value of options
- $init_file = shift;
- if (-f $init_file)
- {
- print "# reading initialization file from $init_file\n"
- if ($T2H_VERBOSE);
- require($init_file);
- }
- else
- {
- print "$ERROR Error: can't read init file $int_file\n";
- $init_file = '';
- }
-}
-
-#
-# called on -lang
-sub SetDocumentLanguage
-{
- my $lang = shift;
- if (! exists($T2H_WORDS->{$lang}))
- {
- warn "$ERROR: Language specs for '$lang' do not exists. Reverting to '" .
- ($T2H_LANG ? T2H_LANG : "en") . "'\n";
- }
- else
- {
- print "# using '$lang' as document language\n" if ($T2H_VERBOSE);
- $T2H_LANG = $lang;
- }
-}
-
-##
-## obsolete cmd line options
-##
-$T2H_OBSOLETE_OPTIONS -> {'no-section_navigation'} =
-{
- type => '!',
- linkage => sub {$main::T2H_SECTION_NAVIGATION = 0;},
- verbose => 'obsolete, use -nosec_nav',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {use_acc} =
-{
- type => '!',
- linkage => \$use_acc,
- verbose => 'obsolete',
- noHelp => 2
-};
-$T2H_OBSOLETE_OPTIONS -> {expandinfo} =
-{
- type => '!',
- linkage => sub {$main::T2H_EXPAND = 'info';},
- verbose => 'obsolete, use "-expand info" instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {expandtex} =
-{
- type => '!',
- linkage => sub {$main::T2H_EXPAND = 'tex';},
- verbose => 'obsolete, use "-expand tex" instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {monolithic} =
-{
- type => '!',
- linkage => sub {$main::T2H_SPLIT = '';},
- verbose => 'obsolete, use "-split no" instead',
- noHelp => 2
-};
-$T2H_OBSOLETE_OPTIONS -> {split_node} =
-{
- type => '!',
- linkage => sub{$main::T2H_SPLIT = 'section';},
- verbose => 'obsolete, use "-split section" instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {split_chapter} =
-{
- type => '!',
- linkage => sub{$main::T2H_SPLIT = 'chapter';},
- verbose => 'obsolete, use "-split chapter" instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {no_verbose} =
-{
- type => '!',
- linkage => sub {$main::T2H_VERBOSE = 0;},
- verbose => 'obsolete, use -noverbose instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {output_file} =
-{
- type => '=s',
- linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';},
- verbose => 'obsolete, use -out_file instead',
- noHelp => 2
-};
-
-$T2H_OBSOLETE_OPTIONS -> {section_navigation} =
-{
- type => '!',
- linkage => \$T2H_SECTION_NAVIGATION,
- verbose => 'obsolete, use -sec_nav instead',
- noHelp => 2,
-};
-
-$T2H_OBSOLETE_OPTIONS -> {verbose} =
-{
- type => '!',
- linkage => \$T2H_VERBOSE,
- verbose => 'obsolete, use -Verbose instead',
- noHelp => 2
-};
-
-# read initialzation from $sysconfdir/texi2htmlrc or $HOME/.texi2htmlrc
-my $home = $ENV{HOME};
-defined($home) or $home = '';
-foreach $i ('/usr/local/etc/texi2htmlrc', "$home/.texi2htmlrc") {
- if (-f $i) {
- print "# reading initialization file from $i\n"
- if ($T2H_VERBOSE);
- require($i);
- }
-}
-
-
-#+++############################################################################
-# #
-# parse command-line options
-# #
-#---############################################################################
-$T2H_USAGE_TEXT = <<EOT;
-Usage: texi2html [OPTIONS] TEXINFO-FILE
-Translates Texinfo source documentation to HTML.
-EOT
-$T2H_FAILURE_TEXT = <<EOT;
-Try 'texi2html -help' for usage instructions.
-EOT
-$options = new Getopt::MySimple;
-
-# some older version of GetOpt::Long don't have
-# Getopt::Long::Configure("pass_through")
-eval {Getopt::Long::Configure("pass_through");};
-$Configure_failed = $@ && <<EOT;
-**WARNING: Parsing of obsolete command-line options could have failed.
- Consider to use only documented command-line options (run
- 'texi2html -help 2' for a complete list) or upgrade to perl
- version 5.005 or higher.
-EOT
-
-if (! $options->getOptions($T2H_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n"))
-{
- print $Configure_failed if $Configure_failed;
- die $T2H_FAILURE_TEXT;
-}
-
-if (@ARGV > 1)
-{
- eval {Getopt::Long::Configure("no_pass_through");};
- if (! $options->getOptions($T2H_OBSOLETE_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n"))
- {
- print $Configure_failed if $Configure_failed;
- die $T2H_FAILURE_TEXT;
- }
-}
-
-if ($T2H_CHECK) {
- die "Need file to check\n$T2H_FAILURE_TEXT" unless @ARGV > 0;
- &check;
- exit;
-}
-
-#+++############################################################################
-# #
-# evaluation of cmd line options
-# #
-#---############################################################################
-
-if ($T2H_EXPAND eq 'info')
-{
- $to_skip{'ifinfo'} = 1;
- $to_skip{'end ifinfo'} = 1;
-}
-elsif ($T2H_EXPAND eq 'tex')
-{
- $to_skip{'iftex'} = 1;
- $to_skip{'end iftex'} = 1;
-
-}
-
-$T2H_INVISIBLE_MARK = '<IMG SRC="invisible.xbm">' if $T2H_INVISIBLE_MARK eq 'xbm';
-
-#
-# file name buisness
-#
-die "Need exactly one file to translate\n$T2H_FAILURE_TEXT" unless @ARGV == 1;
-$docu = shift(@ARGV);
-if ($docu =~ /.*\//) {
- chop($docu_dir = $&);
- $docu_name = $';
-} else {
- $docu_dir = '.';
- $docu_name = $docu;
-}
-unshift(@T2H_INCLUDE_DIRS, $docu_dir);
-$docu_name =~ s/\.te?x(i|info)?$//; # basename of the document
-$docu_name = $T2H_PREFIX if ($T2H_PREFIX);
-
-# subdir
-if ($T2H_SUBDIR && ! $T2H_OUT)
-{
- $T2H_SUBDIR =~ s|/*$||;
- unless (-d "$T2H_SUBDIR" && -w "$T2H_SUBDIR")
- {
- if ( mkdir($T2H_SUBDIR, oct(755)))
- {
- print "# created directory $T2H_SUBDIR\n" if ($T2H_VERBOSE);
- }
- else
- {
- warn "$ERROR can't create directory $T2H_SUBDIR. Put results into current directory\n";
- $T2H_SUBDIR = '';
- }
- }
-}
-
-if ($T2H_SUBDIR && ! $T2H_OUT)
-{
- $docu_rdir = "$T2H_SUBDIR/";
- print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE);
-}
-else
-{
- if ($T2H_OUT && $T2H_OUT =~ m|(.*)/|)
- {
- $docu_rdir = "$1/";
- print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE);
- }
- else
- {
- print "# putting result files into current directory \n" if ($T2H_VERBOSE);
- $docu_rdir = '';
- }
-}
-
-# extension
-if ($T2H_SHORTEXTN)
-{
- $docu_ext = "htm";
-}
-else
-{
- $docu_ext = "html";
-}
-if ($T2H_TOP_FILE =~ /\..*$/)
-{
- $T2H_TOP_FILE = $`.".$docu_ext";
-}
-
-# result files
-if (! $T2H_OUT && ($T2H_SPLIT =~ /section/i || $T2H_SPLIT =~ /node/i))
-{
- $T2H_SPLIT = 'section';
-}
-elsif (! $T2H_OUT && $T2H_SPLIT =~ /chapter/i)
-{
- $T2H_SPLIT = 'chapter'
-}
-else
-{
- undef $T2H_SPLIT;
-}
-
-$docu_doc = "$docu_name.$docu_ext"; # document's contents
-$docu_doc_file = "$docu_rdir$docu_doc";
-if ($T2H_SPLIT)
-{
- $docu_toc = $T2H_TOC_FILE || "${docu_name}_toc.$docu_ext"; # document's table of contents
- $docu_stoc = "${docu_name}_ovr.$docu_ext"; # document's short toc
- $docu_foot = "${docu_name}_fot.$docu_ext"; # document's footnotes
- $docu_about = "${docu_name}_abt.$docu_ext"; # about this document
- $docu_top = $T2H_TOP_FILE || $docu_doc;
-}
-else
-{
- if ($T2H_OUT)
- {
- $docu_doc = $T2H_OUT;
- $docu_doc =~ s|.*/||;
- }
- $docu_toc = $docu_foot = $docu_stoc = $docu_about = $docu_top = $docu_doc;
-}
-
-$docu_toc_file = "$docu_rdir$docu_toc";
-$docu_stoc_file = "$docu_rdir$docu_stoc";
-$docu_foot_file = "$docu_rdir$docu_foot";
-$docu_about_file = "$docu_rdir$docu_about";
-$docu_top_file = "$docu_rdir$docu_top";
-
-$docu_frame_file = "$docu_rdir${docu_name}_frame.$docu_ext";
-$docu_toc_frame_file = "$docu_rdir${docu_name}_toc_frame.$docu_ext";
-
-#
-# variables
-#
-$value{'html'} = 1; # predefine html (the output format)
-$value{'texi2html'} = $THISVERSION; # predefine texi2html (the translator)
-# _foo: internal to track @foo
-foreach ('_author', '_title', '_subtitle',
- '_settitle', '_setfilename', '_shorttitle') {
- $value{$_} = ''; # prevent -w warnings
-}
-%node2sec = (); # node to section name
-%sec2node = (); # section to node name
-%sec2number = (); # section to number
-%number2sec = (); # number to section
-%idx2node = (); # index keys to node
-%node2href = (); # node to HREF
-%node2next = (); # node to next
-%node2prev = (); # node to prev
-%node2up = (); # node to up
-%bib2href = (); # bibliography reference to HREF
-%gloss2href = (); # glossary term to HREF
-@sections = (); # list of sections
-%tag2pro = (); # protected sections
-
-#
-# initial indexes
-#
-$bib_num = 0;
-$foot_num = 0;
-$gloss_num = 0;
-$idx_num = 0;
-$sec_num = 0;
-$doc_num = 0;
-$html_num = 0;
-
-#
-# can I use ISO8879 characters? (HTML+)
-#
-if ($T2H_USE_ISO) {
- $things_map{'bullet'} = "&bull;";
- $things_map{'copyright'} = "&copy;";
- $things_map{'dots'} = "&hellip;";
- $things_map{'equiv'} = "&equiv;";
- $things_map{'expansion'} = "&rarr;";
- $things_map{'point'} = "&lowast;";
- $things_map{'result'} = "&rArr;";
-}
-
-#
-# read texi2html extensions (if any)
-#
-$extensions = 'texi2html.ext'; # extensions in working directory
-if (-f $extensions) {
- print "# reading extensions from $extensions\n" if $T2H_VERBOSE;
- require($extensions);
-}
-($progdir = $0) =~ s/[^\/]+$//;
-if ($progdir && ($progdir ne './')) {
- $extensions = "${progdir}texi2html.ext"; # extensions in texi2html directory
- if (-f $extensions) {
- print "# reading extensions from $extensions\n" if $T2H_VERBOSE;
- require($extensions);
- }
-}
-
-
-print "# reading from $docu\n" if $T2H_VERBOSE;
-
-#########################################################################
-#
-# latex2html stuff
-#
-# latex2html conversions consist of three stages:
-# 1) ToLatex: Put "latex" code into a latex file
-# 2) ToHtml: Use latex2html to generate corresponding html code and images
-# 3) FromHtml: Extract generated code and images from latex2html run
-#
-
-##########################
-# default settings
-#
-
-# defaults for files and names
-
-sub l2h_Init
-{
- local($root) = @_;
-
- return 0 unless ($root);
-
- $l2h_name = "${root}_l2h";
-
- $l2h_latex_file = "$docu_rdir${l2h_name}.tex";
- $l2h_cache_file = "${docu_rdir}l2h_cache.pm";
- $T2H_L2H_L2H = "latex2html" unless ($T2H_L2H_L2H);
-
- # destination dir -- generated images are put there, should be the same
- # as dir of enclosing html document --
- $l2h_html_file = "$docu_rdir${l2h_name}.html";
- $l2h_prefix = "${l2h_name}_";
- return 1;
-}
-
-
-##########################
-#
-# First stage: Generation of Latex file
-# Initialize with: l2h_InitToLatex
-# Add content with: l2h_ToLatex($text) --> HTML placeholder comment
-# Finish with: l2h_FinishToLatex
-#
-
-$l2h_latex_preample = <<EOT;
-% This document was automatically generated by the l2h extenstion of texi2html
-% DO NOT EDIT !!!
-\\documentclass{article}
-\\usepackage{html}
-\\begin{document}
-EOT
-
-$l2h_latex_closing = <<EOT;
-\\end{document}
-EOT
-
-# return used latex 1, if l2h could be initalized properly, 0 otherwise
-sub l2h_InitToLatex
-{
- %l2h_to_latex = ();
- unless ($T2H_L2H_SKIP)
- {
- unless (open(L2H_LATEX, ">$l2h_latex_file"))
- {
- warn "$ERROR Error l2h: Can't open latex file '$latex_file' for writing\n";
- return 0;
- }
- print "# l2h: use ${l2h_latex_file} as latex file\n" if ($T2H_VERBOSE);
- print L2H_LATEX $l2h_latex_preample;
- }
- # open database for caching
- l2h_InitCache();
- $l2h_latex_count = 0;
- $l2h_to_latex_count = 0;
- $l2h_cached_count = 0;
- return 1;
-}
-
-# print text (1st arg) into latex file (if not already there), return
-# HTML commentary which can be later on replaced by the latex2html
-# generated text
-sub l2h_ToLatex
-{
- my($text) = @_;
- my($count);
-
- $l2h_to_latex_count++;
- $text =~ s/(\s*)$//;
-
- # try whether we can cache it
- my $cached_text = l2h_FromCache($text);
- if ($cached_text)
- {
- $l2h_cached_count++;
- return $cached_text;
- }
-
- # try whether we have text already on things to do
- unless ($count = $l2h_to_latex{$text})
- {
- $count = $l2h_latex_count;
- $l2h_latex_count++;
- $l2h_to_latex{$text} = $count;
- $l2h_to_latex[$count] = $text;
- unless ($T2H_L2H_SKIP)
- {
- print L2H_LATEX "\\begin{rawhtml}\n";
- print L2H_LATEX "<!-- l2h_begin ${l2h_name} ${count} -->\n";
- print L2H_LATEX "\\end{rawhtml}\n";
-
- print L2H_LATEX "$text\n";
-
- print L2H_LATEX "\\begin{rawhtml}\n";
- print L2H_LATEX "<!-- l2h_end ${l2h_name} ${count} -->\n";
- print L2H_LATEX "\\end{rawhtml}\n";
- }
- }
- return "<!-- l2h_replace ${l2h_name} ${count} -->";
-}
-
-# print closing into latex file and close it
-sub l2h_FinishToLatex
-{
- local ($reused);
-
- $reused = $l2h_to_latex_count - $l2h_latex_count - $l2h_cached_count;
- unless ($T2H_L2H_SKIP)
- {
- print L2H_LATEX $l2h_latex_closing;
- close(L2H_LATEX);
- }
- print "# l2h: finished to latex ($l2h_cached_count cached, $reused reused, $l2h_latex_count contents)\n" if ($T2H_VERBOSE);
- unless ($l2h_latex_count)
- {
- l2h_Finish();
- return 0;
- }
- return 1;
-}
-
-###################################
-# Second stage: Use latex2html to generate corresponding html code and images
-#
-# l2h_ToHtml([$l2h_latex_file, [$l2h_html_dir]]):
-# Call latex2html on $l2h_latex_file
-# Put images (prefixed with $l2h_name."_") and html file(s) in $l2h_html_dir
-# Return 1, on success
-# 0, otherwise
-#
-sub l2h_ToHtml
-{
- local($call, $ext, $root, $dotbug);
-
- if ($T2H_L2H_SKIP)
- {
- print "# l2h: skipping latex2html run\n" if ($T2H_VERBOSE);
- return 1;
- }
-
- # Check for dot in directory where dvips will work
- if ($T2H_L2H_TMP)
- {
- if ($T2H_L2H_TMP =~ /\./)
- {
- warn "$ERROR Warning l2h: l2h_tmp dir contains a dot. Use /tmp, instead\n";
- $dotbug = 1;
- }
- }
- else
- {
- if (&getcwd =~ /\./)
- {
- warn "$ERROR Warning l2h: current dir contains a dot. Use /tmp as l2h_tmp dir \n";
- $dotbug = 1;
- }
- }
- # fix it, if necessary and hope that it works
- $T2H_L2H_TMP = "/tmp" if ($dotbug);
-
- $call = $T2H_L2H_L2H;
- # use init file, if specified
- $call = $call . " -init_file " . $init_file if ($init_file && -f $init_file);
- # set output dir
- $call .= ($docu_rdir ? " -dir $docu_rdir" : " -no_subdir");
- # use l2h_tmp, if specified
- $call = $call . " -tmp $T2H_L2H_TMP" if ($T2H_L2H_TMP);
- # options we want to be sure of
- $call = $call ." -address 0 -info 0 -split 0 -no_navigation -no_auto_link";
- $call = $call ." -prefix ${l2h_prefix} $l2h_latex_file";
-
- print "# l2h: executing '$call'\n" if ($T2H_VERBOSE);
- if (system($call))
- {
- warn "l2h ***Error: '${call}' did not succeed\n";
- return 0;
- }
- else
- {
- print "# l2h: latex2html finished successfully\n" if ($T2H_VERBOSE);
- return 1;
- }
-}
-
-# this is directly pasted over from latex2html
-sub getcwd {
- local($_) = `pwd`;
-
- die "'pwd' failed (out of memory?)\n"
- unless length;
- chop;
- $_;
-}
-
-
-##########################
-# Third stage: Extract generated contents from latex2html run
-# Initialize with: l2h_InitFromHtml
-# open $l2h_html_file for reading
-# reads in contents into array indexed by numbers
-# return 1, on success -- 0, otherwise
-# Extract Html code with: l2h_FromHtml($text)
-# replaces in $text all previosuly inserted comments by generated html code
-# returns (possibly changed) $text
-# Finish with: l2h_FinishFromHtml
-# closes $l2h_html_dir/$l2h_name.".$docu_ext"
-
-sub l2h_InitFromHtml
-{
- local($h_line, $h_content, $count, %l2h_img);
-
- if (! open(L2H_HTML, "<${l2h_html_file}"))
- {
- print "$ERROR Error l2h: Can't open ${l2h_html_file} for reading\n";
- return 0;
- }
- print "# l2h: use ${l2h_html_file} as html file\n" if ($T2H_VERBOSE);
-
- $l2h_html_count = 0;
-
- while ($h_line = <L2H_HTML>)
- {
- if ($h_line =~ /^<!-- l2h_begin $l2h_name ([0-9]+) -->/)
- {
- $count = $1;
- $h_content = "";
- while ($h_line = <L2H_HTML>)
- {
- if ($h_line =~ /^<!-- l2h_end $l2h_name $count -->/)
- {
- chomp $h_content;
- chomp $h_content;
- $l2h_html_count++;
- $h_content = l2h_ToCache($count, $h_content);
- $l2h_from_html[$count] = $h_content;
- $h_content = '';
- last;
- }
- $h_content = $h_content.$h_line;
- }
- if ($hcontent)
- {
- print "$ERROR Warning l2h: l2h_end $l2h_name $count not found\n"
- if ($T2H_VERBOSE);
- close(L2H_HTML);
- return 0;
- }
- }
- }
- print "# l2h: Got $l2h_html_count of $l2h_latex_count html contents\n"
- if ($T2H_VERBOSE);
-
- close(L2H_HTML);
- return 1;
-}
-
-sub l2h_FromHtml
-{
- local($text) = @_;
- local($done, $to_do, $count);
-
- $to_do = $text;
-
- while ($to_do =~ /([^\000]*)<!-- l2h_replace $l2h_name ([0-9]+) -->([^\000]*)/)
- {
- $to_do = $1;
- $count = $2;
- $done = $3.$done;
-
- $done = "<!-- l2h_end $l2h_name $count -->".$done
- if ($T2H_DEBUG & $DEBUG_L2H);
-
- $done = &l2h_ExtractFromHtml($count) . $done;
-
- $done = "<!-- l2h_begin $l2h_name $count -->".$done
- if ($T2H_DEBUG & $DEBUG_L2H);
- }
- return $to_do.$done;
-}
-
-
-sub l2h_ExtractFromHtml
-{
- local($count) = @_;
-
- return $l2h_from_html[$count] if ($l2h_from_html[$count]);
-
- if ($count >= 0 && $count < $l2h_latex_count)
- {
- # now we are in trouble
- local($l_l2h, $_);
-
- $l2h_extract_error++;
- print "$ERROR l2h: can't extract content $count from html\n"
- if ($T2H_VERBOSE);
- # try simple (ordinary) substition (without l2h)
- $l_l2h = $T2H_L2H;
- $T2H_L2H = 0;
- $_ = $l2h_to_latex{$count};
- $_ = &substitute_style($_);
- &unprotect_texi;
- $_ = "<!-- l2h: ". __LINE__ . " use texi2html -->" . $_
- if ($T2H_DEBUG & $DEBUG_L2H);
- $T2H_L2H = $l_l2h;
- return $_;
- }
- else
- {
- # now we have been incorrectly called
- $l2h_range_error++;
- print "$ERROR l2h: Request of $count content which is out of valide range [0,$l2h_latex_count)\n";
- return "<!-- l2h: ". __LINE__ . " out of range count $count -->"
- if ($T2H_DEBUG & $DEBUG_L2H);
- return "<!-- l2h: out of range count $count -->";
- }
-}
-
-sub l2h_FinishFromHtml
-{
- if ($T2H_VERBOSE)
- {
- if ($l2h_extract_error + $l2h_range_error)
- {
- print "# l2h: finished from html ($l2h_extract_error extract and $l2h_range_error errors)\n";
- }
- else
- {
- print "# l2h: finished from html (no errors)\n";
- }
- }
-}
-
-sub l2h_Finish
-{
- l2h_StoreCache();
- if ($T2H_L2H_CLEAN)
- {
- print "# l2h: removing temporary files generated by l2h extension\n"
- if $T2H_VERBOSE;
- while (<"$docu_rdir$l2h_name"*>)
- {
- unlink $_;
- }
- }
- print "# l2h: Finished\n" if $T2H_VERBOSE;
- return 1;
-}
-
-##############################
-# stuff for l2h caching
-#
-
-# I tried doing this with a dbm data base, but it did not store all
-# keys/values. Hence, I did as latex2html does it
-sub l2h_InitCache
-{
- if (-r "$l2h_cache_file")
- {
- my $rdo = do "$l2h_cache_file";
- warn("$ERROR l2h Error: could not load $docu_rdir$l2h_cache_file: $@\n")
- unless ($rdo);
- }
-}
-
-sub l2h_StoreCache
-{
- return unless $l2h_latex_count;
-
- my ($key, $value);
- open(FH, ">$l2h_cache_file") || return warn"$ERROR l2h Error: could not open $docu_rdir$l2h_cache_file for writing: $!\n";
-
-
- while (($key, $value) = each %l2h_cache)
- {
- # escape stuff
- $key =~ s|/|\\/|g;
- $key =~ s|\\\\/|\\/|g;
- # weird, a \ at the end of the key results in an error
- # maybe this also broke the dbm database stuff
- $key =~ s|\\$|\\\\|;
- $value =~ s/\|/\\\|/g;
- $value =~ s/\\\\\|/\\\|/g;
- $value =~ s|\\\\|\\\\\\\\|g;
- print FH "\n\$l2h_cache_key = q/$key/;\n";
- print FH "\$l2h_cache{\$l2h_cache_key} = q|$value|;\n";
- }
- print FH "1;";
- close(FH);
-}
-
-# return cached html, if it exists for text, and if all pictures
-# are there, as well
-sub l2h_FromCache
-{
- my $text = shift;
- my $cached = $l2h_cache{$text};
- if ($cached)
- {
- while ($cached =~ m/SRC="(.*?)"/g)
- {
- unless (-e "$docu_rdir$1")
- {
- return undef;
- }
- }
- return $cached;
- }
- return undef;
-}
-
-# insert generated html into cache, move away images,
-# return transformed html
-$maximage = 1;
-sub l2h_ToCache
-{
- my $count = shift;
- my $content = shift;
- my @images = ($content =~ /SRC="(.*?)"/g);
- my ($src, $dest);
-
- for $src (@images)
- {
- $dest = $l2h_img{$src};
- unless ($dest)
- {
- my $ext;
- if ($src =~ /.*\.(.*)$/ && $1 ne $docu_ext)
- {
- $ext = $1;
- }
- else
- {
- warn "$ERROR: L2h image $src has invalid extension\n";
- next;
- }
- while (-e "$docu_rdir${docu_name}_$maximage.$ext") { $maximage++;}
- $dest = "${docu_name}_$maximage.$ext";
- system("cp -f $docu_rdir$src $docu_rdir$dest");
- $l2h_img{$src} = $dest;
- unlink "$docu_rdir$src" unless ($DEBUG & DEBUG_L2H);
- }
- $content =~ s/$src/$dest/g;
- }
- $l2h_cache{$l2h_to_latex[$count]} = $content;
- return $content;
-}
-
-
-#+++############################################################################
-# #
-# Pass 1: read source, handle command, variable, simple substitution #
-# #
-#---############################################################################
-
-@lines = (); # whole document
-@toc_lines = (); # table of contents
-@stoc_lines = (); # table of contents
-$curlevel = 0; # current level in TOC
-$node = ''; # current node name
-$node_next = ''; # current node next name
-$node_prev = ''; # current node prev name
-$node_up = ''; # current node up name
-$in_table = 0; # am I inside a table
-$table_type = ''; # type of table ('', 'f', 'v', 'multi')
-@tables = (); # nested table support
-$in_bibliography = 0; # am I inside a bibliography
-$in_glossary = 0; # am I inside a glossary
-$in_top = 0; # am I inside the top node
-$has_top = 0; # did I see a top node?
-$has_top_command = 0; # did I see @top for automatic pointers?
-$in_pre = 0; # am I inside a preformatted section
-$in_list = 0; # am I inside a list
-$in_html = 0; # am I inside an HTML section
-$first_line = 1; # is it the first line
-$dont_html = 0; # don't protect HTML on this line
-$deferred_ref = ''; # deferred reference for indexes
-@html_stack = (); # HTML elements stack
-$html_element = ''; # current HTML element
-&html_reset;
-%macros = (); # macros
-
-# init l2h
-$T2H_L2H = &l2h_Init($docu_name) if ($T2H_L2H);
-$T2H_L2H = &l2h_InitToLatex if ($T2H_L2H);
-
-# build code for simple substitutions
-# the maps used (%simple_map and %things_map) MUST be aware of this
-# watch out for regexps, / and escaped characters!
-$subst_code = '';
-foreach (keys(%simple_map)) {
- ($re = $_) =~ s/(\W)/\\$1/g; # protect regexp chars
- $subst_code .= "s/\\\@$re/$simple_map{$_}/g;\n";
-}
-foreach (keys(%things_map)) {
- $subst_code .= "s/\\\@$_\\{\\}/$things_map{$_}/g;\n";
-}
-if ($use_acc) {
- # accentuated characters
- foreach (keys(%accent_map)) {
- if ($_ eq "`") {
- $subst_code .= "s/$;3";
- } elsif ($_ eq "'") {
- $subst_code .= "s/$;4";
- } else {
- $subst_code .= "s/\\\@\\$_";
- }
- $subst_code .= "([a-z])/&\${1}$accent_map{$_};/gi;\n";
- }
-}
-eval("sub simple_substitutions { $subst_code }");
-
-&init_input;
-INPUT_LINE: while ($_ = &next_line) {
- #
- # remove \input on the first lines only
- #
- if ($first_line) {
- next if /^\\input/;
- $first_line = 0;
- }
- # non-@ substitutions cf. texinfmt.el
- #
- # parse texinfo tags
- #
- $tag = '';
- $end_tag = '';
- if (/^\s*\@end\s+(\w+)\b/) {
- $end_tag = $1;
- } elsif (/^\s*\@(\w+)\b/) {
- $tag = $1;
- }
- #
- # handle @html / @end html
- #
- if ($in_html) {
- if ($end_tag eq 'html') {
- $in_html = 0;
- } else {
- $tag2pro{$in_html} .= $_;
- }
- next;
- } elsif ($tag eq 'html') {
- $in_html = $PROTECTTAG . ++$html_num;
- push(@lines, $in_html);
- next;
- }
-
- #
- # try to remove inlined comments
- # syntax from tex-mode.el comment-start-skip
- #
- s/((^|[^\@])(\@\@)*)\@c(omment | |\{|$).*/$1/;
-
-# Sometimes I use @c right at the end of a line ( to suppress the line feed )
-# s/((^|[^\@])(\@\@)*)\@c(omment)?$/$1/;
-# s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/;
-# s/(.*)\@c{.*?}(.*)/$1$2/;
-# s/(.*)\@comment{.*?}(.*)/$1$2/;
-# s/^(.*)\@c /$1/;
-# s/^(.*)\@comment /$1/;
-
- #############################################################
- # value substitution before macro expansion, so that
- # it works in macro arguments
- s/\@value{($VARRE)}/$value{$1}/eg;
-
- #############################################################
- # macro substitution
- while (/\@(\w+)/g)
- {
- if (exists($macros->{$1}))
- {
- my $before = $`;
- my $name = $1;
- my $after = $';
- my @args;
- my $args;
- if ($after =~ /^\s*{(.*?[^\\])}(.*)/)
- {
- $args = $1;
- $after = $2;
- }
- elsif (@{$macros->{$name}->{Args}} == 1)
- {
- $args = $after;
- $args =~ s/^\s*//;
- $args =~ s/\s*$//;
- $after = '';
- }
- $args =~ s|\\\\|\\|g;
- $args =~ s|\\{|{|g;
- $args =~ s|\\}|}|g;
- if (@{$macros->{$name}->{Args}} > 1)
- {
- $args =~ s/(^|[^\\]),/$1$;/g ;
- $args =~ s|\\,|,|g;
- @args = split(/$;\s*/, $args) if (@{$macros->{$name}->{Args}} > 1);
- }
- else
- {
- $args =~ s|\\,|,|g;
- @args = ($args);
- }
- my $macrobody = $macros->{$name}->{Body};
- for ($i=0; $i<=$#args; $i++)
- {
- $macrobody =~ s|\\$macros->{$name}->{Args}->[$i]\\|$args[$i]|g;
- }
- $macrobody =~ s|\\\\|\\|g;
- $_ = $before . $macrobody . $after;
- unshift @input_spool, map {$_ = $_."\n"} split(/\n/, $_);
- next INPUT_LINE;
- }
- } #
-
-
- #
- # try to skip the line
- #
- if ($end_tag) {
- $in_titlepage = 0 if $end_tag eq 'titlepage';
- next if $to_skip{"end $end_tag"};
- } elsif ($tag) {
- $in_titlepage = 1 if $tag eq 'titlepage';
- next if $to_skip{$tag};
- last if $tag eq 'bye';
- }
- if ($in_top) {
- # parsing the top node
- if ($tag eq 'node' ||
- ($sec2level{$tag} && $tag !~ /unnumbered/ && $tag !~ /heading/))
- {
- # no more in top
- $in_top = 0;
- push(@lines, $TOPEND);
- }
- }
- unless ($in_pre) {
- s/``/\"/g;
- s/''/\"/g;
- s/([\w ])---([\w ])/$1--$2/g;
- }
- #
- # analyze the tag
- #
- if ($tag) {
- # skip lines
- &skip_until($tag), next if $tag eq 'ignore';
- &skip_until($tag), next if $tag eq 'ifnothtml';
- if ($tag eq 'ifinfo')
- {
- &skip_until($tag), next unless $T2H_EXPAND eq 'info';
- }
- if ($tag eq 'iftex')
- {
- &skip_until($tag), next unless $T2H_EXPAND eq 'tex';
- }
- if ($tag eq 'tex')
- {
- # add to latex2html file
- if ($T2H_EXPAND eq 'tex' && $T2H_L2H && ! $in_pre)
- {
- # add space to the end -- tex(i2dvi) does this, as well
- push(@lines, &l2h_ToLatex(&string_until($tag) . " "));
- }
- else
- {
- &skip_until($tag);
- }
- next;
- }
- if ($tag eq 'titlepage')
- {
- next;
- }
- # handle special tables
- if ($tag =~ /^(|f|v|multi)table$/) {
- $table_type = $1;
- $tag = 'table';
- }
- # special cases
- if ($tag eq 'top' || ($tag eq 'node' && /^\@node\s+top\s*,/i)) {
- $in_top = 1;
- $has_top = 1;
- $has_top_command = 1 if $tag eq 'top';
- @lines = (); # ignore all lines before top (title page garbage)
- next;
- } elsif ($tag eq 'node') {
- if ($in_top)
- {
- $in_top = 0;
- push(@lines, $TOPEND);
- }
- warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o;
- # request of "Richard Y. Kim" <ryk@ap.com>
- s/^\@node\s+//;
- $_ = &protect_html($_); # if node contains '&' for instance
- ($node, $node_next, $node_prev, $node_up) = split(/,/);
- &normalise_node($node);
- &normalise_node($node_next);
- &normalise_node($node_prev);
- &normalise_node($node_up);
- $node =~ /\"/ ?
- push @lines, &html_debug("<A NAME='$node'></A>\n", __LINE__) :
- push @lines, &html_debug("<A NAME=\"$node\"></A>\n", __LINE__);
- next;
- } elsif ($tag eq 'include') {
- if (/^\@include\s+($FILERE)\s*$/o) {
- $file = LocateIncludeFile($1);
- if ($file && -e $file) {
- &open($file);
- print "# including $file\n" if $T2H_VERBOSE;
- } else {
- warn "$ERROR Can't find $1, skipping";
- }
- } else {
- warn "$ERROR Bad include line: $_";
- }
- next;
- } elsif ($tag eq 'ifclear') {
- if (/^\@ifclear\s+($VARRE)\s*$/o) {
- next unless defined($value{$1});
- &skip_until($tag);
- } else {
- warn "$ERROR Bad ifclear line: $_";
- }
- next;
- } elsif ($tag eq 'ifset') {
- if (/^\@ifset\s+($VARRE)\s*$/o) {
- next if defined($value{$1});
- &skip_until($tag);
- } else {
- warn "$ERROR Bad ifset line: $_";
- }
- next;
- } elsif ($tag eq 'menu') {
- unless ($T2H_SHOW_MENU) {
- &skip_until($tag);
- next;
- }
- &html_push_if($tag);
- push(@lines, &html_debug('', __LINE__));
- } elsif ($format_map{$tag}) {
- $in_pre = 1 if $format_map{$tag} eq 'PRE';
- &html_push_if($format_map{$tag});
- push(@lines, &html_debug('', __LINE__));
- $in_list++ if $format_map{$tag} eq 'UL' || $format_map{$tag} eq 'OL' ;
-# push(@lines, &debug("<BLOCKQUOTE>\n", __LINE__))
-# if $tag =~ /example/i;
- # sunshine@sunshineco.com: <PRE>bla</PRE> looks better than
- # <PRE>\nbla</PRE> (at least on NeXTstep browser
- push(@lines, &debug("<$format_map{$tag}>" .
- ($in_pre ? '' : "\n"), __LINE__));
- next;
- }
- elsif (exists $complex_format_map->{$tag})
- {
- my $start = eval $complex_format_map->{$tag}->[0];
- if ($@)
- {
- print "$ERROR: eval of complex_format_map->{$tag}->[0] $complex_format_map->{$tag}->[0]: $@";
- $start = '<pre>'
- }
- $in_pre = 1 if $start =~ /<pre/;
- push(@lines, html_debug($start. ($in_pre ? '' : "\n"), __LINE__));
- next;
- } elsif ($tag eq 'table') {
- # anorland@hem2.passagen.se
- # if (/^\s*\@(|f|v|multi)table\s+\@(\w+)/) {
- if (/^\s*\@(|f|v|multi)table\s+\@(\w+)|(\{[^\}]*\})/) {
- $in_table = $2;
- unshift(@tables, join($;, $table_type, $in_table));
- if ($table_type eq "multi") {
- # don't use borders -- gets confused by empty cells
- push(@lines, &debug("<TABLE>\n", __LINE__));
- &html_push_if('TABLE');
- } else {
- push(@lines, &debug("<DL COMPACT>\n", __LINE__));
- &html_push_if('DL');
- }
- push(@lines, &html_debug('', __LINE__));
- } else {
- warn "$ERROR Bad table line: $_";
- }
- next;
- }
- elsif ($tag eq 'synindex' || $tag eq 'syncodeindex')
- {
- if (/^\@$tag\s+(\w+)\s+(\w+)\s*$/)
- {
- my $from = $1;
- my $to = $2;
- my $prefix_from = IndexName2Prefix($from);
- my $prefix_to = IndexName2Prefix($to);
-
- warn("$ERROR unknown from index name $from ind syn*index line: $_"), next
- unless $prefix_from;
- warn("$ERROR unknown to index name $to ind syn*index line: $_"), next
- unless $prefix_to;
-
- if ($tag eq 'syncodeindex')
- {
- $index_properties->{$prefix_to}->{'from_code'}->{$prefix_from} = 1;
- }
- else
- {
- $index_properties->{$prefix_to}->{'from'}->{$prefix_from} = 1;
- }
- }
- else
- {
- warn "$ERROR Bad syn*index line: $_";
- }
- next;
- }
- elsif ($tag eq 'defindex' || $tag eq 'defcodeindex')
- {
- if (/^\@$tag\s+(\w+)\s*$/)
- {
- my $name = $1;
- $index_properties->{$name}->{name} = $name;
- $index_properties->{$name}->{code} = 1 if $tag eq 'defcodeindex';
- }
- else
- {
- warn "$ERROR Bad defindex line: $_";
- }
- next;
- }
- elsif (/^\@printindex/)
- {
- push (@lines, "<!--::${section}::-->$_");
- next;
- }
- elsif ($tag eq 'sp') {
- push(@lines, &debug("<P>\n", __LINE__));
- next;
- } elsif ($tag eq 'center') {
- push(@lines, &debug("<center>\n", __LINE__));
- s/\@center//;
- } elsif ($tag eq 'setref') {
- &protect_html; # if setref contains '&' for instance
- if (/^\@$tag\s*{($NODERE)}\s*$/) {
- $setref = $1;
- $setref =~ s/\s+/ /g; # normalize
- $setref =~ s/ $//;
- $node2sec{$setref} = $name;
- $sec2node{$name} = $setref;
- $node2href{$setref} = "$docu_doc#$docid";
- } else {
- warn "$ERROR Bad setref line: $_";
- }
- next;
- } elsif ($tag eq 'lowersections') {
- local ($sec, $level);
- while (($sec, $level) = each %sec2level) {
- $sec2level{$sec} = $level + 1;
- }
- next;
- } elsif ($tag eq 'raisesections') {
- local ($sec, $level);
- while (($sec, $level) = each %sec2level) {
- $sec2level{$sec} = $level - 1;
- }
- next;
- }
- elsif ($tag eq 'macro' || $tag eq 'rmacro')
- {
- if (/^\@$tag\s*(\w+)\s*(.*)/)
- {
- my $name = $1;
- my @args;
- @args = split(/\s*,\s*/ , $1)
- if ($2 =~ /^\s*{(.*)}\s*/);
-
- $macros->{$name}->{Args} = \@args;
- $macros->{$name}->{Body} = '';
- while (($_ = &next_line) && $_ !~ /\@end $tag/)
- {
- $macros->{$name}->{Body} .= $_;
- }
- die "ERROR: No closing '\@end $tag' found for macro definition of '$name'\n"
- unless (/\@end $tag/);
- chomp $macros->{$name}->{Body};
- }
- else
- {
- warn "$ERROR: Bad macro defintion $_"
- }
- next;
- }
- elsif ($tag eq 'unmacro')
- {
- delete $macros->{$1} if (/^\@unmacro\s*(\w+)/);
- next;
- }
- elsif ($tag eq 'documentlanguage')
- {
- SetDocumentLanguage($1) if (!$T2H_LANG && /documentlanguage\s*(\w+)/);
- }
- elsif (defined($def_map{$tag})) {
- if ($def_map{$tag}) {
- s/^\@$tag\s+//;
- $tag = $def_map{$tag};
- $_ = "\@$tag $_";
- $tag =~ s/\s.*//;
- }
- } elsif (defined($user_sub{$tag})) {
- s/^\@$tag\s+//;
- $sub = $user_sub{$tag};
- print "# user $tag = $sub, arg: $_" if $T2H_DEBUG & $DEBUG_USER;
- if (defined(&$sub)) {
- chop($_);
- &$sub($_);
- } else {
- warn "$ERROR Bad user sub for $tag: $sub\n";
- }
- next;
- }
- if (defined($def_map{$tag})) {
- s/^\@$tag\s+//;
- if ($tag =~ /x$/) {
- # extra definition line
- $tag = $`;
- $is_extra = 1;
- } else {
- $is_extra = 0;
- }
- while (/\{([^\{\}]*)\}/) {
- # this is a {} construct
- ($before, $contents, $after) = ($`, $1, $');
- # protect spaces
- $contents =~ s/\s+/$;9/g;
- # restore $_ protecting {}
- $_ = "$before$;7$contents$;8$after";
- }
- @args = split(/\s+/, &protect_html($_));
- foreach (@args) {
- s/$;9/ /g; # unprotect spaces
- s/$;7/\{/g; # ... {
- s/$;8/\}/g; # ... }
- }
- $type = shift(@args);
- $type =~ s/^\{(.*)\}$/$1/;
- print "# def ($tag): {$type} ", join(', ', @args), "\n"
- if $T2H_DEBUG & $DEBUG_DEF;
- $type .= ':'; # it's nicer like this
- my $name = shift(@args);
- $name =~ s/^\{(.*)\}$/$1/;
- if ($is_extra) {
- $_ = &debug("<DT>", __LINE__);
- } else {
- $_ = &debug("<DL>\n<DT>", __LINE__);
- }
- if ($tag eq 'deffn' || $tag eq 'defvr' || $tag eq 'deftp') {
- $_ .= "<U>$type</U> <B>$name</B>";
- $_ .= " <I>@args</I>" if @args;
- } elsif ($tag eq 'deftypefn' || $tag eq 'deftypevr'
- || $tag eq 'defcv' || $tag eq 'defop') {
- $ftype = $name;
- $name = shift(@args);
- $name =~ s/^\{(.*)\}$/$1/;
- $_ .= "<U>$type</U> $ftype <B>$name</B>";
- $_ .= " <I>@args</I>" if @args;
- } else {
- warn "$ERROR Unknown definition type: $tag\n";
- $_ .= "<U>$type</U> <B>$name</B>";
- $_ .= " <I>@args</I>" if @args;
- }
- $_ .= &debug("\n<DD>", __LINE__);
- $name = &unprotect_html($name);
- if ($tag eq 'deffn' || $tag eq 'deftypefn') {
- EnterIndexEntry('f', $name, $docu_doc, $section, \@lines);
-# unshift(@input_spool, "\@findex $name\n");
- } elsif ($tag eq 'defop') {
- EnterIndexEntry('f', "$name on $ftype", $docu_doc, $section, \@lines);
-# unshift(@input_spool, "\@findex $name on $ftype\n");
- } elsif ($tag eq 'defvr' || $tag eq 'deftypevr' || $tag eq 'defcv') {
- EnterIndexEntry('v', $name, $docu_doc, $section, \@lines);
-# unshift(@input_spool, "\@vindex $name\n");
- } else {
- EnterIndexEntry('t', $name, $docu_doc, $section, \@lines);
-# unshift(@input_spool, "\@tindex $name\n");
- }
- $dont_html = 1;
- }
- } elsif ($end_tag) {
- if ($format_map{$end_tag}) {
- $in_pre = 0 if $format_map{$end_tag} eq 'PRE';
- $in_list-- if $format_map{$end_tag} eq 'UL' || $format_map{$end_tag} eq 'OL' ;
- &html_pop_if('P');
- &html_pop_if('LI');
- &html_pop_if();
- push(@lines, &debug("</$format_map{$end_tag}>\n", __LINE__));
- push(@lines, &html_debug('', __LINE__));
- }
- elsif (exists $complex_format_map->{$end_tag})
- {
- my $end = eval $complex_format_map->{$end_tag}->[1];
- if ($@)
- {
- print "$ERROR: eval of complex_format_map->{$end_tag}->[1] $complex_format_map->{$end_tag}->[0]: $@";
- $end = '</pre>'
- }
- $in_pre = 0 if $end =~ m|</pre>|;
- push(@lines, html_debug($end, __LINE__));
- } elsif ($end_tag =~ /^(|f|v|multi)table$/) {
- unless (@tables) {
- warn "$ERROR \@end $end_tag without \@*table\n";
- next;
- }
- &html_pop_if('P');
- ($table_type, $in_table) = split($;, shift(@tables));
- unless ($1 eq $table_type) {
- warn "$ERROR \@end $end_tag without matching \@$end_tag\n";
- next;
- }
- if ($table_type eq "multi") {
- push(@lines, "</TR></TABLE>\n");
- &html_pop_if('TR');
- } else {
- push(@lines, "</DL>\n");
- &html_pop_if('DD');
- }
- &html_pop_if();
- if (@tables) {
- ($table_type, $in_table) = split($;, $tables[0]);
- } else {
- $in_table = 0;
- }
- } elsif (defined($def_map{$end_tag})) {
- push(@lines, &debug("</DL>\n", __LINE__));
- } elsif ($end_tag eq 'menu') {
- &html_pop_if();
- push(@lines, $_); # must keep it for pass 2
- }
- next;
- }
- #############################################################
- # anchor insertion
- while (/\@anchor\s*\{(.*?)\}/)
- {
- $_ = $`.$';
- my $anchor = $1;
- $anchor = &normalise_node($anchor);
- push @lines, &html_debug("<A NAME=\"$anchor\"></A>\n");
- $node2href{$anchor} = "$docu_doc#$anchor";
- next INPUT_LINE if $_ =~ /^\s*$/;
- }
-
- #############################################################
- # index entry generation, after value substitutions
- if (/^\@(\w+?)index\s+/)
- {
- EnterIndexEntry($1, $', $docu_doc, $section, \@lines);
- next;
- }
- #
- # protect texi and HTML things
- &protect_texi;
- $_ = &protect_html($_) unless $dont_html;
- $dont_html = 0;
- # substitution (unsupported things)
- s/^\@exdent\s+//g;
- s/\@noindent\s+//g;
- s/\@refill\s+//g;
- # other substitutions
- &simple_substitutions;
- s/\@footnote\{/\@footnote$docu_doc\{/g; # mark footnotes, cf. pass 4
- #
- # analyze the tag again
- #
- if ($tag) {
- if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) {
- if (/^\@$tag\s+(.+)$/) {
- $name = $1;
- $name = &normalise_node($name);
- $level = $sec2level{$tag};
- # check for index
- $first_index_chapter = $name
- if ($level == 1 && !$first_index_chapter &&
- $name =~ /index/i);
- if ($in_top && /heading/){
- $T2H_HAS_TOP_HEADING = 1;
- $_ = &debug("<H$level>$name</H$level>\n", __LINE__);
- &html_push_if('body');
- print "# top heading, section $name, level $level\n"
- if $T2H_DEBUG & $DEBUG_TOC;
- }
- else
- {
- unless (/^\@\w*heading/)
- {
- unless (/^\@unnumbered/)
- {
- my $number = &update_sec_num($tag, $level);
- $name = $number. ' ' . $name if $T2H_NUMBER_SECTIONS;
- $sec2number{$name} = $number;
- $number2sec{$number} = $name;
- }
- if (defined($toplevel))
- {
- push @lines, ($level==$toplevel ? $CHAPTEREND : $SECTIONEND);
- }
- else
- {
- # first time we see a "section"
- unless ($level == 1)
- {
- warn "$WARN The first section found is not of level 1: $_";
- }
- $toplevel = $level;
- }
- push(@sections, $name);
- next_doc() if ($T2H_SPLIT eq 'section' ||
- $T2H_SPLIT && $level == $toplevel);
- }
- $sec_num++;
- $docid = "SEC$sec_num";
- $tocid = (/^\@\w*heading/ ? undef : "TOC$sec_num");
- # check biblio and glossary
- $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i);
- $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i);
- # check node
- if ($node)
- {
- warn "$ERROR Duplicate node found: $node\n"
- if ($node2sec{$node});
- }
- else
- {
- $name .= ' ' while ($node2sec{$name});
- $node = $name;
- }
- $name .= ' ' while ($sec2node{$name});
- $section = $name;
- $node2sec{$node} = $name;
- $sec2node{$name} = $node;
- $node2href{$node} = "$docu_doc#$docid";
- $node2next{$node} = $node_next;
- $node2prev{$node} = $node_prev;
- $node2up{$node} = $node_up;
- print "# node $node, section $name, level $level\n"
- if $T2H_DEBUG & $DEBUG_TOC;
-
- $node = '';
- $node_next = '';
- $node_prev = '';
- $node_next = '';
- if ($tocid)
- {
- # update TOC
- while ($level > $curlevel) {
- $curlevel++;
- push(@toc_lines, "<UL>\n");
- }
- while ($level < $curlevel) {
- $curlevel--;
- push(@toc_lines, "</UL>\n");
- }
- $_ = &t2h_anchor($tocid, "$docu_doc#$docid", $name, 1);
- $_ = &substitute_style($_);
- push(@stoc_lines, "$_<BR>\n") if ($level == 1);
- if ($T2H_NUMBER_SECTIONS)
- {
- push(@toc_lines, $_ . "<BR>\n")
- }
- else
- {
- push(@toc_lines, "<LI>" . $_ ."</LI>");
- }
- }
- else
- {
- push(@lines, &html_debug("<A NAME=\"$docid\"></A>\n",
- __LINE__));
- }
- # update DOC
- push(@lines, &html_debug('', __LINE__));
- &html_reset;
- $_ = "<H$level> $name </H$level>\n<!--docid::${docid}::-->\n";
- $_ = &debug($_, __LINE__);
- push(@lines, &html_debug('', __LINE__));
- }
- # update DOC
- foreach $line (split(/\n+/, $_)) {
- push(@lines, "$line\n");
- }
- next;
- } else {
- warn "$ERROR Bad section line: $_";
- }
- } else {
- # track variables
- $value{$1} = Unprotect_texi($2), next if /^\@set\s+($VARRE)\s+(.*)$/o;
- delete $value{$1}, next if /^\@clear\s+($VARRE)\s*$/o;
- # store things
- $value{'_shorttitle'} = Unprotect_texi($1), next if /^\@shorttitle\s+(.*)$/;
- $value{'_setfilename'} = Unprotect_texi($1), next if /^\@setfilename\s+(.*)$/;
- $value{'_settitle'} = Unprotect_texi($1), next if /^\@settitle\s+(.*)$/;
- $value{'_author'} .= Unprotect_texi($1)."\n", next if /^\@author\s+(.*)$/;
- $value{'_subtitle'} .= Unprotect_texi($1)."\n", next if /^\@subtitle\s+(.*)$/;
- $value{'_title'} .= Unprotect_texi($1)."\n", next if /^\@title\s+(.*)$/;
-
- # list item
- if (/^\s*\@itemx?\s+/) {
- $what = $';
- $what =~ s/\s+$//;
- if ($in_bibliography && $use_bibliography) {
- if ($what =~ /^$BIBRE$/o) {
- $id = 'BIB' . ++$bib_num;
- $bib2href{$what} = "$docu_doc#$id";
- print "# found bibliography for '$what' id $id\n"
- if $T2H_DEBUG & $DEBUG_BIB;
- $what = &t2h_anchor($id, '', $what);
- }
- } elsif ($in_glossary && $T2H_USE_GLOSSARY) {
- $id = 'GLOSS' . ++$gloss_num;
- $entry = $what;
- $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/;
- $gloss2href{$entry} = "$docu_doc#$id";
- print "# found glossary for '$entry' id $id\n"
- if $T2H_DEBUG & $DEBUG_GLOSS;
- $what = &t2h_anchor($id, '', $what);
- }
- elsif ($in_table && ($table_type eq 'f' || $table_type eq 'v'))
- {
- EnterIndexEntry($table_type, $what, $docu_doc, $section, \@lines);
- }
- &html_pop_if('P');
- if ($html_element eq 'DL' || $html_element eq 'DD') {
- if ($things_map{$in_table} && !$what) {
- # special case to allow @table @bullet for instance
- push(@lines, &debug("<DT>$things_map{$in_table}\n", __LINE__));
- } else {
- push(@lines, &debug("<DT>\@$in_table\{$what\}\n", __LINE__));
- }
- push(@lines, "<DD>");
- &html_push('DD') unless $html_element eq 'DD';
- if ($table_type) { # add also an index
- unshift(@input_spool, "\@${table_type}index $what\n");
- }
- } elsif ($html_element eq 'TABLE') {
- push(@lines, &debug("<TR><TD>$what</TD>\n", __LINE__));
- &html_push('TR');
- } elsif ($html_element eq 'TR') {
- push(@lines, &debug("</TR>\n", __LINE__));
- push(@lines, &debug("<TR><TD>$what</TD>\n", __LINE__));
- } else {
- push(@lines, &debug("<LI>$what\n", __LINE__));
- &html_push('LI') unless $html_element eq 'LI';
- }
- push(@lines, &html_debug('', __LINE__));
- if ($deferred_ref) {
- push(@lines, &debug("$deferred_ref\n", __LINE__));
- $deferred_ref = '';
- }
- next;
- } elsif (/^\@tab\s+(.*)$/) {
- push(@lines, "<TD>$1</TD>\n");
- next;
- }
- }
- }
- # paragraph separator
- if ($_ eq "\n" && ! $in_pre) {
- next if $#lines >= 0 && $lines[$#lines] eq "\n";
- if ($html_element eq 'P') {
- push (@lines, &debug("</P><P>\n", __LINE__));
- }
-# else
-# {
-# push(@lines, "<P></P>\n");
-# $_ = &debug("<P></P>\n", __LINE__);
-# }
- elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE' || $html_element eq 'DD' || $html_element eq 'LI')
- {
- &html_push('P');
- push(@lines, &debug("<P>\n", __LINE__));
- }
- }
- # otherwise
- push(@lines, $_) unless $in_titlepage;
- push(@lines, &debug("</center>\n", __LINE__)) if ($tag eq 'center');
-}
-
-# finish TOC
-$level = 0;
-while ($level < $curlevel) {
- $curlevel--;
- push(@toc_lines, "</UL>\n");
-}
-
-print "# end of pass 1\n" if $T2H_VERBOSE;
-
-SetDocumentLanguage('en') unless ($T2H_LANG);
-#+++############################################################################
-# #
-# Stuff related to Index generation #
-# #
-#---############################################################################
-
-sub EnterIndexEntry
-{
- my $prefix = shift;
- my $key = shift;
- my $docu_doc = shift;
- my $section = shift;
- my $lines = shift;
- local $_;
-
- warn "$ERROR Undefined index command: $_", next
- unless (exists ($index_properties->{$prefix}));
- $key =~ s/\s+$//;
- $_ = $key;
- &protect_texi;
- $key = $_;
- $_ = &protect_html($_);
- my $html_key = substitute_style($_);
- my $id;
- $key = remove_style($key);
- $key = remove_things($key);
- $_ = $key;
- &unprotect_texi;
- $key = $_;
- while (exists $index->{$prefix}->{$key}) {$key .= ' '};
- if ($lines->[$#lines] =~ /^<!--docid::(.+)::-->$/)
- {
- $id = $1;
- }
- else
- {
- $id = 'IDX' . ++$idx_num;
- push(@$lines, &t2h_anchor($id, '', $T2H_INVISIBLE_MARK, !$in_pre));
- }
- $index->{$prefix}->{$key}->{html_key} = $html_key;
- $index->{$prefix}->{$key}->{section} = $section;
- $index->{$prefix}->{$key}->{href} = "$docu_doc#$id";
- print "# found ${prefix}index for '$key' with id $id\n"
- if $T2H_DEBUG & $DEBUG_INDEX;
-}
-
-sub IndexName2Prefix
-{
- my $name = shift;
- my $prefix;
-
- for $prefix (keys %$index_properties)
- {
- return $prefix if ($index_properties->{$prefix}->{name} eq $name);
- }
- return undef;
-}
-
-sub GetIndexEntries
-{
- my $normal = shift;
- my $code = shift;
- my ($entries, $prefix, $key) = ({});
-
- for $prefix (keys %$normal)
- {
- for $key (keys %{$index->{$prefix}})
- {
- $entries->{$key} = {%{$index->{$prefix}->{$key}}};
- }
- }
-
- if (defined($code))
- {
- for $prefix (keys %$code)
- {
- unless (exists $normal->{$keys})
- {
- for $key (keys %{$index->{$prefix}})
- {
- $entries->{$key} = {%{$index->{$prefix}->{$key}}};
- $entries->{$key}->{html_key} = "<CODE>$entries->{$key}->{html_key}</CODE>";
- }
- }
- }
- }
- return $entries;
-}
-
-sub byAlpha
-{
- if ($a =~ /^[A-Za-z]/)
- {
- if ($b =~ /^[A-Za-z]/)
- {
- return lc($a) cmp lc($b);
- }
- else
- {
- return 1;
- }
- }
- elsif ($b =~ /^[A-Za-z]/)
- {
- return -1;
- }
- else
- {
- return lc($a) cmp lc($b);
- }
-}
-
-sub GetIndexPages
-{
- my $entries = shift;
- my (@Letters, $key);
- my ($EntriesByLetter, $Pages, $page) = ({}, [], {});
- my @keys = sort byAlpha keys %$entries;
-
- for $key (@keys)
- {
- push @{$EntriesByLetter->{uc(substr($key,0, 1))}} , $entries->{$key};
- }
- @Letters = sort byAlpha keys %$EntriesByLetter;
-
- $T2H_SPLIT_INDEX = 0 unless ($T2H_SPLIT);
-
- unless ($T2H_SPLIT_INDEX)
- {
- $page->{First} = $Letters[0];
- $page->{Last} = $Letters[$#Letters];
- $page->{Letters} = \@Letters;
- $page->{EntriesByLetter} = $EntriesByLetter;
- push @$Pages, $page;
- return $Pages;
- }
-
- if ($T2H_SPLIT_INDEX =~ /^\d+$/)
- {
- my $i = 0;
- my ($prev_letter, $letter);
- $page->{First} = $Letters[0];
- for $letter (@Letters)
- {
- if ($i > $T2H_SPLIT_INDEX)
- {
- $page->{Last} = $prev_letter;
- push @$Pages, {%$page};
- $page->{Letters} = [];
- $page->{EntriesByLetter} = {};
- $page->{First} = $letter;
- $i=0;
- }
- push @{$page->{Letters}}, $letter;
- $page->{EntriesByLetter}->{$letter} = [@{$EntriesByLetter->{$letter}}];
- $i += scalar(@{$EntriesByLetter->{$letter}});
- $prev_letter = $letter;
- }
- $page->{Last} = $Letters[$#Letters];
- push @$Pages, {%$page};
- }
- return $Pages;
-}
-
-sub GetIndexSummary
-{
- my $first_page = shift;
- my $Pages = shift;
- my $name = shift;
- my ($page, $letter, $summary, $i, $l1, $l2, $l);
-
- $i = 0;
- $summary = '<table><tr><th valign=top>Jump to: &nbsp; </th><td>';
-
- for $page ($first_page, @$Pages)
- {
- for $letter (@{$page->{Letters}})
- {
- $l = t2h_anchor('', "$page->{href}#${name}_$letter", "<b>$letter</b>",
- 0, 'style="text-decoration:none"') . "\n &nbsp; \n";
-
- if ($letter =~ /^[A-Za-z]/)
- {
- $l2 .= $l;
- }
- else
- {
- $l1 .= $l;
- }
- }
- }
- $summary .= $l1 . "<BR>\n" if ($l1);
- $summary .= $l2 . '</td></tr></table><br>';
- return $summary;
-}
-
-sub PrintIndexPage
-{
- my $lines = shift;
- my $summary = shift;
- my $page = shift;
- my $name = shift;
-
- push @$lines, $summary;
-
- push @$lines , <<EOT;
-<P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-EOT
-
- for $letter (@{$page->{Letters}})
- {
- push @$lines, "<TR><TH><A NAME=\"${name}_$letter\"></A>$letter</TH><TD></TD><TD></TD></TR>\n";
- for $entry (@{$page->{EntriesByLetter}->{$letter}})
- {
- push @$lines,
- "<TR><TD></TD><TD valign=top>" .
- t2h_anchor('', $entry->{href}, $entry->{html_key}) .
- "</TD><TD valign=top>" .
- t2h_anchor('', sec_href($entry->{section}), clean_name($entry->{section})) .
- "</TD></TR>\n";
- }
- push @$lines, "<TR><TD COLSPAN=3> <HR></TD></TR>\n";
- }
- push @$lines, "</TABLE><P></P>";
- push @$lines, $summary;
-}
-
-sub PrintIndex
-{
- my $lines = shift;
- my $name = shift;
- my $section = shift;
- $section = 'Top' unless $section;
- my $prefix = IndexName2Prefix($name);
-
- warn ("$ERROR printindex: bad index name: $name"), return
- unless $prefix;
-
- if ($index_properties->{$prefix}->{code})
- {
- $index_properties->{$prefix}->{from_code}->{$prefix} = 1;
- }
- else
- {
- $index_properties->{$prefix}->{from}->{$prefix}= 1;
- }
-
- my $Entries = GetIndexEntries($index_properties->{$prefix}->{from},
- $index_properties->{$prefix}->{from_code});
- return unless %$Entries;
-
- if ($T2H_IDX_SUMMARY)
- {
- my $key;
- open(FHIDX, ">$docu_rdir$docu_name" . "_$name.idx")
- || die "Can't open > $docu_rdir$docu_name" . "_$name.idx for writing: $!\n";
- print "# writing $name index summary in $docu_rdir$docu_name" . "_$name.idx...\n" if $T2H_VERBOSE;
-
- for $key (sort keys %$Entries)
- {
- print FHIDX "$key\t$Entries->{$key}->{href}\n";
- }
- }
-
- my $Pages = GetIndexPages($Entries);
- my $page;
- my $first_page = shift @$Pages;
- my $sec_name = $section;
- # remove section number
- $sec_name =~ s/.*? // if $sec_name =~ /^([A-Z]|\d+)\./;
-
- ($first_page->{href} = sec_href($section)) =~ s/\#.*$//;
- # Update tree structure of document
- if (@$Pages)
- {
- my $sec;
- my @after;
-
- while (@sections && $sections[$#sections] ne $section)
- {
- unshift @after, pop @sections;
- }
-
- for $page (@$Pages)
- {
- my $node = ($page->{First} ne $page->{Last} ?
- "$sec_name: $page->{First} -- $page->{Last}" :
- "$sec_name: $page->{First}");
- push @sections, $node;
- $node2sec{$node} = $node;
- $sec2node{$node} = $node;
- $node2up{$node} = $section;
- $page->{href} = next_doc();
- $page->{name} = $node;
- $node2href{$node} = $page->{href};
- if ($prev_node)
- {
- $node2next{$prev_node} = $node;
- $node2prev{$node} = $prev_node;
- }
- $prev_node = $node;
- }
- push @sections, @after;
- }
-
- my $summary = GetIndexSummary($first_page, $Pages, $name);
- PrintIndexPage($lines, $summary, $first_page, $name);
- for $page (@$Pages)
- {
- push @$lines, ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND);
- push @$lines, "<H2 ALIGN=\"Left\">$page->{name}</H2>\n";
- PrintIndexPage($lines, $summary, $page, $name);
- }
-}
-
-
-#+++############################################################################
-# #
-# Pass 2/3: handle style, menu, index, cross-reference #
-# #
-#---############################################################################
-
-@lines2 = (); # whole document (2nd pass)
-@lines3 = (); # whole document (3rd pass)
-$in_menu = 0; # am I inside a menu
-
-while (@lines) {
- $_ = shift(@lines);
- #
- # special case (protected sections)
- #
- if (/^$PROTECTTAG/o) {
- push(@lines2, $_);
- next;
- }
- #
- # menu
- #
- if (/^\@menu\b/)
- {
- $in_menu = 1;
- $in_menu_listing = 1;
- push(@lines2, &debug("<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> \n", __LINE__));
- next;
- }
- if (/^\@end\s+menu\b/)
- {
- if ($in_menu_listing)
- {
- push(@lines2, &debug("</TABLE></BLOCKQUOTE>\n", __LINE__));
- }
- else
- {
- push(@lines2, &debug("</BLOCKQUOTE>\n", __LINE__));
- }
- $in_menu = 0;
- $in_menu_listing = 0;
- next;
- }
- if ($in_menu)
- {
- my ($node, $name, $descr);
- if (/^\*\s+($NODERE)::/o)
- {
- $node = $1;
- $descr = $';
- }
- elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/)
- {
- $name = $1;
- $node = $2;
- $descr = $';
- }
- elsif (/^\*/)
- {
- warn "$ERROR Bad menu line: $_";
- }
- else
- {
- if ($in_menu_listing)
- {
- $in_menu_listing = 0;
- push(@lines2, &debug("</TABLE>\n", __LINE__));
- }
- # should be like verbatim -- preseve spaces, etc
- s/ /\&nbsp;/g;
- $_ .= "<br>\n";
- push(@lines2, $_);
- }
- if ($node)
- {
- if (! $in_menu_listing)
- {
- $in_menu_listing = 1;
- push(@lines2, &debug("<TABLE BORDER=0 CELLSPACING=0>\n", __LINE__));
- }
- # look for continuation
- while ($lines[0] =~ /^\s+\w+/)
- {
- $descr .= shift(@lines);
- }
- &menu_entry($node, $name, $descr);
- }
- next;
- }
- #
- # printindex
- #
- PrintIndex(\@lines2, $2, $1), next
- if (/^<!--::(.*)::-->\@printindex\s+(\w+)/);
- #
- # simple style substitutions
- #
- $_ = &substitute_style($_);
- #
- # xref
- #
- while (/\@(x|px|info|)ref{([^{}]+)(}?)/) {
- # note: Texinfo may accept other characters
- ($type, $nodes, $full) = ($1, $2, $3);
- ($before, $after) = ($`, $');
- if (! $full && $after) {
- warn "$ERROR Bad xref (no ending } on line): $_";
- $_ = "$before$;0${type}ref\{$nodes$after";
- next; # while xref
- }
- if ($type eq 'x') {
- $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} ";
- } elsif ($type eq 'px') {
- $type = "$T2H_WORDS->{$T2H_LANG}->{'see'} ";
- } elsif ($type eq 'info') {
- $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} Info";
- } else {
- $type = '';
- }
- unless ($full) {
- $next = shift(@lines);
- $next = &substitute_style($next);
- chop($nodes); # remove final newline
- if ($next =~ /\}/) { # split on 2 lines
- $nodes .= " $`";
- $after = $';
- } else {
- $nodes .= " $next";
- $next = shift(@lines);
- $next = &substitute_style($next);
- chop($nodes);
- if ($next =~ /\}/) { # split on 3 lines
- $nodes .= " $`";
- $after = $';
- } else {
- warn "$ERROR Bad xref (no ending }): $_";
- $_ = "$before$;0xref\{$nodes$after";
- unshift(@lines, $next);
- next; # while xref
- }
- }
- }
- $nodes =~ s/\s+/ /g; # remove useless spaces
- @args = split(/\s*,\s*/, $nodes);
- $node = $args[0]; # the node is always the first arg
- $node = &normalise_node($node);
- $sec = $args[2] || $args[1] || $node2sec{$node};
- $href = $node2href{$node};
- if (@args == 5) { # reference to another manual
- $sec = $args[2] || $node;
- $man = $args[4] || $args[3];
- $_ = "${before}${type}$T2H_WORDS->{$T2H_LANG}->{'section'} `$sec' in \@cite{$man}$after";
- } elsif ($type =~ /Info/) { # inforef
- warn "$ERROR Wrong number of arguments: $_" unless @args == 3;
- ($nn, $_, $in) = @args;
- $_ = "${before}${type} file `$in', node `$nn'$after";
- } elsif ($sec && $href && ! $T2H_SHORT_REF) {
- $_ = "${before}${type}";
- $_ .= "$T2H_WORDS->{$T2H_LANG}->{'section'} " if ${type};
- $_ .= &t2h_anchor('', $href, $sec) . $after;
- }
- elsif ($href)
- {
- $_ = "${before}${type} " .
- &t2h_anchor('', $href, $args[2] || $args[1] || $node) .
- $after;
- }
- else {
- warn "$ERROR Undefined node ($node): $_";
- $_ = "$before$;0xref{$nodes}$after";
- }
- }
-
- # replace images
- s[\@image\s*{(.+?)}]
- {
- my @args = split (/\s*,\s*/, $1);
- my $base = $args[0];
- my $image =
- LocateIncludeFile("$base.png") ||
- LocateIncludeFile("$base.jpg") ||
- LocateIncludeFile("$base.gif");
- warn "$ERROR no image file for $base: $_" unless ($image && -e $image);
- "<IMG SRC=\"$image\" ALT=\"$base\">";
- ($T2H_CENTER_IMAGE ?
- "<CENTER><IMG SRC=\"$image\" ALT=\"$base\"></CENTER>" :
- "<IMG SRC=\"$image\" ALT=\"$base\">");
- }eg;
-
- #
- # try to guess bibliography references or glossary terms
- #
- unless (/^<H\d><A NAME=\"SEC\d/) {
- if ($use_bibliography) {
- $done = '';
- while (/$BIBRE/o) {
- ($pre, $what, $post) = ($`, $&, $');
- $href = $bib2href{$what};
- if (defined($href) && $post !~ /^[^<]*<\/A>/) {
- $done .= $pre . &t2h_anchor('', $href, $what);
- } else {
- $done .= "$pre$what";
- }
- $_ = $post;
- }
- $_ = $done . $_;
- }
- if ($T2H_USE_GLOSSARY) {
- $done = '';
- while (/\b\w+\b/) {
- ($pre, $what, $post) = ($`, $&, $');
- $entry = $what;
- $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/;
- $href = $gloss2href{$entry};
- if (defined($href) && $post !~ /^[^<]*<\/A>/) {
- $done .= $pre . &t2h_anchor('', $href, $what);
- } else {
- $done .= "$pre$what";
- }
- $_ = $post;
- }
- $_ = $done . $_;
- }
- }
- # otherwise
- push(@lines2, $_);
-}
-print "# end of pass 2\n" if $T2H_VERBOSE;
-
-#
-# split style substitutions
-#
-while (@lines2) {
- $_ = shift(@lines2);
- #
- # special case (protected sections)
- #
- if (/^$PROTECTTAG/o) {
- push(@lines3, $_);
- next;
- }
- #
- # split style substitutions
- #
- $old = '';
- while ($old ne $_) {
- $old = $_;
- if (/\@(\w+)\{/) {
- ($before, $style, $after) = ($`, $1, $');
- if (defined($style_map{$style})) {
- $_ = $after;
- $text = '';
- $after = '';
- $failed = 1;
- while (@lines2) {
- if (/\}/) {
- $text .= $`;
- $after = $';
- $failed = 0;
- last;
- } else {
- $text .= $_;
- $_ = shift(@lines2);
- }
- }
- if ($failed) {
- die "* Bad syntax (\@$style) after: $before\n";
- } else {
- $text = &apply_style($style, $text);
- $_ = "$before$text$after";
- }
- }
- }
- }
- # otherwise
- push(@lines3, $_);
-}
-print "# end of pass 3\n" if $T2H_VERBOSE;
-
-#+++############################################################################
-# #
-# Pass 4: foot notes, final cleanup #
-# #
-#---############################################################################
-
-@foot_lines = (); # footnotes
-@doc_lines = (); # final document
-$end_of_para = 0; # true if last line is <P>
-
-while (@lines3) {
- $_ = shift(@lines3);
- #
- # special case (protected sections)
- #
- if (/^$PROTECTTAG/o) {
- push(@doc_lines, $_);
- $end_of_para = 0;
- next;
- }
- #
- # footnotes
- #
- while (/\@footnote([^\{\s]+)\{/) {
- ($before, $d, $after) = ($`, $1, $');
- $_ = $after;
- $text = '';
- $after = '';
- $failed = 1;
- while (@lines3) {
- if (/\}/) {
- $text .= $`;
- $after = $';
- $failed = 0;
- last;
- } else {
- $text .= $_;
- $_ = shift(@lines3);
- }
- }
- if ($failed) {
- die "* Bad syntax (\@footnote) after: $before\n";
- } else {
- $foot_num++;
- $docid = "DOCF$foot_num";
- $footid = "FOOT$foot_num";
- $foot = "($foot_num)";
- push(@foot_lines, "<H3>" . &t2h_anchor($footid, "$d#$docid", $foot) . "</H3>\n");
- $text = "<P>$text" unless $text =~ /^\s*<P>/;
- push(@foot_lines, "$text\n");
- $_ = $before . &t2h_anchor($docid, "$docu_foot#$footid", $foot) . $after;
- }
- }
- #
- # remove unnecessary <P>
- #
- if (/^\s*<P>\s*$/) {
- next if $end_of_para++;
- } else {
- $end_of_para = 0;
- }
- # otherwise
- push(@doc_lines, $_);
-}
-
-print "# end of pass 4\n" if $T2H_VERBOSE;
-
-#+++############################################################################
-# #
-# Pass 5: print things #
-# #
-#---############################################################################
-
-$T2H_L2H = &l2h_FinishToLatex if ($T2H_L2H);
-$T2H_L2H = &l2h_ToHtml if ($T2H_L2H);
-$T2H_L2H = &l2h_InitFromHtml if ($T2H_L2H);
-
-# fix node2up, node2prev, node2next, if desired
-if ($has_top_command)
-{
- for $section (keys %sec2number)
- {
- $node = $sec2node{$section};
- $node2up{$node} = Sec2UpNode($section) unless $node2up{$node};
- $node2prev{$node} = Sec2PrevNode($section) unless $node2prev{$node};
- $node2next{$node} = Sec2NextNode($section) unless $node2next{$node};
- }
-}
-
-# prepare %T2H_THISDOC
-$T2H_THISDOC{fulltitle} = $value{'_title'} || $value{'_settitle'} || "Untitled Document";
-$T2H_THISDOC{title} = $value{'_settitle'} || $T2H_THISDOC{fulltitle};
-$T2H_THISDOC{author} = $value{'_author'};
-$T2H_THISDOC{subtitle} = $value{'_subtitle'};
-$T2H_THISDOC{shorttitle} = $value{'_shorttitle'};
-for $key (keys %T2H_THISDOC)
-{
- $_ = &substitute_style($T2H_THISDOC{$key});
- &unprotect_texi;
- s/\s*$//;
- $T2H_THISDOC{$key} = $_;
-}
-
-# if no sections, then simply print document as is
-unless (@sections)
-{
- print "# Writing content into $docu_top_file \n" if $T2H_VERBOSE;
- open(FILE, "> $docu_top_file")
- || die "$ERROR: Can't open $docu_top_file for writing: $!\n";
-
- &$T2H_print_page_head(\*FILE);
- $T2H_THIS_SECTION = \@doc_lines;
- t2h_print_lines(\*FILE);
- &$T2H_print_foot_navigation(\*FILE);
- &$T2H_print_page_foot(\*FILE);
- close(FILE);
- goto Finish;
-}
-
-# initialize $T2H_HREF, $T2H_NAME
-%T2H_HREF =
- (
- 'First' , sec_href($sections[0]),
- 'Last', sec_href($sections[$#sections]),
- 'About', $docu_about. '#SEC_About',
- );
-
-# prepare TOC, OVERVIEW, TOP
-$T2H_TOC = \@toc_lines;
-$T2H_OVERVIEW = \@stoc_lines;
-if ($has_top)
-{
- while (1)
- {
- $_ = shift @doc_lines;
- last if /$TOPEND/;
- push @$T2H_TOP, $_;
- }
- $T2H_HREF{'Top'} = $docu_top . '#SEC_Top';
-}
-else
-{
- $T2H_HREF{'Top'} = $T2H_HREF{First};
-}
-
-$node2href{Top} = $T2H_HREF{Top};
-$T2H_HREF{Contents} = $docu_toc.'#SEC_Contents' if @toc_lines;
-$T2H_HREF{Overview} = $docu_stoc.'#SEC_OVERVIEW' if @stoc_lines;
-
-# settle on index
-if ($T2H_INDEX_CHAPTER)
-{
- $T2H_HREF{Index} = $node2href{normalise_node($T2H_INDEX_CHAPTER)};
- warn "$ERROR T2H_INDEX_CHAPTER '$T2H_INDEX_CHAPTER' not found\n"
- unless $T2H_HREF{Index};
-}
-if (! $T2H_HREF{Index} && $first_index_chapter)
-{
- $T2H_INDEX_CHAPTER = $first_index_chapter;
- $T2H_HREF{Index} = $node2href{$T2H_INDEX_CHAPTER};
-}
-
-print "# Using '" . clean_name($T2H_INDEX_CHAPTER) . "' as index page\n"
- if ($T2H_VERBOSE && $T2H_HREF{Index});
-
-%T2H_NAME =
- (
- 'First', clean_name($sec2node{$sections[0]}),
- 'Last', clean_name($sec2node{$sections[$#sections]}),
- 'About', $T2H_WORDS->{$T2H_LANG}->{'About_Title'},
- 'Contents', $T2H_WORDS->{$T2H_LANG}->{'ToC_Title'},
- 'Overview', $T2H_WORDS->{$T2H_LANG}->{'Overview_Title'},
- 'Index' , clean_name($T2H_INDEX_CHAPTER),
- 'Top', clean_name($T2H_TOP_HEADING || $T2H_THISDOC{'title'} || $T2H_THISDOC{'shorttitle'}),
- );
-
-#############################################################################
-# print frame and frame toc file
-#
-if ( $T2H_FRAMES )
-{
- open(FILE, "> $docu_frame_file")
- || die "$ERROR: Can't open $docu_frame_file for writing: $!\n";
- print "# Creating frame in $docu_frame_file ...\n" if $T2H_VERBOSE;
- &$T2H_print_frame(\*FILE);
- close(FILE);
-
- open(FILE, "> $docu_toc_frame_file")
- || die "$ERROR: Can't open $docu_toc_frame_file for writing: $!\n";
- print "# Creating toc frame in $docu_frame_file ...\n" if $T2H_VERBOSE;
- &$T2H_print_toc_frame(\*FILE);
- close(FILE);
-}
-
-
-#############################################################################
-# print Top
-#
-open(FILE, "> $docu_top_file")
- || die "$ERROR: Can't open $docu_top_file for writing: $!\n";
-&$T2H_print_page_head(\*FILE) unless ($T2H_SPLIT);
-
-if ($has_top)
-{
- print "# Creating Top in $docu_top_file ...\n" if $T2H_VERBOSE;
- $T2H_THIS_SECTION = $T2H_TOP;
- $T2H_HREF{This} = $T2H_HREF{Top};
- $T2H_NAME{This} = $T2H_NAME{Top};
- &$T2H_print_Top(\*FILE);
-}
-
-close(FILE) if $T2H_SPLIT;
-
-#############################################################################
-# Print sections
-#
-$T2H_NODE{Forward} = $sec2node{$sections[0]};
-$T2H_NAME{Forward} = &clean_name($sec2node{$sections[0]});
-$T2H_HREF{Forward} = sec_href($sections[0]);
-$T2H_NODE{This} = 'Top';
-$T2H_NAME{This} = $T2H_NAME{Top};
-$T2H_HREF{This} = $T2H_HREF{Top};
-if ($T2H_SPLIT)
-{
- print "# writing " . scalar(@sections) .
- " sections in $docu_rdir$docu_name"."_[1..$doc_num]"
- if $T2H_VERBOSE;
- $previous = ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND);
- undef $FH;
- $doc_num = 0;
-}
-else
-{
- print "# writing " . scalar(@sections) . " sections in $docu_top_file ..."
- if $T2H_VERBOSE;
- $FH = \*FILE;
- $previous = '';
-}
-
-$counter = 0;
-# loop through sections
-while ($section = shift(@sections))
-{
- if ($T2H_SPLIT && ($T2H_SPLIT eq 'section' || $previous eq $CHAPTEREND))
- {
- if ($FH)
- {
- #close previous page
- &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter';
- &$T2H_print_page_foot($FH);
- close($FH);
- undef $FH;
- }
- }
- $T2H_NAME{Back} = $T2H_NAME{This};
- $T2H_HREF{Back} = $T2H_HREF{This};
- $T2H_NODE{Back} = $T2H_NODE{This};
- $T2H_NAME{This} = $T2H_NAME{Forward};
- $T2H_HREF{This} = $T2H_HREF{Forward};
- $T2H_NODE{This} = $T2H_NODE{Forward};
- if ($sections[0])
- {
- $T2H_NODE{Forward} = $sec2node{$sections[0]};
- $T2H_NAME{Forward} = &clean_name($T2H_NODE{Forward});
- $T2H_HREF{Forward} = sec_href($sections[0]);
- }
- else
- {
- undef $T2H_HREF{Forward}, $T2H_NODE{Forward}, $T2H_NAME{Forward};
- }
-
- $node = $node2up{$T2H_NODE{This}};
- $T2H_HREF{Up} = $node2href{$node};
- if ($T2H_HREF{Up} eq $T2H_HREF{This} || ! $T2H_HREF{Up})
- {
- $T2H_NAME{Up} = $T2H_NAME{Top};
- $T2H_HREF{Up} = $T2H_HREF{Top};
- $T2H_NODE{Up} = 'Up';
- }
- else
- {
- $T2H_NAME{Up} = &clean_name($node);
- $T2H_NODE{Up} = $node;
- }
-
- $node = $T2H_NODE{This};
- $node = $node2prev{$node};
- $T2H_NAME{Prev} = &clean_name($node);
- $T2H_HREF{Prev} = $node2href{$node};
- $T2H_NODE{Prev} = $node;
-
- $node = $T2H_NODE{This};
- if ($node2up{$node} && $node2up{$node} ne 'Top'&&
- ($node2prev{$node} eq $T2H_NODE{Back} || ! $node2prev{$node}))
- {
- $node = $node2up{$node};
- while ($node && $node ne $node2up{$node} && ! $node2prev{$node})
- {
- $node = $node2up{$node};
- }
- $node = $node2prev{$node}
- unless $node2up{$node} eq 'Top' || ! $node2up{$node};
- }
- else
- {
- $node = $node2prev{$node};
- }
- $T2H_NAME{FastBack} = &clean_name($node);
- $T2H_HREF{FastBack} = $node2href{$node};
- $T2H_NODE{FastBack} = $node;
-
- $node = $T2H_NODE{This};
- $node = $node2next{$node};
- $T2H_NAME{Next} = &clean_name($node);
- $T2H_HREF{Next} = $node2href{$node};
- $T2H_NODE{Next} = $node;
-
- $node = $T2H_NODE{This};
- if ($node2up{$node} && $node2up{$node} ne 'Top'&&
- ($node2next{$node} eq $T2H_NODE{Forward} || ! $node2next{$node}))
- {
- $node = $node2up{$node};
- while ($node && $node ne $node2up{$node} && ! $node2next{$node})
- {
- $node = $node2up{$node};
- }
- }
- $node = $node2next{$node};
- $T2H_NAME{FastForward} = &clean_name($node);
- $T2H_HREF{FastForward} = $node2href{$node};
- $T2H_NODE{FastForward} = $node;
-
- if (! defined($FH))
- {
- my $file = $T2H_HREF{This};
- $file =~ s/\#.*$//;
- open(FILE, "> $docu_rdir$file") ||
- die "$ERROR: Can't open $docu_rdir$file for writing: $!\n";
- $FH = \*FILE;
- &$T2H_print_page_head($FH);
- t2h_print_label($FH);
- &$T2H_print_chapter_header($FH) if $T2H_SPLIT eq 'chapter';
- }
- else
- {
- t2h_print_label($FH);
- }
-
- $T2H_THIS_SECTION = [];
- while (@doc_lines) {
- $_ = shift(@doc_lines);
- last if ($_ eq $SECTIONEND || $_ eq $CHAPTEREND);
- push(@$T2H_THIS_SECTION, $_);
- }
- $previous = $_;
- &$T2H_print_section($FH);
-
- if ($T2H_VERBOSE)
- {
- $counter++;
- print "." if $counter =~ /00$/;
- }
-}
-if ($T2H_SPLIT)
-{
- &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter';
- &$T2H_print_page_foot($FH);
- close($FH);
-}
-print "\n" if $T2H_VERBOSE;
-
-#############################################################################
-# Print ToC, Overview, Footnotes
-#
-undef $T2H_HREF{Prev};
-undef $T2H_HREF{Next};
-undef $T2H_HREF{Back};
-undef $T2H_HREF{Forward};
-undef $T2H_HREF{Up};
-
-if (@foot_lines)
-{
- print "# writing Footnotes in $docu_foot_file...\n" if $T2H_VERBOSE;
- open (FILE, "> $docu_foot_file") || die "$ERROR: Can't open $docu_foot_file for writing: $!\n"
- if $T2H_SPLIT;
- $T2H_HREF{This} = $docu_foot;
- $T2H_NAME{This} = $T2H_WORDS->{$T2H_LANG}->{'Footnotes_Title'};
- $T2H_THIS_SECTION = \@foot_lines;
- &$T2H_print_Footnotes(\*FILE);
- close(FILE) if $T2H_SPLIT;
-}
-
-if (@toc_lines)
-{
- print "# writing Toc in $docu_toc_file...\n" if $T2H_VERBOSE;
- open (FILE, "> $docu_toc_file") || die "$ERROR: Can't open $docu_toc_file for writing: $!\n"
- if $T2H_SPLIT;
- $T2H_HREF{This} = $T2H_HREF{Contents};
- $T2H_NAME{This} = $T2H_NAME{Contents};
- $T2H_THIS_SECTION = \@toc_lines;
- &$T2H_print_Toc(\*FILE);
- close(FILE) if $T2H_SPLIT;
-}
-
-if (@stoc_lines)
-{
- print "# writing Overview in $docu_stoc_file...\n" if $T2H_VERBOSE;
- open (FILE, "> $docu_stoc_file") || die "$ERROR: Can't open $docu_stoc_file for writing: $!\n"
- if $T2H_SPLIT;
-
- $T2H_HREF{This} = $T2H_HREF{Overview};
- $T2H_NAME{This} = $T2H_NAME{Overview};
- $T2H_THIS_SECTION = \@stoc_lines;
- unshift @$T2H_THIS_SECTION, "<BLOCKQUOTE>\n";
- push @$T2H_THIS_SECTION, "\n</BLOCKQUOTE>\n";
- &$T2H_print_Overview(\*FILE);
- close(FILE) if $T2H_SPLIT;
-}
-
-if ($about_body = &$T2H_about_body())
-{
- print "# writing About in $docu_about_file...\n" if $T2H_VERBOSE;
- open (FILE, "> $docu_about_file") || die "$ERROR: Can't open $docu_about_file for writing: $!\n"
- if $T2H_SPLIT;
-
- $T2H_HREF{This} = $T2H_HREF{About};
- $T2H_NAME{This} = $T2H_NAME{About};
- $T2H_THIS_SECTION = [$about_body];
- &$T2H_print_About(\*FILE);
- close(FILE) if $T2H_SPLIT;
-}
-
-unless ($T2H_SPLIT)
-{
- &$T2H_print_page_foot(\*FILE);
- close (FILE);
-}
-
-Finish:
-&l2h_FinishFromHtml if ($T2H_L2H);
-&l2h_Finish if($T2H_L2H);
-print "# that's all folks\n" if $T2H_VERBOSE;
-
-exit(0);
-
-#+++############################################################################
-# #
-# Low level functions #
-# #
-#---############################################################################
-
-sub LocateIncludeFile
-{
- my $file = shift;
- my $dir;
-
- return $file if (-e $file && -r $file);
- foreach $dir (@T2H_INCLUDE_DIRS)
- {
- return "$dir/$file" if (-e "$dir/$file" && -r "$dir/$file");
- }
- return undef;
-}
-
-sub clean_name
-{
- local ($_);
- $_ = &remove_style($_[0]);
- &unprotect_texi;
- return $_;
-}
-
-sub update_sec_num {
- local($name, $level) = @_;
- my $ret;
-
- $level--; # here we start at 0
- if ($name =~ /^appendix/ || defined(@appendix_sec_num)) {
- # appendix style
- if (defined(@appendix_sec_num)) {
- &incr_sec_num($level, @appendix_sec_num);
- } else {
- @appendix_sec_num = ('A', 0, 0, 0);
- }
- $ret = join('.', @appendix_sec_num[0..$level]);
- } else {
- # normal style
- if (defined(@normal_sec_num))
- {
- &incr_sec_num($level, @normal_sec_num);
- }
- else
- {
- @normal_sec_num = (1, 0, 0, 0);
- }
- $ret = join('.', @normal_sec_num[0..$level]);
- }
-
- $ret .= "." if $level == 0;
- return $ret;
-}
-
-sub incr_sec_num {
- local($level, $l);
- $level = shift(@_);
- $_[$level]++;
- foreach $l ($level+1 .. 3) {
- $_[$l] = 0;
- }
-}
-
-sub Sec2UpNode
-{
- my $sec = shift;
- my $num = $sec2number{$sec};
-
- return '' unless $num;
- return 'Top' unless $num =~ /\.\d+/;
- $num =~ s/\.[^\.]*$//;
- $num = $num . '.' unless $num =~ /\./;
- return $sec2node{$number2sec{$num}};
-}
-
-sub Sec2PrevNode
-{
- my $sec = shift;
- my $num = $sec2number{$sec};
- my ($i, $post);
-
- if ($num =~ /(\w+)(\.$|$)/)
- {
- $num = $`;
- $i = $1;
- $post = $2;
- if ($i eq 'A')
- {
- $i = $normal_sec_num[0];
- }
- elsif ($i ne '1')
- {
- # unfortunately, -- operator is not magical
- $i = chr(ord($i) + 1);
- }
- else
- {
- return '';
- }
- return $sec2node{$number2sec{$num . $i . $post}}
- }
- return '';
-}
-
-sub Sec2NextNode
-{
- my $sec = shift;
- my $num = $sec2number{$sec};
- my $i;
-
- if ($num =~ /(\w+)(\.$|$)/)
- {
- $num = $`;
- $i = $1;
- $post = $2;
- if ($post eq '.' && $i eq $normal_sec_num[0])
- {
- $i = 'A';
- }
- else
- {
- $i++;
- }
- return $sec2node{$number2sec{$num . $i . $post}}
- }
- return '';
-}
-
-sub check {
- local($_, %seen, %context, $before, $match, $after);
-
- while (<>) {
- if (/\@(\*|\.|\:|\@|\{|\})/) {
- $seen{$&}++;
- $context{$&} .= "> $_" if $T2H_VERBOSE;
- $_ = "$`XX$'";
- redo;
- }
- if (/\@(\w+)/) {
- ($before, $match, $after) = ($`, $&, $');
- if ($before =~ /\b[\w-]+$/ && $after =~ /^[\w-.]*\b/) { # e-mail address
- $seen{'e-mail address'}++;
- $context{'e-mail address'} .= "> $_" if $T2H_VERBOSE;
- } else {
- $seen{$match}++;
- $context{$match} .= "> $_" if $T2H_VERBOSE;
- }
- $match =~ s/^\@/X/;
- $_ = "$before$match$after";
- redo;
- }
- }
-
- foreach (sort(keys(%seen))) {
- if ($T2H_VERBOSE) {
- print "$_\n";
- print $context{$_};
- } else {
- print "$_ ($seen{$_})\n";
- }
- }
-}
-
-sub open {
- local($name) = @_;
-
- ++$fh_name;
- if (open($fh_name, $name)) {
- unshift(@fhs, $fh_name);
- } else {
- warn "$ERROR Can't read file $name: $!\n";
- }
-}
-
-sub init_input {
- @fhs = (); # hold the file handles to read
- @input_spool = (); # spooled lines to read
- $fh_name = 'FH000';
- &open($docu);
-}
-
-sub next_line {
- local($fh, $line);
-
- if (@input_spool) {
- $line = shift(@input_spool);
- return($line);
- }
- while (@fhs) {
- $fh = $fhs[0];
- $line = <$fh>;
- return($line) if $line;
- close($fh);
- shift(@fhs);
- }
- return(undef);
-}
-
-# used in pass 1, use &next_line
-sub skip_until {
- local($tag) = @_;
- local($_);
-
- while ($_ = &next_line) {
- return if /^\@end\s+$tag\s*$/;
- }
- die "* Failed to find '$tag' after: " . $lines[$#lines];
-}
-
-# used in pass 1 for l2h use &next_line
-sub string_until {
- local($tag) = @_;
- local($_, $string);
-
- while ($_ = &next_line) {
- return $string if /^\@end\s+$tag\s*$/;
-# $_ =~ s/hbox/mbox/g;
- $string = $string.$_;
- }
- die "* Failed to find '$tag' after: " . $lines[$#lines];
-}
-
-#
-# HTML stacking to have a better HTML output
-#
-
-sub html_reset {
- @html_stack = ('html');
- $html_element = 'body';
-}
-
-sub html_push {
- local($what) = @_;
- push(@html_stack, $html_element);
- $html_element = $what;
-}
-
-sub html_push_if {
- local($what) = @_;
- push(@html_stack, $html_element)
- if ($html_element && $html_element ne 'P');
- $html_element = $what;
-}
-
-sub html_pop {
- $html_element = pop(@html_stack);
-}
-
-sub html_pop_if {
- local($elt);
-
- if (@_) {
- foreach $elt (@_) {
- if ($elt eq $html_element) {
- $html_element = pop(@html_stack) if @html_stack;
- last;
- }
- }
- } else {
- $html_element = pop(@html_stack) if @html_stack;
- }
-}
-
-sub html_debug {
- local($what, $line) = @_;
- if ($T2H_DEBUG & $DEBUG_HTML)
- {
- $what = "\n" unless $what;
- return("<!-- $line @html_stack, $html_element -->$what")
- }
- return($what);
-}
-
-# to debug the output...
-sub debug {
- local($what, $line) = @_;
- return("<!-- $line -->$what")
- if $T2H_DEBUG & $DEBUG_HTML;
- return($what);
-}
-
-sub SimpleTexi2Html
-{
- local $_ = $_[0];
- &protect_texi;
- &protect_html;
- $_ = substitute_style($_);
- $_[0] = $_;
-}
-
-sub normalise_node {
- local $_ = $_[0];
- s/\s+/ /g;
- s/ $//;
- s/^ //;
- &protect_texi;
- &protect_html;
- $_ = substitute_style($_);
- $_[0] = $_;
-}
-
-sub menu_entry
-{
- my ($node, $name, $descr) = @_;
- my ($href, $entry);
-
- &normalise_node($node);
- $href = $node2href{$node};
- if ($href)
- {
- $descr =~ s/^\s+//;
- $descr =~ s/\s*$//;
- $descr = SimpleTexi2Html($descr);
- if ($T2H_NUMBER_SECTIONS && !$T2H_NODE_NAME_IN_MENU && $node2sec{$node})
- {
- $entry = $node2sec{$node};
- $name = '';
- }
- else
- {
- &normalise_node($name);
- $entry = ($name && ($name ne $node || ! $T2H_AVOID_MENU_REDUNDANCY)
- ? "$name : $node" : $node);
- }
-
- if ($T2H_AVOID_MENU_REDUNDANCY && $descr)
- {
- my $clean_entry = $entry;
- $clean_entry =~ s/^.*? // if ($clean_entry =~ /^([A-Z]|\d+)\.[\d\.]* /);
- $clean_entry =~ s/[^\w]//g;
- my $clean_descr = $descr;
- $clean_descr =~ s/[^\w]//g;
- $descr = '' if ($clean_entry eq $clean_descr)
- }
- push(@lines2,&debug('<TR><TD ALIGN="left" VALIGN="TOP">' .
- &t2h_anchor('', $href, $entry) .
- '</TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">' .
- $descr .
- "</TD></TR>\n", __LINE__));
- }
- elsif ($node =~ /^\(.*\)\w+/)
- {
- push(@lines2,&debug('<TR><TD ALIGN="left" VALIGN="TOP">' .
- $entry .
- '</TD><TD ALIGN="left" VALIGN="TOP">' . $descr .
- "</TD></TR>\n", __LINE__))
- }
- else
- {
- warn "$ERROR Undefined node of menu_entry ($node): $_";
- }
-}
-
-sub do_ctrl { "^$_[0]" }
-
-sub do_email {
- local($addr, $text) = split(/,\s*/, $_[0]);
-
- $text = $addr unless $text;
- &t2h_anchor('', "mailto:$addr", $text);
-}
-
-sub do_sc
-{
- # l2h does this much better
- return &l2h_ToLatex("{\\sc ".&unprotect_html($_[0])."}") if ($T2H_L2H);
- return "\U$_[0]\E";
-}
-
-sub do_math
-{
- return &l2h_ToLatex("\$".&unprotect_html($_[0])."\$") if ($T2H_L2H);
- return "<EM>".$text."</EM>";
-}
-
-sub do_uref {
- local($url, $text, $only_text) = split(/,\s*/, $_[0]);
-
- $text = $only_text if $only_text;
- $text = $url unless $text;
- &t2h_anchor('', $url, $text);
-}
-
-sub do_url { &t2h_anchor('', $_[0], $_[0]) }
-
-sub do_acronym
-{
- return '<FONT SIZE="-1">' . $_[0] . '</FONT>';
-}
-
-sub do_accent
-{
- return "&$_[0]acute;" if $_[1] eq 'H';
- return "$_[0]." if $_[1] eq 'dotaccent';
- return "$_[0]*" if $_[1] eq 'ringaccent';
- return "$_[0]".'[' if $_[1] eq 'tieaccent';
- return "$_[0]".'(' if $_[1] eq 'u';
- return "$_[0]_" if $_[1] eq 'ubaraccent';
- return ".$_[0]" if $_[1] eq 'udotaccent';
- return "$_[0]&lt;" if $_[1] eq 'v';
- return "&$_[0]cedil;" if $_[1] eq ',';
- return "$_[0]" if $_[1] eq 'dotless';
- return undef;
-}
-
-sub apply_style {
- local($texi_style, $text) = @_;
- local($style);
-
- $style = $style_map{$texi_style};
- if (defined($style)) { # known style
- if ($style =~ /^\"/) { # add quotes
- $style = $';
- $text = "\`$text\'";
- }
- if ($style =~ /^\&/) { # custom
- $style = $';
- $text = &$style($text, $texi_style);
- } elsif ($style) { # good style
- $text = "<$style>$text</$style>";
- } else { # no style
- }
- } else { # unknown style
- $text = undef;
- }
- return($text);
-}
-
-# remove Texinfo styles
-sub remove_style {
- local($_) = @_;
- 1 while(s/\@\w+{([^\{\}]+)}/$1/g);
- return($_);
-}
-
-sub remove_things
-{
- local ($_) = @_;
- s|\@(\w+)\{\}|$1|g;
- return $_;
-}
-
-sub substitute_style {
- local($_) = @_;
- local($changed, $done, $style, $text);
-
- &simple_substitutions;
- $changed = 1;
- while ($changed) {
- $changed = 0;
- $done = '';
- while (/\@(\w+){([^\{\}]+)}/ || /\@(,){([^\{\}]+)}/) {
- $text = &apply_style($1, $2);
- if ($text) {
- $_ = "$`$text$'";
- $changed = 1;
- } else {
- $done .= "$`\@$1";
- $_ = "{$2}$'";
- }
- }
- $_ = $done . $_;
- }
- return($_);
-}
-
-sub t2h_anchor {
- local($name, $href, $text, $newline, $extra_attribs) = @_;
- local($result);
-
- $result = "<A";
- $result .= " NAME=\"$name\"" if $name;
- if ($href)
- {
- $href =~ s|^$T2H_HREF_DIR_INSTEAD_FILE|./|
- if ($T2H_HREF_DIR_INSTEAD_FILE);
- $result .= ($href =~ /\"/ ? " HREF='$href'" : " HREF=\"$href\"");
- }
- $result .= " $extra_attribs" if $extra_attribs;
- $result .= ">$text</A>";
- $result .= "\n" if $newline;
- return($result);
-}
-
-sub pretty_date {
- local(@MoY, $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
-
- @MoY = ('January', 'February', 'March', 'April', 'May', 'June',
- 'July', 'August', 'September', 'October', 'November', 'December');
- ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
- $year += ($year < 70) ? 2000 : 1900;
- # obachman: Let's do it as the Americans do
- return("$MoY[$mon], $mday $year");
-}
-
-sub doc_href {
- local($num) = @_;
-
- return("${docu_name}_$num.$docu_ext");
-}
-
-sub sec_href
-{
- return $node2href{$sec2node{$_[0]}};
-}
-
-sub next_doc {
- $docu_doc = &doc_href(++$doc_num);
-}
-
-sub t2h_print_lines {
- my ($fh, $lines) = @_;
- local($_);
- $lines = $T2H_THIS_SECTION unless $lines;
- my $cnt = 0;
- for (@$lines)
- {
- $_ = l2h_FromHtml($_) if ($T2H_L2H);
- if (/^$PROTECTTAG/o) {
- $_ = $tag2pro{$_};
- } else {
- &unprotect_texi;
- }
- print $fh $_;
- $cnt += split(/\W*\s+\W*/);
- }
- return $cnt;
-}
-
-sub protect_texi {
- # protect @ { } ` '
- s/\@\@/$;0/go;
- s/\@\{/$;1/go;
- s/\@\}/$;2/go;
- s/\@\`/$;3/go;
- s/\@\'/$;4/go;
-}
-
-sub protect_html {
- local($what) = @_;
- # protect & < >
- $what =~ s/\&/\&\#38;/g;
- $what =~ s/\</\&\#60;/g;
- $what =~ s/\>/\&\#62;/g;
- # restore anything in quotes
- # this fixes my problem where I had:
- # < IMG SRC="leftarrow.gif" ALT="<--" > but what if I wanted &#60; in my ALT text ??
- # maybe byte stuffing or some other technique should be used.
- $what =~ s/\"([^\&]+)\&\#60;(.*)\"/"$1<$2"/g;
- $what =~ s/\"([^\&]+)\&\#62;(.*)\"/"$1>$2"/g;
- $what =~ s/\"([^\&]+)\&\#38;(.*)\"/"$1&$2"/g;
- # but recognize some HTML things
- $what =~ s/\&\#60;\/A\&\#62;/<\/A>/g; # </A>
- $what =~ s/\&\#60;A ([^\&]+)\&\#62;/<A $1>/g; # <A [^&]+>
- $what =~ s/\&\#60;IMG ([^\&]+)\&\#62;/<IMG $1>/g; # <IMG [^&]+>
- return($what);
-}
-
-sub unprotect_texi {
- s/$;0/\@/go;
- s/$;1/\{/go;
- s/$;2/\}/go;
- s/$;3/\`/go;
- s/$;4/\'/go;
-}
-
-sub Unprotect_texi
-{
- local $_ = shift;
- &unprotect_texi;
- return($_);
-}
-
-sub unprotect_html {
- local($what) = @_;
- $what =~ s/\&\#38;/\&/g;
- $what =~ s/\&\#60;/\</g;
- $what =~ s/\&\#62;/\>/g;
- return($what);
-}
-
-sub t2h_print_label
-{
- my $fh = shift;
- my $href = shift || $T2H_HREF{This};
- $href =~ s/.*#(.*)$/$1/;
- print $fh qq{<A NAME="$href"></A>\n};
-}
-
-##############################################################################
-
- # These next few lines are legal in both Perl and nroff.
-
-.00 ; # finish .ig
-
-'di \" finish diversion--previous line must be blank
-.nr nl 0-1 \" fake up transition to first page again
-.nr % 0 \" start at page 1
-'; __END__ ############# From here on it's a standard manual page ############
-.so /usr/local/man/man1/texi2html.1
diff --git a/readline-4.3.orig/doc/texinfo.tex b/readline-4.3.orig/doc/texinfo.tex
deleted file mode 100644
index c49af9f..0000000
--- a/readline-4.3.orig/doc/texinfo.tex
+++ /dev/null
@@ -1,5992 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-%
-% Load plain if necessary, i.e., if running under initex.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-%
-\def\texinfoversion{1999-09-25.10}
-%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
-% Free Software Foundation, Inc.
-%
-% This texinfo.tex file is free software; you can redistribute it and/or
-% modify it under the terms of the GNU General Public License as
-% published by the Free Software Foundation; either version 2, or (at
-% your option) any later version.
-%
-% This texinfo.tex file is distributed in the hope that it will be
-% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-% General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this texinfo.tex file; see the file COPYING. If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them. Help stamp out software-hoarding!
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-% ftp://ftp.gnu.org/gnu/texinfo.tex
-% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
-% ftp://texinfo.org/tex/texinfo.tex
-% ftp://us.ctan.org/macros/texinfo/texinfo.tex
-% (and all CTAN mirrors, finger ctan@us.ctan.org for a list).
-% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-% The texinfo.tex in any given Texinfo distribution could well be out
-% of date, so if that's what you're using, please check.
-% Texinfo has a small home page at http://texinfo.org/.
-%
-% Send bug reports to bug-texinfo@gnu.org. Please include including a
-% complete document in each bug report with which we can reproduce the
-% problem. Patches are, of course, greatly appreciated.
-%
-% To process a Texinfo manual with TeX, it's most reliable to use the
-% texi2dvi shell script that comes with the distribution. For a simple
-% manual foo.texi, however, you can get away with this:
-% tex foo.texi
-% texindex foo.??
-% tex foo.texi
-% tex foo.texi
-% dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps.
-% The extra runs of TeX get the cross-reference information correct.
-% Sometimes one run after texindex suffices, and sometimes you need more
-% than two; texi2dvi does it as many times as necessary.
-%
-% It is possible to adapt texinfo.tex for other languages. You can get
-% the existing language-specific files from ftp://ftp.gnu.org/gnu/texinfo/.
-
-\message{Loading texinfo [version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}%
- \catcode`+=\active \catcode`\_=\active}
-
-% Save some parts of plain tex whose names we will redefine.
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexi=\i
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexstar=\*
-\let\ptext=\t
-
-% We never want plain's outer \+ definition in Texinfo.
-% For @tex, we can use \tabalign.
-\let\+ = \relax
-
-\message{Basics,}
-\chardef\other=12
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Set up fixed words for English if not already set.
-\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
-\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
-\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
-\ifx\putwordin\undefined \gdef\putwordin{in}\fi
-\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
-\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
-\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
-\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
-\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
-\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi
-\ifx\putwordof\undefined \gdef\putwordof{of}\fi
-\ifx\putwordon\undefined \gdef\putwordon{on}\fi
-\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
-\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
-\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
-\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
-\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
-\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi
-\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi
-%
-\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
-\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
-\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
-\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
-\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
-\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
-\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
-\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
-\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
-\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
-\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
-\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
-%
-\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi
-\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
-\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
-\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
-\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi
-\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
-\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
-\hyphenation{white-space}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal. We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\ifx\eTeXversion\undefined
-\def\loggingall{\tracingcommands2 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\else
-\def\loggingall{\tracingcommands3 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \tracingscantokens1 \tracingassigns1 \tracingifs1
- \tracinggroups1 \tracingnesting2
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\fi
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-%
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\cornerlong \cornerlong=1pc
-\newdimen\cornerthick \cornerthick=.3pt
-\newdimen\topandbottommargin \topandbottommargin=.75in
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
- \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
- %
- \ifodd\pageno \advance\hoffset by \bindingoffset
- \else \advance\hoffset by -\bindingoffset\fi
- %
- % Do this outside of the \shipout so @code etc. will be expanded in
- % the headline as they should be, not taken literally (outputting ''code).
- \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
- \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
- %
- {%
- % Have to do this stuff outside the \shipout because we want it to
- % take effect in \write's, yet the group defined by the \vbox ends
- % before the \shipout runs.
- %
- \escapechar = `\\ % use backslash in output files.
- \indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
- \shipout\vbox{%
- \ifcropmarks \vbox to \outervsize\bgroup
- \hsize = \outerhsize
- \vskip-\topandbottommargin
- \vtop to0pt{%
- \line{\ewtop\hfil\ewtop}%
- \nointerlineskip
- \line{%
- \vbox{\moveleft\cornerthick\nstop}%
- \hfill
- \vbox{\moveright\cornerthick\nstop}%
- }%
- \vss}%
- \vskip\topandbottommargin
- \line\bgroup
- \hfil % center the page within the outer (page) hsize.
- \ifodd\pageno\hskip\bindingoffset\fi
- \vbox\bgroup
- \fi
- %
- \unvbox\headlinebox
- \pagebody{#1}%
- \ifdim\ht\footlinebox > 0pt
- % Only leave this space if the footline is nonempty.
- % (We lessened \vsize for it in \oddfootingxxx.)
- % The \baselineskip=24pt in plain's \makefootline has no effect.
- \vskip 2\baselineskip
- \unvbox\footlinebox
- \fi
- %
- \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
- %
- \ifcropmarks
- \egroup % end of \vbox\bgroup
- \hfil\egroup % end of (centering) \line\bgroup
- \vskip\topandbottommargin plus1fill minus1fill
- \boxmaxdepth = \cornerthick
- \vbox to0pt{\vss
- \line{%
- \vbox{\moveleft\cornerthick\nsbot}%
- \hfill
- \vbox{\moveright\cornerthick\nsbot}%
- }%
- \nointerlineskip
- \line{\ewbot\hfil\ewbot}%
- }%
- \egroup % \vbox from first cropmarks clause
- \fi
- }% end of \shipout\vbox
- }% end of group with \turnoffactive
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, juha@viisa.uucp (Juha Takala)
-\ifvoid\margin\else % marginal info is present
- \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1 \unvbox#1
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
-\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks. Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
- {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
- {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1. The argument is the rest of
-% the input line (except we remove a trailing comment). #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg#1{%
- \let\next = #1%
- \begingroup
- \obeylines
- \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse. Otherwise, we're done.
-\def\parseargx{%
- % \obeyedspace is defined far below, after the definition of \sepspaces.
- \ifx\obeyedspace\temp
- \expandafter\parseargdiscardspace
- \else
- \expandafter\parseargline
- \fi
-}
-
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
-{\obeylines %
- \gdef\parseargline#1^^M{%
- \endgroup % End of the group started in \parsearg.
- %
- % First remove any @c comment, then any @comment.
- % Result of each macro is put in \toks0.
- \argremovec #1\c\relax %
- \expandafter\argremovecomment \the\toks0 \comment\relax %
- %
- % Call the caller's macro, saved as \next in \parsearg.
- \expandafter\next\expandafter{\the\toks0}%
- }%
-}
-
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us. The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
-
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
-% @end itemize @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'. Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands. (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.) But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
- \begingroup
- \ignoreactivespaces
- \edef\temp{#1}%
- \global\toks0 = \expandafter{\temp}%
- \endgroup
-}
-
-% Change the active space to expand to nothing.
-%
-\begingroup
- \obeyspaces
- \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment; press RETURN to continue}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
-
-% @begin foo is the same as @foo, for now.
-\newhelp\EMsimple{Press RETURN to continue.}
-
-\outer\def\begin{\parsearg\beginxxx}
-
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
-
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
- \removeactivespaces{#1}%
- \edef\endthing{\the\toks0}%
- %
- \expandafter\ifx\csname E\endthing\endcsname\relax
- \expandafter\ifx\csname \endthing\endcsname\relax
- % There's no \foo, i.e., no ``environment'' foo.
- \errhelp = \EMsimple
- \errmessage{Undefined command `@end \endthing'}%
- \else
- \unmatchedenderror\endthing
- \fi
- \else
- % Everything's ok; the right environment has been started.
- \csname E\endthing\endcsname
- \fi
-}
-
-% There is an environment #1, but it hasn't been started. Give an error.
-%
-\def\unmatchedenderror#1{%
- \errhelp = \EMsimple
- \errmessage{This `@end #1' doesn't have a matching `@#1'}%
-}
-
-% Define the control sequence \E#1 to give an unmatched @end error.
-%
-\def\defineunmatchedend#1{%
- \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
-}
-
-
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
- % Why was this kern here? It messes up equalizing space above and below
- % environments. --karl, 6may93
- %{\advance \baselineskip by -\singlespaceskip
- %\kern \baselineskip}%
- \setleading \singlespaceskip
-}
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt\char64}}
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt\char123}}
-\def\myrbrace {{\tt\char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
- % Definitions to produce actual \{ & \} command in an index.
- \catcode`\{ = 12 \catcode`\} = 12
- \catcode`\[ = 1 \catcode`\] = 2
- \catcode`\@ = 0 \catcode`\\ = 12
- @gdef@lbracecmd[\{]%
- @gdef@rbracecmd[\}]%
-@endgroup
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
- \def\temp{#1}%
- \ifx\temp\imacro \ptexi
- \else\ifx\temp\jmacro \j
- \else \errmessage{@dotless can be used only with i or j}%
- \fi\fi
-}
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using \@M directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = \@M
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
-
-% @w prevents a word break. Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line. According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0). If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-\def\group{\begingroup
- \ifnum\catcode13=\active \else
- \errhelp = \groupinvalidhelp
- \errmessage{@group invalid in context where filling is enabled}%
- \fi
- %
- % The \vtop we start below produces a box with normal height and large
- % depth; thus, TeX puts \baselineskip glue before it, and (when the
- % next line of text is done) \lineskip glue after it. (See p.82 of
- % the TeXbook.) Thus, space below is not quite equal to space
- % above. But it's pretty close.
- \def\Egroup{%
- \egroup % End the \vtop.
- \endgroup % End the \group.
- }%
- %
- \vtop\bgroup
- % We have to put a strut on the last line in case the @group is in
- % the midst of an example, rather than completely enclosing it.
- % Otherwise, the interline space between the last line of the group
- % and the first line afterwards is too small. But we can't put the
- % strut in \Egroup, since there it would be on a line by itself.
- % Hence this just inserts a strut at the beginning of each line.
- \everypar = {\strut}%
- %
- % Since we have a strut on every line, we don't need any of TeX's
- % normal interline spacing.
- \offinterlineskip
- %
- % OK, but now we have to do something about blank
- % lines in the input in @example-like environments, which normally
- % just turn into \lisppar, which will insert no space now that we've
- % turned off the interline space. Simplest is to make them be an
- % empty paragraph.
- \ifx\par\lisppar
- \edef\par{\leavevmode \par}%
- %
- % Reset ^^M's definition to new definition of \par.
- \obeylines
- \fi
- %
- % Do @comment since we are called inside an environment such as
- % @example, where each end-of-line in the input causes an
- % end-of-line in the output. We don't want the end-of-line after
- % the `@group' to put extra space in the output. Since @group
- % should appear on a line by itself (according to the Texinfo
- % manual), we don't worry about eating any user text.
- \comment
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing `@group can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil \mil=0.001in
-
-\def\need{\parsearg\needx}
-
-% Old definition--didn't work.
-%\def\needx #1{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
-\def\needx#1{%
- % Ensure vertical mode, so we don't make a big box in the middle of a
- % paragraph.
- \par
- %
- % If the @need value is less than one line space, it's useless.
- \dimen0 = #1\mil
- \dimen2 = \ht\strutbox
- \advance\dimen2 by \dp\strutbox
- \ifdim\dimen0 > \dimen2
- %
- % Do a \strut just to make the height of this box be normal, so the
- % normal leading is inserted relative to the preceding line.
- % And a page break here is fine.
- \vtop to #1\mil{\strut\vfil}%
- %
- % TeX does not even consider page breaks if a penalty added to the
- % main vertical list is 10000 or more. But in order to see if the
- % empty box we just added fits on the page, we must make it consider
- % page breaks. On the other hand, we don't want to actually break the
- % page after the empty box. So we use a penalty of 9999.
- %
- % There is an extremely small chance that TeX will actually break the
- % page at this \penalty, if there are no other feasible breakpoints in
- % sight. (If the user is using lots of big @group commands, which
- % almost-but-not-quite fill up a page, TeX will have a hard time doing
- % good page breaking, for example.) However, I could not construct an
- % example where a page broke at this \penalty; if it happens in a real
- % document, then we can reconsider our strategy.
- \penalty9999
- %
- % Back up by the size of the box, whether we did a page break or not.
- \kern -#1\mil
- %
- % Do not allow a page break right after this kern.
- \nobreak
- \fi
-}
-
-% @br forces paragraph break
-
-\let\br = \par
-
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{%
- \leavevmode
- \hbox to 1.5em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
-}
-
-% @enddots{} is an end-of-sentence ellipsis.
-%
-\def\enddots{%
- \leavevmode
- \hbox to 2em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
- \spacefactor=3000
-}
-
-
-% @page forces the start of a new page
-%
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
-
-% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
- \vtop to \strutdepth{\baselineskip\strutdepth\vss
- \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
-
-% @include file insert text of that file as input.
-% Allow normal characters that we make active in the argument (a file name).
-\def\include{\begingroup
- \catcode`\\=12
- \catcode`~=12
- \catcode`^=12
- \catcode`_=12
- \catcode`|=12
- \catcode`<=12
- \catcode`>=12
- \catcode`+=12
- \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
- % Read the included file in a group so nested @include's work.
- \def\thisfile{#1}%
- \input\thisfile
-\endgroup}
-
-\def\thisfile{}
-
-% @center line outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
-
-% @sp n outputs n lines of vertical space
-
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore is another way to write a comment
-
-\def\comment{\begingroup \catcode`\^^M=\other%
-\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
-\commentxxx}
-{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
-\let\c=\comment
-
-% @paragraphindent NCHARS
-% We'll use ems for NCHARS, close enough.
-% We cannot implement @paragraphindent asis, though.
-%
-\def\asisword{asis} % no translation, these are keywords
-\def\noneword{none}
-%
-\def\paragraphindent{\parsearg\doparagraphindent}
-\def\doparagraphindent#1{%
- \def\temp{#1}%
- \ifx\temp\asisword
- \else
- \ifx\temp\noneword
- \defaultparindent = 0pt
- \else
- \defaultparindent = #1em
- \fi
- \fi
- \parindent = \defaultparindent
-}
-
-% @exampleindent NCHARS
-% We'll use ems for NCHARS like @paragraphindent.
-% It seems @exampleindent asis isn't necessary, but
-% I preserve it to make it similar to @paragraphindent.
-\def\exampleindent{\parsearg\doexampleindent}
-\def\doexampleindent#1{%
- \def\temp{#1}%
- \ifx\temp\asisword
- \else
- \ifx\temp\noneword
- \lispnarrowing = 0pt
- \else
- \lispnarrowing = #1em
- \fi
- \fi
-}
-
-% @asis just yields its argument. Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written. Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo). So we must use a
-% control sequence to switch into and out of math mode.
-%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
-%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
-
-% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% If working on a large document in chapters, it is convenient to
-% be able to disable indexing, cross-referencing, and contents, for test runs.
-% This is done with @novalidate (before @setfilename).
-%
-\newif\iflinks \linkstrue % by default we want the aux files.
-\let\novalidate = \linksfalse
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
- \iflinks
- \readauxfile
- \fi % \openindices needs to do some work in any case.
- \openindices
- \fixbackslash % Turn off hack to swallow `\input texinfo'.
- \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
- %
- % If texinfo.cnf is present on the system, read it.
- % Useful for site-wide @afourpaper, etc.
- % Just to be on the safe side, close the input stream before the \input.
- \openin 1 texinfo.cnf
- \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
- \closein1
- \temp
- %
- \comment % Ignore the actual filename.
-}
-
-% Called from \setfilename.
-%
-\def\openindices{%
- \newindex{cp}%
- \newcodeindex{fn}%
- \newcodeindex{vr}%
- \newcodeindex{tp}%
- \newcodeindex{ky}%
- \newcodeindex{pg}%
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-
-\message{pdf,}
-% adobe `portable' document format
-\newcount\tempnum
-\newcount\lnkcount
-\newtoks\filename
-\newcount\filenamelength
-\newcount\pgn
-\newtoks\toksA
-\newtoks\toksB
-\newtoks\toksC
-\newtoks\toksD
-\newbox\boxA
-\newcount\countA
-\newif\ifpdf
-\newif\ifpdfmakepagedest
-
-\ifx\pdfoutput\undefined
- \pdffalse
- \let\pdfmkdest = \gobble
- \let\pdfurl = \gobble
- \let\endlink = \relax
- \let\linkcolor = \relax
- \let\pdfmakeoutlines = \relax
-\else
- \pdftrue
- \pdfoutput = 1
- \input pdfcolor
- \def\dopdfimage#1#2#3{%
- \def\imagewidth{#2}%
- \def\imageheight{#3}%
- \ifnum\pdftexversion < 14
- \pdfimage
- \else
- \pdfximage
- \fi
- \ifx\empty\imagewidth\else width \imagewidth \fi
- \ifx\empty\imageheight\else height \imageheight \fi
- {#1.pdf}%
- \ifnum\pdftexversion < 14 \else
- \pdfrefximage \pdflastximage
- \fi}
- \def\pdfmkdest#1{\pdfdest name{#1@} xyz}
- \def\pdfmkpgn#1{#1@}
- \let\linkcolor = \Cyan
- \def\endlink{\Black\pdfendlink}
- % Adding outlines to PDF; macros for calculating structure of outlines
- % come from Petr Olsak
- \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
- \else \csname#1\endcsname \fi}
- \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
- \advance\tempnum by1
- \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
- \def\pdfmakeoutlines{{%
- \openin 1 \jobname.toc
- \ifeof 1\else\bgroup
- \closein 1
- \indexnofonts
- \def\tt{}
- % thanh's hack / proper braces in bookmarks
- \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
- \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
- %
- \def\chapentry ##1##2##3{}
- \def\unnumbchapentry ##1##2{}
- \def\secentry ##1##2##3##4{\advancenumber{chap##2}}
- \def\unnumbsecentry ##1##2{}
- \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
- \def\unnumbsubsecentry ##1##2{}
- \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
- \def\unnumbsubsubsecentry ##1##2{}
- \input \jobname.toc
- \def\chapentry ##1##2##3{%
- \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
- \def\unnumbchapentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
- \def\secentry ##1##2##3##4{%
- \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
- \def\unnumbsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
- \def\subsecentry ##1##2##3##4##5{%
- \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
- \def\unnumbsubsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
- \def\subsubsecentry ##1##2##3##4##5##6{%
- \pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
- \def\unnumbsubsubsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
- \input \jobname.toc
- \egroup\fi
- }}
- \def\makelinks #1,{%
- \def\params{#1}\def\E{END}%
- \ifx\params\E
- \let\nextmakelinks=\relax
- \else
- \let\nextmakelinks=\makelinks
- \ifnum\lnkcount>0,\fi
- \picknum{#1}%
- \startlink attr{/Border [0 0 0]}
- goto name{\pdfmkpgn{\the\pgn}}%
- \linkcolor #1%
- \advance\lnkcount by 1%
- \endlink
- \fi
- \nextmakelinks
- }
- \def\picknum#1{\expandafter\pn#1}
- \def\pn#1{%
- \def\p{#1}%
- \ifx\p\lbrace
- \let\nextpn=\ppn
- \else
- \let\nextpn=\ppnn
- \def\first{#1}
- \fi
- \nextpn
- }
- \def\ppn#1{\pgn=#1\gobble}
- \def\ppnn{\pgn=\first}
- \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
- \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
- \def\skipspaces#1{\def\PP{#1}\def\D{|}%
- \ifx\PP\D\let\nextsp\relax
- \else\let\nextsp\skipspaces
- \ifx\p\space\else\addtokens{\filename}{\PP}%
- \advance\filenamelength by 1
- \fi
- \fi
- \nextsp}
- \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
- \ifnum\pdftexversion < 14
- \let \startlink \pdfannotlink
- \else
- \let \startlink \pdfstartlink
- \fi
- \def\pdfurl#1{%
- \begingroup
- \normalturnoffactive\def\@{@}%
- \leavevmode\Red
- \startlink attr{/Border [0 0 0]}%
- user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
- % #1
- \endgroup}
- \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
- \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
- \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
- \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
- \def\maketoks{%
- \expandafter\poptoks\the\toksA|ENDTOKS|
- \ifx\first0\adn0
- \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
- \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
- \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
- \else
- \ifnum0=\countA\else\makelink\fi
- \ifx\first.\let\next=\done\else
- \let\next=\maketoks
- \addtokens{\toksB}{\the\toksD}
- \ifx\first,\addtokens{\toksB}{\space}\fi
- \fi
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \next}
- \def\makelink{\addtokens{\toksB}%
- {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
- \def\pdflink#1{%
- \startlink attr{/Border [0 0 0]} goto name{\mkpgn{#1}}
- \linkcolor #1\endlink}
- \def\mkpgn#1{#1@}
- \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
-\fi % \ifx\pdfoutput
-
-
-\message{fonts,}
-% Font-change commands.
-
-% Texinfo sort of supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
-\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
-
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx} %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
-\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
-\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-
-% Fonts for indices, footnotes, small examples (9pt).
-\setfont\smallrm\rmshape{9}{1000}
-\setfont\smalltt\ttshape{9}{1000}
-\setfont\smallbf\bfshape{10}{900}
-\setfont\smallit\itshape{9}{1000}
-\setfont\smallsl\slshape{9}{1000}
-\setfont\smallsf\sfshape{9}{1000}
-\setfont\smallsc\scshape{10}{900}
-\setfont\smallttsl\ttslshape{10}{900}
-\font\smalli=cmmi9
-\font\smallsy=cmsy9
-
-% Fonts for title page:
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-
-% Section fonts (14.4pt).
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-
-% \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than
-%\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
-% Subsection fonts (13.15pt).
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. Since
-% texinfo doesn't allow for producing subscripts and superscripts, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
- \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
- \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
- \textfont\ttfam = \tentt \textfont\sffam = \tensf
-}
-
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE. We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example. By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
-\def\textfonts{%
- \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
- \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
- \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
- \resetmathfonts}
-\def\titlefonts{%
- \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
- \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
- \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
- \let\tenttsl=\titlettsl
- \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
-\def\chapfonts{%
- \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
- \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
- \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
- \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
- \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
- \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
- \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
- \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
- \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\smallfonts{%
- \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
- \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
- \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
- \let\tenttsl=\smallttsl
- \resetmathfonts \setleading{11pt}}
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\textfonts
-
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
-\setfont\shortcontsl\slshape{12}{1000}
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\var=\smartslanted
-\let\dfn=\smartslanted
-\let\emph=\smartitalic
-\let\cite=\smartslanted
-
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph. Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-\def\t#1{%
- {\tt \rawbackslash \frenchspacing #1}%
- \null
-}
-\let\ttfont=\t
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\keyrm\rmshape{8}{1000}
-\font\keysy=cmsy9
-\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
- \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
- \vbox{\hrule\kern-0.4pt
- \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
- \kern-0.4pt\hrule}%
- \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
- {%
- % Change normal interword space to be same as for the current font.
- \spaceskip = \fontdimen2\font
- %
- % Switch to typewriter.
- \tt
- %
- % But `\ ' produces the large typewriter interword space.
- \def\ {{\spaceskip = 0pt{} }}%
- %
- % Turn off hyphenation.
- \nohyphenation
- %
- \rawbackslash
- \frenchspacing
- #1%
- }%
- \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-% -- rms.
-{
- \catcode`\-=\active
- \catcode`\_=\active
- %
- \global\def\code{\begingroup
- \catcode`\-=\active \let-\codedash
- \catcode`\_=\active \let_\codeunder
- \codex
- }
- %
- % If we end up with any active - characters when handling the index,
- % just treat them as a normal -.
- \global\def\indexbreaks{\catcode`\-=\active \let-\realdash}
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
-\def\codex #1{\tclose{#1}\endgroup}
-
-%\let\exp=\tclose %Was temporary
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
- \def\arg{#1}%
- \ifx\arg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\arg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\arg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is kbdinputdistinct. (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
-
-% For @url, @env, @command quotes seem unnecessary, so use \code.
-\let\url=\code
-\let\env=\code
-\let\command=\code
-
-% @uref (abbreviation for `urlref') takes an optional (comma-separated)
-% second argument specifying the text to display and an optional third
-% arg as text to display instead of (rather than in addition to) the url
-% itself. First (mandatory) arg is the url. Perhaps eventually put in
-% a hypertex \special here.
-%
-\def\uref#1{\douref #1,,,\finish}
-\def\douref#1,#2,#3,#4\finish{\begingroup
- \unsepspaces
- \pdfurl{#1}%
- \setbox0 = \hbox{\ignorespaces #3}%
- \ifdim\wd0 > 0pt
- \unhbox0 % third arg given, show only that
- \else
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0 > 0pt
- \ifpdf
- \unhbox0 % PDF: 2nd arg given, show only it
- \else
- \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
- \fi
- \else
- \code{#1}% only url given, so show it
- \fi
- \fi
- \endlink
-\endgroup}
-
-% rms does not like angle brackets --karl, 17may97.
-% So now @email is just like @uref, unless we are pdf.
-%
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\ifpdf
- \def\email#1{\doemail#1,,\finish}
- \def\doemail#1,#2,#3\finish{\begingroup
- \unsepspaces
- \pdfurl{mailto:#1}%
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
- \endlink
- \endgroup}
-\else
- \let\email=\uref
-\fi
-
-% Check if we are currently using a typewriter font. Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find. We need it for
-% Polish suppressed-l. --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-% Explicit font changes: @r, @sc, undocumented @ii.
-\def\r#1{{\rm #1}} % roman font
-\def\sc#1{{\smallcaps#1}} % smallcaps font
-\def\ii#1{{\it #1}} % italic font
-
-% @acronym downcases the argument and prints in smallcaps.
-\def\acronym#1{{\smallcaps \lowercase{#1}}}
-
-% @pounds{} is a sterling sign.
-\def\pounds{{\it\$}}
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page. Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-%
-\newif\ifsetcontentsaftertitlepage
- \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
-\newif\ifsetshortcontentsaftertitlepage
- \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
-
-\def\titlepage{\begingroup \parindent=0pt \textfonts
- \let\subtitlerm=\tenrm
- \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
- %
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
- %
- % Leave some space at the very top of the page.
- \vglue\titlepagetopglue
- %
- % Now you can print the title using @title.
- \def\title{\parsearg\titlezzz}%
- \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
- % No rule at page bottom unless we print one at the top with @title.
- \finishedtitlepagetrue
- %
- % Now you can put text using @subtitle.
- \def\subtitle{\parsearg\subtitlezzz}%
- \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
- %
- % @author should come last, but may come many times.
- \def\author{\parsearg\authorzzz}%
- \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
- {\authorfont \leftline{##1}}}%
- %
- % Most title ``pages'' are actually two pages long, with space
- % at the top of the second. We don't want the ragged left on the second.
- \let\oldpage = \page
- \def\page{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- \oldpage
- \let\page = \oldpage
- \hbox{}}%
-% \def\page{\oldpage \hbox{}}
-}
-
-\def\Etitlepage{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- % It is important to do the page break before ending the group,
- % because the headline and footline are only empty inside the group.
- % If we use the new definition of \page, we always get a blank page
- % after the title page, which we certainly don't want.
- \oldpage
- \endgroup
- %
- % If they want short, they certainly want long too.
- \ifsetshortcontentsaftertitlepage
- \shortcontents
- \contents
- \global\let\shortcontents = \relax
- \global\let\contents = \relax
- \fi
- %
- \ifsetcontentsaftertitlepage
- \contents
- \global\let\contents = \relax
- \global\let\shortcontents = \relax
- \fi
- %
- \ifpdf \pdfmakepagedesttrue \fi
- %
- \HEADINGSon
-}
-
-\def\finishtitlepage{%
- \vskip4pt \hrule height 2pt width \hsize
- \vskip\titlepagebottomglue
- \finishedtitlepagetrue
-}
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks\evenheadline % headline on even pages
-\newtoks\oddheadline % headline on odd pages
-\newtoks\evenfootline % footline on even pages
-\newtoks\oddfootline % footline on odd pages
-
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
- \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
- \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what @headings on does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
- \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
- %
- % Leave some space for the footline. Hopefully ok to assume
- % @evenfooting will not be used by itself.
- \global\advance\pageheight by -\baselineskip
- \global\advance\vsize by -\baselineskip
-}
-
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
-
-% @headings double turns headings on for double-sided printing.
-% @headings single turns headings on for single-sided printing.
-% @headings off turns them off.
-% @headings on same as @headings double, retained for compatibility.
-% @headings after turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{%
- \number\day\space
- \ifcase\month
- \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
- \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
- \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
- \fi
- \space\number\year}
-
-% @settitle line... specifies the title of the document, for headings.
-% It generates no output of its own.
-\def\thistitle{\putwordNoTitle}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
-
-
-\message{tables,}
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
- \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
- \itemzzz {#1}}
-
-\def\itemzzz #1{\begingroup %
- \advance\hsize by -\rightskip
- \advance\hsize by -\tableindent
- \setbox0=\hbox{\itemfont{#1}}%
- \itemindex{#1}%
- \nobreak % This prevents a break before @itemx.
- %
- % If the item text does not fit in the space we have, put it on a line
- % by itself, and do not allow a page break either before or after that
- % line. We do not start a paragraph here because then if the next
- % command is, e.g., @kindex, the whatsit would get put into the
- % horizontal list on a line by itself, resulting in extra blank space.
- \ifdim \wd0>\itemmax
- %
- % Make this a paragraph so we get the \parskip glue and wrapping,
- % but leave it ragged-right.
- \begingroup
- \advance\leftskip by-\tableindent
- \advance\hsize by\tableindent
- \advance\rightskip by0pt plus1fil
- \leavevmode\unhbox0\par
- \endgroup
- %
- % We're going to be starting a paragraph, but we don't want the
- % \parskip glue -- logically it's part of the @item we just started.
- \nobreak \vskip-\parskip
- %
- % Stop a page break at the \parskip glue coming up. Unfortunately
- % we can't prevent a possible page break at the following
- % \baselineskip glue.
- \nobreak
- \endgroup
- \itemxneedsnegativevskipfalse
- \else
- % The item text fits into the space. Start a paragraph, so that the
- % following text (if any) will end up on the same line.
- \noindent
- % Do this with kerns and \unhbox so that if there is a footnote in
- % the item text, it can migrate to the main vertical list and
- % eventually be printed.
- \nobreak\kern-\tableindent
- \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
- \unhbox0
- \nobreak\kern\dimen0
- \endgroup
- \itemxneedsnegativevskiptrue
- \fi
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-% Contains a kludge to get @end[description] to work.
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-% @table, @ftable, @vtable.
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1 \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1 \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1 \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
-}
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\def\itemize{\parsearg\itemizezzz}
-
-\def\itemizezzz #1{%
- \begingroup % ended by the @end itemize
- \itemizey {#1}{\Eitemize}
-}
-
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
- \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list. No
-% argument is the same as `1'.
-%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1 \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
- \begingroup % ended by the @end enumerate
- %
- % If we were given no argument, pretend we were given `1'.
- \def\thearg{#1}%
- \ifx\thearg\empty \def\thearg{1}\fi
- %
- % Detect if the argument is a single token. If so, it might be a
- % letter. Otherwise, the only valid thing it can be is a number.
- % (We will always have one token, because of the test we just made.
- % This is a good thing, since \splitoff doesn't work given nothing at
- % all -- the first parameter is undelimited.)
- \expandafter\splitoff\thearg\endmark
- \ifx\rest\empty
- % Only one token in the argument. It could still be anything.
- % A ``lowercase letter'' is one whose \lccode is nonzero.
- % An ``uppercase letter'' is one whose \lccode is both nonzero, and
- % not equal to itself.
- % Otherwise, we assume it's a number.
- %
- % We need the \relax at the end of the \ifnum lines to stop TeX from
- % continuing to look for a <number>.
- %
- \ifnum\lccode\expandafter`\thearg=0\relax
- \numericenumerate % a number (we hope)
- \else
- % It's a letter.
- \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
- \lowercaseenumerate % lowercase letter
- \else
- \uppercaseenumerate % uppercase letter
- \fi
- \fi
- \else
- % Multiple tokens in the argument. We hope it's a number.
- \numericenumerate
- \fi
-}
-
-% An @enumerate whose labels are integers. The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
- \itemno = \thearg
- \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more lowercase letters in @enumerate; get a bigger
- alphabet}%
- \fi
- \char\lccode\itemno
- }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more uppercase letters in @enumerate; get a bigger
- alphabet}
- \fi
- \char\uccode\itemno
- }%
-}
-
-% Call itemizey, adding a period to the first argument and supplying the
-% common last two arguments. Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
- \advance\itemno by -1
- \itemizey{#1.}\Eenumerate\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-% @multitable @columnfractions .25 .3 .45
-% @item ...
-%
-% Numbers following @columnfractions are the percent of the total
-% current hsize to be used for each column. You may use as many
-% columns as desired.
-
-
-% Or use a template:
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item ...
-% using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-% @multitable {Column 1 template} {Column 2 template} {Column 3
-% template}
-% Not:
-% @multitable {Column 1 template} {Column 2 template}
-% {Column 3 template}
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
-
-% Sample multitable:
-
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item first col stuff @tab second col stuff @tab third col
-% @item
-% first col stuff
-% @tab
-% second col stuff
-% @tab
-% third col
-% @item first col stuff @tab second col stuff
-% @tab Many paragraphs of text may be used in any column.
-%
-% They will wrap at the width determined by the template.
-% @item@tab@tab This will be in third column.
-% @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-% to baseline.
-% 0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-%
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% #1 is the part of the @columnfraction before the decimal point, which
-% is presumably either 0 or the empty string (but we don't check, we
-% just throw it away). #2 is the decimal part, which we use as the
-% percent of \hsize for this column.
-\def\pickupwholefraction#1.#2 {%
- \global\advance\colcount by 1
- \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}%
- \setuptable
-}
-
-\newcount\colcount
-\def\setuptable#1{%
- \def\firstarg{#1}%
- \ifx\firstarg\xendsetuptable
- \let\go = \relax
- \else
- \ifx\firstarg\xcolumnfractions
- \global\setpercenttrue
- \else
- \ifsetpercent
- \let\go\pickupwholefraction
- \else
- \global\advance\colcount by 1
- \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator;
- % typically that is always in the input, anyway.
- \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
- \fi
- \fi
- \ifx\go\pickupwholefraction
- % Put the argument back for the \pickupwholefraction call, so
- % we'll always have a period there to be parsed.
- \def\go{\pickupwholefraction#1}%
- \else
- \let\go = \setuptable
- \fi%
- \fi
- \go
-}
-
-% This used to have \hskip1sp. But then the space in a template line is
-% not enough. That is bad. So let's go back to just & until we
-% encounter the problem it was intended to solve again.
-% --karl, nathan@acm.org, 20apr99.
-\def\tab{&}
-
-% @multitable ... @end multitable definitions:
-%
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
- \vskip\parskip
- \let\item\crcr
- \tolerance=9500
- \hbadness=9500
- \setmultitablespacing
- \parskip=\multitableparskip
- \parindent=\multitableparindent
- \overfullrule=0pt
- \global\colcount=0
- \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
- %
- % To parse everything between @multitable and @item:
- \setuptable#1 \endsetuptable
- %
- % \everycr will reset column counter, \colcount, at the end of
- % each line. Every column entry will cause \colcount to advance by one.
- % The table preamble
- % looks at the current \colcount to find the correct column width.
- \everycr{\noalign{%
- %
- % \filbreak%% keeps underfull box messages off when table breaks over pages.
- % Maybe so, but it also creates really weird page breaks when the table
- % breaks over pages. Wouldn't \vfil be better? Wait until the problem
- % manifests itself, so it can be fixed for real --karl.
- \global\colcount=0\relax}}%
- %
- % This preamble sets up a generic column definition, which will
- % be used as many times as user calls for columns.
- % \vtop will set a single line and will also let text wrap and
- % continue for many paragraphs if desired.
- \halign\bgroup&\global\advance\colcount by 1\relax
- \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
- %
- % In order to keep entries from bumping into each other
- % we will add a \leftskip of \multitablecolspace to all columns after
- % the first one.
- %
- % If a template has been used, we will add \multitablecolspace
- % to the width of each template entry.
- %
- % If the user has set preamble in terms of percent of \hsize we will
- % use that dimension as the width of the column, and the \leftskip
- % will keep entries from bumping into each other. Table will start at
- % left margin and final column will justify at right margin.
- %
- % Make sure we don't inherit \rightskip from the outer environment.
- \rightskip=0pt
- \ifnum\colcount=1
- % The first column will be indented with the surrounding text.
- \advance\hsize by\leftskip
- \else
- \ifsetpercent \else
- % If user has not set preamble in terms of percent of \hsize
- % we will advance \hsize by \multitablecolspace.
- \advance\hsize by \multitablecolspace
- \fi
- % In either case we will make \leftskip=\multitablecolspace:
- \leftskip=\multitablecolspace
- \fi
- % Ignoring space at the beginning and end avoids an occasional spurious
- % blank line, when TeX decides to break the line at the space before the
- % box from the multistrut, so the strut ends up on a line by itself.
- % For example:
- % @multitable @columnfractions .11 .89
- % @item @code{#}
- % @tab Legal holiday which is valid in major parts of the whole country.
- % Is automatically provided with highlighting sequences respectively marking
- % characters.
- \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
-\ifdim\multitablelinespace=0pt
-\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
-\global\advance\multitablelinespace by-\ht0
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-\else
-%% FIXME: what is \box0 supposed to be?
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi}
-
-
-\message{conditionals,}
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
- \let\chapter=\relax
- \let\unnumbered=\relax
- \let\top=\relax
- \let\unnumberedsec=\relax
- \let\unnumberedsection=\relax
- \let\unnumberedsubsec=\relax
- \let\unnumberedsubsection=\relax
- \let\unnumberedsubsubsec=\relax
- \let\unnumberedsubsubsection=\relax
- \let\section=\relax
- \let\subsec=\relax
- \let\subsubsec=\relax
- \let\subsection=\relax
- \let\subsubsection=\relax
- \let\appendix=\relax
- \let\appendixsec=\relax
- \let\appendixsection=\relax
- \let\appendixsubsec=\relax
- \let\appendixsubsection=\relax
- \let\appendixsubsubsec=\relax
- \let\appendixsubsubsection=\relax
- \let\contents=\relax
- \let\smallbook=\relax
- \let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
- \let\defcodeindex = \relax
- \let\defcv = \relax
- \let\deffn = \relax
- \let\deffnx = \relax
- \let\defindex = \relax
- \let\defivar = \relax
- \let\defmac = \relax
- \let\defmethod = \relax
- \let\defop = \relax
- \let\defopt = \relax
- \let\defspec = \relax
- \let\deftp = \relax
- \let\deftypefn = \relax
- \let\deftypefun = \relax
- \let\deftypeivar = \relax
- \let\deftypeop = \relax
- \let\deftypevar = \relax
- \let\deftypevr = \relax
- \let\defun = \relax
- \let\defvar = \relax
- \let\defvr = \relax
- \let\ref = \relax
- \let\xref = \relax
- \let\printindex = \relax
- \let\pxref = \relax
- \let\settitle = \relax
- \let\setchapternewpage = \relax
- \let\setchapterstyle = \relax
- \let\everyheading = \relax
- \let\evenheading = \relax
- \let\oddheading = \relax
- \let\everyfooting = \relax
- \let\evenfooting = \relax
- \let\oddfooting = \relax
- \let\headings = \relax
- \let\include = \relax
- \let\lowersections = \relax
- \let\down = \relax
- \let\raisesections = \relax
- \let\up = \relax
- \let\set = \relax
- \let\clear = \relax
- \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% @dircategory CATEGORY -- specify a category of the dir file
-% which this file should belong to. Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line `@end #1'.
-%
-\def\doignore#1{\begingroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define a command to swallow text until we reach `@end #1'.
- % This @ is a catcode 12 token (that is the normal catcode of @ in
- % this texinfo.tex file). We change the catcode of @ below to match.
- \long\def\doignoretext##1@end #1{\enddoignore}%
- %
- % Make sure that spaces turn into tokens that match what \doignoretext wants.
- \catcode32 = 10
- %
- % Ignore braces, too, so mismatched braces don't cause trouble.
- \catcode`\{ = 9
- \catcode`\} = 9
- %
- % We must not have @c interpreted as a control sequence.
- \catcode`\@ = 12
- %
- % Make the letter c a comment character so that the rest of the line
- % will be ignored. This way, the document can have (for example)
- % @c @end ifinfo
- % and the @end ifinfo will be properly ignored.
- % (We've just changed @ to catcode 12.)
- \catcode`\c = 14
- %
- % And now expand that command.
- \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
- \ifwarnedobs\relax\else
- % We need to warn folks that they may have trouble with TeX 3.0.
- % This uses \immediate\write16 rather than \message to get newlines.
- \immediate\write16{}
- \immediate\write16{WARNING: for users of Unix TeX 3.0!}
- \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
- \immediate\write16{If you are running another version of TeX, relax.}
- \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
- \immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
- \immediate\write16{If you are stuck with version 3.0, run the}
- \immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
- \immediate\write16{ to use a workaround.}
- \immediate\write16{}
- \global\warnedobstrue
- \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex. For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an `@end #1' command.
-%
-\def\nestedignore#1{%
- \obstexwarn
- % We must actually expand the ignored text to look for the @end
- % command, so that nested ignore constructs work. Thus, we put the
- % text into a \vbox and then do nothing with the result. To minimize
- % the change of memory overflow, we follow the approach outlined on
- % page 401 of the TeXbook: make the current font be a dummy font.
- %
- \setbox0 = \vbox\bgroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define `@end #1' to end the box, which will in turn undefine the
- % @end command again.
- \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
- %
- % We are going to be parsing Texinfo commands. Most cause no
- % trouble when they are used incorrectly, but some commands do
- % complicated argument parsing or otherwise get confused, so we
- % undefine them.
- %
- % We can't do anything about stray @-signs, unfortunately;
- % they'll produce `undefined control sequence' errors.
- \ignoremorecommands
- %
- % Set the current font to be \nullfont, a TeX primitive, and define
- % all the font commands to also use \nullfont. We don't use
- % dummy.tfm, as suggested in the TeXbook, because not all sites
- % might have that installed. Therefore, math mode will still
- % produce output, but that should be an extremely small amount of
- % stuff compared to the main input.
- %
- \nullfont
- \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont
- \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont
- \let\tensf=\nullfont
- % Similarly for index fonts (mostly for their use in smallexample).
- \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont
- \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont
- \let\smallsf=\nullfont
- %
- % Don't complain when characters are missing from the fonts.
- \tracinglostchars = 0
- %
- % Don't bother to do space factor calculations.
- \frenchspacing
- %
- % Don't report underfull hboxes.
- \hbadness = 10000
- %
- % Do minimal line-breaking.
- \pretolerance = 10000
- %
- % Do not execute instructions in @tex
- \def\tex{\doignore{tex}}%
- % Do not execute macro definitions.
- % `c' is a comment character, so the word `macro' will get cut off.
- \def\macro{\doignore{ma}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it. Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
- \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
- \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
- \def\temp{#2}%
- \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
- \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
- \fi
- \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider `@set foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-{
- \catcode`\_ = \active
- %
- % We might end up with active _ or - characters in the argument if
- % we're called from @code, as @code{@value{foo-bar_}}. So \let any
- % such active characters to their normal equivalents.
- \gdef\value{\begingroup
- \catcode`\-=12 \catcode`\_=12
- \indexbreaks \let_\normalunderscore
- \valuexxx}
-}
-\def\valuexxx#1{\expandablevalue{#1}\endgroup}
-
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we \let\value to this in \indexdummies). Ones
-% whose names contain - or _ still won't work, but we can't do anything
-% about that. The command has to be fully expandable, since the result
-% winds up in the index file. This means that if the variable's value
-% contains other Texinfo commands, it's almost certain it will fail
-% (although perhaps we could fix that with sufficient work to do a
-% one-level expansion on the result, instead of complete).
-%
-\def\expandablevalue#1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- {[No value for ``#1'']}%
- \else
- \csname SET#1\endcsname
- \fi
-}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifsetfail
- \else
- \expandafter\ifsetsucceed
- \fi
-}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifclearsucceed
- \else
- \expandafter\ifclearfail
- \fi
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.). Make `@end iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group). So we must
-% define \Eiftex to redefine itself to be its previous value. (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
- \edef\temp{%
- % Remember the current value of \E#1.
- \let\nece{prevE#1} = \nece{E#1}%
- %
- % At the `@end #1', redefine \E#1 to be its previous value.
- \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
- }%
- \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
-
-% @defininfoenclose.
-\let\definfoenclose=\comment
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-%
-\def\newindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
- \fi
- \expandafter\xdef\csname#1index\endcsname{% % Define @#1index
- \noexpand\doindex{#1}}
-}
-
-% @defindex foo == \newindex{foo}
-
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1
- \fi
- \expandafter\xdef\csname#1index\endcsname{%
- \noexpand\docodeindex{#1}}
-}
-
-\def\defcodeindex{\parsearg\newcodeindex}
-
-% @synindex foo bar makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-% The \closeout helps reduce unnecessary open files; the limit on the
-% Acorn RISC OS is a mere 16 files.
-\def\synindex#1 #2 {%
- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
- \expandafter\closeout\csname#1indfile\endcsname
- \expandafter\let\csname#1indfile\endcsname=\synindexfoo
- \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
- \noexpand\doindex{#2}}%
-}
-
-% @syncodeindex foo bar similar, but put all entries made for index foo
-% inside @code.
-\def\syncodeindex#1 #2 {%
- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
- \expandafter\closeout\csname#1indfile\endcsname
- \expandafter\let\csname#1indfile\endcsname=\synindexfoo
- \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
- \noexpand\docodeindex{#2}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-% and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-\def\indexdummies{%
-\def\ { }%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-\def\@{@}% will be @@ when we switch to @ as escape char.
-% Need these in case \tex is in effect and \{ is a \delimiter again.
-% But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.
-\let\{ = \mylbrace
-\let\} = \myrbrace
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\uref##1{\realbackslash uref {##1}}%
-\def\url##1{\realbackslash url {##1}}%
-\def\env##1{\realbackslash env {##1}}%
-\def\command##1{\realbackslash command {##1}}%
-\def\option##1{\realbackslash option {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\acronym##1{\realbackslash acronym {##1}}%
-%
-% Handle some cases of @value -- where the variable name does not
-% contain - or _, and the value does not contain any
-% (non-fully-expandable) commands.
-\let\value = \expandablevalue
-%
-\unsepspaces
-% Turn off macro expansion
-\turnoffmacros
-}
-
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-
-\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\url=\indexdummyfont
-\let\uref=\indexdummyfont
-\let\env=\indexdummyfont
-\let\acronym=\indexdummyfont
-\let\command=\indexdummyfont
-\let\option=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
-\def\@{@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
- @gdef@realbackslash{\}}
-
-\let\indexbackslash=0 %overridden during \printindex.
-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-
-% For \ifx comparisons.
-\def\emptymacro{\empty}
-
-% Most index entries go through here, but \dosubind is the general case.
-%
-\def\doind#1#2{\dosubind{#1}{#2}\empty}
-
-% Workhorse for all \fooindexes.
-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% \empty if called from \doind, as we usually are. The main exception
-% is with defuns, which call us directly.
-%
-\def\dosubind#1#2#3{%
- % Put the index entry in the margin if desired.
- \ifx\SETmarginindex\relax\else
- \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
- \fi
- {%
- \count255=\lastpenalty
- {%
- \indexdummies % Must do this here, since \bf, etc expand at this stage
- \escapechar=`\\
- {%
- \let\folio = 0% We will expand all macros now EXCEPT \folio.
- \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
- % so it will be output as is; and it will print as backslash.
- %
- \def\thirdarg{#3}%
- %
- % If third arg is present, precede it with space in sort key.
- \ifx\thirdarg\emptymacro
- \let\subentry = \empty
- \else
- \def\subentry{ #3}%
- \fi
- %
- % First process the index entry with all font commands turned
- % off to get the string to sort by.
- {\indexnofonts \xdef\indexsorttmp{#2\subentry}}%
- %
- % Now the real index entry with the fonts.
- \toks0 = {#2}%
- %
- % If third (subentry) arg is present, add it to the index
- % string. And include a space.
- \ifx\thirdarg\emptymacro \else
- \toks0 = \expandafter{\the\toks0 \space #3}%
- \fi
- %
- % Set up the complete index entry, with both the sort key
- % and the original text, including any font commands. We write
- % three arguments to \entry to the .?? file, texindex reduces to
- % two when writing the .??s sorted result.
- \edef\temp{%
- \write\csname#1indfile\endcsname{%
- \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
- }%
- %
- % If a skip is the last thing on the list now, preserve it
- % by backing up by \lastskip, doing the \write, then inserting
- % the skip again. Otherwise, the whatsit generated by the
- % \write will make \lastskip zero. The result is that sequences
- % like this:
- % @end defun
- % @tindex whatever
- % @defun ...
- % will have extra space inserted, because the \medbreak in the
- % start of the @defun won't see the skip inserted by the @end of
- % the previous defun.
- %
- % But don't do any of this if we're not in vertical mode. We
- % don't want to do a \vskip and prematurely end a paragraph.
- %
- % Avoid page breaks due to these extra skips, too.
- %
- \iflinks
- \ifvmode
- \skip0 = \lastskip
- \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi
- \fi
- %
- \temp % do the write
- %
- %
- \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
- \fi
- }%
- }%
- \penalty\count255
- }%
-}
-
-% The index entry written in the file actually looks like
-% \entry {sortstring}{page}{topic}
-% or
-% \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-% \initial {c}
-% before the first topic whose initial is c
-% \entry {topic}{pagelist}
-% for a topic that is used without subtopics
-% \primary {topic}
-% for the beginning of a topic that is used with subtopics
-% \secondary {subtopic}{pagelist}
-% for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
- \dobreak \chapheadingskip{10000}%
- %
- \smallfonts \rm
- \tolerance = 9500
- \indexbreaks
- %
- % See if the index file exists and is nonempty.
- % Change catcode of @ here so that if the index file contains
- % \initial {@}
- % as its first line, TeX doesn't complain about mismatched braces
- % (because it thinks @} is a control sequence).
- \catcode`\@ = 11
- \openin 1 \jobname.#1s
- \ifeof 1
- % \enddoublecolumns gets confused if there is no text in the index,
- % and it loses the chapter title and the aux file entries for the
- % index. The easiest way to prevent this problem is to make sure
- % there is some text.
- \putwordIndexNonexistent
- \else
- %
- % If the index file exists but is empty, then \openin leaves \ifeof
- % false. We have to make TeX try to read something from the file, so
- % it can discover if there is anything in it.
- \read 1 to \temp
- \ifeof 1
- \putwordIndexIsEmpty
- \else
- % Index files are almost Texinfo source, but we use \ as the escape
- % character. It would be better to use @, but that's too big a change
- % to make right now.
- \def\indexbackslash{\rawbackslashxx}%
- \catcode`\\ = 0
- \escapechar = `\\
- \begindoublecolumns
- \input \jobname.#1s
- \enddoublecolumns
- \fi
- \fi
- \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-\def\initial#1{{%
- % Some minor font changes for the special characters.
- \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
- %
- % Remove any glue we may have, we'll be inserting our own.
- \removelastskip
- %
- % We like breaks before the index initials, so insert a bonus.
- \penalty -300
- %
- % Typeset the initial. Making this add up to a whole number of
- % baselineskips increases the chance of the dots lining up from column
- % to column. It still won't often be perfect, because of the stretch
- % we need before each entry, but it's better.
- %
- % No shrink because it confuses \balancecolumns.
- \vskip 1.67\baselineskip plus .5\baselineskip
- \leftline{\secbf #1}%
- \vskip .33\baselineskip plus .1\baselineskip
- %
- % Do our best not to break after the initial.
- \nobreak
-}}
-
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin. It is used for index and table of contents
-% entries. The paragraph is indented by \leftskip.
-%
-\def\entry#1#2{\begingroup
- %
- % Start a new paragraph if necessary, so our assignments below can't
- % affect previous text.
- \par
- %
- % Do not fill out the last line with white space.
- \parfillskip = 0in
- %
- % No extra space above this paragraph.
- \parskip = 0in
- %
- % Do not prefer a separate line ending with a hyphen to fewer lines.
- \finalhyphendemerits = 0
- %
- % \hangindent is only relevant when the entry text and page number
- % don't both fit on one line. In that case, bob suggests starting the
- % dots pretty far over on the line. Unfortunately, a large
- % indentation looks wrong when the entry text itself is broken across
- % lines. So we use a small indentation and put up with long leaders.
- %
- % \hangafter is reset to 1 (which is the value we want) at the start
- % of each paragraph, so we need not do anything with that.
- \hangindent = 2em
- %
- % When the entry text needs to be broken, just fill out the first line
- % with blank space.
- \rightskip = 0pt plus1fil
- %
- % A bit of stretch before each entry for the benefit of balancing columns.
- \vskip 0pt plus1pt
- %
- % Start a ``paragraph'' for the index entry so the line breaking
- % parameters we've set above will have an effect.
- \noindent
- %
- % Insert the text of the index entry. TeX will do line-breaking on it.
- #1%
- % The following is kludged to not output a line of dots in the index if
- % there are no page numbers. The next person who breaks this will be
- % cursed by a Unix daemon.
- \def\tempa{{\rm }}%
- \def\tempb{#2}%
- \edef\tempc{\tempa}%
- \edef\tempd{\tempb}%
- \ifx\tempc\tempd\ \else%
- %
- % If we must, put the page number on a line of its own, and fill out
- % this line with blank space. (The \hfil is overwhelmed with the
- % fill leaders glue in \indexdotfill if the page number does fit.)
- \hfil\penalty50
- \null\nobreak\indexdotfill % Have leaders before the page number.
- %
- % The `\ ' here is removed by the implicit \unskip that TeX does as
- % part of (the primitive) \par. Without it, a spurious underfull
- % \hbox ensues.
- \ifpdf
- \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
- \else
- \ #2% The page number ends the paragraph.
- \fi
- \fi%
- \par
-\endgroup}
-
-% Like \dotfill except takes at least 1 em.
-\def\indexdotfill{\cleaders
- \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
- % Grab any single-column material above us.
- \output = {%
- %
- % Here is a possibility not foreseen in manmac: if we accumulate a
- % whole lot of material, we might end up calling this \output
- % routine twice in a row (see the doublecol-lose test, which is
- % essentially a couple of indexes with @setchapternewpage off). In
- % that case we just ship out what is in \partialpage with the normal
- % output routine. Generally, \partialpage will be empty when this
- % runs and this will be a no-op. See the indexspread.tex test case.
- \ifvoid\partialpage \else
- \onepageout{\pagecontents\partialpage}%
- \fi
- %
- \global\setbox\partialpage = \vbox{%
- % Unvbox the main output page.
- \unvbox\PAGE
- \kern-\topskip \kern\baselineskip
- }%
- }%
- \eject % run that output routine to set \partialpage
- %
- % Use the double-column output routine for subsequent pages.
- \output = {\doublecolumnout}%
- %
- % Change the page size parameters. We could do this once outside this
- % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
- % format, but then we repeat the same computation. Repeating a couple
- % of assignments once per index is clearly meaningless for the
- % execution time, so we may as well do it in one place.
- %
- % First we halve the line length, less a little for the gutter between
- % the columns. We compute the gutter based on the line length, so it
- % changes automatically with the paper format. The magic constant
- % below is chosen so that the gutter has the same value (well, +-<1pt)
- % as it did when we hard-coded it.
- %
- % We put the result in a separate register, \doublecolumhsize, so we
- % can restore it in \pagesofar, after \hsize itself has (potentially)
- % been clobbered.
- %
- \doublecolumnhsize = \hsize
- \advance\doublecolumnhsize by -.04154\hsize
- \divide\doublecolumnhsize by 2
- \hsize = \doublecolumnhsize
- %
- % Double the \vsize as well. (We don't need a separate register here,
- % since nobody clobbers \vsize.)
- \advance\vsize by -\ht\partialpage
- \vsize = 2\vsize
-}
-
-% The double-column output routine for all double-column pages except
-% the last.
-%
-\def\doublecolumnout{%
- \splittopskip=\topskip \splitmaxdepth=\maxdepth
- % Get the available space for the double columns -- the normal
- % (undoubled) page height minus any material left over from the
- % previous page.
- \dimen@ = \vsize
- \divide\dimen@ by 2
- %
- % box0 will be the left-hand column, box2 the right.
- \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
- \onepageout\pagesofar
- \unvbox255
- \penalty\outputpenalty
-}
-\def\pagesofar{%
- % Re-output the contents of the output page -- any previous material,
- % followed by the two boxes we just split, in box0 and box2.
- \unvbox\partialpage
- %
- \hsize = \doublecolumnhsize
- \wd0=\hsize \wd2=\hsize
- \hbox to\pagewidth{\box0\hfil\box2}%
-}
-\def\enddoublecolumns{%
- \output = {%
- % Split the last of the double-column material. Leave it on the
- % current page, no automatic page break.
- \balancecolumns
- %
- % If we end up splitting too much material for the current page,
- % though, there will be another page break right after this \output
- % invocation ends. Having called \balancecolumns once, we do not
- % want to call it again. Therefore, reset \output to its normal
- % definition right away. (We hope \balancecolumns will never be
- % called on to balance too much material, but if it is, this makes
- % the output somewhat more palatable.)
- \global\output = {\onepageout{\pagecontents\PAGE}}%
- }%
- \eject
- \endgroup % started in \begindoublecolumns
- %
- % \pagegoal was set to the doubled \vsize above, since we restarted
- % the current page. We're now back to normal single-column
- % typesetting, so reset \pagegoal to the normal \vsize (after the
- % \endgroup where \vsize got restored).
- \pagegoal = \vsize
-}
-\def\balancecolumns{%
- % Called at the end of the double column material.
- \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
- \dimen@ = \ht0
- \advance\dimen@ by \topskip
- \advance\dimen@ by-\baselineskip
- \divide\dimen@ by 2 % target to split to
- %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
- \splittopskip = \topskip
- % Loop until we get a decent breakpoint.
- {%
- \vbadness = 10000
- \loop
- \global\setbox3 = \copy0
- \global\setbox1 = \vsplit3 to \dimen@
- \ifdim\ht3>\dimen@
- \global\advance\dimen@ by 1pt
- \repeat
- }%
- %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
- \setbox0=\vbox to\dimen@{\unvbox1}%
- \setbox2=\vbox to\dimen@{\unvbox3}%
- %
- \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Chapters, sections, etc.
-
-\newcount\chapno
-\newcount\secno \secno=0
-\newcount\subsecno \subsecno=0
-\newcount\subsubsecno \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno \appendixno = `\@
-% \def\appendixletter{\char\the\appendixno}
-% We do the following for the sake of pdftex, which needs the actual
-% letter in the expansion, not just typeset.
-\def\appendixletter{%
- \ifnum\appendixno=`A A%
- \else\ifnum\appendixno=`B B%
- \else\ifnum\appendixno=`C C%
- \else\ifnum\appendixno=`D D%
- \else\ifnum\appendixno=`E E%
- \else\ifnum\appendixno=`F F%
- \else\ifnum\appendixno=`G G%
- \else\ifnum\appendixno=`H H%
- \else\ifnum\appendixno=`I I%
- \else\ifnum\appendixno=`J J%
- \else\ifnum\appendixno=`K K%
- \else\ifnum\appendixno=`L L%
- \else\ifnum\appendixno=`M M%
- \else\ifnum\appendixno=`N N%
- \else\ifnum\appendixno=`O O%
- \else\ifnum\appendixno=`P P%
- \else\ifnum\appendixno=`Q Q%
- \else\ifnum\appendixno=`R R%
- \else\ifnum\appendixno=`S S%
- \else\ifnum\appendixno=`T T%
- \else\ifnum\appendixno=`U U%
- \else\ifnum\appendixno=`V V%
- \else\ifnum\appendixno=`W W%
- \else\ifnum\appendixno=`X X%
- \else\ifnum\appendixno=`Y Y%
- \else\ifnum\appendixno=`Z Z%
- % The \the is necessary, despite appearances, because \appendixletter is
- % expanded while writing the .toc file. \char\appendixno is not
- % expandable, thus it is written literally, thus all appendixes come out
- % with the same letter (or @) in the toc without it.
- \else\char\the\appendixno
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it. @section does likewise.
-\def\thischapter{}
-\def\thissection{}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \chapterzzz{#2}
-\or
- \seczzz{#2}
-\or
- \numberedsubseczzz{#2}
-\or
- \numberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \chapterzzz{#2}
- \else
- \numberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \appendixzzz{#2}
-\or
- \appendixsectionzzz{#2}
-\or
- \appendixsubseczzz{#2}
-\or
- \appendixsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \appendixzzz{#2}
- \else
- \appendixsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \unnumberedzzz{#2}
-\or
- \unnumberedseczzz{#2}
-\or
- \unnumberedsubseczzz{#2}
-\or
- \unnumberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \unnumberedzzz{#2}
- \else
- \unnumberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% @chapter, @appendix, @unnumbered.
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\the\chapno}}}%
-\temp
-\donoderef
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1
-\message{\putwordAppendix\space \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\putwordAppendix{} \appendixletter}}}%
-\temp
-\appendixnoderef
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
-}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
-
-% @top is like @unnumbered.
-\outer\def\top{\parsearg\unnumberedyyy}
-
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message. Therefore, if #1 contained @-commands, TeX
-% expanded them. For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself. We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of <toks register>. (We also do this for
-% the toc entries.)
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
-}
-
-% Sections.
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\the\chapno}{\the\secno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\appendixletter}{\the\secno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsections.
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsubsections.
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
-% 3) Likewise, headings look best if no \parindent is used, and
-% if justification is not attempted. Hence \raggedright.
-
-
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
- \pchapsepmacro
- {%
- \chapfonts \rm
- \def\chapnum{#2}%
- \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 \centerparametersmaybe
- \unhbox0 #1\par}%
- }%
- \nobreak\bigskip % no page break after a chapter title
- \nobreak
-}
-
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
- \def\centerparametersmaybe{%
- \advance\rightskip by 3\rightskip
- \leftskip = \rightskip
- \parfillskip = 0pt
- }%
- \chfplain{#1}{}%
-}}
-
-\CHAPFplain % The default
-
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\nobreak
-}
-
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt
- \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
-}
-
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles.
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
-
-% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-
-% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-
-
-% Print any size section title.
-%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
- {%
- \expandafter\advance\csname #1headingskip\endcsname by \parskip
- \csname #1headingbreak\endcsname
- }%
- {%
- % Switch to the right set of fonts.
- \csname #1fonts\endcsname \rm
- %
- % Only insert the separating space if we have a section number.
- \def\secnum{#2}%
- \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
- %
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 % zero if no section number
- \unhbox0 #3}%
- }%
- \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
-}
-
-
-\message{toc,}
-% Table of contents.
-\newwrite\tocfile
-
-% Write an entry to the toc file, opening it if necessary.
-% Called from @chapter, etc. We supply {\folio} at the end of the
-% argument, which will end up as the last argument to the \...entry macro.
-%
-% We open the .toc file here instead of at @setfilename or any other
-% given time so that @contents can be put in the document anywhere.
-%
-\newif\iftocfileopened
-\def\writetocentry#1{%
- \iftocfileopened\else
- \immediate\openout\tocfile = \jobname.toc
- \global\tocfileopenedtrue
- \fi
- \iflinks \write\tocfile{#1{\folio}}\fi
-}
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\newcount\savepageno
-\newcount\lastnegativepageno \lastnegativepageno = -1
-
-% Finish up the main text and prepare to read what we've written
-% to \tocfile.
-%
-\def\startcontents#1{%
- % If @setchapternewpage on, and @headings double, the contents should
- % start on an odd page, unlike chapters. Thus, we maintain
- % \contentsalignmacro in parallel with \pagealignmacro.
- % From: Torbjorn Granlund <tege@matematik.su.se>
- \contentsalignmacro
- \immediate\closeout\tocfile
- %
- % Don't need to put `Contents' or `Short Contents' in the headline.
- % It is abundantly clear what they are.
- \unnumbchapmacro{#1}\def\thischapter{}%
- \savepageno = \pageno
- \begingroup % Set up to handle contents files properly.
- \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
- % We can't do this, because then an actual ^ in a section
- % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97.
- %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
- \raggedbottom % Worry more about breakpoints than the bottom.
- \advance\hsize by -\contentsrightmargin % Don't use the full line length.
- %
- % Roman numerals for page numbers.
- \ifnum \pageno>0 \pageno = \lastnegativepageno \fi
-}
-
-
-% Normal (long) toc.
-\def\contents{%
- \startcontents{\putwordTOC}%
- \openin 1 \jobname.toc
- \ifeof 1 \else
- \closein 1
- \input \jobname.toc
- \fi
- \vfill \eject
- \contentsalignmacro % in case @setchapternewpage odd is in effect
- \pdfmakeoutlines
- \endgroup
- \lastnegativepageno = \pageno
- \pageno = \savepageno
-}
-
-% And just the chapters.
-\def\summarycontents{%
- \startcontents{\putwordShortTOC}%
- %
- \let\chapentry = \shortchapentry
- \let\unnumbchapentry = \shortunnumberedentry
- % We want a true roman here for the page numbers.
- \secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
- \rm
- \hyphenpenalty = 10000
- \advance\baselineskip by 1pt % Open it up a little.
- \def\secentry ##1##2##3##4{}
- \def\unnumbsecentry ##1##2{}
- \def\subsecentry ##1##2##3##4##5{}
- \def\unnumbsubsecentry ##1##2{}
- \def\subsubsecentry ##1##2##3##4##5##6{}
- \def\unnumbsubsubsecentry ##1##2{}
- \openin 1 \jobname.toc
- \ifeof 1 \else
- \closein 1
- \input \jobname.toc
- \fi
- \vfill \eject
- \contentsalignmacro % in case @setchapternewpage odd is in effect
- \endgroup
- \lastnegativepageno = \pageno
- \pageno = \savepageno
-}
-\let\shortcontents = \summarycontents
-
-\ifpdf
- \pdfcatalog{/PageMode /UseOutlines}%
-\fi
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapter-level things, for both the long and short contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
-\def\shortchapentry#1#2#3{%
- \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}%
-}
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-%
-\newdimen\shortappendixwidth
-%
-\def\shortchaplabel#1{%
- % Compute width of word "Appendix", may change with language.
- \setbox0 = \hbox{\shortcontrm \putwordAppendix}%
- \shortappendixwidth = \wd0
- %
- % We typeset #1 in a box of constant width, regardless of the text of
- % #1, so the chapter titles will come out aligned.
- \setbox0 = \hbox{#1}%
- \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
- %
- % This space should be plenty, since a single number is .5em, and the
- % widest letter (M) is 1em, at least in the Computer Modern fonts.
- % (This space doesn't include the extra space that gets added after
- % the label; that gets put in by \shortchapentry above.)
- \advance\dimen0 by 1.1em
- \hbox to \dimen0{#1\hfil}%
-}
-
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
-
-% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
-
-% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
-
-% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
- \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
-% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
- \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
- \begingroup
- \chapentryfonts
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
- \endgroup
- \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
- \secentryfonts \leftskip=\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
- \subsecentryfonts \leftskip=2\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
- \subsubsecentryfonts \leftskip=3\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here. (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
- \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
- % Do not use \turnoffactive in these arguments. Since the toc is
- % typeset in cmr, so characters such as _ would come out wrong; we
- % have to do the usual translation tricks.
- \entry{#1}{#2}%
-\endgroup}
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
-
-
-\message{environments,}
-% @foo ... @end foo.
-
-% Since these characters are used in examples, it should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox \newbox\longdblarrowbox
-\newbox\pushcharbox \newbox\bullbox
-\newbox\equivbox \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-% depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% Adapted from the TeXbook's \boxit.
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
- \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
- \advance\hsize by -2\dimen2 % Rules.
- \vbox{
- \hrule height\dimen2
- \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
- \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
- \kern3pt\vrule width\dimen2}% Space to right.
- \hrule height\dimen2}
- \hfil}
-
-% The @error{} command.
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @tex ... @end tex escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\def\tex{\begingroup
- \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
- \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
- \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
- \catcode `\%=14
- \catcode 43=12 % plus
- \catcode`\"=12
- \catcode`\==12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \escapechar=`\\
- %
- \let\b=\ptexb
- \let\bullet=\ptexbullet
- \let\c=\ptexc
- \let\,=\ptexcomma
- \let\.=\ptexdot
- \let\dots=\ptexdots
- \let\equiv=\ptexequiv
- \let\!=\ptexexclam
- \let\i=\ptexi
- \let\{=\ptexlbrace
- \let\+=\tabalign
- \let\}=\ptexrbrace
- \let\*=\ptexstar
- \let\t=\ptext
- %
- \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
- \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
- \def\@{@}%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments. \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% Make each space character in the input produce a normal interword
-% space in the output. Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is. This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical. We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins.
-\let\nonarrowing=\relax
-
-% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
-% environment contents.
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
- \ctl\leaders\hrule height\circthick\hfil\ctr
- \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
- \cbl\leaders\hrule height\circthick\hfil\cbr
- \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\long\def\cartouche{%
-\begingroup
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt %we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18.4pt % allow for 3pt kerns on either
-% side, and for 6pt waste from
-% each corner char, and rule thickness
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing=\comment
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \hsize=\cartinner
- \kern3pt
- \begingroup
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
-\def\Ecartouche{%
- \endgroup
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
-\endgroup
-}}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\def\nonfillstart{%
- \aboveenvbreak
- \inENV % This group ends at the end of the body
- \hfuzz = 12pt % Don't be fussy
- \sepspaces % Make spaces be word-separators rather than space tokens.
- \singlespace
- \let\par = \lisppar % don't ignore blank lines
- \obeylines % each line of input is a line of output
- \parskip = 0pt
- \parindent = 0pt
- \emergencystretch = 0pt % don't try to avoid overfull boxes
- % @cartouche defines \nonarrowing to inhibit narrowing
- % at next level down.
- \ifx\nonarrowing\relax
- \advance \leftskip by \lispnarrowing
- \exdentamount=\lispnarrowing
- \let\exdent=\nofillexdent
- \let\nonarrowing=\relax
- \fi
-}
-
-% Define the \E... control sequence only if we are inside the particular
-% environment, so the error checking in \end will work.
-%
-% To end an @example-like environment, we first end the paragraph (via
-% \afterenvbreak's vertical glue), and then the group. That way we keep
-% the zero \parskip that the environments set -- \parskip glue will be
-% inserted at the beginning of the next paragraph in the document, after
-% the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}
-
-% @lisp: indented, narrowed, typewriter font.
-\def\lisp{\begingroup
- \nonfillstart
- \let\Elisp = \nonfillfinish
- \tt
- \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
- \gobble % eat return
-}
-
-% @example: Same as @lisp.
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-
-% @small... is usually equivalent to the non-small (@smallbook
-% redefines). We must call \example (or whatever) last in the
-% definition, since it reads the return following the @example (or
-% whatever) command.
-%
-% This actually allows (for example) @end display inside an
-% @smalldisplay. Too bad, but makeinfo will catch the error anyway.
-%
-\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display}
-\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format}
-\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts.
-% Originally contributed by Pavel@xerox.
-\def\smalllispx{\begingroup
- \def\Esmalllisp{\nonfillfinish\endgroup}%
- \def\Esmallexample{\nonfillfinish\endgroup}%
- \smallfonts
- \lisp
-}
-
-% @display: same as @lisp except keep current font.
-%
-\def\display{\begingroup
- \nonfillstart
- \let\Edisplay = \nonfillfinish
- \gobble
-}
-
-% @smalldisplay (when @smallbook): @display plus smaller fonts.
-%
-\def\smalldisplayx{\begingroup
- \def\Esmalldisplay{\nonfillfinish\endgroup}%
- \smallfonts \rm
- \display
-}
-
-% @format: same as @display except don't narrow margins.
-%
-\def\format{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eformat = \nonfillfinish
- \gobble
-}
-
-% @smallformat (when @smallbook): @format plus smaller fonts.
-%
-\def\smallformatx{\begingroup
- \def\Esmallformat{\nonfillfinish\endgroup}%
- \smallfonts \rm
- \format
-}
-
-% @flushleft (same as @format).
-%
-\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format}
-
-% @flushright.
-%
-\def\flushright{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eflushright = \nonfillfinish
- \advance\leftskip by 0pt plus 1fill
- \gobble
-}
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
-%
-\def\quotation{%
- \begingroup\inENV %This group ends at the end of the @quotation body
- {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \singlespace
- \parindent=0pt
- % We have retained a nonzero parskip for the environment, since we're
- % doing normal filling. So to avoid extra space below the environment...
- \def\Equotation{\parskip = 0pt \nonfillfinish}%
- %
- % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
- \ifx\nonarrowing\relax
- \advance\leftskip by \lispnarrowing
- \advance\rightskip by \lispnarrowing
- \exdentamount = \lispnarrowing
- \let\nonarrowing = \relax
- \fi
-}
-
-
-\message{defuns,}
-% @defun etc.
-
-% Allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc. For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
- \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
- % also in that case restore the outer-level definition of (.
- \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
- \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text. This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\let\ampnr = \&
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% Active &'s sneak into the index arguments, so make sure it's defined.
-{
- \catcode`& = 13
- \global\let& = \ampnr
-}
-
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\noindent
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2
-\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
-%
-\def\defmethparsebody#1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
-
-% Used for @deftypemethod and @deftypeivar.
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by a space, is the class name.
-% #5 is the method's return type.
-%
-\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV
- \medbreak
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
-
-% Used for @deftypeop. The change from \deftypemethparsebody is an
-% extra argument at the beginning which is the `category', instead of it
-% being the hardwired string `Method' or `Instance Variable'. We have
-% to account for this both in the \...x definition and in parsing the
-% input at hand. Thus also need a control sequence (passed as #5) for
-% the \E... definition to assign the category name to.
-%
-\def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV
- \medbreak
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 ##2 ##3 {%
- \def#4{##1}%
- \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
-
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody. It could probably be used for
-% some of the others, too, with some judicious conditionals.
-%
-\def\parsebodycommon#1#2#3{%
- \begingroup\inENV %
- \medbreak %
- % Define the end token that this defining construct specifies
- % so that it will exit this group.
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines
-}
-
-\def\defvrparsebody#1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{#3{#4}}%
-}
-
-% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument. Sigh.
-% \let\deftpparsebody=\defvrparsebody
-%
-% So, to get around this, we put \empty in with the type name. That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
-%
-\def\deftpparsebody #1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{\parsetpheaderline{#3{#4}}}\empty
-}
-
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any). That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
-
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
- #1{\removeemptybraces#2\relax}{#3}%
-}%
-
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-% the first is all of #2 before the space token,
-% the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
-
-% Define @defun.
-
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
-
-\def\defunargs#1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Set the font temporarily and use \font in case \setfont made \tensl a macro.
-{\tensl\hyphenchar\font=0}%
-#1%
-{\tensl\hyphenchar\font=45}%
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-% Do complete processing of one @defun or @defunx line already parsed.
-
-% @deffn Command forward-char nchars
-
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defun == @deffn Function
-
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
-
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDeffunc}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type. #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypefun}%
-\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-
-% \defheaderxcond#1\relax$$$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
-
-% #1 is the classification. #2 is the data type. #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-% at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDefmac}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
-
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDefspec}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defop CATEGORY CLASS OPERATION ARG...
-%
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
-%
-\def\defopheader#1#2#3{%
-\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @deftypeop CATEGORY CLASS TYPE OPERATION ARG...
-%
-\def\deftypeop #1 {\def\deftypeopcategory{#1}%
- \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader
- \deftypeopcategory}
-%
-% #1 is the class name, #2 the data type, #3 the operation name, #4 the args.
-\def\deftypeopheader#1#2#3#4{%
- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{\defheaderxcond#2\relax$$$#3}
- {\deftypeopcategory\ \putwordon\ \code{#1}}%
- \deftypefunargs{#4}%
- \endgroup
-}
-
-% @deftypemethod CLASS TYPE METHOD ARG...
-%
-\def\deftypemethod{%
- \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
-%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}%
- \deftypefunargs{#4}%
- \endgroup
-}
-
-% @deftypeivar CLASS TYPE VARNAME
-%
-\def\deftypeivar{%
- \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader}
-%
-% #1 is the class name, #2 the data type, #3 the variable name.
-\def\deftypeivarheader#1#2#3{%
- \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
- \begingroup
- \defname{#3}{\putwordInstanceVariableof\ \code{#1}}%
- \defvarargs{#3}%
- \endgroup
-}
-
-% @defmethod == @defop Method
-%
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-%
-% #1 is the class name, #2 the method name, #3 the args.
-\def\defmethodheader#1#2#3{%
- \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{#2}{\putwordMethodon\ \code{#1}}%
- \defunargs{#3}%
- \endgroup
-}
-
-% @defcv {Class Option} foo-class foo-flag
-
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
-
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME
-%
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-%
-\def\defivarheader#1#2#3{%
- \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index
- \begingroup
- \defname{#2}{\putwordInstanceVariableof\ #1}%
- \defvarargs{#3}%
- \endgroup
-}
-
-% @defvar
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{\putwordDefvar}%
-\defvarargs {#2}\endgroup %
-}
-
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{\putwordDefopt}%
-\defvarargs {#2}\endgroup %
-}
-
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type. #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% These definitions are used if you use @defunx (etc.)
-% anywhere other than immediately after a @defun or @defunx.
-%
-\def\defcvx#1 {\errmessage{@defcvx in invalid context}}
-\def\deffnx#1 {\errmessage{@deffnx in invalid context}}
-\def\defivarx#1 {\errmessage{@defivarx in invalid context}}
-\def\defmacx#1 {\errmessage{@defmacx in invalid context}}
-\def\defmethodx#1 {\errmessage{@defmethodx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-\def\defopx#1 {\errmessage{@defopx in invalid context}}
-\def\defspecx#1 {\errmessage{@defspecx in invalid context}}
-\def\deftpx#1 {\errmessage{@deftpx in invalid context}}
-\def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}}
-\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}}
-\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}}
-\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}}
-\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}}
-\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}}
-\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}}
-\def\defunx#1 {\errmessage{@defunx in invalid context}}
-\def\defvarx#1 {\errmessage{@defvarx in invalid context}}
-\def\defvrx#1 {\errmessage{@defvrx in invalid context}}
-
-
-\message{macros,}
-% @macro.
-
-% To do this right we need a feature of e-TeX, \scantokens,
-% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
- \newwrite\macscribble
- \def\scanmacro#1{%
- \begingroup \newlinechar`\^^M
- % Undo catcode changes of \startcontents and \doprintindex
- \catcode`\@=0 \catcode`\\=12 \escapechar=`\@
- % Append \endinput to make sure that TeX does not see the ending newline.
- \toks0={#1\endinput}%
- \immediate\openout\macscribble=\jobname.tmp
- \immediate\write\macscribble{\the\toks0}%
- \immediate\closeout\macscribble
- \let\xeatspaces\eatspaces
- \input \jobname.tmp
- \endgroup
-}
-\else
-\def\scanmacro#1{%
-\begingroup \newlinechar`\^^M
-% Undo catcode changes of \startcontents and \doprintindex
-\catcode`\@=0 \catcode`\\=12 \escapechar=`\@
-\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup}
-\fi
-
-\newcount\paramno % Count of parameters
-\newtoks\macname % Macro name
-\newif\ifrecursive % Is it recursive?
-\def\macrolist{} % List of all defined macros in the form
- % \do\macro1\do\macro2...
-
-% Utility routines.
-% Thisdoes \let #1 = #2, except with \csnames.
-\def\cslet#1#2{%
-\expandafter\expandafter
-\expandafter\let
-\expandafter\expandafter
-\csname#1\endcsname
-\csname#2\endcsname}
-
-% Trim leading and trailing spaces off a string.
-% Concepts from aro-bend problem 15 (see CTAN).
-{\catcode`\@=11
-\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
-\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
-\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
-\def\unbrace#1{#1}
-\unbrace{\gdef\trim@@@ #1 } #2@{#1}
-}
-
-% Trim a single trailing ^^M off a string.
-{\catcode`\^^M=12\catcode`\Q=3%
-\gdef\eatcr #1{\eatcra #1Q^^MQ}%
-\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
-\gdef\eatcrb#1Q#2Q{#1}%
-}
-
-% Macro bodies are absorbed as an argument in a context where
-% all characters are catcode 10, 11 or 12, except \ which is active
-% (as in normal texinfo). It is necessary to change the definition of \.
-
-% It's necessary to have hard CRs when the macro is executed. This is
-% done by making ^^M (\endlinechar) catcode 12 when reading the macro
-% body, and then making it the \newlinechar in \scanmacro.
-
-\def\macrobodyctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\{=12
- \catcode`\}=12
- \catcode`\@=12
- \catcode`\^^M=12
- \usembodybackslash}
-
-\def\macroargctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\@=12
- \catcode`\\=12}
-
-% \mbodybackslash is the definition of \ in @macro bodies.
-% It maps \foo\ => \csname macarg.foo\endcsname => #N
-% where N is the macro parameter number.
-% We define \csname macarg.\endcsname to be \realbackslash, so
-% \\ in macro replacement text gets you a backslash.
-
-{\catcode`@=0 @catcode`@\=@active
- @gdef@usembodybackslash{@let\=@mbodybackslash}
- @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
-}
-\expandafter\def\csname macarg.\endcsname{\realbackslash}
-
-\def\macro{\recursivefalse\parsearg\macroxxx}
-\def\rmacro{\recursivetrue\parsearg\macroxxx}
-
-\def\macroxxx#1{%
- \getargs{#1}% now \macname is the macname and \argl the arglist
- \ifx\argl\empty % no arguments
- \paramno=0%
- \else
- \expandafter\parsemargdef \argl;%
- \fi
- \if1\csname ismacro.\the\macname\endcsname
- \message{Warning: redefining \the\macname}%
- \else
- \expandafter\ifx\csname \the\macname\endcsname \relax
- \else \errmessage{The name \the\macname\space is reserved}\fi
- \global\cslet{macsave.\the\macname}{\the\macname}%
- \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
- % Add the macroname to \macrolist
- \toks0 = \expandafter{\macrolist\do}%
- \xdef\macrolist{\the\toks0
- \expandafter\noexpand\csname\the\macname\endcsname}%
- \fi
- \begingroup \macrobodyctxt
- \ifrecursive \expandafter\parsermacbody
- \else \expandafter\parsemacbody
- \fi}
-
-\def\unmacro{\parsearg\unmacroxxx}
-\def\unmacroxxx#1{%
- \if1\csname ismacro.#1\endcsname
- \global\cslet{#1}{macsave.#1}%
- \global\expandafter\let \csname ismacro.#1\endcsname=0%
- % Remove the macro name from \macrolist
- \begingroup
- \edef\tempa{\expandafter\noexpand\csname#1\endcsname}%
- \def\do##1{%
- \def\tempb{##1}%
- \ifx\tempa\tempb
- % remove this
- \else
- \toks0 = \expandafter{\newmacrolist\do}%
- \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}%
- \fi}%
- \def\newmacrolist{}%
- % Execute macro list to define \newmacrolist
- \macrolist
- \global\let\macrolist\newmacrolist
- \endgroup
- \else
- \errmessage{Macro #1 not defined}%
- \fi
-}
-
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> is #, then the preceding argument is delimited by
-% an opening brace, and that opening brace is not consumed.
-\def\getargs#1{\getargsxxx#1{}}
-\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
-\def\getmacname #1 #2\relax{\macname={#1}}
-\def\getmacargs#1{\def\argl{#1}}
-
-% Parse the optional {params} list. Set up \paramno and \paramlist
-% so \defmacro knows what to do. Define \macarg.blah for each blah
-% in the params list, to be ##N where N is the position in that list.
-% That gets used by \mbodybackslash (above).
-
-% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX: let \hash be something
-% unexpandable, insert that wherever you need a #, and then redefine
-% it to # just before using the token list produced.
-%
-% The same technique is used to protect \eatspaces till just before
-% the macro is used.
-
-\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
- \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
-\def\parsemargdefxxx#1,{%
- \if#1;\let\next=\relax
- \else \let\next=\parsemargdefxxx
- \advance\paramno by 1%
- \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
- {\xeatspaces{\hash\the\paramno}}%
- \edef\paramlist{\paramlist\hash\the\paramno,}%
- \fi\next}
-
-% These two commands read recursive and nonrecursive macro bodies.
-% (They're different since rec and nonrec macros end differently.)
-
-\long\def\parsemacbody#1@end macro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\long\def\parsermacbody#1@end rmacro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
-% Much magic with \expandafter here.
-% \xdef is used so that macro definitions will survive the file
-% they're defined in; @include reads the file inside a group.
-\def\defmacro{%
- \let\hash=##% convert placeholders to macro parameter chars
- \ifrecursive
- \ifcase\paramno
- % 0
- \expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\scanmacro{\temp}}%
- \or % 1
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\braceorline
- \expandafter\noexpand\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup\noexpand\scanmacro{\temp}}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{\egroup\noexpand\scanmacro{\temp}}%
- \fi
- \else
- \ifcase\paramno
- % 0
- \expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \or % 1
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\braceorline
- \expandafter\noexpand\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \expandafter\noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \fi
- \fi}
-
-\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
-
-% \braceorline decides whether the next nonwhitespace character is a
-% {. If so it reads up to the closing }, if not, it reads the whole
-% line. Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg)
-\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
-\def\braceorlinexxx{%
- \ifx\nchar\bgroup\else
- \expandafter\parsearg
- \fi \next}
-
-% We mant to disable all macros during \shipout so that they are not
-% expanded by \write.
-\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
- \edef\next{\macrolist}\expandafter\endgroup\next}
-
-
-% @alias.
-% We need some trickery to remove the optional spaces around the equal
-% sign. Just make them active and then expand them all to nothing.
-\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx}
-\def\aliasxxx #1{\aliasyyy#1\relax}
-\def\aliasyyy #1=#2\relax{\ignoreactivespaces
-\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=%
- \expandafter\noexpand\csname#2\endcsname}%
-\expandafter\endgroup\next}
-
-
-\message{cross references,}
-% @xref etc.
-
-\newwrite\auxfile
-
-\newif\ifhavexrefs % True if xref values are known.
-\newif\ifwarnedxrefs % True if we warned once that they aren't known.
-
-% @inforef is relatively simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
- node \samp{\ignorespaces#1{}}}
-
-% @node's job is to define \lastnode.
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\nwnode=\node
-\let\lastnode=\relax
-
-% The sectioning commands (@chapter, etc.) call these.
-\def\donoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}%
- {Ysectionnumberandtype}%
- \global\let\lastnode=\relax
- \fi
-}
-\def\unnumbnoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}%
- \global\let\lastnode=\relax
- \fi
-}
-\def\appendixnoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}%
- {Yappendixletterandtype}%
- \global\let\lastnode=\relax
- \fi
-}
-
-
-% @anchor{NAME} -- define xref target at arbitrary point.
-%
-\newcount\savesfregister
-\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
-\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
-\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
-
-% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
-% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have
-% to set \indexdummies so commands such as @code in a section title
-% aren't expanded. It would be nicer not to expand the titles in the
-% first place, but there's so many layers that that is hard to do.
-%
-\def\setref#1#2{{%
- \indexdummies
- \pdfmkdest{#1}%
- \dosetq{#1-title}{Ytitle}%
- \dosetq{#1-pg}{Ypagenumber}%
- \dosetq{#1-snt}{#2}%
-}}
-
-% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
-% the node name, #2 the name of the Info cross-reference, #3 the printed
-% node name, #4 the name of the Info file, #5 the name of the printed
-% manual. All but the node name can be omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
- \unsepspaces
- \def\printedmanual{\ignorespaces #5}%
- \def\printednodename{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual}%
- \setbox0=\hbox{\printednodename}%
- \ifdim \wd0 = 0pt
- % No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
- \def\printednodename{\ignorespaces #1}%
- \else
- % Use the actual chapter/section title appear inside
- % the square brackets. Use the real section title if we have it.
- \ifdim \wd1 > 0pt
- % It is in another manual, so we don't have it.
- \def\printednodename{\ignorespaces #1}%
- \else
- \ifhavexrefs
- % We know the real title if we have the xref values.
- \def\printednodename{\refx{#1-title}{}}%
- \else
- % Otherwise just copy the Info node name.
- \def\printednodename{\ignorespaces #1}%
- \fi%
- \fi
- \fi
- \fi
- %
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
- \ifpdf
- \leavevmode
- \getfilename{#4}%
- \ifnum\filenamelength>0
- \startlink attr{/Border [0 0 0]}%
- goto file{\the\filename.pdf} name{#1@}%
- \else
- \startlink attr{/Border [0 0 0]}%
- goto name{#1@}%
- \fi
- \linkcolor
- \fi
- %
- \ifdim \wd1 > 0pt
- \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}%
- \else
- % _ (for example) has to be the character _ for the purposes of the
- % control sequence corresponding to the node, but it has to expand
- % into the usual \leavevmode...\vrule stuff for purposes of
- % printing. So we \turnoffactive for the \refx-snt, back on for the
- % printing, back off for the \refx-pg.
- {\normalturnoffactive
- % Only output a following space if the -snt ref is nonempty; for
- % @unnumbered and @anchor, it won't be.
- \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
- \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
- }%
- % [mynode],
- [\printednodename],\space
- % page 3
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
- \endlink
-\endgroup}
-
-% \dosetq is the interface for calls from other macros
-
-% Use \normalturnoffactive so that punctuation chars such as underscore
-% and backslash work in node names. (\turnoffactive doesn't do \.)
-\def\dosetq#1#2{%
- {\let\folio=0%
- \normalturnoffactive
- \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
- \iflinks
- \next
- \fi
- }%
-}
-
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
-
-\def\Ypagenumber{\folio}
-
-\def\Ytitle{\thissection}
-
-\def\Ynothing{}
-
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Non-3.0.
-\else
- \def\linenumber{\the\inputlineno:\space}
-\fi
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-
-\def\refx#1#2{%
- \expandafter\ifx\csname X#1\endcsname\relax
- % If not defined, say something at least.
- \angleleft un\-de\-fined\angleright
- \iflinks
- \ifhavexrefs
- \message{\linenumber Undefined cross reference `#1'.}%
- \else
- \ifwarnedxrefs\else
- \global\warnedxrefstrue
- \message{Cross reference values unknown; you must run TeX again.}%
- \fi
- \fi
- \fi
- \else
- % It's defined, so just use it.
- \csname X#1\endcsname
- \fi
- #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file.
-%
-\def\xrdef#1{\begingroup
- % Reenable \ as an escape while reading the second argument.
- \catcode`\\ = 0
- \afterassignment\endgroup
- \expandafter\gdef\csname X#1\endcsname
-}
-
-% Read the last existing aux file, if any. No error if none exists.
-\def\readauxfile{\begingroup
- \catcode`\^^@=\other
- \catcode`\^^A=\other
- \catcode`\^^B=\other
- \catcode`\^^C=\other
- \catcode`\^^D=\other
- \catcode`\^^E=\other
- \catcode`\^^F=\other
- \catcode`\^^G=\other
- \catcode`\^^H=\other
- \catcode`\^^K=\other
- \catcode`\^^L=\other
- \catcode`\^^N=\other
- \catcode`\^^P=\other
- \catcode`\^^Q=\other
- \catcode`\^^R=\other
- \catcode`\^^S=\other
- \catcode`\^^T=\other
- \catcode`\^^U=\other
- \catcode`\^^V=\other
- \catcode`\^^W=\other
- \catcode`\^^X=\other
- \catcode`\^^Z=\other
- \catcode`\^^[=\other
- \catcode`\^^\=\other
- \catcode`\^^]=\other
- \catcode`\^^^=\other
- \catcode`\^^_=\other
- \catcode`\@=\other
- \catcode`\^=\other
- % It was suggested to define this as 7, which would allow ^^e4 etc.
- % in xref tags, i.e., node names. But since ^^e4 notation isn't
- % supported in the main text, it doesn't seem desirable. Furthermore,
- % that is not enough: for node names that actually contain a ^
- % character, we would end up writing a line like this: 'xrdef {'hat
- % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
- % argument, and \hat is not an expandable control sequence. It could
- % all be worked out, but why? Either we support ^^ or we don't.
- %
- % The other change necessary for this was to define \auxhat:
- % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
- % and then to call \auxhat in \setq.
- %
- \catcode`\~=\other
- \catcode`\[=\other
- \catcode`\]=\other
- \catcode`\"=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\$=\other
- \catcode`\#=\other
- \catcode`\&=\other
- \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
- % Make the characters 128-255 be printing characters
- {%
- \count 1=128
- \def\loop{%
- \catcode\count 1=\other
- \advance\count 1 by 1
- \ifnum \count 1<256 \loop \fi
- }%
- }%
- % The aux file uses ' as the escape (for now).
- % Turn off \ as an escape so we do not lose on
- % entries which were dumped with control sequences in their names.
- % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
- % Reference to such entries still does not work the way one would wish,
- % but at least they do not bomb out when the aux file is read in.
- \catcode`\{=1
- \catcode`\}=2
- \catcode`\%=\other
- \catcode`\'=0
- \catcode`\\=\other
- %
- \openin 1 \jobname.aux
- \ifeof 1 \else
- \closein 1
- \input \jobname.aux
- \global\havexrefstrue
- \global\warnedobstrue
- \fi
- % Open the new aux file. TeX will close it automatically at exit.
- \openout\auxfile=\jobname.aux
-\endgroup}
-
-
-% Footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-\let\ptexfootnote=\footnote
-
-{\catcode `\@=11
-%
-% Auto-number footnotes. Otherwise like plain.
-\gdef\footnote{%
- \global\advance\footnoteno by \@ne
- \edef\thisfootno{$^{\the\footnoteno}$}%
- %
- % In case the footnote comes at the end of a sentence, preserve the
- % extra spacing after we do the footnote number.
- \let\@sf\empty
- \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
- %
- % Remove inadvertent blank space before typesetting the footnote number.
- \unskip
- \thisfootno\@sf
- \footnotezzz
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter. Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
-% the footnote is read. --karl, 16nov96.
-%
-\long\gdef\footnotezzz{\insert\footins\bgroup
- % We want to typeset this text as a normal paragraph, even if the
- % footnote reference occurs in (for example) a display environment.
- % So reset some parameters.
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \splitmaxdepth\dp\strutbox
- \floatingpenalty\@MM
- \leftskip\z@skip
- \rightskip\z@skip
- \spaceskip\z@skip
- \xspaceskip\z@skip
- \parindent\defaultparindent
- %
- \smallfonts \rm
- %
- % Hang the footnote text off the number.
- \hang
- \textindent{\thisfootno}%
- %
- % Don't crash into the line above the footnote text. Since this
- % expands into a box, it must come within the paragraph, lest it
- % provide a place where TeX can split the footnote.
- \footstrut
- \futurelet\next\fo@t
-}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
- \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\par\egroup}
-
-}%end \catcode `\@=11
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly. There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
- \normalbaselineskip = #1\relax
- \normallineskip = \lineskipfactor\normalbaselineskip
- \normalbaselines
- \setbox\strutbox =\hbox{%
- \vrule width0pt height\strutheightpercent\baselineskip
- depth \strutdepthpercent \baselineskip
- }%
-}
-
-% @| inserts a changebar to the left of the current line. It should
-% surround any changed text. This approach does *not* work if the
-% change spans more than two lines of output. To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
- % \vadjust can only be used in horizontal mode.
- \leavevmode
- %
- % Append this vertical mode material after the current line in the output.
- \vadjust{%
- % We want to insert a rule with the height and depth of the current
- % leading; that is exactly what \strutbox is supposed to record.
- \vskip-\baselineskip
- %
- % \vadjust-items are inserted at the left edge of the type. So
- % the \llap here moves out into the left-hand margin.
- \llap{%
- %
- % For a thicker or thinner bar, change the `1pt'.
- \vrule height\baselineskip width1pt
- %
- % This is the space between the bar and the text.
- \hskip 12pt
- }%
- }%
-}
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @image. We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-%
-% Check for and read epsf.tex up front. If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
- \closein 1
- % Do not bother showing banner with post-v2.7 epsf.tex (available in
- % doc/epsf.tex until it shows up on ctan).
- \def\epsfannounce{\toks0 = }%
- \input epsf.tex
-\fi
-%
-% We will only complain once about lack of epsf.tex.
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
- work. It is also included in the Texinfo distribution, or you can get
- it from ftp://tug.org/tex/epsf.tex.}
-%
-\def\image#1{%
- \ifx\epsfbox\undefined
- \ifwarnednoepsf \else
- \errhelp = \noepsfhelp
- \errmessage{epsf.tex not found, images will be ignored}%
- \global\warnednoepsftrue
- \fi
- \else
- \imagexxx #1,,,\finish
- \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
- \ifpdf
- \centerline{\dopdfimage{#1}{#2}{#3}}%
- \else
- % \epsfbox itself resets \epsf?size at each figure.
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
- \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
- \begingroup
- \catcode`\^^M = 5 % in case we're inside an example
- % If the image is by itself, center it.
- \ifvmode
- \nobreak\bigskip
- % Usually we'll have text after the image which will insert
- % \parskip glue, so insert it here too to equalize the space
- % above and below.
- \nobreak\vskip\parskip
- \nobreak
- \centerline{\epsfbox{#1.eps}}%
- \bigbreak
- \else
- % In the middle of a paragraph, no extra space.
- \epsfbox{#1.eps}%
- \fi
- \endgroup
- \fi
-}
-
-
-\message{localization,}
-% and i18n.
-
-% @documentlanguage is usually given very early, just after
-% @setfilename. If done too late, it may not override everything
-% properly. Single argument is the language abbreviation.
-% It would be nice if we could set up a hyphenation file here.
-%
-\def\documentlanguage{\parsearg\dodocumentlanguage}
-\def\dodocumentlanguage#1{%
- \tex % read txi-??.tex file in plain TeX.
- % Read the file if it exists.
- \openin 1 txi-#1.tex
- \ifeof1
- \errhelp = \nolanghelp
- \errmessage{Cannot read language file txi-#1.tex}%
- \let\temp = \relax
- \else
- \def\temp{\input txi-#1.tex }%
- \fi
- \temp
- \endgroup
-}
-\newhelp\nolanghelp{The given language definition file cannot be found or
-is empty. Maybe you need to install it? In the current directory
-should work if nowhere else does.}
-
-
-% @documentencoding should change something in TeX eventually, most
-% likely, but for now just recognize it.
-\let\documentencoding = \comment
-
-
-% Page size parameters.
-%
-\newdimen\defaultparindent \defaultparindent = 15pt
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness = 10000
-
-% Don't be so finicky about underfull hboxes, either.
-\hbadness = 2000
-
-% Following George Bush, just get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything. We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize. We call this whenever the paper size is set.
-%
-\def\setemergencystretch{%
- \ifx\emergencystretch\thisisundefined
- % Allow us to assign to \emergencystretch anyway.
- \def\emergencystretch{\dimen0}%
- \else
- \emergencystretch = .15\hsize
- \fi
-}
-
-% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
-% 4) hoffset; 5) binding offset; 6) topskip. Then whoever calls us can
-% set \parskip and call \setleading for \baselineskip.
-%
-\def\internalpagesizes#1#2#3#4#5#6{%
- \voffset = #3\relax
- \topskip = #6\relax
- \splittopskip = \topskip
- %
- \vsize = #1\relax
- \advance\vsize by \topskip
- \outervsize = \vsize
- \advance\outervsize by 2\topandbottommargin
- \pageheight = \vsize
- %
- \hsize = #2\relax
- \outerhsize = \hsize
- \advance\outerhsize by 0.5in
- \pagewidth = \hsize
- %
- \normaloffset = #4\relax
- \bindingoffset = #5\relax
- %
- \parindent = \defaultparindent
- \setemergencystretch
-}
-
-% @letterpaper (the default).
-\def\letterpaper{{\globaldefs = 1
- \parskip = 3pt plus 2pt minus 1pt
- \setleading{13.2pt}%
- %
- % If page is nothing but text, make it come out even.
- \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}%
-}}
-
-% Use @smallbook to reset parameters for 7x9.5 (or so) format.
-\def\smallbook{{\globaldefs = 1
- \parskip = 2pt plus 1pt
- \setleading{12pt}%
- %
- \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}%
- %
- \lispnarrowing = 0.3in
- \tolerance = 700
- \hfuzz = 1pt
- \contentsrightmargin = 0pt
- \deftypemargin = 0pt
- \defbodyindent = .5cm
- %
- \let\smalldisplay = \smalldisplayx
- \let\smallexample = \smalllispx
- \let\smallformat = \smallformatx
- \let\smalllisp = \smalllispx
-}}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{{\globaldefs = 1
- \setleading{12pt}%
- \parskip = 3pt plus 2pt minus 1pt
- %
- \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%
- %
- \tolerance = 700
- \hfuzz = 1pt
-}}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex{{\globaldefs = 1
- \setleading{13.6pt}%
- %
- \afourpaper
- \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
- %
- \globaldefs = 0
-}}
-
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{%
- \afourpaper
- \internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
- %
- \globaldefs = 0
-}
-
-% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
-% Perhaps we should allow setting the margins, \topskip, \parskip,
-% and/or leading, also. Or perhaps we should compute them somehow.
-%
-\def\pagesizes{\parsearg\pagesizesxxx}
-\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish}
-\def\pagesizesyyy#1,#2,#3\finish{{%
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
- \globaldefs = 1
- %
- \parskip = 3pt plus 2pt minus 1pt
- \setleading{13.2pt}%
- %
- \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}%
-}}
-
-% Set default to letter.
-%
-\letterpaper
-
-
-\message{and turning on texinfo input format.}
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\catcode`\$=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-\def\normaldollar{$}
-
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise. Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
-
-% Same as above, but check for italic font. Actually this also catches
-% non-italic slanted fonts since it is impossible to distinguish them from
-% italic fonts. But since this is only used by $ and it uses \sl anyway
-% this is not a problem.
-\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt\char34}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-\catcode`\|=\active
-\def|{{\tt\char124}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-\catcode`\$=\active
-\def${\ifusingit{{\sl\$}}\normaldollar}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
-
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
-\catcode`\@=0
-
-% \rawbackslashxx output one backslash character in current font
-\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
-
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
-
-% \catcode 17=0 % Define control-q
-\catcode`\\=\active
-
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus
-@let$=@normaldollar}
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus
-@let$=@normaldollar}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
-@gdef@fixbackslash{%
- @ifx\@eatinput @let\ = @normalbackslash @fi
- @catcode`+=@active
- @catcode`@_=@active
-}
-
-% Say @foo, not \foo, in error messages.
-@escapechar = `@@
-
-% These look ok in all fonts, so just make them not special.
-@catcode`@& = @other
-@catcode`@# = @other
-@catcode`@% = @other
-
-@c Set initial fonts.
-@textfonts
-@rm
-
-
-@c Local variables:
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
-@c page-delimiter: "^\\\\message"
-@c time-stamp-start: "def\\\\texinfoversion{"
-@c time-stamp-format: "%:y-%02m-%02d.%02H"
-@c time-stamp-end: "}"
-@c End:
diff --git a/readline-4.3.orig/emacs_keymap.c b/readline-4.3.orig/emacs_keymap.c
deleted file mode 100644
index ca9d134..0000000
--- a/readline-4.3.orig/emacs_keymap.c
+++ /dev/null
@@ -1,873 +0,0 @@
-/* emacs_keymap.c -- the keymap for emacs_mode in readline (). */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (BUFSIZ)
-#include <stdio.h>
-#endif /* !BUFSIZ */
-
-#include "readline.h"
-
-/* An array of function pointers, one for each possible key.
- If the type byte is ISKMAP, then the pointer is the address of
- a keymap. */
-
-KEYMAP_ENTRY_ARRAY emacs_standard_keymap = {
-
- /* Control keys. */
- { ISFUNC, rl_set_mark }, /* Control-@ */
- { ISFUNC, rl_beg_of_line }, /* Control-a */
- { ISFUNC, rl_backward_char }, /* Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-c */
- { ISFUNC, rl_delete }, /* Control-d */
- { ISFUNC, rl_end_of_line }, /* Control-e */
- { ISFUNC, rl_forward_char }, /* Control-f */
- { ISFUNC, rl_abort }, /* Control-g */
- { ISFUNC, rl_rubout }, /* Control-h */
- { ISFUNC, rl_complete }, /* Control-i */
- { ISFUNC, rl_newline }, /* Control-j */
- { ISFUNC, rl_kill_line }, /* Control-k */
- { ISFUNC, rl_clear_screen }, /* Control-l */
- { ISFUNC, rl_newline }, /* Control-m */
- { ISFUNC, rl_get_next_history }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
- { ISFUNC, rl_get_previous_history }, /* Control-p */
- { ISFUNC, rl_quoted_insert }, /* Control-q */
- { ISFUNC, rl_reverse_search_history }, /* Control-r */
- { ISFUNC, rl_forward_search_history }, /* Control-s */
- { ISFUNC, rl_transpose_chars }, /* Control-t */
- { ISFUNC, rl_unix_line_discard }, /* Control-u */
- { ISFUNC, rl_quoted_insert }, /* Control-v */
- { ISFUNC, rl_unix_word_rubout }, /* Control-w */
- { ISKMAP, (rl_command_func_t *)emacs_ctlx_keymap }, /* Control-x */
- { ISFUNC, rl_yank }, /* Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
- { ISKMAP, (rl_command_func_t *)emacs_meta_keymap }, /* Control-[ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-\ */
- { ISFUNC, rl_char_search }, /* Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-^ */
- { ISFUNC, rl_undo_command }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, rl_insert }, /* SPACE */
- { ISFUNC, rl_insert }, /* ! */
- { ISFUNC, rl_insert }, /* " */
- { ISFUNC, rl_insert }, /* # */
- { ISFUNC, rl_insert }, /* $ */
- { ISFUNC, rl_insert }, /* % */
- { ISFUNC, rl_insert }, /* & */
- { ISFUNC, rl_insert }, /* ' */
- { ISFUNC, rl_insert }, /* ( */
- { ISFUNC, rl_insert }, /* ) */
- { ISFUNC, rl_insert }, /* * */
- { ISFUNC, rl_insert }, /* + */
- { ISFUNC, rl_insert }, /* , */
- { ISFUNC, rl_insert }, /* - */
- { ISFUNC, rl_insert }, /* . */
- { ISFUNC, rl_insert }, /* / */
-
- /* Regular digits. */
- { ISFUNC, rl_insert }, /* 0 */
- { ISFUNC, rl_insert }, /* 1 */
- { ISFUNC, rl_insert }, /* 2 */
- { ISFUNC, rl_insert }, /* 3 */
- { ISFUNC, rl_insert }, /* 4 */
- { ISFUNC, rl_insert }, /* 5 */
- { ISFUNC, rl_insert }, /* 6 */
- { ISFUNC, rl_insert }, /* 7 */
- { ISFUNC, rl_insert }, /* 8 */
- { ISFUNC, rl_insert }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, rl_insert }, /* : */
- { ISFUNC, rl_insert }, /* ; */
- { ISFUNC, rl_insert }, /* < */
- { ISFUNC, rl_insert }, /* = */
- { ISFUNC, rl_insert }, /* > */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_insert }, /* A */
- { ISFUNC, rl_insert }, /* B */
- { ISFUNC, rl_insert }, /* C */
- { ISFUNC, rl_insert }, /* D */
- { ISFUNC, rl_insert }, /* E */
- { ISFUNC, rl_insert }, /* F */
- { ISFUNC, rl_insert }, /* G */
- { ISFUNC, rl_insert }, /* H */
- { ISFUNC, rl_insert }, /* I */
- { ISFUNC, rl_insert }, /* J */
- { ISFUNC, rl_insert }, /* K */
- { ISFUNC, rl_insert }, /* L */
- { ISFUNC, rl_insert }, /* M */
- { ISFUNC, rl_insert }, /* N */
- { ISFUNC, rl_insert }, /* O */
- { ISFUNC, rl_insert }, /* P */
- { ISFUNC, rl_insert }, /* Q */
- { ISFUNC, rl_insert }, /* R */
- { ISFUNC, rl_insert }, /* S */
- { ISFUNC, rl_insert }, /* T */
- { ISFUNC, rl_insert }, /* U */
- { ISFUNC, rl_insert }, /* V */
- { ISFUNC, rl_insert }, /* W */
- { ISFUNC, rl_insert }, /* X */
- { ISFUNC, rl_insert }, /* Y */
- { ISFUNC, rl_insert }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, rl_insert }, /* [ */
- { ISFUNC, rl_insert }, /* \ */
- { ISFUNC, rl_insert }, /* ] */
- { ISFUNC, rl_insert }, /* ^ */
- { ISFUNC, rl_insert }, /* _ */
- { ISFUNC, rl_insert }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, rl_insert }, /* a */
- { ISFUNC, rl_insert }, /* b */
- { ISFUNC, rl_insert }, /* c */
- { ISFUNC, rl_insert }, /* d */
- { ISFUNC, rl_insert }, /* e */
- { ISFUNC, rl_insert }, /* f */
- { ISFUNC, rl_insert }, /* g */
- { ISFUNC, rl_insert }, /* h */
- { ISFUNC, rl_insert }, /* i */
- { ISFUNC, rl_insert }, /* j */
- { ISFUNC, rl_insert }, /* k */
- { ISFUNC, rl_insert }, /* l */
- { ISFUNC, rl_insert }, /* m */
- { ISFUNC, rl_insert }, /* n */
- { ISFUNC, rl_insert }, /* o */
- { ISFUNC, rl_insert }, /* p */
- { ISFUNC, rl_insert }, /* q */
- { ISFUNC, rl_insert }, /* r */
- { ISFUNC, rl_insert }, /* s */
- { ISFUNC, rl_insert }, /* t */
- { ISFUNC, rl_insert }, /* u */
- { ISFUNC, rl_insert }, /* v */
- { ISFUNC, rl_insert }, /* w */
- { ISFUNC, rl_insert }, /* x */
- { ISFUNC, rl_insert }, /* y */
- { ISFUNC, rl_insert }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, rl_insert }, /* { */
- { ISFUNC, rl_insert }, /* | */
- { ISFUNC, rl_insert }, /* } */
- { ISFUNC, rl_insert }, /* ~ */
- { ISFUNC, rl_rubout }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Pure 8-bit characters (128 - 159).
- These might be used in some
- character sets. */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
-
- /* ISO Latin-1 characters (160 - 255) */
- { ISFUNC, rl_insert }, /* No-break space */
- { ISFUNC, rl_insert }, /* Inverted exclamation mark */
- { ISFUNC, rl_insert }, /* Cent sign */
- { ISFUNC, rl_insert }, /* Pound sign */
- { ISFUNC, rl_insert }, /* Currency sign */
- { ISFUNC, rl_insert }, /* Yen sign */
- { ISFUNC, rl_insert }, /* Broken bar */
- { ISFUNC, rl_insert }, /* Section sign */
- { ISFUNC, rl_insert }, /* Diaeresis */
- { ISFUNC, rl_insert }, /* Copyright sign */
- { ISFUNC, rl_insert }, /* Feminine ordinal indicator */
- { ISFUNC, rl_insert }, /* Left pointing double angle quotation mark */
- { ISFUNC, rl_insert }, /* Not sign */
- { ISFUNC, rl_insert }, /* Soft hyphen */
- { ISFUNC, rl_insert }, /* Registered sign */
- { ISFUNC, rl_insert }, /* Macron */
- { ISFUNC, rl_insert }, /* Degree sign */
- { ISFUNC, rl_insert }, /* Plus-minus sign */
- { ISFUNC, rl_insert }, /* Superscript two */
- { ISFUNC, rl_insert }, /* Superscript three */
- { ISFUNC, rl_insert }, /* Acute accent */
- { ISFUNC, rl_insert }, /* Micro sign */
- { ISFUNC, rl_insert }, /* Pilcrow sign */
- { ISFUNC, rl_insert }, /* Middle dot */
- { ISFUNC, rl_insert }, /* Cedilla */
- { ISFUNC, rl_insert }, /* Superscript one */
- { ISFUNC, rl_insert }, /* Masculine ordinal indicator */
- { ISFUNC, rl_insert }, /* Right pointing double angle quotation mark */
- { ISFUNC, rl_insert }, /* Vulgar fraction one quarter */
- { ISFUNC, rl_insert }, /* Vulgar fraction one half */
- { ISFUNC, rl_insert }, /* Vulgar fraction three quarters */
- { ISFUNC, rl_insert }, /* Inverted questionk mark */
- { ISFUNC, rl_insert }, /* Latin capital letter a with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter a with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter a with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter a with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter a with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter a with ring above */
- { ISFUNC, rl_insert }, /* Latin capital letter ae */
- { ISFUNC, rl_insert }, /* Latin capital letter c with cedilla */
- { ISFUNC, rl_insert }, /* Latin capital letter e with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter e with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter e with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter e with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter i with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter i with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter i with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter i with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter eth (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin capital letter n with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter o with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter o with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter o with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter o with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter o with diaeresis */
- { ISFUNC, rl_insert }, /* Multiplication sign */
- { ISFUNC, rl_insert }, /* Latin capital letter o with stroke */
- { ISFUNC, rl_insert }, /* Latin capital letter u with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter u with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter u with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter u with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter Y with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter thorn (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin small letter sharp s (German) */
- { ISFUNC, rl_insert }, /* Latin small letter a with grave */
- { ISFUNC, rl_insert }, /* Latin small letter a with acute */
- { ISFUNC, rl_insert }, /* Latin small letter a with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter a with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter a with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter a with ring above */
- { ISFUNC, rl_insert }, /* Latin small letter ae */
- { ISFUNC, rl_insert }, /* Latin small letter c with cedilla */
- { ISFUNC, rl_insert }, /* Latin small letter e with grave */
- { ISFUNC, rl_insert }, /* Latin small letter e with acute */
- { ISFUNC, rl_insert }, /* Latin small letter e with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter e with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter i with grave */
- { ISFUNC, rl_insert }, /* Latin small letter i with acute */
- { ISFUNC, rl_insert }, /* Latin small letter i with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter i with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter eth (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin small letter n with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter o with grave */
- { ISFUNC, rl_insert }, /* Latin small letter o with acute */
- { ISFUNC, rl_insert }, /* Latin small letter o with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter o with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter o with diaeresis */
- { ISFUNC, rl_insert }, /* Division sign */
- { ISFUNC, rl_insert }, /* Latin small letter o with stroke */
- { ISFUNC, rl_insert }, /* Latin small letter u with grave */
- { ISFUNC, rl_insert }, /* Latin small letter u with acute */
- { ISFUNC, rl_insert }, /* Latin small letter u with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter u with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter y with acute */
- { ISFUNC, rl_insert }, /* Latin small letter thorn (Icelandic) */
- { ISFUNC, rl_insert } /* Latin small letter y with diaeresis */
-#endif /* KEYMAP_SIZE > 128 */
-};
-
-KEYMAP_ENTRY_ARRAY emacs_meta_keymap = {
-
- /* Meta keys. Just like above, but the high bit is set. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-@ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-f */
- { ISFUNC, rl_abort }, /* Meta-Control-g */
- { ISFUNC, rl_backward_kill_word }, /* Meta-Control-h */
- { ISFUNC, rl_tab_insert }, /* Meta-Control-i */
- { ISFUNC, rl_vi_editing_mode }, /* Meta-Control-j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-l */
- { ISFUNC, rl_vi_editing_mode }, /* Meta-Control-m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-q */
- { ISFUNC, rl_revert_line }, /* Meta-Control-r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-t */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-x */
- { ISFUNC, rl_yank_nth_arg }, /* Meta-Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-z */
-
- { ISFUNC, rl_complete }, /* Meta-Control-[ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-\ */
- { ISFUNC, rl_backward_char_search }, /* Meta-Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-^ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, rl_set_mark }, /* Meta-SPACE */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-! */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-" */
- { ISFUNC, rl_insert_comment }, /* Meta-# */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-$ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-% */
- { ISFUNC, rl_tilde_expand }, /* Meta-& */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-' */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-( */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-) */
- { ISFUNC, rl_insert_completions }, /* Meta-* */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-+ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-, */
- { ISFUNC, rl_digit_argument }, /* Meta-- */
- { ISFUNC, rl_yank_last_arg}, /* Meta-. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-/ */
-
- /* Regular digits. */
- { ISFUNC, rl_digit_argument }, /* Meta-0 */
- { ISFUNC, rl_digit_argument }, /* Meta-1 */
- { ISFUNC, rl_digit_argument }, /* Meta-2 */
- { ISFUNC, rl_digit_argument }, /* Meta-3 */
- { ISFUNC, rl_digit_argument }, /* Meta-4 */
- { ISFUNC, rl_digit_argument }, /* Meta-5 */
- { ISFUNC, rl_digit_argument }, /* Meta-6 */
- { ISFUNC, rl_digit_argument }, /* Meta-7 */
- { ISFUNC, rl_digit_argument }, /* Meta-8 */
- { ISFUNC, rl_digit_argument }, /* Meta-9 */
-
- /* A little more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-: */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-; */
- { ISFUNC, rl_beginning_of_history }, /* Meta-< */
- { ISFUNC, rl_possible_completions }, /* Meta-= */
- { ISFUNC, rl_end_of_history }, /* Meta-> */
- { ISFUNC, rl_possible_completions }, /* Meta-? */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-@ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-A */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-B */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-C */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-D */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-E */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-F */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-G */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-H */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-I */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-J */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-K */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-L */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-M */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-N */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-O */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-P */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-Q */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-R */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-S */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-T */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-U */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-V */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-W */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-X */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-Y */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-Z */
-
- /* Some more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-[ */ /* was rl_arrow_keys */
- { ISFUNC, rl_delete_horizontal_space }, /* Meta-\ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-^ */
- { ISFUNC, rl_yank_last_arg }, /* Meta-_ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-` */
-
- /* Lowercase alphabet. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-a */
- { ISFUNC, rl_backward_word }, /* Meta-b */
- { ISFUNC, rl_capitalize_word }, /* Meta-c */
- { ISFUNC, rl_kill_word }, /* Meta-d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-e */
- { ISFUNC, rl_forward_word }, /* Meta-f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-i */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-k */
- { ISFUNC, rl_downcase_word }, /* Meta-l */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-m */
- { ISFUNC, rl_noninc_forward_search }, /* Meta-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-o */ /* was rl_arrow_keys */
- { ISFUNC, rl_noninc_reverse_search }, /* Meta-p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-q */
- { ISFUNC, rl_revert_line }, /* Meta-r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-s */
- { ISFUNC, rl_transpose_words }, /* Meta-t */
- { ISFUNC, rl_upcase_word }, /* Meta-u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-x */
- { ISFUNC, rl_yank_pop }, /* Meta-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-z */
-
- /* Final punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-{ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-| */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-} */
- { ISFUNC, rl_tilde_expand }, /* Meta-~ */
- { ISFUNC, rl_backward_kill_word }, /* Meta-rubout */
-
-#if KEYMAP_SIZE > 128
- /* Undefined keys. */
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 }
-#endif /* KEYMAP_SIZE > 128 */
-};
-
-KEYMAP_ENTRY_ARRAY emacs_ctlx_keymap = {
-
- /* Control keys. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-f */
- { ISFUNC, rl_abort }, /* Control-g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-i */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-l */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-q */
- { ISFUNC, rl_re_read_init_file }, /* Control-r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-t */
- { ISFUNC, rl_undo_command }, /* Control-u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-w */
- { ISFUNC, rl_exchange_point_and_mark }, /* Control-x */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-[ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-\ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-^ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* SPACE */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ! */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* " */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* # */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* $ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* % */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* & */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ' */
- { ISFUNC, rl_start_kbd_macro }, /* ( */
- { ISFUNC, rl_end_kbd_macro }, /* ) */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* * */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* + */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* , */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* - */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* . */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* / */
-
- /* Regular digits. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 0 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 1 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 2 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 3 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 4 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 5 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 6 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 7 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 8 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* : */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ; */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* < */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* = */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* > */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ? */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_do_lowercase_version }, /* A */
- { ISFUNC, rl_do_lowercase_version }, /* B */
- { ISFUNC, rl_do_lowercase_version }, /* C */
- { ISFUNC, rl_do_lowercase_version }, /* D */
- { ISFUNC, rl_do_lowercase_version }, /* E */
- { ISFUNC, rl_do_lowercase_version }, /* F */
- { ISFUNC, rl_do_lowercase_version }, /* G */
- { ISFUNC, rl_do_lowercase_version }, /* H */
- { ISFUNC, rl_do_lowercase_version }, /* I */
- { ISFUNC, rl_do_lowercase_version }, /* J */
- { ISFUNC, rl_do_lowercase_version }, /* K */
- { ISFUNC, rl_do_lowercase_version }, /* L */
- { ISFUNC, rl_do_lowercase_version }, /* M */
- { ISFUNC, rl_do_lowercase_version }, /* N */
- { ISFUNC, rl_do_lowercase_version }, /* O */
- { ISFUNC, rl_do_lowercase_version }, /* P */
- { ISFUNC, rl_do_lowercase_version }, /* Q */
- { ISFUNC, rl_do_lowercase_version }, /* R */
- { ISFUNC, rl_do_lowercase_version }, /* S */
- { ISFUNC, rl_do_lowercase_version }, /* T */
- { ISFUNC, rl_do_lowercase_version }, /* U */
- { ISFUNC, rl_do_lowercase_version }, /* V */
- { ISFUNC, rl_do_lowercase_version }, /* W */
- { ISFUNC, rl_do_lowercase_version }, /* X */
- { ISFUNC, rl_do_lowercase_version }, /* Y */
- { ISFUNC, rl_do_lowercase_version }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* [ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* \ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ^ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* _ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* d */
- { ISFUNC, rl_call_last_kbd_macro }, /* e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* i */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* l */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* q */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* t */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* x */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* { */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* | */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* } */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ~ */
- { ISFUNC, rl_backward_kill_line }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Undefined keys. */
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 }
-#endif /* KEYMAP_SIZE > 128 */
-};
diff --git a/readline-4.3.orig/examples/Inputrc b/readline-4.3.orig/examples/Inputrc
deleted file mode 100644
index d7fdb42..0000000
--- a/readline-4.3.orig/examples/Inputrc
+++ /dev/null
@@ -1,81 +0,0 @@
-# My ~/.inputrc file is in -*- text -*- for easy editing with Emacs.
-#
-# Notice the various bindings which are conditionalized depending
-# on which program is running, or what terminal is active.
-#
-
-# Copyright (C) 1989-2002 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-# In all programs, all terminals, make sure this is bound.
-"\C-x\C-r": re-read-init-file
-
-# Hp terminals (and some others) have ugly default behaviour for C-h.
-"\C-h": backward-delete-char
-"\e\C-h": backward-kill-word
-"\C-xd": dump-functions
-
-# In xterm windows, make the arrow keys do the right thing.
-$if TERM=xterm
-"\e[A": previous-history
-"\e[B": next-history
-"\e[C": forward-char
-"\e[D": backward-char
-
-# alternate arrow key prefix
-"\eOA": previous-history
-"\eOB": next-history
-"\eOC": forward-char
-"\eOD": backward-char
-
-# Under Xterm in Bash, we bind local Function keys to do something useful.
-$if Bash
-"\e[11~": "Function Key 1"
-"\e[12~": "Function Key 2"
-"\e[13~": "Function Key 3"
-"\e[14~": "Function Key 4"
-"\e[15~": "Function Key 5"
-
-# I know the following escape sequence numbers are 1 greater than
-# the function key. Don't ask me why, I didn't design the xterm terminal.
-"\e[17~": "Function Key 6"
-"\e[18~": "Function Key 7"
-"\e[19~": "Function Key 8"
-"\e[20~": "Function Key 9"
-"\e[21~": "Function Key 10"
-$endif
-$endif
-
-# For Bash, all terminals, add some Bash specific hacks.
-$if Bash
-"\C-xv": show-bash-version
-"\C-x\C-e": shell-expand-line
-
-# Here is one for editing my path.
-"\C-xp": "$PATH\C-x\C-e\C-e\"\C-aPATH=\":\C-b"
-
-# Make C-x r read my mail in emacs.
-# "\C-xr": "emacs -f rmail\C-j"
-$endif
-
-# For FTP, different hacks:
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-
-" ": self-insert
diff --git a/readline-4.3.orig/examples/Makefile.in b/readline-4.3.orig/examples/Makefile.in
deleted file mode 100644
index 72c9904..0000000
--- a/readline-4.3.orig/examples/Makefile.in
+++ /dev/null
@@ -1,104 +0,0 @@
-#
-# This is the Makefile for the readline examples subdirectory.
-#
-# Copyright (C) 1994 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-RL_LIBRARY_VERSION = @LIBVERSION@
-
-SHELL = @MAKE_SHELL@
-RM = rm -f
-
-srcdir = @srcdir@
-VPATH = .:@srcdir@
-top_srcdir = @top_srcdir@
-BUILD_DIR = .
-
-# Support an alternate destination root directory for package building
-DESTDIR =
-
-DEFS = @DEFS@
-CC = @CC@
-CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DREADLINE_LIBRARY -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
-CPPFLAGS = @CPPFLAGS@
-
-INCLUDES = -I$(srcdir) -I$(top_srcdir) -I..
-
-CCFLAGS = $(DEFS) $(LOCAL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(CFLAGS)
-LDFLAGS = -g -L.. @LDFLAGS@
-
-READLINE_LIB = ../libreadline.a
-HISTORY_LIB = ../libhistory.a
-
-TERMCAP_LIB = @TERMCAP_LIB@
-
-.c.o:
- ${RM} $@
- $(CC) $(CCFLAGS) -c $<
-
-EXECUTABLES = fileman rltest rl rlcat rlversion histexamp
-OBJECTS = fileman.o rltest.o rl.o rlversion.o histexamp.o
-
-all: $(EXECUTABLES)
-everything: all rlfe
-
-rl: rl.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ rl.o -lreadline $(TERMCAP_LIB)
-
-rlcat: rlcat.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ rlcat.o -lreadline $(TERMCAP_LIB)
-
-fileman: fileman.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ fileman.o -lreadline $(TERMCAP_LIB)
-
-rltest: rltest.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ rltest.o -lreadline $(TERMCAP_LIB)
-
-rlversion: rlversion.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ rlversion.o -lreadline $(TERMCAP_LIB)
-
-histexamp: histexamp.o $(HISTORY_LIB)
- $(CC) $(LDFLAGS) -o $@ histexamp.o -lhistory $(TERMCAP_LIB)
-
-clean mostlyclean:
- $(RM) $(OBJECTS)
- $(RM) $(EXECUTABLES) *.exe
- $(RM) rlfe.o rlfe
-
-distclean maintainer-clean: clean
- $(RM) Makefile
-
-fileman.o: fileman.c
-rltest.o: rltest.c
-rl.o: rl.c
-rlversion.o: rlversion.c
-histexamp.o: histexamp.c
-
-fileman.o: $(top_srcdir)/readline.h
-rltest.o: $(top_srcdir)/readline.h
-rl.o: $(top_srcdir)/readline.h
-rlversion.o: $(top_srcdir)/readline.h
-histexamp.o: $(top_srcdir)/history.h
-
-# Stuff for Per Bothner's `rlfe' program
-
-rlfe: rlfe.o $(READLINE_LIB) $(HISTORY_LIB)
- $(CC) $(LDFLAGS) -o $@ rlfe.o -lreadline -lhistory ${TERMCAP_LIB}
-
-rlfe.o: rlfe.c
-
-rlfe.o: $(top_srcdir)/readline.h
-rlfe.o: $(top_srcdir)/history.h
diff --git a/readline-4.3.orig/examples/excallback.c b/readline-4.3.orig/examples/excallback.c
deleted file mode 100644
index 3d4bb18..0000000
--- a/readline-4.3.orig/examples/excallback.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-From: Jeff Solomon <jsolomon@stanford.edu>
-Date: Fri, 9 Apr 1999 10:13:27 -0700 (PDT)
-To: chet@po.cwru.edu
-Subject: new readline example
-Message-ID: <14094.12094.527305.199695@mrclean.Stanford.EDU>
-
-Chet,
-
-I've been using readline 4.0. Specifically, I've been using the perl
-version Term::ReadLine::Gnu. It works great.
-
-Anyway, I've been playing around the alternate interface and I wanted
-to contribute a little C program, callback.c, to you that you could
-use as an example of the alternate interface in the /examples
-directory of the readline distribution.
-
-My example shows how, using the alternate interface, you can
-interactively change the prompt (which is very nice imo). Also, I
-point out that you must roll your own terminal setting when using the
-alternate interface because readline depreps (using your parlance) the
-terminal while in the user callback. I try to demostrate what I mean
-with an example. I've included the program below.
-
-To compile, I just put the program in the examples directory and made
-the appropriate changes to the EXECUTABLES and OBJECTS line and added
-an additional target 'callback'.
-
-I compiled on my Sun Solaris2.6 box using Sun's cc.
-
-Let me know what you think.
-
-Jeff
-*/
-
-#if defined (HAVE_CONFIG_H)
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <termios.h> /* xxx - should make this more general */
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-#else
-# include <readline/readline.h>
-#endif
-
-/* This little examples demonstrates the alternate interface to using readline.
- * In the alternate interface, the user maintains control over program flow and
- * only calls readline when STDIN is readable. Using the alternate interface,
- * you can do anything else while still using readline (like talking to a
- * network or another program) without blocking.
- *
- * Specifically, this program highlights two importants features of the
- * alternate interface. The first is the ability to interactively change the
- * prompt, which can't be done using the regular interface since rl_prompt is
- * read-only.
- *
- * The second feature really highlights a subtle point when using the alternate
- * interface. That is, readline will not alter the terminal when inside your
- * callback handler. So let's so, your callback executes a user command that
- * takes a non-trivial amount of time to complete (seconds). While your
- * executing the command, the user continues to type keystrokes and expects them
- * to be re-echoed on the new prompt when it returns. Unfortunately, the default
- * terminal configuration doesn't do this. After the prompt returns, the user
- * must hit one additional keystroke and then will see all of his previous
- * keystrokes. To illustrate this, compile and run this program. Type "sleep" at
- * the prompt and then type "bar" before the prompt returns (you have 3
- * seconds). Notice how "bar" is re-echoed on the prompt after the prompt
- * returns? This is what you expect to happen. Now comment out the 4 lines below
- * the line that says COMMENT LINE BELOW. Recompile and rerun the program and do
- * the same thing. When the prompt returns, you should not see "bar". Now type
- * "f", see how "barf" magically appears? This behavior is un-expected and not
- * desired.
- */
-
-void process_line(char *line);
-int change_prompt(void);
-char *get_prompt(void);
-
-int prompt = 1;
-char prompt_buf[40], line_buf[256];
-tcflag_t old_lflag;
-cc_t old_vtime;
-struct termios term;
-
-int
-main()
-{
- fd_set fds;
-
- /* Adjust the terminal slightly before the handler is installed. Disable
- * canonical mode processing and set the input character time flag to be
- * non-blocking.
- */
- if( tcgetattr(STDIN_FILENO, &term) < 0 ) {
- perror("tcgetattr");
- exit(1);
- }
- old_lflag = term.c_lflag;
- old_vtime = term.c_cc[VTIME];
- term.c_lflag &= ~ICANON;
- term.c_cc[VTIME] = 1;
- /* COMMENT LINE BELOW - see above */
- if( tcsetattr(STDIN_FILENO, TCSANOW, &term) < 0 ) {
- perror("tcsetattr");
- exit(1);
- }
-
- rl_add_defun("change-prompt", change_prompt, CTRL('t'));
- rl_callback_handler_install(get_prompt(), process_line);
-
- while(1) {
- FD_ZERO(&fds);
- FD_SET(fileno(stdin), &fds);
-
- if( select(FD_SETSIZE, &fds, NULL, NULL, NULL) < 0) {
- perror("select");
- exit(1);
- }
-
- if( FD_ISSET(fileno(stdin), &fds) ) {
- rl_callback_read_char();
- }
- }
-}
-
-void
-process_line(char *line)
-{
- if( line == NULL ) {
- fprintf(stderr, "\n", line);
-
- /* reset the old terminal setting before exiting */
- term.c_lflag = old_lflag;
- term.c_cc[VTIME] = old_vtime;
- if( tcsetattr(STDIN_FILENO, TCSANOW, &term) < 0 ) {
- perror("tcsetattr");
- exit(1);
- }
- exit(0);
- }
-
- if( strcmp(line, "sleep") == 0 ) {
- sleep(3);
- } else {
- fprintf(stderr, "|%s|\n", line);
- }
-
- free (line);
-}
-
-int
-change_prompt(void)
-{
- /* toggle the prompt variable */
- prompt = !prompt;
-
- /* save away the current contents of the line */
- strcpy(line_buf, rl_line_buffer);
-
- /* install a new handler which will change the prompt and erase the current line */
- rl_callback_handler_install(get_prompt(), process_line);
-
- /* insert the old text on the new line */
- rl_insert_text(line_buf);
-
- /* redraw the current line - this is an undocumented function. It invokes the
- * redraw-current-line command.
- */
- rl_refresh_line(0, 0);
-}
-
-char *
-get_prompt(void)
-{
- /* The prompts can even be different lengths! */
- sprintf(prompt_buf, "%s",
- prompt ? "Hit ctrl-t to toggle prompt> " : "Pretty cool huh?> ");
- return prompt_buf;
-}
diff --git a/readline-4.3.orig/examples/fileman.c b/readline-4.3.orig/examples/fileman.c
deleted file mode 100644
index 340eee7..0000000
--- a/readline-4.3.orig/examples/fileman.c
+++ /dev/null
@@ -1,485 +0,0 @@
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* fileman.c -- A tiny application which demonstrates how to use the
- GNU Readline library. This application interactively allows users
- to manipulate files and their modes. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_FILE_H
-# include <sys/file.h>
-#endif
-#include <sys/stat.h>
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <errno.h>
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-extern char *xmalloc ();
-
-/* The names of functions that actually do the manipulation. */
-int com_list PARAMS((char *));
-int com_view PARAMS((char *));
-int com_rename PARAMS((char *));
-int com_stat PARAMS((char *));
-int com_pwd PARAMS((char *));
-int com_delete PARAMS((char *));
-int com_help PARAMS((char *));
-int com_cd PARAMS((char *));
-int com_quit PARAMS((char *));
-
-/* A structure which contains information on the commands this program
- can understand. */
-
-typedef struct {
- char *name; /* User printable name of the function. */
- rl_icpfunc_t *func; /* Function to call to do the job. */
- char *doc; /* Documentation for this function. */
-} COMMAND;
-
-COMMAND commands[] = {
- { "cd", com_cd, "Change to directory DIR" },
- { "delete", com_delete, "Delete FILE" },
- { "help", com_help, "Display this text" },
- { "?", com_help, "Synonym for `help'" },
- { "list", com_list, "List files in DIR" },
- { "ls", com_list, "Synonym for `list'" },
- { "pwd", com_pwd, "Print the current working directory" },
- { "quit", com_quit, "Quit using Fileman" },
- { "rename", com_rename, "Rename FILE to NEWNAME" },
- { "stat", com_stat, "Print out statistics on FILE" },
- { "view", com_view, "View the contents of FILE" },
- { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
-};
-
-/* Forward declarations. */
-char *stripwhite ();
-COMMAND *find_command ();
-
-/* The name of this program, as taken from argv[0]. */
-char *progname;
-
-/* When non-zero, this global means the user is done using this program. */
-int done;
-
-char *
-dupstr (s)
- char *s;
-{
- char *r;
-
- r = xmalloc (strlen (s) + 1);
- strcpy (r, s);
- return (r);
-}
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *line, *s;
-
- progname = argv[0];
-
- initialize_readline (); /* Bind our completer. */
-
- /* Loop reading and executing lines until the user quits. */
- for ( ; done == 0; )
- {
- line = readline ("FileMan: ");
-
- if (!line)
- break;
-
- /* Remove leading and trailing whitespace from the line.
- Then, if there is anything left, add it to the history list
- and execute it. */
- s = stripwhite (line);
-
- if (*s)
- {
- add_history (s);
- execute_line (s);
- }
-
- free (line);
- }
- exit (0);
-}
-
-/* Execute a command line. */
-int
-execute_line (line)
- char *line;
-{
- register int i;
- COMMAND *command;
- char *word;
-
- /* Isolate the command word. */
- i = 0;
- while (line[i] && whitespace (line[i]))
- i++;
- word = line + i;
-
- while (line[i] && !whitespace (line[i]))
- i++;
-
- if (line[i])
- line[i++] = '\0';
-
- command = find_command (word);
-
- if (!command)
- {
- fprintf (stderr, "%s: No such command for FileMan.\n", word);
- return (-1);
- }
-
- /* Get argument to command, if any. */
- while (whitespace (line[i]))
- i++;
-
- word = line + i;
-
- /* Call the function. */
- return ((*(command->func)) (word));
-}
-
-/* Look up NAME as the name of a command, and return a pointer to that
- command. Return a NULL pointer if NAME isn't a command name. */
-COMMAND *
-find_command (name)
- char *name;
-{
- register int i;
-
- for (i = 0; commands[i].name; i++)
- if (strcmp (name, commands[i].name) == 0)
- return (&commands[i]);
-
- return ((COMMAND *)NULL);
-}
-
-/* Strip whitespace from the start and end of STRING. Return a pointer
- into STRING. */
-char *
-stripwhite (string)
- char *string;
-{
- register char *s, *t;
-
- for (s = string; whitespace (*s); s++)
- ;
-
- if (*s == 0)
- return (s);
-
- t = s + strlen (s) - 1;
- while (t > s && whitespace (*t))
- t--;
- *++t = '\0';
-
- return s;
-}
-
-/* **************************************************************** */
-/* */
-/* Interface to Readline Completion */
-/* */
-/* **************************************************************** */
-
-char *command_generator PARAMS((const char *, int));
-char **fileman_completion PARAMS((const char *, int, int));
-
-/* Tell the GNU Readline library how to complete. We want to try to complete
- on command names if this is the first word in the line, or on filenames
- if not. */
-initialize_readline ()
-{
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "FileMan";
-
- /* Tell the completer that we want a crack first. */
- rl_attempted_completion_function = fileman_completion;
-}
-
-/* Attempt to complete on the contents of TEXT. START and END bound the
- region of rl_line_buffer that contains the word to complete. TEXT is
- the word to complete. We can use the entire contents of rl_line_buffer
- in case we want to do some simple parsing. Return the array of matches,
- or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
- const char *text;
- int start, end;
-{
- char **matches;
-
- matches = (char **)NULL;
-
- /* If this word is at the start of the line, then it is a command
- to complete. Otherwise it is the name of a file in the current
- directory. */
- if (start == 0)
- matches = rl_completion_matches (text, command_generator);
-
- return (matches);
-}
-
-/* Generator function for command completion. STATE lets us know whether
- to start from scratch; without any state (i.e. STATE == 0), then we
- start at the top of the list. */
-char *
-command_generator (text, state)
- const char *text;
- int state;
-{
- static int list_index, len;
- char *name;
-
- /* If this is a new word to complete, initialize now. This includes
- saving the length of TEXT for efficiency, and initializing the index
- variable to 0. */
- if (!state)
- {
- list_index = 0;
- len = strlen (text);
- }
-
- /* Return the next name which partially matches from the command list. */
- while (name = commands[list_index].name)
- {
- list_index++;
-
- if (strncmp (name, text, len) == 0)
- return (dupstr(name));
- }
-
- /* If no names matched, then return NULL. */
- return ((char *)NULL);
-}
-
-/* **************************************************************** */
-/* */
-/* FileMan Commands */
-/* */
-/* **************************************************************** */
-
-/* String to pass to system (). This is for the LIST, VIEW and RENAME
- commands. */
-static char syscom[1024];
-
-/* List the file(s) named in arg. */
-com_list (arg)
- char *arg;
-{
- if (!arg)
- arg = "";
-
- sprintf (syscom, "ls -FClg %s", arg);
- return (system (syscom));
-}
-
-com_view (arg)
- char *arg;
-{
- if (!valid_argument ("view", arg))
- return 1;
-
-#if defined (__MSDOS__)
- /* more.com doesn't grok slashes in pathnames */
- sprintf (syscom, "less %s", arg);
-#else
- sprintf (syscom, "more %s", arg);
-#endif
- return (system (syscom));
-}
-
-com_rename (arg)
- char *arg;
-{
- too_dangerous ("rename");
- return (1);
-}
-
-com_stat (arg)
- char *arg;
-{
- struct stat finfo;
-
- if (!valid_argument ("stat", arg))
- return (1);
-
- if (stat (arg, &finfo) == -1)
- {
- perror (arg);
- return (1);
- }
-
- printf ("Statistics for `%s':\n", arg);
-
- printf ("%s has %d link%s, and is %d byte%s in length.\n",
- arg,
- finfo.st_nlink,
- (finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
- (finfo.st_size == 1) ? "" : "s");
- printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
- printf (" Last access at: %s", ctime (&finfo.st_atime));
- printf (" Last modified at: %s", ctime (&finfo.st_mtime));
- return (0);
-}
-
-com_delete (arg)
- char *arg;
-{
- too_dangerous ("delete");
- return (1);
-}
-
-/* Print out help for ARG, or for all of the commands if ARG is
- not present. */
-com_help (arg)
- char *arg;
-{
- register int i;
- int printed = 0;
-
- for (i = 0; commands[i].name; i++)
- {
- if (!*arg || (strcmp (arg, commands[i].name) == 0))
- {
- printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
- printed++;
- }
- }
-
- if (!printed)
- {
- printf ("No commands match `%s'. Possibilties are:\n", arg);
-
- for (i = 0; commands[i].name; i++)
- {
- /* Print in six columns. */
- if (printed == 6)
- {
- printed = 0;
- printf ("\n");
- }
-
- printf ("%s\t", commands[i].name);
- printed++;
- }
-
- if (printed)
- printf ("\n");
- }
- return (0);
-}
-
-/* Change to the directory ARG. */
-com_cd (arg)
- char *arg;
-{
- if (chdir (arg) == -1)
- {
- perror (arg);
- return 1;
- }
-
- com_pwd ("");
- return (0);
-}
-
-/* Print out the current working directory. */
-com_pwd (ignore)
- char *ignore;
-{
- char dir[1024], *s;
-
- s = getcwd (dir, sizeof(dir) - 1);
- if (s == 0)
- {
- printf ("Error getting pwd: %s\n", dir);
- return 1;
- }
-
- printf ("Current directory is %s\n", dir);
- return 0;
-}
-
-/* The user wishes to quit using this program. Just set DONE non-zero. */
-com_quit (arg)
- char *arg;
-{
- done = 1;
- return (0);
-}
-
-/* Function which tells you that you can't do this. */
-too_dangerous (caller)
- char *caller;
-{
- fprintf (stderr,
- "%s: Too dangerous for me to distribute. Write it yourself.\n",
- caller);
-}
-
-/* Return non-zero if ARG is a valid argument for CALLER, else print
- an error message and return zero. */
-int
-valid_argument (caller, arg)
- char *caller, *arg;
-{
- if (!arg || !*arg)
- {
- fprintf (stderr, "%s: Argument required.\n", caller);
- return (0);
- }
-
- return (1);
-}
diff --git a/readline-4.3.orig/examples/histexamp.c b/readline-4.3.orig/examples/histexamp.c
deleted file mode 100644
index 45651df..0000000
--- a/readline-4.3.orig/examples/histexamp.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#include <stdio.h>
-
-#ifdef READLINE_LIBRARY
-# include "history.h"
-#else
-# include <readline/history.h>
-#endif
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char line[1024], *t;
- int len, done = 0;
-
- line[0] = 0;
-
- using_history ();
- while (!done)
- {
- printf ("history$ ");
- fflush (stdout);
- t = fgets (line, sizeof (line) - 1, stdin);
- if (t && *t)
- {
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- }
-
- if (!t)
- strcpy (line, "quit");
-
- if (line[0])
- {
- char *expansion;
- int result;
-
- using_history ();
-
- result = history_expand (line, &expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
-
- if (result < 0 || result == 2)
- {
- free (expansion);
- continue;
- }
-
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- }
-
- if (strcmp (line, "quit") == 0)
- done = 1;
- else if (strcmp (line, "save") == 0)
- write_history ("history_file");
- else if (strcmp (line, "read") == 0)
- read_history ("history_file");
- else if (strcmp (line, "list") == 0)
- {
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]->line);
- }
- else if (strncmp (line, "delete", 6) == 0)
- {
- int which;
- if ((sscanf (line + 6, "%d", &which)) == 1)
- {
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- {
- free (entry->line);
- free (entry);
- }
- }
- else
- {
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- }
- }
- }
-}
diff --git a/readline-4.3.orig/examples/manexamp.c b/readline-4.3.orig/examples/manexamp.c
deleted file mode 100644
index 9c6cf2c..0000000
--- a/readline-4.3.orig/examples/manexamp.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* manexamp.c -- The examples which appear in the documentation are here. */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#include <stdio.h>
-#include <readline/readline.h>
-
-/* **************************************************************** */
-/* */
-/* How to Emulate gets () */
-/* */
-/* **************************************************************** */
-
-/* A static variable for holding the line. */
-static char *line_read = (char *)NULL;
-
-/* Read a string, and return a pointer to it. Returns NULL on EOF. */
-char *
-rl_gets ()
-{
- /* If the buffer has already been allocated, return the memory
- to the free pool. */
- if (line_read)
- {
- free (line_read);
- line_read = (char *)NULL;
- }
-
- /* Get a line from the user. */
- line_read = readline ("");
-
- /* If the line has any text in it, save it on the history. */
- if (line_read && *line_read)
- add_history (line_read);
-
- return (line_read);
-}
-
-/* **************************************************************** */
-/* */
-/* Writing a Function to be Called by Readline. */
-/* */
-/* **************************************************************** */
-
-/* Invert the case of the COUNT following characters. */
-invert_case_line (count, key)
- int count, key;
-{
- register int start, end;
-
- start = rl_point;
-
- if (count < 0)
- {
- direction = -1;
- count = -count;
- }
- else
- direction = 1;
-
- /* Find the end of the range to modify. */
- end = start + (count * direction);
-
- /* Force it to be within range. */
- if (end > rl_end)
- end = rl_end;
- else if (end < 0)
- end = -1;
-
- if (start > end)
- {
- int temp = start;
- start = end;
- end = temp;
- }
-
- if (start == end)
- return;
-
- /* Tell readline that we are modifying the line, so save the undo
- information. */
- rl_modifying (start, end);
-
- for (; start != end; start += direction)
- {
- if (_rl_uppercase_p (rl_line_buffer[start]))
- rl_line_buffer[start] = _rl_to_lower (rl_line_buffer[start]);
- else if (_rl_lowercase_p (rl_line_buffer[start]))
- rl_line_buffer[start] = _rl_to_upper (rl_line_buffer[start]);
- }
-
- /* Move point to on top of the last character changed. */
- rl_point = end - direction;
-}
diff --git a/readline-4.3.orig/examples/readlinebuf.h b/readline-4.3.orig/examples/readlinebuf.h
deleted file mode 100644
index 91ef4d6..0000000
--- a/readline-4.3.orig/examples/readlinebuf.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * $Revision$
- * $Date$
- * $Author$
- *
- * Contents: A streambuf which uses the GNU readline library for line I/O
- * (c) 2001 by Dimitris Vyzovitis [vyzo@media.mit.edu]
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the Free
- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ******************************************************************************/
-
-#ifndef _READLINEBUF_H_
-#define _READLINEBUF_H_
-
-#include <iostream>
-#include <cstring>
-#include <cassert>
-#include <cstdlib>
-#include <cstdio>
-
-#include <readline/readline.h>
-#include <readline/history.h>
-
-#if (defined __GNUC__) && (__GNUC__ < 3)
-#include <streambuf.h>
-#else
-#include <streambuf>
-using std::streamsize;
-using std::streambuf;
-#endif
-
-class readlinebuf : public streambuf {
-public:
-#if (defined __GNUC__) && (__GNUC__ < 3)
- typedef char char_type;
- typedef int int_type;
- typedef streampos pos_type;
- typedef streamoff off_type;
-#endif
- static const int_type eof = EOF; // this is -1
- static const int_type not_eof = 0;
-
-private:
- const char* prompt_;
- bool history_;
- char* line_;
- int low_;
- int high_;
-
-protected:
-
- virtual int_type showmanyc() const { return high_ - low_; }
-
- virtual streamsize xsgetn( char_type* buf, streamsize n ) {
- int rd = n > (high_ - low_)? (high_ - low_) : n;
- memcpy( buf, line_, rd );
- low_ += rd;
-
- if ( rd < n ) {
- low_ = high_ = 0;
- free( line_ ); // free( NULL ) is a noop
- line_ = readline( prompt_ );
- if ( line_ ) {
- high_ = strlen( line_ );
- if ( history_ && high_ ) add_history( line_ );
- rd += xsgetn( buf + rd, n - rd );
- }
- }
-
- return rd;
- }
-
- virtual int_type underflow() {
- if ( high_ == low_ ) {
- low_ = high_ = 0;
- free( line_ ); // free( NULL ) is a noop
- line_ = readline( prompt_ );
- if ( line_ ) {
- high_ = strlen( line_ );
- if ( history_ && high_ ) add_history( line_ );
- }
- }
-
- if ( low_ < high_ ) return line_[low_];
- else return eof;
- }
-
- virtual int_type uflow() {
- int_type c = underflow();
- if ( c != eof ) ++low_;
- return c;
- }
-
- virtual int_type pbackfail( int_type c = eof ) {
- if ( low_ > 0 ) --low_;
- else if ( c != eof ) {
- if ( high_ > 0 ) {
- char* nl = (char*)realloc( line_, high_ + 1 );
- if ( nl ) {
- line_ = (char*)memcpy( nl + 1, line_, high_ );
- high_ += 1;
- line_[0] = char( c );
- } else return eof;
- } else {
- assert( !line_ );
- line_ = (char*)malloc( sizeof( char ) );
- *line_ = char( c );
- high_ = 1;
- }
- } else return eof;
-
- return not_eof;
- }
-
-public:
- readlinebuf( const char* prompt = NULL, bool history = true )
- : prompt_( prompt ), history_( history ),
- line_( NULL ), low_( 0 ), high_( 0 ) {
- setbuf( 0, 0 );
- }
-
-
-};
-
-#endif
diff --git a/readline-4.3.orig/examples/rl.c b/readline-4.3.orig/examples/rl.c
deleted file mode 100644
index d260489..0000000
--- a/readline-4.3.orig/examples/rl.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * rl - command-line interface to read a line from the standard input
- * (or another fd) using readline.
- *
- * usage: rl [-p prompt] [-u unit] [-d default] [-n nchars]
- */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-#include "posixstat.h"
-
-#if defined (READLINE_LIBRARY)
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-extern int optind;
-extern char *optarg;
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strrchr();
-#endif
-
-static char *progname;
-static char *deftext;
-
-static int
-set_deftext ()
-{
- if (deftext)
- {
- rl_insert_text (deftext);
- deftext = (char *)NULL;
- rl_startup_hook = (rl_hook_func_t *)NULL;
- }
- return 0;
-}
-
-static void
-usage()
-{
- fprintf (stderr, "%s: usage: %s [-p prompt] [-u unit] [-d default] [-n nchars]\n",
- progname, progname);
-}
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *temp, *prompt;
- struct stat sb;
- int opt, fd, nch;
- FILE *ifp;
-
- progname = strrchr(argv[0], '/');
- if (progname == 0)
- progname = argv[0];
- else
- progname++;
-
- /* defaults */
- prompt = "readline$ ";
- fd = nch = 0;
- deftext = (char *)0;
-
- while ((opt = getopt(argc, argv, "p:u:d:n:")) != EOF)
- {
- switch (opt)
- {
- case 'p':
- prompt = optarg;
- break;
- case 'u':
- fd = atoi(optarg);
- if (fd < 0)
- {
- fprintf (stderr, "%s: bad file descriptor `%s'\n", progname, optarg);
- exit (2);
- }
- break;
- case 'd':
- deftext = optarg;
- break;
- case 'n':
- nch = atoi(optarg);
- if (nch < 0)
- {
- fprintf (stderr, "%s: bad value for -n: `%s'\n", progname, optarg);
- exit (2);
- }
- break;
- default:
- usage ();
- exit (2);
- }
- }
-
- if (fd != 0)
- {
- if (fstat (fd, &sb) < 0)
- {
- fprintf (stderr, "%s: %d: bad file descriptor\n", progname, fd);
- exit (1);
- }
- ifp = fdopen (fd, "r");
- rl_instream = ifp;
- }
-
- if (deftext && *deftext)
- rl_startup_hook = set_deftext;
-
- if (nch > 0)
- rl_num_chars_to_read = nch;
-
- temp = readline (prompt);
-
- /* Test for EOF. */
- if (temp == 0)
- exit (1);
-
- printf ("%s\n", temp);
- exit (0);
-}
diff --git a/readline-4.3.orig/examples/rlcat.c b/readline-4.3.orig/examples/rlcat.c
deleted file mode 100644
index 176b9f4..0000000
--- a/readline-4.3.orig/examples/rlcat.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * rlcat - cat(1) using readline
- *
- * usage: rlcat
- */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <sys/types.h>
-#include "posixstat.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <errno.h>
-
-#ifndef errno
-extern int errno;
-#endif
-
-#if defined (READLINE_LIBRARY)
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-extern int optind;
-extern char *optarg;
-
-static int stdcat();
-
-static char *progname;
-static int vflag;
-
-static void
-usage()
-{
- fprintf (stderr, "%s: usage: %s [-vEVN] [filename]\n", progname, progname);
-}
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *temp;
- int opt, Vflag, Nflag;
-
- progname = strrchr(argv[0], '/');
- if (progname == 0)
- progname = argv[0];
- else
- progname++;
-
- vflag = Vflag = Nflag = 0;
- while ((opt = getopt(argc, argv, "vEVN")) != EOF)
- {
- switch (opt)
- {
- case 'v':
- vflag = 1;
- break;
- case 'V':
- Vflag = 1;
- break;
- case 'E':
- Vflag = 0;
- break;
- case 'N':
- Nflag = 1;
- break;
- default:
- usage ();
- exit (2);
- }
- }
-
- argc -= optind;
- argv += optind;
-
- if (isatty(0) == 0 || argc || Nflag)
- return stdcat(argc, argv);
-
- rl_variable_bind ("editing-mode", Vflag ? "vi" : "emacs");
- while (temp = readline (""))
- {
- if (*temp)
- add_history (temp);
- printf ("%s\n", temp);
- }
-
- return (ferror (stdout));
-}
-
-static int
-fcopy(fp)
- FILE *fp;
-{
- int c;
- char *x;
-
- while ((c = getc(fp)) != EOF)
- {
- if (vflag && isascii ((unsigned char)c) && isprint((unsigned char)c) == 0)
- {
- x = rl_untranslate_keyseq (c);
- if (fputs (x, stdout) != 0)
- return 1;
- }
- else if (putchar (c) == EOF)
- return 1;
- }
- return (ferror (stdout));
-}
-
-int
-stdcat (argc, argv)
- int argc;
- char **argv;
-{
- int i, fd, r;
- char *s;
- FILE *fp;
-
- if (argc == 0)
- return (fcopy(stdin));
-
- for (i = 0, r = 1; i < argc; i++)
- {
- if (*argv[i] == '-' && argv[i][1] == 0)
- fp = stdin;
- else
- {
- fp = fopen (argv[i], "r");
- if (fp == 0)
- {
- fprintf (stderr, "%s: %s: cannot open: %s\n", progname, argv[i], strerror(errno));
- continue;
- }
- }
- r = fcopy (fp);
- if (fp != stdin)
- fclose(fp);
- }
- return r;
-}
diff --git a/readline-4.3.orig/examples/rlfe.c b/readline-4.3.orig/examples/rlfe.c
deleted file mode 100644
index d634d7c..0000000
--- a/readline-4.3.orig/examples/rlfe.c
+++ /dev/null
@@ -1,1042 +0,0 @@
-/* A front-end using readline to "cook" input lines for Kawa.
- *
- * Copyright (C) 1999 Per Bothner
- *
- * This front-end program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * Some code from Johnson & Troan: "Linux Application Development"
- * (Addison-Wesley, 1998) was used directly or for inspiration.
- */
-
-/* PROBLEMS/TODO:
- *
- * Only tested under Linux; needs to be ported.
- *
- * When running mc -c under the Linux console, mc does not recognize
- * mouse clicks, which mc does when not running under fep.
- *
- * Pasting selected text containing tabs is like hitting the tab character,
- * which invokes readline completion. We don't want this. I don't know
- * if this is fixable without integrating fep into a terminal emulator.
- *
- * Echo suppression is a kludge, but can only be avoided with better kernel
- * support: We need a tty mode to disable "real" echoing, while still
- * letting the inferior think its tty driver to doing echoing.
- * Stevens's book claims SCR$ and BSD4.3+ have TIOCREMOTE.
- *
- * The latest readline may have some hooks we can use to avoid having
- * to back up the prompt.
- *
- * Desirable readline feature: When in cooked no-echo mode (e.g. password),
- * echo characters are they are types with '*', but remove them when done.
- *
- * A synchronous output while we're editing an input line should be
- * inserted in the output view *before* the input line, so that the
- * lines being edited (with the prompt) float at the end of the input.
- *
- * A "page mode" option to emulate more/less behavior: At each page of
- * output, pause for a user command. This required parsing the output
- * to keep track of line lengths. It also requires remembering the
- * output, if we want an option to scroll back, which suggests that
- * this should be integrated with a terminal emulator like xterm.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <signal.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <grp.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <termios.h>
-#include <limits.h>
-#include <dirent.h>
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-#ifndef COMMAND
-#define COMMAND "/bin/sh"
-#endif
-#ifndef COMMAND_ARGS
-#define COMMAND_ARGS COMMAND
-#endif
-
-#ifndef HAVE_MEMMOVE
-#ifndef memmove
-# if __GNUC__ > 1
-# define memmove(d, s, n) __builtin_memcpy(d, s, n)
-# else
-# define memmove(d, s, n) memcpy(d, s, n)
-# endif
-#else
-# define memmove(d, s, n) memcpy(d, s, n)
-#endif
-#endif
-
-#define APPLICATION_NAME "Rlfe"
-
-#ifndef errno
-extern int errno;
-#endif
-
-extern int optind;
-extern char *optarg;
-
-static char *progname;
-static char *progversion;
-
-static int in_from_inferior_fd;
-static int out_to_inferior_fd;
-
-/* Unfortunately, we cannot safely display echo from the inferior process.
- The reason is that the echo bit in the pty is "owned" by the inferior,
- and if we try to turn it off, we could confuse the inferior.
- Thus, when echoing, we get echo twice: First readline echoes while
- we're actually editing. Then we send the line to the inferior, and the
- terminal driver send back an extra echo.
- The work-around is to remember the input lines, and when we see that
- line come back, we supress the output.
- A better solution (supposedly available on SVR4) would be a smarter
- terminal driver, with more flags ... */
-#define ECHO_SUPPRESS_MAX 1024
-char echo_suppress_buffer[ECHO_SUPPRESS_MAX];
-int echo_suppress_start = 0;
-int echo_suppress_limit = 0;
-
-/* #define DEBUG */
-
-static FILE *logfile = NULL;
-
-#ifdef DEBUG
-FILE *debugfile = NULL;
-#define DPRINT0(FMT) (fprintf(debugfile, FMT), fflush(debugfile))
-#define DPRINT1(FMT, V1) (fprintf(debugfile, FMT, V1), fflush(debugfile))
-#define DPRINT2(FMT, V1, V2) (fprintf(debugfile, FMT, V1, V2), fflush(debugfile))
-#else
-#define DPRINT0(FMT) /* Do nothing */
-#define DPRINT1(FMT, V1) /* Do nothing */
-#define DPRINT2(FMT, V1, V2) /* Do nothing */
-#endif
-
-struct termios orig_term;
-
-static int rlfe_directory_completion_hook __P((char **));
-static int rlfe_directory_rewrite_hook __P((char **));
-static char *rlfe_filename_completion_function __P((const char *, int));
-
-/* Pid of child process. */
-static pid_t child = -1;
-
-static void
-sig_child (int signo)
-{
- int status;
- wait (&status);
- DPRINT0 ("(Child process died.)\n");
- tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
- exit (0);
-}
-
-volatile int propagate_sigwinch = 0;
-
-/* sigwinch_handler
- * propagate window size changes from input file descriptor to
- * master side of pty.
- */
-void sigwinch_handler(int signal) {
- propagate_sigwinch = 1;
-}
-
-/* get_master_pty() takes a double-indirect character pointer in which
- * to put a slave name, and returns an integer file descriptor.
- * If it returns < 0, an error has occurred.
- * Otherwise, it has returned the master pty file descriptor, and fills
- * in *name with the name of the corresponding slave pty.
- * Once the slave pty has been opened, you are responsible to free *name.
- */
-
-int get_master_pty(char **name) {
- int i, j;
- /* default to returning error */
- int master = -1;
-
- /* create a dummy name to fill in */
- *name = strdup("/dev/ptyXX");
-
- /* search for an unused pty */
- for (i=0; i<16 && master <= 0; i++) {
- for (j=0; j<16 && master <= 0; j++) {
- (*name)[5] = 'p';
- (*name)[8] = "pqrstuvwxyzPQRST"[i];
- (*name)[9] = "0123456789abcdef"[j];
- /* open the master pty */
- if ((master = open(*name, O_RDWR)) < 0) {
- if (errno == ENOENT) {
- /* we are out of pty devices */
- free (*name);
- return (master);
- }
- }
- else {
- /* By substituting a letter, we change the master pty
- * name into the slave pty name.
- */
- (*name)[5] = 't';
- if (access(*name, R_OK|W_OK) != 0)
- {
- close(master);
- master = -1;
- }
- }
- }
- }
- if ((master < 0) && (i == 16) && (j == 16)) {
- /* must have tried every pty unsuccessfully */
- free (*name);
- return (master);
- }
-
- (*name)[5] = 't';
-
- return (master);
-}
-
-/* get_slave_pty() returns an integer file descriptor.
- * If it returns < 0, an error has occurred.
- * Otherwise, it has returned the slave file descriptor.
- */
-
-int get_slave_pty(char *name) {
- struct group *gptr;
- gid_t gid;
- int slave = -1;
-
- /* chown/chmod the corresponding pty, if possible.
- * This will only work if the process has root permissions.
- * Alternatively, write and exec a small setuid program that
- * does just this.
- */
- if ((gptr = getgrnam("tty")) != 0) {
- gid = gptr->gr_gid;
- } else {
- /* if the tty group does not exist, don't change the
- * group on the slave pty, only the owner
- */
- gid = -1;
- }
-
- /* Note that we do not check for errors here. If this is code
- * where these actions are critical, check for errors!
- */
- chown(name, getuid(), gid);
- /* This code only makes the slave read/writeable for the user.
- * If this is for an interactive shell that will want to
- * receive "write" and "wall" messages, OR S_IWGRP into the
- * second argument below.
- */
- chmod(name, S_IRUSR|S_IWUSR);
-
- /* open the corresponding slave pty */
- slave = open(name, O_RDWR);
- return (slave);
-}
-
-/* Certain special characters, such as ctrl/C, we want to pass directly
- to the inferior, rather than letting readline handle them. */
-
-static char special_chars[20];
-static int special_chars_count;
-
-static void
-add_special_char(int ch)
-{
- if (ch != 0)
- special_chars[special_chars_count++] = ch;
-}
-
-static int eof_char;
-
-static int
-is_special_char(int ch)
-{
- int i;
-#if 0
- if (ch == eof_char && rl_point == rl_end)
- return 1;
-#endif
- for (i = special_chars_count; --i >= 0; )
- if (special_chars[i] == ch)
- return 1;
- return 0;
-}
-
-static char buf[1024];
-/* buf[0 .. buf_count-1] is the what has been emitted on the current line.
- It is used as the readline prompt. */
-static int buf_count = 0;
-
-int num_keys = 0;
-
-static void
-null_prep_terminal (int meta)
-{
-}
-
-static void
-null_deprep_terminal ()
-{
-}
-
-char pending_special_char;
-
-static void
-line_handler (char *line)
-{
- if (line == NULL)
- {
- char buf[1];
- DPRINT0("saw eof!\n");
- buf[0] = '\004'; /* ctrl/d */
- write (out_to_inferior_fd, buf, 1);
- }
- else
- {
- static char enter[] = "\r";
- /* Send line to inferior: */
- int length = strlen (line);
- if (length > ECHO_SUPPRESS_MAX-2)
- {
- echo_suppress_start = 0;
- echo_suppress_limit = 0;
- }
- else
- {
- if (echo_suppress_limit + length > ECHO_SUPPRESS_MAX - 2)
- {
- if (echo_suppress_limit - echo_suppress_start + length
- <= ECHO_SUPPRESS_MAX - 2)
- {
- memmove (echo_suppress_buffer,
- echo_suppress_buffer + echo_suppress_start,
- echo_suppress_limit - echo_suppress_start);
- echo_suppress_limit -= echo_suppress_start;
- echo_suppress_start = 0;
- }
- else
- {
- echo_suppress_limit = 0;
- }
- echo_suppress_start = 0;
- }
- memcpy (echo_suppress_buffer + echo_suppress_limit,
- line, length);
- echo_suppress_limit += length;
- echo_suppress_buffer[echo_suppress_limit++] = '\r';
- echo_suppress_buffer[echo_suppress_limit++] = '\n';
- }
- write (out_to_inferior_fd, line, length);
- if (pending_special_char == 0)
- {
- write (out_to_inferior_fd, enter, sizeof(enter)-1);
- if (*line)
- add_history (line);
- }
- free (line);
- }
- rl_callback_handler_remove ();
- buf_count = 0;
- num_keys = 0;
- if (pending_special_char != 0)
- {
- write (out_to_inferior_fd, &pending_special_char, 1);
- pending_special_char = 0;
- }
-}
-
-/* Value of rl_getc_function.
- Use this because readline should read from stdin, not rl_instream,
- points to the pty (so readline has monitor its terminal modes). */
-
-int
-my_rl_getc (FILE *dummy)
-{
- int ch = rl_getc (stdin);
- if (is_special_char (ch))
- {
- pending_special_char = ch;
- return '\r';
- }
- return ch;
-}
-
-static void
-usage()
-{
- fprintf (stderr, "%s: usage: %s [-l filename] [-a] [-n appname] [-hv] [command [arguments...]]\n",
- progname, progname);
-}
-
-int
-main(int argc, char** argv)
-{
- char *path;
- int i, append;
- int master;
- char *name, *logfname, *appname;
- int in_from_tty_fd;
- struct sigaction act;
- struct winsize ws;
- struct termios t;
- int maxfd;
- fd_set in_set;
- static char empty_string[1] = "";
- char *prompt = empty_string;
- int ioctl_err = 0;
-
- if ((progname = strrchr (argv[0], '/')) == 0)
- progname = argv[0];
- else
- progname++;
- progversion = RL_LIBRARY_VERSION;
-
- append = 0;
- appname = APPLICATION_NAME;
- logfname = (char *)NULL;
-
- while ((i = getopt (argc, argv, "ahl:n:v")) != EOF)
- {
- switch (i)
- {
- case 'l':
- logfname = optarg;
- break;
- case 'n':
- appname = optarg;
- break;
- case 'a':
- append = 1;
- break;
- case 'h':
- usage ();
- exit (0);
- case 'v':
- fprintf (stderr, "%s version %s\n", progname, progversion);
- exit (0);
- default:
- usage ();
- exit (2);
- }
- }
-
- argc -= optind;
- argv += optind;
-
- if (logfname)
- {
- logfile = fopen (logfname, append ? "a" : "w");
- if (logfile == 0)
- fprintf (stderr, "%s: warning: could not open log file %s: %s\n",
- progname, logfname, strerror (errno));
- }
-
- rl_readline_name = appname;
-
-#ifdef DEBUG
- debugfile = fopen("LOG", "w");
-#endif
-
- if ((master = get_master_pty(&name)) < 0)
- {
- perror("ptypair: could not open master pty");
- exit(1);
- }
-
- DPRINT1("pty name: '%s'\n", name);
-
- /* set up SIGWINCH handler */
- act.sa_handler = sigwinch_handler;
- sigemptyset(&(act.sa_mask));
- act.sa_flags = 0;
- if (sigaction(SIGWINCH, &act, NULL) < 0)
- {
- perror("ptypair: could not handle SIGWINCH ");
- exit(1);
- }
-
- if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) < 0)
- {
- perror("ptypair: could not get window size");
- exit(1);
- }
-
- if ((child = fork()) < 0)
- {
- perror("cannot fork");
- exit(1);
- }
-
- if (child == 0)
- {
- int slave; /* file descriptor for slave pty */
-
- /* We are in the child process */
- close(master);
-
-#ifdef TIOCSCTTY
- if ((slave = get_slave_pty(name)) < 0)
- {
- perror("ptypair: could not open slave pty");
- exit(1);
- }
- free(name);
-#endif
-
- /* We need to make this process a session group leader, because
- * it is on a new PTY, and things like job control simply will
- * not work correctly unless there is a session group leader
- * and process group leader (which a session group leader
- * automatically is). This also disassociates us from our old
- * controlling tty.
- */
- if (setsid() < 0)
- {
- perror("could not set session leader");
- }
-
- /* Tie us to our new controlling tty. */
-#ifdef TIOCSCTTY
- if (ioctl(slave, TIOCSCTTY, NULL))
- {
- perror("could not set new controlling tty");
- }
-#else
- if ((slave = get_slave_pty(name)) < 0)
- {
- perror("ptypair: could not open slave pty");
- exit(1);
- }
- free(name);
-#endif
-
- /* make slave pty be standard in, out, and error */
- dup2(slave, STDIN_FILENO);
- dup2(slave, STDOUT_FILENO);
- dup2(slave, STDERR_FILENO);
-
- /* at this point the slave pty should be standard input */
- if (slave > 2)
- {
- close(slave);
- }
-
- /* Try to restore window size; failure isn't critical */
- if (ioctl(STDOUT_FILENO, TIOCSWINSZ, &ws) < 0)
- {
- perror("could not restore window size");
- }
-
- /* now start the shell */
- {
- static char* command_args[] = { COMMAND_ARGS, NULL };
- if (argc < 1)
- execvp(COMMAND, command_args);
- else
- execvp(argv[0], &argv[0]);
- }
-
- /* should never be reached */
- exit(1);
- }
-
- /* parent */
- signal (SIGCHLD, sig_child);
- free(name);
-
- /* Note that we only set termios settings for standard input;
- * the master side of a pty is NOT a tty.
- */
- tcgetattr(STDIN_FILENO, &orig_term);
-
- t = orig_term;
- eof_char = t.c_cc[VEOF];
- /* add_special_char(t.c_cc[VEOF]);*/
- add_special_char(t.c_cc[VINTR]);
- add_special_char(t.c_cc[VQUIT]);
- add_special_char(t.c_cc[VSUSP]);
-#if defined (VDISCARD)
- add_special_char(t.c_cc[VDISCARD]);
-#endif
-
-#if 0
- t.c_lflag |= (ICANON | ISIG | ECHO | ECHOCTL | ECHOE | \
- ECHOK | ECHOKE | ECHONL | ECHOPRT );
-#else
- t.c_lflag &= ~(ICANON | ISIG | ECHO | ECHOCTL | ECHOE | \
- ECHOK | ECHOKE | ECHONL | ECHOPRT );
-#endif
- t.c_iflag |= IGNBRK;
- t.c_cc[VMIN] = 1;
- t.c_cc[VTIME] = 0;
- tcsetattr(STDIN_FILENO, TCSANOW, &t);
- in_from_inferior_fd = master;
- out_to_inferior_fd = master;
- rl_instream = fdopen (master, "r");
- rl_getc_function = my_rl_getc;
-
- rl_prep_term_function = null_prep_terminal;
- rl_deprep_term_function = null_deprep_terminal;
- rl_callback_handler_install (prompt, line_handler);
-
-#if 1
- rl_directory_completion_hook = rlfe_directory_completion_hook;
- rl_completion_entry_function = rlfe_filename_completion_function;
-#else
- rl_directory_rewrite_hook = rlfe_directory_rewrite_hook;
-#endif
-
- in_from_tty_fd = STDIN_FILENO;
- FD_ZERO (&in_set);
- maxfd = in_from_inferior_fd > in_from_tty_fd ? in_from_inferior_fd
- : in_from_tty_fd;
- for (;;)
- {
- int num;
- FD_SET (in_from_inferior_fd, &in_set);
- FD_SET (in_from_tty_fd, &in_set);
-
- num = select(maxfd+1, &in_set, NULL, NULL, NULL);
-
- if (propagate_sigwinch)
- {
- struct winsize ws;
- if (ioctl (STDIN_FILENO, TIOCGWINSZ, &ws) >= 0)
- {
- ioctl (master, TIOCSWINSZ, &ws);
- }
- propagate_sigwinch = 0;
- continue;
- }
-
- if (num <= 0)
- {
- perror ("select");
- exit (-1);
- }
- if (FD_ISSET (in_from_tty_fd, &in_set))
- {
- extern int readline_echoing_p;
- struct termios term_master;
- int do_canon = 1;
- int ioctl_ret;
-
- DPRINT1("[tty avail num_keys:%d]\n", num_keys);
-
- /* If we can't get tty modes for the master side of the pty, we
- can't handle non-canonical-mode programs. Always assume the
- master is in canonical echo mode if we can't tell. */
- ioctl_ret = tcgetattr(master, &term_master);
-
- if (ioctl_ret >= 0)
- {
- DPRINT2 ("echo:%d, canon:%d\n",
- (term_master.c_lflag & ECHO) != 0,
- (term_master.c_lflag & ICANON) != 0);
- do_canon = (term_master.c_lflag & ICANON) != 0;
- readline_echoing_p = (term_master.c_lflag & ECHO) != 0;
- }
- else
- {
- if (ioctl_err == 0)
- DPRINT1("tcgetattr on master fd failed: errno = %d\n", errno);
- ioctl_err = 1;
- }
-
- if (do_canon == 0 && num_keys == 0)
- {
- char ch[10];
- int count = read (STDIN_FILENO, ch, sizeof(ch));
- write (out_to_inferior_fd, ch, count);
- }
- else
- {
- if (num_keys == 0)
- {
- int i;
- /* Re-install callback handler for new prompt. */
- if (prompt != empty_string)
- free (prompt);
- prompt = malloc (buf_count + 1);
- if (prompt == NULL)
- prompt = empty_string;
- else
- {
- memcpy (prompt, buf, buf_count);
- prompt[buf_count] = '\0';
- DPRINT1("New prompt '%s'\n", prompt);
-#if 0 /* ifdef HAVE_RL_ALREADY_PROMPTED -- doesn't work */
- rl_already_prompted = buf_count > 0;
-#else
- if (buf_count > 0)
- write (1, "\r", 1);
-#endif
- }
- rl_callback_handler_install (prompt, line_handler);
- }
- num_keys++;
- rl_callback_read_char ();
- }
- }
- else /* input from inferior. */
- {
- int i;
- int count;
- int old_count;
- if (buf_count > (sizeof(buf) >> 2))
- buf_count = 0;
- count = read (in_from_inferior_fd, buf+buf_count,
- sizeof(buf) - buf_count);
- if (count <= 0)
- {
- DPRINT0 ("(Connection closed by foreign host.)\n");
- tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
- exit (0);
- }
- old_count = buf_count;
-
- /* Do some minimal carriage return translation and backspace
- processing before logging the input line. */
- if (logfile)
- {
-#ifndef __GNUC__
- char *b;
-#else
- char b[count + 1];
-#endif
- int i, j;
-
-#ifndef __GNUC__
- b = malloc (count + 1);
- if (b) {
-#endif
- for (i = 0; i < count; i++)
- b[i] = buf[buf_count + i];
- b[i] = '\0';
- for (i = j = 0; i <= count; i++)
- {
- if (b[i] == '\r')
- {
- if (b[i+1] != '\n')
- b[j++] = '\n';
- }
- else if (b[i] == '\b')
- {
- if (i)
- j--;
- }
- else
- b[j++] = b[i];
- }
- fprintf (logfile, "%s", b);
-
-#ifndef __GNUC__
- free (b);
- }
-#endif
- }
-
- /* Look for any pending echo that we need to suppress. */
- while (echo_suppress_start < echo_suppress_limit
- && count > 0
- && buf[buf_count] == echo_suppress_buffer[echo_suppress_start])
- {
- count--;
- buf_count++;
- echo_suppress_start++;
- }
-
- /* Write to the terminal anything that was not suppressed. */
- if (count > 0)
- write (1, buf + buf_count, count);
-
- /* Finally, look for a prompt candidate.
- * When we get around to going input (from the keyboard),
- * we will consider the prompt to be anything since the last
- * line terminator. So we need to save that text in the
- * initial part of buf. However, anything before the
- * most recent end-of-line is not interesting. */
- buf_count += count;
-#if 1
- for (i = buf_count; --i >= old_count; )
-#else
- for (i = buf_count - 1; i-- >= buf_count - count; )
-#endif
- {
- if (buf[i] == '\n' || buf[i] == '\r')
- {
- i++;
- memmove (buf, buf+i, buf_count - i);
- buf_count -= i;
- break;
- }
- }
- DPRINT2("-> i: %d, buf_count: %d\n", i, buf_count);
- }
- }
-}
-
-/*
- *
- * FILENAME COMPLETION FOR RLFE
- *
- */
-
-#ifndef PATH_MAX
-# define PATH_MAX 1024
-#endif
-
-#define DIRSEP '/'
-#define ISDIRSEP(x) ((x) == '/')
-#define PATHSEP(x) (ISDIRSEP(x) || (x) == 0)
-
-#define DOT_OR_DOTDOT(x) \
- ((x)[0] == '.' && (PATHSEP((x)[1]) || \
- ((x)[1] == '.' && PATHSEP((x)[2]))))
-
-#define FREE(x) if (x) free(x)
-
-#define STRDUP(s, x) do { \
- s = strdup (x);\
- if (s == 0) \
- return ((char *)NULL); \
- } while (0)
-
-static int
-get_inferior_cwd (path, psize)
- char *path;
- size_t psize;
-{
- int n;
- static char procfsbuf[PATH_MAX] = { '\0' };
-
- if (procfsbuf[0] == '\0')
- sprintf (procfsbuf, "/proc/%d/cwd", (int)child);
- n = readlink (procfsbuf, path, psize);
- if (n < 0)
- return n;
- if (n > psize)
- return -1;
- path[n] = '\0';
- return n;
-}
-
-static int
-rlfe_directory_rewrite_hook (dirnamep)
- char **dirnamep;
-{
- char *ldirname, cwd[PATH_MAX], *retdir, *ld;
- int n, ldlen;
-
- ldirname = *dirnamep;
-
- if (*ldirname == '/')
- return 0;
-
- n = get_inferior_cwd (cwd, sizeof(cwd) - 1);
- if (n < 0)
- return 0;
- if (n == 0) /* current directory */
- {
- cwd[0] = '.';
- cwd[1] = '\0';
- n = 1;
- }
-
- /* Minimally canonicalize ldirname by removing leading `./' */
- for (ld = ldirname; *ld; )
- {
- if (ISDIRSEP (ld[0]))
- ld++;
- else if (ld[0] == '.' && PATHSEP(ld[1]))
- ld++;
- else
- break;
- }
- ldlen = (ld && *ld) ? strlen (ld) : 0;
-
- retdir = (char *)malloc (n + ldlen + 3);
- if (retdir == 0)
- return 0;
- if (ldlen)
- sprintf (retdir, "%s/%s", cwd, ld);
- else
- strcpy (retdir, cwd);
- free (ldirname);
-
- *dirnamep = retdir;
-
- DPRINT1("rl_directory_rewrite_hook returns %s\n", retdir);
- return 1;
-}
-
-/* Translate *DIRNAMEP to be relative to the inferior's CWD. Leave a trailing
- slash on the result. */
-static int
-rlfe_directory_completion_hook (dirnamep)
- char **dirnamep;
-{
- char *ldirname, *retdir;
- int n, ldlen;
-
- ldirname = *dirnamep;
-
- if (*ldirname == '/')
- return 0;
-
- n = rlfe_directory_rewrite_hook (dirnamep);
- if (n == 0)
- return 0;
-
- ldirname = *dirnamep;
- ldlen = (ldirname && *ldirname) ? strlen (ldirname) : 0;
-
- if (ldlen == 0 || ldirname[ldlen - 1] != '/')
- {
- retdir = (char *)malloc (ldlen + 3);
- if (retdir == 0)
- return 0;
- if (ldlen)
- strcpy (retdir, ldirname);
- else
- retdir[ldlen++] = '.';
- retdir[ldlen] = '/';
- retdir[ldlen+1] = '\0';
- free (ldirname);
-
- *dirnamep = retdir;
- }
-
- DPRINT1("rl_directory_completion_hook returns %s\n", retdir);
- return 1;
-}
-
-static char *
-rlfe_filename_completion_function (text, state)
- const char *text;
- int state;
-{
- static DIR *directory;
- static char *filename = (char *)NULL;
- static char *dirname = (char *)NULL, *ud = (char *)NULL;
- static int flen, udlen;
- char *temp;
- struct dirent *dentry;
-
- if (state == 0)
- {
- if (directory)
- {
- closedir (directory);
- directory = 0;
- }
- FREE (dirname);
- FREE (filename);
- FREE (ud);
-
- if (text && *text)
- STRDUP (filename, text);
- else
- {
- filename = malloc(1);
- if (filename == 0)
- return ((char *)NULL);
- filename[0] = '\0';
- }
- dirname = (text && *text) ? strdup (text) : strdup (".");
- if (dirname == 0)
- return ((char *)NULL);
-
- temp = strrchr (dirname, '/');
- if (temp)
- {
- strcpy (filename, ++temp);
- *temp = '\0';
- }
- else
- {
- dirname[0] = '.';
- dirname[1] = '\0';
- }
-
- STRDUP (ud, dirname);
- udlen = strlen (ud);
-
- rlfe_directory_completion_hook (&dirname);
-
- directory = opendir (dirname);
- flen = strlen (filename);
-
- rl_filename_completion_desired = 1;
- }
-
- dentry = 0;
- while (directory && (dentry = readdir (directory)))
- {
- if (flen == 0)
- {
- if (DOT_OR_DOTDOT(dentry->d_name) == 0)
- break;
- }
- else
- {
- if ((dentry->d_name[0] == filename[0]) &&
- (strlen (dentry->d_name) >= flen) &&
- (strncmp (filename, dentry->d_name, flen) == 0))
- break;
- }
- }
-
- if (dentry == 0)
- {
- if (directory)
- {
- closedir (directory);
- directory = 0;
- }
- FREE (dirname);
- FREE (filename);
- FREE (ud);
- dirname = filename = ud = 0;
- return ((char *)NULL);
- }
-
- if (ud == 0 || (ud[0] == '.' && ud[1] == '\0'))
- temp = strdup (dentry->d_name);
- else
- {
- temp = malloc (1 + udlen + strlen (dentry->d_name));
- strcpy (temp, ud);
- strcpy (temp + udlen, dentry->d_name);
- }
- return (temp);
-}
diff --git a/readline-4.3.orig/examples/rltest.c b/readline-4.3.orig/examples/rltest.c
deleted file mode 100644
index 99f083b..0000000
--- a/readline-4.3.orig/examples/rltest.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* **************************************************************** */
-/* */
-/* Testing Readline */
-/* */
-/* **************************************************************** */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-extern HIST_ENTRY **history_list ();
-
-main ()
-{
- char *temp, *prompt;
- int done;
-
- temp = (char *)NULL;
- prompt = "readline$ ";
- done = 0;
-
- while (!done)
- {
- temp = readline (prompt);
-
- /* Test for EOF. */
- if (!temp)
- exit (1);
-
- /* If there is anything on the line, print it and remember it. */
- if (*temp)
- {
- fprintf (stderr, "%s\r\n", temp);
- add_history (temp);
- }
-
- /* Check for `command' that we handle. */
- if (strcmp (temp, "quit") == 0)
- done = 1;
-
- if (strcmp (temp, "list") == 0)
- {
- HIST_ENTRY **list;
- register int i;
-
- list = history_list ();
- if (list)
- {
- for (i = 0; list[i]; i++)
- fprintf (stderr, "%d: %s\r\n", i, list[i]->line);
- }
- }
- free (temp);
- }
- exit (0);
-}
diff --git a/readline-4.3.orig/examples/rlversion.c b/readline-4.3.orig/examples/rlversion.c
deleted file mode 100644
index 53949d1..0000000
--- a/readline-4.3.orig/examples/rlversion.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * rlversion -- print out readline's version number
- */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-#include "posixstat.h"
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-#else
-# include <readline/readline.h>
-#endif
-
-main()
-{
- printf ("%s\n", rl_library_version ? rl_library_version : "unknown");
- exit (0);
-}
diff --git a/readline-4.3.orig/funmap.c b/readline-4.3.orig/funmap.c
deleted file mode 100644
index fe9a1da..0000000
--- a/readline-4.3.orig/funmap.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/* funmap.c -- attach names to functions. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if !defined (BUFSIZ)
-#include <stdio.h>
-#endif /* BUFSIZ */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include "rlconf.h"
-#include "readline.h"
-
-#include "xmalloc.h"
-
-#ifdef __STDC__
-typedef int QSFUNC (const void *, const void *);
-#else
-typedef int QSFUNC ();
-#endif
-
-extern int _rl_qsort_string_compare PARAMS((char **, char **));
-
-FUNMAP **funmap;
-static int funmap_size;
-static int funmap_entry;
-
-/* After initializing the function map, this is the index of the first
- program specific function. */
-int funmap_program_specific_entry_start;
-
-static FUNMAP default_funmap[] = {
- { "abort", rl_abort },
- { "accept-line", rl_newline },
- { "arrow-key-prefix", rl_arrow_keys },
- { "backward-byte", rl_backward_byte },
- { "backward-char", rl_backward_char },
- { "backward-delete-char", rl_rubout },
- { "backward-kill-line", rl_backward_kill_line },
- { "backward-kill-word", rl_backward_kill_word },
- { "backward-word", rl_backward_word },
- { "beginning-of-history", rl_beginning_of_history },
- { "beginning-of-line", rl_beg_of_line },
- { "call-last-kbd-macro", rl_call_last_kbd_macro },
- { "capitalize-word", rl_capitalize_word },
- { "character-search", rl_char_search },
- { "character-search-backward", rl_backward_char_search },
- { "clear-screen", rl_clear_screen },
- { "complete", rl_complete },
- { "copy-backward-word", rl_copy_backward_word },
- { "copy-forward-word", rl_copy_forward_word },
- { "copy-region-as-kill", rl_copy_region_to_kill },
- { "delete-char", rl_delete },
- { "delete-char-or-list", rl_delete_or_show_completions },
- { "delete-horizontal-space", rl_delete_horizontal_space },
- { "digit-argument", rl_digit_argument },
- { "do-lowercase-version", rl_do_lowercase_version },
- { "downcase-word", rl_downcase_word },
- { "dump-functions", rl_dump_functions },
- { "dump-macros", rl_dump_macros },
- { "dump-variables", rl_dump_variables },
- { "emacs-editing-mode", rl_emacs_editing_mode },
- { "end-kbd-macro", rl_end_kbd_macro },
- { "end-of-history", rl_end_of_history },
- { "end-of-line", rl_end_of_line },
- { "exchange-point-and-mark", rl_exchange_point_and_mark },
- { "forward-backward-delete-char", rl_rubout_or_delete },
- { "forward-byte", rl_forward_byte },
- { "forward-char", rl_forward_char },
- { "forward-search-history", rl_forward_search_history },
- { "forward-word", rl_forward_word },
- { "history-search-backward", rl_history_search_backward },
- { "history-search-forward", rl_history_search_forward },
- { "insert-comment", rl_insert_comment },
- { "insert-completions", rl_insert_completions },
- { "kill-whole-line", rl_kill_full_line },
- { "kill-line", rl_kill_line },
- { "kill-region", rl_kill_region },
- { "kill-word", rl_kill_word },
- { "menu-complete", rl_menu_complete },
- { "next-history", rl_get_next_history },
- { "non-incremental-forward-search-history", rl_noninc_forward_search },
- { "non-incremental-reverse-search-history", rl_noninc_reverse_search },
- { "non-incremental-forward-search-history-again", rl_noninc_forward_search_again },
- { "non-incremental-reverse-search-history-again", rl_noninc_reverse_search_again },
- { "overwrite-mode", rl_overwrite_mode },
-#ifdef __CYGWIN__
- { "paste-from-clipboard", rl_paste_from_clipboard },
-#endif
- { "possible-completions", rl_possible_completions },
- { "previous-history", rl_get_previous_history },
- { "quoted-insert", rl_quoted_insert },
- { "re-read-init-file", rl_re_read_init_file },
- { "redraw-current-line", rl_refresh_line},
- { "reverse-search-history", rl_reverse_search_history },
- { "revert-line", rl_revert_line },
- { "self-insert", rl_insert },
- { "set-mark", rl_set_mark },
- { "start-kbd-macro", rl_start_kbd_macro },
- { "tab-insert", rl_tab_insert },
- { "tilde-expand", rl_tilde_expand },
- { "transpose-chars", rl_transpose_chars },
- { "transpose-words", rl_transpose_words },
- { "tty-status", rl_tty_status },
- { "undo", rl_undo_command },
- { "universal-argument", rl_universal_argument },
- { "unix-line-discard", rl_unix_line_discard },
- { "unix-word-rubout", rl_unix_word_rubout },
- { "upcase-word", rl_upcase_word },
- { "yank", rl_yank },
- { "yank-last-arg", rl_yank_last_arg },
- { "yank-nth-arg", rl_yank_nth_arg },
- { "yank-pop", rl_yank_pop },
-
-#if defined (VI_MODE)
- { "vi-append-eol", rl_vi_append_eol },
- { "vi-append-mode", rl_vi_append_mode },
- { "vi-arg-digit", rl_vi_arg_digit },
- { "vi-back-to-indent", rl_vi_back_to_indent },
- { "vi-bWord", rl_vi_bWord },
- { "vi-bword", rl_vi_bword },
- { "vi-change-case", rl_vi_change_case },
- { "vi-change-char", rl_vi_change_char },
- { "vi-change-to", rl_vi_change_to },
- { "vi-char-search", rl_vi_char_search },
- { "vi-column", rl_vi_column },
- { "vi-complete", rl_vi_complete },
- { "vi-delete", rl_vi_delete },
- { "vi-delete-to", rl_vi_delete_to },
- { "vi-eWord", rl_vi_eWord },
- { "vi-editing-mode", rl_vi_editing_mode },
- { "vi-end-word", rl_vi_end_word },
- { "vi-eof-maybe", rl_vi_eof_maybe },
- { "vi-eword", rl_vi_eword },
- { "vi-fWord", rl_vi_fWord },
- { "vi-fetch-history", rl_vi_fetch_history },
- { "vi-first-print", rl_vi_first_print },
- { "vi-fword", rl_vi_fword },
- { "vi-goto-mark", rl_vi_goto_mark },
- { "vi-insert-beg", rl_vi_insert_beg },
- { "vi-insertion-mode", rl_vi_insertion_mode },
- { "vi-match", rl_vi_match },
- { "vi-movement-mode", rl_vi_movement_mode },
- { "vi-next-word", rl_vi_next_word },
- { "vi-overstrike", rl_vi_overstrike },
- { "vi-overstrike-delete", rl_vi_overstrike_delete },
- { "vi-prev-word", rl_vi_prev_word },
- { "vi-put", rl_vi_put },
- { "vi-redo", rl_vi_redo },
- { "vi-replace", rl_vi_replace },
- { "vi-search", rl_vi_search },
- { "vi-search-again", rl_vi_search_again },
- { "vi-set-mark", rl_vi_set_mark },
- { "vi-subst", rl_vi_subst },
- { "vi-tilde-expand", rl_vi_tilde_expand },
- { "vi-yank-arg", rl_vi_yank_arg },
- { "vi-yank-to", rl_vi_yank_to },
-#endif /* VI_MODE */
-
- {(char *)NULL, (rl_command_func_t *)NULL }
-};
-
-int
-rl_add_funmap_entry (name, function)
- const char *name;
- rl_command_func_t *function;
-{
- if (funmap_entry + 2 >= funmap_size)
- {
- funmap_size += 64;
- funmap = (FUNMAP **)xrealloc (funmap, funmap_size * sizeof (FUNMAP *));
- }
-
- funmap[funmap_entry] = (FUNMAP *)xmalloc (sizeof (FUNMAP));
- funmap[funmap_entry]->name = name;
- funmap[funmap_entry]->function = function;
-
- funmap[++funmap_entry] = (FUNMAP *)NULL;
- return funmap_entry;
-}
-
-static int funmap_initialized;
-
-/* Make the funmap contain all of the default entries. */
-void
-rl_initialize_funmap ()
-{
- register int i;
-
- if (funmap_initialized)
- return;
-
- for (i = 0; default_funmap[i].name; i++)
- rl_add_funmap_entry (default_funmap[i].name, default_funmap[i].function);
-
- funmap_initialized = 1;
- funmap_program_specific_entry_start = i;
-}
-
-/* Produce a NULL terminated array of known function names. The array
- is sorted. The array itself is allocated, but not the strings inside.
- You should free () the array when you done, but not the pointrs. */
-const char **
-rl_funmap_names ()
-{
- const char **result;
- int result_size, result_index;
-
- /* Make sure that the function map has been initialized. */
- rl_initialize_funmap ();
-
- for (result_index = result_size = 0, result = (const char **)NULL; funmap[result_index]; result_index++)
- {
- if (result_index + 2 > result_size)
- {
- result_size += 20;
- result = (const char **)xrealloc (result, result_size * sizeof (char *));
- }
-
- result[result_index] = funmap[result_index]->name;
- result[result_index + 1] = (char *)NULL;
- }
-
- qsort (result, result_index, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
- return (result);
-}
diff --git a/readline-4.3.orig/histexpand.c b/readline-4.3.orig/histexpand.c
deleted file mode 100644
index 6c81196..0000000
--- a/readline-4.3.orig/histexpand.c
+++ /dev/null
@@ -1,1491 +0,0 @@
-/* histexpand.c -- history expansion. */
-
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# ifndef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#include "rlmbutil.h"
-
-#include "history.h"
-#include "histlib.h"
-
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#define HISTORY_WORD_DELIMITERS " \t\n;&()|<>"
-#define HISTORY_QUOTE_CHARACTERS "\"'`"
-
-typedef int _hist_search_func_t PARAMS((const char *, int));
-
-extern int rl_byte_oriented; /* declared in mbutil.c */
-
-static char error_pointer;
-
-static char *subst_lhs;
-static char *subst_rhs;
-static int subst_lhs_len;
-static int subst_rhs_len;
-
-static char *get_history_word_specifier PARAMS((char *, char *, int *));
-static char *history_find_word PARAMS((char *, int));
-
-static char *quote_breaks PARAMS((char *));
-
-/* Variables exported by this file. */
-/* The character that represents the start of a history expansion
- request. This is usually `!'. */
-char history_expansion_char = '!';
-
-/* The character that invokes word substitution if found at the start of
- a line. This is usually `^'. */
-char history_subst_char = '^';
-
-/* During tokenization, if this character is seen as the first character
- of a word, then it, and all subsequent characters upto a newline are
- ignored. For a Bourne shell, this should be '#'. Bash special cases
- the interactive comment character to not be a comment delimiter. */
-char history_comment_char = '\0';
-
-/* The list of characters which inhibit the expansion of text if found
- immediately following history_expansion_char. */
-char *history_no_expand_chars = " \t\n\r=";
-
-/* If set to a non-zero value, single quotes inhibit history expansion.
- The default is 0. */
-int history_quotes_inhibit_expansion = 0;
-
-/* Used to split words by history_tokenize_internal. */
-char *history_word_delimiters = HISTORY_WORD_DELIMITERS;
-
-/* If set, this points to a function that is called to verify that a
- particular history expansion should be performed. */
-rl_linebuf_func_t *history_inhibit_expansion_function;
-
-/* **************************************************************** */
-/* */
-/* History Expansion */
-/* */
-/* **************************************************************** */
-
-/* Hairy history expansion on text, not tokens. This is of general
- use, and thus belongs in this library. */
-
-/* The last string searched for by a !?string? search. */
-static char *search_string;
-
-/* The last string matched by a !?string? search. */
-static char *search_match;
-
-/* Return the event specified at TEXT + OFFSET modifying OFFSET to
- point to after the event specifier. Just a pointer to the history
- line is returned; NULL is returned in the event of a bad specifier.
- You pass STRING with *INDEX equal to the history_expansion_char that
- begins this specification.
- DELIMITING_QUOTE is a character that is allowed to end the string
- specification for what to search for in addition to the normal
- characters `:', ` ', `\t', `\n', and sometimes `?'.
- So you might call this function like:
- line = get_history_event ("!echo:p", &index, 0); */
-char *
-get_history_event (string, caller_index, delimiting_quote)
- const char *string;
- int *caller_index;
- int delimiting_quote;
-{
- register int i;
- register char c;
- HIST_ENTRY *entry;
- int which, sign, local_index, substring_okay;
- _hist_search_func_t *search_func;
- char *temp;
-
- /* The event can be specified in a number of ways.
-
- !! the previous command
- !n command line N
- !-n current command-line minus N
- !str the most recent command starting with STR
- !?str[?]
- the most recent command containing STR
-
- All values N are determined via HISTORY_BASE. */
-
- i = *caller_index;
-
- if (string[i] != history_expansion_char)
- return ((char *)NULL);
-
- /* Move on to the specification. */
- i++;
-
- sign = 1;
- substring_okay = 0;
-
-#define RETURN_ENTRY(e, w) \
- return ((e = history_get (w)) ? e->line : (char *)NULL)
-
- /* Handle !! case. */
- if (string[i] == history_expansion_char)
- {
- i++;
- which = history_base + (history_length - 1);
- *caller_index = i;
- RETURN_ENTRY (entry, which);
- }
-
- /* Hack case of numeric line specification. */
- if (string[i] == '-')
- {
- sign = -1;
- i++;
- }
-
- if (_rl_digit_p (string[i]))
- {
- /* Get the extent of the digits and compute the value. */
- for (which = 0; _rl_digit_p (string[i]); i++)
- which = (which * 10) + _rl_digit_value (string[i]);
-
- *caller_index = i;
-
- if (sign < 0)
- which = (history_length + history_base) - which;
-
- RETURN_ENTRY (entry, which);
- }
-
- /* This must be something to search for. If the spec begins with
- a '?', then the string may be anywhere on the line. Otherwise,
- the string must be found at the start of a line. */
- if (string[i] == '?')
- {
- substring_okay++;
- i++;
- }
-
- /* Only a closing `?' or a newline delimit a substring search string. */
- for (local_index = i; c = string[i]; i++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int v;
- mbstate_t ps;
-
- memset (&ps, 0, sizeof (mbstate_t));
- /* These produce warnings because we're passing a const string to a
- function that takes a non-const string. */
- _rl_adjust_point (string, i, &ps);
- if ((v = _rl_get_char_len (string + i, &ps)) > 1)
- {
- i += v - 1;
- continue;
- }
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- if ((!substring_okay && (whitespace (c) || c == ':' ||
- (history_search_delimiter_chars && member (c, history_search_delimiter_chars)) ||
- string[i] == delimiting_quote)) ||
- string[i] == '\n' ||
- (substring_okay && string[i] == '?'))
- break;
-
- which = i - local_index;
- temp = (char *)xmalloc (1 + which);
- if (which)
- strncpy (temp, string + local_index, which);
- temp[which] = '\0';
-
- if (substring_okay && string[i] == '?')
- i++;
-
- *caller_index = i;
-
-#define FAIL_SEARCH() \
- do { \
- history_offset = history_length; free (temp) ; return (char *)NULL; \
- } while (0)
-
- /* If there is no search string, try to use the previous search string,
- if one exists. If not, fail immediately. */
- if (*temp == '\0' && substring_okay)
- {
- if (search_string)
- {
- free (temp);
- temp = savestring (search_string);
- }
- else
- FAIL_SEARCH ();
- }
-
- search_func = substring_okay ? history_search : history_search_prefix;
- while (1)
- {
- local_index = (*search_func) (temp, -1);
-
- if (local_index < 0)
- FAIL_SEARCH ();
-
- if (local_index == 0 || substring_okay)
- {
- entry = current_history ();
- history_offset = history_length;
-
- /* If this was a substring search, then remember the
- string that we matched for word substitution. */
- if (substring_okay)
- {
- FREE (search_string);
- search_string = temp;
-
- FREE (search_match);
- search_match = history_find_word (entry->line, local_index);
- }
- else
- free (temp);
-
- return (entry->line);
- }
-
- if (history_offset)
- history_offset--;
- else
- FAIL_SEARCH ();
- }
-#undef FAIL_SEARCH
-#undef RETURN_ENTRY
-}
-
-/* Function for extracting single-quoted strings. Used for inhibiting
- history expansion within single quotes. */
-
-/* Extract the contents of STRING as if it is enclosed in single quotes.
- SINDEX, when passed in, is the offset of the character immediately
- following the opening single quote; on exit, SINDEX is left pointing
- to the closing single quote. */
-static void
-hist_string_extract_single_quoted (string, sindex)
- char *string;
- int *sindex;
-{
- register int i;
-
- for (i = *sindex; string[i] && string[i] != '\''; i++)
- ;
-
- *sindex = i;
-}
-
-static char *
-quote_breaks (s)
- char *s;
-{
- register char *p, *r;
- char *ret;
- int len = 3;
-
- for (p = s; p && *p; p++, len++)
- {
- if (*p == '\'')
- len += 3;
- else if (whitespace (*p) || *p == '\n')
- len += 2;
- }
-
- r = ret = (char *)xmalloc (len);
- *r++ = '\'';
- for (p = s; p && *p; )
- {
- if (*p == '\'')
- {
- *r++ = '\'';
- *r++ = '\\';
- *r++ = '\'';
- *r++ = '\'';
- p++;
- }
- else if (whitespace (*p) || *p == '\n')
- {
- *r++ = '\'';
- *r++ = *p++;
- *r++ = '\'';
- }
- else
- *r++ = *p++;
- }
- *r++ = '\'';
- *r = '\0';
- return ret;
-}
-
-static char *
-hist_error(s, start, current, errtype)
- char *s;
- int start, current, errtype;
-{
- char *temp;
- const char *emsg;
- int ll, elen;
-
- ll = current - start;
-
- switch (errtype)
- {
- case EVENT_NOT_FOUND:
- emsg = "event not found";
- elen = 15;
- break;
- case BAD_WORD_SPEC:
- emsg = "bad word specifier";
- elen = 18;
- break;
- case SUBST_FAILED:
- emsg = "substitution failed";
- elen = 19;
- break;
- case BAD_MODIFIER:
- emsg = "unrecognized history modifier";
- elen = 29;
- break;
- case NO_PREV_SUBST:
- emsg = "no previous substitution";
- elen = 24;
- break;
- default:
- emsg = "unknown expansion error";
- elen = 23;
- break;
- }
-
- temp = (char *)xmalloc (ll + elen + 3);
- strncpy (temp, s + start, ll);
- temp[ll] = ':';
- temp[ll + 1] = ' ';
- strcpy (temp + ll + 2, emsg);
- return (temp);
-}
-
-/* Get a history substitution string from STR starting at *IPTR
- and return it. The length is returned in LENPTR.
-
- A backslash can quote the delimiter. If the string is the
- empty string, the previous pattern is used. If there is
- no previous pattern for the lhs, the last history search
- string is used.
-
- If IS_RHS is 1, we ignore empty strings and set the pattern
- to "" anyway. subst_lhs is not changed if the lhs is empty;
- subst_rhs is allowed to be set to the empty string. */
-
-static char *
-get_subst_pattern (str, iptr, delimiter, is_rhs, lenptr)
- char *str;
- int *iptr, delimiter, is_rhs, *lenptr;
-{
- register int si, i, j, k;
- char *s;
-#if defined (HANDLE_MULTIBYTE)
- mbstate_t ps;
-#endif
-
- s = (char *)NULL;
- i = *iptr;
-
-#if defined (HANDLE_MULTIBYTE)
- memset (&ps, 0, sizeof (mbstate_t));
- _rl_adjust_point (str, i, &ps);
-#endif
-
- for (si = i; str[si] && str[si] != delimiter; si++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int v;
- if ((v = _rl_get_char_len (str + si, &ps)) > 1)
- si += v - 1;
- else if (str[si] == '\\' && str[si + 1] == delimiter)
- si++;
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- if (str[si] == '\\' && str[si + 1] == delimiter)
- si++;
-
- if (si > i || is_rhs)
- {
- s = (char *)xmalloc (si - i + 1);
- for (j = 0, k = i; k < si; j++, k++)
- {
- /* Remove a backslash quoting the search string delimiter. */
- if (str[k] == '\\' && str[k + 1] == delimiter)
- k++;
- s[j] = str[k];
- }
- s[j] = '\0';
- if (lenptr)
- *lenptr = j;
- }
-
- i = si;
- if (str[i])
- i++;
- *iptr = i;
-
- return s;
-}
-
-static void
-postproc_subst_rhs ()
-{
- char *new;
- int i, j, new_size;
-
- new = (char *)xmalloc (new_size = subst_rhs_len + subst_lhs_len);
- for (i = j = 0; i < subst_rhs_len; i++)
- {
- if (subst_rhs[i] == '&')
- {
- if (j + subst_lhs_len >= new_size)
- new = (char *)xrealloc (new, (new_size = new_size * 2 + subst_lhs_len));
- strcpy (new + j, subst_lhs);
- j += subst_lhs_len;
- }
- else
- {
- /* a single backslash protects the `&' from lhs interpolation */
- if (subst_rhs[i] == '\\' && subst_rhs[i + 1] == '&')
- i++;
- if (j >= new_size)
- new = (char *)xrealloc (new, new_size *= 2);
- new[j++] = subst_rhs[i];
- }
- }
- new[j] = '\0';
- free (subst_rhs);
- subst_rhs = new;
- subst_rhs_len = j;
-}
-
-/* Expand the bulk of a history specifier starting at STRING[START].
- Returns 0 if everything is OK, -1 if an error occurred, and 1
- if the `p' modifier was supplied and the caller should just print
- the returned string. Returns the new index into string in
- *END_INDEX_PTR, and the expanded specifier in *RET_STRING. */
-static int
-history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
- char *string;
- int start, *end_index_ptr;
- char **ret_string;
- char *current_line; /* for !# */
-{
- int i, n, starting_index;
- int substitute_globally, want_quotes, print_only;
- char *event, *temp, *result, *tstr, *t, c, *word_spec;
- int result_len;
-#if defined (HANDLE_MULTIBYTE)
- mbstate_t ps;
-
- memset (&ps, 0, sizeof (mbstate_t));
-#endif
-
- result = (char *)xmalloc (result_len = 128);
-
- i = start;
-
- /* If it is followed by something that starts a word specifier,
- then !! is implied as the event specifier. */
-
- if (member (string[i + 1], ":$*%^"))
- {
- char fake_s[3];
- int fake_i = 0;
- i++;
- fake_s[0] = fake_s[1] = history_expansion_char;
- fake_s[2] = '\0';
- event = get_history_event (fake_s, &fake_i, 0);
- }
- else if (string[i + 1] == '#')
- {
- i += 2;
- event = current_line;
- }
- else
- {
- int quoted_search_delimiter = 0;
-
- /* If the character before this `!' is a double or single
- quote, then this expansion takes place inside of the
- quoted string. If we have to search for some text ("!foo"),
- allow the delimiter to end the search string. */
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int c, l;
- l = _rl_find_prev_mbchar (string, i, MB_FIND_ANY);
- c = string[l];
- /* XXX - original patch had i - 1 ??? If i == 0 it would fail. */
- if (i && (c == '\'' || c == '"'))
- quoted_search_delimiter = c;
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- if (i && (string[i - 1] == '\'' || string[i - 1] == '"'))
- quoted_search_delimiter = string[i - 1];
-
- event = get_history_event (string, &i, quoted_search_delimiter);
- }
-
- if (event == 0)
- {
- *ret_string = hist_error (string, start, i, EVENT_NOT_FOUND);
- free (result);
- return (-1);
- }
-
- /* If a word specifier is found, then do what that requires. */
- starting_index = i;
- word_spec = get_history_word_specifier (string, event, &i);
-
- /* There is no such thing as a `malformed word specifier'. However,
- it is possible for a specifier that has no match. In that case,
- we complain. */
- if (word_spec == (char *)&error_pointer)
- {
- *ret_string = hist_error (string, starting_index, i, BAD_WORD_SPEC);
- free (result);
- return (-1);
- }
-
- /* If no word specifier, than the thing of interest was the event. */
- temp = word_spec ? savestring (word_spec) : savestring (event);
- FREE (word_spec);
-
- /* Perhaps there are other modifiers involved. Do what they say. */
- want_quotes = substitute_globally = print_only = 0;
- starting_index = i;
-
- while (string[i] == ':')
- {
- c = string[i + 1];
-
- if (c == 'g')
- {
- substitute_globally = 1;
- i++;
- c = string[i + 1];
- }
-
- switch (c)
- {
- default:
- *ret_string = hist_error (string, i+1, i+2, BAD_MODIFIER);
- free (result);
- free (temp);
- return -1;
-
- case 'q':
- want_quotes = 'q';
- break;
-
- case 'x':
- want_quotes = 'x';
- break;
-
- /* :p means make this the last executed line. So we
- return an error state after adding this line to the
- history. */
- case 'p':
- print_only++;
- break;
-
- /* :t discards all but the last part of the pathname. */
- case 't':
- tstr = strrchr (temp, '/');
- if (tstr)
- {
- tstr++;
- t = savestring (tstr);
- free (temp);
- temp = t;
- }
- break;
-
- /* :h discards the last part of a pathname. */
- case 'h':
- tstr = strrchr (temp, '/');
- if (tstr)
- *tstr = '\0';
- break;
-
- /* :r discards the suffix. */
- case 'r':
- tstr = strrchr (temp, '.');
- if (tstr)
- *tstr = '\0';
- break;
-
- /* :e discards everything but the suffix. */
- case 'e':
- tstr = strrchr (temp, '.');
- if (tstr)
- {
- t = savestring (tstr);
- free (temp);
- temp = t;
- }
- break;
-
- /* :s/this/that substitutes `that' for the first
- occurrence of `this'. :gs/this/that substitutes `that'
- for each occurrence of `this'. :& repeats the last
- substitution. :g& repeats the last substitution
- globally. */
-
- case '&':
- case 's':
- {
- char *new_event;
- int delimiter, failed, si, l_temp;
-
- if (c == 's')
- {
- if (i + 2 < (int)strlen (string))
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- _rl_adjust_point (string, i + 2, &ps);
- if (_rl_get_char_len (string + i + 2, &ps) > 1)
- delimiter = 0;
- else
- delimiter = string[i + 2];
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- delimiter = string[i + 2];
- }
- else
- break; /* no search delimiter */
-
- i += 3;
-
- t = get_subst_pattern (string, &i, delimiter, 0, &subst_lhs_len);
- /* An empty substitution lhs with no previous substitution
- uses the last search string as the lhs. */
- if (t)
- {
- FREE (subst_lhs);
- subst_lhs = t;
- }
- else if (!subst_lhs)
- {
- if (search_string && *search_string)
- {
- subst_lhs = savestring (search_string);
- subst_lhs_len = strlen (subst_lhs);
- }
- else
- {
- subst_lhs = (char *) NULL;
- subst_lhs_len = 0;
- }
- }
-
- FREE (subst_rhs);
- subst_rhs = get_subst_pattern (string, &i, delimiter, 1, &subst_rhs_len);
-
- /* If `&' appears in the rhs, it's supposed to be replaced
- with the lhs. */
- if (member ('&', subst_rhs))
- postproc_subst_rhs ();
- }
- else
- i += 2;
-
- /* If there is no lhs, the substitution can't succeed. */
- if (subst_lhs_len == 0)
- {
- *ret_string = hist_error (string, starting_index, i, NO_PREV_SUBST);
- free (result);
- free (temp);
- return -1;
- }
-
- l_temp = strlen (temp);
- /* Ignore impossible cases. */
- if (subst_lhs_len > l_temp)
- {
- *ret_string = hist_error (string, starting_index, i, SUBST_FAILED);
- free (result);
- free (temp);
- return (-1);
- }
-
- /* Find the first occurrence of THIS in TEMP. */
- si = 0;
- for (failed = 1; (si + subst_lhs_len) <= l_temp; si++)
- if (STREQN (temp+si, subst_lhs, subst_lhs_len))
- {
- int len = subst_rhs_len - subst_lhs_len + l_temp;
- new_event = (char *)xmalloc (1 + len);
- strncpy (new_event, temp, si);
- strncpy (new_event + si, subst_rhs, subst_rhs_len);
- strncpy (new_event + si + subst_rhs_len,
- temp + si + subst_lhs_len,
- l_temp - (si + subst_lhs_len));
- new_event[len] = '\0';
- free (temp);
- temp = new_event;
-
- failed = 0;
-
- if (substitute_globally)
- {
- si += subst_rhs_len;
- l_temp = strlen (temp);
- substitute_globally++;
- continue;
- }
- else
- break;
- }
-
- if (substitute_globally > 1)
- {
- substitute_globally = 0;
- continue; /* don't want to increment i */
- }
-
- if (failed == 0)
- continue; /* don't want to increment i */
-
- *ret_string = hist_error (string, starting_index, i, SUBST_FAILED);
- free (result);
- free (temp);
- return (-1);
- }
- }
- i += 2;
- }
- /* Done with modfiers. */
- /* Believe it or not, we have to back the pointer up by one. */
- --i;
-
- if (want_quotes)
- {
- char *x;
-
- if (want_quotes == 'q')
- x = sh_single_quote (temp);
- else if (want_quotes == 'x')
- x = quote_breaks (temp);
- else
- x = savestring (temp);
-
- free (temp);
- temp = x;
- }
-
- n = strlen (temp);
- if (n >= result_len)
- result = (char *)xrealloc (result, n + 2);
- strcpy (result, temp);
- free (temp);
-
- *end_index_ptr = i;
- *ret_string = result;
- return (print_only);
-}
-
-/* Expand the string STRING, placing the result into OUTPUT, a pointer
- to a string. Returns:
-
- -1) If there was an error in expansion.
- 0) If no expansions took place (or, if the only change in
- the text was the de-slashifying of the history expansion
- character)
- 1) If expansions did take place
- 2) If the `p' modifier was given and the caller should print the result
-
- If an error ocurred in expansion, then OUTPUT contains a descriptive
- error message. */
-
-#define ADD_STRING(s) \
- do \
- { \
- int sl = strlen (s); \
- j += sl; \
- if (j >= result_len) \
- { \
- while (j >= result_len) \
- result_len += 128; \
- result = (char *)xrealloc (result, result_len); \
- } \
- strcpy (result + j - sl, s); \
- } \
- while (0)
-
-#define ADD_CHAR(c) \
- do \
- { \
- if (j >= result_len - 1) \
- result = (char *)xrealloc (result, result_len += 64); \
- result[j++] = c; \
- result[j] = '\0'; \
- } \
- while (0)
-
-int
-history_expand (hstring, output)
- char *hstring;
- char **output;
-{
- register int j;
- int i, r, l, passc, cc, modified, eindex, only_printing;
- char *string;
-
- /* The output string, and its length. */
- int result_len;
- char *result;
-
-#if defined (HANDLE_MULTIBYTE)
- char mb[MB_LEN_MAX];
- mbstate_t ps;
-#endif
-
- /* Used when adding the string. */
- char *temp;
-
- if (output == 0)
- return 0;
-
- /* Setting the history expansion character to 0 inhibits all
- history expansion. */
- if (history_expansion_char == 0)
- {
- *output = savestring (hstring);
- return (0);
- }
-
- /* Prepare the buffer for printing error messages. */
- result = (char *)xmalloc (result_len = 256);
- result[0] = '\0';
-
- only_printing = modified = 0;
- l = strlen (hstring);
-
- /* Grovel the string. Only backslash and single quotes can quote the
- history escape character. We also handle arg specifiers. */
-
- /* Before we grovel forever, see if the history_expansion_char appears
- anywhere within the text. */
-
- /* The quick substitution character is a history expansion all right. That
- is to say, "^this^that^" is equivalent to "!!:s^this^that^", and in fact,
- that is the substitution that we do. */
- if (hstring[0] == history_subst_char)
- {
- string = (char *)xmalloc (l + 5);
-
- string[0] = string[1] = history_expansion_char;
- string[2] = ':';
- string[3] = 's';
- strcpy (string + 4, hstring);
- l += 4;
- }
- else
- {
-#if defined (HANDLE_MULTIBYTE)
- memset (&ps, 0, sizeof (mbstate_t));
-#endif
-
- string = hstring;
- /* If not quick substitution, still maybe have to do expansion. */
-
- /* `!' followed by one of the characters in history_no_expand_chars
- is NOT an expansion. */
- for (i = 0; string[i]; i++)
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int v;
- v = _rl_get_char_len (string + i, &ps);
- if (v > 1)
- {
- i += v - 1;
- continue;
- }
- }
-#endif /* HANDLE_MULTIBYTE */
-
- cc = string[i + 1];
- /* The history_comment_char, if set, appearing at the beginning
- of a word signifies that the rest of the line should not have
- history expansion performed on it.
- Skip the rest of the line and break out of the loop. */
- if (history_comment_char && string[i] == history_comment_char &&
- (i == 0 || member (string[i - 1], history_word_delimiters)))
- {
- while (string[i])
- i++;
- break;
- }
- else if (string[i] == history_expansion_char)
- {
- if (!cc || member (cc, history_no_expand_chars))
- continue;
- /* If the calling application has set
- history_inhibit_expansion_function to a function that checks
- for special cases that should not be history expanded,
- call the function and skip the expansion if it returns a
- non-zero value. */
- else if (history_inhibit_expansion_function &&
- (*history_inhibit_expansion_function) (string, i))
- continue;
- else
- break;
- }
- /* XXX - at some point, might want to extend this to handle
- double quotes as well. */
- else if (history_quotes_inhibit_expansion && string[i] == '\'')
- {
- /* If this is bash, single quotes inhibit history expansion. */
- i++;
- hist_string_extract_single_quoted (string, &i);
- }
- else if (history_quotes_inhibit_expansion && string[i] == '\\')
- {
- /* If this is bash, allow backslashes to quote single
- quotes and the history expansion character. */
- if (cc == '\'' || cc == history_expansion_char)
- i++;
- }
- }
-
- if (string[i] != history_expansion_char)
- {
- free (result);
- *output = savestring (string);
- return (0);
- }
- }
-
- /* Extract and perform the substitution. */
- for (passc = i = j = 0; i < l; i++)
- {
- int tchar = string[i];
-
- if (passc)
- {
- passc = 0;
- ADD_CHAR (tchar);
- continue;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int k, c;
-
- c = tchar;
- memset (mb, 0, sizeof (mb));
- for (k = 0; k < MB_LEN_MAX; k++)
- {
- mb[k] = (char)c;
- memset (&ps, 0, sizeof (mbstate_t));
- if (_rl_get_char_len (mb, &ps) == -2)
- c = string[++i];
- else
- break;
- }
- if (strlen (mb) > 1)
- {
- ADD_STRING (mb);
- break;
- }
- }
-#endif /* HANDLE_MULTIBYTE */
-
- if (tchar == history_expansion_char)
- tchar = -3;
- else if (tchar == history_comment_char)
- tchar = -2;
-
- switch (tchar)
- {
- default:
- ADD_CHAR (string[i]);
- break;
-
- case '\\':
- passc++;
- ADD_CHAR (tchar);
- break;
-
- case '\'':
- {
- /* If history_quotes_inhibit_expansion is set, single quotes
- inhibit history expansion. */
- if (history_quotes_inhibit_expansion)
- {
- int quote, slen;
-
- quote = i++;
- hist_string_extract_single_quoted (string, &i);
-
- slen = i - quote + 2;
- temp = (char *)xmalloc (slen);
- strncpy (temp, string + quote, slen);
- temp[slen - 1] = '\0';
- ADD_STRING (temp);
- free (temp);
- }
- else
- ADD_CHAR (string[i]);
- break;
- }
-
- case -2: /* history_comment_char */
- if (i == 0 || member (string[i - 1], history_word_delimiters))
- {
- temp = (char *)xmalloc (l - i + 1);
- strcpy (temp, string + i);
- ADD_STRING (temp);
- free (temp);
- i = l;
- }
- else
- ADD_CHAR (string[i]);
- break;
-
- case -3: /* history_expansion_char */
- cc = string[i + 1];
-
- /* If the history_expansion_char is followed by one of the
- characters in history_no_expand_chars, then it is not a
- candidate for expansion of any kind. */
- if (member (cc, history_no_expand_chars))
- {
- ADD_CHAR (string[i]);
- break;
- }
-
-#if defined (NO_BANG_HASH_MODIFIERS)
- /* There is something that is listed as a `word specifier' in csh
- documentation which means `the expanded text to this point'.
- That is not a word specifier, it is an event specifier. If we
- don't want to allow modifiers with `!#', just stick the current
- output line in again. */
- if (cc == '#')
- {
- if (result)
- {
- temp = (char *)xmalloc (1 + strlen (result));
- strcpy (temp, result);
- ADD_STRING (temp);
- free (temp);
- }
- i++;
- break;
- }
-#endif
-
- r = history_expand_internal (string, i, &eindex, &temp, result);
- if (r < 0)
- {
- *output = temp;
- free (result);
- if (string != hstring)
- free (string);
- return -1;
- }
- else
- {
- if (temp)
- {
- modified++;
- if (*temp)
- ADD_STRING (temp);
- free (temp);
- }
- only_printing = r == 1;
- i = eindex;
- }
- break;
- }
- }
-
- *output = result;
- if (string != hstring)
- free (string);
-
- if (only_printing)
- {
- add_history (result);
- return (2);
- }
-
- return (modified != 0);
-}
-
-/* Return a consed string which is the word specified in SPEC, and found
- in FROM. NULL is returned if there is no spec. The address of
- ERROR_POINTER is returned if the word specified cannot be found.
- CALLER_INDEX is the offset in SPEC to start looking; it is updated
- to point to just after the last character parsed. */
-static char *
-get_history_word_specifier (spec, from, caller_index)
- char *spec, *from;
- int *caller_index;
-{
- register int i = *caller_index;
- int first, last;
- int expecting_word_spec = 0;
- char *result;
-
- /* The range of words to return doesn't exist yet. */
- first = last = 0;
- result = (char *)NULL;
-
- /* If we found a colon, then this *must* be a word specification. If
- it isn't, then it is an error. */
- if (spec[i] == ':')
- {
- i++;
- expecting_word_spec++;
- }
-
- /* Handle special cases first. */
-
- /* `%' is the word last searched for. */
- if (spec[i] == '%')
- {
- *caller_index = i + 1;
- return (search_match ? savestring (search_match) : savestring (""));
- }
-
- /* `*' matches all of the arguments, but not the command. */
- if (spec[i] == '*')
- {
- *caller_index = i + 1;
- result = history_arg_extract (1, '$', from);
- return (result ? result : savestring (""));
- }
-
- /* `$' is last arg. */
- if (spec[i] == '$')
- {
- *caller_index = i + 1;
- return (history_arg_extract ('$', '$', from));
- }
-
- /* Try to get FIRST and LAST figured out. */
-
- if (spec[i] == '-')
- first = 0;
- else if (spec[i] == '^')
- first = 1;
- else if (_rl_digit_p (spec[i]) && expecting_word_spec)
- {
- for (first = 0; _rl_digit_p (spec[i]); i++)
- first = (first * 10) + _rl_digit_value (spec[i]);
- }
- else
- return ((char *)NULL); /* no valid `first' for word specifier */
-
- if (spec[i] == '^' || spec[i] == '*')
- {
- last = (spec[i] == '^') ? 1 : '$'; /* x* abbreviates x-$ */
- i++;
- }
- else if (spec[i] != '-')
- last = first;
- else
- {
- i++;
-
- if (_rl_digit_p (spec[i]))
- {
- for (last = 0; _rl_digit_p (spec[i]); i++)
- last = (last * 10) + _rl_digit_value (spec[i]);
- }
- else if (spec[i] == '$')
- {
- i++;
- last = '$';
- }
-#if 0
- else if (!spec[i] || spec[i] == ':')
- /* check against `:' because there could be a modifier separator */
-#else
- else
- /* csh seems to allow anything to terminate the word spec here,
- leaving it as an abbreviation. */
-#endif
- last = -1; /* x- abbreviates x-$ omitting word `$' */
- }
-
- *caller_index = i;
-
- if (last >= first || last == '$' || last < 0)
- result = history_arg_extract (first, last, from);
-
- return (result ? result : (char *)&error_pointer);
-}
-
-/* Extract the args specified, starting at FIRST, and ending at LAST.
- The args are taken from STRING. If either FIRST or LAST is < 0,
- then make that arg count from the right (subtract from the number of
- tokens, so that FIRST = -1 means the next to last token on the line).
- If LAST is `$' the last arg from STRING is used. */
-char *
-history_arg_extract (first, last, string)
- int first, last;
- const char *string;
-{
- register int i, len;
- char *result;
- int size, offset;
- char **list;
-
- /* XXX - think about making history_tokenize return a struct array,
- each struct in array being a string and a length to avoid the
- calls to strlen below. */
- if ((list = history_tokenize (string)) == NULL)
- return ((char *)NULL);
-
- for (len = 0; list[len]; len++)
- ;
-
- if (last < 0)
- last = len + last - 1;
-
- if (first < 0)
- first = len + first - 1;
-
- if (last == '$')
- last = len - 1;
-
- if (first == '$')
- first = len - 1;
-
- last++;
-
- if (first >= len || last > len || first < 0 || last < 0 || first > last)
- result = ((char *)NULL);
- else
- {
- for (size = 0, i = first; i < last; i++)
- size += strlen (list[i]) + 1;
- result = (char *)xmalloc (size + 1);
- result[0] = '\0';
-
- for (i = first, offset = 0; i < last; i++)
- {
- strcpy (result + offset, list[i]);
- offset += strlen (list[i]);
- if (i + 1 < last)
- {
- result[offset++] = ' ';
- result[offset] = 0;
- }
- }
- }
-
- for (i = 0; i < len; i++)
- free (list[i]);
- free (list);
-
- return (result);
-}
-
-#define slashify_in_quotes "\\`\"$"
-
-/* Parse STRING into tokens and return an array of strings. If WIND is
- not -1 and INDP is not null, we also want the word surrounding index
- WIND. The position in the returned array of strings is returned in
- *INDP. */
-static char **
-history_tokenize_internal (string, wind, indp)
- const char *string;
- int wind, *indp;
-{
- char **result;
- register int i, start, result_index, size;
- int len, delimiter;
-
- /* If we're searching for a string that's not part of a word (e.g., " "),
- make sure we set *INDP to a reasonable value. */
- if (indp && wind != -1)
- *indp = -1;
-
- /* Get a token, and stuff it into RESULT. The tokens are split
- exactly where the shell would split them. */
- for (i = result_index = size = 0, result = (char **)NULL; string[i]; )
- {
- delimiter = 0;
-
- /* Skip leading whitespace. */
- for (; string[i] && whitespace (string[i]); i++)
- ;
- if (string[i] == 0 || string[i] == history_comment_char)
- return (result);
-
- start = i;
-
- if (member (string[i], "()\n"))
- {
- i++;
- goto got_token;
- }
-
- if (member (string[i], "<>;&|$"))
- {
- int peek = string[i + 1];
-
- if (peek == string[i] && peek != '$')
- {
- if (peek == '<' && string[i + 2] == '-')
- i++;
- i += 2;
- goto got_token;
- }
- else
- {
- if ((peek == '&' && (string[i] == '>' || string[i] == '<')) ||
- ((peek == '>') && (string[i] == '&')) ||
- ((peek == '(') && (string[i] == '$')))
- {
- i += 2;
- goto got_token;
- }
- }
- if (string[i] != '$')
- {
- i++;
- goto got_token;
- }
- }
-
- /* Get word from string + i; */
-
- if (member (string[i], HISTORY_QUOTE_CHARACTERS))
- delimiter = string[i++];
-
- for (; string[i]; i++)
- {
- if (string[i] == '\\' && string[i + 1] == '\n')
- {
- i++;
- continue;
- }
-
- if (string[i] == '\\' && delimiter != '\'' &&
- (delimiter != '"' || member (string[i], slashify_in_quotes)))
- {
- i++;
- continue;
- }
-
- if (delimiter && string[i] == delimiter)
- {
- delimiter = 0;
- continue;
- }
-
- if (!delimiter && (member (string[i], history_word_delimiters)))
- break;
-
- if (!delimiter && member (string[i], HISTORY_QUOTE_CHARACTERS))
- delimiter = string[i];
- }
-
- got_token:
-
- /* If we are looking for the word in which the character at a
- particular index falls, remember it. */
- if (indp && wind != -1 && wind >= start && wind < i)
- *indp = result_index;
-
- len = i - start;
- if (result_index + 2 >= size)
- result = (char **)xrealloc (result, ((size += 10) * sizeof (char *)));
- result[result_index] = (char *)xmalloc (1 + len);
- strncpy (result[result_index], string + start, len);
- result[result_index][len] = '\0';
- result[++result_index] = (char *)NULL;
- }
-
- return (result);
-}
-
-/* Return an array of tokens, much as the shell might. The tokens are
- parsed out of STRING. */
-char **
-history_tokenize (string)
- const char *string;
-{
- return (history_tokenize_internal (string, -1, (int *)NULL));
-}
-
-/* Find and return the word which contains the character at index IND
- in the history line LINE. Used to save the word matched by the
- last history !?string? search. */
-static char *
-history_find_word (line, ind)
- char *line;
- int ind;
-{
- char **words, *s;
- int i, wind;
-
- words = history_tokenize_internal (line, ind, &wind);
- if (wind == -1 || words == 0)
- return ((char *)NULL);
- s = words[wind];
- for (i = 0; i < wind; i++)
- free (words[i]);
- for (i = wind + 1; words[i]; i++)
- free (words[i]);
- free (words);
- return s;
-}
diff --git a/readline-4.3.orig/histfile.c b/readline-4.3.orig/histfile.c
deleted file mode 100644
index 60a9125..0000000
--- a/readline-4.3.orig/histfile.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/* histfile.c - functions to manipulate the history file. */
-
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* The goal is to make the implementation transparent, so that you
- don't have to know what data types are used, just what functions
- you can call. I think I have done that. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#include <sys/types.h>
-#ifndef _MINIX
-# include <sys/file.h>
-#endif
-#include "posixstat.h"
-#include <fcntl.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#if defined (__EMX__) || defined (__CYGWIN__)
-# undef HAVE_MMAP
-#endif
-
-#ifdef HAVE_MMAP
-# include <sys/mman.h>
-
-# ifdef MAP_FILE
-# define MAP_RFLAGS (MAP_FILE|MAP_PRIVATE)
-# define MAP_WFLAGS (MAP_FILE|MAP_SHARED)
-# else
-# define MAP_RFLAGS MAP_PRIVATE
-# define MAP_WFLAGS MAP_SHARED
-# endif
-
-# ifndef MAP_FAILED
-# define MAP_FAILED ((void *)-1)
-# endif
-
-#endif /* HAVE_MMAP */
-
-/* If we're compiling for __EMX__ (OS/2) or __CYGWIN__ (cygwin32 environment
- on win 95/98/nt), we want to open files with O_BINARY mode so that there
- is no \n -> \r\n conversion performed. On other systems, we don't want to
- mess around with O_BINARY at all, so we ensure that it's defined to 0. */
-#if defined (__EMX__) || defined (__CYGWIN__)
-# ifndef O_BINARY
-# define O_BINARY 0
-# endif
-#else /* !__EMX__ && !__CYGWIN__ */
-# undef O_BINARY
-# define O_BINARY 0
-#endif /* !__EMX__ && !__CYGWIN__ */
-
-#include <errno.h>
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-#include "history.h"
-#include "histlib.h"
-
-#include "rlshell.h"
-#include "xmalloc.h"
-
-/* Return the string that should be used in the place of this
- filename. This only matters when you don't specify the
- filename to read_history (), or write_history (). */
-static char *
-history_filename (filename)
- const char *filename;
-{
- char *return_val;
- const char *home;
- int home_len;
-
- return_val = filename ? savestring (filename) : (char *)NULL;
-
- if (return_val)
- return (return_val);
-
- home = sh_get_env_value ("HOME");
-
- if (home == 0)
- {
- home = ".";
- home_len = 1;
- }
- else
- home_len = strlen (home);
-
- return_val = (char *)xmalloc (2 + home_len + 8); /* strlen(".history") == 8 */
- strcpy (return_val, home);
- return_val[home_len] = '/';
-#if defined (__MSDOS__)
- strcpy (return_val + home_len + 1, "_history");
-#else
- strcpy (return_val + home_len + 1, ".history");
-#endif
-
- return (return_val);
-}
-
-/* Add the contents of FILENAME to the history list, a line at a time.
- If FILENAME is NULL, then read from ~/.history. Returns 0 if
- successful, or errno if not. */
-int
-read_history (filename)
- const char *filename;
-{
- return (read_history_range (filename, 0, -1));
-}
-
-/* Read a range of lines from FILENAME, adding them to the history list.
- Start reading at the FROM'th line and end at the TO'th. If FROM
- is zero, start at the beginning. If TO is less than FROM, read
- until the end of the file. If FILENAME is NULL, then read from
- ~/.history. Returns 0 if successful, or errno if not. */
-int
-read_history_range (filename, from, to)
- const char *filename;
- int from, to;
-{
- register char *line_start, *line_end;
- char *input, *buffer, *bufend;
- int file, current_line, chars_read;
- struct stat finfo;
- size_t file_size;
-
- buffer = (char *)NULL;
- input = history_filename (filename);
- file = open (input, O_RDONLY|O_BINARY, 0666);
-
- if ((file < 0) || (fstat (file, &finfo) == -1))
- goto error_and_exit;
-
- file_size = (size_t)finfo.st_size;
-
- /* check for overflow on very large files */
- if (file_size != finfo.st_size || file_size + 1 < file_size)
- {
-#if defined (EFBIG)
- errno = EFBIG;
-#elif defined (EOVERFLOW)
- errno = EOVERFLOW;
-#endif
- goto error_and_exit;
- }
-
-#ifdef HAVE_MMAP
- /* We map read/write and private so we can change newlines to NULs without
- affecting the underlying object. */
- buffer = (char *)mmap (0, file_size, PROT_READ|PROT_WRITE, MAP_RFLAGS, file, 0);
- if ((void *)buffer == MAP_FAILED)
- goto error_and_exit;
- chars_read = file_size;
-#else
- buffer = (char *)malloc (file_size + 1);
- if (buffer == 0)
- goto error_and_exit;
-
- chars_read = read (file, buffer, file_size);
-#endif
- if (chars_read < 0)
- {
- error_and_exit:
- chars_read = errno;
- if (file >= 0)
- close (file);
-
- FREE (input);
-#ifndef HAVE_MMAP
- FREE (buffer);
-#endif
-
- return (chars_read);
- }
-
- close (file);
-
- /* Set TO to larger than end of file if negative. */
- if (to < 0)
- to = chars_read;
-
- /* Start at beginning of file, work to end. */
- bufend = buffer + chars_read;
- current_line = 0;
-
- /* Skip lines until we are at FROM. */
- for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
- if (*line_end == '\n')
- {
- current_line++;
- line_start = line_end + 1;
- }
-
- /* If there are lines left to gobble, then gobble them now. */
- for (line_end = line_start; line_end < bufend; line_end++)
- if (*line_end == '\n')
- {
- *line_end = '\0';
-
- if (*line_start)
- add_history (line_start);
-
- current_line++;
-
- if (current_line >= to)
- break;
-
- line_start = line_end + 1;
- }
-
- FREE (input);
-#ifndef HAVE_MMAP
- FREE (buffer);
-#else
- munmap (buffer, file_size);
-#endif
-
- return (0);
-}
-
-/* Truncate the history file FNAME, leaving only LINES trailing lines.
- If FNAME is NULL, then use ~/.history. Returns 0 on success, errno
- on failure. */
-int
-history_truncate_file (fname, lines)
- const char *fname;
- int lines;
-{
- char *buffer, *filename, *bp;
- int file, chars_read, rv;
- struct stat finfo;
- size_t file_size;
-
- buffer = (char *)NULL;
- filename = history_filename (fname);
- file = open (filename, O_RDONLY|O_BINARY, 0666);
- rv = 0;
-
- /* Don't try to truncate non-regular files. */
- if (file == -1 || fstat (file, &finfo) == -1)
- {
- rv = errno;
- if (file != -1)
- close (file);
- goto truncate_exit;
- }
-
- if (S_ISREG (finfo.st_mode) == 0)
- {
- close (file);
-#ifdef EFTYPE
- rv = EFTYPE;
-#else
- rv = EINVAL;
-#endif
- goto truncate_exit;
- }
-
- file_size = (size_t)finfo.st_size;
-
- /* check for overflow on very large files */
- if (file_size != finfo.st_size || file_size + 1 < file_size)
- {
- close (file);
-#if defined (EFBIG)
- rv = errno = EFBIG;
-#elif defined (EOVERFLOW)
- rv = errno = EOVERFLOW;
-#else
- rv = errno = EINVAL;
-#endif
- goto truncate_exit;
- }
-
- buffer = (char *)malloc (file_size + 1);
- if (buffer == 0)
- {
- close (file);
- goto truncate_exit;
- }
-
- chars_read = read (file, buffer, file_size);
- close (file);
-
- if (chars_read <= 0)
- {
- rv = (chars_read < 0) ? errno : 0;
- goto truncate_exit;
- }
-
- /* Count backwards from the end of buffer until we have passed
- LINES lines. */
- for (bp = buffer + chars_read - 1; lines && bp > buffer; bp--)
- {
- if (*bp == '\n')
- lines--;
- }
-
- /* If this is the first line, then the file contains exactly the
- number of lines we want to truncate to, so we don't need to do
- anything. It's the first line if we don't find a newline between
- the current value of i and 0. Otherwise, write from the start of
- this line until the end of the buffer. */
- for ( ; bp > buffer; bp--)
- if (*bp == '\n')
- {
- bp++;
- break;
- }
-
- /* Write only if there are more lines in the file than we want to
- truncate to. */
- if (bp > buffer && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
- {
- write (file, bp, chars_read - (bp - buffer));
-
-#if defined (__BEOS__)
- /* BeOS ignores O_TRUNC. */
- ftruncate (file, chars_read - (bp - buffer));
-#endif
-
- close (file);
- }
-
- truncate_exit:
-
- FREE (buffer);
-
- free (filename);
- return rv;
-}
-
-/* Workhorse function for writing history. Writes NELEMENT entries
- from the history list to FILENAME. OVERWRITE is non-zero if you
- wish to replace FILENAME with the entries. */
-static int
-history_do_write (filename, nelements, overwrite)
- const char *filename;
- int nelements, overwrite;
-{
- register int i;
- char *output;
- int file, mode, rv;
- size_t cursize;
-
-#ifdef HAVE_MMAP
- mode = overwrite ? O_RDWR|O_CREAT|O_TRUNC|O_BINARY : O_RDWR|O_APPEND|O_BINARY;
-#else
- mode = overwrite ? O_WRONLY|O_CREAT|O_TRUNC|O_BINARY : O_WRONLY|O_APPEND|O_BINARY;
-#endif
- output = history_filename (filename);
- rv = 0;
-
- if ((file = open (output, mode, 0600)) == -1)
- {
- FREE (output);
- return (errno);
- }
-
-#ifdef HAVE_MMAP
- cursize = overwrite ? 0 : lseek (file, 0, SEEK_END);
-#endif
-
- if (nelements > history_length)
- nelements = history_length;
-
- /* Build a buffer of all the lines to write, and write them in one syscall.
- Suggested by Peter Ho (peter@robosts.oxford.ac.uk). */
- {
- HIST_ENTRY **the_history; /* local */
- register int j;
- int buffer_size;
- char *buffer;
-
- the_history = history_list ();
- /* Calculate the total number of bytes to write. */
- for (buffer_size = 0, i = history_length - nelements; i < history_length; i++)
- buffer_size += 1 + strlen (the_history[i]->line);
-
- /* Allocate the buffer, and fill it. */
-#ifdef HAVE_MMAP
- if (ftruncate (file, buffer_size+cursize) == -1)
- goto mmap_error;
- buffer = (char *)mmap (0, buffer_size, PROT_READ|PROT_WRITE, MAP_WFLAGS, file, cursize);
- if ((void *)buffer == MAP_FAILED)
- {
-mmap_error:
- rv = errno;
- FREE (output);
- close (file);
- return rv;
- }
-#else
- buffer = (char *)malloc (buffer_size);
- if (buffer == 0)
- {
- rv = errno;
- FREE (output);
- close (file);
- return rv;
- }
-#endif
-
- for (j = 0, i = history_length - nelements; i < history_length; i++)
- {
- strcpy (buffer + j, the_history[i]->line);
- j += strlen (the_history[i]->line);
- buffer[j++] = '\n';
- }
-
-#ifdef HAVE_MMAP
- if (msync (buffer, buffer_size, 0) != 0 || munmap (buffer, buffer_size) != 0)
- rv = errno;
-#else
- if (write (file, buffer, buffer_size) < 0)
- rv = errno;
- free (buffer);
-#endif
- }
-
- close (file);
-
- FREE (output);
-
- return (rv);
-}
-
-/* Append NELEMENT entries to FILENAME. The entries appended are from
- the end of the list minus NELEMENTs up to the end of the list. */
-int
-append_history (nelements, filename)
- int nelements;
- const char *filename;
-{
- return (history_do_write (filename, nelements, HISTORY_APPEND));
-}
-
-/* Overwrite FILENAME with the current history. If FILENAME is NULL,
- then write the history list to ~/.history. Values returned
- are as in read_history ().*/
-int
-write_history (filename)
- const char *filename;
-{
- return (history_do_write (filename, history_length, HISTORY_OVERWRITE));
-}
diff --git a/readline-4.3.orig/histlib.h b/readline-4.3.orig/histlib.h
deleted file mode 100644
index c39af71..0000000
--- a/readline-4.3.orig/histlib.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* histlib.h -- internal definitions for the history library. */
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_HISTLIB_H_)
-#define _HISTLIB_H_
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if !defined (STREQ)
-#define STREQ(a, b) (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
-#define STREQN(a, b, n) (((n) == 0) ? (1) \
- : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
-#endif
-
-#ifndef savestring
-#define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
-#endif
-
-#ifndef whitespace
-#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
-#endif
-
-#ifndef _rl_digit_p
-#define _rl_digit_p(c) ((c) >= '0' && (c) <= '9')
-#endif
-
-#ifndef _rl_digit_value
-#define _rl_digit_value(c) ((c) - '0')
-#endif
-
-#ifndef member
-# ifndef strchr
-extern char *strchr ();
-# endif
-#define member(c, s) ((c) ? ((char *)strchr ((s), (c)) != (char *)NULL) : 0)
-#endif
-
-#ifndef FREE
-# define FREE(x) if (x) free (x)
-#endif
-
-/* Possible history errors passed to hist_error. */
-#define EVENT_NOT_FOUND 0
-#define BAD_WORD_SPEC 1
-#define SUBST_FAILED 2
-#define BAD_MODIFIER 3
-#define NO_PREV_SUBST 4
-
-/* Possible definitions for history starting point specification. */
-#define ANCHORED_SEARCH 1
-#define NON_ANCHORED_SEARCH 0
-
-/* Possible definitions for what style of writing the history file we want. */
-#define HISTORY_APPEND 0
-#define HISTORY_OVERWRITE 1
-
-/* Some variable definitions shared across history source files. */
-extern int history_offset;
-
-#endif /* !_HISTLIB_H_ */
diff --git a/readline-4.3.orig/history.c b/readline-4.3.orig/history.c
deleted file mode 100644
index 4242f33..0000000
--- a/readline-4.3.orig/history.c
+++ /dev/null
@@ -1,381 +0,0 @@
-/* History.c -- standalone history library */
-
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* The goal is to make the implementation transparent, so that you
- don't have to know what data types are used, just what functions
- you can call. I think I have done that. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# ifdef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#include "history.h"
-#include "histlib.h"
-
-#include "xmalloc.h"
-
-/* The number of slots to increase the_history by. */
-#define DEFAULT_HISTORY_GROW_SIZE 50
-
-/* **************************************************************** */
-/* */
-/* History Functions */
-/* */
-/* **************************************************************** */
-
-/* An array of HIST_ENTRY. This is where we store the history. */
-static HIST_ENTRY **the_history = (HIST_ENTRY **)NULL;
-
-/* Non-zero means that we have enforced a limit on the amount of
- history that we save. */
-static int history_stifled;
-
-/* The current number of slots allocated to the input_history. */
-static int history_size;
-
-/* If HISTORY_STIFLED is non-zero, then this is the maximum number of
- entries to remember. */
-int history_max_entries;
-int max_input_history; /* backwards compatibility */
-
-/* The current location of the interactive history pointer. Just makes
- life easier for outside callers. */
-int history_offset;
-
-/* The number of strings currently stored in the history list. */
-int history_length;
-
-/* The logical `base' of the history array. It defaults to 1. */
-int history_base = 1;
-
-/* Return the current HISTORY_STATE of the history. */
-HISTORY_STATE *
-history_get_history_state ()
-{
- HISTORY_STATE *state;
-
- state = (HISTORY_STATE *)xmalloc (sizeof (HISTORY_STATE));
- state->entries = the_history;
- state->offset = history_offset;
- state->length = history_length;
- state->size = history_size;
- state->flags = 0;
- if (history_stifled)
- state->flags |= HS_STIFLED;
-
- return (state);
-}
-
-/* Set the state of the current history array to STATE. */
-void
-history_set_history_state (state)
- HISTORY_STATE *state;
-{
- the_history = state->entries;
- history_offset = state->offset;
- history_length = state->length;
- history_size = state->size;
- if (state->flags & HS_STIFLED)
- history_stifled = 1;
-}
-
-/* Begin a session in which the history functions might be used. This
- initializes interactive variables. */
-void
-using_history ()
-{
- history_offset = history_length;
-}
-
-/* Return the number of bytes that the primary history entries are using.
- This just adds up the lengths of the_history->lines. */
-int
-history_total_bytes ()
-{
- register int i, result;
-
- for (i = result = 0; the_history && the_history[i]; i++)
- result += strlen (the_history[i]->line);
-
- return (result);
-}
-
-/* Returns the magic number which says what history element we are
- looking at now. In this implementation, it returns history_offset. */
-int
-where_history ()
-{
- return (history_offset);
-}
-
-/* Make the current history item be the one at POS, an absolute index.
- Returns zero if POS is out of range, else non-zero. */
-int
-history_set_pos (pos)
- int pos;
-{
- if (pos > history_length || pos < 0 || !the_history)
- return (0);
- history_offset = pos;
- return (1);
-}
-
-/* Return the current history array. The caller has to be carefull, since this
- is the actual array of data, and could be bashed or made corrupt easily.
- The array is terminated with a NULL pointer. */
-HIST_ENTRY **
-history_list ()
-{
- return (the_history);
-}
-
-/* Return the history entry at the current position, as determined by
- history_offset. If there is no entry there, return a NULL pointer. */
-HIST_ENTRY *
-current_history ()
-{
- return ((history_offset == history_length) || the_history == 0)
- ? (HIST_ENTRY *)NULL
- : the_history[history_offset];
-}
-
-/* Back up history_offset to the previous history entry, and return
- a pointer to that entry. If there is no previous entry then return
- a NULL pointer. */
-HIST_ENTRY *
-previous_history ()
-{
- return history_offset ? the_history[--history_offset] : (HIST_ENTRY *)NULL;
-}
-
-/* Move history_offset forward to the next history entry, and return
- a pointer to that entry. If there is no next entry then return a
- NULL pointer. */
-HIST_ENTRY *
-next_history ()
-{
- return (history_offset == history_length) ? (HIST_ENTRY *)NULL : the_history[++history_offset];
-}
-
-/* Return the history entry which is logically at OFFSET in the history array.
- OFFSET is relative to history_base. */
-HIST_ENTRY *
-history_get (offset)
- int offset;
-{
- int local_index;
-
- local_index = offset - history_base;
- return (local_index >= history_length || local_index < 0 || !the_history)
- ? (HIST_ENTRY *)NULL
- : the_history[local_index];
-}
-
-/* Place STRING at the end of the history list. The data field
- is set to NULL. */
-void
-add_history (string)
- const char *string;
-{
- HIST_ENTRY *temp;
-
- if (history_stifled && (history_length == history_max_entries))
- {
- register int i;
-
- /* If the history is stifled, and history_length is zero,
- and it equals history_max_entries, we don't save items. */
- if (history_length == 0)
- return;
-
- /* If there is something in the slot, then remove it. */
- if (the_history[0])
- {
- free (the_history[0]->line);
- free (the_history[0]);
- }
-
- /* Copy the rest of the entries, moving down one slot. */
- for (i = 0; i < history_length; i++)
- the_history[i] = the_history[i + 1];
-
- history_base++;
- }
- else
- {
- if (history_size == 0)
- {
- history_size = DEFAULT_HISTORY_GROW_SIZE;
- the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *));
- history_length = 1;
- }
- else
- {
- if (history_length == (history_size - 1))
- {
- history_size += DEFAULT_HISTORY_GROW_SIZE;
- the_history = (HIST_ENTRY **)
- xrealloc (the_history, history_size * sizeof (HIST_ENTRY *));
- }
- history_length++;
- }
- }
-
- temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
- temp->line = savestring (string);
- temp->data = (char *)NULL;
-
- the_history[history_length] = (HIST_ENTRY *)NULL;
- the_history[history_length - 1] = temp;
-}
-
-/* Make the history entry at WHICH have LINE and DATA. This returns
- the old entry so you can dispose of the data. In the case of an
- invalid WHICH, a NULL pointer is returned. */
-HIST_ENTRY *
-replace_history_entry (which, line, data)
- int which;
- const char *line;
- histdata_t data;
-{
- HIST_ENTRY *temp, *old_value;
-
- if (which >= history_length)
- return ((HIST_ENTRY *)NULL);
-
- temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
- old_value = the_history[which];
-
- temp->line = savestring (line);
- temp->data = data;
- the_history[which] = temp;
-
- return (old_value);
-}
-
-/* Remove history element WHICH from the history. The removed
- element is returned to you so you can free the line, data,
- and containing structure. */
-HIST_ENTRY *
-remove_history (which)
- int which;
-{
- HIST_ENTRY *return_value;
- register int i;
-
- if (which >= history_length || !history_length)
- return_value = (HIST_ENTRY *)NULL;
- else
- {
- return_value = the_history[which];
-
- for (i = which; i < history_length; i++)
- the_history[i] = the_history[i + 1];
-
- history_length--;
- }
-
- return (return_value);
-}
-
-/* Stifle the history list, remembering only MAX number of lines. */
-void
-stifle_history (max)
- int max;
-{
- register int i, j;
-
- if (max < 0)
- max = 0;
-
- if (history_length > max)
- {
- /* This loses because we cannot free the data. */
- for (i = 0, j = history_length - max; i < j; i++)
- {
- free (the_history[i]->line);
- free (the_history[i]);
- }
-
- history_base = i;
- for (j = 0, i = history_length - max; j < max; i++, j++)
- the_history[j] = the_history[i];
- the_history[j] = (HIST_ENTRY *)NULL;
- history_length = j;
- }
-
- history_stifled = 1;
- max_input_history = history_max_entries = max;
-}
-
-/* Stop stifling the history. This returns the previous maximum
- number of history entries. The value is positive if the history
- was stifled, negative if it wasn't. */
-int
-unstifle_history ()
-{
- if (history_stifled)
- {
- history_stifled = 0;
- return (history_max_entries);
- }
- else
- return (-history_max_entries);
-}
-
-int
-history_is_stifled ()
-{
- return (history_stifled);
-}
-
-void
-clear_history ()
-{
- register int i;
-
- /* This loses because we cannot free the data. */
- for (i = 0; i < history_length; i++)
- {
- free (the_history[i]->line);
- free (the_history[i]);
- the_history[i] = (HIST_ENTRY *)NULL;
- }
-
- history_offset = history_length = 0;
-}
diff --git a/readline-4.3.orig/history.h b/readline-4.3.orig/history.h
deleted file mode 100644
index 58b5de4..0000000
--- a/readline-4.3.orig/history.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/* History.h -- the names of functions that you can call in history. */
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _HISTORY_H_
-#define _HISTORY_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined READLINE_LIBRARY
-# include "rlstdc.h"
-# include "rltypedefs.h"
-#else
-# include <readline/rlstdc.h>
-# include <readline/rltypedefs.h>
-#endif
-
-#ifdef __STDC__
-typedef void *histdata_t;
-#else
-typedef char *histdata_t;
-#endif
-
-/* The structure used to store a history entry. */
-typedef struct _hist_entry {
- char *line;
- histdata_t data;
-} HIST_ENTRY;
-
-/* A structure used to pass the current state of the history stuff around. */
-typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
-} HISTORY_STATE;
-
-/* Flag values for the `flags' member of HISTORY_STATE. */
-#define HS_STIFLED 0x01
-
-/* Initialization and state management. */
-
-/* Begin a session in which the history functions might be used. This
- just initializes the interactive variables. */
-extern void using_history PARAMS((void));
-
-/* Return the current HISTORY_STATE of the history. */
-extern HISTORY_STATE *history_get_history_state PARAMS((void));
-
-/* Set the state of the current history array to STATE. */
-extern void history_set_history_state PARAMS((HISTORY_STATE *));
-
-/* Manage the history list. */
-
-/* Place STRING at the end of the history list.
- The associated data field (if any) is set to NULL. */
-extern void add_history PARAMS((const char *));
-
-/* A reasonably useless function, only here for completeness. WHICH
- is the magic number that tells us which element to delete. The
- elements are numbered from 0. */
-extern HIST_ENTRY *remove_history PARAMS((int));
-
-/* Make the history entry at WHICH have LINE and DATA. This returns
- the old entry so you can dispose of the data. In the case of an
- invalid WHICH, a NULL pointer is returned. */
-extern HIST_ENTRY *replace_history_entry PARAMS((int, const char *, histdata_t));
-
-/* Clear the history list and start over. */
-extern void clear_history PARAMS((void));
-
-/* Stifle the history list, remembering only MAX number of entries. */
-extern void stifle_history PARAMS((int));
-
-/* Stop stifling the history. This returns the previous amount the
- history was stifled by. The value is positive if the history was
- stifled, negative if it wasn't. */
-extern int unstifle_history PARAMS((void));
-
-/* Return 1 if the history is stifled, 0 if it is not. */
-extern int history_is_stifled PARAMS((void));
-
-/* Information about the history list. */
-
-/* Return a NULL terminated array of HIST_ENTRY which is the current input
- history. Element 0 of this list is the beginning of time. If there
- is no history, return NULL. */
-extern HIST_ENTRY **history_list PARAMS((void));
-
-/* Returns the number which says what history element we are now
- looking at. */
-extern int where_history PARAMS((void));
-
-/* Return the history entry at the current position, as determined by
- history_offset. If there is no entry there, return a NULL pointer. */
-extern HIST_ENTRY *current_history PARAMS((void));
-
-/* Return the history entry which is logically at OFFSET in the history
- array. OFFSET is relative to history_base. */
-extern HIST_ENTRY *history_get PARAMS((int));
-
-/* Return the number of bytes that the primary history entries are using.
- This just adds up the lengths of the_history->lines. */
-extern int history_total_bytes PARAMS((void));
-
-/* Moving around the history list. */
-
-/* Set the position in the history list to POS. */
-extern int history_set_pos PARAMS((int));
-
-/* Back up history_offset to the previous history entry, and return
- a pointer to that entry. If there is no previous entry, return
- a NULL pointer. */
-extern HIST_ENTRY *previous_history PARAMS((void));
-
-/* Move history_offset forward to the next item in the input_history,
- and return the a pointer to that entry. If there is no next entry,
- return a NULL pointer. */
-extern HIST_ENTRY *next_history PARAMS((void));
-
-/* Searching the history list. */
-
-/* Search the history for STRING, starting at history_offset.
- If DIRECTION < 0, then the search is through previous entries,
- else through subsequent. If the string is found, then
- current_history () is the history entry, and the value of this function
- is the offset in the line of that history entry that the string was
- found in. Otherwise, nothing is changed, and a -1 is returned. */
-extern int history_search PARAMS((const char *, int));
-
-/* Search the history for STRING, starting at history_offset.
- The search is anchored: matching lines must begin with string.
- DIRECTION is as in history_search(). */
-extern int history_search_prefix PARAMS((const char *, int));
-
-/* Search for STRING in the history list, starting at POS, an
- absolute index into the list. DIR, if negative, says to search
- backwards from POS, else forwards.
- Returns the absolute index of the history element where STRING
- was found, or -1 otherwise. */
-extern int history_search_pos PARAMS((const char *, int, int));
-
-/* Managing the history file. */
-
-/* Add the contents of FILENAME to the history list, a line at a time.
- If FILENAME is NULL, then read from ~/.history. Returns 0 if
- successful, or errno if not. */
-extern int read_history PARAMS((const char *));
-
-/* Read a range of lines from FILENAME, adding them to the history list.
- Start reading at the FROM'th line and end at the TO'th. If FROM
- is zero, start at the beginning. If TO is less than FROM, read
- until the end of the file. If FILENAME is NULL, then read from
- ~/.history. Returns 0 if successful, or errno if not. */
-extern int read_history_range PARAMS((const char *, int, int));
-
-/* Write the current history to FILENAME. If FILENAME is NULL,
- then write the history list to ~/.history. Values returned
- are as in read_history (). */
-extern int write_history PARAMS((const char *));
-
-/* Append NELEMENT entries to FILENAME. The entries appended are from
- the end of the list minus NELEMENTs up to the end of the list. */
-extern int append_history PARAMS((int, const char *));
-
-/* Truncate the history file, leaving only the last NLINES lines. */
-extern int history_truncate_file PARAMS((const char *, int));
-
-/* History expansion. */
-
-/* Expand the string STRING, placing the result into OUTPUT, a pointer
- to a string. Returns:
-
- 0) If no expansions took place (or, if the only change in
- the text was the de-slashifying of the history expansion
- character)
- 1) If expansions did take place
- -1) If there was an error in expansion.
- 2) If the returned line should just be printed.
-
- If an error ocurred in expansion, then OUTPUT contains a descriptive
- error message. */
-extern int history_expand PARAMS((char *, char **));
-
-/* Extract a string segment consisting of the FIRST through LAST
- arguments present in STRING. Arguments are broken up as in
- the shell. */
-extern char *history_arg_extract PARAMS((int, int, const char *));
-
-/* Return the text of the history event beginning at the current
- offset into STRING. Pass STRING with *INDEX equal to the
- history_expansion_char that begins this specification.
- DELIMITING_QUOTE is a character that is allowed to end the string
- specification for what to search for in addition to the normal
- characters `:', ` ', `\t', `\n', and sometimes `?'. */
-extern char *get_history_event PARAMS((const char *, int *, int));
-
-/* Return an array of tokens, much as the shell might. The tokens are
- parsed out of STRING. */
-extern char **history_tokenize PARAMS((const char *));
-
-/* Exported history variables. */
-extern int history_base;
-extern int history_length;
-extern int history_max_entries;
-extern char history_expansion_char;
-extern char history_subst_char;
-extern char *history_word_delimiters;
-extern char history_comment_char;
-extern char *history_no_expand_chars;
-extern char *history_search_delimiter_chars;
-extern int history_quotes_inhibit_expansion;
-
-/* Backwards compatibility */
-extern int max_input_history;
-
-/* If set, this function is called to decide whether or not a particular
- history expansion should be treated as a special case for the calling
- application and not expanded. */
-extern rl_linebuf_func_t *history_inhibit_expansion_function;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_HISTORY_H_ */
diff --git a/readline-4.3.orig/histsearch.c b/readline-4.3.orig/histsearch.c
deleted file mode 100644
index d94fd6c..0000000
--- a/readline-4.3.orig/histsearch.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* histsearch.c -- searching the history list. */
-
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# ifdef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#include "history.h"
-#include "histlib.h"
-
-/* The list of alternate characters that can delimit a history search
- string. */
-char *history_search_delimiter_chars = (char *)NULL;
-
-static int history_search_internal PARAMS((const char *, int, int));
-
-/* Search the history for STRING, starting at history_offset.
- If DIRECTION < 0, then the search is through previous entries, else
- through subsequent. If ANCHORED is non-zero, the string must
- appear at the beginning of a history line, otherwise, the string
- may appear anywhere in the line. If the string is found, then
- current_history () is the history entry, and the value of this
- function is the offset in the line of that history entry that the
- string was found in. Otherwise, nothing is changed, and a -1 is
- returned. */
-
-static int
-history_search_internal (string, direction, anchored)
- const char *string;
- int direction, anchored;
-{
- register int i, reverse;
- register char *line;
- register int line_index;
- int string_len;
- HIST_ENTRY **the_history; /* local */
-
- i = history_offset;
- reverse = (direction < 0);
-
- /* Take care of trivial cases first. */
- if (string == 0 || *string == '\0')
- return (-1);
-
- if (!history_length || ((i == history_length) && !reverse))
- return (-1);
-
- if (reverse && (i == history_length))
- i--;
-
-#define NEXT_LINE() do { if (reverse) i--; else i++; } while (0)
-
- the_history = history_list ();
- string_len = strlen (string);
- while (1)
- {
- /* Search each line in the history list for STRING. */
-
- /* At limit for direction? */
- if ((reverse && i < 0) || (!reverse && i == history_length))
- return (-1);
-
- line = the_history[i]->line;
- line_index = strlen (line);
-
- /* If STRING is longer than line, no match. */
- if (string_len > line_index)
- {
- NEXT_LINE ();
- continue;
- }
-
- /* Handle anchored searches first. */
- if (anchored == ANCHORED_SEARCH)
- {
- if (STREQN (string, line, string_len))
- {
- history_offset = i;
- return (0);
- }
-
- NEXT_LINE ();
- continue;
- }
-
- /* Do substring search. */
- if (reverse)
- {
- line_index -= string_len;
-
- while (line_index >= 0)
- {
- if (STREQN (string, line + line_index, string_len))
- {
- history_offset = i;
- return (line_index);
- }
- line_index--;
- }
- }
- else
- {
- register int limit;
-
- limit = line_index - string_len + 1;
- line_index = 0;
-
- while (line_index < limit)
- {
- if (STREQN (string, line + line_index, string_len))
- {
- history_offset = i;
- return (line_index);
- }
- line_index++;
- }
- }
- NEXT_LINE ();
- }
-}
-
-/* Do a non-anchored search for STRING through the history in DIRECTION. */
-int
-history_search (string, direction)
- const char *string;
- int direction;
-{
- return (history_search_internal (string, direction, NON_ANCHORED_SEARCH));
-}
-
-/* Do an anchored search for string through the history in DIRECTION. */
-int
-history_search_prefix (string, direction)
- const char *string;
- int direction;
-{
- return (history_search_internal (string, direction, ANCHORED_SEARCH));
-}
-
-/* Search for STRING in the history list. DIR is < 0 for searching
- backwards. POS is an absolute index into the history list at
- which point to begin searching. */
-int
-history_search_pos (string, dir, pos)
- const char *string;
- int dir, pos;
-{
- int ret, old;
-
- old = where_history ();
- history_set_pos (pos);
- if (history_search (string, dir) == -1)
- {
- history_set_pos (old);
- return (-1);
- }
- ret = where_history ();
- history_set_pos (old);
- return ret;
-}
diff --git a/readline-4.3.orig/input.c b/readline-4.3.orig/input.c
deleted file mode 100644
index 841f05d..0000000
--- a/readline-4.3.orig/input.c
+++ /dev/null
@@ -1,540 +0,0 @@
-/* input.c -- character input functions for readline. */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-# include <sys/file.h>
-#endif /* HAVE_SYS_FILE_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_SELECT)
-# if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX)
-# include <sys/time.h>
-# endif
-#endif /* HAVE_SELECT */
-#if defined (HAVE_SYS_SELECT_H)
-# include <sys/select.h>
-#endif
-
-#if defined (FIONREAD_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-/* What kind of non-blocking I/O do we have? */
-#if !defined (O_NDELAY) && defined (O_NONBLOCK)
-# define O_NDELAY O_NONBLOCK /* Posix style */
-#endif
-
-/* Non-null means it is a pointer to a function to run while waiting for
- character input. */
-rl_hook_func_t *rl_event_hook = (rl_hook_func_t *)NULL;
-
-rl_getc_func_t *rl_getc_function = rl_getc;
-
-static int _keyboard_input_timeout = 100000; /* 0.1 seconds; it's in usec */
-
-static int ibuffer_space PARAMS((void));
-static int rl_get_char PARAMS((int *));
-static int rl_gather_tyi PARAMS((void));
-
-/* **************************************************************** */
-/* */
-/* Character Input Buffering */
-/* */
-/* **************************************************************** */
-
-static int pop_index, push_index;
-static unsigned char ibuffer[512];
-static int ibuffer_len = sizeof (ibuffer) - 1;
-
-#define any_typein (push_index != pop_index)
-
-int
-_rl_any_typein ()
-{
- return any_typein;
-}
-
-/* Return the amount of space available in the buffer for stuffing
- characters. */
-static int
-ibuffer_space ()
-{
- if (pop_index > push_index)
- return (pop_index - push_index - 1);
- else
- return (ibuffer_len - (push_index - pop_index));
-}
-
-/* Get a key from the buffer of characters to be read.
- Return the key in KEY.
- Result is KEY if there was a key, or 0 if there wasn't. */
-static int
-rl_get_char (key)
- int *key;
-{
- if (push_index == pop_index)
- return (0);
-
- *key = ibuffer[pop_index++];
-
- if (pop_index >= ibuffer_len)
- pop_index = 0;
-
- return (1);
-}
-
-/* Stuff KEY into the *front* of the input buffer.
- Returns non-zero if successful, zero if there is
- no space left in the buffer. */
-int
-_rl_unget_char (key)
- int key;
-{
- if (ibuffer_space ())
- {
- pop_index--;
- if (pop_index < 0)
- pop_index = ibuffer_len - 1;
- ibuffer[pop_index] = key;
- return (1);
- }
- return (0);
-}
-
-/* If a character is available to be read, then read it and stuff it into
- IBUFFER. Otherwise, just return. Returns number of characters read
- (0 if none available) and -1 on error (EIO). */
-static int
-rl_gather_tyi ()
-{
- int tty;
- register int tem, result;
- int chars_avail;
- char input;
-#if defined(HAVE_SELECT)
- fd_set readfds, exceptfds;
- struct timeval timeout;
-#endif
-
- tty = fileno (rl_instream);
-
-#if defined (HAVE_SELECT)
- FD_ZERO (&readfds);
- FD_ZERO (&exceptfds);
- FD_SET (tty, &readfds);
- FD_SET (tty, &exceptfds);
- timeout.tv_sec = 0;
- timeout.tv_usec = _keyboard_input_timeout;
- result = select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout);
- if (result <= 0)
- return 0; /* Nothing to read. */
-#endif
-
- result = -1;
-#if defined (FIONREAD)
- errno = 0;
- result = ioctl (tty, FIONREAD, &chars_avail);
- if (result == -1 && errno == EIO)
- return -1;
-#endif
-
-#if defined (O_NDELAY)
- if (result == -1)
- {
- tem = fcntl (tty, F_GETFL, 0);
-
- fcntl (tty, F_SETFL, (tem | O_NDELAY));
- chars_avail = read (tty, &input, 1);
-
- fcntl (tty, F_SETFL, tem);
- if (chars_avail == -1 && errno == EAGAIN)
- return 0;
- }
-#endif /* O_NDELAY */
-
- /* If there's nothing available, don't waste time trying to read
- something. */
- if (chars_avail <= 0)
- return 0;
-
- tem = ibuffer_space ();
-
- if (chars_avail > tem)
- chars_avail = tem;
-
- /* One cannot read all of the available input. I can only read a single
- character at a time, or else programs which require input can be
- thwarted. If the buffer is larger than one character, I lose.
- Damn! */
- if (tem < ibuffer_len)
- chars_avail = 0;
-
- if (result != -1)
- {
- while (chars_avail--)
- rl_stuff_char ((*rl_getc_function) (rl_instream));
- }
- else
- {
- if (chars_avail)
- rl_stuff_char (input);
- }
-
- return 1;
-}
-
-int
-rl_set_keyboard_input_timeout (u)
- int u;
-{
- int o;
-
- o = _keyboard_input_timeout;
- if (u > 0)
- _keyboard_input_timeout = u;
- return (o);
-}
-
-/* Is there input available to be read on the readline input file
- descriptor? Only works if the system has select(2) or FIONREAD.
- Uses the value of _keyboard_input_timeout as the timeout; if another
- readline function wants to specify a timeout and not leave it up to
- the user, it should use _rl_input_queued(timeout_value_in_microseconds)
- instead. */
-int
-_rl_input_available ()
-{
-#if defined(HAVE_SELECT)
- fd_set readfds, exceptfds;
- struct timeval timeout;
-#endif
-#if !defined (HAVE_SELECT) && defined(FIONREAD)
- int chars_avail;
-#endif
- int tty;
-
- tty = fileno (rl_instream);
-
-#if defined (HAVE_SELECT)
- FD_ZERO (&readfds);
- FD_ZERO (&exceptfds);
- FD_SET (tty, &readfds);
- FD_SET (tty, &exceptfds);
- timeout.tv_sec = 0;
- timeout.tv_usec = _keyboard_input_timeout;
- return (select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout) > 0);
-#else
-
-#if defined (FIONREAD)
- if (ioctl (tty, FIONREAD, &chars_avail) == 0)
- return (chars_avail);
-#endif
-
-#endif
-
- return 0;
-}
-
-int
-_rl_input_queued (t)
- int t;
-{
- int old_timeout, r;
-
- old_timeout = rl_set_keyboard_input_timeout (t);
- r = _rl_input_available ();
- rl_set_keyboard_input_timeout (old_timeout);
- return r;
-}
-
-void
-_rl_insert_typein (c)
- int c;
-{
- int key, t, i;
- char *string;
-
- i = key = 0;
- string = (char *)xmalloc (ibuffer_len + 1);
- string[i++] = (char) c;
-
- while ((t = rl_get_char (&key)) &&
- _rl_keymap[key].type == ISFUNC &&
- _rl_keymap[key].function == rl_insert)
- string[i++] = key;
-
- if (t)
- _rl_unget_char (key);
-
- string[i] = '\0';
- rl_insert_text (string);
- free (string);
-}
-
-/* Add KEY to the buffer of characters to be read. Returns 1 if the
- character was stuffed correctly; 0 otherwise. */
-int
-rl_stuff_char (key)
- int key;
-{
- if (ibuffer_space () == 0)
- return 0;
-
- if (key == EOF)
- {
- key = NEWLINE;
- rl_pending_input = EOF;
- RL_SETSTATE (RL_STATE_INPUTPENDING);
- }
- ibuffer[push_index++] = key;
- if (push_index >= ibuffer_len)
- push_index = 0;
-
- return 1;
-}
-
-/* Make C be the next command to be executed. */
-int
-rl_execute_next (c)
- int c;
-{
- rl_pending_input = c;
- RL_SETSTATE (RL_STATE_INPUTPENDING);
- return 0;
-}
-
-/* Clear any pending input pushed with rl_execute_next() */
-int
-rl_clear_pending_input ()
-{
- rl_pending_input = 0;
- RL_UNSETSTATE (RL_STATE_INPUTPENDING);
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Character Input */
-/* */
-/* **************************************************************** */
-
-/* Read a key, including pending input. */
-int
-rl_read_key ()
-{
- int c;
-
- rl_key_sequence_length++;
-
- if (rl_pending_input)
- {
- c = rl_pending_input;
- rl_clear_pending_input ();
- }
- else
- {
- /* If input is coming from a macro, then use that. */
- if (c = _rl_next_macro_key ())
- return (c);
-
- /* If the user has an event function, then call it periodically. */
- if (rl_event_hook)
- {
- while (rl_event_hook && rl_get_char (&c) == 0)
- {
- (*rl_event_hook) ();
- if (rl_done) /* XXX - experimental */
- return ('\n');
- if (rl_gather_tyi () < 0) /* XXX - EIO */
- {
- rl_done = 1;
- return ('\n');
- }
- }
- }
- else
- {
- if (rl_get_char (&c) == 0)
- c = (*rl_getc_function) (rl_instream);
- }
- }
-
- return (c);
-}
-
-int
-rl_getc (stream)
- FILE *stream;
-{
- int result;
- unsigned char c;
-
- while (1)
- {
- result = read (fileno (stream), &c, sizeof (unsigned char));
-
- if (result == sizeof (unsigned char))
- return (c);
-
- /* If zero characters are returned, then the file that we are
- reading from is empty! Return EOF in that case. */
- if (result == 0)
- return (EOF);
-
-#if defined (__BEOS__)
- if (errno == EINTR)
- continue;
-#endif
-
-#if defined (EWOULDBLOCK)
-# define X_EWOULDBLOCK EWOULDBLOCK
-#else
-# define X_EWOULDBLOCK -99
-#endif
-
-#if defined (EAGAIN)
-# define X_EAGAIN EAGAIN
-#else
-# define X_EAGAIN -99
-#endif
-
- if (errno == X_EWOULDBLOCK || errno == X_EAGAIN)
- {
- if (sh_unset_nodelay_mode (fileno (stream)) < 0)
- return (EOF);
- continue;
- }
-
-#undef X_EWOULDBLOCK
-#undef X_EAGAIN
-
- /* If the error that we received was SIGINT, then try again,
- this is simply an interrupted system call to read ().
- Otherwise, some error ocurred, also signifying EOF. */
- if (errno != EINTR)
- return (EOF);
- }
-}
-
-#if defined (HANDLE_MULTIBYTE)
-/* read multibyte char */
-int
-_rl_read_mbchar (mbchar, size)
- char *mbchar;
- int size;
-{
- int mb_len = 0;
- size_t mbchar_bytes_length;
- wchar_t wc;
- mbstate_t ps, ps_back;
-
- memset(&ps, 0, sizeof (mbstate_t));
- memset(&ps_back, 0, sizeof (mbstate_t));
-
- while (mb_len < size)
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- mbchar[mb_len++] = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
- if (mbchar_bytes_length == (size_t)(-1))
- break; /* invalid byte sequence for the current locale */
- else if (mbchar_bytes_length == (size_t)(-2))
- {
- /* shorted bytes */
- ps = ps_back;
- continue;
- }
- else if (mbchar_bytes_length > (size_t)(0))
- break;
- }
-
- return mb_len;
-}
-
-/* Read a multibyte-character string whose first character is FIRST into
- the buffer MB of length MBLEN. Returns the last character read, which
- may be FIRST. Used by the search functions, among others. Very similar
- to _rl_read_mbchar. */
-int
-_rl_read_mbstring (first, mb, mblen)
- int first;
- char *mb;
- int mblen;
-{
- int i, c;
- mbstate_t ps;
-
- c = first;
- memset (mb, 0, mblen);
- for (i = 0; i < mblen; i++)
- {
- mb[i] = (char)c;
- memset (&ps, 0, sizeof (mbstate_t));
- if (_rl_get_char_len (mb, &ps) == -2)
- {
- /* Read more for multibyte character */
- RL_SETSTATE (RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE (RL_STATE_MOREINPUT);
- }
- else
- break;
- }
- return c;
-}
-#endif /* HANDLE_MULTIBYTE */
diff --git a/readline-4.3.orig/isearch.c b/readline-4.3.orig/isearch.c
deleted file mode 100644
index c1ea5b3..0000000
--- a/readline-4.3.orig/isearch.c
+++ /dev/null
@@ -1,560 +0,0 @@
-/* **************************************************************** */
-/* */
-/* I-Search and Searching */
-/* */
-/* **************************************************************** */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#include <stdio.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif
-
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* Variables exported to other files in the readline library. */
-char *_rl_isearch_terminators = (char *)NULL;
-
-/* Variables imported from other files in the readline library. */
-extern HIST_ENTRY *_rl_saved_line_for_history;
-
-/* Forward declarations */
-static int rl_search_history PARAMS((int, int));
-
-/* Last line found by the current incremental search, so we don't `find'
- identical lines many times in a row. */
-static char *prev_line_found;
-
-/* Last search string and its length. */
-static char *last_isearch_string;
-static int last_isearch_string_len;
-
-static char *default_isearch_terminators = "\033\012";
-
-/* Search backwards through the history looking for a string which is typed
- interactively. Start with the current line. */
-int
-rl_reverse_search_history (sign, key)
- int sign, key;
-{
- return (rl_search_history (-sign, key));
-}
-
-/* Search forwards through the history looking for a string which is typed
- interactively. Start with the current line. */
-int
-rl_forward_search_history (sign, key)
- int sign, key;
-{
- return (rl_search_history (sign, key));
-}
-
-/* Display the current state of the search in the echo-area.
- SEARCH_STRING contains the string that is being searched for,
- DIRECTION is zero for forward, or 1 for reverse,
- WHERE is the history list number of the current line. If it is
- -1, then this line is the starting one. */
-static void
-rl_display_search (search_string, reverse_p, where)
- char *search_string;
- int reverse_p, where;
-{
- char *message;
- int msglen, searchlen;
-
- searchlen = (search_string && *search_string) ? strlen (search_string) : 0;
-
- message = (char *)xmalloc (searchlen + 33);
- msglen = 0;
-
-#if defined (NOTDEF)
- if (where != -1)
- {
- sprintf (message, "[%d]", where + history_base);
- msglen = strlen (message);
- }
-#endif /* NOTDEF */
-
- message[msglen++] = '(';
-
- if (reverse_p)
- {
- strcpy (message + msglen, "reverse-");
- msglen += 8;
- }
-
- strcpy (message + msglen, "i-search)`");
- msglen += 10;
-
- if (search_string)
- {
- strcpy (message + msglen, search_string);
- msglen += searchlen;
- }
-
- strcpy (message + msglen, "': ");
-
- rl_message ("%s", message);
- free (message);
- (*rl_redisplay_function) ();
-}
-
-/* Search through the history looking for an interactively typed string.
- This is analogous to i-search. We start the search in the current line.
- DIRECTION is which direction to search; >= 0 means forward, < 0 means
- backwards. */
-static int
-rl_search_history (direction, invoking_key)
- int direction, invoking_key;
-{
- /* The string that the user types in to search for. */
- char *search_string;
-
- /* The current length of SEARCH_STRING. */
- int search_string_index;
-
- /* The amount of space that SEARCH_STRING has allocated to it. */
- int search_string_size;
-
- /* The list of lines to search through. */
- char **lines, *allocated_line;
-
- /* The length of LINES. */
- int hlen;
-
- /* Where we get LINES from. */
- HIST_ENTRY **hlist;
-
- register int i;
- int orig_point, orig_mark, orig_line, last_found_line;
- int c, found, failed, sline_len;
- int n, wstart, wlen;
-#if defined (HANDLE_MULTIBYTE)
- char mb[MB_LEN_MAX];
-#endif
-
- /* The line currently being searched. */
- char *sline;
-
- /* Offset in that line. */
- int line_index;
-
- /* Non-zero if we are doing a reverse search. */
- int reverse;
-
- /* The list of characters which terminate the search, but are not
- subsequently executed. If the variable isearch-terminators has
- been set, we use that value, otherwise we use ESC and C-J. */
- char *isearch_terminators;
-
- RL_SETSTATE(RL_STATE_ISEARCH);
- orig_point = rl_point;
- orig_mark = rl_mark;
- last_found_line = orig_line = where_history ();
- reverse = direction < 0;
- hlist = history_list ();
- allocated_line = (char *)NULL;
-
- isearch_terminators = _rl_isearch_terminators ? _rl_isearch_terminators
- : default_isearch_terminators;
-
- /* Create an arrary of pointers to the lines that we want to search. */
- rl_maybe_replace_line ();
- i = 0;
- if (hlist)
- for (i = 0; hlist[i]; i++);
-
- /* Allocate space for this many lines, +1 for the current input line,
- and remember those lines. */
- lines = (char **)xmalloc ((1 + (hlen = i)) * sizeof (char *));
- for (i = 0; i < hlen; i++)
- lines[i] = hlist[i]->line;
-
- if (_rl_saved_line_for_history)
- lines[i] = _rl_saved_line_for_history->line;
- else
- {
- /* Keep track of this so we can free it. */
- allocated_line = (char *)xmalloc (1 + strlen (rl_line_buffer));
- strcpy (allocated_line, &rl_line_buffer[0]);
- lines[i] = allocated_line;
- }
-
- hlen++;
-
- /* The line where we start the search. */
- i = orig_line;
-
- rl_save_prompt ();
-
- /* Initialize search parameters. */
- search_string = (char *)xmalloc (search_string_size = 128);
- *search_string = '\0';
- search_string_index = 0;
- prev_line_found = (char *)0; /* XXX */
-
- /* Normalize DIRECTION into 1 or -1. */
- direction = (direction >= 0) ? 1 : -1;
-
- rl_display_search (search_string, reverse, -1);
-
- sline = rl_line_buffer;
- sline_len = strlen (sline);
- line_index = rl_point;
-
- found = failed = 0;
- for (;;)
- {
- rl_command_func_t *f = (rl_command_func_t *)NULL;
-
- /* Read a key and decide how to proceed. */
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- c = _rl_read_mbstring (c, mb, MB_LEN_MAX);
-#endif
-
- /* Translate the keys we do something with to opcodes. */
- if (c >= 0 && _rl_keymap[c].type == ISFUNC)
- {
- f = _rl_keymap[c].function;
-
- if (f == rl_reverse_search_history)
- c = reverse ? -1 : -2;
- else if (f == rl_forward_search_history)
- c = !reverse ? -1 : -2;
- else if (f == rl_rubout)
- c = -3;
- else if (c == CTRL ('G'))
- c = -4;
- else if (c == CTRL ('W')) /* XXX */
- c = -5;
- else if (c == CTRL ('Y')) /* XXX */
- c = -6;
- }
-
- /* The characters in isearch_terminators (set from the user-settable
- variable isearch-terminators) are used to terminate the search but
- not subsequently execute the character as a command. The default
- value is "\033\012" (ESC and C-J). */
- if (strchr (isearch_terminators, c))
- {
- /* ESC still terminates the search, but if there is pending
- input or if input arrives within 0.1 seconds (on systems
- with select(2)) it is used as a prefix character
- with rl_execute_next. WATCH OUT FOR THIS! This is intended
- to allow the arrow keys to be used like ^F and ^B are used
- to terminate the search and execute the movement command.
- XXX - since _rl_input_available depends on the application-
- settable keyboard timeout value, this could alternatively
- use _rl_input_queued(100000) */
- if (c == ESC && _rl_input_available ())
- rl_execute_next (ESC);
- break;
- }
-
-#define ENDSRCH_CHAR(c) \
- ((CTRL_CHAR (c) || META_CHAR (c) || (c) == RUBOUT) && ((c) != CTRL ('G')))
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- if (c >= 0 && strlen (mb) == 1 && ENDSRCH_CHAR (c))
- {
- /* This sets rl_pending_input to c; it will be picked up the next
- time rl_read_key is called. */
- rl_execute_next (c);
- break;
- }
- }
- else
-#endif
- if (c >= 0 && ENDSRCH_CHAR (c))
- {
- /* This sets rl_pending_input to c; it will be picked up the next
- time rl_read_key is called. */
- rl_execute_next (c);
- break;
- }
-
- switch (c)
- {
- case -1:
- if (search_string_index == 0)
- {
- if (last_isearch_string)
- {
- search_string_size = 64 + last_isearch_string_len;
- search_string = (char *)xrealloc (search_string, search_string_size);
- strcpy (search_string, last_isearch_string);
- search_string_index = last_isearch_string_len;
- rl_display_search (search_string, reverse, -1);
- break;
- }
- continue;
- }
- else if (reverse)
- --line_index;
- else if (line_index != sline_len)
- ++line_index;
- else
- rl_ding ();
- break;
-
- /* switch directions */
- case -2:
- direction = -direction;
- reverse = direction < 0;
- break;
-
- /* delete character from search string. */
- case -3: /* C-H, DEL */
- /* This is tricky. To do this right, we need to keep a
- stack of search positions for the current search, with
- sentinels marking the beginning and end. But this will
- do until we have a real isearch-undo. */
- if (search_string_index == 0)
- rl_ding ();
- else
- search_string[--search_string_index] = '\0';
-
- break;
-
- case -4: /* C-G */
- rl_replace_line (lines[orig_line], 0);
- rl_point = orig_point;
- rl_mark = orig_mark;
- rl_restore_prompt();
- rl_clear_message ();
- if (allocated_line)
- free (allocated_line);
- free (lines);
- RL_UNSETSTATE(RL_STATE_ISEARCH);
- return 0;
-
- case -5: /* C-W */
- /* skip over portion of line we already matched */
- wstart = rl_point + search_string_index;
- if (wstart >= rl_end)
- {
- rl_ding ();
- break;
- }
-
- /* if not in a word, move to one. */
- if (rl_alphabetic(rl_line_buffer[wstart]) == 0)
- {
- rl_ding ();
- break;
- }
- n = wstart;
- while (n < rl_end && rl_alphabetic(rl_line_buffer[n]))
- n++;
- wlen = n - wstart + 1;
- if (search_string_index + wlen + 1 >= search_string_size)
- {
- search_string_size += wlen + 1;
- search_string = (char *)xrealloc (search_string, search_string_size);
- }
- for (; wstart < n; wstart++)
- search_string[search_string_index++] = rl_line_buffer[wstart];
- search_string[search_string_index] = '\0';
- break;
-
- case -6: /* C-Y */
- /* skip over portion of line we already matched */
- wstart = rl_point + search_string_index;
- if (wstart >= rl_end)
- {
- rl_ding ();
- break;
- }
- n = rl_end - wstart + 1;
- if (search_string_index + n + 1 >= search_string_size)
- {
- search_string_size += n + 1;
- search_string = (char *)xrealloc (search_string, search_string_size);
- }
- for (n = wstart; n < rl_end; n++)
- search_string[search_string_index++] = rl_line_buffer[n];
- search_string[search_string_index] = '\0';
- break;
-
- default:
- /* Add character to search string and continue search. */
- if (search_string_index + 2 >= search_string_size)
- {
- search_string_size += 128;
- search_string = (char *)xrealloc (search_string, search_string_size);
- }
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int j, l;
- for (j = 0, l = strlen (mb); j < l; )
- search_string[search_string_index++] = mb[j++];
- }
- else
-#endif
- search_string[search_string_index++] = c;
- search_string[search_string_index] = '\0';
- break;
- }
-
- for (found = failed = 0;;)
- {
- int limit = sline_len - search_string_index + 1;
-
- /* Search the current line. */
- while (reverse ? (line_index >= 0) : (line_index < limit))
- {
- if (STREQN (search_string, sline + line_index, search_string_index))
- {
- found++;
- break;
- }
- else
- line_index += direction;
- }
- if (found)
- break;
-
- /* Move to the next line, but skip new copies of the line
- we just found and lines shorter than the string we're
- searching for. */
- do
- {
- /* Move to the next line. */
- i += direction;
-
- /* At limit for direction? */
- if (reverse ? (i < 0) : (i == hlen))
- {
- failed++;
- break;
- }
-
- /* We will need these later. */
- sline = lines[i];
- sline_len = strlen (sline);
- }
- while ((prev_line_found && STREQ (prev_line_found, lines[i])) ||
- (search_string_index > sline_len));
-
- if (failed)
- break;
-
- /* Now set up the line for searching... */
- line_index = reverse ? sline_len - search_string_index : 0;
- }
-
- if (failed)
- {
- /* We cannot find the search string. Ding the bell. */
- rl_ding ();
- i = last_found_line;
- continue; /* XXX - was break */
- }
-
- /* We have found the search string. Just display it. But don't
- actually move there in the history list until the user accepts
- the location. */
- if (found)
- {
- prev_line_found = lines[i];
- rl_replace_line (lines[i], 0);
- rl_point = line_index;
- last_found_line = i;
- rl_display_search (search_string, reverse, (i == orig_line) ? -1 : i);
- }
- }
-
- /* The searching is over. The user may have found the string that she
- was looking for, or else she may have exited a failing search. If
- LINE_INDEX is -1, then that shows that the string searched for was
- not found. We use this to determine where to place rl_point. */
-
- /* First put back the original state. */
- strcpy (rl_line_buffer, lines[orig_line]);
-
- rl_restore_prompt ();
-
- /* Save the search string for possible later use. */
- FREE (last_isearch_string);
- last_isearch_string = search_string;
- last_isearch_string_len = search_string_index;
-
- if (last_found_line < orig_line)
- rl_get_previous_history (orig_line - last_found_line, 0);
- else
- rl_get_next_history (last_found_line - orig_line, 0);
-
- /* If the string was not found, put point at the end of the last matching
- line. If last_found_line == orig_line, we didn't find any matching
- history lines at all, so put point back in its original position. */
- if (line_index < 0)
- {
- if (last_found_line == orig_line)
- line_index = orig_point;
- else
- line_index = strlen (rl_line_buffer);
- rl_mark = orig_mark;
- }
-
- rl_point = line_index;
- /* Don't worry about where to put the mark here; rl_get_previous_history
- and rl_get_next_history take care of it. */
-
- rl_clear_message ();
-
- FREE (allocated_line);
- free (lines);
-
- RL_UNSETSTATE(RL_STATE_ISEARCH);
-
- return 0;
-}
diff --git a/readline-4.3.orig/keymaps.c b/readline-4.3.orig/keymaps.c
deleted file mode 100644
index 12506d3..0000000
--- a/readline-4.3.orig/keymaps.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* keymaps.c -- Functions and keymaps for the GNU Readline library. */
-
-/* Copyright (C) 1988,1989 Free Software Foundation, Inc.
-
- This file is part of GNU Readline, a library for reading lines
- of text with interactive input and history editing.
-
- Readline is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- Readline is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Readline; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h> /* for FILE * definition for readline.h */
-
-#include "readline.h"
-#include "rlconf.h"
-
-#include "emacs_keymap.c"
-
-#if defined (VI_MODE)
-#include "vi_keymap.c"
-#endif
-
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Functions for manipulating Keymaps. */
-/* */
-/* **************************************************************** */
-
-
-/* Return a new, empty keymap.
- Free it with free() when you are done. */
-Keymap
-rl_make_bare_keymap ()
-{
- register int i;
- Keymap keymap = (Keymap)xmalloc (KEYMAP_SIZE * sizeof (KEYMAP_ENTRY));
-
- for (i = 0; i < KEYMAP_SIZE; i++)
- {
- keymap[i].type = ISFUNC;
- keymap[i].function = (rl_command_func_t *)NULL;
- }
-
- for (i = 'A'; i < ('Z' + 1); i++)
- {
- keymap[i].type = ISFUNC;
- keymap[i].function = rl_do_lowercase_version;
- }
-
- return (keymap);
-}
-
-/* Return a new keymap which is a copy of MAP. */
-Keymap
-rl_copy_keymap (map)
- Keymap map;
-{
- register int i;
- Keymap temp = rl_make_bare_keymap ();
-
- for (i = 0; i < KEYMAP_SIZE; i++)
- {
- temp[i].type = map[i].type;
- temp[i].function = map[i].function;
- }
- return (temp);
-}
-
-/* Return a new keymap with the printing characters bound to rl_insert,
- the uppercase Meta characters bound to run their lowercase equivalents,
- and the Meta digits bound to produce numeric arguments. */
-Keymap
-rl_make_keymap ()
-{
- register int i;
- Keymap newmap;
-
- newmap = rl_make_bare_keymap ();
-
- /* All ASCII printing characters are self-inserting. */
- for (i = ' '; i < 127; i++)
- newmap[i].function = rl_insert;
-
- newmap[TAB].function = rl_insert;
- newmap[RUBOUT].function = rl_rubout; /* RUBOUT == 127 */
- newmap[CTRL('H')].function = rl_rubout;
-
-#if KEYMAP_SIZE > 128
- /* Printing characters in some 8-bit character sets. */
- for (i = 128; i < 160; i++)
- newmap[i].function = rl_insert;
-
- /* ISO Latin-1 printing characters should self-insert. */
- for (i = 160; i < 256; i++)
- newmap[i].function = rl_insert;
-#endif /* KEYMAP_SIZE > 128 */
-
- return (newmap);
-}
-
-/* Free the storage associated with MAP. */
-void
-rl_discard_keymap (map)
- Keymap map;
-{
- int i;
-
- if (!map)
- return;
-
- for (i = 0; i < KEYMAP_SIZE; i++)
- {
- switch (map[i].type)
- {
- case ISFUNC:
- break;
-
- case ISKMAP:
- rl_discard_keymap ((Keymap)map[i].function);
- break;
-
- case ISMACR:
- free ((char *)map[i].function);
- break;
- }
- }
-}
diff --git a/readline-4.3.orig/keymaps.h b/readline-4.3.orig/keymaps.h
deleted file mode 100644
index 66fa2a5..0000000
--- a/readline-4.3.orig/keymaps.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* keymaps.h -- Manipulation of readline keymaps. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _KEYMAPS_H_
-#define _KEYMAPS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (READLINE_LIBRARY)
-# include "rlstdc.h"
-# include "chardefs.h"
-# include "rltypedefs.h"
-#else
-# include <readline/rlstdc.h>
-# include <readline/chardefs.h>
-# include <readline/rltypedefs.h>
-#endif
-
-/* A keymap contains one entry for each key in the ASCII set.
- Each entry consists of a type and a pointer.
- FUNCTION is the address of a function to run, or the
- address of a keymap to indirect through.
- TYPE says which kind of thing FUNCTION is. */
-typedef struct _keymap_entry {
- char type;
- rl_command_func_t *function;
-} KEYMAP_ENTRY;
-
-/* This must be large enough to hold bindings for all of the characters
- in a desired character set (e.g, 128 for ASCII, 256 for ISO Latin-x,
- and so on) plus one for subsequence matching. */
-#define KEYMAP_SIZE 257
-#define ANYOTHERKEY KEYMAP_SIZE-1
-
-/* I wanted to make the above structure contain a union of:
- union { rl_command_func_t *function; struct _keymap_entry *keymap; } value;
- but this made it impossible for me to create a static array.
- Maybe I need C lessons. */
-
-typedef KEYMAP_ENTRY KEYMAP_ENTRY_ARRAY[KEYMAP_SIZE];
-typedef KEYMAP_ENTRY *Keymap;
-
-/* The values that TYPE can have in a keymap entry. */
-#define ISFUNC 0
-#define ISKMAP 1
-#define ISMACR 2
-
-extern KEYMAP_ENTRY_ARRAY emacs_standard_keymap, emacs_meta_keymap, emacs_ctlx_keymap;
-extern KEYMAP_ENTRY_ARRAY vi_insertion_keymap, vi_movement_keymap;
-
-/* Return a new, empty keymap.
- Free it with free() when you are done. */
-extern Keymap rl_make_bare_keymap PARAMS((void));
-
-/* Return a new keymap which is a copy of MAP. */
-extern Keymap rl_copy_keymap PARAMS((Keymap));
-
-/* Return a new keymap with the printing characters bound to rl_insert,
- the lowercase Meta characters bound to run their equivalents, and
- the Meta digits bound to produce numeric arguments. */
-extern Keymap rl_make_keymap PARAMS((void));
-
-/* Free the storage associated with a keymap. */
-extern void rl_discard_keymap PARAMS((Keymap));
-
-/* These functions actually appear in bind.c */
-
-/* Return the keymap corresponding to a given name. Names look like
- `emacs' or `emacs-meta' or `vi-insert'. */
-extern Keymap rl_get_keymap_by_name PARAMS((const char *));
-
-/* Return the current keymap. */
-extern Keymap rl_get_keymap PARAMS((void));
-
-/* Set the current keymap to MAP. */
-extern void rl_set_keymap PARAMS((Keymap));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _KEYMAPS_H_ */
diff --git a/readline-4.3.orig/kill.c b/readline-4.3.orig/kill.c
deleted file mode 100644
index a616b92..0000000
--- a/readline-4.3.orig/kill.c
+++ /dev/null
@@ -1,652 +0,0 @@
-/* kill.c -- kill ring management. */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Killing Mechanism */
-/* */
-/* **************************************************************** */
-
-/* What we assume for a max number of kills. */
-#define DEFAULT_MAX_KILLS 10
-
-/* The real variable to look at to find out when to flush kills. */
-static int rl_max_kills = DEFAULT_MAX_KILLS;
-
-/* Where to store killed text. */
-static char **rl_kill_ring = (char **)NULL;
-
-/* Where we are in the kill ring. */
-static int rl_kill_index;
-
-/* How many slots we have in the kill ring. */
-static int rl_kill_ring_length;
-
-static int _rl_copy_to_kill_ring PARAMS((char *, int));
-static int region_kill_internal PARAMS((int));
-static int _rl_copy_word_as_kill PARAMS((int, int));
-static int rl_yank_nth_arg_internal PARAMS((int, int, int));
-
-/* How to say that you only want to save a certain amount
- of kill material. */
-int
-rl_set_retained_kills (num)
- int num;
-{
- return 0;
-}
-
-/* Add TEXT to the kill ring, allocating a new kill ring slot as necessary.
- This uses TEXT directly, so the caller must not free it. If APPEND is
- non-zero, and the last command was a kill, the text is appended to the
- current kill ring slot, otherwise prepended. */
-static int
-_rl_copy_to_kill_ring (text, append)
- char *text;
- int append;
-{
- char *old, *new;
- int slot;
-
- /* First, find the slot to work with. */
- if (_rl_last_command_was_kill == 0)
- {
- /* Get a new slot. */
- if (rl_kill_ring == 0)
- {
- /* If we don't have any defined, then make one. */
- rl_kill_ring = (char **)
- xmalloc (((rl_kill_ring_length = 1) + 1) * sizeof (char *));
- rl_kill_ring[slot = 0] = (char *)NULL;
- }
- else
- {
- /* We have to add a new slot on the end, unless we have
- exceeded the max limit for remembering kills. */
- slot = rl_kill_ring_length;
- if (slot == rl_max_kills)
- {
- register int i;
- free (rl_kill_ring[0]);
- for (i = 0; i < slot; i++)
- rl_kill_ring[i] = rl_kill_ring[i + 1];
- }
- else
- {
- slot = rl_kill_ring_length += 1;
- rl_kill_ring = (char **)xrealloc (rl_kill_ring, slot * sizeof (char *));
- }
- rl_kill_ring[--slot] = (char *)NULL;
- }
- }
- else
- slot = rl_kill_ring_length - 1;
-
- /* If the last command was a kill, prepend or append. */
- if (_rl_last_command_was_kill && rl_editing_mode != vi_mode)
- {
- old = rl_kill_ring[slot];
- new = (char *)xmalloc (1 + strlen (old) + strlen (text));
-
- if (append)
- {
- strcpy (new, old);
- strcat (new, text);
- }
- else
- {
- strcpy (new, text);
- strcat (new, old);
- }
- free (old);
- free (text);
- rl_kill_ring[slot] = new;
- }
- else
- rl_kill_ring[slot] = text;
-
- rl_kill_index = slot;
- return 0;
-}
-
-/* The way to kill something. This appends or prepends to the last
- kill, if the last command was a kill command. if FROM is less
- than TO, then the text is appended, otherwise prepended. If the
- last command was not a kill command, then a new slot is made for
- this kill. */
-int
-rl_kill_text (from, to)
- int from, to;
-{
- char *text;
-
- /* Is there anything to kill? */
- if (from == to)
- {
- _rl_last_command_was_kill++;
- return 0;
- }
-
- text = rl_copy_text (from, to);
-
- /* Delete the copied text from the line. */
- rl_delete_text (from, to);
-
- _rl_copy_to_kill_ring (text, from < to);
-
- _rl_last_command_was_kill++;
- return 0;
-}
-
-/* Now REMEMBER! In order to do prepending or appending correctly, kill
- commands always make rl_point's original position be the FROM argument,
- and rl_point's extent be the TO argument. */
-
-/* **************************************************************** */
-/* */
-/* Killing Commands */
-/* */
-/* **************************************************************** */
-
-/* Delete the word at point, saving the text in the kill ring. */
-int
-rl_kill_word (count, key)
- int count, key;
-{
- int orig_point;
-
- if (count < 0)
- return (rl_backward_kill_word (-count, key));
- else
- {
- orig_point = rl_point;
- rl_forward_word (count, key);
-
- if (rl_point != orig_point)
- rl_kill_text (orig_point, rl_point);
-
- rl_point = orig_point;
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Rubout the word before point, placing it on the kill ring. */
-int
-rl_backward_kill_word (count, ignore)
- int count, ignore;
-{
- int orig_point;
-
- if (count < 0)
- return (rl_kill_word (-count, ignore));
- else
- {
- orig_point = rl_point;
- rl_backward_word (count, ignore);
-
- if (rl_point != orig_point)
- rl_kill_text (orig_point, rl_point);
-
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Kill from here to the end of the line. If DIRECTION is negative, kill
- back to the line start instead. */
-int
-rl_kill_line (direction, ignore)
- int direction, ignore;
-{
- int orig_point;
-
- if (direction < 0)
- return (rl_backward_kill_line (1, ignore));
- else
- {
- orig_point = rl_point;
- rl_end_of_line (1, ignore);
- if (orig_point != rl_point)
- rl_kill_text (orig_point, rl_point);
- rl_point = orig_point;
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Kill backwards to the start of the line. If DIRECTION is negative, kill
- forwards to the line end instead. */
-int
-rl_backward_kill_line (direction, ignore)
- int direction, ignore;
-{
- int orig_point;
-
- if (direction < 0)
- return (rl_kill_line (1, ignore));
- else
- {
- if (!rl_point)
- rl_ding ();
- else
- {
- orig_point = rl_point;
- rl_beg_of_line (1, ignore);
- if (rl_point != orig_point)
- rl_kill_text (orig_point, rl_point);
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- }
- return 0;
-}
-
-/* Kill the whole line, no matter where point is. */
-int
-rl_kill_full_line (count, ignore)
- int count, ignore;
-{
- rl_begin_undo_group ();
- rl_point = 0;
- rl_kill_text (rl_point, rl_end);
- rl_mark = 0;
- rl_end_undo_group ();
- return 0;
-}
-
-/* The next two functions mimic unix line editing behaviour, except they
- save the deleted text on the kill ring. This is safer than not saving
- it, and since we have a ring, nobody should get screwed. */
-
-/* This does what C-w does in Unix. We can't prevent people from
- using behaviour that they expect. */
-int
-rl_unix_word_rubout (count, key)
- int count, key;
-{
- int orig_point;
-
- if (rl_point == 0)
- rl_ding ();
- else
- {
- orig_point = rl_point;
- if (count <= 0)
- count = 1;
-
- while (count--)
- {
- while (rl_point && whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
-
- while (rl_point && (whitespace (rl_line_buffer[rl_point - 1]) == 0))
- rl_point--;
- }
-
- rl_kill_text (orig_point, rl_point);
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Here is C-u doing what Unix does. You don't *have* to use these
- key-bindings. We have a choice of killing the entire line, or
- killing from where we are to the start of the line. We choose the
- latter, because if you are a Unix weenie, then you haven't backspaced
- into the line at all, and if you aren't, then you know what you are
- doing. */
-int
-rl_unix_line_discard (count, key)
- int count, key;
-{
- if (rl_point == 0)
- rl_ding ();
- else
- {
- rl_kill_text (rl_point, 0);
- rl_point = 0;
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Copy the text in the `region' to the kill ring. If DELETE is non-zero,
- delete the text from the line as well. */
-static int
-region_kill_internal (delete)
- int delete;
-{
- char *text;
-
- if (rl_mark != rl_point)
- {
- text = rl_copy_text (rl_point, rl_mark);
- if (delete)
- rl_delete_text (rl_point, rl_mark);
- _rl_copy_to_kill_ring (text, rl_point < rl_mark);
- }
-
- _rl_last_command_was_kill++;
- return 0;
-}
-
-/* Copy the text in the region to the kill ring. */
-int
-rl_copy_region_to_kill (count, ignore)
- int count, ignore;
-{
- return (region_kill_internal (0));
-}
-
-/* Kill the text between the point and mark. */
-int
-rl_kill_region (count, ignore)
- int count, ignore;
-{
- int r, npoint;
-
- npoint = (rl_point < rl_mark) ? rl_point : rl_mark;
- r = region_kill_internal (1);
- _rl_fix_point (1);
- rl_point = npoint;
- return r;
-}
-
-/* Copy COUNT words to the kill ring. DIR says which direction we look
- to find the words. */
-static int
-_rl_copy_word_as_kill (count, dir)
- int count, dir;
-{
- int om, op, r;
-
- om = rl_mark;
- op = rl_point;
-
- if (dir > 0)
- rl_forward_word (count, 0);
- else
- rl_backward_word (count, 0);
-
- rl_mark = rl_point;
-
- if (dir > 0)
- rl_backward_word (count, 0);
- else
- rl_forward_word (count, 0);
-
- r = region_kill_internal (0);
-
- rl_mark = om;
- rl_point = op;
-
- return r;
-}
-
-int
-rl_copy_forward_word (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_copy_backward_word (-count, key));
-
- return (_rl_copy_word_as_kill (count, 1));
-}
-
-int
-rl_copy_backward_word (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_copy_forward_word (-count, key));
-
- return (_rl_copy_word_as_kill (count, -1));
-}
-
-/* Yank back the last killed text. This ignores arguments. */
-int
-rl_yank (count, ignore)
- int count, ignore;
-{
- if (rl_kill_ring == 0)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- _rl_set_mark_at_pos (rl_point);
- rl_insert_text (rl_kill_ring[rl_kill_index]);
- return 0;
-}
-
-/* If the last command was yank, or yank_pop, and the text just
- before point is identical to the current kill item, then
- delete that text from the line, rotate the index down, and
- yank back some other text. */
-int
-rl_yank_pop (count, key)
- int count, key;
-{
- int l, n;
-
- if (((rl_last_func != rl_yank_pop) && (rl_last_func != rl_yank)) ||
- !rl_kill_ring)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- l = strlen (rl_kill_ring[rl_kill_index]);
- n = rl_point - l;
- if (n >= 0 && STREQN (rl_line_buffer + n, rl_kill_ring[rl_kill_index], l))
- {
- rl_delete_text (n, rl_point);
- rl_point = n;
- rl_kill_index--;
- if (rl_kill_index < 0)
- rl_kill_index = rl_kill_ring_length - 1;
- rl_yank (1, 0);
- return 0;
- }
- else
- {
- _rl_abort_internal ();
- return -1;
- }
-}
-
-/* Yank the COUNTh argument from the previous history line, skipping
- HISTORY_SKIP lines before looking for the `previous line'. */
-static int
-rl_yank_nth_arg_internal (count, ignore, history_skip)
- int count, ignore, history_skip;
-{
- register HIST_ENTRY *entry;
- char *arg;
- int i, pos;
-
- pos = where_history ();
-
- if (history_skip)
- {
- for (i = 0; i < history_skip; i++)
- entry = previous_history ();
- }
-
- entry = previous_history ();
-
- history_set_pos (pos);
-
- if (entry == 0)
- {
- rl_ding ();
- return -1;
- }
-
- arg = history_arg_extract (count, count, entry->line);
- if (!arg || !*arg)
- {
- rl_ding ();
- return -1;
- }
-
- rl_begin_undo_group ();
-
- _rl_set_mark_at_pos (rl_point);
-
-#if defined (VI_MODE)
- /* Vi mode always inserts a space before yanking the argument, and it
- inserts it right *after* rl_point. */
- if (rl_editing_mode == vi_mode)
- {
- rl_vi_append_mode (1, ignore);
- rl_insert_text (" ");
- }
-#endif /* VI_MODE */
-
- rl_insert_text (arg);
- free (arg);
-
- rl_end_undo_group ();
- return 0;
-}
-
-/* Yank the COUNTth argument from the previous history line. */
-int
-rl_yank_nth_arg (count, ignore)
- int count, ignore;
-{
- return (rl_yank_nth_arg_internal (count, ignore, 0));
-}
-
-/* Yank the last argument from the previous history line. This `knows'
- how rl_yank_nth_arg treats a count of `$'. With an argument, this
- behaves the same as rl_yank_nth_arg. */
-int
-rl_yank_last_arg (count, key)
- int count, key;
-{
- static int history_skip = 0;
- static int explicit_arg_p = 0;
- static int count_passed = 1;
- static int direction = 1;
- static int undo_needed = 0;
- int retval;
-
- if (rl_last_func != rl_yank_last_arg)
- {
- history_skip = 0;
- explicit_arg_p = rl_explicit_arg;
- count_passed = count;
- direction = 1;
- }
- else
- {
- if (undo_needed)
- rl_do_undo ();
- if (count < 1)
- direction = -direction;
- history_skip += direction;
- if (history_skip < 0)
- history_skip = 0;
- }
-
- if (explicit_arg_p)
- retval = rl_yank_nth_arg_internal (count_passed, key, history_skip);
- else
- retval = rl_yank_nth_arg_internal ('$', key, history_skip);
-
- undo_needed = retval == 0;
- return retval;
-}
-
-/* A special paste command for users of Cygnus's cygwin32. */
-#if defined (__CYGWIN__)
-#include <windows.h>
-
-int
-rl_paste_from_clipboard (count, key)
- int count, key;
-{
- char *data, *ptr;
- int len;
-
- if (OpenClipboard (NULL) == 0)
- return (0);
-
- data = (char *)GetClipboardData (CF_TEXT);
- if (data)
- {
- ptr = strchr (data, '\r');
- if (ptr)
- {
- len = ptr - data;
- ptr = (char *)xmalloc (len + 1);
- ptr[len] = '\0';
- strncpy (ptr, data, len);
- }
- else
- ptr = data;
- _rl_set_mark_at_pos (rl_point);
- rl_insert_text (ptr);
- if (ptr != data)
- free (ptr);
- CloseClipboard ();
- }
- return (0);
-}
-#endif /* __CYGWIN__ */
diff --git a/readline-4.3.orig/macro.c b/readline-4.3.orig/macro.c
deleted file mode 100644
index b73c3af..0000000
--- a/readline-4.3.orig/macro.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* macro.c -- keyboard macros for readline. */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Hacking Keyboard Macros */
-/* */
-/* **************************************************************** */
-
-/* The currently executing macro string. If this is non-zero,
- then it is a malloc ()'ed string where input is coming from. */
-char *rl_executing_macro = (char *)NULL;
-
-/* The offset in the above string to the next character to be read. */
-static int executing_macro_index;
-
-/* The current macro string being built. Characters get stuffed
- in here by add_macro_char (). */
-static char *current_macro = (char *)NULL;
-
-/* The size of the buffer allocated to current_macro. */
-static int current_macro_size;
-
-/* The index at which characters are being added to current_macro. */
-static int current_macro_index;
-
-/* A structure used to save nested macro strings.
- It is a linked list of string/index for each saved macro. */
-struct saved_macro {
- struct saved_macro *next;
- char *string;
- int sindex;
-};
-
-/* The list of saved macros. */
-static struct saved_macro *macro_list = (struct saved_macro *)NULL;
-
-/* Set up to read subsequent input from STRING.
- STRING is free ()'ed when we are done with it. */
-void
-_rl_with_macro_input (string)
- char *string;
-{
- _rl_push_executing_macro ();
- rl_executing_macro = string;
- executing_macro_index = 0;
- RL_SETSTATE(RL_STATE_MACROINPUT);
-}
-
-/* Return the next character available from a macro, or 0 if
- there are no macro characters. */
-int
-_rl_next_macro_key ()
-{
- if (rl_executing_macro == 0)
- return (0);
-
- if (rl_executing_macro[executing_macro_index] == 0)
- {
- _rl_pop_executing_macro ();
- return (_rl_next_macro_key ());
- }
-
- return (rl_executing_macro[executing_macro_index++]);
-}
-
-/* Save the currently executing macro on a stack of saved macros. */
-void
-_rl_push_executing_macro ()
-{
- struct saved_macro *saver;
-
- saver = (struct saved_macro *)xmalloc (sizeof (struct saved_macro));
- saver->next = macro_list;
- saver->sindex = executing_macro_index;
- saver->string = rl_executing_macro;
-
- macro_list = saver;
-}
-
-/* Discard the current macro, replacing it with the one
- on the top of the stack of saved macros. */
-void
-_rl_pop_executing_macro ()
-{
- struct saved_macro *macro;
-
- FREE (rl_executing_macro);
- rl_executing_macro = (char *)NULL;
- executing_macro_index = 0;
-
- if (macro_list)
- {
- macro = macro_list;
- rl_executing_macro = macro_list->string;
- executing_macro_index = macro_list->sindex;
- macro_list = macro_list->next;
- free (macro);
- }
-
- if (rl_executing_macro == 0)
- RL_UNSETSTATE(RL_STATE_MACROINPUT);
-}
-
-/* Add a character to the macro being built. */
-void
-_rl_add_macro_char (c)
- int c;
-{
- if (current_macro_index + 1 >= current_macro_size)
- {
- if (current_macro == 0)
- current_macro = (char *)xmalloc (current_macro_size = 25);
- else
- current_macro = (char *)xrealloc (current_macro, current_macro_size += 25);
- }
-
- current_macro[current_macro_index++] = c;
- current_macro[current_macro_index] = '\0';
-}
-
-void
-_rl_kill_kbd_macro ()
-{
- if (current_macro)
- {
- free (current_macro);
- current_macro = (char *) NULL;
- }
- current_macro_size = current_macro_index = 0;
-
- FREE (rl_executing_macro);
- rl_executing_macro = (char *) NULL;
- executing_macro_index = 0;
-
- RL_UNSETSTATE(RL_STATE_MACRODEF);
-}
-
-/* Begin defining a keyboard macro.
- Keystrokes are recorded as they are executed.
- End the definition with rl_end_kbd_macro ().
- If a numeric argument was explicitly typed, then append this
- definition to the end of the existing macro, and start by
- re-executing the existing macro. */
-int
-rl_start_kbd_macro (ignore1, ignore2)
- int ignore1, ignore2;
-{
- if (RL_ISSTATE (RL_STATE_MACRODEF))
- {
- _rl_abort_internal ();
- return -1;
- }
-
- if (rl_explicit_arg)
- {
- if (current_macro)
- _rl_with_macro_input (savestring (current_macro));
- }
- else
- current_macro_index = 0;
-
- RL_SETSTATE(RL_STATE_MACRODEF);
- return 0;
-}
-
-/* Stop defining a keyboard macro.
- A numeric argument says to execute the macro right now,
- that many times, counting the definition as the first time. */
-int
-rl_end_kbd_macro (count, ignore)
- int count, ignore;
-{
- if (RL_ISSTATE (RL_STATE_MACRODEF) == 0)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- current_macro_index -= rl_key_sequence_length - 1;
- current_macro[current_macro_index] = '\0';
-
- RL_UNSETSTATE(RL_STATE_MACRODEF);
-
- return (rl_call_last_kbd_macro (--count, 0));
-}
-
-/* Execute the most recently defined keyboard macro.
- COUNT says how many times to execute it. */
-int
-rl_call_last_kbd_macro (count, ignore)
- int count, ignore;
-{
- if (current_macro == 0)
- _rl_abort_internal ();
-
- if (RL_ISSTATE (RL_STATE_MACRODEF))
- {
- rl_ding (); /* no recursive macros */
- current_macro[--current_macro_index] = '\0'; /* erase this char */
- return 0;
- }
-
- while (count--)
- _rl_with_macro_input (savestring (current_macro));
- return 0;
-}
-
-void
-rl_push_macro_input (macro)
- char *macro;
-{
- _rl_with_macro_input (macro);
-}
diff --git a/readline-4.3.orig/mbutil.c b/readline-4.3.orig/mbutil.c
deleted file mode 100644
index 50302f0..0000000
--- a/readline-4.3.orig/mbutil.c
+++ /dev/null
@@ -1,337 +0,0 @@
-/* mbutil.c -- readline multibyte character utility functions */
-
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include "posixjmp.h"
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-#include <ctype.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#if defined (TIOCSTAT_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* TIOCSTAT_IN_SYS_IOCTL */
-
-/* Some standard library routines. */
-#include "readline.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* Declared here so it can be shared between the readline and history
- libraries. */
-#if defined (HANDLE_MULTIBYTE)
-int rl_byte_oriented = 0;
-#else
-int rl_byte_oriented = 1;
-#endif
-
-/* **************************************************************** */
-/* */
-/* Multibyte Character Utility Functions */
-/* */
-/* **************************************************************** */
-
-#if defined(HANDLE_MULTIBYTE)
-
-static int
-_rl_find_next_mbchar_internal (string, seed, count, find_non_zero)
- char *string;
- int seed, count, find_non_zero;
-{
- size_t tmp = 0;
- mbstate_t ps;
- int point = 0;
- wchar_t wc;
-
- memset(&ps, 0, sizeof (mbstate_t));
- if (seed < 0)
- seed = 0;
- if (count <= 0)
- return seed;
-
- point = seed + _rl_adjust_point(string, seed, &ps);
- /* if this is true, means that seed was not pointed character
- started byte. So correct the point and consume count */
- if (seed < point)
- count --;
-
- while (count > 0)
- {
- tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps);
- if ((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
- {
- /* invalid bytes. asume a byte represents a character */
- point++;
- count--;
- /* reset states. */
- memset(&ps, 0, sizeof(mbstate_t));
- }
- else if (tmp == (size_t)0)
- /* found '\0' char */
- break;
- else
- {
- /* valid bytes */
- point += tmp;
- if (find_non_zero)
- {
- if (wcwidth (wc) == 0)
- continue;
- else
- count--;
- }
- else
- count--;
- }
- }
-
- if (find_non_zero)
- {
- tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
- while (wcwidth (wc) == 0)
- {
- point += tmp;
- tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
- if (tmp == (size_t)(0) || tmp == (size_t)(-1) || tmp == (size_t)(-2))
- break;
- }
- }
- return point;
-}
-
-static int
-_rl_find_prev_mbchar_internal (string, seed, find_non_zero)
- char *string;
- int seed, find_non_zero;
-{
- mbstate_t ps;
- int prev, non_zero_prev, point, length;
- size_t tmp;
- wchar_t wc;
-
- memset(&ps, 0, sizeof(mbstate_t));
- length = strlen(string);
-
- if (seed < 0)
- return 0;
- else if (length < seed)
- return length;
-
- prev = non_zero_prev = point = 0;
- while (point < seed)
- {
- tmp = mbrtowc (&wc, string + point, length - point, &ps);
- if ((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
- {
- /* in this case, bytes are invalid or shorted to compose
- multibyte char, so assume that the first byte represents
- a single character anyway. */
- tmp = 1;
- /* clear the state of the byte sequence, because
- in this case effect of mbstate is undefined */
- memset(&ps, 0, sizeof (mbstate_t));
- }
- else if (tmp == 0)
- break; /* Found '\0' char. Can this happen? */
- else
- {
- if (find_non_zero)
- {
- if (wcwidth (wc) != 0)
- prev = point;
- }
- else
- prev = point;
- }
-
- point += tmp;
- }
-
- return prev;
-}
-
-/* return the number of bytes parsed from the multibyte sequence starting
- at src, if a non-L'\0' wide character was recognized. It returns 0,
- if a L'\0' wide character was recognized. It returns (size_t)(-1),
- if an invalid multibyte sequence was encountered. It returns (size_t)(-2)
- if it couldn't parse a complete multibyte character. */
-int
-_rl_get_char_len (src, ps)
- char *src;
- mbstate_t *ps;
-{
- size_t tmp;
-
- tmp = mbrlen((const char *)src, (size_t)strlen (src), ps);
- if (tmp == (size_t)(-2))
- {
- /* shorted to compose multibyte char */
- memset (ps, 0, sizeof(mbstate_t));
- return -2;
- }
- else if (tmp == (size_t)(-1))
- {
- /* invalid to compose multibyte char */
- /* initialize the conversion state */
- memset (ps, 0, sizeof(mbstate_t));
- return -1;
- }
- else if (tmp == (size_t)0)
- return 0;
- else
- return (int)tmp;
-}
-
-/* compare the specified two characters. If the characters matched,
- return 1. Otherwise return 0. */
-int
-_rl_compare_chars (buf1, pos1, ps1, buf2, pos2, ps2)
- char *buf1, *buf2;
- mbstate_t *ps1, *ps2;
- int pos1, pos2;
-{
- int i, w1, w2;
-
- if ((w1 = _rl_get_char_len (&buf1[pos1], ps1)) <= 0 ||
- (w2 = _rl_get_char_len (&buf2[pos2], ps2)) <= 0 ||
- (w1 != w2) ||
- (buf1[pos1] != buf2[pos2]))
- return 0;
-
- for (i = 1; i < w1; i++)
- if (buf1[pos1+i] != buf2[pos2+i])
- return 0;
-
- return 1;
-}
-
-/* adjust pointed byte and find mbstate of the point of string.
- adjusted point will be point <= adjusted_point, and returns
- differences of the byte(adjusted_point - point).
- if point is invalied (point < 0 || more than string length),
- it returns -1 */
-int
-_rl_adjust_point(string, point, ps)
- char *string;
- int point;
- mbstate_t *ps;
-{
- size_t tmp = 0;
- int length;
- int pos = 0;
-
- length = strlen(string);
- if (point < 0)
- return -1;
- if (length < point)
- return -1;
-
- while (pos < point)
- {
- tmp = mbrlen (string + pos, length - pos, ps);
- if((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
- {
- /* in this case, bytes are invalid or shorted to compose
- multibyte char, so assume that the first byte represents
- a single character anyway. */
- pos++;
- /* clear the state of the byte sequence, because
- in this case effect of mbstate is undefined */
- memset (ps, 0, sizeof (mbstate_t));
- }
- else
- pos += tmp;
- }
-
- return (pos - point);
-}
-
-int
-_rl_is_mbchar_matched (string, seed, end, mbchar, length)
- char *string;
- int seed, end;
- char *mbchar;
- int length;
-{
- int i;
-
- if ((end - seed) < length)
- return 0;
-
- for (i = 0; i < length; i++)
- if (string[seed + i] != mbchar[i])
- return 0;
- return 1;
-}
-#endif /* HANDLE_MULTIBYTE */
-
-/* Find next `count' characters started byte point of the specified seed.
- If flags is MB_FIND_NONZERO, we look for non-zero-width multibyte
- characters. */
-#undef _rl_find_next_mbchar
-int
-_rl_find_next_mbchar (string, seed, count, flags)
- char *string;
- int seed, count, flags;
-{
-#if defined (HANDLE_MULTIBYTE)
- return _rl_find_next_mbchar_internal (string, seed, count, flags);
-#else
- return (seed + count);
-#endif
-}
-
-/* Find previous character started byte point of the specified seed.
- Returned point will be point <= seed. If flags is MB_FIND_NONZERO,
- we look for non-zero-width multibyte characters. */
-#undef _rl_find_prev_mbchar
-int
-_rl_find_prev_mbchar (string, seed, flags)
- char *string;
- int seed, flags;
-{
-#if defined (HANDLE_MULTIBYTE)
- return _rl_find_prev_mbchar_internal (string, seed, flags);
-#else
- return ((seed == 0) ? seed : seed - 1);
-#endif
-}
diff --git a/readline-4.3.orig/misc.c b/readline-4.3.orig/misc.c
deleted file mode 100644
index f3775d3..0000000
--- a/readline-4.3.orig/misc.c
+++ /dev/null
@@ -1,496 +0,0 @@
-/* misc.c -- miscellaneous bindable readline functions. */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-static int rl_digit_loop PARAMS((void));
-static void _rl_history_set_point PARAMS((void));
-
-/* Forward declarations used in this file */
-void _rl_free_history_entry PARAMS((HIST_ENTRY *));
-
-/* If non-zero, rl_get_previous_history and rl_get_next_history attempt
- to preserve the value of rl_point from line to line. */
-int _rl_history_preserve_point = 0;
-
-/* Saved target point for when _rl_history_preserve_point is set. Special
- value of -1 means that point is at the end of the line. */
-int _rl_history_saved_point = -1;
-
-/* **************************************************************** */
-/* */
-/* Numeric Arguments */
-/* */
-/* **************************************************************** */
-
-/* Handle C-u style numeric args, as well as M--, and M-digits. */
-static int
-rl_digit_loop ()
-{
- int key, c, sawminus, sawdigits;
-
- rl_save_prompt ();
-
- RL_SETSTATE(RL_STATE_NUMERICARG);
- sawminus = sawdigits = 0;
- while (1)
- {
- if (rl_numeric_arg > 1000000)
- {
- sawdigits = rl_explicit_arg = rl_numeric_arg = 0;
- rl_ding ();
- rl_restore_prompt ();
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return 1;
- }
- rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg);
- RL_SETSTATE(RL_STATE_MOREINPUT);
- key = c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (c < 0)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- /* If we see a key bound to `universal-argument' after seeing digits,
- it ends the argument but is otherwise ignored. */
- if (_rl_keymap[c].type == ISFUNC &&
- _rl_keymap[c].function == rl_universal_argument)
- {
- if (sawdigits == 0)
- {
- rl_numeric_arg *= 4;
- continue;
- }
- else
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- key = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- rl_restore_prompt ();
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return (_rl_dispatch (key, _rl_keymap));
- }
- }
-
- c = UNMETA (c);
-
- if (_rl_digit_p (c))
- {
- rl_numeric_arg = rl_explicit_arg ? (rl_numeric_arg * 10) + c - '0' : c - '0';
- sawdigits = rl_explicit_arg = 1;
- }
- else if (c == '-' && rl_explicit_arg == 0)
- {
- rl_numeric_arg = sawminus = 1;
- rl_arg_sign = -1;
- }
- else
- {
- /* Make M-- command equivalent to M--1 command. */
- if (sawminus && rl_numeric_arg == 1 && rl_explicit_arg == 0)
- rl_explicit_arg = 1;
- rl_restore_prompt ();
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return (_rl_dispatch (key, _rl_keymap));
- }
- }
-
- /*NOTREACHED*/
-}
-
-/* Add the current digit to the argument in progress. */
-int
-rl_digit_argument (ignore, key)
- int ignore, key;
-{
- rl_execute_next (key);
- return (rl_digit_loop ());
-}
-
-/* What to do when you abort reading an argument. */
-int
-rl_discard_argument ()
-{
- rl_ding ();
- rl_clear_message ();
- _rl_init_argument ();
- return 0;
-}
-
-/* Create a default argument. */
-int
-_rl_init_argument ()
-{
- rl_numeric_arg = rl_arg_sign = 1;
- rl_explicit_arg = 0;
- return 0;
-}
-
-/* C-u, universal argument. Multiply the current argument by 4.
- Read a key. If the key has nothing to do with arguments, then
- dispatch on it. If the key is the abort character then abort. */
-int
-rl_universal_argument (count, key)
- int count, key;
-{
- rl_numeric_arg *= 4;
- return (rl_digit_loop ());
-}
-
-/* **************************************************************** */
-/* */
-/* History Utilities */
-/* */
-/* **************************************************************** */
-
-/* We already have a history library, and that is what we use to control
- the history features of readline. This is our local interface to
- the history mechanism. */
-
-/* While we are editing the history, this is the saved
- version of the original line. */
-HIST_ENTRY *_rl_saved_line_for_history = (HIST_ENTRY *)NULL;
-
-/* Set the history pointer back to the last entry in the history. */
-void
-_rl_start_using_history ()
-{
- using_history ();
- if (_rl_saved_line_for_history)
- _rl_free_history_entry (_rl_saved_line_for_history);
-
- _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
-}
-
-/* Free the contents (and containing structure) of a HIST_ENTRY. */
-void
-_rl_free_history_entry (entry)
- HIST_ENTRY *entry;
-{
- if (entry == 0)
- return;
- if (entry->line)
- free (entry->line);
- free (entry);
-}
-
-/* Perhaps put back the current line if it has changed. */
-int
-rl_maybe_replace_line ()
-{
- HIST_ENTRY *temp;
-
- temp = current_history ();
- /* If the current line has changed, save the changes. */
- if (temp && ((UNDO_LIST *)(temp->data) != rl_undo_list))
- {
- temp = replace_history_entry (where_history (), rl_line_buffer, (histdata_t)rl_undo_list);
- free (temp->line);
- free (temp);
- }
- return 0;
-}
-
-/* Restore the _rl_saved_line_for_history if there is one. */
-int
-rl_maybe_unsave_line ()
-{
- if (_rl_saved_line_for_history)
- {
- rl_replace_line (_rl_saved_line_for_history->line, 0);
- rl_undo_list = (UNDO_LIST *)_rl_saved_line_for_history->data;
- _rl_free_history_entry (_rl_saved_line_for_history);
- _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
- rl_point = rl_end; /* rl_replace_line sets rl_end */
- }
- else
- rl_ding ();
- return 0;
-}
-
-/* Save the current line in _rl_saved_line_for_history. */
-int
-rl_maybe_save_line ()
-{
- if (_rl_saved_line_for_history == 0)
- {
- _rl_saved_line_for_history = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
- _rl_saved_line_for_history->line = savestring (rl_line_buffer);
- _rl_saved_line_for_history->data = (char *)rl_undo_list;
- }
- return 0;
-}
-
-int
-_rl_free_saved_history_line ()
-{
- if (_rl_saved_line_for_history)
- {
- _rl_free_history_entry (_rl_saved_line_for_history);
- _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
- }
- return 0;
-}
-
-static void
-_rl_history_set_point ()
-{
- rl_point = (_rl_history_preserve_point && _rl_history_saved_point != -1)
- ? _rl_history_saved_point
- : rl_end;
- if (rl_point > rl_end)
- rl_point = rl_end;
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- rl_point = 0;
-#endif /* VI_MODE */
-
- if (rl_editing_mode == emacs_mode)
- rl_mark = (rl_point == rl_end ? 0 : rl_end);
-}
-
-void
-rl_replace_from_history (entry, flags)
- HIST_ENTRY *entry;
- int flags; /* currently unused */
-{
- rl_replace_line (entry->line, 0);
- rl_undo_list = (UNDO_LIST *)entry->data;
- rl_point = rl_end;
- rl_mark = 0;
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- {
- rl_point = 0;
- rl_mark = rl_end;
- }
-#endif
-}
-
-/* **************************************************************** */
-/* */
-/* History Commands */
-/* */
-/* **************************************************************** */
-
-/* Meta-< goes to the start of the history. */
-int
-rl_beginning_of_history (count, key)
- int count, key;
-{
- return (rl_get_previous_history (1 + where_history (), key));
-}
-
-/* Meta-> goes to the end of the history. (The current line). */
-int
-rl_end_of_history (count, key)
- int count, key;
-{
- rl_maybe_replace_line ();
- using_history ();
- rl_maybe_unsave_line ();
- return 0;
-}
-
-/* Move down to the next history line. */
-int
-rl_get_next_history (count, key)
- int count, key;
-{
- HIST_ENTRY *temp;
-
- if (count < 0)
- return (rl_get_previous_history (-count, key));
-
- if (count == 0)
- return 0;
-
- rl_maybe_replace_line ();
-
- /* either not saved by rl_newline or at end of line, so set appropriately. */
- if (_rl_history_saved_point == -1 && (rl_point || rl_end))
- _rl_history_saved_point = (rl_point == rl_end) ? -1 : rl_point;
-
- temp = (HIST_ENTRY *)NULL;
- while (count)
- {
- temp = next_history ();
- if (!temp)
- break;
- --count;
- }
-
- if (temp == 0)
- rl_maybe_unsave_line ();
- else
- {
- rl_replace_from_history (temp, 0);
- _rl_history_set_point ();
- }
- return 0;
-}
-
-/* Get the previous item out of our interactive history, making it the current
- line. If there is no previous history, just ding. */
-int
-rl_get_previous_history (count, key)
- int count, key;
-{
- HIST_ENTRY *old_temp, *temp;
-
- if (count < 0)
- return (rl_get_next_history (-count, key));
-
- if (count == 0)
- return 0;
-
- /* either not saved by rl_newline or at end of line, so set appropriately. */
- if (_rl_history_saved_point == -1 && (rl_point || rl_end))
- _rl_history_saved_point = (rl_point == rl_end) ? -1 : rl_point;
-
- /* If we don't have a line saved, then save this one. */
- rl_maybe_save_line ();
-
- /* If the current line has changed, save the changes. */
- rl_maybe_replace_line ();
-
- temp = old_temp = (HIST_ENTRY *)NULL;
- while (count)
- {
- temp = previous_history ();
- if (temp == 0)
- break;
-
- old_temp = temp;
- --count;
- }
-
- /* If there was a large argument, and we moved back to the start of the
- history, that is not an error. So use the last value found. */
- if (!temp && old_temp)
- temp = old_temp;
-
- if (temp == 0)
- rl_ding ();
- else
- {
- rl_replace_from_history (temp, 0);
- _rl_history_set_point ();
- }
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Editing Modes */
-/* */
-/* **************************************************************** */
-/* How to toggle back and forth between editing modes. */
-int
-rl_vi_editing_mode (count, key)
- int count, key;
-{
-#if defined (VI_MODE)
- _rl_set_insert_mode (RL_IM_INSERT, 1); /* vi mode ignores insert mode */
- rl_editing_mode = vi_mode;
- rl_vi_insertion_mode (1, key);
-#endif /* VI_MODE */
-
- return 0;
-}
-
-int
-rl_emacs_editing_mode (count, key)
- int count, key;
-{
- rl_editing_mode = emacs_mode;
- _rl_set_insert_mode (RL_IM_INSERT, 1); /* emacs mode default is insert mode */
- _rl_keymap = emacs_standard_keymap;
- return 0;
-}
-
-/* Function for the rest of the library to use to set insert/overwrite mode. */
-void
-_rl_set_insert_mode (im, force)
- int im, force;
-{
-#ifdef CURSOR_MODE
- _rl_set_cursor (im, force);
-#endif
-
- rl_insert_mode = im;
-}
-
-/* Toggle overwrite mode. A positive explicit argument selects overwrite
- mode. A negative or zero explicit argument selects insert mode. */
-int
-rl_overwrite_mode (count, key)
- int count, key;
-{
- if (rl_explicit_arg == 0)
- _rl_set_insert_mode (rl_insert_mode ^ 1, 0);
- else if (count > 0)
- _rl_set_insert_mode (RL_IM_OVERWRITE, 0);
- else
- _rl_set_insert_mode (RL_IM_INSERT, 0);
-
- return 0;
-}
diff --git a/readline-4.3.orig/nls.c b/readline-4.3.orig/nls.c
deleted file mode 100644
index 706c819..0000000
--- a/readline-4.3.orig/nls.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* nls.c -- skeletal internationalization code. */
-
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#include <stdio.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <ctype.h>
-
-#include "rldefs.h"
-#include "readline.h"
-#include "rlshell.h"
-#include "rlprivate.h"
-
-#if !defined (HAVE_SETLOCALE)
-/* A list of legal values for the LANG or LC_CTYPE environment variables.
- If a locale name in this list is the value for the LC_ALL, LC_CTYPE,
- or LANG environment variable (using the first of those with a value),
- readline eight-bit mode is enabled. */
-static char *legal_lang_values[] =
-{
- "iso88591",
- "iso88592",
- "iso88593",
- "iso88594",
- "iso88595",
- "iso88596",
- "iso88597",
- "iso88598",
- "iso88599",
- "iso885910",
- "koi8r",
- 0
-};
-
-static char *normalize_codeset PARAMS((char *));
-static char *find_codeset PARAMS((char *, size_t *));
-#endif /* !HAVE_SETLOCALE */
-
-/* Check for LC_ALL, LC_CTYPE, and LANG and use the first with a value
- to decide the defaults for 8-bit character input and output. Returns
- 1 if we set eight-bit mode. */
-int
-_rl_init_eightbit ()
-{
-/* If we have setlocale(3), just check the current LC_CTYPE category
- value, and go into eight-bit mode if it's not C or POSIX. */
-#if defined (HAVE_SETLOCALE)
- char *t;
-
- /* Set the LC_CTYPE locale category from environment variables. */
- t = setlocale (LC_CTYPE, "");
- if (t && *t && (t[0] != 'C' || t[1]) && (STREQ (t, "POSIX") == 0))
- {
- _rl_meta_flag = 1;
- _rl_convert_meta_chars_to_ascii = 0;
- _rl_output_meta_chars = 1;
- return (1);
- }
- else
- return (0);
-
-#else /* !HAVE_SETLOCALE */
- char *lspec, *t;
- int i;
-
- /* We don't have setlocale. Finesse it. Check the environment for the
- appropriate variables and set eight-bit mode if they have the right
- values. */
- lspec = sh_get_env_value ("LC_ALL");
- if (lspec == 0) lspec = sh_get_env_value ("LC_CTYPE");
- if (lspec == 0) lspec = sh_get_env_value ("LANG");
- if (lspec == 0 || (t = normalize_codeset (lspec)) == 0)
- return (0);
- for (i = 0; t && legal_lang_values[i]; i++)
- if (STREQ (t, legal_lang_values[i]))
- {
- _rl_meta_flag = 1;
- _rl_convert_meta_chars_to_ascii = 0;
- _rl_output_meta_chars = 1;
- break;
- }
- free (t);
- return (legal_lang_values[i] ? 1 : 0);
-
-#endif /* !HAVE_SETLOCALE */
-}
-
-#if !defined (HAVE_SETLOCALE)
-static char *
-normalize_codeset (codeset)
- char *codeset;
-{
- size_t namelen, i;
- int len, all_digits;
- char *wp, *retval;
-
- codeset = find_codeset (codeset, &namelen);
-
- if (codeset == 0)
- return (codeset);
-
- all_digits = 1;
- for (len = 0, i = 0; i < namelen; i++)
- {
- if (ISALNUM ((unsigned char)codeset[i]))
- {
- len++;
- all_digits &= _rl_digit_p (codeset[i]);
- }
- }
-
- retval = (char *)malloc ((all_digits ? 3 : 0) + len + 1);
- if (retval == 0)
- return ((char *)0);
-
- wp = retval;
- /* Add `iso' to beginning of an all-digit codeset */
- if (all_digits)
- {
- *wp++ = 'i';
- *wp++ = 's';
- *wp++ = 'o';
- }
-
- for (i = 0; i < namelen; i++)
- if (ISALPHA ((unsigned char)codeset[i]))
- *wp++ = _rl_to_lower (codeset[i]);
- else if (_rl_digit_p (codeset[i]))
- *wp++ = codeset[i];
- *wp = '\0';
-
- return retval;
-}
-
-/* Isolate codeset portion of locale specification. */
-static char *
-find_codeset (name, lenp)
- char *name;
- size_t *lenp;
-{
- char *cp, *language, *result;
-
- cp = language = name;
- result = (char *)0;
-
- while (*cp && *cp != '_' && *cp != '@' && *cp != '+' && *cp != ',')
- cp++;
-
- /* This does not make sense: language has to be specified. As
- an exception we allow the variable to contain only the codeset
- name. Perhaps there are funny codeset names. */
- if (language == cp)
- {
- *lenp = strlen (language);
- result = language;
- }
- else
- {
- /* Next is the territory. */
- if (*cp == '_')
- do
- ++cp;
- while (*cp && *cp != '.' && *cp != '@' && *cp != '+' && *cp != ',' && *cp != '_');
-
- /* Now, finally, is the codeset. */
- result = cp;
- if (*cp == '.')
- do
- ++cp;
- while (*cp && *cp != '@');
-
- if (cp - result > 2)
- {
- result++;
- *lenp = cp - result;
- }
- else
- {
- *lenp = strlen (language);
- result = language;
- }
- }
-
- return result;
-}
-#endif /* !HAVE_SETLOCALE */
diff --git a/readline-4.3.orig/parens.c b/readline-4.3.orig/parens.c
deleted file mode 100644
index 54ef1f3..0000000
--- a/readline-4.3.orig/parens.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* parens.c -- Implementation of matching parentheses feature. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#include "rlconf.h"
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#if defined (FD_SET) && !defined (HAVE_SELECT)
-# define HAVE_SELECT
-#endif
-
-#if defined (HAVE_SELECT)
-# include <sys/time.h>
-#endif /* HAVE_SELECT */
-#if defined (HAVE_SYS_SELECT_H)
-# include <sys/select.h>
-#endif
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strchr (), *strrchr ();
-#endif /* !strchr && !__STDC__ */
-
-#include "readline.h"
-#include "rlprivate.h"
-
-static int find_matching_open PARAMS((char *, int, int));
-
-/* Non-zero means try to blink the matching open parenthesis when the
- close parenthesis is inserted. */
-#if defined (HAVE_SELECT)
-int rl_blink_matching_paren = 1;
-#else /* !HAVE_SELECT */
-int rl_blink_matching_paren = 0;
-#endif /* !HAVE_SELECT */
-
-static int _paren_blink_usec = 500000;
-
-/* Change emacs_standard_keymap to have bindings for paren matching when
- ON_OR_OFF is 1, change them back to self_insert when ON_OR_OFF == 0. */
-void
-_rl_enable_paren_matching (on_or_off)
- int on_or_off;
-{
- if (on_or_off)
- { /* ([{ */
- rl_bind_key_in_map (')', rl_insert_close, emacs_standard_keymap);
- rl_bind_key_in_map (']', rl_insert_close, emacs_standard_keymap);
- rl_bind_key_in_map ('}', rl_insert_close, emacs_standard_keymap);
- }
- else
- { /* ([{ */
- rl_bind_key_in_map (')', rl_insert, emacs_standard_keymap);
- rl_bind_key_in_map (']', rl_insert, emacs_standard_keymap);
- rl_bind_key_in_map ('}', rl_insert, emacs_standard_keymap);
- }
-}
-
-int
-rl_set_paren_blink_timeout (u)
- int u;
-{
- int o;
-
- o = _paren_blink_usec;
- if (u > 0)
- _paren_blink_usec = u;
- return (o);
-}
-
-int
-rl_insert_close (count, invoking_key)
- int count, invoking_key;
-{
- if (rl_explicit_arg || !rl_blink_matching_paren)
- _rl_insert_char (count, invoking_key);
- else
- {
-#if defined (HAVE_SELECT)
- int orig_point, match_point, ready;
- struct timeval timer;
- fd_set readfds;
-
- _rl_insert_char (1, invoking_key);
- (*rl_redisplay_function) ();
- match_point =
- find_matching_open (rl_line_buffer, rl_point - 2, invoking_key);
-
- /* Emacs might message or ring the bell here, but I don't. */
- if (match_point < 0)
- return -1;
-
- FD_ZERO (&readfds);
- FD_SET (fileno (rl_instream), &readfds);
- timer.tv_sec = 0;
- timer.tv_usec = _paren_blink_usec;
-
- orig_point = rl_point;
- rl_point = match_point;
- (*rl_redisplay_function) ();
- ready = select (1, &readfds, (fd_set *)NULL, (fd_set *)NULL, &timer);
- rl_point = orig_point;
-#else /* !HAVE_SELECT */
- _rl_insert_char (count, invoking_key);
-#endif /* !HAVE_SELECT */
- }
- return 0;
-}
-
-static int
-find_matching_open (string, from, closer)
- char *string;
- int from, closer;
-{
- register int i;
- int opener, level, delimiter;
-
- switch (closer)
- {
- case ']': opener = '['; break;
- case '}': opener = '{'; break;
- case ')': opener = '('; break;
- default:
- return (-1);
- }
-
- level = 1; /* The closer passed in counts as 1. */
- delimiter = 0; /* Delimited state unknown. */
-
- for (i = from; i > -1; i--)
- {
- if (delimiter && (string[i] == delimiter))
- delimiter = 0;
- else if (rl_basic_quote_characters && strchr (rl_basic_quote_characters, string[i]))
- delimiter = string[i];
- else if (!delimiter && (string[i] == closer))
- level++;
- else if (!delimiter && (string[i] == opener))
- level--;
-
- if (!level)
- break;
- }
- return (i);
-}
diff --git a/readline-4.3.orig/posixdir.h b/readline-4.3.orig/posixdir.h
deleted file mode 100644
index 505e279..0000000
--- a/readline-4.3.orig/posixdir.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* posixdir.h -- Posix directory reading includes and defines. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* This file should be included instead of <dirent.h> or <sys/dir.h>. */
-
-#if !defined (_POSIXDIR_H_)
-#define _POSIXDIR_H_
-
-#if defined (HAVE_DIRENT_H)
-# include <dirent.h>
-# define D_NAMLEN(d) (strlen ((d)->d_name))
-#else
-# if defined (HAVE_SYS_NDIR_H)
-# include <sys/ndir.h>
-# endif
-# if defined (HAVE_SYS_DIR_H)
-# include <sys/dir.h>
-# endif
-# if defined (HAVE_NDIR_H)
-# include <ndir.h>
-# endif
-# if !defined (dirent)
-# define dirent direct
-# endif /* !dirent */
-# define D_NAMLEN(d) ((d)->d_namlen)
-#endif /* !HAVE_DIRENT_H */
-
-#if defined (STRUCT_DIRENT_HAS_D_INO) && !defined (STRUCT_DIRENT_HAS_D_FILENO)
-# define d_fileno d_ino
-#endif
-
-#if defined (_POSIX_SOURCE) && (!defined (STRUCT_DIRENT_HAS_D_INO) || defined (BROKEN_DIRENT_D_INO))
-/* Posix does not require that the d_ino field be present, and some
- systems do not provide it. */
-# define REAL_DIR_ENTRY(dp) 1
-#else
-# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
-#endif /* _POSIX_SOURCE */
-
-#endif /* !_POSIXDIR_H_ */
diff --git a/readline-4.3.orig/posixjmp.h b/readline-4.3.orig/posixjmp.h
deleted file mode 100644
index b52aa00..0000000
--- a/readline-4.3.orig/posixjmp.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* posixjmp.h -- wrapper for setjmp.h with changes for POSIX systems. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _POSIXJMP_H_
-#define _POSIXJMP_H_
-
-#include <setjmp.h>
-
-/* This *must* be included *after* config.h */
-
-#if defined (HAVE_POSIX_SIGSETJMP)
-# define procenv_t sigjmp_buf
-# if !defined (__OPENNT)
-# undef setjmp
-# define setjmp(x) sigsetjmp((x), 1)
-# undef longjmp
-# define longjmp(x, n) siglongjmp((x), (n))
-# endif /* !__OPENNT */
-#else
-# define procenv_t jmp_buf
-#endif
-
-#endif /* _POSIXJMP_H_ */
diff --git a/readline-4.3.orig/posixstat.h b/readline-4.3.orig/posixstat.h
deleted file mode 100644
index c93b528..0000000
--- a/readline-4.3.orig/posixstat.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* posixstat.h -- Posix stat(2) definitions for systems that
- don't have them. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* This file should be included instead of <sys/stat.h>.
- It relies on the local sys/stat.h to work though. */
-#if !defined (_POSIXSTAT_H_)
-#define _POSIXSTAT_H_
-
-#include <sys/stat.h>
-
-#if defined (STAT_MACROS_BROKEN)
-# undef S_ISBLK
-# undef S_ISCHR
-# undef S_ISDIR
-# undef S_ISFIFO
-# undef S_ISREG
-# undef S_ISLNK
-#endif /* STAT_MACROS_BROKEN */
-
-/* These are guaranteed to work only on isc386 */
-#if !defined (S_IFDIR) && !defined (S_ISDIR)
-# define S_IFDIR 0040000
-#endif /* !S_IFDIR && !S_ISDIR */
-#if !defined (S_IFMT)
-# define S_IFMT 0170000
-#endif /* !S_IFMT */
-
-/* Posix 1003.1 5.6.1.1 <sys/stat.h> file types */
-
-/* Some Posix-wannabe systems define _S_IF* macros instead of S_IF*, but
- do not provide the S_IS* macros that Posix requires. */
-
-#if defined (_S_IFMT) && !defined (S_IFMT)
-#define S_IFMT _S_IFMT
-#endif
-#if defined (_S_IFIFO) && !defined (S_IFIFO)
-#define S_IFIFO _S_IFIFO
-#endif
-#if defined (_S_IFCHR) && !defined (S_IFCHR)
-#define S_IFCHR _S_IFCHR
-#endif
-#if defined (_S_IFDIR) && !defined (S_IFDIR)
-#define S_IFDIR _S_IFDIR
-#endif
-#if defined (_S_IFBLK) && !defined (S_IFBLK)
-#define S_IFBLK _S_IFBLK
-#endif
-#if defined (_S_IFREG) && !defined (S_IFREG)
-#define S_IFREG _S_IFREG
-#endif
-#if defined (_S_IFLNK) && !defined (S_IFLNK)
-#define S_IFLNK _S_IFLNK
-#endif
-#if defined (_S_IFSOCK) && !defined (S_IFSOCK)
-#define S_IFSOCK _S_IFSOCK
-#endif
-
-/* Test for each symbol individually and define the ones necessary (some
- systems claiming Posix compatibility define some but not all). */
-
-#if defined (S_IFBLK) && !defined (S_ISBLK)
-#define S_ISBLK(m) (((m)&S_IFMT) == S_IFBLK) /* block device */
-#endif
-
-#if defined (S_IFCHR) && !defined (S_ISCHR)
-#define S_ISCHR(m) (((m)&S_IFMT) == S_IFCHR) /* character device */
-#endif
-
-#if defined (S_IFDIR) && !defined (S_ISDIR)
-#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */
-#endif
-
-#if defined (S_IFREG) && !defined (S_ISREG)
-#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) /* file */
-#endif
-
-#if defined (S_IFIFO) && !defined (S_ISFIFO)
-#define S_ISFIFO(m) (((m)&S_IFMT) == S_IFIFO) /* fifo - named pipe */
-#endif
-
-#if defined (S_IFLNK) && !defined (S_ISLNK)
-#define S_ISLNK(m) (((m)&S_IFMT) == S_IFLNK) /* symbolic link */
-#endif
-
-#if defined (S_IFSOCK) && !defined (S_ISSOCK)
-#define S_ISSOCK(m) (((m)&S_IFMT) == S_IFSOCK) /* socket */
-#endif
-
-/*
- * POSIX 1003.1 5.6.1.2 <sys/stat.h> File Modes
- */
-
-#if !defined (S_IRWXU)
-# if !defined (S_IREAD)
-# define S_IREAD 00400
-# define S_IWRITE 00200
-# define S_IEXEC 00100
-# endif /* S_IREAD */
-
-# if !defined (S_IRUSR)
-# define S_IRUSR S_IREAD /* read, owner */
-# define S_IWUSR S_IWRITE /* write, owner */
-# define S_IXUSR S_IEXEC /* execute, owner */
-
-# define S_IRGRP (S_IREAD >> 3) /* read, group */
-# define S_IWGRP (S_IWRITE >> 3) /* write, group */
-# define S_IXGRP (S_IEXEC >> 3) /* execute, group */
-
-# define S_IROTH (S_IREAD >> 6) /* read, other */
-# define S_IWOTH (S_IWRITE >> 6) /* write, other */
-# define S_IXOTH (S_IEXEC >> 6) /* execute, other */
-# endif /* !S_IRUSR */
-
-# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
-# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
-# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
-#endif /* !S_IRWXU */
-
-/* These are non-standard, but are used in builtins.c$symbolic_umask() */
-#define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH)
-#define S_IWUGO (S_IWUSR | S_IWGRP | S_IWOTH)
-#define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
-
-#endif /* _POSIXSTAT_H_ */
diff --git a/readline-4.3.orig/readline.c b/readline-4.3.orig/readline.c
deleted file mode 100644
index 28801f1..0000000
--- a/readline-4.3.orig/readline.c
+++ /dev/null
@@ -1,973 +0,0 @@
-/* readline.c -- a general facility for reading lines of input
- with emacs style editing and completion. */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include "posixstat.h"
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-# include <sys/file.h>
-#endif /* HAVE_SYS_FILE_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <stdio.h>
-#include "posixjmp.h"
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#if defined (__EMX__)
-# define INCL_DOSPROCESS
-# include <os2.h>
-#endif /* __EMX__ */
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#ifndef RL_LIBRARY_VERSION
-# define RL_LIBRARY_VERSION "4.3"
-#endif
-
-#ifndef RL_READLINE_VERSION
-# define RL_READLINE_VERSION 0x0403
-#endif
-
-extern void _rl_free_history_entry PARAMS((HIST_ENTRY *));
-
-/* Forward declarations used in this file. */
-static char *readline_internal PARAMS((void));
-static void readline_initialize_everything PARAMS((void));
-
-static void bind_arrow_keys_internal PARAMS((Keymap));
-static void bind_arrow_keys PARAMS((void));
-
-static void readline_default_bindings PARAMS((void));
-
-/* **************************************************************** */
-/* */
-/* Line editing input utility */
-/* */
-/* **************************************************************** */
-
-const char *rl_library_version = RL_LIBRARY_VERSION;
-
-int rl_readline_version = RL_READLINE_VERSION;
-
-/* True if this is `real' readline as opposed to some stub substitute. */
-int rl_gnu_readline_p = 1;
-
-/* A pointer to the keymap that is currently in use.
- By default, it is the standard emacs keymap. */
-Keymap _rl_keymap = emacs_standard_keymap;
-
-/* The current style of editing. */
-int rl_editing_mode = emacs_mode;
-
-/* The current insert mode: input (the default) or overwrite */
-int rl_insert_mode = RL_IM_DEFAULT;
-
-/* Non-zero if we called this function from _rl_dispatch(). It's present
- so functions can find out whether they were called from a key binding
- or directly from an application. */
-int rl_dispatching;
-
-/* Non-zero if the previous command was a kill command. */
-int _rl_last_command_was_kill = 0;
-
-/* The current value of the numeric argument specified by the user. */
-int rl_numeric_arg = 1;
-
-/* Non-zero if an argument was typed. */
-int rl_explicit_arg = 0;
-
-/* Temporary value used while generating the argument. */
-int rl_arg_sign = 1;
-
-/* Non-zero means we have been called at least once before. */
-static int rl_initialized;
-
-#if 0
-/* If non-zero, this program is running in an EMACS buffer. */
-static int running_in_emacs;
-#endif
-
-/* Flags word encapsulating the current readline state. */
-int rl_readline_state = RL_STATE_NONE;
-
-/* The current offset in the current input line. */
-int rl_point;
-
-/* Mark in the current input line. */
-int rl_mark;
-
-/* Length of the current input line. */
-int rl_end;
-
-/* Make this non-zero to return the current input_line. */
-int rl_done;
-
-/* The last function executed by readline. */
-rl_command_func_t *rl_last_func = (rl_command_func_t *)NULL;
-
-/* Top level environment for readline_internal (). */
-procenv_t readline_top_level;
-
-/* The streams we interact with. */
-FILE *_rl_in_stream, *_rl_out_stream;
-
-/* The names of the streams that we do input and output to. */
-FILE *rl_instream = (FILE *)NULL;
-FILE *rl_outstream = (FILE *)NULL;
-
-/* Non-zero means echo characters as they are read. Defaults to no echo;
- set to 1 if there is a controlling terminal, we can get its attributes,
- and the attributes include `echo'. Look at rltty.c:prepare_terminal_settings
- for the code that sets it. */
-int readline_echoing_p = 0;
-
-/* Current prompt. */
-char *rl_prompt = (char *)NULL;
-int rl_visible_prompt_length = 0;
-
-/* Set to non-zero by calling application if it has already printed rl_prompt
- and does not want readline to do it the first time. */
-int rl_already_prompted = 0;
-
-/* The number of characters read in order to type this complete command. */
-int rl_key_sequence_length = 0;
-
-/* If non-zero, then this is the address of a function to call just
- before readline_internal_setup () prints the first prompt. */
-rl_hook_func_t *rl_startup_hook = (rl_hook_func_t *)NULL;
-
-/* If non-zero, this is the address of a function to call just before
- readline_internal_setup () returns and readline_internal starts
- reading input characters. */
-rl_hook_func_t *rl_pre_input_hook = (rl_hook_func_t *)NULL;
-
-/* What we use internally. You should always refer to RL_LINE_BUFFER. */
-static char *the_line;
-
-/* The character that can generate an EOF. Really read from
- the terminal driver... just defaulted here. */
-int _rl_eof_char = CTRL ('D');
-
-/* Non-zero makes this the next keystroke to read. */
-int rl_pending_input = 0;
-
-/* Pointer to a useful terminal name. */
-const char *rl_terminal_name = (const char *)NULL;
-
-/* Non-zero means to always use horizontal scrolling in line display. */
-int _rl_horizontal_scroll_mode = 0;
-
-/* Non-zero means to display an asterisk at the starts of history lines
- which have been modified. */
-int _rl_mark_modified_lines = 0;
-
-/* The style of `bell' notification preferred. This can be set to NO_BELL,
- AUDIBLE_BELL, or VISIBLE_BELL. */
-int _rl_bell_preference = AUDIBLE_BELL;
-
-/* String inserted into the line by rl_insert_comment (). */
-char *_rl_comment_begin;
-
-/* Keymap holding the function currently being executed. */
-Keymap rl_executing_keymap;
-
-/* Non-zero means to erase entire line, including prompt, on empty input lines. */
-int rl_erase_empty_line = 0;
-
-/* Non-zero means to read only this many characters rather than up to a
- character bound to accept-line. */
-int rl_num_chars_to_read;
-
-/* Line buffer and maintenence. */
-char *rl_line_buffer = (char *)NULL;
-int rl_line_buffer_len = 0;
-
-/* Forward declarations used by the display, termcap, and history code. */
-
-/* **************************************************************** */
-/* */
-/* `Forward' declarations */
-/* */
-/* **************************************************************** */
-
-/* Non-zero means do not parse any lines other than comments and
- parser directives. */
-unsigned char _rl_parsing_conditionalized_out = 0;
-
-/* Non-zero means to convert characters with the meta bit set to
- escape-prefixed characters so we can indirect through
- emacs_meta_keymap or vi_escape_keymap. */
-int _rl_convert_meta_chars_to_ascii = 1;
-
-/* Non-zero means to output characters with the meta bit set directly
- rather than as a meta-prefixed escape sequence. */
-int _rl_output_meta_chars = 0;
-
-/* **************************************************************** */
-/* */
-/* Top Level Functions */
-/* */
-/* **************************************************************** */
-
-/* Non-zero means treat 0200 bit in terminal input as Meta bit. */
-int _rl_meta_flag = 0; /* Forward declaration */
-
-/* Set up the prompt and expand it. Called from readline() and
- rl_callback_handler_install (). */
-int
-rl_set_prompt (prompt)
- const char *prompt;
-{
- FREE (rl_prompt);
- rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
-
- rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
- return 0;
-}
-
-/* Read a line of input. Prompt with PROMPT. An empty PROMPT means
- none. A return value of NULL means that EOF was encountered. */
-char *
-readline (prompt)
- const char *prompt;
-{
- char *value;
-
- /* If we are at EOF return a NULL string. */
- if (rl_pending_input == EOF)
- {
- rl_clear_pending_input ();
- return ((char *)NULL);
- }
-
- rl_set_prompt (prompt);
-
- rl_initialize ();
- (*rl_prep_term_function) (_rl_meta_flag);
-
-#if defined (HANDLE_SIGNALS)
- rl_set_signals ();
-#endif
-
- value = readline_internal ();
- (*rl_deprep_term_function) ();
-
-#if defined (HANDLE_SIGNALS)
- rl_clear_signals ();
-#endif
-
- return (value);
-}
-
-#if defined (READLINE_CALLBACKS)
-# define STATIC_CALLBACK
-#else
-# define STATIC_CALLBACK static
-#endif
-
-STATIC_CALLBACK void
-readline_internal_setup ()
-{
- char *nprompt;
-
- _rl_in_stream = rl_instream;
- _rl_out_stream = rl_outstream;
-
- if (rl_startup_hook)
- (*rl_startup_hook) ();
-
- /* If we're not echoing, we still want to at least print a prompt, because
- rl_redisplay will not do it for us. If the calling application has a
- custom redisplay function, though, let that function handle it. */
- if (readline_echoing_p == 0 && rl_redisplay_function == rl_redisplay)
- {
- if (rl_prompt && rl_already_prompted == 0)
- {
- nprompt = _rl_strip_prompt (rl_prompt);
- fprintf (_rl_out_stream, "%s", nprompt);
- fflush (_rl_out_stream);
- free (nprompt);
- }
- }
- else
- {
- if (rl_prompt && rl_already_prompted)
- rl_on_new_line_with_prompt ();
- else
- rl_on_new_line ();
- (*rl_redisplay_function) ();
- }
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- rl_vi_insertion_mode (1, 0);
-#endif /* VI_MODE */
-
- if (rl_pre_input_hook)
- (*rl_pre_input_hook) ();
-}
-
-STATIC_CALLBACK char *
-readline_internal_teardown (eof)
- int eof;
-{
- char *temp;
- HIST_ENTRY *entry;
-
- /* Restore the original of this history line, iff the line that we
- are editing was originally in the history, AND the line has changed. */
- entry = current_history ();
-
- if (entry && rl_undo_list)
- {
- temp = savestring (the_line);
- rl_revert_line (1, 0);
- entry = replace_history_entry (where_history (), the_line, (histdata_t)NULL);
- _rl_free_history_entry (entry);
-
- strcpy (the_line, temp);
- free (temp);
- }
-
- /* At any rate, it is highly likely that this line has an undo list. Get
- rid of it now. */
- if (rl_undo_list)
- rl_free_undo_list ();
-
- /* Restore normal cursor, if available. */
- _rl_set_insert_mode (RL_IM_INSERT, 0);
-
- return (eof ? (char *)NULL : savestring (the_line));
-}
-
-STATIC_CALLBACK int
-#if defined (READLINE_CALLBACKS)
-readline_internal_char ()
-#else
-readline_internal_charloop ()
-#endif
-{
- static int lastc, eof_found;
- int c, code, lk;
-
- lastc = -1;
- eof_found = 0;
-
-#if !defined (READLINE_CALLBACKS)
- while (rl_done == 0)
- {
-#endif
- lk = _rl_last_command_was_kill;
-
- code = setjmp (readline_top_level);
-
- if (code)
- (*rl_redisplay_function) ();
-
- if (rl_pending_input == 0)
- {
- /* Then initialize the argument and number of keys read. */
- _rl_init_argument ();
- rl_key_sequence_length = 0;
- }
-
- RL_SETSTATE(RL_STATE_READCMD);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_READCMD);
-
- /* EOF typed to a non-blank line is a <NL>. */
- if (c == EOF && rl_end)
- c = NEWLINE;
-
- /* The character _rl_eof_char typed to blank line, and not as the
- previous character is interpreted as EOF. */
- if (((c == _rl_eof_char && lastc != c) || c == EOF) && !rl_end)
- {
-#if defined (READLINE_CALLBACKS)
- RL_SETSTATE(RL_STATE_DONE);
- return (rl_done = 1);
-#else
- eof_found = 1;
- break;
-#endif
- }
-
- lastc = c;
- _rl_dispatch ((unsigned char)c, _rl_keymap);
-
- /* If there was no change in _rl_last_command_was_kill, then no kill
- has taken place. Note that if input is pending we are reading
- a prefix command, so nothing has changed yet. */
- if (rl_pending_input == 0 && lk == _rl_last_command_was_kill)
- _rl_last_command_was_kill = 0;
-
-#if defined (VI_MODE)
- /* In vi mode, when you exit insert mode, the cursor moves back
- over the previous character. We explicitly check for that here. */
- if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)
- rl_vi_check ();
-#endif /* VI_MODE */
-
- if (rl_num_chars_to_read && rl_end >= rl_num_chars_to_read)
- {
- (*rl_redisplay_function) ();
- rl_newline (1, '\n');
- }
-
- if (rl_done == 0)
- (*rl_redisplay_function) ();
-
- /* If the application writer has told us to erase the entire line if
- the only character typed was something bound to rl_newline, do so. */
- if (rl_erase_empty_line && rl_done && rl_last_func == rl_newline &&
- rl_point == 0 && rl_end == 0)
- _rl_erase_entire_line ();
-
-#if defined (READLINE_CALLBACKS)
- return 0;
-#else
- }
-
- return (eof_found);
-#endif
-}
-
-#if defined (READLINE_CALLBACKS)
-static int
-readline_internal_charloop ()
-{
- int eof = 1;
-
- while (rl_done == 0)
- eof = readline_internal_char ();
- return (eof);
-}
-#endif /* READLINE_CALLBACKS */
-
-/* Read a line of input from the global rl_instream, doing output on
- the global rl_outstream.
- If rl_prompt is non-null, then that is our prompt. */
-static char *
-readline_internal ()
-{
- int eof;
-
- readline_internal_setup ();
- eof = readline_internal_charloop ();
- return (readline_internal_teardown (eof));
-}
-
-void
-_rl_init_line_state ()
-{
- rl_point = rl_end = rl_mark = 0;
- the_line = rl_line_buffer;
- the_line[0] = 0;
-}
-
-void
-_rl_set_the_line ()
-{
- the_line = rl_line_buffer;
-}
-
-/* Do the command associated with KEY in MAP.
- If the associated command is really a keymap, then read
- another key, and dispatch into that map. */
-int
-_rl_dispatch (key, map)
- register int key;
- Keymap map;
-{
- return _rl_dispatch_subseq (key, map, 0);
-}
-
-int
-_rl_dispatch_subseq (key, map, got_subseq)
- register int key;
- Keymap map;
- int got_subseq;
-{
- int r, newkey;
- char *macro;
- rl_command_func_t *func;
-
- if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)
- {
- if (map[ESC].type == ISKMAP)
- {
- if (RL_ISSTATE (RL_STATE_MACRODEF))
- _rl_add_macro_char (ESC);
- map = FUNCTION_TO_KEYMAP (map, ESC);
- key = UNMETA (key);
- rl_key_sequence_length += 2;
- return (_rl_dispatch (key, map));
- }
- else
- rl_ding ();
- return 0;
- }
-
- if (RL_ISSTATE (RL_STATE_MACRODEF))
- _rl_add_macro_char (key);
-
- r = 0;
- switch (map[key].type)
- {
- case ISFUNC:
- func = map[key].function;
- if (func)
- {
- /* Special case rl_do_lowercase_version (). */
- if (func == rl_do_lowercase_version)
- return (_rl_dispatch (_rl_to_lower (key), map));
-
- rl_executing_keymap = map;
-
-#if 0
- _rl_suppress_redisplay = (map[key].function == rl_insert) && _rl_input_available ();
-#endif
-
- rl_dispatching = 1;
- RL_SETSTATE(RL_STATE_DISPATCHING);
- r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
- RL_UNSETSTATE(RL_STATE_DISPATCHING);
- rl_dispatching = 0;
-
- /* If we have input pending, then the last command was a prefix
- command. Don't change the state of rl_last_func. Otherwise,
- remember the last command executed in this variable. */
- if (rl_pending_input == 0 && map[key].function != rl_digit_argument)
- rl_last_func = map[key].function;
- }
- else if (map[ANYOTHERKEY].function)
- {
- /* OK, there's no function bound in this map, but there is a
- shadow function that was overridden when the current keymap
- was created. Return -2 to note that. */
- _rl_unget_char (key);
- return -2;
- }
- else if (got_subseq)
- {
- /* Return -1 to note that we're in a subsequence, but we don't
- have a matching key, nor was one overridden. This means
- we need to back up the recursion chain and find the last
- subsequence that is bound to a function. */
- _rl_unget_char (key);
- return -1;
- }
- else
- {
- _rl_abort_internal ();
- return -1;
- }
- break;
-
- case ISKMAP:
- if (map[key].function != 0)
- {
-#if defined (VI_MODE)
- /* The only way this test will be true is if a subsequence has been
- bound starting with ESC, generally the arrow keys. What we do is
- check whether there's input in the queue, which there generally
- will be if an arrow key has been pressed, and, if there's not,
- just dispatch to (what we assume is) rl_vi_movement_mode right
- away. This is essentially an input test with a zero timeout. */
- if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap
- && _rl_input_queued (0) == 0)
- return (_rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)));
-#endif
-
- rl_key_sequence_length++;
-
- if (key == ESC)
- RL_SETSTATE(RL_STATE_METANEXT);
- RL_SETSTATE(RL_STATE_MOREINPUT);
- newkey = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- if (key == ESC)
- RL_UNSETSTATE(RL_STATE_METANEXT);
-
- if (newkey < 0)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- r = _rl_dispatch_subseq (newkey, FUNCTION_TO_KEYMAP (map, key), got_subseq || map[ANYOTHERKEY].function);
-
- if (r == -2)
- /* We didn't match anything, and the keymap we're indexed into
- shadowed a function previously bound to that prefix. Call
- the function. The recursive call to _rl_dispatch_subseq has
- already taken care of pushing any necessary input back onto
- the input queue with _rl_unget_char. */
- r = _rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key));
- else if (r && map[ANYOTHERKEY].function)
- {
- /* We didn't match (r is probably -1), so return something to
- tell the caller that it should try ANYOTHERKEY for an
- overridden function. */
- _rl_unget_char (key);
- return -2;
- }
- else if (r && got_subseq)
- {
- /* OK, back up the chain. */
- _rl_unget_char (key);
- return -1;
- }
- }
- else
- {
- _rl_abort_internal ();
- return -1;
- }
- break;
-
- case ISMACR:
- if (map[key].function != 0)
- {
- macro = savestring ((char *)map[key].function);
- _rl_with_macro_input (macro);
- return 0;
- }
- break;
- }
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
- _rl_vi_textmod_command (key))
- _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
-#endif
- return (r);
-}
-
-/* **************************************************************** */
-/* */
-/* Initializations */
-/* */
-/* **************************************************************** */
-
-/* Initialize readline (and terminal if not already). */
-int
-rl_initialize ()
-{
- /* If we have never been called before, initialize the
- terminal and data structures. */
- if (!rl_initialized)
- {
- RL_SETSTATE(RL_STATE_INITIALIZING);
- readline_initialize_everything ();
- RL_UNSETSTATE(RL_STATE_INITIALIZING);
- rl_initialized++;
- RL_SETSTATE(RL_STATE_INITIALIZED);
- }
-
- /* Initalize the current line information. */
- _rl_init_line_state ();
-
- /* We aren't done yet. We haven't even gotten started yet! */
- rl_done = 0;
- RL_UNSETSTATE(RL_STATE_DONE);
-
- /* Tell the history routines what is going on. */
- _rl_start_using_history ();
-
- /* Make the display buffer match the state of the line. */
- rl_reset_line_state ();
-
- /* No such function typed yet. */
- rl_last_func = (rl_command_func_t *)NULL;
-
- /* Parsing of key-bindings begins in an enabled state. */
- _rl_parsing_conditionalized_out = 0;
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- _rl_vi_initialize_line ();
-#endif
-
- /* Each line starts in insert mode (the default). */
- _rl_set_insert_mode (RL_IM_DEFAULT, 1);
-
- return 0;
-}
-
-#if 0
-#if defined (__EMX__)
-static void
-_emx_build_environ ()
-{
- TIB *tibp;
- PIB *pibp;
- char *t, **tp;
- int c;
-
- DosGetInfoBlocks (&tibp, &pibp);
- t = pibp->pib_pchenv;
- for (c = 1; *t; c++)
- t += strlen (t) + 1;
- tp = environ = (char **)xmalloc ((c + 1) * sizeof (char *));
- t = pibp->pib_pchenv;
- while (*t)
- {
- *tp++ = t;
- t += strlen (t) + 1;
- }
- *tp = 0;
-}
-#endif /* __EMX__ */
-#endif
-
-/* Initialize the entire state of the world. */
-static void
-readline_initialize_everything ()
-{
-#if 0
-#if defined (__EMX__)
- if (environ == 0)
- _emx_build_environ ();
-#endif
-#endif
-
-#if 0
- /* Find out if we are running in Emacs -- UNUSED. */
- running_in_emacs = sh_get_env_value ("EMACS") != (char *)0;
-#endif
-
- /* Set up input and output if they are not already set up. */
- if (!rl_instream)
- rl_instream = stdin;
-
- if (!rl_outstream)
- rl_outstream = stdout;
-
- /* Bind _rl_in_stream and _rl_out_stream immediately. These values
- may change, but they may also be used before readline_internal ()
- is called. */
- _rl_in_stream = rl_instream;
- _rl_out_stream = rl_outstream;
-
- /* Allocate data structures. */
- if (rl_line_buffer == 0)
- rl_line_buffer = (char *)xmalloc (rl_line_buffer_len = DEFAULT_BUFFER_SIZE);
-
- /* Initialize the terminal interface. */
- if (rl_terminal_name == 0)
- rl_terminal_name = sh_get_env_value ("TERM");
- _rl_init_terminal_io (rl_terminal_name);
-
- /* Bind tty characters to readline functions. */
- readline_default_bindings ();
-
- /* Initialize the function names. */
- rl_initialize_funmap ();
-
- /* Decide whether we should automatically go into eight-bit mode. */
- _rl_init_eightbit ();
-
- /* Read in the init file. */
- rl_read_init_file ((char *)NULL);
-
- /* XXX */
- if (_rl_horizontal_scroll_mode && _rl_term_autowrap)
- {
- _rl_screenwidth--;
- _rl_screenchars -= _rl_screenheight;
- }
-
- /* Override the effect of any `set keymap' assignments in the
- inputrc file. */
- rl_set_keymap_from_edit_mode ();
-
- /* Try to bind a common arrow key prefix, if not already bound. */
- bind_arrow_keys ();
-
- /* Enable the meta key, if this terminal has one. */
- if (_rl_enable_meta)
- _rl_enable_meta_key ();
-
- /* If the completion parser's default word break characters haven't
- been set yet, then do so now. */
- if (rl_completer_word_break_characters == (char *)NULL)
- rl_completer_word_break_characters = rl_basic_word_break_characters;
-}
-
-/* If this system allows us to look at the values of the regular
- input editing characters, then bind them to their readline
- equivalents, iff the characters are not bound to keymaps. */
-static void
-readline_default_bindings ()
-{
- rl_tty_set_default_bindings (_rl_keymap);
-}
-
-/* Bind some common arrow key sequences in MAP. */
-static void
-bind_arrow_keys_internal (map)
- Keymap map;
-{
- Keymap xkeymap;
-
- xkeymap = _rl_keymap;
- _rl_keymap = map;
-
-#if defined (__MSDOS__)
- _rl_bind_if_unbound ("\033[0A", rl_get_previous_history);
- _rl_bind_if_unbound ("\033[0B", rl_backward_char);
- _rl_bind_if_unbound ("\033[0C", rl_forward_char);
- _rl_bind_if_unbound ("\033[0D", rl_get_next_history);
-#endif
-
- _rl_bind_if_unbound ("\033[A", rl_get_previous_history);
- _rl_bind_if_unbound ("\033[B", rl_get_next_history);
- _rl_bind_if_unbound ("\033[C", rl_forward_char);
- _rl_bind_if_unbound ("\033[D", rl_backward_char);
- _rl_bind_if_unbound ("\033[H", rl_beg_of_line);
- _rl_bind_if_unbound ("\033[F", rl_end_of_line);
-
- _rl_bind_if_unbound ("\033OA", rl_get_previous_history);
- _rl_bind_if_unbound ("\033OB", rl_get_next_history);
- _rl_bind_if_unbound ("\033OC", rl_forward_char);
- _rl_bind_if_unbound ("\033OD", rl_backward_char);
- _rl_bind_if_unbound ("\033OH", rl_beg_of_line);
- _rl_bind_if_unbound ("\033OF", rl_end_of_line);
-
- _rl_keymap = xkeymap;
-}
-
-/* Try and bind the common arrow key prefixes after giving termcap and
- the inputrc file a chance to bind them and create `real' keymaps
- for the arrow key prefix. */
-static void
-bind_arrow_keys ()
-{
- bind_arrow_keys_internal (emacs_standard_keymap);
-
-#if defined (VI_MODE)
- bind_arrow_keys_internal (vi_movement_keymap);
- bind_arrow_keys_internal (vi_insertion_keymap);
-#endif
-}
-
-/* **************************************************************** */
-/* */
-/* Saving and Restoring Readline's state */
-/* */
-/* **************************************************************** */
-
-int
-rl_save_state (sp)
- struct readline_state *sp;
-{
- if (sp == 0)
- return -1;
-
- sp->point = rl_point;
- sp->end = rl_end;
- sp->mark = rl_mark;
- sp->buffer = rl_line_buffer;
- sp->buflen = rl_line_buffer_len;
- sp->ul = rl_undo_list;
- sp->prompt = rl_prompt;
-
- sp->rlstate = rl_readline_state;
- sp->done = rl_done;
- sp->kmap = _rl_keymap;
-
- sp->lastfunc = rl_last_func;
- sp->insmode = rl_insert_mode;
- sp->edmode = rl_editing_mode;
- sp->kseqlen = rl_key_sequence_length;
- sp->inf = rl_instream;
- sp->outf = rl_outstream;
- sp->pendingin = rl_pending_input;
- sp->macro = rl_executing_macro;
-
- sp->catchsigs = rl_catch_signals;
- sp->catchsigwinch = rl_catch_sigwinch;
-
- return (0);
-}
-
-int
-rl_restore_state (sp)
- struct readline_state *sp;
-{
- if (sp == 0)
- return -1;
-
- rl_point = sp->point;
- rl_end = sp->end;
- rl_mark = sp->mark;
- the_line = rl_line_buffer = sp->buffer;
- rl_line_buffer_len = sp->buflen;
- rl_undo_list = sp->ul;
- rl_prompt = sp->prompt;
-
- rl_readline_state = sp->rlstate;
- rl_done = sp->done;
- _rl_keymap = sp->kmap;
-
- rl_last_func = sp->lastfunc;
- rl_insert_mode = sp->insmode;
- rl_editing_mode = sp->edmode;
- rl_key_sequence_length = sp->kseqlen;
- rl_instream = sp->inf;
- rl_outstream = sp->outf;
- rl_pending_input = sp->pendingin;
- rl_executing_macro = sp->macro;
-
- rl_catch_signals = sp->catchsigs;
- rl_catch_sigwinch = sp->catchsigwinch;
-
- return (0);
-}
diff --git a/readline-4.3.orig/readline.h b/readline-4.3.orig/readline.h
deleted file mode 100644
index f11b3d0..0000000
--- a/readline-4.3.orig/readline.h
+++ /dev/null
@@ -1,799 +0,0 @@
-/* Readline.h -- the names of functions callable from within readline. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_READLINE_H_)
-#define _READLINE_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (READLINE_LIBRARY)
-# include "rlstdc.h"
-# include "rltypedefs.h"
-# include "keymaps.h"
-# include "tilde.h"
-#else
-# include <readline/rlstdc.h>
-# include <readline/rltypedefs.h>
-# include <readline/keymaps.h>
-# include <readline/tilde.h>
-#endif
-
-/* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION 0x0403 /* Readline 4.3 */
-#define RL_VERSION_MAJOR 4
-#define RL_VERSION_MINOR 3
-
-/* Readline data structures. */
-
-/* Maintaining the state of undo. We remember individual deletes and inserts
- on a chain of things to do. */
-
-/* The actions that undo knows how to undo. Notice that UNDO_DELETE means
- to insert some text, and UNDO_INSERT means to delete some text. I.e.,
- the code tells undo what to undo, not how to undo it. */
-enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
-
-/* What an element of THE_UNDO_LIST looks like. */
-typedef struct undo_list {
- struct undo_list *next;
- int start, end; /* Where the change took place. */
- char *text; /* The text to insert, if undoing a delete. */
- enum undo_code what; /* Delete, Insert, Begin, End. */
-} UNDO_LIST;
-
-/* The current undo list for RL_LINE_BUFFER. */
-extern UNDO_LIST *rl_undo_list;
-
-/* The data structure for mapping textual names to code addresses. */
-typedef struct _funmap {
- const char *name;
- rl_command_func_t *function;
-} FUNMAP;
-
-extern FUNMAP **funmap;
-
-/* **************************************************************** */
-/* */
-/* Functions available to bind to key sequences */
-/* */
-/* **************************************************************** */
-
-/* Bindable commands for numeric arguments. */
-extern int rl_digit_argument PARAMS((int, int));
-extern int rl_universal_argument PARAMS((int, int));
-
-/* Bindable commands for moving the cursor. */
-extern int rl_forward_byte PARAMS((int, int));
-extern int rl_forward_char PARAMS((int, int));
-extern int rl_forward PARAMS((int, int));
-extern int rl_backward_byte PARAMS((int, int));
-extern int rl_backward_char PARAMS((int, int));
-extern int rl_backward PARAMS((int, int));
-extern int rl_beg_of_line PARAMS((int, int));
-extern int rl_end_of_line PARAMS((int, int));
-extern int rl_forward_word PARAMS((int, int));
-extern int rl_backward_word PARAMS((int, int));
-extern int rl_refresh_line PARAMS((int, int));
-extern int rl_clear_screen PARAMS((int, int));
-extern int rl_arrow_keys PARAMS((int, int));
-
-/* Bindable commands for inserting and deleting text. */
-extern int rl_insert PARAMS((int, int));
-extern int rl_quoted_insert PARAMS((int, int));
-extern int rl_tab_insert PARAMS((int, int));
-extern int rl_newline PARAMS((int, int));
-extern int rl_do_lowercase_version PARAMS((int, int));
-extern int rl_rubout PARAMS((int, int));
-extern int rl_delete PARAMS((int, int));
-extern int rl_rubout_or_delete PARAMS((int, int));
-extern int rl_delete_horizontal_space PARAMS((int, int));
-extern int rl_delete_or_show_completions PARAMS((int, int));
-extern int rl_insert_comment PARAMS((int, int));
-
-/* Bindable commands for changing case. */
-extern int rl_upcase_word PARAMS((int, int));
-extern int rl_downcase_word PARAMS((int, int));
-extern int rl_capitalize_word PARAMS((int, int));
-
-/* Bindable commands for transposing characters and words. */
-extern int rl_transpose_words PARAMS((int, int));
-extern int rl_transpose_chars PARAMS((int, int));
-
-/* Bindable commands for searching within a line. */
-extern int rl_char_search PARAMS((int, int));
-extern int rl_backward_char_search PARAMS((int, int));
-
-/* Bindable commands for readline's interface to the command history. */
-extern int rl_beginning_of_history PARAMS((int, int));
-extern int rl_end_of_history PARAMS((int, int));
-extern int rl_get_next_history PARAMS((int, int));
-extern int rl_get_previous_history PARAMS((int, int));
-
-/* Bindable commands for managing the mark and region. */
-extern int rl_set_mark PARAMS((int, int));
-extern int rl_exchange_point_and_mark PARAMS((int, int));
-
-/* Bindable commands to set the editing mode (emacs or vi). */
-extern int rl_vi_editing_mode PARAMS((int, int));
-extern int rl_emacs_editing_mode PARAMS((int, int));
-
-/* Bindable commands to change the insert mode (insert or overwrite) */
-extern int rl_overwrite_mode PARAMS((int, int));
-
-/* Bindable commands for managing key bindings. */
-extern int rl_re_read_init_file PARAMS((int, int));
-extern int rl_dump_functions PARAMS((int, int));
-extern int rl_dump_macros PARAMS((int, int));
-extern int rl_dump_variables PARAMS((int, int));
-
-/* Bindable commands for word completion. */
-extern int rl_complete PARAMS((int, int));
-extern int rl_possible_completions PARAMS((int, int));
-extern int rl_insert_completions PARAMS((int, int));
-extern int rl_menu_complete PARAMS((int, int));
-
-/* Bindable commands for killing and yanking text, and managing the kill ring. */
-extern int rl_kill_word PARAMS((int, int));
-extern int rl_backward_kill_word PARAMS((int, int));
-extern int rl_kill_line PARAMS((int, int));
-extern int rl_backward_kill_line PARAMS((int, int));
-extern int rl_kill_full_line PARAMS((int, int));
-extern int rl_unix_word_rubout PARAMS((int, int));
-extern int rl_unix_line_discard PARAMS((int, int));
-extern int rl_copy_region_to_kill PARAMS((int, int));
-extern int rl_kill_region PARAMS((int, int));
-extern int rl_copy_forward_word PARAMS((int, int));
-extern int rl_copy_backward_word PARAMS((int, int));
-extern int rl_yank PARAMS((int, int));
-extern int rl_yank_pop PARAMS((int, int));
-extern int rl_yank_nth_arg PARAMS((int, int));
-extern int rl_yank_last_arg PARAMS((int, int));
-/* Not available unless __CYGWIN__ is defined. */
-#ifdef __CYGWIN__
-extern int rl_paste_from_clipboard PARAMS((int, int));
-#endif
-
-/* Bindable commands for incremental searching. */
-extern int rl_reverse_search_history PARAMS((int, int));
-extern int rl_forward_search_history PARAMS((int, int));
-
-/* Bindable keyboard macro commands. */
-extern int rl_start_kbd_macro PARAMS((int, int));
-extern int rl_end_kbd_macro PARAMS((int, int));
-extern int rl_call_last_kbd_macro PARAMS((int, int));
-
-/* Bindable undo commands. */
-extern int rl_revert_line PARAMS((int, int));
-extern int rl_undo_command PARAMS((int, int));
-
-/* Bindable tilde expansion commands. */
-extern int rl_tilde_expand PARAMS((int, int));
-
-/* Bindable terminal control commands. */
-extern int rl_restart_output PARAMS((int, int));
-extern int rl_stop_output PARAMS((int, int));
-
-/* Miscellaneous bindable commands. */
-extern int rl_abort PARAMS((int, int));
-extern int rl_tty_status PARAMS((int, int));
-
-/* Bindable commands for incremental and non-incremental history searching. */
-extern int rl_history_search_forward PARAMS((int, int));
-extern int rl_history_search_backward PARAMS((int, int));
-extern int rl_noninc_forward_search PARAMS((int, int));
-extern int rl_noninc_reverse_search PARAMS((int, int));
-extern int rl_noninc_forward_search_again PARAMS((int, int));
-extern int rl_noninc_reverse_search_again PARAMS((int, int));
-
-/* Bindable command used when inserting a matching close character. */
-extern int rl_insert_close PARAMS((int, int));
-
-/* Not available unless READLINE_CALLBACKS is defined. */
-extern void rl_callback_handler_install PARAMS((const char *, rl_vcpfunc_t *));
-extern void rl_callback_read_char PARAMS((void));
-extern void rl_callback_handler_remove PARAMS((void));
-
-/* Things for vi mode. Not available unless readline is compiled -DVI_MODE. */
-/* VI-mode bindable commands. */
-extern int rl_vi_redo PARAMS((int, int));
-extern int rl_vi_undo PARAMS((int, int));
-extern int rl_vi_yank_arg PARAMS((int, int));
-extern int rl_vi_fetch_history PARAMS((int, int));
-extern int rl_vi_search_again PARAMS((int, int));
-extern int rl_vi_search PARAMS((int, int));
-extern int rl_vi_complete PARAMS((int, int));
-extern int rl_vi_tilde_expand PARAMS((int, int));
-extern int rl_vi_prev_word PARAMS((int, int));
-extern int rl_vi_next_word PARAMS((int, int));
-extern int rl_vi_end_word PARAMS((int, int));
-extern int rl_vi_insert_beg PARAMS((int, int));
-extern int rl_vi_append_mode PARAMS((int, int));
-extern int rl_vi_append_eol PARAMS((int, int));
-extern int rl_vi_eof_maybe PARAMS((int, int));
-extern int rl_vi_insertion_mode PARAMS((int, int));
-extern int rl_vi_movement_mode PARAMS((int, int));
-extern int rl_vi_arg_digit PARAMS((int, int));
-extern int rl_vi_change_case PARAMS((int, int));
-extern int rl_vi_put PARAMS((int, int));
-extern int rl_vi_column PARAMS((int, int));
-extern int rl_vi_delete_to PARAMS((int, int));
-extern int rl_vi_change_to PARAMS((int, int));
-extern int rl_vi_yank_to PARAMS((int, int));
-extern int rl_vi_delete PARAMS((int, int));
-extern int rl_vi_back_to_indent PARAMS((int, int));
-extern int rl_vi_first_print PARAMS((int, int));
-extern int rl_vi_char_search PARAMS((int, int));
-extern int rl_vi_match PARAMS((int, int));
-extern int rl_vi_change_char PARAMS((int, int));
-extern int rl_vi_subst PARAMS((int, int));
-extern int rl_vi_overstrike PARAMS((int, int));
-extern int rl_vi_overstrike_delete PARAMS((int, int));
-extern int rl_vi_replace PARAMS((int, int));
-extern int rl_vi_set_mark PARAMS((int, int));
-extern int rl_vi_goto_mark PARAMS((int, int));
-
-/* VI-mode utility functions. */
-extern int rl_vi_check PARAMS((void));
-extern int rl_vi_domove PARAMS((int, int *));
-extern int rl_vi_bracktype PARAMS((int));
-
-/* VI-mode pseudo-bindable commands, used as utility functions. */
-extern int rl_vi_fWord PARAMS((int, int));
-extern int rl_vi_bWord PARAMS((int, int));
-extern int rl_vi_eWord PARAMS((int, int));
-extern int rl_vi_fword PARAMS((int, int));
-extern int rl_vi_bword PARAMS((int, int));
-extern int rl_vi_eword PARAMS((int, int));
-
-/* **************************************************************** */
-/* */
-/* Well Published Functions */
-/* */
-/* **************************************************************** */
-
-/* Readline functions. */
-/* Read a line of input. Prompt with PROMPT. A NULL PROMPT means none. */
-extern char *readline PARAMS((const char *));
-
-extern int rl_set_prompt PARAMS((const char *));
-extern int rl_expand_prompt PARAMS((char *));
-
-extern int rl_initialize PARAMS((void));
-
-/* Undocumented; unused by readline */
-extern int rl_discard_argument PARAMS((void));
-
-/* Utility functions to bind keys to readline commands. */
-extern int rl_add_defun PARAMS((const char *, rl_command_func_t *, int));
-extern int rl_bind_key PARAMS((int, rl_command_func_t *));
-extern int rl_bind_key_in_map PARAMS((int, rl_command_func_t *, Keymap));
-extern int rl_unbind_key PARAMS((int));
-extern int rl_unbind_key_in_map PARAMS((int, Keymap));
-extern int rl_unbind_function_in_map PARAMS((rl_command_func_t *, Keymap));
-extern int rl_unbind_command_in_map PARAMS((const char *, Keymap));
-extern int rl_set_key PARAMS((const char *, rl_command_func_t *, Keymap));
-extern int rl_generic_bind PARAMS((int, const char *, char *, Keymap));
-extern int rl_variable_bind PARAMS((const char *, const char *));
-
-/* Backwards compatibility, use rl_generic_bind instead. */
-extern int rl_macro_bind PARAMS((const char *, const char *, Keymap));
-
-/* Undocumented in the texinfo manual; not really useful to programs. */
-extern int rl_translate_keyseq PARAMS((const char *, char *, int *));
-extern char *rl_untranslate_keyseq PARAMS((int));
-
-extern rl_command_func_t *rl_named_function PARAMS((const char *));
-extern rl_command_func_t *rl_function_of_keyseq PARAMS((const char *, Keymap, int *));
-
-extern void rl_list_funmap_names PARAMS((void));
-extern char **rl_invoking_keyseqs_in_map PARAMS((rl_command_func_t *, Keymap));
-extern char **rl_invoking_keyseqs PARAMS((rl_command_func_t *));
-
-extern void rl_function_dumper PARAMS((int));
-extern void rl_macro_dumper PARAMS((int));
-extern void rl_variable_dumper PARAMS((int));
-
-extern int rl_read_init_file PARAMS((const char *));
-extern int rl_parse_and_bind PARAMS((char *));
-
-/* Functions for manipulating keymaps. */
-extern Keymap rl_make_bare_keymap PARAMS((void));
-extern Keymap rl_copy_keymap PARAMS((Keymap));
-extern Keymap rl_make_keymap PARAMS((void));
-extern void rl_discard_keymap PARAMS((Keymap));
-
-extern Keymap rl_get_keymap_by_name PARAMS((const char *));
-extern char *rl_get_keymap_name PARAMS((Keymap));
-extern void rl_set_keymap PARAMS((Keymap));
-extern Keymap rl_get_keymap PARAMS((void));
-/* Undocumented; used internally only. */
-extern void rl_set_keymap_from_edit_mode PARAMS((void));
-extern char *rl_get_keymap_name_from_edit_mode PARAMS((void));
-
-/* Functions for manipulating the funmap, which maps command names to functions. */
-extern int rl_add_funmap_entry PARAMS((const char *, rl_command_func_t *));
-extern const char **rl_funmap_names PARAMS((void));
-/* Undocumented, only used internally -- there is only one funmap, and this
- function may be called only once. */
-extern void rl_initialize_funmap PARAMS((void));
-
-/* Utility functions for managing keyboard macros. */
-extern void rl_push_macro_input PARAMS((char *));
-
-/* Functions for undoing, from undo.c */
-extern void rl_add_undo PARAMS((enum undo_code, int, int, char *));
-extern void rl_free_undo_list PARAMS((void));
-extern int rl_do_undo PARAMS((void));
-extern int rl_begin_undo_group PARAMS((void));
-extern int rl_end_undo_group PARAMS((void));
-extern int rl_modifying PARAMS((int, int));
-
-/* Functions for redisplay. */
-extern void rl_redisplay PARAMS((void));
-extern int rl_on_new_line PARAMS((void));
-extern int rl_on_new_line_with_prompt PARAMS((void));
-extern int rl_forced_update_display PARAMS((void));
-extern int rl_clear_message PARAMS((void));
-extern int rl_reset_line_state PARAMS((void));
-extern int rl_crlf PARAMS((void));
-
-#if (defined (__STDC__) || defined (__cplusplus)) && defined (USE_VARARGS) && defined (PREFER_STDARG)
-extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
-#else
-extern int rl_message ();
-#endif
-
-extern int rl_show_char PARAMS((int));
-
-/* Undocumented in texinfo manual. */
-extern int rl_character_len PARAMS((int, int));
-
-/* Save and restore internal prompt redisplay information. */
-extern void rl_save_prompt PARAMS((void));
-extern void rl_restore_prompt PARAMS((void));
-
-/* Modifying text. */
-extern void rl_replace_line PARAMS((const char *, int));
-extern int rl_insert_text PARAMS((const char *));
-extern int rl_delete_text PARAMS((int, int));
-extern int rl_kill_text PARAMS((int, int));
-extern char *rl_copy_text PARAMS((int, int));
-
-/* Terminal and tty mode management. */
-extern void rl_prep_terminal PARAMS((int));
-extern void rl_deprep_terminal PARAMS((void));
-extern void rl_tty_set_default_bindings PARAMS((Keymap));
-
-extern int rl_reset_terminal PARAMS((const char *));
-extern void rl_resize_terminal PARAMS((void));
-extern void rl_set_screen_size PARAMS((int, int));
-extern void rl_get_screen_size PARAMS((int *, int *));
-
-extern char *rl_get_termcap PARAMS((const char *));
-
-/* Functions for character input. */
-extern int rl_stuff_char PARAMS((int));
-extern int rl_execute_next PARAMS((int));
-extern int rl_clear_pending_input PARAMS((void));
-extern int rl_read_key PARAMS((void));
-extern int rl_getc PARAMS((FILE *));
-extern int rl_set_keyboard_input_timeout PARAMS((int));
-
-/* `Public' utility functions . */
-extern void rl_extend_line_buffer PARAMS((int));
-extern int rl_ding PARAMS((void));
-extern int rl_alphabetic PARAMS((int));
-
-/* Readline signal handling, from signals.c */
-extern int rl_set_signals PARAMS((void));
-extern int rl_clear_signals PARAMS((void));
-extern void rl_cleanup_after_signal PARAMS((void));
-extern void rl_reset_after_signal PARAMS((void));
-extern void rl_free_line_state PARAMS((void));
-
-extern int rl_set_paren_blink_timeout PARAMS((int));
-
-/* Undocumented. */
-extern int rl_maybe_save_line PARAMS((void));
-extern int rl_maybe_unsave_line PARAMS((void));
-extern int rl_maybe_replace_line PARAMS((void));
-
-/* Completion functions. */
-extern int rl_complete_internal PARAMS((int));
-extern void rl_display_match_list PARAMS((char **, int, int));
-
-extern char **rl_completion_matches PARAMS((const char *, rl_compentry_func_t *));
-extern char *rl_username_completion_function PARAMS((const char *, int));
-extern char *rl_filename_completion_function PARAMS((const char *, int));
-
-extern int rl_completion_mode PARAMS((rl_command_func_t *));
-
-#if 0
-/* Backwards compatibility (compat.c). These will go away sometime. */
-extern void free_undo_list PARAMS((void));
-extern int maybe_save_line PARAMS((void));
-extern int maybe_unsave_line PARAMS((void));
-extern int maybe_replace_line PARAMS((void));
-
-extern int ding PARAMS((void));
-extern int alphabetic PARAMS((int));
-extern int crlf PARAMS((void));
-
-extern char **completion_matches PARAMS((char *, rl_compentry_func_t *));
-extern char *username_completion_function PARAMS((const char *, int));
-extern char *filename_completion_function PARAMS((const char *, int));
-#endif
-
-/* **************************************************************** */
-/* */
-/* Well Published Variables */
-/* */
-/* **************************************************************** */
-
-/* The version of this incarnation of the readline library. */
-extern const char *rl_library_version; /* e.g., "4.2" */
-extern int rl_readline_version; /* e.g., 0x0402 */
-
-/* True if this is real GNU readline. */
-extern int rl_gnu_readline_p;
-
-/* Flags word encapsulating the current readline state. */
-extern int rl_readline_state;
-
-/* Says which editing mode readline is currently using. 1 means emacs mode;
- 0 means vi mode. */
-extern int rl_editing_mode;
-
-/* Insert or overwrite mode for emacs mode. 1 means insert mode; 0 means
- overwrite mode. Reset to insert mode on each input line. */
-extern int rl_insert_mode;
-
-/* The name of the calling program. You should initialize this to
- whatever was in argv[0]. It is used when parsing conditionals. */
-extern const char *rl_readline_name;
-
-/* The prompt readline uses. This is set from the argument to
- readline (), and should not be assigned to directly. */
-extern char *rl_prompt;
-
-/* The line buffer that is in use. */
-extern char *rl_line_buffer;
-
-/* The location of point, and end. */
-extern int rl_point;
-extern int rl_end;
-
-/* The mark, or saved cursor position. */
-extern int rl_mark;
-
-/* Flag to indicate that readline has finished with the current input
- line and should return it. */
-extern int rl_done;
-
-/* If set to a character value, that will be the next keystroke read. */
-extern int rl_pending_input;
-
-/* Non-zero if we called this function from _rl_dispatch(). It's present
- so functions can find out whether they were called from a key binding
- or directly from an application. */
-extern int rl_dispatching;
-
-/* Non-zero if the user typed a numeric argument before executing the
- current function. */
-extern int rl_explicit_arg;
-
-/* The current value of the numeric argument specified by the user. */
-extern int rl_numeric_arg;
-
-/* The address of the last command function Readline executed. */
-extern rl_command_func_t *rl_last_func;
-
-/* The name of the terminal to use. */
-extern const char *rl_terminal_name;
-
-/* The input and output streams. */
-extern FILE *rl_instream;
-extern FILE *rl_outstream;
-
-/* If non-zero, then this is the address of a function to call just
- before readline_internal () prints the first prompt. */
-extern rl_hook_func_t *rl_startup_hook;
-
-/* If non-zero, this is the address of a function to call just before
- readline_internal_setup () returns and readline_internal starts
- reading input characters. */
-extern rl_hook_func_t *rl_pre_input_hook;
-
-/* The address of a function to call periodically while Readline is
- awaiting character input, or NULL, for no event handling. */
-extern rl_hook_func_t *rl_event_hook;
-
-/* The address of the function to call to fetch a character from the current
- Readline input stream */
-extern rl_getc_func_t *rl_getc_function;
-
-extern rl_voidfunc_t *rl_redisplay_function;
-
-extern rl_vintfunc_t *rl_prep_term_function;
-extern rl_voidfunc_t *rl_deprep_term_function;
-
-/* Dispatch variables. */
-extern Keymap rl_executing_keymap;
-extern Keymap rl_binding_keymap;
-
-/* Display variables. */
-/* If non-zero, readline will erase the entire line, including any prompt,
- if the only thing typed on an otherwise-blank line is something bound to
- rl_newline. */
-extern int rl_erase_empty_line;
-
-/* If non-zero, the application has already printed the prompt (rl_prompt)
- before calling readline, so readline should not output it the first time
- redisplay is done. */
-extern int rl_already_prompted;
-
-/* A non-zero value means to read only this many characters rather than
- up to a character bound to accept-line. */
-extern int rl_num_chars_to_read;
-
-/* The text of a currently-executing keyboard macro. */
-extern char *rl_executing_macro;
-
-/* Variables to control readline signal handling. */
-/* If non-zero, readline will install its own signal handlers for
- SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */
-extern int rl_catch_signals;
-
-/* If non-zero, readline will install a signal handler for SIGWINCH
- that also attempts to call any calling application's SIGWINCH signal
- handler. Note that the terminal is not cleaned up before the
- application's signal handler is called; use rl_cleanup_after_signal()
- to do that. */
-extern int rl_catch_sigwinch;
-
-/* Completion variables. */
-/* Pointer to the generator function for completion_matches ().
- NULL means to use rl_filename_completion_function (), the default
- filename completer. */
-extern rl_compentry_func_t *rl_completion_entry_function;
-
-/* If rl_ignore_some_completions_function is non-NULL it is the address
- of a function to call after all of the possible matches have been
- generated, but before the actual completion is done to the input line.
- The function is called with one argument; a NULL terminated array
- of (char *). If your function removes any of the elements, they
- must be free()'ed. */
-extern rl_compignore_func_t *rl_ignore_some_completions_function;
-
-/* Pointer to alternative function to create matches.
- Function is called with TEXT, START, and END.
- START and END are indices in RL_LINE_BUFFER saying what the boundaries
- of TEXT are.
- If this function exists and returns NULL then call the value of
- rl_completion_entry_function to try to match, otherwise use the
- array of strings returned. */
-extern rl_completion_func_t *rl_attempted_completion_function;
-
-/* The basic list of characters that signal a break between words for the
- completer routine. The initial contents of this variable is what
- breaks words in the shell, i.e. "n\"\\'`@$>". */
-extern const char *rl_basic_word_break_characters;
-
-/* The list of characters that signal a break between words for
- rl_complete_internal. The default list is the contents of
- rl_basic_word_break_characters. */
-extern const char *rl_completer_word_break_characters;
-
-/* List of characters which can be used to quote a substring of the line.
- Completion occurs on the entire substring, and within the substring
- rl_completer_word_break_characters are treated as any other character,
- unless they also appear within this list. */
-extern const char *rl_completer_quote_characters;
-
-/* List of quote characters which cause a word break. */
-extern const char *rl_basic_quote_characters;
-
-/* List of characters that need to be quoted in filenames by the completer. */
-extern const char *rl_filename_quote_characters;
-
-/* List of characters that are word break characters, but should be left
- in TEXT when it is passed to the completion function. The shell uses
- this to help determine what kind of completing to do. */
-extern const char *rl_special_prefixes;
-
-/* If non-zero, then this is the address of a function to call when
- completing on a directory name. The function is called with
- the address of a string (the current directory name) as an arg. It
- changes what is displayed when the possible completions are printed
- or inserted. */
-extern rl_icppfunc_t *rl_directory_completion_hook;
-
-/* If non-zero, this is the address of a function to call when completing
- a directory name. This function takes the address of the directory name
- to be modified as an argument. Unlike rl_directory_completion_hook, it
- only modifies the directory name used in opendir(2), not what is displayed
- when the possible completions are printed or inserted. It is called
- before rl_directory_completion_hook. I'm not happy with how this works
- yet, so it's undocumented. */
-extern rl_icppfunc_t *rl_directory_rewrite_hook;
-
-/* Backwards compatibility with previous versions of readline. */
-#define rl_symbolic_link_hook rl_directory_completion_hook
-
-/* If non-zero, then this is the address of a function to call when
- completing a word would normally display the list of possible matches.
- This function is called instead of actually doing the display.
- It takes three arguments: (char **matches, int num_matches, int max_length)
- where MATCHES is the array of strings that matched, NUM_MATCHES is the
- number of strings in that array, and MAX_LENGTH is the length of the
- longest string in that array. */
-extern rl_compdisp_func_t *rl_completion_display_matches_hook;
-
-/* Non-zero means that the results of the matches are to be treated
- as filenames. This is ALWAYS zero on entry, and can only be changed
- within a completion entry finder function. */
-extern int rl_filename_completion_desired;
-
-/* Non-zero means that the results of the matches are to be quoted using
- double quotes (or an application-specific quoting mechanism) if the
- filename contains any characters in rl_word_break_chars. This is
- ALWAYS non-zero on entry, and can only be changed within a completion
- entry finder function. */
-extern int rl_filename_quoting_desired;
-
-/* Set to a function to quote a filename in an application-specific fashion.
- Called with the text to quote, the type of match found (single or multiple)
- and a pointer to the quoting character to be used, which the function can
- reset if desired. */
-extern rl_quote_func_t *rl_filename_quoting_function;
-
-/* Function to call to remove quoting characters from a filename. Called
- before completion is attempted, so the embedded quotes do not interfere
- with matching names in the file system. */
-extern rl_dequote_func_t *rl_filename_dequoting_function;
-
-/* Function to call to decide whether or not a word break character is
- quoted. If a character is quoted, it does not break words for the
- completer. */
-extern rl_linebuf_func_t *rl_char_is_quoted_p;
-
-/* Non-zero means to suppress normal filename completion after the
- user-specified completion function has been called. */
-extern int rl_attempted_completion_over;
-
-/* Set to a character describing the type of completion being attempted by
- rl_complete_internal; available for use by application completion
- functions. */
-extern int rl_completion_type;
-
-/* Character appended to completed words when at the end of the line. The
- default is a space. Nothing is added if this is '\0'. */
-extern int rl_completion_append_character;
-
-/* If set to non-zero by an application completion function,
- rl_completion_append_character will not be appended. */
-extern int rl_completion_suppress_append;
-
-/* Up to this many items will be displayed in response to a
- possible-completions call. After that, we ask the user if she
- is sure she wants to see them all. The default value is 100. */
-extern int rl_completion_query_items;
-
-/* If non-zero, a slash will be appended to completed filenames that are
- symbolic links to directory names, subject to the value of the
- mark-directories variable (which is user-settable). This exists so
- that application completion functions can override the user's preference
- (set via the mark-symlinked-directories variable) if appropriate.
- It's set to the value of _rl_complete_mark_symlink_dirs in
- rl_complete_internal before any application-specific completion
- function is called, so without that function doing anything, the user's
- preferences are honored. */
-extern int rl_completion_mark_symlink_dirs;
-
-/* If non-zero, then disallow duplicates in the matches. */
-extern int rl_ignore_completion_duplicates;
-
-/* If this is non-zero, completion is (temporarily) inhibited, and the
- completion character will be inserted as any other. */
-extern int rl_inhibit_completion;
-
-/* Definitions available for use by readline clients. */
-#define RL_PROMPT_START_IGNORE '\001'
-#define RL_PROMPT_END_IGNORE '\002'
-
-/* Possible values for do_replace argument to rl_filename_quoting_function,
- called by rl_complete_internal. */
-#define NO_MATCH 0
-#define SINGLE_MATCH 1
-#define MULT_MATCH 2
-
-/* Possible state values for rl_readline_state */
-#define RL_STATE_NONE 0x00000 /* no state; before first call */
-
-#define RL_STATE_INITIALIZING 0x00001 /* initializing */
-#define RL_STATE_INITIALIZED 0x00002 /* initialization done */
-#define RL_STATE_TERMPREPPED 0x00004 /* terminal is prepped */
-#define RL_STATE_READCMD 0x00008 /* reading a command key */
-#define RL_STATE_METANEXT 0x00010 /* reading input after ESC */
-#define RL_STATE_DISPATCHING 0x00020 /* dispatching to a command */
-#define RL_STATE_MOREINPUT 0x00040 /* reading more input in a command function */
-#define RL_STATE_ISEARCH 0x00080 /* doing incremental search */
-#define RL_STATE_NSEARCH 0x00100 /* doing non-inc search */
-#define RL_STATE_SEARCH 0x00200 /* doing a history search */
-#define RL_STATE_NUMERICARG 0x00400 /* reading numeric argument */
-#define RL_STATE_MACROINPUT 0x00800 /* getting input from a macro */
-#define RL_STATE_MACRODEF 0x01000 /* defining keyboard macro */
-#define RL_STATE_OVERWRITE 0x02000 /* overwrite mode */
-#define RL_STATE_COMPLETING 0x04000 /* doing completion */
-#define RL_STATE_SIGHANDLER 0x08000 /* in readline sighandler */
-#define RL_STATE_UNDOING 0x10000 /* doing an undo */
-#define RL_STATE_INPUTPENDING 0x20000 /* rl_execute_next called */
-
-#define RL_STATE_DONE 0x80000 /* done; accepted line */
-
-#define RL_SETSTATE(x) (rl_readline_state |= (x))
-#define RL_UNSETSTATE(x) (rl_readline_state &= ~(x))
-#define RL_ISSTATE(x) (rl_readline_state & (x))
-
-struct readline_state {
- /* line state */
- int point;
- int end;
- int mark;
- char *buffer;
- int buflen;
- UNDO_LIST *ul;
- char *prompt;
-
- /* global state */
- int rlstate;
- int done;
- Keymap kmap;
-
- /* input state */
- rl_command_func_t *lastfunc;
- int insmode;
- int edmode;
- int kseqlen;
- FILE *inf;
- FILE *outf;
- int pendingin;
- char *macro;
-
- /* signal state */
- int catchsigs;
- int catchsigwinch;
-
- /* reserved for future expansion, so the struct size doesn't change */
- char reserved[64];
-};
-
-extern int rl_save_state PARAMS((struct readline_state *));
-extern int rl_restore_state PARAMS((struct readline_state *));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _READLINE_H_ */
diff --git a/readline-4.3.orig/rlconf.h b/readline-4.3.orig/rlconf.h
deleted file mode 100644
index c651fd8..0000000
--- a/readline-4.3.orig/rlconf.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* rlconf.h -- readline configuration definitions */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLCONF_H_)
-#define _RLCONF_H_
-
-/* Define this if you want the vi-mode editing available. */
-#define VI_MODE
-
-/* Define this to get an indication of file type when listing completions. */
-#define VISIBLE_STATS
-
-/* This definition is needed by readline.c, rltty.c, and signals.c. */
-/* If on, then readline handles signals in a way that doesn't screw. */
-#define HANDLE_SIGNALS
-
-/* Ugly but working hack for binding prefix meta. */
-#define PREFIX_META_HACK
-
-/* The final, last-ditch effort file name for an init file. */
-#define DEFAULT_INPUTRC "~/.inputrc"
-
-/* If defined, expand tabs to spaces. */
-#define DISPLAY_TABS
-
-/* If defined, use the terminal escape sequence to move the cursor forward
- over a character when updating the line rather than rewriting it. */
-/* #define HACK_TERMCAP_MOTION */
-
-/* The string inserted by the `insert comment' command. */
-#define RL_COMMENT_BEGIN_DEFAULT "#"
-
-/* Define this if you want code that allows readline to be used in an
- X `callback' style. */
-#define READLINE_CALLBACKS
-
-/* Define this if you want the cursor to indicate insert or overwrite mode. */
-/* #define CURSOR_MODE */
-
-#endif /* _RLCONF_H_ */
diff --git a/readline-4.3.orig/rldefs.h b/readline-4.3.orig/rldefs.h
deleted file mode 100644
index 4a28bd1..0000000
--- a/readline-4.3.orig/rldefs.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/* rldefs.h -- an attempt to isolate some of the system-specific defines
- for readline. This should be included after any files that define
- system-specific constants like _POSIX_VERSION or USG. */
-
-/* Copyright (C) 1987,1989 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLDEFS_H_)
-#define _RLDEFS_H_
-
-#if defined (HAVE_CONFIG_H)
-# include "config.h"
-#endif
-
-#include "rlstdc.h"
-
-#if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING)
-# define TERMIOS_TTY_DRIVER
-#else
-# if defined (HAVE_TERMIO_H)
-# define TERMIO_TTY_DRIVER
-# else
-# define NEW_TTY_DRIVER
-# endif
-#endif
-
-/* Posix macro to check file in statbuf for directory-ness.
- This requires that <sys/stat.h> be included before this test. */
-#if defined (S_IFDIR) && !defined (S_ISDIR)
-# define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR)
-#endif
-
-/* Decide which flavor of the header file describing the C library
- string functions to include and include it. */
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strchr (), *strrchr ();
-#endif /* !strchr && !__STDC__ */
-
-#if defined (PREFER_STDARG)
-# include <stdarg.h>
-#else
-# if defined (PREFER_VARARGS)
-# include <varargs.h>
-# endif
-#endif
-
-#if defined (HAVE_STRCASECMP)
-#define _rl_stricmp strcasecmp
-#define _rl_strnicmp strncasecmp
-#else
-extern int _rl_stricmp PARAMS((char *, char *));
-extern int _rl_strnicmp PARAMS((char *, char *, int));
-#endif
-
-#if defined (HAVE_STRPBRK)
-# define _rl_strpbrk(a,b) strpbrk((a),(b))
-#else
-extern char *_rl_strpbrk PARAMS((const char *, const char *));
-#endif
-
-#if !defined (emacs_mode)
-# define no_mode -1
-# define vi_mode 0
-# define emacs_mode 1
-#endif
-
-#if !defined (RL_IM_INSERT)
-# define RL_IM_INSERT 1
-# define RL_IM_OVERWRITE 0
-#
-# define RL_IM_DEFAULT RL_IM_INSERT
-#endif
-
-/* If you cast map[key].function to type (Keymap) on a Cray,
- the compiler takes the value of map[key].function and
- divides it by 4 to convert between pointer types (pointers
- to functions and pointers to structs are different sizes).
- This is not what is wanted. */
-#if defined (CRAY)
-# define FUNCTION_TO_KEYMAP(map, key) (Keymap)((int)map[key].function)
-# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)((int)(data))
-#else
-# define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function)
-# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)(data)
-#endif
-
-#ifndef savestring
-#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
-#endif
-
-/* Possible values for _rl_bell_preference. */
-#define NO_BELL 0
-#define AUDIBLE_BELL 1
-#define VISIBLE_BELL 2
-
-/* Definitions used when searching the line for characters. */
-/* NOTE: it is necessary that opposite directions are inverses */
-#define FTO 1 /* forward to */
-#define BTO -1 /* backward to */
-#define FFIND 2 /* forward find */
-#define BFIND -2 /* backward find */
-
-/* Possible values for the found_quote flags word used by the completion
- functions. It says what kind of (shell-like) quoting we found anywhere
- in the line. */
-#define RL_QF_SINGLE_QUOTE 0x01
-#define RL_QF_DOUBLE_QUOTE 0x02
-#define RL_QF_BACKSLASH 0x04
-#define RL_QF_OTHER_QUOTE 0x08
-
-/* Default readline line buffer length. */
-#define DEFAULT_BUFFER_SIZE 256
-
-#if !defined (STREQ)
-#define STREQ(a, b) (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
-#define STREQN(a, b, n) (((n) == 0) ? (1) \
- : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
-#endif
-
-#if !defined (FREE)
-# define FREE(x) if (x) free (x)
-#endif
-
-#if !defined (SWAP)
-# define SWAP(s, e) do { int t; t = s; s = e; e = t; } while (0)
-#endif
-
-/* CONFIGURATION SECTION */
-#include "rlconf.h"
-
-#endif /* !_RLDEFS_H_ */
diff --git a/readline-4.3.orig/rlmbutil.h b/readline-4.3.orig/rlmbutil.h
deleted file mode 100644
index 27ca32b..0000000
--- a/readline-4.3.orig/rlmbutil.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* rlmbutil.h -- utility functions for multibyte characters. */
-
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RL_MBUTIL_H_)
-#define _RL_MBUTIL_H_
-
-#include "rlstdc.h"
-
-/************************************************/
-/* check multibyte capability for I18N code */
-/************************************************/
-
-/* For platforms which support the ISO C amendement 1 functionality we
- support user defined character classes. */
- /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
-#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H)
-# include <wchar.h>
-# include <wctype.h>
-# if defined (HAVE_MBSRTOWCS) /* system is supposed to support XPG5 */
-# define HANDLE_MULTIBYTE 1
-# endif
-#endif
-
-/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
-#if HANDLE_MULTIBYTE && !defined (HAVE_MBSTATE_T)
-# define wcsrtombs(dest, src, len, ps) (wcsrtombs) (dest, src, len, 0)
-# define mbsrtowcs(dest, src, len, ps) (mbsrtowcs) (dest, src, len, 0)
-# define wcrtomb(s, wc, ps) (wcrtomb) (s, wc, 0)
-# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-# define mbrlen(s, n, ps) (mbrlen) (s, n, 0)
-# define mbstate_t int
-#endif
-
-/* Make sure MB_LEN_MAX is at least 16 on systems that claim to be able to
- handle multibyte chars (some systems define MB_LEN_MAX as 1) */
-#ifdef HANDLE_MULTIBYTE
-# include <limits.h>
-# if defined(MB_LEN_MAX) && (MB_LEN_MAX < 16)
-# undef MB_LEN_MAX
-# endif
-# if !defined (MB_LEN_MAX)
-# define MB_LEN_MAX 16
-# endif
-#endif
-
-/************************************************/
-/* end of multibyte capability checks for I18N */
-/************************************************/
-
-/*
- * Flags for _rl_find_prev_mbchar and _rl_find_next_mbchar:
- *
- * MB_FIND_ANY find any multibyte character
- * MB_FIND_NONZERO find a non-zero-width multibyte character
- */
-
-#define MB_FIND_ANY 0x00
-#define MB_FIND_NONZERO 0x01
-
-extern int _rl_find_prev_mbchar PARAMS((char *, int, int));
-extern int _rl_find_next_mbchar PARAMS((char *, int, int, int));
-
-#ifdef HANDLE_MULTIBYTE
-
-extern int _rl_compare_chars PARAMS((char *, int, mbstate_t *, char *, int, mbstate_t *));
-extern int _rl_get_char_len PARAMS((char *, mbstate_t *));
-extern int _rl_adjust_point PARAMS((char *, int, mbstate_t *));
-
-extern int _rl_read_mbchar PARAMS((char *, int));
-extern int _rl_read_mbstring PARAMS((int, char *, int));
-
-extern int _rl_is_mbchar_matched PARAMS((char *, int, int, char *, int));
-
-#else /* !HANDLE_MULTIBYTE */
-
-#undef MB_LEN_MAX
-#undef MB_CUR_MAX
-
-#define MB_LEN_MAX 1
-#define MB_CUR_MAX 1
-
-#define _rl_find_prev_mbchar(b, i, f) (((i) == 0) ? (i) : ((i) - 1))
-#define _rl_find_next_mbchar(b, i1, i2, f) ((i1) + (i2))
-
-#endif /* !HANDLE_MULTIBYTE */
-
-extern int rl_byte_oriented;
-
-#endif /* _RL_MBUTIL_H_ */
diff --git a/readline-4.3.orig/rlprivate.h b/readline-4.3.orig/rlprivate.h
deleted file mode 100644
index ccb9144..0000000
--- a/readline-4.3.orig/rlprivate.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/* rlprivate.h -- functions and variables global to the readline library,
- but not intended for use by applications. */
-
-/* Copyright (C) 1999 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RL_PRIVATE_H_)
-#define _RL_PRIVATE_H_
-
-#include "rlconf.h" /* for VISIBLE_STATS */
-#include "rlstdc.h"
-#include "posixjmp.h" /* defines procenv_t */
-
-/*************************************************************************
- * *
- * Global functions undocumented in texinfo manual and not in readline.h *
- * *
- *************************************************************************/
-
-/*************************************************************************
- * *
- * Global variables undocumented in texinfo manual and not in readline.h *
- * *
- *************************************************************************/
-
-/* complete.c */
-extern int rl_complete_with_tilde_expansion;
-#if defined (VISIBLE_STATS)
-extern int rl_visible_stats;
-#endif /* VISIBLE_STATS */
-
-/* readline.c */
-extern int rl_line_buffer_len;
-extern int rl_arg_sign;
-extern int rl_visible_prompt_length;
-extern int readline_echoing_p;
-extern int rl_key_sequence_length;
-extern int rl_byte_oriented;
-
-/* display.c */
-extern int rl_display_fixed;
-
-/* parens.c */
-extern int rl_blink_matching_paren;
-
-/*************************************************************************
- * *
- * Global functions and variables unsed and undocumented *
- * *
- *************************************************************************/
-
-/* kill.c */
-extern int rl_set_retained_kills PARAMS((int));
-
-/* terminal.c */
-extern void _rl_set_screen_size PARAMS((int, int));
-
-/* undo.c */
-extern int _rl_fix_last_undo_of_type PARAMS((int, int, int));
-
-/* util.c */
-extern char *_rl_savestring PARAMS((const char *));
-
-/*************************************************************************
- * *
- * Functions and variables private to the readline library *
- * *
- *************************************************************************/
-
-/* NOTE: Functions and variables prefixed with `_rl_' are
- pseudo-global: they are global so they can be shared
- between files in the readline library, but are not intended
- to be visible to readline callers. */
-
-/*************************************************************************
- * Undocumented private functions *
- *************************************************************************/
-
-#if defined(READLINE_CALLBACKS)
-
-/* readline.c */
-extern void readline_internal_setup PARAMS((void));
-extern char *readline_internal_teardown PARAMS((int));
-extern int readline_internal_char PARAMS((void));
-
-#endif /* READLINE_CALLBACKS */
-
-/* bind.c */
-extern void _rl_bind_if_unbound PARAMS((const char *, rl_command_func_t *));
-
-/* complete.c */
-extern char _rl_find_completion_word PARAMS((int *, int *));
-extern void _rl_free_match_list PARAMS((char **));
-
-/* display.c */
-extern char *_rl_strip_prompt PARAMS((char *));
-extern void _rl_move_cursor_relative PARAMS((int, const char *));
-extern void _rl_move_vert PARAMS((int));
-extern void _rl_save_prompt PARAMS((void));
-extern void _rl_restore_prompt PARAMS((void));
-extern char *_rl_make_prompt_for_search PARAMS((int));
-extern void _rl_erase_at_end_of_line PARAMS((int));
-extern void _rl_clear_to_eol PARAMS((int));
-extern void _rl_clear_screen PARAMS((void));
-extern void _rl_update_final PARAMS((void));
-extern void _rl_redisplay_after_sigwinch PARAMS((void));
-extern void _rl_clean_up_for_exit PARAMS((void));
-extern void _rl_erase_entire_line PARAMS((void));
-extern int _rl_current_display_line PARAMS((void));
-
-/* input.c */
-extern int _rl_any_typein PARAMS((void));
-extern int _rl_input_available PARAMS((void));
-extern int _rl_input_queued PARAMS((int));
-extern void _rl_insert_typein PARAMS((int));
-extern int _rl_unget_char PARAMS((int));
-
-/* macro.c */
-extern void _rl_with_macro_input PARAMS((char *));
-extern int _rl_next_macro_key PARAMS((void));
-extern void _rl_push_executing_macro PARAMS((void));
-extern void _rl_pop_executing_macro PARAMS((void));
-extern void _rl_add_macro_char PARAMS((int));
-extern void _rl_kill_kbd_macro PARAMS((void));
-
-/* misc.c */
-extern int _rl_init_argument PARAMS((void));
-extern void _rl_start_using_history PARAMS((void));
-extern int _rl_free_saved_history_line PARAMS((void));
-extern void _rl_set_insert_mode PARAMS((int, int));
-
-/* nls.c */
-extern int _rl_init_eightbit PARAMS((void));
-
-/* parens.c */
-extern void _rl_enable_paren_matching PARAMS((int));
-
-/* readline.c */
-extern void _rl_init_line_state PARAMS((void));
-extern void _rl_set_the_line PARAMS((void));
-extern int _rl_dispatch PARAMS((int, Keymap));
-extern int _rl_dispatch_subseq PARAMS((int, Keymap, int));
-
-/* rltty.c */
-extern int _rl_disable_tty_signals PARAMS((void));
-extern int _rl_restore_tty_signals PARAMS((void));
-
-/* terminal.c */
-extern void _rl_get_screen_size PARAMS((int, int));
-extern int _rl_init_terminal_io PARAMS((const char *));
-#ifdef _MINIX
-extern void _rl_output_character_function PARAMS((int));
-#else
-extern int _rl_output_character_function PARAMS((int));
-#endif
-extern void _rl_output_some_chars PARAMS((const char *, int));
-extern int _rl_backspace PARAMS((int));
-extern void _rl_enable_meta_key PARAMS((void));
-extern void _rl_control_keypad PARAMS((int));
-extern void _rl_set_cursor PARAMS((int, int));
-
-/* text.c */
-extern void _rl_fix_point PARAMS((int));
-extern int _rl_replace_text PARAMS((const char *, int, int));
-extern int _rl_insert_char PARAMS((int, int));
-extern int _rl_overwrite_char PARAMS((int, int));
-extern int _rl_overwrite_rubout PARAMS((int, int));
-extern int _rl_rubout_char PARAMS((int, int));
-#if defined (HANDLE_MULTIBYTE)
-extern int _rl_char_search_internal PARAMS((int, int, char *, int));
-#else
-extern int _rl_char_search_internal PARAMS((int, int, int));
-#endif
-extern int _rl_set_mark_at_pos PARAMS((int));
-
-/* util.c */
-extern int _rl_abort_internal PARAMS((void));
-extern char *_rl_strindex PARAMS((const char *, const char *));
-extern int _rl_qsort_string_compare PARAMS((char **, char **));
-extern int (_rl_uppercase_p) PARAMS((int));
-extern int (_rl_lowercase_p) PARAMS((int));
-extern int (_rl_pure_alphabetic) PARAMS((int));
-extern int (_rl_digit_p) PARAMS((int));
-extern int (_rl_to_lower) PARAMS((int));
-extern int (_rl_to_upper) PARAMS((int));
-extern int (_rl_digit_value) PARAMS((int));
-
-/* vi_mode.c */
-extern void _rl_vi_initialize_line PARAMS((void));
-extern void _rl_vi_reset_last PARAMS((void));
-extern void _rl_vi_set_last PARAMS((int, int, int));
-extern int _rl_vi_textmod_command PARAMS((int));
-extern void _rl_vi_done_inserting PARAMS((void));
-
-/*************************************************************************
- * Undocumented private variables *
- *************************************************************************/
-
-/* bind.c */
-extern const char *_rl_possible_control_prefixes[];
-extern const char *_rl_possible_meta_prefixes[];
-
-/* complete.c */
-extern int _rl_complete_show_all;
-extern int _rl_complete_mark_directories;
-extern int _rl_complete_mark_symlink_dirs;
-extern int _rl_print_completions_horizontally;
-extern int _rl_completion_case_fold;
-extern int _rl_match_hidden_files;
-extern int _rl_page_completions;
-
-/* display.c */
-extern int _rl_vis_botlin;
-extern int _rl_last_c_pos;
-extern int _rl_suppress_redisplay;
-extern char *rl_display_prompt;
-
-/* isearch.c */
-extern char *_rl_isearch_terminators;
-
-/* macro.c */
-extern char *_rl_executing_macro;
-
-/* misc.c */
-extern int _rl_history_preserve_point;
-extern int _rl_history_saved_point;
-
-/* readline.c */
-extern int _rl_horizontal_scroll_mode;
-extern int _rl_mark_modified_lines;
-extern int _rl_bell_preference;
-extern int _rl_meta_flag;
-extern int _rl_convert_meta_chars_to_ascii;
-extern int _rl_output_meta_chars;
-extern char *_rl_comment_begin;
-extern unsigned char _rl_parsing_conditionalized_out;
-extern Keymap _rl_keymap;
-extern FILE *_rl_in_stream;
-extern FILE *_rl_out_stream;
-extern int _rl_last_command_was_kill;
-extern int _rl_eof_char;
-extern procenv_t readline_top_level;
-
-/* terminal.c */
-extern int _rl_enable_keypad;
-extern int _rl_enable_meta;
-extern char *_rl_term_clreol;
-extern char *_rl_term_clrpag;
-extern char *_rl_term_im;
-extern char *_rl_term_ic;
-extern char *_rl_term_ei;
-extern char *_rl_term_DC;
-extern char *_rl_term_up;
-extern char *_rl_term_dc;
-extern char *_rl_term_cr;
-extern char *_rl_term_IC;
-extern int _rl_screenheight;
-extern int _rl_screenwidth;
-extern int _rl_screenchars;
-extern int _rl_terminal_can_insert;
-extern int _rl_term_autowrap;
-
-/* undo.c */
-extern int _rl_doing_an_undo;
-extern int _rl_undo_group_level;
-
-#endif /* _RL_PRIVATE_H_ */
diff --git a/readline-4.3.orig/rlshell.h b/readline-4.3.orig/rlshell.h
deleted file mode 100644
index 3c03fba..0000000
--- a/readline-4.3.orig/rlshell.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* rlshell.h -- utility functions normally provided by bash. */
-
-/* Copyright (C) 1999 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RL_SHELL_H_)
-#define _RL_SHELL_H_
-
-#include "rlstdc.h"
-
-extern char *sh_single_quote PARAMS((char *));
-extern void sh_set_lines_and_columns PARAMS((int, int));
-extern char *sh_get_env_value PARAMS((const char *));
-extern char *sh_get_home_dir PARAMS((void));
-extern int sh_unset_nodelay_mode PARAMS((int));
-
-#endif /* _RL_SHELL_H_ */
diff --git a/readline-4.3.orig/rlstdc.h b/readline-4.3.orig/rlstdc.h
deleted file mode 100644
index d6a22b3..0000000
--- a/readline-4.3.orig/rlstdc.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* stdc.h -- macros to make source compile on both ANSI C and K&R C
- compilers. */
-
-/* Copyright (C) 1993 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RL_STDC_H_)
-#define _RL_STDC_H_
-
-/* Adapted from BSD /usr/include/sys/cdefs.h. */
-
-/* A function can be defined using prototypes and compile on both ANSI C
- and traditional C compilers with something like this:
- extern char *func PARAMS((char *, char *, int)); */
-
-#if !defined (PARAMS)
-# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
-# define PARAMS(protos) protos
-# else
-# define PARAMS(protos) ()
-# endif
-#endif
-
-#ifndef __attribute__
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
-# define __attribute__(x)
-# endif
-#endif
-
-#endif /* !_RL_STDC_H_ */
diff --git a/readline-4.3.orig/rltty.c b/readline-4.3.orig/rltty.c
deleted file mode 100644
index 755efeb..0000000
--- a/readline-4.3.orig/rltty.c
+++ /dev/null
@@ -1,911 +0,0 @@
-/* rltty.c -- functions to prepare and restore the terminal for readline's
- use. */
-
-/* Copyright (C) 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <signal.h>
-#include <errno.h>
-#include <stdio.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include "rldefs.h"
-
-#if defined (GWINSZ_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL */
-
-#include "rltty.h"
-#include "readline.h"
-#include "rlprivate.h"
-
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-rl_vintfunc_t *rl_prep_term_function = rl_prep_terminal;
-rl_voidfunc_t *rl_deprep_term_function = rl_deprep_terminal;
-
-static void block_sigint PARAMS((void));
-static void release_sigint PARAMS((void));
-
-static void set_winsize PARAMS((int));
-
-/* **************************************************************** */
-/* */
-/* Signal Management */
-/* */
-/* **************************************************************** */
-
-#if defined (HAVE_POSIX_SIGNALS)
-static sigset_t sigint_set, sigint_oset;
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
-static int sigint_oldmask;
-# endif /* HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
-static int sigint_blocked;
-
-/* Cause SIGINT to not be delivered until the corresponding call to
- release_sigint(). */
-static void
-block_sigint ()
-{
- if (sigint_blocked)
- return;
-
-#if defined (HAVE_POSIX_SIGNALS)
- sigemptyset (&sigint_set);
- sigemptyset (&sigint_oset);
- sigaddset (&sigint_set, SIGINT);
- sigprocmask (SIG_BLOCK, &sigint_set, &sigint_oset);
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
- sigint_oldmask = sigblock (sigmask (SIGINT));
-# else /* !HAVE_BSD_SIGNALS */
-# if defined (HAVE_USG_SIGHOLD)
- sighold (SIGINT);
-# endif /* HAVE_USG_SIGHOLD */
-# endif /* !HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
- sigint_blocked = 1;
-}
-
-/* Allow SIGINT to be delivered. */
-static void
-release_sigint ()
-{
- if (sigint_blocked == 0)
- return;
-
-#if defined (HAVE_POSIX_SIGNALS)
- sigprocmask (SIG_SETMASK, &sigint_oset, (sigset_t *)NULL);
-#else
-# if defined (HAVE_BSD_SIGNALS)
- sigsetmask (sigint_oldmask);
-# else /* !HAVE_BSD_SIGNALS */
-# if defined (HAVE_USG_SIGHOLD)
- sigrelse (SIGINT);
-# endif /* HAVE_USG_SIGHOLD */
-# endif /* !HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
- sigint_blocked = 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Saving and Restoring the TTY */
-/* */
-/* **************************************************************** */
-
-/* Non-zero means that the terminal is in a prepped state. */
-static int terminal_prepped;
-
-static _RL_TTY_CHARS _rl_tty_chars, _rl_last_tty_chars;
-
-/* If non-zero, means that this process has called tcflow(fd, TCOOFF)
- and output is suspended. */
-#if defined (__ksr1__)
-static int ksrflow;
-#endif
-
-/* Dummy call to force a backgrounded readline to stop before it tries
- to get the tty settings. */
-static void
-set_winsize (tty)
- int tty;
-{
-#if defined (TIOCGWINSZ)
- struct winsize w;
-
- if (ioctl (tty, TIOCGWINSZ, &w) == 0)
- (void) ioctl (tty, TIOCSWINSZ, &w);
-#endif /* TIOCGWINSZ */
-}
-
-#if defined (NEW_TTY_DRIVER)
-
-/* Values for the `flags' field of a struct bsdtty. This tells which
- elements of the struct bsdtty have been fetched from the system and
- are valid. */
-#define SGTTY_SET 0x01
-#define LFLAG_SET 0x02
-#define TCHARS_SET 0x04
-#define LTCHARS_SET 0x08
-
-struct bsdtty {
- struct sgttyb sgttyb; /* Basic BSD tty driver information. */
- int lflag; /* Local mode flags, like LPASS8. */
-#if defined (TIOCGETC)
- struct tchars tchars; /* Terminal special characters, including ^S and ^Q. */
-#endif
-#if defined (TIOCGLTC)
- struct ltchars ltchars; /* 4.2 BSD editing characters */
-#endif
- int flags; /* Bitmap saying which parts of the struct are valid. */
-};
-
-#define TIOTYPE struct bsdtty
-
-static TIOTYPE otio;
-
-static void save_tty_chars PARAMS((TIOTYPE *));
-static int _get_tty_settings PARAMS((int, TIOTYPE *));
-static int get_tty_settings PARAMS((int, TIOTYPE *));
-static int _set_tty_settings PARAMS((int, TIOTYPE *));
-static int set_tty_settings PARAMS((int, TIOTYPE *));
-
-static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
-
-static void
-save_tty_chars (tiop)
- TIOTYPE *tiop;
-{
- _rl_last_tty_chars = _rl_tty_chars;
-
- if (tiop->flags & SGTTY_SET)
- {
- _rl_tty_chars.t_erase = tiop->sgttyb.sg_erase;
- _rl_tty_chars.t_kill = tiop->sgttyb.sg_kill;
- }
-
- if (tiop->flags & TCHARS_SET)
- {
- _rl_tty_chars.t_intr = tiop->tchars.t_intrc;
- _rl_tty_chars.t_quit = tiop->tchars.t_quitc;
- _rl_tty_chars.t_start = tiop->tchars.t_startc;
- _rl_tty_chars.t_stop = tiop->tchars.t_stopc;
- _rl_tty_chars.t_eof = tiop->tchars.t_eofc;
- _rl_tty_chars.t_eol = '\n';
- _rl_tty_chars.t_eol2 = tiop->tchars.t_brkc;
- }
-
- if (tiop->flags & LTCHARS_SET)
- {
- _rl_tty_chars.t_susp = tiop->ltchars.t_suspc;
- _rl_tty_chars.t_dsusp = tiop->ltchars.t_dsuspc;
- _rl_tty_chars.t_reprint = tiop->ltchars.t_rprntc;
- _rl_tty_chars.t_flush = tiop->ltchars.t_flushc;
- _rl_tty_chars.t_werase = tiop->ltchars.t_werasc;
- _rl_tty_chars.t_lnext = tiop->ltchars.t_lnextc;
- }
-
- _rl_tty_chars.t_status = -1;
-}
-
-static int
-get_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- set_winsize (tty);
-
- tiop->flags = tiop->lflag = 0;
-
- if (ioctl (tty, TIOCGETP, &(tiop->sgttyb)) < 0)
- return -1;
- tiop->flags |= SGTTY_SET;
-
-#if defined (TIOCLGET)
- if (ioctl (tty, TIOCLGET, &(tiop->lflag)) == 0)
- tiop->flags |= LFLAG_SET;
-#endif
-
-#if defined (TIOCGETC)
- if (ioctl (tty, TIOCGETC, &(tiop->tchars)) == 0)
- tiop->flags |= TCHARS_SET;
-#endif
-
-#if defined (TIOCGLTC)
- if (ioctl (tty, TIOCGLTC, &(tiop->ltchars)) == 0)
- tiop->flags |= LTCHARS_SET;
-#endif
-
- return 0;
-}
-
-static int
-set_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- if (tiop->flags & SGTTY_SET)
- {
- ioctl (tty, TIOCSETN, &(tiop->sgttyb));
- tiop->flags &= ~SGTTY_SET;
- }
- readline_echoing_p = 1;
-
-#if defined (TIOCLSET)
- if (tiop->flags & LFLAG_SET)
- {
- ioctl (tty, TIOCLSET, &(tiop->lflag));
- tiop->flags &= ~LFLAG_SET;
- }
-#endif
-
-#if defined (TIOCSETC)
- if (tiop->flags & TCHARS_SET)
- {
- ioctl (tty, TIOCSETC, &(tiop->tchars));
- tiop->flags &= ~TCHARS_SET;
- }
-#endif
-
-#if defined (TIOCSLTC)
- if (tiop->flags & LTCHARS_SET)
- {
- ioctl (tty, TIOCSLTC, &(tiop->ltchars));
- tiop->flags &= ~LTCHARS_SET;
- }
-#endif
-
- return 0;
-}
-
-static void
-prepare_terminal_settings (meta_flag, oldtio, tiop)
- int meta_flag;
- TIOTYPE oldtio, *tiop;
-{
- readline_echoing_p = (oldtio.sgttyb.sg_flags & ECHO);
-
- /* Copy the original settings to the structure we're going to use for
- our settings. */
- tiop->sgttyb = oldtio.sgttyb;
- tiop->lflag = oldtio.lflag;
-#if defined (TIOCGETC)
- tiop->tchars = oldtio.tchars;
-#endif
-#if defined (TIOCGLTC)
- tiop->ltchars = oldtio.ltchars;
-#endif
- tiop->flags = oldtio.flags;
-
- /* First, the basic settings to put us into character-at-a-time, no-echo
- input mode. */
- tiop->sgttyb.sg_flags &= ~(ECHO | CRMOD);
- tiop->sgttyb.sg_flags |= CBREAK;
-
- /* If this terminal doesn't care how the 8th bit is used, then we can
- use it for the meta-key. If only one of even or odd parity is
- specified, then the terminal is using parity, and we cannot. */
-#if !defined (ANYP)
-# define ANYP (EVENP | ODDP)
-#endif
- if (((oldtio.sgttyb.sg_flags & ANYP) == ANYP) ||
- ((oldtio.sgttyb.sg_flags & ANYP) == 0))
- {
- tiop->sgttyb.sg_flags |= ANYP;
-
- /* Hack on local mode flags if we can. */
-#if defined (TIOCLGET)
-# if defined (LPASS8)
- tiop->lflag |= LPASS8;
-# endif /* LPASS8 */
-#endif /* TIOCLGET */
- }
-
-#if defined (TIOCGETC)
-# if defined (USE_XON_XOFF)
- /* Get rid of terminal output start and stop characters. */
- tiop->tchars.t_stopc = -1; /* C-s */
- tiop->tchars.t_startc = -1; /* C-q */
-
- /* If there is an XON character, bind it to restart the output. */
- if (oldtio.tchars.t_startc != -1)
- rl_bind_key (oldtio.tchars.t_startc, rl_restart_output);
-# endif /* USE_XON_XOFF */
-
- /* If there is an EOF char, bind _rl_eof_char to it. */
- if (oldtio.tchars.t_eofc != -1)
- _rl_eof_char = oldtio.tchars.t_eofc;
-
-# if defined (NO_KILL_INTR)
- /* Get rid of terminal-generated SIGQUIT and SIGINT. */
- tiop->tchars.t_quitc = -1; /* C-\ */
- tiop->tchars.t_intrc = -1; /* C-c */
-# endif /* NO_KILL_INTR */
-#endif /* TIOCGETC */
-
-#if defined (TIOCGLTC)
- /* Make the interrupt keys go away. Just enough to make people happy. */
- tiop->ltchars.t_dsuspc = -1; /* C-y */
- tiop->ltchars.t_lnextc = -1; /* C-v */
-#endif /* TIOCGLTC */
-}
-
-#else /* !defined (NEW_TTY_DRIVER) */
-
-#if !defined (VMIN)
-# define VMIN VEOF
-#endif
-
-#if !defined (VTIME)
-# define VTIME VEOL
-#endif
-
-#if defined (TERMIOS_TTY_DRIVER)
-# define TIOTYPE struct termios
-# define DRAIN_OUTPUT(fd) tcdrain (fd)
-# define GETATTR(tty, tiop) (tcgetattr (tty, tiop))
-# ifdef M_UNIX
-# define SETATTR(tty, tiop) (tcsetattr (tty, TCSANOW, tiop))
-# else
-# define SETATTR(tty, tiop) (tcsetattr (tty, TCSADRAIN, tiop))
-# endif /* !M_UNIX */
-#else
-# define TIOTYPE struct termio
-# define DRAIN_OUTPUT(fd)
-# define GETATTR(tty, tiop) (ioctl (tty, TCGETA, tiop))
-# define SETATTR(tty, tiop) (ioctl (tty, TCSETAW, tiop))
-#endif /* !TERMIOS_TTY_DRIVER */
-
-static TIOTYPE otio;
-
-static void save_tty_chars PARAMS((TIOTYPE *));
-static int _get_tty_settings PARAMS((int, TIOTYPE *));
-static int get_tty_settings PARAMS((int, TIOTYPE *));
-static int _set_tty_settings PARAMS((int, TIOTYPE *));
-static int set_tty_settings PARAMS((int, TIOTYPE *));
-
-static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
-
-#if defined (FLUSHO)
-# define OUTPUT_BEING_FLUSHED(tp) (tp->c_lflag & FLUSHO)
-#else
-# define OUTPUT_BEING_FLUSHED(tp) 0
-#endif
-
-static void
-save_tty_chars (tiop)
- TIOTYPE *tiop;
-{
- _rl_last_tty_chars = _rl_tty_chars;
-
- _rl_tty_chars.t_eof = tiop->c_cc[VEOF];
- _rl_tty_chars.t_eol = tiop->c_cc[VEOL];
-#ifdef VEOL2
- _rl_tty_chars.t_eol2 = tiop->c_cc[VEOL2];
-#endif
- _rl_tty_chars.t_erase = tiop->c_cc[VERASE];
-#ifdef VWERASE
- _rl_tty_chars.t_werase = tiop->c_cc[VWERASE];
-#endif
- _rl_tty_chars.t_kill = tiop->c_cc[VKILL];
-#ifdef VREPRINT
- _rl_tty_chars.t_reprint = tiop->c_cc[VREPRINT];
-#endif
- _rl_tty_chars.t_intr = tiop->c_cc[VINTR];
- _rl_tty_chars.t_quit = tiop->c_cc[VQUIT];
-#ifdef VSUSP
- _rl_tty_chars.t_susp = tiop->c_cc[VSUSP];
-#endif
-#ifdef VDSUSP
- _rl_tty_chars.t_dsusp = tiop->c_cc[VDSUSP];
-#endif
-#ifdef VSTART
- _rl_tty_chars.t_start = tiop->c_cc[VSTART];
-#endif
-#ifdef VSTOP
- _rl_tty_chars.t_stop = tiop->c_cc[VSTOP];
-#endif
-#ifdef VLNEXT
- _rl_tty_chars.t_lnext = tiop->c_cc[VLNEXT];
-#endif
-#ifdef VDISCARD
- _rl_tty_chars.t_flush = tiop->c_cc[VDISCARD];
-#endif
-#ifdef VSTATUS
- _rl_tty_chars.t_status = tiop->c_cc[VSTATUS];
-#endif
-}
-
-#if defined (_AIX) || defined (_AIX41)
-/* Currently this is only used on AIX */
-static void
-rltty_warning (msg)
- char *msg;
-{
- fprintf (stderr, "readline: warning: %s\n", msg);
-}
-#endif
-
-#if defined (_AIX)
-void
-setopost(tp)
-TIOTYPE *tp;
-{
- if ((tp->c_oflag & OPOST) == 0)
- {
- rltty_warning ("turning on OPOST for terminal\r");
- tp->c_oflag |= OPOST|ONLCR;
- }
-}
-#endif
-
-static int
-_get_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- int ioctl_ret;
-
- while (1)
- {
- ioctl_ret = GETATTR (tty, tiop);
- if (ioctl_ret < 0)
- {
- if (errno != EINTR)
- return -1;
- else
- continue;
- }
- if (OUTPUT_BEING_FLUSHED (tiop))
- {
-#if defined (FLUSHO) && defined (_AIX41)
- rltty_warning ("turning off output flushing");
- tiop->c_lflag &= ~FLUSHO;
- break;
-#else
- continue;
-#endif
- }
- break;
- }
-
- return 0;
-}
-
-static int
-get_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- set_winsize (tty);
-
- if (_get_tty_settings (tty, tiop) < 0)
- return -1;
-
-#if defined (_AIX)
- setopost(tiop);
-#endif
-
- return 0;
-}
-
-static int
-_set_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- while (SETATTR (tty, tiop) < 0)
- {
- if (errno != EINTR)
- return -1;
- errno = 0;
- }
- return 0;
-}
-
-static int
-set_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- if (_set_tty_settings (tty, tiop) < 0)
- return -1;
-
-#if 0
-
-#if defined (TERMIOS_TTY_DRIVER)
-# if defined (__ksr1__)
- if (ksrflow)
- {
- ksrflow = 0;
- tcflow (tty, TCOON);
- }
-# else /* !ksr1 */
- tcflow (tty, TCOON); /* Simulate a ^Q. */
-# endif /* !ksr1 */
-#else
- ioctl (tty, TCXONC, 1); /* Simulate a ^Q. */
-#endif /* !TERMIOS_TTY_DRIVER */
-
-#endif /* 0 */
-
- return 0;
-}
-
-static void
-prepare_terminal_settings (meta_flag, oldtio, tiop)
- int meta_flag;
- TIOTYPE oldtio, *tiop;
-{
- readline_echoing_p = (oldtio.c_lflag & ECHO);
-
- tiop->c_lflag &= ~(ICANON | ECHO);
-
- if ((unsigned char) oldtio.c_cc[VEOF] != (unsigned char) _POSIX_VDISABLE)
- _rl_eof_char = oldtio.c_cc[VEOF];
-
-#if defined (USE_XON_XOFF)
-#if defined (IXANY)
- tiop->c_iflag &= ~(IXON | IXOFF | IXANY);
-#else
- /* `strict' Posix systems do not define IXANY. */
- tiop->c_iflag &= ~(IXON | IXOFF);
-#endif /* IXANY */
-#endif /* USE_XON_XOFF */
-
- /* Only turn this off if we are using all 8 bits. */
- if (((tiop->c_cflag & CSIZE) == CS8) || meta_flag)
- tiop->c_iflag &= ~(ISTRIP | INPCK);
-
- /* Make sure we differentiate between CR and NL on input. */
- tiop->c_iflag &= ~(ICRNL | INLCR);
-
-#if !defined (HANDLE_SIGNALS)
- tiop->c_lflag &= ~ISIG;
-#else
- tiop->c_lflag |= ISIG;
-#endif
-
- tiop->c_cc[VMIN] = 1;
- tiop->c_cc[VTIME] = 0;
-
-#if defined (FLUSHO)
- if (OUTPUT_BEING_FLUSHED (tiop))
- {
- tiop->c_lflag &= ~FLUSHO;
- oldtio.c_lflag &= ~FLUSHO;
- }
-#endif
-
- /* Turn off characters that we need on Posix systems with job control,
- just to be sure. This includes ^Y and ^V. This should not really
- be necessary. */
-#if defined (TERMIOS_TTY_DRIVER) && defined (_POSIX_VDISABLE)
-
-#if defined (VLNEXT)
- tiop->c_cc[VLNEXT] = _POSIX_VDISABLE;
-#endif
-
-#if defined (VDSUSP)
- tiop->c_cc[VDSUSP] = _POSIX_VDISABLE;
-#endif
-
-#endif /* TERMIOS_TTY_DRIVER && _POSIX_VDISABLE */
-}
-#endif /* NEW_TTY_DRIVER */
-
-/* Put the terminal in CBREAK mode so that we can detect key presses. */
-void
-rl_prep_terminal (meta_flag)
- int meta_flag;
-{
- int tty;
- TIOTYPE tio;
-
- if (terminal_prepped)
- return;
-
- /* Try to keep this function from being INTerrupted. */
- block_sigint ();
-
- tty = fileno (rl_instream);
-
- if (get_tty_settings (tty, &tio) < 0)
- {
- release_sigint ();
- return;
- }
-
- otio = tio;
-
- save_tty_chars (&otio);
-
- prepare_terminal_settings (meta_flag, otio, &tio);
-
- if (set_tty_settings (tty, &tio) < 0)
- {
- release_sigint ();
- return;
- }
-
- if (_rl_enable_keypad)
- _rl_control_keypad (1);
-
- fflush (rl_outstream);
- terminal_prepped = 1;
- RL_SETSTATE(RL_STATE_TERMPREPPED);
-
- release_sigint ();
-}
-
-/* Restore the terminal's normal settings and modes. */
-void
-rl_deprep_terminal ()
-{
- int tty;
-
- if (!terminal_prepped)
- return;
-
- /* Try to keep this function from being interrupted. */
- block_sigint ();
-
- tty = fileno (rl_instream);
-
- if (_rl_enable_keypad)
- _rl_control_keypad (0);
-
- fflush (rl_outstream);
-
- if (set_tty_settings (tty, &otio) < 0)
- {
- release_sigint ();
- return;
- }
-
- terminal_prepped = 0;
- RL_UNSETSTATE(RL_STATE_TERMPREPPED);
-
- release_sigint ();
-}
-
-/* **************************************************************** */
-/* */
-/* Bogus Flow Control */
-/* */
-/* **************************************************************** */
-
-int
-rl_restart_output (count, key)
- int count, key;
-{
- int fildes = fileno (rl_outstream);
-#if defined (TIOCSTART)
-#if defined (apollo)
- ioctl (&fildes, TIOCSTART, 0);
-#else
- ioctl (fildes, TIOCSTART, 0);
-#endif /* apollo */
-
-#else /* !TIOCSTART */
-# if defined (TERMIOS_TTY_DRIVER)
-# if defined (__ksr1__)
- if (ksrflow)
- {
- ksrflow = 0;
- tcflow (fildes, TCOON);
- }
-# else /* !ksr1 */
- tcflow (fildes, TCOON); /* Simulate a ^Q. */
-# endif /* !ksr1 */
-# else /* !TERMIOS_TTY_DRIVER */
-# if defined (TCXONC)
- ioctl (fildes, TCXONC, TCOON);
-# endif /* TCXONC */
-# endif /* !TERMIOS_TTY_DRIVER */
-#endif /* !TIOCSTART */
-
- return 0;
-}
-
-int
-rl_stop_output (count, key)
- int count, key;
-{
- int fildes = fileno (rl_instream);
-
-#if defined (TIOCSTOP)
-# if defined (apollo)
- ioctl (&fildes, TIOCSTOP, 0);
-# else
- ioctl (fildes, TIOCSTOP, 0);
-# endif /* apollo */
-#else /* !TIOCSTOP */
-# if defined (TERMIOS_TTY_DRIVER)
-# if defined (__ksr1__)
- ksrflow = 1;
-# endif /* ksr1 */
- tcflow (fildes, TCOOFF);
-# else
-# if defined (TCXONC)
- ioctl (fildes, TCXONC, TCOON);
-# endif /* TCXONC */
-# endif /* !TERMIOS_TTY_DRIVER */
-#endif /* !TIOCSTOP */
-
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Default Key Bindings */
-/* */
-/* **************************************************************** */
-
-/* Set the system's default editing characters to their readline equivalents
- in KMAP. Should be static, now that we have rl_tty_set_default_bindings. */
-void
-rltty_set_default_bindings (kmap)
- Keymap kmap;
-{
- TIOTYPE ttybuff;
- int tty = fileno (rl_instream);
-
-#if defined (NEW_TTY_DRIVER)
-
-#define SET_SPECIAL(sc, func) \
- do \
- { \
- int ic; \
- ic = sc; \
- if (ic != -1 && kmap[(unsigned char)ic].type == ISFUNC) \
- kmap[(unsigned char)ic].function = func; \
- } \
- while (0)
-
- if (get_tty_settings (tty, &ttybuff) == 0)
- {
- if (ttybuff.flags & SGTTY_SET)
- {
- SET_SPECIAL (ttybuff.sgttyb.sg_erase, rl_rubout);
- SET_SPECIAL (ttybuff.sgttyb.sg_kill, rl_unix_line_discard);
- }
-
-# if defined (TIOCGLTC)
- if (ttybuff.flags & LTCHARS_SET)
- {
- SET_SPECIAL (ttybuff.ltchars.t_werasc, rl_unix_word_rubout);
- SET_SPECIAL (ttybuff.ltchars.t_lnextc, rl_quoted_insert);
- }
-# endif /* TIOCGLTC */
- }
-
-#else /* !NEW_TTY_DRIVER */
-
-#define SET_SPECIAL(sc, func) \
- do \
- { \
- unsigned char uc; \
- uc = ttybuff.c_cc[sc]; \
- if (uc != (unsigned char)_POSIX_VDISABLE && kmap[uc].type == ISFUNC) \
- kmap[uc].function = func; \
- } \
- while (0)
-
- if (get_tty_settings (tty, &ttybuff) == 0)
- {
- SET_SPECIAL (VERASE, rl_rubout);
- SET_SPECIAL (VKILL, rl_unix_line_discard);
-
-# if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER)
- SET_SPECIAL (VLNEXT, rl_quoted_insert);
-# endif /* VLNEXT && TERMIOS_TTY_DRIVER */
-
-# if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER)
- SET_SPECIAL (VWERASE, rl_unix_word_rubout);
-# endif /* VWERASE && TERMIOS_TTY_DRIVER */
- }
-#endif /* !NEW_TTY_DRIVER */
-}
-
-/* New public way to set the system default editing chars to their readline
- equivalents. */
-void
-rl_tty_set_default_bindings (kmap)
- Keymap kmap;
-{
- rltty_set_default_bindings (kmap);
-}
-
-#if defined (HANDLE_SIGNALS)
-
-#if defined (NEW_TTY_DRIVER)
-int
-_rl_disable_tty_signals ()
-{
- return 0;
-}
-
-int
-_rl_restore_tty_signals ()
-{
- return 0;
-}
-#else
-
-static TIOTYPE sigstty, nosigstty;
-static int tty_sigs_disabled = 0;
-
-int
-_rl_disable_tty_signals ()
-{
- if (tty_sigs_disabled)
- return 0;
-
- if (_get_tty_settings (fileno (rl_instream), &sigstty) < 0)
- return -1;
-
- nosigstty = sigstty;
-
- nosigstty.c_lflag &= ~ISIG;
- nosigstty.c_iflag &= ~IXON;
-
- if (_set_tty_settings (fileno (rl_instream), &nosigstty) < 0)
- return (_set_tty_settings (fileno (rl_instream), &sigstty));
-
- tty_sigs_disabled = 1;
- return 0;
-}
-
-int
-_rl_restore_tty_signals ()
-{
- int r;
-
- if (tty_sigs_disabled == 0)
- return 0;
-
- r = _set_tty_settings (fileno (rl_instream), &sigstty);
-
- if (r == 0)
- tty_sigs_disabled = 0;
-
- return r;
-}
-#endif /* !NEW_TTY_DRIVER */
-
-#endif /* HANDLE_SIGNALS */
diff --git a/readline-4.3.orig/rltty.h b/readline-4.3.orig/rltty.h
deleted file mode 100644
index 029a3fb..0000000
--- a/readline-4.3.orig/rltty.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* rltty.h - tty driver-related definitions used by some library files. */
-
-/* Copyright (C) 1995 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLTTY_H_)
-#define _RLTTY_H_
-
-/* Posix systems use termios and the Posix signal functions. */
-#if defined (TERMIOS_TTY_DRIVER)
-# include <termios.h>
-#endif /* TERMIOS_TTY_DRIVER */
-
-/* System V machines use termio. */
-#if defined (TERMIO_TTY_DRIVER)
-# include <termio.h>
-# if !defined (TCOON)
-# define TCOON 1
-# endif
-#endif /* TERMIO_TTY_DRIVER */
-
-/* Other (BSD) machines use sgtty. */
-#if defined (NEW_TTY_DRIVER)
-# include <sgtty.h>
-#endif
-
-#include "rlwinsize.h"
-
-/* Define _POSIX_VDISABLE if we are not using the `new' tty driver and
- it is not already defined. It is used both to determine if a
- special character is disabled and to disable certain special
- characters. Posix systems should set to 0, USG systems to -1. */
-#if !defined (NEW_TTY_DRIVER) && !defined (_POSIX_VDISABLE)
-# if defined (_SVR4_VDISABLE)
-# define _POSIX_VDISABLE _SVR4_VDISABLE
-# else
-# if defined (_POSIX_VERSION)
-# define _POSIX_VDISABLE 0
-# else /* !_POSIX_VERSION */
-# define _POSIX_VDISABLE -1
-# endif /* !_POSIX_VERSION */
-# endif /* !_SVR4_DISABLE */
-#endif /* !NEW_TTY_DRIVER && !_POSIX_VDISABLE */
-
-typedef struct _rl_tty_chars {
- char t_eof;
- char t_eol;
- char t_eol2;
- char t_erase;
- char t_werase;
- char t_kill;
- char t_reprint;
- char t_intr;
- char t_quit;
- char t_susp;
- char t_dsusp;
- char t_start;
- char t_stop;
- char t_lnext;
- char t_flush;
- char t_status;
-} _RL_TTY_CHARS;
-
-#endif /* _RLTTY_H_ */
diff --git a/readline-4.3.orig/rltypedefs.h b/readline-4.3.orig/rltypedefs.h
deleted file mode 100644
index f3280e9..0000000
--- a/readline-4.3.orig/rltypedefs.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* rltypedefs.h -- Type declarations for readline functions. */
-
-/* Copyright (C) 2000 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _RL_TYPEDEFS_H_
-#define _RL_TYPEDEFS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Old-style */
-
-#if !defined (_FUNCTION_DEF)
-# define _FUNCTION_DEF
-
-typedef int Function ();
-typedef void VFunction ();
-typedef char *CPFunction ();
-typedef char **CPPFunction ();
-
-#endif /* _FUNCTION_DEF */
-
-/* New style. */
-
-#if !defined (_RL_FUNCTION_TYPEDEF)
-# define _RL_FUNCTION_TYPEDEF
-
-/* Bindable functions */
-typedef int rl_command_func_t PARAMS((int, int));
-
-/* Typedefs for the completion system */
-typedef char *rl_compentry_func_t PARAMS((const char *, int));
-typedef char **rl_completion_func_t PARAMS((const char *, int, int));
-
-typedef char *rl_quote_func_t PARAMS((char *, int, char *));
-typedef char *rl_dequote_func_t PARAMS((char *, int));
-
-typedef int rl_compignore_func_t PARAMS((char **));
-
-typedef void rl_compdisp_func_t PARAMS((char **, int, int));
-
-/* Type for input and pre-read hook functions like rl_event_hook */
-typedef int rl_hook_func_t PARAMS((void));
-
-/* Input function type */
-typedef int rl_getc_func_t PARAMS((FILE *));
-
-/* Generic function that takes a character buffer (which could be the readline
- line buffer) and an index into it (which could be rl_point) and returns
- an int. */
-typedef int rl_linebuf_func_t PARAMS((char *, int));
-
-/* `Generic' function pointer typedefs */
-typedef int rl_intfunc_t PARAMS((int));
-#define rl_ivoidfunc_t rl_hook_func_t
-typedef int rl_icpfunc_t PARAMS((char *));
-typedef int rl_icppfunc_t PARAMS((char **));
-
-typedef void rl_voidfunc_t PARAMS((void));
-typedef void rl_vintfunc_t PARAMS((int));
-typedef void rl_vcpfunc_t PARAMS((char *));
-typedef void rl_vcppfunc_t PARAMS((char **));
-#endif /* _RL_FUNCTION_TYPEDEF */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RL_TYPEDEFS_H_ */
diff --git a/readline-4.3.orig/rlwinsize.h b/readline-4.3.orig/rlwinsize.h
deleted file mode 100644
index 7838154..0000000
--- a/readline-4.3.orig/rlwinsize.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* rlwinsize.h -- an attempt to isolate some of the system-specific defines
- for `struct winsize' and TIOCGWINSZ. */
-
-/* Copyright (C) 1997 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLWINSIZE_H_)
-#define _RLWINSIZE_H_
-
-#if defined (HAVE_CONFIG_H)
-# include "config.h"
-#endif
-
-/* Try to find the definitions of `struct winsize' and TIOGCWINSZ */
-
-#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
-
-#if defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
-# include <termios.h>
-#endif /* STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
-
-/* Not in either of the standard places, look around. */
-#if !defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
-# if defined (HAVE_SYS_STREAM_H)
-# include <sys/stream.h>
-# endif /* HAVE_SYS_STREAM_H */
-# if defined (HAVE_SYS_PTEM_H) /* SVR4.2, at least, has it here */
-# include <sys/ptem.h>
-# define _IO_PTEM_H /* work around SVR4.2 1.1.4 bug */
-# endif /* HAVE_SYS_PTEM_H */
-# if defined (HAVE_SYS_PTE_H) /* ??? */
-# include <sys/pte.h>
-# endif /* HAVE_SYS_PTE_H */
-#endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
-
-#endif /* _RL_WINSIZE_H */
-
diff --git a/readline-4.3.orig/savestring.c b/readline-4.3.orig/savestring.c
deleted file mode 100644
index c7ebeb1..0000000
--- a/readline-4.3.orig/savestring.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* savestring.c */
-
-/* Copyright (C) 1998 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#include <config.h>
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-#include "xmalloc.h"
-
-/* Backwards compatibility, now that savestring has been removed from
- all `public' readline header files. */
-char *
-savestring (s)
- const char *s;
-{
- return ((char *)strcpy ((char *)xmalloc (1 + strlen (s)), (s)));
-}
diff --git a/readline-4.3.orig/search.c b/readline-4.3.orig/search.c
deleted file mode 100644
index 7e0d60b..0000000
--- a/readline-4.3.orig/search.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/* search.c - code for non-incremental searching in emacs and vi modes. */
-
-/* Copyright (C) 1992 Free Software Foundation, Inc.
-
- This file is part of the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <stdio.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif
-
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-#ifdef abs
-# undef abs
-#endif
-#define abs(x) (((x) >= 0) ? (x) : -(x))
-
-extern HIST_ENTRY *_rl_saved_line_for_history;
-
-/* Functions imported from the rest of the library. */
-extern int _rl_free_history_entry PARAMS((HIST_ENTRY *));
-
-static char *noninc_search_string = (char *) NULL;
-static int noninc_history_pos;
-
-static char *prev_line_found = (char *) NULL;
-
-static int rl_history_search_len;
-static int rl_history_search_pos;
-static char *history_search_string;
-static int history_string_size;
-
-static void make_history_line_current PARAMS((HIST_ENTRY *));
-static int noninc_search_from_pos PARAMS((char *, int, int));
-static void noninc_dosearch PARAMS((char *, int));
-static void noninc_search PARAMS((int, int));
-static int rl_history_search_internal PARAMS((int, int));
-static void rl_history_search_reinit PARAMS((void));
-
-/* Make the data from the history entry ENTRY be the contents of the
- current line. This doesn't do anything with rl_point; the caller
- must set it. */
-static void
-make_history_line_current (entry)
- HIST_ENTRY *entry;
-{
- rl_replace_line (entry->line, 0);
- rl_undo_list = (UNDO_LIST *)entry->data;
-
- if (_rl_saved_line_for_history)
- _rl_free_history_entry (_rl_saved_line_for_history);
- _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
-}
-
-/* Search the history list for STRING starting at absolute history position
- POS. If STRING begins with `^', the search must match STRING at the
- beginning of a history line, otherwise a full substring match is performed
- for STRING. DIR < 0 means to search backwards through the history list,
- DIR >= 0 means to search forward. */
-static int
-noninc_search_from_pos (string, pos, dir)
- char *string;
- int pos, dir;
-{
- int ret, old;
-
- if (pos < 0)
- return -1;
-
- old = where_history ();
- if (history_set_pos (pos) == 0)
- return -1;
-
- RL_SETSTATE(RL_STATE_SEARCH);
- if (*string == '^')
- ret = history_search_prefix (string + 1, dir);
- else
- ret = history_search (string, dir);
- RL_UNSETSTATE(RL_STATE_SEARCH);
-
- if (ret != -1)
- ret = where_history ();
-
- history_set_pos (old);
- return (ret);
-}
-
-/* Search for a line in the history containing STRING. If DIR is < 0, the
- search is backwards through previous entries, else through subsequent
- entries. */
-static void
-noninc_dosearch (string, dir)
- char *string;
- int dir;
-{
- int oldpos, pos;
- HIST_ENTRY *entry;
-
- if (string == 0 || *string == '\0' || noninc_history_pos < 0)
- {
- rl_ding ();
- return;
- }
-
- pos = noninc_search_from_pos (string, noninc_history_pos + dir, dir);
- if (pos == -1)
- {
- /* Search failed, current history position unchanged. */
- rl_maybe_unsave_line ();
- rl_clear_message ();
- rl_point = 0;
- rl_ding ();
- return;
- }
-
- noninc_history_pos = pos;
-
- oldpos = where_history ();
- history_set_pos (noninc_history_pos);
- entry = current_history ();
-#if defined (VI_MODE)
- if (rl_editing_mode != vi_mode)
-#endif
- history_set_pos (oldpos);
-
- make_history_line_current (entry);
-
- rl_point = 0;
- rl_mark = rl_end;
-
- rl_clear_message ();
-}
-
-/* Search non-interactively through the history list. DIR < 0 means to
- search backwards through the history of previous commands; otherwise
- the search is for commands subsequent to the current position in the
- history list. PCHAR is the character to use for prompting when reading
- the search string; if not specified (0), it defaults to `:'. */
-static void
-noninc_search (dir, pchar)
- int dir;
- int pchar;
-{
- int saved_point, saved_mark, c;
- char *p;
-#if defined (HANDLE_MULTIBYTE)
- char mb[MB_LEN_MAX];
-#endif
-
- rl_maybe_save_line ();
- saved_point = rl_point;
- saved_mark = rl_mark;
-
- /* Use the line buffer to read the search string. */
- rl_line_buffer[0] = 0;
- rl_end = rl_point = 0;
-
- p = _rl_make_prompt_for_search (pchar ? pchar : ':');
- rl_message (p, 0, 0);
- free (p);
-
-#define SEARCH_RETURN rl_restore_prompt (); RL_UNSETSTATE(RL_STATE_NSEARCH); return
-
- RL_SETSTATE(RL_STATE_NSEARCH);
- /* Read the search string. */
- while (1)
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- c = _rl_read_mbstring (c, mb, MB_LEN_MAX);
-#endif
-
- if (c == 0)
- break;
-
- switch (c)
- {
- case CTRL('H'):
- case RUBOUT:
- if (rl_point == 0)
- {
- rl_maybe_unsave_line ();
- rl_clear_message ();
- rl_point = saved_point;
- rl_mark = saved_mark;
- SEARCH_RETURN;
- }
- _rl_rubout_char (1, c);
- break;
-
- case CTRL('W'):
- rl_unix_word_rubout (1, c);
- break;
-
- case CTRL('U'):
- rl_unix_line_discard (1, c);
- break;
-
- case RETURN:
- case NEWLINE:
- goto dosearch;
- /* NOTREACHED */
- break;
-
- case CTRL('C'):
- case CTRL('G'):
- rl_maybe_unsave_line ();
- rl_clear_message ();
- rl_point = saved_point;
- rl_mark = saved_mark;
- rl_ding ();
- SEARCH_RETURN;
-
- default:
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_insert_text (mb);
- else
-#endif
- _rl_insert_char (1, c);
- break;
- }
- (*rl_redisplay_function) ();
- }
-
- dosearch:
- rl_mark = saved_mark;
-
- /* If rl_point == 0, we want to re-use the previous search string and
- start from the saved history position. If there's no previous search
- string, punt. */
- if (rl_point == 0)
- {
- if (!noninc_search_string)
- {
- rl_ding ();
- SEARCH_RETURN;
- }
- }
- else
- {
- /* We want to start the search from the current history position. */
- noninc_history_pos = where_history ();
- FREE (noninc_search_string);
- noninc_search_string = savestring (rl_line_buffer);
- }
-
- rl_restore_prompt ();
- noninc_dosearch (noninc_search_string, dir);
- RL_UNSETSTATE(RL_STATE_NSEARCH);
-}
-
-/* Search forward through the history list for a string. If the vi-mode
- code calls this, KEY will be `?'. */
-int
-rl_noninc_forward_search (count, key)
- int count, key;
-{
- noninc_search (1, (key == '?') ? '?' : 0);
- return 0;
-}
-
-/* Reverse search the history list for a string. If the vi-mode code
- calls this, KEY will be `/'. */
-int
-rl_noninc_reverse_search (count, key)
- int count, key;
-{
- noninc_search (-1, (key == '/') ? '/' : 0);
- return 0;
-}
-
-/* Search forward through the history list for the last string searched
- for. If there is no saved search string, abort. */
-int
-rl_noninc_forward_search_again (count, key)
- int count, key;
-{
- if (!noninc_search_string)
- {
- rl_ding ();
- return (-1);
- }
- noninc_dosearch (noninc_search_string, 1);
- return 0;
-}
-
-/* Reverse search in the history list for the last string searched
- for. If there is no saved search string, abort. */
-int
-rl_noninc_reverse_search_again (count, key)
- int count, key;
-{
- if (!noninc_search_string)
- {
- rl_ding ();
- return (-1);
- }
- noninc_dosearch (noninc_search_string, -1);
- return 0;
-}
-
-static int
-rl_history_search_internal (count, dir)
- int count, dir;
-{
- HIST_ENTRY *temp;
- int ret, oldpos;
-
- rl_maybe_save_line ();
- temp = (HIST_ENTRY *)NULL;
-
- /* Search COUNT times through the history for a line whose prefix
- matches history_search_string. When this loop finishes, TEMP,
- if non-null, is the history line to copy into the line buffer. */
- while (count)
- {
- ret = noninc_search_from_pos (history_search_string, rl_history_search_pos + dir, dir);
- if (ret == -1)
- break;
-
- /* Get the history entry we found. */
- rl_history_search_pos = ret;
- oldpos = where_history ();
- history_set_pos (rl_history_search_pos);
- temp = current_history ();
- history_set_pos (oldpos);
-
- /* Don't find multiple instances of the same line. */
- if (prev_line_found && STREQ (prev_line_found, temp->line))
- continue;
- prev_line_found = temp->line;
- count--;
- }
-
- /* If we didn't find anything at all, return. */
- if (temp == 0)
- {
- rl_maybe_unsave_line ();
- rl_ding ();
- /* If you don't want the saved history line (last match) to show up
- in the line buffer after the search fails, change the #if 0 to
- #if 1 */
-#if 0
- if (rl_point > rl_history_search_len)
- {
- rl_point = rl_end = rl_history_search_len;
- rl_line_buffer[rl_end] = '\0';
- rl_mark = 0;
- }
-#else
- rl_point = rl_history_search_len; /* rl_maybe_unsave_line changes it */
- rl_mark = rl_end;
-#endif
- return 1;
- }
-
- /* Copy the line we found into the current line buffer. */
- make_history_line_current (temp);
-
- rl_point = rl_history_search_len;
- rl_mark = rl_end;
-
- return 0;
-}
-
-static void
-rl_history_search_reinit ()
-{
- rl_history_search_pos = where_history ();
- rl_history_search_len = rl_point;
- prev_line_found = (char *)NULL;
- if (rl_point)
- {
- if (rl_history_search_len >= history_string_size - 2)
- {
- history_string_size = rl_history_search_len + 2;
- history_search_string = (char *)xrealloc (history_search_string, history_string_size);
- }
- history_search_string[0] = '^';
- strncpy (history_search_string + 1, rl_line_buffer, rl_point);
- history_search_string[rl_point + 1] = '\0';
- }
- _rl_free_saved_history_line ();
-}
-
-/* Search forward in the history for the string of characters
- from the start of the line to rl_point. This is a non-incremental
- search. */
-int
-rl_history_search_forward (count, ignore)
- int count, ignore;
-{
- if (count == 0)
- return (0);
-
- if (rl_last_func != rl_history_search_forward &&
- rl_last_func != rl_history_search_backward)
- rl_history_search_reinit ();
-
- if (rl_history_search_len == 0)
- return (rl_get_next_history (count, ignore));
- return (rl_history_search_internal (abs (count), (count > 0) ? 1 : -1));
-}
-
-/* Search backward through the history for the string of characters
- from the start of the line to rl_point. This is a non-incremental
- search. */
-int
-rl_history_search_backward (count, ignore)
- int count, ignore;
-{
- if (count == 0)
- return (0);
-
- if (rl_last_func != rl_history_search_forward &&
- rl_last_func != rl_history_search_backward)
- rl_history_search_reinit ();
-
- if (rl_history_search_len == 0)
- return (rl_get_previous_history (count, ignore));
- return (rl_history_search_internal (abs (count), (count > 0) ? -1 : 1));
-}
diff --git a/readline-4.3.orig/shell.c b/readline-4.3.orig/shell.c
deleted file mode 100644
index ad27cc1..0000000
--- a/readline-4.3.orig/shell.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* shell.c -- readline utility functions that are normally provided by
- bash when readline is linked as part of the shell. */
-
-/* Copyright (C) 1997 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if defined (HAVE_LIMITS_H)
-# include <limits.h>
-#endif
-
-#include <fcntl.h>
-#include <pwd.h>
-
-#include <stdio.h>
-
-#include "rlstdc.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#if !defined (HAVE_GETPW_DECLS)
-extern struct passwd *getpwuid PARAMS((uid_t));
-#endif /* !HAVE_GETPW_DECLS */
-
-#ifndef NULL
-# define NULL 0
-#endif
-
-#ifndef CHAR_BIT
-# define CHAR_BIT 8
-#endif
-
-/* Nonzero if the integer type T is signed. */
-#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-
-/* Bound on length of the string representing an integer value of type T.
- Subtract one for the sign bit if T is signed;
- 302 / 1000 is log10 (2) rounded up;
- add one for integer division truncation;
- add one more for a minus sign if t is signed. */
-#define INT_STRLEN_BOUND(t) \
- ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 \
- + 1 + TYPE_SIGNED (t))
-
-/* All of these functions are resolved from bash if we are linking readline
- as part of bash. */
-
-/* Does shell-like quoting using single quotes. */
-char *
-sh_single_quote (string)
- char *string;
-{
- register int c;
- char *result, *r, *s;
-
- result = (char *)xmalloc (3 + (4 * strlen (string)));
- r = result;
- *r++ = '\'';
-
- for (s = string; s && (c = *s); s++)
- {
- *r++ = c;
-
- if (c == '\'')
- {
- *r++ = '\\'; /* insert escaped single quote */
- *r++ = '\'';
- *r++ = '\''; /* start new quoted string */
- }
- }
-
- *r++ = '\'';
- *r = '\0';
-
- return (result);
-}
-
-/* Set the environment variables LINES and COLUMNS to lines and cols,
- respectively. */
-void
-sh_set_lines_and_columns (lines, cols)
- int lines, cols;
-{
- char *b;
-
-#if defined (HAVE_PUTENV)
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1);
- sprintf (b, "LINES=%d", lines);
- putenv (b);
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1);
- sprintf (b, "COLUMNS=%d", cols);
- putenv (b);
-#else /* !HAVE_PUTENV */
-# if defined (HAVE_SETENV)
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
- sprintf (b, "%d", lines);
- setenv ("LINES", b, 1);
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
- sprintf (b, "%d", cols);
- setenv ("COLUMNS", b, 1);
-# endif /* HAVE_SETENV */
-#endif /* !HAVE_PUTENV */
-}
-
-char *
-sh_get_env_value (varname)
- const char *varname;
-{
- return ((char *)getenv (varname));
-}
-
-char *
-sh_get_home_dir ()
-{
- char *home_dir;
- struct passwd *entry;
-
- home_dir = (char *)NULL;
- entry = getpwuid (getuid ());
- if (entry)
- home_dir = entry->pw_dir;
- return (home_dir);
-}
-
-#if !defined (O_NDELAY)
-# if defined (FNDELAY)
-# define O_NDELAY FNDELAY
-# endif
-#endif
-
-int
-sh_unset_nodelay_mode (fd)
- int fd;
-{
- int flags, bflags;
-
- if ((flags = fcntl (fd, F_GETFL, 0)) < 0)
- return -1;
-
- bflags = 0;
-
-#ifdef O_NONBLOCK
- bflags |= O_NONBLOCK;
-#endif
-
-#ifdef O_NDELAY
- bflags |= O_NDELAY;
-#endif
-
- if (flags & bflags)
- {
- flags &= ~bflags;
- return (fcntl (fd, F_SETFL, flags));
- }
-
- return 0;
-}
diff --git a/readline-4.3.orig/shlib/Makefile.in b/readline-4.3.orig/shlib/Makefile.in
deleted file mode 100644
index 0cba57e..0000000
--- a/readline-4.3.orig/shlib/Makefile.in
+++ /dev/null
@@ -1,437 +0,0 @@
-## -*- text -*- ##
-# Makefile for the GNU readline library shared library support.
-#
-# Copyright (C) 1998 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-RL_LIBRARY_VERSION = @LIBVERSION@
-RL_LIBRARY_NAME = readline
-
-srcdir = @srcdir@
-VPATH = .:@top_srcdir@
-topdir = @top_srcdir@
-BUILD_DIR = @BUILD_DIR@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-CC = @CC@
-RANLIB = @RANLIB@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-RM = rm -f
-CP = cp
-MV = mv
-LN = ln
-
-SHELL = @MAKE_SHELL@
-
-host_os = @host_os@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-includedir = @includedir@
-libdir = @libdir@
-
-# Support an alternate destination root directory for package building
-DESTDIR =
-
-CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@ @LOCAL_LDFLAGS@ @CFLAGS@
-
-DEFS = @DEFS@
-LOCAL_DEFS = @LOCAL_DEFS@
-
-#
-# These values are generated for configure by ${topdir}/support/shobj-conf.
-# If your system is not supported by that script, but includes facilities for
-# dynamic loading of shared objects, please update the script and send the
-# changes to bash-maintainers@gnu.org.
-#
-SHOBJ_CC = @SHOBJ_CC@
-SHOBJ_CFLAGS = @SHOBJ_CFLAGS@
-SHOBJ_LD = @SHOBJ_LD@
-
-SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
-SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
-SHOBJ_LIBS = @SHOBJ_LIBS@
-
-SHLIB_XLDFLAGS = @SHLIB_XLDFLAGS@
-SHLIB_LIBS = @SHLIB_LIBS@
-SHLIB_LIBSUFF = @SHLIB_LIBSUFF@
-
-SHLIB_LIBVERSION = @SHLIB_LIBVERSION@
-
-SHLIB_STATUS = @SHLIB_STATUS@
-
-# shared library versioning
-SHLIB_MAJOR= @SHLIB_MAJOR@
-# shared library systems like SVR4's do not use minor versions
-SHLIB_MINOR= .@SHLIB_MINOR@
-
-# For libraries which include headers from other libraries.
-INCLUDES = -I. -I.. -I$(topdir)
-
-CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES) $(LOCAL_CFLAGS) $(CFLAGS)
-
-.SUFFIXES: .so
-
-.c.so:
- ${RM} $@
- $(SHOBJ_CC) -c $(CCFLAGS) $(SHOBJ_CFLAGS) -o $*.o $<
- $(MV) $*.o $@
-
-# The name of the main library target.
-
-SHARED_READLINE = libreadline.$(SHLIB_LIBVERSION)
-SHARED_HISTORY = libhistory.$(SHLIB_LIBVERSION)
-SHARED_LIBS = $(SHARED_READLINE) $(SHARED_HISTORY)
-
-# The C code source files for this library.
-CSOURCES = $(topdir)/readline.c $(topdir)/funmap.c $(topdir)/keymaps.c \
- $(topdir)/vi_mode.c $(topdir)/parens.c $(topdir)/rltty.c \
- $(topdir)/complete.c $(topdir)/bind.c $(topdir)/isearch.c \
- $(topdir)/display.c $(topdir)/signals.c $(topdir)/emacs_keymap.c \
- $(topdir)/vi_keymap.c $(topdir)/util.c $(topdir)/kill.c \
- $(topdir)/undo.c $(topdir)/macro.c $(topdir)/input.c \
- $(topdir)/callback.c $(topdir)/terminal.c $(topdir)/xmalloc.c \
- $(topdir)/history.c $(topdir)/histsearch.c $(topdir)/histexpand.c \
- $(topdir)/histfile.c $(topdir)/nls.c $(topdir)/search.c \
- $(topdir)/shell.c $(topdir)/savestring.c $(topdir)/tilde.c \
- $(topdir)/text.c $(topdir)/misc.c $(topdir)/compat.c \
- $(topdir)/mbutil.c
-
-# The header files for this library.
-HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
- posixstat.h posixdir.h posixjmp.h tilde.h rlconf.h rltty.h \
- ansi_stdlib.h tcap.h xmalloc.h rlprivate.h rlshell.h rlmbutil.h
-
-SHARED_HISTOBJ = history.so histexpand.so histfile.so histsearch.so shell.so \
- mbutil.so
-SHARED_TILDEOBJ = tilde.so
-SHARED_OBJ = readline.so vi_mode.so funmap.so keymaps.so parens.so search.so \
- rltty.so complete.so bind.so isearch.so display.so signals.so \
- util.so kill.so undo.so macro.so input.so callback.so terminal.so \
- text.so nls.so misc.so xmalloc.so $(SHARED_HISTOBJ) $(SHARED_TILDEOBJ) \
- compat.so
-
-##########################################################################
-
-all: $(SHLIB_STATUS)
-
-supported: $(SHARED_LIBS)
-
-unsupported:
- @echo "Your system and compiler (${host_os}-${CC}) are not supported by the"
- @echo "${topdir}/support/shobj-conf script."
- @echo "If your operating system provides facilities for creating"
- @echo "shared libraries, please update the script and re-run configure."
- @echo "Please send the changes you made to bash-maintainers@gnu.org"
- @echo "for inclusion in future bash and readline releases."
-
-$(SHARED_READLINE): $(SHARED_OBJ)
- $(RM) $@
- $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_OBJ) $(SHLIB_LIBS)
-
-$(SHARED_HISTORY): $(SHARED_HISTOBJ) xmalloc.so
- $(RM) $@
- $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so $(SHLIB_LIBS)
-
-# Since tilde.c is shared between readline and bash, make sure we compile
-# it with the right flags when it's built as part of readline
-tilde.so: tilde.c
- ${RM} $@
- $(SHOBJ_CC) -c $(CCFLAGS) $(SHOBJ_CFLAGS) -DREADLINE_LIBRARY -c -o tilde.o $(topdir)/tilde.c
- $(MV) tilde.o $@
-
-installdirs: $(topdir)/support/mkdirs
- -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(libdir)
-
-install: installdirs $(SHLIB_STATUS)
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -i "$(INSTALL_DATA)" $(SHARED_HISTORY)
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -i "$(INSTALL_DATA)" $(SHARED_READLINE)
- @echo install: you may need to run ldconfig
-
-uninstall:
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -U $(SHARED_HISTORY)
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -U $(SHARED_READLINE)
- @echo uninstall: you may need to run ldconfig
-
-clean mostlyclean: force
- $(RM) $(SHARED_OBJ) $(SHARED_LIBS)
-
-distclean maintainer-clean: clean
- $(RM) Makefile
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-# Dependencies
-bind.so: $(topdir)/ansi_stdlib.h $(topdir)/posixstat.h
-bind.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-bind.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-bind.so: $(topdir)/rltypedefs.h
-bind.so: $(topdir)/tilde.h $(topdir)/history.h
-compat.so: $(topdir)/rlstdc.h
-callback.so: $(topdir)/rlconf.h
-callback.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h
-callback.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-callback.so: $(topdir)/rltypedefs.h
-callback.so: $(topdir)/tilde.h
-complete.so: $(topdir)/ansi_stdlib.h posixdir.h $(topdir)/posixstat.h
-complete.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-complete.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-complete.so: $(topdir)/rltypedefs.h
-complete.so: $(topdir)/tilde.h
-display.so: $(topdir)/ansi_stdlib.h $(topdir)/posixstat.h
-display.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-display.so: $(topdir)/tcap.h
-display.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-display.so: $(topdir)/rltypedefs.h
-display.so: $(topdir)/tilde.h $(topdir)/history.h
-funmap.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-funmap.so: $(topdir)/rltypedefs.h
-funmap.so: $(topdir)/rlconf.h $(topdir)/ansi_stdlib.h
-funmap.so: ${BUILD_DIR}/config.h $(topdir)/tilde.h
-histexpand.so: $(topdir)/ansi_stdlib.h
-histexpand.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
-histexpand.so: ${BUILD_DIR}/config.h
-histfile.so: $(topdir)/ansi_stdlib.h
-histfile.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
-histfile.so: ${BUILD_DIR}/config.h
-history.so: $(topdir)/ansi_stdlib.h
-history.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
-history.so: ${BUILD_DIR}/config.h
-histsearch.so: $(topdir)/ansi_stdlib.h
-histsearch.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
-histsearch.so: ${BUILD_DIR}/config.h
-input.so: $(topdir)/ansi_stdlib.h
-input.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-input.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-input.so: $(topdir)/rltypedefs.h
-input.so: $(topdir)/tilde.h
-isearch.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-isearch.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-isearch.so: $(topdir)/rltypedefs.h
-isearch.so: $(topdir)/ansi_stdlib.h $(topdir)/history.h $(topdir)/tilde.h
-keymaps.so: emacs_keymap.c vi_keymap.c
-keymaps.so: $(topdir)/keymaps.h $(topdir)/chardefs.h $(topdir)/rlconf.h
-keymaps.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-keymaps.so: $(topdir)/rltypedefs.h
-keymaps.so: ${BUILD_DIR}/config.h $(topdir)/ansi_stdlib.h $(topdir)/tilde.h
-kill.so: $(topdir)/ansi_stdlib.h
-kill.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-kill.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-kill.so: $(topdir)/tilde.h $(topdir)/history.h $(topdir)/rltypedefs.h
-macro.so: $(topdir)/ansi_stdlib.h
-macro.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-macro.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-macro.so: $(topdir)/tilde.h $(topdir)/history.h $(topdir)/rltypedefs.h
-mbutil.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-mbutil.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/rltypedefs.h
-mbutil.so: $(topdir)/chardefs.h $(topdir)/rlstdc.h
-misc.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-misc.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-misc.so: $(topdir)/rltypedefs.h
-misc.so: $(topdir)/history.h $(topdir)/tilde.h $(topdir)/ansi_stdlib.h
-nls.so: $(topdir)/ansi_stdlib.h
-nls.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-nls.o: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-nls.o: $(topdir)/rltypedefs.h
-nls.o: $(topdir)/tilde.h $(topdir)/history.h $(topdir)/rlstdc.h
-parens.so: $(topdir)/rlconf.h ${BUILD_DIR}/config.h
-parens.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-parens.so: $(topdir)/rltypedefs.h
-parens.so: $(topdir)/tilde.h
-rltty.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-rltty.so: $(topdir)/rltty.h $(topdir)/tilde.h
-rltty.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-rltty.so: $(topdir)/rltypedefs.h
-search.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-search.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-search.so: $(topdir)/ansi_stdlib.h $(topdir)/history.h $(topdir)/tilde.h
-search.so: $(topdir)/rltypedefs.h
-signals.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-signals.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-signals.so: $(topdir)/history.h $(topdir)/tilde.h
-signals.so: $(topdir)/rltypedefs.h
-terminal.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-terminal.so: $(topdir)/tcap.h
-terminal.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-terminal.so: $(topdir)/tilde.h $(topdir)/history.h
-terminal.so: $(topdir)/rltypedefs.h
-text.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-text.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-text.so: $(topdir)/rltypedefs.h
-text.so: $(topdir)/history.h $(topdir)/tilde.h $(topdir)/ansi_stdlib.h
-tilde.so: $(topdir)/ansi_stdlib.h ${BUILD_DIR}/config.h $(topdir)/tilde.h
-undo.so: $(topdir)/ansi_stdlib.h
-undo.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-undo.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-undo.so: $(topdir)/rltypedefs.h
-undo.so: $(topdir)/tilde.h $(topdir)/history.h
-util.so: $(topdir)/posixjmp.h $(topdir)/ansi_stdlib.h
-util.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-util.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-util.so: $(topdir)/rltypedefs.h $(topdir)/tilde.h
-vi_mode.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-vi_mode.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-vi_mode.so: $(topdir)/history.h $(topdir)/ansi_stdlib.h $(topdir)/tilde.h
-vi_mode.so: $(topdir)/rltypedefs.h
-xmalloc.so: ${BUILD_DIR}/config.h
-xmalloc.so: $(topdir)/ansi_stdlib.h
-
-bind.so: $(topdir)/rlshell.h
-histfile.so: $(topdir)/rlshell.h
-nls.so: $(topdir)/rlshell.h
-readline.so: $(topdir)/rlshell.h
-shell.so: $(topdir)/rlshell.h
-terminal.so: $(topdir)/rlshell.h
-histexpand.so: $(topdir)/rlshell.h
-
-bind.so: $(topdir)/rlprivate.h
-callback.so: $(topdir)/rlprivate.h
-complete.so: $(topdir)/rlprivate.h
-display.so: $(topdir)/rlprivate.h
-input.so: $(topdir)/rlprivate.h
-isearch.so: $(topdir)/rlprivate.h
-kill.so: $(topdir)/rlprivate.h
-macro.so: $(topdir)/rlprivate.h
-mbutil.so: $(topdir)/rlprivate.h
-misc.so: $(topdir)/rlprivate.h
-nls.so: $(topdir)/rlprivate.h
-parens.so: $(topdir)/rlprivate.h
-readline.so: $(topdir)/rlprivate.h
-rltty.so: $(topdir)/rlprivate.h
-search.so: $(topdir)/rlprivate.h
-signals.so: $(topdir)/rlprivate.h
-terminal.so: $(topdir)/rlprivate.h
-text.so: $(topdir)/rlprivate.h
-undo.so: $(topdir)/rlprivate.h
-util.so: $(topdir)/rlprivate.h
-vi_mode.so: $(topdir)/rlprivate.h
-
-bind.so: $(topdir)/xmalloc.h
-complete.so: $(topdir)/xmalloc.h
-display.so: $(topdir)/xmalloc.h
-funmap.so: $(topdir)/xmalloc.h
-histexpand.so: $(topdir)/xmalloc.h
-histfile.so: $(topdir)/xmalloc.h
-history.so: $(topdir)/xmalloc.h
-input.so: $(topdir)/xmalloc.h
-isearch.so: $(topdir)/xmalloc.h
-keymaps.so: $(topdir)/xmalloc.h
-kill.so: $(topdir)/xmalloc.h
-macro.so: $(topdir)/xmalloc.h
-mbutil.so: $(topdir)/xmalloc.h
-misc.so: $(topdir)/xmalloc.h
-readline.so: $(topdir)/xmalloc.h
-savestring.so: $(topdir)/xmalloc.h
-search.so: $(topdir)/xmalloc.h
-shell.so: $(topdir)/xmalloc.h
-terminal.so: $(topdir)/xmalloc.h
-text.so: $(topdir)/xmalloc.h
-tilde.so: $(topdir)/xmalloc.h
-undo.so: $(topdir)/xmalloc.h
-util.so: $(topdir)/xmalloc.h
-vi_mode.so: $(topdir)/xmalloc.h
-xmalloc.so: $(topdir)/xmalloc.h
-
-complete.o: $(topdir)/rlmbutil.h
-display.o: $(topdir)/rlmbutil.h
-histexpand.o: $(topdir)/rlmbutil.h
-input.o: $(topdir)/rlmbutil.h
-isearch.o: $(topdir)/rlmbutil.h
-mbutil.o: $(topdir)/rlmbutil.h
-misc.o: $(topdir)/rlmbutil.h
-readline.o: $(topdir)/rlmbutil.h
-search.o: $(topdir)/rlmbutil.h
-text.o: $(topdir)/rlmbutil.h
-vi_mode.o: $(topdir)/rlmbutil.h
-
-bind.so: $(topdir)/bind.c
-callback.so: $(topdir)/callback.c
-compat.so: $(topdir)/compat.c
-complete.so: $(topdir)/complete.c
-display.so: $(topdir)/display.c
-funmap.so: $(topdir)/funmap.c
-input.so: $(topdir)/input.c
-isearch.so: $(topdir)/isearch.c
-keymaps.so: $(topdir)/keymaps.c $(topdir)/emacs_keymap.c $(topdir)/vi_keymap.c
-kill.so: $(topdir)/kill.c
-macro.so: $(topdir)/macro.c
-mbutil.so: $(topdir)/mbutil.c
-misc.so: $(topdir)/mbutil.c
-nls.so: $(topdir)/nls.c
-parens.so: $(topdir)/parens.c
-readline.so: $(topdir)/readline.c
-rltty.so: $(topdir)/rltty.c
-savestring.so: $(topdir)/savestring.c
-search.so: $(topdir)/search.c
-shell.so: $(topdir)/shell.c
-signals.so: $(topdir)/signals.c
-terminal.so: $(topdir)/terminal.c
-text.so: $(topdir)/terminal.c
-tilde.so: $(topdir)/tilde.c
-undo.so: $(topdir)/undo.c
-util.so: $(topdir)/util.c
-vi_mode.so: $(topdir)/vi_mode.c
-xmalloc.so: $(topdir)/xmalloc.c
-
-histexpand.so: $(topdir)/histexpand.c
-histfile.so: $(topdir)/histfile.c
-history.so: $(topdir)/history.c
-histsearch.so: $(topdir)/histsearch.c
-
-bind.so: bind.c
-callback.so: callback.c
-comapt.so: compat.c
-complete.so: complete.c
-display.so: display.c
-funmap.so: funmap.c
-input.so: input.c
-isearch.so: isearch.c
-keymaps.so: keymaps.c emacs_keymap.c vi_keymap.c
-kill.so: kill.c
-macro.so: macro.c
-mbutil.so: mbutil.c
-misc.so: misc.c
-nls.so: nls.c
-parens.so: parens.c
-readline.so: readline.c
-rltty.so: rltty.c
-savestring.so: savestring.c
-search.so: search.c
-signals.so: signals.c
-shell.so: shell.c
-terminal.so: terminal.c
-text.so: terminal.c
-tilde.so: tilde.c
-undo.so: undo.c
-util.so: util.c
-vi_mode.so: vi_mode.c
-xmalloc.so: xmalloc.c
-
-histexpand.so: histexpand.c
-histfile.so: histfile.c
-history.so: history.c
-histsearch.so: histsearch.c
diff --git a/readline-4.3.orig/signals.c b/readline-4.3.orig/signals.c
deleted file mode 100644
index 0a1468b..0000000
--- a/readline-4.3.orig/signals.c
+++ /dev/null
@@ -1,398 +0,0 @@
-/* signals.c -- signal handling support for readline. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h> /* Just for NULL. Yuck. */
-#include <sys/types.h>
-#include <signal.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-#if defined (GWINSZ_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL */
-
-#if defined (HANDLE_SIGNALS)
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-
-#if !defined (RETSIGTYPE)
-# if defined (VOID_SIGHANDLER)
-# define RETSIGTYPE void
-# else
-# define RETSIGTYPE int
-# endif /* !VOID_SIGHANDLER */
-#endif /* !RETSIGTYPE */
-
-#if defined (VOID_SIGHANDLER)
-# define SIGHANDLER_RETURN return
-#else
-# define SIGHANDLER_RETURN return (0)
-#endif
-
-/* This typedef is equivalent to the one for Function; it allows us
- to say SigHandler *foo = signal (SIGKILL, SIG_IGN); */
-typedef RETSIGTYPE SigHandler ();
-
-#if defined (HAVE_POSIX_SIGNALS)
-typedef struct sigaction sighandler_cxt;
-# define rl_sigaction(s, nh, oh) sigaction(s, nh, oh)
-#else
-typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt;
-# define sigemptyset(m)
-#endif /* !HAVE_POSIX_SIGNALS */
-
-static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
-static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
-
-/* Exported variables for use by applications. */
-
-/* If non-zero, readline will install its own signal handlers for
- SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */
-int rl_catch_signals = 1;
-
-/* If non-zero, readline will install a signal handler for SIGWINCH. */
-#ifdef SIGWINCH
-int rl_catch_sigwinch = 1;
-#endif
-
-static int signals_set_flag;
-static int sigwinch_set_flag;
-
-/* **************************************************************** */
-/* */
-/* Signal Handling */
-/* */
-/* **************************************************************** */
-
-static sighandler_cxt old_int, old_term, old_alrm, old_quit;
-#if defined (SIGTSTP)
-static sighandler_cxt old_tstp, old_ttou, old_ttin;
-#endif
-#if defined (SIGWINCH)
-static sighandler_cxt old_winch;
-#endif
-
-/* Readline signal handler functions. */
-
-static RETSIGTYPE
-rl_signal_handler (sig)
- int sig;
-{
-#if defined (HAVE_POSIX_SIGNALS)
- sigset_t set;
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
- long omask;
-# else /* !HAVE_BSD_SIGNALS */
- sighandler_cxt dummy_cxt; /* needed for rl_set_sighandler call */
-# endif /* !HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
- RL_SETSTATE(RL_STATE_SIGHANDLER);
-
-#if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS)
- /* Since the signal will not be blocked while we are in the signal
- handler, ignore it until rl_clear_signals resets the catcher. */
- if (sig == SIGINT || sig == SIGALRM)
- rl_set_sighandler (sig, SIG_IGN, &dummy_cxt);
-#endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS */
-
- switch (sig)
- {
- case SIGINT:
- rl_free_line_state ();
- /* FALLTHROUGH */
-
-#if defined (SIGTSTP)
- case SIGTSTP:
- case SIGTTOU:
- case SIGTTIN:
-#endif /* SIGTSTP */
- case SIGALRM:
- case SIGTERM:
- case SIGQUIT:
- rl_cleanup_after_signal ();
-
-#if defined (HAVE_POSIX_SIGNALS)
- sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &set);
- sigdelset (&set, sig);
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
- omask = sigblock (0);
-# endif /* HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
-#if defined (__EMX__)
- signal (sig, SIG_ACK);
-#endif
-
- kill (getpid (), sig);
-
- /* Let the signal that we just sent through. */
-#if defined (HAVE_POSIX_SIGNALS)
- sigprocmask (SIG_SETMASK, &set, (sigset_t *)NULL);
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
- sigsetmask (omask & ~(sigmask (sig)));
-# endif /* HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
- rl_reset_after_signal ();
- }
-
- RL_UNSETSTATE(RL_STATE_SIGHANDLER);
- SIGHANDLER_RETURN;
-}
-
-#if defined (SIGWINCH)
-static RETSIGTYPE
-rl_sigwinch_handler (sig)
- int sig;
-{
- SigHandler *oh;
-
-#if defined (MUST_REINSTALL_SIGHANDLERS)
- sighandler_cxt dummy_winch;
-
- /* We don't want to change old_winch -- it holds the state of SIGWINCH
- disposition set by the calling application. We need this state
- because we call the application's SIGWINCH handler after updating
- our own idea of the screen size. */
- rl_set_sighandler (SIGWINCH, rl_sigwinch_handler, &dummy_winch);
-#endif
-
- RL_SETSTATE(RL_STATE_SIGHANDLER);
- rl_resize_terminal ();
-
- /* If another sigwinch handler has been installed, call it. */
- oh = (SigHandler *)old_winch.sa_handler;
- if (oh && oh != (SigHandler *)SIG_IGN && oh != (SigHandler *)SIG_DFL)
- (*oh) (sig);
-
- RL_UNSETSTATE(RL_STATE_SIGHANDLER);
- SIGHANDLER_RETURN;
-}
-#endif /* SIGWINCH */
-
-/* Functions to manage signal handling. */
-
-#if !defined (HAVE_POSIX_SIGNALS)
-static int
-rl_sigaction (sig, nh, oh)
- int sig;
- sighandler_cxt *nh, *oh;
-{
- oh->sa_handler = signal (sig, nh->sa_handler);
- return 0;
-}
-#endif /* !HAVE_POSIX_SIGNALS */
-
-/* Set up a readline-specific signal handler, saving the old signal
- information in OHANDLER. Return the old signal handler, like
- signal(). */
-static SigHandler *
-rl_set_sighandler (sig, handler, ohandler)
- int sig;
- SigHandler *handler;
- sighandler_cxt *ohandler;
-{
- sighandler_cxt old_handler;
-#if defined (HAVE_POSIX_SIGNALS)
- struct sigaction act;
-
- act.sa_handler = handler;
- act.sa_flags = 0; /* XXX - should we set SA_RESTART for SIGWINCH? */
- sigemptyset (&act.sa_mask);
- sigemptyset (&ohandler->sa_mask);
- sigaction (sig, &act, &old_handler);
-#else
- old_handler.sa_handler = (SigHandler *)signal (sig, handler);
-#endif /* !HAVE_POSIX_SIGNALS */
-
- /* XXX -- assume we have memcpy */
- /* If rl_set_signals is called twice in a row, don't set the old handler to
- rl_signal_handler, because that would cause infinite recursion. */
- if (handler != rl_signal_handler || old_handler.sa_handler != rl_signal_handler)
- memcpy (ohandler, &old_handler, sizeof (sighandler_cxt));
-
- return (ohandler->sa_handler);
-}
-
-static void
-rl_maybe_set_sighandler (sig, handler, ohandler)
- int sig;
- SigHandler *handler;
- sighandler_cxt *ohandler;
-{
- sighandler_cxt dummy;
- SigHandler *oh;
-
- sigemptyset (&dummy.sa_mask);
- oh = rl_set_sighandler (sig, handler, ohandler);
- if (oh == (SigHandler *)SIG_IGN)
- rl_sigaction (sig, ohandler, &dummy);
-}
-
-int
-rl_set_signals ()
-{
- sighandler_cxt dummy;
- SigHandler *oh;
-
- if (rl_catch_signals && signals_set_flag == 0)
- {
- rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int);
- rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term);
- rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit);
-
- oh = rl_set_sighandler (SIGALRM, rl_signal_handler, &old_alrm);
- if (oh == (SigHandler *)SIG_IGN)
- rl_sigaction (SIGALRM, &old_alrm, &dummy);
-#if defined (HAVE_POSIX_SIGNALS) && defined (SA_RESTART)
- /* If the application using readline has already installed a signal
- handler with SA_RESTART, SIGALRM will cause reads to be restarted
- automatically, so readline should just get out of the way. Since
- we tested for SIG_IGN above, we can just test for SIG_DFL here. */
- if (oh != (SigHandler *)SIG_DFL && (old_alrm.sa_flags & SA_RESTART))
- rl_sigaction (SIGALRM, &old_alrm, &dummy);
-#endif /* HAVE_POSIX_SIGNALS */
-
-#if defined (SIGTSTP)
- rl_maybe_set_sighandler (SIGTSTP, rl_signal_handler, &old_tstp);
-#endif /* SIGTSTP */
-
-#if defined (SIGTTOU)
- rl_maybe_set_sighandler (SIGTTOU, rl_signal_handler, &old_ttou);
-#endif /* SIGTTOU */
-
-#if defined (SIGTTIN)
- rl_maybe_set_sighandler (SIGTTIN, rl_signal_handler, &old_ttin);
-#endif /* SIGTTIN */
-
- signals_set_flag = 1;
- }
-
-#if defined (SIGWINCH)
- if (rl_catch_sigwinch && sigwinch_set_flag == 0)
- {
- rl_maybe_set_sighandler (SIGWINCH, rl_sigwinch_handler, &old_winch);
- sigwinch_set_flag = 1;
- }
-#endif /* SIGWINCH */
-
- return 0;
-}
-
-int
-rl_clear_signals ()
-{
- sighandler_cxt dummy;
-
- if (rl_catch_signals && signals_set_flag == 1)
- {
- sigemptyset (&dummy.sa_mask);
-
- rl_sigaction (SIGINT, &old_int, &dummy);
- rl_sigaction (SIGTERM, &old_term, &dummy);
- rl_sigaction (SIGQUIT, &old_quit, &dummy);
- rl_sigaction (SIGALRM, &old_alrm, &dummy);
-
-#if defined (SIGTSTP)
- rl_sigaction (SIGTSTP, &old_tstp, &dummy);
-#endif /* SIGTSTP */
-
-#if defined (SIGTTOU)
- rl_sigaction (SIGTTOU, &old_ttou, &dummy);
-#endif /* SIGTTOU */
-
-#if defined (SIGTTIN)
- rl_sigaction (SIGTTIN, &old_ttin, &dummy);
-#endif /* SIGTTIN */
-
- signals_set_flag = 0;
- }
-
-#if defined (SIGWINCH)
- if (rl_catch_sigwinch && sigwinch_set_flag == 1)
- {
- sigemptyset (&dummy.sa_mask);
- rl_sigaction (SIGWINCH, &old_winch, &dummy);
- sigwinch_set_flag = 0;
- }
-#endif
-
- return 0;
-}
-
-/* Clean up the terminal and readline state after catching a signal, before
- resending it to the calling application. */
-void
-rl_cleanup_after_signal ()
-{
- _rl_clean_up_for_exit ();
- (*rl_deprep_term_function) ();
- rl_clear_signals ();
- rl_clear_pending_input ();
-}
-
-/* Reset the terminal and readline state after a signal handler returns. */
-void
-rl_reset_after_signal ()
-{
- (*rl_prep_term_function) (_rl_meta_flag);
- rl_set_signals ();
-}
-
-/* Free up the readline variable line state for the current line (undo list,
- any partial history entry, any keyboard macros in progress, and any
- numeric arguments in process) after catching a signal, before calling
- rl_cleanup_after_signal(). */
-void
-rl_free_line_state ()
-{
- register HIST_ENTRY *entry;
-
- rl_free_undo_list ();
-
- entry = current_history ();
- if (entry)
- entry->data = (char *)NULL;
-
- _rl_kill_kbd_macro ();
- rl_clear_message ();
- _rl_init_argument ();
-}
-
-#endif /* HANDLE_SIGNALS */
diff --git a/readline-4.3.orig/support/config.guess b/readline-4.3.orig/support/config.guess
deleted file mode 100755
index 5668108..0000000
--- a/readline-4.3.orig/support/config.guess
+++ /dev/null
@@ -1,1393 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
-
-timestamp='2002-03-20'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# 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 build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -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
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script.
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int dummy(){}" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
- if test $? = 0 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- rm -f $dummy.c $dummy.o $dummy.rel ;
- 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'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-elif (test -f /usr/5bin/uname) >/dev/null 2>&1 ; then # bash
- PATH=$PATH:/usr/5bin
-fi
-
-UNAME=`(uname) 2>/dev/null` || UNAME=unknown # bash
-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_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- # NOTE -- begin cases added for bash (mostly legacy) -- NOTE
- mac68k:machten:*:*)
- echo mac68k-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- concurrent*:*:*:*)
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo concurrent-concurrent-sysv3
- else
- echo concurrent-concurrent-bsd
- fi
- exit 0 ;;
- ppc*:SunOS:5.*:*)
- echo ppc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sparc:UNIX_SV:4.*:*)
- echo sparc-unknown-sysv${UNAME_RELEASE}
- exit 0 ;;
- mips:UNIX_SV:4.*:*)
- echo mips-mips-sysv${UNAME_RELEASE}
- exit 0 ;;
- mips:OSF*1:*:*)
- echo mips-mips-osf1
- exit 0 ;;
- mips:4.4BSD:*:*)
- echo mips-mips-bsd4.4
- exit 0 ;;
- MIS*:SMP_DC.OSx:*:dcosx) # not the same as below
- echo pyramid-pyramid-sysv4
- exit 0 ;;
- news*:NEWS*:*:*)
- echo mips-sony-newsos${UNAME_RELEASE}
- exit 0 ;;
- *370:AIX:*:*)
- echo ibm370-ibm-aix${UNAME_RELEASE}
- exit 0 ;;
- ksr1:OSF*1:*:*)
- echo ksr1-ksr-osf1
- exit 0 ;;
- esa:OSF*1:*:* | ESA:OSF*:*:*)
- echo esa-ibm-osf1
- exit 0 ;;
- DNP*:DNIX:*:*)
- echo m68k-dnix-sysv
- exit 0 ;;
- *3b2*:*:*:*)
- echo we32k-att-sysv3
- exit 0 ;;
- Alpha*:Windows_NT:*:SP*)
- echo alpha-pc-opennt
- exit 0 ;;
- *:Windows_NT:*:SP*)
- echo i386-pc-opennt
- exit 0 ;;
-
- # NOTE -- end legacy cases added for bash -- NOTE
- *:NetBSD:*:*)
- # 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.
- #
- # 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
- 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
- # The OS release
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- 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 ;;
- vax:OpenBSD:*:*) # bash
- echo vax-dec-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}'`
- fi
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- 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
- eval $set_cc_for_build
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- 2-1307)
- UNAME_MACHINE="alphaev68"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit 0;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit 0 ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${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
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- 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 */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy \
- && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- 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.
- 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:*:*)
- 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
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *: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
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- 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])
- 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>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD $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
- fi ;;
- esac
- 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:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- 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/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3D:*:*:*)
- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- 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
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
- 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
- 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.
- # 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/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- 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
- # 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
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- rm -f $dummy.c
- 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 ;;
- 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,
- # I just have to hope. -- rms.
- # 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.*:*)
- 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}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit 0 ;;
- 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 ;;
- 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
- 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_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 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`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && 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:3.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:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:*)
- 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 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
- 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*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # 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 ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit 0 ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit 0 ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit 0 ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit 0 ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit 0 ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit 0 ;;
- NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
- 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 ;;
- *: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
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-# NOTE -- Begin fallback cases added for bash -- NOTE
-case "$UNAME" in
-uts) echo uts-amdahl-sysv${UNAME_RELEASE}; exit 0 ;;
-esac
-
-if [ -f /bin/fxc.info ]; then
- echo fxc-alliant-concentrix
- exit 0
-fi
-# NOTE -- End fallback cases added for bash -- NOTE
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-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/
-
-If the version you run ($0) is already up to date, please
-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.
-
-config.guess timestamp = $timestamp
-
-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`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/readline-4.3.orig/support/config.sub b/readline-4.3.orig/support/config.sub
deleted file mode 100644
index 538dc09..0000000
--- a/readline-4.3.orig/support/config.sub
+++ /dev/null
@@ -1,1497 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
-
-timestamp='2002-03-07'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -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
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit 0;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# 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* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 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 | dsp16xx \
- | fr30 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | i370 | i860 | i960 | ia64 \
- | m32r | m68000 | m68k | m88k | mcore \
- | mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
- | mips64vr4100 | mips64vr4100el | mips64vr4300 \
- | mips64vr4300el | mips64vr5000 | mips64vr5000el \
- | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
- | mipsisa32 | mipsisa64 \
- | mn10200 | mn10300 \
- | ns16k | ns32k \
- | openrisc | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
- | pyramid \
- | sh | sh[34] | sh[34]eb | shbe | shle | sh64 \
- | 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)
- # Motorola 68HC11/12.
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- 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.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armv*-* \
- | avr-* \
- | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c54x-* \
- | clipper-* | cydra-* \
- | d10v-* | d30v-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fr30-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | m32r-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
- | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
- | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \
- | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
- | pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \
- | 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-*)
- ;;
-
- # NOTE -- BEGIN cases added for Bash -- NOTE
- butterfly-bbn* | cadmus-* | ews*-nec | masscomp-masscomp \
- | tandem-* | symmetric-* | drs6000-icl | *-*ardent | concurrent-* \
- | ksr1-* | esa-ibm | fxc-alliant | *370-amdahl | sx[45]*-nec )
- ;;
- # NOTE -- END cases added for Bash -- NOTE
-
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- 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
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax | multimax) # bash
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hbullx20-bull)
- basic_machine=m68k-bull # bash
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- ibm032-*)
- basic_machine=ibmrt-ibm # bash
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386-go32)
- basic_machine=i386-pc # bash
- os=-go32
- ;;
- i386-mingw32)
- basic_machine=i386-pc # bash
- os=-mingw32
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- luna88k-omron* | m88k-omron*) # bash
- basic_machine=m88k-omron
- ;;
- magicstation*)
- basic_machine=magicstation-unknown # bash
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- odt | odt3 | odt4) # SCO Open Desktop
- basic_machine=i386-pc # bash
- os=-sco3.2v4
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- or32 | or32-*)
- basic_machine=or32-unknown
- os=-coff
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- osr5 | sco5) # SCO Open Server
- basic_machine=i386-pc # bash
- os=-sco3.2v5
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2)
- basic_machine=i686-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc) basic_machine=powerpc-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/^[^-]*-//'`
- ;;
- 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
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- 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
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3d)
- basic_machine=alpha-cray
- os=-unicos
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- uw2 | unixware | unixware2) # bash
- basic_machine=i386-pc
- os=-sysv4.2uw2.1
- ;;
- uw7 | unixware7) # bash
- basic_machine=i386-pc
- os=-sysv5uw7
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- windows32)
- basic_machine=i386-pc
- os=-windows32-msvcrt
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- 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
- ;;
- sh3 | sh4 | sh3eb | sh4eb)
- basic_machine=sh-unknown
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparc | sparcv9 | sparcv9b)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- c4x*)
- 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
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware7*) # bash
- os=-sysv5uw7
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- # NOTE -- BEGIN CASES ADDED FOR Bash -- NOTE
- -powerux* | -superux*)
- ;;
- # NOTE -- END CASES ADDED FOR Bash -- NOTE
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto*)
- os=-nto-qnx
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- -sysvr5) # bash
- os=-sysv5
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- or32-*)
- os=-coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-ibm)
- os=-aix
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -lynxos*) # bash
- vendor=lynx
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/readline-4.3.orig/support/install.sh b/readline-4.3.orig/support/install.sh
deleted file mode 100755
index 0cac004..0000000
--- a/readline-4.3.orig/support/install.sh
+++ /dev/null
@@ -1,247 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5.
-#
-# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-tranformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/readline-4.3.orig/support/mkdirs b/readline-4.3.orig/support/mkdirs
deleted file mode 100755
index ce4fb23..0000000
--- a/readline-4.3.orig/support/mkdirs
+++ /dev/null
@@ -1,48 +0,0 @@
-#! /bin/sh
-#
-# mkdirs - a work-alike for `mkdir -p'
-#
-# Chet Ramey
-# chet@po.cwru.edu
-
-# Copyright (C) 1996-2002 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-for dir
-do
-
- test -d "$dir" && continue
-
- tomake=$dir
- while test -n "$dir" ; do
- # dir=${dir%/*}
- # dir=`expr "$dir" ':' '\(/.*\)/[^/]*'`
- if dir=`expr "$dir" ':' '\(.*\)/[^/]*'`; then
- tomake="$dir $tomake"
- else
- dir=
- fi
- done
-
- for d in $tomake
- do
- test -d "$d" && continue
- echo mkdir "$d"
- mkdir "$d"
- done
-done
-
-exit 0
diff --git a/readline-4.3.orig/support/mkdist b/readline-4.3.orig/support/mkdist
deleted file mode 100755
index 06e6155..0000000
--- a/readline-4.3.orig/support/mkdist
+++ /dev/null
@@ -1,120 +0,0 @@
-#! /bin/bash -
-#
-# mkdist - make a distribution directory from a master manifest file
-#
-# usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version
-#
-# SRCDIR defaults to src
-# MANIFEST defaults to $SRCDIR/MANIFEST
-#
-# Chet Ramey
-# chet@po.cwru.edu
-
-# Copyright (C) 1996-2002 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-SRCDIR=src
-ROOTNAME=bash
-
-usage()
-{
- echo usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version 1>&2
- exit 2
-}
-
-vmsg()
-{
- if [ -n "$verbose" ]; then
- echo mkdist: "$@"
- fi
-}
-
-while getopts m:s:r:v name
-do
- case $name in
- m) MANIFEST=$OPTARG ;;
- s) SRCDIR=$OPTARG ;;
- r) ROOTNAME=$OPTARG ;;
- v) verbose=yes ;;
- ?) usage ;;
- esac
-done
-
-: ${MANIFEST:=$SRCDIR/MANIFEST}
-
-vmsg using $MANIFEST
-
-shift $(( $OPTIND - 1 ))
-
-if [ $# -lt 1 ]; then
- usage
-fi
-
-version=$1
-newdir=${ROOTNAME}-$version
-
-vmsg creating distribution for $ROOTNAME version $version in $newdir
-
-if [ ! -d $newdir ]; then
- mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; }
-fi
-
-dirmode=755
-filmode=644
-
-while read fname type mode
-do
- [ -z "$fname" ] && continue
-
- case "$fname" in
- \#*) continue ;;
- esac
-
- case "$type" in
- d) mkdir $newdir/$fname ;;
- f) cp -p $SRCDIR/$fname $newdir/$fname ;;
- s) ln -s $mode $newdir/$fname ; mode= ;; # symlink
- l) ln $mode $newdir/$fname ; mode= ;; # hard link
- *) echo "unknown file type $type" 1>&2 ;;
- esac
-
- if [ -n "$mode" ]; then
- chmod $mode $newdir/$fname
- fi
-
-done < $MANIFEST
-
-# cut off the `-alpha' in something like `2.0-alpha', leaving just the
-# numeric version
-#version=${version%%-*}
-
-#case "$version" in
-#*.*.*) vers=${version%.*} ;;
-#*.*) vers=${version} ;;
-#esac
-
-#echo $vers > $newdir/.distribution
-
-#case "$version" in
-#*.*.*) plevel=${version##*.} ;;
-#*) plevel=0 ;;
-#esac
-#[ -z "$plevel" ] && plevel=0
-#echo ${plevel} > $newdir/.patchlevel
-
-vmsg $newdir created
-
-exit 0
diff --git a/readline-4.3.orig/support/shlib-install b/readline-4.3.orig/support/shlib-install
deleted file mode 100755
index 654cfa9..0000000
--- a/readline-4.3.orig/support/shlib-install
+++ /dev/null
@@ -1,156 +0,0 @@
-#! /bin/sh
-#
-# shlib-install - install a shared library and do any necessary host-specific
-# post-installation configuration (like ldconfig)
-#
-# usage: shlib-install [-D] -O host_os -d installation-dir -i install-prog [-U] library
-#
-# Chet Ramey
-# chet@po.cwru.edu
-
-#
-# defaults
-#
-INSTALLDIR=/usr/local/lib
-LDCONFIG=ldconfig
-
-PROGNAME=`basename $0`
-USAGE="$PROGNAME [-D] -O host_os -d installation-dir -i install-prog [-U] library"
-
-# process options
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -O) shift; host_os="$1"; shift ;;
- -d) shift; INSTALLDIR="$1"; shift ;;
- -i) shift; INSTALLPROG="$1" ; shift ;;
- -D) echo=echo ; shift ;;
- -U) uninstall=true ; shift ;;
- -*) echo "$USAGE" >&2 ; exit 2;;
- *) break ;;
- esac
-done
-
-# set install target name
-LIBNAME="$1"
-
-if [ -z "$LIBNAME" ]; then
- echo "$USAGE" >&2
- exit 2
-fi
-
-OLDSUFF=old
-MV=mv
-RM="rm -f"
-LN="ln -s"
-
-# pre-install
-
-if [ -z "$uninstall" ]; then
- ${echo} $RM ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
- if [ -f "$INSTALLDIR/$LIBNAME" ]; then
- ${echo} $MV $INSTALLDIR/$LIBNAME ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
- fi
-fi
-
-# install/uninstall
-
-if [ -z "$uninstall" ] ; then
- ${echo} eval ${INSTALLPROG} $LIBNAME ${INSTALLDIR}/${LIBNAME}
-else
- ${echo} ${RM} ${INSTALLDIR}/${LIBNAME}
-fi
-
-# post-install/uninstall
-
-# HP-UX and Darwin/MacOS X require that a shared library have execute permission
-case "$host_os" in
-hpux*|darwin*|macosx*)
- if [ -z "$uninstall" ]; then
- chmod 555 ${INSTALLDIR}/${LIBNAME}
- fi ;;
-*) ;;
-esac
-
-case "$LIBNAME" in
-*.*.[0-9].[0-9]) # libname.so.M.N
- LINK2=`echo $LIBNAME | sed 's:\(.*\..*\.[0-9]\)\.[0-9]:\1:'` # libname.so.M
- LINK1=`echo $LIBNAME | sed 's:\(.*\..*\)\.[0-9]\.[0-9]:\1:'` # libname.so
- ;;
-*.*.[0-9]) # libname.so.M
- LINK1=`echo $LIBNAME | sed 's:\(.*\..*\)\.[0-9]:\1:'` # libname.so
- ;;
-*.[0-9]) # libname.M
- LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]:\1:'` # libname
- ;;
-*.[0-9].[0-9].dylib) # libname.M.N.dylib
- LINK2=`echo $LIBNAME | sed 's:\(.*\.[0-9]\)\.[0-9]:\1:'` # libname.M.dylib
- LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]\.[0-9]:\1:'` # libname.dylib
-esac
-
-INSTALL_LINK1='cd $INSTALLDIR ; ln -s $LIBNAME $LINK1'
-INSTALL_LINK2='cd $INSTALLDIR ; ln -s $LIBNAME $LINK2'
-
-#
-# Create symlinks to the installed library. This section is incomplete.
-#
-case "$host_os" in
-*linux*|bsdi4*|*gnu*|darwin*|macosx*)
- # libname.so.M -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK2
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
- fi
-
- # libname.so -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
- fi
- ;;
-
-solaris2*|aix4.[2-9]*|osf*|irix[56]*|sysv[45]*|dgux*)
- # libname.so -> libname.so.M
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
- fi
- ;;
-
-
-# FreeBSD 3.x and above can have either a.out or ELF shared libraries
-freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
- if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
- # libname.so -> libname.so.M
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
- fi
- else
- # libname.so.M -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK2
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
- fi
-
- # libname.so -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
- fi
- fi
- ;;
-
-hpux1*)
- # libname.sl -> libname.M
- ${echo} ${RM} ${INSTALLDIR}/$LINK1.sl
- if [ -z "$uninstall" ]; then
-# ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}.sl
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}
- fi
- ;;
-
-*) ;;
-esac
-
-exit 0
diff --git a/readline-4.3.orig/support/shobj-conf b/readline-4.3.orig/support/shobj-conf
deleted file mode 100755
index 6bd7fb1..0000000
--- a/readline-4.3.orig/support/shobj-conf
+++ /dev/null
@@ -1,458 +0,0 @@
-#! /bin/sh
-#
-# shobj-conf -- output a series of variable assignments to be substituted
-# into a Makefile by configure which specify system-dependent
-# information for creating shared objects that may be loaded
-# into bash with `enable -f'
-#
-# usage: shobj-conf [-C compiler] -c host_cpu -o host_os -v host_vendor
-#
-# Chet Ramey
-# chet@po.cwru.edu
-
-# Copyright (C) 1996-2002 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-#
-# defaults
-#
-SHOBJ_STATUS=supported
-SHLIB_STATUS=supported
-
-SHOBJ_CC=cc
-SHOBJ_CFLAGS=
-SHOBJ_LD=
-SHOBJ_LDFLAGS=
-SHOBJ_XLDFLAGS=
-SHOBJ_LIBS=
-
-SHLIB_XLDFLAGS=
-SHLIB_LIBS=
-SHLIB_LIBSUFF='so'
-
-SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'
-
-PROGNAME=`basename $0`
-USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -C) shift; SHOBJ_CC="$1"; shift ;;
- -c) shift; host_cpu="$1"; shift ;;
- -o) shift; host_os="$1"; shift ;;
- -v) shift; host_vendor="$1"; shift ;;
- *) echo "$USAGE" >&2 ; exit 2;;
- esac
-done
-
-case "${host_os}-${SHOBJ_CC}" in
-sunos4*-*gcc*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD=/usr/bin/ld
- SHOBJ_LDFLAGS='-assert pure-text'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-sunos4*)
- SHOBJ_CFLAGS=-pic
- SHOBJ_LD=/usr/bin/ld
- SHOBJ_LDFLAGS='-assert pure-text'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-sunos5*-*gcc*|solaris2*-*gcc*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
- # This line works for the Solaris linker in /usr/ccs/bin/ld
- SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
- # This line works for the GNU ld
-# SHOBJ_LDFLAGS='-shared -Wl,-h,$@'
-
-# SHLIB_XLDFLAGS='-R $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sunos5*|solaris2*)
- SHOBJ_CFLAGS='-K pic'
- SHOBJ_LD=/usr/ccs/bin/ld
- SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'
-
-# SHLIB_XLDFLAGS='-R $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-# All versions of Linux or the semi-mythical GNU Hurd.
-linux*|gnu*)
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-freebsd2* | netbsd*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-x -Bshareable'
-
- SHLIB_XLDFLAGS='-R$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-# FreeBSD-3.x ELF
-freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
-
- if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- else
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_XLDFLAGS='-R$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- fi
- ;;
-
-# Darwin/MacOS X
-darwin*|macosx*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=supported
-
- SHOBJ_CFLAGS='-dynamic -fno-common'
-
- SHOBJ_LD=/usr/bin/libtool
-
- SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
- SHLIB_LIBSUFF='dylib'
-
- SHOBJ_LDFLAGS='-dynamic'
- SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
-
- SHLIB_LIBS='-lSystem'
- ;;
-
-openbsd*)
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_XLDFLAGS='-R$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-bsdi2*)
- SHOBJ_CC=shlicc2
- SHOBJ_CFLAGS=
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS=-r
- SHOBJ_LIBS=-lc_s.2.1.0
-
- # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
- # the ass -- they require changing {/usr/lib,etc}/shlib.map on
- # each system, and the library creation process is byzantine
- SHLIB_STATUS=unsupported
- ;;
-
-bsdi3*)
- SHOBJ_CC=shlicc2
- SHOBJ_CFLAGS=
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS=-r
- SHOBJ_LIBS=-lc_s.3.0.0
-
- # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
- # the ass -- they require changing {/usr/lib,etc}/shlib.map on
- # each system, and the library creation process is byzantine
- SHLIB_STATUS=unsupported
- ;;
-
-bsdi4*)
- # BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked
- # shared libraries. gcc 2.x is the standard compiler, and the
- # `normal' gcc options should work as they do in Linux.
-
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-osf*-*gcc*)
- # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-rpath $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-osf*)
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
-
- SHLIB_XLDFLAGS='-rpath $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='ld'
- SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
- SHOBJ_XLDFLAGS='-G'
-
- SHLIB_XLDFLAGS='-bM:SRE'
- SHLIB_LIBS='-lcurses -lc'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-aix4.[2-9]*)
- SHOBJ_CFLAGS=-K
- SHOBJ_LD='ld'
- SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
- SHOBJ_XLDFLAGS='-G'
-
- SHLIB_XLDFLAGS='-bM:SRE'
- SHLIB_LIBS='-lcurses -lc'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-#
-# THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
-#
-irix[56]*-*gcc*)
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-irix[56]*)
- SHOBJ_CFLAGS='-K PIC'
- SHOBJ_LD=ld
-# SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
-# Change from David Kaelbling <drk@sgi.com>. If you have problems,
-# remove the `-no_unresolved'
- SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
-
- SHLIB_XLDFLAGS='-rpath $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-hpux9*-*gcc*)
- # must use gcc; the bundled cc cannot compile PIC code
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
-
- SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
- SHLIB_LIBSUFF='sl'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-hpux9*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
-
- # If you are using the HP ANSI C compiler, you can uncomment and use
- # this code (I have not tested it)
-# SHOBJ_STATUS=supported
-# SHLIB_STATUS=supported
-#
-# SHOBJ_CFLAGS='+z'
-# SHOBJ_LD='ld'
-# SHOBJ_LDFLAGS='-b +s'
-#
-# SHLIB_XLDFLAGS='+b $(libdir)'
-# SHLIB_LIBSUFF='sl'
-# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
-
- ;;
-
-hpux10*-*gcc*)
- # must use gcc; the bundled cc cannot compile PIC code
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
-
- SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
- SHLIB_LIBSUFF='sl'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-hpux10*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
-
- # If you are using the HP ANSI C compiler, you can uncomment and use
- # this code (I have not tested it)
-# SHOBJ_STATUS=supported
-# SHLIB_STATUS=supported
-#
-# SHOBJ_CFLAGS='+z'
-# SHOBJ_LD='ld'
-# SHOBJ_LDFLAGS='-b +s +h $@'
-#
-# SHLIB_XLDFLAGS='+b $(libdir)'
-# SHLIB_LIBSUFF='sl'
-# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
-
- ;;
-
-hpux11*-*gcc*)
- # must use gcc; the bundled cc cannot compile PIC code
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
-# SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
- SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
-
- SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
- SHLIB_LIBSUFF='sl'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-hpux11*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
-
- # If you are using the HP ANSI C compiler, you can uncomment and use
- # this code (I have not tested it)
-# SHOBJ_STATUS=supported
-# SHLIB_STATUS=supported
-#
-# SHOBJ_CFLAGS='+z'
-# SHOBJ_LD='ld'
-# SHOBJ_LDFLAGS='-b +s +h $@'
-#
-# SHLIB_XLDFLAGS='+b $(libdir)'
-# SHLIB_LIBSUFF='sl'
-# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
-
- ;;
-
-sysv4*-*gcc*)
- SHOBJ_CFLAGS=-shared
- SHOBJ_LDFLAGS='-shared -h $@'
- SHOBJ_LD='${CC}'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sysv4*)
- SHOBJ_CFLAGS='-K PIC'
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-dy -z text -G -h $@'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sco3.2v5*-*gcc*)
- SHOBJ_CFLAGS='-fpic' # DEFAULTS TO ELF
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sco3.2v5*)
- SHOBJ_CFLAGS='-K pic -b elf'
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sysv5uw7*-*gcc*)
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sysv5uw7*)
- SHOBJ_CFLAGS='-K PIC'
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-G -dy -z text -h $@'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-dgux*-*gcc*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-dgux*)
- SHOBJ_CFLAGS='-K pic'
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-G -dy -h $@'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-msdos*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
- ;;
-
-#
-# Rely on correct gcc configuration for everything else
-#
-*-*gcc*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
- ;;
-
-esac
-
-echo SHOBJ_CC=\'"$SHOBJ_CC"\'
-echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
-echo SHOBJ_LD=\'"$SHOBJ_LD"\'
-echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
-echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
-echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
-
-echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
-echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
-echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
-echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
-
-echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
-echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
-
-exit 0
diff --git a/readline-4.3.orig/support/wcwidth.c b/readline-4.3.orig/support/wcwidth.c
deleted file mode 100644
index ace9a3a..0000000
--- a/readline-4.3.orig/support/wcwidth.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * This is an implementation of wcwidth() and wcswidth() as defined in
- * "The Single UNIX Specification, Version 2, The Open Group, 1997"
- * <http://www.UNIX-systems.org/online.html>
- *
- * Markus Kuhn -- 2001-09-08 -- public domain
- */
-
-#include <wchar.h>
-
-struct interval {
- unsigned short first;
- unsigned short last;
-};
-
-/* auxiliary function for binary search in interval table */
-static int bisearch(wchar_t ucs, const struct interval *table, int max) {
- int min = 0;
- int mid;
-
- if (ucs < table[0].first || ucs > table[max].last)
- return 0;
- while (max >= min) {
- mid = (min + max) / 2;
- if (ucs > table[mid].last)
- min = mid + 1;
- else if (ucs < table[mid].first)
- max = mid - 1;
- else
- return 1;
- }
-
- return 0;
-}
-
-
-/* The following functions define the column width of an ISO 10646
- * character as follows:
- *
- * - The null character (U+0000) has a column width of 0.
- *
- * - Other C0/C1 control characters and DEL will lead to a return
- * value of -1.
- *
- * - Non-spacing and enclosing combining characters (general
- * category code Mn or Me in the Unicode database) have a
- * column width of 0.
- *
- * - Other format characters (general category code Cf in the Unicode
- * database) and ZERO WIDTH SPACE (U+200B) have a column width of 0.
- *
- * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF)
- * have a column width of 0.
- *
- * - Spacing characters in the East Asian Wide (W) or East Asian
- * FullWidth (F) category as defined in Unicode Technical
- * Report #11 have a column width of 2.
- *
- * - All remaining characters (including all printable
- * ISO 8859-1 and WGL4 characters, Unicode control characters,
- * etc.) have a column width of 1.
- *
- * This implementation assumes that wchar_t characters are encoded
- * in ISO 10646.
- */
-
-int wcwidth(wchar_t ucs)
-{
- /* sorted list of non-overlapping intervals of non-spacing characters */
- static const struct interval combining[] = {
- { 0x0300, 0x034E }, { 0x0360, 0x0362 }, { 0x0483, 0x0486 },
- { 0x0488, 0x0489 }, { 0x0591, 0x05A1 }, { 0x05A3, 0x05B9 },
- { 0x05BB, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 },
- { 0x05C4, 0x05C4 }, { 0x064B, 0x0655 }, { 0x0670, 0x0670 },
- { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED },
- { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A },
- { 0x07A6, 0x07B0 }, { 0x0901, 0x0902 }, { 0x093C, 0x093C },
- { 0x0941, 0x0948 }, { 0x094D, 0x094D }, { 0x0951, 0x0954 },
- { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, { 0x09BC, 0x09BC },
- { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, { 0x09E2, 0x09E3 },
- { 0x0A02, 0x0A02 }, { 0x0A3C, 0x0A3C }, { 0x0A41, 0x0A42 },
- { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, { 0x0A70, 0x0A71 },
- { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, { 0x0AC1, 0x0AC5 },
- { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, { 0x0B01, 0x0B01 },
- { 0x0B3C, 0x0B3C }, { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 },
- { 0x0B4D, 0x0B4D }, { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 },
- { 0x0BC0, 0x0BC0 }, { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 },
- { 0x0C46, 0x0C48 }, { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 },
- { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD },
- { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, { 0x0DCA, 0x0DCA },
- { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, { 0x0E31, 0x0E31 },
- { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, { 0x0EB1, 0x0EB1 },
- { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, { 0x0EC8, 0x0ECD },
- { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, { 0x0F37, 0x0F37 },
- { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, { 0x0F80, 0x0F84 },
- { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, { 0x0F99, 0x0FBC },
- { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, { 0x1032, 0x1032 },
- { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, { 0x1058, 0x1059 },
- { 0x1160, 0x11FF }, { 0x17B7, 0x17BD }, { 0x17C6, 0x17C6 },
- { 0x17C9, 0x17D3 }, { 0x180B, 0x180E }, { 0x18A9, 0x18A9 },
- { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x206A, 0x206F },
- { 0x20D0, 0x20E3 }, { 0x302A, 0x302F }, { 0x3099, 0x309A },
- { 0xFB1E, 0xFB1E }, { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF },
- { 0xFFF9, 0xFFFB }
- };
-
- /* test for 8-bit control characters */
- if (ucs == 0)
- return 0;
- if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0))
- return -1;
-
- /* binary search in table of non-spacing characters */
- if (bisearch(ucs, combining,
- sizeof(combining) / sizeof(struct interval) - 1))
- return 0;
-
- /* if we arrive here, ucs is not a combining or C0/C1 control character */
-
- return 1 +
- (ucs >= 0x1100 &&
- (ucs <= 0x115f || /* Hangul Jamo init. consonants */
- (ucs >= 0x2e80 && ucs <= 0xa4cf && (ucs & ~0x0011) != 0x300a &&
- ucs != 0x303f) || /* CJK ... Yi */
- (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */
- (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */
- (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */
- (ucs >= 0xff00 && ucs <= 0xff5f) || /* Fullwidth Forms */
- (ucs >= 0xffe0 && ucs <= 0xffe6) ||
- (ucs >= 0x20000 && ucs <= 0x2ffff)));
-}
-
-
-int wcswidth(const wchar_t *pwcs, size_t n)
-{
- int w, width = 0;
-
- for (;*pwcs && n-- > 0; pwcs++)
- if ((w = wcwidth(*pwcs)) < 0)
- return -1;
- else
- width += w;
-
- return width;
-}
-
-
-/*
- * The following function is the same as wcwidth(), except that
- * spacing characters in the East Asian Ambiguous (A) category as
- * defined in Unicode Technical Report #11 have a column width of 2.
- * This experimental variant might be useful for users of CJK legacy
- * encodings who want to migrate to UCS. It is not otherwise
- * recommended for general use.
- */
-static int wcwidth_cjk(wchar_t ucs)
-{
- /* sorted list of non-overlapping intervals of East Asian Ambiguous
- * characters */
- static const struct interval ambiguous[] = {
- { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 },
- { 0x00AA, 0x00AA }, { 0x00AD, 0x00AE }, { 0x00B0, 0x00B4 },
- { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 },
- { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 },
- { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED },
- { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA },
- { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 },
- { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B },
- { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 },
- { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 },
- { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 },
- { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE },
- { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 },
- { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA },
- { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 },
- { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB },
- { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB },
- { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0300, 0x034E },
- { 0x0360, 0x0362 }, { 0x0391, 0x03A1 }, { 0x03A3, 0x03A9 },
- { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 }, { 0x0401, 0x0401 },
- { 0x0410, 0x044F }, { 0x0451, 0x0451 }, { 0x2010, 0x2010 },
- { 0x2013, 0x2016 }, { 0x2018, 0x2019 }, { 0x201C, 0x201D },
- { 0x2020, 0x2022 }, { 0x2024, 0x2027 }, { 0x2030, 0x2030 },
- { 0x2032, 0x2033 }, { 0x2035, 0x2035 }, { 0x203B, 0x203B },
- { 0x203E, 0x203E }, { 0x2074, 0x2074 }, { 0x207F, 0x207F },
- { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, { 0x2103, 0x2103 },
- { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, { 0x2113, 0x2113 },
- { 0x2116, 0x2116 }, { 0x2121, 0x2122 }, { 0x2126, 0x2126 },
- { 0x212B, 0x212B }, { 0x2153, 0x2155 }, { 0x215B, 0x215E },
- { 0x2160, 0x216B }, { 0x2170, 0x2179 }, { 0x2190, 0x2199 },
- { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 }, { 0x21D4, 0x21D4 },
- { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 }, { 0x2202, 0x2203 },
- { 0x2207, 0x2208 }, { 0x220B, 0x220B }, { 0x220F, 0x220F },
- { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, { 0x221A, 0x221A },
- { 0x221D, 0x2220 }, { 0x2223, 0x2223 }, { 0x2225, 0x2225 },
- { 0x2227, 0x222C }, { 0x222E, 0x222E }, { 0x2234, 0x2237 },
- { 0x223C, 0x223D }, { 0x2248, 0x2248 }, { 0x224C, 0x224C },
- { 0x2252, 0x2252 }, { 0x2260, 0x2261 }, { 0x2264, 0x2267 },
- { 0x226A, 0x226B }, { 0x226E, 0x226F }, { 0x2282, 0x2283 },
- { 0x2286, 0x2287 }, { 0x2295, 0x2295 }, { 0x2299, 0x2299 },
- { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, { 0x2312, 0x2312 },
- { 0x2329, 0x232A }, { 0x2460, 0x24BF }, { 0x24D0, 0x24E9 },
- { 0x2500, 0x254B }, { 0x2550, 0x2574 }, { 0x2580, 0x258F },
- { 0x2592, 0x2595 }, { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 },
- { 0x25B2, 0x25B3 }, { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD },
- { 0x25C0, 0x25C1 }, { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB },
- { 0x25CE, 0x25D1 }, { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF },
- { 0x2605, 0x2606 }, { 0x2609, 0x2609 }, { 0x260E, 0x260F },
- { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 },
- { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 },
- { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F },
- { 0x273D, 0x273D }, { 0x3008, 0x300B }, { 0x3014, 0x3015 },
- { 0x3018, 0x301B }, { 0xFFFD, 0xFFFD }
- };
-
- /* binary search in table of non-spacing characters */
- if (bisearch(ucs, ambiguous,
- sizeof(ambiguous) / sizeof(struct interval) - 1))
- return 2;
-
- return wcwidth(ucs);
-}
-
-
-int wcswidth_cjk(const wchar_t *pwcs, size_t n)
-{
- int w, width = 0;
-
- for (;*pwcs && n-- > 0; pwcs++)
- if ((w = wcwidth_cjk(*pwcs)) < 0)
- return -1;
- else
- width += w;
-
- return width;
-}
diff --git a/readline-4.3.orig/tcap.h b/readline-4.3.orig/tcap.h
deleted file mode 100644
index 58ab894..0000000
--- a/readline-4.3.orig/tcap.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* tcap.h -- termcap library functions and variables. */
-
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLTCAP_H_)
-#define _RLTCAP_H_
-
-#if defined (HAVE_CONFIG_H)
-# include "config.h"
-#endif
-
-#if defined (HAVE_TERMCAP_H)
-# if defined (__linux__) && !defined (SPEED_T_IN_SYS_TYPES)
-# include "rltty.h"
-# endif
-# include <termcap.h>
-#else
-
-/* On Solaris2, sys/types.h #includes sys/reg.h, which #defines PC.
- Unfortunately, PC is a global variable used by the termcap library. */
-#ifdef PC
-# undef PC
-#endif
-
-extern char PC;
-extern char *UP, *BC;
-
-extern short ospeed;
-
-extern int tgetent ();
-extern int tgetflag ();
-extern int tgetnum ();
-extern char *tgetstr ();
-
-extern int tputs ();
-
-extern char *tgoto ();
-
-#endif /* HAVE_TERMCAP_H */
-
-#endif /* !_RLTCAP_H_ */
diff --git a/readline-4.3.orig/terminal.c b/readline-4.3.orig/terminal.c
deleted file mode 100644
index f3f5b6c..0000000
--- a/readline-4.3.orig/terminal.c
+++ /dev/null
@@ -1,662 +0,0 @@
-/* terminal.c -- controlling the terminal with termcap. */
-
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include "posixstat.h"
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-# include <sys/file.h>
-#endif /* HAVE_SYS_FILE_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
-
-#include "rltty.h"
-#include "tcap.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
-#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
-
-/* **************************************************************** */
-/* */
-/* Terminal and Termcap */
-/* */
-/* **************************************************************** */
-
-static char *term_buffer = (char *)NULL;
-static char *term_string_buffer = (char *)NULL;
-
-static int tcap_initialized;
-
-#if !defined (__linux__)
-# if defined (__EMX__) || defined (NEED_EXTERN_PC)
-extern
-# endif /* __EMX__ || NEED_EXTERN_PC */
-char PC, *BC, *UP;
-#endif /* __linux__ */
-
-/* Some strings to control terminal actions. These are output by tputs (). */
-char *_rl_term_clreol;
-char *_rl_term_clrpag;
-char *_rl_term_cr;
-char *_rl_term_backspace;
-char *_rl_term_goto;
-char *_rl_term_pc;
-
-/* Non-zero if we determine that the terminal can do character insertion. */
-int _rl_terminal_can_insert = 0;
-
-/* How to insert characters. */
-char *_rl_term_im;
-char *_rl_term_ei;
-char *_rl_term_ic;
-char *_rl_term_ip;
-char *_rl_term_IC;
-
-/* How to delete characters. */
-char *_rl_term_dc;
-char *_rl_term_DC;
-
-#if defined (HACK_TERMCAP_MOTION)
-char *_rl_term_forward_char;
-#endif /* HACK_TERMCAP_MOTION */
-
-/* How to go up a line. */
-char *_rl_term_up;
-
-/* A visible bell; char if the terminal can be made to flash the screen. */
-static char *_rl_visible_bell;
-
-/* Non-zero means the terminal can auto-wrap lines. */
-int _rl_term_autowrap;
-
-/* Non-zero means that this terminal has a meta key. */
-static int term_has_meta;
-
-/* The sequences to write to turn on and off the meta key, if this
- terminal has one. */
-static char *_rl_term_mm;
-static char *_rl_term_mo;
-
-/* The key sequences output by the arrow keys, if this terminal has any. */
-static char *_rl_term_ku;
-static char *_rl_term_kd;
-static char *_rl_term_kr;
-static char *_rl_term_kl;
-
-/* How to initialize and reset the arrow keys, if this terminal has any. */
-static char *_rl_term_ks;
-static char *_rl_term_ke;
-
-/* The key sequences sent by the Home and End keys, if any. */
-static char *_rl_term_kh;
-static char *_rl_term_kH;
-static char *_rl_term_at7; /* @7 */
-
-/* Insert key */
-static char *_rl_term_kI;
-
-/* Cursor control */
-static char *_rl_term_vs; /* very visible */
-static char *_rl_term_ve; /* normal */
-
-static void bind_termcap_arrow_keys PARAMS((Keymap));
-
-/* Variables that hold the screen dimensions, used by the display code. */
-int _rl_screenwidth, _rl_screenheight, _rl_screenchars;
-
-/* Non-zero means the user wants to enable the keypad. */
-int _rl_enable_keypad;
-
-/* Non-zero means the user wants to enable a meta key. */
-int _rl_enable_meta = 1;
-
-#if defined (__EMX__)
-static void
-_emx_get_screensize (swp, shp)
- int *swp, *shp;
-{
- int sz[2];
-
- _scrsize (sz);
-
- if (swp)
- *swp = sz[0];
- if (shp)
- *shp = sz[1];
-}
-#endif
-
-/* Get readline's idea of the screen size. TTY is a file descriptor open
- to the terminal. If IGNORE_ENV is true, we do not pay attention to the
- values of $LINES and $COLUMNS. The tests for TERM_STRING_BUFFER being
- non-null serve to check whether or not we have initialized termcap. */
-void
-_rl_get_screen_size (tty, ignore_env)
- int tty, ignore_env;
-{
- char *ss;
-#if defined (TIOCGWINSZ)
- struct winsize window_size;
-#endif /* TIOCGWINSZ */
-
-#if defined (TIOCGWINSZ)
- if (ioctl (tty, TIOCGWINSZ, &window_size) == 0)
- {
- _rl_screenwidth = (int) window_size.ws_col;
- _rl_screenheight = (int) window_size.ws_row;
- }
-#endif /* TIOCGWINSZ */
-
-#if defined (__EMX__)
- _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight);
-#endif
-
- /* Environment variable COLUMNS overrides setting of "co" if IGNORE_ENV
- is unset. */
- if (_rl_screenwidth <= 0)
- {
- if (ignore_env == 0 && (ss = sh_get_env_value ("COLUMNS")))
- _rl_screenwidth = atoi (ss);
-
-#if !defined (__DJGPP__)
- if (_rl_screenwidth <= 0 && term_string_buffer)
- _rl_screenwidth = tgetnum ("co");
-#endif
- }
-
- /* Environment variable LINES overrides setting of "li" if IGNORE_ENV
- is unset. */
- if (_rl_screenheight <= 0)
- {
- if (ignore_env == 0 && (ss = sh_get_env_value ("LINES")))
- _rl_screenheight = atoi (ss);
-
-#if !defined (__DJGPP__)
- if (_rl_screenheight <= 0 && term_string_buffer)
- _rl_screenheight = tgetnum ("li");
-#endif
- }
-
- /* If all else fails, default to 80x24 terminal. */
- if (_rl_screenwidth <= 1)
- _rl_screenwidth = 80;
-
- if (_rl_screenheight <= 0)
- _rl_screenheight = 24;
-
- /* If we're being compiled as part of bash, set the environment
- variables $LINES and $COLUMNS to new values. Otherwise, just
- do a pair of putenv () or setenv () calls. */
- sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth);
-
- if (_rl_term_autowrap == 0)
- _rl_screenwidth--;
-
- _rl_screenchars = _rl_screenwidth * _rl_screenheight;
-}
-
-void
-_rl_set_screen_size (rows, cols)
- int rows, cols;
-{
- if (rows == 0 || cols == 0)
- return;
-
- _rl_screenheight = rows;
- _rl_screenwidth = cols;
-
- if (_rl_term_autowrap == 0)
- _rl_screenwidth--;
-
- _rl_screenchars = _rl_screenwidth * _rl_screenheight;
-}
-
-void
-rl_set_screen_size (rows, cols)
- int rows, cols;
-{
- _rl_set_screen_size (rows, cols);
-}
-
-void
-rl_get_screen_size (rows, cols)
- int *rows, *cols;
-{
- if (rows)
- *rows = _rl_screenheight;
- if (cols)
- *cols = _rl_screenwidth;
-}
-
-void
-rl_resize_terminal ()
-{
- if (readline_echoing_p)
- {
- _rl_get_screen_size (fileno (rl_instream), 1);
- if (CUSTOM_REDISPLAY_FUNC ())
- rl_forced_update_display ();
- else
- _rl_redisplay_after_sigwinch ();
- }
-}
-
-struct _tc_string {
- const char *tc_var;
- char **tc_value;
-};
-
-/* This should be kept sorted, just in case we decide to change the
- search algorithm to something smarter. */
-static struct _tc_string tc_strings[] =
-{
- { "@7", &_rl_term_at7 },
- { "DC", &_rl_term_DC },
- { "IC", &_rl_term_IC },
- { "ce", &_rl_term_clreol },
- { "cl", &_rl_term_clrpag },
- { "cr", &_rl_term_cr },
- { "dc", &_rl_term_dc },
- { "ei", &_rl_term_ei },
- { "ic", &_rl_term_ic },
- { "im", &_rl_term_im },
- { "kH", &_rl_term_kH }, /* home down ?? */
- { "kI", &_rl_term_kI }, /* insert */
- { "kd", &_rl_term_kd },
- { "ke", &_rl_term_ke }, /* end keypad mode */
- { "kh", &_rl_term_kh }, /* home */
- { "kl", &_rl_term_kl },
- { "kr", &_rl_term_kr },
- { "ks", &_rl_term_ks }, /* start keypad mode */
- { "ku", &_rl_term_ku },
- { "le", &_rl_term_backspace },
- { "mm", &_rl_term_mm },
- { "mo", &_rl_term_mo },
-#if defined (HACK_TERMCAP_MOTION)
- { "nd", &_rl_term_forward_char },
-#endif
- { "pc", &_rl_term_pc },
- { "up", &_rl_term_up },
- { "vb", &_rl_visible_bell },
- { "vs", &_rl_term_vs },
- { "ve", &_rl_term_ve },
-};
-
-#define NUM_TC_STRINGS (sizeof (tc_strings) / sizeof (struct _tc_string))
-
-/* Read the desired terminal capability strings into BP. The capabilities
- are described in the TC_STRINGS table. */
-static void
-get_term_capabilities (bp)
- char **bp;
-{
-#if !defined (__DJGPP__) /* XXX - doesn't DJGPP have a termcap library? */
- register int i;
-
- for (i = 0; i < NUM_TC_STRINGS; i++)
-# ifdef __LCC__
- *(tc_strings[i].tc_value) = tgetstr ((char *)tc_strings[i].tc_var, bp);
-# else
- *(tc_strings[i].tc_value) = tgetstr (tc_strings[i].tc_var, bp);
-# endif
-#endif
- tcap_initialized = 1;
-}
-
-int
-_rl_init_terminal_io (terminal_name)
- const char *terminal_name;
-{
- const char *term;
- char *buffer;
- int tty, tgetent_ret;
-
- term = terminal_name ? terminal_name : sh_get_env_value ("TERM");
- _rl_term_clrpag = _rl_term_cr = _rl_term_clreol = (char *)NULL;
- tty = rl_instream ? fileno (rl_instream) : 0;
- _rl_screenwidth = _rl_screenheight = 0;
-
- if (term == 0)
- term = "dumb";
-
- /* I've separated this out for later work on not calling tgetent at all
- if the calling application has supplied a custom redisplay function,
- (and possibly if the application has supplied a custom input function). */
- if (CUSTOM_REDISPLAY_FUNC())
- {
- tgetent_ret = -1;
- }
- else
- {
- if (term_string_buffer == 0)
- term_string_buffer = (char *)xmalloc(2032);
-
- if (term_buffer == 0)
- term_buffer = (char *)xmalloc(4080);
-
- buffer = term_string_buffer;
-
- tgetent_ret = tgetent (term_buffer, term);
- }
-
- if (tgetent_ret <= 0)
- {
- FREE (term_string_buffer);
- FREE (term_buffer);
- buffer = term_buffer = term_string_buffer = (char *)NULL;
-
- _rl_term_autowrap = 0; /* used by _rl_get_screen_size */
-
-#if defined (__EMX__)
- _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight);
- _rl_screenwidth--;
-#else /* !__EMX__ */
- _rl_get_screen_size (tty, 0);
-#endif /* !__EMX__ */
-
- /* Defaults. */
- if (_rl_screenwidth <= 0 || _rl_screenheight <= 0)
- {
- _rl_screenwidth = 79;
- _rl_screenheight = 24;
- }
-
- /* Everything below here is used by the redisplay code (tputs). */
- _rl_screenchars = _rl_screenwidth * _rl_screenheight;
- _rl_term_cr = "\r";
- _rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL;
- _rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL;
- _rl_term_ku = _rl_term_kd = _rl_term_kl = _rl_term_kr = (char *)NULL;
- _rl_term_kh = _rl_term_kH = _rl_term_kI = (char *)NULL;
- _rl_term_ks = _rl_term_ke = _rl_term_at7 = (char *)NULL;
- _rl_term_mm = _rl_term_mo = (char *)NULL;
- _rl_term_ve = _rl_term_vs = (char *)NULL;
-#if defined (HACK_TERMCAP_MOTION)
- term_forward_char = (char *)NULL;
-#endif
- _rl_terminal_can_insert = term_has_meta = 0;
-
- /* Reasonable defaults for tgoto(). Readline currently only uses
- tgoto if _rl_term_IC or _rl_term_DC is defined, but just in case we
- change that later... */
- PC = '\0';
- BC = _rl_term_backspace = "\b";
- UP = _rl_term_up;
-
- return 0;
- }
-
- get_term_capabilities (&buffer);
-
- /* Set up the variables that the termcap library expects the application
- to provide. */
- PC = _rl_term_pc ? *_rl_term_pc : 0;
- BC = _rl_term_backspace;
- UP = _rl_term_up;
-
- if (!_rl_term_cr)
- _rl_term_cr = "\r";
-
- _rl_term_autowrap = tgetflag ("am") && tgetflag ("xn");
-
- _rl_get_screen_size (tty, 0);
-
- /* "An application program can assume that the terminal can do
- character insertion if *any one of* the capabilities `IC',
- `im', `ic' or `ip' is provided." But we can't do anything if
- only `ip' is provided, so... */
- _rl_terminal_can_insert = (_rl_term_IC || _rl_term_im || _rl_term_ic);
-
- /* Check to see if this terminal has a meta key and clear the capability
- variables if there is none. */
- term_has_meta = (tgetflag ("km") || tgetflag ("MT"));
- if (!term_has_meta)
- _rl_term_mm = _rl_term_mo = (char *)NULL;
-
- /* Attempt to find and bind the arrow keys. Do not override already
- bound keys in an overzealous attempt, however. */
-
- bind_termcap_arrow_keys (emacs_standard_keymap);
-
-#if defined (VI_MODE)
- bind_termcap_arrow_keys (vi_movement_keymap);
- bind_termcap_arrow_keys (vi_insertion_keymap);
-#endif /* VI_MODE */
-
- return 0;
-}
-
-/* Bind the arrow key sequences from the termcap description in MAP. */
-static void
-bind_termcap_arrow_keys (map)
- Keymap map;
-{
- Keymap xkeymap;
-
- xkeymap = _rl_keymap;
- _rl_keymap = map;
-
- _rl_bind_if_unbound (_rl_term_ku, rl_get_previous_history);
- _rl_bind_if_unbound (_rl_term_kd, rl_get_next_history);
- _rl_bind_if_unbound (_rl_term_kr, rl_forward);
- _rl_bind_if_unbound (_rl_term_kl, rl_backward);
-
- _rl_bind_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */
- _rl_bind_if_unbound (_rl_term_at7, rl_end_of_line); /* End */
-
- _rl_keymap = xkeymap;
-}
-
-char *
-rl_get_termcap (cap)
- const char *cap;
-{
- register int i;
-
- if (tcap_initialized == 0)
- return ((char *)NULL);
- for (i = 0; i < NUM_TC_STRINGS; i++)
- {
- if (tc_strings[i].tc_var[0] == cap[0] && strcmp (tc_strings[i].tc_var, cap) == 0)
- return *(tc_strings[i].tc_value);
- }
- return ((char *)NULL);
-}
-
-/* Re-initialize the terminal considering that the TERM/TERMCAP variable
- has changed. */
-int
-rl_reset_terminal (terminal_name)
- const char *terminal_name;
-{
- _rl_init_terminal_io (terminal_name);
- return 0;
-}
-
-/* A function for the use of tputs () */
-#ifdef _MINIX
-void
-_rl_output_character_function (c)
- int c;
-{
- putc (c, _rl_out_stream);
-}
-#else /* !_MINIX */
-int
-_rl_output_character_function (c)
- int c;
-{
- return putc (c, _rl_out_stream);
-}
-#endif /* !_MINIX */
-
-/* Write COUNT characters from STRING to the output stream. */
-void
-_rl_output_some_chars (string, count)
- const char *string;
- int count;
-{
- fwrite (string, 1, count, _rl_out_stream);
-}
-
-/* Move the cursor back. */
-int
-_rl_backspace (count)
- int count;
-{
- register int i;
-
- if (_rl_term_backspace)
- for (i = 0; i < count; i++)
- tputs (_rl_term_backspace, 1, _rl_output_character_function);
- else
- for (i = 0; i < count; i++)
- putc ('\b', _rl_out_stream);
- return 0;
-}
-
-/* Move to the start of the next line. */
-int
-rl_crlf ()
-{
-#if defined (NEW_TTY_DRIVER)
- if (_rl_term_cr)
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif /* NEW_TTY_DRIVER */
- putc ('\n', _rl_out_stream);
- return 0;
-}
-
-/* Ring the terminal bell. */
-int
-rl_ding ()
-{
- if (readline_echoing_p)
- {
- switch (_rl_bell_preference)
- {
- case NO_BELL:
- default:
- break;
- case VISIBLE_BELL:
- if (_rl_visible_bell)
- {
- tputs (_rl_visible_bell, 1, _rl_output_character_function);
- break;
- }
- /* FALLTHROUGH */
- case AUDIBLE_BELL:
- fprintf (stderr, "\007");
- fflush (stderr);
- break;
- }
- return (0);
- }
- return (-1);
-}
-
-/* **************************************************************** */
-/* */
-/* Controlling the Meta Key and Keypad */
-/* */
-/* **************************************************************** */
-
-void
-_rl_enable_meta_key ()
-{
-#if !defined (__DJGPP__)
- if (term_has_meta && _rl_term_mm)
- tputs (_rl_term_mm, 1, _rl_output_character_function);
-#endif
-}
-
-void
-_rl_control_keypad (on)
- int on;
-{
-#if !defined (__DJGPP__)
- if (on && _rl_term_ks)
- tputs (_rl_term_ks, 1, _rl_output_character_function);
- else if (!on && _rl_term_ke)
- tputs (_rl_term_ke, 1, _rl_output_character_function);
-#endif
-}
-
-/* **************************************************************** */
-/* */
-/* Controlling the Cursor */
-/* */
-/* **************************************************************** */
-
-/* Set the cursor appropriately depending on IM, which is one of the
- insert modes (insert or overwrite). Insert mode gets the normal
- cursor. Overwrite mode gets a very visible cursor. Only does
- anything if we have both capabilities. */
-void
-_rl_set_cursor (im, force)
- int im, force;
-{
- if (_rl_term_ve && _rl_term_vs)
- {
- if (force || im != rl_insert_mode)
- {
- if (im == RL_IM_OVERWRITE)
- tputs (_rl_term_vs, 1, _rl_output_character_function);
- else
- tputs (_rl_term_ve, 1, _rl_output_character_function);
- }
- }
-}
diff --git a/readline-4.3.orig/text.c b/readline-4.3.orig/text.c
deleted file mode 100644
index 2a7b724..0000000
--- a/readline-4.3.orig/text.c
+++ /dev/null
@@ -1,1540 +0,0 @@
-/* text.c -- text handling commands for readline. */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#if defined (__EMX__)
-# define INCL_DOSPROCESS
-# include <os2.h>
-#endif /* __EMX__ */
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-/* Forward declarations. */
-static int rl_change_case PARAMS((int, int));
-static int _rl_char_search PARAMS((int, int, int));
-
-/* **************************************************************** */
-/* */
-/* Insert and Delete */
-/* */
-/* **************************************************************** */
-
-/* Insert a string of text into the line at point. This is the only
- way that you should do insertion. _rl_insert_char () calls this
- function. Returns the number of characters inserted. */
-int
-rl_insert_text (string)
- const char *string;
-{
- register int i, l;
-
- l = (string && *string) ? strlen (string) : 0;
- if (l == 0)
- return 0;
-
- if (rl_end + l >= rl_line_buffer_len)
- rl_extend_line_buffer (rl_end + l);
-
- for (i = rl_end; i >= rl_point; i--)
- rl_line_buffer[i + l] = rl_line_buffer[i];
- strncpy (rl_line_buffer + rl_point, string, l);
-
- /* Remember how to undo this if we aren't undoing something. */
- if (_rl_doing_an_undo == 0)
- {
- /* If possible and desirable, concatenate the undos. */
- if ((l == 1) &&
- rl_undo_list &&
- (rl_undo_list->what == UNDO_INSERT) &&
- (rl_undo_list->end == rl_point) &&
- (rl_undo_list->end - rl_undo_list->start < 20))
- rl_undo_list->end++;
- else
- rl_add_undo (UNDO_INSERT, rl_point, rl_point + l, (char *)NULL);
- }
- rl_point += l;
- rl_end += l;
- rl_line_buffer[rl_end] = '\0';
- return l;
-}
-
-/* Delete the string between FROM and TO. FROM is inclusive, TO is not.
- Returns the number of characters deleted. */
-int
-rl_delete_text (from, to)
- int from, to;
-{
- register char *text;
- register int diff, i;
-
- /* Fix it if the caller is confused. */
- if (from > to)
- SWAP (from, to);
-
- /* fix boundaries */
- if (to > rl_end)
- {
- to = rl_end;
- if (from > to)
- from = to;
- }
- if (from < 0)
- from = 0;
-
- text = rl_copy_text (from, to);
-
- /* Some versions of strncpy() can't handle overlapping arguments. */
- diff = to - from;
- for (i = from; i < rl_end - diff; i++)
- rl_line_buffer[i] = rl_line_buffer[i + diff];
-
- /* Remember how to undo this delete. */
- if (_rl_doing_an_undo == 0)
- rl_add_undo (UNDO_DELETE, from, to, text);
- else
- free (text);
-
- rl_end -= diff;
- rl_line_buffer[rl_end] = '\0';
- return (diff);
-}
-
-/* Fix up point so that it is within the line boundaries after killing
- text. If FIX_MARK_TOO is non-zero, the mark is forced within line
- boundaries also. */
-
-#define _RL_FIX_POINT(x) \
- do { \
- if (x > rl_end) \
- x = rl_end; \
- else if (x < 0) \
- x = 0; \
- } while (0)
-
-void
-_rl_fix_point (fix_mark_too)
- int fix_mark_too;
-{
- _RL_FIX_POINT (rl_point);
- if (fix_mark_too)
- _RL_FIX_POINT (rl_mark);
-}
-#undef _RL_FIX_POINT
-
-int
-_rl_replace_text (text, start, end)
- const char *text;
- int start, end;
-{
- int n;
-
- rl_begin_undo_group ();
- rl_delete_text (start, end + 1);
- rl_point = start;
- n = rl_insert_text (text);
- rl_end_undo_group ();
-
- return n;
-}
-
-/* Replace the current line buffer contents with TEXT. If CLEAR_UNDO is
- non-zero, we free the current undo list. */
-void
-rl_replace_line (text, clear_undo)
- const char *text;
- int clear_undo;
-{
- int len;
-
- len = strlen (text);
- if (len >= rl_line_buffer_len)
- rl_extend_line_buffer (len);
- strcpy (rl_line_buffer, text);
- rl_end = len;
-
- if (clear_undo)
- rl_free_undo_list ();
-
- _rl_fix_point (1);
-}
-
-/* **************************************************************** */
-/* */
-/* Readline character functions */
-/* */
-/* **************************************************************** */
-
-/* This is not a gap editor, just a stupid line input routine. No hair
- is involved in writing any of the functions, and none should be. */
-
-/* Note that:
-
- rl_end is the place in the string that we would place '\0';
- i.e., it is always safe to place '\0' there.
-
- rl_point is the place in the string where the cursor is. Sometimes
- this is the same as rl_end.
-
- Any command that is called interactively receives two arguments.
- The first is a count: the numeric arg pased to this command.
- The second is the key which invoked this command.
-*/
-
-/* **************************************************************** */
-/* */
-/* Movement Commands */
-/* */
-/* **************************************************************** */
-
-/* Note that if you `optimize' the display for these functions, you cannot
- use said functions in other functions which do not do optimizing display.
- I.e., you will have to update the data base for rl_redisplay, and you
- might as well let rl_redisplay do that job. */
-
-/* Move forward COUNT bytes. */
-int
-rl_forward_byte (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_backward_byte (-count, key));
-
- if (count > 0)
- {
- int end = rl_point + count;
-#if defined (VI_MODE)
- int lend = rl_end > 0 ? rl_end - (rl_editing_mode == vi_mode) : rl_end;
-#else
- int lend = rl_end;
-#endif
-
- if (end > lend)
- {
- rl_point = lend;
- rl_ding ();
- }
- else
- rl_point = end;
- }
-
- if (rl_end < 0)
- rl_end = 0;
-
- return 0;
-}
-
-#if defined (HANDLE_MULTIBYTE)
-/* Move forward COUNT characters. */
-int
-rl_forward_char (count, key)
- int count, key;
-{
- int point;
-
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- return (rl_forward_byte (count, key));
-
- if (count < 0)
- return (rl_backward_char (-count, key));
-
- if (count > 0)
- {
- point = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO);
-
-#if defined (VI_MODE)
- if (rl_end <= point && rl_editing_mode == vi_mode)
- point = _rl_find_prev_mbchar (rl_line_buffer, rl_end, MB_FIND_NONZERO);
-#endif
-
- if (rl_point == point)
- rl_ding ();
-
- rl_point = point;
-
- if (rl_end < 0)
- rl_end = 0;
- }
-
- return 0;
-}
-#else /* !HANDLE_MULTIBYTE */
-int
-rl_forward_char (count, key)
- int count, key;
-{
- return (rl_forward_byte (count, key));
-}
-#endif /* !HANDLE_MULTIBYTE */
-
-/* Backwards compatibility. */
-int
-rl_forward (count, key)
- int count, key;
-{
- return (rl_forward_char (count, key));
-}
-
-/* Move backward COUNT bytes. */
-int
-rl_backward_byte (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_forward_byte (-count, key));
-
- if (count > 0)
- {
- if (rl_point < count)
- {
- rl_point = 0;
- rl_ding ();
- }
- else
- rl_point -= count;
- }
-
- if (rl_point < 0)
- rl_point = 0;
-
- return 0;
-}
-
-#if defined (HANDLE_MULTIBYTE)
-/* Move backward COUNT characters. */
-int
-rl_backward_char (count, key)
- int count, key;
-{
- int point;
-
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- return (rl_backward_byte (count, key));
-
- if (count < 0)
- return (rl_forward_char (-count, key));
-
- if (count > 0)
- {
- point = rl_point;
-
- while (count > 0 && point > 0)
- {
- point = _rl_find_prev_mbchar (rl_line_buffer, point, MB_FIND_NONZERO);
- count--;
- }
- if (count > 0)
- {
- rl_point = 0;
- rl_ding ();
- }
- else
- rl_point = point;
- }
-
- return 0;
-}
-#else
-int
-rl_backward_char (count, key)
- int count, key;
-{
- return (rl_backward_byte (count, key));
-}
-#endif
-
-/* Backwards compatibility. */
-int
-rl_backward (count, key)
- int count, key;
-{
- return (rl_backward_char (count, key));
-}
-
-/* Move to the beginning of the line. */
-int
-rl_beg_of_line (count, key)
- int count, key;
-{
- rl_point = 0;
- return 0;
-}
-
-/* Move to the end of the line. */
-int
-rl_end_of_line (count, key)
- int count, key;
-{
- rl_point = rl_end;
- return 0;
-}
-
-/* XXX - these might need changes for multibyte characters */
-/* Move forward a word. We do what Emacs does. */
-int
-rl_forward_word (count, key)
- int count, key;
-{
- int c;
-
- if (count < 0)
- return (rl_backward_word (-count, key));
-
- while (count)
- {
- if (rl_point == rl_end)
- return 0;
-
- /* If we are not in a word, move forward until we are in one.
- Then, move forward until we hit a non-alphabetic character. */
- c = rl_line_buffer[rl_point];
- if (rl_alphabetic (c) == 0)
- {
- while (++rl_point < rl_end)
- {
- c = rl_line_buffer[rl_point];
- if (rl_alphabetic (c))
- break;
- }
- }
-
- if (rl_point == rl_end)
- return 0;
-
- while (++rl_point < rl_end)
- {
- c = rl_line_buffer[rl_point];
- if (rl_alphabetic (c) == 0)
- break;
- }
- --count;
- }
-
- return 0;
-}
-
-/* Move backward a word. We do what Emacs does. */
-int
-rl_backward_word (count, key)
- int count, key;
-{
- int c;
-
- if (count < 0)
- return (rl_forward_word (-count, key));
-
- while (count)
- {
- if (!rl_point)
- return 0;
-
- /* Like rl_forward_word (), except that we look at the characters
- just before point. */
-
- c = rl_line_buffer[rl_point - 1];
- if (rl_alphabetic (c) == 0)
- {
- while (--rl_point)
- {
- c = rl_line_buffer[rl_point - 1];
- if (rl_alphabetic (c))
- break;
- }
- }
-
- while (rl_point)
- {
- c = rl_line_buffer[rl_point - 1];
- if (rl_alphabetic (c) == 0)
- break;
- else
- --rl_point;
- }
-
- --count;
- }
-
- return 0;
-}
-
-/* Clear the current line. Numeric argument to C-l does this. */
-int
-rl_refresh_line (ignore1, ignore2)
- int ignore1, ignore2;
-{
- int curr_line;
-
- curr_line = _rl_current_display_line ();
-
- _rl_move_vert (curr_line);
- _rl_move_cursor_relative (0, rl_line_buffer); /* XXX is this right */
-
- _rl_clear_to_eol (0); /* arg of 0 means to not use spaces */
-
- rl_forced_update_display ();
- rl_display_fixed = 1;
-
- return 0;
-}
-
-/* C-l typed to a line without quoting clears the screen, and then reprints
- the prompt and the current input line. Given a numeric arg, redraw only
- the current line. */
-int
-rl_clear_screen (count, key)
- int count, key;
-{
- if (rl_explicit_arg)
- {
- rl_refresh_line (count, key);
- return 0;
- }
-
- _rl_clear_screen (); /* calls termcap function to clear screen */
- rl_forced_update_display ();
- rl_display_fixed = 1;
-
- return 0;
-}
-
-int
-rl_arrow_keys (count, c)
- int count, c;
-{
- int ch;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- ch = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- switch (_rl_to_upper (ch))
- {
- case 'A':
- rl_get_previous_history (count, ch);
- break;
-
- case 'B':
- rl_get_next_history (count, ch);
- break;
-
- case 'C':
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_forward_char (count, ch);
- else
- rl_forward_byte (count, ch);
- break;
-
- case 'D':
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_backward_char (count, ch);
- else
- rl_backward_byte (count, ch);
- break;
-
- default:
- rl_ding ();
- }
-
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Text commands */
-/* */
-/* **************************************************************** */
-
-#ifdef HANDLE_MULTIBYTE
-static char pending_bytes[MB_LEN_MAX];
-static int pending_bytes_length = 0;
-static mbstate_t ps = {0};
-#endif
-
-/* Insert the character C at the current location, moving point forward.
- If C introduces a multibyte sequence, we read the whole sequence and
- then insert the multibyte char into the line buffer. */
-int
-_rl_insert_char (count, c)
- int count, c;
-{
- register int i;
- char *string;
-#ifdef HANDLE_MULTIBYTE
- int string_size;
- char incoming[MB_LEN_MAX + 1];
- int incoming_length = 0;
- mbstate_t ps_back;
- static int stored_count = 0;
-#endif
-
- if (count <= 0)
- return 0;
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- {
- incoming[0] = c;
- incoming[1] = '\0';
- incoming_length = 1;
- }
- else
- {
- wchar_t wc;
- size_t ret;
-
- if (stored_count <= 0)
- stored_count = count;
- else
- count = stored_count;
-
- ps_back = ps;
- pending_bytes[pending_bytes_length++] = c;
- ret = mbrtowc (&wc, pending_bytes, pending_bytes_length, &ps);
-
- if (ret == (size_t)-2)
- {
- /* Bytes too short to compose character, try to wait for next byte.
- Restore the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- ps = ps_back;
- return 1;
- }
- else if (ret == (size_t)-1)
- {
- /* Invalid byte sequence for the current locale. Treat first byte
- as a single character. */
- incoming[0] = pending_bytes[0];
- incoming[1] = '\0';
- incoming_length = 1;
- pending_bytes_length--;
- memmove (pending_bytes, pending_bytes + 1, pending_bytes_length);
- /* Clear the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else if (ret == (size_t)0)
- {
- incoming[0] = '\0';
- incoming_length = 0;
- pending_bytes_length--;
- /* Clear the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else
- {
- /* We successfully read a single multibyte character. */
- memcpy (incoming, pending_bytes, pending_bytes_length);
- incoming[pending_bytes_length] = '\0';
- incoming_length = pending_bytes_length;
- pending_bytes_length = 0;
- }
- }
-#endif /* HANDLE_MULTIBYTE */
-
- /* If we can optimize, then do it. But don't let people crash
- readline because of extra large arguments. */
- if (count > 1 && count <= 1024)
- {
-#if defined (HANDLE_MULTIBYTE)
- string_size = count * incoming_length;
- string = (char *)xmalloc (1 + string_size);
-
- i = 0;
- while (i < string_size)
- {
- strncpy (string + i, incoming, incoming_length);
- i += incoming_length;
- }
- incoming_length = 0;
- stored_count = 0;
-#else /* !HANDLE_MULTIBYTE */
- string = (char *)xmalloc (1 + count);
-
- for (i = 0; i < count; i++)
- string[i] = c;
-#endif /* !HANDLE_MULTIBYTE */
-
- string[i] = '\0';
- rl_insert_text (string);
- free (string);
-
- return 0;
- }
-
- if (count > 1024)
- {
- int decreaser;
-#if defined (HANDLE_MULTIBYTE)
- string_size = incoming_length * 1024;
- string = (char *)xmalloc (1 + string_size);
-
- i = 0;
- while (i < string_size)
- {
- strncpy (string + i, incoming, incoming_length);
- i += incoming_length;
- }
-
- while (count)
- {
- decreaser = (count > 1024) ? 1024 : count;
- string[decreaser*incoming_length] = '\0';
- rl_insert_text (string);
- count -= decreaser;
- }
-
- free (string);
- incoming_length = 0;
- stored_count = 0;
-#else /* !HANDLE_MULTIBYTE */
- char str[1024+1];
-
- for (i = 0; i < 1024; i++)
- str[i] = c;
-
- while (count)
- {
- decreaser = (count > 1024 ? 1024 : count);
- str[decreaser] = '\0';
- rl_insert_text (str);
- count -= decreaser;
- }
-#endif /* !HANDLE_MULTIBYTE */
-
- return 0;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- {
-#endif
- /* We are inserting a single character.
- If there is pending input, then make a string of all of the
- pending characters that are bound to rl_insert, and insert
- them all. */
- if (_rl_any_typein ())
- _rl_insert_typein (c);
- else
- {
- /* Inserting a single character. */
- char str[2];
-
- str[1] = '\0';
- str[0] = c;
- rl_insert_text (str);
- }
-#if defined (HANDLE_MULTIBYTE)
- }
- else
- {
- rl_insert_text (incoming);
- stored_count = 0;
- }
-#endif
-
- return 0;
-}
-
-/* Overwrite the character at point (or next COUNT characters) with C.
- If C introduces a multibyte character sequence, read the entire sequence
- before starting the overwrite loop. */
-int
-_rl_overwrite_char (count, c)
- int count, c;
-{
- int i;
-#if defined (HANDLE_MULTIBYTE)
- char mbkey[MB_LEN_MAX];
- int k;
-
- /* Read an entire multibyte character sequence to insert COUNT times. */
- if (count > 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- k = _rl_read_mbstring (c, mbkey, MB_LEN_MAX);
-#endif
-
- for (i = 0; i < count; i++)
- {
- rl_begin_undo_group ();
-
- if (rl_point < rl_end)
- rl_delete (1, c);
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_insert_text (mbkey);
- else
-#endif
- _rl_insert_char (1, c);
-
- rl_end_undo_group ();
- }
-
- return 0;
-}
-
-int
-rl_insert (count, c)
- int count, c;
-{
- return (rl_insert_mode == RL_IM_INSERT ? _rl_insert_char (count, c)
- : _rl_overwrite_char (count, c));
-}
-
-/* Insert the next typed character verbatim. */
-int
-rl_quoted_insert (count, key)
- int count, key;
-{
- int c;
-
-#if defined (HANDLE_SIGNALS)
- _rl_disable_tty_signals ();
-#endif
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-#if defined (HANDLE_SIGNALS)
- _rl_restore_tty_signals ();
-#endif
-
- return (_rl_insert_char (count, c));
-}
-
-/* Insert a tab character. */
-int
-rl_tab_insert (count, key)
- int count, key;
-{
- return (_rl_insert_char (count, '\t'));
-}
-
-/* What to do when a NEWLINE is pressed. We accept the whole line.
- KEY is the key that invoked this command. I guess it could have
- meaning in the future. */
-int
-rl_newline (count, key)
- int count, key;
-{
- rl_done = 1;
-
- if (_rl_history_preserve_point)
- _rl_history_saved_point = (rl_point == rl_end) ? -1 : rl_point;
-
- RL_SETSTATE(RL_STATE_DONE);
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- {
- _rl_vi_done_inserting ();
- _rl_vi_reset_last ();
- }
-#endif /* VI_MODE */
-
- /* If we've been asked to erase empty lines, suppress the final update,
- since _rl_update_final calls rl_crlf(). */
- if (rl_erase_empty_line && rl_point == 0 && rl_end == 0)
- return 0;
-
- if (readline_echoing_p)
- _rl_update_final ();
- return 0;
-}
-
-/* What to do for some uppercase characters, like meta characters,
- and some characters appearing in emacs_ctlx_keymap. This function
- is just a stub, you bind keys to it and the code in _rl_dispatch ()
- is special cased. */
-int
-rl_do_lowercase_version (ignore1, ignore2)
- int ignore1, ignore2;
-{
- return 0;
-}
-
-/* This is different from what vi does, so the code's not shared. Emacs
- rubout in overwrite mode has one oddity: it replaces a control
- character that's displayed as two characters (^X) with two spaces. */
-int
-_rl_overwrite_rubout (count, key)
- int count, key;
-{
- int opoint;
- int i, l;
-
- if (rl_point == 0)
- {
- rl_ding ();
- return 1;
- }
-
- opoint = rl_point;
-
- /* L == number of spaces to insert */
- for (i = l = 0; i < count; i++)
- {
- rl_backward_char (1, key);
- l += rl_character_len (rl_line_buffer[rl_point], rl_point); /* not exactly right */
- }
-
- rl_begin_undo_group ();
-
- if (count > 1 || rl_explicit_arg)
- rl_kill_text (opoint, rl_point);
- else
- rl_delete_text (opoint, rl_point);
-
- /* Emacs puts point at the beginning of the sequence of spaces. */
- opoint = rl_point;
- _rl_insert_char (l, ' ');
- rl_point = opoint;
-
- rl_end_undo_group ();
-
- return 0;
-}
-
-/* Rubout the character behind point. */
-int
-rl_rubout (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_delete (-count, key));
-
- if (!rl_point)
- {
- rl_ding ();
- return -1;
- }
-
- if (rl_insert_mode == RL_IM_OVERWRITE)
- return (_rl_overwrite_rubout (count, key));
-
- return (_rl_rubout_char (count, key));
-}
-
-int
-_rl_rubout_char (count, key)
- int count, key;
-{
- int orig_point;
- unsigned char c;
-
- /* Duplicated code because this is called from other parts of the library. */
- if (count < 0)
- return (rl_delete (-count, key));
-
- if (rl_point == 0)
- {
- rl_ding ();
- return -1;
- }
-
- if (count > 1 || rl_explicit_arg)
- {
- orig_point = rl_point;
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_backward_char (count, key);
- else
-#endif
- rl_backward_byte (count, key);
- rl_kill_text (orig_point, rl_point);
- }
- else
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- {
-#endif
- c = rl_line_buffer[--rl_point];
- rl_delete_text (rl_point, rl_point + 1);
-#if defined (HANDLE_MULTIBYTE)
- }
- else
- {
- int orig_point;
-
- orig_point = rl_point;
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- c = rl_line_buffer[rl_point];
- rl_delete_text (rl_point, orig_point);
- }
-#endif /* HANDLE_MULTIBYTE */
-
- /* I don't think that the hack for end of line is needed for
- multibyte chars. */
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
-#endif
- if (rl_point == rl_end && ISPRINT (c) && _rl_last_c_pos)
- {
- int l;
- l = rl_character_len (c, rl_point);
- _rl_erase_at_end_of_line (l);
- }
- }
-
- return 0;
-}
-
-/* Delete the character under the cursor. Given a numeric argument,
- kill that many characters instead. */
-int
-rl_delete (count, key)
- int count, key;
-{
- int r;
-
- if (count < 0)
- return (_rl_rubout_char (-count, key));
-
- if (rl_point == rl_end)
- {
- rl_ding ();
- return -1;
- }
-
- if (count > 1 || rl_explicit_arg)
- {
- int orig_point = rl_point;
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_forward_char (count, key);
- else
-#endif
- rl_forward_byte (count, key);
-
- r = rl_kill_text (orig_point, rl_point);
- rl_point = orig_point;
- return r;
- }
- else
- {
- int new_point;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- new_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
- else
- new_point = rl_point + 1;
-
- return (rl_delete_text (rl_point, new_point));
- }
-}
-
-/* Delete the character under the cursor, unless the insertion
- point is at the end of the line, in which case the character
- behind the cursor is deleted. COUNT is obeyed and may be used
- to delete forward or backward that many characters. */
-int
-rl_rubout_or_delete (count, key)
- int count, key;
-{
- if (rl_end != 0 && rl_point == rl_end)
- return (_rl_rubout_char (count, key));
- else
- return (rl_delete (count, key));
-}
-
-/* Delete all spaces and tabs around point. */
-int
-rl_delete_horizontal_space (count, ignore)
- int count, ignore;
-{
- int start = rl_point;
-
- while (rl_point && whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
-
- start = rl_point;
-
- while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- if (start != rl_point)
- {
- rl_delete_text (start, rl_point);
- rl_point = start;
- }
- return 0;
-}
-
-/* Like the tcsh editing function delete-char-or-list. The eof character
- is caught before this is invoked, so this really does the same thing as
- delete-char-or-list-or-eof, as long as it's bound to the eof character. */
-int
-rl_delete_or_show_completions (count, key)
- int count, key;
-{
- if (rl_end != 0 && rl_point == rl_end)
- return (rl_possible_completions (count, key));
- else
- return (rl_delete (count, key));
-}
-
-#ifndef RL_COMMENT_BEGIN_DEFAULT
-#define RL_COMMENT_BEGIN_DEFAULT "#"
-#endif
-
-/* Turn the current line into a comment in shell history.
- A K*rn shell style function. */
-int
-rl_insert_comment (count, key)
- int count, key;
-{
- char *rl_comment_text;
- int rl_comment_len;
-
- rl_beg_of_line (1, key);
- rl_comment_text = _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT;
-
- if (rl_explicit_arg == 0)
- rl_insert_text (rl_comment_text);
- else
- {
- rl_comment_len = strlen (rl_comment_text);
- if (STREQN (rl_comment_text, rl_line_buffer, rl_comment_len))
- rl_delete_text (rl_point, rl_point + rl_comment_len);
- else
- rl_insert_text (rl_comment_text);
- }
-
- (*rl_redisplay_function) ();
- rl_newline (1, '\n');
-
- return (0);
-}
-
-/* **************************************************************** */
-/* */
-/* Changing Case */
-/* */
-/* **************************************************************** */
-
-/* The three kinds of things that we know how to do. */
-#define UpCase 1
-#define DownCase 2
-#define CapCase 3
-
-/* Uppercase the word at point. */
-int
-rl_upcase_word (count, key)
- int count, key;
-{
- return (rl_change_case (count, UpCase));
-}
-
-/* Lowercase the word at point. */
-int
-rl_downcase_word (count, key)
- int count, key;
-{
- return (rl_change_case (count, DownCase));
-}
-
-/* Upcase the first letter, downcase the rest. */
-int
-rl_capitalize_word (count, key)
- int count, key;
-{
- return (rl_change_case (count, CapCase));
-}
-
-/* The meaty function.
- Change the case of COUNT words, performing OP on them.
- OP is one of UpCase, DownCase, or CapCase.
- If a negative argument is given, leave point where it started,
- otherwise, leave it where it moves to. */
-static int
-rl_change_case (count, op)
- int count, op;
-{
- register int start, end;
- int inword, c;
-
- start = rl_point;
- rl_forward_word (count, 0);
- end = rl_point;
-
- if (count < 0)
- SWAP (start, end);
-
- /* We are going to modify some text, so let's prepare to undo it. */
- rl_modifying (start, end);
-
- for (inword = 0; start < end; start++)
- {
- c = rl_line_buffer[start];
- switch (op)
- {
- case UpCase:
- rl_line_buffer[start] = _rl_to_upper (c);
- break;
-
- case DownCase:
- rl_line_buffer[start] = _rl_to_lower (c);
- break;
-
- case CapCase:
- rl_line_buffer[start] = (inword == 0) ? _rl_to_upper (c) : _rl_to_lower (c);
- inword = rl_alphabetic (rl_line_buffer[start]);
- break;
-
- default:
- rl_ding ();
- return -1;
- }
- }
- rl_point = end;
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Transposition */
-/* */
-/* **************************************************************** */
-
-/* Transpose the words at point. If point is at the end of the line,
- transpose the two words before point. */
-int
-rl_transpose_words (count, key)
- int count, key;
-{
- char *word1, *word2;
- int w1_beg, w1_end, w2_beg, w2_end;
- int orig_point = rl_point;
-
- if (!count)
- return 0;
-
- /* Find the two words. */
- rl_forward_word (count, key);
- w2_end = rl_point;
- rl_backward_word (1, key);
- w2_beg = rl_point;
- rl_backward_word (count, key);
- w1_beg = rl_point;
- rl_forward_word (1, key);
- w1_end = rl_point;
-
- /* Do some check to make sure that there really are two words. */
- if ((w1_beg == w2_beg) || (w2_beg < w1_end))
- {
- rl_ding ();
- rl_point = orig_point;
- return -1;
- }
-
- /* Get the text of the words. */
- word1 = rl_copy_text (w1_beg, w1_end);
- word2 = rl_copy_text (w2_beg, w2_end);
-
- /* We are about to do many insertions and deletions. Remember them
- as one operation. */
- rl_begin_undo_group ();
-
- /* Do the stuff at word2 first, so that we don't have to worry
- about word1 moving. */
- rl_point = w2_beg;
- rl_delete_text (w2_beg, w2_end);
- rl_insert_text (word1);
-
- rl_point = w1_beg;
- rl_delete_text (w1_beg, w1_end);
- rl_insert_text (word2);
-
- /* This is exactly correct since the text before this point has not
- changed in length. */
- rl_point = w2_end;
-
- /* I think that does it. */
- rl_end_undo_group ();
- free (word1);
- free (word2);
-
- return 0;
-}
-
-/* Transpose the characters at point. If point is at the end of the line,
- then transpose the characters before point. */
-int
-rl_transpose_chars (count, key)
- int count, key;
-{
-#if defined (HANDLE_MULTIBYTE)
- char *dummy;
- int i, prev_point;
-#else
- char dummy[2];
-#endif
- int char_length;
-
- if (count == 0)
- return 0;
-
- if (!rl_point || rl_end < 2)
- {
- rl_ding ();
- return -1;
- }
-
- rl_begin_undo_group ();
-
- if (rl_point == rl_end)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- else
- --rl_point;
- count = 1;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- prev_point = rl_point;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- else
-#endif
- rl_point--;
-
-#if defined (HANDLE_MULTIBYTE)
- char_length = prev_point - rl_point;
- dummy = (char *)xmalloc (char_length + 1);
- for (i = 0; i < char_length; i++)
- dummy[i] = rl_line_buffer[rl_point + i];
- dummy[i] = '\0';
-#else
- dummy[0] = rl_line_buffer[rl_point];
- dummy[char_length = 1] = '\0';
-#endif
-
- rl_delete_text (rl_point, rl_point + char_length);
-
- rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO);
-
- _rl_fix_point (0);
- rl_insert_text (dummy);
- rl_end_undo_group ();
-
-#if defined (HANDLE_MULTIBYTE)
- free (dummy);
-#endif
-
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Character Searching */
-/* */
-/* **************************************************************** */
-
-int
-#if defined (HANDLE_MULTIBYTE)
-_rl_char_search_internal (count, dir, smbchar, len)
- int count, dir;
- char *smbchar;
- int len;
-#else
-_rl_char_search_internal (count, dir, schar)
- int count, dir, schar;
-#endif
-{
- int pos, inc;
-#if defined (HANDLE_MULTIBYTE)
- int prepos;
-#endif
-
- pos = rl_point;
- inc = (dir < 0) ? -1 : 1;
- while (count)
- {
- if ((dir < 0 && pos <= 0) || (dir > 0 && pos >= rl_end))
- {
- rl_ding ();
- return -1;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- pos = (inc > 0) ? _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY)
- : _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY);
-#else
- pos += inc;
-#endif
- do
- {
-#if defined (HANDLE_MULTIBYTE)
- if (_rl_is_mbchar_matched (rl_line_buffer, pos, rl_end, smbchar, len))
-#else
- if (rl_line_buffer[pos] == schar)
-#endif
- {
- count--;
- if (dir < 0)
- rl_point = (dir == BTO) ? _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY)
- : pos;
- else
- rl_point = (dir == FTO) ? _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY)
- : pos;
- break;
- }
-#if defined (HANDLE_MULTIBYTE)
- prepos = pos;
-#endif
- }
-#if defined (HANDLE_MULTIBYTE)
- while ((dir < 0) ? (pos = _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY)) != prepos
- : (pos = _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY)) != prepos);
-#else
- while ((dir < 0) ? pos-- : ++pos < rl_end);
-#endif
- }
- return (0);
-}
-
-/* Search COUNT times for a character read from the current input stream.
- FDIR is the direction to search if COUNT is non-negative; otherwise
- the search goes in BDIR. So much is dependent on HANDLE_MULTIBYTE
- that there are two separate versions of this function. */
-#if defined (HANDLE_MULTIBYTE)
-static int
-_rl_char_search (count, fdir, bdir)
- int count, fdir, bdir;
-{
- char mbchar[MB_LEN_MAX];
- int mb_len;
-
- mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
-
- if (count < 0)
- return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
- else
- return (_rl_char_search_internal (count, fdir, mbchar, mb_len));
-}
-#else /* !HANDLE_MULTIBYTE */
-static int
-_rl_char_search (count, fdir, bdir)
- int count, fdir, bdir;
-{
- int c;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (count < 0)
- return (_rl_char_search_internal (-count, bdir, c));
- else
- return (_rl_char_search_internal (count, fdir, c));
-}
-#endif /* !HANDLE_MULTIBYTE */
-
-int
-rl_char_search (count, key)
- int count, key;
-{
- return (_rl_char_search (count, FFIND, BFIND));
-}
-
-int
-rl_backward_char_search (count, key)
- int count, key;
-{
- return (_rl_char_search (count, BFIND, FFIND));
-}
-
-/* **************************************************************** */
-/* */
-/* The Mark and the Region. */
-/* */
-/* **************************************************************** */
-
-/* Set the mark at POSITION. */
-int
-_rl_set_mark_at_pos (position)
- int position;
-{
- if (position > rl_end)
- return -1;
-
- rl_mark = position;
- return 0;
-}
-
-/* A bindable command to set the mark. */
-int
-rl_set_mark (count, key)
- int count, key;
-{
- return (_rl_set_mark_at_pos (rl_explicit_arg ? count : rl_point));
-}
-
-/* Exchange the position of mark and point. */
-int
-rl_exchange_point_and_mark (count, key)
- int count, key;
-{
- if (rl_mark > rl_end)
- rl_mark = -1;
-
- if (rl_mark == -1)
- {
- rl_ding ();
- return -1;
- }
- else
- SWAP (rl_point, rl_mark);
-
- return 0;
-}
diff --git a/readline-4.3.orig/tilde.c b/readline-4.3.orig/tilde.c
deleted file mode 100644
index 154f7f8..0000000
--- a/readline-4.3.orig/tilde.c
+++ /dev/null
@@ -1,458 +0,0 @@
-/* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */
-
-/* Copyright (C) 1988,1989 Free Software Foundation, Inc.
-
- This file is part of GNU Readline, a library for reading lines
- of text with interactive input and history editing.
-
- Readline is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- Readline is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Readline; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# ifdef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <sys/types.h>
-#include <pwd.h>
-
-#include "tilde.h"
-
-#if defined (TEST) || defined (STATIC_MALLOC)
-static void *xmalloc (), *xrealloc ();
-#else
-# include "xmalloc.h"
-#endif /* TEST || STATIC_MALLOC */
-
-#if !defined (HAVE_GETPW_DECLS)
-extern struct passwd *getpwuid PARAMS((uid_t));
-extern struct passwd *getpwnam PARAMS((const char *));
-#endif /* !HAVE_GETPW_DECLS */
-
-#if !defined (savestring)
-#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
-#endif /* !savestring */
-
-#if !defined (NULL)
-# if defined (__STDC__)
-# define NULL ((void *) 0)
-# else
-# define NULL 0x0
-# endif /* !__STDC__ */
-#endif /* !NULL */
-
-/* If being compiled as part of bash, these will be satisfied from
- variables.o. If being compiled as part of readline, they will
- be satisfied from shell.o. */
-extern char *sh_get_home_dir PARAMS((void));
-extern char *sh_get_env_value PARAMS((const char *));
-
-/* The default value of tilde_additional_prefixes. This is set to
- whitespace preceding a tilde so that simple programs which do not
- perform any word separation get desired behaviour. */
-static const char *default_prefixes[] =
- { " ~", "\t~", (const char *)NULL };
-
-/* The default value of tilde_additional_suffixes. This is set to
- whitespace or newline so that simple programs which do not
- perform any word separation get desired behaviour. */
-static const char *default_suffixes[] =
- { " ", "\n", (const char *)NULL };
-
-/* If non-null, this contains the address of a function that the application
- wants called before trying the standard tilde expansions. The function
- is called with the text sans tilde, and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if the expansion fails. */
-tilde_hook_func_t *tilde_expansion_preexpansion_hook = (tilde_hook_func_t *)NULL;
-
-/* If non-null, this contains the address of a function to call if the
- standard meaning for expanding a tilde fails. The function is called
- with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if there is no expansion. */
-tilde_hook_func_t *tilde_expansion_failure_hook = (tilde_hook_func_t *)NULL;
-
-/* When non-null, this is a NULL terminated array of strings which
- are duplicates for a tilde prefix. Bash uses this to expand
- `=~' and `:~'. */
-char **tilde_additional_prefixes = (char **)default_prefixes;
-
-/* When non-null, this is a NULL terminated array of strings which match
- the end of a username, instead of just "/". Bash sets this to
- `:' and `=~'. */
-char **tilde_additional_suffixes = (char **)default_suffixes;
-
-static int tilde_find_prefix PARAMS((const char *, int *));
-static int tilde_find_suffix PARAMS((const char *));
-static char *isolate_tilde_prefix PARAMS((const char *, int *));
-static char *glue_prefix_and_suffix PARAMS((char *, const char *, int));
-
-/* Find the start of a tilde expansion in STRING, and return the index of
- the tilde which starts the expansion. Place the length of the text
- which identified this tilde starter in LEN, excluding the tilde itself. */
-static int
-tilde_find_prefix (string, len)
- const char *string;
- int *len;
-{
- register int i, j, string_len;
- register char **prefixes;
-
- prefixes = tilde_additional_prefixes;
-
- string_len = strlen (string);
- *len = 0;
-
- if (*string == '\0' || *string == '~')
- return (0);
-
- if (prefixes)
- {
- for (i = 0; i < string_len; i++)
- {
- for (j = 0; prefixes[j]; j++)
- {
- if (strncmp (string + i, prefixes[j], strlen (prefixes[j])) == 0)
- {
- *len = strlen (prefixes[j]) - 1;
- return (i + *len);
- }
- }
- }
- }
- return (string_len);
-}
-
-/* Find the end of a tilde expansion in STRING, and return the index of
- the character which ends the tilde definition. */
-static int
-tilde_find_suffix (string)
- const char *string;
-{
- register int i, j, string_len;
- register char **suffixes;
-
- suffixes = tilde_additional_suffixes;
- string_len = strlen (string);
-
- for (i = 0; i < string_len; i++)
- {
-#if defined (__MSDOS__)
- if (string[i] == '/' || string[i] == '\\' /* || !string[i] */)
-#else
- if (string[i] == '/' /* || !string[i] */)
-#endif
- break;
-
- for (j = 0; suffixes && suffixes[j]; j++)
- {
- if (strncmp (string + i, suffixes[j], strlen (suffixes[j])) == 0)
- return (i);
- }
- }
- return (i);
-}
-
-/* Return a new string which is the result of tilde expanding STRING. */
-char *
-tilde_expand (string)
- const char *string;
-{
- char *result;
- int result_size, result_index;
-
- result_index = result_size = 0;
- if (result = strchr (string, '~'))
- result = (char *)xmalloc (result_size = (strlen (string) + 16));
- else
- result = (char *)xmalloc (result_size = (strlen (string) + 1));
-
- /* Scan through STRING expanding tildes as we come to them. */
- while (1)
- {
- register int start, end;
- char *tilde_word, *expansion;
- int len;
-
- /* Make START point to the tilde which starts the expansion. */
- start = tilde_find_prefix (string, &len);
-
- /* Copy the skipped text into the result. */
- if ((result_index + start + 1) > result_size)
- result = (char *)xrealloc (result, 1 + (result_size += (start + 20)));
-
- strncpy (result + result_index, string, start);
- result_index += start;
-
- /* Advance STRING to the starting tilde. */
- string += start;
-
- /* Make END be the index of one after the last character of the
- username. */
- end = tilde_find_suffix (string);
-
- /* If both START and END are zero, we are all done. */
- if (!start && !end)
- break;
-
- /* Expand the entire tilde word, and copy it into RESULT. */
- tilde_word = (char *)xmalloc (1 + end);
- strncpy (tilde_word, string, end);
- tilde_word[end] = '\0';
- string += end;
-
- expansion = tilde_expand_word (tilde_word);
- free (tilde_word);
-
- len = strlen (expansion);
-#ifdef __CYGWIN__
- /* Fix for Cygwin to prevent ~user/xxx from expanding to //xxx when
- $HOME for `user' is /. On cygwin, // denotes a network drive. */
- if (len > 1 || *expansion != '/' || *string != '/')
-#endif
- {
- if ((result_index + len + 1) > result_size)
- result = (char *)xrealloc (result, 1 + (result_size += (len + 20)));
-
- strcpy (result + result_index, expansion);
- result_index += len;
- }
- free (expansion);
- }
-
- result[result_index] = '\0';
-
- return (result);
-}
-
-/* Take FNAME and return the tilde prefix we want expanded. If LENP is
- non-null, the index of the end of the prefix into FNAME is returned in
- the location it points to. */
-static char *
-isolate_tilde_prefix (fname, lenp)
- const char *fname;
- int *lenp;
-{
- char *ret;
- int i;
-
- ret = (char *)xmalloc (strlen (fname));
-#if defined (__MSDOS__)
- for (i = 1; fname[i] && fname[i] != '/' && fname[i] != '\\'; i++)
-#else
- for (i = 1; fname[i] && fname[i] != '/'; i++)
-#endif
- ret[i - 1] = fname[i];
- ret[i - 1] = '\0';
- if (lenp)
- *lenp = i;
- return ret;
-}
-
-/* Return a string that is PREFIX concatenated with SUFFIX starting at
- SUFFIND. */
-static char *
-glue_prefix_and_suffix (prefix, suffix, suffind)
- char *prefix;
- const char *suffix;
- int suffind;
-{
- char *ret;
- int plen, slen;
-
- plen = (prefix && *prefix) ? strlen (prefix) : 0;
- slen = strlen (suffix + suffind);
- ret = (char *)xmalloc (plen + slen + 1);
- if (plen)
- strcpy (ret, prefix);
- strcpy (ret + plen, suffix + suffind);
- return ret;
-}
-
-/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
- tilde. If there is no expansion, call tilde_expansion_failure_hook.
- This always returns a newly-allocated string, never static storage. */
-char *
-tilde_expand_word (filename)
- const char *filename;
-{
- char *dirname, *expansion, *username;
- int user_len;
- struct passwd *user_entry;
-
- if (filename == 0)
- return ((char *)NULL);
-
- if (*filename != '~')
- return (savestring (filename));
-
- /* A leading `~/' or a bare `~' is *always* translated to the value of
- $HOME or the home directory of the current user, regardless of any
- preexpansion hook. */
- if (filename[1] == '\0' || filename[1] == '/')
- {
- /* Prefix $HOME to the rest of the string. */
- expansion = sh_get_env_value ("HOME");
-
- /* If there is no HOME variable, look up the directory in
- the password database. */
- if (expansion == 0)
- expansion = sh_get_home_dir ();
-
- return (glue_prefix_and_suffix (expansion, filename, 1));
- }
-
- username = isolate_tilde_prefix (filename, &user_len);
-
- if (tilde_expansion_preexpansion_hook)
- {
- expansion = (*tilde_expansion_preexpansion_hook) (username);
- if (expansion)
- {
- dirname = glue_prefix_and_suffix (expansion, filename, user_len);
- free (username);
- free (expansion);
- return (dirname);
- }
- }
-
- /* No preexpansion hook, or the preexpansion hook failed. Look in the
- password database. */
- dirname = (char *)NULL;
- user_entry = getpwnam (username);
- if (user_entry == 0)
- {
- /* If the calling program has a special syntax for expanding tildes,
- and we couldn't find a standard expansion, then let them try. */
- if (tilde_expansion_failure_hook)
- {
- expansion = (*tilde_expansion_failure_hook) (username);
- if (expansion)
- {
- dirname = glue_prefix_and_suffix (expansion, filename, user_len);
- free (expansion);
- }
- }
- free (username);
- /* If we don't have a failure hook, or if the failure hook did not
- expand the tilde, return a copy of what we were passed. */
- if (dirname == 0)
- dirname = savestring (filename);
- }
- else
- {
- free (username);
- dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len);
- }
-
- endpwent ();
- return (dirname);
-}
-
-
-#if defined (TEST)
-#undef NULL
-#include <stdio.h>
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *result, line[512];
- int done = 0;
-
- while (!done)
- {
- printf ("~expand: ");
- fflush (stdout);
-
- if (!gets (line))
- strcpy (line, "done");
-
- if ((strcmp (line, "done") == 0) ||
- (strcmp (line, "quit") == 0) ||
- (strcmp (line, "exit") == 0))
- {
- done = 1;
- break;
- }
-
- result = tilde_expand (line);
- printf (" --> %s\n", result);
- free (result);
- }
- exit (0);
-}
-
-static void memory_error_and_abort ();
-
-static void *
-xmalloc (bytes)
- size_t bytes;
-{
- void *temp = (char *)malloc (bytes);
-
- if (!temp)
- memory_error_and_abort ();
- return (temp);
-}
-
-static void *
-xrealloc (pointer, bytes)
- void *pointer;
- int bytes;
-{
- void *temp;
-
- if (!pointer)
- temp = malloc (bytes);
- else
- temp = realloc (pointer, bytes);
-
- if (!temp)
- memory_error_and_abort ();
-
- return (temp);
-}
-
-static void
-memory_error_and_abort ()
-{
- fprintf (stderr, "readline: out of virtual memory\n");
- abort ();
-}
-
-/*
- * Local variables:
- * compile-command: "gcc -g -DTEST -o tilde tilde.c"
- * end:
- */
-#endif /* TEST */
diff --git a/readline-4.3.orig/tilde.h b/readline-4.3.orig/tilde.h
deleted file mode 100644
index f8182c9..0000000
--- a/readline-4.3.orig/tilde.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* tilde.h: Externally available variables and function in libtilde.a. */
-
-/* Copyright (C) 1992 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_TILDE_H_)
-# define _TILDE_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* A function can be defined using prototypes and compile on both ANSI C
- and traditional C compilers with something like this:
- extern char *func PARAMS((char *, char *, int)); */
-
-#if !defined (PARAMS)
-# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
-# define PARAMS(protos) protos
-# else
-# define PARAMS(protos) ()
-# endif
-#endif
-
-typedef char *tilde_hook_func_t PARAMS((char *));
-
-/* If non-null, this contains the address of a function that the application
- wants called before trying the standard tilde expansions. The function
- is called with the text sans tilde, and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if the expansion fails. */
-extern tilde_hook_func_t *tilde_expansion_preexpansion_hook;
-
-/* If non-null, this contains the address of a function to call if the
- standard meaning for expanding a tilde fails. The function is called
- with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if there is no expansion. */
-extern tilde_hook_func_t *tilde_expansion_failure_hook;
-
-/* When non-null, this is a NULL terminated array of strings which
- are duplicates for a tilde prefix. Bash uses this to expand
- `=~' and `:~'. */
-extern char **tilde_additional_prefixes;
-
-/* When non-null, this is a NULL terminated array of strings which match
- the end of a username, instead of just "/". Bash sets this to
- `:' and `=~'. */
-extern char **tilde_additional_suffixes;
-
-/* Return a new string which is the result of tilde expanding STRING. */
-extern char *tilde_expand PARAMS((const char *));
-
-/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
- tilde. If there is no expansion, call tilde_expansion_failure_hook. */
-extern char *tilde_expand_word PARAMS((const char *));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _TILDE_H_ */
diff --git a/readline-4.3.orig/undo.c b/readline-4.3.orig/undo.c
deleted file mode 100644
index 25c287b..0000000
--- a/readline-4.3.orig/undo.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* readline.c -- a general facility for reading lines of input
- with emacs style editing and completion. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* Non-zero tells rl_delete_text and rl_insert_text to not add to
- the undo list. */
-int _rl_doing_an_undo = 0;
-
-/* How many unclosed undo groups we currently have. */
-int _rl_undo_group_level = 0;
-
-/* The current undo list for THE_LINE. */
-UNDO_LIST *rl_undo_list = (UNDO_LIST *)NULL;
-
-/* **************************************************************** */
-/* */
-/* Undo, and Undoing */
-/* */
-/* **************************************************************** */
-
-/* Remember how to undo something. Concatenate some undos if that
- seems right. */
-void
-rl_add_undo (what, start, end, text)
- enum undo_code what;
- int start, end;
- char *text;
-{
- UNDO_LIST *temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST));
- temp->what = what;
- temp->start = start;
- temp->end = end;
- temp->text = text;
- temp->next = rl_undo_list;
- rl_undo_list = temp;
-}
-
-/* Free the existing undo list. */
-void
-rl_free_undo_list ()
-{
- while (rl_undo_list)
- {
- UNDO_LIST *release = rl_undo_list;
- rl_undo_list = rl_undo_list->next;
-
- if (release->what == UNDO_DELETE)
- free (release->text);
-
- free (release);
- }
- rl_undo_list = (UNDO_LIST *)NULL;
-}
-
-/* Undo the next thing in the list. Return 0 if there
- is nothing to undo, or non-zero if there was. */
-int
-rl_do_undo ()
-{
- UNDO_LIST *release;
- int waiting_for_begin, start, end;
-
-#define TRANS(i) ((i) == -1 ? rl_point : ((i) == -2 ? rl_end : (i)))
-
- start = end = waiting_for_begin = 0;
- do
- {
- if (!rl_undo_list)
- return (0);
-
- _rl_doing_an_undo = 1;
- RL_SETSTATE(RL_STATE_UNDOING);
-
- /* To better support vi-mode, a start or end value of -1 means
- rl_point, and a value of -2 means rl_end. */
- if (rl_undo_list->what == UNDO_DELETE || rl_undo_list->what == UNDO_INSERT)
- {
- start = TRANS (rl_undo_list->start);
- end = TRANS (rl_undo_list->end);
- }
-
- switch (rl_undo_list->what)
- {
- /* Undoing deletes means inserting some text. */
- case UNDO_DELETE:
- rl_point = start;
- rl_insert_text (rl_undo_list->text);
- free (rl_undo_list->text);
- break;
-
- /* Undoing inserts means deleting some text. */
- case UNDO_INSERT:
- rl_delete_text (start, end);
- rl_point = start;
- break;
-
- /* Undoing an END means undoing everything 'til we get to a BEGIN. */
- case UNDO_END:
- waiting_for_begin++;
- break;
-
- /* Undoing a BEGIN means that we are done with this group. */
- case UNDO_BEGIN:
- if (waiting_for_begin)
- waiting_for_begin--;
- else
- rl_ding ();
- break;
- }
-
- _rl_doing_an_undo = 0;
- RL_UNSETSTATE(RL_STATE_UNDOING);
-
- release = rl_undo_list;
- rl_undo_list = rl_undo_list->next;
- free (release);
- }
- while (waiting_for_begin);
-
- return (1);
-}
-#undef TRANS
-
-int
-_rl_fix_last_undo_of_type (type, start, end)
- int type, start, end;
-{
- UNDO_LIST *rl;
-
- for (rl = rl_undo_list; rl; rl = rl->next)
- {
- if (rl->what == type)
- {
- rl->start = start;
- rl->end = end;
- return 0;
- }
- }
- return 1;
-}
-
-/* Begin a group. Subsequent undos are undone as an atomic operation. */
-int
-rl_begin_undo_group ()
-{
- rl_add_undo (UNDO_BEGIN, 0, 0, 0);
- _rl_undo_group_level++;
- return 0;
-}
-
-/* End an undo group started with rl_begin_undo_group (). */
-int
-rl_end_undo_group ()
-{
- rl_add_undo (UNDO_END, 0, 0, 0);
- _rl_undo_group_level--;
- return 0;
-}
-
-/* Save an undo entry for the text from START to END. */
-int
-rl_modifying (start, end)
- int start, end;
-{
- if (start > end)
- {
- SWAP (start, end);
- }
-
- if (start != end)
- {
- char *temp = rl_copy_text (start, end);
- rl_begin_undo_group ();
- rl_add_undo (UNDO_DELETE, start, end, temp);
- rl_add_undo (UNDO_INSERT, start, end, (char *)NULL);
- rl_end_undo_group ();
- }
- return 0;
-}
-
-/* Revert the current line to its previous state. */
-int
-rl_revert_line (count, key)
- int count, key;
-{
- if (!rl_undo_list)
- rl_ding ();
- else
- {
- while (rl_undo_list)
- rl_do_undo ();
- }
- return 0;
-}
-
-/* Do some undoing of things that were done. */
-int
-rl_undo_command (count, key)
- int count, key;
-{
- if (count < 0)
- return 0; /* Nothing to do. */
-
- while (count)
- {
- if (rl_do_undo ())
- count--;
- else
- {
- rl_ding ();
- break;
- }
- }
- return 0;
-}
diff --git a/readline-4.3.orig/util.c b/readline-4.3.orig/util.c
deleted file mode 100644
index c7bd360..0000000
--- a/readline-4.3.orig/util.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/* util.c -- readline utility functions */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include "posixjmp.h"
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-#include <ctype.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-#if defined (TIOCSTAT_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* TIOCSTAT_IN_SYS_IOCTL */
-
-/* Some standard library routines. */
-#include "readline.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Utility Functions */
-/* */
-/* **************************************************************** */
-
-/* Return 0 if C is not a member of the class of characters that belong
- in words, or 1 if it is. */
-
-int _rl_allow_pathname_alphabetic_chars = 0;
-static const char *pathname_alphabetic_chars = "/-_=~.#$";
-
-int
-rl_alphabetic (c)
- int c;
-{
- if (ALPHABETIC (c))
- return (1);
-
- return (_rl_allow_pathname_alphabetic_chars &&
- strchr (pathname_alphabetic_chars, c) != NULL);
-}
-
-/* How to abort things. */
-int
-_rl_abort_internal ()
-{
- rl_ding ();
- rl_clear_message ();
- _rl_init_argument ();
- rl_clear_pending_input ();
-
- RL_UNSETSTATE (RL_STATE_MACRODEF);
- while (rl_executing_macro)
- _rl_pop_executing_macro ();
-
- rl_last_func = (rl_command_func_t *)NULL;
- longjmp (readline_top_level, 1);
- return (0);
-}
-
-int
-rl_abort (count, key)
- int count, key;
-{
- return (_rl_abort_internal ());
-}
-
-int
-rl_tty_status (count, key)
- int count, key;
-{
-#if defined (TIOCSTAT)
- ioctl (1, TIOCSTAT, (char *)0);
- rl_refresh_line (count, key);
-#else
- rl_ding ();
-#endif
- return 0;
-}
-
-/* Return a copy of the string between FROM and TO.
- FROM is inclusive, TO is not. */
-char *
-rl_copy_text (from, to)
- int from, to;
-{
- register int length;
- char *copy;
-
- /* Fix it if the caller is confused. */
- if (from > to)
- SWAP (from, to);
-
- length = to - from;
- copy = (char *)xmalloc (1 + length);
- strncpy (copy, rl_line_buffer + from, length);
- copy[length] = '\0';
- return (copy);
-}
-
-/* Increase the size of RL_LINE_BUFFER until it has enough space to hold
- LEN characters. */
-void
-rl_extend_line_buffer (len)
- int len;
-{
- while (len >= rl_line_buffer_len)
- {
- rl_line_buffer_len += DEFAULT_BUFFER_SIZE;
- rl_line_buffer = (char *)xrealloc (rl_line_buffer, rl_line_buffer_len);
- }
-
- _rl_set_the_line ();
-}
-
-
-/* A function for simple tilde expansion. */
-int
-rl_tilde_expand (ignore, key)
- int ignore, key;
-{
- register int start, end;
- char *homedir, *temp;
- int len;
-
- end = rl_point;
- start = end - 1;
-
- if (rl_point == rl_end && rl_line_buffer[rl_point] == '~')
- {
- homedir = tilde_expand ("~");
- _rl_replace_text (homedir, start, end);
- return (0);
- }
- else if (rl_line_buffer[start] != '~')
- {
- for (; !whitespace (rl_line_buffer[start]) && start >= 0; start--)
- ;
- start++;
- }
-
- end = start;
- do
- end++;
- while (whitespace (rl_line_buffer[end]) == 0 && end < rl_end);
-
- if (whitespace (rl_line_buffer[end]) || end >= rl_end)
- end--;
-
- /* If the first character of the current word is a tilde, perform
- tilde expansion and insert the result. If not a tilde, do
- nothing. */
- if (rl_line_buffer[start] == '~')
- {
- len = end - start + 1;
- temp = (char *)xmalloc (len + 1);
- strncpy (temp, rl_line_buffer + start, len);
- temp[len] = '\0';
- homedir = tilde_expand (temp);
- free (temp);
-
- _rl_replace_text (homedir, start, end);
- }
-
- return (0);
-}
-
-/* **************************************************************** */
-/* */
-/* String Utility Functions */
-/* */
-/* **************************************************************** */
-
-/* Determine if s2 occurs in s1. If so, return a pointer to the
- match in s1. The compare is case insensitive. */
-char *
-_rl_strindex (s1, s2)
- register const char *s1, *s2;
-{
- register int i, l, len;
-
- for (i = 0, l = strlen (s2), len = strlen (s1); (len - i) >= l; i++)
- if (_rl_strnicmp (s1 + i, s2, l) == 0)
- return ((char *) (s1 + i));
- return ((char *)NULL);
-}
-
-#ifndef HAVE_STRPBRK
-/* Find the first occurrence in STRING1 of any character from STRING2.
- Return a pointer to the character in STRING1. */
-char *
-_rl_strpbrk (string1, string2)
- const char *string1, *string2;
-{
- register const char *scan;
-#if defined (HANDLE_MULTIBYTE)
- mbstate_t ps;
- register int i, v;
-
- memset (&ps, 0, sizeof (mbstate_t));
-#endif
-
- for (; *string1; string1++)
- {
- for (scan = string2; *scan; scan++)
- {
- if (*string1 == *scan)
- return ((char *)string1);
- }
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- v = _rl_get_char_len (string1, &ps);
- if (v > 1)
- string += v - 1; /* -1 to account for auto-increment in loop */
- }
-#endif
- }
- return ((char *)NULL);
-}
-#endif
-
-#if !defined (HAVE_STRCASECMP)
-/* Compare at most COUNT characters from string1 to string2. Case
- doesn't matter. */
-int
-_rl_strnicmp (string1, string2, count)
- char *string1, *string2;
- int count;
-{
- register char ch1, ch2;
-
- while (count)
- {
- ch1 = *string1++;
- ch2 = *string2++;
- if (_rl_to_upper(ch1) == _rl_to_upper(ch2))
- count--;
- else
- break;
- }
- return (count);
-}
-
-/* strcmp (), but caseless. */
-int
-_rl_stricmp (string1, string2)
- char *string1, *string2;
-{
- register char ch1, ch2;
-
- while (*string1 && *string2)
- {
- ch1 = *string1++;
- ch2 = *string2++;
- if (_rl_to_upper(ch1) != _rl_to_upper(ch2))
- return (1);
- }
- return (*string1 - *string2);
-}
-#endif /* !HAVE_STRCASECMP */
-
-/* Stupid comparison routine for qsort () ing strings. */
-int
-_rl_qsort_string_compare (s1, s2)
- char **s1, **s2;
-{
-#if defined (HAVE_STRCOLL)
- return (strcoll (*s1, *s2));
-#else
- int result;
-
- result = **s1 - **s2;
- if (result == 0)
- result = strcmp (*s1, *s2);
-
- return result;
-#endif
-}
-
-/* Function equivalents for the macros defined in chardefs.h. */
-#define FUNCTION_FOR_MACRO(f) int (f) (c) int c; { return f (c); }
-
-FUNCTION_FOR_MACRO (_rl_digit_p)
-FUNCTION_FOR_MACRO (_rl_digit_value)
-FUNCTION_FOR_MACRO (_rl_lowercase_p)
-FUNCTION_FOR_MACRO (_rl_pure_alphabetic)
-FUNCTION_FOR_MACRO (_rl_to_lower)
-FUNCTION_FOR_MACRO (_rl_to_upper)
-FUNCTION_FOR_MACRO (_rl_uppercase_p)
-
-/* Backwards compatibility, now that savestring has been removed from
- all `public' readline header files. */
-#undef _rl_savestring
-char *
-_rl_savestring (s)
- const char *s;
-{
- return (strcpy ((char *)xmalloc (1 + (int)strlen (s)), (s)));
-}
diff --git a/readline-4.3.orig/vi_keymap.c b/readline-4.3.orig/vi_keymap.c
deleted file mode 100644
index 53a67c6..0000000
--- a/readline-4.3.orig/vi_keymap.c
+++ /dev/null
@@ -1,877 +0,0 @@
-/* vi_keymap.c -- the keymap for vi_mode in readline (). */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (BUFSIZ)
-#include <stdio.h>
-#endif /* !BUFSIZ */
-
-#include "readline.h"
-
-#if 0
-extern KEYMAP_ENTRY_ARRAY vi_escape_keymap;
-#endif
-
-/* The keymap arrays for handling vi mode. */
-KEYMAP_ENTRY_ARRAY vi_movement_keymap = {
- /* The regular control keys come first. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-c */
- { ISFUNC, rl_vi_eof_maybe }, /* Control-d */
- { ISFUNC, rl_emacs_editing_mode }, /* Control-e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-f */
- { ISFUNC, rl_abort }, /* Control-g */
- { ISFUNC, rl_backward_char }, /* Control-h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-i */
- { ISFUNC, rl_newline }, /* Control-j */
- { ISFUNC, rl_kill_line }, /* Control-k */
- { ISFUNC, rl_clear_screen }, /* Control-l */
- { ISFUNC, rl_newline }, /* Control-m */
- { ISFUNC, rl_get_next_history }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
- { ISFUNC, rl_get_previous_history }, /* Control-p */
- { ISFUNC, rl_quoted_insert }, /* Control-q */
- { ISFUNC, rl_reverse_search_history }, /* Control-r */
- { ISFUNC, rl_forward_search_history }, /* Control-s */
- { ISFUNC, rl_transpose_chars }, /* Control-t */
- { ISFUNC, rl_unix_line_discard }, /* Control-u */
- { ISFUNC, rl_quoted_insert }, /* Control-v */
- { ISFUNC, rl_unix_word_rubout }, /* Control-w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-x */
- { ISFUNC, rl_yank }, /* Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
-
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-[ */ /* vi_escape_keymap */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-\ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-^ */
- { ISFUNC, rl_vi_undo }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, rl_forward_char }, /* SPACE */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ! */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* " */
- { ISFUNC, rl_insert_comment }, /* # */
- { ISFUNC, rl_end_of_line }, /* $ */
- { ISFUNC, rl_vi_match }, /* % */
- { ISFUNC, rl_vi_tilde_expand }, /* & */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ' */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ( */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ) */
- { ISFUNC, rl_vi_complete }, /* * */
- { ISFUNC, rl_get_next_history}, /* + */
- { ISFUNC, rl_vi_char_search }, /* , */
- { ISFUNC, rl_get_previous_history }, /* - */
- { ISFUNC, rl_vi_redo }, /* . */
- { ISFUNC, rl_vi_search }, /* / */
-
- /* Regular digits. */
- { ISFUNC, rl_beg_of_line }, /* 0 */
- { ISFUNC, rl_vi_arg_digit }, /* 1 */
- { ISFUNC, rl_vi_arg_digit }, /* 2 */
- { ISFUNC, rl_vi_arg_digit }, /* 3 */
- { ISFUNC, rl_vi_arg_digit }, /* 4 */
- { ISFUNC, rl_vi_arg_digit }, /* 5 */
- { ISFUNC, rl_vi_arg_digit }, /* 6 */
- { ISFUNC, rl_vi_arg_digit }, /* 7 */
- { ISFUNC, rl_vi_arg_digit }, /* 8 */
- { ISFUNC, rl_vi_arg_digit }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* : */
- { ISFUNC, rl_vi_char_search }, /* ; */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* < */
- { ISFUNC, rl_vi_complete }, /* = */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* > */
- { ISFUNC, rl_vi_search }, /* ? */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_vi_append_eol }, /* A */
- { ISFUNC, rl_vi_prev_word}, /* B */
- { ISFUNC, rl_vi_change_to }, /* C */
- { ISFUNC, rl_vi_delete_to }, /* D */
- { ISFUNC, rl_vi_end_word }, /* E */
- { ISFUNC, rl_vi_char_search }, /* F */
- { ISFUNC, rl_vi_fetch_history }, /* G */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* H */
- { ISFUNC, rl_vi_insert_beg }, /* I */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* J */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* K */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* L */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* M */
- { ISFUNC, rl_vi_search_again }, /* N */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* O */
- { ISFUNC, rl_vi_put }, /* P */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Q */
- { ISFUNC, rl_vi_replace }, /* R */
- { ISFUNC, rl_vi_subst }, /* S */
- { ISFUNC, rl_vi_char_search }, /* T */
- { ISFUNC, rl_revert_line }, /* U */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* V */
- { ISFUNC, rl_vi_next_word }, /* W */
- { ISFUNC, rl_rubout }, /* X */
- { ISFUNC, rl_vi_yank_to }, /* Y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* [ */
- { ISFUNC, rl_vi_complete }, /* \ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ] */
- { ISFUNC, rl_vi_first_print }, /* ^ */
- { ISFUNC, rl_vi_yank_arg }, /* _ */
- { ISFUNC, rl_vi_goto_mark }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, rl_vi_append_mode }, /* a */
- { ISFUNC, rl_vi_prev_word }, /* b */
- { ISFUNC, rl_vi_change_to }, /* c */
- { ISFUNC, rl_vi_delete_to }, /* d */
- { ISFUNC, rl_vi_end_word }, /* e */
- { ISFUNC, rl_vi_char_search }, /* f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* g */
- { ISFUNC, rl_backward_char }, /* h */
- { ISFUNC, rl_vi_insertion_mode }, /* i */
- { ISFUNC, rl_get_next_history }, /* j */
- { ISFUNC, rl_get_previous_history }, /* k */
- { ISFUNC, rl_forward_char }, /* l */
- { ISFUNC, rl_vi_set_mark }, /* m */
- { ISFUNC, rl_vi_search_again }, /* n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* o */
- { ISFUNC, rl_vi_put }, /* p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* q */
- { ISFUNC, rl_vi_change_char }, /* r */
- { ISFUNC, rl_vi_subst }, /* s */
- { ISFUNC, rl_vi_char_search }, /* t */
- { ISFUNC, rl_vi_undo }, /* u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* v */
- { ISFUNC, rl_vi_next_word }, /* w */
- { ISFUNC, rl_vi_delete }, /* x */
- { ISFUNC, rl_vi_yank_to }, /* y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* { */
- { ISFUNC, rl_vi_column }, /* | */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* } */
- { ISFUNC, rl_vi_change_case }, /* ~ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Undefined keys. */
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 }
-#endif /* KEYMAP_SIZE > 128 */
-};
-
-
-KEYMAP_ENTRY_ARRAY vi_insertion_keymap = {
- /* The regular control keys come first. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
- { ISFUNC, rl_insert }, /* Control-a */
- { ISFUNC, rl_insert }, /* Control-b */
- { ISFUNC, rl_insert }, /* Control-c */
- { ISFUNC, rl_vi_eof_maybe }, /* Control-d */
- { ISFUNC, rl_insert }, /* Control-e */
- { ISFUNC, rl_insert }, /* Control-f */
- { ISFUNC, rl_insert }, /* Control-g */
- { ISFUNC, rl_rubout }, /* Control-h */
- { ISFUNC, rl_complete }, /* Control-i */
- { ISFUNC, rl_newline }, /* Control-j */
- { ISFUNC, rl_insert }, /* Control-k */
- { ISFUNC, rl_insert }, /* Control-l */
- { ISFUNC, rl_newline }, /* Control-m */
- { ISFUNC, rl_insert }, /* Control-n */
- { ISFUNC, rl_insert }, /* Control-o */
- { ISFUNC, rl_insert }, /* Control-p */
- { ISFUNC, rl_insert }, /* Control-q */
- { ISFUNC, rl_reverse_search_history }, /* Control-r */
- { ISFUNC, rl_forward_search_history }, /* Control-s */
- { ISFUNC, rl_transpose_chars }, /* Control-t */
- { ISFUNC, rl_unix_line_discard }, /* Control-u */
- { ISFUNC, rl_quoted_insert }, /* Control-v */
- { ISFUNC, rl_unix_word_rubout }, /* Control-w */
- { ISFUNC, rl_insert }, /* Control-x */
- { ISFUNC, rl_yank }, /* Control-y */
- { ISFUNC, rl_insert }, /* Control-z */
-
- { ISFUNC, rl_vi_movement_mode }, /* Control-[ */
- { ISFUNC, rl_insert }, /* Control-\ */
- { ISFUNC, rl_insert }, /* Control-] */
- { ISFUNC, rl_insert }, /* Control-^ */
- { ISFUNC, rl_vi_undo }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, rl_insert }, /* SPACE */
- { ISFUNC, rl_insert }, /* ! */
- { ISFUNC, rl_insert }, /* " */
- { ISFUNC, rl_insert }, /* # */
- { ISFUNC, rl_insert }, /* $ */
- { ISFUNC, rl_insert }, /* % */
- { ISFUNC, rl_insert }, /* & */
- { ISFUNC, rl_insert }, /* ' */
- { ISFUNC, rl_insert }, /* ( */
- { ISFUNC, rl_insert }, /* ) */
- { ISFUNC, rl_insert }, /* * */
- { ISFUNC, rl_insert }, /* + */
- { ISFUNC, rl_insert }, /* , */
- { ISFUNC, rl_insert }, /* - */
- { ISFUNC, rl_insert }, /* . */
- { ISFUNC, rl_insert }, /* / */
-
- /* Regular digits. */
- { ISFUNC, rl_insert }, /* 0 */
- { ISFUNC, rl_insert }, /* 1 */
- { ISFUNC, rl_insert }, /* 2 */
- { ISFUNC, rl_insert }, /* 3 */
- { ISFUNC, rl_insert }, /* 4 */
- { ISFUNC, rl_insert }, /* 5 */
- { ISFUNC, rl_insert }, /* 6 */
- { ISFUNC, rl_insert }, /* 7 */
- { ISFUNC, rl_insert }, /* 8 */
- { ISFUNC, rl_insert }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, rl_insert }, /* : */
- { ISFUNC, rl_insert }, /* ; */
- { ISFUNC, rl_insert }, /* < */
- { ISFUNC, rl_insert }, /* = */
- { ISFUNC, rl_insert }, /* > */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_insert }, /* A */
- { ISFUNC, rl_insert }, /* B */
- { ISFUNC, rl_insert }, /* C */
- { ISFUNC, rl_insert }, /* D */
- { ISFUNC, rl_insert }, /* E */
- { ISFUNC, rl_insert }, /* F */
- { ISFUNC, rl_insert }, /* G */
- { ISFUNC, rl_insert }, /* H */
- { ISFUNC, rl_insert }, /* I */
- { ISFUNC, rl_insert }, /* J */
- { ISFUNC, rl_insert }, /* K */
- { ISFUNC, rl_insert }, /* L */
- { ISFUNC, rl_insert }, /* M */
- { ISFUNC, rl_insert }, /* N */
- { ISFUNC, rl_insert }, /* O */
- { ISFUNC, rl_insert }, /* P */
- { ISFUNC, rl_insert }, /* Q */
- { ISFUNC, rl_insert }, /* R */
- { ISFUNC, rl_insert }, /* S */
- { ISFUNC, rl_insert }, /* T */
- { ISFUNC, rl_insert }, /* U */
- { ISFUNC, rl_insert }, /* V */
- { ISFUNC, rl_insert }, /* W */
- { ISFUNC, rl_insert }, /* X */
- { ISFUNC, rl_insert }, /* Y */
- { ISFUNC, rl_insert }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, rl_insert }, /* [ */
- { ISFUNC, rl_insert }, /* \ */
- { ISFUNC, rl_insert }, /* ] */
- { ISFUNC, rl_insert }, /* ^ */
- { ISFUNC, rl_insert }, /* _ */
- { ISFUNC, rl_insert }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, rl_insert }, /* a */
- { ISFUNC, rl_insert }, /* b */
- { ISFUNC, rl_insert }, /* c */
- { ISFUNC, rl_insert }, /* d */
- { ISFUNC, rl_insert }, /* e */
- { ISFUNC, rl_insert }, /* f */
- { ISFUNC, rl_insert }, /* g */
- { ISFUNC, rl_insert }, /* h */
- { ISFUNC, rl_insert }, /* i */
- { ISFUNC, rl_insert }, /* j */
- { ISFUNC, rl_insert }, /* k */
- { ISFUNC, rl_insert }, /* l */
- { ISFUNC, rl_insert }, /* m */
- { ISFUNC, rl_insert }, /* n */
- { ISFUNC, rl_insert }, /* o */
- { ISFUNC, rl_insert }, /* p */
- { ISFUNC, rl_insert }, /* q */
- { ISFUNC, rl_insert }, /* r */
- { ISFUNC, rl_insert }, /* s */
- { ISFUNC, rl_insert }, /* t */
- { ISFUNC, rl_insert }, /* u */
- { ISFUNC, rl_insert }, /* v */
- { ISFUNC, rl_insert }, /* w */
- { ISFUNC, rl_insert }, /* x */
- { ISFUNC, rl_insert }, /* y */
- { ISFUNC, rl_insert }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, rl_insert }, /* { */
- { ISFUNC, rl_insert }, /* | */
- { ISFUNC, rl_insert }, /* } */
- { ISFUNC, rl_insert }, /* ~ */
- { ISFUNC, rl_rubout }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Pure 8-bit characters (128 - 159).
- These might be used in some
- character sets. */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
-
- /* ISO Latin-1 characters (160 - 255) */
- { ISFUNC, rl_insert }, /* No-break space */
- { ISFUNC, rl_insert }, /* Inverted exclamation mark */
- { ISFUNC, rl_insert }, /* Cent sign */
- { ISFUNC, rl_insert }, /* Pound sign */
- { ISFUNC, rl_insert }, /* Currency sign */
- { ISFUNC, rl_insert }, /* Yen sign */
- { ISFUNC, rl_insert }, /* Broken bar */
- { ISFUNC, rl_insert }, /* Section sign */
- { ISFUNC, rl_insert }, /* Diaeresis */
- { ISFUNC, rl_insert }, /* Copyright sign */
- { ISFUNC, rl_insert }, /* Feminine ordinal indicator */
- { ISFUNC, rl_insert }, /* Left pointing double angle quotation mark */
- { ISFUNC, rl_insert }, /* Not sign */
- { ISFUNC, rl_insert }, /* Soft hyphen */
- { ISFUNC, rl_insert }, /* Registered sign */
- { ISFUNC, rl_insert }, /* Macron */
- { ISFUNC, rl_insert }, /* Degree sign */
- { ISFUNC, rl_insert }, /* Plus-minus sign */
- { ISFUNC, rl_insert }, /* Superscript two */
- { ISFUNC, rl_insert }, /* Superscript three */
- { ISFUNC, rl_insert }, /* Acute accent */
- { ISFUNC, rl_insert }, /* Micro sign */
- { ISFUNC, rl_insert }, /* Pilcrow sign */
- { ISFUNC, rl_insert }, /* Middle dot */
- { ISFUNC, rl_insert }, /* Cedilla */
- { ISFUNC, rl_insert }, /* Superscript one */
- { ISFUNC, rl_insert }, /* Masculine ordinal indicator */
- { ISFUNC, rl_insert }, /* Right pointing double angle quotation mark */
- { ISFUNC, rl_insert }, /* Vulgar fraction one quarter */
- { ISFUNC, rl_insert }, /* Vulgar fraction one half */
- { ISFUNC, rl_insert }, /* Vulgar fraction three quarters */
- { ISFUNC, rl_insert }, /* Inverted questionk mark */
- { ISFUNC, rl_insert }, /* Latin capital letter a with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter a with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter a with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter a with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter a with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter a with ring above */
- { ISFUNC, rl_insert }, /* Latin capital letter ae */
- { ISFUNC, rl_insert }, /* Latin capital letter c with cedilla */
- { ISFUNC, rl_insert }, /* Latin capital letter e with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter e with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter e with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter e with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter i with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter i with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter i with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter i with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter eth (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin capital letter n with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter o with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter o with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter o with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter o with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter o with diaeresis */
- { ISFUNC, rl_insert }, /* Multiplication sign */
- { ISFUNC, rl_insert }, /* Latin capital letter o with stroke */
- { ISFUNC, rl_insert }, /* Latin capital letter u with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter u with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter u with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter u with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter Y with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter thorn (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin small letter sharp s (German) */
- { ISFUNC, rl_insert }, /* Latin small letter a with grave */
- { ISFUNC, rl_insert }, /* Latin small letter a with acute */
- { ISFUNC, rl_insert }, /* Latin small letter a with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter a with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter a with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter a with ring above */
- { ISFUNC, rl_insert }, /* Latin small letter ae */
- { ISFUNC, rl_insert }, /* Latin small letter c with cedilla */
- { ISFUNC, rl_insert }, /* Latin small letter e with grave */
- { ISFUNC, rl_insert }, /* Latin small letter e with acute */
- { ISFUNC, rl_insert }, /* Latin small letter e with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter e with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter i with grave */
- { ISFUNC, rl_insert }, /* Latin small letter i with acute */
- { ISFUNC, rl_insert }, /* Latin small letter i with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter i with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter eth (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin small letter n with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter o with grave */
- { ISFUNC, rl_insert }, /* Latin small letter o with acute */
- { ISFUNC, rl_insert }, /* Latin small letter o with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter o with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter o with diaeresis */
- { ISFUNC, rl_insert }, /* Division sign */
- { ISFUNC, rl_insert }, /* Latin small letter o with stroke */
- { ISFUNC, rl_insert }, /* Latin small letter u with grave */
- { ISFUNC, rl_insert }, /* Latin small letter u with acute */
- { ISFUNC, rl_insert }, /* Latin small letter u with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter u with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter y with acute */
- { ISFUNC, rl_insert }, /* Latin small letter thorn (Icelandic) */
- { ISFUNC, rl_insert } /* Latin small letter y with diaeresis */
-#endif /* KEYMAP_SIZE > 128 */
-};
-
-/* Unused for the time being. */
-#if 0
-KEYMAP_ENTRY_ARRAY vi_escape_keymap = {
- /* The regular control keys come first. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-h */
- { ISFUNC, rl_tab_insert}, /* Control-i */
- { ISFUNC, rl_emacs_editing_mode}, /* Control-j */
- { ISFUNC, rl_kill_line }, /* Control-k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-l */
- { ISFUNC, rl_emacs_editing_mode}, /* Control-m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-q */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-t */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-x */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
-
- { ISFUNC, rl_vi_movement_mode }, /* Control-[ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-\ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-^ */
- { ISFUNC, rl_vi_undo }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* SPACE */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ! */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* " */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* # */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* $ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* % */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* & */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ' */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ( */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ) */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* * */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* + */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* , */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* - */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* . */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* / */
-
- /* Regular digits. */
- { ISFUNC, rl_vi_arg_digit }, /* 0 */
- { ISFUNC, rl_vi_arg_digit }, /* 1 */
- { ISFUNC, rl_vi_arg_digit }, /* 2 */
- { ISFUNC, rl_vi_arg_digit }, /* 3 */
- { ISFUNC, rl_vi_arg_digit }, /* 4 */
- { ISFUNC, rl_vi_arg_digit }, /* 5 */
- { ISFUNC, rl_vi_arg_digit }, /* 6 */
- { ISFUNC, rl_vi_arg_digit }, /* 7 */
- { ISFUNC, rl_vi_arg_digit }, /* 8 */
- { ISFUNC, rl_vi_arg_digit }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* : */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ; */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* < */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* = */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* > */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ? */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_do_lowercase_version }, /* A */
- { ISFUNC, rl_do_lowercase_version }, /* B */
- { ISFUNC, rl_do_lowercase_version }, /* C */
- { ISFUNC, rl_do_lowercase_version }, /* D */
- { ISFUNC, rl_do_lowercase_version }, /* E */
- { ISFUNC, rl_do_lowercase_version }, /* F */
- { ISFUNC, rl_do_lowercase_version }, /* G */
- { ISFUNC, rl_do_lowercase_version }, /* H */
- { ISFUNC, rl_do_lowercase_version }, /* I */
- { ISFUNC, rl_do_lowercase_version }, /* J */
- { ISFUNC, rl_do_lowercase_version }, /* K */
- { ISFUNC, rl_do_lowercase_version }, /* L */
- { ISFUNC, rl_do_lowercase_version }, /* M */
- { ISFUNC, rl_do_lowercase_version }, /* N */
- { ISFUNC, rl_do_lowercase_version }, /* O */
- { ISFUNC, rl_do_lowercase_version }, /* P */
- { ISFUNC, rl_do_lowercase_version }, /* Q */
- { ISFUNC, rl_do_lowercase_version }, /* R */
- { ISFUNC, rl_do_lowercase_version }, /* S */
- { ISFUNC, rl_do_lowercase_version }, /* T */
- { ISFUNC, rl_do_lowercase_version }, /* U */
- { ISFUNC, rl_do_lowercase_version }, /* V */
- { ISFUNC, rl_do_lowercase_version }, /* W */
- { ISFUNC, rl_do_lowercase_version }, /* X */
- { ISFUNC, rl_do_lowercase_version }, /* Y */
- { ISFUNC, rl_do_lowercase_version }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, rl_arrow_keys }, /* [ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* \ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ^ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* _ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* i */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* l */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* n */
- { ISFUNC, rl_arrow_keys }, /* o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* q */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* t */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* x */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* { */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* | */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* } */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ~ */
- { ISFUNC, rl_backward_kill_word }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Undefined keys. */
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 }
-#endif /* KEYMAP_SIZE > 128 */
-};
-#endif
diff --git a/readline-4.3.orig/vi_mode.c b/readline-4.3.orig/vi_mode.c
deleted file mode 100644
index 5d146b3..0000000
--- a/readline-4.3.orig/vi_mode.c
+++ /dev/null
@@ -1,1485 +0,0 @@
-/* vi_mode.c -- A vi emulation mode for Bash.
- Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-/* **************************************************************** */
-/* */
-/* VI Emulation Mode */
-/* */
-/* **************************************************************** */
-#include "rlconf.h"
-
-#if defined (VI_MODE)
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#include <stdio.h>
-
-/* Some standard library routines. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-#ifndef member
-#define member(c, s) ((c) ? (char *)strchr ((s), (c)) != (char *)NULL : 0)
-#endif
-
-/* Non-zero means enter insertion mode. */
-static int _rl_vi_doing_insert;
-
-/* Command keys which do movement for xxx_to commands. */
-static const char *vi_motion = " hl^$0ftFT;,%wbeWBE|";
-
-/* Keymap used for vi replace characters. Created dynamically since
- rarely used. */
-static Keymap vi_replace_map;
-
-/* The number of characters inserted in the last replace operation. */
-static int vi_replace_count;
-
-/* If non-zero, we have text inserted after a c[motion] command that put
- us implicitly into insert mode. Some people want this text to be
- attached to the command so that it is `redoable' with `.'. */
-static int vi_continued_command;
-static char *vi_insert_buffer;
-static int vi_insert_buffer_size;
-
-static int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
-static int _rl_vi_last_repeat = 1;
-static int _rl_vi_last_arg_sign = 1;
-static int _rl_vi_last_motion;
-#if defined (HANDLE_MULTIBYTE)
-static char _rl_vi_last_search_mbchar[MB_LEN_MAX];
-#else
-static int _rl_vi_last_search_char;
-#endif
-static int _rl_vi_last_replacement;
-
-static int _rl_vi_last_key_before_insert;
-
-static int vi_redoing;
-
-/* Text modification commands. These are the `redoable' commands. */
-static const char *vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~";
-
-/* Arrays for the saved marks. */
-static int vi_mark_chars['z' - 'a' + 1];
-
-static void _rl_vi_stuff_insert PARAMS((int));
-static void _rl_vi_save_insert PARAMS((UNDO_LIST *));
-static int rl_digit_loop1 PARAMS((void));
-
-void
-_rl_vi_initialize_line ()
-{
- register int i;
-
- for (i = 0; i < sizeof (vi_mark_chars) / sizeof (int); i++)
- vi_mark_chars[i] = -1;
-}
-
-void
-_rl_vi_reset_last ()
-{
- _rl_vi_last_command = 'i';
- _rl_vi_last_repeat = 1;
- _rl_vi_last_arg_sign = 1;
- _rl_vi_last_motion = 0;
-}
-
-void
-_rl_vi_set_last (key, repeat, sign)
- int key, repeat, sign;
-{
- _rl_vi_last_command = key;
- _rl_vi_last_repeat = repeat;
- _rl_vi_last_arg_sign = sign;
-}
-
-/* Is the command C a VI mode text modification command? */
-int
-_rl_vi_textmod_command (c)
- int c;
-{
- return (member (c, vi_textmod));
-}
-
-static void
-_rl_vi_stuff_insert (count)
- int count;
-{
- rl_begin_undo_group ();
- while (count--)
- rl_insert_text (vi_insert_buffer);
- rl_end_undo_group ();
-}
-
-/* Bound to `.'. Called from command mode, so we know that we have to
- redo a text modification command. The default for _rl_vi_last_command
- puts you back into insert mode. */
-int
-rl_vi_redo (count, c)
- int count, c;
-{
- int r;
-
- if (!rl_explicit_arg)
- {
- rl_numeric_arg = _rl_vi_last_repeat;
- rl_arg_sign = _rl_vi_last_arg_sign;
- }
-
- r = 0;
- vi_redoing = 1;
- /* If we're redoing an insert with `i', stuff in the inserted text
- and do not go into insertion mode. */
- if (_rl_vi_last_command == 'i' && vi_insert_buffer && *vi_insert_buffer)
- {
- _rl_vi_stuff_insert (count);
- /* And back up point over the last character inserted. */
- if (rl_point > 0)
- rl_point--;
- }
- else
- r = _rl_dispatch (_rl_vi_last_command, _rl_keymap);
- vi_redoing = 0;
-
- return (r);
-}
-
-/* A placeholder for further expansion. */
-int
-rl_vi_undo (count, key)
- int count, key;
-{
- return (rl_undo_command (count, key));
-}
-
-/* Yank the nth arg from the previous line into this line at point. */
-int
-rl_vi_yank_arg (count, key)
- int count, key;
-{
- /* Readline thinks that the first word on a line is the 0th, while vi
- thinks the first word on a line is the 1st. Compensate. */
- if (rl_explicit_arg)
- rl_yank_nth_arg (count - 1, 0);
- else
- rl_yank_nth_arg ('$', 0);
-
- return (0);
-}
-
-/* With an argument, move back that many history lines, else move to the
- beginning of history. */
-int
-rl_vi_fetch_history (count, c)
- int count, c;
-{
- int wanted;
-
- /* Giving an argument of n means we want the nth command in the history
- file. The command number is interpreted the same way that the bash
- `history' command does it -- that is, giving an argument count of 450
- to this command would get the command listed as number 450 in the
- output of `history'. */
- if (rl_explicit_arg)
- {
- wanted = history_base + where_history () - count;
- if (wanted <= 0)
- rl_beginning_of_history (0, 0);
- else
- rl_get_previous_history (wanted, c);
- }
- else
- rl_beginning_of_history (count, 0);
- return (0);
-}
-
-/* Search again for the last thing searched for. */
-int
-rl_vi_search_again (count, key)
- int count, key;
-{
- switch (key)
- {
- case 'n':
- rl_noninc_reverse_search_again (count, key);
- break;
-
- case 'N':
- rl_noninc_forward_search_again (count, key);
- break;
- }
- return (0);
-}
-
-/* Do a vi style search. */
-int
-rl_vi_search (count, key)
- int count, key;
-{
- switch (key)
- {
- case '?':
- rl_noninc_forward_search (count, key);
- break;
-
- case '/':
- rl_noninc_reverse_search (count, key);
- break;
-
- default:
- rl_ding ();
- break;
- }
- return (0);
-}
-
-/* Completion, from vi's point of view. */
-int
-rl_vi_complete (ignore, key)
- int ignore, key;
-{
- if ((rl_point < rl_end) && (!whitespace (rl_line_buffer[rl_point])))
- {
- if (!whitespace (rl_line_buffer[rl_point + 1]))
- rl_vi_end_word (1, 'E');
- rl_point++;
- }
-
- if (key == '*')
- rl_complete_internal ('*'); /* Expansion and replacement. */
- else if (key == '=')
- rl_complete_internal ('?'); /* List possible completions. */
- else if (key == '\\')
- rl_complete_internal (TAB); /* Standard Readline completion. */
- else
- rl_complete (0, key);
-
- if (key == '*' || key == '\\')
- {
- _rl_vi_set_last (key, 1, rl_arg_sign);
- rl_vi_insertion_mode (1, key);
- }
- return (0);
-}
-
-/* Tilde expansion for vi mode. */
-int
-rl_vi_tilde_expand (ignore, key)
- int ignore, key;
-{
- rl_tilde_expand (0, key);
- _rl_vi_set_last (key, 1, rl_arg_sign); /* XXX */
- rl_vi_insertion_mode (1, key);
- return (0);
-}
-
-/* Previous word in vi mode. */
-int
-rl_vi_prev_word (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_vi_next_word (-count, key));
-
- if (rl_point == 0)
- {
- rl_ding ();
- return (0);
- }
-
- if (_rl_uppercase_p (key))
- rl_vi_bWord (count, key);
- else
- rl_vi_bword (count, key);
-
- return (0);
-}
-
-/* Next word in vi mode. */
-int
-rl_vi_next_word (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_vi_prev_word (-count, key));
-
- if (rl_point >= (rl_end - 1))
- {
- rl_ding ();
- return (0);
- }
-
- if (_rl_uppercase_p (key))
- rl_vi_fWord (count, key);
- else
- rl_vi_fword (count, key);
- return (0);
-}
-
-/* Move to the end of the ?next? word. */
-int
-rl_vi_end_word (count, key)
- int count, key;
-{
- if (count < 0)
- {
- rl_ding ();
- return -1;
- }
-
- if (_rl_uppercase_p (key))
- rl_vi_eWord (count, key);
- else
- rl_vi_eword (count, key);
- return (0);
-}
-
-/* Move forward a word the way that 'W' does. */
-int
-rl_vi_fWord (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point < (rl_end - 1))
- {
- /* Skip until whitespace. */
- while (!whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
-
- /* Now skip whitespace. */
- while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
- }
- return (0);
-}
-
-int
-rl_vi_bWord (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point > 0)
- {
- /* If we are at the start of a word, move back to whitespace so
- we will go back to the start of the previous word. */
- if (!whitespace (rl_line_buffer[rl_point]) &&
- whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
-
- while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
- rl_point--;
-
- if (rl_point > 0)
- {
- while (--rl_point >= 0 && !whitespace (rl_line_buffer[rl_point]));
- rl_point++;
- }
- }
- return (0);
-}
-
-int
-rl_vi_eWord (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point < (rl_end - 1))
- {
- if (!whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- /* Move to the next non-whitespace character (to the start of the
- next word). */
- while (++rl_point < rl_end && whitespace (rl_line_buffer[rl_point]));
-
- if (rl_point && rl_point < rl_end)
- {
- /* Skip whitespace. */
- while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- /* Skip until whitespace. */
- while (rl_point < rl_end && !whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- /* Move back to the last character of the word. */
- rl_point--;
- }
- }
- return (0);
-}
-
-int
-rl_vi_fword (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point < (rl_end - 1))
- {
- /* Move to white space (really non-identifer). */
- if (_rl_isident (rl_line_buffer[rl_point]))
- {
- while (_rl_isident (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
- }
- else /* if (!whitespace (rl_line_buffer[rl_point])) */
- {
- while (!_rl_isident (rl_line_buffer[rl_point]) &&
- !whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
- }
-
- /* Move past whitespace. */
- while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
- }
- return (0);
-}
-
-int
-rl_vi_bword (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point > 0)
- {
- int last_is_ident;
-
- /* If we are at the start of a word, move back to whitespace
- so we will go back to the start of the previous word. */
- if (!whitespace (rl_line_buffer[rl_point]) &&
- whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
-
- /* If this character and the previous character are `opposite', move
- back so we don't get messed up by the rl_point++ down there in
- the while loop. Without this code, words like `l;' screw up the
- function. */
- last_is_ident = _rl_isident (rl_line_buffer[rl_point - 1]);
- if ((_rl_isident (rl_line_buffer[rl_point]) && !last_is_ident) ||
- (!_rl_isident (rl_line_buffer[rl_point]) && last_is_ident))
- rl_point--;
-
- while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
- rl_point--;
-
- if (rl_point > 0)
- {
- if (_rl_isident (rl_line_buffer[rl_point]))
- while (--rl_point >= 0 && _rl_isident (rl_line_buffer[rl_point]));
- else
- while (--rl_point >= 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
- !whitespace (rl_line_buffer[rl_point]));
- rl_point++;
- }
- }
- return (0);
-}
-
-int
-rl_vi_eword (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point < rl_end - 1)
- {
- if (!whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- if (rl_point < rl_end)
- {
- if (_rl_isident (rl_line_buffer[rl_point]))
- while (++rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
- else
- while (++rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
- && !whitespace (rl_line_buffer[rl_point]));
- }
- rl_point--;
- }
- return (0);
-}
-
-int
-rl_vi_insert_beg (count, key)
- int count, key;
-{
- rl_beg_of_line (1, key);
- rl_vi_insertion_mode (1, key);
- return (0);
-}
-
-int
-rl_vi_append_mode (count, key)
- int count, key;
-{
- if (rl_point < rl_end)
- {
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- rl_point++;
- else
- {
- int point = rl_point;
- rl_forward_char (1, key);
- if (point == rl_point)
- rl_point = rl_end;
- }
- }
- rl_vi_insertion_mode (1, key);
- return (0);
-}
-
-int
-rl_vi_append_eol (count, key)
- int count, key;
-{
- rl_end_of_line (1, key);
- rl_vi_append_mode (1, key);
- return (0);
-}
-
-/* What to do in the case of C-d. */
-int
-rl_vi_eof_maybe (count, c)
- int count, c;
-{
- return (rl_newline (1, '\n'));
-}
-
-/* Insertion mode stuff. */
-
-/* Switching from one mode to the other really just involves
- switching keymaps. */
-int
-rl_vi_insertion_mode (count, key)
- int count, key;
-{
- _rl_keymap = vi_insertion_keymap;
- _rl_vi_last_key_before_insert = key;
- return (0);
-}
-
-static void
-_rl_vi_save_insert (up)
- UNDO_LIST *up;
-{
- int len, start, end;
-
- if (up == 0)
- {
- if (vi_insert_buffer_size >= 1)
- vi_insert_buffer[0] = '\0';
- return;
- }
-
- start = up->start;
- end = up->end;
- len = end - start + 1;
- if (len >= vi_insert_buffer_size)
- {
- vi_insert_buffer_size += (len + 32) - (len % 32);
- vi_insert_buffer = (char *)xrealloc (vi_insert_buffer, vi_insert_buffer_size);
- }
- strncpy (vi_insert_buffer, rl_line_buffer + start, len - 1);
- vi_insert_buffer[len-1] = '\0';
-}
-
-void
-_rl_vi_done_inserting ()
-{
- if (_rl_vi_doing_insert)
- {
- /* The `C', `s', and `S' commands set this. */
- rl_end_undo_group ();
- /* Now, the text between rl_undo_list->next->start and
- rl_undo_list->next->end is what was inserted while in insert
- mode. It gets copied to VI_INSERT_BUFFER because it depends
- on absolute indices into the line which may change (though they
- probably will not). */
- _rl_vi_doing_insert = 0;
- _rl_vi_save_insert (rl_undo_list->next);
- vi_continued_command = 1;
- }
- else
- {
- if (_rl_vi_last_key_before_insert == 'i' && rl_undo_list)
- _rl_vi_save_insert (rl_undo_list);
- /* XXX - Other keys probably need to be checked. */
- else if (_rl_vi_last_key_before_insert == 'C')
- rl_end_undo_group ();
- while (_rl_undo_group_level > 0)
- rl_end_undo_group ();
- vi_continued_command = 0;
- }
-}
-
-int
-rl_vi_movement_mode (count, key)
- int count, key;
-{
- if (rl_point > 0)
- rl_backward_char (1, key);
-
- _rl_keymap = vi_movement_keymap;
- _rl_vi_done_inserting ();
- return (0);
-}
-
-int
-rl_vi_arg_digit (count, c)
- int count, c;
-{
- if (c == '0' && rl_numeric_arg == 1 && !rl_explicit_arg)
- return (rl_beg_of_line (1, c));
- else
- return (rl_digit_argument (count, c));
-}
-
-/* Change the case of the next COUNT characters. */
-#if defined (HANDLE_MULTIBYTE)
-static int
-_rl_vi_change_mbchar_case (count)
- int count;
-{
- wchar_t wc;
- char mb[MB_LEN_MAX];
- mbstate_t ps;
-
- memset (&ps, 0, sizeof (mbstate_t));
- if (_rl_adjust_point (rl_line_buffer, rl_point, &ps) > 0)
- count--;
- while (count-- && rl_point < rl_end)
- {
- mbrtowc (&wc, rl_line_buffer + rl_point, rl_end - rl_point, &ps);
- if (iswupper (wc))
- wc = towlower (wc);
- else if (iswlower (wc))
- wc = towupper (wc);
- else
- {
- /* Just skip over chars neither upper nor lower case */
- rl_forward_char (1, 0);
- continue;
- }
-
- /* Vi is kind of strange here. */
- if (wc)
- {
- wctomb (mb, wc);
- rl_begin_undo_group ();
- rl_delete (1, 0);
- rl_insert_text (mb);
- rl_end_undo_group ();
- rl_vi_check ();
- }
- else
- rl_forward_char (1, 0);
- }
-
- return 0;
-}
-#endif
-
-int
-rl_vi_change_case (count, ignore)
- int count, ignore;
-{
- char c = 0;
-
- /* Don't try this on an empty line. */
- if (rl_point >= rl_end)
- return (0);
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- return (_rl_vi_change_mbchar_case (count));
-#endif
-
- while (count-- && rl_point < rl_end)
- {
- if (_rl_uppercase_p (rl_line_buffer[rl_point]))
- c = _rl_to_lower (rl_line_buffer[rl_point]);
- else if (_rl_lowercase_p (rl_line_buffer[rl_point]))
- c = _rl_to_upper (rl_line_buffer[rl_point]);
- else
- {
- /* Just skip over characters neither upper nor lower case. */
- rl_forward_char (1, c);
- continue;
- }
-
- /* Vi is kind of strange here. */
- if (c)
- {
- rl_begin_undo_group ();
- rl_delete (1, c);
- _rl_insert_char (1, c);
- rl_end_undo_group ();
- rl_vi_check ();
- }
- else
- rl_forward_char (1, c);
- }
- return (0);
-}
-
-int
-rl_vi_put (count, key)
- int count, key;
-{
- if (!_rl_uppercase_p (key) && (rl_point + 1 <= rl_end))
- rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
-
- rl_yank (1, key);
- rl_backward_char (1, key);
- return (0);
-}
-
-int
-rl_vi_check ()
-{
- if (rl_point && rl_point == rl_end)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- else
- rl_point--;
- }
- return (0);
-}
-
-int
-rl_vi_column (count, key)
- int count, key;
-{
- if (count > rl_end)
- rl_end_of_line (1, key);
- else
- rl_point = count - 1;
- return (0);
-}
-
-int
-rl_vi_domove (key, nextkey)
- int key, *nextkey;
-{
- int c, save;
- int old_end;
-
- rl_mark = rl_point;
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- *nextkey = c;
-
- if (!member (c, vi_motion))
- {
- if (_rl_digit_p (c))
- {
- save = rl_numeric_arg;
- rl_numeric_arg = _rl_digit_value (c);
- rl_digit_loop1 ();
- rl_numeric_arg *= save;
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key (); /* real command */
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- *nextkey = c;
- }
- else if (key == c && (key == 'd' || key == 'y' || key == 'c'))
- {
- rl_mark = rl_end;
- rl_beg_of_line (1, c);
- _rl_vi_last_motion = c;
- return (0);
- }
- else
- return (-1);
- }
-
- _rl_vi_last_motion = c;
-
- /* Append a blank character temporarily so that the motion routines
- work right at the end of the line. */
- old_end = rl_end;
- rl_line_buffer[rl_end++] = ' ';
- rl_line_buffer[rl_end] = '\0';
-
- _rl_dispatch (c, _rl_keymap);
-
- /* Remove the blank that we added. */
- rl_end = old_end;
- rl_line_buffer[rl_end] = '\0';
- if (rl_point > rl_end)
- rl_point = rl_end;
-
- /* No change in position means the command failed. */
- if (rl_mark == rl_point)
- return (-1);
-
- /* rl_vi_f[wW]ord () leaves the cursor on the first character of the next
- word. If we are not at the end of the line, and we are on a
- non-whitespace character, move back one (presumably to whitespace). */
- if ((_rl_to_upper (c) == 'W') && rl_point < rl_end && rl_point > rl_mark &&
- !whitespace (rl_line_buffer[rl_point]))
- rl_point--;
-
- /* If cw or cW, back up to the end of a word, so the behaviour of ce
- or cE is the actual result. Brute-force, no subtlety. */
- if (key == 'c' && rl_point >= rl_mark && (_rl_to_upper (c) == 'W'))
- {
- /* Don't move farther back than where we started. */
- while (rl_point > rl_mark && whitespace (rl_line_buffer[rl_point]))
- rl_point--;
-
- /* Posix.2 says that if cw or cW moves the cursor towards the end of
- the line, the character under the cursor should be deleted. */
- if (rl_point == rl_mark)
- rl_point++;
- else
- {
- /* Move past the end of the word so that the kill doesn't
- remove the last letter of the previous word. Only do this
- if we are not at the end of the line. */
- if (rl_point >= 0 && rl_point < (rl_end - 1) && !whitespace (rl_line_buffer[rl_point]))
- rl_point++;
- }
- }
-
- if (rl_mark < rl_point)
- SWAP (rl_point, rl_mark);
-
- return (0);
-}
-
-/* A simplified loop for vi. Don't dispatch key at end.
- Don't recognize minus sign?
- Should this do rl_save_prompt/rl_restore_prompt? */
-static int
-rl_digit_loop1 ()
-{
- int key, c;
-
- RL_SETSTATE(RL_STATE_NUMERICARG);
- while (1)
- {
- if (rl_numeric_arg > 1000000)
- {
- rl_explicit_arg = rl_numeric_arg = 0;
- rl_ding ();
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return 1;
- }
- rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg);
- RL_SETSTATE(RL_STATE_MOREINPUT);
- key = c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (c >= 0 && _rl_keymap[c].type == ISFUNC &&
- _rl_keymap[c].function == rl_universal_argument)
- {
- rl_numeric_arg *= 4;
- continue;
- }
-
- c = UNMETA (c);
- if (_rl_digit_p (c))
- {
- if (rl_explicit_arg)
- rl_numeric_arg = (rl_numeric_arg * 10) + _rl_digit_value (c);
- else
- rl_numeric_arg = _rl_digit_value (c);
- rl_explicit_arg = 1;
- }
- else
- {
- rl_clear_message ();
- rl_stuff_char (key);
- break;
- }
- }
-
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return (0);
-}
-
-int
-rl_vi_delete_to (count, key)
- int count, key;
-{
- int c;
-
- if (_rl_uppercase_p (key))
- rl_stuff_char ('$');
- else if (vi_redoing)
- rl_stuff_char (_rl_vi_last_motion);
-
- if (rl_vi_domove (key, &c))
- {
- rl_ding ();
- return -1;
- }
-
- /* These are the motion commands that do not require adjusting the
- mark. */
- if ((strchr (" l|h^0bB", c) == 0) && (rl_mark < rl_end))
- rl_mark++;
-
- rl_kill_text (rl_point, rl_mark);
- return (0);
-}
-
-int
-rl_vi_change_to (count, key)
- int count, key;
-{
- int c, start_pos;
-
- if (_rl_uppercase_p (key))
- rl_stuff_char ('$');
- else if (vi_redoing)
- rl_stuff_char (_rl_vi_last_motion);
-
- start_pos = rl_point;
-
- if (rl_vi_domove (key, &c))
- {
- rl_ding ();
- return -1;
- }
-
- /* These are the motion commands that do not require adjusting the
- mark. c[wW] are handled by special-case code in rl_vi_domove(),
- and already leave the mark at the correct location. */
- if ((strchr (" l|hwW^0bB", c) == 0) && (rl_mark < rl_end))
- rl_mark++;
-
- /* The cursor never moves with c[wW]. */
- if ((_rl_to_upper (c) == 'W') && rl_point < start_pos)
- rl_point = start_pos;
-
- if (vi_redoing)
- {
- if (vi_insert_buffer && *vi_insert_buffer)
- rl_begin_undo_group ();
- rl_delete_text (rl_point, rl_mark);
- if (vi_insert_buffer && *vi_insert_buffer)
- {
- rl_insert_text (vi_insert_buffer);
- rl_end_undo_group ();
- }
- }
- else
- {
- rl_begin_undo_group (); /* to make the `u' command work */
- rl_kill_text (rl_point, rl_mark);
- /* `C' does not save the text inserted for undoing or redoing. */
- if (_rl_uppercase_p (key) == 0)
- _rl_vi_doing_insert = 1;
- _rl_vi_set_last (key, count, rl_arg_sign);
- rl_vi_insertion_mode (1, key);
- }
-
- return (0);
-}
-
-int
-rl_vi_yank_to (count, key)
- int count, key;
-{
- int c, save = rl_point;
-
- if (_rl_uppercase_p (key))
- rl_stuff_char ('$');
-
- if (rl_vi_domove (key, &c))
- {
- rl_ding ();
- return -1;
- }
-
- /* These are the motion commands that do not require adjusting the
- mark. */
- if ((strchr (" l|h^0%bB", c) == 0) && (rl_mark < rl_end))
- rl_mark++;
-
- rl_begin_undo_group ();
- rl_kill_text (rl_point, rl_mark);
- rl_end_undo_group ();
- rl_do_undo ();
- rl_point = save;
-
- return (0);
-}
-
-int
-rl_vi_delete (count, key)
- int count, key;
-{
- int end;
-
- if (rl_end == 0)
- {
- rl_ding ();
- return -1;
- }
-
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- end = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO);
- else
- end = rl_point + count;
-
- if (end >= rl_end)
- end = rl_end;
-
- rl_kill_text (rl_point, end);
-
- if (rl_point > 0 && rl_point == rl_end)
- rl_backward_char (1, key);
- return (0);
-}
-
-int
-rl_vi_back_to_indent (count, key)
- int count, key;
-{
- rl_beg_of_line (1, key);
- while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
- return (0);
-}
-
-int
-rl_vi_first_print (count, key)
- int count, key;
-{
- return (rl_vi_back_to_indent (1, key));
-}
-
-int
-rl_vi_char_search (count, key)
- int count, key;
-{
-#if defined (HANDLE_MULTIBYTE)
- static char *target;
- static int mb_len;
-#else
- static char target;
-#endif
- static int orig_dir, dir;
-
- if (key == ';' || key == ',')
- dir = key == ';' ? orig_dir : -orig_dir;
- else
- {
- if (vi_redoing)
-#if defined (HANDLE_MULTIBYTE)
- target = _rl_vi_last_search_mbchar;
-#else
- target = _rl_vi_last_search_char;
-#endif
- else
- {
-#if defined (HANDLE_MULTIBYTE)
- mb_len = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
- target = _rl_vi_last_search_mbchar;
-#else
- RL_SETSTATE(RL_STATE_MOREINPUT);
- _rl_vi_last_search_char = target = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-#endif
- }
-
- switch (key)
- {
- case 't':
- orig_dir = dir = FTO;
- break;
-
- case 'T':
- orig_dir = dir = BTO;
- break;
-
- case 'f':
- orig_dir = dir = FFIND;
- break;
-
- case 'F':
- orig_dir = dir = BFIND;
- break;
- }
- }
-
-#if defined (HANDLE_MULTIBYTE)
- return (_rl_char_search_internal (count, dir, target, mb_len));
-#else
- return (_rl_char_search_internal (count, dir, target));
-#endif
-}
-
-/* Match brackets */
-int
-rl_vi_match (ignore, key)
- int ignore, key;
-{
- int count = 1, brack, pos, tmp, pre;
-
- pos = rl_point;
- if ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- while ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0)
- {
- pre = rl_point;
- rl_forward_char (1, key);
- if (pre == rl_point)
- break;
- }
- }
- else
- while ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0 &&
- rl_point < rl_end - 1)
- rl_forward_char (1, key);
-
- if (brack <= 0)
- {
- rl_point = pos;
- rl_ding ();
- return -1;
- }
- }
-
- pos = rl_point;
-
- if (brack < 0)
- {
- while (count)
- {
- tmp = pos;
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- pos--;
- else
- {
- pos = _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY);
- if (tmp == pos)
- pos--;
- }
- if (pos >= 0)
- {
- int b = rl_vi_bracktype (rl_line_buffer[pos]);
- if (b == -brack)
- count--;
- else if (b == brack)
- count++;
- }
- else
- {
- rl_ding ();
- return -1;
- }
- }
- }
- else
- { /* brack > 0 */
- while (count)
- {
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- pos++;
- else
- pos = _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY);
-
- if (pos < rl_end)
- {
- int b = rl_vi_bracktype (rl_line_buffer[pos]);
- if (b == -brack)
- count--;
- else if (b == brack)
- count++;
- }
- else
- {
- rl_ding ();
- return -1;
- }
- }
- }
- rl_point = pos;
- return (0);
-}
-
-int
-rl_vi_bracktype (c)
- int c;
-{
- switch (c)
- {
- case '(': return 1;
- case ')': return -1;
- case '[': return 2;
- case ']': return -2;
- case '{': return 3;
- case '}': return -3;
- default: return 0;
- }
-}
-
-/* XXX - think about reading an entire mbchar with _rl_read_mbchar and
- inserting it in one bunch instead of the loop below (like in
- rl_vi_char_search or _rl_vi_change_mbchar_case. Set c to mbchar[0]
- for test against 033 or ^C. Make sure that _rl_read_mbchar does
- this right. */
-int
-rl_vi_change_char (count, key)
- int count, key;
-{
- int c;
-
- if (vi_redoing)
- c = _rl_vi_last_replacement;
- else
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- _rl_vi_last_replacement = c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- }
-
- if (c == '\033' || c == CTRL ('C'))
- return -1;
-
- while (count-- && rl_point < rl_end)
- {
- rl_begin_undo_group ();
-
- rl_delete (1, c);
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- while (_rl_insert_char (1, c))
- {
- RL_SETSTATE (RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE (RL_STATE_MOREINPUT);
- }
- else
-#endif
- _rl_insert_char (1, c);
- if (count == 0)
- rl_backward_char (1, c);
-
- rl_end_undo_group ();
- }
- return (0);
-}
-
-int
-rl_vi_subst (count, key)
- int count, key;
-{
- /* If we are redoing, rl_vi_change_to will stuff the last motion char */
- if (vi_redoing == 0)
- rl_stuff_char ((key == 'S') ? 'c' : ' '); /* `S' == `cc', `s' == `c ' */
-
- return (rl_vi_change_to (count, 'c'));
-}
-
-int
-rl_vi_overstrike (count, key)
- int count, key;
-{
- if (_rl_vi_doing_insert == 0)
- {
- _rl_vi_doing_insert = 1;
- rl_begin_undo_group ();
- }
-
- if (count > 0)
- {
- _rl_overwrite_char (count, key);
- vi_replace_count += count;
- }
-
- return (0);
-}
-
-int
-rl_vi_overstrike_delete (count, key)
- int count, key;
-{
- int i, s;
-
- for (i = 0; i < count; i++)
- {
- if (vi_replace_count == 0)
- {
- rl_ding ();
- break;
- }
- s = rl_point;
-
- if (rl_do_undo ())
- vi_replace_count--;
-
- if (rl_point == s)
- rl_backward_char (1, key);
- }
-
- if (vi_replace_count == 0 && _rl_vi_doing_insert)
- {
- rl_end_undo_group ();
- rl_do_undo ();
- _rl_vi_doing_insert = 0;
- }
- return (0);
-}
-
-int
-rl_vi_replace (count, key)
- int count, key;
-{
- int i;
-
- vi_replace_count = 0;
-
- if (!vi_replace_map)
- {
- vi_replace_map = rl_make_bare_keymap ();
-
- for (i = ' '; i < KEYMAP_SIZE; i++)
- vi_replace_map[i].function = rl_vi_overstrike;
-
- vi_replace_map[RUBOUT].function = rl_vi_overstrike_delete;
- vi_replace_map[ESC].function = rl_vi_movement_mode;
- vi_replace_map[RETURN].function = rl_newline;
- vi_replace_map[NEWLINE].function = rl_newline;
-
- /* If the normal vi insertion keymap has ^H bound to erase, do the
- same here. Probably should remove the assignment to RUBOUT up
- there, but I don't think it will make a difference in real life. */
- if (vi_insertion_keymap[CTRL ('H')].type == ISFUNC &&
- vi_insertion_keymap[CTRL ('H')].function == rl_rubout)
- vi_replace_map[CTRL ('H')].function = rl_vi_overstrike_delete;
-
- }
- _rl_keymap = vi_replace_map;
- return (0);
-}
-
-#if 0
-/* Try to complete the word we are standing on or the word that ends with
- the previous character. A space matches everything. Word delimiters are
- space and ;. */
-int
-rl_vi_possible_completions()
-{
- int save_pos = rl_point;
-
- if (rl_line_buffer[rl_point] != ' ' && rl_line_buffer[rl_point] != ';')
- {
- while (rl_point < rl_end && rl_line_buffer[rl_point] != ' ' &&
- rl_line_buffer[rl_point] != ';')
- rl_point++;
- }
- else if (rl_line_buffer[rl_point - 1] == ';')
- {
- rl_ding ();
- return (0);
- }
-
- rl_possible_completions ();
- rl_point = save_pos;
-
- return (0);
-}
-#endif
-
-/* Functions to save and restore marks. */
-int
-rl_vi_set_mark (count, key)
- int count, key;
-{
- int ch;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- ch = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (ch < 'a' || ch > 'z')
- {
- rl_ding ();
- return -1;
- }
- ch -= 'a';
- vi_mark_chars[ch] = rl_point;
- return 0;
-}
-
-int
-rl_vi_goto_mark (count, key)
- int count, key;
-{
- int ch;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- ch = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (ch == '`')
- {
- rl_point = rl_mark;
- return 0;
- }
- else if (ch < 'a' || ch > 'z')
- {
- rl_ding ();
- return -1;
- }
-
- ch -= 'a';
- if (vi_mark_chars[ch] == -1)
- {
- rl_ding ();
- return -1;
- }
- rl_point = vi_mark_chars[ch];
- return 0;
-}
-
-#endif /* VI_MODE */
diff --git a/readline-4.3.orig/xmalloc.c b/readline-4.3.orig/xmalloc.c
deleted file mode 100644
index 8985d34..0000000
--- a/readline-4.3.orig/xmalloc.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* xmalloc.c -- safe versions of malloc and realloc */
-
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
- This file is part of GNU Readline, a library for reading lines
- of text with interactive input and history editing.
-
- Readline is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- Readline is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Readline; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-#include <config.h>
-#endif
-
-#include <stdio.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Memory Allocation and Deallocation. */
-/* */
-/* **************************************************************** */
-
-static void
-memory_error_and_abort (fname)
- char *fname;
-{
- fprintf (stderr, "%s: out of virtual memory\n", fname);
- exit (2);
-}
-
-/* Return a pointer to free()able block of memory large enough
- to hold BYTES number of bytes. If the memory cannot be allocated,
- print an error message and abort. */
-PTR_T
-xmalloc (bytes)
- size_t bytes;
-{
- PTR_T temp;
-
- temp = malloc (bytes);
- if (temp == 0)
- memory_error_and_abort ("xmalloc");
- return (temp);
-}
-
-PTR_T
-xrealloc (pointer, bytes)
- PTR_T pointer;
- size_t bytes;
-{
- PTR_T temp;
-
- temp = pointer ? realloc (pointer, bytes) : malloc (bytes);
-
- if (temp == 0)
- memory_error_and_abort ("xrealloc");
- return (temp);
-}
-
-/* Use this as the function to call when adding unwind protects so we
- don't need to know what free() returns. */
-void
-xfree (string)
- PTR_T string;
-{
- if (string)
- free (string);
-}
diff --git a/readline-4.3.orig/xmalloc.h b/readline-4.3.orig/xmalloc.h
deleted file mode 100644
index 9cb08ba..0000000
--- a/readline-4.3.orig/xmalloc.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* xmalloc.h -- memory allocation that aborts on errors. */
-
-/* Copyright (C) 1999 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_XMALLOC_H_)
-#define _XMALLOC_H_
-
-#if defined (READLINE_LIBRARY)
-# include "rlstdc.h"
-#else
-# include <readline/rlstdc.h>
-#endif
-
-#ifndef PTR_T
-
-#ifdef __STDC__
-# define PTR_T void *
-#else
-# define PTR_T char *
-#endif
-
-#endif /* !PTR_T */
-
-extern PTR_T xmalloc PARAMS((size_t));
-extern PTR_T xrealloc PARAMS((void *, size_t));
-extern void xfree PARAMS((void *));
-
-#endif /* _XMALLOC_H_ */
diff --git a/readline-4.3/CHANGELOG-ReadLine b/readline-4.3/CHANGELOG-ReadLine
deleted file mode 100644
index 350defa..0000000
--- a/readline-4.3/CHANGELOG-ReadLine
+++ /dev/null
@@ -1,699 +0,0 @@
-[Readline-specific changelog. Descriptions of changes to the source are
- found in the bash changelog.]
-
- 6/9
- ---
-Makefile.in
- - quote value of ${INSTALL_DATA} when passing it to makes in
- subdirectories
-
- 7/1
- ---
-Makefile.in
- - don't pass INSTALL_DATA to a make in the `doc' subdirectory; let
- autoconf set the value itself in the Makefile
- - removed a stray `-' before $(RANLIB) in the `install' recipe
-
-doc/Makefile.in
- - add a VPATH assignment so the documentation is not remade if it's
- already up-to-date in the distribution
-
-configure.in
- - call AC_SUBST(LOCAL_LDFLAGS), since Makefile.in contains
- @LOCAL_LDFLAGS@
-
- 7/9
- ---
-
-config.h.in
- - add define lines for STRUCT_WINSIZE_IN_SYS_IOCTL and
- STRUCT_WINSIZE_IN_TERMIOS
-
-configure.in
- - call BASH_STRUCT_WINSIZE to look for the definition of
- `struct winsize'
-
- 7/17
- ----
-configure.in
- - call AC_MINIX
-
-config.h.in
- - add define line for AC_MINIX
-
- 7/18
- ----
-Makefile.in
- - add `install-shared' and `uninstall-shared' targets
-
- 8/4
- ---
-Makefile.in
- - install and uninstall libhistory.a in the `install' and
- `uninstall' targets
-
- 9/4
- ---
-configure.in
- - bumped LIBVERSION up to 2.1.1, indicating that this is patch
- level 1 to release 2.1
-
-
- 9/16
- ----
-Makefile.in
- - `make distclean' now descends into the `examples' subdir
-
-doc/Makefile.in
- - the `distclean' and `maintainer-clean' targets should remove
- Makefile
-
-examples/Makefile.in
- - added the various clean targets
-
- 4/2
- ---
-configure.in
- - bumped LIBVERSION up to 2.2
-
- 4/18
- ----
-[readline-2.2 released]
-
- 4/20
- ----
-Makefile.in
- - make `libhistory.a' a dependency of `install'
- - fixed a typo in the recipe for `install' that copied libreadline.a
- to libhistory.old right after installing it
-
- 4/27
- ----
-doc/Makefile.in
- - install {readline,history}.info out of the source directory if
- they are not found in the current (build) directory -- only an
- issue if the libraries are built in a different directory than
- the source directory
-
- 5/1
- ---
-support/shobj-conf
- - script from the bash distribution to do shared object and library
- configuration
-
-shlib/Makefile.in
- - new directory and makefile to handle building shared versions of
- libreadline and libhistory, controlled by support/shobj-conf
-
- 5/7
- ---
-doc/Makefile.in
- - set SHELL to /bin/sh, rather than relying on make to be correct
-
- 5/14
- ----
-savestring.c
- - new file, moved from shell.c, for backwards compatibility
-
-Makefile.in, shlib/Makefile.in
- - make sure savestring.c is compiled and added to libreadline and
- libhistory
-
-[THERE ARE NO MORE #ifdef SHELL LINES IN THE C SOURCE FILES.]
-
- 5/15
- ----
-README
- - updated description of shared library creation for the new scheme
-
-[THERE ARE NO MORE #ifdef SHELL LINES IN ANY OF THE SOURCE FILES.]
-
-Makefile.in
- - bumped SHLIB_MAJOR up to 4 since we've augmented the library
- API
- - rlconf.h is now one of the installed headers, so applications can
- find out whether things like vi-mode are available in the installed
- libreadline
-
- 5/20
- ----
-configure.in
- - changed RL_LIBRARY_VERSION to 4.0 to match the version of the
- installed shared libraries
-
- 6/5
- ---
-rlstdc.h
- - new file
-
-Makefile.in
- - rlstdc.h is now one of the installed headers
-
- 8/3
- ---
-shlib/Makefile.in
- - made the suffix rule that creates xx.so from xx.c write the
- compiler output to `a.o', which is then mv'd to xx.so, because
- some compilers (Sun WSpro 4.2, for example) don't allow any
- suffixes other than `.o' for `cc -c' (not even `a.out')
-
- 9/15
- ----
-
-Makefile.in
- - AR and ARFLAGS are now substituted by configure, used in recipes
- that build the libraries
-
-configure.in
- - use AC_CHECK_PROG to check for ar
- - set ARFLAGS if it has not already been set in the environment
-
- 10/5
- ----
-Makefile.in
- - removed savestring.o from object file list
-
- 10/28
- -----
-shlib/Makefile.in
- - don't use a fixed filename in the .c.so suffix rule to avoid
- problems with parallel makes
-
- 12/21
- -----
-support/shlib-install
- - new script to install shared readline and history libraries
-
-shlib/Makefile.in
- - changed to call shlib-install for install and uninstall targets
-
-[readline-4.0-beta1 frozen]
-
- 12/22
- -----
-configure.in
- - call AC_SUBST for SHOBJ_XLDFLAGS and SHLIB_LIBS
-
-shlib/Makefile.in
- - SHOBJ_XLDFLAGS and SHLIB_LIBS are now substituted by configure
- - add $(SHLIB_LIBS) at end of command line that builds the shared
- libraries (currently needed only by AIX 4.2)
-
- 12/31
- -----
-MANIFEST, MANIFEST.doc
- - the TOC html files are no longer generated and no longer part of
- the distribution
-
- 2/18/1999
- ---------
-configure.in
- - set MAKE_SHELL to /bin/sh and substitute into the Makefiles
-
-Makefile.in,{doc,examples,shlib}/Makefile.in
- - set SHELL from @MAKE_SHELL@
-
-[readline-4.0 released]
-
- 3/11
- ----
-doc/Makefile.in
- - removed references to HTMLTOC, since separate HTML table-of-contents
- files are no longer created
-
-examples/Makefile.in
- - remove `*.exe' in clean target for MS-DOS
-
-Makefile.in
- - make `readline' target depend on ./libreadline.a
- - configure now substitutes TERMCAP_LIB into Makefile.in
- - use ${TERMCAP_LIB} instead of -ltermcap in recipe for `readline'
- - clean target now removes readline and readline.exe in case they
- get built
-
-configure.in
- - use `pwd.exe' to set BUILD_DIR on MS-DOS DJGPP
-
- 3/15
- ----
-support/shlib-install
- - Irix 5.x and Irix 6.x should install shared libraries like Solaris 2
- - changes for installing on hp-ux 1[01].x
-
- 3/23
- ----
-configure.in
- - make sure that the $CC argument to shobj-conf is quoted
-
- 4/8
- ---
-
-xmalloc.h, rlprivate.h, rlshell.h
- - new files
-
-Makefile.in,shlib/Makefile.in
- - add dependencies on xmalloc.h, rlshell.h
- - add xmalloc.h, rlprivate.h, rlshell.h to list of header files
-
-MANIFEST
- - add xmalloc.h, rlprivate.h, rlshell.h
-
- 4/9
- ---
-Makefile.in,shlib/Makefile.in
- - add dependencies on rlprivate.h
-
- 4/13
- ----
-doc/Makefile.in
- - add variable, PSDVI, which is the desired resolution of the
- generated postscript files. Set to 300 because I don't have
- any 600-dpi printers
- - set LANGUAGE= before calling makeinfo, so messages are in English
- - add rluserman.{info,dvi,ps,html} to appropriate variables
- - add rules to create rluserman.{info,dvi,ps,html}
- - install and uninstall rluserman.info, but don't update the directory
- file in $(infodir) yet
-
-MANIFEST
- - add doc/rluserman.{texinfo,info,dvi,ps,html}
-
- 4/30
- ----
-configure.in
- - updated library version to 4.1
-
- 5/3
- ---
-configure.in
- - SHLIB_MAJOR and SHLIB_MINOR shared library version numbers are
- constructed from $LIBRARY_VERSION and substituted into Makefiles
-
- 5/5
- ---
-support/shlib-install
- - OSF/1 installs shared libraries like Solaris
-
-Makefile.in
- - broke the header file install and uninstall into two new targets:
- install-headers and uninstall-headers
- - install and uninstall depend on install-headers and uninstall-headers
- respectively
- - changed install-shared and uninstall-shared targets to depend on
- install-headers and uninstall-headers, respectively, so users may
- choose to install only the shared libraries. I'm not sure about
- the uninstall one yet -- maybe it should check whether or not
- the static libraries are installed and not remove the header files
- if they are
-
- 9/3
- ---
-configure.in, config.h.in
- - added test for memmove (for later use)
- - changed version to 4.1-beta1
-
- 9/13
- ----
-examples/rlfe.c
- - Per Bothner's `rlfe' readline front-end program
-
-examples/Makefile.in
- - added rules to build rlfe
-
- 9/21
- ----
-support/shlib-install
- - changes to handle FreeBSD-3.x elf or a.out shared libraries, which
- have different semantics and need different naming conventions
-
- 1/24/2000
- ---------
-doc/Makefile.in
- - remove *.bt and *.bts on `make clean'
-
- 2/4
- ---
-
-
-configure.in
- - changed LIBVERSION to 4.1-beta5
-
- 3/17/2000
- ---------
-[readline-4.1 released]
-
- 3/23
- ----
-Makefile.in
- - remove the `-t' argument to ranlib in the install recipe; some
- ranlibs don't have it and attempt to create a file named `-t'
-
- 3/27
- ----
-support/shlib-install
- - install shared libraries unwritable by anyone on HP-UX
- - changed symlinks to relative pathnames on all platforms
-
-shlib/Makefile.in
- - added missing `includedir' assignment, substituted by configure
-
-Makefile.in
- - added missing @SET_MAKE@ so configure can set $MAKE appropriately
-
-configure.in
- - add call to AC_PROG_MAKE_SET
-
- 8/30
- ----
-shlib/Makefile.in
- - change the soname bound into the shared libraries, so it includes
- only the major version number. If it includes the minor version,
- programs depending on it must be rebuilt (which may or may not be
- a bad thing)
-
- 9/6
- ---
-examples/rlfe.c
- - add -l option to log input and output (-a option appends to logfile)
- - add -n option to set readline application name
- - add -v, -h options for version and help information
- - change a few things because getopt() is now used to parse arguments
-
- 9/12
- ----
-support/shlib-install
- - fix up the libname on HPUX 11
-
- 10/18
- -----
-configure.in
- - changed library version to 4.2-alpha
-
- 10/30
- -----
-configure.in
- - add -fsigned-char to LOCAL_CFLAGS for Linux running on the IBM
- S/390
-
-Makefile.in
- - added new file, rltypedefs.h, installed by default with `make install'
-
- 11/2
- ----
-compat.c
- - new file, with backwards-compatibility function definitions
-
-Makefile.in,shlib/Makefile.in
- - make sure that compat.o/compat.so are built and linked apppropriately
-
-support/shobj-conf
- - picked up bash version, which means that shared libs built on
- linux and BSD/OS 4.x will have an soname that does not include
- the minor version number
-
- 11/13
- -----
-examples/rlfe.c
- - rlfe can perform filename completion for relative pathnames in the
- inferior process's context if the OS supports /proc/PID/cwd (linux
- does it OK, Solaris is slightly warped, none of the BSDs have it)
-
- 11/17/2000
- ----------
-[readline-4.2-alpha released]
-
- 11/27
- -----
-Makefile.in,shlib/Makefile.in
- - added dependencies for rltypedefs.h
-
-shlib/Makefile.in
- - changed dependencies on histlib.h to $(topdir)/histlib.h
-
- 1/22
- ----
-configure.in
- - changed release version to 4.2-beta
-
- 2/2
- ---
-examples/Makefile.in
- - build histexamp as part of the examples
-
- 2/5
- ---
-doc/Makefile.in
- - don't remove the dvi, postscript, html, info, and text `objects'
- on a `make distclean', only on a `make maintainer-clean'
-
- 3/6
- ---
-doc/history.{0,3}, doc/history_3.ps
- - new manual page for history library
-
-doc/Makefile.in
- - rules to install and uninstall history.3 in ${man3dir}
- - rules to build history.0 and history_3.ps
-
- 4/2
- ---
-configure.in
- - changed LIBVERSION to `4.2'
-
- 4/5
- ---
-[readline-4.2 frozen]
-
- 4/9
- ---
-[readline-4.2 released]
-
- 5/2
- ---
-Makefile.in,{doc,examples,shlib}/Makefile.in
- - added support for DESTDIR installation root prefix, to support
- building packages
-
-doc/Makefile.in
- - add an info `dir' file entry for rluserman.info on `make install'
- - change man1ext to `.1' and man3ext to `.3'
- - install man pages with a $(man3ext) extension in the target directory
- - add support for installing html documentation if `htmldir' has a
- value
-
-Makefile.in
- - on `make install', install from the `shlib' directory, too
- - on `make uninstall', uninstall in the `doc' and `shlib'
- subdirectories, too
-
-support/shlib-install
- - add `freebsdelf*', `freebsdaout*', Hurd, `sysv4*', `sysv5*', `dgux*'
- targets for symlink creation
-
- 5/7
- ---
-configure.in, config.h.in
- - check for <limits.h>, define HAVE_LIMITS_H if found
-
- 5/8
- ---
-aclocal.m4
- - pick up change to BASH_CHECK_LIB_TERMCAP that adds check for
- libtinfo (termcap-specific portion of ncurses-5.2)
-
- 5/9
- ---
-configure.in
- - call AC_C_CONST to find out whether or not the compiler supports
- `const'
-
-config.h.in
- - placeholder for `const' define, if any
-
- 5/10
- ----
-configure.in
- - fix AC_CHECK_PROG(ar, ...) test to specify right value for the
- case where ar is not found; should produce a better error message
-
- 5/14
- ----
-configure.in,config.h.in
- - check for vsnprintf, define HAVE_VSNPRINTF if found
-
- 5/21
- ----
-configure.in, config.h.in
- - add checks for size_t, ssize_t
-
- 5/30
- ----
-configure.in
- - update autoconf to version 2.50, use in AC_PREREQ
- - changed AC_INIT to new flavor
- - added AC_CONFIG_SRCDIR
- - AC_CONFIG_HEADER -> AC_CONFIG_HEADERS
- - call AC_C_PROTOTYPES
- - AC_RETSIGTYPE -> AC_TYPE_SIGNAL
-
- 8/22
- ----
-configure.in
- - updated the version number to 4.2a
-
-Makefile.in,shlib/Makefile.in
- - make sure tilde.o is built -DREADLINE_LIBRARY when being built as
- part of the standalone library, so it picks up the right include
- files
-
- 8/23
- ----
-support/shlib-install
- - support for Darwin/MacOS X shared library installation
-
- 9/24
- ----
-examples/readlinebuf.h
- - a new file, a C++ streambuf interface that uses readline for I/O.
- Donated by Dimitris Vyzovitis <vyzo@media.mit.edu>
-
- 10/9
- ----
-configure.in
- - replaced call to BASH_HAVE_TIOCGWINSZ with AC_HEADER_TIOCGWINSZ
-
-[readline-4.2a-beta1 frozen]
-
- 10/15
- -----
-configure.in, config.h.in
- - check for <memory.h>, define HAVE_MEMORY_H if found
- - check for <strings.h>, define HAVE_STRINGS_H if found
-
- 10/18
- -----
-configure.in, config.h.in
- - check for isascii, define HAVE_ISASCII if found
-
-configure.in
- - changed the macro names from bash as appropriate:
- BASH_SIGNAL_CHECK -> BASH_SYS_SIGNAL_VINTAGE
- BASH_REINSTALL_SIGHANDLERS -> BASH_SYS_REINSTALL_SIGHANDLERS
- BASH_MISC_SPEED_T -> BASH_CHECK_SPEED_T
-
- 10/22
- -----
-configure.in
- - check for isxdigit with AC_CHECK_FUNCS
-
-config.h.in
- - new define for HAVE_ISXDIGIT
-
- 10/29
- -----
-configure.in, config.h.in
- - check for strpbrk with AC_CHECK_FUNCS, define HAVE_STRPBRK if found
-
- 11/1
- ----
-Makefile.in
- - make sure DESTDIR is passed to install and uninstall makes in
- subdirectories
- - when saving old copies of installed libraries, make sure we use
- DESTDIR for the old installation tree
-
-[readline-4.2a-rc1 frozen]
-
- 11/2
- ----
-Makefile.in, shlib/Makefile.in
- - don't put -I$(includedir) into CFLAGS
-
- 11/15
- -----
-[readline-4.2a released]
-
- 11/20
- -----
-examples/rlcat.c
- - new file
-
-examples/Makefile.in
- - changes for rlcat
-
- 11/28
- -----
-configure.in
- - default TERMCAP_LIB to -lcurses if $prefer_curses == yes (as when
- --with-curses is supplied)
-
-examples/Makefile.in
- - substitute @LDFLAGS@ in LDFLAGS assignment
-
- 11/29
- -----
-config.h.in
- - add necessary defines for multibyte include files and functions
- - add code to define HANDLE_MULTIBYTE if prerequisites are met
-
-configure.in
- - call BASH_CHECK_MULTIBYTE
-
- 12/14
- -----
-config.h.in
- - add #undef PROTOTYPES, filled in by AC_C_PROTOTYPES
-
- 12/17
- -----
-config.h.in
- - moved HANDLE_MULTIBYTE code to rlmbutil.h
-
-rlmbutil.h, mbutil.c
- - new files
-
-Makefile.in, shlib/Makefile.in
- - added rules for mbutil.c
-
- 12/20
- -----
-configure.in
- - added --enable-shared, --enable-static options to configure to
- say which libraries are built by default (both default to yes)
- - if SHLIB_STATUS == 'unsupported', turn off default shared library
- building
- - substitute new STATIC_TARGET, SHARED_TARGET, STATIC_INSTALL_TARGET,
- and SHARED_INSTALL_TARGET
-
-Makefile.in
- - `all' target now depends on (substituted) @STATIC_TARGET@ and
- @SHARED_TARGET@
- - `install' target now depends on (substituted) @STATIC_INSTALL_TARGET@
- and @SHARED_INSTALL_TARGET@
-
-INSTALL, README
- - updated with new info about --enable-shared and --enable-static
-
- 1/10/2002
- ---------
-configure.in
- - bumped the library version number to 4.3
-
- 1/24
- ----
-Makefile.in,shlib/Makefile.in
- - changes for new file, text.c, with character and text handling
- functions from readline.c
-
- 2/20
- ----
-{configure.config.h}.in
- - call AC_C_CHAR_UNSIGNED, define __CHAR_UNSIGNED__ if chars are
- unsigned by default
-
- 5/20
- ----
-doc/Makefile.in
- - new maybe-clean target that removes the generated documentation if
- the build directory differs from the source directory
- - distclean target now depends on maybe-clean
diff --git a/readline-4.3/CHANGES b/readline-4.3/CHANGES
deleted file mode 100644
index bc9fe94..0000000
--- a/readline-4.3/CHANGES
+++ /dev/null
@@ -1,612 +0,0 @@
-This document details the changes between this version, readline-4.3,
-and the previous version, readline-4.2a.
-
-1. Changes to Readline
-
-a. Fixed output of comment-begin character when listing variable values.
-
-b. Added some default key bindings for common escape sequences produced by
- HOME and END keys.
-
-c. Fixed the mark handling code to be more emacs-compatible.
-
-d. A bug was fixed in the code that prints possible completions to keep it
- from printing empty strings in certain circumstances.
-
-e. Change the key sequence printing code to print ESC as M\- if ESC is a
- meta-prefix character -- it's easier for users to understand than \e.
-
-f. Fixed unstifle_history() to return values that match the documentation.
-
-g. Fixed the event loop (rl_event_hook) to handle the case where the input
- file descriptor is invalidated.
-
-h. Fixed the prompt display code to work better when the application has a
- custom redisplay function.
-
-i. Changes to make reading and writing the history file a little faster, and
- to cope with huge history files without calling abort(3) from xmalloc.
-
-j. The vi-mode `S' and `s' commands are now undone correctly.
-
-k. Fixed a problem which caused the display to be messed up when the last
- line of a multi-line prompt (possibly containing invisible characters)
- was longer than the screen width.
-
-2. New Features in Readline
-
-a. Support for key `subsequences': allows, e.g., ESC and ESC-a to both
- be bound to readline functions. Now the arrow keys may be used in vi
- insert mode.
-
-b. When listing completions, and the number of lines displayed is more than
- the screen length, readline uses an internal pager to display the results.
- This is controlled by the `page-completions' variable (default on).
-
-c. New code to handle editing and displaying multibyte characters.
-
-d. The behavior introduced in bash-2.05a of deciding whether or not to
- append a slash to a completed name that is a symlink to a directory has
- been made optional, controlled by the `mark-symlinked-directories'
- variable (default is the 2.05a behavior).
-
-e. The `insert-comment' command now acts as a toggle if given a numeric
- argument: if the first characters on the line don't specify a
- comment, insert one; if they do, delete the comment text
-
-f. New application-settable completion variable:
- rl_completion_mark_symlink_dirs, allows an application's completion
- function to temporarily override the user's preference for appending
- slashes to names which are symlinks to directories.
-
-g. New function available to application completion functions:
- rl_completion_mode, to tell how the completion function was invoked
- and decide which argument to supply to rl_complete_internal (to list
- completions, etc.).
-
-h. Readline now has an overwrite mode, toggled by the `overwrite-mode'
- bindable command, which could be bound to `Insert'.
-
-i. New application-settable completion variable:
- rl_completion_suppress_append, inhibits appending of
- rl_completion_append_character to completed words.
-
-j. New key bindings when reading an incremental search string: ^W yanks
- the currently-matched word out of the current line into the search
- string; ^Y yanks the rest of the current line into the search string,
- DEL or ^H deletes characters from the search string.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-4.2a,
-and the previous version, readline-4.2.
-
-1. Changes to Readline
-
-a. More `const' and type casting fixes.
-
-b. Changed rl_message() to use vsnprintf(3) (if available) to fix buffer
- overflow problems.
-
-c. The completion code no longer appends a `/' or ` ' to a match when
- completing a symbolic link that resolves to a directory name, unless
- the match does not add anything to the word being completed. This
- means that a tab will complete the word up to the full name, but not
- add anything, and a subsequent tab will add a slash.
-
-d. Fixed a trivial typo that made the vi-mode `dT' command not work.
-
-e. Fixed the tty code so that ^S and ^Q can be inserted with rl_quoted_insert.
-
-f. Fixed the tty code so that ^V works more than once.
-
-g. Changed the use of __P((...)) for function prototypes to PARAMS((...))
- because the use of __P in typedefs conflicted g++ and glibc.
-
-h. The completion code now attempts to do a better job of preserving the
- case of the word the user typed if ignoring case in completions.
-
-i. Readline defaults to not echoing the input and lets the terminal
- initialization code enable echoing if there is a controlling terminal.
-
-j. The key binding code now processes only two hex digits after a `\x'
- escape sequence, and the documentation was changed to note that the
- octal and hex escape sequences result in an eight-bit value rather
- than strict ASCII.
-
-k. Fixed a few places where negative array subscripts could have occurred.
-
-l. Fixed the vi-mode code to use a better method to determine the bounds of
- the array used to hold the marks, and to avoid out-of-bounds references.
-
-m. Fixed the defines in chardefs.h to work better when chars are signed.
-
-n. Fixed configure.in to use the new names for bash autoconf macros.
-
-o. Readline no longer attempts to define its own versions of some ctype
- macros if they are implemented as functions in libc but not as macros in
- <ctype.h>.
-
-p. Fixed a problem where rl_backward could possibly set point to before
- the beginning of the line.
-
-q. Fixed Makefile to not put -I/usr/include into CFLAGS, since it can cause
- include file problems.
-
-2. New Features in Readline
-
-a. Added extern declaration for rl_get_termcap to readline.h, making it a
- public function (it was always there, just not in readline.h).
-
-b. New #defines in readline.h: RL_READLINE_VERSION, currently 0x0402,
- RL_VERSION_MAJOR, currently 4, and RL_VERSION_MINOR, currently 2.
-
-c. New readline variable: rl_readline_version, mirrors RL_READLINE_VERSION.
-
-d. New bindable boolean readline variable: match-hidden-files. Controls
- completion of files beginning with a `.' (on Unix). Enabled by default.
-
-e. The history expansion code now allows any character to terminate a
- `:first-' modifier, like csh.
-
-f. The incremental search code remembers the last search string and uses
- it if ^R^R is typed without a search string.
-
-h. New bindable variable `history-preserve-point'. If set, the history
- code attempts to place the user at the same location on each history
- line retrived with previous-history or next-history.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-4.2,
-and the previous version, readline-4.1.
-
-1. Changes to Readline
-
-a. When setting the terminal attributes on systems using `struct termio',
- readline waits for output to drain before changing the attributes.
-
-b. A fix was made to the history word tokenization code to avoid attempts to
- dereference a null pointer.
-
-c. Readline now defaults rl_terminal_name to $TERM if the calling application
- has left it unset, and tries to initialize with the resultant value.
-
-d. Instead of calling (*rl_getc_function)() directly to get input in certain
- places, readline now calls rl_read_key() consistently.
-
-e. Fixed a bug in the completion code that allowed a backslash to quote a
- single quote inside a single-quoted string.
-
-f. rl_prompt is no longer assigned directly from the argument to readline(),
- but uses memory allocated by readline. This allows constant strings to
- be passed to readline without problems arising when the prompt processing
- code wants to modify the string.
-
-g. Fixed a bug that caused non-interactive history searches to return the
- wrong line when performing multiple searches backward for the same string.
-
-h. Many variables, function arguments, and function return values are now
- declared `const' where appropriate, to improve behavior when linking with
- C++ code.
-
-i. The control character detection code now works better on systems where
- `char' is unsigned by default.
-
-j. The vi-mode numeric argument is now capped at 999999, just like emacs mode.
-
-k. The Function, CPFunction, CPPFunction, and VFunction typedefs have been
- replaced with a set of specific prototyped typedefs, though they are
- still in the readline header files for backwards compatibility.
-
-m. Nearly all of the (undocumented) internal global variables in the library
- now have an _rl_ prefix -- there were a number that did not, like
- screenheight, screenwidth, alphabetic, etc.
-
-n. The ding() convenience function has been renamed to rl_ding(), though the
- old function is still defined for backwards compatibility.
-
-o. The completion convenience functions filename_completion_function,
- username_completion_function, and completion_matches now have an rl_
- prefix, though the old names are still defined for backwards compatibility.
-
-p. The functions shared by readline and bash (linkage is satisfied from bash
- when compiling with bash, and internally otherwise) now have an sh_ prefix.
-
-q. Changed the shared library creation procedure on Linux and BSD/OS 4.x so
- that the `soname' contains only the major version number rather than the
- major and minor numbers.
-
-r. Fixed a redisplay bug that occurred when the prompt spanned more than one
- physical line and contained invisible characters.
-
-s. Added a missing `includedir' variable to the Makefile.
-
-t. When installing the shared libraries, make sure symbolic links are relative.
-
-u. Added configure test so that it can set `${MAKE}' appropriately.
-
-v. Fixed a bug in rl_forward that could cause the point to be set to before
- the beginning of the line in vi mode.
-
-w. Fixed a bug in the callback read-char interface to make it work when a
- readline function pushes some input onto the input stream with
- rl_execute_next (like the incremental search functions).
-
-x. Fixed a file descriptor leak in the history file manipulation code that
- was tripped when attempting to truncate a non-regular file (like
- /dev/null).
-
-y. Changes to make all of the exported readline functions declared in
- readline.h have an rl_ prefix (rltty_set_default_bindings is now
- rl_tty_set_default_bindings, crlf is now rl_crlf, etc.)
-
-z. The formatted documentation included in the base readline distribution
- is no longer removed on a `make distclean'.
-
-aa. Some changes were made to avoid gcc warnings with -Wall.
-
-bb. rl_get_keymap_by_name now finds keymaps case-insensitively, so
- `set keymap EMACS' works.
-
-cc. The history file writing and truncation functions now return a useful
- status on error.
-
-dd. Fixed a bug that could cause applications to dereference a NULL pointer
- if a NULL second argument was passed to history_expand().
-
-ee. If a hook function assigned to rl_event_hook sets rl_done to a non-zero
- value, rl_read_key() now immediately returns '\n' (which is assumed to
- be bound to accept-line).
-
-2. New Features in Readline
-
-a. The blink timeout for paren matching is now settable by applications,
- via the rl_set_paren_blink_timeout() function.
-
-b. _rl_executing_macro has been renamed to rl_executing_macro, which means
- it's now part of the public interface.
-
-c. Readline has a new variable, rl_readline_state, which is a bitmap that
- encapsulates the current state of the library; intended for use by
- callbacks and hook functions.
-
-d. rlfe has a new -l option to log input and output (-a appends to logfile),
- a new -n option to set the readline application name, and -v and -h
- options for version and help information.
-
-e. rlfe can now perform filename completion for the inferior process if the
- OS has a /proc/<PID>/cwd that can be read with readlink(2) to get the
- inferior's current working directory.
-
-f. A new file, rltypedefs.h, contains the new typedefs for function pointers
- and is installed by `make install'.
-
-g. New application-callable function rl_set_prompt(const char *prompt):
- expands its prompt string argument and sets rl_prompt to the result.
-
-h. New application-callable function rl_set_screen_size(int rows, int cols):
- public method for applications to set readline's idea of the screen
- dimensions.
-
-i. The history example program (examples/histexamp.c) is now built as one
- of the examples.
-
-j. The documentation has been updated to cover nearly all of the public
- functions and variables declared in readline.h.
-
-k. New function, rl_get_screen_size (int *rows, int *columns), returns
- readline's idea of the screen dimensions.
-
-l. The timeout in rl_gather_tyi (readline keyboard input polling function)
- is now settable via a function (rl_set_keyboard_input_timeout()).
-
-m. Renamed the max_input_history variable to history_max_entries; the old
- variable is maintained for backwards compatibility.
-
-n. The list of characters that separate words for the history tokenizer is
- now settable with a variable: history_word_delimiters. The default
- value is as before.
-
-o. There is a new history.3 manual page documenting the history library.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-4.1,
-and the previous version, readline-4.0.
-
-1. Changes to Readline
-
-a. Changed the HTML documents so that the table-of-contents is no longer
- a separate file.
-
-b. Changes to the shared object configuration for: Irix 5.x, Irix 6.x,
- OSF/1.
-
-c. The shared library major and minor versions are now constructed
- automatically by configure and substituted into the makefiles.
-
-d. It's now possible to install the shared libraries separately from the
- static libraries.
-
-e. The history library tries to truncate the history file only if it is a
- regular file.
-
-f. A bug that caused _rl_dispatch to address negative array indices on
- systems with signed chars was fixed.
-
-g. rl-yank-nth-arg now leaves the history position the same as when it was
- called.
-
-h. Changes to the completion code to handle MS-DOS drive-letter:pathname
- filenames.
-
-i. Completion is now case-insensitive by default on MS-DOS.
-
-j. Fixes to the history file manipulation code for MS-DOS.
-
-k. Readline attempts to bind the arrow keys to appropriate defaults on MS-DOS.
-
-l. Some fixes were made to the redisplay code for better operation on MS-DOS.
-
-m. The quoted-insert code will now insert tty special chars like ^C.
-
-n. A bug was fixed that caused the display code to reference memory before
- the start of the prompt string.
-
-o. More support for __EMX__ (OS/2).
-
-p. A bug was fixed in readline's signal handling that could cause infinite
- recursion in signal handlers.
-
-q. A bug was fixed that caused the point to be less than zero when rl_forward
- was given a very large numeric argument.
-
-r. The vi-mode code now gets characters via the application-settable value
- of rl_getc_function rather than calling rl_getc directly.
-
-s. The history file code now uses O_BINARY mode when reading and writing
- the history file on cygwin32.
-
-t. Fixed a bug in the redisplay code for lines with more than 256 line
- breaks.
-
-u. A bug was fixed which caused invisible character markers to not be
- stripped from the prompt string if the terminal was in no-echo mode.
-
-v. Readline no longer tries to get the variables it needs for redisplay
- from the termcap entry if the calling application has specified its
- own redisplay function. Readline treats the terminal as `dumb' in
- this case.
-
-w. Fixes to the SIGWINCH code so that a multiple-line prompt with escape
- sequences is redrawn correctly.
-
-x. Changes to the install and install-shared targets so that the libraries
- and header files are installed separately.
-
-2. New Features in Readline
-
-a. A new Readline `user manual' is in doc/rluserman.texinfo.
-
-b. Parentheses matching is now always compiled into readline, and enabled
- or disabled when the value of the `blink-matching-paren' variable is
- changed.
-
-c. MS-DOS systems now use ~/_inputrc as the last-ditch inputrc filename.
-
-d. MS-DOS systems now use ~/_history as the default history file.
-
-e. history-search-{forward,backward} now leave the point at the end of the
- line when the string to search for is empty, like
- {reverse,forward}-search-history.
-
-f. history-search-{forward,backward} now leave the last history line found
- in the readline buffer if the second or subsequent search fails.
-
-g. New function for use by applications: rl_on_new_line_with_prompt, used
- when an application displays the prompt itself before calling readline().
-
-h. New variable for use by applications: rl_already_prompted. An application
- that displays the prompt itself before calling readline() must set this to
- a non-zero value.
-
-i. A new variable, rl_gnu_readline_p, always 1. The intent is that an
- application can verify whether or not it is linked with the `real'
- readline library or some substitute.
-
-j. Per Bothner's `rlfe' (pronounced `Ralphie') readline front-end program
- is included in the examples subdirectory, though it is not built
- by default.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-4.0,
-and the previous version, readline-2.2.
-
-1. Changes to Readline
-
-a. The version number is now 4.0, to match the major and minor version
- numbers on the shared readline and history libraries. Future
- releases will maintain the identical numbering.
-
-b. Fixed a typo in the `make install' recipe that copied libreadline.a
- to libhistory.old right after installing it.
-
-c. The readline and history info files are now installed out of the source
- directory if they are not found in the build directory.
-
-d. The library no longer exports a function named `savestring' -- backwards
- compatibility be damned.
-
-e. There is no longer any #ifdef SHELL code in the source files.
-
-f. Some changes were made to the key binding code to fix memory leaks and
- better support Win32 systems.
-
-g. Fixed a silly typo in the paren matching code -- it's microseconds, not
- milliseconds.
-
-h. The readline library should be compilable by C++ compilers.
-
-i. The readline.h public header file now includes function prototypes for
- all readline functions, and some changes were made to fix errors in the
- source files uncovered by the use of prototypes.
-
-j. The maximum numeric argument is now clamped at 1000000.
-
-k. Fixes to rl_yank_last_arg to make it behave better.
-
-l. Fixed a bug in the display code that caused core dumps if the prompt
- string length exceeded 1024 characters.
-
-m. The menu completion code was fixed to properly insert a single completion
- if there is only one match.
-
-n. A bug was fixed that caused the display code to improperly display tabs
- after newlines.
-
-o. A fix was made to the completion code in which a typo caused the wrong
- value to be passed to the function that computed the longest common
- prefix of the list of matches.
-
-p. The completion code now checks the value of rl_filename_completion_desired,
- which is set by application-supplied completion functions to indicate
- that filename completion is being performed, to decide whether or not to
- call an application-supplied `ignore completions' function.
-
-q. Code was added to the history library to catch history substitutions
- using `&' without a previous history substitution or search having been
- performed.
-
-
-2. New Features in Readline
-
-a. There is a new script, support/shobj-conf, to do system-specific shared
- object and library configuration. It generates variables for configure
- to substitute into makefiles. The README file provides a detailed
- explanation of the shared library creation process.
-
-b. Shared libraries and objects are now built in the `shlib' subdirectory.
- There is a shlib/Makefile.in to control the build process. `make shared'
- from the top-level directory is still the right way to build shared
- versions of the libraries.
-
-c. rlconf.h is now installed, so applications can find out which features
- have been compiled into the installed readline and history libraries.
-
-d. rlstdc.h is now an installed header file.
-
-e. Many changes to the signal handling:
- o Readline now catches SIGQUIT and cleans up the tty before returning;
- o A new variable, rl_catch_signals, is available to application writers
- to indicate to readline whether or not it should install its own
- signal handlers for SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP,
- SIGTTIN, and SIGTTOU;
- o A new variable, rl_catch_sigwinch, is available to application
- writers to indicate to readline whether or not it should install its
- own signal handler for SIGWINCH, which will chain to the calling
- applications's SIGWINCH handler, if one is installed;
- o There is a new function, rl_free_line_state, for application signal
- handlers to call to free up the state associated with the current
- line after receiving a signal;
- o There is a new function, rl_cleanup_after_signal, to clean up the
- display and terminal state after receiving a signal;
- o There is a new function, rl_reset_after_signal, to reinitialize the
- terminal and display state after an application signal handler
- returns and readline continues
-
-f. There is a new function, rl_resize_terminal, to reset readline's idea of
- the screen size after a SIGWINCH.
-
-g. New public functions: rl_save_prompt and rl_restore_prompt. These were
- previously private functions with a `_' prefix. These functions are
- used when an application wants to write a message to the `message area'
- with rl_message and have the prompt restored correctly when the message
- is erased.
-
-h. New function hook: rl_pre_input_hook, called just before readline starts
- reading input, after initialization.
-
-i. New function hook: rl_display_matches_hook, called when readline would
- display the list of completion matches. The new function
- rl_display_match_list is what readline uses internally, and is available
- for use by application functions called via this hook.
-
-j. New bindable function, delete-char-or-list, like tcsh.
-
-k. A new variable, rl_erase_empty_line, which, if set by an application using
- readline, will cause readline to erase, prompt and all, lines on which the
- only thing typed was a newline.
-
-l. There is a new script, support/shlib-install, to install and uninstall
- the shared readline and history libraries.
-
-m. A new bindable variable, `isearch-terminators', which is a string
- containing the set of characters that should terminate an incremental
- search without being executed as a command.
-
-n. A new bindable function, forward-backward-delete-char.
-
--------------------------------------------------------------------------------
-This document details the changes between this version, readline-2.2,
-and the previous version, readline-2.1.
-
-1. Changes to Readline
-
-a. Added a missing `extern' to a declaration in readline.h that kept
- readline from compiling cleanly on some systems.
-
-b. The history file is now opened with mode 0600 when it is written for
- better security.
-
-c. Changes were made to the SIGWINCH handling code so that prompt redisplay
- is done better.
-
-d. ^G now interrupts incremental searches correctly.
-
-e. A bug that caused a core dump when the set of characters to be quoted
- when completing words was empty was fixed.
-
-f. Fixed a problem in the readline test program rltest.c that caused a core
- dump.
-
-g. The code that handles parser directives in inputrc files now displays
- more error messages.
-
-h. The history expansion code was fixed so that the appearance of the
- history comment character at the beginning of a word inhibits history
- expansion for that word and the rest of the input line.
-
-i. The code that prints completion listings now behaves better if one or
- more of the filenames contains non-printable characters.
-
-j. The time delay when showing matching parentheses is now 0.5 seconds.
-
-
-2. New Features in Readline
-
-a. There is now an option for `iterative' yank-last-arg handline, so a user
- can keep entering `M-.', yanking the last argument of successive history
- lines.
-
-b. New variable, `print-completions-horizontally', which causes completion
- matches to be displayed across the screen (like `ls -x') rather than up
- and down the screen (like `ls').
-
-c. New variable, `completion-ignore-case', which causes filename completion
- and matching to be performed case-insensitively.
-
-d. There is a new bindable command, `magic-space', which causes history
- expansion to be performed on the current readline buffer and a space to
- be inserted into the result.
-
-e. There is a new bindable command, `menu-complete', which enables tcsh-like
- menu completion (successive executions of menu-complete insert a single
- completion match, cycling through the list of possible completions).
-
-f. There is a new bindable command, `paste-from-clipboard', for use on Win32
- systems, to insert the text from the Win32 clipboard into the editing
- buffer.
-
-g. The key sequence translation code now understands printf-style backslash
- escape sequences, including \NNN octal escapes. These escape sequences
- may be used in key sequence definitions or macro values.
-
-h. An `$include' inputrc file parser directive has been added.
diff --git a/readline-4.3/COPYING b/readline-4.3/COPYING
deleted file mode 100644
index 1bf1526..0000000
--- a/readline-4.3/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/readline-4.3/INSTALL b/readline-4.3/INSTALL
deleted file mode 100644
index adb27a9..0000000
--- a/readline-4.3/INSTALL
+++ /dev/null
@@ -1,273 +0,0 @@
-Basic Installation
-==================
-
-These are installation instructions for Readline-4.3.
-
-The simplest way to compile readline is:
-
- 1. `cd' to the directory containing the readline source code and type
- `./configure' to configure readline for your system. If you're
- using `csh' on an old version of System V, you might need to type
- `sh ./configure' instead to prevent `csh' from trying to execute
- `configure' itself.
-
- Running `configure' takes some time. While running, it prints some
- messages telling which features it is checking for.
-
- 2. Type `make' to compile readline and build the static readline
- and history libraries. If supported, the shared readline and history
- libraries will be built also. See below for instructions on compiling
- the other parts of the distribution. Typing `make everything' will
- cause the static and shared libraries (if supported) and the example
- programs to be built.
-
- 3. Type `make install' to install the static readline and history
- libraries, the readline include files, the documentation, and, if
- supported, the shared readline and history libraries.
-
- 4. You can remove the created libraries and object files from the
- build directory by typing `make clean'. To also remove the
- files that `configure' created (so you can compile readline for
- a different kind of computer), type `make distclean'. There is
- also a `make maintainer-clean' target, but that is intended mainly
- for the readline developers, and should be used with care.
-
-The `configure' shell script attempts to guess correct values for
-various system-dependent variables used during compilation. It
-uses those values to create a `Makefile' in the build directory,
-and Makefiles in the `doc', `shlib', and `examples'
-subdirectories. It also creates a `config.h' file containing
-system-dependent definitions. Finally, it creates a shell script
-`config.status' that you can run in the future to recreate the
-current configuration, a file `config.cache' that saves the
-results of its tests to speed up reconfiguring, and a file
-`config.log' containing compiler output (useful mainly for
-debugging `configure').
-
-If you need to do unusual things to compile readline, please try
-to figure out how `configure' could check whether to do them, and
-mail diffs or instructions to <bug-readline@gnu.org> so they can
-be considered for the next release. If at some point
-`config.cache' contains results you don't want to keep, you may
-remove or edit it.
-
-The file `configure.in' is used to create `configure' by a
-program called `autoconf'. You only need `configure.in' if you
-want to change it or regenerate `configure' using a newer version
-of `autoconf'. The readline `configure.in' requires autoconf
-version 2.50 or newer.
-
-Compilers and Options
-=====================
-
-Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. You can give `configure'
-initial values for variables by setting them in the environment. Using
-a Bourne-compatible shell, you can do that on the command line like
-this:
-
- CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
-
-Or on systems that have the `env' program, you can do it like this:
-
- env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
-
-Compiling For Multiple Architectures
-====================================
-
-You can compile readline for more than one kind of computer at the
-same time, by placing the object files for each architecture in their
-own directory. To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'. `cd' to the
-directory where you want the object files and executables to go and run
-the `configure' script. `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
-
-If you have to use a `make' that does not supports the `VPATH'
-variable, you have to compile readline for one architecture at a
-time in the source code directory. After you have installed
-readline for one architecture, use `make distclean' before
-reconfiguring for another architecture.
-
-Installation Names
-==================
-
-By default, `make install' will install the readline libraries in
-`/usr/local/lib', the include files in
-`/usr/local/include/readline', the man pages in `/usr/local/man',
-and the info files in `/usr/local/info'. You can specify an
-installation prefix other than `/usr/local' by giving `configure'
-the option `--prefix=PATH' or by supplying a value for the
-DESTDIR variable when running `make install'.
-
-You can specify separate installation prefixes for
-architecture-specific files and architecture-independent files.
-If you give `configure' the option `--exec-prefix=PATH', the
-readline Makefiles will use PATH as the prefix for installing the
-libraries. Documentation and other data files will still use the
-regular prefix.
-
-Specifying the System Type
-==========================
-
-There may be some features `configure' can not figure out
-automatically, but need to determine by the type of host readline
-will run on. Usually `configure' can figure that out, but if it
-prints a message saying it can not guess the host type, give it
-the `--host=TYPE' option. TYPE can either be a short name for
-the system type, such as `sun4', or a canonical name with three
-fields: CPU-COMPANY-SYSTEM (e.g., i386-unknown-freebsd4.2).
-
-See the file `config.sub' for the possible values of each field.
-
-Sharing Defaults
-================
-
-If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists. Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: the readline `configure' looks for a site script, but not
-all `configure' scripts do.
-
-Operation Controls
-==================
-
-`configure' recognizes the following options to control how it
-operates.
-
-`--cache-file=FILE'
- Use and save the results of the tests in FILE instead of
- `./config.cache'. Set FILE to `/dev/null' to disable caching, for
- debugging `configure'.
-
-`--help'
- Print a summary of the options to `configure', and exit.
-
-`--quiet'
-`--silent'
-`-q'
- Do not print messages saying which checks are being made.
-
-`--srcdir=DIR'
- Look for the package's source code in directory DIR. Usually
- `configure' can determine that directory automatically.
-
-`--version'
- Print the version of Autoconf used to generate the `configure'
- script, and exit.
-
-`configure' also accepts some other, not widely useful, options.
-
-Optional Features
-=================
-
-The readline `configure' recognizes a single `--with-PACKAGE' option:
-
-`--with-curses'
- This tells readline that it can find the termcap library functions
- (tgetent, et al.) in the curses library, rather than a separate
- termcap library. Readline uses the termcap functions, but does not
- link with the termcap or curses library itself, allowing applications
- which link with readline the to choose an appropriate library.
- This option tells readline to link the example programs with the
- curses library rather than libtermcap.
-
-`configure' also recognizes two `--enable-FEATURE' options:
-
-`--enable-shared'
- Build the shared libraries by default on supported platforms. The
- default is `yes'.
-
-`--enable-static'
- Build the static libraries by default. The default is `yes'.
-
-Shared Libraries
-================
-
-There is support for building shared versions of the readline and
-history libraries. The configure script creates a Makefile in
-the `shlib' subdirectory, and typing `make shared' will cause
-shared versions of the readline and history libraries to be built
-on supported platforms.
-
-If `configure' is given the `--enable-shared' option, it will attempt
-to build the shared libraries by default on supported platforms.
-
-Configure calls the script support/shobj-conf to test whether or
-not shared library creation is supported and to generate the values
-of variables that are substituted into shlib/Makefile. If you
-try to build shared libraries on an unsupported platform, `make'
-will display a message asking you to update support/shobj-conf for
-your platform.
-
-If you need to update support/shobj-conf, you will need to create
-a `stanza' for your operating system and compiler. The script uses
-the value of host_os and ${CC} as determined by configure. For
-instance, FreeBSD 4.2 with any version of gcc is identified as
-`freebsd4.2-gcc*'.
-
-In the stanza for your operating system-compiler pair, you will need to
-define several variables. They are:
-
-SHOBJ_CC The C compiler used to compile source files into shareable
- object files. This is normally set to the value of ${CC}
- by configure, and should not need to be changed.
-
-SHOBJ_CFLAGS Flags to pass to the C compiler ($SHOBJ_CC) to create
- position-independent code. If you are using gcc, this
- should probably be set to `-fpic'.
-
-SHOBJ_LD The link editor to be used to create the shared library from
- the object files created by $SHOBJ_CC. If you are using
- gcc, a value of `gcc' will probably work.
-
-SHOBJ_LDFLAGS Flags to pass to SHOBJ_LD to enable shared object creation.
- If you are using gcc, `-shared' may be all that is necessary.
- These should be the flags needed for generic shared object
- creation.
-
-SHLIB_XLDFLAGS Additional flags to pass to SHOBJ_LD for shared library
- creation. Many systems use the -R option to the link
- editor to embed a path within the library for run-time
- library searches. A reasonable value for such systems would
- be `-R$(libdir)'.
-
-SHLIB_LIBS Any additional libraries that shared libraries should be
- linked against when they are created.
-
-SHLIB_LIBSUFF The suffix to add to `libreadline' and `libhistory' when
- generating the filename of the shared library. Many systems
- use `so'; HP-UX uses `sl'.
-
-SHLIB_LIBVERSION The string to append to the filename to indicate the version
- of the shared library. It should begin with $(SHLIB_LIBSUFF),
- and possibly include version information that allows the
- run-time loader to load the version of the shared library
- appropriate for a particular program. Systems using shared
- libraries similar to SunOS 4.x use major and minor library
- version numbers; for those systems a value of
- `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' is appropriate.
- Systems based on System V Release 4 don't use minor version
- numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems.
- Other Unix versions use different schemes.
-
-SHLIB_STATUS Set this to `supported' when you have defined the other
- necessary variables. Make uses this to determine whether
- or not shared library creation should be attempted. If
- shared libraries are not supported, this will be set to
- `unsupported'.
-
-You should look at the existing stanzas in support/shobj-conf for ideas.
-
-Once you have updated support/shobj-conf, re-run configure and type
-`make shared' or `make'. The shared libraries will be created in the
-shlib subdirectory.
-
-If shared libraries are created, `make install' will install them.
-You may install only the shared libraries by running `make
-install-shared' from the top-level build directory. Running `make
-install' in the shlib subdirectory will also work. If you don't want
-to install any created shared libraries, run `make install-static'.
diff --git a/readline-4.3/MANIFEST b/readline-4.3/MANIFEST
deleted file mode 100644
index 1507eda..0000000
--- a/readline-4.3/MANIFEST
+++ /dev/null
@@ -1,126 +0,0 @@
-#
-# Master distribution manifest for the standalone readline distribution
-#
-doc d
-examples d
-support d
-shlib d
-COPYING f
-README f
-MANIFEST f
-INSTALL f
-CHANGELOG f
-CHANGES f
-USAGE f
-aclocal.m4 f
-config.h.in f
-configure f
-configure.in f
-Makefile.in f
-ansi_stdlib.h f
-chardefs.h f
-history.h f
-histlib.h f
-keymaps.h f
-posixdir.h f
-posixjmp.h f
-posixstat.h f
-readline.h f
-rlconf.h f
-rldefs.h f
-rlmbutil.h f
-rlprivate.h f
-rlshell.h f
-rlstdc.h f
-rltty.h f
-rltypedefs.h f
-rlwinsize.h f
-tcap.h f
-tilde.h f
-xmalloc.h f
-bind.c f
-callback.c f
-compat.c f
-complete.c f
-display.c f
-emacs_keymap.c f
-funmap.c f
-input.c f
-isearch.c f
-keymaps.c f
-kill.c f
-macro.c f
-mbutil.c f
-misc.c f
-nls.c f
-parens.c f
-readline.c f
-rltty.c f
-savestring.c f
-search.c f
-shell.c f
-signals.c f
-terminal.c f
-text.c f
-tilde.c f
-undo.c f
-util.c f
-vi_keymap.c f
-vi_mode.c f
-xmalloc.c f
-history.c f
-histexpand.c f
-histfile.c f
-histsearch.c f
-shlib/Makefile.in f
-support/config.guess f
-support/config.sub f
-support/install.sh f
-support/mkdirs f
-support/mkdist f
-support/shobj-conf f
-support/shlib-install f
-support/wcwidth.c f
-doc/Makefile.in f
-doc/texinfo.tex f
-doc/manvers.texinfo f
-doc/rlman.texinfo f
-doc/rltech.texinfo f
-doc/rluser.texinfo f
-doc/rluserman.texinfo f
-doc/hist.texinfo f
-doc/hstech.texinfo f
-doc/hsuser.texinfo f
-doc/readline.3 f
-doc/history.3 f
-doc/texi2dvi f
-doc/texi2html f
-examples/Makefile.in f
-examples/excallback.c f
-examples/fileman.c f
-examples/manexamp.c f
-examples/readlinebuf.h f
-examples/rlcat.c f
-examples/rlfe.c f
-examples/rltest.c f
-examples/rl.c f
-examples/rlversion.c f
-examples/histexamp.c f
-examples/Inputrc f
-# formatted documentation, from MANIFEST.doc
-doc/readline.ps f
-doc/history.ps f
-doc/rluserman.ps f
-doc/readline.dvi f
-doc/history.dvi f
-doc/rluserman.dvi f
-doc/readline.info f
-doc/history.info f
-doc/rluserman.info f
-doc/readline.html f
-doc/history.html f
-doc/rluserman.html f
-doc/readline.0 f
-doc/history.0 f
-doc/readline_3.ps f
-doc/history_3.ps f
diff --git a/readline-4.3/Makefile.in b/readline-4.3/Makefile.in
deleted file mode 100644
index 0ff0c31..0000000
--- a/readline-4.3/Makefile.in
+++ /dev/null
@@ -1,520 +0,0 @@
-## -*- text -*- ##
-# Master Makefile for the GNU readline library.
-# Copyright (C) 1994 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-RL_LIBRARY_VERSION = @LIBVERSION@
-RL_LIBRARY_NAME = readline
-
-srcdir = @srcdir@
-VPATH = .:@srcdir@
-top_srcdir = @top_srcdir@
-BUILD_DIR = @BUILD_DIR@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-CC = @CC@
-RANLIB = @RANLIB@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-RM = rm -f
-CP = cp
-MV = mv
-
-@SET_MAKE@
-SHELL = @MAKE_SHELL@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-libdir = @libdir@
-mandir = @mandir@
-includedir = @includedir@
-
-infodir = @infodir@
-
-man3dir = $(mandir)/man3
-
-# Support an alternate destination root directory for package building
-DESTDIR =
-
-# Programs to make tags files.
-ETAGS = etags -tw
-CTAGS = ctags -tw
-
-CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
-CPPFLAGS = @CPPFLAGS@
-
-DEFS = @DEFS@
-LOCAL_DEFS = @LOCAL_DEFS@
-
-TERMCAP_LIB = @TERMCAP_LIB@
-
-# For libraries which include headers from other libraries.
-INCLUDES = -I. -I$(srcdir)
-
-XCCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES)
-CCFLAGS = $(XCCFLAGS) $(LOCAL_CFLAGS) $(CFLAGS)
-
-# could add -Werror here
-GCC_LINT_FLAGS = -ansi -Wall -Wshadow -Wpointer-arith -Wcast-qual \
- -Wwrite-strings -Wstrict-prototypes \
- -Wmissing-prototypes -Wno-implicit -pedantic
-GCC_LINT_CFLAGS = $(XCCFLAGS) $(GCC_LINT_FLAGS) @CFLAGS@ @LOCAL_CFLAGS@
-
-.c.o:
- ${RM} $@
- $(CC) -c $(CCFLAGS) $<
-
-# The name of the main library target.
-LIBRARY_NAME = libreadline.a
-STATIC_LIBS = libreadline.a libhistory.a
-
-# The C code source files for this library.
-CSOURCES = $(srcdir)/readline.c $(srcdir)/funmap.c $(srcdir)/keymaps.c \
- $(srcdir)/vi_mode.c $(srcdir)/parens.c $(srcdir)/rltty.c \
- $(srcdir)/complete.c $(srcdir)/bind.c $(srcdir)/isearch.c \
- $(srcdir)/display.c $(srcdir)/signals.c $(srcdir)/emacs_keymap.c \
- $(srcdir)/vi_keymap.c $(srcdir)/util.c $(srcdir)/kill.c \
- $(srcdir)/undo.c $(srcdir)/macro.c $(srcdir)/input.c \
- $(srcdir)/callback.c $(srcdir)/terminal.c $(srcdir)/xmalloc.c \
- $(srcdir)/history.c $(srcdir)/histsearch.c $(srcdir)/histexpand.c \
- $(srcdir)/histfile.c $(srcdir)/nls.c $(srcdir)/search.c \
- $(srcdir)/shell.c $(srcdir)/savestring.c $(srcdir)/tilde.c \
- $(srcdir)/text.c $(srcdir)/misc.c $(srcdir)/compat.c \
- $(srcdir)/mbutil.c
-
-# The header files for this library.
-HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
- posixstat.h posixdir.h posixjmp.h tilde.h rlconf.h rltty.h \
- ansi_stdlib.h tcap.h rlstdc.h xmalloc.h rlprivate.h rlshell.h \
- rltypedefs.h rlmbutil.h
-
-HISTOBJ = history.o histexpand.o histfile.o histsearch.o shell.o mbutil.o
-TILDEOBJ = tilde.o
-OBJECTS = readline.o vi_mode.o funmap.o keymaps.o parens.o search.o \
- rltty.o complete.o bind.o isearch.o display.o signals.o \
- util.o kill.o undo.o macro.o input.o callback.o terminal.o \
- text.o nls.o misc.o compat.o xmalloc.o $(HISTOBJ) $(TILDEOBJ)
-
-# The texinfo files which document this library.
-DOCSOURCE = doc/rlman.texinfo doc/rltech.texinfo doc/rluser.texinfo
-DOCOBJECT = doc/readline.dvi
-DOCSUPPORT = doc/Makefile
-DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT)
-
-CREATED_MAKEFILES = Makefile doc/Makefile examples/Makefile shlib/Makefile
-CREATED_CONFIGURE = config.status config.h config.cache config.log \
- stamp-config stamp-h
-CREATED_TAGS = TAGS tags
-
-INSTALLED_HEADERS = readline.h chardefs.h keymaps.h history.h tilde.h \
- rlstdc.h rlconf.h rltypedefs.h
-
-##########################################################################
-TARGETS = @STATIC_TARGET@ @SHARED_TARGET@
-INSTALL_TARGETS = @STATIC_INSTALL_TARGET@ @SHARED_INSTALL_TARGET@
-
-all: $(TARGETS)
-
-everything: all examples
-
-static: $(STATIC_LIBS)
-
-libreadline.a: $(OBJECTS)
- $(RM) $@
- $(AR) $(ARFLAGS) $@ $(OBJECTS)
- -test -n "$(RANLIB)" && $(RANLIB) $@
-
-libhistory.a: $(HISTOBJ) xmalloc.o
- $(RM) $@
- $(AR) $(ARFLAGS) $@ $(HISTOBJ) xmalloc.o
- -test -n "$(RANLIB)" && $(RANLIB) $@
-
-# Since tilde.c is shared between readline and bash, make sure we compile
-# it with the right flags when it's built as part of readline
-tilde.o: tilde.c
- rm -f $@
- $(CC) $(CCFLAGS) -DREADLINE_LIBRARY -c $(srcdir)/tilde.c
-
-readline: $(OBJECTS) readline.h rldefs.h chardefs.h ./libreadline.a
- $(CC) $(CCFLAGS) -o $@ ./examples/rl.c ./libreadline.a ${TERMCAP_LIB}
-
-lint: force
- $(MAKE) $(MFLAGS) CCFLAGS='$(GCC_LINT_CFLAGS)' static
-
-Makefile makefile: config.status $(srcdir)/Makefile.in
- CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status
-
-Makefiles makefiles: config.status $(srcdir)/Makefile.in
- @for mf in $(CREATED_MAKEFILES); do \
- CONFIG_FILES=$$mf CONFIG_HEADERS= $(SHELL) ./config.status ; \
- done
-
-config.status: configure
- $(SHELL) ./config.status --recheck
-
-config.h: stamp-h
-
-stamp-h: config.status $(srcdir)/config.h.in
- CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status
- echo > $@
-
-#$(srcdir)/configure: $(srcdir)/configure.in ## Comment-me-out in distribution
-# cd $(srcdir) && autoconf ## Comment-me-out in distribution
-
-
-shared: force
- -test -d shlib || mkdir shlib
- -( cd shlib ; ${MAKE} ${MFLAGS} all )
-
-documentation: force
- -test -d doc || mkdir doc
- -( cd doc && $(MAKE) $(MFLAGS) )
-
-examples: force
- -test -d examples || mkdir examples
- -(cd examples && ${MAKE} ${MFLAGS} all )
-
-force:
-
-install-headers: installdirs ${INSTALLED_HEADERS}
- for f in ${INSTALLED_HEADERS}; do \
- $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(includedir)/readline ; \
- done
-
-uninstall-headers:
- -test -n "$(includedir)" && cd $(DESTDIR)$(includedir)/readline && \
- ${RM} ${INSTALLED_HEADERS}
-
-maybe-uninstall-headers: uninstall-headers
-
-install: $(INSTALL_TARGETS)
-
-install-static: installdirs $(STATIC_LIBS) install-headers
- -$(MV) $(DESTDIR)$(libdir)/libreadline.a $(DESTDIR)$(libdir)/libreadline.old
- $(INSTALL_DATA) libreadline.a $(DESTDIR)$(libdir)/libreadline.a
- -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libreadline.a
- -$(MV) $(DESTDIR)$(libdir)/libhistory.a $(DESTDIR)$(libdir)/libhistory.old
- $(INSTALL_DATA) libhistory.a $(DESTDIR)$(libdir)/libhistory.a
- -test -n "$(RANLIB)" && $(RANLIB) $(DESTDIR)$(libdir)/libhistory.a
- -( if test -d doc ; then \
- cd doc && \
- ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} install; \
- fi )
-
-installdirs: $(srcdir)/support/mkdirs
- -$(SHELL) $(srcdir)/support/mkdirs $(DESTDIR)$(includedir) \
- $(DESTDIR)$(includedir)/readline $(DESTDIR)$(libdir) \
- $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir)
-
-uninstall: uninstall-headers
- -test -n "$(DESTDIR)$(libdir)" && cd $(DESTDIR)$(libdir) && \
- ${RM} libreadline.a libreadline.old libhistory.a libhistory.old $(SHARED_LIBS)
- -( if test -d doc ; then \
- cd doc && \
- ${MAKE} ${MFLAGS} infodir=$(infodir) DESTDIR=${DESTDIR} $@; \
- fi )
- -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
-
-install-shared: installdirs install-headers shared
- -( cd shlib ; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} install )
-
-uninstall-shared: maybe-uninstall-headers
- -( cd shlib; ${MAKE} ${MFLAGS} DESTDIR=${DESTDIR} uninstall )
-
-TAGS: force
- $(ETAGS) $(CSOURCES) $(HSOURCES)
-
-tags: force
- $(CTAGS) $(CSOURCES) $(HSOURCES)
-
-clean: force
- $(RM) $(OBJECTS) $(STATIC_LIBS)
- $(RM) readline readline.exe
- -( cd shlib && $(MAKE) $(MFLAGS) $@ )
- -( cd doc && $(MAKE) $(MFLAGS) $@ )
- -( cd examples && $(MAKE) $(MFLAGS) $@ )
-
-mostlyclean: clean
- -( cd shlib && $(MAKE) $(MFLAGS) $@ )
- -( cd doc && $(MAKE) $(MFLAGS) $@ )
- -( cd examples && $(MAKE) $(MFLAGS) $@ )
-
-distclean maintainer-clean: clean
- -( cd shlib && $(MAKE) $(MFLAGS) $@ )
- -( cd doc && $(MAKE) $(MFLAGS) $@ )
- -( cd examples && $(MAKE) $(MFLAGS) $@ )
- $(RM) Makefile
- $(RM) $(CREATED_CONFIGURE)
- $(RM) $(CREATED_TAGS)
-
-info dvi:
- -( cd doc && $(MAKE) $(MFLAGS) $@ )
-
-install-info:
-check:
-installcheck:
-
-dist: force
- @echo Readline distributions are created using $(srcdir)/support/mkdist.
- @echo Here is a sample of the necessary commands:
- @echo bash $(srcdir)/support/mkdist -m $(srcdir)/MANIFEST -s $(srcdir) -r $(RL_LIBRARY_NAME) $(RL_LIBRARY_VERSION)
- @echo tar cf $(RL_LIBRARY_NAME)-${RL_LIBRARY_VERSION}.tar ${RL_LIBRARY_NAME}-$(RL_LIBRARY_VERSION)
- @echo gzip $(RL_LIBRARY_NAME)-$(RL_LIBRARY_VERSION).tar
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-# Dependencies
-bind.o: ansi_stdlib.h posixstat.h
-bind.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-bind.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-bind.o: history.h
-callback.o: rlconf.h
-callback.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-callback.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-compat.o: rlstdc.h
-complete.o: ansi_stdlib.h posixdir.h posixstat.h
-complete.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-complete.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-display.o: ansi_stdlib.h posixstat.h
-display.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-display.o: tcap.h
-display.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-display.o: history.h rlstdc.h
-funmap.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-funmap.o: rlconf.h ansi_stdlib.h rlstdc.h
-funmap.o: ${BUILD_DIR}/config.h
-histexpand.o: ansi_stdlib.h
-histexpand.o: history.h histlib.h rlstdc.h rltypedefs.h
-histexpand.o: ${BUILD_DIR}/config.h
-histfile.o: ansi_stdlib.h
-histfile.o: history.h histlib.h rlstdc.h rltypedefs.h
-histfile.o: ${BUILD_DIR}/config.h
-history.o: ansi_stdlib.h
-history.o: history.h histlib.h rlstdc.h rltypedefs.h
-history.o: ${BUILD_DIR}/config.h
-histsearch.o: ansi_stdlib.h
-histsearch.o: history.h histlib.h rlstdc.h rltypedefs.h
-histsearch.o: ${BUILD_DIR}/config.h
-input.o: ansi_stdlib.h
-input.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-input.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-isearch.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-isearch.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-isearch.o: ansi_stdlib.h history.h rlstdc.h
-keymaps.o: emacs_keymap.c vi_keymap.c
-keymaps.o: keymaps.h rltypedefs.h chardefs.h rlconf.h ansi_stdlib.h
-keymaps.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-keymaps.o: ${BUILD_DIR}/config.h rlstdc.h
-kill.o: ansi_stdlib.h
-kill.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-kill.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-kill.o: history.h rlstdc.h
-macro.o: ansi_stdlib.h
-macro.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-macro.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-macro.o: history.h rlstdc.h
-mbutil.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-mbutil.o: readline.h keymaps.h rltypedefs.h chardefs.h rlstdc.h
-misc.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-misc.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-misc.o: history.h rlstdc.h ansi_stdlib.h
-nls.o: ansi_stdlib.h
-nls.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-nls.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-nls.o: history.h rlstdc.h
-parens.o: rlconf.h
-parens.o: ${BUILD_DIR}/config.h
-parens.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-readline.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-readline.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-readline.o: history.h rlstdc.h
-readline.o: posixstat.h ansi_stdlib.h posixjmp.h
-rltty.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-rltty.o: rltty.h
-rltty.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-search.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-search.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-search.o: ansi_stdlib.h history.h rlstdc.h
-shell.o: ${BUILD_DIR}/config.h
-shell.o: ansi_stdlib.h
-signals.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-signals.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-signals.o: history.h rlstdc.h
-terminal.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-terminal.o: tcap.h
-terminal.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-terminal.o: history.h rlstdc.h
-text.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-text.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-text.o: history.h rlstdc.h ansi_stdlib.h
-tilde.o: ansi_stdlib.h
-tilde.o: ${BUILD_DIR}/config.h
-tilde.o: tilde.h
-undo.o: ansi_stdlib.h
-undo.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-undo.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-undo.o: history.h rlstdc.h
-util.o: posixjmp.h ansi_stdlib.h
-util.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-util.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h rlstdc.h
-vi_mode.o: rldefs.h ${BUILD_DIR}/config.h rlconf.h
-vi_mode.o: readline.h keymaps.h rltypedefs.h chardefs.h tilde.h
-vi_mode.o: history.h ansi_stdlib.h rlstdc.h
-xmalloc.o: ${BUILD_DIR}/config.h
-xmalloc.o: ansi_stdlib.h
-
-bind.o: rlshell.h
-histfile.o: rlshell.h
-nls.o: rlshell.h
-readline.o: rlshell.h
-shell.o: rlshell.h
-terminal.o: rlshell.h
-histexpand.o: rlshell.h
-
-bind.o: rlprivate.h
-callback.o: rlprivate.h
-complete.o: rlprivate.h
-display.o: rlprivate.h
-input.o: rlprivate.h
-isearch.o: rlprivate.h
-kill.o: rlprivate.h
-macro.o: rlprivate.h
-mbutil.o: rlprivate.h
-misc.o: rlprivate.h
-nls.o: rlprivate.h
-parens.o: rlprivate.h
-readline.o: rlprivate.h
-rltty.o: rlprivate.h
-search.o: rlprivate.h
-signals.o: rlprivate.h
-terminal.o: rlprivate.h
-text.o: rlprivate.h
-undo.o: rlprivate.h
-util.o: rlprivate.h
-vi_mode.o: rlprivate.h
-
-bind.o: xmalloc.h
-complete.o: xmalloc.h
-display.o: xmalloc.h
-funmap.o: xmalloc.h
-histexpand.o: xmalloc.h
-histfile.o: xmalloc.h
-history.o: xmalloc.h
-input.o: xmalloc.h
-isearch.o: xmalloc.h
-keymaps.o: xmalloc.h
-kill.o: xmalloc.h
-macro.o: xmalloc.h
-mbutil.o: xmalloc.h
-misc.o: xmalloc.h
-readline.o: xmalloc.h
-savestring.o: xmalloc.h
-search.o: xmalloc.h
-shell.o: xmalloc.h
-terminal.o: xmalloc.h
-text.o: xmalloc.h
-tilde.o: xmalloc.h
-undo.o: xmalloc.h
-util.o: xmalloc.h
-vi_mode.o: xmalloc.h
-xmalloc.o: xmalloc.h
-
-complete.o: rlmbutil.h
-display.o: rlmbutil.h
-histexpand.o: rlmbutil.h
-input.o: rlmbutil.h
-isearch.o: rlmbutil.h
-mbutil.o: rlmbutil.h
-misc.o: rlmbutil.h
-readline.o: rlmbutil.h
-search.o: rlmbutil.h
-text.o: rlmbutil.h
-vi_mode.o: rlmbutil.h
-
-bind.o: $(srcdir)/bind.c
-callback.o: $(srcdir)/callback.c
-compat.o: $(srcdir)/compat.c
-complete.o: $(srcdir)/complete.c
-display.o: $(srcdir)/display.c
-funmap.o: $(srcdir)/funmap.c
-input.o: $(srcdir)/input.c
-isearch.o: $(srcdir)/isearch.c
-keymaps.o: $(srcdir)/keymaps.c $(srcdir)/emacs_keymap.c $(srcdir)/vi_keymap.c
-kill.o: $(srcdir)/kill.c
-macro.o: $(srcdir)/macro.c
-mbutil.o: $(srcdir)/mbutil.c
-misc.o: $(srcdir)/misc.c
-nls.o: $(srcdir)/nls.c
-parens.o: $(srcdir)/parens.c
-readline.o: $(srcdir)/readline.c
-rltty.o: $(srcdir)/rltty.c
-savestring.o: $(srcdir)/savestring.c
-search.o: $(srcdir)/search.c
-shell.o: $(srcdir)/shell.c
-signals.o: $(srcdir)/signals.c
-terminal.o: $(srcdir)/terminal.c
-text.o: $(srcdir)/text.c
-tilde.o: $(srcdir)/tilde.c
-undo.o: $(srcdir)/undo.c
-util.o: $(srcdir)/util.c
-vi_mode.o: $(srcdir)/vi_mode.c
-xmalloc.o: $(srcdir)/xmalloc.c
-
-histexpand.o: $(srcdir)/histexpand.c
-histfile.o: $(srcdir)/histfile.c
-history.o: $(srcdir)/history.c
-histsearch.o: $(srcdir)/histsearch.c
-
-bind.o: bind.c
-callback.o: callback.c
-compat.o: compat.c
-complete.o: complete.c
-display.o: display.c
-funmap.o: funmap.c
-input.o: input.c
-isearch.o: isearch.c
-keymaps.o: keymaps.c emacs_keymap.c vi_keymap.c
-kill.o: kill.c
-macro.o: macro.c
-mbutil.o: mbutil.c
-misc.o: misc.c
-nls.o: nls.c
-parens.o: parens.c
-readline.o: readline.c
-rltty.o: rltty.c
-savestring.o: savestring.c
-search.o: search.c
-shell.o: shell.c
-signals.o: signals.c
-terminal.o: terminal.c
-text.o: text.c
-tilde.o: tilde.c
-undo.o: undo.c
-util.o: util.c
-vi_mode.o: vi_mode.c
-xmalloc.o: xmalloc.c
-
-histexpand.o: histexpand.c
-histfile.o: histfile.c
-history.o: history.c
-histsearch.o: histsearch.c
diff --git a/readline-4.3/README b/readline-4.3/README
deleted file mode 100644
index 7aa9394..0000000
--- a/readline-4.3/README
+++ /dev/null
@@ -1,172 +0,0 @@
-Introduction
-============
-
-This is the Gnu Readline library, version 4.3.
-
-The Readline library provides a set of functions for use by applications
-that allow users to edit command lines as they are typed in. Both
-Emacs and vi editing modes are available. The Readline library includes
-additional functions to maintain a list of previously-entered command
-lines, to recall and perhaps reedit those lines, and perform csh-like
-history expansion on previous commands.
-
-The history facilites are also placed into a separate library, the
-History library, as part of the build process. The History library
-may be used without Readline in applications which desire its
-capabilities.
-
-The Readline library is free software, distributed under the terms of
-the [GNU] General Public License, version 2. For more information, see
-the file COPYING.
-
-To build the library, try typing `./configure', then `make'. The
-configuration process is automated, so no further intervention should
-be necessary. Readline builds with `gcc' by default if it is
-available. If you want to use `cc' instead, type
-
- CC=cc ./configure
-
-if you are using a Bourne-style shell. If you are not, the following
-may work:
-
- env CC=cc ./configure
-
-Read the file INSTALL in this directory for more information about how
-to customize and control the build process.
-
-The file rlconf.h contains C preprocessor defines that enable and disable
-certain Readline features.
-
-The special make target `everything' will build the static and shared
-libraries (if the target platform supports them) and the examples.
-
-Examples
-========
-
-There are several example programs that use Readline features in the
-examples directory. The `rl' program is of particular interest. It
-is a command-line interface to Readline, suitable for use in shell
-scripts in place of `read'.
-
-Shared Libraries
-================
-
-There is skeletal support for building shared versions of the
-Readline and History libraries. The configure script creates
-a Makefile in the `shlib' subdirectory, and typing `make shared'
-will cause shared versions of the Readline and History libraries
-to be built on supported platforms.
-
-If `configure' is given the `--enable-shared' option, it will attempt
-to build the shared libraries by default on supported platforms.
-
-Configure calls the script support/shobj-conf to test whether or
-not shared library creation is supported and to generate the values
-of variables that are substituted into shlib/Makefile. If you
-try to build shared libraries on an unsupported platform, `make'
-will display a message asking you to update support/shobj-conf for
-your platform.
-
-If you need to update support/shobj-conf, you will need to create
-a `stanza' for your operating system and compiler. The script uses
-the value of host_os and ${CC} as determined by configure. For
-instance, FreeBSD 4.2 with any version of gcc is identified as
-`freebsd4.2-gcc*'.
-
-In the stanza for your operating system-compiler pair, you will need to
-define several variables. They are:
-
-SHOBJ_CC The C compiler used to compile source files into shareable
- object files. This is normally set to the value of ${CC}
- by configure, and should not need to be changed.
-
-SHOBJ_CFLAGS Flags to pass to the C compiler ($SHOBJ_CC) to create
- position-independent code. If you are using gcc, this
- should probably be set to `-fpic'.
-
-SHOBJ_LD The link editor to be used to create the shared library from
- the object files created by $SHOBJ_CC. If you are using
- gcc, a value of `gcc' will probably work.
-
-SHOBJ_LDFLAGS Flags to pass to SHOBJ_LD to enable shared object creation.
- If you are using gcc, `-shared' may be all that is necessary.
- These should be the flags needed for generic shared object
- creation.
-
-SHLIB_XLDFLAGS Additional flags to pass to SHOBJ_LD for shared library
- creation. Many systems use the -R option to the link
- editor to embed a path within the library for run-time
- library searches. A reasonable value for such systems would
- be `-R$(libdir)'.
-
-SHLIB_LIBS Any additional libraries that shared libraries should be
- linked against when they are created.
-
-SHLIB_LIBSUFF The suffix to add to `libreadline' and `libhistory' when
- generating the filename of the shared library. Many systems
- use `so'; HP-UX uses `sl'.
-
-SHLIB_LIBVERSION The string to append to the filename to indicate the version
- of the shared library. It should begin with $(SHLIB_LIBSUFF),
- and possibly include version information that allows the
- run-time loader to load the version of the shared library
- appropriate for a particular program. Systems using shared
- libraries similar to SunOS 4.x use major and minor library
- version numbers; for those systems a value of
- `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' is appropriate.
- Systems based on System V Release 4 don't use minor version
- numbers; use `$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)' on those systems.
- Other Unix versions use different schemes.
-
-SHLIB_STATUS Set this to `supported' when you have defined the other
- necessary variables. Make uses this to determine whether
- or not shared library creation should be attempted.
-
-You should look at the existing stanzas in support/shobj-conf for ideas.
-
-Once you have updated support/shobj-conf, re-run configure and type
-`make shared'. The shared libraries will be created in the shlib
-subdirectory.
-
-If shared libraries are created, `make install' will install them.
-You may install only the shared libraries by running `make
-install-shared' from the top-level build directory. Running `make
-install' in the shlib subdirectory will also work. If you don't want
-to install any created shared libraries, run `make install-static'.
-
-Documentation
-=============
-
-The documentation for the Readline and History libraries appears in
-the `doc' subdirectory. There are three texinfo files and a
-Unix-style manual page describing the facilities available in the
-Readline library. The texinfo files include both user and
-programmer's manuals. HTML versions of the manuals appear in the
-`doc' subdirectory as well.
-
-Reporting Bugs
-==============
-
-Bug reports for Readline should be sent to:
-
- bug-readline@gnu.org
-
-When reporting a bug, please include the following information:
-
- * the version number and release status of Readline (e.g., 4.2-release)
- * the machine and OS that it is running on
- * a list of the compilation flags or the contents of `config.h', if
- appropriate
- * a description of the bug
- * a recipe for recreating the bug reliably
- * a fix for the bug if you have one!
-
-If you would like to contact the Readline maintainer directly, send mail
-to bash-maintainers@gnu.org.
-
-Since Readline is developed along with bash, the bug-bash@gnu.org mailing
-list (mirrored to the Usenet newsgroup gnu.bash.bug) often contains
-Readline bug reports and fixes.
-
-Chet Ramey
-chet@po.cwru.edu
diff --git a/readline-4.3/USAGE b/readline-4.3/USAGE
deleted file mode 100644
index edc9f54..0000000
--- a/readline-4.3/USAGE
+++ /dev/null
@@ -1,37 +0,0 @@
-From rms@gnu.org Thu Jul 22 20:37:55 1999
-Flags: 10
-Return-Path: rms@gnu.org
-Received: from arthur.INS.CWRU.Edu (root@arthur.INS.CWRU.Edu [129.22.8.215]) by odin.INS.CWRU.Edu with ESMTP (8.8.6+cwru/CWRU-2.4-ins)
- id UAA25349; Thu, 22 Jul 1999 20:37:54 -0400 (EDT) (from rms@gnu.org for <chet@odin.INS.CWRU.Edu>)
-Received: from nike.ins.cwru.edu (root@nike.INS.CWRU.Edu [129.22.8.219]) by arthur.INS.CWRU.Edu with ESMTP (8.8.8+cwru/CWRU-3.6)
- id UAA05311; Thu, 22 Jul 1999 20:37:51 -0400 (EDT) (from rms@gnu.org for <chet@po.cwru.edu>)
-Received: from pele.santafe.edu (pele.santafe.edu [192.12.12.119]) by nike.ins.cwru.edu with ESMTP (8.8.7/CWRU-2.5-bsdi)
- id UAA13350; Thu, 22 Jul 1999 20:37:50 -0400 (EDT) (from rms@gnu.org for <chet@nike.ins.cwru.edu>)
-Received: from wijiji.santafe.edu (wijiji [192.12.12.5])
- by pele.santafe.edu (8.9.1/8.9.1) with ESMTP id SAA10831
- for <chet@nike.ins.cwru.edu>; Thu, 22 Jul 1999 18:37:47 -0600 (MDT)
-Received: (from rms@localhost)
- by wijiji.santafe.edu (8.9.1b+Sun/8.9.1) id SAA01089;
- Thu, 22 Jul 1999 18:37:46 -0600 (MDT)
-Date: Thu, 22 Jul 1999 18:37:46 -0600 (MDT)
-Message-Id: <199907230037.SAA01089@wijiji.santafe.edu>
-X-Authentication-Warning: wijiji.santafe.edu: rms set sender to rms@gnu.org using -f
-From: Richard Stallman <rms@gnu.org>
-To: chet@nike.ins.cwru.edu
-Subject: Use of Readline
-Reply-to: rms@gnu.org
-
-I think Allbery's suggestion is a good one. So please add this text
-in a suitable place. Please don't put it in the GPL itself; that
-should be the same as the GPL everywhere else. Putting it in the
-README and/or the documentation would be a good idea.
-
-
-======================================================================
-Our position on the use of Readline through a shared-library linking
-mechanism is that there is no legal difference between shared-library
-linking and static linking--either kind of linking combines various
-modules into a single larger work. The conditions for using Readline
-in a larger work are stated in section 3 of the GNU GPL.
-
-
diff --git a/readline-4.3/aclocal.m4 b/readline-4.3/aclocal.m4
deleted file mode 100644
index d1ad025..0000000
--- a/readline-4.3/aclocal.m4
+++ /dev/null
@@ -1,1792 +0,0 @@
-dnl
-dnl Bash specific tests
-dnl
-dnl Some derived from PDKSH 5.1.3 autoconf tests
-dnl
-
-AC_DEFUN(BASH_C_LONG_LONG,
-[AC_CACHE_CHECK(for long long, ac_cv_c_long_long,
-[if test "$GCC" = yes; then
- ac_cv_c_long_long=yes
-else
-AC_TRY_RUN([
-int
-main()
-{
-long long foo = 0;
-exit(sizeof(long long) < sizeof(long));
-}
-], ac_cv_c_long_long=yes, ac_cv_c_long_long=no)
-fi])
-if test $ac_cv_c_long_long = yes; then
- AC_DEFINE(HAVE_LONG_LONG, 1, [Define if the `long long' type works.])
-fi
-])
-
-dnl
-dnl This is very similar to AC_C_LONG_DOUBLE, with the fix for IRIX
-dnl (< changed to <=) added.
-dnl
-AC_DEFUN(BASH_C_LONG_DOUBLE,
-[AC_CACHE_CHECK(for long double, ac_cv_c_long_double,
-[if test "$GCC" = yes; then
- ac_cv_c_long_double=yes
-else
-AC_TRY_RUN([
-int
-main()
-{
- /* The Stardent Vistra knows sizeof(long double), but does not
- support it. */
- long double foo = 0.0;
- /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
- /* On IRIX 5.3, the compiler converts long double to double with a warning,
- but compiles this successfully. */
- exit(sizeof(long double) <= sizeof(double));
-}
-], ac_cv_c_long_double=yes, ac_cv_c_long_double=no)
-fi])
-if test $ac_cv_c_long_double = yes; then
- AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if the `long double' type works.])
-fi
-])
-
-dnl
-dnl Check for <inttypes.h>. This is separated out so that it can be
-dnl AC_REQUIREd.
-dnl
-dnl BASH_HEADER_INTTYPES
-AC_DEFUN(BASH_HEADER_INTTYPES,
-[
- AC_CHECK_HEADERS(inttypes.h)
-])
-
-dnl
-dnl check for typedef'd symbols in header files, but allow the caller to
-dnl specify the include files to be checked in addition to the default
-dnl
-dnl BASH_CHECK_TYPE(TYPE, HEADERS, DEFAULT[, VALUE-IF-FOUND])
-AC_DEFUN(BASH_CHECK_TYPE,
-[
-AC_REQUIRE([AC_HEADER_STDC])dnl
-AC_REQUIRE([BASH_HEADER_INTTYPES])
-AC_MSG_CHECKING(for $1)
-AC_CACHE_VAL(bash_cv_type_$1,
-[AC_EGREP_CPP($1, [#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#if HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-$2
-], bash_cv_type_$1=yes, bash_cv_type_$1=no)])
-AC_MSG_RESULT($bash_cv_type_$1)
-ifelse($#, 4, [if test $bash_cv_type_$1 = yes; then
- AC_DEFINE($4)
- fi])
-if test $bash_cv_type_$1 = no; then
- AC_DEFINE_UNQUOTED($1, $3)
-fi
-])
-
-dnl
-dnl BASH_CHECK_DECL(FUNC)
-dnl
-dnl Check for a declaration of FUNC in stdlib.h and inttypes.h like
-dnl AC_CHECK_DECL
-dnl
-AC_DEFUN(BASH_CHECK_DECL,
-[
-AC_REQUIRE([AC_HEADER_STDC])
-AC_REQUIRE([BASH_HEADER_INTTYPES])
-AC_CACHE_CHECK([for declaration of $1], bash_cv_decl_$1,
-[AC_TRY_LINK(
-[
-#if STDC_HEADERS
-# include <stdlib.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-],
-[return !$1;],
-bash_cv_decl_$1=yes, bash_cv_decl_$1=no)])
-bash_tr_func=HAVE_DECL_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-if test $bash_cv_decl_$1 = yes; then
- AC_DEFINE_UNQUOTED($bash_tr_func, 1)
-else
- AC_DEFINE_UNQUOTED($bash_tr_func, 0)
-fi
-])
-
-AC_DEFUN(BASH_DECL_PRINTF,
-[AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
-AC_CACHE_VAL(bash_cv_printf_declared,
-[AC_TRY_RUN([
-#include <stdio.h>
-#ifdef __STDC__
-typedef int (*_bashfunc)(const char *, ...);
-#else
-typedef int (*_bashfunc)();
-#endif
-main()
-{
-_bashfunc pf;
-pf = (_bashfunc) printf;
-exit(pf == 0);
-}
-], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
- [AC_MSG_WARN(cannot check printf declaration if cross compiling -- defaulting to yes)
- bash_cv_printf_declared=yes]
-)])
-AC_MSG_RESULT($bash_cv_printf_declared)
-if test $bash_cv_printf_declared = yes; then
-AC_DEFINE(PRINTF_DECLARED)
-fi
-])
-
-AC_DEFUN(BASH_DECL_SBRK,
-[AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
-AC_CACHE_VAL(bash_cv_sbrk_declared,
-[AC_EGREP_HEADER(sbrk, unistd.h,
- bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
-AC_MSG_RESULT($bash_cv_sbrk_declared)
-if test $bash_cv_sbrk_declared = yes; then
-AC_DEFINE(SBRK_DECLARED)
-fi
-])
-
-dnl
-dnl Check for sys_siglist[] or _sys_siglist[]
-dnl
-AC_DEFUN(BASH_DECL_UNDER_SYS_SIGLIST,
-[AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
-AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
-[AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif], [ char *msg = _sys_siglist[2]; ],
- bash_cv_decl_under_sys_siglist=yes, bash_cv_decl_under_sys_siglist=no,
- [AC_MSG_WARN(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)])])dnl
-AC_MSG_RESULT($bash_cv_decl_under_sys_siglist)
-if test $bash_cv_decl_under_sys_siglist = yes; then
-AC_DEFINE(UNDER_SYS_SIGLIST_DECLARED)
-fi
-])
-
-AC_DEFUN(BASH_UNDER_SYS_SIGLIST,
-[AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
-AC_MSG_CHECKING([for _sys_siglist in system C library])
-AC_CACHE_VAL(bash_cv_under_sys_siglist,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifndef UNDER_SYS_SIGLIST_DECLARED
-extern char *_sys_siglist[];
-#endif
-main()
-{
-char *msg = (char *)_sys_siglist[2];
-exit(msg == 0);
-}],
- bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
- [AC_MSG_WARN(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)
- bash_cv_under_sys_siglist=no])])
-AC_MSG_RESULT($bash_cv_under_sys_siglist)
-if test $bash_cv_under_sys_siglist = yes; then
-AC_DEFINE(HAVE_UNDER_SYS_SIGLIST)
-fi
-])
-
-AC_DEFUN(BASH_SYS_SIGLIST,
-[AC_REQUIRE([AC_DECL_SYS_SIGLIST])
-AC_MSG_CHECKING([for sys_siglist in system C library])
-AC_CACHE_VAL(bash_cv_sys_siglist,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifndef SYS_SIGLIST_DECLARED
-extern char *sys_siglist[];
-#endif
-main()
-{
-char *msg = sys_siglist[2];
-exit(msg == 0);
-}],
- bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
- [AC_MSG_WARN(cannot check for sys_siglist if cross compiling -- defaulting to no)
- bash_cv_sys_siglist=no])])
-AC_MSG_RESULT($bash_cv_sys_siglist)
-if test $bash_cv_sys_siglist = yes; then
-AC_DEFINE(HAVE_SYS_SIGLIST)
-fi
-])
-
-dnl Check for the various permutations of sys_siglist and make sure we
-dnl compile in siglist.o if they're not defined
-AC_DEFUN(BASH_CHECK_SYS_SIGLIST, [
-AC_REQUIRE([BASH_SYS_SIGLIST])
-AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
-AC_REQUIRE([BASH_FUNC_STRSIGNAL])
-if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then
- SIGLIST_O=siglist.o
-else
- SIGLIST_O=
-fi
-AC_SUBST([SIGLIST_O])
-])
-
-dnl Check for sys_errlist[] and sys_nerr, check for declaration
-AC_DEFUN(BASH_SYS_ERRLIST,
-[AC_MSG_CHECKING([for sys_errlist and sys_nerr])
-AC_CACHE_VAL(bash_cv_sys_errlist,
-[AC_TRY_LINK([#include <errno.h>],
-[extern char *sys_errlist[];
- extern int sys_nerr;
- char *msg = sys_errlist[sys_nerr - 1];],
- bash_cv_sys_errlist=yes, bash_cv_sys_errlist=no)])dnl
-AC_MSG_RESULT($bash_cv_sys_errlist)
-if test $bash_cv_sys_errlist = yes; then
-AC_DEFINE(HAVE_SYS_ERRLIST)
-fi
-])
-
-dnl
-dnl Check if dup2() does not clear the close on exec flag
-dnl
-AC_DEFUN(BASH_FUNC_DUP2_CLOEXEC_CHECK,
-[AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
-AC_CACHE_VAL(bash_cv_dup2_broken,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <fcntl.h>
-main()
-{
- int fd1, fd2, fl;
- fd1 = open("/dev/null", 2);
- if (fcntl(fd1, 2, 1) < 0)
- exit(1);
- fd2 = dup2(fd1, 1);
- if (fd2 < 0)
- exit(2);
- fl = fcntl(fd2, 1, 0);
- /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
- exit(fl != 1);
-}
-], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
- [AC_MSG_WARN(cannot check dup2 if cross compiling -- defaulting to no)
- bash_cv_dup2_broken=no])
-])
-AC_MSG_RESULT($bash_cv_dup2_broken)
-if test $bash_cv_dup2_broken = yes; then
-AC_DEFINE(DUP2_BROKEN)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_STRSIGNAL,
-[AC_MSG_CHECKING([for the existence of strsignal])
-AC_CACHE_VAL(bash_cv_have_strsignal,
-[AC_TRY_LINK([#include <sys/types.h>
-#include <signal.h>],
-[char *s = (char *)strsignal(2);],
- bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
-AC_MSG_RESULT($bash_cv_have_strsignal)
-if test $bash_cv_have_strsignal = yes; then
-AC_DEFINE(HAVE_STRSIGNAL)
-fi
-])
-
-dnl Check to see if opendir will open non-directories (not a nice thing)
-AC_DEFUN(BASH_FUNC_OPENDIR_CHECK,
-[AC_REQUIRE([AC_HEADER_DIRENT])dnl
-AC_MSG_CHECKING(if opendir() opens non-directories)
-AC_CACHE_VAL(bash_cv_opendir_not_robust,
-[AC_TRY_RUN([
-#include <stdio.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-main()
-{
-DIR *dir;
-int fd, err;
-err = mkdir("/tmp/bash-aclocal", 0700);
-if (err < 0) {
- perror("mkdir");
- exit(1);
-}
-unlink("/tmp/bash-aclocal/not_a_directory");
-fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666);
-write(fd, "\n", 1);
-close(fd);
-dir = opendir("/tmp/bash-aclocal/not_a_directory");
-unlink("/tmp/bash-aclocal/not_a_directory");
-rmdir("/tmp/bash-aclocal");
-exit (dir == 0);
-}], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
- [AC_MSG_WARN(cannot check opendir if cross compiling -- defaulting to no)
- bash_cv_opendir_not_robust=no]
-)])
-AC_MSG_RESULT($bash_cv_opendir_not_robust)
-if test $bash_cv_opendir_not_robust = yes; then
-AC_DEFINE(OPENDIR_NOT_ROBUST)
-fi
-])
-
-dnl
-AC_DEFUN(BASH_TYPE_SIGHANDLER,
-[AC_MSG_CHECKING([whether signal handlers are of type void])
-AC_CACHE_VAL(bash_cv_void_sighandler,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C"
-#endif
-void (*signal ()) ();],
-[int i;], bash_cv_void_sighandler=yes, bash_cv_void_sighandler=no)])dnl
-AC_MSG_RESULT($bash_cv_void_sighandler)
-if test $bash_cv_void_sighandler = yes; then
-AC_DEFINE(VOID_SIGHANDLER)
-fi
-])
-
-dnl
-dnl A signed 16-bit integer quantity
-dnl
-AC_DEFUN(BASH_TYPE_BITS16_T,
-[
-if test "$ac_cv_sizeof_short" = 2; then
- AC_CHECK_TYPE(bits16_t, short)
-elif test "$ac_cv_sizeof_char" = 2; then
- AC_CHECK_TYPE(bits16_t, char)
-else
- AC_CHECK_TYPE(bits16_t, short)
-fi
-])
-
-dnl
-dnl An unsigned 16-bit integer quantity
-dnl
-AC_DEFUN(BASH_TYPE_U_BITS16_T,
-[
-if test "$ac_cv_sizeof_short" = 2; then
- AC_CHECK_TYPE(u_bits16_t, unsigned short)
-elif test "$ac_cv_sizeof_char" = 2; then
- AC_CHECK_TYPE(u_bits16_t, unsigned char)
-else
- AC_CHECK_TYPE(u_bits16_t, unsigned short)
-fi
-])
-
-dnl
-dnl A signed 32-bit integer quantity
-dnl
-AC_DEFUN(BASH_TYPE_BITS32_T,
-[
-if test "$ac_cv_sizeof_int" = 4; then
- AC_CHECK_TYPE(bits32_t, int)
-elif test "$ac_cv_sizeof_long" = 4; then
- AC_CHECK_TYPE(bits32_t, long)
-else
- AC_CHECK_TYPE(bits32_t, int)
-fi
-])
-
-dnl
-dnl An unsigned 32-bit integer quantity
-dnl
-AC_DEFUN(BASH_TYPE_U_BITS32_T,
-[
-if test "$ac_cv_sizeof_int" = 4; then
- AC_CHECK_TYPE(u_bits32_t, unsigned int)
-elif test "$ac_cv_sizeof_long" = 4; then
- AC_CHECK_TYPE(u_bits32_t, unsigned long)
-else
- AC_CHECK_TYPE(u_bits32_t, unsigned int)
-fi
-])
-
-AC_DEFUN(BASH_TYPE_PTRDIFF_T,
-[
-if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
- AC_CHECK_TYPE(ptrdiff_t, int)
-elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
- AC_CHECK_TYPE(ptrdiff_t, long)
-elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
- AC_CHECK_TYPE(ptrdiff_t, [long long])
-else
- AC_CHECK_TYPE(ptrdiff_t, int)
-fi
-])
-
-dnl
-dnl A signed 64-bit quantity
-dnl
-AC_DEFUN(BASH_TYPE_BITS64_T,
-[
-if test "$ac_cv_sizeof_char_p" = 8; then
- AC_CHECK_TYPE(bits64_t, char *)
-elif test "$ac_cv_sizeof_double" = 8; then
- AC_CHECK_TYPE(bits64_t, double)
-elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then
- AC_CHECK_TYPE(bits64_t, [long long])
-elif test "$ac_cv_sizeof_long" = 8; then
- AC_CHECK_TYPE(bits64_t, long)
-else
- AC_CHECK_TYPE(bits64_t, double)
-fi
-])
-
-AC_DEFUN(BASH_TYPE_LONG_LONG,
-[
-AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
-[AC_TRY_LINK([
-long long ll = 1; int i = 63;],
-[
-long long llm = (long long) -1;
-return ll << i | ll >> i | llm / ll | llm % ll;
-], bash_cv_type_long_long='long long', bash_cv_type_long_long='long')])
-if test "$bash_cv_type_long_long" = 'long long'; then
- AC_DEFINE(HAVE_LONG_LONG, 1)
-fi
-])
-
-AC_DEFUN(BASH_TYPE_UNSIGNED_LONG_LONG,
-[
-AC_CACHE_CHECK([for unsigned long long], bash_cv_type_unsigned_long_long,
-[AC_TRY_LINK([
-unsigned long long ull = 1; int i = 63;],
-[
-unsigned long long ullmax = (unsigned long long) -1;
-return ull << i | ull >> i | ullmax / ull | ullmax % ull;
-], bash_cv_type_unsigned_long_long='unsigned long long',
- bash_cv_type_unsigned_long_long='unsigned long')])
-if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then
- AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1)
-fi
-])
-
-dnl
-dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
-dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
-dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3). To simplify
-dnl matters, this just checks for rlim_t, quad_t, or long.
-dnl
-AC_DEFUN(BASH_TYPE_RLIMIT,
-[AC_MSG_CHECKING(for size and type of struct rlimit fields)
-AC_CACHE_VAL(bash_cv_type_rlimit,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/resource.h>],
-[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
-AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-main()
-{
-#ifdef HAVE_QUAD_T
- struct rlimit rl;
- if (sizeof(rl.rlim_cur) == sizeof(quad_t))
- exit(0);
-#endif
- exit(1);
-}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
- [AC_MSG_WARN(cannot check quad_t if cross compiling -- defaulting to long)
- bash_cv_type_rlimit=long])])
-])
-AC_MSG_RESULT($bash_cv_type_rlimit)
-if test $bash_cv_type_rlimit = quad_t; then
-AC_DEFINE(RLIMTYPE, quad_t)
-elif test $bash_cv_type_rlimit = rlim_t; then
-AC_DEFINE(RLIMTYPE, rlim_t)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_LSTAT,
-[dnl Cannot use AC_CHECK_FUNCS(lstat) because Linux defines lstat() as an
-dnl inline function in <sys/stat.h>.
-AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
-[AC_TRY_LINK([
-#include <sys/types.h>
-#include <sys/stat.h>
-],[ lstat(".",(struct stat *)0); ],
-bash_cv_func_lstat=yes, bash_cv_func_lstat=no)])
-if test $bash_cv_func_lstat = yes; then
- AC_DEFINE(HAVE_LSTAT)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_INET_ATON,
-[
-AC_CACHE_CHECK([for inet_aton], bash_cv_func_inet_aton,
-[AC_TRY_LINK([
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-struct in_addr ap;], [ inet_aton("127.0.0.1", &ap); ],
-bash_cv_func_inet_aton=yes, bash_cv_func_inet_aton=no)])
-if test $bash_cv_func_inet_aton = yes; then
- AC_DEFINE(HAVE_INET_ATON)
-else
- AC_LIBOBJ(inet_aton)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_GETENV,
-[AC_MSG_CHECKING(to see if getenv can be redefined)
-AC_CACHE_VAL(bash_cv_getenv_redef,
-[AC_TRY_RUN([
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#ifndef __STDC__
-# ifndef const
-# define const
-# endif
-#endif
-char *
-getenv (name)
-#if defined (__linux__) || defined (__bsdi__) || defined (convex)
- const char *name;
-#else
- char const *name;
-#endif /* !__linux__ && !__bsdi__ && !convex */
-{
-return "42";
-}
-main()
-{
-char *s;
-/* The next allows this program to run, but does not allow bash to link
- when it redefines getenv. I'm not really interested in figuring out
- why not. */
-#if defined (NeXT)
-exit(1);
-#endif
-s = getenv("ABCDE");
-exit(s == 0); /* force optimizer to leave getenv in */
-}
-], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
- [AC_MSG_WARN(cannot check getenv redefinition if cross compiling -- defaulting to yes)
- bash_cv_getenv_redef=yes]
-)])
-AC_MSG_RESULT($bash_cv_getenv_redef)
-if test $bash_cv_getenv_redef = yes; then
-AC_DEFINE(CAN_REDEFINE_GETENV)
-fi
-])
-
-# We should check for putenv before calling this
-AC_DEFUN(BASH_FUNC_STD_PUTENV,
-[
-AC_REQUIRE([AC_HEADER_STDC])
-AC_REQUIRE([AC_C_PROTOTYPES])
-AC_CACHE_CHECK([for standard-conformant putenv declaration], bash_cv_std_putenv,
-[AC_TRY_LINK([
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#ifndef __STDC__
-# ifndef const
-# define const
-# endif
-#endif
-#ifdef PROTOTYPES
-extern int putenv (char *);
-#else
-extern int putenv ();
-#endif
-],
-[return (putenv == 0);],
-bash_cv_std_putenv=yes, bash_cv_std_putenv=no
-)])
-if test $bash_cv_std_putenv = yes; then
-AC_DEFINE(HAVE_STD_PUTENV)
-fi
-])
-
-# We should check for unsetenv before calling this
-AC_DEFUN(BASH_FUNC_STD_UNSETENV,
-[
-AC_REQUIRE([AC_HEADER_STDC])
-AC_REQUIRE([AC_C_PROTOTYPES])
-AC_CACHE_CHECK([for standard-conformant unsetenv declaration], bash_cv_std_unsetenv,
-[AC_TRY_LINK([
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-#ifndef __STDC__
-# ifndef const
-# define const
-# endif
-#endif
-#ifdef PROTOTYPES
-extern int unsetenv (const char *);
-#else
-extern int unsetenv ();
-#endif
-],
-[return (unsetenv == 0);],
-bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
-)])
-if test $bash_cv_std_unsetenv = yes; then
-AC_DEFINE(HAVE_STD_UNSETENV)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_ULIMIT_MAXFDS,
-[AC_MSG_CHECKING(whether ulimit can substitute for getdtablesize)
-AC_CACHE_VAL(bash_cv_ulimit_maxfds,
-[AC_TRY_RUN([
-main()
-{
-long maxfds = ulimit(4, 0L);
-exit (maxfds == -1L);
-}
-], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
- [AC_MSG_WARN(cannot check ulimit if cross compiling -- defaulting to no)
- bash_cv_ulimit_maxfds=no]
-)])
-AC_MSG_RESULT($bash_cv_ulimit_maxfds)
-if test $bash_cv_ulimit_maxfds = yes; then
-AC_DEFINE(ULIMIT_MAXFDS)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_GETCWD,
-[AC_MSG_CHECKING([if getcwd() calls popen()])
-AC_CACHE_VAL(bash_cv_getcwd_calls_popen,
-[AC_TRY_RUN([
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifndef __STDC__
-#ifndef const
-#define const
-#endif
-#endif
-
-int popen_called;
-
-FILE *
-popen(command, type)
- const char *command;
- const char *type;
-{
- popen_called = 1;
- return (FILE *)NULL;
-}
-
-FILE *_popen(command, type)
- const char *command;
- const char *type;
-{
- return (popen (command, type));
-}
-
-int
-pclose(stream)
-FILE *stream;
-{
- return 0;
-}
-
-int
-_pclose(stream)
-FILE *stream;
-{
- return 0;
-}
-
-main()
-{
- char lbuf[32];
- popen_called = 0;
- getcwd(lbuf, 32);
- exit (popen_called);
-}
-], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
- [AC_MSG_WARN(cannot check whether getcwd calls popen if cross compiling -- defaulting to no)
- bash_cv_getcwd_calls_popen=no]
-)])
-AC_MSG_RESULT($bash_cv_getcwd_calls_popen)
-if test $bash_cv_getcwd_calls_popen = yes; then
-AC_DEFINE(GETCWD_BROKEN)
-AC_LIBOBJ(getcwd)
-fi
-])
-
-dnl
-dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
-dnl system, we can't use AC_PREREQ
-dnl
-AC_DEFUN(BASH_FUNC_GETHOSTBYNAME,
-[if test "X$bash_cv_have_gethostbyname" = "X"; then
-_bash_needmsg=yes
-else
-AC_MSG_CHECKING(for gethostbyname in socket library)
-_bash_needmsg=
-fi
-AC_CACHE_VAL(bash_cv_have_gethostbyname,
-[AC_TRY_LINK([#include <netdb.h>],
-[ struct hostent *hp;
- hp = gethostbyname("localhost");
-], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
-)
-if test "X$_bash_needmsg" = Xyes; then
- AC_MSG_CHECKING(for gethostbyname in socket library)
-fi
-AC_MSG_RESULT($bash_cv_have_gethostbyname)
-if test "$bash_cv_have_gethostbyname" = yes; then
-AC_DEFINE(HAVE_GETHOSTBYNAME)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_FNMATCH_EXTMATCH,
-[AC_MSG_CHECKING(if fnmatch does extended pattern matching with FNM_EXTMATCH)
-AC_CACHE_VAL(bash_cv_fnm_extmatch,
-[AC_TRY_RUN([
-#include <fnmatch.h>
-
-main()
-{
-#ifdef FNM_EXTMATCH
- exit (0);
-#else
- exit (1);
-#endif
-}
-], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
- [AC_MSG_WARN(cannot check FNM_EXTMATCH if cross compiling -- defaulting to no)
- bash_cv_fnm_extmatch=no])
-])
-AC_MSG_RESULT($bash_cv_fnm_extmatch)
-if test $bash_cv_fnm_extmatch = yes; then
-AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_POSIX_SETJMP,
-[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
-AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
-AC_CACHE_VAL(bash_cv_func_sigsetjmp,
-[AC_TRY_RUN([
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-#include <setjmp.h>
-
-main()
-{
-#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
-exit (1);
-#else
-
-int code;
-sigset_t set, oset;
-sigjmp_buf xx;
-
-/* get the mask */
-sigemptyset(&set);
-sigemptyset(&oset);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
-
-/* save it */
-code = sigsetjmp(xx, 1);
-if (code)
- exit(0); /* could get sigmask and compare to oset here. */
-
-/* change it */
-sigaddset(&set, SIGINT);
-sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
-
-/* and siglongjmp */
-siglongjmp(xx, 10);
-exit(1);
-#endif
-}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
- [AC_MSG_WARN(cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing)
- bash_cv_func_sigsetjmp=missing]
-)])
-AC_MSG_RESULT($bash_cv_func_sigsetjmp)
-if test $bash_cv_func_sigsetjmp = present; then
-AC_DEFINE(HAVE_POSIX_SIGSETJMP)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_STRCOLL,
-[
-AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
-AC_CACHE_VAL(bash_cv_func_strcoll_broken,
-[AC_TRY_RUN([
-#include <stdio.h>
-#if defined (HAVE_LOCALE_H)
-#include <locale.h>
-#endif
-
-main(c, v)
-int c;
-char *v[];
-{
- int r1, r2;
- char *deflocale, *defcoll;
-
-#ifdef HAVE_SETLOCALE
- deflocale = setlocale(LC_ALL, "");
- defcoll = setlocale(LC_COLLATE, "");
-#endif
-
-#ifdef HAVE_STRCOLL
- /* These two values are taken from tests/glob-test. */
- r1 = strcoll("abd", "aXd");
-#else
- r1 = 0;
-#endif
- r2 = strcmp("abd", "aXd");
-
- /* These two should both be greater than 0. It is permissible for
- a system to return different values, as long as the sign is the
- same. */
-
- /* Exit with 1 (failure) if these two values are both > 0, since
- this tests whether strcoll(3) is broken with respect to strcmp(3)
- in the default locale. */
- exit (r1 > 0 && r2 > 0);
-}
-], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
- [AC_MSG_WARN(cannot check strcoll if cross compiling -- defaulting to no)
- bash_cv_func_strcoll_broken=no]
-)])
-AC_MSG_RESULT($bash_cv_func_strcoll_broken)
-if test $bash_cv_func_strcoll_broken = yes; then
-AC_DEFINE(STRCOLL_BROKEN)
-fi
-])
-
-AC_DEFUN(BASH_FUNC_PRINTF_A_FORMAT,
-[AC_MSG_CHECKING([for printf floating point output in hex notation])
-AC_CACHE_VAL(bash_cv_printf_a_format,
-[AC_TRY_RUN([
-#include <stdio.h>
-#include <string.h>
-
-int
-main()
-{
- double y = 0.0;
- char abuf[1024];
-
- sprintf(abuf, "%A", y);
- exit(strchr(abuf, 'P') == (char *)0);
-}
-], bash_cv_printf_a_format=yes, bash_cv_printf_a_format=no,
- [AC_MSG_WARN(cannot check printf if cross compiling -- defaulting to no)
- bash_cv_printf_a_format=no]
-)])
-AC_MSG_RESULT($bash_cv_printf_a_format)
-if test $bash_cv_printf_a_format = yes; then
-AC_DEFINE(HAVE_PRINTF_A_FORMAT)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_TERMIOS_LDISC,
-[
-AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
-#include <sys/types.h>
-#include <termios.h>
-])
-])
-
-AC_DEFUN(BASH_STRUCT_TERMIO_LDISC,
-[
-AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
-#include <sys/types.h>
-#include <termio.h>
-])
-])
-
-dnl
-dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
-dnl
-dnl sets bash_cv_struct_stat_st_blocks
-dnl
-dnl unused for now; we'll see how AC_CHECK_MEMBERS works
-dnl
-AC_DEFUN(BASH_STRUCT_ST_BLOCKS,
-[
-AC_MSG_CHECKING([for struct stat.st_blocks])
-AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
-[AC_TRY_COMPILE(
-[
-#include <sys/types.h>
-#include <sys/stat.h>
-],
-[
-main()
-{
-static struct stat a;
-if (a.st_blocks) return 0;
-return 0;
-}
-], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
-])
-AC_MSG_RESULT($bash_cv_struct_stat_st_blocks)
-if test "$bash_cv_struct_stat_st_blocks" = "yes"; then
-AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
-fi
-])
-
-AC_DEFUN(BASH_CHECK_LIB_TERMCAP,
-[
-if test "X$bash_cv_termcap_lib" = "X"; then
-_bash_needmsg=yes
-else
-AC_MSG_CHECKING(which library has the termcap functions)
-_bash_needmsg=
-fi
-AC_CACHE_VAL(bash_cv_termcap_lib,
-[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
- [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
- [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
- [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
- bash_cv_termcap_lib=gnutermcap)])])])])
-if test "X$_bash_needmsg" = "Xyes"; then
-AC_MSG_CHECKING(which library has the termcap functions)
-fi
-AC_MSG_RESULT(using $bash_cv_termcap_lib)
-if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
-LDFLAGS="$LDFLAGS -L./lib/termcap"
-TERMCAP_LIB="./lib/termcap/libtermcap.a"
-TERMCAP_DEP="./lib/termcap/libtermcap.a"
-elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
-TERMCAP_LIB=-ltermcap
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libtinfo; then
-TERMCAP_LIB=-ltinfo
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libncurses; then
-TERMCAP_LIB=-lncurses
-TERMCAP_DEP=
-else
-TERMCAP_LIB=-lcurses
-TERMCAP_DEP=
-fi
-])
-
-dnl
-dnl Check for the presence of getpeername in libsocket.
-dnl If libsocket is present, check for libnsl and add it to LIBS if
-dnl it's there, since most systems with libsocket require linking
-dnl with libnsl as well. This should only be called if getpeername
-dnl was not found in libc.
-dnl
-dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
-dnl AS WELL
-dnl
-AC_DEFUN(BASH_CHECK_LIB_SOCKET,
-[
-if test "X$bash_cv_have_socklib" = "X"; then
-_bash_needmsg=
-else
-AC_MSG_CHECKING(for socket library)
-_bash_needmsg=yes
-fi
-AC_CACHE_VAL(bash_cv_have_socklib,
-[AC_CHECK_LIB(socket, getpeername,
- bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
-if test "X$_bash_needmsg" = Xyes; then
- AC_MSG_RESULT($bash_cv_have_socklib)
- _bash_needmsg=
-fi
-if test $bash_cv_have_socklib = yes; then
- # check for libnsl, add it to LIBS if present
- if test "X$bash_cv_have_libnsl" = "X"; then
- _bash_needmsg=
- else
- AC_MSG_CHECKING(for libnsl)
- _bash_needmsg=yes
- fi
- AC_CACHE_VAL(bash_cv_have_libnsl,
- [AC_CHECK_LIB(nsl, t_open,
- bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
- if test "X$_bash_needmsg" = Xyes; then
- AC_MSG_RESULT($bash_cv_have_libnsl)
- _bash_needmsg=
- fi
- if test $bash_cv_have_libnsl = yes; then
- LIBS="-lsocket -lnsl $LIBS"
- else
- LIBS="-lsocket $LIBS"
- fi
- AC_DEFINE(HAVE_LIBSOCKET)
- AC_DEFINE(HAVE_GETPEERNAME)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_DIRENT_D_INO,
-[AC_REQUIRE([AC_HEADER_DIRENT])
-AC_MSG_CHECKING(if struct dirent has a d_ino member)
-AC_CACHE_VAL(bash_cv_dirent_has_dino,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-],[
-struct dirent d; int z; z = d.d_ino;
-], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
-AC_MSG_RESULT($bash_cv_dirent_has_dino)
-if test $bash_cv_dirent_has_dino = yes; then
-AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO,
-[AC_REQUIRE([AC_HEADER_DIRENT])
-AC_MSG_CHECKING(if struct dirent has a d_fileno member)
-AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
-[AC_TRY_COMPILE([
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-],[
-struct dirent d; int z; z = d.d_fileno;
-], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
-AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
-if test $bash_cv_dirent_has_d_fileno = yes; then
-AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_TIMEVAL,
-[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
-AC_CACHE_VAL(bash_cv_struct_timeval,
-[
-AC_EGREP_HEADER(struct timeval, sys/time.h,
- bash_cv_struct_timeval=yes,
- AC_EGREP_HEADER(struct timeval, time.h,
- bash_cv_struct_timeval=yes,
- bash_cv_struct_timeval=no))
-])
-AC_MSG_RESULT($bash_cv_struct_timeval)
-if test $bash_cv_struct_timeval = yes; then
- AC_DEFINE(HAVE_TIMEVAL)
-fi
-])
-
-AC_DEFUN(BASH_STRUCT_WINSIZE,
-[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
-AC_CACHE_VAL(bash_cv_struct_winsize_header,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [struct winsize x;],
- bash_cv_struct_winsize_header=ioctl_h,
- [AC_TRY_COMPILE([#include <sys/types.h>
-#include <termios.h>], [struct winsize x;],
- bash_cv_struct_winsize_header=termios_h, bash_cv_struct_winsize_header=other)
-])])
-if test $bash_cv_struct_winsize_header = ioctl_h; then
- AC_MSG_RESULT(sys/ioctl.h)
- AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
-elif test $bash_cv_struct_winsize_header = termios_h; then
- AC_MSG_RESULT(termios.h)
- AC_DEFINE(STRUCT_WINSIZE_IN_TERMIOS)
-else
- AC_MSG_RESULT(not found)
-fi
-])
-
-dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
-AC_DEFUN(BASH_SYS_SIGNAL_VINTAGE,
-[AC_REQUIRE([AC_TYPE_SIGNAL])
-AC_MSG_CHECKING(for type of signal functions)
-AC_CACHE_VAL(bash_cv_signal_vintage,
-[
- AC_TRY_LINK([#include <signal.h>],[
- sigset_t ss;
- struct sigaction sa;
- sigemptyset(&ss); sigsuspend(&ss);
- sigaction(SIGINT, &sa, (struct sigaction *) 0);
- sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
- ], bash_cv_signal_vintage=posix,
- [
- AC_TRY_LINK([#include <signal.h>], [
- int mask = sigmask(SIGINT);
- sigsetmask(mask); sigblock(mask); sigpause(mask);
- ], bash_cv_signal_vintage=4.2bsd,
- [
- AC_TRY_LINK([
- #include <signal.h>
- RETSIGTYPE foo() { }], [
- int mask = sigmask(SIGINT);
- sigset(SIGINT, foo); sigrelse(SIGINT);
- sighold(SIGINT); sigpause(SIGINT);
- ], bash_cv_signal_vintage=svr3, bash_cv_signal_vintage=v7
- )]
- )]
-)
-])
-AC_MSG_RESULT($bash_cv_signal_vintage)
-if test "$bash_cv_signal_vintage" = posix; then
-AC_DEFINE(HAVE_POSIX_SIGNALS)
-elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
-AC_DEFINE(HAVE_BSD_SIGNALS)
-elif test "$bash_cv_signal_vintage" = svr3; then
-AC_DEFINE(HAVE_USG_SIGHOLD)
-fi
-])
-
-dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
-AC_DEFUN(BASH_SYS_PGRP_SYNC,
-[AC_REQUIRE([AC_FUNC_GETPGRP])
-AC_MSG_CHECKING(whether pgrps need synchronization)
-AC_CACHE_VAL(bash_cv_pgrp_pipe,
-[AC_TRY_RUN([
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-main()
-{
-# ifdef GETPGRP_VOID
-# define getpgID() getpgrp()
-# else
-# define getpgID() getpgrp(0)
-# define setpgid(x,y) setpgrp(x,y)
-# endif
- int pid1, pid2, fds[2];
- int status;
- char ok;
-
- switch (pid1 = fork()) {
- case -1:
- exit(1);
- case 0:
- setpgid(0, getpid());
- exit(0);
- }
- setpgid(pid1, pid1);
-
- sleep(2); /* let first child die */
-
- if (pipe(fds) < 0)
- exit(2);
-
- switch (pid2 = fork()) {
- case -1:
- exit(3);
- case 0:
- setpgid(0, pid1);
- ok = getpgID() == pid1;
- write(fds[1], &ok, 1);
- exit(0);
- }
- setpgid(pid2, pid1);
-
- close(fds[1]);
- if (read(fds[0], &ok, 1) != 1)
- exit(4);
- wait(&status);
- wait(&status);
- exit(ok ? 0 : 5);
-}
-], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
- [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no)
- bash_cv_pgrp_pipe=no])
-])
-AC_MSG_RESULT($bash_cv_pgrp_pipe)
-if test $bash_cv_pgrp_pipe = yes; then
-AC_DEFINE(PGRP_PIPE)
-fi
-])
-
-AC_DEFUN(BASH_SYS_REINSTALL_SIGHANDLERS,
-[AC_REQUIRE([AC_TYPE_SIGNAL])
-AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
-AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
-AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
-[AC_TRY_RUN([
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-typedef RETSIGTYPE sigfunc();
-
-int nsigint;
-
-#ifdef HAVE_POSIX_SIGNALS
-sigfunc *
-set_signal_handler(sig, handler)
- int sig;
- sigfunc *handler;
-{
- struct sigaction act, oact;
- act.sa_handler = handler;
- act.sa_flags = 0;
- sigemptyset (&act.sa_mask);
- sigemptyset (&oact.sa_mask);
- sigaction (sig, &act, &oact);
- return (oact.sa_handler);
-}
-#else
-#define set_signal_handler(s, h) signal(s, h)
-#endif
-
-RETSIGTYPE
-sigint(s)
-int s;
-{
- nsigint++;
-}
-
-main()
-{
- nsigint = 0;
- set_signal_handler(SIGINT, sigint);
- kill((int)getpid(), SIGINT);
- kill((int)getpid(), SIGINT);
- exit(nsigint != 2);
-}
-], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
- [AC_MSG_WARN(cannot check signal handling if cross compiling -- defaulting to no)
- bash_cv_must_reinstall_sighandlers=no]
-)])
-AC_MSG_RESULT($bash_cv_must_reinstall_sighandlers)
-if test $bash_cv_must_reinstall_sighandlers = yes; then
-AC_DEFINE(MUST_REINSTALL_SIGHANDLERS)
-fi
-])
-
-dnl check that some necessary job control definitions are present
-AC_DEFUN(BASH_SYS_JOB_CONTROL_MISSING,
-[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
-AC_MSG_CHECKING(for presence of necessary job control definitions)
-AC_CACHE_VAL(bash_cv_job_control_missing,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#ifdef HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <signal.h>
-
-/* Add more tests in here as appropriate. */
-main()
-{
-/* signal type */
-#if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS)
-exit(1);
-#endif
-
-/* signals and tty control. */
-#if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT)
-exit (1);
-#endif
-
-/* process control */
-#if !defined (WNOHANG) || !defined (WUNTRACED)
-exit(1);
-#endif
-
-/* Posix systems have tcgetpgrp and waitpid. */
-#if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP)
-exit(1);
-#endif
-
-#if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID)
-exit(1);
-#endif
-
-/* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */
-#if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3)
-exit(1);
-#endif
-
-exit(0);
-}], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
- [AC_MSG_WARN(cannot check job control if cross-compiling -- defaulting to missing)
- bash_cv_job_control_missing=missing]
-)])
-AC_MSG_RESULT($bash_cv_job_control_missing)
-if test $bash_cv_job_control_missing = missing; then
-AC_DEFINE(JOB_CONTROL_MISSING)
-fi
-])
-
-dnl check whether named pipes are present
-dnl this requires a previous check for mkfifo, but that is awkward to specify
-AC_DEFUN(BASH_SYS_NAMED_PIPES,
-[AC_MSG_CHECKING(for presence of named pipes)
-AC_CACHE_VAL(bash_cv_sys_named_pipes,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-/* Add more tests in here as appropriate. */
-main()
-{
-int fd, err;
-
-#if defined (HAVE_MKFIFO)
-exit (0);
-#endif
-
-#if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO))
-exit (1);
-#endif
-
-#if defined (NeXT)
-exit (1);
-#endif
-err = mkdir("/tmp/bash-aclocal", 0700);
-if (err < 0) {
- perror ("mkdir");
- exit(1);
-}
-fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0);
-if (fd == -1) {
- rmdir ("/tmp/bash-aclocal");
- exit (1);
-}
-close(fd);
-unlink ("/tmp/bash-aclocal/sh-np-autoconf");
-rmdir ("/tmp/bash-aclocal");
-exit(0);
-}], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
- [AC_MSG_WARN(cannot check for named pipes if cross-compiling -- defaulting to missing)
- bash_cv_sys_named_pipes=missing]
-)])
-AC_MSG_RESULT($bash_cv_sys_named_pipes)
-if test $bash_cv_sys_named_pipes = missing; then
-AC_DEFINE(NAMED_PIPES_MISSING)
-fi
-])
-
-AC_DEFUN(BASH_SYS_DEFAULT_MAIL_DIR,
-[AC_MSG_CHECKING(for default mail directory)
-AC_CACHE_VAL(bash_cv_mail_dir,
-[if test -d /var/mail; then
- bash_cv_mail_dir=/var/mail
- elif test -d /var/spool/mail; then
- bash_cv_mail_dir=/var/spool/mail
- elif test -d /usr/mail; then
- bash_cv_mail_dir=/usr/mail
- elif test -d /usr/spool/mail; then
- bash_cv_mail_dir=/usr/spool/mail
- else
- bash_cv_mail_dir=unknown
- fi
-])
-AC_MSG_RESULT($bash_cv_mail_dir)
-AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
-])
-
-AC_DEFUN(BASH_HAVE_TIOCGWINSZ,
-[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
-AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
- bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
-AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
-if test $bash_cv_tiocgwinsz_in_ioctl = yes; then
-AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
-fi
-])
-
-AC_DEFUN(BASH_HAVE_TIOCSTAT,
-[AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h)
-AC_CACHE_VAL(bash_cv_tiocstat_in_ioctl,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [int x = TIOCSTAT;],
- bash_cv_tiocstat_in_ioctl=yes,bash_cv_tiocstat_in_ioctl=no)])
-AC_MSG_RESULT($bash_cv_tiocstat_in_ioctl)
-if test $bash_cv_tiocstat_in_ioctl = yes; then
-AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL)
-fi
-])
-
-AC_DEFUN(BASH_HAVE_FIONREAD,
-[AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h)
-AC_CACHE_VAL(bash_cv_fionread_in_ioctl,
-[AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/ioctl.h>], [int x = FIONREAD;],
- bash_cv_fionread_in_ioctl=yes,bash_cv_fionread_in_ioctl=no)])
-AC_MSG_RESULT($bash_cv_fionread_in_ioctl)
-if test $bash_cv_fionread_in_ioctl = yes; then
-AC_DEFINE(FIONREAD_IN_SYS_IOCTL)
-fi
-])
-
-dnl
-dnl See if speed_t is declared in <sys/types.h>. Some versions of linux
-dnl require a definition of speed_t each time <termcap.h> is included,
-dnl but you can only get speed_t if you include <termios.h> (on some
-dnl versions) or <sys/types.h> (on others).
-dnl
-AC_DEFUN(BASH_CHECK_SPEED_T,
-[AC_MSG_CHECKING(for speed_t in sys/types.h)
-AC_CACHE_VAL(bash_cv_speed_t_in_sys_types,
-[AC_TRY_COMPILE([#include <sys/types.h>], [speed_t x;],
- bash_cv_speed_t_in_sys_types=yes,bash_cv_speed_t_in_sys_types=no)])
-AC_MSG_RESULT($bash_cv_speed_t_in_sys_types)
-if test $bash_cv_speed_t_in_sys_types = yes; then
-AC_DEFINE(SPEED_T_IN_SYS_TYPES)
-fi
-])
-
-AC_DEFUN(BASH_CHECK_GETPW_FUNCS,
-[AC_MSG_CHECKING(whether getpw functions are declared in pwd.h)
-AC_CACHE_VAL(bash_cv_getpw_declared,
-[AC_EGREP_CPP(getpwuid,
-[
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#include <pwd.h>
-],
-bash_cv_getpw_declared=yes,bash_cv_getpw_declared=no)])
-AC_MSG_RESULT($bash_cv_getpw_declared)
-if test $bash_cv_getpw_declared = yes; then
-AC_DEFINE(HAVE_GETPW_DECLS)
-fi
-])
-
-AC_DEFUN(BASH_CHECK_DEV_FD,
-[AC_MSG_CHECKING(whether /dev/fd is available)
-AC_CACHE_VAL(bash_cv_dev_fd,
-[if test -d /dev/fd && test -r /dev/fd/0; then
- bash_cv_dev_fd=standard
- elif test -d /proc/self/fd && test -r /proc/self/fd/0; then
- bash_cv_dev_fd=whacky
- else
- bash_cv_dev_fd=absent
- fi
-])
-AC_MSG_RESULT($bash_cv_dev_fd)
-if test $bash_cv_dev_fd = "standard"; then
- AC_DEFINE(HAVE_DEV_FD)
- AC_DEFINE(DEV_FD_PREFIX, "/dev/fd/")
-elif test $bash_cv_dev_fd = "whacky"; then
- AC_DEFINE(HAVE_DEV_FD)
- AC_DEFINE(DEV_FD_PREFIX, "/proc/self/fd/")
-fi
-])
-
-AC_DEFUN(BASH_CHECK_DEV_STDIN,
-[AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
-AC_CACHE_VAL(bash_cv_dev_stdin,
-[if test -d /dev/fd && test -r /dev/stdin; then
- bash_cv_dev_stdin=present
- elif test -d /proc/self/fd && test -r /dev/stdin; then
- bash_cv_dev_stdin=present
- else
- bash_cv_dev_stdin=absent
- fi
-])
-AC_MSG_RESULT($bash_cv_dev_stdin)
-if test $bash_cv_dev_stdin = "present"; then
- AC_DEFINE(HAVE_DEV_STDIN)
-fi
-])
-
-dnl
-dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
-dnl
-AC_DEFUN(BASH_CHECK_KERNEL_RLIMIT,
-[AC_MSG_CHECKING([whether $host_os needs _KERNEL for RLIMIT defines])
-AC_CACHE_VAL(bash_cv_kernel_rlimit,
-[AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <sys/resource.h>
-],
-[
- int f;
- f = RLIMIT_DATA;
-], bash_cv_kernel_rlimit=no,
-[AC_TRY_COMPILE([
-#include <sys/types.h>
-#define _KERNEL
-#include <sys/resource.h>
-#undef _KERNEL
-],
-[
- int f;
- f = RLIMIT_DATA;
-], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
-)])
-AC_MSG_RESULT($bash_cv_kernel_rlimit)
-if test $bash_cv_kernel_rlimit = yes; then
-AC_DEFINE(RLIMIT_NEEDS_KERNEL)
-fi
-])
-
-dnl
-dnl Check for 64-bit off_t -- used for malloc alignment
-dnl
-dnl C does not allow duplicate case labels, so the compile will fail if
-dnl sizeof(off_t) is > 4.
-dnl
-AC_DEFUN(BASH_CHECK_OFF_T_64,
-[AC_CACHE_CHECK(for 64-bit off_t, bash_cv_off_t_64,
-AC_TRY_COMPILE([
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-],[
-switch (0) case 0: case (sizeof (off_t) <= 4):;
-], bash_cv_off_t_64=no, bash_cv_off_t_64=yes))
-if test $bash_cv_off_t_64 = yes; then
- AC_DEFINE(HAVE_OFF_T_64)
-fi])
-
-AC_DEFUN(BASH_CHECK_RTSIGS,
-[AC_MSG_CHECKING(for unusable real-time signals due to large values)
-AC_CACHE_VAL(bash_cv_unusable_rtsigs,
-[AC_TRY_RUN([
-#include <sys/types.h>
-#include <signal.h>
-
-#ifndef NSIG
-# define NSIG 64
-#endif
-
-main ()
-{
- int n_sigs = 2 * NSIG;
-#ifdef SIGRTMIN
- int rtmin = SIGRTMIN;
-#else
- int rtmin = 0;
-#endif
-
- exit(rtmin < n_sigs);
-}], bash_cv_unusable_rtsigs=yes, bash_cv_unusable_rtsigs=no,
- [AC_MSG_WARN(cannot check real-time signals if cross compiling -- defaulting to yes)
- bash_cv_unusable_rtsigs=yes]
-)])
-AC_MSG_RESULT($bash_cv_unusable_rtsigs)
-if test $bash_cv_unusable_rtsigs = yes; then
-AC_DEFINE(UNUSABLE_RT_SIGNALS)
-fi
-])
-
-dnl
-dnl check for availability of multibyte characters and functions
-dnl
-AC_DEFUN(BASH_CHECK_MULTIBYTE,
-[
-AC_CHECK_HEADERS(wctype.h)
-AC_CHECK_HEADERS(wchar.h)
-AC_CHECK_HEADERS(langinfo.h)
-
-AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
-AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
-
-AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
-[AC_TRY_RUN([
-#include <wchar.h>
-int
-main ()
-{
- mbstate_t ps;
- return 0;
-}], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
-if test $bash_cv_have_mbstate_t = yes; then
- AC_DEFINE(HAVE_MBSTATE_T)
-fi
-
-AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
-[AC_TRY_LINK(
-[#include <langinfo.h>],
-[char* cs = nl_langinfo(CODESET);],
-bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
-if test $bash_cv_langinfo_codeset = yes; then
- AC_DEFINE(HAVE_LANGINFO_CODESET)
-fi
-
-])
-
-dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
-dnl require:
-dnl AC_PROG_CC
-dnl BASH_CHECK_LIB_TERMCAP
-
-AC_DEFUN(RL_LIB_READLINE_VERSION,
-[
-AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
-
-AC_MSG_CHECKING([version of installed readline library])
-
-# What a pain in the ass this is.
-
-# save cpp and ld options
-_save_CFLAGS="$CFLAGS"
-_save_LDFLAGS="$LDFLAGS"
-_save_LIBS="$LIBS"
-
-# Don't set ac_cv_rl_prefix if the caller has already assigned a value. This
-# allows the caller to do something like $_rl_prefix=$withval if the user
-# specifies --with-installed-readline=PREFIX as an argument to configure
-
-if test -z "$ac_cv_rl_prefix"; then
-test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
-fi
-
-eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
-eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
-
-LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
-CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
-LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
-
-AC_TRY_RUN([
-#include <stdio.h>
-#include <readline/readline.h>
-
-main()
-{
- FILE *fp;
- fp = fopen("conftest.rlv", "w");
- if (fp == 0) exit(1);
- fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
- fclose(fp);
- exit(0);
-}
-],
-ac_cv_rl_version=`cat conftest.rlv`,
-ac_cv_rl_version='0.0',
-ac_cv_rl_version='4.2')
-
-CFLAGS="$_save_CFLAGS"
-LDFLAGS="$_save_LDFLAGS"
-LIBS="$_save_LIBS"
-
-RL_MAJOR=0
-RL_MINOR=0
-
-# (
-case "$ac_cv_rl_version" in
-2*|3*|4*|5*|6*|7*|8*|9*)
- RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
- RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
- ;;
-esac
-
-# (((
-case $RL_MAJOR in
-[[0-9][0-9]]) _RL_MAJOR=$RL_MAJOR ;;
-[[0-9]]) _RL_MAJOR=0$RL_MAJOR ;;
-*) _RL_MAJOR=00 ;;
-esac
-
-# (((
-case $RL_MINOR in
-[[0-9][0-9]]) _RL_MINOR=$RL_MINOR ;;
-[[0-9]]) _RL_MINOR=0$RL_MINOR ;;
-*) _RL_MINOR=00 ;;
-esac
-
-RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
-
-# Readline versions greater than 4.2 have these defines in readline.h
-
-if test $ac_cv_rl_version = '0.0' ; then
- AC_MSG_WARN([Could not test version of installed readline library.])
-elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
- # set these for use by the caller
- RL_PREFIX=$ac_cv_rl_prefix
- RL_LIBDIR=$ac_cv_rl_libdir
- RL_INCLUDEDIR=$ac_cv_rl_includedir
- AC_MSG_RESULT($ac_cv_rl_version)
-else
-
-AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
-AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
-AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
-
-AC_SUBST(RL_VERSION)
-AC_SUBST(RL_MAJOR)
-AC_SUBST(RL_MINOR)
-
-# set these for use by the caller
-RL_PREFIX=$ac_cv_rl_prefix
-RL_LIBDIR=$ac_cv_rl_libdir
-RL_INCLUDEDIR=$ac_cv_rl_includedir
-
-AC_MSG_RESULT($ac_cv_rl_version)
-
-fi
-])
diff --git a/readline-4.3/ansi_stdlib.h b/readline-4.3/ansi_stdlib.h
deleted file mode 100644
index db13cd2..0000000
--- a/readline-4.3/ansi_stdlib.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* ansi_stdlib.h -- An ANSI Standard stdlib.h. */
-/* A minimal stdlib.h containing extern declarations for those functions
- that bash uses. */
-
-/* Copyright (C) 1993 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2, or (at your option) any later
- version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- for more details.
-
- You should have received a copy of the GNU General Public License along
- with Bash; see the file COPYING. If not, write to the Free Software
- Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_STDLIB_H_)
-#define _STDLIB_H_ 1
-
-/* String conversion functions. */
-extern int atoi ();
-
-extern double atof ();
-extern double strtod ();
-
-/* Memory allocation functions. */
-/* Generic pointer type. */
-#ifndef PTR_T
-
-#if defined (__STDC__)
-# define PTR_T void *
-#else
-# define PTR_T char *
-#endif
-
-#endif /* PTR_T */
-
-extern PTR_T malloc ();
-extern PTR_T realloc ();
-extern void free ();
-
-/* Other miscellaneous functions. */
-extern void abort ();
-extern void exit ();
-extern char *getenv ();
-extern void qsort ();
-
-#endif /* _STDLIB_H */
diff --git a/readline-4.3/bind.c b/readline-4.3/bind.c
deleted file mode 100644
index 65ef401..0000000
--- a/readline-4.3/bind.c
+++ /dev/null
@@ -1,2150 +0,0 @@
-/* bind.c -- key binding and startup file support for the readline library. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-# include <sys/file.h>
-#endif /* HAVE_SYS_FILE_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <errno.h>
-
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-#include "posixstat.h"
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strchr (), *strrchr ();
-#endif /* !strchr && !__STDC__ */
-
-/* Variables exported by this file. */
-Keymap rl_binding_keymap;
-
-static char *_rl_read_file PARAMS((char *, size_t *));
-static void _rl_init_file_error PARAMS((const char *));
-static int _rl_read_init_file PARAMS((const char *, int));
-static int glean_key_from_name PARAMS((char *));
-static int substring_member_of_array PARAMS((char *, const char **));
-
-static int currently_reading_init_file;
-
-/* used only in this file */
-static int _rl_prefer_visible_bell = 1;
-
-/* **************************************************************** */
-/* */
-/* Binding keys */
-/* */
-/* **************************************************************** */
-
-/* rl_add_defun (char *name, rl_command_func_t *function, int key)
- Add NAME to the list of named functions. Make FUNCTION be the function
- that gets called. If KEY is not -1, then bind it. */
-int
-rl_add_defun (name, function, key)
- const char *name;
- rl_command_func_t *function;
- int key;
-{
- if (key != -1)
- rl_bind_key (key, function);
- rl_add_funmap_entry (name, function);
- return 0;
-}
-
-/* Bind KEY to FUNCTION. Returns non-zero if KEY is out of range. */
-int
-rl_bind_key (key, function)
- int key;
- rl_command_func_t *function;
-{
- if (key < 0)
- return (key);
-
- if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)
- {
- if (_rl_keymap[ESC].type == ISKMAP)
- {
- Keymap escmap;
-
- escmap = FUNCTION_TO_KEYMAP (_rl_keymap, ESC);
- key = UNMETA (key);
- escmap[key].type = ISFUNC;
- escmap[key].function = function;
- return (0);
- }
- return (key);
- }
-
- _rl_keymap[key].type = ISFUNC;
- _rl_keymap[key].function = function;
- rl_binding_keymap = _rl_keymap;
- return (0);
-}
-
-/* Bind KEY to FUNCTION in MAP. Returns non-zero in case of invalid
- KEY. */
-int
-rl_bind_key_in_map (key, function, map)
- int key;
- rl_command_func_t *function;
- Keymap map;
-{
- int result;
- Keymap oldmap;
-
- oldmap = _rl_keymap;
- _rl_keymap = map;
- result = rl_bind_key (key, function);
- _rl_keymap = oldmap;
- return (result);
-}
-
-/* Make KEY do nothing in the currently selected keymap.
- Returns non-zero in case of error. */
-int
-rl_unbind_key (key)
- int key;
-{
- return (rl_bind_key (key, (rl_command_func_t *)NULL));
-}
-
-/* Make KEY do nothing in MAP.
- Returns non-zero in case of error. */
-int
-rl_unbind_key_in_map (key, map)
- int key;
- Keymap map;
-{
- return (rl_bind_key_in_map (key, (rl_command_func_t *)NULL, map));
-}
-
-/* Unbind all keys bound to FUNCTION in MAP. */
-int
-rl_unbind_function_in_map (func, map)
- rl_command_func_t *func;
- Keymap map;
-{
- register int i, rval;
-
- for (i = rval = 0; i < KEYMAP_SIZE; i++)
- {
- if (map[i].type == ISFUNC && map[i].function == func)
- {
- map[i].function = (rl_command_func_t *)NULL;
- rval = 1;
- }
- }
- return rval;
-}
-
-int
-rl_unbind_command_in_map (command, map)
- const char *command;
- Keymap map;
-{
- rl_command_func_t *func;
-
- func = rl_named_function (command);
- if (func == 0)
- return 0;
- return (rl_unbind_function_in_map (func, map));
-}
-
-/* Bind the key sequence represented by the string KEYSEQ to
- FUNCTION. This makes new keymaps as necessary. The initial
- place to do bindings is in MAP. */
-int
-rl_set_key (keyseq, function, map)
- const char *keyseq;
- rl_command_func_t *function;
- Keymap map;
-{
- return (rl_generic_bind (ISFUNC, keyseq, (char *)function, map));
-}
-
-/* Bind the key sequence represented by the string KEYSEQ to
- the string of characters MACRO. This makes new keymaps as
- necessary. The initial place to do bindings is in MAP. */
-int
-rl_macro_bind (keyseq, macro, map)
- const char *keyseq, *macro;
- Keymap map;
-{
- char *macro_keys;
- int macro_keys_len;
-
- macro_keys = (char *)xmalloc ((2 * strlen (macro)) + 1);
-
- if (rl_translate_keyseq (macro, macro_keys, &macro_keys_len))
- {
- free (macro_keys);
- return -1;
- }
- rl_generic_bind (ISMACR, keyseq, macro_keys, map);
- return 0;
-}
-
-/* Bind the key sequence represented by the string KEYSEQ to
- the arbitrary pointer DATA. TYPE says what kind of data is
- pointed to by DATA, right now this can be a function (ISFUNC),
- a macro (ISMACR), or a keymap (ISKMAP). This makes new keymaps
- as necessary. The initial place to do bindings is in MAP. */
-int
-rl_generic_bind (type, keyseq, data, map)
- int type;
- const char *keyseq;
- char *data;
- Keymap map;
-{
- char *keys;
- int keys_len;
- register int i;
- KEYMAP_ENTRY k;
-
- k.function = 0;
-
- /* If no keys to bind to, exit right away. */
- if (!keyseq || !*keyseq)
- {
- if (type == ISMACR)
- free (data);
- return -1;
- }
-
- keys = (char *)xmalloc (1 + (2 * strlen (keyseq)));
-
- /* Translate the ASCII representation of KEYSEQ into an array of
- characters. Stuff the characters into KEYS, and the length of
- KEYS into KEYS_LEN. */
- if (rl_translate_keyseq (keyseq, keys, &keys_len))
- {
- free (keys);
- return -1;
- }
-
- /* Bind keys, making new keymaps as necessary. */
- for (i = 0; i < keys_len; i++)
- {
- unsigned char uc = keys[i];
- int ic;
-
- ic = uc;
- if (ic < 0 || ic >= KEYMAP_SIZE)
- return -1;
-
- if (_rl_convert_meta_chars_to_ascii && META_CHAR (ic))
- {
- ic = UNMETA (ic);
- if (map[ESC].type == ISKMAP)
- map = FUNCTION_TO_KEYMAP (map, ESC);
- }
-
- if ((i + 1) < keys_len)
- {
- if (map[ic].type != ISKMAP)
- {
- /* We allow subsequences of keys. If a keymap is being
- created that will `shadow' an existing function or macro
- key binding, we save that keybinding into the ANYOTHERKEY
- index in the new map. The dispatch code will look there
- to find the function to execute if the subsequence is not
- matched. ANYOTHERKEY was chosen to be greater than
- UCHAR_MAX. */
- k = map[ic];
-
- map[ic].type = ISKMAP;
- map[ic].function = KEYMAP_TO_FUNCTION (rl_make_bare_keymap());
- }
- map = FUNCTION_TO_KEYMAP (map, ic);
- /* The dispatch code will return this function if no matching
- key sequence is found in the keymap. This (with a little
- help from the dispatch code in readline.c) allows `a' to be
- mapped to something, `abc' to be mapped to something else,
- and the function bound to `a' to be executed when the user
- types `abx', leaving `bx' in the input queue. */
- if (k.function /* && k.type == ISFUNC */)
- {
- map[ANYOTHERKEY] = k;
- k.function = 0;
- }
- }
- else
- {
- if (map[ic].type == ISMACR)
- free ((char *)map[ic].function);
- else if (map[ic].type == ISKMAP)
- {
- map = FUNCTION_TO_KEYMAP (map, ic);
- ic = ANYOTHERKEY;
- }
-
- map[ic].function = KEYMAP_TO_FUNCTION (data);
- map[ic].type = type;
- }
-
- rl_binding_keymap = map;
- }
- free (keys);
- return 0;
-}
-
-/* Translate the ASCII representation of SEQ, stuffing the values into ARRAY,
- an array of characters. LEN gets the final length of ARRAY. Return
- non-zero if there was an error parsing SEQ. */
-int
-rl_translate_keyseq (seq, array, len)
- const char *seq;
- char *array;
- int *len;
-{
- register int i, c, l, temp;
-
- for (i = l = 0; c = seq[i]; i++)
- {
- if (c == '\\')
- {
- c = seq[++i];
-
- if (c == 0)
- break;
-
- /* Handle \C- and \M- prefixes. */
- if ((c == 'C' || c == 'M') && seq[i + 1] == '-')
- {
- /* Handle special case of backwards define. */
- if (strncmp (&seq[i], "C-\\M-", 5) == 0)
- {
- array[l++] = ESC; /* ESC is meta-prefix */
- i += 5;
- array[l++] = CTRL (_rl_to_upper (seq[i]));
- if (seq[i] == '\0')
- i--;
- }
- else if (c == 'M')
- {
- i++;
- array[l++] = ESC; /* ESC is meta-prefix */
- }
- else if (c == 'C')
- {
- i += 2;
- /* Special hack for C-?... */
- array[l++] = (seq[i] == '?') ? RUBOUT : CTRL (_rl_to_upper (seq[i]));
- }
- continue;
- }
-
- /* Translate other backslash-escaped characters. These are the
- same escape sequences that bash's `echo' and `printf' builtins
- handle, with the addition of \d -> RUBOUT. A backslash
- preceding a character that is not special is stripped. */
- switch (c)
- {
- case 'a':
- array[l++] = '\007';
- break;
- case 'b':
- array[l++] = '\b';
- break;
- case 'd':
- array[l++] = RUBOUT; /* readline-specific */
- break;
- case 'e':
- array[l++] = ESC;
- break;
- case 'f':
- array[l++] = '\f';
- break;
- case 'n':
- array[l++] = NEWLINE;
- break;
- case 'r':
- array[l++] = RETURN;
- break;
- case 't':
- array[l++] = TAB;
- break;
- case 'v':
- array[l++] = 0x0B;
- break;
- case '\\':
- array[l++] = '\\';
- break;
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- i++;
- for (temp = 2, c -= '0'; ISOCTAL (seq[i]) && temp--; i++)
- c = (c * 8) + OCTVALUE (seq[i]);
- i--; /* auto-increment in for loop */
- array[l++] = c & largest_char;
- break;
- case 'x':
- i++;
- for (temp = 2, c = 0; ISXDIGIT ((unsigned char)seq[i]) && temp--; i++)
- c = (c * 16) + HEXVALUE (seq[i]);
- if (temp == 2)
- c = 'x';
- i--; /* auto-increment in for loop */
- array[l++] = c & largest_char;
- break;
- default: /* backslashes before non-special chars just add the char */
- array[l++] = c;
- break; /* the backslash is stripped */
- }
- continue;
- }
-
- array[l++] = c;
- }
-
- *len = l;
- array[l] = '\0';
- return (0);
-}
-
-char *
-rl_untranslate_keyseq (seq)
- int seq;
-{
- static char kseq[16];
- int i, c;
-
- i = 0;
- c = seq;
- if (META_CHAR (c))
- {
- kseq[i++] = '\\';
- kseq[i++] = 'M';
- kseq[i++] = '-';
- c = UNMETA (c);
- }
- else if (CTRL_CHAR (c))
- {
- kseq[i++] = '\\';
- kseq[i++] = 'C';
- kseq[i++] = '-';
- c = _rl_to_lower (UNCTRL (c));
- }
- else if (c == RUBOUT)
- {
- kseq[i++] = '\\';
- kseq[i++] = 'C';
- kseq[i++] = '-';
- c = '?';
- }
-
- if (c == ESC)
- {
- kseq[i++] = '\\';
- c = 'e';
- }
- else if (c == '\\' || c == '"')
- {
- kseq[i++] = '\\';
- }
-
- kseq[i++] = (unsigned char) c;
- kseq[i] = '\0';
- return kseq;
-}
-
-static char *
-_rl_untranslate_macro_value (seq)
- char *seq;
-{
- char *ret, *r, *s;
- int c;
-
- r = ret = (char *)xmalloc (7 * strlen (seq) + 1);
- for (s = seq; *s; s++)
- {
- c = *s;
- if (META_CHAR (c))
- {
- *r++ = '\\';
- *r++ = 'M';
- *r++ = '-';
- c = UNMETA (c);
- }
- else if (CTRL_CHAR (c) && c != ESC)
- {
- *r++ = '\\';
- *r++ = 'C';
- *r++ = '-';
- c = _rl_to_lower (UNCTRL (c));
- }
- else if (c == RUBOUT)
- {
- *r++ = '\\';
- *r++ = 'C';
- *r++ = '-';
- c = '?';
- }
-
- if (c == ESC)
- {
- *r++ = '\\';
- c = 'e';
- }
- else if (c == '\\' || c == '"')
- *r++ = '\\';
-
- *r++ = (unsigned char)c;
- }
- *r = '\0';
- return ret;
-}
-
-/* Return a pointer to the function that STRING represents.
- If STRING doesn't have a matching function, then a NULL pointer
- is returned. */
-rl_command_func_t *
-rl_named_function (string)
- const char *string;
-{
- register int i;
-
- rl_initialize_funmap ();
-
- for (i = 0; funmap[i]; i++)
- if (_rl_stricmp (funmap[i]->name, string) == 0)
- return (funmap[i]->function);
- return ((rl_command_func_t *)NULL);
-}
-
-/* Return the function (or macro) definition which would be invoked via
- KEYSEQ if executed in MAP. If MAP is NULL, then the current keymap is
- used. TYPE, if non-NULL, is a pointer to an int which will receive the
- type of the object pointed to. One of ISFUNC (function), ISKMAP (keymap),
- or ISMACR (macro). */
-rl_command_func_t *
-rl_function_of_keyseq (keyseq, map, type)
- const char *keyseq;
- Keymap map;
- int *type;
-{
- register int i;
-
- if (!map)
- map = _rl_keymap;
-
- for (i = 0; keyseq && keyseq[i]; i++)
- {
- unsigned char ic = keyseq[i];
-
- if (META_CHAR (ic) && _rl_convert_meta_chars_to_ascii)
- {
- if (map[ESC].type != ISKMAP)
- {
- if (type)
- *type = map[ESC].type;
-
- return (map[ESC].function);
- }
- else
- {
- map = FUNCTION_TO_KEYMAP (map, ESC);
- ic = UNMETA (ic);
- }
- }
-
- if (map[ic].type == ISKMAP)
- {
- /* If this is the last key in the key sequence, return the
- map. */
- if (!keyseq[i + 1])
- {
- if (type)
- *type = ISKMAP;
-
- return (map[ic].function);
- }
- else
- map = FUNCTION_TO_KEYMAP (map, ic);
- }
- else
- {
- if (type)
- *type = map[ic].type;
-
- return (map[ic].function);
- }
- }
- return ((rl_command_func_t *) NULL);
-}
-
-/* The last key bindings file read. */
-static char *last_readline_init_file = (char *)NULL;
-
-/* The file we're currently reading key bindings from. */
-static const char *current_readline_init_file;
-static int current_readline_init_include_level;
-static int current_readline_init_lineno;
-
-/* Read FILENAME into a locally-allocated buffer and return the buffer.
- The size of the buffer is returned in *SIZEP. Returns NULL if any
- errors were encountered. */
-static char *
-_rl_read_file (filename, sizep)
- char *filename;
- size_t *sizep;
-{
- struct stat finfo;
- size_t file_size;
- char *buffer;
- int i, file;
-
- if ((stat (filename, &finfo) < 0) || (file = open (filename, O_RDONLY, 0666)) < 0)
- return ((char *)NULL);
-
- file_size = (size_t)finfo.st_size;
-
- /* check for overflow on very large files */
- if (file_size != finfo.st_size || file_size + 1 < file_size)
- {
- if (file >= 0)
- close (file);
-#if defined (EFBIG)
- errno = EFBIG;
-#endif
- return ((char *)NULL);
- }
-
- /* Read the file into BUFFER. */
- buffer = (char *)xmalloc (file_size + 1);
- i = read (file, buffer, file_size);
- close (file);
-
- if (i < 0)
- {
- free (buffer);
- return ((char *)NULL);
- }
-
- buffer[i] = '\0';
- if (sizep)
- *sizep = i;
-
- return (buffer);
-}
-
-/* Re-read the current keybindings file. */
-int
-rl_re_read_init_file (count, ignore)
- int count, ignore;
-{
- int r;
- r = rl_read_init_file ((const char *)NULL);
- rl_set_keymap_from_edit_mode ();
- return r;
-}
-
-/* Do key bindings from a file. If FILENAME is NULL it defaults
- to the first non-null filename from this list:
- 1. the filename used for the previous call
- 2. the value of the shell variable `INPUTRC'
- 3. ~/.inputrc
- If the file existed and could be opened and read, 0 is returned,
- otherwise errno is returned. */
-int
-rl_read_init_file (filename)
- const char *filename;
-{
- /* Default the filename. */
- if (filename == 0)
- {
- filename = last_readline_init_file;
- if (filename == 0)
- filename = sh_get_env_value ("INPUTRC");
- if (filename == 0)
- filename = DEFAULT_INPUTRC;
- }
-
- if (*filename == 0)
- filename = DEFAULT_INPUTRC;
-
-#if defined (__MSDOS__)
- if (_rl_read_init_file (filename, 0) == 0)
- return 0;
- filename = "~/_inputrc";
-#endif
- return (_rl_read_init_file (filename, 0));
-}
-
-static int
-_rl_read_init_file (filename, include_level)
- const char *filename;
- int include_level;
-{
- register int i;
- char *buffer, *openname, *line, *end;
- size_t file_size;
-
- current_readline_init_file = filename;
- current_readline_init_include_level = include_level;
-
- openname = tilde_expand (filename);
- buffer = _rl_read_file (openname, &file_size);
- free (openname);
-
- if (buffer == 0)
- return (errno);
-
- if (include_level == 0 && filename != last_readline_init_file)
- {
- FREE (last_readline_init_file);
- last_readline_init_file = savestring (filename);
- }
-
- currently_reading_init_file = 1;
-
- /* Loop over the lines in the file. Lines that start with `#' are
- comments; all other lines are commands for readline initialization. */
- current_readline_init_lineno = 1;
- line = buffer;
- end = buffer + file_size;
- while (line < end)
- {
- /* Find the end of this line. */
- for (i = 0; line + i != end && line[i] != '\n'; i++);
-
-#if defined (__CYGWIN__)
- /* ``Be liberal in what you accept.'' */
- if (line[i] == '\n' && line[i-1] == '\r')
- line[i - 1] = '\0';
-#endif
-
- /* Mark end of line. */
- line[i] = '\0';
-
- /* Skip leading whitespace. */
- while (*line && whitespace (*line))
- {
- line++;
- i--;
- }
-
- /* If the line is not a comment, then parse it. */
- if (*line && *line != '#')
- rl_parse_and_bind (line);
-
- /* Move to the next line. */
- line += i + 1;
- current_readline_init_lineno++;
- }
-
- free (buffer);
- currently_reading_init_file = 0;
- return (0);
-}
-
-static void
-_rl_init_file_error (msg)
- const char *msg;
-{
- if (currently_reading_init_file)
- fprintf (stderr, "readline: %s: line %d: %s\n", current_readline_init_file,
- current_readline_init_lineno, msg);
- else
- fprintf (stderr, "readline: %s\n", msg);
-}
-
-/* **************************************************************** */
-/* */
-/* Parser Directives */
-/* */
-/* **************************************************************** */
-
-typedef int _rl_parser_func_t PARAMS((char *));
-
-/* Things that mean `Control'. */
-const char *_rl_possible_control_prefixes[] = {
- "Control-", "C-", "CTRL-", (const char *)NULL
-};
-
-const char *_rl_possible_meta_prefixes[] = {
- "Meta", "M-", (const char *)NULL
-};
-
-/* Conditionals. */
-
-/* Calling programs set this to have their argv[0]. */
-const char *rl_readline_name = "other";
-
-/* Stack of previous values of parsing_conditionalized_out. */
-static unsigned char *if_stack = (unsigned char *)NULL;
-static int if_stack_depth;
-static int if_stack_size;
-
-/* Push _rl_parsing_conditionalized_out, and set parser state based
- on ARGS. */
-static int
-parser_if (args)
- char *args;
-{
- register int i;
-
- /* Push parser state. */
- if (if_stack_depth + 1 >= if_stack_size)
- {
- if (!if_stack)
- if_stack = (unsigned char *)xmalloc (if_stack_size = 20);
- else
- if_stack = (unsigned char *)xrealloc (if_stack, if_stack_size += 20);
- }
- if_stack[if_stack_depth++] = _rl_parsing_conditionalized_out;
-
- /* If parsing is turned off, then nothing can turn it back on except
- for finding the matching endif. In that case, return right now. */
- if (_rl_parsing_conditionalized_out)
- return 0;
-
- /* Isolate first argument. */
- for (i = 0; args[i] && !whitespace (args[i]); i++);
-
- if (args[i])
- args[i++] = '\0';
-
- /* Handle "$if term=foo" and "$if mode=emacs" constructs. If this
- isn't term=foo, or mode=emacs, then check to see if the first
- word in ARGS is the same as the value stored in rl_readline_name. */
- if (rl_terminal_name && _rl_strnicmp (args, "term=", 5) == 0)
- {
- char *tem, *tname;
-
- /* Terminals like "aaa-60" are equivalent to "aaa". */
- tname = savestring (rl_terminal_name);
- tem = strchr (tname, '-');
- if (tem)
- *tem = '\0';
-
- /* Test the `long' and `short' forms of the terminal name so that
- if someone has a `sun-cmd' and does not want to have bindings
- that will be executed if the terminal is a `sun', they can put
- `$if term=sun-cmd' into their .inputrc. */
- _rl_parsing_conditionalized_out = _rl_stricmp (args + 5, tname) &&
- _rl_stricmp (args + 5, rl_terminal_name);
- free (tname);
- }
-#if defined (VI_MODE)
- else if (_rl_strnicmp (args, "mode=", 5) == 0)
- {
- int mode;
-
- if (_rl_stricmp (args + 5, "emacs") == 0)
- mode = emacs_mode;
- else if (_rl_stricmp (args + 5, "vi") == 0)
- mode = vi_mode;
- else
- mode = no_mode;
-
- _rl_parsing_conditionalized_out = mode != rl_editing_mode;
- }
-#endif /* VI_MODE */
- /* Check to see if the first word in ARGS is the same as the
- value stored in rl_readline_name. */
- else if (_rl_stricmp (args, rl_readline_name) == 0)
- _rl_parsing_conditionalized_out = 0;
- else
- _rl_parsing_conditionalized_out = 1;
- return 0;
-}
-
-/* Invert the current parser state if there is anything on the stack. */
-static int
-parser_else (args)
- char *args;
-{
- register int i;
-
- if (if_stack_depth == 0)
- {
- _rl_init_file_error ("$else found without matching $if");
- return 0;
- }
-
- /* Check the previous (n - 1) levels of the stack to make sure that
- we haven't previously turned off parsing. */
- for (i = 0; i < if_stack_depth - 1; i++)
- if (if_stack[i] == 1)
- return 0;
-
- /* Invert the state of parsing if at top level. */
- _rl_parsing_conditionalized_out = !_rl_parsing_conditionalized_out;
- return 0;
-}
-
-/* Terminate a conditional, popping the value of
- _rl_parsing_conditionalized_out from the stack. */
-static int
-parser_endif (args)
- char *args;
-{
- if (if_stack_depth)
- _rl_parsing_conditionalized_out = if_stack[--if_stack_depth];
- else
- _rl_init_file_error ("$endif without matching $if");
- return 0;
-}
-
-static int
-parser_include (args)
- char *args;
-{
- const char *old_init_file;
- char *e;
- int old_line_number, old_include_level, r;
-
- if (_rl_parsing_conditionalized_out)
- return (0);
-
- old_init_file = current_readline_init_file;
- old_line_number = current_readline_init_lineno;
- old_include_level = current_readline_init_include_level;
-
- e = strchr (args, '\n');
- if (e)
- *e = '\0';
- r = _rl_read_init_file ((const char *)args, old_include_level + 1);
-
- current_readline_init_file = old_init_file;
- current_readline_init_lineno = old_line_number;
- current_readline_init_include_level = old_include_level;
-
- return r;
-}
-
-/* Associate textual names with actual functions. */
-static struct {
- const char *name;
- _rl_parser_func_t *function;
-} parser_directives [] = {
- { "if", parser_if },
- { "endif", parser_endif },
- { "else", parser_else },
- { "include", parser_include },
- { (char *)0x0, (_rl_parser_func_t *)0x0 }
-};
-
-/* Handle a parser directive. STATEMENT is the line of the directive
- without any leading `$'. */
-static int
-handle_parser_directive (statement)
- char *statement;
-{
- register int i;
- char *directive, *args;
-
- /* Isolate the actual directive. */
-
- /* Skip whitespace. */
- for (i = 0; whitespace (statement[i]); i++);
-
- directive = &statement[i];
-
- for (; statement[i] && !whitespace (statement[i]); i++);
-
- if (statement[i])
- statement[i++] = '\0';
-
- for (; statement[i] && whitespace (statement[i]); i++);
-
- args = &statement[i];
-
- /* Lookup the command, and act on it. */
- for (i = 0; parser_directives[i].name; i++)
- if (_rl_stricmp (directive, parser_directives[i].name) == 0)
- {
- (*parser_directives[i].function) (args);
- return (0);
- }
-
- /* display an error message about the unknown parser directive */
- _rl_init_file_error ("unknown parser directive");
- return (1);
-}
-
-/* Read the binding command from STRING and perform it.
- A key binding command looks like: Keyname: function-name\0,
- a variable binding command looks like: set variable value.
- A new-style keybinding looks like "\C-x\C-x": exchange-point-and-mark. */
-int
-rl_parse_and_bind (string)
- char *string;
-{
- char *funname, *kname;
- register int c, i;
- int key, equivalency;
-
- while (string && whitespace (*string))
- string++;
-
- if (!string || !*string || *string == '#')
- return 0;
-
- /* If this is a parser directive, act on it. */
- if (*string == '$')
- {
- handle_parser_directive (&string[1]);
- return 0;
- }
-
- /* If we aren't supposed to be parsing right now, then we're done. */
- if (_rl_parsing_conditionalized_out)
- return 0;
-
- i = 0;
- /* If this keyname is a complex key expression surrounded by quotes,
- advance to after the matching close quote. This code allows the
- backslash to quote characters in the key expression. */
- if (*string == '"')
- {
- int passc = 0;
-
- for (i = 1; c = string[i]; i++)
- {
- if (passc)
- {
- passc = 0;
- continue;
- }
-
- if (c == '\\')
- {
- passc++;
- continue;
- }
-
- if (c == '"')
- break;
- }
- /* If we didn't find a closing quote, abort the line. */
- if (string[i] == '\0')
- {
- _rl_init_file_error ("no closing `\"' in key binding");
- return 1;
- }
- }
-
- /* Advance to the colon (:) or whitespace which separates the two objects. */
- for (; (c = string[i]) && c != ':' && c != ' ' && c != '\t'; i++ );
-
- equivalency = (c == ':' && string[i + 1] == '=');
-
- /* Mark the end of the command (or keyname). */
- if (string[i])
- string[i++] = '\0';
-
- /* If doing assignment, skip the '=' sign as well. */
- if (equivalency)
- string[i++] = '\0';
-
- /* If this is a command to set a variable, then do that. */
- if (_rl_stricmp (string, "set") == 0)
- {
- char *var = string + i;
- char *value;
-
- /* Make VAR point to start of variable name. */
- while (*var && whitespace (*var)) var++;
-
- /* Make VALUE point to start of value string. */
- value = var;
- while (*value && !whitespace (*value)) value++;
- if (*value)
- *value++ = '\0';
- while (*value && whitespace (*value)) value++;
-
- rl_variable_bind (var, value);
- return 0;
- }
-
- /* Skip any whitespace between keyname and funname. */
- for (; string[i] && whitespace (string[i]); i++);
- funname = &string[i];
-
- /* Now isolate funname.
- For straight function names just look for whitespace, since
- that will signify the end of the string. But this could be a
- macro definition. In that case, the string is quoted, so skip
- to the matching delimiter. We allow the backslash to quote the
- delimiter characters in the macro body. */
- /* This code exists to allow whitespace in macro expansions, which
- would otherwise be gobbled up by the next `for' loop.*/
- /* XXX - it may be desirable to allow backslash quoting only if " is
- the quoted string delimiter, like the shell. */
- if (*funname == '\'' || *funname == '"')
- {
- int delimiter = string[i++], passc;
-
- for (passc = 0; c = string[i]; i++)
- {
- if (passc)
- {
- passc = 0;
- continue;
- }
-
- if (c == '\\')
- {
- passc = 1;
- continue;
- }
-
- if (c == delimiter)
- break;
- }
- if (c)
- i++;
- }
-
- /* Advance to the end of the string. */
- for (; string[i] && !whitespace (string[i]); i++);
-
- /* No extra whitespace at the end of the string. */
- string[i] = '\0';
-
- /* Handle equivalency bindings here. Make the left-hand side be exactly
- whatever the right-hand evaluates to, including keymaps. */
- if (equivalency)
- {
- return 0;
- }
-
- /* If this is a new-style key-binding, then do the binding with
- rl_set_key (). Otherwise, let the older code deal with it. */
- if (*string == '"')
- {
- char *seq;
- register int j, k, passc;
-
- seq = (char *)xmalloc (1 + strlen (string));
- for (j = 1, k = passc = 0; string[j]; j++)
- {
- /* Allow backslash to quote characters, but leave them in place.
- This allows a string to end with a backslash quoting another
- backslash, or with a backslash quoting a double quote. The
- backslashes are left in place for rl_translate_keyseq (). */
- if (passc || (string[j] == '\\'))
- {
- seq[k++] = string[j];
- passc = !passc;
- continue;
- }
-
- if (string[j] == '"')
- break;
-
- seq[k++] = string[j];
- }
- seq[k] = '\0';
-
- /* Binding macro? */
- if (*funname == '\'' || *funname == '"')
- {
- j = strlen (funname);
-
- /* Remove the delimiting quotes from each end of FUNNAME. */
- if (j && funname[j - 1] == *funname)
- funname[j - 1] = '\0';
-
- rl_macro_bind (seq, &funname[1], _rl_keymap);
- }
- else
- rl_set_key (seq, rl_named_function (funname), _rl_keymap);
-
- free (seq);
- return 0;
- }
-
- /* Get the actual character we want to deal with. */
- kname = strrchr (string, '-');
- if (!kname)
- kname = string;
- else
- kname++;
-
- key = glean_key_from_name (kname);
-
- /* Add in control and meta bits. */
- if (substring_member_of_array (string, _rl_possible_control_prefixes))
- key = CTRL (_rl_to_upper (key));
-
- if (substring_member_of_array (string, _rl_possible_meta_prefixes))
- key = META (key);
-
- /* Temporary. Handle old-style keyname with macro-binding. */
- if (*funname == '\'' || *funname == '"')
- {
- char useq[2];
- int fl = strlen (funname);
-
- useq[0] = key; useq[1] = '\0';
- if (fl && funname[fl - 1] == *funname)
- funname[fl - 1] = '\0';
-
- rl_macro_bind (useq, &funname[1], _rl_keymap);
- }
-#if defined (PREFIX_META_HACK)
- /* Ugly, but working hack to keep prefix-meta around. */
- else if (_rl_stricmp (funname, "prefix-meta") == 0)
- {
- char seq[2];
-
- seq[0] = key;
- seq[1] = '\0';
- rl_generic_bind (ISKMAP, seq, (char *)emacs_meta_keymap, _rl_keymap);
- }
-#endif /* PREFIX_META_HACK */
- else
- rl_bind_key (key, rl_named_function (funname));
- return 0;
-}
-
-/* Simple structure for boolean readline variables (i.e., those that can
- have one of two values; either "On" or 1 for truth, or "Off" or 0 for
- false. */
-
-#define V_SPECIAL 0x1
-
-static struct {
- const char *name;
- int *value;
- int flags;
-} boolean_varlist [] = {
- { "blink-matching-paren", &rl_blink_matching_paren, V_SPECIAL },
- { "byte-oriented", &rl_byte_oriented, 0 },
- { "completion-ignore-case", &_rl_completion_case_fold, 0 },
- { "convert-meta", &_rl_convert_meta_chars_to_ascii, 0 },
- { "disable-completion", &rl_inhibit_completion, 0 },
- { "enable-keypad", &_rl_enable_keypad, 0 },
- { "expand-tilde", &rl_complete_with_tilde_expansion, 0 },
- { "history-preserve-point", &_rl_history_preserve_point, 0 },
- { "horizontal-scroll-mode", &_rl_horizontal_scroll_mode, 0 },
- { "input-meta", &_rl_meta_flag, 0 },
- { "mark-directories", &_rl_complete_mark_directories, 0 },
- { "mark-modified-lines", &_rl_mark_modified_lines, 0 },
- { "mark-symlinked-directories", &_rl_complete_mark_symlink_dirs, 0 },
- { "match-hidden-files", &_rl_match_hidden_files, 0 },
- { "meta-flag", &_rl_meta_flag, 0 },
- { "output-meta", &_rl_output_meta_chars, 0 },
- { "page-completions", &_rl_page_completions, 0 },
- { "prefer-visible-bell", &_rl_prefer_visible_bell, V_SPECIAL },
- { "print-completions-horizontally", &_rl_print_completions_horizontally, 0 },
- { "show-all-if-ambiguous", &_rl_complete_show_all, 0 },
-#if defined (VISIBLE_STATS)
- { "visible-stats", &rl_visible_stats, 0 },
-#endif /* VISIBLE_STATS */
- { (char *)NULL, (int *)NULL }
-};
-
-static int
-find_boolean_var (name)
- const char *name;
-{
- register int i;
-
- for (i = 0; boolean_varlist[i].name; i++)
- if (_rl_stricmp (name, boolean_varlist[i].name) == 0)
- return i;
- return -1;
-}
-
-/* Hooks for handling special boolean variables, where a
- function needs to be called or another variable needs
- to be changed when they're changed. */
-static void
-hack_special_boolean_var (i)
- int i;
-{
- const char *name;
-
- name = boolean_varlist[i].name;
-
- if (_rl_stricmp (name, "blink-matching-paren") == 0)
- _rl_enable_paren_matching (rl_blink_matching_paren);
- else if (_rl_stricmp (name, "prefer-visible-bell") == 0)
- {
- if (_rl_prefer_visible_bell)
- _rl_bell_preference = VISIBLE_BELL;
- else
- _rl_bell_preference = AUDIBLE_BELL;
- }
-}
-
-typedef int _rl_sv_func_t PARAMS((const char *));
-
-/* These *must* correspond to the array indices for the appropriate
- string variable. (Though they're not used right now.) */
-#define V_BELLSTYLE 0
-#define V_COMBEGIN 1
-#define V_EDITMODE 2
-#define V_ISRCHTERM 3
-#define V_KEYMAP 4
-
-#define V_STRING 1
-#define V_INT 2
-
-/* Forward declarations */
-static int sv_bell_style PARAMS((const char *));
-static int sv_combegin PARAMS((const char *));
-static int sv_compquery PARAMS((const char *));
-static int sv_editmode PARAMS((const char *));
-static int sv_isrchterm PARAMS((const char *));
-static int sv_keymap PARAMS((const char *));
-
-static struct {
- const char *name;
- int flags;
- _rl_sv_func_t *set_func;
-} string_varlist[] = {
- { "bell-style", V_STRING, sv_bell_style },
- { "comment-begin", V_STRING, sv_combegin },
- { "completion-query-items", V_INT, sv_compquery },
- { "editing-mode", V_STRING, sv_editmode },
- { "isearch-terminators", V_STRING, sv_isrchterm },
- { "keymap", V_STRING, sv_keymap },
- { (char *)NULL, 0 }
-};
-
-static int
-find_string_var (name)
- const char *name;
-{
- register int i;
-
- for (i = 0; string_varlist[i].name; i++)
- if (_rl_stricmp (name, string_varlist[i].name) == 0)
- return i;
- return -1;
-}
-
-/* A boolean value that can appear in a `set variable' command is true if
- the value is null or empty, `on' (case-insenstive), or "1". Any other
- values result in 0 (false). */
-static int
-bool_to_int (value)
- char *value;
-{
- return (value == 0 || *value == '\0' ||
- (_rl_stricmp (value, "on") == 0) ||
- (value[0] == '1' && value[1] == '\0'));
-}
-
-int
-rl_variable_bind (name, value)
- const char *name, *value;
-{
- register int i;
- int v;
-
- /* Check for simple variables first. */
- i = find_boolean_var (name);
- if (i >= 0)
- {
- *boolean_varlist[i].value = bool_to_int (value);
- if (boolean_varlist[i].flags & V_SPECIAL)
- hack_special_boolean_var (i);
- return 0;
- }
-
- i = find_string_var (name);
-
- /* For the time being, unknown variable names or string names without a
- handler function are simply ignored. */
- if (i < 0 || string_varlist[i].set_func == 0)
- return 0;
-
- v = (*string_varlist[i].set_func) (value);
- return v;
-}
-
-static int
-sv_editmode (value)
- const char *value;
-{
- if (_rl_strnicmp (value, "vi", 2) == 0)
- {
-#if defined (VI_MODE)
- _rl_keymap = vi_insertion_keymap;
- rl_editing_mode = vi_mode;
-#endif /* VI_MODE */
- return 0;
- }
- else if (_rl_strnicmp (value, "emacs", 5) == 0)
- {
- _rl_keymap = emacs_standard_keymap;
- rl_editing_mode = emacs_mode;
- return 0;
- }
- return 1;
-}
-
-static int
-sv_combegin (value)
- const char *value;
-{
- if (value && *value)
- {
- FREE (_rl_comment_begin);
- _rl_comment_begin = savestring (value);
- return 0;
- }
- return 1;
-}
-
-static int
-sv_compquery (value)
- const char *value;
-{
- int nval = 100;
-
- if (value && *value)
- {
- nval = atoi (value);
- if (nval < 0)
- nval = 0;
- }
- rl_completion_query_items = nval;
- return 0;
-}
-
-static int
-sv_keymap (value)
- const char *value;
-{
- Keymap kmap;
-
- kmap = rl_get_keymap_by_name (value);
- if (kmap)
- {
- rl_set_keymap (kmap);
- return 0;
- }
- return 1;
-}
-
-static int
-sv_bell_style (value)
- const char *value;
-{
- if (value == 0 || *value == '\0')
- _rl_bell_preference = AUDIBLE_BELL;
- else if (_rl_stricmp (value, "none") == 0 || _rl_stricmp (value, "off") == 0)
- _rl_bell_preference = NO_BELL;
- else if (_rl_stricmp (value, "audible") == 0 || _rl_stricmp (value, "on") == 0)
- _rl_bell_preference = AUDIBLE_BELL;
- else if (_rl_stricmp (value, "visible") == 0)
- _rl_bell_preference = VISIBLE_BELL;
- else
- return 1;
- return 0;
-}
-
-static int
-sv_isrchterm (value)
- const char *value;
-{
- int beg, end, delim;
- char *v;
-
- if (value == 0)
- return 1;
-
- /* Isolate the value and translate it into a character string. */
- v = savestring (value);
- FREE (_rl_isearch_terminators);
- if (v[0] == '"' || v[0] == '\'')
- {
- delim = v[0];
- for (beg = end = 1; v[end] && v[end] != delim; end++)
- ;
- }
- else
- {
- for (beg = end = 0; whitespace (v[end]) == 0; end++)
- ;
- }
-
- v[end] = '\0';
-
- /* The value starts at v + beg. Translate it into a character string. */
- _rl_isearch_terminators = (char *)xmalloc (2 * strlen (v) + 1);
- rl_translate_keyseq (v + beg, _rl_isearch_terminators, &end);
- _rl_isearch_terminators[end] = '\0';
-
- free (v);
- return 0;
-}
-
-/* Return the character which matches NAME.
- For example, `Space' returns ' '. */
-
-typedef struct {
- const char *name;
- int value;
-} assoc_list;
-
-static assoc_list name_key_alist[] = {
- { "DEL", 0x7f },
- { "ESC", '\033' },
- { "Escape", '\033' },
- { "LFD", '\n' },
- { "Newline", '\n' },
- { "RET", '\r' },
- { "Return", '\r' },
- { "Rubout", 0x7f },
- { "SPC", ' ' },
- { "Space", ' ' },
- { "Tab", 0x09 },
- { (char *)0x0, 0 }
-};
-
-static int
-glean_key_from_name (name)
- char *name;
-{
- register int i;
-
- for (i = 0; name_key_alist[i].name; i++)
- if (_rl_stricmp (name, name_key_alist[i].name) == 0)
- return (name_key_alist[i].value);
-
- return (*(unsigned char *)name); /* XXX was return (*name) */
-}
-
-/* Auxiliary functions to manage keymaps. */
-static struct {
- const char *name;
- Keymap map;
-} keymap_names[] = {
- { "emacs", emacs_standard_keymap },
- { "emacs-standard", emacs_standard_keymap },
- { "emacs-meta", emacs_meta_keymap },
- { "emacs-ctlx", emacs_ctlx_keymap },
-#if defined (VI_MODE)
- { "vi", vi_movement_keymap },
- { "vi-move", vi_movement_keymap },
- { "vi-command", vi_movement_keymap },
- { "vi-insert", vi_insertion_keymap },
-#endif /* VI_MODE */
- { (char *)0x0, (Keymap)0x0 }
-};
-
-Keymap
-rl_get_keymap_by_name (name)
- const char *name;
-{
- register int i;
-
- for (i = 0; keymap_names[i].name; i++)
- if (_rl_stricmp (name, keymap_names[i].name) == 0)
- return (keymap_names[i].map);
- return ((Keymap) NULL);
-}
-
-char *
-rl_get_keymap_name (map)
- Keymap map;
-{
- register int i;
- for (i = 0; keymap_names[i].name; i++)
- if (map == keymap_names[i].map)
- return ((char *)keymap_names[i].name);
- return ((char *)NULL);
-}
-
-void
-rl_set_keymap (map)
- Keymap map;
-{
- if (map)
- _rl_keymap = map;
-}
-
-Keymap
-rl_get_keymap ()
-{
- return (_rl_keymap);
-}
-
-void
-rl_set_keymap_from_edit_mode ()
-{
- if (rl_editing_mode == emacs_mode)
- _rl_keymap = emacs_standard_keymap;
-#if defined (VI_MODE)
- else if (rl_editing_mode == vi_mode)
- _rl_keymap = vi_insertion_keymap;
-#endif /* VI_MODE */
-}
-
-char *
-rl_get_keymap_name_from_edit_mode ()
-{
- if (rl_editing_mode == emacs_mode)
- return "emacs";
-#if defined (VI_MODE)
- else if (rl_editing_mode == vi_mode)
- return "vi";
-#endif /* VI_MODE */
- else
- return "none";
-}
-
-/* **************************************************************** */
-/* */
-/* Key Binding and Function Information */
-/* */
-/* **************************************************************** */
-
-/* Each of the following functions produces information about the
- state of keybindings and functions known to Readline. The info
- is always printed to rl_outstream, and in such a way that it can
- be read back in (i.e., passed to rl_parse_and_bind (). */
-
-/* Print the names of functions known to Readline. */
-void
-rl_list_funmap_names ()
-{
- register int i;
- const char **funmap_names;
-
- funmap_names = rl_funmap_names ();
-
- if (!funmap_names)
- return;
-
- for (i = 0; funmap_names[i]; i++)
- fprintf (rl_outstream, "%s\n", funmap_names[i]);
-
- free (funmap_names);
-}
-
-static char *
-_rl_get_keyname (key)
- int key;
-{
- char *keyname;
- int i, c;
-
- keyname = (char *)xmalloc (8);
-
- c = key;
- /* Since this is going to be used to write out keysequence-function
- pairs for possible inclusion in an inputrc file, we don't want to
- do any special meta processing on KEY. */
-
-#if 1
- /* XXX - Experimental */
- /* We might want to do this, but the old version of the code did not. */
-
- /* If this is an escape character, we don't want to do any more processing.
- Just add the special ESC key sequence and return. */
- if (c == ESC)
- {
- keyname[0] = '\\';
- keyname[1] = 'e';
- keyname[2] = '\0';
- return keyname;
- }
-#endif
-
- /* RUBOUT is translated directly into \C-? */
- if (key == RUBOUT)
- {
- keyname[0] = '\\';
- keyname[1] = 'C';
- keyname[2] = '-';
- keyname[3] = '?';
- keyname[4] = '\0';
- return keyname;
- }
-
- i = 0;
- /* Now add special prefixes needed for control characters. This can
- potentially change C. */
- if (CTRL_CHAR (c))
- {
- keyname[i++] = '\\';
- keyname[i++] = 'C';
- keyname[i++] = '-';
- c = _rl_to_lower (UNCTRL (c));
- }
-
- /* XXX experimental code. Turn the characters that are not ASCII or
- ISO Latin 1 (128 - 159) into octal escape sequences (\200 - \237).
- This changes C. */
- if (c >= 128 && c <= 159)
- {
- keyname[i++] = '\\';
- keyname[i++] = '2';
- c -= 128;
- keyname[i++] = (c / 8) + '0';
- c = (c % 8) + '0';
- }
-
- /* Now, if the character needs to be quoted with a backslash, do that. */
- if (c == '\\' || c == '"')
- keyname[i++] = '\\';
-
- /* Now add the key, terminate the string, and return it. */
- keyname[i++] = (char) c;
- keyname[i] = '\0';
-
- return keyname;
-}
-
-/* Return a NULL terminated array of strings which represent the key
- sequences that are used to invoke FUNCTION in MAP. */
-char **
-rl_invoking_keyseqs_in_map (function, map)
- rl_command_func_t *function;
- Keymap map;
-{
- register int key;
- char **result;
- int result_index, result_size;
-
- result = (char **)NULL;
- result_index = result_size = 0;
-
- for (key = 0; key < KEYMAP_SIZE; key++)
- {
- switch (map[key].type)
- {
- case ISMACR:
- /* Macros match, if, and only if, the pointers are identical.
- Thus, they are treated exactly like functions in here. */
- case ISFUNC:
- /* If the function in the keymap is the one we are looking for,
- then add the current KEY to the list of invoking keys. */
- if (map[key].function == function)
- {
- char *keyname;
-
- keyname = _rl_get_keyname (key);
-
- if (result_index + 2 > result_size)
- {
- result_size += 10;
- result = (char **)xrealloc (result, result_size * sizeof (char *));
- }
-
- result[result_index++] = keyname;
- result[result_index] = (char *)NULL;
- }
- break;
-
- case ISKMAP:
- {
- char **seqs;
- register int i;
-
- /* Find the list of keyseqs in this map which have FUNCTION as
- their target. Add the key sequences found to RESULT. */
- if (map[key].function)
- seqs =
- rl_invoking_keyseqs_in_map (function, FUNCTION_TO_KEYMAP (map, key));
- else
- break;
-
- if (seqs == 0)
- break;
-
- for (i = 0; seqs[i]; i++)
- {
- char *keyname = (char *)xmalloc (6 + strlen (seqs[i]));
-
- if (key == ESC)
-#if 0
- sprintf (keyname, "\\e");
-#else
- /* XXX - experimental */
- sprintf (keyname, "\\M-");
-#endif
- else if (CTRL_CHAR (key))
- sprintf (keyname, "\\C-%c", _rl_to_lower (UNCTRL (key)));
- else if (key == RUBOUT)
- sprintf (keyname, "\\C-?");
- else if (key == '\\' || key == '"')
- {
- keyname[0] = '\\';
- keyname[1] = (char) key;
- keyname[2] = '\0';
- }
- else
- {
- keyname[0] = (char) key;
- keyname[1] = '\0';
- }
-
- strcat (keyname, seqs[i]);
- free (seqs[i]);
-
- if (result_index + 2 > result_size)
- {
- result_size += 10;
- result = (char **)xrealloc (result, result_size * sizeof (char *));
- }
-
- result[result_index++] = keyname;
- result[result_index] = (char *)NULL;
- }
-
- free (seqs);
- }
- break;
- }
- }
- return (result);
-}
-
-/* Return a NULL terminated array of strings which represent the key
- sequences that can be used to invoke FUNCTION using the current keymap. */
-char **
-rl_invoking_keyseqs (function)
- rl_command_func_t *function;
-{
- return (rl_invoking_keyseqs_in_map (function, _rl_keymap));
-}
-
-/* Print all of the functions and their bindings to rl_outstream. If
- PRINT_READABLY is non-zero, then print the output in such a way
- that it can be read back in. */
-void
-rl_function_dumper (print_readably)
- int print_readably;
-{
- register int i;
- const char **names;
- const char *name;
-
- names = rl_funmap_names ();
-
- fprintf (rl_outstream, "\n");
-
- for (i = 0; name = names[i]; i++)
- {
- rl_command_func_t *function;
- char **invokers;
-
- function = rl_named_function (name);
- invokers = rl_invoking_keyseqs_in_map (function, _rl_keymap);
-
- if (print_readably)
- {
- if (!invokers)
- fprintf (rl_outstream, "# %s (not bound)\n", name);
- else
- {
- register int j;
-
- for (j = 0; invokers[j]; j++)
- {
- fprintf (rl_outstream, "\"%s\": %s\n",
- invokers[j], name);
- free (invokers[j]);
- }
-
- free (invokers);
- }
- }
- else
- {
- if (!invokers)
- fprintf (rl_outstream, "%s is not bound to any keys\n",
- name);
- else
- {
- register int j;
-
- fprintf (rl_outstream, "%s can be found on ", name);
-
- for (j = 0; invokers[j] && j < 5; j++)
- {
- fprintf (rl_outstream, "\"%s\"%s", invokers[j],
- invokers[j + 1] ? ", " : ".\n");
- }
-
- if (j == 5 && invokers[j])
- fprintf (rl_outstream, "...\n");
-
- for (j = 0; invokers[j]; j++)
- free (invokers[j]);
-
- free (invokers);
- }
- }
- }
-}
-
-/* Print all of the current functions and their bindings to
- rl_outstream. If an explicit argument is given, then print
- the output in such a way that it can be read back in. */
-int
-rl_dump_functions (count, key)
- int count, key;
-{
- if (rl_dispatching)
- fprintf (rl_outstream, "\r\n");
- rl_function_dumper (rl_explicit_arg);
- rl_on_new_line ();
- return (0);
-}
-
-static void
-_rl_macro_dumper_internal (print_readably, map, prefix)
- int print_readably;
- Keymap map;
- char *prefix;
-{
- register int key;
- char *keyname, *out;
- int prefix_len;
-
- for (key = 0; key < KEYMAP_SIZE; key++)
- {
- switch (map[key].type)
- {
- case ISMACR:
- keyname = _rl_get_keyname (key);
- out = _rl_untranslate_macro_value ((char *)map[key].function);
-
- if (print_readably)
- fprintf (rl_outstream, "\"%s%s\": \"%s\"\n", prefix ? prefix : "",
- keyname,
- out ? out : "");
- else
- fprintf (rl_outstream, "%s%s outputs %s\n", prefix ? prefix : "",
- keyname,
- out ? out : "");
- free (keyname);
- free (out);
- break;
- case ISFUNC:
- break;
- case ISKMAP:
- prefix_len = prefix ? strlen (prefix) : 0;
- if (key == ESC)
- {
- keyname = (char *)xmalloc (3 + prefix_len);
- if (prefix)
- strcpy (keyname, prefix);
- keyname[prefix_len] = '\\';
- keyname[prefix_len + 1] = 'e';
- keyname[prefix_len + 2] = '\0';
- }
- else
- {
- keyname = _rl_get_keyname (key);
- if (prefix)
- {
- out = (char *)xmalloc (strlen (keyname) + prefix_len + 1);
- strcpy (out, prefix);
- strcpy (out + prefix_len, keyname);
- free (keyname);
- keyname = out;
- }
- }
-
- _rl_macro_dumper_internal (print_readably, FUNCTION_TO_KEYMAP (map, key), keyname);
- free (keyname);
- break;
- }
- }
-}
-
-void
-rl_macro_dumper (print_readably)
- int print_readably;
-{
- _rl_macro_dumper_internal (print_readably, _rl_keymap, (char *)NULL);
-}
-
-int
-rl_dump_macros (count, key)
- int count, key;
-{
- if (rl_dispatching)
- fprintf (rl_outstream, "\r\n");
- rl_macro_dumper (rl_explicit_arg);
- rl_on_new_line ();
- return (0);
-}
-
-void
-rl_variable_dumper (print_readably)
- int print_readably;
-{
- int i;
- const char *kname;
-
- for (i = 0; boolean_varlist[i].name; i++)
- {
- if (print_readably)
- fprintf (rl_outstream, "set %s %s\n", boolean_varlist[i].name,
- *boolean_varlist[i].value ? "on" : "off");
- else
- fprintf (rl_outstream, "%s is set to `%s'\n", boolean_varlist[i].name,
- *boolean_varlist[i].value ? "on" : "off");
- }
-
- /* bell-style */
- switch (_rl_bell_preference)
- {
- case NO_BELL:
- kname = "none"; break;
- case VISIBLE_BELL:
- kname = "visible"; break;
- case AUDIBLE_BELL:
- default:
- kname = "audible"; break;
- }
- if (print_readably)
- fprintf (rl_outstream, "set bell-style %s\n", kname);
- else
- fprintf (rl_outstream, "bell-style is set to `%s'\n", kname);
-
- /* comment-begin */
- if (print_readably)
- fprintf (rl_outstream, "set comment-begin %s\n", _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT);
- else
- fprintf (rl_outstream, "comment-begin is set to `%s'\n", _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT);
-
- /* completion-query-items */
- if (print_readably)
- fprintf (rl_outstream, "set completion-query-items %d\n", rl_completion_query_items);
- else
- fprintf (rl_outstream, "completion-query-items is set to `%d'\n", rl_completion_query_items);
-
- /* editing-mode */
- if (print_readably)
- fprintf (rl_outstream, "set editing-mode %s\n", (rl_editing_mode == emacs_mode) ? "emacs" : "vi");
- else
- fprintf (rl_outstream, "editing-mode is set to `%s'\n", (rl_editing_mode == emacs_mode) ? "emacs" : "vi");
-
- /* isearch-terminators */
- if (_rl_isearch_terminators)
- {
- char *disp;
-
- disp = _rl_untranslate_macro_value (_rl_isearch_terminators);
-
- if (print_readably)
- fprintf (rl_outstream, "set isearch-terminators \"%s\"\n", disp);
- else
- fprintf (rl_outstream, "isearch-terminators is set to \"%s\"\n", disp);
-
- free (disp);
- }
-
- /* keymap */
- kname = rl_get_keymap_name (_rl_keymap);
- if (kname == 0)
- kname = rl_get_keymap_name_from_edit_mode ();
- if (print_readably)
- fprintf (rl_outstream, "set keymap %s\n", kname ? kname : "none");
- else
- fprintf (rl_outstream, "keymap is set to `%s'\n", kname ? kname : "none");
-}
-
-/* Print all of the current variables and their values to
- rl_outstream. If an explicit argument is given, then print
- the output in such a way that it can be read back in. */
-int
-rl_dump_variables (count, key)
- int count, key;
-{
- if (rl_dispatching)
- fprintf (rl_outstream, "\r\n");
- rl_variable_dumper (rl_explicit_arg);
- rl_on_new_line ();
- return (0);
-}
-
-/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right
- now, this is always used to attempt to bind the arrow keys, hence the
- check for rl_vi_movement_mode. */
-void
-_rl_bind_if_unbound (keyseq, default_func)
- const char *keyseq;
- rl_command_func_t *default_func;
-{
- rl_command_func_t *func;
-
- if (keyseq)
- {
- func = rl_function_of_keyseq (keyseq, _rl_keymap, (int *)NULL);
-#if defined (VI_MODE)
- if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode)
-#else
- if (!func || func == rl_do_lowercase_version)
-#endif
- rl_set_key (keyseq, default_func, _rl_keymap);
- }
-}
-
-/* Return non-zero if any members of ARRAY are a substring in STRING. */
-static int
-substring_member_of_array (string, array)
- char *string;
- const char **array;
-{
- while (*array)
- {
- if (_rl_strindex (string, *array))
- return (1);
- array++;
- }
- return (0);
-}
diff --git a/readline-4.3/callback.c b/readline-4.3/callback.c
deleted file mode 100644
index a8f4323..0000000
--- a/readline-4.3/callback.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* callback.c -- functions to use readline as an X `callback' mechanism. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include "rlconf.h"
-
-#if defined (READLINE_CALLBACKS)
-
-#include <sys/types.h>
-
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "readline.h"
-#include "rlprivate.h"
-
-/* **************************************************************** */
-/* */
-/* Callback Readline Functions */
-/* */
-/* **************************************************************** */
-
-/* Allow using readline in situations where a program may have multiple
- things to handle at once, and dispatches them via select(). Call
- rl_callback_handler_install() with the prompt and a function to call
- whenever a complete line of input is ready. The user must then
- call rl_callback_read_char() every time some input is available, and
- rl_callback_read_char() will call the user's function with the complete
- text read in at each end of line. The terminal is kept prepped and
- signals handled all the time, except during calls to the user's function. */
-
-rl_vcpfunc_t *rl_linefunc; /* user callback function */
-static int in_handler; /* terminal_prepped and signals set? */
-
-/* Make sure the terminal is set up, initialize readline, and prompt. */
-static void
-_rl_callback_newline ()
-{
- rl_initialize ();
-
- if (in_handler == 0)
- {
- in_handler = 1;
-
- (*rl_prep_term_function) (_rl_meta_flag);
-
-#if defined (HANDLE_SIGNALS)
- rl_set_signals ();
-#endif
- }
-
- readline_internal_setup ();
-}
-
-/* Install a readline handler, set up the terminal, and issue the prompt. */
-void
-rl_callback_handler_install (prompt, linefunc)
- const char *prompt;
- rl_vcpfunc_t *linefunc;
-{
- rl_set_prompt (prompt);
- rl_linefunc = linefunc;
- _rl_callback_newline ();
-}
-
-/* Read one character, and dispatch to the handler if it ends the line. */
-void
-rl_callback_read_char ()
-{
- char *line;
- int eof;
-
- if (rl_linefunc == NULL)
- {
- fprintf (stderr, "readline: readline_callback_read_char() called with no handler!\r\n");
- abort ();
- }
-
- eof = readline_internal_char ();
-
- /* We loop in case some function has pushed input back with rl_execute_next. */
- for (;;)
- {
- if (rl_done)
- {
- line = readline_internal_teardown (eof);
-
- (*rl_deprep_term_function) ();
-#if defined (HANDLE_SIGNALS)
- rl_clear_signals ();
-#endif
- in_handler = 0;
- (*rl_linefunc) (line);
-
- /* If the user did not clear out the line, do it for him. */
- if (rl_line_buffer[0])
- _rl_init_line_state ();
-
- /* Redisplay the prompt if readline_handler_{install,remove}
- not called. */
- if (in_handler == 0 && rl_linefunc)
- _rl_callback_newline ();
- }
- if (rl_pending_input)
- eof = readline_internal_char ();
- else
- break;
- }
-}
-
-/* Remove the handler, and make sure the terminal is in its normal state. */
-void
-rl_callback_handler_remove ()
-{
- rl_linefunc = NULL;
- if (in_handler)
- {
- in_handler = 0;
- (*rl_deprep_term_function) ();
-#if defined (HANDLE_SIGNALS)
- rl_clear_signals ();
-#endif
- }
-}
-
-#endif
diff --git a/readline-4.3/chardefs.h b/readline-4.3/chardefs.h
deleted file mode 100644
index a537be2..0000000
--- a/readline-4.3/chardefs.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/* chardefs.h -- Character definitions for readline. */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _CHARDEFS_H_
-#define _CHARDEFS_H_
-
-#include <ctype.h>
-
-#if defined (HAVE_CONFIG_H)
-# if defined (HAVE_STRING_H)
-# if ! defined (STDC_HEADERS) && defined (HAVE_MEMORY_H)
-# include <memory.h>
-# endif
-# include <string.h>
-# endif /* HAVE_STRING_H */
-# if defined (HAVE_STRINGS_H)
-# include <strings.h>
-# endif /* HAVE_STRINGS_H */
-#else
-# include <string.h>
-#endif /* !HAVE_CONFIG_H */
-
-#ifndef whitespace
-#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
-#endif
-
-#ifdef CTRL
-# undef CTRL
-#endif
-#ifdef UNCTRL
-# undef UNCTRL
-#endif
-
-/* Some character stuff. */
-#define control_character_threshold 0x020 /* Smaller than this is control. */
-#define control_character_mask 0x1f /* 0x20 - 1 */
-#define meta_character_threshold 0x07f /* Larger than this is Meta. */
-#define control_character_bit 0x40 /* 0x000000, must be off. */
-#define meta_character_bit 0x080 /* x0000000, must be on. */
-#define largest_char 255 /* Largest character value. */
-
-#define CTRL_CHAR(c) ((c) < control_character_threshold && (((c) & 0x80) == 0))
-#define META_CHAR(c) ((c) > meta_character_threshold && (c) <= largest_char)
-
-#define CTRL(c) ((c) & control_character_mask)
-#define META(c) ((c) | meta_character_bit)
-
-#define UNMETA(c) ((c) & (~meta_character_bit))
-#define UNCTRL(c) _rl_to_upper(((c)|control_character_bit))
-
-#if defined STDC_HEADERS || (!defined (isascii) && !defined (HAVE_ISASCII))
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) isascii(c)
-#endif
-
-#if !defined (isxdigit) && !defined (HAVE_ISXDIGIT)
-# define isxdigit(c) (isdigit((c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
-#endif
-
-#define NON_NEGATIVE(c) ((unsigned char)(c) == (c))
-
-/* Some systems define these; we want our definitions. */
-#undef ISPRINT
-
-#define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c))
-#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c))
-#define ISDIGIT(c) (IN_CTYPE_DOMAIN (c) && isdigit (c))
-#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (c))
-#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
-#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c))
-#define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (c))
-
-#define _rl_lowercase_p(c) (NON_NEGATIVE(c) && ISLOWER(c))
-#define _rl_uppercase_p(c) (NON_NEGATIVE(c) && ISUPPER(c))
-#define _rl_digit_p(c) ((c) >= '0' && (c) <= '9')
-
-#define _rl_pure_alphabetic(c) (NON_NEGATIVE(c) && ISALPHA(c))
-#define ALPHABETIC(c) (NON_NEGATIVE(c) && ISALNUM(c))
-
-#ifndef _rl_to_upper
-# define _rl_to_upper(c) (_rl_lowercase_p(c) ? toupper((unsigned char)c) : (c))
-# define _rl_to_lower(c) (_rl_uppercase_p(c) ? tolower((unsigned char)c) : (c))
-#endif
-
-#ifndef _rl_digit_value
-# define _rl_digit_value(x) ((x) - '0')
-#endif
-
-#ifndef _rl_isident
-# define _rl_isident(c) (ISALNUM(c) || (c) == '_')
-#endif
-
-#ifndef ISOCTAL
-# define ISOCTAL(c) ((c) >= '0' && (c) <= '7')
-#endif
-#define OCTVALUE(c) ((c) - '0')
-
-#define HEXVALUE(c) \
- (((c) >= 'a' && (c) <= 'f') \
- ? (c)-'a'+10 \
- : (c) >= 'A' && (c) <= 'F' ? (c)-'A'+10 : (c)-'0')
-
-#ifndef NEWLINE
-#define NEWLINE '\n'
-#endif
-
-#ifndef RETURN
-#define RETURN CTRL('M')
-#endif
-
-#ifndef RUBOUT
-#define RUBOUT 0x7f
-#endif
-
-#ifndef TAB
-#define TAB '\t'
-#endif
-
-#ifdef ABORT_CHAR
-#undef ABORT_CHAR
-#endif
-#define ABORT_CHAR CTRL('G')
-
-#ifdef PAGE
-#undef PAGE
-#endif
-#define PAGE CTRL('L')
-
-#ifdef SPACE
-#undef SPACE
-#endif
-#define SPACE ' ' /* XXX - was 0x20 */
-
-#ifdef ESC
-#undef ESC
-#endif
-#define ESC CTRL('[')
-
-#endif /* _CHARDEFS_H_ */
diff --git a/readline-4.3/compat.c b/readline-4.3/compat.c
deleted file mode 100644
index a66d210..0000000
--- a/readline-4.3/compat.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* compat.c -- backwards compatibility functions. */
-
-/* Copyright (C) 2000 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#include "rlstdc.h"
-#include "rltypedefs.h"
-
-extern void rl_free_undo_list PARAMS((void));
-extern int rl_maybe_save_line PARAMS((void));
-extern int rl_maybe_unsave_line PARAMS((void));
-extern int rl_maybe_replace_line PARAMS((void));
-
-extern int rl_crlf PARAMS((void));
-extern int rl_ding PARAMS((void));
-extern int rl_alphabetic PARAMS((int));
-
-extern char **rl_completion_matches PARAMS((const char *, rl_compentry_func_t *));
-extern char *rl_username_completion_function PARAMS((const char *, int));
-extern char *rl_filename_completion_function PARAMS((const char *, int));
-
-/* Provide backwards-compatible entry points for old function names. */
-
-void
-free_undo_list ()
-{
- rl_free_undo_list ();
-}
-
-int
-maybe_replace_line ()
-{
- return rl_maybe_replace_line ();
-}
-
-int
-maybe_save_line ()
-{
- return rl_maybe_save_line ();
-}
-
-int
-maybe_unsave_line ()
-{
- return rl_maybe_unsave_line ();
-}
-
-int
-ding ()
-{
- return rl_ding ();
-}
-
-int
-crlf ()
-{
- return rl_crlf ();
-}
-
-int
-alphabetic (c)
- int c;
-{
- return rl_alphabetic (c);
-}
-
-char **
-completion_matches (s, f)
- const char *s;
- rl_compentry_func_t *f;
-{
- return rl_completion_matches (s, f);
-}
-
-char *
-username_completion_function (s, i)
- const char *s;
- int i;
-{
- return rl_username_completion_function (s, i);
-}
-
-char *
-filename_completion_function (s, i)
- const char *s;
- int i;
-{
- return rl_filename_completion_function (s, i);
-}
diff --git a/readline-4.3/complete.c b/readline-4.3/complete.c
deleted file mode 100644
index 21a9d70..0000000
--- a/readline-4.3/complete.c
+++ /dev/null
@@ -1,2004 +0,0 @@
-/* complete.c -- filename completion for readline. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-#include <sys/file.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-#include <errno.h>
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-#include <pwd.h>
-
-#include "posixdir.h"
-#include "posixstat.h"
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "xmalloc.h"
-#include "rlprivate.h"
-
-#ifdef __STDC__
-typedef int QSFUNC (const void *, const void *);
-#else
-typedef int QSFUNC ();
-#endif
-
-#ifdef HAVE_LSTAT
-# define LSTAT lstat
-#else
-# define LSTAT stat
-#endif
-
-/* Unix version of a hidden file. Could be different on other systems. */
-#define HIDDEN_FILE(fname) ((fname)[0] == '.')
-
-/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
- defined. */
-#if !defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE)
-extern struct passwd *getpwent PARAMS((void));
-#endif /* !HAVE_GETPW_DECLS || _POSIX_SOURCE */
-
-/* If non-zero, then this is the address of a function to call when
- completing a word would normally display the list of possible matches.
- This function is called instead of actually doing the display.
- It takes three arguments: (char **matches, int num_matches, int max_length)
- where MATCHES is the array of strings that matched, NUM_MATCHES is the
- number of strings in that array, and MAX_LENGTH is the length of the
- longest string in that array. */
-rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;
-
-#if defined (VISIBLE_STATS)
-# if !defined (X_OK)
-# define X_OK 1
-# endif
-static int stat_char PARAMS((char *));
-#endif
-
-static char *rl_quote_filename PARAMS((char *, int, char *));
-
-static void set_completion_defaults PARAMS((int));
-static int get_y_or_n PARAMS((int));
-static int _rl_internal_pager PARAMS((int));
-static char *printable_part PARAMS((char *));
-static int print_filename PARAMS((char *, char *));
-
-static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));
-
-static char **remove_duplicate_matches PARAMS((char **));
-static void insert_match PARAMS((char *, int, int, char *));
-static int append_to_match PARAMS((char *, int, int, int));
-static void insert_all_matches PARAMS((char **, int, char *));
-static void display_matches PARAMS((char **));
-static int compute_lcd_of_matches PARAMS((char **, int, const char *));
-static int postprocess_matches PARAMS((char ***, int));
-
-static char *make_quoted_replacement PARAMS((char *, int, char *));
-
-/* **************************************************************** */
-/* */
-/* Completion matching, from readline's point of view. */
-/* */
-/* **************************************************************** */
-
-/* Variables known only to the readline library. */
-
-/* If non-zero, non-unique completions always show the list of matches. */
-int _rl_complete_show_all = 0;
-
-/* If non-zero, completed directory names have a slash appended. */
-int _rl_complete_mark_directories = 1;
-
-/* If non-zero, the symlinked directory completion behavior introduced in
- readline-4.2a is disabled, and symlinks that point to directories have
- a slash appended (subject to the value of _rl_complete_mark_directories).
- This is user-settable via the mark-symlinked-directories variable. */
-int _rl_complete_mark_symlink_dirs = 0;
-
-/* If non-zero, completions are printed horizontally in alphabetical order,
- like `ls -x'. */
-int _rl_print_completions_horizontally;
-
-/* Non-zero means that case is not significant in filename completion. */
-#if defined (__MSDOS__) && !defined (__DJGPP__)
-int _rl_completion_case_fold = 1;
-#else
-int _rl_completion_case_fold;
-#endif
-
-/* If non-zero, don't match hidden files (filenames beginning with a `.' on
- Unix) when doing filename completion. */
-int _rl_match_hidden_files = 1;
-
-/* Global variables available to applications using readline. */
-
-#if defined (VISIBLE_STATS)
-/* Non-zero means add an additional character to each filename displayed
- during listing completion iff rl_filename_completion_desired which helps
- to indicate the type of file being listed. */
-int rl_visible_stats = 0;
-#endif /* VISIBLE_STATS */
-
-/* If non-zero, then this is the address of a function to call when
- completing on a directory name. The function is called with
- the address of a string (the current directory name) as an arg. */
-rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
-
-rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
-
-/* Non-zero means readline completion functions perform tilde expansion. */
-int rl_complete_with_tilde_expansion = 0;
-
-/* Pointer to the generator function for completion_matches ().
- NULL means to use rl_filename_completion_function (), the default filename
- completer. */
-rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL;
-
-/* Pointer to alternative function to create matches.
- Function is called with TEXT, START, and END.
- START and END are indices in RL_LINE_BUFFER saying what the boundaries
- of TEXT are.
- If this function exists and returns NULL then call the value of
- rl_completion_entry_function to try to match, otherwise use the
- array of strings returned. */
-rl_completion_func_t *rl_attempted_completion_function = (rl_completion_func_t *)NULL;
-
-/* Non-zero means to suppress normal filename completion after the
- user-specified completion function has been called. */
-int rl_attempted_completion_over = 0;
-
-/* Set to a character indicating the type of completion being performed
- by rl_complete_internal, available for use by application completion
- functions. */
-int rl_completion_type = 0;
-
-/* Up to this many items will be displayed in response to a
- possible-completions call. After that, we ask the user if
- she is sure she wants to see them all. */
-int rl_completion_query_items = 100;
-
-int _rl_page_completions = 1;
-
-/* The basic list of characters that signal a break between words for the
- completer routine. The contents of this variable is what breaks words
- in the shell, i.e. " \t\n\"\\'`@$><=" */
-const char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{("; /* }) */
-
-/* List of basic quoting characters. */
-const char *rl_basic_quote_characters = "\"'";
-
-/* The list of characters that signal a break between words for
- rl_complete_internal. The default list is the contents of
- rl_basic_word_break_characters. */
-const char *rl_completer_word_break_characters = (const char *)NULL;
-
-/* List of characters which can be used to quote a substring of the line.
- Completion occurs on the entire substring, and within the substring
- rl_completer_word_break_characters are treated as any other character,
- unless they also appear within this list. */
-const char *rl_completer_quote_characters = (const char *)NULL;
-
-/* List of characters that should be quoted in filenames by the completer. */
-const char *rl_filename_quote_characters = (const char *)NULL;
-
-/* List of characters that are word break characters, but should be left
- in TEXT when it is passed to the completion function. The shell uses
- this to help determine what kind of completing to do. */
-const char *rl_special_prefixes = (const char *)NULL;
-
-/* If non-zero, then disallow duplicates in the matches. */
-int rl_ignore_completion_duplicates = 1;
-
-/* Non-zero means that the results of the matches are to be treated
- as filenames. This is ALWAYS zero on entry, and can only be changed
- within a completion entry finder function. */
-int rl_filename_completion_desired = 0;
-
-/* Non-zero means that the results of the matches are to be quoted using
- double quotes (or an application-specific quoting mechanism) if the
- filename contains any characters in rl_filename_quote_chars. This is
- ALWAYS non-zero on entry, and can only be changed within a completion
- entry finder function. */
-int rl_filename_quoting_desired = 1;
-
-/* This function, if defined, is called by the completer when real
- filename completion is done, after all the matching names have been
- generated. It is passed a (char**) known as matches in the code below.
- It consists of a NULL-terminated array of pointers to potential
- matching strings. The 1st element (matches[0]) is the maximal
- substring that is common to all matches. This function can re-arrange
- the list of matches as required, but all elements of the array must be
- free()'d if they are deleted. The main intent of this function is
- to implement FIGNORE a la SunOS csh. */
-rl_compignore_func_t *rl_ignore_some_completions_function = (rl_compignore_func_t *)NULL;
-
-/* Set to a function to quote a filename in an application-specific fashion.
- Called with the text to quote, the type of match found (single or multiple)
- and a pointer to the quoting character to be used, which the function can
- reset if desired. */
-rl_quote_func_t *rl_filename_quoting_function = rl_quote_filename;
-
-/* Function to call to remove quoting characters from a filename. Called
- before completion is attempted, so the embedded quotes do not interfere
- with matching names in the file system. Readline doesn't do anything
- with this; it's set only by applications. */
-rl_dequote_func_t *rl_filename_dequoting_function = (rl_dequote_func_t *)NULL;
-
-/* Function to call to decide whether or not a word break character is
- quoted. If a character is quoted, it does not break words for the
- completer. */
-rl_linebuf_func_t *rl_char_is_quoted_p = (rl_linebuf_func_t *)NULL;
-
-/* If non-zero, the completion functions don't append anything except a
- possible closing quote. This is set to 0 by rl_complete_internal and
- may be changed by an application-specific completion function. */
-int rl_completion_suppress_append = 0;
-
-/* Character appended to completed words when at the end of the line. The
- default is a space. */
-int rl_completion_append_character = ' ';
-
-/* If non-zero, a slash will be appended to completed filenames that are
- symbolic links to directory names, subject to the value of the
- mark-directories variable (which is user-settable). This exists so
- that application completion functions can override the user's preference
- (set via the mark-symlinked-directories variable) if appropriate.
- It's set to the value of _rl_complete_mark_symlink_dirs in
- rl_complete_internal before any application-specific completion
- function is called, so without that function doing anything, the user's
- preferences are honored. */
-int rl_completion_mark_symlink_dirs;
-
-/* If non-zero, inhibit completion (temporarily). */
-int rl_inhibit_completion;
-
-/* Variables local to this file. */
-
-/* Local variable states what happened during the last completion attempt. */
-static int completion_changed_buffer;
-
-/*************************************/
-/* */
-/* Bindable completion functions */
-/* */
-/*************************************/
-
-/* Complete the word at or before point. You have supplied the function
- that does the initial simple matching selection algorithm (see
- rl_completion_matches ()). The default is to do filename completion. */
-int
-rl_complete (ignore, invoking_key)
- int ignore, invoking_key;
-{
- if (rl_inhibit_completion)
- return (_rl_insert_char (ignore, invoking_key));
- else if (rl_last_func == rl_complete && !completion_changed_buffer)
- return (rl_complete_internal ('?'));
- else if (_rl_complete_show_all)
- return (rl_complete_internal ('!'));
- else
- return (rl_complete_internal (TAB));
-}
-
-/* List the possible completions. See description of rl_complete (). */
-int
-rl_possible_completions (ignore, invoking_key)
- int ignore, invoking_key;
-{
- return (rl_complete_internal ('?'));
-}
-
-int
-rl_insert_completions (ignore, invoking_key)
- int ignore, invoking_key;
-{
- return (rl_complete_internal ('*'));
-}
-
-/* Return the correct value to pass to rl_complete_internal performing
- the same tests as rl_complete. This allows consecutive calls to an
- application's completion function to list possible completions and for
- an application-specific completion function to honor the
- show-all-if-ambiguous readline variable. */
-int
-rl_completion_mode (cfunc)
- rl_command_func_t *cfunc;
-{
- if (rl_last_func == cfunc && !completion_changed_buffer)
- return '?';
- else if (_rl_complete_show_all)
- return '!';
- else
- return TAB;
-}
-
-/************************************/
-/* */
-/* Completion utility functions */
-/* */
-/************************************/
-
-/* Set default values for readline word completion. These are the variables
- that application completion functions can change or inspect. */
-static void
-set_completion_defaults (what_to_do)
- int what_to_do;
-{
- /* Only the completion entry function can change these. */
- rl_filename_completion_desired = 0;
- rl_filename_quoting_desired = 1;
- rl_completion_type = what_to_do;
- rl_completion_suppress_append = 0;
-
- /* The completion entry function may optionally change this. */
- rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
-}
-
-/* The user must press "y" or "n". Non-zero return means "y" pressed. */
-static int
-get_y_or_n (for_pager)
- int for_pager;
-{
- int c;
-
- for (;;)
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (c == 'y' || c == 'Y' || c == ' ')
- return (1);
- if (c == 'n' || c == 'N' || c == RUBOUT)
- return (0);
- if (c == ABORT_CHAR)
- _rl_abort_internal ();
- if (for_pager && (c == NEWLINE || c == RETURN))
- return (2);
- if (for_pager && (c == 'q' || c == 'Q'))
- return (0);
- rl_ding ();
- }
-}
-
-static int
-_rl_internal_pager (lines)
- int lines;
-{
- int i;
-
- fprintf (rl_outstream, "--More--");
- fflush (rl_outstream);
- i = get_y_or_n (1);
- _rl_erase_entire_line ();
- if (i == 0)
- return -1;
- else if (i == 2)
- return (lines - 1);
- else
- return 0;
-}
-
-#if defined (VISIBLE_STATS)
-/* Return the character which best describes FILENAME.
- `@' for symbolic links
- `/' for directories
- `*' for executables
- `=' for sockets
- `|' for FIFOs
- `%' for character special devices
- `#' for block special devices */
-static int
-stat_char (filename)
- char *filename;
-{
- struct stat finfo;
- int character, r;
-
-#if defined (HAVE_LSTAT) && defined (S_ISLNK)
- r = lstat (filename, &finfo);
-#else
- r = stat (filename, &finfo);
-#endif
-
- if (r == -1)
- return (0);
-
- character = 0;
- if (S_ISDIR (finfo.st_mode))
- character = '/';
-#if defined (S_ISCHR)
- else if (S_ISCHR (finfo.st_mode))
- character = '%';
-#endif /* S_ISCHR */
-#if defined (S_ISBLK)
- else if (S_ISBLK (finfo.st_mode))
- character = '#';
-#endif /* S_ISBLK */
-#if defined (S_ISLNK)
- else if (S_ISLNK (finfo.st_mode))
- character = '@';
-#endif /* S_ISLNK */
-#if defined (S_ISSOCK)
- else if (S_ISSOCK (finfo.st_mode))
- character = '=';
-#endif /* S_ISSOCK */
-#if defined (S_ISFIFO)
- else if (S_ISFIFO (finfo.st_mode))
- character = '|';
-#endif
- else if (S_ISREG (finfo.st_mode))
- {
- if (access (filename, X_OK) == 0)
- character = '*';
- }
- return (character);
-}
-#endif /* VISIBLE_STATS */
-
-/* Return the portion of PATHNAME that should be output when listing
- possible completions. If we are hacking filename completion, we
- are only interested in the basename, the portion following the
- final slash. Otherwise, we return what we were passed. Since
- printing empty strings is not very informative, if we're doing
- filename completion, and the basename is the empty string, we look
- for the previous slash and return the portion following that. If
- there's no previous slash, we just return what we were passed. */
-static char *
-printable_part (pathname)
- char *pathname;
-{
- char *temp, *x;
-
- if (rl_filename_completion_desired == 0) /* don't need to do anything */
- return (pathname);
-
- temp = strrchr (pathname, '/');
-#if defined (__MSDOS__)
- if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
- temp = pathname + 1;
-#endif
-
- if (temp == 0 || *temp == '\0')
- return (pathname);
- /* If the basename is NULL, we might have a pathname like '/usr/src/'.
- Look for a previous slash and, if one is found, return the portion
- following that slash. If there's no previous slash, just return the
- pathname we were passed. */
- else if (temp[1] == '\0')
- {
- for (x = temp - 1; x > pathname; x--)
- if (*x == '/')
- break;
- return ((*x == '/') ? x + 1 : pathname);
- }
- else
- return ++temp;
-}
-
-/* Output TO_PRINT to rl_outstream. If VISIBLE_STATS is defined and we
- are using it, check for and output a single character for `special'
- filenames. Return the number of characters we output. */
-
-#define PUTX(c) \
- do { \
- if (CTRL_CHAR (c)) \
- { \
- putc ('^', rl_outstream); \
- putc (UNCTRL (c), rl_outstream); \
- printed_len += 2; \
- } \
- else if (c == RUBOUT) \
- { \
- putc ('^', rl_outstream); \
- putc ('?', rl_outstream); \
- printed_len += 2; \
- } \
- else \
- { \
- putc (c, rl_outstream); \
- printed_len++; \
- } \
- } while (0)
-
-static int
-print_filename (to_print, full_pathname)
- char *to_print, *full_pathname;
-{
- int printed_len = 0;
-#if !defined (VISIBLE_STATS)
- char *s;
-
- for (s = to_print; *s; s++)
- {
- PUTX (*s);
- }
-#else
- char *s, c, *new_full_pathname;
- int extension_char, slen, tlen;
-
- for (s = to_print; *s; s++)
- {
- PUTX (*s);
- }
-
- if (rl_filename_completion_desired && rl_visible_stats)
- {
- /* If to_print != full_pathname, to_print is the basename of the
- path passed. In this case, we try to expand the directory
- name before checking for the stat character. */
- if (to_print != full_pathname)
- {
- /* Terminate the directory name. */
- c = to_print[-1];
- to_print[-1] = '\0';
-
- /* If setting the last slash in full_pathname to a NUL results in
- full_pathname being the empty string, we are trying to complete
- files in the root directory. If we pass a null string to the
- bash directory completion hook, for example, it will expand it
- to the current directory. We just want the `/'. */
- s = tilde_expand (full_pathname && *full_pathname ? full_pathname : "/");
- if (rl_directory_completion_hook)
- (*rl_directory_completion_hook) (&s);
-
- slen = strlen (s);
- tlen = strlen (to_print);
- new_full_pathname = (char *)xmalloc (slen + tlen + 2);
- strcpy (new_full_pathname, s);
- new_full_pathname[slen] = '/';
- strcpy (new_full_pathname + slen + 1, to_print);
-
- extension_char = stat_char (new_full_pathname);
-
- free (new_full_pathname);
- to_print[-1] = c;
- }
- else
- {
- s = tilde_expand (full_pathname);
- extension_char = stat_char (s);
- }
-
- free (s);
- if (extension_char)
- {
- putc (extension_char, rl_outstream);
- printed_len++;
- }
- }
-#endif /* VISIBLE_STATS */
- return printed_len;
-}
-
-static char *
-rl_quote_filename (s, rtype, qcp)
- char *s;
- int rtype;
- char *qcp;
-{
- char *r;
-
- r = (char *)xmalloc (strlen (s) + 2);
- *r = *rl_completer_quote_characters;
- strcpy (r + 1, s);
- if (qcp)
- *qcp = *rl_completer_quote_characters;
- return r;
-}
-
-/* Find the bounds of the current word for completion purposes, and leave
- rl_point set to the end of the word. This function skips quoted
- substrings (characters between matched pairs of characters in
- rl_completer_quote_characters). First we try to find an unclosed
- quoted substring on which to do matching. If one is not found, we use
- the word break characters to find the boundaries of the current word.
- We call an application-specific function to decide whether or not a
- particular word break character is quoted; if that function returns a
- non-zero result, the character does not break a word. This function
- returns the opening quote character if we found an unclosed quoted
- substring, '\0' otherwise. FP, if non-null, is set to a value saying
- which (shell-like) quote characters we found (single quote, double
- quote, or backslash) anywhere in the string. DP, if non-null, is set to
- the value of the delimiter character that caused a word break. */
-
-char
-_rl_find_completion_word (fp, dp)
- int *fp, *dp;
-{
- int scan, end, found_quote, delimiter, pass_next, isbrk;
- char quote_char;
-
- end = rl_point;
- found_quote = delimiter = 0;
- quote_char = '\0';
-
- if (rl_completer_quote_characters)
- {
- /* We have a list of characters which can be used in pairs to
- quote substrings for the completer. Try to find the start
- of an unclosed quoted substring. */
- /* FOUND_QUOTE is set so we know what kind of quotes we found. */
- for (scan = pass_next = 0; scan < end; scan++)
- {
- if (pass_next)
- {
- pass_next = 0;
- continue;
- }
-
- /* Shell-like semantics for single quotes -- don't allow backslash
- to quote anything in single quotes, especially not the closing
- quote. If you don't like this, take out the check on the value
- of quote_char. */
- if (quote_char != '\'' && rl_line_buffer[scan] == '\\')
- {
- pass_next = 1;
- found_quote |= RL_QF_BACKSLASH;
- continue;
- }
-
- if (quote_char != '\0')
- {
- /* Ignore everything until the matching close quote char. */
- if (rl_line_buffer[scan] == quote_char)
- {
- /* Found matching close. Abandon this substring. */
- quote_char = '\0';
- rl_point = end;
- }
- }
- else if (strchr (rl_completer_quote_characters, rl_line_buffer[scan]))
- {
- /* Found start of a quoted substring. */
- quote_char = rl_line_buffer[scan];
- rl_point = scan + 1;
- /* Shell-like quoting conventions. */
- if (quote_char == '\'')
- found_quote |= RL_QF_SINGLE_QUOTE;
- else if (quote_char == '"')
- found_quote |= RL_QF_DOUBLE_QUOTE;
- else
- found_quote |= RL_QF_OTHER_QUOTE;
- }
- }
- }
-
- if (rl_point == end && quote_char == '\0')
- {
- /* We didn't find an unclosed quoted substring upon which to do
- completion, so use the word break characters to find the
- substring on which to complete. */
-#if defined (HANDLE_MULTIBYTE)
- while (rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_ANY))
-#else
- while (--rl_point)
-#endif
- {
- scan = rl_line_buffer[rl_point];
-
- if (strchr (rl_completer_word_break_characters, scan) == 0)
- continue;
-
- /* Call the application-specific function to tell us whether
- this word break character is quoted and should be skipped. */
- if (rl_char_is_quoted_p && found_quote &&
- (*rl_char_is_quoted_p) (rl_line_buffer, rl_point))
- continue;
-
- /* Convoluted code, but it avoids an n^2 algorithm with calls
- to char_is_quoted. */
- break;
- }
- }
-
- /* If we are at an unquoted word break, then advance past it. */
- scan = rl_line_buffer[rl_point];
-
- /* If there is an application-specific function to say whether or not
- a character is quoted and we found a quote character, let that
- function decide whether or not a character is a word break, even
- if it is found in rl_completer_word_break_characters. Don't bother
- if we're at the end of the line, though. */
- if (scan)
- {
- if (rl_char_is_quoted_p)
- isbrk = (found_quote == 0 ||
- (*rl_char_is_quoted_p) (rl_line_buffer, rl_point) == 0) &&
- strchr (rl_completer_word_break_characters, scan) != 0;
- else
- isbrk = strchr (rl_completer_word_break_characters, scan) != 0;
-
- if (isbrk)
- {
- /* If the character that caused the word break was a quoting
- character, then remember it as the delimiter. */
- if (rl_basic_quote_characters &&
- strchr (rl_basic_quote_characters, scan) &&
- (end - rl_point) > 1)
- delimiter = scan;
-
- /* If the character isn't needed to determine something special
- about what kind of completion to perform, then advance past it. */
- if (rl_special_prefixes == 0 || strchr (rl_special_prefixes, scan) == 0)
- rl_point++;
- }
- }
-
- if (fp)
- *fp = found_quote;
- if (dp)
- *dp = delimiter;
-
- return (quote_char);
-}
-
-static char **
-gen_completion_matches (text, start, end, our_func, found_quote, quote_char)
- char *text;
- int start, end;
- rl_compentry_func_t *our_func;
- int found_quote, quote_char;
-{
- char **matches, *temp;
-
- /* If the user wants to TRY to complete, but then wants to give
- up and use the default completion function, they set the
- variable rl_attempted_completion_function. */
- if (rl_attempted_completion_function)
- {
- matches = (*rl_attempted_completion_function) (text, start, end);
-
- if (matches || rl_attempted_completion_over)
- {
- rl_attempted_completion_over = 0;
- return (matches);
- }
- }
-
- /* Beware -- we're stripping the quotes here. Do this only if we know
- we are doing filename completion and the application has defined a
- filename dequoting function. */
- temp = (char *)NULL;
-
- if (found_quote && our_func == rl_filename_completion_function &&
- rl_filename_dequoting_function)
- {
- /* delete single and double quotes */
- temp = (*rl_filename_dequoting_function) (text, quote_char);
- text = temp; /* not freeing text is not a memory leak */
- }
-
- matches = rl_completion_matches (text, our_func);
- FREE (temp);
- return matches;
-}
-
-/* Filter out duplicates in MATCHES. This frees up the strings in
- MATCHES. */
-static char **
-remove_duplicate_matches (matches)
- char **matches;
-{
- char *lowest_common;
- int i, j, newlen;
- char dead_slot;
- char **temp_array;
-
- /* Sort the items. */
- for (i = 0; matches[i]; i++)
- ;
-
- /* Sort the array without matches[0], since we need it to
- stay in place no matter what. */
- if (i)
- qsort (matches+1, i-1, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
-
- /* Remember the lowest common denominator for it may be unique. */
- lowest_common = savestring (matches[0]);
-
- for (i = newlen = 0; matches[i + 1]; i++)
- {
- if (strcmp (matches[i], matches[i + 1]) == 0)
- {
- free (matches[i]);
- matches[i] = (char *)&dead_slot;
- }
- else
- newlen++;
- }
-
- /* We have marked all the dead slots with (char *)&dead_slot.
- Copy all the non-dead entries into a new array. */
- temp_array = (char **)xmalloc ((3 + newlen) * sizeof (char *));
- for (i = j = 1; matches[i]; i++)
- {
- if (matches[i] != (char *)&dead_slot)
- temp_array[j++] = matches[i];
- }
- temp_array[j] = (char *)NULL;
-
- if (matches[0] != (char *)&dead_slot)
- free (matches[0]);
-
- /* Place the lowest common denominator back in [0]. */
- temp_array[0] = lowest_common;
-
- /* If there is one string left, and it is identical to the
- lowest common denominator, then the LCD is the string to
- insert. */
- if (j == 2 && strcmp (temp_array[0], temp_array[1]) == 0)
- {
- free (temp_array[1]);
- temp_array[1] = (char *)NULL;
- }
- return (temp_array);
-}
-
-/* Find the common prefix of the list of matches, and put it into
- matches[0]. */
-static int
-compute_lcd_of_matches (match_list, matches, text)
- char **match_list;
- int matches;
- const char *text;
-{
- register int i, c1, c2, si;
- int low; /* Count of max-matched characters. */
-#if defined (HANDLE_MULTIBYTE)
- int v;
- mbstate_t ps1, ps2;
- wchar_t wc1, wc2;
-#endif
-
- /* If only one match, just use that. Otherwise, compare each
- member of the list with the next, finding out where they
- stop matching. */
- if (matches == 1)
- {
- match_list[0] = match_list[1];
- match_list[1] = (char *)NULL;
- return 1;
- }
-
- for (i = 1, low = 100000; i < matches; i++)
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- memset (&ps1, 0, sizeof (mbstate_t));
- memset (&ps2, 0, sizeof (mbstate_t));
- }
-#endif
- if (_rl_completion_case_fold)
- {
- for (si = 0;
- (c1 = _rl_to_lower(match_list[i][si])) &&
- (c2 = _rl_to_lower(match_list[i + 1][si]));
- si++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- v = mbrtowc (&wc1, match_list[i]+si, strlen (match_list[i]+si), &ps1);
- mbrtowc (&wc2, match_list[i+1]+si, strlen (match_list[i+1]+si), &ps2);
- wc1 = towlower (wc1);
- wc2 = towlower (wc2);
- if (wc1 != wc2)
- break;
- else if (v > 1)
- si += v - 1;
- }
- else
-#endif
- if (c1 != c2)
- break;
- }
- else
- {
- for (si = 0;
- (c1 = match_list[i][si]) &&
- (c2 = match_list[i + 1][si]);
- si++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- mbstate_t ps_back = ps1;
- if (!_rl_compare_chars (match_list[i], si, &ps1, match_list[i+1], si, &ps2))
- break;
- else if ((v = _rl_get_char_len (&match_list[i][si], &ps_back)) > 1)
- si += v - 1;
- }
- else
-#endif
- if (c1 != c2)
- break;
- }
-
- if (low > si)
- low = si;
- }
-
- /* If there were multiple matches, but none matched up to even the
- first character, and the user typed something, use that as the
- value of matches[0]. */
- if (low == 0 && text && *text)
- {
- match_list[0] = (char *)xmalloc (strlen (text) + 1);
- strcpy (match_list[0], text);
- }
- else
- {
- match_list[0] = (char *)xmalloc (low + 1);
-
- /* XXX - this might need changes in the presence of multibyte chars */
-
- /* If we are ignoring case, try to preserve the case of the string
- the user typed in the face of multiple matches differing in case. */
- if (_rl_completion_case_fold)
- {
- /* sort the list to get consistent answers. */
- qsort (match_list+1, matches, sizeof(char *), (QSFUNC *)_rl_qsort_string_compare);
-
- si = strlen (text);
- if (si <= low)
- {
- for (i = 1; i <= matches; i++)
- if (strncmp (match_list[i], text, si) == 0)
- {
- strncpy (match_list[0], match_list[i], low);
- break;
- }
- /* no casematch, use first entry */
- if (i > matches)
- strncpy (match_list[0], match_list[1], low);
- }
- else
- /* otherwise, just use the text the user typed. */
- strncpy (match_list[0], text, low);
- }
- else
- strncpy (match_list[0], match_list[1], low);
-
- match_list[0][low] = '\0';
- }
-
- return matches;
-}
-
-static int
-postprocess_matches (matchesp, matching_filenames)
- char ***matchesp;
- int matching_filenames;
-{
- char *t, **matches, **temp_matches;
- int nmatch, i;
-
- matches = *matchesp;
-
- if (matches == 0)
- return 0;
-
- /* It seems to me that in all the cases we handle we would like
- to ignore duplicate possiblilities. Scan for the text to
- insert being identical to the other completions. */
- if (rl_ignore_completion_duplicates)
- {
- temp_matches = remove_duplicate_matches (matches);
- free (matches);
- matches = temp_matches;
- }
-
- /* If we are matching filenames, then here is our chance to
- do clever processing by re-examining the list. Call the
- ignore function with the array as a parameter. It can
- munge the array, deleting matches as it desires. */
- if (rl_ignore_some_completions_function && matching_filenames)
- {
- for (nmatch = 1; matches[nmatch]; nmatch++)
- ;
- (void)(*rl_ignore_some_completions_function) (matches);
- if (matches == 0 || matches[0] == 0)
- {
- FREE (matches);
- *matchesp = (char **)0;
- return 0;
- }
- else
- {
- /* If we removed some matches, recompute the common prefix. */
- for (i = 1; matches[i]; i++)
- ;
- if (i > 1 && i < nmatch)
- {
- t = matches[0];
- compute_lcd_of_matches (matches, i - 1, t);
- FREE (t);
- }
- }
- }
-
- *matchesp = matches;
- return (1);
-}
-
-/* A convenience function for displaying a list of strings in
- columnar format on readline's output stream. MATCHES is the list
- of strings, in argv format, LEN is the number of strings in MATCHES,
- and MAX is the length of the longest string in MATCHES. */
-void
-rl_display_match_list (matches, len, max)
- char **matches;
- int len, max;
-{
- int count, limit, printed_len, lines;
- int i, j, k, l;
- char *temp;
-
- /* How many items of MAX length can we fit in the screen window? */
- max += 2;
- limit = _rl_screenwidth / max;
- if (limit != 1 && (limit * max == _rl_screenwidth))
- limit--;
-
- /* Avoid a possible floating exception. If max > _rl_screenwidth,
- limit will be 0 and a divide-by-zero fault will result. */
- if (limit == 0)
- limit = 1;
-
- /* How many iterations of the printing loop? */
- count = (len + (limit - 1)) / limit;
-
- /* Watch out for special case. If LEN is less than LIMIT, then
- just do the inner printing loop.
- 0 < len <= limit implies count = 1. */
-
- /* Sort the items if they are not already sorted. */
- if (rl_ignore_completion_duplicates == 0)
- qsort (matches + 1, len, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
-
- rl_crlf ();
-
- lines = 0;
- if (_rl_print_completions_horizontally == 0)
- {
- /* Print the sorted items, up-and-down alphabetically, like ls. */
- for (i = 1; i <= count; i++)
- {
- for (j = 0, l = i; j < limit; j++)
- {
- if (l > len || matches[l] == 0)
- break;
- else
- {
- temp = printable_part (matches[l]);
- printed_len = print_filename (temp, matches[l]);
-
- if (j + 1 < limit)
- for (k = 0; k < max - printed_len; k++)
- putc (' ', rl_outstream);
- }
- l += count;
- }
- rl_crlf ();
- lines++;
- if (_rl_page_completions && lines >= (_rl_screenheight - 1) && i < count)
- {
- lines = _rl_internal_pager (lines);
- if (lines < 0)
- return;
- }
- }
- }
- else
- {
- /* Print the sorted items, across alphabetically, like ls -x. */
- for (i = 1; matches[i]; i++)
- {
- temp = printable_part (matches[i]);
- printed_len = print_filename (temp, matches[i]);
- /* Have we reached the end of this line? */
- if (matches[i+1])
- {
- if (i && (limit > 1) && (i % limit) == 0)
- {
- rl_crlf ();
- lines++;
- if (_rl_page_completions && lines >= _rl_screenheight - 1)
- {
- lines = _rl_internal_pager (lines);
- if (lines < 0)
- return;
- }
- }
- else
- for (k = 0; k < max - printed_len; k++)
- putc (' ', rl_outstream);
- }
- }
- rl_crlf ();
- }
-}
-
-/* Display MATCHES, a list of matching filenames in argv format. This
- handles the simple case -- a single match -- first. If there is more
- than one match, we compute the number of strings in the list and the
- length of the longest string, which will be needed by the display
- function. If the application wants to handle displaying the list of
- matches itself, it sets RL_COMPLETION_DISPLAY_MATCHES_HOOK to the
- address of a function, and we just call it. If we're handling the
- display ourselves, we just call rl_display_match_list. We also check
- that the list of matches doesn't exceed the user-settable threshold,
- and ask the user if he wants to see the list if there are more matches
- than RL_COMPLETION_QUERY_ITEMS. */
-static void
-display_matches (matches)
- char **matches;
-{
- int len, max, i;
- char *temp;
-
- /* Move to the last visible line of a possibly-multiple-line command. */
- _rl_move_vert (_rl_vis_botlin);
-
- /* Handle simple case first. What if there is only one answer? */
- if (matches[1] == 0)
- {
- temp = printable_part (matches[0]);
- rl_crlf ();
- print_filename (temp, matches[0]);
- rl_crlf ();
-
- rl_forced_update_display ();
- rl_display_fixed = 1;
-
- return;
- }
-
- /* There is more than one answer. Find out how many there are,
- and find the maximum printed length of a single entry. */
- for (max = 0, i = 1; matches[i]; i++)
- {
- temp = printable_part (matches[i]);
- len = strlen (temp);
-
- if (len > max)
- max = len;
- }
-
- len = i - 1;
-
- /* If the caller has defined a display hook, then call that now. */
- if (rl_completion_display_matches_hook)
- {
- (*rl_completion_display_matches_hook) (matches, len, max);
- return;
- }
-
- /* If there are many items, then ask the user if she really wants to
- see them all. */
- if (len >= rl_completion_query_items)
- {
- rl_crlf ();
- fprintf (rl_outstream, "Display all %d possibilities? (y or n)", len);
- fflush (rl_outstream);
- if (get_y_or_n (0) == 0)
- {
- rl_crlf ();
-
- rl_forced_update_display ();
- rl_display_fixed = 1;
-
- return;
- }
- }
-
- rl_display_match_list (matches, len, max);
-
- rl_forced_update_display ();
- rl_display_fixed = 1;
-}
-
-static char *
-make_quoted_replacement (match, mtype, qc)
- char *match;
- int mtype;
- char *qc; /* Pointer to quoting character, if any */
-{
- int should_quote, do_replace;
- char *replacement;
-
- /* If we are doing completion on quoted substrings, and any matches
- contain any of the completer_word_break_characters, then auto-
- matically prepend the substring with a quote character (just pick
- the first one from the list of such) if it does not already begin
- with a quote string. FIXME: Need to remove any such automatically
- inserted quote character when it no longer is necessary, such as
- if we change the string we are completing on and the new set of
- matches don't require a quoted substring. */
- replacement = match;
-
- should_quote = match && rl_completer_quote_characters &&
- rl_filename_completion_desired &&
- rl_filename_quoting_desired;
-
- if (should_quote)
- should_quote = should_quote && (!qc || !*qc ||
- (rl_completer_quote_characters && strchr (rl_completer_quote_characters, *qc)));
-
- if (should_quote)
- {
- /* If there is a single match, see if we need to quote it.
- This also checks whether the common prefix of several
- matches needs to be quoted. */
- should_quote = rl_filename_quote_characters
- ? (_rl_strpbrk (match, rl_filename_quote_characters) != 0)
- : 0;
-
- do_replace = should_quote ? mtype : NO_MATCH;
- /* Quote the replacement, since we found an embedded
- word break character in a potential match. */
- if (do_replace != NO_MATCH && rl_filename_quoting_function)
- replacement = (*rl_filename_quoting_function) (match, do_replace, qc);
- }
- return (replacement);
-}
-
-static void
-insert_match (match, start, mtype, qc)
- char *match;
- int start, mtype;
- char *qc;
-{
- char *replacement;
- char oqc;
-
- oqc = qc ? *qc : '\0';
- replacement = make_quoted_replacement (match, mtype, qc);
-
- /* Now insert the match. */
- if (replacement)
- {
- /* Don't double an opening quote character. */
- if (qc && *qc && start && rl_line_buffer[start - 1] == *qc &&
- replacement[0] == *qc)
- start--;
- /* If make_quoted_replacement changed the quoting character, remove
- the opening quote and insert the (fully-quoted) replacement. */
- else if (qc && (*qc != oqc) && start && rl_line_buffer[start - 1] == oqc &&
- replacement[0] != oqc)
- start--;
- _rl_replace_text (replacement, start, rl_point - 1);
- if (replacement != match)
- free (replacement);
- }
-}
-
-/* Append any necessary closing quote and a separator character to the
- just-inserted match. If the user has specified that directories
- should be marked by a trailing `/', append one of those instead. The
- default trailing character is a space. Returns the number of characters
- appended. If NONTRIVIAL_MATCH is set, we test for a symlink (if the OS
- has them) and don't add a suffix for a symlink to a directory. A
- nontrivial match is one that actually adds to the word being completed.
- The variable rl_completion_mark_symlink_dirs controls this behavior
- (it's initially set to the what the user has chosen, indicated by the
- value of _rl_complete_mark_symlink_dirs, but may be modified by an
- application's completion function). */
-static int
-append_to_match (text, delimiter, quote_char, nontrivial_match)
- char *text;
- int delimiter, quote_char, nontrivial_match;
-{
- char temp_string[4], *filename;
- int temp_string_index, s;
- struct stat finfo;
-
- temp_string_index = 0;
- if (quote_char && rl_point && rl_line_buffer[rl_point - 1] != quote_char)
- temp_string[temp_string_index++] = quote_char;
-
- if (delimiter)
- temp_string[temp_string_index++] = delimiter;
- else if (rl_completion_suppress_append == 0 && rl_completion_append_character)
- temp_string[temp_string_index++] = rl_completion_append_character;
-
- temp_string[temp_string_index++] = '\0';
-
- if (rl_filename_completion_desired)
- {
- filename = tilde_expand (text);
- s = (nontrivial_match && rl_completion_mark_symlink_dirs == 0)
- ? LSTAT (filename, &finfo)
- : stat (filename, &finfo);
- if (s == 0 && S_ISDIR (finfo.st_mode))
- {
- if (_rl_complete_mark_directories)
- {
- /* This is clumsy. Avoid putting in a double slash if point
- is at the end of the line and the previous character is a
- slash. */
- if (rl_point && rl_line_buffer[rl_point] == '\0' && rl_line_buffer[rl_point - 1] == '/')
- ;
- else if (rl_line_buffer[rl_point] != '/')
- rl_insert_text ("/");
- }
- }
-#ifdef S_ISLNK
- /* Don't add anything if the filename is a symlink and resolves to a
- directory. */
- else if (s == 0 && S_ISLNK (finfo.st_mode) &&
- stat (filename, &finfo) == 0 && S_ISDIR (finfo.st_mode))
- ;
-#endif
- else
- {
- if (rl_point == rl_end && temp_string_index)
- rl_insert_text (temp_string);
- }
- free (filename);
- }
- else
- {
- if (rl_point == rl_end && temp_string_index)
- rl_insert_text (temp_string);
- }
-
- return (temp_string_index);
-}
-
-static void
-insert_all_matches (matches, point, qc)
- char **matches;
- int point;
- char *qc;
-{
- int i;
- char *rp;
-
- rl_begin_undo_group ();
- /* remove any opening quote character; make_quoted_replacement will add
- it back. */
- if (qc && *qc && point && rl_line_buffer[point - 1] == *qc)
- point--;
- rl_delete_text (point, rl_point);
- rl_point = point;
-
- if (matches[1])
- {
- for (i = 1; matches[i]; i++)
- {
- rp = make_quoted_replacement (matches[i], SINGLE_MATCH, qc);
- rl_insert_text (rp);
- rl_insert_text (" ");
- if (rp != matches[i])
- free (rp);
- }
- }
- else
- {
- rp = make_quoted_replacement (matches[0], SINGLE_MATCH, qc);
- rl_insert_text (rp);
- rl_insert_text (" ");
- if (rp != matches[0])
- free (rp);
- }
- rl_end_undo_group ();
-}
-
-void
-_rl_free_match_list (matches)
- char **matches;
-{
- register int i;
-
- if (matches == 0)
- return;
-
- for (i = 0; matches[i]; i++)
- free (matches[i]);
- free (matches);
-}
-
-/* Complete the word at or before point.
- WHAT_TO_DO says what to do with the completion.
- `?' means list the possible completions.
- TAB means do standard completion.
- `*' means insert all of the possible completions.
- `!' means to do standard completion, and list all possible completions if
- there is more than one. */
-int
-rl_complete_internal (what_to_do)
- int what_to_do;
-{
- char **matches;
- rl_compentry_func_t *our_func;
- int start, end, delimiter, found_quote, i, nontrivial_lcd;
- char *text, *saved_line_buffer;
- char quote_char;
-
- RL_SETSTATE(RL_STATE_COMPLETING);
-
- set_completion_defaults (what_to_do);
-
- saved_line_buffer = rl_line_buffer ? savestring (rl_line_buffer) : (char *)NULL;
- our_func = rl_completion_entry_function
- ? rl_completion_entry_function
- : rl_filename_completion_function;
-
- /* We now look backwards for the start of a filename/variable word. */
- end = rl_point;
- found_quote = delimiter = 0;
- quote_char = '\0';
-
- if (rl_point)
- /* This (possibly) changes rl_point. If it returns a non-zero char,
- we know we have an open quote. */
- quote_char = _rl_find_completion_word (&found_quote, &delimiter);
-
- start = rl_point;
- rl_point = end;
-
- text = rl_copy_text (start, end);
- matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char);
- /* nontrivial_lcd is set if the common prefix adds something to the word
- being completed. */
- nontrivial_lcd = matches && strcmp (text, matches[0]) != 0;
- free (text);
-
- if (matches == 0)
- {
- rl_ding ();
- FREE (saved_line_buffer);
- completion_changed_buffer = 0;
- RL_UNSETSTATE(RL_STATE_COMPLETING);
- return (0);
- }
-
- /* If we are matching filenames, the attempted completion function will
- have set rl_filename_completion_desired to a non-zero value. The basic
- rl_filename_completion_function does this. */
- i = rl_filename_completion_desired;
-
- if (postprocess_matches (&matches, i) == 0)
- {
- rl_ding ();
- FREE (saved_line_buffer);
- completion_changed_buffer = 0;
- RL_UNSETSTATE(RL_STATE_COMPLETING);
- return (0);
- }
-
- switch (what_to_do)
- {
- case TAB:
- case '!':
- /* Insert the first match with proper quoting. */
- if (*matches[0])
- insert_match (matches[0], start, matches[1] ? MULT_MATCH : SINGLE_MATCH, &quote_char);
-
- /* If there are more matches, ring the bell to indicate.
- If we are in vi mode, Posix.2 says to not ring the bell.
- If the `show-all-if-ambiguous' variable is set, display
- all the matches immediately. Otherwise, if this was the
- only match, and we are hacking files, check the file to
- see if it was a directory. If so, and the `mark-directories'
- variable is set, add a '/' to the name. If not, and we
- are at the end of the line, then add a space. */
- if (matches[1])
- {
- if (what_to_do == '!')
- {
- display_matches (matches);
- break;
- }
- else if (rl_editing_mode != vi_mode)
- rl_ding (); /* There are other matches remaining. */
- }
- else
- append_to_match (matches[0], delimiter, quote_char, nontrivial_lcd);
-
- break;
-
- case '*':
- insert_all_matches (matches, start, &quote_char);
- break;
-
- case '?':
- display_matches (matches);
- break;
-
- default:
- fprintf (stderr, "\r\nreadline: bad value %d for what_to_do in rl_complete\n", what_to_do);
- rl_ding ();
- FREE (saved_line_buffer);
- RL_UNSETSTATE(RL_STATE_COMPLETING);
- return 1;
- }
-
- _rl_free_match_list (matches);
-
- /* Check to see if the line has changed through all of this manipulation. */
- if (saved_line_buffer)
- {
- completion_changed_buffer = strcmp (rl_line_buffer, saved_line_buffer) != 0;
- free (saved_line_buffer);
- }
-
- RL_UNSETSTATE(RL_STATE_COMPLETING);
- return 0;
-}
-
-/***************************************************************/
-/* */
-/* Application-callable completion match generator functions */
-/* */
-/***************************************************************/
-
-/* Return an array of (char *) which is a list of completions for TEXT.
- If there are no completions, return a NULL pointer.
- The first entry in the returned array is the substitution for TEXT.
- The remaining entries are the possible completions.
- The array is terminated with a NULL pointer.
-
- ENTRY_FUNCTION is a function of two args, and returns a (char *).
- The first argument is TEXT.
- The second is a state argument; it should be zero on the first call, and
- non-zero on subsequent calls. It returns a NULL pointer to the caller
- when there are no more matches.
- */
-char **
-rl_completion_matches (text, entry_function)
- const char *text;
- rl_compentry_func_t *entry_function;
-{
- /* Number of slots in match_list. */
- int match_list_size;
-
- /* The list of matches. */
- char **match_list;
-
- /* Number of matches actually found. */
- int matches;
-
- /* Temporary string binder. */
- char *string;
-
- matches = 0;
- match_list_size = 10;
- match_list = (char **)xmalloc ((match_list_size + 1) * sizeof (char *));
- match_list[1] = (char *)NULL;
-
- while (string = (*entry_function) (text, matches))
- {
- if (matches + 1 == match_list_size)
- match_list = (char **)xrealloc
- (match_list, ((match_list_size += 10) + 1) * sizeof (char *));
-
- match_list[++matches] = string;
- match_list[matches + 1] = (char *)NULL;
- }
-
- /* If there were any matches, then look through them finding out the
- lowest common denominator. That then becomes match_list[0]. */
- if (matches)
- compute_lcd_of_matches (match_list, matches, text);
- else /* There were no matches. */
- {
- free (match_list);
- match_list = (char **)NULL;
- }
- return (match_list);
-}
-
-/* A completion function for usernames.
- TEXT contains a partial username preceded by a random
- character (usually `~'). */
-char *
-rl_username_completion_function (text, state)
- const char *text;
- int state;
-{
-#if defined (__WIN32__) || defined (__OPENNT)
- return (char *)NULL;
-#else /* !__WIN32__ && !__OPENNT) */
- static char *username = (char *)NULL;
- static struct passwd *entry;
- static int namelen, first_char, first_char_loc;
- char *value;
-
- if (state == 0)
- {
- FREE (username);
-
- first_char = *text;
- first_char_loc = first_char == '~';
-
- username = savestring (&text[first_char_loc]);
- namelen = strlen (username);
- setpwent ();
- }
-
- while (entry = getpwent ())
- {
- /* Null usernames should result in all users as possible completions. */
- if (namelen == 0 || (STREQN (username, entry->pw_name, namelen)))
- break;
- }
-
- if (entry == 0)
- {
- endpwent ();
- return ((char *)NULL);
- }
- else
- {
- value = (char *)xmalloc (2 + strlen (entry->pw_name));
-
- *value = *text;
-
- strcpy (value + first_char_loc, entry->pw_name);
-
- if (first_char == '~')
- rl_filename_completion_desired = 1;
-
- return (value);
- }
-#endif /* !__WIN32__ && !__OPENNT */
-}
-
-/* Okay, now we write the entry_function for filename completion. In the
- general case. Note that completion in the shell is a little different
- because of all the pathnames that must be followed when looking up the
- completion for a command. */
-char *
-rl_filename_completion_function (text, state)
- const char *text;
- int state;
-{
- static DIR *directory = (DIR *)NULL;
- static char *filename = (char *)NULL;
- static char *dirname = (char *)NULL;
- static char *users_dirname = (char *)NULL;
- static int filename_len;
- char *temp;
- int dirlen;
- struct dirent *entry;
-
- /* If we don't have any state, then do some initialization. */
- if (state == 0)
- {
- /* If we were interrupted before closing the directory or reading
- all of its contents, close it. */
- if (directory)
- {
- closedir (directory);
- directory = (DIR *)NULL;
- }
- FREE (dirname);
- FREE (filename);
- FREE (users_dirname);
-
- filename = savestring (text);
- if (*text == 0)
- text = ".";
- dirname = savestring (text);
-
- temp = strrchr (dirname, '/');
-
-#if defined (__MSDOS__)
- /* special hack for //X/... */
- if (dirname[0] == '/' && dirname[1] == '/' && ISALPHA ((unsigned char)dirname[2]) && dirname[3] == '/')
- temp = strrchr (dirname + 3, '/');
-#endif
-
- if (temp)
- {
- strcpy (filename, ++temp);
- *temp = '\0';
- }
-#if defined (__MSDOS__)
- /* searches from current directory on the drive */
- else if (ISALPHA ((unsigned char)dirname[0]) && dirname[1] == ':')
- {
- strcpy (filename, dirname + 2);
- dirname[2] = '\0';
- }
-#endif
- else
- {
- dirname[0] = '.';
- dirname[1] = '\0';
- }
-
- /* We aren't done yet. We also support the "~user" syntax. */
-
- /* Save the version of the directory that the user typed. */
- users_dirname = savestring (dirname);
-
- if (*dirname == '~')
- {
- temp = tilde_expand (dirname);
- free (dirname);
- dirname = temp;
- }
-
- if (rl_directory_rewrite_hook)
- (*rl_directory_rewrite_hook) (&dirname);
-
- if (rl_directory_completion_hook && (*rl_directory_completion_hook) (&dirname))
- {
- free (users_dirname);
- users_dirname = savestring (dirname);
- }
-
- directory = opendir (dirname);
- filename_len = strlen (filename);
-
- rl_filename_completion_desired = 1;
- }
-
- /* At this point we should entertain the possibility of hacking wildcarded
- filenames, like /usr/man/man<WILD>/te<TAB>. If the directory name
- contains globbing characters, then build an array of directories, and
- then map over that list while completing. */
- /* *** UNIMPLEMENTED *** */
-
- /* Now that we have some state, we can read the directory. */
-
- entry = (struct dirent *)NULL;
- while (directory && (entry = readdir (directory)))
- {
- /* Special case for no filename. If the user has disabled the
- `match-hidden-files' variable, skip filenames beginning with `.'.
- All other entries except "." and ".." match. */
- if (filename_len == 0)
- {
- if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
- continue;
-
- if (entry->d_name[0] != '.' ||
- (entry->d_name[1] &&
- (entry->d_name[1] != '.' || entry->d_name[2])))
- break;
- }
- else
- {
- /* Otherwise, if these match up to the length of filename, then
- it is a match. */
- if (_rl_completion_case_fold)
- {
- if ((_rl_to_lower (entry->d_name[0]) == _rl_to_lower (filename[0])) &&
- (((int)D_NAMLEN (entry)) >= filename_len) &&
- (_rl_strnicmp (filename, entry->d_name, filename_len) == 0))
- break;
- }
- else
- {
- if ((entry->d_name[0] == filename[0]) &&
- (((int)D_NAMLEN (entry)) >= filename_len) &&
- (strncmp (filename, entry->d_name, filename_len) == 0))
- break;
- }
- }
- }
-
- if (entry == 0)
- {
- if (directory)
- {
- closedir (directory);
- directory = (DIR *)NULL;
- }
- if (dirname)
- {
- free (dirname);
- dirname = (char *)NULL;
- }
- if (filename)
- {
- free (filename);
- filename = (char *)NULL;
- }
- if (users_dirname)
- {
- free (users_dirname);
- users_dirname = (char *)NULL;
- }
-
- return (char *)NULL;
- }
- else
- {
- /* dirname && (strcmp (dirname, ".") != 0) */
- if (dirname && (dirname[0] != '.' || dirname[1]))
- {
- if (rl_complete_with_tilde_expansion && *users_dirname == '~')
- {
- dirlen = strlen (dirname);
- temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
- strcpy (temp, dirname);
- /* Canonicalization cuts off any final slash present. We
- may need to add it back. */
- if (dirname[dirlen - 1] != '/')
- {
- temp[dirlen++] = '/';
- temp[dirlen] = '\0';
- }
- }
- else
- {
- dirlen = strlen (users_dirname);
- temp = (char *)xmalloc (2 + dirlen + D_NAMLEN (entry));
- strcpy (temp, users_dirname);
- /* Make sure that temp has a trailing slash here. */
- if (users_dirname[dirlen - 1] != '/')
- temp[dirlen++] = '/';
- }
-
- strcpy (temp + dirlen, entry->d_name);
- }
- else
- temp = savestring (entry->d_name);
-
- return (temp);
- }
-}
-
-/* An initial implementation of a menu completion function a la tcsh. The
- first time (if the last readline command was not rl_menu_complete), we
- generate the list of matches. This code is very similar to the code in
- rl_complete_internal -- there should be a way to combine the two. Then,
- for each item in the list of matches, we insert the match in an undoable
- fashion, with the appropriate character appended (this happens on the
- second and subsequent consecutive calls to rl_menu_complete). When we
- hit the end of the match list, we restore the original unmatched text,
- ring the bell, and reset the counter to zero. */
-int
-rl_menu_complete (count, ignore)
- int count, ignore;
-{
- rl_compentry_func_t *our_func;
- int matching_filenames, found_quote;
-
- static char *orig_text;
- static char **matches = (char **)0;
- static int match_list_index = 0;
- static int match_list_size = 0;
- static int orig_start, orig_end;
- static char quote_char;
- static int delimiter;
-
- /* The first time through, we generate the list of matches and set things
- up to insert them. */
- if (rl_last_func != rl_menu_complete)
- {
- /* Clean up from previous call, if any. */
- FREE (orig_text);
- if (matches)
- _rl_free_match_list (matches);
-
- match_list_index = match_list_size = 0;
- matches = (char **)NULL;
-
- /* Only the completion entry function can change these. */
- set_completion_defaults ('%');
-
- our_func = rl_completion_entry_function
- ? rl_completion_entry_function
- : rl_filename_completion_function;
-
- /* We now look backwards for the start of a filename/variable word. */
- orig_end = rl_point;
- found_quote = delimiter = 0;
- quote_char = '\0';
-
- if (rl_point)
- /* This (possibly) changes rl_point. If it returns a non-zero char,
- we know we have an open quote. */
- quote_char = _rl_find_completion_word (&found_quote, &delimiter);
-
- orig_start = rl_point;
- rl_point = orig_end;
-
- orig_text = rl_copy_text (orig_start, orig_end);
- matches = gen_completion_matches (orig_text, orig_start, orig_end,
- our_func, found_quote, quote_char);
-
- /* If we are matching filenames, the attempted completion function will
- have set rl_filename_completion_desired to a non-zero value. The basic
- rl_filename_completion_function does this. */
- matching_filenames = rl_filename_completion_desired;
-
- if (matches == 0 || postprocess_matches (&matches, matching_filenames) == 0)
- {
- rl_ding ();
- FREE (matches);
- matches = (char **)0;
- FREE (orig_text);
- orig_text = (char *)0;
- completion_changed_buffer = 0;
- return (0);
- }
-
- for (match_list_size = 0; matches[match_list_size]; match_list_size++)
- ;
- /* matches[0] is lcd if match_list_size > 1, but the circular buffer
- code below should take care of it. */
- }
-
- /* Now we have the list of matches. Replace the text between
- rl_line_buffer[orig_start] and rl_line_buffer[rl_point] with
- matches[match_list_index], and add any necessary closing char. */
-
- if (matches == 0 || match_list_size == 0)
- {
- rl_ding ();
- FREE (matches);
- matches = (char **)0;
- completion_changed_buffer = 0;
- return (0);
- }
-
- match_list_index = (match_list_index + count) % match_list_size;
- if (match_list_index < 0)
- match_list_index += match_list_size;
-
- if (match_list_index == 0 && match_list_size > 1)
- {
- rl_ding ();
- insert_match (orig_text, orig_start, MULT_MATCH, &quote_char);
- }
- else
- {
- insert_match (matches[match_list_index], orig_start, SINGLE_MATCH, &quote_char);
- append_to_match (matches[match_list_index], delimiter, quote_char,
- strcmp (orig_text, matches[match_list_index]));
- }
-
- completion_changed_buffer = 1;
- return (0);
-}
diff --git a/readline-4.3/config.h.in b/readline-4.3/config.h.in
deleted file mode 100644
index c53c2a1..0000000
--- a/readline-4.3/config.h.in
+++ /dev/null
@@ -1,200 +0,0 @@
-/* config.h.in. Maintained by hand. */
-
-/* Define if on MINIX. */
-#undef _MINIX
-
-/* Define as the return type of signal handlers (int or void). */
-#undef RETSIGTYPE
-
-/* Characteristics of the compiler. */
-#undef const
-
-#undef size_t
-
-#undef ssize_t
-
-#undef PROTOTYPES
-
-#undef __CHAR_UNSIGNED__
-
-/* Define if the `S_IS*' macros in <sys/stat.h> do not work properly. */
-#undef STAT_MACROS_BROKEN
-
-#undef VOID_SIGHANDLER
-
-/* Define if you have the isascii function. */
-#undef HAVE_ISASCII
-
-/* Define if you have the isxdigit function. */
-#undef HAVE_ISXDIGIT
-
-/* Define if you have the lstat function. */
-#undef HAVE_LSTAT
-
-/* Define if you have the mbsrtowcs function. */
-#undef HAVE_MBSRTOWCS
-
-/* Define if you have the memmove function. */
-#undef HAVE_MEMMOVE
-
-/* Define if you have the putenv function. */
-#undef HAVE_PUTENV
-
-/* Define if you have the select function. */
-#undef HAVE_SELECT
-
-/* Define if you have the setenv function. */
-#undef HAVE_SETENV
-
-/* Define if you have the setlocale function. */
-#undef HAVE_SETLOCALE
-
-/* Define if you have the strcasecmp function. */
-#undef HAVE_STRCASECMP
-
-/* Define if you have the strcoll function. */
-#undef HAVE_STRCOLL
-
-#undef STRCOLL_BROKEN
-
-/* Define if you have the strpbrk function. */
-#undef HAVE_STRPBRK
-
-/* Define if you have the tcgetattr function. */
-#undef HAVE_TCGETATTR
-
-/* Define if you have the vsnprintf function. */
-#undef HAVE_VSNPRINTF
-
-/* Define if you have the wcwidth function. */
-#undef HAVE_WCWIDTH
-
-/* Define if you have the <dirent.h> header file. */
-#undef HAVE_DIRENT_H
-
-/* Define if you have the <langinfo.h> header file. */
-#undef HAVE_LANGINFO_H
-
-/* Define if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
-/* Define if you have the <locale.h> header file. */
-#undef HAVE_LOCALE_H
-
-/* Define if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define if you have the <ndir.h> header file. */
-#undef HAVE_NDIR_H
-
-/* Define if you have the <stdarg.h> header file. */
-#undef HAVE_STDARG_H
-
-/* Define if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define if you have the <sys/dir.h> header file. */
-#undef HAVE_SYS_DIR_H
-
-/* Define if you have the <sys/file.h> header file. */
-#undef HAVE_SYS_FILE_H
-
-/* Define if you have the <sys/ndir.h> header file. */
-#undef HAVE_SYS_NDIR_H
-
-/* Define if you have the <sys/pte.h> header file. */
-#undef HAVE_SYS_PTE_H
-
-/* Define if you have the <sys/ptem.h> header file. */
-#undef HAVE_SYS_PTEM_H
-
-/* Define if you have the <sys/select.h> header file. */
-#undef HAVE_SYS_SELECT_H
-
-/* Define if you have the <sys/stream.h> header file. */
-#undef HAVE_SYS_STREAM_H
-
-/* Define if you have the <termcap.h> header file. */
-#undef HAVE_TERMCAP_H
-
-/* Define if you have the <termio.h> header file. */
-#undef HAVE_TERMIO_H
-
-/* Define if you have the <termios.h> header file. */
-#undef HAVE_TERMIOS_H
-
-/* Define if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if you have the <varargs.h> header file. */
-#undef HAVE_VARARGS_H
-
-/* Define if you have the <wchar.h> header file. */
-#undef HAVE_WCHAR_H
-
-/* Define if you have the <varargs.h> header file. */
-#undef HAVE_WCTYPE_H
-
-#undef HAVE_MBSTATE_T
-
-/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
-#undef HAVE_LANGINFO_CODESET
-
-/* Definitions pulled in from aclocal.m4. */
-#undef VOID_SIGHANDLER
-
-#undef GWINSZ_IN_SYS_IOCTL
-
-#undef STRUCT_WINSIZE_IN_SYS_IOCTL
-
-#undef STRUCT_WINSIZE_IN_TERMIOS
-
-#undef TIOCSTAT_IN_SYS_IOCTL
-
-#undef FIONREAD_IN_SYS_IOCTL
-
-#undef SPEED_T_IN_SYS_TYPES
-
-#undef HAVE_GETPW_DECLS
-
-#undef STRUCT_DIRENT_HAS_D_INO
-
-#undef STRUCT_DIRENT_HAS_D_FILENO
-
-#undef HAVE_BSD_SIGNALS
-
-#undef HAVE_POSIX_SIGNALS
-
-#undef HAVE_USG_SIGHOLD
-
-#undef MUST_REINSTALL_SIGHANDLERS
-
-#undef HAVE_POSIX_SIGSETJMP
-
-/* modify settings or make new ones based on what autoconf tells us. */
-
-/* Ultrix botches type-ahead when switching from canonical to
- non-canonical mode, at least through version 4.3 */
-#if !defined (HAVE_TERMIOS_H) || !defined (HAVE_TCGETATTR) || defined (ultrix)
-# define TERMIOS_MISSING
-#endif
-
-#if defined (STRCOLL_BROKEN)
-# undef HAVE_STRCOLL
-#endif
-
-#if defined (__STDC__) && defined (HAVE_STDARG_H)
-# define PREFER_STDARG
-# define USE_VARARGS
-#else
-# if defined (HAVE_VARARGS_H)
-# define PREFER_VARARGS
-# define USE_VARARGS
-# endif
-#endif
diff --git a/readline-4.3/configure b/readline-4.3/configure
deleted file mode 100755
index fc3769f..0000000
--- a/readline-4.3/configure
+++ /dev/null
@@ -1,5865 +0,0 @@
-#! /bin/sh
-# From configure.in for Readline 4.3, version 2.45, from autoconf version 2.52.
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52 for readline 4.3.
-#
-# Report bugs to <bug-readline@gnu.org>.
-#
-# 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.
-
-# 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
-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="readline.h"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-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'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Identity of this package.
-PACKAGE_NAME='readline'
-PACKAGE_TARNAME='readline'
-PACKAGE_VERSION='4.3'
-PACKAGE_STRING='readline 4.3'
-PACKAGE_BUGREPORT='bug-readline@gnu.org'
-
-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"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- 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=$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=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- 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-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- 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
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -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)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- 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=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- 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=$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=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- 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=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- 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'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- 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.
- with_x=yes ;;
-
- -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-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 ;;
-
- -*) { 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 ;;
-
- *)
- # 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
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# 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
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- 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
-
-# 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
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-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
- 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
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-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
-
-#
-# 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 readline 4.3 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
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST build programs to run on HOST [BUILD]
-EOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of readline 4.3:";;
- esac
- cat <<\EOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-shared build shared libraries [default=YES]
- --enable-static build static libraries [default=YES]
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-curses use the curses library instead of the termcap
- library
-
-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
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <bug-readline@gnu.org>.
-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
-readline configure 4.3
-generated by GNU Autoconf 2.52
-
-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 readline $as_me 4.3, which was
-generated by GNU Autoconf 2.52. 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
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:879: 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
- # 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:890: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:898: 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:914: 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:918: 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:924: 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:926: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:928: 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:947: 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:949: 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
-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
-
-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:969: PATH=\".;.\"; conftest.sh") >&5
- (PATH=".;."; conftest.sh) 2>&5
- ac_status=$?
- echo "$as_me:972: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- ac_path_separator=';'
-else
- ac_path_separator=:
-fi
-PATH_SEPARATOR="$ac_path_separator"
-rm -f conftest.sh
-
-ac_aux_dir=
-for ac_dir in ./support $srcdir/./support; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- 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
- { { echo "$as_me:998: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in ./support $srcdir/./support" >&2;}
- { (exit 1); exit 1; }; }
-fi
-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.
-
-ac_config_headers="$ac_config_headers config.h"
-
-LIBVERSION=4.3
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:1012: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:1016: 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:1025: 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:1029: 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:1034: 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:1041: 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:1050: 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:1055: 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/'`
-
-opt_curses=no
-
-# Check whether --with-curses or --without-curses was given.
-if test "${with_curses+set}" = set; then
- withval="$with_curses"
- opt_curses=$withval
-fi;
-
-if test "$opt_curses" = "yes"; then
- prefer_curses=yes
-fi
-
-opt_static_libs=yes
-opt_shared_libs=yes
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- opt_shared_libs=$enableval
-fi;
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- opt_static_libs=$enableval
-fi;
-
-echo ""
-echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
-echo ""
-
-# We want these before the checks, so the checks can modify their values.
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
-
-echo "$as_me:1095: 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
- cat >conftest.make <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-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
-rm -f conftest.make
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:1115: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- SET_MAKE=
-else
- echo "$as_me:1119: result: no" >&5
-echo "${ECHO_T}no" >&6
- SET_MAKE="MAKE=${MAKE-make}"
-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
-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:1132: 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:1147: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1155: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1158: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:1167: 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:1182: 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:1190: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1193: 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:1206: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_CC="${ac_tool_prefix}cc"
-echo "$as_me:1221: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1229: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1232: 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:1241: 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:1256: 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:1264: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1267: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:1280: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
-fi
-ac_cv_prog_CC="cc"
-echo "$as_me:1300: found $ac_dir/$ac_word" >&5
-break
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" ${1+"$@"}
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1322: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1325: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- 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:1336: 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$ac_prog"
-echo "$as_me:1351: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:1359: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:1362: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- 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:1375: 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:1390: 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:1398: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:1401: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-test -z "$CC" && { { echo "$as_me:1413: 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:1418:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:1421: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1424: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:1426: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1429: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:1431: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:1434: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 1438 "configure"
-#include "confdefs.h"
-
-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:1454: 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:1457: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:1460: \$? = $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:1483: 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:1489: 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:1494: 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:1500: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1503: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:1510: 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
-echo "$as_me:1518: 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:1525: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1527: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:1530: checking for executable suffix" >&5
-echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1532: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:1535: \$? = $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
- { { echo "$as_me:1551: error: cannot compute EXEEXT: cannot compile and link" >&5
-echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:1557: 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:1563: 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 1569 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1581: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1584: \$? = $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
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:1596: error: cannot compute OBJEXT: cannot compile" >&5
-echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:1603: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:1607: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 1613 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1628: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1631: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1634: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1637: \$? = $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:1649: 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:1655: 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 1661 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1673: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1676: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1679: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1682: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:1692: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- 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:1719: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1722: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1725: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1728: \$? = $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 1740 "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:1753: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1756: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1759: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1762: \$? = $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 1772 "configure"
-#include "confdefs.h"
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1784: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:1787: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1790: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:1793: \$? = $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
-
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-fi
-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
-
-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:1825: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-#line 1846 "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:1851: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:1857: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-#line 1880 "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:1884: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:1890: \$? = $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
- 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_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:1927: 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 1937 "configure"
-#include "confdefs.h"
-#include <assert.h>
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:1942: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:1948: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-#line 1971 "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:1975: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:1981: \$? = $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
- 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
- :
-else
- { { echo "$as_me:2009: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-echo "$as_me:2020: checking for minix/config.h" >&5
-echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6
-if test "${ac_cv_header_minix_config_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2026 "configure"
-#include "confdefs.h"
-#include <minix/config.h>
-_ACEOF
-if { (eval echo "$as_me:2030: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2036: \$? = $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_minix_config_h=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_minix_config_h=no
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:2055: result: $ac_cv_header_minix_config_h" >&5
-echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6
-if test $ac_cv_header_minix_config_h = yes; then
- MINIX=yes
-else
- MINIX=
-fi
-
-if test "$MINIX" = yes; then
-
-cat >>confdefs.h <<\EOF
-#define _POSIX_SOURCE 1
-EOF
-
-cat >>confdefs.h <<\EOF
-#define _POSIX_1_SOURCE 2
-EOF
-
-cat >>confdefs.h <<\EOF
-#define _MINIX 1
-EOF
-
-fi
-
-# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
-test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
-
-if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:2083: checking whether $CC needs -traditional" >&5
-echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
-if test "${ac_cv_prog_gcc_traditional+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_pattern="Autoconf.*'x'"
- cat >conftest.$ac_ext <<_ACEOF
-#line 2090 "configure"
-#include "confdefs.h"
-#include <sgtty.h>
-Autoconf TIOCGETP
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-else
- ac_cv_prog_gcc_traditional=no
-fi
-rm -f conftest*
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat >conftest.$ac_ext <<_ACEOF
-#line 2105 "configure"
-#include "confdefs.h"
-#include <termio.h>
-Autoconf TCGETA
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "$ac_pattern" >/dev/null 2>&1; then
- ac_cv_prog_gcc_traditional=yes
-fi
-rm -f conftest*
-
- fi
-fi
-echo "$as_me:2118: 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
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/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.
-echo "$as_me:2137: checking for a BSD compatible install" >&5
-echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
- for ac_dir in $PATH; do
- IFS=$ac_save_IFS
- # Account for people who put trailing slashes in PATH elements.
- 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
- if $as_executable_p "$ac_dir/$ac_prog"; then
- if test $ac_prog = install &&
- grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
- # 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
- fi
- fi
- done
- ;;
- esac
- done
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- 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.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:2186: 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}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-# Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-echo "$as_me:2199: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
- ac_save_IFS=$IFS; IFS=$ac_path_separator
-ac_dummy="$PATH"
-for ac_dir in $ac_dummy; do
- IFS=$ac_save_IFS
- test -z "$ac_dir" && ac_dir=.
- $as_executable_p "$ac_dir/$ac_word" || continue
-ac_cv_prog_AR=""
-echo "$as_me:2214: found $ac_dir/$ac_word" >&5
-break
-done
-
- test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- echo "$as_me:2223: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
- echo "$as_me:2226: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-test -n "$ARFLAGS" || ARFLAGS="cr"
-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:2234: 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
- 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:2249: found $ac_dir/$ac_word" >&5
-break
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:2257: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:2260: result: no" >&5
-echo "${ECHO_T}no" >&6
-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:2269: 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:2284: 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:2293: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:2296: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-MAKE_SHELL=/bin/sh
-
-echo "$as_me:2307: 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 2315 "configure"
-#include "confdefs.h"
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2364: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2367: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2370: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2373: \$? = $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:2390: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:2393: 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:2398: 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 2404 "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;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2462: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2465: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2468: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2471: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_const=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_c_const=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2481: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-echo "$as_me:2491: checking for function prototypes" >&5
-echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6
-if test "$ac_cv_prog_cc_stdc" != no; then
- echo "$as_me:2494: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\EOF
-#define PROTOTYPES 1
-EOF
-
-else
- echo "$as_me:2502: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-echo "$as_me:2506: 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 2512 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-_ACEOF
-if { (eval echo "$as_me:2520: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:2526: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-#line 2548 "configure"
-#include "confdefs.h"
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-#line 2566 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2587 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- 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:2613: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:2616: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:2618: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2621: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_header_stdc=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:2634: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:2650: 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 2656 "configure"
-#include "confdefs.h"
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2662: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2665: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2668: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2671: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2681: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:2691: checking whether char is unsigned" >&5
-echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6
-if test "${ac_cv_c_char_unsigned+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2697 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-int _array_ [1 - 2 * !(((char) -1) < 0)]
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2709: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2712: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2715: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2718: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_char_unsigned=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_c_char_unsigned=yes
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2728: result: $ac_cv_c_char_unsigned" >&5
-echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6
-if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
- cat >>confdefs.h <<\EOF
-#define __CHAR_UNSIGNED__ 1
-EOF
-
-fi
-
-echo "$as_me:2737: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
-if test "${ac_cv_type_signal+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2743 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int
-main ()
-{
-int i;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2765: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2768: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2771: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2774: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_signal=void
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_signal=int
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2784: result: $ac_cv_type_signal" >&5
-echo "${ECHO_T}$ac_cv_type_signal" >&6
-
-cat >>confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-echo "$as_me:2791: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6
-if test "${ac_cv_type_size_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2797 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-if ((size_t *) 0)
- return 0;
-if (sizeof (size_t))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2812: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2815: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2818: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2821: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_size_t=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_size_t=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2831: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6
-if test $ac_cv_type_size_t = yes; then
- :
-else
-
-cat >>confdefs.h <<EOF
-#define size_t unsigned
-EOF
-
-fi
-
-echo "$as_me:2843: checking for ssize_t" >&5
-echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6
-if test "${ac_cv_type_ssize_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2849 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-if ((ssize_t *) 0)
- return 0;
-if (sizeof (ssize_t))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2864: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2867: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2870: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2873: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_ssize_t=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_type_ssize_t=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2883: result: $ac_cv_type_ssize_t" >&5
-echo "${ECHO_T}$ac_cv_type_ssize_t" >&6
-if test $ac_cv_type_ssize_t = yes; then
- :
-else
-
-cat >>confdefs.h <<EOF
-#define ssize_t int
-EOF
-
-fi
-
-echo "$as_me:2895: checking whether stat file-mode macros are broken" >&5
-echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6
-if test "${ac_cv_header_stat_broken+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 2901 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#if defined(S_ISBLK) && defined(S_IFDIR)
-# if S_ISBLK (S_IFDIR)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISBLK) && defined(S_IFCHR)
-# if S_ISBLK (S_IFCHR)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISLNK) && defined(S_IFREG)
-# if S_ISLNK (S_IFREG)
-You lose.
-# endif
-#endif
-
-#if defined(S_ISSOCK) && defined(S_IFREG)
-# if S_ISSOCK (S_IFREG)
-You lose.
-# endif
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "You lose" >/dev/null 2>&1; then
- ac_cv_header_stat_broken=yes
-else
- ac_cv_header_stat_broken=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:2940: result: $ac_cv_header_stat_broken" >&5
-echo "${ECHO_T}$ac_cv_header_stat_broken" >&6
-if test $ac_cv_header_stat_broken = yes; then
-
-cat >>confdefs.h <<\EOF
-#define STAT_MACROS_BROKEN 1
-EOF
-
-fi
-
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
- as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:2953: 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 2959 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <$ac_hdr>
-
-int
-main ()
-{
-if ((DIR *) 0)
-return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2974: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:2977: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2980: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:2983: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:2993: 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
-
-ac_header_dirent=$ac_hdr; break
-fi
-
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
- echo "$as_me:3006: 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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldir $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 3014 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char opendir ();
-int
-main ()
-{
-opendir ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3033: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3036: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3039: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3042: \$? = $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:3053: result: $ac_cv_lib_dir_opendir" >&5
-echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
-if test $ac_cv_lib_dir_opendir = yes; then
- LIBS="$LIBS -ldir"
-fi
-
-else
- echo "$as_me:3060: 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
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lx $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 3068 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char opendir ();
-int
-main ()
-{
-opendir ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3087: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3090: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3093: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3096: \$? = $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:3107: 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
-
-for ac_func in lstat memmove putenv select setenv setlocale \
- strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:3119: 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 3125 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-char (*f) ();
-
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3156: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3159: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3162: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3165: \$? = $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:3175: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:3185: checking for working strcoll" >&5
-echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6
-if test "${ac_cv_func_strcoll_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_strcoll_works=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3194 "configure"
-#include "confdefs.h"
-$ac_includes_default
-int
-main ()
-{
-exit (strcoll ("abc", "def") >= 0 ||
- strcoll ("ABC", "DEF") >= 0 ||
- strcoll ("123", "456") >= 0)
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3208: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3211: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3213: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3216: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_strcoll_works=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_strcoll_works=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:3228: result: $ac_cv_func_strcoll_works" >&5
-echo "${ECHO_T}$ac_cv_func_strcoll_works" >&6
-if test $ac_cv_func_strcoll_works = yes; then
-
-cat >>confdefs.h <<\EOF
-#define HAVE_STRCOLL 1
-EOF
-
-fi
-
-for ac_header in unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
- limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
- termcap.h termios.h termio.h sys/file.h locale.h memory.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:3243: 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 3249 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:3253: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:3259: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:3278: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:3288: checking for type of signal functions" >&5
-echo $ECHO_N "checking for type of signal functions... $ECHO_C" >&6
-if test "${bash_cv_signal_vintage+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 3295 "configure"
-#include "confdefs.h"
-#include <signal.h>
-int
-main ()
-{
-
- sigset_t ss;
- struct sigaction sa;
- sigemptyset(&ss); sigsuspend(&ss);
- sigaction(SIGINT, &sa, (struct sigaction *) 0);
- sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3313: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3316: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3319: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3322: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_signal_vintage=posix
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 3330 "configure"
-#include "confdefs.h"
-#include <signal.h>
-int
-main ()
-{
-
- int mask = sigmask(SIGINT);
- sigsetmask(mask); sigblock(mask); sigpause(mask);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3345: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3348: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3351: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3354: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_signal_vintage=4.2bsd
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 3362 "configure"
-#include "confdefs.h"
-
- #include <signal.h>
- RETSIGTYPE foo() { }
-int
-main ()
-{
-
- int mask = sigmask(SIGINT);
- sigset(SIGINT, foo); sigrelse(SIGINT);
- sighold(SIGINT); sigpause(SIGINT);
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3380: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3383: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3386: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3389: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_signal_vintage=svr3
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_signal_vintage=v7
-
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-
-fi
-
-echo "$as_me:3408: result: $bash_cv_signal_vintage" >&5
-echo "${ECHO_T}$bash_cv_signal_vintage" >&6
-if test "$bash_cv_signal_vintage" = posix; then
-cat >>confdefs.h <<\EOF
-#define HAVE_POSIX_SIGNALS 1
-EOF
-
-elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
-cat >>confdefs.h <<\EOF
-#define HAVE_BSD_SIGNALS 1
-EOF
-
-elif test "$bash_cv_signal_vintage" = svr3; then
-cat >>confdefs.h <<\EOF
-#define HAVE_USG_SIGHOLD 1
-EOF
-
-fi
-
-echo "$as_me:3427: checking if signal handlers must be reinstalled when invoked" >&5
-echo $ECHO_N "checking if signal handlers must be reinstalled when invoked... $ECHO_C" >&6
-if test "${bash_cv_must_reinstall_sighandlers+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- { echo "$as_me:3433: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&5
-echo "$as_me: WARNING: cannot check signal handling if cross compiling -- defaulting to no" >&2;}
- bash_cv_must_reinstall_sighandlers=no
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3439 "configure"
-#include "confdefs.h"
-
-#include <signal.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-typedef RETSIGTYPE sigfunc();
-
-int nsigint;
-
-#ifdef HAVE_POSIX_SIGNALS
-sigfunc *
-set_signal_handler(sig, handler)
- int sig;
- sigfunc *handler;
-{
- struct sigaction act, oact;
- act.sa_handler = handler;
- act.sa_flags = 0;
- sigemptyset (&act.sa_mask);
- sigemptyset (&oact.sa_mask);
- sigaction (sig, &act, &oact);
- return (oact.sa_handler);
-}
-#else
-#define set_signal_handler(s, h) signal(s, h)
-#endif
-
-RETSIGTYPE
-sigint(s)
-int s;
-{
- nsigint++;
-}
-
-main()
-{
- nsigint = 0;
- set_signal_handler(SIGINT, sigint);
- kill((int)getpid(), SIGINT);
- kill((int)getpid(), SIGINT);
- exit(nsigint != 2);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3487: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3490: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3492: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3495: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_must_reinstall_sighandlers=no
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_must_reinstall_sighandlers=yes
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-
-echo "$as_me:3508: result: $bash_cv_must_reinstall_sighandlers" >&5
-echo "${ECHO_T}$bash_cv_must_reinstall_sighandlers" >&6
-if test $bash_cv_must_reinstall_sighandlers = yes; then
-cat >>confdefs.h <<\EOF
-#define MUST_REINSTALL_SIGHANDLERS 1
-EOF
-
-fi
-
-echo "$as_me:3517: checking for presence of POSIX-style sigsetjmp/siglongjmp" >&5
-echo $ECHO_N "checking for presence of POSIX-style sigsetjmp/siglongjmp... $ECHO_C" >&6
-if test "${bash_cv_func_sigsetjmp+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- { echo "$as_me:3523: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&5
-echo "$as_me: WARNING: cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing" >&2;}
- bash_cv_func_sigsetjmp=missing
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3529 "configure"
-#include "confdefs.h"
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-#include <signal.h>
-#include <setjmp.h>
-
-main()
-{
-#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
-exit (1);
-#else
-
-int code;
-sigset_t set, oset;
-sigjmp_buf xx;
-
-/* get the mask */
-sigemptyset(&set);
-sigemptyset(&oset);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
-sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
-
-/* save it */
-code = sigsetjmp(xx, 1);
-if (code)
- exit(0); /* could get sigmask and compare to oset here. */
-
-/* change it */
-sigaddset(&set, SIGINT);
-sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
-
-/* and siglongjmp */
-siglongjmp(xx, 10);
-exit(1);
-#endif
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3571: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3574: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3576: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3579: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_func_sigsetjmp=present
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_func_sigsetjmp=missing
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-
-echo "$as_me:3592: result: $bash_cv_func_sigsetjmp" >&5
-echo "${ECHO_T}$bash_cv_func_sigsetjmp" >&6
-if test $bash_cv_func_sigsetjmp = present; then
-cat >>confdefs.h <<\EOF
-#define HAVE_POSIX_SIGSETJMP 1
-EOF
-
-fi
-
-echo "$as_me:3601: checking for lstat" >&5
-echo $ECHO_N "checking for lstat... $ECHO_C" >&6
-if test "${bash_cv_func_lstat+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3607 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-int
-main ()
-{
- lstat(".",(struct stat *)0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3622: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3625: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3628: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3631: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_func_lstat=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_func_lstat=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:3641: result: $bash_cv_func_lstat" >&5
-echo "${ECHO_T}$bash_cv_func_lstat" >&6
-if test $bash_cv_func_lstat = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_LSTAT 1
-EOF
-
-fi
-
-echo "$as_me:3650: checking whether or not strcoll and strcmp differ" >&5
-echo $ECHO_N "checking whether or not strcoll and strcmp differ... $ECHO_C" >&6
-if test "${bash_cv_func_strcoll_broken+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- { echo "$as_me:3656: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&5
-echo "$as_me: WARNING: cannot check strcoll if cross compiling -- defaulting to no" >&2;}
- bash_cv_func_strcoll_broken=no
-
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3662 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#if defined (HAVE_LOCALE_H)
-#include <locale.h>
-#endif
-
-main(c, v)
-int c;
-char *v[];
-{
- int r1, r2;
- char *deflocale, *defcoll;
-
-#ifdef HAVE_SETLOCALE
- deflocale = setlocale(LC_ALL, "");
- defcoll = setlocale(LC_COLLATE, "");
-#endif
-
-#ifdef HAVE_STRCOLL
- /* These two values are taken from tests/glob-test. */
- r1 = strcoll("abd", "aXd");
-#else
- r1 = 0;
-#endif
- r2 = strcmp("abd", "aXd");
-
- /* These two should both be greater than 0. It is permissible for
- a system to return different values, as long as the sign is the
- same. */
-
- /* Exit with 1 (failure) if these two values are both > 0, since
- this tests whether strcoll(3) is broken with respect to strcmp(3)
- in the default locale. */
- exit (r1 > 0 && r2 > 0);
-}
-
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:3702: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3705: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:3707: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3710: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_func_strcoll_broken=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_func_strcoll_broken=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-
-echo "$as_me:3723: result: $bash_cv_func_strcoll_broken" >&5
-echo "${ECHO_T}$bash_cv_func_strcoll_broken" >&6
-if test $bash_cv_func_strcoll_broken = yes; then
-cat >>confdefs.h <<\EOF
-#define STRCOLL_BROKEN 1
-EOF
-
-fi
-
-echo "$as_me:3732: checking whether getpw functions are declared in pwd.h" >&5
-echo $ECHO_N "checking whether getpw functions are declared in pwd.h... $ECHO_C" >&6
-if test "${bash_cv_getpw_declared+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3738 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#include <pwd.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "getpwuid" >/dev/null 2>&1; then
- bash_cv_getpw_declared=yes
-else
- bash_cv_getpw_declared=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$as_me:3758: result: $bash_cv_getpw_declared" >&5
-echo "${ECHO_T}$bash_cv_getpw_declared" >&6
-if test $bash_cv_getpw_declared = yes; then
-cat >>confdefs.h <<\EOF
-#define HAVE_GETPW_DECLS 1
-EOF
-
-fi
-
-echo "$as_me:3767: checking POSIX termios" >&5
-echo $ECHO_N "checking POSIX termios... $ECHO_C" >&6
-if test "${ac_cv_sys_posix_termios+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3773 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <unistd.h>
-#include <termios.h>
-int
-main ()
-{
-/* SunOS 4.0.3 has termios.h but not the library calls. */
- tcgetattr(0, 0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:3788: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:3791: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:3794: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3797: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_sys_posix_termios=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_sys_posix_termios=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:3807: result: $ac_cv_sys_posix_termios" >&5
-echo "${ECHO_T}$ac_cv_sys_posix_termios" >&6
-
-if test $ac_cv_sys_posix_termios = yes; then
- echo "$as_me:3811: checking whether termios.h defines TIOCGWINSZ" >&5
-echo $ECHO_N "checking whether termios.h defines TIOCGWINSZ... $ECHO_C" >&6
-if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3817 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <termios.h>
-#ifdef TIOCGWINSZ
- yes
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- ac_cv_sys_tiocgwinsz_in_termios_h=yes
-else
- ac_cv_sys_tiocgwinsz_in_termios_h=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:3835: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
-echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_termios_h" >&6
-
-fi
-if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then
- echo "$as_me:3840: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
-echo $ECHO_N "checking whether sys/ioctl.h defines TIOCGWINSZ... $ECHO_C" >&6
-if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3846 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#ifdef TIOCGWINSZ
- yes
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes
-else
- ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no
-fi
-rm -f conftest*
-
-fi
-echo "$as_me:3864: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
-echo "${ECHO_T}$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6
-
- if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then
-
-cat >>confdefs.h <<\EOF
-#define GWINSZ_IN_SYS_IOCTL 1
-EOF
-
- fi
-fi
-
-echo "$as_me:3876: checking whether signal handlers are of type void" >&5
-echo $ECHO_N "checking whether signal handlers are of type void... $ECHO_C" >&6
-if test "${bash_cv_void_sighandler+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3882 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C"
-#endif
-void (*signal ()) ();
-int
-main ()
-{
-int i;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:3902: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:3905: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:3908: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3911: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_void_sighandler=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_void_sighandler=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:3921: result: $bash_cv_void_sighandler" >&5
-echo "${ECHO_T}$bash_cv_void_sighandler" >&6
-if test $bash_cv_void_sighandler = yes; then
-cat >>confdefs.h <<\EOF
-#define VOID_SIGHANDLER 1
-EOF
-
-fi
-
-echo "$as_me:3930: checking for TIOCSTAT in sys/ioctl.h" >&5
-echo $ECHO_N "checking for TIOCSTAT in sys/ioctl.h... $ECHO_C" >&6
-if test "${bash_cv_tiocstat_in_ioctl+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3936 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-int
-main ()
-{
-int x = TIOCSTAT;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:3949: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:3952: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:3955: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:3958: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_tiocstat_in_ioctl=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_tiocstat_in_ioctl=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:3969: result: $bash_cv_tiocstat_in_ioctl" >&5
-echo "${ECHO_T}$bash_cv_tiocstat_in_ioctl" >&6
-if test $bash_cv_tiocstat_in_ioctl = yes; then
-cat >>confdefs.h <<\EOF
-#define TIOCSTAT_IN_SYS_IOCTL 1
-EOF
-
-fi
-
-echo "$as_me:3978: checking for FIONREAD in sys/ioctl.h" >&5
-echo $ECHO_N "checking for FIONREAD in sys/ioctl.h... $ECHO_C" >&6
-if test "${bash_cv_fionread_in_ioctl+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 3984 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-int
-main ()
-{
-int x = FIONREAD;
- ;
- 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
- bash_cv_fionread_in_ioctl=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_fionread_in_ioctl=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:4017: result: $bash_cv_fionread_in_ioctl" >&5
-echo "${ECHO_T}$bash_cv_fionread_in_ioctl" >&6
-if test $bash_cv_fionread_in_ioctl = yes; then
-cat >>confdefs.h <<\EOF
-#define FIONREAD_IN_SYS_IOCTL 1
-EOF
-
-fi
-
-echo "$as_me:4026: checking for speed_t in sys/types.h" >&5
-echo $ECHO_N "checking for speed_t in sys/types.h... $ECHO_C" >&6
-if test "${bash_cv_speed_t_in_sys_types+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4032 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int
-main ()
-{
-speed_t x;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4044: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4047: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4050: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4053: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_speed_t_in_sys_types=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_speed_t_in_sys_types=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:4064: result: $bash_cv_speed_t_in_sys_types" >&5
-echo "${ECHO_T}$bash_cv_speed_t_in_sys_types" >&6
-if test $bash_cv_speed_t_in_sys_types = yes; then
-cat >>confdefs.h <<\EOF
-#define SPEED_T_IN_SYS_TYPES 1
-EOF
-
-fi
-
-echo "$as_me:4073: checking for struct winsize in sys/ioctl.h and termios.h" >&5
-echo $ECHO_N "checking for struct winsize in sys/ioctl.h and termios.h... $ECHO_C" >&6
-if test "${bash_cv_struct_winsize_header+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4079 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/ioctl.h>
-int
-main ()
-{
-struct winsize x;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4092: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4095: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4098: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4101: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_struct_winsize_header=ioctl_h
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 4108 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <termios.h>
-int
-main ()
-{
-struct winsize x;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4121: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4124: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4127: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4130: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_struct_winsize_header=termios_h
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_struct_winsize_header=other
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-if test $bash_cv_struct_winsize_header = ioctl_h; then
- echo "$as_me:4145: result: sys/ioctl.h" >&5
-echo "${ECHO_T}sys/ioctl.h" >&6
- cat >>confdefs.h <<\EOF
-#define STRUCT_WINSIZE_IN_SYS_IOCTL 1
-EOF
-
-elif test $bash_cv_struct_winsize_header = termios_h; then
- echo "$as_me:4152: result: termios.h" >&5
-echo "${ECHO_T}termios.h" >&6
- cat >>confdefs.h <<\EOF
-#define STRUCT_WINSIZE_IN_TERMIOS 1
-EOF
-
-else
- echo "$as_me:4159: result: not found" >&5
-echo "${ECHO_T}not found" >&6
-fi
-
-echo "$as_me:4163: checking if struct dirent has a d_ino member" >&5
-echo $ECHO_N "checking if struct dirent has a d_ino member... $ECHO_C" >&6
-if test "${bash_cv_dirent_has_dino+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4169 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-
-int
-main ()
-{
-
-struct dirent d; int z; z = d.d_ino;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4203: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4206: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4209: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4212: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_dirent_has_dino=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_dirent_has_dino=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:4223: result: $bash_cv_dirent_has_dino" >&5
-echo "${ECHO_T}$bash_cv_dirent_has_dino" >&6
-if test $bash_cv_dirent_has_dino = yes; then
-cat >>confdefs.h <<\EOF
-#define STRUCT_DIRENT_HAS_D_INO 1
-EOF
-
-fi
-
-echo "$as_me:4232: checking if struct dirent has a d_fileno member" >&5
-echo $ECHO_N "checking if struct dirent has a d_fileno member... $ECHO_C" >&6
-if test "${bash_cv_dirent_has_d_fileno+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4238 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-#else
-# define dirent direct
-# ifdef HAVE_SYS_NDIR_H
-# include <sys/ndir.h>
-# endif /* SYSNDIR */
-# ifdef HAVE_SYS_DIR_H
-# include <sys/dir.h>
-# endif /* SYSDIR */
-# ifdef HAVE_NDIR_H
-# include <ndir.h>
-# endif
-#endif /* HAVE_DIRENT_H */
-
-int
-main ()
-{
-
-struct dirent d; int z; z = d.d_fileno;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4272: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:4275: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4278: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4281: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_dirent_has_d_fileno=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_dirent_has_d_fileno=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-
-echo "$as_me:4292: result: $bash_cv_dirent_has_d_fileno" >&5
-echo "${ECHO_T}$bash_cv_dirent_has_d_fileno" >&6
-if test $bash_cv_dirent_has_d_fileno = yes; then
-cat >>confdefs.h <<\EOF
-#define STRUCT_DIRENT_HAS_D_FILENO 1
-EOF
-
-fi
-
-case "$host_os" in
-aix*) prefer_curses=yes ;;
-esac
-
-if test "X$bash_cv_termcap_lib" = "X"; then
-_bash_needmsg=yes
-else
-echo "$as_me:4308: checking which library has the termcap functions" >&5
-echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6
-_bash_needmsg=
-fi
-if test "${bash_cv_termcap_lib+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- echo "$as_me:4315: checking for tgetent in -ltermcap" >&5
-echo $ECHO_N "checking for tgetent in -ltermcap... $ECHO_C" >&6
-if test "${ac_cv_lib_termcap_tgetent+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ltermcap $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4323 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main ()
-{
-tgetent ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4342: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4345: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4348: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4351: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_termcap_tgetent=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_termcap_tgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4362: result: $ac_cv_lib_termcap_tgetent" >&5
-echo "${ECHO_T}$ac_cv_lib_termcap_tgetent" >&6
-if test $ac_cv_lib_termcap_tgetent = yes; then
- bash_cv_termcap_lib=libtermcap
-else
- echo "$as_me:4367: checking for tgetent in -ltinfo" >&5
-echo $ECHO_N "checking for tgetent in -ltinfo... $ECHO_C" >&6
-if test "${ac_cv_lib_tinfo_tgetent+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ltinfo $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4375 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main ()
-{
-tgetent ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4394: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4397: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4400: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4403: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_tinfo_tgetent=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_tinfo_tgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4414: result: $ac_cv_lib_tinfo_tgetent" >&5
-echo "${ECHO_T}$ac_cv_lib_tinfo_tgetent" >&6
-if test $ac_cv_lib_tinfo_tgetent = yes; then
- bash_cv_termcap_lib=libtinfo
-else
- echo "$as_me:4419: checking for tgetent in -lcurses" >&5
-echo $ECHO_N "checking for tgetent in -lcurses... $ECHO_C" >&6
-if test "${ac_cv_lib_curses_tgetent+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4427 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main ()
-{
-tgetent ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4446: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4449: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4452: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4455: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_curses_tgetent=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_curses_tgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4466: result: $ac_cv_lib_curses_tgetent" >&5
-echo "${ECHO_T}$ac_cv_lib_curses_tgetent" >&6
-if test $ac_cv_lib_curses_tgetent = yes; then
- bash_cv_termcap_lib=libcurses
-else
- echo "$as_me:4471: checking for tgetent in -lncurses" >&5
-echo $ECHO_N "checking for tgetent in -lncurses... $ECHO_C" >&6
-if test "${ac_cv_lib_ncurses_tgetent+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lncurses $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 4479 "configure"
-#include "confdefs.h"
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgetent ();
-int
-main ()
-{
-tgetent ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4498: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4501: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4504: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4507: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_ncurses_tgetent=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_lib_ncurses_tgetent=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:4518: result: $ac_cv_lib_ncurses_tgetent" >&5
-echo "${ECHO_T}$ac_cv_lib_ncurses_tgetent" >&6
-if test $ac_cv_lib_ncurses_tgetent = yes; then
- bash_cv_termcap_lib=libncurses
-else
- bash_cv_termcap_lib=gnutermcap
-fi
-
-fi
-
-fi
-
-fi
-
-fi
-
-if test "X$_bash_needmsg" = "Xyes"; then
-echo "$as_me:4535: checking which library has the termcap functions" >&5
-echo $ECHO_N "checking which library has the termcap functions... $ECHO_C" >&6
-fi
-echo "$as_me:4538: result: using $bash_cv_termcap_lib" >&5
-echo "${ECHO_T}using $bash_cv_termcap_lib" >&6
-if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
-LDFLAGS="$LDFLAGS -L./lib/termcap"
-TERMCAP_LIB="./lib/termcap/libtermcap.a"
-TERMCAP_DEP="./lib/termcap/libtermcap.a"
-elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
-TERMCAP_LIB=-ltermcap
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libtinfo; then
-TERMCAP_LIB=-ltinfo
-TERMCAP_DEP=
-elif test $bash_cv_termcap_lib = libncurses; then
-TERMCAP_LIB=-lncurses
-TERMCAP_DEP=
-else
-TERMCAP_LIB=-lcurses
-TERMCAP_DEP=
-fi
-
-if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
- if test "$prefer_curses" = yes; then
- TERMCAP_LIB=-lcurses
- else
- TERMCAP_LIB=-ltermcap #default
- fi
-fi
-
-for ac_header in wctype.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4569: 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 4575 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:4579: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:4585: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:4604: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-for ac_header in wchar.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4617: 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 4623 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:4627: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:4633: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:4652: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-for ac_header in langinfo.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4665: 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 4671 "configure"
-#include "confdefs.h"
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:4675: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- egrep -v '^ *\+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:4681: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
- cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_ext
-fi
-echo "$as_me:4700: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-EOF
-
-fi
-done
-
-echo "$as_me:4710: checking for mbsrtowcs" >&5
-echo $ECHO_N "checking for mbsrtowcs... $ECHO_C" >&6
-if test "${ac_cv_func_mbsrtowcs+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4716 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char mbsrtowcs (); 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 mbsrtowcs ();
-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_mbsrtowcs) || defined (__stub___mbsrtowcs)
-choke me
-#else
-f = mbsrtowcs;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4747: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4750: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4753: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4756: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_mbsrtowcs=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_mbsrtowcs=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:4766: result: $ac_cv_func_mbsrtowcs" >&5
-echo "${ECHO_T}$ac_cv_func_mbsrtowcs" >&6
-if test $ac_cv_func_mbsrtowcs = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_MBSRTOWCS 1
-EOF
-
-fi
-
-echo "$as_me:4775: checking for wcwidth" >&5
-echo $ECHO_N "checking for wcwidth... $ECHO_C" >&6
-if test "${ac_cv_func_wcwidth+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4781 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char wcwidth (); 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 wcwidth ();
-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_wcwidth) || defined (__stub___wcwidth)
-choke me
-#else
-f = wcwidth;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4812: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4815: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4818: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4821: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_wcwidth=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-ac_cv_func_wcwidth=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:4831: result: $ac_cv_func_wcwidth" >&5
-echo "${ECHO_T}$ac_cv_func_wcwidth" >&6
-if test $ac_cv_func_wcwidth = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_WCWIDTH 1
-EOF
-
-fi
-
-echo "$as_me:4840: checking for mbstate_t" >&5
-echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6
-if test "${bash_cv_have_mbstate_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- { { echo "$as_me:4846: error: cannot run test program while cross compiling" >&5
-echo "$as_me: error: cannot run test program while cross compiling" >&2;}
- { (exit 1); exit 1; }; }
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4851 "configure"
-#include "confdefs.h"
-
-#include <wchar.h>
-int
-main ()
-{
- mbstate_t ps;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:4863: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4866: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:4868: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4871: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_have_mbstate_t=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_have_mbstate_t=no
-fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:4883: result: $bash_cv_have_mbstate_t" >&5
-echo "${ECHO_T}$bash_cv_have_mbstate_t" >&6
-if test $bash_cv_have_mbstate_t = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_MBSTATE_T 1
-EOF
-
-fi
-
-echo "$as_me:4892: checking for nl_langinfo and CODESET" >&5
-echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
-if test "${bash_cv_langinfo_codeset+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 4898 "configure"
-#include "confdefs.h"
-#include <langinfo.h>
-int
-main ()
-{
-char* cs = nl_langinfo(CODESET);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4910: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:4913: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4916: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:4919: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- bash_cv_langinfo_codeset=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-bash_cv_langinfo_codeset=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:4929: result: $bash_cv_langinfo_codeset" >&5
-echo "${ECHO_T}$bash_cv_langinfo_codeset" >&6
-if test $bash_cv_langinfo_codeset = yes; then
- cat >>confdefs.h <<\EOF
-#define HAVE_LANGINFO_CODESET 1
-EOF
-
-fi
-
-case "$host_cpu" in
-*cray*) LOCAL_CFLAGS=-DCRAY ;;
-*s390*) LOCAL_CFLAGS=-fsigned-char ;;
-esac
-
-case "$host_os" in
-isc*) LOCAL_CFLAGS=-Disc386 ;;
-esac
-
-# shared library configuration section
-#
-# Shared object configuration section. These values are generated by
-# ${srcdir}/support/shobj-conf
-#
-if test -f ${srcdir}/support/shobj-conf; then
- echo "$as_me:4953: checking configuration for building shared libraries" >&5
-echo $ECHO_N "checking configuration for building shared libraries... $ECHO_C" >&6
- eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
-
- echo "$as_me:4957: result: $SHLIB_STATUS" >&5
-echo "${ECHO_T}$SHLIB_STATUS" >&6
-
- # SHLIB_STATUS is either `supported' or `unsupported'. If it's
- # `unsupported', turn off any default shared library building
- if test "$SHLIB_STATUS" = 'unsupported'; then
- opt_shared_libs=no
- fi
-
- # shared library versioning
- # quoted for m4 so I can use character classes
- SHLIB_MAJOR=`expr "$LIBVERSION" : '\([0-9]\)\..*'`
- SHLIB_MINOR=`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`
-
-fi
-
-if test "$opt_static_libs" = "yes"; then
- STATIC_TARGET=static
- STATIC_INSTALL_TARGET=install-static
-fi
-if test "$opt_shared_libs" = "yes"; then
- SHARED_TARGET=shared
- SHARED_INSTALL_TARGET=install-shared
-fi
-
-case "$host_os" in
-msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file
-*) BUILD_DIR=`pwd` ;;
-esac
-
-ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile shlib/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
-# 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.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `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.
-{
- (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
- 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
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# 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
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:5068: 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.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-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="\\
-readline config.status 4.3
-configured by $0, generated by GNU Autoconf 2.52,
- 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
- 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)
- 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:5244: 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:5263: 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
- shift
-done
-
-exec 5>>config.log
-cat >&5 << _ACEOF
-
-## ----------------------- ##
-## Running config.status. ##
-## ----------------------- ##
-
-This file was extended by $as_me (readline 4.3) 2.52, 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`
-
-_ACEOF
-EOF
-
-cat >>$CONFIG_STATUS <<\EOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
- "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
- "shlib/Makefile" ) CONFIG_FILES="$CONFIG_FILES shlib/Makefile" ;;
- "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
- *) { { echo "$as_me:5304: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# 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
-
-# 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,@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,@SET_MAKE@,$SET_MAKE,;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,@CPP@,$CPP,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@AR@,$AR,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@MAKE_SHELL@,$MAKE_SHELL,;t t
-s,@SHOBJ_CC@,$SHOBJ_CC,;t t
-s,@SHOBJ_CFLAGS@,$SHOBJ_CFLAGS,;t t
-s,@SHOBJ_LD@,$SHOBJ_LD,;t t
-s,@SHOBJ_LDFLAGS@,$SHOBJ_LDFLAGS,;t t
-s,@SHOBJ_XLDFLAGS@,$SHOBJ_XLDFLAGS,;t t
-s,@SHOBJ_LIBS@,$SHOBJ_LIBS,;t t
-s,@SHOBJ_STATUS@,$SHOBJ_STATUS,;t t
-s,@SHLIB_STATUS@,$SHLIB_STATUS,;t t
-s,@SHLIB_XLDFLAGS@,$SHLIB_XLDFLAGS,;t t
-s,@SHLIB_LIBSUFF@,$SHLIB_LIBSUFF,;t t
-s,@SHLIB_LIBVERSION@,$SHLIB_LIBVERSION,;t t
-s,@SHLIB_LIBS@,$SHLIB_LIBS,;t t
-s,@SHLIB_MAJOR@,$SHLIB_MAJOR,;t t
-s,@SHLIB_MINOR@,$SHLIB_MINOR,;t t
-s,@STATIC_TARGET@,$STATIC_TARGET,;t t
-s,@SHARED_TARGET@,$SHARED_TARGET,;t t
-s,@STATIC_INSTALL_TARGET@,$STATIC_INSTALL_TARGET,;t t
-s,@SHARED_INSTALL_TARGET@,$SHARED_INSTALL_TARGET,;t t
-s,@BUILD_DIR@,$BUILD_DIR,;t t
-s,@LOCAL_CFLAGS@,$LOCAL_CFLAGS,;t t
-s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t
-s,@LOCAL_DEFS@,$LOCAL_DEFS,;t t
-s,@ARFLAGS@,$ARFLAGS,;t t
-s,@LIBVERSION@,$LIBVERSION,;t t
-s,@TERMCAP_LIB@,$TERMCAP_LIB,;t t
-CEOF
-
-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"
-
-EOF
-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".
- 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
-
- # 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
- { 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.
- ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- 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.
- ac_srcdir=$ac_dots$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_dots$srcdir ;;
- esac
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_dots$INSTALL ;;
- esac
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:5549: 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:5567: 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:5580: 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
-
-#
-# 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.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;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_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.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
-
- test x"$ac_file" != x- && { echo "$as_me:5641: 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:5652: 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:5665: 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
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h. The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status. Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\EOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\(\([^ (][^ (]*\)([^)]*)\)[ ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp
-t end
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-EOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless. Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\EOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-EOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo ' :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
- # Write a limited-size here document to $tmp/defines.sed.
- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#define' lines.
- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/defines.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
- rm -f conftest.defines
- mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo ' fi # egrep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
- # Write a limited-size here document to $tmp/undefs.sed.
- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#undef'
- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
- rm -f conftest.undefs
- mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-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
- 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:5782: $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
- { 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
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-done
-EOF
-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 )
-# Makefile uses this timestamp file to record whether config.h is up to date.
-echo > stamp-h
- ;;
- esac
-done
-EOF
-
-cat >>$CONFIG_STATUS <<\EOF
-
-{ (exit 0); exit 0; }
-EOF
-chmod +x $CONFIG_STATUS
-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
-
diff --git a/readline-4.3/configure.in b/readline-4.3/configure.in
deleted file mode 100644
index bc78f8a..0000000
--- a/readline-4.3/configure.in
+++ /dev/null
@@ -1,206 +0,0 @@
-dnl
-dnl Configure script for readline library
-dnl
-dnl report bugs to chet@po.cwru.edu
-dnl
-dnl Process this file with autoconf to produce a configure script.
-AC_REVISION([for Readline 4.3, version 2.45, from autoconf version] AC_ACVERSION)
-
-AC_INIT(readline, 4.3, bug-readline@gnu.org)
-
-dnl make sure we are using a recent autoconf version
-AC_PREREQ(2.50)
-
-AC_CONFIG_SRCDIR(readline.h)
-AC_CONFIG_AUX_DIR(./support)
-AC_CONFIG_HEADERS(config.h)
-
-dnl update the value of RL_READLINE_VERSION in readline.h when this changes
-LIBVERSION=4.3
-
-AC_CANONICAL_HOST
-
-dnl configure defaults
-opt_curses=no
-
-dnl arguments to configure
-AC_ARG_WITH(curses, AC_HELP_STRING([--with-curses], [use the curses library instead of the termcap library]), opt_curses=$withval)
-
-if test "$opt_curses" = "yes"; then
- prefer_curses=yes
-fi
-
-dnl option parsing for optional features
-opt_static_libs=yes
-opt_shared_libs=yes
-
-AC_ARG_ENABLE(shared, AC_HELP_STRING([--enable-shared], [build shared libraries [[default=YES]]]), opt_shared_libs=$enableval)
-AC_ARG_ENABLE(static, AC_HELP_STRING([--enable-static], [build static libraries [[default=YES]]]), opt_static_libs=$enableval)
-
-echo ""
-echo "Beginning configuration for readline-$LIBVERSION for ${host_cpu}-${host_vendor}-${host_os}"
-echo ""
-
-# We want these before the checks, so the checks can modify their values.
-test -z "$CFLAGS" && CFLAGS=-g auto_cflags=1
-
-AC_PROG_MAKE_SET
-AC_PROG_CC
-dnl AC_AIX
-AC_MINIX
-
-# If we're using gcc and the user hasn't specified CFLAGS, add -O to CFLAGS.
-test -n "$GCC" && test -n "$auto_cflags" && CFLAGS="$CFLAGS -O"
-
-AC_PROG_GCC_TRADITIONAL
-AC_PROG_INSTALL
-AC_CHECK_PROG(AR, ar, , ar)
-dnl Set default for ARFLAGS, since autoconf does not have a macro for it.
-dnl This allows people to set it when running configure or make
-test -n "$ARFLAGS" || ARFLAGS="cr"
-AC_PROG_RANLIB
-
-MAKE_SHELL=/bin/sh
-AC_SUBST(MAKE_SHELL)
-
-AC_C_CONST
-AC_C_PROTOTYPES
-AC_C_CHAR_UNSIGNED
-
-AC_TYPE_SIGNAL
-
-AC_TYPE_SIZE_T
-AC_CHECK_TYPE(ssize_t, int)
-
-AC_HEADER_STAT
-AC_HEADER_DIRENT
-
-AC_CHECK_FUNCS(lstat memmove putenv select setenv setlocale \
- strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit)
-
-AC_FUNC_STRCOLL
-
-AC_CHECK_HEADERS(unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
- limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
- termcap.h termios.h termio.h sys/file.h locale.h memory.h )
-
-BASH_SYS_SIGNAL_VINTAGE
-BASH_SYS_REINSTALL_SIGHANDLERS
-
-BASH_FUNC_POSIX_SETJMP
-BASH_FUNC_LSTAT
-BASH_FUNC_STRCOLL
-
-BASH_CHECK_GETPW_FUNCS
-
-AC_HEADER_TIOCGWINSZ
-
-BASH_TYPE_SIGHANDLER
-BASH_HAVE_TIOCSTAT
-BASH_HAVE_FIONREAD
-BASH_CHECK_SPEED_T
-BASH_STRUCT_WINSIZE
-BASH_STRUCT_DIRENT_D_INO
-BASH_STRUCT_DIRENT_D_FILENO
-
-dnl yuck
-case "$host_os" in
-aix*) prefer_curses=yes ;;
-esac
-BASH_CHECK_LIB_TERMCAP
-if test "$TERMCAP_LIB" = "./lib/termcap/libtermcap.a"; then
- if test "$prefer_curses" = yes; then
- TERMCAP_LIB=-lcurses
- else
- TERMCAP_LIB=-ltermcap #default
- fi
-fi
-
-BASH_CHECK_MULTIBYTE
-
-case "$host_cpu" in
-*cray*) LOCAL_CFLAGS=-DCRAY ;;
-*s390*) LOCAL_CFLAGS=-fsigned-char ;;
-esac
-
-case "$host_os" in
-isc*) LOCAL_CFLAGS=-Disc386 ;;
-esac
-
-# shared library configuration section
-#
-# Shared object configuration section. These values are generated by
-# ${srcdir}/support/shobj-conf
-#
-if test -f ${srcdir}/support/shobj-conf; then
- AC_MSG_CHECKING(configuration for building shared libraries)
- eval `${CONFIG_SHELL-/bin/sh} ${srcdir}/support/shobj-conf -C "${CC}" -c ${host_cpu} -o ${host_os} -v ${host_vendor}`
- AC_SUBST(SHOBJ_CC)
- AC_SUBST(SHOBJ_CFLAGS)
- AC_SUBST(SHOBJ_LD)
- AC_SUBST(SHOBJ_LDFLAGS)
- AC_SUBST(SHOBJ_XLDFLAGS)
- AC_SUBST(SHOBJ_LIBS)
- AC_SUBST(SHOBJ_STATUS)
- AC_SUBST(SHLIB_STATUS)
- AC_SUBST(SHLIB_XLDFLAGS)
- AC_SUBST(SHLIB_LIBSUFF)
- AC_SUBST(SHLIB_LIBVERSION)
- AC_SUBST(SHLIB_LIBS)
- AC_MSG_RESULT($SHLIB_STATUS)
-
- # SHLIB_STATUS is either `supported' or `unsupported'. If it's
- # `unsupported', turn off any default shared library building
- if test "$SHLIB_STATUS" = 'unsupported'; then
- opt_shared_libs=no
- fi
-
- # shared library versioning
- # quoted for m4 so I can use character classes
- SHLIB_MAJOR=[`expr "$LIBVERSION" : '\([0-9]\)\..*'`]
- SHLIB_MINOR=[`expr "$LIBVERSION" : '[0-9]\.\([0-9]\).*'`]
- AC_SUBST(SHLIB_MAJOR)
- AC_SUBST(SHLIB_MINOR)
-fi
-
-if test "$opt_static_libs" = "yes"; then
- STATIC_TARGET=static
- STATIC_INSTALL_TARGET=install-static
-fi
-if test "$opt_shared_libs" = "yes"; then
- SHARED_TARGET=shared
- SHARED_INSTALL_TARGET=install-shared
-fi
-
-AC_SUBST(STATIC_TARGET)
-AC_SUBST(SHARED_TARGET)
-AC_SUBST(STATIC_INSTALL_TARGET)
-AC_SUBST(SHARED_INSTALL_TARGET)
-
-case "$host_os" in
-msdosdjgpp*) BUILD_DIR=`pwd.exe` ;; # to prevent //d/path/file
-*) BUILD_DIR=`pwd` ;;
-esac
-
-AC_SUBST(BUILD_DIR)
-
-AC_SUBST(CFLAGS)
-AC_SUBST(LOCAL_CFLAGS)
-AC_SUBST(LOCAL_LDFLAGS)
-AC_SUBST(LOCAL_DEFS)
-
-AC_SUBST(AR)
-AC_SUBST(ARFLAGS)
-
-AC_SUBST(host_cpu)
-AC_SUBST(host_os)
-
-AC_SUBST(LIBVERSION)
-
-AC_SUBST(TERMCAP_LIB)
-
-AC_OUTPUT([Makefile doc/Makefile examples/Makefile shlib/Makefile],
-[
-# Makefile uses this timestamp file to record whether config.h is up to date.
-echo > stamp-h
-])
diff --git a/readline-4.3/display.c b/readline-4.3/display.c
deleted file mode 100644
index 5150ea6..0000000
--- a/readline-4.3/display.c
+++ /dev/null
@@ -1,2196 +0,0 @@
-/* display.c -- readline redisplay facility. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include "posixstat.h"
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-/* Termcap library stuff. */
-#include "tcap.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strchr (), *strrchr ();
-#endif /* !strchr && !__STDC__ */
-
-#if defined (HACK_TERMCAP_MOTION)
-extern char *_rl_term_forward_char;
-#endif
-
-static void update_line PARAMS((char *, char *, int, int, int, int));
-static void space_to_eol PARAMS((int));
-static void delete_chars PARAMS((int));
-static void insert_some_chars PARAMS((char *, int, int));
-static void cr PARAMS((void));
-
-#if defined (HANDLE_MULTIBYTE)
-static int _rl_col_width PARAMS((char *, int, int));
-static int *_rl_wrapped_line;
-#else
-# define _rl_col_width(l, s, e) (((e) <= (s)) ? 0 : (e) - (s))
-#endif
-
-static int *inv_lbreaks, *vis_lbreaks;
-static int inv_lbsize, vis_lbsize;
-
-/* Heuristic used to decide whether it is faster to move from CUR to NEW
- by backing up or outputting a carriage return and moving forward. */
-#define CR_FASTER(new, cur) (((new) + 1) < ((cur) - (new)))
-
-/* **************************************************************** */
-/* */
-/* Display stuff */
-/* */
-/* **************************************************************** */
-
-/* This is the stuff that is hard for me. I never seem to write good
- display routines in C. Let's see how I do this time. */
-
-/* (PWP) Well... Good for a simple line updater, but totally ignores
- the problems of input lines longer than the screen width.
-
- update_line and the code that calls it makes a multiple line,
- automatically wrapping line update. Careful attention needs
- to be paid to the vertical position variables. */
-
-/* Keep two buffers; one which reflects the current contents of the
- screen, and the other to draw what we think the new contents should
- be. Then compare the buffers, and make whatever changes to the
- screen itself that we should. Finally, make the buffer that we
- just drew into be the one which reflects the current contents of the
- screen, and place the cursor where it belongs.
-
- Commands that want to can fix the display themselves, and then let
- this function know that the display has been fixed by setting the
- RL_DISPLAY_FIXED variable. This is good for efficiency. */
-
-/* Application-specific redisplay function. */
-rl_voidfunc_t *rl_redisplay_function = rl_redisplay;
-
-/* Global variables declared here. */
-/* What YOU turn on when you have handled all redisplay yourself. */
-int rl_display_fixed = 0;
-
-int _rl_suppress_redisplay = 0;
-
-/* The stuff that gets printed out before the actual text of the line.
- This is usually pointing to rl_prompt. */
-char *rl_display_prompt = (char *)NULL;
-
-/* Pseudo-global variables declared here. */
-/* The visible cursor position. If you print some text, adjust this. */
-int _rl_last_c_pos = 0;
-int _rl_last_v_pos = 0;
-
-/* Number of lines currently on screen minus 1. */
-int _rl_vis_botlin = 0;
-
-/* Variables used only in this file. */
-/* The last left edge of text that was displayed. This is used when
- doing horizontal scrolling. It shifts in thirds of a screenwidth. */
-static int last_lmargin;
-
-/* The line display buffers. One is the line currently displayed on
- the screen. The other is the line about to be displayed. */
-static char *visible_line = (char *)NULL;
-static char *invisible_line = (char *)NULL;
-
-/* A buffer for `modeline' messages. */
-static char msg_buf[128];
-
-/* Non-zero forces the redisplay even if we thought it was unnecessary. */
-static int forced_display;
-
-/* Default and initial buffer size. Can grow. */
-static int line_size = 1024;
-
-/* Variables to keep track of the expanded prompt string, which may
- include invisible characters. */
-
-static char *local_prompt, *local_prompt_prefix;
-static int prompt_visible_length, prompt_prefix_length;
-
-/* The number of invisible characters in the line currently being
- displayed on the screen. */
-static int visible_wrap_offset;
-
-/* The number of invisible characters in the prompt string. Static so it
- can be shared between rl_redisplay and update_line */
-static int wrap_offset;
-
-/* The index of the last invisible character in the prompt string. */
-static int prompt_last_invisible;
-
-/* The length (buffer offset) of the first line of the last (possibly
- multi-line) buffer displayed on the screen. */
-static int visible_first_line_len;
-
-/* Number of invisible characters on the first physical line of the prompt.
- Only valid when the number of physical characters in the prompt exceeds
- (or is equal to) _rl_screenwidth. */
-static int prompt_invis_chars_first_line;
-
-static int prompt_last_screen_line;
-
-/* Expand the prompt string S and return the number of visible
- characters in *LP, if LP is not null. This is currently more-or-less
- a placeholder for expansion. LIP, if non-null is a place to store the
- index of the last invisible character in the returned string. NIFLP,
- if non-zero, is a place to store the number of invisible characters in
- the first prompt line. */
-
-/* Current implementation:
- \001 (^A) start non-visible characters
- \002 (^B) end non-visible characters
- all characters except \001 and \002 (following a \001) are copied to
- the returned string; all characters except those between \001 and
- \002 are assumed to be `visible'. */
-
-static char *
-expand_prompt (pmt, lp, lip, niflp)
- char *pmt;
- int *lp, *lip, *niflp;
-{
- char *r, *ret, *p;
- int l, rl, last, ignoring, ninvis, invfl;
-
- /* Short-circuit if we can. */
- if (strchr (pmt, RL_PROMPT_START_IGNORE) == 0)
- {
- r = savestring (pmt);
- if (lp)
- *lp = strlen (r);
- return r;
- }
-
- l = strlen (pmt);
- r = ret = (char *)xmalloc (l + 1);
-
- invfl = 0; /* invisible chars in first line of prompt */
-
- for (rl = ignoring = last = ninvis = 0, p = pmt; p && *p; p++)
- {
- /* This code strips the invisible character string markers
- RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE */
- if (*p == RL_PROMPT_START_IGNORE)
- {
- ignoring++;
- continue;
- }
- else if (ignoring && *p == RL_PROMPT_END_IGNORE)
- {
- ignoring = 0;
- last = r - ret - 1;
- continue;
- }
- else
- {
- *r++ = *p;
- if (!ignoring)
- rl++;
- else
- ninvis++;
- if (rl == _rl_screenwidth)
- invfl = ninvis;
- }
- }
-
- if (rl < _rl_screenwidth)
- invfl = ninvis;
-
- *r = '\0';
- if (lp)
- *lp = rl;
- if (lip)
- *lip = last;
- if (niflp)
- *niflp = invfl;
- return ret;
-}
-
-/* Just strip out RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE from
- PMT and return the rest of PMT. */
-char *
-_rl_strip_prompt (pmt)
- char *pmt;
-{
- char *ret;
-
- ret = expand_prompt (pmt, (int *)NULL, (int *)NULL, (int *)NULL);
- return ret;
-}
-
-/*
- * Expand the prompt string into the various display components, if
- * necessary.
- *
- * local_prompt = expanded last line of string in rl_display_prompt
- * (portion after the final newline)
- * local_prompt_prefix = portion before last newline of rl_display_prompt,
- * expanded via expand_prompt
- * prompt_visible_length = number of visible characters in local_prompt
- * prompt_prefix_length = number of visible characters in local_prompt_prefix
- *
- * This function is called once per call to readline(). It may also be
- * called arbitrarily to expand the primary prompt.
- *
- * The return value is the number of visible characters on the last line
- * of the (possibly multi-line) prompt.
- */
-int
-rl_expand_prompt (prompt)
- char *prompt;
-{
- char *p, *t;
- int c;
-
- /* Clear out any saved values. */
- FREE (local_prompt);
- FREE (local_prompt_prefix);
-
- local_prompt = local_prompt_prefix = (char *)0;
- prompt_last_invisible = prompt_visible_length = 0;
-
- if (prompt == 0 || *prompt == 0)
- return (0);
-
- p = strrchr (prompt, '\n');
- if (!p)
- {
- /* The prompt is only one logical line, though it might wrap. */
- local_prompt = expand_prompt (prompt, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line);
- local_prompt_prefix = (char *)0;
- return (prompt_visible_length);
- }
- else
- {
- /* The prompt spans multiple lines. */
- t = ++p;
- local_prompt = expand_prompt (p, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line);
- c = *t; *t = '\0';
- /* The portion of the prompt string up to and including the
- final newline is now null-terminated. */
- local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
- (int *)NULL,
- &prompt_invis_chars_first_line);
- *t = c;
- return (prompt_prefix_length);
- }
-}
-
-/* Initialize the VISIBLE_LINE and INVISIBLE_LINE arrays, and their associated
- arrays of line break markers. MINSIZE is the minimum size of VISIBLE_LINE
- and INVISIBLE_LINE; if it is greater than LINE_SIZE, LINE_SIZE is
- increased. If the lines have already been allocated, this ensures that
- they can hold at least MINSIZE characters. */
-static void
-init_line_structures (minsize)
- int minsize;
-{
- register int n;
-
- if (invisible_line == 0) /* initialize it */
- {
- if (line_size < minsize)
- line_size = minsize;
- visible_line = (char *)xmalloc (line_size);
- invisible_line = (char *)xmalloc (line_size);
- }
- else if (line_size < minsize) /* ensure it can hold MINSIZE chars */
- {
- line_size *= 2;
- if (line_size < minsize)
- line_size = minsize;
- visible_line = (char *)xrealloc (visible_line, line_size);
- invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
-
- for (n = minsize; n < line_size; n++)
- {
- visible_line[n] = 0;
- invisible_line[n] = 1;
- }
-
- if (vis_lbreaks == 0)
- {
- /* should be enough. */
- inv_lbsize = vis_lbsize = 256;
- inv_lbreaks = (int *)xmalloc (inv_lbsize * sizeof (int));
- vis_lbreaks = (int *)xmalloc (vis_lbsize * sizeof (int));
-#if defined (HANDLE_MULTIBYTE)
- _rl_wrapped_line = (int *)xmalloc (vis_lbsize * sizeof (int));
-#endif
- inv_lbreaks[0] = vis_lbreaks[0] = 0;
- }
-}
-
-/* Basic redisplay algorithm. */
-void
-rl_redisplay ()
-{
- register int in, out, c, linenum, cursor_linenum;
- register char *line;
- int c_pos, inv_botlin, lb_botlin, lb_linenum;
- int newlines, lpos, temp;
- char *prompt_this_line;
-#if defined (HANDLE_MULTIBYTE)
- wchar_t wc;
- size_t wc_bytes;
- int wc_width;
- mbstate_t ps;
- int _rl_wrapped_multicolumn = 0;
-#endif
-
- if (!readline_echoing_p)
- return;
-
- if (!rl_display_prompt)
- rl_display_prompt = "";
-
- if (invisible_line == 0)
- {
- init_line_structures (0);
- rl_on_new_line ();
- }
-
- /* Draw the line into the buffer. */
- c_pos = -1;
-
- line = invisible_line;
- out = inv_botlin = 0;
-
- /* Mark the line as modified or not. We only do this for history
- lines. */
- if (_rl_mark_modified_lines && current_history () && rl_undo_list)
- {
- line[out++] = '*';
- line[out] = '\0';
- }
-
- /* If someone thought that the redisplay was handled, but the currently
- visible line has a different modification state than the one about
- to become visible, then correct the caller's misconception. */
- if (visible_line[0] != invisible_line[0])
- rl_display_fixed = 0;
-
- /* If the prompt to be displayed is the `primary' readline prompt (the
- one passed to readline()), use the values we have already expanded.
- If not, use what's already in rl_display_prompt. WRAP_OFFSET is the
- number of non-visible characters in the prompt string. */
- if (rl_display_prompt == rl_prompt || local_prompt)
- {
- int local_len = local_prompt ? strlen (local_prompt) : 0;
- if (local_prompt_prefix && forced_display)
- _rl_output_some_chars (local_prompt_prefix, strlen (local_prompt_prefix));
-
- if (local_len > 0)
- {
- temp = local_len + out + 2;
- if (temp >= line_size)
- {
- line_size = (temp + 1024) - (temp % 1024);
- visible_line = (char *)xrealloc (visible_line, line_size);
- line = invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
- strncpy (line + out, local_prompt, local_len);
- out += local_len;
- }
- line[out] = '\0';
- wrap_offset = local_len - prompt_visible_length;
- }
- else
- {
- int pmtlen;
- prompt_this_line = strrchr (rl_display_prompt, '\n');
- if (!prompt_this_line)
- prompt_this_line = rl_display_prompt;
- else
- {
- prompt_this_line++;
- pmtlen = prompt_this_line - rl_display_prompt; /* temp var */
- if (forced_display)
- {
- _rl_output_some_chars (rl_display_prompt, pmtlen);
- /* Make sure we are at column zero even after a newline,
- regardless of the state of terminal output processing. */
- if (pmtlen < 2 || prompt_this_line[-2] != '\r')
- cr ();
- }
- }
-
- pmtlen = strlen (prompt_this_line);
- temp = pmtlen + out + 2;
- if (temp >= line_size)
- {
- line_size = (temp + 1024) - (temp % 1024);
- visible_line = (char *)xrealloc (visible_line, line_size);
- line = invisible_line = (char *)xrealloc (invisible_line, line_size);
- }
- strncpy (line + out, prompt_this_line, pmtlen);
- out += pmtlen;
- line[out] = '\0';
- wrap_offset = prompt_invis_chars_first_line = 0;
- }
-
-#define CHECK_INV_LBREAKS() \
- do { \
- if (newlines >= (inv_lbsize - 2)) \
- { \
- inv_lbsize *= 2; \
- inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
- } \
- } while (0)
-
-#if defined (HANDLE_MULTIBYTE)
-#define CHECK_LPOS() \
- do { \
- lpos++; \
- if (lpos >= _rl_screenwidth) \
- { \
- if (newlines >= (inv_lbsize - 2)) \
- { \
- inv_lbsize *= 2; \
- inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
- _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
- } \
- inv_lbreaks[++newlines] = out; \
- _rl_wrapped_line[newlines] = _rl_wrapped_multicolumn; \
- lpos = 0; \
- } \
- } while (0)
-#else
-#define CHECK_LPOS() \
- do { \
- lpos++; \
- if (lpos >= _rl_screenwidth) \
- { \
- if (newlines >= (inv_lbsize - 2)) \
- { \
- inv_lbsize *= 2; \
- inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
- } \
- inv_lbreaks[++newlines] = out; \
- lpos = 0; \
- } \
- } while (0)
-#endif
-
- /* inv_lbreaks[i] is where line i starts in the buffer. */
- inv_lbreaks[newlines = 0] = 0;
- lpos = out - wrap_offset;
-#if defined (HANDLE_MULTIBYTE)
- memset (_rl_wrapped_line, 0, vis_lbsize);
-#endif
-
- /* prompt_invis_chars_first_line is the number of invisible characters in
- the first physical line of the prompt.
- wrap_offset - prompt_invis_chars_first_line is the number of invis
- chars on the second line. */
-
- /* what if lpos is already >= _rl_screenwidth before we start drawing the
- contents of the command line? */
- while (lpos >= _rl_screenwidth)
- {
- /* fix from Darin Johnson <darin@acuson.com> for prompt string with
- invisible characters that is longer than the screen width. The
- prompt_invis_chars_first_line variable could be made into an array
- saying how many invisible characters there are per line, but that's
- probably too much work for the benefit gained. How many people have
- prompts that exceed two physical lines? */
- temp = ((newlines + 1) * _rl_screenwidth) +
-#if 0
- ((newlines == 0) ? prompt_invis_chars_first_line : 0) +
-#else
- ((newlines == 0 && local_prompt_prefix == 0) ? prompt_invis_chars_first_line : 0) +
-#endif
- ((newlines == 1) ? wrap_offset : 0);
-
- inv_lbreaks[++newlines] = temp;
- lpos -= _rl_screenwidth;
- }
-
- prompt_last_screen_line = newlines;
-
- /* Draw the rest of the line (after the prompt) into invisible_line, keeping
- track of where the cursor is (c_pos), the number of the line containing
- the cursor (lb_linenum), the last line number (lb_botlin and inv_botlin).
- It maintains an array of line breaks for display (inv_lbreaks).
- This handles expanding tabs for display and displaying meta characters. */
- lb_linenum = 0;
-#if defined (HANDLE_MULTIBYTE)
- in = 0;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- memset (&ps, 0, sizeof (mbstate_t));
- wc_bytes = mbrtowc (&wc, rl_line_buffer, rl_end, &ps);
- }
- else
- wc_bytes = 1;
- while (in < rl_end)
-#else
- for (in = 0; in < rl_end; in++)
-#endif
- {
- c = (unsigned char)rl_line_buffer[in];
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- if (wc_bytes == (size_t)-1 || wc_bytes == (size_t)-2)
- {
- /* Byte sequence is invalid or shortened. Assume that the
- first byte represents a character. */
- wc_bytes = 1;
- /* Assume that a character occupies a single column. */
- wc_width = 1;
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else if (wc_bytes == (size_t)0)
- break; /* Found '\0' */
- else
- {
- temp = wcwidth (wc);
- wc_width = (temp < 0) ? 1 : temp;
- }
- }
-#endif
-
- if (out + 8 >= line_size) /* XXX - 8 for \t */
- {
- line_size *= 2;
- visible_line = (char *)xrealloc (visible_line, line_size);
- invisible_line = (char *)xrealloc (invisible_line, line_size);
- line = invisible_line;
- }
-
- if (in == rl_point)
- {
- c_pos = out;
- lb_linenum = newlines;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- if (META_CHAR (c) && _rl_output_meta_chars == 0) /* XXX - clean up */
-#else
- if (META_CHAR (c))
-#endif
- {
- if (_rl_output_meta_chars == 0)
- {
- sprintf (line + out, "\\%o", c);
-
- if (lpos + 4 >= _rl_screenwidth)
- {
- temp = _rl_screenwidth - lpos;
- CHECK_INV_LBREAKS ();
- inv_lbreaks[++newlines] = out + temp;
- lpos = 4 - temp;
- }
- else
- lpos += 4;
-
- out += 4;
- }
- else
- {
- line[out++] = c;
- CHECK_LPOS();
- }
- }
-#if defined (DISPLAY_TABS)
- else if (c == '\t')
- {
- register int newout;
-
-#if 0
- newout = (out | (int)7) + 1;
-#else
- newout = out + 8 - lpos % 8;
-#endif
- temp = newout - out;
- if (lpos + temp >= _rl_screenwidth)
- {
- register int temp2;
- temp2 = _rl_screenwidth - lpos;
- CHECK_INV_LBREAKS ();
- inv_lbreaks[++newlines] = out + temp2;
- lpos = temp - temp2;
- while (out < newout)
- line[out++] = ' ';
- }
- else
- {
- while (out < newout)
- line[out++] = ' ';
- lpos += temp;
- }
- }
-#endif
- else if (c == '\n' && _rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
- {
- line[out++] = '\0'; /* XXX - sentinel */
- CHECK_INV_LBREAKS ();
- inv_lbreaks[++newlines] = out;
- lpos = 0;
- }
- else if (CTRL_CHAR (c) || c == RUBOUT)
- {
- line[out++] = '^';
- CHECK_LPOS();
- line[out++] = CTRL_CHAR (c) ? UNCTRL (c) : '?';
- CHECK_LPOS();
- }
- else
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- register int i;
-
- _rl_wrapped_multicolumn = 0;
-
- if (_rl_screenwidth < lpos + wc_width)
- for (i = lpos; i < _rl_screenwidth; i++)
- {
- /* The space will be removed in update_line() */
- line[out++] = ' ';
- _rl_wrapped_multicolumn++;
- CHECK_LPOS();
- }
- if (in == rl_point)
- {
- c_pos = out;
- lb_linenum = newlines;
- }
- for (i = in; i < in+wc_bytes; i++)
- line[out++] = rl_line_buffer[i];
- for (i = 0; i < wc_width; i++)
- CHECK_LPOS();
- }
- else
- {
- line[out++] = c;
- CHECK_LPOS();
- }
-#else
- line[out++] = c;
- CHECK_LPOS();
-#endif
- }
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- in += wc_bytes;
- wc_bytes = mbrtowc (&wc, rl_line_buffer + in, rl_end - in, &ps);
- }
- else
- in++;
-#endif
-
- }
- line[out] = '\0';
- if (c_pos < 0)
- {
- c_pos = out;
- lb_linenum = newlines;
- }
-
- inv_botlin = lb_botlin = newlines;
- CHECK_INV_LBREAKS ();
- inv_lbreaks[newlines+1] = out;
- cursor_linenum = lb_linenum;
-
- /* C_POS == position in buffer where cursor should be placed.
- CURSOR_LINENUM == line number where the cursor should be placed. */
-
- /* PWP: now is when things get a bit hairy. The visible and invisible
- line buffers are really multiple lines, which would wrap every
- (screenwidth - 1) characters. Go through each in turn, finding
- the changed region and updating it. The line order is top to bottom. */
-
- /* If we can move the cursor up and down, then use multiple lines,
- otherwise, let long lines display in a single terminal line, and
- horizontally scroll it. */
-
- if (_rl_horizontal_scroll_mode == 0 && _rl_term_up && *_rl_term_up)
- {
- int nleft, pos, changed_screen_line;
-
- if (!rl_display_fixed || forced_display)
- {
- forced_display = 0;
-
- /* If we have more than a screenful of material to display, then
- only display a screenful. We should display the last screen,
- not the first. */
- if (out >= _rl_screenchars)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- out = _rl_find_prev_mbchar (line, _rl_screenchars, MB_FIND_ANY);
- else
- out = _rl_screenchars - 1;
- }
-
- /* The first line is at character position 0 in the buffer. The
- second and subsequent lines start at inv_lbreaks[N], offset by
- OFFSET (which has already been calculated above). */
-
-#define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
-#define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l]))
-#define INV_LLEN(l) (inv_lbreaks[l+1] - inv_lbreaks[l])
-#define VIS_CHARS(line) (visible_line + vis_lbreaks[line])
-#define VIS_LINE(line) ((line) > _rl_vis_botlin) ? "" : VIS_CHARS(line)
-#define INV_LINE(line) (invisible_line + inv_lbreaks[line])
-
- /* For each line in the buffer, do the updating display. */
- for (linenum = 0; linenum <= inv_botlin; linenum++)
- {
- update_line (VIS_LINE(linenum), INV_LINE(linenum), linenum,
- VIS_LLEN(linenum), INV_LLEN(linenum), inv_botlin);
-
- /* If this is the line with the prompt, we might need to
- compensate for invisible characters in the new line. Do
- this only if there is not more than one new line (which
- implies that we completely overwrite the old visible line)
- and the new line is shorter than the old. Make sure we are
- at the end of the new line before clearing. */
- if (linenum == 0 &&
- inv_botlin == 0 && _rl_last_c_pos == out &&
- (wrap_offset > visible_wrap_offset) &&
- (_rl_last_c_pos < visible_first_line_len))
- {
- nleft = _rl_screenwidth + wrap_offset - _rl_last_c_pos;
- if (nleft)
- _rl_clear_to_eol (nleft);
- }
-
- /* Since the new first line is now visible, save its length. */
- if (linenum == 0)
- visible_first_line_len = (inv_botlin > 0) ? inv_lbreaks[1] : out - wrap_offset;
- }
-
- /* We may have deleted some lines. If so, clear the left over
- blank ones at the bottom out. */
- if (_rl_vis_botlin > inv_botlin)
- {
- char *tt;
- for (; linenum <= _rl_vis_botlin; linenum++)
- {
- tt = VIS_CHARS (linenum);
- _rl_move_vert (linenum);
- _rl_move_cursor_relative (0, tt);
- _rl_clear_to_eol
- ((linenum == _rl_vis_botlin) ? strlen (tt) : _rl_screenwidth);
- }
- }
- _rl_vis_botlin = inv_botlin;
-
- /* CHANGED_SCREEN_LINE is set to 1 if we have moved to a
- different screen line during this redisplay. */
- changed_screen_line = _rl_last_v_pos != cursor_linenum;
- if (changed_screen_line)
- {
- _rl_move_vert (cursor_linenum);
- /* If we moved up to the line with the prompt using _rl_term_up,
- the physical cursor position on the screen stays the same,
- but the buffer position needs to be adjusted to account
- for invisible characters. */
- if (cursor_linenum == 0 && wrap_offset)
- _rl_last_c_pos += wrap_offset;
- }
-
- /* We have to reprint the prompt if it contains invisible
- characters, since it's not generally OK to just reprint
- the characters from the current cursor position. But we
- only need to reprint it if the cursor is before the last
- invisible character in the prompt string. */
- nleft = prompt_visible_length + wrap_offset;
- if (cursor_linenum == 0 && wrap_offset > 0 && _rl_last_c_pos > 0 &&
- _rl_last_c_pos <= prompt_last_invisible && local_prompt)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- if (_rl_term_cr)
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_output_some_chars (local_prompt, nleft);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width(local_prompt, 0, nleft);
- else
- _rl_last_c_pos = nleft;
- }
-
- /* Where on that line? And where does that line start
- in the buffer? */
- pos = inv_lbreaks[cursor_linenum];
- /* nleft == number of characters in the line buffer between the
- start of the line and the cursor position. */
- nleft = c_pos - pos;
-
- /* Since _rl_backspace() doesn't know about invisible characters in the
- prompt, and there's no good way to tell it, we compensate for
- those characters here and call _rl_backspace() directly. */
- if (wrap_offset && cursor_linenum == 0 && nleft < _rl_last_c_pos)
- {
- _rl_backspace (_rl_last_c_pos - nleft);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width (&visible_line[pos], 0, nleft);
- else
- _rl_last_c_pos = nleft;
- }
-
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_move_cursor_relative (nleft, &invisible_line[pos]);
- else if (nleft != _rl_last_c_pos)
- _rl_move_cursor_relative (nleft, &invisible_line[pos]);
- }
- }
- else /* Do horizontal scrolling. */
- {
-#define M_OFFSET(margin, offset) ((margin) == 0 ? offset : 0)
- int lmargin, ndisp, nleft, phys_c_pos, t;
-
- /* Always at top line. */
- _rl_last_v_pos = 0;
-
- /* Compute where in the buffer the displayed line should start. This
- will be LMARGIN. */
-
- /* The number of characters that will be displayed before the cursor. */
- ndisp = c_pos - wrap_offset;
- nleft = prompt_visible_length + wrap_offset;
- /* Where the new cursor position will be on the screen. This can be
- longer than SCREENWIDTH; if it is, lmargin will be adjusted. */
- phys_c_pos = c_pos - (last_lmargin ? last_lmargin : wrap_offset);
- t = _rl_screenwidth / 3;
-
- /* If the number of characters had already exceeded the screenwidth,
- last_lmargin will be > 0. */
-
- /* If the number of characters to be displayed is more than the screen
- width, compute the starting offset so that the cursor is about
- two-thirds of the way across the screen. */
- if (phys_c_pos > _rl_screenwidth - 2)
- {
- lmargin = c_pos - (2 * t);
- if (lmargin < 0)
- lmargin = 0;
- /* If the left margin would be in the middle of a prompt with
- invisible characters, don't display the prompt at all. */
- if (wrap_offset && lmargin > 0 && lmargin < nleft)
- lmargin = nleft;
- }
- else if (ndisp < _rl_screenwidth - 2) /* XXX - was -1 */
- lmargin = 0;
- else if (phys_c_pos < 1)
- {
- /* If we are moving back towards the beginning of the line and
- the last margin is no longer correct, compute a new one. */
- lmargin = ((c_pos - 1) / t) * t; /* XXX */
- if (wrap_offset && lmargin > 0 && lmargin < nleft)
- lmargin = nleft;
- }
- else
- lmargin = last_lmargin;
-
- /* If the first character on the screen isn't the first character
- in the display line, indicate this with a special character. */
- if (lmargin > 0)
- line[lmargin] = '<';
-
- /* If SCREENWIDTH characters starting at LMARGIN do not encompass
- the whole line, indicate that with a special character at the
- right edge of the screen. If LMARGIN is 0, we need to take the
- wrap offset into account. */
- t = lmargin + M_OFFSET (lmargin, wrap_offset) + _rl_screenwidth;
- if (t < out)
- line[t - 1] = '>';
-
- if (!rl_display_fixed || forced_display || lmargin != last_lmargin)
- {
- forced_display = 0;
- update_line (&visible_line[last_lmargin],
- &invisible_line[lmargin],
- 0,
- _rl_screenwidth + visible_wrap_offset,
- _rl_screenwidth + (lmargin ? 0 : wrap_offset),
- 0);
-
- /* If the visible new line is shorter than the old, but the number
- of invisible characters is greater, and we are at the end of
- the new line, we need to clear to eol. */
- t = _rl_last_c_pos - M_OFFSET (lmargin, wrap_offset);
- if ((M_OFFSET (lmargin, wrap_offset) > visible_wrap_offset) &&
- (_rl_last_c_pos == out) &&
- t < visible_first_line_len)
- {
- nleft = _rl_screenwidth - t;
- _rl_clear_to_eol (nleft);
- }
- visible_first_line_len = out - lmargin - M_OFFSET (lmargin, wrap_offset);
- if (visible_first_line_len > _rl_screenwidth)
- visible_first_line_len = _rl_screenwidth;
-
- _rl_move_cursor_relative (c_pos - lmargin, &invisible_line[lmargin]);
- last_lmargin = lmargin;
- }
- }
- fflush (rl_outstream);
-
- /* Swap visible and non-visible lines. */
- {
- char *vtemp = visible_line;
- int *itemp = vis_lbreaks, ntemp = vis_lbsize;
-
- visible_line = invisible_line;
- invisible_line = vtemp;
-
- vis_lbreaks = inv_lbreaks;
- inv_lbreaks = itemp;
-
- vis_lbsize = inv_lbsize;
- inv_lbsize = ntemp;
-
- rl_display_fixed = 0;
- /* If we are displaying on a single line, and last_lmargin is > 0, we
- are not displaying any invisible characters, so set visible_wrap_offset
- to 0. */
- if (_rl_horizontal_scroll_mode && last_lmargin)
- visible_wrap_offset = 0;
- else
- visible_wrap_offset = wrap_offset;
- }
-}
-
-/* PWP: update_line() is based on finding the middle difference of each
- line on the screen; vis:
-
- /old first difference
- /beginning of line | /old last same /old EOL
- v v v v
-old: eddie> Oh, my little gruntle-buggy is to me, as lurgid as
-new: eddie> Oh, my little buggy says to me, as lurgid as
- ^ ^ ^ ^
- \beginning of line | \new last same \new end of line
- \new first difference
-
- All are character pointers for the sake of speed. Special cases for
- no differences, as well as for end of line additions must be handled.
-
- Could be made even smarter, but this works well enough */
-static void
-update_line (old, new, current_line, omax, nmax, inv_botlin)
- register char *old, *new;
- int current_line, omax, nmax, inv_botlin;
-{
- register char *ofd, *ols, *oe, *nfd, *nls, *ne;
- int temp, lendiff, wsatend, od, nd;
- int current_invis_chars;
- int col_lendiff, col_temp;
-#if defined (HANDLE_MULTIBYTE)
- mbstate_t ps_new, ps_old;
- int new_offset, old_offset, tmp;
-#endif
-
- /* If we're at the right edge of a terminal that supports xn, we're
- ready to wrap around, so do so. This fixes problems with knowing
- the exact cursor position and cut-and-paste with certain terminal
- emulators. In this calculation, TEMP is the physical screen
- position of the cursor. */
- temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
- if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
- && _rl_last_v_pos == current_line - 1)
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- wchar_t wc;
- mbstate_t ps;
- int tempwidth, bytes;
- size_t ret;
-
- /* This fixes only double-column characters, but if the wrapped
- character comsumes more than three columns, spaces will be
- inserted in the string buffer. */
- if (_rl_wrapped_line[current_line] > 0)
- _rl_clear_to_eol (_rl_wrapped_line[current_line]);
-
- memset (&ps, 0, sizeof (mbstate_t));
- ret = mbrtowc (&wc, new, MB_CUR_MAX, &ps);
- if (ret == (size_t)-1 || ret == (size_t)-2)
- {
- tempwidth = 1;
- ret = 1;
- }
- else if (ret == 0)
- tempwidth = 0;
- else
- tempwidth = wcwidth (wc);
-
- if (tempwidth > 0)
- {
- int count;
- bytes = ret;
- for (count = 0; count < bytes; count++)
- putc (new[count], rl_outstream);
- _rl_last_c_pos = tempwidth;
- _rl_last_v_pos++;
- memset (&ps, 0, sizeof (mbstate_t));
- ret = mbrtowc (&wc, old, MB_CUR_MAX, &ps);
- if (ret != 0 && bytes != 0)
- {
- if (ret == (size_t)-1 || ret == (size_t)-2)
- memmove (old+bytes, old+1, strlen (old+1));
- else
- memmove (old+bytes, old+ret, strlen (old+ret));
- memcpy (old, new, bytes);
- }
- }
- else
- {
- putc (' ', rl_outstream);
- _rl_last_c_pos = 1;
- _rl_last_v_pos++;
- if (old[0] && new[0])
- old[0] = new[0];
- }
- }
- else
-#endif
- {
- if (new[0])
- putc (new[0], rl_outstream);
- else
- putc (' ', rl_outstream);
- _rl_last_c_pos = 1; /* XXX */
- _rl_last_v_pos++;
- if (old[0] && new[0])
- old[0] = new[0];
- }
- }
-
-
- /* Find first difference. */
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- memset (&ps_new, 0, sizeof(mbstate_t));
- memset (&ps_old, 0, sizeof(mbstate_t));
-
- new_offset = old_offset = 0;
- for (ofd = old, nfd = new;
- (ofd - old < omax) && *ofd &&
- _rl_compare_chars(old, old_offset, &ps_old, new, new_offset, &ps_new); )
- {
- old_offset = _rl_find_next_mbchar (old, old_offset, 1, MB_FIND_ANY);
- new_offset = _rl_find_next_mbchar (new, new_offset, 1, MB_FIND_ANY);
- ofd = old + old_offset;
- nfd = new + new_offset;
- }
- }
- else
-#endif
- for (ofd = old, nfd = new;
- (ofd - old < omax) && *ofd && (*ofd == *nfd);
- ofd++, nfd++)
- ;
-
- /* Move to the end of the screen line. ND and OD are used to keep track
- of the distance between ne and new and oe and old, respectively, to
- move a subtraction out of each loop. */
- for (od = ofd - old, oe = ofd; od < omax && *oe; oe++, od++);
- for (nd = nfd - new, ne = nfd; nd < nmax && *ne; ne++, nd++);
-
- /* If no difference, continue to next line. */
- if (ofd == oe && nfd == ne)
- return;
-
- wsatend = 1; /* flag for trailing whitespace */
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- ols = old + _rl_find_prev_mbchar (old, oe - old, MB_FIND_ANY);
- nls = new + _rl_find_prev_mbchar (new, ne - new, MB_FIND_ANY);
- while ((ols > ofd) && (nls > nfd))
- {
- memset (&ps_old, 0, sizeof (mbstate_t));
- memset (&ps_new, 0, sizeof (mbstate_t));
-
- _rl_adjust_point (old, ols - old, &ps_old);
- _rl_adjust_point (new, nls - new, &ps_new);
-
- if (_rl_compare_chars (old, ols - old, &ps_old, new, nls - new, &ps_new) == 0)
- break;
-
- if (*ols == ' ')
- wsatend = 0;
-
- ols = old + _rl_find_prev_mbchar (old, ols - old, MB_FIND_ANY);
- nls = new + _rl_find_prev_mbchar (new, nls - new, MB_FIND_ANY);
- }
- }
- else
- {
-#endif /* HANDLE_MULTIBYTE */
- ols = oe - 1; /* find last same */
- nls = ne - 1;
- while ((ols > ofd) && (nls > nfd) && (*ols == *nls))
- {
- if (*ols != ' ')
- wsatend = 0;
- ols--;
- nls--;
- }
-#if defined (HANDLE_MULTIBYTE)
- }
-#endif
-
- if (wsatend)
- {
- ols = oe;
- nls = ne;
- }
-#if defined (HANDLE_MULTIBYTE)
- /* This may not work for stateful encoding, but who cares? To handle
- stateful encoding properly, we have to scan each string from the
- beginning and compare. */
- else if (_rl_compare_chars (ols, 0, NULL, nls, 0, NULL) == 0)
-#else
- else if (*ols != *nls)
-#endif
- {
- if (*ols) /* don't step past the NUL */
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- ols = old + _rl_find_next_mbchar (old, ols - old, 1, MB_FIND_ANY);
- else
- ols++;
- }
- if (*nls)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- nls = new + _rl_find_next_mbchar (new, nls - new, 1, MB_FIND_ANY);
- else
- nls++;
- }
- }
-
- /* count of invisible characters in the current invisible line. */
- current_invis_chars = W_OFFSET (current_line, wrap_offset);
- if (_rl_last_v_pos != current_line)
- {
- _rl_move_vert (current_line);
- if (current_line == 0 && visible_wrap_offset)
- _rl_last_c_pos += visible_wrap_offset;
- }
-
- /* If this is the first line and there are invisible characters in the
- prompt string, and the prompt string has not changed, and the current
- cursor position is before the last invisible character in the prompt,
- and the index of the character to move to is past the end of the prompt
- string, then redraw the entire prompt string. We can only do this
- reliably if the terminal supports a `cr' capability.
-
- This is not an efficiency hack -- there is a problem with redrawing
- portions of the prompt string if they contain terminal escape
- sequences (like drawing the `unbold' sequence without a corresponding
- `bold') that manifests itself on certain terminals. */
-
- lendiff = local_prompt ? strlen (local_prompt) : 0;
- od = ofd - old; /* index of first difference in visible line */
- if (current_line == 0 && !_rl_horizontal_scroll_mode &&
- _rl_term_cr && lendiff > prompt_visible_length && _rl_last_c_pos > 0 &&
- od >= lendiff && _rl_last_c_pos <= prompt_last_invisible)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_output_some_chars (local_prompt, lendiff);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width (local_prompt, 0, lendiff);
- else
- _rl_last_c_pos = lendiff;
- }
-
- _rl_move_cursor_relative (od, old);
-
- /* if (len (new) > len (old))
- lendiff == difference in buffer
- col_lendiff == difference on screen
- When not using multibyte characters, these are equal */
- lendiff = (nls - nfd) - (ols - ofd);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- col_lendiff = _rl_col_width (new, nfd - new, nls - new) - _rl_col_width (old, ofd - old, ols - old);
- else
- col_lendiff = lendiff;
-
- /* If we are changing the number of invisible characters in a line, and
- the spot of first difference is before the end of the invisible chars,
- lendiff needs to be adjusted. */
- if (current_line == 0 && !_rl_horizontal_scroll_mode &&
- current_invis_chars != visible_wrap_offset)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- lendiff += visible_wrap_offset - current_invis_chars;
- col_lendiff += visible_wrap_offset - current_invis_chars;
- }
- else
- {
- lendiff += visible_wrap_offset - current_invis_chars;
- col_lendiff = lendiff;
- }
- }
-
- /* Insert (diff (len (old), len (new)) ch. */
- temp = ne - nfd;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- col_temp = _rl_col_width (new, nfd - new, ne - new);
- else
- col_temp = temp;
-
- if (col_lendiff > 0) /* XXX - was lendiff */
- {
- /* Non-zero if we're increasing the number of lines. */
- int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
- /* Sometimes it is cheaper to print the characters rather than
- use the terminal's capabilities. If we're growing the number
- of lines, make sure we actually cause the new line to wrap
- around on auto-wrapping terminals. */
- if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
- {
- /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
- _rl_horizontal_scroll_mode == 1, inserting the characters with
- _rl_term_IC or _rl_term_ic will screw up the screen because of the
- invisible characters. We need to just draw them. */
- if (*ols && (!_rl_horizontal_scroll_mode || _rl_last_c_pos > 0 ||
- lendiff <= prompt_visible_length || !current_invis_chars))
- {
- insert_some_chars (nfd, lendiff, col_lendiff);
- _rl_last_c_pos += col_lendiff;
- }
- else if (*ols == 0)
- {
- /* At the end of a line the characters do not have to
- be "inserted". They can just be placed on the screen. */
- /* However, this screws up the rest of this block, which
- assumes you've done the insert because you can. */
- _rl_output_some_chars (nfd, lendiff);
- _rl_last_c_pos += col_lendiff;
- }
- else
- {
- /* We have horizontal scrolling and we are not inserting at
- the end. We have invisible characters in this line. This
- is a dumb update. */
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp;
- return;
- }
- /* Copy (new) chars to screen from first diff to last match. */
- temp = nls - nfd;
- if ((temp - lendiff) > 0)
- {
- _rl_output_some_chars (nfd + lendiff, temp - lendiff);
-#if 0
- _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff) - col_lendiff;
-#else
- _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
-#endif
- }
- }
- else
- {
- /* cannot insert chars, write to EOL */
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp;
- }
- }
- else /* Delete characters from line. */
- {
- /* If possible and inexpensive to use terminal deletion, then do so. */
- if (_rl_term_dc && (2 * col_temp) >= -col_lendiff)
- {
- /* If all we're doing is erasing the invisible characters in the
- prompt string, don't bother. It screws up the assumptions
- about what's on the screen. */
- if (_rl_horizontal_scroll_mode && _rl_last_c_pos == 0 &&
- -lendiff == visible_wrap_offset)
- col_lendiff = 0;
-
- if (col_lendiff)
- delete_chars (-col_lendiff); /* delete (diff) characters */
-
- /* Copy (new) chars to screen from first diff to last match */
- temp = nls - nfd;
- if (temp > 0)
- {
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
- }
- }
- /* Otherwise, print over the existing material. */
- else
- {
- if (temp > 0)
- {
- _rl_output_some_chars (nfd, temp);
- _rl_last_c_pos += col_temp;
- }
- lendiff = (oe - old) - (ne - new);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- col_lendiff = _rl_col_width (old, 0, oe - old) - _rl_col_width (new, 0, ne - new);
- else
- col_lendiff = lendiff;
-
- if (col_lendiff)
- {
- if (_rl_term_autowrap && current_line < inv_botlin)
- space_to_eol (col_lendiff);
- else
- _rl_clear_to_eol (col_lendiff);
- }
- }
- }
-}
-
-/* Tell the update routines that we have moved onto a new (empty) line. */
-int
-rl_on_new_line ()
-{
- if (visible_line)
- visible_line[0] = '\0';
-
- _rl_last_c_pos = _rl_last_v_pos = 0;
- _rl_vis_botlin = last_lmargin = 0;
- if (vis_lbreaks)
- vis_lbreaks[0] = vis_lbreaks[1] = 0;
- visible_wrap_offset = 0;
- return 0;
-}
-
-/* Tell the update routines that we have moved onto a new line with the
- prompt already displayed. Code originally from the version of readline
- distributed with CLISP. */
-int
-rl_on_new_line_with_prompt ()
-{
- int prompt_size, i, l, real_screenwidth, newlines;
- char *prompt_last_line;
-
- /* Initialize visible_line and invisible_line to ensure that they can hold
- the already-displayed prompt. */
- prompt_size = strlen (rl_prompt) + 1;
- init_line_structures (prompt_size);
-
- /* Make sure the line structures hold the already-displayed prompt for
- redisplay. */
- strcpy (visible_line, rl_prompt);
- strcpy (invisible_line, rl_prompt);
-
- /* If the prompt contains newlines, take the last tail. */
- prompt_last_line = strrchr (rl_prompt, '\n');
- if (!prompt_last_line)
- prompt_last_line = rl_prompt;
-
- l = strlen (prompt_last_line);
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width (prompt_last_line, 0, l);
- else
- _rl_last_c_pos = l;
-
- /* Dissect prompt_last_line into screen lines. Note that here we have
- to use the real screenwidth. Readline's notion of screenwidth might be
- one less, see terminal.c. */
- real_screenwidth = _rl_screenwidth + (_rl_term_autowrap ? 0 : 1);
- _rl_last_v_pos = l / real_screenwidth;
- /* If the prompt length is a multiple of real_screenwidth, we don't know
- whether the cursor is at the end of the last line, or already at the
- beginning of the next line. Output a newline just to be safe. */
- if (l > 0 && (l % real_screenwidth) == 0)
- _rl_output_some_chars ("\n", 1);
- last_lmargin = 0;
-
- newlines = 0; i = 0;
- while (i <= l)
- {
- _rl_vis_botlin = newlines;
- vis_lbreaks[newlines++] = i;
- i += real_screenwidth;
- }
- vis_lbreaks[newlines] = l;
- visible_wrap_offset = 0;
-
- return 0;
-}
-
-/* Actually update the display, period. */
-int
-rl_forced_update_display ()
-{
- if (visible_line)
- {
- register char *temp = visible_line;
-
- while (*temp)
- *temp++ = '\0';
- }
- rl_on_new_line ();
- forced_display++;
- (*rl_redisplay_function) ();
- return 0;
-}
-
-/* Move the cursor from _rl_last_c_pos to NEW, which are buffer indices.
- DATA is the contents of the screen line of interest; i.e., where
- the movement is being done. */
-void
-_rl_move_cursor_relative (new, data)
- int new;
- const char *data;
-{
- register int i;
-
- /* If we don't have to do anything, then return. */
-#if defined (HANDLE_MULTIBYTE)
- /* If we have multibyte characters, NEW is indexed by the buffer point in
- a multibyte string, but _rl_last_c_pos is the display position. In
- this case, NEW's display position is not obvious. */
- if ((MB_CUR_MAX == 1 || rl_byte_oriented ) && _rl_last_c_pos == new) return;
-#else
- if (_rl_last_c_pos == new) return;
-#endif
-
- /* It may be faster to output a CR, and then move forwards instead
- of moving backwards. */
- /* i == current physical cursor position. */
- i = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
- if (new == 0 || CR_FASTER (new, _rl_last_c_pos) ||
- (_rl_term_autowrap && i == _rl_screenwidth))
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif /* !__MSDOS__ */
- _rl_last_c_pos = 0;
- }
-
- if (_rl_last_c_pos < new)
- {
- /* Move the cursor forward. We do it by printing the command
- to move the cursor forward if there is one, else print that
- portion of the output buffer again. Which is cheaper? */
-
- /* The above comment is left here for posterity. It is faster
- to print one character (non-control) than to print a control
- sequence telling the terminal to move forward one character.
- That kind of control is for people who don't know what the
- data is underneath the cursor. */
-#if defined (HACK_TERMCAP_MOTION)
- if (_rl_term_forward_char)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int width;
- width = _rl_col_width (data, _rl_last_c_pos, new);
- for (i = 0; i < width; i++)
- tputs (_rl_term_forward_char, 1, _rl_output_character_function);
- }
- else
- {
- for (i = _rl_last_c_pos; i < new; i++)
- tputs (_rl_term_forward_char, 1, _rl_output_character_function);
- }
- }
- else if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- for (i = 0; i < new; i++)
- putc (data[i], rl_outstream);
- }
- else
- for (i = _rl_last_c_pos; i < new; i++)
- putc (data[i], rl_outstream);
-
-#else /* !HACK_TERMCAP_MOTION */
-
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- for (i = 0; i < new; i++)
- putc (data[i], rl_outstream);
- }
- else
- for (i = _rl_last_c_pos; i < new; i++)
- putc (data[i], rl_outstream);
-
-#endif /* !HACK_TERMCAP_MOTION */
-
- }
-#if defined (HANDLE_MULTIBYTE)
- /* NEW points to the buffer point, but _rl_last_c_pos is the display point.
- The byte length of the string is probably bigger than the column width
- of the string, which means that if NEW == _rl_last_c_pos, then NEW's
- display point is less than _rl_last_c_pos. */
- else if (_rl_last_c_pos >= new)
-#else
- else if (_rl_last_c_pos > new)
-#endif
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- for (i = 0; i < new; i++)
- putc (data[i], rl_outstream);
- }
- else
- _rl_backspace (_rl_last_c_pos - new);
- }
-
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- _rl_last_c_pos = _rl_col_width (data, 0, new);
- else
- _rl_last_c_pos = new;
-}
-
-/* PWP: move the cursor up or down. */
-void
-_rl_move_vert (to)
- int to;
-{
- register int delta, i;
-
- if (_rl_last_v_pos == to || to > _rl_screenheight)
- return;
-
- if ((delta = to - _rl_last_v_pos) > 0)
- {
- for (i = 0; i < delta; i++)
- putc ('\n', rl_outstream);
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_last_c_pos = 0;
- }
- else
- { /* delta < 0 */
- if (_rl_term_up && *_rl_term_up)
- for (i = 0; i < -delta; i++)
- tputs (_rl_term_up, 1, _rl_output_character_function);
- }
-
- _rl_last_v_pos = to; /* Now TO is here */
-}
-
-/* Physically print C on rl_outstream. This is for functions which know
- how to optimize the display. Return the number of characters output. */
-int
-rl_show_char (c)
- int c;
-{
- int n = 1;
- if (META_CHAR (c) && (_rl_output_meta_chars == 0))
- {
- fprintf (rl_outstream, "M-");
- n += 2;
- c = UNMETA (c);
- }
-
-#if defined (DISPLAY_TABS)
- if ((CTRL_CHAR (c) && c != '\t') || c == RUBOUT)
-#else
- if (CTRL_CHAR (c) || c == RUBOUT)
-#endif /* !DISPLAY_TABS */
- {
- fprintf (rl_outstream, "C-");
- n += 2;
- c = CTRL_CHAR (c) ? UNCTRL (c) : '?';
- }
-
- putc (c, rl_outstream);
- fflush (rl_outstream);
- return n;
-}
-
-int
-rl_character_len (c, pos)
- register int c, pos;
-{
- unsigned char uc;
-
- uc = (unsigned char)c;
-
- if (META_CHAR (uc))
- return ((_rl_output_meta_chars == 0) ? 4 : 1);
-
- if (uc == '\t')
- {
-#if defined (DISPLAY_TABS)
- return (((pos | 7) + 1) - pos);
-#else
- return (2);
-#endif /* !DISPLAY_TABS */
- }
-
- if (CTRL_CHAR (c) || c == RUBOUT)
- return (2);
-
- return ((ISPRINT (uc)) ? 1 : 2);
-}
-
-/* How to print things in the "echo-area". The prompt is treated as a
- mini-modeline. */
-
-#if defined (USE_VARARGS)
-int
-#if defined (PREFER_STDARG)
-rl_message (const char *format, ...)
-#else
-rl_message (va_alist)
- va_dcl
-#endif
-{
- va_list args;
-#if defined (PREFER_VARARGS)
- char *format;
-#endif
-
-#if defined (PREFER_STDARG)
- va_start (args, format);
-#else
- va_start (args);
- format = va_arg (args, char *);
-#endif
-
-#if defined (HAVE_VSNPRINTF)
- vsnprintf (msg_buf, sizeof (msg_buf) - 1, format, args);
-#else
- vsprintf (msg_buf, format, args);
- msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
-#endif
- va_end (args);
-
- rl_display_prompt = msg_buf;
- (*rl_redisplay_function) ();
- return 0;
-}
-#else /* !USE_VARARGS */
-int
-rl_message (format, arg1, arg2)
- char *format;
-{
- sprintf (msg_buf, format, arg1, arg2);
- msg_buf[sizeof(msg_buf) - 1] = '\0'; /* overflow? */
- rl_display_prompt = msg_buf;
- (*rl_redisplay_function) ();
- return 0;
-}
-#endif /* !USE_VARARGS */
-
-/* How to clear things from the "echo-area". */
-int
-rl_clear_message ()
-{
- rl_display_prompt = rl_prompt;
- (*rl_redisplay_function) ();
- return 0;
-}
-
-int
-rl_reset_line_state ()
-{
- rl_on_new_line ();
-
- rl_display_prompt = rl_prompt ? rl_prompt : "";
- forced_display = 1;
- return 0;
-}
-
-static char *saved_local_prompt;
-static char *saved_local_prefix;
-static int saved_last_invisible;
-static int saved_visible_length;
-
-void
-rl_save_prompt ()
-{
- saved_local_prompt = local_prompt;
- saved_local_prefix = local_prompt_prefix;
- saved_last_invisible = prompt_last_invisible;
- saved_visible_length = prompt_visible_length;
-
- local_prompt = local_prompt_prefix = (char *)0;
- prompt_last_invisible = prompt_visible_length = 0;
-}
-
-void
-rl_restore_prompt ()
-{
- FREE (local_prompt);
- FREE (local_prompt_prefix);
-
- local_prompt = saved_local_prompt;
- local_prompt_prefix = saved_local_prefix;
- prompt_last_invisible = saved_last_invisible;
- prompt_visible_length = saved_visible_length;
-}
-
-char *
-_rl_make_prompt_for_search (pchar)
- int pchar;
-{
- int len;
- char *pmt;
-
- rl_save_prompt ();
-
- if (saved_local_prompt == 0)
- {
- len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
- pmt = (char *)xmalloc (len + 2);
- if (len)
- strcpy (pmt, rl_prompt);
- pmt[len] = pchar;
- pmt[len+1] = '\0';
- }
- else
- {
- len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
- pmt = (char *)xmalloc (len + 2);
- if (len)
- strcpy (pmt, saved_local_prompt);
- pmt[len] = pchar;
- pmt[len+1] = '\0';
- local_prompt = savestring (pmt);
- prompt_last_invisible = saved_last_invisible;
- prompt_visible_length = saved_visible_length + 1;
- }
- return pmt;
-}
-
-/* Quick redisplay hack when erasing characters at the end of the line. */
-void
-_rl_erase_at_end_of_line (l)
- int l;
-{
- register int i;
-
- _rl_backspace (l);
- for (i = 0; i < l; i++)
- putc (' ', rl_outstream);
- _rl_backspace (l);
- for (i = 0; i < l; i++)
- visible_line[--_rl_last_c_pos] = '\0';
- rl_display_fixed++;
-}
-
-/* Clear to the end of the line. COUNT is the minimum
- number of character spaces to clear, */
-void
-_rl_clear_to_eol (count)
- int count;
-{
- if (_rl_term_clreol)
- tputs (_rl_term_clreol, 1, _rl_output_character_function);
- else if (count)
- space_to_eol (count);
-}
-
-/* Clear to the end of the line using spaces. COUNT is the minimum
- number of character spaces to clear, */
-static void
-space_to_eol (count)
- int count;
-{
- register int i;
-
- for (i = 0; i < count; i++)
- putc (' ', rl_outstream);
-
- _rl_last_c_pos += count;
-}
-
-void
-_rl_clear_screen ()
-{
- if (_rl_term_clrpag)
- tputs (_rl_term_clrpag, 1, _rl_output_character_function);
- else
- rl_crlf ();
-}
-
-/* Insert COUNT characters from STRING to the output stream at column COL. */
-static void
-insert_some_chars (string, count, col)
- char *string;
- int count, col;
-{
- /* DEBUGGING */
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- if (count != col)
- fprintf(stderr, "readline: debug: insert_some_chars: count (%d) != col (%d)\n", count, col);
-
- /* If IC is defined, then we do not have to "enter" insert mode. */
- if (_rl_term_IC)
- {
- char *buffer;
-
- buffer = tgoto (_rl_term_IC, 0, col);
- tputs (buffer, 1, _rl_output_character_function);
- _rl_output_some_chars (string, count);
- }
- else
- {
- register int i;
-
- /* If we have to turn on insert-mode, then do so. */
- if (_rl_term_im && *_rl_term_im)
- tputs (_rl_term_im, 1, _rl_output_character_function);
-
- /* If there is a special command for inserting characters, then
- use that first to open up the space. */
- if (_rl_term_ic && *_rl_term_ic)
- {
- for (i = col; i--; )
- tputs (_rl_term_ic, 1, _rl_output_character_function);
- }
-
- /* Print the text. */
- _rl_output_some_chars (string, count);
-
- /* If there is a string to turn off insert mode, we had best use
- it now. */
- if (_rl_term_ei && *_rl_term_ei)
- tputs (_rl_term_ei, 1, _rl_output_character_function);
- }
-}
-
-/* Delete COUNT characters from the display line. */
-static void
-delete_chars (count)
- int count;
-{
- if (count > _rl_screenwidth) /* XXX */
- return;
-
- if (_rl_term_DC && *_rl_term_DC)
- {
- char *buffer;
- buffer = tgoto (_rl_term_DC, count, count);
- tputs (buffer, count, _rl_output_character_function);
- }
- else
- {
- if (_rl_term_dc && *_rl_term_dc)
- while (count--)
- tputs (_rl_term_dc, 1, _rl_output_character_function);
- }
-}
-
-void
-_rl_update_final ()
-{
- int full_lines;
-
- full_lines = 0;
- /* If the cursor is the only thing on an otherwise-blank last line,
- compensate so we don't print an extra CRLF. */
- if (_rl_vis_botlin && _rl_last_c_pos == 0 &&
- visible_line[vis_lbreaks[_rl_vis_botlin]] == 0)
- {
- _rl_vis_botlin--;
- full_lines = 1;
- }
- _rl_move_vert (_rl_vis_botlin);
- /* If we've wrapped lines, remove the final xterm line-wrap flag. */
- if (full_lines && _rl_term_autowrap && (VIS_LLEN(_rl_vis_botlin) == _rl_screenwidth))
- {
- char *last_line;
-
- last_line = &visible_line[vis_lbreaks[_rl_vis_botlin]];
- _rl_move_cursor_relative (_rl_screenwidth - 1, last_line);
- _rl_clear_to_eol (0);
- putc (last_line[_rl_screenwidth - 1], rl_outstream);
- }
- _rl_vis_botlin = 0;
- rl_crlf ();
- fflush (rl_outstream);
- rl_display_fixed++;
-}
-
-/* Move to the start of the current line. */
-static void
-cr ()
-{
- if (_rl_term_cr)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_last_c_pos = 0;
- }
-}
-
-/* Redraw the last line of a multi-line prompt that may possibly contain
- terminal escape sequences. Called with the cursor at column 0 of the
- line to draw the prompt on. */
-static void
-redraw_prompt (t)
- char *t;
-{
- char *oldp, *oldl, *oldlprefix;
- int oldlen, oldlast, oldplen, oldninvis;
-
- /* Geez, I should make this a struct. */
- oldp = rl_display_prompt;
- oldl = local_prompt;
- oldlprefix = local_prompt_prefix;
- oldlen = prompt_visible_length;
- oldplen = prompt_prefix_length;
- oldlast = prompt_last_invisible;
- oldninvis = prompt_invis_chars_first_line;
-
- rl_display_prompt = t;
- local_prompt = expand_prompt (t, &prompt_visible_length,
- &prompt_last_invisible,
- &prompt_invis_chars_first_line);
- local_prompt_prefix = (char *)NULL;
- rl_forced_update_display ();
-
- rl_display_prompt = oldp;
- local_prompt = oldl;
- local_prompt_prefix = oldlprefix;
- prompt_visible_length = oldlen;
- prompt_prefix_length = oldplen;
- prompt_last_invisible = oldlast;
- prompt_invis_chars_first_line = oldninvis;
-}
-
-/* Redisplay the current line after a SIGWINCH is received. */
-void
-_rl_redisplay_after_sigwinch ()
-{
- char *t;
-
- /* Clear the current line and put the cursor at column 0. Make sure
- the right thing happens if we have wrapped to a new screen line. */
- if (_rl_term_cr)
- {
-#if defined (__MSDOS__)
- putc ('\r', rl_outstream);
-#else
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif
- _rl_last_c_pos = 0;
-#if defined (__MSDOS__)
- space_to_eol (_rl_screenwidth);
- putc ('\r', rl_outstream);
-#else
- if (_rl_term_clreol)
- tputs (_rl_term_clreol, 1, _rl_output_character_function);
- else
- {
- space_to_eol (_rl_screenwidth);
- tputs (_rl_term_cr, 1, _rl_output_character_function);
- }
-#endif
- if (_rl_last_v_pos > 0)
- _rl_move_vert (0);
- }
- else
- rl_crlf ();
-
- /* Redraw only the last line of a multi-line prompt. */
- t = strrchr (rl_display_prompt, '\n');
- if (t)
- redraw_prompt (++t);
- else
- rl_forced_update_display ();
-}
-
-void
-_rl_clean_up_for_exit ()
-{
- if (readline_echoing_p)
- {
- _rl_move_vert (_rl_vis_botlin);
- _rl_vis_botlin = 0;
- fflush (rl_outstream);
- rl_restart_output (1, 0);
- }
-}
-
-void
-_rl_erase_entire_line ()
-{
- cr ();
- _rl_clear_to_eol (0);
- cr ();
- fflush (rl_outstream);
-}
-
-/* return the `current display line' of the cursor -- the number of lines to
- move up to get to the first screen line of the current readline line. */
-int
-_rl_current_display_line ()
-{
- int ret, nleft;
-
- /* Find out whether or not there might be invisible characters in the
- editing buffer. */
- if (rl_display_prompt == rl_prompt)
- nleft = _rl_last_c_pos - _rl_screenwidth - rl_visible_prompt_length;
- else
- nleft = _rl_last_c_pos - _rl_screenwidth;
-
- if (nleft > 0)
- ret = 1 + nleft / _rl_screenwidth;
- else
- ret = 0;
-
- return ret;
-}
-
-#if defined (HANDLE_MULTIBYTE)
-/* Calculate the number of screen columns occupied by STR from START to END.
- In the case of multibyte characters with stateful encoding, we have to
- scan from the beginning of the string to take the state into account. */
-static int
-_rl_col_width (str, start, end)
- char *str;
- int start, end;
-{
- wchar_t wc;
- mbstate_t ps = {0};
- int tmp, point, width, max;
-
- if (end <= start)
- return 0;
-
- point = 0;
- max = end;
-
- while (point < start)
- {
- tmp = mbrlen (str + point, max, &ps);
- if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2)
- {
- /* In this case, the bytes are invalid or too short to compose a
- multibyte character, so we assume that the first byte represents
- a single character. */
- point++;
- max--;
-
- /* Clear the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else if (tmp == 0)
- break; /* Found '\0' */
- else
- {
- point += tmp;
- max -= tmp;
- }
- }
-
- /* If START is not a byte that starts a character, then POINT will be
- greater than START. In this case, assume that (POINT - START) gives
- a byte count that is the number of columns of difference. */
- width = point - start;
-
- while (point < end)
- {
- tmp = mbrtowc (&wc, str + point, max, &ps);
- if ((size_t)tmp == (size_t)-1 || (size_t)tmp == (size_t)-2)
- {
- /* In this case, the bytes are invalid or too short to compose a
- multibyte character, so we assume that the first byte represents
- a single character. */
- point++;
- max--;
-
- /* and assume that the byte occupies a single column. */
- width++;
-
- /* Clear the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else if (tmp == 0)
- break; /* Found '\0' */
- else
- {
- point += tmp;
- max -= tmp;
- tmp = wcwidth(wc);
- width += (tmp >= 0) ? tmp : 1;
- }
- }
-
- width += point - end;
-
- return width;
-}
-#endif /* HANDLE_MULTIBYTE */
-
diff --git a/readline-4.3/doc/Makefile.in b/readline-4.3/doc/Makefile.in
deleted file mode 100644
index 8a85ae1..0000000
--- a/readline-4.3/doc/Makefile.in
+++ /dev/null
@@ -1,234 +0,0 @@
-# This makefile for Readline library documentation is in -*- text -*- mode.
-# Emacs likes it that way.
-
-# Copyright (C) 1996 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-topdir = @top_srcdir@
-srcdir = @srcdir@
-VPATH = .:@srcdir@
-
-prefix = @prefix@
-infodir = @infodir@
-
-mandir = @mandir@
-manpfx = man
-
-man1ext = .1
-man1dir = $(mandir)/$(manpfx)1
-man3ext = .3
-man3dir = $(mandir)/$(manpfx)3
-
-# set this to a value to have the HTML documentation installed
-htmldir =
-
-# Support an alternate destination root directory for package building
-DESTDIR =
-
-SHELL = @MAKE_SHELL@
-RM = rm -f
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-BUILD_DIR = @BUILD_DIR@
-TEXINPUTDIR = $(srcdir)
-
-MAKEINFO = LANGUAGE= makeinfo
-TEXI2DVI = $(srcdir)/texi2dvi
-TEXI2HTML = $(srcdir)/texi2html
-QUIETPS = #set this to -q to shut up dvips
-PAPERSIZE = letter
-PSDPI = 300 # I don't have any 600-dpi printers
-DVIPS = dvips -D ${PSDPI} $(QUIETPS) -t ${PAPERSIZE} -o $@ # tricky
-
-RLSRC = $(srcdir)/rlman.texinfo $(srcdir)/rluser.texinfo \
- $(srcdir)/rltech.texinfo $(srcdir)/manvers.texinfo \
- $(srcdir)/rluserman.texinfo
-HISTSRC = $(srcdir)/hist.texinfo $(srcdir)/hsuser.texinfo \
- $(srcdir)/hstech.texinfo $(srcdir)/manvers.texinfo
-
-# This should be a program that converts troff to an ascii-readable format
-NROFF = groff -Tascii
-
-# This should be a program that converts troff to postscript
-GROFF = groff
-
-DVIOBJ = readline.dvi history.dvi rluserman.dvi
-INFOOBJ = readline.info history.info rluserman.info
-PSOBJ = readline.ps history.ps rluserman.ps readline_3.ps history_3.ps
-HTMLOBJ = readline.html history.html rluserman.html
-TEXTOBJ = readline.0 history.0
-
-INTERMEDIATE_OBJ = rlman.dvi hist.dvi rluserman.dvi
-
-DIST_DOCS = $(DVIOBJ) $(PSOBJ) $(HTMLOBJ) $(INFOOBJ) $(TEXTOBJ)
-
-.SUFFIXES: .0 .3 .ps .txt .dvi
-
-.3.0:
- $(RM) $@
- -${NROFF} -man $< > $@
-
-all: info dvi html ps text
-nodvi: info html text
-
-readline.dvi: $(RLSRC)
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rlman.texinfo
- mv rlman.dvi readline.dvi
-
-readline.info: $(RLSRC)
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rlman.texinfo
-
-rluserman.dvi: $(RLSRC)
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/rluserman.texinfo
-
-rluserman.info: $(RLSRC)
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/rluserman.texinfo
-
-history.dvi: ${HISTSRC}
- TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/hist.texinfo
- mv hist.dvi history.dvi
-
-history.info: ${HISTSRC}
- $(MAKEINFO) --no-split -I $(TEXINPUTDIR) -o $@ $(srcdir)/hist.texinfo
-
-readline.ps: readline.dvi
- $(RM) $@
- $(DVIPS) readline.dvi
-
-rluserman.ps: rluserman.dvi
- $(RM) $@
- $(DVIPS) rluserman.dvi
-
-history.ps: history.dvi
- $(RM) $@
- $(DVIPS) history.dvi
-
-#
-# This leaves readline.html and rlman.html -- rlman.html is for www.gnu.org
-#
-readline.html: ${RLSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rlman.texinfo
- sed -e 's:rlman.html:readline.html:g' rlman.html > readline.html
-
-rluserman.html: ${RLSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/rluserman.texinfo
-
-history.html: ${HISTSRC}
- $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/hist.texinfo
- sed -e 's:hist.html:history.html:g' hist.html > history.html
- $(RM) hist.html
-
-info: $(INFOOBJ)
-dvi: $(DVIOBJ)
-ps: $(PSOBJ)
-html: $(HTMLOBJ)
-text: $(TEXTOBJ)
-
-readline.0: readline.3
-
-readline_3.ps: readline.3
- ${RM} $@
- ${GROFF} -man < $(srcdir)/readline.3 > $@
-
-history.0: history.3
-
-history_3.ps: history.3
- ${RM} $@
- ${GROFF} -man < $(srcdir)/history.3 > $@
-
-clean:
- $(RM) *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps *.pgs \
- *.fns *.kys *.tps *.vrs *.bt *.bts *.o core *.core
-
-mostlyclean: clean
-
-distclean: clean maybe-clean
- $(RM) $(INTERMEDIATE_OBJ)
- $(RM) Makefile
-
-maybe-clean:
- -if test "X$(topdir)" != "X$(BUILD_DIR)"; then \
- $(RM) $(DIST_DOCS); \
- fi
-
-maintainer-clean: clean
- $(RM) $(DIST_DOCS)
- $(RM) $(INTERMEDIATE_OBJ)
- $(RM) Makefile
-
-installdirs: $(topdir)/support/mkdirs
- -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(infodir) $(DESTDIR)$(man3dir)
- -if test -n "${htmldir}" ; then \
- $(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(htmldir) ; \
- fi
-
-install: installdirs
- if test -f readline.info; then \
- ${INSTALL_DATA} readline.info $(DESTDIR)$(infodir)/readline.info; \
- else \
- ${INSTALL_DATA} $(srcdir)/readline.info $(DESTDIR)$(infodir)/readline.info; \
- fi
- if test -f rluserman.info; then \
- ${INSTALL_DATA} rluserman.info $(DESTDIR)$(infodir)/rluserman.info; \
- else \
- ${INSTALL_DATA} $(srcdir)/rluserman.info $(DESTDIR)$(infodir)/rluserman.info; \
- fi
- if test -f history.info; then \
- ${INSTALL_DATA} history.info $(DESTDIR)$(infodir)/history.info; \
- else \
- ${INSTALL_DATA} $(srcdir)/history.info $(DESTDIR)$(infodir)/history.info; \
- fi
- -if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
- install-info --dir-file=$(DESTDIR)$(infodir)/dir \
- $(DESTDIR)$(infodir)/readline.info ; \
- install-info --dir-file=$(DESTDIR)$(infodir)/dir \
- $(DESTDIR)$(infodir)/history.info ; \
- install-info --dir-file=$(DESTDIR)$(infodir)/dir \
- $(DESTDIR)$(infodir)/rluserman.info ; \
- else true; fi
- -${INSTALL_DATA} $(srcdir)/readline.3 $(DESTDIR)$(man3dir)/readline$(man3ext)
- -${INSTALL_DATA} $(srcdir)/history.3 $(DESTDIR)$(man3dir)/history$(man3ext)
- -if test -n "${htmldir}" ; then \
- if test -f readline.html; then \
- ${INSTALL_DATA} readline.html $(DESTDIR)$(htmldir)/readline.html; \
- else \
- ${INSTALL_DATA} $(srcdir)/readline.html $(DESTDIR)$(htmldir)/readline.html; \
- fi ; \
- if test -f history.html; then \
- ${INSTALL_DATA} history.html $(DESTDIR)$(htmldir)/history.html; \
- else \
- ${INSTALL_DATA} $(srcdir)/history.html $(DESTDIR)$(htmldir)/history.html; \
- fi ; \
- if test -f rluserman.html; then \
- ${INSTALL_DATA} rluserman.html $(DESTDIR)$(htmldir)/rluserman.html; \
- else \
- ${INSTALL_DATA} $(srcdir)/rluserman.html $(DESTDIR)$(htmldir)/rluserman.html; \
- fi ; \
- fi
-
-uninstall:
- $(RM) $(DESTDIR)$(infodir)/readline.info
- $(RM) $(DESTDIR)$(infodir)/rluserman.info
- $(RM) $(DESTDIR)$(infodir)/history.info
- $(RM) $(DESTDIR)$(man3dir)/readline$(man3ext)
- $(RM) $(DESTDIR)$(man3dir)/history$(man3ext)
- -if test -n "${htmldir}" ; then \
- $(RM) $(DESTDIR)$(htmldir)/readline.html ; \
- $(RM) $(DESTDIR)$(htmldir)/rluserman.html ; \
- $(RM) $(DESTDIR)$(htmldir)/history.html ; \
- fi
diff --git a/readline-4.3/doc/hist.texinfo b/readline-4.3/doc/hist.texinfo
deleted file mode 100644
index 63ceb16..0000000
--- a/readline-4.3/doc/hist.texinfo
+++ /dev/null
@@ -1,110 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header (This is for running Texinfo on a region.)
-@setfilename history.info
-@settitle GNU History Library
-@c %**end of header (This is for running Texinfo on a region.)
-
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* History: (history). The GNU history library API
-@end direntry
-
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage
-@title GNU History Library
-@subtitle Edition @value{EDITION}, for @code{History Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU History Library
-
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-
-@menu
-* Using History Interactively:: GNU History User's Manual.
-* Programming with GNU History:: GNU History Programmer's Manual.
-* Concept Index:: Index of concepts described in this manual.
-* Function and Variable Index:: Index of externally visible functions
- and variables.
-@end menu
-@end ifinfo
-
-@syncodeindex fn vr
-
-@include hsuser.texinfo
-@include hstech.texinfo
-
-@node Concept Index
-@appendix Concept Index
-@printindex cp
-
-@node Function and Variable Index
-@appendix Function and Variable Index
-@printindex vr
-
-@contents
-@bye
diff --git a/readline-4.3/doc/history.3 b/readline-4.3/doc/history.3
deleted file mode 100644
index ed0cb9f..0000000
--- a/readline-4.3/doc/history.3
+++ /dev/null
@@ -1,640 +0,0 @@
-.\"
-.\" MAN PAGE COMMENTS to
-.\"
-.\" Chet Ramey
-.\" Information Network Services
-.\" Case Western Reserve University
-.\" chet@ins.CWRU.Edu
-.\"
-.\" Last Change: Thu Jan 31 16:08:07 EST 2002
-.\"
-.TH HISTORY 3 "2002 January 31" "GNU History 4.3"
-.\"
-.\" File Name macro. This used to be `.PN', for Path Name,
-.\" but Sun doesn't seem to like that very much.
-.\"
-.de FN
-\fI\|\\$1\|\fP
-..
-.ds lp \fR\|(\fP
-.ds rp \fR\|)\fP
-.\" FnN return-value fun-name N arguments
-.de Fn1
-\fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3\fP\\*(rp
-.br
-..
-.de Fn2
-.if t \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3,\|\\$4\fP\\*(rp
-.if n \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3, \\$4\fP\\*(rp
-.br
-..
-.de Fn3
-.if t \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3,\|\\$4,\|\\$5\fP\|\\*(rp
-.if n \fI\\$1\fP \fB\\$2\fP \\*(lp\fI\\$3, \\$4, \\$5\fP\\*(rp
-.br
-..
-.de Vb
-\fI\\$1\fP \fB\\$2\fP
-.br
-..
-.SH NAME
-history \- GNU History Library
-.SH COPYRIGHT
-.if t The GNU History Library is Copyright \(co 1989-2002 by the Free Software Foundation, Inc.
-.if n The GNU History Library is Copyright (C) 1989-2002 by the Free Software Foundation, Inc.
-.SH DESCRIPTION
-Many programs read input from the user a line at a time. The GNU
-History library is able to keep track of those lines, associate arbitrary
-data with each line, and utilize information from previous lines in
-composing new ones.
-.PP
-.SH "HISTORY EXPANSION"
-.PP
-The history library supports a history expansion feature that
-is identical to the history expansion in
-.BR bash.
-This section describes what syntax features are available.
-.PP
-History expansions introduce words from the history list into
-the input stream, making it easy to repeat commands, insert the
-arguments to a previous command into the current input line, or
-fix errors in previous commands quickly.
-.PP
-History expansion is usually performed immediately after a complete line
-is read.
-It takes place in two parts.
-The first is to determine which line from the history list
-to use during substitution.
-The second is to select portions of that line for inclusion into
-the current one.
-The line selected from the history is the \fIevent\fP,
-and the portions of that line that are acted upon are \fIwords\fP.
-Various \fImodifiers\fP are available to manipulate the selected words.
-The line is broken into words in the same fashion as \fBbash\fP
-does when reading input,
-so that several words that would otherwise be separated
-are considered one word when surrounded by quotes (see the
-description of \fBhistory_tokenize()\fP below).
-History expansions are introduced by the appearance of the
-history expansion character, which is \^\fB!\fP\^ by default.
-Only backslash (\^\fB\e\fP\^) and single quotes can quote
-the history expansion character.
-.SS Event Designators
-.PP
-An event designator is a reference to a command line entry in the
-history list.
-.PP
-.PD 0
-.TP
-.B !
-Start a history substitution, except when followed by a
-.BR blank ,
-newline, = or (.
-.TP
-.B !\fIn\fR
-Refer to command line
-.IR n .
-.TP
-.B !\-\fIn\fR
-Refer to the current command line minus
-.IR n .
-.TP
-.B !!
-Refer to the previous command. This is a synonym for `!\-1'.
-.TP
-.B !\fIstring\fR
-Refer to the most recent command starting with
-.IR string .
-.TP
-.B !?\fIstring\fR\fB[?]\fR
-Refer to the most recent command containing
-.IR string .
-The trailing \fB?\fP may be omitted if
-.I string
-is followed immediately by a newline.
-.TP
-.B \d\s+2^\s-2\u\fIstring1\fP\d\s+2^\s-2\u\fIstring2\fP\d\s+2^\s-2\u
-Quick substitution. Repeat the last command, replacing
-.I string1
-with
-.IR string2 .
-Equivalent to
-``!!:s/\fIstring1\fP/\fIstring2\fP/''
-(see \fBModifiers\fP below).
-.TP
-.B !#
-The entire command line typed so far.
-.PD
-.SS Word Designators
-.PP
-Word designators are used to select desired words from the event.
-A
-.B :
-separates the event specification from the word designator.
-It may be omitted if the word designator begins with a
-.BR ^ ,
-.BR $ ,
-.BR * ,
-.BR \- ,
-or
-.BR % .
-Words are numbered from the beginning of the line,
-with the first word being denoted by 0 (zero).
-Words are inserted into the current line separated by single spaces.
-.PP
-.PD 0
-.TP
-.B 0 (zero)
-The zeroth word. For the shell, this is the command
-word.
-.TP
-.I n
-The \fIn\fRth word.
-.TP
-.B ^
-The first argument. That is, word 1.
-.TP
-.B $
-The last argument.
-.TP
-.B %
-The word matched by the most recent `?\fIstring\fR?' search.
-.TP
-.I x\fB\-\fPy
-A range of words; `\-\fIy\fR' abbreviates `0\-\fIy\fR'.
-.TP
-.B *
-All of the words but the zeroth. This is a synonym
-for `\fI1\-$\fP'. It is not an error to use
-.B *
-if there is just one
-word in the event; the empty string is returned in that case.
-.TP
-.B x*
-Abbreviates \fIx\-$\fP.
-.TP
-.B x\-
-Abbreviates \fIx\-$\fP like \fBx*\fP, but omits the last word.
-.PD
-.PP
-If a word designator is supplied without an event specification, the
-previous command is used as the event.
-.SS Modifiers
-.PP
-After the optional word designator, there may appear a sequence of
-one or more of the following modifiers, each preceded by a `:'.
-.PP
-.PD 0
-.PP
-.TP
-.B h
-Remove a trailing file name component, leaving only the head.
-.TP
-.B t
-Remove all leading file name components, leaving the tail.
-.TP
-.B r
-Remove a trailing suffix of the form \fI.xxx\fP, leaving the
-basename.
-.TP
-.B e
-Remove all but the trailing suffix.
-.TP
-.B p
-Print the new command but do not execute it.
-.TP
-.B q
-Quote the substituted words, escaping further substitutions.
-.TP
-.B x
-Quote the substituted words as with
-.BR q ,
-but break into words at
-.B blanks
-and newlines.
-.TP
-.B s/\fIold\fP/\fInew\fP/
-Substitute
-.I new
-for the first occurrence of
-.I old
-in the event line. Any delimiter can be used in place of /. The
-final delimiter is optional if it is the last character of the
-event line. The delimiter may be quoted in
-.I old
-and
-.I new
-with a single backslash. If & appears in
-.IR new ,
-it is replaced by
-.IR old .
-A single backslash will quote the &. If
-.I old
-is null, it is set to the last
-.I old
-substituted, or, if no previous history substitutions took place,
-the last
-.I string
-in a
-.B !?\fIstring\fR\fB[?]\fR
-search.
-.TP
-.B &
-Repeat the previous substitution.
-.TP
-.B g
-Cause changes to be applied over the entire event line. This is
-used in conjunction with `\fB:s\fP' (e.g., `\fB:gs/\fIold\fP/\fInew\fP/\fR')
-or `\fB:&\fP'. If used with
-`\fB:s\fP', any delimiter can be used
-in place of /, and the final delimiter is optional
-if it is the last character of the event line.
-.PD
-.SH "PROGRAMMING WITH HISTORY FUNCTIONS"
-This section describes how to use the History library in other programs.
-.SS Introduction to History
-.PP
-The programmer using the History library has available functions
-for remembering lines on a history list, associating arbitrary data
-with a line, removing lines from the list, searching through the list
-for a line containing an arbitrary text string, and referencing any line
-in the list directly. In addition, a history \fIexpansion\fP function
-is available which provides for a consistent user interface across
-different programs.
-.PP
-The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are
-identical to
-the history substitution provided by \fBbash\fP.
-.PP
-If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-.PP
-Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file
-.FN <readline/history.h>
-in any file that uses the
-History library's features. It supplies extern declarations for all
-of the library's public functions and variables, and declares all of
-the public data structures.
-
-.SS History Storage
-.PP
-The history list is an array of history entries. A history entry is
-declared as follows:
-.PP
-.Vb "typedef void *" histdata_t;
-.PP
-.nf
-typedef struct _hist_entry {
- char *line;
- histdata_t data;
-} HIST_ENTRY;
-.fi
-.PP
-The history list itself might therefore be declared as
-.PP
-.Vb "HIST_ENTRY **" the_history_list;
-.PP
-The state of the History library is encapsulated into a single structure:
-.PP
-.nf
-/*
- * A structure used to pass around the current state of the history.
- */
-typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
-} HISTORY_STATE;
-.fi
-.PP
-If the flags member includes \fBHS_STIFLED\fP, the history has been
-stifled.
-.SH "History Functions"
-.PP
-This section describes the calling sequence for the various functions
-exported by the GNU History library.
-.SS Initializing History and State Management
-This section describes functions used to initialize and manage
-the state of the History library when you want to use the history
-functions in your program.
-
-.Fn1 void using_history void
-Begin a session in which the history functions might be used. This
-initializes the interactive variables.
-
-.Fn1 "HISTORY_STATE *" history_get_history_state void
-Return a structure describing the current state of the input history.
-
-.Fn1 void history_set_history_state "HISTORY_STATE *state"
-Set the state of the history list according to \fIstate\fP.
-
-.SS History List Management
-
-These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-
-.Fn1 void add_history "const char *string"
-Place \fIstring\fP at the end of the history list. The associated data
-field (if any) is set to \fBNULL\fP.
-
-.Fn1 "HIST_ENTRY *" remove_history "int which"
-Remove history entry at offset \fIwhich\fP from the history. The
-removed element is returned so you can free the line, data,
-and containing structure.
-
-.Fn3 "HIST_ENTRY *" replace_history_entry "int which" "const char *line" "histdata_t data"
-Make the history entry at offset \fIwhich\fP have \fIline\fP and \fIdata\fP.
-This returns the old entry so you can dispose of the data. In the case
-of an invalid \fIwhich\fP, a \fBNULL\fP pointer is returned.
-
-.Fn1 void clear_history "void"
-Clear the history list by deleting all the entries.
-
-.Fn1 void stifle_history "int max"
-Stifle the history list, remembering only the last \fImax\fP entries.
-
-.Fn1 int unstifle_history "void"
-Stop stifling the history. This returns the previously-set
-maximum number of history entries (as set by \fBstifle_history()\fP).
-history was stifled. The value is positive if the history was
-stifled, negative if it wasn't.
-
-.Fn1 int history_is_stifled "void"
-Returns non-zero if the history is stifled, zero if it is not.
-
-.SS Information About the History List
-
-These functions return information about the entire history list or
-individual list entries.
-
-.Fn1 "HIST_ENTRY **" history_list "void"
-Return a \fBNULL\fP terminated array of \fIHIST_ENTRY *\fP which is the
-current input history. Element 0 of this list is the beginning of time.
-If there is no history, return \fBNULL\fP.
-
-.Fn1 int where_history "void"
-Returns the offset of the current history element.
-
-.Fn1 "HIST_ENTRY *" current_history "void"
-Return the history entry at the current position, as determined by
-\fBwhere_history()\fP. If there is no entry there, return a \fBNULL\fP
-pointer.
-
-.Fn1 "HIST_ENTRY *" history_get "int offset"
-Return the history entry at position \fIoffset\fP, starting from
-\fBhistory_base\fP.
-If there is no entry there, or if \fIoffset\fP
-is greater than the history length, return a \fBNULL\fP pointer.
-
-.Fn1 int history_total_bytes "void"
-Return the number of bytes that the primary history entries are using.
-This function returns the sum of the lengths of all the lines in the
-history.
-
-.SS Moving Around the History List
-
-These functions allow the current index into the history list to be
-set or changed.
-
-.Fn1 int history_set_pos "int pos"
-Set the current history offset to \fIpos\fP, an absolute index
-into the list.
-Returns 1 on success, 0 if \fIpos\fP is less than zero or greater
-than the number of history entries.
-
-.Fn1 "HIST_ENTRY *" previous_history "void"
-Back up the current history offset to the previous history entry, and
-return a pointer to that entry. If there is no previous entry, return
-a \fBNULL\fP pointer.
-
-.Fn1 "HIST_ENTRY *" next_history "void"
-Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a \fBNULL\fP pointer.
-
-.SS Searching the History List
-
-These functions allow searching of the history list for entries containing
-a specific string. Searching may be performed both forward and backward
-from the current history position. The search may be \fIanchored\fP,
-meaning that the string must match at the beginning of the history entry.
-
-.Fn2 int history_search "const char *string" "int direction"
-Search the history for \fIstring\fP, starting at the current history offset.
-If \fIdirection\fP is less than 0, then the search is through
-previous entries, otherwise through subsequent entries.
-If \fIstring\fP is found, then
-the current history index is set to that history entry, and the value
-returned is the offset in the line of the entry where
-\fIstring\fP was found. Otherwise, nothing is changed, and a -1 is
-returned.
-
-.Fn2 int history_search_prefix "const char *string" "int direction"
-Search the history for \fIstring\fP, starting at the current history
-offset. The search is anchored: matching lines must begin with
-\fIstring\fP. If \fIdirection\fP is less than 0, then the search is
-through previous entries, otherwise through subsequent entries.
-If \fIstring\fP is found, then the
-current history index is set to that entry, and the return value is 0.
-Otherwise, nothing is changed, and a -1 is returned.
-
-.Fn3 int history_search_pos "const char *string" "int direction" "int pos"
-Search for \fIstring\fP in the history list, starting at \fIpos\fP, an
-absolute index into the list. If \fIdirection\fP is negative, the search
-proceeds backward from \fIpos\fP, otherwise forward. Returns the absolute
-index of the history element where \fIstring\fP was found, or -1 otherwise.
-
-.SS Managing the History File
-The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-
-.Fn1 int read_history "const char *filename"
-Add the contents of \fIfilename\fP to the history list, a line at a time.
-If \fIfilename\fP is \fBNULL\fP, then read from \fI~/.history\fP.
-Returns 0 if successful, or \fBerrno\fP if not.
-
-.Fn3 int read_history_range "const char *filename" "int from" "int to"
-Read a range of lines from \fIfilename\fP, adding them to the history list.
-Start reading at line \fIfrom\fP and end at \fIto\fP.
-If \fIfrom\fP is zero, start at the beginning. If \fIto\fP is less than
-\fIfrom\fP, then read until the end of the file. If \fIfilename\fP is
-\fBNULL\fP, then read from \fI~/.history\fP. Returns 0 if successful,
-or \fBerrno\fP if not.
-
-.Fn1 int write_history "const char *filename"
-Write the current history to \fIfilename\fP, overwriting \fIfilename\fP
-if necessary.
-If \fIfilename\fP is \fBNULL\fP, then write the history list to \fI~/.history\fP.
-Returns 0 on success, or \fBerrno\fP on a read or write error.
-
-
-.Fn2 int append_history "int nelements" "const char *filename"
-Append the last \fInelements\fP of the history list to \fIfilename\fP.
-If \fIfilename\fP is \fBNULL\fP, then append to \fI~/.history\fP.
-Returns 0 on success, or \fBerrno\fP on a read or write error.
-
-.Fn2 int history_truncate_file "const char *filename" "int nlines"
-Truncate the history file \fIfilename\fP, leaving only the last
-\fInlines\fP lines.
-If \fIfilename\fP is \fBNULL\fP, then \fI~/.history\fP is truncated.
-Returns 0 on success, or \fBerrno\fP on failure.
-
-.SS History Expansion
-
-These functions implement history expansion.
-
-.Fn2 int history_expand "char *string" "char **output"
-Expand \fIstring\fP, placing the result into \fIoutput\fP, a pointer
-to a string. Returns:
-.RS
-.PD 0
-.TP
-0
-If no expansions took place (or, if the only change in
-the text was the removal of escape characters preceding the history expansion
-character);
-.TP
-1
-if expansions did take place;
-.TP
--1
-if there was an error in expansion;
-.TP
-2
-if the returned line should be displayed, but not executed,
-as with the \fB:p\fP modifier.
-.PD
-.RE
-If an error ocurred in expansion, then \fIoutput\fP contains a descriptive
-error message.
-
-.Fn3 "char *" get_history_event "const char *string" "int *cindex" "int qchar"
-Returns the text of the history event beginning at \fIstring\fP +
-\fI*cindex\fP. \fI*cindex\fP is modified to point to after the event
-specifier. At function entry, \fIcindex\fP points to the index into
-\fIstring\fP where the history event specification begins. \fIqchar\fP
-is a character that is allowed to end the event specification in addition
-to the ``normal'' terminating characters.
-
-.Fn1 "char **" history_tokenize "const char *string"
-Return an array of tokens parsed out of \fIstring\fP, much as the
-shell might.
-The tokens are split on the characters in the
-\fBhistory_word_delimiters\fP variable,
-and shell quoting conventions are obeyed.
-
-.Fn3 "char *" history_arg_extract "int first" "int last" "const char *string"
-Extract a string segment consisting of the \fIfirst\fP through \fIlast\fP
-arguments present in \fIstring\fP. Arguments are split using
-\fBhistory_tokenize()\fP.
-
-.SS History Variables
-
-This section describes the externally-visible variables exported by
-the GNU History Library.
-
-.Vb int history_base
-The logical offset of the first entry in the history list.
-
-.Vb int history_length
-The number of entries currently stored in the history list.
-
-.Vb int history_max_entries
-The maximum number of history entries. This must be changed using
-\fBstifle_history()\fP.
-
-.Vb char history_expansion_char
-The character that introduces a history event. The default is \fB!\fP.
-Setting this to 0 inhibits history expansion.
-
-.Vb char history_subst_char
-The character that invokes word substitution if found at the start of
-a line. The default is \fB^\fP.
-
-.Vb char history_comment_char
-During tokenization, if this character is seen as the first character
-of a word, then it and all subsequent characters up to a newline are
-ignored, suppressing history expansion for the remainder of the line.
-This is disabled by default.
-
-.Vb "char *" history_word_delimiters
-The characters that separate tokens for \fBhistory_tokenize()\fP.
-The default value is \fB"\ \et\en()<>;&|"\fP.
-
-.Vb "char *" history_no_expand_chars
-The list of characters which inhibit history expansion if found immediately
-following \fBhistory_expansion_char\fP. The default is space, tab, newline,
-\fB\er\fP, and \fB=\fP.
-
-.Vb "char *" history_search_delimiter_chars
-The list of additional characters which can delimit a history search
-string, in addition to space, tab, \fI:\fP and \fI?\fP in the case of
-a substring search. The default is empty.
-
-.Vb int history_quotes_inhibit_expansion
-If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
-
-.Vb "rl_linebuf_func_t *" history_inhibit_expansion_function
-This should be set to the address of a function that takes two arguments:
-a \fBchar *\fP (\fIstring\fP)
-and an \fBint\fP index into that string (\fIi\fP).
-It should return a non-zero value if the history expansion starting at
-\fIstring[i]\fP should not be performed; zero if the expansion should
-be done.
-It is intended for use by applications like \fBbash\fP that use the history
-expansion character for additional purposes.
-By default, this variable is set to \fBNULL\fP.
-.SH FILES
-.PD 0
-.TP
-.FN ~/.history
-Default filename for reading and writing saved history
-.PD
-.SH "SEE ALSO"
-.PD 0
-.TP
-\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
-.TP
-\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
-.TP
-\fIbash\fP(1)
-.TP
-\fIreadline\fP(3)
-.PD
-.SH AUTHORS
-Brian Fox, Free Software Foundation
-.br
-bfox@gnu.org
-.PP
-Chet Ramey, Case Western Reserve University
-.br
-chet@ins.CWRU.Edu
-.SH BUG REPORTS
-If you find a bug in the
-.B history
-library, you should report it. But first, you should
-make sure that it really is a bug, and that it appears in the latest
-version of the
-.B history
-library that you have.
-.PP
-Once you have determined that a bug actually exists, mail a
-bug report to \fIbug\-readline\fP@\fIgnu.org\fP.
-If you have a fix, you are welcome to mail that
-as well! Suggestions and `philosophical' bug reports may be mailed
-to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet
-newsgroup
-.BR gnu.bash.bug .
-.PP
-Comments and bug reports concerning
-this manual page should be directed to
-.IR chet@ins.CWRU.Edu .
diff --git a/readline-4.3/doc/hstech.texinfo b/readline-4.3/doc/hstech.texinfo
deleted file mode 100644
index 9494446..0000000
--- a/readline-4.3/doc/hstech.texinfo
+++ /dev/null
@@ -1,550 +0,0 @@
-@ignore
-This file documents the user interface to the GNU History library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@node Programming with GNU History
-@chapter Programming with GNU History
-
-This chapter describes how to interface programs that you write
-with the @sc{gnu} History Library.
-It should be considered a technical guide.
-For information on the interactive use of @sc{gnu} History, @pxref{Using
-History Interactively}.
-
-@menu
-* Introduction to History:: What is the GNU History library for?
-* History Storage:: How information is stored.
-* History Functions:: Functions that you can use.
-* History Variables:: Variables that control behaviour.
-* History Programming Example:: Example of using the GNU History Library.
-@end menu
-
-@node Introduction to History
-@section Introduction to History
-
-Many programs read input from the user a line at a time. The @sc{gnu}
-History library is able to keep track of those lines, associate arbitrary
-data with each line, and utilize information from previous lines in
-composing new ones.
-
-The programmer using the History library has available functions
-for remembering lines on a history list, associating arbitrary data
-with a line, removing lines from the list, searching through the list
-for a line containing an arbitrary text string, and referencing any line
-in the list directly. In addition, a history @dfn{expansion} function
-is available which provides for a consistent user interface across
-different programs.
-
-The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are similar to
-the history substitution provided by @code{csh}.
-
-If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-
-Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file @code{<readline/history.h>} in any file that uses the
-History library's features. It supplies extern declarations for all
-of the library's public functions and variables, and declares all of
-the public data structures.
-
-@node History Storage
-@section History Storage
-
-The history list is an array of history entries. A history entry is
-declared as follows:
-
-@example
-typedef void *histdata_t;
-
-typedef struct _hist_entry @{
- char *line;
- histdata_t data;
-@} HIST_ENTRY;
-@end example
-
-The history list itself might therefore be declared as
-
-@example
-HIST_ENTRY **the_history_list;
-@end example
-
-The state of the History library is encapsulated into a single structure:
-
-@example
-/*
- * A structure used to pass around the current state of the history.
- */
-typedef struct _hist_state @{
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
-@} HISTORY_STATE;
-@end example
-
-If the flags member includes @code{HS_STIFLED}, the history has been
-stifled.
-
-@node History Functions
-@section History Functions
-
-This section describes the calling sequence for the various functions
-exported by the @sc{gnu} History library.
-
-@menu
-* Initializing History and State Management:: Functions to call when you
- want to use history in a
- program.
-* History List Management:: Functions used to manage the list
- of history entries.
-* Information About the History List:: Functions returning information about
- the history list.
-* Moving Around the History List:: Functions used to change the position
- in the history list.
-* Searching the History List:: Functions to search the history list
- for entries containing a string.
-* Managing the History File:: Functions that read and write a file
- containing the history list.
-* History Expansion:: Functions to perform csh-like history
- expansion.
-@end menu
-
-@node Initializing History and State Management
-@subsection Initializing History and State Management
-
-This section describes functions used to initialize and manage
-the state of the History library when you want to use the history
-functions in your program.
-
-@deftypefun void using_history (void)
-Begin a session in which the history functions might be used. This
-initializes the interactive variables.
-@end deftypefun
-
-@deftypefun {HISTORY_STATE *} history_get_history_state (void)
-Return a structure describing the current state of the input history.
-@end deftypefun
-
-@deftypefun void history_set_history_state (HISTORY_STATE *state)
-Set the state of the history list according to @var{state}.
-@end deftypefun
-
-@node History List Management
-@subsection History List Management
-
-These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-
-@deftypefun void add_history (const char *string)
-Place @var{string} at the end of the history list. The associated data
-field (if any) is set to @code{NULL}.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} remove_history (int which)
-Remove history entry at offset @var{which} from the history. The
-removed element is returned so you can free the line, data,
-and containing structure.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} replace_history_entry (int which, const char *line, histdata_t data)
-Make the history entry at offset @var{which} have @var{line} and @var{data}.
-This returns the old entry so you can dispose of the data. In the case
-of an invalid @var{which}, a @code{NULL} pointer is returned.
-@end deftypefun
-
-@deftypefun void clear_history (void)
-Clear the history list by deleting all the entries.
-@end deftypefun
-
-@deftypefun void stifle_history (int max)
-Stifle the history list, remembering only the last @var{max} entries.
-@end deftypefun
-
-@deftypefun int unstifle_history (void)
-Stop stifling the history. This returns the previously-set
-maximum number of history entries (as set by @code{stifle_history()}).
-The value is positive if the history was
-stifled, negative if it wasn't.
-@end deftypefun
-
-@deftypefun int history_is_stifled (void)
-Returns non-zero if the history is stifled, zero if it is not.
-@end deftypefun
-
-@node Information About the History List
-@subsection Information About the History List
-
-These functions return information about the entire history list or
-individual list entries.
-
-@deftypefun {HIST_ENTRY **} history_list (void)
-Return a @code{NULL} terminated array of @code{HIST_ENTRY *} which is the
-current input history. Element 0 of this list is the beginning of time.
-If there is no history, return @code{NULL}.
-@end deftypefun
-
-@deftypefun int where_history (void)
-Returns the offset of the current history element.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} current_history (void)
-Return the history entry at the current position, as determined by
-@code{where_history()}. If there is no entry there, return a @code{NULL}
-pointer.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} history_get (int offset)
-Return the history entry at position @var{offset}, starting from
-@code{history_base} (@pxref{History Variables}).
-If there is no entry there, or if @var{offset}
-is greater than the history length, return a @code{NULL} pointer.
-@end deftypefun
-
-@deftypefun int history_total_bytes (void)
-Return the number of bytes that the primary history entries are using.
-This function returns the sum of the lengths of all the lines in the
-history.
-@end deftypefun
-
-@node Moving Around the History List
-@subsection Moving Around the History List
-
-These functions allow the current index into the history list to be
-set or changed.
-
-@deftypefun int history_set_pos (int pos)
-Set the current history offset to @var{pos}, an absolute index
-into the list.
-Returns 1 on success, 0 if @var{pos} is less than zero or greater
-than the number of history entries.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} previous_history (void)
-Back up the current history offset to the previous history entry, and
-return a pointer to that entry. If there is no previous entry, return
-a @code{NULL} pointer.
-@end deftypefun
-
-@deftypefun {HIST_ENTRY *} next_history (void)
-Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a @code{NULL} pointer.
-@end deftypefun
-
-@node Searching the History List
-@subsection Searching the History List
-@cindex History Searching
-
-These functions allow searching of the history list for entries containing
-a specific string. Searching may be performed both forward and backward
-from the current history position. The search may be @dfn{anchored},
-meaning that the string must match at the beginning of the history entry.
-@cindex anchored search
-
-@deftypefun int history_search (const char *string, int direction)
-Search the history for @var{string}, starting at the current history offset.
-If @var{direction} is less than 0, then the search is through
-previous entries, otherwise through subsequent entries.
-If @var{string} is found, then
-the current history index is set to that history entry, and the value
-returned is the offset in the line of the entry where
-@var{string} was found. Otherwise, nothing is changed, and a -1 is
-returned.
-@end deftypefun
-
-@deftypefun int history_search_prefix (const char *string, int direction)
-Search the history for @var{string}, starting at the current history
-offset. The search is anchored: matching lines must begin with
-@var{string}. If @var{direction} is less than 0, then the search is
-through previous entries, otherwise through subsequent entries.
-If @var{string} is found, then the
-current history index is set to that entry, and the return value is 0.
-Otherwise, nothing is changed, and a -1 is returned.
-@end deftypefun
-
-@deftypefun int history_search_pos (const char *string, int direction, int pos)
-Search for @var{string} in the history list, starting at @var{pos}, an
-absolute index into the list. If @var{direction} is negative, the search
-proceeds backward from @var{pos}, otherwise forward. Returns the absolute
-index of the history element where @var{string} was found, or -1 otherwise.
-@end deftypefun
-
-@node Managing the History File
-@subsection Managing the History File
-
-The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-
-@deftypefun int read_history (const char *filename)
-Add the contents of @var{filename} to the history list, a line at a time.
-If @var{filename} is @code{NULL}, then read from @file{~/.history}.
-Returns 0 if successful, or @code{errno} if not.
-@end deftypefun
-
-@deftypefun int read_history_range (const char *filename, int from, int to)
-Read a range of lines from @var{filename}, adding them to the history list.
-Start reading at line @var{from} and end at @var{to}.
-If @var{from} is zero, start at the beginning. If @var{to} is less than
-@var{from}, then read until the end of the file. If @var{filename} is
-@code{NULL}, then read from @file{~/.history}. Returns 0 if successful,
-or @code{errno} if not.
-@end deftypefun
-
-@deftypefun int write_history (const char *filename)
-Write the current history to @var{filename}, overwriting @var{filename}
-if necessary.
-If @var{filename} is @code{NULL}, then write the history list to
-@file{~/.history}.
-Returns 0 on success, or @code{errno} on a read or write error.
-@end deftypefun
-
-@deftypefun int append_history (int nelements, const char *filename)
-Append the last @var{nelements} of the history list to @var{filename}.
-If @var{filename} is @code{NULL}, then append to @file{~/.history}.
-Returns 0 on success, or @code{errno} on a read or write error.
-@end deftypefun
-
-@deftypefun int history_truncate_file (const char *filename, int nlines)
-Truncate the history file @var{filename}, leaving only the last
-@var{nlines} lines.
-If @var{filename} is @code{NULL}, then @file{~/.history} is truncated.
-Returns 0 on success, or @code{errno} on failure.
-@end deftypefun
-
-@node History Expansion
-@subsection History Expansion
-
-These functions implement history expansion.
-
-@deftypefun int history_expand (char *string, char **output)
-Expand @var{string}, placing the result into @var{output}, a pointer
-to a string (@pxref{History Interaction}). Returns:
-@table @code
-@item 0
-If no expansions took place (or, if the only change in
-the text was the removal of escape characters preceding the history expansion
-character);
-@item 1
-if expansions did take place;
-@item -1
-if there was an error in expansion;
-@item 2
-if the returned line should be displayed, but not executed,
-as with the @code{:p} modifier (@pxref{Modifiers}).
-@end table
-
-If an error ocurred in expansion, then @var{output} contains a descriptive
-error message.
-@end deftypefun
-
-@deftypefun {char *} get_history_event (const char *string, int *cindex, int qchar)
-Returns the text of the history event beginning at @var{string} +
-@var{*cindex}. @var{*cindex} is modified to point to after the event
-specifier. At function entry, @var{cindex} points to the index into
-@var{string} where the history event specification begins. @var{qchar}
-is a character that is allowed to end the event specification in addition
-to the ``normal'' terminating characters.
-@end deftypefun
-
-@deftypefun {char **} history_tokenize (const char *string)
-Return an array of tokens parsed out of @var{string}, much as the
-shell might. The tokens are split on the characters in the
-@var{history_word_delimiters} variable,
-and shell quoting conventions are obeyed.
-@end deftypefun
-
-@deftypefun {char *} history_arg_extract (int first, int last, const char *string)
-Extract a string segment consisting of the @var{first} through @var{last}
-arguments present in @var{string}. Arguments are split using
-@code{history_tokenize}.
-@end deftypefun
-
-@node History Variables
-@section History Variables
-
-This section describes the externally-visible variables exported by
-the @sc{gnu} History Library.
-
-@deftypevar int history_base
-The logical offset of the first entry in the history list.
-@end deftypevar
-
-@deftypevar int history_length
-The number of entries currently stored in the history list.
-@end deftypevar
-
-@deftypevar int history_max_entries
-The maximum number of history entries. This must be changed using
-@code{stifle_history()}.
-@end deftypevar
-
-@deftypevar char history_expansion_char
-The character that introduces a history event. The default is @samp{!}.
-Setting this to 0 inhibits history expansion.
-@end deftypevar
-
-@deftypevar char history_subst_char
-The character that invokes word substitution if found at the start of
-a line. The default is @samp{^}.
-@end deftypevar
-
-@deftypevar char history_comment_char
-During tokenization, if this character is seen as the first character
-of a word, then it and all subsequent characters up to a newline are
-ignored, suppressing history expansion for the remainder of the line.
-This is disabled by default.
-@end deftypevar
-
-@deftypevar {char *} history_word_delimiters
-The characters that separate tokens for @code{history_tokenize()}.
-The default value is @code{" \t\n()<>;&|"}.
-@end deftypevar
-
-@deftypevar {char *} history_no_expand_chars
-The list of characters which inhibit history expansion if found immediately
-following @var{history_expansion_char}. The default is space, tab, newline,
-carriage return, and @samp{=}.
-@end deftypevar
-
-@deftypevar {char *} history_search_delimiter_chars
-The list of additional characters which can delimit a history search
-string, in addition to space, TAB, @samp{:} and @samp{?} in the case of
-a substring search. The default is empty.
-@end deftypevar
-
-@deftypevar int history_quotes_inhibit_expansion
-If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
-@end deftypevar
-
-@deftypevar {rl_linebuf_func_t *} history_inhibit_expansion_function
-This should be set to the address of a function that takes two arguments:
-a @code{char *} (@var{string})
-and an @code{int} index into that string (@var{i}).
-It should return a non-zero value if the history expansion starting at
-@var{string[i]} should not be performed; zero if the expansion should
-be done.
-It is intended for use by applications like Bash that use the history
-expansion character for additional purposes.
-By default, this variable is set to @code{NULL}.
-@end deftypevar
-
-@node History Programming Example
-@section History Programming Example
-
-The following program demonstrates simple use of the @sc{gnu} History Library.
-
-@smallexample
-#include <stdio.h>
-#include <readline/history.h>
-
-main (argc, argv)
- int argc;
- char **argv;
-@{
- char line[1024], *t;
- int len, done = 0;
-
- line[0] = 0;
-
- using_history ();
- while (!done)
- @{
- printf ("history$ ");
- fflush (stdout);
- t = fgets (line, sizeof (line) - 1, stdin);
- if (t && *t)
- @{
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- @}
-
- if (!t)
- strcpy (line, "quit");
-
- if (line[0])
- @{
- char *expansion;
- int result;
-
- result = history_expand (line, &expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
-
- if (result < 0 || result == 2)
- @{
- free (expansion);
- continue;
- @}
-
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- @}
-
- if (strcmp (line, "quit") == 0)
- done = 1;
- else if (strcmp (line, "save") == 0)
- write_history ("history_file");
- else if (strcmp (line, "read") == 0)
- read_history ("history_file");
- else if (strcmp (line, "list") == 0)
- @{
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]->line);
- @}
- else if (strncmp (line, "delete", 6) == 0)
- @{
- int which;
- if ((sscanf (line + 6, "%d", &which)) == 1)
- @{
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- @{
- free (entry->line);
- free (entry);
- @}
- @}
- else
- @{
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- @}
- @}
- @}
-@}
-@end smallexample
diff --git a/readline-4.3/doc/hsuser.texinfo b/readline-4.3/doc/hsuser.texinfo
deleted file mode 100644
index 418bfa8..0000000
--- a/readline-4.3/doc/hsuser.texinfo
+++ /dev/null
@@ -1,437 +0,0 @@
-@ignore
-This file documents the user interface to the GNU History library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@node Using History Interactively
-@chapter Using History Interactively
-
-@ifclear BashFeatures
-@defcodeindex bt
-@end ifclear
-
-@ifset BashFeatures
-This chapter describes how to use the @sc{gnu} History Library
-interactively, from a user's standpoint.
-It should be considered a user's guide.
-For information on using the @sc{gnu} History Library in other programs,
-see the @sc{gnu} Readline Library Manual.
-@end ifset
-@ifclear BashFeatures
-This chapter describes how to use the @sc{gnu} History Library interactively,
-from a user's standpoint. It should be considered a user's guide. For
-information on using the @sc{gnu} History Library in your own programs,
-@pxref{Programming with GNU History}.
-@end ifclear
-
-@ifset BashFeatures
-@menu
-* Bash History Facilities:: How Bash lets you manipulate your command
- history.
-* Bash History Builtins:: The Bash builtin commands that manipulate
- the command history.
-* History Interaction:: What it feels like using History as a user.
-@end menu
-@end ifset
-@ifclear BashFeatures
-@menu
-* History Interaction:: What it feels like using History as a user.
-@end menu
-@end ifclear
-
-@ifset BashFeatures
-@node Bash History Facilities
-@section Bash History Facilities
-@cindex command history
-@cindex history list
-
-When the @option{-o history} option to the @code{set} builtin
-is enabled (@pxref{The Set Builtin}),
-the shell provides access to the @dfn{command history},
-the list of commands previously typed.
-The value of the @env{HISTSIZE} shell variable is used as the
-number of commands to save in a history list.
-The text of the last @env{$HISTSIZE}
-commands (default 500) is saved.
-The shell stores each command in the history list prior to
-parameter and variable expansion
-but after history expansion is performed, subject to the
-values of the shell variables
-@env{HISTIGNORE} and @env{HISTCONTROL}.
-
-When the shell starts up, the history is initialized from the
-file named by the @env{HISTFILE} variable (default @file{~/.bash_history}).
-The file named by the value of @env{HISTFILE} is truncated, if
-necessary, to contain no more than the number of lines specified by
-the value of the @env{HISTFILESIZE} variable.
-When an interactive shell exits, the last
-@env{$HISTSIZE} lines are copied from the history list to the file
-named by @env{$HISTFILE}.
-If the @code{histappend} shell option is set (@pxref{Bash Builtins}),
-the lines are appended to the history file,
-otherwise the history file is overwritten.
-If @env{HISTFILE}
-is unset, or if the history file is unwritable, the history is
-not saved. After saving the history, the history file is truncated
-to contain no more than @env{$HISTFILESIZE}
-lines. If @env{HISTFILESIZE} is not set, no truncation is performed.
-
-The builtin command @code{fc} may be used to list or edit and re-execute
-a portion of the history list.
-The @code{history} builtin may be used to display or modify the history
-list and manipulate the history file.
-When using command-line editing, search commands
-are available in each editing mode that provide access to the
-history list (@pxref{Commands For History}).
-
-The shell allows control over which commands are saved on the history
-list. The @env{HISTCONTROL} and @env{HISTIGNORE}
-variables may be set to cause the shell to save only a subset of the
-commands entered.
-The @code{cmdhist}
-shell option, if enabled, causes the shell to attempt to save each
-line of a multi-line command in the same history entry, adding
-semicolons where necessary to preserve syntactic correctness.
-The @code{lithist}
-shell option causes the shell to save the command with embedded newlines
-instead of semicolons.
-The @code{shopt} builtin is used to set these options.
-@xref{Bash Builtins}, for a description of @code{shopt}.
-
-@node Bash History Builtins
-@section Bash History Builtins
-@cindex history builtins
-
-Bash provides two builtin commands which manipulate the
-history list and history file.
-
-@table @code
-
-@item fc
-@btindex fc
-@example
-@code{fc [-e @var{ename}] [-nlr] [@var{first}] [@var{last}]}
-@code{fc -s [@var{pat}=@var{rep}] [@var{command}]}
-@end example
-
-Fix Command. In the first form, a range of commands from @var{first} to
-@var{last} is selected from the history list. Both @var{first} and
-@var{last} may be specified as a string (to locate the most recent
-command beginning with that string) or as a number (an index into the
-history list, where a negative number is used as an offset from the
-current command number). If @var{last} is not specified it is set to
-@var{first}. If @var{first} is not specified it is set to the previous
-command for editing and @minus{}16 for listing. If the @option{-l} flag is
-given, the commands are listed on standard output. The @option{-n} flag
-suppresses the command numbers when listing. The @option{-r} flag
-reverses the order of the listing. Otherwise, the editor given by
-@var{ename} is invoked on a file containing those commands. If
-@var{ename} is not given, the value of the following variable expansion
-is used: @code{$@{FCEDIT:-$@{EDITOR:-vi@}@}}. This says to use the
-value of the @env{FCEDIT} variable if set, or the value of the
-@env{EDITOR} variable if that is set, or @code{vi} if neither is set.
-When editing is complete, the edited commands are echoed and executed.
-
-In the second form, @var{command} is re-executed after each instance
-of @var{pat} in the selected command is replaced by @var{rep}.
-
-A useful alias to use with the @code{fc} command is @code{r='fc -s'}, so
-that typing @samp{r cc} runs the last command beginning with @code{cc}
-and typing @samp{r} re-executes the last command (@pxref{Aliases}).
-
-@item history
-@btindex history
-@example
-history [@var{n}]
-history -c
-history -d @var{offset}
-history [-anrw] [@var{filename}]
-history -ps @var{arg}
-@end example
-
-With no options, display the history list with line numbers.
-Lines prefixed with a @samp{*} have been modified.
-An argument of @var{n} lists only the last @var{n} lines.
-Options, if supplied, have the following meanings:
-
-@table @code
-@item -c
-Clear the history list. This may be combined
-with the other options to replace the history list completely.
-
-@item -d @var{offset}
-Delete the history entry at position @var{offset}.
-@var{offset} should be specified as it appears when the history is
-displayed.
-
-@item -a
-Append the new
-history lines (history lines entered since the beginning of the
-current Bash session) to the history file.
-
-@item -n
-Append the history lines not already read from the history file
-to the current history list. These are lines appended to the history
-file since the beginning of the current Bash session.
-
-@item -r
-Read the current history file and append its contents to
-the history list.
-
-@item -w
-Write out the current history to the history file.
-
-@item -p
-Perform history substitution on the @var{arg}s and display the result
-on the standard output, without storing the results in the history list.
-
-@item -s
-The @var{arg}s are added to the end of
-the history list as a single entry.
-
-@end table
-
-When any of the @option{-w}, @option{-r}, @option{-a}, or @option{-n} options is
-used, if @var{filename}
-is given, then it is used as the history file. If not, then
-the value of the @env{HISTFILE} variable is used.
-
-@end table
-@end ifset
-
-@node History Interaction
-@section History Expansion
-@cindex history expansion
-
-The History library provides a history expansion feature that is similar
-to the history expansion provided by @code{csh}. This section
-describes the syntax used to manipulate the history information.
-
-History expansions introduce words from the history list into
-the input stream, making it easy to repeat commands, insert the
-arguments to a previous command into the current input line, or
-fix errors in previous commands quickly.
-
-History expansion takes place in two parts. The first is to determine
-which line from the history list should be used during substitution.
-The second is to select portions of that line for inclusion into the
-current one. The line selected from the history is called the
-@dfn{event}, and the portions of that line that are acted upon are
-called @dfn{words}. Various @dfn{modifiers} are available to manipulate
-the selected words. The line is broken into words in the same fashion
-that Bash does, so that several words
-surrounded by quotes are considered one word.
-History expansions are introduced by the appearance of the
-history expansion character, which is @samp{!} by default.
-@ifset BashFeatures
-Only @samp{\} and @samp{'} may be used to escape the history expansion
-character.
-@end ifset
-
-@ifset BashFeatures
-Several shell options settable with the @code{shopt}
-builtin (@pxref{Bash Builtins}) may be used to tailor
-the behavior of history expansion. If the
-@code{histverify} shell option is enabled, and Readline
-is being used, history substitutions are not immediately passed to
-the shell parser.
-Instead, the expanded line is reloaded into the Readline
-editing buffer for further modification.
-If Readline is being used, and the @code{histreedit}
-shell option is enabled, a failed history expansion will be
-reloaded into the Readline editing buffer for correction.
-The @option{-p} option to the @code{history} builtin command
-may be used to see what a history expansion will do before using it.
-The @option{-s} option to the @code{history} builtin may be used to
-add commands to the end of the history list without actually executing
-them, so that they are available for subsequent recall.
-This is most useful in conjunction with Readline.
-
-The shell allows control of the various characters used by the
-history expansion mechanism with the @code{histchars} variable.
-@end ifset
-
-@menu
-* Event Designators:: How to specify which history line to use.
-* Word Designators:: Specifying which words are of interest.
-* Modifiers:: Modifying the results of substitution.
-@end menu
-
-@node Event Designators
-@subsection Event Designators
-@cindex event designators
-
-An event designator is a reference to a command line entry in the
-history list.
-@cindex history events
-
-@table @asis
-
-@item @code{!}
-Start a history substitution, except when followed by a space, tab,
-the end of the line, @samp{=} or @samp{(}.
-
-@item @code{!@var{n}}
-Refer to command line @var{n}.
-
-@item @code{!-@var{n}}
-Refer to the command @var{n} lines back.
-
-@item @code{!!}
-Refer to the previous command. This is a synonym for @samp{!-1}.
-
-@item @code{!@var{string}}
-Refer to the most recent command starting with @var{string}.
-
-@item @code{!?@var{string}[?]}
-Refer to the most recent command containing @var{string}. The trailing
-@samp{?} may be omitted if the @var{string} is followed immediately by
-a newline.
-
-@item @code{^@var{string1}^@var{string2}^}
-Quick Substitution. Repeat the last command, replacing @var{string1}
-with @var{string2}. Equivalent to
-@code{!!:s/@var{string1}/@var{string2}/}.
-
-@item @code{!#}
-The entire command line typed so far.
-
-@end table
-
-@node Word Designators
-@subsection Word Designators
-
-Word designators are used to select desired words from the event.
-A @samp{:} separates the event specification from the word designator. It
-may be omitted if the word designator begins with a @samp{^}, @samp{$},
-@samp{*}, @samp{-}, or @samp{%}. Words are numbered from the beginning
-of the line, with the first word being denoted by 0 (zero). Words are
-inserted into the current line separated by single spaces.
-
-@need 0.75
-For example,
-
-@table @code
-@item !!
-designates the preceding command. When you type this, the preceding
-command is repeated in toto.
-
-@item !!:$
-designates the last argument of the preceding command. This may be
-shortened to @code{!$}.
-
-@item !fi:2
-designates the second argument of the most recent command starting with
-the letters @code{fi}.
-@end table
-
-@need 0.75
-Here are the word designators:
-
-@table @code
-
-@item 0 (zero)
-The @code{0}th word. For many applications, this is the command word.
-
-@item @var{n}
-The @var{n}th word.
-
-@item ^
-The first argument; that is, word 1.
-
-@item $
-The last argument.
-
-@item %
-The word matched by the most recent @samp{?@var{string}?} search.
-
-@item @var{x}-@var{y}
-A range of words; @samp{-@var{y}} abbreviates @samp{0-@var{y}}.
-
-@item *
-All of the words, except the @code{0}th. This is a synonym for @samp{1-$}.
-It is not an error to use @samp{*} if there is just one word in the event;
-the empty string is returned in that case.
-
-@item @var{x}*
-Abbreviates @samp{@var{x}-$}
-
-@item @var{x}-
-Abbreviates @samp{@var{x}-$} like @samp{@var{x}*}, but omits the last word.
-
-@end table
-
-If a word designator is supplied without an event specification, the
-previous command is used as the event.
-
-@node Modifiers
-@subsection Modifiers
-
-After the optional word designator, you can add a sequence of one or more
-of the following modifiers, each preceded by a @samp{:}.
-
-@table @code
-
-@item h
-Remove a trailing pathname component, leaving only the head.
-
-@item t
-Remove all leading pathname components, leaving the tail.
-
-@item r
-Remove a trailing suffix of the form @samp{.@var{suffix}}, leaving
-the basename.
-
-@item e
-Remove all but the trailing suffix.
-
-@item p
-Print the new command but do not execute it.
-
-@ifset BashFeatures
-@item q
-Quote the substituted words, escaping further substitutions.
-
-@item x
-Quote the substituted words as with @samp{q},
-but break into words at spaces, tabs, and newlines.
-@end ifset
-
-@item s/@var{old}/@var{new}/
-Substitute @var{new} for the first occurrence of @var{old} in the
-event line. Any delimiter may be used in place of @samp{/}.
-The delimiter may be quoted in @var{old} and @var{new}
-with a single backslash. If @samp{&} appears in @var{new},
-it is replaced by @var{old}. A single backslash will quote
-the @samp{&}. The final delimiter is optional if it is the last
-character on the input line.
-
-@item &
-Repeat the previous substitution.
-
-@item g
-Cause changes to be applied over the entire event line. Used in
-conjunction with @samp{s}, as in @code{gs/@var{old}/@var{new}/},
-or with @samp{&}.
-
-@end table
diff --git a/readline-4.3/doc/manvers.texinfo b/readline-4.3/doc/manvers.texinfo
deleted file mode 100644
index 1206cf0..0000000
--- a/readline-4.3/doc/manvers.texinfo
+++ /dev/null
@@ -1,10 +0,0 @@
-@ignore
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-@end ignore
-
-@set EDITION 4.3
-@set VERSION 4.3
-@set UPDATED 2002 March 4
-@set UPDATE-MONTH March 2002
-
-@set LASTCHANGE Mon Mar 4 12:00:16 EST 2002
diff --git a/readline-4.3/doc/readline.3 b/readline-4.3/doc/readline.3
deleted file mode 100644
index afd6ba2..0000000
--- a/readline-4.3/doc/readline.3
+++ /dev/null
@@ -1,1272 +0,0 @@
-.\"
-.\" MAN PAGE COMMENTS to
-.\"
-.\" Chet Ramey
-.\" Information Network Services
-.\" Case Western Reserve University
-.\" chet@ins.CWRU.Edu
-.\"
-.\" Last Change: Tue Jan 22 09:18:25 EST 2002
-.\"
-.TH READLINE 3 "2002 January 22" "GNU Readline 4.3"
-.\"
-.\" File Name macro. This used to be `.PN', for Path Name,
-.\" but Sun doesn't seem to like that very much.
-.\"
-.de FN
-\fI\|\\$1\|\fP
-..
-.SH NAME
-readline \- get a line from a user with editing
-.SH SYNOPSIS
-.LP
-.nf
-.ft B
-#include <stdio.h>
-#include <readline/readline.h>
-#include <readline/history.h>
-.ft
-.fi
-.LP
-.nf
-\fIchar *\fP
-.br
-\fBreadline\fP (\fIconst char *prompt\fP);
-.fi
-.SH COPYRIGHT
-.if n Readline is Copyright (C) 1989\-2002 by the Free Software Foundation, Inc.
-.if t Readline is Copyright \(co 1989\-2002 by the Free Software Foundation, Inc.
-.SH DESCRIPTION
-.LP
-.B readline
-will read a line from the terminal
-and return it, using
-.B prompt
-as a prompt. If
-.B prompt
-is \fBNULL\fP or the empty string, no prompt is issued.
-The line returned is allocated with
-.IR malloc (3);
-the caller must free it when finished. The line returned
-has the final newline removed, so only the text of the line
-remains.
-.LP
-.B readline
-offers editing capabilities while the user is entering the
-line.
-By default, the line editing commands
-are similar to those of emacs.
-A vi\-style line editing interface is also available.
-.LP
-This manual page describes only the most basic use of \fBreadline\fP.
-Much more functionality is available; see
-\fIThe GNU Readline Library\fP and \fIThe GNU History Library\fP
-for additional information.
-.SH RETURN VALUE
-.LP
-.B readline
-returns the text of the line read. A blank line
-returns the empty string. If
-.B EOF
-is encountered while reading a line, and the line is empty,
-.B NULL
-is returned. If an
-.B EOF
-is read with a non\-empty line, it is
-treated as a newline.
-.SH NOTATION
-.LP
-An emacs-style notation is used to denote
-keystrokes. Control keys are denoted by C\-\fIkey\fR, e.g., C\-n
-means Control\-N. Similarly,
-.I meta
-keys are denoted by M\-\fIkey\fR, so M\-x means Meta\-X. (On keyboards
-without a
-.I meta
-key, M\-\fIx\fP means ESC \fIx\fP, i.e., press the Escape key
-then the
-.I x
-key. This makes ESC the \fImeta prefix\fP.
-The combination M\-C\-\fIx\fP means ESC\-Control\-\fIx\fP,
-or press the Escape key
-then hold the Control key while pressing the
-.I x
-key.)
-.PP
-Readline commands may be given numeric
-.IR arguments ,
-which normally act as a repeat count. Sometimes, however, it is the
-sign of the argument that is significant. Passing a negative argument
-to a command that acts in the forward direction (e.g., \fBkill\-line\fP)
-causes that command to act in a backward direction. Commands whose
-behavior with arguments deviates from this are noted.
-.PP
-When a command is described as \fIkilling\fP text, the text
-deleted is saved for possible future retrieval
-(\fIyanking\fP). The killed text is saved in a
-\fIkill ring\fP. Consecutive kills cause the text to be
-accumulated into one unit, which can be yanked all at once.
-Commands which do not kill text separate the chunks of text
-on the kill ring.
-.SH INITIALIZATION FILE
-.LP
-Readline is customized by putting commands in an initialization
-file (the \fIinputrc\fP file).
-The name of this file is taken from the value of the
-.B INPUTRC
-environment variable. If that variable is unset, the default is
-.IR ~/.inputrc .
-When a program which uses the readline library starts up, the
-init file is read, and the key bindings and variables are set.
-There are only a few basic constructs allowed in the
-readline init file. Blank lines are ignored.
-Lines beginning with a \fB#\fP are comments.
-Lines beginning with a \fB$\fP indicate conditional constructs.
-Other lines denote key bindings and variable settings.
-Each program using this library may add its own commands
-and bindings.
-.PP
-For example, placing
-.RS
-.PP
-M\-Control\-u: universal\-argument
-.RE
-or
-.RS
-C\-Meta\-u: universal\-argument
-.RE
-.sp
-into the
-.I inputrc
-would make M\-C\-u execute the readline command
-.IR universal\-argument .
-.PP
-The following symbolic character names are recognized while
-processing key bindings:
-.IR DEL ,
-.IR ESC ,
-.IR ESCAPE ,
-.IR LFD ,
-.IR NEWLINE ,
-.IR RET ,
-.IR RETURN ,
-.IR RUBOUT ,
-.IR SPACE ,
-.IR SPC ,
-and
-.IR TAB .
-.PP
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a \fImacro\fP).
-.PP
-.SS Key Bindings
-.PP
-The syntax for controlling key bindings in the
-.I inputrc
-file is simple. All that is required is the name of the
-command or the text of a macro and a key sequence to which
-it should be bound. The name may be specified in one of two ways:
-as a symbolic key name, possibly with \fIMeta\-\fP or \fIControl\-\fP
-prefixes, or as a key sequence.
-.PP
-When using the form \fBkeyname\fP:\^\fIfunction-name\fP or \fImacro\fP,
-.I keyname
-is the name of a key spelled out in English. For example:
-.sp
-.RS
-Control\-u: universal\-argument
-.br
-Meta\-Rubout: backward\-kill\-word
-.br
-Control\-o: "> output"
-.RE
-.LP
-In the above example,
-.I C\-u
-is bound to the function
-.BR universal\-argument ,
-.I M-DEL
-is bound to the function
-.BR backward\-kill\-word ,
-and
-.I C\-o
-is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-.if t \f(CW> output\fP
-.if n ``> output''
-into the line).
-.PP
-In the second form, \fB"keyseq"\fP:\^\fIfunction\-name\fP or \fImacro\fP,
-.B keyseq
-differs from
-.B keyname
-above in that strings denoting
-an entire key sequence may be specified by placing the sequence
-within double quotes. Some GNU Emacs style key escapes can be
-used, as in the following example, but the symbolic character names
-are not recognized.
-.sp
-.RS
-"\eC\-u": universal\-argument
-.br
-"\eC\-x\eC\-r": re\-read\-init\-file
-.br
-"\ee[11~": "Function Key 1"
-.RE
-.PP
-In this example,
-.I C-u
-is again bound to the function
-.BR universal\-argument .
-.I "C-x C-r"
-is bound to the function
-.BR re\-read\-init\-file ,
-and
-.I "ESC [ 1 1 ~"
-is bound to insert the text
-.if t \f(CWFunction Key 1\fP.
-.if n ``Function Key 1''.
-.PP
-The full set of GNU Emacs style escape sequences available when specifying
-key sequences is
-.RS
-.PD 0
-.TP
-.B \eC\-
-control prefix
-.TP
-.B \eM\-
-meta prefix
-.TP
-.B \ee
-an escape character
-.TP
-.B \e\e
-backslash
-.TP
-.B \e"
-literal ", a double quote
-.TP
-.B \e'
-literal ', a single quote
-.RE
-.PD
-.PP
-In addition to the GNU Emacs style escape sequences, a second
-set of backslash escapes is available:
-.RS
-.PD 0
-.TP
-.B \ea
-alert (bell)
-.TP
-.B \eb
-backspace
-.TP
-.B \ed
-delete
-.TP
-.B \ef
-form feed
-.TP
-.B \en
-newline
-.TP
-.B \er
-carriage return
-.TP
-.B \et
-horizontal tab
-.TP
-.B \ev
-vertical tab
-.TP
-.B \e\fInnn\fP
-the eight-bit character whose value is the octal value \fInnn\fP
-(one to three digits)
-.TP
-.B \ex\fIHH\fP
-the eight-bit character whose value is the hexadecimal value \fIHH\fP
-(one or two hex digits)
-.RE
-.PD
-.PP
-When entering the text of a macro, single or double quotes should
-be used to indicate a macro definition. Unquoted text
-is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including " and '.
-.PP
-.B Bash
-allows the current readline key bindings to be displayed or modified
-with the
-.B bind
-builtin command. The editing mode may be switched during interactive
-use by using the
-.B \-o
-option to the
-.B set
-builtin command. Other programs using this library provide
-similar mechanisms. The
-.I inputrc
-file may be edited and re-read if a program does not provide
-any other means to incorporate new bindings.
-.SS Variables
-.PP
-Readline has variables that can be used to further customize its
-behavior. A variable may be set in the
-.I inputrc
-file with a statement of the form
-.RS
-.PP
-\fBset\fP \fIvariable\-name\fP \fIvalue\fP
-.RE
-.PP
-Except where noted, readline variables can take the values
-.B On
-or
-.B Off
-(without regard to case).
-The variables and their default values are:
-.PP
-.PD 0
-.TP
-.B bell\-style (audible)
-Controls what happens when readline wants to ring the terminal bell.
-If set to \fBnone\fP, readline never rings the bell. If set to
-\fBvisible\fP, readline uses a visible bell if one is available.
-If set to \fBaudible\fP, readline attempts to ring the terminal's bell.
-.TP
-.B comment\-begin (``#'')
-The string that is inserted in \fBvi\fP mode when the
-.B insert\-comment
-command is executed.
-This command is bound to
-.B M\-#
-in emacs mode and to
-.B #
-in vi command mode.
-.TP
-.B completion\-ignore\-case (Off)
-If set to \fBOn\fP, readline performs filename matching and completion
-in a case\-insensitive fashion.
-.TP
-.B completion\-query\-items (100)
-This determines when the user is queried about viewing
-the number of possible completions
-generated by the \fBpossible\-completions\fP command.
-It may be set to any integer value greater than or equal to
-zero. If the number of possible completions is greater than
-or equal to the value of this variable, the user is asked whether
-or not he wishes to view them; otherwise they are simply listed
-on the terminal.
-.TP
-.B convert\-meta (On)
-If set to \fBOn\fP, readline will convert characters with the
-eighth bit set to an ASCII key sequence
-by stripping the eighth bit and prefixing it with an
-escape character (in effect, using escape as the \fImeta prefix\fP).
-.TP
-.B disable\-completion (Off)
-If set to \fBOn\fP, readline will inhibit word completion. Completion
-characters will be inserted into the line as if they had been
-mapped to \fBself-insert\fP.
-.TP
-.B editing\-mode (emacs)
-Controls whether readline begins with a set of key bindings similar
-to emacs or vi.
-.B editing\-mode
-can be set to either
-.B emacs
-or
-.BR vi .
-.TP
-.B enable\-keypad (Off)
-When set to \fBOn\fP, readline will try to enable the application
-keypad when it is called. Some systems need this to enable the
-arrow keys.
-.TP
-.B expand\-tilde (Off)
-If set to \fBon\fP, tilde expansion is performed when readline
-attempts word completion.
-.TP
-.B history-preserve-point
-If set to \fBon\fP, the history code attempts to place point at the
-same location on each history line retrived with \fBprevious-history\fP
-or \fBnext-history\fP.
-.TP
-.B horizontal\-scroll\-mode (Off)
-When set to \fBOn\fP, makes readline use a single line for display,
-scrolling the input horizontally on a single screen line when it
-becomes longer than the screen width rather than wrapping to a new line.
-.TP
-.B input\-meta (Off)
-If set to \fBOn\fP, readline will enable eight-bit input (that is,
-it will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support. The name
-.B meta\-flag
-is a synonym for this variable.
-.TP
-.B isearch\-terminators (``C\-[ C\-J'')
-The string of characters that should terminate an incremental
-search without subsequently executing the character as a command.
-If this variable has not been given a value, the characters
-\fIESC\fP and \fIC\-J\fP will terminate an incremental search.
-.TP
-.B keymap (emacs)
-Set the current readline keymap. The set of legal keymap names is
-\fIemacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move,
-vi-command\fP, and
-.IR vi-insert .
-\fIvi\fP is equivalent to \fIvi-command\fP; \fIemacs\fP is
-equivalent to \fIemacs-standard\fP. The default value is
-.IR emacs .
-The value of
-.B editing\-mode
-also affects the default keymap.
-.TP
-.B mark\-directories (On)
-If set to \fBOn\fP, completed directory names have a slash
-appended.
-.TP
-.B mark\-modified\-lines (Off)
-If set to \fBOn\fP, history lines that have been modified are displayed
-with a preceding asterisk (\fB*\fP).
-.TP
-.B mark\-symlinked\-directories (Off)
-If set to \fBOn\fP, completed names which are symbolic links to directories
-have a slash appended (subject to the value of
-\fBmark\-directories\fP).
-.TP
-.B match\-hidden\-files (On)
-This variable, when set to \fBOn\fP, causes readline to match files whose
-names begin with a `.' (hidden files) when performing filename
-completion, unless the leading `.' is
-supplied by the user in the filename to be completed.
-.TP
-.B output\-meta (Off)
-If set to \fBOn\fP, readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence.
-.TP
-.B page\-completions (On)
-If set to \fBOn\fP, readline uses an internal \fImore\fP-like pager
-to display a screenful of possible completions at a time.
-.TP
-.B print\-completions\-horizontally (Off)
-If set to \fBOn\fP, readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-.TP
-.B show\-all\-if\-ambiguous (Off)
-This alters the default behavior of the completion functions. If
-set to
-.BR on ,
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-.TP
-.B visible\-stats (Off)
-If set to \fBOn\fP, a character denoting a file's type as reported
-by \fIstat\fP(2) is appended to the filename when listing possible
-completions.
-.PD
-.SS Conditional Constructs
-.PP
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests. There are four parser directives used.
-.IP \fB$if\fP
-The
-.B $if
-construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-readline. The text of the test extends to the end of the line;
-no characters are required to isolate it.
-.RS
-.IP \fBmode\fP
-The \fBmode=\fP form of the \fB$if\fP directive is used to test
-whether readline is in emacs or vi mode.
-This may be used in conjunction
-with the \fBset keymap\fP command, for instance, to set bindings in
-the \fIemacs-standard\fP and \fIemacs-ctlx\fP keymaps only if
-readline is starting out in emacs mode.
-.IP \fBterm\fP
-The \fBterm=\fP form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys. The word on the right side of the
-.B =
-is tested against the full name of the terminal and the portion
-of the terminal name before the first \fB\-\fP. This allows
-.I sun
-to match both
-.I sun
-and
-.IR sun\-cmd ,
-for instance.
-.IP \fBapplication\fP
-The \fBapplication\fP construct is used to include
-application-specific settings. Each program using the readline
-library sets the \fIapplication name\fP, and an initialization
-file can test for a particular value.
-This could be used to bind key sequences to functions useful for
-a specific program. For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-.sp 1
-.RS
-.nf
-\fB$if\fP Bash
-# Quote the current or previous word
-"\eC-xq": "\eeb\e"\eef\e""
-\fB$endif\fP
-.fi
-.RE
-.RE
-.IP \fB$endif\fP
-This command, as seen in the previous example, terminates an
-\fB$if\fP command.
-.IP \fB$else\fP
-Commands in this branch of the \fB$if\fP directive are executed if
-the test fails.
-.IP \fB$include\fP
-This directive takes a single filename as an argument and reads commands
-and bindings from that file. For example, the following directive
-would read \fI/etc/inputrc\fP:
-.sp 1
-.RS
-.nf
-\fB$include\fP \^ \fI/etc/inputrc\fP
-.fi
-.RE
-.SH SEARCHING
-.PP
-Readline provides commands for searching through the command history
-for lines containing a specified string.
-There are two search modes:
-.I incremental
-and
-.IR non-incremental .
-.PP
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-\fBC\-r\fP. Typing \fBC\-s\fP searches forward through the history.
-The characters present in the value of the \fBisearch-terminators\fP
-variable are used to terminate an incremental search.
-If that variable has not been assigned a value the \fIEscape\fP and
-\fBC\-J\fP characters will terminate an incremental search.
-\fBC\-G\fP will abort an incremental search and restore the original
-line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-.PP
-To find other matching entries in the history list, type \fBC\-s\fP or
-\fBC\-r\fP as appropriate.
-This will search backward or forward in the history for the next
-line matching the search string typed so far.
-Any other key sequence bound to a readline command will terminate
-the search and execute that command.
-For instance, a newline will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-.PP
-Non-incremental searches read the entire search string before starting
-to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-.SH EDITING COMMANDS
-.PP
-The following is a list of the names of the commands and the default
-key sequences to which they are bound.
-Command names without an accompanying key sequence are unbound by default.
-.PP
-In the following descriptions, \fIpoint\fP refers to the current cursor
-position, and \fImark\fP refers to a cursor position saved by the
-\fBset\-mark\fP command.
-The text between the point and mark is referred to as the \fIregion\fP.
-.SS Commands for Moving
-.PP
-.PD 0
-.TP
-.B beginning\-of\-line (C\-a)
-Move to the start of the current line.
-.TP
-.B end\-of\-line (C\-e)
-Move to the end of the line.
-.TP
-.B forward\-char (C\-f)
-Move forward a character.
-.TP
-.B backward\-char (C\-b)
-Move back a character.
-.TP
-.B forward\-word (M\-f)
-Move forward to the end of the next word. Words are composed of
-alphanumeric characters (letters and digits).
-.TP
-.B backward\-word (M\-b)
-Move back to the start of the current or previous word. Words are
-composed of alphanumeric characters (letters and digits).
-.TP
-.B clear\-screen (C\-l)
-Clear the screen leaving the current line at the top of the screen.
-With an argument, refresh the current line without clearing the
-screen.
-.TP
-.B redraw\-current\-line
-Refresh the current line.
-.PD
-.SS Commands for Manipulating the History
-.PP
-.PD 0
-.TP
-.B accept\-line (Newline, Return)
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-\fBadd_history()\fP.
-If the line is a modified history line, the history line is restored to its original state.
-.TP
-.B previous\-history (C\-p)
-Fetch the previous command from the history list, moving back in
-the list.
-.TP
-.B next\-history (C\-n)
-Fetch the next command from the history list, moving forward in the
-list.
-.TP
-.B beginning\-of\-history (M\-<)
-Move to the first line in the history.
-.TP
-.B end\-of\-history (M\->)
-Move to the end of the input history, i.e., the line currently being
-entered.
-.TP
-.B reverse\-search\-history (C\-r)
-Search backward starting at the current line and moving `up' through
-the history as necessary. This is an incremental search.
-.TP
-.B forward\-search\-history (C\-s)
-Search forward starting at the current line and moving `down' through
-the history as necessary. This is an incremental search.
-.TP
-.B non\-incremental\-reverse\-search\-history (M\-p)
-Search backward through the history starting at the current line
-using a non-incremental search for a string supplied by the user.
-.TP
-.B non\-incremental\-forward\-search\-history (M\-n)
-Search forward through the history using a non-incremental search
-for a string supplied by the user.
-.TP
-.B history\-search\-forward
-Search forward through the history for the string of characters
-between the start of the current line and the current cursor
-position (the \fIpoint\fP).
-This is a non-incremental search.
-.TP
-.B history\-search\-backward
-Search backward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-.TP
-.B yank\-nth\-arg (M\-C\-y)
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument
-.IR n ,
-insert the \fIn\fPth word from the previous command (the words
-in the previous command begin with word 0). A negative argument
-inserts the \fIn\fPth word from the end of the previous command.
-.TP
-.B
-yank\-last\-arg (M\-.\^, M\-_\^)
-Insert the last argument to the previous command (the last word of
-the previous history entry). With an argument,
-behave exactly like \fByank\-nth\-arg\fP.
-Successive calls to \fByank\-last\-arg\fP move back through the history
-list, inserting the last argument of each line in turn.
-.PD
-.SS Commands for Changing Text
-.PP
-.PD 0
-.TP
-.B delete\-char (C\-d)
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to \fBdelete\-char\fP, then return
-.SM
-.BR EOF .
-.TP
-.B backward\-delete\-char (Rubout)
-Delete the character behind the cursor. When given a numeric argument,
-save the deleted text on the kill ring.
-.TP
-.B forward\-backward\-delete\-char
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted.
-.TP
-.B quoted\-insert (C\-q, C\-v)
-Add the next character that you type to the line verbatim. This is
-how to insert characters like \fBC\-q\fP, for example.
-.TP
-.B tab\-insert (M-TAB)
-Insert a tab character.
-.TP
-.B self\-insert (a,\ b,\ A,\ 1,\ !,\ ...)
-Insert the character typed.
-.TP
-.B transpose\-chars (C\-t)
-Drag the character before point forward over the character at point,
-moving point forward as well.
-If point is at the end of the line, then this transposes
-the two characters before point.
-Negative arguments have no effect.
-.TP
-.B transpose\-words (M\-t)
-Drag the word before point past the word after point,
-moving point over that word as well.
-If point is at the end of the line, this transposes
-the last two words on the line.
-.TP
-.B upcase\-word (M\-u)
-Uppercase the current (or following) word. With a negative argument,
-uppercase the previous word, but do not move point.
-.TP
-.B downcase\-word (M\-l)
-Lowercase the current (or following) word. With a negative argument,
-lowercase the previous word, but do not move point.
-.TP
-.B capitalize\-word (M\-c)
-Capitalize the current (or following) word. With a negative argument,
-capitalize the previous word, but do not move point.
-.TP
-.B overwrite\-mode
-Toggle overwrite mode. With an explicit positive numeric argument,
-switches to overwrite mode. With an explicit non-positive numeric
-argument, switches to insert mode. This command affects only
-\fBemacs\fP mode; \fBvi\fP mode does overwrite differently.
-Each call to \fIreadline()\fP starts in insert mode.
-In overwrite mode, characters bound to \fBself\-insert\fP replace
-the text at point rather than pushing the text to the right.
-Characters bound to \fBbackward\-delete\-char\fP replace the character
-before point with a space. By default, this command is unbound.
-.PD
-.SS Killing and Yanking
-.PP
-.PD 0
-.TP
-.B kill\-line (C\-k)
-Kill the text from point to the end of the line.
-.TP
-.B backward\-kill\-line (C\-x Rubout)
-Kill backward to the beginning of the line.
-.TP
-.B unix\-line\-discard (C\-u)
-Kill backward from point to the beginning of the line.
-The killed text is saved on the kill-ring.
-.\" There is no real difference between this and backward-kill-line
-.TP
-.B kill\-whole\-line
-Kill all characters on the current line, no matter where point is.
-.TP
-.B kill\-word (M\-d)
-Kill from point the end of the current word, or if between
-words, to the end of the next word. Word boundaries are the same as
-those used by \fBforward\-word\fP.
-.TP
-.B backward\-kill\-word (M\-Rubout)
-Kill the word behind point.
-Word boundaries are the same as those used by \fBbackward\-word\fP.
-.TP
-.B unix\-word\-rubout (C\-w)
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-.TP
-.B delete\-horizontal\-space (M\-\e)
-Delete all spaces and tabs around point.
-.TP
-.B kill\-region
-Kill the text between the point and \fImark\fP (saved cursor position).
-This text is referred to as the \fIregion\fP.
-.TP
-.B copy\-region\-as\-kill
-Copy the text in the region to the kill buffer.
-.TP
-.B copy\-backward\-word
-Copy the word before point to the kill buffer.
-The word boundaries are the same as \fBbackward\-word\fP.
-.TP
-.B copy\-forward\-word
-Copy the word following point to the kill buffer.
-The word boundaries are the same as \fBforward\-word\fP.
-.TP
-.B yank (C\-y)
-Yank the top of the kill ring into the buffer at point.
-.TP
-.B yank\-pop (M\-y)
-Rotate the kill ring, and yank the new top. Only works following
-.B yank
-or
-.BR yank\-pop .
-.PD
-.SS Numeric Arguments
-.PP
-.PD 0
-.TP
-.B digit\-argument (M\-0, M\-1, ..., M\-\-)
-Add this digit to the argument already accumulating, or start a new
-argument. M\-\- starts a negative argument.
-.TP
-.B universal\-argument
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing
-.B universal\-argument
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-.PD
-.SS Completing
-.PP
-.PD 0
-.TP
-.B complete (TAB)
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-.BR Bash ,
-for instance, attempts completion treating the text as a variable
-(if the text begins with \fB$\fP), username (if the text begins with
-\fB~\fP), hostname (if the text begins with \fB@\fP), or
-command (including aliases and functions) in turn. If none
-of these produces a match, filename completion is attempted.
-.BR Gdb ,
-on the other hand,
-allows completion of program functions and variables, and
-only attempts filename completion under certain circumstances.
-.TP
-.B possible\-completions (M\-?)
-List the possible completions of the text before point.
-.TP
-.B insert\-completions (M\-*)
-Insert all completions of the text before point
-that would have been generated by
-\fBpossible\-completions\fP.
-.TP
-.B menu\-complete
-Similar to \fBcomplete\fP, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of \fBmenu\-complete\fP steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of \Bbell\-style\fP)
-and the original text is restored.
-An argument of \fIn\fP moves \fIn\fP positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to \fBTAB\fP, but is unbound
-by default.
-.TP
-.B delete\-char\-or\-list
-Deletes the character under the cursor if not at the beginning or
-end of the line (like \fBdelete-char\fP).
-If at the end of the line, behaves identically to
-\fBpossible-completions\fP.
-.PD
-.SS Keyboard Macros
-.PP
-.PD 0
-.TP
-.B start\-kbd\-macro (C\-x (\^)
-Begin saving the characters typed into the current keyboard macro.
-.TP
-.B end\-kbd\-macro (C\-x )\^)
-Stop saving the characters typed into the current keyboard macro
-and store the definition.
-.TP
-.B call\-last\-kbd\-macro (C\-x e)
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-.PD
-.SS Miscellaneous
-.PP
-.PD 0
-.TP
-.B re\-read\-init\-file (C\-x C\-r)
-Read in the contents of the \fIinputrc\fP file, and incorporate
-any bindings or variable assignments found there.
-.TP
-.B abort (C\-g)
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-.BR bell\-style ).
-.TP
-.B do\-uppercase\-version (M\-a, M\-b, M\-\fIx\fP, ...)
-If the metafied character \fIx\fP is lowercase, run the command
-that is bound to the corresponding uppercase character.
-.TP
-.B prefix\-meta (ESC)
-Metafy the next character typed.
-.SM
-.B ESC
-.B f
-is equivalent to
-.BR Meta\-f .
-.TP
-.B undo (C\-_, C\-x C\-u)
-Incremental undo, separately remembered for each line.
-.TP
-.B revert\-line (M\-r)
-Undo all changes made to this line. This is like executing the
-.B undo
-command enough times to return the line to its initial state.
-.TP
-.B tilde\-expand (M\-&)
-Perform tilde expansion on the current word.
-.TP
-.B set\-mark (C\-@, M\-<space>)
-Set the mark to the point. If a
-numeric argument is supplied, the mark is set to that position.
-.TP
-.B exchange\-point\-and\-mark (C\-x C\-x)
-Swap the point with the mark. The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-.TP
-.B character\-search (C\-])
-A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
-.TP
-.B character\-search\-backward (M\-C\-])
-A character is read and point is moved to the previous occurrence of that
-character. A negative count searches for subsequent occurrences.
-.TP
-.B insert\-comment (M\-#)
-Without a numeric argument, the value of the readline
-.B comment\-begin
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
-the characters at the beginning of the line do not match the value
-of \fBcomment\-begin\fP, the value is inserted, otherwise
-the characters in \fBcomment-begin\fP are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-The default value of
-.B comment\-begin
-makes the current line a shell comment.
-If a numeric argument causes the comment character to be removed, the line
-will be executed by the shell.
-.TP
-.B dump\-functions
-Print all of the functions and their key bindings to the
-readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an \fIinputrc\fP file.
-.TP
-.B dump\-variables
-Print all of the settable variables and their values to the
-readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an \fIinputrc\fP file.
-.TP
-.B dump\-macros
-Print all of the readline key sequences bound to macros and the
-strings they ouput. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an \fIinputrc\fP file.
-.TP
-.B emacs\-editing\-mode (C\-e)
-When in
-.B vi
-command mode, this causes a switch to
-.B emacs
-editing mode.
-.TP
-.B vi\-editing\-mode (M\-C\-j)
-When in
-.B emacs
-editing mode, this causes a switch to
-.B vi
-editing mode.
-.PD
-.SH DEFAULT KEY BINDINGS
-.LP
-The following is a list of the default emacs and vi bindings.
-Characters with the eighth bit set are written as M\-<character>, and
-are referred to as
-.I metafied
-characters.
-The printable ASCII characters not mentioned in the list of emacs
-standard bindings are bound to the
-.B self\-insert
-function, which just inserts the given character into the input line.
-In vi insertion mode, all characters not specifically mentioned are
-bound to
-.BR self\-insert .
-Characters assigned to signal generation by
-.IR stty (1)
-or the terminal driver, such as C-Z or C-C,
-retain that function.
-Upper and lower case metafied characters are bound to the same function in
-the emacs mode meta keymap.
-The remaining characters are unbound, which causes readline
-to ring the bell (subject to the setting of the
-.B bell\-style
-variable).
-.SS Emacs Mode
-.RS +.6i
-.nf
-.ta 2.5i
-.sp
-Emacs Standard bindings
-.sp
-"C-@" set-mark
-"C-A" beginning-of-line
-"C-B" backward-char
-"C-D" delete-char
-"C-E" end-of-line
-"C-F" forward-char
-"C-G" abort
-"C-H" backward-delete-char
-"C-I" complete
-"C-J" accept-line
-"C-K" kill-line
-"C-L" clear-screen
-"C-M" accept-line
-"C-N" next-history
-"C-P" previous-history
-"C-Q" quoted-insert
-"C-R" reverse-search-history
-"C-S" forward-search-history
-"C-T" transpose-chars
-"C-U" unix-line-discard
-"C-V" quoted-insert
-"C-W" unix-word-rubout
-"C-Y" yank
-"C-]" character-search
-"C-_" undo
-"\^ " to "/" self-insert
-"0" to "9" self-insert
-":" to "~" self-insert
-"C-?" backward-delete-char
-.PP
-Emacs Meta bindings
-.sp
-"M-C-G" abort
-"M-C-H" backward-kill-word
-"M-C-I" tab-insert
-"M-C-J" vi-editing-mode
-"M-C-M" vi-editing-mode
-"M-C-R" revert-line
-"M-C-Y" yank-nth-arg
-"M-C-[" complete
-"M-C-]" character-search-backward
-"M-space" set-mark
-"M-#" insert-comment
-"M-&" tilde-expand
-"M-*" insert-completions
-"M--" digit-argument
-"M-." yank-last-arg
-"M-0" digit-argument
-"M-1" digit-argument
-"M-2" digit-argument
-"M-3" digit-argument
-"M-4" digit-argument
-"M-5" digit-argument
-"M-6" digit-argument
-"M-7" digit-argument
-"M-8" digit-argument
-"M-9" digit-argument
-"M-<" beginning-of-history
-"M-=" possible-completions
-"M->" end-of-history
-"M-?" possible-completions
-"M-B" backward-word
-"M-C" capitalize-word
-"M-D" kill-word
-"M-F" forward-word
-"M-L" downcase-word
-"M-N" non-incremental-forward-search-history
-"M-P" non-incremental-reverse-search-history
-"M-R" revert-line
-"M-T" transpose-words
-"M-U" upcase-word
-"M-Y" yank-pop
-"M-\e" delete-horizontal-space
-"M-~" tilde-expand
-"M-C-?" backward-kill-word
-"M-_" yank-last-arg
-.PP
-Emacs Control-X bindings
-.sp
-"C-XC-G" abort
-"C-XC-R" re-read-init-file
-"C-XC-U" undo
-"C-XC-X" exchange-point-and-mark
-"C-X(" start-kbd-macro
-"C-X)" end-kbd-macro
-"C-XE" call-last-kbd-macro
-"C-XC-?" backward-kill-line
-.sp
-.RE
-.SS VI Mode bindings
-.RS +.6i
-.nf
-.ta 2.5i
-.sp
-.PP
-VI Insert Mode functions
-.sp
-"C-D" vi-eof-maybe
-"C-H" backward-delete-char
-"C-I" complete
-"C-J" accept-line
-"C-M" accept-line
-"C-R" reverse-search-history
-"C-S" forward-search-history
-"C-T" transpose-chars
-"C-U" unix-line-discard
-"C-V" quoted-insert
-"C-W" unix-word-rubout
-"C-Y" yank
-"C-[" vi-movement-mode
-"C-_" undo
-"\^ " to "~" self-insert
-"C-?" backward-delete-char
-.PP
-VI Command Mode functions
-.sp
-"C-D" vi-eof-maybe
-"C-E" emacs-editing-mode
-"C-G" abort
-"C-H" backward-char
-"C-J" accept-line
-"C-K" kill-line
-"C-L" clear-screen
-"C-M" accept-line
-"C-N" next-history
-"C-P" previous-history
-"C-Q" quoted-insert
-"C-R" reverse-search-history
-"C-S" forward-search-history
-"C-T" transpose-chars
-"C-U" unix-line-discard
-"C-V" quoted-insert
-"C-W" unix-word-rubout
-"C-Y" yank
-"C-_" vi-undo
-"\^ " forward-char
-"#" insert-comment
-"$" end-of-line
-"%" vi-match
-"&" vi-tilde-expand
-"*" vi-complete
-"+" next-history
-"," vi-char-search
-"-" previous-history
-"." vi-redo
-"/" vi-search
-"0" beginning-of-line
-"1" to "9" vi-arg-digit
-";" vi-char-search
-"=" vi-complete
-"?" vi-search
-"A" vi-append-eol
-"B" vi-prev-word
-"C" vi-change-to
-"D" vi-delete-to
-"E" vi-end-word
-"F" vi-char-search
-"G" vi-fetch-history
-"I" vi-insert-beg
-"N" vi-search-again
-"P" vi-put
-"R" vi-replace
-"S" vi-subst
-"T" vi-char-search
-"U" revert-line
-"W" vi-next-word
-"X" backward-delete-char
-"Y" vi-yank-to
-"\e" vi-complete
-"^" vi-first-print
-"_" vi-yank-arg
-"`" vi-goto-mark
-"a" vi-append-mode
-"b" vi-prev-word
-"c" vi-change-to
-"d" vi-delete-to
-"e" vi-end-word
-"f" vi-char-search
-"h" backward-char
-"i" vi-insertion-mode
-"j" next-history
-"k" prev-history
-"l" forward-char
-"m" vi-set-mark
-"n" vi-search-again
-"p" vi-put
-"r" vi-change-char
-"s" vi-subst
-"t" vi-char-search
-"u" vi-undo
-"w" vi-next-word
-"x" vi-delete
-"y" vi-yank-to
-"|" vi-column
-"~" vi-change-case
-.RE
-.SH "SEE ALSO"
-.PD 0
-.TP
-\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
-.TP
-\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
-.TP
-\fIbash\fP(1)
-.PD
-.SH FILES
-.PD 0
-.TP
-.FN ~/.inputrc
-Individual \fBreadline\fP initialization file
-.PD
-.SH AUTHORS
-Brian Fox, Free Software Foundation
-.br
-bfox@gnu.org
-.PP
-Chet Ramey, Case Western Reserve University
-.br
-chet@ins.CWRU.Edu
-.SH BUG REPORTS
-If you find a bug in
-.B readline,
-you should report it. But first, you should
-make sure that it really is a bug, and that it appears in the latest
-version of the
-.B readline
-library that you have.
-.PP
-Once you have determined that a bug actually exists, mail a
-bug report to \fIbug\-readline\fP@\fIgnu.org\fP.
-If you have a fix, you are welcome to mail that
-as well! Suggestions and `philosophical' bug reports may be mailed
-to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet
-newsgroup
-.BR gnu.bash.bug .
-.PP
-Comments and bug reports concerning
-this manual page should be directed to
-.IR chet@ins.CWRU.Edu .
-.SH BUGS
-.PP
-It's too big and too slow.
diff --git a/readline-4.3/doc/rlman.texinfo b/readline-4.3/doc/rlman.texinfo
deleted file mode 100644
index 1ffebad..0000000
--- a/readline-4.3/doc/rlman.texinfo
+++ /dev/null
@@ -1,108 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename readline.info
-@settitle GNU Readline Library
-@comment %**end of header (This is for running Texinfo on a region.)
-@synindex vr fn
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* Readline: (readline). The GNU readline library API
-@end direntry
-
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage
-@title GNU Readline Library
-@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU Readline Library
-
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-
-@menu
-* Command Line Editing:: GNU Readline User's Manual.
-* Programming with GNU Readline:: GNU Readline Programmer's Manual.
-* Concept Index:: Index of concepts described in this manual.
-* Function and Variable Index:: Index of externally visible functions
- and variables.
-@end menu
-@end ifinfo
-
-@include rluser.texinfo
-@include rltech.texinfo
-
-@node Concept Index
-@unnumbered Concept Index
-@printindex cp
-
-@node Function and Variable Index
-@unnumbered Function and Variable Index
-@printindex fn
-
-@contents
-@bye
diff --git a/readline-4.3/doc/rltech.texinfo b/readline-4.3/doc/rltech.texinfo
deleted file mode 100644
index 037e824..0000000
--- a/readline-4.3/doc/rltech.texinfo
+++ /dev/null
@@ -1,2165 +0,0 @@
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rltech.info
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@ifinfo
-This document describes the GNU Readline Library, a utility for aiding
-in the consitency of user interface across discrete programs that need
-to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Foundation.
-@end ifinfo
-
-@node Programming with GNU Readline
-@chapter Programming with GNU Readline
-
-This chapter describes the interface between the @sc{gnu} Readline Library and
-other programs. If you are a programmer, and you wish to include the
-features found in @sc{gnu} Readline
-such as completion, line editing, and interactive history manipulation
-in your own programs, this section is for you.
-
-@menu
-* Basic Behavior:: Using the default behavior of Readline.
-* Custom Functions:: Adding your own functions to Readline.
-* Readline Variables:: Variables accessible to custom
- functions.
-* Readline Convenience Functions:: Functions which Readline supplies to
- aid in writing your own custom
- functions.
-* Readline Signal Handling:: How Readline behaves when it receives signals.
-* Custom Completers:: Supplanting or supplementing Readline's
- completion functions.
-@end menu
-
-@node Basic Behavior
-@section Basic Behavior
-
-Many programs provide a command line interface, such as @code{mail},
-@code{ftp}, and @code{sh}. For such programs, the default behaviour of
-Readline is sufficient. This section describes how to use Readline in
-the simplest way possible, perhaps to replace calls in your code to
-@code{gets()} or @code{fgets()}.
-
-@findex readline
-@cindex readline, function
-
-The function @code{readline()} prints a prompt @var{prompt}
-and then reads and returns a single line of text from the user.
-If @var{prompt} is @code{NULL} or the empty string, no prompt is displayed.
-The line @code{readline} returns is allocated with @code{malloc()};
-the caller should @code{free()} the line when it has finished with it.
-The declaration for @code{readline} in ANSI C is
-
-@example
-@code{char *readline (const char *@var{prompt});}
-@end example
-
-@noindent
-So, one might say
-@example
-@code{char *line = readline ("Enter a line: ");}
-@end example
-@noindent
-in order to read a line of text from the user.
-The line returned has the final newline removed, so only the
-text remains.
-
-If @code{readline} encounters an @code{EOF} while reading the line, and the
-line is empty at that point, then @code{(char *)NULL} is returned.
-Otherwise, the line is ended just as if a newline had been typed.
-
-If you want the user to be able to get at the line later, (with
-@key{C-p} for example), you must call @code{add_history()} to save the
-line away in a @dfn{history} list of such lines.
-
-@example
-@code{add_history (line)};
-@end example
-
-@noindent
-For full details on the GNU History Library, see the associated manual.
-
-It is preferable to avoid saving empty lines on the history list, since
-users rarely have a burning need to reuse a blank line. Here is
-a function which usefully replaces the standard @code{gets()} library
-function, and has the advantage of no static buffer to overflow:
-
-@example
-/* A static variable for holding the line. */
-static char *line_read = (char *)NULL;
-
-/* Read a string, and return a pointer to it.
- Returns NULL on EOF. */
-char *
-rl_gets ()
-@{
- /* If the buffer has already been allocated,
- return the memory to the free pool. */
- if (line_read)
- @{
- free (line_read);
- line_read = (char *)NULL;
- @}
-
- /* Get a line from the user. */
- line_read = readline ("");
-
- /* If the line has any text in it,
- save it on the history. */
- if (line_read && *line_read)
- add_history (line_read);
-
- return (line_read);
-@}
-@end example
-
-This function gives the user the default behaviour of @key{TAB}
-completion: completion on file names. If you do not want Readline to
-complete on filenames, you can change the binding of the @key{TAB} key
-with @code{rl_bind_key()}.
-
-@example
-@code{int rl_bind_key (int @var{key}, rl_command_func_t *@var{function});}
-@end example
-
-@code{rl_bind_key()} takes two arguments: @var{key} is the character that
-you want to bind, and @var{function} is the address of the function to
-call when @var{key} is pressed. Binding @key{TAB} to @code{rl_insert()}
-makes @key{TAB} insert itself.
-@code{rl_bind_key()} returns non-zero if @var{key} is not a valid
-ASCII character code (between 0 and 255).
-
-Thus, to disable the default @key{TAB} behavior, the following suffices:
-@example
-@code{rl_bind_key ('\t', rl_insert);}
-@end example
-
-This code should be executed once at the start of your program; you
-might write a function called @code{initialize_readline()} which
-performs this and other desired initializations, such as installing
-custom completers (@pxref{Custom Completers}).
-
-@node Custom Functions
-@section Custom Functions
-
-Readline provides many functions for manipulating the text of
-the line, but it isn't possible to anticipate the needs of all
-programs. This section describes the various functions and variables
-defined within the Readline library which allow a user program to add
-customized functionality to Readline.
-
-Before declaring any functions that customize Readline's behavior, or
-using any functionality Readline provides in other code, an
-application writer should include the file @code{<readline/readline.h>}
-in any file that uses Readline's features. Since some of the definitions
-in @code{readline.h} use the @code{stdio} library, the file
-@code{<stdio.h>} should be included before @code{readline.h}.
-
-@code{readline.h} defines a C preprocessor variable that should
-be treated as an integer, @code{RL_READLINE_VERSION}, which may
-be used to conditionally compile application code depending on
-the installed Readline version. The value is a hexadecimal
-encoding of the major and minor version numbers of the library,
-of the form 0x@var{MMmm}. @var{MM} is the two-digit major
-version number; @var{mm} is the two-digit minor version number.
-For Readline 4.2, for example, the value of
-@code{RL_READLINE_VERSION} would be @code{0x0402}.
-
-@menu
-* Readline Typedefs:: C declarations to make code readable.
-* Function Writing:: Variables and calling conventions.
-@end menu
-
-@node Readline Typedefs
-@subsection Readline Typedefs
-
-For readabilty, we declare a number of new object types, all pointers
-to functions.
-
-The reason for declaring these new types is to make it easier to write
-code describing pointers to C functions with appropriately prototyped
-arguments and return values.
-
-For instance, say we want to declare a variable @var{func} as a pointer
-to a function which takes two @code{int} arguments and returns an
-@code{int} (this is the type of all of the Readline bindable functions).
-Instead of the classic C declaration
-
-@code{int (*func)();}
-
-@noindent
-or the ANSI-C style declaration
-
-@code{int (*func)(int, int);}
-
-@noindent
-we may write
-
-@code{rl_command_func_t *func;}
-
-The full list of function pointer types available is
-
-@table @code
-@item typedef int rl_command_func_t (int, int);
-
-@item typedef char *rl_compentry_func_t (const char *, int);
-
-@item typedef char **rl_completion_func_t (const char *, int, int);
-
-@item typedef char *rl_quote_func_t (char *, int, char *);
-
-@item typedef char *rl_dequote_func_t (char *, int);
-
-@item typedef int rl_compignore_func_t (char **);
-
-@item typedef void rl_compdisp_func_t (char **, int, int);
-
-@item typedef int rl_hook_func_t (void);
-
-@item typedef int rl_getc_func_t (FILE *);
-
-@item typedef int rl_linebuf_func_t (char *, int);
-
-@item typedef int rl_intfunc_t (int);
-@item #define rl_ivoidfunc_t rl_hook_func_t
-@item typedef int rl_icpfunc_t (char *);
-@item typedef int rl_icppfunc_t (char **);
-
-@item typedef void rl_voidfunc_t (void);
-@item typedef void rl_vintfunc_t (int);
-@item typedef void rl_vcpfunc_t (char *);
-@item typedef void rl_vcppfunc_t (char **);
-
-@end table
-
-@node Function Writing
-@subsection Writing a New Function
-
-In order to write new functions for Readline, you need to know the
-calling conventions for keyboard-invoked functions, and the names of the
-variables that describe the current state of the line read so far.
-
-The calling sequence for a command @code{foo} looks like
-
-@example
-@code{int foo (int count, int key)}
-@end example
-
-@noindent
-where @var{count} is the numeric argument (or 1 if defaulted) and
-@var{key} is the key that invoked this function.
-
-It is completely up to the function as to what should be done with the
-numeric argument. Some functions use it as a repeat count, some
-as a flag, and others to choose alternate behavior (refreshing the current
-line as opposed to refreshing the screen, for example). Some choose to
-ignore it. In general, if a
-function uses the numeric argument as a repeat count, it should be able
-to do something useful with both negative and positive arguments.
-At the very least, it should be aware that it can be passed a
-negative argument.
-
-A command function should return 0 if its action completes successfully,
-and a non-zero value if some error occurs.
-
-@node Readline Variables
-@section Readline Variables
-
-These variables are available to function writers.
-
-@deftypevar {char *} rl_line_buffer
-This is the line gathered so far. You are welcome to modify the
-contents of the line, but see @ref{Allowing Undoing}. The
-function @code{rl_extend_line_buffer} is available to increase
-the memory allocated to @code{rl_line_buffer}.
-@end deftypevar
-
-@deftypevar int rl_point
-The offset of the current cursor position in @code{rl_line_buffer}
-(the @emph{point}).
-@end deftypevar
-
-@deftypevar int rl_end
-The number of characters present in @code{rl_line_buffer}. When
-@code{rl_point} is at the end of the line, @code{rl_point} and
-@code{rl_end} are equal.
-@end deftypevar
-
-@deftypevar int rl_mark
-The @var{mark} (saved position) in the current line. If set, the mark
-and point define a @emph{region}.
-@end deftypevar
-
-@deftypevar int rl_done
-Setting this to a non-zero value causes Readline to return the current
-line immediately.
-@end deftypevar
-
-@deftypevar int rl_num_chars_to_read
-Setting this to a positive value before calling @code{readline()} causes
-Readline to return after accepting that many characters, rather
-than reading up to a character bound to @code{accept-line}.
-@end deftypevar
-
-@deftypevar int rl_pending_input
-Setting this to a value makes it the next keystroke read. This is a
-way to stuff a single character into the input stream.
-@end deftypevar
-
-@deftypevar int rl_dispatching
-Set to a non-zero value if a function is being called from a key binding;
-zero otherwise. Application functions can test this to discover whether
-they were called directly or by Readline's dispatching mechanism.
-@end deftypevar
-
-@deftypevar int rl_erase_empty_line
-Setting this to a non-zero value causes Readline to completely erase
-the current line, including any prompt, any time a newline is typed as
-the only character on an otherwise-empty line. The cursor is moved to
-the beginning of the newly-blank line.
-@end deftypevar
-
-@deftypevar {char *} rl_prompt
-The prompt Readline uses. This is set from the argument to
-@code{readline()}, and should not be assigned to directly.
-The @code{rl_set_prompt()} function (@pxref{Redisplay}) may
-be used to modify the prompt string after calling @code{readline()}.
-@end deftypevar
-
-@deftypevar int rl_already_prompted
-If an application wishes to display the prompt itself, rather than have
-Readline do it the first time @code{readline()} is called, it should set
-this variable to a non-zero value after displaying the prompt.
-The prompt must also be passed as the argument to @code{readline()} so
-the redisplay functions can update the display properly.
-The calling application is responsible for managing the value; Readline
-never sets it.
-@end deftypevar
-
-@deftypevar {const char *} rl_library_version
-The version number of this revision of the library.
-@end deftypevar
-
-@deftypevar int rl_readline_version
-An integer encoding the current version of the library. The encoding is
-of the form 0x@var{MMmm}, where @var{MM} is the two-digit major version
-number, and @var{mm} is the two-digit minor version number.
-For example, for Readline-4.2, @code{rl_readline_version} would have the
-value 0x0402.
-@end deftypevar
-
-@deftypevar {int} rl_gnu_readline_p
-Always set to 1, denoting that this is @sc{gnu} readline rather than some
-emulation.
-@end deftypevar
-
-@deftypevar {const char *} rl_terminal_name
-The terminal type, used for initialization. If not set by the application,
-Readline sets this to the value of the @env{TERM} environment variable
-the first time it is called.
-@end deftypevar
-
-@deftypevar {const char *} rl_readline_name
-This variable is set to a unique name by each application using Readline.
-The value allows conditional parsing of the inputrc file
-(@pxref{Conditional Init Constructs}).
-@end deftypevar
-
-@deftypevar {FILE *} rl_instream
-The stdio stream from which Readline reads input.
-If @code{NULL}, Readline defaults to @var{stdin}.
-@end deftypevar
-
-@deftypevar {FILE *} rl_outstream
-The stdio stream to which Readline performs output.
-If @code{NULL}, Readline defaults to @var{stdout}.
-@end deftypevar
-
-@deftypevar {rl_command_func_t *} rl_last_func
-The address of the last command function Readline executed. May be used to
-test whether or not a function is being executed twice in succession, for
-example.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_startup_hook
-If non-zero, this is the address of a function to call just
-before @code{readline} prints the first prompt.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_pre_input_hook
-If non-zero, this is the address of a function to call after
-the first prompt has been printed and just before @code{readline}
-starts reading input characters.
-@end deftypevar
-
-@deftypevar {rl_hook_func_t *} rl_event_hook
-If non-zero, this is the address of a function to call periodically
-when Readline is waiting for terminal input.
-By default, this will be called at most ten times a second if there
-is no keyboard input.
-@end deftypevar
-
-@deftypevar {rl_getc_func_t *} rl_getc_function
-If non-zero, Readline will call indirectly through this pointer
-to get a character from the input stream. By default, it is set to
-@code{rl_getc}, the default Readline character input function
-(@pxref{Character Input}).
-@end deftypevar
-
-@deftypevar {rl_voidfunc_t *} rl_redisplay_function
-If non-zero, Readline will call indirectly through this pointer
-to update the display with the current contents of the editing buffer.
-By default, it is set to @code{rl_redisplay}, the default Readline
-redisplay function (@pxref{Redisplay}).
-@end deftypevar
-
-@deftypevar {rl_vintfunc_t *} rl_prep_term_function
-If non-zero, Readline will call indirectly through this pointer
-to initialize the terminal. The function takes a single argument, an
-@code{int} flag that says whether or not to use eight-bit characters.
-By default, this is set to @code{rl_prep_terminal}
-(@pxref{Terminal Management}).
-@end deftypevar
-
-@deftypevar {rl_voidfunc_t *} rl_deprep_term_function
-If non-zero, Readline will call indirectly through this pointer
-to reset the terminal. This function should undo the effects of
-@code{rl_prep_term_function}.
-By default, this is set to @code{rl_deprep_terminal}
-(@pxref{Terminal Management}).
-@end deftypevar
-
-@deftypevar {Keymap} rl_executing_keymap
-This variable is set to the keymap (@pxref{Keymaps}) in which the
-currently executing readline function was found.
-@end deftypevar
-
-@deftypevar {Keymap} rl_binding_keymap
-This variable is set to the keymap (@pxref{Keymaps}) in which the
-last key binding occurred.
-@end deftypevar
-
-@deftypevar {char *} rl_executing_macro
-This variable is set to the text of any currently-executing macro.
-@end deftypevar
-
-@deftypevar {int} rl_readline_state
-A variable with bit values that encapsulate the current Readline state.
-A bit is set with the @code{RL_SETSTATE} macro, and unset with the
-@code{RL_UNSETSTATE} macro. Use the @code{RL_ISSTATE} macro to test
-whether a particular state bit is set. Current state bits include:
-
-@table @code
-@item RL_STATE_NONE
-Readline has not yet been called, nor has it begun to intialize.
-@item RL_STATE_INITIALIZING
-Readline is initializing its internal data structures.
-@item RL_STATE_INITIALIZED
-Readline has completed its initialization.
-@item RL_STATE_TERMPREPPED
-Readline has modified the terminal modes to do its own input and redisplay.
-@item RL_STATE_READCMD
-Readline is reading a command from the keyboard.
-@item RL_STATE_METANEXT
-Readline is reading more input after reading the meta-prefix character.
-@item RL_STATE_DISPATCHING
-Readline is dispatching to a command.
-@item RL_STATE_MOREINPUT
-Readline is reading more input while executing an editing command.
-@item RL_STATE_ISEARCH
-Readline is performing an incremental history search.
-@item RL_STATE_NSEARCH
-Readline is performing a non-incremental history search.
-@item RL_STATE_SEARCH
-Readline is searching backward or forward through the history for a string.
-@item RL_STATE_NUMERICARG
-Readline is reading a numeric argument.
-@item RL_STATE_MACROINPUT
-Readline is currently getting its input from a previously-defined keyboard
-macro.
-@item RL_STATE_MACRODEF
-Readline is currently reading characters defining a keyboard macro.
-@item RL_STATE_OVERWRITE
-Readline is in overwrite mode.
-@item RL_STATE_COMPLETING
-Readline is performing word completion.
-@item RL_STATE_SIGHANDLER
-Readline is currently executing the readline signal handler.
-@item RL_STATE_UNDOING
-Readline is performing an undo.
-@item RL_STATE_DONE
-Readline has read a key sequence bound to @code{accept-line}
-and is about to return the line to the caller.
-@end table
-
-@end deftypevar
-
-@deftypevar {int} rl_explicit_arg
-Set to a non-zero value if an explicit numeric argument was specified by
-the user. Only valid in a bindable command function.
-@end deftypevar
-
-@deftypevar {int} rl_numeric_arg
-Set to the value of any numeric argument explicitly specified by the user
-before executing the current Readline function. Only valid in a bindable
-command function.
-@end deftypevar
-
-@deftypevar {int} rl_editing_mode
-Set to a value denoting Readline's current editing mode. A value of
-@var{1} means Readline is currently in emacs mode; @var{0}
-means that vi mode is active.
-@end deftypevar
-
-
-@node Readline Convenience Functions
-@section Readline Convenience Functions
-
-@menu
-* Function Naming:: How to give a function you write a name.
-* Keymaps:: Making keymaps.
-* Binding Keys:: Changing Keymaps.
-* Associating Function Names and Bindings:: Translate function names to
- key sequences.
-* Allowing Undoing:: How to make your functions undoable.
-* Redisplay:: Functions to control line display.
-* Modifying Text:: Functions to modify @code{rl_line_buffer}.
-* Character Input:: Functions to read keyboard input.
-* Terminal Management:: Functions to manage terminal settings.
-* Utility Functions:: Generally useful functions and hooks.
-* Miscellaneous Functions:: Functions that don't fall into any category.
-* Alternate Interface:: Using Readline in a `callback' fashion.
-* A Readline Example:: An example Readline function.
-@end menu
-
-@node Function Naming
-@subsection Naming a Function
-
-The user can dynamically change the bindings of keys while using
-Readline. This is done by representing the function with a descriptive
-name. The user is able to type the descriptive name when referring to
-the function. Thus, in an init file, one might find
-
-@example
-Meta-Rubout: backward-kill-word
-@end example
-
-This binds the keystroke @key{Meta-Rubout} to the function
-@emph{descriptively} named @code{backward-kill-word}. You, as the
-programmer, should bind the functions you write to descriptive names as
-well. Readline provides a function for doing that:
-
-@deftypefun int rl_add_defun (const char *name, rl_command_func_t *function, int key)
-Add @var{name} to the list of named functions. Make @var{function} be
-the function that gets called. If @var{key} is not -1, then bind it to
-@var{function} using @code{rl_bind_key()}.
-@end deftypefun
-
-Using this function alone is sufficient for most applications. It is
-the recommended way to add a few functions to the default functions that
-Readline has built in. If you need to do something other
-than adding a function to Readline, you may need to use the
-underlying functions described below.
-
-@node Keymaps
-@subsection Selecting a Keymap
-
-Key bindings take place on a @dfn{keymap}. The keymap is the
-association between the keys that the user types and the functions that
-get run. You can make your own keymaps, copy existing keymaps, and tell
-Readline which keymap to use.
-
-@deftypefun Keymap rl_make_bare_keymap (void)
-Returns a new, empty keymap. The space for the keymap is allocated with
-@code{malloc()}; the caller should free it by calling
-@code{rl_discard_keymap()} when done.
-@end deftypefun
-
-@deftypefun Keymap rl_copy_keymap (Keymap map)
-Return a new keymap which is a copy of @var{map}.
-@end deftypefun
-
-@deftypefun Keymap rl_make_keymap (void)
-Return a new keymap with the printing characters bound to rl_insert,
-the lowercase Meta characters bound to run their equivalents, and
-the Meta digits bound to produce numeric arguments.
-@end deftypefun
-
-@deftypefun void rl_discard_keymap (Keymap keymap)
-Free the storage associated with @var{keymap}.
-@end deftypefun
-
-Readline has several internal keymaps. These functions allow you to
-change which keymap is active.
-
-@deftypefun Keymap rl_get_keymap (void)
-Returns the currently active keymap.
-@end deftypefun
-
-@deftypefun void rl_set_keymap (Keymap keymap)
-Makes @var{keymap} the currently active keymap.
-@end deftypefun
-
-@deftypefun Keymap rl_get_keymap_by_name (const char *name)
-Return the keymap matching @var{name}. @var{name} is one which would
-be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
-@end deftypefun
-
-@deftypefun {char *} rl_get_keymap_name (Keymap keymap)
-Return the name matching @var{keymap}. @var{name} is one which would
-be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
-@end deftypefun
-
-@node Binding Keys
-@subsection Binding Keys
-
-Key sequences are associate with functions through the keymap.
-Readline has several internal keymaps: @code{emacs_standard_keymap},
-@code{emacs_meta_keymap}, @code{emacs_ctlx_keymap},
-@code{vi_movement_keymap}, and @code{vi_insertion_keymap}.
-@code{emacs_standard_keymap} is the default, and the examples in
-this manual assume that.
-
-Since @code{readline()} installs a set of default key bindings the first
-time it is called, there is always the danger that a custom binding
-installed before the first call to @code{readline()} will be overridden.
-An alternate mechanism is to install custom key bindings in an
-initialization function assigned to the @code{rl_startup_hook} variable
-(@pxref{Readline Variables}).
-
-These functions manage key bindings.
-
-@deftypefun int rl_bind_key (int key, rl_command_func_t *function)
-Binds @var{key} to @var{function} in the currently active keymap.
-Returns non-zero in the case of an invalid @var{key}.
-@end deftypefun
-
-@deftypefun int rl_bind_key_in_map (int key, rl_command_func_t *function, Keymap map)
-Bind @var{key} to @var{function} in @var{map}. Returns non-zero in the case
-of an invalid @var{key}.
-@end deftypefun
-
-@deftypefun int rl_unbind_key (int key)
-Bind @var{key} to the null function in the currently active keymap.
-Returns non-zero in case of error.
-@end deftypefun
-
-@deftypefun int rl_unbind_key_in_map (int key, Keymap map)
-Bind @var{key} to the null function in @var{map}.
-Returns non-zero in case of error.
-@end deftypefun
-
-@deftypefun int rl_unbind_function_in_map (rl_command_func_t *function, Keymap map)
-Unbind all keys that execute @var{function} in @var{map}.
-@end deftypefun
-
-@deftypefun int rl_unbind_command_in_map (const char *command, Keymap map)
-Unbind all keys that are bound to @var{command} in @var{map}.
-@end deftypefun
-
-@deftypefun int rl_set_key (const char *keyseq, rl_command_func_t *function, Keymap map)
-Bind the key sequence represented by the string @var{keyseq} to the function
-@var{function}. This makes new keymaps as
-necessary. The initial keymap in which to do bindings is @var{map}.
-@end deftypefun
-
-@deftypefun int rl_generic_bind (int type, const char *keyseq, char *data, Keymap map)
-Bind the key sequence represented by the string @var{keyseq} to the arbitrary
-pointer @var{data}. @var{type} says what kind of data is pointed to by
-@var{data}; this can be a function (@code{ISFUNC}), a macro
-(@code{ISMACR}), or a keymap (@code{ISKMAP}). This makes new keymaps as
-necessary. The initial keymap in which to do bindings is @var{map}.
-@end deftypefun
-
-@deftypefun int rl_parse_and_bind (char *line)
-Parse @var{line} as if it had been read from the @code{inputrc} file and
-perform any key bindings and variable assignments found
-(@pxref{Readline Init File}).
-@end deftypefun
-
-@deftypefun int rl_read_init_file (const char *filename)
-Read keybindings and variable assignments from @var{filename}
-(@pxref{Readline Init File}).
-@end deftypefun
-
-@node Associating Function Names and Bindings
-@subsection Associating Function Names and Bindings
-
-These functions allow you to find out what keys invoke named functions
-and the functions invoked by a particular key sequence. You may also
-associate a new function name with an arbitrary function.
-
-@deftypefun {rl_command_func_t *} rl_named_function (const char *name)
-Return the function with name @var{name}.
-@end deftypefun
-
-@deftypefun {rl_command_func_t *} rl_function_of_keyseq (const char *keyseq, Keymap map, int *type)
-Return the function invoked by @var{keyseq} in keymap @var{map}.
-If @var{map} is @code{NULL}, the current keymap is used. If @var{type} is
-not @code{NULL}, the type of the object is returned in the @code{int} variable
-it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}).
-@end deftypefun
-
-@deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
-Return an array of strings representing the key sequences used to
-invoke @var{function} in the current keymap.
-@end deftypefun
-
-@deftypefun {char **} rl_invoking_keyseqs_in_map (rl_command_func_t *function, Keymap map)
-Return an array of strings representing the key sequences used to
-invoke @var{function} in the keymap @var{map}.
-@end deftypefun
-
-@deftypefun void rl_function_dumper (int readable)
-Print the readline function names and the key sequences currently
-bound to them to @code{rl_outstream}. If @var{readable} is non-zero,
-the list is formatted in such a way that it can be made part of an
-@code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun void rl_list_funmap_names (void)
-Print the names of all bindable Readline functions to @code{rl_outstream}.
-@end deftypefun
-
-@deftypefun {const char **} rl_funmap_names (void)
-Return a NULL terminated array of known function names. The array is
-sorted. The array itself is allocated, but not the strings inside. You
-should @code{free()} the array when you are done, but not the pointers.
-@end deftypefun
-
-@deftypefun int rl_add_funmap_entry (const char *name, rl_command_func_t *function)
-Add @var{name} to the list of bindable Readline command names, and make
-@var{function} the function to be called when @var{name} is invoked.
-@end deftypefun
-
-@node Allowing Undoing
-@subsection Allowing Undoing
-
-Supporting the undo command is a painless thing, and makes your
-functions much more useful. It is certainly easy to try
-something if you know you can undo it.
-
-If your function simply inserts text once, or deletes text once, and
-uses @code{rl_insert_text()} or @code{rl_delete_text()} to do it, then
-undoing is already done for you automatically.
-
-If you do multiple insertions or multiple deletions, or any combination
-of these operations, you should group them together into one operation.
-This is done with @code{rl_begin_undo_group()} and
-@code{rl_end_undo_group()}.
-
-The types of events that can be undone are:
-
-@smallexample
-enum undo_code @{ UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END @};
-@end smallexample
-
-Notice that @code{UNDO_DELETE} means to insert some text, and
-@code{UNDO_INSERT} means to delete some text. That is, the undo code
-tells what to undo, not how to undo it. @code{UNDO_BEGIN} and
-@code{UNDO_END} are tags added by @code{rl_begin_undo_group()} and
-@code{rl_end_undo_group()}.
-
-@deftypefun int rl_begin_undo_group (void)
-Begins saving undo information in a group construct. The undo
-information usually comes from calls to @code{rl_insert_text()} and
-@code{rl_delete_text()}, but could be the result of calls to
-@code{rl_add_undo()}.
-@end deftypefun
-
-@deftypefun int rl_end_undo_group (void)
-Closes the current undo group started with @code{rl_begin_undo_group
-()}. There should be one call to @code{rl_end_undo_group()}
-for each call to @code{rl_begin_undo_group()}.
-@end deftypefun
-
-@deftypefun void rl_add_undo (enum undo_code what, int start, int end, char *text)
-Remember how to undo an event (according to @var{what}). The affected
-text runs from @var{start} to @var{end}, and encompasses @var{text}.
-@end deftypefun
-
-@deftypefun void rl_free_undo_list (void)
-Free the existing undo list.
-@end deftypefun
-
-@deftypefun int rl_do_undo (void)
-Undo the first thing on the undo list. Returns @code{0} if there was
-nothing to undo, non-zero if something was undone.
-@end deftypefun
-
-Finally, if you neither insert nor delete text, but directly modify the
-existing text (e.g., change its case), call @code{rl_modifying()}
-once, just before you modify the text. You must supply the indices of
-the text range that you are going to modify.
-
-@deftypefun int rl_modifying (int start, int end)
-Tell Readline to save the text between @var{start} and @var{end} as a
-single undo unit. It is assumed that you will subsequently modify
-that text.
-@end deftypefun
-
-@node Redisplay
-@subsection Redisplay
-
-@deftypefun void rl_redisplay (void)
-Change what's displayed on the screen to reflect the current contents
-of @code{rl_line_buffer}.
-@end deftypefun
-
-@deftypefun int rl_forced_update_display (void)
-Force the line to be updated and redisplayed, whether or not
-Readline thinks the screen display is correct.
-@end deftypefun
-
-@deftypefun int rl_on_new_line (void)
-Tell the update functions that we have moved onto a new (empty) line,
-usually after ouputting a newline.
-@end deftypefun
-
-@deftypefun int rl_on_new_line_with_prompt (void)
-Tell the update functions that we have moved onto a new line, with
-@var{rl_prompt} already displayed.
-This could be used by applications that want to output the prompt string
-themselves, but still need Readline to know the prompt string length for
-redisplay.
-It should be used after setting @var{rl_already_prompted}.
-@end deftypefun
-
-@deftypefun int rl_reset_line_state (void)
-Reset the display state to a clean state and redisplay the current line
-starting on a new line.
-@end deftypefun
-
-@deftypefun int rl_crlf (void)
-Move the cursor to the start of the next screen line.
-@end deftypefun
-
-@deftypefun int rl_show_char (int c)
-Display character @var{c} on @code{rl_outstream}.
-If Readline has not been set to display meta characters directly, this
-will convert meta characters to a meta-prefixed key sequence.
-This is intended for use by applications which wish to do their own
-redisplay.
-@end deftypefun
-
-@deftypefun int rl_message (const char *, @dots{})
-The arguments are a format string as would be supplied to @code{printf},
-possibly containing conversion specifications such as @samp{%d}, and
-any additional arguments necessary to satisfy the conversion specifications.
-The resulting string is displayed in the @dfn{echo area}. The echo area
-is also used to display numeric arguments and search strings.
-@end deftypefun
-
-@deftypefun int rl_clear_message (void)
-Clear the message in the echo area.
-@end deftypefun
-
-@deftypefun void rl_save_prompt (void)
-Save the local Readline prompt display state in preparation for
-displaying a new message in the message area with @code{rl_message()}.
-@end deftypefun
-
-@deftypefun void rl_restore_prompt (void)
-Restore the local Readline prompt display state saved by the most
-recent call to @code{rl_save_prompt}.
-@end deftypefun
-
-@deftypefun int rl_expand_prompt (char *prompt)
-Expand any special character sequences in @var{prompt} and set up the
-local Readline prompt redisplay variables.
-This function is called by @code{readline()}. It may also be called to
-expand the primary prompt if the @code{rl_on_new_line_with_prompt()}
-function or @code{rl_already_prompted} variable is used.
-It returns the number of visible characters on the last line of the
-(possibly multi-line) prompt.
-@end deftypefun
-
-@deftypefun int rl_set_prompt (const char *prompt)
-Make Readline use @var{prompt} for subsequent redisplay. This calls
-@code{rl_expand_prompt()} to expand the prompt and sets @code{rl_prompt}
-to the result.
-@end deftypefun
-
-@node Modifying Text
-@subsection Modifying Text
-
-@deftypefun int rl_insert_text (const char *text)
-Insert @var{text} into the line at the current cursor position.
-Returns the number of characters inserted.
-@end deftypefun
-
-@deftypefun int rl_delete_text (int start, int end)
-Delete the text between @var{start} and @var{end} in the current line.
-Returns the number of characters deleted.
-@end deftypefun
-
-@deftypefun {char *} rl_copy_text (int start, int end)
-Return a copy of the text between @var{start} and @var{end} in
-the current line.
-@end deftypefun
-
-@deftypefun int rl_kill_text (int start, int end)
-Copy the text between @var{start} and @var{end} in the current line
-to the kill ring, appending or prepending to the last kill if the
-last command was a kill command. The text is deleted.
-If @var{start} is less than @var{end},
-the text is appended, otherwise prepended. If the last command was
-not a kill, a new kill ring slot is used.
-@end deftypefun
-
-@deftypefun int rl_push_macro_input (char *macro)
-Cause @var{macro} to be inserted into the line, as if it had been invoked
-by a key bound to a macro. Not especially useful; use
-@code{rl_insert_text()} instead.
-@end deftypefun
-
-@node Character Input
-@subsection Character Input
-
-@deftypefun int rl_read_key (void)
-Return the next character available from Readline's current input stream.
-This handles input inserted into
-the input stream via @var{rl_pending_input} (@pxref{Readline Variables})
-and @code{rl_stuff_char()}, macros, and characters read from the keyboard.
-While waiting for input, this function will call any function assigned to
-the @code{rl_event_hook} variable.
-@end deftypefun
-
-@deftypefun int rl_getc (FILE *stream)
-Return the next character available from @var{stream}, which is assumed to
-be the keyboard.
-@end deftypefun
-
-@deftypefun int rl_stuff_char (int c)
-Insert @var{c} into the Readline input stream. It will be "read"
-before Readline attempts to read characters from the terminal with
-@code{rl_read_key()}. Up to 512 characters may be pushed back.
-@code{rl_stuff_char} returns 1 if the character was successfully inserted;
-0 otherwise.
-@end deftypefun
-
-@deftypefun int rl_execute_next (int c)
-Make @var{c} be the next command to be executed when @code{rl_read_key()}
-is called. This sets @var{rl_pending_input}.
-@end deftypefun
-
-@deftypefun int rl_clear_pending_input (void)
-Unset @var{rl_pending_input}, effectively negating the effect of any
-previous call to @code{rl_execute_next()}. This works only if the
-pending input has not already been read with @code{rl_read_key()}.
-@end deftypefun
-
-@deftypefun int rl_set_keyboard_input_timeout (int u)
-While waiting for keyboard input in @code{rl_read_key()}, Readline will
-wait for @var{u} microseconds for input before calling any function
-assigned to @code{rl_event_hook}. The default waiting period is
-one-tenth of a second. Returns the old timeout value.
-@end deftypefun
-
-@node Terminal Management
-@subsection Terminal Management
-
-@deftypefun void rl_prep_terminal (int meta_flag)
-Modify the terminal settings for Readline's use, so @code{readline()}
-can read a single character at a time from the keyboard.
-The @var{meta_flag} argument should be non-zero if Readline should
-read eight-bit input.
-@end deftypefun
-
-@deftypefun void rl_deprep_terminal (void)
-Undo the effects of @code{rl_prep_terminal()}, leaving the terminal in
-the state in which it was before the most recent call to
-@code{rl_prep_terminal()}.
-@end deftypefun
-
-@deftypefun void rl_tty_set_default_bindings (Keymap kmap)
-Read the operating system's terminal editing characters (as would be displayed
-by @code{stty}) to their Readline equivalents. The bindings are performed
-in @var{kmap}.
-@end deftypefun
-
-@deftypefun int rl_reset_terminal (const char *terminal_name)
-Reinitialize Readline's idea of the terminal settings using
-@var{terminal_name} as the terminal type (e.g., @code{vt100}).
-If @var{terminal_name} is @code{NULL}, the value of the @code{TERM}
-environment variable is used.
-@end deftypefun
-
-@node Utility Functions
-@subsection Utility Functions
-
-@deftypefun void rl_replace_line (const char *text, int clear_undo)
-Replace the contents of @code{rl_line_buffer} with @var{text}.
-The point and mark are preserved, if possible.
-If @var{clear_undo} is non-zero, the undo list associated with the
-current line is cleared.
-@end deftypefun
-
-@deftypefun int rl_extend_line_buffer (int len)
-Ensure that @code{rl_line_buffer} has enough space to hold @var{len}
-characters, possibly reallocating it if necessary.
-@end deftypefun
-
-@deftypefun int rl_initialize (void)
-Initialize or re-initialize Readline's internal state.
-It's not strictly necessary to call this; @code{readline()} calls it before
-reading any input.
-@end deftypefun
-
-@deftypefun int rl_ding (void)
-Ring the terminal bell, obeying the setting of @code{bell-style}.
-@end deftypefun
-
-@deftypefun int rl_alphabetic (int c)
-Return 1 if @var{c} is an alphabetic character.
-@end deftypefun
-
-@deftypefun void rl_display_match_list (char **matches, int len, int max)
-A convenience function for displaying a list of strings in
-columnar format on Readline's output stream. @code{matches} is the list
-of strings, in argv format, such as a list of completion matches.
-@code{len} is the number of strings in @code{matches}, and @code{max}
-is the length of the longest string in @code{matches}. This function uses
-the setting of @code{print-completions-horizontally} to select how the
-matches are displayed (@pxref{Readline Init File Syntax}).
-@end deftypefun
-
-The following are implemented as macros, defined in @code{chardefs.h}.
-Applications should refrain from using them.
-
-@deftypefun int _rl_uppercase_p (int c)
-Return 1 if @var{c} is an uppercase alphabetic character.
-@end deftypefun
-
-@deftypefun int _rl_lowercase_p (int c)
-Return 1 if @var{c} is a lowercase alphabetic character.
-@end deftypefun
-
-@deftypefun int _rl_digit_p (int c)
-Return 1 if @var{c} is a numeric character.
-@end deftypefun
-
-@deftypefun int _rl_to_upper (int c)
-If @var{c} is a lowercase alphabetic character, return the corresponding
-uppercase character.
-@end deftypefun
-
-@deftypefun int _rl_to_lower (int c)
-If @var{c} is an uppercase alphabetic character, return the corresponding
-lowercase character.
-@end deftypefun
-
-@deftypefun int _rl_digit_value (int c)
-If @var{c} is a number, return the value it represents.
-@end deftypefun
-
-@node Miscellaneous Functions
-@subsection Miscellaneous Functions
-
-@deftypefun int rl_macro_bind (const char *keyseq, const char *macro, Keymap map)
-Bind the key sequence @var{keyseq} to invoke the macro @var{macro}.
-The binding is performed in @var{map}. When @var{keyseq} is invoked, the
-@var{macro} will be inserted into the line. This function is deprecated;
-use @code{rl_generic_bind()} instead.
-@end deftypefun
-
-@deftypefun void rl_macro_dumper (int readable)
-Print the key sequences bound to macros and their values, using
-the current keymap, to @code{rl_outstream}.
-If @var{readable} is non-zero, the list is formatted in such a way
-that it can be made part of an @code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun int rl_variable_bind (const char *variable, const char *value)
-Make the Readline variable @var{variable} have @var{value}.
-This behaves as if the readline command
-@samp{set @var{variable} @var{value}} had been executed in an @code{inputrc}
-file (@pxref{Readline Init File Syntax}).
-@end deftypefun
-
-@deftypefun void rl_variable_dumper (int readable)
-Print the readline variable names and their current values
-to @code{rl_outstream}.
-If @var{readable} is non-zero, the list is formatted in such a way
-that it can be made part of an @code{inputrc} file and re-read.
-@end deftypefun
-
-@deftypefun int rl_set_paren_blink_timeout (int u)
-Set the time interval (in microseconds) that Readline waits when showing
-a balancing character when @code{blink-matching-paren} has been enabled.
-@end deftypefun
-
-@deftypefun {char *} rl_get_termcap (const char *cap)
-Retrieve the string value of the termcap capability @var{cap}.
-Readline fetches the termcap entry for the current terminal name and
-uses those capabilities to move around the screen line and perform other
-terminal-specific operations, like erasing a line. Readline does not
-use all of a terminal's capabilities, and this function will return
-values for only those capabilities Readline uses.
-@end deftypefun
-
-@node Alternate Interface
-@subsection Alternate Interface
-
-An alternate interface is available to plain @code{readline()}. Some
-applications need to interleave keyboard I/O with file, device, or
-window system I/O, typically by using a main loop to @code{select()}
-on various file descriptors. To accomodate this need, readline can
-also be invoked as a `callback' function from an event loop. There
-are functions available to make this easy.
-
-@deftypefun void rl_callback_handler_install (const char *prompt, rl_vcpfunc_t *lhandler)
-Set up the terminal for readline I/O and display the initial
-expanded value of @var{prompt}. Save the value of @var{lhandler} to
-use as a function to call when a complete line of input has been entered.
-The function takes the text of the line as an argument.
-@end deftypefun
-
-@deftypefun void rl_callback_read_char (void)
-Whenever an application determines that keyboard input is available, it
-should call @code{rl_callback_read_char()}, which will read the next
-character from the current input source.
-If that character completes the line, @code{rl_callback_read_char} will
-invoke the @var{lhandler} function saved by @code{rl_callback_handler_install}
-to process the line.
-Before calling the @var{lhandler} function, the terminal settings are
-reset to the values they had before calling
-@code{rl_callback_handler_install}.
-If the @var{lhandler} function returns,
-the terminal settings are modified for Readline's use again.
-@code{EOF} is indicated by calling @var{lhandler} with a
-@code{NULL} line.
-@end deftypefun
-
-@deftypefun void rl_callback_handler_remove (void)
-Restore the terminal to its initial state and remove the line handler.
-This may be called from within a callback as well as independently.
-If the @var{lhandler} installed by @code{rl_callback_handler_install}
-does not exit the program, either this function or the function referred
-to by the value of @code{rl_deprep_term_function} should be called before
-the program exits to reset the terminal settings.
-@end deftypefun
-
-@node A Readline Example
-@subsection A Readline Example
-
-Here is a function which changes lowercase characters to their uppercase
-equivalents, and uppercase characters to lowercase. If
-this function was bound to @samp{M-c}, then typing @samp{M-c} would
-change the case of the character under point. Typing @samp{M-1 0 M-c}
-would change the case of the following 10 characters, leaving the cursor on
-the last character changed.
-
-@example
-/* Invert the case of the COUNT following characters. */
-int
-invert_case_line (count, key)
- int count, key;
-@{
- register int start, end, i;
-
- start = rl_point;
-
- if (rl_point >= rl_end)
- return (0);
-
- if (count < 0)
- @{
- direction = -1;
- count = -count;
- @}
- else
- direction = 1;
-
- /* Find the end of the range to modify. */
- end = start + (count * direction);
-
- /* Force it to be within range. */
- if (end > rl_end)
- end = rl_end;
- else if (end < 0)
- end = 0;
-
- if (start == end)
- return (0);
-
- if (start > end)
- @{
- int temp = start;
- start = end;
- end = temp;
- @}
-
- /* Tell readline that we are modifying the line,
- so it will save the undo information. */
- rl_modifying (start, end);
-
- for (i = start; i != end; i++)
- @{
- if (_rl_uppercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
- else if (_rl_lowercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
- @}
- /* Move point to on top of the last character changed. */
- rl_point = (direction == 1) ? end - 1 : start;
- return (0);
-@}
-@end example
-
-@node Readline Signal Handling
-@section Readline Signal Handling
-
-Signals are asynchronous events sent to a process by the Unix kernel,
-sometimes on behalf of another process. They are intended to indicate
-exceptional events, like a user pressing the interrupt key on his terminal,
-or a network connection being broken. There is a class of signals that can
-be sent to the process currently reading input from the keyboard. Since
-Readline changes the terminal attributes when it is called, it needs to
-perform special processing when such a signal is received in order to
-restore the terminal to a sane state, or provide application writers with
-functions to do so manually.
-
-Readline contains an internal signal handler that is installed for a
-number of signals (@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM},
-@code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}).
-When one of these signals is received, the signal handler
-will reset the terminal attributes to those that were in effect before
-@code{readline()} was called, reset the signal handling to what it was
-before @code{readline()} was called, and resend the signal to the calling
-application.
-If and when the calling application's signal handler returns, Readline
-will reinitialize the terminal and continue to accept input.
-When a @code{SIGINT} is received, the Readline signal handler performs
-some additional work, which will cause any partially-entered line to be
-aborted (see the description of @code{rl_free_line_state()} below).
-
-There is an additional Readline signal handler, for @code{SIGWINCH}, which
-the kernel sends to a process whenever the terminal's size changes (for
-example, if a user resizes an @code{xterm}). The Readline @code{SIGWINCH}
-handler updates Readline's internal screen size information, and then calls
-any @code{SIGWINCH} signal handler the calling application has installed.
-Readline calls the application's @code{SIGWINCH} signal handler without
-resetting the terminal to its original state. If the application's signal
-handler does more than update its idea of the terminal size and return (for
-example, a @code{longjmp} back to a main processing loop), it @emph{must}
-call @code{rl_cleanup_after_signal()} (described below), to restore the
-terminal state.
-
-Readline provides two variables that allow application writers to
-control whether or not it will catch certain signals and act on them
-when they are received. It is important that applications change the
-values of these variables only when calling @code{readline()}, not in
-a signal handler, so Readline's internal signal state is not corrupted.
-
-@deftypevar int rl_catch_signals
-If this variable is non-zero, Readline will install signal handlers for
-@code{SIGINT}, @code{SIGQUIT}, @code{SIGTERM}, @code{SIGALRM},
-@code{SIGTSTP}, @code{SIGTTIN}, and @code{SIGTTOU}.
-
-The default value of @code{rl_catch_signals} is 1.
-@end deftypevar
-
-@deftypevar int rl_catch_sigwinch
-If this variable is non-zero, Readline will install a signal handler for
-@code{SIGWINCH}.
-
-The default value of @code{rl_catch_sigwinch} is 1.
-@end deftypevar
-
-If an application does not wish to have Readline catch any signals, or
-to handle signals other than those Readline catches (@code{SIGHUP},
-for example),
-Readline provides convenience functions to do the necessary terminal
-and internal state cleanup upon receipt of a signal.
-
-@deftypefun void rl_cleanup_after_signal (void)
-This function will reset the state of the terminal to what it was before
-@code{readline()} was called, and remove the Readline signal handlers for
-all signals, depending on the values of @code{rl_catch_signals} and
-@code{rl_catch_sigwinch}.
-@end deftypefun
-
-@deftypefun void rl_free_line_state (void)
-This will free any partial state associated with the current input line
-(undo information, any partial history entry, any partially-entered
-keyboard macro, and any partially-entered numeric argument). This
-should be called before @code{rl_cleanup_after_signal()}. The
-Readline signal handler for @code{SIGINT} calls this to abort the
-current input line.
-@end deftypefun
-
-@deftypefun void rl_reset_after_signal (void)
-This will reinitialize the terminal and reinstall any Readline signal
-handlers, depending on the values of @code{rl_catch_signals} and
-@code{rl_catch_sigwinch}.
-@end deftypefun
-
-If an application does not wish Readline to catch @code{SIGWINCH}, it may
-call @code{rl_resize_terminal()} or @code{rl_set_screen_size()} to force
-Readline to update its idea of the terminal size when a @code{SIGWINCH}
-is received.
-
-@deftypefun void rl_resize_terminal (void)
-Update Readline's internal screen size by reading values from the kernel.
-@end deftypefun
-
-@deftypefun void rl_set_screen_size (int rows, int cols)
-Set Readline's idea of the terminal size to @var{rows} rows and
-@var{cols} columns.
-@end deftypefun
-
-If an application does not want to install a @code{SIGWINCH} handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
-
-@deftypefun void rl_get_screen_size (int *rows, int *cols)
-Return Readline's idea of the terminal's size in the
-variables pointed to by the arguments.
-@end deftypefun
-
-The following functions install and remove Readline's signal handlers.
-
-@deftypefun int rl_set_signals (void)
-Install Readline's signal handler for @code{SIGINT}, @code{SIGQUIT},
-@code{SIGTERM}, @code{SIGALRM}, @code{SIGTSTP}, @code{SIGTTIN},
-@code{SIGTTOU}, and @code{SIGWINCH}, depending on the values of
-@code{rl_catch_signals} and @code{rl_catch_sigwinch}.
-@end deftypefun
-
-@deftypefun int rl_clear_signals (void)
-Remove all of the Readline signal handlers installed by
-@code{rl_set_signals()}.
-@end deftypefun
-
-@node Custom Completers
-@section Custom Completers
-
-Typically, a program that reads commands from the user has a way of
-disambiguating commands and data. If your program is one of these, then
-it can provide completion for commands, data, or both.
-The following sections describe how your program and Readline
-cooperate to provide this service.
-
-@menu
-* How Completing Works:: The logic used to do completion.
-* Completion Functions:: Functions provided by Readline.
-* Completion Variables:: Variables which control completion.
-* A Short Completion Example:: An example of writing completer subroutines.
-@end menu
-
-@node How Completing Works
-@subsection How Completing Works
-
-In order to complete some text, the full list of possible completions
-must be available. That is, it is not possible to accurately
-expand a partial word without knowing all of the possible words
-which make sense in that context. The Readline library provides
-the user interface to completion, and two of the most common
-completion functions: filename and username. For completing other types
-of text, you must write your own completion function. This section
-describes exactly what such functions must do, and provides an example.
-
-There are three major functions used to perform completion:
-
-@enumerate
-@item
-The user-interface function @code{rl_complete()}. This function is
-called with the same arguments as other bindable Readline functions:
-@var{count} and @var{invoking_key}.
-It isolates the word to be completed and calls
-@code{rl_completion_matches()} to generate a list of possible completions.
-It then either lists the possible completions, inserts the possible
-completions, or actually performs the
-completion, depending on which behavior is desired.
-
-@item
-The internal function @code{rl_completion_matches()} uses an
-application-supplied @dfn{generator} function to generate the list of
-possible matches, and then returns the array of these matches.
-The caller should place the address of its generator function in
-@code{rl_completion_entry_function}.
-
-@item
-The generator function is called repeatedly from
-@code{rl_completion_matches()}, returning a string each time. The
-arguments to the generator function are @var{text} and @var{state}.
-@var{text} is the partial word to be completed. @var{state} is zero the
-first time the function is called, allowing the generator to perform
-any necessary initialization, and a positive non-zero integer for
-each subsequent call. The generator function returns
-@code{(char *)NULL} to inform @code{rl_completion_matches()} that there are
-no more possibilities left. Usually the generator function computes the
-list of possible completions when @var{state} is zero, and returns them
-one at a time on subsequent calls. Each string the generator function
-returns as a match must be allocated with @code{malloc()}; Readline
-frees the strings when it has finished with them.
-
-@end enumerate
-
-@deftypefun int rl_complete (int ignore, int invoking_key)
-Complete the word at or before point. You have supplied the function
-that does the initial simple matching selection algorithm (see
-@code{rl_completion_matches()}). The default is to do filename completion.
-@end deftypefun
-
-@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
-This is a pointer to the generator function for
-@code{rl_completion_matches()}.
-If the value of @code{rl_completion_entry_function} is
-@code{NULL} then the default filename generator
-function, @code{rl_filename_completion_function()}, is used.
-@end deftypevar
-
-@node Completion Functions
-@subsection Completion Functions
-
-Here is the complete list of callable completion functions present in
-Readline.
-
-@deftypefun int rl_complete_internal (int what_to_do)
-Complete the word at or before point. @var{what_to_do} says what to do
-with the completion. A value of @samp{?} means list the possible
-completions. @samp{TAB} means do standard completion. @samp{*} means
-insert all of the possible completions. @samp{!} means to display
-all of the possible completions, if there is more than one, as well as
-performing partial completion.
-@end deftypefun
-
-@deftypefun int rl_complete (int ignore, int invoking_key)
-Complete the word at or before point. You have supplied the function
-that does the initial simple matching selection algorithm (see
-@code{rl_completion_matches()} and @code{rl_completion_entry_function}).
-The default is to do filename
-completion. This calls @code{rl_complete_internal()} with an
-argument depending on @var{invoking_key}.
-@end deftypefun
-
-@deftypefun int rl_possible_completions (int count, int invoking_key)
-List the possible completions. See description of @code{rl_complete
-()}. This calls @code{rl_complete_internal()} with an argument of
-@samp{?}.
-@end deftypefun
-
-@deftypefun int rl_insert_completions (int count, int invoking_key)
-Insert the list of possible completions into the line, deleting the
-partially-completed word. See description of @code{rl_complete()}.
-This calls @code{rl_complete_internal()} with an argument of @samp{*}.
-@end deftypefun
-
-@deftypefun int rl_completion_mode (rl_command_func_t *cfunc)
-Returns the apppriate value to pass to @code{rl_complete_internal()}
-depending on whether @var{cfunc} was called twice in succession and
-the value of the @code{show-all-if-ambiguous} variable.
-Application-specific completion functions may use this function to present
-the same interface as @code{rl_complete()}.
-@end deftypefun
-
-@deftypefun {char **} rl_completion_matches (const char *text, rl_compentry_func_t *entry_func)
-Returns an array of strings which is a list of completions for
-@var{text}. If there are no completions, returns @code{NULL}.
-The first entry in the returned array is the substitution for @var{text}.
-The remaining entries are the possible completions. The array is
-terminated with a @code{NULL} pointer.
-
-@var{entry_func} is a function of two args, and returns a
-@code{char *}. The first argument is @var{text}. The second is a
-state argument; it is zero on the first call, and non-zero on subsequent
-calls. @var{entry_func} returns a @code{NULL} pointer to the caller
-when there are no more matches.
-@end deftypefun
-
-@deftypefun {char *} rl_filename_completion_function (const char *text, int state)
-A generator function for filename completion in the general case.
-@var{text} is a partial filename.
-The Bash source is a useful reference for writing custom
-completion functions (the Bash completion functions call this and other
-Readline functions).
-@end deftypefun
-
-@deftypefun {char *} rl_username_completion_function (const char *text, int state)
-A completion generator for usernames. @var{text} contains a partial
-username preceded by a random character (usually @samp{~}). As with all
-completion generators, @var{state} is zero on the first call and non-zero
-for subsequent calls.
-@end deftypefun
-
-@node Completion Variables
-@subsection Completion Variables
-
-@deftypevar {rl_compentry_func_t *} rl_completion_entry_function
-A pointer to the generator function for @code{rl_completion_matches()}.
-@code{NULL} means to use @code{rl_filename_completion_function()}, the default
-filename completer.
-@end deftypevar
-
-@deftypevar {rl_completion_func_t *} rl_attempted_completion_function
-A pointer to an alternative function to create matches.
-The function is called with @var{text}, @var{start}, and @var{end}.
-@var{start} and @var{end} are indices in @code{rl_line_buffer} defining
-the boundaries of @var{text}, which is a character string.
-If this function exists and returns @code{NULL}, or if this variable is
-set to @code{NULL}, then @code{rl_complete()} will call the value of
-@code{rl_completion_entry_function} to generate matches, otherwise the
-array of strings returned will be used.
-If this function sets the @code{rl_attempted_completion_over}
-variable to a non-zero value, Readline will not perform its default
-completion even if this function returns no matches.
-@end deftypevar
-
-@deftypevar {rl_quote_func_t *} rl_filename_quoting_function
-A pointer to a function that will quote a filename in an
-application-specific fashion. This is called if filename completion is being
-attempted and one of the characters in @code{rl_filename_quote_characters}
-appears in a completed filename. The function is called with
-@var{text}, @var{match_type}, and @var{quote_pointer}. The @var{text}
-is the filename to be quoted. The @var{match_type} is either
-@code{SINGLE_MATCH}, if there is only one completion match, or
-@code{MULT_MATCH}. Some functions use this to decide whether or not to
-insert a closing quote character. The @var{quote_pointer} is a pointer
-to any opening quote character the user typed. Some functions choose
-to reset this character.
-@end deftypevar
-
-@deftypevar {rl_dequote_func_t *} rl_filename_dequoting_function
-A pointer to a function that will remove application-specific quoting
-characters from a filename before completion is attempted, so those
-characters do not interfere with matching the text against names in
-the filesystem. It is called with @var{text}, the text of the word
-to be dequoted, and @var{quote_char}, which is the quoting character
-that delimits the filename (usually @samp{'} or @samp{"}). If
-@var{quote_char} is zero, the filename was not in an embedded string.
-@end deftypevar
-
-@deftypevar {rl_linebuf_func_t *} rl_char_is_quoted_p
-A pointer to a function to call that determines whether or not a specific
-character in the line buffer is quoted, according to whatever quoting
-mechanism the program calling Readline uses. The function is called with
-two arguments: @var{text}, the text of the line, and @var{index}, the
-index of the character in the line. It is used to decide whether a
-character found in @code{rl_completer_word_break_characters} should be
-used to break words for the completer.
-@end deftypevar
-
-@deftypevar {rl_compignore_func_t *} rl_ignore_some_completions_function
-This function, if defined, is called by the completer when real filename
-completion is done, after all the matching names have been generated.
-It is passed a @code{NULL} terminated array of matches.
-The first element (@code{matches[0]}) is the
-maximal substring common to all matches. This function can
-re-arrange the list of matches as required, but each element deleted
-from the array must be freed.
-@end deftypevar
-
-@deftypevar {rl_icppfunc_t *} rl_directory_completion_hook
-This function, if defined, is allowed to modify the directory portion
-of filenames Readline completes. It is called with the address of a
-string (the current directory name) as an argument, and may modify that string.
-If the string is replaced with a new string, the old value should be freed.
-Any modified directory name should have a trailing slash.
-The modified value will be displayed as part of the completion, replacing
-the directory portion of the pathname the user typed.
-It returns an integer that should be non-zero if the function modifies
-its directory argument.
-It could be used to expand symbolic links or shell variables in pathnames.
-@end deftypevar
-
-@deftypevar {rl_compdisp_func_t *} rl_completion_display_matches_hook
-If non-zero, then this is the address of a function to call when
-completing a word would normally display the list of possible matches.
-This function is called in lieu of Readline displaying the list.
-It takes three arguments:
-(@code{char **}@var{matches}, @code{int} @var{num_matches}, @code{int} @var{max_length})
-where @var{matches} is the array of matching strings,
-@var{num_matches} is the number of strings in that array, and
-@var{max_length} is the length of the longest string in that array.
-Readline provides a convenience function, @code{rl_display_match_list},
-that takes care of doing the display to Readline's output stream. That
-function may be called from this hook.
-@end deftypevar
-
-@deftypevar {const char *} rl_basic_word_break_characters
-The basic list of characters that signal a break between words for the
-completer routine. The default value of this variable is the characters
-which break words for completion in Bash:
-@code{" \t\n\"\\'`@@$><=;|&@{("}.
-@end deftypevar
-
-@deftypevar {const char *} rl_basic_quote_characters
-A list of quote characters which can cause a word break.
-@end deftypevar
-
-@deftypevar {const char *} rl_completer_word_break_characters
-The list of characters that signal a break between words for
-@code{rl_complete_internal()}. The default list is the value of
-@code{rl_basic_word_break_characters}.
-@end deftypevar
-
-@deftypevar {const char *} rl_completer_quote_characters
-A list of characters which can be used to quote a substring of the line.
-Completion occurs on the entire substring, and within the substring
-@code{rl_completer_word_break_characters} are treated as any other character,
-unless they also appear within this list.
-@end deftypevar
-
-@deftypevar {const char *} rl_filename_quote_characters
-A list of characters that cause a filename to be quoted by the completer
-when they appear in a completed filename. The default is the null string.
-@end deftypevar
-
-@deftypevar {const char *} rl_special_prefixes
-The list of characters that are word break characters, but should be
-left in @var{text} when it is passed to the completion function.
-Programs can use this to help determine what kind of completing to do.
-For instance, Bash sets this variable to "$@@" so that it can complete
-shell variables and hostnames.
-@end deftypevar
-
-@deftypevar int rl_completion_query_items
-Up to this many items will be displayed in response to a
-possible-completions call. After that, we ask the user if she is sure
-she wants to see them all. The default value is 100.
-@end deftypevar
-
-@deftypevar {int} rl_completion_append_character
-When a single completion alternative matches at the end of the command
-line, this character is appended to the inserted completion text. The
-default is a space character (@samp{ }). Setting this to the null
-character (@samp{\0}) prevents anything being appended automatically.
-This can be changed in custom completion functions to
-provide the ``most sensible word separator character'' according to
-an application-specific command line syntax specification.
-@end deftypevar
-
-@deftypevar int rl_completion_suppress_append
-If non-zero, @var{rl_completion_append_character} is not appended to
-matches at the end of the command line, as described above. It is
-set to 0 before any application-specific completion function is called.
-@end deftypevar
-
-@deftypevar int rl_completion_mark_symlink_dirs
-If non-zero, a slash will be appended to completed filenames that are
-symbolic links to directory names, subject to the value of the
-user-settable @var{mark-directories} variable.
-This variable exists so that application completion functions can
-override the user's global preference (set via the
-@var{mark-symlinked-directories} Readline variable) if appropriate.
-This variable is set to the user's preference before any
-application completion function is called, so unless that function
-modifies the value, the user's preferences are honored.
-@end deftypevar
-
-@deftypevar int rl_ignore_completion_duplicates
-If non-zero, then duplicates in the matches are removed.
-The default is 1.
-@end deftypevar
-
-@deftypevar int rl_filename_completion_desired
-Non-zero means that the results of the matches are to be treated as
-filenames. This is @emph{always} zero on entry, and can only be changed
-within a completion entry generator function. If it is set to a non-zero
-value, directory names have a slash appended and Readline attempts to
-quote completed filenames if they contain any characters in
-@code{rl_filename_quote_characters} and @code{rl_filename_quoting_desired}
-is set to a non-zero value.
-@end deftypevar
-
-@deftypevar int rl_filename_quoting_desired
-Non-zero means that the results of the matches are to be quoted using
-double quotes (or an application-specific quoting mechanism) if the
-completed filename contains any characters in
-@code{rl_filename_quote_chars}. This is @emph{always} non-zero
-on entry, and can only be changed within a completion entry generator
-function. The quoting is effected via a call to the function pointed to
-by @code{rl_filename_quoting_function}.
-@end deftypevar
-
-@deftypevar int rl_attempted_completion_over
-If an application-specific completion function assigned to
-@code{rl_attempted_completion_function} sets this variable to a non-zero
-value, Readline will not perform its default filename completion even
-if the application's completion function returns no matches.
-It should be set only by an application's completion function.
-@end deftypevar
-
-@deftypevar int rl_completion_type
-Set to a character describing the type of completion Readline is currently
-attempting; see the description of @code{rl_complete_internal()}
-(@pxref{Completion Functions}) for the list of characters.
-@end deftypevar
-
-@deftypevar int rl_inhibit_completion
-If this variable is non-zero, completion is inhibited. The completion
-character will be inserted as any other bound to @code{self-insert}.
-@end deftypevar
-
-@node A Short Completion Example
-@subsection A Short Completion Example
-
-Here is a small application demonstrating the use of the GNU Readline
-library. It is called @code{fileman}, and the source code resides in
-@file{examples/fileman.c}. This sample application provides
-completion of command names, line editing features, and access to the
-history list.
-
-@page
-@smallexample
-/* fileman.c -- A tiny application which demonstrates how to use the
- GNU Readline library. This application interactively allows users
- to manipulate files and their modes. */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/file.h>
-#include <sys/stat.h>
-#include <sys/errno.h>
-
-#include <readline/readline.h>
-#include <readline/history.h>
-
-extern char *xmalloc ();
-
-/* The names of functions that actually do the manipulation. */
-int com_list __P((char *));
-int com_view __P((char *));
-int com_rename __P((char *));
-int com_stat __P((char *));
-int com_pwd __P((char *));
-int com_delete __P((char *));
-int com_help __P((char *));
-int com_cd __P((char *));
-int com_quit __P((char *));
-
-/* A structure which contains information on the commands this program
- can understand. */
-
-typedef struct @{
- char *name; /* User printable name of the function. */
- rl_icpfunc_t *func; /* Function to call to do the job. */
- char *doc; /* Documentation for this function. */
-@} COMMAND;
-
-COMMAND commands[] = @{
- @{ "cd", com_cd, "Change to directory DIR" @},
- @{ "delete", com_delete, "Delete FILE" @},
- @{ "help", com_help, "Display this text" @},
- @{ "?", com_help, "Synonym for `help'" @},
- @{ "list", com_list, "List files in DIR" @},
- @{ "ls", com_list, "Synonym for `list'" @},
- @{ "pwd", com_pwd, "Print the current working directory" @},
- @{ "quit", com_quit, "Quit using Fileman" @},
- @{ "rename", com_rename, "Rename FILE to NEWNAME" @},
- @{ "stat", com_stat, "Print out statistics on FILE" @},
- @{ "view", com_view, "View the contents of FILE" @},
- @{ (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL @}
-@};
-
-/* Forward declarations. */
-char *stripwhite ();
-COMMAND *find_command ();
-
-/* The name of this program, as taken from argv[0]. */
-char *progname;
-
-/* When non-zero, this means the user is done using this program. */
-int done;
-
-char *
-dupstr (s)
- int s;
-@{
- char *r;
-
- r = xmalloc (strlen (s) + 1);
- strcpy (r, s);
- return (r);
-@}
-
-main (argc, argv)
- int argc;
- char **argv;
-@{
- char *line, *s;
-
- progname = argv[0];
-
- initialize_readline (); /* Bind our completer. */
-
- /* Loop reading and executing lines until the user quits. */
- for ( ; done == 0; )
- @{
- line = readline ("FileMan: ");
-
- if (!line)
- break;
-
- /* Remove leading and trailing whitespace from the line.
- Then, if there is anything left, add it to the history list
- and execute it. */
- s = stripwhite (line);
-
- if (*s)
- @{
- add_history (s);
- execute_line (s);
- @}
-
- free (line);
- @}
- exit (0);
-@}
-
-/* Execute a command line. */
-int
-execute_line (line)
- char *line;
-@{
- register int i;
- COMMAND *command;
- char *word;
-
- /* Isolate the command word. */
- i = 0;
- while (line[i] && whitespace (line[i]))
- i++;
- word = line + i;
-
- while (line[i] && !whitespace (line[i]))
- i++;
-
- if (line[i])
- line[i++] = '\0';
-
- command = find_command (word);
-
- if (!command)
- @{
- fprintf (stderr, "%s: No such command for FileMan.\n", word);
- return (-1);
- @}
-
- /* Get argument to command, if any. */
- while (whitespace (line[i]))
- i++;
-
- word = line + i;
-
- /* Call the function. */
- return ((*(command->func)) (word));
-@}
-
-/* Look up NAME as the name of a command, and return a pointer to that
- command. Return a NULL pointer if NAME isn't a command name. */
-COMMAND *
-find_command (name)
- char *name;
-@{
- register int i;
-
- for (i = 0; commands[i].name; i++)
- if (strcmp (name, commands[i].name) == 0)
- return (&commands[i]);
-
- return ((COMMAND *)NULL);
-@}
-
-/* Strip whitespace from the start and end of STRING. Return a pointer
- into STRING. */
-char *
-stripwhite (string)
- char *string;
-@{
- register char *s, *t;
-
- for (s = string; whitespace (*s); s++)
- ;
-
- if (*s == 0)
- return (s);
-
- t = s + strlen (s) - 1;
- while (t > s && whitespace (*t))
- t--;
- *++t = '\0';
-
- return s;
-@}
-
-/* **************************************************************** */
-/* */
-/* Interface to Readline Completion */
-/* */
-/* **************************************************************** */
-
-char *command_generator __P((const char *, int));
-char **fileman_completion __P((const char *, int, int));
-
-/* Tell the GNU Readline library how to complete. We want to try to
- complete on command names if this is the first word in the line, or
- on filenames if not. */
-initialize_readline ()
-@{
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "FileMan";
-
- /* Tell the completer that we want a crack first. */
- rl_attempted_completion_function = fileman_completion;
-@}
-
-/* Attempt to complete on the contents of TEXT. START and END
- bound the region of rl_line_buffer that contains the word to
- complete. TEXT is the word to complete. We can use the entire
- contents of rl_line_buffer in case we want to do some simple
- parsing. Returnthe array of matches, or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
- const char *text;
- int start, end;
-@{
- char **matches;
-
- matches = (char **)NULL;
-
- /* If this word is at the start of the line, then it is a command
- to complete. Otherwise it is the name of a file in the current
- directory. */
- if (start == 0)
- matches = rl_completion_matches (text, command_generator);
-
- return (matches);
-@}
-
-/* Generator function for command completion. STATE lets us
- know whether to start from scratch; without any state
- (i.e. STATE == 0), then we start at the top of the list. */
-char *
-command_generator (text, state)
- const char *text;
- int state;
-@{
- static int list_index, len;
- char *name;
-
- /* If this is a new word to complete, initialize now. This
- includes saving the length of TEXT for efficiency, and
- initializing the index variable to 0. */
- if (!state)
- @{
- list_index = 0;
- len = strlen (text);
- @}
-
- /* Return the next name which partially matches from the
- command list. */
- while (name = commands[list_index].name)
- @{
- list_index++;
-
- if (strncmp (name, text, len) == 0)
- return (dupstr(name));
- @}
-
- /* If no names matched, then return NULL. */
- return ((char *)NULL);
-@}
-
-/* **************************************************************** */
-/* */
-/* FileMan Commands */
-/* */
-/* **************************************************************** */
-
-/* String to pass to system (). This is for the LIST, VIEW and RENAME
- commands. */
-static char syscom[1024];
-
-/* List the file(s) named in arg. */
-com_list (arg)
- char *arg;
-@{
- if (!arg)
- arg = "";
-
- sprintf (syscom, "ls -FClg %s", arg);
- return (system (syscom));
-@}
-
-com_view (arg)
- char *arg;
-@{
- if (!valid_argument ("view", arg))
- return 1;
-
- sprintf (syscom, "more %s", arg);
- return (system (syscom));
-@}
-
-com_rename (arg)
- char *arg;
-@{
- too_dangerous ("rename");
- return (1);
-@}
-
-com_stat (arg)
- char *arg;
-@{
- struct stat finfo;
-
- if (!valid_argument ("stat", arg))
- return (1);
-
- if (stat (arg, &finfo) == -1)
- @{
- perror (arg);
- return (1);
- @}
-
- printf ("Statistics for `%s':\n", arg);
-
- printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
- finfo.st_nlink,
- (finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
- (finfo.st_size == 1) ? "" : "s");
- printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
- printf (" Last access at: %s", ctime (&finfo.st_atime));
- printf (" Last modified at: %s", ctime (&finfo.st_mtime));
- return (0);
-@}
-
-com_delete (arg)
- char *arg;
-@{
- too_dangerous ("delete");
- return (1);
-@}
-
-/* Print out help for ARG, or for all of the commands if ARG is
- not present. */
-com_help (arg)
- char *arg;
-@{
- register int i;
- int printed = 0;
-
- for (i = 0; commands[i].name; i++)
- @{
- if (!*arg || (strcmp (arg, commands[i].name) == 0))
- @{
- printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
- printed++;
- @}
- @}
-
- if (!printed)
- @{
- printf ("No commands match `%s'. Possibilties are:\n", arg);
-
- for (i = 0; commands[i].name; i++)
- @{
- /* Print in six columns. */
- if (printed == 6)
- @{
- printed = 0;
- printf ("\n");
- @}
-
- printf ("%s\t", commands[i].name);
- printed++;
- @}
-
- if (printed)
- printf ("\n");
- @}
- return (0);
-@}
-
-/* Change to the directory ARG. */
-com_cd (arg)
- char *arg;
-@{
- if (chdir (arg) == -1)
- @{
- perror (arg);
- return 1;
- @}
-
- com_pwd ("");
- return (0);
-@}
-
-/* Print out the current working directory. */
-com_pwd (ignore)
- char *ignore;
-@{
- char dir[1024], *s;
-
- s = getcwd (dir, sizeof(dir) - 1);
- if (s == 0)
- @{
- printf ("Error getting pwd: %s\n", dir);
- return 1;
- @}
-
- printf ("Current directory is %s\n", dir);
- return 0;
-@}
-
-/* The user wishes to quit using this program. Just set DONE
- non-zero. */
-com_quit (arg)
- char *arg;
-@{
- done = 1;
- return (0);
-@}
-
-/* Function which tells you that you can't do this. */
-too_dangerous (caller)
- char *caller;
-@{
- fprintf (stderr,
- "%s: Too dangerous for me to distribute.\n"
- caller);
- fprintf (stderr, "Write it yourself.\n");
-@}
-
-/* Return non-zero if ARG is a valid argument for CALLER,
- else print an error message and return zero. */
-int
-valid_argument (caller, arg)
- char *caller, *arg;
-@{
- if (!arg || !*arg)
- @{
- fprintf (stderr, "%s: Argument required.\n", caller);
- return (0);
- @}
-
- return (1);
-@}
-@end smallexample
diff --git a/readline-4.3/doc/rluser.texinfo b/readline-4.3/doc/rluser.texinfo
deleted file mode 100644
index 94f851e..0000000
--- a/readline-4.3/doc/rluser.texinfo
+++ /dev/null
@@ -1,1796 +0,0 @@
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rluser.info
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@ignore
-This file documents the end user interface to the GNU command line
-editing features. It is to be an appendix to manuals for programs which
-use these features. There is a document entitled "readline.texinfo"
-which contains both end-user and programmer documentation for the
-GNU Readline Library.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Authored by Brian Fox and Chet Ramey.
-
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission notice
-identical to this one except for the removal of this paragraph (this
-paragraph not being relevant to the printed manual).
-
-Permission is granted to make and distribute verbatim copies of this manual
-provided the copyright notice and this permission notice are preserved on
-all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that the
-GNU Copyright statement is available to the distributee, and provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ignore
-
-@comment If you are including this manual as an appendix, then set the
-@comment variable readline-appendix.
-
-@ifclear BashFeatures
-@defcodeindex bt
-@end ifclear
-
-@node Command Line Editing
-@chapter Command Line Editing
-
-This chapter describes the basic features of the @sc{gnu}
-command line editing interface.
-@ifset BashFeatures
-Command line editing is provided by the Readline library, which is
-used by several different programs, including Bash.
-@end ifset
-
-@menu
-* Introduction and Notation:: Notation used in this text.
-* Readline Interaction:: The minimum set of commands for editing a line.
-* Readline Init File:: Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
- available for binding
-* Readline vi Mode:: A short description of how to make Readline
- behave like the vi editor.
-@ifset BashFeatures
-* Programmable Completion:: How to specify the possible completions for
- a specific command.
-* Programmable Completion Builtins:: Builtin commands to specify how to
- complete arguments for a particular command.
-@end ifset
-@end menu
-
-@node Introduction and Notation
-@section Introduction to Line Editing
-
-The following paragraphs describe the notation used to represent
-keystrokes.
-
-The text @kbd{C-k} is read as `Control-K' and describes the character
-produced when the @key{k} key is pressed while the Control key
-is depressed.
-
-The text @kbd{M-k} is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the @key{k}
-key is pressed.
-The Meta key is labeled @key{ALT} on many keyboards.
-On keyboards with two keys labeled @key{ALT} (usually to either side of
-the space bar), the @key{ALT} on the left side is generally set to
-work as a Meta key.
-The @key{ALT} key on the right may also be configured to work as a
-Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
-If you do not have a Meta or @key{ALT} key, or another key working as
-a Meta key, the identical keystroke can be generated by typing @key{ESC}
-@emph{first}, and then typing @key{k}.
-Either process is known as @dfn{metafying} the @key{k} key.
-
-The text @kbd{M-C-k} is read as `Meta-Control-k' and describes the
-character produced by @dfn{metafying} @kbd{C-k}.
-
-In addition, several keys have their own names. Specifically,
-@key{DEL}, @key{ESC}, @key{LFD}, @key{SPC}, @key{RET}, and @key{TAB} all
-stand for themselves when seen in this text, or in an init file
-(@pxref{Readline Init File}).
-If your keyboard lacks a @key{LFD} key, typing @key{C-j} will
-produce the desired character.
-The @key{RET} key may be labeled @key{Return} or @key{Enter} on
-some keyboards.
-
-@node Readline Interaction
-@section Readline Interaction
-@cindex interaction, readline
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press @key{RET}. You do not have to be at the
-end of the line to press @key{RET}; the entire line is accepted
-regardless of the location of the cursor within the line.
-
-@menu
-* Readline Bare Essentials:: The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands:: How to delete text, and how to get it back!
-* Readline Arguments:: Giving numeric arguments to commands.
-* Searching:: Searching through previous lines.
-@end menu
-
-@node Readline Bare Essentials
-@subsection Readline Bare Essentials
-@cindex notation, readline
-@cindex command editing
-@cindex editing command lines
-
-In order to enter characters into the line, simply type them. The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-
-Sometimes you may mistype a character, and
-not notice the error until you have typed several other characters. In
-that case, you can type @kbd{C-b} to move the cursor to the left, and then
-correct your mistake. Afterwards, you can move the cursor to the right
-with @kbd{C-f}.
-
-When you add text in the middle of a line, you will notice that characters
-to the right of the cursor are `pushed over' to make room for the text
-that you have inserted. Likewise, when you delete text behind the cursor,
-characters to the right of the cursor are `pulled back' to fill in the
-blank space created by the removal of the text. A list of the bare
-essentials for editing the text of an input line follows.
-
-@table @asis
-@item @kbd{C-b}
-Move back one character.
-@item @kbd{C-f}
-Move forward one character.
-@item @key{DEL} or @key{Backspace}
-Delete the character to the left of the cursor.
-@item @kbd{C-d}
-Delete the character underneath the cursor.
-@item @w{Printing characters}
-Insert the character into the line at the cursor.
-@item @kbd{C-_} or @kbd{C-x C-u}
-Undo the last editing command. You can undo all the way back to an
-empty line.
-@end table
-
-@noindent
-(Depending on your configuration, the @key{Backspace} key be set to
-delete the character to the left of the cursor and the @key{DEL} key set
-to delete the character underneath the cursor, like @kbd{C-d}, rather
-than the character to the left of the cursor.)
-
-@node Readline Movement Commands
-@subsection Readline Movement Commands
-
-
-The above table describes the most basic keystrokes that you need
-in order to do editing of the input line. For your convenience, many
-other commands have been added in addition to @kbd{C-b}, @kbd{C-f},
-@kbd{C-d}, and @key{DEL}. Here are some commands for moving more rapidly
-about the line.
-
-@table @kbd
-@item C-a
-Move to the start of the line.
-@item C-e
-Move to the end of the line.
-@item M-f
-Move forward a word, where a word is composed of letters and digits.
-@item M-b
-Move backward a word.
-@item C-l
-Clear the screen, reprinting the current line at the top.
-@end table
-
-Notice how @kbd{C-f} moves forward a character, while @kbd{M-f} moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-
-@node Readline Killing Commands
-@subsection Readline Killing Commands
-
-@cindex killing text
-@cindex yanking text
-
-@dfn{Killing} text means to delete the text from the line, but to save
-it away for later use, usually by @dfn{yanking} (re-inserting)
-it back into the line.
-(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
-
-If the description for a command says that it `kills' text, then you can
-be sure that you can get the text back in a different (or the same)
-place later.
-
-When you use a kill command, the text is saved in a @dfn{kill-ring}.
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill
-ring is not line specific; the text that you killed on a previously
-typed line is available to be yanked back later, when you are typing
-another line.
-@cindex kill ring
-
-Here is the list of commands for killing text.
-
-@table @kbd
-@item C-k
-Kill the text from the current cursor position to the end of the line.
-
-@item M-d
-Kill from the cursor to the end of the current word, or, if between
-words, to the end of the next word.
-Word boundaries are the same as those used by @kbd{M-f}.
-
-@item M-@key{DEL}
-Kill from the cursor the start of the current word, or, if between
-words, to the start of the previous word.
-Word boundaries are the same as those used by @kbd{M-b}.
-
-@item C-w
-Kill from the cursor to the previous whitespace. This is different than
-@kbd{M-@key{DEL}} because the word boundaries differ.
-
-@end table
-
-Here is how to @dfn{yank} the text back into the line. Yanking
-means to copy the most-recently-killed text from the kill buffer.
-
-@table @kbd
-@item C-y
-Yank the most recently killed text back into the buffer at the cursor.
-
-@item M-y
-Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is @kbd{C-y} or @kbd{M-y}.
-@end table
-
-@node Readline Arguments
-@subsection Readline Arguments
-
-You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the @i{sign} of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type @samp{M-- C-k}.
-
-The general way to pass numeric arguments to a command is to type meta
-digits before the command. If the first `digit' typed is a minus
-sign (@samp{-}), then the sign of the argument will be negative. Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command. For example, to give
-the @kbd{C-d} command an argument of 10, you could type @samp{M-1 0 C-d},
-which will delete the next ten characters on the input line.
-
-@node Searching
-@subsection Searching for Commands in the History
-
-Readline provides commands for searching through the command history
-@ifset BashFeatures
-(@pxref{Bash History Facilities})
-@end ifset
-for lines containing a specified string.
-There are two search modes: @dfn{incremental} and @dfn{non-incremental}.
-
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, Readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-@kbd{C-r}. Typing @kbd{C-s} searches forward through the history.
-The characters present in the value of the @code{isearch-terminators} variable
-are used to terminate an incremental search.
-If that variable has not been assigned a value, the @key{ESC} and
-@kbd{C-J} characters will terminate an incremental search.
-@kbd{C-g} will abort an incremental search and restore the original line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-
-To find other matching entries in the history list, type @kbd{C-r} or
-@kbd{C-s} as appropriate.
-This will search backward or forward in the history for the next
-entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate
-the search and execute that command.
-For instance, a @key{RET} will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-
-Readline remembers the last incremental search string. If two
-@kbd{C-r}s are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-
-Non-incremental searches read the entire search string before starting
-to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-
-@node Readline Init File
-@section Readline Init File
-@cindex initialization file, readline
-
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings.
-Any user can customize programs that use Readline by putting
-commands in an @dfn{inputrc} file, conventionally in his home directory.
-The name of this
-@ifset BashFeatures
-file is taken from the value of the shell variable @env{INPUTRC}. If
-@end ifset
-@ifclear BashFeatures
-file is taken from the value of the environment variable @env{INPUTRC}. If
-@end ifclear
-that variable is unset, the default is @file{~/.inputrc}.
-
-When a program which uses the Readline library starts up, the
-init file is read, and the key bindings are set.
-
-In addition, the @code{C-x C-r} command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-@menu
-* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
-
-* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
-
-* Sample Init File:: An example inputrc file.
-@end menu
-
-@node Readline Init File Syntax
-@subsection Readline Init File Syntax
-
-There are only a few basic constructs allowed in the
-Readline init file. Blank lines are ignored.
-Lines beginning with a @samp{#} are comments.
-Lines beginning with a @samp{$} indicate conditional
-constructs (@pxref{Conditional Init Constructs}). Other lines
-denote variable settings and key bindings.
-
-@table @asis
-@item Variable Settings
-You can modify the run-time behavior of Readline by
-altering the values of variables in Readline
-using the @code{set} command within the init file.
-The syntax is simple:
-
-@example
-set @var{variable} @var{value}
-@end example
-
-@noindent
-Here, for example, is how to
-change from the default Emacs-like key binding to use
-@code{vi} line editing commands:
-
-@example
-set editing-mode vi
-@end example
-
-Variable names and values, where appropriate, are recognized without regard
-to case.
-
-@ifset BashFeatures
-The @w{@code{bind -V}} command lists the current Readline variable names
-and values. @xref{Bash Builtins}.
-@end ifset
-
-A great deal of run-time behavior is changeable with the following
-variables.
-
-@cindex variables, readline
-@table @code
-
-@item bell-style
-@vindex bell-style
-Controls what happens when Readline wants to ring the terminal bell.
-If set to @samp{none}, Readline never rings the bell. If set to
-@samp{visible}, Readline uses a visible bell if one is available.
-If set to @samp{audible} (the default), Readline attempts to ring
-the terminal's bell.
-
-@item comment-begin
-@vindex comment-begin
-The string to insert at the beginning of the line when the
-@code{insert-comment} command is executed. The default value
-is @code{"#"}.
-
-@item completion-ignore-case
-If set to @samp{on}, Readline performs filename matching and completion
-in a case-insensitive fashion.
-The default value is @samp{off}.
-
-@item completion-query-items
-@vindex completion-query-items
-The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities. If the
-number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
-This variable must be set to an integer value greater than or equal to 0.
-The default limit is @code{100}.
-
-@item convert-meta
-@vindex convert-meta
-If set to @samp{on}, Readline will convert characters with the
-eighth bit set to an @sc{ascii} key sequence by stripping the eighth
-bit and prefixing an @key{ESC} character, converting them to a
-meta-prefixed key sequence. The default value is @samp{on}.
-
-@item disable-completion
-@vindex disable-completion
-If set to @samp{On}, Readline will inhibit word completion.
-Completion characters will be inserted into the line as if they had
-been mapped to @code{self-insert}. The default is @samp{off}.
-
-@item editing-mode
-@vindex editing-mode
-The @code{editing-mode} variable controls which default set of
-key bindings is used. By default, Readline starts up in Emacs editing
-mode, where the keystrokes are most similar to Emacs. This variable can be
-set to either @samp{emacs} or @samp{vi}.
-
-@item enable-keypad
-@vindex enable-keypad
-When set to @samp{on}, Readline will try to enable the application
-keypad when it is called. Some systems need this to enable the
-arrow keys. The default is @samp{off}.
-
-@item expand-tilde
-@vindex expand-tilde
-If set to @samp{on}, tilde expansion is performed when Readline
-attempts word completion. The default is @samp{off}.
-
-@vindex history-preserve-point
-If set to @samp{on}, the history code attempts to place point at the
-same location on each history line retrived with @code{previous-history}
-or @code{next-history}.
-
-@item horizontal-scroll-mode
-@vindex horizontal-scroll-mode
-This variable can be set to either @samp{on} or @samp{off}. Setting it
-to @samp{on} means that the text of the lines being edited will scroll
-horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to @samp{off}.
-
-@item input-meta
-@vindex input-meta
-@vindex meta-flag
-If set to @samp{on}, Readline will enable eight-bit input (it
-will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support. The
-default value is @samp{off}. The name @code{meta-flag} is a
-synonym for this variable.
-
-@item isearch-terminators
-@vindex isearch-terminators
-The string of characters that should terminate an incremental search without
-subsequently executing the character as a command (@pxref{Searching}).
-If this variable has not been given a value, the characters @key{ESC} and
-@kbd{C-J} will terminate an incremental search.
-
-@item keymap
-@vindex keymap
-Sets Readline's idea of the current keymap for key binding commands.
-Acceptable @code{keymap} names are
-@code{emacs},
-@code{emacs-standard},
-@code{emacs-meta},
-@code{emacs-ctlx},
-@code{vi},
-@code{vi-move},
-@code{vi-command}, and
-@code{vi-insert}.
-@code{vi} is equivalent to @code{vi-command}; @code{emacs} is
-equivalent to @code{emacs-standard}. The default value is @code{emacs}.
-The value of the @code{editing-mode} variable also affects the
-default keymap.
-
-@item mark-directories
-If set to @samp{on}, completed directory names have a slash
-appended. The default is @samp{on}.
-
-@item mark-modified-lines
-@vindex mark-modified-lines
-This variable, when set to @samp{on}, causes Readline to display an
-asterisk (@samp{*}) at the start of history lines which have been modified.
-This variable is @samp{off} by default.
-
-@item mark-symlinked-directories
-@vindex mark-symlinked-directories
-If set to @samp{on}, completed names which are symbolic links
-to directories have a slash appended (subject to the value of
-@code{mark-directories}).
-The default is @samp{off}.
-
-@item match-hidden-files
-@vindex match-hidden-files
-This variable, when set to @samp{on}, causes Readline to match files whose
-names begin with a @samp{.} (hidden files) when performing filename
-completion, unless the leading @samp{.} is
-supplied by the user in the filename to be completed.
-This variable is @samp{on} by default.
-
-@item output-meta
-@vindex output-meta
-If set to @samp{on}, Readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is @samp{off}.
-
-@item page-completions
-@vindex page-completions
-If set to @samp{on}, Readline uses an internal @code{more}-like pager
-to display a screenful of possible completions at a time.
-This variable is @samp{on} by default.
-
-@item print-completions-horizontally
-If set to @samp{on}, Readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-The default is @samp{off}.
-
-@item show-all-if-ambiguous
-@vindex show-all-if-ambiguous
-This alters the default behavior of the completion functions. If
-set to @samp{on},
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-The default value is @samp{off}.
-
-@item visible-stats
-@vindex visible-stats
-If set to @samp{on}, a character denoting a file's type
-is appended to the filename when listing possible
-completions. The default is @samp{off}.
-
-@end table
-
-@item Key Bindings
-The syntax for controlling key bindings in the init file is
-simple. First you need to find the name of the command that you
-want to change. The following sections contain tables of the command
-name, the default keybinding, if any, and a short description of what
-the command does.
-
-Once you know the name of the command, simply place on a line
-in the init file the name of the key
-you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
-
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a @var{macro}).
-
-@ifset BashFeatures
-The @w{@code{bind -p}} command displays Readline function names and
-bindings in a format that can put directly into an initialization file.
-@xref{Bash Builtins}.
-@end ifset
-
-@table @asis
-@item @w{@var{keyname}: @var{function-name} or @var{macro}}
-@var{keyname} is the name of a key spelled out in English. For example:
-@example
-Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "> output"
-@end example
-
-In the above example, @kbd{C-u} is bound to the function
-@code{universal-argument},
-@kbd{M-DEL} is bound to the function @code{backward-kill-word}, and
-@kbd{C-o} is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-@samp{> output} into the line).
-
-A number of symbolic character names are recognized while
-processing this key binding syntax:
-@var{DEL},
-@var{ESC},
-@var{ESCAPE},
-@var{LFD},
-@var{NEWLINE},
-@var{RET},
-@var{RETURN},
-@var{RUBOUT},
-@var{SPACE},
-@var{SPC},
-and
-@var{TAB}.
-
-@item @w{"@var{keyseq}": @var{function-name} or @var{macro}}
-@var{keyseq} differs from @var{keyname} above in that strings
-denoting an entire key sequence can be specified, by placing
-the key sequence in double quotes. Some @sc{gnu} Emacs style key
-escapes can be used, as in the following example, but the
-special character names are not recognized.
-
-@example
-"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-@end example
-
-In the above example, @kbd{C-u} is again bound to the function
-@code{universal-argument} (just as it was in the first example),
-@samp{@kbd{C-x} @kbd{C-r}} is bound to the function @code{re-read-init-file},
-and @samp{@key{ESC} @key{[} @key{1} @key{1} @key{~}} is bound to insert
-the text @samp{Function Key 1}.
-
-@end table
-
-The following @sc{gnu} Emacs style escape sequences are available when
-specifying key sequences:
-
-@table @code
-@item @kbd{\C-}
-control prefix
-@item @kbd{\M-}
-meta prefix
-@item @kbd{\e}
-an escape character
-@item @kbd{\\}
-backslash
-@item @kbd{\"}
-@key{"}, a double quotation mark
-@item @kbd{\'}
-@key{'}, a single quote or apostrophe
-@end table
-
-In addition to the @sc{gnu} Emacs style escape sequences, a second
-set of backslash escapes is available:
-
-@table @code
-@item \a
-alert (bell)
-@item \b
-backspace
-@item \d
-delete
-@item \f
-form feed
-@item \n
-newline
-@item \r
-carriage return
-@item \t
-horizontal tab
-@item \v
-vertical tab
-@item \@var{nnn}
-the eight-bit character whose value is the octal value @var{nnn}
-(one to three digits)
-@item \x@var{HH}
-the eight-bit character whose value is the hexadecimal value @var{HH}
-(one or two hex digits)
-@end table
-
-When entering the text of a macro, single or double quotes must
-be used to indicate a macro definition.
-Unquoted text is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including @samp{"} and @samp{'}.
-For example, the following binding will make @samp{@kbd{C-x} \}
-insert a single @samp{\} into the line:
-@example
-"\C-x\\": "\\"
-@end example
-
-@end table
-
-@node Conditional Init Constructs
-@subsection Conditional Init Constructs
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests. There are four parser directives used.
-
-@table @code
-@item $if
-The @code{$if} construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-Readline. The text of the test extends to the end of the line;
-no characters are required to isolate it.
-
-@table @code
-@item mode
-The @code{mode=} form of the @code{$if} directive is used to test
-whether Readline is in @code{emacs} or @code{vi} mode.
-This may be used in conjunction
-with the @samp{set keymap} command, for instance, to set bindings in
-the @code{emacs-standard} and @code{emacs-ctlx} keymaps only if
-Readline is starting out in @code{emacs} mode.
-
-@item term
-The @code{term=} form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys. The word on the right side of the
-@samp{=} is tested against both the full name of the terminal and
-the portion of the terminal name before the first @samp{-}. This
-allows @code{sun} to match both @code{sun} and @code{sun-cmd},
-for instance.
-
-@item application
-The @var{application} construct is used to include
-application-specific settings. Each program using the Readline
-library sets the @var{application name}, and you can test for
-a particular value.
-This could be used to bind key sequences to functions useful for
-a specific program. For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-@example
-$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-@end example
-@end table
-
-@item $endif
-This command, as seen in the previous example, terminates an
-@code{$if} command.
-
-@item $else
-Commands in this branch of the @code{$if} directive are executed if
-the test fails.
-
-@item $include
-This directive takes a single filename as an argument and reads commands
-and bindings from that file.
-For example, the following directive reads from @file{/etc/inputrc}:
-@example
-$include /etc/inputrc
-@end example
-@end table
-
-@node Sample Init File
-@subsection Sample Init File
-
-Here is an example of an @var{inputrc} file. This illustrates key
-binding, variable assignment, and conditional syntax.
-
-@example
-@page
-# This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library. Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs
-
-$if mode=emacs
-
-Meta-Control-h: backward-kill-word Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD": backward-char
-#"\M-OC": forward-char
-#"\M-OA": previous-history
-#"\M-OB": next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D": backward-char
-"\M-[C": forward-char
-"\M-[A": previous-history
-"\M-[B": next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD": backward-char
-#"\M-\C-OC": forward-char
-#"\M-\C-OA": previous-history
-#"\M-\C-OB": next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D": backward-char
-#"\M-\C-[C": forward-char
-#"\M-\C-[A": previous-history
-#"\M-\C-[B": next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding. This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=$@{PATH@}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-@end example
-
-@node Bindable Readline Commands
-@section Bindable Readline Commands
-
-@menu
-* Commands For Moving:: Moving about the line.
-* Commands For History:: Getting at previous lines.
-* Commands For Text:: Commands for changing text.
-* Commands For Killing:: Commands for killing and yanking.
-* Numeric Arguments:: Specifying numeric arguments, repeat counts.
-* Commands For Completion:: Getting Readline to do the typing for you.
-* Keyboard Macros:: Saving and re-executing typed characters
-* Miscellaneous Commands:: Other miscellaneous commands.
-@end menu
-
-This section describes Readline commands that may be bound to key
-sequences.
-@ifset BashFeatures
-You can list your key bindings by executing
-@w{@code{bind -P}} or, for a more terse format, suitable for an
-@var{inputrc} file, @w{@code{bind -p}}. (@xref{Bash Builtins}.)
-@end ifset
-Command names without an accompanying key sequence are unbound by default.
-
-In the following descriptions, @dfn{point} refers to the current cursor
-position, and @dfn{mark} refers to a cursor position saved by the
-@code{set-mark} command.
-The text between the point and mark is referred to as the @dfn{region}.
-
-@node Commands For Moving
-@subsection Commands For Moving
-@ftable @code
-@item beginning-of-line (C-a)
-Move to the start of the current line.
-
-@item end-of-line (C-e)
-Move to the end of the line.
-
-@item forward-char (C-f)
-Move forward a character.
-
-@item backward-char (C-b)
-Move back a character.
-
-@item forward-word (M-f)
-Move forward to the end of the next word. Words are composed of
-letters and digits.
-
-@item backward-word (M-b)
-Move back to the start of the current or previous word. Words are
-composed of letters and digits.
-
-@item clear-screen (C-l)
-Clear the screen and redraw the current line,
-leaving the current line at the top of the screen.
-
-@item redraw-current-line ()
-Refresh the current line. By default, this is unbound.
-
-@end ftable
-
-@node Commands For History
-@subsection Commands For Manipulating The History
-
-@ftable @code
-@item accept-line (Newline or Return)
-@ifset BashFeatures
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, add it to the history list according to the setting of
-the @env{HISTCONTROL} and @env{HISTIGNORE} variables.
-If this line is a modified history line, then restore the history line
-to its original state.
-@end ifset
-@ifclear BashFeatures
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-@code{add_history()}.
-If this line is a modified history line, the history line is restored
-to its original state.
-@end ifclear
-
-@item previous-history (C-p)
-Move `back' through the history list, fetching the previous command.
-
-@item next-history (C-n)
-Move `forward' through the history list, fetching the next command.
-
-@item beginning-of-history (M-<)
-Move to the first line in the history.
-
-@item end-of-history (M->)
-Move to the end of the input history, i.e., the line currently
-being entered.
-
-@item reverse-search-history (C-r)
-Search backward starting at the current line and moving `up' through
-the history as necessary. This is an incremental search.
-
-@item forward-search-history (C-s)
-Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
-
-@item non-incremental-reverse-search-history (M-p)
-Search backward starting at the current line and moving `up'
-through the history as necessary using a non-incremental search
-for a string supplied by the user.
-
-@item non-incremental-forward-search-history (M-n)
-Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
-for a string supplied by the user.
-
-@item history-search-forward ()
-Search forward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-By default, this command is unbound.
-
-@item history-search-backward ()
-Search backward through the history for the string of characters
-between the start of the current line and the point. This
-is a non-incremental search. By default, this command is unbound.
-
-@item yank-nth-arg (M-C-y)
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument @var{n},
-insert the @var{n}th word from the previous command (the words
-in the previous command begin with word 0). A negative argument
-inserts the @var{n}th word from the end of the previous command.
-
-@item yank-last-arg (M-. or M-_)
-Insert last argument to the previous command (the last word of the
-previous history entry). With an
-argument, behave exactly like @code{yank-nth-arg}.
-Successive calls to @code{yank-last-arg} move back through the history
-list, inserting the last argument of each line in turn.
-
-@end ftable
-
-@node Commands For Text
-@subsection Commands For Changing Text
-
-@ftable @code
-@item delete-char (C-d)
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to @code{delete-char}, then
-return @sc{eof}.
-
-@item backward-delete-char (Rubout)
-Delete the character behind the cursor. A numeric argument means
-to kill the characters instead of deleting them.
-
-@item forward-backward-delete-char ()
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted. By default, this is not bound to a key.
-
-@item quoted-insert (C-q or C-v)
-Add the next character typed to the line verbatim. This is
-how to insert key sequences like @kbd{C-q}, for example.
-
-@ifclear BashFeatures
-@item tab-insert (M-@key{TAB})
-Insert a tab character.
-@end ifclear
-
-@item self-insert (a, b, A, 1, !, @dots{})
-Insert yourself.
-
-@item transpose-chars (C-t)
-Drag the character before the cursor forward over
-the character at the cursor, moving the
-cursor forward as well. If the insertion point
-is at the end of the line, then this
-transposes the last two characters of the line.
-Negative arguments have no effect.
-
-@item transpose-words (M-t)
-Drag the word before point past the word after point,
-moving point past that word as well.
-If the insertion point is at the end of the line, this transposes
-the last two words on the line.
-
-@item upcase-word (M-u)
-Uppercase the current (or following) word. With a negative argument,
-uppercase the previous word, but do not move the cursor.
-
-@item downcase-word (M-l)
-Lowercase the current (or following) word. With a negative argument,
-lowercase the previous word, but do not move the cursor.
-
-@item capitalize-word (M-c)
-Capitalize the current (or following) word. With a negative argument,
-capitalize the previous word, but do not move the cursor.
-
-@item overwrite-mode ()
-Toggle overwrite mode. With an explicit positive numeric argument,
-switches to overwrite mode. With an explicit non-positive numeric
-argument, switches to insert mode. This command affects only
-@code{emacs} mode; @code{vi} mode does overwrite differently.
-Each call to @code{readline()} starts in insert mode.
-
-In overwrite mode, characters bound to @code{self-insert} replace
-the text at point rather than pushing the text to the right.
-Characters bound to @code{backward-delete-char} replace the character
-before point with a space.
-
-By default, this command is unbound.
-
-@end ftable
-
-@node Commands For Killing
-@subsection Killing And Yanking
-
-@ftable @code
-
-@item kill-line (C-k)
-Kill the text from point to the end of the line.
-
-@item backward-kill-line (C-x Rubout)
-Kill backward to the beginning of the line.
-
-@item unix-line-discard (C-u)
-Kill backward from the cursor to the beginning of the current line.
-
-@item kill-whole-line ()
-Kill all characters on the current line, no matter where point is.
-By default, this is unbound.
-
-@item kill-word (M-d)
-Kill from point to the end of the current word, or if between
-words, to the end of the next word.
-Word boundaries are the same as @code{forward-word}.
-
-@item backward-kill-word (M-@key{DEL})
-Kill the word behind point.
-Word boundaries are the same as @code{backward-word}.
-
-@item unix-word-rubout (C-w)
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-
-@item delete-horizontal-space ()
-Delete all spaces and tabs around point. By default, this is unbound.
-
-@item kill-region ()
-Kill the text in the current region.
-By default, this command is unbound.
-
-@item copy-region-as-kill ()
-Copy the text in the region to the kill buffer, so it can be yanked
-right away. By default, this command is unbound.
-
-@item copy-backward-word ()
-Copy the word before point to the kill buffer.
-The word boundaries are the same as @code{backward-word}.
-By default, this command is unbound.
-
-@item copy-forward-word ()
-Copy the word following point to the kill buffer.
-The word boundaries are the same as @code{forward-word}.
-By default, this command is unbound.
-
-@item yank (C-y)
-Yank the top of the kill ring into the buffer at point.
-
-@item yank-pop (M-y)
-Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is @code{yank} or @code{yank-pop}.
-@end ftable
-
-@node Numeric Arguments
-@subsection Specifying Numeric Arguments
-@ftable @code
-
-@item digit-argument (@kbd{M-0}, @kbd{M-1}, @dots{} @kbd{M--})
-Add this digit to the argument already accumulating, or start a new
-argument. @kbd{M--} starts a negative argument.
-
-@item universal-argument ()
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing @code{universal-argument}
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-By default, this is not bound to a key.
-@end ftable
-
-@node Commands For Completion
-@subsection Letting Readline Type For You
-
-@ftable @code
-@item complete (@key{TAB})
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-@ifset BashFeatures
-Bash attempts completion treating the text as a variable (if the
-text begins with @samp{$}), username (if the text begins with
-@samp{~}), hostname (if the text begins with @samp{@@}), or
-command (including aliases and functions) in turn. If none
-of these produces a match, filename completion is attempted.
-@end ifset
-@ifclear BashFeatures
-The default is filename completion.
-@end ifclear
-
-@item possible-completions (M-?)
-List the possible completions of the text before point.
-
-@item insert-completions (M-*)
-Insert all completions of the text before point that would have
-been generated by @code{possible-completions}.
-
-@item menu-complete ()
-Similar to @code{complete}, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of @code{menu-complete} steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of @code{bell-style})
-and the original text is restored.
-An argument of @var{n} moves @var{n} positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to @key{TAB}, but is unbound
-by default.
-
-@item delete-char-or-list ()
-Deletes the character under the cursor if not at the beginning or
-end of the line (like @code{delete-char}).
-If at the end of the line, behaves identically to
-@code{possible-completions}.
-This command is unbound by default.
-
-@ifset BashFeatures
-@item complete-filename (M-/)
-Attempt filename completion on the text before point.
-
-@item possible-filename-completions (C-x /)
-List the possible completions of the text before point,
-treating it as a filename.
-
-@item complete-username (M-~)
-Attempt completion on the text before point, treating
-it as a username.
-
-@item possible-username-completions (C-x ~)
-List the possible completions of the text before point,
-treating it as a username.
-
-@item complete-variable (M-$)
-Attempt completion on the text before point, treating
-it as a shell variable.
-
-@item possible-variable-completions (C-x $)
-List the possible completions of the text before point,
-treating it as a shell variable.
-
-@item complete-hostname (M-@@)
-Attempt completion on the text before point, treating
-it as a hostname.
-
-@item possible-hostname-completions (C-x @@)
-List the possible completions of the text before point,
-treating it as a hostname.
-
-@item complete-command (M-!)
-Attempt completion on the text before point, treating
-it as a command name. Command completion attempts to
-match the text against aliases, reserved words, shell
-functions, shell builtins, and finally executable filenames,
-in that order.
-
-@item possible-command-completions (C-x !)
-List the possible completions of the text before point,
-treating it as a command name.
-
-@item dynamic-complete-history (M-@key{TAB})
-Attempt completion on the text before point, comparing
-the text against lines from the history list for possible
-completion matches.
-
-@item complete-into-braces (M-@{)
-Perform filename completion and insert the list of possible completions
-enclosed within braces so the list is available to the shell
-(@pxref{Brace Expansion}).
-
-@end ifset
-@end ftable
-
-@node Keyboard Macros
-@subsection Keyboard Macros
-@ftable @code
-
-@item start-kbd-macro (C-x ()
-Begin saving the characters typed into the current keyboard macro.
-
-@item end-kbd-macro (C-x ))
-Stop saving the characters typed into the current keyboard macro
-and save the definition.
-
-@item call-last-kbd-macro (C-x e)
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-
-@end ftable
-
-@node Miscellaneous Commands
-@subsection Some Miscellaneous Commands
-@ftable @code
-
-@item re-read-init-file (C-x C-r)
-Read in the contents of the @var{inputrc} file, and incorporate
-any bindings or variable assignments found there.
-
-@item abort (C-g)
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-@code{bell-style}).
-
-@item do-uppercase-version (M-a, M-b, M-@var{x}, @dots{})
-If the metafied character @var{x} is lowercase, run the command
-that is bound to the corresponding uppercase character.
-
-@item prefix-meta (@key{ESC})
-Metafy the next character typed. This is for keyboards
-without a meta key. Typing @samp{@key{ESC} f} is equivalent to typing
-@kbd{M-f}.
-
-@item undo (C-_ or C-x C-u)
-Incremental undo, separately remembered for each line.
-
-@item revert-line (M-r)
-Undo all changes made to this line. This is like executing the @code{undo}
-command enough times to get back to the beginning.
-
-@ifset BashFeatures
-@item tilde-expand (M-&)
-@end ifset
-@ifclear BashFeatures
-@item tilde-expand (M-~)
-@end ifclear
-Perform tilde expansion on the current word.
-
-@item set-mark (C-@@)
-Set the mark to the point. If a
-numeric argument is supplied, the mark is set to that position.
-
-@item exchange-point-and-mark (C-x C-x)
-Swap the point with the mark. The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-
-@item character-search (C-])
-A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
-
-@item character-search-backward (M-C-])
-A character is read and point is moved to the previous occurrence
-of that character. A negative count searches for subsequent
-occurrences.
-
-@item insert-comment (M-#)
-Without a numeric argument, the value of the @code{comment-begin}
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
-the characters at the beginning of the line do not match the value
-of @code{comment-begin}, the value is inserted, otherwise
-the characters in @code{comment-begin} are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-@ifset BashFeatures
-The default value of @code{comment-begin} causes this command
-to make the current line a shell comment.
-If a numeric argument causes the comment character to be removed, the line
-will be executed by the shell.
-@end ifset
-
-@item dump-functions ()
-Print all of the functions and their key bindings to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file. This command is unbound by default.
-
-@item dump-variables ()
-Print all of the settable variables and their values to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file. This command is unbound by default.
-
-@item dump-macros ()
-Print all of the Readline key sequences bound to macros and the
-strings they output. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an @var{inputrc} file. This command is unbound by default.
-
-@ifset BashFeatures
-@item glob-complete-word (M-g)
-The word before point is treated as a pattern for pathname expansion,
-with an asterisk implicitly appended. This pattern is used to
-generate a list of matching file names for possible completions.
-
-@item glob-expand-word (C-x *)
-The word before point is treated as a pattern for pathname expansion,
-and the list of matching file names is inserted, replacing the word.
-If a numeric argument is supplied, a @samp{*} is appended before
-pathname expansion.
-
-@item glob-list-expansions (C-x g)
-The list of expansions that would have been generated by
-@code{glob-expand-word} is displayed, and the line is redrawn.
-If a numeric argument is supplied, a @samp{*} is appended before
-pathname expansion.
-
-@item display-shell-version (C-x C-v)
-Display version information about the current instance of Bash.
-
-@item shell-expand-line (M-C-e)
-Expand the line as the shell does.
-This performs alias and history expansion as well as all of the shell
-word expansions (@pxref{Shell Expansions}).
-
-@item history-expand-line (M-^)
-Perform history expansion on the current line.
-
-@item magic-space ()
-Perform history expansion on the current line and insert a space
-(@pxref{History Interaction}).
-
-@item alias-expand-line ()
-Perform alias expansion on the current line (@pxref{Aliases}).
-
-@item history-and-alias-expand-line ()
-Perform history and alias expansion on the current line.
-
-@item insert-last-argument (M-. or M-_)
-A synonym for @code{yank-last-arg}.
-
-@item operate-and-get-next (C-o)
-Accept the current line for execution and fetch the next line
-relative to the current line from the history for editing. Any
-argument is ignored.
-
-@item edit-and-execute-command (C-xC-e)
-Invoke an editor on the current command line, and execute the result as shell
-commands.
-Bash attempts to invoke
-@code{$FCEDIT}, @code{$EDITOR}, and @code{emacs}
-as the editor, in that order.
-
-@end ifset
-
-@ifclear BashFeatures
-@item emacs-editing-mode (C-e)
-When in @code{vi} command mode, this causes a switch to @code{emacs}
-editing mode.
-
-@item vi-editing-mode (M-C-j)
-When in @code{emacs} editing mode, this causes a switch to @code{vi}
-editing mode.
-
-@end ifclear
-
-@end ftable
-
-@node Readline vi Mode
-@section Readline vi Mode
-
-While the Readline library does not have a full set of @code{vi}
-editing functions, it does contain enough to allow simple editing
-of the line. The Readline @code{vi} mode behaves as specified in
-the @sc{posix} 1003.2 standard.
-
-@ifset BashFeatures
-In order to switch interactively between @code{emacs} and @code{vi}
-editing modes, use the @samp{set -o emacs} and @samp{set -o vi}
-commands (@pxref{The Set Builtin}).
-@end ifset
-@ifclear BashFeatures
-In order to switch interactively between @code{emacs} and @code{vi}
-editing modes, use the command @kbd{M-C-j} (bound to emacs-editing-mode
-when in @code{vi} mode and to vi-editing-mode in @code{emacs} mode).
-@end ifclear
-The Readline default is @code{emacs} mode.
-
-When you enter a line in @code{vi} mode, you are already placed in
-`insertion' mode, as if you had typed an @samp{i}. Pressing @key{ESC}
-switches you into `command' mode, where you can edit the text of the
-line with the standard @code{vi} movement keys, move to previous
-history lines with @samp{k} and subsequent lines with @samp{j}, and
-so forth.
-
-@ifset BashFeatures
-@node Programmable Completion
-@section Programmable Completion
-@cindex programmable completion
-
-When word completion is attempted for an argument to a command for
-which a completion specification (a @var{compspec}) has been defined
-using the @code{complete} builtin (@pxref{Programmable Completion Builtins}),
-the programmable completion facilities are invoked.
-
-First, the command name is identified.
-If a compspec has been defined for that command, the
-compspec is used to generate the list of possible completions for the word.
-If the command word is a full pathname, a compspec for the full
-pathname is searched for first.
-If no compspec is found for the full pathname, an attempt is made to
-find a compspec for the portion following the final slash.
-
-Once a compspec has been found, it is used to generate the list of
-matching words.
-If a compspec is not found, the default Bash completion
-described above (@pxref{Commands For Completion}) is performed.
-
-First, the actions specified by the compspec are used.
-Only matches which are prefixed by the word being completed are
-returned.
-When the @option{-f} or @option{-d} option is used for filename or
-directory name completion, the shell variable @env{FIGNORE} is
-used to filter the matches.
-@xref{Bash Variables}, for a description of @env{FIGNORE}.
-
-Any completions specified by a filename expansion pattern to the
-@option{-G} option are generated next.
-The words generated by the pattern need not match the word being completed.
-The @env{GLOBIGNORE} shell variable is not used to filter the matches,
-but the @env{FIGNORE} shell variable is used.
-
-Next, the string specified as the argument to the @option{-W} option
-is considered.
-The string is first split using the characters in the @env{IFS}
-special variable as delimiters.
-Shell quoting is honored.
-Each word is then expanded using
-brace expansion, tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and pathname expansion,
-as described above (@pxref{Shell Expansions}).
-The results are split using the rules described above
-(@pxref{Word Splitting}).
-The results of the expansion are prefix-matched against the word being
-completed, and the matching words become the possible completions.
-
-After these matches have been generated, any shell function or command
-specified with the @option{-F} and @option{-C} options is invoked.
-When the command or function is invoked, the @env{COMP_LINE} and
-@env{COMP_POINT} variables are assigned values as described above
-(@pxref{Bash Variables}).
-If a shell function is being invoked, the @env{COMP_WORDS} and
-@env{COMP_CWORD} variables are also set.
-When the function or command is invoked, the first argument is the
-name of the command whose arguments are being completed, the
-second argument is the word being completed, and the third argument
-is the word preceding the word being completed on the current command line.
-No filtering of the generated completions against the word being completed
-is performed; the function or command has complete freedom in generating
-the matches.
-
-Any function specified with @option{-F} is invoked first.
-The function may use any of the shell facilities, including the
-@code{compgen} builtin described below
-(@pxref{Programmable Completion Builtins}), to generate the matches.
-It must put the possible completions in the @env{COMPREPLY} array
-variable.
-
-Next, any command specified with the @option{-C} option is invoked
-in an environment equivalent to command substitution.
-It should print a list of completions, one per line, to
-the standard output.
-Backslash may be used to escape a newline, if necessary.
-
-After all of the possible completions are generated, any filter
-specified with the @option{-X} option is applied to the list.
-The filter is a pattern as used for pathname expansion; a @samp{&}
-in the pattern is replaced with the text of the word being completed.
-A literal @samp{&} may be escaped with a backslash; the backslash
-is removed before attempting a match.
-Any completion that matches the pattern will be removed from the list.
-A leading @samp{!} negates the pattern; in this case any completion
-not matching the pattern will be removed.
-
-Finally, any prefix and suffix specified with the @option{-P} and @option{-S}
-options are added to each member of the completion list, and the result is
-returned to the Readline completion code as the list of possible
-completions.
-
-If the previously-applied actions do not generate any matches, and the
-@option{-o dirnames} option was supplied to @code{complete} when the
-compspec was defined, directory name completion is attempted.
-
-By default, if a compspec is found, whatever it generates is returned to
-the completion code as the full set of possible completions.
-The default Bash completions are not attempted, and the Readline default
-of filename completion is disabled.
-If the @option{-o default} option was supplied to @code{complete} when the
-compspec was defined, Readline's default completion will be performed
-if the compspec generates no matches.
-
-When a compspec indicates that directory name completion is desired,
-the programmable completion functions force Readline to append a slash
-to completed names which are symbolic links to directories, subject to
-the value of the @var{mark-directories} Readline variable, regardless
-of the setting of the @var{mark-symlinked-directories} Readline variable.
-
-@node Programmable Completion Builtins
-@section Programmable Completion Builtins
-@cindex completion builtins
-
-Two builtin commands are available to manipulate the programmable completion
-facilities.
-
-@table @code
-@item compgen
-@btindex compgen
-@example
-@code{compgen [@var{option}] [@var{word}]}
-@end example
-
-Generate possible completion matches for @var{word} according to
-the @var{option}s, which may be any option accepted by the
-@code{complete}
-builtin with the exception of @option{-p} and @option{-r}, and write
-the matches to the standard output.
-When using the @option{-F} or @option{-C} options, the various shell variables
-set by the programmable completion facilities, while available, will not
-have useful values.
-
-The matches will be generated in the same way as if the programmable
-completion code had generated them directly from a completion specification
-with the same flags.
-If @var{word} is specified, only those completions matching @var{word}
-will be displayed.
-
-The return value is true unless an invalid option is supplied, or no
-matches were generated.
-
-@item complete
-@btindex complete
-@example
-@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-A @var{action}] [-G @var{globpat}] [-W @var{wordlist}]
-[-P @var{prefix}] [-S @var{suffix}] [-X @var{filterpat}] [-F @var{function}]
-[-C @var{command}] @var{name} [@var{name} @dots{}]}
-@code{complete -pr [@var{name} @dots{}]}
-@end example
-
-Specify how arguments to each @var{name} should be completed.
-If the @option{-p} option is supplied, or if no options are supplied, existing
-completion specifications are printed in a way that allows them to be
-reused as input.
-The @option{-r} option removes a completion specification for
-each @var{name}, or, if no @var{name}s are supplied, all
-completion specifications.
-
-The process of applying these completion specifications when word completion
-is attempted is described above (@pxref{Programmable Completion}).
-
-Other options, if specified, have the following meanings.
-The arguments to the @option{-G}, @option{-W}, and @option{-X} options
-(and, if necessary, the @option{-P} and @option{-S} options)
-should be quoted to protect them from expansion before the
-@code{complete} builtin is invoked.
-
-
-@table @code
-@item -o @var{comp-option}
-The @var{comp-option} controls several aspects of the compspec's behavior
-beyond the simple generation of completions.
-@var{comp-option} may be one of:
-
-@table @code
-
-@item default
-Use Readline's default filename completion if the compspec generates
-no matches.
-
-@item dirnames
-Perform directory name completion if the compspec generates no matches.
-
-@item filenames
-Tell Readline that the compspec generates filenames, so it can perform any
-filename\-specific processing (like adding a slash to directory names or
-suppressing trailing spaces). This option is intended to be used with
-shell functions specified with @option{-F}.
-
-@item nospace
-Tell Readline not to append a space (the default) to words completed at
-the end of the line.
-@end table
-
-@item -A @var{action}
-The @var{action} may be one of the following to generate a list of possible
-completions:
-
-@table @code
-@item alias
-Alias names. May also be specified as @option{-a}.
-
-@item arrayvar
-Array variable names.
-
-@item binding
-Readline key binding names (@pxref{Bindable Readline Commands}).
-
-@item builtin
-Names of shell builtin commands. May also be specified as @option{-b}.
-
-@item command
-Command names. May also be specified as @option{-c}.
-
-@item directory
-Directory names. May also be specified as @option{-d}.
-
-@item disabled
-Names of disabled shell builtins.
-
-@item enabled
-Names of enabled shell builtins.
-
-@item export
-Names of exported shell variables. May also be specified as @option{-e}.
-
-@item file
-File names. May also be specified as @option{-f}.
-
-@item function
-Names of shell functions.
-
-@item group
-Group names. May also be specified as @option{-g}.
-
-@item helptopic
-Help topics as accepted by the @code{help} builtin (@pxref{Bash Builtins}).
-
-@item hostname
-Hostnames, as taken from the file specified by the
-@env{HOSTFILE} shell variable (@pxref{Bash Variables}).
-
-@item job
-Job names, if job control is active. May also be specified as @option{-j}.
-
-@item keyword
-Shell reserved words. May also be specified as @option{-k}.
-
-@item running
-Names of running jobs, if job control is active.
-
-@item service
-Service names. May also be specified as @option{-s}.
-
-@item setopt
-Valid arguments for the @option{-o} option to the @code{set} builtin
-(@pxref{The Set Builtin}).
-
-@item shopt
-Shell option names as accepted by the @code{shopt} builtin
-(@pxref{Bash Builtins}).
-
-@item signal
-Signal names.
-
-@item stopped
-Names of stopped jobs, if job control is active.
-
-@item user
-User names. May also be specified as @option{-u}.
-
-@item variable
-Names of all shell variables. May also be specified as @option{-v}.
-@end table
-
-@item -G @var{globpat}
-The filename expansion pattern @var{globpat} is expanded to generate
-the possible completions.
-
-@item -W @var{wordlist}
-The @var{wordlist} is split using the characters in the
-@env{IFS} special variable as delimiters, and each resultant word
-is expanded.
-The possible completions are the members of the resultant list which
-match the word being completed.
-
-@item -C @var{command}
-@var{command} is executed in a subshell environment, and its output is
-used as the possible completions.
-
-@item -F @var{function}
-The shell function @var{function} is executed in the current shell
-environment.
-When it finishes, the possible completions are retrieved from the value
-of the @env{COMPREPLY} array variable.
-
-@item -X @var{filterpat}
-@var{filterpat} is a pattern as used for filename expansion.
-It is applied to the list of possible completions generated by the
-preceding options and arguments, and each completion matching
-@var{filterpat} is removed from the list.
-A leading @samp{!} in @var{filterpat} negates the pattern; in this
-case, any completion not matching @var{filterpat} is removed.
-
-@item -P @var{prefix}
-@var{prefix} is added at the beginning of each possible completion
-after all other options have been applied.
-
-@item -S @var{suffix}
-@var{suffix} is appended to each possible completion
-after all other options have been applied.
-@end table
-
-The return value is true unless an invalid option is supplied, an option
-other than @option{-p} or @option{-r} is supplied without a @var{name}
-argument, an attempt is made to remove a completion specification for
-a @var{name} for which no specification exists, or
-an error occurs adding a completion specification.
-
-@end table
-@end ifset
diff --git a/readline-4.3/doc/rluserman.texinfo b/readline-4.3/doc/rluserman.texinfo
deleted file mode 100644
index 89abe31..0000000
--- a/readline-4.3/doc/rluserman.texinfo
+++ /dev/null
@@ -1,94 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rluserman.info
-@settitle GNU Readline Library
-@comment %**end of header (This is for running Texinfo on a region.)
-@setchapternewpage odd
-
-@include manvers.texinfo
-
-@ifinfo
-@dircategory Libraries
-@direntry
-* RLuserman: (rluserman). The GNU readline library User's Manual.
-@end direntry
-
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-@end ifinfo
-
-@titlepage
-@title GNU Readline Library User Interface
-@subtitle Edition @value{EDITION}, for @code{Readline Library} Version @value{VERSION}.
-@subtitle @value{UPDATE-MONTH}
-@author Brian Fox, Free Software Foundation
-@author Chet Ramey, Case Western Reserve University
-
-@page
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-Published by the Free Software Foundation @*
-59 Temple Place, Suite 330, @*
-Boston, MA 02111 USA
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Free Software Foundation.
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1988-2002 Free Software Foundation, Inc.
-@end titlepage
-
-@ifinfo
-@node Top
-@top GNU Readline Library
-
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-
-@menu
-* Command Line Editing:: GNU Readline User's Manual.
-@end menu
-@end ifinfo
-
-@include rluser.texinfo
-
-@contents
-@bye
diff --git a/readline-4.3/doc/texi2dvi b/readline-4.3/doc/texi2dvi
deleted file mode 100755
index c186848..0000000
--- a/readline-4.3/doc/texi2dvi
+++ /dev/null
@@ -1,568 +0,0 @@
-#! /bin/sh
-# texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources.
-# $Id$
-#
-# Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, you can either send email to this
-# program's maintainer or write to: The Free Software Foundation,
-# Inc.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, USA.
-#
-# Original author: Noah Friedman <friedman@gnu.org>.
-#
-# Please send bug reports, etc. to bug-texinfo@gnu.org.
-# If possible, please send a copy of the output of the script called with
-# the `--debug' option when making a bug report.
-
-# This string is expanded by rcs automatically when this file is checked out.
-rcs_revision='$Revision$'
-rcs_version=`set - $rcs_revision; echo $2`
-program=`echo $0 | sed -e 's!.*/!!'`
-version="texi2dvi (GNU Texinfo 4.0) $rcs_version
-
-Copyright (C) 1999 Free Software Foundation, Inc.
-There is NO warranty. You may redistribute this software
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING."
-
-usage="Usage: $program [OPTION]... FILE...
-
-Run each Texinfo or LaTeX FILE through TeX in turn until all
-cross-references are resolved, building all indices. The directory
-containing each FILE is searched for included files. The suffix of FILE
-is used to determine its language (LaTeX or Texinfo).
-
-Makeinfo is used to perform Texinfo macro expansion before running TeX
-when needed.
-
-Options:
- -@ Use @input instead of \input; for preloaded Texinfo.
- -b, --batch No interaction.
- -c, --clean Remove all auxiliary files.
- -D, --debug Turn on shell debugging (set -x).
- -e, --expand Force macro expansion using makeinfo.
- -I DIR Search DIR for Texinfo files.
- -h, --help Display this help and exit successfully.
- -l, --language=LANG Specify the LANG of FILE: LaTeX or Texinfo.
- -p, --pdf Use pdftex or pdflatex for processing.
- -q, --quiet No output unless errors (implies --batch).
- -s, --silent Same as --quiet.
- -t, --texinfo=CMD Insert CMD after @setfilename in copy of input file.
- Multiple values accumulate.
- -v, --version Display version information and exit successfully.
- -V, --verbose Report on what is done.
-
-The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO,
-TEX (or PDFTEX), and TEXINDEX environment variables are used to run
-those commands, if they are set.
-
-Email bug reports to <bug-texinfo@gnu.org>,
-general questions and discussion to <help-texinfo@gnu.org>."
-
-# Initialize variables for option overriding and otherwise.
-# Don't use `unset' since old bourne shells don't have this command.
-# Instead, assign them an empty value.
-escape='\'
-batch=false # eval for batch mode
-clean=
-debug=
-expand= # t for expansion via makeinfo
-oformat=dvi
-set_language=
-miincludes= # makeinfo include path
-textra=
-tmpdir=${TMPDIR:-/tmp}/t2d$$ # avoid collisions on 8.3 filesystems.
-txincludes= # TEXINPUTS extensions
-txiprereq=19990129 # minimum texinfo.tex version to have macro expansion
-quiet= # by default let the tools' message be displayed
-verbose=false # echo for verbose mode
-
-orig_pwd=`pwd`
-
-# Systems which define $COMSPEC or $ComSpec use semicolons to separate
-# directories in TEXINPUTS.
-if test -n "$COMSPEC$ComSpec"; then
- path_sep=";"
-else
- path_sep=":"
-fi
-
-# Save this so we can construct a new TEXINPUTS path for each file.
-TEXINPUTS_orig="$TEXINPUTS"
-# Unfortunately makeindex does not read TEXINPUTS.
-INDEXSTYLE_orig="$INDEXSTYLE"
-export TEXINPUTS INDEXSTYLE
-
-# Push a token among the arguments that will be used to notice when we
-# ended options/arguments parsing.
-# Use "set dummy ...; shift" rather than 'set - ..." because on
-# Solaris set - turns off set -x (but keeps set -e).
-# Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3
-# still expand "$@" to a single argument (the empty string) rather
-# than nothing at all.
-arg_sep="$$--$$"
-set dummy ${1+"$@"} "$arg_sep"; shift
-
-#
-# Parse command line arguments.
-while test x"$1" != x"$arg_sep"; do
-
- # Handle --option=value by splitting apart and putting back on argv.
- case "$1" in
- --*=*)
- opt=`echo "$1" | sed -e 's/=.*//'`
- val=`echo "$1" | sed -e 's/[^=]*=//'`
- shift
- set dummy "$opt" "$val" ${1+"$@"}; shift
- ;;
- esac
-
- # This recognizes --quark as --quiet. So what.
- case "$1" in
- -@ ) escape=@;;
- # Silently and without documentation accept -b and --b[atch] as synonyms.
- -b | --b*) batch=eval;;
- -q | -s | --q* | --s*) quiet=t; batch=eval;;
- -c | --c*) clean=t;;
- -D | --d*) debug=t;;
- -e | --e*) expand=t;;
- -h | --h*) echo "$usage"; exit 0;;
- -I | --I*)
- shift
- miincludes="$miincludes -I $1"
- txincludes="$txincludes$path_sep$1"
- ;;
- -l | --l*) shift; set_language=$1;;
- -p | --p*) oformat=pdf;;
- -t | --t*) shift; textra="$textra\\
-$1";;
- -v | --vers*) echo "$version"; exit 0;;
- -V | --verb*) verbose=echo;;
- --) # What remains are not options.
- shift
- while test x"$1" != x"$arg_sep"; do
- set dummy ${1+"$@"} "$1"; shift
- shift
- done
- break;;
- -*)
- echo "$0: Unknown or ambiguous option \`$1'." >&2
- echo "$0: Try \`--help' for more information." >&2
- exit 1;;
- *) set dummy ${1+"$@"} "$1"; shift;;
- esac
- shift
-done
-# Pop the token
-shift
-
-# Interpret remaining command line args as filenames.
-if test $# = 0; then
- echo "$0: Missing file arguments." >&2
- echo "$0: Try \`--help' for more information." >&2
- exit 2
-fi
-
-# Prepare the temporary directory. Remove it at exit, unless debugging.
-if test -z "$debug"; then
- trap "cd / && rm -rf $tmpdir" 0 1 2 15
-fi
-
-# Create the temporary directory with strict rights
-(umask 077 && mkdir $tmpdir) || exit 1
-
-# Prepare the tools we might need. This may be extra work in some
-# cases, but improves the readibility of the script.
-utildir=$tmpdir/utils
-mkdir $utildir || exit 1
-
-# A sed script that preprocesses Texinfo sources in order to keep the
-# iftex sections only. We want to remove non TeX sections, and
-# comment (with `@c texi2dvi') TeX sections so that makeinfo does not
-# try to parse them. Nevertheless, while commenting TeX sections,
-# don't comment @macro/@end macro so that makeinfo does propagate
-# them. Unfortunately makeinfo --iftex --no-ifhtml --no-ifinfo
-# doesn't work well enough (yet) to use that, so work around with sed.
-comment_iftex_sed=$utildir/comment.sed
-cat <<EOF >$comment_iftex_sed
-/^@tex/,/^@end tex/{
- s/^/@c texi2dvi/
-}
-/^@iftex/,/^@end iftex/{
- s/^/@c texi2dvi/
- /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{
- s/^@c texi2dvi//
- }
-}
-/^@html/,/^@end html/d
-/^@ifhtml/,/^@end ifhtml/d
-/^@ifnottex/,/^@end ifnottex/d
-/^@ifinfo/,/^@end ifinfo/{
- /^@node/p
- /^@menu/,/^@end menu/p
- d
-}
-EOF
-# Uncommenting is simple: Remove any leading `@c texi2dvi'.
-uncomment_iftex_sed=$utildir/uncomment.sed
-cat <<EOF >$uncomment_iftex_sed
-s/^@c texi2dvi//
-EOF
-
-# A shell script that computes the list of xref files.
-# Takes the filename (without extension) of which we look for xref
-# files as argument. The index files must be reported last.
-get_xref_files=$utildir/get_xref.sh
-cat <<\EOF >$get_xref_files
-#! /bin/sh
-
-# Get list of xref files (indexes, tables and lists).
-# Find all files having root filename with a two-letter extension,
-# saves the ones that are really Texinfo-related files. .?o? catches
-# LaTeX tables and lists.
-for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do
- # If file is empty, skip it.
- test -s "$this_file" || continue
- # If the file is not suitable to be an index or xref file, don't
- # process it. The file can't be if its first character is not a
- # backslash or single quote.
- first_character=`sed -n '1s/^\(.\).*$/\1/p;q' $this_file`
- if test "x$first_character" = "x\\" \
- || test "x$first_character" = "x'"; then
- xref_files="$xref_files ./$this_file"
- fi
-done
-echo "$xref_files"
-EOF
-chmod 500 $get_xref_files
-
-# File descriptor usage:
-# 0 standard input
-# 1 standard output (--verbose messages)
-# 2 standard error
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 5 tools output (turned off by --quiet)
-
-# Tools' output. If quiet, discard, else redirect to the message flow.
-if test "$quiet" = t; then
- exec 5>/dev/null
-else
- exec 5>&1
-fi
-
-# Enable tracing
-test "$debug" = t && set -x
-
-#
-# TeXify files.
-
-for command_line_filename in ${1+"$@"}; do
- $verbose "Processing $command_line_filename ..."
-
- # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex),
- # prepend `./' in order to avoid that the tools take it as an option.
- echo "$command_line_filename" | egrep '^(/|[A-z]:/)' >/dev/null \
- || command_line_filename="./$command_line_filename"
-
- # See if the file exists. If it doesn't we're in trouble since, even
- # though the user may be able to reenter a valid filename at the tex
- # prompt (assuming they're attending the terminal), this script won't
- # be able to find the right xref files and so forth.
- if test ! -r "$command_line_filename"; then
- echo "$0: Could not read $command_line_filename, skipping." >&2
- continue
- fi
-
- # Get the name of the current directory. We want the full path
- # because in clean mode we are in tmp, in which case a relative
- # path has no meaning.
- filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'`
- filename_dir=`cd "$filename_dir" >/dev/null && pwd`
-
- # Strip directory part but leave extension.
- filename_ext=`basename "$command_line_filename"`
- # Strip extension.
- filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'`
- ext=`echo "$filename_ext" | sed 's/^.*\.//'`
-
- # _src. Use same basename since we want to generate aux files with
- # the same basename as the manual. If --expand, then output the
- # macro-expanded file to here, else copy the original file.
- tmpdir_src=$tmpdir/src
- filename_src=$tmpdir_src/$filename_noext.$ext
-
- # _xtr. The file with the user's extra commands.
- tmpdir_xtr=$tmpdir/xtr
- filename_xtr=$tmpdir_xtr/$filename_noext.$ext
-
- # _bak. Copies of the previous xref files (another round is run if
- # they differ from the new one).
- tmpdir_bak=$tmpdir/bak
-
- # Make all those directories and give up if we can't succeed.
- mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1
-
- # Source file might include additional sources. Put `.' and
- # directory where source file(s) reside in TEXINPUTS before anything
- # else. `.' goes first to ensure that any old .aux, .cps,
- # etc. files in ${directory} don't get used in preference to fresher
- # files in `.'. Include orig_pwd in case we are in clean mode, where
- # we've cd'd to a temp directory.
- common=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep"
- TEXINPUTS="$common$TEXINPUTS_orig"
- INDEXSTYLE="$common$INDEXSTYLE_orig"
-
- # If the user explicitly specified the language, use that.
- # Otherwise, if the first line is \input texinfo, assume it's texinfo.
- # Otherwise, guess from the file extension.
- if test -n "$set_language"; then
- language=$set_language
- elif sed 1q "$command_line_filename" | fgrep 'input texinfo' >/dev/null; then
- language=texinfo
- else
- language=
- fi
-
- # Get the type of the file (latex or texinfo) from the given language
- # we just guessed, or from the file extension if not set yet.
- case ${language:-$filename_ext} in
- [lL]a[tT]e[xX] | *.ltx | *.tex)
- # Assume a LaTeX file. LaTeX needs bibtex and uses latex for
- # compilation. No makeinfo.
- bibtex=${BIBTEX:-bibtex}
- makeinfo= # no point in running makeinfo on latex source.
- texindex=${MAKEINDEX:-makeindex}
- if test $oformat = dvi; then
- tex=${LATEX:-latex}
- else
- tex=${PDFLATEX:-pdflatex}
- fi
- ;;
-
- *)
- # Assume a Texinfo file. Texinfo files need makeinfo, texindex and tex.
- bibtex=
- texindex=${TEXINDEX:-texindex}
- if test $oformat = dvi; then
- tex=${TEX:-tex}
- else
- tex=${PDFTEX:-pdftex}
- fi
- # Unless required by the user, makeinfo expansion is wanted only
- # if texinfo.tex is too old.
- if test "$expand" = t; then
- makeinfo=${MAKEINFO:-makeinfo}
- else
- # Check if texinfo.tex performs macro expansion by looking for
- # its version. The version is a date of the form YEAR-MO-DA.
- # We don't need to use [0-9] to match the digits since anyway
- # the comparison with $txiprereq, a number, will fail with non
- # digits.
- txiversion_tex=txiversion.tex
- echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex
- # Run in the tmpdir to avoid leaving files.
- eval `cd $tmpdir >/dev/null \
- && $tex $txiversion_tex 2>/dev/null \
-| sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'`
- $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..."
- if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then
- makeinfo=
- else
- makeinfo=${MAKEINFO:-makeinfo}
- fi
- # As long as we had to run TeX, offer the user this convenience
- if test "$txiformat" = Texinfo; then
- escape=@
- fi
- fi
- ;;
- esac
-
- # Expand macro commands in the original source file using Makeinfo.
- # Always use `end' footnote style, since the `separate' style
- # generates different output (arguably this is a bug in -E).
- # Discard main info output, the user asked to run TeX, not makeinfo.
- if test -n "$makeinfo"; then
- $verbose "Macro-expanding $command_line_filename to $filename_src ..."
- sed -f $comment_iftex_sed "$command_line_filename" \
- | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \
- -o /dev/null --macro-expand=- \
- | sed -f $uncomment_iftex_sed >"$filename_src"
- filename_input=$filename_src
- fi
-
- # If makeinfo failed (or was not even run), use the original file as input.
- if test $? -ne 0 \
- || test ! -r "$filename_src"; then
- $verbose "Reverting to $command_line_filename ..."
- filename_input=$filename_dir/$filename_ext
- fi
-
- # Used most commonly for @finalout, @smallbook, etc.
- if test -n "$textra"; then
- $verbose "Inserting extra commands: $textra"
- sed '/^@setfilename/a\
-'"$textra" "$filename_input" >$filename_xtr
- filename_input=$filename_xtr
- fi
-
- # If clean mode was specified, then move to the temporary directory.
- if test "$clean" = t; then
- $verbose "cd $tmpdir_src"
- cd "$tmpdir_src" || exit 1
- fi
-
- while :; do # will break out of loop below
- orig_xref_files=`$get_xref_files "$filename_noext"`
-
- # Save copies of originals for later comparison.
- if test -n "$orig_xref_files"; then
- $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`"
- cp $orig_xref_files $tmpdir_bak
- fi
-
- # Run bibtex on current file.
- # - If its input (AUX) exists.
- # - If AUX contains both `\bibdata' and `\bibstyle'.
- # - If some citations are missing (LOG contains `Citation').
- # or the LOG complains of a missing .bbl
- #
- # We run bibtex first, because I can see reasons for the indexes
- # to change after bibtex is run, but I see no reason for the
- # converse.
- #
- # Don't try to be too smart. Running bibtex only if the bbl file
- # exists and is older than the LaTeX file is wrong, since the
- # document might include files that have changed. Because there
- # can be several AUX (if there are \include's), but a single LOG,
- # looking for missing citations in LOG is easier, though we take
- # the risk to match false messages.
- if test -n "$bibtex" \
- && test -r "$filename_noext.aux" \
- && test -r "$filename_noext.log" \
- && (grep '^\\bibdata[{]' "$filename_noext.aux" \
- && grep '^\\bibstyle[{]' "$filename_noext.aux" \
- && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \
- || grep 'No file .*\.bbl\.' "$filename_noext.log")) \
- >/dev/null 2>&1; \
- then
- $verbose "Running $bibtex $filename_noext ..."
- if $bibtex "$filename_noext" >&5; then :; else
- echo "$0: $bibtex exited with bad status, quitting." >&2
- exit 1
- fi
- fi
-
- # What we'll run texindex on -- exclude non-index files.
- # Since we know index files are last, it is correct to remove everything
- # before .aux and .?o?.
- index_files=`echo "$orig_xref_files" \
- | sed "s!.*\.aux!!g;
- s!./$filename_noext\..o.!!g;
- s/^[ ]*//;s/[ ]*$//"`
- # Run texindex (or makeindex) on current index files. If they
- # already exist, and after running TeX a first time the index
- # files don't change, then there's no reason to run TeX again.
- # But we won't know that if the index files are out of date or
- # nonexistent.
- if test -n "$texindex" && test -n "$index_files"; then
- $verbose "Running $texindex $index_files ..."
- if $texindex $index_files 2>&5 1>&2; then :; else
- echo "$0: $texindex exited with bad status, quitting." >&2
- exit 1
- fi
- fi
-
- # Finally, run TeX.
- # Prevent $ESCAPE from being interpreted by the shell if it happens
- # to be `/'.
- $batch tex_args="\\${escape}nonstopmode\ \\${escape}input"
- $verbose "Running $cmd ..."
- cmd="$tex $tex_args $filename_input"
- if $cmd >&5; then :; else
- echo "$0: $tex exited with bad status, quitting." >&2
- echo "$0: see $filename_noext.log for errors." >&2
- test "$clean" = t \
- && cp "$filename_noext.log" "$orig_pwd"
- exit 1
- fi
-
-
- # Decide if looping again is needed.
- finished=t
-
- # LaTeX (and the package changebar) report in the LOG file if it
- # should be rerun. This is needed for files included from
- # subdirs, since texi2dvi does not try to compare xref files in
- # subdirs. Performing xref files test is still good since LaTeX
- # does not report changes in xref files.
- if fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then
- finished=
- fi
-
- # Check if xref files changed.
- new_xref_files=`$get_xref_files "$filename_noext"`
- $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`"
- $verbose "New xref files = `echo $new_xref_files | sed 's|\./||g'`"
-
- # If old and new lists don't at least have the same file list,
- # then one file or another has definitely changed.
- test "x$orig_xref_files" != "x$new_xref_files" && finished=
-
- # File list is the same. We must compare each file until we find
- # a difference.
- if test -n "$finished"; then
- for this_file in $new_xref_files; do
- $verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..."
- # cmp -s returns nonzero exit status if files differ.
- if cmp -s "$this_file" "$tmpdir_bak/$this_file"; then :; else
- # We only need to keep comparing until we find one that
- # differs, because we'll have to run texindex & tex again no
- # matter how many more there might be.
- finished=
- $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..."
- test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file"
- break
- fi
- done
- fi
-
- # If finished, exit the loop, else rerun the loop.
- test -n "$finished" && break
- done
-
- # If we were in clean mode, compilation was in a tmp directory.
- # Copy the DVI (or PDF) file into the directory where the compilation
- # has been done. (The temp dir is about to get removed anyway.)
- # We also return to the original directory so that
- # - the next file is processed in correct conditions
- # - the temporary file can be removed
- if test -n "$clean"; then
- $verbose "Copying $oformat file from `pwd` to $orig_pwd"
- cp -p "./$filename_noext.$oformat" "$orig_pwd"
- cd / # in case $orig_pwd is on a different drive (for DOS)
- cd $orig_pwd || exit 1
- fi
-
- # Remove temporary files.
- if test "x$debug" = "x"; then
- $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..."
- cd /
- rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak
- fi
-done
-
-$verbose "$0 done."
-exit 0 # exit successfully, not however we ended the loop.
diff --git a/readline-4.3/doc/texi2html b/readline-4.3/doc/texi2html
deleted file mode 100755
index 7bb8493..0000000
--- a/readline-4.3/doc/texi2html
+++ /dev/null
@@ -1,5429 +0,0 @@
-#! /usr/bin/perl
-'di ';
-'ig 00 ';
-#+##############################################################################
-#
-# texi2html: Program to transform Texinfo documents to HTML
-#
-# Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-#
-#-##############################################################################
-
-# This requires perl version 5 or higher
-require 5.0;
-
-#++##############################################################################
-#
-# NOTE FOR DEBUGGING THIS SCRIPT:
-# You can run 'perl texi2html.pl' directly, provided you have
-# the environment variable T2H_HOME set to the directory containing
-# the texi2html.init file
-#
-#--##############################################################################
-
-# CVS version:
-# $Id$
-
-# Homepage:
-$T2H_HOMEPAGE = <<EOT;
-http://www.mathematik.uni-kl.de/~obachman/Texi2html
-EOT
-
-# Authors:
-$T2H_AUTHORS = <<EOT;
-Written by: Lionel Cons <Lionel.Cons\@cern.ch> (original author)
- Karl Berry <karl\@freefriends.org>
- Olaf Bachmann <obachman\@mathematik.uni-kl.de>
- and many others.
-Maintained by: Olaf Bachmann <obachman\@mathematik.uni-kl.de>
-Send bugs and suggestions to <texi2html\@mathematik.uni-kl.de>
-EOT
-
-# Version: set in configure.in
-$THISVERSION = '1.64';
-$THISPROG = "texi2html $THISVERSION"; # program name and version
-
-# The man page for this program is included at the end of this file and can be
-# viewed using the command 'nroff -man texi2html'.
-
-# Identity:
-
-$T2H_TODAY = &pretty_date; # like "20 September 1993"
-# the eval prevents this from breaking on system which do not have
-# a proper getpwuid implemented
-eval { ($T2H_USER = (getpwuid ($<))[6]) =~ s/,.*//;}; # Who am i
-
-#+++############################################################################
-# #
-# Initialization #
-# Pasted content of File $(srcdir)/texi2html.init: Default initializations #
-# #
-#---############################################################################
-
-# leave this within comments, and keep the require statement
-# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init
-# exists.
-
-#
-# -*-perl-*-
-######################################################################
-# File: texi2html.init
-#
-# Sets default values for command-line arguments and for various customizable
-# procedures
-#
-# A copy of this file is pasted into the beginning of texi2html by
-# 'make texi2html'
-#
-# Copy this file and make changes to it, if you like.
-# Afterwards, either, load it with command-line option -init_file <your_init_file>
-#
-# $Id$
-
-######################################################################
-# stuff which can also be set by command-line options
-#
-#
-# Note: values set here, overwrite values set by the command-line
-# options before -init_file and might still be overwritten by
-# command-line arguments following the -init_file option
-#
-
-# T2H_OPTIONS is a hash whose keys are the (long) names of valid
-# command-line options and whose values are a hash with the following keys:
-# type ==> one of !|=i|:i|=s|:s (see GetOpt::Long for more info)
-# linkage ==> ref to scalar, array, or subroutine (see GetOpt::Long for more info)
-# verbose ==> short description of option (displayed by -h)
-# noHelp ==> if 1 -> for "not so important options": only print description on -h 1
-# 2 -> for obsolete options: only print description on -h 2
-
-$T2H_DEBUG = 0;
-$T2H_OPTIONS -> {debug} =
-{
- type => '=i',
- linkage => \$main::T2H_DEBUG,
- verbose => 'output HTML with debuging information',
-};
-
-$T2H_DOCTYPE = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">';
-$T2H_OPTIONS -> {doctype} =
-{
- type => '=s',
- linkage => \$main::T2H_DOCTYPE,
- verbose => 'document type which is output in header of HTML files',
- noHelp => 1
-};
-
-$T2H_CHECK = 0;
-$T2H_OPTIONS -> {check} =
-{
- type => '!',
- linkage => \$main::T2H_CHECK,
- verbose => 'if set, only check files and output all things that may be Texinfo commands',
- noHelp => 1
-};
-
-# -expand
-# if set to "tex" (or, "info") expand @iftex and @tex (or, @ifinfo) sections
-# else, neither expand @iftex, @tex, nor @ifinfo sections
-$T2H_EXPAND = "info";
-$T2H_OPTIONS -> {expand} =
-{
- type => '=s',
- linkage => \$T2H_EXPAND,
- verbose => 'Expand info|tex|none section of texinfo source',
-};
-
-# - glossary
-#if set, uses section named `Footnotes' for glossary
-$T2H_USE_GLOSSARY = 0;
-T2H_OPTIONS -> {glossary} =
-{
- type => '!',
- linkage => \$T2H_USE_GLOSSARY,
- verbose => "if set, uses section named `Footnotes' for glossary",
- noHelp => 1,
-};
-
-
-# -invisible
-# $T2H_INVISIBLE_MARK is the text used to create invisible destination
-# anchors for index links (you can for instance use the invisible.xbm
-# file shipped with this program). This is a workaround for a known
-# bug of many WWW browsers, including netscape.
-# For me, it works fine without it -- on the contrary: if there, it
-# inserts space between headers and start of text (obachman 3/99)
-$T2H_INVISIBLE_MARK = '';
-# $T2H_INVISIBLE_MARK = '&#160;';
-$T2H_OPTIONS -> {invisible} =
-{
- type => '=s',
- linkage => \$T2H_INVISIBLE_MARK,
- verbose => 'use text in invisble anchot',
- noHelp => 1,
-};
-
-# -iso
-# if set, ISO8879 characters are used for special symbols (like copyright, etc)
-$T2H_USE_ISO = 0;
-$T2H_OPTIONS -> {iso} =
-{
- type => 'iso',
- linkage => \$T2H_USE_ISO,
- verbose => 'if set, ISO8879 characters are used for special symbols (like copyright, etc)',
- noHelp => 1,
-};
-
-# -I
-# list directories where @include files are searched for (besides the
-# directory of the doc file) additional '-I' args add to this list
-@T2H_INCLUDE_DIRS = (".");
-$T2H_OPTIONS -> {I} =
-{
- type => '=s',
- linkage => \@T2H_INCLUDE_DIRS,
- verbose => 'append $s to the @include search path',
-};
-
-# -top_file
-# uses file of this name for top-level file
-# extension is manipulated appropriately, if necessary.
-# If empty, <basename of document>.html is used
-# Typically, you would set this to "index.html".
-$T2H_TOP_FILE = '';
-$T2H_OPTIONS -> {top_file} =
-{
- type => '=s',
- linkage => \$T2H_TOP_FILE,
- verbose => 'use $s as top file, instead of <docname>.html',
-};
-
-
-# -toc_file
-# uses file of this name for table of contents file
-# extension is manipulated appropriately, if necessary.
-# If empty, <basename of document>_toc.html is used
-$T2H_TOC_FILE = '';
-$T2H_OPTIONS -> {toc_file} =
-{
- type => '=s',
- linkage => \$T2H_TOC_FILE,
- verbose => 'use $s as ToC file, instead of <docname>_toc.html',
-};
-
-# -frames
-# if set, output two additional files which use HTML 4.0 "frames".
-$T2H_FRAMES = 0;
-$T2H_OPTIONS -> {frames} =
-{
- type => '!',
- linkage => \$T2H_FRAMES,
- verbose => 'output files which use HTML 4.0 frames (experimental)',
- noHelp => 1,
-};
-
-
-# -menu | -nomenu
-# if set, show the Texinfo menus
-$T2H_SHOW_MENU = 1;
-$T2H_OPTIONS -> {menu} =
-{
- type => '!',
- linkage => \$T2H_SHOW_MENU,
- verbose => 'ouput Texinfo menus',
-};
-
-# -number | -nonumber
-# if set, number sections and show section names and numbers in references
-# and menus
-$T2H_NUMBER_SECTIONS = 1;
-$T2H_OPTIONS -> {number} =
-{
- type => '!',
- linkage => \$T2H_NUMBER_SECTIONS,
- verbose => 'use numbered sections'
-};
-
-# if set, and T2H_NUMBER_SECTIONS is set, then use node names in menu
-# entries, instead of section names
-$T2H_NODE_NAME_IN_MENU = 0;
-
-# if set and menu entry equals menu descr, then do not print menu descr.
-# Likewise, if node name equals entry name, do not print entry name.
-$T2H_AVOID_MENU_REDUNDANCY = 1;
-
-# -split section|chapter|none
-# if set to 'section' (resp. 'chapter') create one html file per (sub)section
-# (resp. chapter) and separate pages for Top, ToC, Overview, Index,
-# Glossary, About.
-# otherwise, create monolithic html file which contains whole document
-#$T2H_SPLIT = 'section';
-$T2H_SPLIT = '';
-$T2H_OPTIONS -> {split} =
-{
- type => '=s',
- linkage => \$T2H_SPLIT,
- verbose => 'split document on section|chapter else no splitting',
-};
-
-# -section_navigation|-no-section_navigation
-# if set, then navigation panels are printed at the beginning of each section
-# and, possibly at the end (depending on whether or not there were more than
-# $T2H_WORDS_IN_PAGE words on page
-# This is most useful if you do not want to have section navigation
-# on -split chapter
-$T2H_SECTION_NAVIGATION = 1;
-$T2H_OPTIONS -> {sec_nav} =
-{
- type => '!',
- linkage => \$T2H_SECTION_NAVIGATION,
- verbose => 'output navigation panels for each section',
-};
-
-# -subdir
-# if set put result files in this directory
-# if not set result files are put into current directory
-#$T2H_SUBDIR = 'html';
-$T2H_SUBDIR = '';
-$T2H_OPTIONS -> {subdir} =
-{
- type => '=s',
- linkage => \$T2H_SUBDIR,
- verbose => 'put HTML files in directory $s, instead of $cwd',
-};
-
-# -short_extn
-# If this is set all HTML file will have extension ".htm" instead of
-# ".html". This is helpful when shipping the document to PC systems.
-$T2H_SHORTEXTN = 0;
-$T2H_OPTIONS -> {short_ext} =
-{
- type => '!',
- linkage => \$T2H_SHORTEXTN,
- verbose => 'use "htm" extension for output HTML files',
-};
-
-
-# -prefix
-# Set the output file prefix, prepended to all .html, .gif and .pl files.
-# By default, this is the basename of the document
-$T2H_PREFIX = '';
-$T2H_OPTIONS -> {prefix} =
-{
- type => '=s',
- linkage => \$T2H_PREFIX,
- verbose => 'use as prefix for output files, instead of <docname>',
-};
-
-# -o filename
-# If set, generate monolithic document output html into $filename
-$T2H_OUT = '';
-$T2H_OPTIONS -> {out_file} =
-{
- type => '=s',
- linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';},
- verbose => 'if set, all HTML output goes into file $s',
-};
-
-# -short_ref
-#if set cross-references are given without section numbers
-$T2H_SHORT_REF = '';
-$T2H_OPTIONS -> {short_ref} =
-{
- type => '!',
- linkage => \$T2H_SHORT_REF,
- verbose => 'if set, references are without section numbers',
-};
-
-# -idx_sum
-# if value is set, then for each @prinindex $what
-# $docu_name_$what.idx is created which contains lines of the form
-# $key\t$ref sorted alphabetically (case matters)
-$T2H_IDX_SUMMARY = 0;
-$T2H_OPTIONS -> {idx_sum} =
-{
- type => '!',
- linkage => \$T2H_IDX_SUMMARY,
- verbose => 'if set, also output index summary',
- noHelp => 1,
-};
-
-# -verbose
-# if set, chatter about what we are doing
-$T2H_VERBOSE = '';
-$T2H_OPTIONS -> {Verbose} =
-{
- type => '!',
- linkage => \$T2H_VERBOSE,
- verbose => 'print progress info to stdout',
-};
-
-# -lang
-# For page titles use $T2H_WORDS->{$T2H_LANG}->{...} as title.
-# To add a new language, supply list of titles (see $T2H_WORDS below).
-# and use ISO 639 language codes (see e.g. perl module Locale-Codes-1.02
-# for definitions)
-# Default's to 'en' if not set or no @documentlanguage is specified
-$T2H_LANG = '';
-$T2H_OPTIONS -> {lang} =
-{
- type => '=s',
- linkage => sub {SetDocumentLanguage($_[1])},
- verbose => 'use $s as document language (ISO 639 encoding)',
-};
-
-# -l2h
-# if set, uses latex2html for generation of math content
-$T2H_L2H = '';
-$T2H_OPTIONS -> {l2h} =
-{
- type => '!',
- linkage => \$T2H_L2H,
- verbose => 'if set, uses latex2html for @math and @tex',
-};
-
-######################
-# The following options are only relevant if $T2H_L2H is set
-#
-# -l2h_l2h
-# name/location of latex2html progam
-$T2H_L2H_L2H = "latex2html";
-$T2H_OPTIONS -> {l2h_l2h} =
-{
- type => '=s',
- linkage => \$T2H_L2H_L2H,
- verbose => 'program to use for latex2html translation',
- noHelp => 1,
-};
-
-# -l2h_skip
-# if set, skips actual call to latex2html tries to reuse previously generated
-# content, instead
-$T2H_L2H_SKIP = '';
-$T2H_OPTIONS -> {l2h_skip} =
-{
- type => '!',
- linkage => \$T2H_L2H_SKIP,
- verbose => 'if set, tries to reuse previously latex2html output',
- noHelp => 1,
-};
-
-# -l2h_tmp
-# if set, l2h uses this directory for temporarary files. The path
-# leading to this directory may not contain a dot (i.e., a "."),
-# otherwise, l2h will fail
-$T2H_L2H_TMP = '';
-$T2H_OPTIONS -> {l2h_tmp} =
-{
- type => '=s',
- linkage => \$T2H_L2H_TMP,
- verbose => 'if set, uses $s as temporary latex2html directory',
- noHelp => 1,
-};
-
-# if set, cleans intermediate files (they all have the prefix $doc_l2h_)
-# of l2h
-$T2H_L2H_CLEAN = 1;
-$T2H_OPTIONS -> {l2h_clean} =
-{
- type => '!',
- linkage => \$T2H_L2H_CLEAN,
- verbose => 'if set, do not keep intermediate latex2html files for later reuse',
- noHelp => 1,
-};
-
-$T2H_OPTIONS -> {D} =
-{
- type => '=s',
- linkage => sub {$main::value{@_[1]} = 1;},
- verbose => 'equivalent to Texinfo "@set $s 1"',
- noHelp => 1,
-};
-
-$T2H_OPTIONS -> {init_file} =
-{
- type => '=s',
- linkage => \&LoadInitFile,
- verbose => 'load init file $s'
-};
-
-
-##############################################################################
-#
-# The following can only be set in the init file
-#
-##############################################################################
-
-# if set, center @image by default
-# otherwise, do not center by default
-$T2H_CENTER_IMAGE = 1;
-
-# used as identation for block enclosing command @example, etc
-# If not empty, must be enclosed in <td></td>
-$T2H_EXAMPLE_INDENT_CELL = '<td>&nbsp;</td>';
-# same as above, only for @small
-$T2H_SMALL_EXAMPLE_INDENT_CELL = '<td>&nbsp;</td>';
-# font size for @small
-$T2H_SMALL_FONT_SIZE = '-1';
-
-# if non-empty, and no @..heading appeared in Top node, then
-# use this as header for top node/section, otherwise use value of
-# @settitle or @shorttitle (in that order)
-$T2H_TOP_HEADING = '';
-
-# if set, use this chapter for 'Index' button, else
-# use first chapter whose name matches 'index' (case insensitive)
-$T2H_INDEX_CHAPTER = '';
-
-# if set and $T2H_SPLIT is set, then split index pages at the next letter
-# after they have more than that many entries
-$T2H_SPLIT_INDEX = 100;
-
-# if set (e.g., to index.html) replace hrefs to this file
-# (i.e., to index.html) by ./
-$T2H_HREF_DIR_INSTEAD_FILE = '';
-
-########################################################################
-# Language dependencies:
-# To add a new language extend T2H_WORDS hash and create $T2H_<...>_WORDS hash
-# To redefine one word, simply do:
-# $T2H_WORDS->{<language>}->{<word>} = 'whatever' in your personal init file.
-#
-$T2H_WORDS_EN =
-{
- # titles of pages
- 'ToC_Title' => 'Table of Contents',
- 'Overview_Title' => 'Short Table of Contents',
- 'Index_Title' => 'Index',
- 'About_Title' => 'About this document',
- 'Footnotes_Title' => 'Footnotes',
- 'See' => 'See',
- 'see' => 'see',
- 'section' => 'section',
-# If necessary, we could extend this as follows:
-# # text for buttons
-# 'Top_Button' => 'Top',
-# 'ToC_Button' => 'Contents',
-# 'Overview_Button' => 'Overview',
-# 'Index_button' => 'Index',
-# 'Back_Button' => 'Back',
-# 'FastBack_Button' => 'FastBack',
-# 'Prev_Button' => 'Prev',
-# 'Up_Button' => 'Up',
-# 'Next_Button' => 'Next',
-# 'Forward_Button' =>'Forward',
-# 'FastWorward_Button' => 'FastForward',
-# 'First_Button' => 'First',
-# 'Last_Button' => 'Last',
-# 'About_Button' => 'About'
-};
-
-$T2H_WORD_DE =
-{
- 'ToC_Title' => 'Inhaltsverzeichniss',
- 'Overview_Title' => 'Kurzes Inhaltsverzeichniss',
- 'Index_Title' => 'Index',
- 'About_Title' => '&Uuml;ber dieses Dokument',
- 'Footnotes_Title' => 'Fu&szlig;noten',
- 'See' => 'Siehe',
- 'see' => 'siehe',
- 'section' => 'Abschnitt',
-};
-
-$T2H_WORD_NL =
-{
- 'ToC_Title' => 'Inhoudsopgave',
- 'Overview_Title' => 'Korte inhoudsopgave',
- 'Index_Title' => 'Index', #Not sure ;-)
- 'About_Title' => 'No translation available!', #No translation available!
- 'Footnotes_Title' => 'No translation available!', #No translation available!
- 'See' => 'Zie',
- 'see' => 'zie',
- 'section' => 'sectie',
-};
-
-$T2H_WORD_ES =
-{
- 'ToC_Title' => '&iacute;ndice General',
- 'Overview_Title' => 'Resumen del Contenido',
- 'Index_Title' => 'Index', #Not sure ;-)
- 'About_Title' => 'No translation available!', #No translation available!
- 'Footnotes_Title' => 'Fu&szlig;noten',
- 'See' => 'V&eacute;ase',
- 'see' => 'v&eacute;ase',
- 'section' => 'secci&oacute;n',
-};
-
-$T2H_WORD_NO =
-{
- 'ToC_Title' => 'Innholdsfortegnelse',
- 'Overview_Title' => 'Kort innholdsfortegnelse',
- 'Index_Title' => 'Indeks', #Not sure ;-)
- 'About_Title' => 'No translation available!', #No translation available!
- 'Footnotes_Title' => 'No translation available!',
- 'See' => 'Se',
- 'see' => 'se',
- 'section' => 'avsnitt',
-};
-
-$T2H_WORD_PT =
-{
- 'ToC_Title' => 'Sum&aacute;rio',
- 'Overview_Title' => 'Breve Sum&aacute;rio',
- 'Index_Title' => '&Iacute;ndice', #Not sure ;-)
- 'About_Title' => 'No translation available!', #No translation available!
- 'Footnotes_Title' => 'No translation available!',
- 'See' => 'Veja',
- 'see' => 'veja',
- 'section' => 'Se&ccedil;&atilde;o',
-};
-
-$T2H_WORDS =
-{
- 'en' => $T2H_WORDS_EN,
- 'de' => $T2H_WORDS_DE,
- 'nl' => $T2H_WORDS_NL,
- 'es' => $T2H_WORDS_ES,
- 'no' => $T2H_WORDS_NO,
- 'pt' => $T2H_WORDS_PT
-};
-
-@MONTH_NAMES_EN =
-(
- 'January', 'February', 'March', 'April', 'May',
- 'June', 'July', 'August', 'September', 'October',
- 'November', 'December'
-);
-
-@MONTH_NAMES_DE =
-(
- 'Januar', 'Februar', 'M&auml;rz', 'April', 'Mai',
- 'Juni', 'Juli', 'August', 'September', 'Oktober',
- 'November', 'Dezember'
-);
-
-@MONTH_NAMES_NL =
-(
- 'Januari', 'Februari', 'Maart', 'April', 'Mei',
- 'Juni', 'Juli', 'Augustus', 'September', 'Oktober',
- 'November', 'December'
-);
-
-@MONTH_NAMES_ES =
-(
- 'enero', 'febrero', 'marzo', 'abril', 'mayo',
- 'junio', 'julio', 'agosto', 'septiembre', 'octubre',
- 'noviembre', 'diciembre'
-);
-
-@MONTH_NAMES_NO =
-(
-
- 'januar', 'februar', 'mars', 'april', 'mai',
- 'juni', 'juli', 'august', 'september', 'oktober',
- 'november', 'desember'
-);
-
-@MONTH_NAMES_PT =
-(
- 'Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio',
- 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro',
- 'Novembro', 'Dezembro'
-);
-
-
-$MONTH_NAMES =
-{
- 'en' => \@MONTH_NAMES_EN,
- 'de' => \@MONTH_NAMES_DE,
- 'es' => \@MONTH_NAMES_ES,
- 'nl' => \@MONTH_NAMES_NL,
- 'no' => \@MONTH_NAMES_NO,
- 'pt' => \@MONTH_NAMES_PT
-};
-########################################################################
-# Control of Page layout:
-# You can make changes of the Page layout at two levels:
-# 1.) For small changes, it is often enough to change the value of
-# some global string/hash/array variables
-# 2.) For larger changes, reimplement one of the T2H_DEFAULT_<fnc>* routines,
-# give them another name, and assign them to the respective
-# $T2H_<fnc> variable.
-
-# As a general interface, the hashes T2H_HREF, T2H_NAME, T2H_NODE hold
-# href, html-name, node-name of
-# This -- current section (resp. html page)
-# Top -- top page ($T2H_TOP_FILE)
-# Contents -- Table of contents
-# Overview -- Short table of contents
-# Index -- Index page
-# About -- page which explain "navigation buttons"
-# First -- first node
-# Last -- last node
-#
-# Whether or not the following hash values are set, depends on the context
-# (all values are w.r.t. 'This' section)
-# Next -- next node of texinfo
-# Prev -- previous node of texinfo
-# Up -- up node of texinfo
-# Forward -- next node in reading order
-# Back -- previous node in reading order
-# FastForward -- if leave node, up and next, else next node
-# FastBackward-- if leave node, up and prev, else prev node
-#
-# Furthermore, the following global variabels are set:
-# $T2H_THISDOC{title} -- title as set by @setttile
-# $T2H_THISDOC{fulltitle} -- full title as set by @title...
-# $T2H_THISDOC{subtitle} -- subtitle as set by @subtitle
-# $T2H_THISDOC{author} -- author as set by @author
-#
-# and pointer to arrays of lines which need to be printed by t2h_print_lines
-# $T2H_OVERVIEW -- lines of short table of contents
-# $T2H_TOC -- lines of table of contents
-# $T2H_TOP -- lines of Top texinfo node
-# $T2H_THIS_SECTION -- lines of 'This' section
-
-#
-# There are the following subs which control the layout:
-#
-$T2H_print_section = \&T2H_DEFAULT_print_section;
-$T2H_print_Top_header = \&T2H_DEFAULT_print_Top_header;
-$T2H_print_Top_footer = \&T2H_DEFAULT_print_Top_footer;
-$T2H_print_Top = \&T2H_DEFAULT_print_Top;
-$T2H_print_Toc = \&T2H_DEFAULT_print_Toc;
-$T2H_print_Overview = \&T2H_DEFAULT_print_Overview;
-$T2H_print_Footnotes = \&T2H_DEFAULT_print_Footnotes;
-$T2H_print_About = \&T2H_DEFAULT_print_About;
-$T2H_print_misc_header = \&T2H_DEFAULT_print_misc_header;
-$T2H_print_misc_footer = \&T2H_DEFAULT_print_misc_footer;
-$T2H_print_misc = \&T2H_DEFAULT_print_misc;
-$T2H_print_chapter_header = \&T2H_DEFAULT_print_chapter_header;
-$T2H_print_chapter_footer = \&T2H_DEFAULT_print_chapter_footer;
-$T2H_print_page_head = \&T2H_DEFAULT_print_page_head;
-$T2H_print_page_foot = \&T2H_DEFAULT_print_page_foot;
-$T2H_print_head_navigation = \&T2H_DEFAULT_print_head_navigation;
-$T2H_print_foot_navigation = \&T2H_DEFAULT_print_foot_navigation;
-$T2H_button_icon_img = \&T2H_DEFAULT_button_icon_img;
-$T2H_print_navigation = \&T2H_DEFAULT_print_navigation;
-$T2H_about_body = \&T2H_DEFAULT_about_body;
-$T2H_print_frame = \&T2H_DEFAULT_print_frame;
-$T2H_print_toc_frame = \&T2H_DEFAULT_print_toc_frame;
-
-########################################################################
-# Layout for html for every sections
-#
-sub T2H_DEFAULT_print_section
-{
- my $fh = shift;
- local $T2H_BUTTONS = \@T2H_SECTION_BUTTONS;
- &$T2H_print_head_navigation($fh) if $T2H_SECTION_NAVIGATION;
- my $nw = t2h_print_lines($fh);
- if ($T2H_SPLIT eq 'section' && $T2H_SECTION_NAVIGATION)
- {
- &$T2H_print_foot_navigation($fh, $nw);
- }
- else
- {
- print $fh '<HR SIZE="6">' . "\n";
- }
-}
-
-###################################################################
-# Layout of top-page I recommend that you use @ifnothtml, @ifhtml,
-# @html within the Top texinfo node to specify content of top-level
-# page.
-#
-# If you enclose everything in @ifnothtml, then title, subtitle,
-# author and overview is printed
-# T2H_HREF of Next, Prev, Up, Forward, Back are not defined
-# if $T2H_SPLIT then Top page is in its own html file
-sub T2H_DEFAULT_print_Top_header
-{
- &$T2H_print_page_head(@_) if $T2H_SPLIT;
- t2h_print_label(@_); # this needs to be called, otherwise no label set
- &$T2H_print_head_navigation(@_);
-}
-sub T2H_DEFAULT_print_Top_footer
-{
- &$T2H_print_foot_navigation(@_);
- &$T2H_print_page_foot(@_) if $T2H_SPLIT;
-}
-sub T2H_DEFAULT_print_Top
-{
- my $fh = shift;
-
- # for redefining navigation buttons use:
- # local $T2H_BUTTONS = [...];
- # as it is, 'Top', 'Contents', 'Index', 'About' are printed
- local $T2H_BUTTONS = \@T2H_MISC_BUTTONS;
- &$T2H_print_Top_header($fh);
- if ($T2H_THIS_SECTION)
- {
- # if top-level node has content, then print it with extra header
- print $fh "<H1>$T2H_NAME{Top}</H1>"
- unless ($T2H_HAS_TOP_HEADING);
- t2h_print_lines($fh, $T2H_THIS_SECTION)
- }
- else
- {
- # top-level node is fully enclosed in @ifnothtml
- # print fulltitle, subtitle, author, Overview
- print $fh
- "<CENTER>\n<H1>" .
- join("</H1>\n<H1>", split(/\n/, $T2H_THISDOC{fulltitle})) .
- "</H1>\n";
- print $fh "<H2>$T2H_THISDOC{subtitle}</H2>\n" if $T2H_THISDOC{subtitle};
- print $fh "$T2H_THISDOC{author}\n" if $T2H_THISDOC{author};
- print $fh <<EOT;
-</CENTER>
-<HR>
-<P></P>
-<H2> Overview: </H2>
-<BLOCKQUOTE>
-EOT
- t2h_print_lines($fh, $T2H_OVERVIEW);
- print $fh "</BLOCKQUOTE>\n";
- }
- &$T2H_print_Top_footer($fh);
-}
-
-###################################################################
-# Layout of Toc, Overview, and Footnotes pages
-# By default, we use "normal" layout
-# T2H_HREF of Next, Prev, Up, Forward, Back, etc are not defined
-# use: local $T2H_BUTTONS = [...] to redefine navigation buttons
-sub T2H_DEFAULT_print_Toc
-{
- return &$T2H_print_misc(@_);
-}
-sub T2H_DEFAULT_print_Overview
-{
- return &$T2H_print_misc(@_);
-}
-sub T2H_DEFAULT_print_Footnotes
-{
- return &$T2H_print_misc(@_);
-}
-sub T2H_DEFAULT_print_About
-{
- return &$T2H_print_misc(@_);
-}
-
-sub T2H_DEFAULT_print_misc_header
-{
- &$T2H_print_page_head(@_) if $T2H_SPLIT;
- # this needs to be called, otherwise, no labels are set
- t2h_print_label(@_);
- &$T2H_print_head_navigation(@_);
-}
-sub T2H_DEFAULT_print_misc_footer
-{
- &$T2H_print_foot_navigation(@_);
- &$T2H_print_page_foot(@_) if $T2H_SPLIT;
-}
-sub T2H_DEFAULT_print_misc
-{
- my $fh = shift;
- local $T2H_BUTTONS = \@T2H_MISC_BUTTONS;
- &$T2H_print_misc_header($fh);
- print $fh "<H1>$T2H_NAME{This}</H1>\n";
- t2h_print_lines($fh);
- &$T2H_print_misc_footer($fh);
-}
-
-###################################################################
-# chapter_header and chapter_footer are only called if
-# T2H_SPLIT eq 'chapter'
-# chapter_header: after print_page_header, before print_section
-# chapter_footer: after print_section of last section, before print_page_footer
-#
-# If you want to get rid of navigation stuff after each section,
-# redefine print_section such that it does not call print_navigation,
-# and put print_navigation into print_chapter_header
-@T2H_CHAPTER_BUTTONS =
- (
- 'FastBack', 'FastForward', ' ',
- ' ', ' ', ' ', ' ',
- 'Top', 'Contents', 'Index', 'About',
- );
-
-sub T2H_DEFAULT_print_chapter_header
-{
- # nothing to do there, by default
- if (! $T2H_SECTION_NAVIGATION)
- {
- my $fh = shift;
- local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS;
- &$T2H_print_navigation($fh);
- print $fh "\n<HR SIZE=2>\n";
- }
-}
-
-sub T2H_DEFAULT_print_chapter_footer
-{
- local $T2H_BUTTONS = \@T2H_CHAPTER_BUTTONS;
- &$T2H_print_navigation(@_);
-}
-###################################################################
-$T2H_TODAY = &pretty_date; # like "20 September 1993"
-
-sub pretty_date {
- local($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
-
- ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
- $year += ($year < 70) ? 2000 : 1900;
- # obachman: Let's do it as the Americans do
- return($MONTH_NAMES->{$T2H_LANG}[$mon] . ", " . $mday . " " . $year);
-}
-
-
-###################################################################
-# Layout of standard header and footer
-#
-
-# Set the default body text, inserted between <BODY ... >
-###$T2H_BODYTEXT = 'LANG="EN" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"';
-$T2H_BODYTEXT = 'LANG="' . $T2H_LANG . '" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"';
-# text inserted after <BODY ...>
-$T2H_AFTER_BODY_OPEN = '';
-#text inserted before </BODY>
-$T2H_PRE_BODY_CLOSE = '';
-# this is used in footer
-$T2H_ADDRESS = "by <I>$T2H_USER</I> " if $T2H_USER;
-$T2H_ADDRESS .= "on <I>$T2H_TODAY</I>";
-# this is added inside <HEAD></HEAD> after <TITLE> and some META NAME stuff
-# can be used for <style> <script>, <meta> tags
-$T2H_EXTRA_HEAD = '';
-
-sub T2H_DEFAULT_print_page_head
-{
- my $fh = shift;
- my $longtitle = "$T2H_THISDOC{title}: $T2H_NAME{This}";
- print $fh <<EOT;
-<HTML>
-$T2H_DOCTYPE
-<!-- Created on $T2H_TODAY by $THISPROG -->
-<!--
-$T2H_AUTHORS
--->
-<HEAD>
-<TITLE>$longtitle</TITLE>
-
-<META NAME="description" CONTENT="$longtitle">
-<META NAME="keywords" CONTENT="$longtitle">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="$THISPROG">
-$T2H_EXTRA_HEAD
-</HEAD>
-
-<BODY $T2H_BODYTEXT>
-$T2H_AFTER_BODY_OPEN
-EOT
-}
-
-sub T2H_DEFAULT_print_page_foot
-{
- my $fh = shift;
- print $fh <<EOT;
-<BR>
-<FONT SIZE="-1">
-This document was generated
-$T2H_ADDRESS
-using <A HREF="$T2H_HOMEPAGE"><I>texi2html</I></A>
-$T2H_PRE_BODY_CLOSE
-</BODY>
-</HTML>
-EOT
-}
-
-###################################################################
-# Layout of navigation panel
-
-# if this is set, then a vertical navigation panel is used
-$T2H_VERTICAL_HEAD_NAVIGATION = 0;
-sub T2H_DEFAULT_print_head_navigation
-{
- my $fh = shift;
- if ($T2H_VERTICAL_HEAD_NAVIGATION)
- {
- print $fh <<EOT;
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
-<TR VALIGN="TOP">
-<TD ALIGN="LEFT">
-EOT
- }
- &$T2H_print_navigation($fh, $T2H_VERTICAL_HEAD_NAVIGATION);
- if ($T2H_VERTICAL_HEAD_NAVIGATION)
- {
- print $fh <<EOT;
-</TD>
-<TD ALIGN="LEFT">
-EOT
- }
- elsif ($T2H_SPLIT eq 'section')
- {
- print $fh "<HR SIZE=1>\n";
- }
-}
-
-# Specifies the minimum page length required before a navigation panel
-# is placed at the bottom of a page (the default is that of latex2html)
-# T2H_THIS_WORDS_IN_PAGE holds number of words of current page
-$T2H_WORDS_IN_PAGE = 300;
-sub T2H_DEFAULT_print_foot_navigation
-{
- my $fh = shift;
- my $nwords = shift;
- if ($T2H_VERTICAL_HEAD_NAVIGATION)
- {
- print $fh <<EOT;
-</TD>
-</TR>
-</TABLE>
-EOT
- }
- print $fh "<HR SIZE=1>\n";
- &$T2H_print_navigation($fh) if ($nwords >= $T2H_WORDS_IN_PAGE)
-}
-
-######################################################################
-# navigation panel
-#
-# specify in this array which "buttons" should appear in which order
-# in the navigation panel for sections; use ' ' for empty buttons (space)
-@T2H_SECTION_BUTTONS =
- (
- 'Back', 'Forward', ' ', 'FastBack', 'Up', 'FastForward',
- ' ', ' ', ' ', ' ',
- 'Top', 'Contents', 'Index', 'About',
- );
-
-# buttons for misc stuff
-@T2H_MISC_BUTTONS = ('Top', 'Contents', 'Index', 'About');
-
-# insert here name of icon images for buttons
-# Icons are used, if $T2H_ICONS and resp. value are set
-%T2H_ACTIVE_ICONS =
- (
- 'Top', '',
- 'Contents', '',
- 'Overview', '',
- 'Index', '',
- 'Back', '',
- 'FastBack', '',
- 'Prev', '',
- 'Up', '',
- 'Next', '',
- 'Forward', '',
- 'FastForward', '',
- 'About' , '',
- 'First', '',
- 'Last', '',
- ' ', ''
- );
-
-# insert here name of icon images for these, if button is inactive
-%T2H_PASSIVE_ICONS =
- (
- 'Top', '',
- 'Contents', '',
- 'Overview', '',
- 'Index', '',
- 'Back', '',
- 'FastBack', '',
- 'Prev', '',
- 'Up', '',
- 'Next', '',
- 'Forward', '',
- 'FastForward', '',
- 'About', '',
- 'First', '',
- 'Last', '',
- );
-
-# how to create IMG tag
-sub T2H_DEFAULT_button_icon_img
-{
- my $button = shift;
- my $icon = shift;
- my $name = shift;
- return qq{<IMG SRC="$icon" BORDER="0" ALT="$button: $name" ALIGN="MIDDLE">};
-}
-
-# Names of text as alternative for icons
-%T2H_NAVIGATION_TEXT =
- (
- 'Top', 'Top',
- 'Contents', 'Contents',
- 'Overview', 'Overview',
- 'Index', 'Index',
- ' ', ' &nbsp; ',
- 'Back', ' &lt; ',
- 'FastBack', ' &lt;&lt; ',
- 'Prev', 'Prev',
- 'Up', ' Up ',
- 'Next', 'Next',
- 'Forward', ' &gt; ',
- 'FastForward', ' &gt;&gt; ',
- 'About', ' ? ',
- 'First', ' |&lt; ',
- 'Last', ' &gt;| '
- );
-
-sub T2H_DEFAULT_print_navigation
-{
- my $fh = shift;
- my $vertical = shift;
- my $spacing = 1;
- print $fh "<TABLE CELLPADDING=$spacing CELLSPACING=$spacing BORDER=0>\n";
-
- print $fh "<TR>" unless $vertical;
- for $button (@$T2H_BUTTONS)
- {
- print $fh qq{<TR VALIGN="TOP" ALIGN="LEFT">\n} if $vertical;
- print $fh qq{<TD VALIGN="MIDDLE" ALIGN="LEFT">};
-
- if (ref($button) eq 'CODE')
- {
- &$button($fh, $vertical);
- }
- elsif ($button eq ' ')
- { # handle space button
- print $fh
- $T2H_ICONS && $T2H_ACTIVE_ICONS{' '} ?
- &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{' '}) :
- $T2H_NAVIGATION_TEXT{' '};
- next;
- }
- elsif ($T2H_HREF{$button})
- { # button is active
- print $fh
- $T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ? # use icon ?
- t2h_anchor('', $T2H_HREF{$button}, # yes
- &$T2H_button_icon_img($button,
- $T2H_ACTIVE_ICONS{$button},
- $T2H_NAME{$button}))
- : # use text
- "[" .
- t2h_anchor('', $T2H_HREF{$button}, $T2H_NAVIGATION_TEXT{$button}) .
- "]";
- }
- else
- { # button is passive
- print $fh
- $T2H_ICONS && $T2H_PASSIVE_ICONS{$button} ?
- &$T2H_button_icon_img($button,
- $T2H_PASSIVE_ICONS{$button},
- $T2H_NAME{$button}) :
-
- "[" . $T2H_NAVIGATION_TEXT{$button} . "]";
- }
- print $fh "</TD>\n";
- print $fh "</TR>\n" if $vertical;
- }
- print $fh "</TR>" unless $vertical;
- print $fh "</TABLE>\n";
-}
-
-######################################################################
-# Frames: this is from "Richard Y. Kim" <ryk@coho.net>
-# Should be improved to be more conforming to other _print* functions
-
-sub T2H_DEFAULT_print_frame
-{
- my $fh = shift;
- print $fh <<EOT;
-<HTML>
-<HEAD><TITLE>$T2H_THISDOC{title}</TITLE></HEAD>
-<FRAMESET cols="140,*">
- <FRAME name=toc src="$docu_toc_frame_file">
- <FRAME name=main src="$docu_doc">
-</FRAMESET>
-</HTML>
-EOT
-}
-
-sub T2H_DEFAULT_print_toc_frame
-{
- my $fh = shift;
- &$T2H_print_page_head($fh);
- print $fh <<EOT;
-<H2>Content</H2>
-EOT
- print $fh map {s/HREF=/target=\"main\" HREF=/; $_;} @stoc_lines;
- print $fh "</BODY></HTML>\n";
-}
-
-######################################################################
-# About page
-#
-
-# T2H_PRE_ABOUT might be a function
-$T2H_PRE_ABOUT = <<EOT;
-This document was generated $T2H_ADDRESS
-using <A HREF="$T2H_HOMEPAGE"><I>texi2html</I></A>
-<P></P>
-EOT
-$T2H_AFTER_ABOUT = '';
-
-sub T2H_DEFAULT_about_body
-{
- my $about;
- if (ref($T2H_PRE_ABOUT) eq 'CODE')
- {
- $about = &$T2H_PRE_ABOUT();
- }
- else
- {
- $about = $T2H_PRE_ABOUT;
- }
- $about .= <<EOT;
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-EOT
-
- for $button (@T2H_SECTION_BUTTONS)
- {
- next if $button eq ' ' || ref($button) eq 'CODE';
- $about .= <<EOT;
-<TR>
-<TD ALIGN="CENTER">
-EOT
- $about .=
- ($T2H_ICONS && $T2H_ACTIVE_ICONS{$button} ?
- &$T2H_button_icon_img($button, $T2H_ACTIVE_ICONS{$button}) :
- " [" . $T2H_NAVIGATION_TEXT{$button} . "] ");
- $about .= <<EOT;
-</TD>
-<TD ALIGN="CENTER">
-$button
-</TD>
-<TD>
-$T2H_BUTTONS_GOTO{$button}
-</TD>
-<TD>
-$T2H_BUTTONS_EXAMPLE{$button}
-</TD>
-</TR>
-EOT
- }
-
- $about .= <<EOT;
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
-the following structure:
-<UL>
-<LI> 1. Section One </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-$T2H_AFTER_ABOUT
-EOT
- return $about;
-}
-
-
-%T2H_BUTTONS_GOTO =
- (
- 'Top', 'cover (top) of document',
- 'Contents', 'table of contents',
- 'Overview', 'short table of contents',
- 'Index', 'concept index',
- 'Back', 'previous section in reading order',
- 'FastBack', 'previous or up-and-previous section ',
- 'Prev', 'previous section same level',
- 'Up', 'up section',
- 'Next', 'next section same level',
- 'Forward', 'next section in reading order',
- 'FastForward', 'next or up-and-next section',
- 'About' , 'this page',
- 'First', 'first section in reading order',
- 'Last', 'last section in reading order',
- );
-
-%T2H_BUTTONS_EXAMPLE =
-(
- 'Top', ' &nbsp; ',
- 'Contents', ' &nbsp; ',
- 'Overview', ' &nbsp; ',
- 'Index', ' &nbsp; ',
- 'Back', '1.2.2',
- 'FastBack', '1.1',
- 'Prev', '1.2.2',
- 'Up', '1.2',
- 'Next', '1.2.4',
- 'Forward', '1.2.4',
- 'FastForward', '1.3',
- 'About', ' &nbsp; ',
- 'First', '1.',
- 'Last', '1.2.4',
-);
-
-
-######################################################################
-# from here on, its l2h init stuff
-#
-
-## initialization for latex2html as for Singular manual generation
-## obachman 3/99
-
-#
-# Options controlling Titles, File-Names, Tracing and Sectioning
-#
-$TITLE = '';
-
-$SHORTEXTN = 0;
-
-$LONG_TITLES = 0;
-
-$DESTDIR = ''; # should be overwritten by cmd-line argument
-
-$NO_SUBDIR = 0;# should be overwritten by cmd-line argument
-
-$PREFIX = ''; # should be overwritten by cmd-line argument
-
-$AUTO_PREFIX = 0; # this is needed, so that prefix settings are used
-
-$AUTO_LINK = 0;
-
-$SPLIT = 0;
-
-$MAX_LINK_DEPTH = 0;
-
-$TMP = ''; # should be overwritten by cmd-line argument
-
-$DEBUG = 0;
-
-$VERBOSE = 1;
-
-#
-# Options controlling Extensions and Special Features
-#
-$HTML_VERSION = "3.2";
-
-$TEXDEFS = 1; # we absolutely need that
-
-$EXTERNAL_FILE = '';
-
-$SCALABLE_FONTS = 1;
-
-$NO_SIMPLE_MATH = 1;
-
-$LOCAL_ICONS = 1;
-
-$SHORT_INDEX = 0;
-
-$NO_FOOTNODE = 1;
-
-$ADDRESS = '';
-
-$INFO = '';
-
-#
-# Switches controlling Image Generation
-#
-$ASCII_MODE = 0;
-
-$NOLATEX = 0;
-
-$EXTERNAL_IMAGES = 0;
-
-$PS_IMAGES = 0;
-
-$NO_IMAGES = 0;
-
-$IMAGES_ONLY = 0;
-
-$REUSE = 2;
-
-$ANTI_ALIAS = 1;
-
-$ANTI_ALIAS_TEXT = 1;
-
-#
-#Switches controlling Navigation Panels
-#
-$NO_NAVIGATION = 1;
-$ADDRESS = '';
-$INFO = 0; # 0 = do not make a "About this document..." section
-
-#
-#Switches for Linking to other documents
-#
-# actuall -- we don't care
-
-$MAX_SPLIT_DEPTH = 0; # Stop making separate files at this depth
-
-$MAX_LINK_DEPTH = 0; # Stop showing child nodes at this depth
-
-$NOLATEX = 0; # 1 = do not pass unknown environments to Latex
-
-$EXTERNAL_IMAGES = 0; # 1 = leave the images outside the document
-
-$ASCII_MODE = 0; # 1 = do not use any icons or internal images
-
-# 1 = use links to external postscript images rather than inlined bitmap
-# images.
-$PS_IMAGES = 0;
-$SHOW_SECTION_NUMBERS = 0;
-
-### Other global variables ###############################################
-$CHILDLINE = "";
-
-# This is the line width measured in pixels and it is used to right justify
-# equations and equation arrays;
-$LINE_WIDTH = 500;
-
-# Used in conjunction with AUTO_NAVIGATION
-$WORDS_IN_PAGE = 300;
-
-# Affects ONLY the way accents are processed
-$default_language = 'english';
-
-# The value of this variable determines how many words to use in each
-# title that is added to the navigation panel (see below)
-#
-$WORDS_IN_NAVIGATION_PANEL_TITLES = 0;
-
-# This number will determine the size of the equations, special characters,
-# and anything which will be converted into an inlined image
-# *except* "image generating environments" such as "figure", "table"
-# or "minipage".
-# Effective values are those greater than 0.
-# Sensible values are between 0.1 - 4.
-$MATH_SCALE_FACTOR = 1.5;
-
-# This number will determine the size of
-# image generating environments such as "figure", "table" or "minipage".
-# Effective values are those greater than 0.
-# Sensible values are between 0.1 - 4.
-$FIGURE_SCALE_FACTOR = 1.6;
-
-
-# If both of the following two variables are set then the "Up" button
-# of the navigation panel in the first node/page of a converted document
-# will point to $EXTERNAL_UP_LINK. $EXTERNAL_UP_TITLE should be set
-# to some text which describes this external link.
-$EXTERNAL_UP_LINK = "";
-$EXTERNAL_UP_TITLE = "";
-
-# If this is set then the resulting HTML will look marginally better if viewed
-# with Netscape.
-$NETSCAPE_HTML = 1;
-
-# Valid paper sizes are "letter", "legal", "a4","a3","a2" and "a0"
-# Paper sizes has no effect other than in the time it takes to create inlined
-# images and in whether large images can be created at all ie
-# - larger paper sizes *MAY* help with large image problems
-# - smaller paper sizes are quicker to handle
-$PAPERSIZE = "a4";
-
-# Replace "english" with another language in order to tell LaTeX2HTML that you
-# want some generated section titles (eg "Table of Contents" or "References")
-# to appear in a different language. Currently only "english" and "french"
-# is supported but it is very easy to add your own. See the example in the
-# file "latex2html.config"
-$TITLES_LANGUAGE = "english";
-
-1; # This must be the last non-comment line
-
-# End File texi2html.init
-######################################################################
-
-
-require "$ENV{T2H_HOME}/texi2html.init"
- if ($0 =~ /\.pl$/ &&
- -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init");
-
-#+++############################################################################
-# #
-# Initialization #
-# Pasted content of File $(srcdir)/MySimple.pm: Command-line processing #
-# #
-#---############################################################################
-
-# leave this within comments, and keep the require statement
-# This way, you can directly run texi2html.pl, if $ENV{T2H_HOME}/texi2html.init
-# exists.
-
-#
-package Getopt::MySimple;
-
-# Name:
-# Getopt::MySimple.
-#
-# Documentation:
-# POD-style (incomplete) documentation is in file MySimple.pod
-#
-# Tabs:
-# 4 spaces || die.
-#
-# Author:
-# Ron Savage rpsavage@ozemail.com.au.
-# 1.00 19-Aug-97 Initial version.
-# 1.10 13-Oct-97 Add arrays of switches (eg '=s@').
-# 1.20 3-Dec-97 Add 'Help' on a per-switch basis.
-# 1.30 11-Dec-97 Change 'Help' to 'verbose'. Make all hash keys lowercase.
-# 1.40 10-Nov-98 Change width of help report. Restructure tests.
-# 1-Jul-00 Modifications for Texi2html
-
-# --------------------------------------------------------------------------
-# Locally modified by obachman (Display type instead of env, order by cmp)
-# $Id$
-
-# use strict;
-# no strict 'refs';
-
-use vars qw(@EXPORT @EXPORT_OK @ISA);
-use vars qw($fieldWidth $opt $VERSION);
-
-use Exporter();
-use Getopt::Long;
-
-@ISA = qw(Exporter);
-@EXPORT = qw();
-@EXPORT_OK = qw($opt); # An alias for $self -> {'opt'}.
-
-# --------------------------------------------------------------------------
-
-$fieldWidth = 20;
-$VERSION = '1.41';
-
-# --------------------------------------------------------------------------
-
-sub byOrder
-{
- my($self) = @_;
-
- return uc($a) cmp (uc($b));
-}
-
-# --------------------------------------------------------------------------
-
-sub dumpOptions
-{
- my($self) = @_;
-
- print 'Option', ' ' x ($fieldWidth - length('Option') ), "Value\n";
-
- for (sort byOrder keys(%{$self -> {'opt'} }) )
- {
- print "-$_", ' ' x ($fieldWidth - (1 + length) ), "${$self->{'opt'} }{$_}\n";
- }
-
- print "\n";
-
-} # End of dumpOptions.
-
-# --------------------------------------------------------------------------
-# Return:
-# 0 -> Error.
-# 1 -> Ok.
-
-sub getOptions
-{
- push(@_, 0) if ($#_ == 2); # Default for $ignoreCase is 0.
- push(@_, 1) if ($#_ == 3); # Default for $helpThenExit is 1.
-
- my($self, $default, $helpText, $versionText,
- $helpThenExit, $versionThenExit, $ignoreCase) = @_;
-
- $helpThenExit = 1 unless (defined($helpThenExit));
- $versionThenExit = 1 unless (defined($versionThenExit));
- $ignoreCase = 0 unless (defined($ignoreCase));
-
- $self -> {'default'} = $default;
- $self -> {'helpText'} = $helpText;
- $self -> {'versionText'} = $versionText;
- $Getopt::Long::ignorecase = $ignoreCase;
-
- unless (defined($self -> {'default'}{'help'}))
- {
- $self -> {'default'}{'help'} =
- {
- type => ':i',
- default => '',
- linkage => sub {$self->helpOptions($_[1]); exit (0) if $helpThenExit;},
- verbose => "print help and exit"
- };
- }
-
- unless (defined($self -> {'default'}{'version'}))
- {
- $self -> {'default'}{'version'} =
- {
- type => '',
- default => '',
- linkage => sub {print $self->{'versionText'}; exit (0) if versionTheExit;},
- verbose => "print version and exit"
- };
- }
-
- for (keys(%{$self -> {'default'} }) )
- {
- my $type = ${$self -> {'default'} }{$_}{'type'};
- push(@{$self -> {'type'} }, "$_$type");
- $self->{'opt'}->{$_} = ${$self -> {'default'} }{$_}{'linkage'}
- if ${$self -> {'default'} }{$_}{'linkage'};
- }
-
- my($result) = &GetOptions($self -> {'opt'}, @{$self -> {'type'} });
-
- return $result unless $result;
-
- for (keys(%{$self -> {'default'} }) )
- {
- if (! defined(${$self -> {'opt'} }{$_})) #{
- {
- ${$self -> {'opt'} }{$_} = ${$self -> {'default'} }{$_}{'default'};
- }
- }
-
- $result;
-} # End of getOptions.
-
-# --------------------------------------------------------------------------
-
-sub helpOptions
-{
- my($self) = shift;
- my($noHelp) = shift;
- $noHelp = 0 unless $noHelp;
- my($optwidth, $typewidth, $defaultwidth, $maxlinewidth, $valind, $valwidth)
- = (10, 5, 9, 78, 4, 11);
-
- print "$self->{'helpText'}" if ($self -> {'helpText'});
-
- print ' Option', ' ' x ($optwidth - length('Option') -1 ),
- 'Type', ' ' x ($typewidth - length('Type') + 1),
- 'Default', ' ' x ($defaultwidth - length('Default') ),
- "Description\n";
-
- for (sort byOrder keys(%{$self -> {'default'} }) )
- {
- my($line, $help, $option, $val);
- $option = $_;
- next if ${$self->{'default'} }{$_}{'noHelp'} && ${$self->{'default'} }{$_}{'noHelp'} > $noHelp;
- $line = " -$_ " . ' ' x ($optwidth - (2 + length) ) .
- "${$self->{'default'} }{$_}{'type'} ".
- ' ' x ($typewidth - (1+length(${$self -> {'default'} }{$_}{'type'}) ));
-
- $val = ${$self->{'default'} }{$_}{'linkage'};
- if ($val)
- {
- if (ref($val) eq 'SCALAR')
- {
- $val = $$val;
- }
- else
- {
- $val = '';
- }
- }
- else
- {
- $val = ${$self->{'default'} }{$_}{'default'};
- }
- $line .= "$val ";
- $line .= ' ' x ($optwidth + $typewidth + $defaultwidth + 1 - length($line));
-
- if (defined(${$self -> {'default'} }{$_}{'verbose'}) &&
- ${$self -> {'default'} }{$_}{'verbose'} ne '')
- {
- $help = "${$self->{'default'} }{$_}{'verbose'}";
- }
- else
- {
- $help = ' ';
- }
- if ((length("$line") + length($help)) < $maxlinewidth)
- {
- print $line , $help, "\n";
- }
- else
- {
- print $line, "\n", ' ' x $valind, $help, "\n";
- }
- for $val (sort byOrder keys(%{${$self->{'default'}}{$option}{'values'}}))
- {
- print ' ' x ($valind + 2);
- print $val, ' ', ' ' x ($valwidth - length($val) - 2);
- print ${$self->{'default'}}{$option}{'values'}{$val}, "\n";
- }
- }
-
- print <<EOT;
-Note: 'Options' may be abbreviated. 'Type' specifications mean:
- <none>| ! no argument: variable is set to 1 on -foo (or, to 0 on -nofoo)
- =s | :s mandatory (or, optional) string argument
- =i | :i mandatory (or, optional) integer argument
-EOT
-} # End of helpOptions.
-
-#-------------------------------------------------------------------
-
-sub new
-{
- my($class) = @_;
- my($self) = {};
- $self -> {'default'} = {};
- $self -> {'helpText'} = '';
- $self -> {'opt'} = {};
- $opt = $self -> {'opt'}; # An alias for $self -> {'opt'}.
- $self -> {'type'} = ();
-
- return bless $self, $class;
-
-} # End of new.
-
-# --------------------------------------------------------------------------
-
-1;
-
-# End MySimple.pm
-
-require "$ENV{T2H_HOME}/MySimple.pm"
- if ($0 =~ /\.pl$/ &&
- -e "$ENV{T2H_HOME}/texi2html.init" && -r "$ENV{T2H_HOME}/texi2html.init");
-
-package main;
-
-#+++############################################################################
-# #
-# Constants #
-# #
-#---############################################################################
-
-$DEBUG_TOC = 1;
-$DEBUG_INDEX = 2;
-$DEBUG_BIB = 4;
-$DEBUG_GLOSS = 8;
-$DEBUG_DEF = 16;
-$DEBUG_HTML = 32;
-$DEBUG_USER = 64;
-$DEBUG_L2H = 128;
-
-
-$BIBRE = '\[[\w\/-]+\]'; # RE for a bibliography reference
-$FILERE = '[\/\w.+-]+'; # RE for a file name
-$VARRE = '[^\s\{\}]+'; # RE for a variable name
-$NODERE = '[^,:]+'; # RE for a node name
-$NODESRE = '[^:]+'; # RE for a list of node names
-
-$ERROR = "***"; # prefix for errors
-$WARN = "**"; # prefix for warnings
-
- # program home page
-$PROTECTTAG = "_ThisIsProtected_"; # tag to recognize protected sections
-
-$CHAPTEREND = "<!-- End chapter -->\n"; # to know where a chpater ends
-$SECTIONEND = "<!-- End section -->\n"; # to know where section ends
-$TOPEND = "<!-- End top -->\n"; # to know where top ends
-
-
-
-#
-# pre-defined indices
-#
-$index_properties =
-{
- 'c' => { name => 'cp'},
- 'f' => { name => 'fn', code => 1},
- 'v' => { name => 'vr', code => 1},
- 'k' => { name => 'ky', code => 1},
- 'p' => { name => 'pg', code => 1},
- 't' => { name => 'tp', code => 1}
-};
-
-
-%predefined_index = (
- 'cp', 'c',
- 'fn', 'f',
- 'vr', 'v',
- 'ky', 'k',
- 'pg', 'p',
- 'tp', 't',
- );
-
-#
-# valid indices
-#
-%valid_index = (
- 'c', 1,
- 'f', 1,
- 'v', 1,
- 'k', 1,
- 'p', 1,
- 't', 1,
- );
-
-#
-# texinfo section names to level
-#
-%sec2level = (
- 'top', 0,
- 'chapter', 1,
- 'unnumbered', 1,
- 'majorheading', 1,
- 'chapheading', 1,
- 'appendix', 1,
- 'section', 2,
- 'unnumberedsec', 2,
- 'heading', 2,
- 'appendixsec', 2,
- 'appendixsection', 2,
- 'subsection', 3,
- 'unnumberedsubsec', 3,
- 'subheading', 3,
- 'appendixsubsec', 3,
- 'subsubsection', 4,
- 'unnumberedsubsubsec', 4,
- 'subsubheading', 4,
- 'appendixsubsubsec', 4,
- );
-
-#
-# accent map, TeX command to ISO name
-#
-%accent_map = (
- '"', 'uml',
- '~', 'tilde',
- '^', 'circ',
- '`', 'grave',
- '\'', 'acute',
- );
-
-#
-# texinfo "simple things" (@foo) to HTML ones
-#
-%simple_map = (
- # cf. makeinfo.c
- "*", "<BR>", # HTML+
- " ", " ",
- "\t", " ",
- "-", "&#173;", # soft hyphen
- "\n", "\n",
- "|", "",
- 'tab', '<\/TD><TD>',
- # spacing commands
- ":", "",
- "!", "!",
- "?", "?",
- ".", ".",
- "-", "",
- );
-
-#
-# texinfo "things" (@foo{}) to HTML ones
-#
-%things_map = (
- 'TeX', 'TeX',
- 'br', '<P>', # paragraph break
- 'bullet', '*',
- 'copyright', '(C)',
- 'dots', '<small>...<\/small>',
- 'enddots', '<small>....<\/small>',
- 'equiv', '==',
- 'error', 'error-->',
- 'expansion', '==>',
- 'minus', '-',
- 'point', '-!-',
- 'print', '-|',
- 'result', '=>',
- 'today', $T2H_TODAY,
- 'aa', '&aring;',
- 'AA', '&Aring;',
- 'ae', '&aelig;',
- 'oe', '&#156;',
- 'AE', '&AElig;',
- 'OE', '&#140;',
- 'o', '&oslash;',
- 'O', '&Oslash;',
- 'ss', '&szlig;',
- 'l', '\/l',
- 'L', '\/L',
- 'exclamdown', '&iexcl;',
- 'questiondown', '&iquest;',
- 'pounds', '&pound;'
- );
-
-#
-# texinfo styles (@foo{bar}) to HTML ones
-#
-%style_map = (
- 'acronym', '&do_acronym',
- 'asis', '',
- 'b', 'B',
- 'cite', 'CITE',
- 'code', 'CODE',
- 'command', 'CODE',
- 'ctrl', '&do_ctrl', # special case
- 'dfn', 'EM', # DFN tag is illegal in the standard
- 'dmn', '', # useless
- 'email', '&do_email', # insert a clickable email address
- 'emph', 'EM',
- 'env', 'CODE',
- 'file', '"TT', # will put quotes, cf. &apply_style
- 'i', 'I',
- 'kbd', 'KBD',
- 'key', 'KBD',
- 'math', '&do_math',
- 'option', '"SAMP', # will put quotes, cf. &apply_style
- 'r', '', # unsupported
- 'samp', '"SAMP', # will put quotes, cf. &apply_style
- 'sc', '&do_sc', # special case
- 'strong', 'STRONG',
- 't', 'TT',
- 'titlefont', '', # useless
- 'uref', '&do_uref', # insert a clickable URL
- 'url', '&do_url', # insert a clickable URL
- 'var', 'VAR',
- 'w', '', # unsupported
- 'H', '&do_accent',
- 'dotaccent', '&do_accent',
- 'ringaccent','&do_accent',
- 'tieaccent', '&do_accent',
- 'u','&do_accent',
- 'ubaraccent','&do_accent',
- 'udotaccent','&do_accent',
- 'v', '&do_accent',
- ',', '&do_accent',
- 'dotless', '&do_accent'
- );
-
-#
-# texinfo format (@foo/@end foo) to HTML ones
-#
-%format_map = (
- 'quotation', 'BLOCKQUOTE',
- # lists
- 'itemize', 'UL',
- 'enumerate', 'OL',
- # poorly supported
- 'flushleft', 'PRE',
- 'flushright', 'PRE',
- );
-
-#
-# an eval of these $complex_format_map->{what}->[0] yields beginning
-# an eval of these $complex_format_map->{what}->[1] yieleds end
-$complex_format_map =
-{
- example =>
- [
- q{"<TABLE><tr>$T2H_EXAMPLE_INDENT_CELL<td class=example><pre>"},
- q{'</pre></td></tr></table>'}
- ],
- smallexample =>
- [
- q{"<TABLE><tr>$T2H_SMALL_EXAMPLE_INDENT_CELL<td class=smallexample><FONT SIZE=$T2H_SMALL_FONT_SIZE><pre>"},
- q{'</FONT></pre></td></tr></table>'}
- ],
- display =>
- [
- q{"<TABLE><tr>$T2H_EXAMPLE_INDENT_CELL<td class=display><pre " . 'style="font-family: serif">'},
- q{'</pre></td></tr></table>'}
- ],
- smalldisplay =>
- [
- q{"<TABLE><tr>$T2H_SMALL_EXAMPLE_INDENT_CELL<td class=smalldisplay><FONT SIZE=$T2H_SMALL_FONT_SIZE><pre " . 'style="font-family: serif">'},
- q{'</pre></FONT></td></tr></table>'}
- ]
-};
-
-$complex_format_map->{lisp} = $complex_format_map->{example};
-$complex_format_map->{smalllisp} = $complex_format_map->{smallexample};
-$complex_format_map->{format} = $complex_format_map->{display};
-$complex_format_map->{smallformat} = $complex_format_map->{smalldisplay};
-
-#
-# texinfo definition shortcuts to real ones
-#
-%def_map = (
- # basic commands
- 'deffn', 0,
- 'defvr', 0,
- 'deftypefn', 0,
- 'deftypevr', 0,
- 'defcv', 0,
- 'defop', 0,
- 'deftp', 0,
- # basic x commands
- 'deffnx', 0,
- 'defvrx', 0,
- 'deftypefnx', 0,
- 'deftypevrx', 0,
- 'defcvx', 0,
- 'defopx', 0,
- 'deftpx', 0,
- # shortcuts
- 'defun', 'deffn Function',
- 'defmac', 'deffn Macro',
- 'defspec', 'deffn {Special Form}',
- 'defvar', 'defvr Variable',
- 'defopt', 'defvr {User Option}',
- 'deftypefun', 'deftypefn Function',
- 'deftypevar', 'deftypevr Variable',
- 'defivar', 'defcv {Instance Variable}',
- 'deftypeivar', 'defcv {Instance Variable}', # NEW: FIXME
- 'defmethod', 'defop Method',
- 'deftypemethod', 'defop Method', # NEW:FIXME
- # x shortcuts
- 'defunx', 'deffnx Function',
- 'defmacx', 'deffnx Macro',
- 'defspecx', 'deffnx {Special Form}',
- 'defvarx', 'defvrx Variable',
- 'defoptx', 'defvrx {User Option}',
- 'deftypefunx', 'deftypefnx Function',
- 'deftypevarx', 'deftypevrx Variable',
- 'defivarx', 'defcvx {Instance Variable}',
- 'defmethodx', 'defopx Method',
- );
-
-#
-# things to skip
-#
-%to_skip = (
- # comments
- 'c', 1,
- 'comment', 1,
- 'ifnotinfo', 1,
- 'ifnottex', 1,
- 'ifhtml', 1,
- 'end ifhtml', 1,
- 'end ifnotinfo', 1,
- 'end ifnottex', 1,
- # useless
- 'detailmenu', 1,
- 'direntry', 1,
- 'contents', 1,
- 'shortcontents', 1,
- 'summarycontents', 1,
- 'footnotestyle', 1,
- 'end ifclear', 1,
- 'end ifset', 1,
- 'titlepage', 1,
- 'end titlepage', 1,
- # unsupported commands (formatting)
- 'afourpaper', 1,
- 'cropmarks', 1,
- 'finalout', 1,
- 'headings', 1,
- 'sp', 1,
- 'need', 1,
- 'page', 1,
- 'setchapternewpage', 1,
- 'everyheading', 1,
- 'everyfooting', 1,
- 'evenheading', 1,
- 'evenfooting', 1,
- 'oddheading', 1,
- 'oddfooting', 1,
- 'smallbook', 1,
- 'vskip', 1,
- 'filbreak', 1,
- 'paragraphindent', 1,
- # unsupported formats
- 'cartouche', 1,
- 'end cartouche', 1,
- 'group', 1,
- 'end group', 1,
- );
-
-#+++############################################################################
-# #
-# Argument parsing, initialisation #
-# #
-#---############################################################################
-
-#
-# flush stdout and stderr after every write
-#
-select(STDERR);
-$| = 1;
-select(STDOUT);
-$| = 1;
-
-
-%value = (); # hold texinfo variables, see also -D
-$use_bibliography = 1;
-$use_acc = 1;
-
-#
-# called on -init-file
-sub LoadInitFile
-{
- my $init_file = shift;
- # second argument is value of options
- $init_file = shift;
- if (-f $init_file)
- {
- print "# reading initialization file from $init_file\n"
- if ($T2H_VERBOSE);
- require($init_file);
- }
- else
- {
- print "$ERROR Error: can't read init file $int_file\n";
- $init_file = '';
- }
-}
-
-#
-# called on -lang
-sub SetDocumentLanguage
-{
- my $lang = shift;
- if (! exists($T2H_WORDS->{$lang}))
- {
- warn "$ERROR: Language specs for '$lang' do not exists. Reverting to '" .
- ($T2H_LANG ? T2H_LANG : "en") . "'\n";
- }
- else
- {
- print "# using '$lang' as document language\n" if ($T2H_VERBOSE);
- $T2H_LANG = $lang;
- }
-}
-
-##
-## obsolete cmd line options
-##
-$T2H_OBSOLETE_OPTIONS -> {'no-section_navigation'} =
-{
- type => '!',
- linkage => sub {$main::T2H_SECTION_NAVIGATION = 0;},
- verbose => 'obsolete, use -nosec_nav',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {use_acc} =
-{
- type => '!',
- linkage => \$use_acc,
- verbose => 'obsolete',
- noHelp => 2
-};
-$T2H_OBSOLETE_OPTIONS -> {expandinfo} =
-{
- type => '!',
- linkage => sub {$main::T2H_EXPAND = 'info';},
- verbose => 'obsolete, use "-expand info" instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {expandtex} =
-{
- type => '!',
- linkage => sub {$main::T2H_EXPAND = 'tex';},
- verbose => 'obsolete, use "-expand tex" instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {monolithic} =
-{
- type => '!',
- linkage => sub {$main::T2H_SPLIT = '';},
- verbose => 'obsolete, use "-split no" instead',
- noHelp => 2
-};
-$T2H_OBSOLETE_OPTIONS -> {split_node} =
-{
- type => '!',
- linkage => sub{$main::T2H_SPLIT = 'section';},
- verbose => 'obsolete, use "-split section" instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {split_chapter} =
-{
- type => '!',
- linkage => sub{$main::T2H_SPLIT = 'chapter';},
- verbose => 'obsolete, use "-split chapter" instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {no_verbose} =
-{
- type => '!',
- linkage => sub {$main::T2H_VERBOSE = 0;},
- verbose => 'obsolete, use -noverbose instead',
- noHelp => 2,
-};
-$T2H_OBSOLETE_OPTIONS -> {output_file} =
-{
- type => '=s',
- linkage => sub {$main::T2H_OUT = @_[1]; $T2H_SPLIT = '';},
- verbose => 'obsolete, use -out_file instead',
- noHelp => 2
-};
-
-$T2H_OBSOLETE_OPTIONS -> {section_navigation} =
-{
- type => '!',
- linkage => \$T2H_SECTION_NAVIGATION,
- verbose => 'obsolete, use -sec_nav instead',
- noHelp => 2,
-};
-
-$T2H_OBSOLETE_OPTIONS -> {verbose} =
-{
- type => '!',
- linkage => \$T2H_VERBOSE,
- verbose => 'obsolete, use -Verbose instead',
- noHelp => 2
-};
-
-# read initialzation from $sysconfdir/texi2htmlrc or $HOME/.texi2htmlrc
-my $home = $ENV{HOME};
-defined($home) or $home = '';
-foreach $i ('/usr/local/etc/texi2htmlrc', "$home/.texi2htmlrc") {
- if (-f $i) {
- print "# reading initialization file from $i\n"
- if ($T2H_VERBOSE);
- require($i);
- }
-}
-
-
-#+++############################################################################
-# #
-# parse command-line options
-# #
-#---############################################################################
-$T2H_USAGE_TEXT = <<EOT;
-Usage: texi2html [OPTIONS] TEXINFO-FILE
-Translates Texinfo source documentation to HTML.
-EOT
-$T2H_FAILURE_TEXT = <<EOT;
-Try 'texi2html -help' for usage instructions.
-EOT
-$options = new Getopt::MySimple;
-
-# some older version of GetOpt::Long don't have
-# Getopt::Long::Configure("pass_through")
-eval {Getopt::Long::Configure("pass_through");};
-$Configure_failed = $@ && <<EOT;
-**WARNING: Parsing of obsolete command-line options could have failed.
- Consider to use only documented command-line options (run
- 'texi2html -help 2' for a complete list) or upgrade to perl
- version 5.005 or higher.
-EOT
-
-if (! $options->getOptions($T2H_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n"))
-{
- print $Configure_failed if $Configure_failed;
- die $T2H_FAILURE_TEXT;
-}
-
-if (@ARGV > 1)
-{
- eval {Getopt::Long::Configure("no_pass_through");};
- if (! $options->getOptions($T2H_OBSOLETE_OPTIONS, $T2H_USAGE_TEXT, "$THISVERSION\n"))
- {
- print $Configure_failed if $Configure_failed;
- die $T2H_FAILURE_TEXT;
- }
-}
-
-if ($T2H_CHECK) {
- die "Need file to check\n$T2H_FAILURE_TEXT" unless @ARGV > 0;
- &check;
- exit;
-}
-
-#+++############################################################################
-# #
-# evaluation of cmd line options
-# #
-#---############################################################################
-
-if ($T2H_EXPAND eq 'info')
-{
- $to_skip{'ifinfo'} = 1;
- $to_skip{'end ifinfo'} = 1;
-}
-elsif ($T2H_EXPAND eq 'tex')
-{
- $to_skip{'iftex'} = 1;
- $to_skip{'end iftex'} = 1;
-
-}
-
-$T2H_INVISIBLE_MARK = '<IMG SRC="invisible.xbm">' if $T2H_INVISIBLE_MARK eq 'xbm';
-
-#
-# file name buisness
-#
-die "Need exactly one file to translate\n$T2H_FAILURE_TEXT" unless @ARGV == 1;
-$docu = shift(@ARGV);
-if ($docu =~ /.*\//) {
- chop($docu_dir = $&);
- $docu_name = $';
-} else {
- $docu_dir = '.';
- $docu_name = $docu;
-}
-unshift(@T2H_INCLUDE_DIRS, $docu_dir);
-$docu_name =~ s/\.te?x(i|info)?$//; # basename of the document
-$docu_name = $T2H_PREFIX if ($T2H_PREFIX);
-
-# subdir
-if ($T2H_SUBDIR && ! $T2H_OUT)
-{
- $T2H_SUBDIR =~ s|/*$||;
- unless (-d "$T2H_SUBDIR" && -w "$T2H_SUBDIR")
- {
- if ( mkdir($T2H_SUBDIR, oct(755)))
- {
- print "# created directory $T2H_SUBDIR\n" if ($T2H_VERBOSE);
- }
- else
- {
- warn "$ERROR can't create directory $T2H_SUBDIR. Put results into current directory\n";
- $T2H_SUBDIR = '';
- }
- }
-}
-
-if ($T2H_SUBDIR && ! $T2H_OUT)
-{
- $docu_rdir = "$T2H_SUBDIR/";
- print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE);
-}
-else
-{
- if ($T2H_OUT && $T2H_OUT =~ m|(.*)/|)
- {
- $docu_rdir = "$1/";
- print "# putting result files into directory $docu_rdir\n" if ($T2H_VERBOSE);
- }
- else
- {
- print "# putting result files into current directory \n" if ($T2H_VERBOSE);
- $docu_rdir = '';
- }
-}
-
-# extension
-if ($T2H_SHORTEXTN)
-{
- $docu_ext = "htm";
-}
-else
-{
- $docu_ext = "html";
-}
-if ($T2H_TOP_FILE =~ /\..*$/)
-{
- $T2H_TOP_FILE = $`.".$docu_ext";
-}
-
-# result files
-if (! $T2H_OUT && ($T2H_SPLIT =~ /section/i || $T2H_SPLIT =~ /node/i))
-{
- $T2H_SPLIT = 'section';
-}
-elsif (! $T2H_OUT && $T2H_SPLIT =~ /chapter/i)
-{
- $T2H_SPLIT = 'chapter'
-}
-else
-{
- undef $T2H_SPLIT;
-}
-
-$docu_doc = "$docu_name.$docu_ext"; # document's contents
-$docu_doc_file = "$docu_rdir$docu_doc";
-if ($T2H_SPLIT)
-{
- $docu_toc = $T2H_TOC_FILE || "${docu_name}_toc.$docu_ext"; # document's table of contents
- $docu_stoc = "${docu_name}_ovr.$docu_ext"; # document's short toc
- $docu_foot = "${docu_name}_fot.$docu_ext"; # document's footnotes
- $docu_about = "${docu_name}_abt.$docu_ext"; # about this document
- $docu_top = $T2H_TOP_FILE || $docu_doc;
-}
-else
-{
- if ($T2H_OUT)
- {
- $docu_doc = $T2H_OUT;
- $docu_doc =~ s|.*/||;
- }
- $docu_toc = $docu_foot = $docu_stoc = $docu_about = $docu_top = $docu_doc;
-}
-
-$docu_toc_file = "$docu_rdir$docu_toc";
-$docu_stoc_file = "$docu_rdir$docu_stoc";
-$docu_foot_file = "$docu_rdir$docu_foot";
-$docu_about_file = "$docu_rdir$docu_about";
-$docu_top_file = "$docu_rdir$docu_top";
-
-$docu_frame_file = "$docu_rdir${docu_name}_frame.$docu_ext";
-$docu_toc_frame_file = "$docu_rdir${docu_name}_toc_frame.$docu_ext";
-
-#
-# variables
-#
-$value{'html'} = 1; # predefine html (the output format)
-$value{'texi2html'} = $THISVERSION; # predefine texi2html (the translator)
-# _foo: internal to track @foo
-foreach ('_author', '_title', '_subtitle',
- '_settitle', '_setfilename', '_shorttitle') {
- $value{$_} = ''; # prevent -w warnings
-}
-%node2sec = (); # node to section name
-%sec2node = (); # section to node name
-%sec2number = (); # section to number
-%number2sec = (); # number to section
-%idx2node = (); # index keys to node
-%node2href = (); # node to HREF
-%node2next = (); # node to next
-%node2prev = (); # node to prev
-%node2up = (); # node to up
-%bib2href = (); # bibliography reference to HREF
-%gloss2href = (); # glossary term to HREF
-@sections = (); # list of sections
-%tag2pro = (); # protected sections
-
-#
-# initial indexes
-#
-$bib_num = 0;
-$foot_num = 0;
-$gloss_num = 0;
-$idx_num = 0;
-$sec_num = 0;
-$doc_num = 0;
-$html_num = 0;
-
-#
-# can I use ISO8879 characters? (HTML+)
-#
-if ($T2H_USE_ISO) {
- $things_map{'bullet'} = "&bull;";
- $things_map{'copyright'} = "&copy;";
- $things_map{'dots'} = "&hellip;";
- $things_map{'equiv'} = "&equiv;";
- $things_map{'expansion'} = "&rarr;";
- $things_map{'point'} = "&lowast;";
- $things_map{'result'} = "&rArr;";
-}
-
-#
-# read texi2html extensions (if any)
-#
-$extensions = 'texi2html.ext'; # extensions in working directory
-if (-f $extensions) {
- print "# reading extensions from $extensions\n" if $T2H_VERBOSE;
- require($extensions);
-}
-($progdir = $0) =~ s/[^\/]+$//;
-if ($progdir && ($progdir ne './')) {
- $extensions = "${progdir}texi2html.ext"; # extensions in texi2html directory
- if (-f $extensions) {
- print "# reading extensions from $extensions\n" if $T2H_VERBOSE;
- require($extensions);
- }
-}
-
-
-print "# reading from $docu\n" if $T2H_VERBOSE;
-
-#########################################################################
-#
-# latex2html stuff
-#
-# latex2html conversions consist of three stages:
-# 1) ToLatex: Put "latex" code into a latex file
-# 2) ToHtml: Use latex2html to generate corresponding html code and images
-# 3) FromHtml: Extract generated code and images from latex2html run
-#
-
-##########################
-# default settings
-#
-
-# defaults for files and names
-
-sub l2h_Init
-{
- local($root) = @_;
-
- return 0 unless ($root);
-
- $l2h_name = "${root}_l2h";
-
- $l2h_latex_file = "$docu_rdir${l2h_name}.tex";
- $l2h_cache_file = "${docu_rdir}l2h_cache.pm";
- $T2H_L2H_L2H = "latex2html" unless ($T2H_L2H_L2H);
-
- # destination dir -- generated images are put there, should be the same
- # as dir of enclosing html document --
- $l2h_html_file = "$docu_rdir${l2h_name}.html";
- $l2h_prefix = "${l2h_name}_";
- return 1;
-}
-
-
-##########################
-#
-# First stage: Generation of Latex file
-# Initialize with: l2h_InitToLatex
-# Add content with: l2h_ToLatex($text) --> HTML placeholder comment
-# Finish with: l2h_FinishToLatex
-#
-
-$l2h_latex_preample = <<EOT;
-% This document was automatically generated by the l2h extenstion of texi2html
-% DO NOT EDIT !!!
-\\documentclass{article}
-\\usepackage{html}
-\\begin{document}
-EOT
-
-$l2h_latex_closing = <<EOT;
-\\end{document}
-EOT
-
-# return used latex 1, if l2h could be initalized properly, 0 otherwise
-sub l2h_InitToLatex
-{
- %l2h_to_latex = ();
- unless ($T2H_L2H_SKIP)
- {
- unless (open(L2H_LATEX, ">$l2h_latex_file"))
- {
- warn "$ERROR Error l2h: Can't open latex file '$latex_file' for writing\n";
- return 0;
- }
- print "# l2h: use ${l2h_latex_file} as latex file\n" if ($T2H_VERBOSE);
- print L2H_LATEX $l2h_latex_preample;
- }
- # open database for caching
- l2h_InitCache();
- $l2h_latex_count = 0;
- $l2h_to_latex_count = 0;
- $l2h_cached_count = 0;
- return 1;
-}
-
-# print text (1st arg) into latex file (if not already there), return
-# HTML commentary which can be later on replaced by the latex2html
-# generated text
-sub l2h_ToLatex
-{
- my($text) = @_;
- my($count);
-
- $l2h_to_latex_count++;
- $text =~ s/(\s*)$//;
-
- # try whether we can cache it
- my $cached_text = l2h_FromCache($text);
- if ($cached_text)
- {
- $l2h_cached_count++;
- return $cached_text;
- }
-
- # try whether we have text already on things to do
- unless ($count = $l2h_to_latex{$text})
- {
- $count = $l2h_latex_count;
- $l2h_latex_count++;
- $l2h_to_latex{$text} = $count;
- $l2h_to_latex[$count] = $text;
- unless ($T2H_L2H_SKIP)
- {
- print L2H_LATEX "\\begin{rawhtml}\n";
- print L2H_LATEX "<!-- l2h_begin ${l2h_name} ${count} -->\n";
- print L2H_LATEX "\\end{rawhtml}\n";
-
- print L2H_LATEX "$text\n";
-
- print L2H_LATEX "\\begin{rawhtml}\n";
- print L2H_LATEX "<!-- l2h_end ${l2h_name} ${count} -->\n";
- print L2H_LATEX "\\end{rawhtml}\n";
- }
- }
- return "<!-- l2h_replace ${l2h_name} ${count} -->";
-}
-
-# print closing into latex file and close it
-sub l2h_FinishToLatex
-{
- local ($reused);
-
- $reused = $l2h_to_latex_count - $l2h_latex_count - $l2h_cached_count;
- unless ($T2H_L2H_SKIP)
- {
- print L2H_LATEX $l2h_latex_closing;
- close(L2H_LATEX);
- }
- print "# l2h: finished to latex ($l2h_cached_count cached, $reused reused, $l2h_latex_count contents)\n" if ($T2H_VERBOSE);
- unless ($l2h_latex_count)
- {
- l2h_Finish();
- return 0;
- }
- return 1;
-}
-
-###################################
-# Second stage: Use latex2html to generate corresponding html code and images
-#
-# l2h_ToHtml([$l2h_latex_file, [$l2h_html_dir]]):
-# Call latex2html on $l2h_latex_file
-# Put images (prefixed with $l2h_name."_") and html file(s) in $l2h_html_dir
-# Return 1, on success
-# 0, otherwise
-#
-sub l2h_ToHtml
-{
- local($call, $ext, $root, $dotbug);
-
- if ($T2H_L2H_SKIP)
- {
- print "# l2h: skipping latex2html run\n" if ($T2H_VERBOSE);
- return 1;
- }
-
- # Check for dot in directory where dvips will work
- if ($T2H_L2H_TMP)
- {
- if ($T2H_L2H_TMP =~ /\./)
- {
- warn "$ERROR Warning l2h: l2h_tmp dir contains a dot. Use /tmp, instead\n";
- $dotbug = 1;
- }
- }
- else
- {
- if (&getcwd =~ /\./)
- {
- warn "$ERROR Warning l2h: current dir contains a dot. Use /tmp as l2h_tmp dir \n";
- $dotbug = 1;
- }
- }
- # fix it, if necessary and hope that it works
- $T2H_L2H_TMP = "/tmp" if ($dotbug);
-
- $call = $T2H_L2H_L2H;
- # use init file, if specified
- $call = $call . " -init_file " . $init_file if ($init_file && -f $init_file);
- # set output dir
- $call .= ($docu_rdir ? " -dir $docu_rdir" : " -no_subdir");
- # use l2h_tmp, if specified
- $call = $call . " -tmp $T2H_L2H_TMP" if ($T2H_L2H_TMP);
- # options we want to be sure of
- $call = $call ." -address 0 -info 0 -split 0 -no_navigation -no_auto_link";
- $call = $call ." -prefix ${l2h_prefix} $l2h_latex_file";
-
- print "# l2h: executing '$call'\n" if ($T2H_VERBOSE);
- if (system($call))
- {
- warn "l2h ***Error: '${call}' did not succeed\n";
- return 0;
- }
- else
- {
- print "# l2h: latex2html finished successfully\n" if ($T2H_VERBOSE);
- return 1;
- }
-}
-
-# this is directly pasted over from latex2html
-sub getcwd {
- local($_) = `pwd`;
-
- die "'pwd' failed (out of memory?)\n"
- unless length;
- chop;
- $_;
-}
-
-
-##########################
-# Third stage: Extract generated contents from latex2html run
-# Initialize with: l2h_InitFromHtml
-# open $l2h_html_file for reading
-# reads in contents into array indexed by numbers
-# return 1, on success -- 0, otherwise
-# Extract Html code with: l2h_FromHtml($text)
-# replaces in $text all previosuly inserted comments by generated html code
-# returns (possibly changed) $text
-# Finish with: l2h_FinishFromHtml
-# closes $l2h_html_dir/$l2h_name.".$docu_ext"
-
-sub l2h_InitFromHtml
-{
- local($h_line, $h_content, $count, %l2h_img);
-
- if (! open(L2H_HTML, "<${l2h_html_file}"))
- {
- print "$ERROR Error l2h: Can't open ${l2h_html_file} for reading\n";
- return 0;
- }
- print "# l2h: use ${l2h_html_file} as html file\n" if ($T2H_VERBOSE);
-
- $l2h_html_count = 0;
-
- while ($h_line = <L2H_HTML>)
- {
- if ($h_line =~ /^<!-- l2h_begin $l2h_name ([0-9]+) -->/)
- {
- $count = $1;
- $h_content = "";
- while ($h_line = <L2H_HTML>)
- {
- if ($h_line =~ /^<!-- l2h_end $l2h_name $count -->/)
- {
- chomp $h_content;
- chomp $h_content;
- $l2h_html_count++;
- $h_content = l2h_ToCache($count, $h_content);
- $l2h_from_html[$count] = $h_content;
- $h_content = '';
- last;
- }
- $h_content = $h_content.$h_line;
- }
- if ($hcontent)
- {
- print "$ERROR Warning l2h: l2h_end $l2h_name $count not found\n"
- if ($T2H_VERBOSE);
- close(L2H_HTML);
- return 0;
- }
- }
- }
- print "# l2h: Got $l2h_html_count of $l2h_latex_count html contents\n"
- if ($T2H_VERBOSE);
-
- close(L2H_HTML);
- return 1;
-}
-
-sub l2h_FromHtml
-{
- local($text) = @_;
- local($done, $to_do, $count);
-
- $to_do = $text;
-
- while ($to_do =~ /([^\000]*)<!-- l2h_replace $l2h_name ([0-9]+) -->([^\000]*)/)
- {
- $to_do = $1;
- $count = $2;
- $done = $3.$done;
-
- $done = "<!-- l2h_end $l2h_name $count -->".$done
- if ($T2H_DEBUG & $DEBUG_L2H);
-
- $done = &l2h_ExtractFromHtml($count) . $done;
-
- $done = "<!-- l2h_begin $l2h_name $count -->".$done
- if ($T2H_DEBUG & $DEBUG_L2H);
- }
- return $to_do.$done;
-}
-
-
-sub l2h_ExtractFromHtml
-{
- local($count) = @_;
-
- return $l2h_from_html[$count] if ($l2h_from_html[$count]);
-
- if ($count >= 0 && $count < $l2h_latex_count)
- {
- # now we are in trouble
- local($l_l2h, $_);
-
- $l2h_extract_error++;
- print "$ERROR l2h: can't extract content $count from html\n"
- if ($T2H_VERBOSE);
- # try simple (ordinary) substition (without l2h)
- $l_l2h = $T2H_L2H;
- $T2H_L2H = 0;
- $_ = $l2h_to_latex{$count};
- $_ = &substitute_style($_);
- &unprotect_texi;
- $_ = "<!-- l2h: ". __LINE__ . " use texi2html -->" . $_
- if ($T2H_DEBUG & $DEBUG_L2H);
- $T2H_L2H = $l_l2h;
- return $_;
- }
- else
- {
- # now we have been incorrectly called
- $l2h_range_error++;
- print "$ERROR l2h: Request of $count content which is out of valide range [0,$l2h_latex_count)\n";
- return "<!-- l2h: ". __LINE__ . " out of range count $count -->"
- if ($T2H_DEBUG & $DEBUG_L2H);
- return "<!-- l2h: out of range count $count -->";
- }
-}
-
-sub l2h_FinishFromHtml
-{
- if ($T2H_VERBOSE)
- {
- if ($l2h_extract_error + $l2h_range_error)
- {
- print "# l2h: finished from html ($l2h_extract_error extract and $l2h_range_error errors)\n";
- }
- else
- {
- print "# l2h: finished from html (no errors)\n";
- }
- }
-}
-
-sub l2h_Finish
-{
- l2h_StoreCache();
- if ($T2H_L2H_CLEAN)
- {
- print "# l2h: removing temporary files generated by l2h extension\n"
- if $T2H_VERBOSE;
- while (<"$docu_rdir$l2h_name"*>)
- {
- unlink $_;
- }
- }
- print "# l2h: Finished\n" if $T2H_VERBOSE;
- return 1;
-}
-
-##############################
-# stuff for l2h caching
-#
-
-# I tried doing this with a dbm data base, but it did not store all
-# keys/values. Hence, I did as latex2html does it
-sub l2h_InitCache
-{
- if (-r "$l2h_cache_file")
- {
- my $rdo = do "$l2h_cache_file";
- warn("$ERROR l2h Error: could not load $docu_rdir$l2h_cache_file: $@\n")
- unless ($rdo);
- }
-}
-
-sub l2h_StoreCache
-{
- return unless $l2h_latex_count;
-
- my ($key, $value);
- open(FH, ">$l2h_cache_file") || return warn"$ERROR l2h Error: could not open $docu_rdir$l2h_cache_file for writing: $!\n";
-
-
- while (($key, $value) = each %l2h_cache)
- {
- # escape stuff
- $key =~ s|/|\\/|g;
- $key =~ s|\\\\/|\\/|g;
- # weird, a \ at the end of the key results in an error
- # maybe this also broke the dbm database stuff
- $key =~ s|\\$|\\\\|;
- $value =~ s/\|/\\\|/g;
- $value =~ s/\\\\\|/\\\|/g;
- $value =~ s|\\\\|\\\\\\\\|g;
- print FH "\n\$l2h_cache_key = q/$key/;\n";
- print FH "\$l2h_cache{\$l2h_cache_key} = q|$value|;\n";
- }
- print FH "1;";
- close(FH);
-}
-
-# return cached html, if it exists for text, and if all pictures
-# are there, as well
-sub l2h_FromCache
-{
- my $text = shift;
- my $cached = $l2h_cache{$text};
- if ($cached)
- {
- while ($cached =~ m/SRC="(.*?)"/g)
- {
- unless (-e "$docu_rdir$1")
- {
- return undef;
- }
- }
- return $cached;
- }
- return undef;
-}
-
-# insert generated html into cache, move away images,
-# return transformed html
-$maximage = 1;
-sub l2h_ToCache
-{
- my $count = shift;
- my $content = shift;
- my @images = ($content =~ /SRC="(.*?)"/g);
- my ($src, $dest);
-
- for $src (@images)
- {
- $dest = $l2h_img{$src};
- unless ($dest)
- {
- my $ext;
- if ($src =~ /.*\.(.*)$/ && $1 ne $docu_ext)
- {
- $ext = $1;
- }
- else
- {
- warn "$ERROR: L2h image $src has invalid extension\n";
- next;
- }
- while (-e "$docu_rdir${docu_name}_$maximage.$ext") { $maximage++;}
- $dest = "${docu_name}_$maximage.$ext";
- system("cp -f $docu_rdir$src $docu_rdir$dest");
- $l2h_img{$src} = $dest;
- unlink "$docu_rdir$src" unless ($DEBUG & DEBUG_L2H);
- }
- $content =~ s/$src/$dest/g;
- }
- $l2h_cache{$l2h_to_latex[$count]} = $content;
- return $content;
-}
-
-
-#+++############################################################################
-# #
-# Pass 1: read source, handle command, variable, simple substitution #
-# #
-#---############################################################################
-
-@lines = (); # whole document
-@toc_lines = (); # table of contents
-@stoc_lines = (); # table of contents
-$curlevel = 0; # current level in TOC
-$node = ''; # current node name
-$node_next = ''; # current node next name
-$node_prev = ''; # current node prev name
-$node_up = ''; # current node up name
-$in_table = 0; # am I inside a table
-$table_type = ''; # type of table ('', 'f', 'v', 'multi')
-@tables = (); # nested table support
-$in_bibliography = 0; # am I inside a bibliography
-$in_glossary = 0; # am I inside a glossary
-$in_top = 0; # am I inside the top node
-$has_top = 0; # did I see a top node?
-$has_top_command = 0; # did I see @top for automatic pointers?
-$in_pre = 0; # am I inside a preformatted section
-$in_list = 0; # am I inside a list
-$in_html = 0; # am I inside an HTML section
-$first_line = 1; # is it the first line
-$dont_html = 0; # don't protect HTML on this line
-$deferred_ref = ''; # deferred reference for indexes
-@html_stack = (); # HTML elements stack
-$html_element = ''; # current HTML element
-&html_reset;
-%macros = (); # macros
-
-# init l2h
-$T2H_L2H = &l2h_Init($docu_name) if ($T2H_L2H);
-$T2H_L2H = &l2h_InitToLatex if ($T2H_L2H);
-
-# build code for simple substitutions
-# the maps used (%simple_map and %things_map) MUST be aware of this
-# watch out for regexps, / and escaped characters!
-$subst_code = '';
-foreach (keys(%simple_map)) {
- ($re = $_) =~ s/(\W)/\\$1/g; # protect regexp chars
- $subst_code .= "s/\\\@$re/$simple_map{$_}/g;\n";
-}
-foreach (keys(%things_map)) {
- $subst_code .= "s/\\\@$_\\{\\}/$things_map{$_}/g;\n";
-}
-if ($use_acc) {
- # accentuated characters
- foreach (keys(%accent_map)) {
- if ($_ eq "`") {
- $subst_code .= "s/$;3";
- } elsif ($_ eq "'") {
- $subst_code .= "s/$;4";
- } else {
- $subst_code .= "s/\\\@\\$_";
- }
- $subst_code .= "([a-z])/&\${1}$accent_map{$_};/gi;\n";
- }
-}
-eval("sub simple_substitutions { $subst_code }");
-
-&init_input;
-INPUT_LINE: while ($_ = &next_line) {
- #
- # remove \input on the first lines only
- #
- if ($first_line) {
- next if /^\\input/;
- $first_line = 0;
- }
- # non-@ substitutions cf. texinfmt.el
- #
- # parse texinfo tags
- #
- $tag = '';
- $end_tag = '';
- if (/^\s*\@end\s+(\w+)\b/) {
- $end_tag = $1;
- } elsif (/^\s*\@(\w+)\b/) {
- $tag = $1;
- }
- #
- # handle @html / @end html
- #
- if ($in_html) {
- if ($end_tag eq 'html') {
- $in_html = 0;
- } else {
- $tag2pro{$in_html} .= $_;
- }
- next;
- } elsif ($tag eq 'html') {
- $in_html = $PROTECTTAG . ++$html_num;
- push(@lines, $in_html);
- next;
- }
-
- #
- # try to remove inlined comments
- # syntax from tex-mode.el comment-start-skip
- #
- s/((^|[^\@])(\@\@)*)\@c(omment | |\{|$).*/$1/;
-
-# Sometimes I use @c right at the end of a line ( to suppress the line feed )
-# s/((^|[^\@])(\@\@)*)\@c(omment)?$/$1/;
-# s/((^|[^\@])(\@\@)*)\@c(omment)? .*/$1/;
-# s/(.*)\@c{.*?}(.*)/$1$2/;
-# s/(.*)\@comment{.*?}(.*)/$1$2/;
-# s/^(.*)\@c /$1/;
-# s/^(.*)\@comment /$1/;
-
- #############################################################
- # value substitution before macro expansion, so that
- # it works in macro arguments
- s/\@value{($VARRE)}/$value{$1}/eg;
-
- #############################################################
- # macro substitution
- while (/\@(\w+)/g)
- {
- if (exists($macros->{$1}))
- {
- my $before = $`;
- my $name = $1;
- my $after = $';
- my @args;
- my $args;
- if ($after =~ /^\s*{(.*?[^\\])}(.*)/)
- {
- $args = $1;
- $after = $2;
- }
- elsif (@{$macros->{$name}->{Args}} == 1)
- {
- $args = $after;
- $args =~ s/^\s*//;
- $args =~ s/\s*$//;
- $after = '';
- }
- $args =~ s|\\\\|\\|g;
- $args =~ s|\\{|{|g;
- $args =~ s|\\}|}|g;
- if (@{$macros->{$name}->{Args}} > 1)
- {
- $args =~ s/(^|[^\\]),/$1$;/g ;
- $args =~ s|\\,|,|g;
- @args = split(/$;\s*/, $args) if (@{$macros->{$name}->{Args}} > 1);
- }
- else
- {
- $args =~ s|\\,|,|g;
- @args = ($args);
- }
- my $macrobody = $macros->{$name}->{Body};
- for ($i=0; $i<=$#args; $i++)
- {
- $macrobody =~ s|\\$macros->{$name}->{Args}->[$i]\\|$args[$i]|g;
- }
- $macrobody =~ s|\\\\|\\|g;
- $_ = $before . $macrobody . $after;
- unshift @input_spool, map {$_ = $_."\n"} split(/\n/, $_);
- next INPUT_LINE;
- }
- } #
-
-
- #
- # try to skip the line
- #
- if ($end_tag) {
- $in_titlepage = 0 if $end_tag eq 'titlepage';
- next if $to_skip{"end $end_tag"};
- } elsif ($tag) {
- $in_titlepage = 1 if $tag eq 'titlepage';
- next if $to_skip{$tag};
- last if $tag eq 'bye';
- }
- if ($in_top) {
- # parsing the top node
- if ($tag eq 'node' ||
- ($sec2level{$tag} && $tag !~ /unnumbered/ && $tag !~ /heading/))
- {
- # no more in top
- $in_top = 0;
- push(@lines, $TOPEND);
- }
- }
- unless ($in_pre) {
- s/``/\"/g;
- s/''/\"/g;
- s/([\w ])---([\w ])/$1--$2/g;
- }
- #
- # analyze the tag
- #
- if ($tag) {
- # skip lines
- &skip_until($tag), next if $tag eq 'ignore';
- &skip_until($tag), next if $tag eq 'ifnothtml';
- if ($tag eq 'ifinfo')
- {
- &skip_until($tag), next unless $T2H_EXPAND eq 'info';
- }
- if ($tag eq 'iftex')
- {
- &skip_until($tag), next unless $T2H_EXPAND eq 'tex';
- }
- if ($tag eq 'tex')
- {
- # add to latex2html file
- if ($T2H_EXPAND eq 'tex' && $T2H_L2H && ! $in_pre)
- {
- # add space to the end -- tex(i2dvi) does this, as well
- push(@lines, &l2h_ToLatex(&string_until($tag) . " "));
- }
- else
- {
- &skip_until($tag);
- }
- next;
- }
- if ($tag eq 'titlepage')
- {
- next;
- }
- # handle special tables
- if ($tag =~ /^(|f|v|multi)table$/) {
- $table_type = $1;
- $tag = 'table';
- }
- # special cases
- if ($tag eq 'top' || ($tag eq 'node' && /^\@node\s+top\s*,/i)) {
- $in_top = 1;
- $has_top = 1;
- $has_top_command = 1 if $tag eq 'top';
- @lines = (); # ignore all lines before top (title page garbage)
- next;
- } elsif ($tag eq 'node') {
- if ($in_top)
- {
- $in_top = 0;
- push(@lines, $TOPEND);
- }
- warn "$ERROR Bad node line: $_" unless $_ =~ /^\@node\s$NODESRE$/o;
- # request of "Richard Y. Kim" <ryk@ap.com>
- s/^\@node\s+//;
- $_ = &protect_html($_); # if node contains '&' for instance
- ($node, $node_next, $node_prev, $node_up) = split(/,/);
- &normalise_node($node);
- &normalise_node($node_next);
- &normalise_node($node_prev);
- &normalise_node($node_up);
- $node =~ /\"/ ?
- push @lines, &html_debug("<A NAME='$node'></A>\n", __LINE__) :
- push @lines, &html_debug("<A NAME=\"$node\"></A>\n", __LINE__);
- next;
- } elsif ($tag eq 'include') {
- if (/^\@include\s+($FILERE)\s*$/o) {
- $file = LocateIncludeFile($1);
- if ($file && -e $file) {
- &open($file);
- print "# including $file\n" if $T2H_VERBOSE;
- } else {
- warn "$ERROR Can't find $1, skipping";
- }
- } else {
- warn "$ERROR Bad include line: $_";
- }
- next;
- } elsif ($tag eq 'ifclear') {
- if (/^\@ifclear\s+($VARRE)\s*$/o) {
- next unless defined($value{$1});
- &skip_until($tag);
- } else {
- warn "$ERROR Bad ifclear line: $_";
- }
- next;
- } elsif ($tag eq 'ifset') {
- if (/^\@ifset\s+($VARRE)\s*$/o) {
- next if defined($value{$1});
- &skip_until($tag);
- } else {
- warn "$ERROR Bad ifset line: $_";
- }
- next;
- } elsif ($tag eq 'menu') {
- unless ($T2H_SHOW_MENU) {
- &skip_until($tag);
- next;
- }
- &html_push_if($tag);
- push(@lines, &html_debug('', __LINE__));
- } elsif ($format_map{$tag}) {
- $in_pre = 1 if $format_map{$tag} eq 'PRE';
- &html_push_if($format_map{$tag});
- push(@lines, &html_debug('', __LINE__));
- $in_list++ if $format_map{$tag} eq 'UL' || $format_map{$tag} eq 'OL' ;
-# push(@lines, &debug("<BLOCKQUOTE>\n", __LINE__))
-# if $tag =~ /example/i;
- # sunshine@sunshineco.com: <PRE>bla</PRE> looks better than
- # <PRE>\nbla</PRE> (at least on NeXTstep browser
- push(@lines, &debug("<$format_map{$tag}>" .
- ($in_pre ? '' : "\n"), __LINE__));
- next;
- }
- elsif (exists $complex_format_map->{$tag})
- {
- my $start = eval $complex_format_map->{$tag}->[0];
- if ($@)
- {
- print "$ERROR: eval of complex_format_map->{$tag}->[0] $complex_format_map->{$tag}->[0]: $@";
- $start = '<pre>'
- }
- $in_pre = 1 if $start =~ /<pre/;
- push(@lines, html_debug($start. ($in_pre ? '' : "\n"), __LINE__));
- next;
- } elsif ($tag eq 'table') {
- # anorland@hem2.passagen.se
- # if (/^\s*\@(|f|v|multi)table\s+\@(\w+)/) {
- if (/^\s*\@(|f|v|multi)table\s+\@(\w+)|(\{[^\}]*\})/) {
- $in_table = $2;
- unshift(@tables, join($;, $table_type, $in_table));
- if ($table_type eq "multi") {
- # don't use borders -- gets confused by empty cells
- push(@lines, &debug("<TABLE>\n", __LINE__));
- &html_push_if('TABLE');
- } else {
- push(@lines, &debug("<DL COMPACT>\n", __LINE__));
- &html_push_if('DL');
- }
- push(@lines, &html_debug('', __LINE__));
- } else {
- warn "$ERROR Bad table line: $_";
- }
- next;
- }
- elsif ($tag eq 'synindex' || $tag eq 'syncodeindex')
- {
- if (/^\@$tag\s+(\w+)\s+(\w+)\s*$/)
- {
- my $from = $1;
- my $to = $2;
- my $prefix_from = IndexName2Prefix($from);
- my $prefix_to = IndexName2Prefix($to);
-
- warn("$ERROR unknown from index name $from ind syn*index line: $_"), next
- unless $prefix_from;
- warn("$ERROR unknown to index name $to ind syn*index line: $_"), next
- unless $prefix_to;
-
- if ($tag eq 'syncodeindex')
- {
- $index_properties->{$prefix_to}->{'from_code'}->{$prefix_from} = 1;
- }
- else
- {
- $index_properties->{$prefix_to}->{'from'}->{$prefix_from} = 1;
- }
- }
- else
- {
- warn "$ERROR Bad syn*index line: $_";
- }
- next;
- }
- elsif ($tag eq 'defindex' || $tag eq 'defcodeindex')
- {
- if (/^\@$tag\s+(\w+)\s*$/)
- {
- my $name = $1;
- $index_properties->{$name}->{name} = $name;
- $index_properties->{$name}->{code} = 1 if $tag eq 'defcodeindex';
- }
- else
- {
- warn "$ERROR Bad defindex line: $_";
- }
- next;
- }
- elsif (/^\@printindex/)
- {
- push (@lines, "<!--::${section}::-->$_");
- next;
- }
- elsif ($tag eq 'sp') {
- push(@lines, &debug("<P>\n", __LINE__));
- next;
- } elsif ($tag eq 'center') {
- push(@lines, &debug("<center>\n", __LINE__));
- s/\@center//;
- } elsif ($tag eq 'setref') {
- &protect_html; # if setref contains '&' for instance
- if (/^\@$tag\s*{($NODERE)}\s*$/) {
- $setref = $1;
- $setref =~ s/\s+/ /g; # normalize
- $setref =~ s/ $//;
- $node2sec{$setref} = $name;
- $sec2node{$name} = $setref;
- $node2href{$setref} = "$docu_doc#$docid";
- } else {
- warn "$ERROR Bad setref line: $_";
- }
- next;
- } elsif ($tag eq 'lowersections') {
- local ($sec, $level);
- while (($sec, $level) = each %sec2level) {
- $sec2level{$sec} = $level + 1;
- }
- next;
- } elsif ($tag eq 'raisesections') {
- local ($sec, $level);
- while (($sec, $level) = each %sec2level) {
- $sec2level{$sec} = $level - 1;
- }
- next;
- }
- elsif ($tag eq 'macro' || $tag eq 'rmacro')
- {
- if (/^\@$tag\s*(\w+)\s*(.*)/)
- {
- my $name = $1;
- my @args;
- @args = split(/\s*,\s*/ , $1)
- if ($2 =~ /^\s*{(.*)}\s*/);
-
- $macros->{$name}->{Args} = \@args;
- $macros->{$name}->{Body} = '';
- while (($_ = &next_line) && $_ !~ /\@end $tag/)
- {
- $macros->{$name}->{Body} .= $_;
- }
- die "ERROR: No closing '\@end $tag' found for macro definition of '$name'\n"
- unless (/\@end $tag/);
- chomp $macros->{$name}->{Body};
- }
- else
- {
- warn "$ERROR: Bad macro defintion $_"
- }
- next;
- }
- elsif ($tag eq 'unmacro')
- {
- delete $macros->{$1} if (/^\@unmacro\s*(\w+)/);
- next;
- }
- elsif ($tag eq 'documentlanguage')
- {
- SetDocumentLanguage($1) if (!$T2H_LANG && /documentlanguage\s*(\w+)/);
- }
- elsif (defined($def_map{$tag})) {
- if ($def_map{$tag}) {
- s/^\@$tag\s+//;
- $tag = $def_map{$tag};
- $_ = "\@$tag $_";
- $tag =~ s/\s.*//;
- }
- } elsif (defined($user_sub{$tag})) {
- s/^\@$tag\s+//;
- $sub = $user_sub{$tag};
- print "# user $tag = $sub, arg: $_" if $T2H_DEBUG & $DEBUG_USER;
- if (defined(&$sub)) {
- chop($_);
- &$sub($_);
- } else {
- warn "$ERROR Bad user sub for $tag: $sub\n";
- }
- next;
- }
- if (defined($def_map{$tag})) {
- s/^\@$tag\s+//;
- if ($tag =~ /x$/) {
- # extra definition line
- $tag = $`;
- $is_extra = 1;
- } else {
- $is_extra = 0;
- }
- while (/\{([^\{\}]*)\}/) {
- # this is a {} construct
- ($before, $contents, $after) = ($`, $1, $');
- # protect spaces
- $contents =~ s/\s+/$;9/g;
- # restore $_ protecting {}
- $_ = "$before$;7$contents$;8$after";
- }
- @args = split(/\s+/, &protect_html($_));
- foreach (@args) {
- s/$;9/ /g; # unprotect spaces
- s/$;7/\{/g; # ... {
- s/$;8/\}/g; # ... }
- }
- $type = shift(@args);
- $type =~ s/^\{(.*)\}$/$1/;
- print "# def ($tag): {$type} ", join(', ', @args), "\n"
- if $T2H_DEBUG & $DEBUG_DEF;
- $type .= ':'; # it's nicer like this
- my $name = shift(@args);
- $name =~ s/^\{(.*)\}$/$1/;
- if ($is_extra) {
- $_ = &debug("<DT>", __LINE__);
- } else {
- $_ = &debug("<DL>\n<DT>", __LINE__);
- }
- if ($tag eq 'deffn' || $tag eq 'defvr' || $tag eq 'deftp') {
- $_ .= "<U>$type</U> <B>$name</B>";
- $_ .= " <I>@args</I>" if @args;
- } elsif ($tag eq 'deftypefn' || $tag eq 'deftypevr'
- || $tag eq 'defcv' || $tag eq 'defop') {
- $ftype = $name;
- $name = shift(@args);
- $name =~ s/^\{(.*)\}$/$1/;
- $_ .= "<U>$type</U> $ftype <B>$name</B>";
- $_ .= " <I>@args</I>" if @args;
- } else {
- warn "$ERROR Unknown definition type: $tag\n";
- $_ .= "<U>$type</U> <B>$name</B>";
- $_ .= " <I>@args</I>" if @args;
- }
- $_ .= &debug("\n<DD>", __LINE__);
- $name = &unprotect_html($name);
- if ($tag eq 'deffn' || $tag eq 'deftypefn') {
- EnterIndexEntry('f', $name, $docu_doc, $section, \@lines);
-# unshift(@input_spool, "\@findex $name\n");
- } elsif ($tag eq 'defop') {
- EnterIndexEntry('f', "$name on $ftype", $docu_doc, $section, \@lines);
-# unshift(@input_spool, "\@findex $name on $ftype\n");
- } elsif ($tag eq 'defvr' || $tag eq 'deftypevr' || $tag eq 'defcv') {
- EnterIndexEntry('v', $name, $docu_doc, $section, \@lines);
-# unshift(@input_spool, "\@vindex $name\n");
- } else {
- EnterIndexEntry('t', $name, $docu_doc, $section, \@lines);
-# unshift(@input_spool, "\@tindex $name\n");
- }
- $dont_html = 1;
- }
- } elsif ($end_tag) {
- if ($format_map{$end_tag}) {
- $in_pre = 0 if $format_map{$end_tag} eq 'PRE';
- $in_list-- if $format_map{$end_tag} eq 'UL' || $format_map{$end_tag} eq 'OL' ;
- &html_pop_if('P');
- &html_pop_if('LI');
- &html_pop_if();
- push(@lines, &debug("</$format_map{$end_tag}>\n", __LINE__));
- push(@lines, &html_debug('', __LINE__));
- }
- elsif (exists $complex_format_map->{$end_tag})
- {
- my $end = eval $complex_format_map->{$end_tag}->[1];
- if ($@)
- {
- print "$ERROR: eval of complex_format_map->{$end_tag}->[1] $complex_format_map->{$end_tag}->[0]: $@";
- $end = '</pre>'
- }
- $in_pre = 0 if $end =~ m|</pre>|;
- push(@lines, html_debug($end, __LINE__));
- } elsif ($end_tag =~ /^(|f|v|multi)table$/) {
- unless (@tables) {
- warn "$ERROR \@end $end_tag without \@*table\n";
- next;
- }
- &html_pop_if('P');
- ($table_type, $in_table) = split($;, shift(@tables));
- unless ($1 eq $table_type) {
- warn "$ERROR \@end $end_tag without matching \@$end_tag\n";
- next;
- }
- if ($table_type eq "multi") {
- push(@lines, "</TR></TABLE>\n");
- &html_pop_if('TR');
- } else {
- push(@lines, "</DL>\n");
- &html_pop_if('DD');
- }
- &html_pop_if();
- if (@tables) {
- ($table_type, $in_table) = split($;, $tables[0]);
- } else {
- $in_table = 0;
- }
- } elsif (defined($def_map{$end_tag})) {
- push(@lines, &debug("</DL>\n", __LINE__));
- } elsif ($end_tag eq 'menu') {
- &html_pop_if();
- push(@lines, $_); # must keep it for pass 2
- }
- next;
- }
- #############################################################
- # anchor insertion
- while (/\@anchor\s*\{(.*?)\}/)
- {
- $_ = $`.$';
- my $anchor = $1;
- $anchor = &normalise_node($anchor);
- push @lines, &html_debug("<A NAME=\"$anchor\"></A>\n");
- $node2href{$anchor} = "$docu_doc#$anchor";
- next INPUT_LINE if $_ =~ /^\s*$/;
- }
-
- #############################################################
- # index entry generation, after value substitutions
- if (/^\@(\w+?)index\s+/)
- {
- EnterIndexEntry($1, $', $docu_doc, $section, \@lines);
- next;
- }
- #
- # protect texi and HTML things
- &protect_texi;
- $_ = &protect_html($_) unless $dont_html;
- $dont_html = 0;
- # substitution (unsupported things)
- s/^\@exdent\s+//g;
- s/\@noindent\s+//g;
- s/\@refill\s+//g;
- # other substitutions
- &simple_substitutions;
- s/\@footnote\{/\@footnote$docu_doc\{/g; # mark footnotes, cf. pass 4
- #
- # analyze the tag again
- #
- if ($tag) {
- if (defined($sec2level{$tag}) && $sec2level{$tag} > 0) {
- if (/^\@$tag\s+(.+)$/) {
- $name = $1;
- $name = &normalise_node($name);
- $level = $sec2level{$tag};
- # check for index
- $first_index_chapter = $name
- if ($level == 1 && !$first_index_chapter &&
- $name =~ /index/i);
- if ($in_top && /heading/){
- $T2H_HAS_TOP_HEADING = 1;
- $_ = &debug("<H$level>$name</H$level>\n", __LINE__);
- &html_push_if('body');
- print "# top heading, section $name, level $level\n"
- if $T2H_DEBUG & $DEBUG_TOC;
- }
- else
- {
- unless (/^\@\w*heading/)
- {
- unless (/^\@unnumbered/)
- {
- my $number = &update_sec_num($tag, $level);
- $name = $number. ' ' . $name if $T2H_NUMBER_SECTIONS;
- $sec2number{$name} = $number;
- $number2sec{$number} = $name;
- }
- if (defined($toplevel))
- {
- push @lines, ($level==$toplevel ? $CHAPTEREND : $SECTIONEND);
- }
- else
- {
- # first time we see a "section"
- unless ($level == 1)
- {
- warn "$WARN The first section found is not of level 1: $_";
- }
- $toplevel = $level;
- }
- push(@sections, $name);
- next_doc() if ($T2H_SPLIT eq 'section' ||
- $T2H_SPLIT && $level == $toplevel);
- }
- $sec_num++;
- $docid = "SEC$sec_num";
- $tocid = (/^\@\w*heading/ ? undef : "TOC$sec_num");
- # check biblio and glossary
- $in_bibliography = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*bibliography$/i);
- $in_glossary = ($name =~ /^([A-Z]|\d+)?(\.\d+)*\s*glossary$/i);
- # check node
- if ($node)
- {
- warn "$ERROR Duplicate node found: $node\n"
- if ($node2sec{$node});
- }
- else
- {
- $name .= ' ' while ($node2sec{$name});
- $node = $name;
- }
- $name .= ' ' while ($sec2node{$name});
- $section = $name;
- $node2sec{$node} = $name;
- $sec2node{$name} = $node;
- $node2href{$node} = "$docu_doc#$docid";
- $node2next{$node} = $node_next;
- $node2prev{$node} = $node_prev;
- $node2up{$node} = $node_up;
- print "# node $node, section $name, level $level\n"
- if $T2H_DEBUG & $DEBUG_TOC;
-
- $node = '';
- $node_next = '';
- $node_prev = '';
- $node_next = '';
- if ($tocid)
- {
- # update TOC
- while ($level > $curlevel) {
- $curlevel++;
- push(@toc_lines, "<UL>\n");
- }
- while ($level < $curlevel) {
- $curlevel--;
- push(@toc_lines, "</UL>\n");
- }
- $_ = &t2h_anchor($tocid, "$docu_doc#$docid", $name, 1);
- $_ = &substitute_style($_);
- push(@stoc_lines, "$_<BR>\n") if ($level == 1);
- if ($T2H_NUMBER_SECTIONS)
- {
- push(@toc_lines, $_ . "<BR>\n")
- }
- else
- {
- push(@toc_lines, "<LI>" . $_ ."</LI>");
- }
- }
- else
- {
- push(@lines, &html_debug("<A NAME=\"$docid\"></A>\n",
- __LINE__));
- }
- # update DOC
- push(@lines, &html_debug('', __LINE__));
- &html_reset;
- $_ = "<H$level> $name </H$level>\n<!--docid::${docid}::-->\n";
- $_ = &debug($_, __LINE__);
- push(@lines, &html_debug('', __LINE__));
- }
- # update DOC
- foreach $line (split(/\n+/, $_)) {
- push(@lines, "$line\n");
- }
- next;
- } else {
- warn "$ERROR Bad section line: $_";
- }
- } else {
- # track variables
- $value{$1} = Unprotect_texi($2), next if /^\@set\s+($VARRE)\s+(.*)$/o;
- delete $value{$1}, next if /^\@clear\s+($VARRE)\s*$/o;
- # store things
- $value{'_shorttitle'} = Unprotect_texi($1), next if /^\@shorttitle\s+(.*)$/;
- $value{'_setfilename'} = Unprotect_texi($1), next if /^\@setfilename\s+(.*)$/;
- $value{'_settitle'} = Unprotect_texi($1), next if /^\@settitle\s+(.*)$/;
- $value{'_author'} .= Unprotect_texi($1)."\n", next if /^\@author\s+(.*)$/;
- $value{'_subtitle'} .= Unprotect_texi($1)."\n", next if /^\@subtitle\s+(.*)$/;
- $value{'_title'} .= Unprotect_texi($1)."\n", next if /^\@title\s+(.*)$/;
-
- # list item
- if (/^\s*\@itemx?\s+/) {
- $what = $';
- $what =~ s/\s+$//;
- if ($in_bibliography && $use_bibliography) {
- if ($what =~ /^$BIBRE$/o) {
- $id = 'BIB' . ++$bib_num;
- $bib2href{$what} = "$docu_doc#$id";
- print "# found bibliography for '$what' id $id\n"
- if $T2H_DEBUG & $DEBUG_BIB;
- $what = &t2h_anchor($id, '', $what);
- }
- } elsif ($in_glossary && $T2H_USE_GLOSSARY) {
- $id = 'GLOSS' . ++$gloss_num;
- $entry = $what;
- $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/;
- $gloss2href{$entry} = "$docu_doc#$id";
- print "# found glossary for '$entry' id $id\n"
- if $T2H_DEBUG & $DEBUG_GLOSS;
- $what = &t2h_anchor($id, '', $what);
- }
- elsif ($in_table && ($table_type eq 'f' || $table_type eq 'v'))
- {
- EnterIndexEntry($table_type, $what, $docu_doc, $section, \@lines);
- }
- &html_pop_if('P');
- if ($html_element eq 'DL' || $html_element eq 'DD') {
- if ($things_map{$in_table} && !$what) {
- # special case to allow @table @bullet for instance
- push(@lines, &debug("<DT>$things_map{$in_table}\n", __LINE__));
- } else {
- push(@lines, &debug("<DT>\@$in_table\{$what\}\n", __LINE__));
- }
- push(@lines, "<DD>");
- &html_push('DD') unless $html_element eq 'DD';
- if ($table_type) { # add also an index
- unshift(@input_spool, "\@${table_type}index $what\n");
- }
- } elsif ($html_element eq 'TABLE') {
- push(@lines, &debug("<TR><TD>$what</TD>\n", __LINE__));
- &html_push('TR');
- } elsif ($html_element eq 'TR') {
- push(@lines, &debug("</TR>\n", __LINE__));
- push(@lines, &debug("<TR><TD>$what</TD>\n", __LINE__));
- } else {
- push(@lines, &debug("<LI>$what\n", __LINE__));
- &html_push('LI') unless $html_element eq 'LI';
- }
- push(@lines, &html_debug('', __LINE__));
- if ($deferred_ref) {
- push(@lines, &debug("$deferred_ref\n", __LINE__));
- $deferred_ref = '';
- }
- next;
- } elsif (/^\@tab\s+(.*)$/) {
- push(@lines, "<TD>$1</TD>\n");
- next;
- }
- }
- }
- # paragraph separator
- if ($_ eq "\n" && ! $in_pre) {
- next if $#lines >= 0 && $lines[$#lines] eq "\n";
- if ($html_element eq 'P') {
- push (@lines, &debug("</P><P>\n", __LINE__));
- }
-# else
-# {
-# push(@lines, "<P></P>\n");
-# $_ = &debug("<P></P>\n", __LINE__);
-# }
- elsif ($html_element eq 'body' || $html_element eq 'BLOCKQUOTE' || $html_element eq 'DD' || $html_element eq 'LI')
- {
- &html_push('P');
- push(@lines, &debug("<P>\n", __LINE__));
- }
- }
- # otherwise
- push(@lines, $_) unless $in_titlepage;
- push(@lines, &debug("</center>\n", __LINE__)) if ($tag eq 'center');
-}
-
-# finish TOC
-$level = 0;
-while ($level < $curlevel) {
- $curlevel--;
- push(@toc_lines, "</UL>\n");
-}
-
-print "# end of pass 1\n" if $T2H_VERBOSE;
-
-SetDocumentLanguage('en') unless ($T2H_LANG);
-#+++############################################################################
-# #
-# Stuff related to Index generation #
-# #
-#---############################################################################
-
-sub EnterIndexEntry
-{
- my $prefix = shift;
- my $key = shift;
- my $docu_doc = shift;
- my $section = shift;
- my $lines = shift;
- local $_;
-
- warn "$ERROR Undefined index command: $_", next
- unless (exists ($index_properties->{$prefix}));
- $key =~ s/\s+$//;
- $_ = $key;
- &protect_texi;
- $key = $_;
- $_ = &protect_html($_);
- my $html_key = substitute_style($_);
- my $id;
- $key = remove_style($key);
- $key = remove_things($key);
- $_ = $key;
- &unprotect_texi;
- $key = $_;
- while (exists $index->{$prefix}->{$key}) {$key .= ' '};
- if ($lines->[$#lines] =~ /^<!--docid::(.+)::-->$/)
- {
- $id = $1;
- }
- else
- {
- $id = 'IDX' . ++$idx_num;
- push(@$lines, &t2h_anchor($id, '', $T2H_INVISIBLE_MARK, !$in_pre));
- }
- $index->{$prefix}->{$key}->{html_key} = $html_key;
- $index->{$prefix}->{$key}->{section} = $section;
- $index->{$prefix}->{$key}->{href} = "$docu_doc#$id";
- print "# found ${prefix}index for '$key' with id $id\n"
- if $T2H_DEBUG & $DEBUG_INDEX;
-}
-
-sub IndexName2Prefix
-{
- my $name = shift;
- my $prefix;
-
- for $prefix (keys %$index_properties)
- {
- return $prefix if ($index_properties->{$prefix}->{name} eq $name);
- }
- return undef;
-}
-
-sub GetIndexEntries
-{
- my $normal = shift;
- my $code = shift;
- my ($entries, $prefix, $key) = ({});
-
- for $prefix (keys %$normal)
- {
- for $key (keys %{$index->{$prefix}})
- {
- $entries->{$key} = {%{$index->{$prefix}->{$key}}};
- }
- }
-
- if (defined($code))
- {
- for $prefix (keys %$code)
- {
- unless (exists $normal->{$keys})
- {
- for $key (keys %{$index->{$prefix}})
- {
- $entries->{$key} = {%{$index->{$prefix}->{$key}}};
- $entries->{$key}->{html_key} = "<CODE>$entries->{$key}->{html_key}</CODE>";
- }
- }
- }
- }
- return $entries;
-}
-
-sub byAlpha
-{
- if ($a =~ /^[A-Za-z]/)
- {
- if ($b =~ /^[A-Za-z]/)
- {
- return lc($a) cmp lc($b);
- }
- else
- {
- return 1;
- }
- }
- elsif ($b =~ /^[A-Za-z]/)
- {
- return -1;
- }
- else
- {
- return lc($a) cmp lc($b);
- }
-}
-
-sub GetIndexPages
-{
- my $entries = shift;
- my (@Letters, $key);
- my ($EntriesByLetter, $Pages, $page) = ({}, [], {});
- my @keys = sort byAlpha keys %$entries;
-
- for $key (@keys)
- {
- push @{$EntriesByLetter->{uc(substr($key,0, 1))}} , $entries->{$key};
- }
- @Letters = sort byAlpha keys %$EntriesByLetter;
-
- $T2H_SPLIT_INDEX = 0 unless ($T2H_SPLIT);
-
- unless ($T2H_SPLIT_INDEX)
- {
- $page->{First} = $Letters[0];
- $page->{Last} = $Letters[$#Letters];
- $page->{Letters} = \@Letters;
- $page->{EntriesByLetter} = $EntriesByLetter;
- push @$Pages, $page;
- return $Pages;
- }
-
- if ($T2H_SPLIT_INDEX =~ /^\d+$/)
- {
- my $i = 0;
- my ($prev_letter, $letter);
- $page->{First} = $Letters[0];
- for $letter (@Letters)
- {
- if ($i > $T2H_SPLIT_INDEX)
- {
- $page->{Last} = $prev_letter;
- push @$Pages, {%$page};
- $page->{Letters} = [];
- $page->{EntriesByLetter} = {};
- $page->{First} = $letter;
- $i=0;
- }
- push @{$page->{Letters}}, $letter;
- $page->{EntriesByLetter}->{$letter} = [@{$EntriesByLetter->{$letter}}];
- $i += scalar(@{$EntriesByLetter->{$letter}});
- $prev_letter = $letter;
- }
- $page->{Last} = $Letters[$#Letters];
- push @$Pages, {%$page};
- }
- return $Pages;
-}
-
-sub GetIndexSummary
-{
- my $first_page = shift;
- my $Pages = shift;
- my $name = shift;
- my ($page, $letter, $summary, $i, $l1, $l2, $l);
-
- $i = 0;
- $summary = '<table><tr><th valign=top>Jump to: &nbsp; </th><td>';
-
- for $page ($first_page, @$Pages)
- {
- for $letter (@{$page->{Letters}})
- {
- $l = t2h_anchor('', "$page->{href}#${name}_$letter", "<b>$letter</b>",
- 0, 'style="text-decoration:none"') . "\n &nbsp; \n";
-
- if ($letter =~ /^[A-Za-z]/)
- {
- $l2 .= $l;
- }
- else
- {
- $l1 .= $l;
- }
- }
- }
- $summary .= $l1 . "<BR>\n" if ($l1);
- $summary .= $l2 . '</td></tr></table><br>';
- return $summary;
-}
-
-sub PrintIndexPage
-{
- my $lines = shift;
- my $summary = shift;
- my $page = shift;
- my $name = shift;
-
- push @$lines, $summary;
-
- push @$lines , <<EOT;
-<P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-EOT
-
- for $letter (@{$page->{Letters}})
- {
- push @$lines, "<TR><TH><A NAME=\"${name}_$letter\"></A>$letter</TH><TD></TD><TD></TD></TR>\n";
- for $entry (@{$page->{EntriesByLetter}->{$letter}})
- {
- push @$lines,
- "<TR><TD></TD><TD valign=top>" .
- t2h_anchor('', $entry->{href}, $entry->{html_key}) .
- "</TD><TD valign=top>" .
- t2h_anchor('', sec_href($entry->{section}), clean_name($entry->{section})) .
- "</TD></TR>\n";
- }
- push @$lines, "<TR><TD COLSPAN=3> <HR></TD></TR>\n";
- }
- push @$lines, "</TABLE><P></P>";
- push @$lines, $summary;
-}
-
-sub PrintIndex
-{
- my $lines = shift;
- my $name = shift;
- my $section = shift;
- $section = 'Top' unless $section;
- my $prefix = IndexName2Prefix($name);
-
- warn ("$ERROR printindex: bad index name: $name"), return
- unless $prefix;
-
- if ($index_properties->{$prefix}->{code})
- {
- $index_properties->{$prefix}->{from_code}->{$prefix} = 1;
- }
- else
- {
- $index_properties->{$prefix}->{from}->{$prefix}= 1;
- }
-
- my $Entries = GetIndexEntries($index_properties->{$prefix}->{from},
- $index_properties->{$prefix}->{from_code});
- return unless %$Entries;
-
- if ($T2H_IDX_SUMMARY)
- {
- my $key;
- open(FHIDX, ">$docu_rdir$docu_name" . "_$name.idx")
- || die "Can't open > $docu_rdir$docu_name" . "_$name.idx for writing: $!\n";
- print "# writing $name index summary in $docu_rdir$docu_name" . "_$name.idx...\n" if $T2H_VERBOSE;
-
- for $key (sort keys %$Entries)
- {
- print FHIDX "$key\t$Entries->{$key}->{href}\n";
- }
- }
-
- my $Pages = GetIndexPages($Entries);
- my $page;
- my $first_page = shift @$Pages;
- my $sec_name = $section;
- # remove section number
- $sec_name =~ s/.*? // if $sec_name =~ /^([A-Z]|\d+)\./;
-
- ($first_page->{href} = sec_href($section)) =~ s/\#.*$//;
- # Update tree structure of document
- if (@$Pages)
- {
- my $sec;
- my @after;
-
- while (@sections && $sections[$#sections] ne $section)
- {
- unshift @after, pop @sections;
- }
-
- for $page (@$Pages)
- {
- my $node = ($page->{First} ne $page->{Last} ?
- "$sec_name: $page->{First} -- $page->{Last}" :
- "$sec_name: $page->{First}");
- push @sections, $node;
- $node2sec{$node} = $node;
- $sec2node{$node} = $node;
- $node2up{$node} = $section;
- $page->{href} = next_doc();
- $page->{name} = $node;
- $node2href{$node} = $page->{href};
- if ($prev_node)
- {
- $node2next{$prev_node} = $node;
- $node2prev{$node} = $prev_node;
- }
- $prev_node = $node;
- }
- push @sections, @after;
- }
-
- my $summary = GetIndexSummary($first_page, $Pages, $name);
- PrintIndexPage($lines, $summary, $first_page, $name);
- for $page (@$Pages)
- {
- push @$lines, ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND);
- push @$lines, "<H2 ALIGN=\"Left\">$page->{name}</H2>\n";
- PrintIndexPage($lines, $summary, $page, $name);
- }
-}
-
-
-#+++############################################################################
-# #
-# Pass 2/3: handle style, menu, index, cross-reference #
-# #
-#---############################################################################
-
-@lines2 = (); # whole document (2nd pass)
-@lines3 = (); # whole document (3rd pass)
-$in_menu = 0; # am I inside a menu
-
-while (@lines) {
- $_ = shift(@lines);
- #
- # special case (protected sections)
- #
- if (/^$PROTECTTAG/o) {
- push(@lines2, $_);
- next;
- }
- #
- # menu
- #
- if (/^\@menu\b/)
- {
- $in_menu = 1;
- $in_menu_listing = 1;
- push(@lines2, &debug("<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0> \n", __LINE__));
- next;
- }
- if (/^\@end\s+menu\b/)
- {
- if ($in_menu_listing)
- {
- push(@lines2, &debug("</TABLE></BLOCKQUOTE>\n", __LINE__));
- }
- else
- {
- push(@lines2, &debug("</BLOCKQUOTE>\n", __LINE__));
- }
- $in_menu = 0;
- $in_menu_listing = 0;
- next;
- }
- if ($in_menu)
- {
- my ($node, $name, $descr);
- if (/^\*\s+($NODERE)::/o)
- {
- $node = $1;
- $descr = $';
- }
- elsif (/^\*\s+(.+):\s+([^\t,\.\n]+)[\t,\.\n]/)
- {
- $name = $1;
- $node = $2;
- $descr = $';
- }
- elsif (/^\*/)
- {
- warn "$ERROR Bad menu line: $_";
- }
- else
- {
- if ($in_menu_listing)
- {
- $in_menu_listing = 0;
- push(@lines2, &debug("</TABLE>\n", __LINE__));
- }
- # should be like verbatim -- preseve spaces, etc
- s/ /\&nbsp;/g;
- $_ .= "<br>\n";
- push(@lines2, $_);
- }
- if ($node)
- {
- if (! $in_menu_listing)
- {
- $in_menu_listing = 1;
- push(@lines2, &debug("<TABLE BORDER=0 CELLSPACING=0>\n", __LINE__));
- }
- # look for continuation
- while ($lines[0] =~ /^\s+\w+/)
- {
- $descr .= shift(@lines);
- }
- &menu_entry($node, $name, $descr);
- }
- next;
- }
- #
- # printindex
- #
- PrintIndex(\@lines2, $2, $1), next
- if (/^<!--::(.*)::-->\@printindex\s+(\w+)/);
- #
- # simple style substitutions
- #
- $_ = &substitute_style($_);
- #
- # xref
- #
- while (/\@(x|px|info|)ref{([^{}]+)(}?)/) {
- # note: Texinfo may accept other characters
- ($type, $nodes, $full) = ($1, $2, $3);
- ($before, $after) = ($`, $');
- if (! $full && $after) {
- warn "$ERROR Bad xref (no ending } on line): $_";
- $_ = "$before$;0${type}ref\{$nodes$after";
- next; # while xref
- }
- if ($type eq 'x') {
- $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} ";
- } elsif ($type eq 'px') {
- $type = "$T2H_WORDS->{$T2H_LANG}->{'see'} ";
- } elsif ($type eq 'info') {
- $type = "$T2H_WORDS->{$T2H_LANG}->{'See'} Info";
- } else {
- $type = '';
- }
- unless ($full) {
- $next = shift(@lines);
- $next = &substitute_style($next);
- chop($nodes); # remove final newline
- if ($next =~ /\}/) { # split on 2 lines
- $nodes .= " $`";
- $after = $';
- } else {
- $nodes .= " $next";
- $next = shift(@lines);
- $next = &substitute_style($next);
- chop($nodes);
- if ($next =~ /\}/) { # split on 3 lines
- $nodes .= " $`";
- $after = $';
- } else {
- warn "$ERROR Bad xref (no ending }): $_";
- $_ = "$before$;0xref\{$nodes$after";
- unshift(@lines, $next);
- next; # while xref
- }
- }
- }
- $nodes =~ s/\s+/ /g; # remove useless spaces
- @args = split(/\s*,\s*/, $nodes);
- $node = $args[0]; # the node is always the first arg
- $node = &normalise_node($node);
- $sec = $args[2] || $args[1] || $node2sec{$node};
- $href = $node2href{$node};
- if (@args == 5) { # reference to another manual
- $sec = $args[2] || $node;
- $man = $args[4] || $args[3];
- $_ = "${before}${type}$T2H_WORDS->{$T2H_LANG}->{'section'} `$sec' in \@cite{$man}$after";
- } elsif ($type =~ /Info/) { # inforef
- warn "$ERROR Wrong number of arguments: $_" unless @args == 3;
- ($nn, $_, $in) = @args;
- $_ = "${before}${type} file `$in', node `$nn'$after";
- } elsif ($sec && $href && ! $T2H_SHORT_REF) {
- $_ = "${before}${type}";
- $_ .= "$T2H_WORDS->{$T2H_LANG}->{'section'} " if ${type};
- $_ .= &t2h_anchor('', $href, $sec) . $after;
- }
- elsif ($href)
- {
- $_ = "${before}${type} " .
- &t2h_anchor('', $href, $args[2] || $args[1] || $node) .
- $after;
- }
- else {
- warn "$ERROR Undefined node ($node): $_";
- $_ = "$before$;0xref{$nodes}$after";
- }
- }
-
- # replace images
- s[\@image\s*{(.+?)}]
- {
- my @args = split (/\s*,\s*/, $1);
- my $base = $args[0];
- my $image =
- LocateIncludeFile("$base.png") ||
- LocateIncludeFile("$base.jpg") ||
- LocateIncludeFile("$base.gif");
- warn "$ERROR no image file for $base: $_" unless ($image && -e $image);
- "<IMG SRC=\"$image\" ALT=\"$base\">";
- ($T2H_CENTER_IMAGE ?
- "<CENTER><IMG SRC=\"$image\" ALT=\"$base\"></CENTER>" :
- "<IMG SRC=\"$image\" ALT=\"$base\">");
- }eg;
-
- #
- # try to guess bibliography references or glossary terms
- #
- unless (/^<H\d><A NAME=\"SEC\d/) {
- if ($use_bibliography) {
- $done = '';
- while (/$BIBRE/o) {
- ($pre, $what, $post) = ($`, $&, $');
- $href = $bib2href{$what};
- if (defined($href) && $post !~ /^[^<]*<\/A>/) {
- $done .= $pre . &t2h_anchor('', $href, $what);
- } else {
- $done .= "$pre$what";
- }
- $_ = $post;
- }
- $_ = $done . $_;
- }
- if ($T2H_USE_GLOSSARY) {
- $done = '';
- while (/\b\w+\b/) {
- ($pre, $what, $post) = ($`, $&, $');
- $entry = $what;
- $entry =~ tr/A-Z/a-z/ unless $entry =~ /^[A-Z\s]+$/;
- $href = $gloss2href{$entry};
- if (defined($href) && $post !~ /^[^<]*<\/A>/) {
- $done .= $pre . &t2h_anchor('', $href, $what);
- } else {
- $done .= "$pre$what";
- }
- $_ = $post;
- }
- $_ = $done . $_;
- }
- }
- # otherwise
- push(@lines2, $_);
-}
-print "# end of pass 2\n" if $T2H_VERBOSE;
-
-#
-# split style substitutions
-#
-while (@lines2) {
- $_ = shift(@lines2);
- #
- # special case (protected sections)
- #
- if (/^$PROTECTTAG/o) {
- push(@lines3, $_);
- next;
- }
- #
- # split style substitutions
- #
- $old = '';
- while ($old ne $_) {
- $old = $_;
- if (/\@(\w+)\{/) {
- ($before, $style, $after) = ($`, $1, $');
- if (defined($style_map{$style})) {
- $_ = $after;
- $text = '';
- $after = '';
- $failed = 1;
- while (@lines2) {
- if (/\}/) {
- $text .= $`;
- $after = $';
- $failed = 0;
- last;
- } else {
- $text .= $_;
- $_ = shift(@lines2);
- }
- }
- if ($failed) {
- die "* Bad syntax (\@$style) after: $before\n";
- } else {
- $text = &apply_style($style, $text);
- $_ = "$before$text$after";
- }
- }
- }
- }
- # otherwise
- push(@lines3, $_);
-}
-print "# end of pass 3\n" if $T2H_VERBOSE;
-
-#+++############################################################################
-# #
-# Pass 4: foot notes, final cleanup #
-# #
-#---############################################################################
-
-@foot_lines = (); # footnotes
-@doc_lines = (); # final document
-$end_of_para = 0; # true if last line is <P>
-
-while (@lines3) {
- $_ = shift(@lines3);
- #
- # special case (protected sections)
- #
- if (/^$PROTECTTAG/o) {
- push(@doc_lines, $_);
- $end_of_para = 0;
- next;
- }
- #
- # footnotes
- #
- while (/\@footnote([^\{\s]+)\{/) {
- ($before, $d, $after) = ($`, $1, $');
- $_ = $after;
- $text = '';
- $after = '';
- $failed = 1;
- while (@lines3) {
- if (/\}/) {
- $text .= $`;
- $after = $';
- $failed = 0;
- last;
- } else {
- $text .= $_;
- $_ = shift(@lines3);
- }
- }
- if ($failed) {
- die "* Bad syntax (\@footnote) after: $before\n";
- } else {
- $foot_num++;
- $docid = "DOCF$foot_num";
- $footid = "FOOT$foot_num";
- $foot = "($foot_num)";
- push(@foot_lines, "<H3>" . &t2h_anchor($footid, "$d#$docid", $foot) . "</H3>\n");
- $text = "<P>$text" unless $text =~ /^\s*<P>/;
- push(@foot_lines, "$text\n");
- $_ = $before . &t2h_anchor($docid, "$docu_foot#$footid", $foot) . $after;
- }
- }
- #
- # remove unnecessary <P>
- #
- if (/^\s*<P>\s*$/) {
- next if $end_of_para++;
- } else {
- $end_of_para = 0;
- }
- # otherwise
- push(@doc_lines, $_);
-}
-
-print "# end of pass 4\n" if $T2H_VERBOSE;
-
-#+++############################################################################
-# #
-# Pass 5: print things #
-# #
-#---############################################################################
-
-$T2H_L2H = &l2h_FinishToLatex if ($T2H_L2H);
-$T2H_L2H = &l2h_ToHtml if ($T2H_L2H);
-$T2H_L2H = &l2h_InitFromHtml if ($T2H_L2H);
-
-# fix node2up, node2prev, node2next, if desired
-if ($has_top_command)
-{
- for $section (keys %sec2number)
- {
- $node = $sec2node{$section};
- $node2up{$node} = Sec2UpNode($section) unless $node2up{$node};
- $node2prev{$node} = Sec2PrevNode($section) unless $node2prev{$node};
- $node2next{$node} = Sec2NextNode($section) unless $node2next{$node};
- }
-}
-
-# prepare %T2H_THISDOC
-$T2H_THISDOC{fulltitle} = $value{'_title'} || $value{'_settitle'} || "Untitled Document";
-$T2H_THISDOC{title} = $value{'_settitle'} || $T2H_THISDOC{fulltitle};
-$T2H_THISDOC{author} = $value{'_author'};
-$T2H_THISDOC{subtitle} = $value{'_subtitle'};
-$T2H_THISDOC{shorttitle} = $value{'_shorttitle'};
-for $key (keys %T2H_THISDOC)
-{
- $_ = &substitute_style($T2H_THISDOC{$key});
- &unprotect_texi;
- s/\s*$//;
- $T2H_THISDOC{$key} = $_;
-}
-
-# if no sections, then simply print document as is
-unless (@sections)
-{
- print "# Writing content into $docu_top_file \n" if $T2H_VERBOSE;
- open(FILE, "> $docu_top_file")
- || die "$ERROR: Can't open $docu_top_file for writing: $!\n";
-
- &$T2H_print_page_head(\*FILE);
- $T2H_THIS_SECTION = \@doc_lines;
- t2h_print_lines(\*FILE);
- &$T2H_print_foot_navigation(\*FILE);
- &$T2H_print_page_foot(\*FILE);
- close(FILE);
- goto Finish;
-}
-
-# initialize $T2H_HREF, $T2H_NAME
-%T2H_HREF =
- (
- 'First' , sec_href($sections[0]),
- 'Last', sec_href($sections[$#sections]),
- 'About', $docu_about. '#SEC_About',
- );
-
-# prepare TOC, OVERVIEW, TOP
-$T2H_TOC = \@toc_lines;
-$T2H_OVERVIEW = \@stoc_lines;
-if ($has_top)
-{
- while (1)
- {
- $_ = shift @doc_lines;
- last if /$TOPEND/;
- push @$T2H_TOP, $_;
- }
- $T2H_HREF{'Top'} = $docu_top . '#SEC_Top';
-}
-else
-{
- $T2H_HREF{'Top'} = $T2H_HREF{First};
-}
-
-$node2href{Top} = $T2H_HREF{Top};
-$T2H_HREF{Contents} = $docu_toc.'#SEC_Contents' if @toc_lines;
-$T2H_HREF{Overview} = $docu_stoc.'#SEC_OVERVIEW' if @stoc_lines;
-
-# settle on index
-if ($T2H_INDEX_CHAPTER)
-{
- $T2H_HREF{Index} = $node2href{normalise_node($T2H_INDEX_CHAPTER)};
- warn "$ERROR T2H_INDEX_CHAPTER '$T2H_INDEX_CHAPTER' not found\n"
- unless $T2H_HREF{Index};
-}
-if (! $T2H_HREF{Index} && $first_index_chapter)
-{
- $T2H_INDEX_CHAPTER = $first_index_chapter;
- $T2H_HREF{Index} = $node2href{$T2H_INDEX_CHAPTER};
-}
-
-print "# Using '" . clean_name($T2H_INDEX_CHAPTER) . "' as index page\n"
- if ($T2H_VERBOSE && $T2H_HREF{Index});
-
-%T2H_NAME =
- (
- 'First', clean_name($sec2node{$sections[0]}),
- 'Last', clean_name($sec2node{$sections[$#sections]}),
- 'About', $T2H_WORDS->{$T2H_LANG}->{'About_Title'},
- 'Contents', $T2H_WORDS->{$T2H_LANG}->{'ToC_Title'},
- 'Overview', $T2H_WORDS->{$T2H_LANG}->{'Overview_Title'},
- 'Index' , clean_name($T2H_INDEX_CHAPTER),
- 'Top', clean_name($T2H_TOP_HEADING || $T2H_THISDOC{'title'} || $T2H_THISDOC{'shorttitle'}),
- );
-
-#############################################################################
-# print frame and frame toc file
-#
-if ( $T2H_FRAMES )
-{
- open(FILE, "> $docu_frame_file")
- || die "$ERROR: Can't open $docu_frame_file for writing: $!\n";
- print "# Creating frame in $docu_frame_file ...\n" if $T2H_VERBOSE;
- &$T2H_print_frame(\*FILE);
- close(FILE);
-
- open(FILE, "> $docu_toc_frame_file")
- || die "$ERROR: Can't open $docu_toc_frame_file for writing: $!\n";
- print "# Creating toc frame in $docu_frame_file ...\n" if $T2H_VERBOSE;
- &$T2H_print_toc_frame(\*FILE);
- close(FILE);
-}
-
-
-#############################################################################
-# print Top
-#
-open(FILE, "> $docu_top_file")
- || die "$ERROR: Can't open $docu_top_file for writing: $!\n";
-&$T2H_print_page_head(\*FILE) unless ($T2H_SPLIT);
-
-if ($has_top)
-{
- print "# Creating Top in $docu_top_file ...\n" if $T2H_VERBOSE;
- $T2H_THIS_SECTION = $T2H_TOP;
- $T2H_HREF{This} = $T2H_HREF{Top};
- $T2H_NAME{This} = $T2H_NAME{Top};
- &$T2H_print_Top(\*FILE);
-}
-
-close(FILE) if $T2H_SPLIT;
-
-#############################################################################
-# Print sections
-#
-$T2H_NODE{Forward} = $sec2node{$sections[0]};
-$T2H_NAME{Forward} = &clean_name($sec2node{$sections[0]});
-$T2H_HREF{Forward} = sec_href($sections[0]);
-$T2H_NODE{This} = 'Top';
-$T2H_NAME{This} = $T2H_NAME{Top};
-$T2H_HREF{This} = $T2H_HREF{Top};
-if ($T2H_SPLIT)
-{
- print "# writing " . scalar(@sections) .
- " sections in $docu_rdir$docu_name"."_[1..$doc_num]"
- if $T2H_VERBOSE;
- $previous = ($T2H_SPLIT eq 'chapter' ? $CHAPTEREND : $SECTIONEND);
- undef $FH;
- $doc_num = 0;
-}
-else
-{
- print "# writing " . scalar(@sections) . " sections in $docu_top_file ..."
- if $T2H_VERBOSE;
- $FH = \*FILE;
- $previous = '';
-}
-
-$counter = 0;
-# loop through sections
-while ($section = shift(@sections))
-{
- if ($T2H_SPLIT && ($T2H_SPLIT eq 'section' || $previous eq $CHAPTEREND))
- {
- if ($FH)
- {
- #close previous page
- &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter';
- &$T2H_print_page_foot($FH);
- close($FH);
- undef $FH;
- }
- }
- $T2H_NAME{Back} = $T2H_NAME{This};
- $T2H_HREF{Back} = $T2H_HREF{This};
- $T2H_NODE{Back} = $T2H_NODE{This};
- $T2H_NAME{This} = $T2H_NAME{Forward};
- $T2H_HREF{This} = $T2H_HREF{Forward};
- $T2H_NODE{This} = $T2H_NODE{Forward};
- if ($sections[0])
- {
- $T2H_NODE{Forward} = $sec2node{$sections[0]};
- $T2H_NAME{Forward} = &clean_name($T2H_NODE{Forward});
- $T2H_HREF{Forward} = sec_href($sections[0]);
- }
- else
- {
- undef $T2H_HREF{Forward}, $T2H_NODE{Forward}, $T2H_NAME{Forward};
- }
-
- $node = $node2up{$T2H_NODE{This}};
- $T2H_HREF{Up} = $node2href{$node};
- if ($T2H_HREF{Up} eq $T2H_HREF{This} || ! $T2H_HREF{Up})
- {
- $T2H_NAME{Up} = $T2H_NAME{Top};
- $T2H_HREF{Up} = $T2H_HREF{Top};
- $T2H_NODE{Up} = 'Up';
- }
- else
- {
- $T2H_NAME{Up} = &clean_name($node);
- $T2H_NODE{Up} = $node;
- }
-
- $node = $T2H_NODE{This};
- $node = $node2prev{$node};
- $T2H_NAME{Prev} = &clean_name($node);
- $T2H_HREF{Prev} = $node2href{$node};
- $T2H_NODE{Prev} = $node;
-
- $node = $T2H_NODE{This};
- if ($node2up{$node} && $node2up{$node} ne 'Top'&&
- ($node2prev{$node} eq $T2H_NODE{Back} || ! $node2prev{$node}))
- {
- $node = $node2up{$node};
- while ($node && $node ne $node2up{$node} && ! $node2prev{$node})
- {
- $node = $node2up{$node};
- }
- $node = $node2prev{$node}
- unless $node2up{$node} eq 'Top' || ! $node2up{$node};
- }
- else
- {
- $node = $node2prev{$node};
- }
- $T2H_NAME{FastBack} = &clean_name($node);
- $T2H_HREF{FastBack} = $node2href{$node};
- $T2H_NODE{FastBack} = $node;
-
- $node = $T2H_NODE{This};
- $node = $node2next{$node};
- $T2H_NAME{Next} = &clean_name($node);
- $T2H_HREF{Next} = $node2href{$node};
- $T2H_NODE{Next} = $node;
-
- $node = $T2H_NODE{This};
- if ($node2up{$node} && $node2up{$node} ne 'Top'&&
- ($node2next{$node} eq $T2H_NODE{Forward} || ! $node2next{$node}))
- {
- $node = $node2up{$node};
- while ($node && $node ne $node2up{$node} && ! $node2next{$node})
- {
- $node = $node2up{$node};
- }
- }
- $node = $node2next{$node};
- $T2H_NAME{FastForward} = &clean_name($node);
- $T2H_HREF{FastForward} = $node2href{$node};
- $T2H_NODE{FastForward} = $node;
-
- if (! defined($FH))
- {
- my $file = $T2H_HREF{This};
- $file =~ s/\#.*$//;
- open(FILE, "> $docu_rdir$file") ||
- die "$ERROR: Can't open $docu_rdir$file for writing: $!\n";
- $FH = \*FILE;
- &$T2H_print_page_head($FH);
- t2h_print_label($FH);
- &$T2H_print_chapter_header($FH) if $T2H_SPLIT eq 'chapter';
- }
- else
- {
- t2h_print_label($FH);
- }
-
- $T2H_THIS_SECTION = [];
- while (@doc_lines) {
- $_ = shift(@doc_lines);
- last if ($_ eq $SECTIONEND || $_ eq $CHAPTEREND);
- push(@$T2H_THIS_SECTION, $_);
- }
- $previous = $_;
- &$T2H_print_section($FH);
-
- if ($T2H_VERBOSE)
- {
- $counter++;
- print "." if $counter =~ /00$/;
- }
-}
-if ($T2H_SPLIT)
-{
- &$T2H_print_chapter_footer($FH) if $T2H_SPLIT eq 'chapter';
- &$T2H_print_page_foot($FH);
- close($FH);
-}
-print "\n" if $T2H_VERBOSE;
-
-#############################################################################
-# Print ToC, Overview, Footnotes
-#
-undef $T2H_HREF{Prev};
-undef $T2H_HREF{Next};
-undef $T2H_HREF{Back};
-undef $T2H_HREF{Forward};
-undef $T2H_HREF{Up};
-
-if (@foot_lines)
-{
- print "# writing Footnotes in $docu_foot_file...\n" if $T2H_VERBOSE;
- open (FILE, "> $docu_foot_file") || die "$ERROR: Can't open $docu_foot_file for writing: $!\n"
- if $T2H_SPLIT;
- $T2H_HREF{This} = $docu_foot;
- $T2H_NAME{This} = $T2H_WORDS->{$T2H_LANG}->{'Footnotes_Title'};
- $T2H_THIS_SECTION = \@foot_lines;
- &$T2H_print_Footnotes(\*FILE);
- close(FILE) if $T2H_SPLIT;
-}
-
-if (@toc_lines)
-{
- print "# writing Toc in $docu_toc_file...\n" if $T2H_VERBOSE;
- open (FILE, "> $docu_toc_file") || die "$ERROR: Can't open $docu_toc_file for writing: $!\n"
- if $T2H_SPLIT;
- $T2H_HREF{This} = $T2H_HREF{Contents};
- $T2H_NAME{This} = $T2H_NAME{Contents};
- $T2H_THIS_SECTION = \@toc_lines;
- &$T2H_print_Toc(\*FILE);
- close(FILE) if $T2H_SPLIT;
-}
-
-if (@stoc_lines)
-{
- print "# writing Overview in $docu_stoc_file...\n" if $T2H_VERBOSE;
- open (FILE, "> $docu_stoc_file") || die "$ERROR: Can't open $docu_stoc_file for writing: $!\n"
- if $T2H_SPLIT;
-
- $T2H_HREF{This} = $T2H_HREF{Overview};
- $T2H_NAME{This} = $T2H_NAME{Overview};
- $T2H_THIS_SECTION = \@stoc_lines;
- unshift @$T2H_THIS_SECTION, "<BLOCKQUOTE>\n";
- push @$T2H_THIS_SECTION, "\n</BLOCKQUOTE>\n";
- &$T2H_print_Overview(\*FILE);
- close(FILE) if $T2H_SPLIT;
-}
-
-if ($about_body = &$T2H_about_body())
-{
- print "# writing About in $docu_about_file...\n" if $T2H_VERBOSE;
- open (FILE, "> $docu_about_file") || die "$ERROR: Can't open $docu_about_file for writing: $!\n"
- if $T2H_SPLIT;
-
- $T2H_HREF{This} = $T2H_HREF{About};
- $T2H_NAME{This} = $T2H_NAME{About};
- $T2H_THIS_SECTION = [$about_body];
- &$T2H_print_About(\*FILE);
- close(FILE) if $T2H_SPLIT;
-}
-
-unless ($T2H_SPLIT)
-{
- &$T2H_print_page_foot(\*FILE);
- close (FILE);
-}
-
-Finish:
-&l2h_FinishFromHtml if ($T2H_L2H);
-&l2h_Finish if($T2H_L2H);
-print "# that's all folks\n" if $T2H_VERBOSE;
-
-exit(0);
-
-#+++############################################################################
-# #
-# Low level functions #
-# #
-#---############################################################################
-
-sub LocateIncludeFile
-{
- my $file = shift;
- my $dir;
-
- return $file if (-e $file && -r $file);
- foreach $dir (@T2H_INCLUDE_DIRS)
- {
- return "$dir/$file" if (-e "$dir/$file" && -r "$dir/$file");
- }
- return undef;
-}
-
-sub clean_name
-{
- local ($_);
- $_ = &remove_style($_[0]);
- &unprotect_texi;
- return $_;
-}
-
-sub update_sec_num {
- local($name, $level) = @_;
- my $ret;
-
- $level--; # here we start at 0
- if ($name =~ /^appendix/ || defined(@appendix_sec_num)) {
- # appendix style
- if (defined(@appendix_sec_num)) {
- &incr_sec_num($level, @appendix_sec_num);
- } else {
- @appendix_sec_num = ('A', 0, 0, 0);
- }
- $ret = join('.', @appendix_sec_num[0..$level]);
- } else {
- # normal style
- if (defined(@normal_sec_num))
- {
- &incr_sec_num($level, @normal_sec_num);
- }
- else
- {
- @normal_sec_num = (1, 0, 0, 0);
- }
- $ret = join('.', @normal_sec_num[0..$level]);
- }
-
- $ret .= "." if $level == 0;
- return $ret;
-}
-
-sub incr_sec_num {
- local($level, $l);
- $level = shift(@_);
- $_[$level]++;
- foreach $l ($level+1 .. 3) {
- $_[$l] = 0;
- }
-}
-
-sub Sec2UpNode
-{
- my $sec = shift;
- my $num = $sec2number{$sec};
-
- return '' unless $num;
- return 'Top' unless $num =~ /\.\d+/;
- $num =~ s/\.[^\.]*$//;
- $num = $num . '.' unless $num =~ /\./;
- return $sec2node{$number2sec{$num}};
-}
-
-sub Sec2PrevNode
-{
- my $sec = shift;
- my $num = $sec2number{$sec};
- my ($i, $post);
-
- if ($num =~ /(\w+)(\.$|$)/)
- {
- $num = $`;
- $i = $1;
- $post = $2;
- if ($i eq 'A')
- {
- $i = $normal_sec_num[0];
- }
- elsif ($i ne '1')
- {
- # unfortunately, -- operator is not magical
- $i = chr(ord($i) + 1);
- }
- else
- {
- return '';
- }
- return $sec2node{$number2sec{$num . $i . $post}}
- }
- return '';
-}
-
-sub Sec2NextNode
-{
- my $sec = shift;
- my $num = $sec2number{$sec};
- my $i;
-
- if ($num =~ /(\w+)(\.$|$)/)
- {
- $num = $`;
- $i = $1;
- $post = $2;
- if ($post eq '.' && $i eq $normal_sec_num[0])
- {
- $i = 'A';
- }
- else
- {
- $i++;
- }
- return $sec2node{$number2sec{$num . $i . $post}}
- }
- return '';
-}
-
-sub check {
- local($_, %seen, %context, $before, $match, $after);
-
- while (<>) {
- if (/\@(\*|\.|\:|\@|\{|\})/) {
- $seen{$&}++;
- $context{$&} .= "> $_" if $T2H_VERBOSE;
- $_ = "$`XX$'";
- redo;
- }
- if (/\@(\w+)/) {
- ($before, $match, $after) = ($`, $&, $');
- if ($before =~ /\b[\w-]+$/ && $after =~ /^[\w-.]*\b/) { # e-mail address
- $seen{'e-mail address'}++;
- $context{'e-mail address'} .= "> $_" if $T2H_VERBOSE;
- } else {
- $seen{$match}++;
- $context{$match} .= "> $_" if $T2H_VERBOSE;
- }
- $match =~ s/^\@/X/;
- $_ = "$before$match$after";
- redo;
- }
- }
-
- foreach (sort(keys(%seen))) {
- if ($T2H_VERBOSE) {
- print "$_\n";
- print $context{$_};
- } else {
- print "$_ ($seen{$_})\n";
- }
- }
-}
-
-sub open {
- local($name) = @_;
-
- ++$fh_name;
- if (open($fh_name, $name)) {
- unshift(@fhs, $fh_name);
- } else {
- warn "$ERROR Can't read file $name: $!\n";
- }
-}
-
-sub init_input {
- @fhs = (); # hold the file handles to read
- @input_spool = (); # spooled lines to read
- $fh_name = 'FH000';
- &open($docu);
-}
-
-sub next_line {
- local($fh, $line);
-
- if (@input_spool) {
- $line = shift(@input_spool);
- return($line);
- }
- while (@fhs) {
- $fh = $fhs[0];
- $line = <$fh>;
- return($line) if $line;
- close($fh);
- shift(@fhs);
- }
- return(undef);
-}
-
-# used in pass 1, use &next_line
-sub skip_until {
- local($tag) = @_;
- local($_);
-
- while ($_ = &next_line) {
- return if /^\@end\s+$tag\s*$/;
- }
- die "* Failed to find '$tag' after: " . $lines[$#lines];
-}
-
-# used in pass 1 for l2h use &next_line
-sub string_until {
- local($tag) = @_;
- local($_, $string);
-
- while ($_ = &next_line) {
- return $string if /^\@end\s+$tag\s*$/;
-# $_ =~ s/hbox/mbox/g;
- $string = $string.$_;
- }
- die "* Failed to find '$tag' after: " . $lines[$#lines];
-}
-
-#
-# HTML stacking to have a better HTML output
-#
-
-sub html_reset {
- @html_stack = ('html');
- $html_element = 'body';
-}
-
-sub html_push {
- local($what) = @_;
- push(@html_stack, $html_element);
- $html_element = $what;
-}
-
-sub html_push_if {
- local($what) = @_;
- push(@html_stack, $html_element)
- if ($html_element && $html_element ne 'P');
- $html_element = $what;
-}
-
-sub html_pop {
- $html_element = pop(@html_stack);
-}
-
-sub html_pop_if {
- local($elt);
-
- if (@_) {
- foreach $elt (@_) {
- if ($elt eq $html_element) {
- $html_element = pop(@html_stack) if @html_stack;
- last;
- }
- }
- } else {
- $html_element = pop(@html_stack) if @html_stack;
- }
-}
-
-sub html_debug {
- local($what, $line) = @_;
- if ($T2H_DEBUG & $DEBUG_HTML)
- {
- $what = "\n" unless $what;
- return("<!-- $line @html_stack, $html_element -->$what")
- }
- return($what);
-}
-
-# to debug the output...
-sub debug {
- local($what, $line) = @_;
- return("<!-- $line -->$what")
- if $T2H_DEBUG & $DEBUG_HTML;
- return($what);
-}
-
-sub SimpleTexi2Html
-{
- local $_ = $_[0];
- &protect_texi;
- &protect_html;
- $_ = substitute_style($_);
- $_[0] = $_;
-}
-
-sub normalise_node {
- local $_ = $_[0];
- s/\s+/ /g;
- s/ $//;
- s/^ //;
- &protect_texi;
- &protect_html;
- $_ = substitute_style($_);
- $_[0] = $_;
-}
-
-sub menu_entry
-{
- my ($node, $name, $descr) = @_;
- my ($href, $entry);
-
- &normalise_node($node);
- $href = $node2href{$node};
- if ($href)
- {
- $descr =~ s/^\s+//;
- $descr =~ s/\s*$//;
- $descr = SimpleTexi2Html($descr);
- if ($T2H_NUMBER_SECTIONS && !$T2H_NODE_NAME_IN_MENU && $node2sec{$node})
- {
- $entry = $node2sec{$node};
- $name = '';
- }
- else
- {
- &normalise_node($name);
- $entry = ($name && ($name ne $node || ! $T2H_AVOID_MENU_REDUNDANCY)
- ? "$name : $node" : $node);
- }
-
- if ($T2H_AVOID_MENU_REDUNDANCY && $descr)
- {
- my $clean_entry = $entry;
- $clean_entry =~ s/^.*? // if ($clean_entry =~ /^([A-Z]|\d+)\.[\d\.]* /);
- $clean_entry =~ s/[^\w]//g;
- my $clean_descr = $descr;
- $clean_descr =~ s/[^\w]//g;
- $descr = '' if ($clean_entry eq $clean_descr)
- }
- push(@lines2,&debug('<TR><TD ALIGN="left" VALIGN="TOP">' .
- &t2h_anchor('', $href, $entry) .
- '</TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">' .
- $descr .
- "</TD></TR>\n", __LINE__));
- }
- elsif ($node =~ /^\(.*\)\w+/)
- {
- push(@lines2,&debug('<TR><TD ALIGN="left" VALIGN="TOP">' .
- $entry .
- '</TD><TD ALIGN="left" VALIGN="TOP">' . $descr .
- "</TD></TR>\n", __LINE__))
- }
- else
- {
- warn "$ERROR Undefined node of menu_entry ($node): $_";
- }
-}
-
-sub do_ctrl { "^$_[0]" }
-
-sub do_email {
- local($addr, $text) = split(/,\s*/, $_[0]);
-
- $text = $addr unless $text;
- &t2h_anchor('', "mailto:$addr", $text);
-}
-
-sub do_sc
-{
- # l2h does this much better
- return &l2h_ToLatex("{\\sc ".&unprotect_html($_[0])."}") if ($T2H_L2H);
- return "\U$_[0]\E";
-}
-
-sub do_math
-{
- return &l2h_ToLatex("\$".&unprotect_html($_[0])."\$") if ($T2H_L2H);
- return "<EM>".$text."</EM>";
-}
-
-sub do_uref {
- local($url, $text, $only_text) = split(/,\s*/, $_[0]);
-
- $text = $only_text if $only_text;
- $text = $url unless $text;
- &t2h_anchor('', $url, $text);
-}
-
-sub do_url { &t2h_anchor('', $_[0], $_[0]) }
-
-sub do_acronym
-{
- return '<FONT SIZE="-1">' . $_[0] . '</FONT>';
-}
-
-sub do_accent
-{
- return "&$_[0]acute;" if $_[1] eq 'H';
- return "$_[0]." if $_[1] eq 'dotaccent';
- return "$_[0]*" if $_[1] eq 'ringaccent';
- return "$_[0]".'[' if $_[1] eq 'tieaccent';
- return "$_[0]".'(' if $_[1] eq 'u';
- return "$_[0]_" if $_[1] eq 'ubaraccent';
- return ".$_[0]" if $_[1] eq 'udotaccent';
- return "$_[0]&lt;" if $_[1] eq 'v';
- return "&$_[0]cedil;" if $_[1] eq ',';
- return "$_[0]" if $_[1] eq 'dotless';
- return undef;
-}
-
-sub apply_style {
- local($texi_style, $text) = @_;
- local($style);
-
- $style = $style_map{$texi_style};
- if (defined($style)) { # known style
- if ($style =~ /^\"/) { # add quotes
- $style = $';
- $text = "\`$text\'";
- }
- if ($style =~ /^\&/) { # custom
- $style = $';
- $text = &$style($text, $texi_style);
- } elsif ($style) { # good style
- $text = "<$style>$text</$style>";
- } else { # no style
- }
- } else { # unknown style
- $text = undef;
- }
- return($text);
-}
-
-# remove Texinfo styles
-sub remove_style {
- local($_) = @_;
- 1 while(s/\@\w+{([^\{\}]+)}/$1/g);
- return($_);
-}
-
-sub remove_things
-{
- local ($_) = @_;
- s|\@(\w+)\{\}|$1|g;
- return $_;
-}
-
-sub substitute_style {
- local($_) = @_;
- local($changed, $done, $style, $text);
-
- &simple_substitutions;
- $changed = 1;
- while ($changed) {
- $changed = 0;
- $done = '';
- while (/\@(\w+){([^\{\}]+)}/ || /\@(,){([^\{\}]+)}/) {
- $text = &apply_style($1, $2);
- if ($text) {
- $_ = "$`$text$'";
- $changed = 1;
- } else {
- $done .= "$`\@$1";
- $_ = "{$2}$'";
- }
- }
- $_ = $done . $_;
- }
- return($_);
-}
-
-sub t2h_anchor {
- local($name, $href, $text, $newline, $extra_attribs) = @_;
- local($result);
-
- $result = "<A";
- $result .= " NAME=\"$name\"" if $name;
- if ($href)
- {
- $href =~ s|^$T2H_HREF_DIR_INSTEAD_FILE|./|
- if ($T2H_HREF_DIR_INSTEAD_FILE);
- $result .= ($href =~ /\"/ ? " HREF='$href'" : " HREF=\"$href\"");
- }
- $result .= " $extra_attribs" if $extra_attribs;
- $result .= ">$text</A>";
- $result .= "\n" if $newline;
- return($result);
-}
-
-sub pretty_date {
- local(@MoY, $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
-
- @MoY = ('January', 'February', 'March', 'April', 'May', 'June',
- 'July', 'August', 'September', 'October', 'November', 'December');
- ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
- $year += ($year < 70) ? 2000 : 1900;
- # obachman: Let's do it as the Americans do
- return("$MoY[$mon], $mday $year");
-}
-
-sub doc_href {
- local($num) = @_;
-
- return("${docu_name}_$num.$docu_ext");
-}
-
-sub sec_href
-{
- return $node2href{$sec2node{$_[0]}};
-}
-
-sub next_doc {
- $docu_doc = &doc_href(++$doc_num);
-}
-
-sub t2h_print_lines {
- my ($fh, $lines) = @_;
- local($_);
- $lines = $T2H_THIS_SECTION unless $lines;
- my $cnt = 0;
- for (@$lines)
- {
- $_ = l2h_FromHtml($_) if ($T2H_L2H);
- if (/^$PROTECTTAG/o) {
- $_ = $tag2pro{$_};
- } else {
- &unprotect_texi;
- }
- print $fh $_;
- $cnt += split(/\W*\s+\W*/);
- }
- return $cnt;
-}
-
-sub protect_texi {
- # protect @ { } ` '
- s/\@\@/$;0/go;
- s/\@\{/$;1/go;
- s/\@\}/$;2/go;
- s/\@\`/$;3/go;
- s/\@\'/$;4/go;
-}
-
-sub protect_html {
- local($what) = @_;
- # protect & < >
- $what =~ s/\&/\&\#38;/g;
- $what =~ s/\</\&\#60;/g;
- $what =~ s/\>/\&\#62;/g;
- # restore anything in quotes
- # this fixes my problem where I had:
- # < IMG SRC="leftarrow.gif" ALT="<--" > but what if I wanted &#60; in my ALT text ??
- # maybe byte stuffing or some other technique should be used.
- $what =~ s/\"([^\&]+)\&\#60;(.*)\"/"$1<$2"/g;
- $what =~ s/\"([^\&]+)\&\#62;(.*)\"/"$1>$2"/g;
- $what =~ s/\"([^\&]+)\&\#38;(.*)\"/"$1&$2"/g;
- # but recognize some HTML things
- $what =~ s/\&\#60;\/A\&\#62;/<\/A>/g; # </A>
- $what =~ s/\&\#60;A ([^\&]+)\&\#62;/<A $1>/g; # <A [^&]+>
- $what =~ s/\&\#60;IMG ([^\&]+)\&\#62;/<IMG $1>/g; # <IMG [^&]+>
- return($what);
-}
-
-sub unprotect_texi {
- s/$;0/\@/go;
- s/$;1/\{/go;
- s/$;2/\}/go;
- s/$;3/\`/go;
- s/$;4/\'/go;
-}
-
-sub Unprotect_texi
-{
- local $_ = shift;
- &unprotect_texi;
- return($_);
-}
-
-sub unprotect_html {
- local($what) = @_;
- $what =~ s/\&\#38;/\&/g;
- $what =~ s/\&\#60;/\</g;
- $what =~ s/\&\#62;/\>/g;
- return($what);
-}
-
-sub t2h_print_label
-{
- my $fh = shift;
- my $href = shift || $T2H_HREF{This};
- $href =~ s/.*#(.*)$/$1/;
- print $fh qq{<A NAME="$href"></A>\n};
-}
-
-##############################################################################
-
- # These next few lines are legal in both Perl and nroff.
-
-.00 ; # finish .ig
-
-'di \" finish diversion--previous line must be blank
-.nr nl 0-1 \" fake up transition to first page again
-.nr % 0 \" start at page 1
-'; __END__ ############# From here on it's a standard manual page ############
-.so /usr/local/man/man1/texi2html.1
diff --git a/readline-4.3/doc/texinfo.tex b/readline-4.3/doc/texinfo.tex
deleted file mode 100644
index c49af9f..0000000
--- a/readline-4.3/doc/texinfo.tex
+++ /dev/null
@@ -1,5992 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-%
-% Load plain if necessary, i.e., if running under initex.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-%
-\def\texinfoversion{1999-09-25.10}
-%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
-% Free Software Foundation, Inc.
-%
-% This texinfo.tex file is free software; you can redistribute it and/or
-% modify it under the terms of the GNU General Public License as
-% published by the Free Software Foundation; either version 2, or (at
-% your option) any later version.
-%
-% This texinfo.tex file is distributed in the hope that it will be
-% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-% General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this texinfo.tex file; see the file COPYING. If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them. Help stamp out software-hoarding!
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-% ftp://ftp.gnu.org/gnu/texinfo.tex
-% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
-% ftp://texinfo.org/tex/texinfo.tex
-% ftp://us.ctan.org/macros/texinfo/texinfo.tex
-% (and all CTAN mirrors, finger ctan@us.ctan.org for a list).
-% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-% The texinfo.tex in any given Texinfo distribution could well be out
-% of date, so if that's what you're using, please check.
-% Texinfo has a small home page at http://texinfo.org/.
-%
-% Send bug reports to bug-texinfo@gnu.org. Please include including a
-% complete document in each bug report with which we can reproduce the
-% problem. Patches are, of course, greatly appreciated.
-%
-% To process a Texinfo manual with TeX, it's most reliable to use the
-% texi2dvi shell script that comes with the distribution. For a simple
-% manual foo.texi, however, you can get away with this:
-% tex foo.texi
-% texindex foo.??
-% tex foo.texi
-% tex foo.texi
-% dvips foo.dvi -o # or whatever, to process the dvi file; this makes foo.ps.
-% The extra runs of TeX get the cross-reference information correct.
-% Sometimes one run after texindex suffices, and sometimes you need more
-% than two; texi2dvi does it as many times as necessary.
-%
-% It is possible to adapt texinfo.tex for other languages. You can get
-% the existing language-specific files from ftp://ftp.gnu.org/gnu/texinfo/.
-
-\message{Loading texinfo [version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}%
- \catcode`+=\active \catcode`\_=\active}
-
-% Save some parts of plain tex whose names we will redefine.
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexi=\i
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexstar=\*
-\let\ptext=\t
-
-% We never want plain's outer \+ definition in Texinfo.
-% For @tex, we can use \tabalign.
-\let\+ = \relax
-
-\message{Basics,}
-\chardef\other=12
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Set up fixed words for English if not already set.
-\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
-\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
-\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
-\ifx\putwordin\undefined \gdef\putwordin{in}\fi
-\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
-\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
-\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
-\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
-\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
-\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi
-\ifx\putwordof\undefined \gdef\putwordof{of}\fi
-\ifx\putwordon\undefined \gdef\putwordon{on}\fi
-\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
-\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
-\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
-\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
-\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
-\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi
-\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi
-%
-\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
-\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
-\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
-\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
-\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
-\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
-\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
-\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
-\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
-\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
-\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
-\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
-%
-\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi
-\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
-\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
-\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
-\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi
-\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
-\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
-\hyphenation{white-space}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal. We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\ifx\eTeXversion\undefined
-\def\loggingall{\tracingcommands2 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\else
-\def\loggingall{\tracingcommands3 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \tracingscantokens1 \tracingassigns1 \tracingifs1
- \tracinggroups1 \tracingnesting2
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\fi
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-%
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
-\newdimen\cornerlong \cornerlong=1pc
-\newdimen\cornerthick \cornerthick=.3pt
-\newdimen\topandbottommargin \topandbottommargin=.75in
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
- \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
- %
- \ifodd\pageno \advance\hoffset by \bindingoffset
- \else \advance\hoffset by -\bindingoffset\fi
- %
- % Do this outside of the \shipout so @code etc. will be expanded in
- % the headline as they should be, not taken literally (outputting ''code).
- \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
- \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
- %
- {%
- % Have to do this stuff outside the \shipout because we want it to
- % take effect in \write's, yet the group defined by the \vbox ends
- % before the \shipout runs.
- %
- \escapechar = `\\ % use backslash in output files.
- \indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
- \shipout\vbox{%
- \ifcropmarks \vbox to \outervsize\bgroup
- \hsize = \outerhsize
- \vskip-\topandbottommargin
- \vtop to0pt{%
- \line{\ewtop\hfil\ewtop}%
- \nointerlineskip
- \line{%
- \vbox{\moveleft\cornerthick\nstop}%
- \hfill
- \vbox{\moveright\cornerthick\nstop}%
- }%
- \vss}%
- \vskip\topandbottommargin
- \line\bgroup
- \hfil % center the page within the outer (page) hsize.
- \ifodd\pageno\hskip\bindingoffset\fi
- \vbox\bgroup
- \fi
- %
- \unvbox\headlinebox
- \pagebody{#1}%
- \ifdim\ht\footlinebox > 0pt
- % Only leave this space if the footline is nonempty.
- % (We lessened \vsize for it in \oddfootingxxx.)
- % The \baselineskip=24pt in plain's \makefootline has no effect.
- \vskip 2\baselineskip
- \unvbox\footlinebox
- \fi
- %
- \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
- %
- \ifcropmarks
- \egroup % end of \vbox\bgroup
- \hfil\egroup % end of (centering) \line\bgroup
- \vskip\topandbottommargin plus1fill minus1fill
- \boxmaxdepth = \cornerthick
- \vbox to0pt{\vss
- \line{%
- \vbox{\moveleft\cornerthick\nsbot}%
- \hfill
- \vbox{\moveright\cornerthick\nsbot}%
- }%
- \nointerlineskip
- \line{\ewbot\hfil\ewbot}%
- }%
- \egroup % \vbox from first cropmarks clause
- \fi
- }% end of \shipout\vbox
- }% end of group with \turnoffactive
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, juha@viisa.uucp (Juha Takala)
-\ifvoid\margin\else % marginal info is present
- \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1 \unvbox#1
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
-\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks. Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
- {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
- {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1. The argument is the rest of
-% the input line (except we remove a trailing comment). #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg#1{%
- \let\next = #1%
- \begingroup
- \obeylines
- \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse. Otherwise, we're done.
-\def\parseargx{%
- % \obeyedspace is defined far below, after the definition of \sepspaces.
- \ifx\obeyedspace\temp
- \expandafter\parseargdiscardspace
- \else
- \expandafter\parseargline
- \fi
-}
-
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
-{\obeylines %
- \gdef\parseargline#1^^M{%
- \endgroup % End of the group started in \parsearg.
- %
- % First remove any @c comment, then any @comment.
- % Result of each macro is put in \toks0.
- \argremovec #1\c\relax %
- \expandafter\argremovecomment \the\toks0 \comment\relax %
- %
- % Call the caller's macro, saved as \next in \parsearg.
- \expandafter\next\expandafter{\the\toks0}%
- }%
-}
-
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us. The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
-
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
-% @end itemize @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'. Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands. (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.) But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
- \begingroup
- \ignoreactivespaces
- \edef\temp{#1}%
- \global\toks0 = \expandafter{\temp}%
- \endgroup
-}
-
-% Change the active space to expand to nothing.
-%
-\begingroup
- \obeyspaces
- \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment; press RETURN to continue}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
-
-% @begin foo is the same as @foo, for now.
-\newhelp\EMsimple{Press RETURN to continue.}
-
-\outer\def\begin{\parsearg\beginxxx}
-
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
-
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
- \removeactivespaces{#1}%
- \edef\endthing{\the\toks0}%
- %
- \expandafter\ifx\csname E\endthing\endcsname\relax
- \expandafter\ifx\csname \endthing\endcsname\relax
- % There's no \foo, i.e., no ``environment'' foo.
- \errhelp = \EMsimple
- \errmessage{Undefined command `@end \endthing'}%
- \else
- \unmatchedenderror\endthing
- \fi
- \else
- % Everything's ok; the right environment has been started.
- \csname E\endthing\endcsname
- \fi
-}
-
-% There is an environment #1, but it hasn't been started. Give an error.
-%
-\def\unmatchedenderror#1{%
- \errhelp = \EMsimple
- \errmessage{This `@end #1' doesn't have a matching `@#1'}%
-}
-
-% Define the control sequence \E#1 to give an unmatched @end error.
-%
-\def\defineunmatchedend#1{%
- \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
-}
-
-
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
- % Why was this kern here? It messes up equalizing space above and below
- % environments. --karl, 6may93
- %{\advance \baselineskip by -\singlespaceskip
- %\kern \baselineskip}%
- \setleading \singlespaceskip
-}
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt\char64}}
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt\char123}}
-\def\myrbrace {{\tt\char125}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
- % Definitions to produce actual \{ & \} command in an index.
- \catcode`\{ = 12 \catcode`\} = 12
- \catcode`\[ = 1 \catcode`\] = 2
- \catcode`\@ = 0 \catcode`\\ = 12
- @gdef@lbracecmd[\{]%
- @gdef@rbracecmd[\}]%
-@endgroup
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
- \def\temp{#1}%
- \ifx\temp\imacro \ptexi
- \else\ifx\temp\jmacro \j
- \else \errmessage{@dotless can be used only with i or j}%
- \fi\fi
-}
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using \@M directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = \@M
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
-
-% @w prevents a word break. Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line. According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0). If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-\def\group{\begingroup
- \ifnum\catcode13=\active \else
- \errhelp = \groupinvalidhelp
- \errmessage{@group invalid in context where filling is enabled}%
- \fi
- %
- % The \vtop we start below produces a box with normal height and large
- % depth; thus, TeX puts \baselineskip glue before it, and (when the
- % next line of text is done) \lineskip glue after it. (See p.82 of
- % the TeXbook.) Thus, space below is not quite equal to space
- % above. But it's pretty close.
- \def\Egroup{%
- \egroup % End the \vtop.
- \endgroup % End the \group.
- }%
- %
- \vtop\bgroup
- % We have to put a strut on the last line in case the @group is in
- % the midst of an example, rather than completely enclosing it.
- % Otherwise, the interline space between the last line of the group
- % and the first line afterwards is too small. But we can't put the
- % strut in \Egroup, since there it would be on a line by itself.
- % Hence this just inserts a strut at the beginning of each line.
- \everypar = {\strut}%
- %
- % Since we have a strut on every line, we don't need any of TeX's
- % normal interline spacing.
- \offinterlineskip
- %
- % OK, but now we have to do something about blank
- % lines in the input in @example-like environments, which normally
- % just turn into \lisppar, which will insert no space now that we've
- % turned off the interline space. Simplest is to make them be an
- % empty paragraph.
- \ifx\par\lisppar
- \edef\par{\leavevmode \par}%
- %
- % Reset ^^M's definition to new definition of \par.
- \obeylines
- \fi
- %
- % Do @comment since we are called inside an environment such as
- % @example, where each end-of-line in the input causes an
- % end-of-line in the output. We don't want the end-of-line after
- % the `@group' to put extra space in the output. Since @group
- % should appear on a line by itself (according to the Texinfo
- % manual), we don't worry about eating any user text.
- \comment
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing `@group can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil \mil=0.001in
-
-\def\need{\parsearg\needx}
-
-% Old definition--didn't work.
-%\def\needx #1{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
-%\prevdepth=-1000pt
-%}}
-
-\def\needx#1{%
- % Ensure vertical mode, so we don't make a big box in the middle of a
- % paragraph.
- \par
- %
- % If the @need value is less than one line space, it's useless.
- \dimen0 = #1\mil
- \dimen2 = \ht\strutbox
- \advance\dimen2 by \dp\strutbox
- \ifdim\dimen0 > \dimen2
- %
- % Do a \strut just to make the height of this box be normal, so the
- % normal leading is inserted relative to the preceding line.
- % And a page break here is fine.
- \vtop to #1\mil{\strut\vfil}%
- %
- % TeX does not even consider page breaks if a penalty added to the
- % main vertical list is 10000 or more. But in order to see if the
- % empty box we just added fits on the page, we must make it consider
- % page breaks. On the other hand, we don't want to actually break the
- % page after the empty box. So we use a penalty of 9999.
- %
- % There is an extremely small chance that TeX will actually break the
- % page at this \penalty, if there are no other feasible breakpoints in
- % sight. (If the user is using lots of big @group commands, which
- % almost-but-not-quite fill up a page, TeX will have a hard time doing
- % good page breaking, for example.) However, I could not construct an
- % example where a page broke at this \penalty; if it happens in a real
- % document, then we can reconsider our strategy.
- \penalty9999
- %
- % Back up by the size of the box, whether we did a page break or not.
- \kern -#1\mil
- %
- % Do not allow a page break right after this kern.
- \nobreak
- \fi
-}
-
-% @br forces paragraph break
-
-\let\br = \par
-
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{%
- \leavevmode
- \hbox to 1.5em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
-}
-
-% @enddots{} is an end-of-sentence ellipsis.
-%
-\def\enddots{%
- \leavevmode
- \hbox to 2em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
- \spacefactor=3000
-}
-
-
-% @page forces the start of a new page
-%
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
-
-% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
- \vtop to \strutdepth{\baselineskip\strutdepth\vss
- \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
-
-% @include file insert text of that file as input.
-% Allow normal characters that we make active in the argument (a file name).
-\def\include{\begingroup
- \catcode`\\=12
- \catcode`~=12
- \catcode`^=12
- \catcode`_=12
- \catcode`|=12
- \catcode`<=12
- \catcode`>=12
- \catcode`+=12
- \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
- % Read the included file in a group so nested @include's work.
- \def\thisfile{#1}%
- \input\thisfile
-\endgroup}
-
-\def\thisfile{}
-
-% @center line outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
-
-% @sp n outputs n lines of vertical space
-
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore is another way to write a comment
-
-\def\comment{\begingroup \catcode`\^^M=\other%
-\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
-\commentxxx}
-{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-
-\let\c=\comment
-
-% @paragraphindent NCHARS
-% We'll use ems for NCHARS, close enough.
-% We cannot implement @paragraphindent asis, though.
-%
-\def\asisword{asis} % no translation, these are keywords
-\def\noneword{none}
-%
-\def\paragraphindent{\parsearg\doparagraphindent}
-\def\doparagraphindent#1{%
- \def\temp{#1}%
- \ifx\temp\asisword
- \else
- \ifx\temp\noneword
- \defaultparindent = 0pt
- \else
- \defaultparindent = #1em
- \fi
- \fi
- \parindent = \defaultparindent
-}
-
-% @exampleindent NCHARS
-% We'll use ems for NCHARS like @paragraphindent.
-% It seems @exampleindent asis isn't necessary, but
-% I preserve it to make it similar to @paragraphindent.
-\def\exampleindent{\parsearg\doexampleindent}
-\def\doexampleindent#1{%
- \def\temp{#1}%
- \ifx\temp\asisword
- \else
- \ifx\temp\noneword
- \lispnarrowing = 0pt
- \else
- \lispnarrowing = #1em
- \fi
- \fi
-}
-
-% @asis just yields its argument. Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written. Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo). So we must use a
-% control sequence to switch into and out of math mode.
-%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
-%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
-
-% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% If working on a large document in chapters, it is convenient to
-% be able to disable indexing, cross-referencing, and contents, for test runs.
-% This is done with @novalidate (before @setfilename).
-%
-\newif\iflinks \linkstrue % by default we want the aux files.
-\let\novalidate = \linksfalse
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
- \iflinks
- \readauxfile
- \fi % \openindices needs to do some work in any case.
- \openindices
- \fixbackslash % Turn off hack to swallow `\input texinfo'.
- \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
- %
- % If texinfo.cnf is present on the system, read it.
- % Useful for site-wide @afourpaper, etc.
- % Just to be on the safe side, close the input stream before the \input.
- \openin 1 texinfo.cnf
- \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
- \closein1
- \temp
- %
- \comment % Ignore the actual filename.
-}
-
-% Called from \setfilename.
-%
-\def\openindices{%
- \newindex{cp}%
- \newcodeindex{fn}%
- \newcodeindex{vr}%
- \newcodeindex{tp}%
- \newcodeindex{ky}%
- \newcodeindex{pg}%
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-
-\message{pdf,}
-% adobe `portable' document format
-\newcount\tempnum
-\newcount\lnkcount
-\newtoks\filename
-\newcount\filenamelength
-\newcount\pgn
-\newtoks\toksA
-\newtoks\toksB
-\newtoks\toksC
-\newtoks\toksD
-\newbox\boxA
-\newcount\countA
-\newif\ifpdf
-\newif\ifpdfmakepagedest
-
-\ifx\pdfoutput\undefined
- \pdffalse
- \let\pdfmkdest = \gobble
- \let\pdfurl = \gobble
- \let\endlink = \relax
- \let\linkcolor = \relax
- \let\pdfmakeoutlines = \relax
-\else
- \pdftrue
- \pdfoutput = 1
- \input pdfcolor
- \def\dopdfimage#1#2#3{%
- \def\imagewidth{#2}%
- \def\imageheight{#3}%
- \ifnum\pdftexversion < 14
- \pdfimage
- \else
- \pdfximage
- \fi
- \ifx\empty\imagewidth\else width \imagewidth \fi
- \ifx\empty\imageheight\else height \imageheight \fi
- {#1.pdf}%
- \ifnum\pdftexversion < 14 \else
- \pdfrefximage \pdflastximage
- \fi}
- \def\pdfmkdest#1{\pdfdest name{#1@} xyz}
- \def\pdfmkpgn#1{#1@}
- \let\linkcolor = \Cyan
- \def\endlink{\Black\pdfendlink}
- % Adding outlines to PDF; macros for calculating structure of outlines
- % come from Petr Olsak
- \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
- \else \csname#1\endcsname \fi}
- \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
- \advance\tempnum by1
- \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
- \def\pdfmakeoutlines{{%
- \openin 1 \jobname.toc
- \ifeof 1\else\bgroup
- \closein 1
- \indexnofonts
- \def\tt{}
- % thanh's hack / proper braces in bookmarks
- \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
- \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
- %
- \def\chapentry ##1##2##3{}
- \def\unnumbchapentry ##1##2{}
- \def\secentry ##1##2##3##4{\advancenumber{chap##2}}
- \def\unnumbsecentry ##1##2{}
- \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
- \def\unnumbsubsecentry ##1##2{}
- \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
- \def\unnumbsubsubsecentry ##1##2{}
- \input \jobname.toc
- \def\chapentry ##1##2##3{%
- \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
- \def\unnumbchapentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
- \def\secentry ##1##2##3##4{%
- \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
- \def\unnumbsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
- \def\subsecentry ##1##2##3##4##5{%
- \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
- \def\unnumbsubsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
- \def\subsubsecentry ##1##2##3##4##5##6{%
- \pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
- \def\unnumbsubsubsecentry ##1##2{%
- \pdfoutline goto name{\pdfmkpgn{##2}}{##1}}
- \input \jobname.toc
- \egroup\fi
- }}
- \def\makelinks #1,{%
- \def\params{#1}\def\E{END}%
- \ifx\params\E
- \let\nextmakelinks=\relax
- \else
- \let\nextmakelinks=\makelinks
- \ifnum\lnkcount>0,\fi
- \picknum{#1}%
- \startlink attr{/Border [0 0 0]}
- goto name{\pdfmkpgn{\the\pgn}}%
- \linkcolor #1%
- \advance\lnkcount by 1%
- \endlink
- \fi
- \nextmakelinks
- }
- \def\picknum#1{\expandafter\pn#1}
- \def\pn#1{%
- \def\p{#1}%
- \ifx\p\lbrace
- \let\nextpn=\ppn
- \else
- \let\nextpn=\ppnn
- \def\first{#1}
- \fi
- \nextpn
- }
- \def\ppn#1{\pgn=#1\gobble}
- \def\ppnn{\pgn=\first}
- \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
- \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
- \def\skipspaces#1{\def\PP{#1}\def\D{|}%
- \ifx\PP\D\let\nextsp\relax
- \else\let\nextsp\skipspaces
- \ifx\p\space\else\addtokens{\filename}{\PP}%
- \advance\filenamelength by 1
- \fi
- \fi
- \nextsp}
- \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
- \ifnum\pdftexversion < 14
- \let \startlink \pdfannotlink
- \else
- \let \startlink \pdfstartlink
- \fi
- \def\pdfurl#1{%
- \begingroup
- \normalturnoffactive\def\@{@}%
- \leavevmode\Red
- \startlink attr{/Border [0 0 0]}%
- user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
- % #1
- \endgroup}
- \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
- \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
- \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
- \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
- \def\maketoks{%
- \expandafter\poptoks\the\toksA|ENDTOKS|
- \ifx\first0\adn0
- \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
- \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
- \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
- \else
- \ifnum0=\countA\else\makelink\fi
- \ifx\first.\let\next=\done\else
- \let\next=\maketoks
- \addtokens{\toksB}{\the\toksD}
- \ifx\first,\addtokens{\toksB}{\space}\fi
- \fi
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \next}
- \def\makelink{\addtokens{\toksB}%
- {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
- \def\pdflink#1{%
- \startlink attr{/Border [0 0 0]} goto name{\mkpgn{#1}}
- \linkcolor #1\endlink}
- \def\mkpgn#1{#1@}
- \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
-\fi % \ifx\pdfoutput
-
-
-\message{fonts,}
-% Font-change commands.
-
-% Texinfo sort of supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
-\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
-
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx} %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
-\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
-\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-
-% Fonts for indices, footnotes, small examples (9pt).
-\setfont\smallrm\rmshape{9}{1000}
-\setfont\smalltt\ttshape{9}{1000}
-\setfont\smallbf\bfshape{10}{900}
-\setfont\smallit\itshape{9}{1000}
-\setfont\smallsl\slshape{9}{1000}
-\setfont\smallsf\sfshape{9}{1000}
-\setfont\smallsc\scshape{10}{900}
-\setfont\smallttsl\ttslshape{10}{900}
-\font\smalli=cmmi9
-\font\smallsy=cmsy9
-
-% Fonts for title page:
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-
-% Section fonts (14.4pt).
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-
-% \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than
-%\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
-% Subsection fonts (13.15pt).
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. Since
-% texinfo doesn't allow for producing subscripts and superscripts, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
- \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
- \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
- \textfont\ttfam = \tentt \textfont\sffam = \tensf
-}
-
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE. We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example. By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
-\def\textfonts{%
- \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
- \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
- \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
- \resetmathfonts}
-\def\titlefonts{%
- \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
- \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
- \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
- \let\tenttsl=\titlettsl
- \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
-\def\chapfonts{%
- \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
- \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
- \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
- \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
- \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
- \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
- \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
- \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
- \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\smallfonts{%
- \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
- \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
- \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
- \let\tenttsl=\smallttsl
- \resetmathfonts \setleading{11pt}}
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\textfonts
-
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
-\setfont\shortcontsl\slshape{12}{1000}
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx}
-\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\var=\smartslanted
-\let\dfn=\smartslanted
-\let\emph=\smartitalic
-\let\cite=\smartslanted
-
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph. Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-\def\t#1{%
- {\tt \rawbackslash \frenchspacing #1}%
- \null
-}
-\let\ttfont=\t
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\keyrm\rmshape{8}{1000}
-\font\keysy=cmsy9
-\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
- \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
- \vbox{\hrule\kern-0.4pt
- \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
- \kern-0.4pt\hrule}%
- \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-% @file, @option are the same as @samp.
-\let\file=\samp
-\let\option=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
- {%
- % Change normal interword space to be same as for the current font.
- \spaceskip = \fontdimen2\font
- %
- % Switch to typewriter.
- \tt
- %
- % But `\ ' produces the large typewriter interword space.
- \def\ {{\spaceskip = 0pt{} }}%
- %
- % Turn off hyphenation.
- \nohyphenation
- %
- \rawbackslash
- \frenchspacing
- #1%
- }%
- \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-% -- rms.
-{
- \catcode`\-=\active
- \catcode`\_=\active
- %
- \global\def\code{\begingroup
- \catcode`\-=\active \let-\codedash
- \catcode`\_=\active \let_\codeunder
- \codex
- }
- %
- % If we end up with any active - characters when handling the index,
- % just treat them as a normal -.
- \global\def\indexbreaks{\catcode`\-=\active \let-\realdash}
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
-\def\codex #1{\tclose{#1}\endgroup}
-
-%\let\exp=\tclose %Was temporary
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
- \def\arg{#1}%
- \ifx\arg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\arg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\arg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is kbdinputdistinct. (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
-
-% For @url, @env, @command quotes seem unnecessary, so use \code.
-\let\url=\code
-\let\env=\code
-\let\command=\code
-
-% @uref (abbreviation for `urlref') takes an optional (comma-separated)
-% second argument specifying the text to display and an optional third
-% arg as text to display instead of (rather than in addition to) the url
-% itself. First (mandatory) arg is the url. Perhaps eventually put in
-% a hypertex \special here.
-%
-\def\uref#1{\douref #1,,,\finish}
-\def\douref#1,#2,#3,#4\finish{\begingroup
- \unsepspaces
- \pdfurl{#1}%
- \setbox0 = \hbox{\ignorespaces #3}%
- \ifdim\wd0 > 0pt
- \unhbox0 % third arg given, show only that
- \else
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0 > 0pt
- \ifpdf
- \unhbox0 % PDF: 2nd arg given, show only it
- \else
- \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
- \fi
- \else
- \code{#1}% only url given, so show it
- \fi
- \fi
- \endlink
-\endgroup}
-
-% rms does not like angle brackets --karl, 17may97.
-% So now @email is just like @uref, unless we are pdf.
-%
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\ifpdf
- \def\email#1{\doemail#1,,\finish}
- \def\doemail#1,#2,#3\finish{\begingroup
- \unsepspaces
- \pdfurl{mailto:#1}%
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
- \endlink
- \endgroup}
-\else
- \let\email=\uref
-\fi
-
-% Check if we are currently using a typewriter font. Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find. We need it for
-% Polish suppressed-l. --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-% Explicit font changes: @r, @sc, undocumented @ii.
-\def\r#1{{\rm #1}} % roman font
-\def\sc#1{{\smallcaps#1}} % smallcaps font
-\def\ii#1{{\it #1}} % italic font
-
-% @acronym downcases the argument and prints in smallcaps.
-\def\acronym#1{{\smallcaps \lowercase{#1}}}
-
-% @pounds{} is a sterling sign.
-\def\pounds{{\it\$}}
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page. Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-%
-\newif\ifsetcontentsaftertitlepage
- \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
-\newif\ifsetshortcontentsaftertitlepage
- \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
-
-\def\titlepage{\begingroup \parindent=0pt \textfonts
- \let\subtitlerm=\tenrm
- \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
- %
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
- %
- % Leave some space at the very top of the page.
- \vglue\titlepagetopglue
- %
- % Now you can print the title using @title.
- \def\title{\parsearg\titlezzz}%
- \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
- % No rule at page bottom unless we print one at the top with @title.
- \finishedtitlepagetrue
- %
- % Now you can put text using @subtitle.
- \def\subtitle{\parsearg\subtitlezzz}%
- \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
- %
- % @author should come last, but may come many times.
- \def\author{\parsearg\authorzzz}%
- \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
- {\authorfont \leftline{##1}}}%
- %
- % Most title ``pages'' are actually two pages long, with space
- % at the top of the second. We don't want the ragged left on the second.
- \let\oldpage = \page
- \def\page{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- \oldpage
- \let\page = \oldpage
- \hbox{}}%
-% \def\page{\oldpage \hbox{}}
-}
-
-\def\Etitlepage{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- % It is important to do the page break before ending the group,
- % because the headline and footline are only empty inside the group.
- % If we use the new definition of \page, we always get a blank page
- % after the title page, which we certainly don't want.
- \oldpage
- \endgroup
- %
- % If they want short, they certainly want long too.
- \ifsetshortcontentsaftertitlepage
- \shortcontents
- \contents
- \global\let\shortcontents = \relax
- \global\let\contents = \relax
- \fi
- %
- \ifsetcontentsaftertitlepage
- \contents
- \global\let\contents = \relax
- \global\let\shortcontents = \relax
- \fi
- %
- \ifpdf \pdfmakepagedesttrue \fi
- %
- \HEADINGSon
-}
-
-\def\finishtitlepage{%
- \vskip4pt \hrule height 2pt width \hsize
- \vskip\titlepagebottomglue
- \finishedtitlepagetrue
-}
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks\evenheadline % headline on even pages
-\newtoks\oddheadline % headline on odd pages
-\newtoks\evenfootline % footline on even pages
-\newtoks\oddfootline % footline on odd pages
-
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
- \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
- \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what @headings on does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
- \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
- %
- % Leave some space for the footline. Hopefully ok to assume
- % @evenfooting will not be used by itself.
- \global\advance\pageheight by -\baselineskip
- \global\advance\vsize by -\baselineskip
-}
-
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
-
-% @headings double turns headings on for double-sided printing.
-% @headings single turns headings on for single-sided printing.
-% @headings off turns them off.
-% @headings on same as @headings double, retained for compatibility.
-% @headings after turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{%
- \number\day\space
- \ifcase\month
- \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
- \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
- \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
- \fi
- \space\number\year}
-
-% @settitle line... specifies the title of the document, for headings.
-% It generates no output of its own.
-\def\thistitle{\putwordNoTitle}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
-
-
-\message{tables,}
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
- \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
- \itemzzz {#1}}
-
-\def\itemzzz #1{\begingroup %
- \advance\hsize by -\rightskip
- \advance\hsize by -\tableindent
- \setbox0=\hbox{\itemfont{#1}}%
- \itemindex{#1}%
- \nobreak % This prevents a break before @itemx.
- %
- % If the item text does not fit in the space we have, put it on a line
- % by itself, and do not allow a page break either before or after that
- % line. We do not start a paragraph here because then if the next
- % command is, e.g., @kindex, the whatsit would get put into the
- % horizontal list on a line by itself, resulting in extra blank space.
- \ifdim \wd0>\itemmax
- %
- % Make this a paragraph so we get the \parskip glue and wrapping,
- % but leave it ragged-right.
- \begingroup
- \advance\leftskip by-\tableindent
- \advance\hsize by\tableindent
- \advance\rightskip by0pt plus1fil
- \leavevmode\unhbox0\par
- \endgroup
- %
- % We're going to be starting a paragraph, but we don't want the
- % \parskip glue -- logically it's part of the @item we just started.
- \nobreak \vskip-\parskip
- %
- % Stop a page break at the \parskip glue coming up. Unfortunately
- % we can't prevent a possible page break at the following
- % \baselineskip glue.
- \nobreak
- \endgroup
- \itemxneedsnegativevskipfalse
- \else
- % The item text fits into the space. Start a paragraph, so that the
- % following text (if any) will end up on the same line.
- \noindent
- % Do this with kerns and \unhbox so that if there is a footnote in
- % the item text, it can migrate to the main vertical list and
- % eventually be printed.
- \nobreak\kern-\tableindent
- \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
- \unhbox0
- \nobreak\kern\dimen0
- \endgroup
- \itemxneedsnegativevskiptrue
- \fi
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-% Contains a kludge to get @end[description] to work.
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-% @table, @ftable, @vtable.
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1 \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1 \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1 \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
-}
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\def\itemize{\parsearg\itemizezzz}
-
-\def\itemizezzz #1{%
- \begingroup % ended by the @end itemize
- \itemizey {#1}{\Eitemize}
-}
-
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
- \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list. No
-% argument is the same as `1'.
-%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1 \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
- \begingroup % ended by the @end enumerate
- %
- % If we were given no argument, pretend we were given `1'.
- \def\thearg{#1}%
- \ifx\thearg\empty \def\thearg{1}\fi
- %
- % Detect if the argument is a single token. If so, it might be a
- % letter. Otherwise, the only valid thing it can be is a number.
- % (We will always have one token, because of the test we just made.
- % This is a good thing, since \splitoff doesn't work given nothing at
- % all -- the first parameter is undelimited.)
- \expandafter\splitoff\thearg\endmark
- \ifx\rest\empty
- % Only one token in the argument. It could still be anything.
- % A ``lowercase letter'' is one whose \lccode is nonzero.
- % An ``uppercase letter'' is one whose \lccode is both nonzero, and
- % not equal to itself.
- % Otherwise, we assume it's a number.
- %
- % We need the \relax at the end of the \ifnum lines to stop TeX from
- % continuing to look for a <number>.
- %
- \ifnum\lccode\expandafter`\thearg=0\relax
- \numericenumerate % a number (we hope)
- \else
- % It's a letter.
- \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
- \lowercaseenumerate % lowercase letter
- \else
- \uppercaseenumerate % uppercase letter
- \fi
- \fi
- \else
- % Multiple tokens in the argument. We hope it's a number.
- \numericenumerate
- \fi
-}
-
-% An @enumerate whose labels are integers. The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
- \itemno = \thearg
- \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more lowercase letters in @enumerate; get a bigger
- alphabet}%
- \fi
- \char\lccode\itemno
- }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more uppercase letters in @enumerate; get a bigger
- alphabet}
- \fi
- \char\uccode\itemno
- }%
-}
-
-% Call itemizey, adding a period to the first argument and supplying the
-% common last two arguments. Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
- \advance\itemno by -1
- \itemizey{#1.}\Eenumerate\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-% @multitable @columnfractions .25 .3 .45
-% @item ...
-%
-% Numbers following @columnfractions are the percent of the total
-% current hsize to be used for each column. You may use as many
-% columns as desired.
-
-
-% Or use a template:
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item ...
-% using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-% @multitable {Column 1 template} {Column 2 template} {Column 3
-% template}
-% Not:
-% @multitable {Column 1 template} {Column 2 template}
-% {Column 3 template}
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
-
-% Sample multitable:
-
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item first col stuff @tab second col stuff @tab third col
-% @item
-% first col stuff
-% @tab
-% second col stuff
-% @tab
-% third col
-% @item first col stuff @tab second col stuff
-% @tab Many paragraphs of text may be used in any column.
-%
-% They will wrap at the width determined by the template.
-% @item@tab@tab This will be in third column.
-% @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-% to baseline.
-% 0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-%
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% #1 is the part of the @columnfraction before the decimal point, which
-% is presumably either 0 or the empty string (but we don't check, we
-% just throw it away). #2 is the decimal part, which we use as the
-% percent of \hsize for this column.
-\def\pickupwholefraction#1.#2 {%
- \global\advance\colcount by 1
- \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}%
- \setuptable
-}
-
-\newcount\colcount
-\def\setuptable#1{%
- \def\firstarg{#1}%
- \ifx\firstarg\xendsetuptable
- \let\go = \relax
- \else
- \ifx\firstarg\xcolumnfractions
- \global\setpercenttrue
- \else
- \ifsetpercent
- \let\go\pickupwholefraction
- \else
- \global\advance\colcount by 1
- \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator;
- % typically that is always in the input, anyway.
- \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
- \fi
- \fi
- \ifx\go\pickupwholefraction
- % Put the argument back for the \pickupwholefraction call, so
- % we'll always have a period there to be parsed.
- \def\go{\pickupwholefraction#1}%
- \else
- \let\go = \setuptable
- \fi%
- \fi
- \go
-}
-
-% This used to have \hskip1sp. But then the space in a template line is
-% not enough. That is bad. So let's go back to just & until we
-% encounter the problem it was intended to solve again.
-% --karl, nathan@acm.org, 20apr99.
-\def\tab{&}
-
-% @multitable ... @end multitable definitions:
-%
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
- \vskip\parskip
- \let\item\crcr
- \tolerance=9500
- \hbadness=9500
- \setmultitablespacing
- \parskip=\multitableparskip
- \parindent=\multitableparindent
- \overfullrule=0pt
- \global\colcount=0
- \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
- %
- % To parse everything between @multitable and @item:
- \setuptable#1 \endsetuptable
- %
- % \everycr will reset column counter, \colcount, at the end of
- % each line. Every column entry will cause \colcount to advance by one.
- % The table preamble
- % looks at the current \colcount to find the correct column width.
- \everycr{\noalign{%
- %
- % \filbreak%% keeps underfull box messages off when table breaks over pages.
- % Maybe so, but it also creates really weird page breaks when the table
- % breaks over pages. Wouldn't \vfil be better? Wait until the problem
- % manifests itself, so it can be fixed for real --karl.
- \global\colcount=0\relax}}%
- %
- % This preamble sets up a generic column definition, which will
- % be used as many times as user calls for columns.
- % \vtop will set a single line and will also let text wrap and
- % continue for many paragraphs if desired.
- \halign\bgroup&\global\advance\colcount by 1\relax
- \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
- %
- % In order to keep entries from bumping into each other
- % we will add a \leftskip of \multitablecolspace to all columns after
- % the first one.
- %
- % If a template has been used, we will add \multitablecolspace
- % to the width of each template entry.
- %
- % If the user has set preamble in terms of percent of \hsize we will
- % use that dimension as the width of the column, and the \leftskip
- % will keep entries from bumping into each other. Table will start at
- % left margin and final column will justify at right margin.
- %
- % Make sure we don't inherit \rightskip from the outer environment.
- \rightskip=0pt
- \ifnum\colcount=1
- % The first column will be indented with the surrounding text.
- \advance\hsize by\leftskip
- \else
- \ifsetpercent \else
- % If user has not set preamble in terms of percent of \hsize
- % we will advance \hsize by \multitablecolspace.
- \advance\hsize by \multitablecolspace
- \fi
- % In either case we will make \leftskip=\multitablecolspace:
- \leftskip=\multitablecolspace
- \fi
- % Ignoring space at the beginning and end avoids an occasional spurious
- % blank line, when TeX decides to break the line at the space before the
- % box from the multistrut, so the strut ends up on a line by itself.
- % For example:
- % @multitable @columnfractions .11 .89
- % @item @code{#}
- % @tab Legal holiday which is valid in major parts of the whole country.
- % Is automatically provided with highlighting sequences respectively marking
- % characters.
- \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
-\ifdim\multitablelinespace=0pt
-\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
-\global\advance\multitablelinespace by-\ht0
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-\else
-%% FIXME: what is \box0 supposed to be?
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi}
-
-
-\message{conditionals,}
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
- \let\chapter=\relax
- \let\unnumbered=\relax
- \let\top=\relax
- \let\unnumberedsec=\relax
- \let\unnumberedsection=\relax
- \let\unnumberedsubsec=\relax
- \let\unnumberedsubsection=\relax
- \let\unnumberedsubsubsec=\relax
- \let\unnumberedsubsubsection=\relax
- \let\section=\relax
- \let\subsec=\relax
- \let\subsubsec=\relax
- \let\subsection=\relax
- \let\subsubsection=\relax
- \let\appendix=\relax
- \let\appendixsec=\relax
- \let\appendixsection=\relax
- \let\appendixsubsec=\relax
- \let\appendixsubsection=\relax
- \let\appendixsubsubsec=\relax
- \let\appendixsubsubsection=\relax
- \let\contents=\relax
- \let\smallbook=\relax
- \let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
- \let\defcodeindex = \relax
- \let\defcv = \relax
- \let\deffn = \relax
- \let\deffnx = \relax
- \let\defindex = \relax
- \let\defivar = \relax
- \let\defmac = \relax
- \let\defmethod = \relax
- \let\defop = \relax
- \let\defopt = \relax
- \let\defspec = \relax
- \let\deftp = \relax
- \let\deftypefn = \relax
- \let\deftypefun = \relax
- \let\deftypeivar = \relax
- \let\deftypeop = \relax
- \let\deftypevar = \relax
- \let\deftypevr = \relax
- \let\defun = \relax
- \let\defvar = \relax
- \let\defvr = \relax
- \let\ref = \relax
- \let\xref = \relax
- \let\printindex = \relax
- \let\pxref = \relax
- \let\settitle = \relax
- \let\setchapternewpage = \relax
- \let\setchapterstyle = \relax
- \let\everyheading = \relax
- \let\evenheading = \relax
- \let\oddheading = \relax
- \let\everyfooting = \relax
- \let\evenfooting = \relax
- \let\oddfooting = \relax
- \let\headings = \relax
- \let\include = \relax
- \let\lowersections = \relax
- \let\down = \relax
- \let\raisesections = \relax
- \let\up = \relax
- \let\set = \relax
- \let\clear = \relax
- \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% @dircategory CATEGORY -- specify a category of the dir file
-% which this file should belong to. Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line `@end #1'.
-%
-\def\doignore#1{\begingroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define a command to swallow text until we reach `@end #1'.
- % This @ is a catcode 12 token (that is the normal catcode of @ in
- % this texinfo.tex file). We change the catcode of @ below to match.
- \long\def\doignoretext##1@end #1{\enddoignore}%
- %
- % Make sure that spaces turn into tokens that match what \doignoretext wants.
- \catcode32 = 10
- %
- % Ignore braces, too, so mismatched braces don't cause trouble.
- \catcode`\{ = 9
- \catcode`\} = 9
- %
- % We must not have @c interpreted as a control sequence.
- \catcode`\@ = 12
- %
- % Make the letter c a comment character so that the rest of the line
- % will be ignored. This way, the document can have (for example)
- % @c @end ifinfo
- % and the @end ifinfo will be properly ignored.
- % (We've just changed @ to catcode 12.)
- \catcode`\c = 14
- %
- % And now expand that command.
- \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
- \ifwarnedobs\relax\else
- % We need to warn folks that they may have trouble with TeX 3.0.
- % This uses \immediate\write16 rather than \message to get newlines.
- \immediate\write16{}
- \immediate\write16{WARNING: for users of Unix TeX 3.0!}
- \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
- \immediate\write16{If you are running another version of TeX, relax.}
- \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
- \immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)}
- \immediate\write16{If you are stuck with version 3.0, run the}
- \immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
- \immediate\write16{ to use a workaround.}
- \immediate\write16{}
- \global\warnedobstrue
- \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex. For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an `@end #1' command.
-%
-\def\nestedignore#1{%
- \obstexwarn
- % We must actually expand the ignored text to look for the @end
- % command, so that nested ignore constructs work. Thus, we put the
- % text into a \vbox and then do nothing with the result. To minimize
- % the change of memory overflow, we follow the approach outlined on
- % page 401 of the TeXbook: make the current font be a dummy font.
- %
- \setbox0 = \vbox\bgroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define `@end #1' to end the box, which will in turn undefine the
- % @end command again.
- \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
- %
- % We are going to be parsing Texinfo commands. Most cause no
- % trouble when they are used incorrectly, but some commands do
- % complicated argument parsing or otherwise get confused, so we
- % undefine them.
- %
- % We can't do anything about stray @-signs, unfortunately;
- % they'll produce `undefined control sequence' errors.
- \ignoremorecommands
- %
- % Set the current font to be \nullfont, a TeX primitive, and define
- % all the font commands to also use \nullfont. We don't use
- % dummy.tfm, as suggested in the TeXbook, because not all sites
- % might have that installed. Therefore, math mode will still
- % produce output, but that should be an extremely small amount of
- % stuff compared to the main input.
- %
- \nullfont
- \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont
- \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont
- \let\tensf=\nullfont
- % Similarly for index fonts (mostly for their use in smallexample).
- \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont
- \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont
- \let\smallsf=\nullfont
- %
- % Don't complain when characters are missing from the fonts.
- \tracinglostchars = 0
- %
- % Don't bother to do space factor calculations.
- \frenchspacing
- %
- % Don't report underfull hboxes.
- \hbadness = 10000
- %
- % Do minimal line-breaking.
- \pretolerance = 10000
- %
- % Do not execute instructions in @tex
- \def\tex{\doignore{tex}}%
- % Do not execute macro definitions.
- % `c' is a comment character, so the word `macro' will get cut off.
- \def\macro{\doignore{ma}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it. Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
- \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
- \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
- \def\temp{#2}%
- \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
- \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
- \fi
- \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider `@set foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-{
- \catcode`\_ = \active
- %
- % We might end up with active _ or - characters in the argument if
- % we're called from @code, as @code{@value{foo-bar_}}. So \let any
- % such active characters to their normal equivalents.
- \gdef\value{\begingroup
- \catcode`\-=12 \catcode`\_=12
- \indexbreaks \let_\normalunderscore
- \valuexxx}
-}
-\def\valuexxx#1{\expandablevalue{#1}\endgroup}
-
-% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we \let\value to this in \indexdummies). Ones
-% whose names contain - or _ still won't work, but we can't do anything
-% about that. The command has to be fully expandable, since the result
-% winds up in the index file. This means that if the variable's value
-% contains other Texinfo commands, it's almost certain it will fail
-% (although perhaps we could fix that with sufficient work to do a
-% one-level expansion on the result, instead of complete).
-%
-\def\expandablevalue#1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- {[No value for ``#1'']}%
- \else
- \csname SET#1\endcsname
- \fi
-}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifsetfail
- \else
- \expandafter\ifsetsucceed
- \fi
-}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifclearsucceed
- \else
- \expandafter\ifclearfail
- \fi
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.). Make `@end iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group). So we must
-% define \Eiftex to redefine itself to be its previous value. (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
- \edef\temp{%
- % Remember the current value of \E#1.
- \let\nece{prevE#1} = \nece{E#1}%
- %
- % At the `@end #1', redefine \E#1 to be its previous value.
- \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
- }%
- \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
-
-% @defininfoenclose.
-\let\definfoenclose=\comment
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-%
-\def\newindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
- \fi
- \expandafter\xdef\csname#1index\endcsname{% % Define @#1index
- \noexpand\doindex{#1}}
-}
-
-% @defindex foo == \newindex{foo}
-
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex#1{%
- \iflinks
- \expandafter\newwrite \csname#1indfile\endcsname
- \openout \csname#1indfile\endcsname \jobname.#1
- \fi
- \expandafter\xdef\csname#1index\endcsname{%
- \noexpand\docodeindex{#1}}
-}
-
-\def\defcodeindex{\parsearg\newcodeindex}
-
-% @synindex foo bar makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-% The \closeout helps reduce unnecessary open files; the limit on the
-% Acorn RISC OS is a mere 16 files.
-\def\synindex#1 #2 {%
- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
- \expandafter\closeout\csname#1indfile\endcsname
- \expandafter\let\csname#1indfile\endcsname=\synindexfoo
- \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
- \noexpand\doindex{#2}}%
-}
-
-% @syncodeindex foo bar similar, but put all entries made for index foo
-% inside @code.
-\def\syncodeindex#1 #2 {%
- \expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
- \expandafter\closeout\csname#1indfile\endcsname
- \expandafter\let\csname#1indfile\endcsname=\synindexfoo
- \expandafter\xdef\csname#1index\endcsname{% define \xxxindex
- \noexpand\docodeindex{#2}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-% and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-\def\indexdummies{%
-\def\ { }%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-\def\@{@}% will be @@ when we switch to @ as escape char.
-% Need these in case \tex is in effect and \{ is a \delimiter again.
-% But can't use \lbracecmd and \rbracecmd because texindex assumes
-% braces and backslashes are used only as delimiters.
-\let\{ = \mylbrace
-\let\} = \myrbrace
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\uref##1{\realbackslash uref {##1}}%
-\def\url##1{\realbackslash url {##1}}%
-\def\env##1{\realbackslash env {##1}}%
-\def\command##1{\realbackslash command {##1}}%
-\def\option##1{\realbackslash option {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\acronym##1{\realbackslash acronym {##1}}%
-%
-% Handle some cases of @value -- where the variable name does not
-% contain - or _, and the value does not contain any
-% (non-fully-expandable) commands.
-\let\value = \expandablevalue
-%
-\unsepspaces
-% Turn off macro expansion
-\turnoffmacros
-}
-
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-
-\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\url=\indexdummyfont
-\let\uref=\indexdummyfont
-\let\env=\indexdummyfont
-\let\acronym=\indexdummyfont
-\let\command=\indexdummyfont
-\let\option=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
-\def\@{@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
- @gdef@realbackslash{\}}
-
-\let\indexbackslash=0 %overridden during \printindex.
-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-
-% For \ifx comparisons.
-\def\emptymacro{\empty}
-
-% Most index entries go through here, but \dosubind is the general case.
-%
-\def\doind#1#2{\dosubind{#1}{#2}\empty}
-
-% Workhorse for all \fooindexes.
-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% \empty if called from \doind, as we usually are. The main exception
-% is with defuns, which call us directly.
-%
-\def\dosubind#1#2#3{%
- % Put the index entry in the margin if desired.
- \ifx\SETmarginindex\relax\else
- \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
- \fi
- {%
- \count255=\lastpenalty
- {%
- \indexdummies % Must do this here, since \bf, etc expand at this stage
- \escapechar=`\\
- {%
- \let\folio = 0% We will expand all macros now EXCEPT \folio.
- \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
- % so it will be output as is; and it will print as backslash.
- %
- \def\thirdarg{#3}%
- %
- % If third arg is present, precede it with space in sort key.
- \ifx\thirdarg\emptymacro
- \let\subentry = \empty
- \else
- \def\subentry{ #3}%
- \fi
- %
- % First process the index entry with all font commands turned
- % off to get the string to sort by.
- {\indexnofonts \xdef\indexsorttmp{#2\subentry}}%
- %
- % Now the real index entry with the fonts.
- \toks0 = {#2}%
- %
- % If third (subentry) arg is present, add it to the index
- % string. And include a space.
- \ifx\thirdarg\emptymacro \else
- \toks0 = \expandafter{\the\toks0 \space #3}%
- \fi
- %
- % Set up the complete index entry, with both the sort key
- % and the original text, including any font commands. We write
- % three arguments to \entry to the .?? file, texindex reduces to
- % two when writing the .??s sorted result.
- \edef\temp{%
- \write\csname#1indfile\endcsname{%
- \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
- }%
- %
- % If a skip is the last thing on the list now, preserve it
- % by backing up by \lastskip, doing the \write, then inserting
- % the skip again. Otherwise, the whatsit generated by the
- % \write will make \lastskip zero. The result is that sequences
- % like this:
- % @end defun
- % @tindex whatever
- % @defun ...
- % will have extra space inserted, because the \medbreak in the
- % start of the @defun won't see the skip inserted by the @end of
- % the previous defun.
- %
- % But don't do any of this if we're not in vertical mode. We
- % don't want to do a \vskip and prematurely end a paragraph.
- %
- % Avoid page breaks due to these extra skips, too.
- %
- \iflinks
- \ifvmode
- \skip0 = \lastskip
- \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi
- \fi
- %
- \temp % do the write
- %
- %
- \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
- \fi
- }%
- }%
- \penalty\count255
- }%
-}
-
-% The index entry written in the file actually looks like
-% \entry {sortstring}{page}{topic}
-% or
-% \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-% \initial {c}
-% before the first topic whose initial is c
-% \entry {topic}{pagelist}
-% for a topic that is used without subtopics
-% \primary {topic}
-% for the beginning of a topic that is used with subtopics
-% \secondary {subtopic}{pagelist}
-% for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
- \dobreak \chapheadingskip{10000}%
- %
- \smallfonts \rm
- \tolerance = 9500
- \indexbreaks
- %
- % See if the index file exists and is nonempty.
- % Change catcode of @ here so that if the index file contains
- % \initial {@}
- % as its first line, TeX doesn't complain about mismatched braces
- % (because it thinks @} is a control sequence).
- \catcode`\@ = 11
- \openin 1 \jobname.#1s
- \ifeof 1
- % \enddoublecolumns gets confused if there is no text in the index,
- % and it loses the chapter title and the aux file entries for the
- % index. The easiest way to prevent this problem is to make sure
- % there is some text.
- \putwordIndexNonexistent
- \else
- %
- % If the index file exists but is empty, then \openin leaves \ifeof
- % false. We have to make TeX try to read something from the file, so
- % it can discover if there is anything in it.
- \read 1 to \temp
- \ifeof 1
- \putwordIndexIsEmpty
- \else
- % Index files are almost Texinfo source, but we use \ as the escape
- % character. It would be better to use @, but that's too big a change
- % to make right now.
- \def\indexbackslash{\rawbackslashxx}%
- \catcode`\\ = 0
- \escapechar = `\\
- \begindoublecolumns
- \input \jobname.#1s
- \enddoublecolumns
- \fi
- \fi
- \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-\def\initial#1{{%
- % Some minor font changes for the special characters.
- \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
- %
- % Remove any glue we may have, we'll be inserting our own.
- \removelastskip
- %
- % We like breaks before the index initials, so insert a bonus.
- \penalty -300
- %
- % Typeset the initial. Making this add up to a whole number of
- % baselineskips increases the chance of the dots lining up from column
- % to column. It still won't often be perfect, because of the stretch
- % we need before each entry, but it's better.
- %
- % No shrink because it confuses \balancecolumns.
- \vskip 1.67\baselineskip plus .5\baselineskip
- \leftline{\secbf #1}%
- \vskip .33\baselineskip plus .1\baselineskip
- %
- % Do our best not to break after the initial.
- \nobreak
-}}
-
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin. It is used for index and table of contents
-% entries. The paragraph is indented by \leftskip.
-%
-\def\entry#1#2{\begingroup
- %
- % Start a new paragraph if necessary, so our assignments below can't
- % affect previous text.
- \par
- %
- % Do not fill out the last line with white space.
- \parfillskip = 0in
- %
- % No extra space above this paragraph.
- \parskip = 0in
- %
- % Do not prefer a separate line ending with a hyphen to fewer lines.
- \finalhyphendemerits = 0
- %
- % \hangindent is only relevant when the entry text and page number
- % don't both fit on one line. In that case, bob suggests starting the
- % dots pretty far over on the line. Unfortunately, a large
- % indentation looks wrong when the entry text itself is broken across
- % lines. So we use a small indentation and put up with long leaders.
- %
- % \hangafter is reset to 1 (which is the value we want) at the start
- % of each paragraph, so we need not do anything with that.
- \hangindent = 2em
- %
- % When the entry text needs to be broken, just fill out the first line
- % with blank space.
- \rightskip = 0pt plus1fil
- %
- % A bit of stretch before each entry for the benefit of balancing columns.
- \vskip 0pt plus1pt
- %
- % Start a ``paragraph'' for the index entry so the line breaking
- % parameters we've set above will have an effect.
- \noindent
- %
- % Insert the text of the index entry. TeX will do line-breaking on it.
- #1%
- % The following is kludged to not output a line of dots in the index if
- % there are no page numbers. The next person who breaks this will be
- % cursed by a Unix daemon.
- \def\tempa{{\rm }}%
- \def\tempb{#2}%
- \edef\tempc{\tempa}%
- \edef\tempd{\tempb}%
- \ifx\tempc\tempd\ \else%
- %
- % If we must, put the page number on a line of its own, and fill out
- % this line with blank space. (The \hfil is overwhelmed with the
- % fill leaders glue in \indexdotfill if the page number does fit.)
- \hfil\penalty50
- \null\nobreak\indexdotfill % Have leaders before the page number.
- %
- % The `\ ' here is removed by the implicit \unskip that TeX does as
- % part of (the primitive) \par. Without it, a spurious underfull
- % \hbox ensues.
- \ifpdf
- \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
- \else
- \ #2% The page number ends the paragraph.
- \fi
- \fi%
- \par
-\endgroup}
-
-% Like \dotfill except takes at least 1 em.
-\def\indexdotfill{\cleaders
- \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
- % Grab any single-column material above us.
- \output = {%
- %
- % Here is a possibility not foreseen in manmac: if we accumulate a
- % whole lot of material, we might end up calling this \output
- % routine twice in a row (see the doublecol-lose test, which is
- % essentially a couple of indexes with @setchapternewpage off). In
- % that case we just ship out what is in \partialpage with the normal
- % output routine. Generally, \partialpage will be empty when this
- % runs and this will be a no-op. See the indexspread.tex test case.
- \ifvoid\partialpage \else
- \onepageout{\pagecontents\partialpage}%
- \fi
- %
- \global\setbox\partialpage = \vbox{%
- % Unvbox the main output page.
- \unvbox\PAGE
- \kern-\topskip \kern\baselineskip
- }%
- }%
- \eject % run that output routine to set \partialpage
- %
- % Use the double-column output routine for subsequent pages.
- \output = {\doublecolumnout}%
- %
- % Change the page size parameters. We could do this once outside this
- % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
- % format, but then we repeat the same computation. Repeating a couple
- % of assignments once per index is clearly meaningless for the
- % execution time, so we may as well do it in one place.
- %
- % First we halve the line length, less a little for the gutter between
- % the columns. We compute the gutter based on the line length, so it
- % changes automatically with the paper format. The magic constant
- % below is chosen so that the gutter has the same value (well, +-<1pt)
- % as it did when we hard-coded it.
- %
- % We put the result in a separate register, \doublecolumhsize, so we
- % can restore it in \pagesofar, after \hsize itself has (potentially)
- % been clobbered.
- %
- \doublecolumnhsize = \hsize
- \advance\doublecolumnhsize by -.04154\hsize
- \divide\doublecolumnhsize by 2
- \hsize = \doublecolumnhsize
- %
- % Double the \vsize as well. (We don't need a separate register here,
- % since nobody clobbers \vsize.)
- \advance\vsize by -\ht\partialpage
- \vsize = 2\vsize
-}
-
-% The double-column output routine for all double-column pages except
-% the last.
-%
-\def\doublecolumnout{%
- \splittopskip=\topskip \splitmaxdepth=\maxdepth
- % Get the available space for the double columns -- the normal
- % (undoubled) page height minus any material left over from the
- % previous page.
- \dimen@ = \vsize
- \divide\dimen@ by 2
- %
- % box0 will be the left-hand column, box2 the right.
- \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
- \onepageout\pagesofar
- \unvbox255
- \penalty\outputpenalty
-}
-\def\pagesofar{%
- % Re-output the contents of the output page -- any previous material,
- % followed by the two boxes we just split, in box0 and box2.
- \unvbox\partialpage
- %
- \hsize = \doublecolumnhsize
- \wd0=\hsize \wd2=\hsize
- \hbox to\pagewidth{\box0\hfil\box2}%
-}
-\def\enddoublecolumns{%
- \output = {%
- % Split the last of the double-column material. Leave it on the
- % current page, no automatic page break.
- \balancecolumns
- %
- % If we end up splitting too much material for the current page,
- % though, there will be another page break right after this \output
- % invocation ends. Having called \balancecolumns once, we do not
- % want to call it again. Therefore, reset \output to its normal
- % definition right away. (We hope \balancecolumns will never be
- % called on to balance too much material, but if it is, this makes
- % the output somewhat more palatable.)
- \global\output = {\onepageout{\pagecontents\PAGE}}%
- }%
- \eject
- \endgroup % started in \begindoublecolumns
- %
- % \pagegoal was set to the doubled \vsize above, since we restarted
- % the current page. We're now back to normal single-column
- % typesetting, so reset \pagegoal to the normal \vsize (after the
- % \endgroup where \vsize got restored).
- \pagegoal = \vsize
-}
-\def\balancecolumns{%
- % Called at the end of the double column material.
- \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
- \dimen@ = \ht0
- \advance\dimen@ by \topskip
- \advance\dimen@ by-\baselineskip
- \divide\dimen@ by 2 % target to split to
- %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
- \splittopskip = \topskip
- % Loop until we get a decent breakpoint.
- {%
- \vbadness = 10000
- \loop
- \global\setbox3 = \copy0
- \global\setbox1 = \vsplit3 to \dimen@
- \ifdim\ht3>\dimen@
- \global\advance\dimen@ by 1pt
- \repeat
- }%
- %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
- \setbox0=\vbox to\dimen@{\unvbox1}%
- \setbox2=\vbox to\dimen@{\unvbox3}%
- %
- \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Chapters, sections, etc.
-
-\newcount\chapno
-\newcount\secno \secno=0
-\newcount\subsecno \subsecno=0
-\newcount\subsubsecno \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno \appendixno = `\@
-% \def\appendixletter{\char\the\appendixno}
-% We do the following for the sake of pdftex, which needs the actual
-% letter in the expansion, not just typeset.
-\def\appendixletter{%
- \ifnum\appendixno=`A A%
- \else\ifnum\appendixno=`B B%
- \else\ifnum\appendixno=`C C%
- \else\ifnum\appendixno=`D D%
- \else\ifnum\appendixno=`E E%
- \else\ifnum\appendixno=`F F%
- \else\ifnum\appendixno=`G G%
- \else\ifnum\appendixno=`H H%
- \else\ifnum\appendixno=`I I%
- \else\ifnum\appendixno=`J J%
- \else\ifnum\appendixno=`K K%
- \else\ifnum\appendixno=`L L%
- \else\ifnum\appendixno=`M M%
- \else\ifnum\appendixno=`N N%
- \else\ifnum\appendixno=`O O%
- \else\ifnum\appendixno=`P P%
- \else\ifnum\appendixno=`Q Q%
- \else\ifnum\appendixno=`R R%
- \else\ifnum\appendixno=`S S%
- \else\ifnum\appendixno=`T T%
- \else\ifnum\appendixno=`U U%
- \else\ifnum\appendixno=`V V%
- \else\ifnum\appendixno=`W W%
- \else\ifnum\appendixno=`X X%
- \else\ifnum\appendixno=`Y Y%
- \else\ifnum\appendixno=`Z Z%
- % The \the is necessary, despite appearances, because \appendixletter is
- % expanded while writing the .toc file. \char\appendixno is not
- % expandable, thus it is written literally, thus all appendixes come out
- % with the same letter (or @) in the toc without it.
- \else\char\the\appendixno
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it. @section does likewise.
-\def\thischapter{}
-\def\thissection{}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \chapterzzz{#2}
-\or
- \seczzz{#2}
-\or
- \numberedsubseczzz{#2}
-\or
- \numberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \chapterzzz{#2}
- \else
- \numberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \appendixzzz{#2}
-\or
- \appendixsectionzzz{#2}
-\or
- \appendixsubseczzz{#2}
-\or
- \appendixsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \appendixzzz{#2}
- \else
- \appendixsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \unnumberedzzz{#2}
-\or
- \unnumberedseczzz{#2}
-\or
- \unnumberedsubseczzz{#2}
-\or
- \unnumberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \unnumberedzzz{#2}
- \else
- \unnumberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% @chapter, @appendix, @unnumbered.
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\the\chapno}}}%
-\temp
-\donoderef
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1
-\message{\putwordAppendix\space \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}%
- {\putwordAppendix{} \appendixletter}}}%
-\temp
-\appendixnoderef
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
-}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
-
-% @top is like @unnumbered.
-\outer\def\top{\parsearg\unnumberedyyy}
-
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message. Therefore, if #1 contained @-commands, TeX
-% expanded them. For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself. We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of <toks register>. (We also do this for
-% the toc entries.)
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
-}
-
-% Sections.
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\the\chapno}{\the\secno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}%
- {\appendixletter}{\the\secno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{%
-\plainsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry{\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsections.
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% Subsubsections.
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\donoderef
-\nobreak
-}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}%
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}%
-\temp
-\appendixnoderef
-\nobreak
-}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-\toks0 = {#1}%
-\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry%
- {\the\toks0}}}%
-\temp
-\unnumbnoderef
-\nobreak
-}
-
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
-% 3) Likewise, headings look best if no \parindent is used, and
-% if justification is not attempted. Hence \raggedright.
-
-
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{%
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
- \pchapsepmacro
- {%
- \chapfonts \rm
- \def\chapnum{#2}%
- \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 \centerparametersmaybe
- \unhbox0 #1\par}%
- }%
- \nobreak\bigskip % no page break after a chapter title
- \nobreak
-}
-
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
- \def\centerparametersmaybe{%
- \advance\rightskip by 3\rightskip
- \leftskip = \rightskip
- \parfillskip = 0pt
- }%
- \chfplain{#1}{}%
-}}
-
-\CHAPFplain % The default
-
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\nobreak
-}
-
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt
- \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
-}
-
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles.
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
-
-% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-
-% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-
-
-% Print any size section title.
-%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
- {%
- \expandafter\advance\csname #1headingskip\endcsname by \parskip
- \csname #1headingbreak\endcsname
- }%
- {%
- % Switch to the right set of fonts.
- \csname #1fonts\endcsname \rm
- %
- % Only insert the separating space if we have a section number.
- \def\secnum{#2}%
- \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
- %
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 % zero if no section number
- \unhbox0 #3}%
- }%
- \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
-}
-
-
-\message{toc,}
-% Table of contents.
-\newwrite\tocfile
-
-% Write an entry to the toc file, opening it if necessary.
-% Called from @chapter, etc. We supply {\folio} at the end of the
-% argument, which will end up as the last argument to the \...entry macro.
-%
-% We open the .toc file here instead of at @setfilename or any other
-% given time so that @contents can be put in the document anywhere.
-%
-\newif\iftocfileopened
-\def\writetocentry#1{%
- \iftocfileopened\else
- \immediate\openout\tocfile = \jobname.toc
- \global\tocfileopenedtrue
- \fi
- \iflinks \write\tocfile{#1{\folio}}\fi
-}
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\newcount\savepageno
-\newcount\lastnegativepageno \lastnegativepageno = -1
-
-% Finish up the main text and prepare to read what we've written
-% to \tocfile.
-%
-\def\startcontents#1{%
- % If @setchapternewpage on, and @headings double, the contents should
- % start on an odd page, unlike chapters. Thus, we maintain
- % \contentsalignmacro in parallel with \pagealignmacro.
- % From: Torbjorn Granlund <tege@matematik.su.se>
- \contentsalignmacro
- \immediate\closeout\tocfile
- %
- % Don't need to put `Contents' or `Short Contents' in the headline.
- % It is abundantly clear what they are.
- \unnumbchapmacro{#1}\def\thischapter{}%
- \savepageno = \pageno
- \begingroup % Set up to handle contents files properly.
- \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
- % We can't do this, because then an actual ^ in a section
- % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97.
- %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
- \raggedbottom % Worry more about breakpoints than the bottom.
- \advance\hsize by -\contentsrightmargin % Don't use the full line length.
- %
- % Roman numerals for page numbers.
- \ifnum \pageno>0 \pageno = \lastnegativepageno \fi
-}
-
-
-% Normal (long) toc.
-\def\contents{%
- \startcontents{\putwordTOC}%
- \openin 1 \jobname.toc
- \ifeof 1 \else
- \closein 1
- \input \jobname.toc
- \fi
- \vfill \eject
- \contentsalignmacro % in case @setchapternewpage odd is in effect
- \pdfmakeoutlines
- \endgroup
- \lastnegativepageno = \pageno
- \pageno = \savepageno
-}
-
-% And just the chapters.
-\def\summarycontents{%
- \startcontents{\putwordShortTOC}%
- %
- \let\chapentry = \shortchapentry
- \let\unnumbchapentry = \shortunnumberedentry
- % We want a true roman here for the page numbers.
- \secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
- \rm
- \hyphenpenalty = 10000
- \advance\baselineskip by 1pt % Open it up a little.
- \def\secentry ##1##2##3##4{}
- \def\unnumbsecentry ##1##2{}
- \def\subsecentry ##1##2##3##4##5{}
- \def\unnumbsubsecentry ##1##2{}
- \def\subsubsecentry ##1##2##3##4##5##6{}
- \def\unnumbsubsubsecentry ##1##2{}
- \openin 1 \jobname.toc
- \ifeof 1 \else
- \closein 1
- \input \jobname.toc
- \fi
- \vfill \eject
- \contentsalignmacro % in case @setchapternewpage odd is in effect
- \endgroup
- \lastnegativepageno = \pageno
- \pageno = \savepageno
-}
-\let\shortcontents = \summarycontents
-
-\ifpdf
- \pdfcatalog{/PageMode /UseOutlines}%
-\fi
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapter-level things, for both the long and short contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
-\def\shortchapentry#1#2#3{%
- \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}%
-}
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-%
-\newdimen\shortappendixwidth
-%
-\def\shortchaplabel#1{%
- % Compute width of word "Appendix", may change with language.
- \setbox0 = \hbox{\shortcontrm \putwordAppendix}%
- \shortappendixwidth = \wd0
- %
- % We typeset #1 in a box of constant width, regardless of the text of
- % #1, so the chapter titles will come out aligned.
- \setbox0 = \hbox{#1}%
- \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
- %
- % This space should be plenty, since a single number is .5em, and the
- % widest letter (M) is 1em, at least in the Computer Modern fonts.
- % (This space doesn't include the extra space that gets added after
- % the label; that gets put in by \shortchapentry above.)
- \advance\dimen0 by 1.1em
- \hbox to \dimen0{#1\hfil}%
-}
-
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}}
-
-% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
-
-% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
-
-% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
- \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
-% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
- \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
- \begingroup
- \chapentryfonts
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
- \endgroup
- \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
- \secentryfonts \leftskip=\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
- \subsecentryfonts \leftskip=2\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
- \subsubsecentryfonts \leftskip=3\tocindent
- \tocentry{#1}{\dopageno\bgroup#2\egroup}%
-\endgroup}
-
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here. (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
- \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
- % Do not use \turnoffactive in these arguments. Since the toc is
- % typeset in cmr, so characters such as _ would come out wrong; we
- % have to do the usual translation tricks.
- \entry{#1}{#2}%
-\endgroup}
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
-
-
-\message{environments,}
-% @foo ... @end foo.
-
-% Since these characters are used in examples, it should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox \newbox\longdblarrowbox
-\newbox\pushcharbox \newbox\bullbox
-\newbox\equivbox \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-% depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% Adapted from the TeXbook's \boxit.
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
- \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
- \advance\hsize by -2\dimen2 % Rules.
- \vbox{
- \hrule height\dimen2
- \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
- \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
- \kern3pt\vrule width\dimen2}% Space to right.
- \hrule height\dimen2}
- \hfil}
-
-% The @error{} command.
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @tex ... @end tex escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\def\tex{\begingroup
- \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
- \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
- \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
- \catcode `\%=14
- \catcode 43=12 % plus
- \catcode`\"=12
- \catcode`\==12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \escapechar=`\\
- %
- \let\b=\ptexb
- \let\bullet=\ptexbullet
- \let\c=\ptexc
- \let\,=\ptexcomma
- \let\.=\ptexdot
- \let\dots=\ptexdots
- \let\equiv=\ptexequiv
- \let\!=\ptexexclam
- \let\i=\ptexi
- \let\{=\ptexlbrace
- \let\+=\tabalign
- \let\}=\ptexrbrace
- \let\*=\ptexstar
- \let\t=\ptext
- %
- \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
- \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
- \def\@{@}%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments. \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% Make each space character in the input produce a normal interword
-% space in the output. Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is. This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical. We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins.
-\let\nonarrowing=\relax
-
-% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
-% environment contents.
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
- \ctl\leaders\hrule height\circthick\hfil\ctr
- \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
- \cbl\leaders\hrule height\circthick\hfil\cbr
- \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\long\def\cartouche{%
-\begingroup
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt %we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18.4pt % allow for 3pt kerns on either
-% side, and for 6pt waste from
-% each corner char, and rule thickness
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing=\comment
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \hsize=\cartinner
- \kern3pt
- \begingroup
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
-\def\Ecartouche{%
- \endgroup
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
-\endgroup
-}}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\def\nonfillstart{%
- \aboveenvbreak
- \inENV % This group ends at the end of the body
- \hfuzz = 12pt % Don't be fussy
- \sepspaces % Make spaces be word-separators rather than space tokens.
- \singlespace
- \let\par = \lisppar % don't ignore blank lines
- \obeylines % each line of input is a line of output
- \parskip = 0pt
- \parindent = 0pt
- \emergencystretch = 0pt % don't try to avoid overfull boxes
- % @cartouche defines \nonarrowing to inhibit narrowing
- % at next level down.
- \ifx\nonarrowing\relax
- \advance \leftskip by \lispnarrowing
- \exdentamount=\lispnarrowing
- \let\exdent=\nofillexdent
- \let\nonarrowing=\relax
- \fi
-}
-
-% Define the \E... control sequence only if we are inside the particular
-% environment, so the error checking in \end will work.
-%
-% To end an @example-like environment, we first end the paragraph (via
-% \afterenvbreak's vertical glue), and then the group. That way we keep
-% the zero \parskip that the environments set -- \parskip glue will be
-% inserted at the beginning of the next paragraph in the document, after
-% the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}
-
-% @lisp: indented, narrowed, typewriter font.
-\def\lisp{\begingroup
- \nonfillstart
- \let\Elisp = \nonfillfinish
- \tt
- \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
- \gobble % eat return
-}
-
-% @example: Same as @lisp.
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-
-% @small... is usually equivalent to the non-small (@smallbook
-% redefines). We must call \example (or whatever) last in the
-% definition, since it reads the return following the @example (or
-% whatever) command.
-%
-% This actually allows (for example) @end display inside an
-% @smalldisplay. Too bad, but makeinfo will catch the error anyway.
-%
-\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display}
-\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format}
-\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts.
-% Originally contributed by Pavel@xerox.
-\def\smalllispx{\begingroup
- \def\Esmalllisp{\nonfillfinish\endgroup}%
- \def\Esmallexample{\nonfillfinish\endgroup}%
- \smallfonts
- \lisp
-}
-
-% @display: same as @lisp except keep current font.
-%
-\def\display{\begingroup
- \nonfillstart
- \let\Edisplay = \nonfillfinish
- \gobble
-}
-
-% @smalldisplay (when @smallbook): @display plus smaller fonts.
-%
-\def\smalldisplayx{\begingroup
- \def\Esmalldisplay{\nonfillfinish\endgroup}%
- \smallfonts \rm
- \display
-}
-
-% @format: same as @display except don't narrow margins.
-%
-\def\format{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eformat = \nonfillfinish
- \gobble
-}
-
-% @smallformat (when @smallbook): @format plus smaller fonts.
-%
-\def\smallformatx{\begingroup
- \def\Esmallformat{\nonfillfinish\endgroup}%
- \smallfonts \rm
- \format
-}
-
-% @flushleft (same as @format).
-%
-\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format}
-
-% @flushright.
-%
-\def\flushright{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eflushright = \nonfillfinish
- \advance\leftskip by 0pt plus 1fill
- \gobble
-}
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
-%
-\def\quotation{%
- \begingroup\inENV %This group ends at the end of the @quotation body
- {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \singlespace
- \parindent=0pt
- % We have retained a nonzero parskip for the environment, since we're
- % doing normal filling. So to avoid extra space below the environment...
- \def\Equotation{\parskip = 0pt \nonfillfinish}%
- %
- % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
- \ifx\nonarrowing\relax
- \advance\leftskip by \lispnarrowing
- \advance\rightskip by \lispnarrowing
- \exdentamount = \lispnarrowing
- \let\nonarrowing = \relax
- \fi
-}
-
-
-\message{defuns,}
-% @defun etc.
-
-% Allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc. For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
- \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
- % also in that case restore the outer-level definition of (.
- \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
- \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text. This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\let\ampnr = \&
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% Active &'s sneak into the index arguments, so make sure it's defined.
-{
- \catcode`& = 13
- \global\let& = \ampnr
-}
-
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\noindent
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2
-\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by the space, is the class name.
-%
-\def\defmethparsebody#1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
-
-% Used for @deftypemethod and @deftypeivar.
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence for consecutive fns (which we define).
-% #3 is the control sequence to call to resume processing.
-% #4, delimited by a space, is the class name.
-% #5 is the method's return type.
-%
-\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV
- \medbreak
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}}
-
-% Used for @deftypeop. The change from \deftypemethparsebody is an
-% extra argument at the beginning which is the `category', instead of it
-% being the hardwired string `Method' or `Instance Variable'. We have
-% to account for this both in the \...x definition and in parsing the
-% input at hand. Thus also need a control sequence (passed as #5) for
-% the \E... definition to assign the category name to.
-%
-\def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV
- \medbreak
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 ##2 ##3 {%
- \def#4{##1}%
- \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
-
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody. It could probably be used for
-% some of the others, too, with some judicious conditionals.
-%
-\def\parsebodycommon#1#2#3{%
- \begingroup\inENV %
- \medbreak %
- % Define the end token that this defining construct specifies
- % so that it will exit this group.
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines
-}
-
-\def\defvrparsebody#1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{#3{#4}}%
-}
-
-% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument. Sigh.
-% \let\deftpparsebody=\defvrparsebody
-%
-% So, to get around this, we put \empty in with the type name. That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
-%
-\def\deftpparsebody #1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{\parsetpheaderline{#3{#4}}}\empty
-}
-
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any). That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
-
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
- #1{\removeemptybraces#2\relax}{#3}%
-}%
-
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-% the first is all of #2 before the space token,
-% the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
-
-% Define @defun.
-
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
-
-\def\defunargs#1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Set the font temporarily and use \font in case \setfont made \tensl a macro.
-{\tensl\hyphenchar\font=0}%
-#1%
-{\tensl\hyphenchar\font=45}%
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\nobreak\vskip -\parskip\nobreak
-}
-
-% Do complete processing of one @defun or @defunx line already parsed.
-
-% @deffn Command forward-char nchars
-
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defun == @deffn Function
-
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
-
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDeffunc}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type. #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypefun}%
-\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-
-% \defheaderxcond#1\relax$$$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
-
-% #1 is the classification. #2 is the data type. #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-% at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDefmac}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
-
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDefspec}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defop CATEGORY CLASS OPERATION ARG...
-%
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
-%
-\def\defopheader#1#2#3{%
-\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @deftypeop CATEGORY CLASS TYPE OPERATION ARG...
-%
-\def\deftypeop #1 {\def\deftypeopcategory{#1}%
- \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader
- \deftypeopcategory}
-%
-% #1 is the class name, #2 the data type, #3 the operation name, #4 the args.
-\def\deftypeopheader#1#2#3#4{%
- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{\defheaderxcond#2\relax$$$#3}
- {\deftypeopcategory\ \putwordon\ \code{#1}}%
- \deftypefunargs{#4}%
- \endgroup
-}
-
-% @deftypemethod CLASS TYPE METHOD ARG...
-%
-\def\deftypemethod{%
- \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
-%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{\defheaderxcond#2\relax$$$#3}{\putwordMethodon\ \code{#1}}%
- \deftypefunargs{#4}%
- \endgroup
-}
-
-% @deftypeivar CLASS TYPE VARNAME
-%
-\def\deftypeivar{%
- \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader}
-%
-% #1 is the class name, #2 the data type, #3 the variable name.
-\def\deftypeivarheader#1#2#3{%
- \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
- \begingroup
- \defname{#3}{\putwordInstanceVariableof\ \code{#1}}%
- \defvarargs{#3}%
- \endgroup
-}
-
-% @defmethod == @defop Method
-%
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-%
-% #1 is the class name, #2 the method name, #3 the args.
-\def\defmethodheader#1#2#3{%
- \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{#2}{\putwordMethodon\ \code{#1}}%
- \defunargs{#3}%
- \endgroup
-}
-
-% @defcv {Class Option} foo-class foo-flag
-
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
-
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME
-%
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-%
-\def\defivarheader#1#2#3{%
- \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index
- \begingroup
- \defname{#2}{\putwordInstanceVariableof\ #1}%
- \defvarargs{#3}%
- \endgroup
-}
-
-% @defvar
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{\putwordDefvar}%
-\defvarargs {#2}\endgroup %
-}
-
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{\putwordDefopt}%
-\defvarargs {#2}\endgroup %
-}
-
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type. #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{\putwordDeftypevar}%
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\nobreak\vskip -\parskip\nobreak
-\endgroup}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% These definitions are used if you use @defunx (etc.)
-% anywhere other than immediately after a @defun or @defunx.
-%
-\def\defcvx#1 {\errmessage{@defcvx in invalid context}}
-\def\deffnx#1 {\errmessage{@deffnx in invalid context}}
-\def\defivarx#1 {\errmessage{@defivarx in invalid context}}
-\def\defmacx#1 {\errmessage{@defmacx in invalid context}}
-\def\defmethodx#1 {\errmessage{@defmethodx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-\def\defopx#1 {\errmessage{@defopx in invalid context}}
-\def\defspecx#1 {\errmessage{@defspecx in invalid context}}
-\def\deftpx#1 {\errmessage{@deftpx in invalid context}}
-\def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}}
-\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}}
-\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}}
-\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}}
-\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}}
-\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}}
-\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}}
-\def\defunx#1 {\errmessage{@defunx in invalid context}}
-\def\defvarx#1 {\errmessage{@defvarx in invalid context}}
-\def\defvrx#1 {\errmessage{@defvrx in invalid context}}
-
-
-\message{macros,}
-% @macro.
-
-% To do this right we need a feature of e-TeX, \scantokens,
-% which we arrange to emulate with a temporary file in ordinary TeX.
-\ifx\eTeXversion\undefined
- \newwrite\macscribble
- \def\scanmacro#1{%
- \begingroup \newlinechar`\^^M
- % Undo catcode changes of \startcontents and \doprintindex
- \catcode`\@=0 \catcode`\\=12 \escapechar=`\@
- % Append \endinput to make sure that TeX does not see the ending newline.
- \toks0={#1\endinput}%
- \immediate\openout\macscribble=\jobname.tmp
- \immediate\write\macscribble{\the\toks0}%
- \immediate\closeout\macscribble
- \let\xeatspaces\eatspaces
- \input \jobname.tmp
- \endgroup
-}
-\else
-\def\scanmacro#1{%
-\begingroup \newlinechar`\^^M
-% Undo catcode changes of \startcontents and \doprintindex
-\catcode`\@=0 \catcode`\\=12 \escapechar=`\@
-\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup}
-\fi
-
-\newcount\paramno % Count of parameters
-\newtoks\macname % Macro name
-\newif\ifrecursive % Is it recursive?
-\def\macrolist{} % List of all defined macros in the form
- % \do\macro1\do\macro2...
-
-% Utility routines.
-% Thisdoes \let #1 = #2, except with \csnames.
-\def\cslet#1#2{%
-\expandafter\expandafter
-\expandafter\let
-\expandafter\expandafter
-\csname#1\endcsname
-\csname#2\endcsname}
-
-% Trim leading and trailing spaces off a string.
-% Concepts from aro-bend problem 15 (see CTAN).
-{\catcode`\@=11
-\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
-\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
-\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
-\def\unbrace#1{#1}
-\unbrace{\gdef\trim@@@ #1 } #2@{#1}
-}
-
-% Trim a single trailing ^^M off a string.
-{\catcode`\^^M=12\catcode`\Q=3%
-\gdef\eatcr #1{\eatcra #1Q^^MQ}%
-\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
-\gdef\eatcrb#1Q#2Q{#1}%
-}
-
-% Macro bodies are absorbed as an argument in a context where
-% all characters are catcode 10, 11 or 12, except \ which is active
-% (as in normal texinfo). It is necessary to change the definition of \.
-
-% It's necessary to have hard CRs when the macro is executed. This is
-% done by making ^^M (\endlinechar) catcode 12 when reading the macro
-% body, and then making it the \newlinechar in \scanmacro.
-
-\def\macrobodyctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\{=12
- \catcode`\}=12
- \catcode`\@=12
- \catcode`\^^M=12
- \usembodybackslash}
-
-\def\macroargctxt{%
- \catcode`\~=12
- \catcode`\^=12
- \catcode`\_=12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \catcode`\+=12
- \catcode`\@=12
- \catcode`\\=12}
-
-% \mbodybackslash is the definition of \ in @macro bodies.
-% It maps \foo\ => \csname macarg.foo\endcsname => #N
-% where N is the macro parameter number.
-% We define \csname macarg.\endcsname to be \realbackslash, so
-% \\ in macro replacement text gets you a backslash.
-
-{\catcode`@=0 @catcode`@\=@active
- @gdef@usembodybackslash{@let\=@mbodybackslash}
- @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
-}
-\expandafter\def\csname macarg.\endcsname{\realbackslash}
-
-\def\macro{\recursivefalse\parsearg\macroxxx}
-\def\rmacro{\recursivetrue\parsearg\macroxxx}
-
-\def\macroxxx#1{%
- \getargs{#1}% now \macname is the macname and \argl the arglist
- \ifx\argl\empty % no arguments
- \paramno=0%
- \else
- \expandafter\parsemargdef \argl;%
- \fi
- \if1\csname ismacro.\the\macname\endcsname
- \message{Warning: redefining \the\macname}%
- \else
- \expandafter\ifx\csname \the\macname\endcsname \relax
- \else \errmessage{The name \the\macname\space is reserved}\fi
- \global\cslet{macsave.\the\macname}{\the\macname}%
- \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
- % Add the macroname to \macrolist
- \toks0 = \expandafter{\macrolist\do}%
- \xdef\macrolist{\the\toks0
- \expandafter\noexpand\csname\the\macname\endcsname}%
- \fi
- \begingroup \macrobodyctxt
- \ifrecursive \expandafter\parsermacbody
- \else \expandafter\parsemacbody
- \fi}
-
-\def\unmacro{\parsearg\unmacroxxx}
-\def\unmacroxxx#1{%
- \if1\csname ismacro.#1\endcsname
- \global\cslet{#1}{macsave.#1}%
- \global\expandafter\let \csname ismacro.#1\endcsname=0%
- % Remove the macro name from \macrolist
- \begingroup
- \edef\tempa{\expandafter\noexpand\csname#1\endcsname}%
- \def\do##1{%
- \def\tempb{##1}%
- \ifx\tempa\tempb
- % remove this
- \else
- \toks0 = \expandafter{\newmacrolist\do}%
- \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}%
- \fi}%
- \def\newmacrolist{}%
- % Execute macro list to define \newmacrolist
- \macrolist
- \global\let\macrolist\newmacrolist
- \endgroup
- \else
- \errmessage{Macro #1 not defined}%
- \fi
-}
-
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> is #, then the preceding argument is delimited by
-% an opening brace, and that opening brace is not consumed.
-\def\getargs#1{\getargsxxx#1{}}
-\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
-\def\getmacname #1 #2\relax{\macname={#1}}
-\def\getmacargs#1{\def\argl{#1}}
-
-% Parse the optional {params} list. Set up \paramno and \paramlist
-% so \defmacro knows what to do. Define \macarg.blah for each blah
-% in the params list, to be ##N where N is the position in that list.
-% That gets used by \mbodybackslash (above).
-
-% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX: let \hash be something
-% unexpandable, insert that wherever you need a #, and then redefine
-% it to # just before using the token list produced.
-%
-% The same technique is used to protect \eatspaces till just before
-% the macro is used.
-
-\def\parsemargdef#1;{\paramno=0\def\paramlist{}%
- \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
-\def\parsemargdefxxx#1,{%
- \if#1;\let\next=\relax
- \else \let\next=\parsemargdefxxx
- \advance\paramno by 1%
- \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
- {\xeatspaces{\hash\the\paramno}}%
- \edef\paramlist{\paramlist\hash\the\paramno,}%
- \fi\next}
-
-% These two commands read recursive and nonrecursive macro bodies.
-% (They're different since rec and nonrec macros end differently.)
-
-\long\def\parsemacbody#1@end macro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\long\def\parsermacbody#1@end rmacro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-
-% This defines the macro itself. There are six cases: recursive and
-% nonrecursive macros of zero, one, and many arguments.
-% Much magic with \expandafter here.
-% \xdef is used so that macro definitions will survive the file
-% they're defined in; @include reads the file inside a group.
-\def\defmacro{%
- \let\hash=##% convert placeholders to macro parameter chars
- \ifrecursive
- \ifcase\paramno
- % 0
- \expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\scanmacro{\temp}}%
- \or % 1
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\braceorline
- \expandafter\noexpand\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup\noexpand\scanmacro{\temp}}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{\egroup\noexpand\scanmacro{\temp}}%
- \fi
- \else
- \ifcase\paramno
- % 0
- \expandafter\xdef\csname\the\macname\endcsname{%
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \or % 1
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \noexpand\braceorline
- \expandafter\noexpand\csname\the\macname xxx\endcsname}%
- \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \else % many
- \expandafter\xdef\csname\the\macname\endcsname{%
- \bgroup\noexpand\macroargctxt
- \expandafter\noexpand\csname\the\macname xx\endcsname}%
- \expandafter\xdef\csname\the\macname xx\endcsname##1{%
- \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
- \expandafter\expandafter
- \expandafter\xdef
- \expandafter\expandafter
- \csname\the\macname xxx\endcsname
- \paramlist{%
- \egroup
- \noexpand\norecurse{\the\macname}%
- \noexpand\scanmacro{\temp}\egroup}%
- \fi
- \fi}
-
-\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
-
-% \braceorline decides whether the next nonwhitespace character is a
-% {. If so it reads up to the closing }, if not, it reads the whole
-% line. Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg)
-\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
-\def\braceorlinexxx{%
- \ifx\nchar\bgroup\else
- \expandafter\parsearg
- \fi \next}
-
-% We mant to disable all macros during \shipout so that they are not
-% expanded by \write.
-\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
- \edef\next{\macrolist}\expandafter\endgroup\next}
-
-
-% @alias.
-% We need some trickery to remove the optional spaces around the equal
-% sign. Just make them active and then expand them all to nothing.
-\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx}
-\def\aliasxxx #1{\aliasyyy#1\relax}
-\def\aliasyyy #1=#2\relax{\ignoreactivespaces
-\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=%
- \expandafter\noexpand\csname#2\endcsname}%
-\expandafter\endgroup\next}
-
-
-\message{cross references,}
-% @xref etc.
-
-\newwrite\auxfile
-
-\newif\ifhavexrefs % True if xref values are known.
-\newif\ifwarnedxrefs % True if we warned once that they aren't known.
-
-% @inforef is relatively simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
- node \samp{\ignorespaces#1{}}}
-
-% @node's job is to define \lastnode.
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\nwnode=\node
-\let\lastnode=\relax
-
-% The sectioning commands (@chapter, etc.) call these.
-\def\donoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}%
- {Ysectionnumberandtype}%
- \global\let\lastnode=\relax
- \fi
-}
-\def\unnumbnoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}%
- \global\let\lastnode=\relax
- \fi
-}
-\def\appendixnoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}%
- {Yappendixletterandtype}%
- \global\let\lastnode=\relax
- \fi
-}
-
-
-% @anchor{NAME} -- define xref target at arbitrary point.
-%
-\newcount\savesfregister
-\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
-\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
-\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
-
-% \setref{NAME}{SNT} defines a cross-reference point NAME, namely
-% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have
-% to set \indexdummies so commands such as @code in a section title
-% aren't expanded. It would be nicer not to expand the titles in the
-% first place, but there's so many layers that that is hard to do.
-%
-\def\setref#1#2{{%
- \indexdummies
- \pdfmkdest{#1}%
- \dosetq{#1-title}{Ytitle}%
- \dosetq{#1-pg}{Ypagenumber}%
- \dosetq{#1-snt}{#2}%
-}}
-
-% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
-% the node name, #2 the name of the Info cross-reference, #3 the printed
-% node name, #4 the name of the Info file, #5 the name of the printed
-% manual. All but the node name can be omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
- \unsepspaces
- \def\printedmanual{\ignorespaces #5}%
- \def\printednodename{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual}%
- \setbox0=\hbox{\printednodename}%
- \ifdim \wd0 = 0pt
- % No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
- \def\printednodename{\ignorespaces #1}%
- \else
- % Use the actual chapter/section title appear inside
- % the square brackets. Use the real section title if we have it.
- \ifdim \wd1 > 0pt
- % It is in another manual, so we don't have it.
- \def\printednodename{\ignorespaces #1}%
- \else
- \ifhavexrefs
- % We know the real title if we have the xref values.
- \def\printednodename{\refx{#1-title}{}}%
- \else
- % Otherwise just copy the Info node name.
- \def\printednodename{\ignorespaces #1}%
- \fi%
- \fi
- \fi
- \fi
- %
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
- \ifpdf
- \leavevmode
- \getfilename{#4}%
- \ifnum\filenamelength>0
- \startlink attr{/Border [0 0 0]}%
- goto file{\the\filename.pdf} name{#1@}%
- \else
- \startlink attr{/Border [0 0 0]}%
- goto name{#1@}%
- \fi
- \linkcolor
- \fi
- %
- \ifdim \wd1 > 0pt
- \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}%
- \else
- % _ (for example) has to be the character _ for the purposes of the
- % control sequence corresponding to the node, but it has to expand
- % into the usual \leavevmode...\vrule stuff for purposes of
- % printing. So we \turnoffactive for the \refx-snt, back on for the
- % printing, back off for the \refx-pg.
- {\normalturnoffactive
- % Only output a following space if the -snt ref is nonempty; for
- % @unnumbered and @anchor, it won't be.
- \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
- \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
- }%
- % [mynode],
- [\printednodename],\space
- % page 3
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
- \endlink
-\endgroup}
-
-% \dosetq is the interface for calls from other macros
-
-% Use \normalturnoffactive so that punctuation chars such as underscore
-% and backslash work in node names. (\turnoffactive doesn't do \.)
-\def\dosetq#1#2{%
- {\let\folio=0%
- \normalturnoffactive
- \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
- \iflinks
- \next
- \fi
- }%
-}
-
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
-
-\def\Ypagenumber{\folio}
-
-\def\Ytitle{\thissection}
-
-\def\Ynothing{}
-
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Non-3.0.
-\else
- \def\linenumber{\the\inputlineno:\space}
-\fi
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-
-\def\refx#1#2{%
- \expandafter\ifx\csname X#1\endcsname\relax
- % If not defined, say something at least.
- \angleleft un\-de\-fined\angleright
- \iflinks
- \ifhavexrefs
- \message{\linenumber Undefined cross reference `#1'.}%
- \else
- \ifwarnedxrefs\else
- \global\warnedxrefstrue
- \message{Cross reference values unknown; you must run TeX again.}%
- \fi
- \fi
- \fi
- \else
- % It's defined, so just use it.
- \csname X#1\endcsname
- \fi
- #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file.
-%
-\def\xrdef#1{\begingroup
- % Reenable \ as an escape while reading the second argument.
- \catcode`\\ = 0
- \afterassignment\endgroup
- \expandafter\gdef\csname X#1\endcsname
-}
-
-% Read the last existing aux file, if any. No error if none exists.
-\def\readauxfile{\begingroup
- \catcode`\^^@=\other
- \catcode`\^^A=\other
- \catcode`\^^B=\other
- \catcode`\^^C=\other
- \catcode`\^^D=\other
- \catcode`\^^E=\other
- \catcode`\^^F=\other
- \catcode`\^^G=\other
- \catcode`\^^H=\other
- \catcode`\^^K=\other
- \catcode`\^^L=\other
- \catcode`\^^N=\other
- \catcode`\^^P=\other
- \catcode`\^^Q=\other
- \catcode`\^^R=\other
- \catcode`\^^S=\other
- \catcode`\^^T=\other
- \catcode`\^^U=\other
- \catcode`\^^V=\other
- \catcode`\^^W=\other
- \catcode`\^^X=\other
- \catcode`\^^Z=\other
- \catcode`\^^[=\other
- \catcode`\^^\=\other
- \catcode`\^^]=\other
- \catcode`\^^^=\other
- \catcode`\^^_=\other
- \catcode`\@=\other
- \catcode`\^=\other
- % It was suggested to define this as 7, which would allow ^^e4 etc.
- % in xref tags, i.e., node names. But since ^^e4 notation isn't
- % supported in the main text, it doesn't seem desirable. Furthermore,
- % that is not enough: for node names that actually contain a ^
- % character, we would end up writing a line like this: 'xrdef {'hat
- % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
- % argument, and \hat is not an expandable control sequence. It could
- % all be worked out, but why? Either we support ^^ or we don't.
- %
- % The other change necessary for this was to define \auxhat:
- % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
- % and then to call \auxhat in \setq.
- %
- \catcode`\~=\other
- \catcode`\[=\other
- \catcode`\]=\other
- \catcode`\"=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\$=\other
- \catcode`\#=\other
- \catcode`\&=\other
- \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
- % Make the characters 128-255 be printing characters
- {%
- \count 1=128
- \def\loop{%
- \catcode\count 1=\other
- \advance\count 1 by 1
- \ifnum \count 1<256 \loop \fi
- }%
- }%
- % The aux file uses ' as the escape (for now).
- % Turn off \ as an escape so we do not lose on
- % entries which were dumped with control sequences in their names.
- % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
- % Reference to such entries still does not work the way one would wish,
- % but at least they do not bomb out when the aux file is read in.
- \catcode`\{=1
- \catcode`\}=2
- \catcode`\%=\other
- \catcode`\'=0
- \catcode`\\=\other
- %
- \openin 1 \jobname.aux
- \ifeof 1 \else
- \closein 1
- \input \jobname.aux
- \global\havexrefstrue
- \global\warnedobstrue
- \fi
- % Open the new aux file. TeX will close it automatically at exit.
- \openout\auxfile=\jobname.aux
-\endgroup}
-
-
-% Footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-\let\ptexfootnote=\footnote
-
-{\catcode `\@=11
-%
-% Auto-number footnotes. Otherwise like plain.
-\gdef\footnote{%
- \global\advance\footnoteno by \@ne
- \edef\thisfootno{$^{\the\footnoteno}$}%
- %
- % In case the footnote comes at the end of a sentence, preserve the
- % extra spacing after we do the footnote number.
- \let\@sf\empty
- \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
- %
- % Remove inadvertent blank space before typesetting the footnote number.
- \unskip
- \thisfootno\@sf
- \footnotezzz
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter. Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
-% the footnote is read. --karl, 16nov96.
-%
-\long\gdef\footnotezzz{\insert\footins\bgroup
- % We want to typeset this text as a normal paragraph, even if the
- % footnote reference occurs in (for example) a display environment.
- % So reset some parameters.
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \splitmaxdepth\dp\strutbox
- \floatingpenalty\@MM
- \leftskip\z@skip
- \rightskip\z@skip
- \spaceskip\z@skip
- \xspaceskip\z@skip
- \parindent\defaultparindent
- %
- \smallfonts \rm
- %
- % Hang the footnote text off the number.
- \hang
- \textindent{\thisfootno}%
- %
- % Don't crash into the line above the footnote text. Since this
- % expands into a box, it must come within the paragraph, lest it
- % provide a place where TeX can split the footnote.
- \footstrut
- \futurelet\next\fo@t
-}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
- \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\par\egroup}
-
-}%end \catcode `\@=11
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly. There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
- \normalbaselineskip = #1\relax
- \normallineskip = \lineskipfactor\normalbaselineskip
- \normalbaselines
- \setbox\strutbox =\hbox{%
- \vrule width0pt height\strutheightpercent\baselineskip
- depth \strutdepthpercent \baselineskip
- }%
-}
-
-% @| inserts a changebar to the left of the current line. It should
-% surround any changed text. This approach does *not* work if the
-% change spans more than two lines of output. To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
- % \vadjust can only be used in horizontal mode.
- \leavevmode
- %
- % Append this vertical mode material after the current line in the output.
- \vadjust{%
- % We want to insert a rule with the height and depth of the current
- % leading; that is exactly what \strutbox is supposed to record.
- \vskip-\baselineskip
- %
- % \vadjust-items are inserted at the left edge of the type. So
- % the \llap here moves out into the left-hand margin.
- \llap{%
- %
- % For a thicker or thinner bar, change the `1pt'.
- \vrule height\baselineskip width1pt
- %
- % This is the space between the bar and the text.
- \hskip 12pt
- }%
- }%
-}
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @image. We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-%
-% Check for and read epsf.tex up front. If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
- \closein 1
- % Do not bother showing banner with post-v2.7 epsf.tex (available in
- % doc/epsf.tex until it shows up on ctan).
- \def\epsfannounce{\toks0 = }%
- \input epsf.tex
-\fi
-%
-% We will only complain once about lack of epsf.tex.
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
- work. It is also included in the Texinfo distribution, or you can get
- it from ftp://tug.org/tex/epsf.tex.}
-%
-\def\image#1{%
- \ifx\epsfbox\undefined
- \ifwarnednoepsf \else
- \errhelp = \noepsfhelp
- \errmessage{epsf.tex not found, images will be ignored}%
- \global\warnednoepsftrue
- \fi
- \else
- \imagexxx #1,,,\finish
- \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
- \ifpdf
- \centerline{\dopdfimage{#1}{#2}{#3}}%
- \else
- % \epsfbox itself resets \epsf?size at each figure.
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
- \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
- \begingroup
- \catcode`\^^M = 5 % in case we're inside an example
- % If the image is by itself, center it.
- \ifvmode
- \nobreak\bigskip
- % Usually we'll have text after the image which will insert
- % \parskip glue, so insert it here too to equalize the space
- % above and below.
- \nobreak\vskip\parskip
- \nobreak
- \centerline{\epsfbox{#1.eps}}%
- \bigbreak
- \else
- % In the middle of a paragraph, no extra space.
- \epsfbox{#1.eps}%
- \fi
- \endgroup
- \fi
-}
-
-
-\message{localization,}
-% and i18n.
-
-% @documentlanguage is usually given very early, just after
-% @setfilename. If done too late, it may not override everything
-% properly. Single argument is the language abbreviation.
-% It would be nice if we could set up a hyphenation file here.
-%
-\def\documentlanguage{\parsearg\dodocumentlanguage}
-\def\dodocumentlanguage#1{%
- \tex % read txi-??.tex file in plain TeX.
- % Read the file if it exists.
- \openin 1 txi-#1.tex
- \ifeof1
- \errhelp = \nolanghelp
- \errmessage{Cannot read language file txi-#1.tex}%
- \let\temp = \relax
- \else
- \def\temp{\input txi-#1.tex }%
- \fi
- \temp
- \endgroup
-}
-\newhelp\nolanghelp{The given language definition file cannot be found or
-is empty. Maybe you need to install it? In the current directory
-should work if nowhere else does.}
-
-
-% @documentencoding should change something in TeX eventually, most
-% likely, but for now just recognize it.
-\let\documentencoding = \comment
-
-
-% Page size parameters.
-%
-\newdimen\defaultparindent \defaultparindent = 15pt
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness = 10000
-
-% Don't be so finicky about underfull hboxes, either.
-\hbadness = 2000
-
-% Following George Bush, just get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything. We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize. We call this whenever the paper size is set.
-%
-\def\setemergencystretch{%
- \ifx\emergencystretch\thisisundefined
- % Allow us to assign to \emergencystretch anyway.
- \def\emergencystretch{\dimen0}%
- \else
- \emergencystretch = .15\hsize
- \fi
-}
-
-% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
-% 4) hoffset; 5) binding offset; 6) topskip. Then whoever calls us can
-% set \parskip and call \setleading for \baselineskip.
-%
-\def\internalpagesizes#1#2#3#4#5#6{%
- \voffset = #3\relax
- \topskip = #6\relax
- \splittopskip = \topskip
- %
- \vsize = #1\relax
- \advance\vsize by \topskip
- \outervsize = \vsize
- \advance\outervsize by 2\topandbottommargin
- \pageheight = \vsize
- %
- \hsize = #2\relax
- \outerhsize = \hsize
- \advance\outerhsize by 0.5in
- \pagewidth = \hsize
- %
- \normaloffset = #4\relax
- \bindingoffset = #5\relax
- %
- \parindent = \defaultparindent
- \setemergencystretch
-}
-
-% @letterpaper (the default).
-\def\letterpaper{{\globaldefs = 1
- \parskip = 3pt plus 2pt minus 1pt
- \setleading{13.2pt}%
- %
- % If page is nothing but text, make it come out even.
- \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}%
-}}
-
-% Use @smallbook to reset parameters for 7x9.5 (or so) format.
-\def\smallbook{{\globaldefs = 1
- \parskip = 2pt plus 1pt
- \setleading{12pt}%
- %
- \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}%
- %
- \lispnarrowing = 0.3in
- \tolerance = 700
- \hfuzz = 1pt
- \contentsrightmargin = 0pt
- \deftypemargin = 0pt
- \defbodyindent = .5cm
- %
- \let\smalldisplay = \smalldisplayx
- \let\smallexample = \smalllispx
- \let\smallformat = \smallformatx
- \let\smalllisp = \smalllispx
-}}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{{\globaldefs = 1
- \setleading{12pt}%
- \parskip = 3pt plus 2pt minus 1pt
- %
- \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%
- %
- \tolerance = 700
- \hfuzz = 1pt
-}}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex{{\globaldefs = 1
- \setleading{13.6pt}%
- %
- \afourpaper
- \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}%
- %
- \globaldefs = 0
-}}
-
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{%
- \afourpaper
- \internalpagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}%
- %
- \globaldefs = 0
-}
-
-% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
-% Perhaps we should allow setting the margins, \topskip, \parskip,
-% and/or leading, also. Or perhaps we should compute them somehow.
-%
-\def\pagesizes{\parsearg\pagesizesxxx}
-\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish}
-\def\pagesizesyyy#1,#2,#3\finish{{%
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
- \globaldefs = 1
- %
- \parskip = 3pt plus 2pt minus 1pt
- \setleading{13.2pt}%
- %
- \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}%
-}}
-
-% Set default to letter.
-%
-\letterpaper
-
-
-\message{and turning on texinfo input format.}
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\catcode`\$=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-\def\normaldollar{$}
-
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise. Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
-
-% Same as above, but check for italic font. Actually this also catches
-% non-italic slanted fonts since it is impossible to distinguish them from
-% italic fonts. But since this is only used by $ and it uses \sl anyway
-% this is not a problem.
-\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt\char34}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-\catcode`\|=\active
-\def|{{\tt\char124}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-\catcode`\$=\active
-\def${\ifusingit{{\sl\$}}\normaldollar}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
-
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
-\catcode`\@=0
-
-% \rawbackslashxx output one backslash character in current font
-\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
-
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
-
-% \catcode 17=0 % Define control-q
-\catcode`\\=\active
-
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus
-@let$=@normaldollar}
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus
-@let$=@normaldollar}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
-@gdef@fixbackslash{%
- @ifx\@eatinput @let\ = @normalbackslash @fi
- @catcode`+=@active
- @catcode`@_=@active
-}
-
-% Say @foo, not \foo, in error messages.
-@escapechar = `@@
-
-% These look ok in all fonts, so just make them not special.
-@catcode`@& = @other
-@catcode`@# = @other
-@catcode`@% = @other
-
-@c Set initial fonts.
-@textfonts
-@rm
-
-
-@c Local variables:
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
-@c page-delimiter: "^\\\\message"
-@c time-stamp-start: "def\\\\texinfoversion{"
-@c time-stamp-format: "%:y-%02m-%02d.%02H"
-@c time-stamp-end: "}"
-@c End:
diff --git a/readline-4.3/emacs_keymap.c b/readline-4.3/emacs_keymap.c
deleted file mode 100644
index ca9d134..0000000
--- a/readline-4.3/emacs_keymap.c
+++ /dev/null
@@ -1,873 +0,0 @@
-/* emacs_keymap.c -- the keymap for emacs_mode in readline (). */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (BUFSIZ)
-#include <stdio.h>
-#endif /* !BUFSIZ */
-
-#include "readline.h"
-
-/* An array of function pointers, one for each possible key.
- If the type byte is ISKMAP, then the pointer is the address of
- a keymap. */
-
-KEYMAP_ENTRY_ARRAY emacs_standard_keymap = {
-
- /* Control keys. */
- { ISFUNC, rl_set_mark }, /* Control-@ */
- { ISFUNC, rl_beg_of_line }, /* Control-a */
- { ISFUNC, rl_backward_char }, /* Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-c */
- { ISFUNC, rl_delete }, /* Control-d */
- { ISFUNC, rl_end_of_line }, /* Control-e */
- { ISFUNC, rl_forward_char }, /* Control-f */
- { ISFUNC, rl_abort }, /* Control-g */
- { ISFUNC, rl_rubout }, /* Control-h */
- { ISFUNC, rl_complete }, /* Control-i */
- { ISFUNC, rl_newline }, /* Control-j */
- { ISFUNC, rl_kill_line }, /* Control-k */
- { ISFUNC, rl_clear_screen }, /* Control-l */
- { ISFUNC, rl_newline }, /* Control-m */
- { ISFUNC, rl_get_next_history }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
- { ISFUNC, rl_get_previous_history }, /* Control-p */
- { ISFUNC, rl_quoted_insert }, /* Control-q */
- { ISFUNC, rl_reverse_search_history }, /* Control-r */
- { ISFUNC, rl_forward_search_history }, /* Control-s */
- { ISFUNC, rl_transpose_chars }, /* Control-t */
- { ISFUNC, rl_unix_line_discard }, /* Control-u */
- { ISFUNC, rl_quoted_insert }, /* Control-v */
- { ISFUNC, rl_unix_word_rubout }, /* Control-w */
- { ISKMAP, (rl_command_func_t *)emacs_ctlx_keymap }, /* Control-x */
- { ISFUNC, rl_yank }, /* Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
- { ISKMAP, (rl_command_func_t *)emacs_meta_keymap }, /* Control-[ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-\ */
- { ISFUNC, rl_char_search }, /* Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-^ */
- { ISFUNC, rl_undo_command }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, rl_insert }, /* SPACE */
- { ISFUNC, rl_insert }, /* ! */
- { ISFUNC, rl_insert }, /* " */
- { ISFUNC, rl_insert }, /* # */
- { ISFUNC, rl_insert }, /* $ */
- { ISFUNC, rl_insert }, /* % */
- { ISFUNC, rl_insert }, /* & */
- { ISFUNC, rl_insert }, /* ' */
- { ISFUNC, rl_insert }, /* ( */
- { ISFUNC, rl_insert }, /* ) */
- { ISFUNC, rl_insert }, /* * */
- { ISFUNC, rl_insert }, /* + */
- { ISFUNC, rl_insert }, /* , */
- { ISFUNC, rl_insert }, /* - */
- { ISFUNC, rl_insert }, /* . */
- { ISFUNC, rl_insert }, /* / */
-
- /* Regular digits. */
- { ISFUNC, rl_insert }, /* 0 */
- { ISFUNC, rl_insert }, /* 1 */
- { ISFUNC, rl_insert }, /* 2 */
- { ISFUNC, rl_insert }, /* 3 */
- { ISFUNC, rl_insert }, /* 4 */
- { ISFUNC, rl_insert }, /* 5 */
- { ISFUNC, rl_insert }, /* 6 */
- { ISFUNC, rl_insert }, /* 7 */
- { ISFUNC, rl_insert }, /* 8 */
- { ISFUNC, rl_insert }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, rl_insert }, /* : */
- { ISFUNC, rl_insert }, /* ; */
- { ISFUNC, rl_insert }, /* < */
- { ISFUNC, rl_insert }, /* = */
- { ISFUNC, rl_insert }, /* > */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_insert }, /* A */
- { ISFUNC, rl_insert }, /* B */
- { ISFUNC, rl_insert }, /* C */
- { ISFUNC, rl_insert }, /* D */
- { ISFUNC, rl_insert }, /* E */
- { ISFUNC, rl_insert }, /* F */
- { ISFUNC, rl_insert }, /* G */
- { ISFUNC, rl_insert }, /* H */
- { ISFUNC, rl_insert }, /* I */
- { ISFUNC, rl_insert }, /* J */
- { ISFUNC, rl_insert }, /* K */
- { ISFUNC, rl_insert }, /* L */
- { ISFUNC, rl_insert }, /* M */
- { ISFUNC, rl_insert }, /* N */
- { ISFUNC, rl_insert }, /* O */
- { ISFUNC, rl_insert }, /* P */
- { ISFUNC, rl_insert }, /* Q */
- { ISFUNC, rl_insert }, /* R */
- { ISFUNC, rl_insert }, /* S */
- { ISFUNC, rl_insert }, /* T */
- { ISFUNC, rl_insert }, /* U */
- { ISFUNC, rl_insert }, /* V */
- { ISFUNC, rl_insert }, /* W */
- { ISFUNC, rl_insert }, /* X */
- { ISFUNC, rl_insert }, /* Y */
- { ISFUNC, rl_insert }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, rl_insert }, /* [ */
- { ISFUNC, rl_insert }, /* \ */
- { ISFUNC, rl_insert }, /* ] */
- { ISFUNC, rl_insert }, /* ^ */
- { ISFUNC, rl_insert }, /* _ */
- { ISFUNC, rl_insert }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, rl_insert }, /* a */
- { ISFUNC, rl_insert }, /* b */
- { ISFUNC, rl_insert }, /* c */
- { ISFUNC, rl_insert }, /* d */
- { ISFUNC, rl_insert }, /* e */
- { ISFUNC, rl_insert }, /* f */
- { ISFUNC, rl_insert }, /* g */
- { ISFUNC, rl_insert }, /* h */
- { ISFUNC, rl_insert }, /* i */
- { ISFUNC, rl_insert }, /* j */
- { ISFUNC, rl_insert }, /* k */
- { ISFUNC, rl_insert }, /* l */
- { ISFUNC, rl_insert }, /* m */
- { ISFUNC, rl_insert }, /* n */
- { ISFUNC, rl_insert }, /* o */
- { ISFUNC, rl_insert }, /* p */
- { ISFUNC, rl_insert }, /* q */
- { ISFUNC, rl_insert }, /* r */
- { ISFUNC, rl_insert }, /* s */
- { ISFUNC, rl_insert }, /* t */
- { ISFUNC, rl_insert }, /* u */
- { ISFUNC, rl_insert }, /* v */
- { ISFUNC, rl_insert }, /* w */
- { ISFUNC, rl_insert }, /* x */
- { ISFUNC, rl_insert }, /* y */
- { ISFUNC, rl_insert }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, rl_insert }, /* { */
- { ISFUNC, rl_insert }, /* | */
- { ISFUNC, rl_insert }, /* } */
- { ISFUNC, rl_insert }, /* ~ */
- { ISFUNC, rl_rubout }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Pure 8-bit characters (128 - 159).
- These might be used in some
- character sets. */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
-
- /* ISO Latin-1 characters (160 - 255) */
- { ISFUNC, rl_insert }, /* No-break space */
- { ISFUNC, rl_insert }, /* Inverted exclamation mark */
- { ISFUNC, rl_insert }, /* Cent sign */
- { ISFUNC, rl_insert }, /* Pound sign */
- { ISFUNC, rl_insert }, /* Currency sign */
- { ISFUNC, rl_insert }, /* Yen sign */
- { ISFUNC, rl_insert }, /* Broken bar */
- { ISFUNC, rl_insert }, /* Section sign */
- { ISFUNC, rl_insert }, /* Diaeresis */
- { ISFUNC, rl_insert }, /* Copyright sign */
- { ISFUNC, rl_insert }, /* Feminine ordinal indicator */
- { ISFUNC, rl_insert }, /* Left pointing double angle quotation mark */
- { ISFUNC, rl_insert }, /* Not sign */
- { ISFUNC, rl_insert }, /* Soft hyphen */
- { ISFUNC, rl_insert }, /* Registered sign */
- { ISFUNC, rl_insert }, /* Macron */
- { ISFUNC, rl_insert }, /* Degree sign */
- { ISFUNC, rl_insert }, /* Plus-minus sign */
- { ISFUNC, rl_insert }, /* Superscript two */
- { ISFUNC, rl_insert }, /* Superscript three */
- { ISFUNC, rl_insert }, /* Acute accent */
- { ISFUNC, rl_insert }, /* Micro sign */
- { ISFUNC, rl_insert }, /* Pilcrow sign */
- { ISFUNC, rl_insert }, /* Middle dot */
- { ISFUNC, rl_insert }, /* Cedilla */
- { ISFUNC, rl_insert }, /* Superscript one */
- { ISFUNC, rl_insert }, /* Masculine ordinal indicator */
- { ISFUNC, rl_insert }, /* Right pointing double angle quotation mark */
- { ISFUNC, rl_insert }, /* Vulgar fraction one quarter */
- { ISFUNC, rl_insert }, /* Vulgar fraction one half */
- { ISFUNC, rl_insert }, /* Vulgar fraction three quarters */
- { ISFUNC, rl_insert }, /* Inverted questionk mark */
- { ISFUNC, rl_insert }, /* Latin capital letter a with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter a with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter a with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter a with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter a with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter a with ring above */
- { ISFUNC, rl_insert }, /* Latin capital letter ae */
- { ISFUNC, rl_insert }, /* Latin capital letter c with cedilla */
- { ISFUNC, rl_insert }, /* Latin capital letter e with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter e with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter e with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter e with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter i with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter i with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter i with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter i with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter eth (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin capital letter n with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter o with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter o with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter o with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter o with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter o with diaeresis */
- { ISFUNC, rl_insert }, /* Multiplication sign */
- { ISFUNC, rl_insert }, /* Latin capital letter o with stroke */
- { ISFUNC, rl_insert }, /* Latin capital letter u with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter u with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter u with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter u with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter Y with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter thorn (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin small letter sharp s (German) */
- { ISFUNC, rl_insert }, /* Latin small letter a with grave */
- { ISFUNC, rl_insert }, /* Latin small letter a with acute */
- { ISFUNC, rl_insert }, /* Latin small letter a with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter a with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter a with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter a with ring above */
- { ISFUNC, rl_insert }, /* Latin small letter ae */
- { ISFUNC, rl_insert }, /* Latin small letter c with cedilla */
- { ISFUNC, rl_insert }, /* Latin small letter e with grave */
- { ISFUNC, rl_insert }, /* Latin small letter e with acute */
- { ISFUNC, rl_insert }, /* Latin small letter e with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter e with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter i with grave */
- { ISFUNC, rl_insert }, /* Latin small letter i with acute */
- { ISFUNC, rl_insert }, /* Latin small letter i with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter i with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter eth (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin small letter n with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter o with grave */
- { ISFUNC, rl_insert }, /* Latin small letter o with acute */
- { ISFUNC, rl_insert }, /* Latin small letter o with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter o with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter o with diaeresis */
- { ISFUNC, rl_insert }, /* Division sign */
- { ISFUNC, rl_insert }, /* Latin small letter o with stroke */
- { ISFUNC, rl_insert }, /* Latin small letter u with grave */
- { ISFUNC, rl_insert }, /* Latin small letter u with acute */
- { ISFUNC, rl_insert }, /* Latin small letter u with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter u with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter y with acute */
- { ISFUNC, rl_insert }, /* Latin small letter thorn (Icelandic) */
- { ISFUNC, rl_insert } /* Latin small letter y with diaeresis */
-#endif /* KEYMAP_SIZE > 128 */
-};
-
-KEYMAP_ENTRY_ARRAY emacs_meta_keymap = {
-
- /* Meta keys. Just like above, but the high bit is set. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-@ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-f */
- { ISFUNC, rl_abort }, /* Meta-Control-g */
- { ISFUNC, rl_backward_kill_word }, /* Meta-Control-h */
- { ISFUNC, rl_tab_insert }, /* Meta-Control-i */
- { ISFUNC, rl_vi_editing_mode }, /* Meta-Control-j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-l */
- { ISFUNC, rl_vi_editing_mode }, /* Meta-Control-m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-q */
- { ISFUNC, rl_revert_line }, /* Meta-Control-r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-t */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-x */
- { ISFUNC, rl_yank_nth_arg }, /* Meta-Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-z */
-
- { ISFUNC, rl_complete }, /* Meta-Control-[ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-\ */
- { ISFUNC, rl_backward_char_search }, /* Meta-Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-^ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, rl_set_mark }, /* Meta-SPACE */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-! */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-" */
- { ISFUNC, rl_insert_comment }, /* Meta-# */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-$ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-% */
- { ISFUNC, rl_tilde_expand }, /* Meta-& */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-' */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-( */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-) */
- { ISFUNC, rl_insert_completions }, /* Meta-* */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-+ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-, */
- { ISFUNC, rl_digit_argument }, /* Meta-- */
- { ISFUNC, rl_yank_last_arg}, /* Meta-. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-/ */
-
- /* Regular digits. */
- { ISFUNC, rl_digit_argument }, /* Meta-0 */
- { ISFUNC, rl_digit_argument }, /* Meta-1 */
- { ISFUNC, rl_digit_argument }, /* Meta-2 */
- { ISFUNC, rl_digit_argument }, /* Meta-3 */
- { ISFUNC, rl_digit_argument }, /* Meta-4 */
- { ISFUNC, rl_digit_argument }, /* Meta-5 */
- { ISFUNC, rl_digit_argument }, /* Meta-6 */
- { ISFUNC, rl_digit_argument }, /* Meta-7 */
- { ISFUNC, rl_digit_argument }, /* Meta-8 */
- { ISFUNC, rl_digit_argument }, /* Meta-9 */
-
- /* A little more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-: */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-; */
- { ISFUNC, rl_beginning_of_history }, /* Meta-< */
- { ISFUNC, rl_possible_completions }, /* Meta-= */
- { ISFUNC, rl_end_of_history }, /* Meta-> */
- { ISFUNC, rl_possible_completions }, /* Meta-? */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-@ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-A */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-B */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-C */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-D */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-E */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-F */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-G */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-H */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-I */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-J */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-K */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-L */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-M */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-N */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-O */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-P */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-Q */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-R */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-S */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-T */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-U */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-V */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-W */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-X */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-Y */
- { ISFUNC, rl_do_lowercase_version }, /* Meta-Z */
-
- /* Some more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-[ */ /* was rl_arrow_keys */
- { ISFUNC, rl_delete_horizontal_space }, /* Meta-\ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-^ */
- { ISFUNC, rl_yank_last_arg }, /* Meta-_ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-` */
-
- /* Lowercase alphabet. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-a */
- { ISFUNC, rl_backward_word }, /* Meta-b */
- { ISFUNC, rl_capitalize_word }, /* Meta-c */
- { ISFUNC, rl_kill_word }, /* Meta-d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-e */
- { ISFUNC, rl_forward_word }, /* Meta-f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-i */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-k */
- { ISFUNC, rl_downcase_word }, /* Meta-l */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-m */
- { ISFUNC, rl_noninc_forward_search }, /* Meta-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-o */ /* was rl_arrow_keys */
- { ISFUNC, rl_noninc_reverse_search }, /* Meta-p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-q */
- { ISFUNC, rl_revert_line }, /* Meta-r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-s */
- { ISFUNC, rl_transpose_words }, /* Meta-t */
- { ISFUNC, rl_upcase_word }, /* Meta-u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-x */
- { ISFUNC, rl_yank_pop }, /* Meta-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-z */
-
- /* Final punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-{ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-| */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Meta-} */
- { ISFUNC, rl_tilde_expand }, /* Meta-~ */
- { ISFUNC, rl_backward_kill_word }, /* Meta-rubout */
-
-#if KEYMAP_SIZE > 128
- /* Undefined keys. */
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 }
-#endif /* KEYMAP_SIZE > 128 */
-};
-
-KEYMAP_ENTRY_ARRAY emacs_ctlx_keymap = {
-
- /* Control keys. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-f */
- { ISFUNC, rl_abort }, /* Control-g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-i */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-l */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-q */
- { ISFUNC, rl_re_read_init_file }, /* Control-r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-t */
- { ISFUNC, rl_undo_command }, /* Control-u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-w */
- { ISFUNC, rl_exchange_point_and_mark }, /* Control-x */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-[ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-\ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-^ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* SPACE */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ! */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* " */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* # */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* $ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* % */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* & */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ' */
- { ISFUNC, rl_start_kbd_macro }, /* ( */
- { ISFUNC, rl_end_kbd_macro }, /* ) */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* * */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* + */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* , */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* - */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* . */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* / */
-
- /* Regular digits. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 0 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 1 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 2 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 3 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 4 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 5 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 6 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 7 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 8 */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* : */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ; */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* < */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* = */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* > */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ? */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_do_lowercase_version }, /* A */
- { ISFUNC, rl_do_lowercase_version }, /* B */
- { ISFUNC, rl_do_lowercase_version }, /* C */
- { ISFUNC, rl_do_lowercase_version }, /* D */
- { ISFUNC, rl_do_lowercase_version }, /* E */
- { ISFUNC, rl_do_lowercase_version }, /* F */
- { ISFUNC, rl_do_lowercase_version }, /* G */
- { ISFUNC, rl_do_lowercase_version }, /* H */
- { ISFUNC, rl_do_lowercase_version }, /* I */
- { ISFUNC, rl_do_lowercase_version }, /* J */
- { ISFUNC, rl_do_lowercase_version }, /* K */
- { ISFUNC, rl_do_lowercase_version }, /* L */
- { ISFUNC, rl_do_lowercase_version }, /* M */
- { ISFUNC, rl_do_lowercase_version }, /* N */
- { ISFUNC, rl_do_lowercase_version }, /* O */
- { ISFUNC, rl_do_lowercase_version }, /* P */
- { ISFUNC, rl_do_lowercase_version }, /* Q */
- { ISFUNC, rl_do_lowercase_version }, /* R */
- { ISFUNC, rl_do_lowercase_version }, /* S */
- { ISFUNC, rl_do_lowercase_version }, /* T */
- { ISFUNC, rl_do_lowercase_version }, /* U */
- { ISFUNC, rl_do_lowercase_version }, /* V */
- { ISFUNC, rl_do_lowercase_version }, /* W */
- { ISFUNC, rl_do_lowercase_version }, /* X */
- { ISFUNC, rl_do_lowercase_version }, /* Y */
- { ISFUNC, rl_do_lowercase_version }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* [ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* \ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ^ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* _ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* d */
- { ISFUNC, rl_call_last_kbd_macro }, /* e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* i */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* l */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* q */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* t */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* x */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* { */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* | */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* } */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ~ */
- { ISFUNC, rl_backward_kill_line }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Undefined keys. */
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 }
-#endif /* KEYMAP_SIZE > 128 */
-};
diff --git a/readline-4.3/examples/Inputrc b/readline-4.3/examples/Inputrc
deleted file mode 100644
index d7fdb42..0000000
--- a/readline-4.3/examples/Inputrc
+++ /dev/null
@@ -1,81 +0,0 @@
-# My ~/.inputrc file is in -*- text -*- for easy editing with Emacs.
-#
-# Notice the various bindings which are conditionalized depending
-# on which program is running, or what terminal is active.
-#
-
-# Copyright (C) 1989-2002 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-# In all programs, all terminals, make sure this is bound.
-"\C-x\C-r": re-read-init-file
-
-# Hp terminals (and some others) have ugly default behaviour for C-h.
-"\C-h": backward-delete-char
-"\e\C-h": backward-kill-word
-"\C-xd": dump-functions
-
-# In xterm windows, make the arrow keys do the right thing.
-$if TERM=xterm
-"\e[A": previous-history
-"\e[B": next-history
-"\e[C": forward-char
-"\e[D": backward-char
-
-# alternate arrow key prefix
-"\eOA": previous-history
-"\eOB": next-history
-"\eOC": forward-char
-"\eOD": backward-char
-
-# Under Xterm in Bash, we bind local Function keys to do something useful.
-$if Bash
-"\e[11~": "Function Key 1"
-"\e[12~": "Function Key 2"
-"\e[13~": "Function Key 3"
-"\e[14~": "Function Key 4"
-"\e[15~": "Function Key 5"
-
-# I know the following escape sequence numbers are 1 greater than
-# the function key. Don't ask me why, I didn't design the xterm terminal.
-"\e[17~": "Function Key 6"
-"\e[18~": "Function Key 7"
-"\e[19~": "Function Key 8"
-"\e[20~": "Function Key 9"
-"\e[21~": "Function Key 10"
-$endif
-$endif
-
-# For Bash, all terminals, add some Bash specific hacks.
-$if Bash
-"\C-xv": show-bash-version
-"\C-x\C-e": shell-expand-line
-
-# Here is one for editing my path.
-"\C-xp": "$PATH\C-x\C-e\C-e\"\C-aPATH=\":\C-b"
-
-# Make C-x r read my mail in emacs.
-# "\C-xr": "emacs -f rmail\C-j"
-$endif
-
-# For FTP, different hacks:
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-
-" ": self-insert
diff --git a/readline-4.3/examples/Makefile.in b/readline-4.3/examples/Makefile.in
deleted file mode 100644
index 72c9904..0000000
--- a/readline-4.3/examples/Makefile.in
+++ /dev/null
@@ -1,104 +0,0 @@
-#
-# This is the Makefile for the readline examples subdirectory.
-#
-# Copyright (C) 1994 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-RL_LIBRARY_VERSION = @LIBVERSION@
-
-SHELL = @MAKE_SHELL@
-RM = rm -f
-
-srcdir = @srcdir@
-VPATH = .:@srcdir@
-top_srcdir = @top_srcdir@
-BUILD_DIR = .
-
-# Support an alternate destination root directory for package building
-DESTDIR =
-
-DEFS = @DEFS@
-CC = @CC@
-CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DREADLINE_LIBRARY -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
-CPPFLAGS = @CPPFLAGS@
-
-INCLUDES = -I$(srcdir) -I$(top_srcdir) -I..
-
-CCFLAGS = $(DEFS) $(LOCAL_CFLAGS) $(CPPFLAGS) $(INCLUDES) $(CFLAGS)
-LDFLAGS = -g -L.. @LDFLAGS@
-
-READLINE_LIB = ../libreadline.a
-HISTORY_LIB = ../libhistory.a
-
-TERMCAP_LIB = @TERMCAP_LIB@
-
-.c.o:
- ${RM} $@
- $(CC) $(CCFLAGS) -c $<
-
-EXECUTABLES = fileman rltest rl rlcat rlversion histexamp
-OBJECTS = fileman.o rltest.o rl.o rlversion.o histexamp.o
-
-all: $(EXECUTABLES)
-everything: all rlfe
-
-rl: rl.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ rl.o -lreadline $(TERMCAP_LIB)
-
-rlcat: rlcat.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ rlcat.o -lreadline $(TERMCAP_LIB)
-
-fileman: fileman.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ fileman.o -lreadline $(TERMCAP_LIB)
-
-rltest: rltest.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ rltest.o -lreadline $(TERMCAP_LIB)
-
-rlversion: rlversion.o $(READLINE_LIB)
- $(CC) $(LDFLAGS) -o $@ rlversion.o -lreadline $(TERMCAP_LIB)
-
-histexamp: histexamp.o $(HISTORY_LIB)
- $(CC) $(LDFLAGS) -o $@ histexamp.o -lhistory $(TERMCAP_LIB)
-
-clean mostlyclean:
- $(RM) $(OBJECTS)
- $(RM) $(EXECUTABLES) *.exe
- $(RM) rlfe.o rlfe
-
-distclean maintainer-clean: clean
- $(RM) Makefile
-
-fileman.o: fileman.c
-rltest.o: rltest.c
-rl.o: rl.c
-rlversion.o: rlversion.c
-histexamp.o: histexamp.c
-
-fileman.o: $(top_srcdir)/readline.h
-rltest.o: $(top_srcdir)/readline.h
-rl.o: $(top_srcdir)/readline.h
-rlversion.o: $(top_srcdir)/readline.h
-histexamp.o: $(top_srcdir)/history.h
-
-# Stuff for Per Bothner's `rlfe' program
-
-rlfe: rlfe.o $(READLINE_LIB) $(HISTORY_LIB)
- $(CC) $(LDFLAGS) -o $@ rlfe.o -lreadline -lhistory ${TERMCAP_LIB}
-
-rlfe.o: rlfe.c
-
-rlfe.o: $(top_srcdir)/readline.h
-rlfe.o: $(top_srcdir)/history.h
diff --git a/readline-4.3/examples/excallback.c b/readline-4.3/examples/excallback.c
deleted file mode 100644
index 3d4bb18..0000000
--- a/readline-4.3/examples/excallback.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
-From: Jeff Solomon <jsolomon@stanford.edu>
-Date: Fri, 9 Apr 1999 10:13:27 -0700 (PDT)
-To: chet@po.cwru.edu
-Subject: new readline example
-Message-ID: <14094.12094.527305.199695@mrclean.Stanford.EDU>
-
-Chet,
-
-I've been using readline 4.0. Specifically, I've been using the perl
-version Term::ReadLine::Gnu. It works great.
-
-Anyway, I've been playing around the alternate interface and I wanted
-to contribute a little C program, callback.c, to you that you could
-use as an example of the alternate interface in the /examples
-directory of the readline distribution.
-
-My example shows how, using the alternate interface, you can
-interactively change the prompt (which is very nice imo). Also, I
-point out that you must roll your own terminal setting when using the
-alternate interface because readline depreps (using your parlance) the
-terminal while in the user callback. I try to demostrate what I mean
-with an example. I've included the program below.
-
-To compile, I just put the program in the examples directory and made
-the appropriate changes to the EXECUTABLES and OBJECTS line and added
-an additional target 'callback'.
-
-I compiled on my Sun Solaris2.6 box using Sun's cc.
-
-Let me know what you think.
-
-Jeff
-*/
-
-#if defined (HAVE_CONFIG_H)
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <termios.h> /* xxx - should make this more general */
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-#else
-# include <readline/readline.h>
-#endif
-
-/* This little examples demonstrates the alternate interface to using readline.
- * In the alternate interface, the user maintains control over program flow and
- * only calls readline when STDIN is readable. Using the alternate interface,
- * you can do anything else while still using readline (like talking to a
- * network or another program) without blocking.
- *
- * Specifically, this program highlights two importants features of the
- * alternate interface. The first is the ability to interactively change the
- * prompt, which can't be done using the regular interface since rl_prompt is
- * read-only.
- *
- * The second feature really highlights a subtle point when using the alternate
- * interface. That is, readline will not alter the terminal when inside your
- * callback handler. So let's so, your callback executes a user command that
- * takes a non-trivial amount of time to complete (seconds). While your
- * executing the command, the user continues to type keystrokes and expects them
- * to be re-echoed on the new prompt when it returns. Unfortunately, the default
- * terminal configuration doesn't do this. After the prompt returns, the user
- * must hit one additional keystroke and then will see all of his previous
- * keystrokes. To illustrate this, compile and run this program. Type "sleep" at
- * the prompt and then type "bar" before the prompt returns (you have 3
- * seconds). Notice how "bar" is re-echoed on the prompt after the prompt
- * returns? This is what you expect to happen. Now comment out the 4 lines below
- * the line that says COMMENT LINE BELOW. Recompile and rerun the program and do
- * the same thing. When the prompt returns, you should not see "bar". Now type
- * "f", see how "barf" magically appears? This behavior is un-expected and not
- * desired.
- */
-
-void process_line(char *line);
-int change_prompt(void);
-char *get_prompt(void);
-
-int prompt = 1;
-char prompt_buf[40], line_buf[256];
-tcflag_t old_lflag;
-cc_t old_vtime;
-struct termios term;
-
-int
-main()
-{
- fd_set fds;
-
- /* Adjust the terminal slightly before the handler is installed. Disable
- * canonical mode processing and set the input character time flag to be
- * non-blocking.
- */
- if( tcgetattr(STDIN_FILENO, &term) < 0 ) {
- perror("tcgetattr");
- exit(1);
- }
- old_lflag = term.c_lflag;
- old_vtime = term.c_cc[VTIME];
- term.c_lflag &= ~ICANON;
- term.c_cc[VTIME] = 1;
- /* COMMENT LINE BELOW - see above */
- if( tcsetattr(STDIN_FILENO, TCSANOW, &term) < 0 ) {
- perror("tcsetattr");
- exit(1);
- }
-
- rl_add_defun("change-prompt", change_prompt, CTRL('t'));
- rl_callback_handler_install(get_prompt(), process_line);
-
- while(1) {
- FD_ZERO(&fds);
- FD_SET(fileno(stdin), &fds);
-
- if( select(FD_SETSIZE, &fds, NULL, NULL, NULL) < 0) {
- perror("select");
- exit(1);
- }
-
- if( FD_ISSET(fileno(stdin), &fds) ) {
- rl_callback_read_char();
- }
- }
-}
-
-void
-process_line(char *line)
-{
- if( line == NULL ) {
- fprintf(stderr, "\n", line);
-
- /* reset the old terminal setting before exiting */
- term.c_lflag = old_lflag;
- term.c_cc[VTIME] = old_vtime;
- if( tcsetattr(STDIN_FILENO, TCSANOW, &term) < 0 ) {
- perror("tcsetattr");
- exit(1);
- }
- exit(0);
- }
-
- if( strcmp(line, "sleep") == 0 ) {
- sleep(3);
- } else {
- fprintf(stderr, "|%s|\n", line);
- }
-
- free (line);
-}
-
-int
-change_prompt(void)
-{
- /* toggle the prompt variable */
- prompt = !prompt;
-
- /* save away the current contents of the line */
- strcpy(line_buf, rl_line_buffer);
-
- /* install a new handler which will change the prompt and erase the current line */
- rl_callback_handler_install(get_prompt(), process_line);
-
- /* insert the old text on the new line */
- rl_insert_text(line_buf);
-
- /* redraw the current line - this is an undocumented function. It invokes the
- * redraw-current-line command.
- */
- rl_refresh_line(0, 0);
-}
-
-char *
-get_prompt(void)
-{
- /* The prompts can even be different lengths! */
- sprintf(prompt_buf, "%s",
- prompt ? "Hit ctrl-t to toggle prompt> " : "Pretty cool huh?> ");
- return prompt_buf;
-}
diff --git a/readline-4.3/examples/fileman.c b/readline-4.3/examples/fileman.c
deleted file mode 100644
index 340eee7..0000000
--- a/readline-4.3/examples/fileman.c
+++ /dev/null
@@ -1,485 +0,0 @@
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* fileman.c -- A tiny application which demonstrates how to use the
- GNU Readline library. This application interactively allows users
- to manipulate files and their modes. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_FILE_H
-# include <sys/file.h>
-#endif
-#include <sys/stat.h>
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <fcntl.h>
-#include <stdio.h>
-#include <errno.h>
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#ifdef HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-extern char *xmalloc ();
-
-/* The names of functions that actually do the manipulation. */
-int com_list PARAMS((char *));
-int com_view PARAMS((char *));
-int com_rename PARAMS((char *));
-int com_stat PARAMS((char *));
-int com_pwd PARAMS((char *));
-int com_delete PARAMS((char *));
-int com_help PARAMS((char *));
-int com_cd PARAMS((char *));
-int com_quit PARAMS((char *));
-
-/* A structure which contains information on the commands this program
- can understand. */
-
-typedef struct {
- char *name; /* User printable name of the function. */
- rl_icpfunc_t *func; /* Function to call to do the job. */
- char *doc; /* Documentation for this function. */
-} COMMAND;
-
-COMMAND commands[] = {
- { "cd", com_cd, "Change to directory DIR" },
- { "delete", com_delete, "Delete FILE" },
- { "help", com_help, "Display this text" },
- { "?", com_help, "Synonym for `help'" },
- { "list", com_list, "List files in DIR" },
- { "ls", com_list, "Synonym for `list'" },
- { "pwd", com_pwd, "Print the current working directory" },
- { "quit", com_quit, "Quit using Fileman" },
- { "rename", com_rename, "Rename FILE to NEWNAME" },
- { "stat", com_stat, "Print out statistics on FILE" },
- { "view", com_view, "View the contents of FILE" },
- { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
-};
-
-/* Forward declarations. */
-char *stripwhite ();
-COMMAND *find_command ();
-
-/* The name of this program, as taken from argv[0]. */
-char *progname;
-
-/* When non-zero, this global means the user is done using this program. */
-int done;
-
-char *
-dupstr (s)
- char *s;
-{
- char *r;
-
- r = xmalloc (strlen (s) + 1);
- strcpy (r, s);
- return (r);
-}
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *line, *s;
-
- progname = argv[0];
-
- initialize_readline (); /* Bind our completer. */
-
- /* Loop reading and executing lines until the user quits. */
- for ( ; done == 0; )
- {
- line = readline ("FileMan: ");
-
- if (!line)
- break;
-
- /* Remove leading and trailing whitespace from the line.
- Then, if there is anything left, add it to the history list
- and execute it. */
- s = stripwhite (line);
-
- if (*s)
- {
- add_history (s);
- execute_line (s);
- }
-
- free (line);
- }
- exit (0);
-}
-
-/* Execute a command line. */
-int
-execute_line (line)
- char *line;
-{
- register int i;
- COMMAND *command;
- char *word;
-
- /* Isolate the command word. */
- i = 0;
- while (line[i] && whitespace (line[i]))
- i++;
- word = line + i;
-
- while (line[i] && !whitespace (line[i]))
- i++;
-
- if (line[i])
- line[i++] = '\0';
-
- command = find_command (word);
-
- if (!command)
- {
- fprintf (stderr, "%s: No such command for FileMan.\n", word);
- return (-1);
- }
-
- /* Get argument to command, if any. */
- while (whitespace (line[i]))
- i++;
-
- word = line + i;
-
- /* Call the function. */
- return ((*(command->func)) (word));
-}
-
-/* Look up NAME as the name of a command, and return a pointer to that
- command. Return a NULL pointer if NAME isn't a command name. */
-COMMAND *
-find_command (name)
- char *name;
-{
- register int i;
-
- for (i = 0; commands[i].name; i++)
- if (strcmp (name, commands[i].name) == 0)
- return (&commands[i]);
-
- return ((COMMAND *)NULL);
-}
-
-/* Strip whitespace from the start and end of STRING. Return a pointer
- into STRING. */
-char *
-stripwhite (string)
- char *string;
-{
- register char *s, *t;
-
- for (s = string; whitespace (*s); s++)
- ;
-
- if (*s == 0)
- return (s);
-
- t = s + strlen (s) - 1;
- while (t > s && whitespace (*t))
- t--;
- *++t = '\0';
-
- return s;
-}
-
-/* **************************************************************** */
-/* */
-/* Interface to Readline Completion */
-/* */
-/* **************************************************************** */
-
-char *command_generator PARAMS((const char *, int));
-char **fileman_completion PARAMS((const char *, int, int));
-
-/* Tell the GNU Readline library how to complete. We want to try to complete
- on command names if this is the first word in the line, or on filenames
- if not. */
-initialize_readline ()
-{
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "FileMan";
-
- /* Tell the completer that we want a crack first. */
- rl_attempted_completion_function = fileman_completion;
-}
-
-/* Attempt to complete on the contents of TEXT. START and END bound the
- region of rl_line_buffer that contains the word to complete. TEXT is
- the word to complete. We can use the entire contents of rl_line_buffer
- in case we want to do some simple parsing. Return the array of matches,
- or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
- const char *text;
- int start, end;
-{
- char **matches;
-
- matches = (char **)NULL;
-
- /* If this word is at the start of the line, then it is a command
- to complete. Otherwise it is the name of a file in the current
- directory. */
- if (start == 0)
- matches = rl_completion_matches (text, command_generator);
-
- return (matches);
-}
-
-/* Generator function for command completion. STATE lets us know whether
- to start from scratch; without any state (i.e. STATE == 0), then we
- start at the top of the list. */
-char *
-command_generator (text, state)
- const char *text;
- int state;
-{
- static int list_index, len;
- char *name;
-
- /* If this is a new word to complete, initialize now. This includes
- saving the length of TEXT for efficiency, and initializing the index
- variable to 0. */
- if (!state)
- {
- list_index = 0;
- len = strlen (text);
- }
-
- /* Return the next name which partially matches from the command list. */
- while (name = commands[list_index].name)
- {
- list_index++;
-
- if (strncmp (name, text, len) == 0)
- return (dupstr(name));
- }
-
- /* If no names matched, then return NULL. */
- return ((char *)NULL);
-}
-
-/* **************************************************************** */
-/* */
-/* FileMan Commands */
-/* */
-/* **************************************************************** */
-
-/* String to pass to system (). This is for the LIST, VIEW and RENAME
- commands. */
-static char syscom[1024];
-
-/* List the file(s) named in arg. */
-com_list (arg)
- char *arg;
-{
- if (!arg)
- arg = "";
-
- sprintf (syscom, "ls -FClg %s", arg);
- return (system (syscom));
-}
-
-com_view (arg)
- char *arg;
-{
- if (!valid_argument ("view", arg))
- return 1;
-
-#if defined (__MSDOS__)
- /* more.com doesn't grok slashes in pathnames */
- sprintf (syscom, "less %s", arg);
-#else
- sprintf (syscom, "more %s", arg);
-#endif
- return (system (syscom));
-}
-
-com_rename (arg)
- char *arg;
-{
- too_dangerous ("rename");
- return (1);
-}
-
-com_stat (arg)
- char *arg;
-{
- struct stat finfo;
-
- if (!valid_argument ("stat", arg))
- return (1);
-
- if (stat (arg, &finfo) == -1)
- {
- perror (arg);
- return (1);
- }
-
- printf ("Statistics for `%s':\n", arg);
-
- printf ("%s has %d link%s, and is %d byte%s in length.\n",
- arg,
- finfo.st_nlink,
- (finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
- (finfo.st_size == 1) ? "" : "s");
- printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
- printf (" Last access at: %s", ctime (&finfo.st_atime));
- printf (" Last modified at: %s", ctime (&finfo.st_mtime));
- return (0);
-}
-
-com_delete (arg)
- char *arg;
-{
- too_dangerous ("delete");
- return (1);
-}
-
-/* Print out help for ARG, or for all of the commands if ARG is
- not present. */
-com_help (arg)
- char *arg;
-{
- register int i;
- int printed = 0;
-
- for (i = 0; commands[i].name; i++)
- {
- if (!*arg || (strcmp (arg, commands[i].name) == 0))
- {
- printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
- printed++;
- }
- }
-
- if (!printed)
- {
- printf ("No commands match `%s'. Possibilties are:\n", arg);
-
- for (i = 0; commands[i].name; i++)
- {
- /* Print in six columns. */
- if (printed == 6)
- {
- printed = 0;
- printf ("\n");
- }
-
- printf ("%s\t", commands[i].name);
- printed++;
- }
-
- if (printed)
- printf ("\n");
- }
- return (0);
-}
-
-/* Change to the directory ARG. */
-com_cd (arg)
- char *arg;
-{
- if (chdir (arg) == -1)
- {
- perror (arg);
- return 1;
- }
-
- com_pwd ("");
- return (0);
-}
-
-/* Print out the current working directory. */
-com_pwd (ignore)
- char *ignore;
-{
- char dir[1024], *s;
-
- s = getcwd (dir, sizeof(dir) - 1);
- if (s == 0)
- {
- printf ("Error getting pwd: %s\n", dir);
- return 1;
- }
-
- printf ("Current directory is %s\n", dir);
- return 0;
-}
-
-/* The user wishes to quit using this program. Just set DONE non-zero. */
-com_quit (arg)
- char *arg;
-{
- done = 1;
- return (0);
-}
-
-/* Function which tells you that you can't do this. */
-too_dangerous (caller)
- char *caller;
-{
- fprintf (stderr,
- "%s: Too dangerous for me to distribute. Write it yourself.\n",
- caller);
-}
-
-/* Return non-zero if ARG is a valid argument for CALLER, else print
- an error message and return zero. */
-int
-valid_argument (caller, arg)
- char *caller, *arg;
-{
- if (!arg || !*arg)
- {
- fprintf (stderr, "%s: Argument required.\n", caller);
- return (0);
- }
-
- return (1);
-}
diff --git a/readline-4.3/examples/histexamp.c b/readline-4.3/examples/histexamp.c
deleted file mode 100644
index 45651df..0000000
--- a/readline-4.3/examples/histexamp.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#include <stdio.h>
-
-#ifdef READLINE_LIBRARY
-# include "history.h"
-#else
-# include <readline/history.h>
-#endif
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char line[1024], *t;
- int len, done = 0;
-
- line[0] = 0;
-
- using_history ();
- while (!done)
- {
- printf ("history$ ");
- fflush (stdout);
- t = fgets (line, sizeof (line) - 1, stdin);
- if (t && *t)
- {
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- }
-
- if (!t)
- strcpy (line, "quit");
-
- if (line[0])
- {
- char *expansion;
- int result;
-
- using_history ();
-
- result = history_expand (line, &expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
-
- if (result < 0 || result == 2)
- {
- free (expansion);
- continue;
- }
-
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- }
-
- if (strcmp (line, "quit") == 0)
- done = 1;
- else if (strcmp (line, "save") == 0)
- write_history ("history_file");
- else if (strcmp (line, "read") == 0)
- read_history ("history_file");
- else if (strcmp (line, "list") == 0)
- {
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]->line);
- }
- else if (strncmp (line, "delete", 6) == 0)
- {
- int which;
- if ((sscanf (line + 6, "%d", &which)) == 1)
- {
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- {
- free (entry->line);
- free (entry);
- }
- }
- else
- {
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- }
- }
- }
-}
diff --git a/readline-4.3/examples/manexamp.c b/readline-4.3/examples/manexamp.c
deleted file mode 100644
index 9c6cf2c..0000000
--- a/readline-4.3/examples/manexamp.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* manexamp.c -- The examples which appear in the documentation are here. */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#include <stdio.h>
-#include <readline/readline.h>
-
-/* **************************************************************** */
-/* */
-/* How to Emulate gets () */
-/* */
-/* **************************************************************** */
-
-/* A static variable for holding the line. */
-static char *line_read = (char *)NULL;
-
-/* Read a string, and return a pointer to it. Returns NULL on EOF. */
-char *
-rl_gets ()
-{
- /* If the buffer has already been allocated, return the memory
- to the free pool. */
- if (line_read)
- {
- free (line_read);
- line_read = (char *)NULL;
- }
-
- /* Get a line from the user. */
- line_read = readline ("");
-
- /* If the line has any text in it, save it on the history. */
- if (line_read && *line_read)
- add_history (line_read);
-
- return (line_read);
-}
-
-/* **************************************************************** */
-/* */
-/* Writing a Function to be Called by Readline. */
-/* */
-/* **************************************************************** */
-
-/* Invert the case of the COUNT following characters. */
-invert_case_line (count, key)
- int count, key;
-{
- register int start, end;
-
- start = rl_point;
-
- if (count < 0)
- {
- direction = -1;
- count = -count;
- }
- else
- direction = 1;
-
- /* Find the end of the range to modify. */
- end = start + (count * direction);
-
- /* Force it to be within range. */
- if (end > rl_end)
- end = rl_end;
- else if (end < 0)
- end = -1;
-
- if (start > end)
- {
- int temp = start;
- start = end;
- end = temp;
- }
-
- if (start == end)
- return;
-
- /* Tell readline that we are modifying the line, so save the undo
- information. */
- rl_modifying (start, end);
-
- for (; start != end; start += direction)
- {
- if (_rl_uppercase_p (rl_line_buffer[start]))
- rl_line_buffer[start] = _rl_to_lower (rl_line_buffer[start]);
- else if (_rl_lowercase_p (rl_line_buffer[start]))
- rl_line_buffer[start] = _rl_to_upper (rl_line_buffer[start]);
- }
-
- /* Move point to on top of the last character changed. */
- rl_point = end - direction;
-}
diff --git a/readline-4.3/examples/readlinebuf.h b/readline-4.3/examples/readlinebuf.h
deleted file mode 100644
index 91ef4d6..0000000
--- a/readline-4.3/examples/readlinebuf.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * $Revision$
- * $Date$
- * $Author$
- *
- * Contents: A streambuf which uses the GNU readline library for line I/O
- * (c) 2001 by Dimitris Vyzovitis [vyzo@media.mit.edu]
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program; if not, write to the Free
- * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- *
- ******************************************************************************/
-
-#ifndef _READLINEBUF_H_
-#define _READLINEBUF_H_
-
-#include <iostream>
-#include <cstring>
-#include <cassert>
-#include <cstdlib>
-#include <cstdio>
-
-#include <readline/readline.h>
-#include <readline/history.h>
-
-#if (defined __GNUC__) && (__GNUC__ < 3)
-#include <streambuf.h>
-#else
-#include <streambuf>
-using std::streamsize;
-using std::streambuf;
-#endif
-
-class readlinebuf : public streambuf {
-public:
-#if (defined __GNUC__) && (__GNUC__ < 3)
- typedef char char_type;
- typedef int int_type;
- typedef streampos pos_type;
- typedef streamoff off_type;
-#endif
- static const int_type eof = EOF; // this is -1
- static const int_type not_eof = 0;
-
-private:
- const char* prompt_;
- bool history_;
- char* line_;
- int low_;
- int high_;
-
-protected:
-
- virtual int_type showmanyc() const { return high_ - low_; }
-
- virtual streamsize xsgetn( char_type* buf, streamsize n ) {
- int rd = n > (high_ - low_)? (high_ - low_) : n;
- memcpy( buf, line_, rd );
- low_ += rd;
-
- if ( rd < n ) {
- low_ = high_ = 0;
- free( line_ ); // free( NULL ) is a noop
- line_ = readline( prompt_ );
- if ( line_ ) {
- high_ = strlen( line_ );
- if ( history_ && high_ ) add_history( line_ );
- rd += xsgetn( buf + rd, n - rd );
- }
- }
-
- return rd;
- }
-
- virtual int_type underflow() {
- if ( high_ == low_ ) {
- low_ = high_ = 0;
- free( line_ ); // free( NULL ) is a noop
- line_ = readline( prompt_ );
- if ( line_ ) {
- high_ = strlen( line_ );
- if ( history_ && high_ ) add_history( line_ );
- }
- }
-
- if ( low_ < high_ ) return line_[low_];
- else return eof;
- }
-
- virtual int_type uflow() {
- int_type c = underflow();
- if ( c != eof ) ++low_;
- return c;
- }
-
- virtual int_type pbackfail( int_type c = eof ) {
- if ( low_ > 0 ) --low_;
- else if ( c != eof ) {
- if ( high_ > 0 ) {
- char* nl = (char*)realloc( line_, high_ + 1 );
- if ( nl ) {
- line_ = (char*)memcpy( nl + 1, line_, high_ );
- high_ += 1;
- line_[0] = char( c );
- } else return eof;
- } else {
- assert( !line_ );
- line_ = (char*)malloc( sizeof( char ) );
- *line_ = char( c );
- high_ = 1;
- }
- } else return eof;
-
- return not_eof;
- }
-
-public:
- readlinebuf( const char* prompt = NULL, bool history = true )
- : prompt_( prompt ), history_( history ),
- line_( NULL ), low_( 0 ), high_( 0 ) {
- setbuf( 0, 0 );
- }
-
-
-};
-
-#endif
diff --git a/readline-4.3/examples/rl.c b/readline-4.3/examples/rl.c
deleted file mode 100644
index d260489..0000000
--- a/readline-4.3/examples/rl.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * rl - command-line interface to read a line from the standard input
- * (or another fd) using readline.
- *
- * usage: rl [-p prompt] [-u unit] [-d default] [-n nchars]
- */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-#include "posixstat.h"
-
-#if defined (READLINE_LIBRARY)
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-extern int optind;
-extern char *optarg;
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strrchr();
-#endif
-
-static char *progname;
-static char *deftext;
-
-static int
-set_deftext ()
-{
- if (deftext)
- {
- rl_insert_text (deftext);
- deftext = (char *)NULL;
- rl_startup_hook = (rl_hook_func_t *)NULL;
- }
- return 0;
-}
-
-static void
-usage()
-{
- fprintf (stderr, "%s: usage: %s [-p prompt] [-u unit] [-d default] [-n nchars]\n",
- progname, progname);
-}
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *temp, *prompt;
- struct stat sb;
- int opt, fd, nch;
- FILE *ifp;
-
- progname = strrchr(argv[0], '/');
- if (progname == 0)
- progname = argv[0];
- else
- progname++;
-
- /* defaults */
- prompt = "readline$ ";
- fd = nch = 0;
- deftext = (char *)0;
-
- while ((opt = getopt(argc, argv, "p:u:d:n:")) != EOF)
- {
- switch (opt)
- {
- case 'p':
- prompt = optarg;
- break;
- case 'u':
- fd = atoi(optarg);
- if (fd < 0)
- {
- fprintf (stderr, "%s: bad file descriptor `%s'\n", progname, optarg);
- exit (2);
- }
- break;
- case 'd':
- deftext = optarg;
- break;
- case 'n':
- nch = atoi(optarg);
- if (nch < 0)
- {
- fprintf (stderr, "%s: bad value for -n: `%s'\n", progname, optarg);
- exit (2);
- }
- break;
- default:
- usage ();
- exit (2);
- }
- }
-
- if (fd != 0)
- {
- if (fstat (fd, &sb) < 0)
- {
- fprintf (stderr, "%s: %d: bad file descriptor\n", progname, fd);
- exit (1);
- }
- ifp = fdopen (fd, "r");
- rl_instream = ifp;
- }
-
- if (deftext && *deftext)
- rl_startup_hook = set_deftext;
-
- if (nch > 0)
- rl_num_chars_to_read = nch;
-
- temp = readline (prompt);
-
- /* Test for EOF. */
- if (temp == 0)
- exit (1);
-
- printf ("%s\n", temp);
- exit (0);
-}
diff --git a/readline-4.3/examples/rlcat.c b/readline-4.3/examples/rlcat.c
deleted file mode 100644
index 176b9f4..0000000
--- a/readline-4.3/examples/rlcat.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * rlcat - cat(1) using readline
- *
- * usage: rlcat
- */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <sys/types.h>
-#include "posixstat.h"
-
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <errno.h>
-
-#ifndef errno
-extern int errno;
-#endif
-
-#if defined (READLINE_LIBRARY)
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-extern int optind;
-extern char *optarg;
-
-static int stdcat();
-
-static char *progname;
-static int vflag;
-
-static void
-usage()
-{
- fprintf (stderr, "%s: usage: %s [-vEVN] [filename]\n", progname, progname);
-}
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *temp;
- int opt, Vflag, Nflag;
-
- progname = strrchr(argv[0], '/');
- if (progname == 0)
- progname = argv[0];
- else
- progname++;
-
- vflag = Vflag = Nflag = 0;
- while ((opt = getopt(argc, argv, "vEVN")) != EOF)
- {
- switch (opt)
- {
- case 'v':
- vflag = 1;
- break;
- case 'V':
- Vflag = 1;
- break;
- case 'E':
- Vflag = 0;
- break;
- case 'N':
- Nflag = 1;
- break;
- default:
- usage ();
- exit (2);
- }
- }
-
- argc -= optind;
- argv += optind;
-
- if (isatty(0) == 0 || argc || Nflag)
- return stdcat(argc, argv);
-
- rl_variable_bind ("editing-mode", Vflag ? "vi" : "emacs");
- while (temp = readline (""))
- {
- if (*temp)
- add_history (temp);
- printf ("%s\n", temp);
- }
-
- return (ferror (stdout));
-}
-
-static int
-fcopy(fp)
- FILE *fp;
-{
- int c;
- char *x;
-
- while ((c = getc(fp)) != EOF)
- {
- if (vflag && isascii ((unsigned char)c) && isprint((unsigned char)c) == 0)
- {
- x = rl_untranslate_keyseq (c);
- if (fputs (x, stdout) != 0)
- return 1;
- }
- else if (putchar (c) == EOF)
- return 1;
- }
- return (ferror (stdout));
-}
-
-int
-stdcat (argc, argv)
- int argc;
- char **argv;
-{
- int i, fd, r;
- char *s;
- FILE *fp;
-
- if (argc == 0)
- return (fcopy(stdin));
-
- for (i = 0, r = 1; i < argc; i++)
- {
- if (*argv[i] == '-' && argv[i][1] == 0)
- fp = stdin;
- else
- {
- fp = fopen (argv[i], "r");
- if (fp == 0)
- {
- fprintf (stderr, "%s: %s: cannot open: %s\n", progname, argv[i], strerror(errno));
- continue;
- }
- }
- r = fcopy (fp);
- if (fp != stdin)
- fclose(fp);
- }
- return r;
-}
diff --git a/readline-4.3/examples/rlfe.c b/readline-4.3/examples/rlfe.c
deleted file mode 100644
index d634d7c..0000000
--- a/readline-4.3/examples/rlfe.c
+++ /dev/null
@@ -1,1042 +0,0 @@
-/* A front-end using readline to "cook" input lines for Kawa.
- *
- * Copyright (C) 1999 Per Bothner
- *
- * This front-end program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as published
- * by the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * Some code from Johnson & Troan: "Linux Application Development"
- * (Addison-Wesley, 1998) was used directly or for inspiration.
- */
-
-/* PROBLEMS/TODO:
- *
- * Only tested under Linux; needs to be ported.
- *
- * When running mc -c under the Linux console, mc does not recognize
- * mouse clicks, which mc does when not running under fep.
- *
- * Pasting selected text containing tabs is like hitting the tab character,
- * which invokes readline completion. We don't want this. I don't know
- * if this is fixable without integrating fep into a terminal emulator.
- *
- * Echo suppression is a kludge, but can only be avoided with better kernel
- * support: We need a tty mode to disable "real" echoing, while still
- * letting the inferior think its tty driver to doing echoing.
- * Stevens's book claims SCR$ and BSD4.3+ have TIOCREMOTE.
- *
- * The latest readline may have some hooks we can use to avoid having
- * to back up the prompt.
- *
- * Desirable readline feature: When in cooked no-echo mode (e.g. password),
- * echo characters are they are types with '*', but remove them when done.
- *
- * A synchronous output while we're editing an input line should be
- * inserted in the output view *before* the input line, so that the
- * lines being edited (with the prompt) float at the end of the input.
- *
- * A "page mode" option to emulate more/less behavior: At each page of
- * output, pause for a user command. This required parsing the output
- * to keep track of line lengths. It also requires remembering the
- * output, if we want an option to scroll back, which suggests that
- * this should be integrated with a terminal emulator like xterm.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <signal.h>
-#include <netdb.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <grp.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <sys/ioctl.h>
-#include <termios.h>
-#include <limits.h>
-#include <dirent.h>
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-#ifndef COMMAND
-#define COMMAND "/bin/sh"
-#endif
-#ifndef COMMAND_ARGS
-#define COMMAND_ARGS COMMAND
-#endif
-
-#ifndef HAVE_MEMMOVE
-#ifndef memmove
-# if __GNUC__ > 1
-# define memmove(d, s, n) __builtin_memcpy(d, s, n)
-# else
-# define memmove(d, s, n) memcpy(d, s, n)
-# endif
-#else
-# define memmove(d, s, n) memcpy(d, s, n)
-#endif
-#endif
-
-#define APPLICATION_NAME "Rlfe"
-
-#ifndef errno
-extern int errno;
-#endif
-
-extern int optind;
-extern char *optarg;
-
-static char *progname;
-static char *progversion;
-
-static int in_from_inferior_fd;
-static int out_to_inferior_fd;
-
-/* Unfortunately, we cannot safely display echo from the inferior process.
- The reason is that the echo bit in the pty is "owned" by the inferior,
- and if we try to turn it off, we could confuse the inferior.
- Thus, when echoing, we get echo twice: First readline echoes while
- we're actually editing. Then we send the line to the inferior, and the
- terminal driver send back an extra echo.
- The work-around is to remember the input lines, and when we see that
- line come back, we supress the output.
- A better solution (supposedly available on SVR4) would be a smarter
- terminal driver, with more flags ... */
-#define ECHO_SUPPRESS_MAX 1024
-char echo_suppress_buffer[ECHO_SUPPRESS_MAX];
-int echo_suppress_start = 0;
-int echo_suppress_limit = 0;
-
-/* #define DEBUG */
-
-static FILE *logfile = NULL;
-
-#ifdef DEBUG
-FILE *debugfile = NULL;
-#define DPRINT0(FMT) (fprintf(debugfile, FMT), fflush(debugfile))
-#define DPRINT1(FMT, V1) (fprintf(debugfile, FMT, V1), fflush(debugfile))
-#define DPRINT2(FMT, V1, V2) (fprintf(debugfile, FMT, V1, V2), fflush(debugfile))
-#else
-#define DPRINT0(FMT) /* Do nothing */
-#define DPRINT1(FMT, V1) /* Do nothing */
-#define DPRINT2(FMT, V1, V2) /* Do nothing */
-#endif
-
-struct termios orig_term;
-
-static int rlfe_directory_completion_hook __P((char **));
-static int rlfe_directory_rewrite_hook __P((char **));
-static char *rlfe_filename_completion_function __P((const char *, int));
-
-/* Pid of child process. */
-static pid_t child = -1;
-
-static void
-sig_child (int signo)
-{
- int status;
- wait (&status);
- DPRINT0 ("(Child process died.)\n");
- tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
- exit (0);
-}
-
-volatile int propagate_sigwinch = 0;
-
-/* sigwinch_handler
- * propagate window size changes from input file descriptor to
- * master side of pty.
- */
-void sigwinch_handler(int signal) {
- propagate_sigwinch = 1;
-}
-
-/* get_master_pty() takes a double-indirect character pointer in which
- * to put a slave name, and returns an integer file descriptor.
- * If it returns < 0, an error has occurred.
- * Otherwise, it has returned the master pty file descriptor, and fills
- * in *name with the name of the corresponding slave pty.
- * Once the slave pty has been opened, you are responsible to free *name.
- */
-
-int get_master_pty(char **name) {
- int i, j;
- /* default to returning error */
- int master = -1;
-
- /* create a dummy name to fill in */
- *name = strdup("/dev/ptyXX");
-
- /* search for an unused pty */
- for (i=0; i<16 && master <= 0; i++) {
- for (j=0; j<16 && master <= 0; j++) {
- (*name)[5] = 'p';
- (*name)[8] = "pqrstuvwxyzPQRST"[i];
- (*name)[9] = "0123456789abcdef"[j];
- /* open the master pty */
- if ((master = open(*name, O_RDWR)) < 0) {
- if (errno == ENOENT) {
- /* we are out of pty devices */
- free (*name);
- return (master);
- }
- }
- else {
- /* By substituting a letter, we change the master pty
- * name into the slave pty name.
- */
- (*name)[5] = 't';
- if (access(*name, R_OK|W_OK) != 0)
- {
- close(master);
- master = -1;
- }
- }
- }
- }
- if ((master < 0) && (i == 16) && (j == 16)) {
- /* must have tried every pty unsuccessfully */
- free (*name);
- return (master);
- }
-
- (*name)[5] = 't';
-
- return (master);
-}
-
-/* get_slave_pty() returns an integer file descriptor.
- * If it returns < 0, an error has occurred.
- * Otherwise, it has returned the slave file descriptor.
- */
-
-int get_slave_pty(char *name) {
- struct group *gptr;
- gid_t gid;
- int slave = -1;
-
- /* chown/chmod the corresponding pty, if possible.
- * This will only work if the process has root permissions.
- * Alternatively, write and exec a small setuid program that
- * does just this.
- */
- if ((gptr = getgrnam("tty")) != 0) {
- gid = gptr->gr_gid;
- } else {
- /* if the tty group does not exist, don't change the
- * group on the slave pty, only the owner
- */
- gid = -1;
- }
-
- /* Note that we do not check for errors here. If this is code
- * where these actions are critical, check for errors!
- */
- chown(name, getuid(), gid);
- /* This code only makes the slave read/writeable for the user.
- * If this is for an interactive shell that will want to
- * receive "write" and "wall" messages, OR S_IWGRP into the
- * second argument below.
- */
- chmod(name, S_IRUSR|S_IWUSR);
-
- /* open the corresponding slave pty */
- slave = open(name, O_RDWR);
- return (slave);
-}
-
-/* Certain special characters, such as ctrl/C, we want to pass directly
- to the inferior, rather than letting readline handle them. */
-
-static char special_chars[20];
-static int special_chars_count;
-
-static void
-add_special_char(int ch)
-{
- if (ch != 0)
- special_chars[special_chars_count++] = ch;
-}
-
-static int eof_char;
-
-static int
-is_special_char(int ch)
-{
- int i;
-#if 0
- if (ch == eof_char && rl_point == rl_end)
- return 1;
-#endif
- for (i = special_chars_count; --i >= 0; )
- if (special_chars[i] == ch)
- return 1;
- return 0;
-}
-
-static char buf[1024];
-/* buf[0 .. buf_count-1] is the what has been emitted on the current line.
- It is used as the readline prompt. */
-static int buf_count = 0;
-
-int num_keys = 0;
-
-static void
-null_prep_terminal (int meta)
-{
-}
-
-static void
-null_deprep_terminal ()
-{
-}
-
-char pending_special_char;
-
-static void
-line_handler (char *line)
-{
- if (line == NULL)
- {
- char buf[1];
- DPRINT0("saw eof!\n");
- buf[0] = '\004'; /* ctrl/d */
- write (out_to_inferior_fd, buf, 1);
- }
- else
- {
- static char enter[] = "\r";
- /* Send line to inferior: */
- int length = strlen (line);
- if (length > ECHO_SUPPRESS_MAX-2)
- {
- echo_suppress_start = 0;
- echo_suppress_limit = 0;
- }
- else
- {
- if (echo_suppress_limit + length > ECHO_SUPPRESS_MAX - 2)
- {
- if (echo_suppress_limit - echo_suppress_start + length
- <= ECHO_SUPPRESS_MAX - 2)
- {
- memmove (echo_suppress_buffer,
- echo_suppress_buffer + echo_suppress_start,
- echo_suppress_limit - echo_suppress_start);
- echo_suppress_limit -= echo_suppress_start;
- echo_suppress_start = 0;
- }
- else
- {
- echo_suppress_limit = 0;
- }
- echo_suppress_start = 0;
- }
- memcpy (echo_suppress_buffer + echo_suppress_limit,
- line, length);
- echo_suppress_limit += length;
- echo_suppress_buffer[echo_suppress_limit++] = '\r';
- echo_suppress_buffer[echo_suppress_limit++] = '\n';
- }
- write (out_to_inferior_fd, line, length);
- if (pending_special_char == 0)
- {
- write (out_to_inferior_fd, enter, sizeof(enter)-1);
- if (*line)
- add_history (line);
- }
- free (line);
- }
- rl_callback_handler_remove ();
- buf_count = 0;
- num_keys = 0;
- if (pending_special_char != 0)
- {
- write (out_to_inferior_fd, &pending_special_char, 1);
- pending_special_char = 0;
- }
-}
-
-/* Value of rl_getc_function.
- Use this because readline should read from stdin, not rl_instream,
- points to the pty (so readline has monitor its terminal modes). */
-
-int
-my_rl_getc (FILE *dummy)
-{
- int ch = rl_getc (stdin);
- if (is_special_char (ch))
- {
- pending_special_char = ch;
- return '\r';
- }
- return ch;
-}
-
-static void
-usage()
-{
- fprintf (stderr, "%s: usage: %s [-l filename] [-a] [-n appname] [-hv] [command [arguments...]]\n",
- progname, progname);
-}
-
-int
-main(int argc, char** argv)
-{
- char *path;
- int i, append;
- int master;
- char *name, *logfname, *appname;
- int in_from_tty_fd;
- struct sigaction act;
- struct winsize ws;
- struct termios t;
- int maxfd;
- fd_set in_set;
- static char empty_string[1] = "";
- char *prompt = empty_string;
- int ioctl_err = 0;
-
- if ((progname = strrchr (argv[0], '/')) == 0)
- progname = argv[0];
- else
- progname++;
- progversion = RL_LIBRARY_VERSION;
-
- append = 0;
- appname = APPLICATION_NAME;
- logfname = (char *)NULL;
-
- while ((i = getopt (argc, argv, "ahl:n:v")) != EOF)
- {
- switch (i)
- {
- case 'l':
- logfname = optarg;
- break;
- case 'n':
- appname = optarg;
- break;
- case 'a':
- append = 1;
- break;
- case 'h':
- usage ();
- exit (0);
- case 'v':
- fprintf (stderr, "%s version %s\n", progname, progversion);
- exit (0);
- default:
- usage ();
- exit (2);
- }
- }
-
- argc -= optind;
- argv += optind;
-
- if (logfname)
- {
- logfile = fopen (logfname, append ? "a" : "w");
- if (logfile == 0)
- fprintf (stderr, "%s: warning: could not open log file %s: %s\n",
- progname, logfname, strerror (errno));
- }
-
- rl_readline_name = appname;
-
-#ifdef DEBUG
- debugfile = fopen("LOG", "w");
-#endif
-
- if ((master = get_master_pty(&name)) < 0)
- {
- perror("ptypair: could not open master pty");
- exit(1);
- }
-
- DPRINT1("pty name: '%s'\n", name);
-
- /* set up SIGWINCH handler */
- act.sa_handler = sigwinch_handler;
- sigemptyset(&(act.sa_mask));
- act.sa_flags = 0;
- if (sigaction(SIGWINCH, &act, NULL) < 0)
- {
- perror("ptypair: could not handle SIGWINCH ");
- exit(1);
- }
-
- if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) < 0)
- {
- perror("ptypair: could not get window size");
- exit(1);
- }
-
- if ((child = fork()) < 0)
- {
- perror("cannot fork");
- exit(1);
- }
-
- if (child == 0)
- {
- int slave; /* file descriptor for slave pty */
-
- /* We are in the child process */
- close(master);
-
-#ifdef TIOCSCTTY
- if ((slave = get_slave_pty(name)) < 0)
- {
- perror("ptypair: could not open slave pty");
- exit(1);
- }
- free(name);
-#endif
-
- /* We need to make this process a session group leader, because
- * it is on a new PTY, and things like job control simply will
- * not work correctly unless there is a session group leader
- * and process group leader (which a session group leader
- * automatically is). This also disassociates us from our old
- * controlling tty.
- */
- if (setsid() < 0)
- {
- perror("could not set session leader");
- }
-
- /* Tie us to our new controlling tty. */
-#ifdef TIOCSCTTY
- if (ioctl(slave, TIOCSCTTY, NULL))
- {
- perror("could not set new controlling tty");
- }
-#else
- if ((slave = get_slave_pty(name)) < 0)
- {
- perror("ptypair: could not open slave pty");
- exit(1);
- }
- free(name);
-#endif
-
- /* make slave pty be standard in, out, and error */
- dup2(slave, STDIN_FILENO);
- dup2(slave, STDOUT_FILENO);
- dup2(slave, STDERR_FILENO);
-
- /* at this point the slave pty should be standard input */
- if (slave > 2)
- {
- close(slave);
- }
-
- /* Try to restore window size; failure isn't critical */
- if (ioctl(STDOUT_FILENO, TIOCSWINSZ, &ws) < 0)
- {
- perror("could not restore window size");
- }
-
- /* now start the shell */
- {
- static char* command_args[] = { COMMAND_ARGS, NULL };
- if (argc < 1)
- execvp(COMMAND, command_args);
- else
- execvp(argv[0], &argv[0]);
- }
-
- /* should never be reached */
- exit(1);
- }
-
- /* parent */
- signal (SIGCHLD, sig_child);
- free(name);
-
- /* Note that we only set termios settings for standard input;
- * the master side of a pty is NOT a tty.
- */
- tcgetattr(STDIN_FILENO, &orig_term);
-
- t = orig_term;
- eof_char = t.c_cc[VEOF];
- /* add_special_char(t.c_cc[VEOF]);*/
- add_special_char(t.c_cc[VINTR]);
- add_special_char(t.c_cc[VQUIT]);
- add_special_char(t.c_cc[VSUSP]);
-#if defined (VDISCARD)
- add_special_char(t.c_cc[VDISCARD]);
-#endif
-
-#if 0
- t.c_lflag |= (ICANON | ISIG | ECHO | ECHOCTL | ECHOE | \
- ECHOK | ECHOKE | ECHONL | ECHOPRT );
-#else
- t.c_lflag &= ~(ICANON | ISIG | ECHO | ECHOCTL | ECHOE | \
- ECHOK | ECHOKE | ECHONL | ECHOPRT );
-#endif
- t.c_iflag |= IGNBRK;
- t.c_cc[VMIN] = 1;
- t.c_cc[VTIME] = 0;
- tcsetattr(STDIN_FILENO, TCSANOW, &t);
- in_from_inferior_fd = master;
- out_to_inferior_fd = master;
- rl_instream = fdopen (master, "r");
- rl_getc_function = my_rl_getc;
-
- rl_prep_term_function = null_prep_terminal;
- rl_deprep_term_function = null_deprep_terminal;
- rl_callback_handler_install (prompt, line_handler);
-
-#if 1
- rl_directory_completion_hook = rlfe_directory_completion_hook;
- rl_completion_entry_function = rlfe_filename_completion_function;
-#else
- rl_directory_rewrite_hook = rlfe_directory_rewrite_hook;
-#endif
-
- in_from_tty_fd = STDIN_FILENO;
- FD_ZERO (&in_set);
- maxfd = in_from_inferior_fd > in_from_tty_fd ? in_from_inferior_fd
- : in_from_tty_fd;
- for (;;)
- {
- int num;
- FD_SET (in_from_inferior_fd, &in_set);
- FD_SET (in_from_tty_fd, &in_set);
-
- num = select(maxfd+1, &in_set, NULL, NULL, NULL);
-
- if (propagate_sigwinch)
- {
- struct winsize ws;
- if (ioctl (STDIN_FILENO, TIOCGWINSZ, &ws) >= 0)
- {
- ioctl (master, TIOCSWINSZ, &ws);
- }
- propagate_sigwinch = 0;
- continue;
- }
-
- if (num <= 0)
- {
- perror ("select");
- exit (-1);
- }
- if (FD_ISSET (in_from_tty_fd, &in_set))
- {
- extern int readline_echoing_p;
- struct termios term_master;
- int do_canon = 1;
- int ioctl_ret;
-
- DPRINT1("[tty avail num_keys:%d]\n", num_keys);
-
- /* If we can't get tty modes for the master side of the pty, we
- can't handle non-canonical-mode programs. Always assume the
- master is in canonical echo mode if we can't tell. */
- ioctl_ret = tcgetattr(master, &term_master);
-
- if (ioctl_ret >= 0)
- {
- DPRINT2 ("echo:%d, canon:%d\n",
- (term_master.c_lflag & ECHO) != 0,
- (term_master.c_lflag & ICANON) != 0);
- do_canon = (term_master.c_lflag & ICANON) != 0;
- readline_echoing_p = (term_master.c_lflag & ECHO) != 0;
- }
- else
- {
- if (ioctl_err == 0)
- DPRINT1("tcgetattr on master fd failed: errno = %d\n", errno);
- ioctl_err = 1;
- }
-
- if (do_canon == 0 && num_keys == 0)
- {
- char ch[10];
- int count = read (STDIN_FILENO, ch, sizeof(ch));
- write (out_to_inferior_fd, ch, count);
- }
- else
- {
- if (num_keys == 0)
- {
- int i;
- /* Re-install callback handler for new prompt. */
- if (prompt != empty_string)
- free (prompt);
- prompt = malloc (buf_count + 1);
- if (prompt == NULL)
- prompt = empty_string;
- else
- {
- memcpy (prompt, buf, buf_count);
- prompt[buf_count] = '\0';
- DPRINT1("New prompt '%s'\n", prompt);
-#if 0 /* ifdef HAVE_RL_ALREADY_PROMPTED -- doesn't work */
- rl_already_prompted = buf_count > 0;
-#else
- if (buf_count > 0)
- write (1, "\r", 1);
-#endif
- }
- rl_callback_handler_install (prompt, line_handler);
- }
- num_keys++;
- rl_callback_read_char ();
- }
- }
- else /* input from inferior. */
- {
- int i;
- int count;
- int old_count;
- if (buf_count > (sizeof(buf) >> 2))
- buf_count = 0;
- count = read (in_from_inferior_fd, buf+buf_count,
- sizeof(buf) - buf_count);
- if (count <= 0)
- {
- DPRINT0 ("(Connection closed by foreign host.)\n");
- tcsetattr(STDIN_FILENO, TCSANOW, &orig_term);
- exit (0);
- }
- old_count = buf_count;
-
- /* Do some minimal carriage return translation and backspace
- processing before logging the input line. */
- if (logfile)
- {
-#ifndef __GNUC__
- char *b;
-#else
- char b[count + 1];
-#endif
- int i, j;
-
-#ifndef __GNUC__
- b = malloc (count + 1);
- if (b) {
-#endif
- for (i = 0; i < count; i++)
- b[i] = buf[buf_count + i];
- b[i] = '\0';
- for (i = j = 0; i <= count; i++)
- {
- if (b[i] == '\r')
- {
- if (b[i+1] != '\n')
- b[j++] = '\n';
- }
- else if (b[i] == '\b')
- {
- if (i)
- j--;
- }
- else
- b[j++] = b[i];
- }
- fprintf (logfile, "%s", b);
-
-#ifndef __GNUC__
- free (b);
- }
-#endif
- }
-
- /* Look for any pending echo that we need to suppress. */
- while (echo_suppress_start < echo_suppress_limit
- && count > 0
- && buf[buf_count] == echo_suppress_buffer[echo_suppress_start])
- {
- count--;
- buf_count++;
- echo_suppress_start++;
- }
-
- /* Write to the terminal anything that was not suppressed. */
- if (count > 0)
- write (1, buf + buf_count, count);
-
- /* Finally, look for a prompt candidate.
- * When we get around to going input (from the keyboard),
- * we will consider the prompt to be anything since the last
- * line terminator. So we need to save that text in the
- * initial part of buf. However, anything before the
- * most recent end-of-line is not interesting. */
- buf_count += count;
-#if 1
- for (i = buf_count; --i >= old_count; )
-#else
- for (i = buf_count - 1; i-- >= buf_count - count; )
-#endif
- {
- if (buf[i] == '\n' || buf[i] == '\r')
- {
- i++;
- memmove (buf, buf+i, buf_count - i);
- buf_count -= i;
- break;
- }
- }
- DPRINT2("-> i: %d, buf_count: %d\n", i, buf_count);
- }
- }
-}
-
-/*
- *
- * FILENAME COMPLETION FOR RLFE
- *
- */
-
-#ifndef PATH_MAX
-# define PATH_MAX 1024
-#endif
-
-#define DIRSEP '/'
-#define ISDIRSEP(x) ((x) == '/')
-#define PATHSEP(x) (ISDIRSEP(x) || (x) == 0)
-
-#define DOT_OR_DOTDOT(x) \
- ((x)[0] == '.' && (PATHSEP((x)[1]) || \
- ((x)[1] == '.' && PATHSEP((x)[2]))))
-
-#define FREE(x) if (x) free(x)
-
-#define STRDUP(s, x) do { \
- s = strdup (x);\
- if (s == 0) \
- return ((char *)NULL); \
- } while (0)
-
-static int
-get_inferior_cwd (path, psize)
- char *path;
- size_t psize;
-{
- int n;
- static char procfsbuf[PATH_MAX] = { '\0' };
-
- if (procfsbuf[0] == '\0')
- sprintf (procfsbuf, "/proc/%d/cwd", (int)child);
- n = readlink (procfsbuf, path, psize);
- if (n < 0)
- return n;
- if (n > psize)
- return -1;
- path[n] = '\0';
- return n;
-}
-
-static int
-rlfe_directory_rewrite_hook (dirnamep)
- char **dirnamep;
-{
- char *ldirname, cwd[PATH_MAX], *retdir, *ld;
- int n, ldlen;
-
- ldirname = *dirnamep;
-
- if (*ldirname == '/')
- return 0;
-
- n = get_inferior_cwd (cwd, sizeof(cwd) - 1);
- if (n < 0)
- return 0;
- if (n == 0) /* current directory */
- {
- cwd[0] = '.';
- cwd[1] = '\0';
- n = 1;
- }
-
- /* Minimally canonicalize ldirname by removing leading `./' */
- for (ld = ldirname; *ld; )
- {
- if (ISDIRSEP (ld[0]))
- ld++;
- else if (ld[0] == '.' && PATHSEP(ld[1]))
- ld++;
- else
- break;
- }
- ldlen = (ld && *ld) ? strlen (ld) : 0;
-
- retdir = (char *)malloc (n + ldlen + 3);
- if (retdir == 0)
- return 0;
- if (ldlen)
- sprintf (retdir, "%s/%s", cwd, ld);
- else
- strcpy (retdir, cwd);
- free (ldirname);
-
- *dirnamep = retdir;
-
- DPRINT1("rl_directory_rewrite_hook returns %s\n", retdir);
- return 1;
-}
-
-/* Translate *DIRNAMEP to be relative to the inferior's CWD. Leave a trailing
- slash on the result. */
-static int
-rlfe_directory_completion_hook (dirnamep)
- char **dirnamep;
-{
- char *ldirname, *retdir;
- int n, ldlen;
-
- ldirname = *dirnamep;
-
- if (*ldirname == '/')
- return 0;
-
- n = rlfe_directory_rewrite_hook (dirnamep);
- if (n == 0)
- return 0;
-
- ldirname = *dirnamep;
- ldlen = (ldirname && *ldirname) ? strlen (ldirname) : 0;
-
- if (ldlen == 0 || ldirname[ldlen - 1] != '/')
- {
- retdir = (char *)malloc (ldlen + 3);
- if (retdir == 0)
- return 0;
- if (ldlen)
- strcpy (retdir, ldirname);
- else
- retdir[ldlen++] = '.';
- retdir[ldlen] = '/';
- retdir[ldlen+1] = '\0';
- free (ldirname);
-
- *dirnamep = retdir;
- }
-
- DPRINT1("rl_directory_completion_hook returns %s\n", retdir);
- return 1;
-}
-
-static char *
-rlfe_filename_completion_function (text, state)
- const char *text;
- int state;
-{
- static DIR *directory;
- static char *filename = (char *)NULL;
- static char *dirname = (char *)NULL, *ud = (char *)NULL;
- static int flen, udlen;
- char *temp;
- struct dirent *dentry;
-
- if (state == 0)
- {
- if (directory)
- {
- closedir (directory);
- directory = 0;
- }
- FREE (dirname);
- FREE (filename);
- FREE (ud);
-
- if (text && *text)
- STRDUP (filename, text);
- else
- {
- filename = malloc(1);
- if (filename == 0)
- return ((char *)NULL);
- filename[0] = '\0';
- }
- dirname = (text && *text) ? strdup (text) : strdup (".");
- if (dirname == 0)
- return ((char *)NULL);
-
- temp = strrchr (dirname, '/');
- if (temp)
- {
- strcpy (filename, ++temp);
- *temp = '\0';
- }
- else
- {
- dirname[0] = '.';
- dirname[1] = '\0';
- }
-
- STRDUP (ud, dirname);
- udlen = strlen (ud);
-
- rlfe_directory_completion_hook (&dirname);
-
- directory = opendir (dirname);
- flen = strlen (filename);
-
- rl_filename_completion_desired = 1;
- }
-
- dentry = 0;
- while (directory && (dentry = readdir (directory)))
- {
- if (flen == 0)
- {
- if (DOT_OR_DOTDOT(dentry->d_name) == 0)
- break;
- }
- else
- {
- if ((dentry->d_name[0] == filename[0]) &&
- (strlen (dentry->d_name) >= flen) &&
- (strncmp (filename, dentry->d_name, flen) == 0))
- break;
- }
- }
-
- if (dentry == 0)
- {
- if (directory)
- {
- closedir (directory);
- directory = 0;
- }
- FREE (dirname);
- FREE (filename);
- FREE (ud);
- dirname = filename = ud = 0;
- return ((char *)NULL);
- }
-
- if (ud == 0 || (ud[0] == '.' && ud[1] == '\0'))
- temp = strdup (dentry->d_name);
- else
- {
- temp = malloc (1 + udlen + strlen (dentry->d_name));
- strcpy (temp, ud);
- strcpy (temp + udlen, dentry->d_name);
- }
- return (temp);
-}
diff --git a/readline-4.3/examples/rltest.c b/readline-4.3/examples/rltest.c
deleted file mode 100644
index 99f083b..0000000
--- a/readline-4.3/examples/rltest.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* **************************************************************** */
-/* */
-/* Testing Readline */
-/* */
-/* **************************************************************** */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-# include "history.h"
-#else
-# include <readline/readline.h>
-# include <readline/history.h>
-#endif
-
-extern HIST_ENTRY **history_list ();
-
-main ()
-{
- char *temp, *prompt;
- int done;
-
- temp = (char *)NULL;
- prompt = "readline$ ";
- done = 0;
-
- while (!done)
- {
- temp = readline (prompt);
-
- /* Test for EOF. */
- if (!temp)
- exit (1);
-
- /* If there is anything on the line, print it and remember it. */
- if (*temp)
- {
- fprintf (stderr, "%s\r\n", temp);
- add_history (temp);
- }
-
- /* Check for `command' that we handle. */
- if (strcmp (temp, "quit") == 0)
- done = 1;
-
- if (strcmp (temp, "list") == 0)
- {
- HIST_ENTRY **list;
- register int i;
-
- list = history_list ();
- if (list)
- {
- for (i = 0; list[i]; i++)
- fprintf (stderr, "%d: %s\r\n", i, list[i]->line);
- }
- }
- free (temp);
- }
- exit (0);
-}
diff --git a/readline-4.3/examples/rlversion.c b/readline-4.3/examples/rlversion.c
deleted file mode 100644
index 53949d1..0000000
--- a/readline-4.3/examples/rlversion.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * rlversion -- print out readline's version number
- */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-#include "posixstat.h"
-
-#ifdef READLINE_LIBRARY
-# include "readline.h"
-#else
-# include <readline/readline.h>
-#endif
-
-main()
-{
- printf ("%s\n", rl_library_version ? rl_library_version : "unknown");
- exit (0);
-}
diff --git a/readline-4.3/funmap.c b/readline-4.3/funmap.c
deleted file mode 100644
index fe9a1da..0000000
--- a/readline-4.3/funmap.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/* funmap.c -- attach names to functions. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if !defined (BUFSIZ)
-#include <stdio.h>
-#endif /* BUFSIZ */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include "rlconf.h"
-#include "readline.h"
-
-#include "xmalloc.h"
-
-#ifdef __STDC__
-typedef int QSFUNC (const void *, const void *);
-#else
-typedef int QSFUNC ();
-#endif
-
-extern int _rl_qsort_string_compare PARAMS((char **, char **));
-
-FUNMAP **funmap;
-static int funmap_size;
-static int funmap_entry;
-
-/* After initializing the function map, this is the index of the first
- program specific function. */
-int funmap_program_specific_entry_start;
-
-static FUNMAP default_funmap[] = {
- { "abort", rl_abort },
- { "accept-line", rl_newline },
- { "arrow-key-prefix", rl_arrow_keys },
- { "backward-byte", rl_backward_byte },
- { "backward-char", rl_backward_char },
- { "backward-delete-char", rl_rubout },
- { "backward-kill-line", rl_backward_kill_line },
- { "backward-kill-word", rl_backward_kill_word },
- { "backward-word", rl_backward_word },
- { "beginning-of-history", rl_beginning_of_history },
- { "beginning-of-line", rl_beg_of_line },
- { "call-last-kbd-macro", rl_call_last_kbd_macro },
- { "capitalize-word", rl_capitalize_word },
- { "character-search", rl_char_search },
- { "character-search-backward", rl_backward_char_search },
- { "clear-screen", rl_clear_screen },
- { "complete", rl_complete },
- { "copy-backward-word", rl_copy_backward_word },
- { "copy-forward-word", rl_copy_forward_word },
- { "copy-region-as-kill", rl_copy_region_to_kill },
- { "delete-char", rl_delete },
- { "delete-char-or-list", rl_delete_or_show_completions },
- { "delete-horizontal-space", rl_delete_horizontal_space },
- { "digit-argument", rl_digit_argument },
- { "do-lowercase-version", rl_do_lowercase_version },
- { "downcase-word", rl_downcase_word },
- { "dump-functions", rl_dump_functions },
- { "dump-macros", rl_dump_macros },
- { "dump-variables", rl_dump_variables },
- { "emacs-editing-mode", rl_emacs_editing_mode },
- { "end-kbd-macro", rl_end_kbd_macro },
- { "end-of-history", rl_end_of_history },
- { "end-of-line", rl_end_of_line },
- { "exchange-point-and-mark", rl_exchange_point_and_mark },
- { "forward-backward-delete-char", rl_rubout_or_delete },
- { "forward-byte", rl_forward_byte },
- { "forward-char", rl_forward_char },
- { "forward-search-history", rl_forward_search_history },
- { "forward-word", rl_forward_word },
- { "history-search-backward", rl_history_search_backward },
- { "history-search-forward", rl_history_search_forward },
- { "insert-comment", rl_insert_comment },
- { "insert-completions", rl_insert_completions },
- { "kill-whole-line", rl_kill_full_line },
- { "kill-line", rl_kill_line },
- { "kill-region", rl_kill_region },
- { "kill-word", rl_kill_word },
- { "menu-complete", rl_menu_complete },
- { "next-history", rl_get_next_history },
- { "non-incremental-forward-search-history", rl_noninc_forward_search },
- { "non-incremental-reverse-search-history", rl_noninc_reverse_search },
- { "non-incremental-forward-search-history-again", rl_noninc_forward_search_again },
- { "non-incremental-reverse-search-history-again", rl_noninc_reverse_search_again },
- { "overwrite-mode", rl_overwrite_mode },
-#ifdef __CYGWIN__
- { "paste-from-clipboard", rl_paste_from_clipboard },
-#endif
- { "possible-completions", rl_possible_completions },
- { "previous-history", rl_get_previous_history },
- { "quoted-insert", rl_quoted_insert },
- { "re-read-init-file", rl_re_read_init_file },
- { "redraw-current-line", rl_refresh_line},
- { "reverse-search-history", rl_reverse_search_history },
- { "revert-line", rl_revert_line },
- { "self-insert", rl_insert },
- { "set-mark", rl_set_mark },
- { "start-kbd-macro", rl_start_kbd_macro },
- { "tab-insert", rl_tab_insert },
- { "tilde-expand", rl_tilde_expand },
- { "transpose-chars", rl_transpose_chars },
- { "transpose-words", rl_transpose_words },
- { "tty-status", rl_tty_status },
- { "undo", rl_undo_command },
- { "universal-argument", rl_universal_argument },
- { "unix-line-discard", rl_unix_line_discard },
- { "unix-word-rubout", rl_unix_word_rubout },
- { "upcase-word", rl_upcase_word },
- { "yank", rl_yank },
- { "yank-last-arg", rl_yank_last_arg },
- { "yank-nth-arg", rl_yank_nth_arg },
- { "yank-pop", rl_yank_pop },
-
-#if defined (VI_MODE)
- { "vi-append-eol", rl_vi_append_eol },
- { "vi-append-mode", rl_vi_append_mode },
- { "vi-arg-digit", rl_vi_arg_digit },
- { "vi-back-to-indent", rl_vi_back_to_indent },
- { "vi-bWord", rl_vi_bWord },
- { "vi-bword", rl_vi_bword },
- { "vi-change-case", rl_vi_change_case },
- { "vi-change-char", rl_vi_change_char },
- { "vi-change-to", rl_vi_change_to },
- { "vi-char-search", rl_vi_char_search },
- { "vi-column", rl_vi_column },
- { "vi-complete", rl_vi_complete },
- { "vi-delete", rl_vi_delete },
- { "vi-delete-to", rl_vi_delete_to },
- { "vi-eWord", rl_vi_eWord },
- { "vi-editing-mode", rl_vi_editing_mode },
- { "vi-end-word", rl_vi_end_word },
- { "vi-eof-maybe", rl_vi_eof_maybe },
- { "vi-eword", rl_vi_eword },
- { "vi-fWord", rl_vi_fWord },
- { "vi-fetch-history", rl_vi_fetch_history },
- { "vi-first-print", rl_vi_first_print },
- { "vi-fword", rl_vi_fword },
- { "vi-goto-mark", rl_vi_goto_mark },
- { "vi-insert-beg", rl_vi_insert_beg },
- { "vi-insertion-mode", rl_vi_insertion_mode },
- { "vi-match", rl_vi_match },
- { "vi-movement-mode", rl_vi_movement_mode },
- { "vi-next-word", rl_vi_next_word },
- { "vi-overstrike", rl_vi_overstrike },
- { "vi-overstrike-delete", rl_vi_overstrike_delete },
- { "vi-prev-word", rl_vi_prev_word },
- { "vi-put", rl_vi_put },
- { "vi-redo", rl_vi_redo },
- { "vi-replace", rl_vi_replace },
- { "vi-search", rl_vi_search },
- { "vi-search-again", rl_vi_search_again },
- { "vi-set-mark", rl_vi_set_mark },
- { "vi-subst", rl_vi_subst },
- { "vi-tilde-expand", rl_vi_tilde_expand },
- { "vi-yank-arg", rl_vi_yank_arg },
- { "vi-yank-to", rl_vi_yank_to },
-#endif /* VI_MODE */
-
- {(char *)NULL, (rl_command_func_t *)NULL }
-};
-
-int
-rl_add_funmap_entry (name, function)
- const char *name;
- rl_command_func_t *function;
-{
- if (funmap_entry + 2 >= funmap_size)
- {
- funmap_size += 64;
- funmap = (FUNMAP **)xrealloc (funmap, funmap_size * sizeof (FUNMAP *));
- }
-
- funmap[funmap_entry] = (FUNMAP *)xmalloc (sizeof (FUNMAP));
- funmap[funmap_entry]->name = name;
- funmap[funmap_entry]->function = function;
-
- funmap[++funmap_entry] = (FUNMAP *)NULL;
- return funmap_entry;
-}
-
-static int funmap_initialized;
-
-/* Make the funmap contain all of the default entries. */
-void
-rl_initialize_funmap ()
-{
- register int i;
-
- if (funmap_initialized)
- return;
-
- for (i = 0; default_funmap[i].name; i++)
- rl_add_funmap_entry (default_funmap[i].name, default_funmap[i].function);
-
- funmap_initialized = 1;
- funmap_program_specific_entry_start = i;
-}
-
-/* Produce a NULL terminated array of known function names. The array
- is sorted. The array itself is allocated, but not the strings inside.
- You should free () the array when you done, but not the pointrs. */
-const char **
-rl_funmap_names ()
-{
- const char **result;
- int result_size, result_index;
-
- /* Make sure that the function map has been initialized. */
- rl_initialize_funmap ();
-
- for (result_index = result_size = 0, result = (const char **)NULL; funmap[result_index]; result_index++)
- {
- if (result_index + 2 > result_size)
- {
- result_size += 20;
- result = (const char **)xrealloc (result, result_size * sizeof (char *));
- }
-
- result[result_index] = funmap[result_index]->name;
- result[result_index + 1] = (char *)NULL;
- }
-
- qsort (result, result_index, sizeof (char *), (QSFUNC *)_rl_qsort_string_compare);
- return (result);
-}
diff --git a/readline-4.3/histexpand.c b/readline-4.3/histexpand.c
deleted file mode 100644
index 6c81196..0000000
--- a/readline-4.3/histexpand.c
+++ /dev/null
@@ -1,1491 +0,0 @@
-/* histexpand.c -- history expansion. */
-
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# ifndef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#include "rlmbutil.h"
-
-#include "history.h"
-#include "histlib.h"
-
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#define HISTORY_WORD_DELIMITERS " \t\n;&()|<>"
-#define HISTORY_QUOTE_CHARACTERS "\"'`"
-
-typedef int _hist_search_func_t PARAMS((const char *, int));
-
-extern int rl_byte_oriented; /* declared in mbutil.c */
-
-static char error_pointer;
-
-static char *subst_lhs;
-static char *subst_rhs;
-static int subst_lhs_len;
-static int subst_rhs_len;
-
-static char *get_history_word_specifier PARAMS((char *, char *, int *));
-static char *history_find_word PARAMS((char *, int));
-
-static char *quote_breaks PARAMS((char *));
-
-/* Variables exported by this file. */
-/* The character that represents the start of a history expansion
- request. This is usually `!'. */
-char history_expansion_char = '!';
-
-/* The character that invokes word substitution if found at the start of
- a line. This is usually `^'. */
-char history_subst_char = '^';
-
-/* During tokenization, if this character is seen as the first character
- of a word, then it, and all subsequent characters upto a newline are
- ignored. For a Bourne shell, this should be '#'. Bash special cases
- the interactive comment character to not be a comment delimiter. */
-char history_comment_char = '\0';
-
-/* The list of characters which inhibit the expansion of text if found
- immediately following history_expansion_char. */
-char *history_no_expand_chars = " \t\n\r=";
-
-/* If set to a non-zero value, single quotes inhibit history expansion.
- The default is 0. */
-int history_quotes_inhibit_expansion = 0;
-
-/* Used to split words by history_tokenize_internal. */
-char *history_word_delimiters = HISTORY_WORD_DELIMITERS;
-
-/* If set, this points to a function that is called to verify that a
- particular history expansion should be performed. */
-rl_linebuf_func_t *history_inhibit_expansion_function;
-
-/* **************************************************************** */
-/* */
-/* History Expansion */
-/* */
-/* **************************************************************** */
-
-/* Hairy history expansion on text, not tokens. This is of general
- use, and thus belongs in this library. */
-
-/* The last string searched for by a !?string? search. */
-static char *search_string;
-
-/* The last string matched by a !?string? search. */
-static char *search_match;
-
-/* Return the event specified at TEXT + OFFSET modifying OFFSET to
- point to after the event specifier. Just a pointer to the history
- line is returned; NULL is returned in the event of a bad specifier.
- You pass STRING with *INDEX equal to the history_expansion_char that
- begins this specification.
- DELIMITING_QUOTE is a character that is allowed to end the string
- specification for what to search for in addition to the normal
- characters `:', ` ', `\t', `\n', and sometimes `?'.
- So you might call this function like:
- line = get_history_event ("!echo:p", &index, 0); */
-char *
-get_history_event (string, caller_index, delimiting_quote)
- const char *string;
- int *caller_index;
- int delimiting_quote;
-{
- register int i;
- register char c;
- HIST_ENTRY *entry;
- int which, sign, local_index, substring_okay;
- _hist_search_func_t *search_func;
- char *temp;
-
- /* The event can be specified in a number of ways.
-
- !! the previous command
- !n command line N
- !-n current command-line minus N
- !str the most recent command starting with STR
- !?str[?]
- the most recent command containing STR
-
- All values N are determined via HISTORY_BASE. */
-
- i = *caller_index;
-
- if (string[i] != history_expansion_char)
- return ((char *)NULL);
-
- /* Move on to the specification. */
- i++;
-
- sign = 1;
- substring_okay = 0;
-
-#define RETURN_ENTRY(e, w) \
- return ((e = history_get (w)) ? e->line : (char *)NULL)
-
- /* Handle !! case. */
- if (string[i] == history_expansion_char)
- {
- i++;
- which = history_base + (history_length - 1);
- *caller_index = i;
- RETURN_ENTRY (entry, which);
- }
-
- /* Hack case of numeric line specification. */
- if (string[i] == '-')
- {
- sign = -1;
- i++;
- }
-
- if (_rl_digit_p (string[i]))
- {
- /* Get the extent of the digits and compute the value. */
- for (which = 0; _rl_digit_p (string[i]); i++)
- which = (which * 10) + _rl_digit_value (string[i]);
-
- *caller_index = i;
-
- if (sign < 0)
- which = (history_length + history_base) - which;
-
- RETURN_ENTRY (entry, which);
- }
-
- /* This must be something to search for. If the spec begins with
- a '?', then the string may be anywhere on the line. Otherwise,
- the string must be found at the start of a line. */
- if (string[i] == '?')
- {
- substring_okay++;
- i++;
- }
-
- /* Only a closing `?' or a newline delimit a substring search string. */
- for (local_index = i; c = string[i]; i++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int v;
- mbstate_t ps;
-
- memset (&ps, 0, sizeof (mbstate_t));
- /* These produce warnings because we're passing a const string to a
- function that takes a non-const string. */
- _rl_adjust_point (string, i, &ps);
- if ((v = _rl_get_char_len (string + i, &ps)) > 1)
- {
- i += v - 1;
- continue;
- }
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- if ((!substring_okay && (whitespace (c) || c == ':' ||
- (history_search_delimiter_chars && member (c, history_search_delimiter_chars)) ||
- string[i] == delimiting_quote)) ||
- string[i] == '\n' ||
- (substring_okay && string[i] == '?'))
- break;
-
- which = i - local_index;
- temp = (char *)xmalloc (1 + which);
- if (which)
- strncpy (temp, string + local_index, which);
- temp[which] = '\0';
-
- if (substring_okay && string[i] == '?')
- i++;
-
- *caller_index = i;
-
-#define FAIL_SEARCH() \
- do { \
- history_offset = history_length; free (temp) ; return (char *)NULL; \
- } while (0)
-
- /* If there is no search string, try to use the previous search string,
- if one exists. If not, fail immediately. */
- if (*temp == '\0' && substring_okay)
- {
- if (search_string)
- {
- free (temp);
- temp = savestring (search_string);
- }
- else
- FAIL_SEARCH ();
- }
-
- search_func = substring_okay ? history_search : history_search_prefix;
- while (1)
- {
- local_index = (*search_func) (temp, -1);
-
- if (local_index < 0)
- FAIL_SEARCH ();
-
- if (local_index == 0 || substring_okay)
- {
- entry = current_history ();
- history_offset = history_length;
-
- /* If this was a substring search, then remember the
- string that we matched for word substitution. */
- if (substring_okay)
- {
- FREE (search_string);
- search_string = temp;
-
- FREE (search_match);
- search_match = history_find_word (entry->line, local_index);
- }
- else
- free (temp);
-
- return (entry->line);
- }
-
- if (history_offset)
- history_offset--;
- else
- FAIL_SEARCH ();
- }
-#undef FAIL_SEARCH
-#undef RETURN_ENTRY
-}
-
-/* Function for extracting single-quoted strings. Used for inhibiting
- history expansion within single quotes. */
-
-/* Extract the contents of STRING as if it is enclosed in single quotes.
- SINDEX, when passed in, is the offset of the character immediately
- following the opening single quote; on exit, SINDEX is left pointing
- to the closing single quote. */
-static void
-hist_string_extract_single_quoted (string, sindex)
- char *string;
- int *sindex;
-{
- register int i;
-
- for (i = *sindex; string[i] && string[i] != '\''; i++)
- ;
-
- *sindex = i;
-}
-
-static char *
-quote_breaks (s)
- char *s;
-{
- register char *p, *r;
- char *ret;
- int len = 3;
-
- for (p = s; p && *p; p++, len++)
- {
- if (*p == '\'')
- len += 3;
- else if (whitespace (*p) || *p == '\n')
- len += 2;
- }
-
- r = ret = (char *)xmalloc (len);
- *r++ = '\'';
- for (p = s; p && *p; )
- {
- if (*p == '\'')
- {
- *r++ = '\'';
- *r++ = '\\';
- *r++ = '\'';
- *r++ = '\'';
- p++;
- }
- else if (whitespace (*p) || *p == '\n')
- {
- *r++ = '\'';
- *r++ = *p++;
- *r++ = '\'';
- }
- else
- *r++ = *p++;
- }
- *r++ = '\'';
- *r = '\0';
- return ret;
-}
-
-static char *
-hist_error(s, start, current, errtype)
- char *s;
- int start, current, errtype;
-{
- char *temp;
- const char *emsg;
- int ll, elen;
-
- ll = current - start;
-
- switch (errtype)
- {
- case EVENT_NOT_FOUND:
- emsg = "event not found";
- elen = 15;
- break;
- case BAD_WORD_SPEC:
- emsg = "bad word specifier";
- elen = 18;
- break;
- case SUBST_FAILED:
- emsg = "substitution failed";
- elen = 19;
- break;
- case BAD_MODIFIER:
- emsg = "unrecognized history modifier";
- elen = 29;
- break;
- case NO_PREV_SUBST:
- emsg = "no previous substitution";
- elen = 24;
- break;
- default:
- emsg = "unknown expansion error";
- elen = 23;
- break;
- }
-
- temp = (char *)xmalloc (ll + elen + 3);
- strncpy (temp, s + start, ll);
- temp[ll] = ':';
- temp[ll + 1] = ' ';
- strcpy (temp + ll + 2, emsg);
- return (temp);
-}
-
-/* Get a history substitution string from STR starting at *IPTR
- and return it. The length is returned in LENPTR.
-
- A backslash can quote the delimiter. If the string is the
- empty string, the previous pattern is used. If there is
- no previous pattern for the lhs, the last history search
- string is used.
-
- If IS_RHS is 1, we ignore empty strings and set the pattern
- to "" anyway. subst_lhs is not changed if the lhs is empty;
- subst_rhs is allowed to be set to the empty string. */
-
-static char *
-get_subst_pattern (str, iptr, delimiter, is_rhs, lenptr)
- char *str;
- int *iptr, delimiter, is_rhs, *lenptr;
-{
- register int si, i, j, k;
- char *s;
-#if defined (HANDLE_MULTIBYTE)
- mbstate_t ps;
-#endif
-
- s = (char *)NULL;
- i = *iptr;
-
-#if defined (HANDLE_MULTIBYTE)
- memset (&ps, 0, sizeof (mbstate_t));
- _rl_adjust_point (str, i, &ps);
-#endif
-
- for (si = i; str[si] && str[si] != delimiter; si++)
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int v;
- if ((v = _rl_get_char_len (str + si, &ps)) > 1)
- si += v - 1;
- else if (str[si] == '\\' && str[si + 1] == delimiter)
- si++;
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- if (str[si] == '\\' && str[si + 1] == delimiter)
- si++;
-
- if (si > i || is_rhs)
- {
- s = (char *)xmalloc (si - i + 1);
- for (j = 0, k = i; k < si; j++, k++)
- {
- /* Remove a backslash quoting the search string delimiter. */
- if (str[k] == '\\' && str[k + 1] == delimiter)
- k++;
- s[j] = str[k];
- }
- s[j] = '\0';
- if (lenptr)
- *lenptr = j;
- }
-
- i = si;
- if (str[i])
- i++;
- *iptr = i;
-
- return s;
-}
-
-static void
-postproc_subst_rhs ()
-{
- char *new;
- int i, j, new_size;
-
- new = (char *)xmalloc (new_size = subst_rhs_len + subst_lhs_len);
- for (i = j = 0; i < subst_rhs_len; i++)
- {
- if (subst_rhs[i] == '&')
- {
- if (j + subst_lhs_len >= new_size)
- new = (char *)xrealloc (new, (new_size = new_size * 2 + subst_lhs_len));
- strcpy (new + j, subst_lhs);
- j += subst_lhs_len;
- }
- else
- {
- /* a single backslash protects the `&' from lhs interpolation */
- if (subst_rhs[i] == '\\' && subst_rhs[i + 1] == '&')
- i++;
- if (j >= new_size)
- new = (char *)xrealloc (new, new_size *= 2);
- new[j++] = subst_rhs[i];
- }
- }
- new[j] = '\0';
- free (subst_rhs);
- subst_rhs = new;
- subst_rhs_len = j;
-}
-
-/* Expand the bulk of a history specifier starting at STRING[START].
- Returns 0 if everything is OK, -1 if an error occurred, and 1
- if the `p' modifier was supplied and the caller should just print
- the returned string. Returns the new index into string in
- *END_INDEX_PTR, and the expanded specifier in *RET_STRING. */
-static int
-history_expand_internal (string, start, end_index_ptr, ret_string, current_line)
- char *string;
- int start, *end_index_ptr;
- char **ret_string;
- char *current_line; /* for !# */
-{
- int i, n, starting_index;
- int substitute_globally, want_quotes, print_only;
- char *event, *temp, *result, *tstr, *t, c, *word_spec;
- int result_len;
-#if defined (HANDLE_MULTIBYTE)
- mbstate_t ps;
-
- memset (&ps, 0, sizeof (mbstate_t));
-#endif
-
- result = (char *)xmalloc (result_len = 128);
-
- i = start;
-
- /* If it is followed by something that starts a word specifier,
- then !! is implied as the event specifier. */
-
- if (member (string[i + 1], ":$*%^"))
- {
- char fake_s[3];
- int fake_i = 0;
- i++;
- fake_s[0] = fake_s[1] = history_expansion_char;
- fake_s[2] = '\0';
- event = get_history_event (fake_s, &fake_i, 0);
- }
- else if (string[i + 1] == '#')
- {
- i += 2;
- event = current_line;
- }
- else
- {
- int quoted_search_delimiter = 0;
-
- /* If the character before this `!' is a double or single
- quote, then this expansion takes place inside of the
- quoted string. If we have to search for some text ("!foo"),
- allow the delimiter to end the search string. */
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int c, l;
- l = _rl_find_prev_mbchar (string, i, MB_FIND_ANY);
- c = string[l];
- /* XXX - original patch had i - 1 ??? If i == 0 it would fail. */
- if (i && (c == '\'' || c == '"'))
- quoted_search_delimiter = c;
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- if (i && (string[i - 1] == '\'' || string[i - 1] == '"'))
- quoted_search_delimiter = string[i - 1];
-
- event = get_history_event (string, &i, quoted_search_delimiter);
- }
-
- if (event == 0)
- {
- *ret_string = hist_error (string, start, i, EVENT_NOT_FOUND);
- free (result);
- return (-1);
- }
-
- /* If a word specifier is found, then do what that requires. */
- starting_index = i;
- word_spec = get_history_word_specifier (string, event, &i);
-
- /* There is no such thing as a `malformed word specifier'. However,
- it is possible for a specifier that has no match. In that case,
- we complain. */
- if (word_spec == (char *)&error_pointer)
- {
- *ret_string = hist_error (string, starting_index, i, BAD_WORD_SPEC);
- free (result);
- return (-1);
- }
-
- /* If no word specifier, than the thing of interest was the event. */
- temp = word_spec ? savestring (word_spec) : savestring (event);
- FREE (word_spec);
-
- /* Perhaps there are other modifiers involved. Do what they say. */
- want_quotes = substitute_globally = print_only = 0;
- starting_index = i;
-
- while (string[i] == ':')
- {
- c = string[i + 1];
-
- if (c == 'g')
- {
- substitute_globally = 1;
- i++;
- c = string[i + 1];
- }
-
- switch (c)
- {
- default:
- *ret_string = hist_error (string, i+1, i+2, BAD_MODIFIER);
- free (result);
- free (temp);
- return -1;
-
- case 'q':
- want_quotes = 'q';
- break;
-
- case 'x':
- want_quotes = 'x';
- break;
-
- /* :p means make this the last executed line. So we
- return an error state after adding this line to the
- history. */
- case 'p':
- print_only++;
- break;
-
- /* :t discards all but the last part of the pathname. */
- case 't':
- tstr = strrchr (temp, '/');
- if (tstr)
- {
- tstr++;
- t = savestring (tstr);
- free (temp);
- temp = t;
- }
- break;
-
- /* :h discards the last part of a pathname. */
- case 'h':
- tstr = strrchr (temp, '/');
- if (tstr)
- *tstr = '\0';
- break;
-
- /* :r discards the suffix. */
- case 'r':
- tstr = strrchr (temp, '.');
- if (tstr)
- *tstr = '\0';
- break;
-
- /* :e discards everything but the suffix. */
- case 'e':
- tstr = strrchr (temp, '.');
- if (tstr)
- {
- t = savestring (tstr);
- free (temp);
- temp = t;
- }
- break;
-
- /* :s/this/that substitutes `that' for the first
- occurrence of `this'. :gs/this/that substitutes `that'
- for each occurrence of `this'. :& repeats the last
- substitution. :g& repeats the last substitution
- globally. */
-
- case '&':
- case 's':
- {
- char *new_event;
- int delimiter, failed, si, l_temp;
-
- if (c == 's')
- {
- if (i + 2 < (int)strlen (string))
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- _rl_adjust_point (string, i + 2, &ps);
- if (_rl_get_char_len (string + i + 2, &ps) > 1)
- delimiter = 0;
- else
- delimiter = string[i + 2];
- }
- else
-#endif /* HANDLE_MULTIBYTE */
- delimiter = string[i + 2];
- }
- else
- break; /* no search delimiter */
-
- i += 3;
-
- t = get_subst_pattern (string, &i, delimiter, 0, &subst_lhs_len);
- /* An empty substitution lhs with no previous substitution
- uses the last search string as the lhs. */
- if (t)
- {
- FREE (subst_lhs);
- subst_lhs = t;
- }
- else if (!subst_lhs)
- {
- if (search_string && *search_string)
- {
- subst_lhs = savestring (search_string);
- subst_lhs_len = strlen (subst_lhs);
- }
- else
- {
- subst_lhs = (char *) NULL;
- subst_lhs_len = 0;
- }
- }
-
- FREE (subst_rhs);
- subst_rhs = get_subst_pattern (string, &i, delimiter, 1, &subst_rhs_len);
-
- /* If `&' appears in the rhs, it's supposed to be replaced
- with the lhs. */
- if (member ('&', subst_rhs))
- postproc_subst_rhs ();
- }
- else
- i += 2;
-
- /* If there is no lhs, the substitution can't succeed. */
- if (subst_lhs_len == 0)
- {
- *ret_string = hist_error (string, starting_index, i, NO_PREV_SUBST);
- free (result);
- free (temp);
- return -1;
- }
-
- l_temp = strlen (temp);
- /* Ignore impossible cases. */
- if (subst_lhs_len > l_temp)
- {
- *ret_string = hist_error (string, starting_index, i, SUBST_FAILED);
- free (result);
- free (temp);
- return (-1);
- }
-
- /* Find the first occurrence of THIS in TEMP. */
- si = 0;
- for (failed = 1; (si + subst_lhs_len) <= l_temp; si++)
- if (STREQN (temp+si, subst_lhs, subst_lhs_len))
- {
- int len = subst_rhs_len - subst_lhs_len + l_temp;
- new_event = (char *)xmalloc (1 + len);
- strncpy (new_event, temp, si);
- strncpy (new_event + si, subst_rhs, subst_rhs_len);
- strncpy (new_event + si + subst_rhs_len,
- temp + si + subst_lhs_len,
- l_temp - (si + subst_lhs_len));
- new_event[len] = '\0';
- free (temp);
- temp = new_event;
-
- failed = 0;
-
- if (substitute_globally)
- {
- si += subst_rhs_len;
- l_temp = strlen (temp);
- substitute_globally++;
- continue;
- }
- else
- break;
- }
-
- if (substitute_globally > 1)
- {
- substitute_globally = 0;
- continue; /* don't want to increment i */
- }
-
- if (failed == 0)
- continue; /* don't want to increment i */
-
- *ret_string = hist_error (string, starting_index, i, SUBST_FAILED);
- free (result);
- free (temp);
- return (-1);
- }
- }
- i += 2;
- }
- /* Done with modfiers. */
- /* Believe it or not, we have to back the pointer up by one. */
- --i;
-
- if (want_quotes)
- {
- char *x;
-
- if (want_quotes == 'q')
- x = sh_single_quote (temp);
- else if (want_quotes == 'x')
- x = quote_breaks (temp);
- else
- x = savestring (temp);
-
- free (temp);
- temp = x;
- }
-
- n = strlen (temp);
- if (n >= result_len)
- result = (char *)xrealloc (result, n + 2);
- strcpy (result, temp);
- free (temp);
-
- *end_index_ptr = i;
- *ret_string = result;
- return (print_only);
-}
-
-/* Expand the string STRING, placing the result into OUTPUT, a pointer
- to a string. Returns:
-
- -1) If there was an error in expansion.
- 0) If no expansions took place (or, if the only change in
- the text was the de-slashifying of the history expansion
- character)
- 1) If expansions did take place
- 2) If the `p' modifier was given and the caller should print the result
-
- If an error ocurred in expansion, then OUTPUT contains a descriptive
- error message. */
-
-#define ADD_STRING(s) \
- do \
- { \
- int sl = strlen (s); \
- j += sl; \
- if (j >= result_len) \
- { \
- while (j >= result_len) \
- result_len += 128; \
- result = (char *)xrealloc (result, result_len); \
- } \
- strcpy (result + j - sl, s); \
- } \
- while (0)
-
-#define ADD_CHAR(c) \
- do \
- { \
- if (j >= result_len - 1) \
- result = (char *)xrealloc (result, result_len += 64); \
- result[j++] = c; \
- result[j] = '\0'; \
- } \
- while (0)
-
-int
-history_expand (hstring, output)
- char *hstring;
- char **output;
-{
- register int j;
- int i, r, l, passc, cc, modified, eindex, only_printing;
- char *string;
-
- /* The output string, and its length. */
- int result_len;
- char *result;
-
-#if defined (HANDLE_MULTIBYTE)
- char mb[MB_LEN_MAX];
- mbstate_t ps;
-#endif
-
- /* Used when adding the string. */
- char *temp;
-
- if (output == 0)
- return 0;
-
- /* Setting the history expansion character to 0 inhibits all
- history expansion. */
- if (history_expansion_char == 0)
- {
- *output = savestring (hstring);
- return (0);
- }
-
- /* Prepare the buffer for printing error messages. */
- result = (char *)xmalloc (result_len = 256);
- result[0] = '\0';
-
- only_printing = modified = 0;
- l = strlen (hstring);
-
- /* Grovel the string. Only backslash and single quotes can quote the
- history escape character. We also handle arg specifiers. */
-
- /* Before we grovel forever, see if the history_expansion_char appears
- anywhere within the text. */
-
- /* The quick substitution character is a history expansion all right. That
- is to say, "^this^that^" is equivalent to "!!:s^this^that^", and in fact,
- that is the substitution that we do. */
- if (hstring[0] == history_subst_char)
- {
- string = (char *)xmalloc (l + 5);
-
- string[0] = string[1] = history_expansion_char;
- string[2] = ':';
- string[3] = 's';
- strcpy (string + 4, hstring);
- l += 4;
- }
- else
- {
-#if defined (HANDLE_MULTIBYTE)
- memset (&ps, 0, sizeof (mbstate_t));
-#endif
-
- string = hstring;
- /* If not quick substitution, still maybe have to do expansion. */
-
- /* `!' followed by one of the characters in history_no_expand_chars
- is NOT an expansion. */
- for (i = 0; string[i]; i++)
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int v;
- v = _rl_get_char_len (string + i, &ps);
- if (v > 1)
- {
- i += v - 1;
- continue;
- }
- }
-#endif /* HANDLE_MULTIBYTE */
-
- cc = string[i + 1];
- /* The history_comment_char, if set, appearing at the beginning
- of a word signifies that the rest of the line should not have
- history expansion performed on it.
- Skip the rest of the line and break out of the loop. */
- if (history_comment_char && string[i] == history_comment_char &&
- (i == 0 || member (string[i - 1], history_word_delimiters)))
- {
- while (string[i])
- i++;
- break;
- }
- else if (string[i] == history_expansion_char)
- {
- if (!cc || member (cc, history_no_expand_chars))
- continue;
- /* If the calling application has set
- history_inhibit_expansion_function to a function that checks
- for special cases that should not be history expanded,
- call the function and skip the expansion if it returns a
- non-zero value. */
- else if (history_inhibit_expansion_function &&
- (*history_inhibit_expansion_function) (string, i))
- continue;
- else
- break;
- }
- /* XXX - at some point, might want to extend this to handle
- double quotes as well. */
- else if (history_quotes_inhibit_expansion && string[i] == '\'')
- {
- /* If this is bash, single quotes inhibit history expansion. */
- i++;
- hist_string_extract_single_quoted (string, &i);
- }
- else if (history_quotes_inhibit_expansion && string[i] == '\\')
- {
- /* If this is bash, allow backslashes to quote single
- quotes and the history expansion character. */
- if (cc == '\'' || cc == history_expansion_char)
- i++;
- }
- }
-
- if (string[i] != history_expansion_char)
- {
- free (result);
- *output = savestring (string);
- return (0);
- }
- }
-
- /* Extract and perform the substitution. */
- for (passc = i = j = 0; i < l; i++)
- {
- int tchar = string[i];
-
- if (passc)
- {
- passc = 0;
- ADD_CHAR (tchar);
- continue;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int k, c;
-
- c = tchar;
- memset (mb, 0, sizeof (mb));
- for (k = 0; k < MB_LEN_MAX; k++)
- {
- mb[k] = (char)c;
- memset (&ps, 0, sizeof (mbstate_t));
- if (_rl_get_char_len (mb, &ps) == -2)
- c = string[++i];
- else
- break;
- }
- if (strlen (mb) > 1)
- {
- ADD_STRING (mb);
- break;
- }
- }
-#endif /* HANDLE_MULTIBYTE */
-
- if (tchar == history_expansion_char)
- tchar = -3;
- else if (tchar == history_comment_char)
- tchar = -2;
-
- switch (tchar)
- {
- default:
- ADD_CHAR (string[i]);
- break;
-
- case '\\':
- passc++;
- ADD_CHAR (tchar);
- break;
-
- case '\'':
- {
- /* If history_quotes_inhibit_expansion is set, single quotes
- inhibit history expansion. */
- if (history_quotes_inhibit_expansion)
- {
- int quote, slen;
-
- quote = i++;
- hist_string_extract_single_quoted (string, &i);
-
- slen = i - quote + 2;
- temp = (char *)xmalloc (slen);
- strncpy (temp, string + quote, slen);
- temp[slen - 1] = '\0';
- ADD_STRING (temp);
- free (temp);
- }
- else
- ADD_CHAR (string[i]);
- break;
- }
-
- case -2: /* history_comment_char */
- if (i == 0 || member (string[i - 1], history_word_delimiters))
- {
- temp = (char *)xmalloc (l - i + 1);
- strcpy (temp, string + i);
- ADD_STRING (temp);
- free (temp);
- i = l;
- }
- else
- ADD_CHAR (string[i]);
- break;
-
- case -3: /* history_expansion_char */
- cc = string[i + 1];
-
- /* If the history_expansion_char is followed by one of the
- characters in history_no_expand_chars, then it is not a
- candidate for expansion of any kind. */
- if (member (cc, history_no_expand_chars))
- {
- ADD_CHAR (string[i]);
- break;
- }
-
-#if defined (NO_BANG_HASH_MODIFIERS)
- /* There is something that is listed as a `word specifier' in csh
- documentation which means `the expanded text to this point'.
- That is not a word specifier, it is an event specifier. If we
- don't want to allow modifiers with `!#', just stick the current
- output line in again. */
- if (cc == '#')
- {
- if (result)
- {
- temp = (char *)xmalloc (1 + strlen (result));
- strcpy (temp, result);
- ADD_STRING (temp);
- free (temp);
- }
- i++;
- break;
- }
-#endif
-
- r = history_expand_internal (string, i, &eindex, &temp, result);
- if (r < 0)
- {
- *output = temp;
- free (result);
- if (string != hstring)
- free (string);
- return -1;
- }
- else
- {
- if (temp)
- {
- modified++;
- if (*temp)
- ADD_STRING (temp);
- free (temp);
- }
- only_printing = r == 1;
- i = eindex;
- }
- break;
- }
- }
-
- *output = result;
- if (string != hstring)
- free (string);
-
- if (only_printing)
- {
- add_history (result);
- return (2);
- }
-
- return (modified != 0);
-}
-
-/* Return a consed string which is the word specified in SPEC, and found
- in FROM. NULL is returned if there is no spec. The address of
- ERROR_POINTER is returned if the word specified cannot be found.
- CALLER_INDEX is the offset in SPEC to start looking; it is updated
- to point to just after the last character parsed. */
-static char *
-get_history_word_specifier (spec, from, caller_index)
- char *spec, *from;
- int *caller_index;
-{
- register int i = *caller_index;
- int first, last;
- int expecting_word_spec = 0;
- char *result;
-
- /* The range of words to return doesn't exist yet. */
- first = last = 0;
- result = (char *)NULL;
-
- /* If we found a colon, then this *must* be a word specification. If
- it isn't, then it is an error. */
- if (spec[i] == ':')
- {
- i++;
- expecting_word_spec++;
- }
-
- /* Handle special cases first. */
-
- /* `%' is the word last searched for. */
- if (spec[i] == '%')
- {
- *caller_index = i + 1;
- return (search_match ? savestring (search_match) : savestring (""));
- }
-
- /* `*' matches all of the arguments, but not the command. */
- if (spec[i] == '*')
- {
- *caller_index = i + 1;
- result = history_arg_extract (1, '$', from);
- return (result ? result : savestring (""));
- }
-
- /* `$' is last arg. */
- if (spec[i] == '$')
- {
- *caller_index = i + 1;
- return (history_arg_extract ('$', '$', from));
- }
-
- /* Try to get FIRST and LAST figured out. */
-
- if (spec[i] == '-')
- first = 0;
- else if (spec[i] == '^')
- first = 1;
- else if (_rl_digit_p (spec[i]) && expecting_word_spec)
- {
- for (first = 0; _rl_digit_p (spec[i]); i++)
- first = (first * 10) + _rl_digit_value (spec[i]);
- }
- else
- return ((char *)NULL); /* no valid `first' for word specifier */
-
- if (spec[i] == '^' || spec[i] == '*')
- {
- last = (spec[i] == '^') ? 1 : '$'; /* x* abbreviates x-$ */
- i++;
- }
- else if (spec[i] != '-')
- last = first;
- else
- {
- i++;
-
- if (_rl_digit_p (spec[i]))
- {
- for (last = 0; _rl_digit_p (spec[i]); i++)
- last = (last * 10) + _rl_digit_value (spec[i]);
- }
- else if (spec[i] == '$')
- {
- i++;
- last = '$';
- }
-#if 0
- else if (!spec[i] || spec[i] == ':')
- /* check against `:' because there could be a modifier separator */
-#else
- else
- /* csh seems to allow anything to terminate the word spec here,
- leaving it as an abbreviation. */
-#endif
- last = -1; /* x- abbreviates x-$ omitting word `$' */
- }
-
- *caller_index = i;
-
- if (last >= first || last == '$' || last < 0)
- result = history_arg_extract (first, last, from);
-
- return (result ? result : (char *)&error_pointer);
-}
-
-/* Extract the args specified, starting at FIRST, and ending at LAST.
- The args are taken from STRING. If either FIRST or LAST is < 0,
- then make that arg count from the right (subtract from the number of
- tokens, so that FIRST = -1 means the next to last token on the line).
- If LAST is `$' the last arg from STRING is used. */
-char *
-history_arg_extract (first, last, string)
- int first, last;
- const char *string;
-{
- register int i, len;
- char *result;
- int size, offset;
- char **list;
-
- /* XXX - think about making history_tokenize return a struct array,
- each struct in array being a string and a length to avoid the
- calls to strlen below. */
- if ((list = history_tokenize (string)) == NULL)
- return ((char *)NULL);
-
- for (len = 0; list[len]; len++)
- ;
-
- if (last < 0)
- last = len + last - 1;
-
- if (first < 0)
- first = len + first - 1;
-
- if (last == '$')
- last = len - 1;
-
- if (first == '$')
- first = len - 1;
-
- last++;
-
- if (first >= len || last > len || first < 0 || last < 0 || first > last)
- result = ((char *)NULL);
- else
- {
- for (size = 0, i = first; i < last; i++)
- size += strlen (list[i]) + 1;
- result = (char *)xmalloc (size + 1);
- result[0] = '\0';
-
- for (i = first, offset = 0; i < last; i++)
- {
- strcpy (result + offset, list[i]);
- offset += strlen (list[i]);
- if (i + 1 < last)
- {
- result[offset++] = ' ';
- result[offset] = 0;
- }
- }
- }
-
- for (i = 0; i < len; i++)
- free (list[i]);
- free (list);
-
- return (result);
-}
-
-#define slashify_in_quotes "\\`\"$"
-
-/* Parse STRING into tokens and return an array of strings. If WIND is
- not -1 and INDP is not null, we also want the word surrounding index
- WIND. The position in the returned array of strings is returned in
- *INDP. */
-static char **
-history_tokenize_internal (string, wind, indp)
- const char *string;
- int wind, *indp;
-{
- char **result;
- register int i, start, result_index, size;
- int len, delimiter;
-
- /* If we're searching for a string that's not part of a word (e.g., " "),
- make sure we set *INDP to a reasonable value. */
- if (indp && wind != -1)
- *indp = -1;
-
- /* Get a token, and stuff it into RESULT. The tokens are split
- exactly where the shell would split them. */
- for (i = result_index = size = 0, result = (char **)NULL; string[i]; )
- {
- delimiter = 0;
-
- /* Skip leading whitespace. */
- for (; string[i] && whitespace (string[i]); i++)
- ;
- if (string[i] == 0 || string[i] == history_comment_char)
- return (result);
-
- start = i;
-
- if (member (string[i], "()\n"))
- {
- i++;
- goto got_token;
- }
-
- if (member (string[i], "<>;&|$"))
- {
- int peek = string[i + 1];
-
- if (peek == string[i] && peek != '$')
- {
- if (peek == '<' && string[i + 2] == '-')
- i++;
- i += 2;
- goto got_token;
- }
- else
- {
- if ((peek == '&' && (string[i] == '>' || string[i] == '<')) ||
- ((peek == '>') && (string[i] == '&')) ||
- ((peek == '(') && (string[i] == '$')))
- {
- i += 2;
- goto got_token;
- }
- }
- if (string[i] != '$')
- {
- i++;
- goto got_token;
- }
- }
-
- /* Get word from string + i; */
-
- if (member (string[i], HISTORY_QUOTE_CHARACTERS))
- delimiter = string[i++];
-
- for (; string[i]; i++)
- {
- if (string[i] == '\\' && string[i + 1] == '\n')
- {
- i++;
- continue;
- }
-
- if (string[i] == '\\' && delimiter != '\'' &&
- (delimiter != '"' || member (string[i], slashify_in_quotes)))
- {
- i++;
- continue;
- }
-
- if (delimiter && string[i] == delimiter)
- {
- delimiter = 0;
- continue;
- }
-
- if (!delimiter && (member (string[i], history_word_delimiters)))
- break;
-
- if (!delimiter && member (string[i], HISTORY_QUOTE_CHARACTERS))
- delimiter = string[i];
- }
-
- got_token:
-
- /* If we are looking for the word in which the character at a
- particular index falls, remember it. */
- if (indp && wind != -1 && wind >= start && wind < i)
- *indp = result_index;
-
- len = i - start;
- if (result_index + 2 >= size)
- result = (char **)xrealloc (result, ((size += 10) * sizeof (char *)));
- result[result_index] = (char *)xmalloc (1 + len);
- strncpy (result[result_index], string + start, len);
- result[result_index][len] = '\0';
- result[++result_index] = (char *)NULL;
- }
-
- return (result);
-}
-
-/* Return an array of tokens, much as the shell might. The tokens are
- parsed out of STRING. */
-char **
-history_tokenize (string)
- const char *string;
-{
- return (history_tokenize_internal (string, -1, (int *)NULL));
-}
-
-/* Find and return the word which contains the character at index IND
- in the history line LINE. Used to save the word matched by the
- last history !?string? search. */
-static char *
-history_find_word (line, ind)
- char *line;
- int ind;
-{
- char **words, *s;
- int i, wind;
-
- words = history_tokenize_internal (line, ind, &wind);
- if (wind == -1 || words == 0)
- return ((char *)NULL);
- s = words[wind];
- for (i = 0; i < wind; i++)
- free (words[i]);
- for (i = wind + 1; words[i]; i++)
- free (words[i]);
- free (words);
- return s;
-}
diff --git a/readline-4.3/histfile.c b/readline-4.3/histfile.c
deleted file mode 100644
index 60a9125..0000000
--- a/readline-4.3/histfile.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/* histfile.c - functions to manipulate the history file. */
-
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* The goal is to make the implementation transparent, so that you
- don't have to know what data types are used, just what functions
- you can call. I think I have done that. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#include <sys/types.h>
-#ifndef _MINIX
-# include <sys/file.h>
-#endif
-#include "posixstat.h"
-#include <fcntl.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#if defined (__EMX__) || defined (__CYGWIN__)
-# undef HAVE_MMAP
-#endif
-
-#ifdef HAVE_MMAP
-# include <sys/mman.h>
-
-# ifdef MAP_FILE
-# define MAP_RFLAGS (MAP_FILE|MAP_PRIVATE)
-# define MAP_WFLAGS (MAP_FILE|MAP_SHARED)
-# else
-# define MAP_RFLAGS MAP_PRIVATE
-# define MAP_WFLAGS MAP_SHARED
-# endif
-
-# ifndef MAP_FAILED
-# define MAP_FAILED ((void *)-1)
-# endif
-
-#endif /* HAVE_MMAP */
-
-/* If we're compiling for __EMX__ (OS/2) or __CYGWIN__ (cygwin32 environment
- on win 95/98/nt), we want to open files with O_BINARY mode so that there
- is no \n -> \r\n conversion performed. On other systems, we don't want to
- mess around with O_BINARY at all, so we ensure that it's defined to 0. */
-#if defined (__EMX__) || defined (__CYGWIN__)
-# ifndef O_BINARY
-# define O_BINARY 0
-# endif
-#else /* !__EMX__ && !__CYGWIN__ */
-# undef O_BINARY
-# define O_BINARY 0
-#endif /* !__EMX__ && !__CYGWIN__ */
-
-#include <errno.h>
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-#include "history.h"
-#include "histlib.h"
-
-#include "rlshell.h"
-#include "xmalloc.h"
-
-/* Return the string that should be used in the place of this
- filename. This only matters when you don't specify the
- filename to read_history (), or write_history (). */
-static char *
-history_filename (filename)
- const char *filename;
-{
- char *return_val;
- const char *home;
- int home_len;
-
- return_val = filename ? savestring (filename) : (char *)NULL;
-
- if (return_val)
- return (return_val);
-
- home = sh_get_env_value ("HOME");
-
- if (home == 0)
- {
- home = ".";
- home_len = 1;
- }
- else
- home_len = strlen (home);
-
- return_val = (char *)xmalloc (2 + home_len + 8); /* strlen(".history") == 8 */
- strcpy (return_val, home);
- return_val[home_len] = '/';
-#if defined (__MSDOS__)
- strcpy (return_val + home_len + 1, "_history");
-#else
- strcpy (return_val + home_len + 1, ".history");
-#endif
-
- return (return_val);
-}
-
-/* Add the contents of FILENAME to the history list, a line at a time.
- If FILENAME is NULL, then read from ~/.history. Returns 0 if
- successful, or errno if not. */
-int
-read_history (filename)
- const char *filename;
-{
- return (read_history_range (filename, 0, -1));
-}
-
-/* Read a range of lines from FILENAME, adding them to the history list.
- Start reading at the FROM'th line and end at the TO'th. If FROM
- is zero, start at the beginning. If TO is less than FROM, read
- until the end of the file. If FILENAME is NULL, then read from
- ~/.history. Returns 0 if successful, or errno if not. */
-int
-read_history_range (filename, from, to)
- const char *filename;
- int from, to;
-{
- register char *line_start, *line_end;
- char *input, *buffer, *bufend;
- int file, current_line, chars_read;
- struct stat finfo;
- size_t file_size;
-
- buffer = (char *)NULL;
- input = history_filename (filename);
- file = open (input, O_RDONLY|O_BINARY, 0666);
-
- if ((file < 0) || (fstat (file, &finfo) == -1))
- goto error_and_exit;
-
- file_size = (size_t)finfo.st_size;
-
- /* check for overflow on very large files */
- if (file_size != finfo.st_size || file_size + 1 < file_size)
- {
-#if defined (EFBIG)
- errno = EFBIG;
-#elif defined (EOVERFLOW)
- errno = EOVERFLOW;
-#endif
- goto error_and_exit;
- }
-
-#ifdef HAVE_MMAP
- /* We map read/write and private so we can change newlines to NULs without
- affecting the underlying object. */
- buffer = (char *)mmap (0, file_size, PROT_READ|PROT_WRITE, MAP_RFLAGS, file, 0);
- if ((void *)buffer == MAP_FAILED)
- goto error_and_exit;
- chars_read = file_size;
-#else
- buffer = (char *)malloc (file_size + 1);
- if (buffer == 0)
- goto error_and_exit;
-
- chars_read = read (file, buffer, file_size);
-#endif
- if (chars_read < 0)
- {
- error_and_exit:
- chars_read = errno;
- if (file >= 0)
- close (file);
-
- FREE (input);
-#ifndef HAVE_MMAP
- FREE (buffer);
-#endif
-
- return (chars_read);
- }
-
- close (file);
-
- /* Set TO to larger than end of file if negative. */
- if (to < 0)
- to = chars_read;
-
- /* Start at beginning of file, work to end. */
- bufend = buffer + chars_read;
- current_line = 0;
-
- /* Skip lines until we are at FROM. */
- for (line_start = line_end = buffer; line_end < bufend && current_line < from; line_end++)
- if (*line_end == '\n')
- {
- current_line++;
- line_start = line_end + 1;
- }
-
- /* If there are lines left to gobble, then gobble them now. */
- for (line_end = line_start; line_end < bufend; line_end++)
- if (*line_end == '\n')
- {
- *line_end = '\0';
-
- if (*line_start)
- add_history (line_start);
-
- current_line++;
-
- if (current_line >= to)
- break;
-
- line_start = line_end + 1;
- }
-
- FREE (input);
-#ifndef HAVE_MMAP
- FREE (buffer);
-#else
- munmap (buffer, file_size);
-#endif
-
- return (0);
-}
-
-/* Truncate the history file FNAME, leaving only LINES trailing lines.
- If FNAME is NULL, then use ~/.history. Returns 0 on success, errno
- on failure. */
-int
-history_truncate_file (fname, lines)
- const char *fname;
- int lines;
-{
- char *buffer, *filename, *bp;
- int file, chars_read, rv;
- struct stat finfo;
- size_t file_size;
-
- buffer = (char *)NULL;
- filename = history_filename (fname);
- file = open (filename, O_RDONLY|O_BINARY, 0666);
- rv = 0;
-
- /* Don't try to truncate non-regular files. */
- if (file == -1 || fstat (file, &finfo) == -1)
- {
- rv = errno;
- if (file != -1)
- close (file);
- goto truncate_exit;
- }
-
- if (S_ISREG (finfo.st_mode) == 0)
- {
- close (file);
-#ifdef EFTYPE
- rv = EFTYPE;
-#else
- rv = EINVAL;
-#endif
- goto truncate_exit;
- }
-
- file_size = (size_t)finfo.st_size;
-
- /* check for overflow on very large files */
- if (file_size != finfo.st_size || file_size + 1 < file_size)
- {
- close (file);
-#if defined (EFBIG)
- rv = errno = EFBIG;
-#elif defined (EOVERFLOW)
- rv = errno = EOVERFLOW;
-#else
- rv = errno = EINVAL;
-#endif
- goto truncate_exit;
- }
-
- buffer = (char *)malloc (file_size + 1);
- if (buffer == 0)
- {
- close (file);
- goto truncate_exit;
- }
-
- chars_read = read (file, buffer, file_size);
- close (file);
-
- if (chars_read <= 0)
- {
- rv = (chars_read < 0) ? errno : 0;
- goto truncate_exit;
- }
-
- /* Count backwards from the end of buffer until we have passed
- LINES lines. */
- for (bp = buffer + chars_read - 1; lines && bp > buffer; bp--)
- {
- if (*bp == '\n')
- lines--;
- }
-
- /* If this is the first line, then the file contains exactly the
- number of lines we want to truncate to, so we don't need to do
- anything. It's the first line if we don't find a newline between
- the current value of i and 0. Otherwise, write from the start of
- this line until the end of the buffer. */
- for ( ; bp > buffer; bp--)
- if (*bp == '\n')
- {
- bp++;
- break;
- }
-
- /* Write only if there are more lines in the file than we want to
- truncate to. */
- if (bp > buffer && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
- {
- write (file, bp, chars_read - (bp - buffer));
-
-#if defined (__BEOS__)
- /* BeOS ignores O_TRUNC. */
- ftruncate (file, chars_read - (bp - buffer));
-#endif
-
- close (file);
- }
-
- truncate_exit:
-
- FREE (buffer);
-
- free (filename);
- return rv;
-}
-
-/* Workhorse function for writing history. Writes NELEMENT entries
- from the history list to FILENAME. OVERWRITE is non-zero if you
- wish to replace FILENAME with the entries. */
-static int
-history_do_write (filename, nelements, overwrite)
- const char *filename;
- int nelements, overwrite;
-{
- register int i;
- char *output;
- int file, mode, rv;
- size_t cursize;
-
-#ifdef HAVE_MMAP
- mode = overwrite ? O_RDWR|O_CREAT|O_TRUNC|O_BINARY : O_RDWR|O_APPEND|O_BINARY;
-#else
- mode = overwrite ? O_WRONLY|O_CREAT|O_TRUNC|O_BINARY : O_WRONLY|O_APPEND|O_BINARY;
-#endif
- output = history_filename (filename);
- rv = 0;
-
- if ((file = open (output, mode, 0600)) == -1)
- {
- FREE (output);
- return (errno);
- }
-
-#ifdef HAVE_MMAP
- cursize = overwrite ? 0 : lseek (file, 0, SEEK_END);
-#endif
-
- if (nelements > history_length)
- nelements = history_length;
-
- /* Build a buffer of all the lines to write, and write them in one syscall.
- Suggested by Peter Ho (peter@robosts.oxford.ac.uk). */
- {
- HIST_ENTRY **the_history; /* local */
- register int j;
- int buffer_size;
- char *buffer;
-
- the_history = history_list ();
- /* Calculate the total number of bytes to write. */
- for (buffer_size = 0, i = history_length - nelements; i < history_length; i++)
- buffer_size += 1 + strlen (the_history[i]->line);
-
- /* Allocate the buffer, and fill it. */
-#ifdef HAVE_MMAP
- if (ftruncate (file, buffer_size+cursize) == -1)
- goto mmap_error;
- buffer = (char *)mmap (0, buffer_size, PROT_READ|PROT_WRITE, MAP_WFLAGS, file, cursize);
- if ((void *)buffer == MAP_FAILED)
- {
-mmap_error:
- rv = errno;
- FREE (output);
- close (file);
- return rv;
- }
-#else
- buffer = (char *)malloc (buffer_size);
- if (buffer == 0)
- {
- rv = errno;
- FREE (output);
- close (file);
- return rv;
- }
-#endif
-
- for (j = 0, i = history_length - nelements; i < history_length; i++)
- {
- strcpy (buffer + j, the_history[i]->line);
- j += strlen (the_history[i]->line);
- buffer[j++] = '\n';
- }
-
-#ifdef HAVE_MMAP
- if (msync (buffer, buffer_size, 0) != 0 || munmap (buffer, buffer_size) != 0)
- rv = errno;
-#else
- if (write (file, buffer, buffer_size) < 0)
- rv = errno;
- free (buffer);
-#endif
- }
-
- close (file);
-
- FREE (output);
-
- return (rv);
-}
-
-/* Append NELEMENT entries to FILENAME. The entries appended are from
- the end of the list minus NELEMENTs up to the end of the list. */
-int
-append_history (nelements, filename)
- int nelements;
- const char *filename;
-{
- return (history_do_write (filename, nelements, HISTORY_APPEND));
-}
-
-/* Overwrite FILENAME with the current history. If FILENAME is NULL,
- then write the history list to ~/.history. Values returned
- are as in read_history ().*/
-int
-write_history (filename)
- const char *filename;
-{
- return (history_do_write (filename, history_length, HISTORY_OVERWRITE));
-}
diff --git a/readline-4.3/histlib.h b/readline-4.3/histlib.h
deleted file mode 100644
index c39af71..0000000
--- a/readline-4.3/histlib.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* histlib.h -- internal definitions for the history library. */
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_HISTLIB_H_)
-#define _HISTLIB_H_
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if !defined (STREQ)
-#define STREQ(a, b) (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
-#define STREQN(a, b, n) (((n) == 0) ? (1) \
- : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
-#endif
-
-#ifndef savestring
-#define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
-#endif
-
-#ifndef whitespace
-#define whitespace(c) (((c) == ' ') || ((c) == '\t'))
-#endif
-
-#ifndef _rl_digit_p
-#define _rl_digit_p(c) ((c) >= '0' && (c) <= '9')
-#endif
-
-#ifndef _rl_digit_value
-#define _rl_digit_value(c) ((c) - '0')
-#endif
-
-#ifndef member
-# ifndef strchr
-extern char *strchr ();
-# endif
-#define member(c, s) ((c) ? ((char *)strchr ((s), (c)) != (char *)NULL) : 0)
-#endif
-
-#ifndef FREE
-# define FREE(x) if (x) free (x)
-#endif
-
-/* Possible history errors passed to hist_error. */
-#define EVENT_NOT_FOUND 0
-#define BAD_WORD_SPEC 1
-#define SUBST_FAILED 2
-#define BAD_MODIFIER 3
-#define NO_PREV_SUBST 4
-
-/* Possible definitions for history starting point specification. */
-#define ANCHORED_SEARCH 1
-#define NON_ANCHORED_SEARCH 0
-
-/* Possible definitions for what style of writing the history file we want. */
-#define HISTORY_APPEND 0
-#define HISTORY_OVERWRITE 1
-
-/* Some variable definitions shared across history source files. */
-extern int history_offset;
-
-#endif /* !_HISTLIB_H_ */
diff --git a/readline-4.3/history.c b/readline-4.3/history.c
deleted file mode 100644
index 4242f33..0000000
--- a/readline-4.3/history.c
+++ /dev/null
@@ -1,381 +0,0 @@
-/* History.c -- standalone history library */
-
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* The goal is to make the implementation transparent, so that you
- don't have to know what data types are used, just what functions
- you can call. I think I have done that. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# ifdef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#include "history.h"
-#include "histlib.h"
-
-#include "xmalloc.h"
-
-/* The number of slots to increase the_history by. */
-#define DEFAULT_HISTORY_GROW_SIZE 50
-
-/* **************************************************************** */
-/* */
-/* History Functions */
-/* */
-/* **************************************************************** */
-
-/* An array of HIST_ENTRY. This is where we store the history. */
-static HIST_ENTRY **the_history = (HIST_ENTRY **)NULL;
-
-/* Non-zero means that we have enforced a limit on the amount of
- history that we save. */
-static int history_stifled;
-
-/* The current number of slots allocated to the input_history. */
-static int history_size;
-
-/* If HISTORY_STIFLED is non-zero, then this is the maximum number of
- entries to remember. */
-int history_max_entries;
-int max_input_history; /* backwards compatibility */
-
-/* The current location of the interactive history pointer. Just makes
- life easier for outside callers. */
-int history_offset;
-
-/* The number of strings currently stored in the history list. */
-int history_length;
-
-/* The logical `base' of the history array. It defaults to 1. */
-int history_base = 1;
-
-/* Return the current HISTORY_STATE of the history. */
-HISTORY_STATE *
-history_get_history_state ()
-{
- HISTORY_STATE *state;
-
- state = (HISTORY_STATE *)xmalloc (sizeof (HISTORY_STATE));
- state->entries = the_history;
- state->offset = history_offset;
- state->length = history_length;
- state->size = history_size;
- state->flags = 0;
- if (history_stifled)
- state->flags |= HS_STIFLED;
-
- return (state);
-}
-
-/* Set the state of the current history array to STATE. */
-void
-history_set_history_state (state)
- HISTORY_STATE *state;
-{
- the_history = state->entries;
- history_offset = state->offset;
- history_length = state->length;
- history_size = state->size;
- if (state->flags & HS_STIFLED)
- history_stifled = 1;
-}
-
-/* Begin a session in which the history functions might be used. This
- initializes interactive variables. */
-void
-using_history ()
-{
- history_offset = history_length;
-}
-
-/* Return the number of bytes that the primary history entries are using.
- This just adds up the lengths of the_history->lines. */
-int
-history_total_bytes ()
-{
- register int i, result;
-
- for (i = result = 0; the_history && the_history[i]; i++)
- result += strlen (the_history[i]->line);
-
- return (result);
-}
-
-/* Returns the magic number which says what history element we are
- looking at now. In this implementation, it returns history_offset. */
-int
-where_history ()
-{
- return (history_offset);
-}
-
-/* Make the current history item be the one at POS, an absolute index.
- Returns zero if POS is out of range, else non-zero. */
-int
-history_set_pos (pos)
- int pos;
-{
- if (pos > history_length || pos < 0 || !the_history)
- return (0);
- history_offset = pos;
- return (1);
-}
-
-/* Return the current history array. The caller has to be carefull, since this
- is the actual array of data, and could be bashed or made corrupt easily.
- The array is terminated with a NULL pointer. */
-HIST_ENTRY **
-history_list ()
-{
- return (the_history);
-}
-
-/* Return the history entry at the current position, as determined by
- history_offset. If there is no entry there, return a NULL pointer. */
-HIST_ENTRY *
-current_history ()
-{
- return ((history_offset == history_length) || the_history == 0)
- ? (HIST_ENTRY *)NULL
- : the_history[history_offset];
-}
-
-/* Back up history_offset to the previous history entry, and return
- a pointer to that entry. If there is no previous entry then return
- a NULL pointer. */
-HIST_ENTRY *
-previous_history ()
-{
- return history_offset ? the_history[--history_offset] : (HIST_ENTRY *)NULL;
-}
-
-/* Move history_offset forward to the next history entry, and return
- a pointer to that entry. If there is no next entry then return a
- NULL pointer. */
-HIST_ENTRY *
-next_history ()
-{
- return (history_offset == history_length) ? (HIST_ENTRY *)NULL : the_history[++history_offset];
-}
-
-/* Return the history entry which is logically at OFFSET in the history array.
- OFFSET is relative to history_base. */
-HIST_ENTRY *
-history_get (offset)
- int offset;
-{
- int local_index;
-
- local_index = offset - history_base;
- return (local_index >= history_length || local_index < 0 || !the_history)
- ? (HIST_ENTRY *)NULL
- : the_history[local_index];
-}
-
-/* Place STRING at the end of the history list. The data field
- is set to NULL. */
-void
-add_history (string)
- const char *string;
-{
- HIST_ENTRY *temp;
-
- if (history_stifled && (history_length == history_max_entries))
- {
- register int i;
-
- /* If the history is stifled, and history_length is zero,
- and it equals history_max_entries, we don't save items. */
- if (history_length == 0)
- return;
-
- /* If there is something in the slot, then remove it. */
- if (the_history[0])
- {
- free (the_history[0]->line);
- free (the_history[0]);
- }
-
- /* Copy the rest of the entries, moving down one slot. */
- for (i = 0; i < history_length; i++)
- the_history[i] = the_history[i + 1];
-
- history_base++;
- }
- else
- {
- if (history_size == 0)
- {
- history_size = DEFAULT_HISTORY_GROW_SIZE;
- the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *));
- history_length = 1;
- }
- else
- {
- if (history_length == (history_size - 1))
- {
- history_size += DEFAULT_HISTORY_GROW_SIZE;
- the_history = (HIST_ENTRY **)
- xrealloc (the_history, history_size * sizeof (HIST_ENTRY *));
- }
- history_length++;
- }
- }
-
- temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
- temp->line = savestring (string);
- temp->data = (char *)NULL;
-
- the_history[history_length] = (HIST_ENTRY *)NULL;
- the_history[history_length - 1] = temp;
-}
-
-/* Make the history entry at WHICH have LINE and DATA. This returns
- the old entry so you can dispose of the data. In the case of an
- invalid WHICH, a NULL pointer is returned. */
-HIST_ENTRY *
-replace_history_entry (which, line, data)
- int which;
- const char *line;
- histdata_t data;
-{
- HIST_ENTRY *temp, *old_value;
-
- if (which >= history_length)
- return ((HIST_ENTRY *)NULL);
-
- temp = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
- old_value = the_history[which];
-
- temp->line = savestring (line);
- temp->data = data;
- the_history[which] = temp;
-
- return (old_value);
-}
-
-/* Remove history element WHICH from the history. The removed
- element is returned to you so you can free the line, data,
- and containing structure. */
-HIST_ENTRY *
-remove_history (which)
- int which;
-{
- HIST_ENTRY *return_value;
- register int i;
-
- if (which >= history_length || !history_length)
- return_value = (HIST_ENTRY *)NULL;
- else
- {
- return_value = the_history[which];
-
- for (i = which; i < history_length; i++)
- the_history[i] = the_history[i + 1];
-
- history_length--;
- }
-
- return (return_value);
-}
-
-/* Stifle the history list, remembering only MAX number of lines. */
-void
-stifle_history (max)
- int max;
-{
- register int i, j;
-
- if (max < 0)
- max = 0;
-
- if (history_length > max)
- {
- /* This loses because we cannot free the data. */
- for (i = 0, j = history_length - max; i < j; i++)
- {
- free (the_history[i]->line);
- free (the_history[i]);
- }
-
- history_base = i;
- for (j = 0, i = history_length - max; j < max; i++, j++)
- the_history[j] = the_history[i];
- the_history[j] = (HIST_ENTRY *)NULL;
- history_length = j;
- }
-
- history_stifled = 1;
- max_input_history = history_max_entries = max;
-}
-
-/* Stop stifling the history. This returns the previous maximum
- number of history entries. The value is positive if the history
- was stifled, negative if it wasn't. */
-int
-unstifle_history ()
-{
- if (history_stifled)
- {
- history_stifled = 0;
- return (history_max_entries);
- }
- else
- return (-history_max_entries);
-}
-
-int
-history_is_stifled ()
-{
- return (history_stifled);
-}
-
-void
-clear_history ()
-{
- register int i;
-
- /* This loses because we cannot free the data. */
- for (i = 0; i < history_length; i++)
- {
- free (the_history[i]->line);
- free (the_history[i]);
- the_history[i] = (HIST_ENTRY *)NULL;
- }
-
- history_offset = history_length = 0;
-}
diff --git a/readline-4.3/history.h b/readline-4.3/history.h
deleted file mode 100644
index 58b5de4..0000000
--- a/readline-4.3/history.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/* History.h -- the names of functions that you can call in history. */
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _HISTORY_H_
-#define _HISTORY_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined READLINE_LIBRARY
-# include "rlstdc.h"
-# include "rltypedefs.h"
-#else
-# include <readline/rlstdc.h>
-# include <readline/rltypedefs.h>
-#endif
-
-#ifdef __STDC__
-typedef void *histdata_t;
-#else
-typedef char *histdata_t;
-#endif
-
-/* The structure used to store a history entry. */
-typedef struct _hist_entry {
- char *line;
- histdata_t data;
-} HIST_ENTRY;
-
-/* A structure used to pass the current state of the history stuff around. */
-typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
-} HISTORY_STATE;
-
-/* Flag values for the `flags' member of HISTORY_STATE. */
-#define HS_STIFLED 0x01
-
-/* Initialization and state management. */
-
-/* Begin a session in which the history functions might be used. This
- just initializes the interactive variables. */
-extern void using_history PARAMS((void));
-
-/* Return the current HISTORY_STATE of the history. */
-extern HISTORY_STATE *history_get_history_state PARAMS((void));
-
-/* Set the state of the current history array to STATE. */
-extern void history_set_history_state PARAMS((HISTORY_STATE *));
-
-/* Manage the history list. */
-
-/* Place STRING at the end of the history list.
- The associated data field (if any) is set to NULL. */
-extern void add_history PARAMS((const char *));
-
-/* A reasonably useless function, only here for completeness. WHICH
- is the magic number that tells us which element to delete. The
- elements are numbered from 0. */
-extern HIST_ENTRY *remove_history PARAMS((int));
-
-/* Make the history entry at WHICH have LINE and DATA. This returns
- the old entry so you can dispose of the data. In the case of an
- invalid WHICH, a NULL pointer is returned. */
-extern HIST_ENTRY *replace_history_entry PARAMS((int, const char *, histdata_t));
-
-/* Clear the history list and start over. */
-extern void clear_history PARAMS((void));
-
-/* Stifle the history list, remembering only MAX number of entries. */
-extern void stifle_history PARAMS((int));
-
-/* Stop stifling the history. This returns the previous amount the
- history was stifled by. The value is positive if the history was
- stifled, negative if it wasn't. */
-extern int unstifle_history PARAMS((void));
-
-/* Return 1 if the history is stifled, 0 if it is not. */
-extern int history_is_stifled PARAMS((void));
-
-/* Information about the history list. */
-
-/* Return a NULL terminated array of HIST_ENTRY which is the current input
- history. Element 0 of this list is the beginning of time. If there
- is no history, return NULL. */
-extern HIST_ENTRY **history_list PARAMS((void));
-
-/* Returns the number which says what history element we are now
- looking at. */
-extern int where_history PARAMS((void));
-
-/* Return the history entry at the current position, as determined by
- history_offset. If there is no entry there, return a NULL pointer. */
-extern HIST_ENTRY *current_history PARAMS((void));
-
-/* Return the history entry which is logically at OFFSET in the history
- array. OFFSET is relative to history_base. */
-extern HIST_ENTRY *history_get PARAMS((int));
-
-/* Return the number of bytes that the primary history entries are using.
- This just adds up the lengths of the_history->lines. */
-extern int history_total_bytes PARAMS((void));
-
-/* Moving around the history list. */
-
-/* Set the position in the history list to POS. */
-extern int history_set_pos PARAMS((int));
-
-/* Back up history_offset to the previous history entry, and return
- a pointer to that entry. If there is no previous entry, return
- a NULL pointer. */
-extern HIST_ENTRY *previous_history PARAMS((void));
-
-/* Move history_offset forward to the next item in the input_history,
- and return the a pointer to that entry. If there is no next entry,
- return a NULL pointer. */
-extern HIST_ENTRY *next_history PARAMS((void));
-
-/* Searching the history list. */
-
-/* Search the history for STRING, starting at history_offset.
- If DIRECTION < 0, then the search is through previous entries,
- else through subsequent. If the string is found, then
- current_history () is the history entry, and the value of this function
- is the offset in the line of that history entry that the string was
- found in. Otherwise, nothing is changed, and a -1 is returned. */
-extern int history_search PARAMS((const char *, int));
-
-/* Search the history for STRING, starting at history_offset.
- The search is anchored: matching lines must begin with string.
- DIRECTION is as in history_search(). */
-extern int history_search_prefix PARAMS((const char *, int));
-
-/* Search for STRING in the history list, starting at POS, an
- absolute index into the list. DIR, if negative, says to search
- backwards from POS, else forwards.
- Returns the absolute index of the history element where STRING
- was found, or -1 otherwise. */
-extern int history_search_pos PARAMS((const char *, int, int));
-
-/* Managing the history file. */
-
-/* Add the contents of FILENAME to the history list, a line at a time.
- If FILENAME is NULL, then read from ~/.history. Returns 0 if
- successful, or errno if not. */
-extern int read_history PARAMS((const char *));
-
-/* Read a range of lines from FILENAME, adding them to the history list.
- Start reading at the FROM'th line and end at the TO'th. If FROM
- is zero, start at the beginning. If TO is less than FROM, read
- until the end of the file. If FILENAME is NULL, then read from
- ~/.history. Returns 0 if successful, or errno if not. */
-extern int read_history_range PARAMS((const char *, int, int));
-
-/* Write the current history to FILENAME. If FILENAME is NULL,
- then write the history list to ~/.history. Values returned
- are as in read_history (). */
-extern int write_history PARAMS((const char *));
-
-/* Append NELEMENT entries to FILENAME. The entries appended are from
- the end of the list minus NELEMENTs up to the end of the list. */
-extern int append_history PARAMS((int, const char *));
-
-/* Truncate the history file, leaving only the last NLINES lines. */
-extern int history_truncate_file PARAMS((const char *, int));
-
-/* History expansion. */
-
-/* Expand the string STRING, placing the result into OUTPUT, a pointer
- to a string. Returns:
-
- 0) If no expansions took place (or, if the only change in
- the text was the de-slashifying of the history expansion
- character)
- 1) If expansions did take place
- -1) If there was an error in expansion.
- 2) If the returned line should just be printed.
-
- If an error ocurred in expansion, then OUTPUT contains a descriptive
- error message. */
-extern int history_expand PARAMS((char *, char **));
-
-/* Extract a string segment consisting of the FIRST through LAST
- arguments present in STRING. Arguments are broken up as in
- the shell. */
-extern char *history_arg_extract PARAMS((int, int, const char *));
-
-/* Return the text of the history event beginning at the current
- offset into STRING. Pass STRING with *INDEX equal to the
- history_expansion_char that begins this specification.
- DELIMITING_QUOTE is a character that is allowed to end the string
- specification for what to search for in addition to the normal
- characters `:', ` ', `\t', `\n', and sometimes `?'. */
-extern char *get_history_event PARAMS((const char *, int *, int));
-
-/* Return an array of tokens, much as the shell might. The tokens are
- parsed out of STRING. */
-extern char **history_tokenize PARAMS((const char *));
-
-/* Exported history variables. */
-extern int history_base;
-extern int history_length;
-extern int history_max_entries;
-extern char history_expansion_char;
-extern char history_subst_char;
-extern char *history_word_delimiters;
-extern char history_comment_char;
-extern char *history_no_expand_chars;
-extern char *history_search_delimiter_chars;
-extern int history_quotes_inhibit_expansion;
-
-/* Backwards compatibility */
-extern int max_input_history;
-
-/* If set, this function is called to decide whether or not a particular
- history expansion should be treated as a special case for the calling
- application and not expanded. */
-extern rl_linebuf_func_t *history_inhibit_expansion_function;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !_HISTORY_H_ */
diff --git a/readline-4.3/histsearch.c b/readline-4.3/histsearch.c
deleted file mode 100644
index d94fd6c..0000000
--- a/readline-4.3/histsearch.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* histsearch.c -- searching the history list. */
-
-/* Copyright (C) 1989, 1992 Free Software Foundation, Inc.
-
- This file contains the GNU History Library (the Library), a set of
- routines for managing the text of previously typed lines.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# ifdef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#include "history.h"
-#include "histlib.h"
-
-/* The list of alternate characters that can delimit a history search
- string. */
-char *history_search_delimiter_chars = (char *)NULL;
-
-static int history_search_internal PARAMS((const char *, int, int));
-
-/* Search the history for STRING, starting at history_offset.
- If DIRECTION < 0, then the search is through previous entries, else
- through subsequent. If ANCHORED is non-zero, the string must
- appear at the beginning of a history line, otherwise, the string
- may appear anywhere in the line. If the string is found, then
- current_history () is the history entry, and the value of this
- function is the offset in the line of that history entry that the
- string was found in. Otherwise, nothing is changed, and a -1 is
- returned. */
-
-static int
-history_search_internal (string, direction, anchored)
- const char *string;
- int direction, anchored;
-{
- register int i, reverse;
- register char *line;
- register int line_index;
- int string_len;
- HIST_ENTRY **the_history; /* local */
-
- i = history_offset;
- reverse = (direction < 0);
-
- /* Take care of trivial cases first. */
- if (string == 0 || *string == '\0')
- return (-1);
-
- if (!history_length || ((i == history_length) && !reverse))
- return (-1);
-
- if (reverse && (i == history_length))
- i--;
-
-#define NEXT_LINE() do { if (reverse) i--; else i++; } while (0)
-
- the_history = history_list ();
- string_len = strlen (string);
- while (1)
- {
- /* Search each line in the history list for STRING. */
-
- /* At limit for direction? */
- if ((reverse && i < 0) || (!reverse && i == history_length))
- return (-1);
-
- line = the_history[i]->line;
- line_index = strlen (line);
-
- /* If STRING is longer than line, no match. */
- if (string_len > line_index)
- {
- NEXT_LINE ();
- continue;
- }
-
- /* Handle anchored searches first. */
- if (anchored == ANCHORED_SEARCH)
- {
- if (STREQN (string, line, string_len))
- {
- history_offset = i;
- return (0);
- }
-
- NEXT_LINE ();
- continue;
- }
-
- /* Do substring search. */
- if (reverse)
- {
- line_index -= string_len;
-
- while (line_index >= 0)
- {
- if (STREQN (string, line + line_index, string_len))
- {
- history_offset = i;
- return (line_index);
- }
- line_index--;
- }
- }
- else
- {
- register int limit;
-
- limit = line_index - string_len + 1;
- line_index = 0;
-
- while (line_index < limit)
- {
- if (STREQN (string, line + line_index, string_len))
- {
- history_offset = i;
- return (line_index);
- }
- line_index++;
- }
- }
- NEXT_LINE ();
- }
-}
-
-/* Do a non-anchored search for STRING through the history in DIRECTION. */
-int
-history_search (string, direction)
- const char *string;
- int direction;
-{
- return (history_search_internal (string, direction, NON_ANCHORED_SEARCH));
-}
-
-/* Do an anchored search for string through the history in DIRECTION. */
-int
-history_search_prefix (string, direction)
- const char *string;
- int direction;
-{
- return (history_search_internal (string, direction, ANCHORED_SEARCH));
-}
-
-/* Search for STRING in the history list. DIR is < 0 for searching
- backwards. POS is an absolute index into the history list at
- which point to begin searching. */
-int
-history_search_pos (string, dir, pos)
- const char *string;
- int dir, pos;
-{
- int ret, old;
-
- old = where_history ();
- history_set_pos (pos);
- if (history_search (string, dir) == -1)
- {
- history_set_pos (old);
- return (-1);
- }
- ret = where_history ();
- history_set_pos (old);
- return ret;
-}
diff --git a/readline-4.3/input.c b/readline-4.3/input.c
deleted file mode 100644
index 841f05d..0000000
--- a/readline-4.3/input.c
+++ /dev/null
@@ -1,540 +0,0 @@
-/* input.c -- character input functions for readline. */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-# include <sys/file.h>
-#endif /* HAVE_SYS_FILE_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_SELECT)
-# if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX)
-# include <sys/time.h>
-# endif
-#endif /* HAVE_SELECT */
-#if defined (HAVE_SYS_SELECT_H)
-# include <sys/select.h>
-#endif
-
-#if defined (FIONREAD_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-/* What kind of non-blocking I/O do we have? */
-#if !defined (O_NDELAY) && defined (O_NONBLOCK)
-# define O_NDELAY O_NONBLOCK /* Posix style */
-#endif
-
-/* Non-null means it is a pointer to a function to run while waiting for
- character input. */
-rl_hook_func_t *rl_event_hook = (rl_hook_func_t *)NULL;
-
-rl_getc_func_t *rl_getc_function = rl_getc;
-
-static int _keyboard_input_timeout = 100000; /* 0.1 seconds; it's in usec */
-
-static int ibuffer_space PARAMS((void));
-static int rl_get_char PARAMS((int *));
-static int rl_gather_tyi PARAMS((void));
-
-/* **************************************************************** */
-/* */
-/* Character Input Buffering */
-/* */
-/* **************************************************************** */
-
-static int pop_index, push_index;
-static unsigned char ibuffer[512];
-static int ibuffer_len = sizeof (ibuffer) - 1;
-
-#define any_typein (push_index != pop_index)
-
-int
-_rl_any_typein ()
-{
- return any_typein;
-}
-
-/* Return the amount of space available in the buffer for stuffing
- characters. */
-static int
-ibuffer_space ()
-{
- if (pop_index > push_index)
- return (pop_index - push_index - 1);
- else
- return (ibuffer_len - (push_index - pop_index));
-}
-
-/* Get a key from the buffer of characters to be read.
- Return the key in KEY.
- Result is KEY if there was a key, or 0 if there wasn't. */
-static int
-rl_get_char (key)
- int *key;
-{
- if (push_index == pop_index)
- return (0);
-
- *key = ibuffer[pop_index++];
-
- if (pop_index >= ibuffer_len)
- pop_index = 0;
-
- return (1);
-}
-
-/* Stuff KEY into the *front* of the input buffer.
- Returns non-zero if successful, zero if there is
- no space left in the buffer. */
-int
-_rl_unget_char (key)
- int key;
-{
- if (ibuffer_space ())
- {
- pop_index--;
- if (pop_index < 0)
- pop_index = ibuffer_len - 1;
- ibuffer[pop_index] = key;
- return (1);
- }
- return (0);
-}
-
-/* If a character is available to be read, then read it and stuff it into
- IBUFFER. Otherwise, just return. Returns number of characters read
- (0 if none available) and -1 on error (EIO). */
-static int
-rl_gather_tyi ()
-{
- int tty;
- register int tem, result;
- int chars_avail;
- char input;
-#if defined(HAVE_SELECT)
- fd_set readfds, exceptfds;
- struct timeval timeout;
-#endif
-
- tty = fileno (rl_instream);
-
-#if defined (HAVE_SELECT)
- FD_ZERO (&readfds);
- FD_ZERO (&exceptfds);
- FD_SET (tty, &readfds);
- FD_SET (tty, &exceptfds);
- timeout.tv_sec = 0;
- timeout.tv_usec = _keyboard_input_timeout;
- result = select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout);
- if (result <= 0)
- return 0; /* Nothing to read. */
-#endif
-
- result = -1;
-#if defined (FIONREAD)
- errno = 0;
- result = ioctl (tty, FIONREAD, &chars_avail);
- if (result == -1 && errno == EIO)
- return -1;
-#endif
-
-#if defined (O_NDELAY)
- if (result == -1)
- {
- tem = fcntl (tty, F_GETFL, 0);
-
- fcntl (tty, F_SETFL, (tem | O_NDELAY));
- chars_avail = read (tty, &input, 1);
-
- fcntl (tty, F_SETFL, tem);
- if (chars_avail == -1 && errno == EAGAIN)
- return 0;
- }
-#endif /* O_NDELAY */
-
- /* If there's nothing available, don't waste time trying to read
- something. */
- if (chars_avail <= 0)
- return 0;
-
- tem = ibuffer_space ();
-
- if (chars_avail > tem)
- chars_avail = tem;
-
- /* One cannot read all of the available input. I can only read a single
- character at a time, or else programs which require input can be
- thwarted. If the buffer is larger than one character, I lose.
- Damn! */
- if (tem < ibuffer_len)
- chars_avail = 0;
-
- if (result != -1)
- {
- while (chars_avail--)
- rl_stuff_char ((*rl_getc_function) (rl_instream));
- }
- else
- {
- if (chars_avail)
- rl_stuff_char (input);
- }
-
- return 1;
-}
-
-int
-rl_set_keyboard_input_timeout (u)
- int u;
-{
- int o;
-
- o = _keyboard_input_timeout;
- if (u > 0)
- _keyboard_input_timeout = u;
- return (o);
-}
-
-/* Is there input available to be read on the readline input file
- descriptor? Only works if the system has select(2) or FIONREAD.
- Uses the value of _keyboard_input_timeout as the timeout; if another
- readline function wants to specify a timeout and not leave it up to
- the user, it should use _rl_input_queued(timeout_value_in_microseconds)
- instead. */
-int
-_rl_input_available ()
-{
-#if defined(HAVE_SELECT)
- fd_set readfds, exceptfds;
- struct timeval timeout;
-#endif
-#if !defined (HAVE_SELECT) && defined(FIONREAD)
- int chars_avail;
-#endif
- int tty;
-
- tty = fileno (rl_instream);
-
-#if defined (HAVE_SELECT)
- FD_ZERO (&readfds);
- FD_ZERO (&exceptfds);
- FD_SET (tty, &readfds);
- FD_SET (tty, &exceptfds);
- timeout.tv_sec = 0;
- timeout.tv_usec = _keyboard_input_timeout;
- return (select (tty + 1, &readfds, (fd_set *)NULL, &exceptfds, &timeout) > 0);
-#else
-
-#if defined (FIONREAD)
- if (ioctl (tty, FIONREAD, &chars_avail) == 0)
- return (chars_avail);
-#endif
-
-#endif
-
- return 0;
-}
-
-int
-_rl_input_queued (t)
- int t;
-{
- int old_timeout, r;
-
- old_timeout = rl_set_keyboard_input_timeout (t);
- r = _rl_input_available ();
- rl_set_keyboard_input_timeout (old_timeout);
- return r;
-}
-
-void
-_rl_insert_typein (c)
- int c;
-{
- int key, t, i;
- char *string;
-
- i = key = 0;
- string = (char *)xmalloc (ibuffer_len + 1);
- string[i++] = (char) c;
-
- while ((t = rl_get_char (&key)) &&
- _rl_keymap[key].type == ISFUNC &&
- _rl_keymap[key].function == rl_insert)
- string[i++] = key;
-
- if (t)
- _rl_unget_char (key);
-
- string[i] = '\0';
- rl_insert_text (string);
- free (string);
-}
-
-/* Add KEY to the buffer of characters to be read. Returns 1 if the
- character was stuffed correctly; 0 otherwise. */
-int
-rl_stuff_char (key)
- int key;
-{
- if (ibuffer_space () == 0)
- return 0;
-
- if (key == EOF)
- {
- key = NEWLINE;
- rl_pending_input = EOF;
- RL_SETSTATE (RL_STATE_INPUTPENDING);
- }
- ibuffer[push_index++] = key;
- if (push_index >= ibuffer_len)
- push_index = 0;
-
- return 1;
-}
-
-/* Make C be the next command to be executed. */
-int
-rl_execute_next (c)
- int c;
-{
- rl_pending_input = c;
- RL_SETSTATE (RL_STATE_INPUTPENDING);
- return 0;
-}
-
-/* Clear any pending input pushed with rl_execute_next() */
-int
-rl_clear_pending_input ()
-{
- rl_pending_input = 0;
- RL_UNSETSTATE (RL_STATE_INPUTPENDING);
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Character Input */
-/* */
-/* **************************************************************** */
-
-/* Read a key, including pending input. */
-int
-rl_read_key ()
-{
- int c;
-
- rl_key_sequence_length++;
-
- if (rl_pending_input)
- {
- c = rl_pending_input;
- rl_clear_pending_input ();
- }
- else
- {
- /* If input is coming from a macro, then use that. */
- if (c = _rl_next_macro_key ())
- return (c);
-
- /* If the user has an event function, then call it periodically. */
- if (rl_event_hook)
- {
- while (rl_event_hook && rl_get_char (&c) == 0)
- {
- (*rl_event_hook) ();
- if (rl_done) /* XXX - experimental */
- return ('\n');
- if (rl_gather_tyi () < 0) /* XXX - EIO */
- {
- rl_done = 1;
- return ('\n');
- }
- }
- }
- else
- {
- if (rl_get_char (&c) == 0)
- c = (*rl_getc_function) (rl_instream);
- }
- }
-
- return (c);
-}
-
-int
-rl_getc (stream)
- FILE *stream;
-{
- int result;
- unsigned char c;
-
- while (1)
- {
- result = read (fileno (stream), &c, sizeof (unsigned char));
-
- if (result == sizeof (unsigned char))
- return (c);
-
- /* If zero characters are returned, then the file that we are
- reading from is empty! Return EOF in that case. */
- if (result == 0)
- return (EOF);
-
-#if defined (__BEOS__)
- if (errno == EINTR)
- continue;
-#endif
-
-#if defined (EWOULDBLOCK)
-# define X_EWOULDBLOCK EWOULDBLOCK
-#else
-# define X_EWOULDBLOCK -99
-#endif
-
-#if defined (EAGAIN)
-# define X_EAGAIN EAGAIN
-#else
-# define X_EAGAIN -99
-#endif
-
- if (errno == X_EWOULDBLOCK || errno == X_EAGAIN)
- {
- if (sh_unset_nodelay_mode (fileno (stream)) < 0)
- return (EOF);
- continue;
- }
-
-#undef X_EWOULDBLOCK
-#undef X_EAGAIN
-
- /* If the error that we received was SIGINT, then try again,
- this is simply an interrupted system call to read ().
- Otherwise, some error ocurred, also signifying EOF. */
- if (errno != EINTR)
- return (EOF);
- }
-}
-
-#if defined (HANDLE_MULTIBYTE)
-/* read multibyte char */
-int
-_rl_read_mbchar (mbchar, size)
- char *mbchar;
- int size;
-{
- int mb_len = 0;
- size_t mbchar_bytes_length;
- wchar_t wc;
- mbstate_t ps, ps_back;
-
- memset(&ps, 0, sizeof (mbstate_t));
- memset(&ps_back, 0, sizeof (mbstate_t));
-
- while (mb_len < size)
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- mbchar[mb_len++] = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
- if (mbchar_bytes_length == (size_t)(-1))
- break; /* invalid byte sequence for the current locale */
- else if (mbchar_bytes_length == (size_t)(-2))
- {
- /* shorted bytes */
- ps = ps_back;
- continue;
- }
- else if (mbchar_bytes_length > (size_t)(0))
- break;
- }
-
- return mb_len;
-}
-
-/* Read a multibyte-character string whose first character is FIRST into
- the buffer MB of length MBLEN. Returns the last character read, which
- may be FIRST. Used by the search functions, among others. Very similar
- to _rl_read_mbchar. */
-int
-_rl_read_mbstring (first, mb, mblen)
- int first;
- char *mb;
- int mblen;
-{
- int i, c;
- mbstate_t ps;
-
- c = first;
- memset (mb, 0, mblen);
- for (i = 0; i < mblen; i++)
- {
- mb[i] = (char)c;
- memset (&ps, 0, sizeof (mbstate_t));
- if (_rl_get_char_len (mb, &ps) == -2)
- {
- /* Read more for multibyte character */
- RL_SETSTATE (RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE (RL_STATE_MOREINPUT);
- }
- else
- break;
- }
- return c;
-}
-#endif /* HANDLE_MULTIBYTE */
diff --git a/readline-4.3/isearch.c b/readline-4.3/isearch.c
deleted file mode 100644
index c1ea5b3..0000000
--- a/readline-4.3/isearch.c
+++ /dev/null
@@ -1,560 +0,0 @@
-/* **************************************************************** */
-/* */
-/* I-Search and Searching */
-/* */
-/* **************************************************************** */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#include <stdio.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif
-
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* Variables exported to other files in the readline library. */
-char *_rl_isearch_terminators = (char *)NULL;
-
-/* Variables imported from other files in the readline library. */
-extern HIST_ENTRY *_rl_saved_line_for_history;
-
-/* Forward declarations */
-static int rl_search_history PARAMS((int, int));
-
-/* Last line found by the current incremental search, so we don't `find'
- identical lines many times in a row. */
-static char *prev_line_found;
-
-/* Last search string and its length. */
-static char *last_isearch_string;
-static int last_isearch_string_len;
-
-static char *default_isearch_terminators = "\033\012";
-
-/* Search backwards through the history looking for a string which is typed
- interactively. Start with the current line. */
-int
-rl_reverse_search_history (sign, key)
- int sign, key;
-{
- return (rl_search_history (-sign, key));
-}
-
-/* Search forwards through the history looking for a string which is typed
- interactively. Start with the current line. */
-int
-rl_forward_search_history (sign, key)
- int sign, key;
-{
- return (rl_search_history (sign, key));
-}
-
-/* Display the current state of the search in the echo-area.
- SEARCH_STRING contains the string that is being searched for,
- DIRECTION is zero for forward, or 1 for reverse,
- WHERE is the history list number of the current line. If it is
- -1, then this line is the starting one. */
-static void
-rl_display_search (search_string, reverse_p, where)
- char *search_string;
- int reverse_p, where;
-{
- char *message;
- int msglen, searchlen;
-
- searchlen = (search_string && *search_string) ? strlen (search_string) : 0;
-
- message = (char *)xmalloc (searchlen + 33);
- msglen = 0;
-
-#if defined (NOTDEF)
- if (where != -1)
- {
- sprintf (message, "[%d]", where + history_base);
- msglen = strlen (message);
- }
-#endif /* NOTDEF */
-
- message[msglen++] = '(';
-
- if (reverse_p)
- {
- strcpy (message + msglen, "reverse-");
- msglen += 8;
- }
-
- strcpy (message + msglen, "i-search)`");
- msglen += 10;
-
- if (search_string)
- {
- strcpy (message + msglen, search_string);
- msglen += searchlen;
- }
-
- strcpy (message + msglen, "': ");
-
- rl_message ("%s", message);
- free (message);
- (*rl_redisplay_function) ();
-}
-
-/* Search through the history looking for an interactively typed string.
- This is analogous to i-search. We start the search in the current line.
- DIRECTION is which direction to search; >= 0 means forward, < 0 means
- backwards. */
-static int
-rl_search_history (direction, invoking_key)
- int direction, invoking_key;
-{
- /* The string that the user types in to search for. */
- char *search_string;
-
- /* The current length of SEARCH_STRING. */
- int search_string_index;
-
- /* The amount of space that SEARCH_STRING has allocated to it. */
- int search_string_size;
-
- /* The list of lines to search through. */
- char **lines, *allocated_line;
-
- /* The length of LINES. */
- int hlen;
-
- /* Where we get LINES from. */
- HIST_ENTRY **hlist;
-
- register int i;
- int orig_point, orig_mark, orig_line, last_found_line;
- int c, found, failed, sline_len;
- int n, wstart, wlen;
-#if defined (HANDLE_MULTIBYTE)
- char mb[MB_LEN_MAX];
-#endif
-
- /* The line currently being searched. */
- char *sline;
-
- /* Offset in that line. */
- int line_index;
-
- /* Non-zero if we are doing a reverse search. */
- int reverse;
-
- /* The list of characters which terminate the search, but are not
- subsequently executed. If the variable isearch-terminators has
- been set, we use that value, otherwise we use ESC and C-J. */
- char *isearch_terminators;
-
- RL_SETSTATE(RL_STATE_ISEARCH);
- orig_point = rl_point;
- orig_mark = rl_mark;
- last_found_line = orig_line = where_history ();
- reverse = direction < 0;
- hlist = history_list ();
- allocated_line = (char *)NULL;
-
- isearch_terminators = _rl_isearch_terminators ? _rl_isearch_terminators
- : default_isearch_terminators;
-
- /* Create an arrary of pointers to the lines that we want to search. */
- rl_maybe_replace_line ();
- i = 0;
- if (hlist)
- for (i = 0; hlist[i]; i++);
-
- /* Allocate space for this many lines, +1 for the current input line,
- and remember those lines. */
- lines = (char **)xmalloc ((1 + (hlen = i)) * sizeof (char *));
- for (i = 0; i < hlen; i++)
- lines[i] = hlist[i]->line;
-
- if (_rl_saved_line_for_history)
- lines[i] = _rl_saved_line_for_history->line;
- else
- {
- /* Keep track of this so we can free it. */
- allocated_line = (char *)xmalloc (1 + strlen (rl_line_buffer));
- strcpy (allocated_line, &rl_line_buffer[0]);
- lines[i] = allocated_line;
- }
-
- hlen++;
-
- /* The line where we start the search. */
- i = orig_line;
-
- rl_save_prompt ();
-
- /* Initialize search parameters. */
- search_string = (char *)xmalloc (search_string_size = 128);
- *search_string = '\0';
- search_string_index = 0;
- prev_line_found = (char *)0; /* XXX */
-
- /* Normalize DIRECTION into 1 or -1. */
- direction = (direction >= 0) ? 1 : -1;
-
- rl_display_search (search_string, reverse, -1);
-
- sline = rl_line_buffer;
- sline_len = strlen (sline);
- line_index = rl_point;
-
- found = failed = 0;
- for (;;)
- {
- rl_command_func_t *f = (rl_command_func_t *)NULL;
-
- /* Read a key and decide how to proceed. */
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- c = _rl_read_mbstring (c, mb, MB_LEN_MAX);
-#endif
-
- /* Translate the keys we do something with to opcodes. */
- if (c >= 0 && _rl_keymap[c].type == ISFUNC)
- {
- f = _rl_keymap[c].function;
-
- if (f == rl_reverse_search_history)
- c = reverse ? -1 : -2;
- else if (f == rl_forward_search_history)
- c = !reverse ? -1 : -2;
- else if (f == rl_rubout)
- c = -3;
- else if (c == CTRL ('G'))
- c = -4;
- else if (c == CTRL ('W')) /* XXX */
- c = -5;
- else if (c == CTRL ('Y')) /* XXX */
- c = -6;
- }
-
- /* The characters in isearch_terminators (set from the user-settable
- variable isearch-terminators) are used to terminate the search but
- not subsequently execute the character as a command. The default
- value is "\033\012" (ESC and C-J). */
- if (strchr (isearch_terminators, c))
- {
- /* ESC still terminates the search, but if there is pending
- input or if input arrives within 0.1 seconds (on systems
- with select(2)) it is used as a prefix character
- with rl_execute_next. WATCH OUT FOR THIS! This is intended
- to allow the arrow keys to be used like ^F and ^B are used
- to terminate the search and execute the movement command.
- XXX - since _rl_input_available depends on the application-
- settable keyboard timeout value, this could alternatively
- use _rl_input_queued(100000) */
- if (c == ESC && _rl_input_available ())
- rl_execute_next (ESC);
- break;
- }
-
-#define ENDSRCH_CHAR(c) \
- ((CTRL_CHAR (c) || META_CHAR (c) || (c) == RUBOUT) && ((c) != CTRL ('G')))
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- if (c >= 0 && strlen (mb) == 1 && ENDSRCH_CHAR (c))
- {
- /* This sets rl_pending_input to c; it will be picked up the next
- time rl_read_key is called. */
- rl_execute_next (c);
- break;
- }
- }
- else
-#endif
- if (c >= 0 && ENDSRCH_CHAR (c))
- {
- /* This sets rl_pending_input to c; it will be picked up the next
- time rl_read_key is called. */
- rl_execute_next (c);
- break;
- }
-
- switch (c)
- {
- case -1:
- if (search_string_index == 0)
- {
- if (last_isearch_string)
- {
- search_string_size = 64 + last_isearch_string_len;
- search_string = (char *)xrealloc (search_string, search_string_size);
- strcpy (search_string, last_isearch_string);
- search_string_index = last_isearch_string_len;
- rl_display_search (search_string, reverse, -1);
- break;
- }
- continue;
- }
- else if (reverse)
- --line_index;
- else if (line_index != sline_len)
- ++line_index;
- else
- rl_ding ();
- break;
-
- /* switch directions */
- case -2:
- direction = -direction;
- reverse = direction < 0;
- break;
-
- /* delete character from search string. */
- case -3: /* C-H, DEL */
- /* This is tricky. To do this right, we need to keep a
- stack of search positions for the current search, with
- sentinels marking the beginning and end. But this will
- do until we have a real isearch-undo. */
- if (search_string_index == 0)
- rl_ding ();
- else
- search_string[--search_string_index] = '\0';
-
- break;
-
- case -4: /* C-G */
- rl_replace_line (lines[orig_line], 0);
- rl_point = orig_point;
- rl_mark = orig_mark;
- rl_restore_prompt();
- rl_clear_message ();
- if (allocated_line)
- free (allocated_line);
- free (lines);
- RL_UNSETSTATE(RL_STATE_ISEARCH);
- return 0;
-
- case -5: /* C-W */
- /* skip over portion of line we already matched */
- wstart = rl_point + search_string_index;
- if (wstart >= rl_end)
- {
- rl_ding ();
- break;
- }
-
- /* if not in a word, move to one. */
- if (rl_alphabetic(rl_line_buffer[wstart]) == 0)
- {
- rl_ding ();
- break;
- }
- n = wstart;
- while (n < rl_end && rl_alphabetic(rl_line_buffer[n]))
- n++;
- wlen = n - wstart + 1;
- if (search_string_index + wlen + 1 >= search_string_size)
- {
- search_string_size += wlen + 1;
- search_string = (char *)xrealloc (search_string, search_string_size);
- }
- for (; wstart < n; wstart++)
- search_string[search_string_index++] = rl_line_buffer[wstart];
- search_string[search_string_index] = '\0';
- break;
-
- case -6: /* C-Y */
- /* skip over portion of line we already matched */
- wstart = rl_point + search_string_index;
- if (wstart >= rl_end)
- {
- rl_ding ();
- break;
- }
- n = rl_end - wstart + 1;
- if (search_string_index + n + 1 >= search_string_size)
- {
- search_string_size += n + 1;
- search_string = (char *)xrealloc (search_string, search_string_size);
- }
- for (n = wstart; n < rl_end; n++)
- search_string[search_string_index++] = rl_line_buffer[n];
- search_string[search_string_index] = '\0';
- break;
-
- default:
- /* Add character to search string and continue search. */
- if (search_string_index + 2 >= search_string_size)
- {
- search_string_size += 128;
- search_string = (char *)xrealloc (search_string, search_string_size);
- }
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- int j, l;
- for (j = 0, l = strlen (mb); j < l; )
- search_string[search_string_index++] = mb[j++];
- }
- else
-#endif
- search_string[search_string_index++] = c;
- search_string[search_string_index] = '\0';
- break;
- }
-
- for (found = failed = 0;;)
- {
- int limit = sline_len - search_string_index + 1;
-
- /* Search the current line. */
- while (reverse ? (line_index >= 0) : (line_index < limit))
- {
- if (STREQN (search_string, sline + line_index, search_string_index))
- {
- found++;
- break;
- }
- else
- line_index += direction;
- }
- if (found)
- break;
-
- /* Move to the next line, but skip new copies of the line
- we just found and lines shorter than the string we're
- searching for. */
- do
- {
- /* Move to the next line. */
- i += direction;
-
- /* At limit for direction? */
- if (reverse ? (i < 0) : (i == hlen))
- {
- failed++;
- break;
- }
-
- /* We will need these later. */
- sline = lines[i];
- sline_len = strlen (sline);
- }
- while ((prev_line_found && STREQ (prev_line_found, lines[i])) ||
- (search_string_index > sline_len));
-
- if (failed)
- break;
-
- /* Now set up the line for searching... */
- line_index = reverse ? sline_len - search_string_index : 0;
- }
-
- if (failed)
- {
- /* We cannot find the search string. Ding the bell. */
- rl_ding ();
- i = last_found_line;
- continue; /* XXX - was break */
- }
-
- /* We have found the search string. Just display it. But don't
- actually move there in the history list until the user accepts
- the location. */
- if (found)
- {
- prev_line_found = lines[i];
- rl_replace_line (lines[i], 0);
- rl_point = line_index;
- last_found_line = i;
- rl_display_search (search_string, reverse, (i == orig_line) ? -1 : i);
- }
- }
-
- /* The searching is over. The user may have found the string that she
- was looking for, or else she may have exited a failing search. If
- LINE_INDEX is -1, then that shows that the string searched for was
- not found. We use this to determine where to place rl_point. */
-
- /* First put back the original state. */
- strcpy (rl_line_buffer, lines[orig_line]);
-
- rl_restore_prompt ();
-
- /* Save the search string for possible later use. */
- FREE (last_isearch_string);
- last_isearch_string = search_string;
- last_isearch_string_len = search_string_index;
-
- if (last_found_line < orig_line)
- rl_get_previous_history (orig_line - last_found_line, 0);
- else
- rl_get_next_history (last_found_line - orig_line, 0);
-
- /* If the string was not found, put point at the end of the last matching
- line. If last_found_line == orig_line, we didn't find any matching
- history lines at all, so put point back in its original position. */
- if (line_index < 0)
- {
- if (last_found_line == orig_line)
- line_index = orig_point;
- else
- line_index = strlen (rl_line_buffer);
- rl_mark = orig_mark;
- }
-
- rl_point = line_index;
- /* Don't worry about where to put the mark here; rl_get_previous_history
- and rl_get_next_history take care of it. */
-
- rl_clear_message ();
-
- FREE (allocated_line);
- free (lines);
-
- RL_UNSETSTATE(RL_STATE_ISEARCH);
-
- return 0;
-}
diff --git a/readline-4.3/keymaps.c b/readline-4.3/keymaps.c
deleted file mode 100644
index 12506d3..0000000
--- a/readline-4.3/keymaps.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* keymaps.c -- Functions and keymaps for the GNU Readline library. */
-
-/* Copyright (C) 1988,1989 Free Software Foundation, Inc.
-
- This file is part of GNU Readline, a library for reading lines
- of text with interactive input and history editing.
-
- Readline is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- Readline is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Readline; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h> /* for FILE * definition for readline.h */
-
-#include "readline.h"
-#include "rlconf.h"
-
-#include "emacs_keymap.c"
-
-#if defined (VI_MODE)
-#include "vi_keymap.c"
-#endif
-
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Functions for manipulating Keymaps. */
-/* */
-/* **************************************************************** */
-
-
-/* Return a new, empty keymap.
- Free it with free() when you are done. */
-Keymap
-rl_make_bare_keymap ()
-{
- register int i;
- Keymap keymap = (Keymap)xmalloc (KEYMAP_SIZE * sizeof (KEYMAP_ENTRY));
-
- for (i = 0; i < KEYMAP_SIZE; i++)
- {
- keymap[i].type = ISFUNC;
- keymap[i].function = (rl_command_func_t *)NULL;
- }
-
- for (i = 'A'; i < ('Z' + 1); i++)
- {
- keymap[i].type = ISFUNC;
- keymap[i].function = rl_do_lowercase_version;
- }
-
- return (keymap);
-}
-
-/* Return a new keymap which is a copy of MAP. */
-Keymap
-rl_copy_keymap (map)
- Keymap map;
-{
- register int i;
- Keymap temp = rl_make_bare_keymap ();
-
- for (i = 0; i < KEYMAP_SIZE; i++)
- {
- temp[i].type = map[i].type;
- temp[i].function = map[i].function;
- }
- return (temp);
-}
-
-/* Return a new keymap with the printing characters bound to rl_insert,
- the uppercase Meta characters bound to run their lowercase equivalents,
- and the Meta digits bound to produce numeric arguments. */
-Keymap
-rl_make_keymap ()
-{
- register int i;
- Keymap newmap;
-
- newmap = rl_make_bare_keymap ();
-
- /* All ASCII printing characters are self-inserting. */
- for (i = ' '; i < 127; i++)
- newmap[i].function = rl_insert;
-
- newmap[TAB].function = rl_insert;
- newmap[RUBOUT].function = rl_rubout; /* RUBOUT == 127 */
- newmap[CTRL('H')].function = rl_rubout;
-
-#if KEYMAP_SIZE > 128
- /* Printing characters in some 8-bit character sets. */
- for (i = 128; i < 160; i++)
- newmap[i].function = rl_insert;
-
- /* ISO Latin-1 printing characters should self-insert. */
- for (i = 160; i < 256; i++)
- newmap[i].function = rl_insert;
-#endif /* KEYMAP_SIZE > 128 */
-
- return (newmap);
-}
-
-/* Free the storage associated with MAP. */
-void
-rl_discard_keymap (map)
- Keymap map;
-{
- int i;
-
- if (!map)
- return;
-
- for (i = 0; i < KEYMAP_SIZE; i++)
- {
- switch (map[i].type)
- {
- case ISFUNC:
- break;
-
- case ISKMAP:
- rl_discard_keymap ((Keymap)map[i].function);
- break;
-
- case ISMACR:
- free ((char *)map[i].function);
- break;
- }
- }
-}
diff --git a/readline-4.3/keymaps.h b/readline-4.3/keymaps.h
deleted file mode 100644
index 66fa2a5..0000000
--- a/readline-4.3/keymaps.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* keymaps.h -- Manipulation of readline keymaps. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _KEYMAPS_H_
-#define _KEYMAPS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (READLINE_LIBRARY)
-# include "rlstdc.h"
-# include "chardefs.h"
-# include "rltypedefs.h"
-#else
-# include <readline/rlstdc.h>
-# include <readline/chardefs.h>
-# include <readline/rltypedefs.h>
-#endif
-
-/* A keymap contains one entry for each key in the ASCII set.
- Each entry consists of a type and a pointer.
- FUNCTION is the address of a function to run, or the
- address of a keymap to indirect through.
- TYPE says which kind of thing FUNCTION is. */
-typedef struct _keymap_entry {
- char type;
- rl_command_func_t *function;
-} KEYMAP_ENTRY;
-
-/* This must be large enough to hold bindings for all of the characters
- in a desired character set (e.g, 128 for ASCII, 256 for ISO Latin-x,
- and so on) plus one for subsequence matching. */
-#define KEYMAP_SIZE 257
-#define ANYOTHERKEY KEYMAP_SIZE-1
-
-/* I wanted to make the above structure contain a union of:
- union { rl_command_func_t *function; struct _keymap_entry *keymap; } value;
- but this made it impossible for me to create a static array.
- Maybe I need C lessons. */
-
-typedef KEYMAP_ENTRY KEYMAP_ENTRY_ARRAY[KEYMAP_SIZE];
-typedef KEYMAP_ENTRY *Keymap;
-
-/* The values that TYPE can have in a keymap entry. */
-#define ISFUNC 0
-#define ISKMAP 1
-#define ISMACR 2
-
-extern KEYMAP_ENTRY_ARRAY emacs_standard_keymap, emacs_meta_keymap, emacs_ctlx_keymap;
-extern KEYMAP_ENTRY_ARRAY vi_insertion_keymap, vi_movement_keymap;
-
-/* Return a new, empty keymap.
- Free it with free() when you are done. */
-extern Keymap rl_make_bare_keymap PARAMS((void));
-
-/* Return a new keymap which is a copy of MAP. */
-extern Keymap rl_copy_keymap PARAMS((Keymap));
-
-/* Return a new keymap with the printing characters bound to rl_insert,
- the lowercase Meta characters bound to run their equivalents, and
- the Meta digits bound to produce numeric arguments. */
-extern Keymap rl_make_keymap PARAMS((void));
-
-/* Free the storage associated with a keymap. */
-extern void rl_discard_keymap PARAMS((Keymap));
-
-/* These functions actually appear in bind.c */
-
-/* Return the keymap corresponding to a given name. Names look like
- `emacs' or `emacs-meta' or `vi-insert'. */
-extern Keymap rl_get_keymap_by_name PARAMS((const char *));
-
-/* Return the current keymap. */
-extern Keymap rl_get_keymap PARAMS((void));
-
-/* Set the current keymap to MAP. */
-extern void rl_set_keymap PARAMS((Keymap));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _KEYMAPS_H_ */
diff --git a/readline-4.3/kill.c b/readline-4.3/kill.c
deleted file mode 100644
index a616b92..0000000
--- a/readline-4.3/kill.c
+++ /dev/null
@@ -1,652 +0,0 @@
-/* kill.c -- kill ring management. */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Killing Mechanism */
-/* */
-/* **************************************************************** */
-
-/* What we assume for a max number of kills. */
-#define DEFAULT_MAX_KILLS 10
-
-/* The real variable to look at to find out when to flush kills. */
-static int rl_max_kills = DEFAULT_MAX_KILLS;
-
-/* Where to store killed text. */
-static char **rl_kill_ring = (char **)NULL;
-
-/* Where we are in the kill ring. */
-static int rl_kill_index;
-
-/* How many slots we have in the kill ring. */
-static int rl_kill_ring_length;
-
-static int _rl_copy_to_kill_ring PARAMS((char *, int));
-static int region_kill_internal PARAMS((int));
-static int _rl_copy_word_as_kill PARAMS((int, int));
-static int rl_yank_nth_arg_internal PARAMS((int, int, int));
-
-/* How to say that you only want to save a certain amount
- of kill material. */
-int
-rl_set_retained_kills (num)
- int num;
-{
- return 0;
-}
-
-/* Add TEXT to the kill ring, allocating a new kill ring slot as necessary.
- This uses TEXT directly, so the caller must not free it. If APPEND is
- non-zero, and the last command was a kill, the text is appended to the
- current kill ring slot, otherwise prepended. */
-static int
-_rl_copy_to_kill_ring (text, append)
- char *text;
- int append;
-{
- char *old, *new;
- int slot;
-
- /* First, find the slot to work with. */
- if (_rl_last_command_was_kill == 0)
- {
- /* Get a new slot. */
- if (rl_kill_ring == 0)
- {
- /* If we don't have any defined, then make one. */
- rl_kill_ring = (char **)
- xmalloc (((rl_kill_ring_length = 1) + 1) * sizeof (char *));
- rl_kill_ring[slot = 0] = (char *)NULL;
- }
- else
- {
- /* We have to add a new slot on the end, unless we have
- exceeded the max limit for remembering kills. */
- slot = rl_kill_ring_length;
- if (slot == rl_max_kills)
- {
- register int i;
- free (rl_kill_ring[0]);
- for (i = 0; i < slot; i++)
- rl_kill_ring[i] = rl_kill_ring[i + 1];
- }
- else
- {
- slot = rl_kill_ring_length += 1;
- rl_kill_ring = (char **)xrealloc (rl_kill_ring, slot * sizeof (char *));
- }
- rl_kill_ring[--slot] = (char *)NULL;
- }
- }
- else
- slot = rl_kill_ring_length - 1;
-
- /* If the last command was a kill, prepend or append. */
- if (_rl_last_command_was_kill && rl_editing_mode != vi_mode)
- {
- old = rl_kill_ring[slot];
- new = (char *)xmalloc (1 + strlen (old) + strlen (text));
-
- if (append)
- {
- strcpy (new, old);
- strcat (new, text);
- }
- else
- {
- strcpy (new, text);
- strcat (new, old);
- }
- free (old);
- free (text);
- rl_kill_ring[slot] = new;
- }
- else
- rl_kill_ring[slot] = text;
-
- rl_kill_index = slot;
- return 0;
-}
-
-/* The way to kill something. This appends or prepends to the last
- kill, if the last command was a kill command. if FROM is less
- than TO, then the text is appended, otherwise prepended. If the
- last command was not a kill command, then a new slot is made for
- this kill. */
-int
-rl_kill_text (from, to)
- int from, to;
-{
- char *text;
-
- /* Is there anything to kill? */
- if (from == to)
- {
- _rl_last_command_was_kill++;
- return 0;
- }
-
- text = rl_copy_text (from, to);
-
- /* Delete the copied text from the line. */
- rl_delete_text (from, to);
-
- _rl_copy_to_kill_ring (text, from < to);
-
- _rl_last_command_was_kill++;
- return 0;
-}
-
-/* Now REMEMBER! In order to do prepending or appending correctly, kill
- commands always make rl_point's original position be the FROM argument,
- and rl_point's extent be the TO argument. */
-
-/* **************************************************************** */
-/* */
-/* Killing Commands */
-/* */
-/* **************************************************************** */
-
-/* Delete the word at point, saving the text in the kill ring. */
-int
-rl_kill_word (count, key)
- int count, key;
-{
- int orig_point;
-
- if (count < 0)
- return (rl_backward_kill_word (-count, key));
- else
- {
- orig_point = rl_point;
- rl_forward_word (count, key);
-
- if (rl_point != orig_point)
- rl_kill_text (orig_point, rl_point);
-
- rl_point = orig_point;
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Rubout the word before point, placing it on the kill ring. */
-int
-rl_backward_kill_word (count, ignore)
- int count, ignore;
-{
- int orig_point;
-
- if (count < 0)
- return (rl_kill_word (-count, ignore));
- else
- {
- orig_point = rl_point;
- rl_backward_word (count, ignore);
-
- if (rl_point != orig_point)
- rl_kill_text (orig_point, rl_point);
-
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Kill from here to the end of the line. If DIRECTION is negative, kill
- back to the line start instead. */
-int
-rl_kill_line (direction, ignore)
- int direction, ignore;
-{
- int orig_point;
-
- if (direction < 0)
- return (rl_backward_kill_line (1, ignore));
- else
- {
- orig_point = rl_point;
- rl_end_of_line (1, ignore);
- if (orig_point != rl_point)
- rl_kill_text (orig_point, rl_point);
- rl_point = orig_point;
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Kill backwards to the start of the line. If DIRECTION is negative, kill
- forwards to the line end instead. */
-int
-rl_backward_kill_line (direction, ignore)
- int direction, ignore;
-{
- int orig_point;
-
- if (direction < 0)
- return (rl_kill_line (1, ignore));
- else
- {
- if (!rl_point)
- rl_ding ();
- else
- {
- orig_point = rl_point;
- rl_beg_of_line (1, ignore);
- if (rl_point != orig_point)
- rl_kill_text (orig_point, rl_point);
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- }
- return 0;
-}
-
-/* Kill the whole line, no matter where point is. */
-int
-rl_kill_full_line (count, ignore)
- int count, ignore;
-{
- rl_begin_undo_group ();
- rl_point = 0;
- rl_kill_text (rl_point, rl_end);
- rl_mark = 0;
- rl_end_undo_group ();
- return 0;
-}
-
-/* The next two functions mimic unix line editing behaviour, except they
- save the deleted text on the kill ring. This is safer than not saving
- it, and since we have a ring, nobody should get screwed. */
-
-/* This does what C-w does in Unix. We can't prevent people from
- using behaviour that they expect. */
-int
-rl_unix_word_rubout (count, key)
- int count, key;
-{
- int orig_point;
-
- if (rl_point == 0)
- rl_ding ();
- else
- {
- orig_point = rl_point;
- if (count <= 0)
- count = 1;
-
- while (count--)
- {
- while (rl_point && whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
-
- while (rl_point && (whitespace (rl_line_buffer[rl_point - 1]) == 0))
- rl_point--;
- }
-
- rl_kill_text (orig_point, rl_point);
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Here is C-u doing what Unix does. You don't *have* to use these
- key-bindings. We have a choice of killing the entire line, or
- killing from where we are to the start of the line. We choose the
- latter, because if you are a Unix weenie, then you haven't backspaced
- into the line at all, and if you aren't, then you know what you are
- doing. */
-int
-rl_unix_line_discard (count, key)
- int count, key;
-{
- if (rl_point == 0)
- rl_ding ();
- else
- {
- rl_kill_text (rl_point, 0);
- rl_point = 0;
- if (rl_editing_mode == emacs_mode)
- rl_mark = rl_point;
- }
- return 0;
-}
-
-/* Copy the text in the `region' to the kill ring. If DELETE is non-zero,
- delete the text from the line as well. */
-static int
-region_kill_internal (delete)
- int delete;
-{
- char *text;
-
- if (rl_mark != rl_point)
- {
- text = rl_copy_text (rl_point, rl_mark);
- if (delete)
- rl_delete_text (rl_point, rl_mark);
- _rl_copy_to_kill_ring (text, rl_point < rl_mark);
- }
-
- _rl_last_command_was_kill++;
- return 0;
-}
-
-/* Copy the text in the region to the kill ring. */
-int
-rl_copy_region_to_kill (count, ignore)
- int count, ignore;
-{
- return (region_kill_internal (0));
-}
-
-/* Kill the text between the point and mark. */
-int
-rl_kill_region (count, ignore)
- int count, ignore;
-{
- int r, npoint;
-
- npoint = (rl_point < rl_mark) ? rl_point : rl_mark;
- r = region_kill_internal (1);
- _rl_fix_point (1);
- rl_point = npoint;
- return r;
-}
-
-/* Copy COUNT words to the kill ring. DIR says which direction we look
- to find the words. */
-static int
-_rl_copy_word_as_kill (count, dir)
- int count, dir;
-{
- int om, op, r;
-
- om = rl_mark;
- op = rl_point;
-
- if (dir > 0)
- rl_forward_word (count, 0);
- else
- rl_backward_word (count, 0);
-
- rl_mark = rl_point;
-
- if (dir > 0)
- rl_backward_word (count, 0);
- else
- rl_forward_word (count, 0);
-
- r = region_kill_internal (0);
-
- rl_mark = om;
- rl_point = op;
-
- return r;
-}
-
-int
-rl_copy_forward_word (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_copy_backward_word (-count, key));
-
- return (_rl_copy_word_as_kill (count, 1));
-}
-
-int
-rl_copy_backward_word (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_copy_forward_word (-count, key));
-
- return (_rl_copy_word_as_kill (count, -1));
-}
-
-/* Yank back the last killed text. This ignores arguments. */
-int
-rl_yank (count, ignore)
- int count, ignore;
-{
- if (rl_kill_ring == 0)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- _rl_set_mark_at_pos (rl_point);
- rl_insert_text (rl_kill_ring[rl_kill_index]);
- return 0;
-}
-
-/* If the last command was yank, or yank_pop, and the text just
- before point is identical to the current kill item, then
- delete that text from the line, rotate the index down, and
- yank back some other text. */
-int
-rl_yank_pop (count, key)
- int count, key;
-{
- int l, n;
-
- if (((rl_last_func != rl_yank_pop) && (rl_last_func != rl_yank)) ||
- !rl_kill_ring)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- l = strlen (rl_kill_ring[rl_kill_index]);
- n = rl_point - l;
- if (n >= 0 && STREQN (rl_line_buffer + n, rl_kill_ring[rl_kill_index], l))
- {
- rl_delete_text (n, rl_point);
- rl_point = n;
- rl_kill_index--;
- if (rl_kill_index < 0)
- rl_kill_index = rl_kill_ring_length - 1;
- rl_yank (1, 0);
- return 0;
- }
- else
- {
- _rl_abort_internal ();
- return -1;
- }
-}
-
-/* Yank the COUNTh argument from the previous history line, skipping
- HISTORY_SKIP lines before looking for the `previous line'. */
-static int
-rl_yank_nth_arg_internal (count, ignore, history_skip)
- int count, ignore, history_skip;
-{
- register HIST_ENTRY *entry;
- char *arg;
- int i, pos;
-
- pos = where_history ();
-
- if (history_skip)
- {
- for (i = 0; i < history_skip; i++)
- entry = previous_history ();
- }
-
- entry = previous_history ();
-
- history_set_pos (pos);
-
- if (entry == 0)
- {
- rl_ding ();
- return -1;
- }
-
- arg = history_arg_extract (count, count, entry->line);
- if (!arg || !*arg)
- {
- rl_ding ();
- return -1;
- }
-
- rl_begin_undo_group ();
-
- _rl_set_mark_at_pos (rl_point);
-
-#if defined (VI_MODE)
- /* Vi mode always inserts a space before yanking the argument, and it
- inserts it right *after* rl_point. */
- if (rl_editing_mode == vi_mode)
- {
- rl_vi_append_mode (1, ignore);
- rl_insert_text (" ");
- }
-#endif /* VI_MODE */
-
- rl_insert_text (arg);
- free (arg);
-
- rl_end_undo_group ();
- return 0;
-}
-
-/* Yank the COUNTth argument from the previous history line. */
-int
-rl_yank_nth_arg (count, ignore)
- int count, ignore;
-{
- return (rl_yank_nth_arg_internal (count, ignore, 0));
-}
-
-/* Yank the last argument from the previous history line. This `knows'
- how rl_yank_nth_arg treats a count of `$'. With an argument, this
- behaves the same as rl_yank_nth_arg. */
-int
-rl_yank_last_arg (count, key)
- int count, key;
-{
- static int history_skip = 0;
- static int explicit_arg_p = 0;
- static int count_passed = 1;
- static int direction = 1;
- static int undo_needed = 0;
- int retval;
-
- if (rl_last_func != rl_yank_last_arg)
- {
- history_skip = 0;
- explicit_arg_p = rl_explicit_arg;
- count_passed = count;
- direction = 1;
- }
- else
- {
- if (undo_needed)
- rl_do_undo ();
- if (count < 1)
- direction = -direction;
- history_skip += direction;
- if (history_skip < 0)
- history_skip = 0;
- }
-
- if (explicit_arg_p)
- retval = rl_yank_nth_arg_internal (count_passed, key, history_skip);
- else
- retval = rl_yank_nth_arg_internal ('$', key, history_skip);
-
- undo_needed = retval == 0;
- return retval;
-}
-
-/* A special paste command for users of Cygnus's cygwin32. */
-#if defined (__CYGWIN__)
-#include <windows.h>
-
-int
-rl_paste_from_clipboard (count, key)
- int count, key;
-{
- char *data, *ptr;
- int len;
-
- if (OpenClipboard (NULL) == 0)
- return (0);
-
- data = (char *)GetClipboardData (CF_TEXT);
- if (data)
- {
- ptr = strchr (data, '\r');
- if (ptr)
- {
- len = ptr - data;
- ptr = (char *)xmalloc (len + 1);
- ptr[len] = '\0';
- strncpy (ptr, data, len);
- }
- else
- ptr = data;
- _rl_set_mark_at_pos (rl_point);
- rl_insert_text (ptr);
- if (ptr != data)
- free (ptr);
- CloseClipboard ();
- }
- return (0);
-}
-#endif /* __CYGWIN__ */
diff --git a/readline-4.3/macro.c b/readline-4.3/macro.c
deleted file mode 100644
index b73c3af..0000000
--- a/readline-4.3/macro.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* macro.c -- keyboard macros for readline. */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Hacking Keyboard Macros */
-/* */
-/* **************************************************************** */
-
-/* The currently executing macro string. If this is non-zero,
- then it is a malloc ()'ed string where input is coming from. */
-char *rl_executing_macro = (char *)NULL;
-
-/* The offset in the above string to the next character to be read. */
-static int executing_macro_index;
-
-/* The current macro string being built. Characters get stuffed
- in here by add_macro_char (). */
-static char *current_macro = (char *)NULL;
-
-/* The size of the buffer allocated to current_macro. */
-static int current_macro_size;
-
-/* The index at which characters are being added to current_macro. */
-static int current_macro_index;
-
-/* A structure used to save nested macro strings.
- It is a linked list of string/index for each saved macro. */
-struct saved_macro {
- struct saved_macro *next;
- char *string;
- int sindex;
-};
-
-/* The list of saved macros. */
-static struct saved_macro *macro_list = (struct saved_macro *)NULL;
-
-/* Set up to read subsequent input from STRING.
- STRING is free ()'ed when we are done with it. */
-void
-_rl_with_macro_input (string)
- char *string;
-{
- _rl_push_executing_macro ();
- rl_executing_macro = string;
- executing_macro_index = 0;
- RL_SETSTATE(RL_STATE_MACROINPUT);
-}
-
-/* Return the next character available from a macro, or 0 if
- there are no macro characters. */
-int
-_rl_next_macro_key ()
-{
- if (rl_executing_macro == 0)
- return (0);
-
- if (rl_executing_macro[executing_macro_index] == 0)
- {
- _rl_pop_executing_macro ();
- return (_rl_next_macro_key ());
- }
-
- return (rl_executing_macro[executing_macro_index++]);
-}
-
-/* Save the currently executing macro on a stack of saved macros. */
-void
-_rl_push_executing_macro ()
-{
- struct saved_macro *saver;
-
- saver = (struct saved_macro *)xmalloc (sizeof (struct saved_macro));
- saver->next = macro_list;
- saver->sindex = executing_macro_index;
- saver->string = rl_executing_macro;
-
- macro_list = saver;
-}
-
-/* Discard the current macro, replacing it with the one
- on the top of the stack of saved macros. */
-void
-_rl_pop_executing_macro ()
-{
- struct saved_macro *macro;
-
- FREE (rl_executing_macro);
- rl_executing_macro = (char *)NULL;
- executing_macro_index = 0;
-
- if (macro_list)
- {
- macro = macro_list;
- rl_executing_macro = macro_list->string;
- executing_macro_index = macro_list->sindex;
- macro_list = macro_list->next;
- free (macro);
- }
-
- if (rl_executing_macro == 0)
- RL_UNSETSTATE(RL_STATE_MACROINPUT);
-}
-
-/* Add a character to the macro being built. */
-void
-_rl_add_macro_char (c)
- int c;
-{
- if (current_macro_index + 1 >= current_macro_size)
- {
- if (current_macro == 0)
- current_macro = (char *)xmalloc (current_macro_size = 25);
- else
- current_macro = (char *)xrealloc (current_macro, current_macro_size += 25);
- }
-
- current_macro[current_macro_index++] = c;
- current_macro[current_macro_index] = '\0';
-}
-
-void
-_rl_kill_kbd_macro ()
-{
- if (current_macro)
- {
- free (current_macro);
- current_macro = (char *) NULL;
- }
- current_macro_size = current_macro_index = 0;
-
- FREE (rl_executing_macro);
- rl_executing_macro = (char *) NULL;
- executing_macro_index = 0;
-
- RL_UNSETSTATE(RL_STATE_MACRODEF);
-}
-
-/* Begin defining a keyboard macro.
- Keystrokes are recorded as they are executed.
- End the definition with rl_end_kbd_macro ().
- If a numeric argument was explicitly typed, then append this
- definition to the end of the existing macro, and start by
- re-executing the existing macro. */
-int
-rl_start_kbd_macro (ignore1, ignore2)
- int ignore1, ignore2;
-{
- if (RL_ISSTATE (RL_STATE_MACRODEF))
- {
- _rl_abort_internal ();
- return -1;
- }
-
- if (rl_explicit_arg)
- {
- if (current_macro)
- _rl_with_macro_input (savestring (current_macro));
- }
- else
- current_macro_index = 0;
-
- RL_SETSTATE(RL_STATE_MACRODEF);
- return 0;
-}
-
-/* Stop defining a keyboard macro.
- A numeric argument says to execute the macro right now,
- that many times, counting the definition as the first time. */
-int
-rl_end_kbd_macro (count, ignore)
- int count, ignore;
-{
- if (RL_ISSTATE (RL_STATE_MACRODEF) == 0)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- current_macro_index -= rl_key_sequence_length - 1;
- current_macro[current_macro_index] = '\0';
-
- RL_UNSETSTATE(RL_STATE_MACRODEF);
-
- return (rl_call_last_kbd_macro (--count, 0));
-}
-
-/* Execute the most recently defined keyboard macro.
- COUNT says how many times to execute it. */
-int
-rl_call_last_kbd_macro (count, ignore)
- int count, ignore;
-{
- if (current_macro == 0)
- _rl_abort_internal ();
-
- if (RL_ISSTATE (RL_STATE_MACRODEF))
- {
- rl_ding (); /* no recursive macros */
- current_macro[--current_macro_index] = '\0'; /* erase this char */
- return 0;
- }
-
- while (count--)
- _rl_with_macro_input (savestring (current_macro));
- return 0;
-}
-
-void
-rl_push_macro_input (macro)
- char *macro;
-{
- _rl_with_macro_input (macro);
-}
diff --git a/readline-4.3/mbutil.c b/readline-4.3/mbutil.c
deleted file mode 100644
index 50302f0..0000000
--- a/readline-4.3/mbutil.c
+++ /dev/null
@@ -1,337 +0,0 @@
-/* mbutil.c -- readline multibyte character utility functions */
-
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include "posixjmp.h"
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-#include <ctype.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#if defined (TIOCSTAT_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* TIOCSTAT_IN_SYS_IOCTL */
-
-/* Some standard library routines. */
-#include "readline.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* Declared here so it can be shared between the readline and history
- libraries. */
-#if defined (HANDLE_MULTIBYTE)
-int rl_byte_oriented = 0;
-#else
-int rl_byte_oriented = 1;
-#endif
-
-/* **************************************************************** */
-/* */
-/* Multibyte Character Utility Functions */
-/* */
-/* **************************************************************** */
-
-#if defined(HANDLE_MULTIBYTE)
-
-static int
-_rl_find_next_mbchar_internal (string, seed, count, find_non_zero)
- char *string;
- int seed, count, find_non_zero;
-{
- size_t tmp = 0;
- mbstate_t ps;
- int point = 0;
- wchar_t wc;
-
- memset(&ps, 0, sizeof (mbstate_t));
- if (seed < 0)
- seed = 0;
- if (count <= 0)
- return seed;
-
- point = seed + _rl_adjust_point(string, seed, &ps);
- /* if this is true, means that seed was not pointed character
- started byte. So correct the point and consume count */
- if (seed < point)
- count --;
-
- while (count > 0)
- {
- tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps);
- if ((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
- {
- /* invalid bytes. asume a byte represents a character */
- point++;
- count--;
- /* reset states. */
- memset(&ps, 0, sizeof(mbstate_t));
- }
- else if (tmp == (size_t)0)
- /* found '\0' char */
- break;
- else
- {
- /* valid bytes */
- point += tmp;
- if (find_non_zero)
- {
- if (wcwidth (wc) == 0)
- continue;
- else
- count--;
- }
- else
- count--;
- }
- }
-
- if (find_non_zero)
- {
- tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
- while (wcwidth (wc) == 0)
- {
- point += tmp;
- tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
- if (tmp == (size_t)(0) || tmp == (size_t)(-1) || tmp == (size_t)(-2))
- break;
- }
- }
- return point;
-}
-
-static int
-_rl_find_prev_mbchar_internal (string, seed, find_non_zero)
- char *string;
- int seed, find_non_zero;
-{
- mbstate_t ps;
- int prev, non_zero_prev, point, length;
- size_t tmp;
- wchar_t wc;
-
- memset(&ps, 0, sizeof(mbstate_t));
- length = strlen(string);
-
- if (seed < 0)
- return 0;
- else if (length < seed)
- return length;
-
- prev = non_zero_prev = point = 0;
- while (point < seed)
- {
- tmp = mbrtowc (&wc, string + point, length - point, &ps);
- if ((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
- {
- /* in this case, bytes are invalid or shorted to compose
- multibyte char, so assume that the first byte represents
- a single character anyway. */
- tmp = 1;
- /* clear the state of the byte sequence, because
- in this case effect of mbstate is undefined */
- memset(&ps, 0, sizeof (mbstate_t));
- }
- else if (tmp == 0)
- break; /* Found '\0' char. Can this happen? */
- else
- {
- if (find_non_zero)
- {
- if (wcwidth (wc) != 0)
- prev = point;
- }
- else
- prev = point;
- }
-
- point += tmp;
- }
-
- return prev;
-}
-
-/* return the number of bytes parsed from the multibyte sequence starting
- at src, if a non-L'\0' wide character was recognized. It returns 0,
- if a L'\0' wide character was recognized. It returns (size_t)(-1),
- if an invalid multibyte sequence was encountered. It returns (size_t)(-2)
- if it couldn't parse a complete multibyte character. */
-int
-_rl_get_char_len (src, ps)
- char *src;
- mbstate_t *ps;
-{
- size_t tmp;
-
- tmp = mbrlen((const char *)src, (size_t)strlen (src), ps);
- if (tmp == (size_t)(-2))
- {
- /* shorted to compose multibyte char */
- memset (ps, 0, sizeof(mbstate_t));
- return -2;
- }
- else if (tmp == (size_t)(-1))
- {
- /* invalid to compose multibyte char */
- /* initialize the conversion state */
- memset (ps, 0, sizeof(mbstate_t));
- return -1;
- }
- else if (tmp == (size_t)0)
- return 0;
- else
- return (int)tmp;
-}
-
-/* compare the specified two characters. If the characters matched,
- return 1. Otherwise return 0. */
-int
-_rl_compare_chars (buf1, pos1, ps1, buf2, pos2, ps2)
- char *buf1, *buf2;
- mbstate_t *ps1, *ps2;
- int pos1, pos2;
-{
- int i, w1, w2;
-
- if ((w1 = _rl_get_char_len (&buf1[pos1], ps1)) <= 0 ||
- (w2 = _rl_get_char_len (&buf2[pos2], ps2)) <= 0 ||
- (w1 != w2) ||
- (buf1[pos1] != buf2[pos2]))
- return 0;
-
- for (i = 1; i < w1; i++)
- if (buf1[pos1+i] != buf2[pos2+i])
- return 0;
-
- return 1;
-}
-
-/* adjust pointed byte and find mbstate of the point of string.
- adjusted point will be point <= adjusted_point, and returns
- differences of the byte(adjusted_point - point).
- if point is invalied (point < 0 || more than string length),
- it returns -1 */
-int
-_rl_adjust_point(string, point, ps)
- char *string;
- int point;
- mbstate_t *ps;
-{
- size_t tmp = 0;
- int length;
- int pos = 0;
-
- length = strlen(string);
- if (point < 0)
- return -1;
- if (length < point)
- return -1;
-
- while (pos < point)
- {
- tmp = mbrlen (string + pos, length - pos, ps);
- if((size_t)(tmp) == (size_t)-1 || (size_t)(tmp) == (size_t)-2)
- {
- /* in this case, bytes are invalid or shorted to compose
- multibyte char, so assume that the first byte represents
- a single character anyway. */
- pos++;
- /* clear the state of the byte sequence, because
- in this case effect of mbstate is undefined */
- memset (ps, 0, sizeof (mbstate_t));
- }
- else
- pos += tmp;
- }
-
- return (pos - point);
-}
-
-int
-_rl_is_mbchar_matched (string, seed, end, mbchar, length)
- char *string;
- int seed, end;
- char *mbchar;
- int length;
-{
- int i;
-
- if ((end - seed) < length)
- return 0;
-
- for (i = 0; i < length; i++)
- if (string[seed + i] != mbchar[i])
- return 0;
- return 1;
-}
-#endif /* HANDLE_MULTIBYTE */
-
-/* Find next `count' characters started byte point of the specified seed.
- If flags is MB_FIND_NONZERO, we look for non-zero-width multibyte
- characters. */
-#undef _rl_find_next_mbchar
-int
-_rl_find_next_mbchar (string, seed, count, flags)
- char *string;
- int seed, count, flags;
-{
-#if defined (HANDLE_MULTIBYTE)
- return _rl_find_next_mbchar_internal (string, seed, count, flags);
-#else
- return (seed + count);
-#endif
-}
-
-/* Find previous character started byte point of the specified seed.
- Returned point will be point <= seed. If flags is MB_FIND_NONZERO,
- we look for non-zero-width multibyte characters. */
-#undef _rl_find_prev_mbchar
-int
-_rl_find_prev_mbchar (string, seed, flags)
- char *string;
- int seed, flags;
-{
-#if defined (HANDLE_MULTIBYTE)
- return _rl_find_prev_mbchar_internal (string, seed, flags);
-#else
- return ((seed == 0) ? seed : seed - 1);
-#endif
-}
diff --git a/readline-4.3/misc.c b/readline-4.3/misc.c
deleted file mode 100644
index f3775d3..0000000
--- a/readline-4.3/misc.c
+++ /dev/null
@@ -1,496 +0,0 @@
-/* misc.c -- miscellaneous bindable readline functions. */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-static int rl_digit_loop PARAMS((void));
-static void _rl_history_set_point PARAMS((void));
-
-/* Forward declarations used in this file */
-void _rl_free_history_entry PARAMS((HIST_ENTRY *));
-
-/* If non-zero, rl_get_previous_history and rl_get_next_history attempt
- to preserve the value of rl_point from line to line. */
-int _rl_history_preserve_point = 0;
-
-/* Saved target point for when _rl_history_preserve_point is set. Special
- value of -1 means that point is at the end of the line. */
-int _rl_history_saved_point = -1;
-
-/* **************************************************************** */
-/* */
-/* Numeric Arguments */
-/* */
-/* **************************************************************** */
-
-/* Handle C-u style numeric args, as well as M--, and M-digits. */
-static int
-rl_digit_loop ()
-{
- int key, c, sawminus, sawdigits;
-
- rl_save_prompt ();
-
- RL_SETSTATE(RL_STATE_NUMERICARG);
- sawminus = sawdigits = 0;
- while (1)
- {
- if (rl_numeric_arg > 1000000)
- {
- sawdigits = rl_explicit_arg = rl_numeric_arg = 0;
- rl_ding ();
- rl_restore_prompt ();
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return 1;
- }
- rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg);
- RL_SETSTATE(RL_STATE_MOREINPUT);
- key = c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (c < 0)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- /* If we see a key bound to `universal-argument' after seeing digits,
- it ends the argument but is otherwise ignored. */
- if (_rl_keymap[c].type == ISFUNC &&
- _rl_keymap[c].function == rl_universal_argument)
- {
- if (sawdigits == 0)
- {
- rl_numeric_arg *= 4;
- continue;
- }
- else
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- key = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- rl_restore_prompt ();
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return (_rl_dispatch (key, _rl_keymap));
- }
- }
-
- c = UNMETA (c);
-
- if (_rl_digit_p (c))
- {
- rl_numeric_arg = rl_explicit_arg ? (rl_numeric_arg * 10) + c - '0' : c - '0';
- sawdigits = rl_explicit_arg = 1;
- }
- else if (c == '-' && rl_explicit_arg == 0)
- {
- rl_numeric_arg = sawminus = 1;
- rl_arg_sign = -1;
- }
- else
- {
- /* Make M-- command equivalent to M--1 command. */
- if (sawminus && rl_numeric_arg == 1 && rl_explicit_arg == 0)
- rl_explicit_arg = 1;
- rl_restore_prompt ();
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return (_rl_dispatch (key, _rl_keymap));
- }
- }
-
- /*NOTREACHED*/
-}
-
-/* Add the current digit to the argument in progress. */
-int
-rl_digit_argument (ignore, key)
- int ignore, key;
-{
- rl_execute_next (key);
- return (rl_digit_loop ());
-}
-
-/* What to do when you abort reading an argument. */
-int
-rl_discard_argument ()
-{
- rl_ding ();
- rl_clear_message ();
- _rl_init_argument ();
- return 0;
-}
-
-/* Create a default argument. */
-int
-_rl_init_argument ()
-{
- rl_numeric_arg = rl_arg_sign = 1;
- rl_explicit_arg = 0;
- return 0;
-}
-
-/* C-u, universal argument. Multiply the current argument by 4.
- Read a key. If the key has nothing to do with arguments, then
- dispatch on it. If the key is the abort character then abort. */
-int
-rl_universal_argument (count, key)
- int count, key;
-{
- rl_numeric_arg *= 4;
- return (rl_digit_loop ());
-}
-
-/* **************************************************************** */
-/* */
-/* History Utilities */
-/* */
-/* **************************************************************** */
-
-/* We already have a history library, and that is what we use to control
- the history features of readline. This is our local interface to
- the history mechanism. */
-
-/* While we are editing the history, this is the saved
- version of the original line. */
-HIST_ENTRY *_rl_saved_line_for_history = (HIST_ENTRY *)NULL;
-
-/* Set the history pointer back to the last entry in the history. */
-void
-_rl_start_using_history ()
-{
- using_history ();
- if (_rl_saved_line_for_history)
- _rl_free_history_entry (_rl_saved_line_for_history);
-
- _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
-}
-
-/* Free the contents (and containing structure) of a HIST_ENTRY. */
-void
-_rl_free_history_entry (entry)
- HIST_ENTRY *entry;
-{
- if (entry == 0)
- return;
- if (entry->line)
- free (entry->line);
- free (entry);
-}
-
-/* Perhaps put back the current line if it has changed. */
-int
-rl_maybe_replace_line ()
-{
- HIST_ENTRY *temp;
-
- temp = current_history ();
- /* If the current line has changed, save the changes. */
- if (temp && ((UNDO_LIST *)(temp->data) != rl_undo_list))
- {
- temp = replace_history_entry (where_history (), rl_line_buffer, (histdata_t)rl_undo_list);
- free (temp->line);
- free (temp);
- }
- return 0;
-}
-
-/* Restore the _rl_saved_line_for_history if there is one. */
-int
-rl_maybe_unsave_line ()
-{
- if (_rl_saved_line_for_history)
- {
- rl_replace_line (_rl_saved_line_for_history->line, 0);
- rl_undo_list = (UNDO_LIST *)_rl_saved_line_for_history->data;
- _rl_free_history_entry (_rl_saved_line_for_history);
- _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
- rl_point = rl_end; /* rl_replace_line sets rl_end */
- }
- else
- rl_ding ();
- return 0;
-}
-
-/* Save the current line in _rl_saved_line_for_history. */
-int
-rl_maybe_save_line ()
-{
- if (_rl_saved_line_for_history == 0)
- {
- _rl_saved_line_for_history = (HIST_ENTRY *)xmalloc (sizeof (HIST_ENTRY));
- _rl_saved_line_for_history->line = savestring (rl_line_buffer);
- _rl_saved_line_for_history->data = (char *)rl_undo_list;
- }
- return 0;
-}
-
-int
-_rl_free_saved_history_line ()
-{
- if (_rl_saved_line_for_history)
- {
- _rl_free_history_entry (_rl_saved_line_for_history);
- _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
- }
- return 0;
-}
-
-static void
-_rl_history_set_point ()
-{
- rl_point = (_rl_history_preserve_point && _rl_history_saved_point != -1)
- ? _rl_history_saved_point
- : rl_end;
- if (rl_point > rl_end)
- rl_point = rl_end;
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- rl_point = 0;
-#endif /* VI_MODE */
-
- if (rl_editing_mode == emacs_mode)
- rl_mark = (rl_point == rl_end ? 0 : rl_end);
-}
-
-void
-rl_replace_from_history (entry, flags)
- HIST_ENTRY *entry;
- int flags; /* currently unused */
-{
- rl_replace_line (entry->line, 0);
- rl_undo_list = (UNDO_LIST *)entry->data;
- rl_point = rl_end;
- rl_mark = 0;
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- {
- rl_point = 0;
- rl_mark = rl_end;
- }
-#endif
-}
-
-/* **************************************************************** */
-/* */
-/* History Commands */
-/* */
-/* **************************************************************** */
-
-/* Meta-< goes to the start of the history. */
-int
-rl_beginning_of_history (count, key)
- int count, key;
-{
- return (rl_get_previous_history (1 + where_history (), key));
-}
-
-/* Meta-> goes to the end of the history. (The current line). */
-int
-rl_end_of_history (count, key)
- int count, key;
-{
- rl_maybe_replace_line ();
- using_history ();
- rl_maybe_unsave_line ();
- return 0;
-}
-
-/* Move down to the next history line. */
-int
-rl_get_next_history (count, key)
- int count, key;
-{
- HIST_ENTRY *temp;
-
- if (count < 0)
- return (rl_get_previous_history (-count, key));
-
- if (count == 0)
- return 0;
-
- rl_maybe_replace_line ();
-
- /* either not saved by rl_newline or at end of line, so set appropriately. */
- if (_rl_history_saved_point == -1 && (rl_point || rl_end))
- _rl_history_saved_point = (rl_point == rl_end) ? -1 : rl_point;
-
- temp = (HIST_ENTRY *)NULL;
- while (count)
- {
- temp = next_history ();
- if (!temp)
- break;
- --count;
- }
-
- if (temp == 0)
- rl_maybe_unsave_line ();
- else
- {
- rl_replace_from_history (temp, 0);
- _rl_history_set_point ();
- }
- return 0;
-}
-
-/* Get the previous item out of our interactive history, making it the current
- line. If there is no previous history, just ding. */
-int
-rl_get_previous_history (count, key)
- int count, key;
-{
- HIST_ENTRY *old_temp, *temp;
-
- if (count < 0)
- return (rl_get_next_history (-count, key));
-
- if (count == 0)
- return 0;
-
- /* either not saved by rl_newline or at end of line, so set appropriately. */
- if (_rl_history_saved_point == -1 && (rl_point || rl_end))
- _rl_history_saved_point = (rl_point == rl_end) ? -1 : rl_point;
-
- /* If we don't have a line saved, then save this one. */
- rl_maybe_save_line ();
-
- /* If the current line has changed, save the changes. */
- rl_maybe_replace_line ();
-
- temp = old_temp = (HIST_ENTRY *)NULL;
- while (count)
- {
- temp = previous_history ();
- if (temp == 0)
- break;
-
- old_temp = temp;
- --count;
- }
-
- /* If there was a large argument, and we moved back to the start of the
- history, that is not an error. So use the last value found. */
- if (!temp && old_temp)
- temp = old_temp;
-
- if (temp == 0)
- rl_ding ();
- else
- {
- rl_replace_from_history (temp, 0);
- _rl_history_set_point ();
- }
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Editing Modes */
-/* */
-/* **************************************************************** */
-/* How to toggle back and forth between editing modes. */
-int
-rl_vi_editing_mode (count, key)
- int count, key;
-{
-#if defined (VI_MODE)
- _rl_set_insert_mode (RL_IM_INSERT, 1); /* vi mode ignores insert mode */
- rl_editing_mode = vi_mode;
- rl_vi_insertion_mode (1, key);
-#endif /* VI_MODE */
-
- return 0;
-}
-
-int
-rl_emacs_editing_mode (count, key)
- int count, key;
-{
- rl_editing_mode = emacs_mode;
- _rl_set_insert_mode (RL_IM_INSERT, 1); /* emacs mode default is insert mode */
- _rl_keymap = emacs_standard_keymap;
- return 0;
-}
-
-/* Function for the rest of the library to use to set insert/overwrite mode. */
-void
-_rl_set_insert_mode (im, force)
- int im, force;
-{
-#ifdef CURSOR_MODE
- _rl_set_cursor (im, force);
-#endif
-
- rl_insert_mode = im;
-}
-
-/* Toggle overwrite mode. A positive explicit argument selects overwrite
- mode. A negative or zero explicit argument selects insert mode. */
-int
-rl_overwrite_mode (count, key)
- int count, key;
-{
- if (rl_explicit_arg == 0)
- _rl_set_insert_mode (rl_insert_mode ^ 1, 0);
- else if (count > 0)
- _rl_set_insert_mode (RL_IM_OVERWRITE, 0);
- else
- _rl_set_insert_mode (RL_IM_INSERT, 0);
-
- return 0;
-}
diff --git a/readline-4.3/nls.c b/readline-4.3/nls.c
deleted file mode 100644
index 706c819..0000000
--- a/readline-4.3/nls.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* nls.c -- skeletal internationalization code. */
-
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#include <stdio.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <ctype.h>
-
-#include "rldefs.h"
-#include "readline.h"
-#include "rlshell.h"
-#include "rlprivate.h"
-
-#if !defined (HAVE_SETLOCALE)
-/* A list of legal values for the LANG or LC_CTYPE environment variables.
- If a locale name in this list is the value for the LC_ALL, LC_CTYPE,
- or LANG environment variable (using the first of those with a value),
- readline eight-bit mode is enabled. */
-static char *legal_lang_values[] =
-{
- "iso88591",
- "iso88592",
- "iso88593",
- "iso88594",
- "iso88595",
- "iso88596",
- "iso88597",
- "iso88598",
- "iso88599",
- "iso885910",
- "koi8r",
- 0
-};
-
-static char *normalize_codeset PARAMS((char *));
-static char *find_codeset PARAMS((char *, size_t *));
-#endif /* !HAVE_SETLOCALE */
-
-/* Check for LC_ALL, LC_CTYPE, and LANG and use the first with a value
- to decide the defaults for 8-bit character input and output. Returns
- 1 if we set eight-bit mode. */
-int
-_rl_init_eightbit ()
-{
-/* If we have setlocale(3), just check the current LC_CTYPE category
- value, and go into eight-bit mode if it's not C or POSIX. */
-#if defined (HAVE_SETLOCALE)
- char *t;
-
- /* Set the LC_CTYPE locale category from environment variables. */
- t = setlocale (LC_CTYPE, "");
- if (t && *t && (t[0] != 'C' || t[1]) && (STREQ (t, "POSIX") == 0))
- {
- _rl_meta_flag = 1;
- _rl_convert_meta_chars_to_ascii = 0;
- _rl_output_meta_chars = 1;
- return (1);
- }
- else
- return (0);
-
-#else /* !HAVE_SETLOCALE */
- char *lspec, *t;
- int i;
-
- /* We don't have setlocale. Finesse it. Check the environment for the
- appropriate variables and set eight-bit mode if they have the right
- values. */
- lspec = sh_get_env_value ("LC_ALL");
- if (lspec == 0) lspec = sh_get_env_value ("LC_CTYPE");
- if (lspec == 0) lspec = sh_get_env_value ("LANG");
- if (lspec == 0 || (t = normalize_codeset (lspec)) == 0)
- return (0);
- for (i = 0; t && legal_lang_values[i]; i++)
- if (STREQ (t, legal_lang_values[i]))
- {
- _rl_meta_flag = 1;
- _rl_convert_meta_chars_to_ascii = 0;
- _rl_output_meta_chars = 1;
- break;
- }
- free (t);
- return (legal_lang_values[i] ? 1 : 0);
-
-#endif /* !HAVE_SETLOCALE */
-}
-
-#if !defined (HAVE_SETLOCALE)
-static char *
-normalize_codeset (codeset)
- char *codeset;
-{
- size_t namelen, i;
- int len, all_digits;
- char *wp, *retval;
-
- codeset = find_codeset (codeset, &namelen);
-
- if (codeset == 0)
- return (codeset);
-
- all_digits = 1;
- for (len = 0, i = 0; i < namelen; i++)
- {
- if (ISALNUM ((unsigned char)codeset[i]))
- {
- len++;
- all_digits &= _rl_digit_p (codeset[i]);
- }
- }
-
- retval = (char *)malloc ((all_digits ? 3 : 0) + len + 1);
- if (retval == 0)
- return ((char *)0);
-
- wp = retval;
- /* Add `iso' to beginning of an all-digit codeset */
- if (all_digits)
- {
- *wp++ = 'i';
- *wp++ = 's';
- *wp++ = 'o';
- }
-
- for (i = 0; i < namelen; i++)
- if (ISALPHA ((unsigned char)codeset[i]))
- *wp++ = _rl_to_lower (codeset[i]);
- else if (_rl_digit_p (codeset[i]))
- *wp++ = codeset[i];
- *wp = '\0';
-
- return retval;
-}
-
-/* Isolate codeset portion of locale specification. */
-static char *
-find_codeset (name, lenp)
- char *name;
- size_t *lenp;
-{
- char *cp, *language, *result;
-
- cp = language = name;
- result = (char *)0;
-
- while (*cp && *cp != '_' && *cp != '@' && *cp != '+' && *cp != ',')
- cp++;
-
- /* This does not make sense: language has to be specified. As
- an exception we allow the variable to contain only the codeset
- name. Perhaps there are funny codeset names. */
- if (language == cp)
- {
- *lenp = strlen (language);
- result = language;
- }
- else
- {
- /* Next is the territory. */
- if (*cp == '_')
- do
- ++cp;
- while (*cp && *cp != '.' && *cp != '@' && *cp != '+' && *cp != ',' && *cp != '_');
-
- /* Now, finally, is the codeset. */
- result = cp;
- if (*cp == '.')
- do
- ++cp;
- while (*cp && *cp != '@');
-
- if (cp - result > 2)
- {
- result++;
- *lenp = cp - result;
- }
- else
- {
- *lenp = strlen (language);
- result = language;
- }
- }
-
- return result;
-}
-#endif /* !HAVE_SETLOCALE */
diff --git a/readline-4.3/parens.c b/readline-4.3/parens.c
deleted file mode 100644
index 54ef1f3..0000000
--- a/readline-4.3/parens.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* parens.c -- Implementation of matching parentheses feature. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#include "rlconf.h"
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#if defined (FD_SET) && !defined (HAVE_SELECT)
-# define HAVE_SELECT
-#endif
-
-#if defined (HAVE_SELECT)
-# include <sys/time.h>
-#endif /* HAVE_SELECT */
-#if defined (HAVE_SYS_SELECT_H)
-# include <sys/select.h>
-#endif
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strchr (), *strrchr ();
-#endif /* !strchr && !__STDC__ */
-
-#include "readline.h"
-#include "rlprivate.h"
-
-static int find_matching_open PARAMS((char *, int, int));
-
-/* Non-zero means try to blink the matching open parenthesis when the
- close parenthesis is inserted. */
-#if defined (HAVE_SELECT)
-int rl_blink_matching_paren = 1;
-#else /* !HAVE_SELECT */
-int rl_blink_matching_paren = 0;
-#endif /* !HAVE_SELECT */
-
-static int _paren_blink_usec = 500000;
-
-/* Change emacs_standard_keymap to have bindings for paren matching when
- ON_OR_OFF is 1, change them back to self_insert when ON_OR_OFF == 0. */
-void
-_rl_enable_paren_matching (on_or_off)
- int on_or_off;
-{
- if (on_or_off)
- { /* ([{ */
- rl_bind_key_in_map (')', rl_insert_close, emacs_standard_keymap);
- rl_bind_key_in_map (']', rl_insert_close, emacs_standard_keymap);
- rl_bind_key_in_map ('}', rl_insert_close, emacs_standard_keymap);
- }
- else
- { /* ([{ */
- rl_bind_key_in_map (')', rl_insert, emacs_standard_keymap);
- rl_bind_key_in_map (']', rl_insert, emacs_standard_keymap);
- rl_bind_key_in_map ('}', rl_insert, emacs_standard_keymap);
- }
-}
-
-int
-rl_set_paren_blink_timeout (u)
- int u;
-{
- int o;
-
- o = _paren_blink_usec;
- if (u > 0)
- _paren_blink_usec = u;
- return (o);
-}
-
-int
-rl_insert_close (count, invoking_key)
- int count, invoking_key;
-{
- if (rl_explicit_arg || !rl_blink_matching_paren)
- _rl_insert_char (count, invoking_key);
- else
- {
-#if defined (HAVE_SELECT)
- int orig_point, match_point, ready;
- struct timeval timer;
- fd_set readfds;
-
- _rl_insert_char (1, invoking_key);
- (*rl_redisplay_function) ();
- match_point =
- find_matching_open (rl_line_buffer, rl_point - 2, invoking_key);
-
- /* Emacs might message or ring the bell here, but I don't. */
- if (match_point < 0)
- return -1;
-
- FD_ZERO (&readfds);
- FD_SET (fileno (rl_instream), &readfds);
- timer.tv_sec = 0;
- timer.tv_usec = _paren_blink_usec;
-
- orig_point = rl_point;
- rl_point = match_point;
- (*rl_redisplay_function) ();
- ready = select (1, &readfds, (fd_set *)NULL, (fd_set *)NULL, &timer);
- rl_point = orig_point;
-#else /* !HAVE_SELECT */
- _rl_insert_char (count, invoking_key);
-#endif /* !HAVE_SELECT */
- }
- return 0;
-}
-
-static int
-find_matching_open (string, from, closer)
- char *string;
- int from, closer;
-{
- register int i;
- int opener, level, delimiter;
-
- switch (closer)
- {
- case ']': opener = '['; break;
- case '}': opener = '{'; break;
- case ')': opener = '('; break;
- default:
- return (-1);
- }
-
- level = 1; /* The closer passed in counts as 1. */
- delimiter = 0; /* Delimited state unknown. */
-
- for (i = from; i > -1; i--)
- {
- if (delimiter && (string[i] == delimiter))
- delimiter = 0;
- else if (rl_basic_quote_characters && strchr (rl_basic_quote_characters, string[i]))
- delimiter = string[i];
- else if (!delimiter && (string[i] == closer))
- level++;
- else if (!delimiter && (string[i] == opener))
- level--;
-
- if (!level)
- break;
- }
- return (i);
-}
diff --git a/readline-4.3/posixdir.h b/readline-4.3/posixdir.h
deleted file mode 100644
index 505e279..0000000
--- a/readline-4.3/posixdir.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* posixdir.h -- Posix directory reading includes and defines. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* This file should be included instead of <dirent.h> or <sys/dir.h>. */
-
-#if !defined (_POSIXDIR_H_)
-#define _POSIXDIR_H_
-
-#if defined (HAVE_DIRENT_H)
-# include <dirent.h>
-# define D_NAMLEN(d) (strlen ((d)->d_name))
-#else
-# if defined (HAVE_SYS_NDIR_H)
-# include <sys/ndir.h>
-# endif
-# if defined (HAVE_SYS_DIR_H)
-# include <sys/dir.h>
-# endif
-# if defined (HAVE_NDIR_H)
-# include <ndir.h>
-# endif
-# if !defined (dirent)
-# define dirent direct
-# endif /* !dirent */
-# define D_NAMLEN(d) ((d)->d_namlen)
-#endif /* !HAVE_DIRENT_H */
-
-#if defined (STRUCT_DIRENT_HAS_D_INO) && !defined (STRUCT_DIRENT_HAS_D_FILENO)
-# define d_fileno d_ino
-#endif
-
-#if defined (_POSIX_SOURCE) && (!defined (STRUCT_DIRENT_HAS_D_INO) || defined (BROKEN_DIRENT_D_INO))
-/* Posix does not require that the d_ino field be present, and some
- systems do not provide it. */
-# define REAL_DIR_ENTRY(dp) 1
-#else
-# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
-#endif /* _POSIX_SOURCE */
-
-#endif /* !_POSIXDIR_H_ */
diff --git a/readline-4.3/posixjmp.h b/readline-4.3/posixjmp.h
deleted file mode 100644
index b52aa00..0000000
--- a/readline-4.3/posixjmp.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* posixjmp.h -- wrapper for setjmp.h with changes for POSIX systems. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _POSIXJMP_H_
-#define _POSIXJMP_H_
-
-#include <setjmp.h>
-
-/* This *must* be included *after* config.h */
-
-#if defined (HAVE_POSIX_SIGSETJMP)
-# define procenv_t sigjmp_buf
-# if !defined (__OPENNT)
-# undef setjmp
-# define setjmp(x) sigsetjmp((x), 1)
-# undef longjmp
-# define longjmp(x, n) siglongjmp((x), (n))
-# endif /* !__OPENNT */
-#else
-# define procenv_t jmp_buf
-#endif
-
-#endif /* _POSIXJMP_H_ */
diff --git a/readline-4.3/posixstat.h b/readline-4.3/posixstat.h
deleted file mode 100644
index c93b528..0000000
--- a/readline-4.3/posixstat.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* posixstat.h -- Posix stat(2) definitions for systems that
- don't have them. */
-
-/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-/* This file should be included instead of <sys/stat.h>.
- It relies on the local sys/stat.h to work though. */
-#if !defined (_POSIXSTAT_H_)
-#define _POSIXSTAT_H_
-
-#include <sys/stat.h>
-
-#if defined (STAT_MACROS_BROKEN)
-# undef S_ISBLK
-# undef S_ISCHR
-# undef S_ISDIR
-# undef S_ISFIFO
-# undef S_ISREG
-# undef S_ISLNK
-#endif /* STAT_MACROS_BROKEN */
-
-/* These are guaranteed to work only on isc386 */
-#if !defined (S_IFDIR) && !defined (S_ISDIR)
-# define S_IFDIR 0040000
-#endif /* !S_IFDIR && !S_ISDIR */
-#if !defined (S_IFMT)
-# define S_IFMT 0170000
-#endif /* !S_IFMT */
-
-/* Posix 1003.1 5.6.1.1 <sys/stat.h> file types */
-
-/* Some Posix-wannabe systems define _S_IF* macros instead of S_IF*, but
- do not provide the S_IS* macros that Posix requires. */
-
-#if defined (_S_IFMT) && !defined (S_IFMT)
-#define S_IFMT _S_IFMT
-#endif
-#if defined (_S_IFIFO) && !defined (S_IFIFO)
-#define S_IFIFO _S_IFIFO
-#endif
-#if defined (_S_IFCHR) && !defined (S_IFCHR)
-#define S_IFCHR _S_IFCHR
-#endif
-#if defined (_S_IFDIR) && !defined (S_IFDIR)
-#define S_IFDIR _S_IFDIR
-#endif
-#if defined (_S_IFBLK) && !defined (S_IFBLK)
-#define S_IFBLK _S_IFBLK
-#endif
-#if defined (_S_IFREG) && !defined (S_IFREG)
-#define S_IFREG _S_IFREG
-#endif
-#if defined (_S_IFLNK) && !defined (S_IFLNK)
-#define S_IFLNK _S_IFLNK
-#endif
-#if defined (_S_IFSOCK) && !defined (S_IFSOCK)
-#define S_IFSOCK _S_IFSOCK
-#endif
-
-/* Test for each symbol individually and define the ones necessary (some
- systems claiming Posix compatibility define some but not all). */
-
-#if defined (S_IFBLK) && !defined (S_ISBLK)
-#define S_ISBLK(m) (((m)&S_IFMT) == S_IFBLK) /* block device */
-#endif
-
-#if defined (S_IFCHR) && !defined (S_ISCHR)
-#define S_ISCHR(m) (((m)&S_IFMT) == S_IFCHR) /* character device */
-#endif
-
-#if defined (S_IFDIR) && !defined (S_ISDIR)
-#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */
-#endif
-
-#if defined (S_IFREG) && !defined (S_ISREG)
-#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) /* file */
-#endif
-
-#if defined (S_IFIFO) && !defined (S_ISFIFO)
-#define S_ISFIFO(m) (((m)&S_IFMT) == S_IFIFO) /* fifo - named pipe */
-#endif
-
-#if defined (S_IFLNK) && !defined (S_ISLNK)
-#define S_ISLNK(m) (((m)&S_IFMT) == S_IFLNK) /* symbolic link */
-#endif
-
-#if defined (S_IFSOCK) && !defined (S_ISSOCK)
-#define S_ISSOCK(m) (((m)&S_IFMT) == S_IFSOCK) /* socket */
-#endif
-
-/*
- * POSIX 1003.1 5.6.1.2 <sys/stat.h> File Modes
- */
-
-#if !defined (S_IRWXU)
-# if !defined (S_IREAD)
-# define S_IREAD 00400
-# define S_IWRITE 00200
-# define S_IEXEC 00100
-# endif /* S_IREAD */
-
-# if !defined (S_IRUSR)
-# define S_IRUSR S_IREAD /* read, owner */
-# define S_IWUSR S_IWRITE /* write, owner */
-# define S_IXUSR S_IEXEC /* execute, owner */
-
-# define S_IRGRP (S_IREAD >> 3) /* read, group */
-# define S_IWGRP (S_IWRITE >> 3) /* write, group */
-# define S_IXGRP (S_IEXEC >> 3) /* execute, group */
-
-# define S_IROTH (S_IREAD >> 6) /* read, other */
-# define S_IWOTH (S_IWRITE >> 6) /* write, other */
-# define S_IXOTH (S_IEXEC >> 6) /* execute, other */
-# endif /* !S_IRUSR */
-
-# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
-# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
-# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
-#endif /* !S_IRWXU */
-
-/* These are non-standard, but are used in builtins.c$symbolic_umask() */
-#define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH)
-#define S_IWUGO (S_IWUSR | S_IWGRP | S_IWOTH)
-#define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
-
-#endif /* _POSIXSTAT_H_ */
diff --git a/readline-4.3/readline.c b/readline-4.3/readline.c
deleted file mode 100644
index 28801f1..0000000
--- a/readline-4.3/readline.c
+++ /dev/null
@@ -1,973 +0,0 @@
-/* readline.c -- a general facility for reading lines of input
- with emacs style editing and completion. */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include "posixstat.h"
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-# include <sys/file.h>
-#endif /* HAVE_SYS_FILE_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <stdio.h>
-#include "posixjmp.h"
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#if defined (__EMX__)
-# define INCL_DOSPROCESS
-# include <os2.h>
-#endif /* __EMX__ */
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#ifndef RL_LIBRARY_VERSION
-# define RL_LIBRARY_VERSION "4.3"
-#endif
-
-#ifndef RL_READLINE_VERSION
-# define RL_READLINE_VERSION 0x0403
-#endif
-
-extern void _rl_free_history_entry PARAMS((HIST_ENTRY *));
-
-/* Forward declarations used in this file. */
-static char *readline_internal PARAMS((void));
-static void readline_initialize_everything PARAMS((void));
-
-static void bind_arrow_keys_internal PARAMS((Keymap));
-static void bind_arrow_keys PARAMS((void));
-
-static void readline_default_bindings PARAMS((void));
-
-/* **************************************************************** */
-/* */
-/* Line editing input utility */
-/* */
-/* **************************************************************** */
-
-const char *rl_library_version = RL_LIBRARY_VERSION;
-
-int rl_readline_version = RL_READLINE_VERSION;
-
-/* True if this is `real' readline as opposed to some stub substitute. */
-int rl_gnu_readline_p = 1;
-
-/* A pointer to the keymap that is currently in use.
- By default, it is the standard emacs keymap. */
-Keymap _rl_keymap = emacs_standard_keymap;
-
-/* The current style of editing. */
-int rl_editing_mode = emacs_mode;
-
-/* The current insert mode: input (the default) or overwrite */
-int rl_insert_mode = RL_IM_DEFAULT;
-
-/* Non-zero if we called this function from _rl_dispatch(). It's present
- so functions can find out whether they were called from a key binding
- or directly from an application. */
-int rl_dispatching;
-
-/* Non-zero if the previous command was a kill command. */
-int _rl_last_command_was_kill = 0;
-
-/* The current value of the numeric argument specified by the user. */
-int rl_numeric_arg = 1;
-
-/* Non-zero if an argument was typed. */
-int rl_explicit_arg = 0;
-
-/* Temporary value used while generating the argument. */
-int rl_arg_sign = 1;
-
-/* Non-zero means we have been called at least once before. */
-static int rl_initialized;
-
-#if 0
-/* If non-zero, this program is running in an EMACS buffer. */
-static int running_in_emacs;
-#endif
-
-/* Flags word encapsulating the current readline state. */
-int rl_readline_state = RL_STATE_NONE;
-
-/* The current offset in the current input line. */
-int rl_point;
-
-/* Mark in the current input line. */
-int rl_mark;
-
-/* Length of the current input line. */
-int rl_end;
-
-/* Make this non-zero to return the current input_line. */
-int rl_done;
-
-/* The last function executed by readline. */
-rl_command_func_t *rl_last_func = (rl_command_func_t *)NULL;
-
-/* Top level environment for readline_internal (). */
-procenv_t readline_top_level;
-
-/* The streams we interact with. */
-FILE *_rl_in_stream, *_rl_out_stream;
-
-/* The names of the streams that we do input and output to. */
-FILE *rl_instream = (FILE *)NULL;
-FILE *rl_outstream = (FILE *)NULL;
-
-/* Non-zero means echo characters as they are read. Defaults to no echo;
- set to 1 if there is a controlling terminal, we can get its attributes,
- and the attributes include `echo'. Look at rltty.c:prepare_terminal_settings
- for the code that sets it. */
-int readline_echoing_p = 0;
-
-/* Current prompt. */
-char *rl_prompt = (char *)NULL;
-int rl_visible_prompt_length = 0;
-
-/* Set to non-zero by calling application if it has already printed rl_prompt
- and does not want readline to do it the first time. */
-int rl_already_prompted = 0;
-
-/* The number of characters read in order to type this complete command. */
-int rl_key_sequence_length = 0;
-
-/* If non-zero, then this is the address of a function to call just
- before readline_internal_setup () prints the first prompt. */
-rl_hook_func_t *rl_startup_hook = (rl_hook_func_t *)NULL;
-
-/* If non-zero, this is the address of a function to call just before
- readline_internal_setup () returns and readline_internal starts
- reading input characters. */
-rl_hook_func_t *rl_pre_input_hook = (rl_hook_func_t *)NULL;
-
-/* What we use internally. You should always refer to RL_LINE_BUFFER. */
-static char *the_line;
-
-/* The character that can generate an EOF. Really read from
- the terminal driver... just defaulted here. */
-int _rl_eof_char = CTRL ('D');
-
-/* Non-zero makes this the next keystroke to read. */
-int rl_pending_input = 0;
-
-/* Pointer to a useful terminal name. */
-const char *rl_terminal_name = (const char *)NULL;
-
-/* Non-zero means to always use horizontal scrolling in line display. */
-int _rl_horizontal_scroll_mode = 0;
-
-/* Non-zero means to display an asterisk at the starts of history lines
- which have been modified. */
-int _rl_mark_modified_lines = 0;
-
-/* The style of `bell' notification preferred. This can be set to NO_BELL,
- AUDIBLE_BELL, or VISIBLE_BELL. */
-int _rl_bell_preference = AUDIBLE_BELL;
-
-/* String inserted into the line by rl_insert_comment (). */
-char *_rl_comment_begin;
-
-/* Keymap holding the function currently being executed. */
-Keymap rl_executing_keymap;
-
-/* Non-zero means to erase entire line, including prompt, on empty input lines. */
-int rl_erase_empty_line = 0;
-
-/* Non-zero means to read only this many characters rather than up to a
- character bound to accept-line. */
-int rl_num_chars_to_read;
-
-/* Line buffer and maintenence. */
-char *rl_line_buffer = (char *)NULL;
-int rl_line_buffer_len = 0;
-
-/* Forward declarations used by the display, termcap, and history code. */
-
-/* **************************************************************** */
-/* */
-/* `Forward' declarations */
-/* */
-/* **************************************************************** */
-
-/* Non-zero means do not parse any lines other than comments and
- parser directives. */
-unsigned char _rl_parsing_conditionalized_out = 0;
-
-/* Non-zero means to convert characters with the meta bit set to
- escape-prefixed characters so we can indirect through
- emacs_meta_keymap or vi_escape_keymap. */
-int _rl_convert_meta_chars_to_ascii = 1;
-
-/* Non-zero means to output characters with the meta bit set directly
- rather than as a meta-prefixed escape sequence. */
-int _rl_output_meta_chars = 0;
-
-/* **************************************************************** */
-/* */
-/* Top Level Functions */
-/* */
-/* **************************************************************** */
-
-/* Non-zero means treat 0200 bit in terminal input as Meta bit. */
-int _rl_meta_flag = 0; /* Forward declaration */
-
-/* Set up the prompt and expand it. Called from readline() and
- rl_callback_handler_install (). */
-int
-rl_set_prompt (prompt)
- const char *prompt;
-{
- FREE (rl_prompt);
- rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
-
- rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
- return 0;
-}
-
-/* Read a line of input. Prompt with PROMPT. An empty PROMPT means
- none. A return value of NULL means that EOF was encountered. */
-char *
-readline (prompt)
- const char *prompt;
-{
- char *value;
-
- /* If we are at EOF return a NULL string. */
- if (rl_pending_input == EOF)
- {
- rl_clear_pending_input ();
- return ((char *)NULL);
- }
-
- rl_set_prompt (prompt);
-
- rl_initialize ();
- (*rl_prep_term_function) (_rl_meta_flag);
-
-#if defined (HANDLE_SIGNALS)
- rl_set_signals ();
-#endif
-
- value = readline_internal ();
- (*rl_deprep_term_function) ();
-
-#if defined (HANDLE_SIGNALS)
- rl_clear_signals ();
-#endif
-
- return (value);
-}
-
-#if defined (READLINE_CALLBACKS)
-# define STATIC_CALLBACK
-#else
-# define STATIC_CALLBACK static
-#endif
-
-STATIC_CALLBACK void
-readline_internal_setup ()
-{
- char *nprompt;
-
- _rl_in_stream = rl_instream;
- _rl_out_stream = rl_outstream;
-
- if (rl_startup_hook)
- (*rl_startup_hook) ();
-
- /* If we're not echoing, we still want to at least print a prompt, because
- rl_redisplay will not do it for us. If the calling application has a
- custom redisplay function, though, let that function handle it. */
- if (readline_echoing_p == 0 && rl_redisplay_function == rl_redisplay)
- {
- if (rl_prompt && rl_already_prompted == 0)
- {
- nprompt = _rl_strip_prompt (rl_prompt);
- fprintf (_rl_out_stream, "%s", nprompt);
- fflush (_rl_out_stream);
- free (nprompt);
- }
- }
- else
- {
- if (rl_prompt && rl_already_prompted)
- rl_on_new_line_with_prompt ();
- else
- rl_on_new_line ();
- (*rl_redisplay_function) ();
- }
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- rl_vi_insertion_mode (1, 0);
-#endif /* VI_MODE */
-
- if (rl_pre_input_hook)
- (*rl_pre_input_hook) ();
-}
-
-STATIC_CALLBACK char *
-readline_internal_teardown (eof)
- int eof;
-{
- char *temp;
- HIST_ENTRY *entry;
-
- /* Restore the original of this history line, iff the line that we
- are editing was originally in the history, AND the line has changed. */
- entry = current_history ();
-
- if (entry && rl_undo_list)
- {
- temp = savestring (the_line);
- rl_revert_line (1, 0);
- entry = replace_history_entry (where_history (), the_line, (histdata_t)NULL);
- _rl_free_history_entry (entry);
-
- strcpy (the_line, temp);
- free (temp);
- }
-
- /* At any rate, it is highly likely that this line has an undo list. Get
- rid of it now. */
- if (rl_undo_list)
- rl_free_undo_list ();
-
- /* Restore normal cursor, if available. */
- _rl_set_insert_mode (RL_IM_INSERT, 0);
-
- return (eof ? (char *)NULL : savestring (the_line));
-}
-
-STATIC_CALLBACK int
-#if defined (READLINE_CALLBACKS)
-readline_internal_char ()
-#else
-readline_internal_charloop ()
-#endif
-{
- static int lastc, eof_found;
- int c, code, lk;
-
- lastc = -1;
- eof_found = 0;
-
-#if !defined (READLINE_CALLBACKS)
- while (rl_done == 0)
- {
-#endif
- lk = _rl_last_command_was_kill;
-
- code = setjmp (readline_top_level);
-
- if (code)
- (*rl_redisplay_function) ();
-
- if (rl_pending_input == 0)
- {
- /* Then initialize the argument and number of keys read. */
- _rl_init_argument ();
- rl_key_sequence_length = 0;
- }
-
- RL_SETSTATE(RL_STATE_READCMD);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_READCMD);
-
- /* EOF typed to a non-blank line is a <NL>. */
- if (c == EOF && rl_end)
- c = NEWLINE;
-
- /* The character _rl_eof_char typed to blank line, and not as the
- previous character is interpreted as EOF. */
- if (((c == _rl_eof_char && lastc != c) || c == EOF) && !rl_end)
- {
-#if defined (READLINE_CALLBACKS)
- RL_SETSTATE(RL_STATE_DONE);
- return (rl_done = 1);
-#else
- eof_found = 1;
- break;
-#endif
- }
-
- lastc = c;
- _rl_dispatch ((unsigned char)c, _rl_keymap);
-
- /* If there was no change in _rl_last_command_was_kill, then no kill
- has taken place. Note that if input is pending we are reading
- a prefix command, so nothing has changed yet. */
- if (rl_pending_input == 0 && lk == _rl_last_command_was_kill)
- _rl_last_command_was_kill = 0;
-
-#if defined (VI_MODE)
- /* In vi mode, when you exit insert mode, the cursor moves back
- over the previous character. We explicitly check for that here. */
- if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap)
- rl_vi_check ();
-#endif /* VI_MODE */
-
- if (rl_num_chars_to_read && rl_end >= rl_num_chars_to_read)
- {
- (*rl_redisplay_function) ();
- rl_newline (1, '\n');
- }
-
- if (rl_done == 0)
- (*rl_redisplay_function) ();
-
- /* If the application writer has told us to erase the entire line if
- the only character typed was something bound to rl_newline, do so. */
- if (rl_erase_empty_line && rl_done && rl_last_func == rl_newline &&
- rl_point == 0 && rl_end == 0)
- _rl_erase_entire_line ();
-
-#if defined (READLINE_CALLBACKS)
- return 0;
-#else
- }
-
- return (eof_found);
-#endif
-}
-
-#if defined (READLINE_CALLBACKS)
-static int
-readline_internal_charloop ()
-{
- int eof = 1;
-
- while (rl_done == 0)
- eof = readline_internal_char ();
- return (eof);
-}
-#endif /* READLINE_CALLBACKS */
-
-/* Read a line of input from the global rl_instream, doing output on
- the global rl_outstream.
- If rl_prompt is non-null, then that is our prompt. */
-static char *
-readline_internal ()
-{
- int eof;
-
- readline_internal_setup ();
- eof = readline_internal_charloop ();
- return (readline_internal_teardown (eof));
-}
-
-void
-_rl_init_line_state ()
-{
- rl_point = rl_end = rl_mark = 0;
- the_line = rl_line_buffer;
- the_line[0] = 0;
-}
-
-void
-_rl_set_the_line ()
-{
- the_line = rl_line_buffer;
-}
-
-/* Do the command associated with KEY in MAP.
- If the associated command is really a keymap, then read
- another key, and dispatch into that map. */
-int
-_rl_dispatch (key, map)
- register int key;
- Keymap map;
-{
- return _rl_dispatch_subseq (key, map, 0);
-}
-
-int
-_rl_dispatch_subseq (key, map, got_subseq)
- register int key;
- Keymap map;
- int got_subseq;
-{
- int r, newkey;
- char *macro;
- rl_command_func_t *func;
-
- if (META_CHAR (key) && _rl_convert_meta_chars_to_ascii)
- {
- if (map[ESC].type == ISKMAP)
- {
- if (RL_ISSTATE (RL_STATE_MACRODEF))
- _rl_add_macro_char (ESC);
- map = FUNCTION_TO_KEYMAP (map, ESC);
- key = UNMETA (key);
- rl_key_sequence_length += 2;
- return (_rl_dispatch (key, map));
- }
- else
- rl_ding ();
- return 0;
- }
-
- if (RL_ISSTATE (RL_STATE_MACRODEF))
- _rl_add_macro_char (key);
-
- r = 0;
- switch (map[key].type)
- {
- case ISFUNC:
- func = map[key].function;
- if (func)
- {
- /* Special case rl_do_lowercase_version (). */
- if (func == rl_do_lowercase_version)
- return (_rl_dispatch (_rl_to_lower (key), map));
-
- rl_executing_keymap = map;
-
-#if 0
- _rl_suppress_redisplay = (map[key].function == rl_insert) && _rl_input_available ();
-#endif
-
- rl_dispatching = 1;
- RL_SETSTATE(RL_STATE_DISPATCHING);
- r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
- RL_UNSETSTATE(RL_STATE_DISPATCHING);
- rl_dispatching = 0;
-
- /* If we have input pending, then the last command was a prefix
- command. Don't change the state of rl_last_func. Otherwise,
- remember the last command executed in this variable. */
- if (rl_pending_input == 0 && map[key].function != rl_digit_argument)
- rl_last_func = map[key].function;
- }
- else if (map[ANYOTHERKEY].function)
- {
- /* OK, there's no function bound in this map, but there is a
- shadow function that was overridden when the current keymap
- was created. Return -2 to note that. */
- _rl_unget_char (key);
- return -2;
- }
- else if (got_subseq)
- {
- /* Return -1 to note that we're in a subsequence, but we don't
- have a matching key, nor was one overridden. This means
- we need to back up the recursion chain and find the last
- subsequence that is bound to a function. */
- _rl_unget_char (key);
- return -1;
- }
- else
- {
- _rl_abort_internal ();
- return -1;
- }
- break;
-
- case ISKMAP:
- if (map[key].function != 0)
- {
-#if defined (VI_MODE)
- /* The only way this test will be true is if a subsequence has been
- bound starting with ESC, generally the arrow keys. What we do is
- check whether there's input in the queue, which there generally
- will be if an arrow key has been pressed, and, if there's not,
- just dispatch to (what we assume is) rl_vi_movement_mode right
- away. This is essentially an input test with a zero timeout. */
- if (rl_editing_mode == vi_mode && key == ESC && map == vi_insertion_keymap
- && _rl_input_queued (0) == 0)
- return (_rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key)));
-#endif
-
- rl_key_sequence_length++;
-
- if (key == ESC)
- RL_SETSTATE(RL_STATE_METANEXT);
- RL_SETSTATE(RL_STATE_MOREINPUT);
- newkey = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- if (key == ESC)
- RL_UNSETSTATE(RL_STATE_METANEXT);
-
- if (newkey < 0)
- {
- _rl_abort_internal ();
- return -1;
- }
-
- r = _rl_dispatch_subseq (newkey, FUNCTION_TO_KEYMAP (map, key), got_subseq || map[ANYOTHERKEY].function);
-
- if (r == -2)
- /* We didn't match anything, and the keymap we're indexed into
- shadowed a function previously bound to that prefix. Call
- the function. The recursive call to _rl_dispatch_subseq has
- already taken care of pushing any necessary input back onto
- the input queue with _rl_unget_char. */
- r = _rl_dispatch (ANYOTHERKEY, FUNCTION_TO_KEYMAP (map, key));
- else if (r && map[ANYOTHERKEY].function)
- {
- /* We didn't match (r is probably -1), so return something to
- tell the caller that it should try ANYOTHERKEY for an
- overridden function. */
- _rl_unget_char (key);
- return -2;
- }
- else if (r && got_subseq)
- {
- /* OK, back up the chain. */
- _rl_unget_char (key);
- return -1;
- }
- }
- else
- {
- _rl_abort_internal ();
- return -1;
- }
- break;
-
- case ISMACR:
- if (map[key].function != 0)
- {
- macro = savestring ((char *)map[key].function);
- _rl_with_macro_input (macro);
- return 0;
- }
- break;
- }
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
- _rl_vi_textmod_command (key))
- _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
-#endif
- return (r);
-}
-
-/* **************************************************************** */
-/* */
-/* Initializations */
-/* */
-/* **************************************************************** */
-
-/* Initialize readline (and terminal if not already). */
-int
-rl_initialize ()
-{
- /* If we have never been called before, initialize the
- terminal and data structures. */
- if (!rl_initialized)
- {
- RL_SETSTATE(RL_STATE_INITIALIZING);
- readline_initialize_everything ();
- RL_UNSETSTATE(RL_STATE_INITIALIZING);
- rl_initialized++;
- RL_SETSTATE(RL_STATE_INITIALIZED);
- }
-
- /* Initalize the current line information. */
- _rl_init_line_state ();
-
- /* We aren't done yet. We haven't even gotten started yet! */
- rl_done = 0;
- RL_UNSETSTATE(RL_STATE_DONE);
-
- /* Tell the history routines what is going on. */
- _rl_start_using_history ();
-
- /* Make the display buffer match the state of the line. */
- rl_reset_line_state ();
-
- /* No such function typed yet. */
- rl_last_func = (rl_command_func_t *)NULL;
-
- /* Parsing of key-bindings begins in an enabled state. */
- _rl_parsing_conditionalized_out = 0;
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- _rl_vi_initialize_line ();
-#endif
-
- /* Each line starts in insert mode (the default). */
- _rl_set_insert_mode (RL_IM_DEFAULT, 1);
-
- return 0;
-}
-
-#if 0
-#if defined (__EMX__)
-static void
-_emx_build_environ ()
-{
- TIB *tibp;
- PIB *pibp;
- char *t, **tp;
- int c;
-
- DosGetInfoBlocks (&tibp, &pibp);
- t = pibp->pib_pchenv;
- for (c = 1; *t; c++)
- t += strlen (t) + 1;
- tp = environ = (char **)xmalloc ((c + 1) * sizeof (char *));
- t = pibp->pib_pchenv;
- while (*t)
- {
- *tp++ = t;
- t += strlen (t) + 1;
- }
- *tp = 0;
-}
-#endif /* __EMX__ */
-#endif
-
-/* Initialize the entire state of the world. */
-static void
-readline_initialize_everything ()
-{
-#if 0
-#if defined (__EMX__)
- if (environ == 0)
- _emx_build_environ ();
-#endif
-#endif
-
-#if 0
- /* Find out if we are running in Emacs -- UNUSED. */
- running_in_emacs = sh_get_env_value ("EMACS") != (char *)0;
-#endif
-
- /* Set up input and output if they are not already set up. */
- if (!rl_instream)
- rl_instream = stdin;
-
- if (!rl_outstream)
- rl_outstream = stdout;
-
- /* Bind _rl_in_stream and _rl_out_stream immediately. These values
- may change, but they may also be used before readline_internal ()
- is called. */
- _rl_in_stream = rl_instream;
- _rl_out_stream = rl_outstream;
-
- /* Allocate data structures. */
- if (rl_line_buffer == 0)
- rl_line_buffer = (char *)xmalloc (rl_line_buffer_len = DEFAULT_BUFFER_SIZE);
-
- /* Initialize the terminal interface. */
- if (rl_terminal_name == 0)
- rl_terminal_name = sh_get_env_value ("TERM");
- _rl_init_terminal_io (rl_terminal_name);
-
- /* Bind tty characters to readline functions. */
- readline_default_bindings ();
-
- /* Initialize the function names. */
- rl_initialize_funmap ();
-
- /* Decide whether we should automatically go into eight-bit mode. */
- _rl_init_eightbit ();
-
- /* Read in the init file. */
- rl_read_init_file ((char *)NULL);
-
- /* XXX */
- if (_rl_horizontal_scroll_mode && _rl_term_autowrap)
- {
- _rl_screenwidth--;
- _rl_screenchars -= _rl_screenheight;
- }
-
- /* Override the effect of any `set keymap' assignments in the
- inputrc file. */
- rl_set_keymap_from_edit_mode ();
-
- /* Try to bind a common arrow key prefix, if not already bound. */
- bind_arrow_keys ();
-
- /* Enable the meta key, if this terminal has one. */
- if (_rl_enable_meta)
- _rl_enable_meta_key ();
-
- /* If the completion parser's default word break characters haven't
- been set yet, then do so now. */
- if (rl_completer_word_break_characters == (char *)NULL)
- rl_completer_word_break_characters = rl_basic_word_break_characters;
-}
-
-/* If this system allows us to look at the values of the regular
- input editing characters, then bind them to their readline
- equivalents, iff the characters are not bound to keymaps. */
-static void
-readline_default_bindings ()
-{
- rl_tty_set_default_bindings (_rl_keymap);
-}
-
-/* Bind some common arrow key sequences in MAP. */
-static void
-bind_arrow_keys_internal (map)
- Keymap map;
-{
- Keymap xkeymap;
-
- xkeymap = _rl_keymap;
- _rl_keymap = map;
-
-#if defined (__MSDOS__)
- _rl_bind_if_unbound ("\033[0A", rl_get_previous_history);
- _rl_bind_if_unbound ("\033[0B", rl_backward_char);
- _rl_bind_if_unbound ("\033[0C", rl_forward_char);
- _rl_bind_if_unbound ("\033[0D", rl_get_next_history);
-#endif
-
- _rl_bind_if_unbound ("\033[A", rl_get_previous_history);
- _rl_bind_if_unbound ("\033[B", rl_get_next_history);
- _rl_bind_if_unbound ("\033[C", rl_forward_char);
- _rl_bind_if_unbound ("\033[D", rl_backward_char);
- _rl_bind_if_unbound ("\033[H", rl_beg_of_line);
- _rl_bind_if_unbound ("\033[F", rl_end_of_line);
-
- _rl_bind_if_unbound ("\033OA", rl_get_previous_history);
- _rl_bind_if_unbound ("\033OB", rl_get_next_history);
- _rl_bind_if_unbound ("\033OC", rl_forward_char);
- _rl_bind_if_unbound ("\033OD", rl_backward_char);
- _rl_bind_if_unbound ("\033OH", rl_beg_of_line);
- _rl_bind_if_unbound ("\033OF", rl_end_of_line);
-
- _rl_keymap = xkeymap;
-}
-
-/* Try and bind the common arrow key prefixes after giving termcap and
- the inputrc file a chance to bind them and create `real' keymaps
- for the arrow key prefix. */
-static void
-bind_arrow_keys ()
-{
- bind_arrow_keys_internal (emacs_standard_keymap);
-
-#if defined (VI_MODE)
- bind_arrow_keys_internal (vi_movement_keymap);
- bind_arrow_keys_internal (vi_insertion_keymap);
-#endif
-}
-
-/* **************************************************************** */
-/* */
-/* Saving and Restoring Readline's state */
-/* */
-/* **************************************************************** */
-
-int
-rl_save_state (sp)
- struct readline_state *sp;
-{
- if (sp == 0)
- return -1;
-
- sp->point = rl_point;
- sp->end = rl_end;
- sp->mark = rl_mark;
- sp->buffer = rl_line_buffer;
- sp->buflen = rl_line_buffer_len;
- sp->ul = rl_undo_list;
- sp->prompt = rl_prompt;
-
- sp->rlstate = rl_readline_state;
- sp->done = rl_done;
- sp->kmap = _rl_keymap;
-
- sp->lastfunc = rl_last_func;
- sp->insmode = rl_insert_mode;
- sp->edmode = rl_editing_mode;
- sp->kseqlen = rl_key_sequence_length;
- sp->inf = rl_instream;
- sp->outf = rl_outstream;
- sp->pendingin = rl_pending_input;
- sp->macro = rl_executing_macro;
-
- sp->catchsigs = rl_catch_signals;
- sp->catchsigwinch = rl_catch_sigwinch;
-
- return (0);
-}
-
-int
-rl_restore_state (sp)
- struct readline_state *sp;
-{
- if (sp == 0)
- return -1;
-
- rl_point = sp->point;
- rl_end = sp->end;
- rl_mark = sp->mark;
- the_line = rl_line_buffer = sp->buffer;
- rl_line_buffer_len = sp->buflen;
- rl_undo_list = sp->ul;
- rl_prompt = sp->prompt;
-
- rl_readline_state = sp->rlstate;
- rl_done = sp->done;
- _rl_keymap = sp->kmap;
-
- rl_last_func = sp->lastfunc;
- rl_insert_mode = sp->insmode;
- rl_editing_mode = sp->edmode;
- rl_key_sequence_length = sp->kseqlen;
- rl_instream = sp->inf;
- rl_outstream = sp->outf;
- rl_pending_input = sp->pendingin;
- rl_executing_macro = sp->macro;
-
- rl_catch_signals = sp->catchsigs;
- rl_catch_sigwinch = sp->catchsigwinch;
-
- return (0);
-}
diff --git a/readline-4.3/readline.h b/readline-4.3/readline.h
deleted file mode 100644
index f11b3d0..0000000
--- a/readline-4.3/readline.h
+++ /dev/null
@@ -1,799 +0,0 @@
-/* Readline.h -- the names of functions callable from within readline. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_READLINE_H_)
-#define _READLINE_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (READLINE_LIBRARY)
-# include "rlstdc.h"
-# include "rltypedefs.h"
-# include "keymaps.h"
-# include "tilde.h"
-#else
-# include <readline/rlstdc.h>
-# include <readline/rltypedefs.h>
-# include <readline/keymaps.h>
-# include <readline/tilde.h>
-#endif
-
-/* Hex-encoded Readline version number. */
-#define RL_READLINE_VERSION 0x0403 /* Readline 4.3 */
-#define RL_VERSION_MAJOR 4
-#define RL_VERSION_MINOR 3
-
-/* Readline data structures. */
-
-/* Maintaining the state of undo. We remember individual deletes and inserts
- on a chain of things to do. */
-
-/* The actions that undo knows how to undo. Notice that UNDO_DELETE means
- to insert some text, and UNDO_INSERT means to delete some text. I.e.,
- the code tells undo what to undo, not how to undo it. */
-enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
-
-/* What an element of THE_UNDO_LIST looks like. */
-typedef struct undo_list {
- struct undo_list *next;
- int start, end; /* Where the change took place. */
- char *text; /* The text to insert, if undoing a delete. */
- enum undo_code what; /* Delete, Insert, Begin, End. */
-} UNDO_LIST;
-
-/* The current undo list for RL_LINE_BUFFER. */
-extern UNDO_LIST *rl_undo_list;
-
-/* The data structure for mapping textual names to code addresses. */
-typedef struct _funmap {
- const char *name;
- rl_command_func_t *function;
-} FUNMAP;
-
-extern FUNMAP **funmap;
-
-/* **************************************************************** */
-/* */
-/* Functions available to bind to key sequences */
-/* */
-/* **************************************************************** */
-
-/* Bindable commands for numeric arguments. */
-extern int rl_digit_argument PARAMS((int, int));
-extern int rl_universal_argument PARAMS((int, int));
-
-/* Bindable commands for moving the cursor. */
-extern int rl_forward_byte PARAMS((int, int));
-extern int rl_forward_char PARAMS((int, int));
-extern int rl_forward PARAMS((int, int));
-extern int rl_backward_byte PARAMS((int, int));
-extern int rl_backward_char PARAMS((int, int));
-extern int rl_backward PARAMS((int, int));
-extern int rl_beg_of_line PARAMS((int, int));
-extern int rl_end_of_line PARAMS((int, int));
-extern int rl_forward_word PARAMS((int, int));
-extern int rl_backward_word PARAMS((int, int));
-extern int rl_refresh_line PARAMS((int, int));
-extern int rl_clear_screen PARAMS((int, int));
-extern int rl_arrow_keys PARAMS((int, int));
-
-/* Bindable commands for inserting and deleting text. */
-extern int rl_insert PARAMS((int, int));
-extern int rl_quoted_insert PARAMS((int, int));
-extern int rl_tab_insert PARAMS((int, int));
-extern int rl_newline PARAMS((int, int));
-extern int rl_do_lowercase_version PARAMS((int, int));
-extern int rl_rubout PARAMS((int, int));
-extern int rl_delete PARAMS((int, int));
-extern int rl_rubout_or_delete PARAMS((int, int));
-extern int rl_delete_horizontal_space PARAMS((int, int));
-extern int rl_delete_or_show_completions PARAMS((int, int));
-extern int rl_insert_comment PARAMS((int, int));
-
-/* Bindable commands for changing case. */
-extern int rl_upcase_word PARAMS((int, int));
-extern int rl_downcase_word PARAMS((int, int));
-extern int rl_capitalize_word PARAMS((int, int));
-
-/* Bindable commands for transposing characters and words. */
-extern int rl_transpose_words PARAMS((int, int));
-extern int rl_transpose_chars PARAMS((int, int));
-
-/* Bindable commands for searching within a line. */
-extern int rl_char_search PARAMS((int, int));
-extern int rl_backward_char_search PARAMS((int, int));
-
-/* Bindable commands for readline's interface to the command history. */
-extern int rl_beginning_of_history PARAMS((int, int));
-extern int rl_end_of_history PARAMS((int, int));
-extern int rl_get_next_history PARAMS((int, int));
-extern int rl_get_previous_history PARAMS((int, int));
-
-/* Bindable commands for managing the mark and region. */
-extern int rl_set_mark PARAMS((int, int));
-extern int rl_exchange_point_and_mark PARAMS((int, int));
-
-/* Bindable commands to set the editing mode (emacs or vi). */
-extern int rl_vi_editing_mode PARAMS((int, int));
-extern int rl_emacs_editing_mode PARAMS((int, int));
-
-/* Bindable commands to change the insert mode (insert or overwrite) */
-extern int rl_overwrite_mode PARAMS((int, int));
-
-/* Bindable commands for managing key bindings. */
-extern int rl_re_read_init_file PARAMS((int, int));
-extern int rl_dump_functions PARAMS((int, int));
-extern int rl_dump_macros PARAMS((int, int));
-extern int rl_dump_variables PARAMS((int, int));
-
-/* Bindable commands for word completion. */
-extern int rl_complete PARAMS((int, int));
-extern int rl_possible_completions PARAMS((int, int));
-extern int rl_insert_completions PARAMS((int, int));
-extern int rl_menu_complete PARAMS((int, int));
-
-/* Bindable commands for killing and yanking text, and managing the kill ring. */
-extern int rl_kill_word PARAMS((int, int));
-extern int rl_backward_kill_word PARAMS((int, int));
-extern int rl_kill_line PARAMS((int, int));
-extern int rl_backward_kill_line PARAMS((int, int));
-extern int rl_kill_full_line PARAMS((int, int));
-extern int rl_unix_word_rubout PARAMS((int, int));
-extern int rl_unix_line_discard PARAMS((int, int));
-extern int rl_copy_region_to_kill PARAMS((int, int));
-extern int rl_kill_region PARAMS((int, int));
-extern int rl_copy_forward_word PARAMS((int, int));
-extern int rl_copy_backward_word PARAMS((int, int));
-extern int rl_yank PARAMS((int, int));
-extern int rl_yank_pop PARAMS((int, int));
-extern int rl_yank_nth_arg PARAMS((int, int));
-extern int rl_yank_last_arg PARAMS((int, int));
-/* Not available unless __CYGWIN__ is defined. */
-#ifdef __CYGWIN__
-extern int rl_paste_from_clipboard PARAMS((int, int));
-#endif
-
-/* Bindable commands for incremental searching. */
-extern int rl_reverse_search_history PARAMS((int, int));
-extern int rl_forward_search_history PARAMS((int, int));
-
-/* Bindable keyboard macro commands. */
-extern int rl_start_kbd_macro PARAMS((int, int));
-extern int rl_end_kbd_macro PARAMS((int, int));
-extern int rl_call_last_kbd_macro PARAMS((int, int));
-
-/* Bindable undo commands. */
-extern int rl_revert_line PARAMS((int, int));
-extern int rl_undo_command PARAMS((int, int));
-
-/* Bindable tilde expansion commands. */
-extern int rl_tilde_expand PARAMS((int, int));
-
-/* Bindable terminal control commands. */
-extern int rl_restart_output PARAMS((int, int));
-extern int rl_stop_output PARAMS((int, int));
-
-/* Miscellaneous bindable commands. */
-extern int rl_abort PARAMS((int, int));
-extern int rl_tty_status PARAMS((int, int));
-
-/* Bindable commands for incremental and non-incremental history searching. */
-extern int rl_history_search_forward PARAMS((int, int));
-extern int rl_history_search_backward PARAMS((int, int));
-extern int rl_noninc_forward_search PARAMS((int, int));
-extern int rl_noninc_reverse_search PARAMS((int, int));
-extern int rl_noninc_forward_search_again PARAMS((int, int));
-extern int rl_noninc_reverse_search_again PARAMS((int, int));
-
-/* Bindable command used when inserting a matching close character. */
-extern int rl_insert_close PARAMS((int, int));
-
-/* Not available unless READLINE_CALLBACKS is defined. */
-extern void rl_callback_handler_install PARAMS((const char *, rl_vcpfunc_t *));
-extern void rl_callback_read_char PARAMS((void));
-extern void rl_callback_handler_remove PARAMS((void));
-
-/* Things for vi mode. Not available unless readline is compiled -DVI_MODE. */
-/* VI-mode bindable commands. */
-extern int rl_vi_redo PARAMS((int, int));
-extern int rl_vi_undo PARAMS((int, int));
-extern int rl_vi_yank_arg PARAMS((int, int));
-extern int rl_vi_fetch_history PARAMS((int, int));
-extern int rl_vi_search_again PARAMS((int, int));
-extern int rl_vi_search PARAMS((int, int));
-extern int rl_vi_complete PARAMS((int, int));
-extern int rl_vi_tilde_expand PARAMS((int, int));
-extern int rl_vi_prev_word PARAMS((int, int));
-extern int rl_vi_next_word PARAMS((int, int));
-extern int rl_vi_end_word PARAMS((int, int));
-extern int rl_vi_insert_beg PARAMS((int, int));
-extern int rl_vi_append_mode PARAMS((int, int));
-extern int rl_vi_append_eol PARAMS((int, int));
-extern int rl_vi_eof_maybe PARAMS((int, int));
-extern int rl_vi_insertion_mode PARAMS((int, int));
-extern int rl_vi_movement_mode PARAMS((int, int));
-extern int rl_vi_arg_digit PARAMS((int, int));
-extern int rl_vi_change_case PARAMS((int, int));
-extern int rl_vi_put PARAMS((int, int));
-extern int rl_vi_column PARAMS((int, int));
-extern int rl_vi_delete_to PARAMS((int, int));
-extern int rl_vi_change_to PARAMS((int, int));
-extern int rl_vi_yank_to PARAMS((int, int));
-extern int rl_vi_delete PARAMS((int, int));
-extern int rl_vi_back_to_indent PARAMS((int, int));
-extern int rl_vi_first_print PARAMS((int, int));
-extern int rl_vi_char_search PARAMS((int, int));
-extern int rl_vi_match PARAMS((int, int));
-extern int rl_vi_change_char PARAMS((int, int));
-extern int rl_vi_subst PARAMS((int, int));
-extern int rl_vi_overstrike PARAMS((int, int));
-extern int rl_vi_overstrike_delete PARAMS((int, int));
-extern int rl_vi_replace PARAMS((int, int));
-extern int rl_vi_set_mark PARAMS((int, int));
-extern int rl_vi_goto_mark PARAMS((int, int));
-
-/* VI-mode utility functions. */
-extern int rl_vi_check PARAMS((void));
-extern int rl_vi_domove PARAMS((int, int *));
-extern int rl_vi_bracktype PARAMS((int));
-
-/* VI-mode pseudo-bindable commands, used as utility functions. */
-extern int rl_vi_fWord PARAMS((int, int));
-extern int rl_vi_bWord PARAMS((int, int));
-extern int rl_vi_eWord PARAMS((int, int));
-extern int rl_vi_fword PARAMS((int, int));
-extern int rl_vi_bword PARAMS((int, int));
-extern int rl_vi_eword PARAMS((int, int));
-
-/* **************************************************************** */
-/* */
-/* Well Published Functions */
-/* */
-/* **************************************************************** */
-
-/* Readline functions. */
-/* Read a line of input. Prompt with PROMPT. A NULL PROMPT means none. */
-extern char *readline PARAMS((const char *));
-
-extern int rl_set_prompt PARAMS((const char *));
-extern int rl_expand_prompt PARAMS((char *));
-
-extern int rl_initialize PARAMS((void));
-
-/* Undocumented; unused by readline */
-extern int rl_discard_argument PARAMS((void));
-
-/* Utility functions to bind keys to readline commands. */
-extern int rl_add_defun PARAMS((const char *, rl_command_func_t *, int));
-extern int rl_bind_key PARAMS((int, rl_command_func_t *));
-extern int rl_bind_key_in_map PARAMS((int, rl_command_func_t *, Keymap));
-extern int rl_unbind_key PARAMS((int));
-extern int rl_unbind_key_in_map PARAMS((int, Keymap));
-extern int rl_unbind_function_in_map PARAMS((rl_command_func_t *, Keymap));
-extern int rl_unbind_command_in_map PARAMS((const char *, Keymap));
-extern int rl_set_key PARAMS((const char *, rl_command_func_t *, Keymap));
-extern int rl_generic_bind PARAMS((int, const char *, char *, Keymap));
-extern int rl_variable_bind PARAMS((const char *, const char *));
-
-/* Backwards compatibility, use rl_generic_bind instead. */
-extern int rl_macro_bind PARAMS((const char *, const char *, Keymap));
-
-/* Undocumented in the texinfo manual; not really useful to programs. */
-extern int rl_translate_keyseq PARAMS((const char *, char *, int *));
-extern char *rl_untranslate_keyseq PARAMS((int));
-
-extern rl_command_func_t *rl_named_function PARAMS((const char *));
-extern rl_command_func_t *rl_function_of_keyseq PARAMS((const char *, Keymap, int *));
-
-extern void rl_list_funmap_names PARAMS((void));
-extern char **rl_invoking_keyseqs_in_map PARAMS((rl_command_func_t *, Keymap));
-extern char **rl_invoking_keyseqs PARAMS((rl_command_func_t *));
-
-extern void rl_function_dumper PARAMS((int));
-extern void rl_macro_dumper PARAMS((int));
-extern void rl_variable_dumper PARAMS((int));
-
-extern int rl_read_init_file PARAMS((const char *));
-extern int rl_parse_and_bind PARAMS((char *));
-
-/* Functions for manipulating keymaps. */
-extern Keymap rl_make_bare_keymap PARAMS((void));
-extern Keymap rl_copy_keymap PARAMS((Keymap));
-extern Keymap rl_make_keymap PARAMS((void));
-extern void rl_discard_keymap PARAMS((Keymap));
-
-extern Keymap rl_get_keymap_by_name PARAMS((const char *));
-extern char *rl_get_keymap_name PARAMS((Keymap));
-extern void rl_set_keymap PARAMS((Keymap));
-extern Keymap rl_get_keymap PARAMS((void));
-/* Undocumented; used internally only. */
-extern void rl_set_keymap_from_edit_mode PARAMS((void));
-extern char *rl_get_keymap_name_from_edit_mode PARAMS((void));
-
-/* Functions for manipulating the funmap, which maps command names to functions. */
-extern int rl_add_funmap_entry PARAMS((const char *, rl_command_func_t *));
-extern const char **rl_funmap_names PARAMS((void));
-/* Undocumented, only used internally -- there is only one funmap, and this
- function may be called only once. */
-extern void rl_initialize_funmap PARAMS((void));
-
-/* Utility functions for managing keyboard macros. */
-extern void rl_push_macro_input PARAMS((char *));
-
-/* Functions for undoing, from undo.c */
-extern void rl_add_undo PARAMS((enum undo_code, int, int, char *));
-extern void rl_free_undo_list PARAMS((void));
-extern int rl_do_undo PARAMS((void));
-extern int rl_begin_undo_group PARAMS((void));
-extern int rl_end_undo_group PARAMS((void));
-extern int rl_modifying PARAMS((int, int));
-
-/* Functions for redisplay. */
-extern void rl_redisplay PARAMS((void));
-extern int rl_on_new_line PARAMS((void));
-extern int rl_on_new_line_with_prompt PARAMS((void));
-extern int rl_forced_update_display PARAMS((void));
-extern int rl_clear_message PARAMS((void));
-extern int rl_reset_line_state PARAMS((void));
-extern int rl_crlf PARAMS((void));
-
-#if (defined (__STDC__) || defined (__cplusplus)) && defined (USE_VARARGS) && defined (PREFER_STDARG)
-extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2)));
-#else
-extern int rl_message ();
-#endif
-
-extern int rl_show_char PARAMS((int));
-
-/* Undocumented in texinfo manual. */
-extern int rl_character_len PARAMS((int, int));
-
-/* Save and restore internal prompt redisplay information. */
-extern void rl_save_prompt PARAMS((void));
-extern void rl_restore_prompt PARAMS((void));
-
-/* Modifying text. */
-extern void rl_replace_line PARAMS((const char *, int));
-extern int rl_insert_text PARAMS((const char *));
-extern int rl_delete_text PARAMS((int, int));
-extern int rl_kill_text PARAMS((int, int));
-extern char *rl_copy_text PARAMS((int, int));
-
-/* Terminal and tty mode management. */
-extern void rl_prep_terminal PARAMS((int));
-extern void rl_deprep_terminal PARAMS((void));
-extern void rl_tty_set_default_bindings PARAMS((Keymap));
-
-extern int rl_reset_terminal PARAMS((const char *));
-extern void rl_resize_terminal PARAMS((void));
-extern void rl_set_screen_size PARAMS((int, int));
-extern void rl_get_screen_size PARAMS((int *, int *));
-
-extern char *rl_get_termcap PARAMS((const char *));
-
-/* Functions for character input. */
-extern int rl_stuff_char PARAMS((int));
-extern int rl_execute_next PARAMS((int));
-extern int rl_clear_pending_input PARAMS((void));
-extern int rl_read_key PARAMS((void));
-extern int rl_getc PARAMS((FILE *));
-extern int rl_set_keyboard_input_timeout PARAMS((int));
-
-/* `Public' utility functions . */
-extern void rl_extend_line_buffer PARAMS((int));
-extern int rl_ding PARAMS((void));
-extern int rl_alphabetic PARAMS((int));
-
-/* Readline signal handling, from signals.c */
-extern int rl_set_signals PARAMS((void));
-extern int rl_clear_signals PARAMS((void));
-extern void rl_cleanup_after_signal PARAMS((void));
-extern void rl_reset_after_signal PARAMS((void));
-extern void rl_free_line_state PARAMS((void));
-
-extern int rl_set_paren_blink_timeout PARAMS((int));
-
-/* Undocumented. */
-extern int rl_maybe_save_line PARAMS((void));
-extern int rl_maybe_unsave_line PARAMS((void));
-extern int rl_maybe_replace_line PARAMS((void));
-
-/* Completion functions. */
-extern int rl_complete_internal PARAMS((int));
-extern void rl_display_match_list PARAMS((char **, int, int));
-
-extern char **rl_completion_matches PARAMS((const char *, rl_compentry_func_t *));
-extern char *rl_username_completion_function PARAMS((const char *, int));
-extern char *rl_filename_completion_function PARAMS((const char *, int));
-
-extern int rl_completion_mode PARAMS((rl_command_func_t *));
-
-#if 0
-/* Backwards compatibility (compat.c). These will go away sometime. */
-extern void free_undo_list PARAMS((void));
-extern int maybe_save_line PARAMS((void));
-extern int maybe_unsave_line PARAMS((void));
-extern int maybe_replace_line PARAMS((void));
-
-extern int ding PARAMS((void));
-extern int alphabetic PARAMS((int));
-extern int crlf PARAMS((void));
-
-extern char **completion_matches PARAMS((char *, rl_compentry_func_t *));
-extern char *username_completion_function PARAMS((const char *, int));
-extern char *filename_completion_function PARAMS((const char *, int));
-#endif
-
-/* **************************************************************** */
-/* */
-/* Well Published Variables */
-/* */
-/* **************************************************************** */
-
-/* The version of this incarnation of the readline library. */
-extern const char *rl_library_version; /* e.g., "4.2" */
-extern int rl_readline_version; /* e.g., 0x0402 */
-
-/* True if this is real GNU readline. */
-extern int rl_gnu_readline_p;
-
-/* Flags word encapsulating the current readline state. */
-extern int rl_readline_state;
-
-/* Says which editing mode readline is currently using. 1 means emacs mode;
- 0 means vi mode. */
-extern int rl_editing_mode;
-
-/* Insert or overwrite mode for emacs mode. 1 means insert mode; 0 means
- overwrite mode. Reset to insert mode on each input line. */
-extern int rl_insert_mode;
-
-/* The name of the calling program. You should initialize this to
- whatever was in argv[0]. It is used when parsing conditionals. */
-extern const char *rl_readline_name;
-
-/* The prompt readline uses. This is set from the argument to
- readline (), and should not be assigned to directly. */
-extern char *rl_prompt;
-
-/* The line buffer that is in use. */
-extern char *rl_line_buffer;
-
-/* The location of point, and end. */
-extern int rl_point;
-extern int rl_end;
-
-/* The mark, or saved cursor position. */
-extern int rl_mark;
-
-/* Flag to indicate that readline has finished with the current input
- line and should return it. */
-extern int rl_done;
-
-/* If set to a character value, that will be the next keystroke read. */
-extern int rl_pending_input;
-
-/* Non-zero if we called this function from _rl_dispatch(). It's present
- so functions can find out whether they were called from a key binding
- or directly from an application. */
-extern int rl_dispatching;
-
-/* Non-zero if the user typed a numeric argument before executing the
- current function. */
-extern int rl_explicit_arg;
-
-/* The current value of the numeric argument specified by the user. */
-extern int rl_numeric_arg;
-
-/* The address of the last command function Readline executed. */
-extern rl_command_func_t *rl_last_func;
-
-/* The name of the terminal to use. */
-extern const char *rl_terminal_name;
-
-/* The input and output streams. */
-extern FILE *rl_instream;
-extern FILE *rl_outstream;
-
-/* If non-zero, then this is the address of a function to call just
- before readline_internal () prints the first prompt. */
-extern rl_hook_func_t *rl_startup_hook;
-
-/* If non-zero, this is the address of a function to call just before
- readline_internal_setup () returns and readline_internal starts
- reading input characters. */
-extern rl_hook_func_t *rl_pre_input_hook;
-
-/* The address of a function to call periodically while Readline is
- awaiting character input, or NULL, for no event handling. */
-extern rl_hook_func_t *rl_event_hook;
-
-/* The address of the function to call to fetch a character from the current
- Readline input stream */
-extern rl_getc_func_t *rl_getc_function;
-
-extern rl_voidfunc_t *rl_redisplay_function;
-
-extern rl_vintfunc_t *rl_prep_term_function;
-extern rl_voidfunc_t *rl_deprep_term_function;
-
-/* Dispatch variables. */
-extern Keymap rl_executing_keymap;
-extern Keymap rl_binding_keymap;
-
-/* Display variables. */
-/* If non-zero, readline will erase the entire line, including any prompt,
- if the only thing typed on an otherwise-blank line is something bound to
- rl_newline. */
-extern int rl_erase_empty_line;
-
-/* If non-zero, the application has already printed the prompt (rl_prompt)
- before calling readline, so readline should not output it the first time
- redisplay is done. */
-extern int rl_already_prompted;
-
-/* A non-zero value means to read only this many characters rather than
- up to a character bound to accept-line. */
-extern int rl_num_chars_to_read;
-
-/* The text of a currently-executing keyboard macro. */
-extern char *rl_executing_macro;
-
-/* Variables to control readline signal handling. */
-/* If non-zero, readline will install its own signal handlers for
- SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */
-extern int rl_catch_signals;
-
-/* If non-zero, readline will install a signal handler for SIGWINCH
- that also attempts to call any calling application's SIGWINCH signal
- handler. Note that the terminal is not cleaned up before the
- application's signal handler is called; use rl_cleanup_after_signal()
- to do that. */
-extern int rl_catch_sigwinch;
-
-/* Completion variables. */
-/* Pointer to the generator function for completion_matches ().
- NULL means to use rl_filename_completion_function (), the default
- filename completer. */
-extern rl_compentry_func_t *rl_completion_entry_function;
-
-/* If rl_ignore_some_completions_function is non-NULL it is the address
- of a function to call after all of the possible matches have been
- generated, but before the actual completion is done to the input line.
- The function is called with one argument; a NULL terminated array
- of (char *). If your function removes any of the elements, they
- must be free()'ed. */
-extern rl_compignore_func_t *rl_ignore_some_completions_function;
-
-/* Pointer to alternative function to create matches.
- Function is called with TEXT, START, and END.
- START and END are indices in RL_LINE_BUFFER saying what the boundaries
- of TEXT are.
- If this function exists and returns NULL then call the value of
- rl_completion_entry_function to try to match, otherwise use the
- array of strings returned. */
-extern rl_completion_func_t *rl_attempted_completion_function;
-
-/* The basic list of characters that signal a break between words for the
- completer routine. The initial contents of this variable is what
- breaks words in the shell, i.e. "n\"\\'`@$>". */
-extern const char *rl_basic_word_break_characters;
-
-/* The list of characters that signal a break between words for
- rl_complete_internal. The default list is the contents of
- rl_basic_word_break_characters. */
-extern const char *rl_completer_word_break_characters;
-
-/* List of characters which can be used to quote a substring of the line.
- Completion occurs on the entire substring, and within the substring
- rl_completer_word_break_characters are treated as any other character,
- unless they also appear within this list. */
-extern const char *rl_completer_quote_characters;
-
-/* List of quote characters which cause a word break. */
-extern const char *rl_basic_quote_characters;
-
-/* List of characters that need to be quoted in filenames by the completer. */
-extern const char *rl_filename_quote_characters;
-
-/* List of characters that are word break characters, but should be left
- in TEXT when it is passed to the completion function. The shell uses
- this to help determine what kind of completing to do. */
-extern const char *rl_special_prefixes;
-
-/* If non-zero, then this is the address of a function to call when
- completing on a directory name. The function is called with
- the address of a string (the current directory name) as an arg. It
- changes what is displayed when the possible completions are printed
- or inserted. */
-extern rl_icppfunc_t *rl_directory_completion_hook;
-
-/* If non-zero, this is the address of a function to call when completing
- a directory name. This function takes the address of the directory name
- to be modified as an argument. Unlike rl_directory_completion_hook, it
- only modifies the directory name used in opendir(2), not what is displayed
- when the possible completions are printed or inserted. It is called
- before rl_directory_completion_hook. I'm not happy with how this works
- yet, so it's undocumented. */
-extern rl_icppfunc_t *rl_directory_rewrite_hook;
-
-/* Backwards compatibility with previous versions of readline. */
-#define rl_symbolic_link_hook rl_directory_completion_hook
-
-/* If non-zero, then this is the address of a function to call when
- completing a word would normally display the list of possible matches.
- This function is called instead of actually doing the display.
- It takes three arguments: (char **matches, int num_matches, int max_length)
- where MATCHES is the array of strings that matched, NUM_MATCHES is the
- number of strings in that array, and MAX_LENGTH is the length of the
- longest string in that array. */
-extern rl_compdisp_func_t *rl_completion_display_matches_hook;
-
-/* Non-zero means that the results of the matches are to be treated
- as filenames. This is ALWAYS zero on entry, and can only be changed
- within a completion entry finder function. */
-extern int rl_filename_completion_desired;
-
-/* Non-zero means that the results of the matches are to be quoted using
- double quotes (or an application-specific quoting mechanism) if the
- filename contains any characters in rl_word_break_chars. This is
- ALWAYS non-zero on entry, and can only be changed within a completion
- entry finder function. */
-extern int rl_filename_quoting_desired;
-
-/* Set to a function to quote a filename in an application-specific fashion.
- Called with the text to quote, the type of match found (single or multiple)
- and a pointer to the quoting character to be used, which the function can
- reset if desired. */
-extern rl_quote_func_t *rl_filename_quoting_function;
-
-/* Function to call to remove quoting characters from a filename. Called
- before completion is attempted, so the embedded quotes do not interfere
- with matching names in the file system. */
-extern rl_dequote_func_t *rl_filename_dequoting_function;
-
-/* Function to call to decide whether or not a word break character is
- quoted. If a character is quoted, it does not break words for the
- completer. */
-extern rl_linebuf_func_t *rl_char_is_quoted_p;
-
-/* Non-zero means to suppress normal filename completion after the
- user-specified completion function has been called. */
-extern int rl_attempted_completion_over;
-
-/* Set to a character describing the type of completion being attempted by
- rl_complete_internal; available for use by application completion
- functions. */
-extern int rl_completion_type;
-
-/* Character appended to completed words when at the end of the line. The
- default is a space. Nothing is added if this is '\0'. */
-extern int rl_completion_append_character;
-
-/* If set to non-zero by an application completion function,
- rl_completion_append_character will not be appended. */
-extern int rl_completion_suppress_append;
-
-/* Up to this many items will be displayed in response to a
- possible-completions call. After that, we ask the user if she
- is sure she wants to see them all. The default value is 100. */
-extern int rl_completion_query_items;
-
-/* If non-zero, a slash will be appended to completed filenames that are
- symbolic links to directory names, subject to the value of the
- mark-directories variable (which is user-settable). This exists so
- that application completion functions can override the user's preference
- (set via the mark-symlinked-directories variable) if appropriate.
- It's set to the value of _rl_complete_mark_symlink_dirs in
- rl_complete_internal before any application-specific completion
- function is called, so without that function doing anything, the user's
- preferences are honored. */
-extern int rl_completion_mark_symlink_dirs;
-
-/* If non-zero, then disallow duplicates in the matches. */
-extern int rl_ignore_completion_duplicates;
-
-/* If this is non-zero, completion is (temporarily) inhibited, and the
- completion character will be inserted as any other. */
-extern int rl_inhibit_completion;
-
-/* Definitions available for use by readline clients. */
-#define RL_PROMPT_START_IGNORE '\001'
-#define RL_PROMPT_END_IGNORE '\002'
-
-/* Possible values for do_replace argument to rl_filename_quoting_function,
- called by rl_complete_internal. */
-#define NO_MATCH 0
-#define SINGLE_MATCH 1
-#define MULT_MATCH 2
-
-/* Possible state values for rl_readline_state */
-#define RL_STATE_NONE 0x00000 /* no state; before first call */
-
-#define RL_STATE_INITIALIZING 0x00001 /* initializing */
-#define RL_STATE_INITIALIZED 0x00002 /* initialization done */
-#define RL_STATE_TERMPREPPED 0x00004 /* terminal is prepped */
-#define RL_STATE_READCMD 0x00008 /* reading a command key */
-#define RL_STATE_METANEXT 0x00010 /* reading input after ESC */
-#define RL_STATE_DISPATCHING 0x00020 /* dispatching to a command */
-#define RL_STATE_MOREINPUT 0x00040 /* reading more input in a command function */
-#define RL_STATE_ISEARCH 0x00080 /* doing incremental search */
-#define RL_STATE_NSEARCH 0x00100 /* doing non-inc search */
-#define RL_STATE_SEARCH 0x00200 /* doing a history search */
-#define RL_STATE_NUMERICARG 0x00400 /* reading numeric argument */
-#define RL_STATE_MACROINPUT 0x00800 /* getting input from a macro */
-#define RL_STATE_MACRODEF 0x01000 /* defining keyboard macro */
-#define RL_STATE_OVERWRITE 0x02000 /* overwrite mode */
-#define RL_STATE_COMPLETING 0x04000 /* doing completion */
-#define RL_STATE_SIGHANDLER 0x08000 /* in readline sighandler */
-#define RL_STATE_UNDOING 0x10000 /* doing an undo */
-#define RL_STATE_INPUTPENDING 0x20000 /* rl_execute_next called */
-
-#define RL_STATE_DONE 0x80000 /* done; accepted line */
-
-#define RL_SETSTATE(x) (rl_readline_state |= (x))
-#define RL_UNSETSTATE(x) (rl_readline_state &= ~(x))
-#define RL_ISSTATE(x) (rl_readline_state & (x))
-
-struct readline_state {
- /* line state */
- int point;
- int end;
- int mark;
- char *buffer;
- int buflen;
- UNDO_LIST *ul;
- char *prompt;
-
- /* global state */
- int rlstate;
- int done;
- Keymap kmap;
-
- /* input state */
- rl_command_func_t *lastfunc;
- int insmode;
- int edmode;
- int kseqlen;
- FILE *inf;
- FILE *outf;
- int pendingin;
- char *macro;
-
- /* signal state */
- int catchsigs;
- int catchsigwinch;
-
- /* reserved for future expansion, so the struct size doesn't change */
- char reserved[64];
-};
-
-extern int rl_save_state PARAMS((struct readline_state *));
-extern int rl_restore_state PARAMS((struct readline_state *));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _READLINE_H_ */
diff --git a/readline-4.3/rlconf.h b/readline-4.3/rlconf.h
deleted file mode 100644
index c651fd8..0000000
--- a/readline-4.3/rlconf.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* rlconf.h -- readline configuration definitions */
-
-/* Copyright (C) 1994 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLCONF_H_)
-#define _RLCONF_H_
-
-/* Define this if you want the vi-mode editing available. */
-#define VI_MODE
-
-/* Define this to get an indication of file type when listing completions. */
-#define VISIBLE_STATS
-
-/* This definition is needed by readline.c, rltty.c, and signals.c. */
-/* If on, then readline handles signals in a way that doesn't screw. */
-#define HANDLE_SIGNALS
-
-/* Ugly but working hack for binding prefix meta. */
-#define PREFIX_META_HACK
-
-/* The final, last-ditch effort file name for an init file. */
-#define DEFAULT_INPUTRC "~/.inputrc"
-
-/* If defined, expand tabs to spaces. */
-#define DISPLAY_TABS
-
-/* If defined, use the terminal escape sequence to move the cursor forward
- over a character when updating the line rather than rewriting it. */
-/* #define HACK_TERMCAP_MOTION */
-
-/* The string inserted by the `insert comment' command. */
-#define RL_COMMENT_BEGIN_DEFAULT "#"
-
-/* Define this if you want code that allows readline to be used in an
- X `callback' style. */
-#define READLINE_CALLBACKS
-
-/* Define this if you want the cursor to indicate insert or overwrite mode. */
-/* #define CURSOR_MODE */
-
-#endif /* _RLCONF_H_ */
diff --git a/readline-4.3/rldefs.h b/readline-4.3/rldefs.h
deleted file mode 100644
index 4a28bd1..0000000
--- a/readline-4.3/rldefs.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/* rldefs.h -- an attempt to isolate some of the system-specific defines
- for readline. This should be included after any files that define
- system-specific constants like _POSIX_VERSION or USG. */
-
-/* Copyright (C) 1987,1989 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLDEFS_H_)
-#define _RLDEFS_H_
-
-#if defined (HAVE_CONFIG_H)
-# include "config.h"
-#endif
-
-#include "rlstdc.h"
-
-#if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING)
-# define TERMIOS_TTY_DRIVER
-#else
-# if defined (HAVE_TERMIO_H)
-# define TERMIO_TTY_DRIVER
-# else
-# define NEW_TTY_DRIVER
-# endif
-#endif
-
-/* Posix macro to check file in statbuf for directory-ness.
- This requires that <sys/stat.h> be included before this test. */
-#if defined (S_IFDIR) && !defined (S_ISDIR)
-# define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR)
-#endif
-
-/* Decide which flavor of the header file describing the C library
- string functions to include and include it. */
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if !defined (strchr) && !defined (__STDC__)
-extern char *strchr (), *strrchr ();
-#endif /* !strchr && !__STDC__ */
-
-#if defined (PREFER_STDARG)
-# include <stdarg.h>
-#else
-# if defined (PREFER_VARARGS)
-# include <varargs.h>
-# endif
-#endif
-
-#if defined (HAVE_STRCASECMP)
-#define _rl_stricmp strcasecmp
-#define _rl_strnicmp strncasecmp
-#else
-extern int _rl_stricmp PARAMS((char *, char *));
-extern int _rl_strnicmp PARAMS((char *, char *, int));
-#endif
-
-#if defined (HAVE_STRPBRK)
-# define _rl_strpbrk(a,b) strpbrk((a),(b))
-#else
-extern char *_rl_strpbrk PARAMS((const char *, const char *));
-#endif
-
-#if !defined (emacs_mode)
-# define no_mode -1
-# define vi_mode 0
-# define emacs_mode 1
-#endif
-
-#if !defined (RL_IM_INSERT)
-# define RL_IM_INSERT 1
-# define RL_IM_OVERWRITE 0
-#
-# define RL_IM_DEFAULT RL_IM_INSERT
-#endif
-
-/* If you cast map[key].function to type (Keymap) on a Cray,
- the compiler takes the value of map[key].function and
- divides it by 4 to convert between pointer types (pointers
- to functions and pointers to structs are different sizes).
- This is not what is wanted. */
-#if defined (CRAY)
-# define FUNCTION_TO_KEYMAP(map, key) (Keymap)((int)map[key].function)
-# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)((int)(data))
-#else
-# define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function)
-# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)(data)
-#endif
-
-#ifndef savestring
-#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
-#endif
-
-/* Possible values for _rl_bell_preference. */
-#define NO_BELL 0
-#define AUDIBLE_BELL 1
-#define VISIBLE_BELL 2
-
-/* Definitions used when searching the line for characters. */
-/* NOTE: it is necessary that opposite directions are inverses */
-#define FTO 1 /* forward to */
-#define BTO -1 /* backward to */
-#define FFIND 2 /* forward find */
-#define BFIND -2 /* backward find */
-
-/* Possible values for the found_quote flags word used by the completion
- functions. It says what kind of (shell-like) quoting we found anywhere
- in the line. */
-#define RL_QF_SINGLE_QUOTE 0x01
-#define RL_QF_DOUBLE_QUOTE 0x02
-#define RL_QF_BACKSLASH 0x04
-#define RL_QF_OTHER_QUOTE 0x08
-
-/* Default readline line buffer length. */
-#define DEFAULT_BUFFER_SIZE 256
-
-#if !defined (STREQ)
-#define STREQ(a, b) (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
-#define STREQN(a, b, n) (((n) == 0) ? (1) \
- : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
-#endif
-
-#if !defined (FREE)
-# define FREE(x) if (x) free (x)
-#endif
-
-#if !defined (SWAP)
-# define SWAP(s, e) do { int t; t = s; s = e; e = t; } while (0)
-#endif
-
-/* CONFIGURATION SECTION */
-#include "rlconf.h"
-
-#endif /* !_RLDEFS_H_ */
diff --git a/readline-4.3/rlmbutil.h b/readline-4.3/rlmbutil.h
deleted file mode 100644
index 27ca32b..0000000
--- a/readline-4.3/rlmbutil.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* rlmbutil.h -- utility functions for multibyte characters. */
-
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RL_MBUTIL_H_)
-#define _RL_MBUTIL_H_
-
-#include "rlstdc.h"
-
-/************************************************/
-/* check multibyte capability for I18N code */
-/************************************************/
-
-/* For platforms which support the ISO C amendement 1 functionality we
- support user defined character classes. */
- /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */
-#if defined (HAVE_WCTYPE_H) && defined (HAVE_WCHAR_H)
-# include <wchar.h>
-# include <wctype.h>
-# if defined (HAVE_MBSRTOWCS) /* system is supposed to support XPG5 */
-# define HANDLE_MULTIBYTE 1
-# endif
-#endif
-
-/* Some systems, like BeOS, have multibyte encodings but lack mbstate_t. */
-#if HANDLE_MULTIBYTE && !defined (HAVE_MBSTATE_T)
-# define wcsrtombs(dest, src, len, ps) (wcsrtombs) (dest, src, len, 0)
-# define mbsrtowcs(dest, src, len, ps) (mbsrtowcs) (dest, src, len, 0)
-# define wcrtomb(s, wc, ps) (wcrtomb) (s, wc, 0)
-# define mbrtowc(pwc, s, n, ps) (mbrtowc) (pwc, s, n, 0)
-# define mbrlen(s, n, ps) (mbrlen) (s, n, 0)
-# define mbstate_t int
-#endif
-
-/* Make sure MB_LEN_MAX is at least 16 on systems that claim to be able to
- handle multibyte chars (some systems define MB_LEN_MAX as 1) */
-#ifdef HANDLE_MULTIBYTE
-# include <limits.h>
-# if defined(MB_LEN_MAX) && (MB_LEN_MAX < 16)
-# undef MB_LEN_MAX
-# endif
-# if !defined (MB_LEN_MAX)
-# define MB_LEN_MAX 16
-# endif
-#endif
-
-/************************************************/
-/* end of multibyte capability checks for I18N */
-/************************************************/
-
-/*
- * Flags for _rl_find_prev_mbchar and _rl_find_next_mbchar:
- *
- * MB_FIND_ANY find any multibyte character
- * MB_FIND_NONZERO find a non-zero-width multibyte character
- */
-
-#define MB_FIND_ANY 0x00
-#define MB_FIND_NONZERO 0x01
-
-extern int _rl_find_prev_mbchar PARAMS((char *, int, int));
-extern int _rl_find_next_mbchar PARAMS((char *, int, int, int));
-
-#ifdef HANDLE_MULTIBYTE
-
-extern int _rl_compare_chars PARAMS((char *, int, mbstate_t *, char *, int, mbstate_t *));
-extern int _rl_get_char_len PARAMS((char *, mbstate_t *));
-extern int _rl_adjust_point PARAMS((char *, int, mbstate_t *));
-
-extern int _rl_read_mbchar PARAMS((char *, int));
-extern int _rl_read_mbstring PARAMS((int, char *, int));
-
-extern int _rl_is_mbchar_matched PARAMS((char *, int, int, char *, int));
-
-#else /* !HANDLE_MULTIBYTE */
-
-#undef MB_LEN_MAX
-#undef MB_CUR_MAX
-
-#define MB_LEN_MAX 1
-#define MB_CUR_MAX 1
-
-#define _rl_find_prev_mbchar(b, i, f) (((i) == 0) ? (i) : ((i) - 1))
-#define _rl_find_next_mbchar(b, i1, i2, f) ((i1) + (i2))
-
-#endif /* !HANDLE_MULTIBYTE */
-
-extern int rl_byte_oriented;
-
-#endif /* _RL_MBUTIL_H_ */
diff --git a/readline-4.3/rlprivate.h b/readline-4.3/rlprivate.h
deleted file mode 100644
index ccb9144..0000000
--- a/readline-4.3/rlprivate.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/* rlprivate.h -- functions and variables global to the readline library,
- but not intended for use by applications. */
-
-/* Copyright (C) 1999 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RL_PRIVATE_H_)
-#define _RL_PRIVATE_H_
-
-#include "rlconf.h" /* for VISIBLE_STATS */
-#include "rlstdc.h"
-#include "posixjmp.h" /* defines procenv_t */
-
-/*************************************************************************
- * *
- * Global functions undocumented in texinfo manual and not in readline.h *
- * *
- *************************************************************************/
-
-/*************************************************************************
- * *
- * Global variables undocumented in texinfo manual and not in readline.h *
- * *
- *************************************************************************/
-
-/* complete.c */
-extern int rl_complete_with_tilde_expansion;
-#if defined (VISIBLE_STATS)
-extern int rl_visible_stats;
-#endif /* VISIBLE_STATS */
-
-/* readline.c */
-extern int rl_line_buffer_len;
-extern int rl_arg_sign;
-extern int rl_visible_prompt_length;
-extern int readline_echoing_p;
-extern int rl_key_sequence_length;
-extern int rl_byte_oriented;
-
-/* display.c */
-extern int rl_display_fixed;
-
-/* parens.c */
-extern int rl_blink_matching_paren;
-
-/*************************************************************************
- * *
- * Global functions and variables unsed and undocumented *
- * *
- *************************************************************************/
-
-/* kill.c */
-extern int rl_set_retained_kills PARAMS((int));
-
-/* terminal.c */
-extern void _rl_set_screen_size PARAMS((int, int));
-
-/* undo.c */
-extern int _rl_fix_last_undo_of_type PARAMS((int, int, int));
-
-/* util.c */
-extern char *_rl_savestring PARAMS((const char *));
-
-/*************************************************************************
- * *
- * Functions and variables private to the readline library *
- * *
- *************************************************************************/
-
-/* NOTE: Functions and variables prefixed with `_rl_' are
- pseudo-global: they are global so they can be shared
- between files in the readline library, but are not intended
- to be visible to readline callers. */
-
-/*************************************************************************
- * Undocumented private functions *
- *************************************************************************/
-
-#if defined(READLINE_CALLBACKS)
-
-/* readline.c */
-extern void readline_internal_setup PARAMS((void));
-extern char *readline_internal_teardown PARAMS((int));
-extern int readline_internal_char PARAMS((void));
-
-#endif /* READLINE_CALLBACKS */
-
-/* bind.c */
-extern void _rl_bind_if_unbound PARAMS((const char *, rl_command_func_t *));
-
-/* complete.c */
-extern char _rl_find_completion_word PARAMS((int *, int *));
-extern void _rl_free_match_list PARAMS((char **));
-
-/* display.c */
-extern char *_rl_strip_prompt PARAMS((char *));
-extern void _rl_move_cursor_relative PARAMS((int, const char *));
-extern void _rl_move_vert PARAMS((int));
-extern void _rl_save_prompt PARAMS((void));
-extern void _rl_restore_prompt PARAMS((void));
-extern char *_rl_make_prompt_for_search PARAMS((int));
-extern void _rl_erase_at_end_of_line PARAMS((int));
-extern void _rl_clear_to_eol PARAMS((int));
-extern void _rl_clear_screen PARAMS((void));
-extern void _rl_update_final PARAMS((void));
-extern void _rl_redisplay_after_sigwinch PARAMS((void));
-extern void _rl_clean_up_for_exit PARAMS((void));
-extern void _rl_erase_entire_line PARAMS((void));
-extern int _rl_current_display_line PARAMS((void));
-
-/* input.c */
-extern int _rl_any_typein PARAMS((void));
-extern int _rl_input_available PARAMS((void));
-extern int _rl_input_queued PARAMS((int));
-extern void _rl_insert_typein PARAMS((int));
-extern int _rl_unget_char PARAMS((int));
-
-/* macro.c */
-extern void _rl_with_macro_input PARAMS((char *));
-extern int _rl_next_macro_key PARAMS((void));
-extern void _rl_push_executing_macro PARAMS((void));
-extern void _rl_pop_executing_macro PARAMS((void));
-extern void _rl_add_macro_char PARAMS((int));
-extern void _rl_kill_kbd_macro PARAMS((void));
-
-/* misc.c */
-extern int _rl_init_argument PARAMS((void));
-extern void _rl_start_using_history PARAMS((void));
-extern int _rl_free_saved_history_line PARAMS((void));
-extern void _rl_set_insert_mode PARAMS((int, int));
-
-/* nls.c */
-extern int _rl_init_eightbit PARAMS((void));
-
-/* parens.c */
-extern void _rl_enable_paren_matching PARAMS((int));
-
-/* readline.c */
-extern void _rl_init_line_state PARAMS((void));
-extern void _rl_set_the_line PARAMS((void));
-extern int _rl_dispatch PARAMS((int, Keymap));
-extern int _rl_dispatch_subseq PARAMS((int, Keymap, int));
-
-/* rltty.c */
-extern int _rl_disable_tty_signals PARAMS((void));
-extern int _rl_restore_tty_signals PARAMS((void));
-
-/* terminal.c */
-extern void _rl_get_screen_size PARAMS((int, int));
-extern int _rl_init_terminal_io PARAMS((const char *));
-#ifdef _MINIX
-extern void _rl_output_character_function PARAMS((int));
-#else
-extern int _rl_output_character_function PARAMS((int));
-#endif
-extern void _rl_output_some_chars PARAMS((const char *, int));
-extern int _rl_backspace PARAMS((int));
-extern void _rl_enable_meta_key PARAMS((void));
-extern void _rl_control_keypad PARAMS((int));
-extern void _rl_set_cursor PARAMS((int, int));
-
-/* text.c */
-extern void _rl_fix_point PARAMS((int));
-extern int _rl_replace_text PARAMS((const char *, int, int));
-extern int _rl_insert_char PARAMS((int, int));
-extern int _rl_overwrite_char PARAMS((int, int));
-extern int _rl_overwrite_rubout PARAMS((int, int));
-extern int _rl_rubout_char PARAMS((int, int));
-#if defined (HANDLE_MULTIBYTE)
-extern int _rl_char_search_internal PARAMS((int, int, char *, int));
-#else
-extern int _rl_char_search_internal PARAMS((int, int, int));
-#endif
-extern int _rl_set_mark_at_pos PARAMS((int));
-
-/* util.c */
-extern int _rl_abort_internal PARAMS((void));
-extern char *_rl_strindex PARAMS((const char *, const char *));
-extern int _rl_qsort_string_compare PARAMS((char **, char **));
-extern int (_rl_uppercase_p) PARAMS((int));
-extern int (_rl_lowercase_p) PARAMS((int));
-extern int (_rl_pure_alphabetic) PARAMS((int));
-extern int (_rl_digit_p) PARAMS((int));
-extern int (_rl_to_lower) PARAMS((int));
-extern int (_rl_to_upper) PARAMS((int));
-extern int (_rl_digit_value) PARAMS((int));
-
-/* vi_mode.c */
-extern void _rl_vi_initialize_line PARAMS((void));
-extern void _rl_vi_reset_last PARAMS((void));
-extern void _rl_vi_set_last PARAMS((int, int, int));
-extern int _rl_vi_textmod_command PARAMS((int));
-extern void _rl_vi_done_inserting PARAMS((void));
-
-/*************************************************************************
- * Undocumented private variables *
- *************************************************************************/
-
-/* bind.c */
-extern const char *_rl_possible_control_prefixes[];
-extern const char *_rl_possible_meta_prefixes[];
-
-/* complete.c */
-extern int _rl_complete_show_all;
-extern int _rl_complete_mark_directories;
-extern int _rl_complete_mark_symlink_dirs;
-extern int _rl_print_completions_horizontally;
-extern int _rl_completion_case_fold;
-extern int _rl_match_hidden_files;
-extern int _rl_page_completions;
-
-/* display.c */
-extern int _rl_vis_botlin;
-extern int _rl_last_c_pos;
-extern int _rl_suppress_redisplay;
-extern char *rl_display_prompt;
-
-/* isearch.c */
-extern char *_rl_isearch_terminators;
-
-/* macro.c */
-extern char *_rl_executing_macro;
-
-/* misc.c */
-extern int _rl_history_preserve_point;
-extern int _rl_history_saved_point;
-
-/* readline.c */
-extern int _rl_horizontal_scroll_mode;
-extern int _rl_mark_modified_lines;
-extern int _rl_bell_preference;
-extern int _rl_meta_flag;
-extern int _rl_convert_meta_chars_to_ascii;
-extern int _rl_output_meta_chars;
-extern char *_rl_comment_begin;
-extern unsigned char _rl_parsing_conditionalized_out;
-extern Keymap _rl_keymap;
-extern FILE *_rl_in_stream;
-extern FILE *_rl_out_stream;
-extern int _rl_last_command_was_kill;
-extern int _rl_eof_char;
-extern procenv_t readline_top_level;
-
-/* terminal.c */
-extern int _rl_enable_keypad;
-extern int _rl_enable_meta;
-extern char *_rl_term_clreol;
-extern char *_rl_term_clrpag;
-extern char *_rl_term_im;
-extern char *_rl_term_ic;
-extern char *_rl_term_ei;
-extern char *_rl_term_DC;
-extern char *_rl_term_up;
-extern char *_rl_term_dc;
-extern char *_rl_term_cr;
-extern char *_rl_term_IC;
-extern int _rl_screenheight;
-extern int _rl_screenwidth;
-extern int _rl_screenchars;
-extern int _rl_terminal_can_insert;
-extern int _rl_term_autowrap;
-
-/* undo.c */
-extern int _rl_doing_an_undo;
-extern int _rl_undo_group_level;
-
-#endif /* _RL_PRIVATE_H_ */
diff --git a/readline-4.3/rlshell.h b/readline-4.3/rlshell.h
deleted file mode 100644
index 3c03fba..0000000
--- a/readline-4.3/rlshell.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* rlshell.h -- utility functions normally provided by bash. */
-
-/* Copyright (C) 1999 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RL_SHELL_H_)
-#define _RL_SHELL_H_
-
-#include "rlstdc.h"
-
-extern char *sh_single_quote PARAMS((char *));
-extern void sh_set_lines_and_columns PARAMS((int, int));
-extern char *sh_get_env_value PARAMS((const char *));
-extern char *sh_get_home_dir PARAMS((void));
-extern int sh_unset_nodelay_mode PARAMS((int));
-
-#endif /* _RL_SHELL_H_ */
diff --git a/readline-4.3/rlstdc.h b/readline-4.3/rlstdc.h
deleted file mode 100644
index d6a22b3..0000000
--- a/readline-4.3/rlstdc.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* stdc.h -- macros to make source compile on both ANSI C and K&R C
- compilers. */
-
-/* Copyright (C) 1993 Free Software Foundation, Inc.
-
- This file is part of GNU Bash, the Bourne Again SHell.
-
- Bash is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- Bash is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
- License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Bash; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RL_STDC_H_)
-#define _RL_STDC_H_
-
-/* Adapted from BSD /usr/include/sys/cdefs.h. */
-
-/* A function can be defined using prototypes and compile on both ANSI C
- and traditional C compilers with something like this:
- extern char *func PARAMS((char *, char *, int)); */
-
-#if !defined (PARAMS)
-# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
-# define PARAMS(protos) protos
-# else
-# define PARAMS(protos) ()
-# endif
-#endif
-
-#ifndef __attribute__
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
-# define __attribute__(x)
-# endif
-#endif
-
-#endif /* !_RL_STDC_H_ */
diff --git a/readline-4.3/rltty.c b/readline-4.3/rltty.c
deleted file mode 100644
index 755efeb..0000000
--- a/readline-4.3/rltty.c
+++ /dev/null
@@ -1,911 +0,0 @@
-/* rltty.c -- functions to prepare and restore the terminal for readline's
- use. */
-
-/* Copyright (C) 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <signal.h>
-#include <errno.h>
-#include <stdio.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include "rldefs.h"
-
-#if defined (GWINSZ_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL */
-
-#include "rltty.h"
-#include "readline.h"
-#include "rlprivate.h"
-
-#if !defined (errno)
-extern int errno;
-#endif /* !errno */
-
-rl_vintfunc_t *rl_prep_term_function = rl_prep_terminal;
-rl_voidfunc_t *rl_deprep_term_function = rl_deprep_terminal;
-
-static void block_sigint PARAMS((void));
-static void release_sigint PARAMS((void));
-
-static void set_winsize PARAMS((int));
-
-/* **************************************************************** */
-/* */
-/* Signal Management */
-/* */
-/* **************************************************************** */
-
-#if defined (HAVE_POSIX_SIGNALS)
-static sigset_t sigint_set, sigint_oset;
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
-static int sigint_oldmask;
-# endif /* HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
-static int sigint_blocked;
-
-/* Cause SIGINT to not be delivered until the corresponding call to
- release_sigint(). */
-static void
-block_sigint ()
-{
- if (sigint_blocked)
- return;
-
-#if defined (HAVE_POSIX_SIGNALS)
- sigemptyset (&sigint_set);
- sigemptyset (&sigint_oset);
- sigaddset (&sigint_set, SIGINT);
- sigprocmask (SIG_BLOCK, &sigint_set, &sigint_oset);
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
- sigint_oldmask = sigblock (sigmask (SIGINT));
-# else /* !HAVE_BSD_SIGNALS */
-# if defined (HAVE_USG_SIGHOLD)
- sighold (SIGINT);
-# endif /* HAVE_USG_SIGHOLD */
-# endif /* !HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
- sigint_blocked = 1;
-}
-
-/* Allow SIGINT to be delivered. */
-static void
-release_sigint ()
-{
- if (sigint_blocked == 0)
- return;
-
-#if defined (HAVE_POSIX_SIGNALS)
- sigprocmask (SIG_SETMASK, &sigint_oset, (sigset_t *)NULL);
-#else
-# if defined (HAVE_BSD_SIGNALS)
- sigsetmask (sigint_oldmask);
-# else /* !HAVE_BSD_SIGNALS */
-# if defined (HAVE_USG_SIGHOLD)
- sigrelse (SIGINT);
-# endif /* HAVE_USG_SIGHOLD */
-# endif /* !HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
- sigint_blocked = 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Saving and Restoring the TTY */
-/* */
-/* **************************************************************** */
-
-/* Non-zero means that the terminal is in a prepped state. */
-static int terminal_prepped;
-
-static _RL_TTY_CHARS _rl_tty_chars, _rl_last_tty_chars;
-
-/* If non-zero, means that this process has called tcflow(fd, TCOOFF)
- and output is suspended. */
-#if defined (__ksr1__)
-static int ksrflow;
-#endif
-
-/* Dummy call to force a backgrounded readline to stop before it tries
- to get the tty settings. */
-static void
-set_winsize (tty)
- int tty;
-{
-#if defined (TIOCGWINSZ)
- struct winsize w;
-
- if (ioctl (tty, TIOCGWINSZ, &w) == 0)
- (void) ioctl (tty, TIOCSWINSZ, &w);
-#endif /* TIOCGWINSZ */
-}
-
-#if defined (NEW_TTY_DRIVER)
-
-/* Values for the `flags' field of a struct bsdtty. This tells which
- elements of the struct bsdtty have been fetched from the system and
- are valid. */
-#define SGTTY_SET 0x01
-#define LFLAG_SET 0x02
-#define TCHARS_SET 0x04
-#define LTCHARS_SET 0x08
-
-struct bsdtty {
- struct sgttyb sgttyb; /* Basic BSD tty driver information. */
- int lflag; /* Local mode flags, like LPASS8. */
-#if defined (TIOCGETC)
- struct tchars tchars; /* Terminal special characters, including ^S and ^Q. */
-#endif
-#if defined (TIOCGLTC)
- struct ltchars ltchars; /* 4.2 BSD editing characters */
-#endif
- int flags; /* Bitmap saying which parts of the struct are valid. */
-};
-
-#define TIOTYPE struct bsdtty
-
-static TIOTYPE otio;
-
-static void save_tty_chars PARAMS((TIOTYPE *));
-static int _get_tty_settings PARAMS((int, TIOTYPE *));
-static int get_tty_settings PARAMS((int, TIOTYPE *));
-static int _set_tty_settings PARAMS((int, TIOTYPE *));
-static int set_tty_settings PARAMS((int, TIOTYPE *));
-
-static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
-
-static void
-save_tty_chars (tiop)
- TIOTYPE *tiop;
-{
- _rl_last_tty_chars = _rl_tty_chars;
-
- if (tiop->flags & SGTTY_SET)
- {
- _rl_tty_chars.t_erase = tiop->sgttyb.sg_erase;
- _rl_tty_chars.t_kill = tiop->sgttyb.sg_kill;
- }
-
- if (tiop->flags & TCHARS_SET)
- {
- _rl_tty_chars.t_intr = tiop->tchars.t_intrc;
- _rl_tty_chars.t_quit = tiop->tchars.t_quitc;
- _rl_tty_chars.t_start = tiop->tchars.t_startc;
- _rl_tty_chars.t_stop = tiop->tchars.t_stopc;
- _rl_tty_chars.t_eof = tiop->tchars.t_eofc;
- _rl_tty_chars.t_eol = '\n';
- _rl_tty_chars.t_eol2 = tiop->tchars.t_brkc;
- }
-
- if (tiop->flags & LTCHARS_SET)
- {
- _rl_tty_chars.t_susp = tiop->ltchars.t_suspc;
- _rl_tty_chars.t_dsusp = tiop->ltchars.t_dsuspc;
- _rl_tty_chars.t_reprint = tiop->ltchars.t_rprntc;
- _rl_tty_chars.t_flush = tiop->ltchars.t_flushc;
- _rl_tty_chars.t_werase = tiop->ltchars.t_werasc;
- _rl_tty_chars.t_lnext = tiop->ltchars.t_lnextc;
- }
-
- _rl_tty_chars.t_status = -1;
-}
-
-static int
-get_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- set_winsize (tty);
-
- tiop->flags = tiop->lflag = 0;
-
- if (ioctl (tty, TIOCGETP, &(tiop->sgttyb)) < 0)
- return -1;
- tiop->flags |= SGTTY_SET;
-
-#if defined (TIOCLGET)
- if (ioctl (tty, TIOCLGET, &(tiop->lflag)) == 0)
- tiop->flags |= LFLAG_SET;
-#endif
-
-#if defined (TIOCGETC)
- if (ioctl (tty, TIOCGETC, &(tiop->tchars)) == 0)
- tiop->flags |= TCHARS_SET;
-#endif
-
-#if defined (TIOCGLTC)
- if (ioctl (tty, TIOCGLTC, &(tiop->ltchars)) == 0)
- tiop->flags |= LTCHARS_SET;
-#endif
-
- return 0;
-}
-
-static int
-set_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- if (tiop->flags & SGTTY_SET)
- {
- ioctl (tty, TIOCSETN, &(tiop->sgttyb));
- tiop->flags &= ~SGTTY_SET;
- }
- readline_echoing_p = 1;
-
-#if defined (TIOCLSET)
- if (tiop->flags & LFLAG_SET)
- {
- ioctl (tty, TIOCLSET, &(tiop->lflag));
- tiop->flags &= ~LFLAG_SET;
- }
-#endif
-
-#if defined (TIOCSETC)
- if (tiop->flags & TCHARS_SET)
- {
- ioctl (tty, TIOCSETC, &(tiop->tchars));
- tiop->flags &= ~TCHARS_SET;
- }
-#endif
-
-#if defined (TIOCSLTC)
- if (tiop->flags & LTCHARS_SET)
- {
- ioctl (tty, TIOCSLTC, &(tiop->ltchars));
- tiop->flags &= ~LTCHARS_SET;
- }
-#endif
-
- return 0;
-}
-
-static void
-prepare_terminal_settings (meta_flag, oldtio, tiop)
- int meta_flag;
- TIOTYPE oldtio, *tiop;
-{
- readline_echoing_p = (oldtio.sgttyb.sg_flags & ECHO);
-
- /* Copy the original settings to the structure we're going to use for
- our settings. */
- tiop->sgttyb = oldtio.sgttyb;
- tiop->lflag = oldtio.lflag;
-#if defined (TIOCGETC)
- tiop->tchars = oldtio.tchars;
-#endif
-#if defined (TIOCGLTC)
- tiop->ltchars = oldtio.ltchars;
-#endif
- tiop->flags = oldtio.flags;
-
- /* First, the basic settings to put us into character-at-a-time, no-echo
- input mode. */
- tiop->sgttyb.sg_flags &= ~(ECHO | CRMOD);
- tiop->sgttyb.sg_flags |= CBREAK;
-
- /* If this terminal doesn't care how the 8th bit is used, then we can
- use it for the meta-key. If only one of even or odd parity is
- specified, then the terminal is using parity, and we cannot. */
-#if !defined (ANYP)
-# define ANYP (EVENP | ODDP)
-#endif
- if (((oldtio.sgttyb.sg_flags & ANYP) == ANYP) ||
- ((oldtio.sgttyb.sg_flags & ANYP) == 0))
- {
- tiop->sgttyb.sg_flags |= ANYP;
-
- /* Hack on local mode flags if we can. */
-#if defined (TIOCLGET)
-# if defined (LPASS8)
- tiop->lflag |= LPASS8;
-# endif /* LPASS8 */
-#endif /* TIOCLGET */
- }
-
-#if defined (TIOCGETC)
-# if defined (USE_XON_XOFF)
- /* Get rid of terminal output start and stop characters. */
- tiop->tchars.t_stopc = -1; /* C-s */
- tiop->tchars.t_startc = -1; /* C-q */
-
- /* If there is an XON character, bind it to restart the output. */
- if (oldtio.tchars.t_startc != -1)
- rl_bind_key (oldtio.tchars.t_startc, rl_restart_output);
-# endif /* USE_XON_XOFF */
-
- /* If there is an EOF char, bind _rl_eof_char to it. */
- if (oldtio.tchars.t_eofc != -1)
- _rl_eof_char = oldtio.tchars.t_eofc;
-
-# if defined (NO_KILL_INTR)
- /* Get rid of terminal-generated SIGQUIT and SIGINT. */
- tiop->tchars.t_quitc = -1; /* C-\ */
- tiop->tchars.t_intrc = -1; /* C-c */
-# endif /* NO_KILL_INTR */
-#endif /* TIOCGETC */
-
-#if defined (TIOCGLTC)
- /* Make the interrupt keys go away. Just enough to make people happy. */
- tiop->ltchars.t_dsuspc = -1; /* C-y */
- tiop->ltchars.t_lnextc = -1; /* C-v */
-#endif /* TIOCGLTC */
-}
-
-#else /* !defined (NEW_TTY_DRIVER) */
-
-#if !defined (VMIN)
-# define VMIN VEOF
-#endif
-
-#if !defined (VTIME)
-# define VTIME VEOL
-#endif
-
-#if defined (TERMIOS_TTY_DRIVER)
-# define TIOTYPE struct termios
-# define DRAIN_OUTPUT(fd) tcdrain (fd)
-# define GETATTR(tty, tiop) (tcgetattr (tty, tiop))
-# ifdef M_UNIX
-# define SETATTR(tty, tiop) (tcsetattr (tty, TCSANOW, tiop))
-# else
-# define SETATTR(tty, tiop) (tcsetattr (tty, TCSADRAIN, tiop))
-# endif /* !M_UNIX */
-#else
-# define TIOTYPE struct termio
-# define DRAIN_OUTPUT(fd)
-# define GETATTR(tty, tiop) (ioctl (tty, TCGETA, tiop))
-# define SETATTR(tty, tiop) (ioctl (tty, TCSETAW, tiop))
-#endif /* !TERMIOS_TTY_DRIVER */
-
-static TIOTYPE otio;
-
-static void save_tty_chars PARAMS((TIOTYPE *));
-static int _get_tty_settings PARAMS((int, TIOTYPE *));
-static int get_tty_settings PARAMS((int, TIOTYPE *));
-static int _set_tty_settings PARAMS((int, TIOTYPE *));
-static int set_tty_settings PARAMS((int, TIOTYPE *));
-
-static void prepare_terminal_settings PARAMS((int, TIOTYPE, TIOTYPE *));
-
-#if defined (FLUSHO)
-# define OUTPUT_BEING_FLUSHED(tp) (tp->c_lflag & FLUSHO)
-#else
-# define OUTPUT_BEING_FLUSHED(tp) 0
-#endif
-
-static void
-save_tty_chars (tiop)
- TIOTYPE *tiop;
-{
- _rl_last_tty_chars = _rl_tty_chars;
-
- _rl_tty_chars.t_eof = tiop->c_cc[VEOF];
- _rl_tty_chars.t_eol = tiop->c_cc[VEOL];
-#ifdef VEOL2
- _rl_tty_chars.t_eol2 = tiop->c_cc[VEOL2];
-#endif
- _rl_tty_chars.t_erase = tiop->c_cc[VERASE];
-#ifdef VWERASE
- _rl_tty_chars.t_werase = tiop->c_cc[VWERASE];
-#endif
- _rl_tty_chars.t_kill = tiop->c_cc[VKILL];
-#ifdef VREPRINT
- _rl_tty_chars.t_reprint = tiop->c_cc[VREPRINT];
-#endif
- _rl_tty_chars.t_intr = tiop->c_cc[VINTR];
- _rl_tty_chars.t_quit = tiop->c_cc[VQUIT];
-#ifdef VSUSP
- _rl_tty_chars.t_susp = tiop->c_cc[VSUSP];
-#endif
-#ifdef VDSUSP
- _rl_tty_chars.t_dsusp = tiop->c_cc[VDSUSP];
-#endif
-#ifdef VSTART
- _rl_tty_chars.t_start = tiop->c_cc[VSTART];
-#endif
-#ifdef VSTOP
- _rl_tty_chars.t_stop = tiop->c_cc[VSTOP];
-#endif
-#ifdef VLNEXT
- _rl_tty_chars.t_lnext = tiop->c_cc[VLNEXT];
-#endif
-#ifdef VDISCARD
- _rl_tty_chars.t_flush = tiop->c_cc[VDISCARD];
-#endif
-#ifdef VSTATUS
- _rl_tty_chars.t_status = tiop->c_cc[VSTATUS];
-#endif
-}
-
-#if defined (_AIX) || defined (_AIX41)
-/* Currently this is only used on AIX */
-static void
-rltty_warning (msg)
- char *msg;
-{
- fprintf (stderr, "readline: warning: %s\n", msg);
-}
-#endif
-
-#if defined (_AIX)
-void
-setopost(tp)
-TIOTYPE *tp;
-{
- if ((tp->c_oflag & OPOST) == 0)
- {
- rltty_warning ("turning on OPOST for terminal\r");
- tp->c_oflag |= OPOST|ONLCR;
- }
-}
-#endif
-
-static int
-_get_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- int ioctl_ret;
-
- while (1)
- {
- ioctl_ret = GETATTR (tty, tiop);
- if (ioctl_ret < 0)
- {
- if (errno != EINTR)
- return -1;
- else
- continue;
- }
- if (OUTPUT_BEING_FLUSHED (tiop))
- {
-#if defined (FLUSHO) && defined (_AIX41)
- rltty_warning ("turning off output flushing");
- tiop->c_lflag &= ~FLUSHO;
- break;
-#else
- continue;
-#endif
- }
- break;
- }
-
- return 0;
-}
-
-static int
-get_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- set_winsize (tty);
-
- if (_get_tty_settings (tty, tiop) < 0)
- return -1;
-
-#if defined (_AIX)
- setopost(tiop);
-#endif
-
- return 0;
-}
-
-static int
-_set_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- while (SETATTR (tty, tiop) < 0)
- {
- if (errno != EINTR)
- return -1;
- errno = 0;
- }
- return 0;
-}
-
-static int
-set_tty_settings (tty, tiop)
- int tty;
- TIOTYPE *tiop;
-{
- if (_set_tty_settings (tty, tiop) < 0)
- return -1;
-
-#if 0
-
-#if defined (TERMIOS_TTY_DRIVER)
-# if defined (__ksr1__)
- if (ksrflow)
- {
- ksrflow = 0;
- tcflow (tty, TCOON);
- }
-# else /* !ksr1 */
- tcflow (tty, TCOON); /* Simulate a ^Q. */
-# endif /* !ksr1 */
-#else
- ioctl (tty, TCXONC, 1); /* Simulate a ^Q. */
-#endif /* !TERMIOS_TTY_DRIVER */
-
-#endif /* 0 */
-
- return 0;
-}
-
-static void
-prepare_terminal_settings (meta_flag, oldtio, tiop)
- int meta_flag;
- TIOTYPE oldtio, *tiop;
-{
- readline_echoing_p = (oldtio.c_lflag & ECHO);
-
- tiop->c_lflag &= ~(ICANON | ECHO);
-
- if ((unsigned char) oldtio.c_cc[VEOF] != (unsigned char) _POSIX_VDISABLE)
- _rl_eof_char = oldtio.c_cc[VEOF];
-
-#if defined (USE_XON_XOFF)
-#if defined (IXANY)
- tiop->c_iflag &= ~(IXON | IXOFF | IXANY);
-#else
- /* `strict' Posix systems do not define IXANY. */
- tiop->c_iflag &= ~(IXON | IXOFF);
-#endif /* IXANY */
-#endif /* USE_XON_XOFF */
-
- /* Only turn this off if we are using all 8 bits. */
- if (((tiop->c_cflag & CSIZE) == CS8) || meta_flag)
- tiop->c_iflag &= ~(ISTRIP | INPCK);
-
- /* Make sure we differentiate between CR and NL on input. */
- tiop->c_iflag &= ~(ICRNL | INLCR);
-
-#if !defined (HANDLE_SIGNALS)
- tiop->c_lflag &= ~ISIG;
-#else
- tiop->c_lflag |= ISIG;
-#endif
-
- tiop->c_cc[VMIN] = 1;
- tiop->c_cc[VTIME] = 0;
-
-#if defined (FLUSHO)
- if (OUTPUT_BEING_FLUSHED (tiop))
- {
- tiop->c_lflag &= ~FLUSHO;
- oldtio.c_lflag &= ~FLUSHO;
- }
-#endif
-
- /* Turn off characters that we need on Posix systems with job control,
- just to be sure. This includes ^Y and ^V. This should not really
- be necessary. */
-#if defined (TERMIOS_TTY_DRIVER) && defined (_POSIX_VDISABLE)
-
-#if defined (VLNEXT)
- tiop->c_cc[VLNEXT] = _POSIX_VDISABLE;
-#endif
-
-#if defined (VDSUSP)
- tiop->c_cc[VDSUSP] = _POSIX_VDISABLE;
-#endif
-
-#endif /* TERMIOS_TTY_DRIVER && _POSIX_VDISABLE */
-}
-#endif /* NEW_TTY_DRIVER */
-
-/* Put the terminal in CBREAK mode so that we can detect key presses. */
-void
-rl_prep_terminal (meta_flag)
- int meta_flag;
-{
- int tty;
- TIOTYPE tio;
-
- if (terminal_prepped)
- return;
-
- /* Try to keep this function from being INTerrupted. */
- block_sigint ();
-
- tty = fileno (rl_instream);
-
- if (get_tty_settings (tty, &tio) < 0)
- {
- release_sigint ();
- return;
- }
-
- otio = tio;
-
- save_tty_chars (&otio);
-
- prepare_terminal_settings (meta_flag, otio, &tio);
-
- if (set_tty_settings (tty, &tio) < 0)
- {
- release_sigint ();
- return;
- }
-
- if (_rl_enable_keypad)
- _rl_control_keypad (1);
-
- fflush (rl_outstream);
- terminal_prepped = 1;
- RL_SETSTATE(RL_STATE_TERMPREPPED);
-
- release_sigint ();
-}
-
-/* Restore the terminal's normal settings and modes. */
-void
-rl_deprep_terminal ()
-{
- int tty;
-
- if (!terminal_prepped)
- return;
-
- /* Try to keep this function from being interrupted. */
- block_sigint ();
-
- tty = fileno (rl_instream);
-
- if (_rl_enable_keypad)
- _rl_control_keypad (0);
-
- fflush (rl_outstream);
-
- if (set_tty_settings (tty, &otio) < 0)
- {
- release_sigint ();
- return;
- }
-
- terminal_prepped = 0;
- RL_UNSETSTATE(RL_STATE_TERMPREPPED);
-
- release_sigint ();
-}
-
-/* **************************************************************** */
-/* */
-/* Bogus Flow Control */
-/* */
-/* **************************************************************** */
-
-int
-rl_restart_output (count, key)
- int count, key;
-{
- int fildes = fileno (rl_outstream);
-#if defined (TIOCSTART)
-#if defined (apollo)
- ioctl (&fildes, TIOCSTART, 0);
-#else
- ioctl (fildes, TIOCSTART, 0);
-#endif /* apollo */
-
-#else /* !TIOCSTART */
-# if defined (TERMIOS_TTY_DRIVER)
-# if defined (__ksr1__)
- if (ksrflow)
- {
- ksrflow = 0;
- tcflow (fildes, TCOON);
- }
-# else /* !ksr1 */
- tcflow (fildes, TCOON); /* Simulate a ^Q. */
-# endif /* !ksr1 */
-# else /* !TERMIOS_TTY_DRIVER */
-# if defined (TCXONC)
- ioctl (fildes, TCXONC, TCOON);
-# endif /* TCXONC */
-# endif /* !TERMIOS_TTY_DRIVER */
-#endif /* !TIOCSTART */
-
- return 0;
-}
-
-int
-rl_stop_output (count, key)
- int count, key;
-{
- int fildes = fileno (rl_instream);
-
-#if defined (TIOCSTOP)
-# if defined (apollo)
- ioctl (&fildes, TIOCSTOP, 0);
-# else
- ioctl (fildes, TIOCSTOP, 0);
-# endif /* apollo */
-#else /* !TIOCSTOP */
-# if defined (TERMIOS_TTY_DRIVER)
-# if defined (__ksr1__)
- ksrflow = 1;
-# endif /* ksr1 */
- tcflow (fildes, TCOOFF);
-# else
-# if defined (TCXONC)
- ioctl (fildes, TCXONC, TCOON);
-# endif /* TCXONC */
-# endif /* !TERMIOS_TTY_DRIVER */
-#endif /* !TIOCSTOP */
-
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Default Key Bindings */
-/* */
-/* **************************************************************** */
-
-/* Set the system's default editing characters to their readline equivalents
- in KMAP. Should be static, now that we have rl_tty_set_default_bindings. */
-void
-rltty_set_default_bindings (kmap)
- Keymap kmap;
-{
- TIOTYPE ttybuff;
- int tty = fileno (rl_instream);
-
-#if defined (NEW_TTY_DRIVER)
-
-#define SET_SPECIAL(sc, func) \
- do \
- { \
- int ic; \
- ic = sc; \
- if (ic != -1 && kmap[(unsigned char)ic].type == ISFUNC) \
- kmap[(unsigned char)ic].function = func; \
- } \
- while (0)
-
- if (get_tty_settings (tty, &ttybuff) == 0)
- {
- if (ttybuff.flags & SGTTY_SET)
- {
- SET_SPECIAL (ttybuff.sgttyb.sg_erase, rl_rubout);
- SET_SPECIAL (ttybuff.sgttyb.sg_kill, rl_unix_line_discard);
- }
-
-# if defined (TIOCGLTC)
- if (ttybuff.flags & LTCHARS_SET)
- {
- SET_SPECIAL (ttybuff.ltchars.t_werasc, rl_unix_word_rubout);
- SET_SPECIAL (ttybuff.ltchars.t_lnextc, rl_quoted_insert);
- }
-# endif /* TIOCGLTC */
- }
-
-#else /* !NEW_TTY_DRIVER */
-
-#define SET_SPECIAL(sc, func) \
- do \
- { \
- unsigned char uc; \
- uc = ttybuff.c_cc[sc]; \
- if (uc != (unsigned char)_POSIX_VDISABLE && kmap[uc].type == ISFUNC) \
- kmap[uc].function = func; \
- } \
- while (0)
-
- if (get_tty_settings (tty, &ttybuff) == 0)
- {
- SET_SPECIAL (VERASE, rl_rubout);
- SET_SPECIAL (VKILL, rl_unix_line_discard);
-
-# if defined (VLNEXT) && defined (TERMIOS_TTY_DRIVER)
- SET_SPECIAL (VLNEXT, rl_quoted_insert);
-# endif /* VLNEXT && TERMIOS_TTY_DRIVER */
-
-# if defined (VWERASE) && defined (TERMIOS_TTY_DRIVER)
- SET_SPECIAL (VWERASE, rl_unix_word_rubout);
-# endif /* VWERASE && TERMIOS_TTY_DRIVER */
- }
-#endif /* !NEW_TTY_DRIVER */
-}
-
-/* New public way to set the system default editing chars to their readline
- equivalents. */
-void
-rl_tty_set_default_bindings (kmap)
- Keymap kmap;
-{
- rltty_set_default_bindings (kmap);
-}
-
-#if defined (HANDLE_SIGNALS)
-
-#if defined (NEW_TTY_DRIVER)
-int
-_rl_disable_tty_signals ()
-{
- return 0;
-}
-
-int
-_rl_restore_tty_signals ()
-{
- return 0;
-}
-#else
-
-static TIOTYPE sigstty, nosigstty;
-static int tty_sigs_disabled = 0;
-
-int
-_rl_disable_tty_signals ()
-{
- if (tty_sigs_disabled)
- return 0;
-
- if (_get_tty_settings (fileno (rl_instream), &sigstty) < 0)
- return -1;
-
- nosigstty = sigstty;
-
- nosigstty.c_lflag &= ~ISIG;
- nosigstty.c_iflag &= ~IXON;
-
- if (_set_tty_settings (fileno (rl_instream), &nosigstty) < 0)
- return (_set_tty_settings (fileno (rl_instream), &sigstty));
-
- tty_sigs_disabled = 1;
- return 0;
-}
-
-int
-_rl_restore_tty_signals ()
-{
- int r;
-
- if (tty_sigs_disabled == 0)
- return 0;
-
- r = _set_tty_settings (fileno (rl_instream), &sigstty);
-
- if (r == 0)
- tty_sigs_disabled = 0;
-
- return r;
-}
-#endif /* !NEW_TTY_DRIVER */
-
-#endif /* HANDLE_SIGNALS */
diff --git a/readline-4.3/rltty.h b/readline-4.3/rltty.h
deleted file mode 100644
index 029a3fb..0000000
--- a/readline-4.3/rltty.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* rltty.h - tty driver-related definitions used by some library files. */
-
-/* Copyright (C) 1995 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLTTY_H_)
-#define _RLTTY_H_
-
-/* Posix systems use termios and the Posix signal functions. */
-#if defined (TERMIOS_TTY_DRIVER)
-# include <termios.h>
-#endif /* TERMIOS_TTY_DRIVER */
-
-/* System V machines use termio. */
-#if defined (TERMIO_TTY_DRIVER)
-# include <termio.h>
-# if !defined (TCOON)
-# define TCOON 1
-# endif
-#endif /* TERMIO_TTY_DRIVER */
-
-/* Other (BSD) machines use sgtty. */
-#if defined (NEW_TTY_DRIVER)
-# include <sgtty.h>
-#endif
-
-#include "rlwinsize.h"
-
-/* Define _POSIX_VDISABLE if we are not using the `new' tty driver and
- it is not already defined. It is used both to determine if a
- special character is disabled and to disable certain special
- characters. Posix systems should set to 0, USG systems to -1. */
-#if !defined (NEW_TTY_DRIVER) && !defined (_POSIX_VDISABLE)
-# if defined (_SVR4_VDISABLE)
-# define _POSIX_VDISABLE _SVR4_VDISABLE
-# else
-# if defined (_POSIX_VERSION)
-# define _POSIX_VDISABLE 0
-# else /* !_POSIX_VERSION */
-# define _POSIX_VDISABLE -1
-# endif /* !_POSIX_VERSION */
-# endif /* !_SVR4_DISABLE */
-#endif /* !NEW_TTY_DRIVER && !_POSIX_VDISABLE */
-
-typedef struct _rl_tty_chars {
- char t_eof;
- char t_eol;
- char t_eol2;
- char t_erase;
- char t_werase;
- char t_kill;
- char t_reprint;
- char t_intr;
- char t_quit;
- char t_susp;
- char t_dsusp;
- char t_start;
- char t_stop;
- char t_lnext;
- char t_flush;
- char t_status;
-} _RL_TTY_CHARS;
-
-#endif /* _RLTTY_H_ */
diff --git a/readline-4.3/rltypedefs.h b/readline-4.3/rltypedefs.h
deleted file mode 100644
index f3280e9..0000000
--- a/readline-4.3/rltypedefs.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* rltypedefs.h -- Type declarations for readline functions. */
-
-/* Copyright (C) 2000 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#ifndef _RL_TYPEDEFS_H_
-#define _RL_TYPEDEFS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Old-style */
-
-#if !defined (_FUNCTION_DEF)
-# define _FUNCTION_DEF
-
-typedef int Function ();
-typedef void VFunction ();
-typedef char *CPFunction ();
-typedef char **CPPFunction ();
-
-#endif /* _FUNCTION_DEF */
-
-/* New style. */
-
-#if !defined (_RL_FUNCTION_TYPEDEF)
-# define _RL_FUNCTION_TYPEDEF
-
-/* Bindable functions */
-typedef int rl_command_func_t PARAMS((int, int));
-
-/* Typedefs for the completion system */
-typedef char *rl_compentry_func_t PARAMS((const char *, int));
-typedef char **rl_completion_func_t PARAMS((const char *, int, int));
-
-typedef char *rl_quote_func_t PARAMS((char *, int, char *));
-typedef char *rl_dequote_func_t PARAMS((char *, int));
-
-typedef int rl_compignore_func_t PARAMS((char **));
-
-typedef void rl_compdisp_func_t PARAMS((char **, int, int));
-
-/* Type for input and pre-read hook functions like rl_event_hook */
-typedef int rl_hook_func_t PARAMS((void));
-
-/* Input function type */
-typedef int rl_getc_func_t PARAMS((FILE *));
-
-/* Generic function that takes a character buffer (which could be the readline
- line buffer) and an index into it (which could be rl_point) and returns
- an int. */
-typedef int rl_linebuf_func_t PARAMS((char *, int));
-
-/* `Generic' function pointer typedefs */
-typedef int rl_intfunc_t PARAMS((int));
-#define rl_ivoidfunc_t rl_hook_func_t
-typedef int rl_icpfunc_t PARAMS((char *));
-typedef int rl_icppfunc_t PARAMS((char **));
-
-typedef void rl_voidfunc_t PARAMS((void));
-typedef void rl_vintfunc_t PARAMS((int));
-typedef void rl_vcpfunc_t PARAMS((char *));
-typedef void rl_vcppfunc_t PARAMS((char **));
-#endif /* _RL_FUNCTION_TYPEDEF */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _RL_TYPEDEFS_H_ */
diff --git a/readline-4.3/rlwinsize.h b/readline-4.3/rlwinsize.h
deleted file mode 100644
index 7838154..0000000
--- a/readline-4.3/rlwinsize.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* rlwinsize.h -- an attempt to isolate some of the system-specific defines
- for `struct winsize' and TIOCGWINSZ. */
-
-/* Copyright (C) 1997 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLWINSIZE_H_)
-#define _RLWINSIZE_H_
-
-#if defined (HAVE_CONFIG_H)
-# include "config.h"
-#endif
-
-/* Try to find the definitions of `struct winsize' and TIOGCWINSZ */
-
-#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
-
-#if defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
-# include <termios.h>
-#endif /* STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
-
-/* Not in either of the standard places, look around. */
-#if !defined (STRUCT_WINSIZE_IN_TERMIOS) && !defined (STRUCT_WINSIZE_IN_SYS_IOCTL)
-# if defined (HAVE_SYS_STREAM_H)
-# include <sys/stream.h>
-# endif /* HAVE_SYS_STREAM_H */
-# if defined (HAVE_SYS_PTEM_H) /* SVR4.2, at least, has it here */
-# include <sys/ptem.h>
-# define _IO_PTEM_H /* work around SVR4.2 1.1.4 bug */
-# endif /* HAVE_SYS_PTEM_H */
-# if defined (HAVE_SYS_PTE_H) /* ??? */
-# include <sys/pte.h>
-# endif /* HAVE_SYS_PTE_H */
-#endif /* !STRUCT_WINSIZE_IN_TERMIOS && !STRUCT_WINSIZE_IN_SYS_IOCTL */
-
-#endif /* _RL_WINSIZE_H */
-
diff --git a/readline-4.3/savestring.c b/readline-4.3/savestring.c
deleted file mode 100644
index c7ebeb1..0000000
--- a/readline-4.3/savestring.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* savestring.c */
-
-/* Copyright (C) 1998 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#include <config.h>
-#ifdef HAVE_STRING_H
-# include <string.h>
-#endif
-#include "xmalloc.h"
-
-/* Backwards compatibility, now that savestring has been removed from
- all `public' readline header files. */
-char *
-savestring (s)
- const char *s;
-{
- return ((char *)strcpy ((char *)xmalloc (1 + strlen (s)), (s)));
-}
diff --git a/readline-4.3/search.c b/readline-4.3/search.c
deleted file mode 100644
index 7e0d60b..0000000
--- a/readline-4.3/search.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/* search.c - code for non-incremental searching in emacs and vi modes. */
-
-/* Copyright (C) 1992 Free Software Foundation, Inc.
-
- This file is part of the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <stdio.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif
-
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-#ifdef abs
-# undef abs
-#endif
-#define abs(x) (((x) >= 0) ? (x) : -(x))
-
-extern HIST_ENTRY *_rl_saved_line_for_history;
-
-/* Functions imported from the rest of the library. */
-extern int _rl_free_history_entry PARAMS((HIST_ENTRY *));
-
-static char *noninc_search_string = (char *) NULL;
-static int noninc_history_pos;
-
-static char *prev_line_found = (char *) NULL;
-
-static int rl_history_search_len;
-static int rl_history_search_pos;
-static char *history_search_string;
-static int history_string_size;
-
-static void make_history_line_current PARAMS((HIST_ENTRY *));
-static int noninc_search_from_pos PARAMS((char *, int, int));
-static void noninc_dosearch PARAMS((char *, int));
-static void noninc_search PARAMS((int, int));
-static int rl_history_search_internal PARAMS((int, int));
-static void rl_history_search_reinit PARAMS((void));
-
-/* Make the data from the history entry ENTRY be the contents of the
- current line. This doesn't do anything with rl_point; the caller
- must set it. */
-static void
-make_history_line_current (entry)
- HIST_ENTRY *entry;
-{
- rl_replace_line (entry->line, 0);
- rl_undo_list = (UNDO_LIST *)entry->data;
-
- if (_rl_saved_line_for_history)
- _rl_free_history_entry (_rl_saved_line_for_history);
- _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
-}
-
-/* Search the history list for STRING starting at absolute history position
- POS. If STRING begins with `^', the search must match STRING at the
- beginning of a history line, otherwise a full substring match is performed
- for STRING. DIR < 0 means to search backwards through the history list,
- DIR >= 0 means to search forward. */
-static int
-noninc_search_from_pos (string, pos, dir)
- char *string;
- int pos, dir;
-{
- int ret, old;
-
- if (pos < 0)
- return -1;
-
- old = where_history ();
- if (history_set_pos (pos) == 0)
- return -1;
-
- RL_SETSTATE(RL_STATE_SEARCH);
- if (*string == '^')
- ret = history_search_prefix (string + 1, dir);
- else
- ret = history_search (string, dir);
- RL_UNSETSTATE(RL_STATE_SEARCH);
-
- if (ret != -1)
- ret = where_history ();
-
- history_set_pos (old);
- return (ret);
-}
-
-/* Search for a line in the history containing STRING. If DIR is < 0, the
- search is backwards through previous entries, else through subsequent
- entries. */
-static void
-noninc_dosearch (string, dir)
- char *string;
- int dir;
-{
- int oldpos, pos;
- HIST_ENTRY *entry;
-
- if (string == 0 || *string == '\0' || noninc_history_pos < 0)
- {
- rl_ding ();
- return;
- }
-
- pos = noninc_search_from_pos (string, noninc_history_pos + dir, dir);
- if (pos == -1)
- {
- /* Search failed, current history position unchanged. */
- rl_maybe_unsave_line ();
- rl_clear_message ();
- rl_point = 0;
- rl_ding ();
- return;
- }
-
- noninc_history_pos = pos;
-
- oldpos = where_history ();
- history_set_pos (noninc_history_pos);
- entry = current_history ();
-#if defined (VI_MODE)
- if (rl_editing_mode != vi_mode)
-#endif
- history_set_pos (oldpos);
-
- make_history_line_current (entry);
-
- rl_point = 0;
- rl_mark = rl_end;
-
- rl_clear_message ();
-}
-
-/* Search non-interactively through the history list. DIR < 0 means to
- search backwards through the history of previous commands; otherwise
- the search is for commands subsequent to the current position in the
- history list. PCHAR is the character to use for prompting when reading
- the search string; if not specified (0), it defaults to `:'. */
-static void
-noninc_search (dir, pchar)
- int dir;
- int pchar;
-{
- int saved_point, saved_mark, c;
- char *p;
-#if defined (HANDLE_MULTIBYTE)
- char mb[MB_LEN_MAX];
-#endif
-
- rl_maybe_save_line ();
- saved_point = rl_point;
- saved_mark = rl_mark;
-
- /* Use the line buffer to read the search string. */
- rl_line_buffer[0] = 0;
- rl_end = rl_point = 0;
-
- p = _rl_make_prompt_for_search (pchar ? pchar : ':');
- rl_message (p, 0, 0);
- free (p);
-
-#define SEARCH_RETURN rl_restore_prompt (); RL_UNSETSTATE(RL_STATE_NSEARCH); return
-
- RL_SETSTATE(RL_STATE_NSEARCH);
- /* Read the search string. */
- while (1)
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- c = _rl_read_mbstring (c, mb, MB_LEN_MAX);
-#endif
-
- if (c == 0)
- break;
-
- switch (c)
- {
- case CTRL('H'):
- case RUBOUT:
- if (rl_point == 0)
- {
- rl_maybe_unsave_line ();
- rl_clear_message ();
- rl_point = saved_point;
- rl_mark = saved_mark;
- SEARCH_RETURN;
- }
- _rl_rubout_char (1, c);
- break;
-
- case CTRL('W'):
- rl_unix_word_rubout (1, c);
- break;
-
- case CTRL('U'):
- rl_unix_line_discard (1, c);
- break;
-
- case RETURN:
- case NEWLINE:
- goto dosearch;
- /* NOTREACHED */
- break;
-
- case CTRL('C'):
- case CTRL('G'):
- rl_maybe_unsave_line ();
- rl_clear_message ();
- rl_point = saved_point;
- rl_mark = saved_mark;
- rl_ding ();
- SEARCH_RETURN;
-
- default:
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_insert_text (mb);
- else
-#endif
- _rl_insert_char (1, c);
- break;
- }
- (*rl_redisplay_function) ();
- }
-
- dosearch:
- rl_mark = saved_mark;
-
- /* If rl_point == 0, we want to re-use the previous search string and
- start from the saved history position. If there's no previous search
- string, punt. */
- if (rl_point == 0)
- {
- if (!noninc_search_string)
- {
- rl_ding ();
- SEARCH_RETURN;
- }
- }
- else
- {
- /* We want to start the search from the current history position. */
- noninc_history_pos = where_history ();
- FREE (noninc_search_string);
- noninc_search_string = savestring (rl_line_buffer);
- }
-
- rl_restore_prompt ();
- noninc_dosearch (noninc_search_string, dir);
- RL_UNSETSTATE(RL_STATE_NSEARCH);
-}
-
-/* Search forward through the history list for a string. If the vi-mode
- code calls this, KEY will be `?'. */
-int
-rl_noninc_forward_search (count, key)
- int count, key;
-{
- noninc_search (1, (key == '?') ? '?' : 0);
- return 0;
-}
-
-/* Reverse search the history list for a string. If the vi-mode code
- calls this, KEY will be `/'. */
-int
-rl_noninc_reverse_search (count, key)
- int count, key;
-{
- noninc_search (-1, (key == '/') ? '/' : 0);
- return 0;
-}
-
-/* Search forward through the history list for the last string searched
- for. If there is no saved search string, abort. */
-int
-rl_noninc_forward_search_again (count, key)
- int count, key;
-{
- if (!noninc_search_string)
- {
- rl_ding ();
- return (-1);
- }
- noninc_dosearch (noninc_search_string, 1);
- return 0;
-}
-
-/* Reverse search in the history list for the last string searched
- for. If there is no saved search string, abort. */
-int
-rl_noninc_reverse_search_again (count, key)
- int count, key;
-{
- if (!noninc_search_string)
- {
- rl_ding ();
- return (-1);
- }
- noninc_dosearch (noninc_search_string, -1);
- return 0;
-}
-
-static int
-rl_history_search_internal (count, dir)
- int count, dir;
-{
- HIST_ENTRY *temp;
- int ret, oldpos;
-
- rl_maybe_save_line ();
- temp = (HIST_ENTRY *)NULL;
-
- /* Search COUNT times through the history for a line whose prefix
- matches history_search_string. When this loop finishes, TEMP,
- if non-null, is the history line to copy into the line buffer. */
- while (count)
- {
- ret = noninc_search_from_pos (history_search_string, rl_history_search_pos + dir, dir);
- if (ret == -1)
- break;
-
- /* Get the history entry we found. */
- rl_history_search_pos = ret;
- oldpos = where_history ();
- history_set_pos (rl_history_search_pos);
- temp = current_history ();
- history_set_pos (oldpos);
-
- /* Don't find multiple instances of the same line. */
- if (prev_line_found && STREQ (prev_line_found, temp->line))
- continue;
- prev_line_found = temp->line;
- count--;
- }
-
- /* If we didn't find anything at all, return. */
- if (temp == 0)
- {
- rl_maybe_unsave_line ();
- rl_ding ();
- /* If you don't want the saved history line (last match) to show up
- in the line buffer after the search fails, change the #if 0 to
- #if 1 */
-#if 0
- if (rl_point > rl_history_search_len)
- {
- rl_point = rl_end = rl_history_search_len;
- rl_line_buffer[rl_end] = '\0';
- rl_mark = 0;
- }
-#else
- rl_point = rl_history_search_len; /* rl_maybe_unsave_line changes it */
- rl_mark = rl_end;
-#endif
- return 1;
- }
-
- /* Copy the line we found into the current line buffer. */
- make_history_line_current (temp);
-
- rl_point = rl_history_search_len;
- rl_mark = rl_end;
-
- return 0;
-}
-
-static void
-rl_history_search_reinit ()
-{
- rl_history_search_pos = where_history ();
- rl_history_search_len = rl_point;
- prev_line_found = (char *)NULL;
- if (rl_point)
- {
- if (rl_history_search_len >= history_string_size - 2)
- {
- history_string_size = rl_history_search_len + 2;
- history_search_string = (char *)xrealloc (history_search_string, history_string_size);
- }
- history_search_string[0] = '^';
- strncpy (history_search_string + 1, rl_line_buffer, rl_point);
- history_search_string[rl_point + 1] = '\0';
- }
- _rl_free_saved_history_line ();
-}
-
-/* Search forward in the history for the string of characters
- from the start of the line to rl_point. This is a non-incremental
- search. */
-int
-rl_history_search_forward (count, ignore)
- int count, ignore;
-{
- if (count == 0)
- return (0);
-
- if (rl_last_func != rl_history_search_forward &&
- rl_last_func != rl_history_search_backward)
- rl_history_search_reinit ();
-
- if (rl_history_search_len == 0)
- return (rl_get_next_history (count, ignore));
- return (rl_history_search_internal (abs (count), (count > 0) ? 1 : -1));
-}
-
-/* Search backward through the history for the string of characters
- from the start of the line to rl_point. This is a non-incremental
- search. */
-int
-rl_history_search_backward (count, ignore)
- int count, ignore;
-{
- if (count == 0)
- return (0);
-
- if (rl_last_func != rl_history_search_forward &&
- rl_last_func != rl_history_search_backward)
- rl_history_search_reinit ();
-
- if (rl_history_search_len == 0)
- return (rl_get_previous_history (count, ignore));
- return (rl_history_search_internal (abs (count), (count > 0) ? -1 : 1));
-}
diff --git a/readline-4.3/shell.c b/readline-4.3/shell.c
deleted file mode 100644
index ad27cc1..0000000
--- a/readline-4.3/shell.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* shell.c -- readline utility functions that are normally provided by
- bash when readline is linked as part of the shell. */
-
-/* Copyright (C) 1997 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if defined (HAVE_LIMITS_H)
-# include <limits.h>
-#endif
-
-#include <fcntl.h>
-#include <pwd.h>
-
-#include <stdio.h>
-
-#include "rlstdc.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#if !defined (HAVE_GETPW_DECLS)
-extern struct passwd *getpwuid PARAMS((uid_t));
-#endif /* !HAVE_GETPW_DECLS */
-
-#ifndef NULL
-# define NULL 0
-#endif
-
-#ifndef CHAR_BIT
-# define CHAR_BIT 8
-#endif
-
-/* Nonzero if the integer type T is signed. */
-#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-
-/* Bound on length of the string representing an integer value of type T.
- Subtract one for the sign bit if T is signed;
- 302 / 1000 is log10 (2) rounded up;
- add one for integer division truncation;
- add one more for a minus sign if t is signed. */
-#define INT_STRLEN_BOUND(t) \
- ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 \
- + 1 + TYPE_SIGNED (t))
-
-/* All of these functions are resolved from bash if we are linking readline
- as part of bash. */
-
-/* Does shell-like quoting using single quotes. */
-char *
-sh_single_quote (string)
- char *string;
-{
- register int c;
- char *result, *r, *s;
-
- result = (char *)xmalloc (3 + (4 * strlen (string)));
- r = result;
- *r++ = '\'';
-
- for (s = string; s && (c = *s); s++)
- {
- *r++ = c;
-
- if (c == '\'')
- {
- *r++ = '\\'; /* insert escaped single quote */
- *r++ = '\'';
- *r++ = '\''; /* start new quoted string */
- }
- }
-
- *r++ = '\'';
- *r = '\0';
-
- return (result);
-}
-
-/* Set the environment variables LINES and COLUMNS to lines and cols,
- respectively. */
-void
-sh_set_lines_and_columns (lines, cols)
- int lines, cols;
-{
- char *b;
-
-#if defined (HAVE_PUTENV)
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1);
- sprintf (b, "LINES=%d", lines);
- putenv (b);
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("COLUMNS=") + 1);
- sprintf (b, "COLUMNS=%d", cols);
- putenv (b);
-#else /* !HAVE_PUTENV */
-# if defined (HAVE_SETENV)
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
- sprintf (b, "%d", lines);
- setenv ("LINES", b, 1);
- b = (char *)xmalloc (INT_STRLEN_BOUND (int) + 1);
- sprintf (b, "%d", cols);
- setenv ("COLUMNS", b, 1);
-# endif /* HAVE_SETENV */
-#endif /* !HAVE_PUTENV */
-}
-
-char *
-sh_get_env_value (varname)
- const char *varname;
-{
- return ((char *)getenv (varname));
-}
-
-char *
-sh_get_home_dir ()
-{
- char *home_dir;
- struct passwd *entry;
-
- home_dir = (char *)NULL;
- entry = getpwuid (getuid ());
- if (entry)
- home_dir = entry->pw_dir;
- return (home_dir);
-}
-
-#if !defined (O_NDELAY)
-# if defined (FNDELAY)
-# define O_NDELAY FNDELAY
-# endif
-#endif
-
-int
-sh_unset_nodelay_mode (fd)
- int fd;
-{
- int flags, bflags;
-
- if ((flags = fcntl (fd, F_GETFL, 0)) < 0)
- return -1;
-
- bflags = 0;
-
-#ifdef O_NONBLOCK
- bflags |= O_NONBLOCK;
-#endif
-
-#ifdef O_NDELAY
- bflags |= O_NDELAY;
-#endif
-
- if (flags & bflags)
- {
- flags &= ~bflags;
- return (fcntl (fd, F_SETFL, flags));
- }
-
- return 0;
-}
diff --git a/readline-4.3/shlib/Makefile.in b/readline-4.3/shlib/Makefile.in
deleted file mode 100644
index 0cba57e..0000000
--- a/readline-4.3/shlib/Makefile.in
+++ /dev/null
@@ -1,437 +0,0 @@
-## -*- text -*- ##
-# Makefile for the GNU readline library shared library support.
-#
-# Copyright (C) 1998 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-RL_LIBRARY_VERSION = @LIBVERSION@
-RL_LIBRARY_NAME = readline
-
-srcdir = @srcdir@
-VPATH = .:@top_srcdir@
-topdir = @top_srcdir@
-BUILD_DIR = @BUILD_DIR@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
-
-CC = @CC@
-RANLIB = @RANLIB@
-AR = @AR@
-ARFLAGS = @ARFLAGS@
-RM = rm -f
-CP = cp
-MV = mv
-LN = ln
-
-SHELL = @MAKE_SHELL@
-
-host_os = @host_os@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-includedir = @includedir@
-libdir = @libdir@
-
-# Support an alternate destination root directory for package building
-DESTDIR =
-
-CFLAGS = @CFLAGS@
-LOCAL_CFLAGS = @LOCAL_CFLAGS@ -DRL_LIBRARY_VERSION='"$(RL_LIBRARY_VERSION)"'
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@ @LOCAL_LDFLAGS@ @CFLAGS@
-
-DEFS = @DEFS@
-LOCAL_DEFS = @LOCAL_DEFS@
-
-#
-# These values are generated for configure by ${topdir}/support/shobj-conf.
-# If your system is not supported by that script, but includes facilities for
-# dynamic loading of shared objects, please update the script and send the
-# changes to bash-maintainers@gnu.org.
-#
-SHOBJ_CC = @SHOBJ_CC@
-SHOBJ_CFLAGS = @SHOBJ_CFLAGS@
-SHOBJ_LD = @SHOBJ_LD@
-
-SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
-SHOBJ_XLDFLAGS = @SHOBJ_XLDFLAGS@
-SHOBJ_LIBS = @SHOBJ_LIBS@
-
-SHLIB_XLDFLAGS = @SHLIB_XLDFLAGS@
-SHLIB_LIBS = @SHLIB_LIBS@
-SHLIB_LIBSUFF = @SHLIB_LIBSUFF@
-
-SHLIB_LIBVERSION = @SHLIB_LIBVERSION@
-
-SHLIB_STATUS = @SHLIB_STATUS@
-
-# shared library versioning
-SHLIB_MAJOR= @SHLIB_MAJOR@
-# shared library systems like SVR4's do not use minor versions
-SHLIB_MINOR= .@SHLIB_MINOR@
-
-# For libraries which include headers from other libraries.
-INCLUDES = -I. -I.. -I$(topdir)
-
-CCFLAGS = $(DEFS) $(LOCAL_DEFS) $(CPPFLAGS) $(INCLUDES) $(LOCAL_CFLAGS) $(CFLAGS)
-
-.SUFFIXES: .so
-
-.c.so:
- ${RM} $@
- $(SHOBJ_CC) -c $(CCFLAGS) $(SHOBJ_CFLAGS) -o $*.o $<
- $(MV) $*.o $@
-
-# The name of the main library target.
-
-SHARED_READLINE = libreadline.$(SHLIB_LIBVERSION)
-SHARED_HISTORY = libhistory.$(SHLIB_LIBVERSION)
-SHARED_LIBS = $(SHARED_READLINE) $(SHARED_HISTORY)
-
-# The C code source files for this library.
-CSOURCES = $(topdir)/readline.c $(topdir)/funmap.c $(topdir)/keymaps.c \
- $(topdir)/vi_mode.c $(topdir)/parens.c $(topdir)/rltty.c \
- $(topdir)/complete.c $(topdir)/bind.c $(topdir)/isearch.c \
- $(topdir)/display.c $(topdir)/signals.c $(topdir)/emacs_keymap.c \
- $(topdir)/vi_keymap.c $(topdir)/util.c $(topdir)/kill.c \
- $(topdir)/undo.c $(topdir)/macro.c $(topdir)/input.c \
- $(topdir)/callback.c $(topdir)/terminal.c $(topdir)/xmalloc.c \
- $(topdir)/history.c $(topdir)/histsearch.c $(topdir)/histexpand.c \
- $(topdir)/histfile.c $(topdir)/nls.c $(topdir)/search.c \
- $(topdir)/shell.c $(topdir)/savestring.c $(topdir)/tilde.c \
- $(topdir)/text.c $(topdir)/misc.c $(topdir)/compat.c \
- $(topdir)/mbutil.c
-
-# The header files for this library.
-HSOURCES = readline.h rldefs.h chardefs.h keymaps.h history.h histlib.h \
- posixstat.h posixdir.h posixjmp.h tilde.h rlconf.h rltty.h \
- ansi_stdlib.h tcap.h xmalloc.h rlprivate.h rlshell.h rlmbutil.h
-
-SHARED_HISTOBJ = history.so histexpand.so histfile.so histsearch.so shell.so \
- mbutil.so
-SHARED_TILDEOBJ = tilde.so
-SHARED_OBJ = readline.so vi_mode.so funmap.so keymaps.so parens.so search.so \
- rltty.so complete.so bind.so isearch.so display.so signals.so \
- util.so kill.so undo.so macro.so input.so callback.so terminal.so \
- text.so nls.so misc.so xmalloc.so $(SHARED_HISTOBJ) $(SHARED_TILDEOBJ) \
- compat.so
-
-##########################################################################
-
-all: $(SHLIB_STATUS)
-
-supported: $(SHARED_LIBS)
-
-unsupported:
- @echo "Your system and compiler (${host_os}-${CC}) are not supported by the"
- @echo "${topdir}/support/shobj-conf script."
- @echo "If your operating system provides facilities for creating"
- @echo "shared libraries, please update the script and re-run configure."
- @echo "Please send the changes you made to bash-maintainers@gnu.org"
- @echo "for inclusion in future bash and readline releases."
-
-$(SHARED_READLINE): $(SHARED_OBJ)
- $(RM) $@
- $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_OBJ) $(SHLIB_LIBS)
-
-$(SHARED_HISTORY): $(SHARED_HISTOBJ) xmalloc.so
- $(RM) $@
- $(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so $(SHLIB_LIBS)
-
-# Since tilde.c is shared between readline and bash, make sure we compile
-# it with the right flags when it's built as part of readline
-tilde.so: tilde.c
- ${RM} $@
- $(SHOBJ_CC) -c $(CCFLAGS) $(SHOBJ_CFLAGS) -DREADLINE_LIBRARY -c -o tilde.o $(topdir)/tilde.c
- $(MV) tilde.o $@
-
-installdirs: $(topdir)/support/mkdirs
- -$(SHELL) $(topdir)/support/mkdirs $(DESTDIR)$(libdir)
-
-install: installdirs $(SHLIB_STATUS)
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -i "$(INSTALL_DATA)" $(SHARED_HISTORY)
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -i "$(INSTALL_DATA)" $(SHARED_READLINE)
- @echo install: you may need to run ldconfig
-
-uninstall:
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -U $(SHARED_HISTORY)
- $(SHELL) $(topdir)/support/shlib-install -O $(host_os) -d $(DESTDIR)$(libdir) -U $(SHARED_READLINE)
- @echo uninstall: you may need to run ldconfig
-
-clean mostlyclean: force
- $(RM) $(SHARED_OBJ) $(SHARED_LIBS)
-
-distclean maintainer-clean: clean
- $(RM) Makefile
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
-
-# Dependencies
-bind.so: $(topdir)/ansi_stdlib.h $(topdir)/posixstat.h
-bind.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-bind.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-bind.so: $(topdir)/rltypedefs.h
-bind.so: $(topdir)/tilde.h $(topdir)/history.h
-compat.so: $(topdir)/rlstdc.h
-callback.so: $(topdir)/rlconf.h
-callback.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h
-callback.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-callback.so: $(topdir)/rltypedefs.h
-callback.so: $(topdir)/tilde.h
-complete.so: $(topdir)/ansi_stdlib.h posixdir.h $(topdir)/posixstat.h
-complete.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-complete.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-complete.so: $(topdir)/rltypedefs.h
-complete.so: $(topdir)/tilde.h
-display.so: $(topdir)/ansi_stdlib.h $(topdir)/posixstat.h
-display.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-display.so: $(topdir)/tcap.h
-display.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-display.so: $(topdir)/rltypedefs.h
-display.so: $(topdir)/tilde.h $(topdir)/history.h
-funmap.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-funmap.so: $(topdir)/rltypedefs.h
-funmap.so: $(topdir)/rlconf.h $(topdir)/ansi_stdlib.h
-funmap.so: ${BUILD_DIR}/config.h $(topdir)/tilde.h
-histexpand.so: $(topdir)/ansi_stdlib.h
-histexpand.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
-histexpand.so: ${BUILD_DIR}/config.h
-histfile.so: $(topdir)/ansi_stdlib.h
-histfile.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
-histfile.so: ${BUILD_DIR}/config.h
-history.so: $(topdir)/ansi_stdlib.h
-history.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
-history.so: ${BUILD_DIR}/config.h
-histsearch.so: $(topdir)/ansi_stdlib.h
-histsearch.so: $(topdir)/history.h $(topdir)/histlib.h $(topdir)/rltypedefs.h
-histsearch.so: ${BUILD_DIR}/config.h
-input.so: $(topdir)/ansi_stdlib.h
-input.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-input.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-input.so: $(topdir)/rltypedefs.h
-input.so: $(topdir)/tilde.h
-isearch.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-isearch.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-isearch.so: $(topdir)/rltypedefs.h
-isearch.so: $(topdir)/ansi_stdlib.h $(topdir)/history.h $(topdir)/tilde.h
-keymaps.so: emacs_keymap.c vi_keymap.c
-keymaps.so: $(topdir)/keymaps.h $(topdir)/chardefs.h $(topdir)/rlconf.h
-keymaps.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-keymaps.so: $(topdir)/rltypedefs.h
-keymaps.so: ${BUILD_DIR}/config.h $(topdir)/ansi_stdlib.h $(topdir)/tilde.h
-kill.so: $(topdir)/ansi_stdlib.h
-kill.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-kill.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-kill.so: $(topdir)/tilde.h $(topdir)/history.h $(topdir)/rltypedefs.h
-macro.so: $(topdir)/ansi_stdlib.h
-macro.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-macro.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-macro.so: $(topdir)/tilde.h $(topdir)/history.h $(topdir)/rltypedefs.h
-mbutil.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-mbutil.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/rltypedefs.h
-mbutil.so: $(topdir)/chardefs.h $(topdir)/rlstdc.h
-misc.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-misc.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-misc.so: $(topdir)/rltypedefs.h
-misc.so: $(topdir)/history.h $(topdir)/tilde.h $(topdir)/ansi_stdlib.h
-nls.so: $(topdir)/ansi_stdlib.h
-nls.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-nls.o: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-nls.o: $(topdir)/rltypedefs.h
-nls.o: $(topdir)/tilde.h $(topdir)/history.h $(topdir)/rlstdc.h
-parens.so: $(topdir)/rlconf.h ${BUILD_DIR}/config.h
-parens.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-parens.so: $(topdir)/rltypedefs.h
-parens.so: $(topdir)/tilde.h
-rltty.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-rltty.so: $(topdir)/rltty.h $(topdir)/tilde.h
-rltty.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-rltty.so: $(topdir)/rltypedefs.h
-search.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-search.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-search.so: $(topdir)/ansi_stdlib.h $(topdir)/history.h $(topdir)/tilde.h
-search.so: $(topdir)/rltypedefs.h
-signals.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-signals.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-signals.so: $(topdir)/history.h $(topdir)/tilde.h
-signals.so: $(topdir)/rltypedefs.h
-terminal.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-terminal.so: $(topdir)/tcap.h
-terminal.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-terminal.so: $(topdir)/tilde.h $(topdir)/history.h
-terminal.so: $(topdir)/rltypedefs.h
-text.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-text.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-text.so: $(topdir)/rltypedefs.h
-text.so: $(topdir)/history.h $(topdir)/tilde.h $(topdir)/ansi_stdlib.h
-tilde.so: $(topdir)/ansi_stdlib.h ${BUILD_DIR}/config.h $(topdir)/tilde.h
-undo.so: $(topdir)/ansi_stdlib.h
-undo.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-undo.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-undo.so: $(topdir)/rltypedefs.h
-undo.so: $(topdir)/tilde.h $(topdir)/history.h
-util.so: $(topdir)/posixjmp.h $(topdir)/ansi_stdlib.h
-util.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-util.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-util.so: $(topdir)/rltypedefs.h $(topdir)/tilde.h
-vi_mode.so: $(topdir)/rldefs.h ${BUILD_DIR}/config.h $(topdir)/rlconf.h
-vi_mode.so: $(topdir)/readline.h $(topdir)/keymaps.h $(topdir)/chardefs.h
-vi_mode.so: $(topdir)/history.h $(topdir)/ansi_stdlib.h $(topdir)/tilde.h
-vi_mode.so: $(topdir)/rltypedefs.h
-xmalloc.so: ${BUILD_DIR}/config.h
-xmalloc.so: $(topdir)/ansi_stdlib.h
-
-bind.so: $(topdir)/rlshell.h
-histfile.so: $(topdir)/rlshell.h
-nls.so: $(topdir)/rlshell.h
-readline.so: $(topdir)/rlshell.h
-shell.so: $(topdir)/rlshell.h
-terminal.so: $(topdir)/rlshell.h
-histexpand.so: $(topdir)/rlshell.h
-
-bind.so: $(topdir)/rlprivate.h
-callback.so: $(topdir)/rlprivate.h
-complete.so: $(topdir)/rlprivate.h
-display.so: $(topdir)/rlprivate.h
-input.so: $(topdir)/rlprivate.h
-isearch.so: $(topdir)/rlprivate.h
-kill.so: $(topdir)/rlprivate.h
-macro.so: $(topdir)/rlprivate.h
-mbutil.so: $(topdir)/rlprivate.h
-misc.so: $(topdir)/rlprivate.h
-nls.so: $(topdir)/rlprivate.h
-parens.so: $(topdir)/rlprivate.h
-readline.so: $(topdir)/rlprivate.h
-rltty.so: $(topdir)/rlprivate.h
-search.so: $(topdir)/rlprivate.h
-signals.so: $(topdir)/rlprivate.h
-terminal.so: $(topdir)/rlprivate.h
-text.so: $(topdir)/rlprivate.h
-undo.so: $(topdir)/rlprivate.h
-util.so: $(topdir)/rlprivate.h
-vi_mode.so: $(topdir)/rlprivate.h
-
-bind.so: $(topdir)/xmalloc.h
-complete.so: $(topdir)/xmalloc.h
-display.so: $(topdir)/xmalloc.h
-funmap.so: $(topdir)/xmalloc.h
-histexpand.so: $(topdir)/xmalloc.h
-histfile.so: $(topdir)/xmalloc.h
-history.so: $(topdir)/xmalloc.h
-input.so: $(topdir)/xmalloc.h
-isearch.so: $(topdir)/xmalloc.h
-keymaps.so: $(topdir)/xmalloc.h
-kill.so: $(topdir)/xmalloc.h
-macro.so: $(topdir)/xmalloc.h
-mbutil.so: $(topdir)/xmalloc.h
-misc.so: $(topdir)/xmalloc.h
-readline.so: $(topdir)/xmalloc.h
-savestring.so: $(topdir)/xmalloc.h
-search.so: $(topdir)/xmalloc.h
-shell.so: $(topdir)/xmalloc.h
-terminal.so: $(topdir)/xmalloc.h
-text.so: $(topdir)/xmalloc.h
-tilde.so: $(topdir)/xmalloc.h
-undo.so: $(topdir)/xmalloc.h
-util.so: $(topdir)/xmalloc.h
-vi_mode.so: $(topdir)/xmalloc.h
-xmalloc.so: $(topdir)/xmalloc.h
-
-complete.o: $(topdir)/rlmbutil.h
-display.o: $(topdir)/rlmbutil.h
-histexpand.o: $(topdir)/rlmbutil.h
-input.o: $(topdir)/rlmbutil.h
-isearch.o: $(topdir)/rlmbutil.h
-mbutil.o: $(topdir)/rlmbutil.h
-misc.o: $(topdir)/rlmbutil.h
-readline.o: $(topdir)/rlmbutil.h
-search.o: $(topdir)/rlmbutil.h
-text.o: $(topdir)/rlmbutil.h
-vi_mode.o: $(topdir)/rlmbutil.h
-
-bind.so: $(topdir)/bind.c
-callback.so: $(topdir)/callback.c
-compat.so: $(topdir)/compat.c
-complete.so: $(topdir)/complete.c
-display.so: $(topdir)/display.c
-funmap.so: $(topdir)/funmap.c
-input.so: $(topdir)/input.c
-isearch.so: $(topdir)/isearch.c
-keymaps.so: $(topdir)/keymaps.c $(topdir)/emacs_keymap.c $(topdir)/vi_keymap.c
-kill.so: $(topdir)/kill.c
-macro.so: $(topdir)/macro.c
-mbutil.so: $(topdir)/mbutil.c
-misc.so: $(topdir)/mbutil.c
-nls.so: $(topdir)/nls.c
-parens.so: $(topdir)/parens.c
-readline.so: $(topdir)/readline.c
-rltty.so: $(topdir)/rltty.c
-savestring.so: $(topdir)/savestring.c
-search.so: $(topdir)/search.c
-shell.so: $(topdir)/shell.c
-signals.so: $(topdir)/signals.c
-terminal.so: $(topdir)/terminal.c
-text.so: $(topdir)/terminal.c
-tilde.so: $(topdir)/tilde.c
-undo.so: $(topdir)/undo.c
-util.so: $(topdir)/util.c
-vi_mode.so: $(topdir)/vi_mode.c
-xmalloc.so: $(topdir)/xmalloc.c
-
-histexpand.so: $(topdir)/histexpand.c
-histfile.so: $(topdir)/histfile.c
-history.so: $(topdir)/history.c
-histsearch.so: $(topdir)/histsearch.c
-
-bind.so: bind.c
-callback.so: callback.c
-comapt.so: compat.c
-complete.so: complete.c
-display.so: display.c
-funmap.so: funmap.c
-input.so: input.c
-isearch.so: isearch.c
-keymaps.so: keymaps.c emacs_keymap.c vi_keymap.c
-kill.so: kill.c
-macro.so: macro.c
-mbutil.so: mbutil.c
-misc.so: misc.c
-nls.so: nls.c
-parens.so: parens.c
-readline.so: readline.c
-rltty.so: rltty.c
-savestring.so: savestring.c
-search.so: search.c
-signals.so: signals.c
-shell.so: shell.c
-terminal.so: terminal.c
-text.so: terminal.c
-tilde.so: tilde.c
-undo.so: undo.c
-util.so: util.c
-vi_mode.so: vi_mode.c
-xmalloc.so: xmalloc.c
-
-histexpand.so: histexpand.c
-histfile.so: histfile.c
-history.so: history.c
-histsearch.so: histsearch.c
diff --git a/readline-4.3/signals.c b/readline-4.3/signals.c
deleted file mode 100644
index a73c36d..0000000
--- a/readline-4.3/signals.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/* signals.c -- signal handling support for readline. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <stdio.h> /* Just for NULL. Yuck. */
-#include <sys/types.h>
-#include <signal.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-#if defined (GWINSZ_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL */
-
-#if defined (HANDLE_SIGNALS)
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-
-#if !defined (RETSIGTYPE)
-# if defined (VOID_SIGHANDLER)
-# define RETSIGTYPE void
-# else
-# define RETSIGTYPE int
-# endif /* !VOID_SIGHANDLER */
-#endif /* !RETSIGTYPE */
-
-#if defined (VOID_SIGHANDLER)
-# define SIGHANDLER_RETURN return
-#else
-# define SIGHANDLER_RETURN return (0)
-#endif
-
-/* This typedef is equivalent to the one for Function; it allows us
- to say SigHandler *foo = signal (SIGKILL, SIG_IGN); */
-typedef RETSIGTYPE SigHandler ();
-
-#if defined (HAVE_POSIX_SIGNALS)
-typedef struct sigaction sighandler_cxt;
-# define rl_sigaction(s, nh, oh) sigaction(s, nh, oh)
-#else
-typedef struct { SigHandler *sa_handler; int sa_mask, sa_flags; } sighandler_cxt;
-# define sigemptyset(m)
-#endif /* !HAVE_POSIX_SIGNALS */
-
-static SigHandler *rl_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
-static void rl_maybe_set_sighandler PARAMS((int, SigHandler *, sighandler_cxt *));
-
-/* Exported variables for use by applications. */
-
-/* If non-zero, readline will install its own signal handlers for
- SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */
-int rl_catch_signals = 1;
-
-/* If non-zero, readline will install a signal handler for SIGWINCH. */
-#ifdef SIGWINCH
-int rl_catch_sigwinch = 1;
-#else
-int rl_catch_sigwinch = 0;
-#endif
-
-static int signals_set_flag;
-static int sigwinch_set_flag;
-
-/* **************************************************************** */
-/* */
-/* Signal Handling */
-/* */
-/* **************************************************************** */
-
-static sighandler_cxt old_int, old_term, old_alrm, old_quit;
-#if defined (SIGTSTP)
-static sighandler_cxt old_tstp, old_ttou, old_ttin;
-#endif
-#if defined (SIGWINCH)
-static sighandler_cxt old_winch;
-#endif
-
-/* Readline signal handler functions. */
-
-static RETSIGTYPE
-rl_signal_handler (sig)
- int sig;
-{
-#if defined (HAVE_POSIX_SIGNALS)
- sigset_t set;
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
- long omask;
-# else /* !HAVE_BSD_SIGNALS */
- sighandler_cxt dummy_cxt; /* needed for rl_set_sighandler call */
-# endif /* !HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
- RL_SETSTATE(RL_STATE_SIGHANDLER);
-
-#if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS)
- /* Since the signal will not be blocked while we are in the signal
- handler, ignore it until rl_clear_signals resets the catcher. */
- if (sig == SIGINT || sig == SIGALRM)
- rl_set_sighandler (sig, SIG_IGN, &dummy_cxt);
-#endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS */
-
- switch (sig)
- {
- case SIGINT:
- rl_free_line_state ();
- /* FALLTHROUGH */
-
-#if defined (SIGTSTP)
- case SIGTSTP:
- case SIGTTOU:
- case SIGTTIN:
-#endif /* SIGTSTP */
- case SIGALRM:
- case SIGTERM:
- case SIGQUIT:
- rl_cleanup_after_signal ();
-
-#if defined (HAVE_POSIX_SIGNALS)
- sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &set);
- sigdelset (&set, sig);
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
- omask = sigblock (0);
-# endif /* HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
-#if defined (__EMX__)
- signal (sig, SIG_ACK);
-#endif
-
- kill (getpid (), sig);
-
- /* Let the signal that we just sent through. */
-#if defined (HAVE_POSIX_SIGNALS)
- sigprocmask (SIG_SETMASK, &set, (sigset_t *)NULL);
-#else /* !HAVE_POSIX_SIGNALS */
-# if defined (HAVE_BSD_SIGNALS)
- sigsetmask (omask & ~(sigmask (sig)));
-# endif /* HAVE_BSD_SIGNALS */
-#endif /* !HAVE_POSIX_SIGNALS */
-
- rl_reset_after_signal ();
- }
-
- RL_UNSETSTATE(RL_STATE_SIGHANDLER);
- SIGHANDLER_RETURN;
-}
-
-#if defined (SIGWINCH)
-static RETSIGTYPE
-rl_sigwinch_handler (sig)
- int sig;
-{
- SigHandler *oh;
-
-#if defined (MUST_REINSTALL_SIGHANDLERS)
- sighandler_cxt dummy_winch;
-
- /* We don't want to change old_winch -- it holds the state of SIGWINCH
- disposition set by the calling application. We need this state
- because we call the application's SIGWINCH handler after updating
- our own idea of the screen size. */
- rl_set_sighandler (SIGWINCH, rl_sigwinch_handler, &dummy_winch);
-#endif
-
- RL_SETSTATE(RL_STATE_SIGHANDLER);
- rl_resize_terminal ();
-
- /* If another sigwinch handler has been installed, call it. */
- oh = (SigHandler *)old_winch.sa_handler;
- if (oh && oh != (SigHandler *)SIG_IGN && oh != (SigHandler *)SIG_DFL)
- (*oh) (sig);
-
- RL_UNSETSTATE(RL_STATE_SIGHANDLER);
- SIGHANDLER_RETURN;
-}
-#endif /* SIGWINCH */
-
-/* Functions to manage signal handling. */
-
-#if !defined (HAVE_POSIX_SIGNALS)
-static int
-rl_sigaction (sig, nh, oh)
- int sig;
- sighandler_cxt *nh, *oh;
-{
- oh->sa_handler = signal (sig, nh->sa_handler);
- return 0;
-}
-#endif /* !HAVE_POSIX_SIGNALS */
-
-/* Set up a readline-specific signal handler, saving the old signal
- information in OHANDLER. Return the old signal handler, like
- signal(). */
-static SigHandler *
-rl_set_sighandler (sig, handler, ohandler)
- int sig;
- SigHandler *handler;
- sighandler_cxt *ohandler;
-{
- sighandler_cxt old_handler;
-#if defined (HAVE_POSIX_SIGNALS)
- struct sigaction act;
-
- act.sa_handler = handler;
- act.sa_flags = 0; /* XXX - should we set SA_RESTART for SIGWINCH? */
- sigemptyset (&act.sa_mask);
- sigemptyset (&ohandler->sa_mask);
- sigaction (sig, &act, &old_handler);
-#else
- old_handler.sa_handler = (SigHandler *)signal (sig, handler);
-#endif /* !HAVE_POSIX_SIGNALS */
-
- /* XXX -- assume we have memcpy */
- /* If rl_set_signals is called twice in a row, don't set the old handler to
- rl_signal_handler, because that would cause infinite recursion. */
- if (handler != rl_signal_handler || old_handler.sa_handler != rl_signal_handler)
- memcpy (ohandler, &old_handler, sizeof (sighandler_cxt));
-
- return (ohandler->sa_handler);
-}
-
-static void
-rl_maybe_set_sighandler (sig, handler, ohandler)
- int sig;
- SigHandler *handler;
- sighandler_cxt *ohandler;
-{
- sighandler_cxt dummy;
- SigHandler *oh;
-
- sigemptyset (&dummy.sa_mask);
- oh = rl_set_sighandler (sig, handler, ohandler);
- if (oh == (SigHandler *)SIG_IGN)
- rl_sigaction (sig, ohandler, &dummy);
-}
-
-int
-rl_set_signals ()
-{
- sighandler_cxt dummy;
- SigHandler *oh;
-
- if (rl_catch_signals && signals_set_flag == 0)
- {
- rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int);
- rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term);
- rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit);
-
- oh = rl_set_sighandler (SIGALRM, rl_signal_handler, &old_alrm);
- if (oh == (SigHandler *)SIG_IGN)
- rl_sigaction (SIGALRM, &old_alrm, &dummy);
-#if defined (HAVE_POSIX_SIGNALS) && defined (SA_RESTART)
- /* If the application using readline has already installed a signal
- handler with SA_RESTART, SIGALRM will cause reads to be restarted
- automatically, so readline should just get out of the way. Since
- we tested for SIG_IGN above, we can just test for SIG_DFL here. */
- if (oh != (SigHandler *)SIG_DFL && (old_alrm.sa_flags & SA_RESTART))
- rl_sigaction (SIGALRM, &old_alrm, &dummy);
-#endif /* HAVE_POSIX_SIGNALS */
-
-#if defined (SIGTSTP)
- rl_maybe_set_sighandler (SIGTSTP, rl_signal_handler, &old_tstp);
-#endif /* SIGTSTP */
-
-#if defined (SIGTTOU)
- rl_maybe_set_sighandler (SIGTTOU, rl_signal_handler, &old_ttou);
-#endif /* SIGTTOU */
-
-#if defined (SIGTTIN)
- rl_maybe_set_sighandler (SIGTTIN, rl_signal_handler, &old_ttin);
-#endif /* SIGTTIN */
-
- signals_set_flag = 1;
- }
-
-#if defined (SIGWINCH)
- if (rl_catch_sigwinch && sigwinch_set_flag == 0)
- {
- rl_maybe_set_sighandler (SIGWINCH, rl_sigwinch_handler, &old_winch);
- sigwinch_set_flag = 1;
- }
-#endif /* SIGWINCH */
-
- return 0;
-}
-
-int
-rl_clear_signals ()
-{
- sighandler_cxt dummy;
-
- if (rl_catch_signals && signals_set_flag == 1)
- {
- sigemptyset (&dummy.sa_mask);
-
- rl_sigaction (SIGINT, &old_int, &dummy);
- rl_sigaction (SIGTERM, &old_term, &dummy);
- rl_sigaction (SIGQUIT, &old_quit, &dummy);
- rl_sigaction (SIGALRM, &old_alrm, &dummy);
-
-#if defined (SIGTSTP)
- rl_sigaction (SIGTSTP, &old_tstp, &dummy);
-#endif /* SIGTSTP */
-
-#if defined (SIGTTOU)
- rl_sigaction (SIGTTOU, &old_ttou, &dummy);
-#endif /* SIGTTOU */
-
-#if defined (SIGTTIN)
- rl_sigaction (SIGTTIN, &old_ttin, &dummy);
-#endif /* SIGTTIN */
-
- signals_set_flag = 0;
- }
-
-#if defined (SIGWINCH)
- if (rl_catch_sigwinch && sigwinch_set_flag == 1)
- {
- sigemptyset (&dummy.sa_mask);
- rl_sigaction (SIGWINCH, &old_winch, &dummy);
- sigwinch_set_flag = 0;
- }
-#endif
-
- return 0;
-}
-
-/* Clean up the terminal and readline state after catching a signal, before
- resending it to the calling application. */
-void
-rl_cleanup_after_signal ()
-{
- _rl_clean_up_for_exit ();
- (*rl_deprep_term_function) ();
- rl_clear_signals ();
- rl_clear_pending_input ();
-}
-
-/* Reset the terminal and readline state after a signal handler returns. */
-void
-rl_reset_after_signal ()
-{
- (*rl_prep_term_function) (_rl_meta_flag);
- rl_set_signals ();
-}
-
-/* Free up the readline variable line state for the current line (undo list,
- any partial history entry, any keyboard macros in progress, and any
- numeric arguments in process) after catching a signal, before calling
- rl_cleanup_after_signal(). */
-void
-rl_free_line_state ()
-{
- register HIST_ENTRY *entry;
-
- rl_free_undo_list ();
-
- entry = current_history ();
- if (entry)
- entry->data = (char *)NULL;
-
- _rl_kill_kbd_macro ();
- rl_clear_message ();
- _rl_init_argument ();
-}
-
-#endif /* HANDLE_SIGNALS */
diff --git a/readline-4.3/support/config.guess b/readline-4.3/support/config.guess
deleted file mode 100755
index 5668108..0000000
--- a/readline-4.3/support/config.guess
+++ /dev/null
@@ -1,1393 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
-
-timestamp='2002-03-20'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# 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 build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
- -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
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help" >&2
- exit 1 ;;
- * )
- break ;;
- esac
-done
-
-if test $# != 0; then
- echo "$me: too many arguments$help" >&2
- exit 1
-fi
-
-
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script.
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int dummy(){}" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
- if test $? = 0 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- rm -f $dummy.c $dummy.o $dummy.rel ;
- 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'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
- PATH=$PATH:/.attbin ; export PATH
-elif (test -f /usr/5bin/uname) >/dev/null 2>&1 ; then # bash
- PATH=$PATH:/usr/5bin
-fi
-
-UNAME=`(uname) 2>/dev/null` || UNAME=unknown # bash
-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_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
- # NOTE -- begin cases added for bash (mostly legacy) -- NOTE
- mac68k:machten:*:*)
- echo mac68k-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- concurrent*:*:*:*)
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo concurrent-concurrent-sysv3
- else
- echo concurrent-concurrent-bsd
- fi
- exit 0 ;;
- ppc*:SunOS:5.*:*)
- echo ppc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sparc:UNIX_SV:4.*:*)
- echo sparc-unknown-sysv${UNAME_RELEASE}
- exit 0 ;;
- mips:UNIX_SV:4.*:*)
- echo mips-mips-sysv${UNAME_RELEASE}
- exit 0 ;;
- mips:OSF*1:*:*)
- echo mips-mips-osf1
- exit 0 ;;
- mips:4.4BSD:*:*)
- echo mips-mips-bsd4.4
- exit 0 ;;
- MIS*:SMP_DC.OSx:*:dcosx) # not the same as below
- echo pyramid-pyramid-sysv4
- exit 0 ;;
- news*:NEWS*:*:*)
- echo mips-sony-newsos${UNAME_RELEASE}
- exit 0 ;;
- *370:AIX:*:*)
- echo ibm370-ibm-aix${UNAME_RELEASE}
- exit 0 ;;
- ksr1:OSF*1:*:*)
- echo ksr1-ksr-osf1
- exit 0 ;;
- esa:OSF*1:*:* | ESA:OSF*:*:*)
- echo esa-ibm-osf1
- exit 0 ;;
- DNP*:DNIX:*:*)
- echo m68k-dnix-sysv
- exit 0 ;;
- *3b2*:*:*:*)
- echo we32k-att-sysv3
- exit 0 ;;
- Alpha*:Windows_NT:*:SP*)
- echo alpha-pc-opennt
- exit 0 ;;
- *:Windows_NT:*:SP*)
- echo i386-pc-opennt
- exit 0 ;;
-
- # NOTE -- end legacy cases added for bash -- NOTE
- *:NetBSD:*:*)
- # 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.
- #
- # 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
- 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
- # The OS release
- release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
- # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
- # contains redundant information, the shorter form:
- # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}"
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- 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 ;;
- vax:OpenBSD:*:*) # bash
- echo vax-dec-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}'`
- fi
- # A Vn.n version is a released version.
- # A Tn.n version is a released field test version.
- # A Xn.n version is an unreleased experimental baselevel.
- # 1.2 uses "1.2" for uname -r.
- 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
- eval $set_cc_for_build
- $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
- if test "$?" = 0 ; then
- case `./$dummy` in
- 0-0)
- UNAME_MACHINE="alpha"
- ;;
- 1-0)
- UNAME_MACHINE="alphaev5"
- ;;
- 1-1)
- UNAME_MACHINE="alphaev56"
- ;;
- 1-101)
- UNAME_MACHINE="alphapca56"
- ;;
- 2-303)
- UNAME_MACHINE="alphaev6"
- ;;
- 2-307)
- UNAME_MACHINE="alphaev67"
- ;;
- 2-1307)
- UNAME_MACHINE="alphaev68"
- ;;
- esac
- fi
- rm -f $dummy.s $dummy
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit 0 ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit 0 ;;
- Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit 0;;
- *:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
- *:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
- *:OS/390:*:*)
- echo i370-ibm-openedition
- exit 0 ;;
- arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
- SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
- Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
- # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit 0 ;;
- NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit 0 ;;
- sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- i86pc:SunOS:5.*:*)
- echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:6*:*)
- # According to config.sub, this is the proper way to canonicalize
- # SunOS6. Hard to guess exactly what SunOS6 will be like, but
- # it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
- Series*|S4*)
- UNAME_RELEASE=`uname -v`
- ;;
- esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
- sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
- sun*:*:4.2BSD:*)
- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
- sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
- ;;
- sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
- ;;
- esac
- exit 0 ;;
- aushp:SunOS:*:*)
- echo sparc-auspex-sunos${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
- # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
- # to the lowercase version "mint" (or "freemint"). Finally
- # the system name "TOS" denotes a system which is actually not
- # MiNT. But MiNT is downward compatible to TOS, so this should
- # be no problem.
- atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
- milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
- hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
- *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
- powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
- RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit 0 ;;
- RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
- 2020:CLIX:*:* | 2430:CLIX:*:*)
- 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 */
- int main (int argc, char *argv[]) {
-#else
- int main (argc, argv) int argc; char *argv[]; {
-#endif
- #if defined (host_mips) && defined (MIPSEB)
- #if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
- #endif
- #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
- #endif
- #endif
- exit (-1);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy \
- && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
- Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit 0 ;;
- Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit 0 ;;
- m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit 0 ;;
- m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit 0 ;;
- m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit 0 ;;
- AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
- then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
- then
- echo m88k-dg-dgux${UNAME_RELEASE}
- else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
- fi
- else
- echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit 0 ;;
- M88*:*:R3*:*)
- # Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit 0 ;;
- XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit 0 ;;
- Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- 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.
- 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:*:*)
- 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
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <sys/systemcfg.h>
-
- main()
- {
- if (!__power_pc())
- exit(1);
- puts("powerpc-ibm-aix3.2.5");
- exit(0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo rs6000-ibm-aix3.2.5
- elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
- else
- echo rs6000-ibm-aix3.2
- fi
- exit 0 ;;
- *: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
- fi
- if [ -x /usr/bin/oslevel ] ; then
- IBM_REV=`/usr/bin/oslevel`
- else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
- fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
- *:AIX:*:*)
- echo rs6000-ibm-aix
- exit 0 ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
- *:BOSX:*:*)
- echo rs6000-bull-bosx
- exit 0 ;;
- DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit 0 ;;
- 9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit 0 ;;
- hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- 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])
- 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>
- #include <unistd.h>
-
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
-
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
-EOF
- (CCOPTS= $CC_FOR_BUILD $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
- fi ;;
- esac
- 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:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <unistd.h>
- int
- main ()
- {
- long cpu = sysconf (_SC_CPU_VERSION);
- /* The order matters, because CPU_IS_HP_MC68K erroneously returns
- true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
- if (CPU_IS_PA_RISC (cpu))
- {
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
- case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
- default: puts ("hppa-hitachi-hiuxwe2"); break;
- }
- }
- else if (CPU_IS_HP_MC68K (cpu))
- puts ("m68k-hitachi-hiuxwe2");
- else puts ("unknown-hitachi-hiuxwe2");
- exit (0);
- }
-EOF
- $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
- rm -f $dummy.c $dummy
- echo unknown-hitachi-hiuxwe2
- exit 0 ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit 0 ;;
- 9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit 0 ;;
- *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit 0 ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit 0 ;;
- hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit 0 ;;
- i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
- else
- echo ${UNAME_MACHINE}-unknown-osf1
- fi
- exit 0 ;;
- parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit 0 ;;
- C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit 0 ;;
- C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit 0 ;;
- C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit 0 ;;
- C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit 0 ;;
- CRAY*Y-MP:*:*:*)
- 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/' \
- -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
- -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3D:*:*:*)
- echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
- F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
- i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
- sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit 0 ;;
- i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- 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
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i386-pc-interix
- exit 0 ;;
- i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit 0 ;;
- prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
- *:GNU:*:*)
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
- 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
- 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.
- # 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/.*supported targets: *//
- s/ .*//
- p'`
- case "$ld_supported_targets" in
- elf32-i386)
- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
- ;;
- a.out-i386-linux)
- echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
- coff-i386)
- echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- 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
- # 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
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- rm -f $dummy.c
- 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 ;;
- 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,
- # I just have to hope. -- rms.
- # 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.*:*)
- 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}
- else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
- fi
- exit 0 ;;
- 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 ;;
- 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
- 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_MACHINE=i586
- (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
- && UNAME_MACHINE=i686
- (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
- && UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
- else
- echo ${UNAME_MACHINE}-pc-sysv32
- fi
- exit 0 ;;
- i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
- pc:*:*:*)
- # Left here for compatibility:
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
- echo i386-pc-msdosdjgpp
- exit 0 ;;
- Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit 0 ;;
- paragon:*:*:*)
- echo i860-intel-osf1
- exit 0 ;;
- i860:*:4.*:*) # i860-SVR4
- if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
- else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
- fi
- exit 0 ;;
- mini*:CTIX:SYS*5:*)
- # "miniframe"
- echo m68010-convergent-sysv
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 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`
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
- /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && 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:3.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:4.0*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
- rs6000:LynxOS:2.*:*)
- 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 ;;
- RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit 0 ;;
- *:SINIX-*:*:*)
- if uname -p 2>/dev/null >/dev/null ; then
- UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
- else
- echo ns32k-sni-sysv
- fi
- exit 0 ;;
- 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*)
- # From Gerald Hewes <hewes@openmarket.com>.
- # How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit 0 ;;
- *:*:*:FTX*)
- # 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 ;;
- news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit 0 ;;
- R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
- else
- echo mips-unknown-sysv${UNAME_RELEASE}
- fi
- exit 0 ;;
- BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit 0 ;;
- BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit 0 ;;
- BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit 0 ;;
- SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
- Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
- *:Darwin:*:*)
- echo `uname -p`-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
- *:procnto*:*:* | *:QNX:[0123456789]*:*)
- UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
- UNAME_PROCESSOR=i386
- UNAME_MACHINE=pc
- fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit 0 ;;
- *:QNX:*:4*)
- echo i386-pc-qnx
- exit 0 ;;
- NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
- 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 ;;
- *: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
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
- /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
- I don't know.... */
- printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
- printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
- "4"
-#else
- ""
-#endif
- ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
- printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
- int version;
- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
- if (version < 4)
- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
- else
- printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
- exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
- printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
- printf ("ns32k-encore-mach\n"); exit (0);
-#else
- printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
- printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
- printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
- printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
- struct utsname un;
-
- uname(&un);
-
- if (strncmp(un.version, "V2", 2) == 0) {
- printf ("i386-sequent-ptx2\n"); exit (0);
- }
- if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
- printf ("i386-sequent-ptx1\n"); exit (0);
- }
- printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-# include <sys/param.h>
-# if defined (BSD)
-# if BSD == 43
- printf ("vax-dec-bsd4.3\n"); exit (0);
-# else
-# if BSD == 199006
- printf ("vax-dec-bsd4.3reno\n"); exit (0);
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# endif
-# else
- printf ("vax-dec-bsd\n"); exit (0);
-# endif
-# else
- printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
- printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
- exit (1);
-}
-EOF
-
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
- case `getsysinfo -f cpu_type` in
- c1*)
- echo c1-convex-bsd
- exit 0 ;;
- c2*)
- if getsysinfo -f scalar_acc
- then echo c32-convex-bsd
- else echo c2-convex-bsd
- fi
- exit 0 ;;
- c34*)
- echo c34-convex-bsd
- exit 0 ;;
- c38*)
- echo c38-convex-bsd
- exit 0 ;;
- c4*)
- echo c4-convex-bsd
- exit 0 ;;
- esac
-fi
-
-# NOTE -- Begin fallback cases added for bash -- NOTE
-case "$UNAME" in
-uts) echo uts-amdahl-sysv${UNAME_RELEASE}; exit 0 ;;
-esac
-
-if [ -f /bin/fxc.info ]; then
- echo fxc-alliant-concentrix
- exit 0
-fi
-# NOTE -- End fallback cases added for bash -- NOTE
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-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/
-
-If the version you run ($0) is already up to date, please
-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.
-
-config.guess timestamp = $timestamp
-
-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`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo = `(hostinfo) 2>/dev/null`
-/bin/universe = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/readline-4.3/support/config.sub b/readline-4.3/support/config.sub
deleted file mode 100644
index 538dc09..0000000
--- a/readline-4.3/support/config.sub
+++ /dev/null
@@ -1,1497 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002 Free Software Foundation, Inc.
-
-timestamp='2002-03-07'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
- $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
- -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
- case $1 in
- --time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
- --version | -v )
- echo "$version" ; exit 0 ;;
- --help | --h* | -h )
- echo "$usage"; exit 0 ;;
- -- ) # Stop option processing
- shift; break ;;
- - ) # Use stdin as input.
- break ;;
- -* )
- echo "$me: invalid option $1$help"
- exit 1 ;;
-
- *local*)
- # First pass through any local machine types.
- echo $1
- exit 0;;
-
- * )
- break ;;
- esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
- exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
- exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# 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* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
- os=
- basic_machine=$1
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*)
- os=-lynxos
- ;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
- ;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
- ;;
- -psos*)
- os=-psos
- ;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 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 | dsp16xx \
- | fr30 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | i370 | i860 | i960 | ia64 \
- | m32r | m68000 | m68k | m88k | mcore \
- | mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \
- | mips64vr4100 | mips64vr4100el | mips64vr4300 \
- | mips64vr4300el | mips64vr5000 | mips64vr5000el \
- | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \
- | mipsisa32 | mipsisa64 \
- | mn10200 | mn10300 \
- | ns16k | ns32k \
- | openrisc | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
- | pyramid \
- | sh | sh[34] | sh[34]eb | shbe | shle | sh64 \
- | 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)
- # Motorola 68HC11/12.
- basic_machine=$basic_machine-unknown
- os=-none
- ;;
- 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.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
- | arm-* | armbe-* | armle-* | armv*-* \
- | avr-* \
- | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c54x-* \
- | clipper-* | cydra-* \
- | d10v-* | d30v-* \
- | elxsi-* \
- | f30[01]-* | f700-* | fr30-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | m32r-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
- | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \
- | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \
- | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
- | pyramid-* \
- | romp-* | rs6000-* \
- | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \
- | 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-*)
- ;;
-
- # NOTE -- BEGIN cases added for Bash -- NOTE
- butterfly-bbn* | cadmus-* | ews*-nec | masscomp-masscomp \
- | tandem-* | symmetric-* | drs6000-icl | *-*ardent | concurrent-* \
- | ksr1-* | esa-ibm | fxc-alliant | *370-amdahl | sx[45]*-nec )
- ;;
- # NOTE -- END cases added for Bash -- NOTE
-
- # Recognize the various machine names and aliases which stand
- # for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
- ;;
- 3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- 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
- ;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
- ;;
- encore | umax | mmax | multimax) # bash
- basic_machine=ns32k-encore
- ;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
- ;;
- fx2800)
- basic_machine=i860-alliant
- ;;
- genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
- ;;
- h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hbullx20-bull)
- basic_machine=m68k-bull # bash
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
- ;;
- hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
- ;;
- hp9k3[2-9][0-9])
- basic_machine=m68k-hp
- ;;
- hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
- ;;
- hp9k78[0-9] | hp78[0-9])
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
- # FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
- ;;
- hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- ibm032-*)
- basic_machine=ibmrt-ibm # bash
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
- ;;
-# I'm not sure what "Sysv32" means. Should this be sysv3.2?
- i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
- ;;
- i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
- ;;
- i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
- ;;
- i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
- ;;
- i386-go32)
- basic_machine=i386-pc # bash
- os=-go32
- ;;
- i386-mingw32)
- basic_machine=i386-pc # bash
- os=-mingw32
- ;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
- ;;
- iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
- ;;
- *)
- os=-irix4
- ;;
- esac
- ;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- luna88k-omron* | m88k-omron*) # bash
- basic_machine=m88k-omron
- ;;
- magicstation*)
- basic_machine=magicstation-unknown # bash
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- mingw32)
- basic_machine=i386-pc
- os=-mingw32
- ;;
- miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
- ;;
- news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
- ;;
- -ns2*)
- os=-nextstep2
- ;;
- *)
- os=-nextstep3
- ;;
- esac
- ;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
- np1)
- basic_machine=np1-gould
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
- ;;
- odt | odt3 | odt4) # SCO Open Desktop
- basic_machine=i386-pc # bash
- os=-sco3.2v4
- ;;
- op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- or32 | or32-*)
- basic_machine=or32-unknown
- os=-coff
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- osr5 | sco5) # SCO Open Server
- basic_machine=i386-pc # bash
- os=-sco3.2v5
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
- ;;
- pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- pbd)
- basic_machine=sparc-tti
- ;;
- pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2)
- basic_machine=i686-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc) basic_machine=powerpc-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/^[^-]*-//'`
- ;;
- 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
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- rm[46]00)
- basic_machine=mips-siemens
- ;;
- 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
- ;;
- sequent)
- basic_machine=i386-sequent
- ;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
- ;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
- ;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
- ;;
- spur)
- basic_machine=spur-unknown
- ;;
- st2000)
- basic_machine=m68k-tandem
- ;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
- ;;
- sun2)
- basic_machine=m68000-sun
- ;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
- ;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
- ;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
- ;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
- ;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
- ;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
- ;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
- ;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
- ;;
- sun4)
- basic_machine=sparc-sun
- ;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
- ;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
- ;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
- ;;
- t3d)
- basic_machine=alpha-cray
- os=-unicos
- ;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
- ;;
- t90)
- basic_machine=t90-cray
- os=-unicos
- ;;
- tic54x | c54x*)
- basic_machine=tic54x-unknown
- os=-coff
- ;;
- tx39)
- basic_machine=mipstx39-unknown
- ;;
- tx39el)
- basic_machine=mipstx39el-unknown
- ;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
- ;;
- tower | tower-32)
- basic_machine=m68k-ncr
- ;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
- ;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
- ;;
- uw2 | unixware | unixware2) # bash
- basic_machine=i386-pc
- os=-sysv4.2uw2.1
- ;;
- uw7 | unixware7) # bash
- basic_machine=i386-pc
- os=-sysv5uw7
- ;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
- ;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
- ;;
- vms)
- basic_machine=vax-dec
- os=-vms
- ;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
- ;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
- ;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
- ;;
- w65*)
- basic_machine=w65-wdc
- os=-none
- ;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
- ;;
- windows32)
- basic_machine=i386-pc
- os=-windows32-msvcrt
- ;;
- xps | xps100)
- basic_machine=xps100-honeywell
- ;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
- ;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
- ;;
- none)
- basic_machine=none-none
- os=-none
- ;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
- ;;
- op50n)
- basic_machine=hppa1.1-oki
- ;;
- op60c)
- basic_machine=hppa1.1-oki
- ;;
- romp)
- basic_machine=romp-ibm
- ;;
- rs6000)
- basic_machine=rs6000-ibm
- ;;
- 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
- ;;
- sh3 | sh4 | sh3eb | sh4eb)
- basic_machine=sh-unknown
- ;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparc | sparcv9 | sparcv9b)
- basic_machine=sparc-sun
- ;;
- cydra)
- basic_machine=cydra-cydrome
- ;;
- orion)
- basic_machine=orion-highlevel
- ;;
- orion105)
- basic_machine=clipper-highlevel
- ;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
- ;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
- ;;
- c4x*)
- 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
- ;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
- ;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
- ;;
- *)
- ;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
- ;;
- -solaris)
- os=-solaris2
- ;;
- -svr4*)
- os=-sysv4
- ;;
- -unixware7*) # bash
- os=-sysv5uw7
- ;;
- -unixware*)
- os=-sysv4.2uw
- ;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
- ;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* \
- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
- | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- # NOTE -- BEGIN CASES ADDED FOR Bash -- NOTE
- -powerux* | -superux*)
- ;;
- # NOTE -- END CASES ADDED FOR Bash -- NOTE
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
- ;;
- -nto*)
- os=-nto-qnx
- ;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
- ;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
- ;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
- ;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
- ;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
- ;;
- -opened*)
- os=-openedition
- ;;
- -wince*)
- os=-wince
- ;;
- -osfrose*)
- os=-osfrose
- ;;
- -osf*)
- os=-osf
- ;;
- -utek*)
- os=-bsd
- ;;
- -dynix*)
- os=-bsd
- ;;
- -acis*)
- os=-aos
- ;;
- -atheos*)
- os=-atheos
- ;;
- -386bsd)
- os=-bsd
- ;;
- -ctix* | -uts*)
- os=-sysv
- ;;
- -nova*)
- os=-rtmk-nova
- ;;
- -ns2 )
- os=-nextstep2
- ;;
- -nsk*)
- os=-nsk
- ;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
- ;;
- -sinix*)
- os=-sysv4
- ;;
- -triton*)
- os=-sysv3
- ;;
- -oss*)
- os=-sysv3
- ;;
- -svr4)
- os=-sysv4
- ;;
- -svr3)
- os=-sysv3
- ;;
- -sysvr4)
- os=-sysv4
- ;;
- -sysvr5) # bash
- os=-sysv5
- ;;
- # This must come after -sysvr4.
- -sysv*)
- ;;
- -ose*)
- os=-ose
- ;;
- -es1800*)
- os=-ose
- ;;
- -xenix)
- os=-xenix
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
- ;;
- -none)
- ;;
- *)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
- ;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system. Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
- *-acorn)
- os=-riscix1.2
- ;;
- arm*-rebel)
- os=-linux
- ;;
- arm*-semi)
- os=-aout
- ;;
- # This must come before the *-dec entry.
- pdp10-*)
- os=-tops20
- ;;
- pdp11-*)
- os=-none
- ;;
- *-dec | vax-*)
- os=-ultrix4.2
- ;;
- m68*-apollo)
- os=-domain
- ;;
- i386-sun)
- os=-sunos4.0.2
- ;;
- m68000-sun)
- os=-sunos3
- # This also exists in the configure program, but was not the
- # default.
- # os=-sunos4
- ;;
- m68*-cisco)
- os=-aout
- ;;
- mips*-cisco)
- os=-elf
- ;;
- mips*-*)
- os=-elf
- ;;
- or32-*)
- os=-coff
- ;;
- *-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
- ;;
- sparc-* | *-sun)
- os=-sunos4.1.1
- ;;
- *-be)
- os=-beos
- ;;
- *-ibm)
- os=-aix
- ;;
- *-wec)
- os=-proelf
- ;;
- *-winbond)
- os=-proelf
- ;;
- *-oki)
- os=-proelf
- ;;
- *-hp)
- os=-hpux
- ;;
- *-hitachi)
- os=-hiux
- ;;
- i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
- ;;
- *-cbm)
- os=-amigaos
- ;;
- *-dg)
- os=-dgux
- ;;
- *-dolphin)
- os=-sysv3
- ;;
- m68k-ccur)
- os=-rtu
- ;;
- m88k-omron*)
- os=-luna
- ;;
- *-next )
- os=-nextstep
- ;;
- *-sequent)
- os=-ptx
- ;;
- *-crds)
- os=-unos
- ;;
- *-ns)
- os=-genix
- ;;
- i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
- ;;
- *-gould)
- os=-sysv
- ;;
- *-highlevel)
- os=-bsd
- ;;
- *-encore)
- os=-bsd
- ;;
- *-sgi)
- os=-irix
- ;;
- *-siemens)
- os=-sysv4
- ;;
- *-masscomp)
- os=-rtu
- ;;
- f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
- ;;
- *-rom68k)
- os=-coff
- ;;
- *-*bug)
- os=-coff
- ;;
- *-apple)
- os=-macos
- ;;
- *-atari*)
- os=-mint
- ;;
- *)
- os=-none
- ;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
- vendor=acorn
- ;;
- -sunos*)
- vendor=sun
- ;;
- -lynxos*) # bash
- vendor=lynx
- ;;
- -aix*)
- vendor=ibm
- ;;
- -beos*)
- vendor=be
- ;;
- -hpux*)
- vendor=hp
- ;;
- -mpeix*)
- vendor=hp
- ;;
- -hiux*)
- vendor=hitachi
- ;;
- -unos*)
- vendor=crds
- ;;
- -dgux*)
- vendor=dg
- ;;
- -luna*)
- vendor=omron
- ;;
- -genix*)
- vendor=ns
- ;;
- -mvs* | -opened*)
- vendor=ibm
- ;;
- -ptx*)
- vendor=sequent
- ;;
- -vxsim* | -vxworks*)
- vendor=wrs
- ;;
- -aux*)
- vendor=apple
- ;;
- -hms*)
- vendor=hitachi
- ;;
- -mpw* | -macos*)
- vendor=apple
- ;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- vendor=atari
- ;;
- -vos*)
- vendor=stratus
- ;;
- esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
- ;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/readline-4.3/support/install.sh b/readline-4.3/support/install.sh
deleted file mode 100755
index 0cac004..0000000
--- a/readline-4.3/support/install.sh
+++ /dev/null
@@ -1,247 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5.
-#
-# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission. M.I.T. makes no representations about the
-# suitability of this software for any purpose. It is provided "as is"
-# without express or implied warranty.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-#
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-tranformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd="$cpprog"
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd="$stripprog"
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "install: no input file specified"
- exit 1
-else
- true
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d $dst ]; then
- instcmd=:
- else
- instcmd=mkdir
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f $src -o -d $src ]
- then
- true
- else
- echo "install: $src does not exist"
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "install: no destination specified"
- exit 1
- else
- true
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d $dst ]
- then
- dst="$dst"/`basename $src`
- else
- true
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp="${pathcomp}${1}"
- shift
-
- if [ ! -d "${pathcomp}" ] ;
- then
- $mkdirprog "${pathcomp}"
- else
- true
- fi
-
- pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd $dst &&
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename $dst`
- else
- dstfile=`basename $dst $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename $dst`
- else
- true
- fi
-
-# Make a temp file name in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd $src $dsttmp &&
-
- trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
- $doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
-
-fi &&
-
-
-exit 0
diff --git a/readline-4.3/support/mkdirs b/readline-4.3/support/mkdirs
deleted file mode 100755
index ce4fb23..0000000
--- a/readline-4.3/support/mkdirs
+++ /dev/null
@@ -1,48 +0,0 @@
-#! /bin/sh
-#
-# mkdirs - a work-alike for `mkdir -p'
-#
-# Chet Ramey
-# chet@po.cwru.edu
-
-# Copyright (C) 1996-2002 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-for dir
-do
-
- test -d "$dir" && continue
-
- tomake=$dir
- while test -n "$dir" ; do
- # dir=${dir%/*}
- # dir=`expr "$dir" ':' '\(/.*\)/[^/]*'`
- if dir=`expr "$dir" ':' '\(.*\)/[^/]*'`; then
- tomake="$dir $tomake"
- else
- dir=
- fi
- done
-
- for d in $tomake
- do
- test -d "$d" && continue
- echo mkdir "$d"
- mkdir "$d"
- done
-done
-
-exit 0
diff --git a/readline-4.3/support/mkdist b/readline-4.3/support/mkdist
deleted file mode 100755
index 06e6155..0000000
--- a/readline-4.3/support/mkdist
+++ /dev/null
@@ -1,120 +0,0 @@
-#! /bin/bash -
-#
-# mkdist - make a distribution directory from a master manifest file
-#
-# usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version
-#
-# SRCDIR defaults to src
-# MANIFEST defaults to $SRCDIR/MANIFEST
-#
-# Chet Ramey
-# chet@po.cwru.edu
-
-# Copyright (C) 1996-2002 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-SRCDIR=src
-ROOTNAME=bash
-
-usage()
-{
- echo usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version 1>&2
- exit 2
-}
-
-vmsg()
-{
- if [ -n "$verbose" ]; then
- echo mkdist: "$@"
- fi
-}
-
-while getopts m:s:r:v name
-do
- case $name in
- m) MANIFEST=$OPTARG ;;
- s) SRCDIR=$OPTARG ;;
- r) ROOTNAME=$OPTARG ;;
- v) verbose=yes ;;
- ?) usage ;;
- esac
-done
-
-: ${MANIFEST:=$SRCDIR/MANIFEST}
-
-vmsg using $MANIFEST
-
-shift $(( $OPTIND - 1 ))
-
-if [ $# -lt 1 ]; then
- usage
-fi
-
-version=$1
-newdir=${ROOTNAME}-$version
-
-vmsg creating distribution for $ROOTNAME version $version in $newdir
-
-if [ ! -d $newdir ]; then
- mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; }
-fi
-
-dirmode=755
-filmode=644
-
-while read fname type mode
-do
- [ -z "$fname" ] && continue
-
- case "$fname" in
- \#*) continue ;;
- esac
-
- case "$type" in
- d) mkdir $newdir/$fname ;;
- f) cp -p $SRCDIR/$fname $newdir/$fname ;;
- s) ln -s $mode $newdir/$fname ; mode= ;; # symlink
- l) ln $mode $newdir/$fname ; mode= ;; # hard link
- *) echo "unknown file type $type" 1>&2 ;;
- esac
-
- if [ -n "$mode" ]; then
- chmod $mode $newdir/$fname
- fi
-
-done < $MANIFEST
-
-# cut off the `-alpha' in something like `2.0-alpha', leaving just the
-# numeric version
-#version=${version%%-*}
-
-#case "$version" in
-#*.*.*) vers=${version%.*} ;;
-#*.*) vers=${version} ;;
-#esac
-
-#echo $vers > $newdir/.distribution
-
-#case "$version" in
-#*.*.*) plevel=${version##*.} ;;
-#*) plevel=0 ;;
-#esac
-#[ -z "$plevel" ] && plevel=0
-#echo ${plevel} > $newdir/.patchlevel
-
-vmsg $newdir created
-
-exit 0
diff --git a/readline-4.3/support/shlib-install b/readline-4.3/support/shlib-install
deleted file mode 100755
index 654cfa9..0000000
--- a/readline-4.3/support/shlib-install
+++ /dev/null
@@ -1,156 +0,0 @@
-#! /bin/sh
-#
-# shlib-install - install a shared library and do any necessary host-specific
-# post-installation configuration (like ldconfig)
-#
-# usage: shlib-install [-D] -O host_os -d installation-dir -i install-prog [-U] library
-#
-# Chet Ramey
-# chet@po.cwru.edu
-
-#
-# defaults
-#
-INSTALLDIR=/usr/local/lib
-LDCONFIG=ldconfig
-
-PROGNAME=`basename $0`
-USAGE="$PROGNAME [-D] -O host_os -d installation-dir -i install-prog [-U] library"
-
-# process options
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -O) shift; host_os="$1"; shift ;;
- -d) shift; INSTALLDIR="$1"; shift ;;
- -i) shift; INSTALLPROG="$1" ; shift ;;
- -D) echo=echo ; shift ;;
- -U) uninstall=true ; shift ;;
- -*) echo "$USAGE" >&2 ; exit 2;;
- *) break ;;
- esac
-done
-
-# set install target name
-LIBNAME="$1"
-
-if [ -z "$LIBNAME" ]; then
- echo "$USAGE" >&2
- exit 2
-fi
-
-OLDSUFF=old
-MV=mv
-RM="rm -f"
-LN="ln -s"
-
-# pre-install
-
-if [ -z "$uninstall" ]; then
- ${echo} $RM ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
- if [ -f "$INSTALLDIR/$LIBNAME" ]; then
- ${echo} $MV $INSTALLDIR/$LIBNAME ${INSTALLDIR}/${LIBNAME}.${OLDSUFF}
- fi
-fi
-
-# install/uninstall
-
-if [ -z "$uninstall" ] ; then
- ${echo} eval ${INSTALLPROG} $LIBNAME ${INSTALLDIR}/${LIBNAME}
-else
- ${echo} ${RM} ${INSTALLDIR}/${LIBNAME}
-fi
-
-# post-install/uninstall
-
-# HP-UX and Darwin/MacOS X require that a shared library have execute permission
-case "$host_os" in
-hpux*|darwin*|macosx*)
- if [ -z "$uninstall" ]; then
- chmod 555 ${INSTALLDIR}/${LIBNAME}
- fi ;;
-*) ;;
-esac
-
-case "$LIBNAME" in
-*.*.[0-9].[0-9]) # libname.so.M.N
- LINK2=`echo $LIBNAME | sed 's:\(.*\..*\.[0-9]\)\.[0-9]:\1:'` # libname.so.M
- LINK1=`echo $LIBNAME | sed 's:\(.*\..*\)\.[0-9]\.[0-9]:\1:'` # libname.so
- ;;
-*.*.[0-9]) # libname.so.M
- LINK1=`echo $LIBNAME | sed 's:\(.*\..*\)\.[0-9]:\1:'` # libname.so
- ;;
-*.[0-9]) # libname.M
- LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]:\1:'` # libname
- ;;
-*.[0-9].[0-9].dylib) # libname.M.N.dylib
- LINK2=`echo $LIBNAME | sed 's:\(.*\.[0-9]\)\.[0-9]:\1:'` # libname.M.dylib
- LINK1=`echo $LIBNAME | sed 's:\(.*\)\.[0-9]\.[0-9]:\1:'` # libname.dylib
-esac
-
-INSTALL_LINK1='cd $INSTALLDIR ; ln -s $LIBNAME $LINK1'
-INSTALL_LINK2='cd $INSTALLDIR ; ln -s $LIBNAME $LINK2'
-
-#
-# Create symlinks to the installed library. This section is incomplete.
-#
-case "$host_os" in
-*linux*|bsdi4*|*gnu*|darwin*|macosx*)
- # libname.so.M -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK2
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
- fi
-
- # libname.so -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
- fi
- ;;
-
-solaris2*|aix4.[2-9]*|osf*|irix[56]*|sysv[45]*|dgux*)
- # libname.so -> libname.so.M
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
- fi
- ;;
-
-
-# FreeBSD 3.x and above can have either a.out or ELF shared libraries
-freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
- if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
- # libname.so -> libname.so.M
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
- fi
- else
- # libname.so.M -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK2
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK2
- fi
-
- # libname.so -> libname.so.M.N
- ${echo} ${RM} ${INSTALLDIR}/$LINK1
- if [ -z "$uninstall" ]; then
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/$LINK1
- fi
- fi
- ;;
-
-hpux1*)
- # libname.sl -> libname.M
- ${echo} ${RM} ${INSTALLDIR}/$LINK1.sl
- if [ -z "$uninstall" ]; then
-# ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}.sl
- ${echo} ln -s $LIBNAME ${INSTALLDIR}/${LINK1}
- fi
- ;;
-
-*) ;;
-esac
-
-exit 0
diff --git a/readline-4.3/support/shobj-conf b/readline-4.3/support/shobj-conf
deleted file mode 100755
index 6bd7fb1..0000000
--- a/readline-4.3/support/shobj-conf
+++ /dev/null
@@ -1,458 +0,0 @@
-#! /bin/sh
-#
-# shobj-conf -- output a series of variable assignments to be substituted
-# into a Makefile by configure which specify system-dependent
-# information for creating shared objects that may be loaded
-# into bash with `enable -f'
-#
-# usage: shobj-conf [-C compiler] -c host_cpu -o host_os -v host_vendor
-#
-# Chet Ramey
-# chet@po.cwru.edu
-
-# Copyright (C) 1996-2002 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
-
-#
-# defaults
-#
-SHOBJ_STATUS=supported
-SHLIB_STATUS=supported
-
-SHOBJ_CC=cc
-SHOBJ_CFLAGS=
-SHOBJ_LD=
-SHOBJ_LDFLAGS=
-SHOBJ_XLDFLAGS=
-SHOBJ_LIBS=
-
-SHLIB_XLDFLAGS=
-SHLIB_LIBS=
-SHLIB_LIBSUFF='so'
-
-SHLIB_LIBVERSION='$(SHLIB_LIBSUFF)'
-
-PROGNAME=`basename $0`
-USAGE="$PROGNAME [-C compiler] -c host_cpu -o host_os -v host_vendor"
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -C) shift; SHOBJ_CC="$1"; shift ;;
- -c) shift; host_cpu="$1"; shift ;;
- -o) shift; host_os="$1"; shift ;;
- -v) shift; host_vendor="$1"; shift ;;
- *) echo "$USAGE" >&2 ; exit 2;;
- esac
-done
-
-case "${host_os}-${SHOBJ_CC}" in
-sunos4*-*gcc*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD=/usr/bin/ld
- SHOBJ_LDFLAGS='-assert pure-text'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-sunos4*)
- SHOBJ_CFLAGS=-pic
- SHOBJ_LD=/usr/bin/ld
- SHOBJ_LDFLAGS='-assert pure-text'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-sunos5*-*gcc*|solaris2*-*gcc*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
- # This line works for the Solaris linker in /usr/ccs/bin/ld
- SHOBJ_LDFLAGS='-shared -Wl,-i -Wl,-h,$@'
- # This line works for the GNU ld
-# SHOBJ_LDFLAGS='-shared -Wl,-h,$@'
-
-# SHLIB_XLDFLAGS='-R $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sunos5*|solaris2*)
- SHOBJ_CFLAGS='-K pic'
- SHOBJ_LD=/usr/ccs/bin/ld
- SHOBJ_LDFLAGS='-G -dy -z text -i -h $@'
-
-# SHLIB_XLDFLAGS='-R $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-# All versions of Linux or the semi-mythical GNU Hurd.
-linux*|gnu*)
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-freebsd2* | netbsd*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-x -Bshareable'
-
- SHLIB_XLDFLAGS='-R$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-# FreeBSD-3.x ELF
-freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
-
- if [ -x /usr/bin/objformat ] && [ "`/usr/bin/objformat`" = "elf" ]; then
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- else
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_XLDFLAGS='-R$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- fi
- ;;
-
-# Darwin/MacOS X
-darwin*|macosx*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=supported
-
- SHOBJ_CFLAGS='-dynamic -fno-common'
-
- SHOBJ_LD=/usr/bin/libtool
-
- SHLIB_LIBVERSION='$(SHLIB_MAJOR)$(SHLIB_MINOR).$(SHLIB_LIBSUFF)'
- SHLIB_LIBSUFF='dylib'
-
- SHOBJ_LDFLAGS='-dynamic'
- SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
-
- SHLIB_LIBS='-lSystem'
- ;;
-
-openbsd*)
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_XLDFLAGS='-R$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-bsdi2*)
- SHOBJ_CC=shlicc2
- SHOBJ_CFLAGS=
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS=-r
- SHOBJ_LIBS=-lc_s.2.1.0
-
- # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
- # the ass -- they require changing {/usr/lib,etc}/shlib.map on
- # each system, and the library creation process is byzantine
- SHLIB_STATUS=unsupported
- ;;
-
-bsdi3*)
- SHOBJ_CC=shlicc2
- SHOBJ_CFLAGS=
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS=-r
- SHOBJ_LIBS=-lc_s.3.0.0
-
- # BSD/OS 2.x and 3.x `shared libraries' are too much of a pain in
- # the ass -- they require changing {/usr/lib,etc}/shlib.map on
- # each system, and the library creation process is byzantine
- SHLIB_STATUS=unsupported
- ;;
-
-bsdi4*)
- # BSD/OS 4.x now supports ELF and SunOS-style dynamically-linked
- # shared libraries. gcc 2.x is the standard compiler, and the
- # `normal' gcc options should work as they do in Linux.
-
- SHOBJ_CFLAGS=-fPIC
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
- ;;
-
-osf*-*gcc*)
- # Fix to use gcc linker driver from bfischer@TechFak.Uni-Bielefeld.DE
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-rpath $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-osf*)
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-shared -soname $@ -expect_unresolved "*"'
-
- SHLIB_XLDFLAGS='-rpath $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-aix4.[2-9]*-*gcc*) # lightly tested by jik@cisco.com
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='ld'
- SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
- SHOBJ_XLDFLAGS='-G'
-
- SHLIB_XLDFLAGS='-bM:SRE'
- SHLIB_LIBS='-lcurses -lc'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-aix4.[2-9]*)
- SHOBJ_CFLAGS=-K
- SHOBJ_LD='ld'
- SHOBJ_LDFLAGS='-bdynamic -bnoentry -bexpall'
- SHOBJ_XLDFLAGS='-G'
-
- SHLIB_XLDFLAGS='-bM:SRE'
- SHLIB_LIBS='-lcurses -lc'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-#
-# THE FOLLOWING ARE UNTESTED -- and some may not support the dlopen interface
-#
-irix[56]*-*gcc*)
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
-
- SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-irix[56]*)
- SHOBJ_CFLAGS='-K PIC'
- SHOBJ_LD=ld
-# SHOBJ_LDFLAGS='-call_shared -hidden_symbol -no_unresolved -soname $@'
-# Change from David Kaelbling <drk@sgi.com>. If you have problems,
-# remove the `-no_unresolved'
- SHOBJ_LDFLAGS='-shared -no_unresolved -soname $@'
-
- SHLIB_XLDFLAGS='-rpath $(libdir)'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-hpux9*-*gcc*)
- # must use gcc; the bundled cc cannot compile PIC code
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
-
- SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
- SHLIB_LIBSUFF='sl'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-hpux9*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
-
- # If you are using the HP ANSI C compiler, you can uncomment and use
- # this code (I have not tested it)
-# SHOBJ_STATUS=supported
-# SHLIB_STATUS=supported
-#
-# SHOBJ_CFLAGS='+z'
-# SHOBJ_LD='ld'
-# SHOBJ_LDFLAGS='-b +s'
-#
-# SHLIB_XLDFLAGS='+b $(libdir)'
-# SHLIB_LIBSUFF='sl'
-# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
-
- ;;
-
-hpux10*-*gcc*)
- # must use gcc; the bundled cc cannot compile PIC code
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
-
- SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
- SHLIB_LIBSUFF='sl'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-hpux10*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
-
- # If you are using the HP ANSI C compiler, you can uncomment and use
- # this code (I have not tested it)
-# SHOBJ_STATUS=supported
-# SHLIB_STATUS=supported
-#
-# SHOBJ_CFLAGS='+z'
-# SHOBJ_LD='ld'
-# SHOBJ_LDFLAGS='-b +s +h $@'
-#
-# SHLIB_XLDFLAGS='+b $(libdir)'
-# SHLIB_LIBSUFF='sl'
-# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
-
- ;;
-
-hpux11*-*gcc*)
- # must use gcc; the bundled cc cannot compile PIC code
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
-# SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,-B,symbolic -Wl,+s -Wl,+std -Wl,+h,$@'
- SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s -Wl,+h,$@'
-
- SHLIB_XLDFLAGS='-Wl,+b,$(libdir)'
- SHLIB_LIBSUFF='sl'
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-hpux11*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
-
- # If you are using the HP ANSI C compiler, you can uncomment and use
- # this code (I have not tested it)
-# SHOBJ_STATUS=supported
-# SHLIB_STATUS=supported
-#
-# SHOBJ_CFLAGS='+z'
-# SHOBJ_LD='ld'
-# SHOBJ_LDFLAGS='-b +s +h $@'
-#
-# SHLIB_XLDFLAGS='+b $(libdir)'
-# SHLIB_LIBSUFF='sl'
-# SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
-
- ;;
-
-sysv4*-*gcc*)
- SHOBJ_CFLAGS=-shared
- SHOBJ_LDFLAGS='-shared -h $@'
- SHOBJ_LD='${CC}'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sysv4*)
- SHOBJ_CFLAGS='-K PIC'
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-dy -z text -G -h $@'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sco3.2v5*-*gcc*)
- SHOBJ_CFLAGS='-fpic' # DEFAULTS TO ELF
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sco3.2v5*)
- SHOBJ_CFLAGS='-K pic -b elf'
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-G -b elf -dy -z text -h $@'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sysv5uw7*-*gcc*)
- SHOBJ_CFLAGS='-fpic'
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-sysv5uw7*)
- SHOBJ_CFLAGS='-K PIC'
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-G -dy -z text -h $@'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-dgux*-*gcc*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-dgux*)
- SHOBJ_CFLAGS='-K pic'
- SHOBJ_LD=ld
- SHOBJ_LDFLAGS='-G -dy -h $@'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-msdos*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
- ;;
-
-#
-# Rely on correct gcc configuration for everything else
-#
-*-*gcc*)
- SHOBJ_CFLAGS=-fpic
- SHOBJ_LD='${CC}'
- SHOBJ_LDFLAGS='-shared'
-
- SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)'
- ;;
-
-*)
- SHOBJ_STATUS=unsupported
- SHLIB_STATUS=unsupported
- ;;
-
-esac
-
-echo SHOBJ_CC=\'"$SHOBJ_CC"\'
-echo SHOBJ_CFLAGS=\'"$SHOBJ_CFLAGS"\'
-echo SHOBJ_LD=\'"$SHOBJ_LD"\'
-echo SHOBJ_LDFLAGS=\'"$SHOBJ_LDFLAGS"\'
-echo SHOBJ_XLDFLAGS=\'"$SHOBJ_XLDFLAGS"\'
-echo SHOBJ_LIBS=\'"$SHOBJ_LIBS"\'
-
-echo SHLIB_XLDFLAGS=\'"$SHLIB_XLDFLAGS"\'
-echo SHLIB_LIBS=\'"$SHLIB_LIBS"\'
-echo SHLIB_LIBSUFF=\'"$SHLIB_LIBSUFF"\'
-echo SHLIB_LIBVERSION=\'"$SHLIB_LIBVERSION"\'
-
-echo SHOBJ_STATUS=\'"$SHOBJ_STATUS"\'
-echo SHLIB_STATUS=\'"$SHLIB_STATUS"\'
-
-exit 0
diff --git a/readline-4.3/support/wcwidth.c b/readline-4.3/support/wcwidth.c
deleted file mode 100644
index ace9a3a..0000000
--- a/readline-4.3/support/wcwidth.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * This is an implementation of wcwidth() and wcswidth() as defined in
- * "The Single UNIX Specification, Version 2, The Open Group, 1997"
- * <http://www.UNIX-systems.org/online.html>
- *
- * Markus Kuhn -- 2001-09-08 -- public domain
- */
-
-#include <wchar.h>
-
-struct interval {
- unsigned short first;
- unsigned short last;
-};
-
-/* auxiliary function for binary search in interval table */
-static int bisearch(wchar_t ucs, const struct interval *table, int max) {
- int min = 0;
- int mid;
-
- if (ucs < table[0].first || ucs > table[max].last)
- return 0;
- while (max >= min) {
- mid = (min + max) / 2;
- if (ucs > table[mid].last)
- min = mid + 1;
- else if (ucs < table[mid].first)
- max = mid - 1;
- else
- return 1;
- }
-
- return 0;
-}
-
-
-/* The following functions define the column width of an ISO 10646
- * character as follows:
- *
- * - The null character (U+0000) has a column width of 0.
- *
- * - Other C0/C1 control characters and DEL will lead to a return
- * value of -1.
- *
- * - Non-spacing and enclosing combining characters (general
- * category code Mn or Me in the Unicode database) have a
- * column width of 0.
- *
- * - Other format characters (general category code Cf in the Unicode
- * database) and ZERO WIDTH SPACE (U+200B) have a column width of 0.
- *
- * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF)
- * have a column width of 0.
- *
- * - Spacing characters in the East Asian Wide (W) or East Asian
- * FullWidth (F) category as defined in Unicode Technical
- * Report #11 have a column width of 2.
- *
- * - All remaining characters (including all printable
- * ISO 8859-1 and WGL4 characters, Unicode control characters,
- * etc.) have a column width of 1.
- *
- * This implementation assumes that wchar_t characters are encoded
- * in ISO 10646.
- */
-
-int wcwidth(wchar_t ucs)
-{
- /* sorted list of non-overlapping intervals of non-spacing characters */
- static const struct interval combining[] = {
- { 0x0300, 0x034E }, { 0x0360, 0x0362 }, { 0x0483, 0x0486 },
- { 0x0488, 0x0489 }, { 0x0591, 0x05A1 }, { 0x05A3, 0x05B9 },
- { 0x05BB, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 },
- { 0x05C4, 0x05C4 }, { 0x064B, 0x0655 }, { 0x0670, 0x0670 },
- { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED },
- { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A },
- { 0x07A6, 0x07B0 }, { 0x0901, 0x0902 }, { 0x093C, 0x093C },
- { 0x0941, 0x0948 }, { 0x094D, 0x094D }, { 0x0951, 0x0954 },
- { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, { 0x09BC, 0x09BC },
- { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, { 0x09E2, 0x09E3 },
- { 0x0A02, 0x0A02 }, { 0x0A3C, 0x0A3C }, { 0x0A41, 0x0A42 },
- { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, { 0x0A70, 0x0A71 },
- { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, { 0x0AC1, 0x0AC5 },
- { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, { 0x0B01, 0x0B01 },
- { 0x0B3C, 0x0B3C }, { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 },
- { 0x0B4D, 0x0B4D }, { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 },
- { 0x0BC0, 0x0BC0 }, { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 },
- { 0x0C46, 0x0C48 }, { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 },
- { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD },
- { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, { 0x0DCA, 0x0DCA },
- { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, { 0x0E31, 0x0E31 },
- { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, { 0x0EB1, 0x0EB1 },
- { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, { 0x0EC8, 0x0ECD },
- { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, { 0x0F37, 0x0F37 },
- { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, { 0x0F80, 0x0F84 },
- { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, { 0x0F99, 0x0FBC },
- { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, { 0x1032, 0x1032 },
- { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, { 0x1058, 0x1059 },
- { 0x1160, 0x11FF }, { 0x17B7, 0x17BD }, { 0x17C6, 0x17C6 },
- { 0x17C9, 0x17D3 }, { 0x180B, 0x180E }, { 0x18A9, 0x18A9 },
- { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x206A, 0x206F },
- { 0x20D0, 0x20E3 }, { 0x302A, 0x302F }, { 0x3099, 0x309A },
- { 0xFB1E, 0xFB1E }, { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF },
- { 0xFFF9, 0xFFFB }
- };
-
- /* test for 8-bit control characters */
- if (ucs == 0)
- return 0;
- if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0))
- return -1;
-
- /* binary search in table of non-spacing characters */
- if (bisearch(ucs, combining,
- sizeof(combining) / sizeof(struct interval) - 1))
- return 0;
-
- /* if we arrive here, ucs is not a combining or C0/C1 control character */
-
- return 1 +
- (ucs >= 0x1100 &&
- (ucs <= 0x115f || /* Hangul Jamo init. consonants */
- (ucs >= 0x2e80 && ucs <= 0xa4cf && (ucs & ~0x0011) != 0x300a &&
- ucs != 0x303f) || /* CJK ... Yi */
- (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */
- (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */
- (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */
- (ucs >= 0xff00 && ucs <= 0xff5f) || /* Fullwidth Forms */
- (ucs >= 0xffe0 && ucs <= 0xffe6) ||
- (ucs >= 0x20000 && ucs <= 0x2ffff)));
-}
-
-
-int wcswidth(const wchar_t *pwcs, size_t n)
-{
- int w, width = 0;
-
- for (;*pwcs && n-- > 0; pwcs++)
- if ((w = wcwidth(*pwcs)) < 0)
- return -1;
- else
- width += w;
-
- return width;
-}
-
-
-/*
- * The following function is the same as wcwidth(), except that
- * spacing characters in the East Asian Ambiguous (A) category as
- * defined in Unicode Technical Report #11 have a column width of 2.
- * This experimental variant might be useful for users of CJK legacy
- * encodings who want to migrate to UCS. It is not otherwise
- * recommended for general use.
- */
-static int wcwidth_cjk(wchar_t ucs)
-{
- /* sorted list of non-overlapping intervals of East Asian Ambiguous
- * characters */
- static const struct interval ambiguous[] = {
- { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 },
- { 0x00AA, 0x00AA }, { 0x00AD, 0x00AE }, { 0x00B0, 0x00B4 },
- { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 },
- { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 },
- { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED },
- { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA },
- { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 },
- { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B },
- { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 },
- { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 },
- { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 },
- { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE },
- { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 },
- { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA },
- { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 },
- { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB },
- { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB },
- { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0300, 0x034E },
- { 0x0360, 0x0362 }, { 0x0391, 0x03A1 }, { 0x03A3, 0x03A9 },
- { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 }, { 0x0401, 0x0401 },
- { 0x0410, 0x044F }, { 0x0451, 0x0451 }, { 0x2010, 0x2010 },
- { 0x2013, 0x2016 }, { 0x2018, 0x2019 }, { 0x201C, 0x201D },
- { 0x2020, 0x2022 }, { 0x2024, 0x2027 }, { 0x2030, 0x2030 },
- { 0x2032, 0x2033 }, { 0x2035, 0x2035 }, { 0x203B, 0x203B },
- { 0x203E, 0x203E }, { 0x2074, 0x2074 }, { 0x207F, 0x207F },
- { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, { 0x2103, 0x2103 },
- { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, { 0x2113, 0x2113 },
- { 0x2116, 0x2116 }, { 0x2121, 0x2122 }, { 0x2126, 0x2126 },
- { 0x212B, 0x212B }, { 0x2153, 0x2155 }, { 0x215B, 0x215E },
- { 0x2160, 0x216B }, { 0x2170, 0x2179 }, { 0x2190, 0x2199 },
- { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 }, { 0x21D4, 0x21D4 },
- { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 }, { 0x2202, 0x2203 },
- { 0x2207, 0x2208 }, { 0x220B, 0x220B }, { 0x220F, 0x220F },
- { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, { 0x221A, 0x221A },
- { 0x221D, 0x2220 }, { 0x2223, 0x2223 }, { 0x2225, 0x2225 },
- { 0x2227, 0x222C }, { 0x222E, 0x222E }, { 0x2234, 0x2237 },
- { 0x223C, 0x223D }, { 0x2248, 0x2248 }, { 0x224C, 0x224C },
- { 0x2252, 0x2252 }, { 0x2260, 0x2261 }, { 0x2264, 0x2267 },
- { 0x226A, 0x226B }, { 0x226E, 0x226F }, { 0x2282, 0x2283 },
- { 0x2286, 0x2287 }, { 0x2295, 0x2295 }, { 0x2299, 0x2299 },
- { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, { 0x2312, 0x2312 },
- { 0x2329, 0x232A }, { 0x2460, 0x24BF }, { 0x24D0, 0x24E9 },
- { 0x2500, 0x254B }, { 0x2550, 0x2574 }, { 0x2580, 0x258F },
- { 0x2592, 0x2595 }, { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 },
- { 0x25B2, 0x25B3 }, { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD },
- { 0x25C0, 0x25C1 }, { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB },
- { 0x25CE, 0x25D1 }, { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF },
- { 0x2605, 0x2606 }, { 0x2609, 0x2609 }, { 0x260E, 0x260F },
- { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 },
- { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 },
- { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F },
- { 0x273D, 0x273D }, { 0x3008, 0x300B }, { 0x3014, 0x3015 },
- { 0x3018, 0x301B }, { 0xFFFD, 0xFFFD }
- };
-
- /* binary search in table of non-spacing characters */
- if (bisearch(ucs, ambiguous,
- sizeof(ambiguous) / sizeof(struct interval) - 1))
- return 2;
-
- return wcwidth(ucs);
-}
-
-
-int wcswidth_cjk(const wchar_t *pwcs, size_t n)
-{
- int w, width = 0;
-
- for (;*pwcs && n-- > 0; pwcs++)
- if ((w = wcwidth_cjk(*pwcs)) < 0)
- return -1;
- else
- width += w;
-
- return width;
-}
diff --git a/readline-4.3/tcap.h b/readline-4.3/tcap.h
deleted file mode 100644
index 58ab894..0000000
--- a/readline-4.3/tcap.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* tcap.h -- termcap library functions and variables. */
-
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_RLTCAP_H_)
-#define _RLTCAP_H_
-
-#if defined (HAVE_CONFIG_H)
-# include "config.h"
-#endif
-
-#if defined (HAVE_TERMCAP_H)
-# if defined (__linux__) && !defined (SPEED_T_IN_SYS_TYPES)
-# include "rltty.h"
-# endif
-# include <termcap.h>
-#else
-
-/* On Solaris2, sys/types.h #includes sys/reg.h, which #defines PC.
- Unfortunately, PC is a global variable used by the termcap library. */
-#ifdef PC
-# undef PC
-#endif
-
-extern char PC;
-extern char *UP, *BC;
-
-extern short ospeed;
-
-extern int tgetent ();
-extern int tgetflag ();
-extern int tgetnum ();
-extern char *tgetstr ();
-
-extern int tputs ();
-
-extern char *tgoto ();
-
-#endif /* HAVE_TERMCAP_H */
-
-#endif /* !_RLTCAP_H_ */
diff --git a/readline-4.3/terminal.c b/readline-4.3/terminal.c
deleted file mode 100644
index f3f5b6c..0000000
--- a/readline-4.3/terminal.c
+++ /dev/null
@@ -1,662 +0,0 @@
-/* terminal.c -- controlling the terminal with termcap. */
-
-/* Copyright (C) 1996 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include "posixstat.h"
-#include <fcntl.h>
-#if defined (HAVE_SYS_FILE_H)
-# include <sys/file.h>
-#endif /* HAVE_SYS_FILE_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-#if defined (GWINSZ_IN_SYS_IOCTL) && !defined (TIOCGWINSZ)
-# include <sys/ioctl.h>
-#endif /* GWINSZ_IN_SYS_IOCTL && !TIOCGWINSZ */
-
-#include "rltty.h"
-#include "tcap.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-#define CUSTOM_REDISPLAY_FUNC() (rl_redisplay_function != rl_redisplay)
-#define CUSTOM_INPUT_FUNC() (rl_getc_function != rl_getc)
-
-/* **************************************************************** */
-/* */
-/* Terminal and Termcap */
-/* */
-/* **************************************************************** */
-
-static char *term_buffer = (char *)NULL;
-static char *term_string_buffer = (char *)NULL;
-
-static int tcap_initialized;
-
-#if !defined (__linux__)
-# if defined (__EMX__) || defined (NEED_EXTERN_PC)
-extern
-# endif /* __EMX__ || NEED_EXTERN_PC */
-char PC, *BC, *UP;
-#endif /* __linux__ */
-
-/* Some strings to control terminal actions. These are output by tputs (). */
-char *_rl_term_clreol;
-char *_rl_term_clrpag;
-char *_rl_term_cr;
-char *_rl_term_backspace;
-char *_rl_term_goto;
-char *_rl_term_pc;
-
-/* Non-zero if we determine that the terminal can do character insertion. */
-int _rl_terminal_can_insert = 0;
-
-/* How to insert characters. */
-char *_rl_term_im;
-char *_rl_term_ei;
-char *_rl_term_ic;
-char *_rl_term_ip;
-char *_rl_term_IC;
-
-/* How to delete characters. */
-char *_rl_term_dc;
-char *_rl_term_DC;
-
-#if defined (HACK_TERMCAP_MOTION)
-char *_rl_term_forward_char;
-#endif /* HACK_TERMCAP_MOTION */
-
-/* How to go up a line. */
-char *_rl_term_up;
-
-/* A visible bell; char if the terminal can be made to flash the screen. */
-static char *_rl_visible_bell;
-
-/* Non-zero means the terminal can auto-wrap lines. */
-int _rl_term_autowrap;
-
-/* Non-zero means that this terminal has a meta key. */
-static int term_has_meta;
-
-/* The sequences to write to turn on and off the meta key, if this
- terminal has one. */
-static char *_rl_term_mm;
-static char *_rl_term_mo;
-
-/* The key sequences output by the arrow keys, if this terminal has any. */
-static char *_rl_term_ku;
-static char *_rl_term_kd;
-static char *_rl_term_kr;
-static char *_rl_term_kl;
-
-/* How to initialize and reset the arrow keys, if this terminal has any. */
-static char *_rl_term_ks;
-static char *_rl_term_ke;
-
-/* The key sequences sent by the Home and End keys, if any. */
-static char *_rl_term_kh;
-static char *_rl_term_kH;
-static char *_rl_term_at7; /* @7 */
-
-/* Insert key */
-static char *_rl_term_kI;
-
-/* Cursor control */
-static char *_rl_term_vs; /* very visible */
-static char *_rl_term_ve; /* normal */
-
-static void bind_termcap_arrow_keys PARAMS((Keymap));
-
-/* Variables that hold the screen dimensions, used by the display code. */
-int _rl_screenwidth, _rl_screenheight, _rl_screenchars;
-
-/* Non-zero means the user wants to enable the keypad. */
-int _rl_enable_keypad;
-
-/* Non-zero means the user wants to enable a meta key. */
-int _rl_enable_meta = 1;
-
-#if defined (__EMX__)
-static void
-_emx_get_screensize (swp, shp)
- int *swp, *shp;
-{
- int sz[2];
-
- _scrsize (sz);
-
- if (swp)
- *swp = sz[0];
- if (shp)
- *shp = sz[1];
-}
-#endif
-
-/* Get readline's idea of the screen size. TTY is a file descriptor open
- to the terminal. If IGNORE_ENV is true, we do not pay attention to the
- values of $LINES and $COLUMNS. The tests for TERM_STRING_BUFFER being
- non-null serve to check whether or not we have initialized termcap. */
-void
-_rl_get_screen_size (tty, ignore_env)
- int tty, ignore_env;
-{
- char *ss;
-#if defined (TIOCGWINSZ)
- struct winsize window_size;
-#endif /* TIOCGWINSZ */
-
-#if defined (TIOCGWINSZ)
- if (ioctl (tty, TIOCGWINSZ, &window_size) == 0)
- {
- _rl_screenwidth = (int) window_size.ws_col;
- _rl_screenheight = (int) window_size.ws_row;
- }
-#endif /* TIOCGWINSZ */
-
-#if defined (__EMX__)
- _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight);
-#endif
-
- /* Environment variable COLUMNS overrides setting of "co" if IGNORE_ENV
- is unset. */
- if (_rl_screenwidth <= 0)
- {
- if (ignore_env == 0 && (ss = sh_get_env_value ("COLUMNS")))
- _rl_screenwidth = atoi (ss);
-
-#if !defined (__DJGPP__)
- if (_rl_screenwidth <= 0 && term_string_buffer)
- _rl_screenwidth = tgetnum ("co");
-#endif
- }
-
- /* Environment variable LINES overrides setting of "li" if IGNORE_ENV
- is unset. */
- if (_rl_screenheight <= 0)
- {
- if (ignore_env == 0 && (ss = sh_get_env_value ("LINES")))
- _rl_screenheight = atoi (ss);
-
-#if !defined (__DJGPP__)
- if (_rl_screenheight <= 0 && term_string_buffer)
- _rl_screenheight = tgetnum ("li");
-#endif
- }
-
- /* If all else fails, default to 80x24 terminal. */
- if (_rl_screenwidth <= 1)
- _rl_screenwidth = 80;
-
- if (_rl_screenheight <= 0)
- _rl_screenheight = 24;
-
- /* If we're being compiled as part of bash, set the environment
- variables $LINES and $COLUMNS to new values. Otherwise, just
- do a pair of putenv () or setenv () calls. */
- sh_set_lines_and_columns (_rl_screenheight, _rl_screenwidth);
-
- if (_rl_term_autowrap == 0)
- _rl_screenwidth--;
-
- _rl_screenchars = _rl_screenwidth * _rl_screenheight;
-}
-
-void
-_rl_set_screen_size (rows, cols)
- int rows, cols;
-{
- if (rows == 0 || cols == 0)
- return;
-
- _rl_screenheight = rows;
- _rl_screenwidth = cols;
-
- if (_rl_term_autowrap == 0)
- _rl_screenwidth--;
-
- _rl_screenchars = _rl_screenwidth * _rl_screenheight;
-}
-
-void
-rl_set_screen_size (rows, cols)
- int rows, cols;
-{
- _rl_set_screen_size (rows, cols);
-}
-
-void
-rl_get_screen_size (rows, cols)
- int *rows, *cols;
-{
- if (rows)
- *rows = _rl_screenheight;
- if (cols)
- *cols = _rl_screenwidth;
-}
-
-void
-rl_resize_terminal ()
-{
- if (readline_echoing_p)
- {
- _rl_get_screen_size (fileno (rl_instream), 1);
- if (CUSTOM_REDISPLAY_FUNC ())
- rl_forced_update_display ();
- else
- _rl_redisplay_after_sigwinch ();
- }
-}
-
-struct _tc_string {
- const char *tc_var;
- char **tc_value;
-};
-
-/* This should be kept sorted, just in case we decide to change the
- search algorithm to something smarter. */
-static struct _tc_string tc_strings[] =
-{
- { "@7", &_rl_term_at7 },
- { "DC", &_rl_term_DC },
- { "IC", &_rl_term_IC },
- { "ce", &_rl_term_clreol },
- { "cl", &_rl_term_clrpag },
- { "cr", &_rl_term_cr },
- { "dc", &_rl_term_dc },
- { "ei", &_rl_term_ei },
- { "ic", &_rl_term_ic },
- { "im", &_rl_term_im },
- { "kH", &_rl_term_kH }, /* home down ?? */
- { "kI", &_rl_term_kI }, /* insert */
- { "kd", &_rl_term_kd },
- { "ke", &_rl_term_ke }, /* end keypad mode */
- { "kh", &_rl_term_kh }, /* home */
- { "kl", &_rl_term_kl },
- { "kr", &_rl_term_kr },
- { "ks", &_rl_term_ks }, /* start keypad mode */
- { "ku", &_rl_term_ku },
- { "le", &_rl_term_backspace },
- { "mm", &_rl_term_mm },
- { "mo", &_rl_term_mo },
-#if defined (HACK_TERMCAP_MOTION)
- { "nd", &_rl_term_forward_char },
-#endif
- { "pc", &_rl_term_pc },
- { "up", &_rl_term_up },
- { "vb", &_rl_visible_bell },
- { "vs", &_rl_term_vs },
- { "ve", &_rl_term_ve },
-};
-
-#define NUM_TC_STRINGS (sizeof (tc_strings) / sizeof (struct _tc_string))
-
-/* Read the desired terminal capability strings into BP. The capabilities
- are described in the TC_STRINGS table. */
-static void
-get_term_capabilities (bp)
- char **bp;
-{
-#if !defined (__DJGPP__) /* XXX - doesn't DJGPP have a termcap library? */
- register int i;
-
- for (i = 0; i < NUM_TC_STRINGS; i++)
-# ifdef __LCC__
- *(tc_strings[i].tc_value) = tgetstr ((char *)tc_strings[i].tc_var, bp);
-# else
- *(tc_strings[i].tc_value) = tgetstr (tc_strings[i].tc_var, bp);
-# endif
-#endif
- tcap_initialized = 1;
-}
-
-int
-_rl_init_terminal_io (terminal_name)
- const char *terminal_name;
-{
- const char *term;
- char *buffer;
- int tty, tgetent_ret;
-
- term = terminal_name ? terminal_name : sh_get_env_value ("TERM");
- _rl_term_clrpag = _rl_term_cr = _rl_term_clreol = (char *)NULL;
- tty = rl_instream ? fileno (rl_instream) : 0;
- _rl_screenwidth = _rl_screenheight = 0;
-
- if (term == 0)
- term = "dumb";
-
- /* I've separated this out for later work on not calling tgetent at all
- if the calling application has supplied a custom redisplay function,
- (and possibly if the application has supplied a custom input function). */
- if (CUSTOM_REDISPLAY_FUNC())
- {
- tgetent_ret = -1;
- }
- else
- {
- if (term_string_buffer == 0)
- term_string_buffer = (char *)xmalloc(2032);
-
- if (term_buffer == 0)
- term_buffer = (char *)xmalloc(4080);
-
- buffer = term_string_buffer;
-
- tgetent_ret = tgetent (term_buffer, term);
- }
-
- if (tgetent_ret <= 0)
- {
- FREE (term_string_buffer);
- FREE (term_buffer);
- buffer = term_buffer = term_string_buffer = (char *)NULL;
-
- _rl_term_autowrap = 0; /* used by _rl_get_screen_size */
-
-#if defined (__EMX__)
- _emx_get_screensize (&_rl_screenwidth, &_rl_screenheight);
- _rl_screenwidth--;
-#else /* !__EMX__ */
- _rl_get_screen_size (tty, 0);
-#endif /* !__EMX__ */
-
- /* Defaults. */
- if (_rl_screenwidth <= 0 || _rl_screenheight <= 0)
- {
- _rl_screenwidth = 79;
- _rl_screenheight = 24;
- }
-
- /* Everything below here is used by the redisplay code (tputs). */
- _rl_screenchars = _rl_screenwidth * _rl_screenheight;
- _rl_term_cr = "\r";
- _rl_term_im = _rl_term_ei = _rl_term_ic = _rl_term_IC = (char *)NULL;
- _rl_term_up = _rl_term_dc = _rl_term_DC = _rl_visible_bell = (char *)NULL;
- _rl_term_ku = _rl_term_kd = _rl_term_kl = _rl_term_kr = (char *)NULL;
- _rl_term_kh = _rl_term_kH = _rl_term_kI = (char *)NULL;
- _rl_term_ks = _rl_term_ke = _rl_term_at7 = (char *)NULL;
- _rl_term_mm = _rl_term_mo = (char *)NULL;
- _rl_term_ve = _rl_term_vs = (char *)NULL;
-#if defined (HACK_TERMCAP_MOTION)
- term_forward_char = (char *)NULL;
-#endif
- _rl_terminal_can_insert = term_has_meta = 0;
-
- /* Reasonable defaults for tgoto(). Readline currently only uses
- tgoto if _rl_term_IC or _rl_term_DC is defined, but just in case we
- change that later... */
- PC = '\0';
- BC = _rl_term_backspace = "\b";
- UP = _rl_term_up;
-
- return 0;
- }
-
- get_term_capabilities (&buffer);
-
- /* Set up the variables that the termcap library expects the application
- to provide. */
- PC = _rl_term_pc ? *_rl_term_pc : 0;
- BC = _rl_term_backspace;
- UP = _rl_term_up;
-
- if (!_rl_term_cr)
- _rl_term_cr = "\r";
-
- _rl_term_autowrap = tgetflag ("am") && tgetflag ("xn");
-
- _rl_get_screen_size (tty, 0);
-
- /* "An application program can assume that the terminal can do
- character insertion if *any one of* the capabilities `IC',
- `im', `ic' or `ip' is provided." But we can't do anything if
- only `ip' is provided, so... */
- _rl_terminal_can_insert = (_rl_term_IC || _rl_term_im || _rl_term_ic);
-
- /* Check to see if this terminal has a meta key and clear the capability
- variables if there is none. */
- term_has_meta = (tgetflag ("km") || tgetflag ("MT"));
- if (!term_has_meta)
- _rl_term_mm = _rl_term_mo = (char *)NULL;
-
- /* Attempt to find and bind the arrow keys. Do not override already
- bound keys in an overzealous attempt, however. */
-
- bind_termcap_arrow_keys (emacs_standard_keymap);
-
-#if defined (VI_MODE)
- bind_termcap_arrow_keys (vi_movement_keymap);
- bind_termcap_arrow_keys (vi_insertion_keymap);
-#endif /* VI_MODE */
-
- return 0;
-}
-
-/* Bind the arrow key sequences from the termcap description in MAP. */
-static void
-bind_termcap_arrow_keys (map)
- Keymap map;
-{
- Keymap xkeymap;
-
- xkeymap = _rl_keymap;
- _rl_keymap = map;
-
- _rl_bind_if_unbound (_rl_term_ku, rl_get_previous_history);
- _rl_bind_if_unbound (_rl_term_kd, rl_get_next_history);
- _rl_bind_if_unbound (_rl_term_kr, rl_forward);
- _rl_bind_if_unbound (_rl_term_kl, rl_backward);
-
- _rl_bind_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */
- _rl_bind_if_unbound (_rl_term_at7, rl_end_of_line); /* End */
-
- _rl_keymap = xkeymap;
-}
-
-char *
-rl_get_termcap (cap)
- const char *cap;
-{
- register int i;
-
- if (tcap_initialized == 0)
- return ((char *)NULL);
- for (i = 0; i < NUM_TC_STRINGS; i++)
- {
- if (tc_strings[i].tc_var[0] == cap[0] && strcmp (tc_strings[i].tc_var, cap) == 0)
- return *(tc_strings[i].tc_value);
- }
- return ((char *)NULL);
-}
-
-/* Re-initialize the terminal considering that the TERM/TERMCAP variable
- has changed. */
-int
-rl_reset_terminal (terminal_name)
- const char *terminal_name;
-{
- _rl_init_terminal_io (terminal_name);
- return 0;
-}
-
-/* A function for the use of tputs () */
-#ifdef _MINIX
-void
-_rl_output_character_function (c)
- int c;
-{
- putc (c, _rl_out_stream);
-}
-#else /* !_MINIX */
-int
-_rl_output_character_function (c)
- int c;
-{
- return putc (c, _rl_out_stream);
-}
-#endif /* !_MINIX */
-
-/* Write COUNT characters from STRING to the output stream. */
-void
-_rl_output_some_chars (string, count)
- const char *string;
- int count;
-{
- fwrite (string, 1, count, _rl_out_stream);
-}
-
-/* Move the cursor back. */
-int
-_rl_backspace (count)
- int count;
-{
- register int i;
-
- if (_rl_term_backspace)
- for (i = 0; i < count; i++)
- tputs (_rl_term_backspace, 1, _rl_output_character_function);
- else
- for (i = 0; i < count; i++)
- putc ('\b', _rl_out_stream);
- return 0;
-}
-
-/* Move to the start of the next line. */
-int
-rl_crlf ()
-{
-#if defined (NEW_TTY_DRIVER)
- if (_rl_term_cr)
- tputs (_rl_term_cr, 1, _rl_output_character_function);
-#endif /* NEW_TTY_DRIVER */
- putc ('\n', _rl_out_stream);
- return 0;
-}
-
-/* Ring the terminal bell. */
-int
-rl_ding ()
-{
- if (readline_echoing_p)
- {
- switch (_rl_bell_preference)
- {
- case NO_BELL:
- default:
- break;
- case VISIBLE_BELL:
- if (_rl_visible_bell)
- {
- tputs (_rl_visible_bell, 1, _rl_output_character_function);
- break;
- }
- /* FALLTHROUGH */
- case AUDIBLE_BELL:
- fprintf (stderr, "\007");
- fflush (stderr);
- break;
- }
- return (0);
- }
- return (-1);
-}
-
-/* **************************************************************** */
-/* */
-/* Controlling the Meta Key and Keypad */
-/* */
-/* **************************************************************** */
-
-void
-_rl_enable_meta_key ()
-{
-#if !defined (__DJGPP__)
- if (term_has_meta && _rl_term_mm)
- tputs (_rl_term_mm, 1, _rl_output_character_function);
-#endif
-}
-
-void
-_rl_control_keypad (on)
- int on;
-{
-#if !defined (__DJGPP__)
- if (on && _rl_term_ks)
- tputs (_rl_term_ks, 1, _rl_output_character_function);
- else if (!on && _rl_term_ke)
- tputs (_rl_term_ke, 1, _rl_output_character_function);
-#endif
-}
-
-/* **************************************************************** */
-/* */
-/* Controlling the Cursor */
-/* */
-/* **************************************************************** */
-
-/* Set the cursor appropriately depending on IM, which is one of the
- insert modes (insert or overwrite). Insert mode gets the normal
- cursor. Overwrite mode gets a very visible cursor. Only does
- anything if we have both capabilities. */
-void
-_rl_set_cursor (im, force)
- int im, force;
-{
- if (_rl_term_ve && _rl_term_vs)
- {
- if (force || im != rl_insert_mode)
- {
- if (im == RL_IM_OVERWRITE)
- tputs (_rl_term_vs, 1, _rl_output_character_function);
- else
- tputs (_rl_term_ve, 1, _rl_output_character_function);
- }
- }
-}
diff --git a/readline-4.3/text.c b/readline-4.3/text.c
deleted file mode 100644
index 2a7b724..0000000
--- a/readline-4.3/text.c
+++ /dev/null
@@ -1,1540 +0,0 @@
-/* text.c -- text handling commands for readline. */
-
-/* Copyright (C) 1987-2002 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_LOCALE_H)
-# include <locale.h>
-#endif
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#if defined (__EMX__)
-# define INCL_DOSPROCESS
-# include <os2.h>
-#endif /* __EMX__ */
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "rlshell.h"
-#include "xmalloc.h"
-
-/* Forward declarations. */
-static int rl_change_case PARAMS((int, int));
-static int _rl_char_search PARAMS((int, int, int));
-
-/* **************************************************************** */
-/* */
-/* Insert and Delete */
-/* */
-/* **************************************************************** */
-
-/* Insert a string of text into the line at point. This is the only
- way that you should do insertion. _rl_insert_char () calls this
- function. Returns the number of characters inserted. */
-int
-rl_insert_text (string)
- const char *string;
-{
- register int i, l;
-
- l = (string && *string) ? strlen (string) : 0;
- if (l == 0)
- return 0;
-
- if (rl_end + l >= rl_line_buffer_len)
- rl_extend_line_buffer (rl_end + l);
-
- for (i = rl_end; i >= rl_point; i--)
- rl_line_buffer[i + l] = rl_line_buffer[i];
- strncpy (rl_line_buffer + rl_point, string, l);
-
- /* Remember how to undo this if we aren't undoing something. */
- if (_rl_doing_an_undo == 0)
- {
- /* If possible and desirable, concatenate the undos. */
- if ((l == 1) &&
- rl_undo_list &&
- (rl_undo_list->what == UNDO_INSERT) &&
- (rl_undo_list->end == rl_point) &&
- (rl_undo_list->end - rl_undo_list->start < 20))
- rl_undo_list->end++;
- else
- rl_add_undo (UNDO_INSERT, rl_point, rl_point + l, (char *)NULL);
- }
- rl_point += l;
- rl_end += l;
- rl_line_buffer[rl_end] = '\0';
- return l;
-}
-
-/* Delete the string between FROM and TO. FROM is inclusive, TO is not.
- Returns the number of characters deleted. */
-int
-rl_delete_text (from, to)
- int from, to;
-{
- register char *text;
- register int diff, i;
-
- /* Fix it if the caller is confused. */
- if (from > to)
- SWAP (from, to);
-
- /* fix boundaries */
- if (to > rl_end)
- {
- to = rl_end;
- if (from > to)
- from = to;
- }
- if (from < 0)
- from = 0;
-
- text = rl_copy_text (from, to);
-
- /* Some versions of strncpy() can't handle overlapping arguments. */
- diff = to - from;
- for (i = from; i < rl_end - diff; i++)
- rl_line_buffer[i] = rl_line_buffer[i + diff];
-
- /* Remember how to undo this delete. */
- if (_rl_doing_an_undo == 0)
- rl_add_undo (UNDO_DELETE, from, to, text);
- else
- free (text);
-
- rl_end -= diff;
- rl_line_buffer[rl_end] = '\0';
- return (diff);
-}
-
-/* Fix up point so that it is within the line boundaries after killing
- text. If FIX_MARK_TOO is non-zero, the mark is forced within line
- boundaries also. */
-
-#define _RL_FIX_POINT(x) \
- do { \
- if (x > rl_end) \
- x = rl_end; \
- else if (x < 0) \
- x = 0; \
- } while (0)
-
-void
-_rl_fix_point (fix_mark_too)
- int fix_mark_too;
-{
- _RL_FIX_POINT (rl_point);
- if (fix_mark_too)
- _RL_FIX_POINT (rl_mark);
-}
-#undef _RL_FIX_POINT
-
-int
-_rl_replace_text (text, start, end)
- const char *text;
- int start, end;
-{
- int n;
-
- rl_begin_undo_group ();
- rl_delete_text (start, end + 1);
- rl_point = start;
- n = rl_insert_text (text);
- rl_end_undo_group ();
-
- return n;
-}
-
-/* Replace the current line buffer contents with TEXT. If CLEAR_UNDO is
- non-zero, we free the current undo list. */
-void
-rl_replace_line (text, clear_undo)
- const char *text;
- int clear_undo;
-{
- int len;
-
- len = strlen (text);
- if (len >= rl_line_buffer_len)
- rl_extend_line_buffer (len);
- strcpy (rl_line_buffer, text);
- rl_end = len;
-
- if (clear_undo)
- rl_free_undo_list ();
-
- _rl_fix_point (1);
-}
-
-/* **************************************************************** */
-/* */
-/* Readline character functions */
-/* */
-/* **************************************************************** */
-
-/* This is not a gap editor, just a stupid line input routine. No hair
- is involved in writing any of the functions, and none should be. */
-
-/* Note that:
-
- rl_end is the place in the string that we would place '\0';
- i.e., it is always safe to place '\0' there.
-
- rl_point is the place in the string where the cursor is. Sometimes
- this is the same as rl_end.
-
- Any command that is called interactively receives two arguments.
- The first is a count: the numeric arg pased to this command.
- The second is the key which invoked this command.
-*/
-
-/* **************************************************************** */
-/* */
-/* Movement Commands */
-/* */
-/* **************************************************************** */
-
-/* Note that if you `optimize' the display for these functions, you cannot
- use said functions in other functions which do not do optimizing display.
- I.e., you will have to update the data base for rl_redisplay, and you
- might as well let rl_redisplay do that job. */
-
-/* Move forward COUNT bytes. */
-int
-rl_forward_byte (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_backward_byte (-count, key));
-
- if (count > 0)
- {
- int end = rl_point + count;
-#if defined (VI_MODE)
- int lend = rl_end > 0 ? rl_end - (rl_editing_mode == vi_mode) : rl_end;
-#else
- int lend = rl_end;
-#endif
-
- if (end > lend)
- {
- rl_point = lend;
- rl_ding ();
- }
- else
- rl_point = end;
- }
-
- if (rl_end < 0)
- rl_end = 0;
-
- return 0;
-}
-
-#if defined (HANDLE_MULTIBYTE)
-/* Move forward COUNT characters. */
-int
-rl_forward_char (count, key)
- int count, key;
-{
- int point;
-
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- return (rl_forward_byte (count, key));
-
- if (count < 0)
- return (rl_backward_char (-count, key));
-
- if (count > 0)
- {
- point = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO);
-
-#if defined (VI_MODE)
- if (rl_end <= point && rl_editing_mode == vi_mode)
- point = _rl_find_prev_mbchar (rl_line_buffer, rl_end, MB_FIND_NONZERO);
-#endif
-
- if (rl_point == point)
- rl_ding ();
-
- rl_point = point;
-
- if (rl_end < 0)
- rl_end = 0;
- }
-
- return 0;
-}
-#else /* !HANDLE_MULTIBYTE */
-int
-rl_forward_char (count, key)
- int count, key;
-{
- return (rl_forward_byte (count, key));
-}
-#endif /* !HANDLE_MULTIBYTE */
-
-/* Backwards compatibility. */
-int
-rl_forward (count, key)
- int count, key;
-{
- return (rl_forward_char (count, key));
-}
-
-/* Move backward COUNT bytes. */
-int
-rl_backward_byte (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_forward_byte (-count, key));
-
- if (count > 0)
- {
- if (rl_point < count)
- {
- rl_point = 0;
- rl_ding ();
- }
- else
- rl_point -= count;
- }
-
- if (rl_point < 0)
- rl_point = 0;
-
- return 0;
-}
-
-#if defined (HANDLE_MULTIBYTE)
-/* Move backward COUNT characters. */
-int
-rl_backward_char (count, key)
- int count, key;
-{
- int point;
-
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- return (rl_backward_byte (count, key));
-
- if (count < 0)
- return (rl_forward_char (-count, key));
-
- if (count > 0)
- {
- point = rl_point;
-
- while (count > 0 && point > 0)
- {
- point = _rl_find_prev_mbchar (rl_line_buffer, point, MB_FIND_NONZERO);
- count--;
- }
- if (count > 0)
- {
- rl_point = 0;
- rl_ding ();
- }
- else
- rl_point = point;
- }
-
- return 0;
-}
-#else
-int
-rl_backward_char (count, key)
- int count, key;
-{
- return (rl_backward_byte (count, key));
-}
-#endif
-
-/* Backwards compatibility. */
-int
-rl_backward (count, key)
- int count, key;
-{
- return (rl_backward_char (count, key));
-}
-
-/* Move to the beginning of the line. */
-int
-rl_beg_of_line (count, key)
- int count, key;
-{
- rl_point = 0;
- return 0;
-}
-
-/* Move to the end of the line. */
-int
-rl_end_of_line (count, key)
- int count, key;
-{
- rl_point = rl_end;
- return 0;
-}
-
-/* XXX - these might need changes for multibyte characters */
-/* Move forward a word. We do what Emacs does. */
-int
-rl_forward_word (count, key)
- int count, key;
-{
- int c;
-
- if (count < 0)
- return (rl_backward_word (-count, key));
-
- while (count)
- {
- if (rl_point == rl_end)
- return 0;
-
- /* If we are not in a word, move forward until we are in one.
- Then, move forward until we hit a non-alphabetic character. */
- c = rl_line_buffer[rl_point];
- if (rl_alphabetic (c) == 0)
- {
- while (++rl_point < rl_end)
- {
- c = rl_line_buffer[rl_point];
- if (rl_alphabetic (c))
- break;
- }
- }
-
- if (rl_point == rl_end)
- return 0;
-
- while (++rl_point < rl_end)
- {
- c = rl_line_buffer[rl_point];
- if (rl_alphabetic (c) == 0)
- break;
- }
- --count;
- }
-
- return 0;
-}
-
-/* Move backward a word. We do what Emacs does. */
-int
-rl_backward_word (count, key)
- int count, key;
-{
- int c;
-
- if (count < 0)
- return (rl_forward_word (-count, key));
-
- while (count)
- {
- if (!rl_point)
- return 0;
-
- /* Like rl_forward_word (), except that we look at the characters
- just before point. */
-
- c = rl_line_buffer[rl_point - 1];
- if (rl_alphabetic (c) == 0)
- {
- while (--rl_point)
- {
- c = rl_line_buffer[rl_point - 1];
- if (rl_alphabetic (c))
- break;
- }
- }
-
- while (rl_point)
- {
- c = rl_line_buffer[rl_point - 1];
- if (rl_alphabetic (c) == 0)
- break;
- else
- --rl_point;
- }
-
- --count;
- }
-
- return 0;
-}
-
-/* Clear the current line. Numeric argument to C-l does this. */
-int
-rl_refresh_line (ignore1, ignore2)
- int ignore1, ignore2;
-{
- int curr_line;
-
- curr_line = _rl_current_display_line ();
-
- _rl_move_vert (curr_line);
- _rl_move_cursor_relative (0, rl_line_buffer); /* XXX is this right */
-
- _rl_clear_to_eol (0); /* arg of 0 means to not use spaces */
-
- rl_forced_update_display ();
- rl_display_fixed = 1;
-
- return 0;
-}
-
-/* C-l typed to a line without quoting clears the screen, and then reprints
- the prompt and the current input line. Given a numeric arg, redraw only
- the current line. */
-int
-rl_clear_screen (count, key)
- int count, key;
-{
- if (rl_explicit_arg)
- {
- rl_refresh_line (count, key);
- return 0;
- }
-
- _rl_clear_screen (); /* calls termcap function to clear screen */
- rl_forced_update_display ();
- rl_display_fixed = 1;
-
- return 0;
-}
-
-int
-rl_arrow_keys (count, c)
- int count, c;
-{
- int ch;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- ch = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- switch (_rl_to_upper (ch))
- {
- case 'A':
- rl_get_previous_history (count, ch);
- break;
-
- case 'B':
- rl_get_next_history (count, ch);
- break;
-
- case 'C':
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_forward_char (count, ch);
- else
- rl_forward_byte (count, ch);
- break;
-
- case 'D':
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_backward_char (count, ch);
- else
- rl_backward_byte (count, ch);
- break;
-
- default:
- rl_ding ();
- }
-
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Text commands */
-/* */
-/* **************************************************************** */
-
-#ifdef HANDLE_MULTIBYTE
-static char pending_bytes[MB_LEN_MAX];
-static int pending_bytes_length = 0;
-static mbstate_t ps = {0};
-#endif
-
-/* Insert the character C at the current location, moving point forward.
- If C introduces a multibyte sequence, we read the whole sequence and
- then insert the multibyte char into the line buffer. */
-int
-_rl_insert_char (count, c)
- int count, c;
-{
- register int i;
- char *string;
-#ifdef HANDLE_MULTIBYTE
- int string_size;
- char incoming[MB_LEN_MAX + 1];
- int incoming_length = 0;
- mbstate_t ps_back;
- static int stored_count = 0;
-#endif
-
- if (count <= 0)
- return 0;
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- {
- incoming[0] = c;
- incoming[1] = '\0';
- incoming_length = 1;
- }
- else
- {
- wchar_t wc;
- size_t ret;
-
- if (stored_count <= 0)
- stored_count = count;
- else
- count = stored_count;
-
- ps_back = ps;
- pending_bytes[pending_bytes_length++] = c;
- ret = mbrtowc (&wc, pending_bytes, pending_bytes_length, &ps);
-
- if (ret == (size_t)-2)
- {
- /* Bytes too short to compose character, try to wait for next byte.
- Restore the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- ps = ps_back;
- return 1;
- }
- else if (ret == (size_t)-1)
- {
- /* Invalid byte sequence for the current locale. Treat first byte
- as a single character. */
- incoming[0] = pending_bytes[0];
- incoming[1] = '\0';
- incoming_length = 1;
- pending_bytes_length--;
- memmove (pending_bytes, pending_bytes + 1, pending_bytes_length);
- /* Clear the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else if (ret == (size_t)0)
- {
- incoming[0] = '\0';
- incoming_length = 0;
- pending_bytes_length--;
- /* Clear the state of the byte sequence, because in this case the
- effect of mbstate is undefined. */
- memset (&ps, 0, sizeof (mbstate_t));
- }
- else
- {
- /* We successfully read a single multibyte character. */
- memcpy (incoming, pending_bytes, pending_bytes_length);
- incoming[pending_bytes_length] = '\0';
- incoming_length = pending_bytes_length;
- pending_bytes_length = 0;
- }
- }
-#endif /* HANDLE_MULTIBYTE */
-
- /* If we can optimize, then do it. But don't let people crash
- readline because of extra large arguments. */
- if (count > 1 && count <= 1024)
- {
-#if defined (HANDLE_MULTIBYTE)
- string_size = count * incoming_length;
- string = (char *)xmalloc (1 + string_size);
-
- i = 0;
- while (i < string_size)
- {
- strncpy (string + i, incoming, incoming_length);
- i += incoming_length;
- }
- incoming_length = 0;
- stored_count = 0;
-#else /* !HANDLE_MULTIBYTE */
- string = (char *)xmalloc (1 + count);
-
- for (i = 0; i < count; i++)
- string[i] = c;
-#endif /* !HANDLE_MULTIBYTE */
-
- string[i] = '\0';
- rl_insert_text (string);
- free (string);
-
- return 0;
- }
-
- if (count > 1024)
- {
- int decreaser;
-#if defined (HANDLE_MULTIBYTE)
- string_size = incoming_length * 1024;
- string = (char *)xmalloc (1 + string_size);
-
- i = 0;
- while (i < string_size)
- {
- strncpy (string + i, incoming, incoming_length);
- i += incoming_length;
- }
-
- while (count)
- {
- decreaser = (count > 1024) ? 1024 : count;
- string[decreaser*incoming_length] = '\0';
- rl_insert_text (string);
- count -= decreaser;
- }
-
- free (string);
- incoming_length = 0;
- stored_count = 0;
-#else /* !HANDLE_MULTIBYTE */
- char str[1024+1];
-
- for (i = 0; i < 1024; i++)
- str[i] = c;
-
- while (count)
- {
- decreaser = (count > 1024 ? 1024 : count);
- str[decreaser] = '\0';
- rl_insert_text (str);
- count -= decreaser;
- }
-#endif /* !HANDLE_MULTIBYTE */
-
- return 0;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- {
-#endif
- /* We are inserting a single character.
- If there is pending input, then make a string of all of the
- pending characters that are bound to rl_insert, and insert
- them all. */
- if (_rl_any_typein ())
- _rl_insert_typein (c);
- else
- {
- /* Inserting a single character. */
- char str[2];
-
- str[1] = '\0';
- str[0] = c;
- rl_insert_text (str);
- }
-#if defined (HANDLE_MULTIBYTE)
- }
- else
- {
- rl_insert_text (incoming);
- stored_count = 0;
- }
-#endif
-
- return 0;
-}
-
-/* Overwrite the character at point (or next COUNT characters) with C.
- If C introduces a multibyte character sequence, read the entire sequence
- before starting the overwrite loop. */
-int
-_rl_overwrite_char (count, c)
- int count, c;
-{
- int i;
-#if defined (HANDLE_MULTIBYTE)
- char mbkey[MB_LEN_MAX];
- int k;
-
- /* Read an entire multibyte character sequence to insert COUNT times. */
- if (count > 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- k = _rl_read_mbstring (c, mbkey, MB_LEN_MAX);
-#endif
-
- for (i = 0; i < count; i++)
- {
- rl_begin_undo_group ();
-
- if (rl_point < rl_end)
- rl_delete (1, c);
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_insert_text (mbkey);
- else
-#endif
- _rl_insert_char (1, c);
-
- rl_end_undo_group ();
- }
-
- return 0;
-}
-
-int
-rl_insert (count, c)
- int count, c;
-{
- return (rl_insert_mode == RL_IM_INSERT ? _rl_insert_char (count, c)
- : _rl_overwrite_char (count, c));
-}
-
-/* Insert the next typed character verbatim. */
-int
-rl_quoted_insert (count, key)
- int count, key;
-{
- int c;
-
-#if defined (HANDLE_SIGNALS)
- _rl_disable_tty_signals ();
-#endif
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
-#if defined (HANDLE_SIGNALS)
- _rl_restore_tty_signals ();
-#endif
-
- return (_rl_insert_char (count, c));
-}
-
-/* Insert a tab character. */
-int
-rl_tab_insert (count, key)
- int count, key;
-{
- return (_rl_insert_char (count, '\t'));
-}
-
-/* What to do when a NEWLINE is pressed. We accept the whole line.
- KEY is the key that invoked this command. I guess it could have
- meaning in the future. */
-int
-rl_newline (count, key)
- int count, key;
-{
- rl_done = 1;
-
- if (_rl_history_preserve_point)
- _rl_history_saved_point = (rl_point == rl_end) ? -1 : rl_point;
-
- RL_SETSTATE(RL_STATE_DONE);
-
-#if defined (VI_MODE)
- if (rl_editing_mode == vi_mode)
- {
- _rl_vi_done_inserting ();
- _rl_vi_reset_last ();
- }
-#endif /* VI_MODE */
-
- /* If we've been asked to erase empty lines, suppress the final update,
- since _rl_update_final calls rl_crlf(). */
- if (rl_erase_empty_line && rl_point == 0 && rl_end == 0)
- return 0;
-
- if (readline_echoing_p)
- _rl_update_final ();
- return 0;
-}
-
-/* What to do for some uppercase characters, like meta characters,
- and some characters appearing in emacs_ctlx_keymap. This function
- is just a stub, you bind keys to it and the code in _rl_dispatch ()
- is special cased. */
-int
-rl_do_lowercase_version (ignore1, ignore2)
- int ignore1, ignore2;
-{
- return 0;
-}
-
-/* This is different from what vi does, so the code's not shared. Emacs
- rubout in overwrite mode has one oddity: it replaces a control
- character that's displayed as two characters (^X) with two spaces. */
-int
-_rl_overwrite_rubout (count, key)
- int count, key;
-{
- int opoint;
- int i, l;
-
- if (rl_point == 0)
- {
- rl_ding ();
- return 1;
- }
-
- opoint = rl_point;
-
- /* L == number of spaces to insert */
- for (i = l = 0; i < count; i++)
- {
- rl_backward_char (1, key);
- l += rl_character_len (rl_line_buffer[rl_point], rl_point); /* not exactly right */
- }
-
- rl_begin_undo_group ();
-
- if (count > 1 || rl_explicit_arg)
- rl_kill_text (opoint, rl_point);
- else
- rl_delete_text (opoint, rl_point);
-
- /* Emacs puts point at the beginning of the sequence of spaces. */
- opoint = rl_point;
- _rl_insert_char (l, ' ');
- rl_point = opoint;
-
- rl_end_undo_group ();
-
- return 0;
-}
-
-/* Rubout the character behind point. */
-int
-rl_rubout (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_delete (-count, key));
-
- if (!rl_point)
- {
- rl_ding ();
- return -1;
- }
-
- if (rl_insert_mode == RL_IM_OVERWRITE)
- return (_rl_overwrite_rubout (count, key));
-
- return (_rl_rubout_char (count, key));
-}
-
-int
-_rl_rubout_char (count, key)
- int count, key;
-{
- int orig_point;
- unsigned char c;
-
- /* Duplicated code because this is called from other parts of the library. */
- if (count < 0)
- return (rl_delete (-count, key));
-
- if (rl_point == 0)
- {
- rl_ding ();
- return -1;
- }
-
- if (count > 1 || rl_explicit_arg)
- {
- orig_point = rl_point;
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_backward_char (count, key);
- else
-#endif
- rl_backward_byte (count, key);
- rl_kill_text (orig_point, rl_point);
- }
- else
- {
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- {
-#endif
- c = rl_line_buffer[--rl_point];
- rl_delete_text (rl_point, rl_point + 1);
-#if defined (HANDLE_MULTIBYTE)
- }
- else
- {
- int orig_point;
-
- orig_point = rl_point;
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- c = rl_line_buffer[rl_point];
- rl_delete_text (rl_point, orig_point);
- }
-#endif /* HANDLE_MULTIBYTE */
-
- /* I don't think that the hack for end of line is needed for
- multibyte chars. */
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
-#endif
- if (rl_point == rl_end && ISPRINT (c) && _rl_last_c_pos)
- {
- int l;
- l = rl_character_len (c, rl_point);
- _rl_erase_at_end_of_line (l);
- }
- }
-
- return 0;
-}
-
-/* Delete the character under the cursor. Given a numeric argument,
- kill that many characters instead. */
-int
-rl_delete (count, key)
- int count, key;
-{
- int r;
-
- if (count < 0)
- return (_rl_rubout_char (-count, key));
-
- if (rl_point == rl_end)
- {
- rl_ding ();
- return -1;
- }
-
- if (count > 1 || rl_explicit_arg)
- {
- int orig_point = rl_point;
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_forward_char (count, key);
- else
-#endif
- rl_forward_byte (count, key);
-
- r = rl_kill_text (orig_point, rl_point);
- rl_point = orig_point;
- return r;
- }
- else
- {
- int new_point;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- new_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
- else
- new_point = rl_point + 1;
-
- return (rl_delete_text (rl_point, new_point));
- }
-}
-
-/* Delete the character under the cursor, unless the insertion
- point is at the end of the line, in which case the character
- behind the cursor is deleted. COUNT is obeyed and may be used
- to delete forward or backward that many characters. */
-int
-rl_rubout_or_delete (count, key)
- int count, key;
-{
- if (rl_end != 0 && rl_point == rl_end)
- return (_rl_rubout_char (count, key));
- else
- return (rl_delete (count, key));
-}
-
-/* Delete all spaces and tabs around point. */
-int
-rl_delete_horizontal_space (count, ignore)
- int count, ignore;
-{
- int start = rl_point;
-
- while (rl_point && whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
-
- start = rl_point;
-
- while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- if (start != rl_point)
- {
- rl_delete_text (start, rl_point);
- rl_point = start;
- }
- return 0;
-}
-
-/* Like the tcsh editing function delete-char-or-list. The eof character
- is caught before this is invoked, so this really does the same thing as
- delete-char-or-list-or-eof, as long as it's bound to the eof character. */
-int
-rl_delete_or_show_completions (count, key)
- int count, key;
-{
- if (rl_end != 0 && rl_point == rl_end)
- return (rl_possible_completions (count, key));
- else
- return (rl_delete (count, key));
-}
-
-#ifndef RL_COMMENT_BEGIN_DEFAULT
-#define RL_COMMENT_BEGIN_DEFAULT "#"
-#endif
-
-/* Turn the current line into a comment in shell history.
- A K*rn shell style function. */
-int
-rl_insert_comment (count, key)
- int count, key;
-{
- char *rl_comment_text;
- int rl_comment_len;
-
- rl_beg_of_line (1, key);
- rl_comment_text = _rl_comment_begin ? _rl_comment_begin : RL_COMMENT_BEGIN_DEFAULT;
-
- if (rl_explicit_arg == 0)
- rl_insert_text (rl_comment_text);
- else
- {
- rl_comment_len = strlen (rl_comment_text);
- if (STREQN (rl_comment_text, rl_line_buffer, rl_comment_len))
- rl_delete_text (rl_point, rl_point + rl_comment_len);
- else
- rl_insert_text (rl_comment_text);
- }
-
- (*rl_redisplay_function) ();
- rl_newline (1, '\n');
-
- return (0);
-}
-
-/* **************************************************************** */
-/* */
-/* Changing Case */
-/* */
-/* **************************************************************** */
-
-/* The three kinds of things that we know how to do. */
-#define UpCase 1
-#define DownCase 2
-#define CapCase 3
-
-/* Uppercase the word at point. */
-int
-rl_upcase_word (count, key)
- int count, key;
-{
- return (rl_change_case (count, UpCase));
-}
-
-/* Lowercase the word at point. */
-int
-rl_downcase_word (count, key)
- int count, key;
-{
- return (rl_change_case (count, DownCase));
-}
-
-/* Upcase the first letter, downcase the rest. */
-int
-rl_capitalize_word (count, key)
- int count, key;
-{
- return (rl_change_case (count, CapCase));
-}
-
-/* The meaty function.
- Change the case of COUNT words, performing OP on them.
- OP is one of UpCase, DownCase, or CapCase.
- If a negative argument is given, leave point where it started,
- otherwise, leave it where it moves to. */
-static int
-rl_change_case (count, op)
- int count, op;
-{
- register int start, end;
- int inword, c;
-
- start = rl_point;
- rl_forward_word (count, 0);
- end = rl_point;
-
- if (count < 0)
- SWAP (start, end);
-
- /* We are going to modify some text, so let's prepare to undo it. */
- rl_modifying (start, end);
-
- for (inword = 0; start < end; start++)
- {
- c = rl_line_buffer[start];
- switch (op)
- {
- case UpCase:
- rl_line_buffer[start] = _rl_to_upper (c);
- break;
-
- case DownCase:
- rl_line_buffer[start] = _rl_to_lower (c);
- break;
-
- case CapCase:
- rl_line_buffer[start] = (inword == 0) ? _rl_to_upper (c) : _rl_to_lower (c);
- inword = rl_alphabetic (rl_line_buffer[start]);
- break;
-
- default:
- rl_ding ();
- return -1;
- }
- }
- rl_point = end;
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Transposition */
-/* */
-/* **************************************************************** */
-
-/* Transpose the words at point. If point is at the end of the line,
- transpose the two words before point. */
-int
-rl_transpose_words (count, key)
- int count, key;
-{
- char *word1, *word2;
- int w1_beg, w1_end, w2_beg, w2_end;
- int orig_point = rl_point;
-
- if (!count)
- return 0;
-
- /* Find the two words. */
- rl_forward_word (count, key);
- w2_end = rl_point;
- rl_backward_word (1, key);
- w2_beg = rl_point;
- rl_backward_word (count, key);
- w1_beg = rl_point;
- rl_forward_word (1, key);
- w1_end = rl_point;
-
- /* Do some check to make sure that there really are two words. */
- if ((w1_beg == w2_beg) || (w2_beg < w1_end))
- {
- rl_ding ();
- rl_point = orig_point;
- return -1;
- }
-
- /* Get the text of the words. */
- word1 = rl_copy_text (w1_beg, w1_end);
- word2 = rl_copy_text (w2_beg, w2_end);
-
- /* We are about to do many insertions and deletions. Remember them
- as one operation. */
- rl_begin_undo_group ();
-
- /* Do the stuff at word2 first, so that we don't have to worry
- about word1 moving. */
- rl_point = w2_beg;
- rl_delete_text (w2_beg, w2_end);
- rl_insert_text (word1);
-
- rl_point = w1_beg;
- rl_delete_text (w1_beg, w1_end);
- rl_insert_text (word2);
-
- /* This is exactly correct since the text before this point has not
- changed in length. */
- rl_point = w2_end;
-
- /* I think that does it. */
- rl_end_undo_group ();
- free (word1);
- free (word2);
-
- return 0;
-}
-
-/* Transpose the characters at point. If point is at the end of the line,
- then transpose the characters before point. */
-int
-rl_transpose_chars (count, key)
- int count, key;
-{
-#if defined (HANDLE_MULTIBYTE)
- char *dummy;
- int i, prev_point;
-#else
- char dummy[2];
-#endif
- int char_length;
-
- if (count == 0)
- return 0;
-
- if (!rl_point || rl_end < 2)
- {
- rl_ding ();
- return -1;
- }
-
- rl_begin_undo_group ();
-
- if (rl_point == rl_end)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- else
- --rl_point;
- count = 1;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- prev_point = rl_point;
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- else
-#endif
- rl_point--;
-
-#if defined (HANDLE_MULTIBYTE)
- char_length = prev_point - rl_point;
- dummy = (char *)xmalloc (char_length + 1);
- for (i = 0; i < char_length; i++)
- dummy[i] = rl_line_buffer[rl_point + i];
- dummy[i] = '\0';
-#else
- dummy[0] = rl_line_buffer[rl_point];
- dummy[char_length = 1] = '\0';
-#endif
-
- rl_delete_text (rl_point, rl_point + char_length);
-
- rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO);
-
- _rl_fix_point (0);
- rl_insert_text (dummy);
- rl_end_undo_group ();
-
-#if defined (HANDLE_MULTIBYTE)
- free (dummy);
-#endif
-
- return 0;
-}
-
-/* **************************************************************** */
-/* */
-/* Character Searching */
-/* */
-/* **************************************************************** */
-
-int
-#if defined (HANDLE_MULTIBYTE)
-_rl_char_search_internal (count, dir, smbchar, len)
- int count, dir;
- char *smbchar;
- int len;
-#else
-_rl_char_search_internal (count, dir, schar)
- int count, dir, schar;
-#endif
-{
- int pos, inc;
-#if defined (HANDLE_MULTIBYTE)
- int prepos;
-#endif
-
- pos = rl_point;
- inc = (dir < 0) ? -1 : 1;
- while (count)
- {
- if ((dir < 0 && pos <= 0) || (dir > 0 && pos >= rl_end))
- {
- rl_ding ();
- return -1;
- }
-
-#if defined (HANDLE_MULTIBYTE)
- pos = (inc > 0) ? _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY)
- : _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY);
-#else
- pos += inc;
-#endif
- do
- {
-#if defined (HANDLE_MULTIBYTE)
- if (_rl_is_mbchar_matched (rl_line_buffer, pos, rl_end, smbchar, len))
-#else
- if (rl_line_buffer[pos] == schar)
-#endif
- {
- count--;
- if (dir < 0)
- rl_point = (dir == BTO) ? _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY)
- : pos;
- else
- rl_point = (dir == FTO) ? _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY)
- : pos;
- break;
- }
-#if defined (HANDLE_MULTIBYTE)
- prepos = pos;
-#endif
- }
-#if defined (HANDLE_MULTIBYTE)
- while ((dir < 0) ? (pos = _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY)) != prepos
- : (pos = _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY)) != prepos);
-#else
- while ((dir < 0) ? pos-- : ++pos < rl_end);
-#endif
- }
- return (0);
-}
-
-/* Search COUNT times for a character read from the current input stream.
- FDIR is the direction to search if COUNT is non-negative; otherwise
- the search goes in BDIR. So much is dependent on HANDLE_MULTIBYTE
- that there are two separate versions of this function. */
-#if defined (HANDLE_MULTIBYTE)
-static int
-_rl_char_search (count, fdir, bdir)
- int count, fdir, bdir;
-{
- char mbchar[MB_LEN_MAX];
- int mb_len;
-
- mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
-
- if (count < 0)
- return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
- else
- return (_rl_char_search_internal (count, fdir, mbchar, mb_len));
-}
-#else /* !HANDLE_MULTIBYTE */
-static int
-_rl_char_search (count, fdir, bdir)
- int count, fdir, bdir;
-{
- int c;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (count < 0)
- return (_rl_char_search_internal (-count, bdir, c));
- else
- return (_rl_char_search_internal (count, fdir, c));
-}
-#endif /* !HANDLE_MULTIBYTE */
-
-int
-rl_char_search (count, key)
- int count, key;
-{
- return (_rl_char_search (count, FFIND, BFIND));
-}
-
-int
-rl_backward_char_search (count, key)
- int count, key;
-{
- return (_rl_char_search (count, BFIND, FFIND));
-}
-
-/* **************************************************************** */
-/* */
-/* The Mark and the Region. */
-/* */
-/* **************************************************************** */
-
-/* Set the mark at POSITION. */
-int
-_rl_set_mark_at_pos (position)
- int position;
-{
- if (position > rl_end)
- return -1;
-
- rl_mark = position;
- return 0;
-}
-
-/* A bindable command to set the mark. */
-int
-rl_set_mark (count, key)
- int count, key;
-{
- return (_rl_set_mark_at_pos (rl_explicit_arg ? count : rl_point));
-}
-
-/* Exchange the position of mark and point. */
-int
-rl_exchange_point_and_mark (count, key)
- int count, key;
-{
- if (rl_mark > rl_end)
- rl_mark = -1;
-
- if (rl_mark == -1)
- {
- rl_ding ();
- return -1;
- }
- else
- SWAP (rl_point, rl_mark);
-
- return 0;
-}
diff --git a/readline-4.3/tilde.c b/readline-4.3/tilde.c
deleted file mode 100644
index 154f7f8..0000000
--- a/readline-4.3/tilde.c
+++ /dev/null
@@ -1,458 +0,0 @@
-/* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */
-
-/* Copyright (C) 1988,1989 Free Software Foundation, Inc.
-
- This file is part of GNU Readline, a library for reading lines
- of text with interactive input and history editing.
-
- Readline is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- Readline is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Readline; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#if defined (HAVE_UNISTD_H)
-# ifdef _MINIX
-# include <sys/types.h>
-# endif
-# include <unistd.h>
-#endif
-
-#if defined (HAVE_STRING_H)
-# include <string.h>
-#else /* !HAVE_STRING_H */
-# include <strings.h>
-#endif /* !HAVE_STRING_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <sys/types.h>
-#include <pwd.h>
-
-#include "tilde.h"
-
-#if defined (TEST) || defined (STATIC_MALLOC)
-static void *xmalloc (), *xrealloc ();
-#else
-# include "xmalloc.h"
-#endif /* TEST || STATIC_MALLOC */
-
-#if !defined (HAVE_GETPW_DECLS)
-extern struct passwd *getpwuid PARAMS((uid_t));
-extern struct passwd *getpwnam PARAMS((const char *));
-#endif /* !HAVE_GETPW_DECLS */
-
-#if !defined (savestring)
-#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
-#endif /* !savestring */
-
-#if !defined (NULL)
-# if defined (__STDC__)
-# define NULL ((void *) 0)
-# else
-# define NULL 0x0
-# endif /* !__STDC__ */
-#endif /* !NULL */
-
-/* If being compiled as part of bash, these will be satisfied from
- variables.o. If being compiled as part of readline, they will
- be satisfied from shell.o. */
-extern char *sh_get_home_dir PARAMS((void));
-extern char *sh_get_env_value PARAMS((const char *));
-
-/* The default value of tilde_additional_prefixes. This is set to
- whitespace preceding a tilde so that simple programs which do not
- perform any word separation get desired behaviour. */
-static const char *default_prefixes[] =
- { " ~", "\t~", (const char *)NULL };
-
-/* The default value of tilde_additional_suffixes. This is set to
- whitespace or newline so that simple programs which do not
- perform any word separation get desired behaviour. */
-static const char *default_suffixes[] =
- { " ", "\n", (const char *)NULL };
-
-/* If non-null, this contains the address of a function that the application
- wants called before trying the standard tilde expansions. The function
- is called with the text sans tilde, and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if the expansion fails. */
-tilde_hook_func_t *tilde_expansion_preexpansion_hook = (tilde_hook_func_t *)NULL;
-
-/* If non-null, this contains the address of a function to call if the
- standard meaning for expanding a tilde fails. The function is called
- with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if there is no expansion. */
-tilde_hook_func_t *tilde_expansion_failure_hook = (tilde_hook_func_t *)NULL;
-
-/* When non-null, this is a NULL terminated array of strings which
- are duplicates for a tilde prefix. Bash uses this to expand
- `=~' and `:~'. */
-char **tilde_additional_prefixes = (char **)default_prefixes;
-
-/* When non-null, this is a NULL terminated array of strings which match
- the end of a username, instead of just "/". Bash sets this to
- `:' and `=~'. */
-char **tilde_additional_suffixes = (char **)default_suffixes;
-
-static int tilde_find_prefix PARAMS((const char *, int *));
-static int tilde_find_suffix PARAMS((const char *));
-static char *isolate_tilde_prefix PARAMS((const char *, int *));
-static char *glue_prefix_and_suffix PARAMS((char *, const char *, int));
-
-/* Find the start of a tilde expansion in STRING, and return the index of
- the tilde which starts the expansion. Place the length of the text
- which identified this tilde starter in LEN, excluding the tilde itself. */
-static int
-tilde_find_prefix (string, len)
- const char *string;
- int *len;
-{
- register int i, j, string_len;
- register char **prefixes;
-
- prefixes = tilde_additional_prefixes;
-
- string_len = strlen (string);
- *len = 0;
-
- if (*string == '\0' || *string == '~')
- return (0);
-
- if (prefixes)
- {
- for (i = 0; i < string_len; i++)
- {
- for (j = 0; prefixes[j]; j++)
- {
- if (strncmp (string + i, prefixes[j], strlen (prefixes[j])) == 0)
- {
- *len = strlen (prefixes[j]) - 1;
- return (i + *len);
- }
- }
- }
- }
- return (string_len);
-}
-
-/* Find the end of a tilde expansion in STRING, and return the index of
- the character which ends the tilde definition. */
-static int
-tilde_find_suffix (string)
- const char *string;
-{
- register int i, j, string_len;
- register char **suffixes;
-
- suffixes = tilde_additional_suffixes;
- string_len = strlen (string);
-
- for (i = 0; i < string_len; i++)
- {
-#if defined (__MSDOS__)
- if (string[i] == '/' || string[i] == '\\' /* || !string[i] */)
-#else
- if (string[i] == '/' /* || !string[i] */)
-#endif
- break;
-
- for (j = 0; suffixes && suffixes[j]; j++)
- {
- if (strncmp (string + i, suffixes[j], strlen (suffixes[j])) == 0)
- return (i);
- }
- }
- return (i);
-}
-
-/* Return a new string which is the result of tilde expanding STRING. */
-char *
-tilde_expand (string)
- const char *string;
-{
- char *result;
- int result_size, result_index;
-
- result_index = result_size = 0;
- if (result = strchr (string, '~'))
- result = (char *)xmalloc (result_size = (strlen (string) + 16));
- else
- result = (char *)xmalloc (result_size = (strlen (string) + 1));
-
- /* Scan through STRING expanding tildes as we come to them. */
- while (1)
- {
- register int start, end;
- char *tilde_word, *expansion;
- int len;
-
- /* Make START point to the tilde which starts the expansion. */
- start = tilde_find_prefix (string, &len);
-
- /* Copy the skipped text into the result. */
- if ((result_index + start + 1) > result_size)
- result = (char *)xrealloc (result, 1 + (result_size += (start + 20)));
-
- strncpy (result + result_index, string, start);
- result_index += start;
-
- /* Advance STRING to the starting tilde. */
- string += start;
-
- /* Make END be the index of one after the last character of the
- username. */
- end = tilde_find_suffix (string);
-
- /* If both START and END are zero, we are all done. */
- if (!start && !end)
- break;
-
- /* Expand the entire tilde word, and copy it into RESULT. */
- tilde_word = (char *)xmalloc (1 + end);
- strncpy (tilde_word, string, end);
- tilde_word[end] = '\0';
- string += end;
-
- expansion = tilde_expand_word (tilde_word);
- free (tilde_word);
-
- len = strlen (expansion);
-#ifdef __CYGWIN__
- /* Fix for Cygwin to prevent ~user/xxx from expanding to //xxx when
- $HOME for `user' is /. On cygwin, // denotes a network drive. */
- if (len > 1 || *expansion != '/' || *string != '/')
-#endif
- {
- if ((result_index + len + 1) > result_size)
- result = (char *)xrealloc (result, 1 + (result_size += (len + 20)));
-
- strcpy (result + result_index, expansion);
- result_index += len;
- }
- free (expansion);
- }
-
- result[result_index] = '\0';
-
- return (result);
-}
-
-/* Take FNAME and return the tilde prefix we want expanded. If LENP is
- non-null, the index of the end of the prefix into FNAME is returned in
- the location it points to. */
-static char *
-isolate_tilde_prefix (fname, lenp)
- const char *fname;
- int *lenp;
-{
- char *ret;
- int i;
-
- ret = (char *)xmalloc (strlen (fname));
-#if defined (__MSDOS__)
- for (i = 1; fname[i] && fname[i] != '/' && fname[i] != '\\'; i++)
-#else
- for (i = 1; fname[i] && fname[i] != '/'; i++)
-#endif
- ret[i - 1] = fname[i];
- ret[i - 1] = '\0';
- if (lenp)
- *lenp = i;
- return ret;
-}
-
-/* Return a string that is PREFIX concatenated with SUFFIX starting at
- SUFFIND. */
-static char *
-glue_prefix_and_suffix (prefix, suffix, suffind)
- char *prefix;
- const char *suffix;
- int suffind;
-{
- char *ret;
- int plen, slen;
-
- plen = (prefix && *prefix) ? strlen (prefix) : 0;
- slen = strlen (suffix + suffind);
- ret = (char *)xmalloc (plen + slen + 1);
- if (plen)
- strcpy (ret, prefix);
- strcpy (ret + plen, suffix + suffind);
- return ret;
-}
-
-/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
- tilde. If there is no expansion, call tilde_expansion_failure_hook.
- This always returns a newly-allocated string, never static storage. */
-char *
-tilde_expand_word (filename)
- const char *filename;
-{
- char *dirname, *expansion, *username;
- int user_len;
- struct passwd *user_entry;
-
- if (filename == 0)
- return ((char *)NULL);
-
- if (*filename != '~')
- return (savestring (filename));
-
- /* A leading `~/' or a bare `~' is *always* translated to the value of
- $HOME or the home directory of the current user, regardless of any
- preexpansion hook. */
- if (filename[1] == '\0' || filename[1] == '/')
- {
- /* Prefix $HOME to the rest of the string. */
- expansion = sh_get_env_value ("HOME");
-
- /* If there is no HOME variable, look up the directory in
- the password database. */
- if (expansion == 0)
- expansion = sh_get_home_dir ();
-
- return (glue_prefix_and_suffix (expansion, filename, 1));
- }
-
- username = isolate_tilde_prefix (filename, &user_len);
-
- if (tilde_expansion_preexpansion_hook)
- {
- expansion = (*tilde_expansion_preexpansion_hook) (username);
- if (expansion)
- {
- dirname = glue_prefix_and_suffix (expansion, filename, user_len);
- free (username);
- free (expansion);
- return (dirname);
- }
- }
-
- /* No preexpansion hook, or the preexpansion hook failed. Look in the
- password database. */
- dirname = (char *)NULL;
- user_entry = getpwnam (username);
- if (user_entry == 0)
- {
- /* If the calling program has a special syntax for expanding tildes,
- and we couldn't find a standard expansion, then let them try. */
- if (tilde_expansion_failure_hook)
- {
- expansion = (*tilde_expansion_failure_hook) (username);
- if (expansion)
- {
- dirname = glue_prefix_and_suffix (expansion, filename, user_len);
- free (expansion);
- }
- }
- free (username);
- /* If we don't have a failure hook, or if the failure hook did not
- expand the tilde, return a copy of what we were passed. */
- if (dirname == 0)
- dirname = savestring (filename);
- }
- else
- {
- free (username);
- dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len);
- }
-
- endpwent ();
- return (dirname);
-}
-
-
-#if defined (TEST)
-#undef NULL
-#include <stdio.h>
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *result, line[512];
- int done = 0;
-
- while (!done)
- {
- printf ("~expand: ");
- fflush (stdout);
-
- if (!gets (line))
- strcpy (line, "done");
-
- if ((strcmp (line, "done") == 0) ||
- (strcmp (line, "quit") == 0) ||
- (strcmp (line, "exit") == 0))
- {
- done = 1;
- break;
- }
-
- result = tilde_expand (line);
- printf (" --> %s\n", result);
- free (result);
- }
- exit (0);
-}
-
-static void memory_error_and_abort ();
-
-static void *
-xmalloc (bytes)
- size_t bytes;
-{
- void *temp = (char *)malloc (bytes);
-
- if (!temp)
- memory_error_and_abort ();
- return (temp);
-}
-
-static void *
-xrealloc (pointer, bytes)
- void *pointer;
- int bytes;
-{
- void *temp;
-
- if (!pointer)
- temp = malloc (bytes);
- else
- temp = realloc (pointer, bytes);
-
- if (!temp)
- memory_error_and_abort ();
-
- return (temp);
-}
-
-static void
-memory_error_and_abort ()
-{
- fprintf (stderr, "readline: out of virtual memory\n");
- abort ();
-}
-
-/*
- * Local variables:
- * compile-command: "gcc -g -DTEST -o tilde tilde.c"
- * end:
- */
-#endif /* TEST */
diff --git a/readline-4.3/tilde.h b/readline-4.3/tilde.h
deleted file mode 100644
index f8182c9..0000000
--- a/readline-4.3/tilde.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* tilde.h: Externally available variables and function in libtilde.a. */
-
-/* Copyright (C) 1992 Free Software Foundation, Inc.
-
- This file contains the Readline Library (the Library), a set of
- routines for providing Emacs style line input to programs that ask
- for it.
-
- The Library is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- The Library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_TILDE_H_)
-# define _TILDE_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* A function can be defined using prototypes and compile on both ANSI C
- and traditional C compilers with something like this:
- extern char *func PARAMS((char *, char *, int)); */
-
-#if !defined (PARAMS)
-# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus)
-# define PARAMS(protos) protos
-# else
-# define PARAMS(protos) ()
-# endif
-#endif
-
-typedef char *tilde_hook_func_t PARAMS((char *));
-
-/* If non-null, this contains the address of a function that the application
- wants called before trying the standard tilde expansions. The function
- is called with the text sans tilde, and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if the expansion fails. */
-extern tilde_hook_func_t *tilde_expansion_preexpansion_hook;
-
-/* If non-null, this contains the address of a function to call if the
- standard meaning for expanding a tilde fails. The function is called
- with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
- which is the expansion, or a NULL pointer if there is no expansion. */
-extern tilde_hook_func_t *tilde_expansion_failure_hook;
-
-/* When non-null, this is a NULL terminated array of strings which
- are duplicates for a tilde prefix. Bash uses this to expand
- `=~' and `:~'. */
-extern char **tilde_additional_prefixes;
-
-/* When non-null, this is a NULL terminated array of strings which match
- the end of a username, instead of just "/". Bash sets this to
- `:' and `=~'. */
-extern char **tilde_additional_suffixes;
-
-/* Return a new string which is the result of tilde expanding STRING. */
-extern char *tilde_expand PARAMS((const char *));
-
-/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
- tilde. If there is no expansion, call tilde_expansion_failure_hook. */
-extern char *tilde_expand_word PARAMS((const char *));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _TILDE_H_ */
diff --git a/readline-4.3/undo.c b/readline-4.3/undo.c
deleted file mode 100644
index 25c287b..0000000
--- a/readline-4.3/undo.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* readline.c -- a general facility for reading lines of input
- with emacs style editing and completion. */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-/* Some standard library routines. */
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* Non-zero tells rl_delete_text and rl_insert_text to not add to
- the undo list. */
-int _rl_doing_an_undo = 0;
-
-/* How many unclosed undo groups we currently have. */
-int _rl_undo_group_level = 0;
-
-/* The current undo list for THE_LINE. */
-UNDO_LIST *rl_undo_list = (UNDO_LIST *)NULL;
-
-/* **************************************************************** */
-/* */
-/* Undo, and Undoing */
-/* */
-/* **************************************************************** */
-
-/* Remember how to undo something. Concatenate some undos if that
- seems right. */
-void
-rl_add_undo (what, start, end, text)
- enum undo_code what;
- int start, end;
- char *text;
-{
- UNDO_LIST *temp = (UNDO_LIST *)xmalloc (sizeof (UNDO_LIST));
- temp->what = what;
- temp->start = start;
- temp->end = end;
- temp->text = text;
- temp->next = rl_undo_list;
- rl_undo_list = temp;
-}
-
-/* Free the existing undo list. */
-void
-rl_free_undo_list ()
-{
- while (rl_undo_list)
- {
- UNDO_LIST *release = rl_undo_list;
- rl_undo_list = rl_undo_list->next;
-
- if (release->what == UNDO_DELETE)
- free (release->text);
-
- free (release);
- }
- rl_undo_list = (UNDO_LIST *)NULL;
-}
-
-/* Undo the next thing in the list. Return 0 if there
- is nothing to undo, or non-zero if there was. */
-int
-rl_do_undo ()
-{
- UNDO_LIST *release;
- int waiting_for_begin, start, end;
-
-#define TRANS(i) ((i) == -1 ? rl_point : ((i) == -2 ? rl_end : (i)))
-
- start = end = waiting_for_begin = 0;
- do
- {
- if (!rl_undo_list)
- return (0);
-
- _rl_doing_an_undo = 1;
- RL_SETSTATE(RL_STATE_UNDOING);
-
- /* To better support vi-mode, a start or end value of -1 means
- rl_point, and a value of -2 means rl_end. */
- if (rl_undo_list->what == UNDO_DELETE || rl_undo_list->what == UNDO_INSERT)
- {
- start = TRANS (rl_undo_list->start);
- end = TRANS (rl_undo_list->end);
- }
-
- switch (rl_undo_list->what)
- {
- /* Undoing deletes means inserting some text. */
- case UNDO_DELETE:
- rl_point = start;
- rl_insert_text (rl_undo_list->text);
- free (rl_undo_list->text);
- break;
-
- /* Undoing inserts means deleting some text. */
- case UNDO_INSERT:
- rl_delete_text (start, end);
- rl_point = start;
- break;
-
- /* Undoing an END means undoing everything 'til we get to a BEGIN. */
- case UNDO_END:
- waiting_for_begin++;
- break;
-
- /* Undoing a BEGIN means that we are done with this group. */
- case UNDO_BEGIN:
- if (waiting_for_begin)
- waiting_for_begin--;
- else
- rl_ding ();
- break;
- }
-
- _rl_doing_an_undo = 0;
- RL_UNSETSTATE(RL_STATE_UNDOING);
-
- release = rl_undo_list;
- rl_undo_list = rl_undo_list->next;
- free (release);
- }
- while (waiting_for_begin);
-
- return (1);
-}
-#undef TRANS
-
-int
-_rl_fix_last_undo_of_type (type, start, end)
- int type, start, end;
-{
- UNDO_LIST *rl;
-
- for (rl = rl_undo_list; rl; rl = rl->next)
- {
- if (rl->what == type)
- {
- rl->start = start;
- rl->end = end;
- return 0;
- }
- }
- return 1;
-}
-
-/* Begin a group. Subsequent undos are undone as an atomic operation. */
-int
-rl_begin_undo_group ()
-{
- rl_add_undo (UNDO_BEGIN, 0, 0, 0);
- _rl_undo_group_level++;
- return 0;
-}
-
-/* End an undo group started with rl_begin_undo_group (). */
-int
-rl_end_undo_group ()
-{
- rl_add_undo (UNDO_END, 0, 0, 0);
- _rl_undo_group_level--;
- return 0;
-}
-
-/* Save an undo entry for the text from START to END. */
-int
-rl_modifying (start, end)
- int start, end;
-{
- if (start > end)
- {
- SWAP (start, end);
- }
-
- if (start != end)
- {
- char *temp = rl_copy_text (start, end);
- rl_begin_undo_group ();
- rl_add_undo (UNDO_DELETE, start, end, temp);
- rl_add_undo (UNDO_INSERT, start, end, (char *)NULL);
- rl_end_undo_group ();
- }
- return 0;
-}
-
-/* Revert the current line to its previous state. */
-int
-rl_revert_line (count, key)
- int count, key;
-{
- if (!rl_undo_list)
- rl_ding ();
- else
- {
- while (rl_undo_list)
- rl_do_undo ();
- }
- return 0;
-}
-
-/* Do some undoing of things that were done. */
-int
-rl_undo_command (count, key)
- int count, key;
-{
- if (count < 0)
- return 0; /* Nothing to do. */
-
- while (count)
- {
- if (rl_do_undo ())
- count--;
- else
- {
- rl_ding ();
- break;
- }
- }
- return 0;
-}
diff --git a/readline-4.3/util.c b/readline-4.3/util.c
deleted file mode 100644
index c7bd360..0000000
--- a/readline-4.3/util.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/* util.c -- readline utility functions */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <fcntl.h>
-#include "posixjmp.h"
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h> /* for _POSIX_VERSION */
-#endif /* HAVE_UNISTD_H */
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include <stdio.h>
-#include <ctype.h>
-
-/* System-specific feature definitions and include files. */
-#include "rldefs.h"
-
-#if defined (TIOCSTAT_IN_SYS_IOCTL)
-# include <sys/ioctl.h>
-#endif /* TIOCSTAT_IN_SYS_IOCTL */
-
-/* Some standard library routines. */
-#include "readline.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Utility Functions */
-/* */
-/* **************************************************************** */
-
-/* Return 0 if C is not a member of the class of characters that belong
- in words, or 1 if it is. */
-
-int _rl_allow_pathname_alphabetic_chars = 0;
-static const char *pathname_alphabetic_chars = "/-_=~.#$";
-
-int
-rl_alphabetic (c)
- int c;
-{
- if (ALPHABETIC (c))
- return (1);
-
- return (_rl_allow_pathname_alphabetic_chars &&
- strchr (pathname_alphabetic_chars, c) != NULL);
-}
-
-/* How to abort things. */
-int
-_rl_abort_internal ()
-{
- rl_ding ();
- rl_clear_message ();
- _rl_init_argument ();
- rl_clear_pending_input ();
-
- RL_UNSETSTATE (RL_STATE_MACRODEF);
- while (rl_executing_macro)
- _rl_pop_executing_macro ();
-
- rl_last_func = (rl_command_func_t *)NULL;
- longjmp (readline_top_level, 1);
- return (0);
-}
-
-int
-rl_abort (count, key)
- int count, key;
-{
- return (_rl_abort_internal ());
-}
-
-int
-rl_tty_status (count, key)
- int count, key;
-{
-#if defined (TIOCSTAT)
- ioctl (1, TIOCSTAT, (char *)0);
- rl_refresh_line (count, key);
-#else
- rl_ding ();
-#endif
- return 0;
-}
-
-/* Return a copy of the string between FROM and TO.
- FROM is inclusive, TO is not. */
-char *
-rl_copy_text (from, to)
- int from, to;
-{
- register int length;
- char *copy;
-
- /* Fix it if the caller is confused. */
- if (from > to)
- SWAP (from, to);
-
- length = to - from;
- copy = (char *)xmalloc (1 + length);
- strncpy (copy, rl_line_buffer + from, length);
- copy[length] = '\0';
- return (copy);
-}
-
-/* Increase the size of RL_LINE_BUFFER until it has enough space to hold
- LEN characters. */
-void
-rl_extend_line_buffer (len)
- int len;
-{
- while (len >= rl_line_buffer_len)
- {
- rl_line_buffer_len += DEFAULT_BUFFER_SIZE;
- rl_line_buffer = (char *)xrealloc (rl_line_buffer, rl_line_buffer_len);
- }
-
- _rl_set_the_line ();
-}
-
-
-/* A function for simple tilde expansion. */
-int
-rl_tilde_expand (ignore, key)
- int ignore, key;
-{
- register int start, end;
- char *homedir, *temp;
- int len;
-
- end = rl_point;
- start = end - 1;
-
- if (rl_point == rl_end && rl_line_buffer[rl_point] == '~')
- {
- homedir = tilde_expand ("~");
- _rl_replace_text (homedir, start, end);
- return (0);
- }
- else if (rl_line_buffer[start] != '~')
- {
- for (; !whitespace (rl_line_buffer[start]) && start >= 0; start--)
- ;
- start++;
- }
-
- end = start;
- do
- end++;
- while (whitespace (rl_line_buffer[end]) == 0 && end < rl_end);
-
- if (whitespace (rl_line_buffer[end]) || end >= rl_end)
- end--;
-
- /* If the first character of the current word is a tilde, perform
- tilde expansion and insert the result. If not a tilde, do
- nothing. */
- if (rl_line_buffer[start] == '~')
- {
- len = end - start + 1;
- temp = (char *)xmalloc (len + 1);
- strncpy (temp, rl_line_buffer + start, len);
- temp[len] = '\0';
- homedir = tilde_expand (temp);
- free (temp);
-
- _rl_replace_text (homedir, start, end);
- }
-
- return (0);
-}
-
-/* **************************************************************** */
-/* */
-/* String Utility Functions */
-/* */
-/* **************************************************************** */
-
-/* Determine if s2 occurs in s1. If so, return a pointer to the
- match in s1. The compare is case insensitive. */
-char *
-_rl_strindex (s1, s2)
- register const char *s1, *s2;
-{
- register int i, l, len;
-
- for (i = 0, l = strlen (s2), len = strlen (s1); (len - i) >= l; i++)
- if (_rl_strnicmp (s1 + i, s2, l) == 0)
- return ((char *) (s1 + i));
- return ((char *)NULL);
-}
-
-#ifndef HAVE_STRPBRK
-/* Find the first occurrence in STRING1 of any character from STRING2.
- Return a pointer to the character in STRING1. */
-char *
-_rl_strpbrk (string1, string2)
- const char *string1, *string2;
-{
- register const char *scan;
-#if defined (HANDLE_MULTIBYTE)
- mbstate_t ps;
- register int i, v;
-
- memset (&ps, 0, sizeof (mbstate_t));
-#endif
-
- for (; *string1; string1++)
- {
- for (scan = string2; *scan; scan++)
- {
- if (*string1 == *scan)
- return ((char *)string1);
- }
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- v = _rl_get_char_len (string1, &ps);
- if (v > 1)
- string += v - 1; /* -1 to account for auto-increment in loop */
- }
-#endif
- }
- return ((char *)NULL);
-}
-#endif
-
-#if !defined (HAVE_STRCASECMP)
-/* Compare at most COUNT characters from string1 to string2. Case
- doesn't matter. */
-int
-_rl_strnicmp (string1, string2, count)
- char *string1, *string2;
- int count;
-{
- register char ch1, ch2;
-
- while (count)
- {
- ch1 = *string1++;
- ch2 = *string2++;
- if (_rl_to_upper(ch1) == _rl_to_upper(ch2))
- count--;
- else
- break;
- }
- return (count);
-}
-
-/* strcmp (), but caseless. */
-int
-_rl_stricmp (string1, string2)
- char *string1, *string2;
-{
- register char ch1, ch2;
-
- while (*string1 && *string2)
- {
- ch1 = *string1++;
- ch2 = *string2++;
- if (_rl_to_upper(ch1) != _rl_to_upper(ch2))
- return (1);
- }
- return (*string1 - *string2);
-}
-#endif /* !HAVE_STRCASECMP */
-
-/* Stupid comparison routine for qsort () ing strings. */
-int
-_rl_qsort_string_compare (s1, s2)
- char **s1, **s2;
-{
-#if defined (HAVE_STRCOLL)
- return (strcoll (*s1, *s2));
-#else
- int result;
-
- result = **s1 - **s2;
- if (result == 0)
- result = strcmp (*s1, *s2);
-
- return result;
-#endif
-}
-
-/* Function equivalents for the macros defined in chardefs.h. */
-#define FUNCTION_FOR_MACRO(f) int (f) (c) int c; { return f (c); }
-
-FUNCTION_FOR_MACRO (_rl_digit_p)
-FUNCTION_FOR_MACRO (_rl_digit_value)
-FUNCTION_FOR_MACRO (_rl_lowercase_p)
-FUNCTION_FOR_MACRO (_rl_pure_alphabetic)
-FUNCTION_FOR_MACRO (_rl_to_lower)
-FUNCTION_FOR_MACRO (_rl_to_upper)
-FUNCTION_FOR_MACRO (_rl_uppercase_p)
-
-/* Backwards compatibility, now that savestring has been removed from
- all `public' readline header files. */
-#undef _rl_savestring
-char *
-_rl_savestring (s)
- const char *s;
-{
- return (strcpy ((char *)xmalloc (1 + (int)strlen (s)), (s)));
-}
diff --git a/readline-4.3/vi_keymap.c b/readline-4.3/vi_keymap.c
deleted file mode 100644
index 53a67c6..0000000
--- a/readline-4.3/vi_keymap.c
+++ /dev/null
@@ -1,877 +0,0 @@
-/* vi_keymap.c -- the keymap for vi_mode in readline (). */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (BUFSIZ)
-#include <stdio.h>
-#endif /* !BUFSIZ */
-
-#include "readline.h"
-
-#if 0
-extern KEYMAP_ENTRY_ARRAY vi_escape_keymap;
-#endif
-
-/* The keymap arrays for handling vi mode. */
-KEYMAP_ENTRY_ARRAY vi_movement_keymap = {
- /* The regular control keys come first. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-c */
- { ISFUNC, rl_vi_eof_maybe }, /* Control-d */
- { ISFUNC, rl_emacs_editing_mode }, /* Control-e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-f */
- { ISFUNC, rl_abort }, /* Control-g */
- { ISFUNC, rl_backward_char }, /* Control-h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-i */
- { ISFUNC, rl_newline }, /* Control-j */
- { ISFUNC, rl_kill_line }, /* Control-k */
- { ISFUNC, rl_clear_screen }, /* Control-l */
- { ISFUNC, rl_newline }, /* Control-m */
- { ISFUNC, rl_get_next_history }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
- { ISFUNC, rl_get_previous_history }, /* Control-p */
- { ISFUNC, rl_quoted_insert }, /* Control-q */
- { ISFUNC, rl_reverse_search_history }, /* Control-r */
- { ISFUNC, rl_forward_search_history }, /* Control-s */
- { ISFUNC, rl_transpose_chars }, /* Control-t */
- { ISFUNC, rl_unix_line_discard }, /* Control-u */
- { ISFUNC, rl_quoted_insert }, /* Control-v */
- { ISFUNC, rl_unix_word_rubout }, /* Control-w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-x */
- { ISFUNC, rl_yank }, /* Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
-
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-[ */ /* vi_escape_keymap */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-\ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-^ */
- { ISFUNC, rl_vi_undo }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, rl_forward_char }, /* SPACE */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ! */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* " */
- { ISFUNC, rl_insert_comment }, /* # */
- { ISFUNC, rl_end_of_line }, /* $ */
- { ISFUNC, rl_vi_match }, /* % */
- { ISFUNC, rl_vi_tilde_expand }, /* & */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ' */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ( */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ) */
- { ISFUNC, rl_vi_complete }, /* * */
- { ISFUNC, rl_get_next_history}, /* + */
- { ISFUNC, rl_vi_char_search }, /* , */
- { ISFUNC, rl_get_previous_history }, /* - */
- { ISFUNC, rl_vi_redo }, /* . */
- { ISFUNC, rl_vi_search }, /* / */
-
- /* Regular digits. */
- { ISFUNC, rl_beg_of_line }, /* 0 */
- { ISFUNC, rl_vi_arg_digit }, /* 1 */
- { ISFUNC, rl_vi_arg_digit }, /* 2 */
- { ISFUNC, rl_vi_arg_digit }, /* 3 */
- { ISFUNC, rl_vi_arg_digit }, /* 4 */
- { ISFUNC, rl_vi_arg_digit }, /* 5 */
- { ISFUNC, rl_vi_arg_digit }, /* 6 */
- { ISFUNC, rl_vi_arg_digit }, /* 7 */
- { ISFUNC, rl_vi_arg_digit }, /* 8 */
- { ISFUNC, rl_vi_arg_digit }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* : */
- { ISFUNC, rl_vi_char_search }, /* ; */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* < */
- { ISFUNC, rl_vi_complete }, /* = */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* > */
- { ISFUNC, rl_vi_search }, /* ? */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_vi_append_eol }, /* A */
- { ISFUNC, rl_vi_prev_word}, /* B */
- { ISFUNC, rl_vi_change_to }, /* C */
- { ISFUNC, rl_vi_delete_to }, /* D */
- { ISFUNC, rl_vi_end_word }, /* E */
- { ISFUNC, rl_vi_char_search }, /* F */
- { ISFUNC, rl_vi_fetch_history }, /* G */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* H */
- { ISFUNC, rl_vi_insert_beg }, /* I */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* J */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* K */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* L */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* M */
- { ISFUNC, rl_vi_search_again }, /* N */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* O */
- { ISFUNC, rl_vi_put }, /* P */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Q */
- { ISFUNC, rl_vi_replace }, /* R */
- { ISFUNC, rl_vi_subst }, /* S */
- { ISFUNC, rl_vi_char_search }, /* T */
- { ISFUNC, rl_revert_line }, /* U */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* V */
- { ISFUNC, rl_vi_next_word }, /* W */
- { ISFUNC, rl_rubout }, /* X */
- { ISFUNC, rl_vi_yank_to }, /* Y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* [ */
- { ISFUNC, rl_vi_complete }, /* \ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ] */
- { ISFUNC, rl_vi_first_print }, /* ^ */
- { ISFUNC, rl_vi_yank_arg }, /* _ */
- { ISFUNC, rl_vi_goto_mark }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, rl_vi_append_mode }, /* a */
- { ISFUNC, rl_vi_prev_word }, /* b */
- { ISFUNC, rl_vi_change_to }, /* c */
- { ISFUNC, rl_vi_delete_to }, /* d */
- { ISFUNC, rl_vi_end_word }, /* e */
- { ISFUNC, rl_vi_char_search }, /* f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* g */
- { ISFUNC, rl_backward_char }, /* h */
- { ISFUNC, rl_vi_insertion_mode }, /* i */
- { ISFUNC, rl_get_next_history }, /* j */
- { ISFUNC, rl_get_previous_history }, /* k */
- { ISFUNC, rl_forward_char }, /* l */
- { ISFUNC, rl_vi_set_mark }, /* m */
- { ISFUNC, rl_vi_search_again }, /* n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* o */
- { ISFUNC, rl_vi_put }, /* p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* q */
- { ISFUNC, rl_vi_change_char }, /* r */
- { ISFUNC, rl_vi_subst }, /* s */
- { ISFUNC, rl_vi_char_search }, /* t */
- { ISFUNC, rl_vi_undo }, /* u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* v */
- { ISFUNC, rl_vi_next_word }, /* w */
- { ISFUNC, rl_vi_delete }, /* x */
- { ISFUNC, rl_vi_yank_to }, /* y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* { */
- { ISFUNC, rl_vi_column }, /* | */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* } */
- { ISFUNC, rl_vi_change_case }, /* ~ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Undefined keys. */
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 }
-#endif /* KEYMAP_SIZE > 128 */
-};
-
-
-KEYMAP_ENTRY_ARRAY vi_insertion_keymap = {
- /* The regular control keys come first. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
- { ISFUNC, rl_insert }, /* Control-a */
- { ISFUNC, rl_insert }, /* Control-b */
- { ISFUNC, rl_insert }, /* Control-c */
- { ISFUNC, rl_vi_eof_maybe }, /* Control-d */
- { ISFUNC, rl_insert }, /* Control-e */
- { ISFUNC, rl_insert }, /* Control-f */
- { ISFUNC, rl_insert }, /* Control-g */
- { ISFUNC, rl_rubout }, /* Control-h */
- { ISFUNC, rl_complete }, /* Control-i */
- { ISFUNC, rl_newline }, /* Control-j */
- { ISFUNC, rl_insert }, /* Control-k */
- { ISFUNC, rl_insert }, /* Control-l */
- { ISFUNC, rl_newline }, /* Control-m */
- { ISFUNC, rl_insert }, /* Control-n */
- { ISFUNC, rl_insert }, /* Control-o */
- { ISFUNC, rl_insert }, /* Control-p */
- { ISFUNC, rl_insert }, /* Control-q */
- { ISFUNC, rl_reverse_search_history }, /* Control-r */
- { ISFUNC, rl_forward_search_history }, /* Control-s */
- { ISFUNC, rl_transpose_chars }, /* Control-t */
- { ISFUNC, rl_unix_line_discard }, /* Control-u */
- { ISFUNC, rl_quoted_insert }, /* Control-v */
- { ISFUNC, rl_unix_word_rubout }, /* Control-w */
- { ISFUNC, rl_insert }, /* Control-x */
- { ISFUNC, rl_yank }, /* Control-y */
- { ISFUNC, rl_insert }, /* Control-z */
-
- { ISFUNC, rl_vi_movement_mode }, /* Control-[ */
- { ISFUNC, rl_insert }, /* Control-\ */
- { ISFUNC, rl_insert }, /* Control-] */
- { ISFUNC, rl_insert }, /* Control-^ */
- { ISFUNC, rl_vi_undo }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, rl_insert }, /* SPACE */
- { ISFUNC, rl_insert }, /* ! */
- { ISFUNC, rl_insert }, /* " */
- { ISFUNC, rl_insert }, /* # */
- { ISFUNC, rl_insert }, /* $ */
- { ISFUNC, rl_insert }, /* % */
- { ISFUNC, rl_insert }, /* & */
- { ISFUNC, rl_insert }, /* ' */
- { ISFUNC, rl_insert }, /* ( */
- { ISFUNC, rl_insert }, /* ) */
- { ISFUNC, rl_insert }, /* * */
- { ISFUNC, rl_insert }, /* + */
- { ISFUNC, rl_insert }, /* , */
- { ISFUNC, rl_insert }, /* - */
- { ISFUNC, rl_insert }, /* . */
- { ISFUNC, rl_insert }, /* / */
-
- /* Regular digits. */
- { ISFUNC, rl_insert }, /* 0 */
- { ISFUNC, rl_insert }, /* 1 */
- { ISFUNC, rl_insert }, /* 2 */
- { ISFUNC, rl_insert }, /* 3 */
- { ISFUNC, rl_insert }, /* 4 */
- { ISFUNC, rl_insert }, /* 5 */
- { ISFUNC, rl_insert }, /* 6 */
- { ISFUNC, rl_insert }, /* 7 */
- { ISFUNC, rl_insert }, /* 8 */
- { ISFUNC, rl_insert }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, rl_insert }, /* : */
- { ISFUNC, rl_insert }, /* ; */
- { ISFUNC, rl_insert }, /* < */
- { ISFUNC, rl_insert }, /* = */
- { ISFUNC, rl_insert }, /* > */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_insert }, /* A */
- { ISFUNC, rl_insert }, /* B */
- { ISFUNC, rl_insert }, /* C */
- { ISFUNC, rl_insert }, /* D */
- { ISFUNC, rl_insert }, /* E */
- { ISFUNC, rl_insert }, /* F */
- { ISFUNC, rl_insert }, /* G */
- { ISFUNC, rl_insert }, /* H */
- { ISFUNC, rl_insert }, /* I */
- { ISFUNC, rl_insert }, /* J */
- { ISFUNC, rl_insert }, /* K */
- { ISFUNC, rl_insert }, /* L */
- { ISFUNC, rl_insert }, /* M */
- { ISFUNC, rl_insert }, /* N */
- { ISFUNC, rl_insert }, /* O */
- { ISFUNC, rl_insert }, /* P */
- { ISFUNC, rl_insert }, /* Q */
- { ISFUNC, rl_insert }, /* R */
- { ISFUNC, rl_insert }, /* S */
- { ISFUNC, rl_insert }, /* T */
- { ISFUNC, rl_insert }, /* U */
- { ISFUNC, rl_insert }, /* V */
- { ISFUNC, rl_insert }, /* W */
- { ISFUNC, rl_insert }, /* X */
- { ISFUNC, rl_insert }, /* Y */
- { ISFUNC, rl_insert }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, rl_insert }, /* [ */
- { ISFUNC, rl_insert }, /* \ */
- { ISFUNC, rl_insert }, /* ] */
- { ISFUNC, rl_insert }, /* ^ */
- { ISFUNC, rl_insert }, /* _ */
- { ISFUNC, rl_insert }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, rl_insert }, /* a */
- { ISFUNC, rl_insert }, /* b */
- { ISFUNC, rl_insert }, /* c */
- { ISFUNC, rl_insert }, /* d */
- { ISFUNC, rl_insert }, /* e */
- { ISFUNC, rl_insert }, /* f */
- { ISFUNC, rl_insert }, /* g */
- { ISFUNC, rl_insert }, /* h */
- { ISFUNC, rl_insert }, /* i */
- { ISFUNC, rl_insert }, /* j */
- { ISFUNC, rl_insert }, /* k */
- { ISFUNC, rl_insert }, /* l */
- { ISFUNC, rl_insert }, /* m */
- { ISFUNC, rl_insert }, /* n */
- { ISFUNC, rl_insert }, /* o */
- { ISFUNC, rl_insert }, /* p */
- { ISFUNC, rl_insert }, /* q */
- { ISFUNC, rl_insert }, /* r */
- { ISFUNC, rl_insert }, /* s */
- { ISFUNC, rl_insert }, /* t */
- { ISFUNC, rl_insert }, /* u */
- { ISFUNC, rl_insert }, /* v */
- { ISFUNC, rl_insert }, /* w */
- { ISFUNC, rl_insert }, /* x */
- { ISFUNC, rl_insert }, /* y */
- { ISFUNC, rl_insert }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, rl_insert }, /* { */
- { ISFUNC, rl_insert }, /* | */
- { ISFUNC, rl_insert }, /* } */
- { ISFUNC, rl_insert }, /* ~ */
- { ISFUNC, rl_rubout }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Pure 8-bit characters (128 - 159).
- These might be used in some
- character sets. */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
- { ISFUNC, rl_insert }, /* ? */
-
- /* ISO Latin-1 characters (160 - 255) */
- { ISFUNC, rl_insert }, /* No-break space */
- { ISFUNC, rl_insert }, /* Inverted exclamation mark */
- { ISFUNC, rl_insert }, /* Cent sign */
- { ISFUNC, rl_insert }, /* Pound sign */
- { ISFUNC, rl_insert }, /* Currency sign */
- { ISFUNC, rl_insert }, /* Yen sign */
- { ISFUNC, rl_insert }, /* Broken bar */
- { ISFUNC, rl_insert }, /* Section sign */
- { ISFUNC, rl_insert }, /* Diaeresis */
- { ISFUNC, rl_insert }, /* Copyright sign */
- { ISFUNC, rl_insert }, /* Feminine ordinal indicator */
- { ISFUNC, rl_insert }, /* Left pointing double angle quotation mark */
- { ISFUNC, rl_insert }, /* Not sign */
- { ISFUNC, rl_insert }, /* Soft hyphen */
- { ISFUNC, rl_insert }, /* Registered sign */
- { ISFUNC, rl_insert }, /* Macron */
- { ISFUNC, rl_insert }, /* Degree sign */
- { ISFUNC, rl_insert }, /* Plus-minus sign */
- { ISFUNC, rl_insert }, /* Superscript two */
- { ISFUNC, rl_insert }, /* Superscript three */
- { ISFUNC, rl_insert }, /* Acute accent */
- { ISFUNC, rl_insert }, /* Micro sign */
- { ISFUNC, rl_insert }, /* Pilcrow sign */
- { ISFUNC, rl_insert }, /* Middle dot */
- { ISFUNC, rl_insert }, /* Cedilla */
- { ISFUNC, rl_insert }, /* Superscript one */
- { ISFUNC, rl_insert }, /* Masculine ordinal indicator */
- { ISFUNC, rl_insert }, /* Right pointing double angle quotation mark */
- { ISFUNC, rl_insert }, /* Vulgar fraction one quarter */
- { ISFUNC, rl_insert }, /* Vulgar fraction one half */
- { ISFUNC, rl_insert }, /* Vulgar fraction three quarters */
- { ISFUNC, rl_insert }, /* Inverted questionk mark */
- { ISFUNC, rl_insert }, /* Latin capital letter a with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter a with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter a with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter a with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter a with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter a with ring above */
- { ISFUNC, rl_insert }, /* Latin capital letter ae */
- { ISFUNC, rl_insert }, /* Latin capital letter c with cedilla */
- { ISFUNC, rl_insert }, /* Latin capital letter e with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter e with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter e with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter e with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter i with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter i with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter i with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter i with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter eth (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin capital letter n with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter o with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter o with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter o with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter o with tilde */
- { ISFUNC, rl_insert }, /* Latin capital letter o with diaeresis */
- { ISFUNC, rl_insert }, /* Multiplication sign */
- { ISFUNC, rl_insert }, /* Latin capital letter o with stroke */
- { ISFUNC, rl_insert }, /* Latin capital letter u with grave */
- { ISFUNC, rl_insert }, /* Latin capital letter u with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter u with circumflex */
- { ISFUNC, rl_insert }, /* Latin capital letter u with diaeresis */
- { ISFUNC, rl_insert }, /* Latin capital letter Y with acute */
- { ISFUNC, rl_insert }, /* Latin capital letter thorn (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin small letter sharp s (German) */
- { ISFUNC, rl_insert }, /* Latin small letter a with grave */
- { ISFUNC, rl_insert }, /* Latin small letter a with acute */
- { ISFUNC, rl_insert }, /* Latin small letter a with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter a with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter a with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter a with ring above */
- { ISFUNC, rl_insert }, /* Latin small letter ae */
- { ISFUNC, rl_insert }, /* Latin small letter c with cedilla */
- { ISFUNC, rl_insert }, /* Latin small letter e with grave */
- { ISFUNC, rl_insert }, /* Latin small letter e with acute */
- { ISFUNC, rl_insert }, /* Latin small letter e with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter e with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter i with grave */
- { ISFUNC, rl_insert }, /* Latin small letter i with acute */
- { ISFUNC, rl_insert }, /* Latin small letter i with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter i with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter eth (Icelandic) */
- { ISFUNC, rl_insert }, /* Latin small letter n with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter o with grave */
- { ISFUNC, rl_insert }, /* Latin small letter o with acute */
- { ISFUNC, rl_insert }, /* Latin small letter o with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter o with tilde */
- { ISFUNC, rl_insert }, /* Latin small letter o with diaeresis */
- { ISFUNC, rl_insert }, /* Division sign */
- { ISFUNC, rl_insert }, /* Latin small letter o with stroke */
- { ISFUNC, rl_insert }, /* Latin small letter u with grave */
- { ISFUNC, rl_insert }, /* Latin small letter u with acute */
- { ISFUNC, rl_insert }, /* Latin small letter u with circumflex */
- { ISFUNC, rl_insert }, /* Latin small letter u with diaeresis */
- { ISFUNC, rl_insert }, /* Latin small letter y with acute */
- { ISFUNC, rl_insert }, /* Latin small letter thorn (Icelandic) */
- { ISFUNC, rl_insert } /* Latin small letter y with diaeresis */
-#endif /* KEYMAP_SIZE > 128 */
-};
-
-/* Unused for the time being. */
-#if 0
-KEYMAP_ENTRY_ARRAY vi_escape_keymap = {
- /* The regular control keys come first. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-@ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-h */
- { ISFUNC, rl_tab_insert}, /* Control-i */
- { ISFUNC, rl_emacs_editing_mode}, /* Control-j */
- { ISFUNC, rl_kill_line }, /* Control-k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-l */
- { ISFUNC, rl_emacs_editing_mode}, /* Control-m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-n */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-q */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-t */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-x */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-z */
-
- { ISFUNC, rl_vi_movement_mode }, /* Control-[ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-\ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* Control-^ */
- { ISFUNC, rl_vi_undo }, /* Control-_ */
-
- /* The start of printing characters. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* SPACE */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ! */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* " */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* # */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* $ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* % */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* & */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ' */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ( */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ) */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* * */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* + */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* , */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* - */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* . */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* / */
-
- /* Regular digits. */
- { ISFUNC, rl_vi_arg_digit }, /* 0 */
- { ISFUNC, rl_vi_arg_digit }, /* 1 */
- { ISFUNC, rl_vi_arg_digit }, /* 2 */
- { ISFUNC, rl_vi_arg_digit }, /* 3 */
- { ISFUNC, rl_vi_arg_digit }, /* 4 */
- { ISFUNC, rl_vi_arg_digit }, /* 5 */
- { ISFUNC, rl_vi_arg_digit }, /* 6 */
- { ISFUNC, rl_vi_arg_digit }, /* 7 */
- { ISFUNC, rl_vi_arg_digit }, /* 8 */
- { ISFUNC, rl_vi_arg_digit }, /* 9 */
-
- /* A little more punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* : */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ; */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* < */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* = */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* > */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ? */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* @ */
-
- /* Uppercase alphabet. */
- { ISFUNC, rl_do_lowercase_version }, /* A */
- { ISFUNC, rl_do_lowercase_version }, /* B */
- { ISFUNC, rl_do_lowercase_version }, /* C */
- { ISFUNC, rl_do_lowercase_version }, /* D */
- { ISFUNC, rl_do_lowercase_version }, /* E */
- { ISFUNC, rl_do_lowercase_version }, /* F */
- { ISFUNC, rl_do_lowercase_version }, /* G */
- { ISFUNC, rl_do_lowercase_version }, /* H */
- { ISFUNC, rl_do_lowercase_version }, /* I */
- { ISFUNC, rl_do_lowercase_version }, /* J */
- { ISFUNC, rl_do_lowercase_version }, /* K */
- { ISFUNC, rl_do_lowercase_version }, /* L */
- { ISFUNC, rl_do_lowercase_version }, /* M */
- { ISFUNC, rl_do_lowercase_version }, /* N */
- { ISFUNC, rl_do_lowercase_version }, /* O */
- { ISFUNC, rl_do_lowercase_version }, /* P */
- { ISFUNC, rl_do_lowercase_version }, /* Q */
- { ISFUNC, rl_do_lowercase_version }, /* R */
- { ISFUNC, rl_do_lowercase_version }, /* S */
- { ISFUNC, rl_do_lowercase_version }, /* T */
- { ISFUNC, rl_do_lowercase_version }, /* U */
- { ISFUNC, rl_do_lowercase_version }, /* V */
- { ISFUNC, rl_do_lowercase_version }, /* W */
- { ISFUNC, rl_do_lowercase_version }, /* X */
- { ISFUNC, rl_do_lowercase_version }, /* Y */
- { ISFUNC, rl_do_lowercase_version }, /* Z */
-
- /* Some more punctuation. */
- { ISFUNC, rl_arrow_keys }, /* [ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* \ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ] */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ^ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* _ */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ` */
-
- /* Lowercase alphabet. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* a */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* b */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* c */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* d */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* e */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* f */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* g */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* h */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* i */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* j */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* k */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* l */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* m */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* n */
- { ISFUNC, rl_arrow_keys }, /* o */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* p */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* q */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* r */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* s */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* t */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* u */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* v */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* w */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* x */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* y */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* z */
-
- /* Final punctuation. */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* { */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* | */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* } */
- { ISFUNC, (rl_command_func_t *)0x0 }, /* ~ */
- { ISFUNC, rl_backward_kill_word }, /* RUBOUT */
-
-#if KEYMAP_SIZE > 128
- /* Undefined keys. */
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 },
- { ISFUNC, (rl_command_func_t *)0x0 }
-#endif /* KEYMAP_SIZE > 128 */
-};
-#endif
diff --git a/readline-4.3/vi_mode.c b/readline-4.3/vi_mode.c
deleted file mode 100644
index 5d146b3..0000000
--- a/readline-4.3/vi_mode.c
+++ /dev/null
@@ -1,1485 +0,0 @@
-/* vi_mode.c -- A vi emulation mode for Bash.
- Derived from code written by Jeff Sparkes (jsparkes@bnr.ca). */
-
-/* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-/* **************************************************************** */
-/* */
-/* VI Emulation Mode */
-/* */
-/* **************************************************************** */
-#include "rlconf.h"
-
-#if defined (VI_MODE)
-
-#if defined (HAVE_CONFIG_H)
-# include <config.h>
-#endif
-
-#include <sys/types.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#if defined (HAVE_UNISTD_H)
-# include <unistd.h>
-#endif
-
-#include <stdio.h>
-
-/* Some standard library routines. */
-#include "rldefs.h"
-#include "rlmbutil.h"
-
-#include "readline.h"
-#include "history.h"
-
-#include "rlprivate.h"
-#include "xmalloc.h"
-
-#ifndef member
-#define member(c, s) ((c) ? (char *)strchr ((s), (c)) != (char *)NULL : 0)
-#endif
-
-/* Non-zero means enter insertion mode. */
-static int _rl_vi_doing_insert;
-
-/* Command keys which do movement for xxx_to commands. */
-static const char *vi_motion = " hl^$0ftFT;,%wbeWBE|";
-
-/* Keymap used for vi replace characters. Created dynamically since
- rarely used. */
-static Keymap vi_replace_map;
-
-/* The number of characters inserted in the last replace operation. */
-static int vi_replace_count;
-
-/* If non-zero, we have text inserted after a c[motion] command that put
- us implicitly into insert mode. Some people want this text to be
- attached to the command so that it is `redoable' with `.'. */
-static int vi_continued_command;
-static char *vi_insert_buffer;
-static int vi_insert_buffer_size;
-
-static int _rl_vi_last_command = 'i'; /* default `.' puts you in insert mode */
-static int _rl_vi_last_repeat = 1;
-static int _rl_vi_last_arg_sign = 1;
-static int _rl_vi_last_motion;
-#if defined (HANDLE_MULTIBYTE)
-static char _rl_vi_last_search_mbchar[MB_LEN_MAX];
-#else
-static int _rl_vi_last_search_char;
-#endif
-static int _rl_vi_last_replacement;
-
-static int _rl_vi_last_key_before_insert;
-
-static int vi_redoing;
-
-/* Text modification commands. These are the `redoable' commands. */
-static const char *vi_textmod = "_*\\AaIiCcDdPpYyRrSsXx~";
-
-/* Arrays for the saved marks. */
-static int vi_mark_chars['z' - 'a' + 1];
-
-static void _rl_vi_stuff_insert PARAMS((int));
-static void _rl_vi_save_insert PARAMS((UNDO_LIST *));
-static int rl_digit_loop1 PARAMS((void));
-
-void
-_rl_vi_initialize_line ()
-{
- register int i;
-
- for (i = 0; i < sizeof (vi_mark_chars) / sizeof (int); i++)
- vi_mark_chars[i] = -1;
-}
-
-void
-_rl_vi_reset_last ()
-{
- _rl_vi_last_command = 'i';
- _rl_vi_last_repeat = 1;
- _rl_vi_last_arg_sign = 1;
- _rl_vi_last_motion = 0;
-}
-
-void
-_rl_vi_set_last (key, repeat, sign)
- int key, repeat, sign;
-{
- _rl_vi_last_command = key;
- _rl_vi_last_repeat = repeat;
- _rl_vi_last_arg_sign = sign;
-}
-
-/* Is the command C a VI mode text modification command? */
-int
-_rl_vi_textmod_command (c)
- int c;
-{
- return (member (c, vi_textmod));
-}
-
-static void
-_rl_vi_stuff_insert (count)
- int count;
-{
- rl_begin_undo_group ();
- while (count--)
- rl_insert_text (vi_insert_buffer);
- rl_end_undo_group ();
-}
-
-/* Bound to `.'. Called from command mode, so we know that we have to
- redo a text modification command. The default for _rl_vi_last_command
- puts you back into insert mode. */
-int
-rl_vi_redo (count, c)
- int count, c;
-{
- int r;
-
- if (!rl_explicit_arg)
- {
- rl_numeric_arg = _rl_vi_last_repeat;
- rl_arg_sign = _rl_vi_last_arg_sign;
- }
-
- r = 0;
- vi_redoing = 1;
- /* If we're redoing an insert with `i', stuff in the inserted text
- and do not go into insertion mode. */
- if (_rl_vi_last_command == 'i' && vi_insert_buffer && *vi_insert_buffer)
- {
- _rl_vi_stuff_insert (count);
- /* And back up point over the last character inserted. */
- if (rl_point > 0)
- rl_point--;
- }
- else
- r = _rl_dispatch (_rl_vi_last_command, _rl_keymap);
- vi_redoing = 0;
-
- return (r);
-}
-
-/* A placeholder for further expansion. */
-int
-rl_vi_undo (count, key)
- int count, key;
-{
- return (rl_undo_command (count, key));
-}
-
-/* Yank the nth arg from the previous line into this line at point. */
-int
-rl_vi_yank_arg (count, key)
- int count, key;
-{
- /* Readline thinks that the first word on a line is the 0th, while vi
- thinks the first word on a line is the 1st. Compensate. */
- if (rl_explicit_arg)
- rl_yank_nth_arg (count - 1, 0);
- else
- rl_yank_nth_arg ('$', 0);
-
- return (0);
-}
-
-/* With an argument, move back that many history lines, else move to the
- beginning of history. */
-int
-rl_vi_fetch_history (count, c)
- int count, c;
-{
- int wanted;
-
- /* Giving an argument of n means we want the nth command in the history
- file. The command number is interpreted the same way that the bash
- `history' command does it -- that is, giving an argument count of 450
- to this command would get the command listed as number 450 in the
- output of `history'. */
- if (rl_explicit_arg)
- {
- wanted = history_base + where_history () - count;
- if (wanted <= 0)
- rl_beginning_of_history (0, 0);
- else
- rl_get_previous_history (wanted, c);
- }
- else
- rl_beginning_of_history (count, 0);
- return (0);
-}
-
-/* Search again for the last thing searched for. */
-int
-rl_vi_search_again (count, key)
- int count, key;
-{
- switch (key)
- {
- case 'n':
- rl_noninc_reverse_search_again (count, key);
- break;
-
- case 'N':
- rl_noninc_forward_search_again (count, key);
- break;
- }
- return (0);
-}
-
-/* Do a vi style search. */
-int
-rl_vi_search (count, key)
- int count, key;
-{
- switch (key)
- {
- case '?':
- rl_noninc_forward_search (count, key);
- break;
-
- case '/':
- rl_noninc_reverse_search (count, key);
- break;
-
- default:
- rl_ding ();
- break;
- }
- return (0);
-}
-
-/* Completion, from vi's point of view. */
-int
-rl_vi_complete (ignore, key)
- int ignore, key;
-{
- if ((rl_point < rl_end) && (!whitespace (rl_line_buffer[rl_point])))
- {
- if (!whitespace (rl_line_buffer[rl_point + 1]))
- rl_vi_end_word (1, 'E');
- rl_point++;
- }
-
- if (key == '*')
- rl_complete_internal ('*'); /* Expansion and replacement. */
- else if (key == '=')
- rl_complete_internal ('?'); /* List possible completions. */
- else if (key == '\\')
- rl_complete_internal (TAB); /* Standard Readline completion. */
- else
- rl_complete (0, key);
-
- if (key == '*' || key == '\\')
- {
- _rl_vi_set_last (key, 1, rl_arg_sign);
- rl_vi_insertion_mode (1, key);
- }
- return (0);
-}
-
-/* Tilde expansion for vi mode. */
-int
-rl_vi_tilde_expand (ignore, key)
- int ignore, key;
-{
- rl_tilde_expand (0, key);
- _rl_vi_set_last (key, 1, rl_arg_sign); /* XXX */
- rl_vi_insertion_mode (1, key);
- return (0);
-}
-
-/* Previous word in vi mode. */
-int
-rl_vi_prev_word (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_vi_next_word (-count, key));
-
- if (rl_point == 0)
- {
- rl_ding ();
- return (0);
- }
-
- if (_rl_uppercase_p (key))
- rl_vi_bWord (count, key);
- else
- rl_vi_bword (count, key);
-
- return (0);
-}
-
-/* Next word in vi mode. */
-int
-rl_vi_next_word (count, key)
- int count, key;
-{
- if (count < 0)
- return (rl_vi_prev_word (-count, key));
-
- if (rl_point >= (rl_end - 1))
- {
- rl_ding ();
- return (0);
- }
-
- if (_rl_uppercase_p (key))
- rl_vi_fWord (count, key);
- else
- rl_vi_fword (count, key);
- return (0);
-}
-
-/* Move to the end of the ?next? word. */
-int
-rl_vi_end_word (count, key)
- int count, key;
-{
- if (count < 0)
- {
- rl_ding ();
- return -1;
- }
-
- if (_rl_uppercase_p (key))
- rl_vi_eWord (count, key);
- else
- rl_vi_eword (count, key);
- return (0);
-}
-
-/* Move forward a word the way that 'W' does. */
-int
-rl_vi_fWord (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point < (rl_end - 1))
- {
- /* Skip until whitespace. */
- while (!whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
-
- /* Now skip whitespace. */
- while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
- }
- return (0);
-}
-
-int
-rl_vi_bWord (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point > 0)
- {
- /* If we are at the start of a word, move back to whitespace so
- we will go back to the start of the previous word. */
- if (!whitespace (rl_line_buffer[rl_point]) &&
- whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
-
- while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
- rl_point--;
-
- if (rl_point > 0)
- {
- while (--rl_point >= 0 && !whitespace (rl_line_buffer[rl_point]));
- rl_point++;
- }
- }
- return (0);
-}
-
-int
-rl_vi_eWord (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point < (rl_end - 1))
- {
- if (!whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- /* Move to the next non-whitespace character (to the start of the
- next word). */
- while (++rl_point < rl_end && whitespace (rl_line_buffer[rl_point]));
-
- if (rl_point && rl_point < rl_end)
- {
- /* Skip whitespace. */
- while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- /* Skip until whitespace. */
- while (rl_point < rl_end && !whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- /* Move back to the last character of the word. */
- rl_point--;
- }
- }
- return (0);
-}
-
-int
-rl_vi_fword (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point < (rl_end - 1))
- {
- /* Move to white space (really non-identifer). */
- if (_rl_isident (rl_line_buffer[rl_point]))
- {
- while (_rl_isident (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
- }
- else /* if (!whitespace (rl_line_buffer[rl_point])) */
- {
- while (!_rl_isident (rl_line_buffer[rl_point]) &&
- !whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
- }
-
- /* Move past whitespace. */
- while (whitespace (rl_line_buffer[rl_point]) && rl_point < rl_end)
- rl_point++;
- }
- return (0);
-}
-
-int
-rl_vi_bword (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point > 0)
- {
- int last_is_ident;
-
- /* If we are at the start of a word, move back to whitespace
- so we will go back to the start of the previous word. */
- if (!whitespace (rl_line_buffer[rl_point]) &&
- whitespace (rl_line_buffer[rl_point - 1]))
- rl_point--;
-
- /* If this character and the previous character are `opposite', move
- back so we don't get messed up by the rl_point++ down there in
- the while loop. Without this code, words like `l;' screw up the
- function. */
- last_is_ident = _rl_isident (rl_line_buffer[rl_point - 1]);
- if ((_rl_isident (rl_line_buffer[rl_point]) && !last_is_ident) ||
- (!_rl_isident (rl_line_buffer[rl_point]) && last_is_ident))
- rl_point--;
-
- while (rl_point > 0 && whitespace (rl_line_buffer[rl_point]))
- rl_point--;
-
- if (rl_point > 0)
- {
- if (_rl_isident (rl_line_buffer[rl_point]))
- while (--rl_point >= 0 && _rl_isident (rl_line_buffer[rl_point]));
- else
- while (--rl_point >= 0 && !_rl_isident (rl_line_buffer[rl_point]) &&
- !whitespace (rl_line_buffer[rl_point]));
- rl_point++;
- }
- }
- return (0);
-}
-
-int
-rl_vi_eword (count, ignore)
- int count, ignore;
-{
- while (count-- && rl_point < rl_end - 1)
- {
- if (!whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
-
- if (rl_point < rl_end)
- {
- if (_rl_isident (rl_line_buffer[rl_point]))
- while (++rl_point < rl_end && _rl_isident (rl_line_buffer[rl_point]));
- else
- while (++rl_point < rl_end && !_rl_isident (rl_line_buffer[rl_point])
- && !whitespace (rl_line_buffer[rl_point]));
- }
- rl_point--;
- }
- return (0);
-}
-
-int
-rl_vi_insert_beg (count, key)
- int count, key;
-{
- rl_beg_of_line (1, key);
- rl_vi_insertion_mode (1, key);
- return (0);
-}
-
-int
-rl_vi_append_mode (count, key)
- int count, key;
-{
- if (rl_point < rl_end)
- {
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- rl_point++;
- else
- {
- int point = rl_point;
- rl_forward_char (1, key);
- if (point == rl_point)
- rl_point = rl_end;
- }
- }
- rl_vi_insertion_mode (1, key);
- return (0);
-}
-
-int
-rl_vi_append_eol (count, key)
- int count, key;
-{
- rl_end_of_line (1, key);
- rl_vi_append_mode (1, key);
- return (0);
-}
-
-/* What to do in the case of C-d. */
-int
-rl_vi_eof_maybe (count, c)
- int count, c;
-{
- return (rl_newline (1, '\n'));
-}
-
-/* Insertion mode stuff. */
-
-/* Switching from one mode to the other really just involves
- switching keymaps. */
-int
-rl_vi_insertion_mode (count, key)
- int count, key;
-{
- _rl_keymap = vi_insertion_keymap;
- _rl_vi_last_key_before_insert = key;
- return (0);
-}
-
-static void
-_rl_vi_save_insert (up)
- UNDO_LIST *up;
-{
- int len, start, end;
-
- if (up == 0)
- {
- if (vi_insert_buffer_size >= 1)
- vi_insert_buffer[0] = '\0';
- return;
- }
-
- start = up->start;
- end = up->end;
- len = end - start + 1;
- if (len >= vi_insert_buffer_size)
- {
- vi_insert_buffer_size += (len + 32) - (len % 32);
- vi_insert_buffer = (char *)xrealloc (vi_insert_buffer, vi_insert_buffer_size);
- }
- strncpy (vi_insert_buffer, rl_line_buffer + start, len - 1);
- vi_insert_buffer[len-1] = '\0';
-}
-
-void
-_rl_vi_done_inserting ()
-{
- if (_rl_vi_doing_insert)
- {
- /* The `C', `s', and `S' commands set this. */
- rl_end_undo_group ();
- /* Now, the text between rl_undo_list->next->start and
- rl_undo_list->next->end is what was inserted while in insert
- mode. It gets copied to VI_INSERT_BUFFER because it depends
- on absolute indices into the line which may change (though they
- probably will not). */
- _rl_vi_doing_insert = 0;
- _rl_vi_save_insert (rl_undo_list->next);
- vi_continued_command = 1;
- }
- else
- {
- if (_rl_vi_last_key_before_insert == 'i' && rl_undo_list)
- _rl_vi_save_insert (rl_undo_list);
- /* XXX - Other keys probably need to be checked. */
- else if (_rl_vi_last_key_before_insert == 'C')
- rl_end_undo_group ();
- while (_rl_undo_group_level > 0)
- rl_end_undo_group ();
- vi_continued_command = 0;
- }
-}
-
-int
-rl_vi_movement_mode (count, key)
- int count, key;
-{
- if (rl_point > 0)
- rl_backward_char (1, key);
-
- _rl_keymap = vi_movement_keymap;
- _rl_vi_done_inserting ();
- return (0);
-}
-
-int
-rl_vi_arg_digit (count, c)
- int count, c;
-{
- if (c == '0' && rl_numeric_arg == 1 && !rl_explicit_arg)
- return (rl_beg_of_line (1, c));
- else
- return (rl_digit_argument (count, c));
-}
-
-/* Change the case of the next COUNT characters. */
-#if defined (HANDLE_MULTIBYTE)
-static int
-_rl_vi_change_mbchar_case (count)
- int count;
-{
- wchar_t wc;
- char mb[MB_LEN_MAX];
- mbstate_t ps;
-
- memset (&ps, 0, sizeof (mbstate_t));
- if (_rl_adjust_point (rl_line_buffer, rl_point, &ps) > 0)
- count--;
- while (count-- && rl_point < rl_end)
- {
- mbrtowc (&wc, rl_line_buffer + rl_point, rl_end - rl_point, &ps);
- if (iswupper (wc))
- wc = towlower (wc);
- else if (iswlower (wc))
- wc = towupper (wc);
- else
- {
- /* Just skip over chars neither upper nor lower case */
- rl_forward_char (1, 0);
- continue;
- }
-
- /* Vi is kind of strange here. */
- if (wc)
- {
- wctomb (mb, wc);
- rl_begin_undo_group ();
- rl_delete (1, 0);
- rl_insert_text (mb);
- rl_end_undo_group ();
- rl_vi_check ();
- }
- else
- rl_forward_char (1, 0);
- }
-
- return 0;
-}
-#endif
-
-int
-rl_vi_change_case (count, ignore)
- int count, ignore;
-{
- char c = 0;
-
- /* Don't try this on an empty line. */
- if (rl_point >= rl_end)
- return (0);
-
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- return (_rl_vi_change_mbchar_case (count));
-#endif
-
- while (count-- && rl_point < rl_end)
- {
- if (_rl_uppercase_p (rl_line_buffer[rl_point]))
- c = _rl_to_lower (rl_line_buffer[rl_point]);
- else if (_rl_lowercase_p (rl_line_buffer[rl_point]))
- c = _rl_to_upper (rl_line_buffer[rl_point]);
- else
- {
- /* Just skip over characters neither upper nor lower case. */
- rl_forward_char (1, c);
- continue;
- }
-
- /* Vi is kind of strange here. */
- if (c)
- {
- rl_begin_undo_group ();
- rl_delete (1, c);
- _rl_insert_char (1, c);
- rl_end_undo_group ();
- rl_vi_check ();
- }
- else
- rl_forward_char (1, c);
- }
- return (0);
-}
-
-int
-rl_vi_put (count, key)
- int count, key;
-{
- if (!_rl_uppercase_p (key) && (rl_point + 1 <= rl_end))
- rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
-
- rl_yank (1, key);
- rl_backward_char (1, key);
- return (0);
-}
-
-int
-rl_vi_check ()
-{
- if (rl_point && rl_point == rl_end)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- rl_point = _rl_find_prev_mbchar (rl_line_buffer, rl_point, MB_FIND_NONZERO);
- else
- rl_point--;
- }
- return (0);
-}
-
-int
-rl_vi_column (count, key)
- int count, key;
-{
- if (count > rl_end)
- rl_end_of_line (1, key);
- else
- rl_point = count - 1;
- return (0);
-}
-
-int
-rl_vi_domove (key, nextkey)
- int key, *nextkey;
-{
- int c, save;
- int old_end;
-
- rl_mark = rl_point;
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- *nextkey = c;
-
- if (!member (c, vi_motion))
- {
- if (_rl_digit_p (c))
- {
- save = rl_numeric_arg;
- rl_numeric_arg = _rl_digit_value (c);
- rl_digit_loop1 ();
- rl_numeric_arg *= save;
- RL_SETSTATE(RL_STATE_MOREINPUT);
- c = rl_read_key (); /* real command */
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- *nextkey = c;
- }
- else if (key == c && (key == 'd' || key == 'y' || key == 'c'))
- {
- rl_mark = rl_end;
- rl_beg_of_line (1, c);
- _rl_vi_last_motion = c;
- return (0);
- }
- else
- return (-1);
- }
-
- _rl_vi_last_motion = c;
-
- /* Append a blank character temporarily so that the motion routines
- work right at the end of the line. */
- old_end = rl_end;
- rl_line_buffer[rl_end++] = ' ';
- rl_line_buffer[rl_end] = '\0';
-
- _rl_dispatch (c, _rl_keymap);
-
- /* Remove the blank that we added. */
- rl_end = old_end;
- rl_line_buffer[rl_end] = '\0';
- if (rl_point > rl_end)
- rl_point = rl_end;
-
- /* No change in position means the command failed. */
- if (rl_mark == rl_point)
- return (-1);
-
- /* rl_vi_f[wW]ord () leaves the cursor on the first character of the next
- word. If we are not at the end of the line, and we are on a
- non-whitespace character, move back one (presumably to whitespace). */
- if ((_rl_to_upper (c) == 'W') && rl_point < rl_end && rl_point > rl_mark &&
- !whitespace (rl_line_buffer[rl_point]))
- rl_point--;
-
- /* If cw or cW, back up to the end of a word, so the behaviour of ce
- or cE is the actual result. Brute-force, no subtlety. */
- if (key == 'c' && rl_point >= rl_mark && (_rl_to_upper (c) == 'W'))
- {
- /* Don't move farther back than where we started. */
- while (rl_point > rl_mark && whitespace (rl_line_buffer[rl_point]))
- rl_point--;
-
- /* Posix.2 says that if cw or cW moves the cursor towards the end of
- the line, the character under the cursor should be deleted. */
- if (rl_point == rl_mark)
- rl_point++;
- else
- {
- /* Move past the end of the word so that the kill doesn't
- remove the last letter of the previous word. Only do this
- if we are not at the end of the line. */
- if (rl_point >= 0 && rl_point < (rl_end - 1) && !whitespace (rl_line_buffer[rl_point]))
- rl_point++;
- }
- }
-
- if (rl_mark < rl_point)
- SWAP (rl_point, rl_mark);
-
- return (0);
-}
-
-/* A simplified loop for vi. Don't dispatch key at end.
- Don't recognize minus sign?
- Should this do rl_save_prompt/rl_restore_prompt? */
-static int
-rl_digit_loop1 ()
-{
- int key, c;
-
- RL_SETSTATE(RL_STATE_NUMERICARG);
- while (1)
- {
- if (rl_numeric_arg > 1000000)
- {
- rl_explicit_arg = rl_numeric_arg = 0;
- rl_ding ();
- rl_clear_message ();
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return 1;
- }
- rl_message ("(arg: %d) ", rl_arg_sign * rl_numeric_arg);
- RL_SETSTATE(RL_STATE_MOREINPUT);
- key = c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (c >= 0 && _rl_keymap[c].type == ISFUNC &&
- _rl_keymap[c].function == rl_universal_argument)
- {
- rl_numeric_arg *= 4;
- continue;
- }
-
- c = UNMETA (c);
- if (_rl_digit_p (c))
- {
- if (rl_explicit_arg)
- rl_numeric_arg = (rl_numeric_arg * 10) + _rl_digit_value (c);
- else
- rl_numeric_arg = _rl_digit_value (c);
- rl_explicit_arg = 1;
- }
- else
- {
- rl_clear_message ();
- rl_stuff_char (key);
- break;
- }
- }
-
- RL_UNSETSTATE(RL_STATE_NUMERICARG);
- return (0);
-}
-
-int
-rl_vi_delete_to (count, key)
- int count, key;
-{
- int c;
-
- if (_rl_uppercase_p (key))
- rl_stuff_char ('$');
- else if (vi_redoing)
- rl_stuff_char (_rl_vi_last_motion);
-
- if (rl_vi_domove (key, &c))
- {
- rl_ding ();
- return -1;
- }
-
- /* These are the motion commands that do not require adjusting the
- mark. */
- if ((strchr (" l|h^0bB", c) == 0) && (rl_mark < rl_end))
- rl_mark++;
-
- rl_kill_text (rl_point, rl_mark);
- return (0);
-}
-
-int
-rl_vi_change_to (count, key)
- int count, key;
-{
- int c, start_pos;
-
- if (_rl_uppercase_p (key))
- rl_stuff_char ('$');
- else if (vi_redoing)
- rl_stuff_char (_rl_vi_last_motion);
-
- start_pos = rl_point;
-
- if (rl_vi_domove (key, &c))
- {
- rl_ding ();
- return -1;
- }
-
- /* These are the motion commands that do not require adjusting the
- mark. c[wW] are handled by special-case code in rl_vi_domove(),
- and already leave the mark at the correct location. */
- if ((strchr (" l|hwW^0bB", c) == 0) && (rl_mark < rl_end))
- rl_mark++;
-
- /* The cursor never moves with c[wW]. */
- if ((_rl_to_upper (c) == 'W') && rl_point < start_pos)
- rl_point = start_pos;
-
- if (vi_redoing)
- {
- if (vi_insert_buffer && *vi_insert_buffer)
- rl_begin_undo_group ();
- rl_delete_text (rl_point, rl_mark);
- if (vi_insert_buffer && *vi_insert_buffer)
- {
- rl_insert_text (vi_insert_buffer);
- rl_end_undo_group ();
- }
- }
- else
- {
- rl_begin_undo_group (); /* to make the `u' command work */
- rl_kill_text (rl_point, rl_mark);
- /* `C' does not save the text inserted for undoing or redoing. */
- if (_rl_uppercase_p (key) == 0)
- _rl_vi_doing_insert = 1;
- _rl_vi_set_last (key, count, rl_arg_sign);
- rl_vi_insertion_mode (1, key);
- }
-
- return (0);
-}
-
-int
-rl_vi_yank_to (count, key)
- int count, key;
-{
- int c, save = rl_point;
-
- if (_rl_uppercase_p (key))
- rl_stuff_char ('$');
-
- if (rl_vi_domove (key, &c))
- {
- rl_ding ();
- return -1;
- }
-
- /* These are the motion commands that do not require adjusting the
- mark. */
- if ((strchr (" l|h^0%bB", c) == 0) && (rl_mark < rl_end))
- rl_mark++;
-
- rl_begin_undo_group ();
- rl_kill_text (rl_point, rl_mark);
- rl_end_undo_group ();
- rl_do_undo ();
- rl_point = save;
-
- return (0);
-}
-
-int
-rl_vi_delete (count, key)
- int count, key;
-{
- int end;
-
- if (rl_end == 0)
- {
- rl_ding ();
- return -1;
- }
-
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- end = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO);
- else
- end = rl_point + count;
-
- if (end >= rl_end)
- end = rl_end;
-
- rl_kill_text (rl_point, end);
-
- if (rl_point > 0 && rl_point == rl_end)
- rl_backward_char (1, key);
- return (0);
-}
-
-int
-rl_vi_back_to_indent (count, key)
- int count, key;
-{
- rl_beg_of_line (1, key);
- while (rl_point < rl_end && whitespace (rl_line_buffer[rl_point]))
- rl_point++;
- return (0);
-}
-
-int
-rl_vi_first_print (count, key)
- int count, key;
-{
- return (rl_vi_back_to_indent (1, key));
-}
-
-int
-rl_vi_char_search (count, key)
- int count, key;
-{
-#if defined (HANDLE_MULTIBYTE)
- static char *target;
- static int mb_len;
-#else
- static char target;
-#endif
- static int orig_dir, dir;
-
- if (key == ';' || key == ',')
- dir = key == ';' ? orig_dir : -orig_dir;
- else
- {
- if (vi_redoing)
-#if defined (HANDLE_MULTIBYTE)
- target = _rl_vi_last_search_mbchar;
-#else
- target = _rl_vi_last_search_char;
-#endif
- else
- {
-#if defined (HANDLE_MULTIBYTE)
- mb_len = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
- target = _rl_vi_last_search_mbchar;
-#else
- RL_SETSTATE(RL_STATE_MOREINPUT);
- _rl_vi_last_search_char = target = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-#endif
- }
-
- switch (key)
- {
- case 't':
- orig_dir = dir = FTO;
- break;
-
- case 'T':
- orig_dir = dir = BTO;
- break;
-
- case 'f':
- orig_dir = dir = FFIND;
- break;
-
- case 'F':
- orig_dir = dir = BFIND;
- break;
- }
- }
-
-#if defined (HANDLE_MULTIBYTE)
- return (_rl_char_search_internal (count, dir, target, mb_len));
-#else
- return (_rl_char_search_internal (count, dir, target));
-#endif
-}
-
-/* Match brackets */
-int
-rl_vi_match (ignore, key)
- int ignore, key;
-{
- int count = 1, brack, pos, tmp, pre;
-
- pos = rl_point;
- if ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0)
- {
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- {
- while ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0)
- {
- pre = rl_point;
- rl_forward_char (1, key);
- if (pre == rl_point)
- break;
- }
- }
- else
- while ((brack = rl_vi_bracktype (rl_line_buffer[rl_point])) == 0 &&
- rl_point < rl_end - 1)
- rl_forward_char (1, key);
-
- if (brack <= 0)
- {
- rl_point = pos;
- rl_ding ();
- return -1;
- }
- }
-
- pos = rl_point;
-
- if (brack < 0)
- {
- while (count)
- {
- tmp = pos;
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- pos--;
- else
- {
- pos = _rl_find_prev_mbchar (rl_line_buffer, pos, MB_FIND_ANY);
- if (tmp == pos)
- pos--;
- }
- if (pos >= 0)
- {
- int b = rl_vi_bracktype (rl_line_buffer[pos]);
- if (b == -brack)
- count--;
- else if (b == brack)
- count++;
- }
- else
- {
- rl_ding ();
- return -1;
- }
- }
- }
- else
- { /* brack > 0 */
- while (count)
- {
- if (MB_CUR_MAX == 1 || rl_byte_oriented)
- pos++;
- else
- pos = _rl_find_next_mbchar (rl_line_buffer, pos, 1, MB_FIND_ANY);
-
- if (pos < rl_end)
- {
- int b = rl_vi_bracktype (rl_line_buffer[pos]);
- if (b == -brack)
- count--;
- else if (b == brack)
- count++;
- }
- else
- {
- rl_ding ();
- return -1;
- }
- }
- }
- rl_point = pos;
- return (0);
-}
-
-int
-rl_vi_bracktype (c)
- int c;
-{
- switch (c)
- {
- case '(': return 1;
- case ')': return -1;
- case '[': return 2;
- case ']': return -2;
- case '{': return 3;
- case '}': return -3;
- default: return 0;
- }
-}
-
-/* XXX - think about reading an entire mbchar with _rl_read_mbchar and
- inserting it in one bunch instead of the loop below (like in
- rl_vi_char_search or _rl_vi_change_mbchar_case. Set c to mbchar[0]
- for test against 033 or ^C. Make sure that _rl_read_mbchar does
- this right. */
-int
-rl_vi_change_char (count, key)
- int count, key;
-{
- int c;
-
- if (vi_redoing)
- c = _rl_vi_last_replacement;
- else
- {
- RL_SETSTATE(RL_STATE_MOREINPUT);
- _rl_vi_last_replacement = c = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
- }
-
- if (c == '\033' || c == CTRL ('C'))
- return -1;
-
- while (count-- && rl_point < rl_end)
- {
- rl_begin_undo_group ();
-
- rl_delete (1, c);
-#if defined (HANDLE_MULTIBYTE)
- if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
- while (_rl_insert_char (1, c))
- {
- RL_SETSTATE (RL_STATE_MOREINPUT);
- c = rl_read_key ();
- RL_UNSETSTATE (RL_STATE_MOREINPUT);
- }
- else
-#endif
- _rl_insert_char (1, c);
- if (count == 0)
- rl_backward_char (1, c);
-
- rl_end_undo_group ();
- }
- return (0);
-}
-
-int
-rl_vi_subst (count, key)
- int count, key;
-{
- /* If we are redoing, rl_vi_change_to will stuff the last motion char */
- if (vi_redoing == 0)
- rl_stuff_char ((key == 'S') ? 'c' : ' '); /* `S' == `cc', `s' == `c ' */
-
- return (rl_vi_change_to (count, 'c'));
-}
-
-int
-rl_vi_overstrike (count, key)
- int count, key;
-{
- if (_rl_vi_doing_insert == 0)
- {
- _rl_vi_doing_insert = 1;
- rl_begin_undo_group ();
- }
-
- if (count > 0)
- {
- _rl_overwrite_char (count, key);
- vi_replace_count += count;
- }
-
- return (0);
-}
-
-int
-rl_vi_overstrike_delete (count, key)
- int count, key;
-{
- int i, s;
-
- for (i = 0; i < count; i++)
- {
- if (vi_replace_count == 0)
- {
- rl_ding ();
- break;
- }
- s = rl_point;
-
- if (rl_do_undo ())
- vi_replace_count--;
-
- if (rl_point == s)
- rl_backward_char (1, key);
- }
-
- if (vi_replace_count == 0 && _rl_vi_doing_insert)
- {
- rl_end_undo_group ();
- rl_do_undo ();
- _rl_vi_doing_insert = 0;
- }
- return (0);
-}
-
-int
-rl_vi_replace (count, key)
- int count, key;
-{
- int i;
-
- vi_replace_count = 0;
-
- if (!vi_replace_map)
- {
- vi_replace_map = rl_make_bare_keymap ();
-
- for (i = ' '; i < KEYMAP_SIZE; i++)
- vi_replace_map[i].function = rl_vi_overstrike;
-
- vi_replace_map[RUBOUT].function = rl_vi_overstrike_delete;
- vi_replace_map[ESC].function = rl_vi_movement_mode;
- vi_replace_map[RETURN].function = rl_newline;
- vi_replace_map[NEWLINE].function = rl_newline;
-
- /* If the normal vi insertion keymap has ^H bound to erase, do the
- same here. Probably should remove the assignment to RUBOUT up
- there, but I don't think it will make a difference in real life. */
- if (vi_insertion_keymap[CTRL ('H')].type == ISFUNC &&
- vi_insertion_keymap[CTRL ('H')].function == rl_rubout)
- vi_replace_map[CTRL ('H')].function = rl_vi_overstrike_delete;
-
- }
- _rl_keymap = vi_replace_map;
- return (0);
-}
-
-#if 0
-/* Try to complete the word we are standing on or the word that ends with
- the previous character. A space matches everything. Word delimiters are
- space and ;. */
-int
-rl_vi_possible_completions()
-{
- int save_pos = rl_point;
-
- if (rl_line_buffer[rl_point] != ' ' && rl_line_buffer[rl_point] != ';')
- {
- while (rl_point < rl_end && rl_line_buffer[rl_point] != ' ' &&
- rl_line_buffer[rl_point] != ';')
- rl_point++;
- }
- else if (rl_line_buffer[rl_point - 1] == ';')
- {
- rl_ding ();
- return (0);
- }
-
- rl_possible_completions ();
- rl_point = save_pos;
-
- return (0);
-}
-#endif
-
-/* Functions to save and restore marks. */
-int
-rl_vi_set_mark (count, key)
- int count, key;
-{
- int ch;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- ch = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (ch < 'a' || ch > 'z')
- {
- rl_ding ();
- return -1;
- }
- ch -= 'a';
- vi_mark_chars[ch] = rl_point;
- return 0;
-}
-
-int
-rl_vi_goto_mark (count, key)
- int count, key;
-{
- int ch;
-
- RL_SETSTATE(RL_STATE_MOREINPUT);
- ch = rl_read_key ();
- RL_UNSETSTATE(RL_STATE_MOREINPUT);
-
- if (ch == '`')
- {
- rl_point = rl_mark;
- return 0;
- }
- else if (ch < 'a' || ch > 'z')
- {
- rl_ding ();
- return -1;
- }
-
- ch -= 'a';
- if (vi_mark_chars[ch] == -1)
- {
- rl_ding ();
- return -1;
- }
- rl_point = vi_mark_chars[ch];
- return 0;
-}
-
-#endif /* VI_MODE */
diff --git a/readline-4.3/xmalloc.c b/readline-4.3/xmalloc.c
deleted file mode 100644
index 8985d34..0000000
--- a/readline-4.3/xmalloc.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* xmalloc.c -- safe versions of malloc and realloc */
-
-/* Copyright (C) 1991 Free Software Foundation, Inc.
-
- This file is part of GNU Readline, a library for reading lines
- of text with interactive input and history editing.
-
- Readline is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the
- Free Software Foundation; either version 2, or (at your option) any
- later version.
-
- Readline is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with Readline; see the file COPYING. If not, write to the Free
- Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-#define READLINE_LIBRARY
-
-#if defined (HAVE_CONFIG_H)
-#include <config.h>
-#endif
-
-#include <stdio.h>
-
-#if defined (HAVE_STDLIB_H)
-# include <stdlib.h>
-#else
-# include "ansi_stdlib.h"
-#endif /* HAVE_STDLIB_H */
-
-#include "xmalloc.h"
-
-/* **************************************************************** */
-/* */
-/* Memory Allocation and Deallocation. */
-/* */
-/* **************************************************************** */
-
-static void
-memory_error_and_abort (fname)
- char *fname;
-{
- fprintf (stderr, "%s: out of virtual memory\n", fname);
- exit (2);
-}
-
-/* Return a pointer to free()able block of memory large enough
- to hold BYTES number of bytes. If the memory cannot be allocated,
- print an error message and abort. */
-PTR_T
-xmalloc (bytes)
- size_t bytes;
-{
- PTR_T temp;
-
- temp = malloc (bytes);
- if (temp == 0)
- memory_error_and_abort ("xmalloc");
- return (temp);
-}
-
-PTR_T
-xrealloc (pointer, bytes)
- PTR_T pointer;
- size_t bytes;
-{
- PTR_T temp;
-
- temp = pointer ? realloc (pointer, bytes) : malloc (bytes);
-
- if (temp == 0)
- memory_error_and_abort ("xrealloc");
- return (temp);
-}
-
-/* Use this as the function to call when adding unwind protects so we
- don't need to know what free() returns. */
-void
-xfree (string)
- PTR_T string;
-{
- if (string)
- free (string);
-}
diff --git a/readline-4.3/xmalloc.h b/readline-4.3/xmalloc.h
deleted file mode 100644
index 9cb08ba..0000000
--- a/readline-4.3/xmalloc.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* xmalloc.h -- memory allocation that aborts on errors. */
-
-/* Copyright (C) 1999 Free Software Foundation, Inc.
-
- This file is part of the GNU Readline Library, a library for
- reading lines of text with interactive input and history editing.
-
- The GNU Readline Library is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2, or
- (at your option) any later version.
-
- The GNU Readline Library is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty
- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- The GNU General Public License is often shipped with GNU software, and
- is generally kept in a file called COPYING or LICENSE. If you do not
- have a copy of the license, write to the Free Software Foundation,
- 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
-
-#if !defined (_XMALLOC_H_)
-#define _XMALLOC_H_
-
-#if defined (READLINE_LIBRARY)
-# include "rlstdc.h"
-#else
-# include <readline/rlstdc.h>
-#endif
-
-#ifndef PTR_T
-
-#ifdef __STDC__
-# define PTR_T void *
-#else
-# define PTR_T char *
-#endif
-
-#endif /* !PTR_T */
-
-extern PTR_T xmalloc PARAMS((size_t));
-extern PTR_T xrealloc PARAMS((void *, size_t));
-extern void xfree PARAMS((void *));
-
-#endif /* _XMALLOC_H_ */
diff --git a/readline-doc-4.3/MANIFEST.doc b/readline-doc-4.3/MANIFEST.doc
deleted file mode 100644
index 47041b3..0000000
--- a/readline-doc-4.3/MANIFEST.doc
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Master Manifest file for documentation-only distribution
-#
-doc d
-MANIFEST.doc f
-doc/readline.ps f
-doc/history.ps f
-doc/rluserman.ps f
-doc/readline.dvi f
-doc/history.dvi f
-doc/rluserman.dvi f
-doc/readline.info f
-doc/history.info f
-doc/rluserman.info f
-doc/readline.html f
-doc/history.html f
-doc/rluserman.html f
-doc/readline.0 f
-doc/history.0 f
-doc/readline_3.ps f
-doc/history_3.ps f
diff --git a/readline-doc-4.3/doc/history.0 b/readline-doc-4.3/doc/history.0
deleted file mode 100644
index 324c363..0000000
--- a/readline-doc-4.3/doc/history.0
+++ /dev/null
@@ -1,660 +0,0 @@
-
-
-
-HISTORY(3) HISTORY(3)
-
-
-NNAAMMEE
- history - GNU History Library
-
-CCOOPPYYRRIIGGHHTT
- The GNU History Library is Copyright (C) 1989-2002 by the
- Free Software Foundation, Inc.
-
-DDEESSCCRRIIPPTTIIOONN
- Many programs read input from the user a line at a time.
- The GNU History library is able to keep track of those
- lines, associate arbitrary data with each line, and uti-
- lize information from previous lines in composing new
- ones.
-
-
-HHIISSTTOORRYY EEXXPPAANNSSIIOONN
- The history library supports a history expansion feature
- that is identical to the history expansion in bbaasshh.. This
- section describes what syntax features are available.
-
- History expansions introduce words from the history list
- into the input stream, making it easy to repeat commands,
- insert the arguments to a previous command into the cur-
- rent input line, or fix errors in previous commands
- quickly.
-
- History expansion is usually performed immediately after a
- complete line is read. It takes place in two parts. The
- first is to determine which line from the history list to
- use during substitution. The second is to select portions
- of that line for inclusion into the current one. The line
- selected from the history is the _e_v_e_n_t, and the portions
- of that line that are acted upon are _w_o_r_d_s. Various _m_o_d_i_-
- _f_i_e_r_s are available to manipulate the selected words. The
- line is broken into words in the same fashion as bbaasshh does
- when reading input, so that several words that would oth-
- erwise be separated are considered one word when sur-
- rounded by quotes (see the description of hhiissttoorryy__ttookk--
- eenniizzee(()) below). History expansions are introduced by the
- appearance of the history expansion character, which is !!
- by default. Only backslash (\\) and single quotes can
- quote the history expansion character.
-
- EEvveenntt DDeessiiggnnaattoorrss
- An event designator is a reference to a command line entry
- in the history list.
-
- !! Start a history substitution, except when followed
- by a bbllaannkk, newline, = or (.
- !!_n Refer to command line _n.
- !!--_n Refer to the current command line minus _n.
- !!!! Refer to the previous command. This is a synonym
- for `!-1'.
-
-
-
-
-GNU History 4.3 2002 January 31 1
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- !!_s_t_r_i_n_g
- Refer to the most recent command starting with
- _s_t_r_i_n_g.
- !!??_s_t_r_i_n_g[[??]]
- Refer to the most recent command containing _s_t_r_i_n_g.
- The trailing ?? may be omitted if _s_t_r_i_n_g is followed
- immediately by a newline.
- ^^_s_t_r_i_n_g_1^^_s_t_r_i_n_g_2^^
- Quick substitution. Repeat the last command,
- replacing _s_t_r_i_n_g_1 with _s_t_r_i_n_g_2. Equivalent to
- ``!!:s/_s_t_r_i_n_g_1/_s_t_r_i_n_g_2/'' (see MMooddiiffiieerrss below).
- !!## The entire command line typed so far.
-
- WWoorrdd DDeessiiggnnaattoorrss
- Word designators are used to select desired words from the
- event. A :: separates the event specification from the
- word designator. It may be omitted if the word designator
- begins with a ^^, $$, **, --, or %%. Words are numbered from
- the beginning of the line, with the first word being
- denoted by 0 (zero). Words are inserted into the current
- line separated by single spaces.
-
- 00 ((zzeerroo))
- The zeroth word. For the shell, this is the com-
- mand word.
- _n The _nth word.
- ^^ The first argument. That is, word 1.
- $$ The last argument.
- %% The word matched by the most recent `?_s_t_r_i_n_g?'
- search.
- _x--_y A range of words; `-_y' abbreviates `0-_y'.
- ** All of the words but the zeroth. This is a synonym
- for `_1_-_$'. It is not an error to use ** if there is
- just one word in the event; the empty string is
- returned in that case.
- xx** Abbreviates _x_-_$.
- xx-- Abbreviates _x_-_$ like xx**, but omits the last word.
-
- If a word designator is supplied without an event specifi-
- cation, the previous command is used as the event.
-
- MMooddiiffiieerrss
- After the optional word designator, there may appear a
- sequence of one or more of the following modifiers, each
- preceded by a `:'.
-
- hh Remove a trailing file name component, leaving only
- the head.
- tt Remove all leading file name components, leaving
- the tail.
- rr Remove a trailing suffix of the form _._x_x_x, leaving
- the basename.
- ee Remove all but the trailing suffix.
- pp Print the new command but do not execute it.
-
-
-
-GNU History 4.3 2002 January 31 2
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- qq Quote the substituted words, escaping further sub-
- stitutions.
- xx Quote the substituted words as with qq, but break
- into words at bbllaannkkss and newlines.
- ss//_o_l_d//_n_e_w//
- Substitute _n_e_w for the first occurrence of _o_l_d in
- the event line. Any delimiter can be used in place
- of /. The final delimiter is optional if it is the
- last character of the event line. The delimiter
- may be quoted in _o_l_d and _n_e_w with a single back-
- slash. If & appears in _n_e_w, it is replaced by _o_l_d.
- A single backslash will quote the &. If _o_l_d is
- null, it is set to the last _o_l_d substituted, or, if
- no previous history substitutions took place, the
- last _s_t_r_i_n_g in a !!??_s_t_r_i_n_g[[??]] search.
- && Repeat the previous substitution.
- gg Cause changes to be applied over the entire event
- line. This is used in conjunction with `::ss' (e.g.,
- `::ggss//_o_l_d//_n_e_w//') or `::&&'. If used with `::ss', any
- delimiter can be used in place of /, and the final
- delimiter is optional if it is the last character
- of the event line.
-
-PPRROOGGRRAAMMMMIINNGG WWIITTHH HHIISSTTOORRYY FFUUNNCCTTIIOONNSS
- This section describes how to use the History library in
- other programs.
-
- IInnttrroodduuccttiioonn ttoo HHiissttoorryy
- The programmer using the History library has available
- functions for remembering lines on a history list, associ-
- ating arbitrary data with a line, removing lines from the
- list, searching through the list for a line containing an
- arbitrary text string, and referencing any line in the
- list directly. In addition, a history _e_x_p_a_n_s_i_o_n function
- is available which provides for a consistent user inter-
- face across different programs.
-
- The user using programs written with the History library
- has the benefit of a consistent user interface with a set
- of well-known commands for manipulating the text of previ-
- ous lines and using that text in new commands. The basic
- history manipulation commands are identical to the history
- substitution provided by bbaasshh.
-
- If the programmer desires, he can use the Readline
- library, which includes some history manipulation by
- default, and has the added advantage of command line edit-
- ing.
-
- Before declaring any functions using any functionality the
- History library provides in other code, an application
- writer should include the file _<_r_e_a_d_l_i_n_e_/_h_i_s_t_o_r_y_._h_> in any
- file that uses the History library's features. It sup-
- plies extern declarations for all of the library's public
-
-
-
-GNU History 4.3 2002 January 31 3
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- functions and variables, and declares all of the public
- data structures.
-
-
- HHiissttoorryy SSttoorraaggee
- The history list is an array of history entries. A his-
- tory entry is declared as follows:
-
- _t_y_p_e_d_e_f _v_o_i_d _* hhiissttddaattaa__tt;;
-
- typedef struct _hist_entry {
- char *line;
- histdata_t data;
- } HIST_ENTRY;
-
- The history list itself might therefore be declared as
-
- _H_I_S_T___E_N_T_R_Y _*_* tthhee__hhiissttoorryy__lliisstt;;
-
- The state of the History library is encapsulated into a
- single structure:
-
- /*
- * A structure used to pass around the current state of the history.
- */
- typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
- } HISTORY_STATE;
-
- If the flags member includes HHSS__SSTTIIFFLLEEDD, the history has
- been stifled.
-
-HHiissttoorryy FFuunnccttiioonnss
- This section describes the calling sequence for the vari-
- ous functions exported by the GNU History library.
-
- IInniittiiaalliizziinngg HHiissttoorryy aanndd SSttaattee MMaannaaggeemmeenntt
- This section describes functions used to initialize and
- manage the state of the History library when you want to
- use the history functions in your program.
-
- _v_o_i_d uussiinngg__hhiissttoorryy (_v_o_i_d)
- Begin a session in which the history functions might be
- used. This initializes the interactive variables.
-
- _H_I_S_T_O_R_Y___S_T_A_T_E _* hhiissttoorryy__ggeett__hhiissttoorryy__ssttaattee (_v_o_i_d)
- Return a structure describing the current state of the
- input history.
-
- _v_o_i_d hhiissttoorryy__sseett__hhiissttoorryy__ssttaattee (_H_I_S_T_O_R_Y___S_T_A_T_E _*_s_t_a_t_e)
-
-
-
-GNU History 4.3 2002 January 31 4
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- Set the state of the history list according to _s_t_a_t_e.
-
-
- HHiissttoorryy LLiisstt MMaannaaggeemmeenntt
- These functions manage individual entries on the history
- list, or set parameters managing the list itself.
-
- _v_o_i_d aadddd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
- Place _s_t_r_i_n_g at the end of the history list. The associ-
- ated data field (if any) is set to NNUULLLL.
-
- _H_I_S_T___E_N_T_R_Y _* rreemmoovvee__hhiissttoorryy (_i_n_t _w_h_i_c_h)
- Remove history entry at offset _w_h_i_c_h from the history.
- The removed element is returned so you can free the line,
- data, and containing structure.
-
- _H_I_S_T___E_N_T_R_Y _* rreeppllaaccee__hhiissttoorryy__eennttrryy (_i_n_t _w_h_i_c_h_, _c_o_n_s_t _c_h_a_r
- _*_l_i_n_e_, _h_i_s_t_d_a_t_a___t _d_a_t_a)
- Make the history entry at offset _w_h_i_c_h have _l_i_n_e and _d_a_t_a.
- This returns the old entry so you can dispose of the data.
- In the case of an invalid _w_h_i_c_h, a NNUULLLL pointer is
- returned.
-
- _v_o_i_d cclleeaarr__hhiissttoorryy (_v_o_i_d)
- Clear the history list by deleting all the entries.
-
- _v_o_i_d ssttiiffllee__hhiissttoorryy (_i_n_t _m_a_x)
- Stifle the history list, remembering only the last _m_a_x
- entries.
-
- _i_n_t uunnssttiiffllee__hhiissttoorryy (_v_o_i_d)
- Stop stifling the history. This returns the previously-
- set maximum number of history entries (as set by ssttii--
- ffllee__hhiissttoorryy(())). history was stifled. The value is posi-
- tive if the history was stifled, negative if it wasn't.
-
- _i_n_t hhiissttoorryy__iiss__ssttiifflleedd (_v_o_i_d)
- Returns non-zero if the history is stifled, zero if it is
- not.
-
-
- IInnffoorrmmaattiioonn AAbboouutt tthhee HHiissttoorryy LLiisstt
- These functions return information about the entire his-
- tory list or individual list entries.
-
- _H_I_S_T___E_N_T_R_Y _*_* hhiissttoorryy__lliisstt (_v_o_i_d)
- Return a NNUULLLL terminated array of _H_I_S_T___E_N_T_R_Y _* which is
- the current input history. Element 0 of this list is the
- beginning of time. If there is no history, return NNUULLLL.
-
- _i_n_t wwhheerree__hhiissttoorryy (_v_o_i_d)
- Returns the offset of the current history element.
-
- _H_I_S_T___E_N_T_R_Y _* ccuurrrreenntt__hhiissttoorryy (_v_o_i_d)
-
-
-
-GNU History 4.3 2002 January 31 5
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- Return the history entry at the current position, as
- determined by wwhheerree__hhiissttoorryy(()). If there is no entry
- there, return a NNUULLLL pointer.
-
- _H_I_S_T___E_N_T_R_Y _* hhiissttoorryy__ggeett (_i_n_t _o_f_f_s_e_t)
- Return the history entry at position _o_f_f_s_e_t, starting from
- hhiissttoorryy__bbaassee. If there is no entry there, or if _o_f_f_s_e_t is
- greater than the history length, return a NNUULLLL pointer.
-
- _i_n_t hhiissttoorryy__ttoottaall__bbyytteess (_v_o_i_d)
- Return the number of bytes that the primary history
- entries are using. This function returns the sum of the
- lengths of all the lines in the history.
-
-
- MMoovviinngg AArroouunndd tthhee HHiissttoorryy LLiisstt
- These functions allow the current index into the history
- list to be set or changed.
-
- _i_n_t hhiissttoorryy__sseett__ppooss (_i_n_t _p_o_s)
- Set the current history offset to _p_o_s, an absolute index
- into the list. Returns 1 on success, 0 if _p_o_s is less
- than zero or greater than the number of history entries.
-
- _H_I_S_T___E_N_T_R_Y _* pprreevviioouuss__hhiissttoorryy (_v_o_i_d)
- Back up the current history offset to the previous history
- entry, and return a pointer to that entry. If there is no
- previous entry, return a NNUULLLL pointer.
-
- _H_I_S_T___E_N_T_R_Y _* nneexxtt__hhiissttoorryy (_v_o_i_d)
- Move the current history offset forward to the next his-
- tory entry, and return the a pointer to that entry. If
- there is no next entry, return a NNUULLLL pointer.
-
-
- SSeeaarrcchhiinngg tthhee HHiissttoorryy LLiisstt
- These functions allow searching of the history list for
- entries containing a specific string. Searching may be
- performed both forward and backward from the current his-
- tory position. The search may be _a_n_c_h_o_r_e_d, meaning that
- the string must match at the beginning of the history
- entry.
-
- _i_n_t hhiissttoorryy__sseeaarrcchh (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n)
- Search the history for _s_t_r_i_n_g, starting at the current
- history offset. If _d_i_r_e_c_t_i_o_n is less than 0, then the
- search is through previous entries, otherwise through sub-
- sequent entries. If _s_t_r_i_n_g is found, then the current
- history index is set to that history entry, and the value
- returned is the offset in the line of the entry where
- _s_t_r_i_n_g was found. Otherwise, nothing is changed, and a -1
- is returned.
-
- _i_n_t hhiissttoorryy__sseeaarrcchh__pprreeffiixx (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t
-
-
-
-GNU History 4.3 2002 January 31 6
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- _d_i_r_e_c_t_i_o_n)
- Search the history for _s_t_r_i_n_g, starting at the current
- history offset. The search is anchored: matching lines
- must begin with _s_t_r_i_n_g. If _d_i_r_e_c_t_i_o_n is less than 0, then
- the search is through previous entries, otherwise through
- subsequent entries. If _s_t_r_i_n_g is found, then the current
- history index is set to that entry, and the return value
- is 0. Otherwise, nothing is changed, and a -1 is
- returned.
-
- _i_n_t hhiissttoorryy__sseeaarrcchh__ppooss (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _d_i_r_e_c_t_i_o_n_,
- _i_n_t _p_o_s)
- Search for _s_t_r_i_n_g in the history list, starting at _p_o_s, an
- absolute index into the list. If _d_i_r_e_c_t_i_o_n is negative,
- the search proceeds backward from _p_o_s, otherwise forward.
- Returns the absolute index of the history element where
- _s_t_r_i_n_g was found, or -1 otherwise.
-
-
- MMaannaaggiinngg tthhee HHiissttoorryy FFiillee
- The History library can read the history from and write it
- to a file. This section documents the functions for man-
- aging a history file.
-
- _i_n_t rreeaadd__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Add the contents of _f_i_l_e_n_a_m_e to the history list, a line
- at a time. If _f_i_l_e_n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_-
- _t_o_r_y. Returns 0 if successful, or eerrrrnnoo if not.
-
- _i_n_t rreeaadd__hhiissttoorryy__rraannggee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t _f_r_o_m_,
- _i_n_t _t_o)
- Read a range of lines from _f_i_l_e_n_a_m_e, adding them to the
- history list. Start reading at line _f_r_o_m and end at _t_o.
- If _f_r_o_m is zero, start at the beginning. If _t_o is less
- than _f_r_o_m, then read until the end of the file. If _f_i_l_e_-
- _n_a_m_e is NNUULLLL, then read from _~_/_._h_i_s_t_o_r_y. Returns 0 if
- successful, or eerrrrnnoo if not.
-
- _i_n_t wwrriittee__hhiissttoorryy (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Write the current history to _f_i_l_e_n_a_m_e, overwriting _f_i_l_e_-
- _n_a_m_e if necessary. If _f_i_l_e_n_a_m_e is NNUULLLL, then write the
- history list to _~_/_._h_i_s_t_o_r_y. Returns 0 on success, or
- eerrrrnnoo on a read or write error.
-
-
- _i_n_t aappppeenndd__hhiissttoorryy (_i_n_t _n_e_l_e_m_e_n_t_s_, _c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e)
- Append the last _n_e_l_e_m_e_n_t_s of the history list to _f_i_l_e_n_a_m_e.
- If _f_i_l_e_n_a_m_e is NNUULLLL, then append to _~_/_._h_i_s_t_o_r_y. Returns 0
- on success, or eerrrrnnoo on a read or write error.
-
- _i_n_t hhiissttoorryy__ttrruunnccaattee__ffiillee (_c_o_n_s_t _c_h_a_r _*_f_i_l_e_n_a_m_e_, _i_n_t
- _n_l_i_n_e_s)
- Truncate the history file _f_i_l_e_n_a_m_e, leaving only the last
- _n_l_i_n_e_s lines. If _f_i_l_e_n_a_m_e is NNUULLLL, then _~_/_._h_i_s_t_o_r_y is
-
-
-
-GNU History 4.3 2002 January 31 7
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- truncated. Returns 0 on success, or eerrrrnnoo on failure.
-
-
- HHiissttoorryy EExxppaannssiioonn
- These functions implement history expansion.
-
- _i_n_t hhiissttoorryy__eexxppaanndd (_c_h_a_r _*_s_t_r_i_n_g_, _c_h_a_r _*_*_o_u_t_p_u_t)
- Expand _s_t_r_i_n_g, placing the result into _o_u_t_p_u_t, a pointer
- to a string. Returns:
- 0 If no expansions took place (or, if the only
- change in the text was the removal of escape
- characters preceding the history expansion
- character);
- 1 if expansions did take place;
- -1 if there was an error in expansion;
- 2 if the returned line should be displayed,
- but not executed, as with the ::pp modifier.
- If an error ocurred in expansion, then _o_u_t_p_u_t contains a
- descriptive error message.
-
- _c_h_a_r _* ggeett__hhiissttoorryy__eevveenntt (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g_, _i_n_t _*_c_i_n_d_e_x_,
- _i_n_t _q_c_h_a_r)
- Returns the text of the history event beginning at _s_t_r_i_n_g
- + _*_c_i_n_d_e_x. _*_c_i_n_d_e_x is modified to point to after the
- event specifier. At function entry, _c_i_n_d_e_x points to the
- index into _s_t_r_i_n_g where the history event specification
- begins. _q_c_h_a_r is a character that is allowed to end the
- event specification in addition to the ``normal'' termi-
- nating characters.
-
- _c_h_a_r _*_* hhiissttoorryy__ttookkeenniizzee (_c_o_n_s_t _c_h_a_r _*_s_t_r_i_n_g)
- Return an array of tokens parsed out of _s_t_r_i_n_g, much as
- the shell might. The tokens are split on the characters
- in the hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss variable, and shell quoting
- conventions are obeyed.
-
- _c_h_a_r _* hhiissttoorryy__aarrgg__eexxttrraacctt (_i_n_t _f_i_r_s_t_, _i_n_t _l_a_s_t_, _c_o_n_s_t
- _c_h_a_r _*_s_t_r_i_n_g)
- Extract a string segment consisting of the _f_i_r_s_t through
- _l_a_s_t arguments present in _s_t_r_i_n_g. Arguments are split
- using hhiissttoorryy__ttookkeenniizzee(()).
-
-
- HHiissttoorryy VVaarriiaabblleess
- This section describes the externally-visible variables
- exported by the GNU History Library.
-
- _i_n_t hhiissttoorryy__bbaassee
- The logical offset of the first entry in the history list.
-
- _i_n_t hhiissttoorryy__lleennggtthh
- The number of entries currently stored in the history
- list.
-
-
-
-
-GNU History 4.3 2002 January 31 8
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
- _i_n_t hhiissttoorryy__mmaaxx__eennttrriieess
- The maximum number of history entries. This must be
- changed using ssttiiffllee__hhiissttoorryy(()).
-
- _c_h_a_r hhiissttoorryy__eexxppaannssiioonn__cchhaarr
- The character that introduces a history event. The
- default is !!. Setting this to 0 inhibits history expan-
- sion.
-
- _c_h_a_r hhiissttoorryy__ssuubbsstt__cchhaarr
- The character that invokes word substitution if found at
- the start of a line. The default is ^^.
-
- _c_h_a_r hhiissttoorryy__ccoommmmeenntt__cchhaarr
- During tokenization, if this character is seen as the
- first character of a word, then it and all subsequent
- characters up to a newline are ignored, suppressing his-
- tory expansion for the remainder of the line. This is
- disabled by default.
-
- _c_h_a_r _* hhiissttoorryy__wwoorrdd__ddeelliimmiitteerrss
- The characters that separate tokens for hhiissttoorryy__ttookk--
- eenniizzee(()). The default value is "" \\tt\\nn(())<<>>;;&&||"".
-
- _c_h_a_r _* hhiissttoorryy__nnoo__eexxppaanndd__cchhaarrss
- The list of characters which inhibit history expansion if
- found immediately following hhiissttoorryy__eexxppaannssiioonn__cchhaarr. The
- default is space, tab, newline, \\rr, and ==.
-
- _c_h_a_r _* hhiissttoorryy__sseeaarrcchh__ddeelliimmiitteerr__cchhaarrss
- The list of additional characters which can delimit a his-
- tory search string, in addition to space, tab, _: and _? in
- the case of a substring search. The default is empty.
-
- _i_n_t hhiissttoorryy__qquuootteess__iinnhhiibbiitt__eexxppaannssiioonn
- If non-zero, single-quoted words are not scanned for the
- history expansion character. The default value is 0.
-
- _r_l___l_i_n_e_b_u_f___f_u_n_c___t _* hhiissttoorryy__iinnhhiibbiitt__eexxppaannssiioonn__ffuunnccttiioonn
- This should be set to the address of a function that takes
- two arguments: a cchhaarr ** (_s_t_r_i_n_g) and an iinntt index into
- that string (_i). It should return a non-zero value if the
- history expansion starting at _s_t_r_i_n_g_[_i_] should not be per-
- formed; zero if the expansion should be done. It is
- intended for use by applications like bbaasshh that use the
- history expansion character for additional purposes. By
- default, this variable is set to NNUULLLL.
-
-FFIILLEESS
- _~_/_._h_i_s_t_o_r_y
- Default filename for reading and writing saved his-
- tory
-
-
-
-
-
-GNU History 4.3 2002 January 31 9
-
-
-
-
-
-HISTORY(3) HISTORY(3)
-
-
-SSEEEE AALLSSOO
- _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _b_a_s_h(1)
- _r_e_a_d_l_i_n_e(3)
-
-AAUUTTHHOORRSS
- Brian Fox, Free Software Foundation
- bfox@gnu.org
-
- Chet Ramey, Case Western Reserve University
- chet@ins.CWRU.Edu
-
-BBUUGG RREEPPOORRTTSS
- If you find a bug in the hhiissttoorryy library, you should
- report it. But first, you should make sure that it really
- is a bug, and that it appears in the latest version of the
- hhiissttoorryy library that you have.
-
- Once you have determined that a bug actually exists, mail
- a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix,
- you are welcome to mail that as well! Suggestions and
- `philosophical' bug reports may be mailed to _b_u_g_-_r_e_a_d_-
- _l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup
- ggnnuu..bbaasshh..bbuugg.
-
- Comments and bug reports concerning this manual page
- should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-GNU History 4.3 2002 January 31 10
-
-
diff --git a/readline-doc-4.3/doc/history.dvi b/readline-doc-4.3/doc/history.dvi
deleted file mode 100644
index bf7444e..0000000
--- a/readline-doc-4.3/doc/history.dvi
+++ /dev/null
Binary files differ
diff --git a/readline-doc-4.3/doc/history.html b/readline-doc-4.3/doc/history.html
deleted file mode 100644
index 5afe15b..0000000
--- a/readline-doc-4.3/doc/history.html
+++ /dev/null
@@ -1,1639 +0,0 @@
-<HTML>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on June, 27 2002 by texi2html 1.64 -->
-<!--
-Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
- Karl Berry <karl@freefriends.org>
- Olaf Bachmann <obachman@mathematik.uni-kl.de>
- and many others.
-Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
-Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-
--->
-<HEAD>
-<TITLE>GNU History Library: </TITLE>
-
-<META NAME="description" CONTENT="GNU History Library: ">
-<META NAME="keywords" CONTENT="GNU History Library: ">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="texi2html 1.64">
-
-</HEAD>
-
-<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
-
-<A NAME="SEC_Top"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>GNU History Library</H1></P><P>
-
-This document describes the GNU History library, a programming tool that
-provides a consistent user interface for recalling lines of previously
-typed input.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC1">1. Using History Interactively</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU History User's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC6">2. Programming with GNU History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU History Programmer's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC19">A. Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of concepts described in this manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC20">B. Function and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of externally visible functions
- and variables.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<HR SIZE=1>
-<A NAME="SEC1"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<A NAME="Using History Interactively"></A>
-<H1> 1. Using History Interactively </H1>
-<!--docid::SEC1::-->
-<P>
-
-This chapter describes how to use the GNU History Library interactively,
-from a user's standpoint. It should be considered a user's guide. For
-information on using the GNU History Library in your own programs,
-see section <A HREF="history.html#SEC6">2. Programming with GNU History</A>.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC2">1.1 History Expansion</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What it feels like using History as a user.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="History Interaction"></A>
-<HR SIZE="6">
-<A NAME="SEC2"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC1"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC3"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.1 History Expansion </H2>
-<!--docid::SEC2::-->
-<P>
-
-The History library provides a history expansion feature that is similar
-to the history expansion provided by <CODE>csh</CODE>. This section
-describes the syntax used to manipulate the history information.
-</P><P>
-
-History expansions introduce words from the history list into
-the input stream, making it easy to repeat commands, insert the
-arguments to a previous command into the current input line, or
-fix errors in previous commands quickly.
-</P><P>
-
-History expansion takes place in two parts. The first is to determine
-which line from the history list should be used during substitution.
-The second is to select portions of that line for inclusion into the
-current one. The line selected from the history is called the
-<EM>event</EM>, and the portions of that line that are acted upon are
-called <EM>words</EM>. Various <EM>modifiers</EM> are available to manipulate
-the selected words. The line is broken into words in the same fashion
-that Bash does, so that several words
-surrounded by quotes are considered one word.
-History expansions are introduced by the appearance of the
-history expansion character, which is <SAMP>`!'</SAMP> by default.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC3">1.1.1 Event Designators</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to specify which history line to use.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC4">1.1.2 Word Designators</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying which words are of interest.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC5">1.1.3 Modifiers</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Modifying the results of substitution.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Event Designators"></A>
-<HR SIZE="6">
-<A NAME="SEC3"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC4"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.1.1 Event Designators </H3>
-<!--docid::SEC3::-->
-<P>
-
-An event designator is a reference to a command line entry in the
-history list.
-<A NAME="IDX1"></A>
-</P><P>
-
-<DL COMPACT>
-
-<DT><CODE>!</CODE>
-<DD>Start a history substitution, except when followed by a space, tab,
-the end of the line, <SAMP>`='</SAMP> or <SAMP>`('</SAMP>.
-<P>
-
-<DT><CODE>!<VAR>n</VAR></CODE>
-<DD>Refer to command line <VAR>n</VAR>.
-<P>
-
-<DT><CODE>!-<VAR>n</VAR></CODE>
-<DD>Refer to the command <VAR>n</VAR> lines back.
-<P>
-
-<DT><CODE>!!</CODE>
-<DD>Refer to the previous command. This is a synonym for <SAMP>`!-1'</SAMP>.
-<P>
-
-<DT><CODE>!<VAR>string</VAR></CODE>
-<DD>Refer to the most recent command starting with <VAR>string</VAR>.
-<P>
-
-<DT><CODE>!?<VAR>string</VAR>[?]</CODE>
-<DD>Refer to the most recent command containing <VAR>string</VAR>. The trailing
-<SAMP>`?'</SAMP> may be omitted if the <VAR>string</VAR> is followed immediately by
-a newline.
-<P>
-
-<DT><CODE>^<VAR>string1</VAR>^<VAR>string2</VAR>^</CODE>
-<DD>Quick Substitution. Repeat the last command, replacing <VAR>string1</VAR>
-with <VAR>string2</VAR>. Equivalent to
-<CODE>!!:s/<VAR>string1</VAR>/<VAR>string2</VAR>/</CODE>.
-<P>
-
-<DT><CODE>!#</CODE>
-<DD>The entire command line typed so far.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Word Designators"></A>
-<HR SIZE="6">
-<A NAME="SEC4"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC3"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC5"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC5"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.1.2 Word Designators </H3>
-<!--docid::SEC4::-->
-<P>
-
-Word designators are used to select desired words from the event.
-A <SAMP>`:'</SAMP> separates the event specification from the word designator. It
-may be omitted if the word designator begins with a <SAMP>`^'</SAMP>, <SAMP>`$'</SAMP>,
-<SAMP>`*'</SAMP>, <SAMP>`-'</SAMP>, or <SAMP>`%'</SAMP>. Words are numbered from the beginning
-of the line, with the first word being denoted by 0 (zero). Words are
-inserted into the current line separated by single spaces.
-</P><P>
-
-For example,
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>!!</CODE>
-<DD>designates the preceding command. When you type this, the preceding
-command is repeated in toto.
-<P>
-
-<DT><CODE>!!:$</CODE>
-<DD>designates the last argument of the preceding command. This may be
-shortened to <CODE>!$</CODE>.
-<P>
-
-<DT><CODE>!fi:2</CODE>
-<DD>designates the second argument of the most recent command starting with
-the letters <CODE>fi</CODE>.
-</DL>
-<P>
-
-Here are the word designators:
-
-<DL COMPACT>
-
-<DT><CODE>0 (zero)</CODE>
-<DD>The <CODE>0</CODE>th word. For many applications, this is the command word.
-<P>
-
-<DT><CODE><VAR>n</VAR></CODE>
-<DD>The <VAR>n</VAR>th word.
-<P>
-
-<DT><CODE>^</CODE>
-<DD>The first argument; that is, word 1.
-<P>
-
-<DT><CODE>$</CODE>
-<DD>The last argument.
-<P>
-
-<DT><CODE>%</CODE>
-<DD>The word matched by the most recent <SAMP>`?<VAR>string</VAR>?'</SAMP> search.
-<P>
-
-<DT><CODE><VAR>x</VAR>-<VAR>y</VAR></CODE>
-<DD>A range of words; <SAMP>`-<VAR>y</VAR>'</SAMP> abbreviates <SAMP>`0-<VAR>y</VAR>'</SAMP>.
-<P>
-
-<DT><CODE>*</CODE>
-<DD>All of the words, except the <CODE>0</CODE>th. This is a synonym for <SAMP>`1-$'</SAMP>.
-It is not an error to use <SAMP>`*'</SAMP> if there is just one word in the event;
-the empty string is returned in that case.
-<P>
-
-<DT><CODE><VAR>x</VAR>*</CODE>
-<DD>Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP>
-<P>
-
-<DT><CODE><VAR>x</VAR>-</CODE>
-<DD>Abbreviates <SAMP>`<VAR>x</VAR>-$'</SAMP> like <SAMP>`<VAR>x</VAR>*'</SAMP>, but omits the last word.
-<P>
-
-</DL>
-<P>
-
-If a word designator is supplied without an event specification, the
-previous command is used as the event.
-</P><P>
-
-<A NAME="Modifiers"></A>
-<HR SIZE="6">
-<A NAME="SEC5"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC4"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC2"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.1.3 Modifiers </H3>
-<!--docid::SEC5::-->
-<P>
-
-After the optional word designator, you can add a sequence of one or more
-of the following modifiers, each preceded by a <SAMP>`:'</SAMP>.
-</P><P>
-
-<DL COMPACT>
-
-<DT><CODE>h</CODE>
-<DD>Remove a trailing pathname component, leaving only the head.
-<P>
-
-<DT><CODE>t</CODE>
-<DD>Remove all leading pathname components, leaving the tail.
-<P>
-
-<DT><CODE>r</CODE>
-<DD>Remove a trailing suffix of the form <SAMP>`.<VAR>suffix</VAR>'</SAMP>, leaving
-the basename.
-<P>
-
-<DT><CODE>e</CODE>
-<DD>Remove all but the trailing suffix.
-<P>
-
-<DT><CODE>p</CODE>
-<DD>Print the new command but do not execute it.
-<P>
-
-<DT><CODE>s/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>
-<DD>Substitute <VAR>new</VAR> for the first occurrence of <VAR>old</VAR> in the
-event line. Any delimiter may be used in place of <SAMP>`/'</SAMP>.
-The delimiter may be quoted in <VAR>old</VAR> and <VAR>new</VAR>
-with a single backslash. If <SAMP>`&#38;'</SAMP> appears in <VAR>new</VAR>,
-it is replaced by <VAR>old</VAR>. A single backslash will quote
-the <SAMP>`&#38;'</SAMP>. The final delimiter is optional if it is the last
-character on the input line.
-<P>
-
-<DT><CODE>&#38;</CODE>
-<DD>Repeat the previous substitution.
-<P>
-
-<DT><CODE>g</CODE>
-<DD>Cause changes to be applied over the entire event line. Used in
-conjunction with <SAMP>`s'</SAMP>, as in <CODE>gs/<VAR>old</VAR>/<VAR>new</VAR>/</CODE>,
-or with <SAMP>`&#38;'</SAMP>.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Programming with GNU History"></A>
-<HR SIZE="6">
-<A NAME="SEC6"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC5"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC7"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 2. Programming with GNU History </H1>
-<!--docid::SEC6::-->
-<P>
-
-This chapter describes how to interface programs that you write
-with the GNU History Library.
-It should be considered a technical guide.
-For information on the interactive use of GNU History, see section <A HREF="history.html#SEC1">1. Using History Interactively</A>.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC7">2.1 Introduction to History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">What is the GNU History library for?</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC8">2.2 History Storage</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How information is stored.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC9">2.3 History Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions that you can use.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC17">2.4 History Variables</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Variables that control behaviour.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC18">2.5 History Programming Example</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Example of using the GNU History Library.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Introduction to History"></A>
-<HR SIZE="6">
-<A NAME="SEC7"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC8"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.1 Introduction to History </H2>
-<!--docid::SEC7::-->
-<P>
-
-Many programs read input from the user a line at a time. The GNU
-History library is able to keep track of those lines, associate arbitrary
-data with each line, and utilize information from previous lines in
-composing new ones.
-</P><P>
-
-The programmer using the History library has available functions
-for remembering lines on a history list, associating arbitrary data
-with a line, removing lines from the list, searching through the list
-for a line containing an arbitrary text string, and referencing any line
-in the list directly. In addition, a history <EM>expansion</EM> function
-is available which provides for a consistent user interface across
-different programs.
-</P><P>
-
-The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are similar to
-the history substitution provided by <CODE>csh</CODE>.
-</P><P>
-
-If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-</P><P>
-
-Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file <CODE>&#60;readline/history.h&#62;</CODE> in any file that uses the
-History library's features. It supplies extern declarations for all
-of the library's public functions and variables, and declares all of
-the public data structures.
-</P><P>
-
-<A NAME="History Storage"></A>
-<HR SIZE="6">
-<A NAME="SEC8"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC7"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.2 History Storage </H2>
-<!--docid::SEC8::-->
-<P>
-
-The history list is an array of history entries. A history entry is
-declared as follows:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>typedef void *histdata_t;
-
-typedef struct _hist_entry {
- char *line;
- histdata_t data;
-} HIST_ENTRY;
-</pre></td></tr></table></P><P>
-
-The history list itself might therefore be declared as
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>HIST_ENTRY **the_history_list;
-</pre></td></tr></table></P><P>
-
-The state of the History library is encapsulated into a single structure:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>/*
- * A structure used to pass around the current state of the history.
- */
-typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
-} HISTORY_STATE;
-</pre></td></tr></table></P><P>
-
-If the flags member includes <CODE>HS_STIFLED</CODE>, the history has been
-stifled.
-</P><P>
-
-<A NAME="History Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC9"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC8"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC10"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.3 History Functions </H2>
-<!--docid::SEC9::-->
-<P>
-
-This section describes the calling sequence for the various functions
-exported by the GNU History library.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to call when you
- want to use history in a
- program.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions used to manage the list
- of history entries.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions returning information about
- the history list.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions used to change the position
- in the history list.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to search the history list
- for entries containing a string.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions that read and write a file
- containing the history list.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to perform csh-like history
- expansion.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Initializing History and State Management"></A>
-<HR SIZE="6">
-<A NAME="SEC10"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC11"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.1 Initializing History and State Management </H3>
-<!--docid::SEC10::-->
-<P>
-
-This section describes functions used to initialize and manage
-the state of the History library when you want to use the history
-functions in your program.
-</P><P>
-
-<A NAME="IDX2"></A>
-<DL>
-<DT><U>Function:</U> void <B>using_history</B> <I>(void)</I>
-<DD>Begin a session in which the history functions might be used. This
-initializes the interactive variables.
-</DL>
-</P><P>
-
-<A NAME="IDX3"></A>
-<DL>
-<DT><U>Function:</U> HISTORY_STATE * <B>history_get_history_state</B> <I>(void)</I>
-<DD>Return a structure describing the current state of the input history.
-</DL>
-</P><P>
-
-<A NAME="IDX4"></A>
-<DL>
-<DT><U>Function:</U> void <B>history_set_history_state</B> <I>(HISTORY_STATE *state)</I>
-<DD>Set the state of the history list according to <VAR>state</VAR>.
-</DL>
-</P><P>
-
-<A NAME="History List Management"></A>
-<HR SIZE="6">
-<A NAME="SEC11"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC10"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC12"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC12"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.2 History List Management </H3>
-<!--docid::SEC11::-->
-<P>
-
-These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-</P><P>
-
-<A NAME="IDX5"></A>
-<DL>
-<DT><U>Function:</U> void <B>add_history</B> <I>(const char *string)</I>
-<DD>Place <VAR>string</VAR> at the end of the history list. The associated data
-field (if any) is set to <CODE>NULL</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX6"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>remove_history</B> <I>(int which)</I>
-<DD>Remove history entry at offset <VAR>which</VAR> from the history. The
-removed element is returned so you can free the line, data,
-and containing structure.
-</DL>
-</P><P>
-
-<A NAME="IDX7"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>replace_history_entry</B> <I>(int which, const char *line, histdata_t data)</I>
-<DD>Make the history entry at offset <VAR>which</VAR> have <VAR>line</VAR> and <VAR>data</VAR>.
-This returns the old entry so you can dispose of the data. In the case
-of an invalid <VAR>which</VAR>, a <CODE>NULL</CODE> pointer is returned.
-</DL>
-</P><P>
-
-<A NAME="IDX8"></A>
-<DL>
-<DT><U>Function:</U> void <B>clear_history</B> <I>(void)</I>
-<DD>Clear the history list by deleting all the entries.
-</DL>
-</P><P>
-
-<A NAME="IDX9"></A>
-<DL>
-<DT><U>Function:</U> void <B>stifle_history</B> <I>(int max)</I>
-<DD>Stifle the history list, remembering only the last <VAR>max</VAR> entries.
-</DL>
-</P><P>
-
-<A NAME="IDX10"></A>
-<DL>
-<DT><U>Function:</U> int <B>unstifle_history</B> <I>(void)</I>
-<DD>Stop stifling the history. This returns the previously-set
-maximum number of history entries (as set by <CODE>stifle_history()</CODE>).
-The value is positive if the history was
-stifled, negative if it wasn't.
-</DL>
-</P><P>
-
-<A NAME="IDX11"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_is_stifled</B> <I>(void)</I>
-<DD>Returns non-zero if the history is stifled, zero if it is not.
-</DL>
-</P><P>
-
-<A NAME="Information About the History List"></A>
-<HR SIZE="6">
-<A NAME="SEC12"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC11"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC13"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.3 Information About the History List </H3>
-<!--docid::SEC12::-->
-<P>
-
-These functions return information about the entire history list or
-individual list entries.
-</P><P>
-
-<A NAME="IDX12"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY ** <B>history_list</B> <I>(void)</I>
-<DD>Return a <CODE>NULL</CODE> terminated array of <CODE>HIST_ENTRY *</CODE> which is the
-current input history. Element 0 of this list is the beginning of time.
-If there is no history, return <CODE>NULL</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX13"></A>
-<DL>
-<DT><U>Function:</U> int <B>where_history</B> <I>(void)</I>
-<DD>Returns the offset of the current history element.
-</DL>
-</P><P>
-
-<A NAME="IDX14"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>current_history</B> <I>(void)</I>
-<DD>Return the history entry at the current position, as determined by
-<CODE>where_history()</CODE>. If there is no entry there, return a <CODE>NULL</CODE>
-pointer.
-</DL>
-</P><P>
-
-<A NAME="IDX15"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>history_get</B> <I>(int offset)</I>
-<DD>Return the history entry at position <VAR>offset</VAR>, starting from
-<CODE>history_base</CODE> (see section <A HREF="history.html#SEC17">2.4 History Variables</A>).
-If there is no entry there, or if <VAR>offset</VAR>
-is greater than the history length, return a <CODE>NULL</CODE> pointer.
-</DL>
-</P><P>
-
-<A NAME="IDX16"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_total_bytes</B> <I>(void)</I>
-<DD>Return the number of bytes that the primary history entries are using.
-This function returns the sum of the lengths of all the lines in the
-history.
-</DL>
-</P><P>
-
-<A NAME="Moving Around the History List"></A>
-<HR SIZE="6">
-<A NAME="SEC13"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC12"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC14"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC14"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.4 Moving Around the History List </H3>
-<!--docid::SEC13::-->
-<P>
-
-These functions allow the current index into the history list to be
-set or changed.
-</P><P>
-
-<A NAME="IDX17"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_set_pos</B> <I>(int pos)</I>
-<DD>Set the current history offset to <VAR>pos</VAR>, an absolute index
-into the list.
-Returns 1 on success, 0 if <VAR>pos</VAR> is less than zero or greater
-than the number of history entries.
-</DL>
-</P><P>
-
-<A NAME="IDX18"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>previous_history</B> <I>(void)</I>
-<DD>Back up the current history offset to the previous history entry, and
-return a pointer to that entry. If there is no previous entry, return
-a <CODE>NULL</CODE> pointer.
-</DL>
-</P><P>
-
-<A NAME="IDX19"></A>
-<DL>
-<DT><U>Function:</U> HIST_ENTRY * <B>next_history</B> <I>(void)</I>
-<DD>Move the current history offset forward to the next history entry, and
-return the a pointer to that entry. If there is no next entry, return
-a <CODE>NULL</CODE> pointer.
-</DL>
-</P><P>
-
-<A NAME="Searching the History List"></A>
-<HR SIZE="6">
-<A NAME="SEC14"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC13"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC15"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC15"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.5 Searching the History List </H3>
-<!--docid::SEC14::-->
-<P>
-
-These functions allow searching of the history list for entries containing
-a specific string. Searching may be performed both forward and backward
-from the current history position. The search may be <EM>anchored</EM>,
-meaning that the string must match at the beginning of the history entry.
-<A NAME="IDX20"></A>
-</P><P>
-
-<A NAME="IDX21"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_search</B> <I>(const char *string, int direction)</I>
-<DD>Search the history for <VAR>string</VAR>, starting at the current history offset.
-If <VAR>direction</VAR> is less than 0, then the search is through
-previous entries, otherwise through subsequent entries.
-If <VAR>string</VAR> is found, then
-the current history index is set to that history entry, and the value
-returned is the offset in the line of the entry where
-<VAR>string</VAR> was found. Otherwise, nothing is changed, and a -1 is
-returned.
-</DL>
-</P><P>
-
-<A NAME="IDX22"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_search_prefix</B> <I>(const char *string, int direction)</I>
-<DD>Search the history for <VAR>string</VAR>, starting at the current history
-offset. The search is anchored: matching lines must begin with
-<VAR>string</VAR>. If <VAR>direction</VAR> is less than 0, then the search is
-through previous entries, otherwise through subsequent entries.
-If <VAR>string</VAR> is found, then the
-current history index is set to that entry, and the return value is 0.
-Otherwise, nothing is changed, and a -1 is returned.
-</DL>
-</P><P>
-
-<A NAME="IDX23"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_search_pos</B> <I>(const char *string, int direction, int pos)</I>
-<DD>Search for <VAR>string</VAR> in the history list, starting at <VAR>pos</VAR>, an
-absolute index into the list. If <VAR>direction</VAR> is negative, the search
-proceeds backward from <VAR>pos</VAR>, otherwise forward. Returns the absolute
-index of the history element where <VAR>string</VAR> was found, or -1 otherwise.
-</DL>
-</P><P>
-
-<A NAME="Managing the History File"></A>
-<HR SIZE="6">
-<A NAME="SEC15"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC14"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC16"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC16"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.6 Managing the History File </H3>
-<!--docid::SEC15::-->
-<P>
-
-The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-</P><P>
-
-<A NAME="IDX24"></A>
-<DL>
-<DT><U>Function:</U> int <B>read_history</B> <I>(const char *filename)</I>
-<DD>Add the contents of <VAR>filename</VAR> to the history list, a line at a time.
-If <VAR>filename</VAR> is <CODE>NULL</CODE>, then read from <TT>`~/.history'</TT>.
-Returns 0 if successful, or <CODE>errno</CODE> if not.
-</DL>
-</P><P>
-
-<A NAME="IDX25"></A>
-<DL>
-<DT><U>Function:</U> int <B>read_history_range</B> <I>(const char *filename, int from, int to)</I>
-<DD>Read a range of lines from <VAR>filename</VAR>, adding them to the history list.
-Start reading at line <VAR>from</VAR> and end at <VAR>to</VAR>.
-If <VAR>from</VAR> is zero, start at the beginning. If <VAR>to</VAR> is less than
-<VAR>from</VAR>, then read until the end of the file. If <VAR>filename</VAR> is
-<CODE>NULL</CODE>, then read from <TT>`~/.history'</TT>. Returns 0 if successful,
-or <CODE>errno</CODE> if not.
-</DL>
-</P><P>
-
-<A NAME="IDX26"></A>
-<DL>
-<DT><U>Function:</U> int <B>write_history</B> <I>(const char *filename)</I>
-<DD>Write the current history to <VAR>filename</VAR>, overwriting <VAR>filename</VAR>
-if necessary.
-If <VAR>filename</VAR> is <CODE>NULL</CODE>, then write the history list to
-<TT>`~/.history'</TT>.
-Returns 0 on success, or <CODE>errno</CODE> on a read or write error.
-</DL>
-</P><P>
-
-<A NAME="IDX27"></A>
-<DL>
-<DT><U>Function:</U> int <B>append_history</B> <I>(int nelements, const char *filename)</I>
-<DD>Append the last <VAR>nelements</VAR> of the history list to <VAR>filename</VAR>.
-If <VAR>filename</VAR> is <CODE>NULL</CODE>, then append to <TT>`~/.history'</TT>.
-Returns 0 on success, or <CODE>errno</CODE> on a read or write error.
-</DL>
-</P><P>
-
-<A NAME="IDX28"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_truncate_file</B> <I>(const char *filename, int nlines)</I>
-<DD>Truncate the history file <VAR>filename</VAR>, leaving only the last
-<VAR>nlines</VAR> lines.
-If <VAR>filename</VAR> is <CODE>NULL</CODE>, then <TT>`~/.history'</TT> is truncated.
-Returns 0 on success, or <CODE>errno</CODE> on failure.
-</DL>
-</P><P>
-
-<A NAME="History Expansion"></A>
-<HR SIZE="6">
-<A NAME="SEC16"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC15"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.3.7 History Expansion </H3>
-<!--docid::SEC16::-->
-<P>
-
-These functions implement history expansion.
-</P><P>
-
-<A NAME="IDX29"></A>
-<DL>
-<DT><U>Function:</U> int <B>history_expand</B> <I>(char *string, char **output)</I>
-<DD>Expand <VAR>string</VAR>, placing the result into <VAR>output</VAR>, a pointer
-to a string (see section <A HREF="history.html#SEC2">1.1 History Expansion</A>). Returns:
-<DL COMPACT>
-<DT><CODE>0</CODE>
-<DD>If no expansions took place (or, if the only change in
-the text was the removal of escape characters preceding the history expansion
-character);
-<DT><CODE>1</CODE>
-<DD>if expansions did take place;
-<DT><CODE>-1</CODE>
-<DD>if there was an error in expansion;
-<DT><CODE>2</CODE>
-<DD>if the returned line should be displayed, but not executed,
-as with the <CODE>:p</CODE> modifier (see section <A HREF="history.html#SEC5">1.1.3 Modifiers</A>).
-</DL>
-<P>
-
-If an error ocurred in expansion, then <VAR>output</VAR> contains a descriptive
-error message.
-</DL>
-</P><P>
-
-<A NAME="IDX30"></A>
-<DL>
-<DT><U>Function:</U> char * <B>get_history_event</B> <I>(const char *string, int *cindex, int qchar)</I>
-<DD>Returns the text of the history event beginning at <VAR>string</VAR> +
-<VAR>*cindex</VAR>. <VAR>*cindex</VAR> is modified to point to after the event
-specifier. At function entry, <VAR>cindex</VAR> points to the index into
-<VAR>string</VAR> where the history event specification begins. <VAR>qchar</VAR>
-is a character that is allowed to end the event specification in addition
-to the "normal" terminating characters.
-</DL>
-</P><P>
-
-<A NAME="IDX31"></A>
-<DL>
-<DT><U>Function:</U> char ** <B>history_tokenize</B> <I>(const char *string)</I>
-<DD>Return an array of tokens parsed out of <VAR>string</VAR>, much as the
-shell might. The tokens are split on the characters in the
-<VAR>history_word_delimiters</VAR> variable,
-and shell quoting conventions are obeyed.
-</DL>
-</P><P>
-
-<A NAME="IDX32"></A>
-<DL>
-<DT><U>Function:</U> char * <B>history_arg_extract</B> <I>(int first, int last, const char *string)</I>
-<DD>Extract a string segment consisting of the <VAR>first</VAR> through <VAR>last</VAR>
-arguments present in <VAR>string</VAR>. Arguments are split using
-<CODE>history_tokenize</CODE>.
-</DL>
-</P><P>
-
-<A NAME="History Variables"></A>
-<HR SIZE="6">
-<A NAME="SEC17"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC16"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC18"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC18"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.4 History Variables </H2>
-<!--docid::SEC17::-->
-<P>
-
-This section describes the externally-visible variables exported by
-the GNU History Library.
-</P><P>
-
-<A NAME="IDX33"></A>
-<DL>
-<DT><U>Variable:</U> int <B>history_base</B>
-<DD>The logical offset of the first entry in the history list.
-</DL>
-</P><P>
-
-<A NAME="IDX34"></A>
-<DL>
-<DT><U>Variable:</U> int <B>history_length</B>
-<DD>The number of entries currently stored in the history list.
-</DL>
-</P><P>
-
-<A NAME="IDX35"></A>
-<DL>
-<DT><U>Variable:</U> int <B>history_max_entries</B>
-<DD>The maximum number of history entries. This must be changed using
-<CODE>stifle_history()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX36"></A>
-<DL>
-<DT><U>Variable:</U> char <B>history_expansion_char</B>
-<DD>The character that introduces a history event. The default is <SAMP>`!'</SAMP>.
-Setting this to 0 inhibits history expansion.
-</DL>
-</P><P>
-
-<A NAME="IDX37"></A>
-<DL>
-<DT><U>Variable:</U> char <B>history_subst_char</B>
-<DD>The character that invokes word substitution if found at the start of
-a line. The default is <SAMP>`^'</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX38"></A>
-<DL>
-<DT><U>Variable:</U> char <B>history_comment_char</B>
-<DD>During tokenization, if this character is seen as the first character
-of a word, then it and all subsequent characters up to a newline are
-ignored, suppressing history expansion for the remainder of the line.
-This is disabled by default.
-</DL>
-</P><P>
-
-<A NAME="IDX39"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>history_word_delimiters</B>
-<DD>The characters that separate tokens for <CODE>history_tokenize()</CODE>.
-The default value is <CODE>" \t\n()<>;&|"</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX40"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>history_no_expand_chars</B>
-<DD>The list of characters which inhibit history expansion if found immediately
-following <VAR>history_expansion_char</VAR>. The default is space, tab, newline,
-carriage return, and <SAMP>`='</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX41"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>history_search_delimiter_chars</B>
-<DD>The list of additional characters which can delimit a history search
-string, in addition to space, TAB, <SAMP>`:'</SAMP> and <SAMP>`?'</SAMP> in the case of
-a substring search. The default is empty.
-</DL>
-</P><P>
-
-<A NAME="IDX42"></A>
-<DL>
-<DT><U>Variable:</U> int <B>history_quotes_inhibit_expansion</B>
-<DD>If non-zero, single-quoted words are not scanned for the history expansion
-character. The default value is 0.
-</DL>
-</P><P>
-
-<A NAME="IDX43"></A>
-<DL>
-<DT><U>Variable:</U> rl_linebuf_func_t * <B>history_inhibit_expansion_function</B>
-<DD>This should be set to the address of a function that takes two arguments:
-a <CODE>char *</CODE> (<VAR>string</VAR>)
-and an <CODE>int</CODE> index into that string (<VAR>i</VAR>).
-It should return a non-zero value if the history expansion starting at
-<VAR>string[i]</VAR> should not be performed; zero if the expansion should
-be done.
-It is intended for use by applications like Bash that use the history
-expansion character for additional purposes.
-By default, this variable is set to <CODE>NULL</CODE>.
-</DL>
-</P><P>
-
-<A NAME="History Programming Example"></A>
-<HR SIZE="6">
-<A NAME="SEC18"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC17"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.5 History Programming Example </H2>
-<!--docid::SEC18::-->
-<P>
-
-The following program demonstrates simple use of the GNU History Library.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre>#include &#60;stdio.h&#62;
-#include &#60;readline/history.h&#62;
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char line[1024], *t;
- int len, done = 0;
-
- line[0] = 0;
-
- using_history ();
- while (!done)
- {
- printf ("history$ ");
- fflush (stdout);
- t = fgets (line, sizeof (line) - 1, stdin);
- if (t &#38;&#38; *t)
- {
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- }
-
- if (!t)
- strcpy (line, "quit");
-
- if (line[0])
- {
- char *expansion;
- int result;
-
- result = history_expand (line, &#38;expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
-
- if (result &#60; 0 || result == 2)
- {
- free (expansion);
- continue;
- }
-
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- }
-
- if (strcmp (line, "quit") == 0)
- done = 1;
- else if (strcmp (line, "save") == 0)
- write_history ("history_file");
- else if (strcmp (line, "read") == 0)
- read_history ("history_file");
- else if (strcmp (line, "list") == 0)
- {
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]-&#62;line);
- }
- else if (strncmp (line, "delete", 6) == 0)
- {
- int which;
- if ((sscanf (line + 6, "%d", &#38;which)) == 1)
- {
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- {
- free (entry-&#62;line);
- free (entry);
- }
- }
- else
- {
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- }
- }
- }
-}
-</FONT></pre></td></tr></table></P><P>
-
-<A NAME="Concept Index"></A>
-<HR SIZE="6">
-<A NAME="SEC19"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC18"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC20"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC6"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC20"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> A. Concept Index </H1>
-<!--docid::SEC19::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#cp_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="history.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="history.html#cp_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX20">anchored search</A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#SEC3">event designators</A></TD><TD valign=top><A HREF="history.html#SEC3">1.1.1 Event Designators</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX1">history events</A></TD><TD valign=top><A HREF="history.html#SEC3">1.1.1 Event Designators</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#SEC2">history expansion</A></TD><TD valign=top><A HREF="history.html#SEC2">1.1 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#SEC14">History Searching</A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#cp_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="history.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="history.html#cp_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-</td></tr></table><br><P>
-
-<A NAME="Function and Variable Index"></A>
-<HR SIZE="6">
-<A NAME="SEC20"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> B. Function and Variable Index </H1>
-<!--docid::SEC20::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#vr_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="history.html#vr_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="history.html#vr_G" style="text-decoration:none"><b>G</b></A>
- &nbsp;
-<A HREF="history.html#vr_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-<A HREF="history.html#vr_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="history.html#vr_P" style="text-decoration:none"><b>P</b></A>
- &nbsp;
-<A HREF="history.html#vr_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="history.html#vr_S" style="text-decoration:none"><b>S</b></A>
- &nbsp;
-<A HREF="history.html#vr_U" style="text-decoration:none"><b>U</b></A>
- &nbsp;
-<A HREF="history.html#vr_W" style="text-decoration:none"><b>W</b></A>
- &nbsp;
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX5"><CODE>add_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX27"><CODE>append_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX8"><CODE>clear_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX14"><CODE>current_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_G"></A>G</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX30"><CODE>get_history_event</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX32"><CODE>history_arg_extract</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX33"><CODE>history_base</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX38"><CODE>history_comment_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX29"><CODE>history_expand</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX36"><CODE>history_expansion_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX15"><CODE>history_get</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX3"><CODE>history_get_history_state</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX43"><CODE>history_inhibit_expansion_function</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX11"><CODE>history_is_stifled</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX34"><CODE>history_length</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX12"><CODE>history_list</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX35"><CODE>history_max_entries</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX40"><CODE>history_no_expand_chars</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX42"><CODE>history_quotes_inhibit_expansion</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX21"><CODE>history_search</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX41"><CODE>history_search_delimiter_chars</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX23"><CODE>history_search_pos</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX22"><CODE>history_search_prefix</CODE></A></TD><TD valign=top><A HREF="history.html#SEC14">2.3.5 Searching the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX4"><CODE>history_set_history_state</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX17"><CODE>history_set_pos</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX37"><CODE>history_subst_char</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX31"><CODE>history_tokenize</CODE></A></TD><TD valign=top><A HREF="history.html#SEC16">2.3.7 History Expansion</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX16"><CODE>history_total_bytes</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX28"><CODE>history_truncate_file</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX39"><CODE>history_word_delimiters</CODE></A></TD><TD valign=top><A HREF="history.html#SEC17">2.4 History Variables</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX19"><CODE>next_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX18"><CODE>previous_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC13">2.3.4 Moving Around the History List</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX24"><CODE>read_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX25"><CODE>read_history_range</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX6"><CODE>remove_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX7"><CODE>replace_history_entry</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX9"><CODE>stifle_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX10"><CODE>unstifle_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC11">2.3.2 History List Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX2"><CODE>using_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="vr_W"></A>W</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX13"><CODE>where_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC12">2.3.3 Information About the History List</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="history.html#IDX26"><CODE>write_history</CODE></A></TD><TD valign=top><A HREF="history.html#SEC15">2.3.6 Managing the History File</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="history.html#vr_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="history.html#vr_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="history.html#vr_G" style="text-decoration:none"><b>G</b></A>
- &nbsp;
-<A HREF="history.html#vr_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-<A HREF="history.html#vr_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="history.html#vr_P" style="text-decoration:none"><b>P</b></A>
- &nbsp;
-<A HREF="history.html#vr_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="history.html#vr_S" style="text-decoration:none"><b>S</b></A>
- &nbsp;
-<A HREF="history.html#vr_U" style="text-decoration:none"><b>U</b></A>
- &nbsp;
-<A HREF="history.html#vr_W" style="text-decoration:none"><b>W</b></A>
- &nbsp;
-</td></tr></table><br><P>
-
-<HR SIZE="6">
-<A NAME="SEC_Contents"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Table of Contents</H1>
-<UL>
-<A NAME="TOC1" HREF="history.html#SEC1">1. Using History Interactively</A>
-<BR>
-<UL>
-<A NAME="TOC2" HREF="history.html#SEC2">1.1 History Expansion</A>
-<BR>
-<UL>
-<A NAME="TOC3" HREF="history.html#SEC3">1.1.1 Event Designators</A>
-<BR>
-<A NAME="TOC4" HREF="history.html#SEC4">1.1.2 Word Designators</A>
-<BR>
-<A NAME="TOC5" HREF="history.html#SEC5">1.1.3 Modifiers</A>
-<BR>
-</UL>
-</UL>
-<A NAME="TOC6" HREF="history.html#SEC6">2. Programming with GNU History</A>
-<BR>
-<UL>
-<A NAME="TOC7" HREF="history.html#SEC7">2.1 Introduction to History</A>
-<BR>
-<A NAME="TOC8" HREF="history.html#SEC8">2.2 History Storage</A>
-<BR>
-<A NAME="TOC9" HREF="history.html#SEC9">2.3 History Functions</A>
-<BR>
-<UL>
-<A NAME="TOC10" HREF="history.html#SEC10">2.3.1 Initializing History and State Management</A>
-<BR>
-<A NAME="TOC11" HREF="history.html#SEC11">2.3.2 History List Management</A>
-<BR>
-<A NAME="TOC12" HREF="history.html#SEC12">2.3.3 Information About the History List</A>
-<BR>
-<A NAME="TOC13" HREF="history.html#SEC13">2.3.4 Moving Around the History List</A>
-<BR>
-<A NAME="TOC14" HREF="history.html#SEC14">2.3.5 Searching the History List</A>
-<BR>
-<A NAME="TOC15" HREF="history.html#SEC15">2.3.6 Managing the History File</A>
-<BR>
-<A NAME="TOC16" HREF="history.html#SEC16">2.3.7 History Expansion</A>
-<BR>
-</UL>
-<A NAME="TOC17" HREF="history.html#SEC17">2.4 History Variables</A>
-<BR>
-<A NAME="TOC18" HREF="history.html#SEC18">2.5 History Programming Example</A>
-<BR>
-</UL>
-<A NAME="TOC19" HREF="history.html#SEC19">A. Concept Index</A>
-<BR>
-<A NAME="TOC20" HREF="history.html#SEC20">B. Function and Variable Index</A>
-<BR>
-</UL>
-<HR SIZE=1>
-<A NAME="SEC_OVERVIEW"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Short Table of Contents</H1>
-<BLOCKQUOTE>
-<A NAME="TOC1" HREF="history.html#SEC1">1. Using History Interactively</A>
-<BR>
-<A NAME="TOC6" HREF="history.html#SEC6">2. Programming with GNU History</A>
-<BR>
-<A NAME="TOC19" HREF="history.html#SEC19">A. Concept Index</A>
-<BR>
-<A NAME="TOC20" HREF="history.html#SEC20">B. Function and Variable Index</A>
-<BR>
-
-</BLOCKQUOTE>
-<HR SIZE=1>
-<A NAME="SEC_About"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC19">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="history.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-<P></P>
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt; ] </TD>
-<TD ALIGN="CENTER">
-Back
-</TD>
-<TD>
-previous section in reading order
-</TD>
-<TD>
-1.2.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt; ] </TD>
-<TD ALIGN="CENTER">
-Forward
-</TD>
-<TD>
-next section in reading order
-</TD>
-<TD>
-1.2.4
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt;&lt; ] </TD>
-<TD ALIGN="CENTER">
-FastBack
-</TD>
-<TD>
-previous or up-and-previous section
-</TD>
-<TD>
-1.1
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ Up ] </TD>
-<TD ALIGN="CENTER">
-Up
-</TD>
-<TD>
-up section
-</TD>
-<TD>
-1.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt;&gt; ] </TD>
-<TD ALIGN="CENTER">
-FastForward
-</TD>
-<TD>
-next or up-and-next section
-</TD>
-<TD>
-1.3
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Top] </TD>
-<TD ALIGN="CENTER">
-Top
-</TD>
-<TD>
-cover (top) of document
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Contents] </TD>
-<TD ALIGN="CENTER">
-Contents
-</TD>
-<TD>
-table of contents
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Index] </TD>
-<TD ALIGN="CENTER">
-Index
-</TD>
-<TD>
-concept index
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ ? ] </TD>
-<TD ALIGN="CENTER">
-About
-</TD>
-<TD>
-this page
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
-the following structure:
-<UL>
-<LI> 1. Section One </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-
-<HR SIZE=1>
-<BR>
-<FONT SIZE="-1">
-This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-
-</BODY>
-</HTML>
diff --git a/readline-doc-4.3/doc/history.info b/readline-doc-4.3/doc/history.info
deleted file mode 100644
index 98c0002..0000000
--- a/readline-doc-4.3/doc/history.info
+++ /dev/null
@@ -1,840 +0,0 @@
-This is history.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/hist.texinfo.
-
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* History: (history). The GNU history library API
-END-INFO-DIR-ENTRY
-
- This document describes the GNU History library, a programming tool
-that provides a consistent user interface for recalling lines of
-previously typed input.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice pare
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
-
-
-File: history.info, Node: Top, Next: Using History Interactively, Up: (dir)
-
-GNU History Library
-*******************
-
- This document describes the GNU History library, a programming tool
-that provides a consistent user interface for recalling lines of
-previously typed input.
-
-* Menu:
-
-* Using History Interactively:: GNU History User's Manual.
-* Programming with GNU History:: GNU History Programmer's Manual.
-* Concept Index:: Index of concepts described in this manual.
-* Function and Variable Index:: Index of externally visible functions
- and variables.
-
-
-File: history.info, Node: Using History Interactively, Next: Programming with GNU History, Prev: Top, Up: Top
-
-Using History Interactively
-***************************
-
- This chapter describes how to use the GNU History Library
-interactively, from a user's standpoint. It should be considered a
-user's guide. For information on using the GNU History Library in your
-own programs, *note Programming with GNU History::.
-
-* Menu:
-
-* History Interaction:: What it feels like using History as a user.
-
-
-File: history.info, Node: History Interaction, Up: Using History Interactively
-
-History Expansion
-=================
-
- The History library provides a history expansion feature that is
-similar to the history expansion provided by `csh'. This section
-describes the syntax used to manipulate the history information.
-
- History expansions introduce words from the history list into the
-input stream, making it easy to repeat commands, insert the arguments
-to a previous command into the current input line, or fix errors in
-previous commands quickly.
-
- History expansion takes place in two parts. The first is to
-determine which line from the history list should be used during
-substitution. The second is to select portions of that line for
-inclusion into the current one. The line selected from the history is
-called the "event", and the portions of that line that are acted upon
-are called "words". Various "modifiers" are available to manipulate
-the selected words. The line is broken into words in the same fashion
-that Bash does, so that several words surrounded by quotes are
-considered one word. History expansions are introduced by the
-appearance of the history expansion character, which is `!' by default.
-
-* Menu:
-
-* Event Designators:: How to specify which history line to use.
-* Word Designators:: Specifying which words are of interest.
-* Modifiers:: Modifying the results of substitution.
-
-
-File: history.info, Node: Event Designators, Next: Word Designators, Up: History Interaction
-
-Event Designators
------------------
-
- An event designator is a reference to a command line entry in the
-history list.
-
-`!'
- Start a history substitution, except when followed by a space, tab,
- the end of the line, `=' or `('.
-
-`!N'
- Refer to command line N.
-
-`!-N'
- Refer to the command N lines back.
-
-`!!'
- Refer to the previous command. This is a synonym for `!-1'.
-
-`!STRING'
- Refer to the most recent command starting with STRING.
-
-`!?STRING[?]'
- Refer to the most recent command containing STRING. The trailing
- `?' may be omitted if the STRING is followed immediately by a
- newline.
-
-`^STRING1^STRING2^'
- Quick Substitution. Repeat the last command, replacing STRING1
- with STRING2. Equivalent to `!!:s/STRING1/STRING2/'.
-
-`!#'
- The entire command line typed so far.
-
-
-File: history.info, Node: Word Designators, Next: Modifiers, Prev: Event Designators, Up: History Interaction
-
-Word Designators
-----------------
-
- Word designators are used to select desired words from the event. A
-`:' separates the event specification from the word designator. It may
-be omitted if the word designator begins with a `^', `$', `*', `-', or
-`%'. Words are numbered from the beginning of the line, with the first
-word being denoted by 0 (zero). Words are inserted into the current
-line separated by single spaces.
-
- For example,
-
-`!!'
- designates the preceding command. When you type this, the
- preceding command is repeated in toto.
-
-`!!:$'
- designates the last argument of the preceding command. This may be
- shortened to `!$'.
-
-`!fi:2'
- designates the second argument of the most recent command starting
- with the letters `fi'.
-
- Here are the word designators:
-
-`0 (zero)'
- The `0'th word. For many applications, this is the command word.
-
-`N'
- The Nth word.
-
-`^'
- The first argument; that is, word 1.
-
-`$'
- The last argument.
-
-`%'
- The word matched by the most recent `?STRING?' search.
-
-`X-Y'
- A range of words; `-Y' abbreviates `0-Y'.
-
-`*'
- All of the words, except the `0'th. This is a synonym for `1-$'.
- It is not an error to use `*' if there is just one word in the
- event; the empty string is returned in that case.
-
-`X*'
- Abbreviates `X-$'
-
-`X-'
- Abbreviates `X-$' like `X*', but omits the last word.
-
- If a word designator is supplied without an event specification, the
-previous command is used as the event.
-
-
-File: history.info, Node: Modifiers, Prev: Word Designators, Up: History Interaction
-
-Modifiers
----------
-
- After the optional word designator, you can add a sequence of one or
-more of the following modifiers, each preceded by a `:'.
-
-`h'
- Remove a trailing pathname component, leaving only the head.
-
-`t'
- Remove all leading pathname components, leaving the tail.
-
-`r'
- Remove a trailing suffix of the form `.SUFFIX', leaving the
- basename.
-
-`e'
- Remove all but the trailing suffix.
-
-`p'
- Print the new command but do not execute it.
-
-`s/OLD/NEW/'
- Substitute NEW for the first occurrence of OLD in the event line.
- Any delimiter may be used in place of `/'. The delimiter may be
- quoted in OLD and NEW with a single backslash. If `&' appears in
- NEW, it is replaced by OLD. A single backslash will quote the
- `&'. The final delimiter is optional if it is the last character
- on the input line.
-
-`&'
- Repeat the previous substitution.
-
-`g'
- Cause changes to be applied over the entire event line. Used in
- conjunction with `s', as in `gs/OLD/NEW/', or with `&'.
-
-
-File: history.info, Node: Programming with GNU History, Next: Concept Index, Prev: Using History Interactively, Up: Top
-
-Programming with GNU History
-****************************
-
- This chapter describes how to interface programs that you write with
-the GNU History Library. It should be considered a technical guide.
-For information on the interactive use of GNU History, *note Using
-History Interactively::.
-
-* Menu:
-
-* Introduction to History:: What is the GNU History library for?
-* History Storage:: How information is stored.
-* History Functions:: Functions that you can use.
-* History Variables:: Variables that control behaviour.
-* History Programming Example:: Example of using the GNU History Library.
-
-
-File: history.info, Node: Introduction to History, Next: History Storage, Up: Programming with GNU History
-
-Introduction to History
-=======================
-
- Many programs read input from the user a line at a time. The GNU
-History library is able to keep track of those lines, associate
-arbitrary data with each line, and utilize information from previous
-lines in composing new ones.
-
- The programmer using the History library has available functions for
-remembering lines on a history list, associating arbitrary data with a
-line, removing lines from the list, searching through the list for a
-line containing an arbitrary text string, and referencing any line in
-the list directly. In addition, a history "expansion" function is
-available which provides for a consistent user interface across
-different programs.
-
- The user using programs written with the History library has the
-benefit of a consistent user interface with a set of well-known
-commands for manipulating the text of previous lines and using that text
-in new commands. The basic history manipulation commands are similar to
-the history substitution provided by `csh'.
-
- If the programmer desires, he can use the Readline library, which
-includes some history manipulation by default, and has the added
-advantage of command line editing.
-
- Before declaring any functions using any functionality the History
-library provides in other code, an application writer should include
-the file `<readline/history.h>' in any file that uses the History
-library's features. It supplies extern declarations for all of the
-library's public functions and variables, and declares all of the
-public data structures.
-
-
-File: history.info, Node: History Storage, Next: History Functions, Prev: Introduction to History, Up: Programming with GNU History
-
-History Storage
-===============
-
- The history list is an array of history entries. A history entry is
-declared as follows:
-
- typedef void *histdata_t;
-
- typedef struct _hist_entry {
- char *line;
- histdata_t data;
- } HIST_ENTRY;
-
- The history list itself might therefore be declared as
-
- HIST_ENTRY **the_history_list;
-
- The state of the History library is encapsulated into a single
-structure:
-
- /*
- * A structure used to pass around the current state of the history.
- */
- typedef struct _hist_state {
- HIST_ENTRY **entries; /* Pointer to the entries themselves. */
- int offset; /* The location pointer within this array. */
- int length; /* Number of elements within this array. */
- int size; /* Number of slots allocated to this array. */
- int flags;
- } HISTORY_STATE;
-
- If the flags member includes `HS_STIFLED', the history has been
-stifled.
-
-
-File: history.info, Node: History Functions, Next: History Variables, Prev: History Storage, Up: Programming with GNU History
-
-History Functions
-=================
-
- This section describes the calling sequence for the various functions
-exported by the GNU History library.
-
-* Menu:
-
-* Initializing History and State Management:: Functions to call when you
- want to use history in a
- program.
-* History List Management:: Functions used to manage the list
- of history entries.
-* Information About the History List:: Functions returning information about
- the history list.
-* Moving Around the History List:: Functions used to change the position
- in the history list.
-* Searching the History List:: Functions to search the history list
- for entries containing a string.
-* Managing the History File:: Functions that read and write a file
- containing the history list.
-* History Expansion:: Functions to perform csh-like history
- expansion.
-
-
-File: history.info, Node: Initializing History and State Management, Next: History List Management, Up: History Functions
-
-Initializing History and State Management
------------------------------------------
-
- This section describes functions used to initialize and manage the
-state of the History library when you want to use the history functions
-in your program.
-
- - Function: void using_history (void)
- Begin a session in which the history functions might be used. This
- initializes the interactive variables.
-
- - Function: HISTORY_STATE * history_get_history_state (void)
- Return a structure describing the current state of the input
- history.
-
- - Function: void history_set_history_state (HISTORY_STATE *state)
- Set the state of the history list according to STATE.
-
-
-File: history.info, Node: History List Management, Next: Information About the History List, Prev: Initializing History and State Management, Up: History Functions
-
-History List Management
------------------------
-
- These functions manage individual entries on the history list, or set
-parameters managing the list itself.
-
- - Function: void add_history (const char *string)
- Place STRING at the end of the history list. The associated data
- field (if any) is set to `NULL'.
-
- - Function: HIST_ENTRY * remove_history (int which)
- Remove history entry at offset WHICH from the history. The
- removed element is returned so you can free the line, data, and
- containing structure.
-
- - Function: HIST_ENTRY * replace_history_entry (int which, const char
- *line, histdata_t data)
- Make the history entry at offset WHICH have LINE and DATA. This
- returns the old entry so you can dispose of the data. In the case
- of an invalid WHICH, a `NULL' pointer is returned.
-
- - Function: void clear_history (void)
- Clear the history list by deleting all the entries.
-
- - Function: void stifle_history (int max)
- Stifle the history list, remembering only the last MAX entries.
-
- - Function: int unstifle_history (void)
- Stop stifling the history. This returns the previously-set
- maximum number of history entries (as set by `stifle_history()').
- The value is positive if the history was stifled, negative if it
- wasn't.
-
- - Function: int history_is_stifled (void)
- Returns non-zero if the history is stifled, zero if it is not.
-
-
-File: history.info, Node: Information About the History List, Next: Moving Around the History List, Prev: History List Management, Up: History Functions
-
-Information About the History List
-----------------------------------
-
- These functions return information about the entire history list or
-individual list entries.
-
- - Function: HIST_ENTRY ** history_list (void)
- Return a `NULL' terminated array of `HIST_ENTRY *' which is the
- current input history. Element 0 of this list is the beginning of
- time. If there is no history, return `NULL'.
-
- - Function: int where_history (void)
- Returns the offset of the current history element.
-
- - Function: HIST_ENTRY * current_history (void)
- Return the history entry at the current position, as determined by
- `where_history()'. If there is no entry there, return a `NULL'
- pointer.
-
- - Function: HIST_ENTRY * history_get (int offset)
- Return the history entry at position OFFSET, starting from
- `history_base' (*note History Variables::). If there is no entry
- there, or if OFFSET is greater than the history length, return a
- `NULL' pointer.
-
- - Function: int history_total_bytes (void)
- Return the number of bytes that the primary history entries are
- using. This function returns the sum of the lengths of all the
- lines in the history.
-
-
-File: history.info, Node: Moving Around the History List, Next: Searching the History List, Prev: Information About the History List, Up: History Functions
-
-Moving Around the History List
-------------------------------
-
- These functions allow the current index into the history list to be
-set or changed.
-
- - Function: int history_set_pos (int pos)
- Set the current history offset to POS, an absolute index into the
- list. Returns 1 on success, 0 if POS is less than zero or greater
- than the number of history entries.
-
- - Function: HIST_ENTRY * previous_history (void)
- Back up the current history offset to the previous history entry,
- and return a pointer to that entry. If there is no previous
- entry, return a `NULL' pointer.
-
- - Function: HIST_ENTRY * next_history (void)
- Move the current history offset forward to the next history entry,
- and return the a pointer to that entry. If there is no next
- entry, return a `NULL' pointer.
-
-
-File: history.info, Node: Searching the History List, Next: Managing the History File, Prev: Moving Around the History List, Up: History Functions
-
-Searching the History List
---------------------------
-
- These functions allow searching of the history list for entries
-containing a specific string. Searching may be performed both forward
-and backward from the current history position. The search may be
-"anchored", meaning that the string must match at the beginning of the
-history entry.
-
- - Function: int history_search (const char *string, int direction)
- Search the history for STRING, starting at the current history
- offset. If DIRECTION is less than 0, then the search is through
- previous entries, otherwise through subsequent entries. If STRING
- is found, then the current history index is set to that history
- entry, and the value returned is the offset in the line of the
- entry where STRING was found. Otherwise, nothing is changed, and
- a -1 is returned.
-
- - Function: int history_search_prefix (const char *string, int
- direction)
- Search the history for STRING, starting at the current history
- offset. The search is anchored: matching lines must begin with
- STRING. If DIRECTION is less than 0, then the search is through
- previous entries, otherwise through subsequent entries. If STRING
- is found, then the current history index is set to that entry, and
- the return value is 0. Otherwise, nothing is changed, and a -1 is
- returned.
-
- - Function: int history_search_pos (const char *string, int direction,
- int pos)
- Search for STRING in the history list, starting at POS, an
- absolute index into the list. If DIRECTION is negative, the search
- proceeds backward from POS, otherwise forward. Returns the
- absolute index of the history element where STRING was found, or
- -1 otherwise.
-
-
-File: history.info, Node: Managing the History File, Next: History Expansion, Prev: Searching the History List, Up: History Functions
-
-Managing the History File
--------------------------
-
- The History library can read the history from and write it to a file.
-This section documents the functions for managing a history file.
-
- - Function: int read_history (const char *filename)
- Add the contents of FILENAME to the history list, a line at a time.
- If FILENAME is `NULL', then read from `~/.history'. Returns 0 if
- successful, or `errno' if not.
-
- - Function: int read_history_range (const char *filename, int from,
- int to)
- Read a range of lines from FILENAME, adding them to the history
- list. Start reading at line FROM and end at TO. If FROM is zero,
- start at the beginning. If TO is less than FROM, then read until
- the end of the file. If FILENAME is `NULL', then read from
- `~/.history'. Returns 0 if successful, or `errno' if not.
-
- - Function: int write_history (const char *filename)
- Write the current history to FILENAME, overwriting FILENAME if
- necessary. If FILENAME is `NULL', then write the history list to
- `~/.history'. Returns 0 on success, or `errno' on a read or write
- error.
-
- - Function: int append_history (int nelements, const char *filename)
- Append the last NELEMENTS of the history list to FILENAME. If
- FILENAME is `NULL', then append to `~/.history'. Returns 0 on
- success, or `errno' on a read or write error.
-
- - Function: int history_truncate_file (const char *filename, int
- nlines)
- Truncate the history file FILENAME, leaving only the last NLINES
- lines. If FILENAME is `NULL', then `~/.history' is truncated.
- Returns 0 on success, or `errno' on failure.
-
-
-File: history.info, Node: History Expansion, Prev: Managing the History File, Up: History Functions
-
-History Expansion
------------------
-
- These functions implement history expansion.
-
- - Function: int history_expand (char *string, char **output)
- Expand STRING, placing the result into OUTPUT, a pointer to a
- string (*note History Interaction::). Returns:
- `0'
- If no expansions took place (or, if the only change in the
- text was the removal of escape characters preceding the
- history expansion character);
-
- `1'
- if expansions did take place;
-
- `-1'
- if there was an error in expansion;
-
- `2'
- if the returned line should be displayed, but not executed,
- as with the `:p' modifier (*note Modifiers::).
-
- If an error ocurred in expansion, then OUTPUT contains a
- descriptive error message.
-
- - Function: char * get_history_event (const char *string, int *cindex,
- int qchar)
- Returns the text of the history event beginning at STRING +
- *CINDEX. *CINDEX is modified to point to after the event
- specifier. At function entry, CINDEX points to the index into
- STRING where the history event specification begins. QCHAR is a
- character that is allowed to end the event specification in
- addition to the "normal" terminating characters.
-
- - Function: char ** history_tokenize (const char *string)
- Return an array of tokens parsed out of STRING, much as the shell
- might. The tokens are split on the characters in the
- HISTORY_WORD_DELIMITERS variable, and shell quoting conventions
- are obeyed.
-
- - Function: char * history_arg_extract (int first, int last, const
- char *string)
- Extract a string segment consisting of the FIRST through LAST
- arguments present in STRING. Arguments are split using
- `history_tokenize'.
-
-
-File: history.info, Node: History Variables, Next: History Programming Example, Prev: History Functions, Up: Programming with GNU History
-
-History Variables
-=================
-
- This section describes the externally-visible variables exported by
-the GNU History Library.
-
- - Variable: int history_base
- The logical offset of the first entry in the history list.
-
- - Variable: int history_length
- The number of entries currently stored in the history list.
-
- - Variable: int history_max_entries
- The maximum number of history entries. This must be changed using
- `stifle_history()'.
-
- - Variable: char history_expansion_char
- The character that introduces a history event. The default is `!'.
- Setting this to 0 inhibits history expansion.
-
- - Variable: char history_subst_char
- The character that invokes word substitution if found at the start
- of a line. The default is `^'.
-
- - Variable: char history_comment_char
- During tokenization, if this character is seen as the first
- character of a word, then it and all subsequent characters up to a
- newline are ignored, suppressing history expansion for the
- remainder of the line. This is disabled by default.
-
- - Variable: char * history_word_delimiters
- The characters that separate tokens for `history_tokenize()'. The
- default value is `" \t\n()<>;&|"'.
-
- - Variable: char * history_no_expand_chars
- The list of characters which inhibit history expansion if found
- immediately following HISTORY_EXPANSION_CHAR. The default is
- space, tab, newline, carriage return, and `='.
-
- - Variable: char * history_search_delimiter_chars
- The list of additional characters which can delimit a history
- search string, in addition to space, TAB, `:' and `?' in the case
- of a substring search. The default is empty.
-
- - Variable: int history_quotes_inhibit_expansion
- If non-zero, single-quoted words are not scanned for the history
- expansion character. The default value is 0.
-
- - Variable: rl_linebuf_func_t * history_inhibit_expansion_function
- This should be set to the address of a function that takes two
- arguments: a `char *' (STRING) and an `int' index into that string
- (I). It should return a non-zero value if the history expansion
- starting at STRING[I] should not be performed; zero if the
- expansion should be done. It is intended for use by applications
- like Bash that use the history expansion character for additional
- purposes. By default, this variable is set to `NULL'.
-
-
-File: history.info, Node: History Programming Example, Prev: History Variables, Up: Programming with GNU History
-
-History Programming Example
-===========================
-
- The following program demonstrates simple use of the GNU History
-Library.
-
- #include <stdio.h>
- #include <readline/history.h>
-
- main (argc, argv)
- int argc;
- char **argv;
- {
- char line[1024], *t;
- int len, done = 0;
-
- line[0] = 0;
-
- using_history ();
- while (!done)
- {
- printf ("history$ ");
- fflush (stdout);
- t = fgets (line, sizeof (line) - 1, stdin);
- if (t && *t)
- {
- len = strlen (t);
- if (t[len - 1] == '\n')
- t[len - 1] = '\0';
- }
-
- if (!t)
- strcpy (line, "quit");
-
- if (line[0])
- {
- char *expansion;
- int result;
-
- result = history_expand (line, &expansion);
- if (result)
- fprintf (stderr, "%s\n", expansion);
-
- if (result < 0 || result == 2)
- {
- free (expansion);
- continue;
- }
-
- add_history (expansion);
- strncpy (line, expansion, sizeof (line) - 1);
- free (expansion);
- }
-
- if (strcmp (line, "quit") == 0)
- done = 1;
- else if (strcmp (line, "save") == 0)
- write_history ("history_file");
- else if (strcmp (line, "read") == 0)
- read_history ("history_file");
- else if (strcmp (line, "list") == 0)
- {
- register HIST_ENTRY **the_list;
- register int i;
-
- the_list = history_list ();
- if (the_list)
- for (i = 0; the_list[i]; i++)
- printf ("%d: %s\n", i + history_base, the_list[i]->line);
- }
- else if (strncmp (line, "delete", 6) == 0)
- {
- int which;
- if ((sscanf (line + 6, "%d", &which)) == 1)
- {
- HIST_ENTRY *entry = remove_history (which);
- if (!entry)
- fprintf (stderr, "No such entry %d\n", which);
- else
- {
- free (entry->line);
- free (entry);
- }
- }
- else
- {
- fprintf (stderr, "non-numeric arg given to `delete'\n");
- }
- }
- }
- }
-
-
-File: history.info, Node: Concept Index, Next: Function and Variable Index, Prev: Programming with GNU History, Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-* anchored search: Searching the History List.
-* event designators: Event Designators.
-* history events: Event Designators.
-* history expansion: History Interaction.
-* History Searching: Searching the History List.
-
-
-File: history.info, Node: Function and Variable Index, Prev: Concept Index, Up: Top
-
-Function and Variable Index
-***************************
-
-* Menu:
-
-* add_history: History List Management.
-* append_history: Managing the History File.
-* clear_history: History List Management.
-* current_history: Information About the History List.
-* get_history_event: History Expansion.
-* history_arg_extract: History Expansion.
-* history_base: History Variables.
-* history_comment_char: History Variables.
-* history_expand: History Expansion.
-* history_expansion_char: History Variables.
-* history_get: Information About the History List.
-* history_get_history_state: Initializing History and State Management.
-* history_inhibit_expansion_function: History Variables.
-* history_is_stifled: History List Management.
-* history_length: History Variables.
-* history_list: Information About the History List.
-* history_max_entries: History Variables.
-* history_no_expand_chars: History Variables.
-* history_quotes_inhibit_expansion: History Variables.
-* history_search: Searching the History List.
-* history_search_delimiter_chars: History Variables.
-* history_search_pos: Searching the History List.
-* history_search_prefix: Searching the History List.
-* history_set_history_state: Initializing History and State Management.
-* history_set_pos: Moving Around the History List.
-* history_subst_char: History Variables.
-* history_tokenize: History Expansion.
-* history_total_bytes: Information About the History List.
-* history_truncate_file: Managing the History File.
-* history_word_delimiters: History Variables.
-* next_history: Moving Around the History List.
-* previous_history: Moving Around the History List.
-* read_history: Managing the History File.
-* read_history_range: Managing the History File.
-* remove_history: History List Management.
-* replace_history_entry: History List Management.
-* stifle_history: History List Management.
-* unstifle_history: History List Management.
-* using_history: Initializing History and State Management.
-* where_history: Information About the History List.
-* write_history: Managing the History File.
-
-
-
-Tag Table:
-Node: Top1136
-Node: Using History Interactively1716
-Node: History Interaction2223
-Node: Event Designators3642
-Node: Word Designators4569
-Node: Modifiers6198
-Node: Programming with GNU History7336
-Node: Introduction to History8061
-Node: History Storage9746
-Node: History Functions10857
-Node: Initializing History and State Management11841
-Node: History List Management12641
-Node: Information About the History List14235
-Node: Moving Around the History List15591
-Node: Searching the History List16580
-Node: Managing the History File18498
-Node: History Expansion20304
-Node: History Variables22199
-Node: History Programming Example24766
-Node: Concept Index27488
-Node: Function and Variable Index27974
-
-End Tag Table
diff --git a/readline-doc-4.3/doc/history.ps b/readline-doc-4.3/doc/history.ps
deleted file mode 100644
index a35bcf4..0000000
--- a/readline-doc-4.3/doc/history.ps
+++ /dev/null
@@ -1,1658 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: history.dvi
-%%Pages: 20
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o history.ps history.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (history.dvi)
-@start
-%DVIPSBitmapFont: Fa cmti10 10.95 1
-/Fa 1 47 df<127012F8A212F012E005057B840E>46 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmbxti10 14.4 1
-/Fb 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmtt9 9 26
-/Fc 26 123 df<EAFFFEA30F037E7E14>95 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA
-07FC121FEA3C1C127012E0A3EA707C383FFF80EA0F8F11107E8F14>97
-D<12FCA2121CA513F8EA1DFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0E
-EA1DFCEA0CF81217809614>I<EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A4126012
-70EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA
-301EEA700E12E0A61270EA301EEA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0
-EA1C38EA301CEA700CEAE00EA2EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F0
-0F107E8F14>I<13FCEA01FEEA038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F17
-7F9614>I<EA07CF381FFF80EA383B38301800EA701CA3EA3018EA3838EA3FF0EA37C000
-70C7FCA2EA3FF86C7E487EEA700F38E00380A438700700EA3C1EEA1FFCEA07F011197F8F
-14>I<12FCA2121CA51378EA1DFEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206
-120FA21206C7FCA4B4FCA21207ACEAFFF8A20D187C9714>I<12FCA2121CA5EBFF80A2EB
-1C005B5B5BEA1DC0EA1FE0A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>107
-D<EAFF80A21203B3EAFFFEA20F177E9614>I<EAFB8EEAFFDF383CF380A2EA38E3AA38FE
-FBE013791310808F14>I<EAFC78EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310808F14>
-I<EA07C0EA1FF0EA3C78EA701CA2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E
-8F14>I<EAFCF8EAFDFEEA1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1D
-FCEA1CF890C7FCA6B47EA21218808F14>I<EA03E7EA0FF7EA1C1FEA300F1270487EA6EA
-700F1230EA1C3FEA0FF7EA07C7EA0007A6EB3FE0A213187F8F14>I<EAFE1FEB7F80EA0E
-E3380F810090C7FCA2120EA8EAFFF0A211107F8F14>I<EA0FD8EA3FF8EA603812C0A2EA
-F000EA7F80EA3FF0EA07F8EA001CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>
-I<1206120EA4EA7FFC12FFEA0E00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3F
-A2EA1C07AB131F380FFFE0EA03E71310808F14>I<38FE3F80A2383C1E00EA1C1CA36C5A
-A3EA0630EA0770A36C5AA311107F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA
-1B6C121AA3EA1E7CA2EA0E3811107F8F14>I<EA7E3FA2EA1E3CEA0E78EA07705B12036C
-5A12037FEA0770EA0E781338487E38FE3F80A211107F8F14>I<38FE3F80A2381C0E005B
-A2120E5BA212071330A2EA0370A25B1201A25BA3485A12730077C7FC127E123C11187F8F
-14>I<EA3FFF5AEA700E131C1338EA007013E0EA01C0EA0380EA0700120EEA1C07123812
-70B5FCA210107F8F14>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmti9 9 1
-/Fd 1 47 df<1230127812F0126005047C830C>46 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmr9 9 24
-/Fe 24 122 df<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA6006A2EA70
-0EEA300CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA7FF80D187D
-9713>I<EA01F8EA0704EA0C06EA180E123013001270126012E0EAE3E0EAE418EAE80CEA
-F00EEAE0061307A31260A2EA7006EA300EEA180CEA0C38EA07E010187F9713>54
-D<1240EA7FFF13FEA2EA4004EA80081310A2EA00201340A21380120113005AA25A1206A2
-120EA5120410197E9813>I<EA07E0EA1818EA300CEA20061260A21270EA780CEA3E18EA
-1F30EA07C0EA03E0EA0CF8EA307CEA601E130FEAC0071303A3EA6002EA2004EA1818EA07
-E010187F9713>I<EA07E0EA1C30EA3018EA700CEA600EEAE006A21307A31260EA700FEA
-3017EA1827EA07C7EA00071306130E130C12701318EA6030EA3060EA0F8010187F9713>
-I<39FFE1FFC0390E001C00AB380FFFFC380E001CAC39FFE1FFC01A1A7F991D>72
-D<EA0FC2EA1836EA200EEA600612C01302A3EAE0001270127EEA3FE0EA1FF8EA03FCEA00
-7E130E130713031280A3EAC0021306EAE004EAD818EA87E0101A7E9915>83
-D<EA1FC0EA38707FEA101C1200A2EA03FCEA1E1C1238127012E01480A2133CEA705F381F
-8F0011107F8F13>97 D<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA
-07E00E107F8F11>99 D<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C
-5AEA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE0
-00A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA0FCF3818718038303000EA70
-38A4EA30306C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA38
-1CEA07E011187F8F13>103 D<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF014
-1A809915>I<1218123CA212181200A612FC121CAE12FF081A80990A>I<EAFC7CEA1D8738
-1E0380A2121CAB38FF9FF01410808F15>110 D<EA07E0EA1C38EA300CEA700EEA6006EA
-E007A6EA6006EA700EEA381CEA1C38EA07E010107F8F13>I<EAFCFCEA1D07381E038038
-1C01C0A2EB00E0A6EB01C01480381E0300EA1D06EA1CF890C7FCA6B47E1317808F15>I<
-EAFC78EA1D9CEA1E1C1308EA1C00ABEAFF800E10808F0F>114 D<EA1F20EA60E0EA4020
-12C0A2EAF000127FEA3FC0EA1FE0EA00F0EA8070133012C01320EAF040EA8F800C107F8F
-0F>I<1208A41218A21238EAFFC0EA3800A81320A41218EA1C40EA07800B177F960F>I<38
-FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C5A11107F8F14>
-118 D<38FE3F80383C1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA
-181CEA381E38FC3FC012107F8F14>120 D<38FF0F80383C0700EA1C061304A26C5AA26C
-5AA3EA03A0A2EA01C0A36C5AA248C7FCA212E112E212E4127811177F8F14>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmss10 10.95 2
-/Ff 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0
-AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmbx10 12 27
-/Fg 27 123 df<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2
-ECFF80B6FCA2380FC01FB2397FF8FFF0A21C237FA220>12 D<90380FFF80137F3801FC1F
-3803F03FEA07E0EA0FC0141FA7B6FCA2380FC01FB2397FF8FFF0A21C237FA220>I<EA07
-FE381FFF80383F07E06D7E130180121E1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA
-7C02EA7E0C391FF87F803807E03F19167E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF0
-3EEBC01F9038800F8015C0140715E0A715C0A2140F15809038C01F00381E707E381C3FFC
-38180FE01B237EA220>I<EBFF80000713E0380F83F0EA1F03123E127E387C01E090C7FC
-12FCA6127C127EA2003E13186C1330380FC0603807FFC0C6130015167E9519>I<49B4FC
-A2EB003FAB13FE3807FFBF380FC1FF48C67E003E7F127E127CA212FCA7127C127E123E6C
-5B380F81FF3907FF3FE0EA01FC1B237EA220>I<13FE3807FF80380F83C0381E01E0383E
-00F0127E007C13F8147812FCB512F8A200FCC7FCA3127CA26C1318A26C1330380F80E038
-03FFC0C6130015167E951A>I<EB1F80EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC0
-00A6EAFFFEA2EA0FC0B2EA7FFCA214237EA212>I<9038FE0F803903FF9FC0380F83E338
-1F01F3391E00F000003E7FA5001E5BEA1F01380F83E0380BFF80D808FEC7FC0018C8FCA2
-121C381FFFE014FC6C13FF7E001F1480397C001FC00078130F00F81307A3007CEB0F806C
-EB1F00381F807E6CB45A000113E01A217F951D>I<B47EA2121FABEB83F0EB8FFCEB987E
-EBA03EEBC03FA21380AE39FFF1FFE0A21B237DA220>I<121E123FEA7F80A4EA3F00121E
-C7FCA6EAFF80A2121FB2EAFFF0A20C247EA30F>I<B47EA2121FABECFF80A2EC3C001430
-14E0EB81C00183C7FC1386139E13BE13FFEBDF80EB8FC01307806D7E6D7E130080147E39
-FFE1FFC0A21A237EA21E>107 D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F8
-03F890390FFE0FFE3A1F183F183F9039201F201F014001C01380A201801380AE3BFFF0FF
-F0FFF0A22C167D9531>I<38FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FF
-E0A21B167D9520>I<13FF000713E0380F81F0381F00F8003E137C48133EA300FC133FA7
-007C133E007E137E003E137C6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87
-F0EBBFFC381FF07EEBC01F9038800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EB
-F07EEBBFFCEB8FE00180C7FCA8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF38
-1F00DF48137F007E7FA2127C12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8
-903801FFE0A21B207E951E>I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000AD
-EAFFF8A214167E9518>I<3807F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA
-7FFE6C7E6C1380120738003FC0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812
-167E9517>I<487EA41203A21207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3
-EA07FEEA01F811207F9F16>I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01
-FC1B167D9520>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035BA2
-6C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3
-FF83FCA23A1F807C00E0D80FC014C08001E013010007017F1380A2D803F0EB0300ECCF83
-01F81387D801F913C61487D800FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118
-136026167F9529>I<39FFF07FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD8013
-7F91C7FC7F6D7E497EEB37E0EB67F013C33801C1F8380380FC48487E000E137F39FF81FF
-E0A21B167F951E>I<39FFF01FE0A2391FC00700000F1306EBE00E0007130C13F000035B
-A26C6C5AA26C6C5AA2EBFEE0EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC38
-13305BEA69C0EA7F80001FC8FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F
-00E0138038C03F005B137EC65A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB
-00E0EA7E03B5FCA214167E9519>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmtt10 12 27
-/Fh 27 119 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
-FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<1338137CA2136C13EEA313
-C6A2EA01C7A438038380A4380701C0A213FFA24813E0EA0E00A4481370387F01FC38FF83
-FE387F01FC171E7F9D1A>65 D<B512F8A3381C0038A51400A2130EA3EA1FFEA3EA1C0EA3
-90C7FCA3141CA5B512FCA3161E7E9D1A>69 D<38FF83FEA3381C0070AA381FFFF0A3381C
-0070AB38FF83FEA3171E7F9D1A>72 D<B51280A33801C000B3A6B51280A3111E7C9D1A>
-I<38FE03FE12FFA2381D8070A213C0121CA213E0A213601370A213301338A21318131CA2
-130C130EA21306A213071303A238FF81F0A21380171E7F9D1A>78
-D<EA0FFE383FFF804813C0EA7C07EA700100F013E0EAE000B1EAF001A2007013C0EA7C07
-EA7FFF6C1380380FFE00131E7D9D1A>I<EAFFFC13FF1480381C07C0EB01E0EB00F01470
-A414F0EB01E0EB07C0381FFF8014001480381C07C01301EB00E0A514E214E7A338FF807E
-A21438181E7F9D1A>82 D<3803F1C0EA0FFDEA3FFFEA7C0FEA700312E01301A390C7FC12
-701278123FEA1FF0EA07FE3800FF80EB0FC0EB01E013001470A2126012E0A214E0EAF001
-38FC03C0B5128000EF1300EAE3FC141E7D9D1A>I<387FFFFEB5FCA238E0380EA5000013
-00B33803FF80A3171E7F9D1A>I<38FF01FEA3381C00706C13E0A2380701C0A213830003
-138013C700011300A2EA00EEA2137CA21338AA48B4FCA3171E7F9D1A>89
-D<387FFFC0B512E0A26C13C013047D7E1A>95 D<EA1FF0EA3FFC487EEA780FEA30073800
-0380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA1FFDEA07
-F016157D941A>97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB0038120E14
-1CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<EBFF8000
-0313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F01F0380F
-FFE0000313C03800FE0014157D941A>I<EB1FC0A31301A6EA01F1EA07FDEA0FFFEA1E0F
-EA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA01F1161E7E9D
-1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0A300E0C7
-FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<EB07E0EB
-1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF804813C06C13
-80151E7F9D1A>I<12FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3
-FE13E713E3171E7F9D1A>104 D<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80
-B512C06C1380121F7C9E1A>I<EAFFE0A31200B3A6B512E0A3131E7D9D1A>108
-D<EAFE3EEBFF80B512C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>
-110 D<EA01F0EA07FCEA1FFF383E0F80EA3C07387803C0EA700138E000E0A6EAF0010070
-13C0EA7803383C0780EA3E0F381FFF00EA07FCEA01F013157D941A>I<387F81F838FF8F
-FC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>114
-D<487E1203A6387FFFE0B5FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F
-9B1A>116 D<38FE0FE0A3EA0E00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387F
-C7FC00FF13FE007F13FC380E00E0A3380701C0A338038380A33801C700A3EA00EEA3137C
-A2133817157F941A>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmbx12 13.14 41
-/Fi 41 123 df<EB07FCEB3FFF9038FE0780D803F013C03807E00FA2EA0FC0A3EC030091
-C7FCA3EC7FE0B6FCA2380FC007B3A239FFFC7FFEA21F267FA522>12
-D<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA21200B3AA387FFF
-FCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC387C00FE12FE14
-FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B1370
-EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>I<48
-B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB03F8
-EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FEA214
-FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A214F8
-1301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A12185A12
-705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEBFFF8
-14F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FCC712
-7EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE0018
-237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA2007E13
-3C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E123F
-6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512C0A2
-15804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133CA25B
-A213F8A41201A66C5A13601A257DA41F>I<141CA2143EA3147FA24A7EA39038019FC0A2
-9038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FCA290
-39E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229257E
-A42E>65 D<B612E015FC3903F800FFED1FC0ED07E06F7E6F7E82150082A2167FA31780AA
-1700A316FEA24B5A5E4B5A4B5AED1FC0EDFF80B648C7FC15E029257EA42F>68
-D<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFE
-A2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428
->I<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F
-8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F800AF90B6FC
-A29038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3AFB512E0A2
-13257EA417>I<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FC
-B6FCA220257EA425>76 D<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C
-130CA26D6C1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3
-EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>
-I<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
-EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
-C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>83
-D<B53B81FFFE01FFF0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D49
-6C1338000017304B7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E013
-8190280FE0C03F83C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14
-FC6D486D5AA24A130301005DA24A130102785CA202306D5A3C257FA43F>87
-D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0EA1F
-00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
-D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
-A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
-7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
-EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
-0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
-FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
-12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
-17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
-C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
-007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
-13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
-FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
-07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
-C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FB3B0EAFFFCA20E26
-7EA511>108 D<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E8
-03F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80
-390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803
-FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A238
-1F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F0
-07E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038
-CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC
-13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA70
-01EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212
-E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F
-121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39
-FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<
-39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC0000
-5B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A239
-0FC00F003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F8
-1361EBE0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120
-D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00
-005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B
-1370EA68E0EA7FC0001FC8FC1D237F9720>I<387FFFF8A2387C03F0EA700738600FE000
-E013C0EB1F80EAC03F1400137EEA00FE5B485A0003130C13F0EA07E0120FEBC01C381F80
-18003F1338387F0078387E01F8B5FCA216187E971B>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmsl10 10.95 30
-/Fj 30 122 df<903803F07C90381E0DC69038380F0FEB701E01E0130EEC0C003801C01C
-A548485A007FB512C03903803800A448485AA6000E5BA648485A001E7F38FF8FFC20207E
-9F1B>11 D<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF038038070A4
-380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>I<903803F03F9039
-1E09E0809039380F80C09039701F01E0EBE03E021E13C02601C01CC7FCA548485A007FB6
-12803903803803A43A0700700700A6000EEBE00EA64848485A001EEBE01E3AFF8FF8FFC0
-23207E9F26>14 D<13201360A4383061C0383C4380380E4E00EA0778EA01E0A2EA07B8EA
-1C9CEA708FEAE083EA0180A490C7FC12147AA117>42 D<13181338EA01F8EA0E701200A5
-13E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B9D17>49 D<EB3F80EBC1E0380100
-70000213785AA2000F137C1380A2EB00781206C712F814F0EB01E014C0EB0380EB070013
-0E5B5B13605B485A380300201206000813405A383FFFC0481380B5FC161E7E9D17>I<13
-FFEA01FE1380A5EA0300A61206A65AA65AA65AA65AA6B4FCA2102D7EA10D>91
-D<13FFEA01FEEA0006A5130CA61318A61330A61360A613C0A6EA0180A6EAFF00A2102D82
-A10D>93 D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7EA1E07EA3C0E127800F0
-1310A3131EEB2E2038784F40381F878014147D9317>97 D<13FEEA0383380E0780121C00
-38130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D9314>99
-D<1438EB01F8EB00781438A21470A614E013FCEA0382EA0601121CEA3C00383801C01278
-12F0A438E00380A412F0EA700738380F00381C37803807C7E015207D9F19>I<13F8EA07
-0EEA0E07381C038012381278127012F0B5FC00F0C7FCA25AA46C5AEA7002EA3004EA1C18
-EA07E011147D9314>I<EB07C0EB1C60EB30F01360EBE0E0EBC0001201A5485AEA3FFCEA
-0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB3E11EBE1A33801C1C238
-0381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FCA21218121CEA0FFF14C0
-14E0381800F04813305A5AA3006013606C13C0381C0700EA07FC181F809417>I<13E012
-0712011200A2485AA6485AEB8F80EB90E013A0EBC0601380000713E01300A5380E01C0A6
-381C0380001E13C038FF8FF014207E9F19>I<EA01C0EA03E0A213C0EA0180C7FCA6EA03
-80121F12071203A2EA0700A6120EA65A121EEAFF800B1F7F9E0C>I<13E0120712011200
-A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B207F9F0C>108
-D<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB0070A5000EEB
-E00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F90E0EA07A0
-3803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014147E9319>
-I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0130300F013
-8038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383801F01C6C487E140F
-48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90C8FCA3120E
-A4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C003813C0127812
-F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4131EEBFFC0
-131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120EA65A121EEA
-FFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13F0EA07FCEA
-01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<1380EA0100
-A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C9B12>I<38
-1C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F9F8011147B
-9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075BA25BEA0390
-13A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C030060148015
-401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB80F0A26C48
-5A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0C0EBE180EB
-73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03E038FE07FC
-18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B143014205C13705CA2
-0171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8FC12E61278
-191D809318>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmcsc10 10.95 3
-/Fk 3 118 df<EB7E083803819838070078000C1338001C13185A00781308127000F013
-00A5EB03FEEB00381270127812387E120C1207380380D838007F0817177E961D>103
-D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C130E1307A2
-EB03A0EB01E0A213001460123800FE132016177E961C>110 D<38FF81FC381C00701420
-B0000C1340120E6C138038018300EA007C16177E961C>117 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmbx12 17.28 36
-/Fl 36 122 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF000
-7CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215
-F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49
-131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<1578A215FCA34A7E
-A24A7EA24A7FA34A7FEC0E7F021E7FEC1C3FA202387F151F02787FEC700FA202E07F1507
-010180ECC003A249486C7EA201078191C7FC498191B6FCA24981011CC7123F013C810138
-141FA24981160F01F081491407A2484881486C1403B549B512FCA336317DB03D>65
-D<B712C016FC16FFD801FEC77FEE7FE0707E161F707EA2831607A4160FA25FA24C5A4C5A
-4C5A4B485ADB1FFEC7FC90B65AEEFF8049C7EA3FE0EE0FF0EE07FCA2707E83821880A718
-005E5F16074C5A4C5AEEFFF0B812C094C7FC16F831317DB039>I<913A03FF800180023F
-EBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C8127F
-4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127FA2
-7FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93FC0
-5CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>I<
-B812E0A3C6903880007FEE0FF016031601A21600A21770A31738A21507A21700A35D5D5D
-91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB033>70 D<DA03FF1303027FEBF0
-0749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03FF49487F4848C87E485A0007
-824848815B001F82A2484881A2127FA24992C7FC12FFAA0307B512F8127F7FDB00011300
-123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8497ED907FFEB3E3F01019038
-FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B6D8807FB512C0A3C60180C7387FC000
-B391B7FCA30280C7127FB3A3B6D8807FB512C0A33A317EB03F>I<B61280A3C6EB8000B3
-B3A7B61280A319317EB01E>I<B56C49B512C08080C66D90390003E0006E6E5AEBEFFC13
-E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E16806E13C0ED7FE0ED3F
-F0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1EE1FF9EE0FFD160717FF
-828282177F173FA2171F170F486C1507B500E014031701A23A317EB03F>78
-D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FFA717FEA2EE
-07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB037>80
-D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A3481603
-A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807C000
-715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801FC002
-3FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C1780
-6E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075DA26E
-130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C021F13
-3815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA238317EB0
-3D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FC
-A414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F800D39
-3FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97 D<EA01F812FFA3120F12
-07ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E049EB07F016F8A2ED03FC
-A316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F809039C3C0FE00903880FFF8
-9038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803F0033907E007F8120FEA
-1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2001F14386C7E00071470
-3903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED0FC0EC07FFA3EC007F15
-3FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F4848133F123FA2485AA312
-FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F3FFE38007FFEEB0F
-F027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E03907E001F0000F14F839
-1FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7FCA4127FA36C6C130712
-1F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807FE0020207E9F25>I<EB
-01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC1203EC07E0EC018091C7
-FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90391FF007C09039FFFE3F
-E03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF000A2003F80A5001F5CA2
-000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC121EA2121F7F90B57E6C
-14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C140F00FC1407A4007EEC
-0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0D8001F90C7FC242F7E9F
-28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013809039F9801FC0EBFB00
-01FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E487E487EA46C5A6C5A6C
-5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA01F812FFA3120F1207B3
-B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01
-E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3
-B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1
-801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFF
-C03901FC07F03903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300
-FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF0
-39007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFFFC9038FBE07F9039FF00
-3F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216FEA816FC1507A216F8A2
-ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC3FC091C8FCABB512C0A3
-272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF30FF0EA07F6A29038FC07
-E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114 D<3801FF86000713FEEA1F00003C
-133E48131E140E12F8A36C90C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA00
-3F01001380143F0060131F00E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C0
-7F8019207D9F20>I<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FC
-C7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I<D801F8EB07
-E000FFEB03FFA3000FEB003F0007141FB3153FA20003147FA26C6CEBDFF03A00FE039FFF
-90387FFF1FEB0FFC28207D9F2D>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315
-007F0001140E7F6C5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14
-F9903807FB80A214FF6D90C7FCA26D5AA26D5AA21478A226207E9F2B>I<B53A1FFFE03F
-F8A33C0FF000FE0007806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15
-DF01FF153C6C9039038FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEB
-F9C09138FC01FD16FF010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E
-9F3A>I<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B90
-381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF081
-90380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FCA3
-28207F9F2B>I<B5EB1FFCA3D80FF8EB03C0000715806D1307000315007F0001140E7F6C
-5CA2EC803C017F1338ECC078013F1370ECE0F0011F5B14F1010F5B14F9903807FB80A214
-FF6D90C7FCA26D5AA26D5AA21478A21470A214F05C1301007C5BEAFE035C49C8FC5BEAFC
-1EEA787CEA3FF0EA0FC0262E7E9F2B>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmsy10 10.95 1
-/Fm 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmbx12 14.4 44
-/Fn 44 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F14
-80A249486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F080491303
-000181491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8
-001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EA
-FE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1F
-F8B712E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF0
-0F9F9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290
-C9FC5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F09039
-7FF007C0011FB512800107EBFE009038007FF028297CA831>I<B712E0A33903FC001FED
-07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3EBFC0F1403A202
-01130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327297EA82C>69
-D<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A316001403A2140F
-90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387FE003903907
-FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880485A82
-485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E6C7E6C
-B45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5D8F00FB5FC
-A3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835>I<B512F0
-A33803FC00B3B1B512F0A314297EA819>I<D8FFFCEC7FFF7F7F00036DEB01C080EBBFE0
-139F80EB8FF8EB87FCEB83FEEB81FF01801380147F15C0EC3FE0EC1FF0EC0FF8EC07FC14
-0315FEEC01FF6E1381ED7FC1ED3FE1ED1FF1150F16F9ED07FDED03FF8181167FA2163F16
-1F160F1607D8FFFE14031601A230297EA835>78 D<B612F815FF16C03A03FC003FE0ED07
-F0ED03F816FC150116FEA716FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B5
-12F0A327297EA82E>80 D<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A65E
-4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170EA2
-1503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>82 D<9038FF80600003EBF0E0
-000F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7F
-FCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E0
-1303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA8
-25>I<B500F0EBFFFEA3D803FCC7EA0380B3AA0001ED07007F0000150E137F6D143CD91F
-C05B90390FF003F06DB55A01001480DA1FFCC7FC2F297EA834>85
-D<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B017F140E80013F
-5CA26E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE0301015CECFF076D
-91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA230297FA833>I<B5
-3CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13016C604B1380
-02801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E17F09126F01C
-0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035BA2913AFEE001
-FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E141EA242297F
-A845>I<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801
-FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B
-7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F001F8
-9038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380F
-FF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A2
-48133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C
-3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F380FC0
-0F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FF
-E738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80
-127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007
-003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813
-F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F000
-03EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E
-6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C
-14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512
-0038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EB
-E80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0
-A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3
-120FB3B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0
-C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFF
-E0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013
-D0A213E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F
-800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC039
-0FC01F803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE
-0FE0390FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013
-F89038F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>
-I<38FFC1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>
-114 D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14
-C06C13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038
-E7FFC000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380F
-E000AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A300
-0F1307B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FF
-A3390FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0E
-A2149EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B
-0FE00FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC
-2600FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C
-5AA2EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F00
-3801FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038
-F03F803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E13
-1C5BEA74F0EA3FE0EA0F8020277F9A23>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fo cmtt10 10.95 76
-/Fo 76 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780A2EAEE0F1400A25B131EA213
-3EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA21207EB8380EB87C0120FEB0EE0
-A2121F121EA2123E383C07C0A23818038013247E9F18>I<EA01C0EA07E0487EEA0E7048
-7EA4EB73F813F313E3380FC1C0EBC38013831303381F0700EA3F87EA7B8EEA71CEEAE1FC
-12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C7F9B18>I<1238127CA2127E
-123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780
-EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
-24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01
-C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EA
-FDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A41114
-7D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C
-123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0
-A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F
-14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12
-1E123E123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C
-0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C07
-00EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12
-431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF387C0F80387003
-C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B485AEA07C0
-485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B1377A213E7120113C7EA038712
-071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52
-D<137E48B4FC00071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC
-38FE078038F803C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5A
-EA01F8131C7E9B18>54 D<1230127812FCA2127812301200A81230127812FCA212781230
-0614779318>58 D<1218123C127EA2123C12181200A81218123C127EA2123E121E120E12
-1C123C127812F01260071A789318>I<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07
-F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E013
-03EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0
-130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2
-EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0F
-F0EA3FFC48B4FCEA700F38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5
-EA0380487EA36C5A111C7D9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707
-A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>65
-D<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114
-C01303EB0F80387FFF00485AEA7FF8141C7F9B18>68 D<B512F0A3381C0070A41400A213
-0EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B512F0A3381C0070
-A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0A3141C7E9B18>I<387F07F038FF
-8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18
->72 D<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<EAFFC0
-A3001CC7FCB114E0A5B5FCA3131C7E9B18>76 D<387E07F038FF0FF8387F07F0381D81C0
-A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03
-151C7F9B18>78 D<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF00100
-7013C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01
-E013001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<
-EA7FF8EAFFFE6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB
-0380A5149CA3387F01F8EAFF81387F00F0161C7F9B18>82 D<3803F1C0EA1FFF5AEA7C0F
-EA7003EAE001A390C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2
-126012E0130100F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA2
-38E07038A400001300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F
-01380783C03803FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03381C01C0
-EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC487E6C
-5A151C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>91
-D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F12017F12007F
-1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<EAFFF8A3EA00
-38B3ACEAFFF8A30D247F9F18>I<EA0180EA07C0EA1FF0EA7EFCEAF83EEAE00E0F067C9B
-18>I<387FFFC0B512E0A26C13C013047E7F18>I<1206121E123E12381270A212E0A312F8
-12FC127CA21238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF12
-07121FEA7F03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E
-12FE127E120EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80
-E013C1EBFFC0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838
-030048C7FCA25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<
-EB1F80133F131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007
-A2EA380FEA3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA
-3E0F38380780EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF80
-00071300EA01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0
-B5FCA23801C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00
-487EA5EA1C0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F03870
-0070481338A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE12
-7E120EA5133EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC17
-1C809B18>I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C
-18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA
-0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>107 D<EAFFC0A31201B3A4B51280
-A3111C7D9B18>I<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E
-7EEB3E3E1714809318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7
-FC38FFE7FE387FC7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A2
-38E000E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318
->I<EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013
-C1EBFFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FB
-EA1FFFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3
-EA0003A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060
-EBC0005BA290C7FCA9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A300
-7CC7FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F0
-11147D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C
-1380EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C
-13FE3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A33807
-0700A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F13073838
-00E0A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F93
-18>I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DC
-EA039E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000
-FF13F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013
-DC1378A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2
-387001E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512
-F0A314147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E012
-00AB1378EB7FE0131F130713247E9F18>I<126012F0B3B012600424769F18>I<127CB4FC
-13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E
-9F18>I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA60C00F067C9B18>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fp cmr10 10.95 74
-/Fp 74 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA07
-00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903
-80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<EA7038
-EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7F9F17>34
-D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
-D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
-30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
-0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
-5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
-D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<EA03F0EA0E1C487EEA1806
-EA380738700380A400F013C0AD00701380A3EA780700381300EA1806EA1C0E6C5AEA03F0
-121F7E9D17>48 D<13801203120F12F31203B3A6EA07C0EA7FFE0F1E7C9D17>I<EA03F0
-EA0C1CEA100E487E00401380128000F013C0EAF803A3EA200712001480A2EB0F00130E5B
-5B5B13605B485A48C7FC000613405A5A00101380EA3FFF5AB5FC121E7E9D17>I<EA03F0
-EA0C1CEA100EEA200F007813801307A2EA380F12001400A2131E131C1370EA07F0EA003C
-130E130FEB0780A214C0122012F8A300F013801240EB0F00EA200EEA183CEA07F0121F7E
-9D17>I<1306A2130EA2131E132EA2134E138EA2EA010E1202A212041208A212101220A2
-124012C0B512F038000E00A7EBFFE0141E7F9D17>I<EA1803EA1FFE5B5B13E00010C7FC
-A6EA11F0EA161CEA180EEA10071480EA0003A214C0A3127012F0A200E013801240EB0700
-EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA0182EA0701380E0380EA0C07121838
-38030090C7FC12781270A2EAF1F0EAF21CEAF406EAF807EB0380A200F013C0A51270A214
-801238EB07001218EA0C0E6C5AEA01F0121F7E9D17>I<1240387FFFE014C0A238400080
-38800100A21302485AA25B5BA25BA21360A213E05B1201A41203A76C5A131F7E9D17>I<
-EA03F0EA0C0CEA1006EA3003382001801260A3127038780300123EEA3F06EA1FC8EA0FF0
-EA03F8487EEA0C7EEA103F38300F80EA6007EB01C012C01300A31480EA600100201300EA
-1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18487E487E13071270EB038012F0A214
-C0A5EA7007A21238EA180BEA0E13EA03E338000380A3EB07001230EA7806130EEA700CEA
-2018EA1070EA0FC0121F7E9D17>I<127012F8A312701200AA127012F8A3127005147C93
-0D>I<127012F8A312701200AA127012F012F8A212781208A31210A31220A21240051D7C
-930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB2078A3497EA2EBC03EEB801EA248B5FC
-EB000FA20002EB0780A348EB03C0A2120C001E14E039FF801FFE1F207F9F22>65
-D<B512E0380F0078141EA2801580A515005C141E147CEBFFF0EB007C141FEC0F80EC07C0
-140315E0A515C014071580EC0F00143EB512F01B1F7E9E20>I<90380FE0109038381C30
-9038E002703803C00139078000F048C71270121E15305A1510127C127800F81400A91278
-007C1410123CA26C1420A27E6C6C13406C6C13803900E00300EB380CEB0FF01C217E9F21
->I<B512F83807801EEC0780EC03C0EC01E0EC00F015701578A2153CA3153EA8153CA215
-7C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F9E23>I<B61280380F000F14
-031401140015C01540A314401500A214C0130113FF130113001440A3EC0020A31540A315
-C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780071401A2140015C01540A4EC20
-00A3146014E013FF138014601420A391C7FCA87FEAFFFE1A1F7F9E1E>I<90380FE02090
-387818609038E004E03803800238070001481300001E1460A25A1520127C127800F81400
-A7EC7FFCEC03E000781301127C123CA27EA27E7E380380023900E0046090387818209038
-0FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FCEB0007AF39FFF07FF81D1F7E
-9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<EAFFF8EA0F8090C7FCB21402A41406
-1404A2140C141C147CB512FC171F7E9E1C>76 D<B46CEB07FE000715C0A2D805C0130BA2
-D804E01313A301701323A26D1343A36D1383A290380E0103A3EB0702A3EB0384A2EB01C8
-A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>I<B4EB0FF8390F8003E0EC0080EA0B
-C0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03C0EB01E0A2EB00F01478A2143C141E
-A2140F1407A214031401123E38FF80001D1F7E9E22>I<EB1FE0EB70383801C00E48487E
-39070003804814C0001EEB01E048EB00F0A2007C14F8A20078147800F8147CA900781478
-007C14F8A2003C14F0003E1301001E14E06CEB03C06C148039038007003801E01E380070
-38EB1FE01E217E9F23>I<B512E0380F007C141E80EC0780A215C0A41580A2EC0F00141E
-147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<EB1FE0EB70383801C00E48487E39070003
-804814C0001EEB01E0003E14F0003C1300007C14F8A20078147800F8147CA90078147800
-7C14F8A2003C14F0383E0781391E0841E0390F1023C00007148039039017003801D01E39
-00783804EB1FF8EB001CEC0C0CEC0E1CEC0FF8A2140715F0EC01E01E297E9F23>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>I<38
-03F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF86CB4
-FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F8018038C6
-0300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C0143000
-801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC0080B3
-A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003FE39
-1F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213F8EB
-7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF07FF8
-1FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C000035DEC
-19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C144090
-383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<12FFA2
-12C0B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA8040A3EAB8
-5CEAFC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80A10D>I<12
-0812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fq cmbx12 20.736 13
-/Fq 13 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B6D8F803B612E0A426007FF0C70001EBC000B3A491B8FCA402F0C71201B3A7
-B6D8F803B612E0A4433B7CBA4C>I<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3
-170FA3171FA2173F177F17FF5E04071300163FB9FCA4323B7DBA3A>76
-D<B500F00207B512E0808080D8007F92390007E0006E6F5A81017B7F81137901787F6E7E
-6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F7E816F13806F13C017E06F13F081EE
-7FF8EE3FFC17FEEE1FFF827013837013C318E37013F382EF7FFBEF3FFFA283838383A283
-83187F183FA201FC161FB500FC150F18071803A2433B7CBA4C>78
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EA01E0EA
-07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512F0A4143D
-7DBC1A>105 D<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE0D807F8EB0FF0
-48486D7EA248486D7E003F81A248486D7EA400FF1680A9007F1600A36C6C495AA2001F5D
-6D1307000F5D6C6C495AD803FEEB3FE03A00FF80FF806DB5C7FC010F13F8010113C02926
-7DA530>111 D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000
-035BEBFD80A201FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
-0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
-07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
-12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
-B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
-01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
-7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
-C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
-1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
-1FFCEA07F02E377EA533>121 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%BeginPaperSize: Letter
-letter
-%%EndPaperSize
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 75 659 a Fq(GNU)33 b(History)f(Library)p 75 709
-1800 17 v 960 757 a Fp(Edition)16 b(4.3,)e(for)h Fo(History)f(Library)g
-Fp(V)l(ersion)i(4.3.)1643 811 y(Marc)o(h)e(2002)75 2467
-y Fn(Brian)23 b(F)-6 b(o)n(x,)23 b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)
--6 b(oundation)75 2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6
-b(estern)23 b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570
-1800 9 v eop
-%%Page: 2 2
-2 1 bop 75 217 a Fp(This)21 b(do)q(cumen)o(t)g(describ)q(es)h(the)f
-(GNU)f(History)g(library)l(,)j(a)d(programming)g(to)q(ol)g(that)g(pro)o
-(vides)h(a)75 271 y(consisten)o(t)15 b(user)h(in)o(terface)f(for)g
-(recalling)i(lines)f(of)f(previously)i(t)o(yp)q(ed)e(input.)75
-339 y(Published)i(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
-(oundation)75 394 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75
-448 y(Boston,)d(MA)h(02111)f(USA)75 516 y(P)o(ermission)j(is)f(gran)o
-(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f
-(this)h(man)o(ual)f(pro)o(vided)h(the)75 570 y(cop)o(yrigh)o(t)e
-(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h
-(on)f(all)h(copies.)75 638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g
-(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h
-(man)o(ual)g(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h
-(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g
-(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g
-(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fm(\015)h Fp(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1007 b(1)75 149 y Fl(1)41 b(Using)26 b(History)h(In)n(teractiv)n
-(ely)137 289 y Fp(This)17 b(c)o(hapter)g(describ)q(es)h(ho)o(w)e(to)g
-(use)h(the)g Fk(gnu)f Fp(History)g(Library)h(in)o(teractiv)o(ely)l(,)h
-(from)e(a)g(user's)75 344 y(standp)q(oin)o(t.)38 b(It)21
-b(should)h(b)q(e)g(considered)g(a)f(user's)g(guide.)38
-b(F)l(or)21 b(information)g(on)g(using)h(the)f Fk(gnu)75
-398 y Fp(History)c(Library)h(in)h(y)o(our)e(o)o(wn)g(programs,)f(see)i
-(Chapter)f(2)h([Programming)e(with)i(GNU)f(History],)75
-453 y(page)e(5.)75 600 y Fn(1.1)33 b(History)22 b(Expansion)137
-704 y Fp(The)c(History)g(library)h(pro)o(vides)f(a)f(history)h
-(expansion)h(feature)e(that)h(is)g(similar)h(to)e(the)h(history)75
-759 y(expansion)12 b(pro)o(vided)g(b)o(y)f Fo(csh)p Fp(.)18
-b(This)11 b(section)h(describ)q(es)g(the)g(syn)o(tax)e(used)h(to)g
-(manipulate)h(the)f(history)75 814 y(information.)137
-888 y(History)k(expansions)h(in)o(tro)q(duce)h(w)o(ords)d(from)g(the)i
-(history)f(list)h(in)o(to)f(the)h(input)g(stream,)e(making)75
-943 y(it)h(easy)g(to)g(rep)q(eat)g(commands,)g(insert)h(the)f(argumen)o
-(ts)f(to)h(a)g(previous)h(command)f(in)o(to)g(the)g(curren)o(t)75
-998 y(input)h(line,)h(or)d(\014x)i(errors)e(in)i(previous)g(commands)f
-(quic)o(kly)l(.)137 1072 y(History)j(expansion)i(tak)o(es)d(place)i(in)
-h(t)o(w)o(o)d(parts.)28 b(The)19 b(\014rst)f(is)g(to)g(determine)i
-(whic)o(h)f(line)h(from)75 1127 y(the)h(history)f(list)i(should)g(b)q
-(e)f(used)g(during)h(substitution.)37 b(The)21 b(second)g(is)g(to)f
-(select)i(p)q(ortions)e(of)75 1182 y(that)15 b(line)i(for)d(inclusion)k
-(in)o(to)d(the)h(curren)o(t)f(one.)20 b(The)c(line)g(selected)h(from)e
-(the)g(history)g(is)h(called)h(the)75 1237 y Fj(ev)o(en)o(t)p
-Fp(,)c(and)h(the)g(p)q(ortions)g(of)f(that)g(line)i(that)e(are)g(acted)
-h(up)q(on)g(are)f(called)j Fj(w)o(ords)p Fp(.)i(V)l(arious)c
-Fj(mo)q(di\014ers)75 1292 y Fp(are)i(a)o(v)m(ailable)i(to)e(manipulate)
-i(the)e(selected)i(w)o(ords.)23 b(The)17 b(line)h(is)f(brok)o(en)f(in)o
-(to)h(w)o(ords)e(in)j(the)e(same)75 1346 y(fashion)c(that)e(Bash)i(do)q
-(es,)g(so)f(that)g(sev)o(eral)g(w)o(ords)g(surrounded)h(b)o(y)f(quotes)
-h(are)f(considered)h(one)g(w)o(ord.)75 1401 y(History)18
-b(expansions)h(are)g(in)o(tro)q(duced)g(b)o(y)f(the)h(app)q(earance)g
-(of)f(the)g(history)h(expansion)g(c)o(haracter,)75 1456
-y(whic)o(h)d(is)g(`)p Fo(!)p Fp(')e(b)o(y)h(default.)75
-1583 y Fi(1.1.1)30 b(Ev)n(en)n(t)21 b(Designators)137
-1687 y Fp(An)16 b(ev)o(en)o(t)f(designator)g(is)g(a)g(reference)h(to)f
-(a)g(command)g(line)i(en)o(try)d(in)i(the)g(history)f(list.)75
-1777 y Fo(!)216 b Fp(Start)16 b(a)g(history)h(substitution,)g(except)h
-(when)f(follo)o(w)o(ed)g(b)o(y)f(a)h(space,)g(tab,)f(the)h(end)g(of)315
-1832 y(the)e(line,)i(`)p Fo(=)p Fp(')d(or)h(`)p Fo(\()p
-Fp('.)75 1919 y Fo(!)p Fj(n)191 b Fp(Refer)15 b(to)f(command)h(line)i
-Fj(n)p Fp(.)75 2006 y Fo(!-)p Fj(n)167 b Fp(Refer)15
-b(to)f(the)i(command)f Fj(n)g Fp(lines)i(bac)o(k.)75
-2094 y Fo(!!)192 b Fp(Refer)15 b(to)f(the)i(previous)f(command.)20
-b(This)c(is)g(a)f(synon)o(ym)g(for)f(`)p Fo(!-1)p Fp('.)75
-2181 y Fo(!)p Fj(string)102 b Fp(Refer)15 b(to)f(the)i(most)e(recen)o
-(t)h(command)g(starting)g(with)g Fj(string)p Fp(.)75
-2268 y Fo(!?)p Fj(string)t Fo([?])315 2323 y Fp(Refer)h(to)g(the)h
-(most)f(recen)o(t)h(command)g(con)o(taining)g Fj(string)p
-Fp(.)25 b(The)17 b(trailing)g(`)p Fo(?)p Fp(')f(ma)o(y)g(b)q(e)315
-2377 y(omitted)f(if)h(the)f Fj(string)k Fp(is)d(follo)o(w)o(ed)f
-(immediately)i(b)o(y)e(a)g(newline.)75 2464 y Fo(^)p
-Fj(string1)t Fo(^)p Fj(string2)t Fo(^)315 2519 y Fp(Quic)o(k)i
-(Substitution.)23 b(Rep)q(eat)16 b(the)g(last)f(command,)h(replacing)h
-Fj(string1)i Fp(with)e Fj(string2)p Fp(.)315 2574 y(Equiv)m(alen)o(t)g
-(to)d Fo(!!:s/)p Fj(string1)t Fo(/)p Fj(string2)t Fo(/)p
-Fp(.)75 2661 y Fo(!#)192 b Fp(The)15 b(en)o(tire)h(command)f(line)i(t)o
-(yp)q(ed)f(so)e(far.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fp(2)1347 b(GNU)15 b(History)g(Library)75
-149 y Fi(1.1.2)30 b(W)-5 b(ord)20 b(Designators)137 247
-y Fp(W)l(ord)d(designators)g(are)g(used)h(to)f(select)h(desired)h(w)o
-(ords)d(from)h(the)g(ev)o(en)o(t.)26 b(A)18 b(`)p Fo(:)p
-Fp(')e(separates)h(the)75 302 y(ev)o(en)o(t)j(sp)q(eci\014cation)h
-(from)e(the)h(w)o(ord)f(designator.)34 b(It)20 b(ma)o(y)f(b)q(e)h
-(omitted)g(if)g(the)g(w)o(ord)f(designator)75 357 y(b)q(egins)f(with)g
-(a)e(`)p Fo(^)p Fp(',)h(`)p Fo($)p Fp(',)f(`)p Fo(*)p
-Fp(',)g(`)p Fo(-)p Fp(',)g(or)h(`)p Fo(\045)p Fp('.)24
-b(W)l(ords)17 b(are)g(n)o(um)o(b)q(ered)g(from)g(the)g(b)q(eginning)i
-(of)e(the)g(line,)75 411 y(with)j(the)g(\014rst)f(w)o(ord)h(b)q(eing)h
-(denoted)f(b)o(y)g(0)f(\(zero\).)33 b(W)l(ords)20 b(are)f(inserted)i
-(in)o(to)f(the)g(curren)o(t)f(line)75 466 y(separated)c(b)o(y)g(single)
-i(spaces.)137 535 y(F)l(or)e(example,)75 616 y Fo(!!)192
-b Fp(designates)18 b(the)g(preceding)i(command.)28 b(When)18
-b(y)o(ou)g(t)o(yp)q(e)g(this,)h(the)f(preceding)h(com-)315
-671 y(mand)c(is)h(rep)q(eated)g(in)g(toto.)75 752 y Fo(!!:$)144
-b Fp(designates)12 b(the)f(last)g(argumen)o(t)f(of)h(the)g(preceding)i
-(command.)19 b(This)11 b(ma)o(y)g(b)q(e)h(shortened)315
-807 y(to)j Fo(!$)p Fp(.)75 887 y Fo(!fi:2)120 b Fp(designates)15
-b(the)g(second)g(argumen)o(t)f(of)g(the)h(most)f(recen)o(t)g(command)h
-(starting)f(with)h(the)315 942 y(letters)g Fo(fi)p Fp(.)137
-1024 y(Here)h(are)f(the)g(w)o(ord)f(designators:)75 1105
-y Fo(0)h(\(zero\))57 b Fp(The)15 b Fo(0)p Fp(th)g(w)o(ord.)20
-b(F)l(or)14 b(man)o(y)h(applications,)h(this)g(is)g(the)f(command)g(w)o
-(ord.)75 1186 y Fj(n)215 b Fp(The)15 b Fj(n)p Fp(th)h(w)o(ord.)75
-1267 y Fo(^)216 b Fp(The)15 b(\014rst)g(argumen)o(t;)f(that)h(is,)g(w)o
-(ord)g(1.)75 1348 y Fo($)216 b Fp(The)15 b(last)h(argumen)o(t.)75
-1429 y Fo(\045)216 b Fp(The)15 b(w)o(ord)g(matc)o(hed)g(b)o(y)g(the)g
-(most)g(recen)o(t)g(`)p Fo(?)p Fj(string)t Fo(?)p Fp(')f(searc)o(h.)75
-1510 y Fj(x)p Fo(-)p Fj(y)168 b Fp(A)15 b(range)g(of)g(w)o(ords;)f(`)p
-Fo(-)p Fj(y)t Fp(')g(abbreviates)i(`)p Fo(0-)p Fj(y)t
-Fp('.)75 1591 y Fo(*)216 b Fp(All)15 b(of)f(the)f(w)o(ords,)g(except)i
-(the)f Fo(0)p Fp(th.)19 b(This)14 b(is)h(a)e(synon)o(ym)h(for)f(`)p
-Fo(1-$)p Fp('.)18 b(It)c(is)g(not)g(an)g(error)315 1645
-y(to)g(use)h(`)p Fo(*)p Fp(')f(if)i(there)e(is)i(just)e(one)h(w)o(ord)f
-(in)i(the)f(ev)o(en)o(t;)f(the)h(empt)o(y)g(string)g(is)g(returned)g
-(in)315 1700 y(that)f(case.)75 1781 y Fj(x)s Fo(*)189
-b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p Fp(')75 1862
-y Fj(x)p Fo(-)192 b Fp(Abbreviates)16 b(`)p Fj(x)p Fo(-$)p
-Fp(')e(lik)o(e)i(`)p Fj(x)s Fo(*)p Fp(',)e(but)i(omits)f(the)g(last)g
-(w)o(ord.)137 1943 y(If)i(a)g(w)o(ord)f(designator)h(is)h(supplied)h
-(without)e(an)g(ev)o(en)o(t)f(sp)q(eci\014cation,)j(the)e(previous)h
-(command)75 1998 y(is)e(used)f(as)g(the)h(ev)o(en)o(t.)75
-2113 y Fi(1.1.3)30 b(Mo)r(di\014ers)137 2210 y Fp(After)10
-b(the)h(optional)g(w)o(ord)e(designator,)i(y)o(ou)f(can)h(add)f(a)g
-(sequence)i(of)e(one)g(or)g(more)g(of)g(the)g(follo)o(wing)75
-2265 y(mo)q(di\014ers,)16 b(eac)o(h)f(preceded)i(b)o(y)e(a)g(`)p
-Fo(:)p Fp('.)75 2346 y Fo(h)216 b Fp(Remo)o(v)o(e)14
-b(a)h(trailing)h(pathname)f(comp)q(onen)o(t,)g(lea)o(ving)h(only)g(the)
-f(head.)75 2427 y Fo(t)216 b Fp(Remo)o(v)o(e)14 b(all)i(leading)h
-(pathname)e(comp)q(onen)o(ts,)g(lea)o(ving)h(the)f(tail.)75
-2508 y Fo(r)216 b Fp(Remo)o(v)o(e)14 b(a)h(trailing)h(su\016x)f(of)g
-(the)g(form)g(`)p Fo(.)p Fj(su\016x)s Fp(',)f(lea)o(ving)i(the)f
-(basename.)75 2589 y Fo(e)216 b Fp(Remo)o(v)o(e)14 b(all)i(but)g(the)f
-(trailing)h(su\016x.)75 2670 y Fo(p)216 b Fp(Prin)o(t)15
-b(the)g(new)h(command)f(but)g(do)g(not)g(execute)h(it.)p
-eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fp(Chapter)15 b(1:)k(Using)d(History)f(In)o(teractiv)o
-(ely)1007 b(3)75 149 y Fo(s/)p Fj(old)r Fo(/)p Fj(new)t
-Fo(/)315 204 y Fp(Substitute)17 b Fj(new)j Fp(for)c(the)h(\014rst)e(o)q
-(ccurrence)j(of)e Fj(old)i Fp(in)f(the)g(ev)o(en)o(t)f(line.)25
-b(An)o(y)16 b(delimiter)315 259 y(ma)o(y)c(b)q(e)h(used)g(in)g(place)g
-(of)f(`)p Fo(/)p Fp('.)18 b(The)13 b(delimiter)h(ma)o(y)e(b)q(e)h
-(quoted)f(in)i Fj(old)g Fp(and)f Fj(new)k Fp(with)12
-b(a)315 314 y(single)j(bac)o(kslash.)20 b(If)15 b(`)p
-Fo(&)p Fp(')e(app)q(ears)h(in)h Fj(new)p Fp(,)f(it)g(is)h(replaced)g(b)
-o(y)f Fj(old)p Fp(.)20 b(A)14 b(single)i(bac)o(kslash)315
-369 y(will)j(quote)e(the)h(`)p Fo(&)p Fp('.)25 b(The)17
-b(\014nal)i(delimiter)g(is)f(optional)g(if)f(it)h(is)g(the)f(last)g(c)o
-(haracter)g(on)315 423 y(the)e(input)h(line.)75 503 y
-Fo(&)216 b Fp(Rep)q(eat)15 b(the)g(previous)h(substitution.)75
-583 y Fo(g)216 b Fp(Cause)19 b(c)o(hanges)h(to)e(b)q(e)i(applied)h(o)o
-(v)o(er)e(the)g(en)o(tire)h(ev)o(en)o(t)f(line.)34 b(Used)20
-b(in)g(conjunction)315 638 y(with)c(`)p Fo(s)p Fp(',)d(as)i(in)h
-Fo(gs/)p Fj(old)r Fo(/)p Fj(new)t Fo(/)p Fp(,)f(or)g(with)g(`)p
-Fo(&)p Fp('.)p eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fp(4)1347 b(GNU)15 b(History)g(Library)p
-eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(5)75 149 y Fl(2)41 b(Programming)28 b(with)e(GNU)i
-(History)137 269 y Fp(This)17 b(c)o(hapter)f(describ)q(es)i(ho)o(w)e
-(to)f(in)o(terface)i(programs)e(that)g(y)o(ou)h(write)g(with)h(the)f
-Fk(gnu)g Fp(History)75 324 y(Library)l(.)24 b(It)17 b(should)g(b)q(e)g
-(considered)h(a)e(tec)o(hnical)i(guide.)25 b(F)l(or)15
-b(information)i(on)f(the)h(in)o(teractiv)o(e)g(use)75
-379 y(of)e Fk(gnu)g Fp(History)l(,)g(see)g(Chapter)g(1)g([Using)g
-(History)g(In)o(teractiv)o(ely],)h(page)f(1.)75 509 y
-Fn(2.1)33 b(In)n(tro)r(duction)24 b(to)e(History)137
-607 y Fp(Man)o(y)11 b(programs)f(read)h(input)i(from)d(the)i(user)f(a)g
-(line)i(at)e(a)g(time.)19 b(The)12 b Fk(gnu)f Fp(History)g(library)h
-(is)g(able)75 661 y(to)i(k)o(eep)g(trac)o(k)g(of)g(those)g(lines,)i
-(asso)q(ciate)e(arbitrary)g(data)g(with)g(eac)o(h)h(line,)h(and)e
-(utilize)j(information)75 716 y(from)d(previous)i(lines)h(in)f(comp)q
-(osing)g(new)f(ones.)137 784 y(The)f(programmer)f(using)h(the)g
-(History)g(library)g(has)g(a)o(v)m(ailable)h(functions)g(for)e(remem)o
-(b)q(ering)h(lines)75 839 y(on)c(a)g(history)h(list,)g(asso)q(ciating)g
-(arbitrary)f(data)f(with)i(a)f(line,)j(remo)o(ving)d(lines)i(from)d
-(the)i(list,)h(searc)o(hing)75 894 y(through)17 b(the)h(list)g(for)f(a)
-h(line)h(con)o(taining)f(an)g(arbitrary)f(text)g(string,)h(and)g
-(referencing)h(an)o(y)e(line)i(in)75 949 y(the)c(list)i(directly)l(.)22
-b(In)16 b(addition,)g(a)f(history)g Fj(expansion)h Fp(function)h(is)e
-(a)o(v)m(ailable)i(whic)o(h)g(pro)o(vides)f(for)e(a)75
-1003 y(consisten)o(t)h(user)h(in)o(terface)f(across)g(di\013eren)o(t)g
-(programs.)137 1072 y(The)f(user)h(using)f(programs)f(written)h(with)g
-(the)g(History)g(library)h(has)f(the)g(b)q(ene\014t)h(of)e(a)h
-(consisten)o(t)75 1126 y(user)20 b(in)o(terface)f(with)h(a)f(set)h(of)f
-(w)o(ell-kno)o(wn)h(commands)g(for)e(manipulating)k(the)d(text)g(of)g
-(previous)75 1181 y(lines)c(and)f(using)h(that)e(text)g(in)i(new)f
-(commands.)19 b(The)14 b(basic)h(history)e(manipulation)j(commands)d
-(are)75 1236 y(similar)j(to)f(the)g(history)g(substitution)h(pro)o
-(vided)g(b)o(y)g Fo(csh)p Fp(.)137 1304 y(If)f(the)g(programmer)f
-(desires,)h(he)g(can)g(use)g(the)g(Readline)h(library)l(,)g(whic)o(h)f
-(includes)j(some)c(history)75 1359 y(manipulation)j(b)o(y)e(default,)g
-(and)h(has)f(the)g(added)h(adv)m(an)o(tage)f(of)f(command)h(line)i
-(editing.)137 1427 y(Before)i(declaring)i(an)o(y)d(functions)i(using)g
-(an)o(y)f(functionalit)o(y)h(the)f(History)g(library)h(pro)o(vides)f
-(in)75 1482 y(other)14 b(co)q(de,)h(an)f(application)i(writer)e(should)
-i(include)g(the)f(\014le)g Fo(<readline/history.h>)d
-Fp(in)j(an)o(y)f(\014le)75 1537 y(that)d(uses)h(the)h(History)e
-(library's)i(features.)18 b(It)12 b(supplies)i(extern)e(declarations)h
-(for)e(all)i(of)f(the)g(library's)75 1591 y(public)17
-b(functions)f(and)g(v)m(ariables,)g(and)f(declares)h(all)g(of)f(the)h
-(public)h(data)d(structures.)75 1722 y Fn(2.2)33 b(History)22
-b(Storage)137 1819 y Fp(The)16 b(history)f(list)h(is)g(an)f(arra)o(y)f
-(of)g(history)i(en)o(tries.)k(A)15 b(history)g(en)o(try)g(is)h
-(declared)g(as)f(follo)o(ws:)195 1885 y Fo(typedef)23
-b(void)g(*histdata_t;)195 1988 y(typedef)g(struct)g(_hist_entry)f({)243
-2040 y(char)h(*line;)243 2092 y(histdata_t)f(data;)195
-2144 y(})i(HIST_ENTRY;)137 2212 y Fp(The)16 b(history)f(list)h(itself)g
-(migh)o(t)f(therefore)g(b)q(e)h(declared)g(as)195 2277
-y Fo(HIST_ENTRY)22 b(**the_history_list;)137 2345 y Fp(The)16
-b(state)e(of)h(the)g(History)g(library)h(is)g(encapsulated)g(in)o(to)f
-(a)g(single)i(structure:)195 2411 y Fo(/*)219 2462 y(*)24
-b(A)f(structure)g(used)g(to)h(pass)f(around)g(the)h(current)f(state)g
-(of)g(the)h(history.)219 2514 y(*/)195 2566 y(typedef)f(struct)g
-(_hist_state)f({)243 2618 y(HIST_ENTRY)g(**entries;)h(/*)g(Pointer)g
-(to)h(the)f(entries)g(themselves.)g(*/)243 2670 y(int)g(offset;)262
-b(/*)23 b(The)h(location)f(pointer)f(within)h(this)h(array.)f(*/)p
-eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fp(6)1347 b(GNU)15 b(History)g(Library)243
-149 y Fo(int)23 b(length;)262 b(/*)23 b(Number)g(of)h(elements)f
-(within)g(this)g(array.)g(*/)243 201 y(int)g(size;)310
-b(/*)23 b(Number)g(of)h(slots)f(allocated)g(to)g(this)h(array.)f(*/)243
-253 y(int)g(flags;)195 305 y(})h(HISTORY_STATE;)137 372
-y Fp(If)16 b(the)f(\015ags)g(mem)o(b)q(er)g(includes)j
-Fo(HS_STIFLED)p Fp(,)13 b(the)i(history)h(has)f(b)q(een)h(sti\015ed.)75
-498 y Fn(2.3)33 b(History)22 b(F)-6 b(unctions)137 593
-y Fp(This)13 b(section)g(describ)q(es)h(the)e(calling)i(sequence)g(for)
-e(the)g(v)m(arious)h(functions)g(exp)q(orted)f(b)o(y)h(the)f
-Fk(gnu)75 648 y Fp(History)j(library)l(.)75 758 y Fi(2.3.1)30
-b(Initializing)20 b(History)h(and)f(State)g(Managemen)n(t)137
-853 y Fp(This)e(section)g(describ)q(es)h(functions)f(used)g(to)e
-(initialize)21 b(and)c(manage)g(the)g(state)g(of)g(the)g(History)75
-908 y(library)f(when)g(y)o(ou)f(w)o(an)o(t)f(to)g(use)i(the)f(history)g
-(functions)h(in)g(y)o(our)f(program.)1762 1021 y(F)l(unction)-1861
-b Fh(void)20 b Fg(using)p 333 1021 18 3 v 20 w(history)j
-Ff(\()p Fo(void)p Ff(\))195 1075 y Fp(Begin)e(a)f(session)g(in)h(whic)o
-(h)g(the)f(history)g(functions)g(migh)o(t)g(b)q(e)h(used.)34
-b(This)21 b(initializes)i(the)195 1130 y(in)o(teractiv)o(e)16
-b(v)m(ariables.)1762 1243 y(F)l(unction)-1861 b Fh(HISTORY_STATE)21
-b(*)e Fg(history)p 657 1243 V 21 w(get)p 755 1243 V 21
-w(history)p 951 1243 V 21 w(state)j Ff(\()p Fo(void)p
-Ff(\))195 1298 y Fp(Return)15 b(a)g(structure)g(describing)i(the)e
-(curren)o(t)g(state)f(of)h(the)g(input)i(history)l(.)1762
-1411 y(F)l(unction)-1861 b Fh(void)20 b Fg(history)p
-377 1411 V 20 w(set)p 468 1411 V 21 w(history)p 664 1411
-V 21 w(state)j Ff(\()p Fo(HISTORY_STATE)13 b(*state)p
-Ff(\))195 1466 y Fp(Set)i(the)h(state)e(of)h(the)g(history)g(list)h
-(according)g(to)e Fj(state)p Fp(.)75 1575 y Fi(2.3.2)30
-b(History)20 b(List)h(Managemen)n(t)137 1671 y Fp(These)11
-b(functions)h(manage)e(individual)k(en)o(tries)d(on)g(the)g(history)f
-(list,)i(or)f(set)f(parameters)g(managing)75 1725 y(the)15
-b(list)h(itself.)1762 1838 y(F)l(unction)-1861 b Fh(void)20
-b Fg(add)p 294 1838 V 20 w(history)j Ff(\()p Fo(const)14
-b(char)g(*string)p Ff(\))195 1893 y Fp(Place)i Fj(string)i
-Fp(at)d(the)g(end)h(of)e(the)h(history)g(list.)21 b(The)15
-b(asso)q(ciated)g(data)g(\014eld)h(\(if)f(an)o(y\))f(is)i(set)f(to)195
-1948 y Fo(NULL)p Fp(.)1762 2061 y(F)l(unction)-1861 b
-Fh(HIST_ENTRY)21 b(*)e Fg(remo)n(v)n(e)p 584 2061 V 20
-w(history)k Ff(\()p Fo(int)14 b(which)p Ff(\))195 2115
-y Fp(Remo)o(v)o(e)22 b(history)g(en)o(try)h(at)f(o\013set)g
-Fj(whic)o(h)h Fp(from)f(the)h(history)l(.)43 b(The)23
-b(remo)o(v)o(ed)f(elemen)o(t)h(is)195 2170 y(returned)16
-b(so)e(y)o(ou)h(can)h(free)f(the)g(line,)i(data,)d(and)h(con)o(taining)
-h(structure.)1762 2283 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
-b(*)e Fg(replace)p 580 2283 V 22 w(history)p 777 2283
-V 20 w(en)n(try)24 b Ff(\()p Fo(int)14 b(which,)g(const)h(char)283
-2338 y(*line,)f(histdata_t)g(data)p Ff(\))195 2393 y
-Fp(Mak)o(e)f(the)h(history)g(en)o(try)f(at)g(o\013set)g
-Fj(whic)o(h)i Fp(ha)o(v)o(e)e Fj(line)18 b Fp(and)c Fj(data)p
-Fp(.)19 b(This)14 b(returns)g(the)g(old)g(en)o(try)195
-2448 y(so)19 b(y)o(ou)f(can)i(disp)q(ose)g(of)e(the)i(data.)30
-b(In)20 b(the)f(case)g(of)g(an)g(in)o(v)m(alid)i Fj(whic)o(h)p
-Fp(,)g(a)d Fo(NULL)h Fp(p)q(oin)o(ter)g(is)195 2502 y(returned.)1762
-2615 y(F)l(unction)-1861 b Fh(void)20 b Fg(clear)p 320
-2615 V 21 w(history)j Ff(\()p Fo(void)p Ff(\))195 2670
-y Fp(Clear)15 b(the)h(history)f(list)h(b)o(y)f(deleting)i(all)f(the)f
-(en)o(tries.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(7)1762 149 y(F)l(unction)-1861 b Fh(void)20
-b Fg(sti\015e)p 320 149 18 3 v 21 w(history)j Ff(\()p
-Fo(int)14 b(max)p Ff(\))195 204 y Fp(Sti\015e)i(the)f(history)h(list,)f
-(remem)o(b)q(ering)h(only)g(the)f(last)g Fj(max)j Fp(en)o(tries.)1762
-302 y(F)l(unction)-1861 b Fh(int)20 b Fg(unsti\015e)p
-358 302 V 21 w(history)i Ff(\()p Fo(void)p Ff(\))195
-357 y Fp(Stop)14 b(sti\015ing)g(the)g(history)l(.)20
-b(This)14 b(returns)f(the)h(previously-set)h(maxim)o(um)f(n)o(um)o(b)q
-(er)g(of)f(history)195 411 y(en)o(tries)h(\(as)e(set)i(b)o(y)f
-Fo(stifle_history\(\))p Fp(\).)k(The)c(v)m(alue)i(is)f(p)q(ositiv)o(e)g
-(if)g(the)g(history)f(w)o(as)f(sti\015ed,)195 466 y(negativ)o(e)j(if)h
-(it)f(w)o(asn't.)1762 564 y(F)l(unction)-1861 b Fh(int)20
-b Fg(history)p 351 564 V 20 w(is)p 409 564 V 21 w(sti\015ed)k
-Ff(\()p Fo(void)p Ff(\))195 619 y Fp(Returns)15 b(non-zero)g(if)h(the)f
-(history)g(is)h(sti\015ed,)g(zero)f(if)g(it)h(is)g(not.)75
-719 y Fi(2.3.3)30 b(Information)19 b(Ab)r(out)i(the)f(History)h(List)
-137 811 y Fp(These)13 b(functions)h(return)f(information)g(ab)q(out)f
-(the)h(en)o(tire)h(history)e(list)i(or)e(individual)k(list)e(en)o
-(tries.)1762 909 y(F)l(unction)-1861 b Fh(HIST_ENTRY)21
-b(**)e Fg(history)p 605 909 V 21 w(list)24 b Ff(\()p
-Fo(void)p Ff(\))195 964 y Fp(Return)15 b(a)g Fo(NULL)f
-Fp(terminated)i(arra)o(y)e(of)h Fo(HIST_ENTRY)f(*)h Fp(whic)o(h)h(is)f
-(the)h(curren)o(t)f(input)h(history)l(.)195 1018 y(Elemen)o(t)g(0)f(of)
-f(this)i(list)g(is)g(the)f(b)q(eginning)i(of)e(time.)20
-b(If)c(there)f(is)h(no)f(history)l(,)g(return)g Fo(NULL)p
-Fp(.)1762 1116 y(F)l(unction)-1861 b Fh(int)20 b Fg(where)p
-325 1116 V 20 w(history)j Ff(\()p Fo(void)p Ff(\))195
-1171 y Fp(Returns)15 b(the)g(o\013set)f(of)h(the)g(curren)o(t)g
-(history)g(elemen)o(t.)1762 1268 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(curren)n(t)p 587 1268 V 21
-w(history)k Ff(\()p Fo(void)p Ff(\))195 1323 y Fp(Return)12
-b(the)h(history)f(en)o(try)g(at)g(the)g(curren)o(t)h(p)q(osition,)g(as)
-f(determined)i(b)o(y)e Fo(where_history\(\))p Fp(.)195
-1378 y(If)j(there)h(is)f(no)h(en)o(try)e(there,)h(return)g(a)g
-Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1475 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(history)p 579 1475 V 21 w(get)j
-Ff(\()p Fo(int)15 b(offset)p Ff(\))195 1530 y Fp(Return)20
-b(the)h(history)g(en)o(try)f(at)h(p)q(osition)g Fj(o\013set)p
-Fp(,)g(starting)f(from)g Fo(history_base)f Fp(\(see)i(Sec-)195
-1585 y(tion)15 b(2.4)f([History)g(V)l(ariables],)h(page)g(10\).)j(If)d
-(there)g(is)g(no)g(en)o(try)f(there,)h(or)f(if)h Fj(o\013set)g
-Fp(is)g(greater)195 1640 y(than)g(the)g(history)g(length,)h(return)f(a)
-g Fo(NULL)g Fp(p)q(oin)o(ter.)1762 1737 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 1737 V 20 w(total)p 487
-1737 V 22 w(b)n(ytes)j Ff(\()p Fo(void)p Ff(\))195 1792
-y Fp(Return)13 b(the)h(n)o(um)o(b)q(er)g(of)g(b)o(ytes)f(that)g(the)h
-(primary)g(history)g(en)o(tries)g(are)g(using.)20 b(This)14
-b(function)195 1847 y(returns)h(the)g(sum)h(of)e(the)i(lengths)f(of)g
-(all)h(the)g(lines)g(in)g(the)g(history)l(.)75 1947 y
-Fi(2.3.4)30 b(Mo)n(ving)21 b(Around)f(the)h(History)g(List)137
-2040 y Fp(These)16 b(functions)g(allo)o(w)f(the)g(curren)o(t)h(index)g
-(in)o(to)f(the)h(history)f(list)h(to)e(b)q(e)i(set)f(or)g(c)o(hanged.)
-1762 2137 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
-351 2137 V 20 w(set)p 442 2137 V 21 w(p)r(os)h Ff(\()p
-Fo(int)15 b(pos)p Ff(\))195 2192 y Fp(Set)j(the)h(curren)o(t)f(history)
-g(o\013set)g(to)f Fj(p)q(os)p Fp(,)i(an)f(absolute)h(index)h(in)o(to)e
-(the)g(list.)30 b(Returns)18 b(1)g(on)195 2247 y(success,)d(0)g(if)h
-Fj(p)q(os)h Fp(is)f(less)g(than)f(zero)g(or)g(greater)f(than)h(the)g(n)
-o(um)o(b)q(er)h(of)e(history)i(en)o(tries.)1762 2344
-y(F)l(unction)-1861 b Fh(HIST_ENTRY)21 b(*)e Fg(previous)p
-615 2344 V 20 w(history)k Ff(\()p Fo(void)p Ff(\))195
-2399 y Fp(Bac)o(k)14 b(up)h(the)g(curren)o(t)f(history)g(o\013set)g(to)
-f(the)i(previous)g(history)f(en)o(try)l(,)g(and)h(return)f(a)g(p)q(oin)
-o(ter)195 2454 y(to)h(that)f(en)o(try)l(.)20 b(If)15
-b(there)g(is)h(no)f(previous)h(en)o(try)l(,)f(return)g(a)g
-Fo(NULL)g Fp(p)q(oin)o(ter.)1762 2552 y(F)l(unction)-1861
-b Fh(HIST_ENTRY)21 b(*)e Fg(next)p 514 2552 V 21 w(history)k
-Ff(\()p Fo(void)p Ff(\))195 2606 y Fp(Mo)o(v)o(e)17 b(the)h(curren)o(t)
-f(history)h(o\013set)f(forw)o(ard)f(to)h(the)h(next)g(history)g(en)o
-(try)l(,)g(and)g(return)f(the)h(a)195 2661 y(p)q(oin)o(ter)e(to)e(that)
-h(en)o(try)l(.)k(If)d(there)f(is)h(no)f(next)g(en)o(try)l(,)g(return)g
-(a)g Fo(NULL)g Fp(p)q(oin)o(ter.)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fp(8)1347 b(GNU)15 b(History)g(Library)75
-149 y Fi(2.3.5)30 b(Searc)n(hing)21 b(the)f(History)h(List)137
-245 y Fp(These)14 b(functions)g(allo)o(w)g(searc)o(hing)g(of)e(the)i
-(history)f(list)h(for)f(en)o(tries)h(con)o(taining)g(a)f(sp)q(eci\014c)
-i(string.)75 300 y(Searc)o(hing)f(ma)o(y)g(b)q(e)g(p)q(erformed)g(b)q
-(oth)g(forw)o(ard)e(and)i(bac)o(kw)o(ard)f(from)g(the)h(curren)o(t)g
-(history)f(p)q(osition.)75 355 y(The)j(searc)o(h)f(ma)o(y)g(b)q(e)i
-Fj(anc)o(hored)p Fp(,)e(meaning)h(that)f(the)h(string)g(m)o(ust)f(matc)
-o(h)g(at)g(the)h(b)q(eginning)i(of)d(the)75 410 y(history)g(en)o(try)l
-(.)1762 524 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p
-351 524 18 3 v 20 w(searc)n(h)j Ff(\()p Fo(const)14 b(char)h(*string,)f
-(int)h(direction)p Ff(\))195 578 y Fp(Searc)o(h)g(the)f(history)g(for)g
-Fj(string)p Fp(,)g(starting)g(at)g(the)h(curren)o(t)f(history)g
-(o\013set.)19 b(If)c Fj(direction)g Fp(is)g(less)195
-633 y(than)20 b(0,)g(then)h(the)f(searc)o(h)f(is)i(through)f(previous)g
-(en)o(tries,)i(otherwise)e(through)f(subsequen)o(t)195
-688 y(en)o(tries.)h(If)c Fj(string)j Fp(is)d(found,)f(then)g(the)h
-(curren)o(t)f(history)g(index)h(is)g(set)f(to)g(that)f(history)h(en)o
-(try)l(,)195 743 y(and)i(the)g(v)m(alue)h(returned)f(is)g(the)g
-(o\013set)e(in)j(the)f(line)h(of)e(the)h(en)o(try)g(where)g
-Fj(string)j Fp(w)o(as)c(found.)195 798 y(Otherwise,)g(nothing)f(is)h(c)
-o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 912 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 912 V 20 w(searc)n(h)p
-527 912 V 21 w(pre\014x)i Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h
-(direction)p Ff(\))195 966 y Fp(Searc)o(h)20 b(the)h(history)f(for)g
-Fj(string)p Fp(,)h(starting)e(at)h(the)g(curren)o(t)h(history)f
-(o\013set.)34 b(The)20 b(searc)o(h)g(is)195 1021 y(anc)o(hored:)g(matc)
-o(hing)14 b(lines)j(m)o(ust)d(b)q(egin)i(with)f Fj(string)p
-Fp(.)20 b(If)15 b Fj(direction)h Fp(is)f(less)g(than)g(0,)f(then)h(the)
-195 1076 y(searc)o(h)g(is)i(through)e(previous)h(en)o(tries,)g
-(otherwise)g(through)f(subsequen)o(t)h(en)o(tries.)22
-b(If)16 b Fj(string)j Fp(is)195 1131 y(found,)e(then)g(the)f(curren)o
-(t)h(history)f(index)i(is)f(set)f(to)g(that)g(en)o(try)l(,)g(and)h(the)
-f(return)h(v)m(alue)h(is)f(0.)195 1186 y(Otherwise,)f(nothing)f(is)h(c)
-o(hanged,)f(and)h(a)e(-1)h(is)h(returned.)1762 1300 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 1300 V 20 w(searc)n(h)p
-527 1300 V 21 w(p)r(os)h Ff(\()p Fo(const)14 b(char)h(*string,)f(int)h
-(direction,)f(int)283 1355 y(pos)p Ff(\))195 1409 y Fp(Searc)o(h)j(for)
-g Fj(string)k Fp(in)d(the)f(history)g(list,)h(starting)e(at)h
-Fj(p)q(os)p Fp(,)g(an)g(absolute)h(index)g(in)o(to)f(the)h(list.)195
-1464 y(If)g Fj(direction)i Fp(is)e(negativ)o(e,)h(the)f(searc)o(h)g
-(pro)q(ceeds)g(bac)o(kw)o(ard)g(from)f Fj(p)q(os)p Fp(,)h(otherwise)h
-(forw)o(ard.)195 1519 y(Returns)j(the)g(absolute)g(index)h(of)f(the)g
-(history)g(elemen)o(t)h(where)f Fj(string)k Fp(w)o(as)21
-b(found,)j(or)d(-1)195 1574 y(otherwise.)75 1684 y Fi(2.3.6)30
-b(Managing)20 b(the)g(History)h(File)137 1780 y Fp(The)16
-b(History)g(library)h(can)e(read)h(the)g(history)g(from)f(and)h(write)g
-(it)g(to)f(a)h(\014le.)22 b(This)17 b(section)f(do)q(cu-)75
-1835 y(men)o(ts)f(the)g(functions)h(for)f(managing)g(a)g(history)g
-(\014le.)1762 1949 y(F)l(unction)-1861 b Fh(int)20 b
-Fg(read)p 286 1949 V 20 w(history)i Ff(\()p Fo(const)15
-b(char)f(*filename)p Ff(\))195 2003 y Fp(Add)h(the)g(con)o(ten)o(ts)f
-(of)h Fj(\014lename)j Fp(to)c(the)h(history)g(list,)g(a)g(line)h(at)f
-(a)f(time.)20 b(If)15 b Fj(\014lename)k Fp(is)c Fo(NULL)p
-Fp(,)195 2058 y(then)h(read)f(from)f(`)p Fo(~/.history)p
-Fp('.)k(Returns)d(0)f(if)i(successful,)g(or)f Fo(errno)f
-Fp(if)i(not.)1762 2172 y(F)l(unction)-1861 b Fh(int)20
-b Fg(read)p 286 2172 V 20 w(history)p 481 2172 V 20 w(range)i
-Ff(\()p Fo(const)14 b(char)h(*filename,)f(int)h(from,)f(int)h(to)p
-Ff(\))195 2227 y Fp(Read)f(a)f(range)h(of)f(lines)j(from)d
-Fj(\014lename)p Fp(,)i(adding)g(them)f(to)f(the)h(history)g(list.)20
-b(Start)13 b(reading)i(at)195 2282 y(line)g Fj(from)d
-Fp(and)h(end)h(at)f Fj(to)p Fp(.)18 b(If)c Fj(from)e
-Fp(is)i(zero,)f(start)f(at)g(the)h(b)q(eginning.)22 b(If)13
-b Fj(to)i Fp(is)e(less)h(than)f Fj(from)p Fp(,)195 2337
-y(then)i(read)g(un)o(til)i(the)e(end)g(of)g(the)g(\014le.)21
-b(If)15 b Fj(\014lename)k Fp(is)d Fo(NULL)p Fp(,)e(then)h(read)g(from)f
-(`)p Fo(~/.history)p Fp('.)195 2392 y(Returns)h(0)g(if)g(successful,)h
-(or)f Fo(errno)g Fp(if)g(not.)1762 2506 y(F)l(unction)-1861
-b Fh(int)20 b Fg(write)p 304 2506 V 22 w(history)i Ff(\()p
-Fo(const)15 b(char)f(*filename)p Ff(\))195 2560 y Fp(W)l(rite)k(the)f
-(curren)o(t)g(history)h(to)f Fj(\014lename)p Fp(,)h(o)o(v)o(erwriting)f
-Fj(\014lename)k Fp(if)d(necessary)l(.)27 b(If)18 b Fj(\014lename)195
-2615 y Fp(is)f Fo(NULL)p Fp(,)e(then)h(write)h(the)f(history)g(list)h
-(to)e(`)p Fo(~/.history)p Fp('.)21 b(Returns)16 b(0)f(on)h(success,)h
-(or)f Fo(errno)195 2670 y Fp(on)f(a)g(read)g(or)g(write)g(error.)p
-eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)889 b(9)1762 149 y(F)l(unction)-1861 b Fh(int)20
-b Fg(app)r(end)p 360 149 18 3 v 19 w(history)j Ff(\()p
-Fo(int)14 b(nelements,)g(const)h(char)f(*filename)p Ff(\))195
-204 y Fp(App)q(end)19 b(the)e(last)g Fj(nelemen)o(ts)k
-Fp(of)16 b(the)i(history)f(list)h(to)f Fj(\014lename)p
-Fp(.)27 b(If)18 b Fj(\014lename)j Fp(is)d Fo(NULL)p Fp(,)f(then)195
-259 y(app)q(end)f(to)f(`)p Fo(~/.history)p Fp('.)j(Returns)c(0)h(on)g
-(success,)h(or)e Fo(errno)h Fp(on)g(a)g(read)g(or)g(write)g(error.)1762
-404 y(F)l(unction)-1861 b Fh(int)20 b Fg(history)p 351
-404 V 20 w(truncate)p 582 404 V 21 w(\014le)k Ff(\()p
-Fo(const)14 b(char)h(*filename,)e(int)i(nlines)p Ff(\))195
-459 y Fp(T)l(runcate)k(the)h(history)f(\014le)h Fj(\014lename)p
-Fp(,)h(lea)o(ving)f(only)g(the)f(last)g Fj(nlines)k Fp(lines.)34
-b(If)20 b Fj(\014lename)i Fp(is)195 513 y Fo(NULL)p Fp(,)14
-b(then)i(`)p Fo(~/.history)p Fp(')d(is)j(truncated.)j(Returns)c(0)g(on)
-g(success,)h(or)e Fo(errno)h Fp(on)g(failure.)75 644
-y Fi(2.3.7)30 b(History)20 b(Expansion)137 750 y Fp(These)c(functions)g
-(implemen)o(t)g(history)f(expansion.)1762 895 y(F)l(unction)-1861
-b Fh(int)20 b Fg(history)p 351 895 V 20 w(expand)j Ff(\()p
-Fo(char)14 b(*string,)g(char)h(**output)p Ff(\))195 949
-y Fp(Expand)j Fj(string)p Fp(,)f(placing)h(the)g(result)f(in)o(to)g
-Fj(output)p Fp(,)h(a)e(p)q(oin)o(ter)i(to)f(a)g(string)g(\(see)g
-(Section)h(1.1)195 1004 y([History)d(In)o(teraction],)f(page)h(1\).)20
-b(Returns:)195 1098 y Fo(0)216 b Fp(If)19 b(no)g(expansions)g(to)q(ok)f
-(place)i(\(or,)e(if)i(the)e(only)i(c)o(hange)e(in)i(the)f(text)f(w)o
-(as)g(the)435 1152 y(remo)o(v)m(al)d(of)g(escap)q(e)h(c)o(haracters)e
-(preceding)i(the)f(history)g(expansion)h(c)o(haracter\);)195
-1241 y Fo(1)216 b Fp(if)16 b(expansions)g(did)g(tak)o(e)e(place;)195
-1330 y Fo(-1)192 b Fp(if)16 b(there)f(w)o(as)f(an)h(error)g(in)h
-(expansion;)195 1419 y Fo(2)216 b Fp(if)14 b(the)g(returned)g(line)i
-(should)f(b)q(e)f(displa)o(y)o(ed,)h(but)f(not)f(executed,)i(as)e(with)
-h(the)g Fo(:p)435 1474 y Fp(mo)q(di\014er)i(\(see)f(Section)h(1.1.3)e
-([Mo)q(di\014ers],)h(page)g(2\).)195 1568 y(If)g(an)h(error)e(o)q
-(curred)i(in)g(expansion,)f(then)h Fj(output)g Fp(con)o(tains)f(a)g
-(descriptiv)o(e)i(error)d(message.)1762 1713 y(F)l(unction)-1861
-b Fh(char)20 b(*)f Fg(get)p 324 1713 V 21 w(history)p
-520 1713 V 20 w(ev)n(en)n(t)25 b Ff(\()p Fo(const)14
-b(char)h(*string,)f(int)g(*cindex,)g(int)283 1767 y(qchar)p
-Ff(\))195 1822 y Fp(Returns)22 b(the)h(text)f(of)h(the)f(history)h(ev)o
-(en)o(t)g(b)q(eginning)h(at)f Fj(string)j Fo(+)d Fj(*cindex)p
-Fp(.)43 b Fj(*cindex)27 b Fp(is)195 1877 y(mo)q(di\014ed)16
-b(to)e(p)q(oin)o(t)h(to)f(after)g(the)h(ev)o(en)o(t)f(sp)q(eci\014er.)
-22 b(A)o(t)14 b(function)h(en)o(try)l(,)g Fj(cindex)k
-Fp(p)q(oin)o(ts)c(to)f(the)195 1932 y(index)19 b(in)o(to)f
-Fj(string)k Fp(where)c(the)g(history)g(ev)o(en)o(t)g(sp)q
-(eci\014cation)h(b)q(egins.)30 b Fj(qc)o(har)21 b Fp(is)d(a)g(c)o
-(haracter)195 1987 y(that)13 b(is)h(allo)o(w)o(ed)g(to)e(end)i(the)g
-(ev)o(en)o(t)f(sp)q(eci\014cation)j(in)e(addition)g(to)f(the)h
-(\\normal")f(terminating)195 2041 y(c)o(haracters.)1762
-2186 y(F)l(unction)-1861 b Fh(char)20 b(**)f Fg(history)p
-448 2186 V 21 w(tok)n(enize)25 b Ff(\()p Fo(const)14
-b(char)h(*string)p Ff(\))195 2241 y Fp(Return)g(an)g(arra)o(y)g(of)g
-(tok)o(ens)g(parsed)g(out)g(of)g Fj(string)p Fp(,)g(m)o(uc)o(h)h(as)f
-(the)g(shell)i(migh)o(t.)k(The)15 b(tok)o(ens)195 2296
-y(are)h(split)h(on)e(the)h(c)o(haracters)g(in)g(the)g
-Fj(history)p 1007 2296 14 2 v 17 w(w)o(ord)p 1122 2296
-V 15 w(delimiters)k Fp(v)m(ariable,)d(and)f(shell)i(quoting)195
-2351 y(con)o(v)o(en)o(tions)d(are)g(ob)q(ey)o(ed.)1762
-2496 y(F)l(unction)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 2496 18 3 v 21 w(arg)p 524 2496 V 19 w(extract)24
-b Ff(\()p Fo(int)14 b(first,)h(int)g(last,)f(const)g(char)283
-2550 y(*string)p Ff(\))195 2605 y Fp(Extract)19 b(a)h(string)g(segmen)o
-(t)g(consisting)h(of)f(the)g Fj(\014rst)h Fp(through)f
-Fj(last)h Fp(argumen)o(ts)e(presen)o(t)h(in)195 2660
-y Fj(string)p Fp(.)g(Argumen)o(ts)15 b(are)f(split)j(using)f
-Fo(history_tokenize)p Fp(.)p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fp(10)1324 b(GNU)15 b(History)g(Library)75
-149 y Fn(2.4)33 b(History)22 b(V)-6 b(ariables)137 251
-y Fp(This)18 b(section)f(describ)q(es)i(the)e(externally-visible)k(v)m
-(ariables)d(exp)q(orted)f(b)o(y)g(the)g Fk(gnu)g Fp(History)g(Li-)75
-306 y(brary)l(.)1773 438 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 438 18 3 v 20 w(base)195 493 y Fp(The)15
-b(logical)i(o\013set)d(of)h(the)g(\014rst)g(en)o(try)g(in)h(the)f
-(history)g(list.)1773 625 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 625 V 20 w(length)195 680 y Fp(The)15
-b(n)o(um)o(b)q(er)h(of)f(en)o(tries)g(curren)o(tly)h(stored)f(in)h(the)
-f(history)g(list.)1773 812 y(V)l(ariable)-1861 b Fh(int)20
-b Fg(history)p 351 812 V 20 w(max)p 478 812 V 20 w(en)n(tries)195
-867 y Fp(The)j(maxim)o(um)g(n)o(um)o(b)q(er)g(of)g(history)g(en)o
-(tries.)43 b(This)24 b(m)o(ust)e(b)q(e)i(c)o(hanged)f(using)h
-Fo(stifle_)195 922 y(history\(\))p Fp(.)1773 1054 y(V)l(ariable)-1861
-b Fh(char)20 b Fg(history)p 377 1054 V 20 w(expansion)p
-644 1054 V 21 w(c)n(har)195 1109 y Fp(The)e(c)o(haracter)f(that)g(in)o
-(tro)q(duces)h(a)f(history)h(ev)o(en)o(t.)27 b(The)18
-b(default)g(is)g(`)p Fo(!)p Fp('.)26 b(Setting)18 b(this)g(to)f(0)195
-1164 y(inhibits)g(history)f(expansion.)1773 1296 y(V)l(ariable)-1861
-b Fh(char)20 b Fg(history)p 377 1296 V 20 w(subst)p 529
-1296 V 20 w(c)n(har)195 1351 y Fp(The)h(c)o(haracter)e(that)h(in)o(v)o
-(ok)o(es)g(w)o(ord)g(substitution)h(if)g(found)f(at)g(the)h(start)e(of)
-h(a)g(line.)37 b(The)195 1406 y(default)16 b(is)f(`)p
-Fo(^)p Fp('.)1773 1538 y(V)l(ariable)-1861 b Fh(char)20
-b Fg(history)p 377 1538 V 20 w(commen)n(t)p 627 1538
-V 19 w(c)n(har)195 1593 y Fp(During)f(tok)o(enization,)h(if)f(this)h(c)
-o(haracter)e(is)h(seen)h(as)e(the)h(\014rst)g(c)o(haracter)f(of)g(a)h
-(w)o(ord,)g(then)195 1648 y(it)j(and)g(all)g(subsequen)o(t)h(c)o
-(haracters)d(up)j(to)e(a)g(newline)i(are)f(ignored,)h(suppressing)g
-(history)195 1702 y(expansion)16 b(for)f(the)g(remainder)h(of)f(the)g
-(line.)21 b(This)16 b(is)g(disabled)h(b)o(y)e(default.)1773
-1835 y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 1835 V 21 w(w)n(ord)p 567 1835 V 20 w(delimiters)195
-1889 y Fp(The)14 b(c)o(haracters)f(that)g(separate)g(tok)o(ens)h(for)f
-Fo(history_tokenize\(\))p Fp(.)k(The)d(default)g(v)m(alue)h(is)f
-Fo(")195 1944 y(\\t\\n\(\)<>;&|")p Fp(.)1773 2077 y(V)l(ariable)-1861
-b Fh(char)20 b(*)f Fg(history)p 422 2077 V 21 w(no)p
-504 2077 V 20 w(expand)p 704 2077 V 20 w(c)n(hars)195
-2131 y Fp(The)c(list)h(of)e(c)o(haracters)g(whic)o(h)i(inhibit)h
-(history)e(expansion)h(if)f(found)h(immediately)g(follo)o(wing)195
-2186 y Fj(history)p 336 2186 14 2 v 16 w(expansion)p
-547 2186 V 18 w(c)o(har)p Fp(.)j(The)d(default)f(is)h(space,)f(tab,)g
-(newline,)h(carriage)f(return,)g(and)h(`)p Fo(=)p Fp('.)1773
-2318 y(V)l(ariable)-1861 b Fh(char)20 b(*)f Fg(history)p
-422 2318 18 3 v 21 w(searc)n(h)p 599 2318 V 20 w(delimiter)p
-843 2318 V 23 w(c)n(hars)195 2373 y Fp(The)13 b(list)h(of)f(additional)
-h(c)o(haracters)e(whic)o(h)i(can)g(delimit)g(a)f(history)g(searc)o(h)g
-(string,)g(in)h(addition)195 2428 y(to)h(space,)g(T)l(AB,)g(`)p
-Fo(:)p Fp(')f(and)h(`)p Fo(?)p Fp(')g(in)h(the)f(case)g(of)g(a)g
-(substring)g(searc)o(h.)20 b(The)c(default)f(is)h(empt)o(y)l(.)1773
-2560 y(V)l(ariable)-1861 b Fh(int)20 b Fg(history)p 351
-2560 V 20 w(quotes)p 533 2560 V 21 w(inhibit)p 717 2560
-V 23 w(expansion)195 2615 y Fp(If)15 b(non-zero,)f(single-quoted)j(w)o
-(ords)c(are)i(not)f(scanned)h(for)f(the)h(history)g(expansion)g(c)o
-(haracter.)195 2670 y(The)g(default)h(v)m(alue)h(is)e(0.)p
-eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fp(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(History)867 b(11)1773 149 y(V)l(ariable)-1861 b Fh(rl_linebuf_func_t)
-22 b(*)d Fg(history)p 762 149 18 3 v 21 w(inhibit)p 946
-149 V 23 w(expansion)p 1216 149 V 20 w(function)195 204
-y Fp(This)e(should)h(b)q(e)f(set)g(to)f(the)g(address)h(of)f(a)h
-(function)g(that)f(tak)o(es)g(t)o(w)o(o)f(argumen)o(ts:)22
-b(a)17 b Fo(char)d(*)195 259 y Fp(\()p Fj(string)t Fp(\))e(and)i(an)f
-Fo(int)g Fp(index)i(in)o(to)e(that)f(string)i(\()p Fj(i)r
-Fp(\).)19 b(It)14 b(should)g(return)f(a)g(non-zero)h(v)m(alue)g(if)g
-(the)195 314 y(history)h(expansion)g(starting)f(at)g
-Fj(string[i])i Fp(should)g(not)e(b)q(e)h(p)q(erformed;)g(zero)f(if)h
-(the)g(expansion)195 369 y(should)i(b)q(e)g(done.)22
-b(It)16 b(is)h(in)o(tended)g(for)e(use)i(b)o(y)f(applications)h(lik)o
-(e)g(Bash)f(that)g(use)g(the)g(history)195 423 y(expansion)g(c)o
-(haracter)f(for)f(additional)j(purp)q(oses.)j(By)c(default,)f(this)h(v)
-m(ariable)g(is)g(set)f(to)f Fo(NULL)p Fp(.)75 543 y Fn(2.5)33
-b(History)22 b(Programming)h(Example)137 637 y Fp(The)16
-b(follo)o(wing)g(program)e(demonstrates)g(simple)j(use)e(of)g(the)g
-Fk(gnu)g Fp(History)g(Library)l(.)195 698 y Fo(#include)23
-b(<stdio.h>)195 750 y(#include)g(<readline/history.h>)195
-854 y(main)g(\(argc,)g(argv\))314 906 y(int)h(argc;)314
-958 y(char)g(**argv;)195 1010 y({)243 1061 y(char)f(line[1024],)f(*t;)
-243 1113 y(int)h(len,)g(done)h(=)g(0;)243 1217 y(line[0])f(=)g(0;)243
-1321 y(using_history)f(\(\);)243 1373 y(while)h(\(!done\))290
-1425 y({)338 1477 y(printf)g(\("history$)g("\);)338 1528
-y(fflush)g(\(stdout\);)338 1580 y(t)h(=)g(fgets)f(\(line,)g(sizeof)g
-(\(line\))g(-)h(1,)f(stdin\);)338 1632 y(if)h(\(t)f(&&)h(*t\))386
-1684 y({)434 1736 y(len)f(=)h(strlen)f(\(t\);)434 1788
-y(if)g(\(t[len)g(-)h(1])g(==)f('\\n'\))481 1840 y(t[len)h(-)f(1])h(=)g
-('\\0';)386 1892 y(})338 1995 y(if)g(\(!t\))386 2047
-y(strcpy)f(\(line,)g("quit"\);)338 2151 y(if)h(\(line[0]\))386
-2203 y({)434 2255 y(char)f(*expansion;)434 2307 y(int)g(result;)434
-2411 y(result)g(=)g(history_expand)f(\(line,)h(&expansion\);)434
-2462 y(if)g(\(result\))481 2514 y(fprintf)g(\(stderr,)g("\045s\\n",)g
-(expansion\);)434 2618 y(if)g(\(result)g(<)h(0)g(||)f(result)g(==)h
-(2\))481 2670 y({)p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fp(12)1324 b(GNU)15 b(History)g(Library)529
-149 y Fo(free)23 b(\(expansion\);)529 201 y(continue;)481
-253 y(})434 357 y(add_history)f(\(expansion\);)434 409
-y(strncpy)h(\(line,)g(expansion,)f(sizeof)h(\(line\))g(-)h(1\);)434
-461 y(free)f(\(expansion\);)386 513 y(})338 616 y(if)h(\(strcmp)f
-(\(line,)g("quit"\))g(==)g(0\))386 668 y(done)g(=)h(1;)338
-720 y(else)f(if)h(\(strcmp)f(\(line,)g("save"\))g(==)h(0\))386
-772 y(write_history)e(\("history_file"\);)338 824 y(else)h(if)h
-(\(strcmp)f(\(line,)g("read"\))g(==)h(0\))386 876 y(read_history)e
-(\("history_file"\);)338 928 y(else)h(if)h(\(strcmp)f(\(line,)g
-("list"\))g(==)h(0\))386 980 y({)434 1032 y(register)e(HIST_ENTRY)h
-(**the_list;)434 1083 y(register)f(int)i(i;)434 1187
-y(the_list)e(=)i(history_list)e(\(\);)434 1239 y(if)h(\(the_list\))481
-1291 y(for)h(\(i)f(=)h(0;)g(the_list[i];)e(i++\))529
-1343 y(printf)h(\("\045d:)g(\045s\\n",)g(i)h(+)g(history_base,)e
-(the_list[i]->line\);)386 1395 y(})338 1447 y(else)h(if)h(\(strncmp)f
-(\(line,)g("delete",)g(6\))g(==)h(0\))386 1499 y({)434
-1550 y(int)f(which;)434 1602 y(if)g(\(\(sscanf)g(\(line)g(+)h(6,)f
-("\045d",)h(&which\)\))e(==)i(1\))481 1654 y({)529 1706
-y(HIST_ENTRY)f(*entry)g(=)g(remove_history)f(\(which\);)529
-1758 y(if)i(\(!entry\))577 1810 y(fprintf)f(\(stderr,)f("No)i(such)f
-(entry)g(\045d\\n",)g(which\);)529 1862 y(else)577 1914
-y({)625 1966 y(free)g(\(entry->line\);)625 2017 y(free)g(\(entry\);)577
-2069 y(})481 2121 y(})434 2173 y(else)481 2225 y({)529
-2277 y(fprintf)g(\(stderr,)g("non-numeric)f(arg)h(given)h(to)f
-(`delete'\\n"\);)481 2329 y(})386 2381 y(})290 2433 y(})195
-2484 y(})p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fp(App)q(endix)17 b(A:)e(Concept)g(Index)1196
-b(13)75 149 y Fl(App)r(endix)25 b(A)41 b(Concept)27 b(Index)75
-321 y Fn(A)75 383 y Fe(anc)o(hored)14 b(searc)o(h)s Fd(.)8
-b(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)16
-b Fe(8)75 507 y Fn(E)75 568 y Fe(ev)o(en)o(t)d(designators)g
-Fd(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)23 b
-Fe(1)1012 321 y Fn(H)1012 431 y Fe(history)15 b(ev)o(en)o(ts)d
-Fd(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Fe(1)1012 500 y(history)15 b(expansion)8 b Fd(.)g(.)e(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)21 b Fe(1)1012 568 y(History)14 b(Searc)o(hing)6
-b Fd(.)j(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b
-Fe(8)p eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fp(14)1324 b(GNU)15 b(History)g(Library)p
-eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fp(App)q(endix)17 b(B:)e(F)l(unction)h(and)g(V)l
-(ariable)g(Index)919 b(15)75 149 y Fl(App)r(endix)25
-b(B)41 b(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
-b(Index)75 321 y Fn(A)75 382 y Fc(add_histor)o(y)8 b
-Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(6)75 428 y Fc(append_his)o(to)o(ry)8 b Fd(.)s(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)21 b Fe(9)75 557 y Fn(C)75 618
-y Fc(clear_hist)o(or)o(y)6 b Fd(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)22 b Fe(6)75 664 y Fc(current_hi)o(st)o(ory)7
-b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b
-Fe(7)75 793 y Fn(G)75 854 y Fc(get_histor)o(y_)o(eve)o(nt)5
-b Fd(.)t(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19 b Fe(9)75
-984 y Fn(H)75 1044 y Fc(history_ar)o(g_)o(ext)o(ra)o(ct)5
-b Fd(.)s(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)18 b Fe(9)75 1090 y Fc(history_ba)o(se)
-6 b Fd(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Fe(10)75 1136 y Fc(history_co)o(mm)o(ent)o(_c)o(har)s
-Fd(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)16 b Fe(10)75 1182 y Fc(history_ex)o(pa)o(nd)8
-b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Fe(9)75 1227 y Fc(history_ex)o(pa)o(nsi)o(on)o(_ch)o(ar)8
-b Fd(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)24 b Fe(10)75 1273 y Fc(history_ge)o(t)8
-b Fd(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(7)75 1319 y Fc(history_ge)o(t_)o(his)o(to)o(ry_)o(sta)o(te)6
-b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)22 b Fe(6)75 1364 y Fc(history_in)o(hi)o(bit)o(_e)o(xpa)o(nsi)o(on)
-o(_fu)o(nc)o(tio)o(n)9 b Fd(.)d(.)g(.)g(.)g(.)g(.)h(.)24
-b Fe(11)75 1410 y Fc(history_is)o(_s)o(tif)o(le)o(d)6
-b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(7)75 1456
-y Fc(history_le)o(ng)o(th)8 b Fd(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)21 b Fe(10)75 1501 y Fc(history_li)o(st)6 b Fd(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Fe(7)75
-1547 y Fc(history_ma)o(x_)o(ent)o(ri)o(es)t Fd(.)s(.)6
-b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)17 b Fe(10)75 1593 y Fc(history_no)o(_e)o(xpa)o(nd)o
-(_ch)o(ars)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)23 b Fe(10)75 1638 y Fc(history_qu)o(ot)o(es_)o
-(in)o(hib)o(it_)o(ex)o(pan)o(si)o(on)t Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Fe(10)75 1684 y Fc(history_se)o(ar)o(ch)8
-b Fd(.)s(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Fe(8)75 1730 y Fc(history_se)o(ar)o(ch_)o(de)o(lim)o(ite)o(r_)o(cha)o
-(rs)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Fe(10)75 1776 y Fc(history_se)o(ar)o(ch_)o(po)o(s)6
-b Fd(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18 b Fe(8)75 1821
-y Fc(history_se)o(ar)o(ch_)o(pr)o(efi)o(x)s Fd(.)t(.)6
-b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)16 b Fe(8)75 1867 y Fc(history_se)o(t_)o(his)o(to)o(ry_)
-o(sta)o(te)6 b Fd(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)22 b Fe(6)75 1913 y Fc(history_se)o(t_)o(pos)7
-b Fd(.)s(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20 b
-Fe(7)1012 321 y Fc(history_sub)o(st)o(_ch)o(ar)t Fd(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Fe(10)1012 368 y Fc(history_tok)o(en)o(ize)
-6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)20 b Fe(9)1012
-414 y Fc(history_tot)o(al)o(_by)o(te)o(s)5 b Fd(.)s(.)h(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)18 b Fe(7)1012 460 y Fc(history_tru)o(nc)o(ate)o(_f)o(ile)s
-Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(9)1012 507 y Fc(history_wor)o(d_)o(del)
-o(im)o(ite)o(rs)7 b Fd(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Fe(10)1012 640 y Fn(N)1012
-702 y Fc(next_histor)o(y)7 b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)23 b Fe(7)1012 836 y Fn(P)1012 898 y
-Fc(previous_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)20 b Fe(7)1012 1031 y Fn(R)1012 1094 y Fc(read_histor)o(y)7
-b Fd(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)23
-b Fe(8)1012 1140 y Fc(read_histor)o(y_)o(ran)o(ge)5 b
-Fd(.)s(.)h(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)19 b Fe(8)1012 1186
-y Fc(remove_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)22 b Fe(6)1012 1233 y Fc(replace_his)o(to)o(ry_)o(en)o(try)s
-Fd(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)17 b Fe(6)1012 1366 y Fn(S)1012
-1429 y Fc(stifle_hist)o(or)o(y)9 b Fd(.)s(.)d(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)22 b Fe(7)1012 1562 y Fn(U)1012 1624
-y Fc(unstifle_hi)o(st)o(ory)6 b Fd(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)20 b Fe(7)1012 1671 y Fc(using_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(6)1012 1804
-y Fn(W)1012 1866 y Fc(where_histo)o(ry)6 b Fd(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)22 b Fe(7)1012 1913 y Fc(write_histo)o(ry)6
-b Fd(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Fe(8)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fp(16)1324 b(GNU)15 b(History)g(Library)p
-eop
-%%Page: -1 19
--1 18 bop 1862 -58 a Fp(i)75 149 y Fl(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fn(1)67 b(Using)22 b(History)h(In)n
-(teractiv)n(ely)9 b Fb(.)k(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)h(.)31 b Fn(1)224 389 y Fp(1.1)45 b(History)15
-b(Expansion)5 b Fa(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)19 b Fp(1)374 444 y(1.1.1)44
-b(Ev)o(en)o(t)14 b(Designators)e Fa(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)26 b Fp(1)374 499 y(1.1.2)44 b(W)l(ord)15
-b(Designators)5 b Fa(.)h(.)i(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)19 b Fp(2)374 553 y(1.1.3)44 b(Mo)q(di\014ers)t Fa(.)8
-b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)19 b Fp(2)75 675 y Fn(2)67 b(Programming)23
-b(with)g(GNU)f(History)16 b Fb(.)10 b(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f
-(.)g(.)38 b Fn(5)224 743 y Fp(2.1)45 b(In)o(tro)q(duction)16
-b(to)f(History)10 b Fa(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)24 b Fp(5)224 798 y(2.2)45 b(History)15
-b(Storage)c Fa(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26 b Fp(5)224 853
-y(2.3)45 b(History)15 b(F)l(unctions)d Fa(.)c(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)26
-b Fp(6)374 907 y(2.3.1)44 b(Initializing)18 b(History)d(and)h(State)e
-(Managemen)o(t)g Fa(.)7 b(.)h(.)g(.)f(.)h(.)f(.)29 b
-Fp(6)374 962 y(2.3.2)44 b(History)15 b(List)h(Managemen)o(t)d
-Fa(.)7 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)29 b Fp(6)374 1017 y(2.3.3)44
-b(Information)15 b(Ab)q(out)g(the)h(History)f(List)c
-Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
-b Fp(7)374 1072 y(2.3.4)44 b(Mo)o(ving)15 b(Around)g(the)g(History)g
-(List)c Fa(.)d(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)25 b Fp(7)374 1127 y(2.3.5)44 b(Searc)o(hing)16
-b(the)f(History)g(List)7 b Fa(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fp(8)374 1181 y(2.3.6)44 b(Managing)15 b(the)g(History)g(File)6
-b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)20 b Fp(8)374 1236 y(2.3.7)44
-b(History)15 b(Expansion)9 b Fa(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)24 b Fp(9)224 1291 y(2.4)45 b(History)15 b(V)l(ariables)6
-b Fa(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)21 b Fp(10)224 1346 y(2.5)45 b(History)15
-b(Programming)f(Example)7 b Fa(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fp(11)75 1467 y Fn(App)r(endix)i(A)67 b(Concept)22
-b(Index)17 b Fb(.)10 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)h(.)f(.)g(.)38 b Fn(13)75 1602 y(App)r(endix)24 b(B)67
-b(F)-6 b(unction)25 b(and)e(V)-6 b(ariable)24 b(Index)16
-b Fb(.)10 b(.)g(.)g(.)38 b Fn(15)p eop
-%%Page: -2 20
--2 19 bop 75 -58 a Fp(ii)1346 b(GNU)15 b(History)g(Library)p
-eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/readline-doc-4.3/doc/history_3.ps b/readline-doc-4.3/doc/history_3.ps
deleted file mode 100644
index f5231a5..0000000
--- a/readline-doc-4.3/doc/history_3.ps
+++ /dev/null
@@ -1,800 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: groff version 1.16.1
-%%CreationDate: Mon Mar 18 10:17:27 2002
-%%DocumentNeededResources: font Times-Roman
-%%+ font Times-Bold
-%%+ font Times-Italic
-%%DocumentSuppliedResources: procset grops 1.16 1
-%%Pages: 7
-%%PageOrder: Ascend
-%%Orientation: Portrait
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset grops 1.16 1
-/setpacking where{
-pop
-currentpacking
-true setpacking
-}if
-/grops 120 dict dup begin
-/SC 32 def
-/A/show load def
-/B{0 SC 3 -1 roll widthshow}bind def
-/C{0 exch ashow}bind def
-/D{0 exch 0 SC 5 2 roll awidthshow}bind def
-/E{0 rmoveto show}bind def
-/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
-/G{0 rmoveto 0 exch ashow}bind def
-/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/I{0 exch rmoveto show}bind def
-/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
-/K{0 exch rmoveto 0 exch ashow}bind def
-/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/M{rmoveto show}bind def
-/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
-/O{rmoveto 0 exch ashow}bind def
-/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/Q{moveto show}bind def
-/R{moveto 0 SC 3 -1 roll widthshow}bind def
-/S{moveto 0 exch ashow}bind def
-/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/SF{
-findfont exch
-[exch dup 0 exch 0 exch neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/MF{
-findfont
-[5 2 roll
-0 3 1 roll
-neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/level0 0 def
-/RES 0 def
-/PL 0 def
-/LS 0 def
-/MANUAL{
-statusdict begin/manualfeed true store end
-}bind def
-/PLG{
-gsave newpath clippath pathbbox grestore
-exch pop add exch pop
-}bind def
-/BP{
-/level0 save def
-1 setlinecap
-1 setlinejoin
-72 RES div dup scale
-LS{
-90 rotate
-}{
-0 PL translate
-}ifelse
-1 -1 scale
-}bind def
-/EP{
-level0 restore
-showpage
-}bind def
-/DA{
-newpath arcn stroke
-}bind def
-/SN{
-transform
-.25 sub exch .25 sub exch
-round .25 add exch round .25 add exch
-itransform
-}bind def
-/DL{
-SN
-moveto
-SN
-lineto stroke
-}bind def
-/DC{
-newpath 0 360 arc closepath
-}bind def
-/TM matrix def
-/DE{
-TM currentmatrix pop
-translate scale newpath 0 0 .5 0 360 arc closepath
-TM setmatrix
-}bind def
-/RC/rcurveto load def
-/RL/rlineto load def
-/ST/stroke load def
-/MT/moveto load def
-/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
-}bind def
-/BL/fill load def
-/LW/setlinewidth load def
-/RE{
-findfont
-dup maxlength 1 index/FontName known not{1 add}if dict begin
-{
-1 index/FID ne{def}{pop pop}ifelse
-}forall
-/Encoding exch def
-dup/FontName exch def
-currentdict end definefont pop
-}bind def
-/DEFS 0 def
-/EBEGIN{
-moveto
-DEFS begin
-}bind def
-/EEND/end load def
-/CNT 0 def
-/level1 0 def
-/PBEGIN{
-/level1 save def
-translate
-div 3 1 roll div exch scale
-neg exch neg exch translate
-0 setgray
-0 setlinecap
-1 setlinewidth
-0 setlinejoin
-10 setmiterlimit
-[]0 setdash
-/setstrokeadjust where{
-pop
-false setstrokeadjust
-}if
-/setoverprint where{
-pop
-false setoverprint
-}if
-newpath
-/CNT countdictstack def
-userdict begin
-/showpage{}def
-}bind def
-/PEND{
-clear
-countdictstack CNT sub{end}repeat
-level1 restore
-}bind def
-end def
-/setpacking where{
-pop
-setpacking
-}if
-%%EndResource
-%%IncludeResource: font Times-Roman
-%%IncludeResource: font Times-Bold
-%%IncludeResource: font Times-Italic
-grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
-/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
-/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
-/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
-/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
-/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
-/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
-/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
-/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
-/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
-/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
-/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
-/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
-/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
-/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
-/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
-/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
-/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
-/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
-/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
-/Times-Roman@0 ENC0/Times-Roman RE
-%%EndProlog
-%%Page: 1 1
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME)
-.219 E F0(history \255 GNU History Library)108 96 Q F1(COPYRIGHT)72
-112.8 Q F0(The GNU History Library is Cop)108 124.8 Q
-(yright \251 1989-2002 by the Free Softw)-.1 E(are F)-.1 E
-(oundation, Inc.)-.15 E F1(DESCRIPTION)72 141.6 Q F0(Man)108 153.6 Q
-2.81(yp)-.15 G .31(rograms read input from the user a line at a time.)
--2.81 F .309(The GNU History library is able to k)5.309 F .309
-(eep track of)-.1 F .024(those lines, associate arbitrary data with eac\
-h line, and utilize information from pre)108 165.6 R .024
-(vious lines in composing)-.25 F(ne)108 177.6 Q 2.5(wo)-.25 G(nes.)-2.5
-E F1(HIST)72 199.2 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E(ANSION)-.81
-E F0 .823(The history library supports a history e)108 211.2 R .822
-(xpansion feature that is identical to the history e)-.15 F .822
-(xpansion in)-.15 F/F2 10/Times-Bold@0 SF(bash.)3.322 E F0
-(This section describes what syntax features are a)108 223.2 Q -.25(va)
--.2 G(ilable.).25 E 1.305(History e)108 240 R 1.305
-(xpansions introduce w)-.15 F 1.306(ords from the history list into the\
- input stream, making it easy to repeat)-.1 F .21
-(commands, insert the ar)108 252 R .21(guments to a pre)-.18 F .209
-(vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(commands quickly)108 264 Q(.)-.65 E 1.296(History e)108
-280.8 R 1.297(xpansion is usually performed immediately after a complet\
-e line is read.)-.15 F 1.297(It tak)6.297 F 1.297(es place in tw)-.1 F
-(o)-.1 E 2.855(parts. The)108 292.8 R .354(\214rst is to determine whic\
-h line from the history list to use during substitution.)2.855 F .354
-(The second is to)5.354 F .116
-(select portions of that line for inclusion into the current one.)108
-304.8 R .117(The line selected from the history is the)5.116 F/F3 10
-/Times-Italic@0 SF -.15(ev)2.617 G(ent).15 E F0(,)A .846
-(and the portions of that line that are acted upon are)108 316.8 R F3
-(wor)3.346 E(ds)-.37 E F0 5.846(.V)C(arious)-6.956 E F3(modi\214er)3.346
-E(s)-.1 E F0 .846(are a)3.346 F -.25(va)-.2 G .845(ilable to manipulate)
-.25 F .304(the selected w)108 328.8 R 2.804(ords. The)-.1 F .304
-(line is brok)2.804 F .304(en into w)-.1 F .304(ords in the same f)-.1 F
-.304(ashion as)-.1 F F2(bash)2.804 E F0 .305
-(does when reading input, so)2.804 F .539(that se)108 340.8 R -.15(ve)
--.25 G .539(ral w).15 F .539(ords that w)-.1 F .539
-(ould otherwise be separated are considered one w)-.1 F .538
-(ord when surrounded by quotes)-.1 F .307(\(see the description of)108
-352.8 R F2(history_tok)2.807 E(enize\(\))-.1 E F0(belo)2.807 E 2.807
-(w\). History)-.25 F -.15(ex)2.807 G .307
-(pansions are introduced by the appearance of).15 F .52(the history e)
-108 364.8 R .52(xpansion character)-.15 F 3.02(,w)-.4 G .52(hich is)
--3.02 F F2(!)3.853 E F0 .52(by def)3.853 F 3.02(ault. Only)-.1 F .52
-(backslash \()3.02 F F2(\\).833 E F0 3.02(\)a).833 G .52
-(nd single quotes can quote the)-3.02 F(history e)108 376.8 Q
-(xpansion character)-.15 E(.)-.55 E F2(Ev)87 393.6 Q(ent Designators)-.1
-E F0(An e)108 405.6 Q -.15(ve)-.25 G(nt designator is a reference to a \
-command line entry in the history list.).15 E F2(!)108 422.4 Q F0
-(Start a history substitution, e)32.67 E(xcept when follo)-.15 E
-(wed by a)-.25 E F2(blank)2.5 E F0 2.5(,n)C -.25(ew)-2.5 G
-(line, = or \(.).25 E F2(!)108 434.4 Q F3(n)A F0(Refer to command line)
-27.67 E F3(n)2.5 E F0(.).24 E F2<21ad>108 446.4 Q F3(n)A F0
-(Refer to the current command line minus)21.97 E F3(n)2.5 E F0(.).24 E
-F2(!!)108 458.4 Q F0(Refer to the pre)29.34 E(vious command.)-.25 E
-(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 470.4 Q F3(string)
-A F0(Refer to the most recent command starting with)9.33 E F3(string)2.5
-E F0(.).22 E F2(!?)108 482.4 Q F3(string)A F2([?])A F0 1.057
-(Refer to the most recent command containing)144 494.4 R F3(string)3.557
-E F0 6.057(.T).22 G 1.057(he trailing)-6.057 F F2(?)3.557 E F0 1.057
-(may be omitted if)3.557 F F3(string)3.557 E F0(is)3.557 E(follo)144
-506.4 Q(wed immediately by a ne)-.25 E(wline.)-.25 E/F4 12/Times-Bold@0
-SF(^)108 523.4 Q F3(string1)-5 I F4(^)5 I F3(string2)-5 I F4(^)5 I F0
-2.66(Quick substitution.)144 530.4 R 2.66
-(Repeat the last command, replacing)7.66 F F3(string1)5.16 E F0(with)
-5.16 E F3(string2)5.16 E F0 7.66(.E).02 G(qui)-7.66 E -.25(va)-.25 G
-2.66(lent to).25 F -.74(``)144 542.4 S(!!:s/).74 E F3(string1)A F0(/)A
-F3(string2)A F0(/')A 2.5('\()-.74 G(see)-2.5 E F2(Modi\214ers)2.5 E F0
-(belo)2.5 E(w\).)-.25 E F2(!#)108 554.4 Q F0
-(The entire command line typed so f)27.67 E(ar)-.1 E(.)-.55 E F2 -.75
-(Wo)87 571.2 S(rd Designators).75 E F0 -.8(Wo)108 583.2 S 1.313
-(rd designators are used to select desired w).8 F 1.314(ords from the e)
--.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)3.814 E F0 1.314
-(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation).15 F
-.53(from the w)108 595.2 R .529(ord designator)-.1 F 5.529(.I)-.55 G
-3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
-(ord designator be)-.1 F .529(gins with a)-.15 F F2(^)3.029 E F0(,)A F2
-($)3.029 E F0(,)A F2(*)3.029 E F0(,)A F2<ad>3.029 E F0 3.029(,o)C(r)
--3.029 E F2(%)3.029 E F0 5.529(.W)C(ords)-6.329 E 1.3
-(are numbered from the be)108 607.2 R 1.3
-(ginning of the line, with the \214rst w)-.15 F 1.301
-(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)6.301 G 1.301(rds are).8
-F(inserted into the current line separated by single spaces.)108 619.2 Q
-F2 2.5(0\()108 636 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 648 Q 2.5
-(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E F3
-(n)108 660 Q F0(The)31 E F3(n)2.5 E F0(th w)A(ord.)-.1 E F2(^)108 672 Q
-F0(The \214rst ar)32.67 E 2.5(gument. That)-.18 F(is, w)2.5 E(ord 1.)-.1
-E F2($)108 684 Q F0(The last ar)31 E(gument.)-.18 E F2(%)108 696 Q F0
-(The w)26 E(ord matched by the most recent `?)-.1 E F3(string)A F0
-(?' search.)A F3(x)108 708 Q F2<ad>A F3(y)A F0 2.5(Ar)21.42 G(ange of w)
--2.5 E(ords; `\255)-.1 E F3(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)
--.25 E F3(y)A F0('.)A(GNU History 4.3)72 768 Q(2002 January 31)131.79 E
-(1)195.95 E EP
-%%Page: 2 2
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Bold@0 SF(*)108 84 Q F0 .316
-(All of the w)31 F .316(ords b)-.1 F .316(ut the zeroth.)-.2 F .315
-(This is a synon)5.315 F .315(ym for `)-.15 F/F2 10/Times-Italic@0 SF
-(1\255$)A F0 2.815('. It)B .315(is not an error to use)2.815 F F1(*)
-2.815 E F0 .315(if there is)2.815 F(just one w)144 96 Q(ord in the e)-.1
-E -.15(ve)-.25 G(nt; the empty string is returned in that case.).15 E F1
-(x*)108 108 Q F0(Abbre)26 E(viates)-.25 E F2(x\255$)2.5 E F0(.)A F1
-<78ad>108 120 Q F0(Abbre)25.3 E(viates)-.25 E F2(x\255$)2.5 E F0(lik)2.5
-E(e)-.1 E F1(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E(ord.)-.1 E
-(If a w)108 136.8 Q(ord designator is supplied without an e)-.1 E -.15
-(ve)-.25 G(nt speci\214cation, the pre).15 E
-(vious command is used as the e)-.25 E -.15(ve)-.25 G(nt.).15 E F1
-(Modi\214ers)87 153.6 Q F0 .183(After the optional w)108 165.6 R .183
-(ord designator)-.1 F 2.683(,t)-.4 G .184
-(here may appear a sequence of one or more of the follo)-2.683 F .184
-(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 177.6 Q F1(h)108
-194.4 Q F0(Remo)30.44 E .3 -.15(ve a t)-.15 H
-(railing \214le name component, lea).15 E(ving only the head.)-.2 E F1
-(t)108 206.4 Q F0(Remo)32.67 E .3 -.15(ve a)-.15 H
-(ll leading \214le name components, lea).15 E(ving the tail.)-.2 E F1(r)
-108 218.4 Q F0(Remo)31.56 E .3 -.15(ve a t)-.15 H(railing suf).15 E
-(\214x of the form)-.25 E F2(.xxx)2.5 E F0 2.5(,l)C(ea)-2.5 E
-(ving the basename.)-.2 E F1(e)108 230.4 Q F0(Remo)31.56 E .3 -.15(ve a)
--.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108 242.4
-Q F0(Print the ne)30.44 E 2.5(wc)-.25 G(ommand b)-2.5 E(ut do not e)-.2
-E -.15(xe)-.15 G(cute it.).15 E F1(q)108 254.4 Q F0
-(Quote the substituted w)30.44 E(ords, escaping further substitutions.)
--.1 E F1(x)108 266.4 Q F0(Quote the substituted w)31 E(ords as with)-.1
-E F1(q)2.5 E F0 2.5(,b)C(ut break into w)-2.7 E(ords at)-.1 E F1(blanks)
-2.5 E F0(and ne)2.5 E(wlines.)-.25 E F1(s/)108 278.4 Q F2(old)A F1(/)A
-F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 290.4 Q F2(ne)2.814 E(w)-.15 E
-F0 .314(for the \214rst occurrence of)2.814 F F2(old)2.814 E F0 .314
-(in the e)2.814 F -.15(ve)-.25 G .314(nt line.).15 F(An)5.314 E 2.814
-(yd)-.15 G .314(elimiter can be used in place)-2.814 F .616(of /.)144
-302.4 R .617
-(The \214nal delimiter is optional if it is the last character of the e)
-5.616 F -.15(ve)-.25 G .617(nt line.).15 F .617(The delimiter may)5.617
-F .75(be quoted in)144 314.4 R F2(old)3.25 E F0(and)3.25 E F2(ne)3.25 E
-(w)-.15 E F0 .75(with a single backslash.)3.25 F .749(If & appears in)
-5.75 F F2(ne)3.249 E(w)-.15 E F0 3.249(,i).31 G 3.249(ti)-3.249 G 3.249
-(sr)-3.249 G .749(eplaced by)-3.249 F F2(old)3.249 E F0 5.749(.A).77 G
-.369(single backslash will quote the &.)144 326.4 R(If)5.369 E F2(old)
-2.869 E F0 .37(is null, it is set to the last)2.869 F F2(old)2.87 E F0
-.37(substituted, or)2.87 F 2.87(,i)-.4 G 2.87(fn)-2.87 G 2.87(op)-2.87 G
-(re)-2.87 E(vi-)-.25 E(ous history substitutions took place, the last)
-144 338.4 Q F2(string)2.5 E F0(in a)2.5 E F1(!?)2.5 E F2(string)A F1
-([?])A F0(search.)5 E F1(&)108 350.4 Q F0(Repeat the pre)27.67 E
-(vious substitution.)-.25 E F1(g)108 362.4 Q F0 .398
-(Cause changes to be applied o)31 F -.15(ve)-.15 G 2.898(rt).15 G .398
-(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.).15 F .397
-(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897('\()C
-(e.g.,)-2.897 E(`)144 374.4 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)-.15 E
-F1(/)A F0 1.218('\) or `)B F1(:&)A F0 3.718('. If)B 1.218(used with `)
-3.718 F F1(:s)A F0 1.218(', an)B 3.718(yd)-.15 G 1.219
-(elimiter can be used in place of /, and the \214nal)-3.718 F
-(delimiter is optional if it is the last character of the e)144 386.4 Q
--.15(ve)-.25 G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(PR)72 403.2 Q
-(OGRAMMING WITH HIST)-.329 E(OR)-.197 E 2.738(YF)-.383 G(UNCTIONS)-2.738
-E F0(This section describes ho)108 415.2 Q 2.5(wt)-.25 G 2.5(ou)-2.5 G
-(se the History library in other programs.)-2.5 E F1(Intr)87 432 Q
-(oduction to History)-.18 E F0 .797
-(The programmer using the History library has a)108 444 R -.25(va)-.2 G
-.796(ilable functions for remembering lines on a history list,).25 F
-.307(associating arbitrary data with a line, remo)108 456 R .308
-(ving lines from the list, searching through the list for a line con-)
--.15 F .303(taining an arbitrary te)108 468 R .303
-(xt string, and referencing an)-.15 F 2.803(yl)-.15 G .303
-(ine in the list directly)-2.803 F 5.303(.I)-.65 G 2.803(na)-5.303 G
-.303(ddition, a history)-2.803 F F2 -.2(ex)2.802 G(pansion).2 E F0
-(function is a)108 480 Q -.25(va)-.2 G(ilable which pro).25 E
-(vides for a consistent user interf)-.15 E(ace across dif)-.1 E
-(ferent programs.)-.25 E .059(The user using programs written with the \
-History library has the bene\214t of a consistent user interf)108 496.8
-R .059(ace with a)-.1 F .918(set of well-kno)108 508.8 R .917
-(wn commands for manipulating the te)-.25 F .917(xt of pre)-.15 F .917
-(vious lines and using that te)-.25 F .917(xt in ne)-.15 F 3.417(wc)-.25
-G(om-)-3.417 E 4.183(mands. The)108 520.8 R 1.684(basic history manipul\
-ation commands are identical to the history substitution pro)4.183 F
-1.684(vided by)-.15 F F1(bash)108 532.8 Q F0(.)A .904
-(If the programmer desires, he can use the Readline library)108 549.6 R
-3.403(,w)-.65 G .903(hich includes some history manipulation by)-3.403 F
-(def)108 561.6 Q(ault, and has the added adv)-.1 E
-(antage of command line editing.)-.25 E .39(Before declaring an)108
-578.4 R 2.89(yf)-.15 G .39(unctions using an)-2.89 F 2.89(yf)-.15 G .39
-(unctionality the History library pro)-2.89 F .39
-(vides in other code, an appli-)-.15 F .067
-(cation writer should include the \214le)108 590.4 R F2(<r)4.233 E
-(eadline/history)-.37 E(.h>)-.55 E F0 .067(in an)4.233 F 2.566<798c>-.15
-G .066(le that uses the History library')-2.566 F 2.566(sf)-.55 G
-(eatures.)-2.566 E .538(It supplies e)108 602.4 R .538
-(xtern declarations for all of the library')-.15 F 3.038(sp)-.55 G .538
-(ublic functions and v)-3.038 F .539(ariables, and declares all of the)
--.25 F(public data structures.)108 614.4 Q F1(History Storage)87 643.2 Q
-F0(The history list is an array of history entries.)108 655.2 Q 2.5(Ah)5
-G(istory entry is declared as follo)-2.5 E(ws:)-.25 E F2(typedef void *)
-108 672 Q F1(histdata_t;)2.5 E F0(typedef struct _hist_entry {)108 688.8
-Q(char *line;)113 700.8 Q(histdata_t data;)113 712.8 Q 2.5(}H)108 724.8
-S(IST_ENTR)-2.5 E -.92(Y;)-.65 G(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(2)195.95 E EP
-%%Page: 3 3
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E
-(The history list itself might therefore be declared as)108 84 Q/F1 10
-/Times-Italic@0 SF(HIST_ENTR)108 100.8 Q 2.5(Y*)-.18 G(*)-2.5 E/F2 10
-/Times-Bold@0 SF(the_history_list;)2.5 E F0(The state of the History li\
-brary is encapsulated into a single structure:)108 117.6 Q(/*)108 134.4
-Q 2.5(*As)110.5 146.4 S
-(tructure used to pass around the current state of the history)-2.5 E(.)
--.65 E(*/)110.5 158.4 Q(typedef struct _hist_state {)108 170.4 Q
-(HIST_ENTR)113 182.4 Q 2.5(Y*)-.65 G
-(*entries; /* Pointer to the entries themselv)-2.5 E(es. */)-.15 E
-(int of)113 194.4 Q 25(fset; /*)-.25 F
-(The location pointer within this array)2.5 E 2.5(.*)-.65 G(/)-2.5 E
-(int length;)113 206.4 Q(/* Number of elements within this array)27.5 E
-2.5(.*)-.65 G(/)-2.5 E(int size;)113 218.4 Q
-(/* Number of slots allocated to this array)32.5 E 2.5(.*)-.65 G(/)-2.5
-E(int \215ags;)113 230.4 Q 2.5(}H)108 242.4 S(IST)-2.5 E(OR)-.18 E(Y_ST)
--.65 E -1.11(AT)-.93 G(E;)1.11 E(If the \215ags member includes)108
-259.2 Q F2(HS_STIFLED)2.5 E F0 2.5(,t)C(he history has been sti\215ed.)
--2.5 E/F3 10.95/Times-Bold@0 SF(History Functions)72 276 Q F0
-(This section describes the calling sequence for the v)108 288 Q
-(arious functions e)-.25 E(xported by the GNU History library)-.15 E(.)
--.65 E F2(Initializing History and State Management)87 304.8 Q F0 1.274
-(This section describes functions used to initialize and manage the sta\
-te of the History library when you)108 316.8 R -.1(wa)108 328.8 S
-(nt to use the history functions in your program.).1 E F1(void)108 352.8
-Q F2(using_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E(Be)108
-364.8 Q(gin a session in which the history functions might be used.)-.15
-E(This initializes the interacti)5 E .3 -.15(ve v)-.25 H(ariables.)-.1 E
-F1(HIST)108 388.8 Q(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5(E*).37 G F2
-(history_get_history_state)A F0(\()4.166 E F1(void)A F0(\))1.666 E
-(Return a structure describing the current state of the input history)
-108 400.8 Q(.)-.65 E F1(void)108 424.8 Q F2(history_set_history_state)
-2.5 E F0(\()4.166 E F1(HIST)A(OR)-.18 E(Y_ST)-.18 E -.37(AT)-.5 G 2.5
-(E*).37 G(state)-2.5 E F0(\))1.666 E
-(Set the state of the history list according to)108 436.8 Q F1(state)2.5
-E F0(.)A F2(History List Management)87 465.6 Q F0
-(These functions manage indi)108 477.6 Q(vidual entries on the history \
-list, or set parameters managing the list itself.)-.25 E F1(void)108
-501.6 Q F2(add_history)2.5 E F0(\()4.166 E F1(const c)A(har *string)-.15
-E F0(\))1.666 E(Place)108 513.6 Q F1(string)2.5 E F0
-(at the end of the history list.)2.5 E
-(The associated data \214eld \(if an)5 E(y\) is set to)-.15 E F2(NULL)
-2.5 E F0(.)A F1(HIST_ENTR)108 537.6 Q 2.5(Y*)-.18 G F2 -.18(re)C(mo).18
-E -.1(ve)-.1 G(_history).1 E F0(\()4.166 E F1(int whic)A(h)-.15 E F0(\))
-1.666 E(Remo)108 549.6 Q .352 -.15(ve h)-.15 H .052(istory entry at of)
-.15 F(fset)-.25 E F1(whic)2.553 E(h)-.15 E F0 .053(from the history)
-2.553 F 5.053(.T)-.65 G .053(he remo)-5.053 F -.15(ve)-.15 G 2.553(de)
-.15 G .053(lement is returned so you can free the)-2.553 F
-(line, data, and containing structure.)108 561.6 Q F1(HIST_ENTR)108
-585.6 Q 2.5(Y*)-.18 G F2 -.18(re)C(place_history_entry).18 E F0(\()4.166
-E F1(int whic)A -.834(h, const)-.15 F -.15(ch)2.5 G(ar *line).15 E 1.666
-(,h)-.1 G(istdata_t data)-1.666 E F0(\))3.332 E(Mak)108 597.6 Q 2.868
-(et)-.1 G .368(he history entry at of)-2.868 F(fset)-.25 E F1(whic)2.868
-E(h)-.15 E F0(ha)2.868 E -.15(ve)-.2 G F1(line)3.018 E F0(and)2.868 E F1
-(data)2.868 E F0 5.367(.T)C .367
-(his returns the old entry so you can dispose of)-5.367 F(the data.)108
-609.6 Q(In the case of an in)5 E -.25(va)-.4 G(lid).25 E F1(whic)2.5 E
-(h)-.15 E F0 2.5(,a)C F2(NULL)A F0(pointer is returned.)2.5 E F1(void)
-108 633.6 Q F2(clear_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
-(Clear the history list by deleting all the entries.)108 645.6 Q F1
-(void)108 669.6 Q F2(sti\215e_history)2.5 E F0(\()4.166 E F1(int max)A
-F0(\))1.666 E(Sti\215e the history list, remembering only the last)108
-681.6 Q F1(max)2.5 E F0(entries.)2.5 E F1(int)108 705.6 Q F2
-(unsti\215e_history)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E .46
-(Stop sti\215ing the history)108 717.6 R 5.46(.T)-.65 G .46
-(his returns the pre)-5.46 F .46
-(viously-set maximum number of history entries \(as set by)-.25 F F2
-(sti-)2.96 E(\215e_history\(\))108 729.6 Q F0 2.5(\). history)B -.1(wa)
-2.5 G 2.5(ss).1 G 2.5(ti\215ed. The)-2.5 F -.25(va)2.5 G(lue is positi)
-.25 E .3 -.15(ve i)-.25 H 2.5(ft).15 G(he history w)-2.5 E
-(as sti\215ed, ne)-.1 E -.05(ga)-.15 G(ti).05 E .3 -.15(ve i)-.25 H 2.5
-(fi).15 G 2.5(tw)-2.5 G(asn')-2.6 E(t.)-.18 E(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(3)195.95 E EP
-%%Page: 4 4
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10/Times-Italic@0 SF(int)108 84 Q/F2 10
-/Times-Bold@0 SF(history_is_sti\215ed)2.5 E F0(\()4.166 E F1(void)A F0
-(\))1.666 E
-(Returns non-zero if the history is sti\215ed, zero if it is not.)108 96
-Q F2(Inf)87 124.8 Q(ormation About the History List)-.25 E F0(These fun\
-ctions return information about the entire history list or indi)108
-136.8 Q(vidual list entries.)-.25 E F1(HIST_ENTR)108 160.8 Q 2.5(Y*)-.18
-G(*)-2.5 E F2(history_list)2.5 E F0(\()4.166 E F1(void)A F0(\))1.666 E
-.708(Return a)108 172.8 R F2(NULL)3.208 E F0 .708(terminated array of)
-3.208 F F1(HIST_ENTR)3.208 E 3.208(Y*)-.18 G F0 .708
-(which is the current input history)B 5.707(.E)-.65 G .707
-(lement 0 of this)-5.707 F(list is the be)108 184.8 Q(ginning of time.)
--.15 E(If there is no history)5 E 2.5(,r)-.65 G(eturn)-2.5 E F2(NULL)2.5
-E F0(.)A F1(int)108 208.8 Q F2(wher)2.5 E(e_history)-.18 E F0(\()4.166 E
-F1(void)A F0(\))1.666 E(Returns the of)108 220.8 Q
-(fset of the current history element.)-.25 E F1(HIST_ENTR)108 244.8 Q
-2.5(Y*)-.18 G F2(curr)A(ent_history)-.18 E F0(\()4.166 E F1(void)A F0
-(\))1.666 E 1.373
-(Return the history entry at the current position, as determined by)108
-256.8 R F2(wher)3.873 E(e_history\(\))-.18 E F0 6.373(.I)C 3.873(ft)
--6.373 G 1.374(here is no entry)-3.873 F(there, return a)108 268.8 Q F2
-(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1(HIST_ENTR)108 292.8 Q 2.5(Y*)
--.18 G F2(history_get)A F0(\()4.166 E F1(int of)A(fset)-.18 E F0(\))
-1.666 E .288(Return the history entry at position)108 304.8 R F1(of)
-2.787 E(fset)-.18 E F0 2.787(,s)C .287(tarting from)-2.787 F F2
-(history_base)2.787 E F0 5.287(.I)C 2.787(ft)-5.287 G .287
-(here is no entry there, or if)-2.787 F F1(of)2.787 E(fset)-.18 E F0
-(is greater than the history length, return a)108 316.8 Q F2(NULL)2.5 E
-F0(pointer)2.5 E(.)-.55 E F1(int)108 340.8 Q F2(history_total_bytes)2.5
-E F0(\()4.166 E F1(void)A F0(\))1.666 E .391
-(Return the number of bytes that the primary history entries are using.)
-108 352.8 R .392(This function returns the sum of the)5.392 F
-(lengths of all the lines in the history)108 364.8 Q(.)-.65 E F2(Mo)87
-393.6 Q(ving Ar)-.1 E(ound the History List)-.18 E F0
-(These functions allo)108 405.6 Q 2.5(wt)-.25 G(he current inde)-2.5 E
-2.5(xi)-.15 G(nto the history list to be set or changed.)-2.5 E F1(int)
-108 429.6 Q F2(history_set_pos)2.5 E F0(\()4.166 E F1(int pos)A F0(\))
-1.666 E .79(Set the current history of)108 441.6 R .79(fset to)-.25 F F1
-(pos)3.29 E F0 3.29(,a)C 3.29(na)-3.29 G .79(bsolute inde)-3.29 F 3.29
-(xi)-.15 G .79(nto the list.)-3.29 F .79(Returns 1 on success, 0 if)5.79
-F F1(pos)3.29 E F0 .79(is less)3.29 F
-(than zero or greater than the number of history entries.)108 453.6 Q F1
-(HIST_ENTR)108 477.6 Q 2.5(Y*)-.18 G F2(pr)A -.15(ev)-.18 G
-(ious_history).15 E F0(\()4.166 E F1(void)A F0(\))1.666 E .207
-(Back up the current history of)108 489.6 R .207(fset to the pre)-.25 F
-.207(vious history entry)-.25 F 2.708(,a)-.65 G .208
-(nd return a pointer to that entry)-2.708 F 5.208(.I)-.65 G 2.708(ft)
--5.208 G .208(here is)-2.708 F(no pre)108 501.6 Q(vious entry)-.25 E 2.5
-(,r)-.65 G(eturn a)-2.5 E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F1
-(HIST_ENTR)108 525.6 Q 2.5(Y*)-.18 G F2(next_history)A F0(\()4.166 E F1
-(void)A F0(\))1.666 E(Mo)108 537.6 Q 1.047 -.15(ve t)-.15 H .747
-(he current history of).15 F .747(fset forw)-.25 F .746(ard to the ne)
--.1 F .746(xt history entry)-.15 F 3.246(,a)-.65 G .746
-(nd return the a pointer to that entry)-3.246 F 5.746(.I)-.65 G(f)-5.746
-E(there is no ne)108 549.6 Q(xt entry)-.15 E 2.5(,r)-.65 G(eturn a)-2.5
-E F2(NULL)2.5 E F0(pointer)2.5 E(.)-.55 E F2(Sear)87 578.4 Q
-(ching the History List)-.18 E F0 .005(These functions allo)108 590.4 R
-2.505(ws)-.25 G .006(earching of the history list for entries containin\
-g a speci\214c string.)-2.505 F .006(Searching may be)5.006 F 1.452
-(performed both forw)108 602.4 R 1.452(ard and backw)-.1 F 1.451
-(ard from the current history position.)-.1 F 1.451(The search may be)
-6.451 F F1(anc)3.951 E(hor)-.15 E(ed)-.37 E F0(,)A
-(meaning that the string must match at the be)108 614.4 Q
-(ginning of the history entry)-.15 E(.)-.65 E F1(int)108 638.4 Q F2
-(history_sear)2.5 E(ch)-.18 E F0(\()4.166 E F1(const c)A(har *string)
--.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))1.666 E .155
-(Search the history for)108 650.4 R F1(string)2.655 E F0 2.656(,s)C .156
-(tarting at the current history of)-2.656 F 2.656(fset. If)-.25 F F1
-(dir)2.656 E(ection)-.37 E F0 .156(is less than 0, then the search)2.656
-F .802(is through pre)108 662.4 R .802
-(vious entries, otherwise through subsequent entries.)-.25 F(If)5.801 E
-F1(string)3.301 E F0 .801(is found, then the current his-)3.301 F .064
-(tory inde)108 674.4 R 2.564(xi)-.15 G 2.564(ss)-2.564 G .064
-(et to that history entry)-2.564 F 2.564(,a)-.65 G .064(nd the v)-2.564
-F .064(alue returned is the of)-.25 F .064
-(fset in the line of the entry where)-.25 F F1(string)2.565 E F0 -.1(wa)
-108 686.4 S 2.5(sf).1 G 2.5(ound. Otherwise,)-2.5 F
-(nothing is changed, and a -1 is returned.)2.5 E F1(int)108 710.4 Q F2
-(history_sear)2.5 E(ch_pr)-.18 E(e\214x)-.18 E F0(\()4.166 E F1(const c)
-A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E(ection)-.37 E F0(\))
-1.666 E .684(Search the history for)108 722.4 R F1(string)3.183 E F0
-3.183(,s)C .683(tarting at the current history of)-3.183 F 3.183
-(fset. The)-.25 F .683(search is anchored: matching lines)3.183 F
-(GNU History 4.3)72 768 Q(2002 January 31)131.79 E(4)195.95 E EP
-%%Page: 5 5
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E 1.063(must be)108 84 R 1.063(gin with)-.15 F/F1
-10/Times-Italic@0 SF(string)3.563 E F0 6.063(.I)C(f)-6.063 E F1(dir)
-3.563 E(ection)-.37 E F0 1.064
-(is less than 0, then the search is through pre)3.563 F 1.064
-(vious entries, otherwise)-.25 F 1.115(through subsequent entries.)108
-96 R(If)6.115 E F1(string)3.615 E F0 1.115
-(is found, then the current history inde)3.615 F 3.614(xi)-.15 G 3.614
-(ss)-3.614 G 1.114(et to that entry)-3.614 F 3.614(,a)-.65 G 1.114
-(nd the)-3.614 F(return v)108 108 Q(alue is 0.)-.25 E
-(Otherwise, nothing is changed, and a -1 is returned.)5 E F1(int)108 132
-Q/F2 10/Times-Bold@0 SF(history_sear)2.5 E(ch_pos)-.18 E F0(\()4.166 E
-F1(const c)A(har *string)-.15 E 1.666(,i)-.1 G(nt dir)-1.666 E -.834
-(ection, int)-.37 F(pos)2.5 E F0(\))3.332 E .603(Search for)108 144 R F1
-(string)3.103 E F0 .603(in the history list, starting at)3.103 F F1(pos)
-3.104 E F0 3.104(,a)C 3.104(na)-3.104 G .604(bsolute inde)-3.104 F 3.104
-(xi)-.15 G .604(nto the list.)-3.104 F(If)5.604 E F1(dir)3.104 E(ection)
--.37 E F0 .604(is ne)3.104 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G(,)
-.15 E .608(the search proceeds backw)108 156 R .608(ard from)-.1 F F1
-(pos)3.108 E F0 3.108(,o)C .608(therwise forw)-3.108 F 3.108
-(ard. Returns)-.1 F .608(the absolute inde)3.108 F 3.108(xo)-.15 G 3.108
-(ft)-3.108 G .608(he history ele-)-3.108 F(ment where)108 168 Q F1
-(string)2.5 E F0 -.1(wa)2.5 G 2.5(sf).1 G(ound, or -1 otherwise.)-2.5 E
-F2(Managing the History File)87 196.8 Q F0 .035(The History library can\
- read the history from and write it to a \214le.)108 208.8 R .036
-(This section documents the functions for)5.035 F
-(managing a history \214le.)108 220.8 Q F1(int)108 244.8 Q F2 -.18(re)
-2.5 G(ad_history).18 E F0(\()4.166 E F1(const c)A(har *\214lename)-.15 E
-F0(\))1.666 E .151(Add the contents of)108 256.8 R F1(\214lename)2.651 E
-F0 .151(to the history list, a line at a time.)2.651 F(If)5.15 E F1
-(\214lename)2.65 E F0(is)2.65 E F2(NULL)2.65 E F0 2.65(,t)C .15
-(hen read from)-2.65 F F1(~/.his-)2.65 E(tory)108 268.8 Q F0 5(.R)C
-(eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E
-F1(int)108 292.8 Q F2 -.18(re)2.5 G(ad_history_range).18 E F0(\()4.166 E
-F1(const c)A(har *\214lename)-.15 E 1.666(,i)-.1 G(nt fr)-1.666 E -.834
-(om, int)-.45 F(to)2.5 E F0(\))3.332 E .052(Read a range of lines from)
-108 304.8 R F1(\214lename)2.553 E F0 2.553(,a)C .053
-(dding them to the history list.)-2.553 F .053(Start reading at line)
-5.053 F F1(fr)2.553 E(om)-.45 E F0 .053(and end at)2.553 F F1(to)2.553 E
-F0(.)A(If)108 316.8 Q F1(fr)2.889 E(om)-.45 E F0 .389
-(is zero, start at the be)2.889 F 2.889(ginning. If)-.15 F F1(to)2.889 E
-F0 .389(is less than)2.889 F F1(fr)2.889 E(om)-.45 E F0 2.889(,t)C .388
-(hen read until the end of the \214le.)-2.889 F(If)5.388 E F1
-(\214lename)2.888 E F0(is)108 328.8 Q F2(NULL)2.5 E F0 2.5(,t)C
-(hen read from)-2.5 E F1(~/.history)2.5 E F0 5(.R)C
-(eturns 0 if successful, or)-5 E F2(err)2.5 E(no)-.15 E F0(if not.)2.5 E
-F1(int)108 352.8 Q F2(write_history)2.5 E F0(\()4.166 E F1(const c)A
-(har *\214lename)-.15 E F0(\))1.666 E .961(Write the current history to)
-108 364.8 R F1(\214lename)3.461 E F0 3.461(,o)C -.15(ve)-3.611 G
-(rwriting).15 E F1(\214lename)3.461 E F0 .961(if necessary)3.461 F 5.961
-(.I)-.65 G(f)-5.961 E F1(\214lename)3.462 E F0(is)3.462 E F2(NULL)3.462
-E F0 3.462(,t)C .962(hen write)-3.462 F(the history list to)108 376.8 Q
-F1(~/.history)2.5 E F0 5(.R)C(eturns 0 on success, or)-5 E F2(err)2.5 E
-(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108 412.8 Q
-F2(append_history)2.5 E F0(\()4.166 E F1(int nelements,)A(const c)1.666
-E(har *\214lename)-.15 E F0(\))1.666 E .839(Append the last)108 424.8 R
-F1(nelements)3.339 E F0 .839(of the history list to)3.339 F F1
-(\214lename)3.339 E F0 5.839(.I)C(f)-5.839 E F1(\214lename)3.339 E F0
-(is)3.339 E F2(NULL)3.339 E F0 3.339(,t)C .838(hen append to)-3.339 F F1
-(~/.history)3.338 E F0(.)A(Returns 0 on success, or)108 436.8 Q F2(err)
-2.5 E(no)-.15 E F0(on a read or write error)2.5 E(.)-.55 E F1(int)108
-460.8 Q F2(history_truncate_\214le)2.5 E F0(\()4.166 E F1(const c)A
-(har *\214lename)-.15 E 1.666(,i)-.1 G(nt nlines)-1.666 E F0(\))1.666 E
--.35(Tr)108 472.8 S .38(uncate the history \214le).35 F F1(\214lename)
-2.88 E F0 2.88(,l)C(ea)-2.88 E .38(ving only the last)-.2 F F1(nlines)
-2.881 E F0 2.881(lines. If)2.881 F F1(\214lename)2.881 E F0(is)2.881 E
-F2(NULL)2.881 E F0 2.881(,t)C(hen)-2.881 E F1(~/.history)2.881 E F0(is)
-2.881 E 2.5(truncated. Returns)108 484.8 R 2.5(0o)2.5 G 2.5(ns)-2.5 G
-(uccess, or)-2.5 E F2(err)2.5 E(no)-.15 E F0(on f)2.5 E(ailure.)-.1 E F2
-(History Expansion)87 513.6 Q F0(These functions implement history e)108
-525.6 Q(xpansion.)-.15 E F1(int)108 549.6 Q F2(history_expand)2.5 E F0
-(\()4.166 E F1 -.15(ch)C(ar *string).15 E 1.666(,c)-.1 G(har **output)
--1.816 E F0(\))1.666 E(Expand)108 561.6 Q F1(string)2.5 E F0 2.5(,p)C
-(lacing the result into)-2.5 E F1(output)2.5 E F0 2.5(,ap)C
-(ointer to a string.)-2.5 E(Returns:)5 E 31(0I)144 573.6 S 3.066(fn)-31
-G 3.066(oe)-3.066 G .566(xpansions took place \(or)-3.216 F 3.065(,i)-.4
-G 3.065(ft)-3.065 G .565(he only change in the te)-3.065 F .565(xt w)
--.15 F .565(as the remo)-.1 F -.25(va)-.15 G 3.065(lo).25 G 3.065(fe)
--3.065 G(scape)-3.065 E(characters preceding the history e)180 585.6 Q
-(xpansion character\);)-.15 E 31(1i)144 597.6 S 2.5(fe)-31 G
-(xpansions did tak)-2.65 E 2.5(ep)-.1 G(lace;)-2.5 E 25.17(-1 if)144
-609.6 R(there w)2.5 E(as an error in e)-.1 E(xpansion;)-.15 E 31(2i)144
-621.6 S 2.5(ft)-31 G(he returned line should be displayed, b)-2.5 E
-(ut not e)-.2 E -.15(xe)-.15 G(cuted, as with the).15 E F2(:p)2.5 E F0
-(modi\214er)2.5 E(.)-.55 E(If an error ocurred in e)108 633.6 Q
-(xpansion, then)-.15 E F1(output)2.5 E F0(contains a descripti)2.5 E .3
--.15(ve e)-.25 H(rror message.).15 E F1 -.15(ch)108 657.6 S(ar *).15 E
-F2(get_history_e)2.5 E -.1(ve)-.15 G(nt).1 E F0(\()4.166 E F1(const c)A
-(har *string)-.15 E 1.666(,i)-.1 G(nt *cinde)-1.666 E -.834(x, int)-.2 F
-(qc)2.5 E(har)-.15 E F0(\))3.332 E .262(Returns the te)108 669.6 R .262
-(xt of the history e)-.15 F -.15(ve)-.25 G .262(nt be).15 F .263
-(ginning at)-.15 F F1(string)2.763 E F0(+)2.763 E F1(*cinde)2.763 E(x)
--.2 E F0(.)A F1(*cinde)5.263 E(x)-.2 E F0 .263
-(is modi\214ed to point to after the)2.763 F -2.15 -.25(ev e)108 681.6 T
-.71(nt speci\214er).25 F 5.71(.A)-.55 G 3.21(tf)-5.71 G .71
-(unction entry)-3.21 F(,)-.65 E F1(cinde)3.21 E(x)-.2 E F0 .709
-(points to the inde)3.21 F 3.209(xi)-.15 G(nto)-3.209 E F1(string)3.209
-E F0 .709(where the history e)3.209 F -.15(ve)-.25 G .709
-(nt speci\214ca-).15 F .527(tion be)108 693.6 R(gins.)-.15 E F1(qc)5.527
-E(har)-.15 E F0 .527(is a character that is allo)3.027 F .527
-(wed to end the e)-.25 F -.15(ve)-.25 G .528
-(nt speci\214cation in addition to the `).15 F(`normal')-.74 E(')-.74 E
-(terminating characters.)108 705.6 Q F1 -.15(ch)108 729.6 S(ar **).15 E
-F2(history_tok)2.5 E(enize)-.1 E F0(\()4.166 E F1(const c)A(har *string)
--.15 E F0(\))1.666 E(GNU History 4.3)72 768 Q(2002 January 31)131.79 E
-(5)195.95 E EP
-%%Page: 6 6
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E .239(Return an array of tok)108 84 R .239
-(ens parsed out of)-.1 F/F1 10/Times-Italic@0 SF(string)2.739 E F0 2.739
-(,m)C .238(uch as the shell might.)-2.739 F .238(The tok)5.238 F .238
-(ens are split on the charac-)-.1 F(ters in the)108 96 Q/F2 10
-/Times-Bold@0 SF(history_w)2.5 E(ord_delimiters)-.1 E F0 -.25(va)2.5 G
-(riable, and shell quoting con).25 E -.15(ve)-.4 G(ntions are obe).15 E
-(yed.)-.15 E F1 -.15(ch)108 120 S(ar *).15 E F2(history_ar)2.5 E
-(g_extract)-.1 E F0(\()4.166 E F1(int \214r)A -.834(st, int)-.1 F -.834
-(last, const)2.5 F -.15(ch)2.5 G(ar *string).15 E F0(\))3.332 E .025
-(Extract a string se)108 132 R .025(gment consisting of the)-.15 F F1
-<8c72>2.526 E(st)-.1 E F0(through)2.526 E F1(last)2.526 E F0(ar)2.526 E
-.026(guments present in)-.18 F F1(string)2.526 E F0 5.026(.A)C -.18(rg)
--5.026 G .026(uments are split).18 F(using)108 144 Q F2(history_tok)2.5
-E(enize\(\))-.1 E F0(.)A F2(History V)87 172.8 Q(ariables)-.92 E F0
-(This section describes the e)108 184.8 Q(xternally-visible v)-.15 E
-(ariables e)-.25 E(xported by the GNU History Library)-.15 E(.)-.65 E F1
-(int)108 208.8 Q F2(history_base)2.5 E F0(The logical of)108 220.8 Q
-(fset of the \214rst entry in the history list.)-.25 E F1(int)108 244.8
-Q F2(history_length)2.5 E F0
-(The number of entries currently stored in the history list.)108 256.8 Q
-F1(int)108 280.8 Q F2(history_max_entries)2.5 E F0
-(The maximum number of history entries.)108 292.8 Q
-(This must be changed using)5 E F2(sti\215e_history\(\))2.5 E F0(.)A F1
--.15(ch)108 316.8 S(ar).15 E F2(history_expansion_char)2.5 E F0
-(The character that introduces a history e)108 328.8 Q -.15(ve)-.25 G
-2.5(nt. The).15 F(def)2.5 E(ault is)-.1 E F2(!)2.5 E F0 5(.S)C
-(etting this to 0 inhibits history e)-5 E(xpansion.)-.15 E F1 -.15(ch)
-108 352.8 S(ar).15 E F2(history_subst_char)2.5 E F0
-(The character that in)108 364.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(sw).1 G
-(ord substitution if found at the start of a line.)-2.6 E(The def)5 E
-(ault is)-.1 E F2(^)2.5 E F0(.)A F1 -.15(ch)108 388.8 S(ar).15 E F2
-(history_comment_char)2.5 E F0 .117(During tok)108 400.8 R .117
-(enization, if this character is seen as the \214rst character of a w)
--.1 F .117(ord, then it and all subsequent char)-.1 F(-)-.2 E .276
-(acters up to a ne)108 412.8 R .276
-(wline are ignored, suppressing history e)-.25 F .276
-(xpansion for the remainder of the line.)-.15 F .277(This is dis-)5.276
-F(abled by def)108 424.8 Q(ault.)-.1 E F1 -.15(ch)108 448.8 S(ar *).15 E
-F2(history_w)2.5 E(ord_delimiters)-.1 E F0
-(The characters that separate tok)108 460.8 Q(ens for)-.1 E F2
-(history_tok)2.5 E(enize\(\))-.1 E F0 5(.T)C(he def)-5 E(ault v)-.1 E
-(alue is)-.25 E F2 2.5("\\)2.5 G(t\\n\(\)<>;&|")-2.5 E F0(.)A F1 -.15
-(ch)108 484.8 S(ar *).15 E F2(history_no_expand_chars)2.5 E F0 2.054
-(The list of characters which inhibit history e)108 496.8 R 2.054
-(xpansion if found immediately follo)-.15 F(wing)-.25 E F2
-(history_expan-)4.554 E(sion_char)108 508.8 Q F0 5(.T)C(he def)-5 E
-(ault is space, tab, ne)-.1 E(wline,)-.25 E F2(\\r)2.5 E F0 2.5(,a)C(nd)
--2.5 E F2(=)2.5 E F0(.)A F1 -.15(ch)108 532.8 S(ar *).15 E F2
-(history_sear)2.5 E(ch_delimiter_chars)-.18 E F0 .401(The list of addit\
-ional characters which can delimit a history search string, in addition\
- to space, tab,)108 544.8 R F1(:)2.901 E F0(and)2.901 E F1(?)2.902 E F0
-(in the case of a substring search.)108 556.8 Q(The def)5 E
-(ault is empty)-.1 E(.)-.65 E F1(int)108 580.8 Q F2
-(history_quotes_inhibit_expansion)2.5 E F0 .625
-(If non-zero, single-quoted w)108 592.8 R .625
-(ords are not scanned for the history e)-.1 F .624(xpansion character)
--.15 F 5.624(.T)-.55 G .624(he def)-5.624 F .624(ault v)-.1 F .624
-(alue is)-.25 F(0.)108 604.8 Q F1(rl_lineb)108 628.8 Q(uf_func_t *)-.2 E
-F2(history_inhibit_expansion_function)2.5 E F0 .347
-(This should be set to the address of a function that tak)108 640.8 R
-.348(es tw)-.1 F 2.848(oa)-.1 G -.18(rg)-2.848 G .348(uments: a).18 F F2
-.348(char *)2.848 F F0(\()2.848 E F1(string)A F0 2.848(\)a)C .348(nd an)
--2.848 F F2(int)2.848 E F0(inde)2.848 E(x)-.15 E .228
-(into that string \()108 652.8 R F1(i)A F0 2.728(\). It)B .227
-(should return a non-zero v)2.727 F .227(alue if the history e)-.25 F
-.227(xpansion starting at)-.15 F F1(string[i])2.727 E F0 .227
-(should not)2.727 F .019(be performed; zero if the e)108 664.8 R .019
-(xpansion should be done.)-.15 F .019
-(It is intended for use by applications lik)5.019 F(e)-.1 E F2(bash)
-2.519 E F0 .019(that use)2.519 F(the history e)108 676.8 Q
-(xpansion character for additional purposes.)-.15 E(By def)5 E
-(ault, this v)-.1 E(ariable is set to)-.25 E F2(NULL)2.5 E F0(.)A/F3
-10.95/Times-Bold@0 SF(FILES)72 693.6 Q F1(~/.history)109.666 705.6 Q F0
-(Def)144 717.6 Q(ault \214lename for reading and writing sa)-.1 E -.15
-(ve)-.2 G 2.5(dh).15 G(istory)-2.5 E(GNU History 4.3)72 768 Q
-(2002 January 31)131.79 E(6)195.95 E EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(HIST)72 48 Q(OR)-.18 E 357.18(Y\(3\) HIST)-.65 F
-(OR)-.18 E(Y\(3\))-.65 E/F1 10.95/Times-Bold@0 SF(SEE ALSO)72 84 Q/F2 10
-/Times-Italic@0 SF(The Gnu Readline Libr)108 96 Q(ary)-.15 E F0 2.5(,B)C
-(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2(The Gnu History Libr)
-108 108 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E
-(y)-.15 E F2(bash)108 120 Q F0(\(1\))A F2 -.37(re)108 132 S(adline).37 E
-F0(\(3\))A F1 -.548(AU)72 148.8 S(THORS).548 E F0(Brian F)108 160.8 Q
-(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108
-172.8 Q(g)-.18 E(Chet Rame)108 189.6 Q 1.3 -.65(y, C)-.15 H(ase W).65 E
-(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E
-(chet@ins.CWR)108 201.6 Q(U.Edu)-.4 E F1 -.11(BU)72 218.4 S 2.738(GR).11
-G(EPOR)-2.738 E(TS)-.438 E F0 .16(If you \214nd a b)108 230.4 R .16
-(ug in the)-.2 F/F3 10/Times-Bold@0 SF(history)2.66 E F0(library)2.66 E
-2.66(,y)-.65 G .16(ou should report it.)-2.66 F .16
-(But \214rst, you should mak)5.16 F 2.66(es)-.1 G .16
-(ure that it really is)-2.66 F 2.5(ab)108 242.4 S
-(ug, and that it appears in the latest v)-2.7 E(ersion of the)-.15 E F3
-(history)2.5 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.).15 E .704
-(Once you ha)108 259.2 R 1.004 -.15(ve d)-.2 H .704(etermined that a b)
-.15 F .704(ug actually e)-.2 F .704(xists, mail a b)-.15 F .705
-(ug report to)-.2 F F2 -.2(bu)3.205 G(g\255r).2 E(eadline)-.37 E F0(@)A
-F2(gnu.or)A(g)-.37 E F0 5.705(.I)C 3.205(fy)-5.705 G(ou)-3.205 E(ha)108
-271.2 Q 1.81 -.15(ve a \214)-.2 H 1.51
-(x, you are welcome to mail that as well!).15 F 1.509
-(Suggestions and `philosophical' b)6.509 F 1.509(ug reports may be)-.2 F
-(mailed to)108 283.2 Q F2 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F2
-(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3
-(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 300 Q
-(ug reports concerning this manual page should be directed to)-.2 E F2
--.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E
-(GNU History 4.3)72 768 Q(2002 January 31)131.79 E(7)195.95 E EP
-%%Trailer
-end
-%%EOF
diff --git a/readline-doc-4.3/doc/readline.0 b/readline-doc-4.3/doc/readline.0
deleted file mode 100644
index 87beeac..0000000
--- a/readline-doc-4.3/doc/readline.0
+++ /dev/null
@@ -1,997 +0,0 @@
-READLINE(3) READLINE(3)
-
-
-
-NNAAMMEE
- readline - get a line from a user with editing
-
-SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssttddiioo..hh>>
- ##iinncclluuddee <<rreeaaddlliinnee//rreeaaddlliinnee..hh>>
- ##iinncclluuddee <<rreeaaddlliinnee//hhiissttoorryy..hh>>
-
- _c_h_a_r _*
- rreeaaddlliinnee (_c_o_n_s_t _c_h_a_r _*_p_r_o_m_p_t);
-
-CCOOPPYYRRIIGGHHTT
- Readline is Copyright (C) 1989-2002 by the Free Software
- Foundation, Inc.
-
-DDEESSCCRRIIPPTTIIOONN
- rreeaaddlliinnee will read a line from the terminal and return it,
- using pprroommpptt as a prompt. If pprroommpptt is NNUULLLL or the empty
- string, no prompt is issued. The line returned is allo-
- cated with _m_a_l_l_o_c(3); the caller must free it when fin-
- ished. The line returned has the final newline removed,
- so only the text of the line remains.
-
- rreeaaddlliinnee offers editing capabilities while the user is
- entering the line. By default, the line editing commands
- are similar to those of emacs. A vi-style line editing
- interface is also available.
-
- This manual page describes only the most basic use of
- rreeaaddlliinnee. Much more functionality is available; see _T_h_e
- _G_N_U _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y and _T_h_e _G_N_U _H_i_s_t_o_r_y _L_i_b_r_a_r_y for addi-
- tional information.
-
-RREETTUURRNN VVAALLUUEE
- rreeaaddlliinnee returns the text of the line read. A blank line
- returns the empty string. If EEOOFF is encountered while
- reading a line, and the line is empty, NNUULLLL is returned.
- If an EEOOFF is read with a non-empty line, it is treated as
- a newline.
-
-NNOOTTAATTIIOONN
- An emacs-style notation is used to denote keystrokes.
- Control keys are denoted by C-_k_e_y, e.g., C-n means Con-
- trol-N. Similarly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x
- means Meta-X. (On keyboards without a _m_e_t_a key, M-_x means
- ESC _x, i.e., press the Escape key then the _x key. This
- makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x means
- ESC-Control-_x, or press the Escape key then hold the Con-
- trol key while pressing the _x key.)
-
- Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which
- normally act as a repeat count. Sometimes, however, it is
- the sign of the argument that is significant. Passing a
- negative argument to a command that acts in the forward
- direction (e.g., kkiillll--lliinnee) causes that command to act in
- a backward direction. Commands whose behavior with argu-
- ments deviates from this are noted.
-
- When a command is described as _k_i_l_l_i_n_g text, the text
- deleted is saved for possible future retrieval (_y_a_n_k_i_n_g).
- The killed text is saved in a _k_i_l_l _r_i_n_g. Consecutive
- kills cause the text to be accumulated into one unit,
- which can be yanked all at once. Commands which do not
- kill text separate the chunks of text on the kill ring.
-
-IINNIITTIIAALLIIZZAATTIIOONN FFIILLEE
- Readline is customized by putting commands in an initial-
- ization file (the _i_n_p_u_t_r_c file). The name of this file is
- taken from the value of the IINNPPUUTTRRCC environment variable.
- If that variable is unset, the default is _~_/_._i_n_p_u_t_r_c.
- When a program which uses the readline library starts up,
- the init file is read, and the key bindings and variables
- are set. There are only a few basic constructs allowed in
- the readline init file. Blank lines are ignored. Lines
- beginning with a ## are comments. Lines beginning with a $$
- indicate conditional constructs. Other lines denote key
- bindings and variable settings. Each program using this
- library may add its own commands and bindings.
-
- For example, placing
-
- M-Control-u: universal-argument
- or
- C-Meta-u: universal-argument
-
- into the _i_n_p_u_t_r_c would make M-C-u execute the readline
- command _u_n_i_v_e_r_s_a_l_-_a_r_g_u_m_e_n_t.
-
- The following symbolic character names are recognized
- while processing key bindings: _D_E_L, _E_S_C, _E_S_C_A_P_E, _L_F_D, _N_E_W_-
- _L_I_N_E, _R_E_T, _R_E_T_U_R_N, _R_U_B_O_U_T, _S_P_A_C_E, _S_P_C, and _T_A_B.
-
- In addition to command names, readline allows keys to be
- bound to a string that is inserted when the key is pressed
- (a _m_a_c_r_o).
-
-
- KKeeyy BBiinnddiinnggss
- The syntax for controlling key bindings in the _i_n_p_u_t_r_c
- file is simple. All that is required is the name of the
- command or the text of a macro and a key sequence to which
- it should be bound. The name may be specified in one of
- two ways: as a symbolic key name, possibly with _M_e_t_a_- or
- _C_o_n_t_r_o_l_- prefixes, or as a key sequence.
-
- When using the form kkeeyynnaammee:_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, _k_e_y_-
- _n_a_m_e is the name of a key spelled out in English. For
- example:
-
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the above example, _C_-_u is bound to the function uunniivveerr--
- ssaall--aarrgguummeenntt, _M_-_D_E_L is bound to the function bbaacckk--
- wwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to run the macro
- expressed on the right hand side (that is, to insert the
- text ``> output'' into the line).
-
- In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyy--
- sseeqq differs from kkeeyynnaammee above in that strings denoting an
- entire key sequence may be specified by placing the
- sequence within double quotes. Some GNU Emacs style key
- escapes can be used, as in the following example, but the
- symbolic character names are not recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In this example, _C_-_u is again bound to the function uunnii--
- vveerrssaall--aarrgguummeenntt. _C_-_x _C_-_r is bound to the function
- rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is bound to insert the
- text ``Function Key 1''.
-
- The full set of GNU Emacs style escape sequences available
- when specifying key sequences is
- \\CC-- control prefix
- \\MM-- meta prefix
- \\ee an escape character
- \\\\ backslash
- \\"" literal ", a double quote
- \\'' literal ', a single quote
-
- In addition to the GNU Emacs style escape sequences, a
- second set of backslash escapes is available:
- \\aa alert (bell)
- \\bb backspace
- \\dd delete
- \\ff form feed
- \\nn newline
- \\rr carriage return
- \\tt horizontal tab
- \\vv vertical tab
- \\_n_n_n the eight-bit character whose value is the
- octal value _n_n_n (one to three digits)
- \\xx_H_H the eight-bit character whose value is the
- hexadecimal value _H_H (one or two hex digits)
-
- When entering the text of a macro, single or double quotes
- should be used to indicate a macro definition. Unquoted
- text is assumed to be a function name. In the macro body,
- the backslash escapes described above are expanded. Back-
- slash will quote any other character in the macro text,
- including " and '.
-
- BBaasshh allows the current readline key bindings to be dis-
- played or modified with the bbiinndd builtin command. The
- editing mode may be switched during interactive use by
- using the --oo option to the sseett builtin command. Other
- programs using this library provide similar mechanisms.
- The _i_n_p_u_t_r_c file may be edited and re-read if a program
- does not provide any other means to incorporate new bind-
- ings.
-
- VVaarriiaabblleess
- Readline has variables that can be used to further cus-
- tomize its behavior. A variable may be set in the _i_n_p_u_t_r_c
- file with a statement of the form
-
- sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e
-
- Except where noted, readline variables can take the values
- OOnn or OOffff (without regard to case). The variables and
- their default values are:
-
- bbeellll--ssttyyllee ((aauuddiibbllee))
- Controls what happens when readline wants to ring
- the terminal bell. If set to nnoonnee, readline never
- rings the bell. If set to vviissiibbllee, readline uses a
- visible bell if one is available. If set to aauuddii--
- bbllee, readline attempts to ring the terminal's bell.
- ccoommmmeenntt--bbeeggiinn ((````##''''))
- The string that is inserted in vvii mode when the
- iinnsseerrtt--ccoommmmeenntt command is executed. This command
- is bound to MM--## in emacs mode and to ## in vi com-
- mand mode.
- ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff))
- If set to OOnn, readline performs filename matching
- and completion in a case-insensitive fashion.
- ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000))
- This determines when the user is queried about
- viewing the number of possible completions gener-
- ated by the ppoossssiibbllee--ccoommpplleettiioonnss command. It may
- be set to any integer value greater than or equal
- to zero. If the number of possible completions is
- greater than or equal to the value of this vari-
- able, the user is asked whether or not he wishes to
- view them; otherwise they are simply listed on the
- terminal.
- ccoonnvveerrtt--mmeettaa ((OOnn))
- If set to OOnn, readline will convert characters with
- the eighth bit set to an ASCII key sequence by
- stripping the eighth bit and prefixing it with an
- escape character (in effect, using escape as the
- _m_e_t_a _p_r_e_f_i_x).
- ddiissaabbllee--ccoommpplleettiioonn ((OOffff))
- If set to OOnn, readline will inhibit word comple-
- tion. Completion characters will be inserted into
- the line as if they had been mapped to sseellff--iinnsseerrtt.
- eeddiittiinngg--mmooddee ((eemmaaccss))
- Controls whether readline begins with a set of key
- bindings similar to emacs or vi. eeddiittiinngg--mmooddee can
- be set to either eemmaaccss or vvii.
- eennaabbllee--kkeeyyppaadd ((OOffff))
- When set to OOnn, readline will try to enable the
- application keypad when it is called. Some systems
- need this to enable the arrow keys.
- eexxppaanndd--ttiillddee ((OOffff))
- If set to oonn, tilde expansion is performed when
- readline attempts word completion.
- hhiissttoorryy--pprreesseerrvvee--ppooiinntt
- If set to oonn, the history code attempts to place
- point at the same location on each history line
- retrived with pprreevviioouuss--hhiissttoorryy or nneexxtt--hhiissttoorryy.
- hhoorriizzoonnttaall--ssccrroollll--mmooddee ((OOffff))
- When set to OOnn, makes readline use a single line
- for display, scrolling the input horizontally on a
- single screen line when it becomes longer than the
- screen width rather than wrapping to a new line.
- iinnppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will enable eight-bit input
- (that is, it will not clear the eighth bit in the
- characters it reads), regardless of what the termi-
- nal claims it can support. The name mmeettaa--ffllaagg is a
- synonym for this variable.
- iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[ CC--JJ''''))
- The string of characters that should terminate an
- incremental search without subsequently executing
- the character as a command. If this variable has
- not been given a value, the characters _E_S_C and _C_-_J
- will terminate an incremental search.
- kkeeyymmaapp ((eemmaaccss))
- Set the current readline keymap. The set of legal
- keymap names is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_,
- _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d, and _v_i_-_i_n_s_e_r_t.
- _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is equivalent
- to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s.
- The value of eeddiittiinngg--mmooddee also affects the default
- keymap.
- mmaarrkk--ddiirreeccttoorriieess ((OOnn))
- If set to OOnn, completed directory names have a
- slash appended.
- mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
- If set to OOnn, history lines that have been modified
- are displayed with a preceding asterisk (**).
- mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff))
- If set to OOnn, completed names which are symbolic
- links to directories have a slash appended (subject
- to the value of mmaarrkk--ddiirreeccttoorriieess).
- mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn))
- This variable, when set to OOnn, causes readline to
- match files whose names begin with a `.' (hidden
- files) when performing filename completion, unless
- the leading `.' is supplied by the user in the
- filename to be completed.
- oouuttppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will display characters with
- the eighth bit set directly rather than as a meta-
- prefixed escape sequence.
- ppaaggee--ccoommpplleettiioonnss ((OOnn))
- If set to OOnn, readline uses an internal _m_o_r_e-like
- pager to display a screenful of possible comple-
- tions at a time.
- pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff))
- If set to OOnn, readline will display completions
- with matches sorted horizontally in alphabetical
- order, rather than down the screen.
- sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff))
- This alters the default behavior of the completion
- functions. If set to oonn, words which have more
- than one possible completion cause the matches to
- be listed immediately instead of ringing the bell.
- vviissiibbllee--ssttaattss ((OOffff))
- If set to OOnn, a character denoting a file's type as
- reported by _s_t_a_t(2) is appended to the filename
- when listing possible completions.
-
- CCoonnddiittiioonnaall CCoonnssttrruuccttss
- Readline implements a facility similar in spirit to the
- conditional compilation features of the C preprocessor
- which allows key bindings and variable settings to be per-
- formed as the result of tests. There are four parser
- directives used.
-
- $$iiff The $$iiff construct allows bindings to be made based
- on the editing mode, the terminal being used, or
- the application using readline. The text of the
- test extends to the end of the line; no characters
- are required to isolate it.
-
- mmooddee The mmooddee== form of the $$iiff directive is used
- to test whether readline is in emacs or vi
- mode. This may be used in conjunction with
- the sseett kkeeyymmaapp command, for instance, to set
- bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and _e_m_a_c_s_-
- _c_t_l_x keymaps only if readline is starting
- out in emacs mode.
-
- tteerrmm The tteerrmm== form may be used to include termi-
- nal-specific key bindings, perhaps to bind
- the key sequences output by the terminal's
- function keys. The word on the right side
- of the == is tested against the full name of
- the terminal and the portion of the terminal
- name before the first --. This allows _s_u_n to
- match both _s_u_n and _s_u_n_-_c_m_d, for instance.
-
- aapppplliiccaattiioonn
- The aapppplliiccaattiioonn construct is used to include
- application-specific settings. Each program
- using the readline library sets the _a_p_p_l_i_c_a_-
- _t_i_o_n _n_a_m_e, and an initialization file can
- test for a particular value. This could be
- used to bind key sequences to functions use-
- ful for a specific program. For instance,
- the following command adds a key sequence
- that quotes the current or previous word in
- Bash:
-
- $$iiff Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $$eennddiiff
-
- $$eennddiiff This command, as seen in the previous example, ter-
- minates an $$iiff command.
-
- $$eellssee Commands in this branch of the $$iiff directive are
- executed if the test fails.
-
- $$iinncclluuddee
- This directive takes a single filename as an argu-
- ment and reads commands and bindings from that
- file. For example, the following directive would
- read _/_e_t_c_/_i_n_p_u_t_r_c:
-
- $$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c
-
-SSEEAARRCCHHIINNGG
- Readline provides commands for searching through the com-
- mand history for lines containing a specified string.
- There are two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_-
- _t_a_l.
-
- Incremental searches begin before the user has finished
- typing the search string. As each character of the search
- string is typed, readline displays the next entry from the
- history matching the string typed so far. An incremental
- search requires only as many characters as needed to find
- the desired history entry. To search backward in the his-
- tory for a particular string, type CC--rr. Typing CC--ss
- searches forward through the history. The characters pre-
- sent in the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are
- used to terminate an incremental search. If that variable
- has not been assigned a value the _E_s_c_a_p_e and CC--JJ charac-
- ters will terminate an incremental search. CC--GG will abort
- an incremental search and restore the original line. When
- the search is terminated, the history entry containing the
- search string becomes the current line.
-
- To find other matching entries in the history list, type
- CC--ss or CC--rr as appropriate. This will search backward or
- forward in the history for the next line matching the
- search string typed so far. Any other key sequence bound
- to a readline command will terminate the search and exe-
- cute that command. For instance, a newline will terminate
- the search and accept the line, thereby executing the com-
- mand from the history list. A movement command will ter-
- minate the search, make the last line found the current
- line, and begin editing.
-
- Non-incremental searches read the entire search string
- before starting to search for matching history lines. The
- search string may be typed by the user or be part of the
- contents of the current line.
-
-EEDDIITTIINNGG CCOOMMMMAANNDDSS
- The following is a list of the names of the commands and
- the default key sequences to which they are bound. Com-
- mand names without an accompanying key sequence are
- unbound by default.
-
- In the following descriptions, _p_o_i_n_t refers to the current
- cursor position, and _m_a_r_k refers to a cursor position
- saved by the sseett--mmaarrkk command. The text between the point
- and mark is referred to as the _r_e_g_i_o_n.
-
- CCoommmmaannddss ffoorr MMoovviinngg
- bbeeggiinnnniinngg--ooff--lliinnee ((CC--aa))
- Move to the start of the current line.
- eenndd--ooff--lliinnee ((CC--ee))
- Move to the end of the line.
- ffoorrwwaarrdd--cchhaarr ((CC--ff))
- Move forward a character.
- bbaacckkwwaarrdd--cchhaarr ((CC--bb))
- Move back a character.
- ffoorrwwaarrdd--wwoorrdd ((MM--ff))
- Move forward to the end of the next word. Words
- are composed of alphanumeric characters (letters
- and digits).
- bbaacckkwwaarrdd--wwoorrdd ((MM--bb))
- Move back to the start of the current or previous
- word. Words are composed of alphanumeric charac-
- ters (letters and digits).
- cclleeaarr--ssccrreeeenn ((CC--ll))
- Clear the screen leaving the current line at the
- top of the screen. With an argument, refresh the
- current line without clearing the screen.
- rreeddrraaww--ccuurrrreenntt--lliinnee
- Refresh the current line.
-
- CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy
- aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn))
- Accept the line regardless of where the cursor is.
- If this line is non-empty, it may be added to the
- history list for future recall with aadddd__hhiissttoorryy(()).
- If the line is a modified history line, the history
- line is restored to its original state.
- pprreevviioouuss--hhiissttoorryy ((CC--pp))
- Fetch the previous command from the history list,
- moving back in the list.
- nneexxtt--hhiissttoorryy ((CC--nn))
- Fetch the next command from the history list, mov-
- ing forward in the list.
- bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<))
- Move to the first line in the history.
- eenndd--ooff--hhiissttoorryy ((MM-->>))
- Move to the end of the input history, i.e., the
- line currently being entered.
- rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr))
- Search backward starting at the current line and
- moving `up' through the history as necessary. This
- is an incremental search.
- ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((CC--ss))
- Search forward starting at the current line and
- moving `down' through the history as necessary.
- This is an incremental search.
- nnoonn--iinnccrreemmeennttaall--rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((MM--pp))
- Search backward through the history starting at the
- current line using a non-incremental search for a
- string supplied by the user.
- nnoonn--iinnccrreemmeennttaall--ffoorrwwaarrdd--sseeaarrcchh--hhiissttoorryy ((MM--nn))
- Search forward through the history using a non-
- incremental search for a string supplied by the
- user.
- hhiissttoorryy--sseeaarrcchh--ffoorrwwaarrdd
- Search forward through the history for the string
- of characters between the start of the current line
- and the current cursor position (the _p_o_i_n_t). This
- is a non-incremental search.
- hhiissttoorryy--sseeaarrcchh--bbaacckkwwaarrdd
- Search backward through the history for the string
- of characters between the start of the current line
- and the point. This is a non-incremental search.
- yyaannkk--nntthh--aarrgg ((MM--CC--yy))
- Insert the first argument to the previous command
- (usually the second word on the previous line) at
- point. With an argument _n, insert the _nth word
- from the previous command (the words in the previ-
- ous command begin with word 0). A negative argu-
- ment inserts the _nth word from the end of the pre-
- vious command.
- yyaannkk--llaasstt--aarrgg ((MM--..,, MM--__))
- Insert the last argument to the previous command
- (the last word of the previous history entry).
- With an argument, behave exactly like yyaannkk--nntthh--aarrgg.
- Successive calls to yyaannkk--llaasstt--aarrgg move back through
- the history list, inserting the last argument of
- each line in turn.
-
- CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt
- ddeelleettee--cchhaarr ((CC--dd))
- Delete the character at point. If point is at the
- beginning of the line, there are no characters in
- the line, and the last character typed was not
- bound to ddeelleettee--cchhaarr, then return EEOOFF.
- bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
- Delete the character behind the cursor. When given
- a numeric argument, save the deleted text on the
- kill ring.
- ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr
- Delete the character under the cursor, unless the
- cursor is at the end of the line, in which case the
- character behind the cursor is deleted.
- qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv))
- Add the next character that you type to the line
- verbatim. This is how to insert characters like
- CC--qq, for example.
- ttaabb--iinnsseerrtt ((MM--TTAABB))
- Insert a tab character.
- sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......))
- Insert the character typed.
- ttrraannssppoossee--cchhaarrss ((CC--tt))
- Drag the character before point forward over the
- character at point, moving point forward as well.
- If point is at the end of the line, then this
- transposes the two characters before point. Nega-
- tive arguments have no effect.
- ttrraannssppoossee--wwoorrddss ((MM--tt))
- Drag the word before point past the word after
- point, moving point over that word as well. If
- point is at the end of the line, this transposes
- the last two words on the line.
- uuppccaassee--wwoorrdd ((MM--uu))
- Uppercase the current (or following) word. With a
- negative argument, uppercase the previous word, but
- do not move point.
- ddoowwnnccaassee--wwoorrdd ((MM--ll))
- Lowercase the current (or following) word. With a
- negative argument, lowercase the previous word, but
- do not move point.
- ccaappiittaalliizzee--wwoorrdd ((MM--cc))
- Capitalize the current (or following) word. With a
- negative argument, capitalize the previous word,
- but do not move point.
- oovveerrwwrriittee--mmooddee
- Toggle overwrite mode. With an explicit positive
- numeric argument, switches to overwrite mode. With
- an explicit non-positive numeric argument, switches
- to insert mode. This command affects only eemmaaccss
- mode; vvii mode does overwrite differently. Each
- call to _r_e_a_d_l_i_n_e_(_) starts in insert mode. In over-
- write mode, characters bound to sseellff--iinnsseerrtt replace
- the text at point rather than pushing the text to
- the right. Characters bound to bbaacckk--
- wwaarrdd--ddeelleettee--cchhaarr replace the character before point
- with a space. By default, this command is unbound.
-
- KKiilllliinngg aanndd YYaannkkiinngg
- kkiillll--lliinnee ((CC--kk))
- Kill the text from point to the end of the line.
- bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt))
- Kill backward to the beginning of the line.
- uunniixx--lliinnee--ddiissccaarrdd ((CC--uu))
- Kill backward from point to the beginning of the
- line. The killed text is saved on the kill-ring.
- kkiillll--wwhhoollee--lliinnee
- Kill all characters on the current line, no matter
- where point is.
- kkiillll--wwoorrdd ((MM--dd))
- Kill from point the end of the current word, or if
- between words, to the end of the next word. Word
- boundaries are the same as those used by ffoorr--
- wwaarrdd--wwoorrdd.
- bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt))
- Kill the word behind point. Word boundaries are
- the same as those used by bbaacckkwwaarrdd--wwoorrdd.
- uunniixx--wwoorrdd--rruubboouutt ((CC--ww))
- Kill the word behind point, using white space as a
- word boundary. The killed text is saved on the
- kill-ring.
- ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\))
- Delete all spaces and tabs around point.
- kkiillll--rreeggiioonn
- Kill the text between the point and _m_a_r_k (saved
- cursor position). This text is referred to as the
- _r_e_g_i_o_n.
- ccooppyy--rreeggiioonn--aass--kkiillll
- Copy the text in the region to the kill buffer.
- ccooppyy--bbaacckkwwaarrdd--wwoorrdd
- Copy the word before point to the kill buffer. The
- word boundaries are the same as bbaacckkwwaarrdd--wwoorrdd.
- ccooppyy--ffoorrwwaarrdd--wwoorrdd
- Copy the word following point to the kill buffer.
- The word boundaries are the same as ffoorrwwaarrdd--wwoorrdd.
- yyaannkk ((CC--yy))
- Yank the top of the kill ring into the buffer at
- point.
- yyaannkk--ppoopp ((MM--yy))
- Rotate the kill ring, and yank the new top. Only
- works following yyaannkk or yyaannkk--ppoopp.
-
- NNuummeerriicc AArrgguummeennttss
- ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----))
- Add this digit to the argument already accumulat-
- ing, or start a new argument. M-- starts a nega-
- tive argument.
- uunniivveerrssaall--aarrgguummeenntt
- This is another way to specify an argument. If
- this command is followed by one or more digits,
- optionally with a leading minus sign, those digits
- define the argument. If the command is followed by
- digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the
- numeric argument, but is otherwise ignored. As a
- special case, if this command is immediately fol-
- lowed by a character that is neither a digit or
- minus sign, the argument count for the next command
- is multiplied by four. The argument count is ini-
- tially one, so executing this function the first
- time makes the argument count four, a second time
- makes the argument count sixteen, and so on.
-
- CCoommpplleettiinngg
- ccoommpplleettee ((TTAABB))
- Attempt to perform completion on the text before
- point. The actual completion performed is applica-
- tion-specific. BBaasshh, for instance, attempts com-
- pletion treating the text as a variable (if the
- text begins with $$), username (if the text begins
- with ~~), hostname (if the text begins with @@), or
- command (including aliases and functions) in turn.
- If none of these produces a match, filename comple-
- tion is attempted. GGddbb, on the other hand, allows
- completion of program functions and variables, and
- only attempts filename completion under certain
- circumstances.
- ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??))
- List the possible completions of the text before
- point.
- iinnsseerrtt--ccoommpplleettiioonnss ((MM--**))
- Insert all completions of the text before point
- that would have been generated by ppoossssiibbllee--ccoommppllee--
- ttiioonnss.
- mmeennuu--ccoommpplleettee
- Similar to ccoommpplleettee, but replaces the word to be
- completed with a single match from the list of pos-
- sible completions. Repeated execution of mmeennuu--ccoomm--
- pplleettee steps through the list of possible comple-
- tions, inserting each match in turn. At the end of
- the list of completions, the bell is rung (subject
- to the setting of 00aanndd tthhee oorriiggiinnaall tteexxtt iiss
- rreessttoorreedd.. AAnn aarrgguummeenntt ooff _n mmoovveess _n ppoossiittiioonnss ffoorr--
- wwaarrdd iinn tthhee lliisstt ooff mmaattcchheess;; aa nneeggaattiivvee aarrgguummeenntt
- mmaayy bbee uusseedd ttoo mmoovvee bbaacckkwwaarrdd tthhrroouugghh tthhee lliisstt..
- TThhiiss ccoommmmaanndd iiss iinntteennddeedd ttoo bbee bboouunndd ttoo TTAABB,, bbuutt iiss
- uunnbboouunndd bbyy ddeeffaauulltt..
- ddeelleettee--cchhaarr--oorr--lliisstt
- Deletes the character under the cursor if not at
- the beginning or end of the line (like ddeelleettee--
- cchhaarr). If at the end of the line, behaves identi-
- cally to ppoossssiibbllee--ccoommpplleettiioonnss.
-
- KKeeyybbooaarrdd MMaaccrrooss
- ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (())
- Begin saving the characters typed into the current
- keyboard macro.
- eenndd--kkbbdd--mmaaccrroo ((CC--xx ))))
- Stop saving the characters typed into the current
- keyboard macro and store the definition.
- ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee))
- Re-execute the last keyboard macro defined, by mak-
- ing the characters in the macro appear as if typed
- at the keyboard.
-
- MMiisscceellllaanneeoouuss
- rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr))
- Read in the contents of the _i_n_p_u_t_r_c file, and
- incorporate any bindings or variable assignments
- found there.
- aabboorrtt ((CC--gg))
- Abort the current editing command and ring the ter-
- minal's bell (subject to the setting of
- bbeellll--ssttyyllee).
- ddoo--uuppppeerrccaassee--vveerrssiioonn ((MM--aa,, MM--bb,, MM--_x,, ......))
- If the metafied character _x is lowercase, run the
- command that is bound to the corresponding upper-
- case character.
- pprreeffiixx--mmeettaa ((EESSCC))
- Metafy the next character typed. EESSCC ff is equiva-
- lent to MMeettaa--ff.
- uunnddoo ((CC--__,, CC--xx CC--uu))
- Incremental undo, separately remembered for each
- line.
- rreevveerrtt--lliinnee ((MM--rr))
- Undo all changes made to this line. This is like
- executing the uunnddoo command enough times to return
- the line to its initial state.
- ttiillddee--eexxppaanndd ((MM--&&))
- Perform tilde expansion on the current word.
- sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>))
- Set the mark to the point. If a numeric argument
- is supplied, the mark is set to that position.
- eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx))
- Swap the point with the mark. The current cursor
- position is set to the saved position, and the old
- cursor position is saved as the mark.
- cchhaarraacctteerr--sseeaarrcchh ((CC--]]))
- A character is read and point is moved to the next
- occurrence of that character. A negative count
- searches for previous occurrences.
- cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]]))
- A character is read and point is moved to the pre-
- vious occurrence of that character. A negative
- count searches for subsequent occurrences.
- iinnsseerrtt--ccoommmmeenntt ((MM--##))
- Without a numeric argument, the value of the read-
- line ccoommmmeenntt--bbeeggiinn variable is inserted at the
- beginning of the current line. If a numeric argu-
- ment is supplied, this command acts as a toggle:
- if the characters at the beginning of the line do
- not match the value of ccoommmmeenntt--bbeeggiinn, the value is
- inserted, otherwise the characters in ccoommmmeenntt--bbeeggiinn
- are deleted from the beginning of the line. In
- either case, the line is accepted as if a newline
- had been typed. The default value of ccoommmmeenntt--bbeeggiinn
- makes the current line a shell comment. If a
- numeric argument causes the comment character to be
- removed, the line will be executed by the shell.
- dduummpp--ffuunnccttiioonnss
- Print all of the functions and their key bindings
- to the readline output stream. If a numeric
- argument is supplied, the output is formatted in
- such a way that it can be made part of an _i_n_p_u_t_r_c
- file.
- dduummpp--vvaarriiaabblleess
- Print all of the settable variables and their val-
- ues to the readline output stream. If a numeric
- argument is supplied, the output is formatted in
- such a way that it can be made part of an _i_n_p_u_t_r_c
- file.
- dduummpp--mmaaccrrooss
- Print all of the readline key sequences bound to
- macros and the strings they ouput. If a numeric
- argument is supplied, the output is formatted in
- such a way that it can be made part of an _i_n_p_u_t_r_c
- file.
- eemmaaccss--eeddiittiinngg--mmooddee ((CC--ee))
- When in vvii command mode, this causes a switch to
- eemmaaccss editing mode.
- vvii--eeddiittiinngg--mmooddee ((MM--CC--jj))
- When in eemmaaccss editing mode, this causes a switch to
- vvii editing mode.
-
-DDEEFFAAUULLTT KKEEYY BBIINNDDIINNGGSS
- The following is a list of the default emacs and vi bind-
- ings. Characters with the eighth bit set are written as
- M-<character>, and are referred to as _m_e_t_a_f_i_e_d characters.
- The printable ASCII characters not mentioned in the list
- of emacs standard bindings are bound to the sseellff--iinnsseerrtt
- function, which just inserts the given character into the
- input line. In vi insertion mode, all characters not
- specifically mentioned are bound to sseellff--iinnsseerrtt. Charac-
- ters assigned to signal generation by _s_t_t_y(1) or the ter-
- minal driver, such as C-Z or C-C, retain that function.
- Upper and lower case metafied characters are bound to the
- same function in the emacs mode meta keymap. The remain-
- ing characters are unbound, which causes readline to ring
- the bell (subject to the setting of the bbeellll--ssttyyllee vari-
- able).
-
- EEmmaaccss MMooddee
- Emacs Standard bindings
-
- "C-@" set-mark
- "C-A" beginning-of-line
- "C-B" backward-char
- "C-D" delete-char
- "C-E" end-of-line
- "C-F" forward-char
- "C-G" abort
- "C-H" backward-delete-char
- "C-I" complete
- "C-J" accept-line
- "C-K" kill-line
- "C-L" clear-screen
- "C-M" accept-line
- "C-N" next-history
- "C-P" previous-history
- "C-Q" quoted-insert
- "C-R" reverse-search-history
- "C-S" forward-search-history
- "C-T" transpose-chars
- "C-U" unix-line-discard
- "C-V" quoted-insert
- "C-W" unix-word-rubout
- "C-Y" yank
- "C-]" character-search
- "C-_" undo
- " " to "/" self-insert
- "0" to "9" self-insert
- ":" to "~" self-insert
- "C-?" backward-delete-char
-
- Emacs Meta bindings
-
- "M-C-G" abort
- "M-C-H" backward-kill-word
- "M-C-I" tab-insert
- "M-C-J" vi-editing-mode
- "M-C-M" vi-editing-mode
- "M-C-R" revert-line
- "M-C-Y" yank-nth-arg
- "M-C-[" complete
- "M-C-]" character-search-backward
- "M-space" set-mark
- "M-#" insert-comment
- "M-&" tilde-expand
- "M-*" insert-completions
- "M--" digit-argument
- "M-." yank-last-arg
- "M-0" digit-argument
- "M-1" digit-argument
- "M-2" digit-argument
- "M-3" digit-argument
- "M-4" digit-argument
- "M-5" digit-argument
- "M-6" digit-argument
- "M-7" digit-argument
- "M-8" digit-argument
- "M-9" digit-argument
- "M-<" beginning-of-history
- "M-=" possible-completions
- "M->" end-of-history
- "M-?" possible-completions
- "M-B" backward-word
- "M-C" capitalize-word
- "M-D" kill-word
- "M-F" forward-word
- "M-L" downcase-word
- "M-N" non-incremental-forward-search-history
- "M-P" non-incremental-reverse-search-history
- "M-R" revert-line
- "M-T" transpose-words
- "M-U" upcase-word
- "M-Y" yank-pop
- "M-\" delete-horizontal-space
- "M-~" tilde-expand
- "M-C-?" backward-kill-word
- "M-_" yank-last-arg
-
- Emacs Control-X bindings
-
- "C-XC-G" abort
- "C-XC-R" re-read-init-file
- "C-XC-U" undo
- "C-XC-X" exchange-point-and-mark
- "C-X(" start-kbd-macro
- "C-X)" end-kbd-macro
- "C-XE" call-last-kbd-macro
- "C-XC-?" backward-kill-line
-
-
- VVII MMooddee bbiinnddiinnggss
- VI Insert Mode functions
-
- "C-D" vi-eof-maybe
- "C-H" backward-delete-char
- "C-I" complete
- "C-J" accept-line
- "C-M" accept-line
- "C-R" reverse-search-history
- "C-S" forward-search-history
- "C-T" transpose-chars
- "C-U" unix-line-discard
- "C-V" quoted-insert
- "C-W" unix-word-rubout
- "C-Y" yank
- "C-[" vi-movement-mode
- "C-_" undo
- " " to "~" self-insert
- "C-?" backward-delete-char
-
- VI Command Mode functions
-
- "C-D" vi-eof-maybe
- "C-E" emacs-editing-mode
- "C-G" abort
- "C-H" backward-char
- "C-J" accept-line
- "C-K" kill-line
- "C-L" clear-screen
- "C-M" accept-line
- "C-N" next-history
- "C-P" previous-history
- "C-Q" quoted-insert
- "C-R" reverse-search-history
- "C-S" forward-search-history
- "C-T" transpose-chars
- "C-U" unix-line-discard
- "C-V" quoted-insert
- "C-W" unix-word-rubout
- "C-Y" yank
- "C-_" vi-undo
- " " forward-char
- "#" insert-comment
- "$" end-of-line
- "%" vi-match
- "&" vi-tilde-expand
- "*" vi-complete
- "+" next-history
- "," vi-char-search
- "-" previous-history
- "." vi-redo
- "/" vi-search
- "0" beginning-of-line
- "1" to "9" vi-arg-digit
- ";" vi-char-search
- "=" vi-complete
- "?" vi-search
- "A" vi-append-eol
- "B" vi-prev-word
- "C" vi-change-to
- "D" vi-delete-to
- "E" vi-end-word
- "F" vi-char-search
- "G" vi-fetch-history
- "I" vi-insert-beg
- "N" vi-search-again
- "P" vi-put
- "R" vi-replace
- "S" vi-subst
- "T" vi-char-search
- "U" revert-line
- "W" vi-next-word
- "X" backward-delete-char
- "Y" vi-yank-to
- "\" vi-complete
- "^" vi-first-print
- "_" vi-yank-arg
- "`" vi-goto-mark
- "a" vi-append-mode
- "b" vi-prev-word
- "c" vi-change-to
- "d" vi-delete-to
- "e" vi-end-word
- "f" vi-char-search
- "h" backward-char
- "i" vi-insertion-mode
- "j" next-history
- "k" prev-history
- "l" forward-char
- "m" vi-set-mark
- "n" vi-search-again
- "p" vi-put
- "r" vi-change-char
- "s" vi-subst
- "t" vi-char-search
- "u" vi-undo
- "w" vi-next-word
- "x" vi-delete
- "y" vi-yank-to
- "|" vi-column
- "~" vi-change-case
-
-SSEEEE AALLSSOO
- _T_h_e _G_n_u _R_e_a_d_l_i_n_e _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _T_h_e _G_n_u _H_i_s_t_o_r_y _L_i_b_r_a_r_y, Brian Fox and Chet Ramey
- _b_a_s_h(1)
-
-FFIILLEESS
- _~_/_._i_n_p_u_t_r_c
- Individual rreeaaddlliinnee initialization file
-
-AAUUTTHHOORRSS
- Brian Fox, Free Software Foundation
- bfox@gnu.org
-
- Chet Ramey, Case Western Reserve University
- chet@ins.CWRU.Edu
-
-BBUUGG RREEPPOORRTTSS
- If you find a bug in rreeaaddlliinnee,, you should report it. But
- first, you should make sure that it really is a bug, and
- that it appears in the latest version of the rreeaaddlliinnee
- library that you have.
-
- Once you have determined that a bug actually exists, mail
- a bug report to _b_u_g_-_r_e_a_d_l_i_n_e@_g_n_u_._o_r_g. If you have a fix,
- you are welcome to mail that as well! Suggestions and
- `philosophical' bug reports may be mailed to _b_u_g_-_r_e_a_d_-
- _l_i_n_e@_g_n_u_._o_r_g or posted to the Usenet newsgroup
- ggnnuu..bbaasshh..bbuugg.
-
- Comments and bug reports concerning this manual page
- should be directed to _c_h_e_t_@_i_n_s_._C_W_R_U_._E_d_u.
-
-BBUUGGSS
- It's too big and too slow.
-
-
-
-GNU Readline 4.3 2002 January 22 READLINE(3)
diff --git a/readline-doc-4.3/doc/readline.dvi b/readline-doc-4.3/doc/readline.dvi
deleted file mode 100644
index 3c1c30f..0000000
--- a/readline-doc-4.3/doc/readline.dvi
+++ /dev/null
Binary files differ
diff --git a/readline-doc-4.3/doc/readline.html b/readline-doc-4.3/doc/readline.html
deleted file mode 100644
index 42485f5..0000000
--- a/readline-doc-4.3/doc/readline.html
+++ /dev/null
@@ -1,5908 +0,0 @@
-<HTML>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on June, 27 2002 by texi2html 1.64 -->
-<!--
-Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
- Karl Berry <karl@freefriends.org>
- Olaf Bachmann <obachman@mathematik.uni-kl.de>
- and many others.
-Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
-Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-
--->
-<HEAD>
-<TITLE>GNU Readline Library: </TITLE>
-
-<META NAME="description" CONTENT="GNU Readline Library: ">
-<META NAME="keywords" CONTENT="GNU Readline Library: ">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="texi2html 1.64">
-
-</HEAD>
-
-<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
-
-<A NAME="SEC_Top"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>GNU Readline Library</H1></P><P>
-
-This document describes the GNU Readline Library, a utility which aids
-in the consistency of user interface across discrete programs that need
-to provide a command line interface.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC1">1. Command Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline User's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC23">2. Programming with GNU Readline</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline Programmer's Manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC49">Concept Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of concepts described in this manual.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC50">Function and Variable Index</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Index of externally visible functions
- and variables.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<HR SIZE=1>
-<A NAME="SEC1"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC2"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<A NAME="Command Line Editing"></A>
-<H1> 1. Command Line Editing </H1>
-<!--docid::SEC1::-->
-<P>
-
-This chapter describes the basic features of the GNU
-command line editing interface.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC2">1.1 Introduction to Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Notation used in this text.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC3">1.2 Readline Interaction</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The minimum set of commands for editing a line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC9">1.3 Readline Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Customizing Readline from a user's view.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC13">1.4 Bindable Readline Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A description of most of the Readline commands
- available for binding</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC22">1.5 Readline vi Mode</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A short description of how to make Readline
- behave like the vi editor.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Introduction and Notation"></A>
-<HR SIZE="6">
-<A NAME="SEC2"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.1 Introduction to Line Editing </H2>
-<!--docid::SEC2::-->
-<P>
-
-The following paragraphs describe the notation used to represent
-keystrokes.
-</P><P>
-
-The text <KBD>C-k</KBD> is read as `Control-K' and describes the character
-produced when the <KBD>k</KBD> key is pressed while the Control key
-is depressed.
-</P><P>
-
-The text <KBD>M-k</KBD> is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the <KBD>k</KBD>
-key is pressed.
-The Meta key is labeled <KBD>ALT</KBD> on many keyboards.
-On keyboards with two keys labeled <KBD>ALT</KBD> (usually to either side of
-the space bar), the <KBD>ALT</KBD> on the left side is generally set to
-work as a Meta key.
-The <KBD>ALT</KBD> key on the right may also be configured to work as a
-Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-</P><P>
-
-If you do not have a Meta or <KBD>ALT</KBD> key, or another key working as
-a Meta key, the identical keystroke can be generated by typing <KBD>ESC</KBD>
-<EM>first</EM>, and then typing <KBD>k</KBD>.
-Either process is known as <EM>metafying</EM> the <KBD>k</KBD> key.
-</P><P>
-
-The text <KBD>M-C-k</KBD> is read as `Meta-Control-k' and describes the
-character produced by <EM>metafying</EM> <KBD>C-k</KBD>.
-</P><P>
-
-In addition, several keys have their own names. Specifically,
-<KBD>DEL</KBD>, <KBD>ESC</KBD>, <KBD>LFD</KBD>, <KBD>SPC</KBD>, <KBD>RET</KBD>, and <KBD>TAB</KBD> all
-stand for themselves when seen in this text, or in an init file
-(see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-If your keyboard lacks a <KBD>LFD</KBD> key, typing <KBD>C-j</KBD> will
-produce the desired character.
-The <KBD>RET</KBD> key may be labeled <KBD>Return</KBD> or <KBD>Enter</KBD> on
-some keyboards.
-</P><P>
-
-<A NAME="Readline Interaction"></A>
-<HR SIZE="6">
-<A NAME="SEC3"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC2"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC4"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.2 Readline Interaction </H2>
-<!--docid::SEC3::-->
-<P>
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <KBD>RET</KBD>. You do not have to be at the
-end of the line to press <KBD>RET</KBD>; the entire line is accepted
-regardless of the location of the cursor within the line.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The least you need to know about Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC5">1.2.2 Readline Movement Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Moving about the input line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to delete text, and how to get it back!</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC7">1.2.4 Readline Arguments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Giving numeric arguments to commands.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC8">1.2.5 Searching for Commands in the History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Searching through previous lines.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Bare Essentials"></A>
-<HR SIZE="6">
-<A NAME="SEC4"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC5"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.1 Readline Bare Essentials </H3>
-<!--docid::SEC4::-->
-<P>
-
-In order to enter characters into the line, simply type them. The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-</P><P>
-
-Sometimes you may mistype a character, and
-not notice the error until you have typed several other characters. In
-that case, you can type <KBD>C-b</KBD> to move the cursor to the left, and then
-correct your mistake. Afterwards, you can move the cursor to the right
-with <KBD>C-f</KBD>.
-</P><P>
-
-When you add text in the middle of a line, you will notice that characters
-to the right of the cursor are `pushed over' to make room for the text
-that you have inserted. Likewise, when you delete text behind the cursor,
-characters to the right of the cursor are `pulled back' to fill in the
-blank space created by the removal of the text. A list of the bare
-essentials for editing the text of an input line follows.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-b</KBD>
-<DD>Move back one character.
-<DT><KBD>C-f</KBD>
-<DD>Move forward one character.
-<DT><KBD>DEL</KBD> or <KBD>Backspace</KBD>
-<DD>Delete the character to the left of the cursor.
-<DT><KBD>C-d</KBD>
-<DD>Delete the character underneath the cursor.
-<DT>Printing characters
-<DD>Insert the character into the line at the cursor.
-<DT><KBD>C-_</KBD> or <KBD>C-x C-u</KBD>
-<DD>Undo the last editing command. You can undo all the way back to an
-empty line.
-</DL>
-<P>
-
-(Depending on your configuration, the <KBD>Backspace</KBD> key be set to
-delete the character to the left of the cursor and the <KBD>DEL</KBD> key set
-to delete the character underneath the cursor, like <KBD>C-d</KBD>, rather
-than the character to the left of the cursor.)
-</P><P>
-
-<A NAME="Readline Movement Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC5"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC4"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC6"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC6"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.2 Readline Movement Commands </H3>
-<!--docid::SEC5::-->
-<P>
-
-The above table describes the most basic keystrokes that you need
-in order to do editing of the input line. For your convenience, many
-other commands have been added in addition to <KBD>C-b</KBD>, <KBD>C-f</KBD>,
-<KBD>C-d</KBD>, and <KBD>DEL</KBD>. Here are some commands for moving more rapidly
-about the line.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-a</KBD>
-<DD>Move to the start of the line.
-<DT><KBD>C-e</KBD>
-<DD>Move to the end of the line.
-<DT><KBD>M-f</KBD>
-<DD>Move forward a word, where a word is composed of letters and digits.
-<DT><KBD>M-b</KBD>
-<DD>Move backward a word.
-<DT><KBD>C-l</KBD>
-<DD>Clear the screen, reprinting the current line at the top.
-</DL>
-<P>
-
-Notice how <KBD>C-f</KBD> moves forward a character, while <KBD>M-f</KBD> moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-</P><P>
-
-<A NAME="Readline Killing Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC6"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC5"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC7"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC7"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.3 Readline Killing Commands </H3>
-<!--docid::SEC6::-->
-<P>
-
-<A NAME="IDX1"></A>
-<A NAME="IDX2"></A>
-</P><P>
-
-<EM>Killing</EM> text means to delete the text from the line, but to save
-it away for later use, usually by <EM>yanking</EM> (re-inserting)
-it back into the line.
-(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
-</P><P>
-
-If the description for a command says that it `kills' text, then you can
-be sure that you can get the text back in a different (or the same)
-place later.
-</P><P>
-
-When you use a kill command, the text is saved in a <EM>kill-ring</EM>.
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill
-ring is not line specific; the text that you killed on a previously
-typed line is available to be yanked back later, when you are typing
-another line.
-<A NAME="IDX3"></A>
-</P><P>
-
-Here is the list of commands for killing text.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-k</KBD>
-<DD>Kill the text from the current cursor position to the end of the line.
-<P>
-
-<DT><KBD>M-d</KBD>
-<DD>Kill from the cursor to the end of the current word, or, if between
-words, to the end of the next word.
-Word boundaries are the same as those used by <KBD>M-f</KBD>.
-<P>
-
-<DT><KBD>M-<KBD>DEL</KBD></KBD>
-<DD>Kill from the cursor the start of the current word, or, if between
-words, to the start of the previous word.
-Word boundaries are the same as those used by <KBD>M-b</KBD>.
-<P>
-
-<DT><KBD>C-w</KBD>
-<DD>Kill from the cursor to the previous whitespace. This is different than
-<KBD>M-<KBD>DEL</KBD></KBD> because the word boundaries differ.
-<P>
-
-</DL>
-<P>
-
-Here is how to <EM>yank</EM> the text back into the line. Yanking
-means to copy the most-recently-killed text from the kill buffer.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-y</KBD>
-<DD>Yank the most recently killed text back into the buffer at the cursor.
-<P>
-
-<DT><KBD>M-y</KBD>
-<DD>Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is <KBD>C-y</KBD> or <KBD>M-y</KBD>.
-</DL>
-<P>
-
-<A NAME="Readline Arguments"></A>
-<HR SIZE="6">
-<A NAME="SEC7"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC6"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC8"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC8"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.4 Readline Arguments </H3>
-<!--docid::SEC7::-->
-<P>
-
-You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the <I>sign</I> of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type <SAMP>`M-- C-k'</SAMP>.
-</P><P>
-
-The general way to pass numeric arguments to a command is to type meta
-digits before the command. If the first `digit' typed is a minus
-sign (<SAMP>`-'</SAMP>), then the sign of the argument will be negative. Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command. For example, to give
-the <KBD>C-d</KBD> command an argument of 10, you could type <SAMP>`M-1 0 C-d'</SAMP>,
-which will delete the next ten characters on the input line.
-</P><P>
-
-<A NAME="Searching"></A>
-<HR SIZE="6">
-<A NAME="SEC8"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC7"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.5 Searching for Commands in the History </H3>
-<!--docid::SEC8::-->
-<P>
-
-Readline provides commands for searching through the command history
-for lines containing a specified string.
-There are two search modes: <EM>incremental</EM> and <EM>non-incremental</EM>.
-</P><P>
-
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, Readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-<KBD>C-r</KBD>. Typing <KBD>C-s</KBD> searches forward through the history.
-The characters present in the value of the <CODE>isearch-terminators</CODE> variable
-are used to terminate an incremental search.
-If that variable has not been assigned a value, the <KBD>ESC</KBD> and
-<KBD>C-J</KBD> characters will terminate an incremental search.
-<KBD>C-g</KBD> will abort an incremental search and restore the original line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-</P><P>
-
-To find other matching entries in the history list, type <KBD>C-r</KBD> or
-<KBD>C-s</KBD> as appropriate.
-This will search backward or forward in the history for the next
-entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate
-the search and execute that command.
-For instance, a <KBD>RET</KBD> will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-</P><P>
-
-Readline remembers the last incremental search string. If two
-<KBD>C-r</KBD>s are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-</P><P>
-
-Non-incremental searches read the entire search string before starting
-to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-</P><P>
-
-<A NAME="Readline Init File"></A>
-<HR SIZE="6">
-<A NAME="SEC9"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC8"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC10"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.3 Readline Init File </H2>
-<!--docid::SEC9::-->
-<P>
-
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings.
-Any user can customize programs that use Readline by putting
-commands in an <EM>inputrc</EM> file, conventionally in his home directory.
-The name of this
-file is taken from the value of the environment variable <CODE>INPUTRC</CODE>. If
-that variable is unset, the default is <TT>`~/.inputrc'</TT>.
-</P><P>
-
-When a program which uses the Readline library starts up, the
-init file is read, and the key bindings are set.
-</P><P>
-
-In addition, the <CODE>C-x C-r</CODE> command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Syntax for the commands in the inputrc file.</TD></TR>
-</TABLE>
-
-<br>
-<TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC11">1.3.2 Conditional Init Constructs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Conditional key bindings in the inputrc file.</TD></TR>
-</TABLE>
-
-<br>
-<TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC12">1.3.3 Sample Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example inputrc file.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Init File Syntax"></A>
-<HR SIZE="6">
-<A NAME="SEC10"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC11"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.1 Readline Init File Syntax </H3>
-<!--docid::SEC10::-->
-<P>
-
-There are only a few basic constructs allowed in the
-Readline init file. Blank lines are ignored.
-Lines beginning with a <SAMP>`#'</SAMP> are comments.
-Lines beginning with a <SAMP>`$'</SAMP> indicate conditional
-constructs (see section <A HREF="readline.html#SEC11">1.3.2 Conditional Init Constructs</A>). Other lines
-denote variable settings and key bindings.
-</P><P>
-
-<DL COMPACT>
-<DT>Variable Settings
-<DD>You can modify the run-time behavior of Readline by
-altering the values of variables in Readline
-using the <CODE>set</CODE> command within the init file.
-The syntax is simple:
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>set <VAR>variable</VAR> <VAR>value</VAR>
-</pre></td></tr></table></P><P>
-
-Here, for example, is how to
-change from the default Emacs-like key binding to use
-<CODE>vi</CODE> line editing commands:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>set editing-mode vi
-</pre></td></tr></table></P><P>
-
-Variable names and values, where appropriate, are recognized without regard
-to case.
-</P><P>
-
-A great deal of run-time behavior is changeable with the following
-variables.
-</P><P>
-
-<A NAME="IDX4"></A>
-<DL COMPACT>
-
-<DT><CODE>bell-style</CODE>
-<DD><A NAME="IDX5"></A>
-Controls what happens when Readline wants to ring the terminal bell.
-If set to <SAMP>`none'</SAMP>, Readline never rings the bell. If set to
-<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available.
-If set to <SAMP>`audible'</SAMP> (the default), Readline attempts to ring
-the terminal's bell.
-<P>
-
-<DT><CODE>comment-begin</CODE>
-<DD><A NAME="IDX6"></A>
-The string to insert at the beginning of the line when the
-<CODE>insert-comment</CODE> command is executed. The default value
-is <CODE>"#"</CODE>.
-<P>
-
-<DT><CODE>completion-ignore-case</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
-in a case-insensitive fashion.
-The default value is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>completion-query-items</CODE>
-<DD><A NAME="IDX7"></A>
-The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities. If the
-number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
-This variable must be set to an integer value greater than or equal to 0.
-The default limit is <CODE>100</CODE>.
-<P>
-
-<DT><CODE>convert-meta</CODE>
-<DD><A NAME="IDX8"></A>
-If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
-eighth bit set to an ASCII key sequence by stripping the eighth
-bit and prefixing an <KBD>ESC</KBD> character, converting them to a
-meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>.
-<P>
-
-<DT><CODE>disable-completion</CODE>
-<DD><A NAME="IDX9"></A>
-If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
-Completion characters will be inserted into the line as if they had
-been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>editing-mode</CODE>
-<DD><A NAME="IDX10"></A>
-The <CODE>editing-mode</CODE> variable controls which default set of
-key bindings is used. By default, Readline starts up in Emacs editing
-mode, where the keystrokes are most similar to Emacs. This variable can be
-set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
-<P>
-
-<DT><CODE>enable-keypad</CODE>
-<DD><A NAME="IDX11"></A>
-When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
-keypad when it is called. Some systems need this to enable the
-arrow keys. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>expand-tilde</CODE>
-<DD><A NAME="IDX12"></A>
-If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
-attempts word completion. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<A NAME="IDX13"></A>
-If set to <SAMP>`on'</SAMP>, the history code attempts to place point at the
-same location on each history line retrived with <CODE>previous-history</CODE>
-or <CODE>next-history</CODE>.
-</P><P>
-
-<DT><CODE>horizontal-scroll-mode</CODE>
-<DD><A NAME="IDX14"></A>
-This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it
-to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
-horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>input-meta</CODE>
-<DD><A NAME="IDX15"></A>
-<A NAME="IDX16"></A>
-If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
-will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support. The
-default value is <SAMP>`off'</SAMP>. The name <CODE>meta-flag</CODE> is a
-synonym for this variable.
-<P>
-
-<DT><CODE>isearch-terminators</CODE>
-<DD><A NAME="IDX17"></A>
-The string of characters that should terminate an incremental search without
-subsequently executing the character as a command (see section <A HREF="readline.html#SEC8">1.2.5 Searching for Commands in the History</A>).
-If this variable has not been given a value, the characters <KBD>ESC</KBD> and
-<KBD>C-J</KBD> will terminate an incremental search.
-<P>
-
-<DT><CODE>keymap</CODE>
-<DD><A NAME="IDX18"></A>
-Sets Readline's idea of the current keymap for key binding commands.
-Acceptable <CODE>keymap</CODE> names are
-<CODE>emacs</CODE>,
-<CODE>emacs-standard</CODE>,
-<CODE>emacs-meta</CODE>,
-<CODE>emacs-ctlx</CODE>,
-<CODE>vi</CODE>,
-<CODE>vi-move</CODE>,
-<CODE>vi-command</CODE>, and
-<CODE>vi-insert</CODE>.
-<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
-equivalent to <CODE>emacs-standard</CODE>. The default value is <CODE>emacs</CODE>.
-The value of the <CODE>editing-mode</CODE> variable also affects the
-default keymap.
-<P>
-
-<DT><CODE>mark-directories</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, completed directory names have a slash
-appended. The default is <SAMP>`on'</SAMP>.
-<P>
-
-<DT><CODE>mark-modified-lines</CODE>
-<DD><A NAME="IDX19"></A>
-This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
-asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
-This variable is <SAMP>`off'</SAMP> by default.
-<P>
-
-<DT><CODE>mark-symlinked-directories</CODE>
-<DD><A NAME="IDX20"></A>
-If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
-to directories have a slash appended (subject to the value of
-<CODE>mark-directories</CODE>).
-The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>match-hidden-files</CODE>
-<DD><A NAME="IDX21"></A>
-This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
-names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
-completion, unless the leading <SAMP>`.'</SAMP> is
-supplied by the user in the filename to be completed.
-This variable is <SAMP>`on'</SAMP> by default.
-<P>
-
-<DT><CODE>output-meta</CODE>
-<DD><A NAME="IDX22"></A>
-If set to <SAMP>`on'</SAMP>, Readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>page-completions</CODE>
-<DD><A NAME="IDX23"></A>
-If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
-to display a screenful of possible completions at a time.
-This variable is <SAMP>`on'</SAMP> by default.
-<P>
-
-<DT><CODE>print-completions-horizontally</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, Readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>show-all-if-ambiguous</CODE>
-<DD><A NAME="IDX24"></A>
-This alters the default behavior of the completion functions. If
-set to <SAMP>`on'</SAMP>,
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-The default value is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>visible-stats</CODE>
-<DD><A NAME="IDX25"></A>
-If set to <SAMP>`on'</SAMP>, a character denoting a file's type
-is appended to the filename when listing possible
-completions. The default is <SAMP>`off'</SAMP>.
-<P>
-
-</DL>
-<P>
-
-<DT>Key Bindings
-<DD>The syntax for controlling key bindings in the init file is
-simple. First you need to find the name of the command that you
-want to change. The following sections contain tables of the command
-name, the default keybinding, if any, and a short description of what
-the command does.
-<P>
-
-Once you know the name of the command, simply place on a line
-in the init file the name of the key
-you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
-</P><P>
-
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a <VAR>macro</VAR>).
-</P><P>
-
-<DL COMPACT>
-<DT><VAR>keyname</VAR>: <VAR>function-name</VAR> or <VAR>macro</VAR>
-<DD><VAR>keyname</VAR> is the name of a key spelled out in English. For example:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "&#62; output"
-</pre></td></tr></table><P>
-
-In the above example, <KBD>C-u</KBD> is bound to the function
-<CODE>universal-argument</CODE>,
-<KBD>M-DEL</KBD> is bound to the function <CODE>backward-kill-word</CODE>, and
-<KBD>C-o</KBD> is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-<SAMP>`&#62; output'</SAMP> into the line).
-</P><P>
-
-A number of symbolic character names are recognized while
-processing this key binding syntax:
-<VAR>DEL</VAR>,
-<VAR>ESC</VAR>,
-<VAR>ESCAPE</VAR>,
-<VAR>LFD</VAR>,
-<VAR>NEWLINE</VAR>,
-<VAR>RET</VAR>,
-<VAR>RETURN</VAR>,
-<VAR>RUBOUT</VAR>,
-<VAR>SPACE</VAR>,
-<VAR>SPC</VAR>,
-and
-<VAR>TAB</VAR>.
-</P><P>
-
-<DT>"<VAR>keyseq</VAR>": <VAR>function-name</VAR> or <VAR>macro</VAR>
-<DD><VAR>keyseq</VAR> differs from <VAR>keyname</VAR> above in that strings
-denoting an entire key sequence can be specified, by placing
-the key sequence in double quotes. Some GNU Emacs style key
-escapes can be used, as in the following example, but the
-special character names are not recognized.
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-</pre></td></tr></table></P><P>
-
-In the above example, <KBD>C-u</KBD> is again bound to the function
-<CODE>universal-argument</CODE> (just as it was in the first example),
-<SAMP>`<KBD>C-x</KBD> <KBD>C-r</KBD>'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>,
-and <SAMP>`<KBD>ESC</KBD> <KBD>[</KBD> <KBD>1</KBD> <KBD>1</KBD> <KBD>~</KBD>'</SAMP> is bound to insert
-the text <SAMP>`Function Key 1'</SAMP>.
-</P><P>
-
-</DL>
-<P>
-
-The following GNU Emacs style escape sequences are available when
-specifying key sequences:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE><KBD>\C-</KBD></CODE>
-<DD>control prefix
-<DT><CODE><KBD>\M-</KBD></CODE>
-<DD>meta prefix
-<DT><CODE><KBD>\e</KBD></CODE>
-<DD>an escape character
-<DT><CODE><KBD>\\</KBD></CODE>
-<DD>backslash
-<DT><CODE><KBD>\"</KBD></CODE>
-<DD><KBD>"</KBD>, a double quotation mark
-<DT><CODE><KBD>\'</KBD></CODE>
-<DD><KBD>'</KBD>, a single quote or apostrophe
-</DL>
-<P>
-
-In addition to the GNU Emacs style escape sequences, a second
-set of backslash escapes is available:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>\a</CODE>
-<DD>alert (bell)
-<DT><CODE>\b</CODE>
-<DD>backspace
-<DT><CODE>\d</CODE>
-<DD>delete
-<DT><CODE>\f</CODE>
-<DD>form feed
-<DT><CODE>\n</CODE>
-<DD>newline
-<DT><CODE>\r</CODE>
-<DD>carriage return
-<DT><CODE>\t</CODE>
-<DD>horizontal tab
-<DT><CODE>\v</CODE>
-<DD>vertical tab
-<DT><CODE>\<VAR>nnn</VAR></CODE>
-<DD>the eight-bit character whose value is the octal value <VAR>nnn</VAR>
-(one to three digits)
-<DT><CODE>\x<VAR>HH</VAR></CODE>
-<DD>the eight-bit character whose value is the hexadecimal value <VAR>HH</VAR>
-(one or two hex digits)
-</DL>
-<P>
-
-When entering the text of a macro, single or double quotes must
-be used to indicate a macro definition.
-Unquoted text is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including <SAMP>`"'</SAMP> and <SAMP>`''</SAMP>.
-For example, the following binding will make <SAMP>`<KBD>C-x</KBD> \'</SAMP>
-insert a single <SAMP>`\'</SAMP> into the line:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-x\\": "\\"
-</pre></td></tr></table></P><P>
-
-</DL>
-<P>
-
-<A NAME="Conditional Init Constructs"></A>
-<HR SIZE="6">
-<A NAME="SEC11"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC10"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC12"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC12"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.2 Conditional Init Constructs </H3>
-<!--docid::SEC11::-->
-<P>
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests. There are four parser directives used.
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>$if</CODE>
-<DD>The <CODE>$if</CODE> construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-Readline. The text of the test extends to the end of the line;
-no characters are required to isolate it.
-<P>
-
-<DL COMPACT>
-<DT><CODE>mode</CODE>
-<DD>The <CODE>mode=</CODE> form of the <CODE>$if</CODE> directive is used to test
-whether Readline is in <CODE>emacs</CODE> or <CODE>vi</CODE> mode.
-This may be used in conjunction
-with the <SAMP>`set keymap'</SAMP> command, for instance, to set bindings in
-the <CODE>emacs-standard</CODE> and <CODE>emacs-ctlx</CODE> keymaps only if
-Readline is starting out in <CODE>emacs</CODE> mode.
-<P>
-
-<DT><CODE>term</CODE>
-<DD>The <CODE>term=</CODE> form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys. The word on the right side of the
-<SAMP>`='</SAMP> is tested against both the full name of the terminal and
-the portion of the terminal name before the first <SAMP>`-'</SAMP>. This
-allows <CODE>sun</CODE> to match both <CODE>sun</CODE> and <CODE>sun-cmd</CODE>,
-for instance.
-<P>
-
-<DT><CODE>application</CODE>
-<DD>The <VAR>application</VAR> construct is used to include
-application-specific settings. Each program using the Readline
-library sets the <VAR>application name</VAR>, and you can test for
-a particular value.
-This could be used to bind key sequences to functions useful for
-a specific program. For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-</pre></td></tr></table></DL>
-<P>
-
-<DT><CODE>$endif</CODE>
-<DD>This command, as seen in the previous example, terminates an
-<CODE>$if</CODE> command.
-<P>
-
-<DT><CODE>$else</CODE>
-<DD>Commands in this branch of the <CODE>$if</CODE> directive are executed if
-the test fails.
-<P>
-
-<DT><CODE>$include</CODE>
-<DD>This directive takes a single filename as an argument and reads commands
-and bindings from that file.
-For example, the following directive reads from <TT>`/etc/inputrc'</TT>:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>$include /etc/inputrc
-</pre></td></tr></table></DL>
-<P>
-
-<A NAME="Sample Init File"></A>
-<HR SIZE="6">
-<A NAME="SEC12"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC11"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.3 Sample Init File </H3>
-<!--docid::SEC12::-->
-<P>
-
-Here is an example of an <VAR>inputrc</VAR> file. This illustrates key
-binding, variable assignment, and conditional syntax.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre># This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library. Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs
-
-$if mode=emacs
-
-Meta-Control-h: backward-kill-word Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD": backward-char
-#"\M-OC": forward-char
-#"\M-OA": previous-history
-#"\M-OB": next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D": backward-char
-"\M-[C": forward-char
-"\M-[A": previous-history
-"\M-[B": next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD": backward-char
-#"\M-\C-OC": forward-char
-#"\M-\C-OA": previous-history
-#"\M-\C-OB": next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D": backward-char
-#"\M-\C-[C": forward-char
-#"\M-\C-[A": previous-history
-#"\M-\C-[B": next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding. This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-</pre></td></tr></table></P><P>
-
-<A NAME="Bindable Readline Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC13"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC12"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC14"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.4 Bindable Readline Commands </H2>
-<!--docid::SEC13::-->
-<P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Moving about the line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting at previous lines.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for changing text.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for killing and yanking.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying numeric arguments, repeat counts.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting Readline to do the typing for you.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Saving and re-executing typed characters</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Other miscellaneous commands.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-This section describes Readline commands that may be bound to key
-sequences.
-Command names without an accompanying key sequence are unbound by default.
-</P><P>
-
-In the following descriptions, <EM>point</EM> refers to the current cursor
-position, and <EM>mark</EM> refers to a cursor position saved by the
-<CODE>set-mark</CODE> command.
-The text between the point and mark is referred to as the <EM>region</EM>.
-</P><P>
-
-<A NAME="Commands For Moving"></A>
-<HR SIZE="6">
-<A NAME="SEC14"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC15"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.1 Commands For Moving </H3>
-<!--docid::SEC14::-->
-<DL COMPACT>
-<A NAME="IDX26"></A>
-<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX27"></A>
-Move to the start of the current line.
-<P>
-
-<A NAME="IDX28"></A>
-<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX29"></A>
-Move to the end of the line.
-<P>
-
-<A NAME="IDX30"></A>
-<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX31"></A>
-Move forward a character.
-<P>
-
-<A NAME="IDX32"></A>
-<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX33"></A>
-Move back a character.
-<P>
-
-<A NAME="IDX34"></A>
-<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX35"></A>
-Move forward to the end of the next word. Words are composed of
-letters and digits.
-<P>
-
-<A NAME="IDX36"></A>
-<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX37"></A>
-Move back to the start of the current or previous word. Words are
-composed of letters and digits.
-<P>
-
-<A NAME="IDX38"></A>
-<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX39"></A>
-Clear the screen and redraw the current line,
-leaving the current line at the top of the screen.
-<P>
-
-<A NAME="IDX40"></A>
-<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX41"></A>
-Refresh the current line. By default, this is unbound.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Commands For History"></A>
-<HR SIZE="6">
-<A NAME="SEC15"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC14"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC16"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC16"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.2 Commands For Manipulating The History </H3>
-<!--docid::SEC15::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX42"></A>
-<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX43"></A>
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-<CODE>add_history()</CODE>.
-If this line is a modified history line, the history line is restored
-to its original state.
-<P>
-
-<A NAME="IDX44"></A>
-<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX45"></A>
-Move `back' through the history list, fetching the previous command.
-<P>
-
-<A NAME="IDX46"></A>
-<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX47"></A>
-Move `forward' through the history list, fetching the next command.
-<P>
-
-<A NAME="IDX48"></A>
-<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX49"></A>
-Move to the first line in the history.
-<P>
-
-<A NAME="IDX50"></A>
-<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX51"></A>
-Move to the end of the input history, i.e., the line currently
-being entered.
-<P>
-
-<A NAME="IDX52"></A>
-<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX53"></A>
-Search backward starting at the current line and moving `up' through
-the history as necessary. This is an incremental search.
-<P>
-
-<A NAME="IDX54"></A>
-<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX55"></A>
-Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
-<P>
-
-<A NAME="IDX56"></A>
-<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX57"></A>
-Search backward starting at the current line and moving `up'
-through the history as necessary using a non-incremental search
-for a string supplied by the user.
-<P>
-
-<A NAME="IDX58"></A>
-<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX59"></A>
-Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
-for a string supplied by the user.
-<P>
-
-<A NAME="IDX60"></A>
-<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX61"></A>
-Search forward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX62"></A>
-<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX63"></A>
-Search backward through the history for the string of characters
-between the start of the current line and the point. This
-is a non-incremental search. By default, this command is unbound.
-<P>
-
-<A NAME="IDX64"></A>
-<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX65"></A>
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument <VAR>n</VAR>,
-insert the <VAR>n</VAR>th word from the previous command (the words
-in the previous command begin with word 0). A negative argument
-inserts the <VAR>n</VAR>th word from the end of the previous command.
-<P>
-
-<A NAME="IDX66"></A>
-<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX67"></A>
-Insert last argument to the previous command (the last word of the
-previous history entry). With an
-argument, behave exactly like <CODE>yank-nth-arg</CODE>.
-Successive calls to <CODE>yank-last-arg</CODE> move back through the history
-list, inserting the last argument of each line in turn.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Commands For Text"></A>
-<HR SIZE="6">
-<A NAME="SEC16"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC15"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC17"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.3 Commands For Changing Text </H3>
-<!--docid::SEC16::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX68"></A>
-<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX69"></A>
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to <CODE>delete-char</CODE>, then
-return EOF.
-<P>
-
-<A NAME="IDX70"></A>
-<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX71"></A>
-Delete the character behind the cursor. A numeric argument means
-to kill the characters instead of deleting them.
-<P>
-
-<A NAME="IDX72"></A>
-<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX73"></A>
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted. By default, this is not bound to a key.
-<P>
-
-<A NAME="IDX74"></A>
-<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX75"></A>
-Add the next character typed to the line verbatim. This is
-how to insert key sequences like <KBD>C-q</KBD>, for example.
-<P>
-
-<A NAME="IDX76"></A>
-<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX77"></A>
-Insert a tab character.
-<P>
-
-<A NAME="IDX78"></A>
-<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX79"></A>
-Insert yourself.
-<P>
-
-<A NAME="IDX80"></A>
-<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX81"></A>
-Drag the character before the cursor forward over
-the character at the cursor, moving the
-cursor forward as well. If the insertion point
-is at the end of the line, then this
-transposes the last two characters of the line.
-Negative arguments have no effect.
-<P>
-
-<A NAME="IDX82"></A>
-<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX83"></A>
-Drag the word before point past the word after point,
-moving point past that word as well.
-If the insertion point is at the end of the line, this transposes
-the last two words on the line.
-<P>
-
-<A NAME="IDX84"></A>
-<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX85"></A>
-Uppercase the current (or following) word. With a negative argument,
-uppercase the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX86"></A>
-<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX87"></A>
-Lowercase the current (or following) word. With a negative argument,
-lowercase the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX88"></A>
-<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX89"></A>
-Capitalize the current (or following) word. With a negative argument,
-capitalize the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX90"></A>
-<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX91"></A>
-Toggle overwrite mode. With an explicit positive numeric argument,
-switches to overwrite mode. With an explicit non-positive numeric
-argument, switches to insert mode. This command affects only
-<CODE>emacs</CODE> mode; <CODE>vi</CODE> mode does overwrite differently.
-Each call to <CODE>readline()</CODE> starts in insert mode.
-<P>
-
-In overwrite mode, characters bound to <CODE>self-insert</CODE> replace
-the text at point rather than pushing the text to the right.
-Characters bound to <CODE>backward-delete-char</CODE> replace the character
-before point with a space.
-</P><P>
-
-By default, this command is unbound.
-</P><P>
-
-</DL>
-<P>
-
-<A NAME="Commands For Killing"></A>
-<HR SIZE="6">
-<A NAME="SEC17"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC16"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC18"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC18"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.4 Killing And Yanking </H3>
-<!--docid::SEC17::-->
-<P>
-
-<DL COMPACT>
-
-<A NAME="IDX92"></A>
-<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX93"></A>
-Kill the text from point to the end of the line.
-<P>
-
-<A NAME="IDX94"></A>
-<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX95"></A>
-Kill backward to the beginning of the line.
-<P>
-
-<A NAME="IDX96"></A>
-<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX97"></A>
-Kill backward from the cursor to the beginning of the current line.
-<P>
-
-<A NAME="IDX98"></A>
-<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX99"></A>
-Kill all characters on the current line, no matter where point is.
-By default, this is unbound.
-<P>
-
-<A NAME="IDX100"></A>
-<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX101"></A>
-Kill from point to the end of the current word, or if between
-words, to the end of the next word.
-Word boundaries are the same as <CODE>forward-word</CODE>.
-<P>
-
-<A NAME="IDX102"></A>
-<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX103"></A>
-Kill the word behind point.
-Word boundaries are the same as <CODE>backward-word</CODE>.
-<P>
-
-<A NAME="IDX104"></A>
-<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX105"></A>
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-<P>
-
-<A NAME="IDX106"></A>
-<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX107"></A>
-Delete all spaces and tabs around point. By default, this is unbound.
-<P>
-
-<A NAME="IDX108"></A>
-<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX109"></A>
-Kill the text in the current region.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX110"></A>
-<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX111"></A>
-Copy the text in the region to the kill buffer, so it can be yanked
-right away. By default, this command is unbound.
-<P>
-
-<A NAME="IDX112"></A>
-<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX113"></A>
-Copy the word before point to the kill buffer.
-The word boundaries are the same as <CODE>backward-word</CODE>.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX114"></A>
-<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX115"></A>
-Copy the word following point to the kill buffer.
-The word boundaries are the same as <CODE>forward-word</CODE>.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX116"></A>
-<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX117"></A>
-Yank the top of the kill ring into the buffer at point.
-<P>
-
-<A NAME="IDX118"></A>
-<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX119"></A>
-Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
-</DL>
-<P>
-
-<A NAME="Numeric Arguments"></A>
-<HR SIZE="6">
-<A NAME="SEC18"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC17"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC19"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC19"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.5 Specifying Numeric Arguments </H3>
-<!--docid::SEC18::-->
-<DL COMPACT>
-
-<A NAME="IDX120"></A>
-<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX121"></A>
-Add this digit to the argument already accumulating, or start a new
-argument. <KBD>M--</KBD> starts a negative argument.
-<P>
-
-<A NAME="IDX122"></A>
-<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX123"></A>
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing <CODE>universal-argument</CODE>
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-By default, this is not bound to a key.
-</DL>
-<P>
-
-<A NAME="Commands For Completion"></A>
-<HR SIZE="6">
-<A NAME="SEC19"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC18"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC20"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC20"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.6 Letting Readline Type For You </H3>
-<!--docid::SEC19::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX124"></A>
-<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX125"></A>
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-The default is filename completion.
-<P>
-
-<A NAME="IDX126"></A>
-<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX127"></A>
-List the possible completions of the text before point.
-<P>
-
-<A NAME="IDX128"></A>
-<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX129"></A>
-Insert all completions of the text before point that would have
-been generated by <CODE>possible-completions</CODE>.
-<P>
-
-<A NAME="IDX130"></A>
-<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX131"></A>
-Similar to <CODE>complete</CODE>, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of <CODE>menu-complete</CODE> steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of <CODE>bell-style</CODE>)
-and the original text is restored.
-An argument of <VAR>n</VAR> moves <VAR>n</VAR> positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
-by default.
-<P>
-
-<A NAME="IDX132"></A>
-<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX133"></A>
-Deletes the character under the cursor if not at the beginning or
-end of the line (like <CODE>delete-char</CODE>).
-If at the end of the line, behaves identically to
-<CODE>possible-completions</CODE>.
-This command is unbound by default.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Keyboard Macros"></A>
-<HR SIZE="6">
-<A NAME="SEC20"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC19"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC21"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC21"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.7 Keyboard Macros </H3>
-<!--docid::SEC20::-->
-<DL COMPACT>
-
-<A NAME="IDX134"></A>
-<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX135"></A>
-Begin saving the characters typed into the current keyboard macro.
-<P>
-
-<A NAME="IDX136"></A>
-<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX137"></A>
-Stop saving the characters typed into the current keyboard macro
-and save the definition.
-<P>
-
-<A NAME="IDX138"></A>
-<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX139"></A>
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Miscellaneous Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC21"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC20"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.8 Some Miscellaneous Commands </H3>
-<!--docid::SEC21::-->
-<DL COMPACT>
-
-<A NAME="IDX140"></A>
-<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX141"></A>
-Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
-any bindings or variable assignments found there.
-<P>
-
-<A NAME="IDX142"></A>
-<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX143"></A>
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-<CODE>bell-style</CODE>).
-<P>
-
-<A NAME="IDX144"></A>
-<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX145"></A>
-If the metafied character <VAR>x</VAR> is lowercase, run the command
-that is bound to the corresponding uppercase character.
-<P>
-
-<A NAME="IDX146"></A>
-<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX147"></A>
-Metafy the next character typed. This is for keyboards
-without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
-<KBD>M-f</KBD>.
-<P>
-
-<A NAME="IDX148"></A>
-<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX149"></A>
-Incremental undo, separately remembered for each line.
-<P>
-
-<A NAME="IDX150"></A>
-<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX151"></A>
-Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
-command enough times to get back to the beginning.
-<P>
-
-<A NAME="IDX152"></A>
-<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX153"></A>
-Perform tilde expansion on the current word.
-<P>
-
-<A NAME="IDX154"></A>
-<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX155"></A>
-Set the mark to the point. If a
-numeric argument is supplied, the mark is set to that position.
-<P>
-
-<A NAME="IDX156"></A>
-<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX157"></A>
-Swap the point with the mark. The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-<P>
-
-<A NAME="IDX158"></A>
-<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX159"></A>
-A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
-<P>
-
-<A NAME="IDX160"></A>
-<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX161"></A>
-A character is read and point is moved to the previous occurrence
-of that character. A negative count searches for subsequent
-occurrences.
-<P>
-
-<A NAME="IDX162"></A>
-<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX163"></A>
-Without a numeric argument, the value of the <CODE>comment-begin</CODE>
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
-the characters at the beginning of the line do not match the value
-of <CODE>comment-begin</CODE>, the value is inserted, otherwise
-the characters in <CODE>comment-begin</CODE> are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-<P>
-
-<A NAME="IDX164"></A>
-<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX165"></A>
-Print all of the functions and their key bindings to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX166"></A>
-<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX167"></A>
-Print all of the settable variables and their values to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX168"></A>
-<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX169"></A>
-Print all of the Readline key sequences bound to macros and the
-strings they output. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX170"></A>
-<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX171"></A>
-When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
-editing mode.
-<P>
-
-<A NAME="IDX172"></A>
-<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX173"></A>
-When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
-editing mode.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Readline vi Mode"></A>
-<HR SIZE="6">
-<A NAME="SEC22"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC21"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.5 Readline vi Mode </H2>
-<!--docid::SEC22::-->
-<P>
-
-While the Readline library does not have a full set of <CODE>vi</CODE>
-editing functions, it does contain enough to allow simple editing
-of the line. The Readline <CODE>vi</CODE> mode behaves as specified in
-the POSIX 1003.2 standard.
-</P><P>
-
-In order to switch interactively between <CODE>emacs</CODE> and <CODE>vi</CODE>
-editing modes, use the command <KBD>M-C-j</KBD> (bound to emacs-editing-mode
-when in <CODE>vi</CODE> mode and to vi-editing-mode in <CODE>emacs</CODE> mode).
-The Readline default is <CODE>emacs</CODE> mode.
-</P><P>
-
-When you enter a line in <CODE>vi</CODE> mode, you are already placed in
-`insertion' mode, as if you had typed an <SAMP>`i'</SAMP>. Pressing <KBD>ESC</KBD>
-switches you into `command' mode, where you can edit the text of the
-line with the standard <CODE>vi</CODE> movement keys, move to previous
-history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>, and
-so forth.
-</P><P>
-
-This document describes the GNU Readline Library, a utility for aiding
-in the consitency of user interface across discrete programs that need
-to provide a command line interface.
-</P><P>
-
-Copyright (C) 1988-2002 Free Software Foundation, Inc.
-</P><P>
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-pare preserved on all copies.
-</P><P>
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided that the entire
-resulting derived work is distributed under the terms of a permission
-notice identical to this one.
-</P><P>
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions,
-except that this permission notice may be stated in a translation approved
-by the Foundation.
-</P><P>
-
-<A NAME="Programming with GNU Readline"></A>
-<HR SIZE="6">
-<A NAME="SEC23"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC22"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC24"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> 2. Programming with GNU Readline </H1>
-<!--docid::SEC23::-->
-<P>
-
-This chapter describes the interface between the GNU Readline Library and
-other programs. If you are a programmer, and you wish to include the
-features found in GNU Readline
-such as completion, line editing, and interactive history manipulation
-in your own programs, this section is for you.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Using the default behavior of Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC25">2.2 Custom Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Adding your own functions to Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Variables accessible to custom
- functions.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC29">2.4 Readline Convenience Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions which Readline supplies to
- aid in writing your own custom
- functions.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How Readline behaves when it receives signals.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC44">2.6 Custom Completers</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Supplanting or supplementing Readline's
- completion functions.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Basic Behavior"></A>
-<HR SIZE="6">
-<A NAME="SEC24"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.1 Basic Behavior </H2>
-<!--docid::SEC24::-->
-<P>
-
-Many programs provide a command line interface, such as <CODE>mail</CODE>,
-<CODE>ftp</CODE>, and <CODE>sh</CODE>. For such programs, the default behaviour of
-Readline is sufficient. This section describes how to use Readline in
-the simplest way possible, perhaps to replace calls in your code to
-<CODE>gets()</CODE> or <CODE>fgets()</CODE>.
-</P><P>
-
-<A NAME="IDX174"></A>
-<A NAME="IDX175"></A>
-</P><P>
-
-The function <CODE>readline()</CODE> prints a prompt <VAR>prompt</VAR>
-and then reads and returns a single line of text from the user.
-If <VAR>prompt</VAR> is <CODE>NULL</CODE> or the empty string, no prompt is displayed.
-The line <CODE>readline</CODE> returns is allocated with <CODE>malloc()</CODE>;
-the caller should <CODE>free()</CODE> the line when it has finished with it.
-The declaration for <CODE>readline</CODE> in ANSI C is
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>char *readline (const char *<VAR>prompt</VAR>);</CODE>
-</pre></td></tr></table></P><P>
-
-So, one might say
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>char *line = readline ("Enter a line: ");</CODE>
-</pre></td></tr></table>in order to read a line of text from the user.
-The line returned has the final newline removed, so only the
-text remains.
-</P><P>
-
-If <CODE>readline</CODE> encounters an <CODE>EOF</CODE> while reading the line, and the
-line is empty at that point, then <CODE>(char *)NULL</CODE> is returned.
-Otherwise, the line is ended just as if a newline had been typed.
-</P><P>
-
-If you want the user to be able to get at the line later, (with
-<KBD>C-p</KBD> for example), you must call <CODE>add_history()</CODE> to save the
-line away in a <EM>history</EM> list of such lines.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>add_history (line)</CODE>;
-</pre></td></tr></table></P><P>
-
-For full details on the GNU History Library, see the associated manual.
-</P><P>
-
-It is preferable to avoid saving empty lines on the history list, since
-users rarely have a burning need to reuse a blank line. Here is
-a function which usefully replaces the standard <CODE>gets()</CODE> library
-function, and has the advantage of no static buffer to overflow:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>/* A static variable for holding the line. */
-static char *line_read = (char *)NULL;
-
-/* Read a string, and return a pointer to it.
- Returns NULL on EOF. */
-char *
-rl_gets ()
-{
- /* If the buffer has already been allocated,
- return the memory to the free pool. */
- if (line_read)
- {
- free (line_read);
- line_read = (char *)NULL;
- }
-
- /* Get a line from the user. */
- line_read = readline ("");
-
- /* If the line has any text in it,
- save it on the history. */
- if (line_read &#38;&#38; *line_read)
- add_history (line_read);
-
- return (line_read);
-}
-</pre></td></tr></table></P><P>
-
-This function gives the user the default behaviour of <KBD>TAB</KBD>
-completion: completion on file names. If you do not want Readline to
-complete on filenames, you can change the binding of the <KBD>TAB</KBD> key
-with <CODE>rl_bind_key()</CODE>.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>int rl_bind_key (int <VAR>key</VAR>, rl_command_func_t *<VAR>function</VAR>);</CODE>
-</pre></td></tr></table></P><P>
-
-<CODE>rl_bind_key()</CODE> takes two arguments: <VAR>key</VAR> is the character that
-you want to bind, and <VAR>function</VAR> is the address of the function to
-call when <VAR>key</VAR> is pressed. Binding <KBD>TAB</KBD> to <CODE>rl_insert()</CODE>
-makes <KBD>TAB</KBD> insert itself.
-<CODE>rl_bind_key()</CODE> returns non-zero if <VAR>key</VAR> is not a valid
-ASCII character code (between 0 and 255).
-</P><P>
-
-Thus, to disable the default <KBD>TAB</KBD> behavior, the following suffices:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>rl_bind_key ('\t', rl_insert);</CODE>
-</pre></td></tr></table></P><P>
-
-This code should be executed once at the start of your program; you
-might write a function called <CODE>initialize_readline()</CODE> which
-performs this and other desired initializations, such as installing
-custom completers (see section <A HREF="readline.html#SEC44">2.6 Custom Completers</A>).
-</P><P>
-
-<A NAME="Custom Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC25"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC24"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC26"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.2 Custom Functions </H2>
-<!--docid::SEC25::-->
-<P>
-
-Readline provides many functions for manipulating the text of
-the line, but it isn't possible to anticipate the needs of all
-programs. This section describes the various functions and variables
-defined within the Readline library which allow a user program to add
-customized functionality to Readline.
-</P><P>
-
-Before declaring any functions that customize Readline's behavior, or
-using any functionality Readline provides in other code, an
-application writer should include the file <CODE>&#60;readline/readline.h&#62;</CODE>
-in any file that uses Readline's features. Since some of the definitions
-in <CODE>readline.h</CODE> use the <CODE>stdio</CODE> library, the file
-<CODE>&#60;stdio.h&#62;</CODE> should be included before <CODE>readline.h</CODE>.
-</P><P>
-
-<CODE>readline.h</CODE> defines a C preprocessor variable that should
-be treated as an integer, <CODE>RL_READLINE_VERSION</CODE>, which may
-be used to conditionally compile application code depending on
-the installed Readline version. The value is a hexadecimal
-encoding of the major and minor version numbers of the library,
-of the form 0x<VAR>MMmm</VAR>. <VAR>MM</VAR> is the two-digit major
-version number; <VAR>mm</VAR> is the two-digit minor version number.
-For Readline 4.2, for example, the value of
-<CODE>RL_READLINE_VERSION</CODE> would be <CODE>0x0402</CODE>.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC26">2.2.1 Readline Typedefs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">C declarations to make code readable.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC27">2.2.2 Writing a New Function</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Variables and calling conventions.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Typedefs"></A>
-<HR SIZE="6">
-<A NAME="SEC26"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC27"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.2.1 Readline Typedefs </H3>
-<!--docid::SEC26::-->
-<P>
-
-For readabilty, we declare a number of new object types, all pointers
-to functions.
-</P><P>
-
-The reason for declaring these new types is to make it easier to write
-code describing pointers to C functions with appropriately prototyped
-arguments and return values.
-</P><P>
-
-For instance, say we want to declare a variable <VAR>func</VAR> as a pointer
-to a function which takes two <CODE>int</CODE> arguments and returns an
-<CODE>int</CODE> (this is the type of all of the Readline bindable functions).
-Instead of the classic C declaration
-</P><P>
-
-<CODE>int (*func)();</CODE>
-</P><P>
-
-or the ANSI-C style declaration
-</P><P>
-
-<CODE>int (*func)(int, int);</CODE>
-</P><P>
-
-we may write
-</P><P>
-
-<CODE>rl_command_func_t *func;</CODE>
-</P><P>
-
-The full list of function pointer types available is
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>typedef int rl_command_func_t (int, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef char *rl_compentry_func_t (const char *, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef char **rl_completion_func_t (const char *, int, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef char *rl_quote_func_t (char *, int, char *);</CODE>
-<DD><P>
-
-<DT><CODE>typedef char *rl_dequote_func_t (char *, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_compignore_func_t (char **);</CODE>
-<DD><P>
-
-<DT><CODE>typedef void rl_compdisp_func_t (char **, int, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_hook_func_t (void);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_getc_func_t (FILE *);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_linebuf_func_t (char *, int);</CODE>
-<DD><P>
-
-<DT><CODE>typedef int rl_intfunc_t (int);</CODE>
-<DD><DT><CODE>#define rl_ivoidfunc_t rl_hook_func_t</CODE>
-<DD><DT><CODE>typedef int rl_icpfunc_t (char *);</CODE>
-<DD><DT><CODE>typedef int rl_icppfunc_t (char **);</CODE>
-<DD><P>
-
-<DT><CODE>typedef void rl_voidfunc_t (void);</CODE>
-<DD><DT><CODE>typedef void rl_vintfunc_t (int);</CODE>
-<DD><DT><CODE>typedef void rl_vcpfunc_t (char *);</CODE>
-<DD><DT><CODE>typedef void rl_vcppfunc_t (char **);</CODE>
-<DD><P>
-
-</DL>
-<P>
-
-<A NAME="Function Writing"></A>
-<HR SIZE="6">
-<A NAME="SEC27"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC26"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC25"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.2.2 Writing a New Function </H3>
-<!--docid::SEC27::-->
-<P>
-
-In order to write new functions for Readline, you need to know the
-calling conventions for keyboard-invoked functions, and the names of the
-variables that describe the current state of the line read so far.
-</P><P>
-
-The calling sequence for a command <CODE>foo</CODE> looks like
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre><CODE>int foo (int count, int key)</CODE>
-</pre></td></tr></table></P><P>
-
-where <VAR>count</VAR> is the numeric argument (or 1 if defaulted) and
-<VAR>key</VAR> is the key that invoked this function.
-</P><P>
-
-It is completely up to the function as to what should be done with the
-numeric argument. Some functions use it as a repeat count, some
-as a flag, and others to choose alternate behavior (refreshing the current
-line as opposed to refreshing the screen, for example). Some choose to
-ignore it. In general, if a
-function uses the numeric argument as a repeat count, it should be able
-to do something useful with both negative and positive arguments.
-At the very least, it should be aware that it can be passed a
-negative argument.
-</P><P>
-
-A command function should return 0 if its action completes successfully,
-and a non-zero value if some error occurs.
-</P><P>
-
-<A NAME="Readline Variables"></A>
-<HR SIZE="6">
-<A NAME="SEC28"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC27"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.3 Readline Variables </H2>
-<!--docid::SEC28::-->
-<P>
-
-These variables are available to function writers.
-</P><P>
-
-<A NAME="IDX176"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_line_buffer</B>
-<DD>This is the line gathered so far. You are welcome to modify the
-contents of the line, but see <A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A>. The
-function <CODE>rl_extend_line_buffer</CODE> is available to increase
-the memory allocated to <CODE>rl_line_buffer</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX177"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_point</B>
-<DD>The offset of the current cursor position in <CODE>rl_line_buffer</CODE>
-(the <EM>point</EM>).
-</DL>
-</P><P>
-
-<A NAME="IDX178"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_end</B>
-<DD>The number of characters present in <CODE>rl_line_buffer</CODE>. When
-<CODE>rl_point</CODE> is at the end of the line, <CODE>rl_point</CODE> and
-<CODE>rl_end</CODE> are equal.
-</DL>
-</P><P>
-
-<A NAME="IDX179"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_mark</B>
-<DD>The <VAR>mark</VAR> (saved position) in the current line. If set, the mark
-and point define a <EM>region</EM>.
-</DL>
-</P><P>
-
-<A NAME="IDX180"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_done</B>
-<DD>Setting this to a non-zero value causes Readline to return the current
-line immediately.
-</DL>
-</P><P>
-
-<A NAME="IDX181"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_num_chars_to_read</B>
-<DD>Setting this to a positive value before calling <CODE>readline()</CODE> causes
-Readline to return after accepting that many characters, rather
-than reading up to a character bound to <CODE>accept-line</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX182"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_pending_input</B>
-<DD>Setting this to a value makes it the next keystroke read. This is a
-way to stuff a single character into the input stream.
-</DL>
-</P><P>
-
-<A NAME="IDX183"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_dispatching</B>
-<DD>Set to a non-zero value if a function is being called from a key binding;
-zero otherwise. Application functions can test this to discover whether
-they were called directly or by Readline's dispatching mechanism.
-</DL>
-</P><P>
-
-<A NAME="IDX184"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_erase_empty_line</B>
-<DD>Setting this to a non-zero value causes Readline to completely erase
-the current line, including any prompt, any time a newline is typed as
-the only character on an otherwise-empty line. The cursor is moved to
-the beginning of the newly-blank line.
-</DL>
-</P><P>
-
-<A NAME="IDX185"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_prompt</B>
-<DD>The prompt Readline uses. This is set from the argument to
-<CODE>readline()</CODE>, and should not be assigned to directly.
-The <CODE>rl_set_prompt()</CODE> function (see section <A HREF="readline.html#SEC35">2.4.6 Redisplay</A>) may
-be used to modify the prompt string after calling <CODE>readline()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX186"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_already_prompted</B>
-<DD>If an application wishes to display the prompt itself, rather than have
-Readline do it the first time <CODE>readline()</CODE> is called, it should set
-this variable to a non-zero value after displaying the prompt.
-The prompt must also be passed as the argument to <CODE>readline()</CODE> so
-the redisplay functions can update the display properly.
-The calling application is responsible for managing the value; Readline
-never sets it.
-</DL>
-</P><P>
-
-<A NAME="IDX187"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_library_version</B>
-<DD>The version number of this revision of the library.
-</DL>
-</P><P>
-
-<A NAME="IDX188"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_readline_version</B>
-<DD>An integer encoding the current version of the library. The encoding is
-of the form 0x<VAR>MMmm</VAR>, where <VAR>MM</VAR> is the two-digit major version
-number, and <VAR>mm</VAR> is the two-digit minor version number.
-For example, for Readline-4.2, <CODE>rl_readline_version</CODE> would have the
-value 0x0402.
-</DL>
-</P><P>
-
-<A NAME="IDX189"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_gnu_readline_p</B>
-<DD>Always set to 1, denoting that this is GNU readline rather than some
-emulation.
-</DL>
-</P><P>
-
-<A NAME="IDX190"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_terminal_name</B>
-<DD>The terminal type, used for initialization. If not set by the application,
-Readline sets this to the value of the <CODE>TERM</CODE> environment variable
-the first time it is called.
-</DL>
-</P><P>
-
-<A NAME="IDX191"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_readline_name</B>
-<DD>This variable is set to a unique name by each application using Readline.
-The value allows conditional parsing of the inputrc file
-(see section <A HREF="readline.html#SEC11">1.3.2 Conditional Init Constructs</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX192"></A>
-<DL>
-<DT><U>Variable:</U> FILE * <B>rl_instream</B>
-<DD>The stdio stream from which Readline reads input.
-If <CODE>NULL</CODE>, Readline defaults to <VAR>stdin</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX193"></A>
-<DL>
-<DT><U>Variable:</U> FILE * <B>rl_outstream</B>
-<DD>The stdio stream to which Readline performs output.
-If <CODE>NULL</CODE>, Readline defaults to <VAR>stdout</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX194"></A>
-<DL>
-<DT><U>Variable:</U> rl_command_func_t * <B>rl_last_func</B>
-<DD>The address of the last command function Readline executed. May be used to
-test whether or not a function is being executed twice in succession, for
-example.
-</DL>
-</P><P>
-
-<A NAME="IDX195"></A>
-<DL>
-<DT><U>Variable:</U> rl_hook_func_t * <B>rl_startup_hook</B>
-<DD>If non-zero, this is the address of a function to call just
-before <CODE>readline</CODE> prints the first prompt.
-</DL>
-</P><P>
-
-<A NAME="IDX196"></A>
-<DL>
-<DT><U>Variable:</U> rl_hook_func_t * <B>rl_pre_input_hook</B>
-<DD>If non-zero, this is the address of a function to call after
-the first prompt has been printed and just before <CODE>readline</CODE>
-starts reading input characters.
-</DL>
-</P><P>
-
-<A NAME="IDX197"></A>
-<DL>
-<DT><U>Variable:</U> rl_hook_func_t * <B>rl_event_hook</B>
-<DD>If non-zero, this is the address of a function to call periodically
-when Readline is waiting for terminal input.
-By default, this will be called at most ten times a second if there
-is no keyboard input.
-</DL>
-</P><P>
-
-<A NAME="IDX198"></A>
-<DL>
-<DT><U>Variable:</U> rl_getc_func_t * <B>rl_getc_function</B>
-<DD>If non-zero, Readline will call indirectly through this pointer
-to get a character from the input stream. By default, it is set to
-<CODE>rl_getc</CODE>, the default Readline character input function
-(see section <A HREF="readline.html#SEC37">2.4.8 Character Input</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX199"></A>
-<DL>
-<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_redisplay_function</B>
-<DD>If non-zero, Readline will call indirectly through this pointer
-to update the display with the current contents of the editing buffer.
-By default, it is set to <CODE>rl_redisplay</CODE>, the default Readline
-redisplay function (see section <A HREF="readline.html#SEC35">2.4.6 Redisplay</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX200"></A>
-<DL>
-<DT><U>Variable:</U> rl_vintfunc_t * <B>rl_prep_term_function</B>
-<DD>If non-zero, Readline will call indirectly through this pointer
-to initialize the terminal. The function takes a single argument, an
-<CODE>int</CODE> flag that says whether or not to use eight-bit characters.
-By default, this is set to <CODE>rl_prep_terminal</CODE>
-(see section <A HREF="readline.html#SEC38">2.4.9 Terminal Management</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX201"></A>
-<DL>
-<DT><U>Variable:</U> rl_voidfunc_t * <B>rl_deprep_term_function</B>
-<DD>If non-zero, Readline will call indirectly through this pointer
-to reset the terminal. This function should undo the effects of
-<CODE>rl_prep_term_function</CODE>.
-By default, this is set to <CODE>rl_deprep_terminal</CODE>
-(see section <A HREF="readline.html#SEC38">2.4.9 Terminal Management</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX202"></A>
-<DL>
-<DT><U>Variable:</U> Keymap <B>rl_executing_keymap</B>
-<DD>This variable is set to the keymap (see section <A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>) in which the
-currently executing readline function was found.
-</DL>
-</P><P>
-
-<A NAME="IDX203"></A>
-<DL>
-<DT><U>Variable:</U> Keymap <B>rl_binding_keymap</B>
-<DD>This variable is set to the keymap (see section <A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>) in which the
-last key binding occurred.
-</DL>
-</P><P>
-
-<A NAME="IDX204"></A>
-<DL>
-<DT><U>Variable:</U> char * <B>rl_executing_macro</B>
-<DD>This variable is set to the text of any currently-executing macro.
-</DL>
-</P><P>
-
-<A NAME="IDX205"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_readline_state</B>
-<DD>A variable with bit values that encapsulate the current Readline state.
-A bit is set with the <CODE>RL_SETSTATE</CODE> macro, and unset with the
-<CODE>RL_UNSETSTATE</CODE> macro. Use the <CODE>RL_ISSTATE</CODE> macro to test
-whether a particular state bit is set. Current state bits include:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>RL_STATE_NONE</CODE>
-<DD>Readline has not yet been called, nor has it begun to intialize.
-<DT><CODE>RL_STATE_INITIALIZING</CODE>
-<DD>Readline is initializing its internal data structures.
-<DT><CODE>RL_STATE_INITIALIZED</CODE>
-<DD>Readline has completed its initialization.
-<DT><CODE>RL_STATE_TERMPREPPED</CODE>
-<DD>Readline has modified the terminal modes to do its own input and redisplay.
-<DT><CODE>RL_STATE_READCMD</CODE>
-<DD>Readline is reading a command from the keyboard.
-<DT><CODE>RL_STATE_METANEXT</CODE>
-<DD>Readline is reading more input after reading the meta-prefix character.
-<DT><CODE>RL_STATE_DISPATCHING</CODE>
-<DD>Readline is dispatching to a command.
-<DT><CODE>RL_STATE_MOREINPUT</CODE>
-<DD>Readline is reading more input while executing an editing command.
-<DT><CODE>RL_STATE_ISEARCH</CODE>
-<DD>Readline is performing an incremental history search.
-<DT><CODE>RL_STATE_NSEARCH</CODE>
-<DD>Readline is performing a non-incremental history search.
-<DT><CODE>RL_STATE_SEARCH</CODE>
-<DD>Readline is searching backward or forward through the history for a string.
-<DT><CODE>RL_STATE_NUMERICARG</CODE>
-<DD>Readline is reading a numeric argument.
-<DT><CODE>RL_STATE_MACROINPUT</CODE>
-<DD>Readline is currently getting its input from a previously-defined keyboard
-macro.
-<DT><CODE>RL_STATE_MACRODEF</CODE>
-<DD>Readline is currently reading characters defining a keyboard macro.
-<DT><CODE>RL_STATE_OVERWRITE</CODE>
-<DD>Readline is in overwrite mode.
-<DT><CODE>RL_STATE_COMPLETING</CODE>
-<DD>Readline is performing word completion.
-<DT><CODE>RL_STATE_SIGHANDLER</CODE>
-<DD>Readline is currently executing the readline signal handler.
-<DT><CODE>RL_STATE_UNDOING</CODE>
-<DD>Readline is performing an undo.
-<DT><CODE>RL_STATE_DONE</CODE>
-<DD>Readline has read a key sequence bound to <CODE>accept-line</CODE>
-and is about to return the line to the caller.
-</DL>
-<P>
-
-</DL>
-</P><P>
-
-<A NAME="IDX206"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_explicit_arg</B>
-<DD>Set to a non-zero value if an explicit numeric argument was specified by
-the user. Only valid in a bindable command function.
-</DL>
-</P><P>
-
-<A NAME="IDX207"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_numeric_arg</B>
-<DD>Set to the value of any numeric argument explicitly specified by the user
-before executing the current Readline function. Only valid in a bindable
-command function.
-</DL>
-</P><P>
-
-<A NAME="IDX208"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_editing_mode</B>
-<DD>Set to a value denoting Readline's current editing mode. A value of
-<VAR>1</VAR> means Readline is currently in emacs mode; <VAR>0</VAR>
-means that vi mode is active.
-</DL>
-</P><P>
-
-<A NAME="Readline Convenience Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC29"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC28"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC30"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.4 Readline Convenience Functions </H2>
-<!--docid::SEC29::-->
-<P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC30">2.4.1 Naming a Function</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to give a function you write a name.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Making keymaps.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Changing Keymaps.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Translate function names to
- key sequences.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to make your functions undoable.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to control line display.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to modify <CODE>rl_line_buffer</CODE>.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to read keyboard input.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions to manage terminal settings.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Generally useful functions and hooks.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions that don't fall into any category.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Using Readline in a `callback' fashion.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC42">2.4.13 A Readline Example</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example Readline function.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Function Naming"></A>
-<HR SIZE="6">
-<A NAME="SEC30"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.1 Naming a Function </H3>
-<!--docid::SEC30::-->
-<P>
-
-The user can dynamically change the bindings of keys while using
-Readline. This is done by representing the function with a descriptive
-name. The user is able to type the descriptive name when referring to
-the function. Thus, in an init file, one might find
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>Meta-Rubout: backward-kill-word
-</pre></td></tr></table></P><P>
-
-This binds the keystroke <KBD>Meta-Rubout</KBD> to the function
-<EM>descriptively</EM> named <CODE>backward-kill-word</CODE>. You, as the
-programmer, should bind the functions you write to descriptive names as
-well. Readline provides a function for doing that:
-</P><P>
-
-<A NAME="IDX209"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_add_defun</B> <I>(const char *name, rl_command_func_t *function, int key)</I>
-<DD>Add <VAR>name</VAR> to the list of named functions. Make <VAR>function</VAR> be
-the function that gets called. If <VAR>key</VAR> is not -1, then bind it to
-<VAR>function</VAR> using <CODE>rl_bind_key()</CODE>.
-</DL>
-</P><P>
-
-Using this function alone is sufficient for most applications. It is
-the recommended way to add a few functions to the default functions that
-Readline has built in. If you need to do something other
-than adding a function to Readline, you may need to use the
-underlying functions described below.
-</P><P>
-
-<A NAME="Keymaps"></A>
-<HR SIZE="6">
-<A NAME="SEC31"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC30"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC32"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC32"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.2 Selecting a Keymap </H3>
-<!--docid::SEC31::-->
-<P>
-
-Key bindings take place on a <EM>keymap</EM>. The keymap is the
-association between the keys that the user types and the functions that
-get run. You can make your own keymaps, copy existing keymaps, and tell
-Readline which keymap to use.
-</P><P>
-
-<A NAME="IDX210"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_make_bare_keymap</B> <I>(void)</I>
-<DD>Returns a new, empty keymap. The space for the keymap is allocated with
-<CODE>malloc()</CODE>; the caller should free it by calling
-<CODE>rl_discard_keymap()</CODE> when done.
-</DL>
-</P><P>
-
-<A NAME="IDX211"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_copy_keymap</B> <I>(Keymap map)</I>
-<DD>Return a new keymap which is a copy of <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX212"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_make_keymap</B> <I>(void)</I>
-<DD>Return a new keymap with the printing characters bound to rl_insert,
-the lowercase Meta characters bound to run their equivalents, and
-the Meta digits bound to produce numeric arguments.
-</DL>
-</P><P>
-
-<A NAME="IDX213"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_discard_keymap</B> <I>(Keymap keymap)</I>
-<DD>Free the storage associated with <VAR>keymap</VAR>.
-</DL>
-</P><P>
-
-Readline has several internal keymaps. These functions allow you to
-change which keymap is active.
-</P><P>
-
-<A NAME="IDX214"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_get_keymap</B> <I>(void)</I>
-<DD>Returns the currently active keymap.
-</DL>
-</P><P>
-
-<A NAME="IDX215"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_set_keymap</B> <I>(Keymap keymap)</I>
-<DD>Makes <VAR>keymap</VAR> the currently active keymap.
-</DL>
-</P><P>
-
-<A NAME="IDX216"></A>
-<DL>
-<DT><U>Function:</U> Keymap <B>rl_get_keymap_by_name</B> <I>(const char *name)</I>
-<DD>Return the keymap matching <VAR>name</VAR>. <VAR>name</VAR> is one which would
-be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX217"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_get_keymap_name</B> <I>(Keymap keymap)</I>
-<DD>Return the name matching <VAR>keymap</VAR>. <VAR>name</VAR> is one which would
-be supplied in a <CODE>set keymap</CODE> inputrc line (see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-</DL>
-</P><P>
-
-<A NAME="Binding Keys"></A>
-<HR SIZE="6">
-<A NAME="SEC32"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC33"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC33"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.3 Binding Keys </H3>
-<!--docid::SEC32::-->
-<P>
-
-Key sequences are associate with functions through the keymap.
-Readline has several internal keymaps: <CODE>emacs_standard_keymap</CODE>,
-<CODE>emacs_meta_keymap</CODE>, <CODE>emacs_ctlx_keymap</CODE>,
-<CODE>vi_movement_keymap</CODE>, and <CODE>vi_insertion_keymap</CODE>.
-<CODE>emacs_standard_keymap</CODE> is the default, and the examples in
-this manual assume that.
-</P><P>
-
-Since <CODE>readline()</CODE> installs a set of default key bindings the first
-time it is called, there is always the danger that a custom binding
-installed before the first call to <CODE>readline()</CODE> will be overridden.
-An alternate mechanism is to install custom key bindings in an
-initialization function assigned to the <CODE>rl_startup_hook</CODE> variable
-(see section <A HREF="readline.html#SEC28">2.3 Readline Variables</A>).
-</P><P>
-
-These functions manage key bindings.
-</P><P>
-
-<A NAME="IDX218"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_bind_key</B> <I>(int key, rl_command_func_t *function)</I>
-<DD>Binds <VAR>key</VAR> to <VAR>function</VAR> in the currently active keymap.
-Returns non-zero in the case of an invalid <VAR>key</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX219"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_bind_key_in_map</B> <I>(int key, rl_command_func_t *function, Keymap map)</I>
-<DD>Bind <VAR>key</VAR> to <VAR>function</VAR> in <VAR>map</VAR>. Returns non-zero in the case
-of an invalid <VAR>key</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX220"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_unbind_key</B> <I>(int key)</I>
-<DD>Bind <VAR>key</VAR> to the null function in the currently active keymap.
-Returns non-zero in case of error.
-</DL>
-</P><P>
-
-<A NAME="IDX221"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_unbind_key_in_map</B> <I>(int key, Keymap map)</I>
-<DD>Bind <VAR>key</VAR> to the null function in <VAR>map</VAR>.
-Returns non-zero in case of error.
-</DL>
-</P><P>
-
-<A NAME="IDX222"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_unbind_function_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
-<DD>Unbind all keys that execute <VAR>function</VAR> in <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX223"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_unbind_command_in_map</B> <I>(const char *command, Keymap map)</I>
-<DD>Unbind all keys that are bound to <VAR>command</VAR> in <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX224"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_key</B> <I>(const char *keyseq, rl_command_func_t *function, Keymap map)</I>
-<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the function
-<VAR>function</VAR>. This makes new keymaps as
-necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX225"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_generic_bind</B> <I>(int type, const char *keyseq, char *data, Keymap map)</I>
-<DD>Bind the key sequence represented by the string <VAR>keyseq</VAR> to the arbitrary
-pointer <VAR>data</VAR>. <VAR>type</VAR> says what kind of data is pointed to by
-<VAR>data</VAR>; this can be a function (<CODE>ISFUNC</CODE>), a macro
-(<CODE>ISMACR</CODE>), or a keymap (<CODE>ISKMAP</CODE>). This makes new keymaps as
-necessary. The initial keymap in which to do bindings is <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX226"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_parse_and_bind</B> <I>(char *line)</I>
-<DD>Parse <VAR>line</VAR> as if it had been read from the <CODE>inputrc</CODE> file and
-perform any key bindings and variable assignments found
-(see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX227"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_read_init_file</B> <I>(const char *filename)</I>
-<DD>Read keybindings and variable assignments from <VAR>filename</VAR>
-(see section <A HREF="readline.html#SEC9">1.3 Readline Init File</A>).
-</DL>
-</P><P>
-
-<A NAME="Associating Function Names and Bindings"></A>
-<HR SIZE="6">
-<A NAME="SEC33"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC32"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC34"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC34"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.4 Associating Function Names and Bindings </H3>
-<!--docid::SEC33::-->
-<P>
-
-These functions allow you to find out what keys invoke named functions
-and the functions invoked by a particular key sequence. You may also
-associate a new function name with an arbitrary function.
-</P><P>
-
-<A NAME="IDX228"></A>
-<DL>
-<DT><U>Function:</U> rl_command_func_t * <B>rl_named_function</B> <I>(const char *name)</I>
-<DD>Return the function with name <VAR>name</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX229"></A>
-<DL>
-<DT><U>Function:</U> rl_command_func_t * <B>rl_function_of_keyseq</B> <I>(const char *keyseq, Keymap map, int *type)</I>
-<DD>Return the function invoked by <VAR>keyseq</VAR> in keymap <VAR>map</VAR>.
-If <VAR>map</VAR> is <CODE>NULL</CODE>, the current keymap is used. If <VAR>type</VAR> is
-not <CODE>NULL</CODE>, the type of the object is returned in the <CODE>int</CODE> variable
-it points to (one of <CODE>ISFUNC</CODE>, <CODE>ISKMAP</CODE>, or <CODE>ISMACR</CODE>).
-</DL>
-</P><P>
-
-<A NAME="IDX230"></A>
-<DL>
-<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs</B> <I>(rl_command_func_t *function)</I>
-<DD>Return an array of strings representing the key sequences used to
-invoke <VAR>function</VAR> in the current keymap.
-</DL>
-</P><P>
-
-<A NAME="IDX231"></A>
-<DL>
-<DT><U>Function:</U> char ** <B>rl_invoking_keyseqs_in_map</B> <I>(rl_command_func_t *function, Keymap map)</I>
-<DD>Return an array of strings representing the key sequences used to
-invoke <VAR>function</VAR> in the keymap <VAR>map</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX232"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_function_dumper</B> <I>(int readable)</I>
-<DD>Print the readline function names and the key sequences currently
-bound to them to <CODE>rl_outstream</CODE>. If <VAR>readable</VAR> is non-zero,
-the list is formatted in such a way that it can be made part of an
-<CODE>inputrc</CODE> file and re-read.
-</DL>
-</P><P>
-
-<A NAME="IDX233"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_list_funmap_names</B> <I>(void)</I>
-<DD>Print the names of all bindable Readline functions to <CODE>rl_outstream</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX234"></A>
-<DL>
-<DT><U>Function:</U> const char ** <B>rl_funmap_names</B> <I>(void)</I>
-<DD>Return a NULL terminated array of known function names. The array is
-sorted. The array itself is allocated, but not the strings inside. You
-should <CODE>free()</CODE> the array when you are done, but not the pointers.
-</DL>
-</P><P>
-
-<A NAME="IDX235"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_add_funmap_entry</B> <I>(const char *name, rl_command_func_t *function)</I>
-<DD>Add <VAR>name</VAR> to the list of bindable Readline command names, and make
-<VAR>function</VAR> the function to be called when <VAR>name</VAR> is invoked.
-</DL>
-</P><P>
-
-<A NAME="Allowing Undoing"></A>
-<HR SIZE="6">
-<A NAME="SEC34"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC33"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC35"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC35"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.5 Allowing Undoing </H3>
-<!--docid::SEC34::-->
-<P>
-
-Supporting the undo command is a painless thing, and makes your
-functions much more useful. It is certainly easy to try
-something if you know you can undo it.
-</P><P>
-
-If your function simply inserts text once, or deletes text once, and
-uses <CODE>rl_insert_text()</CODE> or <CODE>rl_delete_text()</CODE> to do it, then
-undoing is already done for you automatically.
-</P><P>
-
-If you do multiple insertions or multiple deletions, or any combination
-of these operations, you should group them together into one operation.
-This is done with <CODE>rl_begin_undo_group()</CODE> and
-<CODE>rl_end_undo_group()</CODE>.
-</P><P>
-
-The types of events that can be undone are:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre>enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
-</FONT></pre></td></tr></table></P><P>
-
-Notice that <CODE>UNDO_DELETE</CODE> means to insert some text, and
-<CODE>UNDO_INSERT</CODE> means to delete some text. That is, the undo code
-tells what to undo, not how to undo it. <CODE>UNDO_BEGIN</CODE> and
-<CODE>UNDO_END</CODE> are tags added by <CODE>rl_begin_undo_group()</CODE> and
-<CODE>rl_end_undo_group()</CODE>.
-</P><P>
-
-<A NAME="IDX236"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_begin_undo_group</B> <I>(void)</I>
-<DD>Begins saving undo information in a group construct. The undo
-information usually comes from calls to <CODE>rl_insert_text()</CODE> and
-<CODE>rl_delete_text()</CODE>, but could be the result of calls to
-<CODE>rl_add_undo()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX237"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_end_undo_group</B> <I>(void)</I>
-<DD>Closes the current undo group started with <CODE>rl_begin_undo_group
-()</CODE>. There should be one call to <CODE>rl_end_undo_group()</CODE>
-for each call to <CODE>rl_begin_undo_group()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX238"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_add_undo</B> <I>(enum undo_code what, int start, int end, char *text)</I>
-<DD>Remember how to undo an event (according to <VAR>what</VAR>). The affected
-text runs from <VAR>start</VAR> to <VAR>end</VAR>, and encompasses <VAR>text</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX239"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_free_undo_list</B> <I>(void)</I>
-<DD>Free the existing undo list.
-</DL>
-</P><P>
-
-<A NAME="IDX240"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_do_undo</B> <I>(void)</I>
-<DD>Undo the first thing on the undo list. Returns <CODE>0</CODE> if there was
-nothing to undo, non-zero if something was undone.
-</DL>
-</P><P>
-
-Finally, if you neither insert nor delete text, but directly modify the
-existing text (e.g., change its case), call <CODE>rl_modifying()</CODE>
-once, just before you modify the text. You must supply the indices of
-the text range that you are going to modify.
-</P><P>
-
-<A NAME="IDX241"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_modifying</B> <I>(int start, int end)</I>
-<DD>Tell Readline to save the text between <VAR>start</VAR> and <VAR>end</VAR> as a
-single undo unit. It is assumed that you will subsequently modify
-that text.
-</DL>
-</P><P>
-
-<A NAME="Redisplay"></A>
-<HR SIZE="6">
-<A NAME="SEC35"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC34"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC36"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC36"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.6 Redisplay </H3>
-<!--docid::SEC35::-->
-<P>
-
-<A NAME="IDX242"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_redisplay</B> <I>(void)</I>
-<DD>Change what's displayed on the screen to reflect the current contents
-of <CODE>rl_line_buffer</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX243"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_forced_update_display</B> <I>(void)</I>
-<DD>Force the line to be updated and redisplayed, whether or not
-Readline thinks the screen display is correct.
-</DL>
-</P><P>
-
-<A NAME="IDX244"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_on_new_line</B> <I>(void)</I>
-<DD>Tell the update functions that we have moved onto a new (empty) line,
-usually after ouputting a newline.
-</DL>
-</P><P>
-
-<A NAME="IDX245"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_on_new_line_with_prompt</B> <I>(void)</I>
-<DD>Tell the update functions that we have moved onto a new line, with
-<VAR>rl_prompt</VAR> already displayed.
-This could be used by applications that want to output the prompt string
-themselves, but still need Readline to know the prompt string length for
-redisplay.
-It should be used after setting <VAR>rl_already_prompted</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX246"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_reset_line_state</B> <I>(void)</I>
-<DD>Reset the display state to a clean state and redisplay the current line
-starting on a new line.
-</DL>
-</P><P>
-
-<A NAME="IDX247"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_crlf</B> <I>(void)</I>
-<DD>Move the cursor to the start of the next screen line.
-</DL>
-</P><P>
-
-<A NAME="IDX248"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_show_char</B> <I>(int c)</I>
-<DD>Display character <VAR>c</VAR> on <CODE>rl_outstream</CODE>.
-If Readline has not been set to display meta characters directly, this
-will convert meta characters to a meta-prefixed key sequence.
-This is intended for use by applications which wish to do their own
-redisplay.
-</DL>
-</P><P>
-
-<A NAME="IDX249"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_message</B> <I>(const char *, <small>...</small>)</I>
-<DD>The arguments are a format string as would be supplied to <CODE>printf</CODE>,
-possibly containing conversion specifications such as <SAMP>`%d'</SAMP>, and
-any additional arguments necessary to satisfy the conversion specifications.
-The resulting string is displayed in the <EM>echo area</EM>. The echo area
-is also used to display numeric arguments and search strings.
-</DL>
-</P><P>
-
-<A NAME="IDX250"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_clear_message</B> <I>(void)</I>
-<DD>Clear the message in the echo area.
-</DL>
-</P><P>
-
-<A NAME="IDX251"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_save_prompt</B> <I>(void)</I>
-<DD>Save the local Readline prompt display state in preparation for
-displaying a new message in the message area with <CODE>rl_message()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX252"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_restore_prompt</B> <I>(void)</I>
-<DD>Restore the local Readline prompt display state saved by the most
-recent call to <CODE>rl_save_prompt</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX253"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_expand_prompt</B> <I>(char *prompt)</I>
-<DD>Expand any special character sequences in <VAR>prompt</VAR> and set up the
-local Readline prompt redisplay variables.
-This function is called by <CODE>readline()</CODE>. It may also be called to
-expand the primary prompt if the <CODE>rl_on_new_line_with_prompt()</CODE>
-function or <CODE>rl_already_prompted</CODE> variable is used.
-It returns the number of visible characters on the last line of the
-(possibly multi-line) prompt.
-</DL>
-</P><P>
-
-<A NAME="IDX254"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_prompt</B> <I>(const char *prompt)</I>
-<DD>Make Readline use <VAR>prompt</VAR> for subsequent redisplay. This calls
-<CODE>rl_expand_prompt()</CODE> to expand the prompt and sets <CODE>rl_prompt</CODE>
-to the result.
-</DL>
-</P><P>
-
-<A NAME="Modifying Text"></A>
-<HR SIZE="6">
-<A NAME="SEC36"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC35"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC37"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC37"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.7 Modifying Text </H3>
-<!--docid::SEC36::-->
-<P>
-
-<A NAME="IDX255"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_insert_text</B> <I>(const char *text)</I>
-<DD>Insert <VAR>text</VAR> into the line at the current cursor position.
-Returns the number of characters inserted.
-</DL>
-</P><P>
-
-<A NAME="IDX256"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_delete_text</B> <I>(int start, int end)</I>
-<DD>Delete the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line.
-Returns the number of characters deleted.
-</DL>
-</P><P>
-
-<A NAME="IDX257"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_copy_text</B> <I>(int start, int end)</I>
-<DD>Return a copy of the text between <VAR>start</VAR> and <VAR>end</VAR> in
-the current line.
-</DL>
-</P><P>
-
-<A NAME="IDX258"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_kill_text</B> <I>(int start, int end)</I>
-<DD>Copy the text between <VAR>start</VAR> and <VAR>end</VAR> in the current line
-to the kill ring, appending or prepending to the last kill if the
-last command was a kill command. The text is deleted.
-If <VAR>start</VAR> is less than <VAR>end</VAR>,
-the text is appended, otherwise prepended. If the last command was
-not a kill, a new kill ring slot is used.
-</DL>
-</P><P>
-
-<A NAME="IDX259"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_push_macro_input</B> <I>(char *macro)</I>
-<DD>Cause <VAR>macro</VAR> to be inserted into the line, as if it had been invoked
-by a key bound to a macro. Not especially useful; use
-<CODE>rl_insert_text()</CODE> instead.
-</DL>
-</P><P>
-
-<A NAME="Character Input"></A>
-<HR SIZE="6">
-<A NAME="SEC37"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC36"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC38"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC38"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.8 Character Input </H3>
-<!--docid::SEC37::-->
-<P>
-
-<A NAME="IDX260"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_read_key</B> <I>(void)</I>
-<DD>Return the next character available from Readline's current input stream.
-This handles input inserted into
-the input stream via <VAR>rl_pending_input</VAR> (see section <A HREF="readline.html#SEC28">2.3 Readline Variables</A>)
-and <CODE>rl_stuff_char()</CODE>, macros, and characters read from the keyboard.
-While waiting for input, this function will call any function assigned to
-the <CODE>rl_event_hook</CODE> variable.
-</DL>
-</P><P>
-
-<A NAME="IDX261"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_getc</B> <I>(FILE *stream)</I>
-<DD>Return the next character available from <VAR>stream</VAR>, which is assumed to
-be the keyboard.
-</DL>
-</P><P>
-
-<A NAME="IDX262"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_stuff_char</B> <I>(int c)</I>
-<DD>Insert <VAR>c</VAR> into the Readline input stream. It will be "read"
-before Readline attempts to read characters from the terminal with
-<CODE>rl_read_key()</CODE>. Up to 512 characters may be pushed back.
-<CODE>rl_stuff_char</CODE> returns 1 if the character was successfully inserted;
-0 otherwise.
-</DL>
-</P><P>
-
-<A NAME="IDX263"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_execute_next</B> <I>(int c)</I>
-<DD>Make <VAR>c</VAR> be the next command to be executed when <CODE>rl_read_key()</CODE>
-is called. This sets <VAR>rl_pending_input</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX264"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_clear_pending_input</B> <I>(void)</I>
-<DD>Unset <VAR>rl_pending_input</VAR>, effectively negating the effect of any
-previous call to <CODE>rl_execute_next()</CODE>. This works only if the
-pending input has not already been read with <CODE>rl_read_key()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX265"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_keyboard_input_timeout</B> <I>(int u)</I>
-<DD>While waiting for keyboard input in <CODE>rl_read_key()</CODE>, Readline will
-wait for <VAR>u</VAR> microseconds for input before calling any function
-assigned to <CODE>rl_event_hook</CODE>. The default waiting period is
-one-tenth of a second. Returns the old timeout value.
-</DL>
-</P><P>
-
-<A NAME="Terminal Management"></A>
-<HR SIZE="6">
-<A NAME="SEC38"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC37"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC39"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.9 Terminal Management </H3>
-<!--docid::SEC38::-->
-<P>
-
-<A NAME="IDX266"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_prep_terminal</B> <I>(int meta_flag)</I>
-<DD>Modify the terminal settings for Readline's use, so <CODE>readline()</CODE>
-can read a single character at a time from the keyboard.
-The <VAR>meta_flag</VAR> argument should be non-zero if Readline should
-read eight-bit input.
-</DL>
-</P><P>
-
-<A NAME="IDX267"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_deprep_terminal</B> <I>(void)</I>
-<DD>Undo the effects of <CODE>rl_prep_terminal()</CODE>, leaving the terminal in
-the state in which it was before the most recent call to
-<CODE>rl_prep_terminal()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX268"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_tty_set_default_bindings</B> <I>(Keymap kmap)</I>
-<DD>Read the operating system's terminal editing characters (as would be displayed
-by <CODE>stty</CODE>) to their Readline equivalents. The bindings are performed
-in <VAR>kmap</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX269"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_reset_terminal</B> <I>(const char *terminal_name)</I>
-<DD>Reinitialize Readline's idea of the terminal settings using
-<VAR>terminal_name</VAR> as the terminal type (e.g., <CODE>vt100</CODE>).
-If <VAR>terminal_name</VAR> is <CODE>NULL</CODE>, the value of the <CODE>TERM</CODE>
-environment variable is used.
-</DL>
-</P><P>
-
-<A NAME="Utility Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC39"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC38"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC40"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.10 Utility Functions </H3>
-<!--docid::SEC39::-->
-<P>
-
-<A NAME="IDX270"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_replace_line</B> <I>(const char *text, int clear_undo)</I>
-<DD>Replace the contents of <CODE>rl_line_buffer</CODE> with <VAR>text</VAR>.
-The point and mark are preserved, if possible.
-If <VAR>clear_undo</VAR> is non-zero, the undo list associated with the
-current line is cleared.
-</DL>
-</P><P>
-
-<A NAME="IDX271"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_extend_line_buffer</B> <I>(int len)</I>
-<DD>Ensure that <CODE>rl_line_buffer</CODE> has enough space to hold <VAR>len</VAR>
-characters, possibly reallocating it if necessary.
-</DL>
-</P><P>
-
-<A NAME="IDX272"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_initialize</B> <I>(void)</I>
-<DD>Initialize or re-initialize Readline's internal state.
-It's not strictly necessary to call this; <CODE>readline()</CODE> calls it before
-reading any input.
-</DL>
-</P><P>
-
-<A NAME="IDX273"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_ding</B> <I>(void)</I>
-<DD>Ring the terminal bell, obeying the setting of <CODE>bell-style</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX274"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_alphabetic</B> <I>(int c)</I>
-<DD>Return 1 if <VAR>c</VAR> is an alphabetic character.
-</DL>
-</P><P>
-
-<A NAME="IDX275"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_display_match_list</B> <I>(char **matches, int len, int max)</I>
-<DD>A convenience function for displaying a list of strings in
-columnar format on Readline's output stream. <CODE>matches</CODE> is the list
-of strings, in argv format, such as a list of completion matches.
-<CODE>len</CODE> is the number of strings in <CODE>matches</CODE>, and <CODE>max</CODE>
-is the length of the longest string in <CODE>matches</CODE>. This function uses
-the setting of <CODE>print-completions-horizontally</CODE> to select how the
-matches are displayed (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A>).
-</DL>
-</P><P>
-
-The following are implemented as macros, defined in <CODE>chardefs.h</CODE>.
-Applications should refrain from using them.
-</P><P>
-
-<A NAME="IDX276"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_uppercase_p</B> <I>(int c)</I>
-<DD>Return 1 if <VAR>c</VAR> is an uppercase alphabetic character.
-</DL>
-</P><P>
-
-<A NAME="IDX277"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_lowercase_p</B> <I>(int c)</I>
-<DD>Return 1 if <VAR>c</VAR> is a lowercase alphabetic character.
-</DL>
-</P><P>
-
-<A NAME="IDX278"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_digit_p</B> <I>(int c)</I>
-<DD>Return 1 if <VAR>c</VAR> is a numeric character.
-</DL>
-</P><P>
-
-<A NAME="IDX279"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_to_upper</B> <I>(int c)</I>
-<DD>If <VAR>c</VAR> is a lowercase alphabetic character, return the corresponding
-uppercase character.
-</DL>
-</P><P>
-
-<A NAME="IDX280"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_to_lower</B> <I>(int c)</I>
-<DD>If <VAR>c</VAR> is an uppercase alphabetic character, return the corresponding
-lowercase character.
-</DL>
-</P><P>
-
-<A NAME="IDX281"></A>
-<DL>
-<DT><U>Function:</U> int <B>_rl_digit_value</B> <I>(int c)</I>
-<DD>If <VAR>c</VAR> is a number, return the value it represents.
-</DL>
-</P><P>
-
-<A NAME="Miscellaneous Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC40"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC39"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC41"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.11 Miscellaneous Functions </H3>
-<!--docid::SEC40::-->
-<P>
-
-<A NAME="IDX282"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_macro_bind</B> <I>(const char *keyseq, const char *macro, Keymap map)</I>
-<DD>Bind the key sequence <VAR>keyseq</VAR> to invoke the macro <VAR>macro</VAR>.
-The binding is performed in <VAR>map</VAR>. When <VAR>keyseq</VAR> is invoked, the
-<VAR>macro</VAR> will be inserted into the line. This function is deprecated;
-use <CODE>rl_generic_bind()</CODE> instead.
-</DL>
-</P><P>
-
-<A NAME="IDX283"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_macro_dumper</B> <I>(int readable)</I>
-<DD>Print the key sequences bound to macros and their values, using
-the current keymap, to <CODE>rl_outstream</CODE>.
-If <VAR>readable</VAR> is non-zero, the list is formatted in such a way
-that it can be made part of an <CODE>inputrc</CODE> file and re-read.
-</DL>
-</P><P>
-
-<A NAME="IDX284"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_variable_bind</B> <I>(const char *variable, const char *value)</I>
-<DD>Make the Readline variable <VAR>variable</VAR> have <VAR>value</VAR>.
-This behaves as if the readline command
-<SAMP>`set <VAR>variable</VAR> <VAR>value</VAR>'</SAMP> had been executed in an <CODE>inputrc</CODE>
-file (see section <A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A>).
-</DL>
-</P><P>
-
-<A NAME="IDX285"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_variable_dumper</B> <I>(int readable)</I>
-<DD>Print the readline variable names and their current values
-to <CODE>rl_outstream</CODE>.
-If <VAR>readable</VAR> is non-zero, the list is formatted in such a way
-that it can be made part of an <CODE>inputrc</CODE> file and re-read.
-</DL>
-</P><P>
-
-<A NAME="IDX286"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_paren_blink_timeout</B> <I>(int u)</I>
-<DD>Set the time interval (in microseconds) that Readline waits when showing
-a balancing character when <CODE>blink-matching-paren</CODE> has been enabled.
-</DL>
-</P><P>
-
-<A NAME="IDX287"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_get_termcap</B> <I>(const char *cap)</I>
-<DD>Retrieve the string value of the termcap capability <VAR>cap</VAR>.
-Readline fetches the termcap entry for the current terminal name and
-uses those capabilities to move around the screen line and perform other
-terminal-specific operations, like erasing a line. Readline does not
-use all of a terminal's capabilities, and this function will return
-values for only those capabilities Readline uses.
-</DL>
-</P><P>
-
-<A NAME="Alternate Interface"></A>
-<HR SIZE="6">
-<A NAME="SEC41"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC40"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC42"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.12 Alternate Interface </H3>
-<!--docid::SEC41::-->
-<P>
-
-An alternate interface is available to plain <CODE>readline()</CODE>. Some
-applications need to interleave keyboard I/O with file, device, or
-window system I/O, typically by using a main loop to <CODE>select()</CODE>
-on various file descriptors. To accomodate this need, readline can
-also be invoked as a `callback' function from an event loop. There
-are functions available to make this easy.
-</P><P>
-
-<A NAME="IDX288"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_callback_handler_install</B> <I>(const char *prompt, rl_vcpfunc_t *lhandler)</I>
-<DD>Set up the terminal for readline I/O and display the initial
-expanded value of <VAR>prompt</VAR>. Save the value of <VAR>lhandler</VAR> to
-use as a function to call when a complete line of input has been entered.
-The function takes the text of the line as an argument.
-</DL>
-</P><P>
-
-<A NAME="IDX289"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_callback_read_char</B> <I>(void)</I>
-<DD>Whenever an application determines that keyboard input is available, it
-should call <CODE>rl_callback_read_char()</CODE>, which will read the next
-character from the current input source.
-If that character completes the line, <CODE>rl_callback_read_char</CODE> will
-invoke the <VAR>lhandler</VAR> function saved by <CODE>rl_callback_handler_install</CODE>
-to process the line.
-Before calling the <VAR>lhandler</VAR> function, the terminal settings are
-reset to the values they had before calling
-<CODE>rl_callback_handler_install</CODE>.
-If the <VAR>lhandler</VAR> function returns,
-the terminal settings are modified for Readline's use again.
-<CODE>EOF</CODE> is indicated by calling <VAR>lhandler</VAR> with a
-<CODE>NULL</CODE> line.
-</DL>
-</P><P>
-
-<A NAME="IDX290"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_callback_handler_remove</B> <I>(void)</I>
-<DD>Restore the terminal to its initial state and remove the line handler.
-This may be called from within a callback as well as independently.
-If the <VAR>lhandler</VAR> installed by <CODE>rl_callback_handler_install</CODE>
-does not exit the program, either this function or the function referred
-to by the value of <CODE>rl_deprep_term_function</CODE> should be called before
-the program exits to reset the terminal settings.
-</DL>
-</P><P>
-
-<A NAME="A Readline Example"></A>
-<HR SIZE="6">
-<A NAME="SEC42"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC41"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC31"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC29"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.4.13 A Readline Example </H3>
-<!--docid::SEC42::-->
-<P>
-
-Here is a function which changes lowercase characters to their uppercase
-equivalents, and uppercase characters to lowercase. If
-this function was bound to <SAMP>`M-c'</SAMP>, then typing <SAMP>`M-c'</SAMP> would
-change the case of the character under point. Typing <SAMP>`M-1 0 M-c'</SAMP>
-would change the case of the following 10 characters, leaving the cursor on
-the last character changed.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>/* Invert the case of the COUNT following characters. */
-int
-invert_case_line (count, key)
- int count, key;
-{
- register int start, end, i;
-
- start = rl_point;
-
- if (rl_point &#62;= rl_end)
- return (0);
-
- if (count &#60; 0)
- {
- direction = -1;
- count = -count;
- }
- else
- direction = 1;
-
- /* Find the end of the range to modify. */
- end = start + (count * direction);
-
- /* Force it to be within range. */
- if (end &#62; rl_end)
- end = rl_end;
- else if (end &#60; 0)
- end = 0;
-
- if (start == end)
- return (0);
-
- if (start &#62; end)
- {
- int temp = start;
- start = end;
- end = temp;
- }
-
- /* Tell readline that we are modifying the line,
- so it will save the undo information. */
- rl_modifying (start, end);
-
- for (i = start; i != end; i++)
- {
- if (_rl_uppercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
- else if (_rl_lowercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
- }
- /* Move point to on top of the last character changed. */
- rl_point = (direction == 1) ? end - 1 : start;
- return (0);
-}
-</pre></td></tr></table></P><P>
-
-<A NAME="Readline Signal Handling"></A>
-<HR SIZE="6">
-<A NAME="SEC43"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC42"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.5 Readline Signal Handling </H2>
-<!--docid::SEC43::-->
-<P>
-
-Signals are asynchronous events sent to a process by the Unix kernel,
-sometimes on behalf of another process. They are intended to indicate
-exceptional events, like a user pressing the interrupt key on his terminal,
-or a network connection being broken. There is a class of signals that can
-be sent to the process currently reading input from the keyboard. Since
-Readline changes the terminal attributes when it is called, it needs to
-perform special processing when such a signal is received in order to
-restore the terminal to a sane state, or provide application writers with
-functions to do so manually.
-</P><P>
-
-Readline contains an internal signal handler that is installed for a
-number of signals (<CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, <CODE>SIGTERM</CODE>,
-<CODE>SIGALRM</CODE>, <CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>, and <CODE>SIGTTOU</CODE>).
-When one of these signals is received, the signal handler
-will reset the terminal attributes to those that were in effect before
-<CODE>readline()</CODE> was called, reset the signal handling to what it was
-before <CODE>readline()</CODE> was called, and resend the signal to the calling
-application.
-If and when the calling application's signal handler returns, Readline
-will reinitialize the terminal and continue to accept input.
-When a <CODE>SIGINT</CODE> is received, the Readline signal handler performs
-some additional work, which will cause any partially-entered line to be
-aborted (see the description of <CODE>rl_free_line_state()</CODE> below).
-</P><P>
-
-There is an additional Readline signal handler, for <CODE>SIGWINCH</CODE>, which
-the kernel sends to a process whenever the terminal's size changes (for
-example, if a user resizes an <CODE>xterm</CODE>). The Readline <CODE>SIGWINCH</CODE>
-handler updates Readline's internal screen size information, and then calls
-any <CODE>SIGWINCH</CODE> signal handler the calling application has installed.
-Readline calls the application's <CODE>SIGWINCH</CODE> signal handler without
-resetting the terminal to its original state. If the application's signal
-handler does more than update its idea of the terminal size and return (for
-example, a <CODE>longjmp</CODE> back to a main processing loop), it <EM>must</EM>
-call <CODE>rl_cleanup_after_signal()</CODE> (described below), to restore the
-terminal state.
-</P><P>
-
-Readline provides two variables that allow application writers to
-control whether or not it will catch certain signals and act on them
-when they are received. It is important that applications change the
-values of these variables only when calling <CODE>readline()</CODE>, not in
-a signal handler, so Readline's internal signal state is not corrupted.
-</P><P>
-
-<A NAME="IDX291"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_catch_signals</B>
-<DD>If this variable is non-zero, Readline will install signal handlers for
-<CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>, <CODE>SIGTERM</CODE>, <CODE>SIGALRM</CODE>,
-<CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>, and <CODE>SIGTTOU</CODE>.
-</P><P>
-
-The default value of <CODE>rl_catch_signals</CODE> is 1.
-</DL>
-</P><P>
-
-<A NAME="IDX292"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_catch_sigwinch</B>
-<DD>If this variable is non-zero, Readline will install a signal handler for
-<CODE>SIGWINCH</CODE>.
-</P><P>
-
-The default value of <CODE>rl_catch_sigwinch</CODE> is 1.
-</DL>
-</P><P>
-
-If an application does not wish to have Readline catch any signals, or
-to handle signals other than those Readline catches (<CODE>SIGHUP</CODE>,
-for example),
-Readline provides convenience functions to do the necessary terminal
-and internal state cleanup upon receipt of a signal.
-</P><P>
-
-<A NAME="IDX293"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_cleanup_after_signal</B> <I>(void)</I>
-<DD>This function will reset the state of the terminal to what it was before
-<CODE>readline()</CODE> was called, and remove the Readline signal handlers for
-all signals, depending on the values of <CODE>rl_catch_signals</CODE> and
-<CODE>rl_catch_sigwinch</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX294"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_free_line_state</B> <I>(void)</I>
-<DD>This will free any partial state associated with the current input line
-(undo information, any partial history entry, any partially-entered
-keyboard macro, and any partially-entered numeric argument). This
-should be called before <CODE>rl_cleanup_after_signal()</CODE>. The
-Readline signal handler for <CODE>SIGINT</CODE> calls this to abort the
-current input line.
-</DL>
-</P><P>
-
-<A NAME="IDX295"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_reset_after_signal</B> <I>(void)</I>
-<DD>This will reinitialize the terminal and reinstall any Readline signal
-handlers, depending on the values of <CODE>rl_catch_signals</CODE> and
-<CODE>rl_catch_sigwinch</CODE>.
-</DL>
-</P><P>
-
-If an application does not wish Readline to catch <CODE>SIGWINCH</CODE>, it may
-call <CODE>rl_resize_terminal()</CODE> or <CODE>rl_set_screen_size()</CODE> to force
-Readline to update its idea of the terminal size when a <CODE>SIGWINCH</CODE>
-is received.
-</P><P>
-
-<A NAME="IDX296"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_resize_terminal</B> <I>(void)</I>
-<DD>Update Readline's internal screen size by reading values from the kernel.
-</DL>
-</P><P>
-
-<A NAME="IDX297"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_set_screen_size</B> <I>(int rows, int cols)</I>
-<DD>Set Readline's idea of the terminal size to <VAR>rows</VAR> rows and
-<VAR>cols</VAR> columns.
-</DL>
-</P><P>
-
-If an application does not want to install a <CODE>SIGWINCH</CODE> handler, but
-is still interested in the screen dimensions, Readline's idea of the screen
-size may be queried.
-</P><P>
-
-<A NAME="IDX298"></A>
-<DL>
-<DT><U>Function:</U> void <B>rl_get_screen_size</B> <I>(int *rows, int *cols)</I>
-<DD>Return Readline's idea of the terminal's size in the
-variables pointed to by the arguments.
-</DL>
-</P><P>
-
-The following functions install and remove Readline's signal handlers.
-</P><P>
-
-<A NAME="IDX299"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_set_signals</B> <I>(void)</I>
-<DD>Install Readline's signal handler for <CODE>SIGINT</CODE>, <CODE>SIGQUIT</CODE>,
-<CODE>SIGTERM</CODE>, <CODE>SIGALRM</CODE>, <CODE>SIGTSTP</CODE>, <CODE>SIGTTIN</CODE>,
-<CODE>SIGTTOU</CODE>, and <CODE>SIGWINCH</CODE>, depending on the values of
-<CODE>rl_catch_signals</CODE> and <CODE>rl_catch_sigwinch</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX300"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_clear_signals</B> <I>(void)</I>
-<DD>Remove all of the Readline signal handlers installed by
-<CODE>rl_set_signals()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="Custom Completers"></A>
-<HR SIZE="6">
-<A NAME="SEC44"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC43"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC45"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC23"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 2.6 Custom Completers </H2>
-<!--docid::SEC44::-->
-<P>
-
-Typically, a program that reads commands from the user has a way of
-disambiguating commands and data. If your program is one of these, then
-it can provide completion for commands, data, or both.
-The following sections describe how your program and Readline
-cooperate to provide this service.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The logic used to do completion.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Functions provided by Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Variables which control completion.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="readline.html#SEC48">2.6.4 A Short Completion Example</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example of writing completer subroutines.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="How Completing Works"></A>
-<HR SIZE="6">
-<A NAME="SEC45"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC46"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.6.1 How Completing Works </H3>
-<!--docid::SEC45::-->
-<P>
-
-In order to complete some text, the full list of possible completions
-must be available. That is, it is not possible to accurately
-expand a partial word without knowing all of the possible words
-which make sense in that context. The Readline library provides
-the user interface to completion, and two of the most common
-completion functions: filename and username. For completing other types
-of text, you must write your own completion function. This section
-describes exactly what such functions must do, and provides an example.
-</P><P>
-
-There are three major functions used to perform completion:
-</P><P>
-
-<OL>
-<LI>
-The user-interface function <CODE>rl_complete()</CODE>. This function is
-called with the same arguments as other bindable Readline functions:
-<VAR>count</VAR> and <VAR>invoking_key</VAR>.
-It isolates the word to be completed and calls
-<CODE>rl_completion_matches()</CODE> to generate a list of possible completions.
-It then either lists the possible completions, inserts the possible
-completions, or actually performs the
-completion, depending on which behavior is desired.
-<P>
-
-<LI>
-The internal function <CODE>rl_completion_matches()</CODE> uses an
-application-supplied <EM>generator</EM> function to generate the list of
-possible matches, and then returns the array of these matches.
-The caller should place the address of its generator function in
-<CODE>rl_completion_entry_function</CODE>.
-<P>
-
-<LI>
-The generator function is called repeatedly from
-<CODE>rl_completion_matches()</CODE>, returning a string each time. The
-arguments to the generator function are <VAR>text</VAR> and <VAR>state</VAR>.
-<VAR>text</VAR> is the partial word to be completed. <VAR>state</VAR> is zero the
-first time the function is called, allowing the generator to perform
-any necessary initialization, and a positive non-zero integer for
-each subsequent call. The generator function returns
-<CODE>(char *)NULL</CODE> to inform <CODE>rl_completion_matches()</CODE> that there are
-no more possibilities left. Usually the generator function computes the
-list of possible completions when <VAR>state</VAR> is zero, and returns them
-one at a time on subsequent calls. Each string the generator function
-returns as a match must be allocated with <CODE>malloc()</CODE>; Readline
-frees the strings when it has finished with them.
-<P>
-
-</OL>
-<P>
-
-<A NAME="IDX301"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
-<DD>Complete the word at or before point. You have supplied the function
-that does the initial simple matching selection algorithm (see
-<CODE>rl_completion_matches()</CODE>). The default is to do filename completion.
-</DL>
-</P><P>
-
-<A NAME="IDX302"></A>
-<DL>
-<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
-<DD>This is a pointer to the generator function for
-<CODE>rl_completion_matches()</CODE>.
-If the value of <CODE>rl_completion_entry_function</CODE> is
-<CODE>NULL</CODE> then the default filename generator
-function, <CODE>rl_filename_completion_function()</CODE>, is used.
-</DL>
-</P><P>
-
-<A NAME="Completion Functions"></A>
-<HR SIZE="6">
-<A NAME="SEC46"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC45"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC47"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC47"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.6.2 Completion Functions </H3>
-<!--docid::SEC46::-->
-<P>
-
-Here is the complete list of callable completion functions present in
-Readline.
-</P><P>
-
-<A NAME="IDX303"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_complete_internal</B> <I>(int what_to_do)</I>
-<DD>Complete the word at or before point. <VAR>what_to_do</VAR> says what to do
-with the completion. A value of <SAMP>`?'</SAMP> means list the possible
-completions. <SAMP>`TAB'</SAMP> means do standard completion. <SAMP>`*'</SAMP> means
-insert all of the possible completions. <SAMP>`!'</SAMP> means to display
-all of the possible completions, if there is more than one, as well as
-performing partial completion.
-</DL>
-</P><P>
-
-<A NAME="IDX304"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_complete</B> <I>(int ignore, int invoking_key)</I>
-<DD>Complete the word at or before point. You have supplied the function
-that does the initial simple matching selection algorithm (see
-<CODE>rl_completion_matches()</CODE> and <CODE>rl_completion_entry_function</CODE>).
-The default is to do filename
-completion. This calls <CODE>rl_complete_internal()</CODE> with an
-argument depending on <VAR>invoking_key</VAR>.
-</DL>
-</P><P>
-
-<A NAME="IDX305"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_possible_completions</B> <I>(int count, int invoking_key)</I>
-<DD>List the possible completions. See description of <CODE>rl_complete
-()</CODE>. This calls <CODE>rl_complete_internal()</CODE> with an argument of
-<SAMP>`?'</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX306"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_insert_completions</B> <I>(int count, int invoking_key)</I>
-<DD>Insert the list of possible completions into the line, deleting the
-partially-completed word. See description of <CODE>rl_complete()</CODE>.
-This calls <CODE>rl_complete_internal()</CODE> with an argument of <SAMP>`*'</SAMP>.
-</DL>
-</P><P>
-
-<A NAME="IDX307"></A>
-<DL>
-<DT><U>Function:</U> int <B>rl_completion_mode</B> <I>(rl_command_func_t *cfunc)</I>
-<DD>Returns the apppriate value to pass to <CODE>rl_complete_internal()</CODE>
-depending on whether <VAR>cfunc</VAR> was called twice in succession and
-the value of the <CODE>show-all-if-ambiguous</CODE> variable.
-Application-specific completion functions may use this function to present
-the same interface as <CODE>rl_complete()</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX308"></A>
-<DL>
-<DT><U>Function:</U> char ** <B>rl_completion_matches</B> <I>(const char *text, rl_compentry_func_t *entry_func)</I>
-<DD>Returns an array of strings which is a list of completions for
-<VAR>text</VAR>. If there are no completions, returns <CODE>NULL</CODE>.
-The first entry in the returned array is the substitution for <VAR>text</VAR>.
-The remaining entries are the possible completions. The array is
-terminated with a <CODE>NULL</CODE> pointer.
-</P><P>
-
-<VAR>entry_func</VAR> is a function of two args, and returns a
-<CODE>char *</CODE>. The first argument is <VAR>text</VAR>. The second is a
-state argument; it is zero on the first call, and non-zero on subsequent
-calls. <VAR>entry_func</VAR> returns a <CODE>NULL</CODE> pointer to the caller
-when there are no more matches.
-</DL>
-</P><P>
-
-<A NAME="IDX309"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_filename_completion_function</B> <I>(const char *text, int state)</I>
-<DD>A generator function for filename completion in the general case.
-<VAR>text</VAR> is a partial filename.
-The Bash source is a useful reference for writing custom
-completion functions (the Bash completion functions call this and other
-Readline functions).
-</DL>
-</P><P>
-
-<A NAME="IDX310"></A>
-<DL>
-<DT><U>Function:</U> char * <B>rl_username_completion_function</B> <I>(const char *text, int state)</I>
-<DD>A completion generator for usernames. <VAR>text</VAR> contains a partial
-username preceded by a random character (usually <SAMP>`~'</SAMP>). As with all
-completion generators, <VAR>state</VAR> is zero on the first call and non-zero
-for subsequent calls.
-</DL>
-</P><P>
-
-<A NAME="Completion Variables"></A>
-<HR SIZE="6">
-<A NAME="SEC47"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC46"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.6.3 Completion Variables </H3>
-<!--docid::SEC47::-->
-<P>
-
-<A NAME="IDX311"></A>
-<DL>
-<DT><U>Variable:</U> rl_compentry_func_t * <B>rl_completion_entry_function</B>
-<DD>A pointer to the generator function for <CODE>rl_completion_matches()</CODE>.
-<CODE>NULL</CODE> means to use <CODE>rl_filename_completion_function()</CODE>, the default
-filename completer.
-</DL>
-</P><P>
-
-<A NAME="IDX312"></A>
-<DL>
-<DT><U>Variable:</U> rl_completion_func_t * <B>rl_attempted_completion_function</B>
-<DD>A pointer to an alternative function to create matches.
-The function is called with <VAR>text</VAR>, <VAR>start</VAR>, and <VAR>end</VAR>.
-<VAR>start</VAR> and <VAR>end</VAR> are indices in <CODE>rl_line_buffer</CODE> defining
-the boundaries of <VAR>text</VAR>, which is a character string.
-If this function exists and returns <CODE>NULL</CODE>, or if this variable is
-set to <CODE>NULL</CODE>, then <CODE>rl_complete()</CODE> will call the value of
-<CODE>rl_completion_entry_function</CODE> to generate matches, otherwise the
-array of strings returned will be used.
-If this function sets the <CODE>rl_attempted_completion_over</CODE>
-variable to a non-zero value, Readline will not perform its default
-completion even if this function returns no matches.
-</DL>
-</P><P>
-
-<A NAME="IDX313"></A>
-<DL>
-<DT><U>Variable:</U> rl_quote_func_t * <B>rl_filename_quoting_function</B>
-<DD>A pointer to a function that will quote a filename in an
-application-specific fashion. This is called if filename completion is being
-attempted and one of the characters in <CODE>rl_filename_quote_characters</CODE>
-appears in a completed filename. The function is called with
-<VAR>text</VAR>, <VAR>match_type</VAR>, and <VAR>quote_pointer</VAR>. The <VAR>text</VAR>
-is the filename to be quoted. The <VAR>match_type</VAR> is either
-<CODE>SINGLE_MATCH</CODE>, if there is only one completion match, or
-<CODE>MULT_MATCH</CODE>. Some functions use this to decide whether or not to
-insert a closing quote character. The <VAR>quote_pointer</VAR> is a pointer
-to any opening quote character the user typed. Some functions choose
-to reset this character.
-</DL>
-</P><P>
-
-<A NAME="IDX314"></A>
-<DL>
-<DT><U>Variable:</U> rl_dequote_func_t * <B>rl_filename_dequoting_function</B>
-<DD>A pointer to a function that will remove application-specific quoting
-characters from a filename before completion is attempted, so those
-characters do not interfere with matching the text against names in
-the filesystem. It is called with <VAR>text</VAR>, the text of the word
-to be dequoted, and <VAR>quote_char</VAR>, which is the quoting character
-that delimits the filename (usually <SAMP>`''</SAMP> or <SAMP>`"'</SAMP>). If
-<VAR>quote_char</VAR> is zero, the filename was not in an embedded string.
-</DL>
-</P><P>
-
-<A NAME="IDX315"></A>
-<DL>
-<DT><U>Variable:</U> rl_linebuf_func_t * <B>rl_char_is_quoted_p</B>
-<DD>A pointer to a function to call that determines whether or not a specific
-character in the line buffer is quoted, according to whatever quoting
-mechanism the program calling Readline uses. The function is called with
-two arguments: <VAR>text</VAR>, the text of the line, and <VAR>index</VAR>, the
-index of the character in the line. It is used to decide whether a
-character found in <CODE>rl_completer_word_break_characters</CODE> should be
-used to break words for the completer.
-</DL>
-</P><P>
-
-<A NAME="IDX316"></A>
-<DL>
-<DT><U>Variable:</U> rl_compignore_func_t * <B>rl_ignore_some_completions_function</B>
-<DD>This function, if defined, is called by the completer when real filename
-completion is done, after all the matching names have been generated.
-It is passed a <CODE>NULL</CODE> terminated array of matches.
-The first element (<CODE>matches[0]</CODE>) is the
-maximal substring common to all matches. This function can
-re-arrange the list of matches as required, but each element deleted
-from the array must be freed.
-</DL>
-</P><P>
-
-<A NAME="IDX317"></A>
-<DL>
-<DT><U>Variable:</U> rl_icppfunc_t * <B>rl_directory_completion_hook</B>
-<DD>This function, if defined, is allowed to modify the directory portion
-of filenames Readline completes. It is called with the address of a
-string (the current directory name) as an argument, and may modify that string.
-If the string is replaced with a new string, the old value should be freed.
-Any modified directory name should have a trailing slash.
-The modified value will be displayed as part of the completion, replacing
-the directory portion of the pathname the user typed.
-It returns an integer that should be non-zero if the function modifies
-its directory argument.
-It could be used to expand symbolic links or shell variables in pathnames.
-</DL>
-</P><P>
-
-<A NAME="IDX318"></A>
-<DL>
-<DT><U>Variable:</U> rl_compdisp_func_t * <B>rl_completion_display_matches_hook</B>
-<DD>If non-zero, then this is the address of a function to call when
-completing a word would normally display the list of possible matches.
-This function is called in lieu of Readline displaying the list.
-It takes three arguments:
-(<CODE>char **</CODE><VAR>matches</VAR>, <CODE>int</CODE> <VAR>num_matches</VAR>, <CODE>int</CODE> <VAR>max_length</VAR>)
-where <VAR>matches</VAR> is the array of matching strings,
-<VAR>num_matches</VAR> is the number of strings in that array, and
-<VAR>max_length</VAR> is the length of the longest string in that array.
-Readline provides a convenience function, <CODE>rl_display_match_list</CODE>,
-that takes care of doing the display to Readline's output stream. That
-function may be called from this hook.
-</DL>
-</P><P>
-
-<A NAME="IDX319"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_basic_word_break_characters</B>
-<DD>The basic list of characters that signal a break between words for the
-completer routine. The default value of this variable is the characters
-which break words for completion in Bash:
-<CODE>" \t\n\"\\'`@$>&#60;=;|&#38;{("</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX320"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_basic_quote_characters</B>
-<DD>A list of quote characters which can cause a word break.
-</DL>
-</P><P>
-
-<A NAME="IDX321"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_completer_word_break_characters</B>
-<DD>The list of characters that signal a break between words for
-<CODE>rl_complete_internal()</CODE>. The default list is the value of
-<CODE>rl_basic_word_break_characters</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX322"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_completer_quote_characters</B>
-<DD>A list of characters which can be used to quote a substring of the line.
-Completion occurs on the entire substring, and within the substring
-<CODE>rl_completer_word_break_characters</CODE> are treated as any other character,
-unless they also appear within this list.
-</DL>
-</P><P>
-
-<A NAME="IDX323"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_filename_quote_characters</B>
-<DD>A list of characters that cause a filename to be quoted by the completer
-when they appear in a completed filename. The default is the null string.
-</DL>
-</P><P>
-
-<A NAME="IDX324"></A>
-<DL>
-<DT><U>Variable:</U> const char * <B>rl_special_prefixes</B>
-<DD>The list of characters that are word break characters, but should be
-left in <VAR>text</VAR> when it is passed to the completion function.
-Programs can use this to help determine what kind of completing to do.
-For instance, Bash sets this variable to "$@" so that it can complete
-shell variables and hostnames.
-</DL>
-</P><P>
-
-<A NAME="IDX325"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_query_items</B>
-<DD>Up to this many items will be displayed in response to a
-possible-completions call. After that, we ask the user if she is sure
-she wants to see them all. The default value is 100.
-</DL>
-</P><P>
-
-<A NAME="IDX326"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_append_character</B>
-<DD>When a single completion alternative matches at the end of the command
-line, this character is appended to the inserted completion text. The
-default is a space character (<SAMP>` '</SAMP>). Setting this to the null
-character (<SAMP>`\0'</SAMP>) prevents anything being appended automatically.
-This can be changed in custom completion functions to
-provide the "most sensible word separator character" according to
-an application-specific command line syntax specification.
-</DL>
-</P><P>
-
-<A NAME="IDX327"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_suppress_append</B>
-<DD>If non-zero, <VAR>rl_completion_append_character</VAR> is not appended to
-matches at the end of the command line, as described above. It is
-set to 0 before any application-specific completion function is called.
-</DL>
-</P><P>
-
-<A NAME="IDX328"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_mark_symlink_dirs</B>
-<DD>If non-zero, a slash will be appended to completed filenames that are
-symbolic links to directory names, subject to the value of the
-user-settable <VAR>mark-directories</VAR> variable.
-This variable exists so that application completion functions can
-override the user's global preference (set via the
-<VAR>mark-symlinked-directories</VAR> Readline variable) if appropriate.
-This variable is set to the user's preference before any
-application completion function is called, so unless that function
-modifies the value, the user's preferences are honored.
-</DL>
-</P><P>
-
-<A NAME="IDX329"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_ignore_completion_duplicates</B>
-<DD>If non-zero, then duplicates in the matches are removed.
-The default is 1.
-</DL>
-</P><P>
-
-<A NAME="IDX330"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_filename_completion_desired</B>
-<DD>Non-zero means that the results of the matches are to be treated as
-filenames. This is <EM>always</EM> zero on entry, and can only be changed
-within a completion entry generator function. If it is set to a non-zero
-value, directory names have a slash appended and Readline attempts to
-quote completed filenames if they contain any characters in
-<CODE>rl_filename_quote_characters</CODE> and <CODE>rl_filename_quoting_desired</CODE>
-is set to a non-zero value.
-</DL>
-</P><P>
-
-<A NAME="IDX331"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_filename_quoting_desired</B>
-<DD>Non-zero means that the results of the matches are to be quoted using
-double quotes (or an application-specific quoting mechanism) if the
-completed filename contains any characters in
-<CODE>rl_filename_quote_chars</CODE>. This is <EM>always</EM> non-zero
-on entry, and can only be changed within a completion entry generator
-function. The quoting is effected via a call to the function pointed to
-by <CODE>rl_filename_quoting_function</CODE>.
-</DL>
-</P><P>
-
-<A NAME="IDX332"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_attempted_completion_over</B>
-<DD>If an application-specific completion function assigned to
-<CODE>rl_attempted_completion_function</CODE> sets this variable to a non-zero
-value, Readline will not perform its default filename completion even
-if the application's completion function returns no matches.
-It should be set only by an application's completion function.
-</DL>
-</P><P>
-
-<A NAME="IDX333"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_completion_type</B>
-<DD>Set to a character describing the type of completion Readline is currently
-attempting; see the description of <CODE>rl_complete_internal()</CODE>
-(see section <A HREF="readline.html#SEC46">2.6.2 Completion Functions</A>) for the list of characters.
-</DL>
-</P><P>
-
-<A NAME="IDX334"></A>
-<DL>
-<DT><U>Variable:</U> int <B>rl_inhibit_completion</B>
-<DD>If this variable is non-zero, completion is inhibited. The completion
-character will be inserted as any other bound to <CODE>self-insert</CODE>.
-</DL>
-</P><P>
-
-<A NAME="A Short Completion Example"></A>
-<HR SIZE="6">
-<A NAME="SEC48"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC47"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC44"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 2.6.4 A Short Completion Example </H3>
-<!--docid::SEC48::-->
-<P>
-
-Here is a small application demonstrating the use of the GNU Readline
-library. It is called <CODE>fileman</CODE>, and the source code resides in
-<TT>`examples/fileman.c'</TT>. This sample application provides
-completion of command names, line editing features, and access to the
-history list.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=smallexample><FONT SIZE=-1><pre>/* fileman.c -- A tiny application which demonstrates how to use the
- GNU Readline library. This application interactively allows users
- to manipulate files and their modes. */
-
-#include &#60;stdio.h&#62;
-#include &#60;sys/types.h&#62;
-#include &#60;sys/file.h&#62;
-#include &#60;sys/stat.h&#62;
-#include &#60;sys/errno.h&#62;
-
-#include &#60;readline/readline.h&#62;
-#include &#60;readline/history.h&#62;
-
-extern char *xmalloc ();
-
-/* The names of functions that actually do the manipulation. */
-int com_list __P((char *));
-int com_view __P((char *));
-int com_rename __P((char *));
-int com_stat __P((char *));
-int com_pwd __P((char *));
-int com_delete __P((char *));
-int com_help __P((char *));
-int com_cd __P((char *));
-int com_quit __P((char *));
-
-/* A structure which contains information on the commands this program
- can understand. */
-
-typedef struct {
- char *name; /* User printable name of the function. */
- rl_icpfunc_t *func; /* Function to call to do the job. */
- char *doc; /* Documentation for this function. */
-} COMMAND;
-
-COMMAND commands[] = {
- { "cd", com_cd, "Change to directory DIR" },
- { "delete", com_delete, "Delete FILE" },
- { "help", com_help, "Display this text" },
- { "?", com_help, "Synonym for `help'" },
- { "list", com_list, "List files in DIR" },
- { "ls", com_list, "Synonym for `list'" },
- { "pwd", com_pwd, "Print the current working directory" },
- { "quit", com_quit, "Quit using Fileman" },
- { "rename", com_rename, "Rename FILE to NEWNAME" },
- { "stat", com_stat, "Print out statistics on FILE" },
- { "view", com_view, "View the contents of FILE" },
- { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
-};
-
-/* Forward declarations. */
-char *stripwhite ();
-COMMAND *find_command ();
-
-/* The name of this program, as taken from argv[0]. */
-char *progname;
-
-/* When non-zero, this means the user is done using this program. */
-int done;
-
-char *
-dupstr (s)
- int s;
-{
- char *r;
-
- r = xmalloc (strlen (s) + 1);
- strcpy (r, s);
- return (r);
-}
-
-main (argc, argv)
- int argc;
- char **argv;
-{
- char *line, *s;
-
- progname = argv[0];
-
- initialize_readline (); /* Bind our completer. */
-
- /* Loop reading and executing lines until the user quits. */
- for ( ; done == 0; )
- {
- line = readline ("FileMan: ");
-
- if (!line)
- break;
-
- /* Remove leading and trailing whitespace from the line.
- Then, if there is anything left, add it to the history list
- and execute it. */
- s = stripwhite (line);
-
- if (*s)
- {
- add_history (s);
- execute_line (s);
- }
-
- free (line);
- }
- exit (0);
-}
-
-/* Execute a command line. */
-int
-execute_line (line)
- char *line;
-{
- register int i;
- COMMAND *command;
- char *word;
-
- /* Isolate the command word. */
- i = 0;
- while (line[i] &#38;&#38; whitespace (line[i]))
- i++;
- word = line + i;
-
- while (line[i] &#38;&#38; !whitespace (line[i]))
- i++;
-
- if (line[i])
- line[i++] = '\0';
-
- command = find_command (word);
-
- if (!command)
- {
- fprintf (stderr, "%s: No such command for FileMan.\n", word);
- return (-1);
- }
-
- /* Get argument to command, if any. */
- while (whitespace (line[i]))
- i++;
-
- word = line + i;
-
- /* Call the function. */
- return ((*(command-&#62;func)) (word));
-}
-
-/* Look up NAME as the name of a command, and return a pointer to that
- command. Return a NULL pointer if NAME isn't a command name. */
-COMMAND *
-find_command (name)
- char *name;
-{
- register int i;
-
- for (i = 0; commands[i].name; i++)
- if (strcmp (name, commands[i].name) == 0)
- return (&#38;commands[i]);
-
- return ((COMMAND *)NULL);
-}
-
-/* Strip whitespace from the start and end of STRING. Return a pointer
- into STRING. */
-char *
-stripwhite (string)
- char *string;
-{
- register char *s, *t;
-
- for (s = string; whitespace (*s); s++)
- ;
-
- if (*s == 0)
- return (s);
-
- t = s + strlen (s) - 1;
- while (t &#62; s &#38;&#38; whitespace (*t))
- t--;
- *++t = '\0';
-
- return s;
-}
-
-/* **************************************************************** */
-/* */
-/* Interface to Readline Completion */
-/* */
-/* **************************************************************** */
-
-char *command_generator __P((const char *, int));
-char **fileman_completion __P((const char *, int, int));
-
-/* Tell the GNU Readline library how to complete. We want to try to
- complete on command names if this is the first word in the line, or
- on filenames if not. */
-initialize_readline ()
-{
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "FileMan";
-
- /* Tell the completer that we want a crack first. */
- rl_attempted_completion_function = fileman_completion;
-}
-
-/* Attempt to complete on the contents of TEXT. START and END
- bound the region of rl_line_buffer that contains the word to
- complete. TEXT is the word to complete. We can use the entire
- contents of rl_line_buffer in case we want to do some simple
- parsing. Returnthe array of matches, or NULL if there aren't any. */
-char **
-fileman_completion (text, start, end)
- const char *text;
- int start, end;
-{
- char **matches;
-
- matches = (char **)NULL;
-
- /* If this word is at the start of the line, then it is a command
- to complete. Otherwise it is the name of a file in the current
- directory. */
- if (start == 0)
- matches = rl_completion_matches (text, command_generator);
-
- return (matches);
-}
-
-/* Generator function for command completion. STATE lets us
- know whether to start from scratch; without any state
- (i.e. STATE == 0), then we start at the top of the list. */
-char *
-command_generator (text, state)
- const char *text;
- int state;
-{
- static int list_index, len;
- char *name;
-
- /* If this is a new word to complete, initialize now. This
- includes saving the length of TEXT for efficiency, and
- initializing the index variable to 0. */
- if (!state)
- {
- list_index = 0;
- len = strlen (text);
- }
-
- /* Return the next name which partially matches from the
- command list. */
- while (name = commands[list_index].name)
- {
- list_index++;
-
- if (strncmp (name, text, len) == 0)
- return (dupstr(name));
- }
-
- /* If no names matched, then return NULL. */
- return ((char *)NULL);
-}
-
-/* **************************************************************** */
-/* */
-/* FileMan Commands */
-/* */
-/* **************************************************************** */
-
-/* String to pass to system (). This is for the LIST, VIEW and RENAME
- commands. */
-static char syscom[1024];
-
-/* List the file(s) named in arg. */
-com_list (arg)
- char *arg;
-{
- if (!arg)
- arg = "";
-
- sprintf (syscom, "ls -FClg %s", arg);
- return (system (syscom));
-}
-
-com_view (arg)
- char *arg;
-{
- if (!valid_argument ("view", arg))
- return 1;
-
- sprintf (syscom, "more %s", arg);
- return (system (syscom));
-}
-
-com_rename (arg)
- char *arg;
-{
- too_dangerous ("rename");
- return (1);
-}
-
-com_stat (arg)
- char *arg;
-{
- struct stat finfo;
-
- if (!valid_argument ("stat", arg))
- return (1);
-
- if (stat (arg, &#38;finfo) == -1)
- {
- perror (arg);
- return (1);
- }
-
- printf ("Statistics for `%s':\n", arg);
-
- printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
- finfo.st_nlink,
- (finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
- (finfo.st_size == 1) ? "" : "s");
- printf ("Inode Last Change at: %s", ctime (&#38;finfo.st_ctime));
- printf (" Last access at: %s", ctime (&#38;finfo.st_atime));
- printf (" Last modified at: %s", ctime (&#38;finfo.st_mtime));
- return (0);
-}
-
-com_delete (arg)
- char *arg;
-{
- too_dangerous ("delete");
- return (1);
-}
-
-/* Print out help for ARG, or for all of the commands if ARG is
- not present. */
-com_help (arg)
- char *arg;
-{
- register int i;
- int printed = 0;
-
- for (i = 0; commands[i].name; i++)
- {
- if (!*arg || (strcmp (arg, commands[i].name) == 0))
- {
- printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
- printed++;
- }
- }
-
- if (!printed)
- {
- printf ("No commands match `%s'. Possibilties are:\n", arg);
-
- for (i = 0; commands[i].name; i++)
- {
- /* Print in six columns. */
- if (printed == 6)
- {
- printed = 0;
- printf ("\n");
- }
-
- printf ("%s\t", commands[i].name);
- printed++;
- }
-
- if (printed)
- printf ("\n");
- }
- return (0);
-}
-
-/* Change to the directory ARG. */
-com_cd (arg)
- char *arg;
-{
- if (chdir (arg) == -1)
- {
- perror (arg);
- return 1;
- }
-
- com_pwd ("");
- return (0);
-}
-
-/* Print out the current working directory. */
-com_pwd (ignore)
- char *ignore;
-{
- char dir[1024], *s;
-
- s = getcwd (dir, sizeof(dir) - 1);
- if (s == 0)
- {
- printf ("Error getting pwd: %s\n", dir);
- return 1;
- }
-
- printf ("Current directory is %s\n", dir);
- return 0;
-}
-
-/* The user wishes to quit using this program. Just set DONE
- non-zero. */
-com_quit (arg)
- char *arg;
-{
- done = 1;
- return (0);
-}
-
-/* Function which tells you that you can't do this. */
-too_dangerous (caller)
- char *caller;
-{
- fprintf (stderr,
- "%s: Too dangerous for me to distribute.\n"
- caller);
- fprintf (stderr, "Write it yourself.\n");
-}
-
-/* Return non-zero if ARG is a valid argument for CALLER,
- else print an error message and return zero. */
-int
-valid_argument (caller, arg)
- char *caller, *arg;
-{
- if (!arg || !*arg)
- {
- fprintf (stderr, "%s: Argument required.\n", caller);
- return (0);
- }
-
- return (1);
-}
-</FONT></pre></td></tr></table></P><P>
-
-<A NAME="Concept Index"></A>
-<HR SIZE="6">
-<A NAME="SEC49"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC48"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC50"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> Concept Index </H1>
-<!--docid::SEC49::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#cp_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="readline.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="readline.html#cp_I" style="text-decoration:none"><b>I</b></A>
- &nbsp;
-<A HREF="readline.html#cp_K" style="text-decoration:none"><b>K</b></A>
- &nbsp;
-<A HREF="readline.html#cp_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="readline.html#cp_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="readline.html#cp_V" style="text-decoration:none"><b>V</b></A>
- &nbsp;
-<A HREF="readline.html#cp_Y" style="text-decoration:none"><b>Y</b></A>
- &nbsp;
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">command editing</A></TD><TD valign=top><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">editing command lines</A></TD><TD valign=top><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_I"></A>I</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC9">initialization file, readline</A></TD><TD valign=top><A HREF="readline.html#SEC9">1.3 Readline Init File</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC3">interaction, readline</A></TD><TD valign=top><A HREF="readline.html#SEC3">1.2 Readline Interaction</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX3">kill ring</A></TD><TD valign=top><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX1">killing text</A></TD><TD valign=top><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#SEC4">notation, readline</A></TD><TD valign=top><A HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX175">readline, function</A></TD><TD valign=top><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_V"></A>V</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX4">variables, readline</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="cp_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX2">yanking text</A></TD><TD valign=top><A HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#cp_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="readline.html#cp_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="readline.html#cp_I" style="text-decoration:none"><b>I</b></A>
- &nbsp;
-<A HREF="readline.html#cp_K" style="text-decoration:none"><b>K</b></A>
- &nbsp;
-<A HREF="readline.html#cp_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="readline.html#cp_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="readline.html#cp_V" style="text-decoration:none"><b>V</b></A>
- &nbsp;
-<A HREF="readline.html#cp_Y" style="text-decoration:none"><b>Y</b></A>
- &nbsp;
-</td></tr></table><br><P>
-
-<A NAME="Function and Variable Index"></A>
-<HR SIZE="6">
-<A NAME="SEC50"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1> Function and Variable Index </H1>
-<!--docid::SEC50::-->
-<table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#fn__" style="text-decoration:none"><b>_</b></A>
- &nbsp;
-<BR>
-<A HREF="readline.html#fn_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="readline.html#fn_B" style="text-decoration:none"><b>B</b></A>
- &nbsp;
-<A HREF="readline.html#fn_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="readline.html#fn_D" style="text-decoration:none"><b>D</b></A>
- &nbsp;
-<A HREF="readline.html#fn_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="readline.html#fn_F" style="text-decoration:none"><b>F</b></A>
- &nbsp;
-<A HREF="readline.html#fn_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-<A HREF="readline.html#fn_I" style="text-decoration:none"><b>I</b></A>
- &nbsp;
-<A HREF="readline.html#fn_K" style="text-decoration:none"><b>K</b></A>
- &nbsp;
-<A HREF="readline.html#fn_M" style="text-decoration:none"><b>M</b></A>
- &nbsp;
-<A HREF="readline.html#fn_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="readline.html#fn_O" style="text-decoration:none"><b>O</b></A>
- &nbsp;
-<A HREF="readline.html#fn_P" style="text-decoration:none"><b>P</b></A>
- &nbsp;
-<A HREF="readline.html#fn_Q" style="text-decoration:none"><b>Q</b></A>
- &nbsp;
-<A HREF="readline.html#fn_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="readline.html#fn_S" style="text-decoration:none"><b>S</b></A>
- &nbsp;
-<A HREF="readline.html#fn_T" style="text-decoration:none"><b>T</b></A>
- &nbsp;
-<A HREF="readline.html#fn_U" style="text-decoration:none"><b>U</b></A>
- &nbsp;
-<A HREF="readline.html#fn_V" style="text-decoration:none"><b>V</b></A>
- &nbsp;
-<A HREF="readline.html#fn_Y" style="text-decoration:none"><b>Y</b></A>
- &nbsp;
-</td></tr></table><br><P></P>
-<TABLE border=0>
-<TR><TD></TD><TH ALIGN=LEFT>Index Entry</TH><TH ALIGN=LEFT> Section</TH></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn__"></A>_</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX278"><CODE>_rl_digit_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX281"><CODE>_rl_digit_value</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX277"><CODE>_rl_lowercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX280"><CODE>_rl_to_lower</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX279"><CODE>_rl_to_upper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX276"><CODE>_rl_uppercase_p</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_A"></A>A</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX142"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX143"><CODE>abort (C-g)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX42"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX43"><CODE>accept-line (Newline or Return)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_B"></A>B</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX32"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX33"><CODE>backward-char (C-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX70"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX71"><CODE>backward-delete-char (Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX94"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX95"><CODE>backward-kill-line (C-x Rubout)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX102"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX103"><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX36"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX37"><CODE>backward-word (M-b)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX48"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX49"><CODE>beginning-of-history (M-&#38;#60;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX26"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX27"><CODE>beginning-of-line (C-a)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX5">bell-style</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_C"></A>C</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX138"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX139"><CODE>call-last-kbd-macro (C-x e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX88"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX89"><CODE>capitalize-word (M-c)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX158"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX159"><CODE>character-search (C-])</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX160"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX161"><CODE>character-search-backward (M-C-])</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX38"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX39"><CODE>clear-screen (C-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX6">comment-begin</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX124"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX125"><CODE>complete (<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX7">completion-query-items</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX8">convert-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX112"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX113"><CODE>copy-backward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX114"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX115"><CODE>copy-forward-word ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX110"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX111"><CODE>copy-region-as-kill ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_D"></A>D</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX68"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX69"><CODE>delete-char (C-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX132"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX133"><CODE>delete-char-or-list ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX106"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX107"><CODE>delete-horizontal-space ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX120"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX121"><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, &#60;small&#62;...&#60;/small&#62; <KBD>M--</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX9">disable-completion</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX144"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX145"><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX86"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX87"><CODE>downcase-word (M-l)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX164"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX165"><CODE>dump-functions ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX168"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX169"><CODE>dump-macros ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX166"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX167"><CODE>dump-variables ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_E"></A>E</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX10">editing-mode</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX170"><CODE>emacs-editing-mode (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX171"><CODE>emacs-editing-mode (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX11">enable-keypad</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX136"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX137"><CODE>end-kbd-macro (C-x ))</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX50"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX51"><CODE>end-of-history (M-&#38;#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX28"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX29"><CODE>end-of-line (C-e)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX156"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX157"><CODE>exchange-point-and-mark (C-x C-x)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX12">expand-tilde</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_F"></A>F</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX72"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX73"><CODE>forward-backward-delete-char ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX30"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX31"><CODE>forward-char (C-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX54"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX55"><CODE>forward-search-history (C-s)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX34"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX35"><CODE>forward-word (M-f)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_H"></A>H</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX13">history-preserve-point</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX62"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX63"><CODE>history-search-backward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX60"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX61"><CODE>history-search-forward ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX14">horizontal-scroll-mode</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_I"></A>I</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX15">input-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX162"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX163"><CODE>insert-comment (M-#)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX128"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX129"><CODE>insert-completions (M-*)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX17">isearch-terminators</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_K"></A>K</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX18">keymap</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX92"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX93"><CODE>kill-line (C-k)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX108"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX109"><CODE>kill-region ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX98"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX99"><CODE>kill-whole-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX100"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX101"><CODE>kill-word (M-d)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_M"></A>M</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX19">mark-modified-lines</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX20">mark-symlinked-directories</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX21">match-hidden-files</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX130"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX131"><CODE>menu-complete ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX16">meta-flag</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_N"></A>N</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX46"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX47"><CODE>next-history (C-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX58"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX59"><CODE>non-incremental-forward-search-history (M-n)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX56"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX57"><CODE>non-incremental-reverse-search-history (M-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_O"></A>O</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX22">output-meta</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX90"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX91"><CODE>overwrite-mode ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_P"></A>P</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX23">page-completions</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX126"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX127"><CODE>possible-completions (M-?)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX146"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX147"><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX44"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX45"><CODE>previous-history (C-p)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_Q"></A>Q</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX74"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX75"><CODE>quoted-insert (C-q or C-v)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_R"></A>R</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX140"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX141"><CODE>re-read-init-file (C-x C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX174"><CODE>readline</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC24">2.1 Basic Behavior</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX40"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX41"><CODE>redraw-current-line ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC14">1.4.1 Commands For Moving</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX52"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX53"><CODE>reverse-search-history (C-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX150"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX151"><CODE>revert-line (M-r)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX209"><CODE>rl_add_defun</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC30">2.4.1 Naming a Function</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX235"><CODE>rl_add_funmap_entry</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX238"><CODE>rl_add_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX274"><CODE>rl_alphabetic</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX186">rl_already_prompted</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX312">rl_attempted_completion_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX332">rl_attempted_completion_over</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX320">rl_basic_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX319">rl_basic_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX236"><CODE>rl_begin_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX218"><CODE>rl_bind_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX219"><CODE>rl_bind_key_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX203">rl_binding_keymap</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX288"><CODE>rl_callback_handler_install</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX290"><CODE>rl_callback_handler_remove</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX289"><CODE>rl_callback_read_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC41">2.4.12 Alternate Interface</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX291">rl_catch_signals</A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX292">rl_catch_sigwinch</A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX315">rl_char_is_quoted_p</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX293"><CODE>rl_cleanup_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX250"><CODE>rl_clear_message</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX264"><CODE>rl_clear_pending_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX300"><CODE>rl_clear_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX301"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX304"><CODE>rl_complete</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX303"><CODE>rl_complete_internal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX322">rl_completer_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX321">rl_completer_word_break_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX326">rl_completion_append_character</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX318">rl_completion_display_matches_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX302">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC45">2.6.1 How Completing Works</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX311">rl_completion_entry_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX328">rl_completion_mark_symlink_dirs</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX308"><CODE>rl_completion_matches</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX307"><CODE>rl_completion_mode</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX325">rl_completion_query_items</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX327">rl_completion_suppress_append</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX333">rl_completion_type</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX211"><CODE>rl_copy_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX257"><CODE>rl_copy_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX247"><CODE>rl_crlf</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX256"><CODE>rl_delete_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX201">rl_deprep_term_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX267"><CODE>rl_deprep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX273"><CODE>rl_ding</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX317">rl_directory_completion_hook</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX213"><CODE>rl_discard_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX183">rl_dispatching</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX275"><CODE>rl_display_match_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX240"><CODE>rl_do_undo</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX180">rl_done</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX208">rl_editing_mode</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX178">rl_end</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX237"><CODE>rl_end_undo_group</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX184">rl_erase_empty_line</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX197">rl_event_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX263"><CODE>rl_execute_next</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX202">rl_executing_keymap</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX204">rl_executing_macro</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX253"><CODE>rl_expand_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX206">rl_explicit_arg</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX271"><CODE>rl_extend_line_buffer</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX330">rl_filename_completion_desired</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX309"><CODE>rl_filename_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX314">rl_filename_dequoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX323">rl_filename_quote_characters</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX331">rl_filename_quoting_desired</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX313">rl_filename_quoting_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX243"><CODE>rl_forced_update_display</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX294"><CODE>rl_free_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX239"><CODE>rl_free_undo_list</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX232"><CODE>rl_function_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX229"><CODE>rl_function_of_keyseq</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX234"><CODE>rl_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX225"><CODE>rl_generic_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX214"><CODE>rl_get_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX216"><CODE>rl_get_keymap_by_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX217"><CODE>rl_get_keymap_name</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX298"><CODE>rl_get_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX287"><CODE>rl_get_termcap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX261"><CODE>rl_getc</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX198">rl_getc_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX189">rl_gnu_readline_p</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX329">rl_ignore_completion_duplicates</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX316">rl_ignore_some_completions_function</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX334">rl_inhibit_completion</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX272"><CODE>rl_initialize</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX306"><CODE>rl_insert_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX255"><CODE>rl_insert_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX192">rl_instream</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX230"><CODE>rl_invoking_keyseqs</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX231"><CODE>rl_invoking_keyseqs_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX258"><CODE>rl_kill_text</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX194">rl_last_func</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX187">rl_library_version</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX176">rl_line_buffer</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX233"><CODE>rl_list_funmap_names</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX282"><CODE>rl_macro_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX283"><CODE>rl_macro_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX210"><CODE>rl_make_bare_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX212"><CODE>rl_make_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX179">rl_mark</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX249"><CODE>rl_message</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX241"><CODE>rl_modifying</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX228"><CODE>rl_named_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX181">rl_num_chars_to_read</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX207">rl_numeric_arg</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX244"><CODE>rl_on_new_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX245"><CODE>rl_on_new_line_with_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX193">rl_outstream</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX226"><CODE>rl_parse_and_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX182">rl_pending_input</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX177">rl_point</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX305"><CODE>rl_possible_completions</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX196">rl_pre_input_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX200">rl_prep_term_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX266"><CODE>rl_prep_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX185">rl_prompt</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX259"><CODE>rl_push_macro_input</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC36">2.4.7 Modifying Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX227"><CODE>rl_read_init_file</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX260"><CODE>rl_read_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX191">rl_readline_name</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX205">rl_readline_state</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX188">rl_readline_version</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX242"><CODE>rl_redisplay</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX199">rl_redisplay_function</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX270"><CODE>rl_replace_line</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC39">2.4.10 Utility Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX295"><CODE>rl_reset_after_signal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX246"><CODE>rl_reset_line_state</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX269"><CODE>rl_reset_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX296"><CODE>rl_resize_terminal</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX252"><CODE>rl_restore_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX251"><CODE>rl_save_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX224"><CODE>rl_set_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX265"><CODE>rl_set_keyboard_input_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX215"><CODE>rl_set_keymap</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX286"><CODE>rl_set_paren_blink_timeout</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX254"><CODE>rl_set_prompt</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX297"><CODE>rl_set_screen_size</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX299"><CODE>rl_set_signals</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC43">2.5 Readline Signal Handling</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX248"><CODE>rl_show_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC35">2.4.6 Redisplay</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX324">rl_special_prefixes</A></TD><TD valign=top><A HREF="readline.html#SEC47">2.6.3 Completion Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX195">rl_startup_hook</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX262"><CODE>rl_stuff_char</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC37">2.4.8 Character Input</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX190">rl_terminal_name</A></TD><TD valign=top><A HREF="readline.html#SEC28">2.3 Readline Variables</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX268"><CODE>rl_tty_set_default_bindings</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC38">2.4.9 Terminal Management</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX223"><CODE>rl_unbind_command_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX222"><CODE>rl_unbind_function_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX220"><CODE>rl_unbind_key</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX221"><CODE>rl_unbind_key_in_map</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC32">2.4.3 Binding Keys</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX310"><CODE>rl_username_completion_function</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC46">2.6.2 Completion Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX284"><CODE>rl_variable_bind</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX285"><CODE>rl_variable_dumper</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_S"></A>S</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX78"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX79"><CODE>self-insert (a, b, A, 1, !, &#60;small&#62;...&#60;/small&#62;)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX154"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX155"><CODE>set-mark (C-@)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX24">show-all-if-ambiguous</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX134"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX135"><CODE>start-kbd-macro (C-x ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_T"></A>T</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX76"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX77"><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX152"><CODE>tilde-expand (M-~)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX153"><CODE>tilde-expand (M-~)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX80"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX81"><CODE>transpose-chars (C-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX82"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX83"><CODE>transpose-words (M-t)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_U"></A>U</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX148"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX149"><CODE>undo (C-_ or C-x C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX122"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX123"><CODE>universal-argument ()</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX96"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX97"><CODE>unix-line-discard (C-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX104"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX105"><CODE>unix-word-rubout (C-w)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX84"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX85"><CODE>upcase-word (M-u)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_V"></A>V</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX172"><CODE>vi-editing-mode (M-C-j)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX173"><CODE>vi-editing-mode (M-C-j)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX25">visible-stats</A></TD><TD valign=top><A HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-<TR><TH><A NAME="fn_Y"></A>Y</TH><TD></TD><TD></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX116"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX117"><CODE>yank (C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX66"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX67"><CODE>yank-last-arg (M-. or M-_)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX64"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX65"><CODE>yank-nth-arg (M-C-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX118"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD></TD><TD valign=top><A HREF="readline.html#IDX119"><CODE>yank-pop (M-y)</CODE></A></TD><TD valign=top><A HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A></TD></TR>
-<TR><TD COLSPAN=3> <HR></TD></TR>
-</TABLE><P></P><table><tr><th valign=top>Jump to: &nbsp; </th><td><A HREF="readline.html#fn__" style="text-decoration:none"><b>_</b></A>
- &nbsp;
-<BR>
-<A HREF="readline.html#fn_A" style="text-decoration:none"><b>A</b></A>
- &nbsp;
-<A HREF="readline.html#fn_B" style="text-decoration:none"><b>B</b></A>
- &nbsp;
-<A HREF="readline.html#fn_C" style="text-decoration:none"><b>C</b></A>
- &nbsp;
-<A HREF="readline.html#fn_D" style="text-decoration:none"><b>D</b></A>
- &nbsp;
-<A HREF="readline.html#fn_E" style="text-decoration:none"><b>E</b></A>
- &nbsp;
-<A HREF="readline.html#fn_F" style="text-decoration:none"><b>F</b></A>
- &nbsp;
-<A HREF="readline.html#fn_H" style="text-decoration:none"><b>H</b></A>
- &nbsp;
-<A HREF="readline.html#fn_I" style="text-decoration:none"><b>I</b></A>
- &nbsp;
-<A HREF="readline.html#fn_K" style="text-decoration:none"><b>K</b></A>
- &nbsp;
-<A HREF="readline.html#fn_M" style="text-decoration:none"><b>M</b></A>
- &nbsp;
-<A HREF="readline.html#fn_N" style="text-decoration:none"><b>N</b></A>
- &nbsp;
-<A HREF="readline.html#fn_O" style="text-decoration:none"><b>O</b></A>
- &nbsp;
-<A HREF="readline.html#fn_P" style="text-decoration:none"><b>P</b></A>
- &nbsp;
-<A HREF="readline.html#fn_Q" style="text-decoration:none"><b>Q</b></A>
- &nbsp;
-<A HREF="readline.html#fn_R" style="text-decoration:none"><b>R</b></A>
- &nbsp;
-<A HREF="readline.html#fn_S" style="text-decoration:none"><b>S</b></A>
- &nbsp;
-<A HREF="readline.html#fn_T" style="text-decoration:none"><b>T</b></A>
- &nbsp;
-<A HREF="readline.html#fn_U" style="text-decoration:none"><b>U</b></A>
- &nbsp;
-<A HREF="readline.html#fn_V" style="text-decoration:none"><b>V</b></A>
- &nbsp;
-<A HREF="readline.html#fn_Y" style="text-decoration:none"><b>Y</b></A>
- &nbsp;
-</td></tr></table><br><P>
-
-<HR SIZE="6">
-<A NAME="SEC_Contents"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Table of Contents</H1>
-<UL>
-<A NAME="TOC1" HREF="readline.html#SEC1">1. Command Line Editing</A>
-<BR>
-<UL>
-<A NAME="TOC2" HREF="readline.html#SEC2">1.1 Introduction to Line Editing</A>
-<BR>
-<A NAME="TOC3" HREF="readline.html#SEC3">1.2 Readline Interaction</A>
-<BR>
-<UL>
-<A NAME="TOC4" HREF="readline.html#SEC4">1.2.1 Readline Bare Essentials</A>
-<BR>
-<A NAME="TOC5" HREF="readline.html#SEC5">1.2.2 Readline Movement Commands</A>
-<BR>
-<A NAME="TOC6" HREF="readline.html#SEC6">1.2.3 Readline Killing Commands</A>
-<BR>
-<A NAME="TOC7" HREF="readline.html#SEC7">1.2.4 Readline Arguments</A>
-<BR>
-<A NAME="TOC8" HREF="readline.html#SEC8">1.2.5 Searching for Commands in the History</A>
-<BR>
-</UL>
-<A NAME="TOC9" HREF="readline.html#SEC9">1.3 Readline Init File</A>
-<BR>
-<UL>
-<A NAME="TOC10" HREF="readline.html#SEC10">1.3.1 Readline Init File Syntax</A>
-<BR>
-<A NAME="TOC11" HREF="readline.html#SEC11">1.3.2 Conditional Init Constructs</A>
-<BR>
-<A NAME="TOC12" HREF="readline.html#SEC12">1.3.3 Sample Init File</A>
-<BR>
-</UL>
-<A NAME="TOC13" HREF="readline.html#SEC13">1.4 Bindable Readline Commands</A>
-<BR>
-<UL>
-<A NAME="TOC14" HREF="readline.html#SEC14">1.4.1 Commands For Moving</A>
-<BR>
-<A NAME="TOC15" HREF="readline.html#SEC15">1.4.2 Commands For Manipulating The History</A>
-<BR>
-<A NAME="TOC16" HREF="readline.html#SEC16">1.4.3 Commands For Changing Text</A>
-<BR>
-<A NAME="TOC17" HREF="readline.html#SEC17">1.4.4 Killing And Yanking</A>
-<BR>
-<A NAME="TOC18" HREF="readline.html#SEC18">1.4.5 Specifying Numeric Arguments</A>
-<BR>
-<A NAME="TOC19" HREF="readline.html#SEC19">1.4.6 Letting Readline Type For You</A>
-<BR>
-<A NAME="TOC20" HREF="readline.html#SEC20">1.4.7 Keyboard Macros</A>
-<BR>
-<A NAME="TOC21" HREF="readline.html#SEC21">1.4.8 Some Miscellaneous Commands</A>
-<BR>
-</UL>
-<A NAME="TOC22" HREF="readline.html#SEC22">1.5 Readline vi Mode</A>
-<BR>
-</UL>
-<A NAME="TOC23" HREF="readline.html#SEC23">2. Programming with GNU Readline</A>
-<BR>
-<UL>
-<A NAME="TOC24" HREF="readline.html#SEC24">2.1 Basic Behavior</A>
-<BR>
-<A NAME="TOC25" HREF="readline.html#SEC25">2.2 Custom Functions</A>
-<BR>
-<UL>
-<A NAME="TOC26" HREF="readline.html#SEC26">2.2.1 Readline Typedefs</A>
-<BR>
-<A NAME="TOC27" HREF="readline.html#SEC27">2.2.2 Writing a New Function</A>
-<BR>
-</UL>
-<A NAME="TOC28" HREF="readline.html#SEC28">2.3 Readline Variables</A>
-<BR>
-<A NAME="TOC29" HREF="readline.html#SEC29">2.4 Readline Convenience Functions</A>
-<BR>
-<UL>
-<A NAME="TOC30" HREF="readline.html#SEC30">2.4.1 Naming a Function</A>
-<BR>
-<A NAME="TOC31" HREF="readline.html#SEC31">2.4.2 Selecting a Keymap</A>
-<BR>
-<A NAME="TOC32" HREF="readline.html#SEC32">2.4.3 Binding Keys</A>
-<BR>
-<A NAME="TOC33" HREF="readline.html#SEC33">2.4.4 Associating Function Names and Bindings</A>
-<BR>
-<A NAME="TOC34" HREF="readline.html#SEC34">2.4.5 Allowing Undoing</A>
-<BR>
-<A NAME="TOC35" HREF="readline.html#SEC35">2.4.6 Redisplay</A>
-<BR>
-<A NAME="TOC36" HREF="readline.html#SEC36">2.4.7 Modifying Text</A>
-<BR>
-<A NAME="TOC37" HREF="readline.html#SEC37">2.4.8 Character Input</A>
-<BR>
-<A NAME="TOC38" HREF="readline.html#SEC38">2.4.9 Terminal Management</A>
-<BR>
-<A NAME="TOC39" HREF="readline.html#SEC39">2.4.10 Utility Functions</A>
-<BR>
-<A NAME="TOC40" HREF="readline.html#SEC40">2.4.11 Miscellaneous Functions</A>
-<BR>
-<A NAME="TOC41" HREF="readline.html#SEC41">2.4.12 Alternate Interface</A>
-<BR>
-<A NAME="TOC42" HREF="readline.html#SEC42">2.4.13 A Readline Example</A>
-<BR>
-</UL>
-<A NAME="TOC43" HREF="readline.html#SEC43">2.5 Readline Signal Handling</A>
-<BR>
-<A NAME="TOC44" HREF="readline.html#SEC44">2.6 Custom Completers</A>
-<BR>
-<UL>
-<A NAME="TOC45" HREF="readline.html#SEC45">2.6.1 How Completing Works</A>
-<BR>
-<A NAME="TOC46" HREF="readline.html#SEC46">2.6.2 Completion Functions</A>
-<BR>
-<A NAME="TOC47" HREF="readline.html#SEC47">2.6.3 Completion Variables</A>
-<BR>
-<A NAME="TOC48" HREF="readline.html#SEC48">2.6.4 A Short Completion Example</A>
-<BR>
-</UL>
-</UL>
-<A NAME="TOC49" HREF="readline.html#SEC49">Concept Index</A>
-<BR>
-<A NAME="TOC50" HREF="readline.html#SEC50">Function and Variable Index</A>
-<BR>
-</UL>
-<HR SIZE=1>
-<A NAME="SEC_OVERVIEW"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Short Table of Contents</H1>
-<BLOCKQUOTE>
-<A NAME="TOC1" HREF="readline.html#SEC1">1. Command Line Editing</A>
-<BR>
-<A NAME="TOC23" HREF="readline.html#SEC23">2. Programming with GNU Readline</A>
-<BR>
-<A NAME="TOC49" HREF="readline.html#SEC49">Concept Index</A>
-<BR>
-<A NAME="TOC50" HREF="readline.html#SEC50">Function and Variable Index</A>
-<BR>
-
-</BLOCKQUOTE>
-<HR SIZE=1>
-<A NAME="SEC_About"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC49">Index</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="readline.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-<P></P>
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt; ] </TD>
-<TD ALIGN="CENTER">
-Back
-</TD>
-<TD>
-previous section in reading order
-</TD>
-<TD>
-1.2.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt; ] </TD>
-<TD ALIGN="CENTER">
-Forward
-</TD>
-<TD>
-next section in reading order
-</TD>
-<TD>
-1.2.4
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt;&lt; ] </TD>
-<TD ALIGN="CENTER">
-FastBack
-</TD>
-<TD>
-previous or up-and-previous section
-</TD>
-<TD>
-1.1
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ Up ] </TD>
-<TD ALIGN="CENTER">
-Up
-</TD>
-<TD>
-up section
-</TD>
-<TD>
-1.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt;&gt; ] </TD>
-<TD ALIGN="CENTER">
-FastForward
-</TD>
-<TD>
-next or up-and-next section
-</TD>
-<TD>
-1.3
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Top] </TD>
-<TD ALIGN="CENTER">
-Top
-</TD>
-<TD>
-cover (top) of document
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Contents] </TD>
-<TD ALIGN="CENTER">
-Contents
-</TD>
-<TD>
-table of contents
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Index] </TD>
-<TD ALIGN="CENTER">
-Index
-</TD>
-<TD>
-concept index
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ ? ] </TD>
-<TD ALIGN="CENTER">
-About
-</TD>
-<TD>
-this page
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
-the following structure:
-<UL>
-<LI> 1. Section One </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-
-<HR SIZE=1>
-<BR>
-<FONT SIZE="-1">
-This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-
-</BODY>
-</HTML>
diff --git a/readline-doc-4.3/doc/readline.info b/readline-doc-4.3/doc/readline.info
deleted file mode 100644
index 57dbdfa..0000000
--- a/readline-doc-4.3/doc/readline.info
+++ /dev/null
@@ -1,3638 +0,0 @@
-This is readline.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/rlman.texinfo.
-
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* Readline: (readline). The GNU readline library API
-END-INFO-DIR-ENTRY
-
- This document describes the GNU Readline Library, a utility which
-aids in the consistency of user interface across discrete programs that
-need to provide a command line interface.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice pare
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
-
-
-File: readline.info, Node: Top, Next: Command Line Editing, Up: (dir)
-
-GNU Readline Library
-********************
-
- This document describes the GNU Readline Library, a utility which
-aids in the consistency of user interface across discrete programs that
-need to provide a command line interface.
-
-* Menu:
-
-* Command Line Editing:: GNU Readline User's Manual.
-* Programming with GNU Readline:: GNU Readline Programmer's Manual.
-* Concept Index:: Index of concepts described in this manual.
-* Function and Variable Index:: Index of externally visible functions
- and variables.
-
-
-File: readline.info, Node: Command Line Editing, Next: Programming with GNU Readline, Prev: Top, Up: Top
-
-Command Line Editing
-********************
-
- This chapter describes the basic features of the GNU command line
-editing interface.
-
-* Menu:
-
-* Introduction and Notation:: Notation used in this text.
-* Readline Interaction:: The minimum set of commands for editing a line.
-* Readline Init File:: Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
- available for binding
-* Readline vi Mode:: A short description of how to make Readline
- behave like the vi editor.
-
-
-File: readline.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing
-
-Introduction to Line Editing
-============================
-
- The following paragraphs describe the notation used to represent
-keystrokes.
-
- The text `C-k' is read as `Control-K' and describes the character
-produced when the <k> key is pressed while the Control key is depressed.
-
- The text `M-k' is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the <k>
-key is pressed. The Meta key is labeled <ALT> on many keyboards. On
-keyboards with two keys labeled <ALT> (usually to either side of the
-space bar), the <ALT> on the left side is generally set to work as a
-Meta key. The <ALT> key on the right may also be configured to work as
-a Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
- If you do not have a Meta or <ALT> key, or another key working as a
-Meta key, the identical keystroke can be generated by typing <ESC>
-_first_, and then typing <k>. Either process is known as "metafying"
-the <k> key.
-
- The text `M-C-k' is read as `Meta-Control-k' and describes the
-character produced by "metafying" `C-k'.
-
- In addition, several keys have their own names. Specifically,
-<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
-when seen in this text, or in an init file (*note Readline Init File::).
-If your keyboard lacks a <LFD> key, typing <C-j> will produce the
-desired character. The <RET> key may be labeled <Return> or <Enter> on
-some keyboards.
-
-
-File: readline.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
-
-Readline Interaction
-====================
-
- Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <RET>. You do not have to be at the end of
-the line to press <RET>; the entire line is accepted regardless of the
-location of the cursor within the line.
-
-* Menu:
-
-* Readline Bare Essentials:: The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands:: How to delete text, and how to get it back!
-* Readline Arguments:: Giving numeric arguments to commands.
-* Searching:: Searching through previous lines.
-
-
-File: readline.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction
-
-Readline Bare Essentials
-------------------------
-
- In order to enter characters into the line, simply type them. The
-typed character appears where the cursor was, and then the cursor moves
-one space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-
- Sometimes you may mistype a character, and not notice the error
-until you have typed several other characters. In that case, you can
-type `C-b' to move the cursor to the left, and then correct your
-mistake. Afterwards, you can move the cursor to the right with `C-f'.
-
- When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are `pushed over' to make room
-for the text that you have inserted. Likewise, when you delete text
-behind the cursor, characters to the right of the cursor are `pulled
-back' to fill in the blank space created by the removal of the text. A
-list of the bare essentials for editing the text of an input line
-follows.
-
-`C-b'
- Move back one character.
-
-`C-f'
- Move forward one character.
-
-<DEL> or <Backspace>
- Delete the character to the left of the cursor.
-
-`C-d'
- Delete the character underneath the cursor.
-
-Printing characters
- Insert the character into the line at the cursor.
-
-`C-_' or `C-x C-u'
- Undo the last editing command. You can undo all the way back to an
- empty line.
-
-(Depending on your configuration, the <Backspace> key be set to delete
-the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like `C-d', rather than the
-character to the left of the cursor.)
-
-
-File: readline.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction
-
-Readline Movement Commands
---------------------------
-
- The above table describes the most basic keystrokes that you need in
-order to do editing of the input line. For your convenience, many
-other commands have been added in addition to `C-b', `C-f', `C-d', and
-<DEL>. Here are some commands for moving more rapidly about the line.
-
-`C-a'
- Move to the start of the line.
-
-`C-e'
- Move to the end of the line.
-
-`M-f'
- Move forward a word, where a word is composed of letters and
- digits.
-
-`M-b'
- Move backward a word.
-
-`C-l'
- Clear the screen, reprinting the current line at the top.
-
- Notice how `C-f' moves forward a character, while `M-f' moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-
-
-File: readline.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
-
-Readline Killing Commands
--------------------------
-
- "Killing" text means to delete the text from the line, but to save
-it away for later use, usually by "yanking" (re-inserting) it back into
-the line. (`Cut' and `paste' are more recent jargon for `kill' and
-`yank'.)
-
- If the description for a command says that it `kills' text, then you
-can be sure that you can get the text back in a different (or the same)
-place later.
-
- When you use a kill command, the text is saved in a "kill-ring".
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill ring is not line
-specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
-
- Here is the list of commands for killing text.
-
-`C-k'
- Kill the text from the current cursor position to the end of the
- line.
-
-`M-d'
- Kill from the cursor to the end of the current word, or, if between
- words, to the end of the next word. Word boundaries are the same
- as those used by `M-f'.
-
-`M-<DEL>'
- Kill from the cursor the start of the current word, or, if between
- words, to the start of the previous word. Word boundaries are the
- same as those used by `M-b'.
-
-`C-w'
- Kill from the cursor to the previous whitespace. This is
- different than `M-<DEL>' because the word boundaries differ.
-
- Here is how to "yank" the text back into the line. Yanking means to
-copy the most-recently-killed text from the kill buffer.
-
-`C-y'
- Yank the most recently killed text back into the buffer at the
- cursor.
-
-`M-y'
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `C-y' or `M-y'.
-
-
-File: readline.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
-
-Readline Arguments
-------------------
-
- You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the sign of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type `M-- C-k'.
-
- The general way to pass numeric arguments to a command is to type
-meta digits before the command. If the first `digit' typed is a minus
-sign (`-'), then the sign of the argument will be negative. Once you
-have typed one meta digit to get the argument started, you can type the
-remainder of the digits, and then the command. For example, to give
-the `C-d' command an argument of 10, you could type `M-1 0 C-d', which
-will delete the next ten characters on the input line.
-
-
-File: readline.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
-
-Searching for Commands in the History
--------------------------------------
-
- Readline provides commands for searching through the command history
-for lines containing a specified string. There are two search modes:
-"incremental" and "non-incremental".
-
- Incremental searches begin before the user has finished typing the
-search string. As each character of the search string is typed,
-Readline displays the next entry from the history matching the string
-typed so far. An incremental search requires only as many characters
-as needed to find the desired history entry. To search backward in the
-history for a particular string, type `C-r'. Typing `C-s' searches
-forward through the history. The characters present in the value of
-the `isearch-terminators' variable are used to terminate an incremental
-search. If that variable has not been assigned a value, the <ESC> and
-`C-J' characters will terminate an incremental search. `C-g' will
-abort an incremental search and restore the original line. When the
-search is terminated, the history entry containing the search string
-becomes the current line.
-
- To find other matching entries in the history list, type `C-r' or
-`C-s' as appropriate. This will search backward or forward in the
-history for the next entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate the
-search and execute that command. For instance, a <RET> will terminate
-the search and accept the line, thereby executing the command from the
-history list. A movement command will terminate the search, make the
-last line found the current line, and begin editing.
-
- Readline remembers the last incremental search string. If two
-`C-r's are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-
- Non-incremental searches read the entire search string before
-starting to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-
-
-File: readline.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing
-
-Readline Init File
-==================
-
- Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings. Any user can customize programs that use Readline by
-putting commands in an "inputrc" file, conventionally in his home
-directory. The name of this file is taken from the value of the
-environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'.
-
- When a program which uses the Readline library starts up, the init
-file is read, and the key bindings are set.
-
- In addition, the `C-x C-r' command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-* Menu:
-
-* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
-
-* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
-
-* Sample Init File:: An example inputrc file.
-
-
-File: readline.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File
-
-Readline Init File Syntax
--------------------------
-
- There are only a few basic constructs allowed in the Readline init
-file. Blank lines are ignored. Lines beginning with a `#' are
-comments. Lines beginning with a `$' indicate conditional constructs
-(*note Conditional Init Constructs::). Other lines denote variable
-settings and key bindings.
-
-Variable Settings
- You can modify the run-time behavior of Readline by altering the
- values of variables in Readline using the `set' command within the
- init file. The syntax is simple:
-
- set VARIABLE VALUE
-
- Here, for example, is how to change from the default Emacs-like
- key binding to use `vi' line editing commands:
-
- set editing-mode vi
-
- Variable names and values, where appropriate, are recognized
- without regard to case.
-
- A great deal of run-time behavior is changeable with the following
- variables.
-
- `bell-style'
- Controls what happens when Readline wants to ring the
- terminal bell. If set to `none', Readline never rings the
- bell. If set to `visible', Readline uses a visible bell if
- one is available. If set to `audible' (the default),
- Readline attempts to ring the terminal's bell.
-
- `comment-begin'
- The string to insert at the beginning of the line when the
- `insert-comment' command is executed. The default value is
- `"#"'.
-
- `completion-ignore-case'
- If set to `on', Readline performs filename matching and
- completion in a case-insensitive fashion. The default value
- is `off'.
-
- `completion-query-items'
- The number of possible completions that determines when the
- user is asked whether he wants to see the list of
- possibilities. If the number of possible completions is
- greater than this value, Readline will ask the user whether
- or not he wishes to view them; otherwise, they are simply
- listed. This variable must be set to an integer value
- greater than or equal to 0. The default limit is `100'.
-
- `convert-meta'
- If set to `on', Readline will convert characters with the
- eighth bit set to an ASCII key sequence by stripping the
- eighth bit and prefixing an <ESC> character, converting them
- to a meta-prefixed key sequence. The default value is `on'.
-
- `disable-completion'
- If set to `On', Readline will inhibit word completion.
- Completion characters will be inserted into the line as if
- they had been mapped to `self-insert'. The default is `off'.
-
- `editing-mode'
- The `editing-mode' variable controls which default set of key
- bindings is used. By default, Readline starts up in Emacs
- editing mode, where the keystrokes are most similar to Emacs.
- This variable can be set to either `emacs' or `vi'.
-
- `enable-keypad'
- When set to `on', Readline will try to enable the application
- keypad when it is called. Some systems need this to enable
- the arrow keys. The default is `off'.
-
- `expand-tilde'
- If set to `on', tilde expansion is performed when Readline
- attempts word completion. The default is `off'.
-
- If set to `on', the history code attempts to place point at
- the same location on each history line retrived with
- `previous-history' or `next-history'.
-
- `horizontal-scroll-mode'
- This variable can be set to either `on' or `off'. Setting it
- to `on' means that the text of the lines being edited will
- scroll horizontally on a single screen line when they are
- longer than the width of the screen, instead of wrapping onto
- a new screen line. By default, this variable is set to `off'.
-
- `input-meta'
- If set to `on', Readline will enable eight-bit input (it will
- not clear the eighth bit in the characters it reads),
- regardless of what the terminal claims it can support. The
- default value is `off'. The name `meta-flag' is a synonym
- for this variable.
-
- `isearch-terminators'
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a
- command (*note Searching::). If this variable has not been
- given a value, the characters <ESC> and `C-J' will terminate
- an incremental search.
-
- `keymap'
- Sets Readline's idea of the current keymap for key binding
- commands. Acceptable `keymap' names are `emacs',
- `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move',
- `vi-command', and `vi-insert'. `vi' is equivalent to
- `vi-command'; `emacs' is equivalent to `emacs-standard'. The
- default value is `emacs'. The value of the `editing-mode'
- variable also affects the default keymap.
-
- `mark-directories'
- If set to `on', completed directory names have a slash
- appended. The default is `on'.
-
- `mark-modified-lines'
- This variable, when set to `on', causes Readline to display an
- asterisk (`*') at the start of history lines which have been
- modified. This variable is `off' by default.
-
- `mark-symlinked-directories'
- If set to `on', completed names which are symbolic links to
- directories have a slash appended (subject to the value of
- `mark-directories'). The default is `off'.
-
- `match-hidden-files'
- This variable, when set to `on', causes Readline to match
- files whose names begin with a `.' (hidden files) when
- performing filename completion, unless the leading `.' is
- supplied by the user in the filename to be completed. This
- variable is `on' by default.
-
- `output-meta'
- If set to `on', Readline will display characters with the
- eighth bit set directly rather than as a meta-prefixed escape
- sequence. The default is `off'.
-
- `page-completions'
- If set to `on', Readline uses an internal `more'-like pager
- to display a screenful of possible completions at a time.
- This variable is `on' by default.
-
- `print-completions-horizontally'
- If set to `on', Readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down
- the screen. The default is `off'.
-
- `show-all-if-ambiguous'
- This alters the default behavior of the completion functions.
- If set to `on', words which have more than one possible
- completion cause the matches to be listed immediately instead
- of ringing the bell. The default value is `off'.
-
- `visible-stats'
- If set to `on', a character denoting a file's type is
- appended to the filename when listing possible completions.
- The default is `off'.
-
-Key Bindings
- The syntax for controlling key bindings in the init file is
- simple. First you need to find the name of the command that you
- want to change. The following sections contain tables of the
- command name, the default keybinding, if any, and a short
- description of what the command does.
-
- Once you know the name of the command, simply place on a line in
- the init file the name of the key you wish to bind the command to,
- a colon, and then the name of the command. The name of the key
- can be expressed in different ways, depending on what you find most
- comfortable.
-
- In addition to command names, readline allows keys to be bound to
- a string that is inserted when the key is pressed (a MACRO).
-
- KEYNAME: FUNCTION-NAME or MACRO
- KEYNAME is the name of a key spelled out in English. For
- example:
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the above example, `C-u' is bound to the function
- `universal-argument', `M-DEL' is bound to the function
- `backward-kill-word', and `C-o' is bound to run the macro
- expressed on the right hand side (that is, to insert the text
- `> output' into the line).
-
- A number of symbolic character names are recognized while
- processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
- NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
-
- "KEYSEQ": FUNCTION-NAME or MACRO
- KEYSEQ differs from KEYNAME above in that strings denoting an
- entire key sequence can be specified, by placing the key
- sequence in double quotes. Some GNU Emacs style key escapes
- can be used, as in the following example, but the special
- character names are not recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In the above example, `C-u' is again bound to the function
- `universal-argument' (just as it was in the first example),
- `C-x C-r' is bound to the function `re-read-init-file', and
- `<ESC> <[> <1> <1> <~>' is bound to insert the text `Function
- Key 1'.
-
- The following GNU Emacs style escape sequences are available when
- specifying key sequences:
-
- `\C-'
- control prefix
-
- `\M-'
- meta prefix
-
- `\e'
- an escape character
-
- `\\'
- backslash
-
- `\"'
- <">, a double quotation mark
-
- `\''
- <'>, a single quote or apostrophe
-
- In addition to the GNU Emacs style escape sequences, a second set
- of backslash escapes is available:
-
- `\a'
- alert (bell)
-
- `\b'
- backspace
-
- `\d'
- delete
-
- `\f'
- form feed
-
- `\n'
- newline
-
- `\r'
- carriage return
-
- `\t'
- horizontal tab
-
- `\v'
- vertical tab
-
- `\NNN'
- the eight-bit character whose value is the octal value NNN
- (one to three digits)
-
- `\xHH'
- the eight-bit character whose value is the hexadecimal value
- HH (one or two hex digits)
-
- When entering the text of a macro, single or double quotes must be
- used to indicate a macro definition. Unquoted text is assumed to
- be a function name. In the macro body, the backslash escapes
- described above are expanded. Backslash will quote any other
- character in the macro text, including `"' and `''. For example,
- the following binding will make `C-x \' insert a single `\' into
- the line:
- "\C-x\\": "\\"
-
-
-File: readline.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
-
-Conditional Init Constructs
----------------------------
-
- Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key bindings
-and variable settings to be performed as the result of tests. There
-are four parser directives used.
-
-`$if'
- The `$if' construct allows bindings to be made based on the
- editing mode, the terminal being used, or the application using
- Readline. The text of the test extends to the end of the line; no
- characters are required to isolate it.
-
- `mode'
- The `mode=' form of the `$if' directive is used to test
- whether Readline is in `emacs' or `vi' mode. This may be
- used in conjunction with the `set keymap' command, for
- instance, to set bindings in the `emacs-standard' and
- `emacs-ctlx' keymaps only if Readline is starting out in
- `emacs' mode.
-
- `term'
- The `term=' form may be used to include terminal-specific key
- bindings, perhaps to bind the key sequences output by the
- terminal's function keys. The word on the right side of the
- `=' is tested against both the full name of the terminal and
- the portion of the terminal name before the first `-'. This
- allows `sun' to match both `sun' and `sun-cmd', for instance.
-
- `application'
- The APPLICATION construct is used to include
- application-specific settings. Each program using the
- Readline library sets the APPLICATION NAME, and you can test
- for a particular value. This could be used to bind key
- sequences to functions useful for a specific program. For
- instance, the following command adds a key sequence that
- quotes the current or previous word in Bash:
- $if Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $endif
-
-`$endif'
- This command, as seen in the previous example, terminates an `$if'
- command.
-
-`$else'
- Commands in this branch of the `$if' directive are executed if the
- test fails.
-
-`$include'
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the following
- directive reads from `/etc/inputrc':
- $include /etc/inputrc
-
-
-File: readline.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File
-
-Sample Init File
-----------------
-
- Here is an example of an INPUTRC file. This illustrates key
-binding, variable assignment, and conditional syntax.
-
-
- # This file controls the behaviour of line input editing for
- # programs that use the GNU Readline library. Existing
- # programs include FTP, Bash, and GDB.
- #
- # You can re-read the inputrc file with C-x C-r.
- # Lines beginning with '#' are comments.
- #
- # First, include any systemwide bindings and variable
- # assignments from /etc/Inputrc
- $include /etc/Inputrc
-
- #
- # Set various bindings for emacs mode.
-
- set editing-mode emacs
-
- $if mode=emacs
-
- Meta-Control-h: backward-kill-word Text after the function name is ignored
-
- #
- # Arrow keys in keypad mode
- #
- #"\M-OD": backward-char
- #"\M-OC": forward-char
- #"\M-OA": previous-history
- #"\M-OB": next-history
- #
- # Arrow keys in ANSI mode
- #
- "\M-[D": backward-char
- "\M-[C": forward-char
- "\M-[A": previous-history
- "\M-[B": next-history
- #
- # Arrow keys in 8 bit keypad mode
- #
- #"\M-\C-OD": backward-char
- #"\M-\C-OC": forward-char
- #"\M-\C-OA": previous-history
- #"\M-\C-OB": next-history
- #
- # Arrow keys in 8 bit ANSI mode
- #
- #"\M-\C-[D": backward-char
- #"\M-\C-[C": forward-char
- #"\M-\C-[A": previous-history
- #"\M-\C-[B": next-history
-
- C-q: quoted-insert
-
- $endif
-
- # An old-style binding. This happens to be the default.
- TAB: complete
-
- # Macros that are convenient for shell interaction
- $if Bash
- # edit the path
- "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
- # prepare to type a quoted word --
- # insert open and close double quotes
- # and move to just after the open quote
- "\C-x\"": "\"\"\C-b"
- # insert a backslash (testing backslash escapes
- # in sequences and macros)
- "\C-x\\": "\\"
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- # Add a binding to refresh the line, which is unbound
- "\C-xr": redraw-current-line
- # Edit variable on current line.
- "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
- $endif
-
- # use a visible bell if one is available
- set bell-style visible
-
- # don't strip characters to 7 bits when reading
- set input-meta on
-
- # allow iso-latin1 characters to be inserted rather
- # than converted to prefix-meta sequences
- set convert-meta off
-
- # display characters with the eighth bit set directly
- # rather than as meta-prefixed characters
- set output-meta on
-
- # if there are more than 150 possible completions for
- # a word, ask the user if he wants to see all of them
- set completion-query-items 150
-
- # For FTP
- $if Ftp
- "\C-xg": "get \M-?"
- "\C-xt": "put \M-?"
- "\M-.": yank-last-arg
- $endif
-
-
-File: readline.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing
-
-Bindable Readline Commands
-==========================
-
-* Menu:
-
-* Commands For Moving:: Moving about the line.
-* Commands For History:: Getting at previous lines.
-* Commands For Text:: Commands for changing text.
-* Commands For Killing:: Commands for killing and yanking.
-* Numeric Arguments:: Specifying numeric arguments, repeat counts.
-* Commands For Completion:: Getting Readline to do the typing for you.
-* Keyboard Macros:: Saving and re-executing typed characters
-* Miscellaneous Commands:: Other miscellaneous commands.
-
- This section describes Readline commands that may be bound to key
-sequences. Command names without an accompanying key sequence are
-unbound by default.
-
- In the following descriptions, "point" refers to the current cursor
-position, and "mark" refers to a cursor position saved by the
-`set-mark' command. The text between the point and mark is referred to
-as the "region".
-
-
-File: readline.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands
-
-Commands For Moving
--------------------
-
-`beginning-of-line (C-a)'
- Move to the start of the current line.
-
-`end-of-line (C-e)'
- Move to the end of the line.
-
-`forward-char (C-f)'
- Move forward a character.
-
-`backward-char (C-b)'
- Move back a character.
-
-`forward-word (M-f)'
- Move forward to the end of the next word. Words are composed of
- letters and digits.
-
-`backward-word (M-b)'
- Move back to the start of the current or previous word. Words are
- composed of letters and digits.
-
-`clear-screen (C-l)'
- Clear the screen and redraw the current line, leaving the current
- line at the top of the screen.
-
-`redraw-current-line ()'
- Refresh the current line. By default, this is unbound.
-
-
-File: readline.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands
-
-Commands For Manipulating The History
--------------------------------------
-
-`accept-line (Newline or Return)'
- Accept the line regardless of where the cursor is. If this line is
- non-empty, it may be added to the history list for future recall
- with `add_history()'. If this line is a modified history line,
- the history line is restored to its original state.
-
-`previous-history (C-p)'
- Move `back' through the history list, fetching the previous
- command.
-
-`next-history (C-n)'
- Move `forward' through the history list, fetching the next command.
-
-`beginning-of-history (M-<)'
- Move to the first line in the history.
-
-`end-of-history (M->)'
- Move to the end of the input history, i.e., the line currently
- being entered.
-
-`reverse-search-history (C-r)'
- Search backward starting at the current line and moving `up'
- through the history as necessary. This is an incremental search.
-
-`forward-search-history (C-s)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary. This is an incremental
- search.
-
-`non-incremental-reverse-search-history (M-p)'
- Search backward starting at the current line and moving `up'
- through the history as necessary using a non-incremental search
- for a string supplied by the user.
-
-`non-incremental-forward-search-history (M-n)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary using a non-incremental search
- for a string supplied by the user.
-
-`history-search-forward ()'
- Search forward through the history for the string of characters
- between the start of the current line and the point. This is a
- non-incremental search. By default, this command is unbound.
-
-`history-search-backward ()'
- Search backward through the history for the string of characters
- between the start of the current line and the point. This is a
- non-incremental search. By default, this command is unbound.
-
-`yank-nth-arg (M-C-y)'
- Insert the first argument to the previous command (usually the
- second word on the previous line) at point. With an argument N,
- insert the Nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument inserts
- the Nth word from the end of the previous command.
-
-`yank-last-arg (M-. or M-_)'
- Insert last argument to the previous command (the last word of the
- previous history entry). With an argument, behave exactly like
- `yank-nth-arg'. Successive calls to `yank-last-arg' move back
- through the history list, inserting the last argument of each line
- in turn.
-
-
-File: readline.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
-
-Commands For Changing Text
---------------------------
-
-`delete-char (C-d)'
- Delete the character at point. If point is at the beginning of
- the line, there are no characters in the line, and the last
- character typed was not bound to `delete-char', then return EOF.
-
-`backward-delete-char (Rubout)'
- Delete the character behind the cursor. A numeric argument means
- to kill the characters instead of deleting them.
-
-`forward-backward-delete-char ()'
- Delete the character under the cursor, unless the cursor is at the
- end of the line, in which case the character behind the cursor is
- deleted. By default, this is not bound to a key.
-
-`quoted-insert (C-q or C-v)'
- Add the next character typed to the line verbatim. This is how to
- insert key sequences like `C-q', for example.
-
-`tab-insert (M-<TAB>)'
- Insert a tab character.
-
-`self-insert (a, b, A, 1, !, ...)'
- Insert yourself.
-
-`transpose-chars (C-t)'
- Drag the character before the cursor forward over the character at
- the cursor, moving the cursor forward as well. If the insertion
- point is at the end of the line, then this transposes the last two
- characters of the line. Negative arguments have no effect.
-
-`transpose-words (M-t)'
- Drag the word before point past the word after point, moving point
- past that word as well. If the insertion point is at the end of
- the line, this transposes the last two words on the line.
-
-`upcase-word (M-u)'
- Uppercase the current (or following) word. With a negative
- argument, uppercase the previous word, but do not move the cursor.
-
-`downcase-word (M-l)'
- Lowercase the current (or following) word. With a negative
- argument, lowercase the previous word, but do not move the cursor.
-
-`capitalize-word (M-c)'
- Capitalize the current (or following) word. With a negative
- argument, capitalize the previous word, but do not move the cursor.
-
-`overwrite-mode ()'
- Toggle overwrite mode. With an explicit positive numeric argument,
- switches to overwrite mode. With an explicit non-positive numeric
- argument, switches to insert mode. This command affects only
- `emacs' mode; `vi' mode does overwrite differently. Each call to
- `readline()' starts in insert mode.
-
- In overwrite mode, characters bound to `self-insert' replace the
- text at point rather than pushing the text to the right.
- Characters bound to `backward-delete-char' replace the character
- before point with a space.
-
- By default, this command is unbound.
-
-
-File: readline.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
-
-Killing And Yanking
--------------------
-
-`kill-line (C-k)'
- Kill the text from point to the end of the line.
-
-`backward-kill-line (C-x Rubout)'
- Kill backward to the beginning of the line.
-
-`unix-line-discard (C-u)'
- Kill backward from the cursor to the beginning of the current line.
-
-`kill-whole-line ()'
- Kill all characters on the current line, no matter where point is.
- By default, this is unbound.
-
-`kill-word (M-d)'
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the same
- as `forward-word'.
-
-`backward-kill-word (M-<DEL>)'
- Kill the word behind point. Word boundaries are the same as
- `backward-word'.
-
-`unix-word-rubout (C-w)'
- Kill the word behind point, using white space as a word boundary.
- The killed text is saved on the kill-ring.
-
-`delete-horizontal-space ()'
- Delete all spaces and tabs around point. By default, this is
- unbound.
-
-`kill-region ()'
- Kill the text in the current region. By default, this command is
- unbound.
-
-`copy-region-as-kill ()'
- Copy the text in the region to the kill buffer, so it can be yanked
- right away. By default, this command is unbound.
-
-`copy-backward-word ()'
- Copy the word before point to the kill buffer. The word
- boundaries are the same as `backward-word'. By default, this
- command is unbound.
-
-`copy-forward-word ()'
- Copy the word following point to the kill buffer. The word
- boundaries are the same as `forward-word'. By default, this
- command is unbound.
-
-`yank (C-y)'
- Yank the top of the kill ring into the buffer at point.
-
-`yank-pop (M-y)'
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `yank' or `yank-pop'.
-
-
-File: readline.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands
-
-Specifying Numeric Arguments
-----------------------------
-
-`digit-argument (M-0, M-1, ... M--)'
- Add this digit to the argument already accumulating, or start a new
- argument. `M--' starts a negative argument.
-
-`universal-argument ()'
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is
- followed by digits, executing `universal-argument' again ends the
- numeric argument, but is otherwise ignored. As a special case, if
- this command is immediately followed by a character that is
- neither a digit or minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argument
- count four, a second time makes the argument count sixteen, and so
- on. By default, this is not bound to a key.
-
-
-File: readline.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
-
-Letting Readline Type For You
------------------------------
-
-`complete (<TAB>)'
- Attempt to perform completion on the text before point. The
- actual completion performed is application-specific. The default
- is filename completion.
-
-`possible-completions (M-?)'
- List the possible completions of the text before point.
-
-`insert-completions (M-*)'
- Insert all completions of the text before point that would have
- been generated by `possible-completions'.
-
-`menu-complete ()'
- Similar to `complete', but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of `menu-complete' steps through the list of possible
- completions, inserting each match in turn. At the end of the list
- of completions, the bell is rung (subject to the setting of
- `bell-style') and the original text is restored. An argument of N
- moves N positions forward in the list of matches; a negative
- argument may be used to move backward through the list. This
- command is intended to be bound to <TAB>, but is unbound by
- default.
-
-`delete-char-or-list ()'
- Deletes the character under the cursor if not at the beginning or
- end of the line (like `delete-char'). If at the end of the line,
- behaves identically to `possible-completions'. This command is
- unbound by default.
-
-
-File: readline.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
-
-Keyboard Macros
----------------
-
-`start-kbd-macro (C-x ()'
- Begin saving the characters typed into the current keyboard macro.
-
-`end-kbd-macro (C-x ))'
- Stop saving the characters typed into the current keyboard macro
- and save the definition.
-
-`call-last-kbd-macro (C-x e)'
- Re-execute the last keyboard macro defined, by making the
- characters in the macro appear as if typed at the keyboard.
-
-
-File: readline.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
-
-Some Miscellaneous Commands
----------------------------
-
-`re-read-init-file (C-x C-r)'
- Read in the contents of the INPUTRC file, and incorporate any
- bindings or variable assignments found there.
-
-`abort (C-g)'
- Abort the current editing command and ring the terminal's bell
- (subject to the setting of `bell-style').
-
-`do-uppercase-version (M-a, M-b, M-X, ...)'
- If the metafied character X is lowercase, run the command that is
- bound to the corresponding uppercase character.
-
-`prefix-meta (<ESC>)'
- Metafy the next character typed. This is for keyboards without a
- meta key. Typing `<ESC> f' is equivalent to typing `M-f'.
-
-`undo (C-_ or C-x C-u)'
- Incremental undo, separately remembered for each line.
-
-`revert-line (M-r)'
- Undo all changes made to this line. This is like executing the
- `undo' command enough times to get back to the beginning.
-
-`tilde-expand (M-~)'
- Perform tilde expansion on the current word.
-
-`set-mark (C-@)'
- Set the mark to the point. If a numeric argument is supplied, the
- mark is set to that position.
-
-`exchange-point-and-mark (C-x C-x)'
- Swap the point with the mark. The current cursor position is set
- to the saved position, and the old cursor position is saved as the
- mark.
-
-`character-search (C-])'
- A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous
- occurrences.
-
-`character-search-backward (M-C-])'
- A character is read and point is moved to the previous occurrence
- of that character. A negative count searches for subsequent
- occurrences.
-
-`insert-comment (M-#)'
- Without a numeric argument, the value of the `comment-begin'
- variable is inserted at the beginning of the current line. If a
- numeric argument is supplied, this command acts as a toggle: if
- the characters at the beginning of the line do not match the value
- of `comment-begin', the value is inserted, otherwise the
- characters in `comment-begin' are deleted from the beginning of
- the line. In either case, the line is accepted as if a newline
- had been typed.
-
-`dump-functions ()'
- Print all of the functions and their key bindings to the Readline
- output stream. If a numeric argument is supplied, the output is
- formatted in such a way that it can be made part of an INPUTRC
- file. This command is unbound by default.
-
-`dump-variables ()'
- Print all of the settable variables and their values to the
- Readline output stream. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-`dump-macros ()'
- Print all of the Readline key sequences bound to macros and the
- strings they output. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-`emacs-editing-mode (C-e)'
- When in `vi' command mode, this causes a switch to `emacs' editing
- mode.
-
-`vi-editing-mode (M-C-j)'
- When in `emacs' editing mode, this causes a switch to `vi' editing
- mode.
-
-
-File: readline.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing
-
-Readline vi Mode
-================
-
- While the Readline library does not have a full set of `vi' editing
-functions, it does contain enough to allow simple editing of the line.
-The Readline `vi' mode behaves as specified in the POSIX 1003.2
-standard.
-
- In order to switch interactively between `emacs' and `vi' editing
-modes, use the command `M-C-j' (bound to emacs-editing-mode when in
-`vi' mode and to vi-editing-mode in `emacs' mode). The Readline
-default is `emacs' mode.
-
- When you enter a line in `vi' mode, you are already placed in
-`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
-you into `command' mode, where you can edit the text of the line with
-the standard `vi' movement keys, move to previous history lines with
-`k' and subsequent lines with `j', and so forth.
-
- This document describes the GNU Readline Library, a utility for
-aiding in the consitency of user interface across discrete programs
-that need to provide a command line interface.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice pare
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Foundation.
-
-
-File: readline.info, Node: Programming with GNU Readline, Next: Concept Index, Prev: Command Line Editing, Up: Top
-
-Programming with GNU Readline
-*****************************
-
- This chapter describes the interface between the GNU Readline
-Library and other programs. If you are a programmer, and you wish to
-include the features found in GNU Readline such as completion, line
-editing, and interactive history manipulation in your own programs,
-this section is for you.
-
-* Menu:
-
-* Basic Behavior:: Using the default behavior of Readline.
-* Custom Functions:: Adding your own functions to Readline.
-* Readline Variables:: Variables accessible to custom
- functions.
-* Readline Convenience Functions:: Functions which Readline supplies to
- aid in writing your own custom
- functions.
-* Readline Signal Handling:: How Readline behaves when it receives signals.
-* Custom Completers:: Supplanting or supplementing Readline's
- completion functions.
-
-
-File: readline.info, Node: Basic Behavior, Next: Custom Functions, Up: Programming with GNU Readline
-
-Basic Behavior
-==============
-
- Many programs provide a command line interface, such as `mail',
-`ftp', and `sh'. For such programs, the default behaviour of Readline
-is sufficient. This section describes how to use Readline in the
-simplest way possible, perhaps to replace calls in your code to
-`gets()' or `fgets()'.
-
- The function `readline()' prints a prompt PROMPT and then reads and
-returns a single line of text from the user. If PROMPT is `NULL' or
-the empty string, no prompt is displayed. The line `readline' returns
-is allocated with `malloc()'; the caller should `free()' the line when
-it has finished with it. The declaration for `readline' in ANSI C is
-
- `char *readline (const char *PROMPT);'
-
-So, one might say
- `char *line = readline ("Enter a line: ");'
-
-in order to read a line of text from the user. The line returned has
-the final newline removed, so only the text remains.
-
- If `readline' encounters an `EOF' while reading the line, and the
-line is empty at that point, then `(char *)NULL' is returned.
-Otherwise, the line is ended just as if a newline had been typed.
-
- If you want the user to be able to get at the line later, (with
-<C-p> for example), you must call `add_history()' to save the line away
-in a "history" list of such lines.
-
- `add_history (line)';
-
-For full details on the GNU History Library, see the associated manual.
-
- It is preferable to avoid saving empty lines on the history list,
-since users rarely have a burning need to reuse a blank line. Here is
-a function which usefully replaces the standard `gets()' library
-function, and has the advantage of no static buffer to overflow:
-
- /* A static variable for holding the line. */
- static char *line_read = (char *)NULL;
-
- /* Read a string, and return a pointer to it.
- Returns NULL on EOF. */
- char *
- rl_gets ()
- {
- /* If the buffer has already been allocated,
- return the memory to the free pool. */
- if (line_read)
- {
- free (line_read);
- line_read = (char *)NULL;
- }
-
- /* Get a line from the user. */
- line_read = readline ("");
-
- /* If the line has any text in it,
- save it on the history. */
- if (line_read && *line_read)
- add_history (line_read);
-
- return (line_read);
- }
-
- This function gives the user the default behaviour of <TAB>
-completion: completion on file names. If you do not want Readline to
-complete on filenames, you can change the binding of the <TAB> key with
-`rl_bind_key()'.
-
- `int rl_bind_key (int KEY, rl_command_func_t *FUNCTION);'
-
- `rl_bind_key()' takes two arguments: KEY is the character that you
-want to bind, and FUNCTION is the address of the function to call when
-KEY is pressed. Binding <TAB> to `rl_insert()' makes <TAB> insert
-itself. `rl_bind_key()' returns non-zero if KEY is not a valid ASCII
-character code (between 0 and 255).
-
- Thus, to disable the default <TAB> behavior, the following suffices:
- `rl_bind_key ('\t', rl_insert);'
-
- This code should be executed once at the start of your program; you
-might write a function called `initialize_readline()' which performs
-this and other desired initializations, such as installing custom
-completers (*note Custom Completers::).
-
-
-File: readline.info, Node: Custom Functions, Next: Readline Variables, Prev: Basic Behavior, Up: Programming with GNU Readline
-
-Custom Functions
-================
-
- Readline provides many functions for manipulating the text of the
-line, but it isn't possible to anticipate the needs of all programs.
-This section describes the various functions and variables defined
-within the Readline library which allow a user program to add
-customized functionality to Readline.
-
- Before declaring any functions that customize Readline's behavior, or
-using any functionality Readline provides in other code, an application
-writer should include the file `<readline/readline.h>' in any file that
-uses Readline's features. Since some of the definitions in
-`readline.h' use the `stdio' library, the file `<stdio.h>' should be
-included before `readline.h'.
-
- `readline.h' defines a C preprocessor variable that should be
-treated as an integer, `RL_READLINE_VERSION', which may be used to
-conditionally compile application code depending on the installed
-Readline version. The value is a hexadecimal encoding of the major and
-minor version numbers of the library, of the form 0xMMMM. MM is the
-two-digit major version number; MM is the two-digit minor version
-number. For Readline 4.2, for example, the value of
-`RL_READLINE_VERSION' would be `0x0402'.
-
-* Menu:
-
-* Readline Typedefs:: C declarations to make code readable.
-* Function Writing:: Variables and calling conventions.
-
-
-File: readline.info, Node: Readline Typedefs, Next: Function Writing, Up: Custom Functions
-
-Readline Typedefs
------------------
-
- For readabilty, we declare a number of new object types, all pointers
-to functions.
-
- The reason for declaring these new types is to make it easier to
-write code describing pointers to C functions with appropriately
-prototyped arguments and return values.
-
- For instance, say we want to declare a variable FUNC as a pointer to
-a function which takes two `int' arguments and returns an `int' (this
-is the type of all of the Readline bindable functions). Instead of the
-classic C declaration
-
- `int (*func)();'
-
-or the ANSI-C style declaration
-
- `int (*func)(int, int);'
-
-we may write
-
- `rl_command_func_t *func;'
-
- The full list of function pointer types available is
-
-`typedef int rl_command_func_t (int, int);'
-
-`typedef char *rl_compentry_func_t (const char *, int);'
-
-`typedef char **rl_completion_func_t (const char *, int, int);'
-
-`typedef char *rl_quote_func_t (char *, int, char *);'
-
-`typedef char *rl_dequote_func_t (char *, int);'
-
-`typedef int rl_compignore_func_t (char **);'
-
-`typedef void rl_compdisp_func_t (char **, int, int);'
-
-`typedef int rl_hook_func_t (void);'
-
-`typedef int rl_getc_func_t (FILE *);'
-
-`typedef int rl_linebuf_func_t (char *, int);'
-
-`typedef int rl_intfunc_t (int);'
-
-`#define rl_ivoidfunc_t rl_hook_func_t'
-
-`typedef int rl_icpfunc_t (char *);'
-
-`typedef int rl_icppfunc_t (char **);'
-
-`typedef void rl_voidfunc_t (void);'
-
-`typedef void rl_vintfunc_t (int);'
-
-`typedef void rl_vcpfunc_t (char *);'
-
-`typedef void rl_vcppfunc_t (char **);'
-
-File: readline.info, Node: Function Writing, Prev: Readline Typedefs, Up: Custom Functions
-
-Writing a New Function
-----------------------
-
- In order to write new functions for Readline, you need to know the
-calling conventions for keyboard-invoked functions, and the names of the
-variables that describe the current state of the line read so far.
-
- The calling sequence for a command `foo' looks like
-
- `int foo (int count, int key)'
-
-where COUNT is the numeric argument (or 1 if defaulted) and KEY is the
-key that invoked this function.
-
- It is completely up to the function as to what should be done with
-the numeric argument. Some functions use it as a repeat count, some as
-a flag, and others to choose alternate behavior (refreshing the current
-line as opposed to refreshing the screen, for example). Some choose to
-ignore it. In general, if a function uses the numeric argument as a
-repeat count, it should be able to do something useful with both
-negative and positive arguments. At the very least, it should be aware
-that it can be passed a negative argument.
-
- A command function should return 0 if its action completes
-successfully, and a non-zero value if some error occurs.
-
-
-File: readline.info, Node: Readline Variables, Next: Readline Convenience Functions, Prev: Custom Functions, Up: Programming with GNU Readline
-
-Readline Variables
-==================
-
- These variables are available to function writers.
-
- - Variable: char * rl_line_buffer
- This is the line gathered so far. You are welcome to modify the
- contents of the line, but see *Note Allowing Undoing::. The
- function `rl_extend_line_buffer' is available to increase the
- memory allocated to `rl_line_buffer'.
-
- - Variable: int rl_point
- The offset of the current cursor position in `rl_line_buffer' (the
- _point_).
-
- - Variable: int rl_end
- The number of characters present in `rl_line_buffer'. When
- `rl_point' is at the end of the line, `rl_point' and `rl_end' are
- equal.
-
- - Variable: int rl_mark
- The MARK (saved position) in the current line. If set, the mark
- and point define a _region_.
-
- - Variable: int rl_done
- Setting this to a non-zero value causes Readline to return the
- current line immediately.
-
- - Variable: int rl_num_chars_to_read
- Setting this to a positive value before calling `readline()' causes
- Readline to return after accepting that many characters, rather
- than reading up to a character bound to `accept-line'.
-
- - Variable: int rl_pending_input
- Setting this to a value makes it the next keystroke read. This is
- a way to stuff a single character into the input stream.
-
- - Variable: int rl_dispatching
- Set to a non-zero value if a function is being called from a key
- binding; zero otherwise. Application functions can test this to
- discover whether they were called directly or by Readline's
- dispatching mechanism.
-
- - Variable: int rl_erase_empty_line
- Setting this to a non-zero value causes Readline to completely
- erase the current line, including any prompt, any time a newline
- is typed as the only character on an otherwise-empty line. The
- cursor is moved to the beginning of the newly-blank line.
-
- - Variable: char * rl_prompt
- The prompt Readline uses. This is set from the argument to
- `readline()', and should not be assigned to directly. The
- `rl_set_prompt()' function (*note Redisplay::) may be used to
- modify the prompt string after calling `readline()'.
-
- - Variable: int rl_already_prompted
- If an application wishes to display the prompt itself, rather than
- have Readline do it the first time `readline()' is called, it
- should set this variable to a non-zero value after displaying the
- prompt. The prompt must also be passed as the argument to
- `readline()' so the redisplay functions can update the display
- properly. The calling application is responsible for managing the
- value; Readline never sets it.
-
- - Variable: const char * rl_library_version
- The version number of this revision of the library.
-
- - Variable: int rl_readline_version
- An integer encoding the current version of the library. The
- encoding is of the form 0xMMMM, where MM is the two-digit major
- version number, and MM is the two-digit minor version number. For
- example, for Readline-4.2, `rl_readline_version' would have the
- value 0x0402.
-
- - Variable: int rl_gnu_readline_p
- Always set to 1, denoting that this is GNU readline rather than
- some emulation.
-
- - Variable: const char * rl_terminal_name
- The terminal type, used for initialization. If not set by the
- application, Readline sets this to the value of the `TERM'
- environment variable the first time it is called.
-
- - Variable: const char * rl_readline_name
- This variable is set to a unique name by each application using
- Readline. The value allows conditional parsing of the inputrc file
- (*note Conditional Init Constructs::).
-
- - Variable: FILE * rl_instream
- The stdio stream from which Readline reads input. If `NULL',
- Readline defaults to STDIN.
-
- - Variable: FILE * rl_outstream
- The stdio stream to which Readline performs output. If `NULL',
- Readline defaults to STDOUT.
-
- - Variable: rl_command_func_t * rl_last_func
- The address of the last command function Readline executed. May
- be used to test whether or not a function is being executed twice
- in succession, for example.
-
- - Variable: rl_hook_func_t * rl_startup_hook
- If non-zero, this is the address of a function to call just before
- `readline' prints the first prompt.
-
- - Variable: rl_hook_func_t * rl_pre_input_hook
- If non-zero, this is the address of a function to call after the
- first prompt has been printed and just before `readline' starts
- reading input characters.
-
- - Variable: rl_hook_func_t * rl_event_hook
- If non-zero, this is the address of a function to call periodically
- when Readline is waiting for terminal input. By default, this
- will be called at most ten times a second if there is no keyboard
- input.
-
- - Variable: rl_getc_func_t * rl_getc_function
- If non-zero, Readline will call indirectly through this pointer to
- get a character from the input stream. By default, it is set to
- `rl_getc', the default Readline character input function (*note
- Character Input::).
-
- - Variable: rl_voidfunc_t * rl_redisplay_function
- If non-zero, Readline will call indirectly through this pointer to
- update the display with the current contents of the editing buffer.
- By default, it is set to `rl_redisplay', the default Readline
- redisplay function (*note Redisplay::).
-
- - Variable: rl_vintfunc_t * rl_prep_term_function
- If non-zero, Readline will call indirectly through this pointer to
- initialize the terminal. The function takes a single argument, an
- `int' flag that says whether or not to use eight-bit characters.
- By default, this is set to `rl_prep_terminal' (*note Terminal
- Management::).
-
- - Variable: rl_voidfunc_t * rl_deprep_term_function
- If non-zero, Readline will call indirectly through this pointer to
- reset the terminal. This function should undo the effects of
- `rl_prep_term_function'. By default, this is set to
- `rl_deprep_terminal' (*note Terminal Management::).
-
- - Variable: Keymap rl_executing_keymap
- This variable is set to the keymap (*note Keymaps::) in which the
- currently executing readline function was found.
-
- - Variable: Keymap rl_binding_keymap
- This variable is set to the keymap (*note Keymaps::) in which the
- last key binding occurred.
-
- - Variable: char * rl_executing_macro
- This variable is set to the text of any currently-executing macro.
-
- - Variable: int rl_readline_state
- A variable with bit values that encapsulate the current Readline
- state. A bit is set with the `RL_SETSTATE' macro, and unset with
- the `RL_UNSETSTATE' macro. Use the `RL_ISSTATE' macro to test
- whether a particular state bit is set. Current state bits include:
-
- `RL_STATE_NONE'
- Readline has not yet been called, nor has it begun to
- intialize.
-
- `RL_STATE_INITIALIZING'
- Readline is initializing its internal data structures.
-
- `RL_STATE_INITIALIZED'
- Readline has completed its initialization.
-
- `RL_STATE_TERMPREPPED'
- Readline has modified the terminal modes to do its own input
- and redisplay.
-
- `RL_STATE_READCMD'
- Readline is reading a command from the keyboard.
-
- `RL_STATE_METANEXT'
- Readline is reading more input after reading the meta-prefix
- character.
-
- `RL_STATE_DISPATCHING'
- Readline is dispatching to a command.
-
- `RL_STATE_MOREINPUT'
- Readline is reading more input while executing an editing
- command.
-
- `RL_STATE_ISEARCH'
- Readline is performing an incremental history search.
-
- `RL_STATE_NSEARCH'
- Readline is performing a non-incremental history search.
-
- `RL_STATE_SEARCH'
- Readline is searching backward or forward through the history
- for a string.
-
- `RL_STATE_NUMERICARG'
- Readline is reading a numeric argument.
-
- `RL_STATE_MACROINPUT'
- Readline is currently getting its input from a
- previously-defined keyboard macro.
-
- `RL_STATE_MACRODEF'
- Readline is currently reading characters defining a keyboard
- macro.
-
- `RL_STATE_OVERWRITE'
- Readline is in overwrite mode.
-
- `RL_STATE_COMPLETING'
- Readline is performing word completion.
-
- `RL_STATE_SIGHANDLER'
- Readline is currently executing the readline signal handler.
-
- `RL_STATE_UNDOING'
- Readline is performing an undo.
-
- `RL_STATE_DONE'
- Readline has read a key sequence bound to `accept-line' and
- is about to return the line to the caller.
-
-
- - Variable: int rl_explicit_arg
- Set to a non-zero value if an explicit numeric argument was
- specified by the user. Only valid in a bindable command function.
-
- - Variable: int rl_numeric_arg
- Set to the value of any numeric argument explicitly specified by
- the user before executing the current Readline function. Only
- valid in a bindable command function.
-
- - Variable: int rl_editing_mode
- Set to a value denoting Readline's current editing mode. A value
- of 1 means Readline is currently in emacs mode; 0 means that vi
- mode is active.
-
-
-File: readline.info, Node: Readline Convenience Functions, Next: Readline Signal Handling, Prev: Readline Variables, Up: Programming with GNU Readline
-
-Readline Convenience Functions
-==============================
-
-* Menu:
-
-* Function Naming:: How to give a function you write a name.
-* Keymaps:: Making keymaps.
-* Binding Keys:: Changing Keymaps.
-* Associating Function Names and Bindings:: Translate function names to
- key sequences.
-* Allowing Undoing:: How to make your functions undoable.
-* Redisplay:: Functions to control line display.
-* Modifying Text:: Functions to modify `rl_line_buffer'.
-* Character Input:: Functions to read keyboard input.
-* Terminal Management:: Functions to manage terminal settings.
-* Utility Functions:: Generally useful functions and hooks.
-* Miscellaneous Functions:: Functions that don't fall into any category.
-* Alternate Interface:: Using Readline in a `callback' fashion.
-* A Readline Example:: An example Readline function.
-
-
-File: readline.info, Node: Function Naming, Next: Keymaps, Up: Readline Convenience Functions
-
-Naming a Function
------------------
-
- The user can dynamically change the bindings of keys while using
-Readline. This is done by representing the function with a descriptive
-name. The user is able to type the descriptive name when referring to
-the function. Thus, in an init file, one might find
-
- Meta-Rubout: backward-kill-word
-
- This binds the keystroke <Meta-Rubout> to the function
-_descriptively_ named `backward-kill-word'. You, as the programmer,
-should bind the functions you write to descriptive names as well.
-Readline provides a function for doing that:
-
- - Function: int rl_add_defun (const char *name, rl_command_func_t
- *function, int key)
- Add NAME to the list of named functions. Make FUNCTION be the
- function that gets called. If KEY is not -1, then bind it to
- FUNCTION using `rl_bind_key()'.
-
- Using this function alone is sufficient for most applications. It is
-the recommended way to add a few functions to the default functions that
-Readline has built in. If you need to do something other than adding a
-function to Readline, you may need to use the underlying functions
-described below.
-
-
-File: readline.info, Node: Keymaps, Next: Binding Keys, Prev: Function Naming, Up: Readline Convenience Functions
-
-Selecting a Keymap
-------------------
-
- Key bindings take place on a "keymap". The keymap is the
-association between the keys that the user types and the functions that
-get run. You can make your own keymaps, copy existing keymaps, and tell
-Readline which keymap to use.
-
- - Function: Keymap rl_make_bare_keymap (void)
- Returns a new, empty keymap. The space for the keymap is
- allocated with `malloc()'; the caller should free it by calling
- `rl_discard_keymap()' when done.
-
- - Function: Keymap rl_copy_keymap (Keymap map)
- Return a new keymap which is a copy of MAP.
-
- - Function: Keymap rl_make_keymap (void)
- Return a new keymap with the printing characters bound to
- rl_insert, the lowercase Meta characters bound to run their
- equivalents, and the Meta digits bound to produce numeric
- arguments.
-
- - Function: void rl_discard_keymap (Keymap keymap)
- Free the storage associated with KEYMAP.
-
- Readline has several internal keymaps. These functions allow you to
-change which keymap is active.
-
- - Function: Keymap rl_get_keymap (void)
- Returns the currently active keymap.
-
- - Function: void rl_set_keymap (Keymap keymap)
- Makes KEYMAP the currently active keymap.
-
- - Function: Keymap rl_get_keymap_by_name (const char *name)
- Return the keymap matching NAME. NAME is one which would be
- supplied in a `set keymap' inputrc line (*note Readline Init
- File::).
-
- - Function: char * rl_get_keymap_name (Keymap keymap)
- Return the name matching KEYMAP. NAME is one which would be
- supplied in a `set keymap' inputrc line (*note Readline Init
- File::).
-
-
-File: readline.info, Node: Binding Keys, Next: Associating Function Names and Bindings, Prev: Keymaps, Up: Readline Convenience Functions
-
-Binding Keys
-------------
-
- Key sequences are associate with functions through the keymap.
-Readline has several internal keymaps: `emacs_standard_keymap',
-`emacs_meta_keymap', `emacs_ctlx_keymap', `vi_movement_keymap', and
-`vi_insertion_keymap'. `emacs_standard_keymap' is the default, and the
-examples in this manual assume that.
-
- Since `readline()' installs a set of default key bindings the first
-time it is called, there is always the danger that a custom binding
-installed before the first call to `readline()' will be overridden. An
-alternate mechanism is to install custom key bindings in an
-initialization function assigned to the `rl_startup_hook' variable
-(*note Readline Variables::).
-
- These functions manage key bindings.
-
- - Function: int rl_bind_key (int key, rl_command_func_t *function)
- Binds KEY to FUNCTION in the currently active keymap. Returns
- non-zero in the case of an invalid KEY.
-
- - Function: int rl_bind_key_in_map (int key, rl_command_func_t
- *function, Keymap map)
- Bind KEY to FUNCTION in MAP. Returns non-zero in the case of an
- invalid KEY.
-
- - Function: int rl_unbind_key (int key)
- Bind KEY to the null function in the currently active keymap.
- Returns non-zero in case of error.
-
- - Function: int rl_unbind_key_in_map (int key, Keymap map)
- Bind KEY to the null function in MAP. Returns non-zero in case of
- error.
-
- - Function: int rl_unbind_function_in_map (rl_command_func_t
- *function, Keymap map)
- Unbind all keys that execute FUNCTION in MAP.
-
- - Function: int rl_unbind_command_in_map (const char *command, Keymap
- map)
- Unbind all keys that are bound to COMMAND in MAP.
-
- - Function: int rl_set_key (const char *keyseq, rl_command_func_t
- *function, Keymap map)
- Bind the key sequence represented by the string KEYSEQ to the
- function FUNCTION. This makes new keymaps as necessary. The
- initial keymap in which to do bindings is MAP.
-
- - Function: int rl_generic_bind (int type, const char *keyseq, char
- *data, Keymap map)
- Bind the key sequence represented by the string KEYSEQ to the
- arbitrary pointer DATA. TYPE says what kind of data is pointed to
- by DATA; this can be a function (`ISFUNC'), a macro (`ISMACR'), or
- a keymap (`ISKMAP'). This makes new keymaps as necessary. The
- initial keymap in which to do bindings is MAP.
-
- - Function: int rl_parse_and_bind (char *line)
- Parse LINE as if it had been read from the `inputrc' file and
- perform any key bindings and variable assignments found (*note
- Readline Init File::).
-
- - Function: int rl_read_init_file (const char *filename)
- Read keybindings and variable assignments from FILENAME (*note
- Readline Init File::).
-
-
-File: readline.info, Node: Associating Function Names and Bindings, Next: Allowing Undoing, Prev: Binding Keys, Up: Readline Convenience Functions
-
-Associating Function Names and Bindings
----------------------------------------
-
- These functions allow you to find out what keys invoke named
-functions and the functions invoked by a particular key sequence. You
-may also associate a new function name with an arbitrary function.
-
- - Function: rl_command_func_t * rl_named_function (const char *name)
- Return the function with name NAME.
-
- - Function: rl_command_func_t * rl_function_of_keyseq (const char
- *keyseq, Keymap map, int *type)
- Return the function invoked by KEYSEQ in keymap MAP. If MAP is
- `NULL', the current keymap is used. If TYPE is not `NULL', the
- type of the object is returned in the `int' variable it points to
- (one of `ISFUNC', `ISKMAP', or `ISMACR').
-
- - Function: char ** rl_invoking_keyseqs (rl_command_func_t *function)
- Return an array of strings representing the key sequences used to
- invoke FUNCTION in the current keymap.
-
- - Function: char ** rl_invoking_keyseqs_in_map (rl_command_func_t
- *function, Keymap map)
- Return an array of strings representing the key sequences used to
- invoke FUNCTION in the keymap MAP.
-
- - Function: void rl_function_dumper (int readable)
- Print the readline function names and the key sequences currently
- bound to them to `rl_outstream'. If READABLE is non-zero, the
- list is formatted in such a way that it can be made part of an
- `inputrc' file and re-read.
-
- - Function: void rl_list_funmap_names (void)
- Print the names of all bindable Readline functions to
- `rl_outstream'.
-
- - Function: const char ** rl_funmap_names (void)
- Return a NULL terminated array of known function names. The array
- is sorted. The array itself is allocated, but not the strings
- inside. You should `free()' the array when you are done, but not
- the pointers.
-
- - Function: int rl_add_funmap_entry (const char *name,
- rl_command_func_t *function)
- Add NAME to the list of bindable Readline command names, and make
- FUNCTION the function to be called when NAME is invoked.
-
-
-File: readline.info, Node: Allowing Undoing, Next: Redisplay, Prev: Associating Function Names and Bindings, Up: Readline Convenience Functions
-
-Allowing Undoing
-----------------
-
- Supporting the undo command is a painless thing, and makes your
-functions much more useful. It is certainly easy to try something if
-you know you can undo it.
-
- If your function simply inserts text once, or deletes text once, and
-uses `rl_insert_text()' or `rl_delete_text()' to do it, then undoing is
-already done for you automatically.
-
- If you do multiple insertions or multiple deletions, or any
-combination of these operations, you should group them together into
-one operation. This is done with `rl_begin_undo_group()' and
-`rl_end_undo_group()'.
-
- The types of events that can be undone are:
-
- enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
-
- Notice that `UNDO_DELETE' means to insert some text, and
-`UNDO_INSERT' means to delete some text. That is, the undo code tells
-what to undo, not how to undo it. `UNDO_BEGIN' and `UNDO_END' are tags
-added by `rl_begin_undo_group()' and `rl_end_undo_group()'.
-
- - Function: int rl_begin_undo_group (void)
- Begins saving undo information in a group construct. The undo
- information usually comes from calls to `rl_insert_text()' and
- `rl_delete_text()', but could be the result of calls to
- `rl_add_undo()'.
-
- - Function: int rl_end_undo_group (void)
- Closes the current undo group started with `rl_begin_undo_group
- ()'. There should be one call to `rl_end_undo_group()' for each
- call to `rl_begin_undo_group()'.
-
- - Function: void rl_add_undo (enum undo_code what, int start, int end,
- char *text)
- Remember how to undo an event (according to WHAT). The affected
- text runs from START to END, and encompasses TEXT.
-
- - Function: void rl_free_undo_list (void)
- Free the existing undo list.
-
- - Function: int rl_do_undo (void)
- Undo the first thing on the undo list. Returns `0' if there was
- nothing to undo, non-zero if something was undone.
-
- Finally, if you neither insert nor delete text, but directly modify
-the existing text (e.g., change its case), call `rl_modifying()' once,
-just before you modify the text. You must supply the indices of the
-text range that you are going to modify.
-
- - Function: int rl_modifying (int start, int end)
- Tell Readline to save the text between START and END as a single
- undo unit. It is assumed that you will subsequently modify that
- text.
-
-
-File: readline.info, Node: Redisplay, Next: Modifying Text, Prev: Allowing Undoing, Up: Readline Convenience Functions
-
-Redisplay
----------
-
- - Function: void rl_redisplay (void)
- Change what's displayed on the screen to reflect the current
- contents of `rl_line_buffer'.
-
- - Function: int rl_forced_update_display (void)
- Force the line to be updated and redisplayed, whether or not
- Readline thinks the screen display is correct.
-
- - Function: int rl_on_new_line (void)
- Tell the update functions that we have moved onto a new (empty)
- line, usually after ouputting a newline.
-
- - Function: int rl_on_new_line_with_prompt (void)
- Tell the update functions that we have moved onto a new line, with
- RL_PROMPT already displayed. This could be used by applications
- that want to output the prompt string themselves, but still need
- Readline to know the prompt string length for redisplay. It
- should be used after setting RL_ALREADY_PROMPTED.
-
- - Function: int rl_reset_line_state (void)
- Reset the display state to a clean state and redisplay the current
- line starting on a new line.
-
- - Function: int rl_crlf (void)
- Move the cursor to the start of the next screen line.
-
- - Function: int rl_show_char (int c)
- Display character C on `rl_outstream'. If Readline has not been
- set to display meta characters directly, this will convert meta
- characters to a meta-prefixed key sequence. This is intended for
- use by applications which wish to do their own redisplay.
-
- - Function: int rl_message (const char *, ...)
- The arguments are a format string as would be supplied to `printf',
- possibly containing conversion specifications such as `%d', and
- any additional arguments necessary to satisfy the conversion
- specifications. The resulting string is displayed in the "echo
- area". The echo area is also used to display numeric arguments
- and search strings.
-
- - Function: int rl_clear_message (void)
- Clear the message in the echo area.
-
- - Function: void rl_save_prompt (void)
- Save the local Readline prompt display state in preparation for
- displaying a new message in the message area with `rl_message()'.
-
- - Function: void rl_restore_prompt (void)
- Restore the local Readline prompt display state saved by the most
- recent call to `rl_save_prompt'.
-
- - Function: int rl_expand_prompt (char *prompt)
- Expand any special character sequences in PROMPT and set up the
- local Readline prompt redisplay variables. This function is
- called by `readline()'. It may also be called to expand the
- primary prompt if the `rl_on_new_line_with_prompt()' function or
- `rl_already_prompted' variable is used. It returns the number of
- visible characters on the last line of the (possibly multi-line)
- prompt.
-
- - Function: int rl_set_prompt (const char *prompt)
- Make Readline use PROMPT for subsequent redisplay. This calls
- `rl_expand_prompt()' to expand the prompt and sets `rl_prompt' to
- the result.
-
-
-File: readline.info, Node: Modifying Text, Next: Character Input, Prev: Redisplay, Up: Readline Convenience Functions
-
-Modifying Text
---------------
-
- - Function: int rl_insert_text (const char *text)
- Insert TEXT into the line at the current cursor position. Returns
- the number of characters inserted.
-
- - Function: int rl_delete_text (int start, int end)
- Delete the text between START and END in the current line.
- Returns the number of characters deleted.
-
- - Function: char * rl_copy_text (int start, int end)
- Return a copy of the text between START and END in the current
- line.
-
- - Function: int rl_kill_text (int start, int end)
- Copy the text between START and END in the current line to the
- kill ring, appending or prepending to the last kill if the last
- command was a kill command. The text is deleted. If START is
- less than END, the text is appended, otherwise prepended. If the
- last command was not a kill, a new kill ring slot is used.
-
- - Function: int rl_push_macro_input (char *macro)
- Cause MACRO to be inserted into the line, as if it had been invoked
- by a key bound to a macro. Not especially useful; use
- `rl_insert_text()' instead.
-
-
-File: readline.info, Node: Character Input, Next: Terminal Management, Prev: Modifying Text, Up: Readline Convenience Functions
-
-Character Input
----------------
-
- - Function: int rl_read_key (void)
- Return the next character available from Readline's current input
- stream. This handles input inserted into the input stream via
- RL_PENDING_INPUT (*note Readline Variables::) and
- `rl_stuff_char()', macros, and characters read from the keyboard.
- While waiting for input, this function will call any function
- assigned to the `rl_event_hook' variable.
-
- - Function: int rl_getc (FILE *stream)
- Return the next character available from STREAM, which is assumed
- to be the keyboard.
-
- - Function: int rl_stuff_char (int c)
- Insert C into the Readline input stream. It will be "read" before
- Readline attempts to read characters from the terminal with
- `rl_read_key()'. Up to 512 characters may be pushed back.
- `rl_stuff_char' returns 1 if the character was successfully
- inserted; 0 otherwise.
-
- - Function: int rl_execute_next (int c)
- Make C be the next command to be executed when `rl_read_key()' is
- called. This sets RL_PENDING_INPUT.
-
- - Function: int rl_clear_pending_input (void)
- Unset RL_PENDING_INPUT, effectively negating the effect of any
- previous call to `rl_execute_next()'. This works only if the
- pending input has not already been read with `rl_read_key()'.
-
- - Function: int rl_set_keyboard_input_timeout (int u)
- While waiting for keyboard input in `rl_read_key()', Readline will
- wait for U microseconds for input before calling any function
- assigned to `rl_event_hook'. The default waiting period is
- one-tenth of a second. Returns the old timeout value.
-
-
-File: readline.info, Node: Terminal Management, Next: Utility Functions, Prev: Character Input, Up: Readline Convenience Functions
-
-Terminal Management
--------------------
-
- - Function: void rl_prep_terminal (int meta_flag)
- Modify the terminal settings for Readline's use, so `readline()'
- can read a single character at a time from the keyboard. The
- META_FLAG argument should be non-zero if Readline should read
- eight-bit input.
-
- - Function: void rl_deprep_terminal (void)
- Undo the effects of `rl_prep_terminal()', leaving the terminal in
- the state in which it was before the most recent call to
- `rl_prep_terminal()'.
-
- - Function: void rl_tty_set_default_bindings (Keymap kmap)
- Read the operating system's terminal editing characters (as would
- be displayed by `stty') to their Readline equivalents. The
- bindings are performed in KMAP.
-
- - Function: int rl_reset_terminal (const char *terminal_name)
- Reinitialize Readline's idea of the terminal settings using
- TERMINAL_NAME as the terminal type (e.g., `vt100'). If
- TERMINAL_NAME is `NULL', the value of the `TERM' environment
- variable is used.
-
-
-File: readline.info, Node: Utility Functions, Next: Miscellaneous Functions, Prev: Terminal Management, Up: Readline Convenience Functions
-
-Utility Functions
------------------
-
- - Function: void rl_replace_line (const char *text, int clear_undo)
- Replace the contents of `rl_line_buffer' with TEXT. The point and
- mark are preserved, if possible. If CLEAR_UNDO is non-zero, the
- undo list associated with the current line is cleared.
-
- - Function: int rl_extend_line_buffer (int len)
- Ensure that `rl_line_buffer' has enough space to hold LEN
- characters, possibly reallocating it if necessary.
-
- - Function: int rl_initialize (void)
- Initialize or re-initialize Readline's internal state. It's not
- strictly necessary to call this; `readline()' calls it before
- reading any input.
-
- - Function: int rl_ding (void)
- Ring the terminal bell, obeying the setting of `bell-style'.
-
- - Function: int rl_alphabetic (int c)
- Return 1 if C is an alphabetic character.
-
- - Function: void rl_display_match_list (char **matches, int len, int
- max)
- A convenience function for displaying a list of strings in
- columnar format on Readline's output stream. `matches' is the list
- of strings, in argv format, such as a list of completion matches.
- `len' is the number of strings in `matches', and `max' is the
- length of the longest string in `matches'. This function uses the
- setting of `print-completions-horizontally' to select how the
- matches are displayed (*note Readline Init File Syntax::).
-
- The following are implemented as macros, defined in `chardefs.h'.
-Applications should refrain from using them.
-
- - Function: int _rl_uppercase_p (int c)
- Return 1 if C is an uppercase alphabetic character.
-
- - Function: int _rl_lowercase_p (int c)
- Return 1 if C is a lowercase alphabetic character.
-
- - Function: int _rl_digit_p (int c)
- Return 1 if C is a numeric character.
-
- - Function: int _rl_to_upper (int c)
- If C is a lowercase alphabetic character, return the corresponding
- uppercase character.
-
- - Function: int _rl_to_lower (int c)
- If C is an uppercase alphabetic character, return the corresponding
- lowercase character.
-
- - Function: int _rl_digit_value (int c)
- If C is a number, return the value it represents.
-
-
-File: readline.info, Node: Miscellaneous Functions, Next: Alternate Interface, Prev: Utility Functions, Up: Readline Convenience Functions
-
-Miscellaneous Functions
------------------------
-
- - Function: int rl_macro_bind (const char *keyseq, const char *macro,
- Keymap map)
- Bind the key sequence KEYSEQ to invoke the macro MACRO. The
- binding is performed in MAP. When KEYSEQ is invoked, the MACRO
- will be inserted into the line. This function is deprecated; use
- `rl_generic_bind()' instead.
-
- - Function: void rl_macro_dumper (int readable)
- Print the key sequences bound to macros and their values, using
- the current keymap, to `rl_outstream'. If READABLE is non-zero,
- the list is formatted in such a way that it can be made part of an
- `inputrc' file and re-read.
-
- - Function: int rl_variable_bind (const char *variable, const char
- *value)
- Make the Readline variable VARIABLE have VALUE. This behaves as
- if the readline command `set VARIABLE VALUE' had been executed in
- an `inputrc' file (*note Readline Init File Syntax::).
-
- - Function: void rl_variable_dumper (int readable)
- Print the readline variable names and their current values to
- `rl_outstream'. If READABLE is non-zero, the list is formatted in
- such a way that it can be made part of an `inputrc' file and
- re-read.
-
- - Function: int rl_set_paren_blink_timeout (int u)
- Set the time interval (in microseconds) that Readline waits when
- showing a balancing character when `blink-matching-paren' has been
- enabled.
-
- - Function: char * rl_get_termcap (const char *cap)
- Retrieve the string value of the termcap capability CAP. Readline
- fetches the termcap entry for the current terminal name and uses
- those capabilities to move around the screen line and perform other
- terminal-specific operations, like erasing a line. Readline does
- not use all of a terminal's capabilities, and this function will
- return values for only those capabilities Readline uses.
-
-
-File: readline.info, Node: Alternate Interface, Next: A Readline Example, Prev: Miscellaneous Functions, Up: Readline Convenience Functions
-
-Alternate Interface
--------------------
-
- An alternate interface is available to plain `readline()'. Some
-applications need to interleave keyboard I/O with file, device, or
-window system I/O, typically by using a main loop to `select()' on
-various file descriptors. To accomodate this need, readline can also
-be invoked as a `callback' function from an event loop. There are
-functions available to make this easy.
-
- - Function: void rl_callback_handler_install (const char *prompt,
- rl_vcpfunc_t *lhandler)
- Set up the terminal for readline I/O and display the initial
- expanded value of PROMPT. Save the value of LHANDLER to use as a
- function to call when a complete line of input has been entered.
- The function takes the text of the line as an argument.
-
- - Function: void rl_callback_read_char (void)
- Whenever an application determines that keyboard input is
- available, it should call `rl_callback_read_char()', which will
- read the next character from the current input source. If that
- character completes the line, `rl_callback_read_char' will invoke
- the LHANDLER function saved by `rl_callback_handler_install' to
- process the line. Before calling the LHANDLER function, the
- terminal settings are reset to the values they had before calling
- `rl_callback_handler_install'. If the LHANDLER function returns,
- the terminal settings are modified for Readline's use again.
- `EOF' is indicated by calling LHANDLER with a `NULL' line.
-
- - Function: void rl_callback_handler_remove (void)
- Restore the terminal to its initial state and remove the line
- handler. This may be called from within a callback as well as
- independently. If the LHANDLER installed by
- `rl_callback_handler_install' does not exit the program, either
- this function or the function referred to by the value of
- `rl_deprep_term_function' should be called before the program
- exits to reset the terminal settings.
-
-
-File: readline.info, Node: A Readline Example, Prev: Alternate Interface, Up: Readline Convenience Functions
-
-A Readline Example
-------------------
-
- Here is a function which changes lowercase characters to their
-uppercase equivalents, and uppercase characters to lowercase. If this
-function was bound to `M-c', then typing `M-c' would change the case of
-the character under point. Typing `M-1 0 M-c' would change the case of
-the following 10 characters, leaving the cursor on the last character
-changed.
-
- /* Invert the case of the COUNT following characters. */
- int
- invert_case_line (count, key)
- int count, key;
- {
- register int start, end, i;
-
- start = rl_point;
-
- if (rl_point >= rl_end)
- return (0);
-
- if (count < 0)
- {
- direction = -1;
- count = -count;
- }
- else
- direction = 1;
-
- /* Find the end of the range to modify. */
- end = start + (count * direction);
-
- /* Force it to be within range. */
- if (end > rl_end)
- end = rl_end;
- else if (end < 0)
- end = 0;
-
- if (start == end)
- return (0);
-
- if (start > end)
- {
- int temp = start;
- start = end;
- end = temp;
- }
-
- /* Tell readline that we are modifying the line,
- so it will save the undo information. */
- rl_modifying (start, end);
-
- for (i = start; i != end; i++)
- {
- if (_rl_uppercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_lower (rl_line_buffer[i]);
- else if (_rl_lowercase_p (rl_line_buffer[i]))
- rl_line_buffer[i] = _rl_to_upper (rl_line_buffer[i]);
- }
- /* Move point to on top of the last character changed. */
- rl_point = (direction == 1) ? end - 1 : start;
- return (0);
- }
-
-
-File: readline.info, Node: Readline Signal Handling, Next: Custom Completers, Prev: Readline Convenience Functions, Up: Programming with GNU Readline
-
-Readline Signal Handling
-========================
-
- Signals are asynchronous events sent to a process by the Unix kernel,
-sometimes on behalf of another process. They are intended to indicate
-exceptional events, like a user pressing the interrupt key on his
-terminal, or a network connection being broken. There is a class of
-signals that can be sent to the process currently reading input from
-the keyboard. Since Readline changes the terminal attributes when it
-is called, it needs to perform special processing when such a signal is
-received in order to restore the terminal to a sane state, or provide
-application writers with functions to do so manually.
-
- Readline contains an internal signal handler that is installed for a
-number of signals (`SIGINT', `SIGQUIT', `SIGTERM', `SIGALRM',
-`SIGTSTP', `SIGTTIN', and `SIGTTOU'). When one of these signals is
-received, the signal handler will reset the terminal attributes to
-those that were in effect before `readline()' was called, reset the
-signal handling to what it was before `readline()' was called, and
-resend the signal to the calling application. If and when the calling
-application's signal handler returns, Readline will reinitialize the
-terminal and continue to accept input. When a `SIGINT' is received,
-the Readline signal handler performs some additional work, which will
-cause any partially-entered line to be aborted (see the description of
-`rl_free_line_state()' below).
-
- There is an additional Readline signal handler, for `SIGWINCH', which
-the kernel sends to a process whenever the terminal's size changes (for
-example, if a user resizes an `xterm'). The Readline `SIGWINCH'
-handler updates Readline's internal screen size information, and then
-calls any `SIGWINCH' signal handler the calling application has
-installed. Readline calls the application's `SIGWINCH' signal handler
-without resetting the terminal to its original state. If the
-application's signal handler does more than update its idea of the
-terminal size and return (for example, a `longjmp' back to a main
-processing loop), it _must_ call `rl_cleanup_after_signal()' (described
-below), to restore the terminal state.
-
- Readline provides two variables that allow application writers to
-control whether or not it will catch certain signals and act on them
-when they are received. It is important that applications change the
-values of these variables only when calling `readline()', not in a
-signal handler, so Readline's internal signal state is not corrupted.
-
- - Variable: int rl_catch_signals
- If this variable is non-zero, Readline will install signal
- handlers for `SIGINT', `SIGQUIT', `SIGTERM', `SIGALRM', `SIGTSTP',
- `SIGTTIN', and `SIGTTOU'.
-
- The default value of `rl_catch_signals' is 1.
-
- - Variable: int rl_catch_sigwinch
- If this variable is non-zero, Readline will install a signal
- handler for `SIGWINCH'.
-
- The default value of `rl_catch_sigwinch' is 1.
-
- If an application does not wish to have Readline catch any signals,
-or to handle signals other than those Readline catches (`SIGHUP', for
-example), Readline provides convenience functions to do the necessary
-terminal and internal state cleanup upon receipt of a signal.
-
- - Function: void rl_cleanup_after_signal (void)
- This function will reset the state of the terminal to what it was
- before `readline()' was called, and remove the Readline signal
- handlers for all signals, depending on the values of
- `rl_catch_signals' and `rl_catch_sigwinch'.
-
- - Function: void rl_free_line_state (void)
- This will free any partial state associated with the current input
- line (undo information, any partial history entry, any
- partially-entered keyboard macro, and any partially-entered
- numeric argument). This should be called before
- `rl_cleanup_after_signal()'. The Readline signal handler for
- `SIGINT' calls this to abort the current input line.
-
- - Function: void rl_reset_after_signal (void)
- This will reinitialize the terminal and reinstall any Readline
- signal handlers, depending on the values of `rl_catch_signals' and
- `rl_catch_sigwinch'.
-
- If an application does not wish Readline to catch `SIGWINCH', it may
-call `rl_resize_terminal()' or `rl_set_screen_size()' to force Readline
-to update its idea of the terminal size when a `SIGWINCH' is received.
-
- - Function: void rl_resize_terminal (void)
- Update Readline's internal screen size by reading values from the
- kernel.
-
- - Function: void rl_set_screen_size (int rows, int cols)
- Set Readline's idea of the terminal size to ROWS rows and COLS
- columns.
-
- If an application does not want to install a `SIGWINCH' handler, but
-is still interested in the screen dimensions, Readline's idea of the
-screen size may be queried.
-
- - Function: void rl_get_screen_size (int *rows, int *cols)
- Return Readline's idea of the terminal's size in the variables
- pointed to by the arguments.
-
- The following functions install and remove Readline's signal
-handlers.
-
- - Function: int rl_set_signals (void)
- Install Readline's signal handler for `SIGINT', `SIGQUIT',
- `SIGTERM', `SIGALRM', `SIGTSTP', `SIGTTIN', `SIGTTOU', and
- `SIGWINCH', depending on the values of `rl_catch_signals' and
- `rl_catch_sigwinch'.
-
- - Function: int rl_clear_signals (void)
- Remove all of the Readline signal handlers installed by
- `rl_set_signals()'.
-
-
-File: readline.info, Node: Custom Completers, Prev: Readline Signal Handling, Up: Programming with GNU Readline
-
-Custom Completers
-=================
-
- Typically, a program that reads commands from the user has a way of
-disambiguating commands and data. If your program is one of these, then
-it can provide completion for commands, data, or both. The following
-sections describe how your program and Readline cooperate to provide
-this service.
-
-* Menu:
-
-* How Completing Works:: The logic used to do completion.
-* Completion Functions:: Functions provided by Readline.
-* Completion Variables:: Variables which control completion.
-* A Short Completion Example:: An example of writing completer subroutines.
-
-
-File: readline.info, Node: How Completing Works, Next: Completion Functions, Up: Custom Completers
-
-How Completing Works
---------------------
-
- In order to complete some text, the full list of possible completions
-must be available. That is, it is not possible to accurately expand a
-partial word without knowing all of the possible words which make sense
-in that context. The Readline library provides the user interface to
-completion, and two of the most common completion functions: filename
-and username. For completing other types of text, you must write your
-own completion function. This section describes exactly what such
-functions must do, and provides an example.
-
- There are three major functions used to perform completion:
-
- 1. The user-interface function `rl_complete()'. This function is
- called with the same arguments as other bindable Readline
- functions: COUNT and INVOKING_KEY. It isolates the word to be
- completed and calls `rl_completion_matches()' to generate a list
- of possible completions. It then either lists the possible
- completions, inserts the possible completions, or actually
- performs the completion, depending on which behavior is desired.
-
- 2. The internal function `rl_completion_matches()' uses an
- application-supplied "generator" function to generate the list of
- possible matches, and then returns the array of these matches.
- The caller should place the address of its generator function in
- `rl_completion_entry_function'.
-
- 3. The generator function is called repeatedly from
- `rl_completion_matches()', returning a string each time. The
- arguments to the generator function are TEXT and STATE. TEXT is
- the partial word to be completed. STATE is zero the first time
- the function is called, allowing the generator to perform any
- necessary initialization, and a positive non-zero integer for each
- subsequent call. The generator function returns `(char *)NULL' to
- inform `rl_completion_matches()' that there are no more
- possibilities left. Usually the generator function computes the
- list of possible completions when STATE is zero, and returns them
- one at a time on subsequent calls. Each string the generator
- function returns as a match must be allocated with `malloc()';
- Readline frees the strings when it has finished with them.
-
-
- - Function: int rl_complete (int ignore, int invoking_key)
- Complete the word at or before point. You have supplied the
- function that does the initial simple matching selection algorithm
- (see `rl_completion_matches()'). The default is to do filename
- completion.
-
- - Variable: rl_compentry_func_t * rl_completion_entry_function
- This is a pointer to the generator function for
- `rl_completion_matches()'. If the value of
- `rl_completion_entry_function' is `NULL' then the default filename
- generator function, `rl_filename_completion_function()', is used.
-
-
-File: readline.info, Node: Completion Functions, Next: Completion Variables, Prev: How Completing Works, Up: Custom Completers
-
-Completion Functions
---------------------
-
- Here is the complete list of callable completion functions present in
-Readline.
-
- - Function: int rl_complete_internal (int what_to_do)
- Complete the word at or before point. WHAT_TO_DO says what to do
- with the completion. A value of `?' means list the possible
- completions. `TAB' means do standard completion. `*' means
- insert all of the possible completions. `!' means to display all
- of the possible completions, if there is more than one, as well as
- performing partial completion.
-
- - Function: int rl_complete (int ignore, int invoking_key)
- Complete the word at or before point. You have supplied the
- function that does the initial simple matching selection algorithm
- (see `rl_completion_matches()' and `rl_completion_entry_function').
- The default is to do filename completion. This calls
- `rl_complete_internal()' with an argument depending on
- INVOKING_KEY.
-
- - Function: int rl_possible_completions (int count, int invoking_key)
- List the possible completions. See description of `rl_complete
- ()'. This calls `rl_complete_internal()' with an argument of `?'.
-
- - Function: int rl_insert_completions (int count, int invoking_key)
- Insert the list of possible completions into the line, deleting the
- partially-completed word. See description of `rl_complete()'.
- This calls `rl_complete_internal()' with an argument of `*'.
-
- - Function: int rl_completion_mode (rl_command_func_t *cfunc)
- Returns the apppriate value to pass to `rl_complete_internal()'
- depending on whether CFUNC was called twice in succession and the
- value of the `show-all-if-ambiguous' variable.
- Application-specific completion functions may use this function to
- present the same interface as `rl_complete()'.
-
- - Function: char ** rl_completion_matches (const char *text,
- rl_compentry_func_t *entry_func)
- Returns an array of strings which is a list of completions for
- TEXT. If there are no completions, returns `NULL'. The first
- entry in the returned array is the substitution for TEXT. The
- remaining entries are the possible completions. The array is
- terminated with a `NULL' pointer.
-
- ENTRY_FUNC is a function of two args, and returns a `char *'. The
- first argument is TEXT. The second is a state argument; it is
- zero on the first call, and non-zero on subsequent calls.
- ENTRY_FUNC returns a `NULL' pointer to the caller when there are
- no more matches.
-
- - Function: char * rl_filename_completion_function (const char *text,
- int state)
- A generator function for filename completion in the general case.
- TEXT is a partial filename. The Bash source is a useful reference
- for writing custom completion functions (the Bash completion
- functions call this and other Readline functions).
-
- - Function: char * rl_username_completion_function (const char *text,
- int state)
- A completion generator for usernames. TEXT contains a partial
- username preceded by a random character (usually `~'). As with all
- completion generators, STATE is zero on the first call and non-zero
- for subsequent calls.
-
-
-File: readline.info, Node: Completion Variables, Next: A Short Completion Example, Prev: Completion Functions, Up: Custom Completers
-
-Completion Variables
---------------------
-
- - Variable: rl_compentry_func_t * rl_completion_entry_function
- A pointer to the generator function for `rl_completion_matches()'.
- `NULL' means to use `rl_filename_completion_function()', the
- default filename completer.
-
- - Variable: rl_completion_func_t * rl_attempted_completion_function
- A pointer to an alternative function to create matches. The
- function is called with TEXT, START, and END. START and END are
- indices in `rl_line_buffer' defining the boundaries of TEXT, which
- is a character string. If this function exists and returns
- `NULL', or if this variable is set to `NULL', then `rl_complete()'
- will call the value of `rl_completion_entry_function' to generate
- matches, otherwise the array of strings returned will be used. If
- this function sets the `rl_attempted_completion_over' variable to
- a non-zero value, Readline will not perform its default completion
- even if this function returns no matches.
-
- - Variable: rl_quote_func_t * rl_filename_quoting_function
- A pointer to a function that will quote a filename in an
- application-specific fashion. This is called if filename
- completion is being attempted and one of the characters in
- `rl_filename_quote_characters' appears in a completed filename.
- The function is called with TEXT, MATCH_TYPE, and QUOTE_POINTER.
- The TEXT is the filename to be quoted. The MATCH_TYPE is either
- `SINGLE_MATCH', if there is only one completion match, or
- `MULT_MATCH'. Some functions use this to decide whether or not to
- insert a closing quote character. The QUOTE_POINTER is a pointer
- to any opening quote character the user typed. Some functions
- choose to reset this character.
-
- - Variable: rl_dequote_func_t * rl_filename_dequoting_function
- A pointer to a function that will remove application-specific
- quoting characters from a filename before completion is attempted,
- so those characters do not interfere with matching the text
- against names in the filesystem. It is called with TEXT, the text
- of the word to be dequoted, and QUOTE_CHAR, which is the quoting
- character that delimits the filename (usually `'' or `"'). If
- QUOTE_CHAR is zero, the filename was not in an embedded string.
-
- - Variable: rl_linebuf_func_t * rl_char_is_quoted_p
- A pointer to a function to call that determines whether or not a
- specific character in the line buffer is quoted, according to
- whatever quoting mechanism the program calling Readline uses. The
- function is called with two arguments: TEXT, the text of the line,
- and INDEX, the index of the character in the line. It is used to
- decide whether a character found in
- `rl_completer_word_break_characters' should be used to break words
- for the completer.
-
- - Variable: rl_compignore_func_t * rl_ignore_some_completions_function
- This function, if defined, is called by the completer when real
- filename completion is done, after all the matching names have
- been generated. It is passed a `NULL' terminated array of matches.
- The first element (`matches[0]') is the maximal substring common
- to all matches. This function can re-arrange the list of matches
- as required, but each element deleted from the array must be freed.
-
- - Variable: rl_icppfunc_t * rl_directory_completion_hook
- This function, if defined, is allowed to modify the directory
- portion of filenames Readline completes. It is called with the
- address of a string (the current directory name) as an argument,
- and may modify that string. If the string is replaced with a new
- string, the old value should be freed. Any modified directory
- name should have a trailing slash. The modified value will be
- displayed as part of the completion, replacing the directory
- portion of the pathname the user typed. It returns an integer
- that should be non-zero if the function modifies its directory
- argument. It could be used to expand symbolic links or shell
- variables in pathnames.
-
- - Variable: rl_compdisp_func_t * rl_completion_display_matches_hook
- If non-zero, then this is the address of a function to call when
- completing a word would normally display the list of possible
- matches. This function is called in lieu of Readline displaying
- the list. It takes three arguments: (`char **'MATCHES, `int'
- NUM_MATCHES, `int' MAX_LENGTH) where MATCHES is the array of
- matching strings, NUM_MATCHES is the number of strings in that
- array, and MAX_LENGTH is the length of the longest string in that
- array. Readline provides a convenience function,
- `rl_display_match_list', that takes care of doing the display to
- Readline's output stream. That function may be called from this
- hook.
-
- - Variable: const char * rl_basic_word_break_characters
- The basic list of characters that signal a break between words for
- the completer routine. The default value of this variable is the
- characters which break words for completion in Bash: `"
- \t\n\"\\'`@$><=;|&{("'.
-
- - Variable: const char * rl_basic_quote_characters
- A list of quote characters which can cause a word break.
-
- - Variable: const char * rl_completer_word_break_characters
- The list of characters that signal a break between words for
- `rl_complete_internal()'. The default list is the value of
- `rl_basic_word_break_characters'.
-
- - Variable: const char * rl_completer_quote_characters
- A list of characters which can be used to quote a substring of the
- line. Completion occurs on the entire substring, and within the
- substring `rl_completer_word_break_characters' are treated as any
- other character, unless they also appear within this list.
-
- - Variable: const char * rl_filename_quote_characters
- A list of characters that cause a filename to be quoted by the
- completer when they appear in a completed filename. The default
- is the null string.
-
- - Variable: const char * rl_special_prefixes
- The list of characters that are word break characters, but should
- be left in TEXT when it is passed to the completion function.
- Programs can use this to help determine what kind of completing to
- do. For instance, Bash sets this variable to "$@" so that it can
- complete shell variables and hostnames.
-
- - Variable: int rl_completion_query_items
- Up to this many items will be displayed in response to a
- possible-completions call. After that, we ask the user if she is
- sure she wants to see them all. The default value is 100.
-
- - Variable: int rl_completion_append_character
- When a single completion alternative matches at the end of the
- command line, this character is appended to the inserted
- completion text. The default is a space character (` '). Setting
- this to the null character (`\0') prevents anything being appended
- automatically. This can be changed in custom completion functions
- to provide the "most sensible word separator character" according
- to an application-specific command line syntax specification.
-
- - Variable: int rl_completion_suppress_append
- If non-zero, RL_COMPLETION_APPEND_CHARACTER is not appended to
- matches at the end of the command line, as described above. It is
- set to 0 before any application-specific completion function is
- called.
-
- - Variable: int rl_completion_mark_symlink_dirs
- If non-zero, a slash will be appended to completed filenames that
- are symbolic links to directory names, subject to the value of the
- user-settable MARK-DIRECTORIES variable. This variable exists so
- that application completion functions can override the user's
- global preference (set via the MARK-SYMLINKED-DIRECTORIES Readline
- variable) if appropriate. This variable is set to the user's
- preference before any application completion function is called,
- so unless that function modifies the value, the user's preferences
- are honored.
-
- - Variable: int rl_ignore_completion_duplicates
- If non-zero, then duplicates in the matches are removed. The
- default is 1.
-
- - Variable: int rl_filename_completion_desired
- Non-zero means that the results of the matches are to be treated as
- filenames. This is _always_ zero on entry, and can only be changed
- within a completion entry generator function. If it is set to a
- non-zero value, directory names have a slash appended and Readline
- attempts to quote completed filenames if they contain any
- characters in `rl_filename_quote_characters' and
- `rl_filename_quoting_desired' is set to a non-zero value.
-
- - Variable: int rl_filename_quoting_desired
- Non-zero means that the results of the matches are to be quoted
- using double quotes (or an application-specific quoting mechanism)
- if the completed filename contains any characters in
- `rl_filename_quote_chars'. This is _always_ non-zero on entry,
- and can only be changed within a completion entry generator
- function. The quoting is effected via a call to the function
- pointed to by `rl_filename_quoting_function'.
-
- - Variable: int rl_attempted_completion_over
- If an application-specific completion function assigned to
- `rl_attempted_completion_function' sets this variable to a non-zero
- value, Readline will not perform its default filename completion
- even if the application's completion function returns no matches.
- It should be set only by an application's completion function.
-
- - Variable: int rl_completion_type
- Set to a character describing the type of completion Readline is
- currently attempting; see the description of
- `rl_complete_internal()' (*note Completion Functions::) for the
- list of characters.
-
- - Variable: int rl_inhibit_completion
- If this variable is non-zero, completion is inhibited. The
- completion character will be inserted as any other bound to
- `self-insert'.
-
-
-File: readline.info, Node: A Short Completion Example, Prev: Completion Variables, Up: Custom Completers
-
-A Short Completion Example
---------------------------
-
- Here is a small application demonstrating the use of the GNU Readline
-library. It is called `fileman', and the source code resides in
-`examples/fileman.c'. This sample application provides completion of
-command names, line editing features, and access to the history list.
-
- /* fileman.c -- A tiny application which demonstrates how to use the
- GNU Readline library. This application interactively allows users
- to manipulate files and their modes. */
-
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/file.h>
- #include <sys/stat.h>
- #include <sys/errno.h>
-
- #include <readline/readline.h>
- #include <readline/history.h>
-
- extern char *xmalloc ();
-
- /* The names of functions that actually do the manipulation. */
- int com_list __P((char *));
- int com_view __P((char *));
- int com_rename __P((char *));
- int com_stat __P((char *));
- int com_pwd __P((char *));
- int com_delete __P((char *));
- int com_help __P((char *));
- int com_cd __P((char *));
- int com_quit __P((char *));
-
- /* A structure which contains information on the commands this program
- can understand. */
-
- typedef struct {
- char *name; /* User printable name of the function. */
- rl_icpfunc_t *func; /* Function to call to do the job. */
- char *doc; /* Documentation for this function. */
- } COMMAND;
-
- COMMAND commands[] = {
- { "cd", com_cd, "Change to directory DIR" },
- { "delete", com_delete, "Delete FILE" },
- { "help", com_help, "Display this text" },
- { "?", com_help, "Synonym for `help'" },
- { "list", com_list, "List files in DIR" },
- { "ls", com_list, "Synonym for `list'" },
- { "pwd", com_pwd, "Print the current working directory" },
- { "quit", com_quit, "Quit using Fileman" },
- { "rename", com_rename, "Rename FILE to NEWNAME" },
- { "stat", com_stat, "Print out statistics on FILE" },
- { "view", com_view, "View the contents of FILE" },
- { (char *)NULL, (rl_icpfunc_t *)NULL, (char *)NULL }
- };
-
- /* Forward declarations. */
- char *stripwhite ();
- COMMAND *find_command ();
-
- /* The name of this program, as taken from argv[0]. */
- char *progname;
-
- /* When non-zero, this means the user is done using this program. */
- int done;
-
- char *
- dupstr (s)
- int s;
- {
- char *r;
-
- r = xmalloc (strlen (s) + 1);
- strcpy (r, s);
- return (r);
- }
-
- main (argc, argv)
- int argc;
- char **argv;
- {
- char *line, *s;
-
- progname = argv[0];
-
- initialize_readline (); /* Bind our completer. */
-
- /* Loop reading and executing lines until the user quits. */
- for ( ; done == 0; )
- {
- line = readline ("FileMan: ");
-
- if (!line)
- break;
-
- /* Remove leading and trailing whitespace from the line.
- Then, if there is anything left, add it to the history list
- and execute it. */
- s = stripwhite (line);
-
- if (*s)
- {
- add_history (s);
- execute_line (s);
- }
-
- free (line);
- }
- exit (0);
- }
-
- /* Execute a command line. */
- int
- execute_line (line)
- char *line;
- {
- register int i;
- COMMAND *command;
- char *word;
-
- /* Isolate the command word. */
- i = 0;
- while (line[i] && whitespace (line[i]))
- i++;
- word = line + i;
-
- while (line[i] && !whitespace (line[i]))
- i++;
-
- if (line[i])
- line[i++] = '\0';
-
- command = find_command (word);
-
- if (!command)
- {
- fprintf (stderr, "%s: No such command for FileMan.\n", word);
- return (-1);
- }
-
- /* Get argument to command, if any. */
- while (whitespace (line[i]))
- i++;
-
- word = line + i;
-
- /* Call the function. */
- return ((*(command->func)) (word));
- }
-
- /* Look up NAME as the name of a command, and return a pointer to that
- command. Return a NULL pointer if NAME isn't a command name. */
- COMMAND *
- find_command (name)
- char *name;
- {
- register int i;
-
- for (i = 0; commands[i].name; i++)
- if (strcmp (name, commands[i].name) == 0)
- return (&commands[i]);
-
- return ((COMMAND *)NULL);
- }
-
- /* Strip whitespace from the start and end of STRING. Return a pointer
- into STRING. */
- char *
- stripwhite (string)
- char *string;
- {
- register char *s, *t;
-
- for (s = string; whitespace (*s); s++)
- ;
-
- if (*s == 0)
- return (s);
-
- t = s + strlen (s) - 1;
- while (t > s && whitespace (*t))
- t--;
- *++t = '\0';
-
- return s;
- }
-
- /* **************************************************************** */
- /* */
- /* Interface to Readline Completion */
- /* */
- /* **************************************************************** */
-
- char *command_generator __P((const char *, int));
- char **fileman_completion __P((const char *, int, int));
-
- /* Tell the GNU Readline library how to complete. We want to try to
- complete on command names if this is the first word in the line, or
- on filenames if not. */
- initialize_readline ()
- {
- /* Allow conditional parsing of the ~/.inputrc file. */
- rl_readline_name = "FileMan";
-
- /* Tell the completer that we want a crack first. */
- rl_attempted_completion_function = fileman_completion;
- }
-
- /* Attempt to complete on the contents of TEXT. START and END
- bound the region of rl_line_buffer that contains the word to
- complete. TEXT is the word to complete. We can use the entire
- contents of rl_line_buffer in case we want to do some simple
- parsing. Returnthe array of matches, or NULL if there aren't any. */
- char **
- fileman_completion (text, start, end)
- const char *text;
- int start, end;
- {
- char **matches;
-
- matches = (char **)NULL;
-
- /* If this word is at the start of the line, then it is a command
- to complete. Otherwise it is the name of a file in the current
- directory. */
- if (start == 0)
- matches = rl_completion_matches (text, command_generator);
-
- return (matches);
- }
-
- /* Generator function for command completion. STATE lets us
- know whether to start from scratch; without any state
- (i.e. STATE == 0), then we start at the top of the list. */
- char *
- command_generator (text, state)
- const char *text;
- int state;
- {
- static int list_index, len;
- char *name;
-
- /* If this is a new word to complete, initialize now. This
- includes saving the length of TEXT for efficiency, and
- initializing the index variable to 0. */
- if (!state)
- {
- list_index = 0;
- len = strlen (text);
- }
-
- /* Return the next name which partially matches from the
- command list. */
- while (name = commands[list_index].name)
- {
- list_index++;
-
- if (strncmp (name, text, len) == 0)
- return (dupstr(name));
- }
-
- /* If no names matched, then return NULL. */
- return ((char *)NULL);
- }
-
- /* **************************************************************** */
- /* */
- /* FileMan Commands */
- /* */
- /* **************************************************************** */
-
- /* String to pass to system (). This is for the LIST, VIEW and RENAME
- commands. */
- static char syscom[1024];
-
- /* List the file(s) named in arg. */
- com_list (arg)
- char *arg;
- {
- if (!arg)
- arg = "";
-
- sprintf (syscom, "ls -FClg %s", arg);
- return (system (syscom));
- }
-
- com_view (arg)
- char *arg;
- {
- if (!valid_argument ("view", arg))
- return 1;
-
- sprintf (syscom, "more %s", arg);
- return (system (syscom));
- }
-
- com_rename (arg)
- char *arg;
- {
- too_dangerous ("rename");
- return (1);
- }
-
- com_stat (arg)
- char *arg;
- {
- struct stat finfo;
-
- if (!valid_argument ("stat", arg))
- return (1);
-
- if (stat (arg, &finfo) == -1)
- {
- perror (arg);
- return (1);
- }
-
- printf ("Statistics for `%s':\n", arg);
-
- printf ("%s has %d link%s, and is %d byte%s in length.\n", arg,
- finfo.st_nlink,
- (finfo.st_nlink == 1) ? "" : "s",
- finfo.st_size,
- (finfo.st_size == 1) ? "" : "s");
- printf ("Inode Last Change at: %s", ctime (&finfo.st_ctime));
- printf (" Last access at: %s", ctime (&finfo.st_atime));
- printf (" Last modified at: %s", ctime (&finfo.st_mtime));
- return (0);
- }
-
- com_delete (arg)
- char *arg;
- {
- too_dangerous ("delete");
- return (1);
- }
-
- /* Print out help for ARG, or for all of the commands if ARG is
- not present. */
- com_help (arg)
- char *arg;
- {
- register int i;
- int printed = 0;
-
- for (i = 0; commands[i].name; i++)
- {
- if (!*arg || (strcmp (arg, commands[i].name) == 0))
- {
- printf ("%s\t\t%s.\n", commands[i].name, commands[i].doc);
- printed++;
- }
- }
-
- if (!printed)
- {
- printf ("No commands match `%s'. Possibilties are:\n", arg);
-
- for (i = 0; commands[i].name; i++)
- {
- /* Print in six columns. */
- if (printed == 6)
- {
- printed = 0;
- printf ("\n");
- }
-
- printf ("%s\t", commands[i].name);
- printed++;
- }
-
- if (printed)
- printf ("\n");
- }
- return (0);
- }
-
- /* Change to the directory ARG. */
- com_cd (arg)
- char *arg;
- {
- if (chdir (arg) == -1)
- {
- perror (arg);
- return 1;
- }
-
- com_pwd ("");
- return (0);
- }
-
- /* Print out the current working directory. */
- com_pwd (ignore)
- char *ignore;
- {
- char dir[1024], *s;
-
- s = getcwd (dir, sizeof(dir) - 1);
- if (s == 0)
- {
- printf ("Error getting pwd: %s\n", dir);
- return 1;
- }
-
- printf ("Current directory is %s\n", dir);
- return 0;
- }
-
- /* The user wishes to quit using this program. Just set DONE
- non-zero. */
- com_quit (arg)
- char *arg;
- {
- done = 1;
- return (0);
- }
-
- /* Function which tells you that you can't do this. */
- too_dangerous (caller)
- char *caller;
- {
- fprintf (stderr,
- "%s: Too dangerous for me to distribute.\n"
- caller);
- fprintf (stderr, "Write it yourself.\n");
- }
-
- /* Return non-zero if ARG is a valid argument for CALLER,
- else print an error message and return zero. */
- int
- valid_argument (caller, arg)
- char *caller, *arg;
- {
- if (!arg || !*arg)
- {
- fprintf (stderr, "%s: Argument required.\n", caller);
- return (0);
- }
-
- return (1);
- }
-
-
-File: readline.info, Node: Concept Index, Next: Function and Variable Index, Prev: Programming with GNU Readline, Up: Top
-
-Concept Index
-*************
-
-* Menu:
-
-* command editing: Readline Bare Essentials.
-* editing command lines: Readline Bare Essentials.
-* initialization file, readline: Readline Init File.
-* interaction, readline: Readline Interaction.
-* kill ring: Readline Killing Commands.
-* killing text: Readline Killing Commands.
-* notation, readline: Readline Bare Essentials.
-* readline, function: Basic Behavior.
-* variables, readline: Readline Init File Syntax.
-* yanking text: Readline Killing Commands.
-
-
-File: readline.info, Node: Function and Variable Index, Prev: Concept Index, Up: Top
-
-Function and Variable Index
-***************************
-
-* Menu:
-
-* _rl_digit_p: Utility Functions.
-* _rl_digit_value: Utility Functions.
-* _rl_lowercase_p: Utility Functions.
-* _rl_to_lower: Utility Functions.
-* _rl_to_upper: Utility Functions.
-* _rl_uppercase_p: Utility Functions.
-* abort (C-g): Miscellaneous Commands.
-* accept-line (Newline or Return): Commands For History.
-* backward-char (C-b): Commands For Moving.
-* backward-delete-char (Rubout): Commands For Text.
-* backward-kill-line (C-x Rubout): Commands For Killing.
-* backward-kill-word (M-<DEL>): Commands For Killing.
-* backward-word (M-b): Commands For Moving.
-* beginning-of-history (M-<): Commands For History.
-* beginning-of-line (C-a): Commands For Moving.
-* bell-style: Readline Init File Syntax.
-* call-last-kbd-macro (C-x e): Keyboard Macros.
-* capitalize-word (M-c): Commands For Text.
-* character-search (C-]): Miscellaneous Commands.
-* character-search-backward (M-C-]): Miscellaneous Commands.
-* clear-screen (C-l): Commands For Moving.
-* comment-begin: Readline Init File Syntax.
-* complete (<TAB>): Commands For Completion.
-* completion-query-items: Readline Init File Syntax.
-* convert-meta: Readline Init File Syntax.
-* copy-backward-word (): Commands For Killing.
-* copy-forward-word (): Commands For Killing.
-* copy-region-as-kill (): Commands For Killing.
-* delete-char (C-d): Commands For Text.
-* delete-char-or-list (): Commands For Completion.
-* delete-horizontal-space (): Commands For Killing.
-* digit-argument (M-0, M-1, ... M--): Numeric Arguments.
-* disable-completion: Readline Init File Syntax.
-* do-uppercase-version (M-a, M-b, M-X, ...): Miscellaneous Commands.
-* downcase-word (M-l): Commands For Text.
-* dump-functions (): Miscellaneous Commands.
-* dump-macros (): Miscellaneous Commands.
-* dump-variables (): Miscellaneous Commands.
-* editing-mode: Readline Init File Syntax.
-* enable-keypad: Readline Init File Syntax.
-* end-kbd-macro (C-x )): Keyboard Macros.
-* end-of-history (M->): Commands For History.
-* end-of-line (C-e): Commands For Moving.
-* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
-* expand-tilde: Readline Init File Syntax.
-* forward-backward-delete-char (): Commands For Text.
-* forward-char (C-f): Commands For Moving.
-* forward-search-history (C-s): Commands For History.
-* forward-word (M-f): Commands For Moving.
-* history-preserve-point: Readline Init File Syntax.
-* history-search-backward (): Commands For History.
-* history-search-forward (): Commands For History.
-* horizontal-scroll-mode: Readline Init File Syntax.
-* input-meta: Readline Init File Syntax.
-* insert-comment (M-#): Miscellaneous Commands.
-* insert-completions (M-*): Commands For Completion.
-* isearch-terminators: Readline Init File Syntax.
-* keymap: Readline Init File Syntax.
-* kill-line (C-k): Commands For Killing.
-* kill-region (): Commands For Killing.
-* kill-whole-line (): Commands For Killing.
-* kill-word (M-d): Commands For Killing.
-* mark-modified-lines: Readline Init File Syntax.
-* mark-symlinked-directories: Readline Init File Syntax.
-* match-hidden-files: Readline Init File Syntax.
-* menu-complete (): Commands For Completion.
-* meta-flag: Readline Init File Syntax.
-* next-history (C-n): Commands For History.
-* non-incremental-forward-search-history (M-n): Commands For History.
-* non-incremental-reverse-search-history (M-p): Commands For History.
-* output-meta: Readline Init File Syntax.
-* overwrite-mode (): Commands For Text.
-* page-completions: Readline Init File Syntax.
-* possible-completions (M-?): Commands For Completion.
-* prefix-meta (<ESC>): Miscellaneous Commands.
-* previous-history (C-p): Commands For History.
-* quoted-insert (C-q or C-v): Commands For Text.
-* re-read-init-file (C-x C-r): Miscellaneous Commands.
-* readline: Basic Behavior.
-* redraw-current-line (): Commands For Moving.
-* reverse-search-history (C-r): Commands For History.
-* revert-line (M-r): Miscellaneous Commands.
-* rl_add_defun: Function Naming.
-* rl_add_funmap_entry: Associating Function Names and Bindings.
-* rl_add_undo: Allowing Undoing.
-* rl_alphabetic: Utility Functions.
-* rl_already_prompted: Readline Variables.
-* rl_attempted_completion_function: Completion Variables.
-* rl_attempted_completion_over: Completion Variables.
-* rl_basic_quote_characters: Completion Variables.
-* rl_basic_word_break_characters: Completion Variables.
-* rl_begin_undo_group: Allowing Undoing.
-* rl_bind_key: Binding Keys.
-* rl_bind_key_in_map: Binding Keys.
-* rl_binding_keymap: Readline Variables.
-* rl_callback_handler_install: Alternate Interface.
-* rl_callback_handler_remove: Alternate Interface.
-* rl_callback_read_char: Alternate Interface.
-* rl_catch_signals: Readline Signal Handling.
-* rl_catch_sigwinch: Readline Signal Handling.
-* rl_char_is_quoted_p: Completion Variables.
-* rl_cleanup_after_signal: Readline Signal Handling.
-* rl_clear_message: Redisplay.
-* rl_clear_pending_input: Character Input.
-* rl_clear_signals: Readline Signal Handling.
-* rl_complete <1>: How Completing Works.
-* rl_complete: Completion Functions.
-* rl_complete_internal: Completion Functions.
-* rl_completer_quote_characters: Completion Variables.
-* rl_completer_word_break_characters: Completion Variables.
-* rl_completion_append_character: Completion Variables.
-* rl_completion_display_matches_hook: Completion Variables.
-* rl_completion_entry_function <1>: Completion Variables.
-* rl_completion_entry_function: How Completing Works.
-* rl_completion_mark_symlink_dirs: Completion Variables.
-* rl_completion_matches: Completion Functions.
-* rl_completion_mode: Completion Functions.
-* rl_completion_query_items: Completion Variables.
-* rl_completion_suppress_append: Completion Variables.
-* rl_completion_type: Completion Variables.
-* rl_copy_keymap: Keymaps.
-* rl_copy_text: Modifying Text.
-* rl_crlf: Redisplay.
-* rl_delete_text: Modifying Text.
-* rl_deprep_term_function: Readline Variables.
-* rl_deprep_terminal: Terminal Management.
-* rl_ding: Utility Functions.
-* rl_directory_completion_hook: Completion Variables.
-* rl_discard_keymap: Keymaps.
-* rl_dispatching: Readline Variables.
-* rl_display_match_list: Utility Functions.
-* rl_do_undo: Allowing Undoing.
-* rl_done: Readline Variables.
-* rl_editing_mode: Readline Variables.
-* rl_end: Readline Variables.
-* rl_end_undo_group: Allowing Undoing.
-* rl_erase_empty_line: Readline Variables.
-* rl_event_hook: Readline Variables.
-* rl_execute_next: Character Input.
-* rl_executing_keymap: Readline Variables.
-* rl_executing_macro: Readline Variables.
-* rl_expand_prompt: Redisplay.
-* rl_explicit_arg: Readline Variables.
-* rl_extend_line_buffer: Utility Functions.
-* rl_filename_completion_desired: Completion Variables.
-* rl_filename_completion_function: Completion Functions.
-* rl_filename_dequoting_function: Completion Variables.
-* rl_filename_quote_characters: Completion Variables.
-* rl_filename_quoting_desired: Completion Variables.
-* rl_filename_quoting_function: Completion Variables.
-* rl_forced_update_display: Redisplay.
-* rl_free_line_state: Readline Signal Handling.
-* rl_free_undo_list: Allowing Undoing.
-* rl_function_dumper: Associating Function Names and Bindings.
-* rl_function_of_keyseq: Associating Function Names and Bindings.
-* rl_funmap_names: Associating Function Names and Bindings.
-* rl_generic_bind: Binding Keys.
-* rl_get_keymap: Keymaps.
-* rl_get_keymap_by_name: Keymaps.
-* rl_get_keymap_name: Keymaps.
-* rl_get_screen_size: Readline Signal Handling.
-* rl_get_termcap: Miscellaneous Functions.
-* rl_getc: Character Input.
-* rl_getc_function: Readline Variables.
-* rl_gnu_readline_p: Readline Variables.
-* rl_ignore_completion_duplicates: Completion Variables.
-* rl_ignore_some_completions_function: Completion Variables.
-* rl_inhibit_completion: Completion Variables.
-* rl_initialize: Utility Functions.
-* rl_insert_completions: Completion Functions.
-* rl_insert_text: Modifying Text.
-* rl_instream: Readline Variables.
-* rl_invoking_keyseqs: Associating Function Names and Bindings.
-* rl_invoking_keyseqs_in_map: Associating Function Names and Bindings.
-* rl_kill_text: Modifying Text.
-* rl_last_func: Readline Variables.
-* rl_library_version: Readline Variables.
-* rl_line_buffer: Readline Variables.
-* rl_list_funmap_names: Associating Function Names and Bindings.
-* rl_macro_bind: Miscellaneous Functions.
-* rl_macro_dumper: Miscellaneous Functions.
-* rl_make_bare_keymap: Keymaps.
-* rl_make_keymap: Keymaps.
-* rl_mark: Readline Variables.
-* rl_message: Redisplay.
-* rl_modifying: Allowing Undoing.
-* rl_named_function: Associating Function Names and Bindings.
-* rl_num_chars_to_read: Readline Variables.
-* rl_numeric_arg: Readline Variables.
-* rl_on_new_line: Redisplay.
-* rl_on_new_line_with_prompt: Redisplay.
-* rl_outstream: Readline Variables.
-* rl_parse_and_bind: Binding Keys.
-* rl_pending_input: Readline Variables.
-* rl_point: Readline Variables.
-* rl_possible_completions: Completion Functions.
-* rl_pre_input_hook: Readline Variables.
-* rl_prep_term_function: Readline Variables.
-* rl_prep_terminal: Terminal Management.
-* rl_prompt: Readline Variables.
-* rl_push_macro_input: Modifying Text.
-* rl_read_init_file: Binding Keys.
-* rl_read_key: Character Input.
-* rl_readline_name: Readline Variables.
-* rl_readline_state: Readline Variables.
-* rl_readline_version: Readline Variables.
-* rl_redisplay: Redisplay.
-* rl_redisplay_function: Readline Variables.
-* rl_replace_line: Utility Functions.
-* rl_reset_after_signal: Readline Signal Handling.
-* rl_reset_line_state: Redisplay.
-* rl_reset_terminal: Terminal Management.
-* rl_resize_terminal: Readline Signal Handling.
-* rl_restore_prompt: Redisplay.
-* rl_save_prompt: Redisplay.
-* rl_set_key: Binding Keys.
-* rl_set_keyboard_input_timeout: Character Input.
-* rl_set_keymap: Keymaps.
-* rl_set_paren_blink_timeout: Miscellaneous Functions.
-* rl_set_prompt: Redisplay.
-* rl_set_screen_size: Readline Signal Handling.
-* rl_set_signals: Readline Signal Handling.
-* rl_show_char: Redisplay.
-* rl_special_prefixes: Completion Variables.
-* rl_startup_hook: Readline Variables.
-* rl_stuff_char: Character Input.
-* rl_terminal_name: Readline Variables.
-* rl_tty_set_default_bindings: Terminal Management.
-* rl_unbind_command_in_map: Binding Keys.
-* rl_unbind_function_in_map: Binding Keys.
-* rl_unbind_key: Binding Keys.
-* rl_unbind_key_in_map: Binding Keys.
-* rl_username_completion_function: Completion Functions.
-* rl_variable_bind: Miscellaneous Functions.
-* rl_variable_dumper: Miscellaneous Functions.
-* self-insert (a, b, A, 1, !, ...): Commands For Text.
-* set-mark (C-@): Miscellaneous Commands.
-* show-all-if-ambiguous: Readline Init File Syntax.
-* start-kbd-macro (C-x (): Keyboard Macros.
-* transpose-chars (C-t): Commands For Text.
-* transpose-words (M-t): Commands For Text.
-* undo (C-_ or C-x C-u): Miscellaneous Commands.
-* universal-argument (): Numeric Arguments.
-* unix-line-discard (C-u): Commands For Killing.
-* unix-word-rubout (C-w): Commands For Killing.
-* upcase-word (M-u): Commands For Text.
-* visible-stats: Readline Init File Syntax.
-* yank (C-y): Commands For Killing.
-* yank-last-arg (M-. or M-_): Commands For History.
-* yank-nth-arg (M-C-y): Commands For History.
-* yank-pop (M-y): Commands For Killing.
-
-
-
-Tag Table:
-Node: Top1164
-Node: Command Line Editing1763
-Node: Introduction and Notation2414
-Node: Readline Interaction4032
-Node: Readline Bare Essentials5219
-Node: Readline Movement Commands7000
-Node: Readline Killing Commands7957
-Node: Readline Arguments9866
-Node: Searching10902
-Node: Readline Init File13045
-Node: Readline Init File Syntax14106
-Node: Conditional Init Constructs24989
-Node: Sample Init File27514
-Node: Bindable Readline Commands30698
-Node: Commands For Moving31748
-Node: Commands For History32597
-Node: Commands For Text35455
-Node: Commands For Killing38169
-Node: Numeric Arguments40120
-Node: Commands For Completion41248
-Node: Keyboard Macros42780
-Node: Miscellaneous Commands43339
-Node: Readline vi Mode46688
-Node: Programming with GNU Readline48506
-Node: Basic Behavior49474
-Node: Custom Functions52904
-Node: Readline Typedefs54382
-Node: Function Writing56011
-Node: Readline Variables57219
-Node: Readline Convenience Functions66642
-Node: Function Naming67624
-Node: Keymaps68876
-Node: Binding Keys70632
-Node: Associating Function Names and Bindings73558
-Node: Allowing Undoing75803
-Node: Redisplay78338
-Node: Modifying Text81409
-Node: Character Input82638
-Node: Terminal Management84418
-Node: Utility Functions85593
-Node: Miscellaneous Functions87932
-Node: Alternate Interface89996
-Node: A Readline Example92141
-Node: Readline Signal Handling94078
-Node: Custom Completers99681
-Node: How Completing Works100396
-Node: Completion Functions103394
-Node: Completion Variables106778
-Node: A Short Completion Example117049
-Node: Concept Index129602
-Node: Function and Variable Index130424
-
-End Tag Table
diff --git a/readline-doc-4.3/doc/readline.ps b/readline-doc-4.3/doc/readline.ps
deleted file mode 100644
index 21ca2ca..0000000
--- a/readline-doc-4.3/doc/readline.ps
+++ /dev/null
@@ -1,5200 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: readline.dvi
-%%Pages: 66
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o readline.ps readline.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (readline.dvi)
-@start
-%DVIPSBitmapFont: Fa cmbxti10 14.4 1
-/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmsl9 9 1
-/Fb 1 121 df<383FC7E038078380EB0200EA038413C8EA01D8EA00F05B7F1201133812
-02487EEA081E123838FC3FC013107F8F14>120 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmsltt10 9 4
-/Fc 4 78 df<EAFFFC13FE13FC0F037C8C14>45 D<EA01E0EA07F8EA0E3CEA1C1CEA180E
-12381270A312E0A4131CA31338A21370EA70E01271EA3F80EA1F000F177C9614>48
-D<134013E0EA01C01203120F123D12111201EA0380A6EA0700A6120EEAFFE0A20B177B96
-14>I<381F81F813C1380FC3E0EA0EC213C6A213CE13CC381CCDC013DD13D9A213F1A238
-38E3801303A53870070038FC0FC0A215177F9614>77 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmtt9 9 47
-/Fd 47 127 df<126012F0AD12601200A4126012F0A212600417789614>33
-D<EA071CA5B51280A27E380E3800A7387FFF80B5FCA2381C7000A511177F9614>35
-D<EA01801203EA06005A121C121812385AA35AA91270A37E1218121C120C7EEA03801201
-091D799914>40 D<128012C01260123012381218121C120EA31207A9120EA3121C121812
-381230126012C01280081D7C9914>I<EA0380A3EA638CEAF39EEA7FFCEA3FF8EA0FE0A2
-EA3FF8EA7FFCEAF39EEA638CEA0380A30F107E9214>I<127012F812FCA2127C120C1218
-123012E012C0060A798414>44 D<EAFFFEA30F037E8C14>I<127012F8A3127005057984
-14>I<1203A25A5A123F12F712471207AEEA7FF0A20C177C9614>49
-D<1306131E133E13F8EA01F0EA03C0EA0F80EA1F00123C12F85A7E123C121FEA0F80EA03
-C0EA01F0EA00F8133E131E13060F157E9514>60 D<12C012F07E123E7EEA0780EA03E0EA
-01F0EA0078133E131E133E1378EA01F0EA03E0EA0780EA1F00123E12F85A12C00F157E95
-14>62 D<EA1FE0EA3FF8EA701CEAE00EA21240EA003C137013E0EA01C0EA0380A41300C7
-FCA41203EA0780A2EA03000F177E9614>I<EA01E0EA07F0EA0E38EA181CEA38FC1271EA
-731E1277EAEE0EA7EA771CEA7318EA71F0EA38E0EA1806EA0E1EEA07F8EA01F00F177E96
-14>I<EA01C0487EA21360A2EA0770A4EA0630EA0E38A4487EEA1FFCA2EA1C1CA2487EA2
-38FE3F80A211177F9614>I<3801F180EA07FFEA0E1FEA1C071238EA7003A348C7FCA738
-700380A338380700121CEA0E0EEA07FCEA01F011177F9614>67 D<38FC1F80A2007C1300
-EA7637A4EA7777A2EA7367A313E7EA71C7A2EA7007A638F80F80A211177F9614>77
-D<38FE3F80A2383E0E00123BA4138E1239A213CEA31238A213EE136EA4133E12FEA21117
-7F9614>I<EAFFE013F8EA383C131C7FA45B133CEA3FF85BEA38387FA51480EB1DC0A238
-FE0F80EB070012177F9614>82 D<EAFFE0A21200B3A712FFA20B1D7F9914>93
-D<EAFFFEA30F037E7E14>95 D<EA1FC0EA7FF0EA7078EA2018EA001CA2EA07FC121FEA3C
-1C127012E0A3EA707C383FFF80EA0F8F11107E8F14>97 D<12FCA2121CA513F8EA1DFEEA
-1F07EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA0CF81217809614>I<
-EA03F8EA0FFEEA1C0EEA3804EA7000126012E0A412601270EA380EEA1C1EEA0FFCEA03F0
-0F107E8F14>I<137EA2130EA5EA07CEEA0FFEEA1C3EEA301EEA700E12E0A61270EA301E
-EA383E381FEFC0EA07CF12177F9614>I<EA07E0EA0FF0EA1C38EA301CEA700CEAE00EA2
-EAFFFEA2EAE00012601270EA380EEA1C1EEA0FFCEA03F00F107E8F14>I<13FCEA01FEEA
-038EEA07041300A3EA7FFE12FFEA0700ACEAFFF8A20F177F9614>I<EA07CF381FFF80EA
-383B38301800EA701CA3EA3018EA3838EA3FF0EA37C00070C7FCA2EA3FF86C7E487EEA70
-0F38E00380A438700700EA3C1EEA1FFCEA07F011197F8F14>I<12FCA2121CA51378EA1D
-FEEA1F86EA1E07121CAA38FF8FE0A21317809614>I<1206120FA21206C7FCA4B4FCA212
-07ACEAFFF8A20D187C9714>I<136013F0A213601300A4EA1FF0A2EA0070B2EA40E0EAE0
-C0EA7F80EA3F000C207E9714>I<12FCA2121CA5EBFF80A2EB1C005B5B5BEA1DC0EA1FE0
-A2EA1E70EA1C38133C131C7F38FF1F80A21117809614>I<EAFF80A21203B3EAFFFEA20F
-177E9614>I<EAFB8EEAFFDF383CF380A2EA38E3AA38FEFBE013791310808F14>I<EAFC78
-EAFDFEEA1F86EA1E07121CAA38FF8FE0A21310808F14>I<EA07C0EA1FF0EA3C78EA701C
-A2EAE00EA6EA701CEA783CEA3C78EA1FF0EA07C00F107E8F14>I<EAFCF8EAFDFEEA1F07
-EA1E03001C1380EB01C0A6EB0380001E1300EA1F0EEA1DFCEA1CF890C7FCA6B47EA21218
-808F14>I<EA03E7EA0FF7EA1C1FEA300F1270487EA6EA700F1230EA1C3FEA0FF7EA07C7
-EA0007A6EB3FE0A213187F8F14>I<EAFE1FEB7F80EA0EE3380F810090C7FCA2120EA8EA
-FFF0A211107F8F14>I<EA0FD8EA3FF8EA603812C0A2EAF000EA7F80EA3FF0EA07F8EA00
-1CEA600612E012F0EAF81CEAFFF8EACFE00F107E8F14>I<1206120EA4EA7FFC12FFEA0E
-00A8130EA3131CEA07F8EA01F00F157F9414>I<EAFC3FA2EA1C07AB131F380FFFE0EA03
-E71310808F14>I<38FE3F80A2383C1E00EA1C1CA36C5AA3EA0630EA0770A36C5AA31110
-7F8F14>I<38FE3F80A238700700EA380EA3EA39CEA3EA1B6C121AA3EA1E7CA2EA0E3811
-107F8F14>I<EA7E3FA2EA1E3CEA0E78EA07705B12036C5A12037FEA0770EA0E78133848
-7E38FE3F80A211107F8F14>I<38FE3F80A2381C0E005BA2120E5BA212071330A2EA0370
-A25B1201A25BA3485A12730077C7FC127E123C11187F8F14>I<EA3FFF5AEA700E131C13
-38EA007013E0EA01C0EA0380EA0700120EEA1C0712381270B5FCA210107F8F14>I<EA1C
-10EA3F38EAE7E0EA41C00D047D9614>126 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmti9 9 1
-/Fe 1 47 df<1230127812F0126005047C830C>46 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmr9 9 39
-/Ff 39 123 df<13FEEA038138060180EA0E03381C010090C7FCA5B51280EA1C03AE38FF
-8FF0141A809915>12 D<EBFF80EA0383EA0603120E121CA6B5FCEA1C03AE38FF9FF0141A
-809915>I<126012F0A212701210A31220A21240A2040B7D830B>44
-D<EAFFC0A20A0280880D>I<EA07E0EA1C38EA381CEA300CEA700EEA6006A2EAE007AAEA
-6006A2EA700EEA300CEA381CEA1C38EA07E010187F9713>48 D<12035AB4FC1207B3A2EA
-7FF80D187D9713>I<EA0F80EA1060EA2030EA4038EA803CEAC01C12E01240EA003C1338
-A21370136013C0EA018013001202EA040412081210EA3008EA3FF8127F12FF0E187E9713
->I<EA07E0EA1838EA201CEA601EEA700EEA201E1200131CA213381370EA07E0EA003813
-1C130E130FA212E0A212C0EA400EEA601CEA1838EA07E010187F9713>I<1318A2133813
-7813F813B8EA01381202A212041208121812101220124012C0B5FCEA0038A6EA03FF1018
-7F9713>I<EA3018EA3FF013E01380EA2000A5EA2FC0EA3060EA2030EA00381318131CA2
-124012E0A2EA8018EA40381330EA30E0EA0F800E187E9713>I<EA01F8EA0704EA0C06EA
-180E123013001270126012E0EAE3E0EAE418EAE80CEAF00EEAE0061307A31260A2EA7006
-EA300EEA180CEA0C38EA07E010187F9713>I<1240EA7FFF13FEA2EA4004EA80081310A2
-EA00201340A21380120113005AA25A1206A2120EA5120410197E9813>I<EA07E0EA1818
-EA300CEA20061260A21270EA780CEA3E18EA1F30EA07C0EA03E0EA0CF8EA307CEA601E13
-0FEAC0071303A3EA6002EA2004EA1818EA07E010187F9713>I<EA07E0EA1C30EA3018EA
-700CEA600EEAE006A21307A31260EA700FEA3017EA1827EA07C7EA00071306130E130C12
-701318EA6030EA3060EA0F8010187F9713>I<EA1FC0EA38707FEA101C1200A2EA03FCEA
-1E1C1238127012E01480A2133CEA705F381F8F0011107F8F13>97
-D<12FC121CA913FCEA1D07381E0380381C01C0130014E0A6EB01C01480381E0300EA1906
-EA10F8131A809915>I<EA07F8EA1C1C1238EA700813005AA612701304EA3808EA1C18EA
-07E00E107F8F11>I<133F1307A9EA03E7EA0C17EA180F487E127012E0A6126012706C5A
-EA1C373807C7E0131A7F9915>I<EA07C0EA1C30EA30181270EA600C12E0EAFFFCEAE000
-A41260EA7004EA3808EA1C18EA07E00E107F8F11>I<EA01F0EA0718EA0E38EA1C101300
-A6EAFFC0EA1C00AEEAFF800D1A80990C>I<EA0FCF3818718038303000EA7038A4EA3030
-6C5AEA2FC00060C7FCA21270EA3FF013FC6C7EEA600FEAC003A4EA6006EA381CEA07E011
-187F8F13>I<12FC121CA9137CEA1D87381E0380A2121CAB38FF9FF0141A809915>I<1218
-123CA212181200A612FC121CAE12FF081A80990A>I<12FC121CA9EB1FC0EB0F00130C5B
-13205B13E0121DEA1E70EA1C7813387F131E7F148038FF9FE0131A809914>107
-D<12FC121CB3A6EAFF80091A80990A>I<38FC7C1F391D8E6380391E0781C0A2001C1301
-AB39FF9FE7F81D107F8F20>I<EAFC7CEA1D87381E0380A2121CAB38FF9FF01410808F15>
-I<EA07E0EA1C38EA300CEA700EEA6006EAE007A6EA6006EA700EEA381CEA1C38EA07E010
-107F8F13>I<EAFCFCEA1D07381E0380381C01C0A2EB00E0A6EB01C01480381E0300EA1D
-06EA1CF890C7FCA6B47E1317808F15>I<EA03E1EA0C13EA180BEA300FEA700712E0A612
-70A26C5AEA1C37EA07C7EA0007A6EB3FE013177F8F14>I<EAFC78EA1D9CEA1E1C1308EA
-1C00ABEAFF800E10808F0F>I<EA1F20EA60E0EA402012C0A2EAF000127FEA3FC0EA1FE0
-EA00F0EA8070133012C01320EAF040EA8F800C107F8F0F>I<1208A41218A21238EAFFC0
-EA3800A81320A41218EA1C40EA07800B177F960F>I<38FC1F80EA1C03AB1307120CEA0E
-0B3803F3F01410808F15>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2
-EA01C0A36C5A11107F8F14>I<39FE7F1F8039381C0700003C1306381C0C04130E380E16
-081317A238072310149013A33803C1A014E0380180C0A319107F8F1C>I<38FE3F80383C
-1E00EA1C086C5AEA0F306C5A6C5A12017F1203EA0270487E1208EA181CEA381E38FC3FC0
-12107F8F14>I<38FF0F80383C0700EA1C061304A26C5AA26C5AA3EA03A0A2EA01C0A36C
-5AA248C7FCA212E112E212E4127811177F8F14>I<EAFFF8EAE07012C0EA80E0EA81C0A2
-EA0380EA0700A2EA0E04121CA2EA380812701338EAFFF80E107F8F11>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmss10 10.95 2
-/Fg 2 42 df<13E0EA01C0EA0380120713005A121EA2121C123CA212381278A3127012F0
-AE12701278A31238123CA2121C121EA27E7E13801203EA01C0EA00E00B2E7CA112>40
-D<12E012707E123C121C121E7EA27E1380A2120313C0A3120113E0AE13C01203A3138012
-07A213005AA2121E121C123C12385A5A0B2E7EA112>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmbx10 12 27
-/Fh 27 123 df<90380FF83F90397FFDFFC03A01FC1FE3E03903F03FC7EA07E0D80FC013
-87ED83C091381F8000A6B612FCA2390FC01F80B2397FF8FFF8A223237FA221>11
-D<EB07F8EB7FFC3801FC0E3803F01F48485AEA0FC0A3141E140C91C7FCA2ECFF80B6FCA2
-380FC01FB2397FF8FFF0A21C237FA220>I<EA07FE381FFF80383F07E06D7E130180121E
-1200A2133FEA03FDEA1F81EA3E01127C12F8A4EA7C02EA7E0C391FF87F803807E03F1916
-7E951C>97 D<B47EA2121FABEB87F0EBBFFCEBF03EEBC01F9038800F8015C0140715E0A7
-15C0A2140F15809038C01F00381E707E381C3FFC38180FE01B237EA220>I<EBFF800007
-13E0380F83F0EA1F03123E127E387C01E090C7FC12FCA6127C127EA2003E13186C133038
-0FC0603807FFC0C6130015167E9519>I<49B4FCA2EB003FAB13FE3807FFBF380FC1FF48
-C67E003E7F127E127CA212FCA7127C127E123E6C5B380F81FF3907FF3FE0EA01FC1B237E
-A220>I<13FE3807FF80380F83C0381E01E0383E00F0127E007C13F8147812FCB512F8A2
-00FCC7FCA3127CA26C1318A26C1330380F80E03803FFC0C6130015167E951A>I<EB1F80
-EBFFE03801F1F0EA03E31207EA0FC3EBC1E0EBC000A6EAFFFEA2EA0FC0B2EA7FFCA21423
-7EA212>I<9038FE0F803903FF9FC0380F83E3381F01F3391E00F000003E7FA5001E5BEA
-1F01380F83E0380BFF80D808FEC7FC0018C8FCA2121C381FFFE014FC6C13FF7E001F1480
-397C001FC00078130F00F81307A3007CEB0F806CEB1F00381F807E6CB45A000113E01A21
-7F951D>I<B47EA2121FABEB83F0EB8FFCEB987EEBA03EEBC03FA21380AE39FFF1FFE0A2
-1B237DA220>I<121E123FEA7F80A4EA3F00121EC7FCA6EAFF80A2121FB2EAFFF0A20C24
-7EA30F>I<B47EA2121FABECFF80A2EC3C00143014E0EB81C00183C7FC1386139E13BE13
-FFEBDF80EB8FC01307806D7E6D7E130080147E39FFE1FFC0A21A237EA21E>107
-D<EAFF80A2121FB3ADEAFFF0A20C237EA20F>I<3AFF03F803F890390FFE0FFE3A1F183F
-183F9039201F201F014001C01380A201801380AE3BFFF0FFF0FFF0A22C167D9531>I<38
-FF03F0EB0FFC381F187EEB203EEB403FA21380AE39FFF1FFE0A21B167D9520>I<13FF00
-0713E0380F81F0381F00F8003E137C48133EA300FC133FA7007C133E007E137E003E137C
-6C13F8380F81F03807FFE0C6130018167E951D>I<38FF87F0EBBFFC381FF07EEBC01F90
-38800F8015C0A2EC07E0A715C0140FA2EC1F8001C01300EBF07EEBBFFCEB8FE00180C7FC
-A8EAFFF0A21B207E9520>I<EBFE033807FF07380FC1CF381F00DF48137F007E7FA2127C
-12FCA7127EA2003E5B6C5BEA0FC13807FF3FEA00FC1300A8903801FFE0A21B207E951E>
-I<38FF0F80EB1FE0381F33F013631343A2EBC1E0EB8000ADEAFFF8A214167E9518>I<38
-07F980EA1FFFEA3807EA7003EAF001A26CC7FCB4FC13F8EA7FFE6C7E6C1380120738003F
-C0EAC007130312E0A200F0138038FC0F00EAEFFEEAC3F812167E9517>I<487EA41203A2
-1207A2120F123FB5FCA2EA1F80ABEB8180A5380F830013C3EA07FEEA01F811207F9F16>
-I<38FF81FFA2381F803FAF5C5C380FC1BF3907FF3FE0EA01FC1B167D9520>I<39FFF01F
-E0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0EB
-7EC0137F6D5AA26DC7FCA2130EA21B167F951E>I<3AFFF3FF83FCA23A1F807C00E0D80F
-C014C08001E013010007017F1380A2D803F0EB0300ECCF8301F81387D801F913C61487D8
-00FD13ECEBFF0315FC017F5BEB7E01013E5BEB3C00A20118136026167F9529>I<39FFF0
-7FC0A2390FC01C006C6C5A6D5A00035B6C6C5A3800FD80137F91C7FC7F6D7E497EEB37E0
-EB67F013C33801C1F8380380FC48487E000E137F39FF81FFE0A21B167F951E>I<39FFF0
-1FE0A2391FC00700000F1306EBE00E0007130C13F000035BA26C6C5AA26C6C5AA2EBFEE0
-EB7EC0137F6D5AA26DC7FCA2130EA2130CA25B1278EAFC3813305BEA69C0EA7F80001FC8
-FC1B207F951E>I<387FFFF0A2387C07E038700FC0EA601F00E0138038C03F005B137EC6
-5A1201485AEBF030EA07E0120FEBC070EA1F80003F1360EB00E0EA7E03B5FCA214167E95
-19>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmtt10 12 29
-/Fi 29 122 df<13E0A538F0E1E0EAFCE7387EEFC0381FFF00EA07FCEA01F0EA07FCEA1F
-FF387EEFC038FCE7E0EAF0E13800E000A513157D991A>42 D<B512F8A3381C0038A51400
-A2130EA3EA1FFEA3EA1C0EA390C7FCA3141CA5B512FCA3161E7E9D1A>69
-D<387FFFFCB5FC7E380E001CA51400A2EB0380A3EA0FFFA3EA0E03A390C7FCA8EA7FE012
-FF127F161E7F9D1A>I<B51280A33801C000B3A6B51280A3111E7C9D1A>73
-D<387F03F838FF87FC387F03F8381C01E0EB03C01480EB07005B131E131C5B13785B7F12
-1DEA1FDC139C130EEA1E0F7F001C13801303EB01C0A2EB00E0A21470007F13FC38FF81FE
-387F00FC171E7F9D1A>75 D<EA7FE0487E6C5A000EC7FCB3141CA5387FFFFCB5FC7E161E
-7F9D1A>I<387FFFC0B512E0A26C13C013047D7E1A>95 D<EA1FF0EA3FFC487EEA780FEA
-300738000380A2137FEA07FF121FEA3F83EA7803127012E0A3EA7007EA780F383FFFFCEA
-1FFDEA07F016157D941A>97 D<12FEA3120EA6133EEBFF80000F13E0EBC1F0EB8070EB00
-38120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E138038063E00161E7F9D1A>I<
-EBFF80000313C0000F13E0EA1F01383C00C04813001270A25AA51270A2007813707E381F
-01F0380FFFE0000313C03800FE0014157D941A>I<EB1FC0A31301A6EA01F1EA07FDEA0F
-FFEA1E0FEA3C07EA7803EA700112E0A7EA7003A2EA3807EA3E0F381FFFFCEA07FDEA01F1
-161E7E9D1A>I<EA01F8EA07FF481380381E07C0EA3C01387800E01270481370A2B512F0
-A300E0C7FC1270A2007813707E381F01F0380FFFE0000313803800FE0014157D941A>I<
-EB07E0EB1FF0EB3FF8EB7878EBF030EBE000A4387FFFF0B5FCA23800E000AF383FFF8048
-13C06C1380151E7F9D1A>I<3801F87C3807FFFE5A381E078C381C0380383801C0A5381C
-0380EA1E07381FFF005BEA39F80038C7FCA27E381FFF8014E04813F83878007C0070131C
-48130EA40070131C0078133C003E13F8381FFFF0000713C00001130017217F941A>I<12
-FEA3120EA6133EEBFF80000F13C013C1EB80E01300120EAC38FFE3FE13E713E3171E7F9D
-1A>I<EA01C0487EA36C5AC8FCA5EA7FE0A31200AF387FFF80B512C06C1380121F7C9E1A>
-I<12FEA3120EA6EB0FFCEB1FFEEB0FFCEB03C0EB0780EB0F00131E5B5B13FC120F13DE13
-8F380E07801303EB01C014E0EB00F038FFE3FE14FF14FE181E7F9D1A>107
-D<EAFFE0A31200B3A6B512E0A3131E7D9D1A>I<387CE0E038FFFBF8EA7FFF381F1F1CEA
-1E1EA2EA1C1CAC387F1F1F39FF9F9F80397F1F1F00191580941A>I<EAFE3EEBFF80B512
-C0EA0FC1EB80E01300120EAC38FFE3FE13E713E317157F941A>I<EA01F0EA07FCEA1FFF
-383E0F80EA3C07387803C0EA700138E000E0A6EAF001007013C0EA7803383C0780EA3E0F
-381FFF00EA07FCEA01F013157D941A>I<EAFE3EEBFF80B512E0380FC1F0EB8070EB0038
-120E141CA7000F13381478EB80F0EBC1E0EBFFC0000E1380EB3E0090C7FCA8EAFFE0A316
-207F941A>I<3801F8E0EA07FEEA0FFFEA1E07EA3C03EA78011270EAE000A613011270EA
-7803123CEA1E0FEA0FFFEA07FCEA01F0C7FCA8EB0FFEA317207E941A>I<387F81F838FF
-8FFC387F9FFE3803FE1EEBF80CEBE000A25B5BAAEA7FFFB5FC7E17157F941A>I<3807FB
-80EA1FFF127FEA7807EAE003A30078C7FCEA7FC0EA1FFCEA07FE38003F801307386001C0
-12E0A2EAF00338FC0780B51200EAEFFEEAE3F812157C941A>I<487E1203A6387FFFE0B5
-FCA238038000AA1470A43801C1E013FF6C1380EB3F00141C7F9B1A>I<38FE0FE0A3EA0E
-00AD1301EA0F033807FFFE7EEA00FC17157F941A>I<387FC7FC00FF13FE007F13FC380E
-00E0A3380701C0A338038380A33801C700A3EA00EEA3137CA2133817157F941A>I<387F
-C7FC00FF13FE007F13FC380E00E0A27EEB01C013811203EB8380EA01C3A2EBC700EA00E7
-A213E61366136E133CA31338A3137813701230EA78E01271EA7FC06C5A001EC7FC17207F
-941A>121 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmbx12 13.14 52
-/Fj 52 122 df<123C127E12FFA4127E123C08087C8711>46 D<EB7F803803FFF03807E1
-F8380F807C48487E48133F003E7F007E1480A400FE14C0AD007E1480A46CEB3F00A26C13
-3E6C6C5A3807E1F86CB45A38007F801A237EA21F>48 D<131C133C13FC12FFA21200B3AA
-387FFFFCA216237CA21F>I<48B4FC000713C0381E07F0383803F8386001FC387C00FE12
-FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F00131E5B
-1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA218237DA21F>
-I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C01000013FCA2EB
-03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210127C12FE
-A214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14381478A2
-14F81301130313071306130C131C13381330136013E0EA01C01380EA03005A120E5A1218
-5A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C001F137CEB
-FFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8000813FC
-C7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FFC03801FE
-0018237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F005AA200
-7E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4003E137E
-123F6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C003FB512
-C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA25BA2133C
-A25BA213F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F8381C007C48
-133C141E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313E014F800
-0F13FCEA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C1338381F80
-F03807FFE00001130018237DA21F>I<13FF000313C0380F83E0381F00F04813F8007E13
-7CA2147E12FEA3147FA4127E14FF123EEA3F01001F137FEA0FFEEA03FCC7FC147EA2123C
-007E13FCA214F814F0EA7C01383003E0381C0F80380FFF00EA03F818237DA21F>I<141C
-A2143EA3147FA24A7EA39038019FC0A29038031FE0140F01077FEB0607A2010C7F140301
-1C7FEB1801A2496C7EA2017FB5FCA29039E0007F8049133FA2484880151F00038190C712
-0FA2486E7ED8FFF090B51280A229257EA42E>65 D<B612E015FC3903F0007FED3F80ED1F
-C0ED0FE0A216F0A21507150FA216E0151F16C0ED7F80913801FE0090B512F815FF9039F0
-003FC0ED0FE0ED07F016F8150316FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F82625
-7EA42C>I<9138FF8008010FEBF01890393FC03C789039FE0006F8D801F8130348481301
-4848130048481478121F48481438A2007F151890C8FCA2481500A97E16187F123FA26C6C
-1430120F6C6C14606C6C14C06C6CEB0180D800FEEB070090383FC01E90380FFFF8010013
-C025257DA42C>I<B7FCA23903F8007FED0F8015071503A21501A3ED00C01406A21600A2
-140E141EEBFFFEA2EBF81E140E1406A21660A291C7FC16C0A415011503A2ED0F80153FB7
-FCA223257EA428>69 D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C
-5C90B5FCA2EBF80F8080A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F8
-0003F800AF90B6FCA29038F80003B0B500E0B512E0A22B257EA430>72
-D<B512E0A23803F800B3AFB512E0A213257EA417>I<B539E007FF80A2D803F8C7EA7800
-16605E4B5A0307C7FC150E15185D5D5DEC03804AC8FC140E141F4A7E147FECDFC09038FB
-8FE09038FF0FF0EBFC07496C7E816E7E1400157F82153F6F7E6F7E8215076F7E82B539E0
-3FFFC0A22A257EA430>75 D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E
-157CEC03FCB6FCA220257EA425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D14
-06A26D6C130CA26D6C1318A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A29138
-7E0300A3EC3F06A2EC1F8CA2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A23525
-7EA43A>I<D8FFF8903807FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13
-036D7E6D7E80EC7F80EC3FC0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3F
-D8ED1FF8150F15071503A2150115001678486C1438D8FFFC1418A22B257EA430>I<B67E
-15F83903F801FEEC007F6F7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F8
-03F06E7E6E7E157EA2157FA482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B
-257EA42E>82 D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A2
-7E91C7FCB4FCEA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC
-0FE01407A200C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B
-257DA422>I<007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C16
-0C5AA4C71400B3A390B512FEA226247EA32B>I<B539E00FFFC0A2D803F8C7EA78001630
-B3A700015D7F00005D137C6D495A6D0107C7FC90380FE03E903803FFF89038007FC02A25
-7EA42F>I<B5398001FFE0A2D807F8C7EA1C0000031518A26D1438000115306D14700000
-15607F6D5C80013F495AA2ECC003011F91C7FC6E5A010F130614F001075BA26D6C5AA2EC
-FC3801011330ECFE700100136014FF6E5AA26E5AA36EC8FCA2140EA22B257FA42E>I<B5
-3B81FFFE01FFF0A23D07F0001FC0000F007013066C6C010F5CA26F7E6C6C5EA26D496C13
-38000017304B7E017F01195CA291388030FE013F5E829139C0607F01011F5E03E0138190
-280FE0C03F83C7FCA29139F1801FC3010715C617E69139FB000FEE010315EC02FF14FC6D
-486D5AA24A130301005DA24A130102785CA202306D5A3C257FA43F>I<B539C001FFE0A2
-D807F8C7EA1C006C6C141816386C6C14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7
-FC90380FF006150E903807F80C6D6C5A15386D6C5A903800FF6015E06E5A6E5AAE90380F
-FFFCA22B257FA42E>89 D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1F
-FE3803FE7EEA0FC0EA1F00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B
-187E971E>97 D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2
-EC01F8A215FCA815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E26
-7FA522>I<EB7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F
-6C130CEA1F80EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC13
-7F3803FFCF380FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380F
-C0EF3903FFCFFC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048
-137C127E147E12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803
-FFE038007F8017187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400
-A7B5FCA2EA0FC0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F
-01393E00F800007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA2123812
-3C383FFFE06C13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00
-381F807E3807FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0F
-C013D89038D007E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4
-EA1F80EA0F00C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC
-1FF0A2EC0780EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB
-80FC147E80A2EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EA
-FFFCA20E267EA511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A
-9007E803F001A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE9038
-83FF80390F8E0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F
-803803FFF03807C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F
-00A2381F807E6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC0
-9038F007E001C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F
-809038CFFF00EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7C
-EB90FC13B013A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C
-07EA7001EAF000A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC0
-01A212E014C0EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A3120312
-07120F121FB512C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218
->I<39FFC07FE0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E97
-22>I<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13
-FC00005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<3BFFF9FF
-E0FF80A23B1FC03F001C00000F6D13181580D807E05CA29039F03FC07000030137136015
-E02601F8635BA29038FCE3F1000001C15B15F990267F80FBC7FCA215FF90383F007EA201
-1E133CA3010C131829187F972C>I<39FFF83FF0A2390FC00F003807E00E6C6C5A6D5A6C
-6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EBE0FC3801C07E3803807F39
-07003F8048131F39FFC07FF8A21D187F9720>I<39FFF80FF8A2390FC001C015803907E0
-0300A26D5A00031306EBF80E0001130C13FC00005B13FEEB7E30A26D5AA214E06D5AA26D
-5AA26DC7FCA21306A25B1230EA781CEAFC185B1370EA68E0EA7FC0001FC8FC1D237F9720
->I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmsl10 10.95 48
-/Fk 48 122 df<EB03E0EB1C181338EB703C13E014383801C000A5485A387FFFF0380380
-70A4380700E0A6380E01C0A6381C0380001E13C038FF0FF016207E9F19>12
-D<EB03F4EB1C1CEB383C137013E01438EA01C0A538038070387FFFF038038070A4380700
-E0A6380E01C0A6381C0380001E13C038FF9FF016207E9F19>I<EAFFF0A20C027E8A0F>
-45 D<137EEA01C338030180000713C0EA0E0014E05AA2EA3C0112381278A538F003C0A5
-1480130712E01400A2130E1260EA701CEA3038EA3870EA0FC0131F7C9D17>48
-D<13181338EA01F8EA0E701200A513E0A6EA01C0A6EA0380A6EA07001380EAFFFC0E1E7B
-9D17>I<1408140C141C143CA2147C147E149EA2EB011EA21302801304A21308A2011013
-8014071320A2EB7FFF90384007C0EB8003A2EA0100A21202EC01E01206001F130339FF80
-1FFE1F207F9F22>65 D<0007B5FC3900F803C090387801E0EC00F04913F8A515F03801E0
-01EC03E015C0EC0F809038FFFE009038E00F803903C003C0EC01E015F0A21400A2485A14
-01A215E01403EC07C0390F000F80EC3E00B512F01D1F7E9E20>I<ECFE02903807018690
-381C004E0170133E49131E4848131C4848130C120748C7FC5A121E003E1408003C140012
-7CA45AA4127815101520A27E1540001C14806CEB01006C13023803800C3800E030EB3FC0
-1F217C9F21>I<0007B57E3900F801E0903878007081497F151E150E150FA348481480A6
-484814005DA3151E153E4848133C5DA25D4A5A4A5A260F000FC7FC143CB512F0211F7E9E
-23>I<0007B512FC3900F8007C0178131C150C5B1504A414043901E00800A31438EBFFF8
-EBE0383803C010A4EC00081510485AA21520A2156015C0380F00011407B612801E1F7E9E
-1F>I<0007B512F83900F800780178133815185B1508A53901E00800A314181438EBFFF8
-3803C0301410A491C7FC485AA648C8FC7FEAFFFC1D1F7E9E1E>I<3A07FF83FFC03A00F8
-007C000178133CA2495BA648485BA490B5FCEBE0004848485AA64848485AA64848485A01
-807F39FFF07FF8221F7E9E22>72 D<3807FF803800F8001378A25BA6485AA6485AA6485A
-A648C7FC7FEAFFF0111F7E9E10>I<3A07FF803FE03A00F8001F000178130C5D4913205D
-5D4AC7FC1402140848485A5C146014F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E
-141F48487E81140781140381380F00016D487E39FFF00FFE231F7E9E23>75
-D<3807FFE0D800FCC7FC1378A25BA6485AA6485AA41580EC0100EA0780A25C1402140614
-0E380F001E147CB512FC191F7E9E1C>I<D807F8EC7FE00000ED7C00017814BCA2019C49
-5AA21502A2018E13041508D8010E5C1510A26D1320A215400002EC41E09038038081EC81
-01A21482A23A0401C403C0A214C8A2EB00F0000C13E04B5A001E01C07FD8FFC0EB7FFC2B
-1F7E9E2A>I<D807F8EB7FC0D8007CEB1F00150C015E1304019E5B138FA2EB8780A2EB83
-C0D801035BEB01E0A2EB00F0A2147800025C143CA2141EA2140F485CEC07C0A21403A214
-01000C5C001E1300B47E221F7E9E22>I<EB01FCEB0E0790383801C090387000E0484813
-F048481378485A153C48C7FC5A001E143E123E123C127CA448147CA3157815F81278EC01
-F0007C14E01403003C14C0001CEB0780001EEB0F006C131E380780383801C0E038007F80
-1F217C9F23>I<0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC
-01E0EC03C0EC0F00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807
-FFFE3900F8078090387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00
-EBFFF03803C03880141E140EA2140F48485AA51501D80F0013029038800F8239FFF8078C
-C7EA01F020207E9E22>82 D<EB1F82EB7066EBC01E3801800EEA030048130C0006130412
-0EA3000F1300A27FEA07F013FF6C13C06C13E038003FF0EB03F813001478143CA2004013
-38A3143000601370146000F013C038E8018038C60300EA81FC17217E9F19>I<003FB512
-F0383C078000301430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383F
-FFE01C1F7A9E21>I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A648
-5BA600705BA25CA200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFF
-F07FF81FF03B1F000FC007C0001E903907800380001FED01006C1502140F5EEC17C00213
-5B142301805C000713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C4
-15F2EBC80015F4EA01F015F85B5D5B15605B000014402C207A9E2F>87
-D<EA07F8EA0C0CEA1E061307121C1200A313FFEA07C7EA1E07EA3C0E127800F01310A313
-1EEB2E2038784F40381F878014147D9317>97 D<1207123F120F7EA2120EA65A137CEA1D
-83381E0180001C13C0EB00E05A14F0A5387001E0A214C013031480EB0700EAE80EEACC38
-EA83E014207B9F19>I<13FEEA0383380E0780121C0038130090C7FC12785AA45AA37E5B
-EA70026C5AEA1C18EA07E011147D9314>I<1438EB01F8EB00781438A21470A614E013FC
-EA0382EA0601121CEA3C00383801C0127812F0A438E00380A412F0EA700738380F00381C
-37803807C7E015207D9F19>I<13F8EA070EEA0E07381C038012381278127012F0B5FC00
-F0C7FCA25AA46C5AEA7002EA3004EA1C18EA07E011147D9314>I<EB07C0EB1C60EB30F0
-1360EBE0E0EBC0001201A5485AEA3FFCEA0380A448C7FCA6120EA65A121EEAFFC014207F
-9F0E>I<140EEB3E11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB87
-00EA04FC48C7FCA21218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0
-381C0700EA07FC181F809417>I<13E0120712011200A2485AA6485AEB8F80EB90E013A0
-EBC0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014207E9F19>I<
-EA01C0EA03E0A213C0EA0180C7FCA6EA0380121F12071203A2EA0700A6120EA65A121EEA
-FF800B1F7F9E0C>I<13E0120712011200A2485AA6485AEB81FCEB80F014C0EB81801400
-EA07045B13181338137C131C120E7FA2130F7F1480EA1C03381E07C038FF8FF016207E9F
-18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A6120EA65A121EEAFF800B
-207F9F0C>I<390387C07C391F9861863907A072073903C03403EB80380007EB7807EB00
-70A5000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E9326>I<38038F80381F
-90E0EA07A03803C0601380000713E01300A5380E01C0A6381C0380001E13C038FF8FF014
-147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012F0A438E001E0A214C0
-130300F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3E03807EC383801F01C
-6C487E140F48487E1580A53903800F00A2140E141E141C5C38074070EB61C0011FC7FC90
-C8FCA3120EA4121EEAFFC0191D809319>I<EBFC2038038260EA0702381E01E0123C0038
-13C0127812F0A438E00380A212F0A21307127038380F00EA1C37EA07C7EA0007A3130EA4
-131EEBFFC0131D7D9318>I<EA038E381FB380EA07C71203EB8300EA078090C7FCA5120E
-A65A121EEAFFC011147E9312>I<EA01F9EA0607EA080312181301EA3802EA3C00121F13
-F0EA07FCEA01FEEA001FEA40071303A212601306EAF004EAC818EA87E010147F9312>I<
-1380EA0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2EA1840EA0F800D1C7C
-9B12>I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4131EA25BEA305E381F
-9F8011147B9319>I<38FF83F8381E00E0001C13C01480121E380E01005B13025B12075B
-A25BEA039013A013E05B5B120190C7FC15147C9318>I<39FF9FE1FC393C078070391C03
-0060148015401580EA0E0790380D81001309EB19C21311380F21C4EA0720EB40C814E8EB
-80F0A26C485A1460000213401E147C9321>I<381FF0FF3803C0780001137014403800E0
-C0EBE180EB73001376133CA2131C132E134E1387EA0107380203801204380C01C0383C03
-E038FE07FC18147F9318>I<390FF83F803901E00E00EBC00C140813E000005B14301420
-5C13705CA20171C7FC1339133A133E133C133813181310A25BA25BEA70C0EAF08000F1C8
-FC12E61278191D809318>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmti10 10.95 20
-/Fl 20 122 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B5
-12E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E0
-0640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
-D<127012F8A212F012E005057B840E>46 D<EBF180380389C038070780EA0E03121C123C
-383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C80380F070013147C9317>
-97 D<137EEA01C138030080EA0E07121E001C1300003CC7FC5AA35AA45B12701302EA30
-0CEA1830EA07C011147C9315>99 D<1478EB03F8EB0070A414E0A4EB01C0A213F1EA0389
-38070780EA0E03121C123C383807001278A3EAF00EA31420EB1C40A2EA703C135C38308C
-80380F070015207C9F17>I<137CEA01C2EA0701120E121C123CEA3802EA780CEA7FF0EA
-78005AA4EA7001A21302EA380CEA1830EA07C010147C9315>I<EB3C60EBE2703801C1E0
-EA0380EA07005A380E01C0121EA3383C0380A4EB0700A2EA1C0F1317EA0C2EEA03CEEA00
-0EA25BA21230EA7838485AEA60E0EA3F80141D7E9315>103 D<13C0EA01E0A213C0C7FC
-A7120E12131223EA4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C
-0B1F7C9E0E>105 D<EA03C0121FEA0380A4EA0700A4120EA45AA45AA45AA3127112E2A4
-126412380A207C9F0C>108 D<391C0F80F0392630C318394740640C903880680EEB0070
-A2008E495A120EA34848485AA3ED70803A3803807100A215E115623970070064D8300313
-3821147C9325>I<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01
-C0A3EB038400381388A2EB0708EB031000701330383001C016147C931A>I<137CEA01C3
-38030180000E13C0121E001C13E0123C1278A338F003C0A3EB07801400EA700F130EEA30
-18EA1870EA07C013147C9317>I<3801C1E0380262183804741C1378EB701EA2EA08E012
-00A33801C03CA3143838038078147014E0EBC1C038072380EB1E0090C7FCA2120EA45AA2
-B47E171D809317>I<EA1C1EEA266138278380EA47871307EB0300008EC7FC120EA35AA4
-5AA45A123011147C9313>114 D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0
-EA07F8EA03FCEA003E130E1270EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I<
-EA018013C0EA0380A4EA0700A2EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA
-3100121E0C1C7C9B0F>I<000E13C0001313E0382301C0EA4381EA4701A238870380120E
-A3381C0700A31410EB0E201218A2381C1E40EA0C263807C38014147C9318>I<380E0380
-EA1307002313C0EA4383EA4701130000871380120EA3381C0100A31302A25BA25BEA0E30
-EA03C012147C9315>I<000EEBC1C0001313E3392301C3E0384381C1384701C015603987
-038040120EA3391C070080A3EC0100A21306EB0F02000C5B380E13083803E1F01B147C93
-1E>I<000E13C0001313E0382301C0EA4381EA4701A238870380120EA3381C0700A4130E
-1218A2EA1C1EEA0C3CEA07DCEA001CA25B12F05BEAE060485AEA4380003EC7FC131D7C93
-16>121 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmr8 8 29
-/Fm 29 118 df<126012F0A212701210A21220A21240A2040A7D960A>39
-D<EAFF80A2090280870C>45 D<1206120E12FE120EB1EAFFE00B157D9412>49
-D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018
-13F0123838FE03FE17177F961A>65 D<EAFFFE381C0380EB00E014601470A414E0EB01C0
-381FFF8014C0381C00E0147014301438A4147014E0EB01C0B5120015177F9619>I<EBFC
-1038038330380E00B0481370481330123000701310126012E01400A51410126012700030
-132012386C13406C138038038300EA00FC14177E9619>I<B5FC381C01C0EB00E0143014
-381418141C140C140EA7140C141CA2143814301460EB01C0B5120017177F961B>I<B512
-E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A2130014181410A214
-3014F0B5FC15177F9618>I<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C
-0C1304A390C7FCA6EAFFC014177F9617>I<EAFFC0001CC7FCAD1420A31460A2144014C0
-1303B5FC13177F9616>76 D<00FEEB03F8001E14C000171305A338138009A23811C011A3
-3810E021A2EB7041A3EB3881A2EB1D01A2130EA2123839FE040FF81D177F9620>I<EAFF
-FE381C0380EB00C014601470A4146014C0EB0380381FFE00001CC7FCAAB47E14177F9618
->80 D<EAFFFC381C0380EB00C014E01470A414E014C0EB0380381FFE00381C0780EB01C0
-EB00E0A514E1A2147238FF803C18177F961A>82 D<EA0FC4EA302CEA601CEA400CEAC004
-A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C130E13061280A3EAC004EAE008EAD810
-EA87E00F177E9614>I<387FFFF83860381800401308A200801304A300001300AF3803FF
-8016177F9619>I<12FCA212C0B3AB12FCA206217D980A>91 D<EA3FC0EA70601330EA20
-381200EA03F8EA1E3812301270EAE039A21379EA70FFEA1F1E100E7F8D12>97
-D<12F81238A8EA39F0EA3E0CEA380613077F1480A414005B1306EA361CEA21F011177F96
-14>I<EA07F0EA18381230EA7010EA600012E0A41260EA70081230EA1830EA07C00D0E7F
-8D10>I<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000A31260EA7008EA3010EA18
-30EA07C00D0E7F8D10>101 D<1203EA0780A2EA0300C7FCA5EA1F801203AF1243EAE300
-12E7127C091D82960B>106 D<12F81238A8133E13381330134013801239EA3FC0EA39E0
-123813F01378133CA2EAFE7F10177F9613>I<EAF8F8EA3B1CEA3C0E1238AA38FE3F8011
-0E7F8D14>110 D<EA07C0EA1830EA3018EA600CA2EAE00EA5EA701CEA3018EA1830EA07
-C00F0E7F8D12>I<EAF9F0EA3E1CEA380613077F1480A414005B130EEA3E1CEA39F00038
-C7FCA512FE11147F8D14>I<EAF9E0EA3A70123CEA38201300A9B4FC0C0E7F8D0E>114
-D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA01E0EA8060A212C0EAE0C0EA9F
-000B0E7F8D0E>I<1208A31218A21238EAFFC0EA3800A71340A4EA1C80EA0F000A147F93
-0E>I<EAF83EEA380EAA131EEA1C2E3807CF80110E7F8D14>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmsy9 9 2
-/Fn 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E
-A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA
-0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fo cmsltt10 10.95 29
-/Fo 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E
-769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3
-C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA
-7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203
-120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I<EB3E18EBFFB8
-4813F8EA07C1EB8078EA0E00121E001C137048133014005AA35AA614C0EA7001A2130338
-380780383C0F00EA1FFE6C5AEA03F0151C7C9B18>67 D<3807FFC014E014F03801C0F814
-78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013
-07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000
-A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18
-1C7F9B18>I<EB1FF8EB3FFCEB1FF8EB01C0A4EB0380A6EB0700A6130EA2124012E06C5A
-EAE03CEAFFF86C5AEA1FC0161C7C9B18>74 D<EA07FC487E6C5AEA01C0A4485AA648C7FC
-A6120E14301470A4B512E0A3141C7E9B18>76 D<3907E01F80000FEB3FC0000714803903
-B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6
-5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12
-1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92
-D<387FFFC0B512E0A26C13C013047E7F18>95 D<EA03FC48B4FC4813801303380601C012
-00A2137FEA07FF121FEA3F813878038012F012E0A21307EA701F387FFFF0EA3FFBEA0FE1
-14147D9318>97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012
-38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I<EB07E0
-A31300A4EB01C0EA01F1EA07FDEA0FFFEA1E0FEA3C0738780380127012E0A4EB0700A25B
-5B6C5AEA787F383FFFC0381FEFE0380F87C0131C7C9B18>100 D<13F8EA07FE487E381F
-0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F
-FE6C5AEA07F012147B9318>I<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A
-7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<EB1E1F90387FFF8090B5FC
-3901E1E3003803C0E01380EA0700A3495AA238038780EA07FF49C7FCEA0E7890C8FCA26C
-B47E4813E0487F383C007848133812705AA2147800705B387C03E0383FFFC0000F90C7FC
-EA03FC191F809318>I<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6
-EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106
-D<EA07E0120F12071200A4485AEBC7FEA3EBC1E0EBC3C038038780EB8F00139E13BC13FE
-13EEEA07CF1387EB0780130314C01301387FC7F838FFE7FC387FC7F8171C7F9B18>I<EA
-0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>I<13FCEA03FF000F1380
-EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F
-FC6C5AEA07E013147C9318>111 D<EBF8C0EA03FDEA0FFFEA1F0FEA3C07387803801270
-12E0A4EB0700A25BA26C5AEA787FEA3FFEEA1FEEEA078EEA000EA35BA43801FF80A3121E
-7C9318>113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA
-FFFC7F5B17147E9318>I<EBFE603807FFE05AEA1F01121C003813C0EA3C00001F1300EA
-0FF8EA07FE3800FF801307383001C01270A238780380EA7C07B51200EAEFFEEA63F81314
-7D9318>I<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF
-E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013
-E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119
-D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC
-EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F
-F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13
-78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fp cmcsc10 10.95 12
-/Fp 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807
-FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97
-D<EB7E083803819838070078000C1338001C13185A00781308127000F01300A700701308
-127812386C1310120C000713603803818038007E0015177E961B>99
-D<B512C0EA1C011300144014601420A213081400A21318EA1FF8EA1C1813081410A21300
-14301420A21460EB01E0B5FC14177E9619>101 D<B512C0EA1C011300144014601420A2
-13081400A21318EA1FF8EA1C181308A390C7FCA6EAFFC013177E9618>I<EB7E08380381
-9838070078000C1338001C13185A00781308127000F01300A5EB03FEEB00381270127812
-387E120C1207380380D838007F0817177E961D>I<EAFF80EA1C00B3A3EAFF8009177E96
-0E>105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13
-0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110
-D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700
-70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D>
-I<EAFFFCEA1C07EB03C0130114E0A414C01303EB0700EA1FFC001CC7FCAAB47E13177E96
-19>I<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA
-001C130E13061280A3EAC004EAE008EAD810EA87E00F177E9615>115
-D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117
-D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F
-133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF
-18177F961C>120 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fq cmbx12 17.28 34
-/Fq 34 121 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<EB3FE03801FFFE0007EBFF80D80F8013C0391E003FE00038EB1FF000
-7CEB0FF8007EEB07FCB4FC018013FEA21403A2EA7F00003E1307C7FC15FCA2EC0FF8A215
-F0EC1FE015C0EC3F80EC7F00147E14F8495A495A495A49C7FC011E130E5B133849131E49
-131C485A48C7123C48B512FC5A5A5A4814F8B6FCA31F2E7CAD28>I<913A03FF80018002
-3FEBF00349B5EAFC0701079038003F0FD91FF8EB079FD93FC0EB01FFD9FF807F4848C812
-7F4848153F0007161F49150F485A001F1607A2485A1703127FA24992C7FCA212FFA9127F
-A27FEF0380123FA26C7E1707000F17006C7E6D150E0003161E6C6C151C6C6C6C1478D93F
-C05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7FCD9003F13F80203138031317CB03A>
-67 D<B812F0A3C6903880003FEE07F816031600A21778A21738A3171C1507A31700A25D
-5D5D91B5FCA3EC803F818181A21707A392C7120EA4171EA2173CA2177C17FC1601160716
-3FB812F8A330317EB035>69 D<B812E0A3C6903880007FEE0FF016031601A21600A21770
-A31738A21507A21700A35D5D5D91B5FCA3EC803F818181A592C8FCACB612C0A32D317EB0
-33>I<DA03FF1303027FEBF00749B5EAFC0F01079038007E1FD91FF0EB0FBFD97FC0EB03
-FF49487F4848C87E485A0007824848815B001F82A2484881A2127FA24992C7FC12FFAA03
-07B512F8127F7FDB00011300123FA26C7EA2120F7F6C7E12036C7E6C6C7E6D6C5BD91FF8
-497ED907FFEB3E3F01019038FFFC1F6D6CEBF00F0203EB800335317CB03F>I<B61280A3
-C6EB8000B3B3A7B61280A319317EB01E>73 D<B67EA3000190C9FCB3A9EE0380A4160717
-00A25EA35E5E5E5E4B5A150FB7FCA329317DB030>76 D<B56C49B512C08080C66D903900
-03E0006E6E5AEBEFFC13E780EBE3FF01E17F01E07F6E7E143F816E7E6E7E6E7E14036E7E
-16806E13C0ED7FE0ED3FF0151F16F8ED0FFCED07FEED03FF6F13818117C1EE7FE1EE3FF1
-EE1FF9EE0FFD160717FF828282177F173FA2171F170F486C1507B500E014031701A23A31
-7EB03F>78 D<B712E016FEEEFF80C6D9800013E0EE3FF0EE0FF8EE07FCA2EE03FEA217FF
-A717FEA2EE07FC17F8160FEE3FE0EEFFC091B6120016F80280C8FCB3A2B67EA330317EB0
-37>80 D<B77E16F816FEC690398003FF809238007FE0EE1FF0707EA283160783A65F160F
-5F4C5A4C5A4C5ADB03FFC8FC91B512F816E091388007F8ED01FC6F7E167F83707EA283A5
-83A4F0038017F8161F1900706C5AB6398003FE0E933801FFFC9338001FF039317EB03C>
-82 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780A348
-1603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<B6D88003B51280A3C60180C73807
-C000715AB3AE137F4DC7FC80013F150EA26D6C5C6D6C5C6D6C5C6D6C495A903A00FF801F
-C0023FB55A020F49C8FC020013E039317EB03E>I<B500FC91B5FCA3000390C8EA03C06C
-17806E14076C170080017F150EA26E141E013F151C6E143C011F153880010F5D8001075D
-A26E130101035D6E13036D5D15806D4AC7FCA26F5A027F130EEDE01E023F131CEDF03C02
-1F133815F8020F5BA2EDFCF002075B15FF6E5BA26E5BA26E90C8FCA3157EA2153CA23831
-7EB03D>I<EBFFF0000313FF390F803F809038C00FE0486C6C7EA26E7ED80FC07FEA0780
-C7FCA414FF131FEBFFE33803FC03EA0FF0EA1FC0123FEA7F80A2EAFF00A31407A2387F80
-0D393FC01DFE3A1FE078FFF03907FFE07FC6EB803F24207E9F27>97
-D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039FF001F8049EB0FC04914E0
-49EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB0FE06D14C001E7EB3F8090
-39C3C0FE00903880FFF89038003FC027327EB12D>I<EB0FFF017F13C03901FC01F03803
-F0033907E007F8120FEA1FC0003FEB03F0EC01E04848C7FCA312FFA8127FA36C6C131CA2
-001F14386C7E000714703903F001E03901FC07C039007FFF00EB0FF81E207D9F24>I<ED
-0FC0EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F48
-48133F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01
-FC0F3FFE38007FFEEB0FF027327DB12D>I<EB0FFC90387FFF803901FC0FC03903F003E0
-3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
-FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
-FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
-1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
-391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
-00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
-121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
-140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
-D8001F90C7FC242F7E9F28>I<EA01F812FFA3120F1207ADEC07F8EC3FFEEC783F02C013
-809039F9801FC0EBFB0001FE14E05BA35BB3B500C3B5FCA328327DB12D>I<EA03C0487E
-487E487EA46C5A6C5A6C5AC8FCA9EA01F8127FA31207B3A7B51280A311337DB217>I<EA
-01F812FFA3120F1207B3B3A6B512C0A312327DB117>108 D<2703F007F8EB1FE000FFD9
-3FFEEBFFF8913A783F01E0FC02C090388300FE280FF1801FC6137F2607F30013CC01F602
-F8148001FC5CA3495CB3B500C3B5380FFFFCA33E207D9F43>I<3903F007F800FFEB3FFE
-EC783F02C013803A0FF1801FC03807F30001F614E013FCA35BB3B500C3B5FCA328207D9F
-2D>I<EB07FC90387FFFC03901FC07F03903F001F848486C7E4848137E001F147F003F15
-8049133F007F15C0A300FF15E0A8007F15C0A36C6CEB7F80A2001F15006C6C13FE00075C
-3903F803F83901FE0FF039007FFFC0D907FCC7FC23207E9F28>I<3901F83FE000FFEBFF
-FC9038FBE07F9039FF003F80D80FFEEB1FC06C48EB0FE04914F0ED07F8A216FC1503A216
-FEA816FC1507A216F8A2ED0FF06D14E06DEB1FC06DEB3F809039FBC0FE009038F8FFF8EC
-3FC091C8FCABB512C0A3272E7E9F2D>I<3803F03F00FFEB7FC09038F1C3E01487390FF3
-0FF0EA07F6A29038FC07E0EC03C091C7FCA25BB2B512E0A31C207E9F21>114
-D<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90C7FCB47E13FC387FFFC0
-6C13F0806C7F00077F00017FEA003F01001380143F0060131F00E0130FA27E15007E6C13
-1E6C131C38FF807838F3FFF038C07F8019207D9F20>I<131CA5133CA3137CA213FC1201
-12031207381FFFFEB5FCA2D803FCC7FCB0EC0380A71201EC0700EA00FEEB7F0EEB3FFCEB
-07F0192E7FAD1F>I<D801F8EB07E000FFEB03FFA3000FEB003F0007141FB3153FA20003
-147FA26C6CEBDFF03A00FE039FFF90387FFF1FEB0FFC28207D9F2D>I<B53A1FFFE03FF8
-A33C0FF000FE0007806D150300076EEB0700816D5D00039138FF800EA26C6C486D5A15DF
-01FF153C6C9039038FE038A2D97F876D5A150702C714F0D93FCF6D5AECCE03D91FFEEBF9
-C09138FC01FD16FF010F5D4A7EA26D486DC7FCA20103147E4A133EA26D48131C35207E9F
-3A>119 D<3A7FFF807FFCA33A03FC000F006C6C131E6C6C5BEC803890387FC078013F5B
-90381FE1E090380FF3C0ECFF806D90C7FC6D5A13016D7E81815B903803DFE09038078FF0
-8190380F07FC90381E03FEEB3C01496C7E4914804848EB7FC00003EC3FE026FFFC01B5FC
-A328207F9F2B>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fr cmsy10 10.95 1
-/Fr 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fs cmbx12 14.4 55
-/Fs 55 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<EB07F8EB3FFE90B5FC3901FC07803903F00FC03807C01FEA0F80121F130048EB0F
-8091C7FC127EA3EAFE02EB1FF0EB3FFCEB603EEB801F00FF14809038000FC0A24814E0A4
-127EA4123E003F14C07EEC1F80D80F8013003807E07E6CB45A6C5B38003FC01B277DA622
->I<1238123E003FB512F0A34814E015C0158015003870000EA25C485B5C5CC6485AA249
-5A130791C7FC5B5B131E133EA2137E137CA213FCA41201A76C5A13701C297CA822>I<EB
-7F803801FFF000077F380FC0FC381F803E48487E007E1480A2140F00FE14C0A315E0A500
-7E131FA26C133F6C132F380F80CF3807FF8F0001130FEA0008010013C0A3EC1F80123E12
-7FEC3F00143E147E007E5B383E03F8381FFFE06C1380D801FEC7FC1B277DA622>57
-D<EC0780A24A7EA34A7EA24A7EA3EC77F8A2ECF7FC14E3A2903801C1FEA201037F1480A2
-49486C7EA24980010E133FA2496D7EA2013FB57EA39039700007F8A201F0804913030001
-81491301A2000381D8FFFE013F13FCA32E297EA833>65 D<B612F815FF16C03A03F8001F
-E0ED0FF0ED07F8150316FCA21501A3150316F8A2ED07F0150FED1FC0EDFF8090B5EAFE00
-EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216FFA616FE1501ED03FC1507ED1FF8B7
-12E016C0EDFE0028297DA830>I<91387FE003903907FFFC07011FEBFF0F90397FF00F9F
-9039FF0001FFD801FC7F4848147F4848143F4848141F485A160F485A1607127FA290C9FC
-5AA97E7F1607123FA26C7E160E6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF0
-07C0011FB512800107EBFE009038007FF028297CA831>I<B612FCEDFF8016E03A03FC00
-1FF8ED03FCED00FE167FEE3F80EE1FC0A2EE0FE0A2EE07F0A417F8AA17F0A3EE0FE0A217
-C0161FEE3F80EE7F005EED03FCED1FF8B75A168003FCC7FC2D297EA834>I<B712E0A339
-03FC001FED07F01501A215001670A3913801C0781638A302031300A2140F90B5FCA3EBFC
-0F1403A20201130EA3161C91C7FCA3163C1638167816F815011503151FB712F0A327297E
-A82C>I<B712C0A33903FC003FED0FE015031501A21500A316F0913801C070A316001403
-A2140F90B5FCA3EBFC0F1403A21401A491C8FCA9B512FCA324297EA82A>I<91387FE003
-903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484880484880484880
-485A82485A82127FA290CAFC5AA892B512F87E7F03001300123FA26C7EA26C7E6C7E6C7E
-6C7E6CB45B90387FF007011FB5129F0107EBFE0F9039007FF0032D297CA835>I<B5D8F0
-0FB5FCA3D803FCC7EA3FC0AF90B7FCA301FCC7123FB1B5D8F00FB5FCA330297EA835>I<
-B512F0A33803FC00B3B1B512F0A314297EA819>I<B500F0EBFFFEA3D803FCC7EA0F0016
-1E5E5E16E0ED03C04B5A4BC7FC151E5D15F04A5A4A5A1407140F4A7EEC7FF04A7EEBFDE7
-9038FFC3FCEC83FE9038FE01FF497E6F7E826F7E151F6F7E8215076F7E6F7E8281EE7F80
-B539F00FFFFEA32F297EA835>75 D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A215
-07A2150FA2151F157F913801FF00B7FCA322297EA828>I<D8FFFE92383FFF80A26D5D00
-03EFE000A2D9BF8014EFA2D99FC0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F813
-0EA2D981FC131CA3D980FE1338A2027F1370A291383F80E0A391381FC1C0A291380FE380
-A2913807F700A3EC03FEA26E5AA26E5AD8FFFE0203B51280A2157039297DA840>I<D8FF
-FCEC7FFF7F7F00036DEB01C080EBBFE0139F80EB8FF8EB87FCEB83FEEB81FF0180138014
-7F15C0EC3FE0EC1FF0EC0FF8EC07FC140315FEEC01FF6E1381ED7FC1ED3FE1ED1FF1150F
-16F9ED07FDED03FF8181167FA2163F161F160F1607D8FFFE14031601A230297EA835>I<
-ECFFC0010F13FC90383F807F9039FE001FC0D801F8EB07E048486D7E48486D7E000F8148
-486D7EA24848147FA2007F168090C8123FA34816C0AA6C16806D147FA2003F1600A26C6C
-14FEA26C6C495A6C6C495A6C6C495A6C6C495A6C6C495A90263FC0FFC7FC90380FFFFC01
-0013C02A297CA833>I<B612F815FF16C03A03FC003FE0ED07F0ED03F816FC150116FEA7
-16FC150316F8ED07F0ED3FE090B61280EDFE0001FCC8FCB0B512F0A327297EA82E>I<EC
-FFC0010F13FC90383FC0FF9039FE001FC048486D7ED803F0EB03F000078148486D7E4848
-6D7EA24848147FA2007F1680A290C8123FA24816C0AA6C16806D147FA2003F1600A26C6C
-14FE143E3A0FE07F81FC00079038C1C1F83A03F18063F0D801F9EB67E0D800FFEB3FC090
-263FC07FC7FC90380FFFFC01004913C0EC003C811601ED1F8316FF6F1380A21700816F5A
-6F5A6F5A2A357CA833>I<B612E015FE6F7E3A03FC003FE0ED0FF06F7E6F7E150182A65E
-4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC06F7E6F7E6F7EA9170EA2
-1503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>I<9038FF80600003EBF0E000
-0F13F8381F80FD383F001F003E1307481303A200FC1301A214007EA26C140013C0EA7FFC
-EBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB007FEC1FF0140F140700E013
-03A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE0000E15B38C01FF01C297CA825
->I<007FB71280A39039807F807FD87C00140F00781507A20070150300F016C0A2481501
-A5C791C7FCB3A490B612C0A32A287EA72F>I<B500F0EBFFFEA3D803FCC7EA0380B3AA00
-01ED07007F0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7FC
-2F297EA834>I<B500F0EB7FFFA3D803FEC7EA01C00001ED0380A26D14076C16006E5B01
-7F140E80013F5CA26E133C011F14386E1378010F14708001075CA26D6C485AA2ECFE0301
-015CECFF076D91C7FC1587EC7F8EA215DEEC3FDC15FC6E5AA26E5AA36E5AA26E5AA23029
-7FA833>I<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13
-016C604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E
-17F09126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035B
-A2913AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E
-141EA242297FA845>I<B500F0EB3FFFA3D803FEC7EA03C06C6C15806C6DEB07005E6D6C
-130E6E5B013F143C6D6C13386E5B010F14F06D6C5B6E485A01031303D901FF5B0387C7FC
-6D138FEC7FCE15FC143F6E5A5D140FAE0103B512C0A330297FA833>89
-D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4EB3FFF3801FC3FEA
-0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F3803FC031E1B7E9A21
->97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F09038F001F89038E0
-00FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C0FE090380FFF8039
-0E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F80EA3F00A248133E
-007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE00E3803F83C3801FF
-F838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807F03F380FC00F381F
-8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E07FFF3801FFE73800
-7F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F130048EB0F80127E15
-C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003803907C007003803
-F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC7FEA03F813F01207
-143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<9038FF80F00003EBE3
-F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E133E003F137E6C137C
-380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14C06C14E06C14F012
-1F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC01F806CB512003800
-7FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC001E413E0EBE80701
-F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA1FC0EA3FE0A3EA1F
-C0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>I<EAFFE0A3120FB3
-B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0903AC307E0C1F8D8
-0FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFFFE3FFF8FFFE0A333
-1B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC80701D813F013D0A213
-E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390FC01F80391F800FC0
-393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A2391F800FC0390FC01F
-803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFE1FE9038EFFF809038FE0FE039
-0FF803F09038F001F801E013FC140015FEA2157FA8157E15FEA215FC140101F013F89038
-F807F09038FC0FE09038EFFF809038E1FC0001E0C7FCA9EAFFFEA320277E9A25>I<38FF
-C1F0EBC7FCEBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
-D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
-13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
-C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
-AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
-07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
-0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
-FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
-EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
-FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
-803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
-00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
-3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
-EA74F0EA3FE0EA0F8020277F9A23>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ft cmtt10 10.95 91
-/Ft 91 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<EA3803387C0780A2EAEE0F1400A25B131EA213
-3EEA7C3CA2EA387CEA0078A213F85B12015BA212035BA21207EB8380EB87C0120FEB0EE0
-A2121F121EA2123E383C07C0A23818038013247E9F18>I<EA01C0EA07E0487EEA0E7048
-7EA4EB73F813F313E3380FC1C0EBC38013831303381F0700EA3F87EA7B8EEA71CEEAE1FC
-12E0137CEB7870A2EA70FE387FFFE0EA3FC7380F03C0151C7F9B18>I<1238127CA2127E
-123E120EA3121CA2123812F812F012C0070E789B18>I<137013F0EA01E0EA03C0EA0780
-EA0F00121E121C5AA25AA45AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C
-24799F18>I<126012F012787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01
-C0A2EA03801207EA0F00121E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EA
-FDDF387FFF00EA1FFCEA07F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A41114
-7D9718>I<136013F0A7387FFFC0B512E0A26C13C03800F000A7136013147E9718>I<121C
-123E127E127F123F121F1207120E121E127C12F81260080C788518>I<387FFFC0B512E0
-A26C13C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F
-14005B131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A12
-1E123E123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C
-0738380380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C07
-00EA1F1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12
-431203B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<EA03F0EA0FFEEA3FFF387C0F80387003
-C0EAE00138F000E0A21260C7FCA2EB01C0A21303EB0780EB0F00131E5B5B5B485AEA07C0
-485A381E00E05AEA7FFFB5FC7E131C7E9B18>I<131F5B1377A213E7120113C7EA038712
-071307120E121E123C1238127812F0B512F8A338000700A6EB7FF0A3151C7F9B18>52
-D<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C0780383003C0EA0001EB00E0A2126012
-F0A238E001C0EA7003387C0F80383FFF00EA1FFCEA03F0131C7E9B18>I<137E48B4FC00
-071380380F83C0EA1E03121C3838018090C7FC5AA2EAE1F8EAE7FEB5FC38FE078038F803
-C0EAF001EB00E05AA21270A3383801C0EA3C03381E0780380FFF006C5AEA01F8131C7E9B
-18>I<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13F05BA2485AA3485A
-A448C7FCA7131D7E9C18>I<EA03F8EA0FFE487E383E0F80EA3803387001C0A438380380
-EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F013E0EAE000A4387001C0EA
-7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<1230127812FCA2127812301200A8
-1230127812FCA2127812300614779318>58 D<1218123C127EA2123C12181200A8121812
-3C127EA2123E121E120E121C123C127812F01260071A789318>I<14C0EB03E01307EB1F
-C0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C7EEA0FE06C7EEA01FC6C
-7EEB3F80EB1FC0EB07E01303EB00C013187E9918>I<387FFFC0B512E0A26C13C0C8FCA4
-387FFFC0B512E0A26C13C0130C7E9318>I<126012F87E127F6C7EEA0FE06C7EEA01FC6C
-7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FC5A
-126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F38F00380A2EA600738000F00133E5B
-EA01F05B485AA55BC8FCA5EA0380487EA36C5A111C7D9B18>I<137CEA01FEEA07FF380F
-8780381E03C0EA3C1DEA387F3870FFE0EA71E313C112E1EAE380A638E1C1C0127113E338
-70FF8038387F00EA3C1C381E00E0EA0F833807FFC00001138038007E00131C7E9B18>I<
-137013F8A213D8A2EA01DCA3138CEA038EA4EA0707A5380FFF80A3EA0E03381C01C0A338
-7F07F000FF13F8007F13F0151C7F9B18>I<EA7FFCB5FC6C1380381C03C01301EB00E0A4
-130114C01307381FFF80140014C0EA1C03EB00E014F01470A414F014E01303387FFFC0B5
-1280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07FFEA0F07EA1E03EA3C01EA38005AA2
-14005AA8127014E0A27E123C381E01C0EA0F073807FF803803FE00EA00F8131C7E9B18>
-I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E01300A214F01470A814F014E0A2130114
-C01303EB0F80387FFF00485AEA7FF8141C7F9B18>I<B512F0A3381C0070A41400A2130E
-A3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A3151C7F9B18>I<B512F0A3381C0070A4
-1400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0A3141C7E9B18>I<3801F1C0EA03FD
-EA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5EB0FF0131F130F387001C0A2130312
-38A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B18>I<387F07F038FF8FF8387F07F0
-381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8387F07F0151C7F9B18>I<EA7FFFB5
-12806C1300EA01C0B3A4EA7FFFB512806C1300111C7D9B18>I<3801FFC0A338000E00B3
-12F0A2133CEA7FFCEA3FF0EA0FC0121C7D9B18>I<387F07F038FF87F8387F07F0381C03
-C0EB07801400130E131E5B13385B13F0121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380
-A2EB01C0387F03F038FF87F8387F03F0151C7F9B18>I<EAFFC0A3001CC7FCB114E0A5B5
-FCA3131C7E9B18>I<38FC01F8EAFE03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A2
-13F81370A21300A638FE03F8A3151C7F9B18>I<387E07F038FF0FF8387F07F0381D81C0
-A313C1121CA213E1A313611371A213311339A31319A2131D130DA3EA7F07EAFF87EA7F03
-151C7F9B18>I<EA0FFE383FFF804813C0EA7803EA700100F013E0EAE000B0EAF0010070
-13C0EA7C07EA7FFF6C1380380FFE00131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E0
-13001470A514E01301EB03C0EA1FFF1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA
-0FFE383FFF804813C0EA7803EA700100F013E0EAE000AE1370A2EAF079387039C0EA783F
-EA7FFF6C1380380FFE00EA000FEB0780A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE
-6C7E381C0F80130314C01301A313031480130F381FFF005BA2EA1C0F7FEB0380A5149CA3
-387F01F8EAFF81387F00F0161C7F9B18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A3
-90C7FC12701278123FEA1FF0EA07FEC67EEB0F80EB03C01301EB00E0A2126012E0130100
-F013C038F80780B5FCEBFE00EAE7F8131C7E9B18>I<387FFFF8B5FCA238E07038A40000
-1300B2EA07FFA3151C7F9B18>I<38FF83FEA3381C0070B36C13E0EA0F01380783C03803
-FF806C1300EA007C171C809B18>I<38FE03F8EAFF07EAFE03383C01E0001C13C0A3EA1E
-03000E1380A438070700A4EA038EA4EA018C13DCA3EA00D813F8A21370151C7F9B18>I<
-38FE03F8A338700070A36C13E0A513F8EA39FC13DCA2001913C0A3138CA2EA1D8DA31305
-000D1380EA0F07A2EA0E03151C7F9B18>I<387F0FE0139F130F380E0700120FEA070E13
-8EEA039C13DCEA01F8A212005B137013F07F487E13DCEA039E138EEA070F7F000E138013
-03001E13C0387F07F000FF13F8007F13F0151C7F9B18>I<38FE03F8EAFF07EAFE03381C
-01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3EA00F8A21370A9EA01FC48
-7E6C5A151C7F9B18>I<383FFFE05AA2387001C01303EB07801400C65A131E131C133C5B
-137013F0485A5B1203485A90C7FC5A001E13E0121C123C5A1270B5FCA3131C7E9B18>I<
-EAFFF8A3EAE000B3ACEAFFF8A30D24779F18>I<126012F0A27E1278127C123CA2123E12
-1E121F7EA27F12077F1203A27F12017F12007F1378A2137C133C133E131EA2131F7F1480
-1307A2EB030011247D9F18>I<EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0
-B512E0A26C13C013047E7F18>95 D<1206121E123E12381270A212E0A312F812FC127CA2
-1238070E789E18>I<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA7F
-03127812E0A3EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>I<127E12FE127E12
-0EA5133EEBFF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFF
-C0000E138038063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838030048C7FC
-A25AA61270EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<EB1F80133F
-131F1303A5EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA
-3C1F381FFFF0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F383807
-80EA7003A238E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF8000071300EA
-01F812147D9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801
-C000AEEA7FFFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C
-0EEA1E1EEA1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338
-A4007813F0EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA513
-3EEBFF80000F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>
-I<EA0380EA07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338
-137CA313381300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C
-18>I<127E12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA
-0E0F7FEB038014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201B3A4B51280A311
-1C7D9B18>I<38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB
-3E3E1714809318>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38
-FFE7FE387FC7FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E0
-00E0A5EAF001007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<
-EA7E3E38FEFF80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EB
-FFC0000E1380EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1F
-FFEA3E1FEA380FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA00
-03A7EB1FF0EB3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0
-005BA290C7FCA9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7
-FCEA7FE0EA1FFCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F01114
-7D9318>I<487E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380
-EB3E0013197F9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE
-3801FCFC1714809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700
-A3138FEA038EA3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0
-A4381C01C0137113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>
-I<387F8FF0139F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA03
-9E138EEA0707000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13
-F8007F13F0380E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC13
-78A31370A313F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA23870
-01E0EB03C0EB078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A3
-14147F9318>I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB
-1378EB7FE0131F130713247E9F18>I<126012F0B3B012600424769F18>I<127CB4FC13C0
-1203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005BABEA03C012FF90C7FC127C13247E9F18
->I<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA60C00F067C9B18>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fu cmr10 10.95 77
-/Fu 77 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<EB3FE013E0EA01C1EA0381EA07
-00A8B5FCEA0700B2383FE7FC1620809F19>I<90381F81F89038F04F043901C07C063903
-80F80FEB00F05A0270C7FCA6B7FC3907007007B23A3FE3FE3FE02320809F26>I<EA7038
-EAF87CEAFC7EA2EA743AEA0402A3EA0804A2EA1008A2EA2010EA40200F0E7F9F17>34
-D<1340A2EA03F0EA0C4EEA10413820408012600040134038C041C01343A238E04180EB40
-001270127CEA3FC0EA1FF86C7EEA03FEEA007FEB4F801343EB41C0A2EAF040A312801480
-EA404100201300EA3042EA0C4CEA03F0EA0040A312257EA117>36
-D<127012F812FCA212741204A31208A21210A212201240060E7C9F0D>39
-D<13401380EA01005A12061204120C5AA212381230A212701260A412E0AC1260A4127012
-30A212381218A27E120412067E7EEA008013400A2E7BA112>I<7E12407E12307E120812
-0C7EA212077EA213801201A413C0AC1380A412031300A25A1206A25A120812185A12205A
-5A0A2E7EA112>I<127012F012F8A212781208A31210A31220A21240050E7C840D>44
-D<EAFFF0A20C02808A0F>I<127012F8A3127005057C840D>I<144014C0EB0180A3EB0300
-A31306A25BA35BA35BA25BA35BA3485AA348C7FCA21206A35AA35AA25AA35AA35AA2122D
-7EA117>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
-0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>I<13801203120F12F31203B3A6EA
-07C0EA7FFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF803
-A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380EA
-3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F1200
-1400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F013801240
-EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2EA
-010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17>
-I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214C0
-A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137CEA
-0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406EA
-F807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D17
->I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E05B
-1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A31270
-38780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01C0
-12C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E18
-487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E338000380
-A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A312
-701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A212
-781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB20
-78A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14E0
-39FF801FFE1F207F9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEBFF
-F0EB007C141FEC0F80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E20
->I<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A15
-10127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E003
-00EB380CEB0FF01C217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F0157015
-78A2153CA3153EA8153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F7F
-9E23>I<B61280380F000F14031401140015C01540A314401500A214C0130113FF130113
-001440A3EC0020A31540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B6128038078007
-1401A2140015C01540A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE1A
-1F7F9E1E>I<90380FE02090387818609038E004E03803800238070001481300001E1460
-A25A1520127C127800F81400A7EC7FFCEC03E000781301127C123CA27EA27E7E38038002
-3900E00460903878182090380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5FC
-EB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<39FFF0
-07FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E01341
-EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75
-D<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>I<B4
-6CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A29038
-0E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>
-I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03
-C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22
->I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14
-F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C0
-6C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80
-EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>82
-D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8
-6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180
-38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014
-3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00
-80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003
-FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213
-F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0
-7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003
-5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14
-4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39
-FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06
-EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89
-D<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<EA0804EA1008EA2010A2EA4020A2EA80
-40A3EAB85CEAFC7EA2EA7C3EEA381C0F0E7A9F17>I<12FFA21203B3B3A512FFA2082D80
-A10D>I<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fv cmbx12 20.736 14
-/Fv 14 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3170FA3171FA2173F177F
-17FF5E04071300163FB9FCA4323B7DBA3A>76 D<B500F00207B512E0808080D8007F9239
-0007E0006E6F5A81017B7F81137901787F6E7E6E7E81141F6E7E6E7F6E7F82806E7F6F7E
-6F7E826F7E816F13806F13C017E06F13F081EE7FF8EE3FFC17FEEE1FFF827013837013C3
-18E37013F382EF7FFBEF3FFFA283838383A28383187F183FA201FC161FB500FC150F1807
-1803A2433B7CBA4C>78 D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F71
-7E717EA284171FA284A660A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A291
-39F0007FF0EE1FF8707E707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B6
-00F890393FFC078094381FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<EE3F80ED
-3FFFA4150181B0ECFF80010F13F0013F13FC9038FFC03F3901FE000F4848130348487F48
-487F121F485AA2127F5BA312FFA9127FA36C7EA2121F6C6C5B6C6C5B00035CD801FE011F
-13C02700FF807E13FE90387FFFF8010F13E0010113002F3C7DBB36>100
-D<49B47E010F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0
-485A003F15F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F00
-0F15F06C6C13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013
-C025267DA52C>I<EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA4
-12071203B3AAB512F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A415
-3C7DBB1A>108 D<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701
-607F0003497E01FD15805C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>110
-D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2
-01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E137C017F14786E13F801
-3F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391C7FC6E5A6D131E15BE
-6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C141E0008133E007F133C
-147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA1FFCEA07F02E377EA5
-33>121 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%BeginPaperSize: Letter
-letter
-%%EndPaperSize
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 75 659 a Fv(GNU)33 b(Readline)h(Library)p 75
-709 1800 17 v 936 757 a Fu(Edition)17 b(4.3,)c(for)i
-Ft(Readline)f(Library)g Fu(V)l(ersion)i(4.3.)1643 811
-y(Marc)o(h)e(2002)75 2467 y Fs(Brian)23 b(F)-6 b(o)n(x,)23
-b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75
-2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
-b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop
-%%Page: 2 2
-2 1 bop 75 217 a Fu(This)14 b(do)q(cumen)o(t)h(describ)q(es)g(the)f
-(GNU)g(Readline)h(Library)l(,)f(a)g(utilit)o(y)h(whic)o(h)f(aids)g(in)h
-(the)f(consistency)75 271 y(of)h(user)g(in)o(terface)h(across)e
-(discrete)i(programs)e(that)h(need)h(to)e(pro)o(vide)i(a)f(command)g
-(line)i(in)o(terface.)75 339 y(Published)g(b)o(y)f(the)f(F)l(ree)g
-(Soft)o(w)o(are)f(F)l(oundation)75 394 y(59)h(T)l(emple)h(Place,)f
-(Suite)i(330,)75 448 y(Boston,)d(MA)h(02111)f(USA)75
-516 y(P)o(ermission)j(is)f(gran)o(ted)g(to)f(mak)o(e)h(and)g
-(distribute)i(v)o(erbatim)d(copies)i(of)f(this)h(man)o(ual)f(pro)o
-(vided)h(the)75 570 y(cop)o(yrigh)o(t)e(notice)h(and)f(this)h(p)q
-(ermission)g(notice)g(are)f(preserv)o(ed)h(on)f(all)h(copies.)75
-638 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g(cop)o(y)h(and)g
-(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h(man)o(ual)g
-(under)h(the)f(con-)75 692 y(ditions)k(for)e(v)o(erbatim)h(cop)o(ying,)
-g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g(deriv)o(ed)g(w)o
-(ork)e(is)h(distributed)75 747 y(under)h(the)f(terms)g(of)g(a)f(p)q
-(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-814 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 869 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 924 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fr(\015)h Fu(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(1)75 149 y Fq(1)41 b(Command)28 b(Line)e(Editing)137
-271 y Fu(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
-(of)g(the)g Fp(gnu)g Fu(command)g(line)i(editing)f(in)o(terface.)75
-403 y Fs(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
-501 y Fu(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
-(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137
-569 y(The)h(text)f Fo(C-k)h Fu(is)g(read)g(as)f(`Con)o(trol-K')g(and)h
-(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831
-567 y Fn(h)p 1844 541 19 2 v 1844 569 a Fm(k)p 1844 577
-V 1860 567 a Fn(i)75 624 y Fu(k)o(ey)d(is)h(pressed)g(while)g(the)f
-(Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g
-Fo(M-k)f Fu(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o
-(haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y)
-o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930
-745 y Fn(h)p 942 719 V 942 747 a Fm(k)p 942 755 V 958
-745 a Fn(i)987 747 y Fu(k)o(ey)g(is)h(pressed.)20 b(The)15
-b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Fn(h)p 1791
-719 72 2 v 1791 747 a Fm(AL)m(T)p 1791 755 V 1860 745
-a Fn(i)75 802 y Fu(on)e(man)o(y)g(k)o(eyb)q(oards.)19
-b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled)
-1213 800 y Fn(h)p 1225 774 V 1225 802 a Fm(AL)m(T)p 1225
-810 V 1294 800 a Fn(i)1322 802 y Fu(\(usually)i(to)e(either)i(side)g
-(of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Fn(h)p
-400 829 V 400 857 a Fm(AL)m(T)p 400 865 V 469 855 a Fn(i)499
-857 y Fu(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g
-(as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Fn(h)p
-1709 829 V 1709 857 a Fm(AL)m(T)p 1709 865 V 1778 855
-a Fn(i)1808 857 y Fu(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f
-(also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g
-(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967
-y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g
-(for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035
-y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694
-1033 y Fn(h)p 706 1007 V 706 1035 a Fm(AL)m(T)p 706 1043
-V 775 1033 a Fn(i)801 1035 y Fu(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w)
-o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75
-1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping)
-809 1088 y Fn(h)p 822 1062 70 2 v 822 1090 a Fm(ESC)p
-822 1098 V 888 1088 a Fn(i)915 1090 y Fl(\014rst)p Fu(,)g(and)g(then)h
-(t)o(yping)1339 1088 y Fn(h)p 1351 1062 19 2 v 1351 1090
-a Fm(k)p 1351 1098 V 1368 1088 a Fn(i)1383 1090 y Fu(.)18
-b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j
-Fk(metafying)k Fu(the)425 1143 y Fn(h)p 437 1117 V 437
-1145 a Fm(k)p 437 1153 V 454 1143 a Fn(i)484 1145 y Fu(k)o(ey)l(.)137
-1214 y(The)i(text)e Fo(M-C-k)h Fu(is)h(read)f(as)f(`Meta-Con)o(trol-k')
-g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75
-1268 y Fk(metafying)e Fo(C-k)p Fu(.)137 1337 y(In)g(addition,)h(sev)o
-(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30
-b(Sp)q(eci\014cally)l(,)1384 1335 y Fn(h)p 1396 1309
-73 2 v 1396 1337 a Fm(DEL)p 1396 1345 V 1467 1335 a Fn(i)1482
-1337 y Fu(,)1514 1335 y Fn(h)p 1526 1309 70 2 v 1526
-1337 a Fm(ESC)p 1526 1345 V 1593 1335 a Fn(i)1608 1337
-y Fu(,)1640 1335 y Fn(h)p 1652 1309 72 2 v 1652 1337
-a Fm(LFD)p 1652 1345 V 1722 1335 a Fn(i)1737 1337 y Fu(,)1768
-1335 y Fn(h)p 1780 1309 70 2 v 1780 1337 a Fm(SPC)p 1780
-1345 V 1847 1335 a Fn(i)1862 1337 y Fu(,)75 1390 y Fn(h)p
-87 1364 76 2 v 87 1392 a Fm(RET)p 87 1399 V 160 1390
-a Fn(i)175 1392 y Fu(,)23 b(and)306 1390 y Fn(h)p 318
-1364 74 2 v 318 1392 a Fm(T)m(AB)p 318 1399 V 390 1390
-a Fn(i)427 1392 y Fu(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f
-(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75
-1447 y(Section)d(1.3)f([Readline)h(Init)g(File],)h(page)e(4\).)32
-b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444
-1445 y Fn(h)p 1456 1419 72 2 v 1456 1447 a Fm(LFD)p 1456
-1454 V 1526 1445 a Fn(i)1560 1447 y Fu(k)o(ey)l(,)h(t)o(yping)1802
-1445 y Fn(h)p 1814 1419 49 2 v 1814 1447 a Fm(C-j)p 1814
-1454 V 1860 1445 a Fn(i)75 1501 y Fu(will)c(pro)q(duce)g(the)f(desired)
-h(c)o(haracter.)j(The)874 1499 y Fn(h)p 886 1473 76 2
-v 886 1501 a Fm(RET)p 886 1509 V 959 1499 a Fn(i)989
-1501 y Fu(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499
-y Fn(h)p 1397 1473 109 2 v 1397 1501 a Fm(Return)p 1397
-1509 V 1503 1499 a Fn(i)1533 1501 y Fu(or)1588 1499 y
-Fn(h)p 1600 1473 86 2 v 1600 1501 a Fm(En)o(ter)p 1600
-1509 V 1684 1499 a Fn(i)1714 1501 y Fu(on)f(some)75 1556
-y(k)o(eyb)q(oards.)75 1688 y Fs(1.2)33 b(Readline)23
-b(In)n(teraction)137 1786 y Fu(Often)13 b(during)h(an)e(in)o(teractiv)o
-(e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)
-h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h
-(the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)i(library)f
-(giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75
-1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)
-g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g
-(and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s
-(jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h
-(commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005
-y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f
-(insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75
-2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o
-(ou)e(simply)i(press)1160 2058 y Fn(h)p 1172 2032 76
-2 v 1172 2060 a Fm(RET)p 1172 2068 V 1245 2058 a Fn(i)1260
-2060 y Fu(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f
-(the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563
-2113 y Fn(h)p 575 2087 V 575 2115 a Fm(RET)p 575 2122
-V 648 2113 a Fn(i)663 2115 y Fu(;)i(the)f(en)o(tire)h(line)g(is)g
-(accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75
-2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fj(1.2.1)30
-b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fu(In)12
-b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h
-(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f
-(app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h
-(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23
-b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h
-(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h
-(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560
-y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f
-(and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t)
-o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19
-b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fo(C-b)f
-Fu(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75
-2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13
-b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g
-(with)g Fo(C-f)p Fu(.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fu(2)1322 b(GNU)15 b(Readline)h(Library)137
-149 y(When)h(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j
-(y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75
-204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h
-(ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21
-b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j
-(the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h
-(cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e
-(blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h
-(text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75
-369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o
-(ws.)75 449 y Fo(C-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o
-(haracter.)75 530 y Fo(C-f)168 b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h
-(c)o(haracter.)75 608 y Fn(h)p 87 582 73 2 v 87 610 a
-Fm(DEL)p 87 618 V 158 608 a Fn(i)188 610 y Fu(or)244
-608 y Fn(h)p 256 582 159 2 v 256 610 a Fm(Bac)o(kspace)p
-256 618 V 412 608 a Fn(i)315 665 y Fu(Delete)h(the)f(c)o(haracter)g(to)
-f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fo(C-d)168
-b Fu(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
-825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o
-(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
-961 y Fo(C-_)g Fu(or)f Fo(C-x)h(C-u)315 1015 y Fu(Undo)i(the)g(last)f
-(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o
-(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75
-1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863
-1149 y Fn(h)p 875 1123 V 875 1151 a Fm(Bac)o(kspace)p
-875 1159 V 1032 1149 a Fn(i)1063 1151 y Fu(k)o(ey)g(b)q(e)h(set)f(to)f
-(delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h
-(cursor)f(and)g(the)596 1204 y Fn(h)p 608 1178 73 2 v
-608 1206 a Fm(DEL)p 608 1213 V 679 1204 a Fn(i)710 1206
-y Fu(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h
-(the)g(cursor,)f(lik)o(e)75 1260 y Fo(C-d)p Fu(,)e(rather)h(than)g(the)
-g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75
-1374 y Fj(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
-1471 y Fu(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e
-(basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g
-(do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12
-b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o
-(e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fo(C-b)p
-Fu(,)h Fo(C-f)p Fu(,)f Fo(C-d)p Fu(,)g(and)522 1578 y
-Fn(h)p 534 1552 V 534 1580 a Fm(DEL)p 534 1588 V 605
-1578 a Fn(i)619 1580 y Fu(.)23 b(Here)16 b(are)g(some)f(commands)h(for)
-f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635
-y(line.)75 1716 y Fo(C-a)168 b Fu(Mo)o(v)o(e)14 b(to)h(the)g(start)f
-(of)h(the)g(line.)75 1796 y Fo(C-e)168 b Fu(Mo)o(v)o(e)14
-b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fo(M-f)168
-b Fu(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h
-(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957
-y Fo(M-b)168 b Fu(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75
-2037 y Fo(C-l)168 b Fu(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f
-(curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f
-Fo(C-f)g Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i
-Fo(M-f)e Fu(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18
-b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con)
-o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h
-(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75
-2341 y Fj(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137
-2438 y Fk(Killing)26 b Fu(text)18 b(means)g(to)g(delete)i(the)f(text)f
-(from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)
-h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fk(y)o(anking)22
-b Fu(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27
-b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75
-2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137
-2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h
-(it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o
-(ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o
-(t)g(\(or)g(the)g(same\))g(place)h(later.)p eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g
-(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fk(kill-ring)p Fu(.)21
-b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75
-204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d
-(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o
-(ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i
-(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g
-(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75
-314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f
-(are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g
-(of)e(commands)h(for)g(killing)j(text.)75 458 y Fo(C-k)168
-b Fu(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q
-(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y
-Fo(M-d)168 b Fu(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e
-(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)
-e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q
-(oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f
-Fo(M-f)p Fu(.)75 668 y Fo(M-)123 666 y Fn(h)p 135 640
-73 2 v 135 668 a Fm(DEL)p 135 675 V 206 666 a Fn(i)315
-668 y Fu(Kill)i(from)e(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o
-(t)g(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)e(to)h(the)315
-723 y(start)j(of)h(the)g(previous)h(w)o(ord.)31 b(W)l(ord)19
-b(b)q(oundaries)h(are)f(the)h(same)e(as)h(those)g(used)h(b)o(y)315
-777 y Fo(M-b)p Fu(.)75 855 y Fo(C-w)168 b Fu(Kill)18
-b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22
-b(This)16 b(is)g(di\013eren)o(t)g(than)f Fo(M-)1777 853
-y Fn(h)p 1789 827 V 1789 855 a Fm(DEL)p 1789 863 V 1860
-853 a Fn(i)315 910 y Fu(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h
-(di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fk(y)o(ank)j
-Fu(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21
-b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d
-(text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fo(C-y)168
-b Fu(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g
-(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198
-y Fo(M-y)168 b Fu(Rotate)16 b(the)h(kill-ring,)j(and)d(y)o(ank)g(the)h
-(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h(prior)
-315 1252 y(command)d(is)h Fo(C-y)f Fu(or)f Fo(M-y)p Fu(.)75
-1361 y Fj(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457
-y Fu(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g
-(Readline)h(commands.)20 b(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
-1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f
-(the)g Fl(sign)j Fu(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o
-(t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)
-f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g
-(direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o
-(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o
-(k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g
-(t)o(yp)q(e)g(`)p Ft(M--)f(C-k)p Fu('.)137 1742 y(The)h(general)f(w)o
-(a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)
-h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797
-y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a)
-g(min)o(us)g(sign)g(\(`)p Ft(-)p Fu('\),)d(then)j(the)f(sign)h(of)f
-(the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31
-b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h
-(to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75
-1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g
-(then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f
-Fo(C-d)75 1961 y Fu(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f
-(could)i(t)o(yp)q(e)f(`)p Ft(M-1)14 b(0)h(C-d)p Fu(',)k(whic)o(h)g
-(will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14
-b(on)i(the)f(input)h(line.)75 2125 y Fj(1.2.5)30 b(Searc)n(hing)21
-b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fu(Readline)d(pro)o
-(vides)e(commands)g(for)g(searc)o(hing)g(through)g(the)g(command)g
-(history)g(for)g(lines)i(con-)75 2275 y(taining)e(a)f(sp)q(eci\014ed)i
-(string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20
-b Fk(incremen)o(tal)e Fu(and)e Fk(non-incremen)o(tal)p
-Fu(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f
-(the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.)
-19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g
-(string)f(is)h(t)o(yp)q(ed,)h(Readline)g(displa)o(ys)f(the)g(next)g(en)
-o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12
-b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g
-(searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75
-2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l
-(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g
-(a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fo(C-r)p
-Fu(.)k(T)o(yping)d Fo(C-s)e Fu(searc)o(hes)h(forw)o(ard)e(through)h
-(the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75
-2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Ft(isearch-terminators)d
-Fu(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75
-2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q
-(een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Fn(h)p
-1301 2642 70 2 v 1301 2670 a Fm(ESC)p 1301 2678 V 1368
-2668 a Fn(i)1402 2670 y Fu(and)e Fo(C-J)f Fu(c)o(haracters)g(will)p
-eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fu(4)1322 b(GNU)15 b(Readline)h(Library)75
-149 y(terminate)21 b(an)g(incremen)o(tal)i(searc)o(h.)37
-b Fo(C-g)21 b Fu(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f
-(and)g(restore)g(the)75 204 y(original)16 b(line.)21
-b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o
-(try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259
-y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 325 y(T)l(o)g(\014nd)i
-(other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o
-(yp)q(e)f Fo(C-r)g Fu(or)g Fo(C-s)g Fu(as)h(appropriate.)k(This)75
-380 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i
-(the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g
-(searc)o(h)g(string)75 434 y(t)o(yp)q(ed)19 b(so)g(far.)30
-b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
-h(command)e(will)j(terminate)e(the)75 489 y(searc)o(h)10
-b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063
-487 y Fn(h)p 1076 461 76 2 v 1076 489 a Fm(RET)p 1076
-497 V 1149 487 a Fn(i)1174 489 y Fu(will)g(terminate)f(the)g(searc)o(h)
-f(and)h(accept)75 544 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g
-(command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f
-(command)g(will)75 599 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g
-(last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g
-(editing.)137 665 y(Readline)j(remem)o(b)q(ers)e(the)h(last)f(incremen)
-o(tal)i(searc)o(h)e(string.)27 b(If)17 b(t)o(w)o(o)f
-Fo(C-r)p Fu(s)h(are)g(t)o(yp)q(ed)h(without)75 719 y(an)o(y)g(in)o
-(terv)o(ening)h(c)o(haracters)f(de\014ning)h(a)f(new)h(searc)o(h)f
-(string,)g(an)o(y)g(remem)o(b)q(ered)h(searc)o(h)f(string)g(is)75
-774 y(used.)137 840 y(Non-incremen)o(tal)25 b(searc)o(hes)e(read)h(the)
-f(en)o(tire)h(searc)o(h)f(string)g(b)q(efore)h(starting)f(to)f(searc)o
-(h)i(for)75 895 y(matc)o(hing)d(history)h(lines.)39 b(The)22
-b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f
-(user)h(or)e(b)q(e)i(part)f(of)g(the)75 950 y(con)o(ten)o(ts)15
-b(of)f(the)i(curren)o(t)f(line.)75 1074 y Fs(1.3)33 b(Readline)23
-b(Init)h(File)137 1169 y Fu(Although)f(the)g(Readline)h(library)f
-(comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g
-(installed)75 1224 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e
-(use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39
-b(An)o(y)20 b(user)h(can)g(customize)75 1278 y(programs)15
-b(that)h(use)g(Readline)i(b)o(y)e(putting)g(commands)g(in)i(an)e
-Fk(inputrc)k Fu(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75
-1333 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g
-(is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g
-(v)m(ariable)75 1388 y Ft(INPUTRC)p Fu(.)i(If)c(that)g(v)m(ariable)h
-(is)g(unset,)f(the)g(default)h(is)g(`)p Ft(~/.inputrc)p
-Fu('.)137 1454 y(When)f(a)g(program)f(whic)o(h)h(uses)g(the)g(Readline)
-h(library)g(starts)d(up,)i(the)g(init)h(\014le)g(is)f(read,)g(and)g
-(the)75 1509 y(k)o(ey)g(bindings)i(are)e(set.)137 1574
-y(In)f(addition,)h(the)e Ft(C-x)i(C-r)e Fu(command)g(re-reads)h(this)g
-(init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75
-1629 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75
-1737 y Fj(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
-1832 y Fu(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w)
-o(ed)i(in)f(the)g(Readline)h(init)g(\014le.)26 b(Blank)18
-b(lines)g(are)75 1886 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d
-(a)h(`)p Ft(#)p Fu(')e(are)h(commen)o(ts.)35 b(Lines)22
-b(b)q(eginning)h(with)e(a)f(`)p Ft($)p Fu(')f(indicate)75
-1941 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f
-([Conditional)h(Init)h(Constructs],)e(page)h(9\).)k(Other)c(lines)75
-1996 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75
-2073 y(V)l(ariable)h(Settings)315 2128 y(Y)l(ou)k(can)h(mo)q(dify)g
-(the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)j(b)o(y)e(altering)h
-(the)f(v)m(alues)h(of)315 2182 y(v)m(ariables)d(in)g(Readline)g(using)f
-(the)g Ft(set)g Fu(command)f(within)i(the)f(init)h(\014le.)26
-b(The)17 b(syn)o(tax)315 2237 y(is)f(simple:)435 2300
-y Ft(set)23 b Fk(v)m(ariable)28 b(v)m(alue)315 2366 y
-Fu(Here,)14 b(for)f(example,)h(is)g(ho)o(w)f(to)g(c)o(hange)h(from)f
-(the)h(default)g(Emacs-lik)o(e)h(k)o(ey)e(binding)j(to)315
-2421 y(use)g Ft(vi)e Fu(line)j(editing)g(commands:)435
-2484 y Ft(set)23 b(editing-mode)g(vi)315 2549 y Fu(V)l(ariable)c(names)
-e(and)h(v)m(alues,)h(where)e(appropriate,)h(are)f(recognized)i(without)
-e(regard)315 2604 y(to)e(case.)315 2670 y(A)g(great)g(deal)g(of)g
-(run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)h(follo)o
-(wing)f(v)m(ariables.)p eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(5)315 149 y Ft(bell-style)555 204 y Fu(Con)o(trols)21
-b(what)h(happ)q(ens)h(when)f(Readline)h(w)o(an)o(ts)e(to)g(ring)i(the)f
-(termi-)555 259 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p
-Ft(none)p Fu(',)g(Readline)i(nev)o(er)f(rings)g(the)f(b)q(ell.)32
-b(If)19 b(set)g(to)555 314 y(`)p Ft(visible)p Fu(',)c(Readline)i(uses)g
-(a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26
-b(If)16 b(set)h(to)555 369 y(`)p Ft(audible)p Fu(')g(\(the)h
-(default\),)i(Readline)g(attempts)e(to)g(ring)h(the)g(terminal's)555
-423 y(b)q(ell.)315 504 y Ft(comment-begin)555 559 y Fu(The)c(string)f
-(to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g
-Ft(insert-)555 614 y(comment)f Fu(command)h(is)h(executed.)21
-b(The)15 b(default)h(v)m(alue)g(is)g Ft("#")p Fu(.)315
-694 y Ft(completion-ignore-case)555 749 y Fu(If)e(set)f(to)g(`)p
-Ft(on)p Fu(',)g(Readline)i(p)q(erforms)e(\014lename)i(matc)o(hing)f
-(and)g(completion)555 804 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k
-(The)15 b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)315
-884 y Ft(completion-query-items)555 939 y Fu(The)d(n)o(um)o(b)q(er)h
-(of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f
-(user)555 994 y(is)21 b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i
-(see)g(the)g(list)h(of)e(p)q(ossibilitie)q(s.)40 b(If)21
-b(the)555 1049 y(n)o(um)o(b)q(er)14 b(of)f(p)q(ossible)i(completions)f
-(is)g(greater)f(than)g(this)h(v)m(alue,)h(Readline)555
-1104 y(will)g(ask)e(the)g(user)h(whether)f(or)g(not)g(he)g(wishes)h(to)
-f(view)h(them;)f(otherwise,)555 1158 y(they)f(are)g(simply)i(listed.)20
-b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger)
-h(v)m(alue)555 1213 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d
-(default)f(limit)i(is)f Ft(100)p Fu(.)315 1294 y Ft(convert-meta)555
-1348 y Fu(If)11 b(set)g(to)g(`)p Ft(on)p Fu(',)f(Readline)i(will)h(con)
-o(v)o(ert)d(c)o(haracters)h(with)g(the)g(eigh)o(th)h(bit)f(set)555
-1403 y(to)f(an)h Fp(asci)q(i)e Fu(k)o(ey)i(sequence)g(b)o(y)g
-(stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555
-1456 y Fn(h)p 567 1430 70 2 v 567 1458 a Fm(ESC)p 567
-1466 V 634 1456 a Fn(i)666 1458 y Fu(c)o(haracter,)k(con)o(v)o(erting)h
-(them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555
-1513 y(The)e(default)h(v)m(alue)h(is)e(`)p Ft(on)p Fu('.)315
-1593 y Ft(disable-completion)555 1648 y Fu(If)k(set)f(to)f(`)p
-Ft(On)p Fu(',)h(Readline)i(will)g(inhibit)g(w)o(ord)e(completion.)30
-b(Completion)555 1703 y(c)o(haracters)12 b(will)j(b)q(e)f(inserted)g
-(in)o(to)f(the)g(line)h(as)f(if)h(they)f(had)g(b)q(een)h(mapp)q(ed)555
-1758 y(to)h Ft(self-insert)p Fu(.)j(The)d(default)h(is)g(`)p
-Ft(off)p Fu('.)315 1838 y Ft(editing-mode)555 1893 y
-Fu(The)f Ft(editing-mode)d Fu(v)m(ariable)k(con)o(trols)e(whic)o(h)h
-(default)g(set)f(of)g(k)o(ey)g(bind-)555 1948 y(ings)f(is)g(used.)20
-b(By)12 b(default,)i(Readline)f(starts)f(up)h(in)g(Emacs)f(editing)i
-(mo)q(de,)555 2003 y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g
-(similar)i(to)d(Emacs.)20 b(This)15 b(v)m(ariable)h(can)555
-2058 y(b)q(e)g(set)f(to)f(either)i(`)p Ft(emacs)p Fu(')e(or)h(`)p
-Ft(vi)p Fu('.)315 2138 y Ft(enable-keypad)555 2193 y
-Fu(When)d(set)f(to)h(`)p Ft(on)p Fu(',)e(Readline)j(will)h(try)d(to)g
-(enable)i(the)f(application)h(k)o(eypad)555 2248 y(when)h(it)f(is)h
-(called.)21 b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g
-(arro)o(w)e(k)o(eys.)555 2303 y(The)j(default)h(is)g(`)p
-Ft(off)p Fu('.)315 2383 y Ft(expand-tilde)555 2438 y
-Fu(If)e(set)g(to)f(`)p Ft(on)p Fu(',)f(tilde)k(expansion)e(is)h(p)q
-(erformed)f(when)g(Readline)h(attempts)555 2493 y(w)o(ord)g
-(completion.)21 b(The)15 b(default)h(is)f(`)p Ft(off)p
-Fu('.)555 2560 y(If)g(set)g(to)f(`)p Ft(on)p Fu(',)g(the)g(history)h
-(co)q(de)h(attempts)e(to)g(place)i(p)q(oin)o(t)f(at)f(the)h(same)555
-2615 y(lo)q(cation)20 b(on)f(eac)o(h)g(history)h(line)g(retriv)o(ed)g
-(with)f Ft(previous-history)e Fu(or)555 2670 y Ft(next-history)p
-Fu(.)p eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fu(6)1322 b(GNU)15 b(Readline)h(Library)315
-149 y Ft(horizontal-scroll-mode)555 204 y Fu(This)j(v)m(ariable)g(can)f
-(b)q(e)g(set)g(to)f(either)i(`)p Ft(on)p Fu(')e(or)g(`)p
-Ft(off)p Fu('.)27 b(Setting)19 b(it)f(to)f(`)p Ft(on)p
-Fu(')555 259 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q(eing)
-f(edited)g(will)h(scroll)f(horizon)o(tally)555 314 y(on)i(a)f(single)i
-(screen)g(line)g(when)g(they)f(are)f(longer)h(than)g(the)g(width)g(of)g
-(the)555 369 y(screen,)e(instead)f(of)g(wrapping)g(on)o(to)f(a)h(new)g
-(screen)h(line.)21 b(By)13 b(default,)h(this)555 423
-y(v)m(ariable)j(is)e(set)g(to)g(`)p Ft(off)p Fu('.)315
-506 y Ft(input-meta)555 560 y Fu(If)h(set)f(to)g(`)p
-Ft(on)p Fu(',)f(Readline)j(will)h(enable)e(eigh)o(t-bit)h(input)f(\(it)
-g(will)h(not)e(clear)555 615 y(the)20 b(eigh)o(th)g(bit)g(in)h(the)f(c)
-o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)555
-670 y(terminal)i(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20
-b(default)h(v)m(alue)g(is)g(`)p Ft(off)p Fu('.)33 b(The)555
-725 y(name)15 b Ft(meta-flag)f Fu(is)i(a)f(synon)o(ym)g(for)f(this)i(v)
-m(ariable.)315 807 y Ft(isearch-terminators)555 862 y
-Fu(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f
-(an)g(incremen)o(tal)555 917 y(searc)o(h)12 b(without)h(subsequen)o
-(tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555
-971 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40
-b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 1026 y(b)q(een)17
-b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247
-1024 y Fn(h)p 1259 998 70 2 v 1259 1026 a Fm(ESC)p 1259
-1034 V 1326 1024 a Fn(i)1357 1026 y Fu(and)g Fo(C-J)f
-Fu(will)i(terminate)f(an)555 1081 y(incremen)o(tal)g(searc)o(h.)315
-1163 y Ft(keymap)96 b Fu(Sets)19 b(Readline's)i(idea)f(of)f(the)g
-(curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555
-1218 y(mands.)41 b(Acceptable)23 b Ft(keymap)f Fu(names)g(are)f
-Ft(emacs)p Fu(,)i Ft(emacs-standard)p Fu(,)555 1273 y
-Ft(emacs-meta)p Fu(,)49 b Ft(emacs-ctlx)p Fu(,)g Ft(vi)p
-Fu(,)h Ft(vi-move)p Fu(,)f Ft(vi-command)p Fu(,)g(and)555
-1328 y Ft(vi-insert)p Fu(.)31 b Ft(vi)20 b Fu(is)g(equiv)m(alen)o(t)h
-(to)e Ft(vi-command)p Fu(;)g Ft(emacs)g Fu(is)h(equiv)m(alen)o(t)555
-1382 y(to)15 b Ft(emacs-standard)p Fu(.)20 b(The)d(default)f(v)m(alue)h
-(is)g Ft(emacs)p Fu(.)k(The)16 b(v)m(alue)h(of)f(the)555
-1437 y Ft(editing-mode)e Fu(v)m(ariable)i(also)f(a\013ects)g(the)g
-(default)h(k)o(eymap.)315 1519 y Ft(mark-directories)555
-1574 y Fu(If)j(set)g(to)g(`)p Ft(on)p Fu(',)f(completed)i(directory)g
-(names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1629
-y(The)15 b(default)h(is)g(`)p Ft(on)p Fu('.)315 1711
-y Ft(mark-modified-lines)555 1766 y Fu(This)j(v)m(ariable,)g(when)g
-(set)e(to)h(`)p Ft(on)p Fu(',)f(causes)h(Readline)h(to)e(displa)o(y)i
-(an)f(as-)555 1821 y(terisk)f(\(`)p Ft(*)p Fu('\))e(at)i(the)f(start)g
-(of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q
-(di\014ed.)555 1875 y(This)e(v)m(ariable)g(is)g(`)p Ft(off)p
-Fu(')e(b)o(y)h(default.)315 1958 y Ft(mark-symlinked-directories)555
-2012 y Fu(If)23 b(set)f(to)f(`)p Ft(on)p Fu(',)i(completed)g(names)g
-(whic)o(h)g(are)f(sym)o(b)q(olic)i(links)f(to)f(di-)555
-2067 y(rectories)h(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(\(sub)s(ject)
-e(to)f(the)i(v)m(alue)g(of)f Ft(mark-)555 2122 y(directories)p
-Fu(\).)18 b(The)d(default)h(is)g(`)p Ft(off)p Fu('.)315
-2204 y Ft(match-hidden-files)555 2259 y Fu(This)c(v)m(ariable,)h(when)e
-(set)g(to)g(`)p Ft(on)p Fu(',)f(causes)h(Readline)i(to)d(matc)o(h)h
-(\014les)h(whose)555 2314 y(names)22 b(b)q(egin)h(with)g(a)e(`)p
-Ft(.)p Fu(')h(\(hidden)h(\014les\))g(when)f(p)q(erforming)h(\014lename)
-555 2369 y(completion,)g(unless)f(the)f(leading)h(`)p
-Ft(.)p Fu(')e(is)h(supplied)i(b)o(y)e(the)f(user)h(in)h(the)555
-2423 y(\014lename)16 b(to)f(b)q(e)h(completed.)21 b(This)15
-b(v)m(ariable)i(is)f(`)p Ft(on)p Fu(')e(b)o(y)h(default.)315
-2506 y Ft(output-meta)555 2560 y Fu(If)j(set)f(to)g(`)p
-Ft(on)p Fu(',)g(Readline)i(will)h(displa)o(y)f(c)o(haracters)d(with)j
-(the)e(eigh)o(th)h(bit)555 2615 y(set)g(directly)i(rather)d(than)h(as)g
-(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555
-2670 y(default)16 b(is)f(`)p Ft(off)p Fu('.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(7)315 149 y Ft(page-completions)555 204 y Fu(If)17
-b(set)g(to)f(`)p Ft(on)p Fu(',)g(Readline)i(uses)g(an)e(in)o(ternal)i
-Ft(more)p Fu(-lik)o(e)g(pager)f(to)f(displa)o(y)555 259
-y(a)g(screenful)h(of)f(p)q(ossible)i(completions)f(at)f(a)g(time.)23
-b(This)17 b(v)m(ariable)g(is)g(`)p Ft(on)p Fu(')555 314
-y(b)o(y)e(default.)315 395 y Ft(print-completions-horizont)o(ally)555
-450 y Fu(If)d(set)g(to)f(`)p Ft(on)p Fu(',)h(Readline)h(will)g(displa)o
-(y)h(completions)f(with)f(matc)o(hes)f(sorted)555 505
-y(horizon)o(tally)23 b(in)f(alphab)q(etical)i(order,)f(rather)e(than)g
-(do)o(wn)h(the)g(screen.)555 560 y(The)15 b(default)h(is)g(`)p
-Ft(off)p Fu('.)315 641 y Ft(show-all-if-ambiguous)555
-696 y Fu(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h
-(completion)h(functions.)21 b(If)15 b(set)555 751 y(to)e(`)p
-Ft(on)p Fu(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h
-(p)q(ossible)i(completion)f(cause)555 806 y(the)20 b(matc)o(hes)f(to)f
-(b)q(e)j(listed)f(immediately)h(instead)f(of)f(ringing)i(the)e(b)q
-(ell.)555 861 y(The)c(default)h(v)m(alue)h(is)e(`)p Ft(off)p
-Fu('.)315 942 y Ft(visible-stats)555 997 y Fu(If)h(set)g(to)f(`)p
-Ft(on)p Fu(',)g(a)h(c)o(haracter)f(denoting)h(a)g(\014le's)h(t)o(yp)q
-(e)f(is)g(app)q(ended)i(to)d(the)555 1052 y(\014lename)h(when)g
-(listing)h(p)q(ossible)g(completions.)j(The)c(default)g(is)f(`)p
-Ft(off)p Fu('.)75 1133 y(Key)h(Bindings)315 1188 y(The)21
-b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h(in)g(the)f
-(init)h(\014le)g(is)g(simple.)39 b(First)20 b(y)o(ou)315
-1243 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f(command)h(that)f
-(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 b(The)14 b(follo)o(wing)315
-1298 y(sections)k(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g
-(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315
-1353 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q
-(es.)315 1421 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
-(command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315
-1476 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e
-(bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315
-1530 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g
-(k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315
-1585 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most)
-e(comfortable.)315 1653 y(In)19 b(addition)g(to)e(command)h(names,)g
-(readline)i(allo)o(ws)e(k)o(eys)g(to)f(b)q(e)i(b)q(ound)g(to)e(a)h
-(string)315 1708 y(that)c(is)i(inserted)g(when)g(the)f(k)o(ey)g(is)h
-(pressed)g(\(a)e Fk(macro)r Fu(\).)315 1790 y Fk(k)o(eyname)s
-Fu(:)19 b Fk(function-name)g Fu(or)c Fk(macro)555 1845
-y(k)o(eyname)i Fu(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out)
-d(in)h(English.)21 b(F)l(or)13 b(example:)675 1910 y
-Ft(Control-u:)22 b(universal-argument)675 1962 y(Meta-Rubout:)g
-(backward-kill-word)675 2014 y(Control-o:)g(">)i(output")555
-2082 y Fu(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i Fo(C-u)e
-Fu(is)h(b)q(ound)g(to)f(the)g(function)h Ft(universal-)555
-2137 y(argument)p Fu(,)e Fo(M-DEL)h Fu(is)g(b)q(ound)h(to)e(the)h
-(function)h Ft(backward-kill-word)p Fu(,)555 2191 y(and)g
-Fo(C-o)f Fu(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g
-(the)f(righ)o(t)h(hand)555 2246 y(side)c(\(that)e(is,)i(to)e(insert)i
-(the)f(text)g(`)p Ft(>)f(output)p Fu(')g(in)o(to)i(the)f(line\).)555
-2314 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e
-(names)g(are)g(recognized)i(while)g(pro-)555 2369 y(cessing)13
-b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fk(DEL)p
-Fu(,)11 b Fk(ESC)p Fu(,)h Fk(ESCAPE)p Fu(,)f Fk(LFD)p
-Fu(,)g Fk(NEW-)555 2424 y(LINE)p Fu(,)16 b Fk(RET)p Fu(,)e
-Fk(RETURN)p Fu(,)f Fk(R)o(UBOUT)p Fu(,)i Fk(SP)l(A)o(CE)p
-Fu(,)g Fk(SPC)p Fu(,)f(and)i Fk(T)l(AB)p Fu(.)315 2506
-y Ft(")p Fk(k)o(eyseq)q Ft(")p Fu(:)k Fk(function-name)e
-Fu(or)d Fk(macro)555 2560 y(k)o(eyseq)i Fu(di\013ers)e(from)g
-Fk(k)o(eyname)j Fu(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g
-(an)f(en-)555 2615 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q
-(eci\014ed,)i(b)o(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555
-2670 y(double)e(quotes.)j(Some)c Fp(gnu)g Fu(Emacs)f(st)o(yle)h(k)o(ey)
-g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fu(8)1322 b(GNU)15 b(Readline)h(Library)555
-149 y(in)i(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o
-(haracter)d(names)h(are)f(not)555 204 y(recognized.)675
-270 y Ft("\\C-u":)23 b(universal-argument)675 322 y("\\C-x\\C-r":)f
-(re-read-init-file)675 373 y("\\e[11~":)h("Function)f(Key)i(1")555
-442 y Fu(In)33 b(the)f(ab)q(o)o(v)o(e)g(example,)37 b
-Fo(C-u)32 b Fu(is)h(again)f(b)q(ound)h(to)f(the)g(function)555
-497 y Ft(universal-argument)19 b Fu(\(just)j(as)f(it)h(w)o(as)f(in)i
-(the)f(\014rst)f(example\),)j(`)p Fo(C-x)555 551 y(C-r)p
-Fu(')c(is)h(b)q(ound)g(to)f(the)h(function)g Ft(re-read-init-file)p
-Fu(,)f(and)g(`)1731 549 y Fn(h)p 1743 523 70 2 v 1743
-551 a Fm(ESC)p 1743 559 V 1810 549 a Fn(i)15 b(h)p 1852
-523 10 2 v 1852 551 a Fm([)p 1852 560 V 1860 549 a Fn(i)555
-604 y(h)p 567 578 18 2 v 567 606 a Fm(1)p 567 614 V 583
-604 a Fn(i)g(h)p 625 578 V 625 606 a Fm(1)p 625 614 V
-640 604 a Fn(i)g(h)p 683 578 24 2 v 683 606 a Ft(~)p
-683 614 V 704 604 a Fn(i)719 606 y Fu(')g(is)h(b)q(ound)g(to)e(insert)i
-(the)f(text)g(`)p Ft(Function)f(Key)g(1)p Fu('.)315 688
-y(The)h(follo)o(wing)h Fp(gnu)e Fu(Emacs)h(st)o(yle)g(escap)q(e)h
-(sequences)g(are)e(a)o(v)m(ailable)j(when)e(sp)q(ecifying)315
-743 y(k)o(ey)g(sequences:)315 825 y Fo(\\C-)168 b Fu(con)o(trol)15
-b(pre\014x)315 907 y Fo(\\M-)168 b Fu(meta)15 b(pre\014x)315
-989 y Fo(\\e)192 b Fu(an)15 b(escap)q(e)h(c)o(haracter)315
-1071 y Fo(\\\\)192 b Fu(bac)o(kslash)315 1152 y Fo(\\)p
-Ft(")555 1150 y Fn(h)p 567 1124 V 567 1152 a Ft(")p 567
-1160 V 589 1150 a Fn(i)604 1152 y Fu(,)15 b(a)f(double)j(quotation)e
-(mark)315 1234 y Fo(\\')555 1232 y Fn(h)p 567 1206 10
-2 v 567 1234 a Fm(')p 567 1242 V 575 1232 a Fn(i)590
-1234 y Fu(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315
-1316 y(In)f(addition)h(to)f(the)f Fp(gnu)h Fu(Emacs)g(st)o(yle)f(escap)
-q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315
-1371 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 1453 y
-Ft(\\a)192 b Fu(alert)15 b(\(b)q(ell\))315 1535 y Ft(\\b)192
-b Fu(bac)o(kspace)315 1617 y Ft(\\d)g Fu(delete)315 1699
-y Ft(\\f)g Fu(form)14 b(feed)315 1781 y Ft(\\n)192 b
-Fu(newline)315 1862 y Ft(\\r)g Fu(carriage)15 b(return)315
-1944 y Ft(\\t)192 b Fu(horizon)o(tal)16 b(tab)315 2026
-y Ft(\\v)192 b Fu(v)o(ertical)16 b(tab)315 2108 y Ft(\\)p
-Fk(nnn)141 b Fu(the)17 b(eigh)o(t-bit)h(c)o(haracter)f(whose)g(v)m
-(alue)i(is)e(the)h(o)q(ctal)f(v)m(alue)i Fk(nnn)f Fu(\(one)f(to)555
-2163 y(three)e(digits\))315 2245 y Ft(\\x)p Fk(HH)124
-b Fu(the)20 b(eigh)o(t-bit)g(c)o(haracter)f(whose)h(v)m(alue)h(is)f
-(the)g(hexadecimal)h(v)m(alue)g Fk(HH)555 2300 y Fu(\(one)15
-b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2382 y(When)k(en)o(tering)g(the)g
-(text)f(of)g(a)h(macro,)f(single)i(or)e(double)i(quotes)f(m)o(ust)f(b)q
-(e)h(used)h(to)315 2436 y(indicate)12 b(a)f(macro)f(de\014nition.)20
-b(Unquoted)11 b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i
-(name.)18 b(In)315 2491 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o
-(kslash)g(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.)
-20 b(Bac)o(kslash)315 2546 y(will)i(quote)d(an)o(y)h(other)g(c)o
-(haracter)f(in)i(the)f(macro)f(text,)h(including)j(`)p
-Ft(")p Fu(')c(and)h(`)p Ft(')p Fu('.)34 b(F)l(or)315
-2601 y(example,)14 b(the)f(follo)o(wing)g(binding)i(will)g(mak)o(e)d(`)
-p Fo(C-x)i Ft(\\)p Fu(')f(insert)g(a)g(single)h(`)p Ft(\\)p
-Fu(')e(in)o(to)h(the)g(line:)435 2666 y Ft("\\C-x\\\\":)23
-b("\\\\")p eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(9)75 149 y Fj(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)137
-246 y Fu(Readline)f(implemen)o(ts)g(a)f(facilit)o(y)g(similar)h(in)g
-(spirit)f(to)f(the)h(conditional)h(compilation)g(features)75
-301 y(of)e(the)g(C)g(prepro)q(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g
-(bindings)i(and)f(v)m(ariable)g(settings)f(to)g(b)q(e)h(p)q(erformed)f
-(as)75 355 y(the)e(result)h(of)f(tests.)k(There)c(are)g(four)g(parser)g
-(directiv)o(es)h(used.)75 435 y Ft($if)168 b Fu(The)16
-b Ft($if)f Fu(construct)g(allo)o(ws)h(bindings)i(to)d(b)q(e)h(made)g
-(based)g(on)f(the)h(editing)h(mo)q(de,)f(the)315 490
-y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i(using)e
-(Readline.)33 b(The)19 b(text)g(of)f(the)i(test)315 545
-y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters)f
-(are)h(required)i(to)d(isolate)i(it.)315 624 y Ft(mode)144
-b Fu(The)11 b Ft(mode=)e Fu(form)h(of)g(the)h Ft($if)f
-Fu(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555
-679 y(is)k(in)h Ft(emacs)e Fu(or)g Ft(vi)g Fu(mo)q(de.)20
-b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555
-734 y(`)p Ft(set)f(keymap)p Fu(')f(command,)g(for)h(instance,)g(to)f
-(set)h(bindings)h(in)g(the)f Ft(emacs-)555 789 y(standard)d
-Fu(and)i Ft(emacs-ctlx)e Fu(k)o(eymaps)h(only)i(if)f(Readline)g(is)g
-(starting)f(out)555 844 y(in)k Ft(emacs)f Fu(mo)q(de.)315
-923 y Ft(term)144 b Fu(The)14 b Ft(term=)e Fu(form)h(ma)o(y)g(b)q(e)h
-(used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555
-978 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j
-(output)e(b)o(y)g(the)g(terminal's)555 1033 y(function)13
-b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g
-(the)g(`)p Ft(=)p Fu(')f(is)h(tested)g(against)555 1088
-y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q
-(ortion)h(of)e(the)h(terminal)555 1142 y(name)i(b)q(efore)g(the)g
-(\014rst)f(`)p Ft(-)p Fu('.)24 b(This)17 b(allo)o(ws)g
-Ft(sun)f Fu(to)g(matc)o(h)h(b)q(oth)f Ft(sun)h Fu(and)555
-1197 y Ft(sun-cmd)p Fu(,)d(for)g(instance.)315 1277 y
-Ft(application)555 1332 y Fu(The)d Fk(application)i Fu(construct)e(is)g
-(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
-1386 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)i
-(library)f(sets)f(the)g Fk(application)555 1441 y(name)p
-Fu(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)h(v)m(alue.)20
-b(This)12 b(could)h(b)q(e)f(used)h(to)555 1496 y(bind)18
-b(k)o(ey)e(sequences)i(to)d(functions)j(useful)f(for)f(a)g(sp)q
-(eci\014c)i(program.)23 b(F)l(or)555 1551 y(instance,)17
-b(the)g(follo)o(wing)g(command)g(adds)f(a)g(k)o(ey)h(sequence)g(that)f
-(quotes)555 1606 y(the)f(curren)o(t)g(or)g(previous)h(w)o(ord)e(in)j
-(Bash:)675 1670 y Ft($if)23 b(Bash)675 1722 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)675 1774 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")675 1826 y($endif)75 1905 y($endif)96
-b Fu(This)16 b(command,)e(as)h(seen)h(in)g(the)f(previous)h(example,)g
-(terminates)f(an)g Ft($if)f Fu(command.)75 1985 y Ft($else)120
-b Fu(Commands)15 b(in)h(this)f(branc)o(h)h(of)e(the)i
-Ft($if)e Fu(directiv)o(e)j(are)e(executed)h(if)g(the)f(test)g(fails.)75
-2065 y Ft($include)48 b Fu(This)22 b(directiv)o(e)h(tak)o(es)e(a)h
-(single)h(\014lename)g(as)e(an)h(argumen)o(t)f(and)h(reads)f(commands)
-315 2120 y(and)e(bindings)j(from)c(that)h(\014le.)33
-b(F)l(or)19 b(example,)i(the)e(follo)o(wing)h(directiv)o(e)h(reads)e
-(from)315 2174 y(`)p Ft(/etc/inputrc)p Fu(':)435 2239
-y Ft($include)k(/etc/inputrc)75 2351 y Fj(1.3.3)30 b(Sample)20
-b(Init)h(File)137 2447 y Fu(Here)16 b(is)g(an)f(example)h(of)f(an)g
-Fk(inputrc)k Fu(\014le.)i(This)16 b(illustrates)g(k)o(ey)f(binding,)i
-(v)m(ariable)f(assignmen)o(t,)75 2502 y(and)f(conditional)i(syn)o(tax.)
-p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fu(10)1299 b(GNU)15 b(Readline)h(Library)195
-201 y Ft(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
-(input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(GNU)
-f(Readline)g(library.)47 b(Existing)195 305 y(#)24 b(programs)e
-(include)h(FTP,)h(Bash,)f(and)g(GDB.)195 357 y(#)195
-409 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h(C-x)f
-(C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h(comments.)
-195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g(systemwide)g
-(bindings)f(and)i(variable)195 616 y(#)g(assignments)e(from)h
-(/etc/Inputrc)195 668 y($include)g(/etc/Inputrc)195 772
-y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)195
-928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195
-1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the)
-f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v
-195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
-1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195
-1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g
-(previous-history)195 1550 y(#"\\M-OB":)g(next-history)195
-1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
-1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195
-1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g
-(previous-history)195 1914 y("\\M-[B":)g(next-history)195
-1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
-195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195
-2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g
-(previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195
-2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
-195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195
-2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g
-(previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p
-eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(11)195 201 y Ft(C-q:)23 b(quoted-insert)195 305 y($endif)195
-409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h
-(the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g
-(are)h(convenient)e(for)h(shell)h(interaction)195 616
-y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720
-y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195
-772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)195
-824 y(#)g(insert)f(open)g(and)h(close)f(double)g(quotes)195
-876 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g(quote)195
-928 y("\\C-x\\"":)g("\\"\\"\\C-b")195 980 y(#)h(insert)f(a)g(backslash)
-g(\(testing)g(backslash)g(escapes)195 1032 y(#)h(in)f(sequences)g(and)g
-(macros\))195 1083 y("\\C-x\\\\":)g("\\\\")195 1135 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)195 1187 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")195 1239 y(#)h(Add)f(a)h(binding)f(to)g(refresh)g
-(the)h(line,)f(which)g(is)h(unbound)195 1291 y("\\C-xr":)f
-(redraw-current-line)195 1343 y(#)h(Edit)f(variable)g(on)g(current)g
-(line.)195 1395 y("\\M-\\C-v":)f("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)
-o(")195 1447 y($endif)195 1550 y(#)i(use)f(a)h(visible)f(bell)g(if)h
-(one)f(is)h(available)195 1602 y(set)f(bell-style)g(visible)195
-1706 y(#)h(don't)f(strip)g(characters)g(to)g(7)h(bits)f(when)h(reading)
-195 1758 y(set)f(input-meta)g(on)195 1862 y(#)h(allow)f(iso-latin1)f
-(characters)h(to)g(be)h(inserted)f(rather)195 1914 y(#)h(than)f
-(converted)g(to)g(prefix-meta)g(sequences)195 1966 y(set)g
-(convert-meta)g(off)195 2069 y(#)h(display)f(characters)f(with)h(the)h
-(eighth)f(bit)g(set)h(directly)195 2121 y(#)g(rather)f(than)g(as)h
-(meta-prefixed)e(characters)195 2173 y(set)h(output-meta)g(on)195
-2277 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g
-(completions)f(for)195 2329 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g
-(he)h(wants)f(to)h(see)f(all)h(of)f(them)195 2381 y(set)g
-(completion-query-items)e(150)195 2484 y(#)j(For)f(FTP)195
-2536 y($if)g(Ftp)195 2588 y("\\C-xg":)g("get)g(\\M-?")195
-2640 y("\\C-xt":)g("put)g(\\M-?")p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fu(12)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft("\\M-.":)23 b(yank-last-arg)195 201 y($endif)75
-329 y Fs(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
-425 y Fu(This)17 b(section)f(describ)q(es)h(Readline)g(commands)f(that)
-e(ma)o(y)h(b)q(e)i(b)q(ound)f(to)f(k)o(ey)h(sequences.)22
-b(Com-)75 480 y(mand)15 b(names)g(without)h(an)f(accompan)o(ying)g(k)o
-(ey)g(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)f(default.)137
-547 y(In)f(the)f(follo)o(wing)h(descriptions,)h Fk(p)q(oin)o(t)f
-Fu(refers)f(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)j(and)e
-Fk(mark)i Fu(refers)75 601 y(to)k(a)g(cursor)g(p)q(osition)h(sa)o(v)o
-(ed)f(b)o(y)h(the)f Ft(set-mark)g Fu(command.)32 b(The)20
-b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)g(and)75
-656 y(mark)15 b(is)g(referred)h(to)e(as)h(the)g Fk(region)p
-Fu(.)75 767 y Fj(1.4.1)30 b(Commands)21 b(F)-5 b(or)19
-b(Mo)n(ving)75 888 y Ft(beginning-of-line)13 b(\(C-a\))315
-942 y Fu(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g(line.)
-75 1034 y Ft(end-of-line)f(\(C-e\))315 1088 y Fu(Mo)o(v)o(e)g(to)h(the)
-g(end)h(of)f(the)g(line.)75 1179 y Ft(forward-char)f(\(C-f\))315
-1234 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75
-1325 y Ft(backward-char)e(\(C-b\))315 1380 y Fu(Mo)o(v)o(e)h(bac)o(k)h
-(a)g(c)o(haracter.)75 1471 y Ft(forward-word)f(\(M-f\))315
-1526 y Fu(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h
-(w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315
-1581 y(digits.)75 1672 y Ft(backward-word)e(\(M-b\))315
-1727 y Fu(Mo)o(v)o(e)j(bac)o(k)g(to)h(the)f(start)g(of)g(the)h(curren)o
-(t)g(or)f(previous)i(w)o(ord.)24 b(W)l(ords)16 b(are)h(comp)q(osed)315
-1782 y(of)e(letters)g(and)g(digits.)75 1873 y Ft(clear-screen)f
-(\(C-l\))315 1928 y Fu(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g
-(curren)o(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g
-(top)315 1982 y(of)i(the)g(screen.)75 2074 y Ft(redraw-current-line)e
-(\(\))315 2128 y Fu(Refresh)i(the)g(curren)o(t)g(line.)22
-b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 2239
-y Fj(1.4.2)30 b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f
-(History)75 2360 y Ft(accept-line)14 b(\(Newline)g(or)h(Return\))315
-2414 y Fu(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor)
-f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315
-2469 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g
-(future)g(recall)h(with)f Ft(add_history\(\))p Fu(.)k(If)d(this)315
-2524 y(line)g(is)f(a)e(mo)q(di\014ed)j(history)e(line,)i(the)e(history)
-g(line)i(is)f(restored)e(to)h(its)g(original)i(state.)75
-2615 y Ft(previous-history)c(\(C-p\))315 2670 y Fu(Mo)o(v)o(e)h(`bac)o
-(k')h(through)f(the)i(history)f(list,)g(fetc)o(hing)h(the)f(previous)h
-(command.)p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(13)75 149 y Ft(next-history)14 b(\(C-n\))315 204 y
-Fu(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)f(list,)g(fetc)o
-(hing)h(the)f(next)h(command.)75 307 y Ft(beginning-of-history)c
-(\(M-<\))315 362 y Fu(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f
-(the)f(history)l(.)75 465 y Ft(end-of-history)e(\(M->\))315
-520 y Fu(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h(history)l(,)f
-(i.e.,)g(the)g(line)i(curren)o(tly)f(b)q(eing)g(en)o(tered.)75
-624 y Ft(reverse-search-history)c(\(C-r\))315 678 y Fu(Searc)o(h)k(bac)
-o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving)
-h(`up')f(through)g(the)h(his-)315 733 y(tory)e(as)h(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 836
-y Ft(forward-search-history)c(\(C-s\))315 891 y Fu(Searc)o(h)j(forw)o
-(ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)
-o(wn')f(through)g(the)h(the)315 946 y(history)g(as)g(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 1049
-y Ft(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315
-1104 y Fu(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o
-(t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315
-1159 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o(tal)j(searc)o
-(h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 1214
-y(user.)75 1317 y Ft(non-incremental-forward-se)o(arch-hi)o(story)12
-b(\(M-n\))315 1372 y Fu(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f
-(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the)
-315 1426 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i
-(searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315
-1481 y(user.)75 1584 y Ft(history-search-forward)f(\(\))315
-1639 y Fu(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f
-(the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315
-1694 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o
-(t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27
-b(By)315 1749 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-1852 y Ft(history-search-backward)c(\(\))315 1907 y Fu(Searc)o(h)18
-b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f
-(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1962 y(start)e(of)h(the)h
-(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18
-b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315
-2016 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-2120 y Ft(yank-nth-arg)e(\(M-C-y\))315 2174 y Fu(Insert)f(the)g
-(\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h
-(the)f(second)h(w)o(ord)e(on)315 2229 y(the)j(previous)h(line\))g(at)e
-(p)q(oin)o(t.)21 b(With)15 b(an)g(argumen)o(t)f Fk(n)p
-Fu(,)h(insert)g(the)g Fk(n)p Fu(th)g(w)o(ord)g(from)f(the)315
-2284 y(previous)g(command)g(\(the)f(w)o(ords)f(in)j(the)e(previous)i
-(command)e(b)q(egin)i(with)e(w)o(ord)g(0\).)19 b(A)315
-2339 y(negativ)o(e)13 b(argumen)o(t)f(inserts)h(the)g
-Fk(n)p Fu(th)g(w)o(ord)f(from)g(the)h(end)h(of)e(the)h(previous)g
-(command.)75 2442 y Ft(yank-last-arg)g(\(M-.)i(or)g(M-_\))315
-2497 y Fu(Insert)j(last)f(argumen)o(t)g(to)g(the)g(previous)i(command)e
-(\(the)g(last)h(w)o(ord)f(of)g(the)g(previous)315 2552
-y(history)e(en)o(try\).)20 b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v)
-o(e)g(exactly)h(lik)o(e)g Ft(yank-nth-arg)p Fu(.)j(Succes-)315
-2606 y(siv)o(e)f(calls)g(to)f Ft(yank-last-arg)e Fu(mo)o(v)o(e)i(bac)o
-(k)g(through)g(the)g(history)g(list,)i(inserting)f(the)315
-2661 y(last)d(argumen)o(t)g(of)f(eac)o(h)i(line)g(in)g(turn.)p
-eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fu(14)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(1.4.3)30 b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5
-b(ext)75 286 y Ft(delete-char)14 b(\(C-d\))315 341 y
-Fu(Delete)20 b(the)g(c)o(haracter)e(at)h(p)q(oin)o(t.)33
-b(If)20 b(p)q(oin)o(t)g(is)g(at)e(the)i(b)q(eginning)i(of)d(the)g
-(line,)j(there)315 396 y(are)c(no)h(c)o(haracters)e(in)j(the)e(line,)j
-(and)e(the)f(last)h(c)o(haracter)e(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q
-(ound)i(to)315 450 y Ft(delete-char)p Fu(,)13 b(then)j(return)f
-Fp(eof)p Fu(.)75 552 y Ft(backward-delete-char)d(\(Rubout\))315
-607 y Fu(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c
-(n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315
-661 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
-763 y Ft(forward-backward-delete-ch)o(ar)12 b(\(\))315
-818 y Fu(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h
-(unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315
-872 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h
-(the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315
-927 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1029
-y Ft(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1083 y Fu(Add)j(the)f(next)
-g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26
-b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 1138
-y(sequences)f(lik)o(e)h Fo(C-q)p Fu(,)d(for)h(example.)75
-1240 y Ft(tab-insert)f(\(M-)401 1238 y Fn(h)p 412 1212
-74 2 v 412 1240 a Fm(T)m(AB)p 412 1247 V 484 1238 a Fn(i)499
-1240 y Ft(\))315 1294 y Fu(Insert)h(a)g(tab)g(c)o(haracter.)75
-1396 y Ft(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315
-1451 y Fu(Insert)g(y)o(ourself.)75 1552 y Ft(transpose-chars)e(\(C-t\))
-315 1607 y Fu(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e
-(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315
-1662 y(mo)o(ving)i(the)f(cursor)h(forw)o(ard)e(as)i(w)o(ell.)28
-b(If)18 b(the)g(insertion)h(p)q(oin)o(t)f(is)g(at)f(the)h(end)h(of)e
-(the)315 1716 y(line,)c(then)e(this)h(transp)q(oses)e(the)h(last)g(t)o
-(w)o(o)f(c)o(haracters)g(of)h(the)g(line.)20 b(Negativ)o(e)11
-b(argumen)o(ts)315 1771 y(ha)o(v)o(e)k(no)g(e\013ect.)75
-1873 y Ft(transpose-words)e(\(M-t\))315 1927 y Fu(Drag)i(the)h(w)o(ord)
-g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o
-(t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1982
-y(w)o(ord)d(as)h(w)o(ell.)21 b(If)14 b(the)g(insertion)i(p)q(oin)o(t)e
-(is)h(at)f(the)g(end)h(of)e(the)i(line,)g(this)g(transp)q(oses)f(the)
-315 2037 y(last)h(t)o(w)o(o)f(w)o(ords)g(on)i(the)f(line.)75
-2138 y Ft(upcase-word)f(\(M-u\))315 2193 y Fu(Upp)q(ercase)j(the)f
-(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o(ord.)22 b(With)16
-b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 2248
-y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f(the)
-i(cursor.)75 2349 y Ft(downcase-word)d(\(M-l\))315 2404
-y Fu(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o
-(ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o(ercase)
-315 2459 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)75 2560 y Ft(capitalize-word)e(\(M-c\))315
-2615 y Fu(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o
-(ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315
-2670 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)p eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(15)75 149 y Ft(overwrite-mode)13 b(\(\))315 204 y Fu(T)l(oggle)j(o)o
-(v)o(erwrite)g(mo)q(de.)24 b(With)17 b(an)f(explicit)j(p)q(ositiv)o(e)f
-(n)o(umeric)f(argumen)o(t,)f(switc)o(hes)315 259 y(to)10
-b(o)o(v)o(erwrite)g(mo)q(de.)19 b(With)11 b(an)g(explicit)i(non-p)q
-(ositiv)o(e)f(n)o(umeric)g(argumen)o(t,)e(switc)o(hes)i(to)315
-314 y(insert)k(mo)q(de.)k(This)c(command)f(a\013ects)g(only)h
-Ft(emacs)e Fu(mo)q(de;)h Ft(vi)g Fu(mo)q(de)h(do)q(es)g(o)o(v)o
-(erwrite)315 369 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15
-b(call)h(to)f Ft(readline\(\))f Fu(starts)f(in)k(insert)e(mo)q(de.)315
-436 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f
-Ft(self-insert)f Fu(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315
-491 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36
-b(Characters)20 b(b)q(ound)i(to)e Ft(backward-)315 546
-y(delete-char)14 b Fu(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q
-(oin)o(t)h(with)f(a)g(space.)315 614 y(By)g(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 729 y Fj(1.4.4)30 b(Killing)20
-b(And)h(Y)-5 b(anking)75 853 y Ft(kill-line)14 b(\(C-k\))315
-908 y Fu(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
-(the)g(line.)75 1002 y Ft(backward-kill-line)e(\(C-x)h(Rubout\))315
-1057 y Fu(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
-(line.)75 1151 y Ft(unix-line-discard)e(\(C-u\))315 1205
-y Fu(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
-(eginning)j(of)c(the)i(curren)o(t)f(line.)75 1299 y Ft(kill-whole-line)
-e(\(\))315 1354 y Fu(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren)
-o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29
-b(By)19 b(default,)315 1409 y(this)d(is)f(un)o(b)q(ound.)75
-1503 y Ft(kill-word)f(\(M-d\))315 1558 y Fu(Kill)j(from)d(p)q(oin)o(t)h
-(to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o
-(w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1613 y(of)h(the)g(next)g(w)o
-(ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
-Ft(forward-word)p Fu(.)75 1707 y Ft(backward-kill-word)e(\(M-)592
-1705 y Fn(h)p 603 1679 73 2 v 603 1707 a Fm(DEL)p 603
-1714 V 674 1705 a Fn(i)689 1707 y Ft(\))315 1761 y Fu(Kill)k(the)d(w)o
-(ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f
-(the)h(same)f(as)g Ft(backward-word)p Fu(.)75 1855 y
-Ft(unix-word-rubout)f(\(C-w\))315 1910 y Fu(Kill)18 b(the)e(w)o(ord)f
-(b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g
-(b)q(oundary)l(.)23 b(The)16 b(killed)315 1965 y(text)f(is)g(sa)o(v)o
-(ed)g(on)g(the)h(kill-ring.)75 2059 y Ft(delete-horizontal-space)c
-(\(\))315 2114 y Fu(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q
-(oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75
-2208 y Ft(kill-region)e(\(\))315 2263 y Fu(Kill)j(the)f(text)e(in)i
-(the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 2357 y Ft(copy-region-as-kill)d(\(\))315
-2412 y Fu(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h
-(bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o
-(a)o(y)l(.)315 2466 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 2560 y Ft(copy-backward-word)d(\(\))315 2615
-y Fu(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i
-(kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
-2670 y(same)c(as)g Ft(backward-word)p Fu(.)j(By)d(default,)g(this)h
-(command)f(is)h(un)o(b)q(ound.)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fu(16)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Ft(copy-forward-word)d(\(\))315 204 y Fu(Cop)o(y)i(the)h(w)o(ord)
-e(follo)o(wing)j(p)q(oin)o(t)f(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o
-(ord)f(b)q(oundaries)i(are)e(the)315 259 y(same)g(as)g
-Ft(forward-word)p Fu(.)j(By)d(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 342 y Ft(yank)f(\(C-y\))315 397 y Fu(Y)l(ank)g(the)h(top)f
-(of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.)
-75 481 y Ft(yank-pop)g(\(M-y\))315 535 y Fu(Rotate)i(the)h(kill-ring,)j
-(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f
-(this)h(if)f(the)h(prior)315 590 y(command)d(is)h Ft(yank)e
-Fu(or)h Ft(yank-pop)p Fu(.)75 693 y Fj(1.4.5)30 b(Sp)r(ecifying)20
-b(Numeric)h(Argumen)n(ts)75 806 y Ft(digit-argument)13
-b(\()p Fo(M-0)p Ft(,)i Fo(M-1)p Ft(,)f(...)h Fo(M--)p
-Ft(\))315 861 y Fu(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e
-(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315
-915 y Fo(M--)h Fu(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75
-999 y Ft(universal-argument)e(\(\))315 1054 y Fu(This)g(is)h(another)e
-(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13
-b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
-1108 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o
-(us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315
-1163 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g
-(digits,)g(executing)g Ft(universal-argument)315 1218
-y Fu(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h
-(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315
-1273 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y)
-f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315
-1328 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h
-(the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315
-1382 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
-(executing)i(this)f(function)h(the)e(\014rst)h(time)315
-1437 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
-(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
-1492 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f
-(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1595 y Fj(1.4.6)30
-b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
-b(ou)75 1708 y Ft(complete)14 b(\()305 1706 y Fn(h)p
-317 1680 74 2 v 317 1708 a Fm(T)m(AB)p 317 1715 V 389
-1706 a Fn(i)404 1708 y Ft(\))315 1762 y Fu(A)o(ttempt)c(to)h(p)q
-(erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
-b(The)11 b(actual)h(completion)315 1817 y(p)q(erformed)j(is)h
-(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
-g(completion.)75 1901 y Ft(possible-completions)c(\(M-?\))315
-1955 y Fu(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
-q(efore)h(p)q(oin)o(t.)75 2039 y Ft(insert-completions)d(\(M-*\))315
-2093 y Fu(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
-q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315
-2148 y(b)o(y)f Ft(possible-completions)p Fu(.)75 2232
-y Ft(menu-complete)e(\(\))315 2286 y Fu(Similar)g(to)f
-Ft(complete)p Fu(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i
-(completed)f(with)h(a)e(single)j(matc)o(h)315 2341 y(from)k(the)h(list)
-h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19
-b(execution)h(of)f Ft(menu-complete)315 2396 y Fu(steps)h(through)g
-(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f
-(matc)o(h)f(in)i(turn.)315 2451 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g
-(of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f
-(the)i(setting)315 2506 y(of)f Ft(bell-style)p Fu(\))e(and)i(the)g
-(original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g
-Fk(n)i Fu(mo)o(v)o(es)e Fk(n)315 2560 y Fu(p)q(ositions)h(forw)o(ard)e
-(in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g
-(ma)o(y)g(b)q(e)h(used)g(to)315 2615 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
-(through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f
-(b)q(e)h(b)q(ound)g(to)315 2668 y Fn(h)p 327 2642 V 327
-2670 a Fm(T)m(AB)p 327 2678 V 399 2668 a Fn(i)414 2670
-y Fu(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)p
-eop
-%%Page: 17 19
-17 18 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(17)75 149 y Ft(delete-char-or-list)13 b(\(\))315 204
-y Fu(Deletes)h(the)f(c)o(haracter)g(under)h(the)g(cursor)f(if)h(not)f
-(at)g(the)g(b)q(eginning)j(or)d(end)h(of)f(the)g(line)315
-259 y(\(lik)o(e)i Ft(delete-char)p Fu(\).)j(If)d(at)f(the)h(end)g(of)f
-(the)g(line,)i(b)q(eha)o(v)o(es)f(iden)o(tically)i(to)d
-Ft(possible-)315 314 y(completions)p Fu(.)k(This)e(command)f(is)h(un)o
-(b)q(ound)g(b)o(y)f(default.)75 428 y Fj(1.4.7)30 b(Keyb)r(oard)20
-b(Macros)75 551 y Ft(start-kbd-macro)13 b(\(C-x)i(\(\))315
-606 y Fu(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o
-(to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 699
-y Ft(end-kbd-macro)e(\(C-x)i(\)\))315 754 y Fu(Stop)f(sa)o(ving)f(the)h
-(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q
-(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 809 y(de\014nition.)75
-902 y Ft(call-last-kbd-macro)g(\(C-x)h(e\))315 957 y
-Fu(Re-execute)k(the)g(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i(b)o
-(y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 1012
-y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o(eyb)q
-(oard.)75 1126 y Fj(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
-1249 y Ft(re-read-init-file)13 b(\(C-x)h(C-r\))315 1304
-y Fu(Read)d(in)g(the)g(con)o(ten)o(ts)g(of)f(the)h Fk(inputrc)k
-Fu(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m
-(ariable)315 1358 y(assignmen)o(ts)k(found)h(there.)75
-1452 y Ft(abort)e(\(C-g\))315 1507 y Fu(Ab)q(ort)f(the)g(curren)o(t)h
-(editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s
-(ject)e(to)g(the)315 1561 y(setting)i(of)g Ft(bell-style)p
-Fu(\).)75 1655 y Ft(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
-Fk(x)p Ft(,)h(...\))315 1710 y Fu(If)f(the)g(meta\014ed)g(c)o(haracter)
-f Fk(x)k Fu(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g
-(b)q(ound)h(to)e(the)315 1764 y(corresp)q(onding)j(upp)q(ercase)g(c)o
-(haracter.)75 1858 y Ft(prefix-meta)e(\()377 1856 y Fn(h)p
-389 1830 70 2 v 389 1858 a Fm(ESC)p 389 1866 V 456 1856
-a Fn(i)471 1858 y Ft(\))315 1913 y Fu(Metafy)k(the)h(next)g(c)o
-(haracter)f(t)o(yp)q(ed.)30 b(This)20 b(is)f(for)f(k)o(eyb)q(oards)h
-(without)g(a)f(meta)g(k)o(ey)l(.)315 1968 y(T)o(yping)e(`)485
-1966 y Fn(h)p 496 1939 V 496 1968 a Fm(ESC)p 496 1975
-V 563 1966 a Fn(i)593 1968 y Ft(f)p Fu(')f(is)h(equiv)m(alen)o(t)h(to)d
-(t)o(yping)i Fo(M-f)p Fu(.)75 2061 y Ft(undo)f(\(C-_)f(or)h(C-x)g
-(C-u\))315 2116 y Fu(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
-(ered)g(for)e(eac)o(h)h(line.)75 2209 y Ft(revert-line)f(\(M-r\))315
-2264 y Fu(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26
-b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Ft(undo)f
-Fu(command)315 2319 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
-(b)q(eginning.)75 2412 y Ft(tilde-expand)f(\(M-~\))315
-2467 y Fu(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
-(ord.)75 2560 y Ft(set-mark)f(\(C-@\))315 2615 y Fu(Set)i(the)h(mark)f
-(to)f(the)i(p)q(oin)o(t.)24 b(If)17 b(a)f(n)o(umeric)h(argumen)o(t)f
-(is)g(supplied,)j(the)e(mark)e(is)i(set)315 2670 y(to)e(that)f(p)q
-(osition.)p eop
-%%Page: 18 20
-18 19 bop 75 -58 a Fu(18)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Ft(exchange-point-and-mark)c(\(C-x)j(C-x\))315
-204 y Fu(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k(The)c
-(curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o(v)o(ed)
-315 259 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q(osition)h(is)g
-(sa)o(v)o(ed)f(as)g(the)g(mark.)75 347 y Ft(character-search)e(\(C-]\))
-315 402 y Fu(A)f(c)o(haracter)g(is)h(read)g(and)f(p)q(oin)o(t)h(is)g
-(mo)o(v)o(ed)f(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g(c)o
-(haracter.)315 456 y(A)j(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f
-(previous)i(o)q(ccurrences.)75 544 y Ft(character-search-backward)c
-(\(M-C-]\))315 599 y Fu(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q
-(oin)o(t)g(is)g(mo)o(v)o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of)
-e(that)315 654 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o
-(hes)g(for)f(subsequen)o(t)i(o)q(ccurrences.)75 741 y
-Ft(insert-comment)d(\(M-#\))315 796 y Fu(Without)18 b(a)f(n)o(umeric)i
-(argumen)o(t,)e(the)h(v)m(alue)h(of)f(the)f Ft(comment-begin)f
-Fu(v)m(ariable)k(is)e(in-)315 851 y(serted)e(at)f(the)h(b)q(eginning)i
-(of)d(the)h(curren)o(t)g(line.)23 b(If)16 b(a)g(n)o(umeric)h(argumen)o
-(t)e(is)h(supplied,)315 906 y(this)j(command)f(acts)g(as)f(a)h(toggle:)
-26 b(if)19 b(the)f(c)o(haracters)g(at)f(the)i(b)q(eginning)h(of)e(the)g
-(line)315 960 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)i(of)e
-Ft(comment-begin)p Fu(,)e(the)i(v)m(alue)i(is)f(inserted,)f(otherwise)h
-(the)315 1015 y(c)o(haracters)j(in)i Ft(comment-begin)d
-Fu(are)i(deleted)i(from)d(the)h(b)q(eginning)i(of)e(the)g(line.)36
-b(In)315 1070 y(either)16 b(case,)f(the)g(line)i(is)f(accepted)f(as)g
-(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)75 1158
-y Ft(dump-functions)c(\(\))315 1213 y Fu(Prin)o(t)g(all)h(of)f(the)g
-(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)g
-(output)f(stream.)315 1267 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i
-(supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o
-(y)f(that)315 1322 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
-Fk(inputrc)k Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
-(y)f(default.)75 1410 y Ft(dump-variables)e(\(\))315
-1465 y Fu(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f
-(their)g(v)m(alues)h(to)e(the)h(Readline)h(output)e(stream.)315
-1519 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e
-(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315
-1574 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fk(inputrc)k
-Fu(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)
-75 1662 y Ft(dump-macros)f(\(\))315 1717 y Fu(Prin)o(t)j(all)h(of)e
-(the)h(Readline)h(k)o(ey)f(sequences)h(b)q(ound)g(to)e(macros)g(and)h
-(the)g(strings)g(they)315 1771 y(output.)26 b(If)18 b(a)f(n)o(umeric)h
-(argumen)o(t)f(is)h(supplied,)i(the)d(output)g(is)h(formatted)e(in)j
-(suc)o(h)e(a)315 1826 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g
-(part)g(of)f(an)h Fk(inputrc)k Fu(\014le.)i(This)15 b(command)g(is)h
-(un)o(b)q(ound)g(b)o(y)315 1881 y(default.)75 1969 y
-Ft(emacs-editing-mode)d(\(C-e\))315 2024 y Fu(When)j(in)g
-Ft(vi)e Fu(command)i(mo)q(de,)f(this)g(causes)h(a)f(switc)o(h)g(to)g
-Ft(emacs)f Fu(editing)j(mo)q(de.)75 2111 y Ft(vi-editing-mode)c
-(\(M-C-j\))315 2166 y Fu(When)j(in)g Ft(emacs)e Fu(editing)j(mo)q(de,)e
-(this)g(causes)h(a)f(switc)o(h)g(to)g Ft(vi)f Fu(editing)j(mo)q(de.)75
-2290 y Fs(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 2385
-y Fu(While)13 b(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o(e)f
-(a)h(full)h(set)f(of)f Ft(vi)g Fu(editing)j(functions,)f(it)f(do)q(es)g
-(con)o(tain)75 2440 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing)h
-(of)d(the)i(line.)27 b(The)17 b(Readline)h Ft(vi)f Fu(mo)q(de)g(b)q
-(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 2495 y(the)c
-Fp(posix)g Fu(1003.2)f(standard.)137 2560 y(In)h(order)g(to)f(switc)o
-(h)g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Ft(emacs)e
-Fu(and)i Ft(vi)f Fu(editing)i(mo)q(des,)f(use)f(the)h(command)75
-2615 y Fo(M-C-j)j Fu(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)j(when)e
-(in)h Ft(vi)f Fu(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)k(in)e
-Ft(emacs)75 2670 y Fu(mo)q(de\).)g(The)15 b(Readline)i(default)f(is)f
-Ft(emacs)g Fu(mo)q(de.)p eop
-%%Page: 19 21
-19 20 bop 75 -58 a Fu(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(19)137 149 y(When)16 b(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e
-Ft(vi)g Fu(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g
-(`insertion')f(mo)q(de,)g(as)g(if)g(y)o(ou)75 204 y(had)e(t)o(yp)q(ed)h
-(an)f(`)p Ft(i)p Fu('.)18 b(Pressing)608 202 y Fn(h)p
-620 176 70 2 v 620 204 a Fm(ESC)p 620 212 V 687 202 a
-Fn(i)715 204 y Fu(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q
-(de,)i(where)f(y)o(ou)g(can)g(edit)h(the)75 259 y(text)i(of)h(the)g
-(line)h(with)g(the)f(standard)f Ft(vi)h Fu(mo)o(v)o(emen)o(t)f(k)o
-(eys,)g(mo)o(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75
-314 y(`)p Ft(k)p Fu(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p
-Ft(j)p Fu(',)e(and)h(so)g(forth.)p eop
-%%Page: 20 22
-20 21 bop 75 -58 a Fu(20)1299 b(GNU)15 b(Readline)h(Library)p
-eop
-%%Page: 21 23
-21 22 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(21)75 149 y Fq(2)41 b(Programming)28
-b(with)e(GNU)i(Readline)137 267 y Fu(This)18 b(c)o(hapter)f(describ)q
-(es)h(the)f(in)o(terface)g(b)q(et)o(w)o(een)h(the)f Fp(gnu)g
-Fu(Readline)h(Library)f(and)g(other)g(pro-)75 322 y(grams.)h(If)11
-b(y)o(ou)g(are)g(a)g(programmer,)f(and)i(y)o(ou)f(wish)g(to)g(include)j
-(the)d(features)g(found)g(in)i Fp(gnu)e Fu(Readline)75
-377 y(suc)o(h)h(as)f(completion,)h(line)h(editing,)g(and)f(in)o
-(teractiv)o(e)g(history)f(manipulation)i(in)f(y)o(our)f(o)o(wn)g
-(programs,)75 432 y(this)16 b(section)f(is)h(for)f(y)o(ou.)75
-561 y Fs(2.1)33 b(Basic)22 b(Beha)n(vior)137 658 y Fu(Man)o(y)15
-b(programs)f(pro)o(vide)i(a)f(command)g(line)i(in)o(terface,)e(suc)o(h)
-h(as)f Ft(mail)p Fu(,)f Ft(ftp)p Fu(,)h(and)g Ft(sh)p
-Fu(.)20 b(F)l(or)15 b(suc)o(h)75 713 y(programs,)e(the)h(default)h(b)q
-(eha)o(viour)g(of)f(Readline)i(is)e(su\016cien)o(t.)21
-b(This)14 b(section)h(describ)q(es)h(ho)o(w)e(to)g(use)75
-768 y(Readline)k(in)h(the)e(simplest)h(w)o(a)o(y)e(p)q(ossible,)j(p)q
-(erhaps)f(to)f(replace)h(calls)g(in)g(y)o(our)f(co)q(de)h(to)e
-Ft(gets\(\))g Fu(or)75 822 y Ft(fgets\(\))p Fu(.)137
-890 y(The)h(function)g Ft(readline\(\))e Fu(prin)o(ts)h(a)g(prompt)g
-Fk(prompt)h Fu(and)f(then)h(reads)f(and)h(returns)f(a)g(single)75
-945 y(line)i(of)e(text)g(from)f(the)i(user.)23 b(If)17
-b Fk(prompt)g Fu(is)g Ft(NULL)e Fu(or)h(the)h(empt)o(y)f(string,)g(no)g
-(prompt)g(is)h(displa)o(y)o(ed.)75 1000 y(The)i(line)h
-Ft(readline)d Fu(returns)i(is)g(allo)q(cated)g(with)g
-Ft(malloc\(\))p Fu(;)g(the)g(caller)g(should)h Ft(free\(\))e
-Fu(the)g(line)75 1054 y(when)e(it)f(has)g(\014nished)i(with)f(it.)k
-(The)15 b(declaration)h(for)f Ft(readline)f Fu(in)i(ANSI)g(C)f(is)195
-1119 y Ft(char)23 b(*readline)g(\(const)g(char)g(*)p
-Fk(prompt)q Ft(\);)75 1187 y Fu(So,)15 b(one)g(migh)o(t)g(sa)o(y)195
-1251 y Ft(char)23 b(*line)g(=)h(readline)f(\("Enter)g(a)h(line:)f("\);)
-75 1319 y Fu(in)12 b(order)f(to)g(read)h(a)f(line)i(of)e(text)g(from)f
-(the)i(user.)19 b(The)11 b(line)j(returned)d(has)h(the)f(\014nal)h
-(newline)i(remo)o(v)o(ed,)75 1374 y(so)h(only)h(the)f(text)g(remains.)
-137 1441 y(If)21 b Ft(readline)e Fu(encoun)o(ters)h(an)g
-Ft(EOF)g Fu(while)i(reading)f(the)f(line,)j(and)d(the)h(line)g(is)g
-(empt)o(y)f(at)g(that)75 1496 y(p)q(oin)o(t,)15 b(then)g
-Ft(\(char)f(*\)NULL)g Fu(is)h(returned.)21 b(Otherwise,)15
-b(the)g(line)h(is)f(ended)h(just)e(as)h(if)g(a)f(newline)j(had)75
-1551 y(b)q(een)f(t)o(yp)q(ed.)137 1618 y(If)d(y)o(ou)g(w)o(an)o(t)f
-(the)h(user)g(to)f(b)q(e)i(able)g(to)e(get)g(at)h(the)g(line)h(later,)f
-(\(with)1325 1616 y Fn(h)p 1338 1590 57 2 v 1338 1618
-a Fm(C-p)p 1338 1626 V 1392 1616 a Fn(i)1420 1618 y Fu(for)f
-(example\),)i(y)o(ou)f(m)o(ust)75 1673 y(call)j Ft(add_history\(\))e
-Fu(to)g(sa)o(v)o(e)h(the)g(line)i(a)o(w)o(a)o(y)d(in)i(a)e
-Fk(history)19 b Fu(list)d(of)f(suc)o(h)h(lines.)195 1738
-y Ft(add_history)22 b(\(line\);)75 1805 y Fu(F)l(or)15
-b(full)h(details)g(on)f(the)h(GNU)f(History)g(Library)l(,)g(see)h(the)f
-(asso)q(ciated)g(man)o(ual.)137 1873 y(It)h(is)g(preferable)h(to)e(a)o
-(v)o(oid)g(sa)o(ving)h(empt)o(y)f(lines)i(on)f(the)g(history)f(list,)i
-(since)f(users)g(rarely)g(ha)o(v)o(e)f(a)75 1928 y(burning)h(need)g(to)
-e(reuse)h(a)g(blank)g(line.)22 b(Here)15 b(is)g(a)g(function)g(whic)o
-(h)h(usefully)h(replaces)e(the)g(standard)75 1983 y Ft(gets\(\))f
-Fu(library)i(function,)g(and)f(has)g(the)h(adv)m(an)o(tage)e(of)h(no)g
-(static)g(bu\013er)g(to)g(o)o(v)o(er\015o)o(w:)195 2047
-y Ft(/*)24 b(A)f(static)g(variable)g(for)h(holding)e(the)i(line.)f(*/)
-195 2099 y(static)g(char)g(*line_read)g(=)h(\(char)f(*\)NULL;)195
-2203 y(/*)h(Read)f(a)h(string,)f(and)g(return)g(a)h(pointer)f(to)g(it.)
-267 2255 y(Returns)f(NULL)i(on)f(EOF.)h(*/)195 2307 y(char)f(*)195
-2359 y(rl_gets)g(\(\))195 2411 y({)243 2462 y(/*)g(If)h(the)f(buffer)g
-(has)h(already)f(been)g(allocated,)314 2514 y(return)g(the)h(memory)f
-(to)g(the)h(free)f(pool.)g(*/)243 2566 y(if)g(\(line_read\))290
-2618 y({)338 2670 y(free)g(\(line_read\);)p eop
-%%Page: 22 24
-22 23 bop 75 -58 a Fu(22)1299 b(GNU)15 b(Readline)h(Library)338
-149 y Ft(line_read)23 b(=)h(\(char)f(*\)NULL;)290 201
-y(})243 305 y(/*)g(Get)h(a)f(line)h(from)f(the)h(user.)f(*/)243
-357 y(line_read)f(=)i(readline)f(\(""\);)243 461 y(/*)g(If)h(the)f
-(line)h(has)f(any)h(text)f(in)g(it,)314 513 y(save)h(it)f(on)h(the)f
-(history.)g(*/)243 565 y(if)g(\(line_read)g(&&)g(*line_read\))290
-616 y(add_history)g(\(line_read\);)243 720 y(return)g(\(line_read\);)
-195 772 y(})137 848 y Fu(This)13 b(function)f(giv)o(es)h(the)e(user)h
-(the)g(default)h(b)q(eha)o(viour)g(of)1169 846 y Fn(h)p
-1181 820 74 2 v 1181 848 a Fm(T)m(AB)p 1181 856 V 1253
-846 a Fn(i)1280 848 y Fu(completion:)19 b(completion)13
-b(on)f(\014le)75 903 y(names.)20 b(If)c(y)o(ou)f(do)g(not)g(w)o(an)o(t)
-f(Readline)j(to)d(complete)j(on)e(\014lenames,)h(y)o(ou)f(can)g(c)o
-(hange)h(the)f(binding)75 958 y(of)g(the)205 956 y Fn(h)p
-217 930 V 217 958 a Fm(T)m(AB)p 217 965 V 289 956 a Fn(i)319
-958 y Fu(k)o(ey)g(with)h Ft(rl_bind_key\(\))p Fu(.)195
-1031 y Ft(int)23 b(rl_bind_key)g(\(int)g Fk(k)o(ey)p
-Ft(,)h(rl_command_func_t)d(*)p Fk(function)p Ft(\);)137
-1107 y(rl_bind_key\(\))15 b Fu(tak)o(es)h(t)o(w)o(o)g(argumen)o(ts:)22
-b Fk(k)o(ey)e Fu(is)e(the)e(c)o(haracter)g(that)g(y)o(ou)h(w)o(an)o(t)f
-(to)g(bind,)i(and)75 1161 y Fk(function)h Fu(is)f(the)g(address)g(of)g
-(the)g(function)g(to)g(call)h(when)f Fk(k)o(ey)k Fu(is)c(pressed.)29
-b(Binding)1628 1159 y Fn(h)p 1641 1133 V 1641 1161 a
-Fm(T)m(AB)p 1641 1169 V 1712 1159 a Fn(i)1745 1161 y
-Fu(to)17 b Ft(rl_)75 1216 y(insert\(\))f Fu(mak)o(es)422
-1214 y Fn(h)p 434 1188 V 434 1216 a Fm(T)m(AB)p 434 1224
-V 506 1214 a Fn(i)539 1216 y Fu(insert)i(itself.)28 b
-Ft(rl_bind_key\(\))15 b Fu(returns)j(non-zero)g(if)g
-Fk(k)o(ey)j Fu(is)d(not)f(a)g(v)m(alid)75 1271 y(ASCI)q(I)f(c)o
-(haracter)f(co)q(de)h(\(b)q(et)o(w)o(een)f(0)g(and)g(255\).)137
-1347 y(Th)o(us,)g(to)g(disable)h(the)g(default)703 1345
-y Fn(h)p 716 1319 V 716 1347 a Fm(T)m(AB)p 716 1354 V
-787 1345 a Fn(i)817 1347 y Fu(b)q(eha)o(vior,)g(the)f(follo)o(wing)h
-(su\016ces:)195 1420 y Ft(rl_bind_key)22 b(\('\\t',)h(rl_insert\);)137
-1496 y Fu(This)14 b(co)q(de)g(should)g(b)q(e)g(executed)g(once)g(at)e
-(the)h(start)f(of)h(y)o(our)g(program;)f(y)o(ou)h(migh)o(t)g(write)g(a)
-g(func-)75 1551 y(tion)k(called)h Ft(initialize_readline\(\))13
-b Fu(whic)o(h)k(p)q(erforms)f(this)h(and)g(other)f(desired)h
-(initializations,)75 1605 y(suc)o(h)f(as)e(installing)k(custom)c
-(completers)i(\(see)f(Section)h(2.6)f([Custom)f(Completers],)g(page)h
-(41\).)75 1756 y Fs(2.2)33 b(Custom)21 b(F)-6 b(unctions)137
-1861 y Fu(Readline)14 b(pro)o(vides)f(man)o(y)e(functions)i(for)f
-(manipulating)i(the)e(text)g(of)g(the)g(line,)i(but)e(it)h(isn't)f(p)q
-(ossi-)75 1915 y(ble)i(to)f(an)o(ticipate)h(the)f(needs)h(of)f(all)h
-(programs.)k(This)13 b(section)h(describ)q(es)h(the)e(v)m(arious)h
-(functions)g(and)75 1970 y(v)m(ariables)g(de\014ned)h(within)f(the)f
-(Readline)i(library)e(whic)o(h)h(allo)o(w)g(a)e(user)h(program)f(to)h
-(add)g(customized)75 2025 y(functionalit)o(y)j(to)f(Readline.)137
-2101 y(Before)j(declaring)i(an)o(y)e(functions)h(that)f(customize)g
-(Readline's)h(b)q(eha)o(vior,)h(or)d(using)i(an)o(y)f(func-)75
-2156 y(tionalit)o(y)23 b(Readline)h(pro)o(vides)g(in)f(other)g(co)q
-(de,)h(an)f(application)i(writer)d(should)i(include)h(the)e(\014le)75
-2211 y Ft(<readline/readline.h>)14 b Fu(in)j(an)o(y)g(\014le)h(that)e
-(uses)h(Readline's)g(features.)24 b(Since)19 b(some)d(of)g(the)h
-(de\014-)75 2265 y(nitions)g(in)f Ft(readline.h)e Fu(use)i(the)g
-Ft(stdio)f Fu(library)l(,)h(the)g(\014le)g Ft(<stdio.h>)f
-Fu(should)h(b)q(e)g(included)j(b)q(efore)75 2320 y Ft(readline.h)p
-Fu(.)137 2396 y Ft(readline.h)14 b Fu(de\014nes)i(a)f(C)h(prepro)q
-(cessor)f(v)m(ariable)i(that)d(should)i(b)q(e)g(treated)f(as)g(an)g(in)
-o(teger,)g Ft(RL_)75 2451 y(READLINE_VERSION)p Fu(,)9
-b(whic)o(h)j(ma)o(y)f(b)q(e)g(used)h(to)e(conditionally)k(compile)e
-(application)h(co)q(de)f(dep)q(ending)75 2506 y(on)17
-b(the)h(installed)h(Readline)g(v)o(ersion.)27 b(The)18
-b(v)m(alue)h(is)f(a)f(hexadecimal)i(enco)q(ding)g(of)e(the)h(ma)s(jor)e
-(and)75 2560 y(minor)h(v)o(ersion)h(n)o(um)o(b)q(ers)f(of)g(the)g
-(library)l(,)h(of)f(the)g(form)f(0x)p Fk(MMmm)p Fu(.)25
-b Fk(MM)c Fu(is)c(the)h(t)o(w)o(o-digit)e(ma)s(jor)75
-2615 y(v)o(ersion)f(n)o(um)o(b)q(er;)f Fk(mm)h Fu(is)g(the)f(t)o(w)o
-(o-digit)g(minor)h(v)o(ersion)g(n)o(um)o(b)q(er.)20 b(F)l(or)14
-b(Readline)h(4.2,)f(for)f(example,)75 2670 y(the)i(v)m(alue)i(of)d
-Ft(RL_READLINE_VERSION)f Fu(w)o(ould)j(b)q(e)f Ft(0x0402)p
-Fu(.)p eop
-%%Page: 23 25
-23 24 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(23)75 149 y Fj(2.2.1)30 b(Readline)20
-b(T)n(yp)r(edefs)137 251 y Fu(F)l(or)15 b(readabilt)o(y)l(,)g(w)o(e)g
-(declare)i(a)d(n)o(um)o(b)q(er)i(of)f(new)g(ob)s(ject)g(t)o(yp)q(es,)g
-(all)h(p)q(oin)o(ters)f(to)g(functions.)137 324 y(The)j(reason)g(for)f
-(declaring)i(these)f(new)g(t)o(yp)q(es)g(is)h(to)e(mak)o(e)g(it)h
-(easier)h(to)e(write)h(co)q(de)g(describing)75 379 y(p)q(oin)o(ters)e
-(to)e(C)h(functions)h(with)g(appropriately)f(protot)o(yp)q(ed)g
-(argumen)o(ts)g(and)g(return)g(v)m(alues.)137 452 y(F)l(or)j(instance,)
-i(sa)o(y)e(w)o(e)g(w)o(an)o(t)f(to)h(declare)h(a)f(v)m(ariable)i
-Fk(func)i Fu(as)c(a)g(p)q(oin)o(ter)h(to)f(a)g(function)h(whic)o(h)75
-507 y(tak)o(es)12 b(t)o(w)o(o)g Ft(int)g Fu(argumen)o(ts)g(and)h
-(returns)g(an)g Ft(int)f Fu(\(this)h(is)g(the)g(t)o(yp)q(e)g(of)g(all)g
-(of)g(the)g(Readline)h(bindable)75 561 y(functions\).)20
-b(Instead)c(of)f(the)g(classic)h(C)f(declaration)137
-634 y Ft(int)g(\(*func\)\(\);)75 707 y Fu(or)g(the)g(ANSI-C)h(st)o(yle)
-f(declaration)137 780 y Ft(int)g(\(*func\)\(int,)f(int\);)75
-853 y Fu(w)o(e)h(ma)o(y)f(write)137 926 y Ft(rl_command_func_t)f
-(*func;)137 999 y Fu(The)j(full)g(list)g(of)f(function)h(p)q(oin)o(ter)
-g(t)o(yp)q(es)f(a)o(v)m(ailable)i(is)75 1087 y Ft(typedef)d(int)h
-(rl_command_func_t)e(\(int,)h(int\);)75 1157 y(typedef)g(char)h
-(*rl_compentry_func_t)d(\(const)j(char)f(*,)h(int\);)75
-1227 y(typedef)f(char)h(**rl_completion_func_t)d(\(const)i(char)h(*,)g
-(int,)f(int\);)75 1297 y(typedef)g(char)h(*rl_quote_func_t)e(\(char)h
-(*,)h(int,)g(char)f(*\);)75 1367 y(typedef)g(char)h(*rl_dequote_func_t)
-d(\(char)j(*,)g(int\);)75 1437 y(typedef)f(int)h(rl_compignore_func_t)d
-(\(char)j(**\);)75 1507 y(typedef)f(void)h(rl_compdisp_func_t)d(\(char)
-j(**,)g(int,)f(int\);)75 1577 y(typedef)g(int)h(rl_hook_func_t)e
-(\(void\);)75 1647 y(typedef)h(int)h(rl_getc_func_t)e(\(FILE)i(*\);)75
-1717 y(typedef)f(int)h(rl_linebuf_func_t)e(\(char)h(*,)h(int\);)75
-1787 y(typedef)f(int)h(rl_intfunc_t)e(\(int\);)75 1857
-y(#define)h(rl_ivoidfunc_t)f(rl_hook_func_t)75 1927 y(typedef)h(int)h
-(rl_icpfunc_t)e(\(char)i(*\);)75 1997 y(typedef)f(int)h(rl_icppfunc_t)e
-(\(char)i(**\);)75 2067 y(typedef)f(void)h(rl_voidfunc_t)e(\(void\);)75
-2137 y(typedef)h(void)h(rl_vintfunc_t)e(\(int\);)75 2208
-y(typedef)h(void)h(rl_vcpfunc_t)e(\(char)i(*\);)75 2278
-y(typedef)f(void)h(rl_vcppfunc_t)e(\(char)i(**\);)75
-2386 y Fj(2.2.2)30 b(W)-5 b(riting)20 b(a)h(New)f(F)-5
-b(unction)137 2488 y Fu(In)17 b(order)f(to)f(write)h(new)h(functions)g
-(for)e(Readline,)i(y)o(ou)f(need)h(to)e(kno)o(w)h(the)g(calling)i(con)o
-(v)o(en)o(tions)75 2542 y(for)g(k)o(eyb)q(oard-in)o(v)o(ok)o(ed)h
-(functions,)g(and)g(the)f(names)h(of)f(the)g(v)m(ariables)i(that)d
-(describ)q(e)k(the)d(curren)o(t)75 2597 y(state)c(of)h(the)g(line)i
-(read)e(so)g(far.)137 2670 y(The)h(calling)h(sequence)f(for)f(a)f
-(command)i Ft(foo)e Fu(lo)q(oks)i(lik)o(e)p eop
-%%Page: 24 26
-24 25 bop 75 -58 a Fu(24)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(int)23 b(foo)h(\(int)f(count,)g(int)h(key\))75
-221 y Fu(where)18 b Fk(coun)o(t)h Fu(is)f(the)g(n)o(umeric)h(argumen)o
-(t)e(\(or)h(1)f(if)i(defaulted\))f(and)g Fk(k)o(ey)k
-Fu(is)d(the)f(k)o(ey)g(that)f(in)o(v)o(ok)o(ed)75 276
-y(this)f(function.)137 348 y(It)c(is)g(completely)h(up)f(to)f(the)g
-(function)i(as)e(to)g(what)g(should)h(b)q(e)g(done)g(with)g(the)g(n)o
-(umeric)g(argumen)o(t.)75 403 y(Some)20 b(functions)h(use)f(it)g(as)g
-(a)g(rep)q(eat)g(coun)o(t,)g(some)g(as)g(a)f(\015ag,)i(and)f(others)g
-(to)f(c)o(ho)q(ose)h(alternate)75 457 y(b)q(eha)o(vior)i(\(refreshing)g
-(the)g(curren)o(t)f(line)j(as)d(opp)q(osed)h(to)f(refreshing)i(the)e
-(screen,)j(for)d(example\).)75 512 y(Some)c(c)o(ho)q(ose)f(to)g(ignore)
-h(it.)24 b(In)18 b(general,)f(if)g(a)f(function)h(uses)g(the)g(n)o
-(umeric)h(argumen)o(t)d(as)i(a)f(rep)q(eat)75 567 y(coun)o(t,)e(it)g
-(should)h(b)q(e)f(able)h(to)e(do)h(something)h(useful)g(with)f(b)q(oth)
-g(negativ)o(e)g(and)g(p)q(ositiv)o(e)h(argumen)o(ts.)75
-622 y(A)o(t)g(the)g(v)o(ery)g(least,)g(it)g(should)h(b)q(e)g(a)o(w)o
-(are)e(that)h(it)g(can)g(b)q(e)h(passed)g(a)f(negativ)o(e)g(argumen)o
-(t.)137 693 y(A)f(command)g(function)h(should)g(return)e(0)h(if)g(its)g
-(action)h(completes)f(successfully)l(,)i(and)e(a)g(non-zero)75
-748 y(v)m(alue)i(if)g(some)f(error)f(o)q(ccurs.)75 888
-y Fs(2.3)33 b(Readline)23 b(V)-6 b(ariables)137 989 y
-Fu(These)16 b(v)m(ariables)g(are)f(a)o(v)m(ailable)i(to)e(function)h
-(writers.)1773 1120 y(V)l(ariable)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 1120 18 3 v 21 w(line)p 395 1120 V
-23 w(bu\013er)195 1174 y Fu(This)d(is)g(the)g(line)h(gathered)f(so)f
-(far.)20 b(Y)l(ou)c(are)f(w)o(elcome)h(to)f(mo)q(dify)h(the)g(con)o
-(ten)o(ts)f(of)g(the)h(line,)195 1229 y(but)i(see)g(Section)h(2.4.5)d
-([Allo)o(wing)i(Undoing],)h(page)e(32.)27 b(The)18 b(function)h
-Ft(rl_extend_line_)195 1284 y(buffer)14 b Fu(is)i(a)o(v)m(ailable)h(to)
-d(increase)j(the)e(memory)f(allo)q(cated)j(to)d Ft(rl_line_buffer)p
-Fu(.)1773 1414 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p
-215 1414 V 21 w(p)r(oin)n(t)195 1469 y Fu(The)15 b(o\013set)g(of)f(the)
-i(curren)o(t)f(cursor)g(p)q(osition)h(in)g Ft(rl_line_buffer)d
-Fu(\(the)i Fl(p)n(oint)t Fu(\).)1773 1600 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1600 V 21 w(end)195 1655 y
-Fu(The)14 b(n)o(um)o(b)q(er)g(of)g(c)o(haracters)f(presen)o(t)h(in)h
-Ft(rl_line_buffer)p Fu(.)i(When)e Ft(rl_point)e Fu(is)h(at)f(the)h(end)
-195 1709 y(of)h(the)g(line,)i Ft(rl_point)d Fu(and)h
-Ft(rl_end)f Fu(are)h(equal.)1773 1840 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1840 V 21 w(mark)195 1895 y
-Fu(The)f Fk(mark)h Fu(\(sa)o(v)o(ed)e(p)q(osition\))h(in)g(the)g
-(curren)o(t)f(line.)31 b(If)19 b(set,)g(the)f(mark)g(and)h(p)q(oin)o(t)
-g(de\014ne)g(a)195 1950 y Fl(r)n(e)n(gion)p Fu(.)1773
-2080 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2080
-V 21 w(done)195 2135 y Fu(Setting)11 b(this)g(to)g(a)f(non-zero)h(v)m
-(alue)h(causes)f(Readline)h(to)f(return)f(the)h(curren)o(t)g(line)h
-(immediately)l(.)1773 2265 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 2265 V 21 w(n)n(um)p 347 2265 V 19 w(c)n(hars)p
-496 2265 V 20 w(to)p 567 2265 V 21 w(read)195 2320 y
-Fu(Setting)d(this)g(to)f(a)g(p)q(ositiv)o(e)h(v)m(alue)h(b)q(efore)f
-(calling)h Ft(readline\(\))d Fu(causes)h(Readline)i(to)e(return)195
-2375 y(after)h(accepting)i(that)e(man)o(y)g(c)o(haracters,)h(rather)f
-(than)h(reading)g(up)g(to)f(a)h(c)o(haracter)f(b)q(ound)195
-2430 y(to)e Ft(accept-line)p Fu(.)1773 2560 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 2560 V 21 w(p)r(ending)p 436
-2560 V 20 w(input)195 2615 y Fu(Setting)13 b(this)g(to)f(a)g(v)m(alue)i
-(mak)o(es)e(it)h(the)f(next)h(k)o(eystrok)o(e)f(read.)19
-b(This)13 b(is)g(a)f(w)o(a)o(y)g(to)f(stu\013)h(a)h(single)195
-2670 y(c)o(haracter)h(in)o(to)i(the)f(input)h(stream.)p
-eop
-%%Page: 25 27
-25 26 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(25)1773 149 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(dispatc)n(hing)195 204
-y Fu(Set)12 b(to)g(a)f(non-zero)i(v)m(alue)g(if)g(a)f(function)h(is)f
-(b)q(eing)i(called)f(from)f(a)f(k)o(ey)h(binding;)j(zero)d(otherwise.)
-195 259 y(Application)20 b(functions)e(can)g(test)g(this)g(to)f(disco)o
-(v)o(er)h(whether)g(they)g(w)o(ere)g(called)h(directly)g(or)195
-314 y(b)o(y)c(Readline's)h(dispatc)o(hing)h(mec)o(hanism.)1773
-423 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 423
-V 21 w(erase)p 363 423 V 20 w(empt)n(y)p 540 423 V 20
-w(line)195 478 y Fu(Setting)j(this)h(to)e(a)h(non-zero)g(v)m(alue)h
-(causes)f(Readline)i(to)d(completely)i(erase)f(the)g(curren)o(t)195
-533 y(line,)g(including)h(an)o(y)c(prompt,)h(an)o(y)g(time)g(a)f
-(newline)j(is)e(t)o(yp)q(ed)g(as)f(the)h(only)g(c)o(haracter)f(on)195
-588 y(an)e(otherwise-empt)o(y)g(line.)31 b(The)18 b(cursor)g(is)h(mo)o
-(v)o(ed)e(to)h(the)g(b)q(eginning)i(of)e(the)g(newly-blank)195
-643 y(line.)1773 752 y(V)l(ariable)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 752 V 21 w(prompt)195 807 y Fu(The)13
-b(prompt)g(Readline)h(uses.)20 b(This)13 b(is)h(set)f(from)f(the)h
-(argumen)o(t)g(to)f Ft(readline\(\))p Fu(,)g(and)h(should)195
-862 y(not)g(b)q(e)h(assigned)g(to)f(directly)l(.)21 b(The)14
-b Ft(rl_set_prompt\(\))d Fu(function)j(\(see)g(Section)g(2.4.6)e
-([Redis-)195 917 y(pla)o(y],)j(page)g(33\))f(ma)o(y)h(b)q(e)g(used)h
-(to)f(mo)q(dify)h(the)f(prompt)g(string)g(after)f(calling)j
-Ft(readline\(\))p Fu(.)1773 1026 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1026 V 21 w(already)p 419 1026
-V 21 w(prompted)195 1081 y Fu(If)e(an)g(application)i(wishes)f(to)f
-(displa)o(y)h(the)f(prompt)g(itself,)h(rather)f(than)g(ha)o(v)o(e)g
-(Readline)h(do)195 1136 y(it)e(the)f(\014rst)g(time)h
-Ft(readline\(\))e Fu(is)i(called,)h(it)e(should)i(set)e(this)h(v)m
-(ariable)g(to)f(a)g(non-zero)h(v)m(alue)195 1191 y(after)h(displa)o
-(ying)j(the)e(prompt.)31 b(The)19 b(prompt)g(m)o(ust)f(also)h(b)q(e)h
-(passed)f(as)f(the)h(argumen)o(t)g(to)195 1245 y Ft(readline\(\))c
-Fu(so)h(the)h(redispla)o(y)g(functions)h(can)e(up)q(date)h(the)g
-(displa)o(y)h(prop)q(erly)l(.)24 b(The)17 b(calling)195
-1300 y(application)g(is)f(resp)q(onsible)h(for)d(managing)h(the)h(v)m
-(alue;)g(Readline)g(nev)o(er)g(sets)e(it.)1773 1410 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 1410 V 21 w(library)p
-625 1410 V 21 w(v)n(ersion)195 1465 y Fu(The)c(v)o(ersion)h(n)o(um)o(b)
-q(er)f(of)g(this)h(revision)g(of)f(the)g(library)l(.)1773
-1574 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1574
-V 21 w(readline)p 434 1574 V 22 w(v)n(ersion)195 1629
-y Fu(An)d(in)o(teger)h(enco)q(ding)g(the)f(curren)o(t)g(v)o(ersion)g
-(of)g(the)g(library)l(.)27 b(The)17 b(enco)q(ding)h(is)g(of)f(the)g
-(form)195 1684 y(0x)p Fk(MMmm)p Fu(,)g(where)i Fk(MM)j
-Fu(is)d(the)f(t)o(w)o(o-digit)g(ma)s(jor)f(v)o(ersion)i(n)o(um)o(b)q
-(er,)g(and)f Fk(mm)g Fu(is)h(the)f(t)o(w)o(o-)195 1738
-y(digit)i(minor)e(v)o(ersion)h(n)o(um)o(b)q(er.)31 b(F)l(or)18
-b(example,)i(for)e(Readline-4.2,)i Ft(rl_readline_version)195
-1793 y Fu(w)o(ould)c(ha)o(v)o(e)e(the)i(v)m(alue)g(0x0402.)1773
-1903 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1903
-V 21 w(gn)n(u)p 327 1903 V 20 w(readline)p 545 1903 V
-22 w(p)195 1958 y Fu(Alw)o(a)o(ys)15 b(set)g(to)f(1,)h(denoting)h(that)
-e(this)i(is)g Fp(gnu)f Fu(readline)h(rather)f(than)g(some)g(em)o
-(ulation.)1773 2067 y(V)l(ariable)-1861 b Fi(const)20
-b(char)g(*)f Fh(rl)p 436 2067 V 21 w(terminal)p 668 2067
-V 21 w(name)195 2122 y Fu(The)14 b(terminal)h(t)o(yp)q(e,)f(used)h(for)
-e(initialization.)23 b(If)14 b(not)f(set)h(b)o(y)g(the)g(application,)i
-(Readline)f(sets)195 2177 y(this)h(to)e(the)h(v)m(alue)i(of)e(the)g
-Ft(TERM)g Fu(en)o(vironmen)o(t)g(v)m(ariable)i(the)e(\014rst)g(time)g
-(it)h(is)f(called.)1773 2286 y(V)l(ariable)-1861 b Fi(const)20
-b(char)g(*)f Fh(rl)p 436 2286 V 21 w(readline)p 655 2286
-V 22 w(name)195 2341 y Fu(This)d(v)m(ariable)h(is)f(set)g(to)f(a)g
-(unique)i(name)f(b)o(y)f(eac)o(h)h(application)h(using)f(Readline.)23
-b(The)16 b(v)m(alue)195 2396 y(allo)o(ws)e(conditional)i(parsing)e(of)g
-(the)g(inputrc)h(\014le)g(\(see)f(Section)h(1.3.2)d([Conditional)j
-(Init)g(Con-)195 2451 y(structs],)f(page)h(9\).)1773
-2560 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286
-2560 V 21 w(instream)195 2615 y Fu(The)i(stdio)f(stream)g(from)g(whic)o
-(h)h(Readline)h(reads)e(input.)37 b(If)21 b Ft(NULL)p
-Fu(,)g(Readline)h(defaults)f(to)195 2670 y Fk(stdin)p
-Fu(.)p eop
-%%Page: 26 28
-26 27 bop 75 -58 a Fu(26)1299 b(GNU)15 b(Readline)h(Library)1773
-149 y(V)l(ariable)-1861 b Fi(FILE)20 b(*)f Fh(rl)p 286
-149 18 3 v 21 w(outstream)195 204 y Fu(The)e(stdio)h(stream)e(to)h
-(whic)o(h)h(Readline)g(p)q(erforms)f(output.)26 b(If)18
-b Ft(NULL)p Fu(,)e(Readline)j(defaults)f(to)195 259 y
-Fk(stdout)p Fu(.)1773 381 y(V)l(ariable)-1861 b Fi(rl_command_func_t)22
-b(*)d Fh(rl)p 626 381 V 21 w(last)p 735 381 V 21 w(func)195
-436 y Fu(The)f(address)f(of)g(the)g(last)h(command)f(function)h
-(Readline)h(executed.)27 b(Ma)o(y)17 b(b)q(e)h(used)g(to)f(test)195
-490 y(whether)e(or)g(not)g(a)g(function)h(is)f(b)q(eing)i(executed)f(t)
-o(wice)g(in)g(succession,)g(for)e(example.)1773 612 y(V)l(ariable)-1861
-b Fi(rl_hook_func_t)21 b(*)e Fh(rl)p 547 612 V 22 w(startup)p
-752 612 V 19 w(ho)r(ok)195 667 y Fu(If)e(non-zero,)h(this)g(is)f(the)h
-(address)f(of)f(a)h(function)h(to)f(call)h(just)f(b)q(efore)g
-Ft(readline)f Fu(prin)o(ts)i(the)195 722 y(\014rst)d(prompt.)1773
-844 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e
-Fh(rl)p 547 844 V 22 w(pre)p 651 844 V 20 w(input)p 804
-844 V 21 w(ho)r(ok)195 898 y Fu(If)f(non-zero,)g(this)g(is)h(the)f
-(address)f(of)h(a)f(function)i(to)e(call)i(after)e(the)h(\014rst)f
-(prompt)g(has)h(b)q(een)195 953 y(prin)o(ted)e(and)f(just)g(b)q(efore)h
-Ft(readline)e Fu(starts)g(reading)h(input)i(c)o(haracters.)1773
-1075 y(V)l(ariable)-1861 b Fi(rl_hook_func_t)21 b(*)e
-Fh(rl)p 547 1075 V 22 w(ev)n(en)n(t)p 701 1075 V 22 w(ho)r(ok)195
-1130 y Fu(If)i(non-zero,)g(this)g(is)g(the)f(address)g(of)g(a)g
-(function)h(to)f(call)i(p)q(erio)q(dically)h(when)e(Readline)g(is)195
-1184 y(w)o(aiting)15 b(for)f(terminal)h(input.)21 b(By)14
-b(default,)h(this)g(will)i(b)q(e)e(called)h(at)e(most)g(ten)g(times)h
-(a)f(second)195 1239 y(if)i(there)f(is)h(no)f(k)o(eyb)q(oard)g(input.)
-1773 1361 y(V)l(ariable)-1861 b Fi(rl_getc_func_t)21
-b(*)e Fh(rl)p 547 1361 V 22 w(getc)p 671 1361 V 21 w(function)195
-1416 y Fu(If)c(non-zero,)h(Readline)g(will)h(call)f(indirectly)i
-(through)d(this)g(p)q(oin)o(ter)h(to)f(get)f(a)h(c)o(haracter)g(from)
-195 1471 y(the)k(input)i(stream.)31 b(By)19 b(default,)h(it)g(is)g(set)
-f(to)f Ft(rl_getc)p Fu(,)h(the)g(default)h(Readline)h(c)o(haracter)195
-1525 y(input)16 b(function)g(\(see)f(Section)h(2.4.8)e([Character)g
-(Input],)h(page)g(34\).)1773 1647 y(V)l(ariable)-1861
-b Fi(rl_voidfunc_t)21 b(*)e Fh(rl)p 521 1647 V 21 w(redispla)n(y)p
-765 1647 V 22 w(function)195 1702 y Fu(If)f(non-zero,)h(Readline)g
-(will)h(call)f(indirectly)h(through)e(this)g(p)q(oin)o(ter)h(to)e(up)q
-(date)i(the)f(displa)o(y)195 1757 y(with)c(the)f(curren)o(t)h(con)o
-(ten)o(ts)f(of)g(the)g(editing)i(bu\013er.)k(By)14 b(default,)g(it)g
-(is)g(set)f(to)g Ft(rl_redisplay)p Fu(,)195 1812 y(the)i(default)h
-(Readline)h(redispla)o(y)f(function)g(\(see)f(Section)h(2.4.6)e
-([Redispla)o(y],)h(page)g(33\).)1773 1933 y(V)l(ariable)-1861
-b Fi(rl_vintfunc_t)21 b(*)e Fh(rl)p 521 1933 V 21 w(prep)p
-656 1933 V 21 w(term)p 798 1933 V 19 w(function)195 1988
-y Fu(If)12 b(non-zero,)h(Readline)g(will)h(call)f(indirectly)h(through)
-e(this)g(p)q(oin)o(ter)h(to)e(initialize)k(the)e(terminal.)195
-2043 y(The)19 b(function)g(tak)o(es)f(a)g(single)i(argumen)o(t,)e(an)h
-Ft(int)f Fu(\015ag)g(that)g(sa)o(ys)g(whether)g(or)h(not)f(to)g(use)195
-2098 y(eigh)o(t-bit)g(c)o(haracters.)25 b(By)17 b(default,)h(this)f(is)
-h(set)e(to)h Ft(rl_prep_terminal)e Fu(\(see)i(Section)h(2.4.9)195
-2152 y([T)l(erminal)e(Managemen)o(t],)d(page)i(35\).)1773
-2274 y(V)l(ariable)-1861 b Fi(rl_voidfunc_t)21 b(*)e
-Fh(rl)p 521 2274 V 21 w(deprep)p 714 2274 V 21 w(term)p
-856 2274 V 19 w(function)195 2329 y Fu(If)g(non-zero,)g(Readline)g
-(will)h(call)g(indirectly)g(through)e(this)h(p)q(oin)o(ter)f(to)g
-(reset)g(the)h(terminal.)195 2384 y(This)f(function)g(should)h(undo)f
-(the)f(e\013ects)h(of)f Ft(rl_prep_term_function)p Fu(.)24
-b(By)17 b(default,)i(this)195 2439 y(is)d(set)f(to)f
-Ft(rl_deprep_terminal)f Fu(\(see)i(Section)h(2.4.9)e([T)l(erminal)i
-(Managemen)o(t],)d(page)i(35\).)1773 2560 y(V)l(ariable)-1861
-b Fi(Keymap)20 b Fh(rl)p 293 2560 V 21 w(executing)p
-551 2560 V 22 w(k)n(eymap)195 2615 y Fu(This)f(v)m(ariable)g(is)f(set)g
-(to)g(the)g(k)o(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h
-(29\))f(in)i(whic)o(h)195 2670 y(the)c(curren)o(tly)h(executing)g
-(readline)h(function)f(w)o(as)f(found.)p eop
-%%Page: 27 29
-27 28 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(27)1773 149 y(V)l(ariable)-1861 b Fi(Keymap)20
-b Fh(rl)p 293 149 18 3 v 21 w(binding)p 501 149 V 22
-w(k)n(eymap)195 204 y Fu(This)f(v)m(ariable)g(is)f(set)g(to)g(the)g(k)o
-(eymap)f(\(see)h(Section)h(2.4.2)e([Keymaps],)g(page)h(29\))f(in)i
-(whic)o(h)195 259 y(the)c(last)g(k)o(ey)g(binding)j(o)q(ccurred.)1773
-383 y(V)l(ariable)-1861 b Fi(char)20 b(*)f Fh(rl)p 286
-383 V 21 w(executing)p 544 383 V 22 w(macro)195 438 y
-Fu(This)d(v)m(ariable)g(is)g(set)f(to)g(the)g(text)g(of)f(an)o(y)h
-(curren)o(tly-executing)i(macro.)1773 562 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 562 V 21 w(readline)p 434 562
-V 22 w(state)195 617 y Fu(A)d(v)m(ariable)i(with)e(bit)h(v)m(alues)h
-(that)d(encapsulate)i(the)g(curren)o(t)f(Readline)h(state.)25
-b(A)18 b(bit)f(is)h(set)195 671 y(with)h(the)g Ft(RL_SETSTATE)f
-Fu(macro,)h(and)g(unset)g(with)g(the)g Ft(RL_UNSETSTATE)e
-Fu(macro.)31 b(Use)19 b(the)195 726 y Ft(RL_ISSTATE)e
-Fu(macro)h(to)g(test)g(whether)h(a)f(particular)i(state)d(bit)j(is)f
-(set.)30 b(Curren)o(t)18 b(state)g(bits)195 781 y(include:)195
-864 y Ft(RL_STATE_NONE)435 919 y Fu(Readline)e(has)g(not)e(y)o(et)h(b)q
-(een)h(called,)h(nor)e(has)g(it)g(b)q(egun)h(to)f(in)o(tialize.)195
-1001 y Ft(RL_STATE_INITIALIZING)435 1056 y Fu(Readline)h(is)g
-(initializi)q(ng)i(its)d(in)o(ternal)h(data)f(structures.)195
-1138 y Ft(RL_STATE_INITIALIZED)435 1192 y Fu(Readline)h(has)g
-(completed)g(its)f(initialization.)195 1274 y Ft(RL_STATE_TERMPREPPED)
-435 1329 y Fu(Readline)h(has)e(mo)q(di\014ed)i(the)e(terminal)h(mo)q
-(des)g(to)e(do)i(its)f(o)o(wn)g(input)h(and)g(redis-)435
-1384 y(pla)o(y)l(.)195 1466 y Ft(RL_STATE_READCMD)435
-1521 y Fu(Readline)h(is)g(reading)g(a)f(command)g(from)f(the)i(k)o(eyb)
-q(oard.)195 1603 y Ft(RL_STATE_METANEXT)435 1658 y Fu(Readline)g(is)g
-(reading)g(more)f(input)h(after)e(reading)i(the)f(meta-pre\014x)h(c)o
-(haracter.)195 1740 y Ft(RL_STATE_DISPATCHING)435 1794
-y Fu(Readline)g(is)g(dispatc)o(hing)h(to)d(a)h(command.)195
-1876 y Ft(RL_STATE_MOREINPUT)435 1931 y Fu(Readline)h(is)g(reading)g
-(more)f(input)h(while)h(executing)f(an)f(editing)i(command.)195
-2013 y Ft(RL_STATE_ISEARCH)435 2068 y Fu(Readline)f(is)g(p)q(erforming)
-g(an)f(incremen)o(tal)h(history)f(searc)o(h.)195 2150
-y Ft(RL_STATE_NSEARCH)435 2205 y Fu(Readline)h(is)g(p)q(erforming)g(a)f
-(non-incremen)o(tal)h(history)g(searc)o(h.)195 2287 y
-Ft(RL_STATE_SEARCH)435 2342 y Fu(Readline)11 b(is)g(searc)o(hing)g(bac)
-o(kw)o(ard)e(or)h(forw)o(ard)f(through)h(the)g(history)g(for)f(a)h
-(string.)195 2424 y Ft(RL_STATE_NUMERICARG)435 2478 y
-Fu(Readline)16 b(is)g(reading)g(a)f(n)o(umeric)h(argumen)o(t.)195
-2560 y Ft(RL_STATE_MACROINPUT)435 2615 y Fu(Readline)d(is)g(curren)o
-(tly)g(getting)f(its)g(input)h(from)e(a)h(previously-de\014ned)j(k)o
-(eyb)q(oard)435 2670 y(macro.)p eop
-%%Page: 28 30
-28 29 bop 75 -58 a Fu(28)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(RL_STATE_MACRODEF)435 204 y Fu(Readline)g(is)g(curren)o(tly)g
-(reading)g(c)o(haracters)e(de\014ning)j(a)e(k)o(eyb)q(oard)g(macro.)195
-286 y Ft(RL_STATE_OVERWRITE)435 341 y Fu(Readline)h(is)g(in)g(o)o(v)o
-(erwrite)f(mo)q(de.)195 423 y Ft(RL_STATE_COMPLETING)435
-478 y Fu(Readline)h(is)g(p)q(erforming)g(w)o(ord)e(completion.)195
-560 y Ft(RL_STATE_SIGHANDLER)435 615 y Fu(Readline)i(is)g(curren)o(tly)
-g(executing)g(the)f(readline)i(signal)f(handler.)195
-697 y Ft(RL_STATE_UNDOING)435 752 y Fu(Readline)g(is)g(p)q(erforming)g
-(an)f(undo.)195 834 y Ft(RL_STATE_DONE)435 889 y Fu(Readline)g(has)f
-(read)g(a)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e Ft(accept-line)f
-Fu(and)i(is)h(ab)q(out)f(to)435 944 y(return)h(the)g(line)i(to)e(the)g
-(caller.)1773 1068 y(V)l(ariable)-1861 b Fi(int)20 b
-Fh(rl)p 215 1068 18 3 v 21 w(explicit)p 417 1068 V 24
-w(arg)195 1123 y Fu(Set)f(to)g(a)g(non-zero)h(v)m(alue)h(if)e(an)h
-(explicit)h(n)o(umeric)g(argumen)o(t)d(w)o(as)h(sp)q(eci\014ed)i(b)o(y)
-f(the)f(user.)195 1178 y(Only)d(v)m(alid)h(in)f(a)f(bindable)i(command)
-f(function.)1773 1302 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 1302 V 21 w(n)n(umeric)p 437 1302 V 20
-w(arg)195 1357 y Fu(Set)j(to)f(the)g(v)m(alue)i(of)f(an)o(y)f(n)o
-(umeric)h(argumen)o(t)f(explicitly)k(sp)q(eci\014ed)f(b)o(y)d(the)h
-(user)g(b)q(efore)195 1412 y(executing)14 b(the)f(curren)o(t)g
-(Readline)h(function.)20 b(Only)14 b(v)m(alid)h(in)f(a)f(bindable)i
-(command)d(function.)1773 1536 y(V)l(ariable)-1861 b
-Fi(int)20 b Fh(rl)p 215 1536 V 21 w(editing)p 407 1536
-V 22 w(mo)r(de)195 1591 y Fu(Set)13 b(to)f(a)g(v)m(alue)i(denoting)f
-(Readline's)g(curren)o(t)g(editing)h(mo)q(de.)19 b(A)12
-b(v)m(alue)i(of)e Fk(1)k Fu(means)d(Readline)195 1646
-y(is)j(curren)o(tly)f(in)h(emacs)g(mo)q(de;)f Fk(0)j
-Fu(means)d(that)g(vi)h(mo)q(de)f(is)h(activ)o(e.)75 1781
-y Fs(2.4)33 b(Readline)23 b(Con)n(v)n(enience)g(F)-6
-b(unctions)75 1927 y Fj(2.4.1)30 b(Naming)20 b(a)g(F)-5
-b(unction)137 2025 y Fu(The)20 b(user)g(can)g(dynamically)i(c)o(hange)e
-(the)g(bindings)i(of)d(k)o(eys)h(while)h(using)g(Readline.)35
-b(This)20 b(is)75 2080 y(done)f(b)o(y)f(represen)o(ting)h(the)g
-(function)g(with)g(a)f(descriptiv)o(e)i(name.)29 b(The)19
-b(user)f(is)h(able)h(to)d(t)o(yp)q(e)i(the)75 2135 y(descriptiv)o(e)e
-(name)e(when)h(referring)f(to)g(the)g(function.)21 b(Th)o(us,)14
-b(in)i(an)f(init)i(\014le,)f(one)f(migh)o(t)g(\014nd)195
-2202 y Ft(Meta-Rubout:)46 b(backward-kill-word)137 2272
-y Fu(This)21 b(binds)g(the)f(k)o(eystrok)o(e)661 2270
-y Fn(h)p 673 2244 209 2 v 673 2272 a Fm(Meta-Rub)q(out)p
-673 2279 V 879 2270 a Fn(i)914 2272 y Fu(to)g(the)g(function)g
-Fl(descriptively)k Fu(named)c Ft(backward-)75 2326 y(kill-word)p
-Fu(.)29 b(Y)l(ou,)19 b(as)f(the)h(programmer,)f(should)i(bind)f(the)g
-(functions)h(y)o(ou)e(write)h(to)e(descriptiv)o(e)75
-2381 y(names)e(as)g(w)o(ell.)21 b(Readline)16 b(pro)o(vides)g(a)f
-(function)h(for)e(doing)i(that:)1762 2506 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 18 3 v 21 w(add)p 328
-2506 V 20 w(defun)i Fg(\()p Ft(const)14 b(char)h(*name,)f
-(rl_command_func_t)283 2560 y(*function,)f(int)i(key)p
-Fg(\))195 2615 y Fu(Add)j Fk(name)i Fu(to)d(the)h(list)h(of)e(named)h
-(functions.)28 b(Mak)o(e)17 b Fk(function)h Fu(b)q(e)g(the)g(function)h
-(that)d(gets)195 2670 y(called.)21 b(If)16 b Fk(k)o(ey)j
-Fu(is)d(not)e(-1,)h(then)h(bind)g(it)g(to)e Fk(function)i
-Fu(using)g Ft(rl_bind_key\(\))p Fu(.)p eop
-%%Page: 29 31
-29 30 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(29)137 149 y(Using)16 b(this)f(function)h(alone)g(is)f
-(su\016cien)o(t)h(for)f(most)f(applications.)21 b(It)15
-b(is)h(the)f(recommended)h(w)o(a)o(y)75 204 y(to)d(add)h(a)f(few)g
-(functions)h(to)f(the)h(default)g(functions)g(that)f(Readline)i(has)e
-(built)i(in.)20 b(If)14 b(y)o(ou)f(need)h(to)f(do)75
-259 y(something)k(other)g(than)f(adding)i(a)e(function)i(to)e
-(Readline,)i(y)o(ou)f(ma)o(y)f(need)i(to)e(use)h(the)g(underlying)75
-314 y(functions)f(describ)q(ed)h(b)q(elo)o(w.)75 442
-y Fj(2.4.2)30 b(Selecting)20 b(a)h(Keymap)137 546 y Fu(Key)16
-b(bindings)i(tak)o(e)c(place)j(on)e(a)g Fk(k)o(eymap)p
-Fu(.)21 b(The)15 b(k)o(eymap)h(is)f(the)h(asso)q(ciation)g(b)q(et)o(w)o
-(een)g(the)f(k)o(eys)75 601 y(that)f(the)g(user)g(t)o(yp)q(es)g(and)h
-(the)f(functions)h(that)f(get)g(run.)19 b(Y)l(ou)c(can)f(mak)o(e)g(y)o
-(our)g(o)o(wn)f(k)o(eymaps,)h(cop)o(y)75 656 y(existing)i(k)o(eymaps,)f
-(and)g(tell)h(Readline)h(whic)o(h)f(k)o(eymap)f(to)f(use.)1762
-797 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-797 18 3 v 21 w(mak)n(e)p 445 797 V 20 w(bare)p 575 797
-V 20 w(k)n(eymap)j Fg(\()p Ft(void)p Fg(\))195 851 y
-Fu(Returns)12 b(a)f(new,)i(empt)o(y)f(k)o(eymap.)18 b(The)13
-b(space)f(for)f(the)i(k)o(eymap)e(is)i(allo)q(cated)g(with)f
-Ft(malloc\(\))p Fu(;)195 906 y(the)j(caller)i(should)f(free)f(it)h(b)o
-(y)f(calling)i Ft(rl_discard_keymap\(\))12 b Fu(when)k(done.)1762
-1047 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-1047 V 21 w(cop)n(y)p 428 1047 V 21 w(k)n(eymap)j Fg(\()p
-Ft(Keymap)14 b(map)p Fg(\))195 1102 y Fu(Return)h(a)g(new)g(k)o(eymap)g
-(whic)o(h)h(is)g(a)f(cop)o(y)g(of)g Fk(map)p Fu(.)1762
-1243 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-1243 V 21 w(mak)n(e)p 445 1243 V 20 w(k)n(eymap)j Fg(\()p
-Ft(void)p Fg(\))195 1298 y Fu(Return)16 b(a)f(new)i(k)o(eymap)e(with)i
-(the)f(prin)o(ting)h(c)o(haracters)e(b)q(ound)i(to)e(rl)p
-1457 1298 14 2 v 17 w(insert,)h(the)g(lo)o(w)o(ercase)195
-1353 y(Meta)11 b(c)o(haracters)f(b)q(ound)i(to)f(run)h(their)f(equiv)m
-(alen)o(ts,)j(and)d(the)h(Meta)e(digits)i(b)q(ound)g(to)f(pro)q(duce)
-195 1407 y(n)o(umeric)16 b(argumen)o(ts.)1762 1548 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 1548 18 3 v 21 w(discard)p
-441 1548 V 21 w(k)n(eymap)i Fg(\()p Ft(Keymap)14 b(keymap)p
-Fg(\))195 1603 y Fu(F)l(ree)h(the)h(storage)d(asso)q(ciated)j(with)f
-Fk(k)o(eymap)p Fu(.)137 1711 y(Readline)24 b(has)f(sev)o(eral)g(in)o
-(ternal)g(k)o(eymaps.)42 b(These)23 b(functions)g(allo)o(w)g(y)o(ou)f
-(to)g(c)o(hange)h(whic)o(h)75 1766 y(k)o(eymap)15 b(is)h(activ)o(e.)
-1762 1907 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p
-293 1907 V 21 w(get)p 391 1907 V 21 w(k)n(eymap)i Fg(\()p
-Ft(void)p Fg(\))195 1962 y Fu(Returns)15 b(the)g(curren)o(tly)h(activ)o
-(e)f(k)o(eymap.)1762 2103 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 2103 V 21 w(set)p 333 2103 V 21 w(k)n(eymap)i
-Fg(\()p Ft(Keymap)14 b(keymap)p Fg(\))195 2158 y Fu(Mak)o(es)g
-Fk(k)o(eymap)j Fu(the)e(curren)o(tly)h(activ)o(e)f(k)o(eymap.)1762
-2298 y(F)l(unction)-1861 b Fi(Keymap)20 b Fh(rl)p 293
-2298 V 21 w(get)p 391 2298 V 21 w(k)n(eymap)p 605 2298
-V 20 w(b)n(y)p 685 2298 V 21 w(name)i Fg(\()p Ft(const)14
-b(char)g(*name)p Fg(\))195 2353 y Fu(Return)i(the)h(k)o(eymap)f(matc)o
-(hing)h Fk(name)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o
-(ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 2408 y(keymap)e
-Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)i(Init)g(File],)g
-(page)f(4\).)1762 2549 y(F)l(unction)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 2549 V 21 w(get)p 384 2549 V 21 w(k)n(eymap)p
-598 2549 V 20 w(name)i Fg(\()p Ft(Keymap)14 b(keymap)p
-Fg(\))195 2604 y Fu(Return)i(the)h(name)g(matc)o(hing)f
-Fk(k)o(eymap)p Fu(.)24 b Fk(name)19 b Fu(is)e(one)g(whic)o(h)g(w)o
-(ould)g(b)q(e)h(supplied)h(in)e(a)f Ft(set)195 2659 y(keymap)e
-Fu(inputrc)j(line)f(\(see)g(Section)g(1.3)e([Readline)i(Init)g(File],)g
-(page)f(4\).)p eop
-%%Page: 30 32
-30 31 bop 75 -58 a Fu(30)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.3)30 b(Binding)20 b(Keys)137 244 y Fu(Key)13
-b(sequences)g(are)e(asso)q(ciate)h(with)h(functions)f(through)g(the)g
-(k)o(eymap.)19 b(Readline)13 b(has)f(sev)o(eral)g(in-)75
-299 y(ternal)j(k)o(eymaps:)k Ft(emacs_standard_keymap)p
-Fu(,)11 b Ft(emacs_meta_keymap)p Fu(,)h Ft(emacs_ctlx_keymap)p
-Fu(,)g Ft(vi_)75 354 y(movement_keymap)p Fu(,)20 b(and)i
-Ft(vi_insertion_keymap)p Fu(.)35 b Ft(emacs_standard_keymap)18
-b Fu(is)k(the)f(default,)75 408 y(and)15 b(the)h(examples)g(in)g(this)f
-(man)o(ual)h(assume)f(that.)137 474 y(Since)h Ft(readline\(\))c
-Fu(installs)j(a)f(set)f(of)h(default)g(k)o(ey)g(bindings)h(the)f
-(\014rst)g(time)g(it)g(is)g(called,)i(there)d(is)75 529
-y(alw)o(a)o(ys)j(the)g(danger)g(that)g(a)g(custom)g(binding)i
-(installed)g(b)q(efore)f(the)f(\014rst)g(call)i(to)d
-Ft(readline\(\))g Fu(will)75 584 y(b)q(e)f(o)o(v)o(erridden.)19
-b(An)13 b(alternate)g(mec)o(hanism)h(is)f(to)f(install)i(custom)f(k)o
-(ey)g(bindings)h(in)g(an)f(initialization)75 638 y(function)19
-b(assigned)h(to)d(the)i Ft(rl_startup_hook)e Fu(v)m(ariable)j(\(see)e
-(Section)h(2.3)f([Readline)i(V)l(ariables],)75 693 y(page)15
-b(24\).)137 759 y(These)h(functions)g(manage)e(k)o(ey)i(bindings.)1762
-868 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 868
-18 3 v 21 w(bind)p 347 868 V 21 w(k)n(ey)k Fg(\()p Ft(int)14
-b(key,)h(rl_command_func_t)d(*function)p Fg(\))195 922
-y Fu(Binds)18 b Fk(k)o(ey)i Fu(to)c Fk(function)h Fu(in)h(the)e(curren)
-o(tly)h(activ)o(e)g(k)o(eymap.)23 b(Returns)16 b(non-zero)h(in)g(the)g
-(case)195 977 y(of)e(an)g(in)o(v)m(alid)i Fk(k)o(ey)p
-Fu(.)1762 1086 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1086 V 21 w(bind)p 347 1086 V 21 w(k)n(ey)p 452 1086
-V 21 w(in)p 520 1086 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h
-(rl_command_func_t)e(*function,)283 1141 y(Keymap)h(map)p
-Fg(\))195 1196 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c Fk(function)h
-Fu(in)g Fk(map)p Fu(.)k(Returns)14 b(non-zero)i(in)g(the)f(case)g(of)g
-(an)g(in)o(v)m(alid)j Fk(k)o(ey)p Fu(.)1762 1304 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1304 V 21 w(un)n(bind)p 409
-1304 V 21 w(k)n(ey)k Fg(\()p Ft(int)14 b(key)p Fg(\))195
-1359 y Fu(Bind)19 b Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i(function)f(in)g
-(the)f(curren)o(tly)g(activ)o(e)h(k)o(eymap.)28 b(Returns)18
-b(non-zero)g(in)195 1414 y(case)d(of)g(error.)1762 1523
-y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1523 V
-21 w(un)n(bind)p 409 1523 V 21 w(k)n(ey)p 514 1523 V
-21 w(in)p 582 1523 V 22 w(map)h Fg(\()p Ft(int)14 b(key,)h(Keymap)f
-(map)p Fg(\))195 1577 y Fu(Bind)i Fk(k)o(ey)j Fu(to)c(the)g(n)o(ull)i
-(function)f(in)g Fk(map)p Fu(.)k(Returns)14 b(non-zero)i(in)g(case)f
-(of)g(error.)1762 1686 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 1686 V 21 w(un)n(bind)p 409 1686 V 21 w(function)p
-635 1686 V 21 w(in)p 703 1686 V 21 w(map)h Fg(\()p Ft
-(rl_command_func_t)13 b(*function,)283 1741 y(Keymap)h(map)p
-Fg(\))195 1796 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f(execute)i
-Fk(function)g Fu(in)g Fk(map)p Fu(.)1762 1905 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1905 V 21 w(un)n(bind)p 409
-1905 V 21 w(command)p 674 1905 V 17 w(in)p 738 1905 V
-22 w(map)h Fg(\()p Ft(const)14 b(char)h(*command,)f(Keymap)283
-1959 y(map)p Fg(\))195 2014 y Fu(Un)o(bind)j(all)f(k)o(eys)f(that)f
-(are)h(b)q(ound)h(to)f Fk(command)i Fu(in)f Fk(map)p
-Fu(.)1762 2123 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2123 V 21 w(set)p 307 2123 V 20 w(k)n(ey)k Fg(\()p
-Ft(const)14 b(char)h(*keyseq,)f(rl_command_func_t)f(*function,)283
-2178 y(Keymap)h(map)p Fg(\))195 2232 y Fu(Bind)g(the)e(k)o(ey)h
-(sequence)h(represen)o(ted)f(b)o(y)f(the)h(string)f Fk(k)o(eyseq)i
-Fu(to)e(the)g(function)i Fk(function)p Fu(.)19 b(This)195
-2287 y(mak)o(es)13 b(new)g(k)o(eymaps)g(as)f(necessary)l(.)20
-b(The)13 b(initial)j(k)o(eymap)c(in)i(whic)o(h)g(to)f(do)g(bindings)i
-(is)f Fk(map)p Fu(.)1762 2396 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 2396 V 21 w(generic)p 413 2396 V 21 w(bind)j
-Fg(\()p Ft(int)15 b(type,)f(const)h(char)f(*keyseq,)g(char)h(*data,)283
-2451 y(Keymap)f(map)p Fg(\))195 2506 y Fu(Bind)h(the)e(k)o(ey)h
-(sequence)h(represen)o(ted)e(b)o(y)h(the)g(string)f Fk(k)o(eyseq)i
-Fu(to)d(the)i(arbitrary)f(p)q(oin)o(ter)h Fk(data)p Fu(.)195
-2560 y Fk(t)o(yp)q(e)j Fu(sa)o(ys)c(what)h(kind)h(of)f(data)g(is)g(p)q
-(oin)o(ted)i(to)d(b)o(y)h Fk(data)p Fu(;)g(this)h(can)f(b)q(e)h(a)f
-(function)h(\()p Ft(ISFUNC)p Fu(\),)d(a)195 2615 y(macro)i(\()p
-Ft(ISMACR)p Fu(\),)f(or)h(a)h(k)o(eymap)f(\()p Ft(ISKMAP)p
-Fu(\).)k(This)e(mak)o(es)e(new)h(k)o(eymaps)f(as)h(necessary)l(.)20
-b(The)195 2670 y(initial)d(k)o(eymap)e(in)h(whic)o(h)g(to)f(do)g
-(bindings)i(is)f Fk(map)p Fu(.)p eop
-%%Page: 31 33
-31 32 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(31)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(parse)p 369 149 V 19 w(and)p
-480 149 V 21 w(bind)j Fg(\()p Ft(char)14 b(*line)p Fg(\))195
-204 y Fu(P)o(arse)g Fk(line)19 b Fu(as)14 b(if)h(it)g(had)g(b)q(een)h
-(read)f(from)f(the)g Ft(inputrc)g Fu(\014le)i(and)f(p)q(erform)f(an)o
-(y)h(k)o(ey)f(bindings)195 259 y(and)h(v)m(ariable)i(assignmen)o(ts)e
-(found)h(\(see)f(Section)h(1.3)e([Readline)i(Init)g(File],)g(page)f
-(4\).)1762 359 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 359 V 21 w(read)p 346 359 V 20 w(init)p 450 359 V
-22 w(\014le)k Fg(\()p Ft(const)14 b(char)h(*filename)p
-Fg(\))195 414 y Fu(Read)g(k)o(eybindings)j(and)e(v)m(ariable)h
-(assignmen)o(ts)f(from)f Fk(\014lename)k Fu(\(see)d(Section)g(1.3)f
-([Readline)195 469 y(Init)h(File],)g(page)f(4\).)75 571
-y Fj(2.4.4)30 b(Asso)r(ciating)20 b(F)-5 b(unction)20
-b(Names)h(and)f(Bindings)137 664 y Fu(These)11 b(functions)h(allo)o(w)e
-(y)o(ou)h(to)f(\014nd)h(out)f(what)g(k)o(eys)h(in)o(v)o(ok)o(e)f(named)
-h(functions)h(and)e(the)h(functions)75 718 y(in)o(v)o(ok)o(ed)j(b)o(y)g
-(a)f(particular)h(k)o(ey)g(sequence.)21 b(Y)l(ou)14 b(ma)o(y)f(also)g
-(asso)q(ciate)h(a)g(new)g(function)g(name)g(with)g(an)75
-773 y(arbitrary)h(function.)1762 873 y(F)l(unction)-1861
-b Fi(rl_command_func_t)22 b(*)d Fh(rl)p 626 873 V 21
-w(named)p 814 873 V 19 w(function)k Fg(\()p Ft(const)14
-b(char)h(*name)p Fg(\))195 928 y Fu(Return)g(the)g(function)h(with)g
-(name)f Fk(name)p Fu(.)1762 1028 y(F)l(unction)-1861
-b Fi(rl_command_func_t)22 b(*)d Fh(rl)p 626 1028 V 21
-w(function)p 852 1028 V 21 w(of)p 920 1028 V 20 w(k)n(eyseq)24
-b Fg(\()p Ft(const)14 b(char)283 1083 y(*keyseq,)g(Keymap)g(map,)h(int)
-f(*type)p Fg(\))195 1138 y Fu(Return)i(the)g(function)h(in)o(v)o(ok)o
-(ed)g(b)o(y)f Fk(k)o(eyseq)h Fu(in)g(k)o(eymap)f Fk(map)p
-Fu(.)23 b(If)17 b Fk(map)g Fu(is)g Ft(NULL)p Fu(,)f(the)g(curren)o(t)
-195 1193 y(k)o(eymap)i(is)h(used.)31 b(If)18 b Fk(t)o(yp)q(e)j
-Fu(is)e(not)g Ft(NULL)p Fu(,)f(the)g(t)o(yp)q(e)h(of)f(the)h(ob)s(ject)
-f(is)h(returned)g(in)g(the)f Ft(int)195 1247 y Fu(v)m(ariable)f(it)e(p)
-q(oin)o(ts)h(to)e(\(one)h(of)g Ft(ISFUNC)p Fu(,)f Ft(ISKMAP)p
-Fu(,)g(or)h Ft(ISMACR)p Fu(\).)1762 1347 y(F)l(unction)-1861
-b Fi(char)20 b(**)f Fh(rl)p 312 1347 V 21 w(in)n(v)n(oking)p
-541 1347 V 23 w(k)n(eyseqs)k Fg(\()p Ft(rl_command_func_t)13
-b(*function)p Fg(\))195 1402 y Fu(Return)i(an)h(arra)o(y)e(of)h
-(strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in)
-o(v)o(ok)o(e)h Fk(function)g Fu(in)195 1457 y(the)f(curren)o(t)g(k)o
-(eymap.)1762 1557 y(F)l(unction)-1861 b Fi(char)20 b(**)f
-Fh(rl)p 312 1557 V 21 w(in)n(v)n(oking)p 541 1557 V 23
-w(k)n(eyseqs)p 750 1557 V 21 w(in)p 818 1557 V 22 w(map)i
-Fg(\()p Ft(rl_command_func_t)283 1612 y(*function,)13
-b(Keymap)i(map)p Fg(\))195 1667 y Fu(Return)g(an)h(arra)o(y)e(of)h
-(strings)h(represen)o(ting)g(the)g(k)o(ey)f(sequences)i(used)f(to)f(in)
-o(v)o(ok)o(e)h Fk(function)g Fu(in)195 1722 y(the)f(k)o(eymap)g
-Fk(map)p Fu(.)1762 1822 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1822 V 21 w(function)p 467 1822 V 21 w(dump)r(er)g
-Fg(\()p Ft(int)15 b(readable)p Fg(\))195 1876 y Fu(Prin)o(t)g(the)f
-(readline)j(function)e(names)g(and)f(the)h(k)o(ey)g(sequences)g(curren)
-o(tly)g(b)q(ound)h(to)e(them)h(to)195 1931 y Ft(rl_outstream)p
-Fu(.)j(If)c Fk(readable)j Fu(is)d(non-zero,)g(the)g(list)g(is)h
-(formatted)d(in)j(suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)h(can)195
-1986 y(b)q(e)i(made)f(part)g(of)f(an)i Ft(inputrc)e Fu(\014le)i(and)f
-(re-read.)1762 2086 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 2086 V 21 w(list)p 337 2086 V 22 w(funmap)p
-550 2086 V 18 w(names)h Fg(\()p Ft(void)p Fg(\))195 2141
-y Fu(Prin)o(t)15 b(the)g(names)h(of)e(all)j(bindable)g(Readline)f
-(functions)g(to)f Ft(rl_outstream)p Fu(.)1762 2241 y(F)l(unction)-1861
-b Fi(const)20 b(char)g(**)f Fh(rl)p 462 2241 V 21 w(funmap)p
-674 2241 V 18 w(names)i Fg(\()p Ft(void)p Fg(\))195 2296
-y Fu(Return)13 b(a)f(NULL)i(terminated)g(arra)o(y)d(of)i(kno)o(wn)g
-(function)g(names.)20 b(The)13 b(arra)o(y)f(is)h(sorted.)19
-b(The)195 2351 y(arra)o(y)11 b(itself)j(is)f(allo)q(cated,)h(but)f(not)
-f(the)h(strings)f(inside.)21 b(Y)l(ou)13 b(should)h Ft(free\(\))d
-Fu(the)i(arra)o(y)e(when)195 2405 y(y)o(ou)k(are)g(done,)g(but)g(not)g
-(the)g(p)q(oin)o(ters.)1762 2506 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(add)p 328 2506
-V 20 w(funmap)p 539 2506 V 18 w(en)n(try)j Fg(\()p Ft(const)14
-b(char)h(*name,)f(rl_command_func_t)283 2560 y(*function)p
-Fg(\))195 2615 y Fu(Add)j Fk(name)i Fu(to)d(the)g(list)h(of)f(bindable)
-j(Readline)f(command)e(names,)g(and)h(mak)o(e)f Fk(function)h
-Fu(the)195 2670 y(function)f(to)f(b)q(e)g(called)i(when)f
-Fk(name)i Fu(is)d(in)o(v)o(ok)o(ed.)p eop
-%%Page: 32 34
-32 33 bop 75 -58 a Fu(32)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.5)30 b(Allo)n(wing)21 b(Undoing)137 251
-y Fu(Supp)q(orting)14 b(the)g(undo)f(command)g(is)h(a)f(painless)h
-(thing,)g(and)f(mak)o(es)g(y)o(our)f(functions)i(m)o(uc)o(h)f(more)75
-306 y(useful.)21 b(It)15 b(is)h(certainly)g(easy)f(to)g(try)f
-(something)i(if)f(y)o(ou)g(kno)o(w)g(y)o(ou)g(can)g(undo)h(it.)137
-378 y(If)21 b(y)o(our)f(function)h(simply)h(inserts)f(text)e(once,)j
-(or)e(deletes)h(text)f(once,)i(and)f(uses)f Ft(rl_insert_)75
-433 y(text\(\))13 b Fu(or)h Ft(rl_delete_text\(\))d Fu(to)j(do)f(it,)h
-(then)h(undoing)g(is)f(already)g(done)h(for)e(y)o(ou)h(automatically)l
-(.)137 506 y(If)d(y)o(ou)f(do)g(m)o(ultiple)i(insertions)f(or)f(m)o
-(ultiple)i(deletions,)g(or)e(an)o(y)g(com)o(bination)h(of)f(these)g(op)
-q(erations,)75 560 y(y)o(ou)19 b(should)h(group)e(them)h(together)g(in)
-o(to)g(one)g(op)q(eration.)31 b(This)20 b(is)f(done)h(with)f
-Ft(rl_begin_undo_)75 615 y(group\(\))14 b Fu(and)i Ft
-(rl_end_undo_group\(\))p Fu(.)137 688 y(The)g(t)o(yp)q(es)f(of)g(ev)o
-(en)o(ts)g(that)f(can)h(b)q(e)h(undone)g(are:)195 757
-y Ft(enum)23 b(undo_code)g({)h(UNDO_DELETE,)e(UNDO_INSERT,)g
-(UNDO_BEGIN,)g(UNDO_END)h(};)137 830 y Fu(Notice)16 b(that)e
-Ft(UNDO_DELETE)g Fu(means)h(to)g(insert)g(some)g(text,)f(and)i
-Ft(UNDO_INSERT)d Fu(means)i(to)g(delete)75 885 y(some)e(text.)19
-b(That)14 b(is,)g(the)g(undo)g(co)q(de)g(tells)h(what)e(to)h(undo,)g
-(not)f(ho)o(w)g(to)g(undo)i(it.)k Ft(UNDO_BEGIN)13 b
-Fu(and)75 939 y Ft(UNDO_END)h Fu(are)h(tags)f(added)i(b)o(y)f
-Ft(rl_begin_undo_group\(\))d Fu(and)k Ft(rl_end_undo_group\(\))p
-Fu(.)1762 1072 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1072 18 3 v 21 w(b)r(egin)p 372 1072 V 20 w(undo)p
-517 1072 V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 1127
-y Fu(Begins)16 b(sa)o(ving)g(undo)g(information)f(in)i(a)e(group)g
-(construct.)20 b(The)c(undo)g(information)g(usually)195
-1182 y(comes)21 b(from)f(calls)i(to)e Ft(rl_insert_text\(\))e
-Fu(and)j Ft(rl_delete_text\(\))p Fu(,)f(but)h(could)g(b)q(e)h(the)195
-1237 y(result)16 b(of)e(calls)j(to)d Ft(rl_add_undo\(\))p
-Fu(.)1762 1370 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1370 V 21 w(end)p 326 1370 V 20 w(undo)p 471 1370
-V 20 w(group)h Fg(\()p Ft(void)p Fg(\))195 1424 y Fu(Closes)15
-b(the)f(curren)o(t)h(undo)g(group)f(started)g(with)g
-Ft(rl_begin_undo_group)f(\(\))p Fu(.)19 b(There)c(should)195
-1479 y(b)q(e)h(one)f(call)i(to)d Ft(rl_end_undo_group\(\))f
-Fu(for)h(eac)o(h)h(call)i(to)d Ft(rl_begin_undo_group\(\))p
-Fu(.)1762 1612 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p
-241 1612 V 21 w(add)p 354 1612 V 20 w(undo)i Fg(\()p
-Ft(enum)14 b(undo_code)g(what,)g(int)h(start,)g(int)f(end,)h(char)283
-1667 y(*text)p Fg(\))195 1722 y Fu(Remem)o(b)q(er)i(ho)o(w)f(to)h(undo)
-g(an)g(ev)o(en)o(t)g(\(according)g(to)g Fk(what)q Fu(\).)24
-b(The)17 b(a\013ected)g(text)f(runs)i(from)195 1776 y
-Fk(start)d Fu(to)g Fk(end)p Fu(,)g(and)g(encompasses)h
-Fk(text)p Fu(.)1762 1909 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1909 V 21 w(free)p 356 1909 V 20 w(undo)p
-501 1909 V 20 w(list)k Fg(\()p Ft(void)p Fg(\))195 1964
-y Fu(F)l(ree)15 b(the)h(existing)g(undo)f(list.)1762
-2097 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2097
-V 21 w(do)p 297 2097 V 20 w(undo)i Fg(\()p Ft(void)p
-Fg(\))195 2152 y Fu(Undo)12 b(the)f(\014rst)g(thing)h(on)g(the)f(undo)h
-(list.)19 b(Returns)11 b Ft(0)h Fu(if)g(there)f(w)o(as)g(nothing)h(to)e
-(undo,)j(non-zero)195 2206 y(if)j(something)f(w)o(as)f(undone.)137
-2309 y(Finally)l(,)j(if)f(y)o(ou)f(neither)i(insert)f(nor)f(delete)i
-(text,)e(but)g(directly)i(mo)q(dify)f(the)g(existing)g(text)g(\(e.g.,)
-75 2364 y(c)o(hange)j(its)h(case\),)g(call)g Ft(rl_modifying\(\))e
-Fu(once,)i(just)f(b)q(efore)h(y)o(ou)f(mo)q(dify)h(the)f(text.)32
-b(Y)l(ou)20 b(m)o(ust)75 2419 y(supply)c(the)g(indices)h(of)e(the)g
-(text)g(range)g(that)f(y)o(ou)h(are)g(going)g(to)g(mo)q(dify)l(.)1762
-2552 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2552
-V 21 w(mo)r(difying)h Fg(\()p Ft(int)15 b(start,)f(int)h(end)p
-Fg(\))195 2606 y Fu(T)l(ell)22 b(Readline)f(to)e(sa)o(v)o(e)h(the)g
-(text)g(b)q(et)o(w)o(een)g Fk(start)g Fu(and)g Fk(end)j
-Fu(as)c(a)h(single)h(undo)g(unit.)35 b(It)20 b(is)195
-2661 y(assumed)15 b(that)g(y)o(ou)g(will)i(subsequen)o(tly)f(mo)q(dify)
-g(that)e(text.)p eop
-%%Page: 33 35
-33 34 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(33)75 149 y Fj(2.4.6)30 b(Redispla)n(y)1762
-302 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241
-302 18 3 v 21 w(redispla)n(y)k Fg(\()p Ft(void)p Fg(\))195
-356 y Fu(Change)19 b(what's)f(displa)o(y)o(ed)i(on)f(the)g(screen)g(to)
-f(re\015ect)i(the)f(curren)o(t)f(con)o(ten)o(ts)h(of)f
-Ft(rl_line_)195 411 y(buffer)p Fu(.)1762 534 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 534 V 21 w(forced)p 390 534
-V 20 w(up)r(date)p 584 534 V 20 w(displa)n(y)k Fg(\()p
-Ft(void)p Fg(\))195 589 y Fu(F)l(orce)c(the)g(line)h(to)e(b)q(e)i(up)q
-(dated)f(and)g(redispla)o(y)o(ed,)i(whether)e(or)g(not)f(Readline)i
-(thinks)g(the)195 644 y(screen)16 b(displa)o(y)g(is)g(correct.)1762
-767 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 767
-V 21 w(on)p 297 767 V 20 w(new)p 416 767 V 21 w(line)k
-Fg(\()p Ft(void)p Fg(\))195 822 y Fu(T)l(ell)16 b(the)f(up)q(date)h
-(functions)g(that)e(w)o(e)g(ha)o(v)o(e)h(mo)o(v)o(ed)f(on)o(to)g(a)h
-(new)g(\(empt)o(y\))f(line,)i(usually)h(after)195 877
-y(ouputting)f(a)e(newline.)1762 1000 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1000 V 21 w(on)p 297 1000 V
-20 w(new)p 416 1000 V 21 w(line)p 525 1000 V 22 w(with)p
-657 1000 V 22 w(prompt)h Fg(\()p Ft(void)p Fg(\))195
-1055 y Fu(T)l(ell)14 b(the)e(up)q(date)h(functions)g(that)f(w)o(e)g(ha)
-o(v)o(e)g(mo)o(v)o(ed)f(on)o(to)h(a)g(new)g(line,)i(with)f
-Fk(rl)p 1556 1055 14 2 v 17 w(prompt)g Fu(already)195
-1109 y(displa)o(y)o(ed.)21 b(This)15 b(could)g(b)q(e)g(used)g(b)o(y)f
-(applications)i(that)e(w)o(an)o(t)f(to)h(output)g(the)g(prompt)g
-(string)195 1164 y(themselv)o(es,)g(but)g(still)h(need)g(Readline)g(to)
-e(kno)o(w)g(the)h(prompt)f(string)h(length)g(for)f(redispla)o(y)l(.)21
-b(It)195 1219 y(should)16 b(b)q(e)g(used)g(after)e(setting)i
-Fk(rl)p 795 1219 V 16 w(already)p 956 1219 V 17 w(prompted)p
-Fu(.)1762 1342 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1342 18 3 v 21 w(reset)p 357 1342 V 20 w(line)p 465
-1342 V 23 w(state)j Fg(\()p Ft(void)p Fg(\))195 1397
-y Fu(Reset)17 b(the)g(displa)o(y)i(state)d(to)h(a)g(clean)h(state)f
-(and)g(redispla)o(y)i(the)e(curren)o(t)g(line)i(starting)e(on)g(a)195
-1452 y(new)e(line.)1762 1575 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 1575 V 21 w(crlf)j Fg(\()p Ft(void)p Fg(\))195
-1630 y Fu(Mo)o(v)o(e)14 b(the)h(cursor)g(to)g(the)g(start)f(of)h(the)g
-(next)g(screen)h(line.)1762 1753 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1753 V 21 w(sho)n(w)p 359 1753
-V 20 w(c)n(har)j Fg(\()p Ft(int)14 b(c)p Fg(\))195 1807
-y Fu(Displa)o(y)j(c)o(haracter)e Fk(c)20 b Fu(on)c Ft(rl_outstream)p
-Fu(.)21 b(If)c(Readline)g(has)f(not)g(b)q(een)i(set)e(to)f(displa)o(y)j
-(meta)195 1862 y(c)o(haracters)12 b(directly)l(,)j(this)e(will)i(con)o
-(v)o(ert)d(meta)h(c)o(haracters)f(to)g(a)h(meta-pre\014xed)g(k)o(ey)g
-(sequence.)195 1917 y(This)j(is)f(in)o(tended)i(for)e(use)g(b)o(y)g
-(applications)i(whic)o(h)f(wish)g(to)f(do)g(their)g(o)o(wn)g(redispla)o
-(y)l(.)1762 2040 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2040 V 21 w(message)g Fg(\()p Ft(const)14 b(char)h(*,)g(...)p
-Fg(\))195 2095 y Fu(The)c(argumen)o(ts)e(are)h(a)g(format)f(string)h
-(as)g(w)o(ould)h(b)q(e)g(supplied)i(to)c Ft(printf)p
-Fu(,)h(p)q(ossibly)i(con)o(taining)195 2150 y(con)o(v)o(ersion)22
-b(sp)q(eci\014cations)i(suc)o(h)f(as)e(`)p Ft(\045d)p
-Fu(',)i(and)f(an)o(y)g(additional)h(argumen)o(ts)e(necessary)i(to)195
-2205 y(satisfy)d(the)h(con)o(v)o(ersion)g(sp)q(eci\014cations.)38
-b(The)21 b(resulting)h(string)e(is)i(displa)o(y)o(ed)g(in)f(the)g
-Fk(ec)o(ho)195 2259 y(area)p Fu(.)e(The)d(ec)o(ho)f(area)g(is)g(also)g
-(used)h(to)f(displa)o(y)h(n)o(umeric)g(argumen)o(ts)f(and)g(searc)o(h)g
-(strings.)1762 2382 y(F)l(unction)-1861 b Fi(int)20 b
-Fh(rl)p 215 2382 V 21 w(clear)p 354 2382 V 21 w(message)h
-Fg(\()p Ft(void)p Fg(\))195 2437 y Fu(Clear)15 b(the)h(message)e(in)i
-(the)g(ec)o(ho)f(area.)1762 2560 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2560 V 21 w(sa)n(v)n(e)p 365
-2560 V 21 w(prompt)h Fg(\()p Ft(void)p Fg(\))195 2615
-y Fu(Sa)o(v)o(e)g(the)h(lo)q(cal)g(Readline)h(prompt)e(displa)o(y)i
-(state)e(in)h(preparation)f(for)g(displa)o(ying)j(a)d(new)195
-2670 y(message)15 b(in)h(the)f(message)g(area)f(with)i
-Ft(rl_message\(\))p Fu(.)p eop
-%%Page: 34 36
-34 35 bop 75 -58 a Fu(34)1299 b(GNU)15 b(Readline)h(Library)1762
-149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149
-18 3 v 21 w(restore)p 436 149 V 20 w(prompt)g Fg(\()p
-Ft(void)p Fg(\))195 204 y Fu(Restore)g(the)i(lo)q(cal)g(Readline)h
-(prompt)e(displa)o(y)h(state)f(sa)o(v)o(ed)g(b)o(y)g(the)g(most)g
-(recen)o(t)g(call)i(to)195 259 y Ft(rl_save_prompt)p
-Fu(.)1762 369 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 369 V 21 w(expand)p 416 369 V 20 w(prompt)h Fg(\()p
-Ft(char)14 b(*prompt)p Fg(\))195 423 y Fu(Expand)22 b(an)o(y)f(sp)q
-(ecial)i(c)o(haracter)e(sequences)h(in)g Fk(prompt)g
-Fu(and)g(set)f(up)h(the)f(lo)q(cal)i(Readline)195 478
-y(prompt)17 b(redispla)o(y)i(v)m(ariables.)30 b(This)18
-b(function)h(is)f(called)i(b)o(y)e Ft(readline\(\))p
-Fu(.)26 b(It)18 b(ma)o(y)f(also)h(b)q(e)195 533 y(called)12
-b(to)e(expand)h(the)g(primary)g(prompt)f(if)h(the)f Ft
-(rl_on_new_line_with_prompt\(\))d Fu(function)195 588
-y(or)12 b Ft(rl_already_prompted)e Fu(v)m(ariable)k(is)g(used.)19
-b(It)13 b(returns)g(the)f(n)o(um)o(b)q(er)i(of)e(visible)j(c)o
-(haracters)195 643 y(on)g(the)g(last)h(line)g(of)f(the)g(\(p)q(ossibly)
-i(m)o(ulti-line\))g(prompt.)1762 752 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 752 V 21 w(set)p 307 752 V
-20 w(prompt)h Fg(\()p Ft(const)14 b(char)h(*prompt)p
-Fg(\))195 807 y Fu(Mak)o(e)e(Readline)i(use)e Fk(prompt)h
-Fu(for)f(subsequen)o(t)h(redispla)o(y)l(.)21 b(This)14
-b(calls)g Ft(rl_expand_prompt\(\))195 862 y Fu(to)h(expand)g(the)h
-(prompt)e(and)i(sets)f Ft(rl_prompt)f Fu(to)g(the)h(result.)75
-970 y Fj(2.4.7)30 b(Mo)r(difying)20 b(T)-5 b(ext)1762
-1108 y Fu(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1108 V 21 w(insert)p 378 1108 V 21 w(text)k Fg(\()p Ft(const)14
-b(char)g(*text)p Fg(\))195 1163 y Fu(Insert)i Fk(text)g
-Fu(in)o(to)g(the)g(line)h(at)f(the)g(curren)o(t)f(cursor)h(p)q
-(osition.)22 b(Returns)16 b(the)g(n)o(um)o(b)q(er)g(of)f(c)o(har-)195
-1218 y(acters)g(inserted.)1762 1328 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1328 V 21 w(delete)p 383 1328
-V 22 w(text)k Fg(\()p Ft(int)14 b(start,)h(int)f(end)p
-Fg(\))195 1382 y Fu(Delete)19 b(the)g(text)g(b)q(et)o(w)o(een)g
-Fk(start)g Fu(and)g Fk(end)i Fu(in)f(the)f(curren)o(t)f(line.)33
-b(Returns)18 b(the)h(n)o(um)o(b)q(er)g(of)195 1437 y(c)o(haracters)14
-b(deleted.)1762 1547 y(F)l(unction)-1861 b Fi(char)20
-b(*)f Fh(rl)p 286 1547 V 21 w(cop)n(y)p 421 1547 V 21
-w(text)24 b Fg(\()p Ft(int)14 b(start,)h(int)g(end)p
-Fg(\))195 1602 y Fu(Return)g(a)g(cop)o(y)g(of)g(the)g(text)f(b)q(et)o
-(w)o(een)i Fk(start)f Fu(and)g Fk(end)j Fu(in)e(the)f(curren)o(t)g
-(line.)1762 1711 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 1711 V 21 w(kill)p 311 1711 V 23 w(text)k Fg(\()p
-Ft(int)14 b(start,)h(int)g(end)p Fg(\))195 1766 y Fu(Cop)o(y)i(the)g
-(text)f(b)q(et)o(w)o(een)i Fk(start)f Fu(and)g Fk(end)i
-Fu(in)f(the)f(curren)o(t)g(line)i(to)e(the)g(kill)i(ring,)e(app)q
-(ending)195 1821 y(or)f(prep)q(ending)k(to)c(the)h(last)g(kill)i(if)e
-(the)g(last)g(command)g(w)o(as)f(a)h(kill)i(command.)25
-b(The)17 b(text)f(is)195 1876 y(deleted.)26 b(If)17 b
-Fk(start)g Fu(is)g(less)g(than)g Fk(end)p Fu(,)g(the)g(text)g(is)g(app)
-q(ended,)h(otherwise)f(prep)q(ended.)27 b(If)17 b(the)195
-1930 y(last)e(command)g(w)o(as)g(not)f(a)h(kill,)i(a)e(new)g(kill)i
-(ring)f(slot)f(is)h(used.)1762 2040 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2040 V 21 w(push)p 355 2040
-V 19 w(macro)p 529 2040 V 19 w(input)k Fg(\()p Ft(char)14
-b(*macro)p Fg(\))195 2095 y Fu(Cause)g Fk(macro)i Fu(to)d(b)q(e)i
-(inserted)g(in)o(to)f(the)g(line,)i(as)e(if)g(it)h(had)f(b)q(een)h(in)o
-(v)o(ok)o(ed)g(b)o(y)f(a)g(k)o(ey)g(b)q(ound)h(to)195
-2150 y(a)g(macro.)k(Not)c(esp)q(ecially)i(useful;)f(use)g
-Ft(rl_insert_text\(\))d Fu(instead.)75 2257 y Fj(2.4.8)30
-b(Character)21 b(Input)1762 2396 y Fu(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2396 V 21 w(read)p 346 2396
-V 20 w(k)n(ey)k Fg(\()p Ft(void)p Fg(\))195 2451 y Fu(Return)14
-b(the)h(next)g(c)o(haracter)f(a)o(v)m(ailable)i(from)e(Readline's)i
-(curren)o(t)f(input)g(stream.)k(This)d(han-)195 2506
-y(dles)f(input)g(inserted)f(in)o(to)g(the)g(input)h(stream)e(via)h
-Fk(rl)p 1117 2506 14 2 v 17 w(p)q(ending)p 1290 2506
-V 18 w(input)i Fu(\(see)e(Section)h(2.3)e([Read-)195
-2560 y(line)21 b(V)l(ariables],)g(page)f(24\))f(and)h
-Ft(rl_stuff_char\(\))p Fu(,)e(macros,)h(and)h(c)o(haracters)f(read)h
-(from)195 2615 y(the)d(k)o(eyb)q(oard.)25 b(While)19
-b(w)o(aiting)e(for)f(input,)j(this)e(function)h(will)h(call)f(an)o(y)e
-(function)i(assigned)195 2670 y(to)d(the)g Ft(rl_event_hook)e
-Fu(v)m(ariable.)p eop
-%%Page: 35 37
-35 36 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(35)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(getc)j Fg(\()p Ft(FILE)14
-b(*stream)p Fg(\))195 204 y Fu(Return)c(the)h(next)g(c)o(haracter)f(a)o
-(v)m(ailable)i(from)e Fk(stream)p Fu(,)g(whic)o(h)i(is)f(assumed)f(to)g
-(b)q(e)i(the)e(k)o(eyb)q(oard.)1762 342 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 342 V 21 w(stu\013)p 346 342
-V 20 w(c)n(har)j Fg(\()p Ft(int)15 b(c)p Fg(\))195 397
-y Fu(Insert)i Fk(c)i Fu(in)o(to)d(the)h(Readline)h(input)f(stream.)23
-b(It)16 b(will)i(b)q(e)f Ft(")p Fu(read)p Ft(")g Fu(b)q(efore)f
-(Readline)i(attempts)195 452 y(to)13 b(read)g(c)o(haracters)g(from)f
-(the)i(terminal)g(with)g Ft(rl_read_key\(\))p Fu(.)j(Up)d(to)f(512)f(c)
-o(haracters)h(ma)o(y)195 507 y(b)q(e)j(pushed)g(bac)o(k.)k
-Ft(rl_stuff_char)14 b Fu(returns)h(1)g(if)h(the)f(c)o(haracter)g(w)o
-(as)f(successfully)j(inserted;)195 562 y(0)e(otherwise.)1762
-700 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 700
-V 21 w(execute)p 423 700 V 22 w(next)j Fg(\()p Ft(int)15
-b(c)p Fg(\))195 754 y Fu(Mak)o(e)i Fk(c)k Fu(b)q(e)d(the)g(next)g
-(command)g(to)f(b)q(e)i(executed)f(when)h Ft(rl_read_key\(\))d
-Fu(is)i(called.)29 b(This)195 809 y(sets)15 b Fk(rl)p
-317 809 14 2 v 17 w(p)q(ending)p 490 809 V 18 w(input)p
-Fu(.)1762 947 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 947 18 3 v 21 w(clear)p 354 947 V 21 w(p)r(ending)p
-575 947 V 21 w(input)j Fg(\()p Ft(void)p Fg(\))195 1002
-y Fu(Unset)f Fk(rl)p 365 1002 14 2 v 16 w(p)q(ending)p
-537 1002 V 19 w(input)p Fu(,)h(e\013ectiv)o(ely)g(negating)e(the)h
-(e\013ect)f(of)g(an)o(y)h(previous)g(call)h(to)d Ft(rl_)195
-1057 y(execute_next\(\))p Fu(.)29 b(This)19 b(w)o(orks)f(only)h(if)h
-(the)e(p)q(ending)j(input)f(has)f(not)f(already)h(b)q(een)h(read)195
-1112 y(with)c Ft(rl_read_key\(\))p Fu(.)1762 1250 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1250 18 3 v 21 w(set)p 307
-1250 V 20 w(k)n(eyb)r(oard)p 558 1250 V 21 w(input)p
-712 1250 V 21 w(timeout)i Fg(\()p Ft(int)15 b(u)p Fg(\))195
-1305 y Fu(While)21 b(w)o(aiting)g(for)e(k)o(eyb)q(oard)h(input)h(in)g
-Ft(rl_read_key\(\))p Fu(,)e(Readline)i(will)h(w)o(ait)e(for)f
-Fk(u)h Fu(mi-)195 1360 y(croseconds)h(for)e(input)j(b)q(efore)f
-(calling)h(an)o(y)e(function)h(assigned)g(to)f Ft(rl_event_hook)p
-Fu(.)34 b(The)195 1414 y(default)16 b(w)o(aiting)f(p)q(erio)q(d)i(is)e
-(one-ten)o(th)h(of)e(a)h(second.)21 b(Returns)14 b(the)i(old)f(timeout)
-h(v)m(alue.)75 1540 y Fj(2.4.9)30 b(T)-5 b(erminal)20
-b(Managemen)n(t)1762 1708 y Fu(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 1708 V 21 w(prep)p 376 1708 V 20 w(terminal)j
-Fg(\()p Ft(int)14 b(meta_flag)p Fg(\))195 1762 y Fu(Mo)q(dify)22
-b(the)f(terminal)h(settings)f(for)g(Readline's)h(use,)h(so)d
-Ft(readline\(\))g Fu(can)i(read)f(a)g(single)195 1817
-y(c)o(haracter)15 b(at)g(a)g(time)i(from)d(the)i(k)o(eyb)q(oard.)22
-b(The)16 b Fk(meta)p 1192 1817 14 2 v 15 w(\015ag)k Fu(argumen)o(t)15
-b(should)h(b)q(e)h(non-zero)195 1872 y(if)f(Readline)g(should)g(read)f
-(eigh)o(t-bit)i(input.)1762 2010 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2010 18 3 v 21 w(deprep)p
-434 2010 V 20 w(terminal)j Fg(\()p Ft(void)p Fg(\))195
-2065 y Fu(Undo)16 b(the)g(e\013ects)f(of)h Ft(rl_prep_terminal\(\))p
-Fu(,)d(lea)o(ving)k(the)e(terminal)i(in)g(the)e(state)g(in)i(whic)o(h)
-195 2120 y(it)e(w)o(as)g(b)q(efore)g(the)h(most)e(recen)o(t)h(call)i
-(to)d Ft(rl_prep_terminal\(\))p Fu(.)1762 2258 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2258 V 21 w(tt)n(y)p 334 2258
-V 22 w(set)p 427 2258 V 20 w(default)p 620 2258 V 21
-w(bindings)k Fg(\()p Ft(Keymap)14 b(kmap)p Fg(\))195
-2313 y Fu(Read)k(the)h(op)q(erating)f(system's)g(terminal)h(editing)h
-(c)o(haracters)e(\(as)f(w)o(ould)i(b)q(e)g(displa)o(y)o(ed)h(b)o(y)195
-2367 y Ft(stty)p Fu(\))14 b(to)h(their)h(Readline)g(equiv)m(alen)o(ts.)
-22 b(The)15 b(bindings)i(are)e(p)q(erformed)g(in)h Fk(kmap)p
-Fu(.)1762 2506 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 2506 V 21 w(reset)p 357 2506 V 20 w(terminal)j Fg(\()p
-Ft(const)15 b(char)f(*terminal_name)p Fg(\))195 2560
-y Fu(Reinitialize)h(Readline's)e(idea)g(of)f(the)g(terminal)h(settings)
-g(using)g Fk(terminal)p 1491 2560 14 2 v 17 w(name)h
-Fu(as)e(the)h(termi-)195 2615 y(nal)k(t)o(yp)q(e)f(\(e.g.,)f
-Ft(vt100)p Fu(\).)21 b(If)c Fk(terminal)p 878 2615 V
-17 w(name)i Fu(is)d Ft(NULL)p Fu(,)g(the)g(v)m(alue)h(of)f(the)g
-Ft(TERM)g Fu(en)o(vironmen)o(t)195 2670 y(v)m(ariable)h(is)e(used.)p
-eop
-%%Page: 36 38
-36 37 bop 75 -58 a Fu(36)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fj(2.4.10)29 b(Utilit)n(y)22 b(F)-5 b(unctions)1762
-287 y Fu(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241
-287 18 3 v 21 w(replace)p 438 287 V 22 w(line)k Fg(\()p
-Ft(const)14 b(char)h(*text,)f(int)h(clear_undo)p Fg(\))195
-342 y Fu(Replace)20 b(the)g(con)o(ten)o(ts)f(of)g Ft(rl_line_buffer)f
-Fu(with)i Fk(text)p Fu(.)33 b(The)20 b(p)q(oin)o(t)g(and)g(mark)f(are)h
-(pre-)195 397 y(serv)o(ed,)13 b(if)h(p)q(ossible.)21
-b(If)13 b Fk(clear)p 712 397 14 2 v 17 w(undo)j Fu(is)d(non-zero,)h
-(the)f(undo)g(list)h(asso)q(ciated)g(with)f(the)g(curren)o(t)195
-452 y(line)k(is)f(cleared.)1762 561 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 561 18 3 v 21 w(extend)p 404
-561 V 21 w(line)p 513 561 V 22 w(bu\013er)j Fg(\()p Ft(int)15
-b(len)p Fg(\))195 616 y Fu(Ensure)g(that)g Ft(rl_line_buffer)e
-Fu(has)i(enough)g(space)h(to)e(hold)i Fk(len)g Fu(c)o(haracters,)e(p)q
-(ossibly)i(real-)195 670 y(lo)q(cating)g(it)f(if)h(necessary)l(.)1762
-779 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 779
-V 21 w(initiali)q(z)q(e)26 b Fg(\()p Ft(void)p Fg(\))195
-834 y Fu(Initialize)21 b(or)d(re-initialize)k(Readline's)d(in)o(ternal)
-h(state.)28 b(It's)18 b(not)g(strictly)h(necessary)g(to)f(call)195
-889 y(this;)d Ft(readline\(\))f Fu(calls)i(it)g(b)q(efore)f(reading)h
-(an)o(y)f(input.)1762 998 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 998 V 21 w(ding)j Fg(\()p Ft(void)p Fg(\))195
-1053 y Fu(Ring)15 b(the)g(terminal)h(b)q(ell,)h(ob)q(eying)f(the)g
-(setting)f(of)g Ft(bell-style)p Fu(.)1762 1162 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1162 V 21 w(alphab)r(etic)k
-Fg(\()p Ft(int)14 b(c)p Fg(\))195 1217 y Fu(Return)h(1)g(if)g
-Fk(c)j Fu(is)e(an)f(alphab)q(etic)i(c)o(haracter.)1762
-1325 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1325
-V 21 w(displa)n(y)p 435 1325 V 22 w(matc)n(h)p 611 1325
-V 20 w(list)25 b Fg(\()p Ft(char)14 b(**matches,)g(int)g(len,)h(int)g
-(max)p Fg(\))195 1380 y Fu(A)i(con)o(v)o(enience)i(function)f(for)f
-(displa)o(ying)i(a)e(list)h(of)e(strings)h(in)i(columnar)e(format)f(on)
-h(Read-)195 1435 y(line's)h(output)f(stream.)23 b Ft(matches)16
-b Fu(is)h(the)g(list)h(of)e(strings,)h(in)g(argv)f(format,)g(suc)o(h)h
-(as)f(a)h(list)g(of)195 1490 y(completion)c(matc)o(hes.)19
-b Ft(len)11 b Fu(is)i(the)f(n)o(um)o(b)q(er)h(of)e(strings)h(in)h
-Ft(matches)p Fu(,)f(and)g Ft(max)g Fu(is)g(the)h(length)f(of)195
-1545 y(the)h(longest)g(string)g(in)h Ft(matches)p Fu(.)19
-b(This)13 b(function)h(uses)f(the)h(setting)f(of)f Ft
-(print-completions-)195 1599 y(horizontally)k Fu(to)i(select)h(ho)o(w)e
-(the)i(matc)o(hes)e(are)h(displa)o(y)o(ed)h(\(see)g(Section)g(1.3.1)d
-([Readline)195 1654 y(Init)g(File)g(Syn)o(tax],)e(page)h(4\).)137
-1742 y(The)i(follo)o(wing)f(are)g(implemen)o(ted)i(as)e(macros,)f
-(de\014ned)i(in)g Ft(chardefs.h)p Fu(.)k(Applications)d(should)75
-1796 y(refrain)d(from)g(using)h(them.)1762 1905 y(F)l(unction)-1861
-b Fi(int)p 176 1905 V 40 w Fh(rl)p 235 1905 V 21 w(upp)r(ercase)p
-506 1905 V 20 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195
-1960 y Fu(Return)h(1)g(if)g Fk(c)j Fu(is)e(an)f(upp)q(ercase)i(alphab)q
-(etic)f(c)o(haracter.)1762 2069 y(F)l(unction)-1861 b
-Fi(int)p 176 2069 V 40 w Fh(rl)p 235 2069 V 21 w(lo)n(w)n(ercase)p
-489 2069 V 23 w(p)22 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-2124 y Fu(Return)g(1)g(if)g Fk(c)j Fu(is)e(a)f(lo)o(w)o(ercase)g
-(alphab)q(etic)i(c)o(haracter.)1762 2233 y(F)l(unction)-1861
-b Fi(int)p 176 2233 V 40 w Fh(rl)p 235 2233 V 21 w(digit)p
-369 2233 V 22 w(p)23 b Fg(\()p Ft(int)14 b(c)p Fg(\))195
-2288 y Fu(Return)h(1)g(if)g Fk(c)j Fu(is)e(a)f(n)o(umeric)h(c)o
-(haracter.)1762 2397 y(F)l(unction)-1861 b Fi(int)p 176
-2397 V 40 w Fh(rl)p 235 2397 V 21 w(to)p 307 2397 V 21
-w(upp)r(er)21 b Fg(\()p Ft(int)15 b(c)p Fg(\))195 2451
-y Fu(If)d Fk(c)j Fu(is)d(a)g(lo)o(w)o(ercase)f(alphab)q(etic)j(c)o
-(haracter,)d(return)h(the)g(corresp)q(onding)h(upp)q(ercase)g(c)o
-(haracter.)1762 2560 y(F)l(unction)-1861 b Fi(int)p 176
-2560 V 40 w Fh(rl)p 235 2560 V 21 w(to)p 307 2560 V 21
-w(lo)n(w)n(er)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-2615 y Fu(If)g Fk(c)i Fu(is)e(an)f(upp)q(ercase)i(alphab)q(etic)g(c)o
-(haracter,)e(return)g(the)h(corresp)q(onding)g(lo)o(w)o(ercase)f(c)o
-(harac-)195 2670 y(ter.)p eop
-%%Page: 37 39
-37 38 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(37)1762 149 y(F)l(unction)-1861 b Fi(int)p
-176 149 18 3 v 40 w Fh(rl)p 235 149 V 21 w(digit)p 369
-149 V 22 w(v)m(alue)24 b Fg(\()p Ft(int)15 b(c)p Fg(\))195
-204 y Fu(If)g Fk(c)k Fu(is)c(a)g(n)o(um)o(b)q(er,)g(return)g(the)h(v)m
-(alue)g(it)g(represen)o(ts.)75 325 y Fj(2.4.11)29 b(Miscellaneous)22
-b(F)-5 b(unctions)1762 484 y Fu(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 484 V 21 w(macro)p 391 484 V 19 w(bind)j
-Fg(\()p Ft(const)14 b(char)g(*keyseq,)h(const)f(char)h(*macro,)283
-539 y(Keymap)f(map)p Fg(\))195 593 y Fu(Bind)f(the)f(k)o(ey)f(sequence)
-i Fk(k)o(eyseq)g Fu(to)e(in)o(v)o(ok)o(e)g(the)h(macro)f
-Fk(macro)p Fu(.)18 b(The)12 b(binding)h(is)f(p)q(erformed)g(in)195
-648 y Fk(map)p Fu(.)19 b(When)14 b Fk(k)o(eyseq)h Fu(is)f(in)o(v)o(ok)o
-(ed,)g(the)g Fk(macro)i Fu(will)f(b)q(e)f(inserted)h(in)o(to)f(the)g
-(line.)21 b(This)14 b(function)195 703 y(is)i(deprecated;)f(use)h
-Ft(rl_generic_bind\(\))d Fu(instead.)1762 833 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 833 V 21 w(macro)p 417 833
-V 19 w(dump)r(er)g Fg(\()p Ft(int)15 b(readable)p Fg(\))195
-888 y Fu(Prin)o(t)f(the)f(k)o(ey)h(sequences)g(b)q(ound)h(to)e(macros)g
-(and)g(their)h(v)m(alues,)h(using)f(the)g(curren)o(t)g(k)o(eymap,)195
-943 y(to)h Ft(rl_outstream)p Fu(.)k(If)d Fk(readable)j
-Fu(is)d(non-zero,)g(the)g(list)g(is)g(formatted)f(in)h(suc)o(h)g(a)f(w)
-o(a)o(y)g(that)g(it)195 997 y(can)g(b)q(e)h(made)f(part)g(of)g(an)g
-Ft(inputrc)f Fu(\014le)i(and)g(re-read.)1762 1127 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1127 V 21 w(v)m(ariable)p 431
-1127 V 22 w(bind)j Fg(\()p Ft(const)14 b(char)g(*variable,)g(const)h
-(char)f(*value)p Fg(\))195 1182 y Fu(Mak)o(e)22 b(the)g(Readline)i(v)m
-(ariable)g Fk(v)m(ariable)j Fu(ha)o(v)o(e)22 b Fk(v)m(alue)p
-Fu(.)43 b(This)23 b(b)q(eha)o(v)o(es)g(as)f(if)h(the)f(readline)195
-1237 y(command)12 b(`)p Ft(set)j Fk(v)m(ariable)k(v)m(alue)s
-Fu(')12 b(had)h(b)q(een)g(executed)h(in)f(an)f Ft(inputrc)g
-Fu(\014le)h(\(see)f(Section)i(1.3.1)195 1292 y([Readline)i(Init)g(File)
-h(Syn)o(tax],)d(page)h(4\).)1762 1422 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 1422 V 21 w(v)m(ariable)p
-457 1422 V 22 w(dump)r(er)g Fg(\()p Ft(int)14 b(readable)p
-Fg(\))195 1476 y Fu(Prin)o(t)g(the)h(readline)h(v)m(ariable)f(names)g
-(and)f(their)h(curren)o(t)f(v)m(alues)i(to)d Ft(rl_outstream)p
-Fu(.)18 b(If)d Fk(read-)195 1531 y(able)20 b Fu(is)e(non-zero,)f(the)g
-(list)h(is)g(formatted)e(in)h(suc)o(h)h(a)e(w)o(a)o(y)g(that)h(it)g
-(can)g(b)q(e)h(made)f(part)f(of)h(an)195 1586 y Ft(inputrc)d
-Fu(\014le)i(and)g(re-read.)1762 1716 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1716 V 21 w(set)p 307 1716
-V 20 w(paren)p 469 1716 V 20 w(blink)p 613 1716 V 23
-w(timeout)i Fg(\()p Ft(int)15 b(u)p Fg(\))195 1771 y
-Fu(Set)e(the)f(time)h(in)o(terv)m(al)h(\(in)f(microseconds\))g(that)f
-(Readline)i(w)o(aits)e(when)h(sho)o(wing)f(a)h(balancing)195
-1826 y(c)o(haracter)h(when)i Ft(blink-matching-paren)d
-Fu(has)i(b)q(een)h(enabled.)1762 1956 y(F)l(unction)-1861
-b Fi(char)20 b(*)f Fh(rl)p 286 1956 V 21 w(get)p 384
-1956 V 21 w(termcap)j Fg(\()p Ft(const)14 b(char)g(*cap)p
-Fg(\))195 2010 y Fu(Retriev)o(e)f(the)h(string)f(v)m(alue)i(of)e(the)h
-(termcap)f(capabilit)o(y)i Fk(cap)p Fu(.)k(Readline)c(fetc)o(hes)f(the)
-f(termcap)195 2065 y(en)o(try)j(for)h(the)f(curren)o(t)h(terminal)h
-(name)e(and)h(uses)g(those)g(capabilities)i(to)d(mo)o(v)o(e)g(around)h
-(the)195 2120 y(screen)11 b(line)h(and)f(p)q(erform)f(other)g
-(terminal-sp)q(eci\014c)k(op)q(erations,)d(lik)o(e)h(erasing)e(a)h
-(line.)20 b(Readline)195 2175 y(do)q(es)e(not)f(use)h(all)g(of)f(a)g
-(terminal's)h(capabilities,)i(and)e(this)g(function)g(will)h(return)f
-(v)m(alues)h(for)195 2230 y(only)d(those)f(capabilities)i(Readline)g
-(uses.)75 2350 y Fj(2.4.12)29 b(Alternate)21 b(In)n(terface)137
-2451 y Fu(An)i(alternate)f(in)o(terface)h(is)g(a)o(v)m(ailable)h(to)d
-(plain)j Ft(readline\(\))p Fu(.)40 b(Some)22 b(applications)i(need)g
-(to)75 2506 y(in)o(terlea)o(v)o(e)15 b(k)o(eyb)q(oard)f(I/O)h(with)g
-(\014le,)h(device,)f(or)f(windo)o(w)h(system)f(I/O,)h(t)o(ypically)h(b)
-o(y)e(using)h(a)g(main)75 2560 y(lo)q(op)f(to)g Ft(select\(\))e
-Fu(on)i(v)m(arious)g(\014le)h(descriptors.)20 b(T)l(o)14
-b(accomo)q(date)f(this)h(need,)h(readline)g(can)f(also)g(b)q(e)75
-2615 y(in)o(v)o(ok)o(ed)i(as)f(a)g(`callbac)o(k')h(function)h(from)d
-(an)i(ev)o(en)o(t)f(lo)q(op.)22 b(There)16 b(are)f(functions)h(a)o(v)m
-(ailable)i(to)c(mak)o(e)75 2670 y(this)i(easy)l(.)p eop
-%%Page: 38 40
-38 39 bop 75 -58 a Fu(38)1299 b(GNU)15 b(Readline)h(Library)1762
-149 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 149
-18 3 v 21 w(callbac)n(k)p 458 149 V 23 w(handler)p 670
-149 V 21 w(install)25 b Fg(\()p Ft(const)14 b(char)h(*prompt,)283
-204 y(rl_vcpfunc_t)e(*lhandler)p Fg(\))195 259 y Fu(Set)f(up)h(the)g
-(terminal)g(for)f(readline)i(I/O)f(and)f(displa)o(y)i(the)e(initial)j
-(expanded)e(v)m(alue)h(of)e Fk(prompt)p Fu(.)195 314
-y(Sa)o(v)o(e)j(the)h(v)m(alue)h(of)f Fk(lhandler)21 b
-Fu(to)15 b(use)h(as)f(a)h(function)h(to)e(call)i(when)f(a)g(complete)g
-(line)i(of)d(input)195 369 y(has)g(b)q(een)h(en)o(tered.)21
-b(The)15 b(function)h(tak)o(es)e(the)i(text)e(of)h(the)g(line)i(as)e
-(an)g(argumen)o(t.)1762 480 y(F)l(unction)-1861 b Fi(void)20
-b Fh(rl)p 241 480 V 21 w(callbac)n(k)p 458 480 V 23 w(read)p
-591 480 V 20 w(c)n(har)j Fg(\()p Ft(void)p Fg(\))195
-535 y Fu(Whenev)o(er)17 b(an)g(application)h(determines)g(that)e(k)o
-(eyb)q(oard)h(input)h(is)f(a)o(v)m(ailable,)i(it)e(should)h(call)195
-590 y Ft(rl_callback_read_char\(\))p Fu(,)8 b(whic)o(h)k(will)g(read)f
-(the)g(next)g(c)o(haracter)f(from)g(the)h(curren)o(t)g(input)195
-645 y(source.)38 b(If)21 b(that)g(c)o(haracter)f(completes)i(the)f
-(line,)j Ft(rl_callback_read_char)18 b Fu(will)23 b(in)o(v)o(ok)o(e)195
-699 y(the)18 b Fk(lhandler)k Fu(function)d(sa)o(v)o(ed)e(b)o(y)h
-Ft(rl_callback_handler_insta)o(ll)d Fu(to)i(pro)q(cess)h(the)g(line.)
-195 754 y(Before)13 b(calling)i(the)f Fk(lhandler)k Fu(function,)c(the)
-g(terminal)g(settings)f(are)g(reset)g(to)g(the)g(v)m(alues)i(they)195
-809 y(had)g(b)q(efore)g(calling)i Ft(rl_callback_handler_insta)o(ll)p
-Fu(.)g(If)e(the)g Fk(lhandler)20 b Fu(function)15 b(returns,)195
-864 y(the)d(terminal)i(settings)e(are)g(mo)q(di\014ed)i(for)d
-(Readline's)i(use)g(again.)19 b Ft(EOF)12 b Fu(is)h(indicated)h(b)o(y)e
-(calling)195 919 y Fk(lhandler)20 b Fu(with)c(a)f Ft(NULL)f
-Fu(line.)1762 1030 y(F)l(unction)-1861 b Fi(void)20 b
-Fh(rl)p 241 1030 V 21 w(callbac)n(k)p 458 1030 V 23 w(handler)p
-670 1030 V 21 w(remo)n(v)n(e)i Fg(\()p Ft(void)p Fg(\))195
-1085 y Fu(Restore)c(the)g(terminal)i(to)d(its)i(initial)i(state)d(and)g
-(remo)o(v)o(e)g(the)h(line)h(handler.)31 b(This)19 b(ma)o(y)f(b)q(e)195
-1140 y(called)i(from)d(within)j(a)d(callbac)o(k)j(as)d(w)o(ell)i(as)f
-(indep)q(enden)o(tly)m(.)31 b(If)19 b(the)f Fk(lhandler)23
-b Fu(installed)d(b)o(y)195 1195 y Ft(rl_callback_handler_instal)o(l)d
-Fu(do)q(es)i(not)g(exit)h(the)g(program,)e(either)i(this)g(function)g
-(or)195 1249 y(the)c(function)g(referred)g(to)f(b)o(y)h(the)g(v)m(alue)
-h(of)e Ft(rl_deprep_term_function)d Fu(should)17 b(b)q(e)f(called)195
-1304 y(b)q(efore)f(the)h(program)e(exits)h(to)g(reset)g(the)g(terminal)
-h(settings.)75 1413 y Fj(2.4.13)29 b(A)21 b(Readline)g(Example)137
-1508 y Fu(Here)f(is)g(a)f(function)i(whic)o(h)f(c)o(hanges)f(lo)o(w)o
-(ercase)h(c)o(haracters)e(to)h(their)h(upp)q(ercase)h(equiv)m(alen)o
-(ts,)75 1563 y(and)e(upp)q(ercase)i(c)o(haracters)d(to)h(lo)o(w)o
-(ercase.)31 b(If)20 b(this)f(function)h(w)o(as)f(b)q(ound)h(to)f(`)p
-Ft(M-c)p Fu(',)f(then)i(t)o(yping)75 1618 y(`)p Ft(M-c)p
-Fu(')12 b(w)o(ould)h(c)o(hange)h(the)f(case)g(of)g(the)g(c)o(haracter)g
-(under)g(p)q(oin)o(t.)20 b(T)o(yping)14 b(`)p Ft(M-1)g(0)h(M-c)p
-Fu(')d(w)o(ould)i(c)o(hange)75 1673 y(the)h(case)g(of)g(the)h(follo)o
-(wing)f(10)g(c)o(haracters,)f(lea)o(ving)i(the)f(cursor)g(on)g(the)h
-(last)f(c)o(haracter)f(c)o(hanged.)195 1736 y Ft(/*)24
-b(Invert)f(the)g(case)g(of)h(the)f(COUNT)h(following)e(characters.)h
-(*/)195 1788 y(int)195 1840 y(invert_case_line)f(\(count,)h(key\))314
-1892 y(int)h(count,)f(key;)195 1944 y({)243 1995 y(register)f(int)i
-(start,)f(end,)g(i;)243 2099 y(start)g(=)h(rl_point;)243
-2203 y(if)f(\(rl_point)g(>=)h(rl_end\))290 2255 y(return)f(\(0\);)243
-2359 y(if)g(\(count)g(<)h(0\))290 2411 y({)338 2462 y(direction)f(=)h
-(-1;)338 2514 y(count)f(=)h(-count;)290 2566 y(})243
-2618 y(else)290 2670 y(direction)f(=)h(1;)p eop
-%%Page: 39 41
-39 40 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(39)243 201 y Ft(/*)23 b(Find)h(the)f(end)h(of)f(the)h
-(range)f(to)g(modify.)g(*/)243 253 y(end)g(=)h(start)f(+)h(\(count)f(*)
-h(direction\);)243 357 y(/*)f(Force)g(it)h(to)g(be)f(within)g(range.)g
-(*/)243 409 y(if)g(\(end)h(>)f(rl_end\))290 461 y(end)h(=)g(rl_end;)243
-513 y(else)f(if)h(\(end)f(<)h(0\))290 565 y(end)g(=)g(0;)243
-668 y(if)f(\(start)g(==)h(end\))290 720 y(return)f(\(0\);)243
-824 y(if)g(\(start)g(>)h(end\))290 876 y({)338 928 y(int)g(temp)f(=)h
-(start;)338 980 y(start)f(=)h(end;)338 1032 y(end)g(=)f(temp;)290
-1083 y(})243 1187 y(/*)g(Tell)h(readline)e(that)i(we)f(are)h(modifying)
-e(the)i(line,)314 1239 y(so)g(it)f(will)h(save)f(the)h(undo)f
-(information.)f(*/)243 1291 y(rl_modifying)g(\(start,)h(end\);)243
-1395 y(for)g(\(i)h(=)f(start;)h(i)f(!=)h(end;)f(i++\))290
-1447 y({)338 1499 y(if)h(\(_rl_uppercase_p)d(\(rl_line_buffer[i]\)\))
-386 1550 y(rl_line_buffer[i])g(=)j(_rl_to_lower)e
-(\(rl_line_buffer[i]\);)338 1602 y(else)h(if)h(\(_rl_lowercase_p)e
-(\(rl_line_buffer[i]\)\))386 1654 y(rl_line_buffer[i])f(=)j
-(_rl_to_upper)e(\(rl_line_buffer[i]\);)290 1706 y(})243
-1758 y(/*)h(Move)h(point)f(to)g(on)h(top)f(of)h(the)f(last)h(character)
-e(changed.)h(*/)243 1810 y(rl_point)f(=)i(\(direction)f(==)g(1\))h(?)g
-(end)f(-)h(1)g(:)f(start;)243 1862 y(return)g(\(0\);)195
-1914 y(})75 2057 y Fs(2.5)33 b(Readline)23 b(Signal)h(Handling)137
-2159 y Fu(Signals)e(are)f(async)o(hronous)f(ev)o(en)o(ts)h(sen)o(t)f
-(to)h(a)f(pro)q(cess)h(b)o(y)g(the)g(Unix)h(k)o(ernel,)g(sometimes)f
-(on)75 2213 y(b)q(ehalf)g(of)e(another)h(pro)q(cess.)34
-b(They)20 b(are)g(in)o(tended)h(to)e(indicate)j(exceptional)f(ev)o(en)o
-(ts,)f(lik)o(e)h(a)f(user)75 2268 y(pressing)c(the)f(in)o(terrupt)g(k)o
-(ey)g(on)g(his)h(terminal,)f(or)g(a)f(net)o(w)o(ork)g(connection)i(b)q
-(eing)g(brok)o(en.)k(There)15 b(is)75 2323 y(a)e(class)g(of)g(signals)h
-(that)f(can)g(b)q(e)h(sen)o(t)f(to)f(the)i(pro)q(cess)f(curren)o(tly)h
-(reading)f(input)i(from)d(the)h(k)o(eyb)q(oard.)75 2378
-y(Since)i(Readline)f(c)o(hanges)g(the)f(terminal)h(attributes)f(when)h
-(it)g(is)g(called,)h(it)e(needs)h(to)f(p)q(erform)g(sp)q(ecial)75
-2433 y(pro)q(cessing)i(when)f(suc)o(h)g(a)g(signal)g(is)g(receiv)o(ed)h
-(in)g(order)f(to)f(restore)g(the)h(terminal)g(to)f(a)h(sane)g(state,)e
-(or)75 2487 y(pro)o(vide)k(application)h(writers)e(with)g(functions)h
-(to)f(do)g(so)g(man)o(ually)l(.)137 2560 y(Readline)22
-b(con)o(tains)e(an)g(in)o(ternal)h(signal)g(handler)g(that)f(is)h
-(installed)h(for)d(a)h(n)o(um)o(b)q(er)g(of)g(signals)75
-2615 y(\()p Ft(SIGINT)p Fu(,)h Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p
-Fu(,)g Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)g Ft(SIGTTIN)p
-Fu(,)h(and)f Ft(SIGTTOU)p Fu(\).)36 b(When)21 b(one)g(of)75
-2670 y(these)16 b(signals)h(is)f(receiv)o(ed,)h(the)f(signal)h(handler)
-f(will)i(reset)e(the)g(terminal)g(attributes)g(to)f(those)h(that)p
-eop
-%%Page: 40 42
-40 41 bop 75 -58 a Fu(40)1299 b(GNU)15 b(Readline)h(Library)75
-149 y(w)o(ere)d(in)i(e\013ect)e(b)q(efore)h Ft(readline\(\))e
-Fu(w)o(as)h(called,)i(reset)f(the)f(signal)i(handling)g(to)e(what)g(it)
-h(w)o(as)f(b)q(efore)75 204 y Ft(readline\(\))21 b Fu(w)o(as)h(called,)
-j(and)e(resend)g(the)g(signal)g(to)f(the)h(calling)h(application.)44
-b(If)23 b(and)f(when)75 259 y(the)17 b(calling)i(application's)f
-(signal)g(handler)g(returns,)f(Readline)h(will)h(reinitialize)h(the)d
-(terminal)h(and)75 314 y(con)o(tin)o(ue)d(to)e(accept)i(input.)20
-b(When)15 b(a)e Ft(SIGINT)h Fu(is)g(receiv)o(ed,)h(the)g(Readline)g
-(signal)g(handler)g(p)q(erforms)75 369 y(some)k(additional)i(w)o(ork,)e
-(whic)o(h)h(will)h(cause)f(an)o(y)f(partially-en)o(tered)i(line)g(to)d
-(b)q(e)i(ab)q(orted)g(\(see)f(the)75 423 y(description)e(of)d
-Ft(rl_free_line_state\(\))f Fu(b)q(elo)o(w\).)137 488
-y(There)g(is)f(an)g(additional)i(Readline)g(signal)f(handler,)g(for)f
-Ft(SIGWINCH)p Fu(,)f(whic)o(h)i(the)f(k)o(ernel)h(sends)g(to)e(a)75
-543 y(pro)q(cess)k(whenev)o(er)g(the)f(terminal's)h(size)g(c)o(hanges)f
-(\(for)g(example,)h(if)g(a)f(user)h(resizes)g(an)f Ft(xterm)p
-Fu(\).)19 b(The)75 598 y(Readline)g Ft(SIGWINCH)e Fu(handler)i(up)q
-(dates)f(Readline's)h(in)o(ternal)f(screen)h(size)f(information,)h(and)
-f(then)75 653 y(calls)g(an)o(y)f Ft(SIGWINCH)e Fu(signal)j(handler)g
-(the)f(calling)i(application)f(has)f(installed.)27 b(Readline)18
-b(calls)g(the)75 708 y(application's)h Ft(SIGWINCH)d
-Fu(signal)j(handler)f(without)g(resetting)g(the)f(terminal)i(to)e(its)g
-(original)i(state.)75 762 y(If)d(the)g(application's)h(signal)g
-(handler)g(do)q(es)g(more)e(than)h(up)q(date)h(its)f(idea)h(of)e(the)h
-(terminal)h(size)g(and)75 817 y(return)e(\(for)f(example,)h(a)f
-Ft(longjmp)g Fu(bac)o(k)h(to)f(a)h(main)g(pro)q(cessing)g(lo)q(op\),)g
-(it)g Fl(must)20 b Fu(call)c Ft(rl_cleanup_)75 872 y(after_signal\(\))d
-Fu(\(describ)q(ed)k(b)q(elo)o(w\),)e(to)g(restore)f(the)h(terminal)h
-(state.)137 937 y(Readline)g(pro)o(vides)f(t)o(w)o(o)e(v)m(ariables)i
-(that)f(allo)o(w)g(application)i(writers)e(to)g(con)o(trol)g(whether)h
-(or)e(not)75 992 y(it)k(will)h(catc)o(h)e(certain)h(signals)h(and)f
-(act)f(on)g(them)h(when)g(they)f(are)h(receiv)o(ed.)25
-b(It)16 b(is)i(imp)q(ortan)o(t)e(that)75 1047 y(applications)k(c)o
-(hange)e(the)h(v)m(alues)g(of)f(these)h(v)m(ariables)g(only)g(when)g
-(calling)h Ft(readline\(\))p Fu(,)d(not)h(in)h(a)75 1101
-y(signal)d(handler,)g(so)f(Readline's)h(in)o(ternal)g(signal)g(state)e
-(is)i(not)f(corrupted.)1773 1208 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1208 18 3 v 21 w(catc)n(h)p
-366 1208 V 22 w(signals)195 1262 y Fu(If)15 b(this)g(v)m(ariable)g(is)g
-(non-zero,)g(Readline)h(will)g(install)f(signal)h(handlers)f(for)f
-Ft(SIGINT)p Fu(,)f Ft(SIGQUIT)p Fu(,)195 1317 y Ft(SIGTERM)p
-Fu(,)h Ft(SIGALRM)p Fu(,)g Ft(SIGTSTP)p Fu(,)f Ft(SIGTTIN)p
-Fu(,)h(and)i Ft(SIGTTOU)p Fu(.)195 1382 y(The)f(default)h(v)m(alue)h
-(of)d Ft(rl_catch_signals)f Fu(is)j(1.)1773 1488 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1488 V 21 w(catc)n(h)p 366
-1488 V 22 w(sigwinc)n(h)195 1543 y Fu(If)15 b(this)h(v)m(ariable)h(is)e
-(non-zero,)g(Readline)i(will)g(install)f(a)f(signal)h(handler)h(for)d
-Ft(SIGWINCH)p Fu(.)195 1608 y(The)h(default)h(v)m(alue)h(of)d
-Ft(rl_catch_sigwinch)f Fu(is)j(1.)137 1694 y(If)g(an)f(application)j
-(do)q(es)d(not)g(wish)i(to)d(ha)o(v)o(e)h(Readline)i(catc)o(h)f(an)o(y)
-f(signals,)h(or)f(to)f(handle)j(signals)75 1749 y(other)i(than)g(those)
-g(Readline)i(catc)o(hes)e(\()p Ft(SIGHUP)p Fu(,)g(for)g(example\),)h
-(Readline)h(pro)o(vides)e(con)o(v)o(enience)75 1804 y(functions)d(to)f
-(do)g(the)g(necessary)g(terminal)h(and)g(in)o(ternal)g(state)e(clean)o
-(up)i(up)q(on)g(receipt)g(of)f(a)g(signal.)1762 1910
-y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 1910 V
-21 w(clean)n(up)p 450 1910 V 22 w(after)p 590 1910 V
-20 w(signal)j Fg(\()p Ft(void)p Fg(\))195 1965 y Fu(This)18
-b(function)f(will)i(reset)e(the)g(state)f(of)g(the)h(terminal)h(to)e
-(what)h(it)g(w)o(as)f(b)q(efore)h Ft(readline\(\))195
-2019 y Fu(w)o(as)d(called,)i(and)f(remo)o(v)o(e)f(the)g(Readline)i
-(signal)g(handlers)g(for)e(all)h(signals,)g(dep)q(ending)i(on)e(the)195
-2074 y(v)m(alues)h(of)f Ft(rl_catch_signals)e Fu(and)i
-Ft(rl_catch_sigwinch)p Fu(.)1762 2180 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2180 V 21 w(free)p 356 2180
-V 20 w(line)p 464 2180 V 23 w(state)j Fg(\()p Ft(void)p
-Fg(\))195 2235 y Fu(This)d(will)h(free)f(an)o(y)f(partial)h(state)f
-(asso)q(ciated)h(with)g(the)g(curren)o(t)f(input)i(line)g(\(undo)f
-(infor-)195 2290 y(mation,)i(an)o(y)f(partial)h(history)f(en)o(try)l(,)
-h(an)o(y)f(partially-en)o(tered)i(k)o(eyb)q(oard)e(macro,)h(and)f(an)o
-(y)195 2345 y(partially-en)o(tered)k(n)o(umeric)g(argumen)o(t\).)45
-b(This)24 b(should)h(b)q(e)g(called)g(b)q(efore)g Ft(rl_cleanup_)195
-2399 y(after_signal\(\))p Fu(.)36 b(The)22 b(Readline)h(signal)f
-(handler)g(for)f Ft(SIGINT)f Fu(calls)j(this)e(to)g(ab)q(ort)g(the)195
-2454 y(curren)o(t)15 b(input)h(line.)1762 2560 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 2560 V 21 w(reset)p 383 2560
-V 20 w(after)p 521 2560 V 21 w(signal)j Fg(\()p Ft(void)p
-Fg(\))195 2615 y Fu(This)15 b(will)h(reinitialize)h(the)d(terminal)h
-(and)g(reinstall)h(an)o(y)d(Readline)j(signal)f(handlers,)g(dep)q(end-)
-195 2670 y(ing)h(on)f(the)g(v)m(alues)i(of)d Ft(rl_catch_signals)f
-Fu(and)j Ft(rl_catch_sigwinch)p Fu(.)p eop
-%%Page: 41 43
-41 42 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(41)137 149 y(If)20 b(an)g(application)h(do)q(es)f(not)g
-(wish)g(Readline)h(to)e(catc)o(h)g Ft(SIGWINCH)p Fu(,)h(it)g(ma)o(y)f
-(call)h Ft(rl_resize_)75 204 y(terminal\(\))12 b Fu(or)h
-Ft(rl_set_screen_size\(\))e Fu(to)i(force)g(Readline)i(to)e(up)q(date)h
-(its)g(idea)g(of)g(the)f(terminal)75 259 y(size)j(when)g(a)f
-Ft(SIGWINCH)f Fu(is)h(receiv)o(ed.)1762 360 y(F)l(unction)-1861
-b Fi(void)20 b Fh(rl)p 241 360 18 3 v 21 w(resize)p 401
-360 V 22 w(terminal)j Fg(\()p Ft(void)p Fg(\))195 415
-y Fu(Up)q(date)16 b(Readline's)g(in)o(ternal)g(screen)f(size)i(b)o(y)e
-(reading)g(v)m(alues)i(from)d(the)i(k)o(ernel.)1762 516
-y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 516 V
-21 w(set)p 333 516 V 21 w(screen)p 510 516 V 20 w(size)k
-Fg(\()p Ft(int)15 b(rows,)f(int)h(cols)p Fg(\))195 571
-y Fu(Set)g(Readline's)h(idea)g(of)f(the)g(terminal)h(size)g(to)f
-Fk(ro)o(ws)h Fu(ro)o(ws)e(and)i Fk(cols)h Fu(columns.)137
-653 y(If)g(an)g(application)h(do)q(es)f(not)f(w)o(an)o(t)g(to)g
-(install)i(a)f Ft(SIGWINCH)e Fu(handler,)j(but)f(is)g(still)h(in)o
-(terested)f(in)75 708 y(the)e(screen)h(dimensions,)g(Readline's)h(idea)
-e(of)g(the)h(screen)f(size)h(ma)o(y)f(b)q(e)h(queried.)1762
-809 y(F)l(unction)-1861 b Fi(void)20 b Fh(rl)p 241 809
-V 21 w(get)p 339 809 V 21 w(screen)p 516 809 V 20 w(size)k
-Fg(\()p Ft(int)15 b(*rows,)f(int)h(*cols)p Fg(\))195
-864 y Fu(Return)g(Readline's)h(idea)f(of)g(the)g(terminal's)g(size)h
-(in)g(the)f(v)m(ariables)i(p)q(oin)o(ted)f(to)e(b)o(y)h(the)g(argu-)195
-918 y(men)o(ts.)137 1001 y(The)h(follo)o(wing)g(functions)g(install)g
-(and)g(remo)o(v)o(e)e(Readline's)i(signal)g(handlers.)1762
-1102 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 1102
-V 21 w(set)p 307 1102 V 20 w(signals)j Fg(\()p Ft(void)p
-Fg(\))195 1157 y Fu(Install)c(Readline's)f(signal)h(handler)f(for)f
-Ft(SIGINT)p Fu(,)g Ft(SIGQUIT)p Fu(,)g Ft(SIGTERM)p Fu(,)g
-Ft(SIGALRM)p Fu(,)f Ft(SIGTSTP)p Fu(,)195 1211 y Ft(SIGTTIN)p
-Fu(,)11 b Ft(SIGTTOU)p Fu(,)g(and)h Ft(SIGWINCH)p Fu(,)e(dep)q(ending)k
-(on)e(the)f(v)m(alues)i(of)e Ft(rl_catch_signals)f Fu(and)195
-1266 y Ft(rl_catch_sigwinch)p Fu(.)1762 1367 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 1367 V 21 w(clear)p 354 1367
-V 21 w(signals)j Fg(\()p Ft(void)p Fg(\))195 1422 y Fu(Remo)o(v)o(e)14
-b(all)i(of)f(the)g(Readline)i(signal)f(handlers)g(installed)h(b)o(y)e
-Ft(rl_set_signals\(\))p Fu(.)75 1541 y Fs(2.6)33 b(Custom)21
-b(Completers)137 1634 y Fu(T)o(ypically)l(,)e(a)d(program)f(that)h
-(reads)h(commands)f(from)g(the)h(user)f(has)h(a)f(w)o(a)o(y)g(of)g
-(disam)o(biguating)75 1689 y(commands)i(and)f(data.)27
-b(If)18 b(y)o(our)f(program)g(is)h(one)g(of)f(these,)i(then)f(it)g(can)
-f(pro)o(vide)i(completion)g(for)75 1744 y(commands,)14
-b(data,)g(or)g(b)q(oth.)20 b(The)15 b(follo)o(wing)g(sections)g
-(describ)q(e)h(ho)o(w)e(y)o(our)g(program)g(and)h(Readline)75
-1798 y(co)q(op)q(erate)g(to)g(pro)o(vide)g(this)h(service.)75
-1901 y Fj(2.6.1)30 b(Ho)n(w)21 b(Completing)f(W)-5 b(orks)137
-1994 y Fu(In)18 b(order)f(to)f(complete)i(some)f(text,)g(the)g(full)i
-(list)e(of)g(p)q(ossible)i(completions)f(m)o(ust)f(b)q(e)h(a)o(v)m
-(ailable.)75 2049 y(That)e(is,)i(it)f(is)h(not)f(p)q(ossible)h(to)f
-(accurately)g(expand)h(a)e(partial)i(w)o(ord)e(without)h(kno)o(wing)g
-(all)h(of)f(the)75 2104 y(p)q(ossible)i(w)o(ords)e(whic)o(h)h(mak)o(e)f
-(sense)h(in)h(that)d(con)o(text.)26 b(The)18 b(Readline)h(library)f
-(pro)o(vides)g(the)g(user)75 2158 y(in)o(terface)f(to)f(completion,)i
-(and)e(t)o(w)o(o)g(of)g(the)h(most)f(common)g(completion)i(functions:)
-23 b(\014lename)18 b(and)75 2213 y(username.)h(F)l(or)10
-b(completing)i(other)e(t)o(yp)q(es)h(of)f(text,)h(y)o(ou)g(m)o(ust)f
-(write)h(y)o(our)f(o)o(wn)h(completion)g(function.)75
-2268 y(This)16 b(section)g(describ)q(es)g(exactly)g(what)f(suc)o(h)g
-(functions)h(m)o(ust)f(do,)f(and)i(pro)o(vides)f(an)h(example.)137
-2332 y(There)g(are)f(three)g(ma)s(jor)f(functions)i(used)f(to)g(p)q
-(erform)g(completion:)100 2396 y(1.)29 b(The)22 b(user-in)o(terface)g
-(function)h Ft(rl_complete\(\))p Fu(.)37 b(This)22 b(function)h(is)f
-(called)h(with)f(the)g(same)165 2451 y(argumen)o(ts)17
-b(as)h(other)g(bindable)i(Readline)f(functions:)27 b
-Fk(coun)o(t)19 b Fu(and)f Fk(in)o(v)o(oking)p 1556 2451
-14 2 v 17 w(k)o(ey)p Fu(.)28 b(It)19 b(isolates)165 2506
-y(the)g(w)o(ord)f(to)g(b)q(e)i(completed)f(and)g(calls)h
-Ft(rl_completion_matches\(\))c Fu(to)i(generate)g(a)h(list)g(of)165
-2560 y(p)q(ossible)e(completions.)22 b(It)16 b(then)g(either)g(lists)g
-(the)g(p)q(ossible)h(completions,)g(inserts)f(the)f(p)q(ossible)165
-2615 y(completions,)25 b(or)d(actually)i(p)q(erforms)e(the)g
-(completion,)k(dep)q(ending)e(on)f(whic)o(h)g(b)q(eha)o(vior)g(is)165
-2670 y(desired.)p eop
-%%Page: 42 44
-42 43 bop 75 -58 a Fu(42)1299 b(GNU)15 b(Readline)h(Library)100
-149 y(2.)29 b(The)17 b(in)o(ternal)h(function)f Ft
-(rl_completion_matches\(\))d Fu(uses)j(an)g(application-supplie)q(d)j
-Fk(gener-)165 204 y(ator)h Fu(function)e(to)f(generate)g(the)h(list)g
-(of)f(p)q(ossible)i(matc)o(hes,)f(and)f(then)h(returns)g(the)f(arra)o
-(y)f(of)165 259 y(these)j(matc)o(hes.)32 b(The)20 b(caller)g(should)h
-(place)f(the)g(address)f(of)h(its)f(generator)g(function)h(in)g
-Ft(rl_)165 314 y(completion_entry_function)p Fu(.)100
-383 y(3.)29 b(The)12 b(generator)e(function)i(is)g(called)h(rep)q
-(eatedly)g(from)e Ft(rl_completion_matches\(\))p Fu(,)d(returning)165
-438 y(a)16 b(string)g(eac)o(h)h(time.)24 b(The)17 b(argumen)o(ts)e(to)h
-(the)g(generator)g(function)h(are)f Fk(text)h Fu(and)g
-Fk(state)p Fu(.)22 b Fk(text)165 493 y Fu(is)17 b(the)f(partial)g(w)o
-(ord)f(to)h(b)q(e)h(completed.)23 b Fk(state)18 b Fu(is)e(zero)g(the)g
-(\014rst)g(time)g(the)g(function)h(is)g(called,)165 547
-y(allo)o(wing)23 b(the)f(generator)f(to)g(p)q(erform)h(an)o(y)g
-(necessary)g(initialization,)k(and)c(a)g(p)q(ositiv)o(e)h(non-)165
-602 y(zero)14 b(in)o(teger)h(for)f(eac)o(h)h(subsequen)o(t)g(call.)21
-b(The)15 b(generator)e(function)j(returns)e Ft(\(char)h(*\)NULL)f
-Fu(to)165 657 y(inform)19 b Ft(rl_completion_matches\(\))d
-Fu(that)i(there)h(are)g(no)g(more)g(p)q(ossibilities)j(left.)32
-b(Usually)165 712 y(the)19 b(generator)g(function)h(computes)g(the)f
-(list)h(of)f(p)q(ossible)i(completions)g(when)e Fk(state)j
-Fu(is)d(zero,)165 767 y(and)13 b(returns)g(them)f(one)h(at)f(a)h(time)g
-(on)g(subsequen)o(t)g(calls.)20 b(Eac)o(h)13 b(string)f(the)h
-(generator)f(function)165 821 y(returns)k(as)f(a)h(matc)o(h)f(m)o(ust)h
-(b)q(e)g(allo)q(cated)h(with)g Ft(malloc\(\))p Fu(;)d(Readline)k(frees)
-e(the)g(strings)f(when)165 876 y(it)g(has)h(\014nished)g(with)g(them.)
-1762 1005 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1005 18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
-(invoking_key)p Fg(\))195 1059 y Fu(Complete)h(the)f(w)o(ord)g(at)f(or)
-h(b)q(efore)h(p)q(oin)o(t.)21 b(Y)l(ou)15 b(ha)o(v)o(e)g(supplied)j
-(the)d(function)i(that)d(do)q(es)i(the)195 1114 y(initial)23
-b(simple)f(matc)o(hing)e(selection)i(algorithm)f(\(see)f
-Ft(rl_completion_matches\(\))p Fu(\).)33 b(The)195 1169
-y(default)16 b(is)f(to)g(do)g(\014lename)h(completion.)1773
-1298 y(V)l(ariable)-1861 b Fi(rl_compentry_func_t)22
-b(*)d Fh(rl)p 678 1298 V 21 w(completion)p 973 1298 V
-21 w(en)n(try)p 1126 1298 V 22 w(function)195 1352 y
-Fu(This)i(is)f(a)g(p)q(oin)o(ter)g(to)f(the)h(generator)g(function)g
-(for)g Ft(rl_completion_matches\(\))p Fu(.)31 b(If)20
-b(the)195 1407 y(v)m(alue)13 b(of)f Ft(rl_completion_entry_fun)o(ction)
-d Fu(is)j Ft(NULL)f Fu(then)h(the)g(default)h(\014lename)g(generator)
-195 1462 y(function,)j Ft(rl_filename_completion_f)o(unction)o(\(\))p
-Fu(,)c(is)k(used.)75 1582 y Fj(2.6.2)30 b(Completion)20
-b(F)-5 b(unctions)137 1682 y Fu(Here)16 b(is)f(the)h(complete)g(list)g
-(of)e(callable)k(completion)e(functions)g(presen)o(t)f(in)h(Readline.)
-1762 1810 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215
-1810 V 21 w(complete)p 460 1810 V 21 w(in)n(ternal)k
-Fg(\()p Ft(int)15 b(what_to_do)p Fg(\))195 1865 y Fu(Complete)k(the)g
-(w)o(ord)f(at)g(or)g(b)q(efore)h(p)q(oin)o(t.)31 b Fk(what)p
-1108 1865 14 2 v 16 w(to)p 1165 1865 V 16 w(do)21 b Fu(sa)o(ys)d(what)g
-(to)g(do)h(with)g(the)g(com-)195 1920 y(pletion.)j(A)16
-b(v)m(alue)h(of)e(`)p Ft(?)p Fu(')g(means)g(list)i(the)e(p)q(ossible)j
-(completions.)k(`)p Ft(TAB)p Fu(')14 b(means)i(do)f(standard)195
-1975 y(completion.)22 b(`)p Ft(*)p Fu(')15 b(means)g(insert)h(all)h(of)
-e(the)h(p)q(ossible)h(completions.)22 b(`)p Ft(!)p Fu(')15
-b(means)g(to)g(displa)o(y)i(all)195 2029 y(of)g(the)g(p)q(ossible)i
-(completions,)f(if)g(there)f(is)h(more)f(than)g(one,)g(as)g(w)o(ell)h
-(as)f(p)q(erforming)h(partial)195 2084 y(completion.)1762
-2213 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p 215 2213
-18 3 v 21 w(complete)j Fg(\()p Ft(int)14 b(ignore,)g(int)h
-(invoking_key)p Fg(\))195 2268 y Fu(Complete)21 b(the)g(w)o(ord)e(at)h
-(or)g(b)q(efore)h(p)q(oin)o(t.)37 b(Y)l(ou)21 b(ha)o(v)o(e)f(supplied)j
-(the)d(function)i(that)e(do)q(es)195 2322 y(the)d(initial)h(simple)g
-(matc)o(hing)f(selection)h(algorithm)e(\(see)g Ft
-(rl_completion_matches\(\))e Fu(and)195 2377 y Ft
-(rl_completion_entry_functi)o(on)p Fu(\).)25 b(The)18
-b(default)h(is)f(to)f(do)h(\014lename)h(completion.)29
-b(This)195 2432 y(calls)16 b Ft(rl_complete_internal\(\))c
-Fu(with)k(an)f(argumen)o(t)f(dep)q(ending)k(on)d Fk(in)o(v)o(oking)p
-1657 2432 14 2 v 17 w(k)o(ey)p Fu(.)1762 2560 y(F)l(unction)-1861
-b Fi(int)20 b Fh(rl)p 215 2560 18 3 v 21 w(p)r(ossible)p
-433 2560 V 20 w(completions)j Fg(\()p Ft(int)15 b(count,)f(int)h
-(invoking_key)p Fg(\))195 2615 y Fu(List)21 b(the)f(p)q(ossible)i
-(completions.)36 b(See)21 b(description)h(of)e Ft(rl_complete)13
-b(\(\))p Fu(.)35 b(This)21 b(calls)g Ft(rl_)195 2670
-y(complete_internal\(\))13 b Fu(with)i(an)g(argumen)o(t)g(of)f(`)p
-Ft(?)p Fu('.)p eop
-%%Page: 43 45
-43 44 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(43)1762 149 y(F)l(unction)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(insert)p 378 149 V 21 w(completions)j
-Fg(\()p Ft(int)14 b(count,)g(int)h(invoking_key)p Fg(\))195
-204 y Fu(Insert)i(the)g(list)h(of)e(p)q(ossible)j(completions)e(in)o
-(to)g(the)g(line,)i(deleting)f(the)f(partially-completed)195
-259 y(w)o(ord.)k(See)c(description)g(of)e Ft(rl_complete\(\))p
-Fu(.)20 b(This)d(calls)g Ft(rl_complete_internal\(\))c
-Fu(with)195 314 y(an)i(argumen)o(t)g(of)f(`)p Ft(*)p
-Fu('.)1762 434 y(F)l(unction)-1861 b Fi(int)20 b Fh(rl)p
-215 434 V 21 w(completion)p 510 434 V 21 w(mo)r(de)h
-Fg(\()p Ft(rl_command_func_t)12 b(*cfunc)p Fg(\))195
-489 y Fu(Returns)25 b(the)g(apppriate)h(v)m(alue)g(to)f(pass)g(to)f
-Ft(rl_complete_internal\(\))f Fu(dep)q(ending)k(on)195
-543 y(whether)22 b Fk(cfunc)j Fu(w)o(as)d(called)h(t)o(wice)f(in)h
-(succession)g(and)f(the)g(v)m(alue)h(of)f(the)g Ft(show-all-if-)195
-598 y(ambiguous)14 b Fu(v)m(ariable.)21 b(Application-sp)q(ec)q(i\014c)
-e(completion)d(functions)g(ma)o(y)f(use)g(this)h(function)195
-653 y(to)f(presen)o(t)g(the)g(same)g(in)o(terface)g(as)g
-Ft(rl_complete\(\))p Fu(.)1762 773 y(F)l(unction)-1861
-b Fi(char)20 b(**)f Fh(rl)p 312 773 V 21 w(completion)p
-607 773 V 21 w(matc)n(hes)j Fg(\()p Ft(const)15 b(char)f(*text,)283
-828 y(rl_compentry_func_t)e(*entry_func)p Fg(\))195 883
-y Fu(Returns)18 b(an)h(arra)o(y)f(of)g(strings)h(whic)o(h)h(is)g(a)e
-(list)i(of)e(completions)i(for)f Fk(text)p Fu(.)30 b(If)19
-b(there)g(are)g(no)195 937 y(completions,)f(returns)g
-Ft(NULL)p Fu(.)25 b(The)17 b(\014rst)g(en)o(try)g(in)h(the)f(returned)h
-(arra)o(y)e(is)i(the)f(substitution)195 992 y(for)c Fk(text)p
-Fu(.)18 b(The)c(remaining)g(en)o(tries)f(are)g(the)h(p)q(ossible)g
-(completions.)21 b(The)13 b(arra)o(y)f(is)i(terminated)195
-1047 y(with)i(a)e Ft(NULL)h Fu(p)q(oin)o(ter.)195 1115
-y Fk(en)o(try)p 302 1115 14 2 v 16 w(func)h Fu(is)e(a)f(function)h(of)e
-(t)o(w)o(o)g(args,)g(and)i(returns)f(a)f Ft(char)j(*)p
-Fu(.)k(The)13 b(\014rst)g(argumen)o(t)f(is)i Fk(text)p
-Fu(.)195 1170 y(The)f(second)g(is)f(a)h(state)e(argumen)o(t;)h(it)h(is)
-g(zero)f(on)g(the)h(\014rst)f(call,)i(and)e(non-zero)h(on)f(subsequen)o
-(t)195 1225 y(calls.)20 b Fk(en)o(try)p 420 1225 V 16
-w(func)15 b Fu(returns)e(a)e Ft(NULL)h Fu(p)q(oin)o(ter)h(to)e(the)i
-(caller)g(when)g(there)f(are)g(no)g(more)g(matc)o(hes.)1762
-1345 y(F)l(unction)-1861 b Fi(char)20 b(*)f Fh(rl)p 286
-1345 18 3 v 21 w(\014lename)p 515 1345 V 20 w(completion)p
-809 1345 V 21 w(function)k Fg(\()p Ft(const)15 b(char)f(*text,)h(int)
-283 1400 y(state)p Fg(\))195 1454 y Fu(A)e(generator)f(function)h(for)g
-(\014lename)h(completion)f(in)h(the)f(general)g(case.)19
-b Fk(text)14 b Fu(is)f(a)g(partial)g(\014le-)195 1509
-y(name.)20 b(The)15 b(Bash)f(source)h(is)g(a)g(useful)g(reference)h
-(for)e(writing)h(custom)f(completion)i(functions)195
-1564 y(\(the)f(Bash)g(completion)i(functions)e(call)i(this)e(and)h
-(other)f(Readline)h(functions\).)1762 1684 y(F)l(unction)-1861
-b Fi(char)20 b(*)f Fh(rl)p 286 1684 V 21 w(username)p
-547 1684 V 19 w(completion)p 840 1684 V 21 w(function)k
-Fg(\()p Ft(const)14 b(char)g(*text,)283 1739 y(int)g(state)p
-Fg(\))195 1794 y Fu(A)g(completion)i(generator)d(for)h(usernames.)19
-b Fk(text)c Fu(con)o(tains)f(a)g(partial)h(username)f(preceded)i(b)o(y)
-195 1848 y(a)f(random)g(c)o(haracter)f(\(usually)j(`)p
-Ft(~)p Fu('\).)i(As)c(with)g(all)i(completion)f(generators,)e
-Fk(state)j Fu(is)f(zero)f(on)195 1903 y(the)g(\014rst)g(call)h(and)g
-(non-zero)f(for)g(subsequen)o(t)h(calls.)75 2017 y Fj(2.6.3)30
-b(Completion)20 b(V)-5 b(ariables)1773 2166 y Fu(V)l(ariable)-1861
-b Fi(rl_compentry_func_t)22 b(*)d Fh(rl)p 678 2166 V
-21 w(completion)p 973 2166 V 21 w(en)n(try)p 1126 2166
-V 22 w(function)195 2221 y Fu(A)e(p)q(oin)o(ter)g(to)f(the)h(generator)
-f(function)h(for)f Ft(rl_completion_matches\(\))p Fu(.)22
-b Ft(NULL)16 b Fu(means)h(to)195 2276 y(use)f Ft
-(rl_filename_completion_)o(functio)o(n\(\))p Fu(,)c(the)j(default)h
-(\014lename)g(completer.)1773 2396 y(V)l(ariable)-1861
-b Fi(rl_completion_func_t)22 b(*)d Fh(rl)p 704 2396 V
-22 w(attempted)p 985 2396 V 20 w(completion)p 1279 2396
-V 21 w(function)195 2451 y Fu(A)e(p)q(oin)o(ter)h(to)f(an)g(alternativ)
-o(e)h(function)g(to)f(create)g(matc)o(hes.)26 b(The)18
-b(function)g(is)g(called)h(with)195 2506 y Fk(text)p
-Fu(,)11 b Fk(start)p Fu(,)g(and)h Fk(end)p Fu(.)19 b
-Fk(start)11 b Fu(and)h Fk(end)i Fu(are)d(indices)i(in)g
-Ft(rl_line_buffer)c Fu(de\014ning)k(the)f(b)q(ound-)195
-2560 y(aries)h(of)g Fk(text)p Fu(,)f(whic)o(h)i(is)g(a)e(c)o(haracter)h
-(string.)19 b(If)13 b(this)g(function)h(exists)g(and)f(returns)g
-Ft(NULL)p Fu(,)f(or)g(if)195 2615 y(this)f(v)m(ariable)i(is)e(set)g(to)
-f Ft(NULL)p Fu(,)h(then)g Ft(rl_complete\(\))e Fu(will)k(call)f(the)f
-(v)m(alue)h(of)f Ft(rl_completion_)195 2670 y(entry_function)h
-Fu(to)i(generate)g(matc)o(hes,)f(otherwise)i(the)f(arra)o(y)f(of)h
-(strings)g(returned)g(will)i(b)q(e)p eop
-%%Page: 44 46
-44 45 bop 75 -58 a Fu(44)1299 b(GNU)15 b(Readline)h(Library)195
-149 y(used.)j(If)12 b(this)f(function)h(sets)f(the)g
-Ft(rl_attempted_completion_over)d Fu(v)m(ariable)k(to)f(a)g(non-zero)
-195 204 y(v)m(alue,)18 b(Readline)h(will)f(not)f(p)q(erform)f(its)i
-(default)f(completion)h(ev)o(en)f(if)h(this)f(function)h(returns)195
-259 y(no)d(matc)o(hes.)1773 380 y(V)l(ariable)-1861 b
-Fi(rl_quote_func_t)21 b(*)f Fh(rl)p 574 380 18 3 v 21
-w(\014lename)p 803 380 V 20 w(quoting)p 1012 380 V 21
-w(function)195 434 y Fu(A)c(p)q(oin)o(ter)h(to)f(a)g(function)h(that)e
-(will)j(quote)e(a)g(\014lename)i(in)f(an)f(application-sp)q(eci\014)q
-(c)j(fashion.)195 489 y(This)h(is)g(called)i(if)e(\014lename)g
-(completion)h(is)f(b)q(eing)h(attempted)e(and)h(one)g(of)f(the)h(c)o
-(haracters)195 544 y(in)d Ft(rl_filename_quote_characters)c
-Fu(app)q(ears)k(in)g(a)g(completed)g(\014lename.)25 b(The)17
-b(function)195 599 y(is)i(called)i(with)e Fk(text)p Fu(,)g
-Fk(matc)o(h)p 722 599 14 2 v 16 w(t)o(yp)q(e)p Fu(,)g(and)g
-Fk(quote)p 1059 599 V 17 w(p)q(oin)o(ter)p Fu(.)31 b(The)19
-b Fk(text)h Fu(is)f(the)g(\014lename)h(to)e(b)q(e)195
-654 y(quoted.)39 b(The)21 b Fk(matc)o(h)p 607 654 V 16
-w(t)o(yp)q(e)j Fu(is)e(either)g Ft(SINGLE_MATCH)p Fu(,)f(if)h(there)f
-(is)h(only)g(one)g(completion)195 708 y(matc)o(h,)15
-b(or)g Ft(MULT_MATCH)p Fu(.)20 b(Some)c(functions)g(use)g(this)g(to)f
-(decide)j(whether)e(or)f(not)g(to)g(insert)h(a)195 763
-y(closing)c(quote)e(c)o(haracter.)18 b(The)11 b Fk(quote)p
-877 763 V 16 w(p)q(oin)o(ter)k Fu(is)c(a)f(p)q(oin)o(ter)i(to)e(an)o(y)
-g(op)q(ening)i(quote)f(c)o(haracter)195 818 y(the)k(user)h(t)o(yp)q
-(ed.)k(Some)15 b(functions)h(c)o(ho)q(ose)f(to)g(reset)g(this)g(c)o
-(haracter.)1773 938 y(V)l(ariable)-1861 b Fi(rl_dequote_func_t)22
-b(*)d Fh(rl)p 626 938 18 3 v 21 w(\014lename)p 855 938
-V 20 w(dequoting)p 1122 938 V 21 w(function)195 993 y
-Fu(A)c(p)q(oin)o(ter)g(to)f(a)h(function)g(that)g(will)h(remo)o(v)o(e)e
-(application-sp)q(eci\014)q(c)k(quoting)d(c)o(haracters)f(from)195
-1048 y(a)i(\014lename)h(b)q(efore)g(completion)g(is)g(attempted,)f(so)f
-(those)h(c)o(haracters)g(do)g(not)g(in)o(terfere)h(with)195
-1103 y(matc)o(hing)i(the)g(text)g(against)f(names)h(in)h(the)f
-(\014lesystem.)33 b(It)19 b(is)g(called)i(with)e Fk(text)p
-Fu(,)g(the)g(text)195 1158 y(of)i(the)g(w)o(ord)g(to)g(b)q(e)h
-(dequoted,)h(and)e Fk(quote)p 1009 1158 14 2 v 17 w(c)o(har)p
-Fu(,)h(whic)o(h)g(is)g(the)f(quoting)h(c)o(haracter)f(that)195
-1212 y(delimits)d(the)e(\014lename)i(\(usually)f(`)p
-Ft(')p Fu(')f(or)f(`)p Ft(")p Fu('\).)22 b(If)17 b Fk(quote)p
-1187 1212 V 16 w(c)o(har)i Fu(is)e(zero,)f(the)g(\014lename)i(w)o(as)d
-(not)195 1267 y(in)h(an)f(em)o(b)q(edded)i(string.)1773
-1388 y(V)l(ariable)-1861 b Fi(rl_linebuf_func_t)22 b(*)d
-Fh(rl)p 626 1388 18 3 v 21 w(c)n(har)p 754 1388 V 21
-w(is)p 813 1388 V 21 w(quoted)p 1005 1388 V 21 w(p)195
-1443 y Fu(A)f(p)q(oin)o(ter)h(to)f(a)g(function)h(to)f(call)i(that)d
-(determines)j(whether)e(or)g(not)g(a)g(sp)q(eci\014c)j(c)o(haracter)195
-1497 y(in)d(the)f(line)i(bu\013er)e(is)h(quoted,)g(according)f(to)g
-(whatev)o(er)f(quoting)i(mec)o(hanism)g(the)f(program)195
-1552 y(calling)d(Readline)g(uses.)19 b(The)13 b(function)g(is)g(called)
-h(with)f(t)o(w)o(o)e(argumen)o(ts:)17 b Fk(text)p Fu(,)12
-b(the)h(text)f(of)g(the)195 1607 y(line,)17 b(and)e Fk(index)p
-Fu(,)i(the)e(index)i(of)e(the)g(c)o(haracter)g(in)h(the)g(line.)22
-b(It)15 b(is)h(used)g(to)f(decide)i(whether)e(a)195 1662
-y(c)o(haracter)f(found)i(in)g Ft(rl_completer_word_break_)o(charact)o
-(ers)c Fu(should)k(b)q(e)g(used)g(to)e(break)195 1717
-y(w)o(ords)g(for)h(the)g(completer.)1773 1837 y(V)l(ariable)-1861
-b Fi(rl_compignore_func_t)22 b(*)d Fh(rl)p 704 1837 V
-22 w(ignore)p 881 1837 V 20 w(some)p 1028 1837 V 19 w(completions)p
-1344 1837 V 21 w(function)195 1892 y Fu(This)g(function,)i(if)e
-(de\014ned,)i(is)e(called)h(b)o(y)f(the)g(completer)g(when)h(real)f
-(\014lename)h(completion)195 1947 y(is)e(done,)f(after)f(all)i(the)f
-(matc)o(hing)g(names)g(ha)o(v)o(e)g(b)q(een)h(generated.)25
-b(It)17 b(is)h(passed)f(a)g Ft(NULL)f Fu(ter-)195 2001
-y(minated)g(arra)o(y)e(of)h(matc)o(hes.)20 b(The)c(\014rst)f(elemen)o
-(t)h(\()p Ft(matches[0])p Fu(\))d(is)j(the)g(maximal)g(substring)195
-2056 y(common)e(to)g(all)h(matc)o(hes.)k(This)c(function)g(can)g
-(re-arrange)f(the)g(list)h(of)f(matc)o(hes)g(as)g(required,)195
-2111 y(but)h(eac)o(h)h(elemen)o(t)g(deleted)g(from)f(the)g(arra)o(y)f
-(m)o(ust)g(b)q(e)i(freed.)1773 2232 y(V)l(ariable)-1861
-b Fi(rl_icppfunc_t)21 b(*)e Fh(rl)p 521 2232 V 21 w(directory)p
-769 2232 V 22 w(completion)p 1065 2232 V 21 w(ho)r(ok)195
-2286 y Fu(This)k(function,)i(if)e(de\014ned,)j(is)d(allo)o(w)o(ed)g(to)
-f(mo)q(dify)h(the)g(directory)g(p)q(ortion)g(of)f(\014lenames)195
-2341 y(Readline)e(completes.)29 b(It)19 b(is)f(called)i(with)f(the)f
-(address)h(of)e(a)h(string)h(\(the)f(curren)o(t)g(directory)195
-2396 y(name\))g(as)g(an)h(argumen)o(t,)f(and)h(ma)o(y)f(mo)q(dify)h
-(that)f(string.)30 b(If)19 b(the)f(string)h(is)g(replaced)h(with)195
-2451 y(a)g(new)g(string,)h(the)f(old)g(v)m(alue)h(should)g(b)q(e)g
-(freed.)34 b(An)o(y)20 b(mo)q(di\014ed)i(directory)e(name)g(should)195
-2506 y(ha)o(v)o(e)14 b(a)g(trailing)i(slash.)k(The)15
-b(mo)q(di\014ed)h(v)m(alue)g(will)g(b)q(e)f(displa)o(y)o(ed)h(as)e
-(part)g(of)h(the)f(completion,)195 2560 y(replacing)h(the)g(directory)f
-(p)q(ortion)g(of)g(the)g(pathname)g(the)h(user)f(t)o(yp)q(ed.)20
-b(It)14 b(returns)g(an)g(in)o(teger)195 2615 y(that)i(should)h(b)q(e)g
-(non-zero)g(if)g(the)g(function)g(mo)q(di\014es)h(its)e(directory)h
-(argumen)o(t.)23 b(It)17 b(could)g(b)q(e)195 2670 y(used)f(to)e(expand)
-i(sym)o(b)q(olic)h(links)f(or)f(shell)i(v)m(ariables)f(in)g(pathnames.)
-p eop
-%%Page: 45 47
-45 46 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(45)1773 149 y(V)l(ariable)-1861 b Fi
-(rl_compdisp_func_t)22 b(*)d Fh(rl)p 652 149 18 3 v 21
-w(completion)p 947 149 V 21 w(displa)n(y)p 1141 149 V
-22 w(matc)n(hes)p 1366 149 V 21 w(ho)r(ok)195 204 y Fu(If)11
-b(non-zero,)h(then)f(this)h(is)f(the)g(address)g(of)g(a)g(function)g
-(to)g(call)h(when)f(completing)i(a)d(w)o(ord)h(w)o(ould)195
-259 y(normally)h(displa)o(y)g(the)f(list)h(of)f(p)q(ossible)h(matc)o
-(hes.)18 b(This)12 b(function)g(is)g(called)g(in)g(lieu)h(of)e
-(Readline)195 314 y(displa)o(ying)21 b(the)d(list.)32
-b(It)19 b(tak)o(es)f(three)h(argumen)o(ts:)26 b(\()p
-Ft(char)14 b(**)p Fk(matc)o(hes)p Fu(,)19 b Ft(int)f
-Fk(n)o(um)p 1688 314 14 2 v 17 w(matc)o(hes)p Fu(,)195
-369 y Ft(int)13 b Fk(max)p 368 369 V 16 w(length)p Fu(\))i(where)f
-Fk(matc)o(hes)h Fu(is)f(the)g(arra)o(y)f(of)g(matc)o(hing)h(strings,)g
-Fk(n)o(um)p 1578 369 V 16 w(matc)o(hes)i Fu(is)e(the)195
-423 y(n)o(um)o(b)q(er)h(of)f(strings)h(in)h(that)e(arra)o(y)l(,)f(and)i
-Fk(max)p 1012 423 V 16 w(length)h Fu(is)f(the)g(length)g(of)g(the)f
-(longest)h(string)g(in)195 478 y(that)e(arra)o(y)l(.)19
-b(Readline)c(pro)o(vides)g(a)e(con)o(v)o(enience)j(function,)f
-Ft(rl_display_match_list)p Fu(,)c(that)195 533 y(tak)o(es)17
-b(care)g(of)g(doing)h(the)f(displa)o(y)i(to)d(Readline's)j(output)e
-(stream.)26 b(That)16 b(function)j(ma)o(y)d(b)q(e)195
-588 y(called)h(from)d(this)i(ho)q(ok.)1773 704 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 704 18 3 v 21
-w(basic)p 580 704 V 21 w(w)n(ord)p 725 704 V 21 w(break)p
-886 704 V 20 w(c)n(haracters)195 759 y Fu(The)j(basic)h(list)g(of)f(c)o
-(haracters)f(that)g(signal)i(a)f(break)g(b)q(et)o(w)o(een)g(w)o(ords)g
-(for)f(the)h(completer)195 814 y(routine.)30 b(The)19
-b(default)g(v)m(alue)h(of)e(this)h(v)m(ariable)h(is)f(the)g(c)o
-(haracters)f(whic)o(h)h(break)g(w)o(ords)f(for)195 869
-y(completion)e(in)g(Bash:)k Ft(")15 b(\\t\\n\\"\\\\'`@$><=;|&{\(")p
-Fu(.)1773 985 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f
-Fh(rl)p 436 985 V 21 w(basic)p 580 985 V 21 w(quote)p
-740 985 V 21 w(c)n(haracters)195 1040 y Fu(A)c(list)h(of)f(quote)g(c)o
-(haracters)f(whic)o(h)i(can)g(cause)f(a)g(w)o(ord)g(break.)1773
-1156 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1156 V 21 w(completer)p 705 1156 V 21 w(w)n(ord)p
-850 1156 V 20 w(break)p 1010 1156 V 20 w(c)n(haracters)195
-1211 y Fu(The)33 b(list)g(of)f(c)o(haracters)g(that)f(signal)j(a)e
-(break)g(b)q(et)o(w)o(een)h(w)o(ords)f(for)g Ft(rl_complete_)195
-1266 y(internal\(\))p Fu(.)18 b(The)e(default)g(list)g(is)f(the)h(v)m
-(alue)g(of)f Ft(rl_basic_word_break_chara)o(cters)p Fu(.)1773
-1382 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1382 V 21 w(completer)p 705 1382 V 21 w(quote)p 865
-1382 V 20 w(c)n(haracters)195 1437 y Fu(A)e(list)h(of)e(c)o(haracters)g
-(whic)o(h)i(can)f(b)q(e)g(used)h(to)e(quote)h(a)f(substring)h(of)g(the)
-g(line.)26 b(Completion)195 1492 y(o)q(ccurs)13 b(on)h(the)f(en)o(tire)
-g(substring,)h(and)f(within)i(the)e(substring)g Ft
-(rl_completer_word_break_)195 1547 y(characters)j Fu(are)h(treated)g
-(as)h(an)o(y)f(other)g(c)o(haracter,)g(unless)i(they)e(also)h(app)q
-(ear)g(within)h(this)195 1601 y(list.)1773 1718 y(V)l(ariable)-1861
-b Fi(const)20 b(char)g(*)f Fh(rl)p 436 1718 V 21 w(\014lename)p
-665 1718 V 20 w(quote)p 824 1718 V 21 w(c)n(haracters)195
-1773 y Fu(A)e(list)h(of)e(c)o(haracters)g(that)g(cause)h(a)g
-(\014lename)h(to)e(b)q(e)i(quoted)e(b)o(y)h(the)g(completer)h(when)f
-(they)195 1828 y(app)q(ear)e(in)h(a)f(completed)h(\014lename.)21
-b(The)16 b(default)g(is)f(the)h(n)o(ull)g(string.)1773
-1944 y(V)l(ariable)-1861 b Fi(const)20 b(char)g(*)f Fh(rl)p
-436 1944 V 21 w(sp)r(ecial)p 623 1944 V 22 w(pre\014xes)195
-1999 y Fu(The)14 b(list)h(of)e(c)o(haracters)g(that)g(are)h(w)o(ord)f
-(break)h(c)o(haracters,)f(but)h(should)h(b)q(e)f(left)g(in)h
-Fk(text)f Fu(when)195 2054 y(it)f(is)f(passed)h(to)f(the)g(completion)h
-(function.)20 b(Programs)11 b(can)h(use)h(this)g(to)f(help)h(determine)
-h(what)195 2108 y(kind)i(of)e(completing)i(to)e(do.)19
-b(F)l(or)14 b(instance,)i(Bash)e(sets)h(this)g(v)m(ariable)h(to)e
-Ft(")p Fu($)p Ft(@")g Fu(so)g(that)g(it)h(can)195 2163
-y(complete)h(shell)h(v)m(ariables)f(and)g(hostnames.)1773
-2280 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 2280
-V 21 w(completion)p 510 2280 V 21 w(query)p 673 2280
-V 21 w(items)195 2334 y Fu(Up)e(to)g(this)g(man)o(y)g(items)g(will)i(b)
-q(e)f(displa)o(y)o(ed)g(in)g(resp)q(onse)g(to)e(a)h(p)q
-(ossible-completions)j(call.)195 2389 y(After)14 b(that,)f(w)o(e)h(ask)
-g(the)h(user)f(if)h(she)f(is)h(sure)g(she)f(w)o(an)o(ts)f(to)h(see)h
-(them)f(all.)20 b(The)15 b(default)g(v)m(alue)195 2444
-y(is)h(100.)1773 2560 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 2560 V 21 w(completion)p 510 2560 V 21
-w(app)r(end)p 715 2560 V 19 w(c)n(haracter)195 2615 y
-Fu(When)d(a)f(single)i(completion)g(alternativ)o(e)f(matc)o(hes)f(at)g
-(the)h(end)g(of)f(the)h(command)f(line,)j(this)195 2670
-y(c)o(haracter)10 b(is)h(app)q(ended)i(to)d(the)g(inserted)i
-(completion)g(text.)18 b(The)11 b(default)g(is)g(a)g(space)g(c)o
-(haracter)p eop
-%%Page: 46 48
-46 47 bop 75 -58 a Fu(46)1299 b(GNU)15 b(Readline)h(Library)195
-149 y(\(`)e('\).)19 b(Setting)14 b(this)f(to)g(the)g(n)o(ull)i(c)o
-(haracter)e(\(`)p Ft(\\0)p Fu('\))e(prev)o(en)o(ts)i(an)o(ything)h(b)q
-(eing)h(app)q(ended)f(auto-)195 204 y(matically)l(.)21
-b(This)15 b(can)f(b)q(e)h(c)o(hanged)g(in)g(custom)f(completion)i
-(functions)f(to)f(pro)o(vide)h(the)f(\\most)195 259 y(sensible)i(w)o
-(ord)c(separator)h(c)o(haracter")f(according)i(to)f(an)h
-(application-sp)q(eci\014c)j(command)c(line)195 314 y(syn)o(tax)h(sp)q
-(eci\014cation.)1773 423 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 423 18 3 v 21 w(completion)p 510 423 V
-21 w(suppress)p 746 423 V 19 w(app)r(end)195 478 y Fu(If)e(non-zero,)g
-Fk(rl)p 476 478 14 2 v 17 w(completion)p 709 478 V 18
-w(app)q(end)p 871 478 V 17 w(c)o(haracter)i Fu(is)f(not)e(app)q(ended)i
-(to)e(matc)o(hes)g(at)h(the)f(end)195 533 y(of)c(the)h(command)g(line,)
-h(as)f(describ)q(ed)h(ab)q(o)o(v)o(e.)k(It)14 b(is)h(set)e(to)g(0)h(b)q
-(efore)g(an)o(y)f(application-sp)q(eci)q(\014c)195 588
-y(completion)j(function)g(is)g(called.)1773 697 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 697 18 3 v 21 w(completion)p
-510 697 V 21 w(mark)p 662 697 V 19 w(symlink)p 875 697
-V 21 w(dirs)195 752 y Fu(If)c(non-zero,)g(a)g(slash)g(will)i(b)q(e)e
-(app)q(ended)i(to)d(completed)i(\014lenames)g(that)e(are)g(sym)o(b)q
-(olic)j(links)195 807 y(to)11 b(directory)i(names,)f(sub)s(ject)g(to)f
-(the)i(v)m(alue)g(of)f(the)g(user-settable)g Fk(mark-directories)j
-Fu(v)m(ariable.)195 862 y(This)i(v)m(ariable)h(exists)f(so)g(that)e
-(application)k(completion)f(functions)f(can)g(o)o(v)o(erride)g(the)f
-(user's)195 917 y(global)f(preference)g(\(set)e(via)h(the)g
-Fk(mark-symlink)o(ed-directories)k Fu(Readline)e(v)m(ariable\))f(if)f
-(appro-)195 971 y(priate.)20 b(This)15 b(v)m(ariable)g(is)g(set)f(to)f
-(the)i(user's)e(preference)j(b)q(efore)e(an)o(y)g(application)i
-(completion)195 1026 y(function)j(is)g(called,)h(so)e(unless)h(that)f
-(function)h(mo)q(di\014es)g(the)f(v)m(alue,)i(the)e(user's)g
-(preferences)195 1081 y(are)d(honored.)1773 1191 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1191 V 21 w(ignore)p 391 1191
-V 20 w(completion)p 685 1191 V 21 w(duplicates)195 1245
-y Fu(If)15 b(non-zero,)h(then)f(duplicates)i(in)f(the)f(matc)o(hes)g
-(are)g(remo)o(v)o(ed.)k(The)d(default)g(is)f(1.)1773
-1355 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p 215 1355
-V 21 w(\014lename)p 444 1355 V 20 w(completion)p 738
-1355 V 21 w(desired)195 1410 y Fu(Non-zero)c(means)g(that)f(the)h
-(results)g(of)g(the)g(matc)o(hes)f(are)h(to)f(b)q(e)i(treated)e(as)g
-(\014lenames.)23 b(This)195 1465 y(is)14 b Fl(always)j
-Fu(zero)c(on)g(en)o(try)l(,)g(and)h(can)f(only)h(b)q(e)g(c)o(hanged)f
-(within)i(a)e(completion)h(en)o(try)f(generator)195 1519
-y(function.)38 b(If)21 b(it)g(is)g(set)g(to)f(a)g(non-zero)h(v)m(alue,)
-i(directory)e(names)g(ha)o(v)o(e)g(a)f(slash)h(app)q(ended)195
-1574 y(and)d(Readline)h(attempts)d(to)h(quote)g(completed)i
-(\014lenames)f(if)g(they)g(con)o(tain)g(an)o(y)f(c)o(haracters)195
-1629 y(in)f Ft(rl_filename_quote_character)o(s)d Fu(and)i
-Ft(rl_filename_quoting_desired)d Fu(is)k(set)f(to)f(a)195
-1684 y(non-zero)h(v)m(alue.)1773 1793 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 1793 V 21 w(\014lename)p 444
-1793 V 20 w(quoting)p 653 1793 V 21 w(desired)195 1848
-y Fu(Non-zero)14 b(means)g(that)f(the)i(results)f(of)g(the)g(matc)o
-(hes)f(are)h(to)f(b)q(e)i(quoted)f(using)h(double)g(quotes)195
-1903 y(\(or)c(an)h(application-sp)q(eci\014)q(c)j(quoting)d(mec)o
-(hanism\))g(if)h(the)f(completed)h(\014lename)g(con)o(tains)f(an)o(y)
-195 1958 y(c)o(haracters)i(in)i Ft(rl_filename_quote_chars)p
-Fu(.)h(This)f(is)f Fl(always)k Fu(non-zero)d(on)f(en)o(try)l(,)f(and)i
-(can)195 2012 y(only)c(b)q(e)g(c)o(hanged)g(within)h(a)f(completion)g
-(en)o(try)g(generator)e(function.)20 b(The)12 b(quoting)g(is)g
-(e\013ected)195 2067 y(via)j(a)g(call)i(to)d(the)i(function)g(p)q(oin)o
-(ted)g(to)e(b)o(y)h Ft(rl_filename_quoting_function)p
-Fu(.)1773 2177 y(V)l(ariable)-1861 b Fi(int)20 b Fh(rl)p
-215 2177 V 21 w(attempted)p 495 2177 V 20 w(completion)p
-789 2177 V 21 w(o)n(v)n(er)195 2232 y Fu(If)47 b(an)g(application-sp)q
-(eci\014)q(c)j(completion)e(function)g(assigned)f(to)g
-Ft(rl_attempted_)195 2286 y(completion_function)24 b
-Fu(sets)i(this)h(v)m(ariable)h(to)e(a)g(non-zero)h(v)m(alue,)j
-(Readline)e(will)g(not)195 2341 y(p)q(erform)15 b(its)g(default)g
-(\014lename)h(completion)g(ev)o(en)f(if)g(the)g(application's)h
-(completion)g(function)195 2396 y(returns)f(no)g(matc)o(hes.)20
-b(It)15 b(should)h(b)q(e)g(set)f(only)h(b)o(y)f(an)g(application's)h
-(completion)h(function.)1773 2506 y(V)l(ariable)-1861
-b Fi(int)20 b Fh(rl)p 215 2506 V 21 w(completion)p 510
-2506 V 21 w(t)n(yp)r(e)195 2560 y Fu(Set)e(to)e(a)i(c)o(haracter)f
-(describing)i(the)e(t)o(yp)q(e)h(of)f(completion)i(Readline)g(is)f
-(curren)o(tly)g(attempt-)195 2615 y(ing;)g(see)f(the)f(description)i
-(of)f Ft(rl_complete_internal\(\))c Fu(\(see)k(Section)h(2.6.2)d
-([Completion)195 2670 y(F)l(unctions],)g(page)g(42\))g(for)f(the)h
-(list)h(of)f(c)o(haracters.)p eop
-%%Page: 47 49
-47 48 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(47)1773 149 y(V)l(ariable)-1861 b Fi(int)20
-b Fh(rl)p 215 149 18 3 v 21 w(inhibit)p 399 149 V 23
-w(completion)195 204 y Fu(If)14 b(this)h(v)m(ariable)g(is)g(non-zero,)f
-(completion)i(is)e(inhibited.)22 b(The)15 b(completion)g(c)o(haracter)e
-(will)j(b)q(e)195 259 y(inserted)g(as)f(an)o(y)g(other)g(b)q(ound)h(to)
-e Ft(self-insert)p Fu(.)75 371 y Fj(2.6.4)30 b(A)21 b(Short)f
-(Completion)g(Example)137 467 y Fu(Here)11 b(is)f(a)g(small)h
-(application)h(demonstrating)e(the)g(use)h(of)e(the)i(GNU)f(Readline)h
-(library)l(.)19 b(It)11 b(is)f(called)75 522 y Ft(fileman)p
-Fu(,)17 b(and)h(the)g(source)g(co)q(de)g(resides)h(in)f(`)p
-Ft(examples/fileman.c)p Fu('.)25 b(This)18 b(sample)g(application)75
-577 y(pro)o(vides)c(completion)g(of)e(command)h(names,)g(line)i
-(editing)g(features,)d(and)i(access)f(to)f(the)h(history)h(list.)p
-eop
-%%Page: 48 50
-48 49 bop 75 -58 a Fu(48)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Ft(/*)24 b(fileman.c)e(--)i(A)g(tiny)f(application)f(which)h
-(demonstrates)g(how)g(to)h(use)f(the)267 201 y(GNU)g(Readline)g
-(library.)46 b(This)24 b(application)e(interactively)g(allows)h(users)
-267 253 y(to)g(manipulate)g(files)g(and)g(their)g(modes.)h(*/)195
-357 y(#include)f(<stdio.h>)195 409 y(#include)g(<sys/types.h>)195
-461 y(#include)g(<sys/file.h>)195 513 y(#include)g(<sys/stat.h>)195
-565 y(#include)g(<sys/errno.h>)195 668 y(#include)g
-(<readline/readline.h>)195 720 y(#include)g(<readline/history.h>)195
-824 y(extern)g(char)g(*xmalloc)g(\(\);)195 928 y(/*)h(The)f(names)g(of)
-h(functions)e(that)i(actually)f(do)g(the)h(manipulation.)e(*/)195
-980 y(int)h(com_list)g(__P\(\(char)g(*\)\);)195 1032
-y(int)g(com_view)g(__P\(\(char)g(*\)\);)195 1083 y(int)g(com_rename)g
-(__P\(\(char)g(*\)\);)195 1135 y(int)g(com_stat)g(__P\(\(char)g(*\)\);)
-195 1187 y(int)g(com_pwd)g(__P\(\(char)g(*\)\);)195 1239
-y(int)g(com_delete)g(__P\(\(char)g(*\)\);)195 1291 y(int)g(com_help)g
-(__P\(\(char)g(*\)\);)195 1343 y(int)g(com_cd)g(__P\(\(char)g(*\)\);)
-195 1395 y(int)g(com_quit)g(__P\(\(char)g(*\)\);)195
-1499 y(/*)h(A)f(structure)g(which)g(contains)g(information)f(on)i(the)f
-(commands)g(this)g(program)267 1550 y(can)g(understand.)f(*/)195
-1654 y(typedef)h(struct)g({)243 1706 y(char)g(*name;)g(/*)h(User)f
-(printable)g(name)g(of)h(the)f(function.)g(*/)243 1758
-y(rl_icpfunc_t)f(*func;)h(/*)h(Function)e(to)i(call)f(to)h(do)f(the)h
-(job.)f(*/)243 1810 y(char)g(*doc;)g(/*)h(Documentation)e(for)h(this)h
-(function.)46 b(*/)195 1862 y(})24 b(COMMAND;)195 1966
-y(COMMAND)f(commands[])f(=)i({)243 2017 y({)f("cd",)h(com_cd,)f
-("Change)f(to)i(directory)f(DIR")g(},)243 2069 y({)g("delete",)g
-(com_delete,)f("Delete)h(FILE")h(},)243 2121 y({)f("help",)g(com_help,)
-g("Display)g(this)g(text")g(},)243 2173 y({)g("?",)h(com_help,)e
-("Synonym)h(for)h(`help'")f(},)243 2225 y({)g("list",)g(com_list,)g
-("List)g(files)g(in)h(DIR")f(},)243 2277 y({)g("ls",)h(com_list,)e
-("Synonym)h(for)g(`list'")g(},)243 2329 y({)g("pwd",)g(com_pwd,)g
-("Print)g(the)h(current)f(working)g(directory")f(},)243
-2381 y({)h("quit",)g(com_quit,)g("Quit)g(using)g(Fileman")g(},)243
-2433 y({)g("rename",)g(com_rename,)f("Rename)h(FILE)h(to)f(NEWNAME")g
-(},)243 2484 y({)g("stat",)g(com_stat,)g("Print)g(out)g(statistics)g
-(on)h(FILE")f(},)243 2536 y({)g("view",)g(com_view,)g("View)g(the)h
-(contents)e(of)i(FILE")f(},)243 2588 y({)g(\(char)h(*\)NULL,)f
-(\(rl_icpfunc_t)f(*\)NULL,)h(\(char)g(*\)NULL)g(})195
-2640 y(};)p eop
-%%Page: 49 51
-49 50 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(49)195 201 y Ft(/*)24 b(Forward)e(declarations.)h(*/)
-195 253 y(char)g(*stripwhite)g(\(\);)195 305 y(COMMAND)g(*find_command)
-f(\(\);)195 409 y(/*)i(The)f(name)g(of)h(this)f(program,)g(as)h(taken)f
-(from)g(argv[0].)g(*/)195 461 y(char)g(*progname;)195
-565 y(/*)h(When)f(non-zero,)g(this)g(means)g(the)g(user)h(is)f(done)h
-(using)f(this)g(program.)g(*/)195 616 y(int)g(done;)195
-720 y(char)g(*)195 772 y(dupstr)g(\(s\))314 824 y(int)h(s;)195
-876 y({)243 928 y(char)f(*r;)243 1032 y(r)g(=)h(xmalloc)f(\(strlen)g
-(\(s\))g(+)h(1\);)243 1083 y(strcpy)f(\(r,)g(s\);)243
-1135 y(return)g(\(r\);)195 1187 y(})195 1291 y(main)g(\(argc,)g(argv\))
-314 1343 y(int)h(argc;)314 1395 y(char)g(**argv;)195
-1447 y({)243 1499 y(char)f(*line,)g(*s;)243 1602 y(progname)f(=)i
-(argv[0];)243 1706 y(initialize_readline)d(\(\);)i(/*)h(Bind)f(our)h
-(completer.)e(*/)243 1810 y(/*)h(Loop)h(reading)f(and)g(executing)g
-(lines)g(until)g(the)g(user)h(quits.)f(*/)243 1862 y(for)g(\()h(;)g
-(done)f(==)h(0;)f(\))290 1914 y({)338 1966 y(line)g(=)h(readline)f
-(\("FileMan:)f("\);)338 2069 y(if)i(\(!line\))386 2121
-y(break;)338 2225 y(/*)g(Remove)f(leading)g(and)g(trailing)g
-(whitespace)f(from)i(the)f(line.)410 2277 y(Then,)g(if)h(there)f(is)g
-(anything)g(left,)g(add)h(it)f(to)h(the)f(history)g(list)410
-2329 y(and)g(execute)g(it.)h(*/)338 2381 y(s)g(=)g(stripwhite)e
-(\(line\);)338 2484 y(if)i(\(*s\))386 2536 y({)434 2588
-y(add_history)e(\(s\);)434 2640 y(execute_line)g(\(s\);)p
-eop
-%%Page: 50 52
-50 51 bop 75 -58 a Fu(50)1299 b(GNU)15 b(Readline)h(Library)386
-149 y Ft(})338 253 y(free)23 b(\(line\);)290 305 y(})243
-357 y(exit)g(\(0\);)195 409 y(})195 513 y(/*)h(Execute)e(a)i(command)f
-(line.)g(*/)195 565 y(int)195 616 y(execute_line)f(\(line\))314
-668 y(char)i(*line;)195 720 y({)243 772 y(register)e(int)i(i;)243
-824 y(COMMAND)f(*command;)243 876 y(char)g(*word;)243
-980 y(/*)g(Isolate)g(the)h(command)f(word.)g(*/)243 1032
-y(i)g(=)h(0;)243 1083 y(while)f(\(line[i])g(&&)g(whitespace)g
-(\(line[i]\)\))290 1135 y(i++;)243 1187 y(word)g(=)h(line)f(+)h(i;)243
-1291 y(while)f(\(line[i])g(&&)g(!whitespace)g(\(line[i]\)\))290
-1343 y(i++;)243 1447 y(if)g(\(line[i]\))290 1499 y(line[i++])g(=)h
-('\\0';)243 1602 y(command)f(=)g(find_command)g(\(word\);)243
-1706 y(if)g(\(!command\))290 1758 y({)338 1810 y(fprintf)g(\(stderr,)g
-("\045s:)g(No)h(such)f(command)g(for)g(FileMan.\\n",)g(word\);)338
-1862 y(return)g(\(-1\);)290 1914 y(})243 2017 y(/*)g(Get)h(argument)f
-(to)g(command,)g(if)g(any.)h(*/)243 2069 y(while)f(\(whitespace)f
-(\(line[i]\)\))290 2121 y(i++;)243 2225 y(word)h(=)h(line)f(+)h(i;)243
-2329 y(/*)f(Call)h(the)f(function.)g(*/)243 2381 y(return)g
-(\(\(*\(command->func\)\))e(\(word\)\);)195 2433 y(})195
-2536 y(/*)j(Look)f(up)g(NAME)h(as)f(the)h(name)f(of)h(a)f(command,)g
-(and)h(return)f(a)g(pointer)g(to)h(that)267 2588 y(command.)46
-b(Return)23 b(a)h(NULL)f(pointer)g(if)h(NAME)f(isn't)g(a)h(command)f
-(name.)g(*/)195 2640 y(COMMAND)g(*)p eop
-%%Page: 51 53
-51 52 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(51)195 149 y Ft(find_command)22 b(\(name\))314
-201 y(char)i(*name;)195 253 y({)243 305 y(register)e(int)i(i;)243
-409 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290
-461 y(if)i(\(strcmp)f(\(name,)g(commands[i].name\))f(==)h(0\))338
-513 y(return)g(\(&commands[i]\);)243 616 y(return)g(\(\(COMMAND)f
-(*\)NULL\);)195 668 y(})195 772 y(/*)i(Strip)f(whitespace)f(from)i(the)
-f(start)g(and)h(end)f(of)h(STRING.)46 b(Return)24 b(a)f(pointer)267
-824 y(into)g(STRING.)g(*/)195 876 y(char)g(*)195 928
-y(stripwhite)f(\(string\))314 980 y(char)i(*string;)195
-1032 y({)243 1083 y(register)e(char)i(*s,)f(*t;)243 1187
-y(for)g(\(s)h(=)f(string;)g(whitespace)g(\(*s\);)g(s++\))290
-1239 y(;)243 1343 y(if)g(\(*s)h(==)f(0\))290 1395 y(return)g(\(s\);)243
-1499 y(t)g(=)h(s)g(+)g(strlen)f(\(s\))g(-)h(1;)243 1550
-y(while)f(\(t)g(>)h(s)g(&&)g(whitespace)e(\(*t\)\))290
-1602 y(t--;)243 1654 y(*++t)h(=)h('\\0';)243 1758 y(return)f(s;)195
-1810 y(})195 1914 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)195 1966 y(/*)1575
-b(*/)195 2017 y(/*)429 b(Interface)23 b(to)g(Readline)g(Completion)381
-b(*/)195 2069 y(/*)1575 b(*/)195 2121 y(/*)24 b
-(***********************)o(*******)o(********)o(*******)o(*******)o
-(********)o(****)d(*/)195 2225 y(char)i(*command_generator)f
-(__P\(\(const)g(char)i(*,)f(int\)\);)195 2277 y(char)g
-(**fileman_completion)e(__P\(\(const)i(char)g(*,)h(int,)f(int\)\);)195
-2381 y(/*)h(Tell)f(the)g(GNU)h(Readline)f(library)f(how)i(to)g
-(complete.)46 b(We)24 b(want)f(to)h(try)f(to)267 2433
-y(complete)f(on)i(command)f(names)g(if)h(this)f(is)h(the)f(first)g
-(word)g(in)h(the)g(line,)f(or)267 2484 y(on)g(filenames)g(if)g(not.)h
-(*/)195 2536 y(initialize_readline)d(\(\))195 2588 y({)243
-2640 y(/*)i(Allow)g(conditional)g(parsing)g(of)g(the)h(~/.inputrc)e
-(file.)h(*/)p eop
-%%Page: 52 54
-52 53 bop 75 -58 a Fu(52)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(rl_readline_name)21 b(=)j("FileMan";)243 253
-y(/*)f(Tell)h(the)f(completer)g(that)g(we)h(want)f(a)h(crack)f(first.)g
-(*/)243 305 y(rl_attempted_completion_)o(functio)o(n)e(=)j
-(fileman_completion;)195 357 y(})195 461 y(/*)g(Attempt)e(to)i
-(complete)f(on)g(the)h(contents)f(of)g(TEXT.)47 b(START)23
-b(and)h(END)267 513 y(bound)f(the)g(region)g(of)h(rl_line_buffer)e
-(that)h(contains)g(the)g(word)h(to)267 565 y(complete.)46
-b(TEXT)23 b(is)h(the)f(word)h(to)f(complete.)47 b(We)23
-b(can)h(use)f(the)h(entire)267 616 y(contents)e(of)i(rl_line_buffer)e
-(in)h(case)h(we)f(want)h(to)f(do)h(some)f(simple)267
-668 y(parsing.)46 b(Returnthe)23 b(array)g(of)h(matches,)e(or)i(NULL)f
-(if)h(there)f(aren't)g(any.)g(*/)195 720 y(char)g(**)195
-772 y(fileman_completion)e(\(text,)i(start,)g(end\))314
-824 y(const)g(char)h(*text;)314 876 y(int)g(start,)f(end;)195
-928 y({)243 980 y(char)g(**matches;)243 1083 y(matches)g(=)g(\(char)h
-(**\)NULL;)243 1187 y(/*)f(If)h(this)f(word)h(is)f(at)h(the)f(start)g
-(of)h(the)f(line,)h(then)f(it)g(is)h(a)g(command)314
-1239 y(to)g(complete.)46 b(Otherwise)23 b(it)h(is)f(the)h(name)f(of)h
-(a)f(file)h(in)f(the)h(current)314 1291 y(directory.)f(*/)243
-1343 y(if)g(\(start)g(==)h(0\))290 1395 y(matches)f(=)h
-(rl_completion_matches)d(\(text,)i(command_generator\);)243
-1499 y(return)g(\(matches\);)195 1550 y(})195 1654 y(/*)h(Generator)e
-(function)h(for)g(command)g(completion.)47 b(STATE)23
-b(lets)g(us)267 1706 y(know)g(whether)g(to)g(start)h(from)f(scratch;)g
-(without)g(any)g(state)267 1758 y(\(i.e.)g(STATE)g(==)h(0\),)f(then)g
-(we)h(start)f(at)h(the)f(top)h(of)f(the)h(list.)f(*/)195
-1810 y(char)g(*)195 1862 y(command_generator)f(\(text,)h(state\))314
-1914 y(const)g(char)h(*text;)314 1966 y(int)g(state;)195
-2017 y({)243 2069 y(static)f(int)g(list_index,)g(len;)243
-2121 y(char)g(*name;)243 2225 y(/*)g(If)h(this)f(is)h(a)g(new)f(word)g
-(to)h(complete,)f(initialize)f(now.)47 b(This)314 2277
-y(includes)23 b(saving)g(the)h(length)f(of)g(TEXT)h(for)f(efficiency,)f
-(and)314 2329 y(initializing)h(the)g(index)g(variable)g(to)h(0.)f(*/)
-243 2381 y(if)g(\(!state\))290 2433 y({)338 2484 y(list_index)g(=)g(0;)
-338 2536 y(len)h(=)f(strlen)g(\(text\);)290 2588 y(})p
-eop
-%%Page: 53 55
-53 54 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(53)243 149 y Ft(/*)23 b(Return)g(the)h(next)f(name)g
-(which)h(partially)e(matches)h(from)g(the)314 201 y(command)g(list.)g
-(*/)243 253 y(while)g(\(name)g(=)h(commands[list_index].name)o(\))290
-305 y({)338 357 y(list_index++;)338 461 y(if)g(\(strncmp)f(\(name,)g
-(text,)g(len\))g(==)h(0\))386 513 y(return)f(\(dupstr\(name\)\);)290
-565 y(})243 668 y(/*)g(If)h(no)f(names)h(matched,)e(then)i(return)f
-(NULL.)g(*/)243 720 y(return)g(\(\(char)g(*\)NULL\);)195
-772 y(})195 876 y(/*)h(***********************)o(*******)o(********)o
-(*******)o(*******)o(********)o(****)d(*/)195 928 y(/*)1575
-b(*/)195 980 y(/*)549 b(FileMan)22 b(Commands)644 b(*/)195
-1032 y(/*)1575 b(*/)195 1083 y(/*)24 b(***********************)o
-(*******)o(********)o(*******)o(*******)o(********)o(****)d(*/)195
-1187 y(/*)j(String)f(to)g(pass)h(to)f(system)g(\(\).)47
-b(This)24 b(is)f(for)h(the)f(LIST,)g(VIEW)h(and)f(RENAME)267
-1239 y(commands.)f(*/)195 1291 y(static)h(char)g(syscom[1024];)195
-1395 y(/*)h(List)f(the)g(file\(s\))g(named)g(in)h(arg.)f(*/)195
-1447 y(com_list)g(\(arg\))314 1499 y(char)h(*arg;)195
-1550 y({)243 1602 y(if)f(\(!arg\))290 1654 y(arg)h(=)g("";)243
-1758 y(sprintf)f(\(syscom,)f("ls)i(-FClg)f(\045s",)g(arg\);)243
-1810 y(return)g(\(system)g(\(syscom\)\);)195 1862 y(})195
-1966 y(com_view)g(\(arg\))314 2017 y(char)h(*arg;)195
-2069 y({)243 2121 y(if)f(\(!valid_argument)f(\("view",)h(arg\)\))290
-2173 y(return)g(1;)243 2277 y(sprintf)g(\(syscom,)f("more)i(\045s",)f
-(arg\);)243 2329 y(return)g(\(system)g(\(syscom\)\);)195
-2381 y(})195 2484 y(com_rename)f(\(arg\))314 2536 y(char)i(*arg;)195
-2588 y({)243 2640 y(too_dangerous)e(\("rename"\);)p eop
-%%Page: 54 56
-54 55 bop 75 -58 a Fu(54)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(return)23 b(\(1\);)195 201 y(})195 305 y(com_stat)g(\(arg\))
-314 357 y(char)h(*arg;)195 409 y({)243 461 y(struct)f(stat)g(finfo;)243
-565 y(if)g(\(!valid_argument)f(\("stat",)h(arg\)\))290
-616 y(return)g(\(1\);)243 720 y(if)g(\(stat)g(\(arg,)h(&finfo\))f(==)g
-(-1\))290 772 y({)338 824 y(perror)g(\(arg\);)338 876
-y(return)g(\(1\);)290 928 y(})243 1032 y(printf)g(\("Statistics)f(for)h
-(`\045s':\\n",)g(arg\);)243 1135 y(printf)g(\("\045s)g(has)h(\045d)f
-(link\045s,)g(and)g(is)h(\045d)g(byte\045s)f(in)g(length.\\n",)g(arg,)
-434 1187 y(finfo.st_nlink,)434 1239 y(\(finfo.st_nlink)e(==)j(1\))g(?)f
-("")h(:)g("s",)434 1291 y(finfo.st_size,)434 1343 y(\(finfo.st_size)e
-(==)h(1\))h(?)f("")h(:)g("s"\);)243 1395 y(printf)f(\("Inode)g(Last)g
-(Change)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_ctime\)\);)243
-1447 y(printf)g(\(")143 b(Last)23 b(access)g(at:)g(\045s",)h(ctime)f
-(\(&finfo.st_atime\)\);)243 1499 y(printf)g(\(")95 b(Last)23
-b(modified)g(at:)g(\045s",)h(ctime)f(\(&finfo.st_mtime\)\);)243
-1550 y(return)g(\(0\);)195 1602 y(})195 1706 y(com_delete)f(\(arg\))314
-1758 y(char)i(*arg;)195 1810 y({)243 1862 y(too_dangerous)e
-(\("delete"\);)243 1914 y(return)h(\(1\);)195 1966 y(})195
-2069 y(/*)h(Print)f(out)g(help)h(for)f(ARG,)g(or)h(for)f(all)h(of)f
-(the)h(commands)f(if)g(ARG)h(is)267 2121 y(not)f(present.)g(*/)195
-2173 y(com_help)g(\(arg\))314 2225 y(char)h(*arg;)195
-2277 y({)243 2329 y(register)e(int)i(i;)243 2381 y(int)f(printed)g(=)h
-(0;)243 2484 y(for)f(\(i)h(=)f(0;)h(commands[i].name;)e(i++\))290
-2536 y({)338 2588 y(if)i(\(!*arg)f(||)g(\(strcmp)g(\(arg,)g
-(commands[i].name\))f(==)i(0\)\))386 2640 y({)p eop
-%%Page: 55 57
-55 56 bop 75 -58 a Fu(Chapter)15 b(2:)k(Programming)c(with)g(GNU)g
-(Readline)843 b(55)434 149 y Ft(printf)23 b(\("\045s\\t\\t\045s.\\n",)e
-(commands[i].name,)h(commands[i].doc\);)434 201 y(printed++;)386
-253 y(})290 305 y(})243 409 y(if)h(\(!printed\))290 461
-y({)338 513 y(printf)g(\("No)h(commands)e(match)h(`\045s'.)48
-b(Possibilties)22 b(are:\\n",)h(arg\);)338 616 y(for)h(\(i)f(=)h(0;)g
-(commands[i].name;)d(i++\))386 668 y({)434 720 y(/*)i(Print)g(in)h(six)
-f(columns.)g(*/)434 772 y(if)g(\(printed)g(==)h(6\))481
-824 y({)529 876 y(printed)f(=)h(0;)529 928 y(printf)f(\("\\n"\);)481
-980 y(})434 1083 y(printf)g(\("\045s\\t",)f(commands[i].name\);)434
-1135 y(printed++;)386 1187 y(})338 1291 y(if)i(\(printed\))386
-1343 y(printf)f(\("\\n"\);)290 1395 y(})243 1447 y(return)g(\(0\);)195
-1499 y(})195 1602 y(/*)h(Change)f(to)g(the)h(directory)e(ARG.)i(*/)195
-1654 y(com_cd)f(\(arg\))314 1706 y(char)h(*arg;)195 1758
-y({)243 1810 y(if)f(\(chdir)g(\(arg\))h(==)f(-1\))290
-1862 y({)338 1914 y(perror)g(\(arg\);)338 1966 y(return)g(1;)290
-2017 y(})243 2121 y(com_pwd)g(\(""\);)243 2173 y(return)g(\(0\);)195
-2225 y(})195 2329 y(/*)h(Print)f(out)g(the)h(current)f(working)f
-(directory.)h(*/)195 2381 y(com_pwd)g(\(ignore\))314
-2433 y(char)h(*ignore;)195 2484 y({)243 2536 y(char)f(dir[1024],)g(*s;)
-243 2640 y(s)g(=)h(getcwd)f(\(dir,)g(sizeof\(dir\))g(-)g(1\);)p
-eop
-%%Page: 56 58
-56 57 bop 75 -58 a Fu(56)1299 b(GNU)15 b(Readline)h(Library)243
-149 y Ft(if)23 b(\(s)h(==)f(0\))290 201 y({)338 253 y(printf)g
-(\("Error)g(getting)g(pwd:)g(\045s\\n",)g(dir\);)338
-305 y(return)g(1;)290 357 y(})243 461 y(printf)g(\("Current)f
-(directory)h(is)h(\045s\\n",)f(dir\);)243 513 y(return)g(0;)195
-565 y(})195 668 y(/*)h(The)f(user)g(wishes)g(to)h(quit)f(using)g(this)h
-(program.)46 b(Just)24 b(set)f(DONE)267 720 y(non-zero.)f(*/)195
-772 y(com_quit)h(\(arg\))314 824 y(char)h(*arg;)195 876
-y({)243 928 y(done)f(=)h(1;)243 980 y(return)f(\(0\);)195
-1032 y(})195 1135 y(/*)h(Function)e(which)i(tells)f(you)g(that)g(you)h
-(can't)f(do)h(this.)f(*/)195 1187 y(too_dangerous)f(\(caller\))314
-1239 y(char)i(*caller;)195 1291 y({)243 1343 y(fprintf)f(\(stderr,)457
-1395 y("\045s:)h(Too)f(dangerous)g(for)g(me)h(to)g(distribute.\\n")457
-1447 y(caller\);)243 1499 y(fprintf)f(\(stderr,)f("Write)h(it)h
-(yourself.\\n"\);)195 1550 y(})195 1654 y(/*)g(Return)f(non-zero)f(if)i
-(ARG)f(is)h(a)g(valid)f(argument)g(for)g(CALLER,)267
-1706 y(else)g(print)g(an)h(error)f(message)g(and)g(return)g(zero.)g(*/)
-195 1758 y(int)195 1810 y(valid_argument)f(\(caller,)h(arg\))314
-1862 y(char)h(*caller,)e(*arg;)195 1914 y({)243 1966
-y(if)h(\(!arg)g(||)h(!*arg\))290 2017 y({)338 2069 y(fprintf)f
-(\(stderr,)g("\045s:)g(Argument)g(required.\\n",)f(caller\);)338
-2121 y(return)h(\(0\);)290 2173 y(})243 2277 y(return)g(\(1\);)195
-2329 y(})p eop
-%%Page: 57 59
-57 58 bop 75 -58 a Fu(Concept)15 b(Index)1466 b(57)75
-149 y Fq(Concept)27 b(Index)75 321 y Fs(C)75 382 y Ff(command)14
-b(editing)e Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(1)75 511 y Fs(E)75 572 y Ff(editing)15 b(command)f(lines)f
-Fe(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)24 b Ff(1)75 702 y Fs(I)75
-763 y Ff(initiali)q(zati)q(on)16 b(\014le,)e(readline)t
-Fe(.)8 b(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)17 b Ff(4)75 808 y(in)o(teraction,)e(readline)5
-b Fe(.)j(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(1)75
-938 y Fs(K)75 999 y Ff(kill)d(ring)8 b Fe(.)f(.)f(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20
-b Ff(3)75 1044 y(killing)c(text)9 b Fe(.)d(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(2)1012 321
-y Fs(N)1012 390 y Ff(notation,)15 b(readline)7 b Fe(.)h(.)e(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(1)1012 539 y Fs(R)1012
-608 y Ff(readline,)15 b(function)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)21 b Ff(21)1012 757 y Fs(V)1012 826 y Ff(v)n(ariables,)15
-b(readline)t Fe(.)9 b(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)17
-b Ff(4)1012 976 y Fs(Y)1012 1044 y Ff(y)o(anking)e(text)t
-Fe(.)7 b(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)17
-b Ff(2)p eop
-%%Page: 58 60
-58 59 bop 75 -58 a Fu(58)1299 b(GNU)15 b(Readline)h(Library)p
-eop
-%%Page: 59 61
-59 60 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
-b(59)75 149 y Fq(F)-7 b(unction)26 b(and)h(V)-7 b(ariable)26
-b(Index)p 79 307 21 3 v 75 369 a Fd(_rl_digit_)o(p)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(36)75 415 y Fd(_rl_digit_)o(va)o(lue)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)20 b Ff(37)75 462 y Fd(_rl_lowerc)o(as)o(e_p)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(36)75
-508 y Fd(_rl_to_low)o(er)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)22 b Ff(36)75 554 y Fd(_rl_to_upp)o(er)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(36)75 600 y Fd(_rl_upperc)o(as)o(e_p)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)20 b Ff(36)75 733 y Fs(A)75 794 y
-Fd(abort)11 b(\(C-g\))5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)17 b Ff(17)75 841 y Fd(accept-lin)o(e)10
-b(\(Newline)f(or)j(Return\))6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)19 b Ff(12)75 973 y Fs(B)75 1035 y Fd(backward-c)o(ha)o(r)10
-b(\(C-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(12)75
-1081 y Fd(backward-d)o(el)o(ete)o(-c)o(har)9 b(\(Rubout\))e
-Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(14)75 1127 y Fd(backward-k)o(il)o(l-l)o(in)o(e)10
-b(\(C-x)h(Rubout\))e Fe(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(15)75 1174 y Fd(backward-k)o(il)o(l-w)o(or)o(d)10
-b(\(M-)501 1172 y Fn(h)p 512 1146 73 2 v 512 1174 a Fm(DEL)p
-512 1181 V 583 1172 a Fn(i)598 1174 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)23 b Ff(15)75 1220 y
-Fd(backward-w)o(or)o(d)10 b(\(M-b\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21
-b Ff(12)75 1266 y Fd(beginning-)o(of)o(-hi)o(st)o(ory)9
-b(\(M-<\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)25 b Ff(13)75 1312 y Fd(beginning-)o(of)o(-li)o(ne)9
-b(\(C-a\))c Fe(.)t(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(12)75 1359 y(b)q(ell-st)o(yle)7
-b Fe(.)i(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)20 b Ff(5)75 1490 y Fs(C)75 1552 y Fd(call-last-)o(kb)o(d-m)
-o(ac)o(ro)9 b(\(C-x)j(e\))5 b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)18 b Ff(17)75 1598 y Fd(capitalize)o(-w)o(ord)9
-b(\(M-c\))d Fe(.)f(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(14)75 1644 y Fd(character-)o(se)
-o(arc)o(h)10 b(\(C-]\))c Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)18 b Ff(18)75
-1691 y Fd(character-)o(se)o(arc)o(h-)o(bac)o(kwa)o(rd)9
-b(\(M-C-]\))e Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)g(.)20
-b Ff(18)75 1737 y Fd(clear-scre)o(en)9 b(\(C-l\))g Fe(.)t(.)d(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)21 b Ff(12)75 1783 y(commen)o(t-b)q(egin)9
-b Fe(.)f(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)21
-b Ff(5)75 1829 y Fd(complete)10 b(\()265 1827 y Fn(h)p
-276 1801 74 2 v 276 1829 a Fm(T)m(AB)p 276 1837 V 348
-1827 a Fn(i)363 1829 y Fd(\))f Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-22 b Ff(16)75 1875 y(completion-query-i)q(tems)t Fe(.)9
-b(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(5)75 1922 y(con)o(v)o(ert-meta)10
-b Fe(.)c(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
-b Ff(5)75 1968 y Fd(copy-backw)o(ar)o(d-w)o(or)o(d)10
-b(\(\))c Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)75 2014 y Fd(copy-forwa)o(rd)o
-(-wo)o(rd)9 b(\(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(16)75
-2060 y Fd(copy-regio)o(n-)o(as-)o(ki)o(ll)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(15)75 2193 y Fs(D)75 2255 y Fd(delete-cha)o(r)10
-b(\(C-d\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(14)75
-2301 y Fd(delete-cha)o(r-)o(or-)o(li)o(st)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(17)75 2347 y Fd(delete-hor)o(iz)o(ont)o(al)o
-(-sp)o(ace)9 b(\(\))i Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)25 b Ff(15)75 2393 y Fd(digit-argu)o(me)o(nt)9
-b(\()p Fc(M-0)p Fd(,)i Fc(M-1)p Fd(,)h(...)f Fc(M--)p
-Fd(\))c Fe(.)e(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(16)75
-2439 y(disable-comple)q(tion)9 b Fe(.)g(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)21 b Ff(5)75 2486 y Fd(do-upperca)o(se)o(-ve)o(rs)o(ion)9
-b(\(M-a,)i(M-b,)g(M-)p Fb(x)p Fd(,)h(...)o(\))159 2531
-y Fe(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(17)75 2578 y Fd(downcase-w)o(or)o(d)10
-b(\(M-l\))e Fe(.)t(.)e(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)21 b Ff(14)75
-2624 y Fd(dump-funct)o(io)o(ns)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)22 b Ff(18)75 2670 y Fd(dump-macro)o(s)10 b(\(\))g
-Fe(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)24 b Ff(18)1012
-307 y Fd(dump-variab)o(le)o(s)10 b(\(\))e Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)23 b Ff(18)1012 449 y Fs(E)1012 514 y Ff(editing-mo)q(de)12
-b Fe(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)22
-b Ff(5)1012 562 y Fd(emacs-editi)o(ng)o(-mo)o(de)9 b(\(C-e\))t
-Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)18 b Ff(18)1012 610 y(enable-k)o(eypad)9 b Fe(.)g(.)d(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(5)1012
-658 y Fd(end-kbd-mac)o(ro)9 b(\(C-x)i(\)\))e Fe(.)e(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)23
-b Ff(17)1012 706 y Fd(end-of-hist)o(or)o(y)10 b(\(M->\))d
-Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 754 y Fd(end-of-line)9
-b(\(C-e\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(12)1012
-802 y Fd(exchange-po)o(in)o(t-a)o(nd)o(-ma)o(rk)9 b(\(C-x)j(C-x\))c
-Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)24 b Ff(18)1012
-850 y(expand-tilde)6 b Fe(.)j(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)19 b Ff(5)1012 991 y Fs(F)1012 1056
-y Fd(forward-bac)o(kw)o(ard)o(-d)o(ele)o(te)o(-ch)o(ar)9
-b(\(\))f Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
-b Ff(14)1012 1104 y Fd(forward-cha)o(r)10 b(\(C-f\))f
-Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1152 y
-Fd(forward-sea)o(rc)o(h-h)o(is)o(tor)o(y)10 b(\(C-s\))e
-Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
-b Ff(13)1012 1200 y Fd(forward-wor)o(d)10 b(\(M-f\))f
-Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(12)1012 1334 y
-Fs(H)1012 1400 y Ff(history-preserv)o(e-p)q(oi)q(n)o(t)8
-b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21 b Ff(5)1012 1448 y
-Fd(history-sea)o(rc)o(h-b)o(ac)o(kwa)o(rd)9 b(\(\))i
-Fe(.)c(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)25
-b Ff(13)1012 1496 y Fd(history-sea)o(rc)o(h-f)o(or)o(war)o(d)10
-b(\(\))s Fe(.)c(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Ff(13)1012 1543 y(horizon)o(tal-scrol)q(l-mo)r(de)6
-b Fe(.)j(.)d(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(6)1012 1678 y
-Fs(I)1012 1743 y Ff(input-meta)8 b Fe(.)g(.)e(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012 1791
-y Fd(insert-comm)o(en)o(t)10 b(\(M-#\))d Fe(.)t(.)f(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(18)1012 1839 y Fd(insert-comp)o(le)o(tio)o(ns)9
-b(\(M-*\))t Fe(.)c(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)18 b Ff(16)1012 1887 y(isearc)o(h-terminators)t
-Fe(.)8 b(.)f(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)16 b Ff(6)1012
-2021 y Fs(K)1012 2087 y Ff(k)o(eymap)9 b Fe(.)e(.)f(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
-b Ff(6)1012 2135 y Fd(kill-line)10 b(\(C-k\))f Fe(.)d(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)24 b Ff(15)1012 2183 y Fd(kill-region)9
-b(\(\))i Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(15)1012 2231 y Fd(kill-whole-)o(li)o(ne)9 b(\(\))g
-Fe(.)c(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22 b Ff(15)1012 2278 y
-Fd(kill-word)10 b(\(M-d\))f Fe(.)d(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-24 b Ff(15)1012 2413 y Fs(M)1012 2478 y Ff(mark-mo)q(di\014ed-li)q(nes)
-8 b Fe(.)h(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(6)1012
-2526 y(mark-symlink)o(ed-di)q(rectori)q(es)14 b Fe(.)6
-b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)23 b Ff(6)1012 2574 y(matc)o(h-hidden-\014l)q(es)14
-b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)24 b Ff(6)1012
-2622 y Fd(menu-comple)o(te)9 b(\(\))g Fe(.)e(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)23 b Ff(16)1012 2670 y(meta-\015ag)t Fe(.)8 b(.)e(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18
-b Ff(6)p eop
-%%Page: 60 62
-60 61 bop 75 -58 a Fu(60)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fs(N)75 210 y Fd(next-histo)o(ry)9 b(\(C-n\))g
-Fe(.)t(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(13)75 256 y Fd(non-increm)o(en)o
-(tal)o(-f)o(orw)o(ard)o(-s)o(ear)o(ch)o(-hi)o(st)o(ory)9
-b(\(M-n\))159 302 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(13)75
-347 y Fd(non-increm)o(en)o(tal)o(-r)o(eve)o(rse)o(-s)o(ear)o(ch)o(-hi)o
-(st)o(ory)9 b(\(M-p\))159 393 y Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(13)75 515 y Fs(O)75 576 y Ff(output-meta)5 b Fe(.)i(.)f(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18 b Ff(6)75
-622 y Fd(overwrite-)o(mo)o(de)9 b(\(\))g Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)22 b Ff(15)75 744 y Fs(P)75 805 y Ff(page-completions)14
-b Fe(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23
-b Ff(7)75 851 y Fd(possible-c)o(om)o(ple)o(ti)o(ons)9
-b(\(M-?\))h Fe(.)c(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)25 b Ff(16)75 897 y Fd(prefix-met)o(a)10 b(\()324
-895 y Fn(h)p 335 868 70 2 v 335 897 a Fm(ESC)p 335 904
-V 402 895 a Fn(i)417 897 y Fd(\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23
-b Ff(17)75 942 y Fd(previous-h)o(is)o(tor)o(y)10 b(\(C-p\))c
-Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(12)75 1072 y Fs(Q)75 1133 y Fd(quoted-ins)o(er)o
-(t)10 b(\(C-q)h(or)h(C-v\))c Fe(.)e(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(14)75 1263 y Fs(R)75
-1323 y Fd(re-read-in)o(it)o(-fi)o(le)9 b(\(C-x)i(C-r\))5
-b Fe(.)h(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Ff(17)75 1369 y Fd(readline)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(21)75
-1415 y Fd(redraw-cur)o(re)o(nt-)o(li)o(ne)9 b(\(\))d
-Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)18 b Ff(12)75 1461 y Fd(reverse-se)o(ar)o(ch-)o(hi)o
-(sto)o(ry)9 b(\(C-r\))g Fe(.)d(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)23 b Ff(13)75 1506 y Fd(revert-lin)o(e)10
-b(\(M-r\))d Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(17)75
-1552 y Fd(rl_add_def)o(un)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)22 b Ff(28)75 1598 y Fd(rl_add_fun)o(ma)o(p_e)o(nt)o(ry)
-t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(31)75 1643 y Fd(rl_add_und)o(o)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(32)75 1689 y Fd(rl_alphabe)o(ti)o(c)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(36)75 1735 y Fd(rl_already)o(_p)o(rom)o
-(pt)o(ed)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(25)75
-1781 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_f)o(unc)o(ti)o(on)t
-Fe(.)s(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17 b Ff(43)75
-1826 y Fd(rl_attempt)o(ed)o(_co)o(mp)o(let)o(ion)o(_o)o(ver)6
-b Fe(.)s(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20
-b Ff(46)75 1872 y Fd(rl_basic_q)o(uo)o(te_)o(ch)o(ara)o(cte)o(rs)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-22 b Ff(45)75 1918 y Fd(rl_basic_w)o(or)o(d_b)o(re)o(ak_)o(cha)o(ra)o
-(cte)o(rs)5 b Fe(.)s(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)18
-b Ff(45)75 1964 y Fd(rl_begin_u)o(nd)o(o_g)o(ro)o(up)t
-Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(32)75 2009 y Fd(rl_bind_ke)o(y)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(30)75 2055 y Fd(rl_bind_ke)o(y_)o(in_)o(ma)o(p)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(30)75 2101 y
-Fd(rl_binding)o(_k)o(eym)o(ap)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
-b Ff(27)75 2146 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(ins)o(ta)o(ll)7
-b Fe(.)s(.)g(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(38)75 2192 y Fd(rl_callbac)o(k_)o(han)o(dl)o(er_)o(rem)o(ov)o(e)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
-b Ff(38)75 2238 y Fd(rl_callbac)o(k_)o(rea)o(d_)o(cha)o(r)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(38)75 2284 y Fd(rl_catch_s)o(ig)o(nal)o(s)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(40)75
-2329 y Fd(rl_catch_s)o(ig)o(win)o(ch)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)19 b Ff(40)75 2375 y Fd(rl_char_is)o(_q)o(uot)o(ed)o(_p)t
-Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(44)75 2421 y Fd(rl_cleanup)o(_a)o
-(fte)o(r_)o(sig)o(nal)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(40)75 2467 y
-Fd(rl_clear_m)o(es)o(sag)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-19 b Ff(33)75 2512 y Fd(rl_clear_p)o(en)o(din)o(g_)o(inp)o(ut)8
-b Fe(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)24 b Ff(35)1012 149 y Fd(rl_clear_si)o(gn)o(als)6
-b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(41)1012
-196 y Fd(rl_complete)6 b Fe(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)24 b Ff(42)1012 242 y Fd(rl_complete)o(_i)o(nte)o(rn)o(al)s
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(42)1012 288 y Fd(rl_complete)o(r_)o
-(quo)o(te)o(_ch)o(ar)o(act)o(ers)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)20 b Ff(45)1012 335 y Fd(rl_complete)o(r_)o(wor)o
-(d_)o(bre)o(ak)o(_ch)o(ara)o(ct)o(ers)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)
-25 b Ff(45)1012 381 y Fd(rl_completi)o(on)o(_ap)o(pe)o(nd_)o(ch)o(ara)o
-(cte)o(r)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(45)1012 427 y Fd(rl_completi)o(on)o(_di)o(sp)o(lay)o(_m)o(atc)o
-(hes)o(_h)o(ook)8 b Fe(.)e(.)g(.)g(.)h(.)f(.)g(.)25 b
-Ff(45)1012 474 y Fd(rl_completi)o(on)o(_en)o(tr)o(y_f)o(un)o(cti)o(on)s
-Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)17 b Ff(42,)c(43)1012
-520 y Fd(rl_completi)o(on)o(_ma)o(rk)o(_sy)o(ml)o(ink)o(_di)o(rs)t
-Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Ff(46)1012
-566 y Fd(rl_completi)o(on)o(_ma)o(tc)o(hes)8 b Fe(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(43)1012 613 y Fd(rl_completi)o(on)o(_mo)o(de)t Fe(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(43)1012 659 y Fd(rl_completi)o(on)o(_qu)
-o(er)o(y_i)o(te)o(ms)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(45)1012 705 y Fd(rl_completi)o(on)o(_su)
-o(pp)o(res)o(s_)o(app)o(end)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)20 b Ff(46)1012 752 y Fd(rl_completi)o(on)o(_ty)o(pe)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(46)1012 798 y
-Fd(rl_copy_key)o(ma)o(p)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)21 b Ff(29)1012 844 y Fd(rl_copy_tex)o(t)6 b Fe(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(34)1012 891 y
-Fd(rl_crlf)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(33)1012 937 y Fd(rl_delete_t)o(ex)o(t)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b
-Ff(34)1012 983 y Fd(rl_deprep_t)o(er)o(m_f)o(un)o(cti)o(on)7
-b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)24 b Ff(26)1012 1030 y Fd(rl_deprep_t)o(er)o(min)o(al)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(35)1012 1076
-y Fd(rl_ding)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(36)1012 1122 y Fd(rl_director)o(y_)o
-(com)o(pl)o(eti)o(on)o(_ho)o(ok)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(44)1012 1169 y Fd(rl_discard_)o(ke)o
-(yma)o(p)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(29)1012
-1215 y Fd(rl_dispatch)o(in)o(g)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)21 b Ff(25)1012 1261 y Fd(rl_display_)o(ma)o(tch)o(_l)o
-(ist)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)25 b Ff(36)1012 1308 y Fd(rl_do_undo)8
-b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(32)1012 1354 y Fd(rl_done)t Fe(.)t(.)6 b(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)17 b Ff(24)1012
-1400 y Fd(rl_editing_)o(mo)o(de)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)21 b Ff(28)1012 1447 y Fd(rl_end)5 b Fe(.)t(.)h(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
-b Ff(24)1012 1493 y Fd(rl_end_undo)o(_g)o(rou)o(p)6 b
-Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19 b Ff(32)1012 1539
-y Fd(rl_erase_em)o(pt)o(y_l)o(in)o(e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18
-b Ff(25)1012 1586 y Fd(rl_event_ho)o(ok)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(26)1012 1632 y Fd(rl_execute_)o(ne)o
-(xt)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(35)1012 1678 y Fd(rl_executin)o(g_)o(key)o(ma)o(p)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(26)1012 1725 y Fd(rl_executin)o(g_)
-o(mac)o(ro)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(27)1012
-1771 y Fd(rl_expand_p)o(ro)o(mpt)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)20 b Ff(34)1012 1817 y Fd(rl_explicit)o(_a)o(rg)7
-b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(28)1012
-1864 y Fd(rl_extend_l)o(in)o(e_b)o(uf)o(fer)8 b Fe(.)f(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(36)1012 1910 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(des)o
-(ire)o(d)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(46)1012 1956 y Fd(rl_filename)o(_c)o(omp)o(le)o(tio)o(n_)o(fun)o
-(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18
-b Ff(43)1012 2003 y Fd(rl_filename)o(_d)o(equ)o(ot)o(ing)o(_f)o(unc)o
-(tio)o(n)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)19
-b Ff(44)1012 2049 y Fd(rl_filename)o(_q)o(uot)o(e_)o(cha)o(ra)o(cte)o
-(rs)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(45)1012 2095 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_d)o(es)o(ire)o
-(d)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)21
-b Ff(46)1012 2142 y Fd(rl_filename)o(_q)o(uot)o(in)o(g_f)o(un)o(cti)o
-(on)7 b Fe(.)s(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)20
-b Ff(44)1012 2188 y Fd(rl_forced_u)o(pd)o(ate)o(_d)o(isp)o(la)o(y)7
-b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)23 b Ff(33)1012 2234 y Fd(rl_free_lin)o(e_)o(sta)o(te)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(40)1012 2281
-y Fd(rl_free_und)o(o_)o(lis)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-19 b Ff(32)1012 2327 y Fd(rl_function)o(_d)o(ump)o(er)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(31)1012 2373
-y Fd(rl_function)o(_o)o(f_k)o(ey)o(seq)8 b Fe(.)f(.)f(.)g(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)25
-b Ff(31)1012 2420 y Fd(rl_funmap_n)o(am)o(es)7 b Fe(.)s(.)f(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)21 b Ff(31)1012 2466 y Fd(rl_generic_)o(bi)o(nd)7
-b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(30)1012
-2512 y Fd(rl_get_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)22 b Ff(29)p eop
-%%Page: 61 63
-61 62 bop 75 -58 a Fu(F)l(unction)16 b(and)f(V)l(ariable)i(Index)1187
-b(61)75 149 y Fd(rl_get_key)o(ma)o(p_b)o(y_)o(nam)o(e)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(29)75 196 y Fd(rl_get_key)o(ma)o(p_n)o(am)o(e)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(29)75 242 y Fd(rl_get_scr)o(ee)
-o(n_s)o(iz)o(e)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18
-b Ff(41)75 288 y Fd(rl_get_ter)o(mc)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)21 b Ff(37)75 335 y Fd(rl_getc)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)17 b Ff(35)75 381 y Fd(rl_getc_fu)o(nc)o(tio)o(n)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(26)75
-427 y Fd(rl_gnu_rea)o(dl)o(ine)o(_p)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)19 b Ff(25)75 474 y Fd(rl_ignore_)o(co)o(mpl)o(et)o(ion)o(_du)o(pl)
-o(ica)o(te)o(s)5 b Fe(.)s(.)h(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)18
-b Ff(46)75 520 y Fd(rl_ignore_)o(so)o(me_)o(co)o(mpl)o(eti)o(on)o(s_f)o
-(un)o(cti)o(on)7 b Fe(.)g(.)f(.)g(.)g(.)g(.)24 b Ff(44)75
-566 y Fd(rl_inhibit)o(_c)o(omp)o(le)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(47)75 613 y Fd(rl_initial)o(iz)o(e)9 b Fe(.)s(.)d(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)22 b Ff(36)75 659 y Fd(rl_insert_)o(co)o(mpl)o
-(et)o(ion)o(s)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(43)75 705 y Fd(rl_insert_)o(te)
-o(xt)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(34)75 752 y Fd(rl_instrea)o(m)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(25)75 798 y Fd(rl_invokin)o(g_)o
-(key)o(se)o(qs)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(31)75
-844 y Fd(rl_invokin)o(g_)o(key)o(se)o(qs_)o(in_)o(ma)o(p)8
-b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)21
-b Ff(31)75 891 y Fd(rl_kill_te)o(xt)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(34)75 937 y Fd(rl_last_fu)o(nc)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(26)75 983 y Fd(rl_library)o(_v)o(ers)o(io)o(n)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)18 b Ff(25)75 1030 y
-Fd(rl_line_bu)o(ff)o(er)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)21 b Ff(24)75 1076 y Fd(rl_list_fu)o(nm)o(ap_)o(na)o(mes)s
-Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(31)75 1122 y Fd(rl_macro_b)o(in)o(d)9
-b Fe(.)s(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)22
-b Ff(37)75 1169 y Fd(rl_macro_d)o(um)o(per)6 b Fe(.)t(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)20 b Ff(37)75 1215 y Fd(rl_make_ba)o(re)o(_ke)o(ym)
-o(ap)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(29)75 1261
-y Fd(rl_make_ke)o(ym)o(ap)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)21 b Ff(29)75 1308 y Fd(rl_mark)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)17
-b Ff(24)75 1354 y Fd(rl_message)7 b Fe(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)24 b Ff(33)75 1400 y Fd(rl_modifyi)o(ng)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(32)75 1447 y Fd(rl_named_f)o(un)o(cti)o(on)5 b Fe(.)s(.)i(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)19 b Ff(31)75 1493 y Fd(rl_num_cha)o(rs)o(_to)o(_r)o
-(ead)s Fe(.)s(.)6 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)16 b Ff(24)75 1539 y Fd(rl_numeric)o(_a)
-o(rg)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)21
-b Ff(28)75 1586 y Fd(rl_on_new_)o(li)o(ne)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)21 b Ff(33)75 1632 y Fd(rl_on_new_)o(li)o(ne_)o
-(wi)o(th_)o(pro)o(mp)o(t)8 b Fe(.)t(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)21 b Ff(33)75 1678 y Fd(rl_outstre)o(am)6
-b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)22
-b Ff(26)75 1725 y Fd(rl_parse_a)o(nd)o(_bi)o(nd)5 b Fe(.)s(.)i(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)19 b Ff(31)75 1771 y Fd(rl_pending)o(_i)o(npu)o(t)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(24)75
-1817 y Fd(rl_point)s Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)16 b Ff(24)75 1864 y Fd(rl_possibl)o(e_)o
-(com)o(pl)o(eti)o(ons)7 b Fe(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(42)75 1910 y
-Fd(rl_pre_inp)o(ut)o(_ho)o(ok)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19
-b Ff(26)75 1956 y Fd(rl_prep_te)o(rm)o(_fu)o(nc)o(tio)o(n)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(26)75 2003 y Fd(rl_prep_te)o(rm)o(ina)o(l)6
-b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)19 b Ff(35)75
-2049 y Fd(rl_prompt)8 b Fe(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)24 b Ff(25)75 2095 y Fd(rl_push_ma)o(cr)o(o_i)o(np)
-o(ut)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17 b Ff(34)75 2142
-y Fd(rl_read_in)o(it)o(_fi)o(le)5 b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-19 b Ff(31)75 2188 y Fd(rl_read_ke)o(y)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(34)75 2234 y
-Fd(rl_readlin)o(e_)o(nam)o(e)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-19 b Ff(25)75 2281 y Fd(rl_readlin)o(e_)o(sta)o(te)5
-b Fe(.)s(.)i(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)19 b Ff(27)75 2327
-y Fd(rl_readlin)o(e_)o(ver)o(si)o(on)t Fe(.)s(.)6 b(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)17
-b Ff(25)75 2373 y Fd(rl_redispl)o(ay)6 b Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)22 b Ff(33)75 2420 y Fd(rl_redispl)o(ay)o(_fu)o
-(nc)o(tio)o(n)9 b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25 b Ff(26)75 2466 y
-Fd(rl_replace)o(_l)o(ine)6 b Fe(.)t(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-20 b Ff(36)75 2512 y Fd(rl_reset_a)o(ft)o(er_)o(si)o(gna)o(l)9
-b Fe(.)d(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)25 b Ff(40)1012 149 y Fd(rl_reset_li)o(ne)o(_st)o(at)o
-(e)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(33)1012 195
-y Fd(rl_reset_te)o(rm)o(ina)o(l)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-19 b Ff(35)1012 241 y Fd(rl_resize_t)o(er)o(min)o(al)t
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 287 y
-Fd(rl_restore_)o(pr)o(omp)o(t)6 b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)19
-b Ff(34)1012 333 y Fd(rl_save_pro)o(mp)o(t)8 b Fe(.)s(.)e(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)21 b Ff(33)1012 379 y Fd(rl_set_key)8
-b Fe(.)e(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)24
-b Ff(30)1012 424 y Fd(rl_set_keyb)o(oa)o(rd_)o(in)o(put)o(_t)o(ime)o
-(out)5 b Fe(.)t(.)h(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)20
-b Ff(35)1012 470 y Fd(rl_set_keym)o(ap)8 b Fe(.)s(.)e(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)22 b Ff(29)1012 516 y Fd(rl_set_pare)o(n_)o
-(bli)o(nk)o(_ti)o(me)o(out)7 b Fe(.)t(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)22 b Ff(37)1012 562 y Fd(rl_set_prom)o(pt)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(34)1012 608 y Fd(rl_set_scre)o(en)o(_si)o(ze)t Fe(.)t(.)6
-b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)19 b Ff(41)1012 654 y Fd(rl_set_sign)o(al)o(s)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)21 b
-Ff(41)1012 700 y Fd(rl_show_cha)o(r)6 b Fe(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)23 b Ff(33)1012 745 y Fd(rl_special_)o(pr)o
-(efi)o(xe)o(s)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)18 b Ff(45)1012
-791 y Fd(rl_startup_)o(ho)o(ok)7 b Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)21 b Ff(26)1012 837 y Fd(rl_stuff_ch)o(ar)8 b
-Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(35)1012 883 y Fd(rl_terminal)o(_n)o(ame)6 b Fe(.)s(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)20 b Ff(25)1012 929 y Fd(rl_tty_set_)o(de)o(fau)o(lt)o
-(_bi)o(nd)o(ing)o(s)8 b Fe(.)s(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)21 b Ff(35)1012 975 y Fd(rl_unbind_c)o(om)o(man)o(d_)o
-(in_)o(ma)o(p)7 b Fe(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)23 b Ff(30)1012 1020 y Fd(rl_unbind_f)o(un)o(cti)o
-(on)o(_in)o(_m)o(ap)9 b Fe(.)s(.)d(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)g(.)23 b Ff(30)1012 1066 y Fd(rl_unbind_k)o(ey)8
-b Fe(.)s(.)e(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)22
-b Ff(30)1012 1112 y Fd(rl_unbind_k)o(ey)o(_in)o(_m)o(ap)s
-Fe(.)t(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)
-g(.)g(.)g(.)h(.)f(.)g(.)17 b Ff(30)1012 1158 y Fd(rl_username)o(_c)o
-(omp)o(le)o(tio)o(n_)o(fun)o(cti)o(on)t Fe(.)s(.)7 b(.)f(.)g(.)g(.)g(.)
-g(.)h(.)f(.)g(.)18 b Ff(43)1012 1204 y Fd(rl_variable)o(_b)o(ind)6
-b Fe(.)s(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)20 b Ff(37)1012
-1250 y Fd(rl_variable)o(_d)o(ump)o(er)t Fe(.)t(.)6 b(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g
-(.)19 b Ff(37)1012 1380 y Fs(S)1012 1441 y Fd(self-insert)9
-b(\(a,)j(b,)g(A,)g(1,)g(!,)g(...)o(\))6 b Fe(.)g(.)g(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1487 y Fd(set-mark)10
-b(\(C-@\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(17)1012 1533 y(sho)o(w-all-if-am)o(bigu)q(ous)14
-b Fe(.)6 b(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)23 b Ff(7)1012 1579
-y Fd(start-kbd-m)o(ac)o(ro)9 b(\(C-x)j(\(\))c Fe(.)d(.)i(.)f(.)g(.)g(.)
-g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)22
-b Ff(17)1012 1701 y Fs(T)1012 1763 y Fd(tab-insert)9
-b(\(M-)1281 1761 y Fn(h)p 1292 1735 74 2 v 1292 1763
-a Fm(T)m(AB)p 1292 1770 V 1364 1761 a Fn(i)1379 1763
-y Fd(\))e Fe(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)
-f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)20 b Ff(14)1012 1808
-y Fd(tilde-expan)o(d)10 b(\(M-~\))f Fe(.)s(.)e(.)f(.)g(.)g(.)g(.)g(.)g
-(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)22
-b Ff(17)1012 1854 y Fd(transpose-c)o(ha)o(rs)9 b(\(C-t\))d
-Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 1900 y Fd(transpose-w)o(or)o(ds)9
-b(\(M-t\))d Fe(.)f(.)h(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(14)1012 2030 y
-Fs(U)1012 2092 y Fd(undo)12 b(\(C-_)f(or)h(C-x)g(C-u\))c
-Fe(.)t(.)e(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)21 b Ff(17)1012 2137 y Fd(universal-a)o(rg)o
-(ume)o(nt)9 b(\(\))d Fe(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)20 b Ff(16)1012
-2183 y Fd(unix-line-d)o(is)o(car)o(d)10 b(\(C-u\))5 b
-Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)18 b Ff(15)1012 2229 y Fd(unix-word-r)o(ub)o(out)9
-b(\(C-w\))d Fe(.)t(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)19 b Ff(15)1012 2275 y Fd(upcase-word)9
-b(\(M-u\))e Fe(.)f(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)23 b Ff(14)1012
-2405 y Fs(V)1012 2466 y Fd(vi-editing-)o(mo)o(de)9 b(\(M-C-j\))c
-Fe(.)t(.)h(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g
-(.)h(.)f(.)18 b Ff(18)1012 2512 y(visible-stats)c Fe(.)6
-b(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)24
-b Ff(7)p eop
-%%Page: 62 64
-62 63 bop 75 -58 a Fu(62)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fs(Y)75 242 y Fd(yank)11 b(\(C-y\))5 b Fe(.)g(.)h(.)g(.)g(.)g(.)h
-(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)
-h(.)f(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)18 b Ff(16)1012
-149 y Fd(yank-last-a)o(rg)9 b(\(M-.)i(or)h(M-_\))c Fe(.)f(.)f(.)g(.)g
-(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)23
-b Ff(13)1012 196 y Fd(yank-nth-ar)o(g)10 b(\(M-C-y\))d
-Fe(.)s(.)f(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f
-(.)g(.)g(.)g(.)g(.)h(.)20 b Ff(13)1012 242 y Fd(yank-pop)10
-b(\(M-y\))g Fe(.)c(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g
-(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)25
-b Ff(16)p eop
-%%Page: -1 65
--1 64 bop 1862 -58 a Fu(i)75 149 y Fq(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fs(1)67 b(Command)22 b(Line)i(Editing)d
-Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h
-(.)f(.)g(.)g(.)42 b Fs(1)224 389 y Fu(1.1)j(In)o(tro)q(duction)16
-b(to)f(Line)h(Editing)e Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)27 b Fu(1)224 444 y(1.2)45 b(Readline)16 b(In)o(teraction)8
-b Fl(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)23 b Fu(1)374 499 y(1.2.1)44 b(Readline)16
-b(Bare)f(Essen)o(tials)f Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fu(1)374 553 y(1.2.2)44 b(Readline)16 b(Mo)o(v)o(emen)o(t)e(Commands)
-7 b Fl(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)21 b Fu(2)374 608 y(1.2.3)44 b(Readline)16 b(Killing)i(Commands)
-11 b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)25 b Fu(2)374 663 y(1.2.4)44 b(Readline)16
-b(Argumen)o(ts)c Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
-b Fu(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
-(the)f(History)e Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fu(3)224 773 y(1.3)45 b(Readline)16 b(Init)h(File)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)29 b Fu(4)374 827 y(1.3.1)44 b(Readline)16
-b(Init)g(File)h(Syn)o(tax)7 b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fu(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
-b Fl(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)19 b Fu(9)374 937 y(1.3.3)44 b(Sample)16
-b(Init)g(File)11 b Fl(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)26 b Fu(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)g(Commands)
-6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(12)374
-1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fu(12)374 1101 y(1.4.2)44
-b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
-b Fl(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fu(12)374 1156 y(1.4.3)44
-b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fl(.)8
-b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
-b Fu(14)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
-b Fl(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fu(15)374
-1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
-Fl(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
-b Fu(16)374 1320 y(1.4.6)44 b(Letting)15 b(Readline)i(T)o(yp)q(e)e(F)l
-(or)g(Y)l(ou)10 b Fl(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)25 b Fu(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15
-b(Macros)6 b Fl(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
-b Fu(17)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
-b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-22 b Fu(17)224 1485 y(1.5)45 b(Readline)16 b(vi)g(Mo)q(de)e
-Fl(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)28 b Fu(18)75 1606 y Fs(2)67 b(Programming)23
-b(with)g(GNU)f(Readline)12 b Fa(.)f(.)g(.)f(.)g(.)g(.)g(.)h(.)f(.)35
-b Fs(21)224 1675 y Fu(2.1)45 b(Basic)16 b(Beha)o(vior)8
-b Fl(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)23 b Fu(21)224 1729 y(2.2)45
-b(Custom)14 b(F)l(unctions)7 b Fl(.)i(.)f(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)22 b Fu(22)374
-1784 y(2.2.1)44 b(Readline)16 b(T)o(yp)q(edefs)9 b Fl(.)g(.)e(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)g(.)f(.)h(.)24 b Fu(23)374 1839 y(2.2.2)44
-b(W)l(riting)16 b(a)e(New)i(F)l(unction)6 b Fl(.)i(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-21 b Fu(23)224 1894 y(2.3)45 b(Readline)16 b(V)l(ariables)g
-Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)29 b Fu(24)224 1949 y(2.4)45 b(Readline)16
-b(Con)o(v)o(enience)h(F)l(unctions)7 b Fl(.)i(.)e(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-23 b Fu(28)374 2003 y(2.4.1)44 b(Naming)15 b(a)g(F)l(unction)e
-Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27 b Fu(28)374
-2058 y(2.4.2)44 b(Selecting)17 b(a)e(Keymap)6 b Fl(.)h(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)21 b Fu(29)374 2113 y(2.4.3)44 b(Binding)17
-b(Keys)5 b Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)20 b Fu(30)374 2168 y(2.4.4)44 b(Asso)q(ciating)16
-b(F)l(unction)g(Names)f(and)g(Bindings)8 b Fl(.)h(.)f(.)f(.)h(.)f(.)h
-(.)23 b Fu(31)374 2222 y(2.4.5)44 b(Allo)o(wing)16 b(Undoing)f
-Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)29 b
-Fu(32)374 2277 y(2.4.6)44 b(Redispla)o(y)10 b Fl(.)e(.)g(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)26
-b Fu(33)374 2332 y(2.4.7)44 b(Mo)q(difying)16 b(T)l(ext)7
-b Fl(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)22
-b Fu(34)374 2387 y(2.4.8)44 b(Character)14 b(Input)c
-Fl(.)f(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)25
-b Fu(34)374 2442 y(2.4.9)44 b(T)l(erminal)16 b(Managemen)o(t)11
-b Fl(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(35)374 2496 y(2.4.10)43
-b(Utilit)o(y)17 b(F)l(unctions)c Fl(.)7 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)28 b Fu(36)374 2551 y(2.4.11)43 b(Miscellaneous)18
-b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fu(37)374
-2606 y(2.4.12)43 b(Alternate)16 b(In)o(terface)f Fl(.)7
-b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30 b Fu(37)374 2661
-y(2.4.13)43 b(A)16 b(Readline)g(Example)9 b Fl(.)f(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)24 b Fu(38)p eop
-%%Page: -2 66
--2 65 bop 75 -58 a Fu(ii)1321 b(GNU)15 b(Readline)h(Library)224
-42 y(2.5)45 b(Readline)16 b(Signal)h(Handling)12 b Fl(.)c(.)g(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(39)224 96
-y(2.6)45 b(Custom)14 b(Completers)f Fl(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)28 b Fu(41)374
-151 y(2.6.1)44 b(Ho)o(w)14 b(Completing)i(W)l(orks)10
-b Fl(.)d(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)25 b Fu(41)374 206 y(2.6.2)44
-b(Completion)16 b(F)l(unctions)6 b Fl(.)i(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-21 b Fu(42)374 261 y(2.6.3)44 b(Completion)16 b(V)l(ariables)c
-Fl(.)c(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27 b Fu(43)374 315
-y(2.6.4)44 b(A)15 b(Short)g(Completion)h(Example)5 b
-Fl(.)j(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)20 b Fu(47)75 437 y Fs(Concept)i(Index)10 b Fa(.)i(.)e(.)g(.)g
-(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)
-g(.)g(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)33 b Fs(57)75 572
-y(F)-6 b(unction)25 b(and)d(V)-6 b(ariable)24 b(Index)9
-b Fa(.)i(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)
-g(.)32 b Fs(59)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/readline-doc-4.3/doc/readline_3.ps b/readline-doc-4.3/doc/readline_3.ps
deleted file mode 100644
index 7d20e17..0000000
--- a/readline-doc-4.3/doc/readline_3.ps
+++ /dev/null
@@ -1,1294 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: groff version 1.17.2
-%%CreationDate: Thu Jun 27 13:54:44 2002
-%%DocumentNeededResources: font Times-Roman
-%%+ font Times-Bold
-%%+ font Times-Italic
-%%+ font Courier
-%%DocumentSuppliedResources: procset grops 1.17 2
-%%Pages: 14
-%%PageOrder: Ascend
-%%Orientation: Portrait
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset grops 1.17 2
-/setpacking where{
-pop
-currentpacking
-true setpacking
-}if
-/grops 120 dict dup begin
-/SC 32 def
-/A/show load def
-/B{0 SC 3 -1 roll widthshow}bind def
-/C{0 exch ashow}bind def
-/D{0 exch 0 SC 5 2 roll awidthshow}bind def
-/E{0 rmoveto show}bind def
-/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
-/G{0 rmoveto 0 exch ashow}bind def
-/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/I{0 exch rmoveto show}bind def
-/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
-/K{0 exch rmoveto 0 exch ashow}bind def
-/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/M{rmoveto show}bind def
-/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
-/O{rmoveto 0 exch ashow}bind def
-/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/Q{moveto show}bind def
-/R{moveto 0 SC 3 -1 roll widthshow}bind def
-/S{moveto 0 exch ashow}bind def
-/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/SF{
-findfont exch
-[exch dup 0 exch 0 exch neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/MF{
-findfont
-[5 2 roll
-0 3 1 roll
-neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/level0 0 def
-/RES 0 def
-/PL 0 def
-/LS 0 def
-/MANUAL{
-statusdict begin/manualfeed true store end
-}bind def
-/PLG{
-gsave newpath clippath pathbbox grestore
-exch pop add exch pop
-}bind def
-/BP{
-/level0 save def
-1 setlinecap
-1 setlinejoin
-72 RES div dup scale
-LS{
-90 rotate
-}{
-0 PL translate
-}ifelse
-1 -1 scale
-}bind def
-/EP{
-level0 restore
-showpage
-}bind def
-/DA{
-newpath arcn stroke
-}bind def
-/SN{
-transform
-.25 sub exch .25 sub exch
-round .25 add exch round .25 add exch
-itransform
-}bind def
-/DL{
-SN
-moveto
-SN
-lineto stroke
-}bind def
-/DC{
-newpath 0 360 arc closepath
-}bind def
-/TM matrix def
-/DE{
-TM currentmatrix pop
-translate scale newpath 0 0 .5 0 360 arc closepath
-TM setmatrix
-}bind def
-/RC/rcurveto load def
-/RL/rlineto load def
-/ST/stroke load def
-/MT/moveto load def
-/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
-}bind def
-/BL/fill load def
-/LW/setlinewidth load def
-/RE{
-findfont
-dup maxlength 1 index/FontName known not{1 add}if dict begin
-{
-1 index/FID ne{def}{pop pop}ifelse
-}forall
-/Encoding exch def
-dup/FontName exch def
-currentdict end definefont pop
-}bind def
-/DEFS 0 def
-/EBEGIN{
-moveto
-DEFS begin
-}bind def
-/EEND/end load def
-/CNT 0 def
-/level1 0 def
-/PBEGIN{
-/level1 save def
-translate
-div 3 1 roll div exch scale
-neg exch neg exch translate
-0 setgray
-0 setlinecap
-1 setlinewidth
-0 setlinejoin
-10 setmiterlimit
-[]0 setdash
-/setstrokeadjust where{
-pop
-false setstrokeadjust
-}if
-/setoverprint where{
-pop
-false setoverprint
-}if
-newpath
-/CNT countdictstack def
-userdict begin
-/showpage{}def
-}bind def
-/PEND{
-clear
-countdictstack CNT sub{end}repeat
-level1 restore
-}bind def
-end def
-/setpacking where{
-pop
-setpacking
-}if
-%%EndResource
-%%IncludeResource: font Times-Roman
-%%IncludeResource: font Times-Bold
-%%IncludeResource: font Times-Italic
-%%IncludeResource: font Courier
-grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
-/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
-/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
-/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
-/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
-/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
-/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
-/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
-/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
-/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
-/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
-/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
-/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
-/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
-/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
-/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
-/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
-/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
-/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
-/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE
-/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
-%%EndProlog
-%%Page: 1 1
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1
-10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
-(readline \255 get a line from a user with editing)108 96 Q F1(SYNOPSIS)
-72 112.8 Q/F2 10/Times-Bold@0 SF(#include <stdio.h>)108 124.8 Q
-(#include <r)108 136.8 Q(eadline/r)-.18 E(eadline.h>)-.18 E(#include <r)
-108 148.8 Q(eadline/history)-.18 E(.h>)-.7 E/F3 10/Times-Italic@0 SF
--.15(ch)108 165.6 S(ar *).15 E F2 -.18(re)108 177.6 S(adline).18 E F0
-(\()2.5 E F3(const c)A(har *pr)-.15 E(ompt)-.45 E F0(\);)A F1(COPYRIGHT)
-72 194.4 Q F0(Readline is Cop)108 206.4 Q
-(yright \251 1989\2552002 by the Free Softw)-.1 E(are F)-.1 E
-(oundation, Inc.)-.15 E F1(DESCRIPTION)72 223.2 Q F2 -.18(re)108 235.2 S
-(adline).18 E F0 .088
-(will read a line from the terminal and return it, using)2.588 F F2(pr)
-2.587 E(ompt)-.18 E F0 .087(as a prompt.)2.587 F(If)5.087 E F2(pr)2.587
-E(ompt)-.18 E F0(is)2.587 E F2(NULL)2.587 E F0(or)2.587 E .42
-(the empty string, no prompt is issued.)108 247.2 R .421
-(The line returned is allocated with)5.42 F F3(malloc)2.921 E F0 .421
-(\(3\); the caller must free it).31 F(when \214nished.)108 259.2 Q
-(The line returned has the \214nal ne)5 E(wline remo)-.25 E -.15(ve)-.15
-G(d, so only the te).15 E(xt of the line remains.)-.15 E F2 -.18(re)108
-276 S(adline).18 E F0(of)3.79 E 1.29
-(fers editing capabilities while the user is entering the line.)-.25 F
-1.289(By def)6.289 F 1.289(ault, the line editing com-)-.1 F
-(mands are similar to those of emacs.)108 288 Q 2.5(Av)5 G
-(i\255style line editing interf)-2.5 E(ace is also a)-.1 E -.25(va)-.2 G
-(ilable.).25 E .272
-(This manual page describes only the most basic use of)108 304.8 R F2
--.18(re)2.772 G(adline).18 E F0 5.272(.M)C .272
-(uch more functionality is a)-5.272 F -.25(va)-.2 G .272(ilable; see).25
-F F3(The GNU Readline Libr)108 316.8 Q(ary)-.15 E F0(and)2.5 E F3
-(The GNU History Libr)2.5 E(ary)-.15 E F0(for additional information.)
-2.5 E F1(RETURN V)72 333.6 Q(ALUE)-1.478 E F2 -.18(re)108 345.6 S
-(adline).18 E F0 1.09(returns the te)3.59 F 1.09(xt of the line read.)
--.15 F 3.589(Ab)6.09 G 1.089(lank line returns the empty string.)-3.589
-F(If)6.089 E F2(EOF)3.589 E F0 1.089(is encountered)3.589 F .283
-(while reading a line, and the line is empty)108 357.6 R(,)-.65 E F2
-(NULL)2.783 E F0 .283(is returned.)2.783 F .283(If an)5.283 F F2(EOF)
-2.783 E F0 .283(is read with a non\255empty line, it)2.783 F
-(is treated as a ne)108 369.6 Q(wline.)-.25 E F1(NO)72 386.4 Q -.986(TA)
--.438 G(TION)-.054 E F0 .181
-(An emacs-style notation is used to denote k)108 398.4 R -.15(ey)-.1 G
-(strok).15 E 2.681(es. Control)-.1 F -.1(ke)2.681 G .18
-(ys are denoted by C\255)-.05 F F3 -.1(ke)C(y)-.2 E F0 2.68(,e)C .18
-(.g., C\255n means)-2.68 F 2.625(Control\255N. Similarly)108 410.4 R(,)
--.65 E F3(meta)2.625 E F0 -.1(ke)2.625 G .125(ys are denoted by M\255)
--.05 F F3 -.1(ke)C(y)-.2 E F0 2.625(,s)C 2.625(oM)-2.625 G .125
-(\255x means Meta\255X.)-2.625 F .126(\(On k)5.126 F -.15(ey)-.1 G .126
-(boards without a).15 F F3(meta)108 422.4 Q F0 -.1(ke)3.309 G 2.109 -.65
-(y, M)-.05 H<ad>.65 E F3(x)A F0 .809(means ESC)3.309 F F3(x)3.309 E F0
-3.309(,i)C .809(.e., press the Escape k)-3.309 F 1.108 -.15(ey t)-.1 H
-.808(hen the).15 F F3(x)3.308 E F0 -.1(ke)3.308 G 4.608 -.65(y. T)-.05 H
-.808(his mak).65 F .808(es ESC the)-.1 F F3 .808(meta pr)3.308 F(e\214x)
--.37 E F0(.)A .48(The combination M\255C\255)108 434.4 R F3(x)A F0 .48
-(means ESC\255Control\255)2.98 F F3(x)A F0 2.98(,o)C 2.98(rp)-2.98 G .48
-(ress the Escape k)-2.98 F .78 -.15(ey t)-.1 H .48
-(hen hold the Control k).15 F .78 -.15(ey w)-.1 H(hile).15 E
-(pressing the)108 446.4 Q F3(x)2.5 E F0 -.1(ke)2.5 G -.65(y.)-.05 G(\))
-.65 E .62(Readline commands may be gi)108 463.2 R -.15(ve)-.25 G 3.119
-(nn).15 G(umeric)-3.119 E F3(ar)3.119 E(guments)-.37 E F0 3.119(,w).27 G
-.619(hich normally act as a repeat count.)-3.119 F(Sometimes,)5.619 E
-(ho)108 475.2 Q(we)-.25 E -.15(ve)-.25 G 1.418 -.4(r, i).15 H 3.118(ti)
-.4 G 3.119(st)-3.118 G .619(he sign of the ar)-3.119 F .619
-(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
-.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
-(ument to a command that).18 F 1.019(acts in the forw)108 487.2 R 1.018
-(ard direction \(e.g.,)-.1 F F2(kill\255line)3.518 E F0 3.518(\)c)C
-1.018(auses that command to act in a backw)-3.518 F 1.018
-(ard direction.)-.1 F(Com-)6.018 E(mands whose beha)108 499.2 Q
-(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted.)-.25 E
-.811(When a command is described as)108 516 R F3(killing)3.311 E F0(te)
-3.311 E .811(xt, the te)-.15 F .811(xt deleted is sa)-.15 F -.15(ve)-.2
-G 3.311(df).15 G .812(or possible future retrie)-3.311 F -.25(va)-.25 G
-3.312(l\().25 G F3(yank-)-3.312 E(ing)108 528 Q F0 2.529(\). The)B .029
-(killed te)2.529 F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G
-2.529(na)-2.529 G F3 .029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E
-.329 -.15(ve k)-.25 H .029(ills cause the te).15 F .029
-(xt to be accumulated into one unit,)-.15 F .567(which can be yank)108
-540 R .567(ed all at once.)-.1 F .567(Commands which do not kill te)
-5.567 F .567(xt separate the chunks of te)-.15 F .567(xt on the kill)
--.15 F(ring.)108 552 Q F1(INITIALIZA)72 568.8 Q(TION FILE)-1.04 E F0
-.091(Readline is customized by putting commands in an initialization \
-\214le \(the)108 580.8 R F3(inputr)2.591 E(c)-.37 E F0 2.591
-(\214le\). The)2.591 F .091(name of this \214le)2.591 F 1.442(is tak)108
-592.8 R 1.443(en from the v)-.1 F 1.443(alue of the)-.25 F F2(INPUTRC)
-3.943 E F0(en)3.943 E 1.443(vironment v)-.4 F 3.943(ariable. If)-.25 F
-1.443(that v)3.943 F 1.443(ariable is unset, the def)-.25 F 1.443
-(ault is)-.1 F F3(~/.inputr)108 604.8 Q(c)-.37 E F0 5.359(.W).31 G .359
-(hen a program which uses the readline library starts up, the init \214\
-le is read, and the k)-5.359 F .658 -.15(ey b)-.1 H(ind-).15 E 1.083
-(ings and v)108 616.8 R 1.083(ariables are set.)-.25 F 1.083
-(There are only a fe)6.083 F 3.583(wb)-.25 G 1.083(asic constructs allo)
--3.583 F 1.084(wed in the readline init \214le.)-.25 F(Blank)6.084 E
-.737(lines are ignored.)108 628.8 R .737(Lines be)5.737 F .737
-(ginning with a)-.15 F F2(#)3.237 E F0 .737(are comments.)3.237 F .737
-(Lines be)5.737 F .737(ginning with a)-.15 F F2($)3.237 E F0 .736
-(indicate conditional)3.236 F 2.614(constructs. Other)108 640.8 R .114
-(lines denote k)2.614 F .414 -.15(ey b)-.1 H .115(indings and v).15 F
-.115(ariable settings.)-.25 F .115
-(Each program using this library may add)5.115 F(its o)108 652.8 Q
-(wn commands and bindings.)-.25 E -.15(Fo)108 669.6 S 2.5(re).15 G
-(xample, placing)-2.65 E(M\255Control\255u: uni)144 686.4 Q -.15(ve)-.25
-G(rsal\255ar).15 E(gument)-.18 E(or)108 698.4 Q(C\255Meta\255u: uni)144
-710.4 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(GNU Readline 4.3)
-72 768 Q(2002 January 22)126.24 E(1)195.95 E EP
-%%Page: 2 2
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R
-(into the)108 84 Q/F1 10/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0 -.1
-(wo)2.5 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)-2.5 E -.15(xe)-.15 G
-(cute the readline command).15 E F1(univer)2.5 E(sal\255ar)-.1 E(gument)
--.37 E F0(.).68 E 2.795(The follo)108 100.8 R 2.795
-(wing symbolic character names are recognized while processing k)-.25 F
-3.095 -.15(ey b)-.1 H(indings:).15 E F1(DEL)5.295 E F0(,).53 E F1(ESC)
-5.295 E F0(,).72 E F1(ESCAPE)108 112.8 Q F0(,).73 E F1(LFD)2.5 E F0(,)
-.28 E F1(NEWLINE)2.5 E F0(,).73 E F1(RET)2.5 E F0(,)1.27 E F1(RETURN)2.5
-E F0(,)1.1 E F1 -.4(RU)2.5 G(BOUT).4 E F0(,)1.27 E F1(SP)2.5 E -.3(AC)
--.9 G(E).3 E F0(,).73 E F1(SPC)2.5 E F0 2.5(,a).72 G(nd)-2.5 E F1 -.5
-(TA)2.5 G(B).5 E F0(.).27 E .209
-(In addition to command names, readline allo)108 129.6 R .209(ws k)-.25
-F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
-(ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i)
--.1 H(s).15 E(pressed \(a)108 141.6 Q F1(macr)2.5 E(o)-.45 E F0(\).)A/F2
-10/Times-Bold@0 SF -.25(Ke)87 163.2 S 2.5(yB).25 G(indings)-2.5 E F0
-.382(The syntax for controlling k)108 175.2 R .682 -.15(ey b)-.1 H .382
-(indings in the).15 F F1(inputr)2.882 E(c)-.37 E F0 .382
-(\214le is simple.)2.882 F .382(All that is required is the name of the)
-5.382 F .382(command or the te)108 187.2 R .383(xt of a macro and a k)
--.15 F .683 -.15(ey s)-.1 H .383
-(equence to which it should be bound. The name may be speci-).15 F .853
-(\214ed in one of tw)108 199.2 R 3.353(ow)-.1 G .853
-(ays: as a symbolic k)-3.453 F 1.153 -.15(ey n)-.1 H .853
-(ame, possibly with).15 F F1(Meta\255)3.353 E F0(or)3.353 E F1(Contr)
-3.353 E(ol\255)-.45 E F0(pre\214x)3.353 E .853(es, or as a k)-.15 F -.15
-(ey)-.1 G(sequence.)108 211.2 Q 1.766(When using the form)108 228 R F2
--.1(ke)4.266 G(yname).1 E F0(:)A F1(function-name).833 E F0(or)4.266 E
-F1(macr)4.267 E(o)-.45 E F0(,)A F1 -.1(ke)4.267 G(yname)-.2 E F0 1.767
-(is the name of a k)4.267 F 2.067 -.15(ey s)-.1 H 1.767(pelled out in)
-.15 F 2.5(English. F)108 240 R(or e)-.15 E(xample:)-.15 E
-(Control\255u: uni)144 264 Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18
-E(Meta\255Rubout: backw)144 276 Q(ard\255kill\255w)-.1 E(ord)-.1 E
-(Control\255o: "> output")144 288 Q .229(In the abo)108 304.8 R .529
--.15(ve ex)-.15 H(ample,).15 E F1(C\255u)2.729 E F0 .229
-(is bound to the function)2.729 F F2(uni)2.729 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M-DEL)2.729 E F0 .228
-(is bound to the function)2.729 F F2(backward\255kill\255w)108 316.8 Q
-(ord)-.1 E F0 3.837(,a)C(nd)-3.837 E F1(C\255o)3.837 E F0 1.337
-(is bound to run the macro e)3.837 F 1.337
-(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-328.8 Q(xt)-.15 E/F3 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
-(into the line\).)2.5 E .056(In the second form,)108 345.6 R F2("k)2.556
-E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
-2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
-(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
-(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
-(denoting an entire k)108 357.6 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
-ay be speci\214ed by placing the sequence within double quotes.).15 F
-(Some)6.284 E .386(GNU Emacs style k)108 369.6 R .686 -.15(ey e)-.1 H
-.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
-(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
-(are not recognized.)108 381.6 Q("\\C\255u": uni)144 405.6 Q -.15(ve)
--.25 G(rsal\255ar).15 E(gument)-.18 E
-("\\C\255x\\C\255r": re\255read\255init\255\214le)144 417.6 Q
-("\\e[11~": "Function K)144 429.6 Q .3 -.15(ey 1)-.25 H(").15 E .237
-(In this e)108 446.4 R(xample,)-.15 E F1(C-u)2.737 E F0 .237(is ag)2.737
-F .238(ain bound to the function)-.05 F F2(uni)2.738 E -.1(ve)-.1 G
-(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .238(C-x C-r)5.238 F F0 .238
-(is bound to the function)2.738 F F2 -.18(re)108 458.4 S<ad72>.18 E
-(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1(ESC [ 1 1 ~)2.5 E
-F0(is bound to insert the te)2.5 E(xt)-.15 E F3(Function Key 1)2.5 E F0
-(.)A(The full set of GNU Emacs style escape sequences a)108 475.2 Q -.25
-(va)-.2 G(ilable when specifying k).25 E .3 -.15(ey s)-.1 H(equences is)
-.15 E F2<5c43ad>144 487.2 Q F0(control pre\214x)20.3 E F2<5c4dad>144
-499.2 Q F0(meta pre\214x)18.08 E F2(\\e)144 511.2 Q F0
-(an escape character)28.78 E F2(\\\\)144 523.2 Q F0(backslash)30.44 E F2
-(\\")144 535.2 Q F0(literal ", a double quote)27.67 E F2(\\')144 547.2 Q
-F0(literal ', a single quote)29.89 E(In addition to the GNU Emacs style\
- escape sequences, a second set of backslash escapes is a)108 564 Q -.25
-(va)-.2 G(ilable:).25 E F2(\\a)144 576 Q F0(alert \(bell\))28.22 E F2
-(\\b)144 588 Q F0(backspace)27.66 E F2(\\d)144 600 Q F0(delete)27.66 E
-F2(\\f)144 612 Q F0(form feed)29.89 E F2(\\n)144 624 Q F0(ne)27.66 E
-(wline)-.25 E F2(\\r)144 636 Q F0(carriage return)28.78 E F2(\\t)144 648
-Q F0(horizontal tab)29.89 E F2(\\v)144 660 Q F0 -.15(ve)28.22 G
-(rtical tab).15 E F2(\\)144 672 Q F1(nnn)A F0
-(the eight-bit character whose v)18.22 E(alue is the octal v)-.25 E
-(alue)-.25 E F1(nnn)2.5 E F0(\(one to three digits\))2.5 E F2(\\x)144
-684 Q F1(HH)A F0(the eight-bit character whose v)13.78 E(alue is the he)
--.25 E(xadecimal v)-.15 E(alue)-.25 E F1(HH)2.5 E F0(\(one or tw)2.5 E
-2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E .74(When entering the te)
-108 700.8 R .74(xt of a macro, single or double quotes should be used t\
-o indicate a macro de\214nition.)-.15 F .089(Unquoted te)108 712.8 R
-.089(xt is assumed to be a function name.)-.15 F .09(In the macro body)
-5.089 F 2.59(,t)-.65 G .09(he backslash escapes described abo)-2.59 F
--.15(ve)-.15 G(are e)108 724.8 Q 2.5(xpanded. Backslash)-.15 F
-(will quote an)2.5 E 2.5(yo)-.15 G(ther character in the macro te)-2.5 E
-(xt, including " and '.)-.15 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(2)195.95 E EP
-%%Page: 3 3
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(Bash)108 84 Q F0(allo)2.93 E .43
-(ws the current readline k)-.25 F .73 -.15(ey b)-.1 H .429
-(indings to be displayed or modi\214ed with the).15 F F1(bind)2.929 E F0
--.2(bu)2.929 G .429(iltin command.).2 F 1.095
-(The editing mode may be switched during interacti)108 96 R 1.395 -.15
-(ve u)-.25 H 1.095(se by using the).15 F F1<ad6f>3.595 E F0 1.095
-(option to the)3.595 F F1(set)3.595 E F0 -.2(bu)3.595 G 1.095
-(iltin com-).2 F 3.097(mand. Other)108 108 R .597
-(programs using this library pro)3.097 F .597(vide similar mechanisms.)
--.15 F(The)5.597 E/F2 10/Times-Italic@0 SF(inputr)3.097 E(c)-.37 E F0
-.596(\214le may be edited and)3.096 F(re-read if a program does not pro)
-108 120 Q(vide an)-.15 E 2.5(yo)-.15 G(ther means to incorporate ne)-2.5
-E 2.5(wb)-.25 G(indings.)-2.5 E F1 -.92(Va)87 136.8 S(riables).92 E F0
-.043(Readline has v)108 148.8 R .044
-(ariables that can be used to further customize its beha)-.25 F(vior)-.2
-E 5.044(.A)-.55 G -.25(va)-2.5 G .044(riable may be set in the).25 F F2
-(inpu-)2.544 E(tr)108 160.8 Q(c)-.37 E F0
-(\214le with a statement of the form)2.5 E F1(set)144 177.6 Q F2
-(variable\255name value)2.5 E F0 .807(Except where noted, readline v)108
-194.4 R .807(ariables can tak)-.25 F 3.307(et)-.1 G .807(he v)-3.307 F
-(alues)-.25 E F1(On)3.307 E F0(or)3.307 E F1(Off)3.307 E F0 .807
-(\(without re)3.307 F -.05(ga)-.15 G .807(rd to case\).).05 F .807
-(The v)5.807 F(ari-)-.25 E(ables and their def)108 206.4 Q(ault v)-.1 E
-(alues are:)-.25 E F1(bell\255style \(audible\))108 223.2 Q F0 .01
-(Controls what happens when readline w)144 235.2 R .011
-(ants to ring the terminal bell.)-.1 F .011(If set to)5.011 F F1(none)
-2.511 E F0 2.511(,r)C .011(eadline ne)-2.511 F -.15(ve)-.25 G(r).15 E
-.94(rings the bell.)144 247.2 R .94(If set to)5.94 F F1(visible)3.44 E
-F0 3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25
-(va)-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0
-(,)A(readline attempts to ring the terminal')144 259.2 Q 2.5(sb)-.55 G
-(ell.)-2.5 E F1(comment\255begin \(`)108 271.2 Q(`#')-.63 E('\))-.63 E
-F0 .062(The string that is inserted in)144 283.2 R F1(vi)2.562 E F0 .062
-(mode when the)2.562 F F1(insert\255comment)2.562 E F0 .062
-(command is e)2.562 F -.15(xe)-.15 G 2.562(cuted. This).15 F(com-)2.562
-E(mand is bound to)144 295.2 Q F1(M\255#)2.5 E F0(in emacs mode and to)
-2.5 E F1(#)2.5 E F0(in vi command mode.)2.5 E F1(completion\255ignor)108
-307.2 Q(e\255case \(Off\))-.18 E F0(If set to)144 319.2 Q F1(On)2.5 E F0
-2.5(,r)C(eadline performs \214lename matching and completion in a case\
-\255insensiti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
-(completion\255query\255items \(100\))108 331.2 Q F0 .53
-(This determines when the user is queried about vie)144 343.2 R .529
-(wing the number of possible completions gen-)-.25 F .56(erated by the)
-144 355.2 R F1(possible\255completions)3.06 E F0 3.06(command. It)3.06 F
-.561(may be set to an)3.061 F 3.061(yi)-.15 G(nte)-3.061 E .561(ger v)
--.15 F .561(alue greater than or)-.25 F .783(equal to zero.)144 367.2 R
-.783(If the number of possible completions is greater than or equal to \
-the v)5.783 F .782(alue of this)-.25 F -.25(va)144 379.2 S .237
-(riable, the user is ask).25 F .237(ed whether or not he wishes to vie)
--.1 F 2.737(wt)-.25 G .237(hem; otherwise the)-2.737 F 2.737(ya)-.15 G
-.237(re simply listed)-2.737 F(on the terminal.)144 391.2 Q F1(con)108
-403.2 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)144 415.2
-R F1(On)3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F -.15(ve)-.4
-G .613(rt characters with the eighth bit set to an ASCII k).15 F .912
--.15(ey s)-.1 H .612(equence by).15 F 1.315(stripping the eighth bit an\
-d pre\214xing it with an escape character \(in ef)144 427.2 R 1.316
-(fect, using escape as the)-.25 F F2(meta pr)144 439.2 Q(e\214x)-.37 E
-F0(\).)A F1(disable\255completion \(Off\))108 451.2 Q F0 .038(If set to)
-144 463.2 R F1(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)
--2.538 F .038(ord completion.)-.1 F .038
-(Completion characters will be inserted into the)5.038 F(line as if the)
-144 475.2 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E
-F0(.)A F1(editing\255mode \(emacs\))108 487.2 Q F0 .215
-(Controls whether readline be)144 499.2 R .215(gins with a set of k)-.15
-F .515 -.15(ey b)-.1 H .216(indings similar to emacs or vi.).15 F F1
-(editing\255mode)5.216 E F0(can be set to either)144 511.2 Q F1(emacs)
-2.5 E F0(or)2.5 E F1(vi)2.5 E F0(.)A F1(enable\255k)108 523.2 Q
-(eypad \(Off\))-.1 E F0 .893(When set to)144 535.2 R F1(On)3.393 E F0
-3.393(,r)C .893(eadline will try to enable the application k)-3.393 F
--.15(ey)-.1 G .893(pad when it is called.).15 F .892(Some sys-)5.893 F
-(tems need this to enable the arro)144 547.2 Q 2.5(wk)-.25 G -.15(ey)
--2.6 G(s.).15 E F1(expand\255tilde \(Off\))108 559.2 Q F0(If set to)144
-571.2 Q F1(on)2.5 E F0 2.5(,t)C(ilde e)-2.5 E
-(xpansion is performed when readline attempts w)-.15 E(ord completion.)
--.1 E F1(history-pr)108 583.2 Q(eser)-.18 E -.1(ve)-.1 G(-point).1 E F0
-1.492(If set to)144 595.2 R F1(on)3.992 E F0 3.992(,t)C 1.493(he histor\
-y code attempts to place point at the same location on each history lin\
-e)-3.992 F(retri)144 607.2 Q -.15(ve)-.25 G 2.5(dw).15 G(ith)-2.5 E F1
-(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E F0(or)2.5 E F1(next-history)
-2.5 E F0(.)A F1(horizontal\255scr)108 619.2 Q(oll\255mode \(Off\))-.18 E
-F0 .449(When set to)144 631.2 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E
-.448(es readline use a single line for display)-.1 F 2.948(,s)-.65 G
-.448(crolling the input horizontally on a)-2.948 F 1.194(single screen \
-line when it becomes longer than the screen width rather than wrapping \
-to a ne)144 643.2 R(w)-.25 E(line.)144 655.2 Q F1(input\255meta \(Off\))
-108 667.2 Q F0 .367(If set to)144 679.2 R F1(On)2.867 E F0 2.867(,r)C
-.367(eadline will enable eight-bit input \(that is, it will not clear t\
-he eighth bit in the char)-2.867 F(-)-.2 E .956(acters it reads\), re)
-144 691.2 R -.05(ga)-.15 G .956
-(rdless of what the terminal claims it can support.).05 F .957(The name)
-5.956 F F1(meta\255\215ag)3.457 E F0 .957(is a)3.457 F(synon)144 703.2 Q
-(ym for this v)-.15 E(ariable.)-.25 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(3)195.95 E EP
-%%Page: 4 4
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(isear)108 84 Q(ch\255terminators \(`)-.18 E
-(`C\255[ C\255J')-.63 E('\))-.63 E F0 .439(The string of characters tha\
-t should terminate an incremental search without subsequently e)144 96 R
--.15(xe)-.15 G(cut-).15 E .934(ing the character as a command.)144 108 R
-.935(If this v)5.935 F .935(ariable has not been gi)-.25 F -.15(ve)-.25
-G 3.435(nav).15 G .935(alue, the characters)-3.685 F/F2 10
-/Times-Italic@0 SF(ESC)3.435 E F0(and)144 120 Q F2(C\255J)2.5 E F0
-(will terminate an incremental search.)2.5 E F1 -.1(ke)108 132 S
-(ymap \(emacs\)).1 E F0 2.323(Set the current readline k)144 144 R -.15
-(ey)-.1 G 4.823(map. The).15 F 2.323(set of le)4.823 F -.05(ga)-.15 G
-4.823(lk).05 G -.15(ey)-4.923 G 2.323(map names is).15 F F2 2.323
-(emacs, emacs-standar)4.823 F(d,)-.37 E .808
-(emacs-meta, emacs-ctlx, vi, vi-mo)144 156 R(ve)-.1 E 3.308(,v)-.1 G
-(i-command)-3.308 E F0 3.308(,a)C(nd)-3.308 E F2(vi-insert)3.308 E F0(.)
-.68 E F2(vi)5.808 E F0 .808(is equi)3.308 F -.25(va)-.25 G .809(lent to)
-.25 F F2(vi-command)3.309 E F0(;)A F2(emacs)144 168 Q F0 .697(is equi)
-3.197 F -.25(va)-.25 G .697(lent to).25 F F2(emacs-standar)3.197 E(d)
--.37 E F0 5.697(.T)C .697(he def)-5.697 F .697(ault v)-.1 F .697
-(alue is)-.25 F F2(emacs)3.197 E F0 5.697(.T).27 G .697(he v)-5.697 F
-.697(alue of)-.25 F F1(editing\255mode)3.196 E F0(also af)144 180 Q
-(fects the def)-.25 E(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1
-(mark\255dir)108 192 Q(ectories \(On\))-.18 E F0(If set to)144 204 Q F1
-(On)2.5 E F0 2.5(,c)C(ompleted directory names ha)-2.5 E .3 -.15(ve a s)
--.2 H(lash appended.).15 E F1(mark\255modi\214ed\255lines \(Off\))108
-216 Q F0(If set to)144 228 Q F1(On)2.5 E F0 2.5(,h)C
-(istory lines that ha)-2.5 E .3 -.15(ve b)-.2 H
-(een modi\214ed are displayed with a preceding asterisk \().15 E F1(*)A
-F0(\).)A F1(mark\255symlink)108 240 Q(ed\255dir)-.1 E(ectories \(Off\))
--.18 E F0 .175(If set to)144 252 R F1(On)2.675 E F0 2.675(,c)C .175
-(ompleted names which are symbolic links to directories ha)-2.675 F .475
--.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 264
-Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
-(match\255hidden\255\214les \(On\))108 276 Q F0 .193(This v)144 288 R
-.193(ariable, when set to)-.25 F F1(On)2.693 E F0 2.693(,c)C .192
-(auses readline to match \214les whose names be)-2.693 F .192
-(gin with a `.)-.15 F 2.692('\()-.7 G(hidden)-2.692 E 1.023
-(\214les\) when performing \214lename completion, unless the leading `.)
-144 300 R 3.523('i)-.7 G 3.523(ss)-3.523 G 1.024
-(upplied by the user in the)-3.523 F(\214lename to be completed.)144 312
-Q F1(output\255meta \(Off\))108 324 Q F0 .507(If set to)144 336 R F1(On)
-3.007 E F0 3.007(,r)C .507(eadline will display characters with the eig\
-hth bit set directly rather than as a meta-)-3.007 F(pre\214x)144 348 Q
-(ed escape sequence.)-.15 E F1(page\255completions \(On\))108 360 Q F0
-.808(If set to)144 372 R F1(On)3.308 E F0 3.308(,r)C .808
-(eadline uses an internal)-3.308 F F2(mor)3.308 E(e)-.37 E F0(-lik)A
-3.308(ep)-.1 G .808(ager to display a screenful of possible comple-)
--3.308 F(tions at a time.)144 384 Q F1
-(print\255completions\255horizontally \(Off\))108 396 Q F0 1.319
-(If set to)144 408 R F1(On)3.819 E F0 3.819(,r)C 1.318(eadline will dis\
-play completions with matches sorted horizontally in alphabetical)-3.819
-F(order)144 420 Q 2.5(,r)-.4 G(ather than do)-2.5 E(wn the screen.)-.25
-E F1(sho)108 432 Q(w\255all\255if\255ambiguous \(Off\))-.1 E F0 .477
-(This alters the def)144 444 R .477(ault beha)-.1 F .477
-(vior of the completion functions.)-.2 F .478(If set to)5.478 F F1(on)
-2.978 E F0 2.978(,w)C .478(ords which ha)-3.078 F .778 -.15(ve m)-.2 H
-(ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 456 R(bell.)144 468 Q F1
-(visible\255stats \(Off\))108 480 Q F0 .846(If set to)144 492 R F1(On)
-3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F 3.346
-(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846
-(\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 504 Q F1(Conditional Constructs)
-87 520.8 Q F0 .05(Readline implements a f)108 532.8 R .05(acility simil\
-ar in spirit to the conditional compilation features of the C preproces\
-sor)-.1 F .096(which allo)108 544.8 R .096(ws k)-.25 F .396 -.15(ey b)
--.1 H .096(indings and v).15 F .096
-(ariable settings to be performed as the result of tests.)-.25 F .097
-(There are four parser)5.096 F(directi)108 556.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 573.6 Q F0(The)24.89 E F1($if)2.963 E
-F0 .463(construct allo)2.963 F .462(ws bindings to be made based on the\
- editing mode, the terminal being used,)-.25 F .477
-(or the application using readline.)144 585.6 R .477(The te)5.477 F .477
-(xt of the test e)-.15 F .477
-(xtends to the end of the line; no characters)-.15 F
-(are required to isolate it.)144 597.6 Q F1(mode)144 614.4 Q F0(The)
-12.67 E F1(mode=)3.712 E F0 1.212(form of the)3.712 F F1($if)3.711 E F0
-(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711(su).15 G 1.211
-(sed to test whether readline is in emacs or vi)-3.711 F 3.065
-(mode. This)180 626.4 R .565(may be used in conjunction with the)3.065 F
-F1 .565(set k)3.065 F(eymap)-.1 E F0 .565(command, for instance, to)
-3.065 F .03(set bindings in the)180 638.4 R F2(emacs-standar)2.529 E(d)
--.37 E F0(and)2.529 E F2(emacs-ctlx)2.529 E F0 -.1(ke)2.529 G .029
-(ymaps only if readline is starting out)-.05 F(in emacs mode.)180 650.4
-Q F1(term)144 667.2 Q F0(The)15.46 E F1(term=)3.196 E F0 .696
-(form may be used to include terminal-speci\214c k)3.196 F .996 -.15
-(ey b)-.1 H .697(indings, perhaps to bind).15 F .654(the k)180 679.2 R
-.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
-(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
-(wo)3.154 G .654(rd on the right side of).1 F(the)180 691.2 Q F1(=)3.003
-E F0 .503(is tested ag)3.003 F .504(ainst the full name of the terminal\
- and the portion of the terminal name)-.05 F(before the \214rst)180
-703.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.5 E F0
-(to match both)2.5 E F2(sun)2.5 E F0(and)2.5 E F2(sun\255cmd)2.5 E F0
-2.5(,f).77 G(or instance.)-2.5 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(4)195.95 E EP
-%%Page: 5 5
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(application)144 84 Q F0(The)180 96 Q F1(application)
-3.003 E F0 .503
-(construct is used to include application-speci\214c settings.)3.003 F
-.503(Each program)5.503 F .114(using the readline library sets the)180
-108 R/F2 10/Times-Italic@0 SF .114(application name)2.614 F F0 2.614(,a)
-C .114(nd an initialization \214le can test for a)-2.614 F .501
-(particular v)180 120 R 3.001(alue. This)-.25 F .501
-(could be used to bind k)3.001 F .801 -.15(ey s)-.1 H .5
-(equences to functions useful for a spe-).15 F .396(ci\214c program.)180
-132 R -.15(Fo)5.396 G 2.896(ri).15 G .396(nstance, the follo)-2.896 F
-.396(wing command adds a k)-.25 F .696 -.15(ey s)-.1 H .397
-(equence that quotes the).15 F(current or pre)180 144 Q(vious w)-.25 E
-(ord in Bash:)-.1 E F1($if)180 168 Q F0(Bash)2.5 E 2.5(#Q)180 180 S
-(uote the current or pre)-2.5 E(vious w)-.25 E(ord)-.1 E
-("\\C-xq": "\\eb\\"\\ef\\"")180 192 Q F1($endif)180 204 Q($endif)108
-220.8 Q F0(This command, as seen in the pre)9.33 E(vious e)-.25 E
-(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1($else)
-108 237.6 Q F0(Commands in this branch of the)15.45 E F1($if)2.5 E F0
-(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
-(cuted if the test f).15 E(ails.)-.1 E F1($include)108 254.4 Q F0 .357
-(This directi)144 266.4 R .657 -.15(ve t)-.25 H(ak).15 E .357
-(es a single \214lename as an ar)-.1 F .356
-(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 278.4 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
--.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1
-($include)144 302.4 Q F2(/etc/inputr)5.833 E(c)-.37 E/F3 10.95
-/Times-Bold@0 SF(SEARCHING)72 319.2 Q F0 1.003(Readline pro)108 331.2 R
-1.003(vides commands for searching through the command history for line\
-s containing a speci\214ed)-.15 F 2.5(string. There)108 343.2 R(are tw)
-2.5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.5 E(emental)-.37 E F0
-(and)2.5 E F2(non-incr)2.5 E(emental)-.37 E F0(.).51 E .698
-(Incremental searches be)108 360 R .698
-(gin before the user has \214nished typing the search string.)-.15 F
-.697(As each character of the)5.697 F .112
-(search string is typed, readline displays the ne)108 372 R .112
-(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
-E 5.113(.A)-.55 G(n)-5.113 E .545
-(incremental search requires only as man)108 384 R 3.045(yc)-.15 G .544
-(haracters as needed to \214nd the desired history entry)-3.045 F 5.544
-(.T)-.65 G 3.044(os)-6.344 G(earch)-3.044 E(backw)108 396 Q .18
-(ard in the history for a particular string, type)-.1 F F1(C\255r)2.681
-E F0 5.181(.T)C(yping)-5.981 E F1(C\255s)2.681 E F0 .181(searches forw)
-2.681 F .181(ard through the history)-.1 F(.)-.65 E .354
-(The characters present in the v)108 408 R .354(alue of the)-.25 F F1
-(isear)2.854 E(ch-terminators)-.18 E F0 -.25(va)2.854 G .354
-(riable are used to terminate an incremen-).25 F .6(tal search.)108 420
-R .6(If that v)5.6 F .6(ariable has not been assigned a v)-.25 F .6
-(alue the)-.25 F F2(Escape)3.1 E F0(and)3.1 E F1(C\255J)3.1 E F0 .6
-(characters will terminate an)3.1 F .123(incremental search.)108 432 R
-F1(C\255G)5.123 E F0 .123
-(will abort an incremental search and restore the original line.)2.623 F
-.122(When the search is)5.122 F(terminated, the history entry containin\
-g the search string becomes the current line.)108 444 Q 2.406 -.8
-(To \214)108 460.8 T .806
-(nd other matching entries in the history list, type).8 F F1(C\255s)
-3.306 E F0(or)3.306 E F1(C\255r)3.306 E F0 .806(as appropriate.)3.306 F
-.807(This will search back-)5.806 F -.1(wa)108 472.8 S 1.309(rd or forw)
-.1 F 1.309(ard in the history for the ne)-.1 F 1.309
-(xt line matching the search string typed so f)-.15 F(ar)-.1 E 6.309(.A)
--.55 G 1.609 -.15(ny o)-6.309 H 1.308(ther k).15 F -.15(ey)-.1 G .317
-(sequence bound to a readline command will terminate the search and e)
-108 484.8 R -.15(xe)-.15 G .318(cute that command.).15 F -.15(Fo)5.318 G
-2.818(ri).15 G(nstance,)-2.818 E 3.481(an)108 496.8 S -.25(ew)-3.481 G
-.981(line will terminate the search and accept the line, thereby e).25 F
--.15(xe)-.15 G .98(cuting the command from the history).15 F 3.061
-(list. A)108 508.8 R(mo)3.061 E -.15(ve)-.15 G .562
-(ment command will terminate the search, mak).15 F 3.062(et)-.1 G .562
-(he last line found the current line, and be)-3.062 F(gin)-.15 E
-(editing.)108 520.8 Q .567(Non-incremental searches read the entire sea\
-rch string before starting to search for matching history lines.)108
-537.6 R(The search string may be typed by the user or be part of the co\
-ntents of the current line.)108 549.6 Q F3(EDITING COMMANDS)72 566.4 Q
-F0 1.391(The follo)108 578.4 R 1.391
-(wing is a list of the names of the commands and the def)-.25 F 1.391
-(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
-3.892(ya)-.15 G(re)-3.892 E 2.5(bound. Command)108 590.4 R
-(names without an accompan)2.5 E(ying k)-.15 E .3 -.15(ey s)-.1 H
-(equence are unbound by def).15 E(ault.)-.1 E .055(In the follo)108
-607.2 R .055(wing descriptions,)-.25 F F2(point)2.555 E F0 .055
-(refers to the current cursor position, and)2.555 F F2(mark)2.555 E F0
-.054(refers to a cursor position)2.554 F(sa)108 619.2 Q -.15(ve)-.2 G
-2.5(db).15 G 2.5(yt)-2.5 G(he)-2.5 E F1(set\255mark)2.5 E F0 2.5
-(command. The)2.5 F(te)2.5 E
-(xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
-2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 636 Q(or Mo)-.25 E(ving)-.1 E
-(beginning\255of\255line \(C\255a\))108 648 Q F0(Mo)144 660 Q .3 -.15
-(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
-(end\255of\255line \(C\255e\))108 672 Q F0(Mo)144 684 Q .3 -.15(ve t)
--.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108 696 S
-(rward\255char \(C\255f\)).25 E F0(Mo)144 708 Q .3 -.15(ve f)-.15 H(orw)
-.15 E(ard a character)-.1 E(.)-.55 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(5)195.95 E EP
-%%Page: 6 6
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(backward\255char \(C\255b\))108 84 Q F0(Mo)144 96 Q .3
--.15(ve b)-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 108 S
-(rward\255w).25 E(ord \(M\255f\))-.1 E F0(Mo)144 120 Q .822 -.15(ve f)
--.15 H(orw).15 E .522(ard to the end of the ne)-.1 F .523(xt w)-.15 F
-3.023(ord. W)-.1 F .523
-(ords are composed of alphanumeric characters \(let-)-.8 F
-(ters and digits\).)144 132 Q F1(backward\255w)108 144 Q(ord \(M\255b\))
--.1 E F0(Mo)144 156 Q 1.71 -.15(ve b)-.15 H 1.41
-(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
-(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
-(characters \(letters and digits\).)144 168 Q F1(clear\255scr)108 180 Q
-(een \(C\255l\))-.18 E F0 .993(Clear the screen lea)144 192 R .993
-(ving the current line at the top of the screen.)-.2 F -.4(Wi)5.993 G
-.993(th an ar).4 F .993(gument, refresh the)-.18 F
-(current line without clearing the screen.)144 204 Q F1 -.18(re)108 216
-S(draw\255curr).18 E(ent\255line)-.18 E F0(Refresh the current line.)144
-228 Q F1(Commands f)87 244.8 Q(or Manipulating the History)-.25 E
-(accept\255line \(Newline, Retur)108 256.8 Q(n\))-.15 E F0 .365
-(Accept the line re)144 268.8 R -.05(ga)-.15 G .364
-(rdless of where the cursor is.).05 F .364(If this line is non-empty)
-5.364 F 2.864(,i)-.65 G 2.864(tm)-2.864 G .364(ay be added to the)-2.864
-F .74(history list for future recall with)144 280.8 R F1
-(add_history\(\))3.24 E F0 5.741(.I)C 3.241(ft)-5.741 G .741
-(he line is a modi\214ed history line, the history)-3.241 F
-(line is restored to its original state.)144 292.8 Q F1(pr)108 304.8 Q
--.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0(Fetch the pre)144
-316.8 Q(vious command from the history list, mo)-.25 E
-(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 328.8 Q
-F0(Fetch the ne)144 340.8 Q(xt command from the history list, mo)-.15 E
-(ving forw)-.15 E(ard in the list.)-.1 E F1
-(beginning\255of\255history \(M\255<\))108 352.8 Q F0(Mo)144 364.8 Q .3
--.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)
--.65 E F1(end\255of\255history \(M\255>\))108 376.8 Q F0(Mo)144 388.8 Q
-.3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5
-(,i)-.65 G(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18
-(re v)108 400.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0
-1.471(Search backw)144 412.8 R 1.471
-(ard starting at the current line and mo)-.1 F 1.47
-(ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 424.8 Q F1 -.25(fo)108 436.8 S
-(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
-(Search forw)144 448.8 R 1.131(ard starting at the current line and mo)
--.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)
--.25 F(.)-.65 E(This is an incremental search.)144 460.8 Q F1
-(non\255incr)108 472.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
-(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)
-144 484.8 R .164(ard through the history starting at the current line u\
-sing a non-incremental search for)-.1 F 2.5(as)144 496.8 S
-(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 508.8 Q
-(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
-E F0 1.353(Search forw)144 520.8 R 1.354(ard through the history using \
-a non-incremental search for a string supplied by the)-.1 F(user)144
-532.8 Q(.)-.55 E F1(history\255sear)108 544.8 Q(ch\255f)-.18 E(orward)
--.25 E F0 .249(Search forw)144 556.8 R .249(ard through the history for\
- the string of characters between the start of the current line)-.1 F
-(and the current cursor position \(the)144 568.8 Q/F2 10/Times-Italic@0
-SF(point)2.5 E F0 2.5(\). This)B(is a non-incremental search.)2.5 E F1
-(history\255sear)108 580.8 Q(ch\255backward)-.18 E F0 .95(Search backw)
-144 592.8 R .951(ard through the history for the string of characters b\
-etween the start of the current)-.1 F(line and the point.)144 604.8 Q
-(This is a non-incremental search.)5 E F1(yank\255nth\255ar)108 616.8 Q
-2.5(g\()-.1 G<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144
-628.8 R .622(gument to the pre)-.18 F .622
-(vious command \(usually the second w)-.25 F .622(ord on the pre)-.1 F
-.622(vious line\))-.25 F .794(at point.)144 640.8 R -.4(Wi)5.794 G .794
-(th an ar).4 F(gument)-.18 E F2(n)3.294 E F0 3.294(,i).24 G .794
-(nsert the)-3.294 F F2(n)3.294 E F0 .794(th w)B .794(ord from the pre)
--.1 F .794(vious command \(the w)-.25 F .795(ords in the)-.1 F(pre)144
-652.8 Q .292(vious command be)-.25 F .292(gin with w)-.15 F .291
-(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)-2.791 H(ti).15 E .591
--.15(ve a)-.25 H -.18(rg).15 G .291(ument inserts the).18 F F2(n)2.791 E
-F0 .291(th w)B .291(ord from the end of)-.1 F(the pre)144 664.8 Q
-(vious command.)-.25 E F1(yank\255last\255ar)108 676.8 Q 2.5(g\()-.1 G
--1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307
-(Insert the last ar)144 688.8 R 1.307(gument to the pre)-.18 F 1.307
-(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308
-(vious history entry\).)-.25 F -.4(Wi)144 700.8 S .736(th an ar).4 F
-.736(gument, beha)-.18 F 1.036 -.15(ve ex)-.2 H .736(actly lik).15 F(e)
--.1 E F1(yank\255nth\255ar)3.235 E(g)-.1 E F0 5.735(.S)C(uccessi)-5.735
-E 1.035 -.15(ve c)-.25 H .735(alls to).15 F F1(yank\255last\255ar)3.235
-E(g)-.1 E F0(mo)3.235 E -.15(ve)-.15 G
-(back through the history list, inserting the last ar)144 712.8 Q
-(gument of each line in turn.)-.18 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(6)195.95 E EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(Commands f)87 84 Q(or Changing T)-.25 E(ext)-.92 E
-(delete\255char \(C\255d\))108 96 Q F0 .357
-(Delete the character at point.)144 108 R .358(If point is at the be)
-5.358 F .358(ginning of the line, there are no characters in the)-.15 F
-(line, and the last character typed w)144 120 Q(as not bound to)-.1 E F1
-(delete\255char)2.5 E F0 2.5(,t)C(hen return)-2.5 E/F2 9/Times-Bold@0 SF
-(EOF)2.5 E/F3 9/Times-Roman@0 SF(.)A F1
-(backward\255delete\255char \(Rubout\))108 132 Q F0 .553
-(Delete the character behind the cursor)144 144 R 5.553(.W)-.55 G .553
-(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553(umeric ar)-3.053 F
-.552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552(he deleted te).15 F
-.552(xt on)-.15 F(the kill ring.)144 156 Q F1 -.25(fo)108 168 S
-(rward\255backward\255delete\255char).25 E F0 .473
-(Delete the character under the cursor)144 180 R 2.973(,u)-.4 G .474
-(nless the cursor is at the end of the line, in which case the)-2.973 F
-(character behind the cursor is deleted.)144 192 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 204 Q F0 1.229(Add the ne)144
-216 R 1.228(xt character that you type to the line v)-.15 F 3.728
-(erbatim. This)-.15 F 1.228(is ho)3.728 F 3.728(wt)-.25 G 3.728(oi)
--3.728 G 1.228(nsert characters lik)-3.728 F(e)-.1 E F1(C\255q)144 228 Q
-F0 2.5(,f)C(or e)-2.5 E(xample.)-.15 E F1(tab\255insert \(M-T)108 240 Q
-(AB\))-.9 E F0(Insert a tab character)144 252 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 264 Q F0
-(Insert the character typed.)144 276 Q F1(transpose\255chars \(C\255t\))
-108 288 Q F0 .321(Drag the character before point forw)144 300 R .321
-(ard o)-.1 F -.15(ve)-.15 G 2.821(rt).15 G .321
-(he character at point, mo)-2.821 F .322(ving point forw)-.15 F .322
-(ard as well.)-.1 F 1.182
-(If point is at the end of the line, then this transposes the tw)144 312
-R 3.682(oc)-.1 G 1.182(haracters before point.)-3.682 F(Ne)6.182 E -.05
-(ga)-.15 G(ti).05 E -.15(ve)-.25 G(ar)144 324 Q(guments ha)-.18 E .3
--.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
-(transpose\255w)108 336 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
-348 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
--.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w)
--2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F
-(is at the end of the line, this transposes the last tw)144 360 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 372 Q
-(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144 384
-R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga)
--.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
-(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 396 S(rd, b).1 E
-(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 408 Q
-(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 420 Q 1.647
-(wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147
-(ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15
-(ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre)
--.25 F(vious)-.25 E -.1(wo)144 432 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 444 Q
-(ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144 456
-R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga)
--.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974
-(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 468 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 480
-S(rwrite\255mode).1 E F0 -.8(To)144 492 S .437(ggle o).8 F -.15(ve)-.15
-G .437(rwrite mode.).15 F -.4(Wi)5.437 G .437(th an e).4 F .437
-(xplicit positi)-.15 F .738 -.15(ve n)-.25 H .438(umeric ar).15 F .438
-(gument, switches to o)-.18 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4
-(Wi)144 504 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
--.15(ve n)-.25 H .781(umeric ar).15 F .781
-(gument, switches to insert mode.)-.18 F .78(This command af)5.781 F
-(fects)-.25 E(only)144 516 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
-4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15
-F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F4 10
-/Times-Italic@0 SF -.37(re)4.395 G(adline\(\)).37 E F0 1.895
-(starts in insert)4.395 F 3.969(mode. In)144 528 R -.15(ove)3.969 G
-1.469(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
-F0 1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F
-.957(pushing the te)144 540 R .957(xt to the right.)-.15 F .958
-(Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0
-.958(replace the character)3.458 F(before point with a space.)144 552 Q
-(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
-568.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 580.8 Q F0
-(Kill the te)144 592.8 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 604.8 Q F0(Kill backw)
-144 616.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 628.8 Q F0(Kill backw)144 640.8
-Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
-(The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
--2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 652.8 Q F0
-(Kill all characters on the current line, no matter where point is.)144
-664.8 Q F1(kill\255w)108 676.8 Q(ord \(M\255d\))-.1 E F0 1.308
-(Kill from point the end of the current w)144 688.8 R 1.308
-(ord, or if between w)-.1 F 1.308(ords, to the end of the ne)-.1 F 1.307
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 700.8 S
-(rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G
-(rward\255w).25 E(ord)-.1 E F0(.)A(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(7)195.95 E EP
-%%Page: 8 8
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(backward\255kill\255w)108 84 Q(ord \(M\255Rubout\))-.1
-E F0(Kill the w)144 96 Q(ord behind point.)-.1 E -.8(Wo)5 G
-(rd boundaries are the same as those used by).8 E F1(backward\255w)2.5 E
-(ord)-.1 E F0(.)A F1(unix\255w)108 108 Q(ord\255rubout \(C\255w\))-.1 E
-F0 .364(Kill the w)144 120 R .364
-(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1
-F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
-(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144
-132 Q F1(delete\255horizontal\255space \(M\255\\\))108 144 Q F0
-(Delete all spaces and tabs around point.)144 156 Q F1(kill\255r)108 168
-Q(egion)-.18 E F0 1.13(Kill the te)144 180 R 1.13
-(xt between the point and)-.15 F/F2 10/Times-Italic@0 SF(mark)3.63 E F0
-(\(sa)3.63 E -.15(ve)-.2 G 3.63(dc).15 G 1.13(ursor position\).)-3.63 F
-1.13(This te)6.13 F 1.13(xt is referred to as the)-.15 F F2 -.37(re)144
-192 S(gion)-.03 E F0(.)A F1(copy\255r)108 204 Q(egion\255as\255kill)-.18
-E F0(Cop)144 216 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
-(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
-(copy\255backward\255w)108 228 Q(ord)-.1 E F0(Cop)144 240 Q 4.8(yt)-.1 G
-2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E(fer)
--.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301
-(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144 252
-Q(ord)-.1 E F0(.)A F1(copy\255f)108 264 Q(orward\255w)-.25 E(ord)-.1 E
-F0(Cop)144 276 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008(ord follo)-.1
-F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.007(.T)
--.55 G 2.007(he w)-7.007 F 2.007(ord boundaries are the same as)-.1 F F1
--.25(fo)4.507 G -.37(r-).25 G(ward\255w)144 288 Q(ord)-.1 E F0(.)A F1
-(yank \(C\255y\))108 300 Q F0 -1(Ya)144 312 S
-(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25
-E F1(yank\255pop \(M\255y\))108 324 Q F0
-(Rotate the kill ring, and yank the ne)144 336 Q 2.5(wt)-.25 G 2.5
-(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
-F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 352.8 Q
-(guments)-.1 E(digit\255ar)108 364.8 Q
-(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .641
-(Add this digit to the ar)144 376.8 R .641
-(gument already accumulating, or start a ne)-.18 F 3.141(wa)-.25 G -.18
-(rg)-3.141 G 3.142(ument. M\255\255).18 F .642(starts a ne)3.142 F(g-)
--.15 E(ati)144 388.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G(ument.).18 E F1
-(uni)108 400.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .779
-(This is another w)144 412.8 R .779(ay to specify an ar)-.1 F 3.279
-(gument. If)-.18 F .779(this command is follo)3.279 F .778
-(wed by one or more digits,)-.25 F 1.376
-(optionally with a leading minus sign, those digits de\214ne the ar)144
-424.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-436.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
-3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
-(ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
--.2 F(-)-.2 E .898(wise ignored.)144 448.8 R .898
-(As a special case, if this command is immediately follo)5.898 F .898
-(wed by a character that is)-.25 F .243
-(neither a digit or minus sign, the ar)144 460.8 R .243
-(gument count for the ne)-.18 F .243(xt command is multiplied by four)
--.15 F 5.242(.T)-.55 G(he)-5.242 E(ar)144 472.8 Q .378
-(gument count is initially one, so e)-.18 F -.15(xe)-.15 G .378
-(cuting this function the \214rst time mak).15 F .378(es the ar)-.1 F
-.378(gument count)-.18 F(four)144 484.8 Q 2.5(,as)-.4 G(econd time mak)
--2.5 E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1
-(Completing)87 501.6 Q(complete \(T)108 513.6 Q(AB\))-.9 E F0 1.909
-(Attempt to perform completion on the te)144 525.6 R 1.908
-(xt before point.)-.15 F 1.908(The actual completion performed is)6.908
-F(application-speci\214c.)144 537.6 Q F1(Bash)5.517 E F0 3.017(,f)C .518
-(or instance, attempts completion treating the te)-3.017 F .518
-(xt as a v)-.15 F .518(ariable \(if the)-.25 F(te)144 549.6 Q .657
-(xt be)-.15 F .657(gins with)-.15 F F1($)3.156 E F0 .656
-(\), username \(if the te)B .656(xt be)-.15 F .656(gins with)-.15 F F1
-(~)3.156 E F0 .656(\), hostname \(if the te)B .656(xt be)-.15 F .656
-(gins with)-.15 F F1(@)3.156 E F0 .656(\), or)B .929
-(command \(including aliases and functions\) in turn.)144 561.6 R .93
-(If none of these produces a match, \214lename)5.929 F 1.274
-(completion is attempted.)144 573.6 R F1(Gdb)6.273 E F0 3.773(,o)C 3.773
-(nt)-3.773 G 1.273(he other hand, allo)-3.773 F 1.273
-(ws completion of program functions and)-.25 F -.25(va)144 585.6 S(riab\
-les, and only attempts \214lename completion under certain circumstance\
-s.).25 E F1(possible\255completions \(M\255?\))108 597.6 Q F0
-(List the possible completions of the te)144 609.6 Q(xt before point.)
--.15 E F1(insert\255completions \(M\255*\))108 621.6 Q F0 .783
-(Insert all completions of the te)144 633.6 R .783
-(xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
-.783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144
-645.6 Q F0(.)A F1(menu\255complete)108 657.6 Q F0 .929(Similar to)144
-669.6 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
-F .929(ord to be completed with a single match from the list of)-.1 F
-1.193(possible completions.)144 681.6 R 1.193(Repeated e)6.193 F -.15
-(xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194
-(steps through the list of possible)3.694 F .829
-(completions, inserting each match in turn.)144 693.6 R .828
-(At the end of the list of completions, the bell is rung)5.828 F .965
-(\(subject to the setting of)144 705.6 R F1 .965
-(0and the original text is r)3.465 F(estor)-.18 E 3.465(ed. An)-.18 F
-(ar)3.465 E .966(gument of)-.1 F F2(n)3.466 E F1(mo)3.466 E -.1(ve)-.1 G
-(s).1 E F2(n)3.466 E F1(posi-)3.466 E 1.249(tions f)144 717.6 R 1.249
-(orward in the list of matches; a negati)-.25 F 1.449 -.1(ve a)-.1 H -.1
-(rg).1 G 1.248(ument may be used to mo).1 F 1.448 -.1(ve b)-.1 H
-(ackward).1 E(thr)144 729.6 Q(ough the list.)-.18 E
-(This command is intended to be bound to T)5 E(AB, b)-.9 E
-(ut is unbound by default.)-.2 E F0(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(8)195.95 E EP
-%%Page: 9 9
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(delete\255char\255or\255list)108 84 Q F0 .373
-(Deletes the character under the cursor if not at the be)144 96 R .374
-(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete-char)2.874 E
-F0(\).)A(If at the end of the line, beha)144 108 Q -.15(ve)-.2 G 2.5(si)
-.15 G(dentically to)-2.5 E F1(possible-completions)2.5 E F0(.)A F1 -.25
-(Ke)87 124.8 S(yboard Macr).25 E(os)-.18 E(start\255kbd\255macr)108
-136.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\)).833 E F0(Be)144 148.8 Q
-(gin sa)-.15 E(ving the characters typed into the current k)-.2 E -.15
-(ey)-.1 G(board macro.).15 E F1(end\255kbd\255macr)108 160.8 Q 2.5(o\()
--.18 G(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 172.8 Q
-(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
-(board macro and store the de\214nition.).15 E F1
-(call\255last\255kbd\255macr)108 184.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
-E F0(Re-e)144 196.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
-G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F(typed at the k)144 208.8 Q -.15(ey)-.1 G(board.).15 E F1
-(Miscellaneous)87 225.6 Q -.18(re)108 237.6 S<ad72>.18 E
-(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776
-(Read in the contents of the)144 249.6 R/F2 10/Times-Italic@0 SF(inputr)
-4.276 E(c)-.37 E F0 1.777(\214le, and incorporate an)4.276 F 4.277(yb)
--.15 G 1.777(indings or v)-4.277 F 1.777(ariable assignments)-.25 F
-(found there.)144 261.6 Q F1(abort \(C\255g\))108 273.6 Q F0 3.249
-(Abort the current editing command and ring the terminal')144 285.6 R
-5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
-(bell\255style)144 297.6 Q F0(\).)A F1(do\255upper)108 309.6 Q
-(case\255v)-.18 E(ersion \(M\255a, M\255b, M\255)-.1 E F2(x)A F1 2.5(,.)
-C(..\))-2.5 E F0 1.755(If the meta\214ed character)144 321.6 R F2(x)
-4.255 E F0 1.755(is lo)4.255 F 1.756
-(wercase, run the command that is bound to the corresponding)-.25 F
-(uppercase character)144 333.6 Q(.)-.55 E F1(pr)108 345.6 Q
-(e\214x\255meta \(ESC\))-.18 E F0(Metafy the ne)144 357.6 Q
-(xt character typed.)-.15 E/F3 9/Times-Bold@0 SF(ESC)5 E F1(f)2.25 E F0
-(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1(Meta\255f)2.5 E F0(.)A F1
-(undo \(C\255_, C\255x C\255u\))108 369.6 Q F0
-(Incremental undo, separately remembered for each line.)144 381.6 Q F1
--2.29 -.18(re v)108 393.6 T(ert\255line \(M\255r\)).08 E F0 1.095
-(Undo all changes made to this line.)144 405.6 R 1.095(This is lik)6.095
-F 3.595(ee)-.1 G -.15(xe)-3.745 G 1.095(cuting the).15 F F1(undo)3.595 E
-F0 1.095(command enough times to)3.595 F
-(return the line to its initial state.)144 417.6 Q F1
-(tilde\255expand \(M\255&\))108 429.6 Q F0(Perform tilde e)144 441.6 Q
-(xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 453.6 Q F0
-(Set the mark to the point.)144 465.6 Q(If a numeric ar)5 E
-(gument is supplied, the mark is set to that position.)-.18 E F1
-(exchange\255point\255and\255mark \(C\255x C\255x\))108 477.6 Q F0(Sw)
-144 489.6 Q .282(ap the point with the mark.)-.1 F .283
-(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
-2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
-144 501.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
-(character\255sear)108 513.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144
-525.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G
-3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
-(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05
-(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre)
-144 537.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 549.6 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 561.6 S 1.043
-(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
-3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
-(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
--.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
-(count searches for subsequent occurrences.)144 573.6 Q F1
-(insert\255comment \(M\255#\))108 585.6 Q F0 -.4(Wi)144 597.6 S .481
-(thout a numeric ar).4 F .481(gument, the v)-.18 F .481
-(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va)
-2.981 G .48(riable is inserted at the).25 F(be)144 609.6 Q .097
-(ginning of the current line.)-.15 F .098(If a numeric ar)5.097 F .098
-(gument is supplied, this command acts as a toggle:)-.18 F(if)5.098 E
-.322(the characters at the be)144 621.6 R .321
-(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
-(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is)
--.25 F 1.013(inserted, otherwise the characters in)144 633.6 R F1
-(comment-begin)3.514 E F0 1.014(are deleted from the be)3.514 F 1.014
-(ginning of the line.)-.15 F 1.469
-(In either case, the line is accepted as if a ne)144 645.6 R 1.468
-(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F
-1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 657.6 Q F0(mak)
-2.982 E .483(es the current line a shell comment.)-.1 F .483
-(If a numeric ar)5.483 F .483(gument causes the comment)-.18 F
-(character to be remo)144 669.6 Q -.15(ve)-.15 G(d, the line will be e)
-.15 E -.15(xe)-.15 G(cuted by the shell.).15 E F1(dump\255functions)108
-681.6 Q F0 .627(Print all of the functions and their k)144 693.6 R .927
--.15(ey b)-.1 H .626(indings to the readline output stream.).15 F .626
-(If a numeric ar)5.626 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 705.6 Q
-(ay that it can be made part of an)-.1 E F2(inputr)2.5 E(c)-.37 E F0
-(\214le.)2.5 E(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(9)
-195.95 E EP
-%%Page: 10 10
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(dump\255v)108 84 Q(ariables)-.1 E F0 .283
-(Print all of the settable v)144 96 R .283(ariables and their v)-.25 F
-.283(alues to the readline output stream.)-.25 F .283(If a numeric ar)
-5.283 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 108 Q
-(ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr)
-2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255macr)108 120 Q(os)-.18 E F0
-.756(Print all of the readline k)144 132 R 1.056 -.15(ey s)-.1 H .756
-(equences bound to macros and the strings the).15 F 3.256(yo)-.15 G
-3.256(uput. If)-3.256 F 3.255(an)3.255 G(umeric)-3.255 E(ar)144 144 Q
-.528(gument is supplied, the output is formatted in such a w)-.18 F .528
-(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
-(\214le.)144 156 Q F1(emacs\255editing\255mode \(C\255e\))108 168 Q F0
-(When in)144 180 Q F1(vi)2.5 E F0(command mode, this causes a switch to)
-2.5 E F1(emacs)2.5 E F0(editing mode.)2.5 E F1
-(vi\255editing\255mode \(M\255C\255j\))108 192 Q F0(When in)144 204 Q F1
-(emacs)2.5 E F0(editing mode, this causes a switch to)2.5 E F1(vi)2.5 E
-F0(editing mode.)2.5 E/F3 10.95/Times-Bold@0 SF(DEF)72 220.8 Q -.548(AU)
--.986 G 2.014 -1.007(LT K).548 H(EY BINDINGS)1.007 E F0 .065(The follo)
-108 232.8 R .065(wing is a list of the def)-.25 F .065
-(ault emacs and vi bindings.)-.1 F .064
-(Characters with the eighth bit set are written as)5.064 F .615
-(M\255<character>, and are referred to as)108 244.8 R F2(meta\214ed)
-3.115 E F0 3.115(characters. The)3.115 F .616
-(printable ASCII characters not mentioned)3.116 F 1.116
-(in the list of emacs standard bindings are bound to the)108 256.8 R F1
-(self\255insert)3.615 E F0 1.115(function, which just inserts the gi)
-3.615 F -.15(ve)-.25 G(n).15 E .945(character into the input line.)108
-268.8 R .945(In vi insertion mode, all characters not speci\214cally me\
-ntioned are bound to)5.945 F F1(self\255insert)108 280.8 Q F0 5.359(.C)C
-.359(haracters assigned to signal generation by)-5.359 F F2(stty)2.859 E
-F0 .359(\(1\) or the terminal dri).32 F -.15(ve)-.25 G 1.159 -.4(r, s)
-.15 H .358(uch as C-Z or C-C,).4 F .187(retain that function.)108 292.8
-R .187(Upper and lo)5.187 F .188(wer case meta\214ed characters are bou\
-nd to the same function in the emacs)-.25 F .305(mode meta k)108 304.8 R
--.15(ey)-.1 G 2.805(map. The).15 F .305(remaining characters are unboun\
-d, which causes readline to ring the bell \(subject)2.805 F
-(to the setting of the)108 316.8 Q F1(bell\255style)2.5 E F0 -.25(va)2.5
-G(riable\).).25 E F1(Emacs Mode)87 333.6 Q F0(Emacs Standard bindings)
-151.2 345.6 Q 2.5("C-@" set-mark)151.2 369.6 R 2.5("C-A" be)151.2 381.6
-R(ginning-of-line)-.15 E 2.5("C-B" backw)151.2 393.6 R(ard-char)-.1 E
-2.5("C-D" delete-char)151.2 405.6 R 2.5("C-E" end-of-line)151.2 417.6 R
-2.5("C-F" forw)151.2 429.6 R(ard-char)-.1 E 2.5("C-G" abort)151.2 441.6
-R 2.5("C-H" backw)151.2 453.6 R(ard-delete-char)-.1 E 2.5
-("C-I" complete)151.2 465.6 R 2.5("C-J" accept-line)151.2 477.6 R 2.5
-("C-K" kill-line)151.2 489.6 R 2.5("C-L" clear)151.2 501.6 R(-screen)-.2
-E 2.5("C-M" accept-line)151.2 513.6 R 2.5("C-N" ne)151.2 525.6 R
-(xt-history)-.15 E 2.5("C-P" pre)151.2 537.6 R(vious-history)-.25 E 2.5
-("C-Q" quoted-insert)151.2 549.6 R 2.5("C-R" re)151.2 561.6 R -.15(ve)
--.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 573.6 R
-(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 585.6 R 2.5
-("C-U" unix-line-discard)151.2 597.6 R 2.5("C-V" quoted-insert)151.2
-609.6 R 2.5("C-W" unix-w)151.2 621.6 R(ord-rubout)-.1 E 2.5("C-Y" yank)
-151.2 633.6 R 2.5("C-]" character)151.2 645.6 R(-search)-.2 E 2.5
-("C-_" undo)151.2 657.6 R 3.333("")151.2 669.6 S(to "/")-.833 E
-(self-insert)5 E 2.5("0" to)151.2 681.6 R 2.5("9" self-insert)2.5 F 2.5
-(":" to)151.2 693.6 R 2.5("~" self-insert)2.5 F 2.5("C-?" backw)151.2
-705.6 R(ard-delete-char)-.1 E(Emacs Meta bindings)151.2 722.4 Q
-(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(10)190.95 E EP
-%%Page: 11 11
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
-("M-C-G" abort)151.2 84 R 2.5("M-C-H" backw)151.2 96 R(ard-kill-w)-.1 E
-(ord)-.1 E 2.5("M-C-I" tab-insert)151.2 108 R 2.5
-("M-C-J" vi-editing-mode)151.2 120 R 2.5("M-C-M" vi-editing-mode)151.2
-132 R 2.5("M-C-R" re)151.2 144 R -.15(ve)-.25 G(rt-line).15 E 2.5
-("M-C-Y" yank-nth-ar)151.2 156 R(g)-.18 E 2.5("M-C-[" complete)151.2 168
-R 2.5("M-C-]" character)151.2 180 R(-search-backw)-.2 E(ard)-.1 E 2.5
-("M-space" set-mark)151.2 192 R 2.5("M-#" insert-comment)151.2 204 R 2.5
-("M-&" tilde-e)151.2 216 R(xpand)-.15 E 2.5("M-*" insert-completions)
-151.2 228 R 2.5("M--" digit-ar)151.2 240 R(gument)-.18 E 2.5
-("M-." yank-last-ar)151.2 252 R(g)-.18 E 2.5("M-0" digit-ar)151.2 264 R
-(gument)-.18 E 2.5("M-1" digit-ar)151.2 276 R(gument)-.18 E 2.5
-("M-2" digit-ar)151.2 288 R(gument)-.18 E 2.5("M-3" digit-ar)151.2 300 R
-(gument)-.18 E 2.5("M-4" digit-ar)151.2 312 R(gument)-.18 E 2.5
-("M-5" digit-ar)151.2 324 R(gument)-.18 E 2.5("M-6" digit-ar)151.2 336 R
-(gument)-.18 E 2.5("M-7" digit-ar)151.2 348 R(gument)-.18 E 2.5
-("M-8" digit-ar)151.2 360 R(gument)-.18 E 2.5("M-9" digit-ar)151.2 372 R
-(gument)-.18 E 2.5("M-<" be)151.2 384 R(ginning-of-history)-.15 E 2.5
-("M-=" possible-completions)151.2 396 R 2.5("M->" end-of-history)151.2
-408 R 2.5("M-?" possible-completions)151.2 420 R 2.5("M-B" backw)151.2
-432 R(ard-w)-.1 E(ord)-.1 E 2.5("M-C" capitalize-w)151.2 444 R(ord)-.1 E
-2.5("M-D" kill-w)151.2 456 R(ord)-.1 E 2.5("M-F" forw)151.2 468 R(ard-w)
--.1 E(ord)-.1 E 2.5("M-L" do)151.2 480 R(wncase-w)-.25 E(ord)-.1 E 2.5
-("M-N" non-incremental-forw)151.2 492 R(ard-search-history)-.1 E 2.5
-("M-P" non-incremental-re)151.2 504 R -.15(ve)-.25 G(rse-search-history)
-.15 E 2.5("M-R" re)151.2 516 R -.15(ve)-.25 G(rt-line).15 E 2.5
-("M-T" transpose-w)151.2 528 R(ords)-.1 E 2.5("M-U" upcase-w)151.2 540 R
-(ord)-.1 E 2.5("M-Y" yank-pop)151.2 552 R 2.5
-("M-\\" delete-horizontal-space)151.2 564 R 2.5("M-~" tilde-e)151.2 576
-R(xpand)-.15 E 2.5("M-C-?" backw)151.2 588 R(ard-kill-w)-.1 E(ord)-.1 E
-2.5("M-_" yank-last-ar)151.2 600 R(g)-.18 E(Emacs Control-X bindings)
-151.2 616.8 Q 2.5("C-XC-G" abort)151.2 640.8 R 2.5
-("C-XC-R" re-read-init-\214le)151.2 652.8 R 2.5("C-XC-U" undo)151.2
-664.8 R 2.5("C-XC-X" e)151.2 676.8 R(xchange-point-and-mark)-.15 E 2.5
-("C-X\(" start-kbd-macro)151.2 688.8 R 2.5("C-X\)" end-kbd-macro)151.2
-700.8 R 2.5("C-XE" call-last-kbd-macro)151.2 712.8 R 2.5("C-XC-?" backw)
-151.2 724.8 R(ard-kill-line)-.1 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(11)190.95 E EP
-%%Page: 12 12
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1 10
-/Times-Bold@0 SF(VI Mode bindings)87 84 Q F0(VI Insert Mode functions)
-151.2 96 Q 2.5("C-D" vi-eof-maybe)151.2 120 R 2.5("C-H" backw)151.2 132
-R(ard-delete-char)-.1 E 2.5("C-I" complete)151.2 144 R 2.5
-("C-J" accept-line)151.2 156 R 2.5("C-M" accept-line)151.2 168 R 2.5
-("C-R" re)151.2 180 R -.15(ve)-.25 G(rse-search-history).15 E 2.5
-("C-S" forw)151.2 192 R(ard-search-history)-.1 E 2.5
-("C-T" transpose-chars)151.2 204 R 2.5("C-U" unix-line-discard)151.2 216
-R 2.5("C-V" quoted-insert)151.2 228 R 2.5("C-W" unix-w)151.2 240 R
-(ord-rubout)-.1 E 2.5("C-Y" yank)151.2 252 R 2.5("C-[" vi-mo)151.2 264 R
--.15(ve)-.15 G(ment-mode).15 E 2.5("C-_" undo)151.2 276 R 3.333("")151.2
-288 S(to "~")-.833 E(self-insert)5 E 2.5("C-?" backw)151.2 300 R
-(ard-delete-char)-.1 E(VI Command Mode functions)151.2 316.8 Q 2.5
-("C-D" vi-eof-maybe)151.2 340.8 R 2.5("C-E" emacs-editing-mode)151.2
-352.8 R 2.5("C-G" abort)151.2 364.8 R 2.5("C-H" backw)151.2 376.8 R
-(ard-char)-.1 E 2.5("C-J" accept-line)151.2 388.8 R 2.5("C-K" kill-line)
-151.2 400.8 R 2.5("C-L" clear)151.2 412.8 R(-screen)-.2 E 2.5
-("C-M" accept-line)151.2 424.8 R 2.5("C-N" ne)151.2 436.8 R(xt-history)
--.15 E 2.5("C-P" pre)151.2 448.8 R(vious-history)-.25 E 2.5
-("C-Q" quoted-insert)151.2 460.8 R 2.5("C-R" re)151.2 472.8 R -.15(ve)
--.25 G(rse-search-history).15 E 2.5("C-S" forw)151.2 484.8 R
-(ard-search-history)-.1 E 2.5("C-T" transpose-chars)151.2 496.8 R 2.5
-("C-U" unix-line-discard)151.2 508.8 R 2.5("C-V" quoted-insert)151.2
-520.8 R 2.5("C-W" unix-w)151.2 532.8 R(ord-rubout)-.1 E 2.5("C-Y" yank)
-151.2 544.8 R 2.5("C-_" vi-undo)151.2 556.8 R -4.166 3.333("" f)151.2
-568.8 T(orw)-3.333 E(ard-char)-.1 E 2.5("#" insert-comment)151.2 580.8 R
-2.5("$" end-of-line)151.2 592.8 R 2.5("%" vi-match)151.2 604.8 R 2.5
-("&" vi-tilde-e)151.2 616.8 R(xpand)-.15 E 2.5("*" vi-complete)151.2
-628.8 R 2.5("+" ne)151.2 640.8 R(xt-history)-.15 E 2.5("," vi-char)151.2
-652.8 R(-search)-.2 E 2.5("-" pre)151.2 664.8 R(vious-history)-.25 E 2.5
-("." vi-redo)151.2 676.8 R 2.5("/" vi-search)151.2 688.8 R 2.5("0" be)
-151.2 700.8 R(ginning-of-line)-.15 E("1" to "9")151.2 712.8 Q(vi-ar)5 E
-(g-digit)-.18 E 2.5(";" vi-char)151.2 724.8 R(-search)-.2 E
-(GNU Readline 4.3)72 768 Q(2002 January 22)126.24 E(12)190.95 E EP
-%%Page: 13 13
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R 2.5
-("=" vi-complete)151.2 84 R 2.5("?" vi-search)151.2 96 R 2.5
-("A" vi-append-eol)151.2 108 R 2.5("B" vi-pre)151.2 120 R(v-w)-.25 E
-(ord)-.1 E 2.5("C" vi-change-to)151.2 132 R 2.5("D" vi-delete-to)151.2
-144 R 2.5("E" vi-end-w)151.2 156 R(ord)-.1 E 2.5("F" vi-char)151.2 168 R
-(-search)-.2 E 2.5("G" vi-fetch-history)151.2 180 R 2.5
-("I" vi-insert-be)151.2 192 R(g)-.15 E 2.5("N" vi-search-ag)151.2 204 R
-(ain)-.05 E 2.5("P" vi-put)151.2 216 R 2.5("R" vi-replace)151.2 228 R
-2.5("S" vi-subst)151.2 240 R 2.5("T" vi-char)151.2 252 R(-search)-.2 E
-2.5("U" re)151.2 264 R -.15(ve)-.25 G(rt-line).15 E 2.5("W" vi-ne)151.2
-276 R(xt-w)-.15 E(ord)-.1 E 2.5("X" backw)151.2 288 R(ard-delete-char)
--.1 E 2.5("Y" vi-yank-to)151.2 300 R 2.5("\\" vi-complete)151.2 312 R
-2.5("^" vi-\214rst-print)151.2 324 R 2.5("_" vi-yank-ar)151.2 336 R(g)
--.18 E 2.5("`" vi-goto-mark)151.2 348 R 2.5("a" vi-append-mode)151.2 360
-R 2.5("b" vi-pre)151.2 372 R(v-w)-.25 E(ord)-.1 E 2.5("c" vi-change-to)
-151.2 384 R 2.5("d" vi-delete-to)151.2 396 R 2.5("e" vi-end-w)151.2 408
-R(ord)-.1 E 2.5("f" vi-char)151.2 420 R(-search)-.2 E 2.5("h" backw)
-151.2 432 R(ard-char)-.1 E 2.5("i" vi-insertion-mode)151.2 444 R 2.5
-("j" ne)151.2 456 R(xt-history)-.15 E 2.5("k" pre)151.2 468 R(v-history)
--.25 E 2.5("l" forw)151.2 480 R(ard-char)-.1 E 2.5("m" vi-set-mark)151.2
-492 R 2.5("n" vi-search-ag)151.2 504 R(ain)-.05 E 2.5("p" vi-put)151.2
-516 R 2.5("r" vi-change-char)151.2 528 R 2.5("s" vi-subst)151.2 540 R
-2.5("t" vi-char)151.2 552 R(-search)-.2 E 2.5("u" vi-undo)151.2 564 R
-2.5("w" vi-ne)151.2 576 R(xt-w)-.15 E(ord)-.1 E 2.5("x" vi-delete)151.2
-588 R 2.5("y" vi-yank-to)151.2 600 R 2.5("|" vi-column)151.2 612 R 2.5
-("~" vi-change-case)151.2 624 R/F1 10.95/Times-Bold@0 SF(SEE ALSO)72
-640.8 Q/F2 10/Times-Italic@0 SF(The Gnu Readline Libr)108 652.8 Q(ary)
--.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F2
-(The Gnu History Libr)108 664.8 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F2(bash)108 676.8 Q F0(\(1\))A F1
-(FILES)72 693.6 Q F2(~/.inputr)109.666 705.6 Q(c)-.37 E F0(Indi)144
-717.6 Q(vidual)-.25 E/F3 10/Times-Bold@0 SF -.18(re)2.5 G(adline).18 E
-F0(initialization \214le)2.5 E(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(13)190.95 E EP
-%%Page: 14 14
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 342.2(READLINE\(3\) READLINE\(3\))72 48 R/F1
-10.95/Times-Bold@0 SF -.548(AU)72 84 S(THORS).548 E F0(Brian F)108 96 Q
-(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 108
-Q(g)-.18 E(Chet Rame)108 124.8 Q 1.3 -.65(y, C)-.15 H(ase W).65 E
-(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E
-(chet@ins.CWR)108 136.8 Q(U.Edu)-.4 E F1 -.11(BU)72 153.6 S 2.738(GR).11
-G(EPOR)-2.738 E(TS)-.438 E F0 .69(If you \214nd a b)108 165.6 R .69
-(ug in)-.2 F/F2 10/Times-Bold@0 SF -.18(re)3.19 G(adline,).18 E F0 .69
-(you should report it.)3.19 F .691(But \214rst, you should mak)5.69 F
-3.191(es)-.1 G .691(ure that it really is a b)-3.191 F(ug,)-.2 E
-(and that it appears in the latest v)108 177.6 Q(ersion of the)-.15 E F2
--.18(re)2.5 G(adline).18 E F0(library that you ha)2.5 E -.15(ve)-.2 G(.)
-.15 E .705(Once you ha)108 194.4 R 1.005 -.15(ve d)-.2 H .705
-(etermined that a b).15 F .704(ug actually e)-.2 F .704(xists, mail a b)
--.15 F .704(ug report to)-.2 F/F3 10/Times-Italic@0 SF -.2(bu)3.204 G
-(g\255r).2 E(eadline)-.37 E F0(@)A F3(gnu.or)A(g)-.37 E F0 5.704(.I)C
-3.204(fy)-5.704 G(ou)-3.204 E(ha)108 206.4 Q 1.809 -.15(ve a \214)-.2 H
-1.509(x, you are welcome to mail that as well!).15 F 1.51
-(Suggestions and `philosophical' b)6.51 F 1.51(ug reports may be)-.2 F
-(mailed to)108 218.4 Q F3 -.2(bu)2.5 G(g-r).2 E(eadline)-.37 E F0(@)A F3
-(gnu.or)A(g)-.37 E F0(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2
-(gnu.bash.b)2.5 E(ug)-.2 E F0(.)A(Comments and b)108 235.2 Q
-(ug reports concerning this manual page should be directed to)-.2 E F3
--.15(ch)2.5 G(et@ins.CWR).15 E -.25(U.)-.4 G(Edu).25 E F0(.).25 E F1
--.11(BU)72 252 S(GS).11 E F0(It')108 264 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G(GNU Readline 4.3)72 768 Q
-(2002 January 22)126.24 E(14)190.95 E EP
-%%Trailer
-end
-%%EOF
diff --git a/readline-doc-4.3/doc/rluserman.dvi b/readline-doc-4.3/doc/rluserman.dvi
deleted file mode 100644
index a2339aa..0000000
--- a/readline-doc-4.3/doc/rluserman.dvi
+++ /dev/null
Binary files differ
diff --git a/readline-doc-4.3/doc/rluserman.html b/readline-doc-4.3/doc/rluserman.html
deleted file mode 100644
index ac8bfbd..0000000
--- a/readline-doc-4.3/doc/rluserman.html
+++ /dev/null
@@ -1,2184 +0,0 @@
-<HTML>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on June, 27 2002 by texi2html 1.64 -->
-<!--
-Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
- Karl Berry <karl@freefriends.org>
- Olaf Bachmann <obachman@mathematik.uni-kl.de>
- and many others.
-Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de>
-Send bugs and suggestions to <texi2html@mathematik.uni-kl.de>
-
--->
-<HEAD>
-<TITLE>GNU Readline Library: </TITLE>
-
-<META NAME="description" CONTENT="GNU Readline Library: ">
-<META NAME="keywords" CONTENT="GNU Readline Library: ">
-<META NAME="resource-type" CONTENT="document">
-<META NAME="distribution" CONTENT="global">
-<META NAME="Generator" CONTENT="texi2html 1.64">
-
-</HEAD>
-
-<BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
-
-<A NAME="SEC_Top"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>GNU Readline Library</H1></P><P>
-
-This document describes the end user interface of the GNU Readline Library,
-a utility which aids in the consistency of user interface across discrete
-programs that need to provide a command line interface.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC1">1. Command Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">GNU Readline User's Manual.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<HR SIZE=1>
-<A NAME="SEC1"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC2"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<A NAME="Command Line Editing"></A>
-<H1> 1. Command Line Editing </H1>
-<!--docid::SEC1::-->
-<P>
-
-This chapter describes the basic features of the GNU
-command line editing interface.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC2">1.1 Introduction to Line Editing</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Notation used in this text.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC3">1.2 Readline Interaction</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The minimum set of commands for editing a line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC9">1.3 Readline Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Customizing Readline from a user's view.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC13">1.4 Bindable Readline Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A description of most of the Readline commands
- available for binding</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC22">1.5 Readline vi Mode</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">A short description of how to make Readline
- behave like the vi editor.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Introduction and Notation"></A>
-<HR SIZE="6">
-<A NAME="SEC2"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.1 Introduction to Line Editing </H2>
-<!--docid::SEC2::-->
-<P>
-
-The following paragraphs describe the notation used to represent
-keystrokes.
-</P><P>
-
-The text <KBD>C-k</KBD> is read as `Control-K' and describes the character
-produced when the <KBD>k</KBD> key is pressed while the Control key
-is depressed.
-</P><P>
-
-The text <KBD>M-k</KBD> is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the <KBD>k</KBD>
-key is pressed.
-The Meta key is labeled <KBD>ALT</KBD> on many keyboards.
-On keyboards with two keys labeled <KBD>ALT</KBD> (usually to either side of
-the space bar), the <KBD>ALT</KBD> on the left side is generally set to
-work as a Meta key.
-The <KBD>ALT</KBD> key on the right may also be configured to work as a
-Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-</P><P>
-
-If you do not have a Meta or <KBD>ALT</KBD> key, or another key working as
-a Meta key, the identical keystroke can be generated by typing <KBD>ESC</KBD>
-<EM>first</EM>, and then typing <KBD>k</KBD>.
-Either process is known as <EM>metafying</EM> the <KBD>k</KBD> key.
-</P><P>
-
-The text <KBD>M-C-k</KBD> is read as `Meta-Control-k' and describes the
-character produced by <EM>metafying</EM> <KBD>C-k</KBD>.
-</P><P>
-
-In addition, several keys have their own names. Specifically,
-<KBD>DEL</KBD>, <KBD>ESC</KBD>, <KBD>LFD</KBD>, <KBD>SPC</KBD>, <KBD>RET</KBD>, and <KBD>TAB</KBD> all
-stand for themselves when seen in this text, or in an init file
-(see section <A HREF="rluserman.html#SEC9">1.3 Readline Init File</A>).
-If your keyboard lacks a <KBD>LFD</KBD> key, typing <KBD>C-j</KBD> will
-produce the desired character.
-The <KBD>RET</KBD> key may be labeled <KBD>Return</KBD> or <KBD>Enter</KBD> on
-some keyboards.
-</P><P>
-
-<A NAME="Readline Interaction"></A>
-<HR SIZE="6">
-<A NAME="SEC3"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC2"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC4"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.2 Readline Interaction </H2>
-<!--docid::SEC3::-->
-<P>
-
-Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <KBD>RET</KBD>. You do not have to be at the
-end of the line to press <KBD>RET</KBD>; the entire line is accepted
-regardless of the location of the cursor within the line.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC4">1.2.1 Readline Bare Essentials</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">The least you need to know about Readline.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC5">1.2.2 Readline Movement Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Moving about the input line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC6">1.2.3 Readline Killing Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">How to delete text, and how to get it back!</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC7">1.2.4 Readline Arguments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Giving numeric arguments to commands.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC8">1.2.5 Searching for Commands in the History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Searching through previous lines.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Bare Essentials"></A>
-<HR SIZE="6">
-<A NAME="SEC4"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC5"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.1 Readline Bare Essentials </H3>
-<!--docid::SEC4::-->
-<P>
-
-In order to enter characters into the line, simply type them. The typed
-character appears where the cursor was, and then the cursor moves one
-space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-</P><P>
-
-Sometimes you may mistype a character, and
-not notice the error until you have typed several other characters. In
-that case, you can type <KBD>C-b</KBD> to move the cursor to the left, and then
-correct your mistake. Afterwards, you can move the cursor to the right
-with <KBD>C-f</KBD>.
-</P><P>
-
-When you add text in the middle of a line, you will notice that characters
-to the right of the cursor are `pushed over' to make room for the text
-that you have inserted. Likewise, when you delete text behind the cursor,
-characters to the right of the cursor are `pulled back' to fill in the
-blank space created by the removal of the text. A list of the bare
-essentials for editing the text of an input line follows.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-b</KBD>
-<DD>Move back one character.
-<DT><KBD>C-f</KBD>
-<DD>Move forward one character.
-<DT><KBD>DEL</KBD> or <KBD>Backspace</KBD>
-<DD>Delete the character to the left of the cursor.
-<DT><KBD>C-d</KBD>
-<DD>Delete the character underneath the cursor.
-<DT>Printing characters
-<DD>Insert the character into the line at the cursor.
-<DT><KBD>C-_</KBD> or <KBD>C-x C-u</KBD>
-<DD>Undo the last editing command. You can undo all the way back to an
-empty line.
-</DL>
-<P>
-
-(Depending on your configuration, the <KBD>Backspace</KBD> key be set to
-delete the character to the left of the cursor and the <KBD>DEL</KBD> key set
-to delete the character underneath the cursor, like <KBD>C-d</KBD>, rather
-than the character to the left of the cursor.)
-</P><P>
-
-<A NAME="Readline Movement Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC5"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC4"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC6"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC6"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.2 Readline Movement Commands </H3>
-<!--docid::SEC5::-->
-<P>
-
-The above table describes the most basic keystrokes that you need
-in order to do editing of the input line. For your convenience, many
-other commands have been added in addition to <KBD>C-b</KBD>, <KBD>C-f</KBD>,
-<KBD>C-d</KBD>, and <KBD>DEL</KBD>. Here are some commands for moving more rapidly
-about the line.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-a</KBD>
-<DD>Move to the start of the line.
-<DT><KBD>C-e</KBD>
-<DD>Move to the end of the line.
-<DT><KBD>M-f</KBD>
-<DD>Move forward a word, where a word is composed of letters and digits.
-<DT><KBD>M-b</KBD>
-<DD>Move backward a word.
-<DT><KBD>C-l</KBD>
-<DD>Clear the screen, reprinting the current line at the top.
-</DL>
-<P>
-
-Notice how <KBD>C-f</KBD> moves forward a character, while <KBD>M-f</KBD> moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-</P><P>
-
-<A NAME="Readline Killing Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC6"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC5"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC7"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC7"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.3 Readline Killing Commands </H3>
-<!--docid::SEC6::-->
-<P>
-
-<A NAME="IDX1"></A>
-<A NAME="IDX2"></A>
-</P><P>
-
-<EM>Killing</EM> text means to delete the text from the line, but to save
-it away for later use, usually by <EM>yanking</EM> (re-inserting)
-it back into the line.
-(`Cut' and `paste' are more recent jargon for `kill' and `yank'.)
-</P><P>
-
-If the description for a command says that it `kills' text, then you can
-be sure that you can get the text back in a different (or the same)
-place later.
-</P><P>
-
-When you use a kill command, the text is saved in a <EM>kill-ring</EM>.
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill
-ring is not line specific; the text that you killed on a previously
-typed line is available to be yanked back later, when you are typing
-another line.
-<A NAME="IDX3"></A>
-</P><P>
-
-Here is the list of commands for killing text.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-k</KBD>
-<DD>Kill the text from the current cursor position to the end of the line.
-<P>
-
-<DT><KBD>M-d</KBD>
-<DD>Kill from the cursor to the end of the current word, or, if between
-words, to the end of the next word.
-Word boundaries are the same as those used by <KBD>M-f</KBD>.
-<P>
-
-<DT><KBD>M-<KBD>DEL</KBD></KBD>
-<DD>Kill from the cursor the start of the current word, or, if between
-words, to the start of the previous word.
-Word boundaries are the same as those used by <KBD>M-b</KBD>.
-<P>
-
-<DT><KBD>C-w</KBD>
-<DD>Kill from the cursor to the previous whitespace. This is different than
-<KBD>M-<KBD>DEL</KBD></KBD> because the word boundaries differ.
-<P>
-
-</DL>
-<P>
-
-Here is how to <EM>yank</EM> the text back into the line. Yanking
-means to copy the most-recently-killed text from the kill buffer.
-</P><P>
-
-<DL COMPACT>
-<DT><KBD>C-y</KBD>
-<DD>Yank the most recently killed text back into the buffer at the cursor.
-<P>
-
-<DT><KBD>M-y</KBD>
-<DD>Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is <KBD>C-y</KBD> or <KBD>M-y</KBD>.
-</DL>
-<P>
-
-<A NAME="Readline Arguments"></A>
-<HR SIZE="6">
-<A NAME="SEC7"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC6"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC8"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC8"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.4 Readline Arguments </H3>
-<!--docid::SEC7::-->
-<P>
-
-You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the <I>sign</I> of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type <SAMP>`M-- C-k'</SAMP>.
-</P><P>
-
-The general way to pass numeric arguments to a command is to type meta
-digits before the command. If the first `digit' typed is a minus
-sign (<SAMP>`-'</SAMP>), then the sign of the argument will be negative. Once
-you have typed one meta digit to get the argument started, you can type
-the remainder of the digits, and then the command. For example, to give
-the <KBD>C-d</KBD> command an argument of 10, you could type <SAMP>`M-1 0 C-d'</SAMP>,
-which will delete the next ten characters on the input line.
-</P><P>
-
-<A NAME="Searching"></A>
-<HR SIZE="6">
-<A NAME="SEC8"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC7"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC3"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.2.5 Searching for Commands in the History </H3>
-<!--docid::SEC8::-->
-<P>
-
-Readline provides commands for searching through the command history
-for lines containing a specified string.
-There are two search modes: <EM>incremental</EM> and <EM>non-incremental</EM>.
-</P><P>
-
-Incremental searches begin before the user has finished typing the
-search string.
-As each character of the search string is typed, Readline displays
-the next entry from the history matching the string typed so far.
-An incremental search requires only as many characters as needed to
-find the desired history entry.
-To search backward in the history for a particular string, type
-<KBD>C-r</KBD>. Typing <KBD>C-s</KBD> searches forward through the history.
-The characters present in the value of the <CODE>isearch-terminators</CODE> variable
-are used to terminate an incremental search.
-If that variable has not been assigned a value, the <KBD>ESC</KBD> and
-<KBD>C-J</KBD> characters will terminate an incremental search.
-<KBD>C-g</KBD> will abort an incremental search and restore the original line.
-When the search is terminated, the history entry containing the
-search string becomes the current line.
-</P><P>
-
-To find other matching entries in the history list, type <KBD>C-r</KBD> or
-<KBD>C-s</KBD> as appropriate.
-This will search backward or forward in the history for the next
-entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate
-the search and execute that command.
-For instance, a <KBD>RET</KBD> will terminate the search and accept
-the line, thereby executing the command from the history list.
-A movement command will terminate the search, make the last line found
-the current line, and begin editing.
-</P><P>
-
-Readline remembers the last incremental search string. If two
-<KBD>C-r</KBD>s are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-</P><P>
-
-Non-incremental searches read the entire search string before starting
-to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-</P><P>
-
-<A NAME="Readline Init File"></A>
-<HR SIZE="6">
-<A NAME="SEC9"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC8"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC10"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.3 Readline Init File </H2>
-<!--docid::SEC9::-->
-<P>
-
-Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings.
-Any user can customize programs that use Readline by putting
-commands in an <EM>inputrc</EM> file, conventionally in his home directory.
-The name of this
-file is taken from the value of the environment variable <CODE>INPUTRC</CODE>. If
-that variable is unset, the default is <TT>`~/.inputrc'</TT>.
-</P><P>
-
-When a program which uses the Readline library starts up, the
-init file is read, and the key bindings are set.
-</P><P>
-
-In addition, the <CODE>C-x C-r</CODE> command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-</P><P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC10">1.3.1 Readline Init File Syntax</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Syntax for the commands in the inputrc file.</TD></TR>
-</TABLE>
-
-<br>
-<TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC11">1.3.2 Conditional Init Constructs</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Conditional key bindings in the inputrc file.</TD></TR>
-</TABLE>
-
-<br>
-<TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC12">1.3.3 Sample Init File</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">An example inputrc file.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-<A NAME="Readline Init File Syntax"></A>
-<HR SIZE="6">
-<A NAME="SEC10"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC11"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.1 Readline Init File Syntax </H3>
-<!--docid::SEC10::-->
-<P>
-
-There are only a few basic constructs allowed in the
-Readline init file. Blank lines are ignored.
-Lines beginning with a <SAMP>`#'</SAMP> are comments.
-Lines beginning with a <SAMP>`$'</SAMP> indicate conditional
-constructs (see section <A HREF="rluserman.html#SEC11">1.3.2 Conditional Init Constructs</A>). Other lines
-denote variable settings and key bindings.
-</P><P>
-
-<DL COMPACT>
-<DT>Variable Settings
-<DD>You can modify the run-time behavior of Readline by
-altering the values of variables in Readline
-using the <CODE>set</CODE> command within the init file.
-The syntax is simple:
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>set <VAR>variable</VAR> <VAR>value</VAR>
-</pre></td></tr></table></P><P>
-
-Here, for example, is how to
-change from the default Emacs-like key binding to use
-<CODE>vi</CODE> line editing commands:
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>set editing-mode vi
-</pre></td></tr></table></P><P>
-
-Variable names and values, where appropriate, are recognized without regard
-to case.
-</P><P>
-
-A great deal of run-time behavior is changeable with the following
-variables.
-</P><P>
-
-<A NAME="IDX4"></A>
-<DL COMPACT>
-
-<DT><CODE>bell-style</CODE>
-<DD><A NAME="IDX5"></A>
-Controls what happens when Readline wants to ring the terminal bell.
-If set to <SAMP>`none'</SAMP>, Readline never rings the bell. If set to
-<SAMP>`visible'</SAMP>, Readline uses a visible bell if one is available.
-If set to <SAMP>`audible'</SAMP> (the default), Readline attempts to ring
-the terminal's bell.
-<P>
-
-<DT><CODE>comment-begin</CODE>
-<DD><A NAME="IDX6"></A>
-The string to insert at the beginning of the line when the
-<CODE>insert-comment</CODE> command is executed. The default value
-is <CODE>"#"</CODE>.
-<P>
-
-<DT><CODE>completion-ignore-case</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, Readline performs filename matching and completion
-in a case-insensitive fashion.
-The default value is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>completion-query-items</CODE>
-<DD><A NAME="IDX7"></A>
-The number of possible completions that determines when the user is
-asked whether he wants to see the list of possibilities. If the
-number of possible completions is greater than this value,
-Readline will ask the user whether or not he wishes to view
-them; otherwise, they are simply listed.
-This variable must be set to an integer value greater than or equal to 0.
-The default limit is <CODE>100</CODE>.
-<P>
-
-<DT><CODE>convert-meta</CODE>
-<DD><A NAME="IDX8"></A>
-If set to <SAMP>`on'</SAMP>, Readline will convert characters with the
-eighth bit set to an ASCII key sequence by stripping the eighth
-bit and prefixing an <KBD>ESC</KBD> character, converting them to a
-meta-prefixed key sequence. The default value is <SAMP>`on'</SAMP>.
-<P>
-
-<DT><CODE>disable-completion</CODE>
-<DD><A NAME="IDX9"></A>
-If set to <SAMP>`On'</SAMP>, Readline will inhibit word completion.
-Completion characters will be inserted into the line as if they had
-been mapped to <CODE>self-insert</CODE>. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>editing-mode</CODE>
-<DD><A NAME="IDX10"></A>
-The <CODE>editing-mode</CODE> variable controls which default set of
-key bindings is used. By default, Readline starts up in Emacs editing
-mode, where the keystrokes are most similar to Emacs. This variable can be
-set to either <SAMP>`emacs'</SAMP> or <SAMP>`vi'</SAMP>.
-<P>
-
-<DT><CODE>enable-keypad</CODE>
-<DD><A NAME="IDX11"></A>
-When set to <SAMP>`on'</SAMP>, Readline will try to enable the application
-keypad when it is called. Some systems need this to enable the
-arrow keys. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>expand-tilde</CODE>
-<DD><A NAME="IDX12"></A>
-If set to <SAMP>`on'</SAMP>, tilde expansion is performed when Readline
-attempts word completion. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<A NAME="IDX13"></A>
-If set to <SAMP>`on'</SAMP>, the history code attempts to place point at the
-same location on each history line retrived with <CODE>previous-history</CODE>
-or <CODE>next-history</CODE>.
-</P><P>
-
-<DT><CODE>horizontal-scroll-mode</CODE>
-<DD><A NAME="IDX14"></A>
-This variable can be set to either <SAMP>`on'</SAMP> or <SAMP>`off'</SAMP>. Setting it
-to <SAMP>`on'</SAMP> means that the text of the lines being edited will scroll
-horizontally on a single screen line when they are longer than the width
-of the screen, instead of wrapping onto a new screen line. By default,
-this variable is set to <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>input-meta</CODE>
-<DD><A NAME="IDX15"></A>
-<A NAME="IDX16"></A>
-If set to <SAMP>`on'</SAMP>, Readline will enable eight-bit input (it
-will not clear the eighth bit in the characters it reads),
-regardless of what the terminal claims it can support. The
-default value is <SAMP>`off'</SAMP>. The name <CODE>meta-flag</CODE> is a
-synonym for this variable.
-<P>
-
-<DT><CODE>isearch-terminators</CODE>
-<DD><A NAME="IDX17"></A>
-The string of characters that should terminate an incremental search without
-subsequently executing the character as a command (see section <A HREF="rluserman.html#SEC8">1.2.5 Searching for Commands in the History</A>).
-If this variable has not been given a value, the characters <KBD>ESC</KBD> and
-<KBD>C-J</KBD> will terminate an incremental search.
-<P>
-
-<DT><CODE>keymap</CODE>
-<DD><A NAME="IDX18"></A>
-Sets Readline's idea of the current keymap for key binding commands.
-Acceptable <CODE>keymap</CODE> names are
-<CODE>emacs</CODE>,
-<CODE>emacs-standard</CODE>,
-<CODE>emacs-meta</CODE>,
-<CODE>emacs-ctlx</CODE>,
-<CODE>vi</CODE>,
-<CODE>vi-move</CODE>,
-<CODE>vi-command</CODE>, and
-<CODE>vi-insert</CODE>.
-<CODE>vi</CODE> is equivalent to <CODE>vi-command</CODE>; <CODE>emacs</CODE> is
-equivalent to <CODE>emacs-standard</CODE>. The default value is <CODE>emacs</CODE>.
-The value of the <CODE>editing-mode</CODE> variable also affects the
-default keymap.
-<P>
-
-<DT><CODE>mark-directories</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, completed directory names have a slash
-appended. The default is <SAMP>`on'</SAMP>.
-<P>
-
-<DT><CODE>mark-modified-lines</CODE>
-<DD><A NAME="IDX19"></A>
-This variable, when set to <SAMP>`on'</SAMP>, causes Readline to display an
-asterisk (<SAMP>`*'</SAMP>) at the start of history lines which have been modified.
-This variable is <SAMP>`off'</SAMP> by default.
-<P>
-
-<DT><CODE>mark-symlinked-directories</CODE>
-<DD><A NAME="IDX20"></A>
-If set to <SAMP>`on'</SAMP>, completed names which are symbolic links
-to directories have a slash appended (subject to the value of
-<CODE>mark-directories</CODE>).
-The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>match-hidden-files</CODE>
-<DD><A NAME="IDX21"></A>
-This variable, when set to <SAMP>`on'</SAMP>, causes Readline to match files whose
-names begin with a <SAMP>`.'</SAMP> (hidden files) when performing filename
-completion, unless the leading <SAMP>`.'</SAMP> is
-supplied by the user in the filename to be completed.
-This variable is <SAMP>`on'</SAMP> by default.
-<P>
-
-<DT><CODE>output-meta</CODE>
-<DD><A NAME="IDX22"></A>
-If set to <SAMP>`on'</SAMP>, Readline will display characters with the
-eighth bit set directly rather than as a meta-prefixed escape
-sequence. The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>page-completions</CODE>
-<DD><A NAME="IDX23"></A>
-If set to <SAMP>`on'</SAMP>, Readline uses an internal <CODE>more</CODE>-like pager
-to display a screenful of possible completions at a time.
-This variable is <SAMP>`on'</SAMP> by default.
-<P>
-
-<DT><CODE>print-completions-horizontally</CODE>
-<DD>If set to <SAMP>`on'</SAMP>, Readline will display completions with matches
-sorted horizontally in alphabetical order, rather than down the screen.
-The default is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>show-all-if-ambiguous</CODE>
-<DD><A NAME="IDX24"></A>
-This alters the default behavior of the completion functions. If
-set to <SAMP>`on'</SAMP>,
-words which have more than one possible completion cause the
-matches to be listed immediately instead of ringing the bell.
-The default value is <SAMP>`off'</SAMP>.
-<P>
-
-<DT><CODE>visible-stats</CODE>
-<DD><A NAME="IDX25"></A>
-If set to <SAMP>`on'</SAMP>, a character denoting a file's type
-is appended to the filename when listing possible
-completions. The default is <SAMP>`off'</SAMP>.
-<P>
-
-</DL>
-<P>
-
-<DT>Key Bindings
-<DD>The syntax for controlling key bindings in the init file is
-simple. First you need to find the name of the command that you
-want to change. The following sections contain tables of the command
-name, the default keybinding, if any, and a short description of what
-the command does.
-<P>
-
-Once you know the name of the command, simply place on a line
-in the init file the name of the key
-you wish to bind the command to, a colon, and then the name of the
-command. The name of the key
-can be expressed in different ways, depending on what you find most
-comfortable.
-</P><P>
-
-In addition to command names, readline allows keys to be bound
-to a string that is inserted when the key is pressed (a <VAR>macro</VAR>).
-</P><P>
-
-<DL COMPACT>
-<DT><VAR>keyname</VAR>: <VAR>function-name</VAR> or <VAR>macro</VAR>
-<DD><VAR>keyname</VAR> is the name of a key spelled out in English. For example:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>Control-u: universal-argument
-Meta-Rubout: backward-kill-word
-Control-o: "&#62; output"
-</pre></td></tr></table><P>
-
-In the above example, <KBD>C-u</KBD> is bound to the function
-<CODE>universal-argument</CODE>,
-<KBD>M-DEL</KBD> is bound to the function <CODE>backward-kill-word</CODE>, and
-<KBD>C-o</KBD> is bound to run the macro
-expressed on the right hand side (that is, to insert the text
-<SAMP>`&#62; output'</SAMP> into the line).
-</P><P>
-
-A number of symbolic character names are recognized while
-processing this key binding syntax:
-<VAR>DEL</VAR>,
-<VAR>ESC</VAR>,
-<VAR>ESCAPE</VAR>,
-<VAR>LFD</VAR>,
-<VAR>NEWLINE</VAR>,
-<VAR>RET</VAR>,
-<VAR>RETURN</VAR>,
-<VAR>RUBOUT</VAR>,
-<VAR>SPACE</VAR>,
-<VAR>SPC</VAR>,
-and
-<VAR>TAB</VAR>.
-</P><P>
-
-<DT>"<VAR>keyseq</VAR>": <VAR>function-name</VAR> or <VAR>macro</VAR>
-<DD><VAR>keyseq</VAR> differs from <VAR>keyname</VAR> above in that strings
-denoting an entire key sequence can be specified, by placing
-the key sequence in double quotes. Some GNU Emacs style key
-escapes can be used, as in the following example, but the
-special character names are not recognized.
-<P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-u": universal-argument
-"\C-x\C-r": re-read-init-file
-"\e[11~": "Function Key 1"
-</pre></td></tr></table></P><P>
-
-In the above example, <KBD>C-u</KBD> is again bound to the function
-<CODE>universal-argument</CODE> (just as it was in the first example),
-<SAMP>`<KBD>C-x</KBD> <KBD>C-r</KBD>'</SAMP> is bound to the function <CODE>re-read-init-file</CODE>,
-and <SAMP>`<KBD>ESC</KBD> <KBD>[</KBD> <KBD>1</KBD> <KBD>1</KBD> <KBD>~</KBD>'</SAMP> is bound to insert
-the text <SAMP>`Function Key 1'</SAMP>.
-</P><P>
-
-</DL>
-<P>
-
-The following GNU Emacs style escape sequences are available when
-specifying key sequences:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE><KBD>\C-</KBD></CODE>
-<DD>control prefix
-<DT><CODE><KBD>\M-</KBD></CODE>
-<DD>meta prefix
-<DT><CODE><KBD>\e</KBD></CODE>
-<DD>an escape character
-<DT><CODE><KBD>\\</KBD></CODE>
-<DD>backslash
-<DT><CODE><KBD>\"</KBD></CODE>
-<DD><KBD>"</KBD>, a double quotation mark
-<DT><CODE><KBD>\'</KBD></CODE>
-<DD><KBD>'</KBD>, a single quote or apostrophe
-</DL>
-<P>
-
-In addition to the GNU Emacs style escape sequences, a second
-set of backslash escapes is available:
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>\a</CODE>
-<DD>alert (bell)
-<DT><CODE>\b</CODE>
-<DD>backspace
-<DT><CODE>\d</CODE>
-<DD>delete
-<DT><CODE>\f</CODE>
-<DD>form feed
-<DT><CODE>\n</CODE>
-<DD>newline
-<DT><CODE>\r</CODE>
-<DD>carriage return
-<DT><CODE>\t</CODE>
-<DD>horizontal tab
-<DT><CODE>\v</CODE>
-<DD>vertical tab
-<DT><CODE>\<VAR>nnn</VAR></CODE>
-<DD>the eight-bit character whose value is the octal value <VAR>nnn</VAR>
-(one to three digits)
-<DT><CODE>\x<VAR>HH</VAR></CODE>
-<DD>the eight-bit character whose value is the hexadecimal value <VAR>HH</VAR>
-(one or two hex digits)
-</DL>
-<P>
-
-When entering the text of a macro, single or double quotes must
-be used to indicate a macro definition.
-Unquoted text is assumed to be a function name.
-In the macro body, the backslash escapes described above are expanded.
-Backslash will quote any other character in the macro text,
-including <SAMP>`"'</SAMP> and <SAMP>`''</SAMP>.
-For example, the following binding will make <SAMP>`<KBD>C-x</KBD> \'</SAMP>
-insert a single <SAMP>`\'</SAMP> into the line:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>"\C-x\\": "\\"
-</pre></td></tr></table></P><P>
-
-</DL>
-<P>
-
-<A NAME="Conditional Init Constructs"></A>
-<HR SIZE="6">
-<A NAME="SEC11"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC10"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC12"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC12"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.2 Conditional Init Constructs </H3>
-<!--docid::SEC11::-->
-<P>
-
-Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key
-bindings and variable settings to be performed as the result
-of tests. There are four parser directives used.
-</P><P>
-
-<DL COMPACT>
-<DT><CODE>$if</CODE>
-<DD>The <CODE>$if</CODE> construct allows bindings to be made based on the
-editing mode, the terminal being used, or the application using
-Readline. The text of the test extends to the end of the line;
-no characters are required to isolate it.
-<P>
-
-<DL COMPACT>
-<DT><CODE>mode</CODE>
-<DD>The <CODE>mode=</CODE> form of the <CODE>$if</CODE> directive is used to test
-whether Readline is in <CODE>emacs</CODE> or <CODE>vi</CODE> mode.
-This may be used in conjunction
-with the <SAMP>`set keymap'</SAMP> command, for instance, to set bindings in
-the <CODE>emacs-standard</CODE> and <CODE>emacs-ctlx</CODE> keymaps only if
-Readline is starting out in <CODE>emacs</CODE> mode.
-<P>
-
-<DT><CODE>term</CODE>
-<DD>The <CODE>term=</CODE> form may be used to include terminal-specific
-key bindings, perhaps to bind the key sequences output by the
-terminal's function keys. The word on the right side of the
-<SAMP>`='</SAMP> is tested against both the full name of the terminal and
-the portion of the terminal name before the first <SAMP>`-'</SAMP>. This
-allows <CODE>sun</CODE> to match both <CODE>sun</CODE> and <CODE>sun-cmd</CODE>,
-for instance.
-<P>
-
-<DT><CODE>application</CODE>
-<DD>The <VAR>application</VAR> construct is used to include
-application-specific settings. Each program using the Readline
-library sets the <VAR>application name</VAR>, and you can test for
-a particular value.
-This could be used to bind key sequences to functions useful for
-a specific program. For instance, the following command adds a
-key sequence that quotes the current or previous word in Bash:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>$if Bash
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-$endif
-</pre></td></tr></table></DL>
-<P>
-
-<DT><CODE>$endif</CODE>
-<DD>This command, as seen in the previous example, terminates an
-<CODE>$if</CODE> command.
-<P>
-
-<DT><CODE>$else</CODE>
-<DD>Commands in this branch of the <CODE>$if</CODE> directive are executed if
-the test fails.
-<P>
-
-<DT><CODE>$include</CODE>
-<DD>This directive takes a single filename as an argument and reads commands
-and bindings from that file.
-For example, the following directive reads from <TT>`/etc/inputrc'</TT>:
-<TABLE><tr><td>&nbsp;</td><td class=example><pre>$include /etc/inputrc
-</pre></td></tr></table></DL>
-<P>
-
-<A NAME="Sample Init File"></A>
-<HR SIZE="6">
-<A NAME="SEC12"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC11"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC9"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.3.3 Sample Init File </H3>
-<!--docid::SEC12::-->
-<P>
-
-Here is an example of an <VAR>inputrc</VAR> file. This illustrates key
-binding, variable assignment, and conditional syntax.
-</P><P>
-
-<TABLE><tr><td>&nbsp;</td><td class=example><pre># This file controls the behaviour of line input editing for
-# programs that use the GNU Readline library. Existing
-# programs include FTP, Bash, and GDB.
-#
-# You can re-read the inputrc file with C-x C-r.
-# Lines beginning with '#' are comments.
-#
-# First, include any systemwide bindings and variable
-# assignments from /etc/Inputrc
-$include /etc/Inputrc
-
-#
-# Set various bindings for emacs mode.
-
-set editing-mode emacs
-
-$if mode=emacs
-
-Meta-Control-h: backward-kill-word Text after the function name is ignored
-
-#
-# Arrow keys in keypad mode
-#
-#"\M-OD": backward-char
-#"\M-OC": forward-char
-#"\M-OA": previous-history
-#"\M-OB": next-history
-#
-# Arrow keys in ANSI mode
-#
-"\M-[D": backward-char
-"\M-[C": forward-char
-"\M-[A": previous-history
-"\M-[B": next-history
-#
-# Arrow keys in 8 bit keypad mode
-#
-#"\M-\C-OD": backward-char
-#"\M-\C-OC": forward-char
-#"\M-\C-OA": previous-history
-#"\M-\C-OB": next-history
-#
-# Arrow keys in 8 bit ANSI mode
-#
-#"\M-\C-[D": backward-char
-#"\M-\C-[C": forward-char
-#"\M-\C-[A": previous-history
-#"\M-\C-[B": next-history
-
-C-q: quoted-insert
-
-$endif
-
-# An old-style binding. This happens to be the default.
-TAB: complete
-
-# Macros that are convenient for shell interaction
-$if Bash
-# edit the path
-"\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
-# prepare to type a quoted word --
-# insert open and close double quotes
-# and move to just after the open quote
-"\C-x\"": "\"\"\C-b"
-# insert a backslash (testing backslash escapes
-# in sequences and macros)
-"\C-x\\": "\\"
-# Quote the current or previous word
-"\C-xq": "\eb\"\ef\""
-# Add a binding to refresh the line, which is unbound
-"\C-xr": redraw-current-line
-# Edit variable on current line.
-"\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
-$endif
-
-# use a visible bell if one is available
-set bell-style visible
-
-# don't strip characters to 7 bits when reading
-set input-meta on
-
-# allow iso-latin1 characters to be inserted rather
-# than converted to prefix-meta sequences
-set convert-meta off
-
-# display characters with the eighth bit set directly
-# rather than as meta-prefixed characters
-set output-meta on
-
-# if there are more than 150 possible completions for
-# a word, ask the user if he wants to see all of them
-set completion-query-items 150
-
-# For FTP
-$if Ftp
-"\C-xg": "get \M-?"
-"\C-xt": "put \M-?"
-"\M-.": yank-last-arg
-$endif
-</pre></td></tr></table></P><P>
-
-<A NAME="Bindable Readline Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC13"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC12"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC14"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.4 Bindable Readline Commands </H2>
-<!--docid::SEC13::-->
-<P>
-
-<BLOCKQUOTE><TABLE BORDER=0 CELLSPACING=0>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC14">1.4.1 Commands For Moving</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Moving about the line.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC15">1.4.2 Commands For Manipulating The History</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting at previous lines.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC16">1.4.3 Commands For Changing Text</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for changing text.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC17">1.4.4 Killing And Yanking</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Commands for killing and yanking.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC18">1.4.5 Specifying Numeric Arguments</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Specifying numeric arguments, repeat counts.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC19">1.4.6 Letting Readline Type For You</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Getting Readline to do the typing for you.</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC20">1.4.7 Keyboard Macros</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Saving and re-executing typed characters</TD></TR>
-<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="rluserman.html#SEC21">1.4.8 Some Miscellaneous Commands</A></TD><TD>&nbsp;&nbsp;</TD><TD ALIGN="left" VALIGN="TOP">Other miscellaneous commands.</TD></TR>
-</TABLE></BLOCKQUOTE>
-<P>
-
-This section describes Readline commands that may be bound to key
-sequences.
-Command names without an accompanying key sequence are unbound by default.
-</P><P>
-
-In the following descriptions, <EM>point</EM> refers to the current cursor
-position, and <EM>mark</EM> refers to a cursor position saved by the
-<CODE>set-mark</CODE> command.
-The text between the point and mark is referred to as the <EM>region</EM>.
-</P><P>
-
-<A NAME="Commands For Moving"></A>
-<HR SIZE="6">
-<A NAME="SEC14"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC15"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.1 Commands For Moving </H3>
-<!--docid::SEC14::-->
-<DL COMPACT>
-<A NAME="IDX26"></A>
-<DT><CODE>beginning-of-line (C-a)</CODE>
-<DD><A NAME="IDX27"></A>
-Move to the start of the current line.
-<P>
-
-<A NAME="IDX28"></A>
-<DT><CODE>end-of-line (C-e)</CODE>
-<DD><A NAME="IDX29"></A>
-Move to the end of the line.
-<P>
-
-<A NAME="IDX30"></A>
-<DT><CODE>forward-char (C-f)</CODE>
-<DD><A NAME="IDX31"></A>
-Move forward a character.
-<P>
-
-<A NAME="IDX32"></A>
-<DT><CODE>backward-char (C-b)</CODE>
-<DD><A NAME="IDX33"></A>
-Move back a character.
-<P>
-
-<A NAME="IDX34"></A>
-<DT><CODE>forward-word (M-f)</CODE>
-<DD><A NAME="IDX35"></A>
-Move forward to the end of the next word. Words are composed of
-letters and digits.
-<P>
-
-<A NAME="IDX36"></A>
-<DT><CODE>backward-word (M-b)</CODE>
-<DD><A NAME="IDX37"></A>
-Move back to the start of the current or previous word. Words are
-composed of letters and digits.
-<P>
-
-<A NAME="IDX38"></A>
-<DT><CODE>clear-screen (C-l)</CODE>
-<DD><A NAME="IDX39"></A>
-Clear the screen and redraw the current line,
-leaving the current line at the top of the screen.
-<P>
-
-<A NAME="IDX40"></A>
-<DT><CODE>redraw-current-line ()</CODE>
-<DD><A NAME="IDX41"></A>
-Refresh the current line. By default, this is unbound.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Commands For History"></A>
-<HR SIZE="6">
-<A NAME="SEC15"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC14"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC16"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC16"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.2 Commands For Manipulating The History </H3>
-<!--docid::SEC15::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX42"></A>
-<DT><CODE>accept-line (Newline or Return)</CODE>
-<DD><A NAME="IDX43"></A>
-Accept the line regardless of where the cursor is.
-If this line is
-non-empty, it may be added to the history list for future recall with
-<CODE>add_history()</CODE>.
-If this line is a modified history line, the history line is restored
-to its original state.
-<P>
-
-<A NAME="IDX44"></A>
-<DT><CODE>previous-history (C-p)</CODE>
-<DD><A NAME="IDX45"></A>
-Move `back' through the history list, fetching the previous command.
-<P>
-
-<A NAME="IDX46"></A>
-<DT><CODE>next-history (C-n)</CODE>
-<DD><A NAME="IDX47"></A>
-Move `forward' through the history list, fetching the next command.
-<P>
-
-<A NAME="IDX48"></A>
-<DT><CODE>beginning-of-history (M-&#60;)</CODE>
-<DD><A NAME="IDX49"></A>
-Move to the first line in the history.
-<P>
-
-<A NAME="IDX50"></A>
-<DT><CODE>end-of-history (M-&#62;)</CODE>
-<DD><A NAME="IDX51"></A>
-Move to the end of the input history, i.e., the line currently
-being entered.
-<P>
-
-<A NAME="IDX52"></A>
-<DT><CODE>reverse-search-history (C-r)</CODE>
-<DD><A NAME="IDX53"></A>
-Search backward starting at the current line and moving `up' through
-the history as necessary. This is an incremental search.
-<P>
-
-<A NAME="IDX54"></A>
-<DT><CODE>forward-search-history (C-s)</CODE>
-<DD><A NAME="IDX55"></A>
-Search forward starting at the current line and moving `down' through
-the the history as necessary. This is an incremental search.
-<P>
-
-<A NAME="IDX56"></A>
-<DT><CODE>non-incremental-reverse-search-history (M-p)</CODE>
-<DD><A NAME="IDX57"></A>
-Search backward starting at the current line and moving `up'
-through the history as necessary using a non-incremental search
-for a string supplied by the user.
-<P>
-
-<A NAME="IDX58"></A>
-<DT><CODE>non-incremental-forward-search-history (M-n)</CODE>
-<DD><A NAME="IDX59"></A>
-Search forward starting at the current line and moving `down'
-through the the history as necessary using a non-incremental search
-for a string supplied by the user.
-<P>
-
-<A NAME="IDX60"></A>
-<DT><CODE>history-search-forward ()</CODE>
-<DD><A NAME="IDX61"></A>
-Search forward through the history for the string of characters
-between the start of the current line and the point.
-This is a non-incremental search.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX62"></A>
-<DT><CODE>history-search-backward ()</CODE>
-<DD><A NAME="IDX63"></A>
-Search backward through the history for the string of characters
-between the start of the current line and the point. This
-is a non-incremental search. By default, this command is unbound.
-<P>
-
-<A NAME="IDX64"></A>
-<DT><CODE>yank-nth-arg (M-C-y)</CODE>
-<DD><A NAME="IDX65"></A>
-Insert the first argument to the previous command (usually
-the second word on the previous line) at point.
-With an argument <VAR>n</VAR>,
-insert the <VAR>n</VAR>th word from the previous command (the words
-in the previous command begin with word 0). A negative argument
-inserts the <VAR>n</VAR>th word from the end of the previous command.
-<P>
-
-<A NAME="IDX66"></A>
-<DT><CODE>yank-last-arg (M-. or M-_)</CODE>
-<DD><A NAME="IDX67"></A>
-Insert last argument to the previous command (the last word of the
-previous history entry). With an
-argument, behave exactly like <CODE>yank-nth-arg</CODE>.
-Successive calls to <CODE>yank-last-arg</CODE> move back through the history
-list, inserting the last argument of each line in turn.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Commands For Text"></A>
-<HR SIZE="6">
-<A NAME="SEC16"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC15"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC17"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC17"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.3 Commands For Changing Text </H3>
-<!--docid::SEC16::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX68"></A>
-<DT><CODE>delete-char (C-d)</CODE>
-<DD><A NAME="IDX69"></A>
-Delete the character at point. If point is at the
-beginning of the line, there are no characters in the line, and
-the last character typed was not bound to <CODE>delete-char</CODE>, then
-return EOF.
-<P>
-
-<A NAME="IDX70"></A>
-<DT><CODE>backward-delete-char (Rubout)</CODE>
-<DD><A NAME="IDX71"></A>
-Delete the character behind the cursor. A numeric argument means
-to kill the characters instead of deleting them.
-<P>
-
-<A NAME="IDX72"></A>
-<DT><CODE>forward-backward-delete-char ()</CODE>
-<DD><A NAME="IDX73"></A>
-Delete the character under the cursor, unless the cursor is at the
-end of the line, in which case the character behind the cursor is
-deleted. By default, this is not bound to a key.
-<P>
-
-<A NAME="IDX74"></A>
-<DT><CODE>quoted-insert (C-q or C-v)</CODE>
-<DD><A NAME="IDX75"></A>
-Add the next character typed to the line verbatim. This is
-how to insert key sequences like <KBD>C-q</KBD>, for example.
-<P>
-
-<A NAME="IDX76"></A>
-<DT><CODE>tab-insert (M-<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX77"></A>
-Insert a tab character.
-<P>
-
-<A NAME="IDX78"></A>
-<DT><CODE>self-insert (a, b, A, 1, !, <small>...</small>)</CODE>
-<DD><A NAME="IDX79"></A>
-Insert yourself.
-<P>
-
-<A NAME="IDX80"></A>
-<DT><CODE>transpose-chars (C-t)</CODE>
-<DD><A NAME="IDX81"></A>
-Drag the character before the cursor forward over
-the character at the cursor, moving the
-cursor forward as well. If the insertion point
-is at the end of the line, then this
-transposes the last two characters of the line.
-Negative arguments have no effect.
-<P>
-
-<A NAME="IDX82"></A>
-<DT><CODE>transpose-words (M-t)</CODE>
-<DD><A NAME="IDX83"></A>
-Drag the word before point past the word after point,
-moving point past that word as well.
-If the insertion point is at the end of the line, this transposes
-the last two words on the line.
-<P>
-
-<A NAME="IDX84"></A>
-<DT><CODE>upcase-word (M-u)</CODE>
-<DD><A NAME="IDX85"></A>
-Uppercase the current (or following) word. With a negative argument,
-uppercase the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX86"></A>
-<DT><CODE>downcase-word (M-l)</CODE>
-<DD><A NAME="IDX87"></A>
-Lowercase the current (or following) word. With a negative argument,
-lowercase the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX88"></A>
-<DT><CODE>capitalize-word (M-c)</CODE>
-<DD><A NAME="IDX89"></A>
-Capitalize the current (or following) word. With a negative argument,
-capitalize the previous word, but do not move the cursor.
-<P>
-
-<A NAME="IDX90"></A>
-<DT><CODE>overwrite-mode ()</CODE>
-<DD><A NAME="IDX91"></A>
-Toggle overwrite mode. With an explicit positive numeric argument,
-switches to overwrite mode. With an explicit non-positive numeric
-argument, switches to insert mode. This command affects only
-<CODE>emacs</CODE> mode; <CODE>vi</CODE> mode does overwrite differently.
-Each call to <CODE>readline()</CODE> starts in insert mode.
-<P>
-
-In overwrite mode, characters bound to <CODE>self-insert</CODE> replace
-the text at point rather than pushing the text to the right.
-Characters bound to <CODE>backward-delete-char</CODE> replace the character
-before point with a space.
-</P><P>
-
-By default, this command is unbound.
-</P><P>
-
-</DL>
-<P>
-
-<A NAME="Commands For Killing"></A>
-<HR SIZE="6">
-<A NAME="SEC17"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC16"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC18"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC18"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.4 Killing And Yanking </H3>
-<!--docid::SEC17::-->
-<P>
-
-<DL COMPACT>
-
-<A NAME="IDX92"></A>
-<DT><CODE>kill-line (C-k)</CODE>
-<DD><A NAME="IDX93"></A>
-Kill the text from point to the end of the line.
-<P>
-
-<A NAME="IDX94"></A>
-<DT><CODE>backward-kill-line (C-x Rubout)</CODE>
-<DD><A NAME="IDX95"></A>
-Kill backward to the beginning of the line.
-<P>
-
-<A NAME="IDX96"></A>
-<DT><CODE>unix-line-discard (C-u)</CODE>
-<DD><A NAME="IDX97"></A>
-Kill backward from the cursor to the beginning of the current line.
-<P>
-
-<A NAME="IDX98"></A>
-<DT><CODE>kill-whole-line ()</CODE>
-<DD><A NAME="IDX99"></A>
-Kill all characters on the current line, no matter where point is.
-By default, this is unbound.
-<P>
-
-<A NAME="IDX100"></A>
-<DT><CODE>kill-word (M-d)</CODE>
-<DD><A NAME="IDX101"></A>
-Kill from point to the end of the current word, or if between
-words, to the end of the next word.
-Word boundaries are the same as <CODE>forward-word</CODE>.
-<P>
-
-<A NAME="IDX102"></A>
-<DT><CODE>backward-kill-word (M-<KBD>DEL</KBD>)</CODE>
-<DD><A NAME="IDX103"></A>
-Kill the word behind point.
-Word boundaries are the same as <CODE>backward-word</CODE>.
-<P>
-
-<A NAME="IDX104"></A>
-<DT><CODE>unix-word-rubout (C-w)</CODE>
-<DD><A NAME="IDX105"></A>
-Kill the word behind point, using white space as a word boundary.
-The killed text is saved on the kill-ring.
-<P>
-
-<A NAME="IDX106"></A>
-<DT><CODE>delete-horizontal-space ()</CODE>
-<DD><A NAME="IDX107"></A>
-Delete all spaces and tabs around point. By default, this is unbound.
-<P>
-
-<A NAME="IDX108"></A>
-<DT><CODE>kill-region ()</CODE>
-<DD><A NAME="IDX109"></A>
-Kill the text in the current region.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX110"></A>
-<DT><CODE>copy-region-as-kill ()</CODE>
-<DD><A NAME="IDX111"></A>
-Copy the text in the region to the kill buffer, so it can be yanked
-right away. By default, this command is unbound.
-<P>
-
-<A NAME="IDX112"></A>
-<DT><CODE>copy-backward-word ()</CODE>
-<DD><A NAME="IDX113"></A>
-Copy the word before point to the kill buffer.
-The word boundaries are the same as <CODE>backward-word</CODE>.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX114"></A>
-<DT><CODE>copy-forward-word ()</CODE>
-<DD><A NAME="IDX115"></A>
-Copy the word following point to the kill buffer.
-The word boundaries are the same as <CODE>forward-word</CODE>.
-By default, this command is unbound.
-<P>
-
-<A NAME="IDX116"></A>
-<DT><CODE>yank (C-y)</CODE>
-<DD><A NAME="IDX117"></A>
-Yank the top of the kill ring into the buffer at point.
-<P>
-
-<A NAME="IDX118"></A>
-<DT><CODE>yank-pop (M-y)</CODE>
-<DD><A NAME="IDX119"></A>
-Rotate the kill-ring, and yank the new top. You can only do this if
-the prior command is <CODE>yank</CODE> or <CODE>yank-pop</CODE>.
-</DL>
-<P>
-
-<A NAME="Numeric Arguments"></A>
-<HR SIZE="6">
-<A NAME="SEC18"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC17"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC19"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC19"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.5 Specifying Numeric Arguments </H3>
-<!--docid::SEC18::-->
-<DL COMPACT>
-
-<A NAME="IDX120"></A>
-<DT><CODE>digit-argument (<KBD>M-0</KBD>, <KBD>M-1</KBD>, <small>...</small> <KBD>M--</KBD>)</CODE>
-<DD><A NAME="IDX121"></A>
-Add this digit to the argument already accumulating, or start a new
-argument. <KBD>M--</KBD> starts a negative argument.
-<P>
-
-<A NAME="IDX122"></A>
-<DT><CODE>universal-argument ()</CODE>
-<DD><A NAME="IDX123"></A>
-This is another way to specify an argument.
-If this command is followed by one or more digits, optionally with a
-leading minus sign, those digits define the argument.
-If the command is followed by digits, executing <CODE>universal-argument</CODE>
-again ends the numeric argument, but is otherwise ignored.
-As a special case, if this command is immediately followed by a
-character that is neither a digit or minus sign, the argument count
-for the next command is multiplied by four.
-The argument count is initially one, so executing this function the
-first time makes the argument count four, a second time makes the
-argument count sixteen, and so on.
-By default, this is not bound to a key.
-</DL>
-<P>
-
-<A NAME="Commands For Completion"></A>
-<HR SIZE="6">
-<A NAME="SEC19"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC18"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC20"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC20"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.6 Letting Readline Type For You </H3>
-<!--docid::SEC19::-->
-<P>
-
-<DL COMPACT>
-<A NAME="IDX124"></A>
-<DT><CODE>complete (<KBD>TAB</KBD>)</CODE>
-<DD><A NAME="IDX125"></A>
-Attempt to perform completion on the text before point.
-The actual completion performed is application-specific.
-The default is filename completion.
-<P>
-
-<A NAME="IDX126"></A>
-<DT><CODE>possible-completions (M-?)</CODE>
-<DD><A NAME="IDX127"></A>
-List the possible completions of the text before point.
-<P>
-
-<A NAME="IDX128"></A>
-<DT><CODE>insert-completions (M-*)</CODE>
-<DD><A NAME="IDX129"></A>
-Insert all completions of the text before point that would have
-been generated by <CODE>possible-completions</CODE>.
-<P>
-
-<A NAME="IDX130"></A>
-<DT><CODE>menu-complete ()</CODE>
-<DD><A NAME="IDX131"></A>
-Similar to <CODE>complete</CODE>, but replaces the word to be completed
-with a single match from the list of possible completions.
-Repeated execution of <CODE>menu-complete</CODE> steps through the list
-of possible completions, inserting each match in turn.
-At the end of the list of completions, the bell is rung
-(subject to the setting of <CODE>bell-style</CODE>)
-and the original text is restored.
-An argument of <VAR>n</VAR> moves <VAR>n</VAR> positions forward in the list
-of matches; a negative argument may be used to move backward
-through the list.
-This command is intended to be bound to <KBD>TAB</KBD>, but is unbound
-by default.
-<P>
-
-<A NAME="IDX132"></A>
-<DT><CODE>delete-char-or-list ()</CODE>
-<DD><A NAME="IDX133"></A>
-Deletes the character under the cursor if not at the beginning or
-end of the line (like <CODE>delete-char</CODE>).
-If at the end of the line, behaves identically to
-<CODE>possible-completions</CODE>.
-This command is unbound by default.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Keyboard Macros"></A>
-<HR SIZE="6">
-<A NAME="SEC20"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC19"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC21"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC21"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.7 Keyboard Macros </H3>
-<!--docid::SEC20::-->
-<DL COMPACT>
-
-<A NAME="IDX134"></A>
-<DT><CODE>start-kbd-macro (C-x ()</CODE>
-<DD><A NAME="IDX135"></A>
-Begin saving the characters typed into the current keyboard macro.
-<P>
-
-<A NAME="IDX136"></A>
-<DT><CODE>end-kbd-macro (C-x ))</CODE>
-<DD><A NAME="IDX137"></A>
-Stop saving the characters typed into the current keyboard macro
-and save the definition.
-<P>
-
-<A NAME="IDX138"></A>
-<DT><CODE>call-last-kbd-macro (C-x e)</CODE>
-<DD><A NAME="IDX139"></A>
-Re-execute the last keyboard macro defined, by making the characters
-in the macro appear as if typed at the keyboard.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Miscellaneous Commands"></A>
-<HR SIZE="6">
-<A NAME="SEC21"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC20"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &lt;&lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC13"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC22"> &gt;&gt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H3> 1.4.8 Some Miscellaneous Commands </H3>
-<!--docid::SEC21::-->
-<DL COMPACT>
-
-<A NAME="IDX140"></A>
-<DT><CODE>re-read-init-file (C-x C-r)</CODE>
-<DD><A NAME="IDX141"></A>
-Read in the contents of the <VAR>inputrc</VAR> file, and incorporate
-any bindings or variable assignments found there.
-<P>
-
-<A NAME="IDX142"></A>
-<DT><CODE>abort (C-g)</CODE>
-<DD><A NAME="IDX143"></A>
-Abort the current editing command and
-ring the terminal's bell (subject to the setting of
-<CODE>bell-style</CODE>).
-<P>
-
-<A NAME="IDX144"></A>
-<DT><CODE>do-uppercase-version (M-a, M-b, M-<VAR>x</VAR>, <small>...</small>)</CODE>
-<DD><A NAME="IDX145"></A>
-If the metafied character <VAR>x</VAR> is lowercase, run the command
-that is bound to the corresponding uppercase character.
-<P>
-
-<A NAME="IDX146"></A>
-<DT><CODE>prefix-meta (<KBD>ESC</KBD>)</CODE>
-<DD><A NAME="IDX147"></A>
-Metafy the next character typed. This is for keyboards
-without a meta key. Typing <SAMP>`<KBD>ESC</KBD> f'</SAMP> is equivalent to typing
-<KBD>M-f</KBD>.
-<P>
-
-<A NAME="IDX148"></A>
-<DT><CODE>undo (C-_ or C-x C-u)</CODE>
-<DD><A NAME="IDX149"></A>
-Incremental undo, separately remembered for each line.
-<P>
-
-<A NAME="IDX150"></A>
-<DT><CODE>revert-line (M-r)</CODE>
-<DD><A NAME="IDX151"></A>
-Undo all changes made to this line. This is like executing the <CODE>undo</CODE>
-command enough times to get back to the beginning.
-<P>
-
-<A NAME="IDX152"></A>
-<DT><CODE>tilde-expand (M-~)</CODE>
-<DD><A NAME="IDX153"></A>
-Perform tilde expansion on the current word.
-<P>
-
-<A NAME="IDX154"></A>
-<DT><CODE>set-mark (C-@)</CODE>
-<DD><A NAME="IDX155"></A>
-Set the mark to the point. If a
-numeric argument is supplied, the mark is set to that position.
-<P>
-
-<A NAME="IDX156"></A>
-<DT><CODE>exchange-point-and-mark (C-x C-x)</CODE>
-<DD><A NAME="IDX157"></A>
-Swap the point with the mark. The current cursor position is set to
-the saved position, and the old cursor position is saved as the mark.
-<P>
-
-<A NAME="IDX158"></A>
-<DT><CODE>character-search (C-])</CODE>
-<DD><A NAME="IDX159"></A>
-A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
-<P>
-
-<A NAME="IDX160"></A>
-<DT><CODE>character-search-backward (M-C-])</CODE>
-<DD><A NAME="IDX161"></A>
-A character is read and point is moved to the previous occurrence
-of that character. A negative count searches for subsequent
-occurrences.
-<P>
-
-<A NAME="IDX162"></A>
-<DT><CODE>insert-comment (M-#)</CODE>
-<DD><A NAME="IDX163"></A>
-Without a numeric argument, the value of the <CODE>comment-begin</CODE>
-variable is inserted at the beginning of the current line.
-If a numeric argument is supplied, this command acts as a toggle: if
-the characters at the beginning of the line do not match the value
-of <CODE>comment-begin</CODE>, the value is inserted, otherwise
-the characters in <CODE>comment-begin</CODE> are deleted from the beginning of
-the line.
-In either case, the line is accepted as if a newline had been typed.
-<P>
-
-<A NAME="IDX164"></A>
-<DT><CODE>dump-functions ()</CODE>
-<DD><A NAME="IDX165"></A>
-Print all of the functions and their key bindings to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX166"></A>
-<DT><CODE>dump-variables ()</CODE>
-<DD><A NAME="IDX167"></A>
-Print all of the settable variables and their values to the
-Readline output stream. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX168"></A>
-<DT><CODE>dump-macros ()</CODE>
-<DD><A NAME="IDX169"></A>
-Print all of the Readline key sequences bound to macros and the
-strings they output. If a numeric argument is supplied,
-the output is formatted in such a way that it can be made part
-of an <VAR>inputrc</VAR> file. This command is unbound by default.
-<P>
-
-<A NAME="IDX170"></A>
-<DT><CODE>emacs-editing-mode (C-e)</CODE>
-<DD><A NAME="IDX171"></A>
-When in <CODE>vi</CODE> command mode, this causes a switch to <CODE>emacs</CODE>
-editing mode.
-<P>
-
-<A NAME="IDX172"></A>
-<DT><CODE>vi-editing-mode (M-C-j)</CODE>
-<DD><A NAME="IDX173"></A>
-When in <CODE>emacs</CODE> editing mode, this causes a switch to <CODE>vi</CODE>
-editing mode.
-<P>
-
-</DL>
-<P>
-
-<A NAME="Readline vi Mode"></A>
-<HR SIZE="6">
-<A NAME="SEC22"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC21"> &lt; </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[ &lt;&lt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC1"> Up </A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[ &gt;&gt; ]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT"> &nbsp; <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H2> 1.5 Readline vi Mode </H2>
-<!--docid::SEC22::-->
-<P>
-
-While the Readline library does not have a full set of <CODE>vi</CODE>
-editing functions, it does contain enough to allow simple editing
-of the line. The Readline <CODE>vi</CODE> mode behaves as specified in
-the POSIX 1003.2 standard.
-</P><P>
-
-In order to switch interactively between <CODE>emacs</CODE> and <CODE>vi</CODE>
-editing modes, use the command <KBD>M-C-j</KBD> (bound to emacs-editing-mode
-when in <CODE>vi</CODE> mode and to vi-editing-mode in <CODE>emacs</CODE> mode).
-The Readline default is <CODE>emacs</CODE> mode.
-</P><P>
-
-When you enter a line in <CODE>vi</CODE> mode, you are already placed in
-`insertion' mode, as if you had typed an <SAMP>`i'</SAMP>. Pressing <KBD>ESC</KBD>
-switches you into `command' mode, where you can edit the text of the
-line with the standard <CODE>vi</CODE> movement keys, move to previous
-history lines with <SAMP>`k'</SAMP> and subsequent lines with <SAMP>`j'</SAMP>, and
-so forth.
-</P><P>
-
-<HR SIZE="6">
-<A NAME="SEC_Contents"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Table of Contents</H1>
-<UL>
-<A NAME="TOC1" HREF="rluserman.html#SEC1">1. Command Line Editing</A>
-<BR>
-<UL>
-<A NAME="TOC2" HREF="rluserman.html#SEC2">1.1 Introduction to Line Editing</A>
-<BR>
-<A NAME="TOC3" HREF="rluserman.html#SEC3">1.2 Readline Interaction</A>
-<BR>
-<UL>
-<A NAME="TOC4" HREF="rluserman.html#SEC4">1.2.1 Readline Bare Essentials</A>
-<BR>
-<A NAME="TOC5" HREF="rluserman.html#SEC5">1.2.2 Readline Movement Commands</A>
-<BR>
-<A NAME="TOC6" HREF="rluserman.html#SEC6">1.2.3 Readline Killing Commands</A>
-<BR>
-<A NAME="TOC7" HREF="rluserman.html#SEC7">1.2.4 Readline Arguments</A>
-<BR>
-<A NAME="TOC8" HREF="rluserman.html#SEC8">1.2.5 Searching for Commands in the History</A>
-<BR>
-</UL>
-<A NAME="TOC9" HREF="rluserman.html#SEC9">1.3 Readline Init File</A>
-<BR>
-<UL>
-<A NAME="TOC10" HREF="rluserman.html#SEC10">1.3.1 Readline Init File Syntax</A>
-<BR>
-<A NAME="TOC11" HREF="rluserman.html#SEC11">1.3.2 Conditional Init Constructs</A>
-<BR>
-<A NAME="TOC12" HREF="rluserman.html#SEC12">1.3.3 Sample Init File</A>
-<BR>
-</UL>
-<A NAME="TOC13" HREF="rluserman.html#SEC13">1.4 Bindable Readline Commands</A>
-<BR>
-<UL>
-<A NAME="TOC14" HREF="rluserman.html#SEC14">1.4.1 Commands For Moving</A>
-<BR>
-<A NAME="TOC15" HREF="rluserman.html#SEC15">1.4.2 Commands For Manipulating The History</A>
-<BR>
-<A NAME="TOC16" HREF="rluserman.html#SEC16">1.4.3 Commands For Changing Text</A>
-<BR>
-<A NAME="TOC17" HREF="rluserman.html#SEC17">1.4.4 Killing And Yanking</A>
-<BR>
-<A NAME="TOC18" HREF="rluserman.html#SEC18">1.4.5 Specifying Numeric Arguments</A>
-<BR>
-<A NAME="TOC19" HREF="rluserman.html#SEC19">1.4.6 Letting Readline Type For You</A>
-<BR>
-<A NAME="TOC20" HREF="rluserman.html#SEC20">1.4.7 Keyboard Macros</A>
-<BR>
-<A NAME="TOC21" HREF="rluserman.html#SEC21">1.4.8 Some Miscellaneous Commands</A>
-<BR>
-</UL>
-<A NAME="TOC22" HREF="rluserman.html#SEC22">1.5 Readline vi Mode</A>
-<BR>
-</UL>
-</UL>
-<HR SIZE=1>
-<A NAME="SEC_OVERVIEW"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>Short Table of Contents</H1>
-<BLOCKQUOTE>
-<A NAME="TOC1" HREF="rluserman.html#SEC1">1. Command Line Editing</A>
-<BR>
-
-</BLOCKQUOTE>
-<HR SIZE=1>
-<A NAME="SEC_About"></A>
-<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0>
-<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Top">Top</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_Contents">Contents</A>]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD>
-<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="rluserman.html#SEC_About"> ? </A>]</TD>
-</TR></TABLE>
-<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-<P></P>
-The buttons in the navigation panels have the following meaning:
-<P></P>
-<table border = "1">
-<TR>
-<TH> Button </TH>
-<TH> Name </TH>
-<TH> Go to </TH>
-<TH> From 1.2.3 go to</TH>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt; ] </TD>
-<TD ALIGN="CENTER">
-Back
-</TD>
-<TD>
-previous section in reading order
-</TD>
-<TD>
-1.2.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt; ] </TD>
-<TD ALIGN="CENTER">
-Forward
-</TD>
-<TD>
-next section in reading order
-</TD>
-<TD>
-1.2.4
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &lt;&lt; ] </TD>
-<TD ALIGN="CENTER">
-FastBack
-</TD>
-<TD>
-previous or up-and-previous section
-</TD>
-<TD>
-1.1
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ Up ] </TD>
-<TD ALIGN="CENTER">
-Up
-</TD>
-<TD>
-up section
-</TD>
-<TD>
-1.2
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ &gt;&gt; ] </TD>
-<TD ALIGN="CENTER">
-FastForward
-</TD>
-<TD>
-next or up-and-next section
-</TD>
-<TD>
-1.3
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Top] </TD>
-<TD ALIGN="CENTER">
-Top
-</TD>
-<TD>
-cover (top) of document
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Contents] </TD>
-<TD ALIGN="CENTER">
-Contents
-</TD>
-<TD>
-table of contents
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [Index] </TD>
-<TD ALIGN="CENTER">
-Index
-</TD>
-<TD>
-concept index
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-<TR>
-<TD ALIGN="CENTER">
- [ ? ] </TD>
-<TD ALIGN="CENTER">
-About
-</TD>
-<TD>
-this page
-</TD>
-<TD>
- &nbsp;
-</TD>
-</TR>
-</TABLE>
-<P></P>
-where the <STRONG> Example </STRONG> assumes that the current position
-is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of
-the following structure:
-<UL>
-<LI> 1. Section One </LI>
-<UL>
-<LI>1.1 Subsection One-One</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.2 Subsection One-Two</LI>
-<UL>
-<LI>1.2.1 Subsubsection One-Two-One
-</LI><LI>1.2.2 Subsubsection One-Two-Two
-</LI><LI>1.2.3 Subsubsection One-Two-Three &nbsp; &nbsp; <STRONG>
-&lt;== Current Position </STRONG>
-</LI><LI>1.2.4 Subsubsection One-Two-Four
-</LI></UL>
-<LI>1.3 Subsection One-Three</LI>
-<UL>
-<LI> ... </LI>
-</UL>
-<LI>1.4 Subsection One-Four</LI>
-</UL>
-</UL>
-
-<HR SIZE=1>
-<BR>
-<FONT SIZE="-1">
-This document was generated
-by <I>Chet Ramey</I> on <I>June, 27 2002</I>
-using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
-"><I>texi2html</I></A>
-
-</BODY>
-</HTML>
diff --git a/readline-doc-4.3/doc/rluserman.info b/readline-doc-4.3/doc/rluserman.info
deleted file mode 100644
index 3fccbd4..0000000
--- a/readline-doc-4.3/doc/rluserman.info
+++ /dev/null
@@ -1,1260 +0,0 @@
-This is rluserman.info, produced by makeinfo version 4.1 from
-/usr/homes/chet/src/bash/readline-src/doc/rluserman.texinfo.
-
-INFO-DIR-SECTION Libraries
-START-INFO-DIR-ENTRY
-* RLuserman: (rluserman). The GNU readline library User's Manual.
-END-INFO-DIR-ENTRY
-
- This document describes the end user interface of the GNU Readline
-Library, a utility which aids in the consistency of user interface
-across discrete programs that need to provide a command line interface.
-
- Copyright (C) 1988-2002 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice pare
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Free Software Foundation.
-
-
-File: rluserman.info, Node: Top, Next: Command Line Editing, Up: (dir)
-
-GNU Readline Library
-********************
-
- This document describes the end user interface of the GNU Readline
-Library, a utility which aids in the consistency of user interface
-across discrete programs that need to provide a command line interface.
-
-* Menu:
-
-* Command Line Editing:: GNU Readline User's Manual.
-
-
-File: rluserman.info, Node: Command Line Editing, Prev: Top, Up: Top
-
-Command Line Editing
-********************
-
- This chapter describes the basic features of the GNU command line
-editing interface.
-
-* Menu:
-
-* Introduction and Notation:: Notation used in this text.
-* Readline Interaction:: The minimum set of commands for editing a line.
-* Readline Init File:: Customizing Readline from a user's view.
-* Bindable Readline Commands:: A description of most of the Readline commands
- available for binding
-* Readline vi Mode:: A short description of how to make Readline
- behave like the vi editor.
-
-
-File: rluserman.info, Node: Introduction and Notation, Next: Readline Interaction, Up: Command Line Editing
-
-Introduction to Line Editing
-============================
-
- The following paragraphs describe the notation used to represent
-keystrokes.
-
- The text `C-k' is read as `Control-K' and describes the character
-produced when the <k> key is pressed while the Control key is depressed.
-
- The text `M-k' is read as `Meta-K' and describes the character
-produced when the Meta key (if you have one) is depressed, and the <k>
-key is pressed. The Meta key is labeled <ALT> on many keyboards. On
-keyboards with two keys labeled <ALT> (usually to either side of the
-space bar), the <ALT> on the left side is generally set to work as a
-Meta key. The <ALT> key on the right may also be configured to work as
-a Meta key or may be configured as some other modifier, such as a
-Compose key for typing accented characters.
-
- If you do not have a Meta or <ALT> key, or another key working as a
-Meta key, the identical keystroke can be generated by typing <ESC>
-_first_, and then typing <k>. Either process is known as "metafying"
-the <k> key.
-
- The text `M-C-k' is read as `Meta-Control-k' and describes the
-character produced by "metafying" `C-k'.
-
- In addition, several keys have their own names. Specifically,
-<DEL>, <ESC>, <LFD>, <SPC>, <RET>, and <TAB> all stand for themselves
-when seen in this text, or in an init file (*note Readline Init File::).
-If your keyboard lacks a <LFD> key, typing <C-j> will produce the
-desired character. The <RET> key may be labeled <Return> or <Enter> on
-some keyboards.
-
-
-File: rluserman.info, Node: Readline Interaction, Next: Readline Init File, Prev: Introduction and Notation, Up: Command Line Editing
-
-Readline Interaction
-====================
-
- Often during an interactive session you type in a long line of text,
-only to notice that the first word on the line is misspelled. The
-Readline library gives you a set of commands for manipulating the text
-as you type it in, allowing you to just fix your typo, and not forcing
-you to retype the majority of the line. Using these editing commands,
-you move the cursor to the place that needs correction, and delete or
-insert the text of the corrections. Then, when you are satisfied with
-the line, you simply press <RET>. You do not have to be at the end of
-the line to press <RET>; the entire line is accepted regardless of the
-location of the cursor within the line.
-
-* Menu:
-
-* Readline Bare Essentials:: The least you need to know about Readline.
-* Readline Movement Commands:: Moving about the input line.
-* Readline Killing Commands:: How to delete text, and how to get it back!
-* Readline Arguments:: Giving numeric arguments to commands.
-* Searching:: Searching through previous lines.
-
-
-File: rluserman.info, Node: Readline Bare Essentials, Next: Readline Movement Commands, Up: Readline Interaction
-
-Readline Bare Essentials
-------------------------
-
- In order to enter characters into the line, simply type them. The
-typed character appears where the cursor was, and then the cursor moves
-one space to the right. If you mistype a character, you can use your
-erase character to back up and delete the mistyped character.
-
- Sometimes you may mistype a character, and not notice the error
-until you have typed several other characters. In that case, you can
-type `C-b' to move the cursor to the left, and then correct your
-mistake. Afterwards, you can move the cursor to the right with `C-f'.
-
- When you add text in the middle of a line, you will notice that
-characters to the right of the cursor are `pushed over' to make room
-for the text that you have inserted. Likewise, when you delete text
-behind the cursor, characters to the right of the cursor are `pulled
-back' to fill in the blank space created by the removal of the text. A
-list of the bare essentials for editing the text of an input line
-follows.
-
-`C-b'
- Move back one character.
-
-`C-f'
- Move forward one character.
-
-<DEL> or <Backspace>
- Delete the character to the left of the cursor.
-
-`C-d'
- Delete the character underneath the cursor.
-
-Printing characters
- Insert the character into the line at the cursor.
-
-`C-_' or `C-x C-u'
- Undo the last editing command. You can undo all the way back to an
- empty line.
-
-(Depending on your configuration, the <Backspace> key be set to delete
-the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like `C-d', rather than the
-character to the left of the cursor.)
-
-
-File: rluserman.info, Node: Readline Movement Commands, Next: Readline Killing Commands, Prev: Readline Bare Essentials, Up: Readline Interaction
-
-Readline Movement Commands
---------------------------
-
- The above table describes the most basic keystrokes that you need in
-order to do editing of the input line. For your convenience, many
-other commands have been added in addition to `C-b', `C-f', `C-d', and
-<DEL>. Here are some commands for moving more rapidly about the line.
-
-`C-a'
- Move to the start of the line.
-
-`C-e'
- Move to the end of the line.
-
-`M-f'
- Move forward a word, where a word is composed of letters and
- digits.
-
-`M-b'
- Move backward a word.
-
-`C-l'
- Clear the screen, reprinting the current line at the top.
-
- Notice how `C-f' moves forward a character, while `M-f' moves
-forward a word. It is a loose convention that control keystrokes
-operate on characters while meta keystrokes operate on words.
-
-
-File: rluserman.info, Node: Readline Killing Commands, Next: Readline Arguments, Prev: Readline Movement Commands, Up: Readline Interaction
-
-Readline Killing Commands
--------------------------
-
- "Killing" text means to delete the text from the line, but to save
-it away for later use, usually by "yanking" (re-inserting) it back into
-the line. (`Cut' and `paste' are more recent jargon for `kill' and
-`yank'.)
-
- If the description for a command says that it `kills' text, then you
-can be sure that you can get the text back in a different (or the same)
-place later.
-
- When you use a kill command, the text is saved in a "kill-ring".
-Any number of consecutive kills save all of the killed text together, so
-that when you yank it back, you get it all. The kill ring is not line
-specific; the text that you killed on a previously typed line is
-available to be yanked back later, when you are typing another line.
-
- Here is the list of commands for killing text.
-
-`C-k'
- Kill the text from the current cursor position to the end of the
- line.
-
-`M-d'
- Kill from the cursor to the end of the current word, or, if between
- words, to the end of the next word. Word boundaries are the same
- as those used by `M-f'.
-
-`M-<DEL>'
- Kill from the cursor the start of the current word, or, if between
- words, to the start of the previous word. Word boundaries are the
- same as those used by `M-b'.
-
-`C-w'
- Kill from the cursor to the previous whitespace. This is
- different than `M-<DEL>' because the word boundaries differ.
-
- Here is how to "yank" the text back into the line. Yanking means to
-copy the most-recently-killed text from the kill buffer.
-
-`C-y'
- Yank the most recently killed text back into the buffer at the
- cursor.
-
-`M-y'
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `C-y' or `M-y'.
-
-
-File: rluserman.info, Node: Readline Arguments, Next: Searching, Prev: Readline Killing Commands, Up: Readline Interaction
-
-Readline Arguments
-------------------
-
- You can pass numeric arguments to Readline commands. Sometimes the
-argument acts as a repeat count, other times it is the sign of the
-argument that is significant. If you pass a negative argument to a
-command which normally acts in a forward direction, that command will
-act in a backward direction. For example, to kill text back to the
-start of the line, you might type `M-- C-k'.
-
- The general way to pass numeric arguments to a command is to type
-meta digits before the command. If the first `digit' typed is a minus
-sign (`-'), then the sign of the argument will be negative. Once you
-have typed one meta digit to get the argument started, you can type the
-remainder of the digits, and then the command. For example, to give
-the `C-d' command an argument of 10, you could type `M-1 0 C-d', which
-will delete the next ten characters on the input line.
-
-
-File: rluserman.info, Node: Searching, Prev: Readline Arguments, Up: Readline Interaction
-
-Searching for Commands in the History
--------------------------------------
-
- Readline provides commands for searching through the command history
-for lines containing a specified string. There are two search modes:
-"incremental" and "non-incremental".
-
- Incremental searches begin before the user has finished typing the
-search string. As each character of the search string is typed,
-Readline displays the next entry from the history matching the string
-typed so far. An incremental search requires only as many characters
-as needed to find the desired history entry. To search backward in the
-history for a particular string, type `C-r'. Typing `C-s' searches
-forward through the history. The characters present in the value of
-the `isearch-terminators' variable are used to terminate an incremental
-search. If that variable has not been assigned a value, the <ESC> and
-`C-J' characters will terminate an incremental search. `C-g' will
-abort an incremental search and restore the original line. When the
-search is terminated, the history entry containing the search string
-becomes the current line.
-
- To find other matching entries in the history list, type `C-r' or
-`C-s' as appropriate. This will search backward or forward in the
-history for the next entry matching the search string typed so far.
-Any other key sequence bound to a Readline command will terminate the
-search and execute that command. For instance, a <RET> will terminate
-the search and accept the line, thereby executing the command from the
-history list. A movement command will terminate the search, make the
-last line found the current line, and begin editing.
-
- Readline remembers the last incremental search string. If two
-`C-r's are typed without any intervening characters defining a new
-search string, any remembered search string is used.
-
- Non-incremental searches read the entire search string before
-starting to search for matching history lines. The search string may be
-typed by the user or be part of the contents of the current line.
-
-
-File: rluserman.info, Node: Readline Init File, Next: Bindable Readline Commands, Prev: Readline Interaction, Up: Command Line Editing
-
-Readline Init File
-==================
-
- Although the Readline library comes with a set of Emacs-like
-keybindings installed by default, it is possible to use a different set
-of keybindings. Any user can customize programs that use Readline by
-putting commands in an "inputrc" file, conventionally in his home
-directory. The name of this file is taken from the value of the
-environment variable `INPUTRC'. If that variable is unset, the default
-is `~/.inputrc'.
-
- When a program which uses the Readline library starts up, the init
-file is read, and the key bindings are set.
-
- In addition, the `C-x C-r' command re-reads this init file, thus
-incorporating any changes that you might have made to it.
-
-* Menu:
-
-* Readline Init File Syntax:: Syntax for the commands in the inputrc file.
-
-* Conditional Init Constructs:: Conditional key bindings in the inputrc file.
-
-* Sample Init File:: An example inputrc file.
-
-
-File: rluserman.info, Node: Readline Init File Syntax, Next: Conditional Init Constructs, Up: Readline Init File
-
-Readline Init File Syntax
--------------------------
-
- There are only a few basic constructs allowed in the Readline init
-file. Blank lines are ignored. Lines beginning with a `#' are
-comments. Lines beginning with a `$' indicate conditional constructs
-(*note Conditional Init Constructs::). Other lines denote variable
-settings and key bindings.
-
-Variable Settings
- You can modify the run-time behavior of Readline by altering the
- values of variables in Readline using the `set' command within the
- init file. The syntax is simple:
-
- set VARIABLE VALUE
-
- Here, for example, is how to change from the default Emacs-like
- key binding to use `vi' line editing commands:
-
- set editing-mode vi
-
- Variable names and values, where appropriate, are recognized
- without regard to case.
-
- A great deal of run-time behavior is changeable with the following
- variables.
-
- `bell-style'
- Controls what happens when Readline wants to ring the
- terminal bell. If set to `none', Readline never rings the
- bell. If set to `visible', Readline uses a visible bell if
- one is available. If set to `audible' (the default),
- Readline attempts to ring the terminal's bell.
-
- `comment-begin'
- The string to insert at the beginning of the line when the
- `insert-comment' command is executed. The default value is
- `"#"'.
-
- `completion-ignore-case'
- If set to `on', Readline performs filename matching and
- completion in a case-insensitive fashion. The default value
- is `off'.
-
- `completion-query-items'
- The number of possible completions that determines when the
- user is asked whether he wants to see the list of
- possibilities. If the number of possible completions is
- greater than this value, Readline will ask the user whether
- or not he wishes to view them; otherwise, they are simply
- listed. This variable must be set to an integer value
- greater than or equal to 0. The default limit is `100'.
-
- `convert-meta'
- If set to `on', Readline will convert characters with the
- eighth bit set to an ASCII key sequence by stripping the
- eighth bit and prefixing an <ESC> character, converting them
- to a meta-prefixed key sequence. The default value is `on'.
-
- `disable-completion'
- If set to `On', Readline will inhibit word completion.
- Completion characters will be inserted into the line as if
- they had been mapped to `self-insert'. The default is `off'.
-
- `editing-mode'
- The `editing-mode' variable controls which default set of key
- bindings is used. By default, Readline starts up in Emacs
- editing mode, where the keystrokes are most similar to Emacs.
- This variable can be set to either `emacs' or `vi'.
-
- `enable-keypad'
- When set to `on', Readline will try to enable the application
- keypad when it is called. Some systems need this to enable
- the arrow keys. The default is `off'.
-
- `expand-tilde'
- If set to `on', tilde expansion is performed when Readline
- attempts word completion. The default is `off'.
-
- If set to `on', the history code attempts to place point at
- the same location on each history line retrived with
- `previous-history' or `next-history'.
-
- `horizontal-scroll-mode'
- This variable can be set to either `on' or `off'. Setting it
- to `on' means that the text of the lines being edited will
- scroll horizontally on a single screen line when they are
- longer than the width of the screen, instead of wrapping onto
- a new screen line. By default, this variable is set to `off'.
-
- `input-meta'
- If set to `on', Readline will enable eight-bit input (it will
- not clear the eighth bit in the characters it reads),
- regardless of what the terminal claims it can support. The
- default value is `off'. The name `meta-flag' is a synonym
- for this variable.
-
- `isearch-terminators'
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a
- command (*note Searching::). If this variable has not been
- given a value, the characters <ESC> and `C-J' will terminate
- an incremental search.
-
- `keymap'
- Sets Readline's idea of the current keymap for key binding
- commands. Acceptable `keymap' names are `emacs',
- `emacs-standard', `emacs-meta', `emacs-ctlx', `vi', `vi-move',
- `vi-command', and `vi-insert'. `vi' is equivalent to
- `vi-command'; `emacs' is equivalent to `emacs-standard'. The
- default value is `emacs'. The value of the `editing-mode'
- variable also affects the default keymap.
-
- `mark-directories'
- If set to `on', completed directory names have a slash
- appended. The default is `on'.
-
- `mark-modified-lines'
- This variable, when set to `on', causes Readline to display an
- asterisk (`*') at the start of history lines which have been
- modified. This variable is `off' by default.
-
- `mark-symlinked-directories'
- If set to `on', completed names which are symbolic links to
- directories have a slash appended (subject to the value of
- `mark-directories'). The default is `off'.
-
- `match-hidden-files'
- This variable, when set to `on', causes Readline to match
- files whose names begin with a `.' (hidden files) when
- performing filename completion, unless the leading `.' is
- supplied by the user in the filename to be completed. This
- variable is `on' by default.
-
- `output-meta'
- If set to `on', Readline will display characters with the
- eighth bit set directly rather than as a meta-prefixed escape
- sequence. The default is `off'.
-
- `page-completions'
- If set to `on', Readline uses an internal `more'-like pager
- to display a screenful of possible completions at a time.
- This variable is `on' by default.
-
- `print-completions-horizontally'
- If set to `on', Readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down
- the screen. The default is `off'.
-
- `show-all-if-ambiguous'
- This alters the default behavior of the completion functions.
- If set to `on', words which have more than one possible
- completion cause the matches to be listed immediately instead
- of ringing the bell. The default value is `off'.
-
- `visible-stats'
- If set to `on', a character denoting a file's type is
- appended to the filename when listing possible completions.
- The default is `off'.
-
-Key Bindings
- The syntax for controlling key bindings in the init file is
- simple. First you need to find the name of the command that you
- want to change. The following sections contain tables of the
- command name, the default keybinding, if any, and a short
- description of what the command does.
-
- Once you know the name of the command, simply place on a line in
- the init file the name of the key you wish to bind the command to,
- a colon, and then the name of the command. The name of the key
- can be expressed in different ways, depending on what you find most
- comfortable.
-
- In addition to command names, readline allows keys to be bound to
- a string that is inserted when the key is pressed (a MACRO).
-
- KEYNAME: FUNCTION-NAME or MACRO
- KEYNAME is the name of a key spelled out in English. For
- example:
- Control-u: universal-argument
- Meta-Rubout: backward-kill-word
- Control-o: "> output"
-
- In the above example, `C-u' is bound to the function
- `universal-argument', `M-DEL' is bound to the function
- `backward-kill-word', and `C-o' is bound to run the macro
- expressed on the right hand side (that is, to insert the text
- `> output' into the line).
-
- A number of symbolic character names are recognized while
- processing this key binding syntax: DEL, ESC, ESCAPE, LFD,
- NEWLINE, RET, RETURN, RUBOUT, SPACE, SPC, and TAB.
-
- "KEYSEQ": FUNCTION-NAME or MACRO
- KEYSEQ differs from KEYNAME above in that strings denoting an
- entire key sequence can be specified, by placing the key
- sequence in double quotes. Some GNU Emacs style key escapes
- can be used, as in the following example, but the special
- character names are not recognized.
-
- "\C-u": universal-argument
- "\C-x\C-r": re-read-init-file
- "\e[11~": "Function Key 1"
-
- In the above example, `C-u' is again bound to the function
- `universal-argument' (just as it was in the first example),
- `C-x C-r' is bound to the function `re-read-init-file', and
- `<ESC> <[> <1> <1> <~>' is bound to insert the text `Function
- Key 1'.
-
- The following GNU Emacs style escape sequences are available when
- specifying key sequences:
-
- `\C-'
- control prefix
-
- `\M-'
- meta prefix
-
- `\e'
- an escape character
-
- `\\'
- backslash
-
- `\"'
- <">, a double quotation mark
-
- `\''
- <'>, a single quote or apostrophe
-
- In addition to the GNU Emacs style escape sequences, a second set
- of backslash escapes is available:
-
- `\a'
- alert (bell)
-
- `\b'
- backspace
-
- `\d'
- delete
-
- `\f'
- form feed
-
- `\n'
- newline
-
- `\r'
- carriage return
-
- `\t'
- horizontal tab
-
- `\v'
- vertical tab
-
- `\NNN'
- the eight-bit character whose value is the octal value NNN
- (one to three digits)
-
- `\xHH'
- the eight-bit character whose value is the hexadecimal value
- HH (one or two hex digits)
-
- When entering the text of a macro, single or double quotes must be
- used to indicate a macro definition. Unquoted text is assumed to
- be a function name. In the macro body, the backslash escapes
- described above are expanded. Backslash will quote any other
- character in the macro text, including `"' and `''. For example,
- the following binding will make `C-x \' insert a single `\' into
- the line:
- "\C-x\\": "\\"
-
-
-File: rluserman.info, Node: Conditional Init Constructs, Next: Sample Init File, Prev: Readline Init File Syntax, Up: Readline Init File
-
-Conditional Init Constructs
----------------------------
-
- Readline implements a facility similar in spirit to the conditional
-compilation features of the C preprocessor which allows key bindings
-and variable settings to be performed as the result of tests. There
-are four parser directives used.
-
-`$if'
- The `$if' construct allows bindings to be made based on the
- editing mode, the terminal being used, or the application using
- Readline. The text of the test extends to the end of the line; no
- characters are required to isolate it.
-
- `mode'
- The `mode=' form of the `$if' directive is used to test
- whether Readline is in `emacs' or `vi' mode. This may be
- used in conjunction with the `set keymap' command, for
- instance, to set bindings in the `emacs-standard' and
- `emacs-ctlx' keymaps only if Readline is starting out in
- `emacs' mode.
-
- `term'
- The `term=' form may be used to include terminal-specific key
- bindings, perhaps to bind the key sequences output by the
- terminal's function keys. The word on the right side of the
- `=' is tested against both the full name of the terminal and
- the portion of the terminal name before the first `-'. This
- allows `sun' to match both `sun' and `sun-cmd', for instance.
-
- `application'
- The APPLICATION construct is used to include
- application-specific settings. Each program using the
- Readline library sets the APPLICATION NAME, and you can test
- for a particular value. This could be used to bind key
- sequences to functions useful for a specific program. For
- instance, the following command adds a key sequence that
- quotes the current or previous word in Bash:
- $if Bash
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- $endif
-
-`$endif'
- This command, as seen in the previous example, terminates an `$if'
- command.
-
-`$else'
- Commands in this branch of the `$if' directive are executed if the
- test fails.
-
-`$include'
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the following
- directive reads from `/etc/inputrc':
- $include /etc/inputrc
-
-
-File: rluserman.info, Node: Sample Init File, Prev: Conditional Init Constructs, Up: Readline Init File
-
-Sample Init File
-----------------
-
- Here is an example of an INPUTRC file. This illustrates key
-binding, variable assignment, and conditional syntax.
-
-
- # This file controls the behaviour of line input editing for
- # programs that use the GNU Readline library. Existing
- # programs include FTP, Bash, and GDB.
- #
- # You can re-read the inputrc file with C-x C-r.
- # Lines beginning with '#' are comments.
- #
- # First, include any systemwide bindings and variable
- # assignments from /etc/Inputrc
- $include /etc/Inputrc
-
- #
- # Set various bindings for emacs mode.
-
- set editing-mode emacs
-
- $if mode=emacs
-
- Meta-Control-h: backward-kill-word Text after the function name is ignored
-
- #
- # Arrow keys in keypad mode
- #
- #"\M-OD": backward-char
- #"\M-OC": forward-char
- #"\M-OA": previous-history
- #"\M-OB": next-history
- #
- # Arrow keys in ANSI mode
- #
- "\M-[D": backward-char
- "\M-[C": forward-char
- "\M-[A": previous-history
- "\M-[B": next-history
- #
- # Arrow keys in 8 bit keypad mode
- #
- #"\M-\C-OD": backward-char
- #"\M-\C-OC": forward-char
- #"\M-\C-OA": previous-history
- #"\M-\C-OB": next-history
- #
- # Arrow keys in 8 bit ANSI mode
- #
- #"\M-\C-[D": backward-char
- #"\M-\C-[C": forward-char
- #"\M-\C-[A": previous-history
- #"\M-\C-[B": next-history
-
- C-q: quoted-insert
-
- $endif
-
- # An old-style binding. This happens to be the default.
- TAB: complete
-
- # Macros that are convenient for shell interaction
- $if Bash
- # edit the path
- "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
- # prepare to type a quoted word --
- # insert open and close double quotes
- # and move to just after the open quote
- "\C-x\"": "\"\"\C-b"
- # insert a backslash (testing backslash escapes
- # in sequences and macros)
- "\C-x\\": "\\"
- # Quote the current or previous word
- "\C-xq": "\eb\"\ef\""
- # Add a binding to refresh the line, which is unbound
- "\C-xr": redraw-current-line
- # Edit variable on current line.
- "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
- $endif
-
- # use a visible bell if one is available
- set bell-style visible
-
- # don't strip characters to 7 bits when reading
- set input-meta on
-
- # allow iso-latin1 characters to be inserted rather
- # than converted to prefix-meta sequences
- set convert-meta off
-
- # display characters with the eighth bit set directly
- # rather than as meta-prefixed characters
- set output-meta on
-
- # if there are more than 150 possible completions for
- # a word, ask the user if he wants to see all of them
- set completion-query-items 150
-
- # For FTP
- $if Ftp
- "\C-xg": "get \M-?"
- "\C-xt": "put \M-?"
- "\M-.": yank-last-arg
- $endif
-
-
-File: rluserman.info, Node: Bindable Readline Commands, Next: Readline vi Mode, Prev: Readline Init File, Up: Command Line Editing
-
-Bindable Readline Commands
-==========================
-
-* Menu:
-
-* Commands For Moving:: Moving about the line.
-* Commands For History:: Getting at previous lines.
-* Commands For Text:: Commands for changing text.
-* Commands For Killing:: Commands for killing and yanking.
-* Numeric Arguments:: Specifying numeric arguments, repeat counts.
-* Commands For Completion:: Getting Readline to do the typing for you.
-* Keyboard Macros:: Saving and re-executing typed characters
-* Miscellaneous Commands:: Other miscellaneous commands.
-
- This section describes Readline commands that may be bound to key
-sequences. Command names without an accompanying key sequence are
-unbound by default.
-
- In the following descriptions, "point" refers to the current cursor
-position, and "mark" refers to a cursor position saved by the
-`set-mark' command. The text between the point and mark is referred to
-as the "region".
-
-
-File: rluserman.info, Node: Commands For Moving, Next: Commands For History, Up: Bindable Readline Commands
-
-Commands For Moving
--------------------
-
-`beginning-of-line (C-a)'
- Move to the start of the current line.
-
-`end-of-line (C-e)'
- Move to the end of the line.
-
-`forward-char (C-f)'
- Move forward a character.
-
-`backward-char (C-b)'
- Move back a character.
-
-`forward-word (M-f)'
- Move forward to the end of the next word. Words are composed of
- letters and digits.
-
-`backward-word (M-b)'
- Move back to the start of the current or previous word. Words are
- composed of letters and digits.
-
-`clear-screen (C-l)'
- Clear the screen and redraw the current line, leaving the current
- line at the top of the screen.
-
-`redraw-current-line ()'
- Refresh the current line. By default, this is unbound.
-
-
-File: rluserman.info, Node: Commands For History, Next: Commands For Text, Prev: Commands For Moving, Up: Bindable Readline Commands
-
-Commands For Manipulating The History
--------------------------------------
-
-`accept-line (Newline or Return)'
- Accept the line regardless of where the cursor is. If this line is
- non-empty, it may be added to the history list for future recall
- with `add_history()'. If this line is a modified history line,
- the history line is restored to its original state.
-
-`previous-history (C-p)'
- Move `back' through the history list, fetching the previous
- command.
-
-`next-history (C-n)'
- Move `forward' through the history list, fetching the next command.
-
-`beginning-of-history (M-<)'
- Move to the first line in the history.
-
-`end-of-history (M->)'
- Move to the end of the input history, i.e., the line currently
- being entered.
-
-`reverse-search-history (C-r)'
- Search backward starting at the current line and moving `up'
- through the history as necessary. This is an incremental search.
-
-`forward-search-history (C-s)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary. This is an incremental
- search.
-
-`non-incremental-reverse-search-history (M-p)'
- Search backward starting at the current line and moving `up'
- through the history as necessary using a non-incremental search
- for a string supplied by the user.
-
-`non-incremental-forward-search-history (M-n)'
- Search forward starting at the current line and moving `down'
- through the the history as necessary using a non-incremental search
- for a string supplied by the user.
-
-`history-search-forward ()'
- Search forward through the history for the string of characters
- between the start of the current line and the point. This is a
- non-incremental search. By default, this command is unbound.
-
-`history-search-backward ()'
- Search backward through the history for the string of characters
- between the start of the current line and the point. This is a
- non-incremental search. By default, this command is unbound.
-
-`yank-nth-arg (M-C-y)'
- Insert the first argument to the previous command (usually the
- second word on the previous line) at point. With an argument N,
- insert the Nth word from the previous command (the words in the
- previous command begin with word 0). A negative argument inserts
- the Nth word from the end of the previous command.
-
-`yank-last-arg (M-. or M-_)'
- Insert last argument to the previous command (the last word of the
- previous history entry). With an argument, behave exactly like
- `yank-nth-arg'. Successive calls to `yank-last-arg' move back
- through the history list, inserting the last argument of each line
- in turn.
-
-
-File: rluserman.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
-
-Commands For Changing Text
---------------------------
-
-`delete-char (C-d)'
- Delete the character at point. If point is at the beginning of
- the line, there are no characters in the line, and the last
- character typed was not bound to `delete-char', then return EOF.
-
-`backward-delete-char (Rubout)'
- Delete the character behind the cursor. A numeric argument means
- to kill the characters instead of deleting them.
-
-`forward-backward-delete-char ()'
- Delete the character under the cursor, unless the cursor is at the
- end of the line, in which case the character behind the cursor is
- deleted. By default, this is not bound to a key.
-
-`quoted-insert (C-q or C-v)'
- Add the next character typed to the line verbatim. This is how to
- insert key sequences like `C-q', for example.
-
-`tab-insert (M-<TAB>)'
- Insert a tab character.
-
-`self-insert (a, b, A, 1, !, ...)'
- Insert yourself.
-
-`transpose-chars (C-t)'
- Drag the character before the cursor forward over the character at
- the cursor, moving the cursor forward as well. If the insertion
- point is at the end of the line, then this transposes the last two
- characters of the line. Negative arguments have no effect.
-
-`transpose-words (M-t)'
- Drag the word before point past the word after point, moving point
- past that word as well. If the insertion point is at the end of
- the line, this transposes the last two words on the line.
-
-`upcase-word (M-u)'
- Uppercase the current (or following) word. With a negative
- argument, uppercase the previous word, but do not move the cursor.
-
-`downcase-word (M-l)'
- Lowercase the current (or following) word. With a negative
- argument, lowercase the previous word, but do not move the cursor.
-
-`capitalize-word (M-c)'
- Capitalize the current (or following) word. With a negative
- argument, capitalize the previous word, but do not move the cursor.
-
-`overwrite-mode ()'
- Toggle overwrite mode. With an explicit positive numeric argument,
- switches to overwrite mode. With an explicit non-positive numeric
- argument, switches to insert mode. This command affects only
- `emacs' mode; `vi' mode does overwrite differently. Each call to
- `readline()' starts in insert mode.
-
- In overwrite mode, characters bound to `self-insert' replace the
- text at point rather than pushing the text to the right.
- Characters bound to `backward-delete-char' replace the character
- before point with a space.
-
- By default, this command is unbound.
-
-
-File: rluserman.info, Node: Commands For Killing, Next: Numeric Arguments, Prev: Commands For Text, Up: Bindable Readline Commands
-
-Killing And Yanking
--------------------
-
-`kill-line (C-k)'
- Kill the text from point to the end of the line.
-
-`backward-kill-line (C-x Rubout)'
- Kill backward to the beginning of the line.
-
-`unix-line-discard (C-u)'
- Kill backward from the cursor to the beginning of the current line.
-
-`kill-whole-line ()'
- Kill all characters on the current line, no matter where point is.
- By default, this is unbound.
-
-`kill-word (M-d)'
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the same
- as `forward-word'.
-
-`backward-kill-word (M-<DEL>)'
- Kill the word behind point. Word boundaries are the same as
- `backward-word'.
-
-`unix-word-rubout (C-w)'
- Kill the word behind point, using white space as a word boundary.
- The killed text is saved on the kill-ring.
-
-`delete-horizontal-space ()'
- Delete all spaces and tabs around point. By default, this is
- unbound.
-
-`kill-region ()'
- Kill the text in the current region. By default, this command is
- unbound.
-
-`copy-region-as-kill ()'
- Copy the text in the region to the kill buffer, so it can be yanked
- right away. By default, this command is unbound.
-
-`copy-backward-word ()'
- Copy the word before point to the kill buffer. The word
- boundaries are the same as `backward-word'. By default, this
- command is unbound.
-
-`copy-forward-word ()'
- Copy the word following point to the kill buffer. The word
- boundaries are the same as `forward-word'. By default, this
- command is unbound.
-
-`yank (C-y)'
- Yank the top of the kill ring into the buffer at point.
-
-`yank-pop (M-y)'
- Rotate the kill-ring, and yank the new top. You can only do this
- if the prior command is `yank' or `yank-pop'.
-
-
-File: rluserman.info, Node: Numeric Arguments, Next: Commands For Completion, Prev: Commands For Killing, Up: Bindable Readline Commands
-
-Specifying Numeric Arguments
-----------------------------
-
-`digit-argument (M-0, M-1, ... M--)'
- Add this digit to the argument already accumulating, or start a new
- argument. `M--' starts a negative argument.
-
-`universal-argument ()'
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is
- followed by digits, executing `universal-argument' again ends the
- numeric argument, but is otherwise ignored. As a special case, if
- this command is immediately followed by a character that is
- neither a digit or minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argument
- count four, a second time makes the argument count sixteen, and so
- on. By default, this is not bound to a key.
-
-
-File: rluserman.info, Node: Commands For Completion, Next: Keyboard Macros, Prev: Numeric Arguments, Up: Bindable Readline Commands
-
-Letting Readline Type For You
------------------------------
-
-`complete (<TAB>)'
- Attempt to perform completion on the text before point. The
- actual completion performed is application-specific. The default
- is filename completion.
-
-`possible-completions (M-?)'
- List the possible completions of the text before point.
-
-`insert-completions (M-*)'
- Insert all completions of the text before point that would have
- been generated by `possible-completions'.
-
-`menu-complete ()'
- Similar to `complete', but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of `menu-complete' steps through the list of possible
- completions, inserting each match in turn. At the end of the list
- of completions, the bell is rung (subject to the setting of
- `bell-style') and the original text is restored. An argument of N
- moves N positions forward in the list of matches; a negative
- argument may be used to move backward through the list. This
- command is intended to be bound to <TAB>, but is unbound by
- default.
-
-`delete-char-or-list ()'
- Deletes the character under the cursor if not at the beginning or
- end of the line (like `delete-char'). If at the end of the line,
- behaves identically to `possible-completions'. This command is
- unbound by default.
-
-
-File: rluserman.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: Commands For Completion, Up: Bindable Readline Commands
-
-Keyboard Macros
----------------
-
-`start-kbd-macro (C-x ()'
- Begin saving the characters typed into the current keyboard macro.
-
-`end-kbd-macro (C-x ))'
- Stop saving the characters typed into the current keyboard macro
- and save the definition.
-
-`call-last-kbd-macro (C-x e)'
- Re-execute the last keyboard macro defined, by making the
- characters in the macro appear as if typed at the keyboard.
-
-
-File: rluserman.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bindable Readline Commands
-
-Some Miscellaneous Commands
----------------------------
-
-`re-read-init-file (C-x C-r)'
- Read in the contents of the INPUTRC file, and incorporate any
- bindings or variable assignments found there.
-
-`abort (C-g)'
- Abort the current editing command and ring the terminal's bell
- (subject to the setting of `bell-style').
-
-`do-uppercase-version (M-a, M-b, M-X, ...)'
- If the metafied character X is lowercase, run the command that is
- bound to the corresponding uppercase character.
-
-`prefix-meta (<ESC>)'
- Metafy the next character typed. This is for keyboards without a
- meta key. Typing `<ESC> f' is equivalent to typing `M-f'.
-
-`undo (C-_ or C-x C-u)'
- Incremental undo, separately remembered for each line.
-
-`revert-line (M-r)'
- Undo all changes made to this line. This is like executing the
- `undo' command enough times to get back to the beginning.
-
-`tilde-expand (M-~)'
- Perform tilde expansion on the current word.
-
-`set-mark (C-@)'
- Set the mark to the point. If a numeric argument is supplied, the
- mark is set to that position.
-
-`exchange-point-and-mark (C-x C-x)'
- Swap the point with the mark. The current cursor position is set
- to the saved position, and the old cursor position is saved as the
- mark.
-
-`character-search (C-])'
- A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous
- occurrences.
-
-`character-search-backward (M-C-])'
- A character is read and point is moved to the previous occurrence
- of that character. A negative count searches for subsequent
- occurrences.
-
-`insert-comment (M-#)'
- Without a numeric argument, the value of the `comment-begin'
- variable is inserted at the beginning of the current line. If a
- numeric argument is supplied, this command acts as a toggle: if
- the characters at the beginning of the line do not match the value
- of `comment-begin', the value is inserted, otherwise the
- characters in `comment-begin' are deleted from the beginning of
- the line. In either case, the line is accepted as if a newline
- had been typed.
-
-`dump-functions ()'
- Print all of the functions and their key bindings to the Readline
- output stream. If a numeric argument is supplied, the output is
- formatted in such a way that it can be made part of an INPUTRC
- file. This command is unbound by default.
-
-`dump-variables ()'
- Print all of the settable variables and their values to the
- Readline output stream. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-`dump-macros ()'
- Print all of the Readline key sequences bound to macros and the
- strings they output. If a numeric argument is supplied, the
- output is formatted in such a way that it can be made part of an
- INPUTRC file. This command is unbound by default.
-
-`emacs-editing-mode (C-e)'
- When in `vi' command mode, this causes a switch to `emacs' editing
- mode.
-
-`vi-editing-mode (M-C-j)'
- When in `emacs' editing mode, this causes a switch to `vi' editing
- mode.
-
-
-File: rluserman.info, Node: Readline vi Mode, Prev: Bindable Readline Commands, Up: Command Line Editing
-
-Readline vi Mode
-================
-
- While the Readline library does not have a full set of `vi' editing
-functions, it does contain enough to allow simple editing of the line.
-The Readline `vi' mode behaves as specified in the POSIX 1003.2
-standard.
-
- In order to switch interactively between `emacs' and `vi' editing
-modes, use the command `M-C-j' (bound to emacs-editing-mode when in
-`vi' mode and to vi-editing-mode in `emacs' mode). The Readline
-default is `emacs' mode.
-
- When you enter a line in `vi' mode, you are already placed in
-`insertion' mode, as if you had typed an `i'. Pressing <ESC> switches
-you into `command' mode, where you can edit the text of the line with
-the standard `vi' movement keys, move to previous history lines with
-`k' and subsequent lines with `j', and so forth.
-
-
-
-Tag Table:
-Node: Top1208
-Node: Command Line Editing1604
-Node: Introduction and Notation2218
-Node: Readline Interaction3837
-Node: Readline Bare Essentials5025
-Node: Readline Movement Commands6807
-Node: Readline Killing Commands7765
-Node: Readline Arguments9675
-Node: Searching10712
-Node: Readline Init File12856
-Node: Readline Init File Syntax13918
-Node: Conditional Init Constructs24802
-Node: Sample Init File27328
-Node: Bindable Readline Commands30513
-Node: Commands For Moving31564
-Node: Commands For History32414
-Node: Commands For Text35273
-Node: Commands For Killing37988
-Node: Numeric Arguments39940
-Node: Commands For Completion41069
-Node: Keyboard Macros42602
-Node: Miscellaneous Commands43162
-Node: Readline vi Mode46512
-
-End Tag Table
diff --git a/readline-doc-4.3/doc/rluserman.ps b/readline-doc-4.3/doc/rluserman.ps
deleted file mode 100644
index b46417a..0000000
--- a/readline-doc-4.3/doc/rluserman.ps
+++ /dev/null
@@ -1,2001 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: rluserman.dvi
-%%Pages: 24
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 612 792
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips -D 300 -t letter -o rluserman.ps rluserman.dvi
-%DVIPSParameters: dpi=300, compressed
-%DVIPSSource: TeX output 2002.06.27:1354
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-TeXDict begin 40258431 52099146 1000 300 300 (rluserman.dvi)
-@start
-%DVIPSBitmapFont: Fa cmbxti10 14.4 1
-/Fa 1 47 df<120E123FEA7F80A212FFA21300127E123C0909798815>46
-D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmbx12 13.14 46
-/Fb 46 122 df<123C127E12FFA4127E123C08087C8711>46 D<131C133C13FC12FFA212
-00B3AA387FFFFCA216237CA21F>49 D<48B4FC000713C0381E07F0383803F8386001FC38
-7C00FE12FE14FF147FA2127C003813FFC7FC14FEA2EB01FC14F8EB03F0EB07E01480EB0F
-00131E5B1370EBE003EA01C038038007380700061206380FFFFE5A5A4813FCB5FCA21823
-7DA21F>I<48B4FC000713E0381E03F0383801F8003C13FC387E00FEA3123EEA1C010000
-13FCA2EB03F8EB07F0EB0FC03801FF00A2380007E0EB01F014F8EB00FC14FE14FFA21210
-127C12FEA214FEA2387C01FC007013F8383E07F0380FFFC00001130018237DA21F>I<14
-381478A214F81301130313071306130C131C13381330136013E0EA01C01380EA03005A12
-0E5A12185A12705AB612C0A2390001F800A790387FFFC0A21A237EA21F>I<0018130C00
-1F137CEBFFF814F014E014C01480EBFC000018C7FCA513FF001B13E0381F03F0381C00F8
-000813FCC7127EA3147FA2127812FCA3147E5A006013FC1270383801F8381E07E03807FF
-C03801FE0018237DA21F>I<EB1FC0EB7FF03801F0383803E00C3807803E000F137EEA1F
-005AA2007E133C1400A338FE3FC0EB7FF0EB80F800FF13FCEB007C147E5A147FA4127EA4
-003E137E123F6C137C380F80F83807C1F03803FFC038007F0018237DA21F>I<1230123C
-003FB512C0A215804814005C5C38600018A200E05B485B5CC6485AA249C7FC1306130EA2
-5BA2133CA25BA213F8A41201A66C5A13601A257DA41F>I<EBFF80000313E0380F01F838
-1C007C48133C141E1278A2127C127E387F803C13E0383FF878381FFDF0EBFFC07E000313
-E014F8000F13FCEA1E1F383C07FEEA7803EB00FF48133F141F140FA3140E1278141C6C13
-38381F80F03807FFE00001130018237DA21F>I<141CA2143EA3147FA24A7EA39038019F
-C0A29038031FE0140F01077FEB0607A2010C7F1403011C7FEB1801A2496C7EA2017FB5FC
-A29039E0007F8049133FA2484880151F00038190C7120FA2486E7ED8FFF090B51280A229
-257EA42E>65 D<B612E015FC3903F0007FED3F80ED1FC0ED0FE0A216F0A21507150FA216
-E0151F16C0ED7F80913801FE0090B512F815FF9039F0003FC0ED0FE0ED07F016F8150316
-FCA616F81507ED0FF0ED1FE0ED7FC0B7120015F826257EA42C>I<9138FF8008010FEBF0
-1890393FC03C789039FE0006F8D801F81303484813014848130048481478121F48481438
-A2007F151890C8FCA2481500A97E16187F123FA26C6C1430120F6C6C14606C6C14C06C6C
-EB0180D800FEEB070090383FC01E90380FFFF8010013C025257DA42C>I<B7FCA23903F8
-007FED0F8015071503A21501A3ED00C01406A21600A2140E141EEBFFFEA2EBF81E140E14
-06A21660A291C7FC16C0A415011503A2ED0F80153FB7FCA223257EA428>69
-D<B612FEA23803F800151F8181A281A3ED01801403A292C7FCA25C5C90B5FCA2EBF80F80
-80A491C8FCAAB512F0A221257EA427>I<B500E0B512E0A23B03F80003F800AF90B6FCA2
-9038F80003B0B500E0B512E0A22B257EA430>72 D<B512E0A23803F800B3AFB512E0A213
-257EA417>I<B539E007FF80A2D803F8C7EA780016605E4B5A0307C7FC150E15185D5D5D
-EC03804AC8FC140E141F4A7E147FECDFC09038FB8FE09038FF0FF0EBFC07496C7E816E7E
-1400157F82153F6F7E6F7E8215076F7E82B539E03FFFC0A22A257EA430>75
-D<B512F0A2D803F8C7FCB3A31503A31506A3150EA2151E153E157CEC03FCB6FCA220257E
-A425>I<D8FFF8EDFFF86D5C0003EEFE00017EEC037EA36D1406A26D6C130CA26D6C1318
-A26D6C1330A36D6C1360A26D6C13C0A2903900FC0180A291387E0300A3EC3F06A2EC1F8C
-A2EC0FD8A2EC07F0A36E5AEA07803CFFFC01C01FFFF8A235257EA43A>I<D8FFF8903807
-FFE07FD803FE9038003C006D14187F6D7E6D7E806D7E6D7E13036D7E6D7E80EC7F80EC3F
-C0141FEC0FE015F0EC07F8EC03FC1401EC00FE157F1698ED3FD8ED1FF8150F15071503A2
-150115001678486C1438D8FFFC1418A22B257EA430>I<B67E15F83903F801FEEC007F6F
-7E6F7EA282A55EA24B5A4BC7FCEC01FE90B512F815C09038F803F06E7E6E7E157EA2157F
-A482A31760ED3FC017C0ED1FE1B539E00FFF80923801FE002B257EA42E>82
-D<01FF1380000713E3380F80F7381E001F48130F481307140312F81401A27E91C7FCB4FC
-EA7FE013FE383FFFE014F86C13FE00077F6C1480C67E010313C0EB003FEC0FE01407A200
-C01303A315C07E6C13076C14806CEB0F0038FFC03E38E3FFF838803FE01B257DA422>I<
-007FB612F8A2397E00FE010078EC00780070153800601518A200E0151C160C5AA4C71400
-B3A390B512FEA226247EA32B>I<B539C001FFE0A2D807F8C7EA1C006C6C141816386C6C
-14306C6C5C16E06D6C5B6D6C485A1503D91FE090C7FC90380FF006150E903807F80C6D6C
-5A15386D6C5A903800FF6015E06E5A6E5AAE90380FFFFCA22B257FA42E>89
-D<EA07FF001F13E0383E03F0383F00F880147E121EC7FCA3EB1FFE3803FE7EEA0FC0EA1F
-00123E127E5AA314BEEA7E01383F073E391FFE1FE03807F00F1B187E971E>97
-D<EAFFC0A2120FACEBC1FCEBCFFF9038FC0FC09038F007E09038C003F0A2EC01F8A215FC
-A815F8A2EC03F013E09038F007E090381C1F80390E0FFF00380C03F81E267FA522>I<EB
-7FE03803FFF83807C07C381F80FC13005A007E1378140012FEA8127E127F6C130CEA1F80
-EBC0183807E0703803FFE038007F0016187E971B>I<ECFFC0A2140FAC137F3803FFCF38
-0FE0FF381F803F383F000FA2127EA212FEA8127EA27E141F381F803F380FC0EF3903FFCF
-FC3800FE0F1E267EA522>I<137F3803FFC03807C1F0380F80F8EA1F0048137C127E147E
-12FEA2B512FEA248C7FCA3127EA214067E6C130C380F80183807E0703803FFE038007F80
-17187E971C>I<EB1FC0EB7FF0EA01F83803E1F8120713C1380FC0F01400A7B5FCA2EA0F
-C0B3A2EAFFFEA215267EA513>I<3901FF07C00007EBDFE0380F83F1EA1F01393E00F800
-007E7FA6003E5B6C485A380F83E0EBFFC0001190C7FC0030C8FCA21238123C383FFFE06C
-13FC806C7F481480383C003F48EB0FC000F81307A4007CEB0F806CEB1F00381F807E3807
-FFF8C613C01B247E971F>I<EAFFC0A2120FAC14FE9038C3FF809038CE0FC013D89038D0
-07E013E0A213C0AF39FFFC7FFEA21F267EA522>I<120FEA1F80EA3FC0A4EA1F80EA0F00
-C7FCA7EA7FC0A2120FB3A2EAFFF8A20D277EA611>I<EAFFC0A2120FACEC1FF0A2EC0780
-EC0E005C14305CEBC1C0EBC38013C713DFEBFFC0EBE7E0EBC3F0138180EB80FC147E80A2
-EC1F80EC0FC039FFF83FF8A21D267FA520>107 D<EAFFC0A2120FB3B0EAFFFCA20E267E
-A511>I<26FF80FE137F903A83FF81FFC03B0F8E0FC707E0019813CC903A9007E803F001
-A013F0A201C013E0AF3BFFFC7FFE3FFFA230187E9733>I<38FF80FE903883FF80390F8E
-0FC0139890389007E013A0A213C0AF39FFFC7FFEA21F187E9722>I<EB7F803803FFF038
-07C0F8381F807E48487EA2007EEB1F80A200FE14C0A8007E1480A26CEB3F00A2381F807E
-6C6C5A3803FFF038007F801A187E971F>I<38FFC1FCEBCFFF390FFC1FC09038F007E001
-C013F0140315F8140115FCA8EC03F8A215F0EBE0079038F00FE09038DC1F809038CFFF00
-EBC3F801C0C7FCA9EAFFFCA21E237F9722>I<38FF83E0EB8FF8380F8C7CEB90FC13B013
-A01478EBE0005BAEEAFFFEA216187F9719>114 D<3807F8C0EA1FFFEA3C07EA7001EAF0
-00A300FC1300B47EEA7FFC7F383FFF80000F13C0120338001FE01303EAC001A212E014C0
-EAF00338FC078038EFFF00EAC3FC13187E9718>I<13C0A41201A312031207120F121FB5
-12C0A2380FC000AC1460A63807E0C013E13801FF8038007E0013237FA218>I<39FFC07F
-E0A2000F1307B0140FA200071317EBE0673903FFC7FE38007F071F187E9722>I<39FFF8
-0FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00005B13FE
-EB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21D187F9720>I<39FFF83FF0A2390FC00F
-003807E00E6C6C5A6D5A6C6C5A00001360EB7EC06D5AA2131F6D7E497E80EB33F81361EB
-E0FC3801C07E3803807F3907003F8048131F39FFC07FF8A21D187F9720>120
-D<39FFF80FF8A2390FC001C015803907E00300A26D5A00031306EBF80E0001130C13FC00
-005B13FEEB7E30A26D5AA214E06D5AA26D5AA26DC7FCA21306A25B1230EA781CEAFC185B
-1370EA68E0EA7FC0001FC8FC1D237F9720>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmsl10 10.95 40
-/Fc 40 122 df<EAFFF0A20C027E8A0F>45 D<1408140C141C143CA2147C147E149EA2EB
-011EA21302801304A21308A20110138014071320A2EB7FFF90384007C0EB8003A2EA0100
-A21202EC01E01206001F130339FF801FFE1F207F9F22>65 D<0007B5FC3900F803C09038
-7801E0EC00F04913F8A515F03801E001EC03E015C0EC0F809038FFFE009038E00F803903
-C003C0EC01E015F0A21400A2485A1401A215E01403EC07C0390F000F80EC3E00B512F01D
-1F7E9E20>I<ECFE02903807018690381C004E0170133E49131E4848131C4848130C1207
-48C7FC5A121E003E1408003C1400127CA45AA4127815101520A27E1540001C14806CEB01
-006C13023803800C3800E030EB3FC01F217C9F21>I<0007B57E3900F801E09038780070
-81497F151E150E150FA348481480A6484814005DA3151E153E4848133C5DA25D4A5A4A5A
-260F000FC7FC143CB512F0211F7E9E23>I<0007B512FC3900F8007C0178131C150C5B15
-04A414043901E00800A31438EBFFF8EBE0383803C010A4EC00081510485AA21520A21560
-15C0380F00011407B612801E1F7E9E1F>I<0007B512F83900F800780178133815185B15
-08A53901E00800A314181438EBFFF83803C0301410A491C7FC485AA648C8FC7FEAFFFC1D
-1F7E9E1E>I<3A07FF83FFC03A00F8007C000178133CA2495BA648485BA490B5FCEBE000
-4848485AA64848485AA64848485A01807F39FFF07FF8221F7E9E22>72
-D<3807FF803800F8001378A25BA6485AA6485AA6485AA648C7FC7FEAFFF0111F7E9E10>
-I<3A07FF803FE03A00F8001F000178130C5D4913205D5D4AC7FC1402140848485A5C1460
-14F013E1EBE4F83803C878EBD07CEBE03CEBC03E141E141F48487E81140781140381380F
-00016D487E39FFF00FFE231F7E9E23>75 D<3807FFE0D800FCC7FC1378A25BA6485AA648
-5AA41580EC0100EA0780A25C14021406140E380F001E147CB512FC191F7E9E1C>I<D807
-F8EB7FC0D8007CEB1F00150C015E1304019E5B138FA2EB8780A2EB83C0D801035BEB01E0
-A2EB00F0A2147800025C143CA2141EA2140F485CEC07C0A21403A21401000C5C001E1300
-B47E221F7E9E22>78 D<EB01FCEB0E0790383801C090387000E0484813F048481378485A
-153C48C7FC5A001E143E123E123C127CA448147CA3157815F81278EC01F0007C14E01403
-003C14C0001CEB0780001EEB0F006C131E380780383801C0E038007F801F217C9F23>I<
-0007B5FC3900F803C090387800F015785B157CA41578484813F815F0EC01E0EC03C0EC0F
-00EBFFFCD803C0C7FCA6485AA648C8FC7FEAFFF81E1F7E9E1F>I<3807FFFE3900F80780
-90387801E0EC00F05B15F8A415F03801E00115E0EC03C0EC0780EC1E00EBFFF03803C038
-80141E140EA2140F48485AA51501D80F0013029038800F8239FFF8078CC7EA01F020207E
-9E22>82 D<EB1F82EB7066EBC01E3801800EEA030048130C00061304120EA3000F1300A2
-7FEA07F013FF6C13C06C13E038003FF0EB03F813001478143CA200401338A31430006013
-70146000F013C038E8018038C60300EA81FC17217E9F19>I<003FB512F0383C07800030
-1430126039400F0010A212C01280A3D8001E1300A65BA65BA65B7F383FFFE01C1F7A9E21
->I<39FFF00FF8391F0003E06CEB01801400001EEB0100A6481302A6485BA600705BA25C
-A200785B1238001813C06C48C7FCEA0706EA01F81D20799E22>I<3BFFF07FF81FF03B1F
-000FC007C0001E903907800380001FED01006C1502140F5EEC17C002135B142301805C00
-0713435E14C3913883E0401481D981015B13C1D803C213E193C7FC13C415F2EBC80015F4
-EA01F015F85B5D5B15605B000014402C207A9E2F>87 D<EA07F8EA0C0CEA1E061307121C
-1200A313FFEA07C7EA1E07EA3C0E127800F01310A3131EEB2E2038784F40381F87801414
-7D9317>97 D<1207123F120F7EA2120EA65A137CEA1D83381E0180001C13C0EB00E05A14
-F0A5387001E0A214C013031480EB0700EAE80EEACC38EA83E014207B9F19>I<13FEEA03
-83380E0780121C0038130090C7FC12785AA45AA37E5BEA70026C5AEA1C18EA07E011147D
-9314>I<13F8EA070EEA0E07381C038012381278127012F0B5FC00F0C7FCA25AA46C5AEA
-7002EA3004EA1C18EA07E011147D9314>101 D<EB07C0EB1C60EB30F01360EBE0E0EBC0
-001201A5485AEA3FFCEA0380A448C7FCA6120EA65A121EEAFFC014207F9F0E>I<140EEB
-3E11EBE1A33801C1C2380381E0EA07801301120FA3380703C01480EB8700EA04FC48C7FC
-A21218121CEA0FFF14C014E0381800F04813305A5AA3006013606C13C0381C0700EA07FC
-181F809417>I<EA01C0EA03E0A213C0EA0180C7FCA6EA0380121F12071203A2EA0700A6
-120EA65A121EEAFF800B1F7F9E0C>105 D<13E0120712011200A2485AA6485AEB81FCEB
-80F014C0EB81801400EA07045B13181338137C131C120E7FA2130F7F1480EA1C03381E07
-C038FF8FF016207E9F18>107 D<13E0120712011200A2EA01C0A6EA0380A6EA0700A612
-0EA65A121EEAFF800B207F9F0C>I<390387C07C391F9861863907A072073903C03403EB
-80380007EB7807EB0070A5000EEBE00EA64848485A001EEBE01E3AFFCFFCFFC022147E93
-26>I<38038F80381F90E0EA07A03803C0601380000713E01300A5380E01C0A6381C0380
-001E13C038FF8FF014147E9319>I<13FCEA0387380E0180381C00C04813E0A24813F012
-F0A438E001E0A214C0130300F0138038700700EA380E6C5AEA07E014147D9317>I<EBE3
-E03807EC383801F01C6C487E140F48487E1580A53903800F00A2140E141E141C5C380740
-70EB61C0011FC7FC90C8FCA3120EA4121EEAFFC0191D809319>I<EBFC2038038260EA07
-02381E01E0123C003813C0127812F0A438E00380A212F0A21307127038380F00EA1C37EA
-07C7EA0007A3130EA4131EEBFFC0131D7D9318>I<EA038E381FB380EA07C71203EB8300
-EA078090C7FCA5120EA65A121EEAFFC011147E9312>I<EA01F9EA0607EA080312181301
-EA3802EA3C00121F13F0EA07FCEA01FEEA001FEA40071303A212601306EAF004EAC818EA
-87E010147F9312>I<1380EA0100A35A5A5A121EEAFFF8EA0E00A45AA65A1310A41320A2
-EA1840EA0F800D1C7C9B12>I<381C0380EAFC1FEA3C07EA1C03A238380700A6EA700EA4
-131EA25BEA305E381F9F8011147B9319>I<38FF83F8381E00E0001C13C01480121E380E
-01005B13025B12075BA25BEA039013A013E05B5B120190C7FC15147C9318>I<381FF0FF
-3803C0780001137014403800E0C0EBE180EB73001376133CA2131C132E134E1387EA0107
-380203801204380C01C0383C03E038FE07FC18147F9318>120 D<390FF83F803901E00E
-00EBC00C140813E000005B143014205C13705CA20171C7FC1339133A133E133C13381318
-1310A25BA25BEA70C0EAF08000F1C8FC12E61278191D809318>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fd cmti10 10.95 8
-/Fd 8 117 df<EC3FE0ECE010903801803801031378A290380700301500A3130EA390B5
-12E0EB0E0090381C01C0A4EC03801338A3EC0700A2137801701310EC0E20A313609038E0
-0640EC038091C7FC5BA21201EA3180127948C8FC1262123C1D29829F1A>12
-D<127012F8A212F012E005057B840E>46 D<EB3C60EBE2703801C1E0EA0380EA07005A38
-0E01C0121EA3383C0380A4EB0700A2EA1C0F1317EA0C2EEA03CEEA000EA25BA21230EA78
-38485AEA60E0EA3F80141D7E9315>103 D<13C0EA01E0A213C0C7FCA7120E12131223EA
-4380EA4700A21287120EA35AA3EA38401380A21270EA31001232121C0B1F7C9E0E>105
-D<381C0F80382630C0384740601380EB0070A2008E13E0120EA3381C01C0A3EB03840038
-1388A2EB0708EB031000701330383001C016147C931A>110 D<EA1C1EEA266138278380
-EA47871307EB0300008EC7FC120EA35AA45AA45A123011147C9313>114
-D<13FCEA0302EA0601EA0C03130713061300EA0F8013F0EA07F8EA03FCEA003E130E1270
-EAF00CA2EAE008EA4010EA2060EA1F8010147D9313>I<EA018013C0EA0380A4EA0700A2
-EAFFF0EA0700120EA45AA45AA31320EA7040A21380A2EA3100121E0C1C7C9B0F>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fe cmr8 8 26
-/Fe 26 118 df<126012F0A212701210A21220A21240A2040A7D960A>39
-D<EAFF80A2090280870C>45 D<1206120E12FE120EB1EAFFE00B157D9412>49
-D<13101338A3135CA3138EA3EA0107A238020380A33807FFC0EA0401A2380800E0A20018
-13F0123838FE03FE17177F961A>65 D<EAFFFE381C0380EB00E014601470A414E0EB01C0
-381FFF8014C0381C00E0147014301438A4147014E0EB01C0B5120015177F9619>I<EBFC
-1038038330380E00B0481370481330123000701310126012E01400A51410126012700030
-132012386C13406C138038038300EA00FC14177E9619>I<B5FC381C01C0EB00E0143014
-381418141C140C140EA7140C141CA2143814301460EB01C0B5120017177F961B>I<B512
-E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C0C13041408A2130014181410A214
-3014F0B5FC15177F9618>I<B512E0EA1C00146014201410A3EB0400A3130CEA1FFCEA1C
-0C1304A390C7FCA6EAFFC014177F9617>I<EAFFC0001CC7FCAD1420A31460A2144014C0
-1303B5FC13177F9616>76 D<EAFFFE381C0380EB00C014601470A4146014C0EB0380381F
-FE00001CC7FCAAB47E14177F9618>80 D<EAFFFC381C0380EB00C014E01470A414E014C0
-EB0380381FFE00381C0780EB01C0EB00E0A514E1A2147238FF803C18177F961A>82
-D<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA001C
-130E13061280A3EAC004EAE008EAD810EA87E00F177E9614>I<387FFFF8386038180040
-1308A200801304A300001300AF3803FF8016177F9619>I<12FCA212C0B3AB12FCA20621
-7D980A>91 D<EA3FC0EA70601330EA20381200EA03F8EA1E3812301270EAE039A21379EA
-70FFEA1F1E100E7F8D12>97 D<EA07F0EA18381230EA7010EA600012E0A41260EA700812
-30EA1830EA07C00D0E7F8D10>99 D<EA0FC0EA1860EA3030EA7038EAE018EAFFF8EAE000
-A31260EA7008EA3010EA1830EA07C00D0E7F8D10>101 D<1203EA0780A2EA0300C7FCA5
-EA1F801203AF1243EAE30012E7127C091D82960B>106 D<12F81238A8133E1338133013
-4013801239EA3FC0EA39E0123813F01378133CA2EAFE7F10177F9613>I<EAF8F8EA3B1C
-EA3C0E1238AA38FE3F80110E7F8D14>110 D<EAF9F0EA3E1CEA380613077F1480A41400
-5B130EEA3E1CEA39F00038C7FCA512FE11147F8D14>112 D<EAF9E0EA3A70123CEA3820
-1300A9B4FC0C0E7F8D0E>114 D<EA1F40EA60C0EAC040A2EAE000B4FCEA7F80EA1FC0EA
-01E0EA8060A212C0EAE0C0EA9F000B0E7F8D0E>I<1208A31218A21238EAFFC0EA3800A7
-1340A4EA1C80EA0F000A147F930E>I<EAF83EEA380EAA131EEA1C2E3807CF80110E7F8D
-14>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff cmsy9 9 2
-/Ff 2 106 df<13801201EA0300A31206A25AA35AA35AA25AA35AA21260A37EA27EA37E
-A37EA27EA3EA0180120009267D9B0F>104 D<12C0A21260A37EA27EA37EA37EA27EA3EA
-0180A2EA0300A31206A25AA35AA35AA25AA35AA209267E9B0F>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fg cmsltt10 10.95 29
-/Fg 29 122 df<1206120FEA1F80120FA21203EA0700A25A120E123C127C12F01260090E
-769B18>39 D<387FFFC0B512E0A26C13C013047C8F18>45 D<133E13FF000313803807C3
-C0EA0F01000E13E0EA1C00123C003813F014705AA34813E0A4EB01C0A2130300F01380EA
-7007EB0F00EA781E6C5AEA1FF85BEA07C0141C7C9B18>48 D<13181338A2137813F81203
-120F137012041200A413E0A6EA01C0A6EA7FFE12FF127F0F1C7B9B18>I<EB3E18EBFFB8
-4813F8EA07C1EB8078EA0E00121E001C137048133014005AA35AA614C0EA7001A2130338
-380780383C0F00EA1FFE6C5AEA03F0151C7C9B18>67 D<3807FFC014E014F03801C0F814
-78143C141CEA0380141EA2140EA33807001CA4143C1438120E147014F0EB01E0EB03C013
-07387FFF8038FFFE00EA7FF8171C7F9B18>I<0007B5FC5A7E3801C007A3140638038000
-A2EB818014C0A213FF481380A21303A2140090C7FC120E140C141CA4387FFFF8B5FC7E18
-1C7F9B18>I<EB1FF8EB3FFCEB1FF8EB01C0A4EB0380A6EB0700A6130EA2124012E06C5A
-EAE03CEAFFF86C5AEA1FC0161C7C9B18>74 D<EA07FC487E6C5AEA01C0A4485AA648C7FC
-A6120E14301470A4B512E0A3141C7E9B18>76 D<3907E01F80000FEB3FC0000714803903
-B02E00146EA214CE380730DC1331149CA21333141C000E5B13371336133E133C131848C6
-5AA638FE03F800FF7F00FE5B1A1C7F9B18>I<126012F0A37E1278A3127C123CA3123E12
-1EA3121F7EA313801207A313C01203A413E01201A313F0120013600C24789F18>92
-D<387FFFC0B512E0A26C13C013047E7F18>95 D<EA03FC48B4FC4813801303380601C012
-00A2137FEA07FF121FEA3F813878038012F012E0A21307EA701F387FFFF0EA3FFBEA0FE1
-14147D9318>97 D<127EA3120EA45A137CEA1DFF001F13801383381E01C0123CEB00E012
-38A4387801C0A2EB0380A2EB0F00EA7C1FEAFFFCEAEFF8EA63E0131C7C9B18>I<EB07E0
-A31300A4EB01C0EA01F1EA07FDEA0FFFEA1E0FEA3C0738780380127012E0A4EB0700A25B
-5B6C5AEA787F383FFFC0381FEFE0380F87C0131C7C9B18>100 D<13F8EA07FE487E381F
-0780EA3C03387801C0127012E0A2B5FCA2148000E0C7FCA213033870078038780F00EA3F
-FE6C5AEA07F012147B9318>I<EB01F8EB07FC131FEB1E3CEB38181400A25B381FFFF05A
-7E38007000A25BA6485AA6EA7FFE12FF127F161C7E9B18>I<EB1E1F90387FFF8090B5FC
-3901E1E3003803C0E01380EA0700A3495AA238038780EA07FF49C7FCEA0E7890C8FCA26C
-B47E4813E0487F383C007848133812705AA2147800705B387C03E0383FFFC0000F90C7FC
-EA03FC191F809318>I<14C0EB01E013031301EB00C01400A4EBFFC0A31301A2EB0380A6
-EB0700A6130EA65BA2EA6038EAF078B45A5BEA3F8013277F9C18>106
-D<EA07E0120F12071200A4485AEBC7FEA3EBC1E0EBC3C038038780EB8F00139E13BC13FE
-13EEEA07CF1387EB0780130314C01301387FC7F838FFE7FC387FC7F8171C7F9B18>I<EA
-0FFCA3EA001CA45BA65BA65BA6B5128014C01480121C7D9B18>I<13FCEA03FF000F1380
-EA1F07383C03C0EA7801007013E0EAE000A4EB01C0A2EB0380EAF007EB0F00EA7C3EEA3F
-FC6C5AEA07E013147C9318>111 D<EBF8C0EA03FDEA0FFFEA1F0FEA3C07387803801270
-12E0A4EB0700A25BA26C5AEA787FEA3FFEEA1FEEEA078EEA000EA35BA43801FF80A3121E
-7C9318>113 D<381FE1F8EBE7FCEBEFFE3800FE1EEBFC0C3801F8005B5B5BA3485AA6EA
-FFFC7F5B17147E9318>I<EBFE603807FFE05AEA1F01121C003813C0EA3C00001F1300EA
-0FF8EA07FE3800FF801307383001C01270A238780380EA7C07B51200EAEFFEEA63F81314
-7D9318>I<387E07E0EAFE0FEA7E07EA0E00A2381C01C0A638380380A41307131F383FFF
-E06C13F03807E3E014147D9318>117 D<38FF87F8138F1387383800E0EB01C0A3148013
-E3EA39F31233EB7700A212371376EA3666136EEA3C7CA2EA383815147C9318>119
-D<381FE3FC13E713E33803C3C000011380EBE700EA00EE13FC137C1338137813FCEA01DC
-EA038E12071307120E38FF1FE0EB9FF0EB1FE016147E9318>I<380FF1FE381FF9FF380F
-F1FE3803807013C0000113E0A213C114C0A23800E380A2EBE700A213E6136E136C137C13
-78A21370A25BA2485A12F3EAF780B4C7FC5A1278181E7F9318>I
-E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh cmcsc10 10.95 12
-/Fh 12 121 df<1318A2133CA3134EA213CF1387A238010380A2000313C0EA0201A23807
-FFE0EA0400A2481370A2001813380038137838FE01FF18177F961C>97
-D<EB7E083803819838070078000C1338001C13185A00781308127000F01300A700701308
-127812386C1310120C000713603803818038007E0015177E961B>99
-D<B512C0EA1C011300144014601420A213081400A21318EA1FF8EA1C1813081410A21300
-14301420A21460EB01E0B5FC14177E9619>101 D<B512C0EA1C011300144014601420A2
-13081400A21318EA1FF8EA1C181308A390C7FCA6EAFFC013177E9618>I<EB7E08380381
-9838070078000C1338001C13185A00781308127000F01300A5EB03FEEB00381270127812
-387E120C1207380380D838007F0817177E961D>I<EAFF80EA1C00B3A3EAFF8009177E96
-0E>105 D<38FC01FC381E007014201217EA1380A2EA11C0EA10E0A213701338A2131C13
-0E1307A2EB03A0EB01E0A213001460123800FE132016177E961C>110
-D<13FE38038380380E00E0481370003C1378003813380078133C0070131C00F0131EA700
-70131C0078133C00381338003C1378001C13706C13E0380383803800FE0017177E961D>
-I<EAFFFCEA1C07EB03C0130114E0A414C01303EB0700EA1FFC001CC7FCAAB47E13177E96
-19>I<EA0FC4EA302CEA601CEA400CEAC004A3EAE0001270127FEA3FE0EA0FF8EA01FCEA
-001C130E13061280A3EAC004EAE008EAD810EA87E00F177E9615>115
-D<38FF81FC381C00701420B0000C1340120E6C138038018300EA007C16177E961C>117
-D<38FF80FE381F0070000E13606C1340EB80803803C100EA01C3EA00E213F4137813387F
-133E134E13C7EB8780380103C0EA0201380600E0000413F0000C1370003C137800FE13FF
-18177F961C>120 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fi cmbx12 17.28 18
-/Fi 18 117 df<EB01C01303130F137FEA1FFFB5FC13BFEAE03F1200B3B1007FB512F0A3
-1C2E7AAD28>49 D<913A03FF800180023FEBF00349B5EAFC0701079038003F0FD91FF8EB
-079FD93FC0EB01FFD9FF807F4848C8127F4848153F0007161F49150F485A001F1607A248
-5A1703127FA24992C7FCA212FFA9127FA27FEF0380123FA26C7E1707000F17006C7E6D15
-0E0003161E6C6C151C6C6C6C1478D93FC05CD91FF8EB03E0D907FFEB3F800101D9FFFEC7
-FCD9003F13F80203138031317CB03A>67 D<B812F0A3C6903880003FEE07F816031600A2
-1778A21738A3171C1507A31700A25D5D5D91B5FCA3EC803F818181A21707A392C7120EA4
-171EA2173CA2177C17FC16011607163FB812F8A330317EB035>69
-D<B67EA3000190C9FCB3A9EE0380A416071700A25EA35E5E5E5E4B5A150FB7FCA329317D
-B030>76 D<007FB8FCA39039C00FF801D87E00EC003F007C82007882A200708200F01780
-A3481603A5C792C7FCB3AA017FB6FCA331307DAF38>84 D<EBFFF0000313FF390F803F80
-9038C00FE0486C6C7EA26E7ED80FC07FEA0780C7FCA414FF131FEBFFE33803FC03EA0FF0
-EA1FC0123FEA7F80A2EAFF00A31407A2387F800D393FC01DFE3A1FE078FFF03907FFE07F
-C6EB803F24207E9F27>97 D<EA01F812FFA3120F1207ADEC3FE0ECFFFC9038FBE07F9039
-FF001F8049EB0FC04914E049EB07F016F8A2ED03FCA316FEA816FCA3ED07F8A216F06DEB
-0FE06D14C001E7EB3F809039C3C0FE00903880FFF89038003FC027327EB12D>I<ED0FC0
-EC07FFA3EC007F153FADEB07F8EB3FFF9038FE07BF3903F801FF3907E0007F120F484813
-3F123FA2485AA312FFA8127FA36C7EA2121F6C6C137F000714FF2603F00313E03A01FC0F
-3FFE38007FFEEB0FF027327DB12D>100 D<EB0FFC90387FFF803901FC0FC03903F003E0
-3907E001F0000F14F8391FC000FC003F14FEA24848137E157FA212FFA290B6FCA20180C7
-FCA4127FA36C6C1307121F150E6C7E6C6C131C6C6C13783900FE03E090383FFFC0903807
-FE0020207E9F25>I<EB01FE90380FFF8090381FC3C090387F07E09038FE0FF0120113FC
-1203EC07E0EC018091C7FCA8B512FCA3D803FCC7FCB3A8387FFFF0A31C327EB119>I<90
-391FF007C09039FFFE3FE03A01F83F79F03907E00FC3000F14E19039C007E0E0001FECF0
-00A2003F80A5001F5CA2000F5CEBE00F00075C2603F83FC7FC3806FFFE380E1FF090C9FC
-121EA2121F7F90B57E6C14F015FC6C806C801680000F15C0003FC7127F007EEC1FE0007C
-140F00FC1407A4007EEC0FC0003E1580003F141FD80FC0EB7E003907F803FC0001B512F0
-D8001F90C7FC242F7E9F28>I<EA03C0487E487E487EA46C5A6C5A6C5AC8FCA9EA01F812
-7FA31207B3A7B51280A311337DB217>105 D<EA01F812FFA3120F1207B3B3A6B512C0A3
-12327DB117>108 D<2703F007F8EB1FE000FFD93FFEEBFFF8913A783F01E0FC02C09038
-8300FE280FF1801FC6137F2607F30013CC01F602F8148001FC5CA3495CB3B500C3B5380F
-FFFCA33E207D9F43>I<3903F007F800FFEB3FFEEC783F02C013803A0FF1801FC03807F3
-0001F614E013FCA35BB3B500C3B5FCA328207D9F2D>I<EB07FC90387FFFC03901FC07F0
-3903F001F848486C7E4848137E001F147F003F158049133F007F15C0A300FF15E0A8007F
-15C0A36C6CEB7F80A2001F15006C6C13FE00075C3903F803F83901FE0FF039007FFFC0D9
-07FCC7FC23207E9F28>I<3801FF86000713FEEA1F00003C133E48131E140E12F8A36C90
-C7FCB47E13FC387FFFC06C13F0806C7F00077F00017FEA003F01001380143F0060131F00
-E0130FA27E15007E6C131E6C131C38FF807838F3FFF038C07F8019207D9F20>115
-D<131CA5133CA3137CA213FC120112031207381FFFFEB5FCA2D803FCC7FCB0EC0380A712
-01EC0700EA00FEEB7F0EEB3FFCEB07F0192E7FAD1F>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fj cmsy10 10.95 1
-/Fj 1 14 df<14FE903807FFC090381F01F0903878003C01E0130ED80180130348C7EA01
-800006EC00C0481560A2481530481518A248150CA4481506A90060150CA46C1518A26C15
-306C1560A26C15C06CEC01806C6CEB0300D800E0130E0178133C90381F01F0903807FFC0
-D900FEC7FC272B7DA02E>13 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fk cmbx12 14.4 39
-/Fk 39 122 df<123C127FEAFF80A213C0A3127F123E1200A2EA0180A3EA0300A2120612
-0E5A5A12100A157B8813>44 D<121C127FA2EAFF80A3EA7F00A2121C09097B8813>46
-D<130E131E137EEA07FE12FFA212F81200B3ABB512FEA317277BA622>49
-D<EBFF80000713F04813FC381E03FE393800FF80007C133F00FE14C06C131F15E0140FA2
-127E003C131FC7FC15C0A2EC3F801500147E5C5C495A495AEB078049C7FC131E4913E013
-705B3901C001C0EA0380EA0600000FB5FC5A5A5AB61280A31B277DA622>I<EB7F803803
-FFF04813FC380F81FE381F007FEA3F80EC3F80A3121F1300C7EA7F00A2147E5C495AEB07
-F0EBFFC0A2EB01F8EB007E801580EC1FC0A215E0A2123C127EB4FCA215C0143F48148000
-7CEB7F00383F01FE6CB45A000713F0C613801B277DA622>I<140FA25C5C5C5C5BA2EB03
-BFEB073F130E131C133C1338137013E0EA01C0EA038012071300120E5A5A5A12F0B612F8
-A3C7EA7F00A890381FFFF8A31D277EA622>I<00181303381F801FEBFFFE5C5C5C14C091
-C7FC001CC8FCA7EB7FC0381DFFF8381F80FC381E003F1208C7EA1F8015C0A215E0A21218
-127C12FEA315C05A0078EB3F80A26CEB7F00381F01FE6CB45A000313F0C613801B277DA6
-22>I<B612F815FF16C03A03F8001FE0ED0FF0ED07F8150316FCA21501A3150316F8A2ED
-07F0150FED1FC0EDFF8090B5EAFE00EDFFC09039F8000FF0ED03F8ED01FC16FE1500A216
-FFA616FE1501ED03FC1507ED1FF8B712E016C0EDFE0028297DA830>66
-D<91387FE003903907FFFC07011FEBFF0F90397FF00F9F9039FF0001FFD801FC7F484814
-7F4848143F4848141F485A160F485A1607127FA290C9FC5AA97E7F1607123FA26C7E160E
-6C7E6C6C141C6C6C143C6C6C14786CB4EB01F090397FF007C0011FB512800107EBFE0090
-38007FF028297CA831>I<B712E0A33903FC001FED07F01501A215001670A3913801C078
-1638A302031300A2140F90B5FCA3EBFC0F1403A20201130EA3161C91C7FCA3163C163816
-7816F815011503151FB712F0A327297EA82C>69 D<B712C0A33903FC003FED0FE0150315
-01A21500A316F0913801C070A316001403A2140F90B5FCA3EBFC0F1403A21401A491C8FC
-A9B512FCA324297EA82A>I<B512F0A33803FC00B3B1B512F0A314297EA819>73
-D<B512FCA3D803FCC8FCB3A3ED01C0A415031680A21507A2150FA2151F157F913801FF00
-B7FCA322297EA828>76 D<D8FFFE92383FFF80A26D5D0003EFE000A2D9BF8014EFA2D99F
-C0EB01CFA2D98FE0EB038FA3D987F0EB070FA2D983F8130EA2D981FC131CA3D980FE1338
-A2027F1370A291383F80E0A391381FC1C0A291380FE380A2913807F700A3EC03FEA26E5A
-A26E5AD8FFFE0203B51280A2157039297DA840>I<B612E015FE6F7E3A03FC003FE0ED0F
-F06F7E6F7E150182A65E4B5A1507ED0FE0ED3FC090B500FEC7FCA29039FC00FF80ED3FC0
-6F7E6F7E6F7EA9170EA21503923801FC1CB538F000FEEE7FF8EE0FE02F297EA832>82
-D<9038FF80600003EBF0E0000F13F8381F80FD383F001F003E1307481303A200FC1301A2
-14007EA26C140013C0EA7FFCEBFFE06C13F86C13FE80000714806C14C0C6FC010F13E0EB
-007FEC1FF0140F140700E01303A46C14E0A26C13076C14C0B4EB0F80EBE03F39E3FFFE00
-00E15B38C01FF01C297CA825>I<B500F0EBFFFEA3D803FCC7EA0380B3AA0001ED07007F
-0000150E137F6D143CD91FC05B90390FF003F06DB55A01001480DA1FFCC7FC2F297EA834
->85 D<B53CE07FFFE01FFFC0A32803FC0003FCC7EA7000A26D6D7E000160A26D6E13016C
-604B138002801503017F5F4B13C0D93FC0013F49C7FCA2913AE00E1FE00F011F160E17F0
-9126F01C0F131E010F161C033C13F8902707F838075BA2037813FC902703FC70035BA291
-3AFEE001FEF001015E02FF14FF4B7E6D5EA26E486D5AA36EC76CC8FCA2023E80021E141E
-A242297FA845>87 D<3803FF80000F13F0381F01FC383F80FE147F801580EA1F00C7FCA4
-EB3FFF3801FC3FEA0FE0EA1F80EA3F00127E5AA4145F007E13DF393F839FFC381FFE0F38
-03FC031E1B7E9A21>97 D<EAFFE0A3120FACEBE1FE9038EFFF809038FE07E09038F803F0
-9038F001F89038E000FCA2157EA2157FA8157EA315FCA29038F001F89038F803F090389C
-0FE090380FFF80390E01FC00202A7EA925>I<EB3FF03801FFFC3803F03E380FC07FEA1F
-80EA3F00A248133E007E90C7FCA212FEA7127EA2127F6CEB03801380001FEB0700380FE0
-0E3803F83C3801FFF838003FC0191B7E9A1E>I<EC7FF0A31407ACEB3F873801FFF73807
-F03F380FC00F381F8007EA3F00A2127EA312FEA8127EA27EA2381F800F380FC01F3907E0
-7FFF3801FFE738007F87202A7EA925>I<EB3FC03801FFF03803E07C380F803E001F7F13
-0048EB0F80127E15C0A200FE1307A2B6FCA248C8FCA3127EA2127F6CEB01C07E390F8003
-803907C007003803F01E3800FFFCEB3FE01A1B7E9A1F>I<EB07F8EB3FFCEB7E3E3801FC
-7FEA03F813F01207143E1400A7B512C0A33807F000B3A3387FFF80A3182A7EA915>I<90
-38FF80F00003EBE3F8390FC1FE1C391F007C7C48137E003EEB3E10007EEB3F00A6003E13
-3E003F137E6C137C380FC1F8380BFFE00018138090C8FC1238A2123C383FFFF814FF6C14
-C06C14E06C14F0121F383C0007007CEB01F8481300A4007CEB01F0A2003FEB07E0390FC0
-1F806CB5120038007FF01E287E9A22>I<EAFFE0A3120FAC147E9038E1FF809038E30FC0
-01E413E0EBE80701F813F013F0A213E0B039FFFE3FFFA3202A7DA925>I<1207EA0F80EA
-1FC0EA3FE0A3EA1FC0EA0F80EA0700C7FCA7EAFFE0A3120FB3A3EAFFFEA30F2B7EAA12>
-I<EAFFE0A3120FB3B2EAFFFEA30F2A7EA912>108 D<26FFC07FEB1FC0903AC1FFC07FF0
-903AC307E0C1F8D80FC49038F101FC9039C803F20001D801FE7F01D05BA201E05BB03CFF
-FE3FFF8FFFE0A3331B7D9A38>I<38FFC07E9038C1FF809038C30FC0D80FC413E0EBC807
-01D813F013D0A213E0B039FFFE3FFFA3201B7D9A25>I<EB3FE03801FFFC3803F07E390F
-C01F80391F800FC0393F0007E0A2007EEB03F0A300FE14F8A8007E14F0A26CEB07E0A239
-1F800FC0390FC01F803907F07F003801FFFC38003FE01D1B7E9A22>I<38FFC1F0EBC7FC
-EBC63E380FCC7F13D813D0A2EBF03EEBE000B0B5FCA3181B7F9A1B>114
-D<3803FE30380FFFF0EA3E03EA7800127000F01370A27E00FE1300EAFFE06CB4FC14C06C
-13E06C13F0000713F8C6FCEB07FC130000E0137C143C7E14387E6C137038FF01E038E7FF
-C000C11300161B7E9A1B>I<13E0A41201A31203A21207120F381FFFE0B5FCA2380FE000
-AD1470A73807F0E0000313C03801FF8038007F0014267FA51A>I<39FFE07FF0A3000F13
-07B2140FA2000713173903F067FF3801FFC738007F87201B7D9A25>I<39FFFC03FFA339
-0FF000F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA214
-9EEB3F9C14FC6D5AA26D5AA36D5AA26D5AA2201B7F9A23>I<3BFFFC7FFC1FFCA33B0FE0
-0FE001C02607F007EB0380A201F8EBF00700031600EC0FF801FC5C0001150EEC1FFC2600
-FE1C5B15FE9039FF387E3C017F1438EC787F6D486C5A16F0ECE01F011F5CA26D486C5AA2
-EC800701075CA22E1B7F9A31>I<39FFFC1FFEA33907F003803803F8079038FC0F003801
-FE1E00005BEB7F3814F86D5A6D5A130F806D7E130F497EEB3CFEEB38FFEB787F9038F03F
-803901E01FC0D803C013E0EB800F39FFF03FFFA3201B7F9A23>I<39FFFC03FFA3390FF0
-00F0000714E07F0003EB01C0A2EBFC0300011480EBFE070000140013FFEB7F0EA2149EEB
-3F9C14FC6D5AA26D5AA36D5AA26D5AA25CA21307003890C7FCEA7C0FEAFE0E131E131C5B
-EA74F0EA3FE0EA0F8020277F9A23>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl cmtt10 10.95 77
-/Fl 77 127 df<127012F8B012701200A5127012F8A31270051C779B18>33
-D<EA4010EAE038EAF078EAE038AAEA60300D0E7B9C18>I<EA0306EA078FA6387FFFC0B5
-12E0A26C13C0380F1E00A6387FFFC0B512E0A26C13C0381E3C00A6EA0C18131C7E9B18>
-I<13C01201A3EA03F0EA0FFCEA3FFEEA7DCFEA71C738E1C38013C7A338F1C0001279123F
-6C7EEA0FF8EA01FC13DE13CF13C73861C38012F1A212E1EBC7001271EA79DEEA3FFEEA1F
-F8EA07E0EA01C0A3120011247D9F18>I<1238127CA2127E123E120EA3121CA2123812F8
-12F012C0070E789B18>39 D<137013F0EA01E0EA03C0EA0780EA0F00121E121C5AA25AA4
-5AA81270A47EA27E121E7EEA0780EA03C0EA01F0120013700C24799F18>I<126012F012
-787E7E7EEA07801203EA01C0A2EA00E0A41370A813E0A4EA01C0A2EA03801207EA0F0012
-1E5A5A5A12600C247C9F18>I<EA01C0A4EA41C138F1C780EAFDDF387FFF00EA1FFCEA07
-F0A2EA1FFCEA7FFF38FDDF80EAF1C73841C100EA01C0A411147D9718>I<121C123E127E
-127F123F121F1207120E121E127C12F81260080C788518>44 D<387FFFC0B512E0A26C13
-C013047E8F18>I<1230127812FCA2127812300606778518>I<1303EB0780A2130F14005B
-131EA2133E133C137C1378A213F85B12015B12035BA212075B120F90C7FCA25A121E123E
-123CA2127C127812F85AA2126011247D9F18>I<EA01F0EA07FC487EEA1F1FEA1C073838
-0380007813C0EA7001A238E000E0A9EAF001007013C0A2EA780300381380381C0700EA1F
-1FEA0FFE6C5AEA01F0131C7E9B18>I<EA01801203A21207120F123F12FF12FB12431203
-B0EA7FFCEAFFFEEA7FFC0F1C7B9B18>I<383FFF80A30038C7FCA8EA3BF8EA3FFE7F383C
-0780383003C0EA0001EB00E0A2126012F0A238E001C0EA7003387C0F80383FFF00EA1FFC
-EA03F0131C7E9B18>53 D<12E0B512E0A214C038E00380EB0700C65A131E131C5BA25B13
-F05BA2485AA3485AA448C7FCA7131D7E9C18>55 D<EA03F8EA0FFE487E383E0F80EA3803
-387001C0A438380380EA3C07381FFF00EA07FC487EEA1F1F383C0780387001C000F013E0
-EAE000A4387001C0EA7803383E0F80381FFF006C5AEA03F8131C7E9B18>I<1230127812
-FCA2127812301200A81230127812FCA2127812300614779318>58
-D<14C0EB03E01307EB1FC0EB3F80EBFE00485AEA07F0485AEA3F8048C7FC12FCA2127F6C
-7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E01303EB00C013187E9918>60
-D<387FFFC0B512E0A26C13C0C8FCA4387FFFC0B512E0A26C13C0130C7E9318>I<126012
-F87E127F6C7EEA0FE06C7EEA01FC6C7EEB3F80EB1FC0EB07E0A2EB1FC0EB3F80EBFE0048
-5AEA07F0485AEA3F8048C7FC12FC5A126013187E9918>I<EA0FF0EA3FFC48B4FCEA700F
-38F00380A2EA600738000F00133E5BEA01F05B485AA55BC8FCA5EA0380487EA36C5A111C
-7D9B18>I<137CEA01FEEA07FF380F8780381E03C0EA3C1DEA387F3870FFE0EA71E313C1
-12E1EAE380A638E1C1C0127113E33870FF8038387F00EA3C1C381E00E0EA0F833807FFC0
-0001138038007E00131C7E9B18>I<137013F8A213D8A2EA01DCA3138CEA038EA4EA0707
-A5380FFF80A3EA0E03381C01C0A3387F07F000FF13F8007F13F0151C7F9B18>I<EA7FFC
-B5FC6C1380381C03C01301EB00E0A4130114C01307381FFF80140014C0EA1C03EB00E014
-F01470A414F014E01303387FFFC0B51280387FFE00141C7F9B18>I<EBF8E0EA03FEEA07
-FFEA0F07EA1E03EA3C01EA38005AA214005AA8127014E0A27E123C381E01C0EA0F073807
-FF803803FE00EA00F8131C7E9B18>I<EA7FF8EAFFFE6C7E381C0F80EB03C0A2EB01E013
-00A214F01470A814F014E0A2130114C01303EB0F80387FFF00485AEA7FF8141C7F9B18>
-I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA21438A5B512F8A315
-1C7F9B18>I<B512F0A3381C0070A41400A2130EA3EA1FFEA3EA1C0EA390C7FCA7EAFFC0
-A3141C7E9B18>I<3801F1C0EA03FDEA0FFFEA1F0FEA1C03123813011270A290C7FC5AA5
-EB0FF0131F130F387001C0A213031238A2EA1C07EA1F0FEA0FFFEA03FDEA01F1141C7E9B
-18>I<387F07F038FF8FF8387F07F0381C01C0A9EA1FFFA3EA1C01AA387F07F038FF8FF8
-387F07F0151C7F9B18>I<EA7FFFB512806C1300EA01C0B3A4EA7FFFB512806C1300111C
-7D9B18>I<387F07F038FF87F8387F07F0381C03C0EB07801400130E131E5B13385B13F0
-121DA2EA1FB8A2131C121EEA1C0EA27FA2EB0380A2EB01C0387F03F038FF87F8387F03F0
-151C7F9B18>75 D<EAFFC0A3001CC7FCB114E0A5B5FCA3131C7E9B18>I<38FC01F8EAFE
-03A2383B06E0A4138EA2EA398CA213DCA3EA38D8A213F81370A21300A638FE03F8A3151C
-7F9B18>I<387E07F038FF0FF8387F07F0381D81C0A313C1121CA213E1A313611371A213
-311339A31319A2131D130DA3EA7F07EAFF87EA7F03151C7F9B18>I<EA0FFE383FFF8048
-13C0EA7803EA700100F013E0EAE000B0EAF001007013C0EA7C07EA7FFF6C1380380FFE00
-131C7E9B18>I<EAFFFEEBFF8014C0EA1C03EB01E013001470A514E01301EB03C0EA1FFF
-1480EBFE00001CC7FCA8B47EA3141C7F9B18>I<EA0FFE383FFF804813C0EA7803EA7001
-00F013E0EAE000AE1370A2EAF079387039C0EA783FEA7FFF6C1380380FFE00EA000FEB07
-80A2EB03C01301A213227E9B18>I<EA7FF8EAFFFE6C7E381C0F80130314C01301A31303
-1480130F381FFF005BA2EA1C0F7FEB0380A5149CA3387F01F8EAFF81387F00F0161C7F9B
-18>I<3803F1C0EA1FFF5AEA7C0FEA7003EAE001A390C7FC12701278123FEA1FF0EA07FE
-C67EEB0F80EB03C01301EB00E0A2126012E0130100F013C038F80780B5FCEBFE00EAE7F8
-131C7E9B18>I<387FFFF8B5FCA238E07038A400001300B2EA07FFA3151C7F9B18>I<38FF
-83FEA3381C0070B36C13E0EA0F01380783C03803FF806C1300EA007C171C809B18>I<38
-FE03F8EAFF07EAFE03381C01C0EA1E03000E1380EA0F0700071300A2EA038EA2EA01DCA3
-EA00F8A21370A9EA01FC487E6C5A151C7F9B18>89 D<EAFFF8A3EAE000B3ACEAFFF8A30D
-24779F18>91 D<126012F0A27E1278127C123CA2123E121E121F7EA27F12077F1203A27F
-12017F12007F1378A2137C133C133E131EA2131F7F14801307A2EB030011247D9F18>I<
-EAFFF8A3EA0038B3ACEAFFF8A30D247F9F18>I<387FFFC0B512E0A26C13C013047E7F18>
-95 D<EA0FF0EA1FFC487EEA3C0FEA180738000380A213FF1207121FEA7F03127812E0A3
-EAF007EA780F383FFFF8EA1FFDEA07F015147E9318>97 D<127E12FE127E120EA5133EEB
-FF80000F13C0EBC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380
-38063E00151C809B18>I<EA01FEEA07FF001F1380EA3E073838030048C7FCA25AA61270
-EB01C01238EA3E03381FFF8000071300EA01FC12147D9318>I<EB1F80133F131F1303A5
-EA03E3EA0FFBEA1FFFEA3C1FEA380FEA7007130312E0A6EA7007A2EA380FEA3C1F381FFF
-F0380FFBF83803E3F0151C7E9B18>I<EA01F0EA07FCEA1FFEEA3E0F38380780EA7003A2
-38E001C0A2B5FCA300E0C7FC1270EB01C01238EA3E07381FFF8000071300EA01F812147D
-9318>I<EB1F80EB7FC0EBFFE013E13801C0C01400A3387FFFC0B5FCA23801C000AEEA7F
-FFA3131C7F9B18>I<3801E1F03807FFF85A381E1E30381C0E00487EA5EA1C0EEA1E1EEA
-1FFC5BEA39E00038C7FC7EEA1FFEEBFFC04813E0387801F038700070481338A4007813F0
-EA7E03381FFFC06C13803801FC00151F7F9318>I<127E12FE127E120EA5133EEBFF8000
-0F13C013C1EB80E01300120EAB387FC7FC38FFE7FE387FC7FC171C809B18>I<EA0380EA
-07C0A3EA0380C7FCA4EA7FC012FF127F1201AEB5FCA3101D7C9C18>I<1338137CA31338
-1300A4EA0FFCA3EA001CB3A4EA6038EAF078EAFFF0EA7FE0EA3F800E277E9C18>I<127E
-12FE127E120EA5EB3FF0A3EB0780EB0F00131E5B5B5BEA0FF87F139C130EEA0E0F7FEB03
-8014C0387FC7F812FF127F151C7F9B18>I<EAFFC0A31201B3A4B51280A3111C7D9B18>I<
-38F9C1C038FFF7F013FF383E3E38EA3C3CA2EA3838AB38FE3E3EEB7E7EEB3E3E17148093
-18>I<EA7E3E38FEFF80007F13C0EA0FC1EB80E01300120EAB387FC7FC38FFE7FE387FC7
-FC1714809318>I<EA01F0EA0FFE487E383E0F80EA3803387001C0A238E000E0A5EAF001
-007013C0EA7803383C0780EA3E0F381FFF006C5AEA01F013147E9318>I<EA7E3E38FEFF
-80007F13C0380FC1E01380EB0070120E1438A6000F1370A2EB80E013C1EBFFC0000E1380
-EB3E0090C7FCA7EA7FC0487E6C5A151E809318>I<3801F380EA07FBEA1FFFEA3E1FEA38
-0FEA7007A2EAE003A6EA7007A2EA380FEA3C1FEA1FFFEA0FFBEA03E3EA0003A7EB1FF0EB
-3FF8EB1FF0151E7E9318>I<38FF0FC0EB3FE0EB7FF0EA07F0EBE060EBC0005BA290C7FC
-A9EAFFFC7F5B14147E9318>I<EA07F7EA3FFF5AEA780FEAE007A3007CC7FCEA7FE0EA1F
-FCEA03FEEA001F38600780EAE003A212F038F80F00B5FC13FCEAE7F011147D9318>I<48
-7E1203A4387FFFC0B5FCA238038000A9144014E0A33801C1C013FF6C1380EB3E0013197F
-9818>I<387E07E0EAFE0FEA7E07EA0E00AC1301EA0F033807FFFC6C13FE3801FCFC1714
-809318>I<387F8FF000FF13F8007F13F0381C01C0380E0380A338070700A3138FEA038E
-A3EA01DCA3EA00F8A2137015147F9318>I<38FF07F8138F1307383800E0A4381C01C013
-7113F9A213D9EA1DDD000D1380A3138DEA0F8FA23807070015147F9318>I<387F8FF013
-9F138F380F0700EA078EEA039EEA01DC13F81200137013F07FEA01DCEA039E138EEA0707
-000E1380387F8FF000FF13F8007F13F015147F9318>I<387F8FF000FF13F8007F13F038
-0E01C0EB0380A21207EB0700A2EA0387A2138EEA01CEA213CC120013DC1378A31370A313
-F05B1279EA7BC0EA7F806CC7FC121E151E7F9318>I<383FFFF05AA2387001E0EB03C0EB
-078038000F00131E5B13F8485AEA03C0485A380F0070121E5A5AB512F0A314147F9318>
-I<EB07E0131F137FEB780013E0AB1201EA7FC0485AA26C7EEA01E01200AB1378EB7FE013
-1F130713247E9F18>I<127CB4FC13C01203C67EAB7FEB7FC0EB3FE0A2EB7FC0EBF0005B
-ABEA03C012FF90C7FC127C13247E9F18>125 D<EA060CEA1F1EEA3FBEEAFBF8EAF1F0EA
-60C00F067C9B18>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fm cmr10 10.95 71
-/Fm 71 123 df<90381F83E09038F06E303901C07878380380F8903800F03048EB7000A7
-B612803907007000B2383FE3FF1D20809F1B>11 D<133FEBE0C0EA01C0380381E0EA0701
-A290C7FCA6B512E0EA0700B2383FC3FC1620809F19>I<127012F812FCA212741204A312
-08A21210A212201240060E7C9F0D>39 D<13401380EA01005A12061204120C5AA2123812
-30A212701260A412E0AC1260A412701230A212381218A27E120412067E7EEA008013400A
-2E7BA112>I<7E12407E12307E1208120C7EA212077EA213801201A413C0AC1380A41203
-1300A25A1206A25A120812185A12205A5A0A2E7EA112>I<127012F012F8A212781208A3
-1210A31220A21240050E7C840D>44 D<EAFFF0A20C02808A0F>I<127012F8A312700505
-7C840D>I<EA03F0EA0E1C487EEA1806EA380738700380A400F013C0AD00701380A3EA78
-0700381300EA1806EA1C0E6C5AEA03F0121F7E9D17>48 D<13801203120F12F31203B3A6
-EA07C0EA7FFE0F1E7C9D17>I<EA03F0EA0C1CEA100E487E00401380128000F013C0EAF8
-03A3EA200712001480A2EB0F00130E5B5B5B13605B485A48C7FC000613405A5A00101380
-EA3FFF5AB5FC121E7E9D17>I<EA03F0EA0C1CEA100EEA200F007813801307A2EA380F12
-001400A2131E131C1370EA07F0EA003C130E130FEB0780A214C0122012F8A300F0138012
-40EB0F00EA200EEA183CEA07F0121F7E9D17>I<1306A2130EA2131E132EA2134E138EA2
-EA010E1202A212041208A212101220A2124012C0B512F038000E00A7EBFFE0141E7F9D17
->I<EA1803EA1FFE5B5B13E00010C7FCA6EA11F0EA161CEA180EEA10071480EA0003A214
-C0A3127012F0A200E013801240EB0700EA20066C5AEA0838EA07E0121F7E9D17>I<137C
-EA0182EA0701380E0380EA0C0712183838030090C7FC12781270A2EAF1F0EAF21CEAF406
-EAF807EB0380A200F013C0A51270A214801238EB07001218EA0C0E6C5AEA01F0121F7E9D
-17>I<1240387FFFE014C0A23840008038800100A21302485AA25B5BA25BA21360A213E0
-5B1201A41203A76C5A131F7E9D17>I<EA03F0EA0C0CEA1006EA3003382001801260A312
-7038780300123EEA3F06EA1FC8EA0FF0EA03F8487EEA0C7EEA103F38300F80EA6007EB01
-C012C01300A31480EA600100201300EA1002EA0C0CEA03F0121F7E9D17>I<EA03F0EA0E
-18487E487E13071270EB038012F0A214C0A5EA7007A21238EA180BEA0E13EA03E3380003
-80A3EB07001230EA7806130EEA700CEA2018EA1070EA0FC0121F7E9D17>I<127012F8A3
-12701200AA127012F8A3127005147C930D>I<127012F8A312701200AA127012F012F8A2
-12781208A31210A31220A21240051D7C930D>I<5B497EA3497EA3EB09E0A3EB10F0A3EB
-2078A3497EA2EBC03EEB801EA248B5FCEB000FA20002EB0780A348EB03C0A2120C001E14
-E039FF801FFE1F207F9F22>65 D<B512E0380F0078141EA2801580A515005C141E147CEB
-FFF0EB007C141FEC0F80EC07C0140315E0A515C014071580EC0F00143EB512F01B1F7E9E
-20>I<90380FE0109038381C309038E002703803C00139078000F048C71270121E15305A
-1510127C127800F81400A91278007C1410123CA26C1420A27E6C6C13406C6C13803900E0
-0300EB380CEB0FF01C217E9F21>I<B512F83807801EEC0780EC03C0EC01E0EC00F01570
-1578A2153CA3153EA8153CA2157C1578A215F0EC01E0EC03C0EC0780EC1E00B512F81F1F
-7F9E23>I<B61280380F000F14031401140015C01540A314401500A214C0130113FF1301
-13001440A3EC0020A31540A315C01401EC0380140FB6FC1B1F7E9E1F>I<B61280380780
-071401A2140015C01540A4EC2000A3146014E013FF138014601420A391C7FCA87FEAFFFE
-1A1F7F9E1E>I<90380FE02090387818609038E004E03803800238070001481300001E14
-60A25A1520127C127800F81400A7EC7FFCEC03E000781301127C123CA27EA27E7E380380
-023900E00460903878182090380FE0001E217D9F24>I<39FFF07FF8390F000780AD90B5
-FCEB0007AF39FFF07FF81D1F7E9E22>I<EAFFF0EA0F00B3ABEAFFF00C1F7E9E10>I<39FF
-F007FC390F0003E0EC0180150014025C5C5C5C5C5C49C7FC5B497E130FEB13C0EB21E013
-41EB80F0EB0078A28080A280EC0780A2EC03C015E015F039FFF01FFE1F1F7E9E23>75
-D<EAFFF8EA0F8090C7FCB21402A414061404A2140C141C147CB512FC171F7E9E1C>I<B4
-6CEB07FE000715C0A2D805C0130BA2D804E01313A301701323A26D1343A36D1383A29038
-0E0103A3EB0702A3EB0384A2EB01C8A3EB00F0A21460121FD8FFE0EB7FFE271F7F9E2A>
-I<B4EB0FF8390F8003E0EC0080EA0BC0EA09E0A2EA08F01378A27F7FA27FEB0780A2EB03
-C0EB01E0A2EB00F01478A2143C141EA2140F1407A214031401123E38FF80001D1F7E9E22
->I<EB1FE0EB70383801C00E48487E39070003804814C0001EEB01E048EB00F0A2007C14
-F8A20078147800F8147CA900781478007C14F8A2003C14F0003E1301001E14E06CEB03C0
-6C148039038007003801E01E38007038EB1FE01E217E9F23>I<B512E0380F007C141E80
-EC0780A215C0A41580A2EC0F00141E147CEBFFE090C8FCAEEAFFF01A1F7E9E1F>I<B512
-E0380F80780007131E80EC0780A215C0A41580A2EC0F00141E1478EBFFE0EB8060143814
-3C141C141EA3141FA315011581140F390FC0078239FFFC03C4C812F820207F9E22>82
-D<3803F040380C0CC0EA1803EA3001EA6000A212E01440A36C13007E127CEA7F80EA3FF8
-6CB4FC00071380C613C0EB1FE013031301EB00F014707EA46C136014E06C13C038F80180
-38C60300EA81FC14217E9F19>I<007FB512E038780F010060EB006000401420A200C014
-3000801410A400001400B3497E3803FFFC1C1F7E9E21>I<39FFF00FF8390F0003E0EC00
-80B3A46CEB01001380120314026C6C5A6C6C5AEB3830EB0FC01D207E9E22>I<39FFF003
-FE391F8000F86CC7126015206C6C1340A36C6C1380A2EBE00100011400A23800F002A213
-F8EB7804A26D5AA36D5AA2131F6D5AA2EB07C0A36D5AA36DC7FC1F207F9E22>I<3BFFF0
-7FF81FF03B1F000FC007C06C903907800180170015C001805C00071502EC09E013C00003
-5DEC19F01410D801E05CA2EC2078D800F05CA2EC403C01785CA2EC801E017C1460013C14
-4090383D000F133F6D5CA2011E1307010E91C7FCA2010C7F010413022C207F9E2F>I<39
-FFF001FF391F800078000F146012076D1340000314807F3901F001001200EBF802EB7C06
-EB3C04EB3E08131EEB1F10EB0FB0EB07A014E06D5AACEB3FFC201F7F9E22>89
-D<12FFA212C0B3B3A512FFA2082D7CA10D>91 D<12FFA21203B3B3A512FFA2082D80A10D
->93 D<120812101220A21240A21280A312B812FCA2127C1238060E7D9F0D>96
-D<EA1FE0EA3030EA7818131CEA300E1200A313FEEA0F8EEA1E0E1238127800F01310A313
-1E127838386720380F83C014147E9317>I<121C12FC121CAA137CEA1D87381E0180EB00
-C0001C13E01470A21478A6147014F014E0001E13C0381A018038198700EA107C15207E9F
-19>I<EA01FCEA0706EA1C0F123813060078C7FC127012F0A61270127800381380A2381C
-0100EA0706EA01F811147F9314>I<EB01C0130F1301AAEA01F1EA070DEA0C03EA180112
-381278127012F0A61270A21238EA1803120CEA070D3801F1F815207F9F19>I<EA03F0EA
-0E1C487E487EA238700380A212F0B5FC00F0C7FCA41270A26C1380A2381C0100EA0706EA
-01F811147F9314>I<137CEA01C6EA030F1207EA0E061300A7EAFFF0EA0E00B2EA7FE010
-20809F0E>I<14E03803E330EA0E3CEA1C1C38380E00EA780FA5EA380E6C5AEA1E38EA33
-E00020C7FCA21230A2EA3FFE381FFF8014C0383001E038600070481330A4006013606C13
-C0381C03803803FC00141F7F9417>I<121C12FC121CAA137C1386EA1D03001E1380A212
-1CAE38FF8FF014207E9F19>I<1238127CA31238C7FCA6121C12FC121CB1EAFF80091F7F
-9E0C>I<13E0EA01F0A3EA00E01300A61370EA07F012001370B3A31260EAF06013C0EA61
-80EA3F000C28829E0E>I<121C12FC121CAAEB1FE0EB0780EB060013045B5B5B136013E0
-EA1DF0EA1E70EA1C38133C131C7F130F7F148014C038FF9FF014207E9F18>I<121C12FC
-121CB3ABEAFF8009207F9F0C>I<391C3E03E039FCC30C30391D019018001EEBE01CA200
-1C13C0AE3AFF8FF8FF8021147E9326>I<EA1C7CEAFC86EA1D03001E1380A2121CAE38FF
-8FF014147E9319>I<EA01F8EA070E381C0380383801C0A2387000E0A200F013F0A60070
-13E0A2383801C0A2381C038038070E00EA01F814147F9317>I<EA1C7CEAFD87381E0180
-14C0381C00E014F014701478A6147014F014E0381E01C0EB0380381D8700EA1C7C90C7FC
-A8B47E151D7E9319>I<3801F04038070CC0EA0E02EA1C03EA38011278127012F0A61270
-12781238EA1C03EA0C05EA0709EA01F1EA0001A8EB0FF8151D7F9318>I<EA1CF0EAFD18
-EA1E3CA21318EA1C00AEEAFFC00E147E9312>I<EA0FC8EA3038EA6018EAC008A3EAE000
-127CEA3FE0EA1FF0EA07F8EA003CEA800E130612C0A21304EAE00CEAD818EA87E00F147F
-9312>I<1202A31206A2120EA2123EEAFFF8EA0E00AB1304A5EA07081203EA01F00E1C7F
-9B12>I<381C0380EAFC1FEA1C03AE1307120CEA061B3803E3F014147E9319>I<38FF83F8
-383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8A21370A3
-132015147F9318>I<39FF9FE1FC393C078070391C030060EC8020000E1440A214C0D807
-04138014E0A239038861001471A23801D032143A143E3800E01CA2EB6018EB40081E147F
-9321>I<38FF87F8381E03C0380E0180EB0300EA0702EA0384EA01C813D8EA00F0137013
-7813F8139CEA010E1202EA060738040380000C13C0003C13E038FE07FC16147F9318>I<
-38FF83F8383E00E0001C13C06C1380A338070100A21383EA0382A2EA01C4A213E4EA00E8
-A21370A31320A25BA3EAF080A200F1C7FC1262123C151D7F9318>I<EA7FFFEA700E1260
-EA401C133813781370EA00E0120113C0EA038012071301120E121EEA1C03EA3802EA7006
-130EEAFFFE10147F9314>I E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fn cmbx12 20.736 19
-/Fn 19 122 df<DB1FFC14C00203B5EAC001021FECF003027FECFC07903B01FFFC00FE0F
-010701C0EB1F9F4948C7EA07FFD93FF880494814004948157F485B4A153F4890C9121F48
-5A000F170F5B001F1707A2485A1803A2127FA24993C8FCA212FFAA041FB61280127FA27F
-DC0001EBC000123FA36C7EA26C7EA26C7E7E6C7F806C7F6D6C5CEB3FFCD90FFF5C6D01C0
-EB1FBF010101FCEBFF1F6D6CB5EAFE0F021FECF8030203ECE0009126001FFEC9FC413D7B
-BB4C>71 D<B612F8A439007FF000B3B3AFB612F8A41D3B7DBA24>73
-D<B612FEA426007FF0C9FCB3ADEF03C0A517071880A3170FA3171FA2173F177F17FF5E04
-071300163FB9FCA4323B7DBA3A>76 D<B500F00207B512E0808080D8007F92390007E000
-6E6F5A81017B7F81137901787F6E7E6E7E81141F6E7E6E7F6E7F82806E7F6F7E6F7E826F
-7E816F13806F13C017E06F13F081EE7FF8EE3FFC17FEEE1FFF827013837013C318E37013
-F382EF7FFBEF3FFFA283838383A28383187F183FA201FC161FB500FC150F18071803A243
-3B7CBA4C>78 D<B712F8EEFFC017F817FE3B007FF0001FFF040313C004007F717E717EA2
-84171FA284A660A2173F604D5A604C485A4C5BDC1FFEC8FC91B612F817C0A29139F0007F
-F0EE1FF8707E707E707E8482A284A584A5F101E0A27013F0A2F103C0EF7FF8B600F89039
-3FFC078094381FFE0F0507B51200050113FCCBEA1FF0433C7CBA48>82
-D<B600F80107B512E0A426007FF0C83807E000725AB3B3A3013F4C5AA280011F4CC7FCA2
-6D6C151E0107163E6E5D6D6C5D6D6D13019026007FE0EB0FE0DA3FFCEB7FC0020FB65A02
-034AC8FCDA007F13F003071380433C7DBA4A>85 D<EB3FFE48B512E0000714F8390FE007
-FC9038F001FE486C6C7E6F7E82153F6C48806C5A6C5AC8FCA491B5FC131F90387FF83F38
-03FF803807FC00EA0FF0485A123F485AA2485AA4157F6C7E15DF3A3FE0039FF03B1FF80F
-0FFFE03807FFFE0001497E39003FE0002B267DA52F>97 D<13FE12FFA412071203B04AB4
-FC021F13F0027F13FC9138FC03FE9039FFF000FF02C0EB3F8091C7EA1FC04915E0EE0FF0
-17F8A2EE07FCA317FEA917FCA3160F17F817F0161F6D15E06EEB3FC06EEB7F80D9F9E0EB
-FF009039F0FC07FE91387FFFF8D9E01F13E09026C003FEC7FC2F3C7DBB36>I<903801FF
-F0010F13FE013FEBFF809039FF801FC03901FE003F4848EB7FE0485A485A121F4848EB3F
-C0ED1F80007FEC0F004990C7FCA212FFAA127F7FA2123F6D14F0121F6C6CEB01E012076C
-6CEB03C06CB4EB0F806C9038C03F0090383FFFFE010F13F8010113C024267DA52B>I<EE
-3F80ED3FFFA4150181B0ECFF80010F13F0013F13FC9038FFC03F3901FE000F4848130348
-487F48487F121F485AA2127F5BA312FFA9127FA36C7EA2121F6C6C5B6C6C5B00035CD801
-FE011F13C02700FF807E13FE90387FFFF8010F13E0010113002F3C7DBB36>I<49B47E01
-0F13F0017F13FC9038FF81FE3A03FE007F80D807F8133F4848EB1FC0ED0FE0485A003F15
-F01507485A16F8A212FFA290B6FCA301C0C8FCA4127FA36C7E1678121F7F000F15F06C6C
-13016C6CEB03E06C6CEB0FC03A00FFC07F8090393FFFFE00010F13F8010013C025267DA5
-2C>I<EC1FF0ECFFFC010313FF90390FF83F8090381FE07F90393FC0FFC0495A13FFA248
-9038007F80ED3F00151E92C7FCAAB67EA4000190C8FCB3AC007F13FEA4223C7DBB1E>I<
-EA01E0EA07F8487EA2487EA46C5AA26C5AEA01E0C8FCAB13FE127FA412071203B3AAB512
-F0A4143D7DBC1A>105 D<13FE12FFA412071203B3B3AEB512F8A4153C7DBB1A>108
-D<D801FCEBFF8000FF010313F0020F7F91381E03FC91383801FE000701607F0003497E01
-FD15805C01FFC7FCA35BB3A4B5D8F83F13FEA42F267CA536>110
-D<3901FC03F000FFEB0FFC4AB4FC91383C3F80EC707F00079038E0FFC000035BEBFD80A2
-01FFEB7F809138003F00151E92C7FC5BB3A3B512FCA422267DA528>114
-D<90383FF0383903FFFE7848EBFFF8381FC00F383F0003003E13005A157812FCA27E6C14
-0013C013FC387FFFF06C13FEECFF806C14C06C14E0000314F0C614F8011F13FCEB007FEC
-07FE0070130100F01300157E7EA27E157C6C14FC6C14F890388001F09038F00FE000F9B5
-12C0D8F07F130038C01FF81F267DA526>I<130FA55BA45BA25BA25B5A5A5A001FEBFFF0
-B6FCA3000190C7FCB3153CA86C14781480017F13F090383FC1E090381FFFC06D13809038
-01FE001E377EB626>I<B500F0EBFFFCA4D803FEC7EA1F806D15006C151E806C5DA26E13
-7C017F14786E13F8013F5CECF001011F5CECF803010F5CA2ECFC0701075CECFE0F010391
-C7FC6E5A6D131E15BE6D13BC15FC6E5AA36E5AA26E5AA26E5AA26E5AA2140F92C8FC5C14
-1E0008133E007F133C147C38FF807814F8EB81F0EB83E06C485A387C1F80D83FFFC9FCEA
-1FFCEA07F02E377EA533>121 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300dpi
-TeXDict begin
-%%BeginPaperSize: Letter
-letter
-%%EndPaperSize
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 75 659 a Fn(GNU)33 b(Readline)h(Library)e(User)h(In)m(terface)p
-75 709 1800 17 v 936 757 a Fm(Edition)17 b(4.3,)c(for)i
-Fl(Readline)f(Library)g Fm(V)l(ersion)i(4.3.)1643 811
-y(Marc)o(h)e(2002)75 2467 y Fk(Brian)23 b(F)-6 b(o)n(x,)23
-b(F)-6 b(ree)23 b(Soft)n(w)n(are)f(F)-6 b(oundation)75
-2534 y(Chet)22 b(Ramey)-6 b(,)23 b(Case)e(W)-6 b(estern)23
-b(Reserv)n(e)f(Univ)n(ersit)n(y)p 75 2570 1800 9 v eop
-%%Page: 2 2
-2 1 bop 75 217 a Fm(This)22 b(do)q(cumen)o(t)f(describ)q(es)i(the)f
-(end)f(user)h(in)o(terface)f(of)g(the)g(GNU)g(Readline)i(Library)l(,)g
-(a)e(utilit)o(y)75 271 y(whic)o(h)14 b(aids)f(in)g(the)g(consistency)h
-(of)e(user)h(in)o(terface)g(across)f(discrete)h(programs)f(that)g(need)
-h(to)f(pro)o(vide)75 326 y(a)j(command)g(line)i(in)o(terface.)75
-394 y(Published)g(b)o(y)f(the)f(F)l(ree)g(Soft)o(w)o(are)f(F)l
-(oundation)75 448 y(59)h(T)l(emple)h(Place,)f(Suite)i(330,)75
-503 y(Boston,)d(MA)h(02111)f(USA)75 570 y(P)o(ermission)j(is)f(gran)o
-(ted)g(to)f(mak)o(e)h(and)g(distribute)i(v)o(erbatim)d(copies)i(of)f
-(this)h(man)o(ual)f(pro)o(vided)h(the)75 625 y(cop)o(yrigh)o(t)e
-(notice)h(and)f(this)h(p)q(ermission)g(notice)g(are)f(preserv)o(ed)h
-(on)f(all)h(copies.)75 692 y(P)o(ermission)c(is)h(gran)o(ted)e(to)g
-(cop)o(y)h(and)g(distribute)h(mo)q(di\014ed)g(v)o(ersions)f(of)f(this)h
-(man)o(ual)g(under)h(the)f(con-)75 747 y(ditions)k(for)e(v)o(erbatim)h
-(cop)o(ying,)g(pro)o(vided)h(that)e(the)h(en)o(tire)h(resulting)g
-(deriv)o(ed)g(w)o(ork)e(is)h(distributed)75 802 y(under)h(the)f(terms)g
-(of)g(a)f(p)q(ermission)j(notice)f(iden)o(tical)h(to)e(this)g(one.)75
-869 y(P)o(ermission)i(is)g(gran)o(ted)f(to)g(cop)o(y)h(and)f
-(distribute)i(translations)f(of)f(this)h(man)o(ual)g(in)o(to)f(another)
-g(lan-)75 924 y(guage,)e(under)h(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)d(mo)q(di\014ed)j(v)o(ersions,)e(except)h(that)f(this)h(p)q
-(ermission)g(notice)75 979 y(ma)o(y)f(b)q(e)i(stated)f(in)h(a)f
-(translation)g(appro)o(v)o(ed)g(b)o(y)g(the)g(F)l(ree)h(Soft)o(w)o(are)
-d(F)l(oundation.)75 2661 y(Cop)o(yrigh)o(t)301 2660 y(c)289
-2661 y Fj(\015)h Fm(1988-2002)f(F)l(ree)i(Soft)o(w)o(are)f(F)l
-(oundation,)h(Inc.)p eop
-%%Page: 1 3
-1 2 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(1)75 149 y Fi(1)41 b(Command)28 b(Line)e(Editing)137
-271 y Fm(This)16 b(c)o(hapter)f(describ)q(es)i(the)e(basic)h(features)f
-(of)g(the)g Fh(gnu)g Fm(command)g(line)i(editing)f(in)o(terface.)75
-403 y Fk(1.1)33 b(In)n(tro)r(duction)24 b(to)e(Line)i(Editing)137
-501 y Fm(The)16 b(follo)o(wing)g(paragraphs)e(describ)q(e)j(the)e
-(notation)g(used)h(to)e(represen)o(t)i(k)o(eystrok)o(es.)137
-569 y(The)h(text)f Fg(C-k)h Fm(is)g(read)g(as)f(`Con)o(trol-K')g(and)h
-(describ)q(es)h(the)f(c)o(haracter)f(pro)q(duced)h(when)h(the)1831
-567 y Ff(h)p 1844 541 19 2 v 1844 569 a Fe(k)p 1844 577
-V 1860 567 a Ff(i)75 624 y Fm(k)o(ey)d(is)h(pressed)g(while)g(the)f
-(Con)o(trol)g(k)o(ey)g(is)h(depressed.)137 693 y(The)g(text)g
-Fg(M-k)f Fm(is)i(read)f(as)f(`Meta-K')g(and)h(describ)q(es)i(the)e(c)o
-(haracter)f(pro)q(duced)i(when)g(the)f(Meta)75 747 y(k)o(ey)e(\(if)g(y)
-o(ou)g(ha)o(v)o(e)g(one\))g(is)h(depressed,)g(and)f(the)930
-745 y Ff(h)p 942 719 V 942 747 a Fe(k)p 942 755 V 958
-745 a Ff(i)987 747 y Fm(k)o(ey)g(is)h(pressed.)20 b(The)15
-b(Meta)e(k)o(ey)h(is)h(lab)q(eled)1779 745 y Ff(h)p 1791
-719 72 2 v 1791 747 a Fe(AL)m(T)p 1791 755 V 1860 745
-a Ff(i)75 802 y Fm(on)e(man)o(y)g(k)o(eyb)q(oards.)19
-b(On)13 b(k)o(eyb)q(oards)g(with)h(t)o(w)o(o)e(k)o(eys)g(lab)q(eled)
-1213 800 y Ff(h)p 1225 774 V 1225 802 a Fe(AL)m(T)p 1225
-810 V 1294 800 a Ff(i)1322 802 y Fm(\(usually)i(to)e(either)i(side)g
-(of)f(the)75 857 y(space)j(bar\),)f(the)388 855 y Ff(h)p
-400 829 V 400 857 a Fe(AL)m(T)p 400 865 V 469 855 a Ff(i)499
-857 y Fm(on)h(the)g(left)g(side)g(is)g(generally)h(set)f(to)f(w)o(ork)g
-(as)g(a)g(Meta)g(k)o(ey)l(.)22 b(The)1697 855 y Ff(h)p
-1709 829 V 1709 857 a Fe(AL)m(T)p 1709 865 V 1778 855
-a Ff(i)1808 857 y Fm(k)o(ey)75 912 y(on)17 b(the)f(righ)o(t)h(ma)o(y)f
-(also)h(b)q(e)g(con\014gured)g(to)f(w)o(ork)g(as)g(a)h(Meta)f(k)o(ey)g
-(or)g(ma)o(y)g(b)q(e)i(con\014gured)f(as)f(some)75 967
-y(other)f(mo)q(di\014er,)h(suc)o(h)f(as)g(a)g(Comp)q(ose)g(k)o(ey)g
-(for)f(t)o(yping)i(accen)o(ted)f(c)o(haracters.)137 1035
-y(If)c(y)o(ou)g(do)g(not)f(ha)o(v)o(e)h(a)f(Meta)h(or)694
-1033 y Ff(h)p 706 1007 V 706 1035 a Fe(AL)m(T)p 706 1043
-V 775 1033 a Ff(i)801 1035 y Fm(k)o(ey)l(,)g(or)g(another)f(k)o(ey)h(w)
-o(orking)f(as)h(a)f(Meta)h(k)o(ey)l(,)g(the)g(iden)o(tical)75
-1090 y(k)o(eystrok)o(e)f(can)i(b)q(e)g(generated)f(b)o(y)g(t)o(yping)
-809 1088 y Ff(h)p 822 1062 70 2 v 822 1090 a Fe(ESC)p
-822 1098 V 888 1088 a Ff(i)915 1090 y Fd(\014rst)p Fm(,)g(and)g(then)h
-(t)o(yping)1339 1088 y Ff(h)p 1351 1062 19 2 v 1351 1090
-a Fe(k)p 1351 1098 V 1368 1088 a Ff(i)1383 1090 y Fm(.)18
-b(Either)12 b(pro)q(cess)f(is)h(kno)o(wn)75 1145 y(as)j
-Fc(metafying)k Fm(the)425 1143 y Ff(h)p 437 1117 V 437
-1145 a Fe(k)p 437 1153 V 454 1143 a Ff(i)484 1145 y Fm(k)o(ey)l(.)137
-1214 y(The)i(text)e Fg(M-C-k)h Fm(is)h(read)f(as)f(`Meta-Con)o(trol-k')
-g(and)h(describ)q(es)i(the)e(c)o(haracter)g(pro)q(duced)h(b)o(y)75
-1268 y Fc(metafying)e Fg(C-k)p Fm(.)137 1337 y(In)g(addition,)h(sev)o
-(eral)f(k)o(eys)f(ha)o(v)o(e)g(their)h(o)o(wn)f(names.)30
-b(Sp)q(eci\014cally)l(,)1384 1335 y Ff(h)p 1396 1309
-73 2 v 1396 1337 a Fe(DEL)p 1396 1345 V 1467 1335 a Ff(i)1482
-1337 y Fm(,)1514 1335 y Ff(h)p 1526 1309 70 2 v 1526
-1337 a Fe(ESC)p 1526 1345 V 1593 1335 a Ff(i)1608 1337
-y Fm(,)1640 1335 y Ff(h)p 1652 1309 72 2 v 1652 1337
-a Fe(LFD)p 1652 1345 V 1722 1335 a Ff(i)1737 1337 y Fm(,)1768
-1335 y Ff(h)p 1780 1309 70 2 v 1780 1337 a Fe(SPC)p 1780
-1345 V 1847 1335 a Ff(i)1862 1337 y Fm(,)75 1390 y Ff(h)p
-87 1364 76 2 v 87 1392 a Fe(RET)p 87 1399 V 160 1390
-a Ff(i)175 1392 y Fm(,)23 b(and)306 1390 y Ff(h)p 318
-1364 74 2 v 318 1392 a Fe(T)m(AB)p 318 1399 V 390 1390
-a Ff(i)427 1392 y Fm(all)f(stand)g(for)f(themselv)o(es)h(when)h(seen)f
-(in)g(this)g(text,)h(or)e(in)i(an)e(init)i(\014le)g(\(see)75
-1447 y(Section)d(1.3)f([Readline)h(Init)g(File],)h(page)e(4\).)32
-b(If)19 b(y)o(our)g(k)o(eyb)q(oard)h(lac)o(ks)f(a)1444
-1445 y Ff(h)p 1456 1419 72 2 v 1456 1447 a Fe(LFD)p 1456
-1454 V 1526 1445 a Ff(i)1560 1447 y Fm(k)o(ey)l(,)h(t)o(yping)1802
-1445 y Ff(h)p 1814 1419 49 2 v 1814 1447 a Fe(C-j)p 1814
-1454 V 1860 1445 a Ff(i)75 1501 y Fm(will)c(pro)q(duce)g(the)f(desired)
-h(c)o(haracter.)j(The)874 1499 y Ff(h)p 886 1473 76 2
-v 886 1501 a Fe(RET)p 886 1509 V 959 1499 a Ff(i)989
-1501 y Fm(k)o(ey)c(ma)o(y)f(b)q(e)h(lab)q(eled)1385 1499
-y Ff(h)p 1397 1473 109 2 v 1397 1501 a Fe(Return)p 1397
-1509 V 1503 1499 a Ff(i)1533 1501 y Fm(or)1588 1499 y
-Ff(h)p 1600 1473 86 2 v 1600 1501 a Fe(En)o(ter)p 1600
-1509 V 1684 1499 a Ff(i)1714 1501 y Fm(on)f(some)75 1556
-y(k)o(eyb)q(oards.)75 1688 y Fk(1.2)33 b(Readline)23
-b(In)n(teraction)137 1786 y Fm(Often)13 b(during)h(an)e(in)o(teractiv)o
-(e)h(session)g(y)o(ou)g(t)o(yp)q(e)f(in)i(a)e(long)h(line)h(of)e(text,)
-h(only)g(to)f(notice)h(that)f(the)75 1841 y(\014rst)k(w)o(ord)f(on)h
-(the)h(line)h(is)e(missp)q(elled.)26 b(The)16 b(Readline)i(library)f
-(giv)o(es)f(y)o(ou)g(a)g(set)g(of)g(commands)g(for)75
-1896 y(manipulating)g(the)f(text)g(as)f(y)o(ou)h(t)o(yp)q(e)g(it)g(in,)
-g(allo)o(wing)h(y)o(ou)f(to)f(just)h(\014x)g(y)o(our)f(t)o(yp)q(o,)g
-(and)h(not)g(forcing)75 1950 y(y)o(ou)f(to)f(ret)o(yp)q(e)h(the)g(ma)s
-(jorit)o(y)f(of)h(the)g(line.)21 b(Using)15 b(these)f(editing)h
-(commands,)f(y)o(ou)g(mo)o(v)o(e)f(the)h(cursor)75 2005
-y(to)i(the)i(place)g(that)e(needs)i(correction,)g(and)f(delete)h(or)f
-(insert)g(the)h(text)e(of)h(the)g(corrections.)26 b(Then,)75
-2060 y(when)16 b(y)o(ou)f(are)h(satis\014ed)g(with)g(the)f(line,)i(y)o
-(ou)e(simply)i(press)1160 2058 y Ff(h)p 1172 2032 76
-2 v 1172 2060 a Fe(RET)p 1172 2068 V 1245 2058 a Ff(i)1260
-2060 y Fm(.)k(Y)l(ou)16 b(do)f(not)h(ha)o(v)o(e)f(to)g(b)q(e)h(at)f
-(the)75 2115 y(end)k(of)e(the)h(line)i(to)d(press)563
-2113 y Ff(h)p 575 2087 V 575 2115 a Fe(RET)p 575 2122
-V 648 2113 a Ff(i)663 2115 y Fm(;)i(the)f(en)o(tire)h(line)g(is)g
-(accepted)f(regardless)g(of)g(the)g(lo)q(cation)g(of)g(the)75
-2170 y(cursor)d(within)h(the)g(line.)75 2284 y Fb(1.2.1)30
-b(Readline)20 b(Bare)g(Essen)n(tials)137 2382 y Fm(In)12
-b(order)g(to)f(en)o(ter)g(c)o(haracters)g(in)o(to)g(the)h(line,)h
-(simply)g(t)o(yp)q(e)f(them.)18 b(The)12 b(t)o(yp)q(ed)g(c)o(haracter)f
-(app)q(ears)75 2437 y(where)16 b(the)h(cursor)f(w)o(as,)f(and)h(then)h
-(the)f(cursor)g(mo)o(v)o(es)g(one)g(space)g(to)g(the)g(righ)o(t.)23
-b(If)17 b(y)o(ou)f(mist)o(yp)q(e)g(a)75 2492 y(c)o(haracter,)e(y)o(ou)h
-(can)g(use)h(y)o(our)f(erase)g(c)o(haracter)f(to)h(bac)o(k)g(up)g(and)h
-(delete)g(the)f(mist)o(yp)q(ed)h(c)o(haracter.)137 2560
-y(Sometimes)g(y)o(ou)f(ma)o(y)g(mist)o(yp)q(e)h(a)f(c)o(haracter,)f
-(and)i(not)f(notice)h(the)f(error)g(un)o(til)i(y)o(ou)e(ha)o(v)o(e)g(t)
-o(yp)q(ed)75 2615 y(sev)o(eral)g(other)f(c)o(haracters.)19
-b(In)c(that)e(case,)i(y)o(ou)f(can)g(t)o(yp)q(e)h Fg(C-b)f
-Fm(to)g(mo)o(v)o(e)f(the)i(cursor)f(to)g(the)g(left,)h(and)75
-2670 y(then)h(correct)e(y)o(our)h(mistak)o(e.)20 b(Afterw)o(ards,)13
-b(y)o(ou)i(can)g(mo)o(v)o(e)g(the)g(cursor)g(to)g(the)g(righ)o(t)g
-(with)g Fg(C-f)p Fm(.)p eop
-%%Page: 2 4
-2 3 bop 75 -58 a Fm(2)1322 b(GNU)15 b(Readline)h(Library)137
-149 y(When)h(y)o(ou)f(add)g(text)g(in)h(the)g(middle)h(of)e(a)f(line,)j
-(y)o(ou)e(will)i(notice)f(that)f(c)o(haracters)f(to)h(the)g(righ)o(t)75
-204 y(of)e(the)g(cursor)g(are)g(`pushed)h(o)o(v)o(er')f(to)f(mak)o(e)h
-(ro)q(om)g(for)f(the)i(text)f(that)f(y)o(ou)h(ha)o(v)o(e)g(inserted.)21
-b(Lik)o(ewise,)75 259 y(when)e(y)o(ou)g(delete)h(text)e(b)q(ehind)j
-(the)e(cursor,)g(c)o(haracters)f(to)g(the)h(righ)o(t)f(of)g(the)h
-(cursor)g(are)f(`pulled)75 314 y(bac)o(k')11 b(to)g(\014ll)h(in)h(the)e
-(blank)h(space)g(created)f(b)o(y)h(the)f(remo)o(v)m(al)g(of)g(the)h
-(text.)18 b(A)11 b(list)h(of)f(the)h(bare)f(essen)o(tials)75
-369 y(for)k(editing)h(the)f(text)g(of)g(an)g(input)h(line)h(follo)o
-(ws.)75 449 y Fg(C-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(k)h(one)h(c)o
-(haracter.)75 530 y Fg(C-f)168 b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(one)h
-(c)o(haracter.)75 608 y Ff(h)p 87 582 73 2 v 87 610 a
-Fe(DEL)p 87 618 V 158 608 a Ff(i)188 610 y Fm(or)244
-608 y Ff(h)p 256 582 159 2 v 256 610 a Fe(Bac)o(kspace)p
-256 618 V 412 608 a Ff(i)315 665 y Fm(Delete)h(the)f(c)o(haracter)g(to)
-f(the)h(left)h(of)f(the)g(cursor.)75 745 y Fg(C-d)168
-b Fm(Delete)16 b(the)f(c)o(haracter)g(underneath)h(the)f(cursor.)75
-825 y(Prin)o(ting)h(c)o(haracters)315 880 y(Insert)f(the)h(c)o
-(haracter)e(in)o(to)h(the)h(line)h(at)d(the)h(cursor.)75
-961 y Fg(C-_)g Fm(or)f Fg(C-x)h(C-u)315 1015 y Fm(Undo)i(the)g(last)f
-(editing)i(command.)25 b(Y)l(ou)17 b(can)g(undo)g(all)g(the)g(w)o(a)o
-(y)f(bac)o(k)h(to)f(an)g(empt)o(y)315 1070 y(line.)75
-1151 y(\(Dep)q(ending)i(on)f(y)o(our)g(con\014guration,)g(the)863
-1149 y Ff(h)p 875 1123 V 875 1151 a Fe(Bac)o(kspace)p
-875 1159 V 1032 1149 a Ff(i)1063 1151 y Fm(k)o(ey)g(b)q(e)h(set)f(to)f
-(delete)i(the)f(c)o(haracter)g(to)f(the)75 1206 y(left)h(of)f(the)h
-(cursor)f(and)g(the)596 1204 y Ff(h)p 608 1178 73 2 v
-608 1206 a Fe(DEL)p 608 1213 V 679 1204 a Ff(i)710 1206
-y Fm(k)o(ey)h(set)f(to)g(delete)h(the)g(c)o(haracter)f(underneath)h
-(the)g(cursor,)f(lik)o(e)75 1260 y Fg(C-d)p Fm(,)e(rather)h(than)g(the)
-g(c)o(haracter)g(to)f(the)i(left)f(of)g(the)g(cursor.\))75
-1374 y Fb(1.2.2)30 b(Readline)20 b(Mo)n(v)n(emen)n(t)i(Commands)137
-1471 y Fm(The)14 b(ab)q(o)o(v)o(e)e(table)i(describ)q(es)g(the)g(most)e
-(basic)i(k)o(eystrok)o(es)d(that)i(y)o(ou)g(need)h(in)f(order)g(to)g
-(do)g(editing)75 1526 y(of)f(the)h(input)h(line.)21 b(F)l(or)12
-b(y)o(our)g(con)o(v)o(enience,)i(man)o(y)f(other)f(commands)h(ha)o(v)o
-(e)f(b)q(een)i(added)f(in)h(addition)75 1580 y(to)h Fg(C-b)p
-Fm(,)h Fg(C-f)p Fm(,)f Fg(C-d)p Fm(,)g(and)522 1578 y
-Ff(h)p 534 1552 V 534 1580 a Fe(DEL)p 534 1588 V 605
-1578 a Ff(i)619 1580 y Fm(.)23 b(Here)16 b(are)g(some)f(commands)h(for)
-f(mo)o(ving)h(more)g(rapidly)h(ab)q(out)f(the)75 1635
-y(line.)75 1716 y Fg(C-a)168 b Fm(Mo)o(v)o(e)14 b(to)h(the)g(start)f
-(of)h(the)g(line.)75 1796 y Fg(C-e)168 b Fm(Mo)o(v)o(e)14
-b(to)h(the)g(end)h(of)f(the)g(line.)75 1876 y Fg(M-f)168
-b Fm(Mo)o(v)o(e)14 b(forw)o(ard)g(a)h(w)o(ord,)f(where)i(a)e(w)o(ord)h
-(is)h(comp)q(osed)f(of)g(letters)g(and)h(digits.)75 1957
-y Fg(M-b)168 b Fm(Mo)o(v)o(e)14 b(bac)o(kw)o(ard)h(a)g(w)o(ord.)75
-2037 y Fg(C-l)168 b Fm(Clear)15 b(the)h(screen,)f(reprin)o(ting)h(the)f
-(curren)o(t)g(line)i(at)e(the)g(top.)137 2118 y(Notice)e(ho)o(w)f
-Fg(C-f)g Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(c)o(haracter,)g(while)i
-Fg(M-f)e Fm(mo)o(v)o(es)f(forw)o(ard)g(a)h(w)o(ord.)18
-b(It)13 b(is)g(a)f(lo)q(ose)75 2173 y(con)o(v)o(en)o(tion)j(that)f(con)
-o(trol)h(k)o(eystrok)o(es)f(op)q(erate)h(on)f(c)o(haracters)h(while)h
-(meta)e(k)o(eystrok)o(es)g(op)q(erate)h(on)75 2227 y(w)o(ords.)75
-2341 y Fb(1.2.3)30 b(Readline)20 b(Killing)h(Commands)137
-2438 y Fc(Killing)26 b Fm(text)18 b(means)g(to)g(delete)i(the)f(text)f
-(from)g(the)h(line,)i(but)d(to)g(sa)o(v)o(e)g(it)h(a)o(w)o(a)o(y)e(for)
-h(later)h(use,)75 2493 y(usually)f(b)o(y)f Fc(y)o(anking)22
-b Fm(\(re-inserting\))17 b(it)g(bac)o(k)g(in)o(to)g(the)h(line.)27
-b(\(`Cut')15 b(and)j(`paste')e(are)g(more)h(recen)o(t)75
-2547 y(jargon)d(for)h(`kill')h(and)g(`y)o(ank'.\))137
-2615 y(If)g(the)f(description)h(for)f(a)g(command)g(sa)o(ys)f(that)h
-(it)g(`kills')h(text,)e(then)i(y)o(ou)f(can)g(b)q(e)h(sure)f(that)f(y)o
-(ou)75 2670 y(can)h(get)g(the)g(text)g(bac)o(k)g(in)h(a)f(di\013eren)o
-(t)g(\(or)g(the)g(same\))g(place)h(later.)p eop
-%%Page: 3 5
-3 4 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(3)137 149 y(When)12 b(y)o(ou)g(use)g(a)f(kill)i(command,)f(the)g
-(text)f(is)h(sa)o(v)o(ed)f(in)i(a)e Fc(kill-ring)p Fm(.)21
-b(An)o(y)12 b(n)o(um)o(b)q(er)g(of)f(consecutiv)o(e)75
-204 y(kills)17 b(sa)o(v)o(e)e(all)h(of)f(the)h(killed)i(text)d
-(together,)f(so)h(that)g(when)h(y)o(ou)f(y)o(ank)g(it)h(bac)o(k,)f(y)o
-(ou)g(get)g(it)h(all.)22 b(The)75 259 y(kill)c(ring)f(is)f(not)g(line)i
-(sp)q(eci\014c;)g(the)e(text)g(that)f(y)o(ou)h(killed)j(on)d(a)g
-(previously)h(t)o(yp)q(ed)g(line)h(is)e(a)o(v)m(ailable)75
-314 y(to)f(b)q(e)g(y)o(ank)o(ed)g(bac)o(k)h(later,)e(when)i(y)o(ou)f
-(are)g(t)o(yping)g(another)g(line.)137 380 y(Here)h(is)f(the)h(list)g
-(of)e(commands)h(for)g(killing)j(text.)75 458 y Fg(C-k)168
-b Fm(Kill)17 b(the)f(text)e(from)h(the)g(curren)o(t)g(cursor)g(p)q
-(osition)h(to)f(the)g(end)h(of)f(the)g(line.)75 535 y
-Fg(M-d)168 b Fm(Kill)15 b(from)e(the)g(cursor)g(to)f(the)i(end)g(of)e
-(the)i(curren)o(t)f(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)
-e(to)h(the)315 590 y(end)j(of)f(the)g(next)g(w)o(ord.)k(W)l(ord)c(b)q
-(oundaries)i(are)e(the)g(same)g(as)g(those)f(used)i(b)o(y)f
-Fg(M-f)p Fm(.)75 668 y Fg(M-)123 666 y Ff(h)p 135 640
-73 2 v 135 668 a Fe(DEL)p 135 675 V 206 666 a Ff(i)315
-668 y Fm(Kill)i(from)e(the)g(cursor)g(the)h(start)e(of)h(the)g(curren)o
-(t)g(w)o(ord,)f(or,)h(if)g(b)q(et)o(w)o(een)h(w)o(ords,)e(to)h(the)315
-723 y(start)j(of)h(the)g(previous)h(w)o(ord.)31 b(W)l(ord)19
-b(b)q(oundaries)h(are)f(the)h(same)e(as)h(those)g(used)h(b)o(y)315
-777 y Fg(M-b)p Fm(.)75 855 y Fg(C-w)168 b Fm(Kill)18
-b(from)d(the)g(cursor)h(to)f(the)g(previous)i(whitespace.)22
-b(This)16 b(is)g(di\013eren)o(t)g(than)f Fg(M-)1777 853
-y Ff(h)p 1789 827 V 1789 855 a Fe(DEL)p 1789 863 V 1860
-853 a Ff(i)315 910 y Fm(b)q(ecause)h(the)f(w)o(ord)g(b)q(oundaries)h
-(di\013er.)137 987 y(Here)21 b(is)h(ho)o(w)e(to)g Fc(y)o(ank)j
-Fm(the)e(text)f(bac)o(k)h(in)o(to)g(the)f(line.)39 b(Y)l(anking)21
-b(means)g(to)f(cop)o(y)h(the)g(most-)75 1042 y(recen)o(tly-killed)d
-(text)d(from)f(the)i(kill)h(bu\013er.)75 1120 y Fg(C-y)168
-b Fm(Y)l(ank)15 b(the)h(most)e(recen)o(tly)i(killed)h(text)e(bac)o(k)g
-(in)o(to)g(the)h(bu\013er)f(at)f(the)i(cursor.)75 1198
-y Fg(M-y)168 b Fm(Rotate)16 b(the)h(kill-ring,)j(and)d(y)o(ank)g(the)h
-(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f(this)h(if)f(the)h(prior)
-315 1252 y(command)d(is)h Fg(C-y)f Fm(or)f Fg(M-y)p Fm(.)75
-1361 y Fb(1.2.4)30 b(Readline)20 b(Argumen)n(ts)137 1457
-y Fm(Y)l(ou)15 b(can)g(pass)f(n)o(umeric)i(argumen)o(ts)e(to)g
-(Readline)h(commands.)20 b(Sometimes)15 b(the)g(argumen)o(t)e(acts)75
-1511 y(as)20 b(a)f(rep)q(eat)i(coun)o(t,)f(other)g(times)g(it)h(is)f
-(the)g Fd(sign)j Fm(of)c(the)h(argumen)o(t)g(that)f(is)i(signi\014can)o
-(t.)35 b(If)20 b(y)o(ou)75 1566 y(pass)d(a)f(negativ)o(e)h(argumen)o(t)
-f(to)g(a)g(command)h(whic)o(h)h(normally)f(acts)f(in)i(a)e(forw)o(ard)g
-(direction,)i(that)75 1621 y(command)g(will)h(act)e(in)i(a)e(bac)o(kw)o
-(ard)g(direction.)28 b(F)l(or)17 b(example,)i(to)e(kill)j(text)d(bac)o
-(k)g(to)g(the)h(start)e(of)75 1676 y(the)f(line,)i(y)o(ou)e(migh)o(t)g
-(t)o(yp)q(e)g(`)p Fl(M--)f(C-k)p Fm('.)137 1742 y(The)h(general)f(w)o
-(a)o(y)f(to)h(pass)g(n)o(umeric)h(argumen)o(ts)e(to)g(a)h(command)g(is)
-h(to)e(t)o(yp)q(e)h(meta)g(digits)h(b)q(efore)75 1797
-y(the)h(command.)k(If)c(the)f(\014rst)g(`digit')h(t)o(yp)q(ed)f(is)h(a)
-g(min)o(us)g(sign)g(\(`)p Fl(-)p Fm('\),)d(then)j(the)f(sign)h(of)f
-(the)h(argumen)o(t)75 1852 y(will)21 b(b)q(e)f(negativ)o(e.)31
-b(Once)20 b(y)o(ou)f(ha)o(v)o(e)g(t)o(yp)q(ed)g(one)g(meta)g(digit)h
-(to)e(get)h(the)g(argumen)o(t)f(started,)h(y)o(ou)75
-1906 y(can)c(t)o(yp)q(e)f(the)h(remainder)g(of)f(the)g(digits,)h(and)g
-(then)g(the)f(command.)20 b(F)l(or)13 b(example,)i(to)f(giv)o(e)h(the)f
-Fg(C-d)75 1961 y Fm(command)19 b(an)f(argumen)o(t)g(of)g(10,)h(y)o(ou)f
-(could)i(t)o(yp)q(e)f(`)p Fl(M-1)14 b(0)h(C-d)p Fm(',)k(whic)o(h)g
-(will)h(delete)g(the)f(next)g(ten)75 2016 y(c)o(haracters)14
-b(on)i(the)f(input)h(line.)75 2125 y Fb(1.2.5)30 b(Searc)n(hing)21
-b(for)f(Commands)h(in)f(the)h(History)137 2220 y Fm(Readline)d(pro)o
-(vides)e(commands)g(for)g(searc)o(hing)g(through)g(the)g(command)g
-(history)g(for)g(lines)i(con-)75 2275 y(taining)e(a)f(sp)q(eci\014ed)i
-(string.)j(There)c(are)e(t)o(w)o(o)g(searc)o(h)h(mo)q(des:)20
-b Fc(incremen)o(tal)e Fm(and)e Fc(non-incremen)o(tal)p
-Fm(.)137 2341 y(Incremen)o(tal)e(searc)o(hes)f(b)q(egin)h(b)q(efore)f
-(the)g(user)g(has)g(\014nished)h(t)o(yping)f(the)g(searc)o(h)g(string.)
-19 b(As)13 b(eac)o(h)75 2396 y(c)o(haracter)k(of)g(the)h(searc)o(h)g
-(string)f(is)h(t)o(yp)q(ed,)h(Readline)g(displa)o(ys)f(the)g(next)g(en)
-o(try)f(from)g(the)h(history)75 2451 y(matc)o(hing)12
-b(the)g(string)g(t)o(yp)q(ed)g(so)g(far.)18 b(An)13 b(incremen)o(tal)g
-(searc)o(h)f(requires)g(only)h(as)f(man)o(y)f(c)o(haracters)g(as)75
-2506 y(needed)16 b(to)d(\014nd)j(the)e(desired)i(history)e(en)o(try)l
-(.)19 b(T)l(o)c(searc)o(h)f(bac)o(kw)o(ard)f(in)j(the)e(history)g(for)g
-(a)g(particular)75 2560 y(string,)g(t)o(yp)q(e)h Fg(C-r)p
-Fm(.)k(T)o(yping)d Fg(C-s)e Fm(searc)o(hes)h(forw)o(ard)e(through)h
-(the)h(history)l(.)20 b(The)15 b(c)o(haracters)f(presen)o(t)75
-2615 y(in)20 b(the)f(v)m(alue)h(of)f(the)g Fl(isearch-terminators)d
-Fm(v)m(ariable)k(are)f(used)h(to)e(terminate)h(an)g(incremen)o(tal)75
-2670 y(searc)o(h.)31 b(If)19 b(that)f(v)m(ariable)i(has)f(not)f(b)q
-(een)i(assigned)g(a)e(v)m(alue,)j(the)1289 2668 y Ff(h)p
-1301 2642 70 2 v 1301 2670 a Fe(ESC)p 1301 2678 V 1368
-2668 a Ff(i)1402 2670 y Fm(and)e Fg(C-J)f Fm(c)o(haracters)g(will)p
-eop
-%%Page: 4 6
-4 5 bop 75 -58 a Fm(4)1322 b(GNU)15 b(Readline)h(Library)75
-149 y(terminate)21 b(an)g(incremen)o(tal)i(searc)o(h.)37
-b Fg(C-g)21 b Fm(will)i(ab)q(ort)e(an)g(incremen)o(tal)h(searc)o(h)f
-(and)g(restore)g(the)75 204 y(original)16 b(line.)21
-b(When)15 b(the)f(searc)o(h)g(is)h(terminated,)g(the)f(history)h(en)o
-(try)f(con)o(taining)h(the)g(searc)o(h)f(string)75 259
-y(b)q(ecomes)i(the)f(curren)o(t)g(line.)137 325 y(T)l(o)g(\014nd)i
-(other)e(matc)o(hing)g(en)o(tries)h(in)h(the)e(history)h(list,)g(t)o
-(yp)q(e)f Fg(C-r)g Fm(or)g Fg(C-s)g Fm(as)h(appropriate.)k(This)75
-380 y(will)15 b(searc)o(h)e(bac)o(kw)o(ard)f(or)g(forw)o(ard)g(in)i
-(the)f(history)g(for)g(the)g(next)g(en)o(try)g(matc)o(hing)g(the)g
-(searc)o(h)g(string)75 434 y(t)o(yp)q(ed)19 b(so)g(far.)30
-b(An)o(y)19 b(other)f(k)o(ey)h(sequence)h(b)q(ound)g(to)e(a)h(Readline)
-h(command)e(will)j(terminate)e(the)75 489 y(searc)o(h)10
-b(and)h(execute)g(that)f(command.)18 b(F)l(or)10 b(instance,)i(a)1063
-487 y Ff(h)p 1076 461 76 2 v 1076 489 a Fe(RET)p 1076
-497 V 1149 487 a Ff(i)1174 489 y Fm(will)g(terminate)f(the)g(searc)o(h)
-f(and)h(accept)75 544 y(the)k(line,)h(thereb)o(y)f(executing)g(the)g
-(command)g(from)f(the)g(history)h(list.)20 b(A)15 b(mo)o(v)o(emen)o(t)f
-(command)g(will)75 599 y(terminate)h(the)g(searc)o(h,)g(mak)o(e)g(the)g
-(last)g(line)i(found)f(the)f(curren)o(t)g(line,)h(and)g(b)q(egin)g
-(editing.)137 665 y(Readline)j(remem)o(b)q(ers)e(the)h(last)f(incremen)
-o(tal)i(searc)o(h)e(string.)27 b(If)17 b(t)o(w)o(o)f
-Fg(C-r)p Fm(s)h(are)g(t)o(yp)q(ed)h(without)75 719 y(an)o(y)g(in)o
-(terv)o(ening)h(c)o(haracters)f(de\014ning)h(a)f(new)h(searc)o(h)f
-(string,)g(an)o(y)g(remem)o(b)q(ered)h(searc)o(h)f(string)g(is)75
-774 y(used.)137 840 y(Non-incremen)o(tal)25 b(searc)o(hes)e(read)h(the)
-f(en)o(tire)h(searc)o(h)f(string)g(b)q(efore)h(starting)f(to)f(searc)o
-(h)i(for)75 895 y(matc)o(hing)d(history)h(lines.)39 b(The)22
-b(searc)o(h)f(string)g(ma)o(y)g(b)q(e)h(t)o(yp)q(ed)f(b)o(y)h(the)f
-(user)h(or)e(b)q(e)i(part)f(of)g(the)75 950 y(con)o(ten)o(ts)15
-b(of)f(the)i(curren)o(t)f(line.)75 1074 y Fk(1.3)33 b(Readline)23
-b(Init)h(File)137 1169 y Fm(Although)f(the)g(Readline)h(library)f
-(comes)g(with)g(a)f(set)g(of)g(Emacs-lik)o(e)i(k)o(eybindings)g
-(installed)75 1224 y(b)o(y)d(default,)h(it)f(is)h(p)q(ossible)g(to)e
-(use)i(a)e(di\013eren)o(t)h(set)g(of)f(k)o(eybindings.)39
-b(An)o(y)20 b(user)h(can)g(customize)75 1278 y(programs)15
-b(that)h(use)g(Readline)i(b)o(y)e(putting)g(commands)g(in)i(an)e
-Fc(inputrc)k Fm(\014le,)d(con)o(v)o(en)o(tionally)g(in)g(his)75
-1333 y(home)g(directory)l(.)24 b(The)17 b(name)g(of)f(this)h(\014le)g
-(is)g(tak)o(en)g(from)e(the)i(v)m(alue)h(of)e(the)h(en)o(vironmen)o(t)g
-(v)m(ariable)75 1388 y Fl(INPUTRC)p Fm(.)i(If)c(that)g(v)m(ariable)h
-(is)g(unset,)f(the)g(default)h(is)g(`)p Fl(~/.inputrc)p
-Fm('.)137 1454 y(When)f(a)g(program)f(whic)o(h)h(uses)g(the)g(Readline)
-h(library)g(starts)d(up,)i(the)g(init)h(\014le)g(is)f(read,)g(and)g
-(the)75 1509 y(k)o(ey)g(bindings)i(are)e(set.)137 1574
-y(In)f(addition,)h(the)e Fl(C-x)i(C-r)e Fm(command)g(re-reads)h(this)g
-(init)g(\014le,)h(th)o(us)e(incorp)q(orating)h(an)o(y)f(c)o(hanges)75
-1629 y(that)h(y)o(ou)h(migh)o(t)g(ha)o(v)o(e)g(made)g(to)g(it.)75
-1737 y Fb(1.3.1)30 b(Readline)20 b(Init)g(File)h(Syn)n(tax)137
-1832 y Fm(There)c(are)g(only)g(a)g(few)f(basic)i(constructs)e(allo)o(w)
-o(ed)i(in)f(the)g(Readline)h(init)g(\014le.)26 b(Blank)18
-b(lines)g(are)75 1886 y(ignored.)36 b(Lines)22 b(b)q(eginning)h(with)d
-(a)h(`)p Fl(#)p Fm(')e(are)h(commen)o(ts.)35 b(Lines)22
-b(b)q(eginning)h(with)e(a)f(`)p Fl($)p Fm(')f(indicate)75
-1941 y(conditional)c(constructs)f(\(see)g(Section)g(1.3.2)f
-([Conditional)h(Init)h(Constructs],)e(page)h(9\).)k(Other)c(lines)75
-1996 y(denote)h(v)m(ariable)i(settings)e(and)h(k)o(ey)f(bindings.)75
-2073 y(V)l(ariable)h(Settings)315 2128 y(Y)l(ou)k(can)h(mo)q(dify)g
-(the)f(run-time)h(b)q(eha)o(vior)g(of)e(Readline)j(b)o(y)e(altering)h
-(the)f(v)m(alues)h(of)315 2182 y(v)m(ariables)d(in)g(Readline)g(using)f
-(the)g Fl(set)g Fm(command)f(within)i(the)f(init)h(\014le.)26
-b(The)17 b(syn)o(tax)315 2237 y(is)f(simple:)435 2300
-y Fl(set)23 b Fc(v)m(ariable)28 b(v)m(alue)315 2366 y
-Fm(Here,)14 b(for)f(example,)h(is)g(ho)o(w)f(to)g(c)o(hange)h(from)f
-(the)h(default)g(Emacs-lik)o(e)h(k)o(ey)e(binding)j(to)315
-2421 y(use)g Fl(vi)e Fm(line)j(editing)g(commands:)435
-2484 y Fl(set)23 b(editing-mode)g(vi)315 2549 y Fm(V)l(ariable)c(names)
-e(and)h(v)m(alues,)h(where)e(appropriate,)h(are)f(recognized)i(without)
-e(regard)315 2604 y(to)e(case.)315 2670 y(A)g(great)g(deal)g(of)g
-(run-time)h(b)q(eha)o(vior)g(is)g(c)o(hangeable)g(with)f(the)h(follo)o
-(wing)f(v)m(ariables.)p eop
-%%Page: 5 7
-5 6 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(5)315 149 y Fl(bell-style)555 204 y Fm(Con)o(trols)21
-b(what)h(happ)q(ens)h(when)f(Readline)h(w)o(an)o(ts)e(to)g(ring)i(the)f
-(termi-)555 259 y(nal)d(b)q(ell.)32 b(If)19 b(set)f(to)g(`)p
-Fl(none)p Fm(',)g(Readline)i(nev)o(er)f(rings)g(the)f(b)q(ell.)32
-b(If)19 b(set)g(to)555 314 y(`)p Fl(visible)p Fm(',)c(Readline)i(uses)g
-(a)f(visible)j(b)q(ell)g(if)e(one)f(is)h(a)o(v)m(ailable.)26
-b(If)16 b(set)h(to)555 369 y(`)p Fl(audible)p Fm(')g(\(the)h
-(default\),)i(Readline)g(attempts)e(to)g(ring)h(the)g(terminal's)555
-423 y(b)q(ell.)315 504 y Fl(comment-begin)555 559 y Fm(The)c(string)f
-(to)g(insert)i(at)d(the)i(b)q(eginning)i(of)d(the)h(line)h(when)f(the)g
-Fl(insert-)555 614 y(comment)f Fm(command)h(is)h(executed.)21
-b(The)15 b(default)h(v)m(alue)g(is)g Fl("#")p Fm(.)315
-694 y Fl(completion-ignore-case)555 749 y Fm(If)e(set)f(to)g(`)p
-Fl(on)p Fm(',)g(Readline)i(p)q(erforms)e(\014lename)i(matc)o(hing)f
-(and)g(completion)555 804 y(in)i(a)f(case-insensitiv)o(e)i(fashion.)k
-(The)15 b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)315
-884 y Fl(completion-query-items)555 939 y Fm(The)d(n)o(um)o(b)q(er)h
-(of)e(p)q(ossible)j(completions)g(that)d(determines)i(when)g(the)f
-(user)555 994 y(is)21 b(ask)o(ed)g(whether)g(he)h(w)o(an)o(ts)d(to)i
-(see)g(the)g(list)h(of)e(p)q(ossibilitie)q(s.)40 b(If)21
-b(the)555 1049 y(n)o(um)o(b)q(er)14 b(of)f(p)q(ossible)i(completions)f
-(is)g(greater)f(than)g(this)h(v)m(alue,)h(Readline)555
-1104 y(will)g(ask)e(the)g(user)h(whether)f(or)g(not)g(he)g(wishes)h(to)
-f(view)h(them;)f(otherwise,)555 1158 y(they)f(are)g(simply)i(listed.)20
-b(This)13 b(v)m(ariable)g(m)o(ust)f(b)q(e)h(set)f(to)f(an)h(in)o(teger)
-h(v)m(alue)555 1213 y(greater)h(than)h(or)g(equal)h(to)f(0.)k(The)d
-(default)f(limit)i(is)f Fl(100)p Fm(.)315 1294 y Fl(convert-meta)555
-1348 y Fm(If)11 b(set)g(to)g(`)p Fl(on)p Fm(',)f(Readline)i(will)h(con)
-o(v)o(ert)d(c)o(haracters)h(with)g(the)g(eigh)o(th)h(bit)f(set)555
-1403 y(to)f(an)h Fh(asci)q(i)e Fm(k)o(ey)i(sequence)g(b)o(y)g
-(stripping)h(the)e(eigh)o(th)h(bit)h(and)e(pre\014xing)i(an)555
-1456 y Ff(h)p 567 1430 70 2 v 567 1458 a Fe(ESC)p 567
-1466 V 634 1456 a Ff(i)666 1458 y Fm(c)o(haracter,)k(con)o(v)o(erting)h
-(them)g(to)f(a)h(meta-pre\014xed)g(k)o(ey)g(sequence.)555
-1513 y(The)e(default)h(v)m(alue)h(is)e(`)p Fl(on)p Fm('.)315
-1593 y Fl(disable-completion)555 1648 y Fm(If)k(set)f(to)f(`)p
-Fl(On)p Fm(',)h(Readline)i(will)g(inhibit)g(w)o(ord)e(completion.)30
-b(Completion)555 1703 y(c)o(haracters)12 b(will)j(b)q(e)f(inserted)g
-(in)o(to)f(the)g(line)h(as)f(if)h(they)f(had)g(b)q(een)h(mapp)q(ed)555
-1758 y(to)h Fl(self-insert)p Fm(.)j(The)d(default)h(is)g(`)p
-Fl(off)p Fm('.)315 1838 y Fl(editing-mode)555 1893 y
-Fm(The)f Fl(editing-mode)d Fm(v)m(ariable)k(con)o(trols)e(whic)o(h)h
-(default)g(set)f(of)g(k)o(ey)g(bind-)555 1948 y(ings)f(is)g(used.)20
-b(By)12 b(default,)i(Readline)f(starts)f(up)h(in)g(Emacs)f(editing)i
-(mo)q(de,)555 2003 y(where)h(the)f(k)o(eystrok)o(es)g(are)g(most)g
-(similar)i(to)d(Emacs.)20 b(This)15 b(v)m(ariable)h(can)555
-2058 y(b)q(e)g(set)f(to)f(either)i(`)p Fl(emacs)p Fm(')e(or)h(`)p
-Fl(vi)p Fm('.)315 2138 y Fl(enable-keypad)555 2193 y
-Fm(When)d(set)f(to)h(`)p Fl(on)p Fm(',)e(Readline)j(will)h(try)d(to)g
-(enable)i(the)f(application)h(k)o(eypad)555 2248 y(when)h(it)f(is)h
-(called.)21 b(Some)13 b(systems)g(need)h(this)g(to)f(enable)h(the)g
-(arro)o(w)e(k)o(eys.)555 2303 y(The)j(default)h(is)g(`)p
-Fl(off)p Fm('.)315 2383 y Fl(expand-tilde)555 2438 y
-Fm(If)e(set)g(to)f(`)p Fl(on)p Fm(',)f(tilde)k(expansion)e(is)h(p)q
-(erformed)f(when)g(Readline)h(attempts)555 2493 y(w)o(ord)g
-(completion.)21 b(The)15 b(default)h(is)f(`)p Fl(off)p
-Fm('.)555 2560 y(If)g(set)g(to)f(`)p Fl(on)p Fm(',)g(the)g(history)h
-(co)q(de)h(attempts)e(to)g(place)i(p)q(oin)o(t)f(at)f(the)h(same)555
-2615 y(lo)q(cation)20 b(on)f(eac)o(h)g(history)h(line)g(retriv)o(ed)g
-(with)f Fl(previous-history)e Fm(or)555 2670 y Fl(next-history)p
-Fm(.)p eop
-%%Page: 6 8
-6 7 bop 75 -58 a Fm(6)1322 b(GNU)15 b(Readline)h(Library)315
-149 y Fl(horizontal-scroll-mode)555 204 y Fm(This)j(v)m(ariable)g(can)f
-(b)q(e)g(set)g(to)f(either)i(`)p Fl(on)p Fm(')e(or)g(`)p
-Fl(off)p Fm('.)27 b(Setting)19 b(it)f(to)f(`)p Fl(on)p
-Fm(')555 259 y(means)c(that)f(the)i(text)e(of)h(the)g(lines)i(b)q(eing)
-f(edited)g(will)h(scroll)f(horizon)o(tally)555 314 y(on)i(a)f(single)i
-(screen)g(line)g(when)g(they)f(are)f(longer)h(than)g(the)g(width)g(of)g
-(the)555 369 y(screen,)e(instead)f(of)g(wrapping)g(on)o(to)f(a)h(new)g
-(screen)h(line.)21 b(By)13 b(default,)h(this)555 423
-y(v)m(ariable)j(is)e(set)g(to)g(`)p Fl(off)p Fm('.)315
-506 y Fl(input-meta)555 560 y Fm(If)h(set)f(to)g(`)p
-Fl(on)p Fm(',)f(Readline)j(will)h(enable)e(eigh)o(t-bit)h(input)f(\(it)
-g(will)h(not)e(clear)555 615 y(the)20 b(eigh)o(th)g(bit)g(in)h(the)f(c)
-o(haracters)f(it)h(reads\),)g(regardless)g(of)g(what)f(the)555
-670 y(terminal)i(claims)g(it)f(can)g(supp)q(ort.)34 b(The)20
-b(default)h(v)m(alue)g(is)g(`)p Fl(off)p Fm('.)33 b(The)555
-725 y(name)15 b Fl(meta-flag)f Fm(is)i(a)f(synon)o(ym)g(for)f(this)i(v)
-m(ariable.)315 807 y Fl(isearch-terminators)555 862 y
-Fm(The)26 b(string)g(of)f(c)o(haracters)g(that)g(should)i(terminate)f
-(an)g(incremen)o(tal)555 917 y(searc)o(h)12 b(without)h(subsequen)o
-(tly)g(executing)h(the)e(c)o(haracter)g(as)g(a)g(command)555
-971 y(\(see)22 b(Section)h(1.2.5)e([Searc)o(hing],)j(page)e(3\).)40
-b(If)23 b(this)g(v)m(ariable)g(has)f(not)555 1026 y(b)q(een)17
-b(giv)o(en)f(a)g(v)m(alue,)g(the)g(c)o(haracters)1247
-1024 y Ff(h)p 1259 998 70 2 v 1259 1026 a Fe(ESC)p 1259
-1034 V 1326 1024 a Ff(i)1357 1026 y Fm(and)g Fg(C-J)f
-Fm(will)i(terminate)f(an)555 1081 y(incremen)o(tal)g(searc)o(h.)315
-1163 y Fl(keymap)96 b Fm(Sets)19 b(Readline's)i(idea)f(of)f(the)g
-(curren)o(t)h(k)o(eymap)f(for)f(k)o(ey)i(binding)h(com-)555
-1218 y(mands.)41 b(Acceptable)23 b Fl(keymap)f Fm(names)g(are)f
-Fl(emacs)p Fm(,)i Fl(emacs-standard)p Fm(,)555 1273 y
-Fl(emacs-meta)p Fm(,)49 b Fl(emacs-ctlx)p Fm(,)g Fl(vi)p
-Fm(,)h Fl(vi-move)p Fm(,)f Fl(vi-command)p Fm(,)g(and)555
-1328 y Fl(vi-insert)p Fm(.)31 b Fl(vi)20 b Fm(is)g(equiv)m(alen)o(t)h
-(to)e Fl(vi-command)p Fm(;)g Fl(emacs)g Fm(is)h(equiv)m(alen)o(t)555
-1382 y(to)15 b Fl(emacs-standard)p Fm(.)20 b(The)d(default)f(v)m(alue)h
-(is)g Fl(emacs)p Fm(.)k(The)16 b(v)m(alue)h(of)f(the)555
-1437 y Fl(editing-mode)e Fm(v)m(ariable)i(also)f(a\013ects)g(the)g
-(default)h(k)o(eymap.)315 1519 y Fl(mark-directories)555
-1574 y Fm(If)j(set)g(to)g(`)p Fl(on)p Fm(',)f(completed)i(directory)g
-(names)f(ha)o(v)o(e)f(a)h(slash)h(app)q(ended.)555 1629
-y(The)15 b(default)h(is)g(`)p Fl(on)p Fm('.)315 1711
-y Fl(mark-modified-lines)555 1766 y Fm(This)j(v)m(ariable,)g(when)g
-(set)e(to)h(`)p Fl(on)p Fm(',)f(causes)h(Readline)h(to)e(displa)o(y)i
-(an)f(as-)555 1821 y(terisk)f(\(`)p Fl(*)p Fm('\))e(at)i(the)f(start)g
-(of)h(history)f(lines)j(whic)o(h)e(ha)o(v)o(e)g(b)q(een)h(mo)q
-(di\014ed.)555 1875 y(This)e(v)m(ariable)g(is)g(`)p Fl(off)p
-Fm(')e(b)o(y)h(default.)315 1958 y Fl(mark-symlinked-directories)555
-2012 y Fm(If)23 b(set)f(to)f(`)p Fl(on)p Fm(',)i(completed)g(names)g
-(whic)o(h)g(are)f(sym)o(b)q(olic)i(links)f(to)f(di-)555
-2067 y(rectories)h(ha)o(v)o(e)g(a)g(slash)g(app)q(ended)i(\(sub)s(ject)
-e(to)f(the)i(v)m(alue)g(of)f Fl(mark-)555 2122 y(directories)p
-Fm(\).)18 b(The)d(default)h(is)g(`)p Fl(off)p Fm('.)315
-2204 y Fl(match-hidden-files)555 2259 y Fm(This)c(v)m(ariable,)h(when)e
-(set)g(to)g(`)p Fl(on)p Fm(',)f(causes)h(Readline)i(to)d(matc)o(h)h
-(\014les)h(whose)555 2314 y(names)22 b(b)q(egin)h(with)g(a)e(`)p
-Fl(.)p Fm(')h(\(hidden)h(\014les\))g(when)f(p)q(erforming)h(\014lename)
-555 2369 y(completion,)g(unless)f(the)f(leading)h(`)p
-Fl(.)p Fm(')e(is)h(supplied)i(b)o(y)e(the)f(user)h(in)h(the)555
-2423 y(\014lename)16 b(to)f(b)q(e)h(completed.)21 b(This)15
-b(v)m(ariable)i(is)f(`)p Fl(on)p Fm(')e(b)o(y)h(default.)315
-2506 y Fl(output-meta)555 2560 y Fm(If)j(set)f(to)g(`)p
-Fl(on)p Fm(',)g(Readline)i(will)h(displa)o(y)f(c)o(haracters)d(with)j
-(the)e(eigh)o(th)h(bit)555 2615 y(set)g(directly)i(rather)d(than)h(as)g
-(a)g(meta-pre\014xed)h(escap)q(e)g(sequence.)30 b(The)555
-2670 y(default)16 b(is)f(`)p Fl(off)p Fm('.)p eop
-%%Page: 7 9
-7 8 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(7)315 149 y Fl(page-completions)555 204 y Fm(If)17
-b(set)g(to)f(`)p Fl(on)p Fm(',)g(Readline)i(uses)g(an)e(in)o(ternal)i
-Fl(more)p Fm(-lik)o(e)g(pager)f(to)f(displa)o(y)555 259
-y(a)g(screenful)h(of)f(p)q(ossible)i(completions)f(at)f(a)g(time.)23
-b(This)17 b(v)m(ariable)g(is)g(`)p Fl(on)p Fm(')555 314
-y(b)o(y)e(default.)315 395 y Fl(print-completions-horizont)o(ally)555
-450 y Fm(If)d(set)g(to)f(`)p Fl(on)p Fm(',)h(Readline)h(will)g(displa)o
-(y)h(completions)f(with)f(matc)o(hes)f(sorted)555 505
-y(horizon)o(tally)23 b(in)f(alphab)q(etical)i(order,)f(rather)e(than)g
-(do)o(wn)h(the)g(screen.)555 560 y(The)15 b(default)h(is)g(`)p
-Fl(off)p Fm('.)315 641 y Fl(show-all-if-ambiguous)555
-696 y Fm(This)g(alters)e(the)i(default)f(b)q(eha)o(vior)h(of)e(the)h
-(completion)h(functions.)21 b(If)15 b(set)555 751 y(to)e(`)p
-Fl(on)p Fm(',)g(w)o(ords)g(whic)o(h)h(ha)o(v)o(e)g(more)f(than)g(one)h
-(p)q(ossible)i(completion)f(cause)555 806 y(the)20 b(matc)o(hes)f(to)f
-(b)q(e)j(listed)f(immediately)h(instead)f(of)f(ringing)i(the)e(b)q
-(ell.)555 861 y(The)c(default)h(v)m(alue)h(is)e(`)p Fl(off)p
-Fm('.)315 942 y Fl(visible-stats)555 997 y Fm(If)h(set)g(to)f(`)p
-Fl(on)p Fm(',)g(a)h(c)o(haracter)f(denoting)h(a)g(\014le's)h(t)o(yp)q
-(e)f(is)g(app)q(ended)i(to)d(the)555 1052 y(\014lename)h(when)g
-(listing)h(p)q(ossible)g(completions.)j(The)c(default)g(is)f(`)p
-Fl(off)p Fm('.)75 1133 y(Key)h(Bindings)315 1188 y(The)21
-b(syn)o(tax)f(for)h(con)o(trolling)h(k)o(ey)f(bindings)h(in)g(the)f
-(init)h(\014le)g(is)g(simple.)39 b(First)20 b(y)o(ou)315
-1243 y(need)15 b(to)e(\014nd)h(the)g(name)g(of)g(the)f(command)h(that)f
-(y)o(ou)h(w)o(an)o(t)f(to)g(c)o(hange.)19 b(The)14 b(follo)o(wing)315
-1298 y(sections)k(con)o(tain)h(tables)f(of)f(the)h(command)g(name,)g
-(the)g(default)h(k)o(eybinding,)h(if)e(an)o(y)l(,)315
-1353 y(and)d(a)g(short)g(description)i(of)d(what)h(the)g(command)g(do)q
-(es.)315 1421 y(Once)k(y)o(ou)f(kno)o(w)f(the)h(name)g(of)g(the)g
-(command,)g(simply)h(place)g(on)f(a)f(line)j(in)f(the)f(init)315
-1476 y(\014le)g(the)f(name)g(of)f(the)h(k)o(ey)g(y)o(ou)f(wish)i(to)e
-(bind)i(the)f(command)g(to,)f(a)g(colon,)i(and)f(then)315
-1530 y(the)f(name)g(of)g(the)g(command.)22 b(The)16 b(name)g(of)g(the)g
-(k)o(ey)f(can)i(b)q(e)f(expressed)h(in)g(di\013eren)o(t)315
-1585 y(w)o(a)o(ys,)d(dep)q(ending)j(on)e(what)g(y)o(ou)g(\014nd)h(most)
-e(comfortable.)315 1653 y(In)19 b(addition)g(to)e(command)h(names,)g
-(readline)i(allo)o(ws)e(k)o(eys)g(to)f(b)q(e)i(b)q(ound)g(to)e(a)h
-(string)315 1708 y(that)c(is)i(inserted)g(when)g(the)f(k)o(ey)g(is)h
-(pressed)g(\(a)e Fc(macro)r Fm(\).)315 1790 y Fc(k)o(eyname)s
-Fm(:)19 b Fc(function-name)g Fm(or)c Fc(macro)555 1845
-y(k)o(eyname)i Fm(is)e(the)f(name)h(of)f(a)g(k)o(ey)g(sp)q(elled)j(out)
-d(in)h(English.)21 b(F)l(or)13 b(example:)675 1910 y
-Fl(Control-u:)22 b(universal-argument)675 1962 y(Meta-Rubout:)g
-(backward-kill-word)675 2014 y(Control-o:)g(">)i(output")555
-2082 y Fm(In)c(the)f(ab)q(o)o(v)o(e)g(example,)i Fg(C-u)e
-Fm(is)h(b)q(ound)g(to)f(the)g(function)h Fl(universal-)555
-2137 y(argument)p Fm(,)e Fg(M-DEL)h Fm(is)g(b)q(ound)h(to)e(the)h
-(function)h Fl(backward-kill-word)p Fm(,)555 2191 y(and)g
-Fg(C-o)f Fm(is)h(b)q(ound)g(to)f(run)h(the)f(macro)g(expressed)h(on)g
-(the)f(righ)o(t)h(hand)555 2246 y(side)c(\(that)e(is,)i(to)e(insert)i
-(the)f(text)g(`)p Fl(>)f(output)p Fm(')g(in)o(to)i(the)f(line\).)555
-2314 y(A)k(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(olic)i(c)o(haracter)e
-(names)g(are)g(recognized)i(while)g(pro-)555 2369 y(cessing)13
-b(this)f(k)o(ey)g(binding)h(syn)o(tax:)18 b Fc(DEL)p
-Fm(,)11 b Fc(ESC)p Fm(,)h Fc(ESCAPE)p Fm(,)f Fc(LFD)p
-Fm(,)g Fc(NEW-)555 2424 y(LINE)p Fm(,)16 b Fc(RET)p Fm(,)e
-Fc(RETURN)p Fm(,)f Fc(R)o(UBOUT)p Fm(,)i Fc(SP)l(A)o(CE)p
-Fm(,)g Fc(SPC)p Fm(,)f(and)i Fc(T)l(AB)p Fm(.)315 2506
-y Fl(")p Fc(k)o(eyseq)q Fl(")p Fm(:)k Fc(function-name)e
-Fm(or)d Fc(macro)555 2560 y(k)o(eyseq)i Fm(di\013ers)e(from)g
-Fc(k)o(eyname)j Fm(ab)q(o)o(v)o(e)d(in)i(that)d(strings)i(denoting)g
-(an)f(en-)555 2615 y(tire)i(k)o(ey)g(sequence)h(can)f(b)q(e)g(sp)q
-(eci\014ed,)i(b)o(y)e(placing)h(the)f(k)o(ey)g(sequence)h(in)555
-2670 y(double)e(quotes.)j(Some)c Fh(gnu)g Fm(Emacs)f(st)o(yle)h(k)o(ey)
-g(escap)q(es)g(can)g(b)q(e)g(used,)g(as)p eop
-%%Page: 8 10
-8 9 bop 75 -58 a Fm(8)1322 b(GNU)15 b(Readline)h(Library)555
-149 y(in)i(the)f(follo)o(wing)g(example,)h(but)f(the)g(sp)q(ecial)i(c)o
-(haracter)d(names)h(are)f(not)555 204 y(recognized.)675
-270 y Fl("\\C-u":)23 b(universal-argument)675 322 y("\\C-x\\C-r":)f
-(re-read-init-file)675 373 y("\\e[11~":)h("Function)f(Key)i(1")555
-442 y Fm(In)33 b(the)f(ab)q(o)o(v)o(e)g(example,)37 b
-Fg(C-u)32 b Fm(is)h(again)f(b)q(ound)h(to)f(the)g(function)555
-497 y Fl(universal-argument)19 b Fm(\(just)j(as)f(it)h(w)o(as)f(in)i
-(the)f(\014rst)f(example\),)j(`)p Fg(C-x)555 551 y(C-r)p
-Fm(')c(is)h(b)q(ound)g(to)f(the)h(function)g Fl(re-read-init-file)p
-Fm(,)f(and)g(`)1731 549 y Ff(h)p 1743 523 70 2 v 1743
-551 a Fe(ESC)p 1743 559 V 1810 549 a Ff(i)15 b(h)p 1852
-523 10 2 v 1852 551 a Fe([)p 1852 560 V 1860 549 a Ff(i)555
-604 y(h)p 567 578 18 2 v 567 606 a Fe(1)p 567 614 V 583
-604 a Ff(i)g(h)p 625 578 V 625 606 a Fe(1)p 625 614 V
-640 604 a Ff(i)g(h)p 683 578 24 2 v 683 606 a Fl(~)p
-683 614 V 704 604 a Ff(i)719 606 y Fm(')g(is)h(b)q(ound)g(to)e(insert)i
-(the)f(text)g(`)p Fl(Function)f(Key)g(1)p Fm('.)315 688
-y(The)h(follo)o(wing)h Fh(gnu)e Fm(Emacs)h(st)o(yle)g(escap)q(e)h
-(sequences)g(are)e(a)o(v)m(ailable)j(when)e(sp)q(ecifying)315
-743 y(k)o(ey)g(sequences:)315 825 y Fg(\\C-)168 b Fm(con)o(trol)15
-b(pre\014x)315 907 y Fg(\\M-)168 b Fm(meta)15 b(pre\014x)315
-989 y Fg(\\e)192 b Fm(an)15 b(escap)q(e)h(c)o(haracter)315
-1071 y Fg(\\\\)192 b Fm(bac)o(kslash)315 1152 y Fg(\\)p
-Fl(")555 1150 y Ff(h)p 567 1124 V 567 1152 a Fl(")p 567
-1160 V 589 1150 a Ff(i)604 1152 y Fm(,)15 b(a)f(double)j(quotation)e
-(mark)315 1234 y Fg(\\')555 1232 y Ff(h)p 567 1206 10
-2 v 567 1234 a Fe(')p 567 1242 V 575 1232 a Ff(i)590
-1234 y Fm(,)g(a)f(single)j(quote)e(or)g(ap)q(ostrophe)315
-1316 y(In)f(addition)h(to)f(the)f Fh(gnu)h Fm(Emacs)g(st)o(yle)f(escap)
-q(e)i(sequences,)g(a)e(second)i(set)e(of)h(bac)o(kslash)315
-1371 y(escap)q(es)i(is)g(a)o(v)m(ailable:)315 1453 y
-Fl(\\a)192 b Fm(alert)15 b(\(b)q(ell\))315 1535 y Fl(\\b)192
-b Fm(bac)o(kspace)315 1617 y Fl(\\d)g Fm(delete)315 1699
-y Fl(\\f)g Fm(form)14 b(feed)315 1781 y Fl(\\n)192 b
-Fm(newline)315 1862 y Fl(\\r)g Fm(carriage)15 b(return)315
-1944 y Fl(\\t)192 b Fm(horizon)o(tal)16 b(tab)315 2026
-y Fl(\\v)192 b Fm(v)o(ertical)16 b(tab)315 2108 y Fl(\\)p
-Fc(nnn)141 b Fm(the)17 b(eigh)o(t-bit)h(c)o(haracter)f(whose)g(v)m
-(alue)i(is)e(the)h(o)q(ctal)f(v)m(alue)i Fc(nnn)f Fm(\(one)f(to)555
-2163 y(three)e(digits\))315 2245 y Fl(\\x)p Fc(HH)124
-b Fm(the)20 b(eigh)o(t-bit)g(c)o(haracter)f(whose)h(v)m(alue)h(is)f
-(the)g(hexadecimal)h(v)m(alue)g Fc(HH)555 2300 y Fm(\(one)15
-b(or)g(t)o(w)o(o)f(hex)h(digits\))315 2382 y(When)k(en)o(tering)g(the)g
-(text)f(of)g(a)h(macro,)f(single)i(or)e(double)i(quotes)f(m)o(ust)f(b)q
-(e)h(used)h(to)315 2436 y(indicate)12 b(a)f(macro)f(de\014nition.)20
-b(Unquoted)11 b(text)f(is)i(assumed)e(to)h(b)q(e)g(a)f(function)i
-(name.)18 b(In)315 2491 y(the)11 b(macro)f(b)q(o)q(dy)l(,)i(the)f(bac)o
-(kslash)g(escap)q(es)g(describ)q(ed)i(ab)q(o)o(v)o(e)d(are)g(expanded.)
-20 b(Bac)o(kslash)315 2546 y(will)i(quote)d(an)o(y)h(other)g(c)o
-(haracter)f(in)i(the)f(macro)f(text,)h(including)j(`)p
-Fl(")p Fm(')c(and)h(`)p Fl(')p Fm('.)34 b(F)l(or)315
-2601 y(example,)14 b(the)f(follo)o(wing)g(binding)i(will)g(mak)o(e)d(`)
-p Fg(C-x)i Fl(\\)p Fm(')f(insert)g(a)g(single)h(`)p Fl(\\)p
-Fm(')e(in)o(to)h(the)g(line:)435 2666 y Fl("\\C-x\\\\":)23
-b("\\\\")p eop
-%%Page: 9 11
-9 10 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1077
-b(9)75 149 y Fb(1.3.2)30 b(Conditional)20 b(Init)g(Constructs)137
-246 y Fm(Readline)f(implemen)o(ts)g(a)f(facilit)o(y)g(similar)h(in)g
-(spirit)f(to)f(the)h(conditional)h(compilation)g(features)75
-301 y(of)e(the)g(C)g(prepro)q(cessor)g(whic)o(h)i(allo)o(ws)e(k)o(ey)g
-(bindings)i(and)f(v)m(ariable)g(settings)f(to)g(b)q(e)h(p)q(erformed)f
-(as)75 355 y(the)e(result)h(of)f(tests.)k(There)c(are)g(four)g(parser)g
-(directiv)o(es)h(used.)75 435 y Fl($if)168 b Fm(The)16
-b Fl($if)f Fm(construct)g(allo)o(ws)h(bindings)i(to)d(b)q(e)h(made)g
-(based)g(on)f(the)h(editing)h(mo)q(de,)f(the)315 490
-y(terminal)k(b)q(eing)g(used,)g(or)f(the)g(application)i(using)e
-(Readline.)33 b(The)19 b(text)g(of)f(the)i(test)315 545
-y(extends)c(to)e(the)h(end)h(of)f(the)g(line;)i(no)e(c)o(haracters)f
-(are)h(required)i(to)d(isolate)i(it.)315 624 y Fl(mode)144
-b Fm(The)11 b Fl(mode=)e Fm(form)h(of)g(the)h Fl($if)f
-Fm(directiv)o(e)h(is)g(used)g(to)f(test)g(whether)h(Readline)555
-679 y(is)k(in)h Fl(emacs)e Fm(or)g Fl(vi)g Fm(mo)q(de.)20
-b(This)c(ma)o(y)e(b)q(e)h(used)g(in)h(conjunction)g(with)f(the)555
-734 y(`)p Fl(set)f(keymap)p Fm(')f(command,)g(for)h(instance,)g(to)f
-(set)h(bindings)h(in)g(the)f Fl(emacs-)555 789 y(standard)d
-Fm(and)i Fl(emacs-ctlx)e Fm(k)o(eymaps)h(only)i(if)f(Readline)g(is)g
-(starting)f(out)555 844 y(in)k Fl(emacs)f Fm(mo)q(de.)315
-923 y Fl(term)144 b Fm(The)14 b Fl(term=)e Fm(form)h(ma)o(y)g(b)q(e)h
-(used)g(to)f(include)j(terminal-sp)q(eci\014c)g(k)o(ey)d(bind-)555
-978 y(ings,)19 b(p)q(erhaps)g(to)e(bind)i(the)g(k)o(ey)e(sequences)j
-(output)e(b)o(y)g(the)g(terminal's)555 1033 y(function)13
-b(k)o(eys.)18 b(The)13 b(w)o(ord)e(on)h(the)g(righ)o(t)g(side)g(of)g
-(the)g(`)p Fl(=)p Fm(')f(is)h(tested)g(against)555 1088
-y(b)q(oth)j(the)g(full)i(name)e(of)f(the)h(terminal)h(and)f(the)g(p)q
-(ortion)h(of)e(the)h(terminal)555 1142 y(name)i(b)q(efore)g(the)g
-(\014rst)f(`)p Fl(-)p Fm('.)24 b(This)17 b(allo)o(ws)g
-Fl(sun)f Fm(to)g(matc)o(h)h(b)q(oth)f Fl(sun)h Fm(and)555
-1197 y Fl(sun-cmd)p Fm(,)d(for)g(instance.)315 1277 y
-Fl(application)555 1332 y Fm(The)d Fc(application)i Fm(construct)e(is)g
-(used)h(to)e(include)j(application-sp)q(eci)q(\014c)h(set-)555
-1386 y(tings.)19 b(Eac)o(h)12 b(program)f(using)j(the)e(Readline)i
-(library)f(sets)f(the)g Fc(application)555 1441 y(name)p
-Fm(,)g(and)g(y)o(ou)f(can)h(test)f(for)g(a)g(particular)h(v)m(alue.)20
-b(This)12 b(could)h(b)q(e)f(used)h(to)555 1496 y(bind)18
-b(k)o(ey)e(sequences)i(to)d(functions)j(useful)f(for)f(a)g(sp)q
-(eci\014c)i(program.)23 b(F)l(or)555 1551 y(instance,)17
-b(the)g(follo)o(wing)g(command)g(adds)f(a)g(k)o(ey)h(sequence)g(that)f
-(quotes)555 1606 y(the)f(curren)o(t)g(or)g(previous)h(w)o(ord)e(in)j
-(Bash:)675 1670 y Fl($if)23 b(Bash)675 1722 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)675 1774 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")675 1826 y($endif)75 1905 y($endif)96
-b Fm(This)16 b(command,)e(as)h(seen)h(in)g(the)f(previous)h(example,)g
-(terminates)f(an)g Fl($if)f Fm(command.)75 1985 y Fl($else)120
-b Fm(Commands)15 b(in)h(this)f(branc)o(h)h(of)e(the)i
-Fl($if)e Fm(directiv)o(e)j(are)e(executed)h(if)g(the)f(test)g(fails.)75
-2065 y Fl($include)48 b Fm(This)22 b(directiv)o(e)h(tak)o(es)e(a)h
-(single)h(\014lename)g(as)e(an)h(argumen)o(t)f(and)h(reads)f(commands)
-315 2120 y(and)e(bindings)j(from)c(that)h(\014le.)33
-b(F)l(or)19 b(example,)i(the)e(follo)o(wing)h(directiv)o(e)h(reads)e
-(from)315 2174 y(`)p Fl(/etc/inputrc)p Fm(':)435 2239
-y Fl($include)k(/etc/inputrc)75 2351 y Fb(1.3.3)30 b(Sample)20
-b(Init)h(File)137 2447 y Fm(Here)16 b(is)g(an)f(example)h(of)f(an)g
-Fc(inputrc)k Fm(\014le.)i(This)16 b(illustrates)g(k)o(ey)f(binding,)i
-(v)m(ariable)f(assignmen)o(t,)75 2502 y(and)f(conditional)i(syn)o(tax.)
-p eop
-%%Page: 10 12
-10 11 bop 75 -58 a Fm(10)1299 b(GNU)15 b(Readline)h(Library)195
-201 y Fl(#)24 b(This)f(file)g(controls)g(the)h(behaviour)e(of)i(line)f
-(input)g(editing)g(for)195 253 y(#)h(programs)e(that)i(use)f(the)h(GNU)
-f(Readline)g(library.)47 b(Existing)195 305 y(#)24 b(programs)e
-(include)h(FTP,)h(Bash,)f(and)g(GDB.)195 357 y(#)195
-409 y(#)h(You)f(can)h(re-read)f(the)g(inputrc)g(file)g(with)h(C-x)f
-(C-r.)195 461 y(#)h(Lines)f(beginning)g(with)g('#')g(are)h(comments.)
-195 513 y(#)195 565 y(#)g(First,)f(include)g(any)g(systemwide)g
-(bindings)f(and)i(variable)195 616 y(#)g(assignments)e(from)h
-(/etc/Inputrc)195 668 y($include)g(/etc/Inputrc)195 772
-y(#)195 824 y(#)h(Set)f(various)g(bindings)g(for)g(emacs)g(mode.)195
-928 y(set)g(editing-mode)g(emacs)195 1032 y($if)g(mode=emacs)195
-1135 y(Meta-Control-h:)46 b(backward-kill-word)21 b(Text)i(after)h(the)
-f(function)g(name)g(is)h(ignored)p 1986 1145 21 38 v
-195 1239 a(#)195 1291 y(#)g(Arrow)f(keys)g(in)h(keypad)f(mode)195
-1343 y(#)195 1395 y(#"\\M-OD":)190 b(backward-char)195
-1447 y(#"\\M-OC":)g(forward-char)195 1499 y(#"\\M-OA":)g
-(previous-history)195 1550 y(#"\\M-OB":)g(next-history)195
-1602 y(#)195 1654 y(#)24 b(Arrow)f(keys)g(in)h(ANSI)f(mode)195
-1706 y(#)195 1758 y("\\M-[D":)190 b(backward-char)195
-1810 y("\\M-[C":)g(forward-char)195 1862 y("\\M-[A":)g
-(previous-history)195 1914 y("\\M-[B":)g(next-history)195
-1966 y(#)195 2017 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(keypad)g(mode)
-195 2069 y(#)195 2121 y(#"\\M-\\C-OD":)165 b(backward-char)195
-2173 y(#"\\M-\\C-OC":)g(forward-char)195 2225 y(#"\\M-\\C-OA":)g
-(previous-history)195 2277 y(#"\\M-\\C-OB":)g(next-history)195
-2329 y(#)195 2381 y(#)24 b(Arrow)f(keys)g(in)h(8)g(bit)f(ANSI)g(mode)
-195 2433 y(#)195 2484 y(#"\\M-\\C-[D":)165 b(backward-char)195
-2536 y(#"\\M-\\C-[C":)g(forward-char)195 2588 y(#"\\M-\\C-[A":)g
-(previous-history)195 2640 y(#"\\M-\\C-[B":)g(next-history)p
-eop
-%%Page: 11 13
-11 12 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(11)195 201 y Fl(C-q:)23 b(quoted-insert)195 305 y($endif)195
-409 y(#)h(An)f(old-style)g(binding.)47 b(This)23 b(happens)g(to)g(be)h
-(the)f(default.)195 461 y(TAB:)g(complete)195 565 y(#)h(Macros)f(that)g
-(are)h(convenient)e(for)h(shell)h(interaction)195 616
-y($if)f(Bash)195 668 y(#)h(edit)f(the)g(path)195 720
-y("\\C-xp":)g("PATH=${PATH}\\e\\C-e\\C-a\\)o(ef\\C-f")195
-772 y(#)h(prepare)f(to)g(type)h(a)f(quoted)g(word)h(--)195
-824 y(#)g(insert)f(open)g(and)h(close)f(double)g(quotes)195
-876 y(#)h(and)f(move)g(to)h(just)f(after)h(the)f(open)g(quote)195
-928 y("\\C-x\\"":)g("\\"\\"\\C-b")195 980 y(#)h(insert)f(a)g(backslash)
-g(\(testing)g(backslash)g(escapes)195 1032 y(#)h(in)f(sequences)g(and)g
-(macros\))195 1083 y("\\C-x\\\\":)g("\\\\")195 1135 y(#)h(Quote)f(the)g
-(current)g(or)h(previous)f(word)195 1187 y("\\C-xq":)g
-("\\eb\\"\\ef\\"")195 1239 y(#)h(Add)f(a)h(binding)f(to)g(refresh)g
-(the)h(line,)f(which)g(is)h(unbound)195 1291 y("\\C-xr":)f
-(redraw-current-line)195 1343 y(#)h(Edit)f(variable)g(on)g(current)g
-(line.)195 1395 y("\\M-\\C-v":)f("\\C-a\\C-k$\\C-y\\M-\\C-e\\C-a\\C-y=)
-o(")195 1447 y($endif)195 1550 y(#)i(use)f(a)h(visible)f(bell)g(if)h
-(one)f(is)h(available)195 1602 y(set)f(bell-style)g(visible)195
-1706 y(#)h(don't)f(strip)g(characters)g(to)g(7)h(bits)f(when)h(reading)
-195 1758 y(set)f(input-meta)g(on)195 1862 y(#)h(allow)f(iso-latin1)f
-(characters)h(to)g(be)h(inserted)f(rather)195 1914 y(#)h(than)f
-(converted)g(to)g(prefix-meta)g(sequences)195 1966 y(set)g
-(convert-meta)g(off)195 2069 y(#)h(display)f(characters)f(with)h(the)h
-(eighth)f(bit)g(set)h(directly)195 2121 y(#)g(rather)f(than)g(as)h
-(meta-prefixed)e(characters)195 2173 y(set)h(output-meta)g(on)195
-2277 y(#)h(if)f(there)g(are)h(more)f(than)h(150)f(possible)g
-(completions)f(for)195 2329 y(#)i(a)f(word,)h(ask)f(the)h(user)f(if)g
-(he)h(wants)f(to)h(see)f(all)h(of)f(them)195 2381 y(set)g
-(completion-query-items)e(150)195 2484 y(#)j(For)f(FTP)195
-2536 y($if)g(Ftp)195 2588 y("\\C-xg":)g("get)g(\\M-?")195
-2640 y("\\C-xt":)g("put)g(\\M-?")p eop
-%%Page: 12 14
-12 13 bop 75 -58 a Fm(12)1299 b(GNU)15 b(Readline)h(Library)195
-149 y Fl("\\M-.":)23 b(yank-last-arg)195 201 y($endif)75
-329 y Fk(1.4)33 b(Bindable)24 b(Readline)f(Commands)137
-425 y Fm(This)17 b(section)f(describ)q(es)h(Readline)g(commands)f(that)
-e(ma)o(y)h(b)q(e)i(b)q(ound)f(to)f(k)o(ey)h(sequences.)22
-b(Com-)75 480 y(mand)15 b(names)g(without)h(an)f(accompan)o(ying)g(k)o
-(ey)g(sequence)i(are)e(un)o(b)q(ound)h(b)o(y)f(default.)137
-547 y(In)f(the)f(follo)o(wing)h(descriptions,)h Fc(p)q(oin)o(t)f
-Fm(refers)f(to)g(the)g(curren)o(t)g(cursor)f(p)q(osition,)j(and)e
-Fc(mark)i Fm(refers)75 601 y(to)k(a)g(cursor)g(p)q(osition)h(sa)o(v)o
-(ed)f(b)o(y)h(the)f Fl(set-mark)g Fm(command.)32 b(The)20
-b(text)f(b)q(et)o(w)o(een)g(the)h(p)q(oin)o(t)g(and)75
-656 y(mark)15 b(is)g(referred)h(to)e(as)h(the)g Fc(region)p
-Fm(.)75 767 y Fb(1.4.1)30 b(Commands)21 b(F)-5 b(or)19
-b(Mo)n(ving)75 888 y Fl(beginning-of-line)13 b(\(C-a\))315
-942 y Fm(Mo)o(v)o(e)h(to)h(the)g(start)f(of)h(the)g(curren)o(t)g(line.)
-75 1034 y Fl(end-of-line)f(\(C-e\))315 1088 y Fm(Mo)o(v)o(e)g(to)h(the)
-g(end)h(of)f(the)g(line.)75 1179 y Fl(forward-char)f(\(C-f\))315
-1234 y Fm(Mo)o(v)o(e)g(forw)o(ard)g(a)h(c)o(haracter.)75
-1325 y Fl(backward-char)e(\(C-b\))315 1380 y Fm(Mo)o(v)o(e)h(bac)o(k)h
-(a)g(c)o(haracter.)75 1471 y Fl(forward-word)f(\(M-f\))315
-1526 y Fm(Mo)o(v)o(e)g(forw)o(ard)g(to)g(the)i(end)g(of)e(the)h(next)h
-(w)o(ord.)j(W)l(ords)c(are)f(comp)q(osed)i(of)f(letters)g(and)315
-1581 y(digits.)75 1672 y Fl(backward-word)e(\(M-b\))315
-1727 y Fm(Mo)o(v)o(e)j(bac)o(k)g(to)h(the)f(start)g(of)g(the)h(curren)o
-(t)g(or)f(previous)i(w)o(ord.)24 b(W)l(ords)16 b(are)h(comp)q(osed)315
-1782 y(of)e(letters)g(and)g(digits.)75 1873 y Fl(clear-screen)f
-(\(C-l\))315 1928 y Fm(Clear)f(the)h(screen)g(and)f(redra)o(w)g(the)g
-(curren)o(t)g(line,)i(lea)o(ving)g(the)e(curren)o(t)g(line)i(at)e(the)g
-(top)315 1982 y(of)i(the)g(screen.)75 2074 y Fl(redraw-current-line)e
-(\(\))315 2128 y Fm(Refresh)i(the)g(curren)o(t)g(line.)22
-b(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75 2239
-y Fb(1.4.2)30 b(Commands)21 b(F)-5 b(or)19 b(Manipulating)i(The)f
-(History)75 2360 y Fl(accept-line)14 b(\(Newline)g(or)h(Return\))315
-2414 y Fm(Accept)j(the)g(line)h(regardless)f(of)f(where)h(the)g(cursor)
-f(is.)27 b(If)18 b(this)g(line)h(is)g(non-empt)o(y)l(,)f(it)315
-2469 y(ma)o(y)d(b)q(e)i(added)f(to)g(the)g(history)g(list)g(for)g
-(future)g(recall)h(with)f Fl(add_history\(\))p Fm(.)k(If)d(this)315
-2524 y(line)g(is)f(a)e(mo)q(di\014ed)j(history)e(line,)i(the)e(history)
-g(line)i(is)f(restored)e(to)h(its)g(original)i(state.)75
-2615 y Fl(previous-history)c(\(C-p\))315 2670 y Fm(Mo)o(v)o(e)h(`bac)o
-(k')h(through)f(the)i(history)f(list,)g(fetc)o(hing)h(the)f(previous)h
-(command.)p eop
-%%Page: 13 15
-13 14 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(13)75 149 y Fl(next-history)14 b(\(C-n\))315 204 y
-Fm(Mo)o(v)o(e)g(`forw)o(ard')f(through)i(the)h(history)f(list,)g(fetc)o
-(hing)h(the)f(next)h(command.)75 307 y Fl(beginning-of-history)c
-(\(M-<\))315 362 y Fm(Mo)o(v)o(e)i(to)h(the)g(\014rst)g(line)i(in)f
-(the)f(history)l(.)75 465 y Fl(end-of-history)e(\(M->\))315
-520 y Fm(Mo)o(v)o(e)h(to)h(the)g(end)h(of)f(the)g(input)h(history)l(,)f
-(i.e.,)g(the)g(line)i(curren)o(tly)f(b)q(eing)g(en)o(tered.)75
-624 y Fl(reverse-search-history)c(\(C-r\))315 678 y Fm(Searc)o(h)k(bac)
-o(kw)o(ard)e(starting)h(at)g(the)h(curren)o(t)f(line)j(and)d(mo)o(ving)
-h(`up')f(through)g(the)h(his-)315 733 y(tory)e(as)h(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 836
-y Fl(forward-search-history)c(\(C-s\))315 891 y Fm(Searc)o(h)j(forw)o
-(ard)e(starting)h(at)h(the)f(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)
-o(wn')f(through)g(the)h(the)315 946 y(history)g(as)g(necessary)l(.)20
-b(This)c(is)g(an)f(incremen)o(tal)h(searc)o(h.)75 1049
-y Fl(non-incremental-reverse-se)o(arch-hi)o(story)c(\(M-p\))315
-1104 y Fm(Searc)o(h)k(bac)o(kw)o(ard)e(starting)h(at)g(the)h(curren)o
-(t)f(line)j(and)d(mo)o(ving)h(`up')f(through)g(the)h(his-)315
-1159 y(tory)h(as)h(necessary)g(using)h(a)e(non-incremen)o(tal)j(searc)o
-(h)e(for)f(a)h(string)g(supplied)i(b)o(y)e(the)315 1214
-y(user.)75 1317 y Fl(non-incremental-forward-se)o(arch-hi)o(story)12
-b(\(M-n\))315 1372 y Fm(Searc)o(h)j(forw)o(ard)e(starting)h(at)h(the)f
-(curren)o(t)h(line)h(and)f(mo)o(ving)g(`do)o(wn')f(through)g(the)h(the)
-315 1426 y(history)e(as)g(necessary)h(using)g(a)f(non-incremen)o(tal)i
-(searc)o(h)e(for)g(a)g(string)g(supplied)j(b)o(y)d(the)315
-1481 y(user.)75 1584 y Fl(history-search-forward)f(\(\))315
-1639 y Fm(Searc)o(h)21 b(forw)o(ard)e(through)i(the)f(history)h(for)f
-(the)h(string)g(of)f(c)o(haracters)g(b)q(et)o(w)o(een)h(the)315
-1694 y(start)16 b(of)h(the)h(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o
-(t.)28 b(This)18 b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27
-b(By)315 1749 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-1852 y Fl(history-search-backward)c(\(\))315 1907 y Fm(Searc)o(h)18
-b(bac)o(kw)o(ard)e(through)h(the)h(history)f(for)g(the)g(string)h(of)f
-(c)o(haracters)f(b)q(et)o(w)o(een)i(the)315 1962 y(start)e(of)h(the)h
-(curren)o(t)g(line)h(and)e(the)h(p)q(oin)o(t.)28 b(This)18
-b(is)g(a)f(non-incremen)o(tal)i(searc)o(h.)27 b(By)315
-2016 y(default,)15 b(this)h(command)f(is)h(un)o(b)q(ound.)75
-2120 y Fl(yank-nth-arg)e(\(M-C-y\))315 2174 y Fm(Insert)f(the)g
-(\014rst)g(argumen)o(t)f(to)g(the)i(previous)f(command)g(\(usually)h
-(the)f(second)h(w)o(ord)e(on)315 2229 y(the)j(previous)h(line\))g(at)e
-(p)q(oin)o(t.)21 b(With)15 b(an)g(argumen)o(t)f Fc(n)p
-Fm(,)h(insert)g(the)g Fc(n)p Fm(th)g(w)o(ord)g(from)f(the)315
-2284 y(previous)g(command)g(\(the)f(w)o(ords)f(in)j(the)e(previous)i
-(command)e(b)q(egin)i(with)e(w)o(ord)g(0\).)19 b(A)315
-2339 y(negativ)o(e)13 b(argumen)o(t)f(inserts)h(the)g
-Fc(n)p Fm(th)g(w)o(ord)f(from)g(the)h(end)h(of)e(the)h(previous)g
-(command.)75 2442 y Fl(yank-last-arg)g(\(M-.)i(or)g(M-_\))315
-2497 y Fm(Insert)j(last)f(argumen)o(t)g(to)g(the)g(previous)i(command)e
-(\(the)g(last)h(w)o(ord)f(of)g(the)g(previous)315 2552
-y(history)e(en)o(try\).)20 b(With)15 b(an)g(argumen)o(t,)g(b)q(eha)o(v)
-o(e)g(exactly)h(lik)o(e)g Fl(yank-nth-arg)p Fm(.)j(Succes-)315
-2606 y(siv)o(e)f(calls)g(to)f Fl(yank-last-arg)e Fm(mo)o(v)o(e)i(bac)o
-(k)g(through)g(the)g(history)g(list,)i(inserting)f(the)315
-2661 y(last)d(argumen)o(t)g(of)f(eac)o(h)i(line)g(in)g(turn.)p
-eop
-%%Page: 14 16
-14 15 bop 75 -58 a Fm(14)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fb(1.4.3)30 b(Commands)21 b(F)-5 b(or)19 b(Changing)i(T)-5
-b(ext)75 286 y Fl(delete-char)14 b(\(C-d\))315 341 y
-Fm(Delete)20 b(the)g(c)o(haracter)e(at)h(p)q(oin)o(t.)33
-b(If)20 b(p)q(oin)o(t)g(is)g(at)e(the)i(b)q(eginning)i(of)d(the)g
-(line,)j(there)315 396 y(are)c(no)h(c)o(haracters)e(in)j(the)e(line,)j
-(and)e(the)f(last)h(c)o(haracter)e(t)o(yp)q(ed)i(w)o(as)f(not)g(b)q
-(ound)i(to)315 450 y Fl(delete-char)p Fm(,)13 b(then)j(return)f
-Fh(eof)p Fm(.)75 552 y Fl(backward-delete-char)d(\(Rubout\))315
-607 y Fm(Delete)k(the)f(c)o(haracter)f(b)q(ehind)j(the)f(cursor.)j(A)c
-(n)o(umeric)h(argumen)o(t)e(means)i(to)e(kill)j(the)315
-661 y(c)o(haracters)d(instead)i(of)f(deleting)i(them.)75
-763 y Fl(forward-backward-delete-ch)o(ar)12 b(\(\))315
-818 y Fm(Delete)20 b(the)f(c)o(haracter)f(under)i(the)f(cursor,)h
-(unless)g(the)f(cursor)g(is)h(at)e(the)h(end)h(of)f(the)315
-872 y(line,)e(in)g(whic)o(h)g(case)e(the)h(c)o(haracter)g(b)q(ehind)h
-(the)f(cursor)g(is)g(deleted.)23 b(By)16 b(default,)h(this)315
-927 y(is)f(not)f(b)q(ound)h(to)e(a)h(k)o(ey)l(.)75 1029
-y Fl(quoted-insert)e(\(C-q)i(or)g(C-v\))315 1083 y Fm(Add)j(the)f(next)
-g(c)o(haracter)g(t)o(yp)q(ed)g(to)f(the)i(line)g(v)o(erbatim.)26
-b(This)18 b(is)f(ho)o(w)g(to)g(insert)g(k)o(ey)315 1138
-y(sequences)f(lik)o(e)h Fg(C-q)p Fm(,)d(for)h(example.)75
-1240 y Fl(tab-insert)f(\(M-)401 1238 y Ff(h)p 412 1212
-74 2 v 412 1240 a Fe(T)m(AB)p 412 1247 V 484 1238 a Ff(i)499
-1240 y Fl(\))315 1294 y Fm(Insert)h(a)g(tab)g(c)o(haracter.)75
-1396 y Fl(self-insert)f(\(a,)g(b,)h(A,)g(1,)g(!,)g(...)o(\))315
-1451 y Fm(Insert)g(y)o(ourself.)75 1552 y Fl(transpose-chars)e(\(C-t\))
-315 1607 y Fm(Drag)i(the)h(c)o(haracter)f(b)q(efore)h(the)h(cursor)e
-(forw)o(ard)g(o)o(v)o(er)g(the)h(c)o(haracter)f(at)h(the)g(cursor,)315
-1662 y(mo)o(ving)i(the)f(cursor)h(forw)o(ard)e(as)i(w)o(ell.)28
-b(If)18 b(the)g(insertion)h(p)q(oin)o(t)f(is)g(at)f(the)h(end)h(of)e
-(the)315 1716 y(line,)c(then)e(this)h(transp)q(oses)e(the)h(last)g(t)o
-(w)o(o)f(c)o(haracters)g(of)h(the)g(line.)20 b(Negativ)o(e)11
-b(argumen)o(ts)315 1771 y(ha)o(v)o(e)k(no)g(e\013ect.)75
-1873 y Fl(transpose-words)e(\(M-t\))315 1927 y Fm(Drag)i(the)h(w)o(ord)
-g(b)q(efore)g(p)q(oin)o(t)h(past)f(the)g(w)o(ord)f(after)h(p)q(oin)o
-(t,)g(mo)o(ving)g(p)q(oin)o(t)h(past)f(that)315 1982
-y(w)o(ord)d(as)h(w)o(ell.)21 b(If)14 b(the)g(insertion)i(p)q(oin)o(t)e
-(is)h(at)f(the)g(end)h(of)e(the)i(line,)g(this)g(transp)q(oses)f(the)
-315 2037 y(last)h(t)o(w)o(o)f(w)o(ords)g(on)i(the)f(line.)75
-2138 y Fl(upcase-word)f(\(M-u\))315 2193 y Fm(Upp)q(ercase)j(the)f
-(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o(ord.)22 b(With)16
-b(a)g(negativ)o(e)g(argumen)o(t,)f(upp)q(er-)315 2248
-y(case)g(the)g(previous)h(w)o(ord,)f(but)g(do)g(not)g(mo)o(v)o(e)f(the)
-i(cursor.)75 2349 y Fl(downcase-word)d(\(M-l\))315 2404
-y Fm(Lo)o(w)o(ercase)d(the)h(curren)o(t)g(\(or)f(follo)o(wing\))h(w)o
-(ord.)17 b(With)11 b(a)g(negativ)o(e)g(argumen)o(t,)f(lo)o(w)o(ercase)
-315 2459 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)75 2560 y Fl(capitalize-word)e(\(M-c\))315
-2615 y Fm(Capitalize)f(the)f(curren)o(t)f(\(or)g(follo)o(wing\))h(w)o
-(ord.)18 b(With)11 b(a)f(negativ)o(e)h(argumen)o(t,)f(capitalize)315
-2670 y(the)15 b(previous)h(w)o(ord,)e(but)i(do)f(not)g(mo)o(v)o(e)f
-(the)h(cursor.)p eop
-%%Page: 15 17
-15 16 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(15)75 149 y Fl(overwrite-mode)13 b(\(\))315 204 y Fm(T)l(oggle)j(o)o
-(v)o(erwrite)g(mo)q(de.)24 b(With)17 b(an)f(explicit)j(p)q(ositiv)o(e)f
-(n)o(umeric)f(argumen)o(t,)f(switc)o(hes)315 259 y(to)10
-b(o)o(v)o(erwrite)g(mo)q(de.)19 b(With)11 b(an)g(explicit)i(non-p)q
-(ositiv)o(e)f(n)o(umeric)g(argumen)o(t,)e(switc)o(hes)i(to)315
-314 y(insert)k(mo)q(de.)k(This)c(command)f(a\013ects)g(only)h
-Fl(emacs)e Fm(mo)q(de;)h Fl(vi)g Fm(mo)q(de)h(do)q(es)g(o)o(v)o
-(erwrite)315 369 y(di\013eren)o(tly)l(.)21 b(Eac)o(h)15
-b(call)h(to)f Fl(readline\(\))f Fm(starts)f(in)k(insert)e(mo)q(de.)315
-436 y(In)g(o)o(v)o(erwrite)f(mo)q(de,)h(c)o(haracters)f(b)q(ound)h(to)f
-Fl(self-insert)f Fm(replace)j(the)e(text)h(at)e(p)q(oin)o(t)315
-491 y(rather)20 b(than)h(pushing)h(the)f(text)f(to)g(the)h(righ)o(t.)36
-b(Characters)20 b(b)q(ound)i(to)e Fl(backward-)315 546
-y(delete-char)14 b Fm(replace)i(the)f(c)o(haracter)g(b)q(efore)g(p)q
-(oin)o(t)h(with)f(a)g(space.)315 614 y(By)g(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 729 y Fb(1.4.4)30 b(Killing)20
-b(And)h(Y)-5 b(anking)75 853 y Fl(kill-line)14 b(\(C-k\))315
-908 y Fm(Kill)j(the)f(text)e(from)h(p)q(oin)o(t)h(to)e(the)h(end)h(of)f
-(the)g(line.)75 1002 y Fl(backward-kill-line)e(\(C-x)h(Rubout\))315
-1057 y Fm(Kill)j(bac)o(kw)o(ard)e(to)f(the)i(b)q(eginning)h(of)e(the)g
-(line.)75 1151 y Fl(unix-line-discard)e(\(C-u\))315 1205
-y Fm(Kill)k(bac)o(kw)o(ard)e(from)f(the)i(cursor)e(to)h(the)g(b)q
-(eginning)j(of)c(the)i(curren)o(t)f(line.)75 1299 y Fl(kill-whole-line)
-e(\(\))315 1354 y Fm(Kill)20 b(all)g(c)o(haracters)d(on)h(the)h(curren)
-o(t)f(line,)i(no)e(matter)g(where)g(p)q(oin)o(t)h(is.)29
-b(By)19 b(default,)315 1409 y(this)d(is)f(un)o(b)q(ound.)75
-1503 y Fl(kill-word)f(\(M-d\))315 1558 y Fm(Kill)j(from)d(p)q(oin)o(t)h
-(to)f(the)h(end)g(of)f(the)h(curren)o(t)g(w)o(ord,)e(or)i(if)g(b)q(et)o
-(w)o(een)g(w)o(ords,)e(to)i(the)f(end)315 1613 y(of)h(the)g(next)g(w)o
-(ord.)20 b(W)l(ord)14 b(b)q(oundaries)j(are)e(the)g(same)g(as)g
-Fl(forward-word)p Fm(.)75 1707 y Fl(backward-kill-word)e(\(M-)592
-1705 y Ff(h)p 603 1679 73 2 v 603 1707 a Fe(DEL)p 603
-1714 V 674 1705 a Ff(i)689 1707 y Fl(\))315 1761 y Fm(Kill)k(the)d(w)o
-(ord)g(b)q(ehind)i(p)q(oin)o(t.)21 b(W)l(ord)14 b(b)q(oundaries)h(are)f
-(the)h(same)f(as)g Fl(backward-word)p Fm(.)75 1855 y
-Fl(unix-word-rubout)f(\(C-w\))315 1910 y Fm(Kill)18 b(the)e(w)o(ord)f
-(b)q(ehind)j(p)q(oin)o(t,)e(using)h(white)f(space)g(as)g(a)f(w)o(ord)g
-(b)q(oundary)l(.)23 b(The)16 b(killed)315 1965 y(text)f(is)g(sa)o(v)o
-(ed)g(on)g(the)h(kill-ring.)75 2059 y Fl(delete-horizontal-space)c
-(\(\))315 2114 y Fm(Delete)k(all)g(spaces)f(and)h(tabs)e(around)i(p)q
-(oin)o(t.)k(By)15 b(default,)h(this)f(is)h(un)o(b)q(ound.)75
-2208 y Fl(kill-region)e(\(\))315 2263 y Fm(Kill)j(the)f(text)e(in)i
-(the)g(curren)o(t)f(region.)20 b(By)15 b(default,)h(this)f(command)g
-(is)h(un)o(b)q(ound.)75 2357 y Fl(copy-region-as-kill)d(\(\))315
-2412 y Fm(Cop)o(y)j(the)i(text)e(in)i(the)f(region)g(to)g(the)g(kill)h
-(bu\013er,)f(so)g(it)g(can)g(b)q(e)h(y)o(ank)o(ed)f(righ)o(t)g(a)o(w)o
-(a)o(y)l(.)315 2466 y(By)e(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 2560 y Fl(copy-backward-word)d(\(\))315 2615
-y Fm(Cop)o(y)19 b(the)g(w)o(ord)g(b)q(efore)g(p)q(oin)o(t)h(to)e(the)i
-(kill)h(bu\013er.)32 b(The)19 b(w)o(ord)g(b)q(oundaries)h(are)f(the)315
-2670 y(same)c(as)g Fl(backward-word)p Fm(.)j(By)d(default,)g(this)h
-(command)f(is)h(un)o(b)q(ound.)p eop
-%%Page: 16 18
-16 17 bop 75 -58 a Fm(16)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fl(copy-forward-word)d(\(\))315 204 y Fm(Cop)o(y)i(the)h(w)o(ord)
-e(follo)o(wing)j(p)q(oin)o(t)f(to)f(the)g(kill)j(bu\013er.)i(The)c(w)o
-(ord)f(b)q(oundaries)i(are)e(the)315 259 y(same)g(as)g
-Fl(forward-word)p Fm(.)j(By)d(default,)h(this)f(command)g(is)h(un)o(b)q
-(ound.)75 342 y Fl(yank)f(\(C-y\))315 397 y Fm(Y)l(ank)g(the)h(top)f
-(of)f(the)i(kill)h(ring)e(in)o(to)g(the)h(bu\013er)f(at)f(p)q(oin)o(t.)
-75 481 y Fl(yank-pop)g(\(M-y\))315 535 y Fm(Rotate)i(the)h(kill-ring,)j
-(and)d(y)o(ank)g(the)h(new)f(top.)26 b(Y)l(ou)17 b(can)h(only)g(do)f
-(this)h(if)f(the)h(prior)315 590 y(command)d(is)h Fl(yank)e
-Fm(or)h Fl(yank-pop)p Fm(.)75 693 y Fb(1.4.5)30 b(Sp)r(ecifying)20
-b(Numeric)h(Argumen)n(ts)75 806 y Fl(digit-argument)13
-b(\()p Fg(M-0)p Fl(,)i Fg(M-1)p Fl(,)f(...)h Fg(M--)p
-Fl(\))315 861 y Fm(Add)f(this)g(digit)g(to)f(the)h(argumen)o(t)e
-(already)i(accum)o(ulating,)g(or)f(start)f(a)h(new)h(argumen)o(t.)315
-915 y Fg(M--)h Fm(starts)f(a)h(negativ)o(e)g(argumen)o(t.)75
-999 y Fl(universal-argument)e(\(\))315 1054 y Fm(This)g(is)h(another)e
-(w)o(a)o(y)g(to)g(sp)q(ecify)i(an)f(argumen)o(t.)18 b(If)13
-b(this)g(command)g(is)g(follo)o(w)o(ed)g(b)o(y)g(one)315
-1108 y(or)h(more)h(digits,)g(optionally)h(with)f(a)g(leading)h(min)o
-(us)f(sign,)g(those)g(digits)g(de\014ne)h(the)f(ar-)315
-1163 y(gumen)o(t.)k(If)c(the)g(command)f(is)h(follo)o(w)o(ed)g(b)o(y)g
-(digits,)g(executing)g Fl(universal-argument)315 1218
-y Fm(again)h(ends)g(the)g(n)o(umeric)h(argumen)o(t,)e(but)h(is)h
-(otherwise)f(ignored.)22 b(As)16 b(a)g(sp)q(ecial)h(case,)315
-1273 y(if)g(this)g(command)f(is)h(immediately)h(follo)o(w)o(ed)f(b)o(y)
-f(a)g(c)o(haracter)g(that)g(is)h(neither)g(a)f(digit)315
-1328 y(or)d(min)o(us)i(sign,)f(the)g(argumen)o(t)g(coun)o(t)f(for)h
-(the)g(next)g(command)g(is)g(m)o(ultiplied)j(b)o(y)d(four.)315
-1382 y(The)19 b(argumen)o(t)f(coun)o(t)g(is)h(initially)j(one,)d(so)f
-(executing)i(this)f(function)h(the)e(\014rst)h(time)315
-1437 y(mak)o(es)c(the)h(argumen)o(t)f(coun)o(t)h(four,)f(a)h(second)g
-(time)g(mak)o(es)g(the)g(argumen)o(t)f(coun)o(t)g(six-)315
-1492 y(teen,)g(and)g(so)g(on.)20 b(By)15 b(default,)h(this)f(is)h(not)f
-(b)q(ound)h(to)f(a)g(k)o(ey)l(.)75 1595 y Fb(1.4.6)30
-b(Letting)20 b(Readline)g(T)n(yp)r(e)h(F)-5 b(or)19 b(Y)-5
-b(ou)75 1708 y Fl(complete)14 b(\()305 1706 y Ff(h)p
-317 1680 74 2 v 317 1708 a Fe(T)m(AB)p 317 1715 V 389
-1706 a Ff(i)404 1708 y Fl(\))315 1762 y Fm(A)o(ttempt)c(to)h(p)q
-(erform)g(completion)i(on)e(the)g(text)g(b)q(efore)h(p)q(oin)o(t.)19
-b(The)11 b(actual)h(completion)315 1817 y(p)q(erformed)j(is)h
-(application-sp)q(eci\014)q(c.)23 b(The)15 b(default)h(is)g(\014lename)
-g(completion.)75 1901 y Fl(possible-completions)c(\(M-?\))315
-1955 y Fm(List)k(the)f(p)q(ossible)i(completions)f(of)f(the)g(text)g(b)
-q(efore)h(p)q(oin)o(t.)75 2039 y Fl(insert-completions)d(\(M-*\))315
-2093 y Fm(Insert)j(all)g(completions)g(of)f(the)g(text)g(b)q(efore)h(p)
-q(oin)o(t)f(that)g(w)o(ould)h(ha)o(v)o(e)f(b)q(een)h(generated)315
-2148 y(b)o(y)f Fl(possible-completions)p Fm(.)75 2232
-y Fl(menu-complete)e(\(\))315 2286 y Fm(Similar)g(to)f
-Fl(complete)p Fm(,)f(but)h(replaces)h(the)f(w)o(ord)f(to)g(b)q(e)i
-(completed)f(with)h(a)e(single)j(matc)o(h)315 2341 y(from)k(the)h(list)
-h(of)e(p)q(ossible)j(completions.)32 b(Rep)q(eated)19
-b(execution)h(of)f Fl(menu-complete)315 2396 y Fm(steps)h(through)g
-(the)g(list)h(of)f(p)q(ossible)i(completions,)g(inserting)f(eac)o(h)f
-(matc)o(h)f(in)i(turn.)315 2451 y(A)o(t)d(the)g(end)h(of)f(the)h(list)g
-(of)f(completions,)i(the)e(b)q(ell)j(is)d(rung)h(\(sub)s(ject)f(to)f
-(the)i(setting)315 2506 y(of)f Fl(bell-style)p Fm(\))e(and)i(the)g
-(original)h(text)f(is)g(restored.)28 b(An)19 b(argumen)o(t)e(of)g
-Fc(n)i Fm(mo)o(v)o(es)e Fc(n)315 2560 y Fm(p)q(ositions)h(forw)o(ard)e
-(in)j(the)e(list)h(of)f(matc)o(hes;)h(a)f(negativ)o(e)g(argumen)o(t)g
-(ma)o(y)g(b)q(e)h(used)g(to)315 2615 y(mo)o(v)o(e)g(bac)o(kw)o(ard)h
-(through)g(the)g(list.)32 b(This)20 b(command)f(is)h(in)o(tended)g(to)f
-(b)q(e)h(b)q(ound)g(to)315 2668 y Ff(h)p 327 2642 V 327
-2670 a Fe(T)m(AB)p 327 2678 V 399 2668 a Ff(i)414 2670
-y Fm(,)15 b(but)g(is)h(un)o(b)q(ound)g(b)o(y)f(default.)p
-eop
-%%Page: 17 19
-17 18 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(17)75 149 y Fl(delete-char-or-list)13 b(\(\))315 204
-y Fm(Deletes)h(the)f(c)o(haracter)g(under)h(the)g(cursor)f(if)h(not)f
-(at)g(the)g(b)q(eginning)j(or)d(end)h(of)f(the)g(line)315
-259 y(\(lik)o(e)i Fl(delete-char)p Fm(\).)j(If)d(at)f(the)h(end)g(of)f
-(the)g(line,)i(b)q(eha)o(v)o(es)f(iden)o(tically)i(to)d
-Fl(possible-)315 314 y(completions)p Fm(.)k(This)e(command)f(is)h(un)o
-(b)q(ound)g(b)o(y)f(default.)75 428 y Fb(1.4.7)30 b(Keyb)r(oard)20
-b(Macros)75 551 y Fl(start-kbd-macro)13 b(\(C-x)i(\(\))315
-606 y Fm(Begin)h(sa)o(ving)f(the)h(c)o(haracters)e(t)o(yp)q(ed)i(in)o
-(to)f(the)g(curren)o(t)g(k)o(eyb)q(oard)g(macro.)75 699
-y Fl(end-kbd-macro)e(\(C-x)i(\)\))315 754 y Fm(Stop)f(sa)o(ving)f(the)h
-(c)o(haracters)f(t)o(yp)q(ed)h(in)o(to)f(the)h(curren)o(t)g(k)o(eyb)q
-(oard)f(macro)g(and)h(sa)o(v)o(e)f(the)315 809 y(de\014nition.)75
-902 y Fl(call-last-kbd-macro)g(\(C-x)h(e\))315 957 y
-Fm(Re-execute)k(the)g(last)f(k)o(eyb)q(oard)h(macro)f(de\014ned,)i(b)o
-(y)e(making)h(the)g(c)o(haracters)e(in)j(the)315 1012
-y(macro)14 b(app)q(ear)i(as)f(if)g(t)o(yp)q(ed)h(at)e(the)i(k)o(eyb)q
-(oard.)75 1126 y Fb(1.4.8)30 b(Some)20 b(Miscellaneous)h(Commands)75
-1249 y Fl(re-read-init-file)13 b(\(C-x)h(C-r\))315 1304
-y Fm(Read)d(in)g(the)g(con)o(ten)o(ts)g(of)f(the)h Fc(inputrc)k
-Fm(\014le,)d(and)g(incorp)q(orate)f(an)o(y)f(bindings)j(or)e(v)m
-(ariable)315 1358 y(assignmen)o(ts)k(found)h(there.)75
-1452 y Fl(abort)e(\(C-g\))315 1507 y Fm(Ab)q(ort)f(the)g(curren)o(t)h
-(editing)g(command)f(and)h(ring)f(the)h(terminal's)f(b)q(ell)i(\(sub)s
-(ject)e(to)g(the)315 1561 y(setting)i(of)g Fl(bell-style)p
-Fm(\).)75 1655 y Fl(do-uppercase-version)d(\(M-a,)j(M-b,)f(M-)p
-Fc(x)p Fl(,)h(...\))315 1710 y Fm(If)f(the)g(meta\014ed)g(c)o(haracter)
-f Fc(x)k Fm(is)d(lo)o(w)o(ercase,)g(run)g(the)g(command)f(that)h(is)g
-(b)q(ound)h(to)e(the)315 1764 y(corresp)q(onding)j(upp)q(ercase)g(c)o
-(haracter.)75 1858 y Fl(prefix-meta)e(\()377 1856 y Ff(h)p
-389 1830 70 2 v 389 1858 a Fe(ESC)p 389 1866 V 456 1856
-a Ff(i)471 1858 y Fl(\))315 1913 y Fm(Metafy)k(the)h(next)g(c)o
-(haracter)f(t)o(yp)q(ed.)30 b(This)20 b(is)f(for)f(k)o(eyb)q(oards)h
-(without)g(a)f(meta)g(k)o(ey)l(.)315 1968 y(T)o(yping)e(`)485
-1966 y Ff(h)p 496 1939 V 496 1968 a Fe(ESC)p 496 1975
-V 563 1966 a Ff(i)593 1968 y Fl(f)p Fm(')f(is)h(equiv)m(alen)o(t)h(to)d
-(t)o(yping)i Fg(M-f)p Fm(.)75 2061 y Fl(undo)f(\(C-_)f(or)h(C-x)g
-(C-u\))315 2116 y Fm(Incremen)o(tal)h(undo,)f(separately)h(remem)o(b)q
-(ered)g(for)e(eac)o(h)h(line.)75 2209 y Fl(revert-line)f(\(M-r\))315
-2264 y Fm(Undo)j(all)g(c)o(hanges)g(made)f(to)g(this)h(line.)26
-b(This)17 b(is)g(lik)o(e)h(executing)f(the)g Fl(undo)f
-Fm(command)315 2319 y(enough)g(times)f(to)g(get)f(bac)o(k)h(to)g(the)g
-(b)q(eginning.)75 2412 y Fl(tilde-expand)f(\(M-~\))315
-2467 y Fm(P)o(erform)g(tilde)j(expansion)f(on)f(the)g(curren)o(t)g(w)o
-(ord.)75 2560 y Fl(set-mark)f(\(C-@\))315 2615 y Fm(Set)i(the)h(mark)f
-(to)f(the)i(p)q(oin)o(t.)24 b(If)17 b(a)f(n)o(umeric)h(argumen)o(t)f
-(is)g(supplied,)j(the)e(mark)e(is)i(set)315 2670 y(to)e(that)f(p)q
-(osition.)p eop
-%%Page: 18 20
-18 19 bop 75 -58 a Fm(18)1299 b(GNU)15 b(Readline)h(Library)75
-149 y Fl(exchange-point-and-mark)c(\(C-x)j(C-x\))315
-204 y Fm(Sw)o(ap)g(the)h(p)q(oin)o(t)g(with)g(the)g(mark.)k(The)c
-(curren)o(t)f(cursor)h(p)q(osition)g(is)g(set)g(to)f(the)g(sa)o(v)o(ed)
-315 259 y(p)q(osition,)h(and)f(the)h(old)f(cursor)g(p)q(osition)h(is)g
-(sa)o(v)o(ed)f(as)g(the)g(mark.)75 347 y Fl(character-search)e(\(C-]\))
-315 402 y Fm(A)f(c)o(haracter)g(is)h(read)g(and)f(p)q(oin)o(t)h(is)g
-(mo)o(v)o(ed)f(to)g(the)g(next)h(o)q(ccurrence)g(of)f(that)g(c)o
-(haracter.)315 456 y(A)j(negativ)o(e)h(coun)o(t)f(searc)o(hes)g(for)f
-(previous)i(o)q(ccurrences.)75 544 y Fl(character-search-backward)c
-(\(M-C-]\))315 599 y Fm(A)22 b(c)o(haracter)g(is)h(read)f(and)h(p)q
-(oin)o(t)g(is)g(mo)o(v)o(ed)f(to)g(the)g(previous)h(o)q(ccurrence)h(of)
-e(that)315 654 y(c)o(haracter.)d(A)c(negativ)o(e)h(coun)o(t)f(searc)o
-(hes)g(for)f(subsequen)o(t)i(o)q(ccurrences.)75 741 y
-Fl(insert-comment)d(\(M-#\))315 796 y Fm(Without)18 b(a)f(n)o(umeric)i
-(argumen)o(t,)e(the)h(v)m(alue)h(of)f(the)f Fl(comment-begin)f
-Fm(v)m(ariable)k(is)e(in-)315 851 y(serted)e(at)f(the)h(b)q(eginning)i
-(of)d(the)h(curren)o(t)g(line.)23 b(If)16 b(a)g(n)o(umeric)h(argumen)o
-(t)e(is)h(supplied,)315 906 y(this)j(command)f(acts)g(as)f(a)h(toggle:)
-26 b(if)19 b(the)f(c)o(haracters)g(at)f(the)i(b)q(eginning)h(of)e(the)g
-(line)315 960 y(do)d(not)g(matc)o(h)g(the)g(v)m(alue)i(of)e
-Fl(comment-begin)p Fm(,)e(the)i(v)m(alue)i(is)f(inserted,)f(otherwise)h
-(the)315 1015 y(c)o(haracters)j(in)i Fl(comment-begin)d
-Fm(are)i(deleted)i(from)d(the)h(b)q(eginning)i(of)e(the)g(line.)36
-b(In)315 1070 y(either)16 b(case,)f(the)g(line)i(is)f(accepted)f(as)g
-(if)h(a)f(newline)i(had)e(b)q(een)i(t)o(yp)q(ed.)75 1158
-y Fl(dump-functions)c(\(\))315 1213 y Fm(Prin)o(t)g(all)h(of)f(the)g
-(functions)h(and)g(their)g(k)o(ey)f(bindings)i(to)d(the)i(Readline)g
-(output)f(stream.)315 1267 y(If)j(a)g(n)o(umeric)g(argumen)o(t)f(is)i
-(supplied,)h(the)e(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o
-(y)f(that)315 1322 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g
-Fc(inputrc)k Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o
-(y)f(default.)75 1410 y Fl(dump-variables)e(\(\))315
-1465 y Fm(Prin)o(t)e(all)g(of)f(the)h(settable)g(v)m(ariables)h(and)f
-(their)g(v)m(alues)h(to)e(the)h(Readline)h(output)e(stream.)315
-1519 y(If)16 b(a)g(n)o(umeric)g(argumen)o(t)f(is)i(supplied,)h(the)e
-(output)f(is)i(formatted)d(in)j(suc)o(h)f(a)g(w)o(a)o(y)f(that)315
-1574 y(it)g(can)h(b)q(e)g(made)f(part)f(of)h(an)g Fc(inputrc)k
-Fm(\014le.)i(This)16 b(command)f(is)h(un)o(b)q(ound)g(b)o(y)f(default.)
-75 1662 y Fl(dump-macros)f(\(\))315 1717 y Fm(Prin)o(t)j(all)h(of)e
-(the)h(Readline)h(k)o(ey)f(sequences)h(b)q(ound)g(to)e(macros)g(and)h
-(the)g(strings)g(they)315 1771 y(output.)26 b(If)18 b(a)f(n)o(umeric)h
-(argumen)o(t)f(is)h(supplied,)i(the)d(output)g(is)h(formatted)e(in)j
-(suc)o(h)e(a)315 1826 y(w)o(a)o(y)d(that)g(it)i(can)f(b)q(e)g(made)g
-(part)g(of)f(an)h Fc(inputrc)k Fm(\014le.)i(This)15 b(command)g(is)h
-(un)o(b)q(ound)g(b)o(y)315 1881 y(default.)75 1969 y
-Fl(emacs-editing-mode)d(\(C-e\))315 2024 y Fm(When)j(in)g
-Fl(vi)e Fm(command)i(mo)q(de,)f(this)g(causes)h(a)f(switc)o(h)g(to)g
-Fl(emacs)f Fm(editing)j(mo)q(de.)75 2111 y Fl(vi-editing-mode)c
-(\(M-C-j\))315 2166 y Fm(When)j(in)g Fl(emacs)e Fm(editing)j(mo)q(de,)e
-(this)g(causes)h(a)f(switc)o(h)g(to)g Fl(vi)f Fm(editing)j(mo)q(de.)75
-2290 y Fk(1.5)33 b(Readline)23 b(vi)h(Mo)r(de)137 2385
-y Fm(While)13 b(the)f(Readline)i(library)e(do)q(es)g(not)g(ha)o(v)o(e)f
-(a)h(full)h(set)f(of)f Fl(vi)g Fm(editing)j(functions,)f(it)f(do)q(es)g
-(con)o(tain)75 2440 y(enough)17 b(to)g(allo)o(w)g(simple)h(editing)h
-(of)d(the)i(line.)27 b(The)17 b(Readline)h Fl(vi)f Fm(mo)q(de)g(b)q
-(eha)o(v)o(es)g(as)g(sp)q(eci\014ed)i(in)75 2495 y(the)c
-Fh(posix)g Fm(1003.2)f(standard.)137 2560 y(In)h(order)g(to)f(switc)o
-(h)g(in)o(teractiv)o(ely)i(b)q(et)o(w)o(een)f Fl(emacs)e
-Fm(and)i Fl(vi)f Fm(editing)i(mo)q(des,)f(use)f(the)h(command)75
-2615 y Fg(M-C-j)j Fm(\(b)q(ound)i(to)e(emacs-editing-mo)q(de)j(when)e
-(in)h Fl(vi)f Fm(mo)q(de)g(and)g(to)f(vi-editing-mo)q(de)k(in)e
-Fl(emacs)75 2670 y Fm(mo)q(de\).)g(The)15 b(Readline)i(default)f(is)f
-Fl(emacs)g Fm(mo)q(de.)p eop
-%%Page: 19 21
-19 20 bop 75 -58 a Fm(Chapter)15 b(1:)k(Command)c(Line)i(Editing)1055
-b(19)137 149 y(When)16 b(y)o(ou)e(en)o(ter)h(a)g(line)i(in)e
-Fl(vi)g Fm(mo)q(de,)g(y)o(ou)g(are)f(already)i(placed)g(in)g
-(`insertion')f(mo)q(de,)g(as)g(if)g(y)o(ou)75 204 y(had)e(t)o(yp)q(ed)h
-(an)f(`)p Fl(i)p Fm('.)18 b(Pressing)608 202 y Ff(h)p
-620 176 70 2 v 620 204 a Fe(ESC)p 620 212 V 687 202 a
-Ff(i)715 204 y Fm(switc)o(hes)13 b(y)o(ou)g(in)o(to)g(`command')f(mo)q
-(de,)i(where)f(y)o(ou)g(can)g(edit)h(the)75 259 y(text)i(of)h(the)g
-(line)h(with)g(the)f(standard)f Fl(vi)h Fm(mo)o(v)o(emen)o(t)f(k)o
-(eys,)g(mo)o(v)o(e)g(to)h(previous)g(history)g(lines)i(with)75
-314 y(`)p Fl(k)p Fm(')14 b(and)i(subsequen)o(t)f(lines)i(with)f(`)p
-Fl(j)p Fm(',)e(and)h(so)g(forth.)p eop
-%%Page: 20 22
-20 21 bop 75 -58 a Fm(20)1299 b(GNU)15 b(Readline)h(Library)p
-eop
-%%Page: -1 23
--1 22 bop 1862 -58 a Fm(i)75 149 y Fi(T)-7 b(able)27
-b(of)f(Con)n(ten)n(ts)75 320 y Fk(1)67 b(Command)22 b(Line)i(Editing)d
-Fa(.)10 b(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)h
-(.)f(.)g(.)g(.)42 b Fk(1)224 389 y Fm(1.1)j(In)o(tro)q(duction)16
-b(to)f(Line)h(Editing)e Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)27 b Fm(1)224 444 y(1.2)45 b(Readline)16 b(In)o(teraction)8
-b Fd(.)g(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)23 b Fm(1)374 499 y(1.2.1)44 b(Readline)16
-b(Bare)f(Essen)o(tials)f Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fm(1)374 553 y(1.2.2)44 b(Readline)16 b(Mo)o(v)o(emen)o(t)e(Commands)
-7 b Fd(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)21 b Fm(2)374 608 y(1.2.3)44 b(Readline)16 b(Killing)i(Commands)
-11 b Fd(.)c(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)25 b Fm(2)374 663 y(1.2.4)44 b(Readline)16
-b(Argumen)o(ts)c Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)27
-b Fm(3)374 718 y(1.2.5)44 b(Searc)o(hing)16 b(for)e(Commands)h(in)h
-(the)f(History)e Fd(.)8 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)27
-b Fm(3)224 773 y(1.3)45 b(Readline)16 b(Init)h(File)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)29 b Fm(4)374 827 y(1.3.1)44 b(Readline)16
-b(Init)g(File)h(Syn)o(tax)7 b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21
-b Fm(4)374 882 y(1.3.2)44 b(Conditional)16 b(Init)g(Constructs)5
-b Fd(.)i(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)g(.)f(.)19 b Fm(9)374 937 y(1.3.3)44 b(Sample)16
-b(Init)g(File)11 b Fd(.)e(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)26 b Fm(9)224 992 y(1.4)45 b(Bindable)17 b(Readline)g(Commands)
-6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)21 b Fm(12)374
-1046 y(1.4.1)44 b(Commands)14 b(F)l(or)h(Mo)o(ving)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)28 b Fm(12)374 1101 y(1.4.2)44
-b(Commands)14 b(F)l(or)h(Manipulating)i(The)e(History)9
-b Fd(.)e(.)h(.)f(.)h(.)f(.)h(.)24 b Fm(12)374 1156 y(1.4.3)44
-b(Commands)14 b(F)l(or)h(Changing)h(T)l(ext)e Fd(.)8
-b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)30
-b Fm(14)374 1211 y(1.4.4)44 b(Killing)18 b(And)e(Y)l(anking)9
-b Fd(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)24 b Fm(15)374
-1266 y(1.4.5)44 b(Sp)q(ecifying)17 b(Numeric)f(Argumen)o(ts)c
-Fd(.)c(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)27
-b Fm(16)374 1320 y(1.4.6)44 b(Letting)15 b(Readline)i(T)o(yp)q(e)e(F)l
-(or)g(Y)l(ou)10 b Fd(.)d(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)f(.)h(.)f(.)25 b Fm(16)374 1375 y(1.4.7)44 b(Keyb)q(oard)15
-b(Macros)6 b Fd(.)h(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)21
-b Fm(17)374 1430 y(1.4.8)44 b(Some)15 b(Miscellaneous)i(Commands)7
-b Fd(.)g(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-22 b Fm(17)224 1485 y(1.5)45 b(Readline)16 b(vi)g(Mo)q(de)e
-Fd(.)7 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)f(.)h(.)28 b Fm(18)p eop
-%%Page: -2 24
--2 23 bop 75 -58 a Fm(ii)1321 b(GNU)15 b(Readline)h(Library)p
-eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/zlib-1.1.4/ChangeLog b/zlib-1.1.4/ChangeLog
deleted file mode 100644
index bf2e3f9..0000000
--- a/zlib-1.1.4/ChangeLog
+++ /dev/null
@@ -1,481 +0,0 @@
-
- ChangeLog file for zlib
-
-Changes in 1.1.4 (11 March 2002)
-- ZFREE was repeated on same allocation on some error conditions.
- This creates a security problem described in
- http://www.zlib.org/advisory-2002-03-11.txt
-- Returned incorrect error (Z_MEM_ERROR) on some invalid data
-- Avoid accesses before window for invalid distances with inflate window
- less than 32K.
-- force windowBits > 8 to avoid a bug in the encoder for a window size
- of 256 bytes. (A complete fix will be available in 1.1.5).
-
-Changes in 1.1.3 (9 July 1998)
-- fix "an inflate input buffer bug that shows up on rare but persistent
- occasions" (Mark)
-- fix gzread and gztell for concatenated .gz files (Didier Le Botlan)
-- fix gzseek(..., SEEK_SET) in write mode
-- fix crc check after a gzeek (Frank Faubert)
-- fix miniunzip when the last entry in a zip file is itself a zip file
- (J Lillge)
-- add contrib/asm586 and contrib/asm686 (Brian Raiter)
- See http://www.muppetlabs.com/~breadbox/software/assembly.html
-- add support for Delphi 3 in contrib/delphi (Bob Dellaca)
-- add support for C++Builder 3 and Delphi 3 in contrib/delphi2 (Davide Moretti)
-- do not exit prematurely in untgz if 0 at start of block (Magnus Holmgren)
-- use macro EXTERN instead of extern to support DLL for BeOS (Sander Stoks)
-- added a FAQ file
-
-- Support gzdopen on Mac with Metrowerks (Jason Linhart)
-- Do not redefine Byte on Mac (Brad Pettit & Jason Linhart)
-- define SEEK_END too if SEEK_SET is not defined (Albert Chin-A-Young)
-- avoid some warnings with Borland C (Tom Tanner)
-- fix a problem in contrib/minizip/zip.c for 16-bit MSDOS (Gilles Vollant)
-- emulate utime() for WIN32 in contrib/untgz (Gilles Vollant)
-- allow several arguments to configure (Tim Mooney, Frodo Looijaard)
-- use libdir and includedir in Makefile.in (Tim Mooney)
-- support shared libraries on OSF1 V4 (Tim Mooney)
-- remove so_locations in "make clean" (Tim Mooney)
-- fix maketree.c compilation error (Glenn, Mark)
-- Python interface to zlib now in Python 1.5 (Jeremy Hylton)
-- new Makefile.riscos (Rich Walker)
-- initialize static descriptors in trees.c for embedded targets (Nick Smith)
-- use "foo-gz" in example.c for RISCOS and VMS (Nick Smith)
-- add the OS/2 files in Makefile.in too (Andrew Zabolotny)
-- fix fdopen and halloc macros for Microsoft C 6.0 (Tom Lane)
-- fix maketree.c to allow clean compilation of inffixed.h (Mark)
-- fix parameter check in deflateCopy (Gunther Nikl)
-- cleanup trees.c, use compressed_len only in debug mode (Christian Spieler)
-- Many portability patches by Christian Spieler:
- . zutil.c, zutil.h: added "const" for zmem*
- . Make_vms.com: fixed some typos
- . Make_vms.com: msdos/Makefile.*: removed zutil.h from some dependency lists
- . msdos/Makefile.msc: remove "default rtl link library" info from obj files
- . msdos/Makefile.*: use model-dependent name for the built zlib library
- . msdos/Makefile.emx, nt/Makefile.emx, nt/Makefile.gcc:
- new makefiles, for emx (DOS/OS2), emx&rsxnt and mingw32 (Windows 9x / NT)
-- use define instead of typedef for Bytef also for MSC small/medium (Tom Lane)
-- replace __far with _far for better portability (Christian Spieler, Tom Lane)
-- fix test for errno.h in configure (Tim Newsham)
-
-Changes in 1.1.2 (19 March 98)
-- added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant)
- See http://www.winimage.com/zLibDll/unzip.html
-- preinitialize the inflate tables for fixed codes, to make the code
- completely thread safe (Mark)
-- some simplifications and slight speed-up to the inflate code (Mark)
-- fix gzeof on non-compressed files (Allan Schrum)
-- add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs)
-- use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn)
-- added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny)
-- add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori)
-- do not wrap extern "C" around system includes (Tom Lane)
-- mention zlib binding for TCL in README (Andreas Kupries)
-- added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert)
-- allow "make install prefix=..." even after configure (Glenn Randers-Pehrson)
-- allow "configure --prefix $HOME" (Tim Mooney)
-- remove warnings in example.c and gzio.c (Glenn Randers-Pehrson)
-- move Makefile.sas to amiga/Makefile.sas
-
-Changes in 1.1.1 (27 Feb 98)
-- fix macros _tr_tally_* in deflate.h for debug mode (Glenn Randers-Pehrson)
-- remove block truncation heuristic which had very marginal effect for zlib
- (smaller lit_bufsize than in gzip 1.2.4) and degraded a little the
- compression ratio on some files. This also allows inlining _tr_tally for
- matches in deflate_slow.
-- added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier)
-
-Changes in 1.1.0 (24 Feb 98)
-- do not return STREAM_END prematurely in inflate (John Bowler)
-- revert to the zlib 1.0.8 inflate to avoid the gcc 2.8.0 bug (Jeremy Buhler)
-- compile with -DFASTEST to get compression code optimized for speed only
-- in minigzip, try mmap'ing the input file first (Miguel Albrecht)
-- increase size of I/O buffers in minigzip.c and gzio.c (not a big gain
- on Sun but significant on HP)
-
-- add a pointer to experimental unzip library in README (Gilles Vollant)
-- initialize variable gcc in configure (Chris Herborth)
-
-Changes in 1.0.9 (17 Feb 1998)
-- added gzputs and gzgets functions
-- do not clear eof flag in gzseek (Mark Diekhans)
-- fix gzseek for files in transparent mode (Mark Diekhans)
-- do not assume that vsprintf returns the number of bytes written (Jens Krinke)
-- replace EXPORT with ZEXPORT to avoid conflict with other programs
-- added compress2 in zconf.h, zlib.def, zlib.dnt
-- new asm code from Gilles Vollant in contrib/asm386
-- simplify the inflate code (Mark):
- . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new()
- . ZALLOC the length list in inflate_trees_fixed() instead of using stack
- . ZALLOC the value area for huft_build() instead of using stack
- . Simplify Z_FINISH check in inflate()
-
-- Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8
-- in inftrees.c, avoid cc -O bug on HP (Farshid Elahi)
-- in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with
- the declaration of FAR (Gilles VOllant)
-- install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann)
-- read_buf buf parameter of type Bytef* instead of charf*
-- zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout)
-- do not redeclare unlink in minigzip.c for WIN32 (John Bowler)
-- fix check for presence of directories in "make install" (Ian Willis)
-
-Changes in 1.0.8 (27 Jan 1998)
-- fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant)
-- fix gzgetc and gzputc for big endian systems (Markus Oberhumer)
-- added compress2() to allow setting the compression level
-- include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong)
-- use constant arrays for the static trees in trees.c instead of computing
- them at run time (thanks to Ken Raeburn for this suggestion). To create
- trees.h, compile with GEN_TREES_H and run "make test".
-- check return code of example in "make test" and display result
-- pass minigzip command line options to file_compress
-- simplifying code of inflateSync to avoid gcc 2.8 bug
-
-- support CC="gcc -Wall" in configure -s (QingLong)
-- avoid a flush caused by ftell in gzopen for write mode (Ken Raeburn)
-- fix test for shared library support to avoid compiler warnings
-- zlib.lib -> zlib.dll in msdos/zlib.rc (Gilles Vollant)
-- check for TARGET_OS_MAC in addition to MACOS (Brad Pettit)
-- do not use fdopen for Metrowerks on Mac (Brad Pettit))
-- add checks for gzputc and gzputc in example.c
-- avoid warnings in gzio.c and deflate.c (Andreas Kleinert)
-- use const for the CRC table (Ken Raeburn)
-- fixed "make uninstall" for shared libraries
-- use Tracev instead of Trace in infblock.c
-- in example.c use correct compressed length for test_sync
-- suppress +vnocompatwarnings in configure for HPUX (not always supported)
-
-Changes in 1.0.7 (20 Jan 1998)
-- fix gzseek which was broken in write mode
-- return error for gzseek to negative absolute position
-- fix configure for Linux (Chun-Chung Chen)
-- increase stack space for MSC (Tim Wegner)
-- get_crc_table and inflateSyncPoint are EXPORTed (Gilles Vollant)
-- define EXPORTVA for gzprintf (Gilles Vollant)
-- added man page zlib.3 (Rick Rodgers)
-- for contrib/untgz, fix makedir() and improve Makefile
-
-- check gzseek in write mode in example.c
-- allocate extra buffer for seeks only if gzseek is actually called
-- avoid signed/unsigned comparisons (Tim Wegner, Gilles Vollant)
-- add inflateSyncPoint in zconf.h
-- fix list of exported functions in nt/zlib.dnt and mdsos/zlib.def
-
-Changes in 1.0.6 (19 Jan 1998)
-- add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and
- gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code)
-- Fix a deflate bug occuring only with compression level 0 (thanks to
- Andy Buckler for finding this one).
-- In minigzip, pass transparently also the first byte for .Z files.
-- return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress()
-- check Z_FINISH in inflate (thanks to Marc Schluper)
-- Implement deflateCopy (thanks to Adam Costello)
-- make static libraries by default in configure, add --shared option.
-- move MSDOS or Windows specific files to directory msdos
-- suppress the notion of partial flush to simplify the interface
- (but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4)
-- suppress history buffer provided by application to simplify the interface
- (this feature was not implemented anyway in 1.0.4)
-- next_in and avail_in must be initialized before calling inflateInit or
- inflateInit2
-- add EXPORT in all exported functions (for Windows DLL)
-- added Makefile.nt (thanks to Stephen Williams)
-- added the unsupported "contrib" directory:
- contrib/asm386/ by Gilles Vollant <info@winimage.com>
- 386 asm code replacing longest_match().
- contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
- A C++ I/O streams interface to the zlib gz* functions
- contrib/iostream2/ by Tyge Løvset <Tyge.Lovset@cmr.no>
- Another C++ I/O streams interface
- contrib/untgz/ by "Pedro A. Aranda Guti\irrez" <paag@tid.es>
- A very simple tar.gz file extractor using zlib
- contrib/visual-basic.txt by Carlos Rios <c_rios@sonda.cl>
- How to use compress(), uncompress() and the gz* functions from VB.
-- pass params -f (filtered data), -h (huffman only), -1 to -9 (compression
- level) in minigzip (thanks to Tom Lane)
-
-- use const for rommable constants in deflate
-- added test for gzseek and gztell in example.c
-- add undocumented function inflateSyncPoint() (hack for Paul Mackerras)
-- add undocumented function zError to convert error code to string
- (for Tim Smithers)
-- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code.
-- Use default memcpy for Symantec MSDOS compiler.
-- Add EXPORT keyword for check_func (needed for Windows DLL)
-- add current directory to LD_LIBRARY_PATH for "make test"
-- create also a link for libz.so.1
-- added support for FUJITSU UXP/DS (thanks to Toshiaki Nomura)
-- use $(SHAREDLIB) instead of libz.so in Makefile.in (for HPUX)
-- added -soname for Linux in configure (Chun-Chung Chen,
-- assign numbers to the exported functions in zlib.def (for Windows DLL)
-- add advice in zlib.h for best usage of deflateSetDictionary
-- work around compiler bug on Atari (cast Z_NULL in call of s->checkfn)
-- allow compilation with ANSI keywords only enabled for TurboC in large model
-- avoid "versionString"[0] (Borland bug)
-- add NEED_DUMMY_RETURN for Borland
-- use variable z_verbose for tracing in debug mode (L. Peter Deutsch).
-- allow compilation with CC
-- defined STDC for OS/2 (David Charlap)
-- limit external names to 8 chars for MVS (Thomas Lund)
-- in minigzip.c, use static buffers only for 16-bit systems
-- fix suffix check for "minigzip -d foo.gz"
-- do not return an error for the 2nd of two consecutive gzflush() (Felix Lee)
-- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau)
-- added makelcc.bat for lcc-win32 (Tom St Denis)
-- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe)
-- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion.
-- check for unistd.h in configure (for off_t)
-- remove useless check parameter in inflate_blocks_free
-- avoid useless assignment of s->check to itself in inflate_blocks_new
-- do not flush twice in gzclose (thanks to Ken Raeburn)
-- rename FOPEN as F_OPEN to avoid clash with /usr/include/sys/file.h
-- use NO_ERRNO_H instead of enumeration of operating systems with errno.h
-- work around buggy fclose on pipes for HP/UX
-- support zlib DLL with BORLAND C++ 5.0 (thanks to Glenn Randers-Pehrson)
-- fix configure if CC is already equal to gcc
-
-Changes in 1.0.5 (3 Jan 98)
-- Fix inflate to terminate gracefully when fed corrupted or invalid data
-- Use const for rommable constants in inflate
-- Eliminate memory leaks on error conditions in inflate
-- Removed some vestigial code in inflate
-- Update web address in README
-
-Changes in 1.0.4 (24 Jul 96)
-- In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF
- bit, so the decompressor could decompress all the correct data but went
- on to attempt decompressing extra garbage data. This affected minigzip too.
-- zlibVersion and gzerror return const char* (needed for DLL)
-- port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno)
-- use z_error only for DEBUG (avoid problem with DLLs)
-
-Changes in 1.0.3 (2 Jul 96)
-- use z_streamp instead of z_stream *, which is now a far pointer in MSDOS
- small and medium models; this makes the library incompatible with previous
- versions for these models. (No effect in large model or on other systems.)
-- return OK instead of BUF_ERROR if previous deflate call returned with
- avail_out as zero but there is nothing to do
-- added memcmp for non STDC compilers
-- define NO_DUMMY_DECL for more Mac compilers (.h files merged incorrectly)
-- define __32BIT__ if __386__ or i386 is defined (pb. with Watcom and SCO)
-- better check for 16-bit mode MSC (avoids problem with Symantec)
-
-Changes in 1.0.2 (23 May 96)
-- added Windows DLL support
-- added a function zlibVersion (for the DLL support)
-- fixed declarations using Bytef in infutil.c (pb with MSDOS medium model)
-- Bytef is define's instead of typedef'd only for Borland C
-- avoid reading uninitialized memory in example.c
-- mention in README that the zlib format is now RFC1950
-- updated Makefile.dj2
-- added algorithm.doc
-
-Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion]
-- fix array overlay in deflate.c which sometimes caused bad compressed data
-- fix inflate bug with empty stored block
-- fix MSDOS medium model which was broken in 0.99
-- fix deflateParams() which could generated bad compressed data.
-- Bytef is define'd instead of typedef'ed (work around Borland bug)
-- added an INDEX file
-- new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32),
- Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas)
-- speed up adler32 for modern machines without auto-increment
-- added -ansi for IRIX in configure
-- static_init_done in trees.c is an int
-- define unlink as delete for VMS
-- fix configure for QNX
-- add configure branch for SCO and HPUX
-- avoid many warnings (unused variables, dead assignments, etc...)
-- no fdopen for BeOS
-- fix the Watcom fix for 32 bit mode (define FAR as empty)
-- removed redefinition of Byte for MKWERKS
-- work around an MWKERKS bug (incorrect merge of all .h files)
-
-Changes in 0.99 (27 Jan 96)
-- allow preset dictionary shared between compressor and decompressor
-- allow compression level 0 (no compression)
-- add deflateParams in zlib.h: allow dynamic change of compression level
- and compression strategy.
-- test large buffers and deflateParams in example.c
-- add optional "configure" to build zlib as a shared library
-- suppress Makefile.qnx, use configure instead
-- fixed deflate for 64-bit systems (detected on Cray)
-- fixed inflate_blocks for 64-bit systems (detected on Alpha)
-- declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2)
-- always return Z_BUF_ERROR when deflate() has nothing to do
-- deflateInit and inflateInit are now macros to allow version checking
-- prefix all global functions and types with z_ with -DZ_PREFIX
-- make falloc completely reentrant (inftrees.c)
-- fixed very unlikely race condition in ct_static_init
-- free in reverse order of allocation to help memory manager
-- use zlib-1.0/* instead of zlib/* inside the tar.gz
-- make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith
- -Wconversion -Wstrict-prototypes -Wmissing-prototypes"
-- allow gzread on concatenated .gz files
-- deflateEnd now returns Z_DATA_ERROR if it was premature
-- deflate is finally (?) fully deterministic (no matches beyond end of input)
-- Document Z_SYNC_FLUSH
-- add uninstall in Makefile
-- Check for __cpluplus in zlib.h
-- Better test in ct_align for partial flush
-- avoid harmless warnings for Borland C++
-- initialize hash_head in deflate.c
-- avoid warning on fdopen (gzio.c) for HP cc -Aa
-- include stdlib.h for STDC compilers
-- include errno.h for Cray
-- ignore error if ranlib doesn't exist
-- call ranlib twice for NeXTSTEP
-- use exec_prefix instead of prefix for libz.a
-- renamed ct_* as _tr_* to avoid conflict with applications
-- clear z->msg in inflateInit2 before any error return
-- initialize opaque in example.c, gzio.c, deflate.c and inflate.c
-- fixed typo in zconf.h (_GNUC__ => __GNUC__)
-- check for WIN32 in zconf.h and zutil.c (avoid farmalloc in 32-bit mode)
-- fix typo in Make_vms.com (f$trnlnm -> f$getsyi)
-- in fcalloc, normalize pointer if size > 65520 bytes
-- don't use special fcalloc for 32 bit Borland C++
-- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc...
-- use Z_BINARY instead of BINARY
-- document that gzclose after gzdopen will close the file
-- allow "a" as mode in gzopen.
-- fix error checking in gzread
-- allow skipping .gz extra-field on pipes
-- added reference to Perl interface in README
-- put the crc table in FAR data (I dislike more and more the medium model :)
-- added get_crc_table
-- added a dimension to all arrays (Borland C can't count).
-- workaround Borland C bug in declaration of inflate_codes_new & inflate_fast
-- guard against multiple inclusion of *.h (for precompiled header on Mac)
-- Watcom C pretends to be Microsoft C small model even in 32 bit mode.
-- don't use unsized arrays to avoid silly warnings by Visual C++:
- warning C4746: 'inflate_mask' : unsized array treated as '__far'
- (what's wrong with far data in far model?).
-- define enum out of inflate_blocks_state to allow compilation with C++
-
-Changes in 0.95 (16 Aug 95)
-- fix MSDOS small and medium model (now easier to adapt to any compiler)
-- inlined send_bits
-- fix the final (:-) bug for deflate with flush (output was correct but
- not completely flushed in rare occasions).
-- default window size is same for compression and decompression
- (it's now sufficient to set MAX_WBITS in zconf.h).
-- voidp -> voidpf and voidnp -> voidp (for consistency with other
- typedefs and because voidnp was not near in large model).
-
-Changes in 0.94 (13 Aug 95)
-- support MSDOS medium model
-- fix deflate with flush (could sometimes generate bad output)
-- fix deflateReset (zlib header was incorrectly suppressed)
-- added support for VMS
-- allow a compression level in gzopen()
-- gzflush now calls fflush
-- For deflate with flush, flush even if no more input is provided.
-- rename libgz.a as libz.a
-- avoid complex expression in infcodes.c triggering Turbo C bug
-- work around a problem with gcc on Alpha (in INSERT_STRING)
-- don't use inline functions (problem with some gcc versions)
-- allow renaming of Byte, uInt, etc... with #define.
-- avoid warning about (unused) pointer before start of array in deflate.c
-- avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c
-- avoid reserved word 'new' in trees.c
-
-Changes in 0.93 (25 June 95)
-- temporarily disable inline functions
-- make deflate deterministic
-- give enough lookahead for PARTIAL_FLUSH
-- Set binary mode for stdin/stdout in minigzip.c for OS/2
-- don't even use signed char in inflate (not portable enough)
-- fix inflate memory leak for segmented architectures
-
-Changes in 0.92 (3 May 95)
-- don't assume that char is signed (problem on SGI)
-- Clear bit buffer when starting a stored block
-- no memcpy on Pyramid
-- suppressed inftest.c
-- optimized fill_window, put longest_match inline for gcc
-- optimized inflate on stored blocks.
-- untabify all sources to simplify patches
-
-Changes in 0.91 (2 May 95)
-- Default MEM_LEVEL is 8 (not 9 for Unix) as documented in zlib.h
-- Document the memory requirements in zconf.h
-- added "make install"
-- fix sync search logic in inflateSync
-- deflate(Z_FULL_FLUSH) now works even if output buffer too short
-- after inflateSync, don't scare people with just "lo world"
-- added support for DJGPP
-
-Changes in 0.9 (1 May 95)
-- don't assume that zalloc clears the allocated memory (the TurboC bug
- was Mark's bug after all :)
-- let again gzread copy uncompressed data unchanged (was working in 0.71)
-- deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented
-- added a test of inflateSync in example.c
-- moved MAX_WBITS to zconf.h because users might want to change that.
-- document explicitly that zalloc(64K) on MSDOS must return a normalized
- pointer (zero offset)
-- added Makefiles for Microsoft C, Turbo C, Borland C++
-- faster crc32()
-
-Changes in 0.8 (29 April 95)
-- added fast inflate (inffast.c)
-- deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this
- is incompatible with previous versions of zlib which returned Z_OK.
-- work around a TurboC compiler bug (bad code for b << 0, see infutil.h)
- (actually that was not a compiler bug, see 0.81 above)
-- gzread no longer reads one extra byte in certain cases
-- In gzio destroy(), don't reference a freed structure
-- avoid many warnings for MSDOS
-- avoid the ERROR symbol which is used by MS Windows
-
-Changes in 0.71 (14 April 95)
-- Fixed more MSDOS compilation problems :( There is still a bug with
- TurboC large model.
-
-Changes in 0.7 (14 April 95)
-- Added full inflate support.
-- Simplified the crc32() interface. The pre- and post-conditioning
- (one's complement) is now done inside crc32(). WARNING: this is
- incompatible with previous versions; see zlib.h for the new usage.
-
-Changes in 0.61 (12 April 95)
-- workaround for a bug in TurboC. example and minigzip now work on MSDOS.
-
-Changes in 0.6 (11 April 95)
-- added minigzip.c
-- added gzdopen to reopen a file descriptor as gzFile
-- added transparent reading of non-gziped files in gzread.
-- fixed bug in gzread (don't read crc as data)
-- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose).
-- don't allocate big arrays in the stack (for MSDOS)
-- fix some MSDOS compilation problems
-
-Changes in 0.5:
-- do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but
- not yet Z_FULL_FLUSH.
-- support decompression but only in a single step (forced Z_FINISH)
-- added opaque object for zalloc and zfree.
-- added deflateReset and inflateReset
-- added a variable zlib_version for consistency checking.
-- renamed the 'filter' parameter of deflateInit2 as 'strategy'.
- Added Z_FILTERED and Z_HUFFMAN_ONLY constants.
-
-Changes in 0.4:
-- avoid "zip" everywhere, use zlib instead of ziplib.
-- suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush
- if compression method == 8.
-- added adler32 and crc32
-- renamed deflateOptions as deflateInit2, call one or the other but not both
-- added the method parameter for deflateInit2.
-- added inflateInit2
-- simplied considerably deflateInit and inflateInit by not supporting
- user-provided history buffer. This is supported only in deflateInit2
- and inflateInit2.
-
-Changes in 0.3:
-- prefix all macro names with Z_
-- use Z_FINISH instead of deflateEnd to finish compression.
-- added Z_HUFFMAN_ONLY
-- added gzerror()
diff --git a/zlib-1.1.4/FAQ b/zlib-1.1.4/FAQ
deleted file mode 100644
index 47a7d60..0000000
--- a/zlib-1.1.4/FAQ
+++ /dev/null
@@ -1,100 +0,0 @@
-
- Frequently Asked Questions about zlib
-
-
-If your question is not there, please check the zlib home page
-http://www.zlib.org which may have more recent information.
-The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html
-
-
- 1. Is zlib Y2K-compliant?
-
- Yes. zlib doesn't handle dates.
-
- 2. Where can I get a Windows DLL version?
-
- The zlib sources can be compiled without change to produce a DLL. If you
- want a precompiled DLL, see http://www.winimage.com/zLibDll/ . Questions
- about the zlib DLL should be sent to Gilles Vollant (info@winimage.com).
-
- 3. Where can I get a Visual Basic interface to zlib?
-
- See
- * http://www.winimage.com/zLibDll/cmp-z-it.zip
- * http://www.dogma.net/markn/articles/zlibtool/zlibtool.htm
- * contrib/visual-basic.txt in the zlib distribution
-
- 4. compress() returns Z_BUF_ERROR
-
- Make sure that before the call of compress, the length of the compressed
- buffer is equal to the total size of the compressed buffer and not
- zero. For Visual Basic, check that this parameter is passed by reference
- ("as any"), not by value ("as long").
-
- 5. deflate() or inflate() returns Z_BUF_ERROR
-
- Before making the call, make sure that avail_in and avail_out are not
- zero. When setting the parameter flush equal to Z_FINISH, also make sure
- that avail_out is big enough to allow processing all pending input.
-
- 6. Where's the zlib documentation (man pages, etc.)?
-
- It's in zlib.h for the moment, and Francis S. Lin has converted it to a
- web page zlib.html. Volunteers to transform this to Unix-style man pages,
- please contact Jean-loup Gailly (jloup@gzip.org). Examples of zlib usage
- are in the files example.c and minigzip.c.
-
- 7. Why don't you use GNU autoconf or libtool or ...?
-
- Because we would like to keep zlib as a very small and simple
- package. zlib is rather portable and doesn't need much configuration.
-
- 8. I found a bug in zlib.
-
- Most of the time, such problems are due to an incorrect usage of
- zlib. Please try to reproduce the problem with a small program and send
- the corresponding source to us at zlib@gzip.org . Do not send
- multi-megabyte data files without prior agreement.
-
- 9. Why do I get "undefined reference to gzputc"?
-
- If "make test" produces something like
-
- example.o(.text+0x154): undefined reference to `gzputc'
-
- check that you don't have old files libz.* in /usr/lib, /usr/local/lib or
- /usr/X11R6/lib. Remove any old versions, then do "make install".
-
-10. I need a Delphi interface to zlib.
-
- See the directories contrib/delphi and contrib/delphi2 in the zlib
- distribution.
-
-11. Can zlib handle .zip archives?
-
- See the directory contrib/minizip in the zlib distribution.
-
-12. Can zlib handle .Z files?
-
- No, sorry. You have to spawn an uncompress or gunzip subprocess, or adapt
- the code of uncompress on your own.
-
-13. How can I make a Unix shared library?
-
- make clean
- ./configure -s
- make
-
-14. Why does "make test" fail on Mac OS X?
-
- Mac OS X already includes zlib as a shared library, and so -lz links the
- shared library instead of the one that the "make" compiled. For zlib
- 1.1.3, the two are incompatible due to different compile-time
- options. Simply change the -lz in the Makefile to libz.a, and it will use
- the compiled library instead of the shared one and the "make test" will
- succeed.
-
-15. I have a question about OttoPDF
-
- We are not the authors of OttoPDF. The real author is on the OttoPDF web
- site Joel Hainley jhainley@myndkryme.com.
diff --git a/zlib-1.1.4/INDEX b/zlib-1.1.4/INDEX
deleted file mode 100644
index 8a24576..0000000
--- a/zlib-1.1.4/INDEX
+++ /dev/null
@@ -1,86 +0,0 @@
-ChangeLog history of changes
-INDEX this file
-FAQ Frequently Asked Questions about zlib
-Make_vms.com script for Vax/VMS
-Makefile makefile for Unix (generated by configure)
-Makefile.in makefile for Unix (template for configure)
-Makefile.riscos makefile for RISCOS
-README guess what
-algorithm.txt description of the (de)compression algorithm
-configure configure script for Unix
-descrip.mms makefile for Vax/VMS
-zlib.3 mini man page for zlib (volunteers to write full
- man pages from zlib.h welcome. write to jloup@gzip.org)
-
-amiga/Makefile.sas makefile for Amiga SAS/C
-amiga/Makefile.pup makefile for Amiga powerUP SAS/C PPC
-
-msdos/Makefile.w32 makefile for Microsoft Visual C++ 32-bit
-msdos/Makefile.b32 makefile for Borland C++ 32-bit
-msdos/Makefile.bor makefile for Borland C/C++ 16-bit
-msdos/Makefile.dj2 makefile for DJGPP 2.x
-msdos/Makefile.emx makefile for EMX 0.9c (32-bit DOS/OS2)
-msdos/Makefile.msc makefile for Microsoft C 16-bit
-msdos/Makefile.tc makefile for Turbo C
-msdos/Makefile.wat makefile for Watcom C
-msdos/zlib.def definition file for Windows DLL
-msdos/zlib.rc definition file for Windows DLL
-
-nt/Makefile.nt makefile for Windows NT
-nt/zlib.dnt definition file for Windows NT DLL
-nt/Makefile.emx makefile for EMX 0.9c/RSXNT 1.41 (Win32 Intel)
-nt/Makefile.gcc makefile for Windows NT using GCC (mingw32)
-
-
- zlib public header files (must be kept):
-zconf.h
-zlib.h
-
- private source files used to build the zlib library:
-adler32.c
-compress.c
-crc32.c
-deflate.c
-deflate.h
-gzio.c
-infblock.c
-infblock.h
-infcodes.c
-infcodes.h
-inffast.c
-inffast.h
-inflate.c
-inftrees.c
-inftrees.h
-infutil.c
-infutil.h
-maketree.c
-trees.c
-uncompr.c
-zutil.c
-zutil.h
-
- source files for sample programs:
-example.c
-minigzip.c
-
- unsupported contribution by third parties
-
-contrib/asm386/ by Gilles Vollant <info@winimage.com>
- 386 asm code replacing longest_match().
-
-contrib/minizip/ by Gilles Vollant <info@winimage.com>
- Mini zip and unzip based on zlib
- See http://www.winimage.com/zLibDll/unzip.html
-
-contrib/iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
- A C++ I/O streams interface to the zlib gz* functions
-
-contrib/iostream2/ by Tyge Løvset <Tyge.Lovset@cmr.no>
- Another C++ I/O streams interface
-
-contrib/untgz/ by "Pedro A. Aranda Guti\irrez" <paag@tid.es>
- A very simple tar.gz extractor using zlib
-
-contrib/visual-basic.txt by Carlos Rios <c_rios@sonda.cl>
- How to use compress(), uncompress() and the gz* functions from VB.
diff --git a/zlib-1.1.4/Make_vms.com b/zlib-1.1.4/Make_vms.com
deleted file mode 100644
index 1c57e8f..0000000
--- a/zlib-1.1.4/Make_vms.com
+++ /dev/null
@@ -1,115 +0,0 @@
-$! make libz under VMS
-$! written by Martin P.J. Zinser <m.zinser@gsi.de>
-$!
-$! Look for the compiler used
-$!
-$ ccopt = ""
-$ if f$getsyi("HW_MODEL").ge.1024
-$ then
-$ ccopt = "/prefix=all"+ccopt
-$ comp = "__decc__=1"
-$ if f$trnlnm("SYS").eqs."" then define sys sys$library:
-$ else
-$ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs.""
-$ then
-$ comp = "__vaxc__=1"
-$ if f$trnlnm("SYS").eqs."" then define sys sys$library:
-$ else
-$ if f$trnlnm("SYS").eqs."" then define sys decc$library_include:
-$ ccopt = "/decc/prefix=all"+ccopt
-$ comp = "__decc__=1"
-$ endif
-$ endif
-$!
-$! Build the thing plain or with mms
-$!
-$ write sys$output "Compiling Zlib sources ..."
-$ if f$search("SYS$SYSTEM:MMS.EXE").eqs.""
-$ then
-$ dele example.obj;*,minigzip.obj;*
-$ CALL MAKE adler32.OBJ "CC ''CCOPT' adler32" -
- adler32.c zlib.h zconf.h
-$ CALL MAKE compress.OBJ "CC ''CCOPT' compress" -
- compress.c zlib.h zconf.h
-$ CALL MAKE crc32.OBJ "CC ''CCOPT' crc32" -
- crc32.c zlib.h zconf.h
-$ CALL MAKE deflate.OBJ "CC ''CCOPT' deflate" -
- deflate.c deflate.h zutil.h zlib.h zconf.h
-$ CALL MAKE gzio.OBJ "CC ''CCOPT' gzio" -
- gzio.c zutil.h zlib.h zconf.h
-$ CALL MAKE infblock.OBJ "CC ''CCOPT' infblock" -
- infblock.c zutil.h zlib.h zconf.h infblock.h
-$ CALL MAKE infcodes.OBJ "CC ''CCOPT' infcodes" -
- infcodes.c zutil.h zlib.h zconf.h inftrees.h
-$ CALL MAKE inffast.OBJ "CC ''CCOPT' inffast" -
- inffast.c zutil.h zlib.h zconf.h inffast.h
-$ CALL MAKE inflate.OBJ "CC ''CCOPT' inflate" -
- inflate.c zutil.h zlib.h zconf.h infblock.h
-$ CALL MAKE inftrees.OBJ "CC ''CCOPT' inftrees" -
- inftrees.c zutil.h zlib.h zconf.h inftrees.h
-$ CALL MAKE infutil.OBJ "CC ''CCOPT' infutil" -
- infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h
-$ CALL MAKE trees.OBJ "CC ''CCOPT' trees" -
- trees.c deflate.h zutil.h zlib.h zconf.h
-$ CALL MAKE uncompr.OBJ "CC ''CCOPT' uncompr" -
- uncompr.c zlib.h zconf.h
-$ CALL MAKE zutil.OBJ "CC ''CCOPT' zutil" -
- zutil.c zutil.h zlib.h zconf.h
-$ write sys$output "Building Zlib ..."
-$ CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ
-$ write sys$output "Building example..."
-$ CALL MAKE example.OBJ "CC ''CCOPT' example" -
- example.c zlib.h zconf.h
-$ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb
-$ write sys$output "Building minigzip..."
-$ CALL MAKE minigzip.OBJ "CC ''CCOPT' minigzip" -
- minigzip.c zlib.h zconf.h
-$ call make minigzip.exe -
- "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" -
- minigzip.obj libz.olb
-$ else
-$ mms/macro=('comp')
-$ endif
-$ write sys$output "Zlib build completed"
-$ exit
-$!
-$!
-$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES
-$ V = 'F$Verify(0)
-$! P1 = What we are trying to make
-$! P2 = Command to make it
-$! P3 - P8 What it depends on
-$
-$ If F$Search(P1) .Eqs. "" Then Goto Makeit
-$ Time = F$CvTime(F$File(P1,"RDT"))
-$arg=3
-$Loop:
-$ Argument = P'arg
-$ If Argument .Eqs. "" Then Goto Exit
-$ El=0
-$Loop2:
-$ File = F$Element(El," ",Argument)
-$ If File .Eqs. " " Then Goto Endl
-$ AFile = ""
-$Loop3:
-$ OFile = AFile
-$ AFile = F$Search(File)
-$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl
-$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit
-$ Goto Loop3
-$NextEL:
-$ El = El + 1
-$ Goto Loop2
-$EndL:
-$ arg=arg+1
-$ If arg .Le. 8 Then Goto Loop
-$ Goto Exit
-$
-$Makeit:
-$ VV=F$VERIFY(0)
-$ write sys$output P2
-$ 'P2
-$ VV='F$Verify(VV)
-$Exit:
-$ If V Then Set Verify
-$ENDSUBROUTINE
diff --git a/zlib-1.1.4/Makefile b/zlib-1.1.4/Makefile
deleted file mode 100644
index 43cb757..0000000
--- a/zlib-1.1.4/Makefile
+++ /dev/null
@@ -1,175 +0,0 @@
-# Makefile for zlib
-# Copyright (C) 1995-2002 Jean-loup Gailly.
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile and test, type:
-# ./configure; make test
-# The call of configure is optional if you don't have special requirements
-# If you wish to build zlib as a shared library, use: ./configure -s
-
-# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
-# make install
-# To install in $HOME instead of /usr/local, use:
-# make install prefix=$HOME
-
-CC=m68k-rtems-gcc --pipe -B/opt/rtems/m68k-rtems/mvme167/lib/ -specs bsp_specs -qrtems -m68040
-
-CFLAGS=-O3 -DHAVE_UNISTD_H
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-g -DDEBUG
-#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
-# -Wstrict-prototypes -Wmissing-prototypes
-
-LDFLAGS=-L. -lz
-LDSHARED=m68k-rtems-gcc --pipe -B/opt/rtems/m68k-rtems/mvme167/lib/ -specs bsp_specs -qrtems -m68040
-CPP=m68k-rtems-gcc --pipe -B/opt/rtems/m68k-rtems/mvme167/lib/ -specs bsp_specs -qrtems -m68040 -E
-
-VER=1.1.4
-LIBS=libz.a
-SHAREDLIB=libz.so
-
-AR=m68k-rtems-ar cr
-RANLIB=m68k-rtems-ranlib
-TAR=tar
-SHELL=/bin/sh
-
-prefix =/opt/rtems/m68k-rtems
-exec_prefix =${prefix}
-libdir =/opt/rtems/m68k-rtems/mvme167/lib
-includedir =/opt/rtems/m68k-rtems/mvme167/lib/include
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-OBJA =
-# to use the asm code: make OBJA=match.o
-
-TEST_OBJS = example.o minigzip.o
-
-DISTFILES = README FAQ INDEX ChangeLog configure Make*[a-z0-9] *.[ch] *.mms \
- algorithm.txt zlib.3 zlib.html \
- msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \
- nt/Make*[a-z0-9] nt/zlib.dnt amiga/Make*.??? os2/M*.os2 os2/zlib.def \
- contrib/RE*.contrib contrib/*.txt contrib/asm386/*.asm contrib/asm386/*.c \
- contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/asm[56]86/*.?86 \
- contrib/asm[56]86/*.S contrib/iostream/*.cpp \
- contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \
- contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 \
- contrib/minizip/[CM]*[pe] contrib/minizip/*.[ch] contrib/minizip/*.[td]?? \
- contrib/delphi*/*.???
-
-all: example minigzip
-
-test: all
- @LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
- echo hello world | ./minigzip | ./minigzip -d || \
- echo ' *** minigzip test FAILED ***' ; \
- if ./example; then \
- echo ' *** zlib test OK ***'; \
- else \
- echo ' *** zlib test FAILED ***'; \
- fi
-
-libz.a: $(OBJS) $(OBJA)
- $(AR) $@ $(OBJS) $(OBJA)
- -@ ($(RANLIB) $@ || true) >/dev/null 2>&1
-
-match.o: match.S
- $(CPP) match.S > _match.s
- $(CC) -c _match.s
- mv _match.o match.o
- rm -f _match.s
-
-$(SHAREDLIB).$(VER): $(OBJS)
- $(LDSHARED) -o $@ $(OBJS)
- rm -f $(SHAREDLIB) $(SHAREDLIB).1
- ln -s $@ $(SHAREDLIB)
- ln -s $@ $(SHAREDLIB).1
-
-example: example.o $(LIBS)
- $(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS)
-
-minigzip: minigzip.o $(LIBS)
- $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS)
-
-install: $(LIBS)
- -@if [ ! -d $(includedir) ]; then mkdir $(includedir); fi
- -@if [ ! -d $(libdir) ]; then mkdir $(libdir); fi
- cp zlib.h zconf.h $(includedir)
- chmod 644 $(includedir)/zlib.h $(includedir)/zconf.h
- cp $(LIBS) $(libdir)
- cd $(libdir); chmod 755 $(LIBS)
- -@(cd $(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
- cd $(libdir); if test -f $(SHAREDLIB).$(VER); then \
- rm -f $(SHAREDLIB) $(SHAREDLIB).1; \
- ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB); \
- ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB).1; \
- (ldconfig || true) >/dev/null 2>&1; \
- fi
-# The ranlib in install is needed on NeXTSTEP which checks file times
-# ldconfig is for Linux
-
-uninstall:
- cd $(includedir); \
- v=$(VER); \
- if test -f zlib.h; then \
- v=`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`; \
- rm -f zlib.h zconf.h; \
- fi; \
- cd $(libdir); rm -f libz.a; \
- if test -f $(SHAREDLIB).$$v; then \
- rm -f $(SHAREDLIB).$$v $(SHAREDLIB) $(SHAREDLIB).1; \
- fi
-
-clean:
- rm -f *.o *~ example minigzip libz.a libz.so* foo.gz so_locations \
- _match.s maketree
-
-distclean: clean
-
-zip:
- mv Makefile Makefile~; cp -p Makefile.in Makefile
- rm -f test.c ztest*.c contrib/minizip/test.zip
- v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
- zip -ul9 zlib$$v $(DISTFILES)
- mv Makefile~ Makefile
-
-dist:
- mv Makefile Makefile~; cp -p Makefile.in Makefile
- rm -f test.c ztest*.c contrib/minizip/test.zip
- d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
- rm -f $$d.tar.gz; \
- if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \
- files=""; \
- for f in $(DISTFILES); do files="$$files $$d/$$f"; done; \
- cd ..; \
- GZIP=-9 $(TAR) chofz $$d/$$d.tar.gz $$files; \
- if test ! -d $$d; then rm -f $$d; fi
- mv Makefile~ Makefile
-
-tags:
- etags *.[ch]
-
-depend:
- makedepend -- $(CFLAGS) -- *.[ch]
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
-
-adler32.o: zlib.h zconf.h
-compress.o: zlib.h zconf.h
-crc32.o: zlib.h zconf.h
-deflate.o: deflate.h zutil.h zlib.h zconf.h
-example.o: zlib.h zconf.h
-gzio.o: zutil.h zlib.h zconf.h
-infblock.o: infblock.h inftrees.h infcodes.h infutil.h zutil.h zlib.h zconf.h
-infcodes.o: zutil.h zlib.h zconf.h
-infcodes.o: inftrees.h infblock.h infcodes.h infutil.h inffast.h
-inffast.o: zutil.h zlib.h zconf.h inftrees.h
-inffast.o: infblock.h infcodes.h infutil.h inffast.h
-inflate.o: zutil.h zlib.h zconf.h infblock.h
-inftrees.o: zutil.h zlib.h zconf.h inftrees.h
-infutil.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
-minigzip.o: zlib.h zconf.h
-trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
-uncompr.o: zlib.h zconf.h
-zutil.o: zutil.h zlib.h zconf.h
diff --git a/zlib-1.1.4/Makefile.in b/zlib-1.1.4/Makefile.in
deleted file mode 100644
index 531562b..0000000
--- a/zlib-1.1.4/Makefile.in
+++ /dev/null
@@ -1,175 +0,0 @@
-# Makefile for zlib
-# Copyright (C) 1995-2002 Jean-loup Gailly.
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile and test, type:
-# ./configure; make test
-# The call of configure is optional if you don't have special requirements
-# If you wish to build zlib as a shared library, use: ./configure -s
-
-# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
-# make install
-# To install in $HOME instead of /usr/local, use:
-# make install prefix=$HOME
-
-CC=cc
-
-CFLAGS=-O
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-g -DDEBUG
-#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
-# -Wstrict-prototypes -Wmissing-prototypes
-
-LDFLAGS=-L. -lz
-LDSHARED=$(CC)
-CPP=$(CC) -E
-
-VER=1.1.4
-LIBS=libz.a
-SHAREDLIB=libz.so
-
-AR=ar rc
-RANLIB=ranlib
-TAR=tar
-SHELL=/bin/sh
-
-prefix = /usr/local
-exec_prefix = ${prefix}
-libdir = ${exec_prefix}/lib
-includedir = ${prefix}/include
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-OBJA =
-# to use the asm code: make OBJA=match.o
-
-TEST_OBJS = example.o minigzip.o
-
-DISTFILES = README FAQ INDEX ChangeLog configure Make*[a-z0-9] *.[ch] *.mms \
- algorithm.txt zlib.3 zlib.html \
- msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \
- nt/Make*[a-z0-9] nt/zlib.dnt amiga/Make*.??? os2/M*.os2 os2/zlib.def \
- contrib/RE*.contrib contrib/*.txt contrib/asm386/*.asm contrib/asm386/*.c \
- contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/asm[56]86/*.?86 \
- contrib/asm[56]86/*.S contrib/iostream/*.cpp \
- contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \
- contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 \
- contrib/minizip/[CM]*[pe] contrib/minizip/*.[ch] contrib/minizip/*.[td]?? \
- contrib/delphi*/*.???
-
-all: example minigzip
-
-test: all
- @LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
- echo hello world | ./minigzip | ./minigzip -d || \
- echo ' *** minigzip test FAILED ***' ; \
- if ./example; then \
- echo ' *** zlib test OK ***'; \
- else \
- echo ' *** zlib test FAILED ***'; \
- fi
-
-libz.a: $(OBJS) $(OBJA)
- $(AR) $@ $(OBJS) $(OBJA)
- -@ ($(RANLIB) $@ || true) >/dev/null 2>&1
-
-match.o: match.S
- $(CPP) match.S > _match.s
- $(CC) -c _match.s
- mv _match.o match.o
- rm -f _match.s
-
-$(SHAREDLIB).$(VER): $(OBJS)
- $(LDSHARED) -o $@ $(OBJS)
- rm -f $(SHAREDLIB) $(SHAREDLIB).1
- ln -s $@ $(SHAREDLIB)
- ln -s $@ $(SHAREDLIB).1
-
-example: example.o $(LIBS)
- $(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS)
-
-minigzip: minigzip.o $(LIBS)
- $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS)
-
-install: $(LIBS)
- -@if [ ! -d $(includedir) ]; then mkdir $(includedir); fi
- -@if [ ! -d $(libdir) ]; then mkdir $(libdir); fi
- cp zlib.h zconf.h $(includedir)
- chmod 644 $(includedir)/zlib.h $(includedir)/zconf.h
- cp $(LIBS) $(libdir)
- cd $(libdir); chmod 755 $(LIBS)
- -@(cd $(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1
- cd $(libdir); if test -f $(SHAREDLIB).$(VER); then \
- rm -f $(SHAREDLIB) $(SHAREDLIB).1; \
- ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB); \
- ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB).1; \
- (ldconfig || true) >/dev/null 2>&1; \
- fi
-# The ranlib in install is needed on NeXTSTEP which checks file times
-# ldconfig is for Linux
-
-uninstall:
- cd $(includedir); \
- v=$(VER); \
- if test -f zlib.h; then \
- v=`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`; \
- rm -f zlib.h zconf.h; \
- fi; \
- cd $(libdir); rm -f libz.a; \
- if test -f $(SHAREDLIB).$$v; then \
- rm -f $(SHAREDLIB).$$v $(SHAREDLIB) $(SHAREDLIB).1; \
- fi
-
-clean:
- rm -f *.o *~ example minigzip libz.a libz.so* foo.gz so_locations \
- _match.s maketree
-
-distclean: clean
-
-zip:
- mv Makefile Makefile~; cp -p Makefile.in Makefile
- rm -f test.c ztest*.c contrib/minizip/test.zip
- v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
- zip -ul9 zlib$$v $(DISTFILES)
- mv Makefile~ Makefile
-
-dist:
- mv Makefile Makefile~; cp -p Makefile.in Makefile
- rm -f test.c ztest*.c contrib/minizip/test.zip
- d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
- rm -f $$d.tar.gz; \
- if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \
- files=""; \
- for f in $(DISTFILES); do files="$$files $$d/$$f"; done; \
- cd ..; \
- GZIP=-9 $(TAR) chofz $$d/$$d.tar.gz $$files; \
- if test ! -d $$d; then rm -f $$d; fi
- mv Makefile~ Makefile
-
-tags:
- etags *.[ch]
-
-depend:
- makedepend -- $(CFLAGS) -- *.[ch]
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
-
-adler32.o: zlib.h zconf.h
-compress.o: zlib.h zconf.h
-crc32.o: zlib.h zconf.h
-deflate.o: deflate.h zutil.h zlib.h zconf.h
-example.o: zlib.h zconf.h
-gzio.o: zutil.h zlib.h zconf.h
-infblock.o: infblock.h inftrees.h infcodes.h infutil.h zutil.h zlib.h zconf.h
-infcodes.o: zutil.h zlib.h zconf.h
-infcodes.o: inftrees.h infblock.h infcodes.h infutil.h inffast.h
-inffast.o: zutil.h zlib.h zconf.h inftrees.h
-inffast.o: infblock.h infcodes.h infutil.h inffast.h
-inflate.o: zutil.h zlib.h zconf.h infblock.h
-inftrees.o: zutil.h zlib.h zconf.h inftrees.h
-infutil.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
-minigzip.o: zlib.h zconf.h
-trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
-uncompr.o: zlib.h zconf.h
-zutil.o: zutil.h zlib.h zconf.h
diff --git a/zlib-1.1.4/Makefile.riscos b/zlib-1.1.4/Makefile.riscos
deleted file mode 100644
index d97f449..0000000
--- a/zlib-1.1.4/Makefile.riscos
+++ /dev/null
@@ -1,151 +0,0 @@
-# Project: zlib_1_03
-# Patched for zlib 1.1.2 rw@shadow.org.uk 19980430
-# test works out-of-the-box, installs `somewhere' on demand
-
-# Toolflags:
-CCflags = -c -depend !Depend -IC: -g -throwback -DRISCOS -fah
-C++flags = -c -depend !Depend -IC: -throwback
-Linkflags = -aif -c++ -o $@
-ObjAsmflags = -throwback -NoCache -depend !Depend
-CMHGflags =
-LibFileflags = -c -l -o $@
-Squeezeflags = -o $@
-
-# change the line below to where _you_ want the library installed.
-libdest = lib:zlib
-
-# Final targets:
-@.lib: @.o.adler32 @.o.compress @.o.crc32 @.o.deflate @.o.gzio \
- @.o.infblock @.o.infcodes @.o.inffast @.o.inflate @.o.inftrees @.o.infutil @.o.trees \
- @.o.uncompr @.o.zutil
- LibFile $(LibFileflags) @.o.adler32 @.o.compress @.o.crc32 @.o.deflate \
- @.o.gzio @.o.infblock @.o.infcodes @.o.inffast @.o.inflate @.o.inftrees @.o.infutil \
- @.o.trees @.o.uncompr @.o.zutil
-test: @.minigzip @.example @.lib
- @copy @.lib @.libc A~C~DF~L~N~P~Q~RS~TV
- @echo running tests: hang on.
- @/@.minigzip -f -9 libc
- @/@.minigzip -d libc-gz
- @/@.minigzip -f -1 libc
- @/@.minigzip -d libc-gz
- @/@.minigzip -h -9 libc
- @/@.minigzip -d libc-gz
- @/@.minigzip -h -1 libc
- @/@.minigzip -d libc-gz
- @/@.minigzip -9 libc
- @/@.minigzip -d libc-gz
- @/@.minigzip -1 libc
- @/@.minigzip -d libc-gz
- @diff @.lib @.libc
- @echo that should have reported '@.lib and @.libc identical' if you have diff.
- @/@.example @.fred @.fred
- @echo that will have given lots of hello!'s.
-
-@.minigzip: @.o.minigzip @.lib C:o.Stubs
- Link $(Linkflags) @.o.minigzip @.lib C:o.Stubs
-@.example: @.o.example @.lib C:o.Stubs
- Link $(Linkflags) @.o.example @.lib C:o.Stubs
-
-install: @.lib
- cdir $(libdest)
- cdir $(libdest).h
- @copy @.h.zlib $(libdest).h.zlib A~C~DF~L~N~P~Q~RS~TV
- @copy @.h.zconf $(libdest).h.zconf A~C~DF~L~N~P~Q~RS~TV
- @copy @.lib $(libdest).lib A~C~DF~L~N~P~Q~RS~TV
- @echo okay, installed zlib in $(libdest)
-
-clean:; remove @.minigzip
- remove @.example
- remove @.libc
- -wipe @.o.* F~r~cV
- remove @.fred
-
-# User-editable dependencies:
-.c.o:
- cc $(ccflags) -o $@ $<
-
-# Static dependencies:
-
-# Dynamic dependencies:
-o.example: c.example
-o.example: h.zlib
-o.example: h.zconf
-o.minigzip: c.minigzip
-o.minigzip: h.zlib
-o.minigzip: h.zconf
-o.adler32: c.adler32
-o.adler32: h.zlib
-o.adler32: h.zconf
-o.compress: c.compress
-o.compress: h.zlib
-o.compress: h.zconf
-o.crc32: c.crc32
-o.crc32: h.zlib
-o.crc32: h.zconf
-o.deflate: c.deflate
-o.deflate: h.deflate
-o.deflate: h.zutil
-o.deflate: h.zlib
-o.deflate: h.zconf
-o.gzio: c.gzio
-o.gzio: h.zutil
-o.gzio: h.zlib
-o.gzio: h.zconf
-o.infblock: c.infblock
-o.infblock: h.zutil
-o.infblock: h.zlib
-o.infblock: h.zconf
-o.infblock: h.infblock
-o.infblock: h.inftrees
-o.infblock: h.infcodes
-o.infblock: h.infutil
-o.infcodes: c.infcodes
-o.infcodes: h.zutil
-o.infcodes: h.zlib
-o.infcodes: h.zconf
-o.infcodes: h.inftrees
-o.infcodes: h.infblock
-o.infcodes: h.infcodes
-o.infcodes: h.infutil
-o.infcodes: h.inffast
-o.inffast: c.inffast
-o.inffast: h.zutil
-o.inffast: h.zlib
-o.inffast: h.zconf
-o.inffast: h.inftrees
-o.inffast: h.infblock
-o.inffast: h.infcodes
-o.inffast: h.infutil
-o.inffast: h.inffast
-o.inflate: c.inflate
-o.inflate: h.zutil
-o.inflate: h.zlib
-o.inflate: h.zconf
-o.inflate: h.infblock
-o.inftrees: c.inftrees
-o.inftrees: h.zutil
-o.inftrees: h.zlib
-o.inftrees: h.zconf
-o.inftrees: h.inftrees
-o.inftrees: h.inffixed
-o.infutil: c.infutil
-o.infutil: h.zutil
-o.infutil: h.zlib
-o.infutil: h.zconf
-o.infutil: h.infblock
-o.infutil: h.inftrees
-o.infutil: h.infcodes
-o.infutil: h.infutil
-o.trees: c.trees
-o.trees: h.deflate
-o.trees: h.zutil
-o.trees: h.zlib
-o.trees: h.zconf
-o.trees: h.trees
-o.uncompr: c.uncompr
-o.uncompr: h.zlib
-o.uncompr: h.zconf
-o.zutil: c.zutil
-o.zutil: h.zutil
-o.zutil: h.zlib
-o.zutil: h.zconf
diff --git a/zlib-1.1.4/README b/zlib-1.1.4/README
deleted file mode 100644
index 29d6714..0000000
--- a/zlib-1.1.4/README
+++ /dev/null
@@ -1,147 +0,0 @@
-zlib 1.1.4 is a general purpose data compression library. All the code
-is thread safe. The data format used by the zlib library
-is described by RFCs (Request for Comments) 1950 to 1952 in the files
-http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate
-format) and rfc1952.txt (gzip format). These documents are also available in
-other formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html
-
-All functions of the compression library are documented in the file zlib.h
-(volunteer to write man pages welcome, contact jloup@gzip.org). A usage
-example of the library is given in the file example.c which also tests that
-the library is working correctly. Another example is given in the file
-minigzip.c. The compression library itself is composed of all source files
-except example.c and minigzip.c.
-
-To compile all files and run the test program, follow the instructions
-given at the top of Makefile. In short "make test; make install"
-should work for most machines. For Unix: "./configure; make test; make install"
-For MSDOS, use one of the special makefiles such as Makefile.msc.
-For VMS, use Make_vms.com or descrip.mms.
-
-Questions about zlib should be sent to <zlib@gzip.org>, or to
-Gilles Vollant <info@winimage.com> for the Windows DLL version.
-The zlib home page is http://www.zlib.org or http://www.gzip.org/zlib/
-Before reporting a problem, please check this site to verify that
-you have the latest version of zlib; otherwise get the latest version and
-check whether the problem still exists or not.
-
-PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html
-before asking for help.
-
-Mark Nelson <markn@ieee.org> wrote an article about zlib for the Jan. 1997
-issue of Dr. Dobb's Journal; a copy of the article is available in
-http://dogma.net/markn/articles/zlibtool/zlibtool.htm
-
-The changes made in version 1.1.4 are documented in the file ChangeLog.
-The only changes made since 1.1.3 are bug corrections:
-
-- ZFREE was repeated on same allocation on some error conditions.
- This creates a security problem described in
- http://www.zlib.org/advisory-2002-03-11.txt
-- Returned incorrect error (Z_MEM_ERROR) on some invalid data
-- Avoid accesses before window for invalid distances with inflate window
- less than 32K.
-- force windowBits > 8 to avoid a bug in the encoder for a window size
- of 256 bytes. (A complete fix will be available in 1.1.5).
-
-The beta version 1.1.5beta includes many more changes. A new official
-version 1.1.5 will be released as soon as extensive testing has been
-completed on it.
-
-
-Unsupported third party contributions are provided in directory "contrib".
-
-A Java implementation of zlib is available in the Java Development Kit
-http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html
-See the zlib home page http://www.zlib.org for details.
-
-A Perl interface to zlib written by Paul Marquess <pmarquess@bfsec.bt.co.uk>
-is in the CPAN (Comprehensive Perl Archive Network) sites
-http://www.cpan.org/modules/by-module/Compress/
-
-A Python interface to zlib written by A.M. Kuchling <amk@magnet.com>
-is available in Python 1.5 and later versions, see
-http://www.python.org/doc/lib/module-zlib.html
-
-A zlib binding for TCL written by Andreas Kupries <a.kupries@westend.com>
-is availlable at http://www.westend.com/~kupries/doc/trf/man/man.html
-
-An experimental package to read and write files in .zip format,
-written on top of zlib by Gilles Vollant <info@winimage.com>, is
-available at http://www.winimage.com/zLibDll/unzip.html
-and also in the contrib/minizip directory of zlib.
-
-
-Notes for some targets:
-
-- To build a Windows DLL version, include in a DLL project zlib.def, zlib.rc
- and all .c files except example.c and minigzip.c; compile with -DZLIB_DLL
- The zlib DLL support was initially done by Alessandro Iacopetti and is
- now maintained by Gilles Vollant <info@winimage.com>. Check the zlib DLL
- home page at http://www.winimage.com/zLibDll
-
- From Visual Basic, you can call the DLL functions which do not take
- a structure as argument: compress, uncompress and all gz* functions.
- See contrib/visual-basic.txt for more information, or get
- http://www.tcfb.com/dowseware/cmp-z-it.zip
-
-- For 64-bit Irix, deflate.c must be compiled without any optimization.
- With -O, one libpng test fails. The test works in 32 bit mode (with
- the -n32 compiler flag). The compiler bug has been reported to SGI.
-
-- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1
- it works when compiled with cc.
-
-- on Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1
- is necessary to get gzprintf working correctly. This is done by configure.
-
-- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works
- with other compilers. Use "make test" to check your compiler.
-
-- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers.
-
-- For Turbo C the small model is supported only with reduced performance to
- avoid any far allocation; it was tested with -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3
-
-- For PalmOs, see http://www.cs.uit.no/~perm/PASTA/pilot/software.html
- Per Harald Myrvang <perm@stud.cs.uit.no>
-
-
-Acknowledgments:
-
- The deflate format used by zlib was defined by Phil Katz. The deflate
- and zlib specifications were written by L. Peter Deutsch. Thanks to all the
- people who reported problems and suggested various improvements in zlib;
- they are too numerous to cite here.
-
-Copyright notice:
-
- (C) 1995-2002 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
-
-If you use the zlib library in a product, we would appreciate *not*
-receiving lengthy legal documents to sign. The sources are provided
-for free but without warranty of any kind. The library has been
-entirely written by Jean-loup Gailly and Mark Adler; it does not
-include third-party code.
-
-If you redistribute modified sources, we would appreciate that you include
-in the file ChangeLog history information documenting your changes.
diff --git a/zlib-1.1.4/adler32.c b/zlib-1.1.4/adler32.c
deleted file mode 100644
index fae88b6..0000000
--- a/zlib-1.1.4/adler32.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zlib.h"
-
-#define BASE 65521L /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf,i) {s1 += buf[i]; s2 += s1;}
-#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1);
-#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2);
-#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4);
-#define DO16(buf) DO8(buf,0); DO8(buf,8);
-
-/* ========================================================================= */
-uLong ZEXPORT adler32(adler, buf, len)
- uLong adler;
- const Bytef *buf;
- uInt len;
-{
- unsigned long s1 = adler & 0xffff;
- unsigned long s2 = (adler >> 16) & 0xffff;
- int k;
-
- if (buf == Z_NULL) return 1L;
-
- while (len > 0) {
- k = len < NMAX ? len : NMAX;
- len -= k;
- while (k >= 16) {
- DO16(buf);
- buf += 16;
- k -= 16;
- }
- if (k != 0) do {
- s1 += *buf++;
- s2 += s1;
- } while (--k);
- s1 %= BASE;
- s2 %= BASE;
- }
- return (s2 << 16) | s1;
-}
diff --git a/zlib-1.1.4/algorithm.txt b/zlib-1.1.4/algorithm.txt
deleted file mode 100644
index cdc830b..0000000
--- a/zlib-1.1.4/algorithm.txt
+++ /dev/null
@@ -1,213 +0,0 @@
-1. Compression algorithm (deflate)
-
-The deflation algorithm used by gzip (also zip and zlib) is a variation of
-LZ77 (Lempel-Ziv 1977, see reference below). It finds duplicated strings in
-the input data. The second occurrence of a string is replaced by a
-pointer to the previous string, in the form of a pair (distance,
-length). Distances are limited to 32K bytes, and lengths are limited
-to 258 bytes. When a string does not occur anywhere in the previous
-32K bytes, it is emitted as a sequence of literal bytes. (In this
-description, `string' must be taken as an arbitrary sequence of bytes,
-and is not restricted to printable characters.)
-
-Literals or match lengths are compressed with one Huffman tree, and
-match distances are compressed with another tree. The trees are stored
-in a compact form at the start of each block. The blocks can have any
-size (except that the compressed data for one block must fit in
-available memory). A block is terminated when deflate() determines that
-it would be useful to start another block with fresh trees. (This is
-somewhat similar to the behavior of LZW-based _compress_.)
-
-Duplicated strings are found using a hash table. All input strings of
-length 3 are inserted in the hash table. A hash index is computed for
-the next 3 bytes. If the hash chain for this index is not empty, all
-strings in the chain are compared with the current input string, and
-the longest match is selected.
-
-The hash chains are searched starting with the most recent strings, to
-favor small distances and thus take advantage of the Huffman encoding.
-The hash chains are singly linked. There are no deletions from the
-hash chains, the algorithm simply discards matches that are too old.
-
-To avoid a worst-case situation, very long hash chains are arbitrarily
-truncated at a certain length, determined by a runtime option (level
-parameter of deflateInit). So deflate() does not always find the longest
-possible match but generally finds a match which is long enough.
-
-deflate() also defers the selection of matches with a lazy evaluation
-mechanism. After a match of length N has been found, deflate() searches for
-a longer match at the next input byte. If a longer match is found, the
-previous match is truncated to a length of one (thus producing a single
-literal byte) and the process of lazy evaluation begins again. Otherwise,
-the original match is kept, and the next match search is attempted only N
-steps later.
-
-The lazy match evaluation is also subject to a runtime parameter. If
-the current match is long enough, deflate() reduces the search for a longer
-match, thus speeding up the whole process. If compression ratio is more
-important than speed, deflate() attempts a complete second search even if
-the first match is already long enough.
-
-The lazy match evaluation is not performed for the fastest compression
-modes (level parameter 1 to 3). For these fast modes, new strings
-are inserted in the hash table only when no match was found, or
-when the match is not too long. This degrades the compression ratio
-but saves time since there are both fewer insertions and fewer searches.
-
-
-2. Decompression algorithm (inflate)
-
-2.1 Introduction
-
-The real question is, given a Huffman tree, how to decode fast. The most
-important realization is that shorter codes are much more common than
-longer codes, so pay attention to decoding the short codes fast, and let
-the long codes take longer to decode.
-
-inflate() sets up a first level table that covers some number of bits of
-input less than the length of longest code. It gets that many bits from the
-stream, and looks it up in the table. The table will tell if the next
-code is that many bits or less and how many, and if it is, it will tell
-the value, else it will point to the next level table for which inflate()
-grabs more bits and tries to decode a longer code.
-
-How many bits to make the first lookup is a tradeoff between the time it
-takes to decode and the time it takes to build the table. If building the
-table took no time (and if you had infinite memory), then there would only
-be a first level table to cover all the way to the longest code. However,
-building the table ends up taking a lot longer for more bits since short
-codes are replicated many times in such a table. What inflate() does is
-simply to make the number of bits in the first table a variable, and set it
-for the maximum speed.
-
-inflate() sends new trees relatively often, so it is possibly set for a
-smaller first level table than an application that has only one tree for
-all the data. For inflate, which has 286 possible codes for the
-literal/length tree, the size of the first table is nine bits. Also the
-distance trees have 30 possible values, and the size of the first table is
-six bits. Note that for each of those cases, the table ended up one bit
-longer than the ``average'' code length, i.e. the code length of an
-approximately flat code which would be a little more than eight bits for
-286 symbols and a little less than five bits for 30 symbols. It would be
-interesting to see if optimizing the first level table for other
-applications gave values within a bit or two of the flat code size.
-
-
-2.2 More details on the inflate table lookup
-
-Ok, you want to know what this cleverly obfuscated inflate tree actually
-looks like. You are correct that it's not a Huffman tree. It is simply a
-lookup table for the first, let's say, nine bits of a Huffman symbol. The
-symbol could be as short as one bit or as long as 15 bits. If a particular
-symbol is shorter than nine bits, then that symbol's translation is duplicated
-in all those entries that start with that symbol's bits. For example, if the
-symbol is four bits, then it's duplicated 32 times in a nine-bit table. If a
-symbol is nine bits long, it appears in the table once.
-
-If the symbol is longer than nine bits, then that entry in the table points
-to another similar table for the remaining bits. Again, there are duplicated
-entries as needed. The idea is that most of the time the symbol will be short
-and there will only be one table look up. (That's whole idea behind data
-compression in the first place.) For the less frequent long symbols, there
-will be two lookups. If you had a compression method with really long
-symbols, you could have as many levels of lookups as is efficient. For
-inflate, two is enough.
-
-So a table entry either points to another table (in which case nine bits in
-the above example are gobbled), or it contains the translation for the symbol
-and the number of bits to gobble. Then you start again with the next
-ungobbled bit.
-
-You may wonder: why not just have one lookup table for how ever many bits the
-longest symbol is? The reason is that if you do that, you end up spending
-more time filling in duplicate symbol entries than you do actually decoding.
-At least for deflate's output that generates new trees every several 10's of
-kbytes. You can imagine that filling in a 2^15 entry table for a 15-bit code
-would take too long if you're only decoding several thousand symbols. At the
-other extreme, you could make a new table for every bit in the code. In fact,
-that's essentially a Huffman tree. But then you spend two much time
-traversing the tree while decoding, even for short symbols.
-
-So the number of bits for the first lookup table is a trade of the time to
-fill out the table vs. the time spent looking at the second level and above of
-the table.
-
-Here is an example, scaled down:
-
-The code being decoded, with 10 symbols, from 1 to 6 bits long:
-
-A: 0
-B: 10
-C: 1100
-D: 11010
-E: 11011
-F: 11100
-G: 11101
-H: 11110
-I: 111110
-J: 111111
-
-Let's make the first table three bits long (eight entries):
-
-000: A,1
-001: A,1
-010: A,1
-011: A,1
-100: B,2
-101: B,2
-110: -> table X (gobble 3 bits)
-111: -> table Y (gobble 3 bits)
-
-Each entry is what the bits decode to and how many bits that is, i.e. how
-many bits to gobble. Or the entry points to another table, with the number of
-bits to gobble implicit in the size of the table.
-
-Table X is two bits long since the longest code starting with 110 is five bits
-long:
-
-00: C,1
-01: C,1
-10: D,2
-11: E,2
-
-Table Y is three bits long since the longest code starting with 111 is six
-bits long:
-
-000: F,2
-001: F,2
-010: G,2
-011: G,2
-100: H,2
-101: H,2
-110: I,3
-111: J,3
-
-So what we have here are three tables with a total of 20 entries that had to
-be constructed. That's compared to 64 entries for a single table. Or
-compared to 16 entries for a Huffman tree (six two entry tables and one four
-entry table). Assuming that the code ideally represents the probability of
-the symbols, it takes on the average 1.25 lookups per symbol. That's compared
-to one lookup for the single table, or 1.66 lookups per symbol for the
-Huffman tree.
-
-There, I think that gives you a picture of what's going on. For inflate, the
-meaning of a particular symbol is often more than just a letter. It can be a
-byte (a "literal"), or it can be either a length or a distance which
-indicates a base value and a number of bits to fetch after the code that is
-added to the base value. Or it might be the special end-of-block code. The
-data structures created in inftrees.c try to encode all that information
-compactly in the tables.
-
-
-Jean-loup Gailly Mark Adler
-jloup@gzip.org madler@alumni.caltech.edu
-
-
-References:
-
-[LZ77] Ziv J., Lempel A., ``A Universal Algorithm for Sequential Data
-Compression,'' IEEE Transactions on Information Theory, Vol. 23, No. 3,
-pp. 337-343.
-
-``DEFLATE Compressed Data Format Specification'' available in
-ftp://ds.internic.net/rfc/rfc1951.txt
diff --git a/zlib-1.1.4/amiga/Makefile.pup b/zlib-1.1.4/amiga/Makefile.pup
deleted file mode 100644
index 6cfad1d..0000000
--- a/zlib-1.1.4/amiga/Makefile.pup
+++ /dev/null
@@ -1,66 +0,0 @@
-# Amiga powerUP (TM) Makefile
-# makefile for libpng and SAS C V6.58/7.00 PPC compiler
-# Copyright (C) 1998 by Andreas R. Kleinert
-
-CC = scppc
-CFLAGS = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL \
- OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8
-LIBNAME = libzip.a
-AR = ppc-amigaos-ar
-AR_FLAGS = cr
-RANLIB = ppc-amigaos-ranlib
-LDFLAGS = -r -o
-LDLIBS = LIB:scppc.a
-LN = ppc-amigaos-ld
-RM = delete quiet
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-TEST_OBJS = example.o minigzip.o
-
-all: example minigzip
-
-test: all
- example
- echo hello world | minigzip | minigzip -d
-
-$(LIBNAME): $(OBJS)
- $(AR) $(AR_FLAGS) $@ $(OBJS)
- $(RANLIB) $@
-
-example: example.o $(LIBNAME)
- $(LN) $(LDFLAGS) example LIB:c_ppc.o example.o $(LIBNAME) $(LDLIBS) LIB:end.o
-
-minigzip: minigzip.o $(LIBNAME)
- $(LN) $(LDFLAGS) minigzip LIB:c_ppc.o minigzip.o $(LIBNAME) $(LDLIBS) LIB:end.o
-
-clean:
- $(RM) *.o example minigzip $(LIBNAME) foo.gz
-
-zip:
- zip -ul9 zlib README ChangeLog Makefile Make????.??? Makefile.?? \
- descrip.mms *.[ch]
-
-tgz:
- cd ..; tar cfz zlib/zlib.tgz zlib/README zlib/ChangeLog zlib/Makefile \
- zlib/Make????.??? zlib/Makefile.?? zlib/descrip.mms zlib/*.[ch]
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
-
-adler32.o: zutil.h zlib.h zconf.h
-compress.o: zlib.h zconf.h
-crc32.o: zutil.h zlib.h zconf.h
-deflate.o: deflate.h zutil.h zlib.h zconf.h
-example.o: zlib.h zconf.h
-gzio.o: zutil.h zlib.h zconf.h
-infblock.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
-infcodes.o: zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h
-inffast.o: zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
-inflate.o: zutil.h zlib.h zconf.h infblock.h
-inftrees.o: zutil.h zlib.h zconf.h inftrees.h
-infutil.o: zutil.h zlib.h zconf.h inftrees.h infutil.h
-minigzip.o: zlib.h zconf.h
-trees.o: deflate.h zutil.h zlib.h zconf.h
-uncompr.o: zlib.h zconf.h
-zutil.o: zutil.h zlib.h zconf.h
diff --git a/zlib-1.1.4/amiga/Makefile.sas b/zlib-1.1.4/amiga/Makefile.sas
deleted file mode 100644
index 5323e82..0000000
--- a/zlib-1.1.4/amiga/Makefile.sas
+++ /dev/null
@@ -1,64 +0,0 @@
-# SMakefile for zlib
-# Modified from the standard UNIX Makefile Copyright Jean-loup Gailly
-# Osma Ahvenlampi <Osma.Ahvenlampi@hut.fi>
-# Amiga, SAS/C 6.56 & Smake
-
-CC=sc
-CFLAGS=OPT
-#CFLAGS=OPT CPU=68030
-#CFLAGS=DEBUG=LINE
-LDFLAGS=LIB z.lib
-
-SCOPTIONS=OPTSCHED OPTINLINE OPTALIAS OPTTIME OPTINLOCAL STRMERGE \
- NOICONS PARMS=BOTH NOSTACKCHECK UTILLIB NOVERSION ERRORREXX
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-TEST_OBJS = example.o minigzip.o
-
-all: SCOPTIONS example minigzip
-
-test: all
- `cd`/example
- echo hello world | minigzip | minigzip -d
-
-install: z.lib
- copy zlib.h zconf.h INCLUDE: clone
- copy z.lib LIB: clone
-
-z.lib: $(OBJS)
- oml z.lib r $(OBJS)
-
-example: example.o z.lib
- $(CC) $(CFLAGS) LINK TO $@ example.o $(LDFLAGS)
-
-minigzip: minigzip.o z.lib
- $(CC) $(CFLAGS) LINK TO $@ minigzip.o $(LDFLAGS)
-
-clean:
- -delete force quiet *.o example minigzip z.lib foo.gz *.lnk SCOPTIONS
-
-SCOPTIONS: Smakefile
- copy to $@ <from <
-$(SCOPTIONS)
-<
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
-
-adler32.o: zutil.h zlib.h zconf.h
-compress.o: zlib.h zconf.h
-crc32.o: zutil.h zlib.h zconf.h
-deflate.o: deflate.h zutil.h zlib.h zconf.h
-example.o: zlib.h zconf.h
-gzio.o: zutil.h zlib.h zconf.h
-infblock.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
-infcodes.o: zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h
-inffast.o: zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
-inflate.o: zutil.h zlib.h zconf.h infblock.h
-inftrees.o: zutil.h zlib.h zconf.h inftrees.h
-infutil.o: zutil.h zlib.h zconf.h inftrees.h infutil.h
-minigzip.o: zlib.h zconf.h
-trees.o: deflate.h zutil.h zlib.h zconf.h
-uncompr.o: zlib.h zconf.h
-zutil.o: zutil.h zlib.h zconf.h
diff --git a/zlib-1.1.4/compress.c b/zlib-1.1.4/compress.c
deleted file mode 100644
index 814bd9d..0000000
--- a/zlib-1.1.4/compress.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* compress.c -- compress a memory buffer
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zlib.h"
-
-/* ===========================================================================
- Compresses the source buffer into the destination buffer. The level
- parameter has the same meaning as in deflateInit. sourceLen is the byte
- length of the source buffer. Upon entry, destLen is the total size of the
- destination buffer, which must be at least 0.1% larger than sourceLen plus
- 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
-
- compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_BUF_ERROR if there was not enough room in the output buffer,
- Z_STREAM_ERROR if the level parameter is invalid.
-*/
-int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
- Bytef *dest;
- uLongf *destLen;
- const Bytef *source;
- uLong sourceLen;
- int level;
-{
- z_stream stream;
- int err;
-
- stream.next_in = (Bytef*)source;
- stream.avail_in = (uInt)sourceLen;
-#ifdef MAXSEG_64K
- /* Check for source > 64K on 16-bit machine: */
- if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-#endif
- stream.next_out = dest;
- stream.avail_out = (uInt)*destLen;
- if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
-
- stream.zalloc = (alloc_func)0;
- stream.zfree = (free_func)0;
- stream.opaque = (voidpf)0;
-
- err = deflateInit(&stream, level);
- if (err != Z_OK) return err;
-
- err = deflate(&stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- deflateEnd(&stream);
- return err == Z_OK ? Z_BUF_ERROR : err;
- }
- *destLen = stream.total_out;
-
- err = deflateEnd(&stream);
- return err;
-}
-
-/* ===========================================================================
- */
-int ZEXPORT compress (dest, destLen, source, sourceLen)
- Bytef *dest;
- uLongf *destLen;
- const Bytef *source;
- uLong sourceLen;
-{
- return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
-}
diff --git a/zlib-1.1.4/configure b/zlib-1.1.4/configure
deleted file mode 100755
index e894235..0000000
--- a/zlib-1.1.4/configure
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/bin/sh
-# configure script for zlib. This script is needed only if
-# you wish to build a shared library and your system supports them,
-# of if you need special compiler, flags or install directory.
-# Otherwise, you can just use directly "make test; make install"
-#
-# To create a shared library, use "configure --shared"; by default a static
-# library is created. If the primitive shared library support provided here
-# does not work, use ftp://prep.ai.mit.edu/pub/gnu/libtool-*.tar.gz
-#
-# To impose specific compiler or flags or install directory, use for example:
-# prefix=$HOME CC=cc CFLAGS="-O4" ./configure
-# or for csh/tcsh users:
-# (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure)
-# LDSHARED is the command to be used to create a shared library
-
-# Incorrect settings of CC or CFLAGS may prevent creating a shared library.
-# If you have problems, try without defining CC and CFLAGS before reporting
-# an error.
-
-LIBS=libz.a
-SHAREDLIB=libz.so
-VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`
-AR=${AR-"ar rc"}
-RANLIB=${RANLIB-"ranlib"}
-prefix=${prefix-/usr/local}
-exec_prefix=${exec_prefix-'${prefix}'}
-libdir=${libdir-'${exec_prefix}/lib'}
-includedir=${includedir-'${prefix}/include'}
-shared_ext='.so'
-shared=0
-gcc=0
-old_cc="$CC"
-old_cflags="$CFLAGS"
-
-while test $# -ge 1
-do
-case "$1" in
- -h* | --h*)
- echo 'usage:'
- echo ' configure [--shared] [--prefix=PREFIX] [--exec_prefix=EXPREFIX]'
- echo ' [--libdir=LIBDIR] [--includedir=INCLUDEDIR]'
- exit 0;;
- -p*=* | --p*=*) prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;;
- -e*=* | --e*=*) exec_prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;;
- -l*=* | --libdir=*) libdir=`echo $1 | sed 's/[-a-z_]*=//'`; shift;;
- -i*=* | --includedir=*) includedir=`echo $1 | sed 's/[-a-z_]*=//'`;shift;;
- -p* | --p*) prefix="$2"; shift; shift;;
- -e* | --e*) exec_prefix="$2"; shift; shift;;
- -l* | --l*) libdir="$2"; shift; shift;;
- -i* | --i*) includedir="$2"; shift; shift;;
- -s* | --s*) shared=1; shift;;
- esac
-done
-
-test=ztest$$
-cat > $test.c <<EOF
-extern int getchar();
-int hello() {return getchar();}
-EOF
-
-test -z "$CC" && echo Checking for gcc...
-cc=${CC-gcc}
-cflags=${CFLAGS-"-O3"}
-# to force the asm version use: CFLAGS="-O3 -DASMV" ./configure
-case "$cc" in
- *gcc*) gcc=1;;
-esac
-
-if test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then
- CC="$cc"
- SFLAGS=${CFLAGS-"-fPIC -O3"}
- CFLAGS="$cflags"
- case `(uname -s || echo unknown) 2>/dev/null` in
- Linux | linux) LDSHARED=${LDSHARED-"gcc -shared -Wl,-soname,libz.so.1"};;
- *) LDSHARED=${LDSHARED-"gcc -shared"};;
- esac
-else
- # find system name and corresponding cc options
- CC=${CC-cc}
- case `(uname -sr || echo unknown) 2>/dev/null` in
- HP-UX*) SFLAGS=${CFLAGS-"-O +z"}
- CFLAGS=${CFLAGS-"-O"}
-# LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"}
- LDSHARED=${LDSHARED-"ld -b"}
- shared_ext='.sl'
- SHAREDLIB='libz.sl';;
- IRIX*) SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."}
- CFLAGS=${CFLAGS-"-ansi -O2"}
- LDSHARED=${LDSHARED-"cc -shared"};;
- OSF1\ V4*) SFLAGS=${CFLAGS-"-O -std1"}
- CFLAGS=${CFLAGS-"-O -std1"}
- LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,$SHAREDLIB -Wl,-msym -Wl,-rpath,$(libdir) -Wl,-set_version,${VER}:1.0"};;
- OSF1*) SFLAGS=${CFLAGS-"-O -std1"}
- CFLAGS=${CFLAGS-"-O -std1"}
- LDSHARED=${LDSHARED-"cc -shared"};;
- QNX*) SFLAGS=${CFLAGS-"-4 -O"}
- CFLAGS=${CFLAGS-"-4 -O"}
- LDSHARED=${LDSHARED-"cc"}
- RANLIB=${RANLIB-"true"}
- AR="cc -A";;
- SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "}
- CFLAGS=${CFLAGS-"-O3"}
- LDSHARED=${LDSHARED-"cc -dy -KPIC -G"};;
- SunOS\ 5*) SFLAGS=${CFLAGS-"-fast -xcg89 -KPIC -R."}
- CFLAGS=${CFLAGS-"-fast -xcg89"}
- LDSHARED=${LDSHARED-"cc -G"};;
- SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"}
- CFLAGS=${CFLAGS-"-O2"}
- LDSHARED=${LDSHARED-"ld"};;
- UNIX_System_V\ 4.2.0)
- SFLAGS=${CFLAGS-"-KPIC -O"}
- CFLAGS=${CFLAGS-"-O"}
- LDSHARED=${LDSHARED-"cc -G"};;
- UNIX_SV\ 4.2MP)
- SFLAGS=${CFLAGS-"-Kconform_pic -O"}
- CFLAGS=${CFLAGS-"-O"}
- LDSHARED=${LDSHARED-"cc -G"};;
- # send working options for other systems to support@gzip.org
- *) SFLAGS=${CFLAGS-"-O"}
- CFLAGS=${CFLAGS-"-O"}
- LDSHARED=${LDSHARED-"cc -shared"};;
- esac
-fi
-
-if test $shared -eq 1; then
- echo Checking for shared library support...
- # we must test in two steps (cc then ld), required at least on SunOS 4.x
- if test "`($CC -c $SFLAGS $test.c) 2>&1`" = "" &&
- test "`($LDSHARED -o $test$shared_ext $test.o) 2>&1`" = ""; then
- CFLAGS="$SFLAGS"
- LIBS="$SHAREDLIB.$VER"
- echo Building shared library $SHAREDLIB.$VER with $CC.
- elif test -z "$old_cc" -a -z "$old_cflags"; then
- echo No shared library suppport.
- shared=0;
- else
- echo 'No shared library suppport; try without defining CC and CFLAGS'
- shared=0;
- fi
-fi
-if test $shared -eq 0; then
- LDSHARED="$CC"
- echo Building static library $LIBS version $VER with $CC.
-fi
-
-cat > $test.c <<EOF
-#include <unistd.h>
-int main() { return 0; }
-EOF
-if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
- CFLAGS="$CFLAGS -DHAVE_UNISTD_H"
- echo "Checking for unistd.h... Yes."
-else
- echo "Checking for unistd.h... No."
-fi
-
-cat > $test.c <<EOF
-#include <errno.h>
-int main() { return 0; }
-EOF
-if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
- echo "Checking for errno.h... Yes."
-else
- echo "Checking for errno.h... No."
- CFLAGS="$CFLAGS -DNO_ERRNO_H"
-fi
-
-cat > $test.c <<EOF
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-caddr_t hello() {
- return mmap((caddr_t)0, (off_t)0, PROT_READ, MAP_SHARED, 0, (off_t)0);
-}
-EOF
-if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
- CFLAGS="$CFLAGS -DUSE_MMAP"
- echo Checking for mmap support... Yes.
-else
- echo Checking for mmap support... No.
-fi
-
-CPP=${CPP-"$CC -E"}
-case $CFLAGS in
- *ASMV*)
- if test "`nm $test.o | grep _hello`" = ""; then
- CPP="$CPP -DNO_UNDERLINE"
- echo Checking for underline in external names... No.
- else
- echo Checking for underline in external names... Yes.
- fi;;
-esac
-
-rm -f $test.[co] $test$shared_ext
-
-# udpate Makefile
-sed < Makefile.in "
-/^CC *=/s%=.*%=$CC%
-/^CFLAGS *=/s%=.*%=$CFLAGS%
-/^CPP *=/s%=.*%=$CPP%
-/^LDSHARED *=/s%=.*%=$LDSHARED%
-/^LIBS *=/s%=.*%=$LIBS%
-/^SHAREDLIB *=/s%=.*%=$SHAREDLIB%
-/^AR *=/s%=.*%=$AR%
-/^RANLIB *=/s%=.*%=$RANLIB%
-/^VER *=/s%=.*%=$VER%
-/^prefix *=/s%=.*%=$prefix%
-/^exec_prefix *=/s%=.*%=$exec_prefix%
-/^libdir *=/s%=.*%=$libdir%
-/^includedir *=/s%=.*%=$includedir%
-" > Makefile
diff --git a/zlib-1.1.4/contrib/README.contrib b/zlib-1.1.4/contrib/README.contrib
deleted file mode 100644
index 7ad191c..0000000
--- a/zlib-1.1.4/contrib/README.contrib
+++ /dev/null
@@ -1,34 +0,0 @@
-All files under this contrib directory are UNSUPPORTED. There were
-provided by users of zlib and were not tested by the authors of zlib.
-Use at your own risk. Please contact the authors of the contributions
-for help about these, not the zlib authors. Thanks.
-
-
-asm386/ by Gilles Vollant <info@winimage.com>
- 386 asm code replacing longest_match(), for Visual C++ 4.2 and ML 6.11c
-
-asm586/ and asm686/ by Brian Raiter <breadbox@muppetlabs.com>
- asm code for Pentium and Pentium Pro
- See http://www.muppetlabs.com/~breadbox/software/assembly.html
-
-delphi/ by Bob Dellaca <bobdl@xtra.co.nz>
- Support for Delphi
-
-delphi2/ by Davide Moretti <dave@rimini.com>
- Another support for C++Builder and Delphi
-
-minizip/ by Gilles Vollant <info@winimage.com>
- Mini zip and unzip based on zlib
- See http://www.winimage.com/zLibDll/unzip.html
-
-iostream/ by Kevin Ruland <kevin@rodin.wustl.edu>
- A C++ I/O streams interface to the zlib gz* functions
-
-iostream2/ by Tyge Løvset <Tyge.Lovset@cmr.no>
- Another C++ I/O streams interface
-
-untgz/ by "Pedro A. Aranda Guti\irrez" <paag@tid.es>
- A very simple tar.gz file extractor using zlib
-
-visual-basic.txt by Carlos Rios <c_rios@sonda.cl>
- How to use compress(), uncompress() and the gz* functions from VB.
diff --git a/zlib-1.1.4/contrib/asm386/gvmat32.asm b/zlib-1.1.4/contrib/asm386/gvmat32.asm
deleted file mode 100644
index 28d527f..0000000
--- a/zlib-1.1.4/contrib/asm386/gvmat32.asm
+++ /dev/null
@@ -1,559 +0,0 @@
-;
-; gvmat32.asm -- Asm portion of the optimized longest_match for 32 bits x86
-; Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant.
-; File written by Gilles Vollant, by modifiying the longest_match
-; from Jean-loup Gailly in deflate.c
-; It need wmask == 0x7fff
-; (assembly code is faster with a fixed wmask)
-;
-; For Visual C++ 4.2 and ML 6.11c (version in directory \MASM611C of Win95 DDK)
-; I compile with : "ml /coff /Zi /c gvmat32.asm"
-;
-
-;uInt longest_match_7fff(s, cur_match)
-; deflate_state *s;
-; IPos cur_match; /* current match */
-
- NbStack equ 76
- cur_match equ dword ptr[esp+NbStack-0]
- str_s equ dword ptr[esp+NbStack-4]
-; 5 dword on top (ret,ebp,esi,edi,ebx)
- adrret equ dword ptr[esp+NbStack-8]
- pushebp equ dword ptr[esp+NbStack-12]
- pushedi equ dword ptr[esp+NbStack-16]
- pushesi equ dword ptr[esp+NbStack-20]
- pushebx equ dword ptr[esp+NbStack-24]
-
- chain_length equ dword ptr [esp+NbStack-28]
- limit equ dword ptr [esp+NbStack-32]
- best_len equ dword ptr [esp+NbStack-36]
- window equ dword ptr [esp+NbStack-40]
- prev equ dword ptr [esp+NbStack-44]
- scan_start equ word ptr [esp+NbStack-48]
- wmask equ dword ptr [esp+NbStack-52]
- match_start_ptr equ dword ptr [esp+NbStack-56]
- nice_match equ dword ptr [esp+NbStack-60]
- scan equ dword ptr [esp+NbStack-64]
-
- windowlen equ dword ptr [esp+NbStack-68]
- match_start equ dword ptr [esp+NbStack-72]
- strend equ dword ptr [esp+NbStack-76]
- NbStackAdd equ (NbStack-24)
-
- .386p
-
- name gvmatch
- .MODEL FLAT
-
-
-
-; all the +4 offsets are due to the addition of pending_buf_size (in zlib
-; in the deflate_state structure since the asm code was first written
-; (if you compile with zlib 1.0.4 or older, remove the +4).
-; Note : these value are good with a 8 bytes boundary pack structure
- dep_chain_length equ 70h+4
- dep_window equ 2ch+4
- dep_strstart equ 60h+4
- dep_prev_length equ 6ch+4
- dep_nice_match equ 84h+4
- dep_w_size equ 20h+4
- dep_prev equ 34h+4
- dep_w_mask equ 28h+4
- dep_good_match equ 80h+4
- dep_match_start equ 64h+4
- dep_lookahead equ 68h+4
-
-
-_TEXT segment
-
-IFDEF NOUNDERLINE
- public longest_match_7fff
-; public match_init
-ELSE
- public _longest_match_7fff
-; public _match_init
-ENDIF
-
- MAX_MATCH equ 258
- MIN_MATCH equ 3
- MIN_LOOKAHEAD equ (MAX_MATCH+MIN_MATCH+1)
-
-
-
-IFDEF NOUNDERLINE
-;match_init proc near
-; ret
-;match_init endp
-ELSE
-;_match_init proc near
-; ret
-;_match_init endp
-ENDIF
-
-
-IFDEF NOUNDERLINE
-longest_match_7fff proc near
-ELSE
-_longest_match_7fff proc near
-ENDIF
-
- mov edx,[esp+4]
-
-
-
- push ebp
- push edi
- push esi
- push ebx
-
- sub esp,NbStackAdd
-
-; initialize or check the variables used in match.asm.
- mov ebp,edx
-
-; chain_length = s->max_chain_length
-; if (prev_length>=good_match) chain_length >>= 2
- mov edx,[ebp+dep_chain_length]
- mov ebx,[ebp+dep_prev_length]
- cmp [ebp+dep_good_match],ebx
- ja noshr
- shr edx,2
-noshr:
-; we increment chain_length because in the asm, the --chain_lenght is in the beginning of the loop
- inc edx
- mov edi,[ebp+dep_nice_match]
- mov chain_length,edx
- mov eax,[ebp+dep_lookahead]
- cmp eax,edi
-; if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
- jae nolookaheadnicematch
- mov edi,eax
-nolookaheadnicematch:
-; best_len = s->prev_length
- mov best_len,ebx
-
-; window = s->window
- mov esi,[ebp+dep_window]
- mov ecx,[ebp+dep_strstart]
- mov window,esi
-
- mov nice_match,edi
-; scan = window + strstart
- add esi,ecx
- mov scan,esi
-; dx = *window
- mov dx,word ptr [esi]
-; bx = *(window+best_len-1)
- mov bx,word ptr [esi+ebx-1]
- add esi,MAX_MATCH-1
-; scan_start = *scan
- mov scan_start,dx
-; strend = scan + MAX_MATCH-1
- mov strend,esi
-; bx = scan_end = *(window+best_len-1)
-
-; IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
-; s->strstart - (IPos)MAX_DIST(s) : NIL;
-
- mov esi,[ebp+dep_w_size]
- sub esi,MIN_LOOKAHEAD
-; here esi = MAX_DIST(s)
- sub ecx,esi
- ja nodist
- xor ecx,ecx
-nodist:
- mov limit,ecx
-
-; prev = s->prev
- mov edx,[ebp+dep_prev]
- mov prev,edx
-
-;
- mov edx,dword ptr [ebp+dep_match_start]
- mov bp,scan_start
- mov eax,cur_match
- mov match_start,edx
-
- mov edx,window
- mov edi,edx
- add edi,best_len
- mov esi,prev
- dec edi
-; windowlen = window + best_len -1
- mov windowlen,edi
-
- jmp beginloop2
- align 4
-
-; here, in the loop
-; eax = ax = cur_match
-; ecx = limit
-; bx = scan_end
-; bp = scan_start
-; edi = windowlen (window + best_len -1)
-; esi = prev
-
-
-;// here; chain_length <=16
-normalbeg0add16:
- add chain_length,16
- jz exitloop
-normalbeg0:
- cmp word ptr[edi+eax],bx
- je normalbeg2noroll
-rcontlabnoroll:
-; cur_match = prev[cur_match & wmask]
- and eax,7fffh
- mov ax,word ptr[esi+eax*2]
-; if cur_match > limit, go to exitloop
- cmp ecx,eax
- jnb exitloop
-; if --chain_length != 0, go to exitloop
- dec chain_length
- jnz normalbeg0
- jmp exitloop
-
-normalbeg2noroll:
-; if (scan_start==*(cur_match+window)) goto normalbeg2
- cmp bp,word ptr[edx+eax]
- jne rcontlabnoroll
- jmp normalbeg2
-
-contloop3:
- mov edi,windowlen
-
-; cur_match = prev[cur_match & wmask]
- and eax,7fffh
- mov ax,word ptr[esi+eax*2]
-; if cur_match > limit, go to exitloop
- cmp ecx,eax
-jnbexitloopshort1:
- jnb exitloop
-; if --chain_length != 0, go to exitloop
-
-
-; begin the main loop
-beginloop2:
- sub chain_length,16+1
-; if chain_length <=16, don't use the unrolled loop
- jna normalbeg0add16
-
-do16:
- cmp word ptr[edi+eax],bx
- je normalbeg2dc0
-
-maccn MACRO lab
- and eax,7fffh
- mov ax,word ptr[esi+eax*2]
- cmp ecx,eax
- jnb exitloop
- cmp word ptr[edi+eax],bx
- je lab
- ENDM
-
-rcontloop0:
- maccn normalbeg2dc1
-
-rcontloop1:
- maccn normalbeg2dc2
-
-rcontloop2:
- maccn normalbeg2dc3
-
-rcontloop3:
- maccn normalbeg2dc4
-
-rcontloop4:
- maccn normalbeg2dc5
-
-rcontloop5:
- maccn normalbeg2dc6
-
-rcontloop6:
- maccn normalbeg2dc7
-
-rcontloop7:
- maccn normalbeg2dc8
-
-rcontloop8:
- maccn normalbeg2dc9
-
-rcontloop9:
- maccn normalbeg2dc10
-
-rcontloop10:
- maccn short normalbeg2dc11
-
-rcontloop11:
- maccn short normalbeg2dc12
-
-rcontloop12:
- maccn short normalbeg2dc13
-
-rcontloop13:
- maccn short normalbeg2dc14
-
-rcontloop14:
- maccn short normalbeg2dc15
-
-rcontloop15:
- and eax,7fffh
- mov ax,word ptr[esi+eax*2]
- cmp ecx,eax
- jnb exitloop
-
- sub chain_length,16
- ja do16
- jmp normalbeg0add16
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-normbeg MACRO rcontlab,valsub
-; if we are here, we know that *(match+best_len-1) == scan_end
- cmp bp,word ptr[edx+eax]
-; if (match != scan_start) goto rcontlab
- jne rcontlab
-; calculate the good chain_length, and we'll compare scan and match string
- add chain_length,16-valsub
- jmp iseq
- ENDM
-
-
-normalbeg2dc11:
- normbeg rcontloop11,11
-
-normalbeg2dc12:
- normbeg short rcontloop12,12
-
-normalbeg2dc13:
- normbeg short rcontloop13,13
-
-normalbeg2dc14:
- normbeg short rcontloop14,14
-
-normalbeg2dc15:
- normbeg short rcontloop15,15
-
-normalbeg2dc10:
- normbeg rcontloop10,10
-
-normalbeg2dc9:
- normbeg rcontloop9,9
-
-normalbeg2dc8:
- normbeg rcontloop8,8
-
-normalbeg2dc7:
- normbeg rcontloop7,7
-
-normalbeg2dc6:
- normbeg rcontloop6,6
-
-normalbeg2dc5:
- normbeg rcontloop5,5
-
-normalbeg2dc4:
- normbeg rcontloop4,4
-
-normalbeg2dc3:
- normbeg rcontloop3,3
-
-normalbeg2dc2:
- normbeg rcontloop2,2
-
-normalbeg2dc1:
- normbeg rcontloop1,1
-
-normalbeg2dc0:
- normbeg rcontloop0,0
-
-
-; we go in normalbeg2 because *(ushf*)(match+best_len-1) == scan_end
-
-normalbeg2:
- mov edi,window
-
- cmp bp,word ptr[edi+eax]
- jne contloop3 ; if *(ushf*)match != scan_start, continue
-
-iseq:
-; if we are here, we know that *(match+best_len-1) == scan_end
-; and (match == scan_start)
-
- mov edi,edx
- mov esi,scan ; esi = scan
- add edi,eax ; edi = window + cur_match = match
-
- mov edx,[esi+3] ; compare manually dword at match+3
- xor edx,[edi+3] ; and scan +3
-
- jz begincompare ; if equal, go to long compare
-
-; we will determine the unmatch byte and calculate len (in esi)
- or dl,dl
- je eq1rr
- mov esi,3
- jmp trfinval
-eq1rr:
- or dx,dx
- je eq1
-
- mov esi,4
- jmp trfinval
-eq1:
- and edx,0ffffffh
- jz eq11
- mov esi,5
- jmp trfinval
-eq11:
- mov esi,6
- jmp trfinval
-
-begincompare:
- ; here we now scan and match begin same
- add edi,6
- add esi,6
- mov ecx,(MAX_MATCH-(2+4))/4 ; scan for at most MAX_MATCH bytes
- repe cmpsd ; loop until mismatch
-
- je trfin ; go to trfin if not unmatch
-; we determine the unmatch byte
- sub esi,4
- mov edx,[edi-4]
- xor edx,[esi]
-
- or dl,dl
- jnz trfin
- inc esi
-
- or dx,dx
- jnz trfin
- inc esi
-
- and edx,0ffffffh
- jnz trfin
- inc esi
-
-trfin:
- sub esi,scan ; esi = len
-trfinval:
-; here we have finised compare, and esi contain len of equal string
- cmp esi,best_len ; if len > best_len, go newbestlen
- ja short newbestlen
-; now we restore edx, ecx and esi, for the big loop
- mov esi,prev
- mov ecx,limit
- mov edx,window
- jmp contloop3
-
-newbestlen:
- mov best_len,esi ; len become best_len
-
- mov match_start,eax ; save new position as match_start
- cmp esi,nice_match ; if best_len >= nice_match, exit
- jae exitloop
- mov ecx,scan
- mov edx,window ; restore edx=window
- add ecx,esi
- add esi,edx
-
- dec esi
- mov windowlen,esi ; windowlen = window + best_len-1
- mov bx,[ecx-1] ; bx = *(scan+best_len-1) = scan_end
-
-; now we restore ecx and esi, for the big loop :
- mov esi,prev
- mov ecx,limit
- jmp contloop3
-
-exitloop:
-; exit : s->match_start=match_start
- mov ebx,match_start
- mov ebp,str_s
- mov ecx,best_len
- mov dword ptr [ebp+dep_match_start],ebx
- mov eax,dword ptr [ebp+dep_lookahead]
- cmp ecx,eax
- ja minexlo
- mov eax,ecx
-minexlo:
-; return min(best_len,s->lookahead)
-
-; restore stack and register ebx,esi,edi,ebp
- add esp,NbStackAdd
-
- pop ebx
- pop esi
- pop edi
- pop ebp
- ret
-InfoAuthor:
-; please don't remove this string !
-; Your are free use gvmat32 in any fre or commercial apps if you don't remove the string in the binary!
- db 0dh,0ah,"GVMat32 optimised assembly code written 1996-98 by Gilles Vollant",0dh,0ah
-
-
-
-IFDEF NOUNDERLINE
-longest_match_7fff endp
-ELSE
-_longest_match_7fff endp
-ENDIF
-
-
-IFDEF NOUNDERLINE
-cpudetect32 proc near
-ELSE
-_cpudetect32 proc near
-ENDIF
-
-
- pushfd ; push original EFLAGS
- pop eax ; get original EFLAGS
- mov ecx, eax ; save original EFLAGS
- xor eax, 40000h ; flip AC bit in EFLAGS
- push eax ; save new EFLAGS value on stack
- popfd ; replace current EFLAGS value
- pushfd ; get new EFLAGS
- pop eax ; store new EFLAGS in EAX
- xor eax, ecx ; can’t toggle AC bit, processor=80386
- jz end_cpu_is_386 ; jump if 80386 processor
- push ecx
- popfd ; restore AC bit in EFLAGS first
-
- pushfd
- pushfd
- pop ecx
-
- mov eax, ecx ; get original EFLAGS
- xor eax, 200000h ; flip ID bit in EFLAGS
- push eax ; save new EFLAGS value on stack
- popfd ; replace current EFLAGS value
- pushfd ; get new EFLAGS
- pop eax ; store new EFLAGS in EAX
- popfd ; restore original EFLAGS
- xor eax, ecx ; can’t toggle ID bit,
- je is_old_486 ; processor=old
-
- mov eax,1
- db 0fh,0a2h ;CPUID
-
-exitcpudetect:
- ret
-
-end_cpu_is_386:
- mov eax,0300h
- jmp exitcpudetect
-
-is_old_486:
- mov eax,0400h
- jmp exitcpudetect
-
-IFDEF NOUNDERLINE
-cpudetect32 endp
-ELSE
-_cpudetect32 endp
-ENDIF
-
-_TEXT ends
-end
diff --git a/zlib-1.1.4/contrib/asm386/gvmat32c.c b/zlib-1.1.4/contrib/asm386/gvmat32c.c
deleted file mode 100644
index d853bb7..0000000
--- a/zlib-1.1.4/contrib/asm386/gvmat32c.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/* gvmat32.c -- C portion of the optimized longest_match for 32 bits x86
- * Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant.
- * File written by Gilles Vollant, by modifiying the longest_match
- * from Jean-loup Gailly in deflate.c
- * it prepare all parameters and call the assembly longest_match_gvasm
- * longest_match execute standard C code is wmask != 0x7fff
- * (assembly code is faster with a fixed wmask)
- *
- */
-
-#include "deflate.h"
-
-#undef FAR
-#include <windows.h>
-
-#ifdef ASMV
-#define NIL 0
-
-#define UNALIGNED_OK
-
-
-/* if your C compiler don't add underline before function name,
- define ADD_UNDERLINE_ASMFUNC */
-#ifdef ADD_UNDERLINE_ASMFUNC
-#define longest_match_7fff _longest_match_7fff
-#endif
-
-
-
-void match_init()
-{
-}
-
-unsigned long cpudetect32();
-
-uInt longest_match_c(
- deflate_state *s,
- IPos cur_match); /* current match */
-
-
-uInt longest_match_7fff(
- deflate_state *s,
- IPos cur_match); /* current match */
-
-uInt longest_match(
- deflate_state *s,
- IPos cur_match) /* current match */
-{
- static uInt iIsPPro=2;
-
- if ((s->w_mask == 0x7fff) && (iIsPPro==0))
- return longest_match_7fff(s,cur_match);
-
- if (iIsPPro==2)
- iIsPPro = (((cpudetect32()/0x100)&0xf)>=6) ? 1 : 0;
-
- return longest_match_c(s,cur_match);
-}
-
-
-
-uInt longest_match_c(s, cur_match)
- deflate_state *s;
- IPos cur_match; /* current match */
-{
- unsigned chain_length = s->max_chain_length;/* max hash chain length */
- register Bytef *scan = s->window + s->strstart; /* current string */
- register Bytef *match; /* matched string */
- register int len; /* length of current match */
- int best_len = s->prev_length; /* best match length so far */
- int nice_match = s->nice_match; /* stop if match long enough */
- IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
- s->strstart - (IPos)MAX_DIST(s) : NIL;
- /* Stop when cur_match becomes <= limit. To simplify the code,
- * we prevent matches with the string of window index 0.
- */
- Posf *prev = s->prev;
- uInt wmask = s->w_mask;
-
-#ifdef UNALIGNED_OK
- /* Compare two bytes at a time. Note: this is not always beneficial.
- * Try with and without -DUNALIGNED_OK to check.
- */
- register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
- register ush scan_start = *(ushf*)scan;
- register ush scan_end = *(ushf*)(scan+best_len-1);
-#else
- register Bytef *strend = s->window + s->strstart + MAX_MATCH;
- register Byte scan_end1 = scan[best_len-1];
- register Byte scan_end = scan[best_len];
-#endif
-
- /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
- * It is easy to get rid of this optimization if necessary.
- */
- Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
- /* Do not waste too much time if we already have a good match: */
- if (s->prev_length >= s->good_match) {
- chain_length >>= 2;
- }
- /* Do not look for matches beyond the end of the input. This is necessary
- * to make deflate deterministic.
- */
- if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
-
- Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
- do {
- Assert(cur_match < s->strstart, "no future");
- match = s->window + cur_match;
-
- /* Skip to next match if the match length cannot increase
- * or if the match length is less than 2:
- */
-#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
- /* This code assumes sizeof(unsigned short) == 2. Do not use
- * UNALIGNED_OK if your compiler uses a different size.
- */
- if (*(ushf*)(match+best_len-1) != scan_end ||
- *(ushf*)match != scan_start) continue;
-
- /* It is not necessary to compare scan[2] and match[2] since they are
- * always equal when the other bytes match, given that the hash keys
- * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
- * strstart+3, +5, ... up to strstart+257. We check for insufficient
- * lookahead only every 4th comparison; the 128th check will be made
- * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
- * necessary to put more guard bytes at the end of the window, or
- * to check more often for insufficient lookahead.
- */
- Assert(scan[2] == match[2], "scan[2]?");
- scan++, match++;
- do {
- } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- scan < strend);
- /* The funny "do {}" generates better code on most compilers */
-
- /* Here, scan <= window+strstart+257 */
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
- if (*scan == *match) scan++;
-
- len = (MAX_MATCH - 1) - (int)(strend-scan);
- scan = strend - (MAX_MATCH-1);
-
-#else /* UNALIGNED_OK */
-
- if (match[best_len] != scan_end ||
- match[best_len-1] != scan_end1 ||
- *match != *scan ||
- *++match != scan[1]) continue;
-
- /* The check at best_len-1 can be removed because it will be made
- * again later. (This heuristic is not always a win.)
- * It is not necessary to compare scan[2] and match[2] since they
- * are always equal when the other bytes match, given that
- * the hash keys are equal and that HASH_BITS >= 8.
- */
- scan += 2, match++;
- Assert(*scan == *match, "match[2]?");
-
- /* We check for insufficient lookahead only every 8th comparison;
- * the 256th check will be made at strstart+258.
- */
- do {
- } while (*++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- scan < strend);
-
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
- len = MAX_MATCH - (int)(strend - scan);
- scan = strend - MAX_MATCH;
-
-#endif /* UNALIGNED_OK */
-
- if (len > best_len) {
- s->match_start = cur_match;
- best_len = len;
- if (len >= nice_match) break;
-#ifdef UNALIGNED_OK
- scan_end = *(ushf*)(scan+best_len-1);
-#else
- scan_end1 = scan[best_len-1];
- scan_end = scan[best_len];
-#endif
- }
- } while ((cur_match = prev[cur_match & wmask]) > limit
- && --chain_length != 0);
-
- if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
- return s->lookahead;
-}
-
-#endif /* ASMV */
diff --git a/zlib-1.1.4/contrib/asm386/mkgvmt32.bat b/zlib-1.1.4/contrib/asm386/mkgvmt32.bat
deleted file mode 100644
index 6c5ffd7..0000000
--- a/zlib-1.1.4/contrib/asm386/mkgvmt32.bat
+++ /dev/null
@@ -1 +0,0 @@
-c:\masm611\bin\ml /coff /Zi /c /Flgvmat32.lst gvmat32.asm
diff --git a/zlib-1.1.4/contrib/asm386/zlibvc.def b/zlib-1.1.4/contrib/asm386/zlibvc.def
deleted file mode 100644
index 7e9d60d..0000000
--- a/zlib-1.1.4/contrib/asm386/zlibvc.def
+++ /dev/null
@@ -1,74 +0,0 @@
-LIBRARY "zlib"
-
-DESCRIPTION '"""zlib data compression library"""'
-
-
-VERSION 1.11
-
-
-HEAPSIZE 1048576,8192
-
-EXPORTS
- adler32 @1
- compress @2
- crc32 @3
- deflate @4
- deflateCopy @5
- deflateEnd @6
- deflateInit2_ @7
- deflateInit_ @8
- deflateParams @9
- deflateReset @10
- deflateSetDictionary @11
- gzclose @12
- gzdopen @13
- gzerror @14
- gzflush @15
- gzopen @16
- gzread @17
- gzwrite @18
- inflate @19
- inflateEnd @20
- inflateInit2_ @21
- inflateInit_ @22
- inflateReset @23
- inflateSetDictionary @24
- inflateSync @25
- uncompress @26
- zlibVersion @27
- gzprintf @28
- gzputc @29
- gzgetc @30
- gzseek @31
- gzrewind @32
- gztell @33
- gzeof @34
- gzsetparams @35
- zError @36
- inflateSyncPoint @37
- get_crc_table @38
- compress2 @39
- gzputs @40
- gzgets @41
-
- unzOpen @61
- unzClose @62
- unzGetGlobalInfo @63
- unzGetCurrentFileInfo @64
- unzGoToFirstFile @65
- unzGoToNextFile @66
- unzOpenCurrentFile @67
- unzReadCurrentFile @68
- unztell @70
- unzeof @71
- unzCloseCurrentFile @72
- unzGetGlobalComment @73
- unzStringFileNameCompare @74
- unzLocateFile @75
- unzGetLocalExtrafield @76
-
- zipOpen @80
- zipOpenNewFileInZip @81
- zipWriteInFileInZip @82
- zipCloseFileInZip @83
- zipClose @84
diff --git a/zlib-1.1.4/contrib/asm386/zlibvc.dsp b/zlib-1.1.4/contrib/asm386/zlibvc.dsp
deleted file mode 100644
index a70d4d4..0000000
--- a/zlib-1.1.4/contrib/asm386/zlibvc.dsp
+++ /dev/null
@@ -1,651 +0,0 @@
-# Microsoft Developer Studio Project File - Name="zlibvc" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
-
-CFG=zlibvc - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "zlibvc.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "zlibvc.mak" CFG="zlibvc - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "zlibvc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "zlibvc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "zlibvc - Win32 ReleaseAxp" (based on\
- "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE "zlibvc - Win32 ReleaseWithoutAsm" (based on\
- "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "zlibvc - Win32 ReleaseWithoutCrtdll" (based on\
- "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\Release"
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /FD /c
-# SUBTRACT CPP /YX
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\Debug"
-# PROP Intermediate_Dir ".\Debug"
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /FD /c
-# SUBTRACT CPP /YX
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "_DEBUG"
-# ADD RSC /l 0x40c /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:".\Debug\zlib.dll"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "zlibvc__"
-# PROP BASE Intermediate_Dir "zlibvc__"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "zlibvc__"
-# PROP Intermediate_Dir "zlibvc__"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /YX /FD /c
-# ADD CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 crtdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /machine:ALPHA /nodefaultlib /out:".\Release\zlib.dll"
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 crtdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /machine:ALPHA /nodefaultlib /out:"zlibvc__\zlib.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "zlibvc_0"
-# PROP BASE Intermediate_Dir "zlibvc_0"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "zlibvc_0"
-# PROP Intermediate_Dir "zlibvc_0"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /FD /c
-# SUBTRACT CPP /YX
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll"
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\zlibvc_0\zlib.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "zlibvc_1"
-# PROP BASE Intermediate_Dir "zlibvc_1"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "zlibvc_1"
-# PROP Intermediate_Dir "zlibvc_1"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /FD /c
-# SUBTRACT CPP /YX
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll"
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\zlibvc_1\zlib.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "zlibvc - Win32 Release"
-# Name "zlibvc - Win32 Debug"
-# Name "zlibvc - Win32 ReleaseAxp"
-# Name "zlibvc - Win32 ReleaseWithoutAsm"
-# Name "zlibvc - Win32 ReleaseWithoutCrtdll"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\adler32.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_ADLER=\
- ".\zconf.h"\
- ".\zlib.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\compress.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_COMPR=\
- ".\zconf.h"\
- ".\zlib.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\crc32.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_CRC32=\
- ".\zconf.h"\
- ".\zlib.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\deflate.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_DEFLA=\
- ".\deflate.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\gvmat32c.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\gzio.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_GZIO_=\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\infblock.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFBL=\
- ".\infblock.h"\
- ".\infcodes.h"\
- ".\inftrees.h"\
- ".\infutil.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\infcodes.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFCO=\
- ".\infblock.h"\
- ".\infcodes.h"\
- ".\inffast.h"\
- ".\inftrees.h"\
- ".\infutil.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\inffast.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFFA=\
- ".\infblock.h"\
- ".\infcodes.h"\
- ".\inffast.h"\
- ".\inftrees.h"\
- ".\infutil.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\inflate.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFLA=\
- ".\infblock.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\inftrees.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFTR=\
- ".\inftrees.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\infutil.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFUT=\
- ".\infblock.h"\
- ".\infcodes.h"\
- ".\inftrees.h"\
- ".\infutil.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\trees.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_TREES=\
- ".\deflate.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\uncompr.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_UNCOM=\
- ".\zconf.h"\
- ".\zlib.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\unzip.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\zip.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlibvc.def
-# End Source File
-# Begin Source File
-
-SOURCE=.\zutil.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_ZUTIL=\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\deflate.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\infblock.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\infcodes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\inffast.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\inftrees.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\infutil.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zconf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zutil.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/zlib-1.1.4/contrib/asm386/zlibvc.dsw b/zlib-1.1.4/contrib/asm386/zlibvc.dsw
deleted file mode 100644
index 493cd87..0000000
--- a/zlib-1.1.4/contrib/asm386/zlibvc.dsw
+++ /dev/null
@@ -1,41 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 5.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "zlibstat"=.\zlibstat.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "zlibvc"=.\zlibvc.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/zlib-1.1.4/contrib/asm586/README.586 b/zlib-1.1.4/contrib/asm586/README.586
deleted file mode 100644
index 6bb78f3..0000000
--- a/zlib-1.1.4/contrib/asm586/README.586
+++ /dev/null
@@ -1,43 +0,0 @@
-This is a patched version of zlib modified to use
-Pentium-optimized assembly code in the deflation algorithm. The files
-changed/added by this patch are:
-
-README.586
-match.S
-
-The effectiveness of these modifications is a bit marginal, as the the
-program's bottleneck seems to be mostly L1-cache contention, for which
-there is no real way to work around without rewriting the basic
-algorithm. The speedup on average is around 5-10% (which is generally
-less than the amount of variance between subsequent executions).
-However, when used at level 9 compression, the cache contention can
-drop enough for the assembly version to achieve 10-20% speedup (and
-sometimes more, depending on the amount of overall redundancy in the
-files). Even here, though, cache contention can still be the limiting
-factor, depending on the nature of the program using the zlib library.
-This may also mean that better improvements will be seen on a Pentium
-with MMX, which suffers much less from L1-cache contention, but I have
-not yet verified this.
-
-Note that this code has been tailored for the Pentium in particular,
-and will not perform well on the Pentium Pro (due to the use of a
-partial register in the inner loop).
-
-If you are using an assembler other than GNU as, you will have to
-translate match.S to use your assembler's syntax. (Have fun.)
-
-Brian Raiter
-breadbox@muppetlabs.com
-April, 1998
-
-
-Added for zlib 1.1.3:
-
-The patches come from
-http://www.muppetlabs.com/~breadbox/software/assembly.html
-
-To compile zlib with this asm file, copy match.S to the zlib directory
-then do:
-
-CFLAGS="-O3 -DASMV" ./configure
-make OBJA=match.o
diff --git a/zlib-1.1.4/contrib/asm586/match.S b/zlib-1.1.4/contrib/asm586/match.S
deleted file mode 100644
index 8f16140..0000000
--- a/zlib-1.1.4/contrib/asm586/match.S
+++ /dev/null
@@ -1,354 +0,0 @@
-/* match.s -- Pentium-optimized version of longest_match()
- * Written for zlib 1.1.2
- * Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com>
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License.
- */
-
-#ifndef NO_UNDERLINE
-#define match_init _match_init
-#define longest_match _longest_match
-#endif
-
-#define MAX_MATCH (258)
-#define MIN_MATCH (3)
-#define MIN_LOOKAHEAD (MAX_MATCH + MIN_MATCH + 1)
-#define MAX_MATCH_8 ((MAX_MATCH + 7) & ~7)
-
-/* stack frame offsets */
-
-#define wmask 0 /* local copy of s->wmask */
-#define window 4 /* local copy of s->window */
-#define windowbestlen 8 /* s->window + bestlen */
-#define chainlenscanend 12 /* high word: current chain len */
- /* low word: last bytes sought */
-#define scanstart 16 /* first two bytes of string */
-#define scanalign 20 /* dword-misalignment of string */
-#define nicematch 24 /* a good enough match size */
-#define bestlen 28 /* size of best match so far */
-#define scan 32 /* ptr to string wanting match */
-
-#define LocalVarsSize (36)
-/* saved ebx 36 */
-/* saved edi 40 */
-/* saved esi 44 */
-/* saved ebp 48 */
-/* return address 52 */
-#define deflatestate 56 /* the function arguments */
-#define curmatch 60
-
-/* Offsets for fields in the deflate_state structure. These numbers
- * are calculated from the definition of deflate_state, with the
- * assumption that the compiler will dword-align the fields. (Thus,
- * changing the definition of deflate_state could easily cause this
- * program to crash horribly, without so much as a warning at
- * compile time. Sigh.)
- */
-#define dsWSize 36
-#define dsWMask 44
-#define dsWindow 48
-#define dsPrev 56
-#define dsMatchLen 88
-#define dsPrevMatch 92
-#define dsStrStart 100
-#define dsMatchStart 104
-#define dsLookahead 108
-#define dsPrevLen 112
-#define dsMaxChainLen 116
-#define dsGoodMatch 132
-#define dsNiceMatch 136
-
-
-.file "match.S"
-
-.globl match_init, longest_match
-
-.text
-
-/* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */
-
-longest_match:
-
-/* Save registers that the compiler may be using, and adjust %esp to */
-/* make room for our stack frame. */
-
- pushl %ebp
- pushl %edi
- pushl %esi
- pushl %ebx
- subl $LocalVarsSize, %esp
-
-/* Retrieve the function arguments. %ecx will hold cur_match */
-/* throughout the entire function. %edx will hold the pointer to the */
-/* deflate_state structure during the function's setup (before */
-/* entering the main loop). */
-
- movl deflatestate(%esp), %edx
- movl curmatch(%esp), %ecx
-
-/* if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; */
-
- movl dsNiceMatch(%edx), %eax
- movl dsLookahead(%edx), %ebx
- cmpl %eax, %ebx
- jl LookaheadLess
- movl %eax, %ebx
-LookaheadLess: movl %ebx, nicematch(%esp)
-
-/* register Bytef *scan = s->window + s->strstart; */
-
- movl dsWindow(%edx), %esi
- movl %esi, window(%esp)
- movl dsStrStart(%edx), %ebp
- lea (%esi,%ebp), %edi
- movl %edi, scan(%esp)
-
-/* Determine how many bytes the scan ptr is off from being */
-/* dword-aligned. */
-
- movl %edi, %eax
- negl %eax
- andl $3, %eax
- movl %eax, scanalign(%esp)
-
-/* IPos limit = s->strstart > (IPos)MAX_DIST(s) ? */
-/* s->strstart - (IPos)MAX_DIST(s) : NIL; */
-
- movl dsWSize(%edx), %eax
- subl $MIN_LOOKAHEAD, %eax
- subl %eax, %ebp
- jg LimitPositive
- xorl %ebp, %ebp
-LimitPositive:
-
-/* unsigned chain_length = s->max_chain_length; */
-/* if (s->prev_length >= s->good_match) { */
-/* chain_length >>= 2; */
-/* } */
-
- movl dsPrevLen(%edx), %eax
- movl dsGoodMatch(%edx), %ebx
- cmpl %ebx, %eax
- movl dsMaxChainLen(%edx), %ebx
- jl LastMatchGood
- shrl $2, %ebx
-LastMatchGood:
-
-/* chainlen is decremented once beforehand so that the function can */
-/* use the sign flag instead of the zero flag for the exit test. */
-/* It is then shifted into the high word, to make room for the scanend */
-/* scanend value, which it will always accompany. */
-
- decl %ebx
- shll $16, %ebx
-
-/* int best_len = s->prev_length; */
-
- movl dsPrevLen(%edx), %eax
- movl %eax, bestlen(%esp)
-
-/* Store the sum of s->window + best_len in %esi locally, and in %esi. */
-
- addl %eax, %esi
- movl %esi, windowbestlen(%esp)
-
-/* register ush scan_start = *(ushf*)scan; */
-/* register ush scan_end = *(ushf*)(scan+best_len-1); */
-
- movw (%edi), %bx
- movw %bx, scanstart(%esp)
- movw -1(%edi,%eax), %bx
- movl %ebx, chainlenscanend(%esp)
-
-/* Posf *prev = s->prev; */
-/* uInt wmask = s->w_mask; */
-
- movl dsPrev(%edx), %edi
- movl dsWMask(%edx), %edx
- mov %edx, wmask(%esp)
-
-/* Jump into the main loop. */
-
- jmp LoopEntry
-
-.balign 16
-
-/* do {
- * match = s->window + cur_match;
- * if (*(ushf*)(match+best_len-1) != scan_end ||
- * *(ushf*)match != scan_start) continue;
- * [...]
- * } while ((cur_match = prev[cur_match & wmask]) > limit
- * && --chain_length != 0);
- *
- * Here is the inner loop of the function. The function will spend the
- * majority of its time in this loop, and majority of that time will
- * be spent in the first ten instructions.
- *
- * Within this loop:
- * %ebx = chainlenscanend - i.e., ((chainlen << 16) | scanend)
- * %ecx = curmatch
- * %edx = curmatch & wmask
- * %esi = windowbestlen - i.e., (window + bestlen)
- * %edi = prev
- * %ebp = limit
- *
- * Two optimization notes on the choice of instructions:
- *
- * The first instruction uses a 16-bit address, which costs an extra,
- * unpairable cycle. This is cheaper than doing a 32-bit access and
- * zeroing the high word, due to the 3-cycle misalignment penalty which
- * would occur half the time. This also turns out to be cheaper than
- * doing two separate 8-bit accesses, as the memory is so rarely in the
- * L1 cache.
- *
- * The window buffer, however, apparently spends a lot of time in the
- * cache, and so it is faster to retrieve the word at the end of the
- * match string with two 8-bit loads. The instructions that test the
- * word at the beginning of the match string, however, are executed
- * much less frequently, and there it was cheaper to use 16-bit
- * instructions, which avoided the necessity of saving off and
- * subsequently reloading one of the other registers.
- */
-LookupLoop:
- /* 1 U & V */
- movw (%edi,%edx,2), %cx /* 2 U pipe */
- movl wmask(%esp), %edx /* 2 V pipe */
- cmpl %ebp, %ecx /* 3 U pipe */
- jbe LeaveNow /* 3 V pipe */
- subl $0x00010000, %ebx /* 4 U pipe */
- js LeaveNow /* 4 V pipe */
-LoopEntry: movb -1(%esi,%ecx), %al /* 5 U pipe */
- andl %ecx, %edx /* 5 V pipe */
- cmpb %bl, %al /* 6 U pipe */
- jnz LookupLoop /* 6 V pipe */
- movb (%esi,%ecx), %ah
- cmpb %bh, %ah
- jnz LookupLoop
- movl window(%esp), %eax
- movw (%eax,%ecx), %ax
- cmpw scanstart(%esp), %ax
- jnz LookupLoop
-
-/* Store the current value of chainlen. */
-
- movl %ebx, chainlenscanend(%esp)
-
-/* Point %edi to the string under scrutiny, and %esi to the string we */
-/* are hoping to match it up with. In actuality, %esi and %edi are */
-/* both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and %edx is */
-/* initialized to -(MAX_MATCH_8 - scanalign). */
-
- movl window(%esp), %esi
- movl scan(%esp), %edi
- addl %ecx, %esi
- movl scanalign(%esp), %eax
- movl $(-MAX_MATCH_8), %edx
- lea MAX_MATCH_8(%edi,%eax), %edi
- lea MAX_MATCH_8(%esi,%eax), %esi
-
-/* Test the strings for equality, 8 bytes at a time. At the end,
- * adjust %edx so that it is offset to the exact byte that mismatched.
- *
- * We already know at this point that the first three bytes of the
- * strings match each other, and they can be safely passed over before
- * starting the compare loop. So what this code does is skip over 0-3
- * bytes, as much as necessary in order to dword-align the %edi
- * pointer. (%esi will still be misaligned three times out of four.)
- *
- * It should be confessed that this loop usually does not represent
- * much of the total running time. Replacing it with a more
- * straightforward "rep cmpsb" would not drastically degrade
- * performance.
- */
-LoopCmps:
- movl (%esi,%edx), %eax
- movl (%edi,%edx), %ebx
- xorl %ebx, %eax
- jnz LeaveLoopCmps
- movl 4(%esi,%edx), %eax
- movl 4(%edi,%edx), %ebx
- xorl %ebx, %eax
- jnz LeaveLoopCmps4
- addl $8, %edx
- jnz LoopCmps
- jmp LenMaximum
-LeaveLoopCmps4: addl $4, %edx
-LeaveLoopCmps: testl $0x0000FFFF, %eax
- jnz LenLower
- addl $2, %edx
- shrl $16, %eax
-LenLower: subb $1, %al
- adcl $0, %edx
-
-/* Calculate the length of the match. If it is longer than MAX_MATCH, */
-/* then automatically accept it as the best possible match and leave. */
-
- lea (%edi,%edx), %eax
- movl scan(%esp), %edi
- subl %edi, %eax
- cmpl $MAX_MATCH, %eax
- jge LenMaximum
-
-/* If the length of the match is not longer than the best match we */
-/* have so far, then forget it and return to the lookup loop. */
-
- movl deflatestate(%esp), %edx
- movl bestlen(%esp), %ebx
- cmpl %ebx, %eax
- jg LongerMatch
- movl chainlenscanend(%esp), %ebx
- movl windowbestlen(%esp), %esi
- movl dsPrev(%edx), %edi
- movl wmask(%esp), %edx
- andl %ecx, %edx
- jmp LookupLoop
-
-/* s->match_start = cur_match; */
-/* best_len = len; */
-/* if (len >= nice_match) break; */
-/* scan_end = *(ushf*)(scan+best_len-1); */
-
-LongerMatch: movl nicematch(%esp), %ebx
- movl %eax, bestlen(%esp)
- movl %ecx, dsMatchStart(%edx)
- cmpl %ebx, %eax
- jge LeaveNow
- movl window(%esp), %esi
- addl %eax, %esi
- movl %esi, windowbestlen(%esp)
- movl chainlenscanend(%esp), %ebx
- movw -1(%edi,%eax), %bx
- movl dsPrev(%edx), %edi
- movl %ebx, chainlenscanend(%esp)
- movl wmask(%esp), %edx
- andl %ecx, %edx
- jmp LookupLoop
-
-/* Accept the current string, with the maximum possible length. */
-
-LenMaximum: movl deflatestate(%esp), %edx
- movl $MAX_MATCH, bestlen(%esp)
- movl %ecx, dsMatchStart(%edx)
-
-/* if ((uInt)best_len <= s->lookahead) return (uInt)best_len; */
-/* return s->lookahead; */
-
-LeaveNow:
- movl deflatestate(%esp), %edx
- movl bestlen(%esp), %ebx
- movl dsLookahead(%edx), %eax
- cmpl %eax, %ebx
- jg LookaheadRet
- movl %ebx, %eax
-LookaheadRet:
-
-/* Restore the stack and return from whence we came. */
-
- addl $LocalVarsSize, %esp
- popl %ebx
- popl %esi
- popl %edi
- popl %ebp
-match_init: ret
diff --git a/zlib-1.1.4/contrib/asm686/README.686 b/zlib-1.1.4/contrib/asm686/README.686
deleted file mode 100644
index a593f23..0000000
--- a/zlib-1.1.4/contrib/asm686/README.686
+++ /dev/null
@@ -1,34 +0,0 @@
-This is a patched version of zlib, modified to use
-Pentium-Pro-optimized assembly code in the deflation algorithm. The
-files changed/added by this patch are:
-
-README.686
-match.S
-
-The speedup that this patch provides varies, depending on whether the
-compiler used to build the original version of zlib falls afoul of the
-PPro's speed traps. My own tests show a speedup of around 10-20% at
-the default compression level, and 20-30% using -9, against a version
-compiled using gcc 2.7.2.3. Your mileage may vary.
-
-Note that this code has been tailored for the PPro/PII in particular,
-and will not perform particuarly well on a Pentium.
-
-If you are using an assembler other than GNU as, you will have to
-translate match.S to use your assembler's syntax. (Have fun.)
-
-Brian Raiter
-breadbox@muppetlabs.com
-April, 1998
-
-
-Added for zlib 1.1.3:
-
-The patches come from
-http://www.muppetlabs.com/~breadbox/software/assembly.html
-
-To compile zlib with this asm file, copy match.S to the zlib directory
-then do:
-
-CFLAGS="-O3 -DASMV" ./configure
-make OBJA=match.o
diff --git a/zlib-1.1.4/contrib/asm686/match.S b/zlib-1.1.4/contrib/asm686/match.S
deleted file mode 100644
index 8e86c33..0000000
--- a/zlib-1.1.4/contrib/asm686/match.S
+++ /dev/null
@@ -1,327 +0,0 @@
-/* match.s -- Pentium-Pro-optimized version of longest_match()
- * Written for zlib 1.1.2
- * Copyright (C) 1998 Brian Raiter <breadbox@muppetlabs.com>
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License.
- */
-
-#ifndef NO_UNDERLINE
-#define match_init _match_init
-#define longest_match _longest_match
-#endif
-
-#define MAX_MATCH (258)
-#define MIN_MATCH (3)
-#define MIN_LOOKAHEAD (MAX_MATCH + MIN_MATCH + 1)
-#define MAX_MATCH_8 ((MAX_MATCH + 7) & ~7)
-
-/* stack frame offsets */
-
-#define chainlenwmask 0 /* high word: current chain len */
- /* low word: s->wmask */
-#define window 4 /* local copy of s->window */
-#define windowbestlen 8 /* s->window + bestlen */
-#define scanstart 16 /* first two bytes of string */
-#define scanend 12 /* last two bytes of string */
-#define scanalign 20 /* dword-misalignment of string */
-#define nicematch 24 /* a good enough match size */
-#define bestlen 28 /* size of best match so far */
-#define scan 32 /* ptr to string wanting match */
-
-#define LocalVarsSize (36)
-/* saved ebx 36 */
-/* saved edi 40 */
-/* saved esi 44 */
-/* saved ebp 48 */
-/* return address 52 */
-#define deflatestate 56 /* the function arguments */
-#define curmatch 60
-
-/* Offsets for fields in the deflate_state structure. These numbers
- * are calculated from the definition of deflate_state, with the
- * assumption that the compiler will dword-align the fields. (Thus,
- * changing the definition of deflate_state could easily cause this
- * program to crash horribly, without so much as a warning at
- * compile time. Sigh.)
- */
-#define dsWSize 36
-#define dsWMask 44
-#define dsWindow 48
-#define dsPrev 56
-#define dsMatchLen 88
-#define dsPrevMatch 92
-#define dsStrStart 100
-#define dsMatchStart 104
-#define dsLookahead 108
-#define dsPrevLen 112
-#define dsMaxChainLen 116
-#define dsGoodMatch 132
-#define dsNiceMatch 136
-
-
-.file "match.S"
-
-.globl match_init, longest_match
-
-.text
-
-/* uInt longest_match(deflate_state *deflatestate, IPos curmatch) */
-
-longest_match:
-
-/* Save registers that the compiler may be using, and adjust %esp to */
-/* make room for our stack frame. */
-
- pushl %ebp
- pushl %edi
- pushl %esi
- pushl %ebx
- subl $LocalVarsSize, %esp
-
-/* Retrieve the function arguments. %ecx will hold cur_match */
-/* throughout the entire function. %edx will hold the pointer to the */
-/* deflate_state structure during the function's setup (before */
-/* entering the main loop). */
-
- movl deflatestate(%esp), %edx
- movl curmatch(%esp), %ecx
-
-/* uInt wmask = s->w_mask; */
-/* unsigned chain_length = s->max_chain_length; */
-/* if (s->prev_length >= s->good_match) { */
-/* chain_length >>= 2; */
-/* } */
-
- movl dsPrevLen(%edx), %eax
- movl dsGoodMatch(%edx), %ebx
- cmpl %ebx, %eax
- movl dsWMask(%edx), %eax
- movl dsMaxChainLen(%edx), %ebx
- jl LastMatchGood
- shrl $2, %ebx
-LastMatchGood:
-
-/* chainlen is decremented once beforehand so that the function can */
-/* use the sign flag instead of the zero flag for the exit test. */
-/* It is then shifted into the high word, to make room for the wmask */
-/* value, which it will always accompany. */
-
- decl %ebx
- shll $16, %ebx
- orl %eax, %ebx
- movl %ebx, chainlenwmask(%esp)
-
-/* if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; */
-
- movl dsNiceMatch(%edx), %eax
- movl dsLookahead(%edx), %ebx
- cmpl %eax, %ebx
- jl LookaheadLess
- movl %eax, %ebx
-LookaheadLess: movl %ebx, nicematch(%esp)
-
-/* register Bytef *scan = s->window + s->strstart; */
-
- movl dsWindow(%edx), %esi
- movl %esi, window(%esp)
- movl dsStrStart(%edx), %ebp
- lea (%esi,%ebp), %edi
- movl %edi, scan(%esp)
-
-/* Determine how many bytes the scan ptr is off from being */
-/* dword-aligned. */
-
- movl %edi, %eax
- negl %eax
- andl $3, %eax
- movl %eax, scanalign(%esp)
-
-/* IPos limit = s->strstart > (IPos)MAX_DIST(s) ? */
-/* s->strstart - (IPos)MAX_DIST(s) : NIL; */
-
- movl dsWSize(%edx), %eax
- subl $MIN_LOOKAHEAD, %eax
- subl %eax, %ebp
- jg LimitPositive
- xorl %ebp, %ebp
-LimitPositive:
-
-/* int best_len = s->prev_length; */
-
- movl dsPrevLen(%edx), %eax
- movl %eax, bestlen(%esp)
-
-/* Store the sum of s->window + best_len in %esi locally, and in %esi. */
-
- addl %eax, %esi
- movl %esi, windowbestlen(%esp)
-
-/* register ush scan_start = *(ushf*)scan; */
-/* register ush scan_end = *(ushf*)(scan+best_len-1); */
-/* Posf *prev = s->prev; */
-
- movzwl (%edi), %ebx
- movl %ebx, scanstart(%esp)
- movzwl -1(%edi,%eax), %ebx
- movl %ebx, scanend(%esp)
- movl dsPrev(%edx), %edi
-
-/* Jump into the main loop. */
-
- movl chainlenwmask(%esp), %edx
- jmp LoopEntry
-
-.balign 16
-
-/* do {
- * match = s->window + cur_match;
- * if (*(ushf*)(match+best_len-1) != scan_end ||
- * *(ushf*)match != scan_start) continue;
- * [...]
- * } while ((cur_match = prev[cur_match & wmask]) > limit
- * && --chain_length != 0);
- *
- * Here is the inner loop of the function. The function will spend the
- * majority of its time in this loop, and majority of that time will
- * be spent in the first ten instructions.
- *
- * Within this loop:
- * %ebx = scanend
- * %ecx = curmatch
- * %edx = chainlenwmask - i.e., ((chainlen << 16) | wmask)
- * %esi = windowbestlen - i.e., (window + bestlen)
- * %edi = prev
- * %ebp = limit
- */
-LookupLoop:
- andl %edx, %ecx
- movzwl (%edi,%ecx,2), %ecx
- cmpl %ebp, %ecx
- jbe LeaveNow
- subl $0x00010000, %edx
- js LeaveNow
-LoopEntry: movzwl -1(%esi,%ecx), %eax
- cmpl %ebx, %eax
- jnz LookupLoop
- movl window(%esp), %eax
- movzwl (%eax,%ecx), %eax
- cmpl scanstart(%esp), %eax
- jnz LookupLoop
-
-/* Store the current value of chainlen. */
-
- movl %edx, chainlenwmask(%esp)
-
-/* Point %edi to the string under scrutiny, and %esi to the string we */
-/* are hoping to match it up with. In actuality, %esi and %edi are */
-/* both pointed (MAX_MATCH_8 - scanalign) bytes ahead, and %edx is */
-/* initialized to -(MAX_MATCH_8 - scanalign). */
-
- movl window(%esp), %esi
- movl scan(%esp), %edi
- addl %ecx, %esi
- movl scanalign(%esp), %eax
- movl $(-MAX_MATCH_8), %edx
- lea MAX_MATCH_8(%edi,%eax), %edi
- lea MAX_MATCH_8(%esi,%eax), %esi
-
-/* Test the strings for equality, 8 bytes at a time. At the end,
- * adjust %edx so that it is offset to the exact byte that mismatched.
- *
- * We already know at this point that the first three bytes of the
- * strings match each other, and they can be safely passed over before
- * starting the compare loop. So what this code does is skip over 0-3
- * bytes, as much as necessary in order to dword-align the %edi
- * pointer. (%esi will still be misaligned three times out of four.)
- *
- * It should be confessed that this loop usually does not represent
- * much of the total running time. Replacing it with a more
- * straightforward "rep cmpsb" would not drastically degrade
- * performance.
- */
-LoopCmps:
- movl (%esi,%edx), %eax
- xorl (%edi,%edx), %eax
- jnz LeaveLoopCmps
- movl 4(%esi,%edx), %eax
- xorl 4(%edi,%edx), %eax
- jnz LeaveLoopCmps4
- addl $8, %edx
- jnz LoopCmps
- jmp LenMaximum
-LeaveLoopCmps4: addl $4, %edx
-LeaveLoopCmps: testl $0x0000FFFF, %eax
- jnz LenLower
- addl $2, %edx
- shrl $16, %eax
-LenLower: subb $1, %al
- adcl $0, %edx
-
-/* Calculate the length of the match. If it is longer than MAX_MATCH, */
-/* then automatically accept it as the best possible match and leave. */
-
- lea (%edi,%edx), %eax
- movl scan(%esp), %edi
- subl %edi, %eax
- cmpl $MAX_MATCH, %eax
- jge LenMaximum
-
-/* If the length of the match is not longer than the best match we */
-/* have so far, then forget it and return to the lookup loop. */
-
- movl deflatestate(%esp), %edx
- movl bestlen(%esp), %ebx
- cmpl %ebx, %eax
- jg LongerMatch
- movl windowbestlen(%esp), %esi
- movl dsPrev(%edx), %edi
- movl scanend(%esp), %ebx
- movl chainlenwmask(%esp), %edx
- jmp LookupLoop
-
-/* s->match_start = cur_match; */
-/* best_len = len; */
-/* if (len >= nice_match) break; */
-/* scan_end = *(ushf*)(scan+best_len-1); */
-
-LongerMatch: movl nicematch(%esp), %ebx
- movl %eax, bestlen(%esp)
- movl %ecx, dsMatchStart(%edx)
- cmpl %ebx, %eax
- jge LeaveNow
- movl window(%esp), %esi
- addl %eax, %esi
- movl %esi, windowbestlen(%esp)
- movzwl -1(%edi,%eax), %ebx
- movl dsPrev(%edx), %edi
- movl %ebx, scanend(%esp)
- movl chainlenwmask(%esp), %edx
- jmp LookupLoop
-
-/* Accept the current string, with the maximum possible length. */
-
-LenMaximum: movl deflatestate(%esp), %edx
- movl $MAX_MATCH, bestlen(%esp)
- movl %ecx, dsMatchStart(%edx)
-
-/* if ((uInt)best_len <= s->lookahead) return (uInt)best_len; */
-/* return s->lookahead; */
-
-LeaveNow:
- movl deflatestate(%esp), %edx
- movl bestlen(%esp), %ebx
- movl dsLookahead(%edx), %eax
- cmpl %eax, %ebx
- jg LookaheadRet
- movl %ebx, %eax
-LookaheadRet:
-
-/* Restore the stack and return from whence we came. */
-
- addl $LocalVarsSize, %esp
- popl %ebx
- popl %esi
- popl %edi
- popl %ebp
-match_init: ret
diff --git a/zlib-1.1.4/contrib/delphi/zlib.mak b/zlib-1.1.4/contrib/delphi/zlib.mak
deleted file mode 100644
index ba557e2..0000000
--- a/zlib-1.1.4/contrib/delphi/zlib.mak
+++ /dev/null
@@ -1,36 +0,0 @@
-# Makefile for zlib32bd.lib
-# ------------- Borland C++ 4.5 -------------
-
-# The (32-bit) zlib32bd.lib made with this makefile is intended for use
-# in making the (32-bit) DLL, png32bd.dll. It uses the "stdcall" calling
-# convention.
-
-CFLAGS= -ps -O2 -C -K -N- -k- -d -3 -r- -w-par -w-aus -WDE
-CC=f:\bc45\bin\bcc32
-LIBFLAGS= /C
-LIB=f:\bc45\bin\tlib
-ZLIB=zlib32bd.lib
-
-.autodepend
-.c.obj:
- $(CC) -c $(CFLAGS) $<
-
-OBJ1=adler32.obj compress.obj crc32.obj deflate.obj gzio.obj infblock.obj
-OBJ2=infcodes.obj inflate.obj inftrees.obj infutil.obj inffast.obj
-OBJ3=trees.obj uncompr.obj zutil.obj
-pOBJ1=+adler32.obj+compress.obj+crc32.obj+deflate.obj+gzio.obj+infblock.obj
-pOBJ2=+infcodes.obj+inflate.obj+inftrees.obj+infutil.obj+inffast.obj
-pOBJ3=+trees.obj+uncompr.obj+zutil.obj
-
-all: $(ZLIB)
-
-$(ZLIB): $(OBJ1) $(OBJ2) $(OBJ3)
- @if exist $@ del $@
- $(LIB) @&&|
-$@ $(LIBFLAGS) &
-$(pOBJ1) &
-$(pOBJ2) &
-$(pOBJ3)
-|
-
-# End of makefile for zlib32bd.lib
diff --git a/zlib-1.1.4/contrib/delphi/zlibdef.pas b/zlib-1.1.4/contrib/delphi/zlibdef.pas
deleted file mode 100644
index 4f96b7d..0000000
--- a/zlib-1.1.4/contrib/delphi/zlibdef.pas
+++ /dev/null
@@ -1,169 +0,0 @@
-unit zlibdef;
-
-interface
-
-uses
- Windows;
-
-const
- ZLIB_VERSION = '1.1.3';
-
-type
- voidpf = Pointer;
- int = Integer;
- uInt = Cardinal;
- pBytef = PChar;
- uLong = Cardinal;
-
- alloc_func = function(opaque: voidpf; items, size: uInt): voidpf;
- stdcall;
- free_func = procedure(opaque, address: voidpf);
- stdcall;
-
- internal_state = Pointer;
-
- z_streamp = ^z_stream;
- z_stream = packed record
- next_in: pBytef; // next input byte
- avail_in: uInt; // number of bytes available at next_in
- total_in: uLong; // total nb of input bytes read so far
-
- next_out: pBytef; // next output byte should be put there
- avail_out: uInt; // remaining free space at next_out
- total_out: uLong; // total nb of bytes output so far
-
- msg: PChar; // last error message, NULL if no error
- state: internal_state; // not visible by applications
-
- zalloc: alloc_func; // used to allocate the internal state
- zfree: free_func; // used to free the internal state
- opaque: voidpf; // private data object passed to zalloc and zfree
-
- data_type: int; // best guess about the data type: ascii or binary
- adler: uLong; // adler32 value of the uncompressed data
- reserved: uLong; // reserved for future use
- end;
-
-const
- Z_NO_FLUSH = 0;
- Z_SYNC_FLUSH = 2;
- Z_FULL_FLUSH = 3;
- Z_FINISH = 4;
-
- Z_OK = 0;
- Z_STREAM_END = 1;
-
- Z_NO_COMPRESSION = 0;
- Z_BEST_SPEED = 1;
- Z_BEST_COMPRESSION = 9;
- Z_DEFAULT_COMPRESSION = -1;
-
- Z_FILTERED = 1;
- Z_HUFFMAN_ONLY = 2;
- Z_DEFAULT_STRATEGY = 0;
-
- Z_BINARY = 0;
- Z_ASCII = 1;
- Z_UNKNOWN = 2;
-
- Z_DEFLATED = 8;
-
- MAX_MEM_LEVEL = 9;
-
-function adler32(adler: uLong; const buf: pBytef; len: uInt): uLong;
- stdcall;
-function crc32(crc: uLong; const buf: pBytef; len: uInt): uLong;
- stdcall;
-function deflate(strm: z_streamp; flush: int): int;
- stdcall;
-function deflateCopy(dest, source: z_streamp): int;
- stdcall;
-function deflateEnd(strm: z_streamp): int;
- stdcall;
-function deflateInit2_(strm: z_streamp; level, method,
- windowBits, memLevel, strategy: int;
- const version: PChar; stream_size: int): int;
- stdcall;
-function deflateInit_(strm: z_streamp; level: int;
- const version: PChar; stream_size: int): int;
- stdcall;
-function deflateParams(strm: z_streamp; level, strategy: int): int;
- stdcall;
-function deflateReset(strm: z_streamp): int;
- stdcall;
-function deflateSetDictionary(strm: z_streamp;
- const dictionary: pBytef;
- dictLength: uInt): int;
- stdcall;
-function inflate(strm: z_streamp; flush: int): int;
- stdcall;
-function inflateEnd(strm: z_streamp): int;
- stdcall;
-function inflateInit2_(strm: z_streamp; windowBits: int;
- const version: PChar; stream_size: int): int;
- stdcall;
-function inflateInit_(strm: z_streamp; const version: PChar;
- stream_size: int): int;
- stdcall;
-function inflateReset(strm: z_streamp): int;
- stdcall;
-function inflateSetDictionary(strm: z_streamp;
- const dictionary: pBytef;
- dictLength: uInt): int;
- stdcall;
-function inflateSync(strm: z_streamp): int;
- stdcall;
-
-function deflateInit(strm: z_streamp; level: int): int;
-function deflateInit2(strm: z_streamp; level, method, windowBits,
- memLevel, strategy: int): int;
-function inflateInit(strm: z_streamp): int;
-function inflateInit2(strm: z_streamp; windowBits: int): int;
-
-implementation
-
-function deflateInit(strm: z_streamp; level: int): int;
-begin
- Result := deflateInit_(strm, level, ZLIB_VERSION, sizeof(z_stream));
-end;
-
-function deflateInit2(strm: z_streamp; level, method, windowBits,
- memLevel, strategy: int): int;
-begin
- Result := deflateInit2_(strm, level, method, windowBits, memLevel,
- strategy, ZLIB_VERSION, sizeof(z_stream));
-end;
-
-function inflateInit(strm: z_streamp): int;
-begin
- Result := inflateInit_(strm, ZLIB_VERSION, sizeof(z_stream));
-end;
-
-function inflateInit2(strm: z_streamp; windowBits: int): int;
-begin
- Result := inflateInit2_(strm, windowBits, ZLIB_VERSION,
- sizeof(z_stream));
-end;
-
-const
- zlibDLL = 'png32bd.dll';
-
-function adler32; external zlibDLL;
-function crc32; external zlibDLL;
-function deflate; external zlibDLL;
-function deflateCopy; external zlibDLL;
-function deflateEnd; external zlibDLL;
-function deflateInit2_; external zlibDLL;
-function deflateInit_; external zlibDLL;
-function deflateParams; external zlibDLL;
-function deflateReset; external zlibDLL;
-function deflateSetDictionary; external zlibDLL;
-function inflate; external zlibDLL;
-function inflateEnd; external zlibDLL;
-function inflateInit2_; external zlibDLL;
-function inflateInit_; external zlibDLL;
-function inflateReset; external zlibDLL;
-function inflateSetDictionary; external zlibDLL;
-function inflateSync; external zlibDLL;
-
-end.
diff --git a/zlib-1.1.4/contrib/delphi2/d_zlib.bpr b/zlib-1.1.4/contrib/delphi2/d_zlib.bpr
deleted file mode 100644
index 78bb254..0000000
--- a/zlib-1.1.4/contrib/delphi2/d_zlib.bpr
+++ /dev/null
@@ -1,224 +0,0 @@
-# ---------------------------------------------------------------------------
-!if !$d(BCB)
-BCB = $(MAKEDIR)\..
-!endif
-
-# ---------------------------------------------------------------------------
-# IDE SECTION
-# ---------------------------------------------------------------------------
-# The following section of the project makefile is managed by the BCB IDE.
-# It is recommended to use the IDE to change any of the values in this
-# section.
-# ---------------------------------------------------------------------------
-
-VERSION = BCB.03
-# ---------------------------------------------------------------------------
-PROJECT = d_zlib.lib
-OBJFILES = d_zlib.obj adler32.obj deflate.obj infblock.obj infcodes.obj inffast.obj \
- inflate.obj inftrees.obj infutil.obj trees.obj
-RESFILES =
-RESDEPEN = $(RESFILES)
-LIBFILES =
-LIBRARIES = VCL35.lib
-SPARELIBS = VCL35.lib
-DEFFILE =
-PACKAGES = VCLX35.bpi VCL35.bpi VCLDB35.bpi VCLDBX35.bpi ibsmp35.bpi bcbsmp35.bpi \
- dclocx35.bpi QRPT35.bpi TEEUI35.bpi TEEDB35.bpi TEE35.bpi DSS35.bpi \
- NMFAST35.bpi INETDB35.bpi INET35.bpi VCLMID35.bpi
-# ---------------------------------------------------------------------------
-PATHCPP = .;
-PATHASM = .;
-PATHPAS = .;
-PATHRC = .;
-DEBUGLIBPATH = $(BCB)\lib\debug
-RELEASELIBPATH = $(BCB)\lib\release
-# ---------------------------------------------------------------------------
-CFLAG1 = -O2 -Ve -d -k- -vi
-CFLAG2 = -I$(BCB)\include;$(BCB)\include\vcl -H=$(BCB)\lib\vcl35.csm
-CFLAG3 = -ff -pr -5
-PFLAGS = -U;$(DEBUGLIBPATH) -I$(BCB)\include;$(BCB)\include\vcl -H -W -$I- -v -JPHN -M
-RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
-AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn
-LFLAGS =
-IFLAGS = -g -Gn
-# ---------------------------------------------------------------------------
-ALLOBJ = c0w32.obj $(OBJFILES)
-ALLRES = $(RESFILES)
-ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
-# ---------------------------------------------------------------------------
-!!ifdef IDEOPTIONS
-
-[Version Info]
-IncludeVerInfo=0
-AutoIncBuild=0
-MajorVer=1
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=0
-Locale=1040
-CodePage=1252
-
-[Version Info Keys]
-CompanyName=
-FileDescription=
-FileVersion=1.0.0.0
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=
-ProductName=
-ProductVersion=1.0.0.0
-Comments=
-
-[HistoryLists\hlIncludePath]
-Count=2
-Item0=$(BCB)\include
-Item1=$(BCB)\include;$(BCB)\include\vcl
-
-[HistoryLists\hlLibraryPath]
-Count=1
-Item0=$(BCB)\lib\obj;$(BCB)\lib
-
-[HistoryLists\hlDebugSourcePath]
-Count=1
-Item0=$(BCB)\source\vcl
-
-[Debugging]
-DebugSourceDirs=
-
-[Parameters]
-RunParams=
-HostApplication=
-
-!endif
-
- ---------------------------------------------------------------------------
-# MAKE SECTION
-# ---------------------------------------------------------------------------
-# This section of the project file is not used by the BCB IDE. It is for
-# the benefit of building from the command-line using the MAKE utility.
-# ---------------------------------------------------------------------------
-
-.autodepend
-# ---------------------------------------------------------------------------
-!if !$d(BCC32)
-BCC32 = bcc32
-!endif
-
-!if !$d(DCC32)
-DCC32 = dcc32
-!endif
-
-!if !$d(TASM32)
-TASM32 = tasm32
-!endif
-
-!if !$d(LINKER)
-LINKER = TLib
-!endif
-
-!if !$d(BRCC32)
-BRCC32 = brcc32
-!endif
-# ---------------------------------------------------------------------------
-!if $d(PATHCPP)
-.PATH.CPP = $(PATHCPP)
-.PATH.C = $(PATHCPP)
-!endif
-
-!if $d(PATHPAS)
-.PATH.PAS = $(PATHPAS)
-!endif
-
-!if $d(PATHASM)
-.PATH.ASM = $(PATHASM)
-!endif
-
-!if $d(PATHRC)
-.PATH.RC = $(PATHRC)
-!endif
-# ---------------------------------------------------------------------------
-!ifdef IDEOPTIONS
-
-[Version Info]
-IncludeVerInfo=0
-AutoIncBuild=0
-MajorVer=1
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=0
-Locale=1040
-CodePage=1252
-
-[Version Info Keys]
-CompanyName=
-FileDescription=
-FileVersion=1.0.0.0
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=
-ProductName=
-ProductVersion=1.0.0.0
-Comments=
-
-[HistoryLists\hlIncludePath]
-Count=2
-Item0=$(BCB)\include;$(BCB)\include\vcl
-Item1=$(BCB)\include
-
-[HistoryLists\hlLibraryPath]
-Count=1
-Item0=$(BCB)\lib\obj;$(BCB)\lib
-
-[HistoryLists\hlDebugSourcePath]
-Count=1
-Item0=$(BCB)\source\vcl
-
-[Debugging]
-DebugSourceDirs=
-
-[Parameters]
-RunParams=
-HostApplication=
-
-!endif
-
-$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
- $(BCB)\BIN\$(LINKER) @&&!
- $(LFLAGS) $(IFLAGS) +
- $(ALLOBJ), +
- $(PROJECT),, +
- $(ALLLIB), +
- $(DEFFILE), +
- $(ALLRES)
-!
-# ---------------------------------------------------------------------------
-.pas.hpp:
- $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
-
-.pas.obj:
- $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
-
-.cpp.obj:
- $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
-
-.c.obj:
- $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
-
-.asm.obj:
- $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
-
-.rc.res:
- $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
-# ---------------------------------------------------------------------------
diff --git a/zlib-1.1.4/contrib/delphi2/d_zlib.cpp b/zlib-1.1.4/contrib/delphi2/d_zlib.cpp
deleted file mode 100644
index f5dea59..0000000
--- a/zlib-1.1.4/contrib/delphi2/d_zlib.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#include <condefs.h>
-#pragma hdrstop
-//---------------------------------------------------------------------------
-USEUNIT("adler32.c");
-USEUNIT("deflate.c");
-USEUNIT("infblock.c");
-USEUNIT("infcodes.c");
-USEUNIT("inffast.c");
-USEUNIT("inflate.c");
-USEUNIT("inftrees.c");
-USEUNIT("infutil.c");
-USEUNIT("trees.c");
-//---------------------------------------------------------------------------
-#define Library
-
-// To add a file to the library use the Project menu 'Add to Project'.
-
diff --git a/zlib-1.1.4/contrib/delphi2/readme.txt b/zlib-1.1.4/contrib/delphi2/readme.txt
deleted file mode 100644
index cbd3162..0000000
--- a/zlib-1.1.4/contrib/delphi2/readme.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-These are files used to compile zlib under Borland C++ Builder 3.
-
-zlib.bpg is the main project group that can be loaded in the BCB IDE and
-loads all other *.bpr projects
-
-zlib.bpr is a project used to create a static zlib.lib library with C calling
-convention for functions.
-
-zlib32.bpr creates a zlib32.dll dynamic link library with Windows standard
-calling convention.
-
-d_zlib.bpr creates a set of .obj files with register calling convention.
-These files are used by zlib.pas to create a Delphi unit containing zlib.
-The d_zlib.lib file generated isn't useful and can be deleted.
-
-zlib.cpp, zlib32.cpp and d_zlib.cpp are used by the above projects.
-
diff --git a/zlib-1.1.4/contrib/delphi2/zlib.bpg b/zlib-1.1.4/contrib/delphi2/zlib.bpg
deleted file mode 100644
index b6c9acd..0000000
--- a/zlib-1.1.4/contrib/delphi2/zlib.bpg
+++ /dev/null
@@ -1,26 +0,0 @@
-#------------------------------------------------------------------------------
-VERSION = BWS.01
-#------------------------------------------------------------------------------
-!ifndef ROOT
-ROOT = $(MAKEDIR)\..
-!endif
-#------------------------------------------------------------------------------
-MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
-DCC = $(ROOT)\bin\dcc32.exe $**
-BRCC = $(ROOT)\bin\brcc32.exe $**
-#------------------------------------------------------------------------------
-PROJECTS = zlib zlib32 d_zlib
-#------------------------------------------------------------------------------
-default: $(PROJECTS)
-#------------------------------------------------------------------------------
-
-zlib: zlib.bpr
- $(MAKE)
-
-zlib32: zlib32.bpr
- $(MAKE)
-
-d_zlib: d_zlib.bpr
- $(MAKE)
-
-
diff --git a/zlib-1.1.4/contrib/delphi2/zlib.bpr b/zlib-1.1.4/contrib/delphi2/zlib.bpr
deleted file mode 100644
index cf3945b..0000000
--- a/zlib-1.1.4/contrib/delphi2/zlib.bpr
+++ /dev/null
@@ -1,225 +0,0 @@
-# ---------------------------------------------------------------------------
-!if !$d(BCB)
-BCB = $(MAKEDIR)\..
-!endif
-
-# ---------------------------------------------------------------------------
-# IDE SECTION
-# ---------------------------------------------------------------------------
-# The following section of the project makefile is managed by the BCB IDE.
-# It is recommended to use the IDE to change any of the values in this
-# section.
-# ---------------------------------------------------------------------------
-
-VERSION = BCB.03
-# ---------------------------------------------------------------------------
-PROJECT = zlib.lib
-OBJFILES = zlib.obj adler32.obj compress.obj crc32.obj deflate.obj gzio.obj infblock.obj \
- infcodes.obj inffast.obj inflate.obj inftrees.obj infutil.obj trees.obj \
- uncompr.obj zutil.obj
-RESFILES =
-RESDEPEN = $(RESFILES)
-LIBFILES =
-LIBRARIES = VCL35.lib
-SPARELIBS = VCL35.lib
-DEFFILE =
-PACKAGES = VCLX35.bpi VCL35.bpi VCLDB35.bpi VCLDBX35.bpi ibsmp35.bpi bcbsmp35.bpi \
- dclocx35.bpi QRPT35.bpi TEEUI35.bpi TEEDB35.bpi TEE35.bpi DSS35.bpi \
- NMFAST35.bpi INETDB35.bpi INET35.bpi VCLMID35.bpi
-# ---------------------------------------------------------------------------
-PATHCPP = .;
-PATHASM = .;
-PATHPAS = .;
-PATHRC = .;
-DEBUGLIBPATH = $(BCB)\lib\debug
-RELEASELIBPATH = $(BCB)\lib\release
-# ---------------------------------------------------------------------------
-CFLAG1 = -O2 -Ve -d -k- -vi
-CFLAG2 = -I$(BCB)\include;$(BCB)\include\vcl -H=$(BCB)\lib\vcl35.csm
-CFLAG3 = -ff -5
-PFLAGS = -U;$(DEBUGLIBPATH) -I$(BCB)\include;$(BCB)\include\vcl -H -W -$I- -v -JPHN -M
-RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
-AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn
-LFLAGS =
-IFLAGS = -g -Gn
-# ---------------------------------------------------------------------------
-ALLOBJ = c0w32.obj $(OBJFILES)
-ALLRES = $(RESFILES)
-ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
-# ---------------------------------------------------------------------------
-!!ifdef IDEOPTIONS
-
-[Version Info]
-IncludeVerInfo=0
-AutoIncBuild=0
-MajorVer=1
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=0
-Locale=1040
-CodePage=1252
-
-[Version Info Keys]
-CompanyName=
-FileDescription=
-FileVersion=1.0.0.0
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=
-ProductName=
-ProductVersion=1.0.0.0
-Comments=
-
-[HistoryLists\hlIncludePath]
-Count=2
-Item0=$(BCB)\include
-Item1=$(BCB)\include;$(BCB)\include\vcl
-
-[HistoryLists\hlLibraryPath]
-Count=1
-Item0=$(BCB)\lib\obj;$(BCB)\lib
-
-[HistoryLists\hlDebugSourcePath]
-Count=1
-Item0=$(BCB)\source\vcl
-
-[Debugging]
-DebugSourceDirs=
-
-[Parameters]
-RunParams=
-HostApplication=
-
-!endif
-
- ---------------------------------------------------------------------------
-# MAKE SECTION
-# ---------------------------------------------------------------------------
-# This section of the project file is not used by the BCB IDE. It is for
-# the benefit of building from the command-line using the MAKE utility.
-# ---------------------------------------------------------------------------
-
-.autodepend
-# ---------------------------------------------------------------------------
-!if !$d(BCC32)
-BCC32 = bcc32
-!endif
-
-!if !$d(DCC32)
-DCC32 = dcc32
-!endif
-
-!if !$d(TASM32)
-TASM32 = tasm32
-!endif
-
-!if !$d(LINKER)
-LINKER = TLib
-!endif
-
-!if !$d(BRCC32)
-BRCC32 = brcc32
-!endif
-# ---------------------------------------------------------------------------
-!if $d(PATHCPP)
-.PATH.CPP = $(PATHCPP)
-.PATH.C = $(PATHCPP)
-!endif
-
-!if $d(PATHPAS)
-.PATH.PAS = $(PATHPAS)
-!endif
-
-!if $d(PATHASM)
-.PATH.ASM = $(PATHASM)
-!endif
-
-!if $d(PATHRC)
-.PATH.RC = $(PATHRC)
-!endif
-# ---------------------------------------------------------------------------
-!ifdef IDEOPTIONS
-
-[Version Info]
-IncludeVerInfo=0
-AutoIncBuild=0
-MajorVer=1
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=0
-Locale=1040
-CodePage=1252
-
-[Version Info Keys]
-CompanyName=
-FileDescription=
-FileVersion=1.0.0.0
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=
-ProductName=
-ProductVersion=1.0.0.0
-Comments=
-
-[HistoryLists\hlIncludePath]
-Count=2
-Item0=$(BCB)\include;$(BCB)\include\vcl
-Item1=$(BCB)\include
-
-[HistoryLists\hlLibraryPath]
-Count=1
-Item0=$(BCB)\lib\obj;$(BCB)\lib
-
-[HistoryLists\hlDebugSourcePath]
-Count=1
-Item0=$(BCB)\source\vcl
-
-[Debugging]
-DebugSourceDirs=
-
-[Parameters]
-RunParams=
-HostApplication=
-
-!endif
-
-$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
- $(BCB)\BIN\$(LINKER) @&&!
- $(LFLAGS) $(IFLAGS) +
- $(ALLOBJ), +
- $(PROJECT),, +
- $(ALLLIB), +
- $(DEFFILE), +
- $(ALLRES)
-!
-# ---------------------------------------------------------------------------
-.pas.hpp:
- $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
-
-.pas.obj:
- $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
-
-.cpp.obj:
- $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
-
-.c.obj:
- $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
-
-.asm.obj:
- $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
-
-.rc.res:
- $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
-# ---------------------------------------------------------------------------
diff --git a/zlib-1.1.4/contrib/delphi2/zlib.cpp b/zlib-1.1.4/contrib/delphi2/zlib.cpp
deleted file mode 100644
index bf6953b..0000000
--- a/zlib-1.1.4/contrib/delphi2/zlib.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <condefs.h>
-#pragma hdrstop
-//---------------------------------------------------------------------------
-USEUNIT("adler32.c");
-USEUNIT("compress.c");
-USEUNIT("crc32.c");
-USEUNIT("deflate.c");
-USEUNIT("gzio.c");
-USEUNIT("infblock.c");
-USEUNIT("infcodes.c");
-USEUNIT("inffast.c");
-USEUNIT("inflate.c");
-USEUNIT("inftrees.c");
-USEUNIT("infutil.c");
-USEUNIT("trees.c");
-USEUNIT("uncompr.c");
-USEUNIT("zutil.c");
-//---------------------------------------------------------------------------
-#define Library
-
-// To add a file to the library use the Project menu 'Add to Project'.
-
diff --git a/zlib-1.1.4/contrib/delphi2/zlib.pas b/zlib-1.1.4/contrib/delphi2/zlib.pas
deleted file mode 100644
index 10ae4ca..0000000
--- a/zlib-1.1.4/contrib/delphi2/zlib.pas
+++ /dev/null
@@ -1,534 +0,0 @@
-{*******************************************************}
-{ }
-{ Delphi Supplemental Components }
-{ ZLIB Data Compression Interface Unit }
-{ }
-{ Copyright (c) 1997 Borland International }
-{ }
-{*******************************************************}
-
-{ Modified for zlib 1.1.3 by Davide Moretti <dave@rimini.com }
-
-unit zlib;
-
-interface
-
-uses Sysutils, Classes;
-
-type
- TAlloc = function (AppData: Pointer; Items, Size: Integer): Pointer;
- TFree = procedure (AppData, Block: Pointer);
-
- // Internal structure. Ignore.
- TZStreamRec = packed record
- next_in: PChar; // next input byte
- avail_in: Integer; // number of bytes available at next_in
- total_in: Integer; // total nb of input bytes read so far
-
- next_out: PChar; // next output byte should be put here
- avail_out: Integer; // remaining free space at next_out
- total_out: Integer; // total nb of bytes output so far
-
- msg: PChar; // last error message, NULL if no error
- internal: Pointer; // not visible by applications
-
- zalloc: TAlloc; // used to allocate the internal state
- zfree: TFree; // used to free the internal state
- AppData: Pointer; // private data object passed to zalloc and zfree
-
- data_type: Integer; // best guess about the data type: ascii or binary
- adler: Integer; // adler32 value of the uncompressed data
- reserved: Integer; // reserved for future use
- end;
-
- // Abstract ancestor class
- TCustomZlibStream = class(TStream)
- private
- FStrm: TStream;
- FStrmPos: Integer;
- FOnProgress: TNotifyEvent;
- FZRec: TZStreamRec;
- FBuffer: array [Word] of Char;
- protected
- procedure Progress(Sender: TObject); dynamic;
- property OnProgress: TNotifyEvent read FOnProgress write FOnProgress;
- constructor Create(Strm: TStream);
- end;
-
-{ TCompressionStream compresses data on the fly as data is written to it, and
- stores the compressed data to another stream.
-
- TCompressionStream is write-only and strictly sequential. Reading from the
- stream will raise an exception. Using Seek to move the stream pointer
- will raise an exception.
-
- Output data is cached internally, written to the output stream only when
- the internal output buffer is full. All pending output data is flushed
- when the stream is destroyed.
-
- The Position property returns the number of uncompressed bytes of
- data that have been written to the stream so far.
-
- CompressionRate returns the on-the-fly percentage by which the original
- data has been compressed: (1 - (CompressedBytes / UncompressedBytes)) * 100
- If raw data size = 100 and compressed data size = 25, the CompressionRate
- is 75%
-
- The OnProgress event is called each time the output buffer is filled and
- written to the output stream. This is useful for updating a progress
- indicator when you are writing a large chunk of data to the compression
- stream in a single call.}
-
-
- TCompressionLevel = (clNone, clFastest, clDefault, clMax);
-
- TCompressionStream = class(TCustomZlibStream)
- private
- function GetCompressionRate: Single;
- public
- constructor Create(CompressionLevel: TCompressionLevel; Dest: TStream);
- destructor Destroy; override;
- function Read(var Buffer; Count: Longint): Longint; override;
- function Write(const Buffer; Count: Longint): Longint; override;
- function Seek(Offset: Longint; Origin: Word): Longint; override;
- property CompressionRate: Single read GetCompressionRate;
- property OnProgress;
- end;
-
-{ TDecompressionStream decompresses data on the fly as data is read from it.
-
- Compressed data comes from a separate source stream. TDecompressionStream
- is read-only and unidirectional; you can seek forward in the stream, but not
- backwards. The special case of setting the stream position to zero is
- allowed. Seeking forward decompresses data until the requested position in
- the uncompressed data has been reached. Seeking backwards, seeking relative
- to the end of the stream, requesting the size of the stream, and writing to
- the stream will raise an exception.
-
- The Position property returns the number of bytes of uncompressed data that
- have been read from the stream so far.
-
- The OnProgress event is called each time the internal input buffer of
- compressed data is exhausted and the next block is read from the input stream.
- This is useful for updating a progress indicator when you are reading a
- large chunk of data from the decompression stream in a single call.}
-
- TDecompressionStream = class(TCustomZlibStream)
- public
- constructor Create(Source: TStream);
- destructor Destroy; override;
- function Read(var Buffer; Count: Longint): Longint; override;
- function Write(const Buffer; Count: Longint): Longint; override;
- function Seek(Offset: Longint; Origin: Word): Longint; override;
- property OnProgress;
- end;
-
-
-
-{ CompressBuf compresses data, buffer to buffer, in one call.
- In: InBuf = ptr to compressed data
- InBytes = number of bytes in InBuf
- Out: OutBuf = ptr to newly allocated buffer containing decompressed data
- OutBytes = number of bytes in OutBuf }
-procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
- out OutBuf: Pointer; out OutBytes: Integer);
-
-
-{ DecompressBuf decompresses data, buffer to buffer, in one call.
- In: InBuf = ptr to compressed data
- InBytes = number of bytes in InBuf
- OutEstimate = zero, or est. size of the decompressed data
- Out: OutBuf = ptr to newly allocated buffer containing decompressed data
- OutBytes = number of bytes in OutBuf }
-procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
- OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);
-
-const
- zlib_version = '1.1.3';
-
-type
- EZlibError = class(Exception);
- ECompressionError = class(EZlibError);
- EDecompressionError = class(EZlibError);
-
-function adler32(adler: Integer; buf: PChar; len: Integer): Integer;
-
-implementation
-
-const
- Z_NO_FLUSH = 0;
- Z_PARTIAL_FLUSH = 1;
- Z_SYNC_FLUSH = 2;
- Z_FULL_FLUSH = 3;
- Z_FINISH = 4;
-
- Z_OK = 0;
- Z_STREAM_END = 1;
- Z_NEED_DICT = 2;
- Z_ERRNO = (-1);
- Z_STREAM_ERROR = (-2);
- Z_DATA_ERROR = (-3);
- Z_MEM_ERROR = (-4);
- Z_BUF_ERROR = (-5);
- Z_VERSION_ERROR = (-6);
-
- Z_NO_COMPRESSION = 0;
- Z_BEST_SPEED = 1;
- Z_BEST_COMPRESSION = 9;
- Z_DEFAULT_COMPRESSION = (-1);
-
- Z_FILTERED = 1;
- Z_HUFFMAN_ONLY = 2;
- Z_DEFAULT_STRATEGY = 0;
-
- Z_BINARY = 0;
- Z_ASCII = 1;
- Z_UNKNOWN = 2;
-
- Z_DEFLATED = 8;
-
- _z_errmsg: array[0..9] of PChar = (
- 'need dictionary', // Z_NEED_DICT (2)
- 'stream end', // Z_STREAM_END (1)
- '', // Z_OK (0)
- 'file error', // Z_ERRNO (-1)
- 'stream error', // Z_STREAM_ERROR (-2)
- 'data error', // Z_DATA_ERROR (-3)
- 'insufficient memory', // Z_MEM_ERROR (-4)
- 'buffer error', // Z_BUF_ERROR (-5)
- 'incompatible version', // Z_VERSION_ERROR (-6)
- ''
- );
-
-{$L deflate.obj}
-{$L inflate.obj}
-{$L inftrees.obj}
-{$L trees.obj}
-{$L adler32.obj}
-{$L infblock.obj}
-{$L infcodes.obj}
-{$L infutil.obj}
-{$L inffast.obj}
-
-procedure _tr_init; external;
-procedure _tr_tally; external;
-procedure _tr_flush_block; external;
-procedure _tr_align; external;
-procedure _tr_stored_block; external;
-function adler32; external;
-procedure inflate_blocks_new; external;
-procedure inflate_blocks; external;
-procedure inflate_blocks_reset; external;
-procedure inflate_blocks_free; external;
-procedure inflate_set_dictionary; external;
-procedure inflate_trees_bits; external;
-procedure inflate_trees_dynamic; external;
-procedure inflate_trees_fixed; external;
-procedure inflate_codes_new; external;
-procedure inflate_codes; external;
-procedure inflate_codes_free; external;
-procedure _inflate_mask; external;
-procedure inflate_flush; external;
-procedure inflate_fast; external;
-
-procedure _memset(P: Pointer; B: Byte; count: Integer);cdecl;
-begin
- FillChar(P^, count, B);
-end;
-
-procedure _memcpy(dest, source: Pointer; count: Integer);cdecl;
-begin
- Move(source^, dest^, count);
-end;
-
-
-
-// deflate compresses data
-function deflateInit_(var strm: TZStreamRec; level: Integer; version: PChar;
- recsize: Integer): Integer; external;
-function deflate(var strm: TZStreamRec; flush: Integer): Integer; external;
-function deflateEnd(var strm: TZStreamRec): Integer; external;
-
-// inflate decompresses data
-function inflateInit_(var strm: TZStreamRec; version: PChar;
- recsize: Integer): Integer; external;
-function inflate(var strm: TZStreamRec; flush: Integer): Integer; external;
-function inflateEnd(var strm: TZStreamRec): Integer; external;
-function inflateReset(var strm: TZStreamRec): Integer; external;
-
-
-function zcalloc(AppData: Pointer; Items, Size: Integer): Pointer;
-begin
- GetMem(Result, Items*Size);
-end;
-
-procedure zcfree(AppData, Block: Pointer);
-begin
- FreeMem(Block);
-end;
-
-function zlibCheck(code: Integer): Integer;
-begin
- Result := code;
- if code < 0 then
- raise EZlibError.Create('error'); //!!
-end;
-
-function CCheck(code: Integer): Integer;
-begin
- Result := code;
- if code < 0 then
- raise ECompressionError.Create('error'); //!!
-end;
-
-function DCheck(code: Integer): Integer;
-begin
- Result := code;
- if code < 0 then
- raise EDecompressionError.Create('error'); //!!
-end;
-
-procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
- out OutBuf: Pointer; out OutBytes: Integer);
-var
- strm: TZStreamRec;
- P: Pointer;
-begin
- FillChar(strm, sizeof(strm), 0);
- OutBytes := ((InBytes + (InBytes div 10) + 12) + 255) and not 255;
- GetMem(OutBuf, OutBytes);
- try
- strm.next_in := InBuf;
- strm.avail_in := InBytes;
- strm.next_out := OutBuf;
- strm.avail_out := OutBytes;
- CCheck(deflateInit_(strm, Z_BEST_COMPRESSION, zlib_version, sizeof(strm)));
- try
- while CCheck(deflate(strm, Z_FINISH)) <> Z_STREAM_END do
- begin
- P := OutBuf;
- Inc(OutBytes, 256);
- ReallocMem(OutBuf, OutBytes);
- strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
- strm.avail_out := 256;
- end;
- finally
- CCheck(deflateEnd(strm));
- end;
- ReallocMem(OutBuf, strm.total_out);
- OutBytes := strm.total_out;
- except
- FreeMem(OutBuf);
- raise
- end;
-end;
-
-
-procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
- OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);
-var
- strm: TZStreamRec;
- P: Pointer;
- BufInc: Integer;
-begin
- FillChar(strm, sizeof(strm), 0);
- BufInc := (InBytes + 255) and not 255;
- if OutEstimate = 0 then
- OutBytes := BufInc
- else
- OutBytes := OutEstimate;
- GetMem(OutBuf, OutBytes);
- try
- strm.next_in := InBuf;
- strm.avail_in := InBytes;
- strm.next_out := OutBuf;
- strm.avail_out := OutBytes;
- DCheck(inflateInit_(strm, zlib_version, sizeof(strm)));
- try
- while DCheck(inflate(strm, Z_FINISH)) <> Z_STREAM_END do
- begin
- P := OutBuf;
- Inc(OutBytes, BufInc);
- ReallocMem(OutBuf, OutBytes);
- strm.next_out := PChar(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
- strm.avail_out := BufInc;
- end;
- finally
- DCheck(inflateEnd(strm));
- end;
- ReallocMem(OutBuf, strm.total_out);
- OutBytes := strm.total_out;
- except
- FreeMem(OutBuf);
- raise
- end;
-end;
-
-
-// TCustomZlibStream
-
-constructor TCustomZLibStream.Create(Strm: TStream);
-begin
- inherited Create;
- FStrm := Strm;
- FStrmPos := Strm.Position;
-end;
-
-procedure TCustomZLibStream.Progress(Sender: TObject);
-begin
- if Assigned(FOnProgress) then FOnProgress(Sender);
-end;
-
-
-// TCompressionStream
-
-constructor TCompressionStream.Create(CompressionLevel: TCompressionLevel;
- Dest: TStream);
-const
- Levels: array [TCompressionLevel] of ShortInt =
- (Z_NO_COMPRESSION, Z_BEST_SPEED, Z_DEFAULT_COMPRESSION, Z_BEST_COMPRESSION);
-begin
- inherited Create(Dest);
- FZRec.next_out := FBuffer;
- FZRec.avail_out := sizeof(FBuffer);
- CCheck(deflateInit_(FZRec, Levels[CompressionLevel], zlib_version, sizeof(FZRec)));
-end;
-
-destructor TCompressionStream.Destroy;
-begin
- FZRec.next_in := nil;
- FZRec.avail_in := 0;
- try
- if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
- while (CCheck(deflate(FZRec, Z_FINISH)) <> Z_STREAM_END)
- and (FZRec.avail_out = 0) do
- begin
- FStrm.WriteBuffer(FBuffer, sizeof(FBuffer));
- FZRec.next_out := FBuffer;
- FZRec.avail_out := sizeof(FBuffer);
- end;
- if FZRec.avail_out < sizeof(FBuffer) then
- FStrm.WriteBuffer(FBuffer, sizeof(FBuffer) - FZRec.avail_out);
- finally
- deflateEnd(FZRec);
- end;
- inherited Destroy;
-end;
-
-function TCompressionStream.Read(var Buffer; Count: Longint): Longint;
-begin
- raise ECompressionError.Create('Invalid stream operation');
-end;
-
-function TCompressionStream.Write(const Buffer; Count: Longint): Longint;
-begin
- FZRec.next_in := @Buffer;
- FZRec.avail_in := Count;
- if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
- while (FZRec.avail_in > 0) do
- begin
- CCheck(deflate(FZRec, 0));
- if FZRec.avail_out = 0 then
- begin
- FStrm.WriteBuffer(FBuffer, sizeof(FBuffer));
- FZRec.next_out := FBuffer;
- FZRec.avail_out := sizeof(FBuffer);
- FStrmPos := FStrm.Position;
- Progress(Self);
- end;
- end;
- Result := Count;
-end;
-
-function TCompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
-begin
- if (Offset = 0) and (Origin = soFromCurrent) then
- Result := FZRec.total_in
- else
- raise ECompressionError.Create('Invalid stream operation');
-end;
-
-function TCompressionStream.GetCompressionRate: Single;
-begin
- if FZRec.total_in = 0 then
- Result := 0
- else
- Result := (1.0 - (FZRec.total_out / FZRec.total_in)) * 100.0;
-end;
-
-
-// TDecompressionStream
-
-constructor TDecompressionStream.Create(Source: TStream);
-begin
- inherited Create(Source);
- FZRec.next_in := FBuffer;
- FZRec.avail_in := 0;
- DCheck(inflateInit_(FZRec, zlib_version, sizeof(FZRec)));
-end;
-
-destructor TDecompressionStream.Destroy;
-begin
- inflateEnd(FZRec);
- inherited Destroy;
-end;
-
-function TDecompressionStream.Read(var Buffer; Count: Longint): Longint;
-begin
- FZRec.next_out := @Buffer;
- FZRec.avail_out := Count;
- if FStrm.Position <> FStrmPos then FStrm.Position := FStrmPos;
- while (FZRec.avail_out > 0) do
- begin
- if FZRec.avail_in = 0 then
- begin
- FZRec.avail_in := FStrm.Read(FBuffer, sizeof(FBuffer));
- if FZRec.avail_in = 0 then
- begin
- Result := Count - FZRec.avail_out;
- Exit;
- end;
- FZRec.next_in := FBuffer;
- FStrmPos := FStrm.Position;
- Progress(Self);
- end;
- DCheck(inflate(FZRec, 0));
- end;
- Result := Count;
-end;
-
-function TDecompressionStream.Write(const Buffer; Count: Longint): Longint;
-begin
- raise EDecompressionError.Create('Invalid stream operation');
-end;
-
-function TDecompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
-var
- I: Integer;
- Buf: array [0..4095] of Char;
-begin
- if (Offset = 0) and (Origin = soFromBeginning) then
- begin
- DCheck(inflateReset(FZRec));
- FZRec.next_in := FBuffer;
- FZRec.avail_in := 0;
- FStrm.Position := 0;
- FStrmPos := 0;
- end
- else if ( (Offset >= 0) and (Origin = soFromCurrent)) or
- ( ((Offset - FZRec.total_out) > 0) and (Origin = soFromBeginning)) then
- begin
- if Origin = soFromBeginning then Dec(Offset, FZRec.total_out);
- if Offset > 0 then
- begin
- for I := 1 to Offset div sizeof(Buf) do
- ReadBuffer(Buf, sizeof(Buf));
- ReadBuffer(Buf, Offset mod sizeof(Buf));
- end;
- end
- else
- raise EDecompressionError.Create('Invalid stream operation');
- Result := FZRec.total_out;
-end;
-
-end.
diff --git a/zlib-1.1.4/contrib/delphi2/zlib32.bpr b/zlib-1.1.4/contrib/delphi2/zlib32.bpr
deleted file mode 100644
index cabcec4..0000000
--- a/zlib-1.1.4/contrib/delphi2/zlib32.bpr
+++ /dev/null
@@ -1,174 +0,0 @@
-# ---------------------------------------------------------------------------
-!if !$d(BCB)
-BCB = $(MAKEDIR)\..
-!endif
-
-# ---------------------------------------------------------------------------
-# IDE SECTION
-# ---------------------------------------------------------------------------
-# The following section of the project makefile is managed by the BCB IDE.
-# It is recommended to use the IDE to change any of the values in this
-# section.
-# ---------------------------------------------------------------------------
-
-VERSION = BCB.03
-# ---------------------------------------------------------------------------
-PROJECT = zlib32.dll
-OBJFILES = zlib32.obj adler32.obj compress.obj crc32.obj deflate.obj gzio.obj infblock.obj \
- infcodes.obj inffast.obj inflate.obj inftrees.obj infutil.obj trees.obj \
- uncompr.obj zutil.obj
-RESFILES =
-RESDEPEN = $(RESFILES)
-LIBFILES =
-LIBRARIES =
-SPARELIBS =
-DEFFILE =
-PACKAGES = VCLX35.bpi VCL35.bpi VCLDB35.bpi VCLDBX35.bpi ibsmp35.bpi bcbsmp35.bpi \
- dclocx35.bpi QRPT35.bpi TEEUI35.bpi TEEDB35.bpi TEE35.bpi DSS35.bpi \
- NMFAST35.bpi INETDB35.bpi INET35.bpi VCLMID35.bpi
-# ---------------------------------------------------------------------------
-PATHCPP = .;
-PATHASM = .;
-PATHPAS = .;
-PATHRC = .;
-DEBUGLIBPATH = $(BCB)\lib\debug
-RELEASELIBPATH = $(BCB)\lib\release
-# ---------------------------------------------------------------------------
-CFLAG1 = -WD -O2 -Ve -d -k- -vi -c -tWD
-CFLAG2 = -D_NO_VCL;ZLIB_DLL -I$(BCB)\include
-CFLAG3 = -ff -5
-PFLAGS = -D_NO_VCL;ZLIB_DLL -U$(BCB)\lib;$(RELEASELIBPATH) -I$(BCB)\include -$I- -v \
- -JPHN -M
-RFLAGS = -D_NO_VCL;ZLIB_DLL -i$(BCB)\include
-AFLAGS = /i$(BCB)\include /d_NO_VCL /dZLIB_DLL /mx /w2 /zn
-LFLAGS = -L$(BCB)\lib;$(RELEASELIBPATH) -aa -Tpd -x -Gi
-IFLAGS = -Gn -g
-# ---------------------------------------------------------------------------
-ALLOBJ = c0d32.obj $(OBJFILES)
-ALLRES = $(RESFILES)
-ALLLIB = $(LIBFILES) import32.lib cw32mt.lib
-# ---------------------------------------------------------------------------
-!ifdef IDEOPTIONS
-
-[Version Info]
-IncludeVerInfo=0
-AutoIncBuild=0
-MajorVer=1
-MinorVer=0
-Release=0
-Build=0
-Debug=0
-PreRelease=0
-Special=0
-Private=0
-DLL=1
-Locale=1040
-CodePage=1252
-
-[Version Info Keys]
-CompanyName=
-FileDescription=DLL (GUI)
-FileVersion=1.0.0.0
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=
-ProductName=
-ProductVersion=1.0.0.0
-Comments=
-
-[HistoryLists\hlIncludePath]
-Count=1
-Item0=$(BCB)\include
-
-[HistoryLists\hlLibraryPath]
-Count=1
-Item0=$(BCB)\lib
-
-[HistoryLists\hlConditionals]
-Count=1
-Item0=_NO_VCL;ZLIB_DLL
-
-[Debugging]
-DebugSourceDirs=
-
-[Parameters]
-RunParams=
-HostApplication=
-
-!endif
-
-# ---------------------------------------------------------------------------
-# MAKE SECTION
-# ---------------------------------------------------------------------------
-# This section of the project file is not used by the BCB IDE. It is for
-# the benefit of building from the command-line using the MAKE utility.
-# ---------------------------------------------------------------------------
-
-.autodepend
-# ---------------------------------------------------------------------------
-!if !$d(BCC32)
-BCC32 = bcc32
-!endif
-
-!if !$d(DCC32)
-DCC32 = dcc32
-!endif
-
-!if !$d(TASM32)
-TASM32 = tasm32
-!endif
-
-!if !$d(LINKER)
-LINKER = ilink32
-!endif
-
-!if !$d(BRCC32)
-BRCC32 = brcc32
-!endif
-# ---------------------------------------------------------------------------
-!if $d(PATHCPP)
-.PATH.CPP = $(PATHCPP)
-.PATH.C = $(PATHCPP)
-!endif
-
-!if $d(PATHPAS)
-.PATH.PAS = $(PATHPAS)
-!endif
-
-!if $d(PATHASM)
-.PATH.ASM = $(PATHASM)
-!endif
-
-!if $d(PATHRC)
-.PATH.RC = $(PATHRC)
-!endif
-# ---------------------------------------------------------------------------
-$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
- $(BCB)\BIN\$(LINKER) @&&!
- $(LFLAGS) $(IFLAGS) +
- $(ALLOBJ), +
- $(PROJECT),, +
- $(ALLLIB), +
- $(DEFFILE), +
- $(ALLRES)
-!
-# ---------------------------------------------------------------------------
-.pas.hpp:
- $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
-
-.pas.obj:
- $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
-
-.cpp.obj:
- $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
-
-.c.obj:
- $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
-
-.asm.obj:
- $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
-
-.rc.res:
- $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
-# ---------------------------------------------------------------------------
diff --git a/zlib-1.1.4/contrib/delphi2/zlib32.cpp b/zlib-1.1.4/contrib/delphi2/zlib32.cpp
deleted file mode 100644
index 7372f6b..0000000
--- a/zlib-1.1.4/contrib/delphi2/zlib32.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#include <windows.h>
-#pragma hdrstop
-#include <condefs.h>
-
-
-//---------------------------------------------------------------------------
-// Important note about DLL memory management in a VCL DLL:
-//
-//
-//
-// If your DLL uses VCL and exports any functions that pass VCL String objects
-// (or structs/classes containing nested Strings) as parameter or function
-// results, you will need to build both your DLL project and any EXE projects
-// that use your DLL with the dynamic RTL (the RTL DLL). This will change your
-// DLL and its calling EXE's to use BORLNDMM.DLL as their memory manager. In
-// these cases, the file BORLNDMM.DLL should be deployed along with your DLL
-// and the RTL DLL (CP3240MT.DLL). To avoid the requiring BORLNDMM.DLL in
-// these situations, pass string information using "char *" or ShortString
-// parameters and then link with the static RTL.
-//
-//---------------------------------------------------------------------------
-USEUNIT("adler32.c");
-USEUNIT("compress.c");
-USEUNIT("crc32.c");
-USEUNIT("deflate.c");
-USEUNIT("gzio.c");
-USEUNIT("infblock.c");
-USEUNIT("infcodes.c");
-USEUNIT("inffast.c");
-USEUNIT("inflate.c");
-USEUNIT("inftrees.c");
-USEUNIT("infutil.c");
-USEUNIT("trees.c");
-USEUNIT("uncompr.c");
-USEUNIT("zutil.c");
-//---------------------------------------------------------------------------
-#pragma argsused
-int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
-{
- return 1;
-}
diff --git a/zlib-1.1.4/contrib/iostream/test.cpp b/zlib-1.1.4/contrib/iostream/test.cpp
deleted file mode 100644
index 7d265b3..0000000
--- a/zlib-1.1.4/contrib/iostream/test.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#include "zfstream.h"
-
-int main() {
-
- // Construct a stream object with this filebuffer. Anything sent
- // to this stream will go to standard out.
- gzofstream os( 1, ios::out );
-
- // This text is getting compressed and sent to stdout.
- // To prove this, run 'test | zcat'.
- os << "Hello, Mommy" << endl;
-
- os << setcompressionlevel( Z_NO_COMPRESSION );
- os << "hello, hello, hi, ho!" << endl;
-
- setcompressionlevel( os, Z_DEFAULT_COMPRESSION )
- << "I'm compressing again" << endl;
-
- os.close();
-
- return 0;
-
-}
diff --git a/zlib-1.1.4/contrib/iostream/zfstream.cpp b/zlib-1.1.4/contrib/iostream/zfstream.cpp
deleted file mode 100644
index a690bbe..0000000
--- a/zlib-1.1.4/contrib/iostream/zfstream.cpp
+++ /dev/null
@@ -1,329 +0,0 @@
-
-#include <memory.h>
-#include "zfstream.h"
-
-gzfilebuf::gzfilebuf() :
- file(NULL),
- mode(0),
- own_file_descriptor(0)
-{ }
-
-gzfilebuf::~gzfilebuf() {
-
- sync();
- if ( own_file_descriptor )
- close();
-
-}
-
-gzfilebuf *gzfilebuf::open( const char *name,
- int io_mode ) {
-
- if ( is_open() )
- return NULL;
-
- char char_mode[10];
- char *p;
- memset(char_mode,'\0',10);
- p = char_mode;
-
- if ( io_mode & ios::in ) {
- mode = ios::in;
- *p++ = 'r';
- } else if ( io_mode & ios::app ) {
- mode = ios::app;
- *p++ = 'a';
- } else {
- mode = ios::out;
- *p++ = 'w';
- }
-
- if ( io_mode & ios::binary ) {
- mode |= ios::binary;
- *p++ = 'b';
- }
-
- // Hard code the compression level
- if ( io_mode & (ios::out|ios::app )) {
- *p++ = '9';
- }
-
- if ( (file = gzopen(name, char_mode)) == NULL )
- return NULL;
-
- own_file_descriptor = 1;
-
- return this;
-
-}
-
-gzfilebuf *gzfilebuf::attach( int file_descriptor,
- int io_mode ) {
-
- if ( is_open() )
- return NULL;
-
- char char_mode[10];
- char *p;
- memset(char_mode,'\0',10);
- p = char_mode;
-
- if ( io_mode & ios::in ) {
- mode = ios::in;
- *p++ = 'r';
- } else if ( io_mode & ios::app ) {
- mode = ios::app;
- *p++ = 'a';
- } else {
- mode = ios::out;
- *p++ = 'w';
- }
-
- if ( io_mode & ios::binary ) {
- mode |= ios::binary;
- *p++ = 'b';
- }
-
- // Hard code the compression level
- if ( io_mode & (ios::out|ios::app )) {
- *p++ = '9';
- }
-
- if ( (file = gzdopen(file_descriptor, char_mode)) == NULL )
- return NULL;
-
- own_file_descriptor = 0;
-
- return this;
-
-}
-
-gzfilebuf *gzfilebuf::close() {
-
- if ( is_open() ) {
-
- sync();
- gzclose( file );
- file = NULL;
-
- }
-
- return this;
-
-}
-
-int gzfilebuf::setcompressionlevel( short comp_level ) {
-
- return gzsetparams(file, comp_level, -2);
-
-}
-
-int gzfilebuf::setcompressionstrategy( short comp_strategy ) {
-
- return gzsetparams(file, -2, comp_strategy);
-
-}
-
-
-streampos gzfilebuf::seekoff( streamoff off, ios::seek_dir dir, int which ) {
-
- return streampos(EOF);
-
-}
-
-int gzfilebuf::underflow() {
-
- // If the file hasn't been opened for reading, error.
- if ( !is_open() || !(mode & ios::in) )
- return EOF;
-
- // if a buffer doesn't exists, allocate one.
- if ( !base() ) {
-
- if ( (allocate()) == EOF )
- return EOF;
- setp(0,0);
-
- } else {
-
- if ( in_avail() )
- return (unsigned char) *gptr();
-
- if ( out_waiting() ) {
- if ( flushbuf() == EOF )
- return EOF;
- }
-
- }
-
- // Attempt to fill the buffer.
-
- int result = fillbuf();
- if ( result == EOF ) {
- // disable get area
- setg(0,0,0);
- return EOF;
- }
-
- return (unsigned char) *gptr();
-
-}
-
-int gzfilebuf::overflow( int c ) {
-
- if ( !is_open() || !(mode & ios::out) )
- return EOF;
-
- if ( !base() ) {
- if ( allocate() == EOF )
- return EOF;
- setg(0,0,0);
- } else {
- if (in_avail()) {
- return EOF;
- }
- if (out_waiting()) {
- if (flushbuf() == EOF)
- return EOF;
- }
- }
-
- int bl = blen();
- setp( base(), base() + bl);
-
- if ( c != EOF ) {
-
- *pptr() = c;
- pbump(1);
-
- }
-
- return 0;
-
-}
-
-int gzfilebuf::sync() {
-
- if ( !is_open() )
- return EOF;
-
- if ( out_waiting() )
- return flushbuf();
-
- return 0;
-
-}
-
-int gzfilebuf::flushbuf() {
-
- int n;
- char *q;
-
- q = pbase();
- n = pptr() - q;
-
- if ( gzwrite( file, q, n) < n )
- return EOF;
-
- setp(0,0);
-
- return 0;
-
-}
-
-int gzfilebuf::fillbuf() {
-
- int required;
- char *p;
-
- p = base();
-
- required = blen();
-
- int t = gzread( file, p, required );
-
- if ( t <= 0) return EOF;
-
- setg( base(), base(), base()+t);
-
- return t;
-
-}
-
-gzfilestream_common::gzfilestream_common() :
- ios( gzfilestream_common::rdbuf() )
-{ }
-
-gzfilestream_common::~gzfilestream_common()
-{ }
-
-void gzfilestream_common::attach( int fd, int io_mode ) {
-
- if ( !buffer.attach( fd, io_mode) )
- clear( ios::failbit | ios::badbit );
- else
- clear();
-
-}
-
-void gzfilestream_common::open( const char *name, int io_mode ) {
-
- if ( !buffer.open( name, io_mode ) )
- clear( ios::failbit | ios::badbit );
- else
- clear();
-
-}
-
-void gzfilestream_common::close() {
-
- if ( !buffer.close() )
- clear( ios::failbit | ios::badbit );
-
-}
-
-gzfilebuf *gzfilestream_common::rdbuf() {
-
- return &buffer;
-
-}
-
-gzifstream::gzifstream() :
- ios( gzfilestream_common::rdbuf() )
-{
- clear( ios::badbit );
-}
-
-gzifstream::gzifstream( const char *name, int io_mode ) :
- ios( gzfilestream_common::rdbuf() )
-{
- gzfilestream_common::open( name, io_mode );
-}
-
-gzifstream::gzifstream( int fd, int io_mode ) :
- ios( gzfilestream_common::rdbuf() )
-{
- gzfilestream_common::attach( fd, io_mode );
-}
-
-gzifstream::~gzifstream() { }
-
-gzofstream::gzofstream() :
- ios( gzfilestream_common::rdbuf() )
-{
- clear( ios::badbit );
-}
-
-gzofstream::gzofstream( const char *name, int io_mode ) :
- ios( gzfilestream_common::rdbuf() )
-{
- gzfilestream_common::open( name, io_mode );
-}
-
-gzofstream::gzofstream( int fd, int io_mode ) :
- ios( gzfilestream_common::rdbuf() )
-{
- gzfilestream_common::attach( fd, io_mode );
-}
-
-gzofstream::~gzofstream() { }
diff --git a/zlib-1.1.4/contrib/iostream/zfstream.h b/zlib-1.1.4/contrib/iostream/zfstream.h
deleted file mode 100644
index c87fa08..0000000
--- a/zlib-1.1.4/contrib/iostream/zfstream.h
+++ /dev/null
@@ -1,142 +0,0 @@
-
-#ifndef _zfstream_h
-#define _zfstream_h
-
-#include <fstream.h>
-#include "zlib.h"
-
-class gzfilebuf : public streambuf {
-
-public:
-
- gzfilebuf( );
- virtual ~gzfilebuf();
-
- gzfilebuf *open( const char *name, int io_mode );
- gzfilebuf *attach( int file_descriptor, int io_mode );
- gzfilebuf *close();
-
- int setcompressionlevel( short comp_level );
- int setcompressionstrategy( short comp_strategy );
-
- inline int is_open() const { return (file !=NULL); }
-
- virtual streampos seekoff( streamoff, ios::seek_dir, int );
-
- virtual int sync();
-
-protected:
-
- virtual int underflow();
- virtual int overflow( int = EOF );
-
-private:
-
- gzFile file;
- short mode;
- short own_file_descriptor;
-
- int flushbuf();
- int fillbuf();
-
-};
-
-class gzfilestream_common : virtual public ios {
-
- friend class gzifstream;
- friend class gzofstream;
- friend gzofstream &setcompressionlevel( gzofstream &, int );
- friend gzofstream &setcompressionstrategy( gzofstream &, int );
-
-public:
- virtual ~gzfilestream_common();
-
- void attach( int fd, int io_mode );
- void open( const char *name, int io_mode );
- void close();
-
-protected:
- gzfilestream_common();
-
-private:
- gzfilebuf *rdbuf();
-
- gzfilebuf buffer;
-
-};
-
-class gzifstream : public gzfilestream_common, public istream {
-
-public:
-
- gzifstream();
- gzifstream( const char *name, int io_mode = ios::in );
- gzifstream( int fd, int io_mode = ios::in );
-
- virtual ~gzifstream();
-
-};
-
-class gzofstream : public gzfilestream_common, public ostream {
-
-public:
-
- gzofstream();
- gzofstream( const char *name, int io_mode = ios::out );
- gzofstream( int fd, int io_mode = ios::out );
-
- virtual ~gzofstream();
-
-};
-
-template<class T> class gzomanip {
- friend gzofstream &operator<<(gzofstream &, const gzomanip<T> &);
-public:
- gzomanip(gzofstream &(*f)(gzofstream &, T), T v) : func(f), val(v) { }
-private:
- gzofstream &(*func)(gzofstream &, T);
- T val;
-};
-
-template<class T> gzofstream &operator<<(gzofstream &s,
- const gzomanip<T> &m) {
- return (*m.func)(s, m.val);
-
-}
-
-inline gzofstream &setcompressionlevel( gzofstream &s, int l ) {
- (s.rdbuf())->setcompressionlevel(l);
- return s;
-}
-
-inline gzofstream &setcompressionstrategy( gzofstream &s, int l ) {
- (s.rdbuf())->setcompressionstrategy(l);
- return s;
-}
-
-inline gzomanip<int> setcompressionlevel(int l)
-{
- return gzomanip<int>(&setcompressionlevel,l);
-}
-
-inline gzomanip<int> setcompressionstrategy(int l)
-{
- return gzomanip<int>(&setcompressionstrategy,l);
-}
-
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/zlib-1.1.4/contrib/iostream2/zstream.h b/zlib-1.1.4/contrib/iostream2/zstream.h
deleted file mode 100644
index 861ef2b..0000000
--- a/zlib-1.1.4/contrib/iostream2/zstream.h
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- *
- * Copyright (c) 1997
- * Christian Michelsen Research AS
- * Advanced Computing
- * Fantoftvegen 38, 5036 BERGEN, Norway
- * http://www.cmr.no
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Christian Michelsen Research AS makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
-
-#ifndef ZSTREAM__H
-#define ZSTREAM__H
-
-/*
- * zstream.h - C++ interface to the 'zlib' general purpose compression library
- * $Id$
- */
-
-#include <strstream.h>
-#include <string.h>
-#include <stdio.h>
-#include "zlib.h"
-
-#if defined(_WIN32)
-# include <fcntl.h>
-# include <io.h>
-# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
-#else
-# define SET_BINARY_MODE(file)
-#endif
-
-class zstringlen {
-public:
- zstringlen(class izstream&);
- zstringlen(class ozstream&, const char*);
- size_t value() const { return val.word; }
-private:
- struct Val { unsigned char byte; size_t word; } val;
-};
-
-// ----------------------------- izstream -----------------------------
-
-class izstream
-{
- public:
- izstream() : m_fp(0) {}
- izstream(FILE* fp) : m_fp(0) { open(fp); }
- izstream(const char* name) : m_fp(0) { open(name); }
- ~izstream() { close(); }
-
- /* Opens a gzip (.gz) file for reading.
- * open() can be used to read a file which is not in gzip format;
- * in this case read() will directly read from the file without
- * decompression. errno can be checked to distinguish two error
- * cases (if errno is zero, the zlib error is Z_MEM_ERROR).
- */
- void open(const char* name) {
- if (m_fp) close();
- m_fp = ::gzopen(name, "rb");
- }
-
- void open(FILE* fp) {
- SET_BINARY_MODE(fp);
- if (m_fp) close();
- m_fp = ::gzdopen(fileno(fp), "rb");
- }
-
- /* Flushes all pending input if necessary, closes the compressed file
- * and deallocates all the (de)compression state. The return value is
- * the zlib error number (see function error() below).
- */
- int close() {
- int r = ::gzclose(m_fp);
- m_fp = 0; return r;
- }
-
- /* Binary read the given number of bytes from the compressed file.
- */
- int read(void* buf, size_t len) {
- return ::gzread(m_fp, buf, len);
- }
-
- /* Returns the error message for the last error which occurred on the
- * given compressed file. errnum is set to zlib error number. If an
- * error occurred in the file system and not in the compression library,
- * errnum is set to Z_ERRNO and the application may consult errno
- * to get the exact error code.
- */
- const char* error(int* errnum) {
- return ::gzerror(m_fp, errnum);
- }
-
- gzFile fp() { return m_fp; }
-
- private:
- gzFile m_fp;
-};
-
-/*
- * Binary read the given (array of) object(s) from the compressed file.
- * If the input file was not in gzip format, read() copies the objects number
- * of bytes into the buffer.
- * returns the number of uncompressed bytes actually read
- * (0 for end of file, -1 for error).
- */
-template <class T, class Items>
-inline int read(izstream& zs, T* x, Items items) {
- return ::gzread(zs.fp(), x, items*sizeof(T));
-}
-
-/*
- * Binary input with the '>' operator.
- */
-template <class T>
-inline izstream& operator>(izstream& zs, T& x) {
- ::gzread(zs.fp(), &x, sizeof(T));
- return zs;
-}
-
-
-inline zstringlen::zstringlen(izstream& zs) {
- zs > val.byte;
- if (val.byte == 255) zs > val.word;
- else val.word = val.byte;
-}
-
-/*
- * Read length of string + the string with the '>' operator.
- */
-inline izstream& operator>(izstream& zs, char* x) {
- zstringlen len(zs);
- ::gzread(zs.fp(), x, len.value());
- x[len.value()] = '\0';
- return zs;
-}
-
-inline char* read_string(izstream& zs) {
- zstringlen len(zs);
- char* x = new char[len.value()+1];
- ::gzread(zs.fp(), x, len.value());
- x[len.value()] = '\0';
- return x;
-}
-
-// ----------------------------- ozstream -----------------------------
-
-class ozstream
-{
- public:
- ozstream() : m_fp(0), m_os(0) {
- }
- ozstream(FILE* fp, int level = Z_DEFAULT_COMPRESSION)
- : m_fp(0), m_os(0) {
- open(fp, level);
- }
- ozstream(const char* name, int level = Z_DEFAULT_COMPRESSION)
- : m_fp(0), m_os(0) {
- open(name, level);
- }
- ~ozstream() {
- close();
- }
-
- /* Opens a gzip (.gz) file for writing.
- * The compression level parameter should be in 0..9
- * errno can be checked to distinguish two error cases
- * (if errno is zero, the zlib error is Z_MEM_ERROR).
- */
- void open(const char* name, int level = Z_DEFAULT_COMPRESSION) {
- char mode[4] = "wb\0";
- if (level != Z_DEFAULT_COMPRESSION) mode[2] = '0'+level;
- if (m_fp) close();
- m_fp = ::gzopen(name, mode);
- }
-
- /* open from a FILE pointer.
- */
- void open(FILE* fp, int level = Z_DEFAULT_COMPRESSION) {
- SET_BINARY_MODE(fp);
- char mode[4] = "wb\0";
- if (level != Z_DEFAULT_COMPRESSION) mode[2] = '0'+level;
- if (m_fp) close();
- m_fp = ::gzdopen(fileno(fp), mode);
- }
-
- /* Flushes all pending output if necessary, closes the compressed file
- * and deallocates all the (de)compression state. The return value is
- * the zlib error number (see function error() below).
- */
- int close() {
- if (m_os) {
- ::gzwrite(m_fp, m_os->str(), m_os->pcount());
- delete[] m_os->str(); delete m_os; m_os = 0;
- }
- int r = ::gzclose(m_fp); m_fp = 0; return r;
- }
-
- /* Binary write the given number of bytes into the compressed file.
- */
- int write(const void* buf, size_t len) {
- return ::gzwrite(m_fp, (voidp) buf, len);
- }
-
- /* Flushes all pending output into the compressed file. The parameter
- * _flush is as in the deflate() function. The return value is the zlib
- * error number (see function gzerror below). flush() returns Z_OK if
- * the flush_ parameter is Z_FINISH and all output could be flushed.
- * flush() should be called only when strictly necessary because it can
- * degrade compression.
- */
- int flush(int _flush) {
- os_flush();
- return ::gzflush(m_fp, _flush);
- }
-
- /* Returns the error message for the last error which occurred on the
- * given compressed file. errnum is set to zlib error number. If an
- * error occurred in the file system and not in the compression library,
- * errnum is set to Z_ERRNO and the application may consult errno
- * to get the exact error code.
- */
- const char* error(int* errnum) {
- return ::gzerror(m_fp, errnum);
- }
-
- gzFile fp() { return m_fp; }
-
- ostream& os() {
- if (m_os == 0) m_os = new ostrstream;
- return *m_os;
- }
-
- void os_flush() {
- if (m_os && m_os->pcount()>0) {
- ostrstream* oss = new ostrstream;
- oss->fill(m_os->fill());
- oss->flags(m_os->flags());
- oss->precision(m_os->precision());
- oss->width(m_os->width());
- ::gzwrite(m_fp, m_os->str(), m_os->pcount());
- delete[] m_os->str(); delete m_os; m_os = oss;
- }
- }
-
- private:
- gzFile m_fp;
- ostrstream* m_os;
-};
-
-/*
- * Binary write the given (array of) object(s) into the compressed file.
- * returns the number of uncompressed bytes actually written
- * (0 in case of error).
- */
-template <class T, class Items>
-inline int write(ozstream& zs, const T* x, Items items) {
- return ::gzwrite(zs.fp(), (voidp) x, items*sizeof(T));
-}
-
-/*
- * Binary output with the '<' operator.
- */
-template <class T>
-inline ozstream& operator<(ozstream& zs, const T& x) {
- ::gzwrite(zs.fp(), (voidp) &x, sizeof(T));
- return zs;
-}
-
-inline zstringlen::zstringlen(ozstream& zs, const char* x) {
- val.byte = 255; val.word = ::strlen(x);
- if (val.word < 255) zs < (val.byte = val.word);
- else zs < val;
-}
-
-/*
- * Write length of string + the string with the '<' operator.
- */
-inline ozstream& operator<(ozstream& zs, const char* x) {
- zstringlen len(zs, x);
- ::gzwrite(zs.fp(), (voidp) x, len.value());
- return zs;
-}
-
-#ifdef _MSC_VER
-inline ozstream& operator<(ozstream& zs, char* const& x) {
- return zs < (const char*) x;
-}
-#endif
-
-/*
- * Ascii write with the << operator;
- */
-template <class T>
-inline ostream& operator<<(ozstream& zs, const T& x) {
- zs.os_flush();
- return zs.os() << x;
-}
-
-#endif
diff --git a/zlib-1.1.4/contrib/iostream2/zstream_test.cpp b/zlib-1.1.4/contrib/iostream2/zstream_test.cpp
deleted file mode 100644
index 5bbd56c..0000000
--- a/zlib-1.1.4/contrib/iostream2/zstream_test.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "zstream.h"
-#include <math.h>
-#include <stdlib.h>
-#include <iomanip.h>
-
-void main() {
- char h[256] = "Hello";
- char* g = "Goodbye";
- ozstream out("temp.gz");
- out < "This works well" < h < g;
- out.close();
-
- izstream in("temp.gz"); // read it back
- char *x = read_string(in), *y = new char[256], z[256];
- in > y > z;
- in.close();
- cout << x << endl << y << endl << z << endl;
-
- out.open("temp.gz"); // try ascii output; zcat temp.gz to see the results
- out << setw(50) << setfill('#') << setprecision(20) << x << endl << y << endl << z << endl;
- out << z << endl << y << endl << x << endl;
- out << 1.1234567890123456789 << endl;
-
- delete[] x; delete[] y;
-}
diff --git a/zlib-1.1.4/contrib/minizip/ChangeLogUnzip b/zlib-1.1.4/contrib/minizip/ChangeLogUnzip
deleted file mode 100644
index 9987c54..0000000
--- a/zlib-1.1.4/contrib/minizip/ChangeLogUnzip
+++ /dev/null
@@ -1,38 +0,0 @@
-Change in 0.15: (19 Mar 98)
-- fix memory leak in minizip.c
-
-Change in 0.14: (10 Mar 98)
-- fix bugs in minizip.c sample for zipping big file
-- fix problem in month in date handling
-- fix bug in unzlocal_GetCurrentFileInfoInternal in unzip.c for
- comment handling
-
-Change in 0.13: (6 Mar 98)
-- fix bugs in zip.c
-- add real minizip sample
-
-Change in 0.12: (4 Mar 98)
-- add zip.c and zip.h for creates .zip file
-- fix change_file_date in miniunz.c for Unix (Jean-loup Gailly)
-- fix miniunz.c for file without specific record for directory
-
-Change in 0.11: (3 Mar 98)
-- fix bug in unzGetCurrentFileInfo for get extra field and comment
-- enhance miniunz sample, remove the bad unztst.c sample
-
-Change in 0.10: (2 Mar 98)
-- fix bug in unzReadCurrentFile
-- rename unzip* to unz* function and structure
-- remove Windows-like hungary notation variable name
-- modify some structure in unzip.h
-- add somes comment in source
-- remove unzipGetcCurrentFile function
-- replace ZUNZEXPORT by ZEXPORT
-- add unzGetLocalExtrafield for get the local extrafield info
-- add a new sample, miniunz.c
-
-Change in 0.4: (25 Feb 98)
-- suppress the type unzipFileInZip.
- Only on file in the zipfile can be open at the same time
-- fix somes typo in code
-- added tm_unz structure in unzip_file_info (date/time in readable format)
diff --git a/zlib-1.1.4/contrib/minizip/Makefile b/zlib-1.1.4/contrib/minizip/Makefile
deleted file mode 100644
index a1dfc16..0000000
--- a/zlib-1.1.4/contrib/minizip/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-CC=cc
-CFLAGS=-O -I../..
-
-UNZ_OBJS = miniunz.o unzip.o ../../libz.a
-ZIP_OBJS = minizip.o zip.o ../../libz.a
-
-.c.o:
- $(CC) -c $(CFLAGS) $*.c
-
-all: miniunz minizip
-
-miniunz: $(UNZ_OBJS)
- $(CC) $(CFLAGS) -o $@ $(UNZ_OBJS)
-
-minizip: $(ZIP_OBJS)
- $(CC) $(CFLAGS) -o $@ $(ZIP_OBJS)
-
-test: miniunz minizip
- ./minizip test readme.txt
- ./miniunz -l test.zip
- mv readme.txt readme.old
- ./miniunz test.zip
-
-clean:
- /bin/rm -f *.o *~ minizip miniunz
diff --git a/zlib-1.1.4/contrib/minizip/miniunz.c b/zlib-1.1.4/contrib/minizip/miniunz.c
deleted file mode 100644
index f3b7832..0000000
--- a/zlib-1.1.4/contrib/minizip/miniunz.c
+++ /dev/null
@@ -1,508 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include <fcntl.h>
-
-#ifdef unix
-# include <unistd.h>
-# include <utime.h>
-#else
-# include <direct.h>
-# include <io.h>
-#endif
-
-#include "unzip.h"
-
-#define CASESENSITIVITY (0)
-#define WRITEBUFFERSIZE (8192)
-
-/*
- mini unzip, demo of unzip package
-
- usage :
- Usage : miniunz [-exvlo] file.zip [file_to_extract]
-
- list the file in the zipfile, and print the content of FILE_ID.ZIP or README.TXT
- if it exists
-*/
-
-
-/* change_file_date : change the date/time of a file
- filename : the filename of the file where date/time must be modified
- dosdate : the new date at the MSDos format (4 bytes)
- tmu_date : the SAME new date at the tm_unz format */
-void change_file_date(filename,dosdate,tmu_date)
- const char *filename;
- uLong dosdate;
- tm_unz tmu_date;
-{
-#ifdef WIN32
- HANDLE hFile;
- FILETIME ftm,ftLocal,ftCreate,ftLastAcc,ftLastWrite;
-
- hFile = CreateFile(filename,GENERIC_READ | GENERIC_WRITE,
- 0,NULL,OPEN_EXISTING,0,NULL);
- GetFileTime(hFile,&ftCreate,&ftLastAcc,&ftLastWrite);
- DosDateTimeToFileTime((WORD)(dosdate>>16),(WORD)dosdate,&ftLocal);
- LocalFileTimeToFileTime(&ftLocal,&ftm);
- SetFileTime(hFile,&ftm,&ftLastAcc,&ftm);
- CloseHandle(hFile);
-#else
-#ifdef unix
- struct utimbuf ut;
- struct tm newdate;
- newdate.tm_sec = tmu_date.tm_sec;
- newdate.tm_min=tmu_date.tm_min;
- newdate.tm_hour=tmu_date.tm_hour;
- newdate.tm_mday=tmu_date.tm_mday;
- newdate.tm_mon=tmu_date.tm_mon;
- if (tmu_date.tm_year > 1900)
- newdate.tm_year=tmu_date.tm_year - 1900;
- else
- newdate.tm_year=tmu_date.tm_year ;
- newdate.tm_isdst=-1;
-
- ut.actime=ut.modtime=mktime(&newdate);
- utime(filename,&ut);
-#endif
-#endif
-}
-
-
-/* mymkdir and change_file_date are not 100 % portable
- As I don't know well Unix, I wait feedback for the unix portion */
-
-int mymkdir(dirname)
- const char* dirname;
-{
- int ret=0;
-#ifdef WIN32
- ret = mkdir(dirname);
-#else
-#ifdef unix
- ret = mkdir (dirname,0775);
-#endif
-#endif
- return ret;
-}
-
-int makedir (newdir)
- char *newdir;
-{
- char *buffer ;
- char *p;
- int len = strlen(newdir);
-
- if (len <= 0)
- return 0;
-
- buffer = (char*)malloc(len+1);
- strcpy(buffer,newdir);
-
- if (buffer[len-1] == '/') {
- buffer[len-1] = '\0';
- }
- if (mymkdir(buffer) == 0)
- {
- free(buffer);
- return 1;
- }
-
- p = buffer+1;
- while (1)
- {
- char hold;
-
- while(*p && *p != '\\' && *p != '/')
- p++;
- hold = *p;
- *p = 0;
- if ((mymkdir(buffer) == -1) && (errno == ENOENT))
- {
- printf("couldn't create directory %s\n",buffer);
- free(buffer);
- return 0;
- }
- if (hold == 0)
- break;
- *p++ = hold;
- }
- free(buffer);
- return 1;
-}
-
-void do_banner()
-{
- printf("MiniUnz 0.15, demo of zLib + Unz package written by Gilles Vollant\n");
- printf("more info at http://wwww.winimage/zLibDll/unzip.htm\n\n");
-}
-
-void do_help()
-{
- printf("Usage : miniunz [-exvlo] file.zip [file_to_extract]\n\n") ;
-}
-
-
-int do_list(uf)
- unzFile uf;
-{
- uLong i;
- unz_global_info gi;
- int err;
-
- err = unzGetGlobalInfo (uf,&gi);
- if (err!=UNZ_OK)
- printf("error %d with zipfile in unzGetGlobalInfo \n",err);
- printf(" Length Method Size Ratio Date Time CRC-32 Name\n");
- printf(" ------ ------ ---- ----- ---- ---- ------ ----\n");
- for (i=0;i<gi.number_entry;i++)
- {
- char filename_inzip[256];
- unz_file_info file_info;
- uLong ratio=0;
- const char *string_method;
- err = unzGetCurrentFileInfo(uf,&file_info,filename_inzip,sizeof(filename_inzip),NULL,0,NULL,0);
- if (err!=UNZ_OK)
- {
- printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
- break;
- }
- if (file_info.uncompressed_size>0)
- ratio = (file_info.compressed_size*100)/file_info.uncompressed_size;
-
- if (file_info.compression_method==0)
- string_method="Stored";
- else
- if (file_info.compression_method==Z_DEFLATED)
- {
- uInt iLevel=(uInt)((file_info.flag & 0x6)/2);
- if (iLevel==0)
- string_method="Defl:N";
- else if (iLevel==1)
- string_method="Defl:X";
- else if ((iLevel==2) || (iLevel==3))
- string_method="Defl:F"; /* 2:fast , 3 : extra fast*/
- }
- else
- string_method="Unkn. ";
-
- printf("%7lu %6s %7lu %3lu%% %2.2lu-%2.2lu-%2.2lu %2.2lu:%2.2lu %8.8lx %s\n",
- file_info.uncompressed_size,string_method,file_info.compressed_size,
- ratio,
- (uLong)file_info.tmu_date.tm_mon + 1,
- (uLong)file_info.tmu_date.tm_mday,
- (uLong)file_info.tmu_date.tm_year % 100,
- (uLong)file_info.tmu_date.tm_hour,(uLong)file_info.tmu_date.tm_min,
- (uLong)file_info.crc,filename_inzip);
- if ((i+1)<gi.number_entry)
- {
- err = unzGoToNextFile(uf);
- if (err!=UNZ_OK)
- {
- printf("error %d with zipfile in unzGoToNextFile\n",err);
- break;
- }
- }
- }
-
- return 0;
-}
-
-
-int do_extract_currentfile(uf,popt_extract_without_path,popt_overwrite)
- unzFile uf;
- const int* popt_extract_without_path;
- int* popt_overwrite;
-{
- char filename_inzip[256];
- char* filename_withoutpath;
- char* p;
- int err=UNZ_OK;
- FILE *fout=NULL;
- void* buf;
- uInt size_buf;
-
- unz_file_info file_info;
- uLong ratio=0;
- err = unzGetCurrentFileInfo(uf,&file_info,filename_inzip,sizeof(filename_inzip),NULL,0,NULL,0);
-
- if (err!=UNZ_OK)
- {
- printf("error %d with zipfile in unzGetCurrentFileInfo\n",err);
- return err;
- }
-
- size_buf = WRITEBUFFERSIZE;
- buf = (void*)malloc(size_buf);
- if (buf==NULL)
- {
- printf("Error allocating memory\n");
- return UNZ_INTERNALERROR;
- }
-
- p = filename_withoutpath = filename_inzip;
- while ((*p) != '\0')
- {
- if (((*p)=='/') || ((*p)=='\\'))
- filename_withoutpath = p+1;
- p++;
- }
-
- if ((*filename_withoutpath)=='\0')
- {
- if ((*popt_extract_without_path)==0)
- {
- printf("creating directory: %s\n",filename_inzip);
- mymkdir(filename_inzip);
- }
- }
- else
- {
- const char* write_filename;
- int skip=0;
-
- if ((*popt_extract_without_path)==0)
- write_filename = filename_inzip;
- else
- write_filename = filename_withoutpath;
-
- err = unzOpenCurrentFile(uf);
- if (err!=UNZ_OK)
- {
- printf("error %d with zipfile in unzOpenCurrentFile\n",err);
- }
-
- if (((*popt_overwrite)==0) && (err==UNZ_OK))
- {
- char rep;
- FILE* ftestexist;
- ftestexist = fopen(write_filename,"rb");
- if (ftestexist!=NULL)
- {
- fclose(ftestexist);
- do
- {
- char answer[128];
- printf("The file %s exist. Overwrite ? [y]es, [n]o, [A]ll: ",write_filename);
- scanf("%1s",answer);
- rep = answer[0] ;
- if ((rep>='a') && (rep<='z'))
- rep -= 0x20;
- }
- while ((rep!='Y') && (rep!='N') && (rep!='A'));
- }
-
- if (rep == 'N')
- skip = 1;
-
- if (rep == 'A')
- *popt_overwrite=1;
- }
-
- if ((skip==0) && (err==UNZ_OK))
- {
- fout=fopen(write_filename,"wb");
-
- /* some zipfile don't contain directory alone before file */
- if ((fout==NULL) && ((*popt_extract_without_path)==0) &&
- (filename_withoutpath!=(char*)filename_inzip))
- {
- char c=*(filename_withoutpath-1);
- *(filename_withoutpath-1)='\0';
- makedir(write_filename);
- *(filename_withoutpath-1)=c;
- fout=fopen(write_filename,"wb");
- }
-
- if (fout==NULL)
- {
- printf("error opening %s\n",write_filename);
- }
- }
-
- if (fout!=NULL)
- {
- printf(" extracting: %s\n",write_filename);
-
- do
- {
- err = unzReadCurrentFile(uf,buf,size_buf);
- if (err<0)
- {
- printf("error %d with zipfile in unzReadCurrentFile\n",err);
- break;
- }
- if (err>0)
- if (fwrite(buf,err,1,fout)!=1)
- {
- printf("error in writing extracted file\n");
- err=UNZ_ERRNO;
- break;
- }
- }
- while (err>0);
- fclose(fout);
- if (err==0)
- change_file_date(write_filename,file_info.dosDate,
- file_info.tmu_date);
- }
-
- if (err==UNZ_OK)
- {
- err = unzCloseCurrentFile (uf);
- if (err!=UNZ_OK)
- {
- printf("error %d with zipfile in unzCloseCurrentFile\n",err);
- }
- }
- else
- unzCloseCurrentFile(uf); /* don't lose the error */
- }
-
- free(buf);
- return err;
-}
-
-
-int do_extract(uf,opt_extract_without_path,opt_overwrite)
- unzFile uf;
- int opt_extract_without_path;
- int opt_overwrite;
-{
- uLong i;
- unz_global_info gi;
- int err;
- FILE* fout=NULL;
-
- err = unzGetGlobalInfo (uf,&gi);
- if (err!=UNZ_OK)
- printf("error %d with zipfile in unzGetGlobalInfo \n",err);
-
- for (i=0;i<gi.number_entry;i++)
- {
- if (do_extract_currentfile(uf,&opt_extract_without_path,
- &opt_overwrite) != UNZ_OK)
- break;
-
- if ((i+1)<gi.number_entry)
- {
- err = unzGoToNextFile(uf);
- if (err!=UNZ_OK)
- {
- printf("error %d with zipfile in unzGoToNextFile\n",err);
- break;
- }
- }
- }
-
- return 0;
-}
-
-int do_extract_onefile(uf,filename,opt_extract_without_path,opt_overwrite)
- unzFile uf;
- const char* filename;
- int opt_extract_without_path;
- int opt_overwrite;
-{
- int err = UNZ_OK;
- if (unzLocateFile(uf,filename,CASESENSITIVITY)!=UNZ_OK)
- {
- printf("file %s not found in the zipfile\n",filename);
- return 2;
- }
-
- if (do_extract_currentfile(uf,&opt_extract_without_path,
- &opt_overwrite) == UNZ_OK)
- return 0;
- else
- return 1;
-}
-
-
-int main(argc,argv)
- int argc;
- char *argv[];
-{
- const char *zipfilename=NULL;
- const char *filename_to_extract=NULL;
- int i;
- int opt_do_list=0;
- int opt_do_extract=1;
- int opt_do_extract_withoutpath=0;
- int opt_overwrite=0;
- char filename_try[512];
- unzFile uf=NULL;
-
- do_banner();
- if (argc==1)
- {
- do_help();
- exit(0);
- }
- else
- {
- for (i=1;i<argc;i++)
- {
- if ((*argv[i])=='-')
- {
- const char *p=argv[i]+1;
-
- while ((*p)!='\0')
- {
- char c=*(p++);;
- if ((c=='l') || (c=='L'))
- opt_do_list = 1;
- if ((c=='v') || (c=='V'))
- opt_do_list = 1;
- if ((c=='x') || (c=='X'))
- opt_do_extract = 1;
- if ((c=='e') || (c=='E'))
- opt_do_extract = opt_do_extract_withoutpath = 1;
- if ((c=='o') || (c=='O'))
- opt_overwrite=1;
- }
- }
- else
- {
- if (zipfilename == NULL)
- zipfilename = argv[i];
- else if (filename_to_extract==NULL)
- filename_to_extract = argv[i] ;
- }
- }
- }
-
- if (zipfilename!=NULL)
- {
- strcpy(filename_try,zipfilename);
- uf = unzOpen(zipfilename);
- if (uf==NULL)
- {
- strcat(filename_try,".zip");
- uf = unzOpen(filename_try);
- }
- }
-
- if (uf==NULL)
- {
- printf("Cannot open %s or %s.zip\n",zipfilename,zipfilename);
- exit (1);
- }
- printf("%s opened\n",filename_try);
-
- if (opt_do_list==1)
- return do_list(uf);
- else if (opt_do_extract==1)
- {
- if (filename_to_extract == NULL)
- return do_extract(uf,opt_do_extract_withoutpath,opt_overwrite);
- else
- return do_extract_onefile(uf,filename_to_extract,
- opt_do_extract_withoutpath,opt_overwrite);
- }
- unzCloseCurrentFile(uf);
-
- return 0; /* to avoid warning */
-}
diff --git a/zlib-1.1.4/contrib/minizip/minizip.c b/zlib-1.1.4/contrib/minizip/minizip.c
deleted file mode 100644
index 5e492d2..0000000
--- a/zlib-1.1.4/contrib/minizip/minizip.c
+++ /dev/null
@@ -1,302 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include <fcntl.h>
-
-#ifdef unix
-# include <unistd.h>
-# include <utime.h>
-# include <sys/types.h>
-# include <sys/stat.h>
-#else
-# include <direct.h>
-# include <io.h>
-#endif
-
-#include "zip.h"
-
-
-#define WRITEBUFFERSIZE (16384)
-#define MAXFILENAME (256)
-
-#ifdef WIN32
-uLong filetime(f, tmzip, dt)
- char *f; /* name of file to get info on */
- tm_zip *tmzip; /* return value: access, modific. and creation times */
- uLong *dt; /* dostime */
-{
- int ret = 0;
- {
- FILETIME ftLocal;
- HANDLE hFind;
- WIN32_FIND_DATA ff32;
-
- hFind = FindFirstFile(f,&ff32);
- if (hFind != INVALID_HANDLE_VALUE)
- {
- FileTimeToLocalFileTime(&(ff32.ftLastWriteTime),&ftLocal);
- FileTimeToDosDateTime(&ftLocal,((LPWORD)dt)+1,((LPWORD)dt)+0);
- FindClose(hFind);
- ret = 1;
- }
- }
- return ret;
-}
-#else
-#ifdef unix
-uLong filetime(f, tmzip, dt)
- char *f; /* name of file to get info on */
- tm_zip *tmzip; /* return value: access, modific. and creation times */
- uLong *dt; /* dostime */
-{
- int ret=0;
- struct stat s; /* results of stat() */
- struct tm* filedate;
- time_t tm_t=0;
-
- if (strcmp(f,"-")!=0)
- {
- char name[MAXFILENAME];
- int len = strlen(f);
- strcpy(name, f);
- if (name[len - 1] == '/')
- name[len - 1] = '\0';
- /* not all systems allow stat'ing a file with / appended */
- if (stat(name,&s)==0)
- {
- tm_t = s.st_mtime;
- ret = 1;
- }
- }
- filedate = localtime(&tm_t);
-
- tmzip->tm_sec = filedate->tm_sec;
- tmzip->tm_min = filedate->tm_min;
- tmzip->tm_hour = filedate->tm_hour;
- tmzip->tm_mday = filedate->tm_mday;
- tmzip->tm_mon = filedate->tm_mon ;
- tmzip->tm_year = filedate->tm_year;
-
- return ret;
-}
-#else
-uLong filetime(f, tmzip, dt)
- char *f; /* name of file to get info on */
- tm_zip *tmzip; /* return value: access, modific. and creation times */
- uLong *dt; /* dostime */
-{
- return 0;
-}
-#endif
-#endif
-
-
-
-
-int check_exist_file(filename)
- const char* filename;
-{
- FILE* ftestexist;
- int ret = 1;
- ftestexist = fopen(filename,"rb");
- if (ftestexist==NULL)
- ret = 0;
- else
- fclose(ftestexist);
- return ret;
-}
-
-void do_banner()
-{
- printf("MiniZip 0.15, demo of zLib + Zip package written by Gilles Vollant\n");
- printf("more info at http://wwww.winimage/zLibDll/unzip.htm\n\n");
-}
-
-void do_help()
-{
- printf("Usage : minizip [-o] file.zip [files_to_add]\n\n") ;
-}
-
-int main(argc,argv)
- int argc;
- char *argv[];
-{
- int i;
- int opt_overwrite=0;
- int opt_compress_level=Z_DEFAULT_COMPRESSION;
- int zipfilenamearg = 0;
- char filename_try[MAXFILENAME];
- int zipok;
- int err=0;
- int size_buf=0;
- void* buf=NULL,
-
-
- do_banner();
- if (argc==1)
- {
- do_help();
- exit(0);
- return 0;
- }
- else
- {
- for (i=1;i<argc;i++)
- {
- if ((*argv[i])=='-')
- {
- const char *p=argv[i]+1;
-
- while ((*p)!='\0')
- {
- char c=*(p++);;
- if ((c=='o') || (c=='O'))
- opt_overwrite = 1;
- if ((c>='0') && (c<='9'))
- opt_compress_level = c-'0';
- }
- }
- else
- if (zipfilenamearg == 0)
- zipfilenamearg = i ;
- }
- }
-
- size_buf = WRITEBUFFERSIZE;
- buf = (void*)malloc(size_buf);
- if (buf==NULL)
- {
- printf("Error allocating memory\n");
- return ZIP_INTERNALERROR;
- }
-
- if (zipfilenamearg==0)
- zipok=0;
- else
- {
- int i,len;
- int dot_found=0;
-
- zipok = 1 ;
- strcpy(filename_try,argv[zipfilenamearg]);
- len=strlen(filename_try);
- for (i=0;i<len;i++)
- if (filename_try[i]=='.')
- dot_found=1;
-
- if (dot_found==0)
- strcat(filename_try,".zip");
-
- if (opt_overwrite==0)
- if (check_exist_file(filename_try)!=0)
- {
- char rep;
- do
- {
- char answer[128];
- printf("The file %s exist. Overwrite ? [y]es, [n]o : ",filename_try);
- scanf("%1s",answer);
- rep = answer[0] ;
- if ((rep>='a') && (rep<='z'))
- rep -= 0x20;
- }
- while ((rep!='Y') && (rep!='N'));
- if (rep=='N')
- zipok = 0;
- }
- }
-
- if (zipok==1)
- {
- zipFile zf;
- int errclose;
- zf = zipOpen(filename_try,0);
- if (zf == NULL)
- {
- printf("error opening %s\n",filename_try);
- err= ZIP_ERRNO;
- }
- else
- printf("creating %s\n",filename_try);
-
- for (i=zipfilenamearg+1;(i<argc) && (err==ZIP_OK);i++)
- {
- if (((*(argv[i]))!='-') && ((*(argv[i]))!='/'))
- {
- FILE * fin;
- int size_read;
- const char* filenameinzip = argv[i];
- zip_fileinfo zi;
-
- zi.tmz_date.tm_sec = zi.tmz_date.tm_min = zi.tmz_date.tm_hour =
- zi.tmz_date.tm_mday = zi.tmz_date.tm_min = zi.tmz_date.tm_year = 0;
- zi.dosDate = 0;
- zi.internal_fa = 0;
- zi.external_fa = 0;
- filetime(filenameinzip,&zi.tmz_date,&zi.dosDate);
-
-
- err = zipOpenNewFileInZip(zf,filenameinzip,&zi,
- NULL,0,NULL,0,NULL /* comment*/,
- (opt_compress_level != 0) ? Z_DEFLATED : 0,
- opt_compress_level);
-
- if (err != ZIP_OK)
- printf("error in opening %s in zipfile\n",filenameinzip);
- else
- {
- fin = fopen(filenameinzip,"rb");
- if (fin==NULL)
- {
- err=ZIP_ERRNO;
- printf("error in opening %s for reading\n",filenameinzip);
- }
- }
-
- if (err == ZIP_OK)
- do
- {
- err = ZIP_OK;
- size_read = fread(buf,1,size_buf,fin);
- if (size_read < size_buf)
- if (feof(fin)==0)
- {
- printf("error in reading %s\n",filenameinzip);
- err = ZIP_ERRNO;
- }
-
- if (size_read>0)
- {
- err = zipWriteInFileInZip (zf,buf,size_read);
- if (err<0)
- {
- printf("error in writing %s in the zipfile\n",
- filenameinzip);
- }
-
- }
- } while ((err == ZIP_OK) && (size_read>0));
-
- fclose(fin);
- if (err<0)
- err=ZIP_ERRNO;
- else
- {
- err = zipCloseFileInZip(zf);
- if (err!=ZIP_OK)
- printf("error in closing %s in the zipfile\n",
- filenameinzip);
- }
- }
- }
- errclose = zipClose(zf,NULL);
- if (errclose != ZIP_OK)
- printf("error in closing %s\n",filename_try);
- }
-
- free(buf);
- exit(0);
- return 0; /* to avoid warning */
-}
diff --git a/zlib-1.1.4/contrib/minizip/readme.txt b/zlib-1.1.4/contrib/minizip/readme.txt
deleted file mode 100644
index 1fc023c..0000000
--- a/zlib-1.1.4/contrib/minizip/readme.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-
-UnZip 0.15 additionnal library
-
-
- This unzip package allow extract file from .ZIP file, compatible with
-PKZip 2.04g, WinZip, InfoZip tools and compatible.
-
- Multi volume ZipFile (span) are not supported, and old compression used by old
-PKZip 1.x are not supported.
-
-See probdesc.zip from PKWare for specification of .ZIP format.
-
-What is Unzip
- The Zlib library support the deflate compression and the creation of gzip (.gz)
-file. Zlib is free and small.
- The .Zip format, which can contain several compressed files (.gz can containt
-only one file) is a very popular format. This is why I've written a package for reading file compressed in Zipfile.
-
-Using Unzip package
-
-You need source of Zlib (get zlib111.zip and read zlib.h).
-Get unzlb015.zip and read unzip.h (whith documentation of unzip functions)
-
-The Unzip package is only two file : unzip.h and unzip.c. But it use the Zlib
- files.
-unztst.c is a simple sample program, which list file in a zipfile and display
- README.TXT or FILE_ID.DIZ (if these files are found).
-miniunz.c is a mini unzip program.
-
-I'm also currenlyt writing a zipping portion (zip.h, zip.c and test with minizip.c)
-
-Please email me for feedback.
-I hope my source is compatible with Unix system, but I need your help for be sure
-
-Latest revision : Mar 04th, 1998
-
-Check http://www.winimage.com/zLibDll/unzip.html for up to date info.
diff --git a/zlib-1.1.4/contrib/minizip/unzip.c b/zlib-1.1.4/contrib/minizip/unzip.c
deleted file mode 100644
index ff71a47..0000000
--- a/zlib-1.1.4/contrib/minizip/unzip.c
+++ /dev/null
@@ -1,1294 +0,0 @@
-/* unzip.c -- IO on .zip files using zlib
- Version 0.15 beta, Mar 19th, 1998,
-
- Read unzip.h for more info
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "zlib.h"
-#include "unzip.h"
-
-#ifdef STDC
-# include <stddef.h>
-# include <string.h>
-# include <stdlib.h>
-#endif
-#ifdef NO_ERRNO_H
- extern int errno;
-#else
-# include <errno.h>
-#endif
-
-
-#ifndef local
-# define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-
-
-#if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) && \
- !defined(CASESENSITIVITYDEFAULT_NO)
-#define CASESENSITIVITYDEFAULT_NO
-#endif
-
-
-#ifndef UNZ_BUFSIZE
-#define UNZ_BUFSIZE (16384)
-#endif
-
-#ifndef UNZ_MAXFILENAMEINZIP
-#define UNZ_MAXFILENAMEINZIP (256)
-#endif
-
-#ifndef ALLOC
-# define ALLOC(size) (malloc(size))
-#endif
-#ifndef TRYFREE
-# define TRYFREE(p) {if (p) free(p);}
-#endif
-
-#define SIZECENTRALDIRITEM (0x2e)
-#define SIZEZIPLOCALHEADER (0x1e)
-
-
-/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
-
-#ifndef SEEK_CUR
-#define SEEK_CUR 1
-#endif
-
-#ifndef SEEK_END
-#define SEEK_END 2
-#endif
-
-#ifndef SEEK_SET
-#define SEEK_SET 0
-#endif
-
-const char unz_copyright[] =
- " unzip 0.15 Copyright 1998 Gilles Vollant ";
-
-/* unz_file_info_interntal contain internal info about a file in zipfile*/
-typedef struct unz_file_info_internal_s
-{
- uLong offset_curfile;/* relative offset of local header 4 bytes */
-} unz_file_info_internal;
-
-
-/* file_in_zip_read_info_s contain internal information about a file in zipfile,
- when reading and decompress it */
-typedef struct
-{
- char *read_buffer; /* internal buffer for compressed data */
- z_stream stream; /* zLib stream structure for inflate */
-
- uLong pos_in_zipfile; /* position in byte on the zipfile, for fseek*/
- uLong stream_initialised; /* flag set if stream structure is initialised*/
-
- uLong offset_local_extrafield;/* offset of the local extra field */
- uInt size_local_extrafield;/* size of the local extra field */
- uLong pos_local_extrafield; /* position in the local extra field in read*/
-
- uLong crc32; /* crc32 of all data uncompressed */
- uLong crc32_wait; /* crc32 we must obtain after decompress all */
- uLong rest_read_compressed; /* number of byte to be decompressed */
- uLong rest_read_uncompressed;/*number of byte to be obtained after decomp*/
- FILE* file; /* io structore of the zipfile */
- uLong compression_method; /* compression method (0==store) */
- uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
-} file_in_zip_read_info_s;
-
-
-/* unz_s contain internal information about the zipfile
-*/
-typedef struct
-{
- FILE* file; /* io structore of the zipfile */
- unz_global_info gi; /* public global information */
- uLong byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
- uLong num_file; /* number of the current file in the zipfile*/
- uLong pos_in_central_dir; /* pos of the current file in the central dir*/
- uLong current_file_ok; /* flag about the usability of the current file*/
- uLong central_pos; /* position of the beginning of the central dir*/
-
- uLong size_central_dir; /* size of the central directory */
- uLong offset_central_dir; /* offset of start of central directory with
- respect to the starting disk number */
-
- unz_file_info cur_file_info; /* public info about the current file in zip*/
- unz_file_info_internal cur_file_info_internal; /* private info about it*/
- file_in_zip_read_info_s* pfile_in_zip_read; /* structure about the current
- file if we are decompressing it */
-} unz_s;
-
-
-/* ===========================================================================
- Read a byte from a gz_stream; update next_in and avail_in. Return EOF
- for end of file.
- IN assertion: the stream s has been sucessfully opened for reading.
-*/
-
-
-local int unzlocal_getByte(fin,pi)
- FILE *fin;
- int *pi;
-{
- unsigned char c;
- int err = fread(&c, 1, 1, fin);
- if (err==1)
- {
- *pi = (int)c;
- return UNZ_OK;
- }
- else
- {
- if (ferror(fin))
- return UNZ_ERRNO;
- else
- return UNZ_EOF;
- }
-}
-
-
-/* ===========================================================================
- Reads a long in LSB order from the given gz_stream. Sets
-*/
-local int unzlocal_getShort (fin,pX)
- FILE* fin;
- uLong *pX;
-{
- uLong x ;
- int i;
- int err;
-
- err = unzlocal_getByte(fin,&i);
- x = (uLong)i;
-
- if (err==UNZ_OK)
- err = unzlocal_getByte(fin,&i);
- x += ((uLong)i)<<8;
-
- if (err==UNZ_OK)
- *pX = x;
- else
- *pX = 0;
- return err;
-}
-
-local int unzlocal_getLong (fin,pX)
- FILE* fin;
- uLong *pX;
-{
- uLong x ;
- int i;
- int err;
-
- err = unzlocal_getByte(fin,&i);
- x = (uLong)i;
-
- if (err==UNZ_OK)
- err = unzlocal_getByte(fin,&i);
- x += ((uLong)i)<<8;
-
- if (err==UNZ_OK)
- err = unzlocal_getByte(fin,&i);
- x += ((uLong)i)<<16;
-
- if (err==UNZ_OK)
- err = unzlocal_getByte(fin,&i);
- x += ((uLong)i)<<24;
-
- if (err==UNZ_OK)
- *pX = x;
- else
- *pX = 0;
- return err;
-}
-
-
-/* My own strcmpi / strcasecmp */
-local int strcmpcasenosensitive_internal (fileName1,fileName2)
- const char* fileName1;
- const char* fileName2;
-{
- for (;;)
- {
- char c1=*(fileName1++);
- char c2=*(fileName2++);
- if ((c1>='a') && (c1<='z'))
- c1 -= 0x20;
- if ((c2>='a') && (c2<='z'))
- c2 -= 0x20;
- if (c1=='\0')
- return ((c2=='\0') ? 0 : -1);
- if (c2=='\0')
- return 1;
- if (c1<c2)
- return -1;
- if (c1>c2)
- return 1;
- }
-}
-
-
-#ifdef CASESENSITIVITYDEFAULT_NO
-#define CASESENSITIVITYDEFAULTVALUE 2
-#else
-#define CASESENSITIVITYDEFAULTVALUE 1
-#endif
-
-#ifndef STRCMPCASENOSENTIVEFUNCTION
-#define STRCMPCASENOSENTIVEFUNCTION strcmpcasenosensitive_internal
-#endif
-
-/*
- Compare two filename (fileName1,fileName2).
- If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp)
- If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi
- or strcasecmp)
- If iCaseSenisivity = 0, case sensitivity is defaut of your operating system
- (like 1 on Unix, 2 on Windows)
-
-*/
-extern int ZEXPORT unzStringFileNameCompare (fileName1,fileName2,iCaseSensitivity)
- const char* fileName1;
- const char* fileName2;
- int iCaseSensitivity;
-{
- if (iCaseSensitivity==0)
- iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
-
- if (iCaseSensitivity==1)
- return strcmp(fileName1,fileName2);
-
- return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2);
-}
-
-#define BUFREADCOMMENT (0x400)
-
-/*
- Locate the Central directory of a zipfile (at the end, just before
- the global comment)
-*/
-local uLong unzlocal_SearchCentralDir(fin)
- FILE *fin;
-{
- unsigned char* buf;
- uLong uSizeFile;
- uLong uBackRead;
- uLong uMaxBack=0xffff; /* maximum size of global comment */
- uLong uPosFound=0;
-
- if (fseek(fin,0,SEEK_END) != 0)
- return 0;
-
-
- uSizeFile = ftell( fin );
-
- if (uMaxBack>uSizeFile)
- uMaxBack = uSizeFile;
-
- buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
- if (buf==NULL)
- return 0;
-
- uBackRead = 4;
- while (uBackRead<uMaxBack)
- {
- uLong uReadSize,uReadPos ;
- int i;
- if (uBackRead+BUFREADCOMMENT>uMaxBack)
- uBackRead = uMaxBack;
- else
- uBackRead+=BUFREADCOMMENT;
- uReadPos = uSizeFile-uBackRead ;
-
- uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
- (BUFREADCOMMENT+4) : (uSizeFile-uReadPos);
- if (fseek(fin,uReadPos,SEEK_SET)!=0)
- break;
-
- if (fread(buf,(uInt)uReadSize,1,fin)!=1)
- break;
-
- for (i=(int)uReadSize-3; (i--)>0;)
- if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
- ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
- {
- uPosFound = uReadPos+i;
- break;
- }
-
- if (uPosFound!=0)
- break;
- }
- TRYFREE(buf);
- return uPosFound;
-}
-
-/*
- Open a Zip file. path contain the full pathname (by example,
- on a Windows NT computer "c:\\test\\zlib109.zip" or on an Unix computer
- "zlib/zlib109.zip".
- If the zipfile cannot be opened (file don't exist or in not valid), the
- return value is NULL.
- Else, the return value is a unzFile Handle, usable with other function
- of this unzip package.
-*/
-extern unzFile ZEXPORT unzOpen (path)
- const char *path;
-{
- unz_s us;
- unz_s *s;
- uLong central_pos,uL;
- FILE * fin ;
-
- uLong number_disk; /* number of the current dist, used for
- spaning ZIP, unsupported, always 0*/
- uLong number_disk_with_CD; /* number the the disk with central dir, used
- for spaning ZIP, unsupported, always 0*/
- uLong number_entry_CD; /* total number of entries in
- the central dir
- (same than number_entry on nospan) */
-
- int err=UNZ_OK;
-
- if (unz_copyright[0]!=' ')
- return NULL;
-
- fin=fopen(path,"rb");
- if (fin==NULL)
- return NULL;
-
- central_pos = unzlocal_SearchCentralDir(fin);
- if (central_pos==0)
- err=UNZ_ERRNO;
-
- if (fseek(fin,central_pos,SEEK_SET)!=0)
- err=UNZ_ERRNO;
-
- /* the signature, already checked */
- if (unzlocal_getLong(fin,&uL)!=UNZ_OK)
- err=UNZ_ERRNO;
-
- /* number of this disk */
- if (unzlocal_getShort(fin,&number_disk)!=UNZ_OK)
- err=UNZ_ERRNO;
-
- /* number of the disk with the start of the central directory */
- if (unzlocal_getShort(fin,&number_disk_with_CD)!=UNZ_OK)
- err=UNZ_ERRNO;
-
- /* total number of entries in the central dir on this disk */
- if (unzlocal_getShort(fin,&us.gi.number_entry)!=UNZ_OK)
- err=UNZ_ERRNO;
-
- /* total number of entries in the central dir */
- if (unzlocal_getShort(fin,&number_entry_CD)!=UNZ_OK)
- err=UNZ_ERRNO;
-
- if ((number_entry_CD!=us.gi.number_entry) ||
- (number_disk_with_CD!=0) ||
- (number_disk!=0))
- err=UNZ_BADZIPFILE;
-
- /* size of the central directory */
- if (unzlocal_getLong(fin,&us.size_central_dir)!=UNZ_OK)
- err=UNZ_ERRNO;
-
- /* offset of start of central directory with respect to the
- starting disk number */
- if (unzlocal_getLong(fin,&us.offset_central_dir)!=UNZ_OK)
- err=UNZ_ERRNO;
-
- /* zipfile comment length */
- if (unzlocal_getShort(fin,&us.gi.size_comment)!=UNZ_OK)
- err=UNZ_ERRNO;
-
- if ((central_pos<us.offset_central_dir+us.size_central_dir) &&
- (err==UNZ_OK))
- err=UNZ_BADZIPFILE;
-
- if (err!=UNZ_OK)
- {
- fclose(fin);
- return NULL;
- }
-
- us.file=fin;
- us.byte_before_the_zipfile = central_pos -
- (us.offset_central_dir+us.size_central_dir);
- us.central_pos = central_pos;
- us.pfile_in_zip_read = NULL;
-
-
- s=(unz_s*)ALLOC(sizeof(unz_s));
- *s=us;
- unzGoToFirstFile((unzFile)s);
- return (unzFile)s;
-}
-
-
-/*
- Close a ZipFile opened with unzipOpen.
- If there is files inside the .Zip opened with unzipOpenCurrentFile (see later),
- these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
- return UNZ_OK if there is no problem. */
-extern int ZEXPORT unzClose (file)
- unzFile file;
-{
- unz_s* s;
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
-
- if (s->pfile_in_zip_read!=NULL)
- unzCloseCurrentFile(file);
-
- fclose(s->file);
- TRYFREE(s);
- return UNZ_OK;
-}
-
-
-/*
- Write info about the ZipFile in the *pglobal_info structure.
- No preparation of the structure is needed
- return UNZ_OK if there is no problem. */
-extern int ZEXPORT unzGetGlobalInfo (file,pglobal_info)
- unzFile file;
- unz_global_info *pglobal_info;
-{
- unz_s* s;
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- *pglobal_info=s->gi;
- return UNZ_OK;
-}
-
-
-/*
- Translate date/time from Dos format to tm_unz (readable more easilty)
-*/
-local void unzlocal_DosDateToTmuDate (ulDosDate, ptm)
- uLong ulDosDate;
- tm_unz* ptm;
-{
- uLong uDate;
- uDate = (uLong)(ulDosDate>>16);
- ptm->tm_mday = (uInt)(uDate&0x1f) ;
- ptm->tm_mon = (uInt)((((uDate)&0x1E0)/0x20)-1) ;
- ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ;
-
- ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800);
- ptm->tm_min = (uInt) ((ulDosDate&0x7E0)/0x20) ;
- ptm->tm_sec = (uInt) (2*(ulDosDate&0x1f)) ;
-}
-
-/*
- Get Info about the current file in the zipfile, with internal only info
-*/
-local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
- unz_file_info *pfile_info,
- unz_file_info_internal
- *pfile_info_internal,
- char *szFileName,
- uLong fileNameBufferSize,
- void *extraField,
- uLong extraFieldBufferSize,
- char *szComment,
- uLong commentBufferSize));
-
-local int unzlocal_GetCurrentFileInfoInternal (file,
- pfile_info,
- pfile_info_internal,
- szFileName, fileNameBufferSize,
- extraField, extraFieldBufferSize,
- szComment, commentBufferSize)
- unzFile file;
- unz_file_info *pfile_info;
- unz_file_info_internal *pfile_info_internal;
- char *szFileName;
- uLong fileNameBufferSize;
- void *extraField;
- uLong extraFieldBufferSize;
- char *szComment;
- uLong commentBufferSize;
-{
- unz_s* s;
- unz_file_info file_info;
- unz_file_info_internal file_info_internal;
- int err=UNZ_OK;
- uLong uMagic;
- long lSeek=0;
-
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- if (fseek(s->file,s->pos_in_central_dir+s->byte_before_the_zipfile,SEEK_SET)!=0)
- err=UNZ_ERRNO;
-
-
- /* we check the magic */
- if (err==UNZ_OK)
- if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK)
- err=UNZ_ERRNO;
- else if (uMagic!=0x02014b50)
- err=UNZ_BADZIPFILE;
-
- if (unzlocal_getShort(s->file,&file_info.version) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&file_info.version_needed) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&file_info.flag) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&file_info.compression_method) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getLong(s->file,&file_info.dosDate) != UNZ_OK)
- err=UNZ_ERRNO;
-
- unzlocal_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date);
-
- if (unzlocal_getLong(s->file,&file_info.crc) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getLong(s->file,&file_info.compressed_size) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getLong(s->file,&file_info.uncompressed_size) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&file_info.size_filename) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&file_info.size_file_extra) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&file_info.size_file_comment) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&file_info.disk_num_start) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&file_info.internal_fa) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getLong(s->file,&file_info.external_fa) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getLong(s->file,&file_info_internal.offset_curfile) != UNZ_OK)
- err=UNZ_ERRNO;
-
- lSeek+=file_info.size_filename;
- if ((err==UNZ_OK) && (szFileName!=NULL))
- {
- uLong uSizeRead ;
- if (file_info.size_filename<fileNameBufferSize)
- {
- *(szFileName+file_info.size_filename)='\0';
- uSizeRead = file_info.size_filename;
- }
- else
- uSizeRead = fileNameBufferSize;
-
- if ((file_info.size_filename>0) && (fileNameBufferSize>0))
- if (fread(szFileName,(uInt)uSizeRead,1,s->file)!=1)
- err=UNZ_ERRNO;
- lSeek -= uSizeRead;
- }
-
-
- if ((err==UNZ_OK) && (extraField!=NULL))
- {
- uLong uSizeRead ;
- if (file_info.size_file_extra<extraFieldBufferSize)
- uSizeRead = file_info.size_file_extra;
- else
- uSizeRead = extraFieldBufferSize;
-
- if (lSeek!=0)
- if (fseek(s->file,lSeek,SEEK_CUR)==0)
- lSeek=0;
- else
- err=UNZ_ERRNO;
- if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0))
- if (fread(extraField,(uInt)uSizeRead,1,s->file)!=1)
- err=UNZ_ERRNO;
- lSeek += file_info.size_file_extra - uSizeRead;
- }
- else
- lSeek+=file_info.size_file_extra;
-
-
- if ((err==UNZ_OK) && (szComment!=NULL))
- {
- uLong uSizeRead ;
- if (file_info.size_file_comment<commentBufferSize)
- {
- *(szComment+file_info.size_file_comment)='\0';
- uSizeRead = file_info.size_file_comment;
- }
- else
- uSizeRead = commentBufferSize;
-
- if (lSeek!=0)
- if (fseek(s->file,lSeek,SEEK_CUR)==0)
- lSeek=0;
- else
- err=UNZ_ERRNO;
- if ((file_info.size_file_comment>0) && (commentBufferSize>0))
- if (fread(szComment,(uInt)uSizeRead,1,s->file)!=1)
- err=UNZ_ERRNO;
- lSeek+=file_info.size_file_comment - uSizeRead;
- }
- else
- lSeek+=file_info.size_file_comment;
-
- if ((err==UNZ_OK) && (pfile_info!=NULL))
- *pfile_info=file_info;
-
- if ((err==UNZ_OK) && (pfile_info_internal!=NULL))
- *pfile_info_internal=file_info_internal;
-
- return err;
-}
-
-
-
-/*
- Write info about the ZipFile in the *pglobal_info structure.
- No preparation of the structure is needed
- return UNZ_OK if there is no problem.
-*/
-extern int ZEXPORT unzGetCurrentFileInfo (file,
- pfile_info,
- szFileName, fileNameBufferSize,
- extraField, extraFieldBufferSize,
- szComment, commentBufferSize)
- unzFile file;
- unz_file_info *pfile_info;
- char *szFileName;
- uLong fileNameBufferSize;
- void *extraField;
- uLong extraFieldBufferSize;
- char *szComment;
- uLong commentBufferSize;
-{
- return unzlocal_GetCurrentFileInfoInternal(file,pfile_info,NULL,
- szFileName,fileNameBufferSize,
- extraField,extraFieldBufferSize,
- szComment,commentBufferSize);
-}
-
-/*
- Set the current file of the zipfile to the first file.
- return UNZ_OK if there is no problem
-*/
-extern int ZEXPORT unzGoToFirstFile (file)
- unzFile file;
-{
- int err=UNZ_OK;
- unz_s* s;
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- s->pos_in_central_dir=s->offset_central_dir;
- s->num_file=0;
- err=unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info,
- &s->cur_file_info_internal,
- NULL,0,NULL,0,NULL,0);
- s->current_file_ok = (err == UNZ_OK);
- return err;
-}
-
-
-/*
- Set the current file of the zipfile to the next file.
- return UNZ_OK if there is no problem
- return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
-*/
-extern int ZEXPORT unzGoToNextFile (file)
- unzFile file;
-{
- unz_s* s;
- int err;
-
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- if (!s->current_file_ok)
- return UNZ_END_OF_LIST_OF_FILE;
- if (s->num_file+1==s->gi.number_entry)
- return UNZ_END_OF_LIST_OF_FILE;
-
- s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename +
- s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ;
- s->num_file++;
- err = unzlocal_GetCurrentFileInfoInternal(file,&s->cur_file_info,
- &s->cur_file_info_internal,
- NULL,0,NULL,0,NULL,0);
- s->current_file_ok = (err == UNZ_OK);
- return err;
-}
-
-
-/*
- Try locate the file szFileName in the zipfile.
- For the iCaseSensitivity signification, see unzipStringFileNameCompare
-
- return value :
- UNZ_OK if the file is found. It becomes the current file.
- UNZ_END_OF_LIST_OF_FILE if the file is not found
-*/
-extern int ZEXPORT unzLocateFile (file, szFileName, iCaseSensitivity)
- unzFile file;
- const char *szFileName;
- int iCaseSensitivity;
-{
- unz_s* s;
- int err;
-
-
- uLong num_fileSaved;
- uLong pos_in_central_dirSaved;
-
-
- if (file==NULL)
- return UNZ_PARAMERROR;
-
- if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP)
- return UNZ_PARAMERROR;
-
- s=(unz_s*)file;
- if (!s->current_file_ok)
- return UNZ_END_OF_LIST_OF_FILE;
-
- num_fileSaved = s->num_file;
- pos_in_central_dirSaved = s->pos_in_central_dir;
-
- err = unzGoToFirstFile(file);
-
- while (err == UNZ_OK)
- {
- char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1];
- unzGetCurrentFileInfo(file,NULL,
- szCurrentFileName,sizeof(szCurrentFileName)-1,
- NULL,0,NULL,0);
- if (unzStringFileNameCompare(szCurrentFileName,
- szFileName,iCaseSensitivity)==0)
- return UNZ_OK;
- err = unzGoToNextFile(file);
- }
-
- s->num_file = num_fileSaved ;
- s->pos_in_central_dir = pos_in_central_dirSaved ;
- return err;
-}
-
-
-/*
- Read the local header of the current zipfile
- Check the coherency of the local header and info in the end of central
- directory about this file
- store in *piSizeVar the size of extra info in local header
- (filename and size of extra field data)
-*/
-local int unzlocal_CheckCurrentFileCoherencyHeader (s,piSizeVar,
- poffset_local_extrafield,
- psize_local_extrafield)
- unz_s* s;
- uInt* piSizeVar;
- uLong *poffset_local_extrafield;
- uInt *psize_local_extrafield;
-{
- uLong uMagic,uData,uFlags;
- uLong size_filename;
- uLong size_extra_field;
- int err=UNZ_OK;
-
- *piSizeVar = 0;
- *poffset_local_extrafield = 0;
- *psize_local_extrafield = 0;
-
- if (fseek(s->file,s->cur_file_info_internal.offset_curfile +
- s->byte_before_the_zipfile,SEEK_SET)!=0)
- return UNZ_ERRNO;
-
-
- if (err==UNZ_OK)
- if (unzlocal_getLong(s->file,&uMagic) != UNZ_OK)
- err=UNZ_ERRNO;
- else if (uMagic!=0x04034b50)
- err=UNZ_BADZIPFILE;
-
- if (unzlocal_getShort(s->file,&uData) != UNZ_OK)
- err=UNZ_ERRNO;
-/*
- else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion))
- err=UNZ_BADZIPFILE;
-*/
- if (unzlocal_getShort(s->file,&uFlags) != UNZ_OK)
- err=UNZ_ERRNO;
-
- if (unzlocal_getShort(s->file,&uData) != UNZ_OK)
- err=UNZ_ERRNO;
- else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method))
- err=UNZ_BADZIPFILE;
-
- if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) &&
- (s->cur_file_info.compression_method!=Z_DEFLATED))
- err=UNZ_BADZIPFILE;
-
- if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* date/time */
- err=UNZ_ERRNO;
-
- if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* crc */
- err=UNZ_ERRNO;
- else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) &&
- ((uFlags & 8)==0))
- err=UNZ_BADZIPFILE;
-
- if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size compr */
- err=UNZ_ERRNO;
- else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) &&
- ((uFlags & 8)==0))
- err=UNZ_BADZIPFILE;
-
- if (unzlocal_getLong(s->file,&uData) != UNZ_OK) /* size uncompr */
- err=UNZ_ERRNO;
- else if ((err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) &&
- ((uFlags & 8)==0))
- err=UNZ_BADZIPFILE;
-
-
- if (unzlocal_getShort(s->file,&size_filename) != UNZ_OK)
- err=UNZ_ERRNO;
- else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename))
- err=UNZ_BADZIPFILE;
-
- *piSizeVar += (uInt)size_filename;
-
- if (unzlocal_getShort(s->file,&size_extra_field) != UNZ_OK)
- err=UNZ_ERRNO;
- *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile +
- SIZEZIPLOCALHEADER + size_filename;
- *psize_local_extrafield = (uInt)size_extra_field;
-
- *piSizeVar += (uInt)size_extra_field;
-
- return err;
-}
-
-/*
- Open for reading data the current file in the zipfile.
- If there is no error and the file is opened, the return value is UNZ_OK.
-*/
-extern int ZEXPORT unzOpenCurrentFile (file)
- unzFile file;
-{
- int err=UNZ_OK;
- int Store;
- uInt iSizeVar;
- unz_s* s;
- file_in_zip_read_info_s* pfile_in_zip_read_info;
- uLong offset_local_extrafield; /* offset of the local extra field */
- uInt size_local_extrafield; /* size of the local extra field */
-
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- if (!s->current_file_ok)
- return UNZ_PARAMERROR;
-
- if (s->pfile_in_zip_read != NULL)
- unzCloseCurrentFile(file);
-
- if (unzlocal_CheckCurrentFileCoherencyHeader(s,&iSizeVar,
- &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK)
- return UNZ_BADZIPFILE;
-
- pfile_in_zip_read_info = (file_in_zip_read_info_s*)
- ALLOC(sizeof(file_in_zip_read_info_s));
- if (pfile_in_zip_read_info==NULL)
- return UNZ_INTERNALERROR;
-
- pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE);
- pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield;
- pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield;
- pfile_in_zip_read_info->pos_local_extrafield=0;
-
- if (pfile_in_zip_read_info->read_buffer==NULL)
- {
- TRYFREE(pfile_in_zip_read_info);
- return UNZ_INTERNALERROR;
- }
-
- pfile_in_zip_read_info->stream_initialised=0;
-
- if ((s->cur_file_info.compression_method!=0) &&
- (s->cur_file_info.compression_method!=Z_DEFLATED))
- err=UNZ_BADZIPFILE;
- Store = s->cur_file_info.compression_method==0;
-
- pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc;
- pfile_in_zip_read_info->crc32=0;
- pfile_in_zip_read_info->compression_method =
- s->cur_file_info.compression_method;
- pfile_in_zip_read_info->file=s->file;
- pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile;
-
- pfile_in_zip_read_info->stream.total_out = 0;
-
- if (!Store)
- {
- pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
- pfile_in_zip_read_info->stream.zfree = (free_func)0;
- pfile_in_zip_read_info->stream.opaque = (voidpf)0;
-
- err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
- if (err == Z_OK)
- pfile_in_zip_read_info->stream_initialised=1;
- /* windowBits is passed < 0 to tell that there is no zlib header.
- * Note that in this case inflate *requires* an extra "dummy" byte
- * after the compressed stream in order to complete decompression and
- * return Z_STREAM_END.
- * In unzip, i don't wait absolutely Z_STREAM_END because I known the
- * size of both compressed and uncompressed data
- */
- }
- pfile_in_zip_read_info->rest_read_compressed =
- s->cur_file_info.compressed_size ;
- pfile_in_zip_read_info->rest_read_uncompressed =
- s->cur_file_info.uncompressed_size ;
-
-
- pfile_in_zip_read_info->pos_in_zipfile =
- s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER +
- iSizeVar;
-
- pfile_in_zip_read_info->stream.avail_in = (uInt)0;
-
-
- s->pfile_in_zip_read = pfile_in_zip_read_info;
- return UNZ_OK;
-}
-
-
-/*
- Read bytes from the current file.
- buf contain buffer where data must be copied
- len the size of buf.
-
- return the number of byte copied if somes bytes are copied
- return 0 if the end of file was reached
- return <0 with error code if there is an error
- (UNZ_ERRNO for IO error, or zLib error for uncompress error)
-*/
-extern int ZEXPORT unzReadCurrentFile (file, buf, len)
- unzFile file;
- voidp buf;
- unsigned len;
-{
- int err=UNZ_OK;
- uInt iRead = 0;
- unz_s* s;
- file_in_zip_read_info_s* pfile_in_zip_read_info;
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- pfile_in_zip_read_info=s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info==NULL)
- return UNZ_PARAMERROR;
-
-
- if ((pfile_in_zip_read_info->read_buffer == NULL))
- return UNZ_END_OF_LIST_OF_FILE;
- if (len==0)
- return 0;
-
- pfile_in_zip_read_info->stream.next_out = (Bytef*)buf;
-
- pfile_in_zip_read_info->stream.avail_out = (uInt)len;
-
- if (len>pfile_in_zip_read_info->rest_read_uncompressed)
- pfile_in_zip_read_info->stream.avail_out =
- (uInt)pfile_in_zip_read_info->rest_read_uncompressed;
-
- while (pfile_in_zip_read_info->stream.avail_out>0)
- {
- if ((pfile_in_zip_read_info->stream.avail_in==0) &&
- (pfile_in_zip_read_info->rest_read_compressed>0))
- {
- uInt uReadThis = UNZ_BUFSIZE;
- if (pfile_in_zip_read_info->rest_read_compressed<uReadThis)
- uReadThis = (uInt)pfile_in_zip_read_info->rest_read_compressed;
- if (uReadThis == 0)
- return UNZ_EOF;
- if (fseek(pfile_in_zip_read_info->file,
- pfile_in_zip_read_info->pos_in_zipfile +
- pfile_in_zip_read_info->byte_before_the_zipfile,SEEK_SET)!=0)
- return UNZ_ERRNO;
- if (fread(pfile_in_zip_read_info->read_buffer,uReadThis,1,
- pfile_in_zip_read_info->file)!=1)
- return UNZ_ERRNO;
- pfile_in_zip_read_info->pos_in_zipfile += uReadThis;
-
- pfile_in_zip_read_info->rest_read_compressed-=uReadThis;
-
- pfile_in_zip_read_info->stream.next_in =
- (Bytef*)pfile_in_zip_read_info->read_buffer;
- pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis;
- }
-
- if (pfile_in_zip_read_info->compression_method==0)
- {
- uInt uDoCopy,i ;
- if (pfile_in_zip_read_info->stream.avail_out <
- pfile_in_zip_read_info->stream.avail_in)
- uDoCopy = pfile_in_zip_read_info->stream.avail_out ;
- else
- uDoCopy = pfile_in_zip_read_info->stream.avail_in ;
-
- for (i=0;i<uDoCopy;i++)
- *(pfile_in_zip_read_info->stream.next_out+i) =
- *(pfile_in_zip_read_info->stream.next_in+i);
-
- pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,
- pfile_in_zip_read_info->stream.next_out,
- uDoCopy);
- pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy;
- pfile_in_zip_read_info->stream.avail_in -= uDoCopy;
- pfile_in_zip_read_info->stream.avail_out -= uDoCopy;
- pfile_in_zip_read_info->stream.next_out += uDoCopy;
- pfile_in_zip_read_info->stream.next_in += uDoCopy;
- pfile_in_zip_read_info->stream.total_out += uDoCopy;
- iRead += uDoCopy;
- }
- else
- {
- uLong uTotalOutBefore,uTotalOutAfter;
- const Bytef *bufBefore;
- uLong uOutThis;
- int flush=Z_SYNC_FLUSH;
-
- uTotalOutBefore = pfile_in_zip_read_info->stream.total_out;
- bufBefore = pfile_in_zip_read_info->stream.next_out;
-
- /*
- if ((pfile_in_zip_read_info->rest_read_uncompressed ==
- pfile_in_zip_read_info->stream.avail_out) &&
- (pfile_in_zip_read_info->rest_read_compressed == 0))
- flush = Z_FINISH;
- */
- err=inflate(&pfile_in_zip_read_info->stream,flush);
-
- uTotalOutAfter = pfile_in_zip_read_info->stream.total_out;
- uOutThis = uTotalOutAfter-uTotalOutBefore;
-
- pfile_in_zip_read_info->crc32 =
- crc32(pfile_in_zip_read_info->crc32,bufBefore,
- (uInt)(uOutThis));
-
- pfile_in_zip_read_info->rest_read_uncompressed -=
- uOutThis;
-
- iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
-
- if (err==Z_STREAM_END)
- return (iRead==0) ? UNZ_EOF : iRead;
- if (err!=Z_OK)
- break;
- }
- }
-
- if (err==Z_OK)
- return iRead;
- return err;
-}
-
-
-/*
- Give the current position in uncompressed data
-*/
-extern z_off_t ZEXPORT unztell (file)
- unzFile file;
-{
- unz_s* s;
- file_in_zip_read_info_s* pfile_in_zip_read_info;
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- pfile_in_zip_read_info=s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info==NULL)
- return UNZ_PARAMERROR;
-
- return (z_off_t)pfile_in_zip_read_info->stream.total_out;
-}
-
-
-/*
- return 1 if the end of file was reached, 0 elsewhere
-*/
-extern int ZEXPORT unzeof (file)
- unzFile file;
-{
- unz_s* s;
- file_in_zip_read_info_s* pfile_in_zip_read_info;
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- pfile_in_zip_read_info=s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info==NULL)
- return UNZ_PARAMERROR;
-
- if (pfile_in_zip_read_info->rest_read_uncompressed == 0)
- return 1;
- else
- return 0;
-}
-
-
-
-/*
- Read extra field from the current file (opened by unzOpenCurrentFile)
- This is the local-header version of the extra field (sometimes, there is
- more info in the local-header version than in the central-header)
-
- if buf==NULL, it return the size of the local extra field that can be read
-
- if buf!=NULL, len is the size of the buffer, the extra header is copied in
- buf.
- the return value is the number of bytes copied in buf, or (if <0)
- the error code
-*/
-extern int ZEXPORT unzGetLocalExtrafield (file,buf,len)
- unzFile file;
- voidp buf;
- unsigned len;
-{
- unz_s* s;
- file_in_zip_read_info_s* pfile_in_zip_read_info;
- uInt read_now;
- uLong size_to_read;
-
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- pfile_in_zip_read_info=s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info==NULL)
- return UNZ_PARAMERROR;
-
- size_to_read = (pfile_in_zip_read_info->size_local_extrafield -
- pfile_in_zip_read_info->pos_local_extrafield);
-
- if (buf==NULL)
- return (int)size_to_read;
-
- if (len>size_to_read)
- read_now = (uInt)size_to_read;
- else
- read_now = (uInt)len ;
-
- if (read_now==0)
- return 0;
-
- if (fseek(pfile_in_zip_read_info->file,
- pfile_in_zip_read_info->offset_local_extrafield +
- pfile_in_zip_read_info->pos_local_extrafield,SEEK_SET)!=0)
- return UNZ_ERRNO;
-
- if (fread(buf,(uInt)size_to_read,1,pfile_in_zip_read_info->file)!=1)
- return UNZ_ERRNO;
-
- return (int)read_now;
-}
-
-/*
- Close the file in zip opened with unzipOpenCurrentFile
- Return UNZ_CRCERROR if all the file was read but the CRC is not good
-*/
-extern int ZEXPORT unzCloseCurrentFile (file)
- unzFile file;
-{
- int err=UNZ_OK;
-
- unz_s* s;
- file_in_zip_read_info_s* pfile_in_zip_read_info;
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
- pfile_in_zip_read_info=s->pfile_in_zip_read;
-
- if (pfile_in_zip_read_info==NULL)
- return UNZ_PARAMERROR;
-
-
- if (pfile_in_zip_read_info->rest_read_uncompressed == 0)
- {
- if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait)
- err=UNZ_CRCERROR;
- }
-
-
- TRYFREE(pfile_in_zip_read_info->read_buffer);
- pfile_in_zip_read_info->read_buffer = NULL;
- if (pfile_in_zip_read_info->stream_initialised)
- inflateEnd(&pfile_in_zip_read_info->stream);
-
- pfile_in_zip_read_info->stream_initialised = 0;
- TRYFREE(pfile_in_zip_read_info);
-
- s->pfile_in_zip_read=NULL;
-
- return err;
-}
-
-
-/*
- Get the global comment string of the ZipFile, in the szComment buffer.
- uSizeBuf is the size of the szComment buffer.
- return the number of byte copied or an error code <0
-*/
-extern int ZEXPORT unzGetGlobalComment (file, szComment, uSizeBuf)
- unzFile file;
- char *szComment;
- uLong uSizeBuf;
-{
- int err=UNZ_OK;
- unz_s* s;
- uLong uReadThis ;
- if (file==NULL)
- return UNZ_PARAMERROR;
- s=(unz_s*)file;
-
- uReadThis = uSizeBuf;
- if (uReadThis>s->gi.size_comment)
- uReadThis = s->gi.size_comment;
-
- if (fseek(s->file,s->central_pos+22,SEEK_SET)!=0)
- return UNZ_ERRNO;
-
- if (uReadThis>0)
- {
- *szComment='\0';
- if (fread(szComment,(uInt)uReadThis,1,s->file)!=1)
- return UNZ_ERRNO;
- }
-
- if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment))
- *(szComment+s->gi.size_comment)='\0';
- return (int)uReadThis;
-}
diff --git a/zlib-1.1.4/contrib/minizip/unzip.def b/zlib-1.1.4/contrib/minizip/unzip.def
deleted file mode 100644
index f6ede89..0000000
--- a/zlib-1.1.4/contrib/minizip/unzip.def
+++ /dev/null
@@ -1,15 +0,0 @@
- unzOpen @61
- unzClose @62
- unzGetGlobalInfo @63
- unzGetCurrentFileInfo @64
- unzGoToFirstFile @65
- unzGoToNextFile @66
- unzOpenCurrentFile @67
- unzReadCurrentFile @68
- unztell @70
- unzeof @71
- unzCloseCurrentFile @72
- unzGetGlobalComment @73
- unzStringFileNameCompare @74
- unzLocateFile @75
- unzGetLocalExtrafield @76
diff --git a/zlib-1.1.4/contrib/minizip/unzip.h b/zlib-1.1.4/contrib/minizip/unzip.h
deleted file mode 100644
index 76692cb..0000000
--- a/zlib-1.1.4/contrib/minizip/unzip.h
+++ /dev/null
@@ -1,275 +0,0 @@
-/* unzip.h -- IO for uncompress .zip files using zlib
- Version 0.15 beta, Mar 19th, 1998,
-
- Copyright (C) 1998 Gilles Vollant
-
- This unzip package allow extract file from .ZIP file, compatible with PKZip 2.04g
- WinZip, InfoZip tools and compatible.
- Encryption and multi volume ZipFile (span) are not supported.
- Old compressions used by old PKZip 1.x are not supported
-
- THIS IS AN ALPHA VERSION. AT THIS STAGE OF DEVELOPPEMENT, SOMES API OR STRUCTURE
- CAN CHANGE IN FUTURE VERSION !!
- I WAIT FEEDBACK at mail info@winimage.com
- Visit also http://www.winimage.com/zLibDll/unzip.htm for evolution
-
- Condition of use and distribution are the same than zlib :
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
-
-*/
-/* for more info about .ZIP format, see
- ftp://ftp.cdrom.com/pub/infozip/doc/appnote-970311-iz.zip
- PkWare has also a specification at :
- ftp://ftp.pkware.com/probdesc.zip */
-
-#ifndef _unz_H
-#define _unz_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _ZLIB_H
-#include "zlib.h"
-#endif
-
-#if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
-/* like the STRICT of WIN32, we define a pointer that cannot be converted
- from (void*) without cast */
-typedef struct TagunzFile__ { int unused; } unzFile__;
-typedef unzFile__ *unzFile;
-#else
-typedef voidp unzFile;
-#endif
-
-
-#define UNZ_OK (0)
-#define UNZ_END_OF_LIST_OF_FILE (-100)
-#define UNZ_ERRNO (Z_ERRNO)
-#define UNZ_EOF (0)
-#define UNZ_PARAMERROR (-102)
-#define UNZ_BADZIPFILE (-103)
-#define UNZ_INTERNALERROR (-104)
-#define UNZ_CRCERROR (-105)
-
-/* tm_unz contain date/time info */
-typedef struct tm_unz_s
-{
- uInt tm_sec; /* seconds after the minute - [0,59] */
- uInt tm_min; /* minutes after the hour - [0,59] */
- uInt tm_hour; /* hours since midnight - [0,23] */
- uInt tm_mday; /* day of the month - [1,31] */
- uInt tm_mon; /* months since January - [0,11] */
- uInt tm_year; /* years - [1980..2044] */
-} tm_unz;
-
-/* unz_global_info structure contain global data about the ZIPfile
- These data comes from the end of central dir */
-typedef struct unz_global_info_s
-{
- uLong number_entry; /* total number of entries in
- the central dir on this disk */
- uLong size_comment; /* size of the global comment of the zipfile */
-} unz_global_info;
-
-
-/* unz_file_info contain information about a file in the zipfile */
-typedef struct unz_file_info_s
-{
- uLong version; /* version made by 2 bytes */
- uLong version_needed; /* version needed to extract 2 bytes */
- uLong flag; /* general purpose bit flag 2 bytes */
- uLong compression_method; /* compression method 2 bytes */
- uLong dosDate; /* last mod file date in Dos fmt 4 bytes */
- uLong crc; /* crc-32 4 bytes */
- uLong compressed_size; /* compressed size 4 bytes */
- uLong uncompressed_size; /* uncompressed size 4 bytes */
- uLong size_filename; /* filename length 2 bytes */
- uLong size_file_extra; /* extra field length 2 bytes */
- uLong size_file_comment; /* file comment length 2 bytes */
-
- uLong disk_num_start; /* disk number start 2 bytes */
- uLong internal_fa; /* internal file attributes 2 bytes */
- uLong external_fa; /* external file attributes 4 bytes */
-
- tm_unz tmu_date;
-} unz_file_info;
-
-extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1,
- const char* fileName2,
- int iCaseSensitivity));
-/*
- Compare two filename (fileName1,fileName2).
- If iCaseSenisivity = 1, comparision is case sensitivity (like strcmp)
- If iCaseSenisivity = 2, comparision is not case sensitivity (like strcmpi
- or strcasecmp)
- If iCaseSenisivity = 0, case sensitivity is defaut of your operating system
- (like 1 on Unix, 2 on Windows)
-*/
-
-
-extern unzFile ZEXPORT unzOpen OF((const char *path));
-/*
- Open a Zip file. path contain the full pathname (by example,
- on a Windows NT computer "c:\\zlib\\zlib111.zip" or on an Unix computer
- "zlib/zlib111.zip".
- If the zipfile cannot be opened (file don't exist or in not valid), the
- return value is NULL.
- Else, the return value is a unzFile Handle, usable with other function
- of this unzip package.
-*/
-
-extern int ZEXPORT unzClose OF((unzFile file));
-/*
- Close a ZipFile opened with unzipOpen.
- If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
- these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
- return UNZ_OK if there is no problem. */
-
-extern int ZEXPORT unzGetGlobalInfo OF((unzFile file,
- unz_global_info *pglobal_info));
-/*
- Write info about the ZipFile in the *pglobal_info structure.
- No preparation of the structure is needed
- return UNZ_OK if there is no problem. */
-
-
-extern int ZEXPORT unzGetGlobalComment OF((unzFile file,
- char *szComment,
- uLong uSizeBuf));
-/*
- Get the global comment string of the ZipFile, in the szComment buffer.
- uSizeBuf is the size of the szComment buffer.
- return the number of byte copied or an error code <0
-*/
-
-
-/***************************************************************************/
-/* Unzip package allow you browse the directory of the zipfile */
-
-extern int ZEXPORT unzGoToFirstFile OF((unzFile file));
-/*
- Set the current file of the zipfile to the first file.
- return UNZ_OK if there is no problem
-*/
-
-extern int ZEXPORT unzGoToNextFile OF((unzFile file));
-/*
- Set the current file of the zipfile to the next file.
- return UNZ_OK if there is no problem
- return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
-*/
-
-extern int ZEXPORT unzLocateFile OF((unzFile file,
- const char *szFileName,
- int iCaseSensitivity));
-/*
- Try locate the file szFileName in the zipfile.
- For the iCaseSensitivity signification, see unzStringFileNameCompare
-
- return value :
- UNZ_OK if the file is found. It becomes the current file.
- UNZ_END_OF_LIST_OF_FILE if the file is not found
-*/
-
-
-extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file,
- unz_file_info *pfile_info,
- char *szFileName,
- uLong fileNameBufferSize,
- void *extraField,
- uLong extraFieldBufferSize,
- char *szComment,
- uLong commentBufferSize));
-/*
- Get Info about the current file
- if pfile_info!=NULL, the *pfile_info structure will contain somes info about
- the current file
- if szFileName!=NULL, the filemane string will be copied in szFileName
- (fileNameBufferSize is the size of the buffer)
- if extraField!=NULL, the extra field information will be copied in extraField
- (extraFieldBufferSize is the size of the buffer).
- This is the Central-header version of the extra field
- if szComment!=NULL, the comment string of the file will be copied in szComment
- (commentBufferSize is the size of the buffer)
-*/
-
-/***************************************************************************/
-/* for reading the content of the current zipfile, you can open it, read data
- from it, and close it (you can close it before reading all the file)
- */
-
-extern int ZEXPORT unzOpenCurrentFile OF((unzFile file));
-/*
- Open for reading data the current file in the zipfile.
- If there is no error, the return value is UNZ_OK.
-*/
-
-extern int ZEXPORT unzCloseCurrentFile OF((unzFile file));
-/*
- Close the file in zip opened with unzOpenCurrentFile
- Return UNZ_CRCERROR if all the file was read but the CRC is not good
-*/
-
-
-extern int ZEXPORT unzReadCurrentFile OF((unzFile file,
- voidp buf,
- unsigned len));
-/*
- Read bytes from the current file (opened by unzOpenCurrentFile)
- buf contain buffer where data must be copied
- len the size of buf.
-
- return the number of byte copied if somes bytes are copied
- return 0 if the end of file was reached
- return <0 with error code if there is an error
- (UNZ_ERRNO for IO error, or zLib error for uncompress error)
-*/
-
-extern z_off_t ZEXPORT unztell OF((unzFile file));
-/*
- Give the current position in uncompressed data
-*/
-
-extern int ZEXPORT unzeof OF((unzFile file));
-/*
- return 1 if the end of file was reached, 0 elsewhere
-*/
-
-extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file,
- voidp buf,
- unsigned len));
-/*
- Read extra field from the current file (opened by unzOpenCurrentFile)
- This is the local-header version of the extra field (sometimes, there is
- more info in the local-header version than in the central-header)
-
- if buf==NULL, it return the size of the local extra field
-
- if buf!=NULL, len is the size of the buffer, the extra header is copied in
- buf.
- the return value is the number of bytes copied in buf, or (if <0)
- the error code
-*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _unz_H */
diff --git a/zlib-1.1.4/contrib/minizip/zip.c b/zlib-1.1.4/contrib/minizip/zip.c
deleted file mode 100644
index 0cae64a..0000000
--- a/zlib-1.1.4/contrib/minizip/zip.c
+++ /dev/null
@@ -1,718 +0,0 @@
-/* zip.c -- IO on .zip files using zlib
- Version 0.15 beta, Mar 19th, 1998,
-
- Read zip.h for more info
-*/
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "zlib.h"
-#include "zip.h"
-
-#ifdef STDC
-# include <stddef.h>
-# include <string.h>
-# include <stdlib.h>
-#endif
-#ifdef NO_ERRNO_H
- extern int errno;
-#else
-# include <errno.h>
-#endif
-
-
-#ifndef local
-# define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-#ifndef VERSIONMADEBY
-# define VERSIONMADEBY (0x0) /* platform depedent */
-#endif
-
-#ifndef Z_BUFSIZE
-#define Z_BUFSIZE (16384)
-#endif
-
-#ifndef Z_MAXFILENAMEINZIP
-#define Z_MAXFILENAMEINZIP (256)
-#endif
-
-#ifndef ALLOC
-# define ALLOC(size) (malloc(size))
-#endif
-#ifndef TRYFREE
-# define TRYFREE(p) {if (p) free(p);}
-#endif
-
-/*
-#define SIZECENTRALDIRITEM (0x2e)
-#define SIZEZIPLOCALHEADER (0x1e)
-*/
-
-/* I've found an old Unix (a SunOS 4.1.3_U1) without all SEEK_* defined.... */
-
-#ifndef SEEK_CUR
-#define SEEK_CUR 1
-#endif
-
-#ifndef SEEK_END
-#define SEEK_END 2
-#endif
-
-#ifndef SEEK_SET
-#define SEEK_SET 0
-#endif
-
-const char zip_copyright[] =
- " zip 0.15 Copyright 1998 Gilles Vollant ";
-
-
-#define SIZEDATA_INDATABLOCK (4096-(4*4))
-
-#define LOCALHEADERMAGIC (0x04034b50)
-#define CENTRALHEADERMAGIC (0x02014b50)
-#define ENDHEADERMAGIC (0x06054b50)
-
-#define FLAG_LOCALHEADER_OFFSET (0x06)
-#define CRC_LOCALHEADER_OFFSET (0x0e)
-
-#define SIZECENTRALHEADER (0x2e) /* 46 */
-
-typedef struct linkedlist_datablock_internal_s
-{
- struct linkedlist_datablock_internal_s* next_datablock;
- uLong avail_in_this_block;
- uLong filled_in_this_block;
- uLong unused; /* for future use and alignement */
- unsigned char data[SIZEDATA_INDATABLOCK];
-} linkedlist_datablock_internal;
-
-typedef struct linkedlist_data_s
-{
- linkedlist_datablock_internal* first_block;
- linkedlist_datablock_internal* last_block;
-} linkedlist_data;
-
-
-typedef struct
-{
- z_stream stream; /* zLib stream structure for inflate */
- int stream_initialised; /* 1 is stream is initialised */
- uInt pos_in_buffered_data; /* last written byte in buffered_data */
-
- uLong pos_local_header; /* offset of the local header of the file
- currenty writing */
- char* central_header; /* central header data for the current file */
- uLong size_centralheader; /* size of the central header for cur file */
- uLong flag; /* flag of the file currently writing */
-
- int method; /* compression method of file currenty wr.*/
- Byte buffered_data[Z_BUFSIZE];/* buffer contain compressed data to be writ*/
- uLong dosDate;
- uLong crc32;
-} curfile_info;
-
-typedef struct
-{
- FILE * filezip;
- linkedlist_data central_dir;/* datablock with central dir in construction*/
- int in_opened_file_inzip; /* 1 if a file in the zip is currently writ.*/
- curfile_info ci; /* info on the file curretly writing */
-
- uLong begin_pos; /* position of the beginning of the zipfile */
- uLong number_entry;
-} zip_internal;
-
-local linkedlist_datablock_internal* allocate_new_datablock()
-{
- linkedlist_datablock_internal* ldi;
- ldi = (linkedlist_datablock_internal*)
- ALLOC(sizeof(linkedlist_datablock_internal));
- if (ldi!=NULL)
- {
- ldi->next_datablock = NULL ;
- ldi->filled_in_this_block = 0 ;
- ldi->avail_in_this_block = SIZEDATA_INDATABLOCK ;
- }
- return ldi;
-}
-
-local void free_datablock(ldi)
- linkedlist_datablock_internal* ldi;
-{
- while (ldi!=NULL)
- {
- linkedlist_datablock_internal* ldinext = ldi->next_datablock;
- TRYFREE(ldi);
- ldi = ldinext;
- }
-}
-
-local void init_linkedlist(ll)
- linkedlist_data* ll;
-{
- ll->first_block = ll->last_block = NULL;
-}
-
-local void free_linkedlist(ll)
- linkedlist_data* ll;
-{
- free_datablock(ll->first_block);
- ll->first_block = ll->last_block = NULL;
-}
-
-
-local int add_data_in_datablock(ll,buf,len)
- linkedlist_data* ll;
- const void* buf;
- uLong len;
-{
- linkedlist_datablock_internal* ldi;
- const unsigned char* from_copy;
-
- if (ll==NULL)
- return ZIP_INTERNALERROR;
-
- if (ll->last_block == NULL)
- {
- ll->first_block = ll->last_block = allocate_new_datablock();
- if (ll->first_block == NULL)
- return ZIP_INTERNALERROR;
- }
-
- ldi = ll->last_block;
- from_copy = (unsigned char*)buf;
-
- while (len>0)
- {
- uInt copy_this;
- uInt i;
- unsigned char* to_copy;
-
- if (ldi->avail_in_this_block==0)
- {
- ldi->next_datablock = allocate_new_datablock();
- if (ldi->next_datablock == NULL)
- return ZIP_INTERNALERROR;
- ldi = ldi->next_datablock ;
- ll->last_block = ldi;
- }
-
- if (ldi->avail_in_this_block < len)
- copy_this = (uInt)ldi->avail_in_this_block;
- else
- copy_this = (uInt)len;
-
- to_copy = &(ldi->data[ldi->filled_in_this_block]);
-
- for (i=0;i<copy_this;i++)
- *(to_copy+i)=*(from_copy+i);
-
- ldi->filled_in_this_block += copy_this;
- ldi->avail_in_this_block -= copy_this;
- from_copy += copy_this ;
- len -= copy_this;
- }
- return ZIP_OK;
-}
-
-
-local int write_datablock(fout,ll)
- FILE * fout;
- linkedlist_data* ll;
-{
- linkedlist_datablock_internal* ldi;
- ldi = ll->first_block;
- while (ldi!=NULL)
- {
- if (ldi->filled_in_this_block > 0)
- if (fwrite(ldi->data,(uInt)ldi->filled_in_this_block,1,fout)!=1)
- return ZIP_ERRNO;
- ldi = ldi->next_datablock;
- }
- return ZIP_OK;
-}
-
-/****************************************************************************/
-
-/* ===========================================================================
- Outputs a long in LSB order to the given file
- nbByte == 1, 2 or 4 (byte, short or long)
-*/
-
-local int ziplocal_putValue OF((FILE *file, uLong x, int nbByte));
-local int ziplocal_putValue (file, x, nbByte)
- FILE *file;
- uLong x;
- int nbByte;
-{
- unsigned char buf[4];
- int n;
- for (n = 0; n < nbByte; n++) {
- buf[n] = (unsigned char)(x & 0xff);
- x >>= 8;
- }
- if (fwrite(buf,nbByte,1,file)!=1)
- return ZIP_ERRNO;
- else
- return ZIP_OK;
-}
-
-local void ziplocal_putValue_inmemory OF((void* dest, uLong x, int nbByte));
-local void ziplocal_putValue_inmemory (dest, x, nbByte)
- void* dest;
- uLong x;
- int nbByte;
-{
- unsigned char* buf=(unsigned char*)dest;
- int n;
- for (n = 0; n < nbByte; n++) {
- buf[n] = (unsigned char)(x & 0xff);
- x >>= 8;
- }
-}
-/****************************************************************************/
-
-
-local uLong ziplocal_TmzDateToDosDate(ptm,dosDate)
- tm_zip* ptm;
- uLong dosDate;
-{
- uLong year = (uLong)ptm->tm_year;
- if (year>1980)
- year-=1980;
- else if (year>80)
- year-=80;
- return
- (uLong) (((ptm->tm_mday) + (32 * (ptm->tm_mon+1)) + (512 * year)) << 16) |
- ((ptm->tm_sec/2) + (32* ptm->tm_min) + (2048 * (uLong)ptm->tm_hour));
-}
-
-
-/****************************************************************************/
-
-extern zipFile ZEXPORT zipOpen (pathname, append)
- const char *pathname;
- int append;
-{
- zip_internal ziinit;
- zip_internal* zi;
-
- ziinit.filezip = fopen(pathname,(append == 0) ? "wb" : "ab");
- if (ziinit.filezip == NULL)
- return NULL;
- ziinit.begin_pos = ftell(ziinit.filezip);
- ziinit.in_opened_file_inzip = 0;
- ziinit.ci.stream_initialised = 0;
- ziinit.number_entry = 0;
- init_linkedlist(&(ziinit.central_dir));
-
-
- zi = (zip_internal*)ALLOC(sizeof(zip_internal));
- if (zi==NULL)
- {
- fclose(ziinit.filezip);
- return NULL;
- }
-
- *zi = ziinit;
- return (zipFile)zi;
-}
-
-extern int ZEXPORT zipOpenNewFileInZip (file, filename, zipfi,
- extrafield_local, size_extrafield_local,
- extrafield_global, size_extrafield_global,
- comment, method, level)
- zipFile file;
- const char* filename;
- const zip_fileinfo* zipfi;
- const void* extrafield_local;
- uInt size_extrafield_local;
- const void* extrafield_global;
- uInt size_extrafield_global;
- const char* comment;
- int method;
- int level;
-{
- zip_internal* zi;
- uInt size_filename;
- uInt size_comment;
- uInt i;
- int err = ZIP_OK;
-
- if (file == NULL)
- return ZIP_PARAMERROR;
- if ((method!=0) && (method!=Z_DEFLATED))
- return ZIP_PARAMERROR;
-
- zi = (zip_internal*)file;
-
- if (zi->in_opened_file_inzip == 1)
- {
- err = zipCloseFileInZip (file);
- if (err != ZIP_OK)
- return err;
- }
-
-
- if (filename==NULL)
- filename="-";
-
- if (comment==NULL)
- size_comment = 0;
- else
- size_comment = strlen(comment);
-
- size_filename = strlen(filename);
-
- if (zipfi == NULL)
- zi->ci.dosDate = 0;
- else
- {
- if (zipfi->dosDate != 0)
- zi->ci.dosDate = zipfi->dosDate;
- else zi->ci.dosDate = ziplocal_TmzDateToDosDate(&zipfi->tmz_date,zipfi->dosDate);
- }
-
- zi->ci.flag = 0;
- if ((level==8) || (level==9))
- zi->ci.flag |= 2;
- if ((level==2))
- zi->ci.flag |= 4;
- if ((level==1))
- zi->ci.flag |= 6;
-
- zi->ci.crc32 = 0;
- zi->ci.method = method;
- zi->ci.stream_initialised = 0;
- zi->ci.pos_in_buffered_data = 0;
- zi->ci.pos_local_header = ftell(zi->filezip);
- zi->ci.size_centralheader = SIZECENTRALHEADER + size_filename +
- size_extrafield_global + size_comment;
- zi->ci.central_header = (char*)ALLOC((uInt)zi->ci.size_centralheader);
-
- ziplocal_putValue_inmemory(zi->ci.central_header,(uLong)CENTRALHEADERMAGIC,4);
- /* version info */
- ziplocal_putValue_inmemory(zi->ci.central_header+4,(uLong)VERSIONMADEBY,2);
- ziplocal_putValue_inmemory(zi->ci.central_header+6,(uLong)20,2);
- ziplocal_putValue_inmemory(zi->ci.central_header+8,(uLong)zi->ci.flag,2);
- ziplocal_putValue_inmemory(zi->ci.central_header+10,(uLong)zi->ci.method,2);
- ziplocal_putValue_inmemory(zi->ci.central_header+12,(uLong)zi->ci.dosDate,4);
- ziplocal_putValue_inmemory(zi->ci.central_header+16,(uLong)0,4); /*crc*/
- ziplocal_putValue_inmemory(zi->ci.central_header+20,(uLong)0,4); /*compr size*/
- ziplocal_putValue_inmemory(zi->ci.central_header+24,(uLong)0,4); /*uncompr size*/
- ziplocal_putValue_inmemory(zi->ci.central_header+28,(uLong)size_filename,2);
- ziplocal_putValue_inmemory(zi->ci.central_header+30,(uLong)size_extrafield_global,2);
- ziplocal_putValue_inmemory(zi->ci.central_header+32,(uLong)size_comment,2);
- ziplocal_putValue_inmemory(zi->ci.central_header+34,(uLong)0,2); /*disk nm start*/
-
- if (zipfi==NULL)
- ziplocal_putValue_inmemory(zi->ci.central_header+36,(uLong)0,2);
- else
- ziplocal_putValue_inmemory(zi->ci.central_header+36,(uLong)zipfi->internal_fa,2);
-
- if (zipfi==NULL)
- ziplocal_putValue_inmemory(zi->ci.central_header+38,(uLong)0,4);
- else
- ziplocal_putValue_inmemory(zi->ci.central_header+38,(uLong)zipfi->external_fa,4);
-
- ziplocal_putValue_inmemory(zi->ci.central_header+42,(uLong)zi->ci.pos_local_header,4);
-
- for (i=0;i<size_filename;i++)
- *(zi->ci.central_header+SIZECENTRALHEADER+i) = *(filename+i);
-
- for (i=0;i<size_extrafield_global;i++)
- *(zi->ci.central_header+SIZECENTRALHEADER+size_filename+i) =
- *(((const char*)extrafield_global)+i);
-
- for (i=0;i<size_comment;i++)
- *(zi->ci.central_header+SIZECENTRALHEADER+size_filename+
- size_extrafield_global+i) = *(filename+i);
- if (zi->ci.central_header == NULL)
- return ZIP_INTERNALERROR;
-
- /* write the local header */
- err = ziplocal_putValue(zi->filezip,(uLong)LOCALHEADERMAGIC,4);
-
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)20,2);/* version needed to extract */
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)zi->ci.flag,2);
-
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)zi->ci.method,2);
-
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)zi->ci.dosDate,4);
-
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)0,4); /* crc 32, unknown */
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)0,4); /* compressed size, unknown */
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)0,4); /* uncompressed size, unknown */
-
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)size_filename,2);
-
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)size_extrafield_local,2);
-
- if ((err==ZIP_OK) && (size_filename>0))
- if (fwrite(filename,(uInt)size_filename,1,zi->filezip)!=1)
- err = ZIP_ERRNO;
-
- if ((err==ZIP_OK) && (size_extrafield_local>0))
- if (fwrite(extrafield_local,(uInt)size_extrafield_local,1,zi->filezip)
- !=1)
- err = ZIP_ERRNO;
-
- zi->ci.stream.avail_in = (uInt)0;
- zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.stream.next_out = zi->ci.buffered_data;
- zi->ci.stream.total_in = 0;
- zi->ci.stream.total_out = 0;
-
- if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED))
- {
- zi->ci.stream.zalloc = (alloc_func)0;
- zi->ci.stream.zfree = (free_func)0;
- zi->ci.stream.opaque = (voidpf)0;
-
- err = deflateInit2(&zi->ci.stream, level,
- Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, 0);
-
- if (err==Z_OK)
- zi->ci.stream_initialised = 1;
- }
-
-
- if (err==Z_OK)
- zi->in_opened_file_inzip = 1;
- return err;
-}
-
-extern int ZEXPORT zipWriteInFileInZip (file, buf, len)
- zipFile file;
- const voidp buf;
- unsigned len;
-{
- zip_internal* zi;
- int err=ZIP_OK;
-
- if (file == NULL)
- return ZIP_PARAMERROR;
- zi = (zip_internal*)file;
-
- if (zi->in_opened_file_inzip == 0)
- return ZIP_PARAMERROR;
-
- zi->ci.stream.next_in = buf;
- zi->ci.stream.avail_in = len;
- zi->ci.crc32 = crc32(zi->ci.crc32,buf,len);
-
- while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))
- {
- if (zi->ci.stream.avail_out == 0)
- {
- if (fwrite(zi->ci.buffered_data,(uInt)zi->ci.pos_in_buffered_data,1,zi->filezip)
- !=1)
- err = ZIP_ERRNO;
- zi->ci.pos_in_buffered_data = 0;
- zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.stream.next_out = zi->ci.buffered_data;
- }
-
- if (zi->ci.method == Z_DEFLATED)
- {
- uLong uTotalOutBefore = zi->ci.stream.total_out;
- err=deflate(&zi->ci.stream, Z_NO_FLUSH);
- zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
-
- }
- else
- {
- uInt copy_this,i;
- if (zi->ci.stream.avail_in < zi->ci.stream.avail_out)
- copy_this = zi->ci.stream.avail_in;
- else
- copy_this = zi->ci.stream.avail_out;
- for (i=0;i<copy_this;i++)
- *(((char*)zi->ci.stream.next_out)+i) =
- *(((const char*)zi->ci.stream.next_in)+i);
- {
- zi->ci.stream.avail_in -= copy_this;
- zi->ci.stream.avail_out-= copy_this;
- zi->ci.stream.next_in+= copy_this;
- zi->ci.stream.next_out+= copy_this;
- zi->ci.stream.total_in+= copy_this;
- zi->ci.stream.total_out+= copy_this;
- zi->ci.pos_in_buffered_data += copy_this;
- }
- }
- }
-
- return 0;
-}
-
-extern int ZEXPORT zipCloseFileInZip (file)
- zipFile file;
-{
- zip_internal* zi;
- int err=ZIP_OK;
-
- if (file == NULL)
- return ZIP_PARAMERROR;
- zi = (zip_internal*)file;
-
- if (zi->in_opened_file_inzip == 0)
- return ZIP_PARAMERROR;
- zi->ci.stream.avail_in = 0;
-
- if (zi->ci.method == Z_DEFLATED)
- while (err==ZIP_OK)
- {
- uLong uTotalOutBefore;
- if (zi->ci.stream.avail_out == 0)
- {
- if (fwrite(zi->ci.buffered_data,(uInt)zi->ci.pos_in_buffered_data,1,zi->filezip)
- !=1)
- err = ZIP_ERRNO;
- zi->ci.pos_in_buffered_data = 0;
- zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
- zi->ci.stream.next_out = zi->ci.buffered_data;
- }
- uTotalOutBefore = zi->ci.stream.total_out;
- err=deflate(&zi->ci.stream, Z_FINISH);
- zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
- }
-
- if (err==Z_STREAM_END)
- err=ZIP_OK; /* this is normal */
-
- if ((zi->ci.pos_in_buffered_data>0) && (err==ZIP_OK))
- if (fwrite(zi->ci.buffered_data,(uInt)zi->ci.pos_in_buffered_data,1,zi->filezip)
- !=1)
- err = ZIP_ERRNO;
-
- if ((zi->ci.method == Z_DEFLATED) && (err==ZIP_OK))
- {
- err=deflateEnd(&zi->ci.stream);
- zi->ci.stream_initialised = 0;
- }
-
- ziplocal_putValue_inmemory(zi->ci.central_header+16,(uLong)zi->ci.crc32,4); /*crc*/
- ziplocal_putValue_inmemory(zi->ci.central_header+20,
- (uLong)zi->ci.stream.total_out,4); /*compr size*/
- ziplocal_putValue_inmemory(zi->ci.central_header+24,
- (uLong)zi->ci.stream.total_in,4); /*uncompr size*/
-
- if (err==ZIP_OK)
- err = add_data_in_datablock(&zi->central_dir,zi->ci.central_header,
- (uLong)zi->ci.size_centralheader);
- free(zi->ci.central_header);
-
- if (err==ZIP_OK)
- {
- long cur_pos_inzip = ftell(zi->filezip);
- if (fseek(zi->filezip,
- zi->ci.pos_local_header + 14,SEEK_SET)!=0)
- err = ZIP_ERRNO;
-
- if (err==ZIP_OK)
- err = ziplocal_putValue(zi->filezip,(uLong)zi->ci.crc32,4); /* crc 32, unknown */
-
- if (err==ZIP_OK) /* compressed size, unknown */
- err = ziplocal_putValue(zi->filezip,(uLong)zi->ci.stream.total_out,4);
-
- if (err==ZIP_OK) /* uncompressed size, unknown */
- err = ziplocal_putValue(zi->filezip,(uLong)zi->ci.stream.total_in,4);
-
- if (fseek(zi->filezip,
- cur_pos_inzip,SEEK_SET)!=0)
- err = ZIP_ERRNO;
- }
-
- zi->number_entry ++;
- zi->in_opened_file_inzip = 0;
-
- return err;
-}
-
-extern int ZEXPORT zipClose (file, global_comment)
- zipFile file;
- const char* global_comment;
-{
- zip_internal* zi;
- int err = 0;
- uLong size_centraldir = 0;
- uLong centraldir_pos_inzip ;
- uInt size_global_comment;
- if (file == NULL)
- return ZIP_PARAMERROR;
- zi = (zip_internal*)file;
-
- if (zi->in_opened_file_inzip == 1)
- {
- err = zipCloseFileInZip (file);
- }
-
- if (global_comment==NULL)
- size_global_comment = 0;
- else
- size_global_comment = strlen(global_comment);
-
-
- centraldir_pos_inzip = ftell(zi->filezip);
- if (err==ZIP_OK)
- {
- linkedlist_datablock_internal* ldi = zi->central_dir.first_block ;
- while (ldi!=NULL)
- {
- if ((err==ZIP_OK) && (ldi->filled_in_this_block>0))
- if (fwrite(ldi->data,(uInt)ldi->filled_in_this_block,
- 1,zi->filezip) !=1 )
- err = ZIP_ERRNO;
-
- size_centraldir += ldi->filled_in_this_block;
- ldi = ldi->next_datablock;
- }
- }
- free_datablock(zi->central_dir.first_block);
-
- if (err==ZIP_OK) /* Magic End */
- err = ziplocal_putValue(zi->filezip,(uLong)ENDHEADERMAGIC,4);
-
- if (err==ZIP_OK) /* number of this disk */
- err = ziplocal_putValue(zi->filezip,(uLong)0,2);
-
- if (err==ZIP_OK) /* number of the disk with the start of the central directory */
- err = ziplocal_putValue(zi->filezip,(uLong)0,2);
-
- if (err==ZIP_OK) /* total number of entries in the central dir on this disk */
- err = ziplocal_putValue(zi->filezip,(uLong)zi->number_entry,2);
-
- if (err==ZIP_OK) /* total number of entries in the central dir */
- err = ziplocal_putValue(zi->filezip,(uLong)zi->number_entry,2);
-
- if (err==ZIP_OK) /* size of the central directory */
- err = ziplocal_putValue(zi->filezip,(uLong)size_centraldir,4);
-
- if (err==ZIP_OK) /* offset of start of central directory with respect to the
- starting disk number */
- err = ziplocal_putValue(zi->filezip,(uLong)centraldir_pos_inzip ,4);
-
- if (err==ZIP_OK) /* zipfile comment length */
- err = ziplocal_putValue(zi->filezip,(uLong)size_global_comment,2);
-
- if ((err==ZIP_OK) && (size_global_comment>0))
- if (fwrite(global_comment,(uInt)size_global_comment,1,zi->filezip) !=1 )
- err = ZIP_ERRNO;
- fclose(zi->filezip);
- TRYFREE(zi);
-
- return err;
-}
diff --git a/zlib-1.1.4/contrib/minizip/zip.def b/zlib-1.1.4/contrib/minizip/zip.def
deleted file mode 100644
index 5d5079f..0000000
--- a/zlib-1.1.4/contrib/minizip/zip.def
+++ /dev/null
@@ -1,5 +0,0 @@
- zipOpen @80
- zipOpenNewFileInZip @81
- zipWriteInFileInZip @82
- zipCloseFileInZip @83
- zipClose @84
diff --git a/zlib-1.1.4/contrib/minizip/zip.h b/zlib-1.1.4/contrib/minizip/zip.h
deleted file mode 100644
index 678260b..0000000
--- a/zlib-1.1.4/contrib/minizip/zip.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* zip.h -- IO for compress .zip files using zlib
- Version 0.15 alpha, Mar 19th, 1998,
-
- Copyright (C) 1998 Gilles Vollant
-
- This unzip package allow creates .ZIP file, compatible with PKZip 2.04g
- WinZip, InfoZip tools and compatible.
- Encryption and multi volume ZipFile (span) are not supported.
- Old compressions used by old PKZip 1.x are not supported
-
- For uncompress .zip file, look at unzip.h
-
- THIS IS AN ALPHA VERSION. AT THIS STAGE OF DEVELOPPEMENT, SOMES API OR STRUCTURE
- CAN CHANGE IN FUTURE VERSION !!
- I WAIT FEEDBACK at mail info@winimage.com
- Visit also http://www.winimage.com/zLibDll/zip.htm for evolution
-
- Condition of use and distribution are the same than zlib :
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
-
-*/
-
-/* for more info about .ZIP format, see
- ftp://ftp.cdrom.com/pub/infozip/doc/appnote-970311-iz.zip
- PkWare has also a specification at :
- ftp://ftp.pkware.com/probdesc.zip
-*/
-
-#ifndef _zip_H
-#define _zip_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _ZLIB_H
-#include "zlib.h"
-#endif
-
-#if defined(STRICTZIP) || defined(STRICTZIPUNZIP)
-/* like the STRICT of WIN32, we define a pointer that cannot be converted
- from (void*) without cast */
-typedef struct TagzipFile__ { int unused; } zipFile__;
-typedef zipFile__ *zipFile;
-#else
-typedef voidp zipFile;
-#endif
-
-#define ZIP_OK (0)
-#define ZIP_ERRNO (Z_ERRNO)
-#define ZIP_PARAMERROR (-102)
-#define ZIP_INTERNALERROR (-104)
-
-/* tm_zip contain date/time info */
-typedef struct tm_zip_s
-{
- uInt tm_sec; /* seconds after the minute - [0,59] */
- uInt tm_min; /* minutes after the hour - [0,59] */
- uInt tm_hour; /* hours since midnight - [0,23] */
- uInt tm_mday; /* day of the month - [1,31] */
- uInt tm_mon; /* months since January - [0,11] */
- uInt tm_year; /* years - [1980..2044] */
-} tm_zip;
-
-typedef struct
-{
- tm_zip tmz_date; /* date in understandable format */
- uLong dosDate; /* if dos_date == 0, tmu_date is used */
-/* uLong flag; */ /* general purpose bit flag 2 bytes */
-
- uLong internal_fa; /* internal file attributes 2 bytes */
- uLong external_fa; /* external file attributes 4 bytes */
-} zip_fileinfo;
-
-extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append));
-/*
- Create a zipfile.
- pathname contain on Windows NT a filename like "c:\\zlib\\zlib111.zip" or on
- an Unix computer "zlib/zlib111.zip".
- if the file pathname exist and append=1, the zip will be created at the end
- of the file. (useful if the file contain a self extractor code)
- If the zipfile cannot be opened, the return value is NULL.
- Else, the return value is a zipFile Handle, usable with other function
- of this zip package.
-
-
-*/
-
-extern int ZEXPORT zipOpenNewFileInZip OF((zipFile file,
- const char* filename,
- const zip_fileinfo* zipfi,
- const void* extrafield_local,
- uInt size_extrafield_local,
- const void* extrafield_global,
- uInt size_extrafield_global,
- const char* comment,
- int method,
- int level));
-/*
- Open a file in the ZIP for writing.
- filename : the filename in zip (if NULL, '-' without quote will be used
- *zipfi contain supplemental information
- if extrafield_local!=NULL and size_extrafield_local>0, extrafield_local
- contains the extrafield data the the local header
- if extrafield_global!=NULL and size_extrafield_global>0, extrafield_global
- contains the extrafield data the the local header
- if comment != NULL, comment contain the comment string
- method contain the compression method (0 for store, Z_DEFLATED for deflate)
- level contain the level of compression (can be Z_DEFAULT_COMPRESSION)
-*/
-
-extern int ZEXPORT zipWriteInFileInZip OF((zipFile file,
- const voidp buf,
- unsigned len));
-/*
- Write data in the zipfile
-*/
-
-extern int ZEXPORT zipCloseFileInZip OF((zipFile file));
-/*
- Close the current file in the zipfile
-*/
-
-extern int ZEXPORT zipClose OF((zipFile file,
- const char* global_comment));
-/*
- Close the zipfile
-*/
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _zip_H */
diff --git a/zlib-1.1.4/contrib/minizip/zlibvc.def b/zlib-1.1.4/contrib/minizip/zlibvc.def
deleted file mode 100644
index 7e9d60d..0000000
--- a/zlib-1.1.4/contrib/minizip/zlibvc.def
+++ /dev/null
@@ -1,74 +0,0 @@
-LIBRARY "zlib"
-
-DESCRIPTION '"""zlib data compression library"""'
-
-
-VERSION 1.11
-
-
-HEAPSIZE 1048576,8192
-
-EXPORTS
- adler32 @1
- compress @2
- crc32 @3
- deflate @4
- deflateCopy @5
- deflateEnd @6
- deflateInit2_ @7
- deflateInit_ @8
- deflateParams @9
- deflateReset @10
- deflateSetDictionary @11
- gzclose @12
- gzdopen @13
- gzerror @14
- gzflush @15
- gzopen @16
- gzread @17
- gzwrite @18
- inflate @19
- inflateEnd @20
- inflateInit2_ @21
- inflateInit_ @22
- inflateReset @23
- inflateSetDictionary @24
- inflateSync @25
- uncompress @26
- zlibVersion @27
- gzprintf @28
- gzputc @29
- gzgetc @30
- gzseek @31
- gzrewind @32
- gztell @33
- gzeof @34
- gzsetparams @35
- zError @36
- inflateSyncPoint @37
- get_crc_table @38
- compress2 @39
- gzputs @40
- gzgets @41
-
- unzOpen @61
- unzClose @62
- unzGetGlobalInfo @63
- unzGetCurrentFileInfo @64
- unzGoToFirstFile @65
- unzGoToNextFile @66
- unzOpenCurrentFile @67
- unzReadCurrentFile @68
- unztell @70
- unzeof @71
- unzCloseCurrentFile @72
- unzGetGlobalComment @73
- unzStringFileNameCompare @74
- unzLocateFile @75
- unzGetLocalExtrafield @76
-
- zipOpen @80
- zipOpenNewFileInZip @81
- zipWriteInFileInZip @82
- zipCloseFileInZip @83
- zipClose @84
diff --git a/zlib-1.1.4/contrib/minizip/zlibvc.dsp b/zlib-1.1.4/contrib/minizip/zlibvc.dsp
deleted file mode 100644
index a70d4d4..0000000
--- a/zlib-1.1.4/contrib/minizip/zlibvc.dsp
+++ /dev/null
@@ -1,651 +0,0 @@
-# Microsoft Developer Studio Project File - Name="zlibvc" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-# TARGTYPE "Win32 (ALPHA) Dynamic-Link Library" 0x0602
-
-CFG=zlibvc - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "zlibvc.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "zlibvc.mak" CFG="zlibvc - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "zlibvc - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "zlibvc - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "zlibvc - Win32 ReleaseAxp" (based on\
- "Win32 (ALPHA) Dynamic-Link Library")
-!MESSAGE "zlibvc - Win32 ReleaseWithoutAsm" (based on\
- "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "zlibvc - Win32 ReleaseWithoutCrtdll" (based on\
- "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ".\Release"
-# PROP Intermediate_Dir ".\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /FD /c
-# SUBTRACT CPP /YX
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\Debug"
-# PROP BASE Intermediate_Dir ".\Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ".\Debug"
-# PROP Intermediate_Dir ".\Debug"
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /FD /c
-# SUBTRACT CPP /YX
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "_DEBUG"
-# ADD RSC /l 0x40c /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:".\Debug\zlib.dll"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "zlibvc__"
-# PROP BASE Intermediate_Dir "zlibvc__"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "zlibvc__"
-# PROP Intermediate_Dir "zlibvc__"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /YX /FD /c
-# ADD CPP /nologo /MT /Gt0 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /FD /c
-# SUBTRACT CPP /YX
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 crtdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /machine:ALPHA /nodefaultlib /out:".\Release\zlib.dll"
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 crtdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /map /machine:ALPHA /nodefaultlib /out:"zlibvc__\zlib.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "zlibvc_0"
-# PROP BASE Intermediate_Dir "zlibvc_0"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "zlibvc_0"
-# PROP Intermediate_Dir "zlibvc_0"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /FAcs /FR /FD /c
-# SUBTRACT CPP /YX
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll"
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\zlibvc_0\zlib.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "zlibvc_1"
-# PROP BASE Intermediate_Dir "zlibvc_1"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "zlibvc_1"
-# PROP Intermediate_Dir "zlibvc_1"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-CPP=cl.exe
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINDLL" /D "_WIN32" /D "BUILD_ZLIBDLL" /D "ZLIB_DLL" /D "DYNAMIC_CRC_TABLE" /D "ASMV" /FAcs /FR /FD /c
-# SUBTRACT CPP /YX
-MTL=midl.exe
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-# ADD BASE RSC /l 0x40c /d "NDEBUG"
-# ADD RSC /l 0x40c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\Release\zlib.dll"
-# SUBTRACT BASE LINK32 /pdb:none
-# ADD LINK32 gvmat32.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib crtdll.lib /nologo /subsystem:windows /dll /map /machine:I386 /nodefaultlib /out:".\zlibvc_1\zlib.dll"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "zlibvc - Win32 Release"
-# Name "zlibvc - Win32 Debug"
-# Name "zlibvc - Win32 ReleaseAxp"
-# Name "zlibvc - Win32 ReleaseWithoutAsm"
-# Name "zlibvc - Win32 ReleaseWithoutCrtdll"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\adler32.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_ADLER=\
- ".\zconf.h"\
- ".\zlib.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\compress.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_COMPR=\
- ".\zconf.h"\
- ".\zlib.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\crc32.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_CRC32=\
- ".\zconf.h"\
- ".\zlib.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\deflate.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_DEFLA=\
- ".\deflate.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\gvmat32c.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\gzio.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_GZIO_=\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\infblock.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFBL=\
- ".\infblock.h"\
- ".\infcodes.h"\
- ".\inftrees.h"\
- ".\infutil.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\infcodes.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFCO=\
- ".\infblock.h"\
- ".\infcodes.h"\
- ".\inffast.h"\
- ".\inftrees.h"\
- ".\infutil.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\inffast.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFFA=\
- ".\infblock.h"\
- ".\infcodes.h"\
- ".\inffast.h"\
- ".\inftrees.h"\
- ".\infutil.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\inflate.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFLA=\
- ".\infblock.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\inftrees.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFTR=\
- ".\inftrees.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\infutil.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_INFUT=\
- ".\infblock.h"\
- ".\infcodes.h"\
- ".\inftrees.h"\
- ".\infutil.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\trees.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_TREES=\
- ".\deflate.h"\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\uncompr.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_UNCOM=\
- ".\zconf.h"\
- ".\zlib.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\unzip.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\zip.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlibvc.def
-# End Source File
-# Begin Source File
-
-SOURCE=.\zutil.c
-
-!IF "$(CFG)" == "zlibvc - Win32 Release"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 Debug"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseAxp"
-
-DEP_CPP_ZUTIL=\
- ".\zconf.h"\
- ".\zlib.h"\
- ".\zutil.h"\
-
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutAsm"
-
-!ELSEIF "$(CFG)" == "zlibvc - Win32 ReleaseWithoutCrtdll"
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\deflate.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\infblock.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\infcodes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\inffast.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\inftrees.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\infutil.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zconf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zlib.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\zutil.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/zlib-1.1.4/contrib/minizip/zlibvc.dsw b/zlib-1.1.4/contrib/minizip/zlibvc.dsw
deleted file mode 100644
index 493cd87..0000000
--- a/zlib-1.1.4/contrib/minizip/zlibvc.dsw
+++ /dev/null
@@ -1,41 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 5.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "zlibstat"=.\zlibstat.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "zlibvc"=.\zlibvc.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/zlib-1.1.4/contrib/untgz/Makefile b/zlib-1.1.4/contrib/untgz/Makefile
deleted file mode 100644
index 409b4bd..0000000
--- a/zlib-1.1.4/contrib/untgz/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-CC=cc
-CFLAGS=-g
-
-untgz: untgz.o ../../libz.a
- $(CC) $(CFLAGS) -o untgz untgz.o -L../.. -lz
-
-untgz.o: untgz.c ../../zlib.h
- $(CC) $(CFLAGS) -c -I../.. untgz.c
-
-../../libz.a:
- cd ../..; make
-
-clean:
- rm -f untgz untgz.o *~
diff --git a/zlib-1.1.4/contrib/untgz/makefile.w32 b/zlib-1.1.4/contrib/untgz/makefile.w32
deleted file mode 100644
index c99dc28..0000000
--- a/zlib-1.1.4/contrib/untgz/makefile.w32
+++ /dev/null
@@ -1,63 +0,0 @@
-# Makefile for zlib. Modified for mingw32
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile,
-#
-# make -fmakefile.w32
-#
-
-CC=gcc
-
-# Generate dependencies (see end of the file)
-
-CPPFLAGS=-MMD
-
-#CFLAGS=-MMD -O
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-MMD -g -DDEBUG
-CFLAGS=-O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
- -Wstrict-prototypes -Wmissing-prototypes
-
-# If cp.exe is not found, replace with copy /Y .
-CP=cp -f
-
-# The default value of RM is "rm -f."
-# If "rm.exe" is not found, uncomment:
-# RM=del
-
-LD=gcc
-LDLIBS=-L. -lz
-LDFLAGS=-s
-
-
-INCL=zlib.h zconf.h
-LIBS=libz.a
-
-AR=ar rcs
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o \
- inffast.o
-
-TEST_OBJS = minigzip.o untgz.o
-
-all: minigzip.exe untgz.exe
-
-rebuild: clean all
-
-libz.a: $(OBJS)
- $(AR) $@ $(OBJS)
-
-%.exe : %.o $(LIBS)
- $(LD) $(LDFLAGS) -o $@ $< $(LDLIBS)
-
-.PHONY : clean
-
-clean:
- $(RM) *.d *.o *.exe libz.a foo.gz
-
-DEPS := $(wildcard *.d)
-ifneq ($(DEPS),)
-include $(DEPS)
-endif
-
diff --git a/zlib-1.1.4/contrib/untgz/untgz.c b/zlib-1.1.4/contrib/untgz/untgz.c
deleted file mode 100644
index 4a431ff..0000000
--- a/zlib-1.1.4/contrib/untgz/untgz.c
+++ /dev/null
@@ -1,522 +0,0 @@
-/*
- * untgz.c -- Display contents and/or extract file from
- * a gzip'd TAR file
- * written by "Pedro A. Aranda Guti\irrez" <paag@tid.es>
- * adaptation to Unix by Jean-loup Gailly <jloup@gzip.org>
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <errno.h>
-#include <fcntl.h>
-#ifdef unix
-# include <unistd.h>
-#else
-# include <direct.h>
-# include <io.h>
-#endif
-
-#include "zlib.h"
-
-#ifdef WIN32
-# ifndef F_OK
-# define F_OK (0)
-# endif
-# ifdef _MSC_VER
-# define mkdir(dirname,mode) _mkdir(dirname)
-# define strdup(str) _strdup(str)
-# define unlink(fn) _unlink(fn)
-# define access(path,mode) _access(path,mode)
-# else
-# define mkdir(dirname,mode) _mkdir(dirname)
-# endif
-#else
-# include <utime.h>
-#endif
-
-
-/* Values used in typeflag field. */
-
-#define REGTYPE '0' /* regular file */
-#define AREGTYPE '\0' /* regular file */
-#define LNKTYPE '1' /* link */
-#define SYMTYPE '2' /* reserved */
-#define CHRTYPE '3' /* character special */
-#define BLKTYPE '4' /* block special */
-#define DIRTYPE '5' /* directory */
-#define FIFOTYPE '6' /* FIFO special */
-#define CONTTYPE '7' /* reserved */
-
-#define BLOCKSIZE 512
-
-struct tar_header
-{ /* byte offset */
- char name[100]; /* 0 */
- char mode[8]; /* 100 */
- char uid[8]; /* 108 */
- char gid[8]; /* 116 */
- char size[12]; /* 124 */
- char mtime[12]; /* 136 */
- char chksum[8]; /* 148 */
- char typeflag; /* 156 */
- char linkname[100]; /* 157 */
- char magic[6]; /* 257 */
- char version[2]; /* 263 */
- char uname[32]; /* 265 */
- char gname[32]; /* 297 */
- char devmajor[8]; /* 329 */
- char devminor[8]; /* 337 */
- char prefix[155]; /* 345 */
- /* 500 */
-};
-
-union tar_buffer {
- char buffer[BLOCKSIZE];
- struct tar_header header;
-};
-
-enum { TGZ_EXTRACT = 0, TGZ_LIST };
-
-static char *TGZfname OF((const char *));
-void TGZnotfound OF((const char *));
-
-int getoct OF((char *, int));
-char *strtime OF((time_t *));
-int ExprMatch OF((char *,char *));
-
-int makedir OF((char *));
-int matchname OF((int,int,char **,char *));
-
-void error OF((const char *));
-int tar OF((gzFile, int, int, int, char **));
-
-void help OF((int));
-int main OF((int, char **));
-
-char *prog;
-
-/* This will give a benign warning */
-
-static char *TGZprefix[] = { "\0", ".tgz", ".tar.gz", ".tar", NULL };
-
-/* Return the real name of the TGZ archive */
-/* or NULL if it does not exist. */
-
-static char *TGZfname OF((const char *fname))
-{
- static char buffer[1024];
- int origlen,i;
-
- strcpy(buffer,fname);
- origlen = strlen(buffer);
-
- for (i=0; TGZprefix[i]; i++)
- {
- strcpy(buffer+origlen,TGZprefix[i]);
- if (access(buffer,F_OK) == 0)
- return buffer;
- }
- return NULL;
-}
-
-/* error message for the filename */
-
-void TGZnotfound OF((const char *fname))
-{
- int i;
-
- fprintf(stderr,"%s : couldn't find ",prog);
- for (i=0;TGZprefix[i];i++)
- fprintf(stderr,(TGZprefix[i+1]) ? "%s%s, " : "or %s%s\n",
- fname,
- TGZprefix[i]);
- exit(1);
-}
-
-
-/* help functions */
-
-int getoct(char *p,int width)
-{
- int result = 0;
- char c;
-
- while (width --)
- {
- c = *p++;
- if (c == ' ')
- continue;
- if (c == 0)
- break;
- result = result * 8 + (c - '0');
- }
- return result;
-}
-
-char *strtime (time_t *t)
-{
- struct tm *local;
- static char result[32];
-
- local = localtime(t);
- sprintf(result,"%2d/%02d/%4d %02d:%02d:%02d",
- local->tm_mday, local->tm_mon+1, local->tm_year+1900,
- local->tm_hour, local->tm_min, local->tm_sec);
- return result;
-}
-
-
-/* regular expression matching */
-
-#define ISSPECIAL(c) (((c) == '*') || ((c) == '/'))
-
-int ExprMatch(char *string,char *expr)
-{
- while (1)
- {
- if (ISSPECIAL(*expr))
- {
- if (*expr == '/')
- {
- if (*string != '\\' && *string != '/')
- return 0;
- string ++; expr++;
- }
- else if (*expr == '*')
- {
- if (*expr ++ == 0)
- return 1;
- while (*++string != *expr)
- if (*string == 0)
- return 0;
- }
- }
- else
- {
- if (*string != *expr)
- return 0;
- if (*expr++ == 0)
- return 1;
- string++;
- }
- }
-}
-
-/* recursive make directory */
-/* abort if you get an ENOENT errno somewhere in the middle */
-/* e.g. ignore error "mkdir on existing directory" */
-/* */
-/* return 1 if OK */
-/* 0 on error */
-
-int makedir (char *newdir)
-{
- char *buffer = strdup(newdir);
- char *p;
- int len = strlen(buffer);
-
- if (len <= 0) {
- free(buffer);
- return 0;
- }
- if (buffer[len-1] == '/') {
- buffer[len-1] = '\0';
- }
- if (mkdir(buffer, 0775) == 0)
- {
- free(buffer);
- return 1;
- }
-
- p = buffer+1;
- while (1)
- {
- char hold;
-
- while(*p && *p != '\\' && *p != '/')
- p++;
- hold = *p;
- *p = 0;
- if ((mkdir(buffer, 0775) == -1) && (errno == ENOENT))
- {
- fprintf(stderr,"%s: couldn't create directory %s\n",prog,buffer);
- free(buffer);
- return 0;
- }
- if (hold == 0)
- break;
- *p++ = hold;
- }
- free(buffer);
- return 1;
-}
-
-int matchname (int arg,int argc,char **argv,char *fname)
-{
- if (arg == argc) /* no arguments given (untgz tgzarchive) */
- return 1;
-
- while (arg < argc)
- if (ExprMatch(fname,argv[arg++]))
- return 1;
-
- return 0; /* ignore this for the moment being */
-}
-
-
-/* Tar file list or extract */
-
-int tar (gzFile in,int action,int arg,int argc,char **argv)
-{
- union tar_buffer buffer;
- int len;
- int err;
- int getheader = 1;
- int remaining = 0;
- FILE *outfile = NULL;
- char fname[BLOCKSIZE];
- time_t tartime;
-
- if (action == TGZ_LIST)
- printf(" day time size file\n"
- " ---------- -------- --------- -------------------------------------\n");
- while (1)
- {
- len = gzread(in, &buffer, BLOCKSIZE);
- if (len < 0)
- error (gzerror(in, &err));
- /*
- * Always expect complete blocks to process
- * the tar information.
- */
- if (len != BLOCKSIZE)
- error("gzread: incomplete block read");
-
- /*
- * If we have to get a tar header
- */
- if (getheader == 1)
- {
- /*
- * if we met the end of the tar
- * or the end-of-tar block,
- * we are done
- */
- if ((len == 0) || (buffer.header.name[0]== 0)) break;
-
- tartime = (time_t)getoct(buffer.header.mtime,12);
- strcpy(fname,buffer.header.name);
-
- switch (buffer.header.typeflag)
- {
- case DIRTYPE:
- if (action == TGZ_LIST)
- printf(" %s <dir> %s\n",strtime(&tartime),fname);
- if (action == TGZ_EXTRACT)
- makedir(fname);
- break;
- case REGTYPE:
- case AREGTYPE:
- remaining = getoct(buffer.header.size,12);
- if (action == TGZ_LIST)
- printf(" %s %9d %s\n",strtime(&tartime),remaining,fname);
- if (action == TGZ_EXTRACT)
- {
- if ((remaining) && (matchname(arg,argc,argv,fname)))
- {
- outfile = fopen(fname,"wb");
- if (outfile == NULL) {
- /* try creating directory */
- char *p = strrchr(fname, '/');
- if (p != NULL) {
- *p = '\0';
- makedir(fname);
- *p = '/';
- outfile = fopen(fname,"wb");
- }
- }
- fprintf(stderr,
- "%s %s\n",
- (outfile) ? "Extracting" : "Couldn't create",
- fname);
- }
- else
- outfile = NULL;
- }
- /*
- * could have no contents
- */
- getheader = (remaining) ? 0 : 1;
- break;
- default:
- if (action == TGZ_LIST)
- printf(" %s <---> %s\n",strtime(&tartime),fname);
- break;
- }
- }
- else
- {
- unsigned int bytes = (remaining > BLOCKSIZE) ? BLOCKSIZE : remaining;
-
- if ((action == TGZ_EXTRACT) && (outfile != NULL))
- {
- if (fwrite(&buffer,sizeof(char),bytes,outfile) != bytes)
- {
- fprintf(stderr,"%s : error writing %s skipping...\n",prog,fname);
- fclose(outfile);
- unlink(fname);
- }
- }
- remaining -= bytes;
- if (remaining == 0)
- {
- getheader = 1;
- if ((action == TGZ_EXTRACT) && (outfile != NULL))
- {
-#ifdef WIN32
- HANDLE hFile;
- FILETIME ftm,ftLocal;
- SYSTEMTIME st;
- struct tm localt;
-
- fclose(outfile);
-
- localt = *localtime(&tartime);
-
- hFile = CreateFile(fname, GENERIC_READ | GENERIC_WRITE,
- 0, NULL, OPEN_EXISTING, 0, NULL);
-
- st.wYear = (WORD)localt.tm_year+1900;
- st.wMonth = (WORD)localt.tm_mon;
- st.wDayOfWeek = (WORD)localt.tm_wday;
- st.wDay = (WORD)localt.tm_mday;
- st.wHour = (WORD)localt.tm_hour;
- st.wMinute = (WORD)localt.tm_min;
- st.wSecond = (WORD)localt.tm_sec;
- st.wMilliseconds = 0;
- SystemTimeToFileTime(&st,&ftLocal);
- LocalFileTimeToFileTime(&ftLocal,&ftm);
- SetFileTime(hFile,&ftm,NULL,&ftm);
- CloseHandle(hFile);
-
- outfile = NULL;
-#else
- struct utimbuf settime;
-
- settime.actime = settime.modtime = tartime;
-
- fclose(outfile);
- outfile = NULL;
- utime(fname,&settime);
-#endif
- }
- }
- }
- }
-
- if (gzclose(in) != Z_OK)
- error("failed gzclose");
-
- return 0;
-}
-
-
-/* =========================================================== */
-
-void help(int exitval)
-{
- fprintf(stderr,
- "untgz v 0.1\n"
- " an sample application of zlib 1.0.4\n\n"
- "Usage : untgz TGZfile to extract all files\n"
- " untgz TGZfile fname ... to extract selected files\n"
- " untgz -l TGZfile to list archive contents\n"
- " untgz -h to display this help\n\n");
- exit(exitval);
-}
-
-void error(const char *msg)
-{
- fprintf(stderr, "%s: %s\n", prog, msg);
- exit(1);
-}
-
-
-/* ====================================================================== */
-
-int _CRT_glob = 0; /* disable globbing of the arguments */
-
-int main(int argc,char **argv)
-{
- int action = TGZ_EXTRACT;
- int arg = 1;
- char *TGZfile;
- gzFile *f;
-
-
- prog = strrchr(argv[0],'\\');
- if (prog == NULL)
- {
- prog = strrchr(argv[0],'/');
- if (prog == NULL)
- {
- prog = strrchr(argv[0],':');
- if (prog == NULL)
- prog = argv[0];
- else
- prog++;
- }
- else
- prog++;
- }
- else
- prog++;
-
- if (argc == 1)
- help(0);
-
- if (strcmp(argv[arg],"-l") == 0)
- {
- action = TGZ_LIST;
- if (argc == ++arg)
- help(0);
- }
- else if (strcmp(argv[arg],"-h") == 0)
- {
- help(0);
- }
-
- if ((TGZfile = TGZfname(argv[arg])) == NULL)
- TGZnotfound(argv[arg]);
-
- ++arg;
- if ((action == TGZ_LIST) && (arg != argc))
- help(1);
-
-/*
- * Process the TGZ file
- */
- switch(action)
- {
- case TGZ_LIST:
- case TGZ_EXTRACT:
- f = gzopen(TGZfile,"rb");
- if (f == NULL)
- {
- fprintf(stderr,"%s: Couldn't gzopen %s\n",
- prog,
- TGZfile);
- return 1;
- }
- exit(tar(f, action, arg, argc, argv));
- break;
-
- default:
- error("Unknown option!");
- exit(1);
- }
-
- return 0;
-}
diff --git a/zlib-1.1.4/contrib/visual-basic.txt b/zlib-1.1.4/contrib/visual-basic.txt
deleted file mode 100644
index 10fb44b..0000000
--- a/zlib-1.1.4/contrib/visual-basic.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-See below some functions declarations for Visual Basic.
-
-Frequently Asked Question:
-
-Q: Each time I use the compress function I get the -5 error (not enough
- room in the output buffer).
-
-A: Make sure that the length of the compressed buffer is passed by
- reference ("as any"), not by value ("as long"). Also check that
- before the call of compress this length is equal to the total size of
- the compressed buffer and not zero.
-
-
-From: "Jon Caruana" <jon-net@usa.net>
-Subject: Re: How to port zlib declares to vb?
-Date: Mon, 28 Oct 1996 18:33:03 -0600
-
-Got the answer! (I haven't had time to check this but it's what I got, and
-looks correct):
-
-He has the following routines working:
- compress
- uncompress
- gzopen
- gzwrite
- gzread
- gzclose
-
-Declares follow: (Quoted from Carlos Rios <c_rios@sonda.cl>, in Vb4 form)
-
-#If Win16 Then 'Use Win16 calls.
-Declare Function compress Lib "ZLIB.DLL" (ByVal compr As
- String, comprLen As Any, ByVal buf As String, ByVal buflen
- As Long) As Integer
-Declare Function uncompress Lib "ZLIB.DLL" (ByVal uncompr
- As String, uncomprLen As Any, ByVal compr As String, ByVal
- lcompr As Long) As Integer
-Declare Function gzopen Lib "ZLIB.DLL" (ByVal filePath As
- String, ByVal mode As String) As Long
-Declare Function gzread Lib "ZLIB.DLL" (ByVal file As
- Long, ByVal uncompr As String, ByVal uncomprLen As Integer)
- As Integer
-Declare Function gzwrite Lib "ZLIB.DLL" (ByVal file As
- Long, ByVal uncompr As String, ByVal uncomprLen As Integer)
- As Integer
-Declare Function gzclose Lib "ZLIB.DLL" (ByVal file As
- Long) As Integer
-#Else
-Declare Function compress Lib "ZLIB32.DLL"
- (ByVal compr As String, comprLen As Any, ByVal buf As
- String, ByVal buflen As Long) As Integer
-Declare Function uncompress Lib "ZLIB32.DLL"
- (ByVal uncompr As String, uncomprLen As Any, ByVal compr As
- String, ByVal lcompr As Long) As Long
-Declare Function gzopen Lib "ZLIB32.DLL"
- (ByVal file As String, ByVal mode As String) As Long
-Declare Function gzread Lib "ZLIB32.DLL"
- (ByVal file As Long, ByVal uncompr As String, ByVal
- uncomprLen As Long) As Long
-Declare Function gzwrite Lib "ZLIB32.DLL"
- (ByVal file As Long, ByVal uncompr As String, ByVal
- uncomprLen As Long) As Long
-Declare Function gzclose Lib "ZLIB32.DLL"
- (ByVal file As Long) As Long
-#End If
-
--Jon Caruana
-jon-net@usa.net
-Microsoft Sitebuilder Network Level 1 Member - HTML Writer's Guild Member
diff --git a/zlib-1.1.4/crc32.c b/zlib-1.1.4/crc32.c
deleted file mode 100644
index 60deca2..0000000
--- a/zlib-1.1.4/crc32.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* crc32.c -- compute the CRC-32 of a data stream
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zlib.h"
-
-#define local static
-
-#ifdef DYNAMIC_CRC_TABLE
-
-local int crc_table_empty = 1;
-local uLongf crc_table[256];
-local void make_crc_table OF((void));
-
-/*
- Generate a table for a byte-wise 32-bit CRC calculation on the polynomial:
- x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.
-
- Polynomials over GF(2) are represented in binary, one bit per coefficient,
- with the lowest powers in the most significant bit. Then adding polynomials
- is just exclusive-or, and multiplying a polynomial by x is a right shift by
- one. If we call the above polynomial p, and represent a byte as the
- polynomial q, also with the lowest power in the most significant bit (so the
- byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p,
- where a mod b means the remainder after dividing a by b.
-
- This calculation is done using the shift-register method of multiplying and
- taking the remainder. The register is initialized to zero, and for each
- incoming bit, x^32 is added mod p to the register if the bit is a one (where
- x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by
- x (which is shifting right by one and adding x^32 mod p if the bit shifted
- out is a one). We start with the highest power (least significant bit) of
- q and repeat for all eight bits of q.
-
- The table is simply the CRC of all possible eight bit values. This is all
- the information needed to generate CRC's on data a byte at a time for all
- combinations of CRC register values and incoming bytes.
-*/
-local void make_crc_table()
-{
- uLong c;
- int n, k;
- uLong poly; /* polynomial exclusive-or pattern */
- /* terms of polynomial defining this crc (except x^32): */
- static const Byte p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26};
-
- /* make exclusive-or pattern from polynomial (0xedb88320L) */
- poly = 0L;
- for (n = 0; n < sizeof(p)/sizeof(Byte); n++)
- poly |= 1L << (31 - p[n]);
-
- for (n = 0; n < 256; n++)
- {
- c = (uLong)n;
- for (k = 0; k < 8; k++)
- c = c & 1 ? poly ^ (c >> 1) : c >> 1;
- crc_table[n] = c;
- }
- crc_table_empty = 0;
-}
-#else
-/* ========================================================================
- * Table of CRC-32's of all single-byte values (made by make_crc_table)
- */
-local const uLongf crc_table[256] = {
- 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
- 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
- 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
- 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
- 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
- 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
- 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
- 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
- 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
- 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
- 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
- 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
- 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
- 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
- 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
- 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
- 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
- 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
- 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
- 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
- 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
- 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
- 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
- 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
- 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
- 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
- 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
- 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
- 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
- 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
- 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
- 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
- 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
- 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
- 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
- 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
- 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
- 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
- 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
- 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
- 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
- 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
- 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
- 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
- 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
- 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
- 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
- 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
- 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
- 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
- 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
- 0x2d02ef8dL
-};
-#endif
-
-/* =========================================================================
- * This function can be used by asm versions of crc32()
- */
-const uLongf * ZEXPORT get_crc_table()
-{
-#ifdef DYNAMIC_CRC_TABLE
- if (crc_table_empty) make_crc_table();
-#endif
- return (const uLongf *)crc_table;
-}
-
-/* ========================================================================= */
-#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8);
-#define DO2(buf) DO1(buf); DO1(buf);
-#define DO4(buf) DO2(buf); DO2(buf);
-#define DO8(buf) DO4(buf); DO4(buf);
-
-/* ========================================================================= */
-uLong ZEXPORT crc32(crc, buf, len)
- uLong crc;
- const Bytef *buf;
- uInt len;
-{
- if (buf == Z_NULL) return 0L;
-#ifdef DYNAMIC_CRC_TABLE
- if (crc_table_empty)
- make_crc_table();
-#endif
- crc = crc ^ 0xffffffffL;
- while (len >= 8)
- {
- DO8(buf);
- len -= 8;
- }
- if (len) do {
- DO1(buf);
- } while (--len);
- return crc ^ 0xffffffffL;
-}
diff --git a/zlib-1.1.4/deflate.c b/zlib-1.1.4/deflate.c
deleted file mode 100644
index 16ebdad..0000000
--- a/zlib-1.1.4/deflate.c
+++ /dev/null
@@ -1,1350 +0,0 @@
-/* deflate.c -- compress data using the deflation algorithm
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * ALGORITHM
- *
- * The "deflation" process depends on being able to identify portions
- * of the input text which are identical to earlier input (within a
- * sliding window trailing behind the input currently being processed).
- *
- * The most straightforward technique turns out to be the fastest for
- * most input files: try all possible matches and select the longest.
- * The key feature of this algorithm is that insertions into the string
- * dictionary are very simple and thus fast, and deletions are avoided
- * completely. Insertions are performed at each input character, whereas
- * string matches are performed only when the previous match ends. So it
- * is preferable to spend more time in matches to allow very fast string
- * insertions and avoid deletions. The matching algorithm for small
- * strings is inspired from that of Rabin & Karp. A brute force approach
- * is used to find longer strings when a small match has been found.
- * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze
- * (by Leonid Broukhis).
- * A previous version of this file used a more sophisticated algorithm
- * (by Fiala and Greene) which is guaranteed to run in linear amortized
- * time, but has a larger average cost, uses more memory and is patented.
- * However the F&G algorithm may be faster for some highly redundant
- * files if the parameter max_chain_length (described below) is too large.
- *
- * ACKNOWLEDGEMENTS
- *
- * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and
- * I found it in 'freeze' written by Leonid Broukhis.
- * Thanks to many people for bug reports and testing.
- *
- * REFERENCES
- *
- * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification".
- * Available in ftp://ds.internic.net/rfc/rfc1951.txt
- *
- * A description of the Rabin and Karp algorithm is given in the book
- * "Algorithms" by R. Sedgewick, Addison-Wesley, p252.
- *
- * Fiala,E.R., and Greene,D.H.
- * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595
- *
- */
-
-/* @(#) $Id$ */
-
-#include "deflate.h"
-
-const char deflate_copyright[] =
- " deflate 1.1.4 Copyright 1995-2002 Jean-loup Gailly ";
-/*
- If you use the zlib library in a product, an acknowledgment is welcome
- in the documentation of your product. If for some reason you cannot
- include such an acknowledgment, I would appreciate that you keep this
- copyright string in the executable of your product.
- */
-
-/* ===========================================================================
- * Function prototypes.
- */
-typedef enum {
- need_more, /* block not completed, need more input or more output */
- block_done, /* block flush performed */
- finish_started, /* finish started, need only more output at next deflate */
- finish_done /* finish done, accept no more input or output */
-} block_state;
-
-typedef block_state (*compress_func) OF((deflate_state *s, int flush));
-/* Compression function. Returns the block state after the call. */
-
-local void fill_window OF((deflate_state *s));
-local block_state deflate_stored OF((deflate_state *s, int flush));
-local block_state deflate_fast OF((deflate_state *s, int flush));
-local block_state deflate_slow OF((deflate_state *s, int flush));
-local void lm_init OF((deflate_state *s));
-local void putShortMSB OF((deflate_state *s, uInt b));
-local void flush_pending OF((z_streamp strm));
-local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size));
-#ifdef ASMV
- void match_init OF((void)); /* asm code initialization */
- uInt longest_match OF((deflate_state *s, IPos cur_match));
-#else
-local uInt longest_match OF((deflate_state *s, IPos cur_match));
-#endif
-
-#ifdef DEBUG
-local void check_match OF((deflate_state *s, IPos start, IPos match,
- int length));
-#endif
-
-/* ===========================================================================
- * Local data
- */
-
-#define NIL 0
-/* Tail of hash chains */
-
-#ifndef TOO_FAR
-# define TOO_FAR 4096
-#endif
-/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-/* Values for max_lazy_match, good_match and max_chain_length, depending on
- * the desired pack level (0..9). The values given below have been tuned to
- * exclude worst case performance for pathological files. Better values may be
- * found for specific files.
- */
-typedef struct config_s {
- ush good_length; /* reduce lazy search above this match length */
- ush max_lazy; /* do not perform lazy search above this match length */
- ush nice_length; /* quit search above this match length */
- ush max_chain;
- compress_func func;
-} config;
-
-local const config configuration_table[10] = {
-/* good lazy nice chain */
-/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */
-/* 1 */ {4, 4, 8, 4, deflate_fast}, /* maximum speed, no lazy matches */
-/* 2 */ {4, 5, 16, 8, deflate_fast},
-/* 3 */ {4, 6, 32, 32, deflate_fast},
-
-/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */
-/* 5 */ {8, 16, 32, 32, deflate_slow},
-/* 6 */ {8, 16, 128, 128, deflate_slow},
-/* 7 */ {8, 32, 128, 256, deflate_slow},
-/* 8 */ {32, 128, 258, 1024, deflate_slow},
-/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* maximum compression */
-
-/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4
- * For deflate_fast() (levels <= 3) good is ignored and lazy has a different
- * meaning.
- */
-
-#define EQUAL 0
-/* result of memcmp for equal strings */
-
-struct static_tree_desc_s {int dummy;}; /* for buggy compilers */
-
-/* ===========================================================================
- * Update a hash value with the given input byte
- * IN assertion: all calls to to UPDATE_HASH are made with consecutive
- * input characters, so that a running hash key can be computed from the
- * previous key instead of complete recalculation each time.
- */
-#define UPDATE_HASH(s,h,c) (h = (((h)<<s->hash_shift) ^ (c)) & s->hash_mask)
-
-
-/* ===========================================================================
- * Insert string str in the dictionary and set match_head to the previous head
- * of the hash chain (the most recent string with same hash key). Return
- * the previous length of the hash chain.
- * If this file is compiled with -DFASTEST, the compression level is forced
- * to 1, and no hash chains are maintained.
- * IN assertion: all calls to to INSERT_STRING are made with consecutive
- * input characters and the first MIN_MATCH bytes of str are valid
- * (except for the last MIN_MATCH-1 bytes of the input file).
- */
-#ifdef FASTEST
-#define INSERT_STRING(s, str, match_head) \
- (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
- match_head = s->head[s->ins_h], \
- s->head[s->ins_h] = (Pos)(str))
-#else
-#define INSERT_STRING(s, str, match_head) \
- (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \
- s->prev[(str) & s->w_mask] = match_head = s->head[s->ins_h], \
- s->head[s->ins_h] = (Pos)(str))
-#endif
-
-/* ===========================================================================
- * Initialize the hash table (avoiding 64K overflow for 16 bit systems).
- * prev[] will be initialized on the fly.
- */
-#define CLEAR_HASH(s) \
- s->head[s->hash_size-1] = NIL; \
- zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
-
-/* ========================================================================= */
-int ZEXPORT deflateInit_(strm, level, version, stream_size)
- z_streamp strm;
- int level;
- const char *version;
- int stream_size;
-{
- return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
- Z_DEFAULT_STRATEGY, version, stream_size);
- /* To do: ignore strm->next_in if we use it as window */
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
- version, stream_size)
- z_streamp strm;
- int level;
- int method;
- int windowBits;
- int memLevel;
- int strategy;
- const char *version;
- int stream_size;
-{
- deflate_state *s;
- int noheader = 0;
- static const char* my_version = ZLIB_VERSION;
-
- ushf *overlay;
- /* We overlay pending_buf and d_buf+l_buf. This works since the average
- * output size for (length,distance) codes is <= 24 bits.
- */
-
- if (version == Z_NULL || version[0] != my_version[0] ||
- stream_size != sizeof(z_stream)) {
- return Z_VERSION_ERROR;
- }
- if (strm == Z_NULL) return Z_STREAM_ERROR;
-
- strm->msg = Z_NULL;
- if (strm->zalloc == Z_NULL) {
- strm->zalloc = zcalloc;
- strm->opaque = (voidpf)0;
- }
- if (strm->zfree == Z_NULL) strm->zfree = zcfree;
-
- if (level == Z_DEFAULT_COMPRESSION) level = 6;
-#ifdef FASTEST
- level = 1;
-#endif
-
- if (windowBits < 0) { /* undocumented feature: suppress zlib header */
- noheader = 1;
- windowBits = -windowBits;
- }
- if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
- windowBits < 9 || windowBits > 15 || level < 0 || level > 9 ||
- strategy < 0 || strategy > Z_HUFFMAN_ONLY) {
- return Z_STREAM_ERROR;
- }
- s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
- if (s == Z_NULL) return Z_MEM_ERROR;
- strm->state = (struct internal_state FAR *)s;
- s->strm = strm;
-
- s->noheader = noheader;
- s->w_bits = windowBits;
- s->w_size = 1 << s->w_bits;
- s->w_mask = s->w_size - 1;
-
- s->hash_bits = memLevel + 7;
- s->hash_size = 1 << s->hash_bits;
- s->hash_mask = s->hash_size - 1;
- s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
-
- s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
- s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos));
- s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos));
-
- s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
-
- overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
- s->pending_buf = (uchf *) overlay;
- s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
-
- if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
- s->pending_buf == Z_NULL) {
- strm->msg = (char*)ERR_MSG(Z_MEM_ERROR);
- deflateEnd (strm);
- return Z_MEM_ERROR;
- }
- s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
- s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
-
- s->level = level;
- s->strategy = strategy;
- s->method = (Byte)method;
-
- return deflateReset(strm);
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength)
- z_streamp strm;
- const Bytef *dictionary;
- uInt dictLength;
-{
- deflate_state *s;
- uInt length = dictLength;
- uInt n;
- IPos hash_head = 0;
-
- if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL ||
- strm->state->status != INIT_STATE) return Z_STREAM_ERROR;
-
- s = strm->state;
- strm->adler = adler32(strm->adler, dictionary, dictLength);
-
- if (length < MIN_MATCH) return Z_OK;
- if (length > MAX_DIST(s)) {
- length = MAX_DIST(s);
-#ifndef USE_DICT_HEAD
- dictionary += dictLength - length; /* use the tail of the dictionary */
-#endif
- }
- zmemcpy(s->window, dictionary, length);
- s->strstart = length;
- s->block_start = (long)length;
-
- /* Insert all strings in the hash table (except for the last two bytes).
- * s->lookahead stays null, so s->ins_h will be recomputed at the next
- * call of fill_window.
- */
- s->ins_h = s->window[0];
- UPDATE_HASH(s, s->ins_h, s->window[1]);
- for (n = 0; n <= length - MIN_MATCH; n++) {
- INSERT_STRING(s, n, hash_head);
- }
- if (hash_head) hash_head = 0; /* to make compiler happy */
- return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateReset (strm)
- z_streamp strm;
-{
- deflate_state *s;
-
- if (strm == Z_NULL || strm->state == Z_NULL ||
- strm->zalloc == Z_NULL || strm->zfree == Z_NULL) return Z_STREAM_ERROR;
-
- strm->total_in = strm->total_out = 0;
- strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */
- strm->data_type = Z_UNKNOWN;
-
- s = (deflate_state *)strm->state;
- s->pending = 0;
- s->pending_out = s->pending_buf;
-
- if (s->noheader < 0) {
- s->noheader = 0; /* was set to -1 by deflate(..., Z_FINISH); */
- }
- s->status = s->noheader ? BUSY_STATE : INIT_STATE;
- strm->adler = 1;
- s->last_flush = Z_NO_FLUSH;
-
- _tr_init(s);
- lm_init(s);
-
- return Z_OK;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateParams(strm, level, strategy)
- z_streamp strm;
- int level;
- int strategy;
-{
- deflate_state *s;
- compress_func func;
- int err = Z_OK;
-
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
- s = strm->state;
-
- if (level == Z_DEFAULT_COMPRESSION) {
- level = 6;
- }
- if (level < 0 || level > 9 || strategy < 0 || strategy > Z_HUFFMAN_ONLY) {
- return Z_STREAM_ERROR;
- }
- func = configuration_table[s->level].func;
-
- if (func != configuration_table[level].func && strm->total_in != 0) {
- /* Flush the last buffer: */
- err = deflate(strm, Z_PARTIAL_FLUSH);
- }
- if (s->level != level) {
- s->level = level;
- s->max_lazy_match = configuration_table[level].max_lazy;
- s->good_match = configuration_table[level].good_length;
- s->nice_match = configuration_table[level].nice_length;
- s->max_chain_length = configuration_table[level].max_chain;
- }
- s->strategy = strategy;
- return err;
-}
-
-/* =========================================================================
- * Put a short in the pending buffer. The 16-bit value is put in MSB order.
- * IN assertion: the stream state is correct and there is enough room in
- * pending_buf.
- */
-local void putShortMSB (s, b)
- deflate_state *s;
- uInt b;
-{
- put_byte(s, (Byte)(b >> 8));
- put_byte(s, (Byte)(b & 0xff));
-}
-
-/* =========================================================================
- * Flush as much pending output as possible. All deflate() output goes
- * through this function so some applications may wish to modify it
- * to avoid allocating a large strm->next_out buffer and copying into it.
- * (See also read_buf()).
- */
-local void flush_pending(strm)
- z_streamp strm;
-{
- unsigned len = strm->state->pending;
-
- if (len > strm->avail_out) len = strm->avail_out;
- if (len == 0) return;
-
- zmemcpy(strm->next_out, strm->state->pending_out, len);
- strm->next_out += len;
- strm->state->pending_out += len;
- strm->total_out += len;
- strm->avail_out -= len;
- strm->state->pending -= len;
- if (strm->state->pending == 0) {
- strm->state->pending_out = strm->state->pending_buf;
- }
-}
-
-/* ========================================================================= */
-int ZEXPORT deflate (strm, flush)
- z_streamp strm;
- int flush;
-{
- int old_flush; /* value of flush param for previous deflate call */
- deflate_state *s;
-
- if (strm == Z_NULL || strm->state == Z_NULL ||
- flush > Z_FINISH || flush < 0) {
- return Z_STREAM_ERROR;
- }
- s = strm->state;
-
- if (strm->next_out == Z_NULL ||
- (strm->next_in == Z_NULL && strm->avail_in != 0) ||
- (s->status == FINISH_STATE && flush != Z_FINISH)) {
- ERR_RETURN(strm, Z_STREAM_ERROR);
- }
- if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR);
-
- s->strm = strm; /* just in case */
- old_flush = s->last_flush;
- s->last_flush = flush;
-
- /* Write the zlib header */
- if (s->status == INIT_STATE) {
-
- uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8;
- uInt level_flags = (s->level-1) >> 1;
-
- if (level_flags > 3) level_flags = 3;
- header |= (level_flags << 6);
- if (s->strstart != 0) header |= PRESET_DICT;
- header += 31 - (header % 31);
-
- s->status = BUSY_STATE;
- putShortMSB(s, header);
-
- /* Save the adler32 of the preset dictionary: */
- if (s->strstart != 0) {
- putShortMSB(s, (uInt)(strm->adler >> 16));
- putShortMSB(s, (uInt)(strm->adler & 0xffff));
- }
- strm->adler = 1L;
- }
-
- /* Flush as much pending output as possible */
- if (s->pending != 0) {
- flush_pending(strm);
- if (strm->avail_out == 0) {
- /* Since avail_out is 0, deflate will be called again with
- * more output space, but possibly with both pending and
- * avail_in equal to zero. There won't be anything to do,
- * but this is not an error situation so make sure we
- * return OK instead of BUF_ERROR at next call of deflate:
- */
- s->last_flush = -1;
- return Z_OK;
- }
-
- /* Make sure there is something to do and avoid duplicate consecutive
- * flushes. For repeated and useless calls with Z_FINISH, we keep
- * returning Z_STREAM_END instead of Z_BUFF_ERROR.
- */
- } else if (strm->avail_in == 0 && flush <= old_flush &&
- flush != Z_FINISH) {
- ERR_RETURN(strm, Z_BUF_ERROR);
- }
-
- /* User must not provide more input after the first FINISH: */
- if (s->status == FINISH_STATE && strm->avail_in != 0) {
- ERR_RETURN(strm, Z_BUF_ERROR);
- }
-
- /* Start a new block or continue the current one.
- */
- if (strm->avail_in != 0 || s->lookahead != 0 ||
- (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) {
- block_state bstate;
-
- bstate = (*(configuration_table[s->level].func))(s, flush);
-
- if (bstate == finish_started || bstate == finish_done) {
- s->status = FINISH_STATE;
- }
- if (bstate == need_more || bstate == finish_started) {
- if (strm->avail_out == 0) {
- s->last_flush = -1; /* avoid BUF_ERROR next call, see above */
- }
- return Z_OK;
- /* If flush != Z_NO_FLUSH && avail_out == 0, the next call
- * of deflate should use the same flush parameter to make sure
- * that the flush is complete. So we don't have to output an
- * empty block here, this will be done at next call. This also
- * ensures that for a very small output buffer, we emit at most
- * one empty block.
- */
- }
- if (bstate == block_done) {
- if (flush == Z_PARTIAL_FLUSH) {
- _tr_align(s);
- } else { /* FULL_FLUSH or SYNC_FLUSH */
- _tr_stored_block(s, (char*)0, 0L, 0);
- /* For a full flush, this empty block will be recognized
- * as a special marker by inflate_sync().
- */
- if (flush == Z_FULL_FLUSH) {
- CLEAR_HASH(s); /* forget history */
- }
- }
- flush_pending(strm);
- if (strm->avail_out == 0) {
- s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */
- return Z_OK;
- }
- }
- }
- Assert(strm->avail_out > 0, "bug2");
-
- if (flush != Z_FINISH) return Z_OK;
- if (s->noheader) return Z_STREAM_END;
-
- /* Write the zlib trailer (adler32) */
- putShortMSB(s, (uInt)(strm->adler >> 16));
- putShortMSB(s, (uInt)(strm->adler & 0xffff));
- flush_pending(strm);
- /* If avail_out is zero, the application will call deflate again
- * to flush the rest.
- */
- s->noheader = -1; /* write the trailer only once! */
- return s->pending != 0 ? Z_OK : Z_STREAM_END;
-}
-
-/* ========================================================================= */
-int ZEXPORT deflateEnd (strm)
- z_streamp strm;
-{
- int status;
-
- if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;
-
- status = strm->state->status;
- if (status != INIT_STATE && status != BUSY_STATE &&
- status != FINISH_STATE) {
- return Z_STREAM_ERROR;
- }
-
- /* Deallocate in reverse order of allocations: */
- TRY_FREE(strm, strm->state->pending_buf);
- TRY_FREE(strm, strm->state->head);
- TRY_FREE(strm, strm->state->prev);
- TRY_FREE(strm, strm->state->window);
-
- ZFREE(strm, strm->state);
- strm->state = Z_NULL;
-
- return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK;
-}
-
-/* =========================================================================
- * Copy the source state to the destination state.
- * To simplify the source, this is not supported for 16-bit MSDOS (which
- * doesn't have enough memory anyway to duplicate compression states).
- */
-int ZEXPORT deflateCopy (dest, source)
- z_streamp dest;
- z_streamp source;
-{
-#ifdef MAXSEG_64K
- return Z_STREAM_ERROR;
-#else
- deflate_state *ds;
- deflate_state *ss;
- ushf *overlay;
-
-
- if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) {
- return Z_STREAM_ERROR;
- }
-
- ss = source->state;
-
- *dest = *source;
-
- ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state));
- if (ds == Z_NULL) return Z_MEM_ERROR;
- dest->state = (struct internal_state FAR *) ds;
- *ds = *ss;
- ds->strm = dest;
-
- ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
- ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos));
- ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos));
- overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
- ds->pending_buf = (uchf *) overlay;
-
- if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
- ds->pending_buf == Z_NULL) {
- deflateEnd (dest);
- return Z_MEM_ERROR;
- }
- /* following zmemcpy do not work for 16-bit MSDOS */
- zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte));
- zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos));
- zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos));
- zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
-
- ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
- ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
- ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
-
- ds->l_desc.dyn_tree = ds->dyn_ltree;
- ds->d_desc.dyn_tree = ds->dyn_dtree;
- ds->bl_desc.dyn_tree = ds->bl_tree;
-
- return Z_OK;
-#endif
-}
-
-/* ===========================================================================
- * Read a new buffer from the current input stream, update the adler32
- * and total number of bytes read. All deflate() input goes through
- * this function so some applications may wish to modify it to avoid
- * allocating a large strm->next_in buffer and copying from it.
- * (See also flush_pending()).
- */
-local int read_buf(strm, buf, size)
- z_streamp strm;
- Bytef *buf;
- unsigned size;
-{
- unsigned len = strm->avail_in;
-
- if (len > size) len = size;
- if (len == 0) return 0;
-
- strm->avail_in -= len;
-
- if (!strm->state->noheader) {
- strm->adler = adler32(strm->adler, strm->next_in, len);
- }
- zmemcpy(buf, strm->next_in, len);
- strm->next_in += len;
- strm->total_in += len;
-
- return (int)len;
-}
-
-/* ===========================================================================
- * Initialize the "longest match" routines for a new zlib stream
- */
-local void lm_init (s)
- deflate_state *s;
-{
- s->window_size = (ulg)2L*s->w_size;
-
- CLEAR_HASH(s);
-
- /* Set the default configuration parameters:
- */
- s->max_lazy_match = configuration_table[s->level].max_lazy;
- s->good_match = configuration_table[s->level].good_length;
- s->nice_match = configuration_table[s->level].nice_length;
- s->max_chain_length = configuration_table[s->level].max_chain;
-
- s->strstart = 0;
- s->block_start = 0L;
- s->lookahead = 0;
- s->match_length = s->prev_length = MIN_MATCH-1;
- s->match_available = 0;
- s->ins_h = 0;
-#ifdef ASMV
- match_init(); /* initialize the asm code */
-#endif
-}
-
-/* ===========================================================================
- * Set match_start to the longest match starting at the given string and
- * return its length. Matches shorter or equal to prev_length are discarded,
- * in which case the result is equal to prev_length and match_start is
- * garbage.
- * IN assertions: cur_match is the head of the hash chain for the current
- * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1
- * OUT assertion: the match length is not greater than s->lookahead.
- */
-#ifndef ASMV
-/* For 80x86 and 680x0, an optimized version will be provided in match.asm or
- * match.S. The code will be functionally equivalent.
- */
-#ifndef FASTEST
-local uInt longest_match(s, cur_match)
- deflate_state *s;
- IPos cur_match; /* current match */
-{
- unsigned chain_length = s->max_chain_length;/* max hash chain length */
- register Bytef *scan = s->window + s->strstart; /* current string */
- register Bytef *match; /* matched string */
- register int len; /* length of current match */
- int best_len = s->prev_length; /* best match length so far */
- int nice_match = s->nice_match; /* stop if match long enough */
- IPos limit = s->strstart > (IPos)MAX_DIST(s) ?
- s->strstart - (IPos)MAX_DIST(s) : NIL;
- /* Stop when cur_match becomes <= limit. To simplify the code,
- * we prevent matches with the string of window index 0.
- */
- Posf *prev = s->prev;
- uInt wmask = s->w_mask;
-
-#ifdef UNALIGNED_OK
- /* Compare two bytes at a time. Note: this is not always beneficial.
- * Try with and without -DUNALIGNED_OK to check.
- */
- register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1;
- register ush scan_start = *(ushf*)scan;
- register ush scan_end = *(ushf*)(scan+best_len-1);
-#else
- register Bytef *strend = s->window + s->strstart + MAX_MATCH;
- register Byte scan_end1 = scan[best_len-1];
- register Byte scan_end = scan[best_len];
-#endif
-
- /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
- * It is easy to get rid of this optimization if necessary.
- */
- Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
- /* Do not waste too much time if we already have a good match: */
- if (s->prev_length >= s->good_match) {
- chain_length >>= 2;
- }
- /* Do not look for matches beyond the end of the input. This is necessary
- * to make deflate deterministic.
- */
- if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead;
-
- Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
- do {
- Assert(cur_match < s->strstart, "no future");
- match = s->window + cur_match;
-
- /* Skip to next match if the match length cannot increase
- * or if the match length is less than 2:
- */
-#if (defined(UNALIGNED_OK) && MAX_MATCH == 258)
- /* This code assumes sizeof(unsigned short) == 2. Do not use
- * UNALIGNED_OK if your compiler uses a different size.
- */
- if (*(ushf*)(match+best_len-1) != scan_end ||
- *(ushf*)match != scan_start) continue;
-
- /* It is not necessary to compare scan[2] and match[2] since they are
- * always equal when the other bytes match, given that the hash keys
- * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at
- * strstart+3, +5, ... up to strstart+257. We check for insufficient
- * lookahead only every 4th comparison; the 128th check will be made
- * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is
- * necessary to put more guard bytes at the end of the window, or
- * to check more often for insufficient lookahead.
- */
- Assert(scan[2] == match[2], "scan[2]?");
- scan++, match++;
- do {
- } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- *(ushf*)(scan+=2) == *(ushf*)(match+=2) &&
- scan < strend);
- /* The funny "do {}" generates better code on most compilers */
-
- /* Here, scan <= window+strstart+257 */
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
- if (*scan == *match) scan++;
-
- len = (MAX_MATCH - 1) - (int)(strend-scan);
- scan = strend - (MAX_MATCH-1);
-
-#else /* UNALIGNED_OK */
-
- if (match[best_len] != scan_end ||
- match[best_len-1] != scan_end1 ||
- *match != *scan ||
- *++match != scan[1]) continue;
-
- /* The check at best_len-1 can be removed because it will be made
- * again later. (This heuristic is not always a win.)
- * It is not necessary to compare scan[2] and match[2] since they
- * are always equal when the other bytes match, given that
- * the hash keys are equal and that HASH_BITS >= 8.
- */
- scan += 2, match++;
- Assert(*scan == *match, "match[2]?");
-
- /* We check for insufficient lookahead only every 8th comparison;
- * the 256th check will be made at strstart+258.
- */
- do {
- } while (*++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- scan < strend);
-
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
- len = MAX_MATCH - (int)(strend - scan);
- scan = strend - MAX_MATCH;
-
-#endif /* UNALIGNED_OK */
-
- if (len > best_len) {
- s->match_start = cur_match;
- best_len = len;
- if (len >= nice_match) break;
-#ifdef UNALIGNED_OK
- scan_end = *(ushf*)(scan+best_len-1);
-#else
- scan_end1 = scan[best_len-1];
- scan_end = scan[best_len];
-#endif
- }
- } while ((cur_match = prev[cur_match & wmask]) > limit
- && --chain_length != 0);
-
- if ((uInt)best_len <= s->lookahead) return (uInt)best_len;
- return s->lookahead;
-}
-
-#else /* FASTEST */
-/* ---------------------------------------------------------------------------
- * Optimized version for level == 1 only
- */
-local uInt longest_match(s, cur_match)
- deflate_state *s;
- IPos cur_match; /* current match */
-{
- register Bytef *scan = s->window + s->strstart; /* current string */
- register Bytef *match; /* matched string */
- register int len; /* length of current match */
- register Bytef *strend = s->window + s->strstart + MAX_MATCH;
-
- /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.
- * It is easy to get rid of this optimization if necessary.
- */
- Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever");
-
- Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead");
-
- Assert(cur_match < s->strstart, "no future");
-
- match = s->window + cur_match;
-
- /* Return failure if the match length is less than 2:
- */
- if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1;
-
- /* The check at best_len-1 can be removed because it will be made
- * again later. (This heuristic is not always a win.)
- * It is not necessary to compare scan[2] and match[2] since they
- * are always equal when the other bytes match, given that
- * the hash keys are equal and that HASH_BITS >= 8.
- */
- scan += 2, match += 2;
- Assert(*scan == *match, "match[2]?");
-
- /* We check for insufficient lookahead only every 8th comparison;
- * the 256th check will be made at strstart+258.
- */
- do {
- } while (*++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- *++scan == *++match && *++scan == *++match &&
- scan < strend);
-
- Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan");
-
- len = MAX_MATCH - (int)(strend - scan);
-
- if (len < MIN_MATCH) return MIN_MATCH - 1;
-
- s->match_start = cur_match;
- return len <= s->lookahead ? len : s->lookahead;
-}
-#endif /* FASTEST */
-#endif /* ASMV */
-
-#ifdef DEBUG
-/* ===========================================================================
- * Check that the match at match_start is indeed a match.
- */
-local void check_match(s, start, match, length)
- deflate_state *s;
- IPos start, match;
- int length;
-{
- /* check that the match is indeed a match */
- if (zmemcmp(s->window + match,
- s->window + start, length) != EQUAL) {
- fprintf(stderr, " start %u, match %u, length %d\n",
- start, match, length);
- do {
- fprintf(stderr, "%c%c", s->window[match++], s->window[start++]);
- } while (--length != 0);
- z_error("invalid match");
- }
- if (z_verbose > 1) {
- fprintf(stderr,"\\[%d,%d]", start-match, length);
- do { putc(s->window[start++], stderr); } while (--length != 0);
- }
-}
-#else
-# define check_match(s, start, match, length)
-#endif
-
-/* ===========================================================================
- * Fill the window when the lookahead becomes insufficient.
- * Updates strstart and lookahead.
- *
- * IN assertion: lookahead < MIN_LOOKAHEAD
- * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD
- * At least one byte has been read, or avail_in == 0; reads are
- * performed for at least two bytes (required for the zip translate_eol
- * option -- not supported here).
- */
-local void fill_window(s)
- deflate_state *s;
-{
- register unsigned n, m;
- register Posf *p;
- unsigned more; /* Amount of free space at the end of the window. */
- uInt wsize = s->w_size;
-
- do {
- more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart);
-
- /* Deal with !@#$% 64K limit: */
- if (more == 0 && s->strstart == 0 && s->lookahead == 0) {
- more = wsize;
-
- } else if (more == (unsigned)(-1)) {
- /* Very unlikely, but possible on 16 bit machine if strstart == 0
- * and lookahead == 1 (input done one byte at time)
- */
- more--;
-
- /* If the window is almost full and there is insufficient lookahead,
- * move the upper half to the lower one to make room in the upper half.
- */
- } else if (s->strstart >= wsize+MAX_DIST(s)) {
-
- zmemcpy(s->window, s->window+wsize, (unsigned)wsize);
- s->match_start -= wsize;
- s->strstart -= wsize; /* we now have strstart >= MAX_DIST */
- s->block_start -= (long) wsize;
-
- /* Slide the hash table (could be avoided with 32 bit values
- at the expense of memory usage). We slide even when level == 0
- to keep the hash table consistent if we switch back to level > 0
- later. (Using level 0 permanently is not an optimal usage of
- zlib, so we don't care about this pathological case.)
- */
- n = s->hash_size;
- p = &s->head[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- } while (--n);
-
- n = wsize;
-#ifndef FASTEST
- p = &s->prev[n];
- do {
- m = *--p;
- *p = (Pos)(m >= wsize ? m-wsize : NIL);
- /* If n is not on any hash chain, prev[n] is garbage but
- * its value will never be used.
- */
- } while (--n);
-#endif
- more += wsize;
- }
- if (s->strm->avail_in == 0) return;
-
- /* If there was no sliding:
- * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&
- * more == window_size - lookahead - strstart
- * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)
- * => more >= window_size - 2*WSIZE + 2
- * In the BIG_MEM or MMAP case (not yet supported),
- * window_size == input_size + MIN_LOOKAHEAD &&
- * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.
- * Otherwise, window_size == 2*WSIZE so more >= 2.
- * If there was sliding, more >= WSIZE. So in all cases, more >= 2.
- */
- Assert(more >= 2, "more < 2");
-
- n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more);
- s->lookahead += n;
-
- /* Initialize the hash value now that we have some input: */
- if (s->lookahead >= MIN_MATCH) {
- s->ins_h = s->window[s->strstart];
- UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
- Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
- }
- /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,
- * but this is not important since only literal bytes will be emitted.
- */
-
- } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0);
-}
-
-/* ===========================================================================
- * Flush the current block, with given end-of-file flag.
- * IN assertion: strstart is set to the end of the current match.
- */
-#define FLUSH_BLOCK_ONLY(s, eof) { \
- _tr_flush_block(s, (s->block_start >= 0L ? \
- (charf *)&s->window[(unsigned)s->block_start] : \
- (charf *)Z_NULL), \
- (ulg)((long)s->strstart - s->block_start), \
- (eof)); \
- s->block_start = s->strstart; \
- flush_pending(s->strm); \
- Tracev((stderr,"[FLUSH]")); \
-}
-
-/* Same but force premature exit if necessary. */
-#define FLUSH_BLOCK(s, eof) { \
- FLUSH_BLOCK_ONLY(s, eof); \
- if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \
-}
-
-/* ===========================================================================
- * Copy without compression as much as possible from the input stream, return
- * the current block state.
- * This function does not insert new strings in the dictionary since
- * uncompressible data is probably not useful. This function is used
- * only for the level=0 compression option.
- * NOTE: this function should be optimized to avoid extra copying from
- * window to pending_buf.
- */
-local block_state deflate_stored(s, flush)
- deflate_state *s;
- int flush;
-{
- /* Stored blocks are limited to 0xffff bytes, pending_buf is limited
- * to pending_buf_size, and each stored block has a 5 byte header:
- */
- ulg max_block_size = 0xffff;
- ulg max_start;
-
- if (max_block_size > s->pending_buf_size - 5) {
- max_block_size = s->pending_buf_size - 5;
- }
-
- /* Copy as much as possible from input to output: */
- for (;;) {
- /* Fill the window as much as possible: */
- if (s->lookahead <= 1) {
-
- Assert(s->strstart < s->w_size+MAX_DIST(s) ||
- s->block_start >= (long)s->w_size, "slide too late");
-
- fill_window(s);
- if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more;
-
- if (s->lookahead == 0) break; /* flush the current block */
- }
- Assert(s->block_start >= 0L, "block gone");
-
- s->strstart += s->lookahead;
- s->lookahead = 0;
-
- /* Emit a stored block if pending_buf will be full: */
- max_start = s->block_start + max_block_size;
- if (s->strstart == 0 || (ulg)s->strstart >= max_start) {
- /* strstart == 0 is possible when wraparound on 16-bit machine */
- s->lookahead = (uInt)(s->strstart - max_start);
- s->strstart = (uInt)max_start;
- FLUSH_BLOCK(s, 0);
- }
- /* Flush if we may have to slide, otherwise block_start may become
- * negative and the data will be gone:
- */
- if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) {
- FLUSH_BLOCK(s, 0);
- }
- }
- FLUSH_BLOCK(s, flush == Z_FINISH);
- return flush == Z_FINISH ? finish_done : block_done;
-}
-
-/* ===========================================================================
- * Compress as much as possible from the input stream, return the current
- * block state.
- * This function does not perform lazy evaluation of matches and inserts
- * new strings in the dictionary only for unmatched strings or for short
- * matches. It is used only for the fast compression options.
- */
-local block_state deflate_fast(s, flush)
- deflate_state *s;
- int flush;
-{
- IPos hash_head = NIL; /* head of the hash chain */
- int bflush; /* set if current block must be flushed */
-
- for (;;) {
- /* Make sure that we always have enough lookahead, except
- * at the end of the input file. We need MAX_MATCH bytes
- * for the next match, plus MIN_MATCH bytes to insert the
- * string following the next match.
- */
- if (s->lookahead < MIN_LOOKAHEAD) {
- fill_window(s);
- if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
- return need_more;
- }
- if (s->lookahead == 0) break; /* flush the current block */
- }
-
- /* Insert the string window[strstart .. strstart+2] in the
- * dictionary, and set hash_head to the head of the hash chain:
- */
- if (s->lookahead >= MIN_MATCH) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
-
- /* Find the longest match, discarding those <= prev_length.
- * At this point we have always match_length < MIN_MATCH
- */
- if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) {
- /* To simplify the code, we prevent matches with the string
- * of window index 0 (in particular we have to avoid a match
- * of the string with itself at the start of the input file).
- */
- if (s->strategy != Z_HUFFMAN_ONLY) {
- s->match_length = longest_match (s, hash_head);
- }
- /* longest_match() sets match_start */
- }
- if (s->match_length >= MIN_MATCH) {
- check_match(s, s->strstart, s->match_start, s->match_length);
-
- _tr_tally_dist(s, s->strstart - s->match_start,
- s->match_length - MIN_MATCH, bflush);
-
- s->lookahead -= s->match_length;
-
- /* Insert new strings in the hash table only if the match length
- * is not too large. This saves time but degrades compression.
- */
-#ifndef FASTEST
- if (s->match_length <= s->max_insert_length &&
- s->lookahead >= MIN_MATCH) {
- s->match_length--; /* string at strstart already in hash table */
- do {
- s->strstart++;
- INSERT_STRING(s, s->strstart, hash_head);
- /* strstart never exceeds WSIZE-MAX_MATCH, so there are
- * always MIN_MATCH bytes ahead.
- */
- } while (--s->match_length != 0);
- s->strstart++;
- } else
-#endif
- {
- s->strstart += s->match_length;
- s->match_length = 0;
- s->ins_h = s->window[s->strstart];
- UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]);
-#if MIN_MATCH != 3
- Call UPDATE_HASH() MIN_MATCH-3 more times
-#endif
- /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not
- * matter since it will be recomputed at next deflate call.
- */
- }
- } else {
- /* No match, output a literal byte */
- Tracevv((stderr,"%c", s->window[s->strstart]));
- _tr_tally_lit (s, s->window[s->strstart], bflush);
- s->lookahead--;
- s->strstart++;
- }
- if (bflush) FLUSH_BLOCK(s, 0);
- }
- FLUSH_BLOCK(s, flush == Z_FINISH);
- return flush == Z_FINISH ? finish_done : block_done;
-}
-
-/* ===========================================================================
- * Same as above, but achieves better compression. We use a lazy
- * evaluation for matches: a match is finally adopted only if there is
- * no better match at the next window position.
- */
-local block_state deflate_slow(s, flush)
- deflate_state *s;
- int flush;
-{
- IPos hash_head = NIL; /* head of hash chain */
- int bflush; /* set if current block must be flushed */
-
- /* Process the input block. */
- for (;;) {
- /* Make sure that we always have enough lookahead, except
- * at the end of the input file. We need MAX_MATCH bytes
- * for the next match, plus MIN_MATCH bytes to insert the
- * string following the next match.
- */
- if (s->lookahead < MIN_LOOKAHEAD) {
- fill_window(s);
- if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) {
- return need_more;
- }
- if (s->lookahead == 0) break; /* flush the current block */
- }
-
- /* Insert the string window[strstart .. strstart+2] in the
- * dictionary, and set hash_head to the head of the hash chain:
- */
- if (s->lookahead >= MIN_MATCH) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
-
- /* Find the longest match, discarding those <= prev_length.
- */
- s->prev_length = s->match_length, s->prev_match = s->match_start;
- s->match_length = MIN_MATCH-1;
-
- if (hash_head != NIL && s->prev_length < s->max_lazy_match &&
- s->strstart - hash_head <= MAX_DIST(s)) {
- /* To simplify the code, we prevent matches with the string
- * of window index 0 (in particular we have to avoid a match
- * of the string with itself at the start of the input file).
- */
- if (s->strategy != Z_HUFFMAN_ONLY) {
- s->match_length = longest_match (s, hash_head);
- }
- /* longest_match() sets match_start */
-
- if (s->match_length <= 5 && (s->strategy == Z_FILTERED ||
- (s->match_length == MIN_MATCH &&
- s->strstart - s->match_start > TOO_FAR))) {
-
- /* If prev_match is also MIN_MATCH, match_start is garbage
- * but we will ignore the current match anyway.
- */
- s->match_length = MIN_MATCH-1;
- }
- }
- /* If there was a match at the previous step and the current
- * match is not better, output the previous match:
- */
- if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) {
- uInt max_insert = s->strstart + s->lookahead - MIN_MATCH;
- /* Do not insert strings in hash table beyond this. */
-
- check_match(s, s->strstart-1, s->prev_match, s->prev_length);
-
- _tr_tally_dist(s, s->strstart -1 - s->prev_match,
- s->prev_length - MIN_MATCH, bflush);
-
- /* Insert in hash table all strings up to the end of the match.
- * strstart-1 and strstart are already inserted. If there is not
- * enough lookahead, the last two strings are not inserted in
- * the hash table.
- */
- s->lookahead -= s->prev_length-1;
- s->prev_length -= 2;
- do {
- if (++s->strstart <= max_insert) {
- INSERT_STRING(s, s->strstart, hash_head);
- }
- } while (--s->prev_length != 0);
- s->match_available = 0;
- s->match_length = MIN_MATCH-1;
- s->strstart++;
-
- if (bflush) FLUSH_BLOCK(s, 0);
-
- } else if (s->match_available) {
- /* If there was no match at the previous position, output a
- * single literal. If there was a match but the current match
- * is longer, truncate the previous match to a single literal.
- */
- Tracevv((stderr,"%c", s->window[s->strstart-1]));
- _tr_tally_lit(s, s->window[s->strstart-1], bflush);
- if (bflush) {
- FLUSH_BLOCK_ONLY(s, 0);
- }
- s->strstart++;
- s->lookahead--;
- if (s->strm->avail_out == 0) return need_more;
- } else {
- /* There is no previous match to compare with, wait for
- * the next step to decide.
- */
- s->match_available = 1;
- s->strstart++;
- s->lookahead--;
- }
- }
- Assert (flush != Z_NO_FLUSH, "no flush?");
- if (s->match_available) {
- Tracevv((stderr,"%c", s->window[s->strstart-1]));
- _tr_tally_lit(s, s->window[s->strstart-1], bflush);
- s->match_available = 0;
- }
- FLUSH_BLOCK(s, flush == Z_FINISH);
- return flush == Z_FINISH ? finish_done : block_done;
-}
diff --git a/zlib-1.1.4/deflate.h b/zlib-1.1.4/deflate.h
deleted file mode 100644
index b99a48a..0000000
--- a/zlib-1.1.4/deflate.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/* deflate.h -- internal compression state
- * Copyright (C) 1995-2002 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id$ */
-
-#ifndef _DEFLATE_H
-#define _DEFLATE_H
-
-#include "zutil.h"
-
-/* ===========================================================================
- * Internal compression state.
- */
-
-#define LENGTH_CODES 29
-/* number of length codes, not counting the special END_BLOCK code */
-
-#define LITERALS 256
-/* number of literal bytes 0..255 */
-
-#define L_CODES (LITERALS+1+LENGTH_CODES)
-/* number of Literal or Length codes, including the END_BLOCK code */
-
-#define D_CODES 30
-/* number of distance codes */
-
-#define BL_CODES 19
-/* number of codes used to transfer the bit lengths */
-
-#define HEAP_SIZE (2*L_CODES+1)
-/* maximum heap size */
-
-#define MAX_BITS 15
-/* All codes must not exceed MAX_BITS bits */
-
-#define INIT_STATE 42
-#define BUSY_STATE 113
-#define FINISH_STATE 666
-/* Stream status */
-
-
-/* Data structure describing a single value and its code string. */
-typedef struct ct_data_s {
- union {
- ush freq; /* frequency count */
- ush code; /* bit string */
- } fc;
- union {
- ush dad; /* father node in Huffman tree */
- ush len; /* length of bit string */
- } dl;
-} FAR ct_data;
-
-#define Freq fc.freq
-#define Code fc.code
-#define Dad dl.dad
-#define Len dl.len
-
-typedef struct static_tree_desc_s static_tree_desc;
-
-typedef struct tree_desc_s {
- ct_data *dyn_tree; /* the dynamic tree */
- int max_code; /* largest code with non zero frequency */
- static_tree_desc *stat_desc; /* the corresponding static tree */
-} FAR tree_desc;
-
-typedef ush Pos;
-typedef Pos FAR Posf;
-typedef unsigned IPos;
-
-/* A Pos is an index in the character window. We use short instead of int to
- * save space in the various tables. IPos is used only for parameter passing.
- */
-
-typedef struct internal_state {
- z_streamp strm; /* pointer back to this zlib stream */
- int status; /* as the name implies */
- Bytef *pending_buf; /* output still pending */
- ulg pending_buf_size; /* size of pending_buf */
- Bytef *pending_out; /* next pending byte to output to the stream */
- int pending; /* nb of bytes in the pending buffer */
- int noheader; /* suppress zlib header and adler32 */
- Byte data_type; /* UNKNOWN, BINARY or ASCII */
- Byte method; /* STORED (for zip only) or DEFLATED */
- int last_flush; /* value of flush param for previous deflate call */
-
- /* used by deflate.c: */
-
- uInt w_size; /* LZ77 window size (32K by default) */
- uInt w_bits; /* log2(w_size) (8..16) */
- uInt w_mask; /* w_size - 1 */
-
- Bytef *window;
- /* Sliding window. Input bytes are read into the second half of the window,
- * and move to the first half later to keep a dictionary of at least wSize
- * bytes. With this organization, matches are limited to a distance of
- * wSize-MAX_MATCH bytes, but this ensures that IO is always
- * performed with a length multiple of the block size. Also, it limits
- * the window size to 64K, which is quite useful on MSDOS.
- * To do: use the user input buffer as sliding window.
- */
-
- ulg window_size;
- /* Actual size of window: 2*wSize, except when the user input buffer
- * is directly used as sliding window.
- */
-
- Posf *prev;
- /* Link to older string with same hash index. To limit the size of this
- * array to 64K, this link is maintained only for the last 32K strings.
- * An index in this array is thus a window index modulo 32K.
- */
-
- Posf *head; /* Heads of the hash chains or NIL. */
-
- uInt ins_h; /* hash index of string to be inserted */
- uInt hash_size; /* number of elements in hash table */
- uInt hash_bits; /* log2(hash_size) */
- uInt hash_mask; /* hash_size-1 */
-
- uInt hash_shift;
- /* Number of bits by which ins_h must be shifted at each input
- * step. It must be such that after MIN_MATCH steps, the oldest
- * byte no longer takes part in the hash key, that is:
- * hash_shift * MIN_MATCH >= hash_bits
- */
-
- long block_start;
- /* Window position at the beginning of the current output block. Gets
- * negative when the window is moved backwards.
- */
-
- uInt match_length; /* length of best match */
- IPos prev_match; /* previous match */
- int match_available; /* set if previous match exists */
- uInt strstart; /* start of string to insert */
- uInt match_start; /* start of matching string */
- uInt lookahead; /* number of valid bytes ahead in window */
-
- uInt prev_length;
- /* Length of the best match at previous step. Matches not greater than this
- * are discarded. This is used in the lazy match evaluation.
- */
-
- uInt max_chain_length;
- /* To speed up deflation, hash chains are never searched beyond this
- * length. A higher limit improves compression ratio but degrades the
- * speed.
- */
-
- uInt max_lazy_match;
- /* Attempt to find a better match only when the current match is strictly
- * smaller than this value. This mechanism is used only for compression
- * levels >= 4.
- */
-# define max_insert_length max_lazy_match
- /* Insert new strings in the hash table only if the match length is not
- * greater than this length. This saves time but degrades compression.
- * max_insert_length is used only for compression levels <= 3.
- */
-
- int level; /* compression level (1..9) */
- int strategy; /* favor or force Huffman coding*/
-
- uInt good_match;
- /* Use a faster search when the previous match is longer than this */
-
- int nice_match; /* Stop searching when current match exceeds this */
-
- /* used by trees.c: */
- /* Didn't use ct_data typedef below to supress compiler warning */
- struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */
- struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */
- struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */
-
- struct tree_desc_s l_desc; /* desc. for literal tree */
- struct tree_desc_s d_desc; /* desc. for distance tree */
- struct tree_desc_s bl_desc; /* desc. for bit length tree */
-
- ush bl_count[MAX_BITS+1];
- /* number of codes at each bit length for an optimal tree */
-
- int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */
- int heap_len; /* number of elements in the heap */
- int heap_max; /* element of largest frequency */
- /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.
- * The same heap array is used to build all trees.
- */
-
- uch depth[2*L_CODES+1];
- /* Depth of each subtree used as tie breaker for trees of equal frequency
- */
-
- uchf *l_buf; /* buffer for literals or lengths */
-
- uInt lit_bufsize;
- /* Size of match buffer for literals/lengths. There are 4 reasons for
- * limiting lit_bufsize to 64K:
- * - frequencies can be kept in 16 bit counters
- * - if compression is not successful for the first block, all input
- * data is still in the window so we can still emit a stored block even
- * when input comes from standard input. (This can also be done for
- * all blocks if lit_bufsize is not greater than 32K.)
- * - if compression is not successful for a file smaller than 64K, we can
- * even emit a stored file instead of a stored block (saving 5 bytes).
- * This is applicable only for zip (not gzip or zlib).
- * - creating new Huffman trees less frequently may not provide fast
- * adaptation to changes in the input data statistics. (Take for
- * example a binary file with poorly compressible code followed by
- * a highly compressible string table.) Smaller buffer sizes give
- * fast adaptation but have of course the overhead of transmitting
- * trees more frequently.
- * - I can't count above 4
- */
-
- uInt last_lit; /* running index in l_buf */
-
- ushf *d_buf;
- /* Buffer for distances. To simplify the code, d_buf and l_buf have
- * the same number of elements. To use different lengths, an extra flag
- * array would be necessary.
- */
-
- ulg opt_len; /* bit length of current block with optimal trees */
- ulg static_len; /* bit length of current block with static trees */
- uInt matches; /* number of string matches in current block */
- int last_eob_len; /* bit length of EOB code for last block */
-
-#ifdef DEBUG
- ulg compressed_len; /* total bit length of compressed file mod 2^32 */
- ulg bits_sent; /* bit length of compressed data sent mod 2^32 */
-#endif
-
- ush bi_buf;
- /* Output buffer. bits are inserted starting at the bottom (least
- * significant bits).
- */
- int bi_valid;
- /* Number of valid bits in bi_buf. All bits above the last valid bit
- * are always zero.
- */
-
-} FAR deflate_state;
-
-/* Output a byte on the stream.
- * IN assertion: there is enough room in pending_buf.
- */
-#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);}
-
-
-#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1)
-/* Minimum amount of lookahead, except at the end of the input file.
- * See deflate.c for comments about the MIN_MATCH+1.
- */
-
-#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD)
-/* In order to simplify the code, particularly on 16 bit machines, match
- * distances are limited to MAX_DIST instead of WSIZE.
- */
-
- /* in trees.c */
-void _tr_init OF((deflate_state *s));
-int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc));
-void _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len,
- int eof));
-void _tr_align OF((deflate_state *s));
-void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len,
- int eof));
-
-#define d_code(dist) \
- ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)])
-/* Mapping from a distance to a distance code. dist is the distance - 1 and
- * must not have side effects. _dist_code[256] and _dist_code[257] are never
- * used.
- */
-
-#ifndef DEBUG
-/* Inline versions of _tr_tally for speed: */
-
-#if defined(GEN_TREES_H) || !defined(STDC)
- extern uch _length_code[];
- extern uch _dist_code[];
-#else
- extern const uch _length_code[];
- extern const uch _dist_code[];
-#endif
-
-# define _tr_tally_lit(s, c, flush) \
- { uch cc = (c); \
- s->d_buf[s->last_lit] = 0; \
- s->l_buf[s->last_lit++] = cc; \
- s->dyn_ltree[cc].Freq++; \
- flush = (s->last_lit == s->lit_bufsize-1); \
- }
-# define _tr_tally_dist(s, distance, length, flush) \
- { uch len = (length); \
- ush dist = (distance); \
- s->d_buf[s->last_lit] = dist; \
- s->l_buf[s->last_lit++] = len; \
- dist--; \
- s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
- s->dyn_dtree[d_code(dist)].Freq++; \
- flush = (s->last_lit == s->lit_bufsize-1); \
- }
-#else
-# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
-# define _tr_tally_dist(s, distance, length, flush) \
- flush = _tr_tally(s, distance, length)
-#endif
-
-#endif
diff --git a/zlib-1.1.4/descrip.mms b/zlib-1.1.4/descrip.mms
deleted file mode 100644
index 9d36459..0000000
--- a/zlib-1.1.4/descrip.mms
+++ /dev/null
@@ -1,48 +0,0 @@
-# descrip.mms: MMS description file for building zlib on VMS
-# written by Martin P.J. Zinser <m.zinser@gsi.de>
-
-cc_defs =
-c_deb =
-
-.ifdef __DECC__
-pref = /prefix=all
-.endif
-
-OBJS = adler32.obj, compress.obj, crc32.obj, gzio.obj, uncompr.obj,\
- deflate.obj, trees.obj, zutil.obj, inflate.obj, infblock.obj,\
- inftrees.obj, infcodes.obj, infutil.obj, inffast.obj
-
-CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF)
-
-all : example.exe minigzip.exe
- @ write sys$output " Example applications available"
-libz.olb : libz.olb($(OBJS))
- @ write sys$output " libz available"
-
-example.exe : example.obj libz.olb
- link example,libz.olb/lib
-
-minigzip.exe : minigzip.obj libz.olb
- link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib
-
-clean :
- delete *.obj;*,libz.olb;*
-
-
-# Other dependencies.
-adler32.obj : zutil.h zlib.h zconf.h
-compress.obj : zlib.h zconf.h
-crc32.obj : zutil.h zlib.h zconf.h
-deflate.obj : deflate.h zutil.h zlib.h zconf.h
-example.obj : zlib.h zconf.h
-gzio.obj : zutil.h zlib.h zconf.h
-infblock.obj : zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
-infcodes.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h
-inffast.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
-inflate.obj : zutil.h zlib.h zconf.h infblock.h
-inftrees.obj : zutil.h zlib.h zconf.h inftrees.h
-infutil.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h
-minigzip.obj : zlib.h zconf.h
-trees.obj : deflate.h zutil.h zlib.h zconf.h
-uncompr.obj : zlib.h zconf.h
-zutil.obj : zutil.h zlib.h zconf.h
diff --git a/zlib-1.1.4/example.c b/zlib-1.1.4/example.c
deleted file mode 100644
index e7e3673..0000000
--- a/zlib-1.1.4/example.c
+++ /dev/null
@@ -1,556 +0,0 @@
-/* example.c -- usage example of the zlib compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include <stdio.h>
-#include "zlib.h"
-
-#ifdef STDC
-# include <string.h>
-# include <stdlib.h>
-#else
- extern void exit OF((int));
-#endif
-
-#if defined(VMS) || defined(RISCOS)
-# define TESTFILE "foo-gz"
-#else
-# define TESTFILE "foo.gz"
-#endif
-
-#define CHECK_ERR(err, msg) { \
- if (err != Z_OK) { \
- fprintf(stderr, "%s error: %d\n", msg, err); \
- exit(1); \
- } \
-}
-
-const char hello[] = "hello, hello!";
-/* "hello world" would be more standard, but the repeated "hello"
- * stresses the compression code better, sorry...
- */
-
-const char dictionary[] = "hello";
-uLong dictId; /* Adler32 value of the dictionary */
-
-void test_compress OF((Byte *compr, uLong comprLen,
- Byte *uncompr, uLong uncomprLen));
-void test_gzio OF((const char *out, const char *in,
- Byte *uncompr, int uncomprLen));
-void test_deflate OF((Byte *compr, uLong comprLen));
-void test_inflate OF((Byte *compr, uLong comprLen,
- Byte *uncompr, uLong uncomprLen));
-void test_large_deflate OF((Byte *compr, uLong comprLen,
- Byte *uncompr, uLong uncomprLen));
-void test_large_inflate OF((Byte *compr, uLong comprLen,
- Byte *uncompr, uLong uncomprLen));
-void test_flush OF((Byte *compr, uLong *comprLen));
-void test_sync OF((Byte *compr, uLong comprLen,
- Byte *uncompr, uLong uncomprLen));
-void test_dict_deflate OF((Byte *compr, uLong comprLen));
-void test_dict_inflate OF((Byte *compr, uLong comprLen,
- Byte *uncompr, uLong uncomprLen));
-int main OF((int argc, char *argv[]));
-
-/* ===========================================================================
- * Test compress() and uncompress()
- */
-void test_compress(compr, comprLen, uncompr, uncomprLen)
- Byte *compr, *uncompr;
- uLong comprLen, uncomprLen;
-{
- int err;
- uLong len = strlen(hello)+1;
-
- err = compress(compr, &comprLen, (const Bytef*)hello, len);
- CHECK_ERR(err, "compress");
-
- strcpy((char*)uncompr, "garbage");
-
- err = uncompress(uncompr, &uncomprLen, compr, comprLen);
- CHECK_ERR(err, "uncompress");
-
- if (strcmp((char*)uncompr, hello)) {
- fprintf(stderr, "bad uncompress\n");
- exit(1);
- } else {
- printf("uncompress(): %s\n", (char *)uncompr);
- }
-}
-
-/* ===========================================================================
- * Test read/write of .gz files
- */
-void test_gzio(out, in, uncompr, uncomprLen)
- const char *out; /* compressed output file */
- const char *in; /* compressed input file */
- Byte *uncompr;
- int uncomprLen;
-{
- int err;
- int len = strlen(hello)+1;
- gzFile file;
- z_off_t pos;
-
- file = gzopen(out, "wb");
- if (file == NULL) {
- fprintf(stderr, "gzopen error\n");
- exit(1);
- }
- gzputc(file, 'h');
- if (gzputs(file, "ello") != 4) {
- fprintf(stderr, "gzputs err: %s\n", gzerror(file, &err));
- exit(1);
- }
- if (gzprintf(file, ", %s!", "hello") != 8) {
- fprintf(stderr, "gzprintf err: %s\n", gzerror(file, &err));
- exit(1);
- }
- gzseek(file, 1L, SEEK_CUR); /* add one zero byte */
- gzclose(file);
-
- file = gzopen(in, "rb");
- if (file == NULL) {
- fprintf(stderr, "gzopen error\n");
- }
- strcpy((char*)uncompr, "garbage");
-
- uncomprLen = gzread(file, uncompr, (unsigned)uncomprLen);
- if (uncomprLen != len) {
- fprintf(stderr, "gzread err: %s\n", gzerror(file, &err));
- exit(1);
- }
- if (strcmp((char*)uncompr, hello)) {
- fprintf(stderr, "bad gzread: %s\n", (char*)uncompr);
- exit(1);
- } else {
- printf("gzread(): %s\n", (char *)uncompr);
- }
-
- pos = gzseek(file, -8L, SEEK_CUR);
- if (pos != 6 || gztell(file) != pos) {
- fprintf(stderr, "gzseek error, pos=%ld, gztell=%ld\n",
- (long)pos, (long)gztell(file));
- exit(1);
- }
-
- if (gzgetc(file) != ' ') {
- fprintf(stderr, "gzgetc error\n");
- exit(1);
- }
-
- gzgets(file, (char*)uncompr, uncomprLen);
- uncomprLen = strlen((char*)uncompr);
- if (uncomprLen != 6) { /* "hello!" */
- fprintf(stderr, "gzgets err after gzseek: %s\n", gzerror(file, &err));
- exit(1);
- }
- if (strcmp((char*)uncompr, hello+7)) {
- fprintf(stderr, "bad gzgets after gzseek\n");
- exit(1);
- } else {
- printf("gzgets() after gzseek: %s\n", (char *)uncompr);
- }
-
- gzclose(file);
-}
-
-/* ===========================================================================
- * Test deflate() with small buffers
- */
-void test_deflate(compr, comprLen)
- Byte *compr;
- uLong comprLen;
-{
- z_stream c_stream; /* compression stream */
- int err;
- int len = strlen(hello)+1;
-
- c_stream.zalloc = (alloc_func)0;
- c_stream.zfree = (free_func)0;
- c_stream.opaque = (voidpf)0;
-
- err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION);
- CHECK_ERR(err, "deflateInit");
-
- c_stream.next_in = (Bytef*)hello;
- c_stream.next_out = compr;
-
- while (c_stream.total_in != (uLong)len && c_stream.total_out < comprLen) {
- c_stream.avail_in = c_stream.avail_out = 1; /* force small buffers */
- err = deflate(&c_stream, Z_NO_FLUSH);
- CHECK_ERR(err, "deflate");
- }
- /* Finish the stream, still forcing small buffers: */
- for (;;) {
- c_stream.avail_out = 1;
- err = deflate(&c_stream, Z_FINISH);
- if (err == Z_STREAM_END) break;
- CHECK_ERR(err, "deflate");
- }
-
- err = deflateEnd(&c_stream);
- CHECK_ERR(err, "deflateEnd");
-}
-
-/* ===========================================================================
- * Test inflate() with small buffers
- */
-void test_inflate(compr, comprLen, uncompr, uncomprLen)
- Byte *compr, *uncompr;
- uLong comprLen, uncomprLen;
-{
- int err;
- z_stream d_stream; /* decompression stream */
-
- strcpy((char*)uncompr, "garbage");
-
- d_stream.zalloc = (alloc_func)0;
- d_stream.zfree = (free_func)0;
- d_stream.opaque = (voidpf)0;
-
- d_stream.next_in = compr;
- d_stream.avail_in = 0;
- d_stream.next_out = uncompr;
-
- err = inflateInit(&d_stream);
- CHECK_ERR(err, "inflateInit");
-
- while (d_stream.total_out < uncomprLen && d_stream.total_in < comprLen) {
- d_stream.avail_in = d_stream.avail_out = 1; /* force small buffers */
- err = inflate(&d_stream, Z_NO_FLUSH);
- if (err == Z_STREAM_END) break;
- CHECK_ERR(err, "inflate");
- }
-
- err = inflateEnd(&d_stream);
- CHECK_ERR(err, "inflateEnd");
-
- if (strcmp((char*)uncompr, hello)) {
- fprintf(stderr, "bad inflate\n");
- exit(1);
- } else {
- printf("inflate(): %s\n", (char *)uncompr);
- }
-}
-
-/* ===========================================================================
- * Test deflate() with large buffers and dynamic change of compression level
- */
-void test_large_deflate(compr, comprLen, uncompr, uncomprLen)
- Byte *compr, *uncompr;
- uLong comprLen, uncomprLen;
-{
- z_stream c_stream; /* compression stream */
- int err;
-
- c_stream.zalloc = (alloc_func)0;
- c_stream.zfree = (free_func)0;
- c_stream.opaque = (voidpf)0;
-
- err = deflateInit(&c_stream, Z_BEST_SPEED);
- CHECK_ERR(err, "deflateInit");
-
- c_stream.next_out = compr;
- c_stream.avail_out = (uInt)comprLen;
-
- /* At this point, uncompr is still mostly zeroes, so it should compress
- * very well:
- */
- c_stream.next_in = uncompr;
- c_stream.avail_in = (uInt)uncomprLen;
- err = deflate(&c_stream, Z_NO_FLUSH);
- CHECK_ERR(err, "deflate");
- if (c_stream.avail_in != 0) {
- fprintf(stderr, "deflate not greedy\n");
- exit(1);
- }
-
- /* Feed in already compressed data and switch to no compression: */
- deflateParams(&c_stream, Z_NO_COMPRESSION, Z_DEFAULT_STRATEGY);
- c_stream.next_in = compr;
- c_stream.avail_in = (uInt)comprLen/2;
- err = deflate(&c_stream, Z_NO_FLUSH);
- CHECK_ERR(err, "deflate");
-
- /* Switch back to compressing mode: */
- deflateParams(&c_stream, Z_BEST_COMPRESSION, Z_FILTERED);
- c_stream.next_in = uncompr;
- c_stream.avail_in = (uInt)uncomprLen;
- err = deflate(&c_stream, Z_NO_FLUSH);
- CHECK_ERR(err, "deflate");
-
- err = deflate(&c_stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- fprintf(stderr, "deflate should report Z_STREAM_END\n");
- exit(1);
- }
- err = deflateEnd(&c_stream);
- CHECK_ERR(err, "deflateEnd");
-}
-
-/* ===========================================================================
- * Test inflate() with large buffers
- */
-void test_large_inflate(compr, comprLen, uncompr, uncomprLen)
- Byte *compr, *uncompr;
- uLong comprLen, uncomprLen;
-{
- int err;
- z_stream d_stream; /* decompression stream */
-
- strcpy((char*)uncompr, "garbage");
-
- d_stream.zalloc = (alloc_func)0;
- d_stream.zfree = (free_func)0;
- d_stream.opaque = (voidpf)0;
-
- d_stream.next_in = compr;
- d_stream.avail_in = (uInt)comprLen;
-
- err = inflateInit(&d_stream);
- CHECK_ERR(err, "inflateInit");
-
- for (;;) {
- d_stream.next_out = uncompr; /* discard the output */
- d_stream.avail_out = (uInt)uncomprLen;
- err = inflate(&d_stream, Z_NO_FLUSH);
- if (err == Z_STREAM_END) break;
- CHECK_ERR(err, "large inflate");
- }
-
- err = inflateEnd(&d_stream);
- CHECK_ERR(err, "inflateEnd");
-
- if (d_stream.total_out != 2*uncomprLen + comprLen/2) {
- fprintf(stderr, "bad large inflate: %ld\n", d_stream.total_out);
- exit(1);
- } else {
- printf("large_inflate(): OK\n");
- }
-}
-
-/* ===========================================================================
- * Test deflate() with full flush
- */
-void test_flush(compr, comprLen)
- Byte *compr;
- uLong *comprLen;
-{
- z_stream c_stream; /* compression stream */
- int err;
- int len = strlen(hello)+1;
-
- c_stream.zalloc = (alloc_func)0;
- c_stream.zfree = (free_func)0;
- c_stream.opaque = (voidpf)0;
-
- err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION);
- CHECK_ERR(err, "deflateInit");
-
- c_stream.next_in = (Bytef*)hello;
- c_stream.next_out = compr;
- c_stream.avail_in = 3;
- c_stream.avail_out = (uInt)*comprLen;
- err = deflate(&c_stream, Z_FULL_FLUSH);
- CHECK_ERR(err, "deflate");
-
- compr[3]++; /* force an error in first compressed block */
- c_stream.avail_in = len - 3;
-
- err = deflate(&c_stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- CHECK_ERR(err, "deflate");
- }
- err = deflateEnd(&c_stream);
- CHECK_ERR(err, "deflateEnd");
-
- *comprLen = c_stream.total_out;
-}
-
-/* ===========================================================================
- * Test inflateSync()
- */
-void test_sync(compr, comprLen, uncompr, uncomprLen)
- Byte *compr, *uncompr;
- uLong comprLen, uncomprLen;
-{
- int err;
- z_stream d_stream; /* decompression stream */
-
- strcpy((char*)uncompr, "garbage");
-
- d_stream.zalloc = (alloc_func)0;
- d_stream.zfree = (free_func)0;
- d_stream.opaque = (voidpf)0;
-
- d_stream.next_in = compr;
- d_stream.avail_in = 2; /* just read the zlib header */
-
- err = inflateInit(&d_stream);
- CHECK_ERR(err, "inflateInit");
-
- d_stream.next_out = uncompr;
- d_stream.avail_out = (uInt)uncomprLen;
-
- inflate(&d_stream, Z_NO_FLUSH);
- CHECK_ERR(err, "inflate");
-
- d_stream.avail_in = (uInt)comprLen-2; /* read all compressed data */
- err = inflateSync(&d_stream); /* but skip the damaged part */
- CHECK_ERR(err, "inflateSync");
-
- err = inflate(&d_stream, Z_FINISH);
- if (err != Z_DATA_ERROR) {
- fprintf(stderr, "inflate should report DATA_ERROR\n");
- /* Because of incorrect adler32 */
- exit(1);
- }
- err = inflateEnd(&d_stream);
- CHECK_ERR(err, "inflateEnd");
-
- printf("after inflateSync(): hel%s\n", (char *)uncompr);
-}
-
-/* ===========================================================================
- * Test deflate() with preset dictionary
- */
-void test_dict_deflate(compr, comprLen)
- Byte *compr;
- uLong comprLen;
-{
- z_stream c_stream; /* compression stream */
- int err;
-
- c_stream.zalloc = (alloc_func)0;
- c_stream.zfree = (free_func)0;
- c_stream.opaque = (voidpf)0;
-
- err = deflateInit(&c_stream, Z_BEST_COMPRESSION);
- CHECK_ERR(err, "deflateInit");
-
- err = deflateSetDictionary(&c_stream,
- (const Bytef*)dictionary, sizeof(dictionary));
- CHECK_ERR(err, "deflateSetDictionary");
-
- dictId = c_stream.adler;
- c_stream.next_out = compr;
- c_stream.avail_out = (uInt)comprLen;
-
- c_stream.next_in = (Bytef*)hello;
- c_stream.avail_in = (uInt)strlen(hello)+1;
-
- err = deflate(&c_stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- fprintf(stderr, "deflate should report Z_STREAM_END\n");
- exit(1);
- }
- err = deflateEnd(&c_stream);
- CHECK_ERR(err, "deflateEnd");
-}
-
-/* ===========================================================================
- * Test inflate() with a preset dictionary
- */
-void test_dict_inflate(compr, comprLen, uncompr, uncomprLen)
- Byte *compr, *uncompr;
- uLong comprLen, uncomprLen;
-{
- int err;
- z_stream d_stream; /* decompression stream */
-
- strcpy((char*)uncompr, "garbage");
-
- d_stream.zalloc = (alloc_func)0;
- d_stream.zfree = (free_func)0;
- d_stream.opaque = (voidpf)0;
-
- d_stream.next_in = compr;
- d_stream.avail_in = (uInt)comprLen;
-
- err = inflateInit(&d_stream);
- CHECK_ERR(err, "inflateInit");
-
- d_stream.next_out = uncompr;
- d_stream.avail_out = (uInt)uncomprLen;
-
- for (;;) {
- err = inflate(&d_stream, Z_NO_FLUSH);
- if (err == Z_STREAM_END) break;
- if (err == Z_NEED_DICT) {
- if (d_stream.adler != dictId) {
- fprintf(stderr, "unexpected dictionary");
- exit(1);
- }
- err = inflateSetDictionary(&d_stream, (const Bytef*)dictionary,
- sizeof(dictionary));
- }
- CHECK_ERR(err, "inflate with dict");
- }
-
- err = inflateEnd(&d_stream);
- CHECK_ERR(err, "inflateEnd");
-
- if (strcmp((char*)uncompr, hello)) {
- fprintf(stderr, "bad inflate with dict\n");
- exit(1);
- } else {
- printf("inflate with dictionary: %s\n", (char *)uncompr);
- }
-}
-
-/* ===========================================================================
- * Usage: example [output.gz [input.gz]]
- */
-
-int main(argc, argv)
- int argc;
- char *argv[];
-{
- Byte *compr, *uncompr;
- uLong comprLen = 10000*sizeof(int); /* don't overflow on MSDOS */
- uLong uncomprLen = comprLen;
- static const char* myVersion = ZLIB_VERSION;
-
- if (zlibVersion()[0] != myVersion[0]) {
- fprintf(stderr, "incompatible zlib version\n");
- exit(1);
-
- } else if (strcmp(zlibVersion(), ZLIB_VERSION) != 0) {
- fprintf(stderr, "warning: different zlib version\n");
- }
-
- compr = (Byte*)calloc((uInt)comprLen, 1);
- uncompr = (Byte*)calloc((uInt)uncomprLen, 1);
- /* compr and uncompr are cleared to avoid reading uninitialized
- * data and to ensure that uncompr compresses well.
- */
- if (compr == Z_NULL || uncompr == Z_NULL) {
- printf("out of memory\n");
- exit(1);
- }
- test_compress(compr, comprLen, uncompr, uncomprLen);
-
- test_gzio((argc > 1 ? argv[1] : TESTFILE),
- (argc > 2 ? argv[2] : TESTFILE),
- uncompr, (int)uncomprLen);
-
- test_deflate(compr, comprLen);
- test_inflate(compr, comprLen, uncompr, uncomprLen);
-
- test_large_deflate(compr, comprLen, uncompr, uncomprLen);
- test_large_inflate(compr, comprLen, uncompr, uncomprLen);
-
- test_flush(compr, &comprLen);
- test_sync(compr, comprLen, uncompr, uncomprLen);
- comprLen = uncomprLen;
-
- test_dict_deflate(compr, comprLen);
- test_dict_inflate(compr, comprLen, uncompr, uncomprLen);
-
- exit(0);
- return 0; /* to avoid warning */
-}
diff --git a/zlib-1.1.4/gzio.c b/zlib-1.1.4/gzio.c
deleted file mode 100644
index 09e0a20..0000000
--- a/zlib-1.1.4/gzio.c
+++ /dev/null
@@ -1,875 +0,0 @@
-/* gzio.c -- IO on .gz files
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- *
- * Compile this file with -DNO_DEFLATE to avoid the compression code.
- */
-
-/* @(#) $Id$ */
-
-#include <stdio.h>
-
-#include "zutil.h"
-
-struct internal_state {int dummy;}; /* for buggy compilers */
-
-#ifndef Z_BUFSIZE
-# ifdef MAXSEG_64K
-# define Z_BUFSIZE 4096 /* minimize memory usage for 16-bit DOS */
-# else
-# define Z_BUFSIZE 16384
-# endif
-#endif
-#ifndef Z_PRINTF_BUFSIZE
-# define Z_PRINTF_BUFSIZE 4096
-#endif
-
-#define ALLOC(size) malloc(size)
-#define TRYFREE(p) {if (p) free(p);}
-
-static int gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */
-
-/* gzip flag byte */
-#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */
-#define HEAD_CRC 0x02 /* bit 1 set: header CRC present */
-#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */
-#define ORIG_NAME 0x08 /* bit 3 set: original file name present */
-#define COMMENT 0x10 /* bit 4 set: file comment present */
-#define RESERVED 0xE0 /* bits 5..7: reserved */
-
-typedef struct gz_stream {
- z_stream stream;
- int z_err; /* error code for last stream operation */
- int z_eof; /* set if end of input file */
- FILE *file; /* .gz file */
- Byte *inbuf; /* input buffer */
- Byte *outbuf; /* output buffer */
- uLong crc; /* crc32 of uncompressed data */
- char *msg; /* error message */
- char *path; /* path name for debugging only */
- int transparent; /* 1 if input file is not a .gz file */
- char mode; /* 'w' or 'r' */
- long startpos; /* start of compressed data in file (header skipped) */
-} gz_stream;
-
-
-local gzFile gz_open OF((const char *path, const char *mode, int fd));
-local int do_flush OF((gzFile file, int flush));
-local int get_byte OF((gz_stream *s));
-local void check_header OF((gz_stream *s));
-local int destroy OF((gz_stream *s));
-local void putLong OF((FILE *file, uLong x));
-local uLong getLong OF((gz_stream *s));
-
-/* ===========================================================================
- Opens a gzip (.gz) file for reading or writing. The mode parameter
- is as in fopen ("rb" or "wb"). The file is given either by file descriptor
- or path name (if fd == -1).
- gz_open return NULL if the file could not be opened or if there was
- insufficient memory to allocate the (de)compression state; errno
- can be checked to distinguish the two cases (if errno is zero, the
- zlib error is Z_MEM_ERROR).
-*/
-local gzFile gz_open (path, mode, fd)
- const char *path;
- const char *mode;
- int fd;
-{
- int err;
- int level = Z_DEFAULT_COMPRESSION; /* compression level */
- int strategy = Z_DEFAULT_STRATEGY; /* compression strategy */
- char *p = (char*)mode;
- gz_stream *s;
- char fmode[80]; /* copy of mode, without the compression level */
- char *m = fmode;
-
- if (!path || !mode) return Z_NULL;
-
- s = (gz_stream *)ALLOC(sizeof(gz_stream));
- if (!s) return Z_NULL;
-
- s->stream.zalloc = (alloc_func)0;
- s->stream.zfree = (free_func)0;
- s->stream.opaque = (voidpf)0;
- s->stream.next_in = s->inbuf = Z_NULL;
- s->stream.next_out = s->outbuf = Z_NULL;
- s->stream.avail_in = s->stream.avail_out = 0;
- s->file = NULL;
- s->z_err = Z_OK;
- s->z_eof = 0;
- s->crc = crc32(0L, Z_NULL, 0);
- s->msg = NULL;
- s->transparent = 0;
-
- s->path = (char*)ALLOC(strlen(path)+1);
- if (s->path == NULL) {
- return destroy(s), (gzFile)Z_NULL;
- }
- strcpy(s->path, path); /* do this early for debugging */
-
- s->mode = '\0';
- do {
- if (*p == 'r') s->mode = 'r';
- if (*p == 'w' || *p == 'a') s->mode = 'w';
- if (*p >= '0' && *p <= '9') {
- level = *p - '0';
- } else if (*p == 'f') {
- strategy = Z_FILTERED;
- } else if (*p == 'h') {
- strategy = Z_HUFFMAN_ONLY;
- } else {
- *m++ = *p; /* copy the mode */
- }
- } while (*p++ && m != fmode + sizeof(fmode));
- if (s->mode == '\0') return destroy(s), (gzFile)Z_NULL;
-
- if (s->mode == 'w') {
-#ifdef NO_DEFLATE
- err = Z_STREAM_ERROR;
-#else
- err = deflateInit2(&(s->stream), level,
- Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, strategy);
- /* windowBits is passed < 0 to suppress zlib header */
-
- s->stream.next_out = s->outbuf = (Byte*)ALLOC(Z_BUFSIZE);
-#endif
- if (err != Z_OK || s->outbuf == Z_NULL) {
- return destroy(s), (gzFile)Z_NULL;
- }
- } else {
- s->stream.next_in = s->inbuf = (Byte*)ALLOC(Z_BUFSIZE);
-
- err = inflateInit2(&(s->stream), -MAX_WBITS);
- /* windowBits is passed < 0 to tell that there is no zlib header.
- * Note that in this case inflate *requires* an extra "dummy" byte
- * after the compressed stream in order to complete decompression and
- * return Z_STREAM_END. Here the gzip CRC32 ensures that 4 bytes are
- * present after the compressed stream.
- */
- if (err != Z_OK || s->inbuf == Z_NULL) {
- return destroy(s), (gzFile)Z_NULL;
- }
- }
- s->stream.avail_out = Z_BUFSIZE;
-
- errno = 0;
- s->file = fd < 0 ? F_OPEN(path, fmode) : (FILE*)fdopen(fd, fmode);
-
- if (s->file == NULL) {
- return destroy(s), (gzFile)Z_NULL;
- }
- if (s->mode == 'w') {
- /* Write a very simple .gz header:
- */
- fprintf(s->file, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1],
- Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, OS_CODE);
- s->startpos = 10L;
- /* We use 10L instead of ftell(s->file) to because ftell causes an
- * fflush on some systems. This version of the library doesn't use
- * startpos anyway in write mode, so this initialization is not
- * necessary.
- */
- } else {
- check_header(s); /* skip the .gz header */
- s->startpos = (ftell(s->file) - s->stream.avail_in);
- }
-
- return (gzFile)s;
-}
-
-/* ===========================================================================
- Opens a gzip (.gz) file for reading or writing.
-*/
-gzFile ZEXPORT gzopen (path, mode)
- const char *path;
- const char *mode;
-{
- return gz_open (path, mode, -1);
-}
-
-/* ===========================================================================
- Associate a gzFile with the file descriptor fd. fd is not dup'ed here
- to mimic the behavio(u)r of fdopen.
-*/
-gzFile ZEXPORT gzdopen (fd, mode)
- int fd;
- const char *mode;
-{
- char name[20];
-
- if (fd < 0) return (gzFile)Z_NULL;
- sprintf(name, "<fd:%d>", fd); /* for debugging */
-
- return gz_open (name, mode, fd);
-}
-
-/* ===========================================================================
- * Update the compression level and strategy
- */
-int ZEXPORT gzsetparams (file, level, strategy)
- gzFile file;
- int level;
- int strategy;
-{
- gz_stream *s = (gz_stream*)file;
-
- if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;
-
- /* Make room to allow flushing */
- if (s->stream.avail_out == 0) {
-
- s->stream.next_out = s->outbuf;
- if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) {
- s->z_err = Z_ERRNO;
- }
- s->stream.avail_out = Z_BUFSIZE;
- }
-
- return deflateParams (&(s->stream), level, strategy);
-}
-
-/* ===========================================================================
- Read a byte from a gz_stream; update next_in and avail_in. Return EOF
- for end of file.
- IN assertion: the stream s has been sucessfully opened for reading.
-*/
-local int get_byte(s)
- gz_stream *s;
-{
- if (s->z_eof) return EOF;
- if (s->stream.avail_in == 0) {
- errno = 0;
- s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);
- if (s->stream.avail_in == 0) {
- s->z_eof = 1;
- if (ferror(s->file)) s->z_err = Z_ERRNO;
- return EOF;
- }
- s->stream.next_in = s->inbuf;
- }
- s->stream.avail_in--;
- return *(s->stream.next_in)++;
-}
-
-/* ===========================================================================
- Check the gzip header of a gz_stream opened for reading. Set the stream
- mode to transparent if the gzip magic header is not present; set s->err
- to Z_DATA_ERROR if the magic header is present but the rest of the header
- is incorrect.
- IN assertion: the stream s has already been created sucessfully;
- s->stream.avail_in is zero for the first time, but may be non-zero
- for concatenated .gz files.
-*/
-local void check_header(s)
- gz_stream *s;
-{
- int method; /* method byte */
- int flags; /* flags byte */
- uInt len;
- int c;
-
- /* Check the gzip magic header */
- for (len = 0; len < 2; len++) {
- c = get_byte(s);
- if (c != gz_magic[len]) {
- if (len != 0) s->stream.avail_in++, s->stream.next_in--;
- if (c != EOF) {
- s->stream.avail_in++, s->stream.next_in--;
- s->transparent = 1;
- }
- s->z_err = s->stream.avail_in != 0 ? Z_OK : Z_STREAM_END;
- return;
- }
- }
- method = get_byte(s);
- flags = get_byte(s);
- if (method != Z_DEFLATED || (flags & RESERVED) != 0) {
- s->z_err = Z_DATA_ERROR;
- return;
- }
-
- /* Discard time, xflags and OS code: */
- for (len = 0; len < 6; len++) (void)get_byte(s);
-
- if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */
- len = (uInt)get_byte(s);
- len += ((uInt)get_byte(s))<<8;
- /* len is garbage if EOF but the loop below will quit anyway */
- while (len-- != 0 && get_byte(s) != EOF) ;
- }
- if ((flags & ORIG_NAME) != 0) { /* skip the original file name */
- while ((c = get_byte(s)) != 0 && c != EOF) ;
- }
- if ((flags & COMMENT) != 0) { /* skip the .gz file comment */
- while ((c = get_byte(s)) != 0 && c != EOF) ;
- }
- if ((flags & HEAD_CRC) != 0) { /* skip the header crc */
- for (len = 0; len < 2; len++) (void)get_byte(s);
- }
- s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK;
-}
-
- /* ===========================================================================
- * Cleanup then free the given gz_stream. Return a zlib error code.
- Try freeing in the reverse order of allocations.
- */
-local int destroy (s)
- gz_stream *s;
-{
- int err = Z_OK;
-
- if (!s) return Z_STREAM_ERROR;
-
- TRYFREE(s->msg);
-
- if (s->stream.state != NULL) {
- if (s->mode == 'w') {
-#ifdef NO_DEFLATE
- err = Z_STREAM_ERROR;
-#else
- err = deflateEnd(&(s->stream));
-#endif
- } else if (s->mode == 'r') {
- err = inflateEnd(&(s->stream));
- }
- }
- if (s->file != NULL && fclose(s->file)) {
-#ifdef ESPIPE
- if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */
-#endif
- err = Z_ERRNO;
- }
- if (s->z_err < 0) err = s->z_err;
-
- TRYFREE(s->inbuf);
- TRYFREE(s->outbuf);
- TRYFREE(s->path);
- TRYFREE(s);
- return err;
-}
-
-/* ===========================================================================
- Reads the given number of uncompressed bytes from the compressed file.
- gzread returns the number of bytes actually read (0 for end of file).
-*/
-int ZEXPORT gzread (file, buf, len)
- gzFile file;
- voidp buf;
- unsigned len;
-{
- gz_stream *s = (gz_stream*)file;
- Bytef *start = (Bytef*)buf; /* starting point for crc computation */
- Byte *next_out; /* == stream.next_out but not forced far (for MSDOS) */
-
- if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR;
-
- if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1;
- if (s->z_err == Z_STREAM_END) return 0; /* EOF */
-
- next_out = (Byte*)buf;
- s->stream.next_out = (Bytef*)buf;
- s->stream.avail_out = len;
-
- while (s->stream.avail_out != 0) {
-
- if (s->transparent) {
- /* Copy first the lookahead bytes: */
- uInt n = s->stream.avail_in;
- if (n > s->stream.avail_out) n = s->stream.avail_out;
- if (n > 0) {
- zmemcpy(s->stream.next_out, s->stream.next_in, n);
- next_out += n;
- s->stream.next_out = next_out;
- s->stream.next_in += n;
- s->stream.avail_out -= n;
- s->stream.avail_in -= n;
- }
- if (s->stream.avail_out > 0) {
- s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out,
- s->file);
- }
- len -= s->stream.avail_out;
- s->stream.total_in += (uLong)len;
- s->stream.total_out += (uLong)len;
- if (len == 0) s->z_eof = 1;
- return (int)len;
- }
- if (s->stream.avail_in == 0 && !s->z_eof) {
-
- errno = 0;
- s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);
- if (s->stream.avail_in == 0) {
- s->z_eof = 1;
- if (ferror(s->file)) {
- s->z_err = Z_ERRNO;
- break;
- }
- }
- s->stream.next_in = s->inbuf;
- }
- s->z_err = inflate(&(s->stream), Z_NO_FLUSH);
-
- if (s->z_err == Z_STREAM_END) {
- /* Check CRC and original size */
- s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));
- start = s->stream.next_out;
-
- if (getLong(s) != s->crc) {
- s->z_err = Z_DATA_ERROR;
- } else {
- (void)getLong(s);
- /* The uncompressed length returned by above getlong() may
- * be different from s->stream.total_out) in case of
- * concatenated .gz files. Check for such files:
- */
- check_header(s);
- if (s->z_err == Z_OK) {
- uLong total_in = s->stream.total_in;
- uLong total_out = s->stream.total_out;
-
- inflateReset(&(s->stream));
- s->stream.total_in = total_in;
- s->stream.total_out = total_out;
- s->crc = crc32(0L, Z_NULL, 0);
- }
- }
- }
- if (s->z_err != Z_OK || s->z_eof) break;
- }
- s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));
-
- return (int)(len - s->stream.avail_out);
-}
-
-
-/* ===========================================================================
- Reads one byte from the compressed file. gzgetc returns this byte
- or -1 in case of end of file or error.
-*/
-int ZEXPORT gzgetc(file)
- gzFile file;
-{
- unsigned char c;
-
- return gzread(file, &c, 1) == 1 ? c : -1;
-}
-
-
-/* ===========================================================================
- Reads bytes from the compressed file until len-1 characters are
- read, or a newline character is read and transferred to buf, or an
- end-of-file condition is encountered. The string is then terminated
- with a null character.
- gzgets returns buf, or Z_NULL in case of error.
-
- The current implementation is not optimized at all.
-*/
-char * ZEXPORT gzgets(file, buf, len)
- gzFile file;
- char *buf;
- int len;
-{
- char *b = buf;
- if (buf == Z_NULL || len <= 0) return Z_NULL;
-
- while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ;
- *buf = '\0';
- return b == buf && len > 0 ? Z_NULL : b;
-}
-
-
-#ifndef NO_DEFLATE
-/* ===========================================================================
- Writes the given number of uncompressed bytes into the compressed file.
- gzwrite returns the number of bytes actually written (0 in case of error).
-*/
-int ZEXPORT gzwrite (file, buf, len)
- gzFile file;
- const voidp buf;
- unsigned len;
-{
- gz_stream *s = (gz_stream*)file;
-
- if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;
-
- s->stream.next_in = (Bytef*)buf;
- s->stream.avail_in = len;
-
- while (s->stream.avail_in != 0) {
-
- if (s->stream.avail_out == 0) {
-
- s->stream.next_out = s->outbuf;
- if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) {
- s->z_err = Z_ERRNO;
- break;
- }
- s->stream.avail_out = Z_BUFSIZE;
- }
- s->z_err = deflate(&(s->stream), Z_NO_FLUSH);
- if (s->z_err != Z_OK) break;
- }
- s->crc = crc32(s->crc, (const Bytef *)buf, len);
-
- return (int)(len - s->stream.avail_in);
-}
-
-/* ===========================================================================
- Converts, formats, and writes the args to the compressed file under
- control of the format string, as in fprintf. gzprintf returns the number of
- uncompressed bytes actually written (0 in case of error).
-*/
-#ifdef STDC
-#include <stdarg.h>
-
-int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...)
-{
- char buf[Z_PRINTF_BUFSIZE];
- va_list va;
- int len;
-
- va_start(va, format);
-#ifdef HAS_vsnprintf
- (void)vsnprintf(buf, sizeof(buf), format, va);
-#else
- (void)vsprintf(buf, format, va);
-#endif
- va_end(va);
- len = strlen(buf); /* some *sprintf don't return the nb of bytes written */
- if (len <= 0) return 0;
-
- return gzwrite(file, buf, (unsigned)len);
-}
-#else /* not ANSI C */
-
-int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
- a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
- gzFile file;
- const char *format;
- int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
- a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
-{
- char buf[Z_PRINTF_BUFSIZE];
- int len;
-
-#ifdef HAS_snprintf
- snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,
- a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-#else
- sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,
- a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-#endif
- len = strlen(buf); /* old sprintf doesn't return the nb of bytes written */
- if (len <= 0) return 0;
-
- return gzwrite(file, buf, len);
-}
-#endif
-
-/* ===========================================================================
- Writes c, converted to an unsigned char, into the compressed file.
- gzputc returns the value that was written, or -1 in case of error.
-*/
-int ZEXPORT gzputc(file, c)
- gzFile file;
- int c;
-{
- unsigned char cc = (unsigned char) c; /* required for big endian systems */
-
- return gzwrite(file, &cc, 1) == 1 ? (int)cc : -1;
-}
-
-
-/* ===========================================================================
- Writes the given null-terminated string to the compressed file, excluding
- the terminating null character.
- gzputs returns the number of characters written, or -1 in case of error.
-*/
-int ZEXPORT gzputs(file, s)
- gzFile file;
- const char *s;
-{
- return gzwrite(file, (char*)s, (unsigned)strlen(s));
-}
-
-
-/* ===========================================================================
- Flushes all pending output into the compressed file. The parameter
- flush is as in the deflate() function.
-*/
-local int do_flush (file, flush)
- gzFile file;
- int flush;
-{
- uInt len;
- int done = 0;
- gz_stream *s = (gz_stream*)file;
-
- if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;
-
- s->stream.avail_in = 0; /* should be zero already anyway */
-
- for (;;) {
- len = Z_BUFSIZE - s->stream.avail_out;
-
- if (len != 0) {
- if ((uInt)fwrite(s->outbuf, 1, len, s->file) != len) {
- s->z_err = Z_ERRNO;
- return Z_ERRNO;
- }
- s->stream.next_out = s->outbuf;
- s->stream.avail_out = Z_BUFSIZE;
- }
- if (done) break;
- s->z_err = deflate(&(s->stream), flush);
-
- /* Ignore the second of two consecutive flushes: */
- if (len == 0 && s->z_err == Z_BUF_ERROR) s->z_err = Z_OK;
-
- /* deflate has finished flushing only when it hasn't used up
- * all the available space in the output buffer:
- */
- done = (s->stream.avail_out != 0 || s->z_err == Z_STREAM_END);
-
- if (s->z_err != Z_OK && s->z_err != Z_STREAM_END) break;
- }
- return s->z_err == Z_STREAM_END ? Z_OK : s->z_err;
-}
-
-int ZEXPORT gzflush (file, flush)
- gzFile file;
- int flush;
-{
- gz_stream *s = (gz_stream*)file;
- int err = do_flush (file, flush);
-
- if (err) return err;
- fflush(s->file);
- return s->z_err == Z_STREAM_END ? Z_OK : s->z_err;
-}
-#endif /* NO_DEFLATE */
-
-/* ===========================================================================
- Sets the starting position for the next gzread or gzwrite on the given
- compressed file. The offset represents a number of bytes in the
- gzseek returns the resulting offset location as measured in bytes from
- the beginning of the uncompressed stream, or -1 in case of error.
- SEEK_END is not implemented, returns error.
- In this version of the library, gzseek can be extremely slow.
-*/
-z_off_t ZEXPORT gzseek (file, offset, whence)
- gzFile file;
- z_off_t offset;
- int whence;
-{
- gz_stream *s = (gz_stream*)file;
-
- if (s == NULL || whence == SEEK_END ||
- s->z_err == Z_ERRNO || s->z_err == Z_DATA_ERROR) {
- return -1L;
- }
-
- if (s->mode == 'w') {
-#ifdef NO_DEFLATE
- return -1L;
-#else
- if (whence == SEEK_SET) {
- offset -= s->stream.total_in;
- }
- if (offset < 0) return -1L;
-
- /* At this point, offset is the number of zero bytes to write. */
- if (s->inbuf == Z_NULL) {
- s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); /* for seeking */
- zmemzero(s->inbuf, Z_BUFSIZE);
- }
- while (offset > 0) {
- uInt size = Z_BUFSIZE;
- if (offset < Z_BUFSIZE) size = (uInt)offset;
-
- size = gzwrite(file, s->inbuf, size);
- if (size == 0) return -1L;
-
- offset -= size;
- }
- return (z_off_t)s->stream.total_in;
-#endif
- }
- /* Rest of function is for reading only */
-
- /* compute absolute position */
- if (whence == SEEK_CUR) {
- offset += s->stream.total_out;
- }
- if (offset < 0) return -1L;
-
- if (s->transparent) {
- /* map to fseek */
- s->stream.avail_in = 0;
- s->stream.next_in = s->inbuf;
- if (fseek(s->file, offset, SEEK_SET) < 0) return -1L;
-
- s->stream.total_in = s->stream.total_out = (uLong)offset;
- return offset;
- }
-
- /* For a negative seek, rewind and use positive seek */
- if ((uLong)offset >= s->stream.total_out) {
- offset -= s->stream.total_out;
- } else if (gzrewind(file) < 0) {
- return -1L;
- }
- /* offset is now the number of bytes to skip. */
-
- if (offset != 0 && s->outbuf == Z_NULL) {
- s->outbuf = (Byte*)ALLOC(Z_BUFSIZE);
- }
- while (offset > 0) {
- int size = Z_BUFSIZE;
- if (offset < Z_BUFSIZE) size = (int)offset;
-
- size = gzread(file, s->outbuf, (uInt)size);
- if (size <= 0) return -1L;
- offset -= size;
- }
- return (z_off_t)s->stream.total_out;
-}
-
-/* ===========================================================================
- Rewinds input file.
-*/
-int ZEXPORT gzrewind (file)
- gzFile file;
-{
- gz_stream *s = (gz_stream*)file;
-
- if (s == NULL || s->mode != 'r') return -1;
-
- s->z_err = Z_OK;
- s->z_eof = 0;
- s->stream.avail_in = 0;
- s->stream.next_in = s->inbuf;
- s->crc = crc32(0L, Z_NULL, 0);
-
- if (s->startpos == 0) { /* not a compressed file */
- rewind(s->file);
- return 0;
- }
-
- (void) inflateReset(&s->stream);
- return fseek(s->file, s->startpos, SEEK_SET);
-}
-
-/* ===========================================================================
- Returns the starting position for the next gzread or gzwrite on the
- given compressed file. This position represents a number of bytes in the
- uncompressed data stream.
-*/
-z_off_t ZEXPORT gztell (file)
- gzFile file;
-{
- return gzseek(file, 0L, SEEK_CUR);
-}
-
-/* ===========================================================================
- Returns 1 when EOF has previously been detected reading the given
- input stream, otherwise zero.
-*/
-int ZEXPORT gzeof (file)
- gzFile file;
-{
- gz_stream *s = (gz_stream*)file;
-
- return (s == NULL || s->mode != 'r') ? 0 : s->z_eof;
-}
-
-/* ===========================================================================
- Outputs a long in LSB order to the given file
-*/
-local void putLong (file, x)
- FILE *file;
- uLong x;
-{
- int n;
- for (n = 0; n < 4; n++) {
- fputc((int)(x & 0xff), file);
- x >>= 8;
- }
-}
-
-/* ===========================================================================
- Reads a long in LSB order from the given gz_stream. Sets z_err in case
- of error.
-*/
-local uLong getLong (s)
- gz_stream *s;
-{
- uLong x = (uLong)get_byte(s);
- int c;
-
- x += ((uLong)get_byte(s))<<8;
- x += ((uLong)get_byte(s))<<16;
- c = get_byte(s);
- if (c == EOF) s->z_err = Z_DATA_ERROR;
- x += ((uLong)c)<<24;
- return x;
-}
-
-/* ===========================================================================
- Flushes all pending output if necessary, closes the compressed file
- and deallocates all the (de)compression state.
-*/
-int ZEXPORT gzclose (file)
- gzFile file;
-{
- int err;
- gz_stream *s = (gz_stream*)file;
-
- if (s == NULL) return Z_STREAM_ERROR;
-
- if (s->mode == 'w') {
-#ifdef NO_DEFLATE
- return Z_STREAM_ERROR;
-#else
- err = do_flush (file, Z_FINISH);
- if (err != Z_OK) return destroy((gz_stream*)file);
-
- putLong (s->file, s->crc);
- putLong (s->file, s->stream.total_in);
-#endif
- }
- return destroy((gz_stream*)file);
-}
-
-/* ===========================================================================
- Returns the error message for the last error which occured on the
- given compressed file. errnum is set to zlib error number. If an
- error occured in the file system and not in the compression library,
- errnum is set to Z_ERRNO and the application may consult errno
- to get the exact error code.
-*/
-const char* ZEXPORT gzerror (file, errnum)
- gzFile file;
- int *errnum;
-{
- char *m;
- gz_stream *s = (gz_stream*)file;
-
- if (s == NULL) {
- *errnum = Z_STREAM_ERROR;
- return (const char*)ERR_MSG(Z_STREAM_ERROR);
- }
- *errnum = s->z_err;
- if (*errnum == Z_OK) return (const char*)"";
-
- m = (char*)(*errnum == Z_ERRNO ? zstrerror(errno) : s->stream.msg);
-
- if (m == NULL || *m == '\0') m = (char*)ERR_MSG(s->z_err);
-
- TRYFREE(s->msg);
- s->msg = (char*)ALLOC(strlen(s->path) + strlen(m) + 3);
- strcpy(s->msg, s->path);
- strcat(s->msg, ": ");
- strcat(s->msg, m);
- return (const char*)s->msg;
-}
diff --git a/zlib-1.1.4/infblock.c b/zlib-1.1.4/infblock.c
deleted file mode 100644
index dd7a6d4..0000000
--- a/zlib-1.1.4/infblock.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/* infblock.c -- interpret and process block types to last block
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "infblock.h"
-#include "inftrees.h"
-#include "infcodes.h"
-#include "infutil.h"
-
-struct inflate_codes_state {int dummy;}; /* for buggy compilers */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* Table for deflate from PKZIP's appnote.txt. */
-local const uInt border[] = { /* Order of the bit length code lengths */
- 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-/*
- Notes beyond the 1.93a appnote.txt:
-
- 1. Distance pointers never point before the beginning of the output
- stream.
- 2. Distance pointers can point back across blocks, up to 32k away.
- 3. There is an implied maximum of 7 bits for the bit length table and
- 15 bits for the actual data.
- 4. If only one code exists, then it is encoded using one bit. (Zero
- would be more efficient, but perhaps a little confusing.) If two
- codes exist, they are coded using one bit each (0 and 1).
- 5. There is no way of sending zero distance codes--a dummy must be
- sent if there are none. (History: a pre 2.0 version of PKZIP would
- store blocks with no distance codes, but this was discovered to be
- too harsh a criterion.) Valid only for 1.93a. 2.04c does allow
- zero distance codes, which is sent as one code of zero bits in
- length.
- 6. There are up to 286 literal/length codes. Code 256 represents the
- end-of-block. Note however that the static length tree defines
- 288 codes just to fill out the Huffman codes. Codes 286 and 287
- cannot be used though, since there is no length base or extra bits
- defined for them. Similarily, there are up to 30 distance codes.
- However, static trees define 32 codes (all 5 bits) to fill out the
- Huffman codes, but the last two had better not show up in the data.
- 7. Unzip can check dynamic Huffman blocks for complete code sets.
- The exception is that a single code would not be complete (see #4).
- 8. The five bits following the block type is really the number of
- literal codes sent minus 257.
- 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits
- (1+6+6). Therefore, to output three times the length, you output
- three codes (1+1+1), whereas to output four times the same length,
- you only need two codes (1+3). Hmm.
- 10. In the tree reconstruction algorithm, Code = Code + Increment
- only if BitLength(i) is not zero. (Pretty obvious.)
- 11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19)
- 12. Note: length code 284 can represent 227-258, but length code 285
- really is 258. The last length deserves its own, short code
- since it gets used a lot in very redundant files. The length
- 258 is special since 258 - 3 (the min match length) is 255.
- 13. The literal/length and distance code bit lengths are read as a
- single stream of lengths. It is possible (and advantageous) for
- a repeat code (16, 17, or 18) to go across the boundary between
- the two sets of lengths.
- */
-
-
-void inflate_blocks_reset(s, z, c)
-inflate_blocks_statef *s;
-z_streamp z;
-uLongf *c;
-{
- if (c != Z_NULL)
- *c = s->check;
- if (s->mode == BTREE || s->mode == DTREE)
- ZFREE(z, s->sub.trees.blens);
- if (s->mode == CODES)
- inflate_codes_free(s->sub.decode.codes, z);
- s->mode = TYPE;
- s->bitk = 0;
- s->bitb = 0;
- s->read = s->write = s->window;
- if (s->checkfn != Z_NULL)
- z->adler = s->check = (*s->checkfn)(0L, (const Bytef *)Z_NULL, 0);
- Tracev((stderr, "inflate: blocks reset\n"));
-}
-
-
-inflate_blocks_statef *inflate_blocks_new(z, c, w)
-z_streamp z;
-check_func c;
-uInt w;
-{
- inflate_blocks_statef *s;
-
- if ((s = (inflate_blocks_statef *)ZALLOC
- (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL)
- return s;
- if ((s->hufts =
- (inflate_huft *)ZALLOC(z, sizeof(inflate_huft), MANY)) == Z_NULL)
- {
- ZFREE(z, s);
- return Z_NULL;
- }
- if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL)
- {
- ZFREE(z, s->hufts);
- ZFREE(z, s);
- return Z_NULL;
- }
- s->end = s->window + w;
- s->checkfn = c;
- s->mode = TYPE;
- Tracev((stderr, "inflate: blocks allocated\n"));
- inflate_blocks_reset(s, z, Z_NULL);
- return s;
-}
-
-
-int inflate_blocks(s, z, r)
-inflate_blocks_statef *s;
-z_streamp z;
-int r;
-{
- uInt t; /* temporary storage */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
-
- /* copy input/output information to locals (UPDATE macro restores) */
- LOAD
-
- /* process input based on current state */
- while (1) switch (s->mode)
- {
- case TYPE:
- NEEDBITS(3)
- t = (uInt)b & 7;
- s->last = t & 1;
- switch (t >> 1)
- {
- case 0: /* stored */
- Tracev((stderr, "inflate: stored block%s\n",
- s->last ? " (last)" : ""));
- DUMPBITS(3)
- t = k & 7; /* go to byte boundary */
- DUMPBITS(t)
- s->mode = LENS; /* get length of stored block */
- break;
- case 1: /* fixed */
- Tracev((stderr, "inflate: fixed codes block%s\n",
- s->last ? " (last)" : ""));
- {
- uInt bl, bd;
- inflate_huft *tl, *td;
-
- inflate_trees_fixed(&bl, &bd, &tl, &td, z);
- s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z);
- if (s->sub.decode.codes == Z_NULL)
- {
- r = Z_MEM_ERROR;
- LEAVE
- }
- }
- DUMPBITS(3)
- s->mode = CODES;
- break;
- case 2: /* dynamic */
- Tracev((stderr, "inflate: dynamic codes block%s\n",
- s->last ? " (last)" : ""));
- DUMPBITS(3)
- s->mode = TABLE;
- break;
- case 3: /* illegal */
- DUMPBITS(3)
- s->mode = BAD;
- z->msg = (char*)"invalid block type";
- r = Z_DATA_ERROR;
- LEAVE
- }
- break;
- case LENS:
- NEEDBITS(32)
- if ((((~b) >> 16) & 0xffff) != (b & 0xffff))
- {
- s->mode = BAD;
- z->msg = (char*)"invalid stored block lengths";
- r = Z_DATA_ERROR;
- LEAVE
- }
- s->sub.left = (uInt)b & 0xffff;
- b = k = 0; /* dump bits */
- Tracev((stderr, "inflate: stored length %u\n", s->sub.left));
- s->mode = s->sub.left ? STORED : (s->last ? DRY : TYPE);
- break;
- case STORED:
- if (n == 0)
- LEAVE
- NEEDOUT
- t = s->sub.left;
- if (t > n) t = n;
- if (t > m) t = m;
- zmemcpy(q, p, t);
- p += t; n -= t;
- q += t; m -= t;
- if ((s->sub.left -= t) != 0)
- break;
- Tracev((stderr, "inflate: stored end, %lu total out\n",
- z->total_out + (q >= s->read ? q - s->read :
- (s->end - s->read) + (q - s->window))));
- s->mode = s->last ? DRY : TYPE;
- break;
- case TABLE:
- NEEDBITS(14)
- s->sub.trees.table = t = (uInt)b & 0x3fff;
-#ifndef PKZIP_BUG_WORKAROUND
- if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29)
- {
- s->mode = BAD;
- z->msg = (char*)"too many length or distance symbols";
- r = Z_DATA_ERROR;
- LEAVE
- }
-#endif
- t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f);
- if ((s->sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL)
- {
- r = Z_MEM_ERROR;
- LEAVE
- }
- DUMPBITS(14)
- s->sub.trees.index = 0;
- Tracev((stderr, "inflate: table sizes ok\n"));
- s->mode = BTREE;
- case BTREE:
- while (s->sub.trees.index < 4 + (s->sub.trees.table >> 10))
- {
- NEEDBITS(3)
- s->sub.trees.blens[border[s->sub.trees.index++]] = (uInt)b & 7;
- DUMPBITS(3)
- }
- while (s->sub.trees.index < 19)
- s->sub.trees.blens[border[s->sub.trees.index++]] = 0;
- s->sub.trees.bb = 7;
- t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb,
- &s->sub.trees.tb, s->hufts, z);
- if (t != Z_OK)
- {
- r = t;
- if (r == Z_DATA_ERROR)
- {
- ZFREE(z, s->sub.trees.blens);
- s->mode = BAD;
- }
- LEAVE
- }
- s->sub.trees.index = 0;
- Tracev((stderr, "inflate: bits tree ok\n"));
- s->mode = DTREE;
- case DTREE:
- while (t = s->sub.trees.table,
- s->sub.trees.index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f))
- {
- inflate_huft *h;
- uInt i, j, c;
-
- t = s->sub.trees.bb;
- NEEDBITS(t)
- h = s->sub.trees.tb + ((uInt)b & inflate_mask[t]);
- t = h->bits;
- c = h->base;
- if (c < 16)
- {
- DUMPBITS(t)
- s->sub.trees.blens[s->sub.trees.index++] = c;
- }
- else /* c == 16..18 */
- {
- i = c == 18 ? 7 : c - 14;
- j = c == 18 ? 11 : 3;
- NEEDBITS(t + i)
- DUMPBITS(t)
- j += (uInt)b & inflate_mask[i];
- DUMPBITS(i)
- i = s->sub.trees.index;
- t = s->sub.trees.table;
- if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) ||
- (c == 16 && i < 1))
- {
- ZFREE(z, s->sub.trees.blens);
- s->mode = BAD;
- z->msg = (char*)"invalid bit length repeat";
- r = Z_DATA_ERROR;
- LEAVE
- }
- c = c == 16 ? s->sub.trees.blens[i - 1] : 0;
- do {
- s->sub.trees.blens[i++] = c;
- } while (--j);
- s->sub.trees.index = i;
- }
- }
- s->sub.trees.tb = Z_NULL;
- {
- uInt bl, bd;
- inflate_huft *tl, *td;
- inflate_codes_statef *c;
-
- bl = 9; /* must be <= 9 for lookahead assumptions */
- bd = 6; /* must be <= 9 for lookahead assumptions */
- t = s->sub.trees.table;
- t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f),
- s->sub.trees.blens, &bl, &bd, &tl, &td,
- s->hufts, z);
- if (t != Z_OK)
- {
- if (t == (uInt)Z_DATA_ERROR)
- {
- ZFREE(z, s->sub.trees.blens);
- s->mode = BAD;
- }
- r = t;
- LEAVE
- }
- Tracev((stderr, "inflate: trees ok\n"));
- if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)
- {
- r = Z_MEM_ERROR;
- LEAVE
- }
- s->sub.decode.codes = c;
- }
- ZFREE(z, s->sub.trees.blens);
- s->mode = CODES;
- case CODES:
- UPDATE
- if ((r = inflate_codes(s, z, r)) != Z_STREAM_END)
- return inflate_flush(s, z, r);
- r = Z_OK;
- inflate_codes_free(s->sub.decode.codes, z);
- LOAD
- Tracev((stderr, "inflate: codes end, %lu total out\n",
- z->total_out + (q >= s->read ? q - s->read :
- (s->end - s->read) + (q - s->window))));
- if (!s->last)
- {
- s->mode = TYPE;
- break;
- }
- s->mode = DRY;
- case DRY:
- FLUSH
- if (s->read != s->write)
- LEAVE
- s->mode = DONE;
- case DONE:
- r = Z_STREAM_END;
- LEAVE
- case BAD:
- r = Z_DATA_ERROR;
- LEAVE
- default:
- r = Z_STREAM_ERROR;
- LEAVE
- }
-}
-
-
-int inflate_blocks_free(s, z)
-inflate_blocks_statef *s;
-z_streamp z;
-{
- inflate_blocks_reset(s, z, Z_NULL);
- ZFREE(z, s->window);
- ZFREE(z, s->hufts);
- ZFREE(z, s);
- Tracev((stderr, "inflate: blocks freed\n"));
- return Z_OK;
-}
-
-
-void inflate_set_dictionary(s, d, n)
-inflate_blocks_statef *s;
-const Bytef *d;
-uInt n;
-{
- zmemcpy(s->window, d, n);
- s->read = s->write = s->window + n;
-}
-
-
-/* Returns true if inflate is currently at the end of a block generated
- * by Z_SYNC_FLUSH or Z_FULL_FLUSH.
- * IN assertion: s != Z_NULL
- */
-int inflate_blocks_sync_point(s)
-inflate_blocks_statef *s;
-{
- return s->mode == LENS;
-}
diff --git a/zlib-1.1.4/infblock.h b/zlib-1.1.4/infblock.h
deleted file mode 100644
index 173b226..0000000
--- a/zlib-1.1.4/infblock.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* infblock.h -- header to use infblock.c
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-struct inflate_blocks_state;
-typedef struct inflate_blocks_state FAR inflate_blocks_statef;
-
-extern inflate_blocks_statef * inflate_blocks_new OF((
- z_streamp z,
- check_func c, /* check function */
- uInt w)); /* window size */
-
-extern int inflate_blocks OF((
- inflate_blocks_statef *,
- z_streamp ,
- int)); /* initial return code */
-
-extern void inflate_blocks_reset OF((
- inflate_blocks_statef *,
- z_streamp ,
- uLongf *)); /* check value on output */
-
-extern int inflate_blocks_free OF((
- inflate_blocks_statef *,
- z_streamp));
-
-extern void inflate_set_dictionary OF((
- inflate_blocks_statef *s,
- const Bytef *d, /* dictionary */
- uInt n)); /* dictionary length */
-
-extern int inflate_blocks_sync_point OF((
- inflate_blocks_statef *s));
diff --git a/zlib-1.1.4/infcodes.c b/zlib-1.1.4/infcodes.c
deleted file mode 100644
index 9abe541..0000000
--- a/zlib-1.1.4/infcodes.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/* infcodes.c -- process literals and length/distance pairs
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "infblock.h"
-#include "infcodes.h"
-#include "infutil.h"
-#include "inffast.h"
-
-/* simplify the use of the inflate_huft type with some defines */
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-typedef enum { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
- START, /* x: set up for LEN */
- LEN, /* i: get length/literal/eob next */
- LENEXT, /* i: getting length extra (have base) */
- DIST, /* i: get distance next */
- DISTEXT, /* i: getting distance extra */
- COPY, /* o: copying bytes in window, waiting for space */
- LIT, /* o: got literal, waiting for output space */
- WASH, /* o: got eob, possibly still output waiting */
- END, /* x: got eob and all data flushed */
- BADCODE} /* x: got error */
-inflate_codes_mode;
-
-/* inflate codes private state */
-struct inflate_codes_state {
-
- /* mode */
- inflate_codes_mode mode; /* current inflate_codes mode */
-
- /* mode dependent information */
- uInt len;
- union {
- struct {
- inflate_huft *tree; /* pointer into tree */
- uInt need; /* bits needed */
- } code; /* if LEN or DIST, where in tree */
- uInt lit; /* if LIT, literal */
- struct {
- uInt get; /* bits to get for extra */
- uInt dist; /* distance back to copy from */
- } copy; /* if EXT or COPY, where and how much */
- } sub; /* submode */
-
- /* mode independent information */
- Byte lbits; /* ltree bits decoded per branch */
- Byte dbits; /* dtree bits decoder per branch */
- inflate_huft *ltree; /* literal/length/eob tree */
- inflate_huft *dtree; /* distance tree */
-
-};
-
-
-inflate_codes_statef *inflate_codes_new(bl, bd, tl, td, z)
-uInt bl, bd;
-inflate_huft *tl;
-inflate_huft *td; /* need separate declaration for Borland C++ */
-z_streamp z;
-{
- inflate_codes_statef *c;
-
- if ((c = (inflate_codes_statef *)
- ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL)
- {
- c->mode = START;
- c->lbits = (Byte)bl;
- c->dbits = (Byte)bd;
- c->ltree = tl;
- c->dtree = td;
- Tracev((stderr, "inflate: codes new\n"));
- }
- return c;
-}
-
-
-int inflate_codes(s, z, r)
-inflate_blocks_statef *s;
-z_streamp z;
-int r;
-{
- uInt j; /* temporary storage */
- inflate_huft *t; /* temporary pointer */
- uInt e; /* extra bits or operation */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
- Bytef *f; /* pointer to copy strings from */
- inflate_codes_statef *c = s->sub.decode.codes; /* codes state */
-
- /* copy input/output information to locals (UPDATE macro restores) */
- LOAD
-
- /* process input and output based on current state */
- while (1) switch (c->mode)
- { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
- case START: /* x: set up for LEN */
-#ifndef SLOW
- if (m >= 258 && n >= 10)
- {
- UPDATE
- r = inflate_fast(c->lbits, c->dbits, c->ltree, c->dtree, s, z);
- LOAD
- if (r != Z_OK)
- {
- c->mode = r == Z_STREAM_END ? WASH : BADCODE;
- break;
- }
- }
-#endif /* !SLOW */
- c->sub.code.need = c->lbits;
- c->sub.code.tree = c->ltree;
- c->mode = LEN;
- case LEN: /* i: get length/literal/eob next */
- j = c->sub.code.need;
- NEEDBITS(j)
- t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
- DUMPBITS(t->bits)
- e = (uInt)(t->exop);
- if (e == 0) /* literal */
- {
- c->sub.lit = t->base;
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: literal '%c'\n" :
- "inflate: literal 0x%02x\n", t->base));
- c->mode = LIT;
- break;
- }
- if (e & 16) /* length */
- {
- c->sub.copy.get = e & 15;
- c->len = t->base;
- c->mode = LENEXT;
- break;
- }
- if ((e & 64) == 0) /* next table */
- {
- c->sub.code.need = e;
- c->sub.code.tree = t + t->base;
- break;
- }
- if (e & 32) /* end of block */
- {
- Tracevv((stderr, "inflate: end of block\n"));
- c->mode = WASH;
- break;
- }
- c->mode = BADCODE; /* invalid code */
- z->msg = (char*)"invalid literal/length code";
- r = Z_DATA_ERROR;
- LEAVE
- case LENEXT: /* i: getting length extra (have base) */
- j = c->sub.copy.get;
- NEEDBITS(j)
- c->len += (uInt)b & inflate_mask[j];
- DUMPBITS(j)
- c->sub.code.need = c->dbits;
- c->sub.code.tree = c->dtree;
- Tracevv((stderr, "inflate: length %u\n", c->len));
- c->mode = DIST;
- case DIST: /* i: get distance next */
- j = c->sub.code.need;
- NEEDBITS(j)
- t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
- DUMPBITS(t->bits)
- e = (uInt)(t->exop);
- if (e & 16) /* distance */
- {
- c->sub.copy.get = e & 15;
- c->sub.copy.dist = t->base;
- c->mode = DISTEXT;
- break;
- }
- if ((e & 64) == 0) /* next table */
- {
- c->sub.code.need = e;
- c->sub.code.tree = t + t->base;
- break;
- }
- c->mode = BADCODE; /* invalid code */
- z->msg = (char*)"invalid distance code";
- r = Z_DATA_ERROR;
- LEAVE
- case DISTEXT: /* i: getting distance extra */
- j = c->sub.copy.get;
- NEEDBITS(j)
- c->sub.copy.dist += (uInt)b & inflate_mask[j];
- DUMPBITS(j)
- Tracevv((stderr, "inflate: distance %u\n", c->sub.copy.dist));
- c->mode = COPY;
- case COPY: /* o: copying bytes in window, waiting for space */
- f = q - c->sub.copy.dist;
- while (f < s->window) /* modulo window size-"while" instead */
- f += s->end - s->window; /* of "if" handles invalid distances */
- while (c->len)
- {
- NEEDOUT
- OUTBYTE(*f++)
- if (f == s->end)
- f = s->window;
- c->len--;
- }
- c->mode = START;
- break;
- case LIT: /* o: got literal, waiting for output space */
- NEEDOUT
- OUTBYTE(c->sub.lit)
- c->mode = START;
- break;
- case WASH: /* o: got eob, possibly more output */
- if (k > 7) /* return unused byte, if any */
- {
- Assert(k < 16, "inflate_codes grabbed too many bytes")
- k -= 8;
- n++;
- p--; /* can always return one */
- }
- FLUSH
- if (s->read != s->write)
- LEAVE
- c->mode = END;
- case END:
- r = Z_STREAM_END;
- LEAVE
- case BADCODE: /* x: got error */
- r = Z_DATA_ERROR;
- LEAVE
- default:
- r = Z_STREAM_ERROR;
- LEAVE
- }
-#ifdef NEED_DUMMY_RETURN
- return Z_STREAM_ERROR; /* Some dumb compilers complain without this */
-#endif
-}
-
-
-void inflate_codes_free(c, z)
-inflate_codes_statef *c;
-z_streamp z;
-{
- ZFREE(z, c);
- Tracev((stderr, "inflate: codes free\n"));
-}
diff --git a/zlib-1.1.4/infcodes.h b/zlib-1.1.4/infcodes.h
deleted file mode 100644
index 46821a0..0000000
--- a/zlib-1.1.4/infcodes.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* infcodes.h -- header to use infcodes.c
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-struct inflate_codes_state;
-typedef struct inflate_codes_state FAR inflate_codes_statef;
-
-extern inflate_codes_statef *inflate_codes_new OF((
- uInt, uInt,
- inflate_huft *, inflate_huft *,
- z_streamp ));
-
-extern int inflate_codes OF((
- inflate_blocks_statef *,
- z_streamp ,
- int));
-
-extern void inflate_codes_free OF((
- inflate_codes_statef *,
- z_streamp ));
-
diff --git a/zlib-1.1.4/inffast.c b/zlib-1.1.4/inffast.c
deleted file mode 100644
index aa7f1d4..0000000
--- a/zlib-1.1.4/inffast.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* inffast.c -- process literals and length/distance pairs fast
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "infblock.h"
-#include "infcodes.h"
-#include "infutil.h"
-#include "inffast.h"
-
-struct inflate_codes_state {int dummy;}; /* for buggy compilers */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* macros for bit input with no checking and for returning unused bytes */
-#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define UNGRAB {c=z->avail_in-n;c=(k>>3)<c?k>>3:c;n+=c;p-=c;k-=c<<3;}
-
-/* Called with number of bytes left to write in window at least 258
- (the maximum string length) and number of input bytes available
- at least ten. The ten bytes are six bytes for the longest length/
- distance pair plus four bytes for overloading the bit buffer. */
-
-int inflate_fast(bl, bd, tl, td, s, z)
-uInt bl, bd;
-inflate_huft *tl;
-inflate_huft *td; /* need separate declaration for Borland C++ */
-inflate_blocks_statef *s;
-z_streamp z;
-{
- inflate_huft *t; /* temporary pointer */
- uInt e; /* extra bits or operation */
- uLong b; /* bit buffer */
- uInt k; /* bits in bit buffer */
- Bytef *p; /* input data pointer */
- uInt n; /* bytes available there */
- Bytef *q; /* output window write pointer */
- uInt m; /* bytes to end of window or read pointer */
- uInt ml; /* mask for literal/length tree */
- uInt md; /* mask for distance tree */
- uInt c; /* bytes to copy */
- uInt d; /* distance back to copy from */
- Bytef *r; /* copy source pointer */
-
- /* load input, output, bit values */
- LOAD
-
- /* initialize masks */
- ml = inflate_mask[bl];
- md = inflate_mask[bd];
-
- /* do until not enough input or output space for fast loop */
- do { /* assume called with m >= 258 && n >= 10 */
- /* get literal/length code */
- GRABBITS(20) /* max bits for literal/length code */
- if ((e = (t = tl + ((uInt)b & ml))->exop) == 0)
- {
- DUMPBITS(t->bits)
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: * literal '%c'\n" :
- "inflate: * literal 0x%02x\n", t->base));
- *q++ = (Byte)t->base;
- m--;
- continue;
- }
- do {
- DUMPBITS(t->bits)
- if (e & 16)
- {
- /* get extra bits for length */
- e &= 15;
- c = t->base + ((uInt)b & inflate_mask[e]);
- DUMPBITS(e)
- Tracevv((stderr, "inflate: * length %u\n", c));
-
- /* decode distance base of block to copy */
- GRABBITS(15); /* max bits for distance code */
- e = (t = td + ((uInt)b & md))->exop;
- do {
- DUMPBITS(t->bits)
- if (e & 16)
- {
- /* get extra bits to add to distance base */
- e &= 15;
- GRABBITS(e) /* get extra bits (up to 13) */
- d = t->base + ((uInt)b & inflate_mask[e]);
- DUMPBITS(e)
- Tracevv((stderr, "inflate: * distance %u\n", d));
-
- /* do the copy */
- m -= c;
- r = q - d;
- if (r < s->window) /* wrap if needed */
- {
- do {
- r += s->end - s->window; /* force pointer in window */
- } while (r < s->window); /* covers invalid distances */
- e = s->end - r;
- if (c > e)
- {
- c -= e; /* wrapped copy */
- do {
- *q++ = *r++;
- } while (--e);
- r = s->window;
- do {
- *q++ = *r++;
- } while (--c);
- }
- else /* normal copy */
- {
- *q++ = *r++; c--;
- *q++ = *r++; c--;
- do {
- *q++ = *r++;
- } while (--c);
- }
- }
- else /* normal copy */
- {
- *q++ = *r++; c--;
- *q++ = *r++; c--;
- do {
- *q++ = *r++;
- } while (--c);
- }
- break;
- }
- else if ((e & 64) == 0)
- {
- t += t->base;
- e = (t += ((uInt)b & inflate_mask[e]))->exop;
- }
- else
- {
- z->msg = (char*)"invalid distance code";
- UNGRAB
- UPDATE
- return Z_DATA_ERROR;
- }
- } while (1);
- break;
- }
- if ((e & 64) == 0)
- {
- t += t->base;
- if ((e = (t += ((uInt)b & inflate_mask[e]))->exop) == 0)
- {
- DUMPBITS(t->bits)
- Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
- "inflate: * literal '%c'\n" :
- "inflate: * literal 0x%02x\n", t->base));
- *q++ = (Byte)t->base;
- m--;
- break;
- }
- }
- else if (e & 32)
- {
- Tracevv((stderr, "inflate: * end of block\n"));
- UNGRAB
- UPDATE
- return Z_STREAM_END;
- }
- else
- {
- z->msg = (char*)"invalid literal/length code";
- UNGRAB
- UPDATE
- return Z_DATA_ERROR;
- }
- } while (1);
- } while (m >= 258 && n >= 10);
-
- /* not enough input or output--restore pointers and return */
- UNGRAB
- UPDATE
- return Z_OK;
-}
diff --git a/zlib-1.1.4/inffast.h b/zlib-1.1.4/inffast.h
deleted file mode 100644
index a31a4bb..0000000
--- a/zlib-1.1.4/inffast.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* inffast.h -- header to use inffast.c
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-extern int inflate_fast OF((
- uInt,
- uInt,
- inflate_huft *,
- inflate_huft *,
- inflate_blocks_statef *,
- z_streamp ));
diff --git a/zlib-1.1.4/inffixed.h b/zlib-1.1.4/inffixed.h
deleted file mode 100644
index 77f7e76..0000000
--- a/zlib-1.1.4/inffixed.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* inffixed.h -- table for decoding fixed codes
- * Generated automatically by the maketree.c program
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-local uInt fixed_bl = 9;
-local uInt fixed_bd = 5;
-local inflate_huft fixed_tl[] = {
- {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115},
- {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},192},
- {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},160},
- {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},224},
- {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},144},
- {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},208},
- {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},176},
- {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},240},
- {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227},
- {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},200},
- {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},168},
- {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},232},
- {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},152},
- {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},216},
- {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},184},
- {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},248},
- {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163},
- {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},196},
- {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},164},
- {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},228},
- {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},148},
- {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},212},
- {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},180},
- {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},244},
- {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0},
- {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},204},
- {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},172},
- {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},236},
- {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},156},
- {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},220},
- {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},188},
- {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},252},
- {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131},
- {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},194},
- {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},162},
- {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},226},
- {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},146},
- {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},210},
- {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},178},
- {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},242},
- {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258},
- {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},202},
- {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},170},
- {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},234},
- {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},154},
- {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},218},
- {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},186},
- {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},250},
- {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195},
- {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},198},
- {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},166},
- {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},230},
- {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},150},
- {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},214},
- {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},182},
- {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},246},
- {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0},
- {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},206},
- {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},174},
- {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},238},
- {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},158},
- {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},222},
- {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},190},
- {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},254},
- {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115},
- {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},193},
- {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},161},
- {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},225},
- {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},145},
- {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},209},
- {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},177},
- {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},241},
- {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227},
- {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},201},
- {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},169},
- {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},233},
- {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},153},
- {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},217},
- {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},185},
- {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},249},
- {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163},
- {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},197},
- {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},165},
- {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},229},
- {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},149},
- {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},213},
- {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},181},
- {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},245},
- {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0},
- {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},205},
- {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},173},
- {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},237},
- {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},157},
- {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},221},
- {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},189},
- {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},253},
- {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131},
- {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},195},
- {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},163},
- {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},227},
- {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},147},
- {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},211},
- {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},179},
- {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},243},
- {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258},
- {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},203},
- {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},171},
- {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},235},
- {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},155},
- {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},219},
- {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},187},
- {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},251},
- {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195},
- {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},199},
- {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},167},
- {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},231},
- {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},151},
- {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},215},
- {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},183},
- {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},247},
- {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0},
- {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},207},
- {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},175},
- {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},239},
- {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},159},
- {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},223},
- {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},191},
- {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},255}
- };
-local inflate_huft fixed_td[] = {
- {{{80,5}},1}, {{{87,5}},257}, {{{83,5}},17}, {{{91,5}},4097},
- {{{81,5}},5}, {{{89,5}},1025}, {{{85,5}},65}, {{{93,5}},16385},
- {{{80,5}},3}, {{{88,5}},513}, {{{84,5}},33}, {{{92,5}},8193},
- {{{82,5}},9}, {{{90,5}},2049}, {{{86,5}},129}, {{{192,5}},24577},
- {{{80,5}},2}, {{{87,5}},385}, {{{83,5}},25}, {{{91,5}},6145},
- {{{81,5}},7}, {{{89,5}},1537}, {{{85,5}},97}, {{{93,5}},24577},
- {{{80,5}},4}, {{{88,5}},769}, {{{84,5}},49}, {{{92,5}},12289},
- {{{82,5}},13}, {{{90,5}},3073}, {{{86,5}},193}, {{{192,5}},24577}
- };
diff --git a/zlib-1.1.4/inflate.c b/zlib-1.1.4/inflate.c
deleted file mode 100644
index dfb2e86..0000000
--- a/zlib-1.1.4/inflate.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/* inflate.c -- zlib interface to inflate modules
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "infblock.h"
-
-struct inflate_blocks_state {int dummy;}; /* for buggy compilers */
-
-typedef enum {
- METHOD, /* waiting for method byte */
- FLAG, /* waiting for flag byte */
- DICT4, /* four dictionary check bytes to go */
- DICT3, /* three dictionary check bytes to go */
- DICT2, /* two dictionary check bytes to go */
- DICT1, /* one dictionary check byte to go */
- DICT0, /* waiting for inflateSetDictionary */
- BLOCKS, /* decompressing blocks */
- CHECK4, /* four check bytes to go */
- CHECK3, /* three check bytes to go */
- CHECK2, /* two check bytes to go */
- CHECK1, /* one check byte to go */
- DONE, /* finished check, done */
- BAD} /* got an error--stay here */
-inflate_mode;
-
-/* inflate private state */
-struct internal_state {
-
- /* mode */
- inflate_mode mode; /* current inflate mode */
-
- /* mode dependent information */
- union {
- uInt method; /* if FLAGS, method byte */
- struct {
- uLong was; /* computed check value */
- uLong need; /* stream check value */
- } check; /* if CHECK, check values to compare */
- uInt marker; /* if BAD, inflateSync's marker bytes count */
- } sub; /* submode */
-
- /* mode independent information */
- int nowrap; /* flag for no wrapper */
- uInt wbits; /* log2(window size) (8..15, defaults to 15) */
- inflate_blocks_statef
- *blocks; /* current inflate_blocks state */
-
-};
-
-
-int ZEXPORT inflateReset(z)
-z_streamp z;
-{
- if (z == Z_NULL || z->state == Z_NULL)
- return Z_STREAM_ERROR;
- z->total_in = z->total_out = 0;
- z->msg = Z_NULL;
- z->state->mode = z->state->nowrap ? BLOCKS : METHOD;
- inflate_blocks_reset(z->state->blocks, z, Z_NULL);
- Tracev((stderr, "inflate: reset\n"));
- return Z_OK;
-}
-
-
-int ZEXPORT inflateEnd(z)
-z_streamp z;
-{
- if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL)
- return Z_STREAM_ERROR;
- if (z->state->blocks != Z_NULL)
- inflate_blocks_free(z->state->blocks, z);
- ZFREE(z, z->state);
- z->state = Z_NULL;
- Tracev((stderr, "inflate: end\n"));
- return Z_OK;
-}
-
-
-int ZEXPORT inflateInit2_(z, w, version, stream_size)
-z_streamp z;
-int w;
-const char *version;
-int stream_size;
-{
- if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
- stream_size != sizeof(z_stream))
- return Z_VERSION_ERROR;
-
- /* initialize state */
- if (z == Z_NULL)
- return Z_STREAM_ERROR;
- z->msg = Z_NULL;
- if (z->zalloc == Z_NULL)
- {
- z->zalloc = zcalloc;
- z->opaque = (voidpf)0;
- }
- if (z->zfree == Z_NULL) z->zfree = zcfree;
- if ((z->state = (struct internal_state FAR *)
- ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL)
- return Z_MEM_ERROR;
- z->state->blocks = Z_NULL;
-
- /* handle undocumented nowrap option (no zlib header or check) */
- z->state->nowrap = 0;
- if (w < 0)
- {
- w = - w;
- z->state->nowrap = 1;
- }
-
- /* set window size */
- if (w < 8 || w > 15)
- {
- inflateEnd(z);
- return Z_STREAM_ERROR;
- }
- z->state->wbits = (uInt)w;
-
- /* create inflate_blocks state */
- if ((z->state->blocks =
- inflate_blocks_new(z, z->state->nowrap ? Z_NULL : adler32, (uInt)1 << w))
- == Z_NULL)
- {
- inflateEnd(z);
- return Z_MEM_ERROR;
- }
- Tracev((stderr, "inflate: allocated\n"));
-
- /* reset state */
- inflateReset(z);
- return Z_OK;
-}
-
-
-int ZEXPORT inflateInit_(z, version, stream_size)
-z_streamp z;
-const char *version;
-int stream_size;
-{
- return inflateInit2_(z, DEF_WBITS, version, stream_size);
-}
-
-
-#define NEEDBYTE {if(z->avail_in==0)return r;r=f;}
-#define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++)
-
-int ZEXPORT inflate(z, f)
-z_streamp z;
-int f;
-{
- int r;
- uInt b;
-
- if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL)
- return Z_STREAM_ERROR;
- f = f == Z_FINISH ? Z_BUF_ERROR : Z_OK;
- r = Z_BUF_ERROR;
- while (1) switch (z->state->mode)
- {
- case METHOD:
- NEEDBYTE
- if (((z->state->sub.method = NEXTBYTE) & 0xf) != Z_DEFLATED)
- {
- z->state->mode = BAD;
- z->msg = (char*)"unknown compression method";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- if ((z->state->sub.method >> 4) + 8 > z->state->wbits)
- {
- z->state->mode = BAD;
- z->msg = (char*)"invalid window size";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- z->state->mode = FLAG;
- case FLAG:
- NEEDBYTE
- b = NEXTBYTE;
- if (((z->state->sub.method << 8) + b) % 31)
- {
- z->state->mode = BAD;
- z->msg = (char*)"incorrect header check";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- Tracev((stderr, "inflate: zlib header ok\n"));
- if (!(b & PRESET_DICT))
- {
- z->state->mode = BLOCKS;
- break;
- }
- z->state->mode = DICT4;
- case DICT4:
- NEEDBYTE
- z->state->sub.check.need = (uLong)NEXTBYTE << 24;
- z->state->mode = DICT3;
- case DICT3:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 16;
- z->state->mode = DICT2;
- case DICT2:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 8;
- z->state->mode = DICT1;
- case DICT1:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE;
- z->adler = z->state->sub.check.need;
- z->state->mode = DICT0;
- return Z_NEED_DICT;
- case DICT0:
- z->state->mode = BAD;
- z->msg = (char*)"need dictionary";
- z->state->sub.marker = 0; /* can try inflateSync */
- return Z_STREAM_ERROR;
- case BLOCKS:
- r = inflate_blocks(z->state->blocks, z, r);
- if (r == Z_DATA_ERROR)
- {
- z->state->mode = BAD;
- z->state->sub.marker = 0; /* can try inflateSync */
- break;
- }
- if (r == Z_OK)
- r = f;
- if (r != Z_STREAM_END)
- return r;
- r = f;
- inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was);
- if (z->state->nowrap)
- {
- z->state->mode = DONE;
- break;
- }
- z->state->mode = CHECK4;
- case CHECK4:
- NEEDBYTE
- z->state->sub.check.need = (uLong)NEXTBYTE << 24;
- z->state->mode = CHECK3;
- case CHECK3:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 16;
- z->state->mode = CHECK2;
- case CHECK2:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE << 8;
- z->state->mode = CHECK1;
- case CHECK1:
- NEEDBYTE
- z->state->sub.check.need += (uLong)NEXTBYTE;
-
- if (z->state->sub.check.was != z->state->sub.check.need)
- {
- z->state->mode = BAD;
- z->msg = (char*)"incorrect data check";
- z->state->sub.marker = 5; /* can't try inflateSync */
- break;
- }
- Tracev((stderr, "inflate: zlib check ok\n"));
- z->state->mode = DONE;
- case DONE:
- return Z_STREAM_END;
- case BAD:
- return Z_DATA_ERROR;
- default:
- return Z_STREAM_ERROR;
- }
-#ifdef NEED_DUMMY_RETURN
- return Z_STREAM_ERROR; /* Some dumb compilers complain without this */
-#endif
-}
-
-
-int ZEXPORT inflateSetDictionary(z, dictionary, dictLength)
-z_streamp z;
-const Bytef *dictionary;
-uInt dictLength;
-{
- uInt length = dictLength;
-
- if (z == Z_NULL || z->state == Z_NULL || z->state->mode != DICT0)
- return Z_STREAM_ERROR;
-
- if (adler32(1L, dictionary, dictLength) != z->adler) return Z_DATA_ERROR;
- z->adler = 1L;
-
- if (length >= ((uInt)1<<z->state->wbits))
- {
- length = (1<<z->state->wbits)-1;
- dictionary += dictLength - length;
- }
- inflate_set_dictionary(z->state->blocks, dictionary, length);
- z->state->mode = BLOCKS;
- return Z_OK;
-}
-
-
-int ZEXPORT inflateSync(z)
-z_streamp z;
-{
- uInt n; /* number of bytes to look at */
- Bytef *p; /* pointer to bytes */
- uInt m; /* number of marker bytes found in a row */
- uLong r, w; /* temporaries to save total_in and total_out */
-
- /* set up */
- if (z == Z_NULL || z->state == Z_NULL)
- return Z_STREAM_ERROR;
- if (z->state->mode != BAD)
- {
- z->state->mode = BAD;
- z->state->sub.marker = 0;
- }
- if ((n = z->avail_in) == 0)
- return Z_BUF_ERROR;
- p = z->next_in;
- m = z->state->sub.marker;
-
- /* search */
- while (n && m < 4)
- {
- static const Byte mark[4] = {0, 0, 0xff, 0xff};
- if (*p == mark[m])
- m++;
- else if (*p)
- m = 0;
- else
- m = 4 - m;
- p++, n--;
- }
-
- /* restore */
- z->total_in += p - z->next_in;
- z->next_in = p;
- z->avail_in = n;
- z->state->sub.marker = m;
-
- /* return no joy or set up to restart on a new block */
- if (m != 4)
- return Z_DATA_ERROR;
- r = z->total_in; w = z->total_out;
- inflateReset(z);
- z->total_in = r; z->total_out = w;
- z->state->mode = BLOCKS;
- return Z_OK;
-}
-
-
-/* Returns true if inflate is currently at the end of a block generated
- * by Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP
- * implementation to provide an additional safety check. PPP uses Z_SYNC_FLUSH
- * but removes the length bytes of the resulting empty stored block. When
- * decompressing, PPP checks that at the end of input packet, inflate is
- * waiting for these length bytes.
- */
-int ZEXPORT inflateSyncPoint(z)
-z_streamp z;
-{
- if (z == Z_NULL || z->state == Z_NULL || z->state->blocks == Z_NULL)
- return Z_STREAM_ERROR;
- return inflate_blocks_sync_point(z->state->blocks);
-}
diff --git a/zlib-1.1.4/inftrees.c b/zlib-1.1.4/inftrees.c
deleted file mode 100644
index 4c32ca3..0000000
--- a/zlib-1.1.4/inftrees.c
+++ /dev/null
@@ -1,454 +0,0 @@
-/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-
-#if !defined(BUILDFIXED) && !defined(STDC)
-# define BUILDFIXED /* non ANSI compilers may not accept inffixed.h */
-#endif
-
-const char inflate_copyright[] =
- " inflate 1.1.4 Copyright 1995-2002 Mark Adler ";
-/*
- If you use the zlib library in a product, an acknowledgment is welcome
- in the documentation of your product. If for some reason you cannot
- include such an acknowledgment, I would appreciate that you keep this
- copyright string in the executable of your product.
- */
-struct internal_state {int dummy;}; /* for buggy compilers */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-
-local int huft_build OF((
- uIntf *, /* code lengths in bits */
- uInt, /* number of codes */
- uInt, /* number of "simple" codes */
- const uIntf *, /* list of base values for non-simple codes */
- const uIntf *, /* list of extra bits for non-simple codes */
- inflate_huft * FAR*,/* result: starting table */
- uIntf *, /* maximum lookup bits (returns actual) */
- inflate_huft *, /* space for trees */
- uInt *, /* hufts used in space */
- uIntf * )); /* space for values */
-
-/* Tables for deflate from PKZIP's appnote.txt. */
-local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
- 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
- /* see note #13 above about 258 */
-local const uInt cplext[31] = { /* Extra bits for literal codes 257..285 */
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
- 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112}; /* 112==invalid */
-local const uInt cpdist[30] = { /* Copy offsets for distance codes 0..29 */
- 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
- 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
- 8193, 12289, 16385, 24577};
-local const uInt cpdext[30] = { /* Extra bits for distance codes */
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
- 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
- 12, 12, 13, 13};
-
-/*
- Huffman code decoding is performed using a multi-level table lookup.
- The fastest way to decode is to simply build a lookup table whose
- size is determined by the longest code. However, the time it takes
- to build this table can also be a factor if the data being decoded
- is not very long. The most common codes are necessarily the
- shortest codes, so those codes dominate the decoding time, and hence
- the speed. The idea is you can have a shorter table that decodes the
- shorter, more probable codes, and then point to subsidiary tables for
- the longer codes. The time it costs to decode the longer codes is
- then traded against the time it takes to make longer tables.
-
- This results of this trade are in the variables lbits and dbits
- below. lbits is the number of bits the first level table for literal/
- length codes can decode in one step, and dbits is the same thing for
- the distance codes. Subsequent tables are also less than or equal to
- those sizes. These values may be adjusted either when all of the
- codes are shorter than that, in which case the longest code length in
- bits is used, or when the shortest code is *longer* than the requested
- table size, in which case the length of the shortest code in bits is
- used.
-
- There are two different values for the two tables, since they code a
- different number of possibilities each. The literal/length table
- codes 286 possible values, or in a flat code, a little over eight
- bits. The distance table codes 30 possible values, or a little less
- than five bits, flat. The optimum values for speed end up being
- about one bit more than those, so lbits is 8+1 and dbits is 5+1.
- The optimum values may differ though from machine to machine, and
- possibly even between compilers. Your mileage may vary.
- */
-
-
-/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */
-#define BMAX 15 /* maximum bit length of any code */
-
-local int huft_build(b, n, s, d, e, t, m, hp, hn, v)
-uIntf *b; /* code lengths in bits (all assumed <= BMAX) */
-uInt n; /* number of codes (assumed <= 288) */
-uInt s; /* number of simple-valued codes (0..s-1) */
-const uIntf *d; /* list of base values for non-simple codes */
-const uIntf *e; /* list of extra bits for non-simple codes */
-inflate_huft * FAR *t; /* result: starting table */
-uIntf *m; /* maximum lookup bits, returns actual */
-inflate_huft *hp; /* space for trees */
-uInt *hn; /* hufts used in space */
-uIntf *v; /* working area: values in order of bit length */
-/* Given a list of code lengths and a maximum table size, make a set of
- tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR
- if the given code set is incomplete (the tables are still built in this
- case), or Z_DATA_ERROR if the input is invalid. */
-{
-
- uInt a; /* counter for codes of length k */
- uInt c[BMAX+1]; /* bit length count table */
- uInt f; /* i repeats in table every f entries */
- int g; /* maximum code length */
- int h; /* table level */
- register uInt i; /* counter, current code */
- register uInt j; /* counter */
- register int k; /* number of bits in current code */
- int l; /* bits per table (returned in m) */
- uInt mask; /* (1 << w) - 1, to avoid cc -O bug on HP */
- register uIntf *p; /* pointer into c[], b[], or v[] */
- inflate_huft *q; /* points to current table */
- struct inflate_huft_s r; /* table entry for structure assignment */
- inflate_huft *u[BMAX]; /* table stack */
- register int w; /* bits before this table == (l * h) */
- uInt x[BMAX+1]; /* bit offsets, then code stack */
- uIntf *xp; /* pointer into x */
- int y; /* number of dummy codes added */
- uInt z; /* number of entries in current table */
-
-
- /* Generate counts for each bit length */
- p = c;
-#define C0 *p++ = 0;
-#define C2 C0 C0 C0 C0
-#define C4 C2 C2 C2 C2
- C4 /* clear c[]--assume BMAX+1 is 16 */
- p = b; i = n;
- do {
- c[*p++]++; /* assume all entries <= BMAX */
- } while (--i);
- if (c[0] == n) /* null input--all zero length codes */
- {
- *t = (inflate_huft *)Z_NULL;
- *m = 0;
- return Z_OK;
- }
-
-
- /* Find minimum and maximum length, bound *m by those */
- l = *m;
- for (j = 1; j <= BMAX; j++)
- if (c[j])
- break;
- k = j; /* minimum code length */
- if ((uInt)l < j)
- l = j;
- for (i = BMAX; i; i--)
- if (c[i])
- break;
- g = i; /* maximum code length */
- if ((uInt)l > i)
- l = i;
- *m = l;
-
-
- /* Adjust last length count to fill out codes, if needed */
- for (y = 1 << j; j < i; j++, y <<= 1)
- if ((y -= c[j]) < 0)
- return Z_DATA_ERROR;
- if ((y -= c[i]) < 0)
- return Z_DATA_ERROR;
- c[i] += y;
-
-
- /* Generate starting offsets into the value table for each length */
- x[1] = j = 0;
- p = c + 1; xp = x + 2;
- while (--i) { /* note that i == g from above */
- *xp++ = (j += *p++);
- }
-
-
- /* Make a table of values in order of bit lengths */
- p = b; i = 0;
- do {
- if ((j = *p++) != 0)
- v[x[j]++] = i;
- } while (++i < n);
- n = x[g]; /* set n to length of v */
-
-
- /* Generate the Huffman codes and for each, make the table entries */
- x[0] = i = 0; /* first Huffman code is zero */
- p = v; /* grab values in bit order */
- h = -1; /* no tables yet--level -1 */
- w = -l; /* bits decoded == (l * h) */
- u[0] = (inflate_huft *)Z_NULL; /* just to keep compilers happy */
- q = (inflate_huft *)Z_NULL; /* ditto */
- z = 0; /* ditto */
-
- /* go through the bit lengths (k already is bits in shortest code) */
- for (; k <= g; k++)
- {
- a = c[k];
- while (a--)
- {
- /* here i is the Huffman code of length k bits for value *p */
- /* make tables up to required level */
- while (k > w + l)
- {
- h++;
- w += l; /* previous table always l bits */
-
- /* compute minimum size table less than or equal to l bits */
- z = g - w;
- z = z > (uInt)l ? l : z; /* table size upper limit */
- if ((f = 1 << (j = k - w)) > a + 1) /* try a k-w bit table */
- { /* too few codes for k-w bit table */
- f -= a + 1; /* deduct codes from patterns left */
- xp = c + k;
- if (j < z)
- while (++j < z) /* try smaller tables up to z bits */
- {
- if ((f <<= 1) <= *++xp)
- break; /* enough codes to use up j bits */
- f -= *xp; /* else deduct codes from patterns */
- }
- }
- z = 1 << j; /* table entries for j-bit table */
-
- /* allocate new table */
- if (*hn + z > MANY) /* (note: doesn't matter for fixed) */
- return Z_DATA_ERROR; /* overflow of MANY */
- u[h] = q = hp + *hn;
- *hn += z;
-
- /* connect to last table, if there is one */
- if (h)
- {
- x[h] = i; /* save pattern for backing up */
- r.bits = (Byte)l; /* bits to dump before this table */
- r.exop = (Byte)j; /* bits in this table */
- j = i >> (w - l);
- r.base = (uInt)(q - u[h-1] - j); /* offset to this table */
- u[h-1][j] = r; /* connect to last table */
- }
- else
- *t = q; /* first table is returned result */
- }
-
- /* set up table entry in r */
- r.bits = (Byte)(k - w);
- if (p >= v + n)
- r.exop = 128 + 64; /* out of values--invalid code */
- else if (*p < s)
- {
- r.exop = (Byte)(*p < 256 ? 0 : 32 + 64); /* 256 is end-of-block */
- r.base = *p++; /* simple code is just the value */
- }
- else
- {
- r.exop = (Byte)(e[*p - s] + 16 + 64);/* non-simple--look up in lists */
- r.base = d[*p++ - s];
- }
-
- /* fill code-like entries with r */
- f = 1 << (k - w);
- for (j = i >> w; j < z; j += f)
- q[j] = r;
-
- /* backwards increment the k-bit code i */
- for (j = 1 << (k - 1); i & j; j >>= 1)
- i ^= j;
- i ^= j;
-
- /* backup over finished tables */
- mask = (1 << w) - 1; /* needed on HP, cc -O bug */
- while ((i & mask) != x[h])
- {
- h--; /* don't need to update q */
- w -= l;
- mask = (1 << w) - 1;
- }
- }
- }
-
-
- /* Return Z_BUF_ERROR if we were given an incomplete table */
- return y != 0 && g != 1 ? Z_BUF_ERROR : Z_OK;
-}
-
-
-int inflate_trees_bits(c, bb, tb, hp, z)
-uIntf *c; /* 19 code lengths */
-uIntf *bb; /* bits tree desired/actual depth */
-inflate_huft * FAR *tb; /* bits tree result */
-inflate_huft *hp; /* space for trees */
-z_streamp z; /* for messages */
-{
- int r;
- uInt hn = 0; /* hufts used in space */
- uIntf *v; /* work area for huft_build */
-
- if ((v = (uIntf*)ZALLOC(z, 19, sizeof(uInt))) == Z_NULL)
- return Z_MEM_ERROR;
- r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL,
- tb, bb, hp, &hn, v);
- if (r == Z_DATA_ERROR)
- z->msg = (char*)"oversubscribed dynamic bit lengths tree";
- else if (r == Z_BUF_ERROR || *bb == 0)
- {
- z->msg = (char*)"incomplete dynamic bit lengths tree";
- r = Z_DATA_ERROR;
- }
- ZFREE(z, v);
- return r;
-}
-
-
-int inflate_trees_dynamic(nl, nd, c, bl, bd, tl, td, hp, z)
-uInt nl; /* number of literal/length codes */
-uInt nd; /* number of distance codes */
-uIntf *c; /* that many (total) code lengths */
-uIntf *bl; /* literal desired/actual bit depth */
-uIntf *bd; /* distance desired/actual bit depth */
-inflate_huft * FAR *tl; /* literal/length tree result */
-inflate_huft * FAR *td; /* distance tree result */
-inflate_huft *hp; /* space for trees */
-z_streamp z; /* for messages */
-{
- int r;
- uInt hn = 0; /* hufts used in space */
- uIntf *v; /* work area for huft_build */
-
- /* allocate work area */
- if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL)
- return Z_MEM_ERROR;
-
- /* build literal/length tree */
- r = huft_build(c, nl, 257, cplens, cplext, tl, bl, hp, &hn, v);
- if (r != Z_OK || *bl == 0)
- {
- if (r == Z_DATA_ERROR)
- z->msg = (char*)"oversubscribed literal/length tree";
- else if (r != Z_MEM_ERROR)
- {
- z->msg = (char*)"incomplete literal/length tree";
- r = Z_DATA_ERROR;
- }
- ZFREE(z, v);
- return r;
- }
-
- /* build distance tree */
- r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, hp, &hn, v);
- if (r != Z_OK || (*bd == 0 && nl > 257))
- {
- if (r == Z_DATA_ERROR)
- z->msg = (char*)"oversubscribed distance tree";
- else if (r == Z_BUF_ERROR) {
-#ifdef PKZIP_BUG_WORKAROUND
- r = Z_OK;
- }
-#else
- z->msg = (char*)"incomplete distance tree";
- r = Z_DATA_ERROR;
- }
- else if (r != Z_MEM_ERROR)
- {
- z->msg = (char*)"empty distance tree with lengths";
- r = Z_DATA_ERROR;
- }
- ZFREE(z, v);
- return r;
-#endif
- }
-
- /* done */
- ZFREE(z, v);
- return Z_OK;
-}
-
-
-/* build fixed tables only once--keep them here */
-#ifdef BUILDFIXED
-local int fixed_built = 0;
-#define FIXEDH 544 /* number of hufts used by fixed tables */
-local inflate_huft fixed_mem[FIXEDH];
-local uInt fixed_bl;
-local uInt fixed_bd;
-local inflate_huft *fixed_tl;
-local inflate_huft *fixed_td;
-#else
-#include "inffixed.h"
-#endif
-
-
-int inflate_trees_fixed(bl, bd, tl, td, z)
-uIntf *bl; /* literal desired/actual bit depth */
-uIntf *bd; /* distance desired/actual bit depth */
-inflate_huft * FAR *tl; /* literal/length tree result */
-inflate_huft * FAR *td; /* distance tree result */
-z_streamp z; /* for memory allocation */
-{
-#ifdef BUILDFIXED
- /* build fixed tables if not already */
- if (!fixed_built)
- {
- int k; /* temporary variable */
- uInt f = 0; /* number of hufts used in fixed_mem */
- uIntf *c; /* length list for huft_build */
- uIntf *v; /* work area for huft_build */
-
- /* allocate memory */
- if ((c = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL)
- return Z_MEM_ERROR;
- if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL)
- {
- ZFREE(z, c);
- return Z_MEM_ERROR;
- }
-
- /* literal table */
- for (k = 0; k < 144; k++)
- c[k] = 8;
- for (; k < 256; k++)
- c[k] = 9;
- for (; k < 280; k++)
- c[k] = 7;
- for (; k < 288; k++)
- c[k] = 8;
- fixed_bl = 9;
- huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl,
- fixed_mem, &f, v);
-
- /* distance table */
- for (k = 0; k < 30; k++)
- c[k] = 5;
- fixed_bd = 5;
- huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd,
- fixed_mem, &f, v);
-
- /* done */
- ZFREE(z, v);
- ZFREE(z, c);
- fixed_built = 1;
- }
-#endif
- *bl = fixed_bl;
- *bd = fixed_bd;
- *tl = fixed_tl;
- *td = fixed_td;
- return Z_OK;
-}
diff --git a/zlib-1.1.4/inftrees.h b/zlib-1.1.4/inftrees.h
deleted file mode 100644
index 04b73b7..0000000
--- a/zlib-1.1.4/inftrees.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* Huffman code lookup table entry--this entry is four bytes for machines
- that have 16-bit pointers (e.g. PC's in the small or medium model). */
-
-typedef struct inflate_huft_s FAR inflate_huft;
-
-struct inflate_huft_s {
- union {
- struct {
- Byte Exop; /* number of extra bits or operation */
- Byte Bits; /* number of bits in this code or subcode */
- } what;
- uInt pad; /* pad structure to a power of 2 (4 bytes for */
- } word; /* 16-bit, 8 bytes for 32-bit int's) */
- uInt base; /* literal, length base, distance base,
- or table offset */
-};
-
-/* Maximum size of dynamic tree. The maximum found in a long but non-
- exhaustive search was 1004 huft structures (850 for length/literals
- and 154 for distances, the latter actually the result of an
- exhaustive search). The actual maximum is not known, but the
- value below is more than safe. */
-#define MANY 1440
-
-extern int inflate_trees_bits OF((
- uIntf *, /* 19 code lengths */
- uIntf *, /* bits tree desired/actual depth */
- inflate_huft * FAR *, /* bits tree result */
- inflate_huft *, /* space for trees */
- z_streamp)); /* for messages */
-
-extern int inflate_trees_dynamic OF((
- uInt, /* number of literal/length codes */
- uInt, /* number of distance codes */
- uIntf *, /* that many (total) code lengths */
- uIntf *, /* literal desired/actual bit depth */
- uIntf *, /* distance desired/actual bit depth */
- inflate_huft * FAR *, /* literal/length tree result */
- inflate_huft * FAR *, /* distance tree result */
- inflate_huft *, /* space for trees */
- z_streamp)); /* for messages */
-
-extern int inflate_trees_fixed OF((
- uIntf *, /* literal desired/actual bit depth */
- uIntf *, /* distance desired/actual bit depth */
- inflate_huft * FAR *, /* literal/length tree result */
- inflate_huft * FAR *, /* distance tree result */
- z_streamp)); /* for memory allocation */
diff --git a/zlib-1.1.4/infutil.c b/zlib-1.1.4/infutil.c
deleted file mode 100644
index 9a07622..0000000
--- a/zlib-1.1.4/infutil.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* inflate_util.c -- data and routines common to blocks and codes
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "infblock.h"
-#include "inftrees.h"
-#include "infcodes.h"
-#include "infutil.h"
-
-struct inflate_codes_state {int dummy;}; /* for buggy compilers */
-
-/* And'ing with mask[n] masks the lower n bits */
-uInt inflate_mask[17] = {
- 0x0000,
- 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
- 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
-};
-
-
-/* copy as much as possible from the sliding window to the output area */
-int inflate_flush(s, z, r)
-inflate_blocks_statef *s;
-z_streamp z;
-int r;
-{
- uInt n;
- Bytef *p;
- Bytef *q;
-
- /* local copies of source and destination pointers */
- p = z->next_out;
- q = s->read;
-
- /* compute number of bytes to copy as far as end of window */
- n = (uInt)((q <= s->write ? s->write : s->end) - q);
- if (n > z->avail_out) n = z->avail_out;
- if (n && r == Z_BUF_ERROR) r = Z_OK;
-
- /* update counters */
- z->avail_out -= n;
- z->total_out += n;
-
- /* update check information */
- if (s->checkfn != Z_NULL)
- z->adler = s->check = (*s->checkfn)(s->check, q, n);
-
- /* copy as far as end of window */
- zmemcpy(p, q, n);
- p += n;
- q += n;
-
- /* see if more to copy at beginning of window */
- if (q == s->end)
- {
- /* wrap pointers */
- q = s->window;
- if (s->write == s->end)
- s->write = s->window;
-
- /* compute bytes to copy */
- n = (uInt)(s->write - q);
- if (n > z->avail_out) n = z->avail_out;
- if (n && r == Z_BUF_ERROR) r = Z_OK;
-
- /* update counters */
- z->avail_out -= n;
- z->total_out += n;
-
- /* update check information */
- if (s->checkfn != Z_NULL)
- z->adler = s->check = (*s->checkfn)(s->check, q, n);
-
- /* copy */
- zmemcpy(p, q, n);
- p += n;
- q += n;
- }
-
- /* update pointers */
- z->next_out = p;
- s->read = q;
-
- /* done */
- return r;
-}
diff --git a/zlib-1.1.4/infutil.h b/zlib-1.1.4/infutil.h
deleted file mode 100644
index 4401df8..0000000
--- a/zlib-1.1.4/infutil.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* infutil.h -- types and macros common to blocks and codes
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-#ifndef _INFUTIL_H
-#define _INFUTIL_H
-
-typedef enum {
- TYPE, /* get type bits (3, including end bit) */
- LENS, /* get lengths for stored */
- STORED, /* processing stored block */
- TABLE, /* get table lengths */
- BTREE, /* get bit lengths tree for a dynamic block */
- DTREE, /* get length, distance trees for a dynamic block */
- CODES, /* processing fixed or dynamic block */
- DRY, /* output remaining window bytes */
- DONE, /* finished last block, done */
- BAD} /* got a data error--stuck here */
-inflate_block_mode;
-
-/* inflate blocks semi-private state */
-struct inflate_blocks_state {
-
- /* mode */
- inflate_block_mode mode; /* current inflate_block mode */
-
- /* mode dependent information */
- union {
- uInt left; /* if STORED, bytes left to copy */
- struct {
- uInt table; /* table lengths (14 bits) */
- uInt index; /* index into blens (or border) */
- uIntf *blens; /* bit lengths of codes */
- uInt bb; /* bit length tree depth */
- inflate_huft *tb; /* bit length decoding tree */
- } trees; /* if DTREE, decoding info for trees */
- struct {
- inflate_codes_statef
- *codes;
- } decode; /* if CODES, current state */
- } sub; /* submode */
- uInt last; /* true if this block is the last block */
-
- /* mode independent information */
- uInt bitk; /* bits in bit buffer */
- uLong bitb; /* bit buffer */
- inflate_huft *hufts; /* single malloc for tree space */
- Bytef *window; /* sliding window */
- Bytef *end; /* one byte after sliding window */
- Bytef *read; /* window read pointer */
- Bytef *write; /* window write pointer */
- check_func checkfn; /* check function */
- uLong check; /* check on output */
-
-};
-
-
-/* defines for inflate input/output */
-/* update pointers and return */
-#define UPDBITS {s->bitb=b;s->bitk=k;}
-#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;}
-#define UPDOUT {s->write=q;}
-#define UPDATE {UPDBITS UPDIN UPDOUT}
-#define LEAVE {UPDATE return inflate_flush(s,z,r);}
-/* get bytes and bits */
-#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;}
-#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
-#define NEXTBYTE (n--,*p++)
-#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define DUMPBITS(j) {b>>=(j);k-=(j);}
-/* output bytes */
-#define WAVAIL (uInt)(q<s->read?s->read-q-1:s->end-q)
-#define LOADOUT {q=s->write;m=(uInt)WAVAIL;}
-#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=(uInt)WAVAIL;}}
-#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
-#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;}
-#define OUTBYTE(a) {*q++=(Byte)(a);m--;}
-/* load local pointers */
-#define LOAD {LOADIN LOADOUT}
-
-/* masks for lower bits (size given to avoid silly warnings with Visual C++) */
-extern uInt inflate_mask[17];
-
-/* copy as much as possible from the sliding window to the output area */
-extern int inflate_flush OF((
- inflate_blocks_statef *,
- z_streamp ,
- int));
-
-struct internal_state {int dummy;}; /* for buggy compilers */
-
-#endif
diff --git a/zlib-1.1.4/maketree.c b/zlib-1.1.4/maketree.c
deleted file mode 100644
index a16d4b1..0000000
--- a/zlib-1.1.4/maketree.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* maketree.c -- make inffixed.h table for decoding fixed codes
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* This program is included in the distribution for completeness.
- You do not need to compile or run this program since inffixed.h
- is already included in the distribution. To use this program
- you need to compile zlib with BUILDFIXED defined and then compile
- and link this program with the zlib library. Then the output of
- this program can be piped to inffixed.h. */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "zutil.h"
-#include "inftrees.h"
-
-/* simplify the use of the inflate_huft type with some defines */
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* generate initialization table for an inflate_huft structure array */
-void maketree(uInt b, inflate_huft *t)
-{
- int i, e;
-
- i = 0;
- while (1)
- {
- e = t[i].exop;
- if (e && (e & (16+64)) == 0) /* table pointer */
- {
- fprintf(stderr, "maketree: cannot initialize sub-tables!\n");
- exit(1);
- }
- if (i % 4 == 0)
- printf("\n ");
- printf(" {{{%u,%u}},%u}", t[i].exop, t[i].bits, t[i].base);
- if (++i == (1<<b))
- break;
- putchar(',');
- }
- puts("");
-}
-
-/* create the fixed tables in C initialization syntax */
-void main(void)
-{
- int r;
- uInt bl, bd;
- inflate_huft *tl, *td;
- z_stream z;
-
- z.zalloc = zcalloc;
- z.opaque = (voidpf)0;
- z.zfree = zcfree;
- r = inflate_trees_fixed(&bl, &bd, &tl, &td, &z);
- if (r)
- {
- fprintf(stderr, "inflate_trees_fixed error %d\n", r);
- return;
- }
- puts("/* inffixed.h -- table for decoding fixed codes");
- puts(" * Generated automatically by the maketree.c program");
- puts(" */");
- puts("");
- puts("/* WARNING: this file should *not* be used by applications. It is");
- puts(" part of the implementation of the compression library and is");
- puts(" subject to change. Applications should only use zlib.h.");
- puts(" */");
- puts("");
- printf("local uInt fixed_bl = %d;\n", bl);
- printf("local uInt fixed_bd = %d;\n", bd);
- printf("local inflate_huft fixed_tl[] = {");
- maketree(bl, tl);
- puts(" };");
- printf("local inflate_huft fixed_td[] = {");
- maketree(bd, td);
- puts(" };");
-}
diff --git a/zlib-1.1.4/minigzip.c b/zlib-1.1.4/minigzip.c
deleted file mode 100644
index 97b7c2d..0000000
--- a/zlib-1.1.4/minigzip.c
+++ /dev/null
@@ -1,320 +0,0 @@
-/* minigzip.c -- simulate gzip using the zlib compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * minigzip is a minimal implementation of the gzip utility. This is
- * only an example of using zlib and isn't meant to replace the
- * full-featured gzip. No attempt is made to deal with file systems
- * limiting names to 14 or 8+3 characters, etc... Error checking is
- * very limited. So use minigzip only for testing; use gzip for the
- * real thing. On MSDOS, use only on file names without extension
- * or in pipe mode.
- */
-
-/* @(#) $Id$ */
-
-#include <stdio.h>
-#include "zlib.h"
-
-#ifdef STDC
-# include <string.h>
-# include <stdlib.h>
-#else
- extern void exit OF((int));
-#endif
-
-#ifdef USE_MMAP
-# include <sys/types.h>
-# include <sys/mman.h>
-# include <sys/stat.h>
-#endif
-
-#if defined(MSDOS) || defined(OS2) || defined(WIN32)
-# include <fcntl.h>
-# include <io.h>
-# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
-#else
-# define SET_BINARY_MODE(file)
-#endif
-
-#ifdef VMS
-# define unlink delete
-# define GZ_SUFFIX "-gz"
-#endif
-#ifdef RISCOS
-# define unlink remove
-# define GZ_SUFFIX "-gz"
-# define fileno(file) file->__file
-#endif
-#if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-# include <unix.h> /* for fileno */
-#endif
-
-#ifndef WIN32 /* unlink already in stdio.h for WIN32 */
- extern int unlink OF((const char *));
-#endif
-
-#ifndef GZ_SUFFIX
-# define GZ_SUFFIX ".gz"
-#endif
-#define SUFFIX_LEN (sizeof(GZ_SUFFIX)-1)
-
-#define BUFLEN 16384
-#define MAX_NAME_LEN 1024
-
-#ifdef MAXSEG_64K
-# define local static
- /* Needed for systems with limitation on stack size. */
-#else
-# define local
-#endif
-
-char *prog;
-
-void error OF((const char *msg));
-void gz_compress OF((FILE *in, gzFile out));
-#ifdef USE_MMAP
-int gz_compress_mmap OF((FILE *in, gzFile out));
-#endif
-void gz_uncompress OF((gzFile in, FILE *out));
-void file_compress OF((char *file, char *mode));
-void file_uncompress OF((char *file));
-int main OF((int argc, char *argv[]));
-
-/* ===========================================================================
- * Display error message and exit
- */
-void error(msg)
- const char *msg;
-{
- fprintf(stderr, "%s: %s\n", prog, msg);
- exit(1);
-}
-
-/* ===========================================================================
- * Compress input to output then close both files.
- */
-
-void gz_compress(in, out)
- FILE *in;
- gzFile out;
-{
- local char buf[BUFLEN];
- int len;
- int err;
-
-#ifdef USE_MMAP
- /* Try first compressing with mmap. If mmap fails (minigzip used in a
- * pipe), use the normal fread loop.
- */
- if (gz_compress_mmap(in, out) == Z_OK) return;
-#endif
- for (;;) {
- len = fread(buf, 1, sizeof(buf), in);
- if (ferror(in)) {
- perror("fread");
- exit(1);
- }
- if (len == 0) break;
-
- if (gzwrite(out, buf, (unsigned)len) != len) error(gzerror(out, &err));
- }
- fclose(in);
- if (gzclose(out) != Z_OK) error("failed gzclose");
-}
-
-#ifdef USE_MMAP /* MMAP version, Miguel Albrecht <malbrech@eso.org> */
-
-/* Try compressing the input file at once using mmap. Return Z_OK if
- * if success, Z_ERRNO otherwise.
- */
-int gz_compress_mmap(in, out)
- FILE *in;
- gzFile out;
-{
- int len;
- int err;
- int ifd = fileno(in);
- caddr_t buf; /* mmap'ed buffer for the entire input file */
- off_t buf_len; /* length of the input file */
- struct stat sb;
-
- /* Determine the size of the file, needed for mmap: */
- if (fstat(ifd, &sb) < 0) return Z_ERRNO;
- buf_len = sb.st_size;
- if (buf_len <= 0) return Z_ERRNO;
-
- /* Now do the actual mmap: */
- buf = mmap((caddr_t) 0, buf_len, PROT_READ, MAP_SHARED, ifd, (off_t)0);
- if (buf == (caddr_t)(-1)) return Z_ERRNO;
-
- /* Compress the whole file at once: */
- len = gzwrite(out, (char *)buf, (unsigned)buf_len);
-
- if (len != (int)buf_len) error(gzerror(out, &err));
-
- munmap(buf, buf_len);
- fclose(in);
- if (gzclose(out) != Z_OK) error("failed gzclose");
- return Z_OK;
-}
-#endif /* USE_MMAP */
-
-/* ===========================================================================
- * Uncompress input to output then close both files.
- */
-void gz_uncompress(in, out)
- gzFile in;
- FILE *out;
-{
- local char buf[BUFLEN];
- int len;
- int err;
-
- for (;;) {
- len = gzread(in, buf, sizeof(buf));
- if (len < 0) error (gzerror(in, &err));
- if (len == 0) break;
-
- if ((int)fwrite(buf, 1, (unsigned)len, out) != len) {
- error("failed fwrite");
- }
- }
- if (fclose(out)) error("failed fclose");
-
- if (gzclose(in) != Z_OK) error("failed gzclose");
-}
-
-
-/* ===========================================================================
- * Compress the given file: create a corresponding .gz file and remove the
- * original.
- */
-void file_compress(file, mode)
- char *file;
- char *mode;
-{
- local char outfile[MAX_NAME_LEN];
- FILE *in;
- gzFile out;
-
- strcpy(outfile, file);
- strcat(outfile, GZ_SUFFIX);
-
- in = fopen(file, "rb");
- if (in == NULL) {
- perror(file);
- exit(1);
- }
- out = gzopen(outfile, mode);
- if (out == NULL) {
- fprintf(stderr, "%s: can't gzopen %s\n", prog, outfile);
- exit(1);
- }
- gz_compress(in, out);
-
- unlink(file);
-}
-
-
-/* ===========================================================================
- * Uncompress the given file and remove the original.
- */
-void file_uncompress(file)
- char *file;
-{
- local char buf[MAX_NAME_LEN];
- char *infile, *outfile;
- FILE *out;
- gzFile in;
- int len = strlen(file);
-
- strcpy(buf, file);
-
- if (len > SUFFIX_LEN && strcmp(file+len-SUFFIX_LEN, GZ_SUFFIX) == 0) {
- infile = file;
- outfile = buf;
- outfile[len-3] = '\0';
- } else {
- outfile = file;
- infile = buf;
- strcat(infile, GZ_SUFFIX);
- }
- in = gzopen(infile, "rb");
- if (in == NULL) {
- fprintf(stderr, "%s: can't gzopen %s\n", prog, infile);
- exit(1);
- }
- out = fopen(outfile, "wb");
- if (out == NULL) {
- perror(file);
- exit(1);
- }
-
- gz_uncompress(in, out);
-
- unlink(infile);
-}
-
-
-/* ===========================================================================
- * Usage: minigzip [-d] [-f] [-h] [-1 to -9] [files...]
- * -d : decompress
- * -f : compress with Z_FILTERED
- * -h : compress with Z_HUFFMAN_ONLY
- * -1 to -9 : compression level
- */
-
-int main(argc, argv)
- int argc;
- char *argv[];
-{
- int uncompr = 0;
- gzFile file;
- char outmode[20];
-
- strcpy(outmode, "wb6 ");
-
- prog = argv[0];
- argc--, argv++;
-
- while (argc > 0) {
- if (strcmp(*argv, "-d") == 0)
- uncompr = 1;
- else if (strcmp(*argv, "-f") == 0)
- outmode[3] = 'f';
- else if (strcmp(*argv, "-h") == 0)
- outmode[3] = 'h';
- else if ((*argv)[0] == '-' && (*argv)[1] >= '1' && (*argv)[1] <= '9' &&
- (*argv)[2] == 0)
- outmode[2] = (*argv)[1];
- else
- break;
- argc--, argv++;
- }
- if (argc == 0) {
- SET_BINARY_MODE(stdin);
- SET_BINARY_MODE(stdout);
- if (uncompr) {
- file = gzdopen(fileno(stdin), "rb");
- if (file == NULL) error("can't gzdopen stdin");
- gz_uncompress(file, stdout);
- } else {
- file = gzdopen(fileno(stdout), outmode);
- if (file == NULL) error("can't gzdopen stdout");
- gz_compress(stdin, file);
- }
- } else {
- do {
- if (uncompr) {
- file_uncompress(*argv);
- } else {
- file_compress(*argv, outmode);
- }
- } while (argv++, --argc);
- }
- exit(0);
- return 0; /* to avoid warning */
-}
diff --git a/zlib-1.1.4/msdos/Makefile.b32 b/zlib-1.1.4/msdos/Makefile.b32
deleted file mode 100644
index f476da9..0000000
--- a/zlib-1.1.4/msdos/Makefile.b32
+++ /dev/null
@@ -1,104 +0,0 @@
-# Makefile for zlib
-# Borland C++
-
-# This version of the zlib makefile was adapted by Chris Young for use
-# with Borland C 4.5x with the Dos Power Pack for a 32-bit protected mode
-# flat memory model. It was created for use with POV-Ray ray tracer and
-# you may choose to edit the CFLAGS to suit your needs but the
-# switches -WX and -DMSDOS are required.
-# -- Chris Young 76702.1655@compuserve.com
-
-# To use, do "make -fmakefile.b32"
-
-# See zconf.h for details about the memory requirements.
-
-# ------------- Borland C++ -------------
-MODEL=-WX
-CFLAGS= $(MODEL) -P-C -K -N- -k- -d -3 -r- -v- -f -DMSDOS
-CC=bcc32
-LD=bcc32
-LIB=tlib
-LDFLAGS= $(MODEL)
-O=.obj
-
-# variables
-OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
- trees$(O)
-OBJP1 = adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O)+\
- trees$(O)
-OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
- infutil$(O) inffast$(O)
-OBJP2 = zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O)+\
- infutil$(O)+inffast$(O)
-
-all: test
-
-adler32.obj: adler32.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-compress.obj: compress.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-crc32.obj: crc32.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-gzio.obj: gzio.c zutil.h zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\
- infcodes.h infutil.h
- $(CC) -c $(CFLAGS) $*.c
-
-infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\
- infcodes.h inffast.h
- $(CC) -c $(CFLAGS) $*.c
-
-inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h
- $(CC) -c $(CFLAGS) $*.c
-
-inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
- $(CC) -c $(CFLAGS) $*.c
-
-infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h
- $(CC) -c $(CFLAGS) $*.c
-
-inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
- $(CC) -c $(CFLAGS) $*.c
-
-trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-uncompr.obj: uncompr.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-zutil.obj: zutil.c zutil.h zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-example.obj: example.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-minigzip.obj: minigzip.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-# we must cut the command line to fit in the MS/DOS 128 byte limit:
-zlib.lib: $(OBJ1) $(OBJ2)
- del zlib.lib
- $(LIB) zlib +$(OBJP1)
- $(LIB) zlib +$(OBJP2)
-
-example.exe: example.obj zlib.lib
- $(LD) $(LDFLAGS) example.obj zlib.lib
-
-minigzip.exe: minigzip.obj zlib.lib
- $(LD) $(LDFLAGS) minigzip.obj zlib.lib
-
-test: example.exe minigzip.exe
- example
- echo hello world | minigzip | minigzip -d
-
-#clean:
-# del *.obj
-# del *.exe
diff --git a/zlib-1.1.4/msdos/Makefile.bor b/zlib-1.1.4/msdos/Makefile.bor
deleted file mode 100644
index f5651b4..0000000
--- a/zlib-1.1.4/msdos/Makefile.bor
+++ /dev/null
@@ -1,125 +0,0 @@
-# Makefile for zlib
-# Borland C++ ************ UNTESTED ***********
-
-# To use, do "make -fmakefile.bor"
-# To compile in small model, set below: MODEL=s
-
-# WARNING: the small model is supported but only for small values of
-# MAX_WBITS and MAX_MEM_LEVEL. For example:
-# -DMAX_WBITS=11 -DDEF_WBITS=11 -DMAX_MEM_LEVEL=3
-# If you wish to reduce the memory requirements (default 256K for big
-# objects plus a few K), you can add to the LOC macro below:
-# -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14
-# See zconf.h for details about the memory requirements.
-
-# ------------- Turbo C++, Borland C++ -------------
-
-# Optional nonstandard preprocessor flags (e.g. -DMAX_MEM_LEVEL=7)
-# should be added to the environment via "set LOCAL_ZLIB=-DFOO" or added
-# to the declaration of LOC here:
-LOC = $(LOCAL_ZLIB)
-
-# Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
-CPU_TYP = 0
-
-# Memory model: one of s, m, c, l (small, medium, compact, large)
-MODEL=l
-
-CC=bcc
-# replace bcc with tcc for Turbo C++ 1.0, with bcc32 for the 32 bit version
-LD=$(CC)
-AR=tlib
-
-# compiler flags
-CFLAGS=-O2 -Z -m$(MODEL) $(LOC)
-# replace "-O2" by "-O -G -a -d" for Turbo C++ 1.0
-
-LDFLAGS=-m$(MODEL)
-
-O=.obj
-
-# variables
-OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
- trees$(O)
-OBJP1 = adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O)+\
- trees$(O)
-OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
- infutil$(O) inffast$(O)
-OBJP2 = zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O)+\
- infutil$(O)+inffast$(O)
-
-ZLIB_H = zlib.h zconf.h
-ZUTIL_H = zutil.h $(ZLIB_H)
-
-ZLIB_LIB = zlib_$(MODEL).lib
-
-all: test
-
-# individual dependencies and action rules:
-adler32.obj: adler32.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-compress.obj: compress.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-crc32.obj: crc32.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-deflate.obj: deflate.c deflate.h $(ZUTIL_H)
- $(CC) -c $(CFLAGS) $*.c
-
-gzio.obj: gzio.c $(ZUTIL_H)
- $(CC) -c $(CFLAGS) $*.c
-
-infblock.obj: infblock.c $(ZUTIL_H) infblock.h inftrees.h infcodes.h infutil.h
- $(CC) -c $(CFLAGS) $*.c
-
-infcodes.obj: infcodes.c $(ZUTIL_H) inftrees.h infutil.h infcodes.h inffast.h
- $(CC) -c $(CFLAGS) $*.c
-
-inflate.obj: inflate.c $(ZUTIL_H) infblock.h
- $(CC) -c $(CFLAGS) $*.c
-
-inftrees.obj: inftrees.c $(ZUTIL_H) inftrees.h
- $(CC) -c $(CFLAGS) $*.c
-
-infutil.obj: infutil.c $(ZUTIL_H) inftrees.h infutil.h
- $(CC) -c $(CFLAGS) $*.c
-
-inffast.obj: inffast.c $(ZUTIL_H) inftrees.h infutil.h inffast.h
- $(CC) -c $(CFLAGS) $*.c
-
-trees.obj: trees.c deflate.h $(ZUTIL_H)
- $(CC) -c $(CFLAGS) $*.c
-
-uncompr.obj: uncompr.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-zutil.obj: zutil.c $(ZUTIL_H)
- $(CC) -c $(CFLAGS) $*.c
-
-example.obj: example.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-minigzip.obj: minigzip.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-# we must cut the command line to fit in the MS/DOS 128 byte limit:
-$(ZLIB_LIB): $(OBJ1) $(OBJ2)
- del $(ZLIB_LIB)
- $(AR) $(ZLIB_LIB) +$(OBJP1)
- $(AR) $(ZLIB_LIB) +$(OBJP2)
-
-example.exe: example.obj $(ZLIB_LIB)
- $(LD) $(LDFLAGS) example.obj $(ZLIB_LIB)
-
-minigzip.exe: minigzip.obj $(ZLIB_LIB)
- $(LD) $(LDFLAGS) minigzip.obj $(ZLIB_LIB)
-
-test: example.exe minigzip.exe
- example
- echo hello world | minigzip | minigzip -d
-
-#clean:
-# del *.obj
-# del *.exe
diff --git a/zlib-1.1.4/msdos/Makefile.dj2 b/zlib-1.1.4/msdos/Makefile.dj2
deleted file mode 100644
index 0ab431c..0000000
--- a/zlib-1.1.4/msdos/Makefile.dj2
+++ /dev/null
@@ -1,100 +0,0 @@
-# Makefile for zlib. Modified for djgpp v2.0 by F. J. Donahoe, 3/15/96.
-# Copyright (C) 1995-1998 Jean-loup Gailly.
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile, or to compile and test, type:
-#
-# make -fmakefile.dj2; make test -fmakefile.dj2
-#
-# To install libz.a, zconf.h and zlib.h in the djgpp directories, type:
-#
-# make install -fmakefile.dj2
-#
-# after first defining LIBRARY_PATH and INCLUDE_PATH in djgpp.env as
-# in the sample below if the pattern of the DJGPP distribution is to
-# be followed. Remember that, while <sp>'es around <=> are ignored in
-# makefiles, they are *not* in batch files or in djgpp.env.
-# - - - - -
-# [make]
-# INCLUDE_PATH=%\>;INCLUDE_PATH%%\DJDIR%\include
-# LIBRARY_PATH=%\>;LIBRARY_PATH%%\DJDIR%\lib
-# BUTT=-m486
-# - - - - -
-# Alternately, these variables may be defined below, overriding the values
-# in djgpp.env, as
-# INCLUDE_PATH=c:\usr\include
-# LIBRARY_PATH=c:\usr\lib
-
-CC=gcc
-
-#CFLAGS=-MMD -O
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-MMD -g -DDEBUG
-CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
- -Wstrict-prototypes -Wmissing-prototypes
-
-# If cp.exe is available, replace "copy /Y" with "cp -fp" .
-CP=copy /Y
-# If gnu install.exe is available, replace $(CP) with ginstall.
-INSTALL=$(CP)
-# The default value of RM is "rm -f." If "rm.exe" is found, comment out:
-RM=del
-LDLIBS=-L. -lz
-LD=$(CC) -s -o
-LDSHARED=$(CC)
-
-INCL=zlib.h zconf.h
-LIBS=libz.a
-
-AR=ar rcs
-
-prefix=/usr/local
-exec_prefix = $(prefix)
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-TEST_OBJS = example.o minigzip.o
-
-all: example.exe minigzip.exe
-
-test: all
- ./example
- echo hello world | .\minigzip | .\minigzip -d
-
-%.o : %.c
- $(CC) $(CFLAGS) -c $< -o $@
-
-libz.a: $(OBJS)
- $(AR) $@ $(OBJS)
-
-%.exe : %.o $(LIBS)
- $(LD) $@ $< $(LDLIBS)
-
-# INCLUDE_PATH and LIBRARY_PATH were set for [make] in djgpp.env .
-
-.PHONY : uninstall clean
-
-install: $(INCL) $(LIBS)
- -@if not exist $(INCLUDE_PATH)\nul mkdir $(INCLUDE_PATH)
- -@if not exist $(LIBRARY_PATH)\nul mkdir $(LIBRARY_PATH)
- $(INSTALL) zlib.h $(INCLUDE_PATH)
- $(INSTALL) zconf.h $(INCLUDE_PATH)
- $(INSTALL) libz.a $(LIBRARY_PATH)
-
-uninstall:
- $(RM) $(INCLUDE_PATH)\zlib.h
- $(RM) $(INCLUDE_PATH)\zconf.h
- $(RM) $(LIBRARY_PATH)\libz.a
-
-clean:
- $(RM) *.d
- $(RM) *.o
- $(RM) *.exe
- $(RM) libz.a
- $(RM) foo.gz
-
-DEPS := $(wildcard *.d)
-ifneq ($(DEPS),)
-include $(DEPS)
-endif
diff --git a/zlib-1.1.4/msdos/Makefile.emx b/zlib-1.1.4/msdos/Makefile.emx
deleted file mode 100644
index 0e5e5cc..0000000
--- a/zlib-1.1.4/msdos/Makefile.emx
+++ /dev/null
@@ -1,69 +0,0 @@
-# Makefile for zlib. Modified for emx 0.9c by Chr. Spieler, 6/17/98.
-# Copyright (C) 1995-1998 Jean-loup Gailly.
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile, or to compile and test, type:
-#
-# make -fmakefile.emx; make test -fmakefile.emx
-#
-
-CC=gcc
-
-#CFLAGS=-MMD -O
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-MMD -g -DDEBUG
-CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
- -Wstrict-prototypes -Wmissing-prototypes
-
-# If cp.exe is available, replace "copy /Y" with "cp -fp" .
-CP=copy /Y
-# If gnu install.exe is available, replace $(CP) with ginstall.
-INSTALL=$(CP)
-# The default value of RM is "rm -f." If "rm.exe" is found, comment out:
-RM=del
-LDLIBS=-L. -lzlib
-LD=$(CC) -s -o
-LDSHARED=$(CC)
-
-INCL=zlib.h zconf.h
-LIBS=zlib.a
-
-AR=ar rcs
-
-prefix=/usr/local
-exec_prefix = $(prefix)
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-TEST_OBJS = example.o minigzip.o
-
-all: example.exe minigzip.exe
-
-test: all
- ./example
- echo hello world | .\minigzip | .\minigzip -d
-
-%.o : %.c
- $(CC) $(CFLAGS) -c $< -o $@
-
-zlib.a: $(OBJS)
- $(AR) $@ $(OBJS)
-
-%.exe : %.o $(LIBS)
- $(LD) $@ $< $(LDLIBS)
-
-
-.PHONY : clean
-
-clean:
- $(RM) *.d
- $(RM) *.o
- $(RM) *.exe
- $(RM) zlib.a
- $(RM) foo.gz
-
-DEPS := $(wildcard *.d)
-ifneq ($(DEPS),)
-include $(DEPS)
-endif
diff --git a/zlib-1.1.4/msdos/Makefile.msc b/zlib-1.1.4/msdos/Makefile.msc
deleted file mode 100644
index 562201d..0000000
--- a/zlib-1.1.4/msdos/Makefile.msc
+++ /dev/null
@@ -1,121 +0,0 @@
-# Makefile for zlib
-# Microsoft C 5.1 or later
-
-# To use, do "make makefile.msc"
-# To compile in small model, set below: MODEL=S
-
-# If you wish to reduce the memory requirements (default 256K for big
-# objects plus a few K), you can add to the LOC macro below:
-# -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14
-# See zconf.h for details about the memory requirements.
-
-# ------------- Microsoft C 5.1 and later -------------
-
-# Optional nonstandard preprocessor flags (e.g. -DMAX_MEM_LEVEL=7)
-# should be added to the environment via "set LOCAL_ZLIB=-DFOO" or added
-# to the declaration of LOC here:
-LOC = $(LOCAL_ZLIB)
-
-# Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
-CPU_TYP = 0
-
-# Memory model: one of S, M, C, L (small, medium, compact, large)
-MODEL=L
-
-CC=cl
-CFLAGS=-nologo -A$(MODEL) -G$(CPU_TYP) -W3 -Oait -Gs $(LOC)
-#-Ox generates bad code with MSC 5.1
-LIB_CFLAGS=-Zl $(CFLAGS)
-
-LD=link
-LDFLAGS=/noi/e/st:0x1500/noe/farcall/packcode
-# "/farcall/packcode" are only useful for `large code' memory models
-# but should be a "no-op" for small code models.
-
-O=.obj
-
-# variables
-OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
- trees$(O)
-OBJP1 = adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O)+\
- trees$(O)
-OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
- infutil$(O) inffast$(O)
-OBJP2 = zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O)+\
- infutil$(O)+inffast$(O)
-
-ZLIB_H = zlib.h zconf.h
-ZUTIL_H = zutil.h $(ZLIB_H)
-
-ZLIB_LIB = zlib_$(MODEL).lib
-
-all: $(ZLIB_LIB) example.exe minigzip.exe
-
-# individual dependencies and action rules:
-adler32.obj: adler32.c $(ZLIB_H)
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-compress.obj: compress.c $(ZLIB_H)
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-crc32.obj: crc32.c $(ZLIB_H)
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-deflate.obj: deflate.c deflate.h $(ZUTIL_H)
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-gzio.obj: gzio.c $(ZUTIL_H)
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-infblock.obj: infblock.c $(ZUTIL_H) infblock.h inftrees.h infcodes.h infutil.h
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-infcodes.obj: infcodes.c $(ZUTIL_H) inftrees.h infutil.h infcodes.h inffast.h
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-inflate.obj: inflate.c $(ZUTIL_H) infblock.h
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-inftrees.obj: inftrees.c $(ZUTIL_H) inftrees.h
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-infutil.obj: infutil.c $(ZUTIL_H) inftrees.h infutil.h
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-inffast.obj: inffast.c $(ZUTIL_H) inftrees.h infutil.h inffast.h
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-trees.obj: trees.c deflate.h $(ZUTIL_H)
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-uncompr.obj: uncompr.c $(ZLIB_H)
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-zutil.obj: zutil.c $(ZUTIL_H)
- $(CC) -c $(LIB_CFLAGS) $*.c
-
-example.obj: example.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-minigzip.obj: minigzip.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-# we must cut the command line to fit in the MS/DOS 128 byte limit:
-$(ZLIB_LIB): $(OBJ1) $(OBJ2)
- if exist $(ZLIB_LIB) del $(ZLIB_LIB)
- lib $(ZLIB_LIB) $(OBJ1);
- lib $(ZLIB_LIB) $(OBJ2);
-
-example.exe: example.obj $(ZLIB_LIB)
- $(LD) $(LDFLAGS) example.obj,,,$(ZLIB_LIB);
-
-minigzip.exe: minigzip.obj $(ZLIB_LIB)
- $(LD) $(LDFLAGS) minigzip.obj,,,$(ZLIB_LIB);
-
-test: example.exe minigzip.exe
- example
- echo hello world | minigzip | minigzip -d
-
-#clean:
-# del *.obj
-# del *.exe
diff --git a/zlib-1.1.4/msdos/Makefile.tc b/zlib-1.1.4/msdos/Makefile.tc
deleted file mode 100644
index 63e0550..0000000
--- a/zlib-1.1.4/msdos/Makefile.tc
+++ /dev/null
@@ -1,108 +0,0 @@
-# Makefile for zlib
-# TurboC 2.0
-
-# To use, do "make -fmakefile.tc"
-# To compile in small model, set below: MODEL=-ms
-
-# WARNING: the small model is supported but only for small values of
-# MAX_WBITS and MAX_MEM_LEVEL. For example:
-# -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3
-# If you wish to reduce the memory requirements (default 256K for big
-# objects plus a few K), you can add to CFLAGS below:
-# -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14
-# See zconf.h for details about the memory requirements.
-
-# ------------- Turbo C 2.0 -------------
-MODEL=l
-# CFLAGS=-O2 -G -Z -m$(MODEL) -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3
-CFLAGS=-O2 -G -Z -m$(MODEL)
-CC=tcc -I\tc\include
-LD=tcc -L\tc\lib
-AR=tlib
-LDFLAGS=-m$(MODEL) -f-
-O=.obj
-
-# variables
-OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
- trees$(O)
-OBJP1 = adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O)+\
- trees$(O)
-OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
- infutil$(O) inffast$(O)
-OBJP2 = zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O)+\
- infutil$(O)+inffast$(O)
-
-ZLIB_H = zlib.h zconf.h
-ZUTIL_H = zutil.h $(ZLIB_H)
-
-ZLIB_LIB = zlib_$(MODEL).lib
-
-all: test
-
-adler32.obj: adler32.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-compress.obj: compress.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-crc32.obj: crc32.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-deflate.obj: deflate.c deflate.h $(ZUTIL_H)
- $(CC) -c $(CFLAGS) $*.c
-
-gzio.obj: gzio.c $(ZUTIL_H)
- $(CC) -c $(CFLAGS) $*.c
-
-infblock.obj: infblock.c $(ZUTIL_H) infblock.h inftrees.h infcodes.h infutil.h
- $(CC) -c $(CFLAGS) $*.c
-
-infcodes.obj: infcodes.c $(ZUTIL_H) inftrees.h infutil.h infcodes.h inffast.h
- $(CC) -c $(CFLAGS) $*.c
-
-inflate.obj: inflate.c $(ZUTIL_H) infblock.h
- $(CC) -c $(CFLAGS) $*.c
-
-inftrees.obj: inftrees.c $(ZUTIL_H) inftrees.h
- $(CC) -c $(CFLAGS) $*.c
-
-infutil.obj: infutil.c $(ZUTIL_H) inftrees.h infutil.h
- $(CC) -c $(CFLAGS) $*.c
-
-inffast.obj: inffast.c $(ZUTIL_H) inftrees.h infutil.h inffast.h
- $(CC) -c $(CFLAGS) $*.c
-
-trees.obj: trees.c deflate.h $(ZUTIL_H)
- $(CC) -c $(CFLAGS) $*.c
-
-uncompr.obj: uncompr.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-zutil.obj: zutil.c $(ZUTIL_H)
- $(CC) -c $(CFLAGS) $*.c
-
-example.obj: example.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-minigzip.obj: minigzip.c $(ZLIB_H)
- $(CC) -c $(CFLAGS) $*.c
-
-# we must cut the command line to fit in the MS/DOS 128 byte limit:
-$(ZLIB_LIB): $(OBJ1) $(OBJ2)
- del $(ZLIB_LIB)
- $(AR) $(ZLIB_LIB) +$(OBJP1)
- $(AR) $(ZLIB_LIB) +$(OBJP2)
-
-example.exe: example.obj $(ZLIB_LIB)
- $(LD) $(LDFLAGS) -eexample.exe example.obj $(ZLIB_LIB)
-
-minigzip.exe: minigzip.obj $(ZLIB_LIB)
- $(LD) $(LDFLAGS) -eminigzip.exe minigzip.obj $(ZLIB_LIB)
-
-test: example.exe minigzip.exe
- example
- echo hello world | minigzip | minigzip -d
-
-#clean:
-# del *.obj
-# del *.exe
diff --git a/zlib-1.1.4/msdos/Makefile.w32 b/zlib-1.1.4/msdos/Makefile.w32
deleted file mode 100644
index 0a05fa9..0000000
--- a/zlib-1.1.4/msdos/Makefile.w32
+++ /dev/null
@@ -1,97 +0,0 @@
-# Makefile for zlib
-# Microsoft 32-bit Visual C++ 4.0 or later (may work on earlier versions)
-
-# To use, do "nmake /f makefile.w32"
-
-# If you wish to reduce the memory requirements (default 256K for big
-# objects plus a few K), you can add to CFLAGS below:
-# -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14
-# See zconf.h for details about the memory requirements.
-
-# ------------- Microsoft Visual C++ 4.0 and later -------------
-MODEL=
-CFLAGS=-Ox -GA3s -nologo -W3
-CC=cl
-LD=link
-LDFLAGS=
-O=.obj
-
-# variables
-OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
- trees$(O)
-OBJP1 = adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O)+\
- trees$(O)
-OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
- infutil$(O) inffast$(O)
-OBJP2 = zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O)+\
- infutil$(O)+inffast$(O)
-
-all: zlib.lib example.exe minigzip.exe
-
-adler32.obj: adler32.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-compress.obj: compress.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-crc32.obj: crc32.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-gzio.obj: gzio.c zutil.h zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\
- infcodes.h infutil.h
- $(CC) -c $(CFLAGS) $*.c
-
-infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\
- infcodes.h inffast.h
- $(CC) -c $(CFLAGS) $*.c
-
-inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h
- $(CC) -c $(CFLAGS) $*.c
-
-inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
- $(CC) -c $(CFLAGS) $*.c
-
-infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h
- $(CC) -c $(CFLAGS) $*.c
-
-inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
- $(CC) -c $(CFLAGS) $*.c
-
-trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-uncompr.obj: uncompr.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-zutil.obj: zutil.c zutil.h zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-example.obj: example.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-minigzip.obj: minigzip.c zlib.h zconf.h
- $(CC) -c $(CFLAGS) $*.c
-
-zlib.lib: $(OBJ1) $(OBJ2)
- if exist zlib.lib del zlib.lib
- lib /OUT:zlib.lib $(OBJ1) $(OBJ2)
-
-example.exe: example.obj zlib.lib
- $(LD) $(LDFLAGS) example.obj zlib.lib /OUT:example.exe /SUBSYSTEM:CONSOLE
-
-minigzip.exe: minigzip.obj zlib.lib
- $(LD) $(LDFLAGS) minigzip.obj zlib.lib /OUT:minigzip.exe /SUBSYSTEM:CONSOLE
-
-test: example.exe minigzip.exe
- example
- echo hello world | minigzip | minigzip -d
-
-#clean:
-# del *.obj
-# del *.exe
diff --git a/zlib-1.1.4/msdos/Makefile.wat b/zlib-1.1.4/msdos/Makefile.wat
deleted file mode 100644
index 44bf860..0000000
--- a/zlib-1.1.4/msdos/Makefile.wat
+++ /dev/null
@@ -1,103 +0,0 @@
-# Makefile for zlib
-# Watcom 10a
-
-# This version of the zlib makefile was adapted by Chris Young for use
-# with Watcom 10a 32-bit protected mode flat memory model. It was created
-# for use with POV-Ray ray tracer and you may choose to edit the CFLAGS to
-# suit your needs but the -DMSDOS is required.
-# -- Chris Young 76702.1655@compuserve.com
-
-# To use, do "wmake -f makefile.wat"
-
-# See zconf.h for details about the memory requirements.
-
-# ------------- Watcom 10a -------------
-MODEL=-mf
-CFLAGS= $(MODEL) -fpi87 -fp5 -zp4 -5r -w5 -oneatx -DMSDOS
-CC=wcc386
-LD=wcl386
-LIB=wlib -b -c
-LDFLAGS=
-O=.obj
-
-# variables
-OBJ1=adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O)
-OBJ2=trees$(O) zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O)
-OBJ3=infutil$(O) inffast$(O)
-OBJP1=adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O)
-OBJP2=trees$(O)+zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O)
-OBJP3=infutil$(O)+inffast$(O)
-
-all: test
-
-adler32.obj: adler32.c zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-compress.obj: compress.c zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-crc32.obj: crc32.c zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-gzio.obj: gzio.c zutil.h zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h &
- infcodes.h infutil.h
- $(CC) $(CFLAGS) $*.c
-
-infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h &
- infcodes.h inffast.h
- $(CC) $(CFLAGS) $*.c
-
-inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h
- $(CC) $(CFLAGS) $*.c
-
-inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
- $(CC) $(CFLAGS) $*.c
-
-infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h
- $(CC) $(CFLAGS) $*.c
-
-inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
- $(CC) $(CFLAGS) $*.c
-
-trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-uncompr.obj: uncompr.c zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-zutil.obj: zutil.c zutil.h zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-example.obj: example.c zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-minigzip.obj: minigzip.c zlib.h zconf.h
- $(CC) $(CFLAGS) $*.c
-
-# we must cut the command line to fit in the MS/DOS 128 byte limit:
-zlib.lib: $(OBJ1) $(OBJ2) $(OBJ3)
- del zlib.lib
- $(LIB) zlib.lib +$(OBJP1)
- $(LIB) zlib.lib +$(OBJP2)
- $(LIB) zlib.lib +$(OBJP3)
-
-example.exe: example.obj zlib.lib
- $(LD) $(LDFLAGS) example.obj zlib.lib
-
-minigzip.exe: minigzip.obj zlib.lib
- $(LD) $(LDFLAGS) minigzip.obj zlib.lib
-
-test: minigzip.exe example.exe
- example
- echo hello world | minigzip | minigzip -d >test
- type test
-
-#clean:
-# del *.obj
-# del *.exe
diff --git a/zlib-1.1.4/msdos/zlib.def b/zlib-1.1.4/msdos/zlib.def
deleted file mode 100644
index 6c04412..0000000
--- a/zlib-1.1.4/msdos/zlib.def
+++ /dev/null
@@ -1,60 +0,0 @@
-LIBRARY "zlib"
-
-DESCRIPTION '"""zlib data compression library"""'
-
-EXETYPE NT
-
-SUBSYSTEM WINDOWS
-
-STUB 'WINSTUB.EXE'
-
-VERSION 1.13
-
-CODE EXECUTE READ
-
-DATA READ WRITE
-
-HEAPSIZE 1048576,4096
-
-EXPORTS
- adler32 @1
- compress @2
- crc32 @3
- deflate @4
- deflateCopy @5
- deflateEnd @6
- deflateInit2_ @7
- deflateInit_ @8
- deflateParams @9
- deflateReset @10
- deflateSetDictionary @11
- gzclose @12
- gzdopen @13
- gzerror @14
- gzflush @15
- gzopen @16
- gzread @17
- gzwrite @18
- inflate @19
- inflateEnd @20
- inflateInit2_ @21
- inflateInit_ @22
- inflateReset @23
- inflateSetDictionary @24
- inflateSync @25
- uncompress @26
- zlibVersion @27
- gzprintf @28
- gzputc @29
- gzgetc @30
- gzseek @31
- gzrewind @32
- gztell @33
- gzeof @34
- gzsetparams @35
- zError @36
- inflateSyncPoint @37
- get_crc_table @38
- compress2 @39
- gzputs @40
- gzgets @41
diff --git a/zlib-1.1.4/msdos/zlib.rc b/zlib-1.1.4/msdos/zlib.rc
deleted file mode 100644
index 556d4ff..0000000
--- a/zlib-1.1.4/msdos/zlib.rc
+++ /dev/null
@@ -1,32 +0,0 @@
-#include <windows.h>
-
-#define IDR_VERSION1 1
-IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE
- FILEVERSION 1,1,3,0
- PRODUCTVERSION 1,1,3,0
- FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
- FILEFLAGS 0
- FILEOS VOS_DOS_WINDOWS32
- FILETYPE VFT_DLL
- FILESUBTYPE 0 // not used
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904E4"
- //language ID = U.S. English, char set = Windows, Multilingual
-
- BEGIN
- VALUE "FileDescription", "zlib data compression library\0"
- VALUE "FileVersion", "1.1.3\0"
- VALUE "InternalName", "zlib\0"
- VALUE "OriginalFilename", "zlib.dll\0"
- VALUE "ProductName", "ZLib.DLL\0"
- VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0"
- VALUE "LegalCopyright", "(C) 1995-1998 Jean-loup Gailly & Mark Adler\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x0409, 1252
- END
-END
diff --git a/zlib-1.1.4/nt/Makefile.emx b/zlib-1.1.4/nt/Makefile.emx
deleted file mode 100644
index 2d475b1..0000000
--- a/zlib-1.1.4/nt/Makefile.emx
+++ /dev/null
@@ -1,138 +0,0 @@
-# Makefile for zlib. Modified for emx/rsxnt by Chr. Spieler, 6/16/98.
-# Copyright (C) 1995-1998 Jean-loup Gailly.
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile, or to compile and test, type:
-#
-# make -fmakefile.emx; make test -fmakefile.emx
-#
-
-CC=gcc -Zwin32
-
-#CFLAGS=-MMD -O
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-MMD -g -DDEBUG
-CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
- -Wstrict-prototypes -Wmissing-prototypes
-
-# If cp.exe is available, replace "copy /Y" with "cp -fp" .
-CP=copy /Y
-# If gnu install.exe is available, replace $(CP) with ginstall.
-INSTALL=$(CP)
-# The default value of RM is "rm -f." If "rm.exe" is found, comment out:
-RM=del
-LDLIBS=-L. -lzlib
-LD=$(CC) -s -o
-LDSHARED=$(CC)
-
-INCL=zlib.h zconf.h
-LIBS=zlib.a
-
-AR=ar rcs
-
-prefix=/usr/local
-exec_prefix = $(prefix)
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-TEST_OBJS = example.o minigzip.o
-
-all: example.exe minigzip.exe
-
-test: all
- ./example
- echo hello world | .\minigzip | .\minigzip -d
-
-%.o : %.c
- $(CC) $(CFLAGS) -c $< -o $@
-
-zlib.a: $(OBJS)
- $(AR) $@ $(OBJS)
-
-%.exe : %.o $(LIBS)
- $(LD) $@ $< $(LDLIBS)
-
-
-.PHONY : clean
-
-clean:
- $(RM) *.d
- $(RM) *.o
- $(RM) *.exe
- $(RM) zlib.a
- $(RM) foo.gz
-
-DEPS := $(wildcard *.d)
-ifneq ($(DEPS),)
-include $(DEPS)
-endif
-# Makefile for zlib. Modified for emx 0.9c by Chr. Spieler, 6/17/98.
-# Copyright (C) 1995-1998 Jean-loup Gailly.
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile, or to compile and test, type:
-#
-# make -fmakefile.emx; make test -fmakefile.emx
-#
-
-CC=gcc
-
-#CFLAGS=-MMD -O
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-MMD -g -DDEBUG
-CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
- -Wstrict-prototypes -Wmissing-prototypes
-
-# If cp.exe is available, replace "copy /Y" with "cp -fp" .
-CP=copy /Y
-# If gnu install.exe is available, replace $(CP) with ginstall.
-INSTALL=$(CP)
-# The default value of RM is "rm -f." If "rm.exe" is found, comment out:
-RM=del
-LDLIBS=-L. -lzlib
-LD=$(CC) -s -o
-LDSHARED=$(CC)
-
-INCL=zlib.h zconf.h
-LIBS=zlib.a
-
-AR=ar rcs
-
-prefix=/usr/local
-exec_prefix = $(prefix)
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-TEST_OBJS = example.o minigzip.o
-
-all: example.exe minigzip.exe
-
-test: all
- ./example
- echo hello world | .\minigzip | .\minigzip -d
-
-%.o : %.c
- $(CC) $(CFLAGS) -c $< -o $@
-
-zlib.a: $(OBJS)
- $(AR) $@ $(OBJS)
-
-%.exe : %.o $(LIBS)
- $(LD) $@ $< $(LDLIBS)
-
-
-.PHONY : clean
-
-clean:
- $(RM) *.d
- $(RM) *.o
- $(RM) *.exe
- $(RM) zlib.a
- $(RM) foo.gz
-
-DEPS := $(wildcard *.d)
-ifneq ($(DEPS),)
-include $(DEPS)
-endif
diff --git a/zlib-1.1.4/nt/Makefile.gcc b/zlib-1.1.4/nt/Makefile.gcc
deleted file mode 100644
index cdd652f..0000000
--- a/zlib-1.1.4/nt/Makefile.gcc
+++ /dev/null
@@ -1,87 +0,0 @@
-# Makefile for zlib. Modified for mingw32 by C. Spieler, 6/16/98.
-# (This Makefile is directly derived from Makefile.dj2)
-# Copyright (C) 1995-1998 Jean-loup Gailly.
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile, or to compile and test, type:
-#
-# make -fmakefile.gcc; make test -fmakefile.gcc
-#
-# To install libz.a, zconf.h and zlib.h in the mingw32 directories, type:
-#
-# make install -fmakefile.gcc
-#
-
-CC=gcc
-
-#CFLAGS=-MMD -O
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-MMD -g -DDEBUG
-CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
- -Wstrict-prototypes -Wmissing-prototypes
-
-# If cp.exe is available, replace "copy /Y" with "cp -fp" .
-CP=copy /Y
-# If gnu install.exe is available, replace $(CP) with ginstall.
-INSTALL=$(CP)
-# The default value of RM is "rm -f." If "rm.exe" is found, comment out:
-RM=del
-LDLIBS=-L. -lz
-LD=$(CC) -s -o
-LDSHARED=$(CC)
-
-INCL=zlib.h zconf.h
-LIBS=libz.a
-
-AR=ar rcs
-
-prefix=/usr/local
-exec_prefix = $(prefix)
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-TEST_OBJS = example.o minigzip.o
-
-all: example.exe minigzip.exe
-
-test: all
- ./example
- echo hello world | .\minigzip | .\minigzip -d
-
-%.o : %.c
- $(CC) $(CFLAGS) -c $< -o $@
-
-libz.a: $(OBJS)
- $(AR) $@ $(OBJS)
-
-%.exe : %.o $(LIBS)
- $(LD) $@ $< $(LDLIBS)
-
-# INCLUDE_PATH and LIBRARY_PATH were set for [make] in djgpp.env .
-
-.PHONY : uninstall clean
-
-install: $(INCL) $(LIBS)
- -@if not exist $(INCLUDE_PATH)\nul mkdir $(INCLUDE_PATH)
- -@if not exist $(LIBRARY_PATH)\nul mkdir $(LIBRARY_PATH)
- $(INSTALL) zlib.h $(INCLUDE_PATH)
- $(INSTALL) zconf.h $(INCLUDE_PATH)
- $(INSTALL) libz.a $(LIBRARY_PATH)
-
-uninstall:
- $(RM) $(INCLUDE_PATH)\zlib.h
- $(RM) $(INCLUDE_PATH)\zconf.h
- $(RM) $(LIBRARY_PATH)\libz.a
-
-clean:
- $(RM) *.d
- $(RM) *.o
- $(RM) *.exe
- $(RM) libz.a
- $(RM) foo.gz
-
-DEPS := $(wildcard *.d)
-ifneq ($(DEPS),)
-include $(DEPS)
-endif
diff --git a/zlib-1.1.4/nt/Makefile.nt b/zlib-1.1.4/nt/Makefile.nt
deleted file mode 100644
index b250f2a..0000000
--- a/zlib-1.1.4/nt/Makefile.nt
+++ /dev/null
@@ -1,88 +0,0 @@
-# Makefile for zlib
-
-!include <ntwin32.mak>
-
-CC=cl
-LD=link
-CFLAGS=-O -nologo
-LDFLAGS=
-O=.obj
-
-# variables
-OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \
- trees$(O)
-OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \
- infutil$(O) inffast$(O)
-
-all: zlib.dll example.exe minigzip.exe
-
-adler32.obj: adler32.c zutil.h zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-compress.obj: compress.c zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-crc32.obj: crc32.c zutil.h zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-gzio.obj: gzio.c zutil.h zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\
- infcodes.h infutil.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\
- infcodes.h inffast.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-uncompr.obj: uncompr.c zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-zutil.obj: zutil.c zutil.h zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-example.obj: example.c zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-minigzip.obj: minigzip.c zlib.h zconf.h
- $(CC) -c $(cvarsdll) $(CFLAGS) $*.c
-
-zlib.dll: $(OBJ1) $(OBJ2) zlib.dnt
- link $(dlllflags) -out:$@ -def:zlib.dnt $(OBJ1) $(OBJ2) $(guilibsdll)
-
-zlib.lib: zlib.dll
-
-example.exe: example.obj zlib.lib
- $(LD) $(LDFLAGS) example.obj zlib.lib
-
-minigzip.exe: minigzip.obj zlib.lib
- $(LD) $(LDFLAGS) minigzip.obj zlib.lib
-
-test: example.exe minigzip.exe
- example
- echo hello world | minigzip | minigzip -d
-
-clean:
- del *.obj
- del *.exe
- del *.dll
- del *.lib
diff --git a/zlib-1.1.4/nt/zlib.dnt b/zlib-1.1.4/nt/zlib.dnt
deleted file mode 100644
index 7f9475c..0000000
--- a/zlib-1.1.4/nt/zlib.dnt
+++ /dev/null
@@ -1,47 +0,0 @@
-LIBRARY zlib.dll
-EXETYPE WINDOWS
-CODE PRELOAD MOVEABLE DISCARDABLE
-DATA PRELOAD MOVEABLE MULTIPLE
-
-EXPORTS
- adler32 @1
- compress @2
- crc32 @3
- deflate @4
- deflateCopy @5
- deflateEnd @6
- deflateInit2_ @7
- deflateInit_ @8
- deflateParams @9
- deflateReset @10
- deflateSetDictionary @11
- gzclose @12
- gzdopen @13
- gzerror @14
- gzflush @15
- gzopen @16
- gzread @17
- gzwrite @18
- inflate @19
- inflateEnd @20
- inflateInit2_ @21
- inflateInit_ @22
- inflateReset @23
- inflateSetDictionary @24
- inflateSync @25
- uncompress @26
- zlibVersion @27
- gzprintf @28
- gzputc @29
- gzgetc @30
- gzseek @31
- gzrewind @32
- gztell @33
- gzeof @34
- gzsetparams @35
- zError @36
- inflateSyncPoint @37
- get_crc_table @38
- compress2 @39
- gzputs @40
- gzgets @41
diff --git a/zlib-1.1.4/os2/Makefile.os2 b/zlib-1.1.4/os2/Makefile.os2
deleted file mode 100644
index 4f56947..0000000
--- a/zlib-1.1.4/os2/Makefile.os2
+++ /dev/null
@@ -1,136 +0,0 @@
-# Makefile for zlib under OS/2 using GCC (PGCC)
-# For conditions of distribution and use, see copyright notice in zlib.h
-
-# To compile and test, type:
-# cp Makefile.os2 ..
-# cd ..
-# make -f Makefile.os2 test
-
-# This makefile will build a static library z.lib, a shared library
-# z.dll and a import library zdll.lib. You can use either z.lib or
-# zdll.lib by specifying either -lz or -lzdll on gcc's command line
-
-CC=gcc -Zomf -s
-
-CFLAGS=-O6 -Wall
-#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
-#CFLAGS=-g -DDEBUG
-#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
-# -Wstrict-prototypes -Wmissing-prototypes
-
-#################### BUG WARNING: #####################
-## infcodes.c hits a bug in pgcc-1.0, so you have to use either
-## -O# where # <= 4 or one of (-fno-ommit-frame-pointer or -fno-force-mem)
-## This bug is reportedly fixed in pgcc >1.0, but this was not tested
-CFLAGS+=-fno-force-mem
-
-LDFLAGS=-s -L. -lzdll -Zcrtdll
-LDSHARED=$(CC) -s -Zomf -Zdll -Zcrtdll
-
-VER=1.1.0
-ZLIB=z.lib
-SHAREDLIB=z.dll
-SHAREDLIBIMP=zdll.lib
-LIBS=$(ZLIB) $(SHAREDLIB) $(SHAREDLIBIMP)
-
-AR=emxomfar cr
-IMPLIB=emximp
-RANLIB=echo
-TAR=tar
-SHELL=bash
-
-prefix=/usr/local
-exec_prefix = $(prefix)
-
-OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \
- zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
-
-TEST_OBJS = example.o minigzip.o
-
-DISTFILES = README INDEX ChangeLog configure Make*[a-z0-9] *.[ch] descrip.mms \
- algorithm.txt zlib.3 msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \
- nt/Makefile.nt nt/zlib.dnt contrib/README.contrib contrib/*.txt \
- contrib/asm386/*.asm contrib/asm386/*.c \
- contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/iostream/*.cpp \
- contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \
- contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32
-
-all: example.exe minigzip.exe
-
-test: all
- @LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \
- echo hello world | ./minigzip | ./minigzip -d || \
- echo ' *** minigzip test FAILED ***' ; \
- if ./example; then \
- echo ' *** zlib test OK ***'; \
- else \
- echo ' *** zlib test FAILED ***'; \
- fi
-
-$(ZLIB): $(OBJS)
- $(AR) $@ $(OBJS)
- -@ ($(RANLIB) $@ || true) >/dev/null 2>&1
-
-$(SHAREDLIB): $(OBJS) os2/z.def
- $(LDSHARED) -o $@ $^
-
-$(SHAREDLIBIMP): os2/z.def
- $(IMPLIB) -o $@ $^
-
-example.exe: example.o $(LIBS)
- $(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS)
-
-minigzip.exe: minigzip.o $(LIBS)
- $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS)
-
-clean:
- rm -f *.o *~ example minigzip libz.a libz.so* foo.gz
-
-distclean: clean
-
-zip:
- mv Makefile Makefile~; cp -p Makefile.in Makefile
- rm -f test.c ztest*.c
- v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
- zip -ul9 zlib$$v $(DISTFILES)
- mv Makefile~ Makefile
-
-dist:
- mv Makefile Makefile~; cp -p Makefile.in Makefile
- rm -f test.c ztest*.c
- d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\
- rm -f $$d.tar.gz; \
- if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \
- files=""; \
- for f in $(DISTFILES); do files="$$files $$d/$$f"; done; \
- cd ..; \
- GZIP=-9 $(TAR) chofz $$d/$$d.tar.gz $$files; \
- if test ! -d $$d; then rm -f $$d; fi
- mv Makefile~ Makefile
-
-tags:
- etags *.[ch]
-
-depend:
- makedepend -- $(CFLAGS) -- *.[ch]
-
-# DO NOT DELETE THIS LINE -- make depend depends on it.
-
-adler32.o: zlib.h zconf.h
-compress.o: zlib.h zconf.h
-crc32.o: zlib.h zconf.h
-deflate.o: deflate.h zutil.h zlib.h zconf.h
-example.o: zlib.h zconf.h
-gzio.o: zutil.h zlib.h zconf.h
-infblock.o: infblock.h inftrees.h infcodes.h infutil.h zutil.h zlib.h zconf.h
-infcodes.o: zutil.h zlib.h zconf.h
-infcodes.o: inftrees.h infblock.h infcodes.h infutil.h inffast.h
-inffast.o: zutil.h zlib.h zconf.h inftrees.h
-inffast.o: infblock.h infcodes.h infutil.h inffast.h
-inflate.o: zutil.h zlib.h zconf.h infblock.h
-inftrees.o: zutil.h zlib.h zconf.h inftrees.h
-infutil.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h
-minigzip.o: zlib.h zconf.h
-trees.o: deflate.h zutil.h zlib.h zconf.h trees.h
-uncompr.o: zlib.h zconf.h
-zutil.o: zutil.h zlib.h zconf.h
diff --git a/zlib-1.1.4/os2/zlib.def b/zlib-1.1.4/os2/zlib.def
deleted file mode 100644
index 4c753f1..0000000
--- a/zlib-1.1.4/os2/zlib.def
+++ /dev/null
@@ -1,51 +0,0 @@
-;
-; Slightly modified version of ../nt/zlib.dnt :-)
-;
-
-LIBRARY Z
-DESCRIPTION "Zlib compression library for OS/2"
-CODE PRELOAD MOVEABLE DISCARDABLE
-DATA PRELOAD MOVEABLE MULTIPLE
-
-EXPORTS
- adler32
- compress
- crc32
- deflate
- deflateCopy
- deflateEnd
- deflateInit2_
- deflateInit_
- deflateParams
- deflateReset
- deflateSetDictionary
- gzclose
- gzdopen
- gzerror
- gzflush
- gzopen
- gzread
- gzwrite
- inflate
- inflateEnd
- inflateInit2_
- inflateInit_
- inflateReset
- inflateSetDictionary
- inflateSync
- uncompress
- zlibVersion
- gzprintf
- gzputc
- gzgetc
- gzseek
- gzrewind
- gztell
- gzeof
- gzsetparams
- zError
- inflateSyncPoint
- get_crc_table
- compress2
- gzputs
- gzgets
diff --git a/zlib-1.1.4/trees.c b/zlib-1.1.4/trees.c
deleted file mode 100644
index 0a98405..0000000
--- a/zlib-1.1.4/trees.c
+++ /dev/null
@@ -1,1214 +0,0 @@
-/* trees.c -- output deflated data using Huffman coding
- * Copyright (C) 1995-2002 Jean-loup Gailly
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/*
- * ALGORITHM
- *
- * The "deflation" process uses several Huffman trees. The more
- * common source values are represented by shorter bit sequences.
- *
- * Each code tree is stored in a compressed form which is itself
- * a Huffman encoding of the lengths of all the code strings (in
- * ascending order by source values). The actual code strings are
- * reconstructed from the lengths in the inflate process, as described
- * in the deflate specification.
- *
- * REFERENCES
- *
- * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification".
- * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc
- *
- * Storer, James A.
- * Data Compression: Methods and Theory, pp. 49-50.
- * Computer Science Press, 1988. ISBN 0-7167-8156-5.
- *
- * Sedgewick, R.
- * Algorithms, p290.
- * Addison-Wesley, 1983. ISBN 0-201-06672-6.
- */
-
-/* @(#) $Id$ */
-
-/* #define GEN_TREES_H */
-
-#include "deflate.h"
-
-#ifdef DEBUG
-# include <ctype.h>
-#endif
-
-/* ===========================================================================
- * Constants
- */
-
-#define MAX_BL_BITS 7
-/* Bit length codes must not exceed MAX_BL_BITS bits */
-
-#define END_BLOCK 256
-/* end of block literal code */
-
-#define REP_3_6 16
-/* repeat previous bit length 3-6 times (2 bits of repeat count) */
-
-#define REPZ_3_10 17
-/* repeat a zero length 3-10 times (3 bits of repeat count) */
-
-#define REPZ_11_138 18
-/* repeat a zero length 11-138 times (7 bits of repeat count) */
-
-local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
- = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};
-
-local const int extra_dbits[D_CODES] /* extra bits for each distance code */
- = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
-
-local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */
- = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};
-
-local const uch bl_order[BL_CODES]
- = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
-/* The lengths of the bit length codes are sent in order of decreasing
- * probability, to avoid transmitting the lengths for unused bit length codes.
- */
-
-#define Buf_size (8 * 2*sizeof(char))
-/* Number of bits used within bi_buf. (bi_buf might be implemented on
- * more than 16 bits on some systems.)
- */
-
-/* ===========================================================================
- * Local data. These are initialized only once.
- */
-
-#define DIST_CODE_LEN 512 /* see definition of array dist_code below */
-
-#if defined(GEN_TREES_H) || !defined(STDC)
-/* non ANSI compilers may not accept trees.h */
-
-local ct_data static_ltree[L_CODES+2];
-/* The static literal tree. Since the bit lengths are imposed, there is no
- * need for the L_CODES extra codes used during heap construction. However
- * The codes 286 and 287 are needed to build a canonical tree (see _tr_init
- * below).
- */
-
-local ct_data static_dtree[D_CODES];
-/* The static distance tree. (Actually a trivial tree since all codes use
- * 5 bits.)
- */
-
-uch _dist_code[DIST_CODE_LEN];
-/* Distance codes. The first 256 values correspond to the distances
- * 3 .. 258, the last 256 values correspond to the top 8 bits of
- * the 15 bit distances.
- */
-
-uch _length_code[MAX_MATCH-MIN_MATCH+1];
-/* length code for each normalized match length (0 == MIN_MATCH) */
-
-local int base_length[LENGTH_CODES];
-/* First normalized length for each code (0 = MIN_MATCH) */
-
-local int base_dist[D_CODES];
-/* First normalized distance for each code (0 = distance of 1) */
-
-#else
-# include "trees.h"
-#endif /* GEN_TREES_H */
-
-struct static_tree_desc_s {
- const ct_data *static_tree; /* static tree or NULL */
- const intf *extra_bits; /* extra bits for each code or NULL */
- int extra_base; /* base index for extra_bits */
- int elems; /* max number of elements in the tree */
- int max_length; /* max bit length for the codes */
-};
-
-local static_tree_desc static_l_desc =
-{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS};
-
-local static_tree_desc static_d_desc =
-{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS};
-
-local static_tree_desc static_bl_desc =
-{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS};
-
-/* ===========================================================================
- * Local (static) routines in this file.
- */
-
-local void tr_static_init OF((void));
-local void init_block OF((deflate_state *s));
-local void pqdownheap OF((deflate_state *s, ct_data *tree, int k));
-local void gen_bitlen OF((deflate_state *s, tree_desc *desc));
-local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count));
-local void build_tree OF((deflate_state *s, tree_desc *desc));
-local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code));
-local void send_tree OF((deflate_state *s, ct_data *tree, int max_code));
-local int build_bl_tree OF((deflate_state *s));
-local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes,
- int blcodes));
-local void compress_block OF((deflate_state *s, ct_data *ltree,
- ct_data *dtree));
-local void set_data_type OF((deflate_state *s));
-local unsigned bi_reverse OF((unsigned value, int length));
-local void bi_windup OF((deflate_state *s));
-local void bi_flush OF((deflate_state *s));
-local void copy_block OF((deflate_state *s, charf *buf, unsigned len,
- int header));
-
-#ifdef GEN_TREES_H
-local void gen_trees_header OF((void));
-#endif
-
-#ifndef DEBUG
-# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len)
- /* Send a code of the given tree. c and tree must not have side effects */
-
-#else /* DEBUG */
-# define send_code(s, c, tree) \
- { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \
- send_bits(s, tree[c].Code, tree[c].Len); }
-#endif
-
-/* ===========================================================================
- * Output a short LSB first on the stream.
- * IN assertion: there is enough room in pendingBuf.
- */
-#define put_short(s, w) { \
- put_byte(s, (uch)((w) & 0xff)); \
- put_byte(s, (uch)((ush)(w) >> 8)); \
-}
-
-/* ===========================================================================
- * Send a value on a given number of bits.
- * IN assertion: length <= 16 and value fits in length bits.
- */
-#ifdef DEBUG
-local void send_bits OF((deflate_state *s, int value, int length));
-
-local void send_bits(s, value, length)
- deflate_state *s;
- int value; /* value to send */
- int length; /* number of bits */
-{
- Tracevv((stderr," l %2d v %4x ", length, value));
- Assert(length > 0 && length <= 15, "invalid length");
- s->bits_sent += (ulg)length;
-
- /* If not enough room in bi_buf, use (valid) bits from bi_buf and
- * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
- * unused bits in value.
- */
- if (s->bi_valid > (int)Buf_size - length) {
- s->bi_buf |= (value << s->bi_valid);
- put_short(s, s->bi_buf);
- s->bi_buf = (ush)value >> (Buf_size - s->bi_valid);
- s->bi_valid += length - Buf_size;
- } else {
- s->bi_buf |= value << s->bi_valid;
- s->bi_valid += length;
- }
-}
-#else /* !DEBUG */
-
-#define send_bits(s, value, length) \
-{ int len = length;\
- if (s->bi_valid > (int)Buf_size - len) {\
- int val = value;\
- s->bi_buf |= (val << s->bi_valid);\
- put_short(s, s->bi_buf);\
- s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\
- s->bi_valid += len - Buf_size;\
- } else {\
- s->bi_buf |= (value) << s->bi_valid;\
- s->bi_valid += len;\
- }\
-}
-#endif /* DEBUG */
-
-
-#define MAX(a,b) (a >= b ? a : b)
-/* the arguments must not have side effects */
-
-/* ===========================================================================
- * Initialize the various 'constant' tables.
- */
-local void tr_static_init()
-{
-#if defined(GEN_TREES_H) || !defined(STDC)
- static int static_init_done = 0;
- int n; /* iterates over tree elements */
- int bits; /* bit counter */
- int length; /* length value */
- int code; /* code value */
- int dist; /* distance index */
- ush bl_count[MAX_BITS+1];
- /* number of codes at each bit length for an optimal tree */
-
- if (static_init_done) return;
-
- /* For some embedded targets, global variables are not initialized: */
- static_l_desc.static_tree = static_ltree;
- static_l_desc.extra_bits = extra_lbits;
- static_d_desc.static_tree = static_dtree;
- static_d_desc.extra_bits = extra_dbits;
- static_bl_desc.extra_bits = extra_blbits;
-
- /* Initialize the mapping length (0..255) -> length code (0..28) */
- length = 0;
- for (code = 0; code < LENGTH_CODES-1; code++) {
- base_length[code] = length;
- for (n = 0; n < (1<<extra_lbits[code]); n++) {
- _length_code[length++] = (uch)code;
- }
- }
- Assert (length == 256, "tr_static_init: length != 256");
- /* Note that the length 255 (match length 258) can be represented
- * in two different ways: code 284 + 5 bits or code 285, so we
- * overwrite length_code[255] to use the best encoding:
- */
- _length_code[length-1] = (uch)code;
-
- /* Initialize the mapping dist (0..32K) -> dist code (0..29) */
- dist = 0;
- for (code = 0 ; code < 16; code++) {
- base_dist[code] = dist;
- for (n = 0; n < (1<<extra_dbits[code]); n++) {
- _dist_code[dist++] = (uch)code;
- }
- }
- Assert (dist == 256, "tr_static_init: dist != 256");
- dist >>= 7; /* from now on, all distances are divided by 128 */
- for ( ; code < D_CODES; code++) {
- base_dist[code] = dist << 7;
- for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {
- _dist_code[256 + dist++] = (uch)code;
- }
- }
- Assert (dist == 256, "tr_static_init: 256+dist != 512");
-
- /* Construct the codes of the static literal tree */
- for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0;
- n = 0;
- while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++;
- while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++;
- while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++;
- while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++;
- /* Codes 286 and 287 do not exist, but we must include them in the
- * tree construction to get a canonical Huffman tree (longest code
- * all ones)
- */
- gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count);
-
- /* The static distance tree is trivial: */
- for (n = 0; n < D_CODES; n++) {
- static_dtree[n].Len = 5;
- static_dtree[n].Code = bi_reverse((unsigned)n, 5);
- }
- static_init_done = 1;
-
-# ifdef GEN_TREES_H
- gen_trees_header();
-# endif
-#endif /* defined(GEN_TREES_H) || !defined(STDC) */
-}
-
-/* ===========================================================================
- * Genererate the file trees.h describing the static trees.
- */
-#ifdef GEN_TREES_H
-# ifndef DEBUG
-# include <stdio.h>
-# endif
-
-# define SEPARATOR(i, last, width) \
- ((i) == (last)? "\n};\n\n" : \
- ((i) % (width) == (width)-1 ? ",\n" : ", "))
-
-void gen_trees_header()
-{
- FILE *header = fopen("trees.h", "w");
- int i;
-
- Assert (header != NULL, "Can't open trees.h");
- fprintf(header,
- "/* header created automatically with -DGEN_TREES_H */\n\n");
-
- fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n");
- for (i = 0; i < L_CODES+2; i++) {
- fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code,
- static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5));
- }
-
- fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n");
- for (i = 0; i < D_CODES; i++) {
- fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code,
- static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5));
- }
-
- fprintf(header, "const uch _dist_code[DIST_CODE_LEN] = {\n");
- for (i = 0; i < DIST_CODE_LEN; i++) {
- fprintf(header, "%2u%s", _dist_code[i],
- SEPARATOR(i, DIST_CODE_LEN-1, 20));
- }
-
- fprintf(header, "const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {\n");
- for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) {
- fprintf(header, "%2u%s", _length_code[i],
- SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20));
- }
-
- fprintf(header, "local const int base_length[LENGTH_CODES] = {\n");
- for (i = 0; i < LENGTH_CODES; i++) {
- fprintf(header, "%1u%s", base_length[i],
- SEPARATOR(i, LENGTH_CODES-1, 20));
- }
-
- fprintf(header, "local const int base_dist[D_CODES] = {\n");
- for (i = 0; i < D_CODES; i++) {
- fprintf(header, "%5u%s", base_dist[i],
- SEPARATOR(i, D_CODES-1, 10));
- }
-
- fclose(header);
-}
-#endif /* GEN_TREES_H */
-
-/* ===========================================================================
- * Initialize the tree data structures for a new zlib stream.
- */
-void _tr_init(s)
- deflate_state *s;
-{
- tr_static_init();
-
- s->l_desc.dyn_tree = s->dyn_ltree;
- s->l_desc.stat_desc = &static_l_desc;
-
- s->d_desc.dyn_tree = s->dyn_dtree;
- s->d_desc.stat_desc = &static_d_desc;
-
- s->bl_desc.dyn_tree = s->bl_tree;
- s->bl_desc.stat_desc = &static_bl_desc;
-
- s->bi_buf = 0;
- s->bi_valid = 0;
- s->last_eob_len = 8; /* enough lookahead for inflate */
-#ifdef DEBUG
- s->compressed_len = 0L;
- s->bits_sent = 0L;
-#endif
-
- /* Initialize the first block of the first file: */
- init_block(s);
-}
-
-/* ===========================================================================
- * Initialize a new block.
- */
-local void init_block(s)
- deflate_state *s;
-{
- int n; /* iterates over tree elements */
-
- /* Initialize the trees. */
- for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0;
- for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0;
- for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0;
-
- s->dyn_ltree[END_BLOCK].Freq = 1;
- s->opt_len = s->static_len = 0L;
- s->last_lit = s->matches = 0;
-}
-
-#define SMALLEST 1
-/* Index within the heap array of least frequent node in the Huffman tree */
-
-
-/* ===========================================================================
- * Remove the smallest element from the heap and recreate the heap with
- * one less element. Updates heap and heap_len.
- */
-#define pqremove(s, tree, top) \
-{\
- top = s->heap[SMALLEST]; \
- s->heap[SMALLEST] = s->heap[s->heap_len--]; \
- pqdownheap(s, tree, SMALLEST); \
-}
-
-/* ===========================================================================
- * Compares to subtrees, using the tree depth as tie breaker when
- * the subtrees have equal frequency. This minimizes the worst case length.
- */
-#define smaller(tree, n, m, depth) \
- (tree[n].Freq < tree[m].Freq || \
- (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m]))
-
-/* ===========================================================================
- * Restore the heap property by moving down the tree starting at node k,
- * exchanging a node with the smallest of its two sons if necessary, stopping
- * when the heap property is re-established (each father smaller than its
- * two sons).
- */
-local void pqdownheap(s, tree, k)
- deflate_state *s;
- ct_data *tree; /* the tree to restore */
- int k; /* node to move down */
-{
- int v = s->heap[k];
- int j = k << 1; /* left son of k */
- while (j <= s->heap_len) {
- /* Set j to the smallest of the two sons: */
- if (j < s->heap_len &&
- smaller(tree, s->heap[j+1], s->heap[j], s->depth)) {
- j++;
- }
- /* Exit if v is smaller than both sons */
- if (smaller(tree, v, s->heap[j], s->depth)) break;
-
- /* Exchange v with the smallest son */
- s->heap[k] = s->heap[j]; k = j;
-
- /* And continue down the tree, setting j to the left son of k */
- j <<= 1;
- }
- s->heap[k] = v;
-}
-
-/* ===========================================================================
- * Compute the optimal bit lengths for a tree and update the total bit length
- * for the current block.
- * IN assertion: the fields freq and dad are set, heap[heap_max] and
- * above are the tree nodes sorted by increasing frequency.
- * OUT assertions: the field len is set to the optimal bit length, the
- * array bl_count contains the frequencies for each bit length.
- * The length opt_len is updated; static_len is also updated if stree is
- * not null.
- */
-local void gen_bitlen(s, desc)
- deflate_state *s;
- tree_desc *desc; /* the tree descriptor */
-{
- ct_data *tree = desc->dyn_tree;
- int max_code = desc->max_code;
- const ct_data *stree = desc->stat_desc->static_tree;
- const intf *extra = desc->stat_desc->extra_bits;
- int base = desc->stat_desc->extra_base;
- int max_length = desc->stat_desc->max_length;
- int h; /* heap index */
- int n, m; /* iterate over the tree elements */
- int bits; /* bit length */
- int xbits; /* extra bits */
- ush f; /* frequency */
- int overflow = 0; /* number of elements with bit length too large */
-
- for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0;
-
- /* In a first pass, compute the optimal bit lengths (which may
- * overflow in the case of the bit length tree).
- */
- tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */
-
- for (h = s->heap_max+1; h < HEAP_SIZE; h++) {
- n = s->heap[h];
- bits = tree[tree[n].Dad].Len + 1;
- if (bits > max_length) bits = max_length, overflow++;
- tree[n].Len = (ush)bits;
- /* We overwrite tree[n].Dad which is no longer needed */
-
- if (n > max_code) continue; /* not a leaf node */
-
- s->bl_count[bits]++;
- xbits = 0;
- if (n >= base) xbits = extra[n-base];
- f = tree[n].Freq;
- s->opt_len += (ulg)f * (bits + xbits);
- if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits);
- }
- if (overflow == 0) return;
-
- Trace((stderr,"\nbit length overflow\n"));
- /* This happens for example on obj2 and pic of the Calgary corpus */
-
- /* Find the first bit length which could increase: */
- do {
- bits = max_length-1;
- while (s->bl_count[bits] == 0) bits--;
- s->bl_count[bits]--; /* move one leaf down the tree */
- s->bl_count[bits+1] += 2; /* move one overflow item as its brother */
- s->bl_count[max_length]--;
- /* The brother of the overflow item also moves one step up,
- * but this does not affect bl_count[max_length]
- */
- overflow -= 2;
- } while (overflow > 0);
-
- /* Now recompute all bit lengths, scanning in increasing frequency.
- * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all
- * lengths instead of fixing only the wrong ones. This idea is taken
- * from 'ar' written by Haruhiko Okumura.)
- */
- for (bits = max_length; bits != 0; bits--) {
- n = s->bl_count[bits];
- while (n != 0) {
- m = s->heap[--h];
- if (m > max_code) continue;
- if (tree[m].Len != (unsigned) bits) {
- Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits));
- s->opt_len += ((long)bits - (long)tree[m].Len)
- *(long)tree[m].Freq;
- tree[m].Len = (ush)bits;
- }
- n--;
- }
- }
-}
-
-/* ===========================================================================
- * Generate the codes for a given tree and bit counts (which need not be
- * optimal).
- * IN assertion: the array bl_count contains the bit length statistics for
- * the given tree and the field len is set for all tree elements.
- * OUT assertion: the field code is set for all tree elements of non
- * zero code length.
- */
-local void gen_codes (tree, max_code, bl_count)
- ct_data *tree; /* the tree to decorate */
- int max_code; /* largest code with non zero frequency */
- ushf *bl_count; /* number of codes at each bit length */
-{
- ush next_code[MAX_BITS+1]; /* next code value for each bit length */
- ush code = 0; /* running code value */
- int bits; /* bit index */
- int n; /* code index */
-
- /* The distribution counts are first used to generate the code values
- * without bit reversal.
- */
- for (bits = 1; bits <= MAX_BITS; bits++) {
- next_code[bits] = code = (code + bl_count[bits-1]) << 1;
- }
- /* Check that the bit counts in bl_count are consistent. The last code
- * must be all ones.
- */
- Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,
- "inconsistent bit counts");
- Tracev((stderr,"\ngen_codes: max_code %d ", max_code));
-
- for (n = 0; n <= max_code; n++) {
- int len = tree[n].Len;
- if (len == 0) continue;
- /* Now reverse the bits */
- tree[n].Code = bi_reverse(next_code[len]++, len);
-
- Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ",
- n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));
- }
-}
-
-/* ===========================================================================
- * Construct one Huffman tree and assigns the code bit strings and lengths.
- * Update the total bit length for the current block.
- * IN assertion: the field freq is set for all tree elements.
- * OUT assertions: the fields len and code are set to the optimal bit length
- * and corresponding code. The length opt_len is updated; static_len is
- * also updated if stree is not null. The field max_code is set.
- */
-local void build_tree(s, desc)
- deflate_state *s;
- tree_desc *desc; /* the tree descriptor */
-{
- ct_data *tree = desc->dyn_tree;
- const ct_data *stree = desc->stat_desc->static_tree;
- int elems = desc->stat_desc->elems;
- int n, m; /* iterate over heap elements */
- int max_code = -1; /* largest code with non zero frequency */
- int node; /* new node being created */
-
- /* Construct the initial heap, with least frequent element in
- * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].
- * heap[0] is not used.
- */
- s->heap_len = 0, s->heap_max = HEAP_SIZE;
-
- for (n = 0; n < elems; n++) {
- if (tree[n].Freq != 0) {
- s->heap[++(s->heap_len)] = max_code = n;
- s->depth[n] = 0;
- } else {
- tree[n].Len = 0;
- }
- }
-
- /* The pkzip format requires that at least one distance code exists,
- * and that at least one bit should be sent even if there is only one
- * possible code. So to avoid special checks later on we force at least
- * two codes of non zero frequency.
- */
- while (s->heap_len < 2) {
- node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0);
- tree[node].Freq = 1;
- s->depth[node] = 0;
- s->opt_len--; if (stree) s->static_len -= stree[node].Len;
- /* node is 0 or 1 so it does not have extra bits */
- }
- desc->max_code = max_code;
-
- /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,
- * establish sub-heaps of increasing lengths:
- */
- for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n);
-
- /* Construct the Huffman tree by repeatedly combining the least two
- * frequent nodes.
- */
- node = elems; /* next internal node of the tree */
- do {
- pqremove(s, tree, n); /* n = node of least frequency */
- m = s->heap[SMALLEST]; /* m = node of next least frequency */
-
- s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */
- s->heap[--(s->heap_max)] = m;
-
- /* Create a new node father of n and m */
- tree[node].Freq = tree[n].Freq + tree[m].Freq;
- s->depth[node] = (uch) (MAX(s->depth[n], s->depth[m]) + 1);
- tree[n].Dad = tree[m].Dad = (ush)node;
-#ifdef DUMP_BL_TREE
- if (tree == s->bl_tree) {
- fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)",
- node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq);
- }
-#endif
- /* and insert the new node in the heap */
- s->heap[SMALLEST] = node++;
- pqdownheap(s, tree, SMALLEST);
-
- } while (s->heap_len >= 2);
-
- s->heap[--(s->heap_max)] = s->heap[SMALLEST];
-
- /* At this point, the fields freq and dad are set. We can now
- * generate the bit lengths.
- */
- gen_bitlen(s, (tree_desc *)desc);
-
- /* The field len is now set, we can generate the bit codes */
- gen_codes ((ct_data *)tree, max_code, s->bl_count);
-}
-
-/* ===========================================================================
- * Scan a literal or distance tree to determine the frequencies of the codes
- * in the bit length tree.
- */
-local void scan_tree (s, tree, max_code)
- deflate_state *s;
- ct_data *tree; /* the tree to be scanned */
- int max_code; /* and its largest code of non zero frequency */
-{
- int n; /* iterates over all tree elements */
- int prevlen = -1; /* last emitted length */
- int curlen; /* length of current code */
- int nextlen = tree[0].Len; /* length of next code */
- int count = 0; /* repeat count of the current code */
- int max_count = 7; /* max repeat count */
- int min_count = 4; /* min repeat count */
-
- if (nextlen == 0) max_count = 138, min_count = 3;
- tree[max_code+1].Len = (ush)0xffff; /* guard */
-
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen; nextlen = tree[n+1].Len;
- if (++count < max_count && curlen == nextlen) {
- continue;
- } else if (count < min_count) {
- s->bl_tree[curlen].Freq += count;
- } else if (curlen != 0) {
- if (curlen != prevlen) s->bl_tree[curlen].Freq++;
- s->bl_tree[REP_3_6].Freq++;
- } else if (count <= 10) {
- s->bl_tree[REPZ_3_10].Freq++;
- } else {
- s->bl_tree[REPZ_11_138].Freq++;
- }
- count = 0; prevlen = curlen;
- if (nextlen == 0) {
- max_count = 138, min_count = 3;
- } else if (curlen == nextlen) {
- max_count = 6, min_count = 3;
- } else {
- max_count = 7, min_count = 4;
- }
- }
-}
-
-/* ===========================================================================
- * Send a literal or distance tree in compressed form, using the codes in
- * bl_tree.
- */
-local void send_tree (s, tree, max_code)
- deflate_state *s;
- ct_data *tree; /* the tree to be scanned */
- int max_code; /* and its largest code of non zero frequency */
-{
- int n; /* iterates over all tree elements */
- int prevlen = -1; /* last emitted length */
- int curlen; /* length of current code */
- int nextlen = tree[0].Len; /* length of next code */
- int count = 0; /* repeat count of the current code */
- int max_count = 7; /* max repeat count */
- int min_count = 4; /* min repeat count */
-
- /* tree[max_code+1].Len = -1; */ /* guard already set */
- if (nextlen == 0) max_count = 138, min_count = 3;
-
- for (n = 0; n <= max_code; n++) {
- curlen = nextlen; nextlen = tree[n+1].Len;
- if (++count < max_count && curlen == nextlen) {
- continue;
- } else if (count < min_count) {
- do { send_code(s, curlen, s->bl_tree); } while (--count != 0);
-
- } else if (curlen != 0) {
- if (curlen != prevlen) {
- send_code(s, curlen, s->bl_tree); count--;
- }
- Assert(count >= 3 && count <= 6, " 3_6?");
- send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2);
-
- } else if (count <= 10) {
- send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3);
-
- } else {
- send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7);
- }
- count = 0; prevlen = curlen;
- if (nextlen == 0) {
- max_count = 138, min_count = 3;
- } else if (curlen == nextlen) {
- max_count = 6, min_count = 3;
- } else {
- max_count = 7, min_count = 4;
- }
- }
-}
-
-/* ===========================================================================
- * Construct the Huffman tree for the bit lengths and return the index in
- * bl_order of the last bit length code to send.
- */
-local int build_bl_tree(s)
- deflate_state *s;
-{
- int max_blindex; /* index of last bit length code of non zero freq */
-
- /* Determine the bit length frequencies for literal and distance trees */
- scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code);
- scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code);
-
- /* Build the bit length tree: */
- build_tree(s, (tree_desc *)(&(s->bl_desc)));
- /* opt_len now includes the length of the tree representations, except
- * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
- */
-
- /* Determine the number of bit length codes to send. The pkzip format
- * requires that at least 4 bit length codes be sent. (appnote.txt says
- * 3 but the actual value used is 4.)
- */
- for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {
- if (s->bl_tree[bl_order[max_blindex]].Len != 0) break;
- }
- /* Update opt_len to include the bit length tree and counts */
- s->opt_len += 3*(max_blindex+1) + 5+5+4;
- Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
- s->opt_len, s->static_len));
-
- return max_blindex;
-}
-
-/* ===========================================================================
- * Send the header for a block using dynamic Huffman trees: the counts, the
- * lengths of the bit length codes, the literal tree and the distance tree.
- * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.
- */
-local void send_all_trees(s, lcodes, dcodes, blcodes)
- deflate_state *s;
- int lcodes, dcodes, blcodes; /* number of codes for each tree */
-{
- int rank; /* index in bl_order */
-
- Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes");
- Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,
- "too many codes");
- Tracev((stderr, "\nbl counts: "));
- send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */
- send_bits(s, dcodes-1, 5);
- send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */
- for (rank = 0; rank < blcodes; rank++) {
- Tracev((stderr, "\nbl code %2d ", bl_order[rank]));
- send_bits(s, s->bl_tree[bl_order[rank]].Len, 3);
- }
- Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent));
-
- send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */
- Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent));
-
- send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */
- Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent));
-}
-
-/* ===========================================================================
- * Send a stored block
- */
-void _tr_stored_block(s, buf, stored_len, eof)
- deflate_state *s;
- charf *buf; /* input block */
- ulg stored_len; /* length of input block */
- int eof; /* true if this is the last block for a file */
-{
- send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */
-#ifdef DEBUG
- s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L;
- s->compressed_len += (stored_len + 4) << 3;
-#endif
- copy_block(s, buf, (unsigned)stored_len, 1); /* with header */
-}
-
-/* ===========================================================================
- * Send one empty static block to give enough lookahead for inflate.
- * This takes 10 bits, of which 7 may remain in the bit buffer.
- * The current inflate code requires 9 bits of lookahead. If the
- * last two codes for the previous block (real code plus EOB) were coded
- * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode
- * the last real code. In this case we send two empty static blocks instead
- * of one. (There are no problems if the previous block is stored or fixed.)
- * To simplify the code, we assume the worst case of last real code encoded
- * on one bit only.
- */
-void _tr_align(s)
- deflate_state *s;
-{
- send_bits(s, STATIC_TREES<<1, 3);
- send_code(s, END_BLOCK, static_ltree);
-#ifdef DEBUG
- s->compressed_len += 10L; /* 3 for block type, 7 for EOB */
-#endif
- bi_flush(s);
- /* Of the 10 bits for the empty block, we have already sent
- * (10 - bi_valid) bits. The lookahead for the last real code (before
- * the EOB of the previous block) was thus at least one plus the length
- * of the EOB plus what we have just sent of the empty static block.
- */
- if (1 + s->last_eob_len + 10 - s->bi_valid < 9) {
- send_bits(s, STATIC_TREES<<1, 3);
- send_code(s, END_BLOCK, static_ltree);
-#ifdef DEBUG
- s->compressed_len += 10L;
-#endif
- bi_flush(s);
- }
- s->last_eob_len = 7;
-}
-
-/* ===========================================================================
- * Determine the best encoding for the current block: dynamic trees, static
- * trees or store, and output the encoded block to the zip file.
- */
-void _tr_flush_block(s, buf, stored_len, eof)
- deflate_state *s;
- charf *buf; /* input block, or NULL if too old */
- ulg stored_len; /* length of input block */
- int eof; /* true if this is the last block for a file */
-{
- ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */
- int max_blindex = 0; /* index of last bit length code of non zero freq */
-
- /* Build the Huffman trees unless a stored block is forced */
- if (s->level > 0) {
-
- /* Check if the file is ascii or binary */
- if (s->data_type == Z_UNKNOWN) set_data_type(s);
-
- /* Construct the literal and distance trees */
- build_tree(s, (tree_desc *)(&(s->l_desc)));
- Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len,
- s->static_len));
-
- build_tree(s, (tree_desc *)(&(s->d_desc)));
- Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len,
- s->static_len));
- /* At this point, opt_len and static_len are the total bit lengths of
- * the compressed block data, excluding the tree representations.
- */
-
- /* Build the bit length tree for the above two trees, and get the index
- * in bl_order of the last bit length code to send.
- */
- max_blindex = build_bl_tree(s);
-
- /* Determine the best encoding. Compute first the block length in bytes*/
- opt_lenb = (s->opt_len+3+7)>>3;
- static_lenb = (s->static_len+3+7)>>3;
-
- Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
- opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
- s->last_lit));
-
- if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
-
- } else {
- Assert(buf != (char*)0, "lost buf");
- opt_lenb = static_lenb = stored_len + 5; /* force a stored block */
- }
-
-#ifdef FORCE_STORED
- if (buf != (char*)0) { /* force stored block */
-#else
- if (stored_len+4 <= opt_lenb && buf != (char*)0) {
- /* 4: two words for the lengths */
-#endif
- /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.
- * Otherwise we can't have processed more than WSIZE input bytes since
- * the last block flush, because compression would have been
- * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to
- * transform a block into a stored block.
- */
- _tr_stored_block(s, buf, stored_len, eof);
-
-#ifdef FORCE_STATIC
- } else if (static_lenb >= 0) { /* force static trees */
-#else
- } else if (static_lenb == opt_lenb) {
-#endif
- send_bits(s, (STATIC_TREES<<1)+eof, 3);
- compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree);
-#ifdef DEBUG
- s->compressed_len += 3 + s->static_len;
-#endif
- } else {
- send_bits(s, (DYN_TREES<<1)+eof, 3);
- send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1,
- max_blindex+1);
- compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree);
-#ifdef DEBUG
- s->compressed_len += 3 + s->opt_len;
-#endif
- }
- Assert (s->compressed_len == s->bits_sent, "bad compressed size");
- /* The above check is made mod 2^32, for files larger than 512 MB
- * and uLong implemented on 32 bits.
- */
- init_block(s);
-
- if (eof) {
- bi_windup(s);
-#ifdef DEBUG
- s->compressed_len += 7; /* align on byte boundary */
-#endif
- }
- Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3,
- s->compressed_len-7*eof));
-}
-
-/* ===========================================================================
- * Save the match info and tally the frequency counts. Return true if
- * the current block must be flushed.
- */
-int _tr_tally (s, dist, lc)
- deflate_state *s;
- unsigned dist; /* distance of matched string */
- unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
-{
- s->d_buf[s->last_lit] = (ush)dist;
- s->l_buf[s->last_lit++] = (uch)lc;
- if (dist == 0) {
- /* lc is the unmatched char */
- s->dyn_ltree[lc].Freq++;
- } else {
- s->matches++;
- /* Here, lc is the match length - MIN_MATCH */
- dist--; /* dist = match distance - 1 */
- Assert((ush)dist < (ush)MAX_DIST(s) &&
- (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&
- (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match");
-
- s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
- s->dyn_dtree[d_code(dist)].Freq++;
- }
-
-#ifdef TRUNCATE_BLOCK
- /* Try to guess if it is profitable to stop the current block here */
- if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
- /* Compute an upper bound for the compressed length */
- ulg out_length = (ulg)s->last_lit*8L;
- ulg in_length = (ulg)((long)s->strstart - s->block_start);
- int dcode;
- for (dcode = 0; dcode < D_CODES; dcode++) {
- out_length += (ulg)s->dyn_dtree[dcode].Freq *
- (5L+extra_dbits[dcode]);
- }
- out_length >>= 3;
- Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
- s->last_lit, in_length, out_length,
- 100L - out_length*100L/in_length));
- if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
- }
-#endif
- return (s->last_lit == s->lit_bufsize-1);
- /* We avoid equality with lit_bufsize because of wraparound at 64K
- * on 16 bit machines and because stored blocks are restricted to
- * 64K-1 bytes.
- */
-}
-
-/* ===========================================================================
- * Send the block data compressed using the given Huffman trees
- */
-local void compress_block(s, ltree, dtree)
- deflate_state *s;
- ct_data *ltree; /* literal tree */
- ct_data *dtree; /* distance tree */
-{
- unsigned dist; /* distance of matched string */
- int lc; /* match length or unmatched char (if dist == 0) */
- unsigned lx = 0; /* running index in l_buf */
- unsigned code; /* the code to send */
- int extra; /* number of extra bits to send */
-
- if (s->last_lit != 0) do {
- dist = s->d_buf[lx];
- lc = s->l_buf[lx++];
- if (dist == 0) {
- send_code(s, lc, ltree); /* send a literal byte */
- Tracecv(isgraph(lc), (stderr," '%c' ", lc));
- } else {
- /* Here, lc is the match length - MIN_MATCH */
- code = _length_code[lc];
- send_code(s, code+LITERALS+1, ltree); /* send the length code */
- extra = extra_lbits[code];
- if (extra != 0) {
- lc -= base_length[code];
- send_bits(s, lc, extra); /* send the extra length bits */
- }
- dist--; /* dist is now the match distance - 1 */
- code = d_code(dist);
- Assert (code < D_CODES, "bad d_code");
-
- send_code(s, code, dtree); /* send the distance code */
- extra = extra_dbits[code];
- if (extra != 0) {
- dist -= base_dist[code];
- send_bits(s, dist, extra); /* send the extra distance bits */
- }
- } /* literal or match pair ? */
-
- /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
- Assert(s->pending < s->lit_bufsize + 2*lx, "pendingBuf overflow");
-
- } while (lx < s->last_lit);
-
- send_code(s, END_BLOCK, ltree);
- s->last_eob_len = ltree[END_BLOCK].Len;
-}
-
-/* ===========================================================================
- * Set the data type to ASCII or BINARY, using a crude approximation:
- * binary if more than 20% of the bytes are <= 6 or >= 128, ascii otherwise.
- * IN assertion: the fields freq of dyn_ltree are set and the total of all
- * frequencies does not exceed 64K (to fit in an int on 16 bit machines).
- */
-local void set_data_type(s)
- deflate_state *s;
-{
- int n = 0;
- unsigned ascii_freq = 0;
- unsigned bin_freq = 0;
- while (n < 7) bin_freq += s->dyn_ltree[n++].Freq;
- while (n < 128) ascii_freq += s->dyn_ltree[n++].Freq;
- while (n < LITERALS) bin_freq += s->dyn_ltree[n++].Freq;
- s->data_type = (Byte)(bin_freq > (ascii_freq >> 2) ? Z_BINARY : Z_ASCII);
-}
-
-/* ===========================================================================
- * Reverse the first len bits of a code, using straightforward code (a faster
- * method would use a table)
- * IN assertion: 1 <= len <= 15
- */
-local unsigned bi_reverse(code, len)
- unsigned code; /* the value to invert */
- int len; /* its bit length */
-{
- register unsigned res = 0;
- do {
- res |= code & 1;
- code >>= 1, res <<= 1;
- } while (--len > 0);
- return res >> 1;
-}
-
-/* ===========================================================================
- * Flush the bit buffer, keeping at most 7 bits in it.
- */
-local void bi_flush(s)
- deflate_state *s;
-{
- if (s->bi_valid == 16) {
- put_short(s, s->bi_buf);
- s->bi_buf = 0;
- s->bi_valid = 0;
- } else if (s->bi_valid >= 8) {
- put_byte(s, (Byte)s->bi_buf);
- s->bi_buf >>= 8;
- s->bi_valid -= 8;
- }
-}
-
-/* ===========================================================================
- * Flush the bit buffer and align the output on a byte boundary
- */
-local void bi_windup(s)
- deflate_state *s;
-{
- if (s->bi_valid > 8) {
- put_short(s, s->bi_buf);
- } else if (s->bi_valid > 0) {
- put_byte(s, (Byte)s->bi_buf);
- }
- s->bi_buf = 0;
- s->bi_valid = 0;
-#ifdef DEBUG
- s->bits_sent = (s->bits_sent+7) & ~7;
-#endif
-}
-
-/* ===========================================================================
- * Copy a stored block, storing first the length and its
- * one's complement if requested.
- */
-local void copy_block(s, buf, len, header)
- deflate_state *s;
- charf *buf; /* the input data */
- unsigned len; /* its length */
- int header; /* true if block header must be written */
-{
- bi_windup(s); /* align on byte boundary */
- s->last_eob_len = 8; /* enough lookahead for inflate */
-
- if (header) {
- put_short(s, (ush)len);
- put_short(s, (ush)~len);
-#ifdef DEBUG
- s->bits_sent += 2*16;
-#endif
- }
-#ifdef DEBUG
- s->bits_sent += (ulg)len<<3;
-#endif
- while (len--) {
- put_byte(s, *buf++);
- }
-}
diff --git a/zlib-1.1.4/trees.h b/zlib-1.1.4/trees.h
deleted file mode 100644
index 72facf9..0000000
--- a/zlib-1.1.4/trees.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* header created automatically with -DGEN_TREES_H */
-
-local const ct_data static_ltree[L_CODES+2] = {
-{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}},
-{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}},
-{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}},
-{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}},
-{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}},
-{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}},
-{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}},
-{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}},
-{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}},
-{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}},
-{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}},
-{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}},
-{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}},
-{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}},
-{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}},
-{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}},
-{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}},
-{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}},
-{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}},
-{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}},
-{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}},
-{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}},
-{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}},
-{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}},
-{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}},
-{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}},
-{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}},
-{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}},
-{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}},
-{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}},
-{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}},
-{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}},
-{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}},
-{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}},
-{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}},
-{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}},
-{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}},
-{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}},
-{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}},
-{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}},
-{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}},
-{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}},
-{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}},
-{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}},
-{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}},
-{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}},
-{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}},
-{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}},
-{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}},
-{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}},
-{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}},
-{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}},
-{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}},
-{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}},
-{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}},
-{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}},
-{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}},
-{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}}
-};
-
-local const ct_data static_dtree[D_CODES] = {
-{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}},
-{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}},
-{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}},
-{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}},
-{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}},
-{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}}
-};
-
-const uch _dist_code[DIST_CODE_LEN] = {
- 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8,
- 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10,
-10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
-11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
-12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13,
-13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
-13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
-14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17,
-18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22,
-23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
-28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
-29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
-};
-
-const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12,
-13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
-17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19,
-19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
-21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22,
-22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
-23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
-25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
-25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
-26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
-27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28
-};
-
-local const int base_length[LENGTH_CODES] = {
-0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56,
-64, 80, 96, 112, 128, 160, 192, 224, 0
-};
-
-local const int base_dist[D_CODES] = {
- 0, 1, 2, 3, 4, 6, 8, 12, 16, 24,
- 32, 48, 64, 96, 128, 192, 256, 384, 512, 768,
- 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576
-};
-
diff --git a/zlib-1.1.4/uncompr.c b/zlib-1.1.4/uncompr.c
deleted file mode 100644
index a287714..0000000
--- a/zlib-1.1.4/uncompr.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* uncompr.c -- decompress a memory buffer
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zlib.h"
-
-/* ===========================================================================
- Decompresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be large enough to hold the
- entire uncompressed data. (The size of the uncompressed data must have
- been saved previously by the compressor and transmitted to the decompressor
- by some mechanism outside the scope of this compression library.)
- Upon exit, destLen is the actual size of the compressed buffer.
- This function can be used to decompress a whole file at once if the
- input file is mmap'ed.
-
- uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer, or Z_DATA_ERROR if the input data was corrupted.
-*/
-int ZEXPORT uncompress (dest, destLen, source, sourceLen)
- Bytef *dest;
- uLongf *destLen;
- const Bytef *source;
- uLong sourceLen;
-{
- z_stream stream;
- int err;
-
- stream.next_in = (Bytef*)source;
- stream.avail_in = (uInt)sourceLen;
- /* Check for source > 64K on 16-bit machine: */
- if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
-
- stream.next_out = dest;
- stream.avail_out = (uInt)*destLen;
- if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
-
- stream.zalloc = (alloc_func)0;
- stream.zfree = (free_func)0;
-
- err = inflateInit(&stream);
- if (err != Z_OK) return err;
-
- err = inflate(&stream, Z_FINISH);
- if (err != Z_STREAM_END) {
- inflateEnd(&stream);
- return err == Z_OK ? Z_BUF_ERROR : err;
- }
- *destLen = stream.total_out;
-
- err = inflateEnd(&stream);
- return err;
-}
diff --git a/zlib-1.1.4/zconf.h b/zlib-1.1.4/zconf.h
deleted file mode 100644
index eb0ae2e..0000000
--- a/zlib-1.1.4/zconf.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#ifndef _ZCONF_H
-#define _ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- */
-#ifdef Z_PREFIX
-# define deflateInit_ z_deflateInit_
-# define deflate z_deflate
-# define deflateEnd z_deflateEnd
-# define inflateInit_ z_inflateInit_
-# define inflate z_inflate
-# define inflateEnd z_inflateEnd
-# define deflateInit2_ z_deflateInit2_
-# define deflateSetDictionary z_deflateSetDictionary
-# define deflateCopy z_deflateCopy
-# define deflateReset z_deflateReset
-# define deflateParams z_deflateParams
-# define inflateInit2_ z_inflateInit2_
-# define inflateSetDictionary z_inflateSetDictionary
-# define inflateSync z_inflateSync
-# define inflateSyncPoint z_inflateSyncPoint
-# define inflateReset z_inflateReset
-# define compress z_compress
-# define compress2 z_compress2
-# define uncompress z_uncompress
-# define adler32 z_adler32
-# define crc32 z_crc32
-# define get_crc_table z_get_crc_table
-
-# define Byte z_Byte
-# define uInt z_uInt
-# define uLong z_uLong
-# define Bytef z_Bytef
-# define charf z_charf
-# define intf z_intf
-# define uIntf z_uIntf
-# define uLongf z_uLongf
-# define voidpf z_voidpf
-# define voidp z_voidp
-#endif
-
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-# define WIN32
-#endif
-#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
-# ifndef __32BIT__
-# define __32BIT__
-# endif
-#endif
-#if defined(__MSDOS__) && !defined(MSDOS)
-# define MSDOS
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#if defined(MSDOS) && !defined(__32BIT__)
-# define MAXSEG_64K
-#endif
-#ifdef MSDOS
-# define UNALIGNED_OK
-#endif
-
-#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC)
-# define STDC
-#endif
-#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
-# ifndef STDC
-# define STDC
-# endif
-#endif
-
-#ifndef STDC
-# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-# define const
-# endif
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
-# define NO_DUMMY_DECL
-#endif
-
-/* Old Borland C incorrectly complains about missing returns: */
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
-# define NEED_DUMMY_RETURN
-#endif
-
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-# ifdef MAXSEG_64K
-# define MAX_MEM_LEVEL 8
-# else
-# define MAX_MEM_LEVEL 9
-# endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-# define MAX_WBITS 15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
- (1 << (windowBits+2)) + (1 << (memLevel+9))
- that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
- make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
- The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
- /* Type declarations */
-
-#ifndef OF /* function prototypes */
-# ifdef STDC
-# define OF(args) args
-# else
-# define OF(args) ()
-# endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
- /* MSC small or medium model */
-# define SMALL_MEDIUM
-# ifdef _MSC_VER
-# define FAR _far
-# else
-# define FAR far
-# endif
-#endif
-#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
-# ifndef __32BIT__
-# define SMALL_MEDIUM
-# define FAR _far
-# endif
-#endif
-
-/* Compile with -DZLIB_DLL for Windows DLL support */
-#if defined(ZLIB_DLL)
-# if defined(_WINDOWS) || defined(WINDOWS)
-# ifdef FAR
-# undef FAR
-# endif
-# include <windows.h>
-# define ZEXPORT WINAPI
-# ifdef WIN32
-# define ZEXPORTVA WINAPIV
-# else
-# define ZEXPORTVA FAR _cdecl _export
-# endif
-# endif
-# if defined (__BORLANDC__)
-# if (__BORLANDC__ >= 0x0500) && defined (WIN32)
-# include <windows.h>
-# define ZEXPORT __declspec(dllexport) WINAPI
-# define ZEXPORTRVA __declspec(dllexport) WINAPIV
-# else
-# if defined (_Windows) && defined (__DLL__)
-# define ZEXPORT _export
-# define ZEXPORTVA _export
-# endif
-# endif
-# endif
-#endif
-
-#if defined (__BEOS__)
-# if defined (ZLIB_DLL)
-# define ZEXTERN extern __declspec(dllexport)
-# else
-# define ZEXTERN extern __declspec(dllimport)
-# endif
-#endif
-
-#ifndef ZEXPORT
-# define ZEXPORT
-#endif
-#ifndef ZEXPORTVA
-# define ZEXPORTVA
-#endif
-#ifndef ZEXTERN
-# define ZEXTERN extern
-#endif
-
-#ifndef FAR
-# define FAR
-#endif
-
-#if !defined(MACOS) && !defined(TARGET_OS_MAC)
-typedef unsigned char Byte; /* 8 bits */
-#endif
-typedef unsigned int uInt; /* 16 bits or more */
-typedef unsigned long uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
- /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-# define Bytef Byte FAR
-#else
- typedef Byte FAR Bytef;
-#endif
-typedef char FAR charf;
-typedef int FAR intf;
-typedef uInt FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
- typedef void FAR *voidpf;
- typedef void *voidp;
-#else
- typedef Byte FAR *voidpf;
- typedef Byte *voidp;
-#endif
-
-#ifdef HAVE_UNISTD_H
-# include <sys/types.h> /* for off_t */
-# include <unistd.h> /* for SEEK_* and off_t */
-# define z_off_t off_t
-#endif
-#ifndef SEEK_SET
-# define SEEK_SET 0 /* Seek from beginning of file. */
-# define SEEK_CUR 1 /* Seek from current position. */
-# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
-#endif
-#ifndef z_off_t
-# define z_off_t long
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-# pragma map(deflateInit_,"DEIN")
-# pragma map(deflateInit2_,"DEIN2")
-# pragma map(deflateEnd,"DEEND")
-# pragma map(inflateInit_,"ININ")
-# pragma map(inflateInit2_,"ININ2")
-# pragma map(inflateEnd,"INEND")
-# pragma map(inflateSync,"INSY")
-# pragma map(inflateSetDictionary,"INSEDI")
-# pragma map(inflate_blocks,"INBL")
-# pragma map(inflate_blocks_new,"INBLNE")
-# pragma map(inflate_blocks_free,"INBLFR")
-# pragma map(inflate_blocks_reset,"INBLRE")
-# pragma map(inflate_codes_free,"INCOFR")
-# pragma map(inflate_codes,"INCO")
-# pragma map(inflate_fast,"INFA")
-# pragma map(inflate_flush,"INFLU")
-# pragma map(inflate_mask,"INMA")
-# pragma map(inflate_set_dictionary,"INSEDI2")
-# pragma map(inflate_copyright,"INCOPY")
-# pragma map(inflate_trees_bits,"INTRBI")
-# pragma map(inflate_trees_dynamic,"INTRDY")
-# pragma map(inflate_trees_fixed,"INTRFI")
-# pragma map(inflate_trees_free,"INTRFR")
-#endif
-
-#endif /* _ZCONF_H */
diff --git a/zlib-1.1.4/zlib.3 b/zlib-1.1.4/zlib.3
deleted file mode 100644
index 3a6e450..0000000
--- a/zlib-1.1.4/zlib.3
+++ /dev/null
@@ -1,107 +0,0 @@
-.TH ZLIB 3 "11 March 2002"
-.SH NAME
-zlib \- compression/decompression library
-.SH SYNOPSIS
-[see
-.I zlib.h
-for full description]
-.SH DESCRIPTION
-The
-.I zlib
-library is a general purpose data compression library.
-The code is thread safe.
-It provides in-memory compression and decompression functions,
-including integrity checks of the uncompressed data.
-This version of the library supports only one compression method (deflation)
-but other algorithms will be added later and will have the same stream interface.
-.LP
-Compression can be done in a single step if the buffers are large enough
-(for example if an input file is mmap'ed),
-or can be done by repeated calls of the compression function.
-In the latter case,
-the application must provide more input and/or consume the output
-(providing more output space) before each call.
-.LP
-The library also supports reading and writing files in
-.I gzip
-(.gz) format
-with an interface similar to that of stdio.
-.LP
-The library does not install any signal handler. The decoder checks
-the consistency of the compressed data, so the library should never
-crash even in case of corrupted input.
-.LP
-All functions of the compression library are documented in the file
-.IR zlib.h.
-The distribution source includes examples of use of the library
-the files
-.I example.c
-and
-.IR minigzip.c .
-.LP
-A Java implementation of
-.IR zlib
-is available in the Java Development Kit 1.1
-.IP
-http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html
-.LP
-A Perl interface to
-.IR zlib ,
-written by Paul Marquess (pmarquess@bfsec.bt.co.uk)
-is available at CPAN (Comprehensive Perl Archive Network) sites,
-such as:
-.IP
-ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib*
-.LP
-A Python interface to
-.IR zlib
-written by A.M. Kuchling <amk@magnet.com>
-is available from the Python Software Association sites, such as:
-.IP
-ftp://ftp.python.org/pub/python/contrib/Encoding/zlib*.tar.gz
-.SH "SEE ALSO"
-Questions about zlib should be sent to:
-.IP
-zlib@quest.jpl.nasa.gov
-or, if this fails, to the author addresses given below.
-The zlib home page is:
-.IP
-http://www.cdrom.com/pub/infozip/zlib/
-.LP
-The data format used by the zlib library is described by RFC
-(Request for Comments) 1950 to 1952 in the files:
-.IP
-ftp://ds.internic.net/rfc/rfc1950.txt (zlib format)
-.br
-rfc1951.txt (deflate format)
-.br
-rfc1952.txt (gzip format)
-.LP
-These documents are also available in other formats from:
-.IP
-ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html
-.SH AUTHORS
-Version 1.1.4
-Copyright (C) 1995-2002 Jean-loup Gailly (jloup@gzip.org)
-and Mark Adler (madler@alumni.caltech.edu).
-.LP
-This software is provided "as-is,"
-without any express or implied warranty.
-In no event will the authors be held liable for any damages
-arising from the use of this software.
-See the distribution directory with respect to requirements
-governing redistribution.
-The deflate format used by
-.I zlib
-was defined by Phil Katz.
-The deflate and
-.I zlib
-specifications were written by L. Peter Deutsch.
-Thanks to all the people who reported problems and suggested various
-improvements in
-.IR zlib ;
-who are too numerous to cite here.
-.LP
-UNIX manual page by R. P. C. Rodgers,
-U.S. National Library of Medicine (rodgers@nlm.nih.gov).
-.\" end of man page
diff --git a/zlib-1.1.4/zlib.h b/zlib-1.1.4/zlib.h
deleted file mode 100644
index 52cb529..0000000
--- a/zlib-1.1.4/zlib.h
+++ /dev/null
@@ -1,893 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
- version 1.1.4, March 11th, 2002
-
- Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
-
-
- The data format used by the zlib library is described by RFCs (Request for
- Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
- (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
-*/
-
-#ifndef _ZLIB_H
-#define _ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.1.4"
-
-/*
- The 'zlib' compression library provides in-memory compression and
- decompression functions, including integrity checks of the uncompressed
- data. This version of the library supports only one compression method
- (deflation) but other algorithms will be added later and will have the same
- stream interface.
-
- Compression can be done in a single step if the buffers are large
- enough (for example if an input file is mmap'ed), or can be done by
- repeated calls of the compression function. In the latter case, the
- application must provide more input and/or consume the output
- (providing more output space) before each call.
-
- The library also supports reading and writing files in gzip (.gz) format
- with an interface similar to that of stdio.
-
- The library does not install any signal handler. The decoder checks
- the consistency of the compressed data, so the library should never
- crash even in case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void (*free_func) OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
- Bytef *next_in; /* next input byte */
- uInt avail_in; /* number of bytes available at next_in */
- uLong total_in; /* total nb of input bytes read so far */
-
- Bytef *next_out; /* next output byte should be put there */
- uInt avail_out; /* remaining free space at next_out */
- uLong total_out; /* total nb of bytes output so far */
-
- char *msg; /* last error message, NULL if no error */
- struct internal_state FAR *state; /* not visible by applications */
-
- alloc_func zalloc; /* used to allocate the internal state */
- free_func zfree; /* used to free the internal state */
- voidpf opaque; /* private data object passed to zalloc and zfree */
-
- int data_type; /* best guess about the data type: ascii or binary */
- uLong adler; /* adler32 value of the uncompressed data */
- uLong reserved; /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
- The application must update next_in and avail_in when avail_in has
- dropped to zero. It must update next_out and avail_out when avail_out
- has dropped to zero. The application must initialize zalloc, zfree and
- opaque before calling the init function. All other fields are set by the
- compression library and must not be updated by the application.
-
- The opaque value provided by the application will be passed as the first
- parameter for calls of zalloc and zfree. This can be useful for custom
- memory management. The compression library attaches no meaning to the
- opaque value.
-
- zalloc must return Z_NULL if there is not enough memory for the object.
- If zlib is used in a multi-threaded application, zalloc and zfree must be
- thread safe.
-
- On 16-bit systems, the functions zalloc and zfree must be able to allocate
- exactly 65536 bytes, but will not be required to allocate more than this
- if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
- pointers returned by zalloc for objects of exactly 65536 bytes *must*
- have their offset normalized to zero. The default allocation function
- provided by this library ensures this (see zutil.c). To reduce memory
- requirements and avoid any allocation of 64K objects, at the expense of
- compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-
- The fields total_in and total_out can be used for statistics or
- progress reports. After compression, total_in holds the total size of
- the uncompressed data and may be saved for use in the decompressor
- (particularly if the decompressor wants to decompress everything in
- a single step).
-*/
-
- /* constants */
-
-#define Z_NO_FLUSH 0
-#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
-#define Z_SYNC_FLUSH 2
-#define Z_FULL_FLUSH 3
-#define Z_FINISH 4
-/* Allowed flush values; see deflate() below for details */
-
-#define Z_OK 0
-#define Z_STREAM_END 1
-#define Z_NEED_DICT 2
-#define Z_ERRNO (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR (-3)
-#define Z_MEM_ERROR (-4)
-#define Z_BUF_ERROR (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative
- * values are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION 0
-#define Z_BEST_SPEED 1
-#define Z_BEST_COMPRESSION 9
-#define Z_DEFAULT_COMPRESSION (-1)
-/* compression levels */
-
-#define Z_FILTERED 1
-#define Z_HUFFMAN_ONLY 2
-#define Z_DEFAULT_STRATEGY 0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY 0
-#define Z_ASCII 1
-#define Z_UNKNOWN 2
-/* Possible values of the data_type field */
-
-#define Z_DEFLATED 8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
- /* basic functions */
-
-ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
- If the first character differs, the library code actually used is
- not compatible with the zlib.h header file used by the application.
- This check is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-
- Initializes the internal stream state for compression. The fields
- zalloc, zfree and opaque must be initialized before by the caller.
- If zalloc and zfree are set to Z_NULL, deflateInit updates them to
- use default allocation functions.
-
- The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
- 1 gives best speed, 9 gives best compression, 0 gives no compression at
- all (the input data is simply copied a block at a time).
- Z_DEFAULT_COMPRESSION requests a default compromise between speed and
- compression (currently equivalent to level 6).
-
- deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if level is not a valid compression level,
- Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
- with the version assumed by the caller (ZLIB_VERSION).
- msg is set to null if there is no error message. deflateInit does not
- perform any compression: this will be done by deflate().
-*/
-
-
-ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-/*
- deflate compresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may introduce some
- output latency (reading input without producing any output) except when
- forced to flush.
-
- The detailed semantics are as follows. deflate performs one or both of the
- following actions:
-
- - Compress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in and avail_in are updated and
- processing will resume at this point for the next call of deflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. This action is forced if the parameter flush is non zero.
- Forcing flush frequently degrades the compression ratio, so this parameter
- should be set only when necessary (in interactive applications).
- Some output may be provided even if flush is not set.
-
- Before the call of deflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating avail_in or avail_out accordingly; avail_out
- should never be zero before the call. The application can consume the
- compressed output when it wants, for example when the output buffer is full
- (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
- and with zero avail_out, it must be called again after making room in the
- output buffer because there might be more output pending.
-
- If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
- flushed to the output buffer and the output is aligned on a byte boundary, so
- that the decompressor can get all input data available so far. (In particular
- avail_in is zero after the call if enough output space has been provided
- before the call.) Flushing may degrade compression for some compression
- algorithms and so it should be used only when necessary.
-
- If flush is set to Z_FULL_FLUSH, all output is flushed as with
- Z_SYNC_FLUSH, and the compression state is reset so that decompression can
- restart from this point if previous compressed data has been damaged or if
- random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
- the compression.
-
- If deflate returns with avail_out == 0, this function must be called again
- with the same value of the flush parameter and more output space (updated
- avail_out), until the flush is complete (deflate returns with non-zero
- avail_out).
-
- If the parameter flush is set to Z_FINISH, pending input is processed,
- pending output is flushed and deflate returns with Z_STREAM_END if there
- was enough output space; if deflate returns with Z_OK, this function must be
- called again with Z_FINISH and more output space (updated avail_out) but no
- more input data, until it returns with Z_STREAM_END or an error. After
- deflate has returned Z_STREAM_END, the only possible operations on the
- stream are deflateReset or deflateEnd.
-
- Z_FINISH can be used immediately after deflateInit if all the compression
- is to be done in a single step. In this case, avail_out must be at least
- 0.1% larger than avail_in plus 12 bytes. If deflate does not return
- Z_STREAM_END, then it must be called again as described above.
-
- deflate() sets strm->adler to the adler32 checksum of all input read
- so far (that is, total_in bytes).
-
- deflate() may update data_type if it can make a good guess about
- the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
- binary. This field is only for information purposes and does not affect
- the compression algorithm in any manner.
-
- deflate() returns Z_OK if some progress has been made (more input
- processed or more output produced), Z_STREAM_END if all input has been
- consumed and all output has been produced (only when flush is set to
- Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
- if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible
- (for example avail_in or avail_out was zero).
-*/
-
-
-ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
- stream state was inconsistent, Z_DATA_ERROR if the stream was freed
- prematurely (some input or output was discarded). In the error case,
- msg may be set but then points to a static string (which must not be
- deallocated).
-*/
-
-
-/*
-ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-
- Initializes the internal stream state for decompression. The fields
- next_in, avail_in, zalloc, zfree and opaque must be initialized before by
- the caller. If next_in is not Z_NULL and avail_in is large enough (the exact
- value depends on the compression method), inflateInit determines the
- compression method from the zlib header and allocates all data structures
- accordingly; otherwise the allocation will be deferred to the first call of
- inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to
- use default allocation functions.
-
- inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
- version assumed by the caller. msg is set to null if there is no error
- message. inflateInit does not perform any decompression apart from reading
- the zlib header if present: this will be done by inflate(). (So next_in and
- avail_in may be modified, but next_out and avail_out are unchanged.)
-*/
-
-
-ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-/*
- inflate decompresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may some
- introduce some output latency (reading input without producing any output)
- except when forced to flush.
-
- The detailed semantics are as follows. inflate performs one or both of the
- following actions:
-
- - Decompress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in is updated and processing
- will resume at this point for the next call of inflate().
-
- - Provide more output starting at next_out and update next_out and avail_out
- accordingly. inflate() provides as much output as possible, until there
- is no more input data or no more space in the output buffer (see below
- about the flush parameter).
-
- Before the call of inflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating the next_* and avail_* values accordingly.
- The application can consume the uncompressed output when it wants, for
- example when the output buffer is full (avail_out == 0), or after each
- call of inflate(). If inflate returns Z_OK and with zero avail_out, it
- must be called again after making room in the output buffer because there
- might be more output pending.
-
- If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much
- output as possible to the output buffer. The flushing behavior of inflate is
- not specified for values of the flush parameter other than Z_SYNC_FLUSH
- and Z_FINISH, but the current implementation actually flushes as much output
- as possible anyway.
-
- inflate() should normally be called until it returns Z_STREAM_END or an
- error. However if all decompression is to be performed in a single step
- (a single call of inflate), the parameter flush should be set to
- Z_FINISH. In this case all pending input is processed and all pending
- output is flushed; avail_out must be large enough to hold all the
- uncompressed data. (The size of the uncompressed data may have been saved
- by the compressor for this purpose.) The next operation on this stream must
- be inflateEnd to deallocate the decompression state. The use of Z_FINISH
- is never required, but can be used to inform inflate that a faster routine
- may be used for the single inflate() call.
-
- If a preset dictionary is needed at this point (see inflateSetDictionary
- below), inflate sets strm-adler to the adler32 checksum of the
- dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise
- it sets strm->adler to the adler32 checksum of all output produced
- so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or
- an error code as described below. At the end of the stream, inflate()
- checks that its computed adler32 checksum is equal to that saved by the
- compressor and returns Z_STREAM_END only if the checksum is correct.
-
- inflate() returns Z_OK if some progress has been made (more input processed
- or more output produced), Z_STREAM_END if the end of the compressed data has
- been reached and all uncompressed output has been produced, Z_NEED_DICT if a
- preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
- corrupted (input stream not conforming to the zlib format or incorrect
- adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent
- (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if no progress is possible or if there was not
- enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR
- case, the application may then call inflateSync to look for a good
- compression block.
-*/
-
-
-ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
-
- inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
- was inconsistent. In the error case, msg may be set but then points to a
- static string (which must not be deallocated).
-*/
-
- /* Advanced functions */
-
-/*
- The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
- int level,
- int method,
- int windowBits,
- int memLevel,
- int strategy));
-
- This is another version of deflateInit with more compression options. The
- fields next_in, zalloc, zfree and opaque must be initialized before by
- the caller.
-
- The method parameter is the compression method. It must be Z_DEFLATED in
- this version of the library.
-
- The windowBits parameter is the base two logarithm of the window size
- (the size of the history buffer). It should be in the range 8..15 for this
- version of the library. Larger values of this parameter result in better
- compression at the expense of memory usage. The default value is 15 if
- deflateInit is used instead.
-
- The memLevel parameter specifies how much memory should be allocated
- for the internal compression state. memLevel=1 uses minimum memory but
- is slow and reduces compression ratio; memLevel=9 uses maximum memory
- for optimal speed. The default value is 8. See zconf.h for total memory
- usage as a function of windowBits and memLevel.
-
- The strategy parameter is used to tune the compression algorithm. Use the
- value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
- filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
- string match). Filtered data consists mostly of small values with a
- somewhat random distribution. In this case, the compression algorithm is
- tuned to compress them better. The effect of Z_FILTERED is to force more
- Huffman coding and less string matching; it is somewhat intermediate
- between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects
- the compression ratio but not the correctness of the compressed output even
- if it is not set appropriately.
-
- deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
- method). msg is set to null if there is no error message. deflateInit2 does
- not perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
- const Bytef *dictionary,
- uInt dictLength));
-/*
- Initializes the compression dictionary from the given byte sequence
- without producing any compressed output. This function must be called
- immediately after deflateInit, deflateInit2 or deflateReset, before any
- call of deflate. The compressor and decompressor must use exactly the same
- dictionary (see inflateSetDictionary).
-
- The dictionary should consist of strings (byte sequences) that are likely
- to be encountered later in the data to be compressed, with the most commonly
- used strings preferably put towards the end of the dictionary. Using a
- dictionary is most useful when the data to be compressed is short and can be
- predicted with good accuracy; the data can then be compressed better than
- with the default empty dictionary.
-
- Depending on the size of the compression data structures selected by
- deflateInit or deflateInit2, a part of the dictionary may in effect be
- discarded, for example if the dictionary is larger than the window size in
- deflate or deflate2. Thus the strings most likely to be useful should be
- put at the end of the dictionary, not at the front.
-
- Upon return of this function, strm->adler is set to the Adler32 value
- of the dictionary; the decompressor may later use this value to determine
- which dictionary has been used by the compressor. (The Adler32 value
- applies to the whole dictionary even if only a subset of the dictionary is
- actually used by the compressor.)
-
- deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
- parameter is invalid (such as NULL dictionary) or the stream state is
- inconsistent (for example if deflate has already been called for this stream
- or if the compression method is bsort). deflateSetDictionary does not
- perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
- z_streamp source));
-/*
- Sets the destination stream as a complete copy of the source stream.
-
- This function can be useful when several compression strategies will be
- tried, for example when there are several ways of pre-processing the input
- data with a filter. The streams that will be discarded should then be freed
- by calling deflateEnd. Note that deflateCopy duplicates the internal
- compression state which can be quite large, so this strategy is slow and
- can consume lots of memory.
-
- deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
- (such as zalloc being NULL). msg is left unchanged in both source and
- destination.
-*/
-
-ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-/*
- This function is equivalent to deflateEnd followed by deflateInit,
- but does not free and reallocate all the internal compression state.
- The stream will keep the same compression level and any other attributes
- that may have been set by deflateInit2.
-
- deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
- int level,
- int strategy));
-/*
- Dynamically update the compression level and compression strategy. The
- interpretation of level and strategy is as in deflateInit2. This can be
- used to switch between compression and straight copy of the input data, or
- to switch to a different kind of input data requiring a different
- strategy. If the compression level is changed, the input available so far
- is compressed with the old level (and may be flushed); the new level will
- take effect only at the next call of deflate().
-
- Before the call of deflateParams, the stream state must be set as for
- a call of deflate(), since the currently available input may have to
- be compressed and flushed. In particular, strm->avail_out must be non-zero.
-
- deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
- stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
- if strm->avail_out was zero.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
- int windowBits));
-
- This is another version of inflateInit with an extra parameter. The
- fields next_in, avail_in, zalloc, zfree and opaque must be initialized
- before by the caller.
-
- The windowBits parameter is the base two logarithm of the maximum window
- size (the size of the history buffer). It should be in the range 8..15 for
- this version of the library. The default value is 15 if inflateInit is used
- instead. If a compressed stream with a larger window size is given as
- input, inflate() will return with the error code Z_DATA_ERROR instead of
- trying to allocate a larger window.
-
- inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative
- memLevel). msg is set to null if there is no error message. inflateInit2
- does not perform any decompression apart from reading the zlib header if
- present: this will be done by inflate(). (So next_in and avail_in may be
- modified, but next_out and avail_out are unchanged.)
-*/
-
-ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
- const Bytef *dictionary,
- uInt dictLength));
-/*
- Initializes the decompression dictionary from the given uncompressed byte
- sequence. This function must be called immediately after a call of inflate
- if this call returned Z_NEED_DICT. The dictionary chosen by the compressor
- can be determined from the Adler32 value returned by this call of
- inflate. The compressor and decompressor must use exactly the same
- dictionary (see deflateSetDictionary).
-
- inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
- parameter is invalid (such as NULL dictionary) or the stream state is
- inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
- expected one (incorrect Adler32 value). inflateSetDictionary does not
- perform any decompression: this will be done by subsequent calls of
- inflate().
-*/
-
-ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-/*
- Skips invalid compressed data until a full flush point (see above the
- description of deflate with Z_FULL_FLUSH) can be found, or until all
- available input is skipped. No output is provided.
-
- inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
- if no more input was provided, Z_DATA_ERROR if no flush point has been found,
- or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
- case, the application may save the current current value of total_in which
- indicates where valid compressed data was found. In the error case, the
- application may repeatedly call inflateSync, providing more input each time,
- until success or end of the input data.
-*/
-
-ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-/*
- This function is equivalent to inflateEnd followed by inflateInit,
- but does not free and reallocate all the internal decompression state.
- The stream will keep attributes that may have been set by inflateInit2.
-
- inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-
- /* utility functions */
-
-/*
- The following utility functions are implemented on top of the
- basic stream-oriented functions. To simplify the interface, some
- default options are assumed (compression level and memory usage,
- standard memory allocation functions). The source code of these
- utility functions can easily be modified if you need special options.
-*/
-
-ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen));
-/*
- Compresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be at least 0.1% larger than
- sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
- compressed buffer.
- This function can be used to compress a whole file at once if the
- input file is mmap'ed.
- compress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer.
-*/
-
-ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen,
- int level));
-/*
- Compresses the source buffer into the destination buffer. The level
- parameter has the same meaning as in deflateInit. sourceLen is the byte
- length of the source buffer. Upon entry, destLen is the total size of the
- destination buffer, which must be at least 0.1% larger than sourceLen plus
- 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
-
- compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_BUF_ERROR if there was not enough room in the output buffer,
- Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen));
-/*
- Decompresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be large enough to hold the
- entire uncompressed data. (The size of the uncompressed data must have
- been saved previously by the compressor and transmitted to the decompressor
- by some mechanism outside the scope of this compression library.)
- Upon exit, destLen is the actual size of the compressed buffer.
- This function can be used to decompress a whole file at once if the
- input file is mmap'ed.
-
- uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer, or Z_DATA_ERROR if the input data was corrupted.
-*/
-
-
-typedef voidp gzFile;
-
-ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-/*
- Opens a gzip (.gz) file for reading or writing. The mode parameter
- is as in fopen ("rb" or "wb") but can also include a compression level
- ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for
- Huffman only compression as in "wb1h". (See the description
- of deflateInit2 for more information about the strategy parameter.)
-
- gzopen can be used to read a file which is not in gzip format; in this
- case gzread will directly read from the file without decompression.
-
- gzopen returns NULL if the file could not be opened or if there was
- insufficient memory to allocate the (de)compression state; errno
- can be checked to distinguish the two cases (if errno is zero, the
- zlib error is Z_MEM_ERROR). */
-
-ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-/*
- gzdopen() associates a gzFile with the file descriptor fd. File
- descriptors are obtained from calls like open, dup, creat, pipe or
- fileno (in the file has been previously opened with fopen).
- The mode parameter is as in gzopen.
- The next call of gzclose on the returned gzFile will also close the
- file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
- descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
- gzdopen returns NULL if there was insufficient memory to allocate
- the (de)compression state.
-*/
-
-ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-/*
- Dynamically update the compression level or strategy. See the description
- of deflateInit2 for the meaning of these parameters.
- gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
- opened for writing.
-*/
-
-ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-/*
- Reads the given number of uncompressed bytes from the compressed file.
- If the input file was not in gzip format, gzread copies the given number
- of bytes into the buffer.
- gzread returns the number of uncompressed bytes actually read (0 for
- end of file, -1 for error). */
-
-ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
- const voidp buf, unsigned len));
-/*
- Writes the given number of uncompressed bytes into the compressed file.
- gzwrite returns the number of uncompressed bytes actually written
- (0 in case of error).
-*/
-
-ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...));
-/*
- Converts, formats, and writes the args to the compressed file under
- control of the format string, as in fprintf. gzprintf returns the number of
- uncompressed bytes actually written (0 in case of error).
-*/
-
-ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-/*
- Writes the given null-terminated string to the compressed file, excluding
- the terminating null character.
- gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-/*
- Reads bytes from the compressed file until len-1 characters are read, or
- a newline character is read and transferred to buf, or an end-of-file
- condition is encountered. The string is then terminated with a null
- character.
- gzgets returns buf, or Z_NULL in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-/*
- Writes c, converted to an unsigned char, into the compressed file.
- gzputc returns the value that was written, or -1 in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-/*
- Reads one byte from the compressed file. gzgetc returns this byte
- or -1 in case of end of file or error.
-*/
-
-ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-/*
- Flushes all pending output into the compressed file. The parameter
- flush is as in the deflate() function. The return value is the zlib
- error number (see function gzerror below). gzflush returns Z_OK if
- the flush parameter is Z_FINISH and all output could be flushed.
- gzflush should be called only when strictly necessary because it can
- degrade compression.
-*/
-
-ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
- z_off_t offset, int whence));
-/*
- Sets the starting position for the next gzread or gzwrite on the
- given compressed file. The offset represents a number of bytes in the
- uncompressed data stream. The whence parameter is defined as in lseek(2);
- the value SEEK_END is not supported.
- If the file is opened for reading, this function is emulated but can be
- extremely slow. If the file is opened for writing, only forward seeks are
- supported; gzseek then compresses a sequence of zeroes up to the new
- starting position.
-
- gzseek returns the resulting offset location as measured in bytes from
- the beginning of the uncompressed stream, or -1 in case of error, in
- particular if the file is opened for writing and the new starting position
- would be before the current position.
-*/
-
-ZEXTERN int ZEXPORT gzrewind OF((gzFile file));
-/*
- Rewinds the given file. This function is supported only for reading.
-
- gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file));
-/*
- Returns the starting position for the next gzread or gzwrite on the
- given compressed file. This position represents a number of bytes in the
- uncompressed data stream.
-
- gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-/*
- Returns 1 when EOF has previously been detected reading the given
- input stream, otherwise zero.
-*/
-
-ZEXTERN int ZEXPORT gzclose OF((gzFile file));
-/*
- Flushes all pending output if necessary, closes the compressed file
- and deallocates all the (de)compression state. The return value is the zlib
- error number (see function gzerror below).
-*/
-
-ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-/*
- Returns the error message for the last error which occurred on the
- given compressed file. errnum is set to zlib error number. If an
- error occurred in the file system and not in the compression library,
- errnum is set to Z_ERRNO and the application may consult errno
- to get the exact error code.
-*/
-
- /* checksum functions */
-
-/*
- These functions are not related to compression but are exported
- anyway because they might be useful in applications using the
- compression library.
-*/
-
-ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-
-/*
- Update a running Adler-32 checksum with the bytes buf[0..len-1] and
- return the updated checksum. If buf is NULL, this function returns
- the required initial value for the checksum.
- An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
- much faster. Usage example:
-
- uLong adler = adler32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- adler = adler32(adler, buffer, length);
- }
- if (adler != original_adler) error();
-*/
-
-ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
-/*
- Update a running crc with the bytes buf[0..len-1] and return the updated
- crc. If buf is NULL, this function returns the required initial value
- for the crc. Pre- and post-conditioning (one's complement) is performed
- within this function so it shouldn't be done by the application.
- Usage example:
-
- uLong crc = crc32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- crc = crc32(crc, buffer, length);
- }
- if (crc != original_crc) error();
-*/
-
-
- /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
- const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
- const char *version, int stream_size));
-ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
- int windowBits, int memLevel,
- int strategy, const char *version,
- int stream_size));
-ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
- const char *version, int stream_size));
-#define deflateInit(strm, level) \
- deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit(strm) \
- inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
- deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
- (strategy), ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
- inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
-
-
-#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL)
- struct internal_state {int dummy;}; /* hack for buggy compilers */
-#endif
-
-ZEXTERN const char * ZEXPORT zError OF((int err));
-ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z));
-ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZLIB_H */
diff --git a/zlib-1.1.4/zlib.html b/zlib-1.1.4/zlib.html
deleted file mode 100644
index c343703..0000000
--- a/zlib-1.1.4/zlib.html
+++ /dev/null
@@ -1,971 +0,0 @@
-<html>
-<head>
- <title>
- zlib general purpose compression library version 1.1.4
- </title>
-</head>
-<body bgcolor="White" text="Black" vlink="Red" alink="Navy" link="Red">
-<!-- background="zlibbg.gif" -->
-
-<h1> zlib 1.1.4 Manual </h1>
-<hr>
-<a name="Contents"><h2>Contents</h2>
-<ol type="I">
-<li> <a href="#Prologue">Prologue</a>
-<li> <a href="#Introduction">Introduction</a>
-<li> <a href="#Utility functions">Utility functions</a>
-<li> <a href="#Basic functions">Basic functions</a>
-<li> <a href="#Advanced functions">Advanced functions</a>
-<li> <a href="#Constants">Constants</a>
-<li> <a href="#struct z_stream_s">struct z_stream_s</a>
-<li> <a href="#Checksum functions">Checksum functions</a>
-<li> <a href="#Misc">Misc</a>
-</ol>
-<hr>
-<a name="Prologue"><h2> Prologue </h2>
- 'zlib' general purpose compression library version 1.1.4, March 11th, 2002
- <p>
- Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler
- <p>
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
- <p>
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
- <ol>
- <li> The origin of this software must not be misrepresented ; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- <li> Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- <li> This notice may not be removed or altered from any source distribution.
- </ol>
-
- <dl>
- <dt>Jean-loup Gailly
- <dd><a href="mailto:jloup@gzip.org">jloup@gzip.org</a>
- <dt>Mark Adler
- <dd><a href="mailto:madler@alumni.caltech.edu">madler@alumni.caltech.edu</a>
- </dl>
-
- The data format used by the zlib library is described by RFCs (Request for
- Comments) 1950 to 1952 in the files
- <a href="ftp://ds.internic.net/rfc/rfc1950.txt">
- ftp://ds.internic.net/rfc/rfc1950.txt </a>
- (zlib format),
- <a href="ftp://ds.internic.net/rfc/rfc1951.txt">
- rfc1951.txt </a>
- (<a href="#deflate">deflate</a> format) and
- <a href="ftp://ds.internic.net/rfc/rfc1952.txt">
- rfc1952.txt </a>
- (gzip format).
- <p>
- This manual is converted from zlib.h by
- <a href="mailto:piaip@csie.ntu.edu.tw"> piaip </a>
- <p>
- Visit <a href="http://ftp.cdrom.com/pub/infozip/zlib/">
- http://ftp.cdrom.com/pub/infozip/zlib/</a>
- for the official zlib web page.
- <p>
-
-<hr>
-<a name="Introduction"><h2> Introduction </h2>
- The 'zlib' compression library provides in-memory compression and
- decompression functions, including integrity checks of the uncompressed
- data. This version of the library supports only one compression method
- (deflation) but other algorithms will be added later and will have the same
- stream interface.
- <p>
-
- Compression can be done in a single step if the buffers are large
- enough (for example if an input file is mmap'ed), or can be done by
- repeated calls of the compression function. In the latter case, the
- application must provide more input and/or consume the output
- (providing more output space) before each call.
- <p>
-
- The library also supports reading and writing files in gzip (.gz) format
- with an interface similar to that of stdio.
- <p>
-
- The library does not install any signal handler. The decoder checks
- the consistency of the compressed data, so the library should never
- crash even in case of corrupted input.
- <p>
-
-<hr>
-<a name="Utility functions"><h2> Utility functions </h2>
- The following utility functions are implemented on top of the
- <a href="#Basic functions">basic stream-oriented functions</a>.
- To simplify the interface, some
- default options are assumed (compression level and memory usage,
- standard memory allocation functions). The source code of these
- utility functions can easily be modified if you need special options.
-<h3> Function list </h3>
-<ul>
-<li> int <a href="#compress">compress</a> (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
-<li> int <a href="#compress2">compress2</a> (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level);
-<li> int <a href="#uncompress">uncompress</a> (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
-<li> typedef voidp gzFile;
-<li> gzFile <a href="#gzopen">gzopen</a> (const char *path, const char *mode);
-<li> gzFile <a href="#gzdopen">gzdopen</a> (int fd, const char *mode);
-<li> int <a href="#gzsetparams">gzsetparams</a> (gzFile file, int level, int strategy);
-<li> int <a href="#gzread">gzread</a> (gzFile file, voidp buf, unsigned len);
-<li> int <a href="#gzwrite">gzwrite</a> (gzFile file, const voidp buf, unsigned len);
-<li> int VA <a href="#gzprintf">gzprintf</a> (gzFile file, const char *format, ...);
-<li> int <a href="#gzputs">gzputs</a> (gzFile file, const char *s);
-<li> char * <a href="#gzgets">gzgets</a> (gzFile file, char *buf, int len);
-<li> int <a href="#gzputc">gzputc</a> (gzFile file, int c);
-<li> int <a href="#gzgetc">gzgetc</a> (gzFile file);
-<li> int <a href="#gzflush">gzflush</a> (gzFile file, int flush);
-<li> z_off_t <a href="#gzseek">gzseek</a> (gzFile file, z_off_t offset, int whence);
-<li> z_off_t <a href="#gztell">gztell</a> (gzFile file);
-<li> int <a href="#gzrewind">gzrewind</a> (gzFile file);
-<li> int <a href="#gzeof">gzeof</a> (gzFile file);
-<li> int <a href="#gzclose">gzclose</a> (gzFile file);
-<li> const char * <a href="#gzerror">gzerror</a> (gzFile file, int *errnum);
-</ul>
-<h3> Function description </h3>
-<dl>
-<font color="Blue"><dt> int <a name="compress">compress</a> (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);</font>
-<dd>
- Compresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be at least 0.1% larger than
- sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
- compressed buffer.<p>
- This function can be used to <a href="#compress">compress</a> a whole file at once if the
- input file is mmap'ed.<p>
- <a href="#compress">compress</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not
- enough memory, <a href="#Z_BUF_ERROR">Z_BUF_ERROR</a> if there was not enough room in the output
- buffer.<p>
-
-<font color="Blue"><dt> int <a name="compress2">compress2</a> (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level);</font>
-<dd>
- Compresses the source buffer into the destination buffer. The level
- parameter has the same meaning as in <a href="#deflateInit">deflateInit</a>. sourceLen is the byte
- length of the source buffer. Upon entry, destLen is the total size of the
- destination buffer, which must be at least 0.1% larger than sourceLen plus
- 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
- <p>
-
- <a href="#compress2">compress2</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not enough
- memory, <a href="#Z_BUF_ERROR">Z_BUF_ERROR</a> if there was not enough room in the output buffer,
- <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the level parameter is invalid.
- <p>
-
-<font color="Blue"><dt> int <a name="uncompress">uncompress</a> (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);</font>
-<dd>
- Decompresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total
- size of the destination buffer, which must be large enough to hold the
- entire uncompressed data. (The size of the uncompressed data must have
- been saved previously by the compressor and transmitted to the decompressor
- by some mechanism outside the scope of this compression library.)
- Upon exit, destLen is the actual size of the compressed buffer. <p>
- This function can be used to decompress a whole file at once if the
- input file is mmap'ed.
- <p>
-
- <a href="#uncompress">uncompress</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not
- enough memory, <a href="#Z_BUF_ERROR">Z_BUF_ERROR</a> if there was not enough room in the output
- buffer, or <a href="#Z_DATA_ERROR">Z_DATA_ERROR</a> if the input data was corrupted.
- <p>
-
-<dt> typedef voidp gzFile;
-<dd> <p>
-
-<font color="Blue"><dt> gzFile <a name="gzopen">gzopen</a> (const char *path, const char *mode);</font>
-<dd>
- Opens a gzip (.gz) file for reading or writing. The mode parameter
- is as in fopen ("rb" or "wb") but can also include a compression level
- ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for
- Huffman only compression as in "wb1h". (See the description
- of <a href="#deflateInit2">deflateInit2</a> for more information about the strategy parameter.)
- <p>
-
- <a href="#gzopen">gzopen</a> can be used to read a file which is not in gzip format ; in this
- case <a href="#gzread">gzread</a> will directly read from the file without decompression.
- <p>
-
- <a href="#gzopen">gzopen</a> returns NULL if the file could not be opened or if there was
- insufficient memory to allocate the (de)compression <a href="#state">state</a> ; errno
- can be checked to distinguish the two cases (if errno is zero, the
- zlib error is <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a>).
- <p>
-
-<font color="Blue"><dt> gzFile <a name="gzdopen">gzdopen</a> (int fd, const char *mode);</font>
-<dd>
- <a href="#gzdopen">gzdopen</a>() associates a gzFile with the file descriptor fd. File
- descriptors are obtained from calls like open, dup, creat, pipe or
- fileno (in the file has been previously opened with fopen).
- The mode parameter is as in <a href="#gzopen">gzopen</a>.
- <p>
- The next call of <a href="#gzclose">gzclose</a> on the returned gzFile will also close the
- file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
- descriptor fd. If you want to keep fd open, use <a href="#gzdopen">gzdopen</a>(dup(fd), mode).
- <p>
- <a href="#gzdopen">gzdopen</a> returns NULL if there was insufficient memory to allocate
- the (de)compression <a href="#state">state</a>.
- <p>
-
-<font color="Blue"><dt> int <a name="gzsetparams">gzsetparams</a> (gzFile file, int level, int strategy);</font>
-<dd>
- Dynamically update the compression level or strategy. See the description
- of <a href="#deflateInit2">deflateInit2</a> for the meaning of these parameters.
- <p>
- <a href="#gzsetparams">gzsetparams</a> returns <a href="#Z_OK">Z_OK</a> if success, or <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the file was not
- opened for writing.
- <p>
-
-<font color="Blue"><dt> int <a name="gzread">gzread</a> (gzFile file, voidp buf, unsigned len);</font>
-<dd>
- Reads the given number of uncompressed bytes from the compressed file.
- If the input file was not in gzip format, <a href="#gzread">gzread</a> copies the given number
- of bytes into the buffer.
- <p>
- <a href="#gzread">gzread</a> returns the number of uncompressed bytes actually read (0 for
- end of file, -1 for error).
- <p>
-
-<font color="Blue"><dt> int <a name="gzwrite">gzwrite</a> (gzFile file, const voidp buf, unsigned len);</font>
-<dd>
- Writes the given number of uncompressed bytes into the compressed file.
- <a href="#gzwrite">gzwrite</a> returns the number of uncompressed bytes actually written
- (0 in case of error).
- <p>
-
-<font color="Blue"><dt> int VA <a name="gzprintf">gzprintf</a> (gzFile file, const char *format, ...);</font>
-<dd>
- Converts, formats, and writes the args to the compressed file under
- control of the format string, as in fprintf. <a href="#gzprintf">gzprintf</a> returns the number of
- uncompressed bytes actually written (0 in case of error).
- <p>
-
-<font color="Blue"><dt> int <a name="gzputs">gzputs</a> (gzFile file, const char *s);</font>
-<dd>
- Writes the given null-terminated string to the compressed file, excluding
- the terminating null character.
- <p>
- <a href="#gzputs">gzputs</a> returns the number of characters written, or -1 in case of error.
- <p>
-
-<font color="Blue"><dt> char * <a name="gzgets">gzgets</a> (gzFile file, char *buf, int len);</font>
-<dd>
- Reads bytes from the compressed file until len-1 characters are read, or
- a newline character is read and transferred to buf, or an end-of-file
- condition is encountered. The string is then terminated with a null
- character.
- <p>
- <a href="#gzgets">gzgets</a> returns buf, or <a href="#Z_NULL">Z_NULL</a> in case of error.
- <p>
-
-<font color="Blue"><dt> int <a name="gzputc">gzputc</a> (gzFile file, int c);</font>
-<dd>
- Writes c, converted to an unsigned char, into the compressed file.
- <a href="#gzputc">gzputc</a> returns the value that was written, or -1 in case of error.
- <p>
-
-<font color="Blue"><dt> int <a name="gzgetc">gzgetc</a> (gzFile file);</font>
-<dd>
- Reads one byte from the compressed file. <a href="#gzgetc">gzgetc</a> returns this byte
- or -1 in case of end of file or error.
- <p>
-
-<font color="Blue"><dt> int <a name="gzflush">gzflush</a> (gzFile file, int flush);</font>
-<dd>
- Flushes all pending output into the compressed file. The parameter
- flush is as in the <a href="#deflate">deflate</a>() function. The return value is the zlib
- error number (see function <a href="#gzerror">gzerror</a> below). <a href="#gzflush">gzflush</a> returns <a href="#Z_OK">Z_OK</a> if
- the flush parameter is <a href="#Z_FINISH">Z_FINISH</a> and all output could be flushed.
- <p>
- <a href="#gzflush">gzflush</a> should be called only when strictly necessary because it can
- degrade compression.
- <p>
-
-<font color="Blue"><dt> z_off_t <a name="gzseek">gzseek</a> (gzFile file, z_off_t offset, int whence);</font>
-<dd>
- Sets the starting position for the next <a href="#gzread">gzread</a> or <a href="#gzwrite">gzwrite</a> on the
- given compressed file. The offset represents a number of bytes in the
- uncompressed data stream. The whence parameter is defined as in lseek(2);
- the value SEEK_END is not supported.
- <p>
- If the file is opened for reading, this function is emulated but can be
- extremely slow. If the file is opened for writing, only forward seeks are
- supported ; <a href="#gzseek">gzseek</a> then compresses a sequence of zeroes up to the new
- starting position.
- <p>
- <a href="#gzseek">gzseek</a> returns the resulting offset location as measured in bytes from
- the beginning of the uncompressed stream, or -1 in case of error, in
- particular if the file is opened for writing and the new starting position
- would be before the current position.
- <p>
-
-<font color="Blue"><dt> int <a name="gzrewind">gzrewind</a> (gzFile file);</font>
-<dd>
- Rewinds the given file. This function is supported only for reading.
- <p>
- <a href="#gzrewind">gzrewind</a>(file) is equivalent to (int)<a href="#gzseek">gzseek</a>(file, 0L, SEEK_SET)
- <p>
-
-<font color="Blue"><dt> z_off_t <a name="gztell">gztell</a> (gzFile file);</font>
-<dd>
- Returns the starting position for the next <a href="#gzread">gzread</a> or <a href="#gzwrite">gzwrite</a> on the
- given compressed file. This position represents a number of bytes in the
- uncompressed data stream.
- <p>
-
- <a href="#gztell">gztell</a>(file) is equivalent to <a href="#gzseek">gzseek</a>(file, 0L, SEEK_CUR)
- <p>
-
-<font color="Blue"><dt> int <a name="gzeof">gzeof</a> (gzFile file);</font>
-<dd>
- Returns 1 when EOF has previously been detected reading the given
- input stream, otherwise zero.
- <p>
-
-<font color="Blue"><dt> int <a name="gzclose">gzclose</a> (gzFile file);</font>
-<dd>
- Flushes all pending output if necessary, closes the compressed file
- and deallocates all the (de)compression <a href="#state">state</a>. The return value is the zlib
- error number (see function <a href="#gzerror">gzerror</a> below).
- <p>
-
-<font color="Blue"><dt> const char * <a name="gzerror">gzerror</a> (gzFile file, int *errnum);</font>
-<dd>
- Returns the error message for the last error which occurred on the
- given compressed file. errnum is set to zlib error number. If an
- error occurred in the file system and not in the compression library,
- errnum is set to <a href="#Z_ERRNO">Z_ERRNO</a> and the application may consult errno
- to get the exact error code.
- <p>
-</dl>
-<hr>
-<a name="Basic functions"><h2> Basic functions </h2>
-<h3> Function list </h3>
-<ul>
-<li> const char * <a href="#zlibVersion">zlibVersion</a> (void);
-<li> int <a href="#deflateInit">deflateInit</a> (<a href="#z_streamp">z_streamp</a> strm, int level);
-<li> int <a href="#deflate">deflate</a> (<a href="#z_streamp">z_streamp</a> strm, int flush);
-<li> int <a href="#deflateEnd">deflateEnd</a> (<a href="#z_streamp">z_streamp</a> strm);
-<li> int <a href="#inflateInit">inflateInit</a> (<a href="#z_streamp">z_streamp</a> strm);
-<li> int <a href="#inflate">inflate</a> (<a href="#z_streamp">z_streamp</a> strm, int flush);
-<li> int <a href="#inflateEnd">inflateEnd</a> (<a href="#z_streamp">z_streamp</a> strm);
-</ul>
-
-<h3> Function description </h3>
-<dl>
-<font color="Blue"><dt> const char * <a name="zlibVersion">zlibVersion</a> (void);</font>
-<dd> The application can compare <a href="#zlibVersion">zlibVersion</a> and ZLIB_VERSION for consistency.
- If the first character differs, the library code actually used is
- not compatible with the zlib.h header file used by the application.
- This check is automatically made by <a href="#deflateInit">deflateInit</a> and <a href="#inflateInit">inflateInit</a>.
- <p>
-
-<font color="Blue"><dt> int <a name="deflateInit">deflateInit</a> (<a href="#z_streamp">z_streamp</a> strm, int level);</font>
-<dd>
- Initializes the internal stream <a href="#state">state</a> for compression. The fields
- <a href="#zalloc">zalloc</a>, <a href="#zfree">zfree</a> and <a href="#opaque">opaque</a> must be initialized before by the caller.
- If <a href="#zalloc">zalloc</a> and <a href="#zfree">zfree</a> are set to <a href="#Z_NULL">Z_NULL</a>, <a href="#deflateInit">deflateInit</a> updates them to
- use default allocation functions.
- <p>
-
- The compression level must be <a href="#Z_DEFAULT_COMPRESSION">Z_DEFAULT_COMPRESSION</a>, or between 0 and 9:
- 1 gives best speed, 9 gives best compression, 0 gives no compression at
- all (the input data is simply copied a block at a time).
- <p>
-
- <a href="#Z_DEFAULT_COMPRESSION">Z_DEFAULT_COMPRESSION</a> requests a default compromise between speed and
- compression (currently equivalent to level 6).
- <p>
-
- <a href="#deflateInit">deflateInit</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not
- enough memory, <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if level is not a valid compression level,
- <a href="#Z_VERSION_ERROR">Z_VERSION_ERROR</a> if the zlib library version (<a href="#zlib_version">zlib_version</a>) is incompatible
- with the version assumed by the caller (ZLIB_VERSION).
- <a href="#msg">msg</a> is set to null if there is no error message. <a href="#deflateInit">deflateInit</a> does not
- perform any compression: this will be done by <a href="#deflate">deflate</a>().
- <p>
-
-<font color="Blue"><dt> int <a name="deflate">deflate</a> (<a href="#z_streamp">z_streamp</a> strm, int flush);</font>
-<dd>
- <a href="#deflate">deflate</a> compresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may introduce some
- output latency (reading input without producing any output) except when
- forced to flush.<p>
-
- The detailed semantics are as follows. <a href="#deflate">deflate</a> performs one or both of the
- following actions:
-
- <ul>
- <li> Compress more input starting at <a href="#next_in">next_in</a> and update <a href="#next_in">next_in</a> and <a href="#avail_in">avail_in</a>
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), <a href="#next_in">next_in</a> and <a href="#avail_in">avail_in</a> are updated and
- processing will resume at this point for the next call of <a href="#deflate">deflate</a>().
-
- <li>
- Provide more output starting at <a href="#next_out">next_out</a> and update <a href="#next_out">next_out</a> and <a href="#avail_out">avail_out</a>
- accordingly. This action is forced if the parameter flush is non zero.
- Forcing flush frequently degrades the compression ratio, so this parameter
- should be set only when necessary (in interactive applications).
- Some output may be provided even if flush is not set.
- </ul> <p>
-
- Before the call of <a href="#deflate">deflate</a>(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating <a href="#avail_in">avail_in</a> or <a href="#avail_out">avail_out</a> accordingly ; <a href="#avail_out">avail_out</a>
- should never be zero before the call. The application can consume the
- compressed output when it wants, for example when the output buffer is full
- (<a href="#avail_out">avail_out</a> == 0), or after each call of <a href="#deflate">deflate</a>(). If <a href="#deflate">deflate</a> returns <a href="#Z_OK">Z_OK</a>
- and with zero <a href="#avail_out">avail_out</a>, it must be called again after making room in the
- output buffer because there might be more output pending.
- <p>
-
- If the parameter flush is set to <a href="#Z_SYNC_FLUSH">Z_SYNC_FLUSH</a>, all pending output is
- flushed to the output buffer and the output is aligned on a byte boundary, so
- that the decompressor can get all input data available so far. (In particular
- <a href="#avail_in">avail_in</a> is zero after the call if enough output space has been provided
- before the call.) Flushing may degrade compression for some compression
- algorithms and so it should be used only when necessary.
- <p>
-
- If flush is set to <a href="#Z_FULL_FLUSH">Z_FULL_FLUSH</a>, all output is flushed as with
- <a href="#Z_SYNC_FLUSH">Z_SYNC_FLUSH</a>, and the compression <a href="#state">state</a> is reset so that decompression can
- restart from this point if previous compressed data has been damaged or if
- random access is desired. Using <a href="#Z_FULL_FLUSH">Z_FULL_FLUSH</a> too often can seriously degrade
- the compression.
- <p>
-
- If <a href="#deflate">deflate</a> returns with <a href="#avail_out">avail_out</a> == 0, this function must be called again
- with the same value of the flush parameter and more output space (updated
- <a href="#avail_out">avail_out</a>), until the flush is complete (<a href="#deflate">deflate</a> returns with non-zero
- <a href="#avail_out">avail_out</a>).
- <p>
-
- If the parameter flush is set to <a href="#Z_FINISH">Z_FINISH</a>, pending input is processed,
- pending output is flushed and <a href="#deflate">deflate</a> returns with <a href="#Z_STREAM_END">Z_STREAM_END</a> if there
- was enough output space ; if <a href="#deflate">deflate</a> returns with <a href="#Z_OK">Z_OK</a>, this function must be
- called again with <a href="#Z_FINISH">Z_FINISH</a> and more output space (updated <a href="#avail_out">avail_out</a>) but no
- more input data, until it returns with <a href="#Z_STREAM_END">Z_STREAM_END</a> or an error. After
- <a href="#deflate">deflate</a> has returned <a href="#Z_STREAM_END">Z_STREAM_END</a>, the only possible operations on the
- stream are <a href="#deflateReset">deflateReset</a> or <a href="#deflateEnd">deflateEnd</a>.
- <p>
-
- <a href="#Z_FINISH">Z_FINISH</a> can be used immediately after <a href="#deflateInit">deflateInit</a> if all the compression
- is to be done in a single step. In this case, <a href="#avail_out">avail_out</a> must be at least
- 0.1% larger than <a href="#avail_in">avail_in</a> plus 12 bytes. If <a href="#deflate">deflate</a> does not return
- <a href="#Z_STREAM_END">Z_STREAM_END</a>, then it must be called again as described above.
- <p>
-
- <a href="#deflate">deflate</a>() sets strm-&gt <a href="#adler">adler</a> to the <a href="#adler32">adler32</a> checksum of all input read
- so far (that is, <a href="#total_in">total_in</a> bytes).
- <p>
-
- <a href="#deflate">deflate</a>() may update <a href="#data_type">data_type</a> if it can make a good guess about
- the input data type (<a href="#Z_ASCII">Z_ASCII</a> or <a href="#Z_BINARY">Z_BINARY</a>). In doubt, the data is considered
- binary. This field is only for information purposes and does not affect
- the compression algorithm in any manner.
- <p>
-
- <a href="#deflate">deflate</a>() returns <a href="#Z_OK">Z_OK</a> if some progress has been made (more input
- processed or more output produced), <a href="#Z_STREAM_END">Z_STREAM_END</a> if all input has been
- consumed and all output has been produced (only when flush is set to
- <a href="#Z_FINISH">Z_FINISH</a>), <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the stream <a href="#state">state</a> was inconsistent (for example
- if <a href="#next_in">next_in</a> or <a href="#next_out">next_out</a> was NULL), <a href="#Z_BUF_ERROR">Z_BUF_ERROR</a> if no progress is possible
- (for example <a href="#avail_in">avail_in</a> or <a href="#avail_out">avail_out</a> was zero).
- <p>
-
-<font color="Blue"><dt> int <a name="deflateEnd">deflateEnd</a> (<a href="#z_streamp">z_streamp</a> strm);</font>
-<dd>
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
- <p>
-
- <a href="#deflateEnd">deflateEnd</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the
- stream <a href="#state">state</a> was inconsistent, <a href="#Z_DATA_ERROR">Z_DATA_ERROR</a> if the stream was freed
- prematurely (some input or output was discarded). In the error case,
- <a href="#msg">msg</a> may be set but then points to a static string (which must not be
- deallocated).
- <p>
-
-<font color="Blue"><dt> int <a name="inflateInit">inflateInit</a> (<a href="#z_streamp">z_streamp</a> strm);</font>
-<dd>
- Initializes the internal stream <a href="#state">state</a> for decompression. The fields
- <a href="#next_in">next_in</a>, <a href="#avail_in">avail_in</a>, <a href="#zalloc">zalloc</a>, <a href="#zfree">zfree</a> and <a href="#opaque">opaque</a> must be initialized before by
- the caller. If <a href="#next_in">next_in</a> is not <a href="#Z_NULL">Z_NULL</a> and <a href="#avail_in">avail_in</a> is large enough (the exact
- value depends on the compression method), <a href="#inflateInit">inflateInit</a> determines the
- compression method from the zlib header and allocates all data structures
- accordingly ; otherwise the allocation will be deferred to the first call of
- <a href="#inflate">inflate</a>. If <a href="#zalloc">zalloc</a> and <a href="#zfree">zfree</a> are set to <a href="#Z_NULL">Z_NULL</a>, <a href="#inflateInit">inflateInit</a> updates them to
- use default allocation functions.
- <p>
-
- <a href="#inflateInit">inflateInit</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not enough
- memory, <a href="#Z_VERSION_ERROR">Z_VERSION_ERROR</a> if the zlib library version is incompatible with the
- version assumed by the caller. <a href="#msg">msg</a> is set to null if there is no error
- message. <a href="#inflateInit">inflateInit</a> does not perform any decompression apart from reading
- the zlib header if present: this will be done by <a href="#inflate">inflate</a>(). (So <a href="#next_in">next_in</a> and
- <a href="#avail_in">avail_in</a> may be modified, but <a href="#next_out">next_out</a> and <a href="#avail_out">avail_out</a> are unchanged.)
- <p>
-
-<font color="Blue"><dt> int <a name="inflate">inflate</a> (<a href="#z_streamp">z_streamp</a> strm, int flush);</font>
-<dd>
- <a href="#inflate">inflate</a> decompresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may some
- introduce some output latency (reading input without producing any output)
- except when forced to flush.
- <p>
-
- The detailed semantics are as follows. <a href="#inflate">inflate</a> performs one or both of the
- following actions:
-
- <ul>
- <li> Decompress more input starting at <a href="#next_in">next_in</a> and update <a href="#next_in">next_in</a> and <a href="#avail_in">avail_in</a>
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), <a href="#next_in">next_in</a> is updated and processing
- will resume at this point for the next call of <a href="#inflate">inflate</a>().
-
- <li> Provide more output starting at <a href="#next_out">next_out</a> and update <a href="#next_out">next_out</a> and
- <a href="#avail_out">avail_out</a> accordingly. <a href="#inflate">inflate</a>() provides as much output as possible,
- until there is no more input data or no more space in the output buffer
- (see below about the flush parameter).
- </ul> <p>
-
- Before the call of <a href="#inflate">inflate</a>(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming
- more output, and updating the next_* and avail_* values accordingly.
- The application can consume the uncompressed output when it wants, for
- example when the output buffer is full (<a href="#avail_out">avail_out</a> == 0), or after each
- call of <a href="#inflate">inflate</a>(). If <a href="#inflate">inflate</a> returns <a href="#Z_OK">Z_OK</a> and with zero <a href="#avail_out">avail_out</a>, it
- must be called again after making room in the output buffer because there
- might be more output pending.
- <p>
-
- If the parameter flush is set to <a href="#Z_SYNC_FLUSH">Z_SYNC_FLUSH</a>, <a href="#inflate">inflate</a> flushes as much
- output as possible to the output buffer. The flushing behavior of <a href="#inflate">inflate</a> is
- not specified for values of the flush parameter other than <a href="#Z_SYNC_FLUSH">Z_SYNC_FLUSH</a>
- and <a href="#Z_FINISH">Z_FINISH</a>, but the current implementation actually flushes as much output
- as possible anyway.
- <p>
-
- <a href="#inflate">inflate</a>() should normally be called until it returns <a href="#Z_STREAM_END">Z_STREAM_END</a> or an
- error. However if all decompression is to be performed in a single step
- (a single call of <a href="#inflate">inflate</a>), the parameter flush should be set to
- <a href="#Z_FINISH">Z_FINISH</a>. In this case all pending input is processed and all pending
- output is flushed ; <a href="#avail_out">avail_out</a> must be large enough to hold all the
- uncompressed data. (The size of the uncompressed data may have been saved
- by the compressor for this purpose.) The next operation on this stream must
- be <a href="#inflateEnd">inflateEnd</a> to deallocate the decompression <a href="#state">state</a>. The use of <a href="#Z_FINISH">Z_FINISH</a>
- is never required, but can be used to inform <a href="#inflate">inflate</a> that a faster routine
- may be used for the single <a href="#inflate">inflate</a>() call.
- <p>
-
- If a preset dictionary is needed at this point (see <a href="#inflateSetDictionary">inflateSetDictionary</a>
- below), <a href="#inflate">inflate</a> sets strm-<a href="#adler">adler</a> to the <a href="#adler32">adler32</a> checksum of the
- dictionary chosen by the compressor and returns <a href="#Z_NEED_DICT">Z_NEED_DICT</a> ; otherwise
- it sets strm-&gt <a href="#adler">adler</a> to the <a href="#adler32">adler32</a> checksum of all output produced
- so far (that is, <a href="#total_out">total_out</a> bytes) and returns <a href="#Z_OK">Z_OK</a>, <a href="#Z_STREAM_END">Z_STREAM_END</a> or
- an error code as described below. At the end of the stream, <a href="#inflate">inflate</a>()
- checks that its computed <a href="#adler32">adler32</a> checksum is equal to that saved by the
- compressor and returns <a href="#Z_STREAM_END">Z_STREAM_END</a> only if the checksum is correct.
- <p>
-
- <a href="#inflate">inflate</a>() returns <a href="#Z_OK">Z_OK</a> if some progress has been made (more input processed
- or more output produced), <a href="#Z_STREAM_END">Z_STREAM_END</a> if the end of the compressed data has
- been reached and all uncompressed output has been produced, <a href="#Z_NEED_DICT">Z_NEED_DICT</a> if a
- preset dictionary is needed at this point, <a href="#Z_DATA_ERROR">Z_DATA_ERROR</a> if the input data was
- corrupted (input stream not conforming to the zlib format or incorrect
- <a href="#adler32">adler32</a> checksum), <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the stream structure was inconsistent
- (for example if <a href="#next_in">next_in</a> or <a href="#next_out">next_out</a> was NULL), <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not
- enough memory, <a href="#Z_BUF_ERROR">Z_BUF_ERROR</a> if no progress is possible or if there was not
- enough room in the output buffer when <a href="#Z_FINISH">Z_FINISH</a> is used. In the <a href="#Z_DATA_ERROR">Z_DATA_ERROR</a>
- case, the application may then call <a href="#inflateSync">inflateSync</a> to look for a good
- compression block.
- <p>
-
-<font color="Blue"><dt> int <a name="inflateEnd">inflateEnd</a> (<a href="#z_streamp">z_streamp</a> strm);</font>
-<dd>
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any
- pending output.
- <p>
-
- <a href="#inflateEnd">inflateEnd</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the stream <a href="#state">state</a>
- was inconsistent. In the error case, <a href="#msg">msg</a> may be set but then points to a
- static string (which must not be deallocated).
-</dl>
-<hr>
-<a name="Advanced functions"><h2> Advanced functions </h2>
- The following functions are needed only in some special applications.
-<h3> Function list </h3>
-<ul>
-<li> int <a href="#deflateInit2">deflateInit2</a> (<a href="#z_streamp">z_streamp</a> strm,
-<li> int <a href="#deflateSetDictionary">deflateSetDictionary</a> (<a href="#z_streamp">z_streamp</a> strm, const Bytef *dictionary, uInt dictLength);
-<li> int <a href="#deflateCopy">deflateCopy</a> (<a href="#z_streamp">z_streamp</a> dest, <a href="#z_streamp">z_streamp</a> source);
-<li> int <a href="#deflateReset">deflateReset</a> (<a href="#z_streamp">z_streamp</a> strm);
-<li> int <a href="#deflateParams">deflateParams</a> (<a href="#z_streamp">z_streamp</a> strm, int level, int strategy);
-<li> int <a href="#inflateInit2">inflateInit2</a> (<a href="#z_streamp">z_streamp</a> strm, int windowBits);
-<li> int <a href="#inflateSetDictionary">inflateSetDictionary</a> (<a href="#z_streamp">z_streamp</a> strm, const Bytef *dictionary, uInt dictLength);
-<li> int <a href="#inflateSync">inflateSync</a> (<a href="#z_streamp">z_streamp</a> strm);
-<li> int <a href="#inflateReset">inflateReset</a> (<a href="#z_streamp">z_streamp</a> strm);
-
-</ul>
-<h3> Function description </h3>
-<dl>
-<font color="Blue"><dt> int <a name="deflateInit2">deflateInit2</a> (<a href="#z_streamp">z_streamp</a> strm, int level, int method, int windowBits, int memLevel, int strategy);</font>
-
-<dd> This is another version of <a href="#deflateInit">deflateInit</a> with more compression options. The
- fields <a href="#next_in">next_in</a>, <a href="#zalloc">zalloc</a>, <a href="#zfree">zfree</a> and <a href="#opaque">opaque</a> must be initialized before by
- the caller.<p>
-
- The method parameter is the compression method. It must be <a href="#Z_DEFLATED">Z_DEFLATED</a> in
- this version of the library.<p>
-
- The windowBits parameter is the base two logarithm of the window size
- (the size of the history buffer). It should be in the range 8..15 for this
- version of the library. Larger values of this parameter result in better
- compression at the expense of memory usage. The default value is 15 if
- <a href="#deflateInit">deflateInit</a> is used instead.<p>
-
- The memLevel parameter specifies how much memory should be allocated
- for the internal compression <a href="#state">state</a>. memLevel=1 uses minimum memory but
- is slow and reduces compression ratio ; memLevel=9 uses maximum memory
- for optimal speed. The default value is 8. See zconf.h for total memory
- usage as a function of windowBits and memLevel.<p>
-
- The strategy parameter is used to tune the compression algorithm. Use the
- value <a href="#Z_DEFAULT_STRATEGY">Z_DEFAULT_STRATEGY</a> for normal data, <a href="#Z_FILTERED">Z_FILTERED</a> for data produced by a
- filter (or predictor), or <a href="#Z_HUFFMAN_ONLY">Z_HUFFMAN_ONLY</a> to force Huffman encoding only (no
- string match). Filtered data consists mostly of small values with a
- somewhat random distribution. In this case, the compression algorithm is
- tuned to <a href="#compress">compress</a> them better. The effect of <a href="#Z_FILTERED">Z_FILTERED</a> is to force more
- Huffman coding and less string matching ; it is somewhat intermediate
- between Z_DEFAULT and <a href="#Z_HUFFMAN_ONLY">Z_HUFFMAN_ONLY</a>. The strategy parameter only affects
- the compression ratio but not the correctness of the compressed output even
- if it is not set appropriately.<p>
-
- <a href="#deflateInit2">deflateInit2</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not enough
- memory, <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if a parameter is invalid (such as an invalid
- method). <a href="#msg">msg</a> is set to null if there is no error message. <a href="#deflateInit2">deflateInit2</a> does
- not perform any compression: this will be done by <a href="#deflate">deflate</a>().<p>
-
-<font color="Blue"><dt> int <a name="deflateSetDictionary">deflateSetDictionary</a> (<a href="#z_streamp">z_streamp</a> strm, const Bytef *dictionary, uInt dictLength);</font>
-<dd>
- Initializes the compression dictionary from the given byte sequence
- without producing any compressed output. This function must be called
- immediately after <a href="#deflateInit">deflateInit</a>, <a href="#deflateInit2">deflateInit2</a> or <a href="#deflateReset">deflateReset</a>, before any
- call of <a href="#deflate">deflate</a>. The compressor and decompressor must use exactly the same
- dictionary (see <a href="#inflateSetDictionary">inflateSetDictionary</a>).<p>
-
- The dictionary should consist of strings (byte sequences) that are likely
- to be encountered later in the data to be compressed, with the most commonly
- used strings preferably put towards the end of the dictionary. Using a
- dictionary is most useful when the data to be compressed is short and can be
- predicted with good accuracy ; the data can then be compressed better than
- with the default empty dictionary.<p>
-
- Depending on the size of the compression data structures selected by
- <a href="#deflateInit">deflateInit</a> or <a href="#deflateInit2">deflateInit2</a>, a part of the dictionary may in effect be
- discarded, for example if the dictionary is larger than the window size in
- <a href="#deflate">deflate</a> or deflate2. Thus the strings most likely to be useful should be
- put at the end of the dictionary, not at the front.<p>
-
- Upon return of this function, strm-&gt <a href="#adler">adler</a> is set to the Adler32 value
- of the dictionary ; the decompressor may later use this value to determine
- which dictionary has been used by the compressor. (The Adler32 value
- applies to the whole dictionary even if only a subset of the dictionary is
- actually used by the compressor.)<p>
-
- <a href="#deflateSetDictionary">deflateSetDictionary</a> returns <a href="#Z_OK">Z_OK</a> if success, or <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if a
- parameter is invalid (such as NULL dictionary) or the stream <a href="#state">state</a> is
- inconsistent (for example if <a href="#deflate">deflate</a> has already been called for this stream
- or if the compression method is bsort). <a href="#deflateSetDictionary">deflateSetDictionary</a> does not
- perform any compression: this will be done by <a href="#deflate">deflate</a>().<p>
-
-<font color="Blue"><dt> int <a name="deflateCopy">deflateCopy</a> (<a href="#z_streamp">z_streamp</a> dest, <a href="#z_streamp">z_streamp</a> source);</font>
-<dd>
- Sets the destination stream as a complete copy of the source stream.<p>
-
- This function can be useful when several compression strategies will be
- tried, for example when there are several ways of pre-processing the input
- data with a filter. The streams that will be discarded should then be freed
- by calling <a href="#deflateEnd">deflateEnd</a>. Note that <a href="#deflateCopy">deflateCopy</a> duplicates the internal
- compression <a href="#state">state</a> which can be quite large, so this strategy is slow and
- can consume lots of memory.<p>
-
- <a href="#deflateCopy">deflateCopy</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not
- enough memory, <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the source stream <a href="#state">state</a> was inconsistent
- (such as <a href="#zalloc">zalloc</a> being NULL). <a href="#msg">msg</a> is left unchanged in both source and
- destination.<p>
-
-<font color="Blue"><dt> int <a name="deflateReset">deflateReset</a> (<a href="#z_streamp">z_streamp</a> strm);</font>
-<dd> This function is equivalent to <a href="#deflateEnd">deflateEnd</a> followed by <a href="#deflateInit">deflateInit</a>,
- but does not free and reallocate all the internal compression <a href="#state">state</a>.
- The stream will keep the same compression level and any other attributes
- that may have been set by <a href="#deflateInit2">deflateInit2</a>.<p>
-
- <a href="#deflateReset">deflateReset</a> returns <a href="#Z_OK">Z_OK</a> if success, or <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the source
- stream <a href="#state">state</a> was inconsistent (such as <a href="#zalloc">zalloc</a> or <a href="#state">state</a> being NULL).<p>
-
-<font color="Blue"><dt> int <a name="deflateParams">deflateParams</a> (<a href="#z_streamp">z_streamp</a> strm, int level, int strategy);</font>
-<dd>
- Dynamically update the compression level and compression strategy. The
- interpretation of level and strategy is as in <a href="#deflateInit2">deflateInit2</a>. This can be
- used to switch between compression and straight copy of the input data, or
- to switch to a different kind of input data requiring a different
- strategy. If the compression level is changed, the input available so far
- is compressed with the old level (and may be flushed); the new level will
- take effect only at the next call of <a href="#deflate">deflate</a>().<p>
-
- Before the call of <a href="#deflateParams">deflateParams</a>, the stream <a href="#state">state</a> must be set as for
- a call of <a href="#deflate">deflate</a>(), since the currently available input may have to
- be compressed and flushed. In particular, strm-&gt <a href="#avail_out">avail_out</a> must be
- non-zero.<p>
-
- <a href="#deflateParams">deflateParams</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the source
- stream <a href="#state">state</a> was inconsistent or if a parameter was invalid, <a href="#Z_BUF_ERROR">Z_BUF_ERROR</a>
- if strm-&gtavail_out was zero.<p>
-
-<font color="Blue"><dt> int <a name="inflateInit2">inflateInit2</a> (<a href="#z_streamp">z_streamp</a> strm, int windowBits);</font>
-
-<dd> This is another version of <a href="#inflateInit">inflateInit</a> with an extra parameter. The
- fields <a href="#next_in">next_in</a>, <a href="#avail_in">avail_in</a>, <a href="#zalloc">zalloc</a>, <a href="#zfree">zfree</a> and <a href="#opaque">opaque</a> must be initialized
- before by the caller.<p>
-
- The windowBits parameter is the base two logarithm of the maximum window
- size (the size of the history buffer). It should be in the range 8..15 for
- this version of the library. The default value is 15 if <a href="#inflateInit">inflateInit</a> is used
- instead. If a compressed stream with a larger window size is given as
- input, <a href="#inflate">inflate</a>() will return with the error code <a href="#Z_DATA_ERROR">Z_DATA_ERROR</a> instead of
- trying to allocate a larger window.<p>
-
- <a href="#inflateInit2">inflateInit2</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_MEM_ERROR">Z_MEM_ERROR</a> if there was not enough
- memory, <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if a parameter is invalid (such as a negative
- memLevel). <a href="#msg">msg</a> is set to null if there is no error message. <a href="#inflateInit2">inflateInit2</a>
- does not perform any decompression apart from reading the zlib header if
- present: this will be done by <a href="#inflate">inflate</a>(). (So <a href="#next_in">next_in</a> and <a href="#avail_in">avail_in</a> may be
- modified, but <a href="#next_out">next_out</a> and <a href="#avail_out">avail_out</a> are unchanged.)<p>
-
-<font color="Blue"><dt> int <a name="inflateSetDictionary">inflateSetDictionary</a> (<a href="#z_streamp">z_streamp</a> strm, const Bytef *dictionary, uInt dictLength);</font>
-<dd>
- Initializes the decompression dictionary from the given uncompressed byte
- sequence. This function must be called immediately after a call of <a href="#inflate">inflate</a>
- if this call returned <a href="#Z_NEED_DICT">Z_NEED_DICT</a>. The dictionary chosen by the compressor
- can be determined from the Adler32 value returned by this call of
- <a href="#inflate">inflate</a>. The compressor and decompressor must use exactly the same
- dictionary (see <a href="#deflateSetDictionary">deflateSetDictionary</a>).<p>
-
- <a href="#inflateSetDictionary">inflateSetDictionary</a> returns <a href="#Z_OK">Z_OK</a> if success, <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if a
- parameter is invalid (such as NULL dictionary) or the stream <a href="#state">state</a> is
- inconsistent, <a href="#Z_DATA_ERROR">Z_DATA_ERROR</a> if the given dictionary doesn't match the
- expected one (incorrect Adler32 value). <a href="#inflateSetDictionary">inflateSetDictionary</a> does not
- perform any decompression: this will be done by subsequent calls of
- <a href="#inflate">inflate</a>().<p>
-
-<font color="Blue"><dt> int <a name="inflateSync">inflateSync</a> (<a href="#z_streamp">z_streamp</a> strm);</font>
-
-<dd> Skips invalid compressed data until a full flush point (see above the
- description of <a href="#deflate">deflate</a> with <a href="#Z_FULL_FLUSH">Z_FULL_FLUSH</a>) can be found, or until all
- available input is skipped. No output is provided.<p>
-
- <a href="#inflateSync">inflateSync</a> returns <a href="#Z_OK">Z_OK</a> if a full flush point has been found, <a href="#Z_BUF_ERROR">Z_BUF_ERROR</a>
- if no more input was provided, <a href="#Z_DATA_ERROR">Z_DATA_ERROR</a> if no flush point has been found,
- or <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the stream structure was inconsistent. In the success
- case, the application may save the current current value of <a href="#total_in">total_in</a> which
- indicates where valid compressed data was found. In the error case, the
- application may repeatedly call <a href="#inflateSync">inflateSync</a>, providing more input each time,
- until success or end of the input data.<p>
-
-<font color="Blue"><dt> int <a name="inflateReset">inflateReset</a> (<a href="#z_streamp">z_streamp</a> strm);</font>
-<dd>
- This function is equivalent to <a href="#inflateEnd">inflateEnd</a> followed by <a href="#inflateInit">inflateInit</a>,
- but does not free and reallocate all the internal decompression <a href="#state">state</a>.
- The stream will keep attributes that may have been set by <a href="#inflateInit2">inflateInit2</a>.
- <p>
-
- <a href="#inflateReset">inflateReset</a> returns <a href="#Z_OK">Z_OK</a> if success, or <a href="#Z_STREAM_ERROR">Z_STREAM_ERROR</a> if the source
- stream <a href="#state">state</a> was inconsistent (such as <a href="#zalloc">zalloc</a> or <a href="#state">state</a> being NULL).
- <p>
-</dl>
-
-<hr>
-<a name="Checksum functions"><h2> Checksum functions </h2>
- These functions are not related to compression but are exported
- anyway because they might be useful in applications using the
- compression library.
-<h3> Function list </h3>
-<ul>
-<li> uLong <a href="#adler32">adler32</a> (uLong <a href="#adler">adler</a>, const Bytef *buf, uInt len);
-<li> uLong <a href="#crc32">crc32</a> (uLong crc, const Bytef *buf, uInt len);
-</ul>
-<h3> Function description </h3>
-<dl>
-<font color="Blue"><dt> uLong <a name="adler32">adler32</a> (uLong <a href="#adler">adler</a>, const Bytef *buf, uInt len);</font>
-<dd>
- Update a running Adler-32 checksum with the bytes buf[0..len-1] and
- return the updated checksum. If buf is NULL, this function returns
- the required initial value for the checksum.
- <p>
- An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
- much faster. Usage example:
- <pre>
-
- uLong <a href="#adler">adler</a> = <a href="#adler32">adler32</a>(0L, <a href="#Z_NULL">Z_NULL</a>, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- <a href="#adler">adler</a> = <a href="#adler32">adler32</a>(<a href="#adler">adler</a>, buffer, length);
- }
- if (<a href="#adler">adler</a> != original_adler) error();
- </pre>
-
-<font color="Blue"><dt> uLong <a name="crc32">crc32</a> (uLong crc, const Bytef *buf, uInt len);</font>
-<dd>
- Update a running crc with the bytes buf[0..len-1] and return the updated
- crc. If buf is NULL, this function returns the required initial value
- for the crc. Pre- and post-conditioning (one's complement) is performed
- within this function so it shouldn't be done by the application.
- Usage example:
- <pre>
-
- uLong crc = <a href="#crc32">crc32</a>(0L, <a href="#Z_NULL">Z_NULL</a>, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- crc = <a href="#crc32">crc32</a>(crc, buffer, length);
- }
- if (crc != original_crc) error();
- </pre>
-</dl>
-<hr>
-<a name="struct z_stream_s"><h2> struct z_stream_s </h2>
-<font color="Blue">
-<a name="z_stream_s">
-<pre>
-typedef struct z_stream_s {
- Bytef *<a name="next_in">next_in</a>; /* next input byte */
- uInt <a name="avail_in">avail_in</a>; /* number of bytes available at <a href="#next_in">next_in</a> */
- uLong <a name="total_in">total_in</a>; /* total nb of input bytes read so far */
-
- Bytef *<a name="next_out">next_out</a>; /* next output byte should be put there */
- uInt <a name="avail_out">avail_out</a>; /* remaining free space at <a href="#next_out">next_out</a> */
- uLong <a name="total_out">total_out</a>; /* total nb of bytes output so far */
-
- char *<a name="msg">msg</a>; /* last error message, NULL if no error */
- struct internal_state FAR *<a name="state">state</a>; /* not visible by applications */
-
- alloc_func <a name="zalloc">zalloc</a>; /* used to allocate the internal <a href="#state">state</a> */
- free_func <a name="zfree">zfree</a>; /* used to free the internal <a href="#state">state</a> */
- voidpf <a name="opaque">opaque</a>; /* private data object passed to <a href="#zalloc">zalloc</a> and <a href="#zfree">zfree</a> */
-
- int <a name="data_type">data_type</a>; /* best guess about the data type: ascii or binary */
- uLong <a name="adler">adler</a>; /* <a href="#adler32">adler32</a> value of the uncompressed data */
- uLong <a name="reserved">reserved</a>; /* <a href="#reserved">reserved</a> for future use */
-} <a href="#z_stream_s">z_stream</a> ;
-
-typedef <a href="#z_stream_s">z_stream</a> FAR * <a name="z_streamp">z_streamp</a>; ÿ
-</pre>
-</font>
- The application must update <a href="#next_in">next_in</a> and <a href="#avail_in">avail_in</a> when <a href="#avail_in">avail_in</a> has
- dropped to zero. It must update <a href="#next_out">next_out</a> and <a href="#avail_out">avail_out</a> when <a href="#avail_out">avail_out</a>
- has dropped to zero. The application must initialize <a href="#zalloc">zalloc</a>, <a href="#zfree">zfree</a> and
- <a href="#opaque">opaque</a> before calling the init function. All other fields are set by the
- compression library and must not be updated by the application. <p>
-
- The <a href="#opaque">opaque</a> value provided by the application will be passed as the first
- parameter for calls of <a href="#zalloc">zalloc</a> and <a href="#zfree">zfree</a>. This can be useful for custom
- memory management. The compression library attaches no meaning to the
- <a href="#opaque">opaque</a> value. <p>
-
- <a href="#zalloc">zalloc</a> must return <a href="#Z_NULL">Z_NULL</a> if there is not enough memory for the object.
- If zlib is used in a multi-threaded application, <a href="#zalloc">zalloc</a> and <a href="#zfree">zfree</a> must be
- thread safe. <p>
-
- On 16-bit systems, the functions <a href="#zalloc">zalloc</a> and <a href="#zfree">zfree</a> must be able to allocate
- exactly 65536 bytes, but will not be required to allocate more than this
- if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
- pointers returned by <a href="#zalloc">zalloc</a> for objects of exactly 65536 bytes *must*
- have their offset normalized to zero. The default allocation function
- provided by this library ensures this (see zutil.c). To reduce memory
- requirements and avoid any allocation of 64K objects, at the expense of
- compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
- <p>
-
- The fields <a href="#total_in">total_in</a> and <a href="#total_out">total_out</a> can be used for statistics or
- progress reports. After compression, <a href="#total_in">total_in</a> holds the total size of
- the uncompressed data and may be saved for use in the decompressor
- (particularly if the decompressor wants to decompress everything in
- a single step). <p>
-
-<hr>
-<a name="Constants"><h2> Constants </h2>
-<font color="Blue">
-<pre>
-#define <a name="Z_NO_FLUSH">Z_NO_FLUSH</a> 0
-#define <a name="Z_PARTIAL_FLUSH">Z_PARTIAL_FLUSH</a> 1
- /* will be removed, use <a href="#Z_SYNC_FLUSH">Z_SYNC_FLUSH</a> instead */
-#define <a name="Z_SYNC_FLUSH">Z_SYNC_FLUSH</a> 2
-#define <a name="Z_FULL_FLUSH">Z_FULL_FLUSH</a> 3
-#define <a name="Z_FINISH">Z_FINISH</a> 4
-/* Allowed flush values ; see <a href="#deflate">deflate</a>() below for details */
-
-#define <a name="Z_OK">Z_OK</a> 0
-#define <a name="Z_STREAM_END">Z_STREAM_END</a> 1
-#define <a name="Z_NEED_DICT">Z_NEED_DICT</a> 2
-#define <a name="Z_ERRNO">Z_ERRNO</a> (-1)
-#define <a name="Z_STREAM_ERROR">Z_STREAM_ERROR</a> (-2)
-#define <a name="Z_DATA_ERROR">Z_DATA_ERROR</a> (-3)
-#define <a name="Z_MEM_ERROR">Z_MEM_ERROR</a> (-4)
-#define <a name="Z_BUF_ERROR">Z_BUF_ERROR</a> (-5)
-#define <a name="Z_VERSION_ERROR">Z_VERSION_ERROR</a> (-6)
-/* Return codes for the compression/decompression functions. Negative
- * values are errors, positive values are used for special but normal events.
- */
-
-#define <a name="Z_NO_COMPRESSION">Z_NO_COMPRESSION</a> 0
-#define <a name="Z_BEST_SPEED">Z_BEST_SPEED</a> 1
-#define <a name="Z_BEST_COMPRESSION">Z_BEST_COMPRESSION</a> 9
-#define <a name="Z_DEFAULT_COMPRESSION">Z_DEFAULT_COMPRESSION</a> (-1)
-/* compression levels */
-
-#define <a name="Z_FILTERED">Z_FILTERED</a> 1
-#define <a name="Z_HUFFMAN_ONLY">Z_HUFFMAN_ONLY</a> 2
-#define <a name="Z_DEFAULT_STRATEGY">Z_DEFAULT_STRATEGY</a> 0
-/* compression strategy ; see <a href="#deflateInit2">deflateInit2</a>() below for details */
-
-#define <a name="Z_BINARY">Z_BINARY</a> 0
-#define <a name="Z_ASCII">Z_ASCII</a> 1
-#define <a name="Z_UNKNOWN">Z_UNKNOWN</a> 2
-/* Possible values of the <a href="#data_type">data_type</a> field */
-
-#define <a name="Z_DEFLATED">Z_DEFLATED</a> 8
-/* The <a href="#deflate">deflate</a> compression method (the only one supported in this version) */
-
-#define <a name="Z_NULL">Z_NULL</a> 0 /* for initializing <a href="#zalloc">zalloc</a>, <a href="#zfree">zfree</a>, <a href="#opaque">opaque</a> */
-
-#define <a name="zlib_version">zlib_version</a> <a href="#zlibVersion">zlibVersion</a>()
-/* for compatibility with versions less than 1.0.2 */
-</pre>
-</font>
-
-<hr>
-<a name="Misc"><h2> Misc </h2>
- <a href="#deflateInit">deflateInit</a> and <a href="#inflateInit">inflateInit</a> are macros to allow checking the zlib version
- and the compiler's view of <a href="#z_stream_s">z_stream</a>.
- <p>
- Other functions:
- <dl>
- <font color="Blue"><dt> const char * <a name="zError">zError</a> (int err);</font>
- <font color="Blue"><dt> int <a name="inflateSyncPoint">inflateSyncPoint</a> (<a href="#z_streamp">z_streamp</a> z);</font>
- <font color="Blue"><dt> const uLongf * <a name="get_crc_table">get_crc_table</a> (void);</font>
- </dl>
- <hr>
- <font size="-1">
- Last update: Wed Oct 13 20:42:34 1999<br>
- piapi@csie.ntu.edu.tw
- </font>
-
-</body>
-</html>
diff --git a/zlib-1.1.4/zutil.c b/zlib-1.1.4/zutil.c
deleted file mode 100644
index dfc38ec..0000000
--- a/zlib-1.1.4/zutil.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id$ */
-
-#include "zutil.h"
-
-struct internal_state {int dummy;}; /* for buggy compilers */
-
-#ifndef STDC
-extern void exit OF((int));
-#endif
-
-const char *z_errmsg[10] = {
-"need dictionary", /* Z_NEED_DICT 2 */
-"stream end", /* Z_STREAM_END 1 */
-"", /* Z_OK 0 */
-"file error", /* Z_ERRNO (-1) */
-"stream error", /* Z_STREAM_ERROR (-2) */
-"data error", /* Z_DATA_ERROR (-3) */
-"insufficient memory", /* Z_MEM_ERROR (-4) */
-"buffer error", /* Z_BUF_ERROR (-5) */
-"incompatible version",/* Z_VERSION_ERROR (-6) */
-""};
-
-
-const char * ZEXPORT zlibVersion()
-{
- return ZLIB_VERSION;
-}
-
-#ifdef DEBUG
-
-# ifndef verbose
-# define verbose 0
-# endif
-int z_verbose = verbose;
-
-void z_error (m)
- char *m;
-{
- fprintf(stderr, "%s\n", m);
- exit(1);
-}
-#endif
-
-/* exported to allow conversion of error code to string for compress() and
- * uncompress()
- */
-const char * ZEXPORT zError(err)
- int err;
-{
- return ERR_MSG(err);
-}
-
-
-#ifndef HAVE_MEMCPY
-
-void zmemcpy(dest, source, len)
- Bytef* dest;
- const Bytef* source;
- uInt len;
-{
- if (len == 0) return;
- do {
- *dest++ = *source++; /* ??? to be unrolled */
- } while (--len != 0);
-}
-
-int zmemcmp(s1, s2, len)
- const Bytef* s1;
- const Bytef* s2;
- uInt len;
-{
- uInt j;
-
- for (j = 0; j < len; j++) {
- if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
- }
- return 0;
-}
-
-void zmemzero(dest, len)
- Bytef* dest;
- uInt len;
-{
- if (len == 0) return;
- do {
- *dest++ = 0; /* ??? to be unrolled */
- } while (--len != 0);
-}
-#endif
-
-#ifdef __TURBOC__
-#if (defined( __BORLANDC__) || !defined(SMALL_MEDIUM)) && !defined(__32BIT__)
-/* Small and medium model in Turbo C are for now limited to near allocation
- * with reduced MAX_WBITS and MAX_MEM_LEVEL
- */
-# define MY_ZCALLOC
-
-/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
- * and farmalloc(64K) returns a pointer with an offset of 8, so we
- * must fix the pointer. Warning: the pointer must be put back to its
- * original form in order to free it, use zcfree().
- */
-
-#define MAX_PTR 10
-/* 10*64K = 640K */
-
-local int next_ptr = 0;
-
-typedef struct ptr_table_s {
- voidpf org_ptr;
- voidpf new_ptr;
-} ptr_table;
-
-local ptr_table table[MAX_PTR];
-/* This table is used to remember the original form of pointers
- * to large buffers (64K). Such pointers are normalized with a zero offset.
- * Since MSDOS is not a preemptive multitasking OS, this table is not
- * protected from concurrent access. This hack doesn't work anyway on
- * a protected system like OS/2. Use Microsoft C instead.
- */
-
-voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
- voidpf buf = opaque; /* just to make some compilers happy */
- ulg bsize = (ulg)items*size;
-
- /* If we allocate less than 65520 bytes, we assume that farmalloc
- * will return a usable pointer which doesn't have to be normalized.
- */
- if (bsize < 65520L) {
- buf = farmalloc(bsize);
- if (*(ush*)&buf != 0) return buf;
- } else {
- buf = farmalloc(bsize + 16L);
- }
- if (buf == NULL || next_ptr >= MAX_PTR) return NULL;
- table[next_ptr].org_ptr = buf;
-
- /* Normalize the pointer to seg:0 */
- *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4;
- *(ush*)&buf = 0;
- table[next_ptr++].new_ptr = buf;
- return buf;
-}
-
-void zcfree (voidpf opaque, voidpf ptr)
-{
- int n;
- if (*(ush*)&ptr != 0) { /* object < 64K */
- farfree(ptr);
- return;
- }
- /* Find the original pointer */
- for (n = 0; n < next_ptr; n++) {
- if (ptr != table[n].new_ptr) continue;
-
- farfree(table[n].org_ptr);
- while (++n < next_ptr) {
- table[n-1] = table[n];
- }
- next_ptr--;
- return;
- }
- ptr = opaque; /* just to make some compilers happy */
- Assert(0, "zcfree: ptr not found");
-}
-#endif
-#endif /* __TURBOC__ */
-
-
-#if defined(M_I86) && !defined(__32BIT__)
-/* Microsoft C in 16-bit mode */
-
-# define MY_ZCALLOC
-
-#if (!defined(_MSC_VER) || (_MSC_VER <= 600))
-# define _halloc halloc
-# define _hfree hfree
-#endif
-
-voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
- if (opaque) opaque = 0; /* to make compiler happy */
- return _halloc((long)items, size);
-}
-
-void zcfree (voidpf opaque, voidpf ptr)
-{
- if (opaque) opaque = 0; /* to make compiler happy */
- _hfree(ptr);
-}
-
-#endif /* MSC */
-
-
-#ifndef MY_ZCALLOC /* Any system without a special alloc function */
-
-#ifndef STDC
-extern voidp calloc OF((uInt items, uInt size));
-extern void free OF((voidpf ptr));
-#endif
-
-voidpf zcalloc (opaque, items, size)
- voidpf opaque;
- unsigned items;
- unsigned size;
-{
- if (opaque) items += size - size; /* make compiler happy */
- return (voidpf)calloc(items, size);
-}
-
-void zcfree (opaque, ptr)
- voidpf opaque;
- voidpf ptr;
-{
- free(ptr);
- if (opaque) return; /* make compiler happy */
-}
-
-#endif /* MY_ZCALLOC */
diff --git a/zlib-1.1.4/zutil.h b/zlib-1.1.4/zutil.h
deleted file mode 100644
index 718ebc1..0000000
--- a/zlib-1.1.4/zutil.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
- part of the implementation of the compression library and is
- subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id$ */
-
-#ifndef _Z_UTIL_H
-#define _Z_UTIL_H
-
-#include "zlib.h"
-
-#ifdef STDC
-# include <stddef.h>
-# include <string.h>
-# include <stdlib.h>
-#endif
-#ifdef NO_ERRNO_H
- extern int errno;
-#else
-# include <errno.h>
-#endif
-
-#ifndef local
-# define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-typedef unsigned char uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long ulg;
-
-extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */
-/* (size given to avoid silly warnings with Visual C++) */
-
-#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)]
-
-#define ERR_RETURN(strm,err) \
- return (strm->msg = (char*)ERR_MSG(err), (err))
-/* To be used only when the state is known to be valid */
-
- /* common constants */
-
-#ifndef DEF_WBITS
-# define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-# define DEF_MEM_LEVEL 8
-#else
-# define DEF_MEM_LEVEL MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES 2
-/* The three kinds of block type */
-
-#define MIN_MATCH 3
-#define MAX_MATCH 258
-/* The minimum and maximum match lengths */
-
-#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-
- /* target dependencies */
-
-#ifdef MSDOS
-# define OS_CODE 0x00
-# if defined(__TURBOC__) || defined(__BORLANDC__)
-# if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
- /* Allow compilation with ANSI keywords only enabled */
- void _Cdecl farfree( void *block );
- void *_Cdecl farmalloc( unsigned long nbytes );
-# else
-# include <alloc.h>
-# endif
-# else /* MSC or DJGPP */
-# include <malloc.h>
-# endif
-#endif
-
-#ifdef OS2
-# define OS_CODE 0x06
-#endif
-
-#ifdef WIN32 /* Window 95 & Windows NT */
-# define OS_CODE 0x0b
-#endif
-
-#if defined(VAXC) || defined(VMS)
-# define OS_CODE 0x02
-# define F_OPEN(name, mode) \
- fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
-#endif
-
-#ifdef AMIGA
-# define OS_CODE 0x01
-#endif
-
-#if defined(ATARI) || defined(atarist)
-# define OS_CODE 0x05
-#endif
-
-#if defined(MACOS) || defined(TARGET_OS_MAC)
-# define OS_CODE 0x07
-# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-# include <unix.h> /* for fdopen */
-# else
-# ifndef fdopen
-# define fdopen(fd,mode) NULL /* No fdopen() */
-# endif
-# endif
-#endif
-
-#ifdef __50SERIES /* Prime/PRIMOS */
-# define OS_CODE 0x0F
-#endif
-
-#ifdef TOPS20
-# define OS_CODE 0x0a
-#endif
-
-#if defined(_BEOS_) || defined(RISCOS)
-# define fdopen(fd,mode) NULL /* No fdopen() */
-#endif
-
-#if (defined(_MSC_VER) && (_MSC_VER > 600))
-# define fdopen(fd,type) _fdopen(fd,type)
-#endif
-
-
- /* Common defaults */
-
-#ifndef OS_CODE
-# define OS_CODE 0x03 /* assume Unix */
-#endif
-
-#ifndef F_OPEN
-# define F_OPEN(name, mode) fopen((name), (mode))
-#endif
-
- /* functions */
-
-#ifdef HAVE_STRERROR
- extern char *strerror OF((int));
-# define zstrerror(errnum) strerror(errnum)
-#else
-# define zstrerror(errnum) ""
-#endif
-
-#if defined(pyr)
-# define NO_MEMCPY
-#endif
-#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
- /* Use our own functions for small and medium model with MSC <= 5.0.
- * You may have to use the same strategy for Borland C (untested).
- * The __SC__ check is for Symantec.
- */
-# define NO_MEMCPY
-#endif
-#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-# define HAVE_MEMCPY
-#endif
-#ifdef HAVE_MEMCPY
-# ifdef SMALL_MEDIUM /* MSDOS small or medium model */
-# define zmemcpy _fmemcpy
-# define zmemcmp _fmemcmp
-# define zmemzero(dest, len) _fmemset(dest, 0, len)
-# else
-# define zmemcpy memcpy
-# define zmemcmp memcmp
-# define zmemzero(dest, len) memset(dest, 0, len)
-# endif
-#else
- extern void zmemcpy OF((Bytef* dest, const Bytef* source, uInt len));
- extern int zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len));
- extern void zmemzero OF((Bytef* dest, uInt len));
-#endif
-
-/* Diagnostic functions */
-#ifdef DEBUG
-# include <stdio.h>
- extern int z_verbose;
- extern void z_error OF((char *m));
-# define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-# define Trace(x) {if (z_verbose>=0) fprintf x ;}
-# define Tracev(x) {if (z_verbose>0) fprintf x ;}
-# define Tracevv(x) {if (z_verbose>1) fprintf x ;}
-# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
-# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
-#else
-# define Assert(cond,msg)
-# define Trace(x)
-# define Tracev(x)
-# define Tracevv(x)
-# define Tracec(c,x)
-# define Tracecv(c,x)
-#endif
-
-
-typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf,
- uInt len));
-voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
-void zcfree OF((voidpf opaque, voidpf ptr));
-
-#define ZALLOC(strm, items, size) \
- (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
-#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
-
-#endif /* _Z_UTIL_H */